CN112463328A - 基于多核处理器平台的实时仿真定时方法、系统及介质 - Google Patents
基于多核处理器平台的实时仿真定时方法、系统及介质 Download PDFInfo
- Publication number
- CN112463328A CN112463328A CN202011352779.5A CN202011352779A CN112463328A CN 112463328 A CN112463328 A CN 112463328A CN 202011352779 A CN202011352779 A CN 202011352779A CN 112463328 A CN112463328 A CN 112463328A
- Authority
- CN
- China
- Prior art keywords
- simulation
- timing
- period
- time
- real
- 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.)
- Pending
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 105
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000006870 function Effects 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 2
- 230000011664 signaling Effects 0.000 claims 2
- 230000004888 barrier function Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 101100042259 Schizosaccharomyces pombe (strain 972 / ATCC 24843) rpn15 gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000004451 qualitative analysis Methods 0.000 description 1
- 238000004445 quantitative analysis Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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
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)
Abstract
本发明提供了一种基于多核处理器平台的实时仿真定时方法、系统及介质,包括:步骤1:对实时仿真主线程进行初始化,并创建定时线程;步骤2:对定时线程进行初始化,并获取仿真周期初始CPU时间戳和当前CPU时间戳;步骤3:根据仿真周期初始CPU时间戳和当前CPU时间戳,判断是否到达仿真周期,若没有到达仿真周期,则继续获取当前CPU时间戳,直至到达仿真周期;若到达仿真周期,则给出信号量;步骤4:主线程得到信号量后,判断是否满足预设条件,若不满足,则返回步骤2继续执行;若满足,则结束仿真。本发明减少了仿真的周期,解决了目前实时仿真系统在进行高频率定时时所产生的时钟抖动问题。
Description
技术领域
本发明涉及实时仿真技术领域,具体地,涉及一种基于多核处理器平台的实时仿真定时方法、系统及介质。
背景技术
实时仿真系统是指与自然时间具有严格对应关系仿真系统。实时仿真系统在复杂大系统的分析、研究、测试中具有重要的地位,有力的推动了复杂系统由定性分析向定量分析的转变。
实时仿真系统的定时周期与定时精度是其重要的指标,以往依靠操作系统的定时,存在其性能极限,当定时周期过小时,定时时钟存在较大抖动,定时精度无法保证。随着复杂系统的发展,对实时仿真系统的定时周期与定时精度提出了更高的要求,因此亟需一种方法解决该问题。
专利文献CN101788919A(申请号:CN201010104449.4)公开了一种片上多核处理器时钟精确并行仿真系统及其方法,所述系统包括初始化仿真系统的管理线程,所述管理线程根据仿真对象系统的核心数目或用户指定的参数创建核线程,所述管理线程接受核线程发送的访问数据事件并设置作用于核线程的悬挂路障,当最小本地时钟的核线程到达预定时钟周期未接受到数据时,核线程移动悬挂路障同步前进形成滑动仿真时间窗口。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于多核处理器平台的实时仿真定时方法、系统及介质。
根据本发明提供的基于多核处理器平台的实时仿真定时方法,包括:
步骤1:对实时仿真主线程进行初始化,并创建定时线程;
步骤2:对定时线程进行初始化,并获取仿真周期初始CPU时间戳和当前CPU时间戳;
步骤3:根据仿真周期初始CPU时间戳和当前CPU时间戳,判断是否到达仿真周期,若没有到达仿真周期,则继续获取当前CPU时间戳,直至到达仿真周期;若到达仿真周期,则给出信号量;
步骤4:主线程得到信号量后,判断是否满足预设条件,若不满足,则返回步骤2继续执行;若满足,则结束仿真。
优选的,所述步骤3包括:根据仿真周期初始CPU时间戳和当前CPU时间戳,计算时间差,并判断时间差是否大于仿真定时周期,若时间差大于仿真定时周期,则给出信号,通知其他CPU核心到达仿真周期;
时间差的计算公式为:
dTime=τ×(EndTime-StartTime)
其中,dTime为时间差,StartTime为仿真周期初始CPU时间戳,EndTime为当前CPU时间戳,τ为处理器指令执行周期。
优选的,给出信号量的方式包括:利用VxWorks操作系统提供的唤醒所有信号量函数semFlush()。
根据本发明提供的基于多核处理器平台的实时仿真定时系统,包括:
模块M1:对实时仿真主线程进行初始化,并创建定时线程;
模块M2:对定时线程进行初始化,并获取仿真周期初始CPU时间戳和当前CPU时间戳;
模块M3:根据仿真周期初始CPU时间戳和当前CPU时间戳,判断是否到达仿真周期,若没有到达仿真周期,则继续获取当前CPU时间戳,直至到达仿真周期;若到达仿真周期,则给出信号量;
模块M4:主线程得到信号量后,判断是否满足预设条件,若不满足,则回调模块M2;若满足,则结束仿真。
优选的,所述模块M3包括:根据仿真周期初始CPU时间戳和当前CPU时间戳,计算时间差,并判断时间差是否大于仿真定时周期,若时间差大于仿真定时周期,则给出信号,通知其他CPU核心到达仿真周期;
时间差的计算公式为:
dTime=τ×(EndTime-StartTime)
其中,dTime为时间差,StartTime为仿真周期初始CPU时间戳,EndTime为当前CPU时间戳,τ为处理器指令执行周期。
优选的,给出信号量的方式包括:利用VxWorks操作系统提供的唤醒所有信号量函数semFlush()。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述的方法的步骤。
与现有技术相比,本发明具有如下的有益效果:
本发明通过采用多核处理器中的一个CPU专门执行定时运算,快速查询CPU时间戳,通过VxWorks信号量机制,将定时周期信号传递至其他CPU核心,可将仿真定时周期缩短至100微秒以下,时钟抖动降低至1微秒以下。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是本发明实时仿真系统定时方法流程图;
图2是本发明基于多核处理器的实时仿真系统仿真流程图;
图3是本发明基于多核处理器的实时仿真系统硬件连接图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例:
请参阅图1和图2,根据本发明提供的一种实时仿真系统定时方法,包括如下步骤:
S1:仿真开始时,由CPU0执行主线程,进行仿真流程控制。由主线程创建定时线程,由CPU1执行定时线程,定时线程读取仿真周期开始时CPU时间戳StartTime;
S2:循环读取当前CPU时间戳EndTime,计算时间差dTime,判断dTime是否大于仿真定时周期SimTime;
S3:如果dTime大于仿真定时周期SimTime,则给出信号量,通知其他CPU核心到达仿真周期。
典型的上述dTime的计算方法为:dTime=τ×(EndTime-StartTime),其中τ为处理器指令执行周期;
优选的上述信号量的给出方法为:利用VxWorks操作系统提供的唤醒所有信号量函数semFlush(·)。
定时线程基本程序如下:
for(·,·,·)
{
EndTime=pentiumTscGet64(·);
dTime=τ*(EndTime-StartTime);
if(dTime>=SimTime)
{
semFlush(sem1);
break;
}
}
综上所述,本发明通过利用多核处理器中的一个CPU专门执行定时运算,快速查询CPU时间戳,通过VxWorks信号量机制,将定时周期信号传递至其他CPU核心,实现了高频率,低抖动的定时时钟。
如图3,为本发明基于多核处理器的实时仿真系统硬件连接图,仿真流程控制和仿真定时均与内存、总线相连,仿真定时通过内存将信号量传输给仿真流程控制,总线通过与光纤卡、AD/DA、串口卡和网卡相连,对设备进行控制。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (7)
1.一种基于多核处理器平台的实时仿真定时方法,其特征在于,包括:
步骤1:对实时仿真主线程进行初始化,并创建定时线程;
步骤2:对定时线程进行初始化,并获取仿真周期初始CPU时间戳和当前CPU时间戳;
步骤3:根据仿真周期初始CPU时间戳和当前CPU时间戳,判断是否到达仿真周期,若没有到达仿真周期,则继续获取当前CPU时间戳,直至到达仿真周期;若到达仿真周期,则给出信号量;
步骤4:主线程得到信号量后,判断是否满足预设条件,若不满足,则返回步骤2继续执行;若满足,则结束仿真。
2.根据权利要求1所述的基于多核处理器平台的实时仿真定时方法,其特征在于,所述步骤3包括:根据仿真周期初始CPU时间戳和当前CPU时间戳,计算时间差,并判断时间差是否大于仿真定时周期,若时间差大于仿真定时周期,则给出信号,通知其他CPU核心到达仿真周期;
时间差的计算公式为:
dTime=τ×(EndTime-StartTime)
其中,dTime为时间差,StartTime为仿真周期初始CPU时间戳,EndTime为当前CPU时间戳,τ为处理器指令执行周期。
3.根据权利要求1所述的基于多核处理器平台的实时仿真定时方法,其特征在于,给出信号量的方式包括:利用VxWorks操作系统提供的唤醒所有信号量函数semFlush()。
4.一种基于多核处理器平台的实时仿真定时系统,其特征在于,包括:
模块M1:对实时仿真主线程进行初始化,并创建定时线程;
模块M2:对定时线程进行初始化,并获取仿真周期初始CPU时间戳和当前CPU时间戳;
模块M3:根据仿真周期初始CPU时间戳和当前CPU时间戳,判断是否到达仿真周期,若没有到达仿真周期,则继续获取当前CPU时间戳,直至到达仿真周期;若到达仿真周期,则给出信号量;
模块M4:主线程得到信号量后,判断是否满足预设条件,若不满足,则回调模块M2;若满足,则结束仿真。
5.根据权利要求4所述的基于多核处理器平台的实时仿真定时系统,其特征在于,所述模块M3包括:根据仿真周期初始CPU时间戳和当前CPU时间戳,计算时间差,并判断时间差是否大于仿真定时周期,若时间差大于仿真定时周期,则给出信号,通知其他CPU核心到达仿真周期;
时间差的计算公式为:
dTime=τ×(EndTime-StartTime)
其中,dTime为时间差,StartTime为仿真周期初始CPU时间戳,EndTime为当前CPU时间戳,τ为处理器指令执行周期。
6.根据权利要求4所述的基于多核处理器平台的实时仿真定时系统,其特征在于,给出信号量的方式包括:利用VxWorks操作系统提供的唤醒所有信号量函数semFlush()。
7.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011352779.5A CN112463328A (zh) | 2020-11-26 | 2020-11-26 | 基于多核处理器平台的实时仿真定时方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011352779.5A CN112463328A (zh) | 2020-11-26 | 2020-11-26 | 基于多核处理器平台的实时仿真定时方法、系统及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112463328A true CN112463328A (zh) | 2021-03-09 |
Family
ID=74808717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011352779.5A Pending CN112463328A (zh) | 2020-11-26 | 2020-11-26 | 基于多核处理器平台的实时仿真定时方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463328A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060195825A1 (en) * | 2005-02-25 | 2006-08-31 | Niels Vanspauwen | Method and system for dynamically adjusting speed versus accuracy of computer platform simulation |
CN106933687A (zh) * | 2017-03-13 | 2017-07-07 | 武汉斗鱼网络科技有限公司 | 定时方法、装置及电子设备 |
CN109582466A (zh) * | 2017-09-29 | 2019-04-05 | 北京金山软件有限公司 | 一种定时任务执行方法、分布式服务器集群及电子设备 |
-
2020
- 2020-11-26 CN CN202011352779.5A patent/CN112463328A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060195825A1 (en) * | 2005-02-25 | 2006-08-31 | Niels Vanspauwen | Method and system for dynamically adjusting speed versus accuracy of computer platform simulation |
CN106933687A (zh) * | 2017-03-13 | 2017-07-07 | 武汉斗鱼网络科技有限公司 | 定时方法、装置及电子设备 |
CN109582466A (zh) * | 2017-09-29 | 2019-04-05 | 北京金山软件有限公司 | 一种定时任务执行方法、分布式服务器集群及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10019286B2 (en) | Time critical tasks scheduling | |
US7246052B2 (en) | Bus master and bus slave simulation using function manager and thread manager | |
Sehr et al. | Programmable logic controllers in the context of industry 4.0 | |
JP4840455B2 (ja) | フィールド制御システム | |
JP5651251B2 (ja) | シミュレーション実行方法、プログラム及びシステム | |
US9251308B2 (en) | Simulation method, system, and program | |
US20120101791A1 (en) | Controlling simulation systems | |
EP2615546A1 (en) | Method and system, scheduler for parallel simulating processors | |
CN101506777A (zh) | 多处理器系统以及使多处理器系统的调试处理同步的方法 | |
Kim et al. | Schedule-aware performance estimation of communication architecture for efficient design space exploration | |
CN102799212B (zh) | 用于多核多处理器并行系统的全局时钟系统及其使用方法 | |
Ma et al. | Toward polychronous analysis and validation for timed software architectures in AADL | |
JP6116319B2 (ja) | リアルタイムシステムでタイムスタンプを形成する方法、データ処理装置、コンピュータプログラム製品、および、ディジタル記憶媒体 | |
WO2011046089A1 (ja) | シミュレーション方法、システム及びプログラム | |
EP3196717B1 (en) | Emulated industrial control | |
EP2672388B1 (en) | Multi-processor parallel simulation method, system and scheduler | |
CN107391866B (zh) | 一种基于多处理器的aadl模型的可调度性分析方法 | |
CN112463328A (zh) | 基于多核处理器平台的实时仿真定时方法、系统及介质 | |
CN110442338B (zh) | 一种结构分析与设计语言aadl模型的仿真方法 | |
CN111611029B (zh) | 一种计算时序确定的iec 61499功能块建模方法 | |
CN112363816B (zh) | 嵌入式多核操作系统确定性调度方法、系统及介质 | |
Helmstetter et al. | Fast and accurate TLM simulations using temporal decoupling for FIFO-based communications | |
Pavlov et al. | KTM tokamak operation scenarios software infrastructure | |
CN104750593B (zh) | 一种基于时间推进性能的hla仿真节点负载监控方法 | |
CN213423927U (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210309 |