电子说
先说说,为什么核间通信延时能逼疯工程师?咱做工业控制的都知道,多核处理器就像车间里的多个师傅,例如瑞芯微RK3576处理器:A72核当领导管全局(跑Linux,人机交互、数据处理),A53核当工程师干细活(跑RTOS,控制电机、读传感器),M0核当助手打辅助(跑实时任务)。
这几位师傅之间,得随时“喊话”才行,比如A72喊A53:把电机转速调到1500rpm,A53得立刻回答:收到,已执行。
要是喊话慢了,多轴电机同步时,一个轴动快了0.5ms,另一个轴动慢了0.5ms,结果就是机械臂抓工件歪了。
所以核间通信的延时,不是冷冰冰的数字,是设备能不能用的生死线!
▍实测2us,有点东西
一张表,把工程师们最关心的各项数据全部展现。数据为RK3576处理器A72、A53与M0核间通信中的RPMsg消息包的发送耗时与时延。实测可做到2us,时延确实低,看来RK3576处理器在工控领域很能打啊!

Linux(A72)->RTOS(A53)、Linux(A72)->Baremetal(A53)的Rpmsg_send发送间隔为10us,Linux(A72)->RTOS(M0)的Rpmsg_send发送间隔为1000us。Linux->RTOS(A53)发送消息包的时间过程,如下图所示:

我们通过软件计时、硬件测量两种方式,计算各阶段耗时,想了解的兄弟可以看下:

▍2us延时,是精度的分水岭
微秒级别的超低延时,适用于驱控一体控制器、PLC、数控机床等高精度工业自动化场景,能显著提升设备响应速度,轻松应对严苛的工业控制需求。
别小瞧这2us!在工业自动化场景中,2us的延时差异,可能意味着:一台数控机床的加工精度差0.1mm;一个PLC程序的响应速度慢0.001秒;一套驱控一体控制器的同步误差扩大10倍!它就是精度的分水岭!

瑞芯微RK3576处理器很好地支持了AMP(Asymmetric Multi-Processing),即“非对称多处理架构”。“非对称AMP双系统”是指多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux + RTOS/裸机,但需一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,既可各自独立运行不同的任务,又可多个核心之间进行核间通信。

而RPMsg(Remote Processor Messaging),是一种专为异构多核处理系统设计的通信协议。它允许不同处理器核心之间通过共享内存高效地交换信息,为主核心和从核心之间提供了一种标准化的消息传递机制,使得这些不同架构的核心能够协同工作,最大限度地发挥它们的性能。RPMsg的主要特点包括:
(1)基于VirtIO管理共享内存,实现了高效的数据传输
(2)避免额外的拷贝开销,优化了内存使用
(3)配备同步与互斥机制,确保数据交换的高效与安全

审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !