本发明涉及计算机通讯领域,具体涉及一种硬件msgbox实现双核soc核间软件系统高效通信的结构及方法。
背景技术:
双核soc(片上系统)的两个内核一般分工不同负责的业务差别较大,两个核上运行的软件系统为了支撑各自分管的业务导致软件系统差异也较大,但soc作为一个整体,双核间的业务又有较大的耦合,需要两边软件系统可以高效的通信,以交换业务数据。
技术实现要素:
本发明的目的在于克服上述不足问题,提供一种硬件msgbox实现双核soc核间软件系统高效通信的结构及方法。
本发明为实现上述目的所采用的技术方案是:硬件msgbox实现双核soc核间软件系统高效通信的结构,双核soc设置有硬件msgbox,所述硬件msgbox包括a核寄存器组、b核寄存器组、a核中断源、b核中断源,所述a核寄存器组存储a核向b核同步的数据,所述b核寄存器组存储b核向a核同步的数据,所述a核通过b核中断源给b核一个中断,b核在中断中提取出存储在a核寄存器组中的同步数据并完成指令任务,所述b核通过a核中断源给a核一个中断,a核在中断中提取出存储在b核寄存器组中的同步数据并完成指令任务。
所述a核寄存器组包括a核数据地址寄存器、a核数据长度寄存器、a核数据类型寄存器、a核数据状态寄存器;所述b核寄存器组包括b核数据地址寄存器、b核数据长度寄存器、b核数据类型寄存器、b核数据状态寄存器。
硬件msgbox实现双核soc核间软件系统高效通信的方法,当双核soc的a核需要向b核同步数据时,首先a核将同步数据存储在a核寄存器组中,然后a核通过b核中断源给b核一个中断,b核在中断中提取出存储在a核寄存器组中的同步数据并完成指令任务。
a核通过软件操作将msg数据块地址填写在a核数据地址寄存器,msg数据块长度填写在a核数据长度寄存器,msg数据块类型填写在a核数据类型寄存器,a核数据状态寄存器填写0xaa55表示msg数据块有效,然后a核通过b核中断源给b核一个中断,b核在中断中提取出填写在a核数据地址寄存器中的msg数据块地址、填写在a核数据长度寄存器中的msg数据块长度,填写在a核数据类型寄存器中的msg数据块类型并完成指令任务,指令任务处理完a核数据地址寄存器指向的数据后,将a核数据状态寄存器清零置为无效状态。
本发明的特点是:通过硬件msgbox主动通知对方一些消息/事件,并实现对方收取消息/事件过程中内存免拷贝,有效提高核间业务数据的传递效率。
具体实施方式
本发明为一种硬件msgbox实现双核soc核间软件系统高效通信的结构,双核soc设置有硬件msgbox,所述硬件msgbox包括a核寄存器组、b核寄存器组、a核中断源、b核中断源,所述a核寄存器组存储a核向b核同步的数据,所述a核寄存器组包括a核数据地址寄存器、a核数据长度寄存器、a核数据类型寄存器、a核数据状态寄存器,所述b核寄存器组存储b核向a核同步的数据,所述b核寄存器组包括b核数据地址寄存器、b核数据长度寄存器、b核数据类型寄存器、b核数据状态寄存器,所述a核通过b核中断源给b核一个中断,b核在中断中提取出存储在a核寄存器组中的同步数据并完成指令任务,所述b核通过a核中断源给a核一个中断,a核在中断中提取出存储在b核寄存器组中的同步数据并完成指令任务。
本发明为一种硬件msgbox实现双核soc核间软件系统高效通信的方法,当双核soc的a核需要向b核同步数据时,
首先a核将同步数据存储在a核寄存器组中,然后a核通过b核中断源给b核一个中断,b核在中断中提取出存储在a核寄存器组中的同步数据并完成指令任务,具体的,a核通过软件操作将msg数据块地址填写在a核数据地址寄存器,msg数据块长度填写在a核数据长度寄存器,msg数据块类型填写在a核数据类型寄存器,a核数据状态寄存器填写0xaa55表示msg数据块有效,然后a核通过b核中断源给b核一个中断,b核在中断中提取出填写在a核数据地址寄存器中的msg数据块地址、填写在a核数据长度寄存器中的msg数据块长度,填写在a核数据类型寄存器中的msg数据块类型并完成指令任务,指令任务处理完a核数据地址寄存器指向的数据后,将a核数据状态寄存器清零置为无效状态,同理,b核需要向a核同步数据的时候也按照上述步骤执行。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
1.硬件msgbox实现双核soc核间软件系统高效通信的结构,其特征在于:双核soc设置有硬件msgbox,所述硬件msgbox包括a核寄存器组、b核寄存器组、a核中断源、b核中断源,所述a核寄存器组存储a核向b核同步的数据,所述b核寄存器组存储b核向a核同步的数据,所述a核通过b核中断源给b核一个中断,b核在中断中提取出存储在a核寄存器组中的同步数据并完成指令任务,所述b核通过a核中断源给a核一个中断,a核在中断中提取出存储在b核寄存器组中的同步数据并完成指令任务。
2.如权利要求1所述的硬件msgbox实现双核soc核间软件系统高效通信的结构,其特征在于:所述a核寄存器组包括a核数据地址寄存器、a核数据长度寄存器、a核数据类型寄存器、a核数据状态寄存器;所述b核寄存器组包括b核数据地址寄存器、b核数据长度寄存器、b核数据类型寄存器、b核数据状态寄存器。
3.硬件msgbox实现双核soc核间软件系统高效通信的方法,其特征在于:当双核soc的a核需要向b核同步数据时,首先a核将同步数据存储在a核寄存器组中,然后a核通过b核中断源给b核一个中断,b核在中断中提取出存储在a核寄存器组中的同步数据并完成指令任务。
4.硬件msgbox实现双核soc核间软件系统高效通信的方法,其特征在于:a核通过软件操作将msg数据块地址填写在a核数据地址寄存器,msg数据块长度填写在a核数据长度寄存器,msg数据块类型填写在a核数据类型寄存器,a核数据状态寄存器填写0xaa55表示msg数据块有效,然后a核通过b核中断源给b核一个中断,b核在中断中提取出填写在a核数据地址寄存器中的msg数据块地址、填写在a核数据长度寄存器中的msg数据块长度,填写在a核数据类型寄存器中的msg数据块类型并完成指令任务,指令任务处理完a核数据地址寄存器指向的数据后,将a核数据状态寄存器清零置为无效状态。
技术总结