CN102760114A - 多处理器系统的通信仿真方法、引擎及系统 - Google Patents
多处理器系统的通信仿真方法、引擎及系统 Download PDFInfo
- Publication number
- CN102760114A CN102760114A CN2011101108255A CN201110110825A CN102760114A CN 102760114 A CN102760114 A CN 102760114A CN 2011101108255 A CN2011101108255 A CN 2011101108255A CN 201110110825 A CN201110110825 A CN 201110110825A CN 102760114 A CN102760114 A CN 102760114A
- Authority
- CN
- China
- Prior art keywords
- communication
- emulation
- simulation
- processor
- receiving end
- 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.)
- Granted
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种多处理器系统的通信仿真方法、引擎及系统,所述方法包括:创建多个仿真进程,每一个仿真进程对所述多处理器系统中的一个处理器进行仿真;获取所述多处理器系统中发送端处理器发出的通信消息,对所述发送端处理器的发送过程进行仿真,将所述通信消息转换为网络数据包;基于所述仿真进程之间的通信机制将所述网络数据包传输至对接收端处理器进行仿真的仿真进程;对所述接收端处理器的接收过程进行仿真,将所述网络数据包拆解为通信消息并将其传输至所述接收端处理器。本发明提高了通信仿真过程的可复用性。
Description
技术领域
本发明涉及多处理器系统仿真技术,特别涉及一种多处理器系统的通信仿真方法、引擎及系统。
背景技术
随着信息技术的不断发展,对运算和处理能力的需求越来越高,多处理器系统得到了广泛的应用。多处理器系统指的是多个处理器协同运算和执行任务的系统,由于其中包括了多个处理器,其设计和仿真过程较为复杂。多处理器系统的仿真一般包括对每个处理器内部的计算过程的仿真和对不同处理器之间的消息通信过程的仿真,由于多个处理器之间的消息通信具有复杂的依赖关系,如阻塞等待、同步等,因此,对消息通信过程的精确仿真在整个多处理器系统仿真中具有重要的作用,其仿真精度对整个多处理器系统的仿真精度影响巨大。
现有技术中已有多个典型的多处理器系统的仿真工具,如伊利诺伊斯大学开发的BigSim仿真器、美国洛斯阿拉莫斯国家实验室和新墨西哥州大学开发的PARSIM仿真器、Caltech先进计算研究中心开发的BG/L并行仿真器等。上述仿真工具中对每个处理器内部计算的仿真和对不同处理器之间的消息通信的仿真是紧密耦合在一起的,不同的多处理器系统需要分别进行完整的建模和仿真,即不同的多处理器系统的通信仿真过程的可复用性差。
此外,现有技术还有其他一些典型的专用网络仿真器,如加州大学伯克利分校开发的NS仿真器,柏林科技大学开发的MINSimulator仿真器等,主要用于网络拓扑结构、路由算法等仿真和建模,不提供面向高层协议的通信仿真接口,也无法解决上述多处理器系统的通信仿真过程的可复用性差的问题。
发明内容
本发明的目的是提供一种多处理器系统的通信仿真方法、引擎及系统,改善多处理器系统中的通信仿真过程的可复用性。
为解决上述问题,本发明提供了一种多处理器系统的通信仿真方法,包括:
创建多个仿真进程,每一个仿真进程对所述多处理器系统中的一个处理器进行仿真;
获取所述多处理器系统中发送端处理器发出的通信消息,对所述发送端处理器的发送过程进行仿真,将所述通信消息转换为网络数据包;
基于所述仿真进程之间的通信机制将所述网络数据包传输至对接收端处理器进行仿真的仿真进程;
对所述接收端处理器的接收过程进行仿真,将所述网络数据包拆解为通信消息并将其传输至所述接收端处理器。
可选地,所述对所述发送端处理器的发送过程进行仿真,将所述通信消息转换为网络数据包包括:
确定所述发送端处理器所采用的通信仿真算法;
根据所述发送端处理器所采用的通信仿真算法对所述发送端处理器的发送过程进行仿真,将所述发送端处理器发出的通信消息转换为仿真消息包,所述仿真消息包包括数据、发送端处理器的逻辑源地址和接收端处理器的逻辑目的地址;
查找所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址,并将其与所述仿真消息包一并打包形成网络数据包。
可选地,在将所述通信消息转换为仿真消息包之后,查找所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址之前,还包括:将所述仿真消息包加入发送队列进行缓冲。
可选地,所述确定所述发送端处理器所采用的通信仿真算法包括:根据配置文件从通信算法仿真库中查找所述发送端处理器所采用的通信仿真算法。
可选地,所述网络数据包采用如下方式生成:将所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址与所述仿真消息包合并,调用操作系统通信库,生成所述网络数据包。
可选地,所述对所述接收端处理器的接收过程进行仿真,将所述网络数据包拆解为通信消息并将其传输至所述接收端处理器包括:
将所述网络数据包拆解产生仿真消息包,所述仿真消息包包括数据、发送端处理器的逻辑源地址和接收端处理器的逻辑目的地址;
确定所述接收端处理器所采用的通信仿真算法;
根据所述接收端处理器所采用的通信仿真算法对所述接收端处理器的接收过程进行仿真,将所述仿真消息包转换为通信信息,并将所述通信信息传输至所述接收端处理器。
可选地,将所述网络数据包拆解产生仿真消息包之后,确定所述接收端处理器所采用的通信仿真算法之前,还包括:将所述仿真消息包加入接收队列进行缓冲。
可选地,所述确定所述接收端处理器所采用的通信仿真算法包括:根据配置文件从通信算法仿真库中查找所述接收端处理器所采用的通信仿真算法。
可选地,所述仿真消息包采用如下方式生成:调用操作系统通信库,将所述网络数据包拆解为仿真消息包。
可选地,所述仿真进程之间的通信机制包括共享内存通信或套接字(socket)通信。
本发明还提供了一种多处理器系统的通信仿真引擎,用于对多处理器系统仿真中各处理器之间的通信过程进行仿真,所述多处理器系统仿真包括多个仿真进程,每一个仿真进程对所述多处理器系统中的一个处理器进行仿真,所述通信仿真引擎嵌入所述仿真进程中,包括通信仿真抽象接口,发送仿真单元和接收仿真单元,其中,
所述通信仿真抽象接口,用于接收多处理器中发送端处理器发出的通信消息并将其传输至所述发送仿真单元;
所述发送仿真单元,用于获取所述发送端处理器发出的通信消息,对所述发送端处理器的发送过程进行仿真,将所述通信消息转换为网络数据包,并基于所述仿真进程之间的通信机制将所述网络数据包发出;
所述接收仿真单元,基于所述仿真进程之间的通信机制获取所述网络数据包,,对所述接收端处理器的接收过程进行仿真,将所述网络数据包拆解为通信消息并通过所述通信仿真抽象接口将其传输至所述接收端处理器。
可选地,所述发送仿真单元包括:
第一算法确定模块,用于确定所述发送端处理器所采用的通信仿真算法;
发送仿真执行模块,根据所述发送端处理器所采用的通信仿真算法对所述发送端处理器的发送过程进行仿真,将所述发送端处理器发出的通信消息转换为仿真消息包,所述仿真消息包包括数据、发送端处理器的逻辑源地址和接收端处理器的逻辑目的地址;
发送网络控制模块,查找所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址,并将其与所述仿真消息包一并打包形成网络数据包。
可选地,所述发送网络控制模块包括:
发送队列,接收所述发送仿真执行模块产生的发送仿真消息包并对其进行缓冲;
地址转换子模块,接收来自所述发送队列的仿真消息包,查找所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址;
网络打包子模块,将所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址与所述仿真消息包一并打包形成网络数据包。
可选地,所述第一算法确定模块根据配置文件从通信算法仿真库中查找所述发送端处理器所采用的通信仿真算法。
可选地,所述网络打包子模块调用操作系统通信库,将所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址与所述仿真消息包一并打包形成网络数据包。
可选地,所述接收仿真单元包括:
接收网络控制模块,将所述网络数据包拆解产生仿真消息包,所述仿真消息包包括数据、发送端处理器的逻辑源地址和接收端处理器的逻辑目的地址;
第二算法确定模块,用于确定所述接收端处理器所采用的通信仿真算法;
接收仿真执行模块,根据所述接收端处理器所采用的通信仿真算法对所述接收端处理器的接收过程进行仿真,将所述仿真消息包转换为通信信息,并将所述通信信息通过所述通信仿真抽象接口传输至所述接收端处理器。
可选地,所述接收网络控制模块包括:
网络拆包子模块,对所述网络数据包进行拆解产生仿真消息包,所述仿真消息包包括数据、发送端处理器的逻辑源地址和接收端处理器的逻辑目的地址;
接收队列,接收所述网络拆包子模块产生的仿真消息包,对其进行缓冲后传输至所述接收仿真执行模块。
可选地,所述第二算法确定模块根据配置文件从通信算法仿真库中查找所述发送端处理器所采用的通信仿真算法。
可选地,所述网络拆包子模块调用操作系统通信库对所述网络数据包进行拆解产生仿真消息包。
可选地,所述仿真进程之间的通信机制包括共享内存通信或套接字通信。
本发明还提供了一种多处理器系统的通信仿真系统,包括上述任一项所述的多处理器系统的通信仿真引擎、进程创建单元以及进程间通信控制单元,所述进程创建单元用于创建所述多个仿真进程,每一个仿真进程对所述多处理器系统中的一个处理器进行仿真,所述进程间通信控制单元用于通过仿真进程间通信网络实现所述仿真进程之间的通信机制。
与现有技术相比,本技术方案具有以下优点:
本发明实施例的多处理器系统的通信仿真方法创建多个仿真进程,其中每一个仿真进程分别对多处理器系统中的一个处理器进行仿真,对该处理器的通信过程进行仿真,将多处理器系统中发送端处理器和接收端处理器之间传输的通信消息转换为网络数据包,并利用仿真进程之间的通信机制进行传输,即通过仿真进程之间的通信来实现对不同处理器之间的通信过程的仿真,从而将处理器之间的通信过程的仿真和其内部的运算过程的仿真分离,改善了仿真过程的可复用性。
本发明实施例的多处理器系统的通信仿真引擎和系统中,使用通信仿真抽象接口来进行与各个处理器之间的通信消息的传输,并将该通信消息转换为网络数据包后基于仿真进程之间的通信机制在发送端处理器和接收端处理器之间进行传输,从而将处理器之间的通信过程的仿真和其内部的运算过程的仿真分离,改善了仿真过程的可复用性。
附图说明
图1是本发明实施例的多处理器系统的通信仿真方法的流程示意图;
图2是本发明实施例的多处理器系统的通信仿真系统的结构示意图;
图3是本发明实施例的多处理器系统的通信仿真引擎的总体结构与处理器仿真模型之间的连接关系示意图;
图4是本发明实施例的多处理器系统的通信仿真引擎的详细结构与处理器仿真模型之间的连接关系示意图;
图5是本发明实施例中多处理器系统的通信仿真方法中的仿真消息包的结构示意图;
图6是本发明实施例中多处理器系统的通信仿真方法中的网络数据包的结构示意图;
图7是本发明实施例的多处理器系统的通信仿真方法中通信仿真算法的确定过程的示意图。
具体实施方式
现有技术的多处理器系统的仿真过程中,对每一个处理器的内部计算过程和不同处理器之间的通信过程的仿真是耦合在一起的,可复用性较低。
本发明实施例的多处理器系统的通信仿真方法创建多个仿真进程,其中每一个仿真进程分别对多处理器系统中的一个处理器进行仿真,对该处理器的通信过程进行仿真,将多处理器系统中发送端处理器和接收端处理器之间传输的通信消息转换为网络数据包,并利用仿真进程之间的通信机制进行传输,即通过仿真进程之间的通信来实现对不同处理器之间的通信过程的仿真,从而将处理器之间的通信过程的仿真和其内部的运算过程的仿真分离,改善了仿真过程的可复用性。
本发明实施例的多处理器系统的通信仿真引擎和系统中,使用通信仿真抽象接口来进行与各个处理器之间的通信消息的传输,并将该通信消息转换为网络数据包后基于仿真进程之间的通信机制在发送端处理器和接收端处理器之间进行传输,从而将处理器之间的通信过程的仿真和其内部的运算过程的仿真分离,改善了仿真过程的可复用性。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图和实施例对本发明的具体实施方式做详细的说明。
图1示出了本发明实施例的多处理器系统的通信仿真方法的流程示意图,包括:
步骤S11,创建多个仿真进程,每一个仿真进程对所述多处理器系统中的一个处理器进行仿真;
步骤S12,获取所述多处理器系统中发送端处理器发出的通信消息,对所述发送端处理器的发送过程进行仿真,将所述通信消息转换为网络数据包;
步骤S13,基于所述仿真进程之间的通信机制将所述网络数据包传输至对接收端处理器进行仿真的仿真进程;
步骤S14,对所述接收端处理器的接收过程进行仿真,将所述网络数据包拆解为通信消息并将其传输至所述接收端处理器。
图2示出了本发明实施例的多处理器系统的通信仿真系统的结构示意图,包括:进程创建单元13,用于创建多个仿真进程10,每一个仿真进程10对所述多处理器系统中的一个处理器进行仿真,其中,每一个仿真进程10通过处理器仿真模型101对多处理器系统中的一个处理器的内部计算过程进行仿真,每一个仿真进程10中还内嵌有通信仿真引擎102,用于对该仿真进程10对应的处理器的消息通信过程进行仿真;进程间通信控制单元12,用于通过仿真进程间通信网络11实现多个仿真进程10之间的通信机制。
其中,所述多个仿真进程10可以运行在同一台仿真宿主机中,所述仿真宿主机可以是单核宿主机,即仅包括一个处理器内核,各个仿真进程10分时运行;所述仿真宿主机也可以是多核宿主机,即包括多个处理器内核,各个仿真进程10分别并行的运行在不同的处理器内核上。所述仿真进程10也可以分布式的并行运行在多台仿真宿主机组成的网络上,各个仿真进程10分别运行在不同的宿主机中。
相应地,若所述多个仿真进程10运行在同一台仿真宿主机上,则所述仿真进程间通信网络11可以是操作系统中底层的进程通信网络。若所述多个仿真进程10运行在多台仿真宿主机组成的网络上,则所述仿真进程间通信网络11可以是不同宿主机之间的连接网络。根据具体实施例的不同,所述多个仿真进程10之间具体的通信机制可以是共享内存通信或套接字通信等。
处理器仿真模型101对所述多处理器系统中每一个处理器的内部运算过程建模,仿真进程10对其进行执行后实现每一个处理器的内部运算过程的仿真。
图3示出了本实施例的多处理器系统的通信仿真引擎102的总体结构与处理器仿真模型101之间的连接关系示意图,如图3所示,通信仿真引擎102包括通信仿真抽象接口20、发送仿真单元21和接收仿真单元22,其中,通信仿真抽象接口20用于接收多处理器中发送端处理器(在发送过程中,所述处理器仿真模型101作为发送端处理器)发出的通信消息并将其传输至所述发送仿真单元21;发送仿真单元21用于获取所述发送端处理器发出的通信消息,对所述发送端处理器的发送过程进行仿真,将所述通信消息转换为网络数据包,并基于所述仿真进程之间的通信机制将所述网络数据包发出;接收仿真单元22基于所述仿真进程之间的通信机制获取所述网络数据包,对所述接收端处理器的接收过程进行仿真,将所述网络数据包拆解为通信消息并通过所述通信仿真抽象接口20将其传输至所述接收端处理器(在接收过程中,所述处理器仿真模型101作为接收端处理器)。需要说明的是,一次消息通信过程是发生在不同的处理器之间的,即发送端处理器和接收端处理器,图2及后续附图中做了简化,仅示出一个处理器仿真模型101,并以该处理器仿真模型101为例,分别说明发送端处理器的发送仿真过程和接收端处理器的接收仿真过程。
所述处理器仿真模型101发出和接收的通信消息为抽象的通信消息,仅包括通信的类型(如发送、接收、同步等),以及相应的地址(如逻辑源地址、逻辑目的地址等)和需要传输的数据等,而不涉及具体的通信仿真算法的实现。上述抽象的通信消息的具体格式、规则和内容与通信仿真抽象接口20相配合,所述通信仿真抽象接口20对其进行传输并交由所述发送仿真单元21和接收仿真单元22进行具体的通信过程的仿真。由于处理器发出和接收的通信消息为抽象的通信消息,各个处理器仿真模型101并不需要对通信过程的具体通信仿真算法、传输等过程进行仿真,而是交由通信仿真引擎102来进行,因而将不同处理器之间的通信过程的仿真与处理器内部的计算过程的仿真相独立,有利于提高可复用性。
图4示出了本实施例的多处理器系统的通信仿真引擎102的详细结构和处理器仿真模型101之间的连接关系示意图。
结合图3和图4,所述发送仿真单元21包括:第一算法确定单元212,用于确定发送端处理器所采用的通信仿真算法;发送仿真执行模块211,根据所述发送端处理器所采用的通信仿真算法对所述发送端处理器的发送过程进行仿真,将所述发送端处理器发出的通信消息转换为仿真消息包,所述仿真消息包包括数据、发送端处理器的逻辑源地址和接收端处理器的逻辑目的地址;发送网络控制模块213,查找所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址,并将其与所述仿真消息包一并打包形成网络数据包。
所述仿真消息包的格式内容如图5所示,包括逻辑源地址、逻辑目的地址和数据,此外,还可以包括记录当前仿真时间的仿真时间戳。所述网络数据包的格式内容如图6所示,包括物理目的地址、逻辑源地址、逻辑目的地址和数据,此外,也可以包括记录当前仿真时间的仿真时间戳。
所述逻辑源地址指的是发送端处理器自身的逻辑地址,所述接收端处理器的逻辑目的地址指的是接收端处理器自身的逻辑地址,上述逻辑地址也即是多处理器系统内部对于各个处理器的编址,而所述接收端处理器的物理目的地址指的是对所述接收端处理器进行仿真的仿真进程的物理地址,当采用共享内存通信方式进行进程间通信时,所述物理地址可以是仿真进程的进程号,当采用套接字通信方式进行进程间通信时,所述物理地址可以是相应的宿主机的IP地址等。
所述发送网络控制模块213包括:发送队列2131,接收所述发送仿真执行模块211产生的发送仿真消息包并对其进行缓冲;地址转换子模块2132,接收来自所述发送队列2131的仿真消息包,查找所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址;网络打包子模块2133,将所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址与所述仿真消息包一并打包形成网络数据包。
本实施例中,所述发送端处理器所采用的通信仿真算法是可配置的,由第一算法确定模块212根据配置文件31从通信算法仿真库32中查找获取,由于所述发送端处理器发出的通信消息中包含的具体的通信仿真算法仅是一个抽象的描述,实际选用的具体算法(如eager协议算法等)则需要在配置文件中进行配置,而该具体算法的实现过程则位于通信算法仿真库32中。所述第一算法确定模块212根据从通信算法仿真抽象接口20获取的通信消息确定本次发送过程所采用的具体的通信仿真算法,并交由所述发送仿真执行模块211,发送仿真执行模块211根据该具体的通信仿真算法对通信消息的发送过程进行仿真和运算。
图7示出了通信仿真算法的确定过程,配置文件中包括各种抽象接口类型名称以及对应的算法名、配置项和函数入口,其中抽象接口类型包括SIM_Send(即发送)、SIM_Rec(即接收),SIM_Barrier(即同步)等,每一种通信类型对应多个算法,根据配置项中是否选中该算法,第一算法确定模块从通信算法仿真库中查找获取相应的通信仿真算法的实现过程,并交由所述发送仿真执行模块进行执行。
本实施例中,地址转换子模块2132将逻辑目的地址转换为逻辑物理地址的过程也是可配置的,具体的,通过配置文件31查找本次仿真过程所使用的地址转换表33,并根据地址转换表33记录的逻辑地址和物理地址的映射关系,将本次发送过程涉及的逻辑目的地址转换为物理目的地址。采用可配置的地址转换方法有利于进一步改善该通信仿真引擎的可复用性。当然,在其他具体实施例中,上述地址转化的过程也可以固化在地址转换子模块中2132中,而不采用配置文件31和地址转换表33进行配置和查找。
网络打包子模块2133调用操作系统通信库34,将所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址与所述仿真消息包一并打包形成网络数据包,所述网络数据包通过仿真进程间通信网络进行传输。所述操作系统通信库34是操作系统提供的包含有仿真进程间的通信机制的实现过程的函数库,当然,在其他实施例中,也可以不调用操作系统通信库34,而是将相应的具体实现过程集成在网络打包子模块2133中一并执行。
结合图3和图4,所述接收仿真单元22包括:接收网络控制模块223,将所述网络数据包拆解产生仿真消息包,所述仿真消息包包括数据、发送端处理器的逻辑源地址和接收端处理器的逻辑目的地址;第二算法确定模块222,用于确定所述接收端处理器所采用的通信仿真算法;接收仿真执行模块221,根据所述接收端处理器所采用的通信仿真算法对所述接收端处理器的接收过程进行仿真,将所述仿真消息包转换为通信信息,并将所述通信信息通过通信仿真抽象接口20传输至所述接收端处理器。
在一具体实施例中,所述接收仿真执行模块221和发送仿真执行模块211可以合并集成为同一个仿真执行模块,同时支持对发送过程以及接收过程的通信过程进行执行和仿真。
本实施例中,所述接收网络控制模块223包括:网络拆包子模块2231,对所述网络数据包进行拆解产生仿真消息包,与发送端处理器对应的,所述仿真消息包包括数据、发送端处理器的逻辑源地址和接收端处理器的逻辑目的地址;接收队列2231,接收所述网络拆包子模块产生的仿真消息包,对其进行缓冲后传输至所述接收仿真执行模块221。
与发送仿真单元21类似的,本实施例中的接收仿真单元22的仿真过程也是可以配置的。具体的,所述第二算法确定模块222根据配置文件31从通信算法仿真库32中查找所述发送端处理器所采用的通信仿真算法。通信仿真算法的确定过程与发送仿真单元21类似,这里不再赘述。
与发送仿真单元21类似的,所述网络拆包子模块2232调用操作系统通信库34对所述网络数据包进行拆解产生仿真消息包。
下面结合图1至图4对本实施例的多处理器系统的通信仿真方法、引擎及系统的具体仿真过程进行详细说明。
首先参考图2,所述进程创建单元13创建多个仿真进程10,每一个仿真进程10对所述多处理器系统中的一个处理器进行仿真,具体的,通过对处理器仿真模型101的执行以对各处理器的内部计算过程进行仿真。每一个仿真进程10内还内嵌有通信仿真引擎102,用于对该仿真进程10中相应的处理器的消息通信过程进行仿真。
在发送过程中,处理器仿真模型101发出的通信消息传输至通信仿真抽象接口20,所述通信消息为抽象的通信消息,其中包括当前的发送端处理器(即处理器仿真模型101)的逻辑源地址、本次通信过程中的接收端处理器的逻辑目的地址、数据等。
第一算法确定模块212根据通信仿真抽象接口20传输的通信消息确定发送过程采用的通信仿真算法,并交由发送仿真执行模块211进行执行。具体的,执行过程中,所述发送仿真执行模块211仿真产生仿真消息包,还根据具体的通信过程的模式动态的改变通信仿真状态,如阻塞通信中,发送仿真执行模块211对本次通信过程进行执行,直至完全结束;如非阻塞通信中,发送仿真执行模块211对本次通信过程进行执行,直至所采用的具体的通信仿真算法中的非阻塞部分,并记录当前的通信仿真状态后进入等待状态,直到后续发送具有匹配的逻辑目的地址的通信消息时触发发送仿真执行模块211继续对等待状态中的通信仿真算法进行执行。
发送仿真执行模块211产生的仿真消息包经由发送队列2131缓冲,地址转换子模块2132进行地址转换以及网络打包子模块2133进行打包后,产生网络数据包,所述网络数据包基于仿真进程间的通信机制,如共享内存通信、套接字通信等,传输至对接收端处理器进行仿真的仿真进程。
在接收过程中,对接收端处理器进行仿真的仿真进程基于仿真进程间的通信机制获取发送端处理器发出的网络数据包,经由网络拆包子模块2232拆包产生仿真消息包,所述仿真消息包经过接收队列2231缓冲后,由接收仿真执行模块221执行仿真,产生的通信消息经由通信仿真抽象接口20传输至接收端处理器(即处理器仿真模型101)。
综上,本实施例中的通信仿真方法、引擎及系统中,建立统一的通信仿真抽象接口,使得不同处理器之间的通信仿真过程与处理器内部的计算仿真过程相独立,改善了可复用性。此外,相应的通信仿真算法确定过程和地址转换过程都是可以配置的,进一步提高了可复用性。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
Claims (21)
1.一种多处理器系统的通信仿真方法,其特征在于,包括:
创建多个仿真进程,每一个仿真进程对所述多处理器系统中的一个处理器进行仿真;
获取所述多处理器系统中发送端处理器发出的通信消息,对所述发送端处理器的发送过程进行仿真,将所述通信消息转换为网络数据包;
基于所述仿真进程之间的通信机制将所述网络数据包传输至对接收端处理器进行仿真的仿真进程;
对所述接收端处理器的接收过程进行仿真,将所述网络数据包拆解为通信消息并将其传输至所述接收端处理器。
2.根据权利要求1所述的多处理器系统的通信仿真方法,其特征在于,所述对所述发送端处理器的发送过程进行仿真,将所述通信消息转换为网络数据包包括:
确定所述发送端处理器所采用的通信仿真算法;
根据所述发送端处理器所采用的通信仿真算法对所述发送端处理器的发送过程进行仿真,将所述发送端处理器发出的通信消息转换为仿真消息包,所述仿真消息包包括数据、发送端处理器的逻辑源地址和接收端处理器的逻辑目的地址;
查找所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址,并将其与所述仿真消息包一并打包形成网络数据包。
3.根据权利要求2所述的多处理器系统的通信仿真方法,其特征在于,在将所述通信消息转换为仿真消息包之后,查找所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址之前,还包括:将所述仿真消息包加入发送队列进行缓冲。
4.根据权利要求2所述的多处理器系统的通信仿真方法,其特征在于,所述确定所述发送端处理器所采用的通信仿真算法包括:根据配置文件从通信算法仿真库中查找所述发送端处理器所采用的通信仿真算法。
5.根据权利要求2所述的多处理器系统的通信仿真方法,其特征在于,所述网络数据包采用如下方式生成:将所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址与所述仿真消息包合并,调用操作系统通信库,生成所述网络数据包。
6.根据权利要求1所述的多处理器系统的通信仿真方法,其特征在于,所述对所述接收端处理器的接收过程进行仿真,将所述网络数据包拆解为通信消息并将其传输至所述接收端处理器包括:
将所述网络数据包拆解产生仿真消息包,所述仿真消息包包括数据、发送端处理器的逻辑源地址和接收端处理器的逻辑目的地址;
确定所述接收端处理器所采用的通信仿真算法;
根据所述接收端处理器所采用的通信仿真算法对所述接收端处理器的接收过程进行仿真,将所述仿真消息包转换为通信信息,并将所述通信信息传输至所述接收端处理器。
7.根据权利要求6所述的多处理器系统的通信仿真方法,其特征在于,将所述网络数据包拆解产生仿真消息包之后,确定所述接收端处理器所采用的通信仿真算法之前,还包括:将所述仿真消息包加入接收队列进行缓冲。
8.根据权利要求6所述的多处理器系统的通信仿真方法,其特征在于,所述确定所述接收端处理器所采用的通信仿真算法包括:根据配置文件从通信算法仿真库中查找所述接收端处理器所采用的通信仿真算法。
9.根据权利要求6所述的多处理器系统的通信仿真方法,其特征在于,所述仿真消息包采用如下方式生成:调用操作系统通信库,将所述网络数据包拆解为仿真消息包。
10.根据权利要求1所述的多处理器系统的通信仿真方法,其特征在于,所述仿真进程之间的通信机制包括共享内存通信或套接字通信。
11.一种多处理器系统的通信仿真引擎,用于对多处理器系统仿真中各处理器之间的通信过程进行仿真,所述多处理器系统仿真包括多个仿真进程,每一个仿真进程对所述多处理器系统中的一个处理器进行仿真,所述通信仿真引擎嵌入所述仿真进程中,其特征在于,包括:通信仿真抽象接口,发送仿真单元和接收仿真单元,其中,
所述通信仿真抽象接口,用于接收多处理器中发送端处理器发出的通信消息并将其传输至所述发送仿真单元;
所述发送仿真单元,用于获取所述发送端处理器发出的通信消息,对所述发送端处理器的发送过程进行仿真,将所述通信消息转换为网络数据包,并基于所述仿真进程之间的通信机制将所述网络数据包发出;
所述接收仿真单元,基于所述仿真进程之间的通信机制获取所述网络数据包,对所述接收端处理器的接收过程进行仿真,将所述网络数据包拆解为通信消息并通过所述通信仿真抽象接口将其传输至所述接收端处理器。
12.根据权利要求11所述的多处理器系统的通信仿真引擎,其特征在于,所述发送仿真单元包括:
第一算法确定模块,用于确定所述发送端处理器所采用的通信仿真算法;
发送仿真执行模块,根据所述发送端处理器所采用的通信仿真算法对所述发送端处理器的发送过程进行仿真,将所述发送端处理器发出的通信消息转换为仿真消息包,所述仿真消息包包括数据、发送端处理器的逻辑源地址和接收端处理器的逻辑目的地址;
发送网络控制模块,查找所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址,并将其与所述仿真消息包一并打包形成网络数据包。
13.根据权利要求12所述的多处理器系统的通信仿真引擎,其特征在于,所述发送网络控制模块包括:
发送队列,接收所述发送仿真执行模块产生的发送仿真消息包并对其进行缓冲;
地址转换子模块,接收来自所述发送队列的仿真消息包,查找所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址;
网络打包子模块,将所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址与所述仿真消息包一并打包形成网络数据包。
14.根据权利要求12所述的多处理器系统的通信仿真引擎,其特征在于,所述第一算法确定模块根据配置文件从通信算法仿真库中查找所述发送端处理器所采用的通信仿真算法。
15.根据权利要求12所述的多处理器系统的通信仿真引擎,其特征在于,所述网络打包子模块调用操作系统通信库,将所述仿真消息包中的接收端处理器的逻辑目的地址对应的物理目的地址与所述仿真消息包一并打包形成网络数据包。
16.根据权利要求11所述的多处理器系统的通信仿真引擎,其特征在于,所述接收仿真单元包括:
接收网络控制模块,将所述网络数据包拆解产生仿真消息包,所述仿真消息包包括数据、发送端处理器的逻辑源地址和接收端处理器的逻辑目的地址;
第二算法确定模块,用于确定所述接收端处理器所采用的通信仿真算法;
接收仿真执行模块,根据所述接收端处理器所采用的通信仿真算法对所述接收端处理器的接收过程进行仿真,将所述仿真消息包转换为通信信息,并将所述通信信息通过所述通信仿真抽象接口传输至所述接收端处理器。
17.根据权利要求16所述的多处理器系统的通信仿真引擎,其特征在于,所述接收网络控制模块包括:
网络拆包子模块,对所述网络数据包进行拆解产生仿真消息包,所述仿真消息包包括数据、发送端处理器的逻辑源地址和接收端处理器的逻辑目的地址;
接收队列,接收所述网络拆包子模块产生的仿真消息包,对其进行缓冲后传输至所述接收仿真执行模块。
18.根据权利要求16所述的多处理器系统的通信仿真引擎,其特征在于,所述第二算法确定模块根据配置文件从通信算法仿真库中查找所述发送端处理器所采用的通信仿真算法。
19.根据权利要求17所述的多处理器系统的通信仿真引擎,其特征在于,所述网络拆包子模块调用操作系统通信库对所述网络数据包进行拆解产生仿真消息包。
20.根据权利要求11所述的多处理器系统的通信仿真引擎,其特征在于,所述仿真进程之间的通信机制包括共享内存通信或套接字通信。
21.一种多处理器系统的通信仿真系统,其特征在于,包括权利要求11至20中任一项所述的多处理器系统的通信仿真引擎、进程创建单元以及进程间通信控制单元,所述进程创建单元用于创建所述多个仿真进程,每一个仿真进程对所述多处理器系统中的一个处理器进行仿真,所述进程间通信控制单元用于通过仿真进程间通信网络实现所述仿真进程之间的通信机制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110110825.5A CN102760114B (zh) | 2011-04-29 | 2011-04-29 | 多处理器系统的通信仿真方法、引擎及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110110825.5A CN102760114B (zh) | 2011-04-29 | 2011-04-29 | 多处理器系统的通信仿真方法、引擎及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102760114A true CN102760114A (zh) | 2012-10-31 |
CN102760114B CN102760114B (zh) | 2015-07-08 |
Family
ID=47054573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110110825.5A Active CN102760114B (zh) | 2011-04-29 | 2011-04-29 | 多处理器系统的通信仿真方法、引擎及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102760114B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159755A (zh) * | 2015-10-12 | 2015-12-16 | 无锡还有网络科技有限公司 | 多处理器的仿真处理系统 |
CN105718305A (zh) * | 2016-03-15 | 2016-06-29 | 南京南瑞继保电气有限公司 | 一种基于进程的仿真任务并行调度方法 |
CN106452960A (zh) * | 2016-10-11 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种基于多处理器系统仿真的报文超时确定方法及装置 |
CN106571888A (zh) * | 2016-11-10 | 2017-04-19 | 中国人民解放军空军航空大学军事仿真技术研究所 | 一种仿真系统自动同步可靠通信方法 |
CN109101456A (zh) * | 2018-08-30 | 2018-12-28 | 浪潮电子信息产业股份有限公司 | 一种仿真ssd中的数据交互通信方法、装置及终端 |
CN113569526A (zh) * | 2021-07-02 | 2021-10-29 | 苏州盛科通信股份有限公司 | Cpu配置方法、cpu配置装置及芯片仿真方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1612562A (zh) * | 2003-10-28 | 2005-05-04 | 武汉烽火网络有限责任公司 | 用策略流实现不同因特网协议数据包转发的方法和设备 |
US20070204271A1 (en) * | 2006-02-28 | 2007-08-30 | Andrew Gaiarsa | Method and system for simulating a multi-CPU/multi-core CPU/multi-threaded CPU hardware platform |
CN101436959A (zh) * | 2008-12-18 | 2009-05-20 | 中国人民解放军国防科学技术大学 | 基于后台管控架构的并行仿真任务分发与调度方法 |
-
2011
- 2011-04-29 CN CN201110110825.5A patent/CN102760114B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1612562A (zh) * | 2003-10-28 | 2005-05-04 | 武汉烽火网络有限责任公司 | 用策略流实现不同因特网协议数据包转发的方法和设备 |
US20070204271A1 (en) * | 2006-02-28 | 2007-08-30 | Andrew Gaiarsa | Method and system for simulating a multi-CPU/multi-core CPU/multi-threaded CPU hardware platform |
CN101436959A (zh) * | 2008-12-18 | 2009-05-20 | 中国人民解放军国防科学技术大学 | 基于后台管控架构的并行仿真任务分发与调度方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159755A (zh) * | 2015-10-12 | 2015-12-16 | 无锡还有网络科技有限公司 | 多处理器的仿真处理系统 |
CN105718305A (zh) * | 2016-03-15 | 2016-06-29 | 南京南瑞继保电气有限公司 | 一种基于进程的仿真任务并行调度方法 |
CN105718305B (zh) * | 2016-03-15 | 2018-11-13 | 南京南瑞继保电气有限公司 | 一种基于进程的仿真任务并行调度方法 |
CN106452960A (zh) * | 2016-10-11 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种基于多处理器系统仿真的报文超时确定方法及装置 |
CN106452960B (zh) * | 2016-10-11 | 2019-09-24 | 郑州云海信息技术有限公司 | 一种基于多处理器系统仿真的报文超时确定方法及装置 |
CN106571888A (zh) * | 2016-11-10 | 2017-04-19 | 中国人民解放军空军航空大学军事仿真技术研究所 | 一种仿真系统自动同步可靠通信方法 |
CN106571888B (zh) * | 2016-11-10 | 2018-08-14 | 中国人民解放军空军航空大学军事仿真技术研究所 | 一种仿真系统自动同步可靠通信方法 |
CN109101456A (zh) * | 2018-08-30 | 2018-12-28 | 浪潮电子信息产业股份有限公司 | 一种仿真ssd中的数据交互通信方法、装置及终端 |
CN109101456B (zh) * | 2018-08-30 | 2021-10-15 | 浪潮电子信息产业股份有限公司 | 一种仿真ssd中的数据交互通信方法、装置及终端 |
CN113569526A (zh) * | 2021-07-02 | 2021-10-29 | 苏州盛科通信股份有限公司 | Cpu配置方法、cpu配置装置及芯片仿真方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102760114B (zh) | 2015-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102457439B (zh) | 一种云计算系统的虚拟交换系统及其虚拟交换方法 | |
CN111131037B (zh) | 基于虚拟网关的数据传输方法、装置、介质与电子设备 | |
WO2020093887A1 (zh) | 用于片上网络noc的数据传输方法、装置及电子设备 | |
CN101128807B (zh) | 用于扩充中断控制器和合成中断来源的系统和方法 | |
CN105024855B (zh) | 分布式集群管理系统和方法 | |
JP5792894B2 (ja) | ポート拡張トポロジ情報の取得用方法、システム及び制御ブリッジ並びにアップリンクポートの処理方法及びシステム | |
CN102760114A (zh) | 多处理器系统的通信仿真方法、引擎及系统 | |
CN106559511B (zh) | 云系统、云端公共服务系统及用于云系统的互访方法 | |
CN104052789A (zh) | 用于虚拟联网系统的负载平衡 | |
CN110838954B (zh) | 一种轻量级大规模自主网络协议功能测试方法 | |
CN102326147B (zh) | 虚拟网络环境中的复制避免 | |
WO2020134827A1 (zh) | 一种用于片上网络的路径创建方法、装置及电子设备 | |
CN110389711B (zh) | 帮助端点设备实现sr-iov功能的方法、设备和非瞬态计算机可读介质 | |
JP5541292B2 (ja) | 分散システム、通信手段選択方法および通信手段選択プログラム | |
JP2010517172A (ja) | 位置透過性及び動的部分再構成を支援するハードウエア通信インフラストラクチャ | |
CN109324908A (zh) | Netlink资源的容器隔离方法及装置 | |
CN103092676A (zh) | 虚拟机集群的模拟输入输出方法、装置及系统 | |
CN103282888A (zh) | 数据处理方法、图像处理器gpu及第一节点设备 | |
CN104102550A (zh) | 一种多主机进程间通信的方法 | |
CN113285839A (zh) | 基于dpdk的可编程数据平面软件交换机的设计方法 | |
CN108353017B (zh) | 计算系统和用于操作多网关虚拟机上的多个网关的方法 | |
CN106550026B (zh) | 一种网络通信装置及方法 | |
CN103533017A (zh) | 服务调用方法和系统 | |
Khan et al. | Software architecture and algorithm for reliable RPC for geo-distributed mobile computing systems | |
CN104572315A (zh) | 实现子系统间通信的方法、通信实体及分布式通信系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |