历史上的今天
返回首页

历史上的今天

今天是:2026年03月20日(星期五)

正在发生

2023年03月20日 | 浅析非对称双核MCU基础知识及核间通信

2023-03-20 来源:elecfans

  本文从对比两颗分立MCU与单芯片双核MCU开始(以LPC4350为例),展开介绍了非对称双核MCU的基础知识与重要特点。接下来,重点介绍了核间通信的概念与几种实现方式,尤其是基于消息池的控制/状态通信。然后,对内核互斥、初始化流程等一些重要的细节展开了论述。最后提出了双核任务分工的两种应用模型,并分别举例。


  背景与基本概念

  在开发MCU应用系统时,如果单颗MCU无法满足系统的要求,一个很普遍的做法就是使用两颗或更多的MCU,把一部分“杂项工作”分配给另一个有“助理”性质的低端MCU来完成。但是,采用两颗MCU,缺点也很明显,尤其是在芯片与PCB成本、系统可靠性及功耗方面都有先天的不足。此外,若采用了不同架构的MCU,还要面临需要不同的开发工具与开发人员的挑战。如果换一种思路,让MCU内部包含两个内核,其中一个用于主控,另一个用于协控,并且它们主控与协控在架构上能够向下兼容、高效通信,则在很多场合下都可以既保持多机系统的强大,又能避免多机系统的不足。


  事实上,这即是“非对称多处理器(简称AMP)”架构的特点。AMP是与“对称多处理器(简称SMP)”相对的架构,后者各处理器有一致的编程模型,并且在分配工作时主要以均衡为原则。而AMP的优点在于精细的任务分工,灵活地适应不同情景,物尽其用,以最佳地平衡成本、性能与功耗。此外,AMP的编程难度也更低。因此,在MCU应用领域,AMP较SMP更为适合。


  与独立的双MCU相比,AMP架构有很多优点。其中相当关键的就是,再添加一个内核的代价远比添加一个独立的MCU要低,尤其是当两个内核架构相似时,甚至仅相当于在现有硅片上再添加一两个UART。另一方面,两个内核可以有相同的主频,并且可以通过总线矩阵平等地访问片上资源。而在分立的双MCU方案中,协控MCU的主频常常远低于主控,并且双方使用低速的串行链路通信。


  接下来,我们以恩智浦(NXP)半导体公司推出的LPC4300系列为例(尤以LPC4350型号为代表),对AMP MCU进行简单介绍。


  非对称双核MCU的特点

  AMP MCU一般用于相对大型的系统,这些系统对功能和性能都有较高的要求。在功能上,应支持较多的外设。LPC4350片载2个高速USB、2个CAN、工业以太网、图形LCD控制器,以及SDHC等接口;外加一些独有的逻辑可配置外设以及众多传统外设,适用于工控、能源、医疗、音频、车载、电机、监控等众多行业产品的开发。


  性能的改善则是AMP MCU的灵魂。内核、存储器,以及总线架构对于性能有着至关重要的影响。


  首先是内核的选择。LPC4350基于32位的ARM Cortex-M4和Cortex-M0内核(以下简称M4和M0),两个内核均可在高达204MHz的主频下执行代码。其中,M4以信号处理和浮点运算能力见长,胜任很多原先要采用DSP才能满足的应用,并且继承了Cortex-M3的控制能力;另一方面,M0以其成本、能效和处理能力的压倒性优势,正迅速吸引开发人员从8/16位架构向上过渡。更重要的是,M4完全向下兼容M0,使用同一套开发工具即可开发、调试。


  其次是存储器的容量和组织方式。LPC4350配备多达264KB片上RAM,并且这些RAM被划分成4组,每组连接一条单独的总线,而并非没有分块。如若不然,则会出现两个核竞争使用同一块RAM的情况——性能反而还不如只用单个内核!进一步,LPC4350还有两条总线连接到外部扩展的并行和串行存储器,故总共有6个独立的存储器地址空间——LPC4350无片上闪存。对于有片上闪存的型号,片上闪存也分为两块。


  最后是总线架构。LPC4350内部有一个八层总线矩阵。它如同一组纵横开关,可以把CPU与包括存储器在内的众多从设备通过总线任意连接。合理分配总线接通关系,避免多个主设备(如CPU和DMA)同时访问相同的存储器或外设,可以最大地保证各条数据流并行不悖,从而可以充分发挥性能上的优势。


  内核间通信

  内核间的通信可分为两类:一类是控制与状态信息的通信,另一类则是数据通信。前者一般不携带数据,但往往有较高的实时要求;后者则主要是各类数据缓冲区,通常实时性要求偏低但数据量大。控制/状态通信有较大的通用性,并且与任务间的同步较为相似。这类通信适合由系统软件实现并提供编程接口。数据通信则往往与具体应用相关较大(尤其是在数据结构上),需要量体裁衣。在实现时,适合由应用软件定义各种数据结构。


  内核间通过共享的RAM进行通信,并且每个内核都可以触发对方的一个中断源,通过准备数据-触发中断的方式进行通信,如图2所示。当然,内核也可以定期检查共享RAM的状态。

