异构多核核间通信调度方法

文档序号:34385985发布日期:2023-06-08 06:09阅读:203来源:国知局
异构多核核间通信调度方法

本发明属于嵌入式异构多核处理器核间通信,具体涉及一种异构多核核间通信调度方法。


背景技术:

1、随着工业现场各种复杂业务需求的不断提高,传统嵌入式设备采用单核处理器在性能上已经很难满足要求。为提高性能,嵌入式设备正面临从单核处理器走向多核处理器的转变。半导体技术的不断发展,使得在一个芯片上集成多个处理器成为可能,设备能够同时处理多个业务,极大地提升了性能。常见的异构多核构架,通常在芯片内部集成微处理器(micro processor unit,mpu)和微控制器(mirco controller unit,mcu),mpu性能高,一般运行通用操作系统,提供富运行环境,处理人机交互等图像显示业务;而mcu专注于控制,一般运行实时操作系统或者裸机程序,处理实时的控制以及信号处理业务。针对工业现场中需要嵌入式设备支持强实时.高算力.富运行环境等,通过异构多核设备即在芯片上集成mpu和mcu能够满足要求。

2、异构多核架构设备支持同时运行不同的系统,各从系统协助主系统完成工作,因此系统之间存在通信的需求,然而各个内核相互独立,使得操作系统核间通信比较复杂。两个系统可以通过建立socket完成通信,但是实时系统一般不持支socket,需要额外添加协议栈组件,实现步骤相对复杂。为实现对异构多核设备核间通信的统一管理,mentorgraphics与xilinx提出了一种开放式非对称多处理(open asymmetric multi-processing,openamp)框架,使用远程处理器消息传递(remote processor messaging,rpmsg)组件完成核间通信,同时nxp公司提出rpmsg-lite组件,能够适用于小型mcu。rpmsg组件基于共享内存完成通信,操作系统将消息以rpmsg协议规范进行封装,写入共享内存后触发硬件核间中断,通知对方进行读取。

3、rpmsg组件为异构多核架构下的主从核系统提供统一的接口,实现对核间通信的管理。核间通信需要使用硬件中断资源,并且此资源是唯一的,因此多个业务进行核间通信时存在竞争。rpmsg组件可以使用先进先出的方法对消息进行调度,虽然此方案能保证公平性,但是无法保证关键消息的实时性;采用优先级调度可以保证高优先级消息最快得到响应,然而同优先级之间采用先进先出方式调度,当消息长度不一致时将会导致同优先级消息的实时性无法得到保证。


技术实现思路

1、本发明提供一种异构多核核间通信调度方法,通过添加调度模块实现消息的调度,能够保证关键消息的实时性。

2、本发明所采用的技术方案是,异构多核核间通信调度方法,包括以下步骤:

3、步骤1.主核系统应用程序将其所产生的主核系统消息发送至消息调度模块;

4、步骤2.消息调度模块对主核系统消息进行调度并发送至rpmsg设备驱动模块;

5、步骤3.rpmsg设备驱动模块按照rpmsg协议规范对主核系统消息进行封装,生成主核系统rpmsg消息;

6、步骤4.rpmsg设备驱动模块将其生成主核系统rpmsg消息写入共享内存中;

7、步骤5.rpmsg设备驱动模块发起核间中断,通知rpmsg通信组件模块对共享内存中的主核系统rpmsg消息进行读取;

8、步骤6.rpmsg通信组件模块对共享内存中的主核系统rpmsg消息进行读取;解析后发送至从核系统应用程序;

9、步骤7.从核系统应用程序对解析后的主核系统rpmsg消息进行处理,生成从核系统消息;

10、步骤8.从核系统应用程序将其所产生的从核系统消息发送至rpmsg通信组件模块,rpmsg通信组件模块按照rpmsg协议规范对从核系统消息进行封装,生成从核系统rpmsg消息;

11、步骤9.rpmsg通信组件模块将其生成的从核系统rpmsg消息写入共享内存中;rpmsg通信组件模块发起核间中断,通知rpmsg设备驱动模块对共享内存中的从核系统rpmsg消息进行读取;

12、步骤10.rpmsg设备驱动模块对共享内存中的从核系统rpmsg消息进行读取解析后发送至主核系统应用程序,从核系统应用程序对解析后的从核系统rpmsg消息进行处理。

13、本发明的特点还在于:

14、主核系统消息包括高优先级消息、中优先级消息和低优先级消息。

15、消息调度模块包括一个高优先级队列、若干个中优先级队列和一个第优先级队列;高优先级队列、中优先级队列和低优先级队列用于缓存高优先级消息、中优先级消息和低优先级消息。

16、高优先级消息、中优先级消息和低优先级消息分别以链表结构存储缓存在高优先级队列、中优先级队列和低优先级队列中。

17、消息调度模块还包括调度器,用于对主核系统高优先级消息、中优先级消息和低优先级消息进行调度,并将其发送至rpmsg设备驱动模块。

18、高优先级消息、中优先级消息和低优先级消息按照先进先出方式进行调度;主核系统中优先级消息按照赤字轮询方式进行调度。

19、消息调度模块按照以下步骤进行调度:

20、步骤a1.调度器判断高优先级队列是否为空,若队列为空,进入步骤a2;若队列不为空,则将高优先级队列队首的消息输出,写入共享内存中,并重新进入步骤a1;

21、步骤a2.调度器判断中优先级队列是否为空,若队列为空,进入步骤a3;若队列不为空,则使用赤字轮询方式,将相应队列的首个消息输出,写入共享内存中,并重新进入步骤a1;

22、步骤a3.调度器判断低优先级队列是否为空,若队列为空,进入步骤a1,若队列不为空,则将低优先级队列队首的消息输出,写入共享内存中,并重新进入步骤a1。

23、步骤a2中赤字轮询方式进行调度流程按照以下步骤进行:

24、步骤b1.调度器获取本次轮询对应队列的下标i;

25、步骤b2.调度器根据更新标志判断是否需要更新赤字di,若设置更新标志,则赤字di需要加上设置的常量qi;

26、步骤b3.调度器判断当前中优先级队列是否为空,若中优先级队列为空,将赤字di清零,更新队列下标i,并设置赤字di更新标志,重新进入步骤b2;若中优先级队列不为空,则进入步骤b4;

27、步骤b4.调度器判断当前队列赤字是否大于队首消息长度,若大于消息长度,对消息进行出队处理,并更新队列赤字,即di减去消息长度,并结束此次轮询;若当前队列赤字小于消息长度,则进入步骤b5;

28、步骤b5.调度器更新队列下标i,设置赤字di更新标志,并结束此次轮询。

29、deficit为本次轮询允许输出的最大字节数。

30、本发明的有益效果是:本发明异构多核核间通信调度方法,首先通信系统使用异构多核平台,处理器内核分为主核系统和从核系统,主核运行通用系统linux,从核运行实时系统freertos,能够满足工业现场并发的强实时、高算力、富运行环境等需求;其次主从核之间使用rpmsg进行核间通信,提供统一的接口进行管理,使用共享内存存储消息,并触发硬件核间中断通知对方,核间通信效率高;最后通过添加消息调度模块,将消息分为高、中、低三种优先级,严格按照优先级进行调度,且中优先级之间按照赤字轮询进行调度,能够减小实时消息的时延。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1