CN112463328A - 基于多核处理器平台的实时仿真定时方法、系统及介质 - Google Patents

基于多核处理器平台的实时仿真定时方法、系统及介质 Download PDF

Info

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
Application number
CN202011352779.5A
Other languages
English (en)
Inventor
唐成师
陈晓东
李艳红
赵吕懿
陈钊
孟宇麟
王帅豪
胡启鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Shenjian Electromechanical Engineering Co ltd
Shanghai Institute of Electromechanical Engineering
Original Assignee
Shanghai Shenjian Electromechanical Engineering Co ltd
Shanghai Institute of Electromechanical Engineering
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Shenjian Electromechanical Engineering Co ltd, Shanghai Institute of Electromechanical Engineering filed Critical Shanghai Shenjian Electromechanical Engineering Co ltd
Priority to CN202011352779.5A priority Critical patent/CN112463328A/zh
Publication of CN112463328A publication Critical patent/CN112463328A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; 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中任一项所述的方法的步骤。
CN202011352779.5A 2020-11-26 2020-11-26 基于多核处理器平台的实时仿真定时方法、系统及介质 Pending CN112463328A (zh)

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)

* Cited by examiner, † Cited by third party
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 北京金山软件有限公司 一种定时任务执行方法、分布式服务器集群及电子设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
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