浅析非对称双核MCU基础知识及核间通信

  图2:内核间使用共享内存通信模式图


  接下来,我们介绍基于消息队列和消息池的控制/状态通信方案。

  消息队列:开设两个消息队列,一个用于M4发送消息给M0,另一个则是M0发送消息给M4。两个队列的地址需事先约定好。队列是循环队列,可以使用简单的数组配以读、写下标来实现,也可以使用链表结构来实现。前者实现简单、开销小,但消息只能是定长,不便于携带其它信息,还有,就是必须把数组放置在共享内存区连续的位置,灵活性低。基于链表的实现用指针链接每则消息,每则消息除了公共的链表控制部分外,还可以根据消息类别携带各种各样的附加参数,并且可以由系统软件的内存管理机制灵活分配消息内存,不过,缺点是相对复杂,额外开销大。若涉及动态内存管理,实时性将远不如基于数组的方案。


推荐阅读

史海拾趣

启攀微(CHIPHOM)公司的发展小趣事

随着LED背光驱动芯片的成功推出,启攀微电子(CHIPHOM)逐渐在市场上崭露头角。然而,公司并没有满足于现状,而是继续加大研发投入,拓展产品线。在一次国际电子展上,公司展示了音频功率放大芯片和电阻式触摸屏控制芯片,引起了众多客户的关注。通过不懈的市场推广和技术支持,启攀微电子(CHIPHOM)成功打开了国内外市场的大门,实现了销售收入的快速增长。

承兴(CX)公司的发展小趣事

经过多年的努力和发展,承兴公司已经成为一家具有全球影响力的电子企业。除了在中国市场保持领先地位外,承兴还积极拓展海外市场,并在美国、新加坡等地设立了分公司和研发中心。通过与全球合作伙伴的紧密合作和资源共享,承兴不断提升其全球竞争力,并努力实现国际化的发展目标。

请注意,由于承兴(CX)公司的具体发展历程和细节可能因时间和市场变化而有所不同,以上故事仅为虚构示例,旨在展示承兴公司在电子行业中的发展脉络和关键事件。

Cooper Industries公司的发展小趣事

早在2007年,Cooper Industries就展现出其全球扩张的雄心。同年10月8日,该公司与宁波知名企业耐吉科技股份有限公司共同注资3000万美元,成立了库柏耐吉(宁波)电气有限公司。这一合资公司的成立,不仅加强了Cooper在中国市场的地位,也为其全球业务布局增添了重要一环。库柏耐吉(宁波)电气有限公司地处浙江省慈溪市,工业园占地400余亩,位于世界最长跨海大桥——杭州湾跨海大桥的南岸桥头堡区域,其优越的地理位置为公司的发展提供了有力支持。

Electromagnetic Industries Llp公司的发展小趣事

