CN104679576B - 仿真装置、仿真方法 - Google Patents

仿真装置、仿真方法 Download PDF

Info

Publication number
CN104679576B
CN104679576B CN201410637489.3A CN201410637489A CN104679576B CN 104679576 B CN104679576 B CN 104679576B CN 201410637489 A CN201410637489 A CN 201410637489A CN 104679576 B CN104679576 B CN 104679576B
Authority
CN
China
Prior art keywords
logical process
message
logical
look ahead
time
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.)
Expired - Fee Related
Application number
CN201410637489.3A
Other languages
English (en)
Other versions
CN104679576A (zh
Inventor
石川达也
A·穆纳沃
清水周
清水周一
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104679576A publication Critical patent/CN104679576A/zh
Application granted granted Critical
Publication of CN104679576B publication Critical patent/CN104679576B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Abstract

一种执行多个逻辑过程的并行执行的仿真装置,包括条件生成单元和求解器单元,该多个逻辑过程通过对在待仿真的系统中包括的多个部件建模而被获得。条件生成单元被配置成基于在多个逻辑过程之间的通信延迟生成约束条件,该约束条件将由被给予多个逻辑过程的初始时间偏移和各自将由从充当通信源的逻辑过程发送到充当通信目的地的逻辑过程以允许先行的消息所允许的先行时间满足。求解器单元被配置成求解优化问题,该优化问题满足约束条件并且最小化在多个逻辑过程之间的消息的通信中的开销,并且被配置成获得多个逻辑过程的初始时间偏移和在多个逻辑过程之间的先行时间。目的是在其中并行执行多个逻辑过程的仿真中高效地执行并行处理,同时最小化在逻辑过程之间的消息的发送。

Description

仿真装置、仿真方法
技术领域
本发明涉及仿真装置、仿真方法和程序。
背景技术
对诸如车辆、机器人和飞机之类的大规模电子控制系统的仿真已经通过使用诸如MATLAB(注册商标)或者Simulink(注册商标)之类的仿真建模系统生成仿真程序而被执行,从而不需要使用昂贵的硬件以用于模拟。在这种情况中,待仿真的电子控制系统被建模为多功能块,这些块被并行执行以改善执行的速度(参见例如,专利文献1以及非专利文献1和2)。
[专利文献1]国际公开号2013/084654
[非专利文献1]Alois Ferscha,Satish K.Tripathi,“Parallel andDistributed Simulation of Discrete Event Systems”,the University ofMarylandComputer Science Department;CS-TR-3336,1998年10月15日
[非专利文献2]Vikas Jha,Rajive Bagrodia,“Simultaneous events andlookahead in simulation protocols”,Journal ACM Transactions on Modeling andComputer Simulation,第3期第10卷,2000年7月
发明内容
[技术问题]然而,在此类功能块的并行执行中,除了在有限的条件下之外,很难生成用于高效地执行并行处理同时最小化在功能块之间的消息的发送的仿真程序。特别地,当在多个功能块的一些功能块之间存在一个方向上的通信而不存在相反方向上的通信时,尚 不可能生成用于并行处理的高效执行的仿真程序。
[解决方案]本发明的第一方面提供了一种仿真装置、仿真方法和程序。该仿真装置执行通过对在待仿真的系统中包括的多个部件建模而获得的多个逻辑过程的并行执行。该仿真装置包括:条件生成单元,该条件生成单元被配置成基于在多个逻辑过程之间的通信延迟生成约束条件,该约束条件将由被给予多个逻辑过程的初始时间偏移和各自由从充当通信源的逻辑过程发送到充当通信目的地的逻辑过程以允许先行(lookahead)的消息所允许的先行时间满足;以及求解器单元,该求解器单元被配置成求解优化问题,该优化问题满足约束条件并且最小化在多个逻辑过程之间的消息的通信中的开销,并且被配置成获得多个逻辑过程的初始时间偏移和在多个逻辑过程之间的先行时间。
以上描述的发明内容并不覆盖本发明的所有特征。这些特征的分组的子组合也可以构成发明。
附图说明
图1图示了根据实施例的逻辑过程以及逻辑过程的示例性操作。
图2图示了根据实施例的逻辑过程以及具有初始偏移时段的逻辑过程的第一示例性操作。
图3图示了根据实施例的逻辑过程以及具有初始偏移时段的逻辑过程的第二示例性操作。
图4图示了根据实施例的仿真装置100的示例性配置。
图5图示了根据实施例的仿真装置100的操作流程。
图6图示了根据实施例的具有三个逻辑过程的第一示例性配置。
图7图示了根据实施例的具有四个逻辑过程的示例性配置。
图8图示了根据实施例的具有三个逻辑过程的第二示例性配置。
图9图示了根据实施例的充当仿真装置100的计算机1900的硬 件配置。
具体实施方式
现在将通过使用本发明的实施例来描述本发明。以下实施例并不限制根据权利要求的本发明。并非在实施例中描述的所有特征组合都是解决本发明的手段所必须的。
图1图示了根据实施例的逻辑过程以及逻辑过程的示例性操作。图1图示了其中通过由A和B表示的两个逻辑过程执行仿真的配置。逻辑过程是通过对在待仿真的系统中包括的多个部件建模而获得的功能块。仿真建模工具布置此类功能块并且指定处理的流程。
每个逻辑过程具有以下功能:诸如相加和相乘的基本操作、逻辑操作、诸如整合(integration)、条件分支和软件代码的调用之类的公式处理。例如,逻辑过程表示仿真的执行单元。例如,逻辑过程A和B各自是对汽车的引擎、传动装置或者电子控制单元的操作仿真的逻辑过程。逻辑过程A和B以协作方式进行操作,同时向彼此发送消息。
由逻辑过程发送的消息包括例如允许在接收侧上的逻辑过程的先行的消息。时间信息可以被添加到该消息中。在这种情况中,时间信息可以是关于在接收侧上的逻辑过程的先行将结束的时间的信息,或者可以是关于允许在接收侧上的逻辑过程的先行的时间段的信息。
被添加到消息的时间信息是事先确定的,例如根据在发送侧和接收侧上的逻辑过程之间的传送延迟。该传送延迟可以根据在由逻辑过程控制的功能之间传播状态、命令/控制等所需要的时间而被确定。
当逻辑过程使用定时器功能执行处理时,允许在接收侧上的逻辑过程的先行的时间段可以根据由在发送侧上的逻辑过程设置的定时器所针对的时间和/或在接收侧上的逻辑过程发出警报的时间而被事先确定。以上描述的时段可以根据由在接收侧上的逻辑过程允许 的延迟时间的范围而被事先确定。
在根据本实施例的逻辑过程中,在仿真执行开始时间已经预先开始了处理的逻辑过程在预定初始偏移时段流逝之后向对应的逻辑过程发送允许先行的消息。在执行开始时间未处于先行的另一逻辑过程在执行开始时间向对应的逻辑过程发送允许先行的消息。
响应于接收到允许先行的消息,逻辑过程预先执行对应的操作。在对应于被添加到消息的时间信息的时段流逝之后,每个逻辑过程向对应的逻辑过程发送允许先行的消息。
如果接收到允许先行的下一消息,则每个逻辑过程执行对应的下一操作,而如果未接收到下一消息,则每个逻辑过程被置于待机状态中,直到接收到下一消息。通过在多个逻辑过程之间发送消息的同时维持同步来执行仿真的方法是已知的,例如,通过以上描述的非专利文献1。被发送的消息被称为空消息。
图1示意性地将在逻辑过程A和B之间的通信中的发送和接收中的时间差图示为时间滞后(时间偏移)。在图1中,L'AB指示在从A向B发送消息中的时间滞后(例如,先行时间,其是给予逻辑过程B的用于允许执行的最早时间),并且L'BA指示从B向A发送消息中的时间滞后。
如果L'AB和L'BA两者都为0(L'AB=L'BA=0),则两个时间滞后都为零。这意味着逻辑过程A和B强烈耦合,并且不能被并行执行。在这种情况中,逻辑过程A和B不能被分离到不同的逻辑过程中,并且作为单个仿真器被计算。
如果L'AB和L'BA都不为0(L'AB≠L'BA≠0),则执行同步处理,例如,以在L'AB和L'BA之间的最大公约数的时间步长。因此,实现了耦合的仿真的执行,其中以最大公约数的时间发生并行操作,而没有时间错误。
如果L'AB和L'BA之一(例如,L'BA)为0(L'AB≠0,L'BA=0),则逻辑过程A保留在待机状态中,直到从逻辑过程B接收到消息。在这种情况中,逻辑过程A和B交替地执行顺序执行。
图1中的“仿真时间”和“执行时间”示出了这样的顺序操作的示例,其中水平轴表示时间轴。在图1中的仿真时间中,在逻辑过程A和B之间的消息的交换由箭头指示。例如,在与水平轴垂直的方向上从逻辑过程B向上指向逻辑过程A的箭头指示逻辑过程B向逻辑过程A发送具有为0的时间滞后的消息。
在与水平轴对角的方向上从逻辑过程A指向逻辑过程B的箭头指示逻辑过程A向逻辑过程B发送具有为0或者更大的时间滞后(在这一示例中为L'AB)的消息。每个消息指示允许逻辑过程执行处理,直到对应的箭头的尖端位置。
在图1中沿着实际时间轴的执行时间中,每个逻辑过程执行仿真的时段由矩形表示,而逻辑过程处于待机状态的时段由箭头表示。也就是说,其中逻辑过程的矩形沿着时间轴重叠的时段对应于其中发生并行操作的时段。
逻辑过程A和B彼此同步,例如通过在开始时间向彼此发送消息。从逻辑过程A到逻辑过程B的发送(在图1中为m1)向逻辑过程B通知为L'AB的时间滞后。因此,逻辑过程B可以在时段B1期间执行仿真,在时段B1期间,L'AB的时间流逝。由于逻辑过程A已经从逻辑过程B接收到具有L'BA=0的消息(n1),所以逻辑过程A不能执行仿真,并且进入待机状态以等待来自逻辑过程B的消息。
在与L'AB对应的时间流逝之后,逻辑过程B停止仿真的执行,并且向逻辑过程A发送消息(n2)。该消息允许逻辑过程A的执行,直到对应于具有为0时间滞后的流逝的L'AB的时段结束(即,直到时段L'AB+0结束,或者时段A1结束)。然后,逻辑过程B进入待机状态并且等待来自逻辑过程A的消息。
响应于接收到允许执行的消息(n2),逻辑过程A在时段A1中执行仿真,在时段A1期间,L'AB的时间流逝。在对应于L'AB的时间流逝之后(即,在对应于从仿真开始的2L'AB的时间流逝之后),逻辑过程A停止仿真的执行并且向逻辑过程B发送消息(m2)。该消息允许逻辑过程B的执行,直到具有为L'AB的时间滞后的时段B1 (=A1)结束(即,直到时段L'AB+L'AB结束或者时段B2结束)。然后,逻辑过程A进入待机状态并且等待来自逻辑过程B的消息。
响应于来自逻辑过程A的消息(m2),逻辑过程B退出待机模式,并且在时段B2期间执行仿真。在时段B2流逝后,逻辑过程B停止仿真的执行并且向逻辑过程A发送消息(n3)以允许逻辑过程A在为A2的时段期间执行。然后,逻辑过程B进入待机状态并且等待来自逻辑过程A的消息。
逻辑过程A和B重复这一操作并且执行仿真,同时维持在它们之间的同步。然而,由于没有发生并行执行,所以不可能增加执行的速度。因此,将在整个仿真的开始之前的预定时段设置为初始时间偏移,并且预定逻辑过程被预先执行。然后,并行执行两个逻辑过程。
图2图示了根据本实施例的逻辑过程以及具有初始偏移时段的逻辑过程的第一示例性操作。类似于图1,图2图示了其中由逻辑过程A和B执行仿真的配置,并且L'BA为0(L'AB≠0,L'BA=0)。
在本实施例中,逻辑过程A的初始时间偏移由SA表示,逻辑过程B的初始时间偏移由SB表示,并且初始偏移时段由SA-SB=(L'BA-L'AB)/2表达。逻辑过程的初始时间偏移是从预定参考时间到当逻辑过程开始仿真处理时的时间流逝的时间量。
因此,逻辑过程A和B的初始偏移时段(SA-SB)是在逻辑过程A的处理开始时间和逻辑过程B的处理开始时间之间的差值。例如,在图1中图示的逻辑过程A和B的初始偏移时段(SA-SB)为0,并且两个逻辑过程基本上同时开始处理。
在图2中,其中L'BA=0,初始偏移时段被表达为SB-SA=L'AB/2。这意味着逻辑过程B比逻辑过程A早初始偏移时段(L'AB/2)执行仿真。也就是说,逻辑过程B在逻辑过程A的执行开始时间预先开始处理(时段B0)。在开始时间,逻辑过程A发送消息给在另一侧上的逻辑过程B以允许逻辑过程B提前处理,直到时段B1结束。同时,逻辑过程A进入待机状态以等待来自逻辑过程B的消息。
响应于接收到消息,逻辑过程B开始仿真。在对应于初始偏移时段(L'AB/2)的时段流逝之后,逻辑过程B发送允许逻辑过程A执行直到时段A1结束的消息。由于此时对应于所允许的时间滞后L'AB的时间还未流逝,所以逻辑过程B继续仿真的执行(前进到时段B1)。
响应于接收到执行允许消息,逻辑过程A在时段A1中执行仿真,在时段A1期间,L'AB/2的时间流逝。在对应于从仿真开始起L'AB的时间流逝之后,逻辑过程A结束仿真执行时段A1,并且向逻辑过程B发送消息以允许执行,直到时段B2结束。逻辑过程B结束仿真执行时段B1,并且向逻辑过程A发送消息以允许执行,直到时段A2结束。同时,逻辑过程B响应于该消息开始在时段B2中的仿真的执行。
响应于接收到执行允许消息,逻辑过程A在时段A2中执行仿真。在对应于从仿真开始起1.5×L'AB的时间流逝之后,逻辑过程A结束仿真执行时段A2,并且向逻辑过程B发送消息以允许执行,直到时段B3结束。逻辑过程B结束仿真执行时段B2,并且向逻辑过程A发送消息以允许执行,直到时段A3结束。同时,逻辑过程B响应于该消息开始在时段B3中的仿真的执行。
逻辑过程A和B重复这一操作并且并行执行仿真,同时维持它们之间的同步。这使得能够降低仿真执行的总体时间。
即使在L'AB和L'BA都不为0(L'AB≠0,L'BA≠0)时,逻辑过程的并行执行的时段也可以通过允许预定逻辑过程的先行而被增加,其中时间的预定时段被设置为初始偏移时段。图3图示了根据实施例的逻辑过程以及具有初始偏移时段的逻辑过程的第二示例性操作。类似于图1和图2,图3图示了其中由逻辑过程A和B执行仿真的配置。此处,L'AB和L'BA都不为0(L'AB≠0,L'BA=0)。
同样,逻辑过程A的初始时间偏移由SA表示,逻辑过程B的初始时间偏移由SB表示,并且初始偏移时段由SA-SB=(L'BA-L'AB)/2表达。此处,初始偏移时段被设置为满足SA-SB=(L'BA-L'AB)/2>0(即,L'BA>L'AB),并且逻辑过程A比逻辑过程B早预定初始偏移 时段(L'BA-L'AB)/2)执行仿真。
具体而言,在开始时间,逻辑过程B向逻辑过程A发送消息(n1)以允许执行,直到对应于时间滞后L'BA的时段(A1)结束。同时,逻辑过程A开始在时段A0中的仿真,在时段A0期间,(L'BA-L'AB)/2的时间流逝。此处,逻辑过程B进入待机状态并且等待来自逻辑过程A的消息。
在对应于(L'BA-L'AB)/2的时间流逝之后,逻辑过程A向逻辑过程B发送消息(m1)以允许执行,直到对应于时间滞后L'AB的时段(B1)结束。由于此时对应于所允许的时段A1的时间还未流逝,所以逻辑过程A继续仿真的执行(前进到时段A1)。
响应于接收到执行允许消息(m1),逻辑过程B执行仿真,直到时段B1结束,在时段B1期间,L'AB+(L'BA-L'AB)/2(=(L'AB+L'BA)/2)的时间流逝。在时段B1中的仿真的执行之后,逻辑过程B向逻辑过程A发送消息(n2)以允许执行,直到时段A2结束。
在对应于从开始点起L'BA的时间流逝之后(即,在对应于从时段A1开始起L'BA-(L'BA-L'AB)/2=(L'AB+L'BA)/2的时间流逝之后),逻辑过程A结束仿真执行时段A1。然后,逻辑过程A向逻辑过程B发送消息(m2)以允许执行,直到时段B2结束。时段A1的开始时间和时段B1的开始时间基本上与从仿真开始时流逝时段A0之后的时间点相同。对应于时段A1和B1中的每个时段的时间基本上等于(L'AB+L'BA)/2。
因此,逻辑过程A和B接收允许基本上同时执行直到下一时段(A2和B2)相应结束的消息,并且基本上同时在下一时段中执行处理。逻辑过程A和B重复这一操作并且并行执行仿真,同时维持它们之间的同步。通过允许预定逻辑过程的先行,能够增加逻辑过程的并行执行的时段,并且降低仿真执行的总体时间。
尽管在以上描述中由两个逻辑过程执行仿真,仿真也可以由三个或者更多个逻辑过程类似地执行。此处,一个逻辑过程从多个其他逻辑过程接收执行允许消息。在这种情况中,该一个逻辑过程在 由多个消息所允许的所有时段中的最短时段期间执行处理,假定允许直至最短时段结束的处理。
在如上所述设置每个逻辑过程的初始时间偏移中,在诸如树形配置或者其中每个过程一次发送一个消息的配置的简单通信链路配置的情况中可以分析地计算初始时间偏移。也就是说,每个初始时间偏移可以通过求解联立方程,SA-SB=(L'BA-L'AB)/2、SB-SC=(L'CB-L'BC)/2、......、SR-SZ=(L'ZR-L'RZ)/2,并且SA=C而被计算。此处,方程SA=C指示出SA被用作计算初始时间偏移的临时参考。这一参考可以被随后的处理校正为适当的参考。
然而,如果在逻辑过程之间的连接复杂,则联立方程的数目可能不匹配要计算的初始时间偏移的数目。例如,如果联立方程的数目大于初始时间偏移的数目,则与在逻辑过程之间的具有较低优先级的连接对应的方程可被去除。利用这一处理,能够使得联立方程的数目与初始时间偏移的数目相同,并且因此分析地计算联立方程。然而,由于这要求基于用户的经验等的判断,所以不能够通过一致算法来确定初始时间偏移。
此外,例如,如果联立方程的数目小于初始时间偏移的数目(例如,如果多个逻辑过程中的一些逻辑过程之间具有在一个方向上的连接但是不具有在另一个方向上的连接),则不能求解联立方程并且因此不能确定初始时间偏移。也就是说,除非初始时间偏移的数目匹配联立方程的数目,否则难以在没有基于用户的经验的判断和处理以及附加信息等的情况下确定初始时间偏移。
根据本实施例的仿真装置100将每个逻辑过程的初始时间偏移形成为受约束的优化问题,并且由此自动确定初始时间偏移,而无需基于用户的经验的判断和处理以及附加信息等。图4图示了根据本实施例的仿真装置100的示例性配置。
仿真装置100确定通过对在待仿真的系统中包括的多个部件建模而获得的多个逻辑过程的参数,并且并行执行多个逻辑过程。仿真装置100包括获取单元110、存储单元120、条件生成单元130、 求解器单元140、仿真单元150以及显示单元160。
获取单元110获取关于逻辑过程的信息(此后可以称为逻辑过程信息)。对于每个逻辑过程,获取单元110获取信息,诸如将要仿真(或者处理)的事物、与其交换消息的对等方、消息的内容以及在消息的通信中在逻辑过程之间发生的通信延迟(时间滞后)。获取单元110可以从用户输入获取逻辑过程信息,或者可以通过读取事先以预定格式存储的数据来获取逻辑过程信息。
获取单元110可以连接到网络、获取与仿真装置100的主单元不同位置处的逻辑过程信息以及经由网络向主单元供应所获取的信息。在这种情况中,获取单元110可以由另一装置实现,并且可以作为仿真装置100的主单元的预先处理来执行逻辑过程信息的获取。例如,获取单元110向存储单元120供应所获取的逻辑过程信息。
存储单元120连接到获取单元110,并且存储从获取单元110接收的逻辑过程信息。例如,响应于来自条件生成单元130的请求,存储单元120向条件生成单元130供应所存储的逻辑过程信息。存储单元120可以存储库数据和用于执行仿真的程序。存储单元120可以存储由仿真装置100在执行仿真的过程中生成的数据和程序。
基于在多个逻辑过程之间的通信延迟,条件生成单元130生成约束条件,该约束条件将由被给予多个逻辑过程的初始时间偏移以及各自由从充当通信源的逻辑过程向充当逻辑目的地的逻辑过程发送以允许先行的消息所允许的先行时间满足。条件生成单元130连接到存储单元120,接收在逻辑过程之间发生的通信延迟(L'XY等)的信息并且基于该信息生成约束条件。
本实施例的约束条件指的是将由参数满足的条件,该参数是将由每个逻辑过程发送的空消息所允许的先行时间和每个逻辑过程的初始时间偏移(例如,Sn)。例如,先行时间是由LXY指示的参数,先行时间的最小值为0并且先行时间的最大值等于通信延迟L'XY。先行时间LXY表示用于预先执行在对应逻辑过程之间的未处理仿真的部分的时间(例如,先行时间LXY由从逻辑过程X到逻辑过程Y 的消息所允许的)。先行时间LXY可以是时间滞后和/或用于先行处理的时间。
求解器单元140求解满足约束条件并且最小化在多个逻辑过程之间的消息的通信中的开销的优化问题,并且获得多个逻辑过程的初始时间偏移以及在多个逻辑过程之间的先行时间。求解器单元140连接到条件生成单元130并且接收由条件生成单元130生成的约束条件。备选地,条件生成单元130可以将所生成的约束条件存储在存储单元120中,并且求解器单元140可以连接到存储单元120并且从存储单元120读取约束条件。
求解器单元140允许更多个逻辑过程的并行执行并且增加并行执行的处理时间,以便最小化在消息的通信中的开销。因此,求解器单元140获得允许多个逻辑过程执行仿真的同时执行(即,并行执行)的初始时间偏移和先行时间。求解器单元140可以将初始时间偏移和先行时间存储在存储单元120,或者可以直接将它们供应给仿真单元150。
仿真单元150在初始时间偏移之后开始多个逻辑过程中的每个逻辑过程,并且并行执行多个逻辑过程,同时使得每个逻辑过程在先行时间期间发送允许先行的消息。仿真单元150连接到存储单元120,读取关于每个逻辑过程的信息、初始时间偏移、先行时间、用于执行仿真的程序、库等,并且通过并行执行多个逻辑过程来执行仿真。
显示单元160显示仿真结果。显示单元160连接到仿真单元150并且显示例如仿真执行时间、并行执行时间、由并行执行缩短的时间、由并行执行实现的效率、和/或关于每个逻辑过程的信息。显示单元160可以连接到获取单110,并且可以显示关于由获取单元110获取的每个逻辑过程的信息获取的状态。显示单元160可以显示由仿真装置100执行的仿真的过程中的进展的状态和确认。
显示单元160可以连接到存储单元120,并且响应于用户请求显示关于每个逻辑过程的信息、初始时间偏移、先行时间、用于执行 仿真的程序、库等。本实施例的仿真装置100增强多个逻辑过程的并行化,最小化在同时处理中涉及的开销,自动计算在没有返回的情况下执行的每个逻辑过程的初始时间偏移和先行时间,以及通过执行多个逻辑过程来执行仿真。现在将描述仿真装置100的具体操作。
图5图示了根据本实施例的仿真装置100的操作流程。首先,获取单110获取关于多个逻辑过程的信息(步骤S200)。获取单110获取信息,该信息包括在逻辑过程之间发送和接收的消息的源和目的地以及对应于发送和接收的通信延迟(L'AB、L'BA等),并且将所获取的信息存储在存储单元120中。
例如,获取单元110连接到诸如键盘、鼠标、手写板以及触摸板的输入设备,并且通过与显示单元160联合操作的图形用户界面(GUI)获取关于逻辑过程的信息。在这种情况中,用户通过使用GUI在显示单元160的屏幕上布置多个功能部块,并且输入关于功能块和处理的流程的信息。
接下来,条件生成单元130基于关于多个逻辑过程的信息生成约束条件(步骤S210)。条件生成单元130生成约束条件,其中,由从充当通信源的每个逻辑过程到充当通信目的地的每个逻辑过程的消息所允许的先行时间(例如,LAB、LBA)短于或者等于在从充当通信源的逻辑过程到充当通信目的地的逻辑过程的通信中的通信延迟(例如,L'AB、L'BA)。具体而言,条件生成单元130生成由以下表达式表示的约束条件。
(表达式1)
0≤LAB≤L'AB
0≤LBA≤L'BA
表达式1中的表达式示出了由条件生成单元130为两个逻辑过程A和B生成的示例性约束条件。如上所述,条件生成单元130生成约束条件,其中,对于每个逻辑过程允许的先行时间(例如,LAB、LBA)短于或者等于每个逻辑过程的通信延迟(例如,L'AB、L'BA)。 因此,满足约束条件的解(例如,LAB、LBA等)不超过每个逻辑过程的通信延迟,并且可以在过程之间稳定地发送和接收消息。
此外,条件生成单元130生成对于每个逻辑过程的先行时间(例如,LAB、LBA)和初始时间偏移(例如,SA、SB)的约束条件。例如,条件生成单元130生成由以下表达式表示的约束条件。
(表达式2)
SA-SB=(LBA-LAB)/2
SA≥0,SB≥0
与表达式1中的表达类似,表达式2中的表达式示出了由条件生成单元130为两个逻辑过程A和B生成的示例性约束条件。条件生成单元130可以生成约束条件,其中在多个逻辑过程之中彼此通信的逻辑过程之间,在第一逻辑过程和第二逻辑过程的初始时间偏移之间的差值(表达式2中的SA-SB)与由从第二逻辑过程到第一逻辑过程的消息所允许的先行时间LBA和由从第一逻辑过程到第二逻辑过程的消息所允许的先行时间LAB中的至少一个先行时间成正比(例如,SA-SB=αLBA,SA-SB=αLAB等)。在这种情况中,例如,条件生成单元130将正比例因子α设置为大于0且小于1。
备选地,条件生成单元130可以生成约束条件,其中在第一逻辑过程和第二逻辑过程的初始时间偏移之间的差值(在表达式2中为SA-SB)被设置为通过使得在由从第二逻辑过程到第一逻辑过程的消息所允许的先行时间与由从第一逻辑过程到第二逻辑过程的消息所允许的先行时间之间的差值(在表达式2中为LBA-LAB)接近零而获得的值。也就是说,条件生成单元130生成约束条件作为方程(SA-SB=α(LBA-LAB)),其中在初始时间偏移之间的差值(SA-SB)等于通过将因子α乘以在先行时间之间的差值(LBA-LAB)而获得的值,其中,α是大于0且小于1的因子(0<α<1)。
在这种情况中,例如,条件生成单元130将在第一逻辑过程与第二逻辑过程的初始时间偏移之间的差值设置为处于以下范围:在由从第二逻辑过程到第一逻辑过程的消息所允许的先行时间与由从 第一逻辑过程到第二逻辑过程的消息所允许的先行时间之间的差值的四分之一至四分之三。在其中逻辑过程需要等待彼此发送的死锁的情况下,条件生成单元130可以解决死锁,例如,通过使得在初始时间偏移之间的差值接近在先行时间之间的差值的一半。例如,条件生成单元130生成约束条件,其中在第一逻辑过程与第二逻辑过程的初始时间偏移之间的差值是在由从第二逻辑过程到第一逻辑过程的消息所允许的先行时间与由从第一逻辑过程到第二逻辑过程的消息所允许的先行时间之间的差值的一半。表达式2中的表达式示出了由条件生成单元130生成的示例性约束条件,其中在初始时间偏移之间的差值(SA-SB)与在先行时间之间的差值(LBA-LAB)的一半成正比。
接下来,求解器单元140求解满足由条件生成单元130生成的约束条件的优化问题、增强多个逻辑过程的并行化并且最小化在同时处理中涉及的开销(步骤S220)。例如,求解器单元140求解满足约束条件并且最大化在多个逻辑过程中的先行时间的总和的最大化问题。求解器单元140求解例如使以下表达式最小化同时满足由表达式1和2表示的约束条件的最小化问题。
(表达式3)
1/(LBA+LAB)
尽管表达式3示出了用于两个逻辑过程A和B的示例性表达式,最小化问题也可以由用于两个或者更多个逻辑过程的以下表达式表达。
(表达式4)
最小化:
由于由表达式1和2表示的约束条件和在表达式3中的待最小化的表达式被如上所述确定,所以求解器单元140可以使用已知计算方法求解最小化问题。例如,求解器单元140可以使用梯度法(诸如,被认为是对连续非线性优化问题的解决方案的最陡下降法)来 最小化表达式3中的表达式。也就是说,求解器单元140获得多个逻辑过程的初始时间偏移和在多个逻辑过程之间的先行时间,作为最小化表达式3中的表达式的解。
存在根据在逻辑过程之间的消息的发送和接收生成的联立方程的数目匹配要计算的初始时间偏移的数目的情况。换言之,存在先行时间和初始时间偏移(SA、SB、...)可以被分析地计算的情况,如以上参考图2和图3描述的。在此类情况中,求解器单元140获得基本上等于作为分析的解的先行时间以及等于所获取的通信延迟的初始时间偏移(SA、SB......)的先行时间和初始时间偏移作为解。也就是说,求解器单元140能够获得如下先行时间和初始时间偏移,该先行时间和初始时间偏移能够通过允许逻辑过程的并行执行来降低总体仿真执行时间,如以上关于图2和图3描述的。
存在根据在逻辑过程之间的消息的发送和接收生成的联立方程的数目不匹配要计算的初始时间偏移的数目的情况。换言之,存在在没有任何附加信息、处理等的情况下,不可以计算初始时间偏移的情况。即使在此类情况中,当条件生成单元130生成对应于联立方程的约束条件并且求解器单元140求解最小化问题时,也能够在不增加或者减少联立方程的数目的情况下获得满足约束条件的适当的先行时间和初始时间偏移。
图6图示了根据本实施例的具有三个逻辑过程的第一示例性配置。如参考图1至3描述的,图6中的L'XY指示从逻辑过程X向逻辑过程Y发送消息时的时间滞后。对于图6的配置,条件生成单元130生成由以下表达式表示的约束条件。
(表达式5)
SA-SB=(LBA-LAB)/2
SB-SC=(LCB-LBC)/2
SC-SA=(LAC-LCA)/2
SA≥0,SB≥0,SC≥0
0≤LXY≤L'XY
求解器单元140求解由表达式4中的表达式表示的最小化问题,同时满足由表达式5中的表达式表示的约束条件,并且获得先行时间LXY和初始时间偏移(SA、SB、SC)。如在以下表达式6中,求解器单元140可以通过在表达式5中将第一至第三个方程相加而使约束条件退化。
(表达式6)
LAB+LBC+LCA=LBA+LAC+LCB
0≤LXY≤L'XY
表达式6中的等式的左侧表示在消息顺时针发送的情况下通信链路(连接)中的先行时间,并且等式的右侧表示在消息被逆时针发送的情况下通信链路中的先行时间。在这样的情况中,由于求解器单元140执行优化以最大化LXY的总和,所以等式的左侧和右侧之一通常变为上限(L'AB+L'BC+L'CA或者L'BA+L'AC+L'CB)。
例如,在顺时针和逆时针通信链路中的至少一个中的时间滞后的总和可以为零。在这种情况中,三个逻辑过程的循环中的至少一个不具有时间滞后(例如,L'AB=L'BC=L'CA=0和/或L'BA+L'AC+L'CB=0),并且求解器单元140不能获得解,原因在于逻辑过程A、B和C强烈耦合,并且不能被并行执行
图7图示了根据本实施例的具有四个逻辑过程的示例性配置。如图6中,图7中的L'XY指示从逻辑过程X向逻辑过程Y发送消息时的时间滞后。对于图7的配置,条件生成单元130生成由以下表达式表示的约束条件。
(表达式7)
SA-SB=(LBA-LAB)/2
SB-SC=(LCB-LBC)/2
SC-SA=(LAC-LCA)/2
SB-SD=(LDB-LBD)/2
SD-SC=(LCD-LDC)/2
SA≥0,SB≥0,SC≥0,SD≥0
0≤LXY≤L'XY
求解器单元140求解由表达式4中的表达式表示的最小化问题,同时满足由表达式7中的表达式表示的约束条件,并且获得先行时间LXY和初始时间偏移(SA、SB、SC、SD)。如在以下表达式8中,求解器单元140可以通过使用表达式7中的第一至第三等式以及第二、第四和第五等式使约束条件退化。
(表达式8)
LAB+LBC+LCA=LBA+LAC+LCB
LCB+LBD+LDC=LBC+LCD+LDB
0≤LXY≤L'XY
如上所述,本实施例的条件生成单元130生成约束条件,并且本实施例的求解器单元140基于由获取单元110获取的关于多个逻辑过程的信息求解最小化问题。因此,能够获得满足约束条件的适当的先行时间和初始时间偏移。即使在其中不存在在逻辑过程之间的部分通信链路的部分的配置中,条件生成单元130也可以生成约束条件,并且求解器单元140也可以求解最小化问题。
图8图示了根据本实施例的具有三个逻辑过程的第二示例性配置。在第二示例性配置中,基本上与根据图6中图示的实施例的具有三个逻辑过程的在第一示例性配置中的操作类似的操作由相同的附图标记指示,并且省略了对其描述。在第二示例性配置中,当一个逻辑过程不直接与另一逻辑过程通信时,条件生成单元130不对由从该一个逻辑到该另一个逻辑的消息所允许的先行时间设置上限。也就是说,在没有直接通信发生的链路中的通信延迟被条件生成单元130设置为无限。
对于图8的配置,条件生成单元130生成由以下表达式表示的约束条件。
(表达式9)
SA-SB=(LBA-LAB)/2
SB-SC=(LCB-LBC)/2
SC-SA=(LAC-LCA)/2
SA≥0,SB≥0,SC≥0
0≤LXY≤L'XY,其中,L'BC=∞
求解器单元140求解由表达式4中的表达式表示的最小化问题,同时满足由表达式9中的表达式表示的约束条件,并且获得先行时间LXY和初始时间偏移(SA、SB、SC)。例如,求解器单元140可以对于通信延迟L'AB=100,L'BA=80,L'CB=90,L'CA=40,以及L'AC=0获得解LBC=30。
接下来,基于所获得的先行时间和初始时间偏移,仿真单元150执行仿真(步骤S230)。仿真单元150从仿真执行开始时间起预先执行逻辑过程,该逻辑过程具有与最小初始时间偏移之间的差值不为0的初始时间偏移,其中该差值被设置为初始偏移时段。
例如,如果逻辑过程A、B和C的初始时间偏移分别为SA=0,SB=50,并且SC=75,则仿真单元150预先执行逻辑过程B和C,因为逻辑过程B和C具有与最小初始时间偏移(SA=0)的差值不为0的初始时间偏移(SB-SA=50,SC-SA=75)。此处,初始偏移时段是与逻辑过程A的初始时间偏移的差值。也就是说,逻辑过程B的初始偏移时段为50并且逻辑过程C的初始偏移时段为70。这里描述的数值仅仅是示例,并且可以使用任何标准化的值。
在仿真执行开始时间,仿真单元150使得从执行开始时间起不预先执行的逻辑过程发送允许先行的消息给对应的逻辑过程。例如,在仿真执行开始时间,仿真单元150使得逻辑过程A向逻辑过程B和C发送消息。
然后,仿真单元150使得其初始偏移时段已经流逝的逻辑过程向对应的逻辑过程发送允许先行的消息。例如,在50的时间流逝之后,仿真单元150使得逻辑过程B向逻辑过程A和C发送消息。类似地,在75的时间流逝之后,仿真单元150使得逻辑过程C向逻辑过程A和B发送消息。
仿真单元150使得每个逻辑过程的执行提前,直到由被发送给 该逻辑过程的消息所允许的先行时间中的最短先行时间结束,并且使得该逻辑过程向其他逻辑过程发送消息。也就是说,例如,仿真单元150使得逻辑过程A执行处理,直到从逻辑过程B和C接收到的先行时间中的较短先行时间结束。然后,仿真单元150使得逻辑过程A停止处理,向逻辑过程B和C发送下一消息,并且进入待机状态以等待,直到从逻辑过程B和C接收到消息。
类似地,仿真单元150使得逻辑过程B执行处理,直到从逻辑过程C和A接收到的先行时间中的较短先行时间结束。然后,仿真单元150使得逻辑过程B停止处理,向逻辑过程C和A发送文本消息,并且进入待机状态以等待,直到从逻辑过程C和A接收到消息。
如在逻辑过程A和B中的情况中,仿真单元150使得逻辑过程C执行处理并且发送消息。仿真单元150可以通过重复以上描述的操作直到仿真结束来并行执行多个逻辑过程。
显示单元160显示由仿真单元150执行的仿真的结果(步骤S240)。仿真单元150可以在存储单元120中存储仿真结果和/或仿真程序。
如上所述,本实施例的仿真装置100能够基于在逻辑过程之间的通信延迟来执行仿真。仿真装置100生成不超过通信延迟的约束条件,并且形成每个逻辑过程的待由用于最大化先行时间的优化的问题调整的时间滞后,从而使得先行时间和初始时间偏移可以被自动获得。即使当在多个逻辑过程的一些逻辑过程之间存在一个方向上的连接但是不存在相反方向上的连接时,也能够求解优化问题,并且可以通过生成仿真程序来执行仿真。
仿真装置100可以从仿真执行开始时间起预先执行多个逻辑过程的部分,直到初始偏移时段流逝,并且因此能够高效地并行执行逻辑过程。在这种情况中,同样,仿真装置100能够自动确定将被预先执行的逻辑过程以及该逻辑过程的初始偏移时段。
每个逻辑过程响应于接收到允许先行的消息而开始先行,并且在仿真执行和待机期间即使接收到消息也不发送任何消息。也就是 说,仿真装置100可以高效地并行执行逻辑过程,同时最小化在逻辑过程之间发送的消息的频率。
图9图示了根据本实施例的充当仿真装置100的计算机1900的硬件配置。根据本实施例的计算机1900包括通过主机控制器2082彼此连接的具有CPU 2000、随机存取存储器(RAM)2020、图形控制器2075和显示设备2080的中央过程单元(CPU)外围部分;通过输入/输出控制器2084连接到主机控制器2082的具有通信接口(I/F)2030、硬盘驱动器2040和数字万用盘只读存储器(DVD-ROM)驱动器2060的输入/输出(I/O)部分;以及连接到输入/输出控制器2084的具有ROM 2010、柔性盘驱动器2050和输入/输出芯片2070的遗留输入/输出部分。
主机控制器2082将RAM 2020连接到以高传送速率访问RAM2020的CPU 2000和图形控制器2075。CPU 2000根据在ROM 2010和RAM 2020中存储的程序操作以控制每个部分。图形控制器2075获取由CPU 2000等生成的在RAM 2020中的帧缓冲器中的图像数据,并且在显示设备2080上显示所获取的图像数据。备选地,图形控制器2075可以包括用于存储由CPU2000等生成的图像数据的帧缓冲器。
输入/输出控制器2084将主机控制器2082连接到通信接口2030、硬盘驱动器2040和DVD-ROM驱动器2060,这些是相对高速输入/输出设备。通信接口2030经由网络与其他装置通信。硬盘驱动器2040存储由计算机1900中的CPU 2000使用的程序和数据。DVD-ROM驱动器2060从DVD-ROM 2095读取程序或者数据,并且经由RAM 2020向硬盘驱动器2040提供读取的程序或者数据。
ROM 2010和相对低速输入/输出设备(包括柔性盘驱动器2050和输入/输出芯片2070)被连接到输入/输出控制器2084。ROM 2010存储由计算机1900在启动时执行的引导程序和/或依赖于计算机1900的硬件的程序。柔性盘驱动器2050从柔性盘2090读取程序或者数据,并且经由RAM 2020将读取的程序或者数据提供给硬盘驱 动器2040。输入/输出芯片2070将柔性盘驱动器2050连接到输入/输出控制器2084。同时,输入/输出芯片2070例如经由并行端口、串行串口、键盘端口或者鼠标端口将各种输入/输出设备连接到输入/输出控制器2084。
经由RAM 2020提供给硬盘驱动器2040的程序被存储在记录介质(诸如柔性盘2090、DVD-ROM 2095、或者集成电路(IC)卡)中,并且由用户提供。该程序从记录介质被读取、经由RAM 2020被安装到计算机1900中的硬盘驱动器2040上,并且由CPU 2000执行。
程序被安装在计算机1900上,并且使得计算机1900用作获取单元110、存储单元120、条件生成单元130、求解器单元140、仿真单元150和显示单元160。
在该程序中描述的信息处理被计算机1900读取。因此,计算机1900用作获取单元110、存储单元120、条件生成单元130、求解器单元140、仿真单元150和显示单元160,这些都是通过在以上描述的各种软件和硬件资源之间的协调实现的分立单元。当这些分立单元计算或者处理对于根据本实施例的计算机1900的预期使用而言适当的信息时,实现了对于预期使用而言适当的仿真装置100。
例如,对于计算机1900与外部设备的通信,CPU 2000执行被加载在RAM 2020中的通信程序,并且指令通信接口2030基于在通信程序中描述的处理而执行通信处理。在CPU2000的控制下,通信接口2030读取存储在存储设备中的传输缓冲器区域等中的传输数据并且将读取数据传输给网络,或者将从网络接收的接收数据写入到存储设备中的接收缓冲器区域等中,存储设备诸如RAM 2020、硬盘驱动器2040、柔性盘2090或者DVD-ROM 2095。如上所述,通信接口2030可以经由直接存储器访问(DMA)向存储设备传送传输数据或者从存储设备传送接收数据。备选地,CPU 2000可以从作为传送源的存储设备或者通信接口2030读取数据,并且将数据写入到作为传送目的地的通信接口2030或者存储设备,以便传送传输数据和 接收数据。
CPU 2000经由DMA传送等将存储在外部存储设备中的文件、数据库等的所有部分或者必要部分读取到RAM 2020中,并且对在RAM 2020中的数据执行各种类型的处理,外部存储设备诸如硬盘驱动器2040、DVD-ROM驱动器2060(DVD-ROM 2095)或者柔性盘驱动器2050(柔性盘2090)。然后,CPU 2000经由DMA传送等将处理后的数据写入回外部存储设备。在这一处理中,RAM 2020可以被视为临时保持外部存储设备的内容的部件。因此,在本实施例中,RAM 2020、外部存储设备等被统称为存储器、存储单元,或者存储设备。各种类型的信息(在本实施例中诸如各种程序、数据、表格和数据库等)被存储在这样的存储设备中,并且经受信息处理。CPU2000可以将RAM 2020中的部分数据保持在高速缓存存储器中,并且向该高速缓存存储器写入数据或者从其读取数据。在这样的配置中,高速缓存存储器执行RAM2020的部分功能。因此,除了在高速缓存存储器被分离地示出的情况中,在本实施例中,高速缓存存储器也被视为被包括在RAM 2020、存储器和/或存储设备中。
对于从RAM 2020读取的数据,CPU 2000执行由在本实施例中描述的程序的指令序列指定的各种类型的处理,包括各种计算、信息处理,条件判断、以及信息取回和替换,并且将处理后的数据写入回RAM 2020。例如,在条件判断中,CPU 2000确定在本实施例中示出的各种变量中的每个变量是否都满足条件,诸如变量是否大于、小于、等于或大于、或者等于或小于其他变量或者常数。如果满足(或者未满足)条件,则发生到另一指令序列的分支,或者子例程被调用。
CPU 2000能够搜索存储在存储设备中的文件或者数据库中的信息。例如,当存储设备存储多个条目(其中第一属性的属性值与第二属性的相应属性值相关联)时,CPU 2000在存储在存储设备中的多个条目中搜索具有第一属性的属性值匹配指定的条件的条目,并且读取在这一条目中存储的第二属性的属性值。因此,CPU 2000 可以获得与满足预定条件的与第一属性相关联的第二属性的属性值。
以上描述的程序或者模块可以被存储在外部记录介质中。在柔性盘2090和DVD-ROM 2095之外,诸如DVD、蓝光(注册商标)盘、致密盘(CD)的光记录介质、诸如磁光(MO)盘、磁带介质的磁光记录介质以及诸如IC卡的半导体存储器可以被用作记录介质。在连接到专用通信网络或者因特网的服务器系统中的诸如硬盘或者RAM的存储设备可以被用作记录介质,并且程序可以经由该网络被提供给计算机1900。
尽管已经使用实施例描述了本发明,本发明的技术范围并不限于在实施例中描述的范围。对本领域技术人员很明显的是,可以对以上描述的实施例做出各种修改和改进。从权利要求的描述很清楚的是,这种经修改的或者改进的实施例也可以被包括在本发明的技术范围内。
对于在权利要求书、说明书和附图中描述的装置、系统、程序和方法的操作、过程、步骤、阶段等中的每个处理的执行顺序并不通过诸如“在……之前”和“先于”的短语被特别地阐述。应当注意,处理可以按照任何顺序被实施,除非先前处理的输出在后续处理中被使用。尽管可能在权利要求书、说明书和附图的操作流程中使用了诸如“第一”和“下一”的短语,然而这并不意味着其对于以这种顺序实现处理是关键的。
附图标记列表
100 仿真装置、110 获取单元、120 存储单元、130 条件生成单元、140 求解器单元、150 仿真单元、160 显示单元、1900 计算机、2000 CPU、2010 ROM、2020 RAM、2030 通信接口、2040 硬盘驱动器、2050 柔性盘驱动器、2060 DVD-ROM驱动器、2070 输入/输出芯片、2075 图形控制器、2080 显示设备、2082 主机控制器、2084 输入/输出控制器、2090 柔性盘、2095 DVD-ROM。

Claims (11)

1.一种执行多个逻辑过程的并行执行的仿真装置,所述多个逻辑过程通过对在待仿真的系统中包括的多个部件建模而被获得,所述仿真装置包括:
条件生成单元,被配置成基于在所述多个逻辑过程之间的通信延迟生成约束条件,所述约束条件将由被给予所述多个逻辑过程的初始时间偏移和各自将由从充当通信源的逻辑过程发送到充当通信目的地的逻辑过程以允许先行的消息所允许的先行时间满足;以及求解器单元,被配置成求解优化问题,所述优化问题满足所述约束条件并且最小化在所述多个逻辑过程之间的消息的通信中的开销,并且被配置成获得所述多个逻辑过程的所述初始时间偏移和在所述多个逻辑过程之间的所述先行时间。
2.根据权利要求1所述的仿真装置,还包括仿真单元,所述仿真单元被配置成在所述初始时间偏移之后开始所述多个逻辑过程中的每个逻辑过程,并且并行执行所述多个逻辑过程,同时使得每个逻辑过程在所述先行时间期间发送允许先行的消息。
3.根据权利要求2所述的仿真装置,其中所述仿真单元使每个逻辑过程的执行提前,直到由被发送到所述逻辑过程的所述消息所允许的所述先行时间中的最短先行时间的结束,并且使得所述逻辑过程向其他逻辑过程发送消息。
4.根据权利要求1至3中任一项所述的仿真装置,其中所述求解器单元求解最大化问题,所述最大化问题满足所述约束条件并且最大化在所述多个逻辑过程中的所述先行时间的总和。
5.根据权利要求1至3中任一项所述的仿真装置,其中所述条件生成单元生成所述约束条件,其中将由从充当通信源的每个逻辑过程到充当通信目的地的每个逻辑过程的消息所允许的所述先行时间短于或者等于从充当通信源的所述逻辑过程到充当通信目的地的所述逻辑过程的通信中的所述通信延迟。
6.根据权利要求5所述的仿真装置,其中在一个逻辑过程不直接与另一逻辑过程通信的条件下,所述条件生成单元并不对由从所述一个逻辑过程到所述另一逻辑过程的消息所允许的所述先行时间设置上限。
7.根据权利要求1至3中任一项所述的仿真装置,其中所述条件生成单元生成约束条件,其中在所述多个逻辑过程之中彼此通信的逻辑过程之间,在第一逻辑过程和第二逻辑过程的初始时间偏移之间的差值被设置为通过使得由从所述第二逻辑过程到所述第一逻辑过程的消息所允许的先行时间与由从所述第一逻辑过程到所述第二逻辑过程的消息所允许的先行时间之间的差值接近零而获得的值。
8.根据权利要求7所述的仿真装置,其中所述条件生成单元生成约束条件,其中在得到多个逻辑过程之中彼此通信的逻辑过程之间,在所述第一逻辑过程和所述第二逻辑过程的所述初始时间偏移之间的所述差值被设置为处于在由从所述第二逻辑过程到所述第一逻辑过程的消息所允许的所述先行时间与从所述第一逻辑过程到所述第二逻辑过程的消息所允许的所述先行时间之间的所述差值的四分之一至四分之三的范围中。
9.根据权利要求8所述的仿真装置,其中所述条件生成单元生成约束条件,其中在所述多个逻辑过程之中彼此通信的逻辑过程之间,在所述第一逻辑过程与所述第二逻辑过程的所述初始时间偏移之间的所述差值是在由从所述第二逻辑过程到所述第一逻辑过程的消息所允许的所述先行时间与由从所述第一逻辑过程到所述第二逻辑过程的消息所允许的所述先行时间之间的所述差值的一半。
10.一种执行多个逻辑过程的并行执行的仿真方法,所述多个逻辑过程通过对在待仿真的系统中包括的多个部件建模而被获得,所述仿真方法包括:
条件生成步骤,用于基于在所述多个逻辑过程之间的通信延迟生成约束条件,所述约束条件将由被给予所述多个逻辑过程的初始时间偏移和各自将由从充当通信源的逻辑过程发送到充当通信目的地的逻辑过程以允许先行的消息所允许的先行时间满足;以及
求解器步骤,用于求解优化问题,所述优化问题满足所述约束条件并且最小化在所述多个逻辑过程之间的消息的通信中的开销,并且用于获得所述多个逻辑过程的所述初始时间偏移和在所述多个逻辑过程之间的所述先行时间。
11.一种仿真方法,包括用于执行权利要求1至9中的任一单元的功能的步骤。
CN201410637489.3A 2013-11-28 2014-11-06 仿真装置、仿真方法 Expired - Fee Related CN104679576B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013246498A JP5920842B2 (ja) 2013-11-28 2013-11-28 シミュレーション装置、シミュレーション方法、およびプログラム
JP2013-246498 2013-11-28

Publications (2)

Publication Number Publication Date
CN104679576A CN104679576A (zh) 2015-06-03
CN104679576B true CN104679576B (zh) 2017-10-13

Family

ID=53045660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410637489.3A Expired - Fee Related CN104679576B (zh) 2013-11-28 2014-11-06 仿真装置、仿真方法

Country Status (4)

Country Link
US (1) US9563471B2 (zh)
JP (1) JP5920842B2 (zh)
CN (1) CN104679576B (zh)
DE (1) DE102014117431A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5920842B2 (ja) 2013-11-28 2016-05-18 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation シミュレーション装置、シミュレーション方法、およびプログラム
JP6600280B2 (ja) * 2016-06-28 2019-10-30 トヨタテクニカルディベロップメント株式会社 シミュレーション装置、シミュレーション方法、シミュレーションプログラム
CN113259482B (zh) * 2021-06-21 2021-12-07 北京卡普拉科技有限公司 多对多通信模式的优化方法、装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1601473A (zh) * 2003-09-25 2005-03-30 松下电器产业株式会社 仿真装置、仿真方法和存储介质
CN103049307A (zh) * 2011-10-12 2013-04-17 富士通株式会社 仿真设备和仿真方法
CN103268251A (zh) * 2013-05-02 2013-08-28 中国人民解放军国防科学技术大学 一种基于时戳截流的并行离散事件仿真时间同步方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5794005A (en) * 1992-01-21 1998-08-11 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Synchronous parallel emulation and discrete event simulation system with self-contained simulation objects and active event objects
WO2003096235A2 (en) * 2002-05-13 2003-11-20 Rensselaer Polytechnic Institute Discrete event simulation system and method
JP5186290B2 (ja) * 2008-06-18 2013-04-17 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
JP5224957B2 (ja) * 2008-07-25 2013-07-03 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
WO2012023397A1 (ja) * 2010-08-20 2012-02-23 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
US20130124174A1 (en) * 2011-06-03 2013-05-16 David R. Jefferson Internal parallelism in a parallel discrete event simulation for space situational awareness
JP5790312B2 (ja) * 2011-08-25 2015-10-07 富士通株式会社 通信方法、通信装置、および、通信プログラム
JP5651251B2 (ja) 2011-12-05 2015-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation シミュレーション実行方法、プログラム及びシステム
KR20130081354A (ko) * 2012-01-09 2013-07-17 삼성전자주식회사 분산 병렬 시뮬레이션에서의 통신 방법
JP5920842B2 (ja) 2013-11-28 2016-05-18 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation シミュレーション装置、シミュレーション方法、およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1601473A (zh) * 2003-09-25 2005-03-30 松下电器产业株式会社 仿真装置、仿真方法和存储介质
CN103049307A (zh) * 2011-10-12 2013-04-17 富士通株式会社 仿真设备和仿真方法
CN103268251A (zh) * 2013-05-02 2013-08-28 中国人民解放军国防科学技术大学 一种基于时戳截流的并行离散事件仿真时间同步方法

Also Published As

Publication number Publication date
US9563471B2 (en) 2017-02-07
JP5920842B2 (ja) 2016-05-18
US20150149145A1 (en) 2015-05-28
CN104679576A (zh) 2015-06-03
JP2015106179A (ja) 2015-06-08
DE102014117431A1 (de) 2015-05-28

Similar Documents

Publication Publication Date Title
TW464828B (en) Method and apparatus for design verification using emulation and simulation
Martin et al. ESL design and verification: a prescription for electronic system level methodology
US9015649B2 (en) Method and apparatus for electronic system model generation
US20220292248A1 (en) Method, system and verifying platform for system on chip verification
CN109711071B (zh) 一种服务器SoC软硬件协同仿真加速方法及系统
CN103959251B (zh) 模拟执行方法、设备和系统
US6507809B1 (en) Method and system for simulating performance of a computer system
CN104679576B (zh) 仿真装置、仿真方法
Bücs et al. Virtual hardware-in-the-loop co-simulation for multi-domain automotive systems via the functional mock-up interface
CN114139475A (zh) 芯片验证方法、系统、设备及存储介质
Milosevic et al. Software platform for heterogeneous in-vehicle environments
CN110363663A (zh) 基于区块链的数据批量处理方法、装置、设备及存储介质
Chwif et al. Discrete event simulation model reduction: A causal approach
Ramesh et al. A toolset for modelling and verification of GALS systems
US8688428B2 (en) Performance evaluation device, performance evaluation method and simulation program
JP2000298593A (ja) マルチタスクシステムの性能予測システム及び予測方法並びにその方法プログラムを記録した記録媒体
JP6265788B2 (ja) シミュレーション装置及びインタフェースモジュール生成装置及びプログラム
Paolucci et al. EURETILE 2010-2012 summary: first three years of activity of the European Reference Tiled Experiment
US10162913B2 (en) Simulation device and simulation method therefor
Golubeva et al. A tool for simulating parallel branch-and-bound methods
Aggarwal et al. SCF: A framework for task-level coordination in reconfigurable, heterogeneous systems
Karmakar Formal verification techniques: A comparative analysis for critical system design
RU2818034C1 (ru) Способ и система запуска приложений в симулируемой среде
Isakovic et al. A Survey of Hardware Technologies for Mixed-Critical Integration Explored in the Project
Silva et al. A Distributed Functional Verification Environment for the Design of System-on-Chip in Heterogeneous Architectures

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171013

CF01 Termination of patent right due to non-payment of annual fee