CN102576325B - 模拟方法、系统及程序 - Google Patents
模拟方法、系统及程序 Download PDFInfo
- Publication number
- CN102576325B CN102576325B CN201080046464.6A CN201080046464A CN102576325B CN 102576325 B CN102576325 B CN 102576325B CN 201080046464 A CN201080046464 A CN 201080046464A CN 102576325 B CN102576325 B CN 102576325B
- Authority
- CN
- China
- Prior art keywords
- peripheral
- equipment simulator
- simulation device
- emulator
- peripheral emulator
- 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
- 238000000034 method Methods 0.000 title claims abstract description 97
- 238000004088 simulation Methods 0.000 title claims abstract description 68
- 230000002093 peripheral effect Effects 0.000 claims abstract description 163
- 230000008569 process Effects 0.000 claims abstract description 87
- 238000000926 separation method Methods 0.000 claims abstract description 11
- 230000000295 complement effect Effects 0.000 claims description 33
- 230000001360 synchronised effect Effects 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 7
- 230000009471 action Effects 0.000 description 50
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 9
- 230000002123 temporal effect Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 208000035155 Mitochondrial DNA-associated Leigh syndrome Diseases 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 239000000446 fuel Substances 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 208000003531 maternally-inherited Leigh syndrome Diseases 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 206010017472 Fumbling Diseases 0.000 description 1
- 241000545442 Radix Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000004087 circulation Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002153 concerted effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000012019 product validation Methods 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (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
本发明提供能够妥当地维持动作速度,同时实现模拟动作的再现性的V-PILS。外围调度器开始所有的外围仿真器的并行动作,基于设定的各个外围仿真器的处理分隔定时,选出最早迎合处理分隔的预定的外围仿真器(外围P),进行各处理器仿真器和各设备模拟器的执行,直至到达该分隔的时间的时刻,使数据在外围P、处理器仿真器及设备模拟器之间同步。
Description
技术领域
本发明涉及汽车等物理系统的模拟,更详细地说,涉及软件库中的模拟系统。
背景技术
汽车在其初始时代的二十世纪初期,由作为动力的发动机、包括制动器、加速器、方向盘、传动装置、悬架的机构零件组成,而除了发动机的火花塞的点火、前照灯以外,几乎没有利用电结构。
但是,从七十年代起,为了防备大气污染、石油危机等,产生有效地控制发动机的必要性,因此,发动机的控制开始使用ECU。ECU一般由对来自传感器的输入信号进行例如A/D转换的输入接口、按照规定的逻辑处理数字输入信号的逻辑运算部(微机)、以及将该处理结果转换成致动器工作信号的输出接口构成。
目前,不仅发动机及传动装置等的控制系统、防抱死系统(Anti-lockBreaking System(ABS))、电子稳定性控制(Electronic Stability Control(ESC))、动力转向装置,甚至刮水器控制及安全监控系统等,在目前的汽车中,除了机构零件,电子零件及软件占据重要比例。虽说涉及后者的开发费用占整体的25%或40%,但在混合动力型汽车中占70%。
可是,汽车由发动机等动力装置及动力传递装置、转向装置等行驶装置、制动器装置、其它车身系统等机械零件(设备(plant))构成,另外,由30~70以上的电控单元(ECU)的程序根据传感器输入(速度等)或人的输入(油门踏板等)而动态地决定这些设备的动作。
ECU基本上各自控制一个设备的动作。例如,对发动机的燃料喷射(FuelInjection)或点火(Ignition),由发动机控制单元通过软件决定该喷射量或点火定时(timing)。由于软件,在准备“运动”模式这样的高档车中,也能够根据模式增加和减少燃料喷射量。另外,也能够在换低速挡的定时,自动怠速(空转),匹配发动机的转速。这种情况下,需要发动机的ECU和传动装置的ECU协同动作。在用于防止汽车的侧滑等的综合车辆姿态稳定控制(ESC:Electronic Stability Control)系统中,还需要与制动器等制动装置的联动,ECU软件变得复杂。另外,由于这样的“介入”功能是软件,因此能够容易地截断(cut)。
而且,为了充分发挥设备的性能,且使其安全地动作,在ECU软件的设计开发过程中,重要的是充分地进行动作参数的调节(tuning)和测试。一般,在将实车作为样机后,反复进行调节和测试需要的成本和时间过多,因此,强烈期望在做成样机之前,在计算机中虚拟地实现控制器和设备,使其高速且准确地动作,来确认该动作的方法。这样的ECU模拟有:(1)使用状态机等表现形式来逻辑地表示控制器的动作的模型在环模拟(Model-in-the-Loop Simulation(MILS))、(2)对该逻辑动作导入部分数据精度等硬件的制约的软件在环模拟(Software-in-the-Loop Simulation(SILS))、(3)完整地安装软件,仿真ECU处理器的虚拟处理器在环模拟(Virtual Processor-in-the-Loop Simulation(V-PILS))、及(4)完整地安装ECU板,与实时设备模拟连接的硬件在环模拟(Hardware-in-the-Loop Simulation(HILS))这四种方式,按照该顺序,更接近样机。
MILS/SILS主要在用于发挥设备的基本性能的不断摸索阶段使用。但是,进行与实际搭载于ECU上的软件不同的动作,因此不能用于产品验证用途。另一方面,V-PILS利用完成后的ECU软件,因此作为发现并解决软件的不期望的动作(故障)的方式而被期待,但是作为实现具有再现性的动作的方式,还没有实现的例子。为了最终确认完成的ECU板的动作确认而必须实施HILS,但是即使发现障碍也不能保障再现性,因此不能用于调试目的。
在HILS中不能再现动作的理由不在于HILS的结构不完整,而在于各ECU通过CAN等网络相互连接。通常,网络实现模块间的松耦合,因此由于模块动作的微妙的定时不同,数据的到达顺序更换,其结果是,有时系统整体的举动不同。因此,例如即使将实车作为样机,也不能期待动作的再现性。与并行分布系统的调试非常困难的理由相同。
这样,维持HILS的结构现状,即,在ECU板和设备模拟器的松耦合这样的结构中,即使将各个部件高速化也不能实现动作的连续性。为了实现动作的再现性,需要实现通信(communication)顺序的连续性。特别期待V-PILS解决这个问题。
图1表示基于以往的概念的典型的V-PILS的结构。该结构由多个ECU仿真器、多个设备模拟器、调度整体的动作的全局调度器110组成。图1中,为了方便,图示了两个ECU仿真器102及104、和两个设备模拟器106及108,但是,应该理解实际上由比图示多的ECU仿真器和设备模拟器组成的结构。
ECU仿真器102由处理器仿真器102a、外围仿真器102b组成。ECU仿真器104也是同样的,因此省略关于ECU仿真器104的详细说明。
另一方面,设备模拟器106上连接时钟转换器106a。设备模拟器108也是同样的,因此省略关于设备模拟器108的详细说明。设备模拟器106例如是制动器模拟器,设备模拟器108是发动机模拟器。
而且,图示的频率是例示性的典型的动作时钟数。即,处理器仿真器102a以80MHz这样的相对高速的时钟动作。另一方面,设备模拟器106是物理机构的模拟器,因此以10KHz这样的相对低速动作。
然后,参照图2的定时图,说明图1的结构的动作。在以固定步长的时钟模拟的设备模拟器中,例如10KHz,即,通过100μs的时间步长重复输入输出。输入主要是来自控制器的指示信号,输出被发送到传感器。
外围仿真器在ECU仿真器的I/O的接口部时,将设备模拟器和处理器仿真器相互连接。典型地来说(平均来说),若以10MHz左右的分辨率动作,则能够捕捉到。这与设备模拟器相比是高速,但与处理器仿真器相比是低速。外围仿真器对设备模拟器发送脉冲状信号。
时钟转换器插入配置在外围仿真器和设备模拟器之间,具有以下功能:降低来自外围仿真器的时钟信号的频率以适合设备模拟器,且递增来自设备模拟器的信号的周基数以适合外围仿真器。
外围仿真器对于处理器仿真器,接收读写(R/W)的请求,发送接收数据,以及发送中断(INT)。特别是,将处理器间相互连接的CAN(controllerarea network)等网络的功能需要外围间的通信。
机内用处理器多以80-100MHz左右动作,因此,与外围的时间分辨率相比,速度高10倍左右。处理器对于外围进行读写(R/W)操作。另外,从外围接收中断信号(INT)。
从一个侧面来看,外围是将设备和处理器、及处理器间相互连接的系统的中心。处理器以比外围大的时间分辨率进行R/W操作,但是用于进行操作的信号传递至设备及其它处理器时,由外围的时间分辨率支配。因此,在模拟系统整体中,若以外围的时间分辨率进行传感器数据等的同步处理,则I/O数据及中断的处理顺序正确再现(细粒度同步=minimum synchronization(最小同步))。
通常,若缩短同步的时间间隔,则能够实现更正确的动作,但是相反地增大了处理时间的开销,因此整体处理所需要的时间增加。细粒度同步是指赋予不需要进行细微该细粒度以上的时间分辨率的上限。
一个解决方法是,随着全局调度器110,如图3所示,将同步的时间间隔降到最大公约数。由此,能够实现准确性,但由于不必要的定时中的同步处理增加,所以同步处理的开销变得非常大。由此,模拟系统的处理速度显著降低。
若不能明确地利用外围的处理分隔,则最大公约数也难以知道,所以开销因应对提高时间分辨率而进一步变大。
另一方面,若减小时间分辨率,则很多I/O数据及中断被挤在同一时间步长中,丢失时间上的前后关系的信息。这是不能正确地执行模拟,也就是说,没有实现准确性的情况。特别是,中断处理的执行顺序,对使软件按照意图动作也是非常重要的。少数现有的V-PILS系统,存在因处于该不准确的模拟情况,该顺序信息丧失,因此ECU软件的调试也不能充分地进行这样重大的问题。
日本特开2007-11720号公报公开了如下装置:将应对复杂结构的系统,同时使系统模拟器的结构能够灵活地改变作为应该解决的课题,通过模拟CPU的动作的指令系统模拟器、模拟总线的动作的总线模拟器、模拟外围的动作的外围模拟器这三种构成系统模拟器,在各模拟器间分别设置能够参照和改变相互的状态的各接口。但是,该现有技术没有提及优化外围和CPU间的同步的技术方法。
现有技术文献
专利文献
专利文献1:日本特开2007-11720号公报
发明内容
发明要解决的课题
本发明的目的在于,提供能够妥当地维持动作速度,同时实现模拟动作的再现性的V-PILS。
用于解决课题的方案
本发明为了解决上述课题而完成,根据本发明,准备控制外围仿真器、处理器仿真器、及设备模拟器整体的动作定时的外围调度器。
根据本发明,为了能够通过外围调度器进行控制,准备单独对应于各个外围仿真器、处理器仿真器、及设备模拟器的完成标志。
各个外围仿真器分别具有固有的处理分隔。典型地,外围仿真器以SystemC记述,因此能够通过利用程序扫描其源代码,确认固有的处理分隔。典型地,被记述为wait()的行成为分隔。
这样确认的各个外围仿真器的处理分隔的信息与外围调度器关联。
在这样的准备下,外围调度器通过解除(OFF)所有的外围仿真器的完成标志,开始并行动作。这样,外围调度器基于各个外围仿真器的处理分隔的信息,选出最早迎合处理分隔的预定的外围仿真器。将其称为外围P。将该处理分隔的时间设为T,外围调度器进行各处理器仿真器和各设备模拟器的执行,直至到达时间T的时刻。
这样,外围调度器等待外围P的完成标志被设定。若外围P自身到达处理分隔,则设定完成标志。响应外围P的完成标志被设定的事实,外围调度器使数据在外围P、处理器仿真器及设备模拟器之间同步。
然后,外围调度器解除(OFF)外围P的完成标志,再次开始该动作。由此,所有的外围仿真器再次并行动作。
其后,外围调度器基于设定的各个外围仿真器的分隔的信息,选出下一个最早迎合处理分隔的预定的外围仿真器。外围调度器通过这样的以外围仿真器的处理分隔的定时为基准的动作调度,使整个模拟系统动作。
发明效果
如上所述,根据本发明,在各个模块经由外围进行通信的模拟系统中,通过以外围仿真器的处理分隔的定时为基准的动作调度,获得处理的再现性受到保证的效果。另外,以外围仿真器的处理分隔的信息这样的比细粒度同步粗略且处理的再现性受到保证的最佳粒度进行处理的同步,因此实现了模拟的优化。
附图说明
图1是表示现有V-PILS系统的结构的方框图。
图2是表示现有V-PILS系统的动作的时间图。
图3是以最大粒度同步的现有V-PILS系统的动作的时间图。
图4是计算机的硬件结构的方框图。
图5是表示外围调度器、外围仿真器、处理器仿真器及设备模拟器的逻辑性的连接关系的方框图。
图6是表示本发明的模拟系统的结构的动作的时间图。
图7是表示完成标志对外围仿真器的功能的图。
图8是表示外围调度器的动作的流程图的图。
图9是表示外围仿真器的动作的流程图的图。
图10是表示完成标志对处理器仿真器的功能的图。
图11是表示完成标志对设备模拟器的功能的图。
图12是表示设备模拟器的动作的流程图的图。
标号说明
404…处理器
502…外围调度器
504…外围仿真器
506…处理器仿真器
508…设备模拟器
702、1004、1102…完成标志
具体实施方式
下面,参照附图说明本发明一实施例的结构及处理。在下面的记述中,只要没有特别事先说明,在全部附图中,同一要素以同一标号作为参照。另外,应该理解为在此说明的结构和处理只是作为一实施例进行说明,没有将本发明的技术范围限定在该实施例进行解释的意图。
首先,参照图4,说明为了实施本发明而使用的计算机的硬件。在图4中,主机总线402上连接着多个CPU1 404a、CPU2 404b、CPU3 404c、…CPUn404n。主机总线402还连接着用于CPU1 404a、CPU2 404b、CPU3 404c、…CPUn404n的运算处理的主存储器406。
另一方面,I/O总线408上连接着键盘410、鼠标412、显示器414及硬盘驱动器416。I/O总线408经由I/O电桥418连接到主机总线402。键盘410及鼠标412用于操作员进行输入命令,或点击菜单等操作。显示器414用于根据需要显示用于通过GUI操作处理的菜单。
作为用于该目的的合适的计算机系统的硬件有IBM(R)System X。其时,CPU1 404a、CPU2 404b、CPU3 404c、…CPUn 404n是例如因特尔(R)Xeon(R),操作系统是Windows(商标)Server 2003。操作系统优选具有多任务的功能的操作系统。操作系统收纳于硬盘驱动器416中,在计算机系统起动时,从硬盘驱动器416读入主存储器406。
为了实施本发明,优选使用多处理器系统。在此,多处理器系统意图在使用具有多个一般能够独立地进行运算处理的处理器功能的核(core)的处理器的系统,因此,应该理解可以是多核单处理器系统、单核多处理器系统及多核多处理器系统的任一种。
另外,可用于实施本发明的计算机系统的硬件不限于IBM(R)System X,只要能够使本发明的模拟程序运行,则可以使用任意计算机系统。操作系统也不限于Windows(R),可以使用Linux(R)、Mac OS(R)等任意操作系统。进而,为了使模拟程序高速动作,在POWER(商标)6基础下,操作系统也可以使用AIX(商标)的IBM(R)System P等计算机系统。
硬盘驱动器416还容纳下述的处理器仿真器、外围调度器、外围仿真器、时钟转换器及设备模拟器等程序,各自在计算机系统起动时装载到主存储器中,作为单独的线程或进程,被分配到各个CPU1~CPUn后执行。因此,图4所示的计算机系统优选具有对处理器仿真器、外围调度器、外围仿真器、时钟转换器及设备模拟器的各个线程分配的充足数量的CPU。
图5是表示那样被分配到各个CPU1~CPUn,作为单独的线程或进程动作的处理器仿真器、外围调度器、外围仿真器、时钟转换器及设备模拟器间的协同关系的功能方框图。
如图5所示,本发明的特征在于,其自身作为一个线程或进程的外围调度器502紧密控制与其独立的线程或进程即外围仿真器504a、504b、504c、…504z。也能够通过与外围仿真器位于各个ECU仿真器内,且相互独立地动作的图1的典型的现有结构进行对比来进一步理解该特征。
在图5中,分别作为独立的线程或进程的处理器仿真器506a、506b、506c、…506m,基本上一边从关联的外围仿真器504a、504b、504c、…504z接收中断并进行通信,一边进行动作,但是也直接受到外围调度器502的控制。后面叙述其控制机制。
另一方面,作为分别独立的线程或进程的设备模拟器508a、508b、…508n与外围仿真器504a、504b、504c、…504z进行通信。另外,虽然未图示,但是设备模拟器508a、508b、…508n内置有图1所示的发挥时钟转换器的功能的模块。通常,与设备模拟器的动作时钟相比,外围仿真器的动作时钟精细1000倍左右,因此需要通过设置那样的时钟转换器的功能,稀疏从外围仿真器到达至设备模拟器的脉冲,另一方面,通过增加从设备模拟器向外围仿真器送出的脉冲,使接口匹配。
图6是表示外围调度器的控制下的外围仿真器、处理器仿真器及设备模拟器的动作的概要的定时图。
各个外围仿真器具有与固有处理的分隔位置对应的时间信息,该值能够通过例如利用计算机程序解析用于记述外围仿真器的SystemC的源代码来获取。外围仿真器的分隔位置对应于例如以SystemC记述的情况下的被记述为wait()的行。
这样获取的对应于各外围仿真器的处理分隔位置的时间的信息,预先与外围调度器502相关联,外围调度器502使用这些处理分隔位置的时间的值,确定在任意时刻最近的外围仿真器的处理分隔的定时,转到该定时,使所有的处理器仿真器和所有的设备模拟器执行,使同步的步调一致。
这时,若各外围仿真器的处理分隔位置是周期性的,若在每个外围仿真器中预先存储那样的周期的值,则通过使它们成整数倍,外围调度器502能够计算下一处理分隔的定时。但是,除了非常有限的情况以外,外围仿真器的处理分隔位置一般不是周期性的。
因此,外围调度器502选择应该与定时匹配的外围仿真器的处理如下。即,例如,通过利用规定的程序事先扫描外围仿真器的SystemC的源代码,由此,对每个外围仿真器,在共有存储器等中事先保存有包括该处理分隔间的时间的表,外围调度器502可参照该表。由此,外围调度器502基于表的项目,能够加法性地计算下次的处理分隔,能够选择距当前模拟时间最近的处理分隔作为下一目标时间。
在图6所示的例子中,与外围2关联的定时T1若为模拟系统开始后最初的外围仿真器的处理分隔的定时,则是外围调度器502识别的定时,转到定时T1,外围调度器502使所有的处理器仿真器和所有的设备模拟器执行。
然后,若与外围n相关联的定时T2为模拟系统开始后下一外围仿真器的处理分隔的定时,则外围调度器502进行识别,转到定时T2,外围调度器502使所有的处理器仿真器和所有的设备模拟器执行。
外围调度器502进行的这样的顺序的外围仿真器的处理分隔的定时的确定,通过基于外围调度器502事先存储的所有的外围仿真器的处理分隔位置的时间的信息,从模拟系统的开始时刻起依次找出哪个外围仿真器的最近定时来进行。
图7是示意性表示外围调度器502进行的同步控制的机制的图。即,根据本发明的本实施例,在主存储器406的规定的区域设有与各外围仿真器502a、502b、502c…对应的完成标志702a、702b、702c…,使用这样的完成标志702a、702b、702c…,外围调度器502执行对各外围仿真器502a、502b、502c的同步控制。
然后,参照图8的流程图,说明外围调度器502的处理。在图8中,在步骤802中,外围调度器502初始化后,开始所有的外围仿真器的处理。该初始化中,也包括使所有与各外围仿真器502a、502b、502c…对应的完成标志702a、702b、702c…复位到OFF的处理。
在步骤804中,如上所述,外围调度器502通过参照每个外围仿真器的包括处理分隔间的时间的表,选出预计在最近时刻处理分隔到来的外围仿真器。
在步骤806中,外围调度器502使所有的处理器仿真器和所有的设备模拟器在转到步骤804中选出的以最近定时所示的时刻,同时并行地执行。然后,等待该完成。
在步骤808中,外围调度器502等待与在步骤804中选出的定时关联的外围仿真器的处理分隔到来。
若将在步骤804中选出的定时作为处理分隔持有的外围仿真器的处理分隔到来,则其外围仿真器将完成标志设为“ON”,暂时停止处理。对于该处理,参照图9的流程图,进行更详细的说明。通过线程间通信,它被传递到外围调度器502,外围调度器502在步骤810中,在外围仿真器和处理器仿真器之间、及外围仿真器、I/O数据和设备模拟器之间使I/O数据的同步和中断同步。若该步骤完成,则外围调度器502将与在步骤804中选出的定时关联的外围仿真器的完成标志设为“OFF”,返回步骤804。
在步骤804中,外围调度器502选出预计在下一最近时刻处理分隔来到的外围仿真器。在此所说的预计在下一最近时刻处理完成的外围仿真器,在图6的例子中是外围n,与它相关联,选择定时T2。
接着,参照图9的流程图,说明外围仿真器的动作。在该动作中,最初假设该完成标志为“ON”。因此,在步骤902中,外围仿真器等待完成标志被清除(OFF)。
若完成标志被外围调度器502清除,则处理进至步骤904,因此,外围仿真器进行固有的处理。若该处理完成,则外围仿真器在步骤906中设定(ON)完成标志,返回步骤902,等待完成标志被清除(OFF)。
接着,说明外围调度器502进行的处理器仿真器的控制。再本实施例中的模拟系统中,在主机处理器,即,图4所示的CPU1、CPU2、…CPUn中,客户(guest)用处理器,即,用于汽车的机内系统等实机所开发的程序被执行。其时,即使在存在源代码的情况下,在只存在客户用二进制的情况下,代码转换成主机处理器上的二进制代码后被执行。
但是,根据本发明,在进行其代码转换时,为了与外围调度器502取得同步,在重要地方插入特殊代码。
首先,在代码的基本块的峰值或回路的最后插入用于更新并增加表示处理器时刻的数据(T_CPU)的代码。即,如下存在的常数Const是与T_CPU相加得到的,但是该常数基于客户代码的时间解析,被事先决定。
T_CPU+=Const
另外,以例如80循环中一个左右的比例,比较应该停止的模拟时刻(T_Peripheral)和自身的进行时刻,将用于判断是否应该等待的下面这样的代码插入到在主机处理器上执行的代码中。
这里,POST Completion_flag是设定(ON)完成标志(Completion_flag)的处理。完成标志的区域优选确保在共有存储器上。同时在(T_CPU>T_Peripheral)的环路中,共有存储器上所确保的T_Peripheral的值被外围调度器502等盖写,进行SLEEP_TEMPORARY这样的等待动作,直至T_CPU>T_Peripheral的判断变成“伪(false)”。
图10是从功能块上说明上述处理的图。即,外围调度器502基于处理分隔最早到来的外围仿真器的定时,设定T_Peripheral1002的时间,各处理器仿真器506a、506b、506c…分别具有与上述T_CPU同等的固有的时间T_CPU1、T_CPU2、T_CPU3…。
在初始化阶段中,外围调度器502清除(OFF)各处理器仿真器506a、506b、506c…的完成标志1004a、1004b、1004c…,各处理器仿真器在变成T_CPU>T_Peripheral的时刻,通过上述代码进入等待状态。
为了再次开始各处理器仿真器的动作,外围调度器502提供成为T_CPU<T_Peripheral的新T_Peripheral1002,且清除(OFF)各处理器仿真器506a、506b、506c…的完成标志1004a、1004b、1004c…。
接着,参照图11,从功能块上说明外围调度器502和设备模拟器508a、508b、…508n之间的同步处理。设备模拟器本来将时间分成短步长,近似地计算微分方程式等的内部状态并进行更新。因此,进行处理直至所给定的时刻,可以说合适性高。
在图11中,外围调度器502基于处理分隔最早到来的外围仿真器的定时,设定T_Peripheral1002的时间,各设备模拟器508a、508b、508c…分别具有固有的结束时间1104a、1104b、1104c…。在初始化阶段中,外围调度器502清除(OFF)各设备模拟器508a、508b、508c…的完成标志1102a、1102b、1102c…。另外,完成标志1102a、1102b、1102c…优选被确保在共有存储器上。
然后,参照图12的流程图,进一步详细说明外围调度器502进行的设备模拟器的同步处理。在图12中,在步骤1202中,设备模拟器等待至外围调度器设定新时间T。该时间是图11所示的T_Peripheral1002。
在步骤1204中,设备模拟器进行是否为my_time>T的判断。这里,my_time是图11所示的与设备模拟器对应的完成时间1104a、1104b等。
若不是my_time>T,则设备模拟器进入步骤1206,进行规定的处理步骤。而且,在步骤1208中进行my_time,返回步骤1204。
在步骤1204中,若判断设备模拟器my_time≤T,则设备模拟器设定(ON)对应的完成标志,返回步骤1202。
但是,设备模拟器及处理器仿真器的完成标志作为一实施例,能够通过计数信号量(counter semphore)这样的机制实施。
为此,在外围调度器侧中写入下述代码。
其中,n_plants是模拟系统执行的设备模拟器的数量。
外围调度器中的
for(int k=0;k<n_plants;k++)
sem_post(&sem_start[k]);
的代码是对n_plants个中的各个任务或线程指示处理开始代码,接收该代码,在设备模拟器侧中,通过
sem_wait(&sem_start[k]);
接受开始的指示。
另一方面,处理器仿真器及设备模拟器侧的sem_post(&sem_finish)因外围调度器中的
for(int k=0;k<n;k++)
sem_wait(&sem_finish);
而被等待,即,外围调度器等待被通知所有的处理器仿真器及设备模拟器的处理结束。另外,在处理器仿真器的代码中所插入的代码中,记述为POSTCompletion_flag的部分相当于处理器仿真器中的sem_post(&sem_finish)。在图10及图11中,分开表示完成标志,但是,若像上述那样利用计数型信号量,也可以是一个。
上面,与汽车用的多个模拟系统相关联,说明了本发明的特定实施例,但是,本发明不限于这样的特定实施例,本领域的记述人员应该能够理解能够适用于飞机用模拟系统等一般的电子机械控制体系系统的模拟系统。
另外,本发明不限于特定计算机的体系结构或平台,也可以安装在能够实现多任务的任意平台中。
Claims (10)
1.一种通过计算机的处理来进行模拟的模拟方法,具有:
在所述计算机上执行多个处理器仿真器的步骤;
在所述计算机上执行多个设备模拟器的步骤;
在所述计算机上执行多个外围仿真器的步骤,多个外围仿真器分别具有固有的处理分隔定时,在所述处理器仿真器和所述设备模拟器间进行数据通信;
选出所述外围仿真器中处理分隔的定时最早到来的外围仿真器和该处理分隔的定时的步骤;以及
在所述选出的定时,使所述多个处理器仿真器和所述多个设备模拟器同步的步骤。
2.如权利要求1所述的模拟方法,
所述计算机为多处理器系统,将所述多个处理器仿真器、所述外围仿真器和所述多个设备模拟器作为所述多处理器系统的单独的线程或进程来执行。
3.如权利要求2所述的模拟方法,
所述计算机为多处理器系统,将所述多个处理器仿真器、所述外围仿真器、所述多个设备模拟器分配到所述多处理器系统的不同的处理器或核,作为单独的线程或进程来执行。
4.如权利要求2所述的模拟方法,
使所述多个处理器仿真器和所述多个设备模拟器同步的装置,通过设定由所述计算机的存储器确保的、与各个所述多个处理器仿真器和所述多个设备模拟器对应设置的完成标志,实现同步。
5.如权利要求4所述的模拟方法,
所述完成标志通过计数信号量实现。
6.一种用于通过计算机的处理进行模拟的模拟装置,具有:
用于执行多个处理器仿真器的模块;
用于执行多个设备模拟器的模块;
用于执行多个外围仿真器的模块,所述多个外围仿真器分别具有固有的处理分隔定时,在所述处理器仿真器和所述设备模拟器间进行数据通信;
用于选出所述外围仿真器中处理分隔的定时最早到来的外围仿真器和该处理分隔的定时的模块;
用于在所述选出的定时,使所述多个处理器仿真器和所述多个设备模拟器同步的模块。
7.如权利要求6所述的装置,
所述计算机为多处理器系统,将所述多个处理器仿真器、所述外围仿真器和所述多个设备模拟器作为所述多处理器系统的独立的线程或进程来执行。
8.如权利要求7所述的装置,
所述计算机为多处理器系统,将所述多个处理器仿真器、所述外围仿真器和所述多个设备模拟器被分配到所述多处理器系统的不同的处理器或核,作为独立的线程或进程来执行。
9.如权利要求7所述的装置,还包括
用于使所述多个处理器仿真器和所述多个设备模拟器同步的模块,通过设定由所述计算机的存储器确保的、与各个所述多个处理器仿真器和所述多个设备模拟器对应设置的完成标志,实现同步。
10.如权利要求9所述的装置,
所述完成标志通过计数信号量实现。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009238954 | 2009-10-16 | ||
JP2009-238954 | 2009-10-16 | ||
PCT/JP2010/067772 WO2011046089A1 (ja) | 2009-10-16 | 2010-10-08 | シミュレーション方法、システム及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102576325A CN102576325A (zh) | 2012-07-11 |
CN102576325B true CN102576325B (zh) | 2015-04-15 |
Family
ID=43876139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080046464.6A Active CN102576325B (zh) | 2009-10-16 | 2010-10-08 | 模拟方法、系统及程序 |
Country Status (5)
Country | Link |
---|---|
JP (1) | JP5379862B2 (zh) |
CN (1) | CN102576325B (zh) |
DE (1) | DE112010004037T5 (zh) |
GB (1) | GB2486136B (zh) |
WO (1) | WO2011046089A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012023397A1 (ja) | 2010-08-20 | 2012-02-23 | インターナショナル・ビジネス・マシーンズ・コーポレーション | シミュレーション方法、システム及びプログラム |
US9251308B2 (en) | 2012-07-23 | 2016-02-02 | International Business Machines Corporation | Simulation method, system, and program |
EP2851815A1 (de) * | 2013-09-18 | 2015-03-25 | dSPACE digital signal processing and control engineering GmbH | Testeinrichtung zum Echtzeittest eines virtuellen Steuergeräts |
JP6223637B2 (ja) | 2015-05-29 | 2017-11-01 | 三菱電機株式会社 | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム |
US11010505B2 (en) | 2015-12-01 | 2021-05-18 | International Business Machines Corporation | Simulation of virtual processors |
DE102015226249A1 (de) * | 2015-12-21 | 2017-06-22 | Siemens Aktiengesellschaft | Vorrichtung und Verfahren zum Bereitstellen einer Mehrzahl von reproduzierbaren Werten |
JP6770935B2 (ja) * | 2017-07-03 | 2020-10-21 | 日立オートモティブシステムズ株式会社 | 車両制御装置用の検証装置 |
US11010510B2 (en) | 2019-04-30 | 2021-05-18 | Disney Enterprises, Inc. | Soft-real-time hub providing data transport for processor-in-the-loop (PIL) simulations |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5522029A (en) * | 1993-04-23 | 1996-05-28 | International Business Machines Corporation | Fault tolerant rendezvous and semaphore for multiple parallel processors |
CN101183315A (zh) * | 2007-12-10 | 2008-05-21 | 华中科技大学 | 一种并行多处理器虚拟机系统 |
CN101256502A (zh) * | 2007-02-27 | 2008-09-03 | 国际商业机器公司 | 模拟多处理器系统的系统和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10312315A (ja) * | 1997-05-12 | 1998-11-24 | Nec Corp | ソフトウェア/ハードウェア協調シミュレーション方式 |
JP3827615B2 (ja) * | 2002-06-07 | 2006-09-27 | 富士通テン株式会社 | マイコンのロジック開発装置及び開発方法 |
JP2007011720A (ja) * | 2005-06-30 | 2007-01-18 | Sharp Corp | システムシミュレータ、システムシミュレート方法、制御プログラムおよび可読記録媒体 |
-
2010
- 2010-10-08 CN CN201080046464.6A patent/CN102576325B/zh active Active
- 2010-10-08 WO PCT/JP2010/067772 patent/WO2011046089A1/ja active Application Filing
- 2010-10-08 JP JP2011536125A patent/JP5379862B2/ja not_active Expired - Fee Related
- 2010-10-08 DE DE112010004037T patent/DE112010004037T5/de not_active Ceased
- 2010-10-08 GB GB1205094.4A patent/GB2486136B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5522029A (en) * | 1993-04-23 | 1996-05-28 | International Business Machines Corporation | Fault tolerant rendezvous and semaphore for multiple parallel processors |
CN101256502A (zh) * | 2007-02-27 | 2008-09-03 | 国际商业机器公司 | 模拟多处理器系统的系统和方法 |
CN101183315A (zh) * | 2007-12-10 | 2008-05-21 | 华中科技大学 | 一种并行多处理器虚拟机系统 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2011046089A1 (ja) | 2013-03-07 |
GB2486136A (en) | 2012-06-06 |
GB201205094D0 (en) | 2012-05-09 |
CN102576325A (zh) | 2012-07-11 |
JP5379862B2 (ja) | 2013-12-25 |
DE112010004037T5 (de) | 2013-01-03 |
GB2486136B (en) | 2012-12-26 |
WO2011046089A1 (ja) | 2011-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102576325B (zh) | 模拟方法、系统及程序 | |
CN103098032B (zh) | 仿真方法和系统 | |
US9251308B2 (en) | Simulation method, system, and program | |
US8768681B2 (en) | Control unit simulation method, system, and program | |
US20120101791A1 (en) | Controlling simulation systems | |
US20090306952A1 (en) | Simulation method, system and program | |
US20170185708A1 (en) | Controlling real time during embedded system development | |
US8670967B2 (en) | Simulation method, system and article of manufacture | |
WO2005045710A2 (en) | Simulation system and computer-implemented method for simulation and verifying a control system | |
Schütz | The testability of distributed real-time systems | |
US11989535B2 (en) | Simulation method and recording medium | |
JP2010086207A (ja) | シミュレーション方法、システム及びプログラム | |
CN110750869B (zh) | 一种姿轨控系统多部件动力学仿真模块的设计方法 | |
JP5500820B2 (ja) | シミュレーション方法、システム及びプログラム | |
CN113987757A (zh) | 复杂航空电子系统仿真故障测试重构方法 | |
Schulz et al. | A Prototyping Environment for Model-Based Codesign | |
Kučera et al. | Implementation of timed automata in a real-time operating system | |
CN114021311A (zh) | 一种基于rtx的异构并行半实物仿真装置和方法 | |
Genius | Scalability of TTool's AMS extensions: a case study | |
KR20240093640A (ko) | 데이터 처리를 위한 데이터 처리 네트워크 | |
CN118094904A (zh) | 联合仿真方法、装置、电子设备和存储介质 | |
McDowell | The APL technical approach to real-time, interactive, multiple-computer simulation systems | |
Jin et al. | A Scalable Hardware-in-the-Loop System for Virtual Engine and Virtual Vehicle Applications | |
Bisant et al. | Ada as a simulation language | |
Frank et al. | Hardware/Software Codesign from the RASSP perspective |
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 |