CN112667420B - 实现异构系统内部通信的方法、装置、设备及存储介质 - Google Patents
实现异构系统内部通信的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112667420B CN112667420B CN202110063081.XA CN202110063081A CN112667420B CN 112667420 B CN112667420 B CN 112667420B CN 202110063081 A CN202110063081 A CN 202110063081A CN 112667420 B CN112667420 B CN 112667420B
- Authority
- CN
- China
- Prior art keywords
- real
- time
- communication
- rpmsg
- systems
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本发明提供了一种实现异构系统内部通信的方法、装置、设备及存储介质,所述异构系统包括若干个实时系统和若干个非实时系统。所述方法包括:设置一个实时系统作为实时代理系统和一个非实时系统作为非实时代理系统;通过其他实时系统与实时代理系统之间的通信、实时代理系统与非实时代理系统之间的通信、非实时代理系统和其他非实时系统之间通信,实现各实时系统与各非实时系统之间通信。本发明所述方法、装置、设备及存储介质解决了在单处理器只能一个实时系统向一个非实时系统的发送通信内容的限制。
Description
技术领域
本发明涉及计算机操作系统领域,尤其涉及实现异构系统内部通信的方法、装置、设备及存储介质领域。
背景技术
现有技术只能解决基于一个Linux系统与实时操作系统之间在同一处理器上的通信问题。
当有多个Linux系统与实时操作系统之间进行通信的时候,只能选择其中一个Linux系统与实时操作系统进行通信,其他Linux系统则无法与实时操作系统进行通信。
发明内容
有鉴于此,本发明实施例提供了一种实现异构系统内部通信的方法、装置、设备及存储介质,通过设置的实时代理系统和非实时代理系统之间通信,实现各实时系统与各非实时系统间在一个处理器上的通信。
第一方面,本发明实施例提供了一种实现异构系统内部通信的方法,所述异构系统包括若干个实时系统和若干个非实时系统,包括设置其中一个实时系统为实时代理系统和其中一个非实时系统为非实时代理系统;通过其他实时系统与实时代理系统之间的通信、实时代理系统与非实时代理系统之间的通信、非实时代理系统和其他非实时系统之间通信,实现各实时系统与各非实时系统之间通信。
由上,通过设置的实时代理系统和非实时代理系统的转发,实现各实时系统与各非实时系统间通信,解决在一个处理器上一个非实时系统只能与一个实时系统通信的限制。
根据第一方面,在所述一种实现异构系统内部通信的方法的一种可能实施方式中,所述实时代理系统与非实时代理系统之间的通信基于RPMSG通道设备进行通信。
由上,基于RPMSG通道设备的通信速度快,结合中断通知的方法实现实时代理系统和非实时代理之间无阻塞的高速通信。
根据第一方面,在所述一种实现异构系统内部通信的方法的一种可能实施方式中,所述实时代理系统与非实时代理系统之间的通信基于RPMSG通道设备进行通信包括,实时代理系统和非实时代理系统分别创建其RPMSG通道设备,并分别分配固定的连续的专用内存;实时代理系统和非实时代理系统进行通信时,通过系统调用发送核间中断通知对方从己方的RPMSG通道设备的专用内存上读取基于RPMSG协议封装的通信内容。
由上,基于RPMSG通道设备结合核间中断通知的方式,实现实时代理系统和非实时代理系统之间无阻塞的高速通信。
根据第一方面,在所述一种实现异构系统内部通信的方法的一种可能实施方式中,所述其他实时系统与实时代理系统之间的通信基于RPMSG通道设备进行通信。
由上,基于RPMSG通道设备的通信速度快,结合中断通知的方法实现实时代理系统和其他各实时系统之间无阻塞的高速通信。
根据第一方面,在所述一种实现异构系统内部通信的方法的一种可能实施方式中,所述其他实时系统与实时代理系统之间的通信基于RPMSG通道设备进行通信包括:其他各实时系统分别创建其RPMSG通道设备,并分别分配固定的连续的专用内存;其他各实时系统和实时代理系统进行通信时,通过系统调用发送服务中断通知对方从己方的RPMSG通道设备的专用内存上读取基于RPMSG协议封装的通信内容。
由上,基于RPMSG通道设备结合服务中断通知的方式,实现实时代理系统和其他各实时系统之间无阻塞的高速通信。
根据第一方面,在所述一种实现异构系统内部通信的方法的一种可能实施方式中,所述非实时代理系统与其他非实时系统之间采用基于下列虚拟设备之一进行通信:虚拟PCI设备、VirtIO通信设备、虚拟串口设备和VirtIO-Vsock设备。
由上,非实时代理系统和其他各非实时系统基于多种虚拟设备通信,包括虚拟PCI设备、VirtIO网络设备、虚拟串口设备和VirtIO-Vsock设备等方式,基于实际场景进行选择,其中,基于VirtIO-Vsock设备的通信无需IP地址,无需适配程序,实现无阻塞的高速通信。
根据第一方面,在所述一种实现异构系统内部通信的方法的一种可能实施方式中,所述非实时代理系统与其他非实时系统之间通信基于VirtIO-Vsock设备进行通信包括:各非实时系统创建其VirtIO-Vsock设备;非实时代理系统和其他各非实时系统进行通信时,一方在自己的VirtIO-Vsock设备的共享内存的数据通道发送通信内容,且在所述共享内存的控制通道发送通信请求通知对方,对方通过监听获取所述通信请求,并在所述数据通道里接收所述通信内容;其中,所述通信内容基于RPMSG协议封装。
由上,基于VirtIO-Vsock设备的共享内存的数据通道的高速数据传输,基于所述共享内存的控制通道及时发现通信请求,从而实现非实时代理系统和其他各非实时系统之间无阻塞的高速通信。
第二方面,本发明实施例提供了一种实现异构系统内部通信的装置,所述异构系统包括若干个实时系统和若干个非实时系统,所述装置包括:代理设置模块、用于选择一个实时系统作为实时代理系统和选择一个非实时系统作为非实时代理系统;系统间第一通信模块、用于各其他实时系统与实时代理系统之间通信;系统间第二通信模块、用于实时代理系统和非实时代理系统之间的通信;系统间第三通信模块、用于非实时代理系统和其他非实时系统间的通信。
由上,通过设置的实时代理系统和非实时代理系统的转发,实现各实时系统与各非实时系统间通信,解决在一个处理器上一个非实时系统只能与一个实时系统通信的限制。
根据第二方面,在所述一种实现异构系统内部通信的装置的一种可能实施方式中,所述系统间第二通信模块具体用于基于RPMSG通道设备实现实时代理系统与非实时系统间通信。
由上,基于RPMSG通道设备的通信速度快,实时代理系统和非实时代理之间的高速通信。
根据第二方面,在所述一种实现异构系统内部通信的装置的一种可能实施方式中,所述系统间第一通信模块具体用于基于RPMSG通道设备实现其他各实时系统与实时代理系统间通信。
由上,基于RPMSG通道设备的通信速度快,实现实时代理系统和其他各实时系统之间的高速通信。
根据第二方面,在所述一种实现异构系统内部通信的装置的一种可能实施方式中,所述系统间第三具通信模块具体用于基于下列虚拟设备之一进行通信:虚拟PCI设备、VirtIO通信设备、虚拟串口设备和VirtIO-Vsock设备。
由上,非实时代理系统和其他各非实时系统基于多种虚拟设备通信,包括虚拟PCI设备、VirtIO通信设备、虚拟串口和VirtIO-Vsock设备等方式,基于实际场景进行选择,其中基于VirtIO-Vsock设备的通信无需IP地址,无需适配程序,实现无阻塞的高速通信。
根据第二方面,在所述一种实现异构系统内部通信的装置的一种可能实施方式中,还包括:实时RPMSG配置模块、用于实时代理系统创建其所述RPMSG通道设备,并为之分配固定的连续的专用内存;非实时代理RPMSG配置模块、还用于非实时代理系统创建其所述RPMSG通道设备,并为之分配固定的连续的专用内存;所述系统间第二通信模块包括:第一方向第二通信模块、用于实时代理系统在其RPMSG通道设备的专用内存上存放基于RPMSG协议封装的通信内容,并通过系统调用发送第一核间中断,通知非实时代理系统,非实时代理系统的所述第一核间中断处理程序从实时代理系统的RPMSG通道设备的专用内存上读取实时代理系统的基于RPMSG协议封装的通信内容;第二方向第二通信模块、用于非实时代理系统在其RPMSG通道设备的专用内存上存放基于RPMSG协议封装的通信内容,并通过系统调用发送第二核间中断,通知实时代理系统,实时代理系统的所述第二核间中断处理程序从非实时代理系统的RPMSG通道设备的专用内存上读取非实时代理系统的基于RPMSG协议封装的通信内容。
由上,基于RPMSG通道设备结合核间中断通知的方式,实现实时代理系统和非实时代理系统之间无阻塞的高速通信。
根据第二方面,在所述一种实现异构系统内部通信的装置的一种可能实施方式中,所述实时RPMSG配置模块还用于其他各实时系统创建其所述RPMSG通道设备,并为之分配固定的连续的专用内存;所述系统间第一通信模块包括:第一方向第一通信模块、用于一其他实时系统在其RPMSG通道设备的专用内存上存放基于RPMSG协议封装的通信内容,并通过系统调用发送第一服务中断,通知实时代理系统,实时代理系统的所述第一服务中断处理程序从所述其他实时系统的RPMSG通道设备的专用内存上读取所述其他实时系统的基于RPMSG协议封装的通信内容;第二方向第一通信模块、用于实时代理系统在其RPMSG通道设备的专用内存上存放基于RPMSG协议封装的通信内容,并通过系统调用发送第二服务中断,通知相应的其他实时系统,所述相应的其他实时系统的所述第二服务中断处理程序从实时代理系统的RPMSG通道设备的专用内存上读取实时代理系统的基于RPMSG协议封装的通信内容。
由上,基于RPMSG通道设备结合服务中断通知的方式,实现实时代理系统和其他各实时系统之间无阻塞的高速通信。
根据第二方面,在所述一种实现异构系统内部通信的装置的一种可能实施方式中,还包括非实时VirtIO-Vsock配置模块,其用于各非实时系统创建其VirtIO-Vsock设备;所述系统间第三通信模块包括:第一方向第三通信模块、用于非实时代理系统基于其VirtIO-Vsock设备的第一共享内存的控制通道发送第一通信请求,且通过所述第一共享内存的数据通道,发送其基于RPMSG协议封装的第一通信内容,其他各非实时系统通过监听获取所述第一通信请求,并通过所述第一共享内存的数据通道接收所述第一通信内容;第二方向第三通信模块、用于其他各非实时系统通过其VirtIO-Vsock设备的第二共享内存的控制通道发送第二通信请求,且通过所述第二共享内存的数据通道,发送基于RPMSG协议封装的第二通信内,非实时代理系统通过监听获取所述第二通信请求,并通过所述第二共享内存的数据通道接收所述第二通信内容。
由上,VirtIO-Vsock设备通信速率快,结合通过VirtIO-Vsock端口监听,实现非实时代理系统和其他各非实时系统之间无阻塞的高速通信。
第三方面,本发明实施例提供了一种计算设备,包括,
总线;
通信接口,其与所述总线连接;
至少一个处理器,其与所述总线连接;以及
至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行本发明第一方面任一所述实施方式。
第四方面,提供了一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令当被计算机执行时使得所述计算机执行申请第一方面任一所述实施方式。
附图说明
图1为本发明各实施例的系统结构的示意图;
图2为本发明的一种实现异构系统内部通信的方法实施例一的流程示意图;
图3A为本发明的一种实现异构系统内部通信的方法实施例二的实施环境示意图;
图3B为本发明的一种实现异构系统内部通信的方法实施例二的流程示意图;
图3C为本发明的一种实现异构系统内部通信的方法实施例二的通信配置方法的流程示意图;
图3D为本发明的一种实现异构系统内部通信的方法实施例二的实时系统与向非实时系统发送通信内容的方法的流程示意图;
图3E为本发明的一种实现异构系统内部通信的方法实施例二的非实时系统与非实时系统发送通信内容的方法的流程示意图;
图4为本发明的一种实现异构系统内部通信的装置实施例一的流程示意图;
图5为本发明的一种实现异构系统内部通信的装置实施例二的装置示意图;
图6为本发明各实施例的计算设备结构示意图。
具体实施方式
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三等”或模块A、模块B、模块C等,仅用于区别类似的对象,或用于区别不同的实施例,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
在以下的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明具体实施方式进行进一步详细说明之前,对本发明实施例中涉及的名词和术语,以及其在本发明中相应的用途\作用\功能等进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1、异构系统指由多个不同种类的计算平台或应用系统构成的计算机系统。本发明中指由若干个非实时系统和若干个实时系统构成的计算机系统,各非实时系统的处理器核与各个实时系统的处理器核不同。
2、操作系统间通信的方式有共享存储器、管道通信、消息传递以及客户机-服务器。
所述共享存储器方式,相互通信的操作系统通过共享某些数据结构或者共享存储区,通过这些空间实现通信;常见的有基于共享数据结构的通信方式和基于共享存储区的通信方式。
所述管道通信方式,通信双方通过管道文件通信。具体地,所述管道指用于连接一个读进程和一个写进程以实现他们之间通讯的一个共享文件,有名pipe文件;写进程将信息以字符流的形式送入所述管道;而读进程将从所述管道中接收数据。
所述消息传递方式,在该机制中,双方不必借助任何共享存储区或者数据结构即可实现通信,它以格式化的消息为单位,将信息封装在消息中,利用操作系统提供的消息发送原语,在进程之间实现消息传递,完成数据交换。
所述客户机-服务器方式,借助于网络环境的客户机和服务器之间通信方式,主要有套接字(Socket)、远程调用RPC(Remote Procedure Call)等方式。
3、RPMSG(Remote Processor Messaging),定义了异构多核处理系统中处理器核与处理器核之间进行通信时所使用的标准二进制接口协议,是一种共享存储器的方式。RPMSG是是一种共享存储器的方式,在每个通信方向上,通信双方通过共享内存实现通信内容发送和接收。
4、VirtIO-Vsock,基于VirtIO设备的虚拟零配置的套接字通信设备,基于该设备实现所述客户机-服务器的系统间通信。所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点。VirtIO是一个传输协议,对半虚拟化层Hypervisor中的一组通用I/O设备,提供了一套上层应用与各Hypervisor虚拟化设备之间的通信框架和编程接口,减少跨平台所带来的兼容性问题,大大提高驱动程序开发效率。
基于背景技术中提到的技术问题,本发明提供了一种实现异构系统内部通信的方法,所述异构系统包括若干个实时系统和若干个非实时系统,包括设置其中一个实时系统为实时代理系统和其中一个非实时系统为非实时代理系统;通过其他实时系统与实时代理系统之间的通信、实时代理系统与非实时代理系统之间的通信、非实时代理系统和其他非实时系统之间通信,实现各实时系统与各非实时系统之间通信。通过设置的实时代理系统和非实时代理系统的转发,实现各实时系统与各非实时系统间通信,解决在一个处理器上一个非实时系统只能与一个实时系统通信的限制。
在一些可能的实施方式中,所述实时代理系统与非实时代理系统之间的通信基于RPMSG通道设备进行通信。该通信可包括:实时代理系统和非实时代理系统分别创建其RPMSG通道设备,并分别分配固定的连续的专用内存;实时代理系统和非实时代理系统进行通信时,通过系统调用发送核间中断通知对方从己方的RPMSG通道设备的专用内存上读取基于RPMSG协议封装的通信内容。由于基于RPMSG通道设备的通信速度快,基于RPMSG通道设备结合核间中断通知的方式,实现实时代理系统和非实时代理系统之间无阻塞的高速通信。
在一些可能的实施方式中,所述其他实时系统与实时代理系统之间的通信基于RPMSG通道设备进行通信。该通信可包括:其他各实时系统分别创建其RPMSG通道设备,并分别分配固定的连续的专用内存;其他各实时系统和实时代理系统进行通信时,通过系统调用发送服务中断通知对方从己方的RPMSG通道设备的专用内存上读取基于RPMSG协议封装的通信内容。其中,基于RPMSG通道设备结合服务中断通知的方式,可实现实时代理系统和其他各实时系统之间无阻塞的高速通信。
在一些可能的实施方式中,所述非实时代理系统与其他非实时系统之间通信基于VirtIO-Vsock设备进行通信。该通信可包括:各非实时系统创建其VirtIO-Vsock设备;非实时代理系统和其他各非实时系统进行通信时,一方在自己的VirtIO-Vsock设备的共享内存的数据通道发送通信内容,且在所述共享内存的控制通道发送通信请求通知对方,对方通过监听获取所述通信请求,并在所述数据通道里接收所述通信内容;其中,所述通信内容基于RPMSG协议封装。其中,非实时代理系统和其他各非实时系统基于VirtIO-Vsock设备的通信是最佳方案,无需IP地址,无需适配程序,实现无阻塞的高速通信。
下面参见各个附图对本发明进行详细说明:
图1示出了本发明的运行环境即一种异构系统的系统结构示意图。
示例地,图1中所述异构系统包括4个处理器核(Core0、Core1、Core2核Core3),其中,Core0和Core1支撑通过Linux+KVM(Kernel-based Virtual Machine)虚拟机运行环境而运行的非实时操作系统Window和Linux,Core2和Core3支撑通过Intewell(北京东土科技股份有限公司的工业互联网操作系统)内核而运行的实时操作系统RTOS(Real TimeOperation System)。
下面结合图1至图3E介绍本发明的一种实现异构系统内部通信的各方法实施例。
【一种实现异构系统内部通信的方法实施例一】
图2示出了一种实现异构系统内部通信的方法实施例的流程图,其流程包括,
步骤110、设置实时代理系统和非实时代理系统。
具体地,从实时系统中选择一个实时系统作为实时代理系统,代理其他各实时系统与各非实时系统之间的通信;从非实时系统中选择一个非实时系统作为一个非实时代理系统,代理其他各非实时系统与实时系统之间的通信。
步骤120、一实时系统i向一非实时系统j发送其通信内容。
其中,本步骤中实时系统i为包括实时代理系统在内的任意一个实时系统,非实时系统j为包括非实时代理系统的任意一个非实时系统。
具体地,实时系统i向实时代理系统发送所述通信内容,实时代理系统向非实时代理系统发送该通信内容,非实时代理系统向非实时系统j发送该通信内容,实现了实时系统i向非实时系统j发送通信内容。
该步骤的详细描述参见【一种实现异构系统内部通信的方法实施例一的实时系统与向非实时系统发送通信内容的方法】,这里不再详述。
步骤130、一非实时系统m向一实时系统n发送其通信内容。
其中,步骤中非实时系统m为包括非实时代理系统在内的任意一个非实时系统,实时系统n为包括实时代理系统的任意一个实时系统。
具体地,非实时系统m向非实时代理系统发送所述通信内容,非实时代理系统向实时代理系统发送该通信内容,实时代理系统向实时系统n发送该通信内容,从而实现了非实时系统m向实时系统n发送通信内容。
该步骤的详细描述参见【一种实现异构系统内部通信的方法实施例一的非实时系统与向实时系统发送通信内容的方法】,这里不再详述。
上述步骤120和步骤130的先后顺序只是一种示例,也可以先执行步骤130再执行步骤120,或者连续执行多次步骤120,或执行多次步骤130。
【一种实现异构系统内部通信的方法实施例一的实时系统与向非实时系统发送通信内容的方法】
图2中步骤120包括了一种实现异构系统内部通信的方法实施例一的实时系统与向非实时系统发送通信内容的方法的流程,继续以实时系统i和非实时系统j为例,该流程包括以下各步骤:
步骤1210、实时系统i向实时代理系统发送所述通信内容。
其中,本步骤的通信的方式不限,可以是上面所述的共享存储器、管道通信、消息传递以及客户机-服务器中的一种。
其中,如果实时系统i就是实时代理系统,则无本步骤。
步骤1220、实时代理系统接收所述向非实时代理系统发送所述通信内容。
具体地,实时代理系统把接收到的通信内容,发送给非实时代理系统。
其中,本步骤的通信的方式不限,可以是上面所述的共享存储器、管道通信、消息传递以及客户机-服务器中的一种。
步骤1230、非实时代理系统向非实时系统j发送所述通信内容。
具体地,非实时代理系统把接收到的通信内容,发送给非实时系统j,非实时系统j获取所述通信内容。
其中,本步骤的通信的方式不限,可以是上面所述的共享存储器、管道通信、消息传递以及客户机-服务器中的一种。
其中,如果非实时系统j是非实时代理系统,则无本步骤。
由上,通过实时代理系统和非实时代理系统之间的通信,实现了任一实时系统向任一非实时系统发送通信内容,解决了在单处理器只能一个实时系统向一个非实时系统的发送通信内容的限制。
【一种实现异构系统内部通信的方法实施例一的非实时系统与向实时系统发送通信内容的方法】
图2中步骤130示出了一种实现异构系统内部通信的方法实施例一的非实时系统与向实时系统发送通信内容的方法的流程,继续以实时系统n和非实时系统m为例,该流程包括以下各步骤:
步骤1310、非实时系统m向实时代理系统发送所述通信内容。
其中,本步骤的通信的方式不限,可以是上面所述的共享存储器、管道通信、消息传递以及客户机-服务器中的一种。
其中,如果非实时系统m就是非实时代理系统,则无本步骤。
步骤1320、非实时代理系统向实时代理系统发送所述通信内容。
具体地,非实时代理系统把接收到的通信内容,发送给实时代理系统。
其中,本步骤的通信的方式不限,可以是上面所述的共享存储器、管道通信、消息传递以及客户机-服务器中的一种。
步骤1330、实时代理系统向实时系统n发送所述通信内容。
具体地,实时代理系统把接收到的通信内容,发送给实时系统n,实时系统n获取所述通信内容。
其中,本步骤的通信的方式不限,可以是上面所述的共享存储器、管道通信、消息传递以及客户机-服务器中的一种。
其中,如果实时系统n是实时代理系统,则无本步骤。
由上,通过实时代理系统和非实时代理系统之间的通信,实现了任一非实时系统向任一实时系统发送通信内容,解决了在单处理器只能一个非实时系统向一个实时系统的发送通信内容的限制。
综上,一种实现异构系统内部通信的方法实施例一设置实时代理系统和非实时代理系统,通过所述实时代理系统和非实时代理系统之间的通信,解决了在单处理器上一个非实时系统只能与一个实时系统间的通信限制,实现了任一非实时系统与任一实时系统之间的通信。
【一种实现异构系统内部通信的方法实施例二】
一种实现异构系统内部通信的方法实施例二是在一种实现异构系统内部通信的方法实施例一的一种最佳实施例,对实时代理系统和非实时代理系统之间通信、实时代理系统与其他各实时系统之间通信和非实时代理系统与其他各非实时系统之间通信分别选择了优选通信方式。
图3A示出了一种实现异构系统内部通信的方法实施例二的实施环境的系统结构图。
示例地,图3A的左边为SMP架构的嵌入式操作系统,上面运行多个分区,每个分区为一个实时系统,其中,下面的分区为设置实时代理系统,实际使用时可以大于等于1的任意数目的分区,实时代理系统可以是其中任意一个。各实时系统分别有自己的RPMSG通道设备,这里为了图面简洁,各实时系统的RPMSG通道示例地画成一个整体的RPMSG Channel。
示例地,图3A的右边为SMP架构的多系统的非实时系统架构,每个进程中一个分区为一个非实时系统,非实时代理系统也是一个进程的分区,其有自己的RPMSG通道,即右下角的RPMSG Channel,非实时代理系统设置一个VirtIO-Vsock设备,其配置成VirtIO-VsockServer。每个非实时系统设置自己VirtIO-Vsock设备,其配置成VirtIO-Vsock Guest,该设备在图中未示出。每个VirtIO-Vsock设备有自身的CID和Port。每个VirtIO-Vsock向上提供RPMSG接口,即图中RPMSG Interface。
图3B示出了一种实现异构系统内部通信的方法实施例二的流程,其包括以下流程包括,
步骤210、设置实时代理系统和非实时代理系统。
具体地,从实时系统中选择一个实时系统作为实时代理系统,代理其他各实时系统与各非实时系统之间的通信;从非实时系统中选择一个非实时系统作为一个非实时代理系统,代理其他各非实时系统与实时系统之间的通信。
步骤220、各实时系统和各非实时系统创建通信设备。
其中,各实时系统创建其RPMSG通道设备,非实时代理系统创建其RPMSG通道设备,多非实时系统的操作系统创建各非实时系统VirtIO-Vsock设备。本步骤的详细描述请参见【一种实现异构系统内部通信的方法实施例二的通信配置方法】,这里不在详述。
步骤230、一实时系统p向非实时系统q发送其通信内容。
其中,本步骤中实时系统p为包括实时代理系统在内的任意一个实时系统,非实时系统q为包括非实时代理系统的任意一个非实时系统。
具体地,实时系统p基于其RPMSG通道设备的共享内存向实时代理系统发送通信内容,实时代理系统基于其RPMSG通道设备的共享内存向非实时代理系统发送该通信内容,非实时代理系统基于其VirtIO-Vsock设备的共享内存向非实时系统q发送该通信内容,实现了实时系统p向非实时系统q发送通信内容。【一种实现异构系统内部通信的方法实施例二的实时系统向非实时系统发送通信内容的方法】,这里不在详述。
步骤240、一非实时系统s向一实时系统t发送所述通信内容。
其中,本步骤中实时系统t为包括实时代理系统在内的任意一个实时系统,非实时系统s为包括非实时代理系统的任意一个非实时系统。
具体地,非实时系统s基于其VirtIO-Vsock设备的共享内存向非实时代理系统发送一通信内容,非实时代理系统基于其RPMSG通道设备的共享内存向实时代理系统发送该通信内容,实时代理系统RPMSG通道设备的共享内存向实时系统t发送该通信内容,从而实现了非实时系统s向实时系统t发送通信内容。【一种实现异构系统内部通信的方法实施例二的非实时系统向实时系统发送通信内容的方法】,这里不在详述。
上述步骤230和步骤240的先后顺序只是一种示例,也可以先执行步骤240再执行步骤230,或者连续执行多次步骤230,或执行多次步骤240。
【一种实现异构系统内部通信的方法实施例二的通信配置方法】
图3C示出了一种实现异构系统内部通信的方法实施例二的通信配置方法的流程,其包括以下步骤,所述以下步骤无先后顺序。
步骤2210、各实时系统创建其RPMSG通道设备。
具体地,各实时系统启动的时候都会初始化一个RPMSG通道设备,并分配固定的连续的专用内存,用以存储和读取各RPMSG通道设备的基于RPMSG协议封装的通信内容。其中,所述各实时系统包括非实时代理系统。
由上,因为RPMSG通道使用共享内存通信,因此基于RPMSG通道能够实现高速通信;实时系统之间通过服务中断通知对方在RPMSG通道接收数据,从而实现实时系统之间无阻塞高速通信。
步骤2220、非实时代理系统创建其RPMSG通道设备。
具体地,非实时代理系统通过HACL驱动中增加远程处理器模块创建其RPMSG通道设备,并分配固定的连续的专用内存,用以存储其RPMSG通道设备的基于RPMSG协议封装的通信内容,供通信内容的接收方进行读取。
其中,非实时代理系统的远程处理器模块主要调用rproc_alloc、rproc_add等内核接口创建RPMSG通道,并调用dma_alloc_coherent分配RPMSG通道设备的内存,HACL驱动通过set_dma_ops设置所分配的内存位置和范围,理论上配置所述内存的空间范围为6000000-6700000,本实施例使用地址为6000000-6019000,作为RPMSG共享内存。
由上,因为RPMSG通道使用共享内存通信,因此基于RPMSG通道能够实现高速通信;实时代理系统与非实时代理系统之间通过核间中断通知对方在RPMSG通道接收数据,从而实现实时系统之间无阻塞高速通信。
步骤2230、非实时系统的操作系统创建各非实时系统VirtIO-Vsock设备。
其中,因为非实时代理系统与其他各非实时系统之间为主-从关系,无法使用中断通知实现无阻塞通信,需要考虑其他通信方式。
可选地,多非实时系统的操作系统之间能够基于虚拟通信设备实现通信,所述虚拟通信设备包括下列之一:
1)虚拟PCI设备,非实时系统间基于各虚拟PCI设备间共享内存进行通信,这是一种基于Ivshmem(Inter Virtual Machine shared memory)设备的通信方式。该通信方式速度快,但需要开发复杂的虚拟的PCI设备的驱动程序,同时无法实现非阻塞通信。
2)VirtIO网络设备,基于VirtIO网络设备的通信方式是一种客户机-服务器通信方式,VirtIO网络设备是基于Socket实现,编程实现相对简单,通信速率块,但比Ivshmem设备慢,且需要通信双方及其中桥接的IP地址。
3)虚拟串口设备,基于虚拟串口设备实现各非实时系统间通信,这是一种基于QGA(Qemu-guest-agent)设备的消息传递方式的通信。实现最简单,但通信速率最慢。
4)VirtIO-Vsock设备,为基于VirtIO共享内存的Vsock通信设备,这种通信方式速度快与VirtIO网络设备相同,且开发程序简单,无需IP地址,非实时系统的无需接口单元;VirtIO-Vsock设备具有监听功能,通过监听判断对方是否有数据发送,从而实现无阻塞通信。
可选地,本申请实施例可采用上述四种之一,实现非实时代理系统与其他各非实时系统之间的通信。
最优地,本实施例兼顾通信速率和实现的难度,选择VirtIO-Vsock设备实现非实时代理系统与其他各非实时系统之间的通信。
具体地,支持各非实时系统的操作系统创建VirtIO-Vsock设备,各VirtIO-Vsock设备配置Vsock CID和Port。非实时代理系统作为该VirtIO-Vsock设备的服务器方,其他非实时系统作为客户机方,基于配置Vsock CID和Port通过Socket方式访问非实时代理系统的VirtIO-Vsock设备。
其中,各VirtIO-Vsock设备配置RPMSG接口,与各实时系统实现通信内容统一基于RPMSG协议封装。非实时系统提供RPMSG动态库,该库通过封装VSock通信模块的接口实现与实时操作系统一致的编程接口,该接口包括如下:
(1)rpmsgInit RPMSG初始化
(2)rpmsgDeviceGet获取RPMSG设备
(3)rpmsg_create_ept创建端点
(4)rpmsg_destroy_ept销毁端点
(5)rpmsg_queue_recv接收数据
(6)rpmsg_send发送数据
由上,非实时代理系统与其他各非实时系统间通过VirtIO-Vsoch设备实现无阻塞高速通信,且无需开发适配程序。
【一种实现异构系统内部通信的方法实施例二的实时系统向非实时系统发送通信内容的方法】
图3D示出了一种实现异构系统内部通信的方法实施例二的实时系统向非实时系统发送通信内容的方法的流程,继续以实时系统p和非实时系统q为例,该流程包括以下步骤:
步骤2310、实时系统p基于RPMSG协议向实时代理系统发送所述通信内容。
具体地,实时系统p在其RPMSG通道设备的专用内存上存储基于RPMSG协议的所述通信内容,通过系统调用发送第一服务中断给实时代理系统,通知实时代理系统实时系统p向它发送了所述通信内同。本实施例中,该步骤使用的系统调用号基于具体场景中从可用的系统服务号中选择,第一服务中断号也基于具体场景中从可用的服务中断号中选择。
具体地,实时代理系统的第一服务中断处理程序基于RPMSG协议,读取实时系统p的RPMSG通道设备的所述通信内容。
其中,实时系统p是实时代理系统,则无本步骤。
步骤2320、实时代理系统基于RPMSG协议向非实时代理系统发送所述通信内容。
具体地,实时代理系统把接收的所述通信类容,放置在其RPMSG通道设备的专用内存上,通过系统调用发送第一核间中断给非实时代理系统,通知非实时代理系统实时代理系统向它发送了所述通信内容。
具体地,非实时代理系统的第一核间中断处理程序基于RPMSG协议,读取实时代理系统的RPMSG通道设备的所述通信内容。
其中,该步骤使用的系统调用号基于具体场景中从可用的系统服务号中选择,第一核间中断号也基于具体场景中从可用的服务中断号中选择。
步骤2330、非实时代理系统通过VirtIO-Vsock设备向非实时系统q发送以RPMSG协议接口的所述通信内容。
具体地,非实时代理系统把接收的所述通信内容放置在其VirtIO-Vsock的共享内存的数据通道里,并在所述共享内存的控制通道向非实时系统发通信请求。
具体地,非实时系统q通过监听VirtIO-Vsock设备的所述控制通道,获知所述通信请求后,非实时系统q使用非实时代理系统的Vsock CID和Port,从非实时代理系统的VirtIO-Vsock的共享内存的数据通道读取所述通信内容,并基于RPMSG协议解封所述通信内容。
其中,非实时系统q是非实时代理系统,则无本步骤。
由上,通过实时代理系统和非实时代理系统之间的通信,实现了任一实时系统向任一非实时系统发送通信内容,解决了在单处理器只能一个实时系统向一个非实时系统的发送通信内容的限制。同时使用RPMSG通道共享内存与中断的结合和VirtIO-Vsockt设备的共享内存与监听技术实现的上述通信具有高速无阻塞的优点。
【一种实现异构系统内部通信的方法实施例二的非实时系统向实时系统发送通信内容的方法】
图3E示出了一种实现异构系统内部通信的方法实施例二的非实时系统向实时系统发送通信内容的方法的流程,继续以实时系统t和非实时系统s为例,该流程包括以下步骤:
步骤2410、非实时系统s通过VirtIO-Vsock设备向非实时代理系统发送基于RPMSG协议封装的所述通信内容。
具体地,非实时系统s在其VirtIO-Vsock的共享内存的数据通道放置基于RPMSG协议封装所述通信内容,并在所述共享内存的控制通道向非实时代理系统发送通信请求。
具体地,非实时代理系统通过监听Vsock设备的状态,获知所述通信请求后,非实时代理系统使用非实时系统s的Vsock CID和Port,从非实时系统s的VirtIO-Vsock设备的共享内存的数据通道里,读取所述通信内容。如果非实时系统s是非实时代理系统,则无本段落的操作。
其中,如果非实时系统s是非实时代理系统,则无步骤的操作。
步骤2420、非实时代理系统基于RPMSG协议向实时代理系统发送所述通信内容。
具体地,非实时代理系统把接收的通信内容放置在其RPMSG通道设备的专用内存上,通过系统调用发送第二核间中断给实时代理系统,通知实时代理系统非实时代理系统向其发送了所述通信内容。该步骤使用的系统调用号基于具体场景中从可用的系统服务号中选择,第二核间中断号也基于具体场景中从可用的服务中断号中选择。
具体地,实时代理系统的第二核间中断处理程序基于RPMSG协议,读取非实时代理系统的RPMSG通道设备的所述通信内容。
步骤2430、实时代理系统基于RPMSG协议向实时系统t发送所述通信内容。
具体地,实时代理系统把接收的所述通信内容放置在其RPMSG通道设备的专用内存上,通过系统调用发送第二服务中断给实时系统t,通知实时系统t实时代理系统向它发送了所述通信内容。
具体地,实时系统t的第二服务中断处理程序基于RPMSG协议,读取实时代理系统的RPMSG通道设备的所述通信内容。
其中,本实施例中,该步骤使用的系统调用号基于具体场景中从可用的系统服务号中选择,第二服务中断号也基于具体场景中从可用的服务中断号中选择。
其中,如果实时系统t是实时代理系统,则无步骤的操作。
由上,通过实时代理系统和非实时代理系统之间的通信,实现了任一非实时系统向任一实时系统发送通信内容,解决了在单处理器只能一个非实时系统向一个实时系统的发送通信内容的限制。同时使用RPMSG通道共享内存与中断的结合和VirtIO-Vsockt设备的共享内存与监听技术实现的上述通信具有高速无阻塞的优点。
综上,一种实现异构系统内部通信的方法实施例二设置实时代理系统和非实时代理系统,通过所述实时代理系统和非实时代理系统之间的通信,解决了在单处理器上一个非实时系统只能与一个实时系统间的通信限制,实现了任一非实时系统与任一实时系统之间的通信。相对于一种实现异构系统内部通信的方法实施例一,使用RPMSG通道共享内存与中断的结合和VirtIO-Vsockt设备的共享内存与监听技术实现的上述通信具有高速无阻塞的优点。
下面基于图4介绍本发明的一种实现异构系统内部通信的装置实施例。
【一种实现异构系统内部通信的装置实施例一】
图4示出了一种实现异构系统内部通信的装置实施例的结构示意图,其包括:
代理设置模块410、用于实时代理系统和非实时代理系统。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例一的步骤110,这里不在详述。
第一通信控制模块420、用于实现一实时系统向一非实时系统发送通信内容。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例一的步骤120,这里不在详述。
第二通信控制模块430、用于实现一非实时系统向一实时系统发送通信内容。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例一的步骤130,这里不在详述。
继续以图4为例介绍第一通信控制模块420的内部结构,其包括以下子模块:
第一方向第一通信模块4210、用于一实时系统向实时代理系统发送一通信内容。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例一的实时系统向非实时系统发送通信内容的方法的步骤1210,这里不在详述。
第一方向第二通信模块4220、用于实时代理系统向非实时代理系统发送所述通信内容。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例一的实时系统向非实时系统发送通信内容的方法的步骤1220,这里不在详述。
第一方向第三通信模块4230、用于非实时代理系统向非实时系统发送所述通信内容。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例一的实时系统向非实时系统发送通信内容的方法的步骤1230,这里不在详述。
继续以图4为例介绍第二通信控制模块430的内部结构,其包括以下子模块:
第二方向第一通信模块4310、用于一非实时系统向非实时代理系统发送一通信内容。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例一的非实时系统向实时系统发送通信内容的方法的步骤1310,这里不在详述。
第二方向第二通信模块4320、用于非实时代理系统向实时代理系统发送所述通信内容。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例一的非实时系统向实时系统发送通信内容的方法的步骤1320,这里不在详述。
第二方向第三通信模块4330、用于实时代理系统向实时系统发送所述通信内容。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例一的非实时系统向实时系统发送通信内容的方法的步骤1330,这里不在详述。
综上,一种实现异构系统内部通信的装置实施例一中设置实时代理系统和非实时代理系统,通过所述实时代理系统和非实时代理系统之间的通信,解决了在单处理器上一个非实时系统只能与一个实时系统间的通信限制,实现了任一非实时系统与任一实时系统之间的通信。
下面基于图5介绍本发明的一种实现异构系统内部通信的装置实施例二。
【一种实现异构系统内部通信的装置实施例二】
一种实现异构系统内部通信的装置实施例二是在一种实现异构系统内部通信的装置实施例一的一种最佳实施例,对实时代理系统和非实时代理系统之间通信、实时代理系统与其他各实时系统之间通信和非实时代理系统与其他各非实时系统之间通信分别选择了优选通信方式。
图5示出了一种实现异构系统内部通信的装置实施例二的结构示意图,其包括:
代理设置模块510、用于实时代理系统和非实时代理系统。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例二中的步骤210,这里不在详述。
通信配置模块520、用于设置各实时系统和各非实时系统的通信方式。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例二中的步骤220,这里不在详述。
第一通信控制模块530、用于实现一实时系统向一非实时系统发送通信内容。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例二中的步骤230,这里不在详述。
第二通信控制模块540、用于实现一非实时系统向一实时系统发送通信内容。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例二中的步骤240,这里不在详述。
继续以基于图5介绍通信配置模块520的结构,其包括以下子模块:
实时RPMSG配置模块5210、用于各实时系统创建RPMSG通道设备。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例二的通信配置方法的步骤2210,这里不在详述。
非实时代理RPMSG配置模块5220、用于非实时代理系统创建RPMSG通道设备。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例二的通信配置方法的步骤2220,这里不在详述。
非实时VirtIO-Vsock配置模块5230、用于各非实时代理系统创建VirtIO-Vsock设备。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例二的通信配置方法的步骤2230,这里不在详述。
继续以基于图5介绍第一通信控制模块530的结构,其包括以下子模块:
第一方向第一通信模块5310、用于一实时系统向实时代理系统发送一通信内容。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例二的实时系统向非实时系统发送通信内容的方法的步骤2310,这里不在详述。
第一方向第二通信模块5320、用于实时代理系统向非实时代理系统发送所述通信内容。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例二的实时系统向非实时系统发送通信内容的方法的步骤2320,这里不在详述。
第一方向第三通信模块5330、用于非实时代理系统向非实时系统发送所述通信内容。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例二的实时系统向非实时系统发送通信内容的方法的步骤2330,这里不在详述。
继续以基于图5介绍第二通信控制模块540的结构,其包括以下子模块:
第二方向第一通信模块5410、用于一非实时系统向非实时代理系统发送一通信内容。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例二的非实时系统向实时系统发送通信内容的方法的步骤2410,这里不在详述。
第二方向第二通信模块5420、用于非实时代理系统向实时代理系统发送所述通信内容。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例二的非实时系统向实时系统发送通信内容的方法的步骤2420,这里不在详述。
第二方向第三通信模块5430、用于实时代理系统向实时系统发送所述通信内容。该模块工作原理和优点同一种实现异构系统内部通信的方法实施例二的非实时系统向实时系统发送通信内容的方法的步骤2430,这里不在详述。
综上,一种实现异构系统内部通信的装置实施例二中设置实时代理系统和非实时代理系统,通过所述实时代理系统和非实时代理系统之间的通信,解决了在单处理器上一个非实时系统只能与一个实时系统间的通信限制,实现了任一非实时系统与任一实时系统之间的通信。相对于一种实现异构系统内部通信的装置实施例一,使用RPMSG通道共享内存与中断的结合和VirtIO-Vsockt设备的共享内存与监听技术实现的上述通信具有高速无阻塞的优点。
【计算设备】
本发明还提供的一种计算设备,下面图6详细介绍。
该计算设备600包括,处理器610、存储器620、通信接口630、总线640。
应理解,该图所示的计算设备600中的通信接口630可以用于与其他设备之间进行通信。
其中,该处理器610可以与存储器620连接。该存储器620可以用于存储该程序代码和数据。因此,该存储器620可以是处理器610内部的存储单元,也可以是与处理器610独立的外部存储单元,还可以是包括处理器610内部的存储单元和与处理器610独立的外部存储单元的部件。
可选的,计算设备600还可以包括总线640。其中,存储器620、通信接口630可以通过总线640与处理器610连接。总线640可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(EFStended Industry StandardArchitecture,EISA)总线等。所述总线640可以分为地址总线、数据总线、控制总线等。为便于表示,该图中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,在本发明实施例中,该处理器610可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器610采用一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
该存储器620可以包括只读存储器和随机存取存储器,并向处理器610提供指令和数据。处理器610的一部分还可以包括非易失性随机存取存储器。例如,处理器610还可以存储设备类型的信息。
在计算设备600运行时,所述处理器610执行所述存储器620中的计算机执行指令执行方法实施例一的操作步骤或方法实施例二的操作步骤。
应理解,根据本发明实施例的计算设备600可以对应于执行根据本发明各实施例的方法中的相应主体,并且计算设备600中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
【计算介质】
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行方法实施例一的操作步骤或方法实施例二的操作步骤。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括,具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,均属于本发明保护范畴。
Claims (9)
1.一种实现异构系统内部通信的方法,所述异构系统包括若干个实时系统和若干个非实时系统,各实时系统与各非实时系统在一个处理器上,其特征在于,包括,
设置其中一个实时系统为实时代理系统和其中一个非实时系统为非实时代理系统;
通过其他实时系统与实时代理系统之间的通信、实时代理系统与非实时代理系统之间的通信、非实时代理系统与其他非实时系统之间通信,实现各实时系统与各非实时系统之间通信;
所述非实时代理系统与其他非实时系统之间基于VirtIO-Vsock设备进行通信,具体包括:
各非实时系统创建其VirtIO-Vsock设备;
一方在自己的VirtIO-Vsock设备的共享内存的数据通道发送通信内容,且在所述共享内存的控制通道发送通信请求通知对方;
对方通过监听获取所述通信请求,并在所述数据通道里接收所述通信内容;其中,所述通信内容基于RPMSG协议封装。
2.根据权利要求1所述方法,其特征在于,所述实时代理系统与非实时代理系统之间的通信基于RPMSG通道设备进行通信。
3.根据权利要求2所述方法,其特征在于,所述基于RPMSG通道设备进行通信包括,
实时代理系统和非实时代理系统分别创建其RPMSG通道设备,并分别分配固定的连续的专用内存;
实时代理系统和非实时代理系统进行通信时,一方通过系统调用发送核间中断通知对方从己方的RPMSG通道设备的专用内存上读取基于RPMSG协议封装的通信内容。
4.根据权利要求1所述方法,其特征在于,所述其他实时系统与实时代理系统之间的通信基于RPMSG通道设备进行通信。
5.根据权利要求4所述方法,其特征在于,所述基于RPMSG通道设备进行通信包括,
其他各实时系统分别创建其RPMSG通道设备,并分别分配固定的连续的专用内存;
其他各实时系统和实时代理系统进行通信时,一方通过系统调用发送服务中断通知对方从己方的RPMSG通道设备的专用内存上读取基于RPMSG协议封装的通信内容。
6.根据权利要求1所述方法,其特征在于,所述非实时代理系统与其他非实时系统之间还采用基于下列虚拟设备之一进行通信:虚拟PCI设备、VirtIO通信设备和虚拟串口设备。
7.一种实现异构系统内部通信的装置,所述异构系统包括若干个实时系统和若干个非实时系统,各实时系统与各非实时系统在一个处理器上,其特征在于,包括,
代理设置模块,用于设置其中一个实时系统为实时代理系统和设置其中一个非实时系统为非实时代理系统;
系统间第一通信模块,用于各其他实时系统与实时代理系统之间通信;
系统间第二通信模块,用于实时代理系统与非实时代理系统之间的通信;
系统间第三通信模块,用于非实时代理系统与其他非实时系统间的通信;
当所述非实时代理系统与其他非实时系统之间基于VirtIO-Vsock设备进行通信时,所述装置还包括非实时VirtIO-Vsock配置模块,用于各非实时系统创建其VirtIO-Vsock设备;以及
所述系统间第三通信模块包括:
第一方向第三通信模块,用于非实时代理系统基于其VirtIO-Vsock设备的第一共享内存的控制通道发送第一通信请求,且通过所述第一共享内存的数据通道,发送其基于RPMSG协议封装的第一通信内容,其他各非实时系统通过监听获取所述第一通信请求,并通过所述第一共享内存的数据通道接收所述第一通信内容;
第二方向第三通信模块,用于其他各非实时系统通过其VirtIO-Vsock设备的第二共享内存的控制通道发送第二通信请求,且通过所述第二共享内存的数据通道,发送基于RPMSG协议封装的第二通信内,非实时代理系统通过监听获取所述第二通信请求,并通过所述第二共享内存的数据通道接收第二通信内容。
8.一种计算设备,其特征在于,包括,
总线;
通信接口,其与所述总线连接;
至少一个处理器,其与所述总线连接;以及
至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行权利要求1-6所述方法。
9.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令当被计算机执行时使得所述计算机执行权利要求1-6所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110063081.XA CN112667420B (zh) | 2021-01-18 | 2021-01-18 | 实现异构系统内部通信的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110063081.XA CN112667420B (zh) | 2021-01-18 | 2021-01-18 | 实现异构系统内部通信的方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112667420A CN112667420A (zh) | 2021-04-16 |
CN112667420B true CN112667420B (zh) | 2022-03-25 |
Family
ID=75415495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110063081.XA Active CN112667420B (zh) | 2021-01-18 | 2021-01-18 | 实现异构系统内部通信的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112667420B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778612A (zh) * | 2021-07-14 | 2021-12-10 | 中移物联网有限公司 | 基于微内核机制的嵌入式虚拟化系统实现方法 |
CN113609059B (zh) * | 2021-08-12 | 2023-09-05 | 经纬恒润(天津)研究开发有限公司 | 一种通信系统及通信方法 |
CN113806012B (zh) * | 2021-08-17 | 2023-10-17 | 南京南瑞继保工程技术有限公司 | 一种电力系统嵌入式设备功能集成的系统及其运行方法 |
CN115309617A (zh) * | 2022-08-08 | 2022-11-08 | 科东(广州)软件科技有限公司 | 后台操作系统信息的桌面显示方法、异构系统及存储介质 |
CN115599502B (zh) * | 2022-10-17 | 2023-03-21 | 麒麟软件有限公司 | 基于虚拟机监控器的rtos网络共享方法 |
CN115664892B (zh) * | 2022-10-17 | 2023-03-28 | 麒麟软件有限公司 | 虚拟监控器下Linux虚拟网卡的实现方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101268445A (zh) * | 2005-09-21 | 2008-09-17 | 英特尔公司 | 用于分区的多处理器系统的实时线程服务 |
CN102446158A (zh) * | 2010-10-12 | 2012-05-09 | 无锡江南计算技术研究所 | 多核处理器及多核处理器组 |
CN103713940A (zh) * | 2013-12-24 | 2014-04-09 | 四川川大智胜软件股份有限公司 | 一种基于rtx-hla-反射内存卡的可重构分布式实时仿真方法 |
CN103942178A (zh) * | 2014-03-03 | 2014-07-23 | 浙江大学 | 多核处理器上实时操作系统与非实时操作系统之间的通信方法 |
CN104363291A (zh) * | 2014-11-19 | 2015-02-18 | 中国航天科工集团第二研究院七〇六所 | 一种网络通信中间件实现方法 |
CN104794003A (zh) * | 2015-02-04 | 2015-07-22 | 汉鼎信息科技股份有限公司 | 一种整合实时和非实时模式的大数据分析系统 |
CN111475202A (zh) * | 2020-03-31 | 2020-07-31 | 北京经纬恒润科技有限公司 | 基于异构多处理系统的核间通信方法及系统 |
CN111745651A (zh) * | 2020-06-15 | 2020-10-09 | 哈工大机器人(合肥)国际创新研究院 | 一种智能机器人操作系统结构及其运作方法 |
CN111930676A (zh) * | 2020-09-17 | 2020-11-13 | 湖北芯擎科技有限公司 | 多处理器间的通信方法、装置、系统及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8806269B2 (en) * | 2011-06-28 | 2014-08-12 | International Business Machines Corporation | Unified, workload-optimized, adaptive RAS for hybrid systems |
CN103647351B (zh) * | 2013-12-18 | 2015-11-18 | 中国能源建设集团江苏省电力设计院有限公司 | 基于多代理和异构通信技术的微电网智能测控终端及方法 |
DE102015217724A1 (de) * | 2015-09-16 | 2017-03-16 | Siemens Aktiengesellschaft | Vorrichtung und Verfahren zum Erstellen einer asymmetrischen Prüfsumme |
CN111756782B (zh) * | 2019-03-28 | 2023-03-14 | 比亚迪股份有限公司 | 基于异构操作系统的消息传输系统、方法和车辆 |
-
2021
- 2021-01-18 CN CN202110063081.XA patent/CN112667420B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101268445A (zh) * | 2005-09-21 | 2008-09-17 | 英特尔公司 | 用于分区的多处理器系统的实时线程服务 |
CN102446158A (zh) * | 2010-10-12 | 2012-05-09 | 无锡江南计算技术研究所 | 多核处理器及多核处理器组 |
CN103713940A (zh) * | 2013-12-24 | 2014-04-09 | 四川川大智胜软件股份有限公司 | 一种基于rtx-hla-反射内存卡的可重构分布式实时仿真方法 |
CN103942178A (zh) * | 2014-03-03 | 2014-07-23 | 浙江大学 | 多核处理器上实时操作系统与非实时操作系统之间的通信方法 |
CN104363291A (zh) * | 2014-11-19 | 2015-02-18 | 中国航天科工集团第二研究院七〇六所 | 一种网络通信中间件实现方法 |
CN104794003A (zh) * | 2015-02-04 | 2015-07-22 | 汉鼎信息科技股份有限公司 | 一种整合实时和非实时模式的大数据分析系统 |
CN111475202A (zh) * | 2020-03-31 | 2020-07-31 | 北京经纬恒润科技有限公司 | 基于异构多处理系统的核间通信方法及系统 |
CN111745651A (zh) * | 2020-06-15 | 2020-10-09 | 哈工大机器人(合肥)国际创新研究院 | 一种智能机器人操作系统结构及其运作方法 |
CN111930676A (zh) * | 2020-09-17 | 2020-11-13 | 湖北芯擎科技有限公司 | 多处理器间的通信方法、装置、系统及存储介质 |
Non-Patent Citations (1)
Title |
---|
面向基带处理的异构多核架构软硬件平台设计;曾定立;《单片机与嵌入式系统应用》;20170331;第17卷(第3期);第13-17页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112667420A (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112667420B (zh) | 实现异构系统内部通信的方法、装置、设备及存储介质 | |
US10324873B2 (en) | Hardware accelerated communications over a chip-to-chip interface | |
CN110888827B (zh) | 数据传输方法、装置、设备及存储介质 | |
CN108628684B (zh) | 一种基于dpdk的报文处理方法及计算机设备 | |
US10374885B2 (en) | Reconfigurable server including a reconfigurable adapter device | |
CN107995129B (zh) | 一种nfv报文转发方法和装置 | |
JP5869135B2 (ja) | コプロセッサのためのダイレクトi/oアクセス | |
US20220210073A1 (en) | Technologies for network device load balancers for accelerated functions as a service | |
US9146785B2 (en) | Application acceleration in a virtualized environment | |
WO2018035856A1 (zh) | 实现硬件加速处理的方法、设备和系统 | |
CN110647480A (zh) | 数据处理方法、远程直接访存网卡和设备 | |
US20140059160A1 (en) | Systems and methods for sharing devices in a virtualization environment | |
CN108984465B (zh) | 一种消息传输方法及设备 | |
US20220224614A1 (en) | Technologies for capturing processing resource metrics as a function of time | |
CN106648896B (zh) | 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 | |
US10067900B2 (en) | Virtualized I/O device sharing within a distributed processing node system | |
JP2015521779A (ja) | 入力/出力仮想化のためのシステムおよび方法 | |
US9952992B2 (en) | Transaction request optimization for redirected USB devices over a network | |
EP3563534B1 (en) | Transferring packets between virtual machines via a direct memory access device | |
CN108984327B (zh) | 报文转发方法、多核cpu及网络设备 | |
WO2018113622A1 (zh) | 基于虚拟机的数据包发送和接收方法及装置 | |
CN115203142A (zh) | 一种多核核间实时通信系统及方法 | |
WO2023174146A1 (zh) | 卸载卡命名空间管理、输入输出请求处理系统和方法 | |
CN113821309B (zh) | 一种微内核虚拟机间的通信方法、装置、设备及存储介质 | |
CN115269213A (zh) | 数据接收方法、数据发送方法、装置、电子设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |