JP4875545B2 - Simulation synchronization apparatus and control method thereof - Google Patents
Simulation synchronization apparatus and control method thereof Download PDFInfo
- Publication number
- JP4875545B2 JP4875545B2 JP2007155724A JP2007155724A JP4875545B2 JP 4875545 B2 JP4875545 B2 JP 4875545B2 JP 2007155724 A JP2007155724 A JP 2007155724A JP 2007155724 A JP2007155724 A JP 2007155724A JP 4875545 B2 JP4875545 B2 JP 4875545B2
- Authority
- JP
- Japan
- Prior art keywords
- synchronization
- event
- processing
- time
- simulation execution
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明は、複数の独立してシミュレーションを実行するアプリケーションを1つのシステムとして同期実行させるシミュレーション同期装置及びその制御方法に関する。 The present invention relates to a simulation synchronization apparatus that synchronously executes a plurality of applications that execute simulations independently as one system, and a control method thereof.
ソフトウェアを開発する際には、一般に、バグを検出して修正するデバッグ作業が行われる。デバッグ作業では、仮想的にソフトウェアを実行するCPUシミュレータ(シミュレーションデバッガ)やメカシミュレータ等が利用されている。これらのシミュレータは、CPUによるプログラム実行処理、仮想メカ部品の動作のシミュレーションにおいて仮想時間の概念を持つ。 When developing software, debugging is generally performed to detect and correct bugs. In debugging work, a CPU simulator (simulation debugger), a mechanical simulator, or the like that virtually executes software is used. These simulators have the concept of virtual time in the program execution processing by the CPU and the simulation of the operation of the virtual mechanical component.
例えば、シミュレータ上で動作させる機構部品は、実際の速度とは異なる動作で実行される。その理由は様々であるが、コンピュータシステム(パーソナルコンピュータ、ワークステーション等)の処理能力によって実物と同じ速度の再現が困難である場合や、逆に効率的な解析のために敢えて実物よりも高速に動作させる場合がある。そのため、シミュレータ上で動作させる複数のアプリケーションは、それぞれ実時間とは異なる仮想時間の概念を持っている。したがって、複数のアプリケーションを連携させて1つのシステムとして動作させる場合には、それぞれの仮想時間を1つの仮想時間に同期させる必要がある。現行のシミュレータでは、システム全体の基準同期時間に従って複数のアプリケーションを同期させる方法が考えられている。 For example, a mechanical component operated on a simulator is executed with an operation different from an actual speed. There are various reasons for this, but it is difficult to reproduce the same speed as the actual product due to the processing capacity of the computer system (personal computer, workstation, etc.). There is a case to make it work. Therefore, each of the plurality of applications operating on the simulator has a concept of virtual time different from real time. Therefore, when a plurality of applications are linked to operate as one system, it is necessary to synchronize each virtual time with one virtual time. In the current simulator, a method of synchronizing a plurality of applications according to the reference synchronization time of the entire system is considered.
特許文献1は、ソフトウェアデバッガ、メカ論理動作シミュレータ及びハードウェアモデルを接続して協調動作させるソフトウェアデバッグ装置を示している。特許文献1に記載のソフトウェアデバッグ装置は、メカ等を協調動作させるため、デバッグ中にメカの動作をアニメーションで確認するのに有効である。
上述した従来技術によれば、システムを構成する各アプリケーションにおいて、仮想時間の進行を同期させることができる。しかし、同期の精度は予め定められた同期間隔のみに限定される。したがって、同期間隔より短いタイミングでは、アプリケーション間でのイベントの伝達タイミングを同期させることができない。 According to the above-described conventional technology, the progress of virtual time can be synchronized in each application constituting the system. However, the accuracy of synchronization is limited only to a predetermined synchronization interval. Therefore, the event transmission timing between applications cannot be synchronized at a timing shorter than the synchronization interval.
デバッグ作業においては、例えば、CPUシミュレータからメカシミュレータへの出力信号に対して、一定時間経過後にメカシミュレータからCPUシミュレータへの応答信号が出力される状況を正確にシミュレーションしたい場合がある。この場合、CPUシミュレータとメカシミュレータとの仮想時間を所望の精度で一致させる必要がある。 In debugging work, for example, there is a case where it is desired to accurately simulate a situation in which a response signal is output from the mechanical simulator to the CPU simulator after a predetermined time has elapsed with respect to an output signal from the CPU simulator to the mechanical simulator. In this case, it is necessary to match the virtual times of the CPU simulator and the mechanical simulator with desired accuracy.
しかしながら、従来技術の同期方法では同期時間を所望の精度以下に短くする必要がある。このように、同期時間を短くすると、同期を行うために必要となる処理の時間が増大し、システムの動作速度が低下してしまう。また、一定時間毎の同期ではなく全てのイベントを対象としたイベントのみによる同期方法も考えられる。しかし、この方法でも発生イベント全てに対して同期をとる必要があるため、システム負荷を増大させてしまう。 However, in the conventional synchronization method, it is necessary to shorten the synchronization time to a desired accuracy or less. Thus, if the synchronization time is shortened, the processing time required to perform synchronization increases, and the operating speed of the system decreases. In addition, a synchronization method using only events for all events instead of synchronization at regular intervals is also conceivable. However, even in this method, since it is necessary to synchronize all occurrence events, the system load increases.
本発明は、上述の問題に鑑みて成されたものであり、システム負荷を増大させることなく、複数のアプリケーションの処理を同期させるシミュレーション同期装置及びその制御方法を提供することを目的とする。 The present invention has been made in view of the above problems, and an object of the present invention is to provide a simulation synchronization apparatus that synchronizes the processing of a plurality of applications without increasing the system load, and a control method therefor.
本発明は、例えば、シミュレーション同期装置として実現できる。本シミュレーション同期装置は、それぞれ固有の仮想時間を有し、独立して動作する複数のシミュレーション実行手段と、各シミュレーション実行手段の仮想時間の進行を同期させ、かつ、複数のシミュレーション実行手段に含まれる第1のシミュレーション実行手段と第2のシミュレーション実行手段との間で送受信される同期イベント及び応答イベントを中継する同期手段とを備え、第1のシミュレーション実行手段は、同期手段を経由して第2のシミュレーション実行手段に同期イベントを送信する同期イベント送信手段と、同期イベントの送信に伴って、第1のシミュレーション実行手段における仮想時間の進行を停止させる停止手段とを備え、同期手段は、第1のシミュレーション実行手段から送信される同期イベントを受信し、第2のシミュレーション実行手段に送信する中継手段を備え、第2のシミュレーション実行手段は、同期イベントを同期手段から受信して、同期イベントに対する処理を行う処理手段と、同期手段から受信した同期イベントに対応する応答イベントを同期手段に送信する応答イベント送信手段とを備え、同期手段は、さらに、第2のシミュレーション実行手段から、応答イベントを受信する応答イベント受信手段と、受信した応答イベントに基づいて、第1のシミュレーション実行手段で処理を行うべき処理時間を決定する決定手段と、決定された処理時間を第1のシミュレーション実行手段へ送信する処理時間送信手段とを備え、第1のシミュレーション実行手段は、さらに、同期手段から受信した処理時間の処理を行うために、停止中の仮想時間の進行を再開させる再開手段と、処理時間の処理を終了した後に処理の終了を同期手段に通知する通知手段とを備え、中継手段は、通知手段で通知された処理の終了に応じて第2のシミュレーション実行手段から受信した応答イベントを、第1のシミュレーション実行手段に送信することを特徴とする。
The present invention can be realized, for example, as a simulation synchronization apparatus. The simulation synchronization apparatus synchronizes the progress of virtual times of a plurality of simulation execution units, each having a unique virtual time, and operating independently, and included in the plurality of simulation execution units. A synchronization unit that relays a synchronization event and a response event that are transmitted and received between the first simulation execution unit and the second simulation execution unit, and the first simulation execution unit includes a second unit via the synchronization unit. A synchronization event transmitting means for transmitting a synchronization event to the simulation execution means, and a stop means for stopping the progress of the virtual time in the first simulation executing means in accordance with the transmission of the synchronization event. Receive synchronization events sent from the simulation execution means of The second simulation execution means receives the synchronization event from the synchronization means and performs processing on the synchronization event; and corresponds to the synchronization event received from the synchronization means. Response event transmitting means for transmitting a response event to the synchronizing means, the synchronizing means further includes a response event receiving means for receiving a response event from the second simulation executing means, and based on the received response event, The first simulation executing means includes a determining means for determining a processing time to be processed by the first simulation executing means, and a processing time transmitting means for transmitting the determined processing time to the first simulation executing means. In addition, in order to process the processing time received from the synchronization means, Comprising a resuming unit for resuming the progress of the virtual time, and a notifying means for notifying the synchronization means the end of the process after completing the processing of the processing time, the relay means, in response to the end of the notification by the notification means processing the response events received from the second simulation executing unit, and transmits to the first simulation executing means.
また、本発明は、例えば、それぞれ固有の仮想時間を有し、独立して動作する複数のシミュレーション実行手段と、各シミュレーション実行手段の仮想時間の進行を同期させ、かつ、複数のシミュレーション実行手段に含まれる第1のシミュレーション実行手段と第2のシミュレーション実行手段との間で送受信される同期イベント及び応答イベントを中継する同期手段とを備えるシミュレーション同期装置の制御方法として実現できる。本制御方法において、前記第1のシミュレーション実行手段は、前記同期手段を経由して前記第2のシミュレーション実行手段に前記同期イベントを送信するステップと、前記同期イベントの送信に伴って、該第1のシミュレーション実行手段における仮想時間の進行を停止させるステップとを実行し、前記同期手段は、前記第1のシミュレーション実行手段から送信される前記同期イベントを受信し、前記第2のシミュレーション実行手段に送信する中継ステップを実行し、前記第2のシミュレーション実行手段は、前記同期イベントを前記同期手段から受信して、前記同期イベントに対する処理を行うステップと、前記同期手段から受信した同期イベントに対応する前記応答イベントを前記同期手段に送信するステップとを実行し、前記同期手段は、さらに、前記第2のシミュレーション実行手段から、前記応答イベントを受信するステップと、前記受信した応答イベントに基づいて、前記第1のシミュレーション実行手段で処理を行うべき処理時間を決定するステップと、前記決定された処理時間を前記第1のシミュレーション実行手段へ送信するステップとを実行し、前記第1のシミュレーション実行手段は、さらに、前記同期手段から受信した処理時間の処理を行うために、停止中の仮想時間の進行を再開させるステップと、前記処理時間の処理を終了した後に処理の終了を前記同期手段に通知するステップとを実行し、前記中継ステップは、前記通知された処理の終了に応じて前記第2のシミュレーション実行手段から受信した応答イベントを、前記第1のシミュレーション実行手段に送信することを特徴とする。
In addition, the present invention, for example, synchronizes the progress of the virtual time of each simulation execution unit and the plurality of simulation execution units each having a unique virtual time and operating independently, and in the plurality of simulation execution units This can be realized as a control method of a simulation synchronization apparatus including synchronization events and response events that are transmitted and received between the first simulation execution means and the second simulation execution means that are included. In the present control method, the first simulation execution means transmits the synchronization event to the second simulation execution means via the synchronization means, and the transmission of the synchronization event causes the first simulation event to be transmitted. Stopping the progress of virtual time in the simulation execution means, and the synchronization means receives the synchronization event transmitted from the first simulation execution means and transmits it to the second simulation execution means The second simulation execution means receives the synchronization event from the synchronization means, performs a process for the synchronization event, and corresponds to the synchronization event received from the synchronization means. Performing a response event to the synchronization means, and The means further includes a step of receiving the response event from the second simulation execution means, and determines a processing time for the first simulation execution means to perform processing based on the received response event. And a step of transmitting the determined processing time to the first simulation executing means, wherein the first simulation executing means further performs processing of the processing time received from the synchronizing means. The step of resuming the progress of the virtual time being stopped and the step of notifying the synchronization means of the end of the processing after finishing the processing of the processing time are performed, and the relaying step includes the notified processing The response event received from the second simulation execution means in response to the end of And transmits to tio down execution unit.
本発明は、例えば、システム負荷を増大させることなく、それぞれの仮想時間を有する複数のアプリケーションの処理を同期させるシミュレーション同期装置及びその制御方法を提供できる。 The present invention can provide, for example, a simulation synchronization apparatus that synchronizes the processing of a plurality of applications having respective virtual times and a control method thereof without increasing the system load.
以下、本発明に係る実施形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に記載された発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。 Hereinafter, embodiments according to the present invention will be described with reference to the drawings. The following embodiments do not limit the invention described in the claims, and all the combinations of features described in the embodiments are essential to the solution means of the present invention. Not exclusively.
[第1の実施形態]
以下では、図1乃至図10を参照して、第1の実施形態について説明する。本実施形態に係るシミュレーション同期装置は、それぞれ固有の仮想時間を有する複数のアプリケーションが独立して行うシミュレーション実行処理をシステム全体の仮想時間に同期させる。さらに、シミュレーション同期装置は、何れか1つのアプリケーションから予め定義された同期イベントが送信されると、当該同期イベントの送信元及び送信先のアプリケーション(第1のシミュレーション実行手段、第2のシミュレーション実行手段)のシミュレーション実行処理を同期させる。ここで、予め定義された同期イベントとは、アプリケーションが他のアプリケーションと同期して処理を実行したい場合に送信するイベントを示す。
[First Embodiment]
Hereinafter, the first embodiment will be described with reference to FIGS. 1 to 10. The simulation synchronization apparatus according to the present embodiment synchronizes simulation execution processing independently performed by a plurality of applications each having a unique virtual time with the virtual time of the entire system. Further, when a predefined synchronization event is transmitted from any one of the applications, the simulation synchronization apparatus transmits the synchronization event transmission source and transmission destination applications (first simulation execution unit, second simulation execution unit). ) The simulation execution process is synchronized. Here, the predefined synchronization event indicates an event transmitted when an application wants to execute processing in synchronization with another application.
また、以下の説明では、本発明のシミュレーション同期装置が1つの情報処理装置内で適用される場合について説明する。具体的に、制御手段として機能する制御部が各アプリケーションの処理をシステム全体の仮想時間に同期させる方法を一例として説明する。しかしながら、本発明は、各アプリケーションが実装された個別の情報処理装置(シミュレーション実行手段)として適用され、制御部が1つの情報処理装置(各情報処理装置間の同期処理を実行する装置、同期手段)として適用されてもよい。さらに、以下で説明する実施形態は、プリンタやファクシミリなどの画像形成装置のシミュレータに本発明を適用した例について説明する。 In the following description, a case where the simulation synchronization apparatus of the present invention is applied within one information processing apparatus will be described. Specifically, a method in which the control unit functioning as the control unit synchronizes the processing of each application with the virtual time of the entire system will be described as an example. However, the present invention is applied as an individual information processing apparatus (simulation execution means) in which each application is mounted, and the control unit is one information processing apparatus (an apparatus for executing synchronization processing between information processing apparatuses, a synchronization means) ) May be applied. Further, in the embodiments described below, an example in which the present invention is applied to a simulator of an image forming apparatus such as a printer or a facsimile will be described.
<情報処理装置100の構成>
図1は、第1の実施形態に係るシミュレーション同期装置としての情報処理装置のハードウェア構成を示す図である。ここでは、主に本発明に関する構成要素について説明を記載する。即ち、本発明は、他の構成要素を含んで構成されてもよい。
<Configuration of
FIG. 1 is a diagram illustrating a hardware configuration of an information processing apparatus as a simulation synchronization apparatus according to the first embodiment. Here, description is mainly given about the component regarding this invention. That is, the present invention may be configured to include other components.
情報処理装置100は、制御手段として機能する中央処理装置(以下、CPUと称す)101を備える。CPUは、バス110を介して、ROM102、RAM103、入力インタフェース104、出力インタフェース106及び記憶装置インタフェース108と接続される。入力インタフェース104は、キーボード、マウス、タブレット等の入力装置105に接続され、操作者からの入力を取得する。出力インタフェース106は、CRTやLCDなどの表示装置107a、プリンタやプロッタなどの出力装置107bに接続され、データ等の表示及び出力行う。記憶装置インタフェース108は、装置内部の記憶装置、例えば、ハードディスク111や、外部記憶装置、例えば、フロッピー(登録商標)ディスクなどの読み取り装置112に接続され、データの入出力を行う。
The
ROM102は、バス110を介してCPU101からアクセス可能な読み出し専用のメモリである。RAM103は、バス110を介してCPU101から読み書き可能なメモリである。ハードディスク111には、プリンタの各機能を実現した処理プログラム111a、シミュレーションのための各種設定データ111b及びファームウェア111cを格納する。
The
プリンタのシミュレーションを行う場合、CPU101は、処理プログラム111a、各種設定データ111b、ファームウェア111cをRAM103にロードして実行する。また、情報処理装置100の基本動作は、基本プログラムであるオペレーティングシステム(以下、OSと称す)を介して実行される。本実施形態では、情報処理装置100のOSとして、Microsoft社のWindows(登録商標)を適用する。しかし、本発明はWindows(登録商標)上のシステムに限定されるものではない。
When performing printer simulation, the
図2は、第1の実施形態に係る情報処理装置100の制御ブロックを示す図である。ここでは、本発明に関する制御ブロックについてのみ説明を記載する。したがって、本発明に係る情報処理装置100は、他の制御ブロックを含んで構成されてもよい。
FIG. 2 is a diagram illustrating a control block of the
情報処理装置100は、アプリケーションとして機能するCPUシミュレータ201、メカシミュレータ202及びシミュレータアプリケーション203を含む。また、CPU101は、各アプリケーションの処理を同期させるための制御手段として機能する制御部204を含む。また、各アプリケーションは、ハードディスク111又は読み取り装置112を介して外部記憶装置からRAM103にロードされて実行される。
The
<各アプリケーションの詳細>
以下では、各アプリケーションの詳細について説明する。CPUシミュレータ201、メカシミュレータ202及びシミュレータアプリケーション203は、それぞれがWindows(登録商標)上で個別に動作するアプリケーションであり、それぞれが独立したプロセスとして存在する。更に、シミュレータアプリケーション203は機能によって複数の独立したアプリケーション223a、223bで構成されてもよい。
<Details of each application>
Details of each application will be described below. The
CPUシミュレータ201は、シミュレーション対象となるCPU(以下、ターゲットCPUと称す)の動作を情報処理装置100上で実現するアプリケーションである。ここで、ターゲットCPUとは、情報処理装置100に搭載されているCPU101ではなく、シミュレーションの対象となる装置(本実施形態ではプリンタとなる。)に搭載され、当該プリンタを制御するためのCPUを示す。CPUシミュレータ201は、ターゲットCPU221の制御プログラム(以下、ターゲットファームウエアと称す)に従って、ターゲットCPU221の端子に対応して定義された仮想入力端子の情報を読み込み、仮想出力端子を制御する。
The
メカシミュレータ202は、アクチュエータ、センサを含む複数の部品からなる機構モデルを情報処理装置100上で擬似的に動作させるアプリケーションである。機構モデルの各要素(以下、機構部品と称す)は、操作者230により形状、種類、動作、機構部品間の干渉と連携条件等が定義される。さらに、センサ、アクチュエータについては外部信号定義が行われる。これら機構部品の定義は、CAD図面から自動設定されるか、専用の機構モデル作成ソフトウェアを操作者230が操作して設定されるか、又は、その両方の組み合わせで設定される。
The
機構部品の種類としては、機能定義がなされるモータ、ソレノイド、クラッチ、センサ、歯車、カム、ローラ等や、単なる物体として定義される部品がある。また、機構部品には、シミュレーションの対象となる装置の構成要素ではなく、装置の動作シミュレーションに必要なものも含まれる。例えば、プリンタのシミュレーションの場合、用紙が該当する。これらの機構部品は、シミュレーションを実行する際に、情報処理装置100の表示装置107a上に2次元、又は3次元のグラフィックとして表示される。
The types of mechanism parts include motors, solenoids, clutches, sensors, gears, cams, rollers, etc., whose functions are defined, and parts that are defined as simple objects. Further, the mechanical parts include not only the constituent elements of the apparatus to be simulated but also those necessary for the operation simulation of the apparatus. For example, in the case of a printer simulation, paper corresponds. These mechanical components are displayed as a two-dimensional or three-dimensional graphic on the
メカシミュレータ202は、CPUシミュレータ201から制御部204を介して送られてきたアクチュエータ動作信号に対応して、該当するアクチュエータの機構モデルを動作させる。さらに、機構定義に基づきアクチュエータに連結された機構部品をアクチュエータの動作に関連付けて動作させる。また、操作者230による入力に対する動作については、操作者230による入力装置105への操作を擬似的に再現し、擬似操作に応じて対象となる機構部品を動作させる。さらに、メカシミュレータ202は、機構部品間の干渉や連携定義に従って、関連する全ての機構部品の動作を再現する。これら機構部品の動作は、表示装置107aに表示されたグラフィックとして再現されるとともに、機構モデルの動作の結果として発生する出力信号をCPUシミュレータ201へ制御部204を介して送信する。例えば、機能モデルとして定義されたセンサでは、予め定義された作用が発生すると、作用に応じたセンサ信号を発生させる。
The
シミュレータアプリケーション203は、プリンタの各種試験を行うためのアプリケーションである。例えば、仮想装置に対する外的作用を設定したりシミュレーションの結果を解析、表示、保存する機能を有する。シミュレーションの対象となる実際の装置は、その装置を使用する操作者230やその装置に接続されたパーソナルコンピュータによって、外部から様々な作用を受けて動作する。したがって、シミュレータアプリケーション203は、これら外的作用の中で、メカシミュレータ202で設定される機構的な外的作用以外のものを擬似的に設定する機能を提供する。例えばプリンタの場合、機構的な外的作用としては、給紙カセットの操作や消耗部品の取り外し、取り付け等が挙げられる。一方、それ以外の外的作用としては、ホストPCからの各種命令の受信、操作者230によるオペレーションパネルの操作、環境温度の変化等が挙げられる。
The
さらに、シミュレータアプリケーション203は、これらの外的作用を設定するための専用のユーザインターフェース(以下、UIと称す)を提供する。シミュレータアプリケーション203は、UIによる設定に従って制御部204を介してCPUシミュレータ201やメカシミュレータ202に所定の外的作用を与える。具体的に、シミュレータアプリケーション203は、図1に示すハードディスク111に格納された設定データ111bを読み出して、CPUシミュレータ201やメカシミュレータ202に対して一連の外的作用を与えてもよい。この場合、設定データ111bには、連続した外的作用の設定手順を記述したマクロ命令ファイルや一連の外的作用データを記述したファイルが格納されている。
Furthermore, the
また、シミュレータアプリケーション203は、上述の外的作用の設定機能のほかに、シミュレーションの結果として出力される各種データの解析、試験目的に応じた各種情報の表示、及びハードディスク111に保存する機能を有する。具体的には、各種信号の変化をタイミングチャートとして表示したり、一連の動作を予め想定された動作と比較してその正当性を評価する。また、正当性の評価結果を事象として可視的に表示する機能を有している。
In addition to the above-described external action setting function, the
これらのCPUシミュレータ201、メカシミュレータ202及びシミュレータアプリケーション203は、それぞれが独立した仮想時間で動作を行う。したがって、複数のアプリケーションに関連する動作をシミュレーションする場合、システム全体としての仮想時間に同期させる必要がある。そのため、本実施形態に係る情報処理装置100は、複数のアプリケーションの処理をシステム全体の仮想時間に同期させるとともに、アプリケーション間で送受信されるイベントを中継する制御部204を備える。
The
<制御部204の詳細>
以下では、制御部204の詳細について説明する。制御部204は、制御ブロックとして、配線部206、システム管理部210、決定部213、開始部212及び導出部215を備える。また、制御部204と各アプリケーションとは、それぞれI/F205(a〜d)で接続される。I/F205(a〜d)は、例えば、図1に示すバス110を利用して実現されてもよい。I/F205(a〜d)は、制御部204と各アプリケーションとの接続を中継し、制御部204の外部インタフェースを各アプリケーションのインタフェース仕様に対応させる。制御部204は、これらの制御ブロックを統括的に制御して、各アプリケーション間でのデータ伝送管理、同期処理、データ伝送履歴(以下、ログと称す)の取得を行う。
<Details of the
Below, the detail of the
システム管理部210は、ハードディスク111の設定データ111bに予め設定されたシステム構成の定義情報に従ってI/F205(a〜d)の構成を管理する。配線部206は、配線データベースに予め設定された配線定義情報に基づき、各アプリケーション間の接続を仮想的に実現する。ここで配線データベースとは、アプリケーションと他のアプリケーションとを接続する信号線の設定を一元的に管理しているデータベースである。信号線は、例えば、一意な名称を持つ。したがって、配線部206は、この名称をキーにして各I/F205(a〜d)に対して各アプリケーションの送受信を設定する。
The
また、配線部206は、各アプリケーションから送信されるイベントを中継して、送信先のアプリケーションへ送信する。そのため、配線部206は、送信部207、受信部208及び中継部209を備える。受信部208は、アプリケーションから送信されるイベントを受信する。例えば、受信部208は、アプリケーションから送信される同期イベントや応答イベントを受信する。送信部207は、送信元のアプリケーションから受信したイベントの送信、及び、各アプリケーションの処理タイミングを制御するための送信を行う。中継部209は、送信部207及び受信部208を制御して、各アプリケーションから送信されるイベントを送信先のアプリケーションに送信させる。また、後述のイベント同期処理における同期イベントの指定、同期イベントに対する応答イベントの指定は配線データベースに対して行う。ここで、イベント同期処理とは、あるアプリケーションと他のアプリケーションとを同期して処理を行わせる処理を示し、あるアプリケーションから送信される同期イベントによって処理を開始する。
In addition, the
導出部215及び開始部212は、複数の独立プロセスである各アプリケーションを組み合わせて動作させるために、それぞれの持つ仮想時間を同期させる制御ブロックである。ここでの同期処理(以下、全体同期処理と称す)は、イベント同期処理とは異なり、アプリケーション全体の処理を一定間隔で同期させる。したがって、イベント同期処理は、全体同期処理よりも詳細な同期処理となる。
The
導出部215は、導出手段として機能し、複数のアプリケーションを同期させるための基準となる基準同期時間を導出する。具体的に、導出部215は、各アプリケーションで適用されている仮想時間の情報を取得して、取得した仮想時間に基づいて基準同期時間を導出する。開始部212は、開始手段として機能し、導出された基準同期時間に従って各アプリケーションでの処理を開始させる。全体同期処理の詳細については、図4を用いて後述する。
The deriving
決定部213は、上述したイベント同期処理を統括的に制御するための制御ブロックである。イベント同期処理は、何れか1つのアプリケーションから送信された同期イベントをトリガに、当該同期イベントに関連するアプリケーションの処理を同期させる。以下では、同期イベントを送信するアプリケーションを送信元のアプリケーション(第1のシミュレーション実行手段)と称し、同期イベントを受信するアプリケーションを送信先のアプリケーション(第2のシミュレーション実行手段)と称す。また、送信先のアプリケーションは、同期イベントに対する応答イベントを送信する。
The
本実施形態によれば、イベントに対する同期処理を実現するため、送信元のアプリケーションが同期イベントを送信してから応答イベントを受信するまでに、進行される送信元及び送信先のアプリケーションの仮想時間を一致させる。具体的に、送信元のアプリケーションは、同期イベントを送信すると、自身の仮想時間の進行を停止する。一方、送信先のアプリケーションは、同期イベントを受信すると、当該同期イベントに対する処理を自身の仮想時間に従って処理する。さらに、送信先のアプリケーションは、当該処理が完了すると、同期イベントに対する応答イベントを送信する。制御部204は、送信先のアプリケーションが同期イベントに対する処理を実行するために必要とした時間を送信元のアプリケーションへ通知する。送信元のアプリケーションは、受信した時間に従って停止している仮想時間の進行を再開させて処理を実行する。
According to the present embodiment, in order to realize the synchronization process for the event, the virtual time of the transmission source and destination applications that are progressed from when the transmission source application transmits the synchronization event to when the response event is received. Match. Specifically, when the transmission source application transmits the synchronization event, the transmission source application stops the progress of its own virtual time. On the other hand, when receiving the synchronization event, the transmission destination application processes the synchronization event according to its own virtual time. Furthermore, when the processing is completed, the transmission destination application transmits a response event to the synchronization event. The
上述のイベント同期処理を実現するため、決定部213は、決定手段として機能し、送信先のアプリケーションから受信した応答イベントに基づいて、送信元のアプリケーションで処理を行うべき処理時間を決定する。また、本実施形態によれば、決定部213は、計時手段として機能する計時部214を備える。計時部214は、送信先のアプリケーションへ同期イベントを送信してから、当送信先のアプリケーションから応答イベントを受信するまでの時間を計時する。したがって、決定部213は、計時部214によって計時された時間を処理時間として決定する。処理時間が決定されると、送信部207は、決定部213によって決定された処理時間を送信元のアプリケーションへ送信する。送信元のアプリケーションは、受信した処理時間に従って処理を実行する。
In order to implement the event synchronization process described above, the
<各アプリケーションの共通機能>
次に、図3を参照して、イベント同期処理を行うために必要となる各アプリケーションの共通機能について説明する。図3は、第1の実施形態に係る各アプリケーションの共通の制御ブロックを示す図である。ここでは、イベント同期処理を行うための制御ブロックについてのみ説明を記載する。したがって、各アプリケーションは、他の制御ブロックを含んで構成されてもよい。また、ここでは、説明を容易にするため、CPUシミュレータ201、メカシミュレータ202及びシミュレータアプリケーション203を概念的に1つのブロックで説明する。さらに、ここで、説明するアプリケーションは、それぞれが同期イベントを送信するアプリケーション及び同期イベントを受信するアプリケーションとして機能する。
<Common functions of each application>
Next, with reference to FIG. 3, a description will be given of common functions of each application necessary for performing event synchronization processing. FIG. 3 is a diagram illustrating a common control block for each application according to the first embodiment. Here, only the control block for performing the event synchronization process will be described. Therefore, each application may be configured to include other control blocks. Here, for ease of explanation, the
各アプリケーションは、通信部301、処理部302、停止部303及び再開部304を備える。通信部301は、送信部305及び受信部306を備え、制御部204との通信を制御する。停止部303及び再開部304は、イベント同期処理を実現するための制御ブロックとなる。処理部302は、処理手段として機能し、制御部204からみの指示により各種処理を実行する。
Each application includes a
送信部305は、送信手段として機能し、例えば、他のアプリケーションと同期して処理を行いたい場合に、通信部301を介して制御部204へ同期イベントを送信する。停止部303は、同期イベントが送信されると自身の仮想時間の進行を停止させるとともに、実行中の処理を停止させる。ここで、停止部303は、再開部304に対して、仮想時間の進行を停止する際に処理されていたデータを通知することが望ましい。このデータは、再開部304が停止中の処理を再開するために必要となるデータを示す。したがって、再開部304は、停止中の仮想時間の進行を再開させるとともに、このデータを用いて停止中の処理を再開させる。具体的に、再開部304は、同期イベントの送信先のアプリケーションが当該同期イベントに対する処理を実行するために必要となる処理時間を制御部204から受信すると、停止中の処理を再開させる。
The
<全体同期処理>
次に、図4を参照して、本発明の前提となる各アプリケーションの処理を同期させる全体同期処理について説明する。図4は、各アプリケーションの処理を同期させる全体同期処理を説明する図である。
<Overall synchronization processing>
Next, with reference to FIG. 4, the overall synchronization processing for synchronizing the processing of each application which is the premise of the present invention will be described. FIG. 4 is a diagram for explaining overall synchronization processing for synchronizing the processing of each application.
Tsは、基準同期時間を示す。各アプリケーションは、開始部212によって通知される基準同期時間Tsに従って処理を実行する。実線401は、各アプリケーションが個々の仮想時間に従って基準同期時間分の処理を実行している状態を示す。破線402は、当該アプリケーションが基準同期時間分の処理を完了し、他の全てのアプリケーションが基準同期時間分の処理を完了するまでに仮想時間の進行を停止している状態を示す。403は、各アプリケーションで基準同期時間Tsに従った処理が開始されてから、全てのアプリケーションが基準同期時間分の処理を完了するまでの時間となる1同期単位を示す。404、405も同様に異なるパターンの一同期単位を示す。
Ts indicates a reference synchronization time. Each application executes processing according to the reference synchronization time Ts notified by the
図4に示すように、各アプリケーションは、同じ基準同期時間Tsであっても、それぞれが持っている仮想時間に対応させて処理を行うと、処理を完了するまでの実時間が異なる。このような制御を実現するために各アプリケーションは、受信した基準同期時間分の処理が完了すると、他の全てのアプリケーションが処理を完了するまで仮想時間の進行を停止させる。例えば、1同期単位403においては、アプリケーション3が処理を完了するまで、他のアプリケーションは基準同期時間分の処理を完了した後に仮想時間を停止することとなる。全てのアプリケーションが基準同期時間分の処理を完了すると、開始部212は、全てのアプリケーションに対して再び基準同期時間Tsに従った処理を開始させる信号を送信する。これにより、各アプリケーションは、再び基準同期時間Tsに従って処理を開始する。このように、全体同期処理は、全てのアプリケーションの処理を一定の間隔で同期させる。
As shown in FIG. 4, even if each application has the same reference synchronization time Ts, when processing is performed in correspondence with the virtual time that each application has, the actual time until the processing is completed differs. In order to realize such control, each application, when the processing for the received reference synchronization time is completed, stops the progress of the virtual time until all other applications complete the processing. For example, in one
次に、図5及び図6を参照して、各アプリケーション及び制御部204の全体同期処理の制御について説明する。図5は、各アプリケーションにおける全体同期処理の制御手順について説明するフローチャートである。ここで説明する処理は、各アプリケーション、即ち、CPUシミュレータ201、メカシミュレータ202及びシミュレータアプリケーション203が行う全体同期処理の共通処理を示す。
Next, with reference to FIG. 5 and FIG. 6, control of the overall synchronization processing of each application and the
まず、ステップS501において、アプリケーションは、仮想時間を停止する。具体的に、アプリケーションは、仮想時間を停止し、仮想時間に従って実行される処理も停止する。次に、ステップS502において、外部(ここでは、制御部204となる)から所定のI/Fを介して仮想時間の進行指示を受信したか否かを判定する。受信していなければ、定期的に判定を繰り返す。一方、受信すると、ステップS503において、アプリケーションは、仮想時間の進行を開始するとともに、仮想時間に従って実行される処理も開始する。 First, in step S501, the application stops the virtual time. Specifically, the application stops the virtual time, and the process executed according to the virtual time is also stopped. Next, in step S502, it is determined whether a virtual time progression instruction has been received from the outside (here, the control unit 204) via a predetermined I / F. If not received, the determination is repeated periodically. On the other hand, when received, in step S503, the application starts the progress of the virtual time and also starts a process executed according to the virtual time.
次に、ステップS504において、アプリケーションは、仮想時間の進行指示が時間指定(基準同期時間Tsの指定)を伴っているか否かを判定する。時間指定を伴っている場合には、S505以下の時間限定処理に遷移する。一方、時間指定を伴っていない場合には、S511以下の連続実行処理に進む。 Next, in step S504, the application determines whether or not the virtual time progress instruction is accompanied by time designation (designation of the reference synchronization time Ts). When time designation is accompanied, the process proceeds to a time limit process of S505 or lower. On the other hand, if no time is specified, the process proceeds to the continuous execution process from S511.
時間指定を伴う場合、ステップS505において、アプリケーションは、指定された時間(仮想上の時間)が経過しているか否かを判定する。指定時間が経過していない場合、ステップS506において、アプリケーションは、仮想時間に従って実行される処理上の内部イベント(外部に対して送信すべき変化)を確認する。内部イベントが発生している場合、ステップS507で内部イベントを仮想時間上のタイミング情報とともに外部に送信した後、S501に戻って仮想時間を停止する。 When time designation is involved, in step S505, the application determines whether or not the designated time (virtual time) has elapsed. If the specified time has not elapsed, in step S506, the application confirms an internal event (change to be transmitted to the outside) on the process executed according to the virtual time. If an internal event has occurred, the internal event is transmitted to the outside together with timing information on the virtual time in step S507, and then the process returns to S501 to stop the virtual time.
S506で内部イベントが発生していない場合、ステップS509において、アプリケーションは、外部からのイベントとなる外部イベントを受信している否かを通信部301によって確認する。外部イベントがあれば、ステップS510において、アプリケーションは、外部イベントに対する内部処理を行うとともに外部に対して外部イベント受付の仮想時間上のタイミングを送信した後、S501に戻って仮想時間を停止する。
If no internal event has occurred in step S506, in step S509, the application uses the
S506で内部イベントが発生せず、S509で外部イベントも受信していない場合、指定された仮想時間が経過するまでS505以下の処理を継続する。 If no internal event occurs in S506 and no external event is received in S509, the processing from S505 is continued until the designated virtual time elapses.
S505で指定された仮想時間の処理が経過すると、ステップS508において、アプリケーションは、外部に指定時間の処理終了を送信してS501に戻り仮想時間を停止する。 When the processing of the virtual time specified in S505 has elapsed, in step S508, the application transmits a processing end of the specified time to the outside, returns to S501, and stops the virtual time.
一方、S504で仮想時間の進行指示が時間指定を伴わない場合、ステップS511において、アプリケーションは、外部から処理の終了指示が通知されているか否かを判定する。終了指示が通知されていない場合、アプリケーションは、S511以下の処理で外部からの終了指示まで処理を繰り返し継続する。その間の、内外のイベントに対する処理(S512〜S515)は、時間指定時のS506〜S510と同様であるため説明を省略する。S511で、外部からの終了指示を受けている場合、S516でそのときの仮想時間上のタイミングを外部に送信し、S501に戻って仮想時間を停止する。 On the other hand, if the virtual time advance instruction is not accompanied by a time designation in S504, in step S511, the application determines whether a process end instruction is notified from the outside. If the end instruction has not been notified, the application repeatedly repeats the process until the end instruction from the outside in the processing of S511 and the subsequent steps. The processing (S512 to S515) for the internal and external events in the meantime is the same as S506 to S510 at the time designation time, and the description thereof will be omitted. If an end instruction from the outside is received in S511, the timing on the virtual time at that time is transmitted to the outside in S516, and the virtual time is stopped by returning to S501.
図6は、制御部204における全体同期処理の制御手順について説明するフローチャートである。ここでの処理は、制御部204によって統括的に制御される。
FIG. 6 is a flowchart for explaining the control procedure of the overall synchronization process in the
まず、ステップS601において、制御部204は、仮想上の基準同期時間Tsの処理実行を各アプリケーションに指示する。次に、ステップS602において、制御部204は、全てのアプリケーションが基準同期時間Tsに従った処理を終了したか否かを判定する。ここで、制御部204は、各アプリケーションから処理の終了を示す通知を受信しているか否かを判定する。全アプリケーションから終了通知を受信している場合、S601に処理を遷移させ、再び1同期分の処理を行わせる。
First, in step S601, the
一方、S602で何れかのアプリケーションから終了通知を受信していない場合、ステップS603において、制御部204は、アプリケーションからのイベント受信をチェックする。何れかのアプリケーションからイベントを受信している場合、ステップS604において、制御部204は、送信先のアプリケーションにイベントを送信する。その後、ステップS605において、制御部204は、全アプリケーションに対して同期までの仮想上の残り時間(1同期時間からイベント発生、または、イベント送信間での仮想時間を引いた時間)分の処理実行を指示する。その後、制御部204は、処理をS602に遷移させる。一方、S603でアプリケーションからイベントを受信していないと判断した場合、制御部204は、処理をS602に遷移させる。
On the other hand, if an end notification has not been received from any application in S602, the
次に、図7を参照して、全体同期処理におけるシステム全体の状況について説明する。図7は、全体同期処理における制御部204及び各アプリケーションの連携状況を示す図である。ここでは、説明を容易にするため、アプリケーションを2つに想定する。しかしながら、全体同期処理は、同様の方法で3つ以上のアプリケーションに対して適用できる。また、ここでは、基準同期時間に従った処理の途中にアプリケーション1からアプリケーション2へイベントが送信される場合を想定している。図7に示す白丸は、制御部204又は各アプリケーションの処理を示す。各処理からの矢印は、情報の流れを示す。
Next, referring to FIG. 7, the overall system status in the overall synchronization processing will be described. FIG. 7 is a diagram illustrating the cooperation status of the
ステップS701において、制御部204は、各アプリケーションに対して基準同期時間Tsの処理実行を指示する。ステップS702、S703において、各アプリケーションは、処理実行の指示を受信すると、それぞれの仮想時間による基準同期時間分の処理を開始する。
In step S701, the
基準同期時間に従った処理の実行中に、ステップS704において、アプリケーション1は、イベントを送信する。アプリケーション1が送信したイベントを受信すると、ステップS705において、制御部204は、アプリケーション2にイベントを送信するとともに、各アプリケーションに対して残りの基準同期時間分の処理実行を指示する。ステップS706において、アプリケーション2は、アプリケーション1が送信したイベントを受信する。続いて、ステップS707及びS708において、各アプリケーションは、制御部204からの処理実行の指示を受信し、処理を開始する。
During execution of the process according to the reference synchronization time, the
ここで、残りの基準同期時間はアプリケーション1がTs−T1、アプリケーション2がTs−T2となる。基準同期時間に従った処理を開始してから各アプリケーションのイベント発生までの時間は実時間上は同じ時間になる。しかし、それぞれのアプリケーションの実時間に対する仮想時間の進行速度が異なるため、仮想時間T1、T2は異なる。
Here, the remaining reference synchronization time is Ts-T1 for
ステップS709乃至S713は、アプリケーション2からアプリケーション1へのイベントが発生した場合について示す。これらの処理は、S704乃至S708の処理と同様であるため、説明を省略する。
Steps S709 to S713 show a case where an event from the
その後、ステップS714において、アプリケーション1は、指定時間分の処理を終了し、終了通知を制御部204へ送信し、仮想時間を停止させる。ステップS715において、制御部204は、アプリケーション1から送信された終了通知を受信する。一方、ステップS716において、アプリケーション2は、指定時間分の処理を終了し、終了通知を制御部204へ送信し、仮想時間を停止させる。ステップSS717において、制御部204は、アプリケーション2から送信された終了通知を受信する。ここで、制御部204は、全てのアプリケーションから終了通知を受信したと判断し、各アプリケーションに対してS701と同様に基準同期時間Tsの処理実行を指示する。その後、ステップS718及びS719において、各アプリケーションは、処理実行の指示を受信すると、再び、それぞれの仮想時間による基準同期時間分の処理を開始する。
Thereafter, in step S714, the
このように、本実施形態に係る情報処理装置100は、全体同期処理を実行する。しかしながら、全体同期処理だけでは1つのイベントに関連するアプリケーションの処理を同期させることは難しい。この問題について、図8を参照して説明する。図8は、全体同期処理を行っている間に発生するイベントが各アプリケーションの仮想時間上でどのようなタイミングとして捕らえられるかを説明する図である。
Thus, the
S704でアプリケーション1から送信されるイベントは、アプリケーション1にとっては同期処理開始から仮想時間T1後に発生している。しかしながら、S706でアプリケーション2がイベントを受信する時間は、アプリケーション2にとっては同期処理開始から仮想時間T2後として捕らえられる。
The event transmitted from the
また、S709でアプリケーション2から送信されるイベントは、アプリケーション2にとってはS706からS709までの仮想時間T3で発生している。しかしながら、S711でアプリケーション1がイベントを受信する時間は、アプリケーション1にとってはS704からS711までの仮想時間T4となる。
The event transmitted from the
ここで、図8に示すように、イベントの発生時点においてT1>T2、T3>T4となり、各アプリケーションにおける仮想時間の進行状況が異なる。例えば、これらのイベントに対する処理を正確にシミュレーションしたい場合、各アプリケーションにおける仮想時間の進行状況をイベントに対応させて同期させる必要がある。本実施形態における情報処理装置100は、このようなイベントに対する各アプリケーションの処理も同期させるため、イベント同期処理を行う。
Here, as shown in FIG. 8, T1> T2 and T3> T4 at the time of occurrence of the event, and the progress of virtual time in each application is different. For example, when it is desired to accurately simulate processing for these events, it is necessary to synchronize the progress of virtual time in each application in correspondence with the event. The
<イベント同期処理>
次に、図9及び図10を参照して、本発明の特徴となる全体同期処理にイベント同期処理を追加した制御について説明する。図9は、第1の実施形態に係るイベント同期処理を含む全体同期処理の処理手順を示すフローチャートである。以下で説明する処理は、制御部204によって統括的に制御される。ここで、図6を用いて説明した処理と同様の処理については、説明を省略する。即ち、S901乃至S903の処理は、S601乃至S603の処理と同様であるため説明を省略する。
<Event synchronization processing>
Next, control in which event synchronization processing is added to the overall synchronization processing, which is a feature of the present invention, will be described with reference to FIGS. FIG. 9 is a flowchart illustrating the processing procedure of the overall synchronization process including the event synchronization process according to the first embodiment. The processing described below is comprehensively controlled by the
何れかのアプリケーションからイベントを受信している場合、ステップS904において、S604と同様に、他のアプリケーションに受信したイベントを送信する。さらに、制御部204は、イベントが同期イベントであった場合に必要となる計時部214による計時を開始する。計時部214は、同期イベントを送信先のアプリケーションへ送信してから、送信先のアプリケーションから同期イベントに対する応答イベントを受信するまでの時間を計時する。その後、図6のフローチャートでは、全アプリケーションに対して基準同期時間までの処理実行を指示して、S602の待機処理に遷移していた。しかし、本実施形態では、イベント同期処理を行うために以下の処理が異なる。
If an event has been received from any application, the received event is transmitted to another application in step S904, as in S604. Furthermore, the
ステップS905において、制御部204は、発生したイベントが予め定義された同期イベントであるか否かを判定する。同期イベントであればS906以降のイベント同期処理を行う。ここで、同期イベントの送信元のアプリケーションに含まれる送信部305は、同期イベント送信手段として機能し、他のアプリケーションと同期して処理を行いたい場合に制御部204を中継して送信先のアプリケーションへ予め定義された同期イベントを送信する。その後、送信元のアプリケーションは、停止部303によって、自身の仮想時間の進行を停止する。一方、同期イベントでない場合、S912の処理へ遷移する。
In step S905, the
ステップS906において、制御部204は、同期イベントを送信した送信元のアプリケーション以外のアプリケーションに対して時間設定のない連続実行を指示する。ここで、送信元のアプリケーションは、仮想時間を停止している。その後、ステップS907において、制御部204は、何れかのアプリケーションからイベントが送信されているか否かを判定する。イベントが送信されている場合、ステップS908において、制御部204は、同期イベントに対して予め定義された応答イベントであるか否かを判定する。ここで、応答イベントでない場合、ステップS913において、制御部204は、全アプリケーションにイベントを送信して再びS907のイベント待ちに遷移する。応答イベントである場合、制御部204は、処理をS909に遷移させる。この応答イベントは、送信先のアプリケーションが送信したものとなる。このとき、送信先のアプリケーションに含まれる送信部305は、応答イベント送信手段として機能し、同期イベントに対する処理が終了すると、制御部204へ応答イベントを送信する。
In step S906, the
一方、イベントが応答イベントである場合、ステップS909において、制御部204は、同期イベントの送信元のアプリケーションに対して、処理時間を送信して停止中の処理を再開させる。ここで、処理時間とは、同期イベントに対する処理を実行するために送信先のアプリケーションが必要とした時間を示す。この処理時間は、決定部213によって決定される。具体的に、決定部213は、計時部214によって計時された同期イベントを送信してから応答イベントを受信するまでの時間を処理時間として決定する。さらに、送信部207は、処理時間送信手段として機能し、決定された処理時間を送信先のアプリケーションへ送信する。処理時間を受信すると、送信元のアプリケーションは、制御部204から受信した処理時間の処理を行うために、停止中の仮想時間の進行を再開させる。
On the other hand, if the event is a response event, in step S909, the
続いて、ステップS910において、制御部204は、送信元のアプリケーションが指定時間の処理を終了したか否かを判定する。具体的に、制御部204は、送信元のアプリケーションからの終了通知を受信していると、送信元のアプリケーションが指定時間の処理を終了したと判定する。ここで、送信元のアプリケーションに含まれる送信部305は、通知手段として機能し、処理部302が処理時間分の処理を終了した後に処理の終了を制御部204へ通知する。一方、受信していない場合、制御部204は、定期的にS910の処理を繰り返す。
Subsequently, in step S910, the
ステップS911において、制御部204は、送信元のアプリケーションに対して応答イベントを送信する。その後、ステップS912において、制御部204は、全てのアプリケーションに対して基準同期時間までの残りの処理実行を指示する。これに対する各アプリケーションのイベント同期処理は、図5を用いて説明した処理と同様である。
In step S911, the
次に、図10を参照して、イベント同期処理におけるシステム全体の状況について説明する。図10は、イベント同期処理における制御部204及び各アプリケーションの連携状況を示す図である。ここでは、説明を容易にするため、アプリケーションを2つに想定する。しかしながら、イベント同期処理は、同様の方法で3つ以上のアプリケーションに対して適用できる。図10に示す白丸は、制御部204又は各アプリケーションの処理を示す。各処理からの矢印は、情報の流れを示す。
Next, with reference to FIG. 10, the overall system status in the event synchronization process will be described. FIG. 10 is a diagram illustrating a cooperation status of the
ステップS1001において、制御部204は、各アプリケーションに対して基準同期時間Tsの処理実行を指示する。ステップS1002、S1003において、各アプリケーションは、処理実行の指示を受信すると、それぞれの仮想時間による基準同期時間分の処理実行を開始する。
In step S1001, the
基準同期時間Tsに従った処理の実行中に、ステップS1004において、アプリケーション1は、同期イベントを送信する。ここで、アプリケーション1は、仮想時間を停止するとともに、処理を停止する。アプリケーション1が送信した同期イベントを受信すると、ステップS1005において、制御部204は、アプリケーション2に同期イベントを送信するとともに、アプリケーション2に対して時間制限のない連続処理実行を指示する。さらに、制御部204は、ここで計時部214による計時を開始させる。
During execution of processing according to the reference synchronization time Ts, in step S1004, the
ステップS1006、S1007において、アプリケーション2は、同期イベント及び連続処理実行の指示を受信し、連続実行処理を開始する。その後、ステップS1008において、アプリケーション2は、同期イベントに対する処理を実行した後に、同期イベントに対する応答イベントを送信する。ここで、応答イベントの送信は、同期イベントを受信してから仮想時間T3時間後となる。さらに、応答イベントを送信すると、アプリケーション2は、仮想時間の進行を停止するとともに、処理を停止する。
In steps S1006 and S1007, the
ステップS1009において、制御部204は、応答イベントを受信すると、決定部213により上述した処理時間を決定し、決定した処理時間(T3)をアプリケーション1へ送信する。ここで、制御部204に含まれる受信部208は、応答イベント受信手段として機能し、アプリケーション2から応答イベントを受信する。指示された処理時間を受信すると、ステップS1010において、アプリケーション1は、停止中の仮想時間の進行を再開させ、指定された時間(T3)の処理を実行する。その後、ステップS1011において、アプリケーション1は、指定時間(T3)の処理が終了したことを報知するために終了通知を送信する。
In step S <b> 1009, when the
終了通知を受信すると、ステップS1012において、制御部204は、アプリケーション1に応答イベントを送信するとともに、全てのアプリケーションに対しそれぞれの残り時間の処理実行を指示する。ステップS1013において、アプリケーション1は、応答イベントを受信する。この場合の残り時間は、アプリケーション1でTs−(T1+T3)、アプリケーション2でTs−(T2+T3)となる。その後の基準同期終了、次の全体同期処理の再開は図7と同様な処理であるため説明を省略する。
When the end notification is received, in step S1012, the
このように、情報処理装置100は、アプリケーション2が同期イベントを受信してから応答イベントを送信するまでの仮想時間の進行と、アプリケーション1が同期イベントを送信してから応答イベントを受信するまでの仮想時間の進行とを一致させうる。したがって、アプリケーション1及びアプリケーション2は、同期イベントに対する処理を仮想的に同期させて行うことができる。
As described above, the
以上説明したように、本実施形態に係る情報処理装置100は、それぞれ固有の仮想時間を有し、独立して動作するアプリケーションと、各アプリケーションの処理をシステム全体の仮想時間に同期させる。これに加えて、本情報処理装置100は、同期イベントが送信された場合に、送信先のアプリケーションにおける同期イベントに対する処理時間と、送信元のアプリケーションが同期イベントを送信してから応答イベントを受信するまでの時間とを同期させる。これにより、本情報処理装置100は、特定のアプリケーション間の処理について時間精度の高い同期処理を行うことができる。したがって、本情報処理装置100は、システム負荷を増大させることなく、それぞれの仮想時間を有する複数のアプリケーションの処理を同期させうる。
As described above, the
なお、本発明は、上述の実施形態に限らず様々な変形が可能となる。例えば、本情報処理装置100は、送信先のアプリケーションへ同期イベントを送信してから、当該送信先のアプリケーションから応答イベントを取得するまでの時間を計時する。これにより、本情報処理装置100は、仮想時間を停止している送信元のアプリケーションに対して、送信先のアプリケーションが同期イベントに対する処理に要した処理時間を通知することができる。よって、本情報処理装置100は、容易に、イベント同期処理を実現することができる。
The present invention is not limited to the above-described embodiment, and various modifications can be made. For example, the
また、本情報処理装置100は、独立した仮想時間を有する複数のアプリケーションの処理を同期させるために、システム全体の仮想時間に同期させた基準同期時間を導出し、各アプリケーションの処理を制御する。これにより、本情報処理装置100は、システム全体の同期処理を大きな時間単位で効率良く行い、さらに、特定のアプリケーション間の処理について時間精度の高い同期処理を行うことができる。したがって、本情報処理装置100は、システム負荷を増大させることなく、それぞれの仮想時間を有する複数のアプリケーションの処理を同期させうる。
In addition, in order to synchronize the processing of a plurality of applications having independent virtual times, the
また、本実施形態では、シミュレーション同期装置として1つの情報処理装置100に本発明を適用したが、複数の装置間においても適用することが可能である。例えば、アプリケーションを動作させる複数のアプリケーション(情報処理装置)と、複数のアプリケーションに含まれる第1、第2アプリケーション間の処理を同期させるサーバ(情報処理装置)との間にも適用することができる。この場合、上述した各アプリケーションの機能が各アプリケーションに実装され、上述した制御部204の機能がサーバに実装される。これにより、複数の情報処理装置を有する大規模なシミュレーションも可能となる。
In the present embodiment, the present invention is applied to one
[第2の実施形態]
次に、図11乃至図13を参照して、第2の実施形態にいついて説明する。本実施形態は、同期イベントの送信先のアプリケーションが、同期イベントに対する処理を完了した後に応答イベントを送信するのに先だって、当該処理を開始する前に応答イベントを送信する予定時間を通知する。これにより、本実施形態に係る情報処理装置100は、送信元及び送信先のアプリケーションにおいて、上述した処理時間に対応する処理を平行して実行することができる。
[Second Embodiment]
Next, the second embodiment will be described with reference to FIGS. In the present exemplary embodiment, prior to the transmission of a response event after the synchronization event transmission destination application completes the processing for the synchronization event, the scheduled time for transmitting the response event is notified. Thereby, the
具体的に、第1の実施形態で想定した状況と本実施形態で想定する状況との違いについて説明する。第1の実施形態では、同期イベントをトリガに送信先のアプリケーションと送信元のアプリケーションとを、それぞれ交互に処理を実行させる場合を説明した。これは、送信先のアプリケーションが仮想時間にともない進行する処理を実行してはじめて応答イベントの内容、及び、イベント発生タイミングが明確になる場合の処理である。例えば、マルチCPU構成における2つのCPU(CPU1、CPU2)の連携処理を2つのCPUシミュレータを同期連携させてシミュレーションするシステムにおいて考えられる。具体的に、CPU1からCPU2への信号をトリガに、CPU2の処理が実行された後に、CPU1へ何らかの応答が返るケースをシミュレーションする場合、CPU2の応答イベントの内容、タイミングは、CPU2の処理を実行してみないと決まらない。
Specifically, the difference between the situation assumed in the first embodiment and the situation assumed in the present embodiment will be described. In the first embodiment, the case has been described in which the transmission destination application and the transmission source application are alternately executed by using a synchronization event as a trigger. This is processing when the content of the response event and the event occurrence timing become clear only after the transmission destination application executes processing that progresses with virtual time. For example, it is conceivable in a system that simulates the cooperation processing of two CPUs (CPU1, CPU2) in a multi-CPU configuration by synchronizing two CPU simulators together. Specifically, when simulating a case where a response is returned to the
しかし、アプリケーションによっては同期イベントを受信した時点で、そのときの同期イベントの内容、及び、その他の状況により直ちに応答イベントの内容と、タイミングを決定できる場合がる。例えば、CPUモータの回転速度をフィードバック制御する制御系のシミュレーションシステムにおいて考えられる。 However, depending on the application, when the synchronization event is received, the content of the response event and the timing of the response event may be determined immediately depending on the content of the synchronization event at that time and other situations. For example, it can be considered in a simulation system of a control system that performs feedback control of the rotation speed of a CPU motor.
このシミュレーションシステムは、モータシミュレータと、CPUシミュレータを備える。モータシミュレータは、モータの画像及びモータ回転速度をグラフとして情報処理装置の表示装置に表示し、外部からの加減速信号に応じてモータイメージ、及び、モータ回転速度グラフの画像を変化させる。さらに、モータシミュレータは、モータの回転速度に比例した周波数のFGパルス信号を発生させる。一方、CPUシミュレータは、制御プログラムに応じてモータ加減速信号を発生させFGパルスを外部割込みとして受ける。 This simulation system includes a motor simulator and a CPU simulator. The motor simulator displays the motor image and the motor rotation speed as a graph on the display device of the information processing apparatus, and changes the motor image and the image of the motor rotation speed graph in accordance with an external acceleration / deceleration signal. Further, the motor simulator generates an FG pulse signal having a frequency proportional to the rotation speed of the motor. On the other hand, the CPU simulator generates a motor acceleration / deceleration signal according to a control program and receives an FG pulse as an external interrupt.
これらのシミュレータを同期実行させる場合、モータシミュレータにおいて、モータイメージ、及び、モータ回転速度グラフの画像は、仮想時間の進行とともに変化させる必要がある。しかし、FGパルスの発生タイミングは、CPUシミュレータからのモータ加減速信号の変化に応じて、その時点のモータ速度、その時点までのモータ速度変化状況等から即時に計算することができる。したがって、モータシミュレータのFGパルス発生処理をシミュレーションする場合、同期イベントを受けた時点で応答イベントの内容と、応答イベントのタイミングを即座に決定することができる。本実施形態では、このような状況を想定している。 When these simulators are executed synchronously, in the motor simulator, it is necessary to change the motor image and the image of the motor rotation speed graph as the virtual time progresses. However, the generation timing of the FG pulse can be calculated immediately from the motor speed at that time, the motor speed change state up to that time, etc., according to the change in the motor acceleration / deceleration signal from the CPU simulator. Therefore, when simulating the FG pulse generation process of the motor simulator, the content of the response event and the timing of the response event can be determined immediately upon receiving the synchronization event. In this embodiment, such a situation is assumed.
図11は、第2の実施形態に係る制御部204及び各アプリケーションの制御ブロックを示す図である。ここでは、第1の実施形態と異なる部分についてのみ説明を記載する。
FIG. 11 is a diagram illustrating a
各アプリケーションは、図3に示す制御ブロックに加えて、算出手段として機能する算出部1101を備える。算出部1101は、同期イベントが送信されると、当該同期イベントに対応する処理が完了する予定時間を算出する。これにより各アプリケーションは、算出部1101によって算出された予定時間を付与した応答イベントを制御部204へ通知することができる。これにより、決定部213は、応答イベントから取得した予定時間を同期イベントに対する処理に要する処理時間として決定する。
Each application includes a
図12は、第2の実施形態に係るイベント同期処理を含む全体同期処理の処理手順を示すフローチャートである。以下で説明する処理は、制御部204によって統括的に制御される。ここで、図9を用いて説明した処理と同様の処理については、同一の番号を付し、説明を省略する。即ち、以下では、ステップS1201乃至S1204の処理についてのみ説明を記載する。
FIG. 12 is a flowchart showing the processing procedure of the overall synchronization process including the event synchronization process according to the second embodiment. The processing described below is comprehensively controlled by the
S905において送信されたイベントが同期イベントであると判定されると、ステップS1201において、制御部204は、送信先のアプリケーションからの応答イベントを受信したか否かを判定する。ここで、送信先のアプリケーションは、上述したモータシミュレータのFGパルス発生処理のように同期イベントに対する処理を行うことなく応答イベントの内容、及び、発生タイミングを決定できる。さらに、送信先のアプリケーションは、算出部1101によって同期イベントに対する処理が完了する予定時間を算出して、応答イベントに算出した予定時間を付加する。
If it is determined that the event transmitted in S905 is a synchronization event, in step S1201, the
応答イベントを受信すると、ステップS1202において、制御部204は、送信元のアプリケーション及び送信先のアプリケーションを含む全てのアプリケーションに対して所定時間の実行を指示する。ここで指示される実行時間は、送信先のアプリケーションから送信された応答イベントに付加された予定時間となる。即ち、応答イベントを送信元のアプリケーションに通知されるまでの時間となる。
When the response event is received, in step S1202, the
その後、S1203において、制御部204は、全てのアプリケーションから終了通知を受信したか否かを判定する。全てのアプリケーションから終了通知を受信すると、ステップS1204において、制御部204は、送信元のアプリケーションに対して応答イベントを送信する。さらに、S912において、制御部204は、基準同期時間までの残りの処理実行を指示する。
Thereafter, in step S1203, the
図13は、イベント同期処理における制御部204及び各アプリケーションの連携状況を示す図である。ここでは、説明を容易にするため、アプリケーションを2つに想定する。しかしながら、イベント同期処理は、同様の方法で3つ以上のアプリケーションに対して適用できる。図13に示す白丸は、制御部204又は各アプリケーションの処理を示す。各処理からの矢印は、情報の流れを示す。
FIG. 13 is a diagram illustrating a cooperation status of the
ステップ1301において、制御部204は、各アプリケーションに対して基準同期時間Tsの処理実行を指示する。ステップS1302、S1303において、各アプリケーションは、処理実行の指示を受信すると、それぞれの仮想時間による基準同期時間分の処理実行を開始する。
In
基準同期時間Tsに従った処理の実行中に、ステップS1304において、アプリケーション1は、同期イベントを送信する。ここで、アプリケーション1は、仮想時間を停止するとともに、処理を停止する。アプリケーション1が送信した同期イベントを受信すると、ステップS1305において、制御部204は、アプリケーション2に同期イベントを送信する。ステップ1306において、アプリケーション2は、同期イベントを受信する。これに対して、ステップS1307において、アプリケーション2は、直ちに(仮想時間の進行なしに)応答イベントを送信する。ここで、アプリケーション2は、同期イベントに対する処理を完了する予定時間を応答イベントに付加する。
During execution of processing according to the reference synchronization time Ts, the
応答イベントを受信すると、ステップS1308において、制御部204は、全てのアプリケーションに対して仮想時間T3時間分の処理実行を指示する。ここで、仮想時間T3時間は、アプリケーション2から送信される応答イベントに付加された予定時間に対応する。その後、ステップS1309、S1310において、各アプリケーションは、自身が保持する仮想時間に従って指定された処理時間(T3)を実行する。
When the response event is received, in step S1308, the
その後、ステップS1311、S1314において、各アプリケーションは、処理時間(T3)が終了すると、制御部204へ終了通知を送信する。これに対し、ステップS1312、S1315において、制御部204は、終了通知を受信する。さらに、ステップS1313において、制御部204は、送信元のアプリケーションから終了通知を受信すると、送信先のアプリケーションから受信した応答イベントを通知する。また、ステップS1315において、制御部204は、全てのアプリケーションから終了通知を受信したと判断し、全てのアプリケーションに対して基準同期時間Tsまでの残り時間の処理実行を指示する。その後、基準同期終了、次の全体同期処理の再開は図7と同様の処理であるため説明を省略する。
Thereafter, in steps S1311, S1314, each application transmits an end notification to the
以上説明したように、本実施形態に係るアプリケーションは、同期イベントを受信すると、当該同期イベントに対する処理が完了する予定時間を算出する。さらに、制御部204は、同期イベントの送信先のアプリケーションから算出された予定時間を取得して、予定時間に従った処理を全てのアプリケーションに実行させる。これにより、本実施形態に係る情報処理装置100は、さらに、効率のように効率の良いイベント同期処理を実行することが可能となる。
As described above, when an application according to the present embodiment receives a synchronization event, the application calculates a scheduled time for completion of processing for the synchronization event. Furthermore, the
また、本実施形態では、シミュレーション同期装置として1つの情報処理装置100に本発明を適用したが、複数の装置間においても適用することが可能である。例えば、アプリケーションを動作させるアプリケーション(情報処理装置)と、各アプリケーション間の処理を同期させるサーバ(情報処理装置)との間にも適用することができる。この場合、上述した各アプリケーションの機能が各アプリケーションに実装され、上述した制御部204の機能がサーバに実装される。これにより、複数の情報処理装置を有する大規模なシミュレーションも可能となる。
In the present embodiment, the present invention is applied to one
101:CPU
201:CPUシミュレータ
202:メカシミュレータ
203:シミュレータアプリケーション
204:制御部
205a〜d:I/F
206:配線部
207:送信部
208:受信部
209:取得部
210:システム管理部
211:同期部
212:開始部
213:決定部
214:計時部
215:導出部
301:通信部
302:処理部
303:停止部
304:再開部
305:送信部
306:受信部
101: CPU
201: CPU simulator 202: mechanical simulator 203: simulator application 204:
206: wiring unit 207: transmission unit 208: reception unit 209: acquisition unit 210: system management unit 211: synchronization unit 212: start unit 213: determination unit 214: timing unit 215: derivation unit 301: communication unit 302: processing unit 303 : Stop unit 304: Restart unit 305: Transmitter 306: Receiver
Claims (7)
それぞれ固有の仮想時間を有し、独立して動作する複数のシミュレーション実行手段と、
各シミュレーション実行手段の仮想時間の進行を同期させ、かつ、複数のシミュレーション実行手段に含まれる第1のシミュレーション実行手段と第2のシミュレーション実行手段との間で送受信される同期イベント及び応答イベントを中継する同期手段とを備え、
前記第1のシミュレーション実行手段は、
前記同期手段を経由して前記第2のシミュレーション実行手段に前記同期イベントを送信する同期イベント送信手段と、
前記同期イベントの送信に伴って、該第1のシミュレーション実行手段における仮想時間の進行を停止させる停止手段とを備え、
前記同期手段は、
前記第1のシミュレーション実行手段から送信される同期イベントを受信し、前記第2のシミュレーション実行手段に送信する中継手段を備え、
前記第2のシミュレーション実行手段は、
前記同期イベントを前記同期手段から受信して、前記同期イベントに対する処理を行う処理手段と、
前記同期手段から受信した前記同期イベントに対応する前記応答イベントを前記同期手段に送信する応答イベント送信手段とを備え、
前記同期手段は、さらに、
前記第2のシミュレーション実行手段から、前記応答イベントを受信する応答イベント受信手段と、
前記受信した応答イベントに基づいて、前記第1のシミュレーション実行手段で処理を行うべき処理時間を決定する決定手段と、
前記決定された処理時間を前記第1のシミュレーション実行手段へ送信する処理時間送信手段とを備え、
前記第1のシミュレーション実行手段は、さらに、
前記同期手段から受信した前記処理時間の処理を行うために、停止中の仮想時間の進行を再開させる再開手段と、
前記処理時間の処理を終了した後に処理の終了を前記同期手段に通知する通知手段とを備え、
前記中継手段は、
前記通知手段で通知された処理の終了に応じて前記第2のシミュレーション実行手段から受信した応答イベントを、前記第1のシミュレーション実行手段に送信することを特徴とするシミュレーション同期装置。 A simulation synchronizer,
A plurality of simulation execution means each having a unique virtual time and operating independently;
Synchronize the progress of virtual time of each simulation execution means, and relay synchronization events and response events transmitted and received between the first simulation execution means and the second simulation execution means included in the plurality of simulation execution means And synchronization means
The first simulation execution means includes:
Synchronization event transmission means for transmitting the synchronization event to the second simulation execution means via the synchronization means;
Along with the transmission of the synchronization event, a stop means for stopping the progress of the virtual time in the first simulation execution means,
The synchronization means includes
A relay unit that receives the synchronization event transmitted from the first simulation execution unit and transmits the synchronization event to the second simulation execution unit;
The second simulation execution means includes:
Processing means for receiving the synchronization event from the synchronization means and processing the synchronization event;
Response event transmission means for transmitting the response event corresponding to the synchronization event received from the synchronization means to the synchronization means;
The synchronization means further includes
Response event receiving means for receiving the response event from the second simulation executing means;
Determining means for determining a processing time for the first simulation execution means to perform processing based on the received response event;
Processing time transmitting means for transmitting the determined processing time to the first simulation executing means,
The first simulation execution means further includes:
Resuming means for resuming the progress of the stopped virtual time in order to perform processing of the processing time received from the synchronizing means;
A notification means for notifying the synchronization means of the end of the processing after finishing the processing of the processing time;
The relay means is
Simulation synchronization apparatus characterized by transmitting a response event received from the second simulation executing unit in response to the end of the processing is notified by the notification unit, in the first simulation executing means.
前記処理手段による処理が完了した後に、応答イベントを送信し、
前記決定手段は、
前記第2のシミュレーション実行手段へ前記同期イベントを送信してから、該第2のシミュレーション実行手段から前記応答イベントを受信するまでの時間を計時する計時手段を備え、
前記計時された時間を前記処理時間として決定することを特徴とする請求項1に記載のシミュレーション同期装置。 The response event transmission means includes:
After the processing by the processing means is completed, a response event is transmitted,
The determining means includes
A timing unit that counts the time from when the synchronization event is transmitted to the second simulation execution unit until the response event is received from the second simulation execution unit;
The simulation synchronization apparatus according to claim 1, wherein the measured time is determined as the processing time.
前記応答イベントを送信してから前記第1のシミュレーション実行手段へ該応答イベントが送信されるまで仮想時間の進行を停止させる手段をさらに備えることを特徴とする請求項2に記載のシミュレーション同期装置。 The second simulation execution means includes:
The simulation synchronization apparatus according to claim 2, further comprising means for stopping the progress of virtual time from when the response event is transmitted until the response event is transmitted to the first simulation execution means.
前記同期イベントを受信すると、該同期イベントに対する処理が完了する予定時間を算出する算出手段をさらに備え、
前記応答イベント送信手段は、
前記処理手段による処理が実行される前に、前記算出された予定時間を付加した応答イベントを送信し、
前記決定手段は、
前記受信した応答イベントに付加されている予定時間を前記処理時間として決定することを特徴とする請求項1に記載のシミュレーション同期装置。 The second simulation execution means includes:
Upon receiving the synchronization event, the computer further comprises a calculation means for calculating a scheduled time for completion of processing for the synchronization event,
The response event transmission means includes:
Before the processing by the processing means is executed, a response event with the calculated scheduled time added is transmitted,
The determining means includes
The simulation synchronization apparatus according to claim 1, wherein a scheduled time added to the received response event is determined as the processing time.
第1及び第2のシミュレーション実行手段は、前記処理時間が通知されると処理を開始し、前記処理時間の処理が終了してから他のシミュレーション実行手段が前記処理時間の処理を終了するまで仮想時間の進行を停止させる手段をさらに備えることを特徴とする請求項4に記載のシミュレーション同期装置。 The processing time transmission means transmits the determined processing time to the second simulation execution means in addition to the first simulation execution means,
The first and second simulation execution means start the processing when notified of the processing time, and after the processing for the processing time ends, the other simulation execution means finishes the processing for the processing time. The simulation synchronization apparatus according to claim 4, further comprising means for stopping the progress of time.
前記複数のシミュレーション実行手段を同期させるための基準となる基準同期時間を導出する導出手段と、
前記導出された基準同期時間に従って各シミュレーション実行手段での処理を開始させるための開始手段とをさらに備えることを特徴とする請求項1乃至5の何れか1項に記載のシミュレーション同期装置。 The synchronization means includes
Derivation means for deriving a reference synchronization time as a reference for synchronizing the plurality of simulation execution means;
6. The simulation synchronization apparatus according to claim 1, further comprising start means for starting processing in each simulation execution means in accordance with the derived reference synchronization time.
前記第1のシミュレーション実行手段は、
前記同期手段を経由して前記第2のシミュレーション実行手段に前記同期イベントを送信するステップと、
前記同期イベントの送信に伴って、該第1のシミュレーション実行手段における仮想時間の進行を停止させるステップとを実行し、
前記同期手段は、
前記第1のシミュレーション実行手段から送信される前記同期イベントを受信し、前記第2のシミュレーション実行手段に送信する中継ステップを実行し、
前記第2のシミュレーション実行手段は、
前記同期イベントを前記同期手段から受信して、前記同期イベントに対する処理を行うステップと、
前記同期手段から受信した同期イベントに対応する前記応答イベントを前記同期手段に送信するステップとを実行し、
前記同期手段は、さらに、
前記第2のシミュレーション実行手段から、前記応答イベントを受信するステップと、
前記受信した応答イベントに基づいて、前記第1のシミュレーション実行手段で処理を行うべき処理時間を決定するステップと、
前記決定された処理時間を前記第1のシミュレーション実行手段へ送信するステップとを実行し、
前記第1のシミュレーション実行手段は、さらに、
前記同期手段から受信した処理時間の処理を行うために、停止中の仮想時間の進行を再開させるステップと、
前記処理時間の処理を終了した後に処理の終了を前記同期手段に通知するステップとを実行し、
前記中継ステップは、
前記通知された処理の終了に応じて前記第2のシミュレーション実行手段から受信した応答イベントを、前記第1のシミュレーション実行手段に送信することを特徴とする制御方法。 A plurality of simulation execution means each having a unique virtual time and operating independently, and a first simulation execution means included in the plurality of simulation execution means, wherein the progress of the virtual time of each simulation execution means is synchronized And a synchronization means for relaying a synchronization event and a response event transmitted and received between the first simulation execution means and a second simulation execution means,
The first simulation execution means includes:
Transmitting the synchronization event to the second simulation execution means via the synchronization means;
Accompanying the transmission of the synchronization event, the step of stopping the progress of the virtual time in the first simulation execution means,
The synchronization means includes
Receiving the synchronization event transmitted from the first simulation execution means, and executing a relay step of transmitting to the second simulation execution means,
The second simulation execution means includes:
Receiving the synchronization event from the synchronization means and performing processing for the synchronization event;
Transmitting the response event corresponding to the synchronization event received from the synchronization means to the synchronization means;
The synchronization means further includes
Receiving the response event from the second simulation execution means;
Determining a processing time for the first simulation execution means to perform processing based on the received response event;
Transmitting the determined processing time to the first simulation execution means,
The first simulation execution means further includes:
Resuming the progress of the stopped virtual time in order to process the processing time received from the synchronization means;
Performing the step of notifying the synchronization means of the end of the processing after finishing the processing of the processing time,
The relay step includes
A control method, comprising: transmitting a response event received from the second simulation execution unit to the first simulation execution unit in response to completion of the notified process.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007155724A JP4875545B2 (en) | 2007-06-12 | 2007-06-12 | Simulation synchronization apparatus and control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007155724A JP4875545B2 (en) | 2007-06-12 | 2007-06-12 | Simulation synchronization apparatus and control method thereof |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008310449A JP2008310449A (en) | 2008-12-25 |
JP2008310449A5 JP2008310449A5 (en) | 2010-07-22 |
JP4875545B2 true JP4875545B2 (en) | 2012-02-15 |
Family
ID=40238016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007155724A Expired - Fee Related JP4875545B2 (en) | 2007-06-12 | 2007-06-12 | Simulation synchronization apparatus and control method thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4875545B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5507936B2 (en) * | 2009-09-16 | 2014-05-28 | キヤノン株式会社 | Simulation device, control method thereof, and program |
WO2016105354A1 (en) | 2014-12-23 | 2016-06-30 | Hewlett Packard Enterprise Development Lp | Simulation of a synchronization of records |
JP6496278B2 (en) * | 2016-06-27 | 2019-04-03 | ファナック株式会社 | Simulation system |
KR101833839B1 (en) | 2016-10-14 | 2018-03-05 | 주식회사 샵캐스트 | Apparatus and method of developing operating power decrease for copyright technology based on mobilde device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003330739A (en) * | 2002-05-10 | 2003-11-21 | Nec Corp | Communication response synchronous system and method, and communication response synchronous program |
JP3621392B2 (en) * | 2002-07-05 | 2005-02-16 | 三菱電機株式会社 | Integrated simulation system and program |
JP2005339029A (en) * | 2004-05-25 | 2005-12-08 | Canon Inc | Program cooperation system |
JP4476228B2 (en) * | 2006-03-01 | 2010-06-09 | 富士通テン株式会社 | Simulation device |
-
2007
- 2007-06-12 JP JP2007155724A patent/JP4875545B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2008310449A (en) | 2008-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108334018B (en) | Maintenance work support device, maintenance work support method, and computer-readable non-volatile recording medium | |
US10025286B2 (en) | Simulation system, programmable controller, simulation device, and engineering tool | |
JP2002063050A (en) | Control program development support device | |
JP4577090B2 (en) | In-vehicle electrical component test system and test method | |
JP4875545B2 (en) | Simulation synchronization apparatus and control method thereof | |
JP2005339029A (en) | Program cooperation system | |
JP2017007249A (en) | Information processing device and control method thereof, and program | |
JP6318500B2 (en) | Simulation apparatus and simulation program | |
US7286975B2 (en) | Method for developing embedded code for system simulations and for use in a HMI | |
JP5314959B2 (en) | Information processing apparatus, control method therefor, computer program, and storage medium | |
KR20190046984A (en) | Simulation device | |
JP5996125B2 (en) | System construction support device | |
JP2010128987A (en) | Simulation method and system of the same | |
WO2015181921A1 (en) | Programmable display device and rendering software | |
JP2006172128A (en) | Processing method and information processing device for program cooperation system | |
JP6166530B2 (en) | Information processing apparatus and program | |
WO2020246097A1 (en) | Support device and support program | |
JP4341387B2 (en) | Printer simulator and printer simulation method | |
JP2011090559A (en) | Editor device, display input device, failure display method, screen creation method, and program | |
JP5451329B2 (en) | Simulation apparatus and control method thereof | |
JP5162531B2 (en) | Simulation support method, storage medium storing simulation support program, and simulation support apparatus | |
JP2003228496A (en) | Control-program development supporting device | |
US20130027740A1 (en) | Identifying newly connected printers | |
JP7374381B1 (en) | Simulation program, simulation method and simulation device | |
JP2013200900A (en) | Information processing apparatus, method of controlling the same, computer program, and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100603 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100603 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110928 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111028 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111125 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141202 Year of fee payment: 3 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4875545 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141202 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |