CN107220107B - 一种多时钟多任务并行实时仿真***及方法 - Google Patents
一种多时钟多任务并行实时仿真***及方法 Download PDFInfo
- Publication number
- CN107220107B CN107220107B CN201710517925.7A CN201710517925A CN107220107B CN 107220107 B CN107220107 B CN 107220107B CN 201710517925 A CN201710517925 A CN 201710517925A CN 107220107 B CN107220107 B CN 107220107B
- Authority
- CN
- China
- Prior art keywords
- clock
- simulation
- task
- submodule
- scheduling
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种多时钟多任务并行实时仿真***及方法,该***包含:时钟域控制模块,其用于获取若干脉冲时钟源,并向仿真控制模块输出若干时钟激励信息;仿真控制模块,其用于通过时钟调度机制,对时钟激励信息进行分配和管控,向若干仿真任务发送时钟调度驱动信号,同时对仿真任务的数据进行实时监控;硬件接口映射模块,其用于以仿真任务语言的形式描述硬件接口的操作;以及仿真任务模块,其用于在仿真控制模块的时钟调度驱动信号的驱动下,进行独立运算,并通过硬件接口映射模块,完成相应的硬件接口操作。本发明的仿真***能够按多任务应用需求,形成同源时钟驱动和异构时钟驱动,从而满足多时钟多任务的并行仿真要求。
Description
技术领域
本发明属于工程***实时仿真技术领域,其涉及一种实时仿真***,具体涉及一种多时钟多任务并行实时仿真***及方法。
背景技术
实时仿真***是控制技术实现算法模拟、进行被控对象建模以及完成控制***闭环仿真的关键。它要求仿真任务的时间比例和真实***的时间比例保持一致,因此可以实时稳定的接收动态输入以及发送动态输出,实时仿真***还可以接入实物***,从而避免了复杂***建模造成的误差,进一步保证了仿真的实时性,因此它在控制***的分析、研究和设计中得到了广泛的应用。
随着控制***中被控对象的日趋复杂,多任务仿真的难度也日益增加。仿真环境中的节点越多,规模越大,所需要的仿真任务也就越多,各个仿真任务直接的异构性差异会越来越大。主要表现在多任务仿真在同周期任务的基础上,逐渐增加了异周期任务的要求,在多任务同源时钟的基础上,也逐渐增加了异构时钟的要求。而传统的仿真机,对于时钟管理的控制集中在解决同源同周期的多任务要求,无法解决对于同源异周期的多时钟多任务仿真,以及异构时钟的多时钟多任务仿真要求。
在多任务仿真中,大量的仿真任务被建立,仿真任务的接口、调度机制没有进行有效合适的管理,影响仿真引擎的执行效率和仿真任务的开发效率。在传统仿真机中,***调度、时钟管理以及仿真任务的执行往往是混在一起,这样既不利于开发工作清晰透明、仿真任务的移植和维护,更加无法剥离仿真任务对特定仿真***的设计依赖和仿真任务对特定时钟源的设计依赖。
随着分布式应用环境的愈发成熟,总线通信技术得到了更多的关注和应用,总线可以是各个仿真任务和仿真节点数据交换的通道。通过总线完成各个仿真任务的时钟调度,不仅可以节约现有的时钟资源,更可以利用总线数据驱动,优化仿真任务的设计,传统仿真机无法在数据总线中获取总线数据驱动作为仿真时钟,这就导致传统的仿真机对分布式应用的局限性大大增加。
随着控制***产业的飞速发展,仿真任务的研制,将会有快速设计、快速仿真、快速验证的的设计要求。这就意味着对仿真设备资源的需要有更高的利用率。传统的仿真设备只能向一组仿真任务提供硬件资源和***资源的支持,无法实现仿真***设备的复用。
中国授权公告号为CN102929158B的发明专利,公开了一种多核多模型并行分布式实时仿真***,其描述了一种提供任务调度的办法,在多核处理器上完成多模型的仿真功能,但无法对多时钟应用进行仿真。
中国授权公告号为CN103136032B的发明专利,公开了一种多核体系并行仿真***,其描述了以快速的搭建出针对定硬件环境的仿真模型,从而加速了对多核体系静态调度算法的验证,但并没有对多任务应用和多时钟应用提供仿真支持。
发明内容
本发明的目的是提供一种多时钟多任务并行实时仿真***及方法,该***解决了现有技术不能够进行多时钟多任务的仿真的问题,能够按多任务应用需求,形成同源时钟驱动和异构时钟驱动,以此来驱动多任务的仿真需求。
为了达到上述目的,本发明提供了一种多时钟多任务并行实时仿真***,该***包含:时钟域控制模块,其用于获取若干脉冲时钟源,并向仿真控制模块输出若干时钟激励信息;仿真控制模块,其用于通过时钟调度机制,对所述的时钟激励信息进行分配和管控,向若干仿真任务发送时钟调度驱动信号,同时对仿真任务的数据进行实时监控;硬件接口映射模块,其用于以仿真任务语言的形式描述硬件接口的操作;以及仿真任务模块,其用于在所述的仿真控制模块的时钟调度驱动信号的驱动下,进行一次独立运算,并通过所述的硬件接口映射模块,完成一次相应的硬件接口操作。
其中,所述的时钟激励信息包含:同源时钟激励信息和/或异构时钟激励信息。
其中,所述的仿真任务包含:若干同步性任务和/或若干异步性任务。
所述的时钟域控制模块包含:脉冲时钟获取子模块,其用于在脉冲时钟源中进行时钟信号的采集,将采集到的脉冲时钟源进行中断委托,发送给时钟激励子模块;总线时钟获取子模块,其用于在总线中进行总线信号的采集,将采集到的总线数据信号进行数据驱动,并进行中断委托,发送给时钟激励子模块;时钟激励子模块,其用于接收所述的脉冲时钟获取子模块和总线时钟获取子模块的中断委托,当接收到时脉冲时钟信号或总线数据驱动信号时,时钟激励子模块将产生时钟激励信号,并发送给所述的仿真控制模块。
所述的仿真控制模块包含:资源配置子模块,其用于将若干仿真任务的资源配置信息,均发送给仿真任务集中间层子模块,同时将若干仿真任务的时钟信息均发送给时钟调度子模块;时钟调度子模块,其用于从所述的时钟域控制模块中获取时钟激励信息;仿真任务集中间层子模块,其用于对仿真任务的基本属性进行定义,并根据资源配置信息和时钟激励信息,实例化若干仿真任务,形成仿真任务集。
所述的仿真任务的基本属性包含:仿真任务所运行的处理器信息、硬件环境、监控总线环境,以及时钟激励信息接口。
所述的仿真控制模块还包含:仿真任务集调度子模块,其用于挂起仿真任务模块,当时钟激励触发时,在仿真任务模块接收到对应的时钟激励信息后,向仿真任务模块发送对应的仿真任务的时钟调度驱动信号。
所述的仿真控制模块还包含:数据发现子模块,其用于在监控总线中监听数据请求信息,并在所述的仿真任务集调度子模块中通过任务间通信的队列,完成对所需数据的提取;数据同传子模块,其用于将所述的数据发现子模块中的数据内容通过监控总线向仿真***动态监控上位机发送,同时还接收仿真***动态监控上位机的修改仿真数据指令,对对应的仿真任务模块的数据进行修改;以及数据存储子模块,其用于将所述的数据发现子模块中的数据内容、仿真***动态监控上位机的修改仿真数据指令和数据同传子模块的操作内容进行本地存储。
所述的硬件接口映射模块规范的硬件操作包括:模拟量采集操作、模拟量输出操作、I/O接口读写操作、任务间内存交换操作、总线数据读写操作、反射内存数据读写操作和网络通信协议读写操作;所述的总线数据读写操作包括:CAN总线数据读写操作和1553B总线数据读写操作。
本发明还提供了一种同源异周期和/或异构多任务时钟调度的方法,该方法采用所述的多时钟多任务并行实时仿真***,其包含:
第一步:在资源配置子模块中部署各同步性或/和异步性任务{M_1,M_2,...M_i,…,M_n}的时钟信息周期{T_1,T_2,...T_i,…,T_n};
第二步:在仿真***的初始化过程中,时钟调度子模块加载资源配置子模块,获取同步性或/和异步性任务任务{M_1,M_2,...M_i,…,M_n}的时钟信息周期{T_1,T_2,...T_i,…,T_n};
第三步:在时钟激励子模块中挂起时钟激励,等待时钟激励触发;
第四步:在进行同步性任务时,当时钟激励触发时,标记当前状态时钟T并进行累加,遍历同步性任务的时钟信息周期{T_1,T_2,...T_i,…,T_n},判断当前状态时钟T是否满足T=T_i,满足该条件时触发对应任务M_i的时钟调度驱动信号,否则直到遍历完成,等待下一个时钟激励;在进行异步性任务时,当异构时钟i的时钟激励i触发时,时钟调度驱动信号i触发,异步性任务i响应执行,等待其余时钟激励触发。
本发明还提供了一种同源异周期和/或异构多任务时钟调度的时序信号响应方法,该方法通过根据所述的同源异周期和/或异构多任务时钟调度的方法,触发时钟激励,当当前时刻ti=T_i时,触发第i个时钟调度驱动信号,使第i个同步性或/和异步性任务响应执行。
在进行n个同步性任务时,同源时钟的基频为T0,当T_i=i*T0,0<i≤n,且为自然数时,在ti时刻时,对于第p个同步性任务,0<p≤n且为自然数,当i能被整除p时,第p个时钟调度驱动信号触发,第p个同步性任务响应执行;当i不能被整除p时,第p个时钟调度驱动信号不触发;当i=0时,在t0时刻时,与n个同步性任务相应的n个时钟调度驱动信号均触发,n个同步性任务均响应执行。
在进行n个异步性任务时,每个异步性任务相应的时钟调度驱动信号的触发时间隔开,使各个异步性任务分别响应执行,各个异步性任务没有公共同步节点。
本发明的多时钟多任务并行实时仿真***及方法,解决了现有技术不能够进行多时钟多任务的仿真的问题,具有以下优点:
(1)本发明的仿真***通过对采集的时钟激励信息进行分配和调度,按多任务应用需求,形成同源时钟驱动和异构时钟驱动,以此来驱动多任务的仿真需求;
(2)本发明通过仿真任务集中间层子模块将各个仿真任务的差异性资源(CPU、硬件环境、监控总线环境以及时钟激励信息)和仿真任务本身进行抽离,使仿真任务的设计、维护更加灵活和独立;
(3)本发明以总线数据驱动为仿真时钟的办法,扩展了仿真***的多时钟应用,和分布式总线应用场景;
(4)本发明能够进行异构时钟多任务时钟调度,在硬件资源不冲突的条件下,多任务并行运行没有关联特性,使仿真***可以对多个仿真任务展开应用,增加了仿真***设备的复用性,提高了设备的利用率;
(5)本发明为多单位编队类型的实时仿真的应用提供了仿真***,本发明的***既可以作为多单位的集合体进行编队类型的仿真,也可以作为单位个体参与到多单位的集合中进行编队类型的仿真。当作为多单位的集合体时,各个单位作为本仿真***中的同步性任务应用,受同源时钟控制;当作为单位个体时,本仿真***为编队***中的其中一个同步性任务应用,受编队***中的同源时钟控制。
附图说明
图1为本发明实施例1的多时钟多任务并行实时仿真***的结构示意图。
图2为本发明实施例1的同源异周期多任务时钟调度的流程图。
图3为本发明实施例1的同源异周期多任务时钟调度的时序图。
图4为本发明实施例2的异构时钟多任务时钟调度的流程图。
图5为本发明实施例2的异构时钟多任务时钟调度的时序图。
具体实施方式
以下结合附图和实施例对本发明的技术方案做进一步的说明。
本发明的多时钟多任务并行实时仿真***,该***包含:时钟域控制模块,其用于获取若干脉冲时钟源,并向仿真控制模块输出若干时钟激励信息;仿真控制模块,其用于对时钟激励信息进行分配和管控,向若干仿真任务发送时钟激励信息,同时对仿真任务的数据进行实时监控;硬件接口映射模块,其用于以仿真任务语言的形式描述硬件接口的操作;以及仿真任务模块,其用于在仿真控制模块的时钟激励信息的驱动下,完成一次独立运算,并通过硬件接口映射模块,完成一次相应的硬件接口操作。
上述时钟激励信息包含:同源时钟激励信息和/或异构时钟激励信息。仿真任务包含:若干同步性任务和/或若干异步性任务。
上述时钟域控制模块包含:脉冲时钟获取子模块,其用于在脉冲时钟源中进行时钟信号的采集,将采集到的脉冲时钟源进行中断委托,发送给时钟激励子模块;总线时钟获取子模块,其用于在总线中进行总线信号的采集,将采集到的总线数据信号进行数据驱动,并进行中断委托,发送给时钟激励子模块;时钟激励子模块,其用于接收脉冲时钟获取子模块和总线时钟获取子模块的中断委托,当接收到时脉冲时钟信号或总线数据驱动信号时,时钟激励子模块将产生时钟激励信号,并发送给仿真控制模块。
上述仿真控制模块包含:资源配置子模块,其用于将若干仿真任务的资源配置信息,均发送给仿真任务集中间层子模块,同时将若干仿真任务的时钟信息均发送给时钟调度子模块;时钟调度子模块,其用于从时钟域控制模块中获取时钟激励信息;仿真任务集中间层子模块,其用于对仿真任务的基本属性进行定义,并根据资源配置信息和时钟激励信息,实例化若干仿真任务,形成仿真任务集。
上述仿真任务的基本属性包含:仿真任务所运行的处理器信息、硬件环境、监控总线环境,以及时钟激励信息接口。
上述仿真控制模块还包含:仿真任务集调度子模块,其用于挂起仿真任务模块,当时钟激励触发时,在仿真任务模块接收到对应的时钟激励信息后,向仿真任务模块发送对应的仿真任务的时钟调度驱动信号。
上述仿真控制模块还包含:数据发现子模块,其用于在监控总线中监听数据请求信息,并在仿真任务集调度子模块中通过任务间通信的队列,完成对所需数据的提取;数据同传子模块,其用于将数据发现子模块中的数据内容通过监控总线向仿真***动态监控上位机发送,同时还接收仿真***动态监控上位机的修改仿真数据指令,对对应的仿真任务模块的数据进行修改;以及数据存储子模块,其用于将数据发现子模块中的数据内容、仿真***动态监控上位机的修改仿真数据指令和数据同传子模块的操作内容进行本地存储。
上述硬件接口映射模块规范的硬件操作还包括(但不限于):模拟量采集操作、模拟量输出操作、I/O接口读写操作、任务间内存交换操作、总线数据读写操作、反射内存数据读写操作和网络通信协议读写操作。上述硬件接口映射模块规范的硬件操作还可以是其它可扩展的自定义硬件接口操作。
上述总线数据读写操作包括:CAN总线数据读写操作和1553B总线数据读写操作。
本发明的一种同源异周期和/或异构多任务时钟调度的方法,该方法采用多时钟多任务并行实时仿真***,其包含:
第一步:在资源配置子模块中部署各同步性或/和异步性任务{M_1,M_2,...M_i,…,M_n}的时钟信息周期{T_1,T_2,...T_i,…,T_n};
第二步:在仿真***的初始化过程中,时钟调度子模块加载资源配置子模块,获取同步性或/和异步性任务任务{M_1,M_2,...M_i,…,M_n}的时钟信息周期{T_1,T_2,...T_i,…,T_n};
第三步:在时钟激励子模块中挂起时钟激励,等待时钟激励触发;
第四步:在进行同步性任务时,当时钟激励触发时,标记当前状态时钟T并进行累加,遍历同步性任务的时钟信息周期{T_1,T_2,...T_i,…,T_n},判断前状态时钟T是否满足T=T_i,满足该条件时触发对应任务M_i的时钟调度驱动信号,否则直到遍历完成,等待下一个时钟激励;在进行异步性任务时,当异构时钟i的时钟激励i触发时,时钟调度驱动信号i触发,异步性任务i响应执行,等待其余时钟激励触发。
本发明的一种同源异周期和/或异构多任务时钟调度的时序信号响应方法,该方法通过根据同源异周期和/或异构多任务时钟调度的方法,触发时钟激励,当当前时刻ti=T_i时,触发第i个时钟调度驱动信号,使第i个同步性或/和异步性任务响应执行。
在进行n个同步性任务时,同源时钟的基频为T0,当T_i=i*T0,0<i≤n,且为自然数时,在ti时刻时,对于第p个同步性任务,0<p≤n且为自然数,当i能被整除p时,第p个时钟调度驱动信号触发,第p个同步性任务响应执行;当i不能被整除p时,第p个时钟调度驱动信号不触发;当i=0时,在t0时刻时,与n个同步性任务相应的n个时钟调度驱动信号均触发,n个同步性任务均响应执行。
在进行n个异步性任务时,每个异步性任务相应的时钟调度驱动信号的触发时间隔开,使各个异步性任务分别响应执行,各个异步性任务没有公共同步节点。
实施例1
如图1所示,为本发明实施例1的多时钟多任务并行实时仿真***的结构示意图,该***包含:仿真控制模块1、时钟域控制模块2、仿真任务模块3和硬件接口映射模块4。
其中,仿真控制模块1包含:资源配置子模块101、仿真任务集调度子模块102、仿真任务集中间层子模块103、时钟调度子模块104、数据发现子模块105、数据同传子模块106和数据存储子模块106。
其中,时钟域控制模块2包含:脉冲时钟获取子模块202、总线时钟获取子模块203和时钟激励子模块201。
一种同源异周期多任务时钟调度的方法,如图2所示,为本发明实施例1的同源异周期多任务时钟调度的流程图,进行同源异周期多任务时钟调度驱动时,方法具体如下:
第一步S1:在资源配置子模块101中部署各同步性任务{M_1,M_2,...M_i,…,M_n}的时钟信息周期{T_1,T_2,...T_i,…,T_n};
第二步S2:时钟调度子模块104在仿真***的初始化过程中,进行资源配置子模块101的加载,获取同步性任务{M_1,M_2,...M_i,…,M_n}的时钟信息周期{T_1,T_2,...T_i,…,T_n};
第三步S3:在时钟激励子模块中挂起时钟激励,等待时钟激励触发;
第四步S4:当时钟激励触发时,标记当前状态时钟T进行累加,遍历同步性任务的时钟信息周期{T_1,T_2,...T_i,…,T_n},判断前状态时钟T是否满足T=T_i,满足该条件时触发对应任务M_i的时钟调度驱动信号,否则直到遍历完成,等待下一个时钟激励。
一种同源异周期多任务时钟调度的时序信号响应方法,如图3所示,为本发明实施例1的同源异周期多任务时钟调度的时序图,本实施例中的仿真***的仿真任务中含有:三个同步性任务,分别为同步性任务1A(第1个同步性任务)、同步性任务2A(第2个同步性任务)和同步性任务3A(第3个同步性任务)。同步性任务1A的仿真周期(即时钟信息周期)是T1,同步性任务2A的仿真周期(即时钟信息周期)是T2,同步性任务3A的仿真周期(即时钟信息周期)是T3。本***的同源时钟的基频是T0。其中,T1=T0,T2=2T0,T3=3T0。同源异周期多任务时钟调度启动后,不同周期的任务响应情况具体如下:
(1)当t0(t0=0)触发时,时钟调度驱动信号1B(第1个时钟调度驱动信号)触发,同步性任务1A响应执行;时钟调度驱动信号2B(第2个时钟调度驱动信号)触发,同步性任务2A响应执行;时钟调度驱动信号3B(第3个时钟调度驱动信号)触发,同步性任务3A响应执行;
(2)当t1(t1=T1)触发时,时钟调度驱动信号1B触发,同步性任务1A响应执行;时钟调度驱动信号2B不触发,时钟调度驱动信号3B不触发;
(3)当t2(t2=T2)触发时,时钟调度驱动信号1B触发,同步性任务1A响应执行;时钟调度驱动信号2B触发,同步性任务2A响应执行;时钟调度驱动信号3B不触发;
(4)当t3(t3=T3)触发时,时钟调度驱动信号1B触发,同步性任务1A响应执行;时钟调度驱动信号2B不触发;时钟调度驱动信号3B触发,同步性任务3A响应执行;
(5)当t4(t4=4T0)触发时,时钟调度驱动信号1B触发,同步性任务1A响应执行;时钟调度驱动信号2B触发,同步性任务2A响应执行;时钟调度驱动信号3B不触发;
(6)当t5(t5=5T0)触发时,时钟调度驱动信号1B触发,同步性任务1A响应执行;时钟调度驱动信号2B不触发;时钟调度驱动信号3B不触发;
(7)当t6(t6=6T0)触发时,时钟调度驱动信号1B触发,同步性任务1响应执行;时钟调度驱动信号2B触发,同步性任务2A响应执行;时钟调度驱动信号3B触发,同步性任务3A响应执行。
在上述同源异周期多任务时钟调度中t0和t6是该仿真任务集的同步点。
实施例2
一种异构多任务时钟调度的方法,如图4所示,为本发明实施例2的异构时钟多任务时钟调度的流程图,进行异构时钟多任务时钟调度驱动时,方法具体如下:
第一步S1’:在资源配置子模块101中部署有各异步性任务{M_1,M_2,...M_i,…,M_n}的时钟信息周期{T_1,T_2,...T_i,…,T_n};
第二步S2’:时钟调度子模块104在仿真***的初始化过程中,进行资源配置子模块101的加载,获取异步性任务{M_1,M_2,...M_i,…,M_n}的时钟信息周期{T_1,T_2,...T_i,…,T_n}
第三步S3’:在时钟激励子模块中挂起每一个异构时钟激励,等待时钟激励触发;
第四步S4’:当异构时钟i的时钟激励i触发时,时钟调度驱动信号i触发,异步性任务i响应执行,等待其余时钟激励触发。
一种异构多任务时钟调度的时序信号响应方法,如图5所示,为本发明实施例2的异构时钟多任务时钟调度的时序图,本实施例中的仿真***的仿真任务中还含有:两个异步性任务,分别为异步性任务1A’(第1个异步性任务)和异步性任务2A’(第2个异步性任务)。异步性任务1A’的仿真周期(即时钟信息周期)是T1,异步性任务2A’的仿真周期(即时钟信息周期)是T2。异构时钟多任务时钟调度启动后,不同周期的任务响应情况具体如下:
(1)当t0、t1、t2、t3、t4、t5、t6触发时,时钟调度驱动信号1B’(第1个时钟调度驱动信号)触发,异步性任务1A’响应执行;
(2)当t10、t11、t12、t13、触发时,t10较t0慢半个周期,t11较t2慢半个周期,t12较t4慢半个周期,t13较t6慢半个周期,时钟调度驱动信号2B’(第2个时钟调度驱动信号)触发,异步性任务2A’响应执行;
上述异步性任务1和异步性任务2没有公共同步节点。
综上所述,本发明的多时钟多任务并行实时仿真***及方法,该***能够按多任务应用需求,形成同源时钟驱动和异构时钟驱动,从而满足多时钟多任务的并行仿真要求。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
Claims (9)
1.一种多时钟多任务并行实时仿真***,其特征在于,该***包含:
时钟域控制模块,其用于获取若干脉冲时钟源,并向仿真控制模块输出若干时钟激励信息;
仿真控制模块,其用于通过时钟调度机制,对所述的时钟激励信息进行分配和管控,向若干仿真任务发送时钟调度驱动信号,同时对仿真任务的数据进行实时监控;
硬件接口映射模块,其用于以仿真任务语言的形式描述硬件接口的操作;以及
仿真任务模块,其用于在所述的仿真控制模块的时钟调度驱动信号的驱动下,进行一次独立运算,并通过所述的硬件接口映射模块,完成一次相应的硬件接口操作;
其中,所述的时钟激励信息包含:同源时钟激励信息和/或异构时钟激励信息;
其中,所述的仿真任务包含:若干同步性任务和/或若干异步性任务;
所述的时钟域控制模块包含:
脉冲时钟获取子模块,其用于在脉冲时钟源中进行时钟信号的采集,将采集到的脉冲时钟源进行中断委托,发送给时钟激励子模块;
总线时钟获取子模块,其用于在总线中进行总线信号的采集,将采集到的总线数据信号进行数据驱动,并进行中断委托,发送给时钟激励子模块;
时钟激励子模块,其用于接收所述的脉冲时钟获取子模块和总线时钟获取子模块的中断委托,当接收到时脉冲时钟信号或总线数据驱动信号时,时钟激励子模块将产生时钟激励信号,并发送给所述的仿真控制模块。
2.根据权利要求1所述的多时钟多任务并行实时仿真***,其特征在于,所述的仿真控制模块包含:
资源配置子模块,其用于将若干仿真任务的资源配置信息,均发送给仿真任务集中间层子模块,同时将若干仿真任务的时钟信息均发送给时钟调度子模块;
时钟调度子模块,其用于从所述的时钟域控制模块中获取时钟激励信息;
仿真任务集中间层子模块,其用于对仿真任务的基本属性进行定义,并根据资源配置信息和时钟激励信息,实例化若干仿真任务,形成仿真任务集。
3.根据权利要求2所述的多时钟多任务并行实时仿真***,其特征在于,所述的仿真任务的基本属性包含:仿真任务所运行的处理器信息、硬件环境、监控总线环境,以及时钟激励信息接口。
4.根据权利要求2所述的多时钟多任务并行实时仿真***,其特征在于,所述的仿真控制模块还包含:
仿真任务集调度子模块,其用于挂起仿真任务模块,当时钟激励触发时,在仿真任务模块接收到对应的时钟激励信息后,向仿真任务模块发送对应的仿真任务的时钟调度驱动信号。
5.根据权利要求4所述的多时钟多任务并行实时仿真***,其特征在于,所述的仿真控制模块还包含:
数据发现子模块,其用于在监控总线中监听数据请求信息,并在所述的仿真任务集调度子模块中通过任务间通信的队列,完成对所需数据的提取;
数据同传子模块,其用于将所述的数据发现子模块中的数据内容通过监控总线向仿真***动态监控上位机发送,同时还接收仿真***动态监控上位机的修改仿真数据指令,对对应的仿真任务模块的数据进行修改;以及
数据存储子模块,其用于将所述的数据发现子模块中的数据内容、仿真***动态监控上位机的修改仿真数据指令和数据同传子模块的操作内容进行本地存储。
6.根据权利要求2所述的多时钟多任务并行实时仿真***,其特征在于,所述的硬件接口映射模块规范的硬件操作包括:模拟量采集操作、模拟量输出操作、I/O接口读写操作、任务间内存交换操作、总线数据读写操作、反射内存数据读写操作和网络通信协议读写操作;
所述的总线数据读写操作包括:CAN总线数据读写操作和1553B总线数据读写操作。
7.一种同源异周期和/或异构多任务时钟调度的方法,其特征在于,该方法采用权利要求2-6中任意一项所述的多时钟多任务并行实时仿真***,其包含:
第一步:在资源配置子模块中部署各同步性或/和异步性任务{M_1,M_2,...M_i,…,M_n}的时钟信息周期{T_1,T_2,...T_i,…,T_n};
第二步:在仿真***的初始化过程中,时钟调度子模块加载资源配置子模块,获取同步性或/和异步性任务任务{M_1,M_2,...M_i,…,M_n}的时钟信息周期{T_1,T_2,...T_i,…,T_n};
第三步:在时钟激励子模块中挂起时钟激励,等待时钟激励触发;
第四步:在进行同步性任务时,当时钟激励触发时,标记当前状态时钟T并进行累加,遍历同步性任务的时钟信息周期{T_1,T_2,...T_i,…,T_n},判断当前状态时钟T是否满足T=T_i,若满足T=T_i时触发对应任务M_i的时钟调度驱动信号,否则直到遍历完成,等待下一个时钟激励;在进行异步性任务时,当异构时钟i的时钟激励i触发时,时钟调度驱动信号i触发,异步性任务i响应执行,等待其余时钟激励触发。
8.一种同源异周期和/或异构多任务时钟调度的时序信号响应方法,其特征在于,该方法通过根据权利要求7所述的同源异周期和/或异构多任务时钟调度的方法,触发时钟激励,当当前时刻ti=T_i时,触发第i个时钟调度驱动信号,使第i个同步性或/和异步性任务响应执行。
9.根据权利要求8所述的同源异周期和/或异构多任务时钟调度的时序信号响应方法,其特征在于,在进行n个同步性任务时,同源时钟的基频为T0,当T_i=i*T0,0<i≤n,且为自然数时,在ti时刻时,对于第p个同步性任务,0<p≤n且为自然数,当i能被整除p时,第p个时钟调度驱动信号触发,第p个同步性任务响应执行;当i不能被整除p时,第p个时钟调度驱动信号不触发;当i=0时,在t0时刻时,与n个同步性任务相应的n个时钟调度驱动信号均触发,n个同步性任务均响应执行;
在进行n个异步性任务时,每个异步性任务相应的时钟调度驱动信号的触发时间隔开,使各个异步性任务分别响应执行,各个异步性任务没有公共同步节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710517925.7A CN107220107B (zh) | 2017-06-29 | 2017-06-29 | 一种多时钟多任务并行实时仿真***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710517925.7A CN107220107B (zh) | 2017-06-29 | 2017-06-29 | 一种多时钟多任务并行实时仿真***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107220107A CN107220107A (zh) | 2017-09-29 |
CN107220107B true CN107220107B (zh) | 2020-06-02 |
Family
ID=59951180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710517925.7A Active CN107220107B (zh) | 2017-06-29 | 2017-06-29 | 一种多时钟多任务并行实时仿真***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107220107B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110609555B (zh) * | 2019-09-20 | 2023-05-26 | 百度在线网络技术(北京)有限公司 | 用于信号控制的方法、装置、电子设备和计算机可读存储介质 |
CN111008065A (zh) * | 2019-12-05 | 2020-04-14 | 南京科太智汇科技有限公司 | 一种多分支并行仿真方法 |
CN111752692B (zh) * | 2020-06-23 | 2024-04-12 | 北京经纬恒润科技股份有限公司 | 仿真环境下的多核任务处理方法及装置 |
CN117521583B (zh) * | 2023-11-17 | 2024-07-19 | 中科苏州智能计算技术研究院 | 一种时钟驱动的软硬件联合仿真方法、***及存储介质 |
CN117608207A (zh) * | 2024-01-18 | 2024-02-27 | 成都流体动力创新中心 | 一种基于反射内存网的通信***及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719078A (zh) * | 2009-12-15 | 2010-06-02 | 北京空间飞行器总体设计部 | 一种基于并行计算管理的自主导航仿真调度管理*** |
CN101741850A (zh) * | 2009-12-25 | 2010-06-16 | 北京邮电大学 | 面向混合网络服务的多任务并发执行***及方法 |
CN102929158A (zh) * | 2012-10-30 | 2013-02-13 | 北京华力创通科技股份有限公司 | 一种多核多模型并行分布式实时仿真*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9542236B2 (en) * | 2011-12-29 | 2017-01-10 | Oracle International Corporation | Efficiency sequencer for multiple concurrently-executing threads of execution |
-
2017
- 2017-06-29 CN CN201710517925.7A patent/CN107220107B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719078A (zh) * | 2009-12-15 | 2010-06-02 | 北京空间飞行器总体设计部 | 一种基于并行计算管理的自主导航仿真调度管理*** |
CN101741850A (zh) * | 2009-12-25 | 2010-06-16 | 北京邮电大学 | 面向混合网络服务的多任务并发执行***及方法 |
CN102929158A (zh) * | 2012-10-30 | 2013-02-13 | 北京华力创通科技股份有限公司 | 一种多核多模型并行分布式实时仿真*** |
Also Published As
Publication number | Publication date |
---|---|
CN107220107A (zh) | 2017-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107220107B (zh) | 一种多时钟多任务并行实时仿真***及方法 | |
CN104866374B (zh) | 基于多任务的离散事件并行仿真及时间同步方法 | |
ATE245833T1 (de) | Verteilte rechnerumgebung mit echt-zeit ablauffolgenlogik und zeit-deterministischer architektur | |
Palencia et al. | Response-time analysis in hierarchically-scheduled time-partitioned distributed systems | |
WO2015051387A1 (en) | Method for executing tasks in a computer network | |
JP2016523409A (ja) | 分散リアルタイムシステムにおける周期的なタスク上で適時にデータを受け渡す方法および装置 | |
Balashov et al. | Scheduling of computational tasks in switched network-based IMA systems | |
Zhang et al. | A decomposition-based approach to optimization of TTP-based distributed embedded systems | |
Mubeen et al. | Analyzable modeling of legacy communication in component-based distributed embedded systems | |
Kodase et al. | Transforming structural model to runtime model of embedded software with real-time constraints | |
CN113848752B (zh) | 一种分布式实时仿真方法 | |
Glonina et al. | On the correctness of real-time modular computer systems modeling with stopwatch automata networks | |
Cicirelli et al. | Development of a schedulability analysis framework based on pTPN and UPPAAL with stopwatches | |
Moazzami et al. | Orbit: A platform for smartphone-based data-intensive sensing applications | |
CN115827258B (zh) | 分布式任务运行方法、主控服务器、仿真计算节点及*** | |
Chiba et al. | A distributed real-time operating system with location-transparent system calls for task management and inter-task synchronization | |
Ogawa et al. | Efficient approach to ensure temporal determinism in automotive control systems | |
CN115502975A (zh) | 一种机器人调度方法、装置、电子设备及存储介质 | |
Becker et al. | A many-core based execution framework for IEC 61131-3 | |
Moreno et al. | Distributed implementation of discrete event control systems based on Petri nets | |
Rivas et al. | Comparison of memory access strategies in multi-core platforms using mast | |
CN109446641A (zh) | 一种云计算服务***的多阶段可靠性建模分析方法 | |
WO2021220616A1 (ja) | 情報処理装置及び情報処理方法、コンピュータプログラム、並びに分散学習システム | |
Pérez et al. | EDF scheduling for distributed systems built upon the IEEE 802.1 AS clock-A theoretical-practical comparison | |
Barreto et al. | A novel approach for off-line multiprocessor scheduling in embedded hard real-time systems |
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 |