0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

MCU开发加油站 来源:未知 作者:邓佳佳 2018-03-13 15:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

本文从对比两颗分立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的灵魂。内核、存储器,以及总线架构对于性能有着至关重要的影响。图1展示了LPC4350的实现方式。

图1:LPC4350的内核、存储器以及总线连接图

首先是内核的选择。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的状态。

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

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

原文标题:非对称双核MCU基础知识及核间通信

文章出处:【微信号:mcugeek,微信公众号:MCU开发加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    实测2778MB/s,AMP通信“快如闪电”,瑞芯微RK3576

    在多核异构SoC处理器中,间数据的传输带宽直接决定了系统整体性能。传统通信方案存在数据“ 拷贝开销大 ”、“ 带宽受限 ”等瓶颈,高效的通信
    的头像 发表于 12-04 14:14 47次阅读
    实测2778MB/s,AMP<b class='flag-5'>核</b><b class='flag-5'>间</b><b class='flag-5'>通信</b>“快如闪电”,瑞芯微RK3576

    锐能微RISC-VMCU芯片在智能电表中的应用

    上海贝岭股份有限公司全资子公司深圳市锐能微科技有限公司近日推出了电表行业首颗RISC-VMCU芯片。该芯片主要面向出口电表市场,同时也为国网及南网下一步的国产化内核MCU做好了准备
    的头像 发表于 11-07 16:48 1086次阅读
    锐能微RISC-V<b class='flag-5'>双</b><b class='flag-5'>核</b><b class='flag-5'>MCU</b>芯片在智能电表中的应用

    e203 软如何和FPGA通信

    求教e203 软如何和FPGA通信
    发表于 11-07 06:15

    深入芯驰D9360通信案例,RPMSG关键技术深度剖析

    Core-D9360平台为例,详解如何利用RPMSG与VirtIO机制实现A与R的可靠通信,并提供关键代码实现与调试方法。图1Core-D9360核心板一、
    的头像 发表于 09-10 08:31 840次阅读
    深入芯驰D9360<b class='flag-5'>核</b><b class='flag-5'>间</b><b class='flag-5'>通信</b>案例,RPMSG关键技术深度剖析

    非对称密钥生成和转换规格详解

    生成 以字符串参数生成RSA密钥,具体的“字符串参数”由“RSA密钥类型”和“素数个数”使用符号“|”拼接而成,用于在创建非对称密钥生成器时,指定密钥规格。 说明:生成RSA非对称密钥时,默认素数为2
    发表于 09-01 07:50

    国产!全志T113-i Cortex-A7@1.2GHz 工业开发板—ARM + FPGA通信案例

    本文主要介绍基于全志科技T113与FPGA的通信案例,适用开发环境如下。
    的头像 发表于 08-19 11:16 755次阅读
    国产!全志T113-i <b class='flag-5'>双</b><b class='flag-5'>核</b>Cortex-A7@1.2GHz 工业开发板—ARM + FPGA<b class='flag-5'>通信</b>案例

    国产!全志T113-i Cortex-A7@1.2GHz 工业开发板—ARM + DSP、RISC-V通信开发案例

    本文档主要介绍T113-i处理器的ARM + DSP、RISC-V通信开发案例,演示T113-i处理器ARM Cortex-A7与HiFi4 DSP核心、玄铁C906 RISC-V核心的
    的头像 发表于 08-18 14:03 638次阅读
    国产!全志T113-i <b class='flag-5'>双</b><b class='flag-5'>核</b>Cortex-A7@1.2GHz 工业开发板—ARM + DSP、RISC-V<b class='flag-5'>核</b><b class='flag-5'>间</b><b class='flag-5'>通信</b>开发案例

    单核CPU网关和CPU网关有什么区别

    单核CPU网关与CPU网关的核心区别在于处理能力、多任务效率、性能表现及适用场景,CPU网关在多任务处理、复杂计算和响应速度上具有显著优势,而单核CPU网关则更适合轻量级、低负
    的头像 发表于 07-05 14:37 738次阅读

    请问的芯片如何调试?

    的芯片如何调试?比如有很多M4+M0的芯片,是分开调试合适可以一起调试?
    发表于 06-19 07:32

    黑芝麻智能解读车规SoC通信技术

    在当今的智能汽车领域,电子系统的复杂程度超乎想象。一辆现代汽车可能配备超过100个电子控制单元,运行着数以亿计行的代码。而将这些系统紧密相连并使其协同工作的核心技术之一,便是车规级系统级芯片中的通信技术。
    的头像 发表于 06-06 16:38 1900次阅读
    黑芝麻智能解读车规SoC<b class='flag-5'>核</b><b class='flag-5'>间</b><b class='flag-5'>通信</b>技术

    STM32H7如何通信

    STM32H7通信的方法,主要是CM7和CM4之间如何进行数据传递
    发表于 03-12 07:34

    分享!基于NXP i.MX 8M Plus平台的OpenAMP通信方案

    在嵌入式系统领域,随着技术不断发展,对于系统性能和功能要求日益提高。通信作为提升系统整体效能的关键技术,成为了关注焦点。今天,我们和大家分享一个OpenAMP非对称架构
    的头像 发表于 02-27 10:44 873次阅读
    分享!基于NXP i.MX 8M Plus平台的OpenAMP<b class='flag-5'>核</b><b class='flag-5'>间</b><b class='flag-5'>通信</b>方案

    瑞芯微RK3568正式开放RISC-V核心啦,也支持非对称AMP双系统!

    在嵌入式系统的发展进程中,多核异构架构的出现为满足复杂应用场景的需求提供了新的可能。其中,瑞芯微RK3568J国产平台的非对称AMP(Asymmetric Multi-Processing)架构
    的头像 发表于 02-27 10:36 1024次阅读
    瑞芯微RK3568正式开放RISC-V核心啦,也支持<b class='flag-5'>非对称</b>AMP双系统!

    “国产双系统”出炉!复旦微FMQL20SM非对称AMP:Linux + 裸机

    Linux + RTOS/裸机,但需一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,既可各自独立运行不同的任务,又可多个核心之间进行通信。 图 1 FMQL20SM AMP异构多核框架示意
    的头像 发表于 01-24 13:46 1175次阅读
    “国产双系统”出炉!复旦微FMQL20SM<b class='flag-5'>非对称</b>AMP:Linux + 裸机

    ARM + RISC-V通信方案,基于全志T113-i的OpenAMP非对称架构

    本文主要给大家分享的是基于创龙科技TLT113-EVM评估板(基于全志T113-i)的ARM + RISC-V通信开发案例,适用开发环境如下。 Windows开发环境:Windows 7
    的头像 发表于 01-24 09:30 912次阅读
    ARM + RISC-V<b class='flag-5'>核</b><b class='flag-5'>间</b><b class='flag-5'>通信</b>方案,基于全志T113-i的OpenAMP<b class='flag-5'>非对称</b>架构