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

发布者:Quail最新更新时间:2023-03-20 来源: elecfans关键字:MCU 手机看文章 扫描二维码
随时随地手机看文章

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


关键字:MCU 引用地址:浅析非对称双核MCU基础知识及核间通信

上一篇:基于ARM的中英文翻译器设计
下一篇:如何使用带FIFO的串口来减少接收中断次数

推荐阅读最新更新时间:2024-11-20 11:07

1辆车要用100颗,我国成全球最大车用MCU市场
“中国是全球第一大汽车产销国,也拥有全球最大车用MCU市场。目前平均一辆车上会用到100颗左右的MCU,这样估算下来,我国车用MCU市场总量约为20亿颗,市场规模高达数百亿元。汽车新四化的兴起,对于MCU的需求会进一步增长。” 赛腾微电子董事长黄继颇在接受《中国电子报》专访时表示。 汽车是MCU占比最大且最具潜力的应用市场。IC Insight数据显示,2019年车用MCU销售额占MCU销售额的39%。当前,汽车行业步入智能化、电动化、共享化、网联化的“新四化”时代,车用MCU的用量和规格要求将进一步提升。汽车持续向“四个轮子的数据中心”转变,从而对MCU提出了哪些新的要求?我国相关企业该如何抓住市场机遇,形成差异化竞争优势?
[汽车电子]
51单片机入门经验分享3-通过流水灯讲解for循环语句
接上一篇帖子,继续来看,既然我们会点亮一个小灯,并可以让其闪烁了,那么我们就尝试着点亮流水灯好了,让8个小灯,从左到右,从右往左来回流动,还是在上一个程序的基础上来修改,很简单依次赋值即可实现。 while(1) { P2 = 0XFE;//1111_1110; Delay500ms();//500ms延时 11.0592MHZ P2 = 0XFD;//1111_1101; Delay500ms();//500ms延时 11.0592MHZ P2 = 0XFB;//1111_1011; Delay500ms();//
[单片机]
先楫半导体:HPM6000系列RISC-V通用MCU产品填国内高端MCU空白
12月17日,首届滴水湖中国RISC-V产业论坛在上海临港举行。会上,上海先楫半导体科技有限公司CEO 曾劲涛介绍了公司HPM6000系列RISC-V通用MCU产品。 先楫半导体是一家致力于高性能嵌入式解决方案的半导体公司,成立于2020年8月,总部坐落在上海张江,在天津和武汉设有子公司。先楫半导体的产品覆盖微控制器、微处理器和周边芯片,以及配套的开发工具和生态系统。先楫半导体具备成熟的研发团队,各研发关键职能(构架,模拟,SoC,数字,IP,DFT,后端等)均由资深工程师负责,研发队伍绝大部分拥有硕士以上学历,包括博士数名。2021年 10月,先楫半导体成功完成近亿元PRE-A轮融资,由中芯聚源领投,东方茸世(东方电子关联基金)
[手机便携]
先楫半导体:HPM6000系列RISC-V通用<font color='red'>MCU</font>产品填国内高端<font color='red'>MCU</font>空白
怎样学好AVR单片机
  随着各IC厂商推出各种高性能的单片机,51单片机已经远远不能满足大家对高性能单片机的需求。目前很多公司和学校已经开始转向AVR单片机了,相信在未来几年,AVR将会非常兴旺,所以学习AVR单片机将会很有前途。   相比经典的51系列来说,AVR单片机突出的优点主要有以下几点:   一、速度快。AVR是精简指令集单片机,其速度可以达到1MIPS/秒,理论上是传统的51的12倍,实际上在10倍左右。   二、片上资源丰富。MEGA系列片上具备JTAG仿真和下载功能。片内含有看门狗电路、片内程序Flash、片内数据RAM、同步串行接口SPI、异步串口UART、内嵌AD转换器、EEPROM、模拟比较器、PWM定时计数器、TWI(
[单片机]
51单片机定时器实现PWM波
51单片机是可以实现PWM波输出的,原理其实都是一样的。说白了,PWM波就是让某一个引脚输出周期性连续高低电平变化的信号。 那么如何用51单片机实现周期性的高低电平呢? 答案就是用定时器。首先我们需要配置一下定时器,这里不做过多阐述,资料到处都有。然后设置一个计数周期,比如说让定时器计一百个数产生溢出,那么这一百个数的时间就是一个周期。接下来我们就以这一百个数的时间为基准。比如设置前五十个数的时间某引脚为高电平,后五十个数为低电平。那么这个引脚就会输出一个占空比为50%的高低电平变化。这就是所谓的PWM波。 基本代码实现如下: sbitPWM=P2^0;//P2.0输出pwm int time;//定义占空比
[单片机]
51单片机(计时器+时钟应用)
Ps: 使用的是51单片机, 晶振为11.0592M的, 时间选择5ms。 这篇博客好像是第一篇单片机博客诶~。 算法: 简单的计时器应用, 最开始 根据 2^16 - (t - f)/12 计算得到值, 将其转换为16进制 (注意:单位的改变, 例如晶振要乘上 10e6 时间 要转换为秒s 乘上 10e-3) 由此可以得到 TH0/TL0的值。 例如: 设计的是5ms, 则 算式为 2^16 - (5 * 10^-3 - 11.0592 * 10^6) / 12; 转换为16进制 为DC00; 所以 TH0 = 0XDC __ TL0 = 0X00; 显示: 拆字什么的 就不说了~~, 反正就是 分和秒 对 10取余 和
[单片机]
AVR单片机的RC5和RC6算法比较与改进
摘要:RC5及RC6是两种新型的分组密码。AVR高速嵌入式单片机功能强大,在无线数据传输应用方面很有优势。本文基于Atmega128高速嵌入式单片机,实现RC5和RC6加密及解密算法,并对算法进行汇编语言的优化及改进。根据实验结果。对两种算法的优热点进行比较和分析。 关键词:Atmega128 RC5 RC6 分组密码 混合密钥 Flash 引言 在无线局域网中,传输的介质主要是无线电波和红外线,任何具有接收能力的窍听者都有可能拦截无线信道中的数据,掌握传输的内容,造成数据泄密。因此,对于无线局域网来说,数据的加密是关键技术之一。 AVR高速嵌入式单片机是8位RISC MCU,执行大多数指令只需一个时钟周期,速度快(8M
[单片机]
基于采用ARM+单片机+CPLD/FPGA的设计方案
  0 引 言   传统的数据采集系统一般采用单片机,系统大多通过PCI总线完成数据的传输。其缺点是数学运算能力差;受限于计算机插槽数量和中断资源;不便于连接与安装;易受机箱内电磁环境的影响。这些问题遏制了基于PCI总线的数据采集系统的进一步开发和应用。因此,需要一种更为简便通用的方式完成采集系统和计算机数据的交互。   数据采集系统性能的好坏,主要取决于它的精度和速度。在保证精度的条件下应尽可能地提高采样速度,以满足实时采集、实时处理和实时控制的要求。实践表明,采用ARM 32位嵌入式微处理器作为控制器,用USB(通用串行总线)和上位机连接构成的数据采集系统能大大提高系统数据处理的能力,降低对PC机和接口速度的依赖。   
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved