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

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

3天内不再提示

Jacinto 7核间通信解决方案

星星科技指导员 来源:TI 作者:Fredy Zhang 2023-03-16 09:19 次阅读

近年来,处理器性能越来越强,无论是通用处理器还是嵌入式处理器,都进入了多核处理器时代,多核处理器中,每个核心不能独立工作,需要协同工作才能充分发挥处理器的性能,也就是需要高效的核间通信(Inter-processor Communication)机制。核间通信的主要目标是,充分利用硬件提供的机制,实现高效的核间通信,从而充分发挥Soc的整体性能。

核间通信(IPC)方案简介

TI J7 DRA8xx/TDA4xx、AM65xx、J6家族的处理器,基于异构、可扩展的架构开发,拿TDA4VM的处理器来说,该处理器包含了TI DSP处理器(C66/C7x)、Cortex A72、Main域Cortex R5F、MCU域Cortex R5F、深度学习加速器MMA、图形处理器GPU等核,属于多核异构的架构。Cortex A72可用于通用计算、图形处理器GPU用于3D图像的加速、DSP可用于算法的加速、C7x/MMA可支持深度学习的处理、Cortex-R5F可用于外设的控制和图像的前后处理等。多核异构的优点是采用适合的核做擅长的事,再加上专用硬件加速器也可处理特定任务,从而在性能、功耗和成本 上达到最佳平衡。

核间通信(IPC)从软件的角度来讲, IPC提供了运行在处理器上的软件接口,可供客户调用,从而实现在多核处理器中核与核之间的通信。举个例子来说,如图1: TI Jacinto7软件框架紫色框模块所示,每个核上都运行了IPC软件模块,从而实现了TDA4VM上不同核之间的核间通信。本文的后续部分将以TDA4VM为例说明TI多核异构处理器的核间通信方案,对于其它Jacinto7处理器、AM65xx、J6 等多核环境中的处理器之间进行通信采用的是同样的方式。

pYYBAGQSbouAPcRBAACB5f3yvxI001.png

图1 : TI Jacinto7 TDA4VM SW Framework

Jacinto7 TDA4VM处理器的核间通信(IPC)框图如图2所示,TDA4VM拥有2*A72、6*R5F、2*C66、C7x等核,不同核之间的通信依赖IPC(Inter-Processor Communication)。同时,同一种类型的多个核心又可以运行在不同的模式,比如A72可以运行的SMP模式,双核R5F可以运行在Lockstep或Split Mode上,因此,核间通信方案要充分利用硬件提供的机制,实现高效的核间通信,从而充分发挥Soc的整体性能。

poYBAGQSbouACuphAABcsUltKgE682.png

图2 : TI Jacinto7 TDA4VM IPC Framework

TDA4VM硬件提供了Mailbox硬件模块,Mailbox中断机制允许软件在两核之间建立通信通道,这种机制类似于邮箱工作的方式。每个核都有一个专属的邮箱,邮件就是消息内容,通过指定接收方,就可以将消息传递到指定核。Mailbox硬件上支持中断,因此指定核有消息时,就会收到中断,然后开始处理邮件,即处理消息。这就是Mailbox的工作方式。

TDA4VM的IPC方案,基于Mailbox的实现的方式的不同,常用的核间通信方式有两种。

基于RPMSG的核间通信解决方案,适合小块数据消息传递。

基于Share Memory核间通信解决方案,适合大块数据传输。

基于RPMSG的核间通信解决方案

RPMSG定义了通信协议的接口,采用RPMSG协议,基于Mailbox模块的核间通信方案如图3所示,该方案传递消息时,首先需要将消息拷贝到的共享内存中(VRing),然后,利用Mailbox将消息传递到指定核上。

pYYBAGQSboyAWRXyAACMKQvisVw456.png

图3: RPMSG的核间通信解决方案

上图中术语和缩写解释如下:

Term Definition or Explanation
IPC Inter-Processor Communication
MailBox IP which provides queued interrupt mechanism for communication channel
VRing Ring Buffer in shared memory
Rpmsg queue on local memory

核间通信步骤如下所述(步骤如红色圈中所示):

发送端发送: Core1核调用Rpmsg_send发送消息,应用程序复制到两个 CORE 之间使用的 VRING。此后,IPC 驱动程序将 VRING ID 发布到硬件指定Mailbox的通道中。

接收端接收:Core2核上Mailbox触发中断,在core2的 ISR 中,它提取 VRING ID,然后根据 VRING ID,检查该 VRING 中的任何消息。

接收端发送: Core2核应用程序调用Rpmsg_send发送消息,应用程序复制到两个 CORE之间使用的 VRING。此后,IPC驱动程序将 VRING ID 发布到硬件Mailbox 的另外一个通道中。

发送端接收: Core1核上Mailbox触发中断,在core1的ISR中,它提取 VRING ID,然后根据 VRING ID,检查该 VRING 中的任何消息。

注意事项:

RPMSG传输消息最大512 Byte。

Performance 参考这里.

基于Share Memory核间通信解决方案

基于Share Memory的核间通信解决方案,底层仍然使用的是硬件的模块Mailbox,如图4所示所示,发送和接受采用的是不同的Mailbox通道。 每一组核与核之间使用的都是指定的Mailbox通道。同时,Share Memory的解决方案需要分配指定Share Memory用以核间通信共享数据。 Share Memory是一段memory 能够被多个核所所访问,所以名为共享内存,在TDA4VM中,这段内存通常是来自于DDR中的一个数据段。共享内存在核间通信方案中,一个核可以将数据写入共享内存,Mailbox可以将内存指针传递到另一个核上,另一个核可以拿到内存指针后,直接从Share Memory读取数据,这一个过程不需要经过数据的拷贝,因此,非常高效,适合大数据量的传输。

poYBAGQSboyAfuEkAAA5KO7hARU779.png

图4: 基于Share Memory的核间通信解决方案

核间通信步骤如下所述:

Processor 1: 拷贝数据到Share Memory中的指定位置;

Processor 1:将Share Memory中的指定地址等信息写入Mailbox的指定通道;

Processor 2:接收Mailbox 中断和消息的地址;

Processor 2:从Share Memory中的指定地址读取消息;

Processor 2: 处理接收到的消息,并准备回复消息;

Processor 2:拷贝数据到Share Memory 指定位置;

Processor 2:将Share Memory中的指定地址等信息写入Mailbox的指定通道;

Processor 1:接收Mailbox 中断和消息的地址;

Processor 1:从Share Memory中的指定地址读取消息;

Processor 1:处理接收到的消息。

总结

核间通信广泛应用于TI的多核异构处理器,本文介绍了TI多核异构处理的两种核间通信(IPC)的两种解决方案。基于RPMSG的核间通信解决方案采用了RPMSG协议,广泛应用于Soc内部核之间的消息传递,比如不同核对Camera的控制。适用于消息量小的类型。基于Share Memory核间通信解决方案,由于消息传递过程不需要数据拷贝,数据传输更高效,因此,适用于大块的数据传输,TDA4VM内部图像数据的传输就来自于这种方案。另外,需要注意的时,TDA4VM划分了主域核MCU域,MCU域的软件通常单独开发,对于MCU与其它核的通信采用CDD IPC软件模块,基于Share Memory核间通信解决方案可适用有大数据量传输的需求。

审核编辑:郭婷

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

    关注

    68

    文章

    19291

    浏览量

    229904
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17152

    浏览量

    351260
  • 嵌入式
    +关注

    关注

    5083

    文章

    19129

    浏览量

    305400
