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

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

3天内不再提示

MPU进化,多核异构处理器有多强?A核与M核通信过程解析

飞凌嵌入式 2022-11-21 14:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着市场对嵌入式设备功能需求的提高,市面上出现了集成嵌入式处理器和单片机的主控方案,以兼顾性能和效率。

在实际应用中,嵌入式处理器和单片机之间需要进行大量且频繁的数据交换,如果采用低速串行接口,则数据传输效率低,这将严重影响产品的性能;而如果采用高速并口,则占用管脚多,硬件成本将会增加。

为解决这一痛点,各大芯片公司陆续推出了兼具A核和M核的多核异构处理器,如NXP的i.MX8系列、瑞萨的RZ/G2L系列以及TI的AM62x系列等等。虽然这些处理器的品牌及性能有所不同,但多核通信原理基本一致,都是基于寄存器和中断传递消息,基于共享内存传输数据

以配电终端产品为例,A核负责通讯和显示等人机交互任务,M核负责采样和保护等对实时性要求较高的任务,双核间交互模拟量、开关量和录波文件等多种信息,A核+M核的方案既满足了传统采样保护功能,又支持多种接口通信及新增容器等功能,符合国家电网现行配电标准。

71f7f882-67ab-11ed-b116-dac502259ad0.png通信过程整体架构说明

接下来小编将以NXP的i.MX8MP为例,借助飞凌OKMX8MP-C开发板分别从硬件层、驱动层、应用层介绍大致的通信实现流程以及实测效果

1. 硬件层通信实现机制

通过物理内存DDR分配,将硬件层分为了两部分:TXVring Buffer(发送虚拟环状缓冲区)RXVring Buffer(接收虚拟环状缓冲区);其中M核从TXVring区发送数据,从RXVring区读取接收数据,A核反之。

处理器支持消息传递单元(MessagingUnit,简称MU)功能模块,通过MU传递消息进行通信和协调,芯片内的M7控制核和A53处理核通过通过寄存器中断的方式传递命令,最多支持4组MU双向传递消息,既可通过中断告知对方数据传递的状态,也可发送最多4字节数据,还可在低功耗模式下唤醒对方,是保证双核通信实时性的重要手段。

721d00d2-67ab-11ed-b116-dac502259ad0.png寄存器输入输出通信模型

(1)CoreA写入数据;

(2)MU将Tx 空位清0,Rx满位置1;

(3)产生接收中断请求,通知CoreB接收状态寄存器中的接收器满,可以读取数据;

(4)CoreB响应中断,读取数据;

(5)CoreB读完数据后,MU将Rx满位清0,Tx空位置1;

(6)状态寄存器向CoreA生成发送中断请求,告知CoreB读完数据,发送寄存器空。

通过以上步骤,就完成了1次从CoreA向CoreB 传递消息的过程,反之亦然。

2. 驱动层Virtio下RPMsg通信实现

Virtio是通用的IO虚拟化模型,位于设备之上的抽象层负责前后端之间的通知机制和控制流程,为异构多核间数据通信提供了层的实现

RPMsg消息框架是Linux系统基于Virtio缓存队列实现的主处理核和协处理核间进行消息通信的框架,当客户端驱动需要发送消息时,RPMsg会把消息封装成Virtio缓存并添加到缓存队列中以完成消息的发送,当消息总线接收到协处理器送到的消息时也会合理地派送给客户驱动程序进行处理。

在驱动层,对A核,Linux采用RPMsg框架+Virtio驱动模型,将RPMsg封装为了tty文件供应用层调用;在M核,将Virtio移植,并使用简化版的RPMsg,因为涉及到互斥锁和信号量,最终使用FreeRTOS完成过程的封装,流程框图如下方所示。

723afcc2-67ab-11ed-b116-dac502259ad0.png主处理核与协处理核数据传递流程图

(1)Core0向Core1发送数据,通过rpmsg_send函数将数据打包至Virtioavail链表区;

(2)在avail链表寻找共享内存中空闲缓存,将数据置于共享内存中;

(3)通过中断通知Core1数据到来,共享内存由avail链表区变至used区;

(4)Core1收到中断,触发rpmsg的接收回调函数,从used区获取数据所在的共享内存的物理地址,完成数据接收;

(5)通过中断通知Core0数据接收完成,共享内存缓存由used区变为avail区,供下次传输使用。

3. 应用层双核通信实现方式

在应用层,对A核可使用openwriteread函数对 /dev下设备文件进行调用;对M核,可使用rpmsg_lite_remote_initrpmsg_lite_sendrpmsg_queue_recv函数进行调用,不做重点阐述。

4. 实际使用效果

通过程序实测,M核和A核可以批量传输大数据。同样以配电产品为例——128点采样的录波文件大约为43K,若通过传统的串行总线传输方式,需要数秒才可完成传输

使用i.MX8MP的双核异构通信方案,只需要不到0.5秒即可传输完成,数据传输效率提升数十倍!同时还避免了串行总线易受EMC干扰的问题,提高了数据传输稳定性,简化了应用编程,可满足用户快速开发的需求。