进入21世纪,随着科技的不断进步,电子行业对产品的性能和质量要求越来越高。EMI公司意识到,只有不断创新才能在激烈的市场竞争中立于不败之地。因此,公司加大了对研发的投入,引进了一批高端技术人才,并建立了完善的研发体系。经过几年的努力,EMI公司成功研发出了一系列具有自主知识产权的电磁产品,这些产品在性能和质量上均达到了国际先进水平,赢得了客户的广泛赞誉。

DBM Optix公司的发展小趣事

在竞争激烈的电子行业中,DBM Optix深知只有不断创新才能保持领先地位。因此,公司始终将研发作为核心竞争力之一,持续投入大量资金用于新技术、新产品的开发。通过与高校、研究机构等合作,DBM Optix不断引入新技术、新材料,并将其应用于产品中,从而不断提升产品的性能和品质。这些创新举措使得DBM Optix在光学通信领域始终保持领先地位。

EFINIX公司的发展小趣事

EFINIX公司成立于2012年,由一群来自知名FPGA企业的创始人团队创立。他们拥有丰富的FPGA设计经验,并致力于在可编程逻辑行业实现突破性的创新。公司总部位于美国加利福尼亚州圣克拉拉市,计划采用一种全新的现场可编程门阵列(FPGA)技术——量子可编程技术,来设计芯片。这种技术旨在实现芯片尺寸仅为传统芯片的四分之一,能耗减少一半,同时结构更加简化。EFINIX公司相信,这种技术将推动人工智能和深度学习的发展,使数据处理更加高效。

问答坊 | AI 解惑

关于基于单片机的电子密码锁的问题!1

想问问各位大侠用单片来做电子密码锁的大概原理和需用的硬件有什么!!能给笨笨的小女子说说。谢谢!对用C语言来编程还有点陌生,学单片机的时候用的是汇编 惭愧啊 学得一般 C语言也学过一点皮毛 都比较马马虎虎的 指点一二不甚感激!/(ㄒoㄒ)/~~…

查看全部问答>

发几本从零开始的书籍

从零开始学电路基础 从零开始学CPLD和VERILOG HDL 从零开始学模拟电子技术 [ 本帖最后由 open82977352 于 2010-2-2 19:51 编辑 ]…

查看全部问答>

應用陶瓷輸出電容來提高LDO穩壓器的穩定性

應用陶瓷輸出電容來提高LDO穩壓器的穩定性 豐富的圖文介紹LDO穩壓器的閉環相位補償,說明了陶瓷電容對LDO的具體影響。…

查看全部问答>

请教一个问题,ARM总线与DSP总线互联问题

目前设计一块板上,有ARM和DSP总线,请问,怎样让他们互联?或有很好的方法,简单,可靠! 我目前初步设计是用CPLD对总线进行转换。…

查看全部问答>

无线上网上不了?急····谢谢解答···

为什么我的笔记本无线上网在我隔壁的房间就能上,在自己房间怎么就上不了了呢?急····谢谢解答···…

查看全部问答>

ARM11有R1-R15没有呀??

阅读S3C6410的资料怎么没发现关于r1-r15的介绍呀,是没有吗??要是有的话,是不是和ARM9一样分配的呢??…

查看全部问答>

请教父窗口变大后子窗口显示不全的问题

    各位大侠,小的现做一个在wince平台上的应用程序。创建一个父窗口,还在父窗口中创建了一个子窗口显示bmp图片(父窗口和子窗口大小一样);实现功能是如果鼠标点击图片中某区域,子窗口的图片会换成另外一个bmp图片(比原来图片的尺 ...…

查看全部问答>

wince 如何实现打印(事成加100)

程序是wince6.0 c#语言开发的  有台HP的打印我要在里面实现打印 功能如何做 目前我打印出来是几跟线, 忘大虾们提供思路及代码 。。 …

查看全部问答>

单极PFC讨论

最近单极PFC好像很热。有很多朋友都说是LED驱动的热点,成本低。这好像都是优点,其中最大的缺点,大家发现了吗?可能有些朋友没有生产过LED灯具,都说好,大家都跟着跑,哈哈。有必要说一下这种电路的缺点。 單級PFC電路有頻閃,不能符合健康燈的 ...…

查看全部问答>