收藏 人收藏

    评论

    相关推荐

    SoC的通信机制—mailbox介绍

    目前很多芯片都会有几个core,有的是Cortex M0+、M4、M7、A53、A73等等,有的有着2、3、4甚至6
    发表于 08-11 10:51 5777次阅读
    SoC的<b class='flag-5'>核</b><b class='flag-5'>间</b><b class='flag-5'>通信</b>机制—mailbox介绍

    6678 多核导航器 通信

    您好!        我最近使用6678的多核导航器进行通信,有些地方不明白,想问下各位专家。      我是这么做的,我通过CIC把48事件映射到中断4上,DSP事件48是高优先级队列
    发表于 06-21 06:54

    关于C6678IPC通信的问题

    测试C6678的通信,使用的IPC中断的方式。中间看到在文档中关于每个IPC生成寄存器中包含了28个源ID,源ID的作用取决于软件的定义,是不是可以理解为我如果写其中的源SRCS27,则我在中断
    发表于 08-03 07:15

    搞定单CPU内双通信和双CPU通信

    [table][tr][td] 终于搞定了单CPU内双通信和双CPU通信 +-----+ + ARM ++ DDR + + DS
    发表于 08-19 01:37

    通信(IPC)解决方案

    框模块所示,每个上都运行了IPC软件模块,从而实现了TDA4VM上不同之间的通信。本文的后续部分将以TDA4VM为例说明TI多核异构
    发表于 11-03 07:26

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

    本文从对比两颗分立MCU与单芯片双MCU开始(以LPC4350为例),展开介绍了非对称双MCU的基础知识与重要特点。接下来,重点介绍了通信
    发表于 03-26 15:31 3683次阅读
    非对称双<b class='flag-5'>核</b>MCU基础知识及<b class='flag-5'>核</b><b class='flag-5'>间</b><b class='flag-5'>通信</b>

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

    本文从对比两颗分立MCU与单芯片双MCU开始(以LPC4350为例),展开介绍了非对称双MCU的基础知识与重要特点。接下来,重点介绍了通信
    的头像 发表于 03-13 15:47 5199次阅读
    非对称双<b class='flag-5'>核</b>MCU基础知识及<b class='flag-5'>核</b><b class='flag-5'>间</b><b class='flag-5'>通信</b>

    Jacinto 6 QNX系统汽车解决方案介绍

    具有全景可视摄像头的Jacinto 6 QNX汽车解决方案
    的头像 发表于 08-23 00:11 4529次阅读

    Jacinto7 TDA4VM处理器的通信解决方案

    近年来,处理器性能越来越强,无论是通用处理器还是嵌入式处理器,都进入了多核处理器时代,多核处理器中,每个核心不能独立工作,需要协同工作才能充分发挥处理器的性能,也就是需要高效的通信
    的头像 发表于 07-01 12:04 8754次阅读
    <b class='flag-5'>Jacinto7</b> TDA4VM处理器的<b class='flag-5'>核</b><b class='flag-5'>间</b><b class='flag-5'>通信</b><b class='flag-5'>解决方案</b>

    Jacinto™︎ 7通信解决方案

    Jacinto™︎ 7通信解决方案
    发表于 10-28 11:59 3次下载
    <b class='flag-5'>Jacinto</b>™︎ <b class='flag-5'>7</b><b class='flag-5'>核</b><b class='flag-5'>间</b><b class='flag-5'>通信</b><b class='flag-5'>解决方案</b>

    SoC通信的实现机制之mailbox中断

    目前很多芯片都会有几个core,有的是Cortex M0+、M4、M7、A53、A73等等,有的有着2、3、4甚至6
    的头像 发表于 09-05 17:29 1745次阅读
    SoC<b class='flag-5'>核</b><b class='flag-5'>间</b><b class='flag-5'>通信</b>的实现机制之mailbox中断

    通信(IPC)的目标和实现机制

    (Inter-processor communication)来通信,进行数据的交互。 通信
    的头像 发表于 09-13 17:32 3384次阅读
    <b class='flag-5'>核</b><b class='flag-5'>间</b><b class='flag-5'>通信</b>(IPC)的目标和实现机制

    Jacinto 7显示子系统概述应用说明

    电子发烧友网站提供《Jacinto 7显示子系统概述应用说明.pdf》资料免费下载
    发表于 09-14 10:00 0次下载
    <b class='flag-5'>Jacinto</b> <b class='flag-5'>7</b>显示子系统概述应用说明

    Jacinto6屏幕旋转显示解决方案

    电子发烧友网站提供《Jacinto6屏幕旋转显示解决方案.pdf》资料免费下载
    发表于 09-23 11:22 0次下载
    <b class='flag-5'>Jacinto</b>6屏幕旋转显示<b class='flag-5'>解决方案</b>

    Jacinto7 HS设备闪存解决方案

    电子发烧友网站提供《Jacinto7 HS设备闪存解决方案.pdf》资料免费下载
    发表于 09-27 11:19 0次下载
    <b class='flag-5'>Jacinto7</b> HS设备闪存<b class='flag-5'>解决方案</b>