以上就是多核异构处理器中A核与M核通信过程的解析,想要了解具体详细程序实例,可到【飞凌嵌入式官方微信公众号】回复关键词“程序实例”查看

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

    关注

    68

    文章

    20336

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    XC7Z020-2CLG484I 双异构架构 全能型 SoC

    Zynq-7000 系列的核心型号,创新性地将双 ARM Cortex-A9 处理器与 7 系列 FPGA 可编程逻辑深度集成,构建起 “软件可编程 + 硬件可定制” 的异构计算架
    发表于 02-28 23:37

    通信延时,都做到这么低了?附:各项完整测试数据

    先说说,为什么通信延时能逼疯工程师?咱做工业控制的都知道,多核处理器就像车间里的多个师傅,例如瑞芯微RK3576处理器
    的头像 发表于 12-24 16:36 316次阅读
    <b class='flag-5'>核</b>间<b class='flag-5'>通信</b>延时,都做到这么低了?附:各项完整测试数据

    米尔RK3506核心板SDK重磅升级,解锁三A7实时控制新架构

    在工业控制与边缘智能领域,开发者的核心需求始终明确:在可控的成本内,实现可靠的实时响应、稳定的通信与高效的开发部署。米尔电子基于RK3506处理器打造的MYC-YR3506核心板平台,近期完成了一次
    发表于 12-19 20:35

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

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

    【玩转多核异构】T153核心板RISC-V的实时性应用解析

    飞凌嵌入式FET153-S核心板的异构多核架构展现出了卓越的通信性能,能够为诸多应用提供高效可靠的核心支撑,特别适用于对实时性和稳定性要求极高的智能应用场景。
    的头像 发表于 11-14 09:40 9340次阅读
    【玩转<b class='flag-5'>多核</b><b class='flag-5'>异构</b>】T153核心板RISC-V<b class='flag-5'>核</b>的实时性应用<b class='flag-5'>解析</b>

    MYD-LD25X Cortex-M33实时开发实战解析

    在嵌入式系统设计中,如何平衡高性能计算与实时控制一直是工程师面临的挑战。STM32MP257的异构架构为这一难题提供了优雅的解决方案,而其中的Cortex-M33实时更是实现硬实时性能的关键所在
    的头像 发表于 11-06 08:04 5375次阅读
    MYD-LD25X Cortex-<b class='flag-5'>M</b>33实时<b class='flag-5'>核</b>开发实战<b class='flag-5'>解析</b>

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

    前言:在多核异构架构成为工业SoC主流方案的当下,芯驰D9360凭借其Cortex-A55与Cortex-R5的协同设计,在需同时处理复杂应用与实时任务的场景中表现突出。本文将以眺望电
    的头像 发表于 09-10 08:31 1357次阅读
    深入芯驰D9360<b class='flag-5'>核</b>间<b class='flag-5'>通信</b>案例,RPMSG关键技术深度剖析

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

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

    【老法师】多核异构处理器M程序的启动、编写和仿真

    文章,小编就将以飞凌嵌入式的OKMX8MP-C开发板为例,为大家介绍多核异构处理器M程序的启动配置、程序编写和实时仿真的
    的头像 发表于 08-13 09:05 4206次阅读
    【老法师】<b class='flag-5'>多核</b><b class='flag-5'>异构</b><b class='flag-5'>处理器</b>中<b class='flag-5'>M</b><b class='flag-5'>核</b>程序的启动、编写和仿真

    T113-i芯片技术解析:高性能嵌入式处理器的创新设计

    性能与功耗之间实现了出色的平衡。  核心架构 T113-i采用异构多核设计,搭载双ARM Cortex-A7主处理器,主频可达1.2GHz
    的头像 发表于 07-17 14:15 1541次阅读

    【新品发布】硬核性能,降本之选,启扬RK3506开发板全面上新

    STAMP-RK3506-KIT开发板基于RockchipRK3506处理器开发设计。集成三Cortex-A7+Cortex-M0多核异构
    的头像 发表于 07-10 17:30 1295次阅读
    【新品发布】硬核性能,降本之选,启扬RK3506开发板全面上新

    【飞凌嵌入式】基于i.MX9352开发板M的FreeRTOS设计例程

    i.MX 9352作为NXP 推出的新一代轻量级边缘AI处理器,集成2个Cortex-A55和1个Cortex-M33实时,其架构设计充
    的头像 发表于 06-13 16:14 2427次阅读
    【飞凌嵌入式】基于i.MX9352开发板<b class='flag-5'>M</b><b class='flag-5'>核</b>的FreeRTOS设计例程

    紫光展锐4G旗舰性能之王智能穿戴平台W527登场 一大三小异构处理器架构

    W527产品亮点: 1、业界领先的一大三小异构处理器架构,性能体验凌驾同类产品; 2、12nm工艺制程,超微高集成3D SiP技术,PCB布局更加灵活; 3、强劲续航,智能应用覆盖
    的头像 发表于 06-03 16:44 9866次阅读
    紫光展锐4G旗舰性能之王智能穿戴平台W527登场 一大<b class='flag-5'>核</b>三小<b class='flag-5'>核</b><b class='flag-5'>异构</b><b class='flag-5'>处理器</b>架构

    米尔瑞芯微多核异构低功耗RK3506核心板重磅发布

    近日,米尔电子发布MYC-YR3506核心板和开发板,基于国产新一代入门级工业处理器瑞芯微RK3506,这款芯片采用三Cortex-A7+单核Cortex-M0
    发表于 05-16 17:20

    3A7+单核M0多核异构,米尔全新低功耗RK3506核心板发布

    近日,米尔电子发布MYC-YR3506核心板和开发板,基于国产新一代入门级工业处理器瑞芯微RK3506,这款芯片采用三Cortex-A7+单核Cortex-M0
    的头像 发表于 05-15 08:02 2141次阅读
    3<b class='flag-5'>核</b><b class='flag-5'>A</b>7+单核<b class='flag-5'>M</b>0<b class='flag-5'>多核</b><b class='flag-5'>异构</b>,米尔全新低功耗RK3506核心板发布