JP2008310449A - Simulation synchronizer and control method thereof - Google Patents

Simulation synchronizer and control method thereof Download PDF

Info

Publication number
JP2008310449A
JP2008310449A JP2007155724A JP2007155724A JP2008310449A JP 2008310449 A JP2008310449 A JP 2008310449A JP 2007155724 A JP2007155724 A JP 2007155724A JP 2007155724 A JP2007155724 A JP 2007155724A JP 2008310449 A JP2008310449 A JP 2008310449A
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.)
Granted
Application number
JP2007155724A
Other languages
Japanese (ja)
Other versions
JP4875545B2 (en
JP2008310449A5 (en
Inventor
Tatsuto Tachibana
達人 橘
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2007155724A priority Critical patent/JP4875545B2/en
Publication of JP2008310449A publication Critical patent/JP2008310449A/en
Publication of JP2008310449A5 publication Critical patent/JP2008310449A5/ja
Application granted granted Critical
Publication of JP4875545B2 publication Critical patent/JP4875545B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a simulation synchronizer for synchronizing the processing of a plurality of applications without increasing any system loads, and to provide a method for controlling the simulation synchronizer. <P>SOLUTION: The simulation synchronizer comprises: a plurality of applications that have inherent virtual time and operate independently; and a synchronization means for synchronizing the processing of each application to the virtual time of an entire system and relaying an event transmitted and received among applications. Also, the simulation synchronizer synchronizes the processing of all applications and synchronizes processing in applications at the transmission destination and source of an event to the event transmitted among specific applications. <P>COPYRIGHT: (C)2009,JPO&INPIT

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に記載のソフトウェアデバッグ装置は、メカ等を協調動作させるため、デバッグ中にメカの動作をアニメーションで確認するのに有効である。
特開平11−327956号公報
Patent Document 1 shows a software debugging device that connects a software debugger, a mechanical logic operation simulator, and a hardware model to perform cooperative operation. The software debugging device described in Patent Document 1 is effective in confirming the operation of the mechanism with an animation during debugging because the mechanism and the like are operated cooperatively.
Japanese Patent Laid-Open No. 11-327956

上述した従来技術によれば、システムを構成する各アプリケーションにおいて、仮想時間の進行を同期させることができる。しかし、同期の精度は予め定められた同期間隔のみに限定される。したがって、同期間隔より短いタイミングでは、アプリケーション間でのイベントの伝達タイミングを同期させることができない。   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. Synchronizing means for relaying a synchronization event and a response event transmitted and received between the first simulation executing means and the second simulation executing means, and the first simulation executing means relays the synchronizing means to the second 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, Resuming means for resuming the progress of the virtual time, and notifying means for notifying the end of the processing after finishing the processing of the processing time, and the relay means receives the second in response to the end of the processing notified by the notifying means. The response event received from the simulation executing means is transmitted to the first and 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 relays the synchronization means to transmit the synchronization event to the second simulation execution 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. And a step of resuming the progress of the virtual time being stopped and a step of notifying the end of the processing after finishing the processing of the processing time, and the relaying step according to the end of the notified processing The response event received from the second simulation execution means is converted into the first simulation execution means. And transmitting.

本発明は、例えば、システム負荷を増大させることなく、それぞれの仮想時間を有する複数のアプリケーションの処理を同期させるシミュレーション同期装置及びその制御方法を提供できる。   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 Information Processing Device 100>
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 information processing apparatus 100 includes a central processing unit (hereinafter referred to as a CPU) 101 that functions as a control unit. The CPU is connected to the ROM 102, the RAM 103, the input interface 104, the output interface 106, and the storage device interface 108 via the bus 110. The input interface 104 is connected to an input device 105 such as a keyboard, a mouse, and a tablet, and acquires input from an operator. The output interface 106 is connected to a display device 107a such as a CRT or LCD and an output device 107b such as a printer or plotter, and displays and outputs data and the like. The storage device interface 108 is connected to a storage device inside the device, for example, a hard disk 111 or an external storage device, for example, a reading device 112 such as a floppy (registered trademark) disk, and inputs and outputs data.

ROM102は、バス110を介してCPU101からアクセス可能な読み出し専用のメモリである。RAM103は、バス110を介してCPU101から読み書き可能なメモリである。ハードディスク111には、プリンタの各機能を実現した処理プログラム111a、シミュレーションのための各種設定データ111b及びファームウェア111cを格納する。   The ROM 102 is a read-only memory that can be accessed from the CPU 101 via the bus 110. The RAM 103 is a memory that can be read and written from the CPU 101 via the bus 110. The hard disk 111 stores a processing program 111a that realizes each function of the printer, various setting data 111b for simulation, and firmware 111c.

プリンタのシミュレーションを行う場合、CPU101は、処理プログラム111a、各種設定データ111b、ファームウェア111cをRAM103にロードして実行する。また、情報処理装置100の基本動作は、基本プログラムであるオペレーティングシステム(以下、OSと称す)を介して実行される。本実施形態では、情報処理装置100のOSとして、Microsoft社のWindows(登録商標)を適用する。しかし、本発明はWindows(登録商標)上のシステムに限定されるものではない。   When performing printer simulation, the CPU 101 loads the processing program 111a, various setting data 111b, and firmware 111c into the RAM 103 and executes them. The basic operation of the information processing apparatus 100 is executed via an operating system (hereinafter referred to as an OS) that is a basic program. In the present embodiment, Windows (registered trademark) of Microsoft Corporation is applied as the OS of the information processing apparatus 100. However, the present invention is not limited to a system on Windows (registered trademark).

図2は、第1の実施形態に係る情報処理装置100の制御ブロックを示す図である。ここでは、本発明に関する制御ブロックについてのみ説明を記載する。したがって、本発明に係る情報処理装置100は、他の制御ブロックを含んで構成されてもよい。   FIG. 2 is a diagram illustrating a control block of the information processing apparatus 100 according to the first embodiment. Here, only the control block relating to the present invention will be described. Therefore, the information processing apparatus 100 according to the present invention may be configured to include other control blocks.

情報処理装置100は、アプリケーションとして機能するCPUシミュレータ201、メカシミュレータ202及びシミュレータアプリケーション203を含む。また、CPU101は、各アプリケーションの処理を同期させるための制御手段として機能する制御部204を含む。また、各アプリケーションは、ハードディスク111又は読み取り装置112を介して外部記憶装置からRAM103にロードされて実行される。   The information processing apparatus 100 includes a CPU simulator 201, a mechanical simulator 202, and a simulator application 203 that function as applications. The CPU 101 also includes a control unit 204 that functions as a control unit for synchronizing the processing of each application. Each application is loaded from the external storage device to the RAM 103 via the hard disk 111 or the reading device 112 and executed.

<各アプリケーションの詳細>
以下では、各アプリケーションの詳細について説明する。CPUシミュレータ201、メカシミュレータ202及びシミュレータアプリケーション203は、それぞれがWindows(登録商標)上で個別に動作するアプリケーションであり、それぞれが独立したプロセスとして存在する。更に、シミュレータアプリケーション203は機能によって複数の独立したアプリケーション223a、223bで構成されてもよい。
<Details of each application>
Details of each application will be described below. The CPU simulator 201, the mechanical simulator 202, and the simulator application 203 are applications that individually operate on Windows (registered trademark), and exist as independent processes. Furthermore, the simulator application 203 may be configured by a plurality of independent applications 223a and 223b depending on functions.

CPUシミュレータ201は、シミュレーション対象となるCPU(以下、ターゲットCPUと称す)の動作を情報処理装置100上で実現するアプリケーションである。ここで、ターゲットCPUとは、情報処理装置100に搭載されているCPU101ではなく、シミュレーションの対象となる装置(本実施形態ではプリンタとなる。)に搭載され、当該プリンタを制御するためのCPUを示す。CPUシミュレータ201は、ターゲットCPU221の制御プログラム(以下、ターゲットファームウエアと称す)に従って、ターゲットCPU221の端子に対応して定義された仮想入力端子の情報を読み込み、仮想出力端子を制御する。   The CPU simulator 201 is an application that realizes the operation of a CPU to be simulated (hereinafter referred to as a target CPU) on the information processing apparatus 100. Here, the target CPU is not a CPU 101 mounted on the information processing apparatus 100 but a CPU for controlling the printer mounted on a simulation target apparatus (which is a printer in this embodiment). Show. The CPU simulator 201 reads information on virtual input terminals defined corresponding to the terminals of the target CPU 221 and controls the virtual output terminals according to a control program (hereinafter referred to as target firmware) of the target CPU 221.

メカシミュレータ202は、アクチュエータ、センサを含む複数の部品からなる機構モデルを情報処理装置100上で擬似的に動作させるアプリケーションである。機構モデルの各要素(以下、機構部品と称す)は、操作者230により形状、種類、動作、機構部品間の干渉と連携条件等が定義される。さらに、センサ、アクチュエータについては外部信号定義が行われる。これら機構部品の定義は、CAD図面から自動設定されるか、専用の機構モデル作成ソフトウェアを操作者230が操作して設定されるか、又は、その両方の組み合わせで設定される。   The mechanical simulator 202 is an application that causes a mechanism model including a plurality of parts including an actuator and a sensor to operate on the information processing apparatus 100 in a pseudo manner. Each element of the mechanism model (hereinafter referred to as a mechanism part) is defined by the operator 230 in terms of shape, type, operation, interference between mechanism parts, linkage conditions, and the like. Furthermore, external signals are defined for sensors and actuators. These mechanical component definitions are automatically set from a CAD drawing, set by an operator 230 operating dedicated mechanism model creation software, or a combination of both.

機構部品の種類としては、機能定義がなされるモータ、ソレノイド、クラッチ、センサ、歯車、カム、ローラ等や、単なる物体として定義される部品がある。また、機構部品には、シミュレーションの対象となる装置の構成要素ではなく、装置の動作シミュレーションに必要なものも含まれる。例えば、プリンタのシミュレーションの場合、用紙が該当する。これらの機構部品は、シミュレーションを実行する際に、情報処理装置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 display device 107a of the information processing apparatus 100 when the simulation is executed.

メカシミュレータ202は、CPUシミュレータ201から制御部204を介して送られてきたアクチュエータ動作信号に対応して、該当するアクチュエータの機構モデルを動作させる。さらに、機構定義に基づきアクチュエータに連結された機構部品をアクチュエータの動作に関連付けて動作させる。また、操作者230による入力に対する動作については、操作者230による入力装置105への操作を擬似的に再現し、擬似操作に応じて対象となる機構部品を動作させる。さらに、メカシミュレータ202は、機構部品間の干渉や連携定義に従って、関連する全ての機構部品の動作を再現する。これら機構部品の動作は、表示装置107aに表示されたグラフィックとして再現されるとともに、機構モデルの動作の結果として発生する出力信号をCPUシミュレータ201へ制御部204を介して送信する。例えば、機能モデルとして定義されたセンサでは、予め定義された作用が発生すると、作用に応じたセンサ信号を発生させる。   The mechanical simulator 202 operates the mechanism model of the corresponding actuator in response to the actuator operation signal transmitted from the CPU simulator 201 via the control unit 204. Further, the mechanism component connected to the actuator is operated in association with the operation of the actuator based on the mechanism definition. In addition, regarding the operation in response to the input by the operator 230, the operation of the operator 230 on the input device 105 is simulated and the target mechanical component is operated according to the simulated operation. Further, the mechanical simulator 202 reproduces the operations of all related mechanical components in accordance with the interference between the mechanical components and the linkage definition. The operation of these mechanical components is reproduced as a graphic displayed on the display device 107a, and an output signal generated as a result of the operation of the mechanical model is transmitted to the CPU simulator 201 via the control unit 204. For example, in a sensor defined as a function model, when a predefined action occurs, a sensor signal corresponding to the action is generated.

シミュレータアプリケーション203は、プリンタの各種試験を行うためのアプリケーションである。例えば、仮想装置に対する外的作用を設定したりシミュレーションの結果を解析、表示、保存する機能を有する。シミュレーションの対象となる実際の装置は、その装置を使用する操作者230やその装置に接続されたパーソナルコンピュータによって、外部から様々な作用を受けて動作する。したがって、シミュレータアプリケーション203は、これら外的作用の中で、メカシミュレータ202で設定される機構的な外的作用以外のものを擬似的に設定する機能を提供する。例えばプリンタの場合、機構的な外的作用としては、給紙カセットの操作や消耗部品の取り外し、取り付け等が挙げられる。一方、それ以外の外的作用としては、ホストPCからの各種命令の受信、操作者230によるオペレーションパネルの操作、環境温度の変化等が挙げられる。   The simulator application 203 is an application for performing various tests of the printer. For example, it has a function of setting an external action on a virtual device and analyzing, displaying, and saving a simulation result. An actual device to be simulated is operated by various actions from the outside by an operator 230 who uses the device or a personal computer connected to the device. Accordingly, the simulator application 203 provides a function of setting a pseudo set of external actions other than the mechanical external action set by the mechanical simulator 202. For example, in the case of a printer, mechanical external operations include operation of a paper feed cassette, removal and installation of consumable parts, and the like. On the other hand, other external actions include receiving various commands from the host PC, operating the operation panel by the operator 230, changing the environmental temperature, and the like.

さらに、シミュレータアプリケーション203は、これらの外的作用を設定するための専用のユーザインターフェース(以下、UIと称す)を提供する。シミュレータアプリケーション203は、UIによる設定に従って制御部204を介してCPUシミュレータ201やメカシミュレータ202に所定の外的作用を与える。具体的に、シミュレータアプリケーション203は、図1に示すハードディスク111に格納された設定データ111bを読み出して、CPUシミュレータ201やメカシミュレータ202に対して一連の外的作用を与えてもよい。この場合、設定データ111bには、連続した外的作用の設定手順を記述したマクロ命令ファイルや一連の外的作用データを記述したファイルが格納されている。   Furthermore, the simulator application 203 provides a dedicated user interface (hereinafter referred to as UI) for setting these external actions. The simulator application 203 gives a predetermined external action to the CPU simulator 201 and the mechanical simulator 202 via the control unit 204 according to the setting by the UI. Specifically, the simulator application 203 may read the setting data 111b stored in the hard disk 111 shown in FIG. 1 and give a series of external actions to the CPU simulator 201 and the mechanical simulator 202. In this case, the setting data 111b stores a macro instruction file describing a procedure for setting a continuous external action and a file describing a series of external action data.

また、シミュレータアプリケーション203は、上述の外的作用の設定機能のほかに、シミュレーションの結果として出力される各種データの解析、試験目的に応じた各種情報の表示、及びハードディスク111に保存する機能を有する。具体的には、各種信号の変化をタイミングチャートとして表示したり、一連の動作を予め想定された動作と比較してその正当性を評価する。また、正当性の評価結果を事象として可視的に表示する機能を有している。   In addition to the above-described external action setting function, the simulator application 203 has a function of analyzing various data output as a result of the simulation, displaying various information according to the purpose of the test, and storing it in the hard disk 111. . Specifically, changes in various signals are displayed as a timing chart, or a series of operations is compared with operations assumed in advance to evaluate the validity. It also has a function of visually displaying the evaluation result of validity as an event.

これらのCPUシミュレータ201、メカシミュレータ202及びシミュレータアプリケーション203は、それぞれが独立した仮想時間で動作を行う。したがって、複数のアプリケーションに関連する動作をシミュレーションする場合、システム全体としての仮想時間に同期させる必要がある。そのため、本実施形態に係る情報処理装置100は、複数のアプリケーションの処理をシステム全体の仮想時間に同期させるとともに、アプリケーション間で送受信されるイベントを中継する制御部204を備える。   The CPU simulator 201, the mechanical simulator 202, and the simulator application 203 each operate in an independent virtual time. Therefore, when simulating operations related to a plurality of applications, it is necessary to synchronize with the virtual time of the entire system. For this reason, the information processing apparatus 100 according to this embodiment includes a control unit 204 that synchronizes the processing of a plurality of applications with the virtual time of the entire system and relays events transmitted and received between the applications.

<制御部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 control unit 204>
Below, the detail of the control part 204 is demonstrated. The control unit 204 includes a wiring unit 206, a system management unit 210, a determination unit 213, a start unit 212, and a derivation unit 215 as control blocks. In addition, the control unit 204 and each application are connected by I / F 205 (ad), respectively. The I / F 205 (ad) may be realized using the bus 110 illustrated in FIG. 1, for example. The I / F 205 (ad) relays the connection between the control unit 204 and each application, and associates the external interface of the control unit 204 with the interface specifications of each application. The control unit 204 comprehensively controls these control blocks to perform data transmission management, synchronization processing, and data transmission history (hereinafter referred to as a log) between applications.

システム管理部210は、ハードディスク111の設定データ111bに予め設定されたシステム構成の定義情報に従ってI/F205(a〜d)の構成を管理する。配線部206は、配線データベースに予め設定された配線定義情報に基づき、各アプリケーション間の接続を仮想的に実現する。ここで配線データベースとは、アプリケーションと他のアプリケーションとを接続する信号線の設定を一元的に管理しているデータベースである。信号線は、例えば、一意な名称を持つ。したがって、配線部206は、この名称をキーにして各I/F205(a〜d)に対して各アプリケーションの送受信を設定する。   The system management unit 210 manages the configuration of the I / F 205 (ad) in accordance with system configuration definition information preset in the setting data 111 b of the hard disk 111. The wiring unit 206 virtually realizes connection between the applications based on the wiring definition information preset in the wiring database. Here, the wiring database is a database that centrally manages the setting of signal lines connecting an application and other applications. For example, the signal line has a unique name. Therefore, the wiring unit 206 sets transmission / reception of each application to each I / F 205 (ad) using this name as a key.

また、配線部206は、各アプリケーションから送信されるイベントを中継して、送信先のアプリケーションへ送信する。そのため、配線部206は、送信部207、受信部208及び中継部209を備える。受信部208は、アプリケーションから送信されるイベントを受信する。例えば、受信部208は、アプリケーションから送信される同期イベントや応答イベントを受信する。送信部207は、送信元のアプリケーションから受信したイベントの送信、及び、各アプリケーションの処理タイミングを制御するための送信を行う。中継部209は、送信部207及び受信部208を制御して、各アプリケーションから送信されるイベントを送信先のアプリケーションに送信させる。また、後述のイベント同期処理における同期イベントの指定、同期イベントに対する応答イベントの指定は配線データベースに対して行う。ここで、イベント同期処理とは、あるアプリケーションと他のアプリケーションとを同期して処理を行わせる処理を示し、あるアプリケーションから送信される同期イベントによって処理を開始する。   In addition, the wiring unit 206 relays an event transmitted from each application and transmits the relayed event to the transmission destination application. Therefore, the wiring unit 206 includes a transmission unit 207, a reception unit 208, and a relay unit 209. The receiving unit 208 receives an event transmitted from an application. For example, the reception unit 208 receives a synchronization event and a response event transmitted from the application. The transmission unit 207 performs transmission of an event received from a transmission source application and transmission for controlling processing timing of each application. The relay unit 209 controls the transmission unit 207 and the reception unit 208 to transmit an event transmitted from each application to a transmission destination application. In addition, designation of a synchronization event and designation of a response event to the synchronization event in event synchronization processing described later are performed on the wiring database. Here, the event synchronization process indicates a process for performing a process in synchronization with an application and another application, and the process is started by a synchronization event transmitted from a certain application.

導出部215及び開始部212は、複数の独立プロセスである各アプリケーションを組み合わせて動作させるために、それぞれの持つ仮想時間を同期させる制御ブロックである。ここでの同期処理(以下、全体同期処理と称す)は、イベント同期処理とは異なり、アプリケーション全体の処理を一定間隔で同期させる。したがって、イベント同期処理は、全体同期処理よりも詳細な同期処理となる。   The derivation unit 215 and the start unit 212 are control blocks that synchronize the virtual time of each in order to operate the applications that are a plurality of independent processes in combination. Unlike the event synchronization process, the synchronization process here (hereinafter referred to as the overall synchronization process) synchronizes the process of the entire application at regular intervals. Therefore, the event synchronization process is a more detailed synchronization process than the overall synchronization process.

導出部215は、導出手段として機能し、複数のアプリケーションを同期させるための基準となる基準同期時間を導出する。具体的に、導出部215は、各アプリケーションで適用されている仮想時間の情報を取得して、取得した仮想時間に基づいて基準同期時間を導出する。開始部212は、開始手段として機能し、導出された基準同期時間に従って各アプリケーションでの処理を開始させる。全体同期処理の詳細については、図4を用いて後述する。   The deriving unit 215 functions as a deriving unit and derives a reference synchronization time serving as a reference for synchronizing a plurality of applications. Specifically, the deriving unit 215 obtains information on the virtual time applied in each application, and derives a reference synchronization time based on the obtained virtual time. The start unit 212 functions as a start unit, and starts processing in each application according to the derived reference synchronization time. Details of the overall synchronization processing will be described later with reference to FIG.

決定部213は、上述したイベント同期処理を統括的に制御するための制御ブロックである。イベント同期処理は、何れか1つのアプリケーションから送信された同期イベントをトリガに、当該同期イベントに関連するアプリケーションの処理を同期させる。以下では、同期イベントを送信するアプリケーションを送信元のアプリケーション(第1のシミュレーション実行手段)と称し、同期イベントを受信するアプリケーションを送信先のアプリケーション(第2のシミュレーション実行手段)と称す。また、送信先のアプリケーションは、同期イベントに対する応答イベントを送信する。   The determination unit 213 is a control block for comprehensively controlling the event synchronization process described above. The event synchronization process synchronizes the process of the application related to the synchronization event, triggered by the synchronization event transmitted from any one application. Hereinafter, an application that transmits a synchronization event is referred to as a transmission source application (first simulation execution unit), and an application that receives a synchronization event is referred to as a transmission destination application (second simulation execution unit). Further, the transmission destination application transmits a response event to the synchronization event.

本実施形態によれば、イベントに対する同期処理を実現するため、送信元のアプリケーションが同期イベントを送信してから応答イベントを受信するまでに、進行される送信元及び送信先のアプリケーションの仮想時間を一致させる。具体的に、送信元のアプリケーションは、同期イベントを送信すると、自身の仮想時間の進行を停止する。一方、送信先のアプリケーションは、同期イベントを受信すると、当該同期イベントに対する処理を自身の仮想時間に従って処理する。さらに、送信先のアプリケーションは、当該処理が完了すると、同期イベントに対する応答イベントを送信する。制御部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 control unit 204 notifies the transmission source application of the time required for the transmission destination application to execute processing for the synchronization event. The transmission source application executes the process by resuming the progress of the virtual time that is stopped according to the received time.

上述のイベント同期処理を実現するため、決定部213は、決定手段として機能し、送信先のアプリケーションから受信した応答イベントに基づいて、送信元のアプリケーションで処理を行うべき処理時間を決定する。また、本実施形態によれば、決定部213は、計時手段として機能する計時部214を備える。計時部214は、送信先のアプリケーションへ同期イベントを送信してから、当送信先のアプリケーションから応答イベントを受信するまでの時間を計時する。したがって、決定部213は、計時部214によって計時された時間を処理時間として決定する。処理時間が決定されると、送信部207は、決定部213によって決定された処理時間を送信元のアプリケーションへ送信する。送信元のアプリケーションは、受信した処理時間に従って処理を実行する。   In order to implement the event synchronization process described above, the determination unit 213 functions as a determination unit, and determines a processing time to be processed in the transmission source application based on the response event received from the transmission destination application. Moreover, according to this embodiment, the determination part 213 is provided with the time measuring part 214 which functions as a time measuring means. The time measuring unit 214 measures the time from when the synchronization event is transmitted to the destination application until the response event is received from the destination application. Therefore, the determination unit 213 determines the time measured by the time measuring unit 214 as the processing time. When the processing time is determined, the transmission unit 207 transmits the processing time determined by the determination unit 213 to the transmission source application. The transmission source application executes processing according to the received processing time.

<各アプリケーションの共通機能>
次に、図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 CPU simulator 201, the mechanical simulator 202, and the simulator application 203 will be conceptually described as one block. Furthermore, the application described here functions as an application that transmits a synchronization event and an application that receives a synchronization event.

各アプリケーションは、通信部301、処理部302、停止部303及び再開部304を備える。通信部301は、送信部305及び受信部306を備え、制御部204との通信を制御する。停止部303及び再開部304は、イベント同期処理を実現するための制御ブロックとなる。処理部302は、処理手段として機能し、制御部204からみの指示により各種処理を実行する。   Each application includes a communication unit 301, a processing unit 302, a stop unit 303, and a restart unit 304. The communication unit 301 includes a transmission unit 305 and a reception unit 306, and controls communication with the control unit 204. The stop unit 303 and the restart unit 304 are control blocks for realizing event synchronization processing. The processing unit 302 functions as a processing unit and executes various processes according to instructions from the control unit 204.

送信部305は、送信手段として機能し、例えば、他のアプリケーションと同期して処理を行いたい場合に、通信部301を介して制御部204へ同期イベントを送信する。停止部303は、同期イベントが送信されると自身の仮想時間の進行を停止させるとともに、実行中の処理を停止させる。ここで、停止部303は、再開部304に対して、仮想時間の進行を停止する際に処理されていたデータを通知することが望ましい。このデータは、再開部304が停止中の処理を再開するために必要となるデータを示す。したがって、再開部304は、停止中の仮想時間の進行を再開させるとともに、このデータを用いて停止中の処理を再開させる。具体的に、再開部304は、同期イベントの送信先のアプリケーションが当該同期イベントに対する処理を実行するために必要となる処理時間を制御部204から受信すると、停止中の処理を再開させる。   The transmission unit 305 functions as a transmission unit, and transmits a synchronization event to the control unit 204 via the communication unit 301, for example, when processing is performed in synchronization with another application. When the synchronization event is transmitted, the stop unit 303 stops the progress of its own virtual time and stops the process being executed. Here, it is desirable that the stopping unit 303 notifies the resuming unit 304 of data that has been processed when the progress of the virtual time is stopped. This data indicates data necessary for the restarting unit 304 to restart the stopped processing. Therefore, the restarting unit 304 restarts the progress of the virtual time that is stopped and restarts the stopped process using this data. Specifically, when the processing time required for the application to which the synchronization event is transmitted is received from the control unit 204, the resuming unit 304 resumes the stopped process.

<全体同期処理>
次に、図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 start unit 212. A solid line 401 indicates a state in which each application is executing processing for the reference synchronization time according to each virtual time. A broken line 402 indicates a state in which the application has completed the process for the reference synchronization time, and the progress of the virtual time is stopped until all other applications have completed the process for the reference synchronization time. Reference numeral 403 denotes one synchronization unit which is a time from when processing according to the reference synchronization time Ts is started in each application until all applications complete processing for the reference synchronization time. Similarly, 404 and 405 indicate one synchronization unit of different patterns.

図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 synchronization unit 403, until the application 3 completes the process, the other application stops the virtual time after completing the process for the reference synchronization time. When all the applications have completed processing for the reference synchronization time, the start unit 212 transmits a signal for starting processing according to the reference synchronization time Ts to all applications again. Accordingly, each application starts processing again according to the reference synchronization time Ts. In this way, the overall synchronization process synchronizes the processes of all applications at regular intervals.

次に、図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 control unit 204 will be described. FIG. 5 is a flowchart for explaining the control procedure of the overall synchronization process in each application. The process described here indicates a common process of the overall synchronization process performed by each application, that is, the CPU simulator 201, the mechanical simulator 202, and the simulator application 203.

まず、ステップ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 communication unit 301 to check whether an external event that is an external event has been received. If there is an external event, in step S510, the application performs internal processing for the external event and transmits the external event reception virtual time timing to the outside, and then returns to S501 to stop the virtual time.

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 control unit 204. The processing here is comprehensively controlled by the control unit 204.

まず、ステップS601において、制御部204は、仮想上の基準同期時間Tsの処理実行を各アプリケーションに指示する。次に、ステップS602において、制御部204は、全てのアプリケーションが基準同期時間Tsに従った処理を終了したか否かを判定する。ここで、制御部204は、各アプリケーションから処理の終了を示す通知を受信しているか否かを判定する。全アプリケーションから終了通知を受信している場合、S601に処理を遷移させ、再び1同期分の処理を行わせる。   First, in step S601, the control unit 204 instructs each application to execute a process of a virtual reference synchronization time Ts. Next, in step S602, the control unit 204 determines whether or not all applications have finished processing according to the reference synchronization time Ts. Here, the control unit 204 determines whether or not a notification indicating the end of processing is received from each application. If the end notification is received from all the applications, the process is shifted to S601 and the process for one synchronization is performed again.

一方、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 control unit 204 checks event reception from the application in step S603. If an event has been received from any application, in step S604, the control unit 204 transmits the event to the transmission destination application. After that, in step S605, the control unit 204 executes processing for the virtual remaining time until synchronization (a time obtained by subtracting the virtual time between event occurrence or event transmission) from all the applications. Instruct. Thereafter, the control unit 204 shifts the process to S602. On the other hand, when determining in S603 that an event has not been received from the application, the control unit 204 shifts the processing to S602.

次に、図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 control unit 204 and each application in the overall synchronization processing. Here, for ease of explanation, two applications are assumed. However, the overall synchronization process can be applied to three or more applications in a similar manner. Here, it is assumed that an event is transmitted from the application 1 to the application 2 during the process according to the reference synchronization time. White circles shown in FIG. 7 indicate processing of the control unit 204 or each application. The arrows from each process indicate the flow of information.

ステップS701において、制御部204は、各アプリケーションに対して基準同期時間Tsの処理実行を指示する。ステップS702、S703において、各アプリケーションは、処理実行の指示を受信すると、それぞれの仮想時間による基準同期時間分の処理を開始する。   In step S701, the control unit 204 instructs each application to execute processing for the reference synchronization time Ts. In steps S <b> 702 and S <b> 703, each application starts processing for the reference synchronization time based on the virtual time when receiving an instruction to execute processing.

基準同期時間に従った処理の実行中に、ステップS704において、アプリケーション1は、イベントを送信する。アプリケーション1が送信したイベントを受信すると、ステップS705において、制御部204は、アプリケーション2にイベントを送信するとともに、各アプリケーションに対して残りの基準同期時間分の処理実行を指示する。ステップS706において、アプリケーション2は、アプリケーション1が送信したイベントを受信する。続いて、ステップS707及びS708において、各アプリケーションは、制御部204からの処理実行の指示を受信し、処理を開始する。   During execution of the process according to the reference synchronization time, the application 1 transmits an event in step S704. When the event transmitted by the application 1 is received, in step S705, the control unit 204 transmits the event to the application 2 and instructs each application to execute processing for the remaining reference synchronization time. In step S706, the application 2 receives the event transmitted by the application 1. Subsequently, in steps S707 and S708, each application receives a process execution instruction from the control unit 204 and starts the process.

ここで、残りの基準同期時間はアプリケーション1がTs−T1、アプリケーション2がTs−T2となる。基準同期時間に従った処理を開始してから各アプリケーションのイベント発生までの時間は実時間上は同じ時間になる。しかし、それぞれのアプリケーションの実時間に対する仮想時間の進行速度が異なるため、仮想時間T1、T2は異なる。   Here, the remaining reference synchronization time is Ts-T1 for application 1 and Ts-T2 for application 2. The time from the start of processing according to the reference synchronization time to the occurrence of an event of each application is the same in real time. However, the virtual times T1 and T2 are different because the speed of progress of the virtual time with respect to the real time of each application is different.

ステップS709乃至S713は、アプリケーション2からアプリケーション1へのイベントが発生した場合について示す。これらの処理は、S704乃至S708の処理と同様であるため、説明を省略する。   Steps S709 to S713 show a case where an event from the application 2 to the application 1 occurs. Since these processes are the same as the processes of S704 to S708, description thereof will be omitted.

その後、ステップS714において、アプリケーション1は、指定時間分の処理を終了し、終了通知を制御部204へ送信し、仮想時間を停止させる。ステップS715において、制御部204は、アプリケーション1から送信された終了通知を受信する。一方、ステップS716において、アプリケーション2は、指定時間分の処理を終了し、終了通知を制御部204へ送信し、仮想時間を停止させる。ステップSS717において、制御部204は、アプリケーション2から送信された終了通知を受信する。ここで、制御部204は、全てのアプリケーションから終了通知を受信したと判断し、各アプリケーションに対してS701と同様に基準同期時間Tsの処理実行を指示する。その後、ステップS718及びS719において、各アプリケーションは、処理実行の指示を受信すると、再び、それぞれの仮想時間による基準同期時間分の処理を開始する。   Thereafter, in step S714, the application 1 ends the process for the specified time, transmits an end notification to the control unit 204, and stops the virtual time. In step S <b> 715, the control unit 204 receives the end notification transmitted from the application 1. On the other hand, in step S716, the application 2 ends the process for the specified time, transmits an end notification to the control unit 204, and stops the virtual time. In step SS717, the control unit 204 receives the end notification transmitted from the application 2. Here, the control unit 204 determines that end notifications have been received from all the applications, and instructs each application to execute processing for the reference synchronization time Ts as in S701. Thereafter, in steps S718 and S719, when receiving an instruction to execute processing, each application starts processing for the reference synchronization time based on the virtual time again.

このように、本実施形態に係る情報処理装置100は、全体同期処理を実行する。しかしながら、全体同期処理だけでは1つのイベントに関連するアプリケーションの処理を同期させることは難しい。この問題について、図8を参照して説明する。図8は、全体同期処理を行っている間に発生するイベントが各アプリケーションの仮想時間上でどのようなタイミングとして捕らえられるかを説明する図である。   Thus, the information processing apparatus 100 according to the present embodiment executes the overall synchronization process. However, it is difficult to synchronize the processing of an application related to one event only with the overall synchronization processing. This problem will be described with reference to FIG. FIG. 8 is a diagram for explaining the timing at which an event that occurs during the overall synchronization process is captured on the virtual time of each application.

S704でアプリケーション1から送信されるイベントは、アプリケーション1にとっては同期処理開始から仮想時間T1後に発生している。しかしながら、S706でアプリケーション2がイベントを受信する時間は、アプリケーション2にとっては同期処理開始から仮想時間T2後として捕らえられる。   The event transmitted from the application 1 in S704 occurs for the application 1 after the virtual time T1 from the start of the synchronization process. However, the time at which the application 2 receives the event in S706 is captured for the application 2 after the virtual time T2 from the start of the synchronization process.

また、S709でアプリケーション2から送信されるイベントは、アプリケーション2にとってはS706からS709までの仮想時間T3で発生している。しかしながら、S711でアプリケーション1がイベントを受信する時間は、アプリケーション1にとってはS704からS711までの仮想時間T4となる。   The event transmitted from the application 2 in S709 occurs for the application 2 at a virtual time T3 from S706 to S709. However, the time when the application 1 receives the event in S711 is a virtual time T4 from S704 to S711 for the application 1.

ここで、図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 information processing apparatus 100 according to the present embodiment performs event synchronization processing in order to synchronize the processing of each application for such an event.

<イベント同期処理>
次に、図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 control unit 204. Here, description of the same processing as that described with reference to FIG. 6 is omitted. That is, the processing of S901 to S903 is the same as the processing of S601 to S603, and thus the description thereof is omitted.

何れかのアプリケーションからイベントを受信している場合、ステップ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 control unit 204 starts timing by the timing unit 214 that is necessary when the event is a synchronous event. The timer 214 counts the time from when the synchronization event is transmitted to the transmission destination application until the response event for the synchronization event is received from the transmission destination application. Thereafter, in the flowchart of FIG. 6, all the applications are instructed to execute the process up to the reference synchronization time, and the process proceeds to the standby process of S602. However, in the present embodiment, the following processing is different in order to perform event synchronization processing.

ステップS905において、制御部204は、発生したイベントが予め定義された同期イベントであるか否かを判定する。同期イベントであればS906以降のイベント同期処理を行う。ここで、同期イベントの送信元のアプリケーションに含まれる送信部305は、同期イベント送信手段として機能し、他のアプリケーションと同期して処理を行いたい場合に制御部204を中継して送信先のアプリケーションへ予め定義された同期イベントを送信する。その後、送信元のアプリケーションは、停止部303によって、自身の仮想時間の進行を停止する。一方、同期イベントでない場合、S912の処理へ遷移する。   In step S905, the control unit 204 determines whether or not the generated event is a predefined synchronization event. If it is a synchronization event, event synchronization processing from S906 is performed. Here, the transmission unit 305 included in the synchronization event transmission source application functions as a synchronization event transmission unit, and relays the control unit 204 to perform the transmission destination application when processing is performed in synchronization with other applications. Send a predefined synchronization event to Thereafter, the transmission source application causes the stop unit 303 to stop the progress of its own virtual time. On the other hand, if it is not a synchronous event, the process proceeds to S912.

ステップS906において、制御部204は、同期イベントを送信した送信元のアプリケーション以外のアプリケーションに対して時間設定のない連続実行を指示する。ここで、送信元のアプリケーションは、仮想時間を停止している。その後、ステップS907において、制御部204は、何れかのアプリケーションからイベントが送信されているか否かを判定する。イベントが送信されている場合、ステップS908において、制御部204は、同期イベントに対して予め定義された応答イベントであるか否かを判定する。ここで、応答イベントでない場合、ステップS913において、制御部204は、全アプリケーションにイベントを送信して再びS907のイベント待ちに遷移する。応答イベントである場合、制御部204は、処理をS909に遷移させる。この応答イベントは、送信先のアプリケーションが送信したものとなる。このとき、送信先のアプリケーションに含まれる送信部305は、応答イベント送信手段として機能し、同期イベントに対する処理が終了すると、制御部204へ応答イベントを送信する。   In step S906, the control unit 204 instructs an application other than the transmission source application that transmitted the synchronization event to perform continuous execution without time setting. Here, the transmission source application stops the virtual time. Thereafter, in step S907, the control unit 204 determines whether an event is transmitted from any application. If an event has been transmitted, in step S908, the control unit 204 determines whether the response event is a predefined response event with respect to the synchronization event. Here, if it is not a response event, in step S913, the control unit 204 transmits the event to all the applications, and again transitions to the event waiting of S907. If it is a response event, the control unit 204 shifts the process to S909. This response event is sent by the destination application. At this time, the transmission unit 305 included in the transmission destination application functions as a response event transmission unit, and transmits the response event to the control unit 204 when the processing for the synchronization event is completed.

一方、イベントが応答イベントである場合、ステップS909において、制御部204は、同期イベントの送信元のアプリケーションに対して、処理時間を送信して停止中の処理を再開させる。ここで、処理時間とは、同期イベントに対する処理を実行するために送信先のアプリケーションが必要とした時間を示す。この処理時間は、決定部213によって決定される。具体的に、決定部213は、計時部214によって計時された同期イベントを送信してから応答イベントを受信するまでの時間を処理時間として決定する。さらに、送信部207は、処理時間送信手段として機能し、決定された処理時間を送信先のアプリケーションへ送信する。処理時間を受信すると、送信元のアプリケーションは、制御部204から受信した処理時間の処理を行うために、停止中の仮想時間の進行を再開させる。   On the other hand, if the event is a response event, in step S909, the control unit 204 resumes the stopped process by transmitting the processing time to the application that has transmitted the synchronization event. Here, the processing time indicates the time required by the transmission destination application in order to execute the processing for the synchronization event. This processing time is determined by the determination unit 213. Specifically, the determination unit 213 determines the time from when the synchronization event timed by the time measuring unit 214 is transmitted until the response event is received as the processing time. Furthermore, the transmission unit 207 functions as a processing time transmission unit, and transmits the determined processing time to the transmission destination application. When the processing time is received, the transmission source application resumes the progress of the virtual time being stopped in order to perform the processing of the processing time received from the control unit 204.

続いて、ステップS910において、制御部204は、送信元のアプリケーションが指定時間の処理を終了したか否かを判定する。具体的に、制御部204は、送信元のアプリケーションからの終了通知を受信していると、送信元のアプリケーションが指定時間の処理を終了したと判定する。ここで、送信元のアプリケーションに含まれる送信部305は、通知手段として機能し、処理部302が処理時間分の処理を終了した後に処理の終了を制御部204へ通知する。一方、受信していない場合、制御部204は、定期的にS910の処理を繰り返す。   Subsequently, in step S910, the control unit 204 determines whether or not the transmission source application has finished processing for the specified time. Specifically, when receiving a termination notification from the transmission source application, the control unit 204 determines that the transmission source application has finished processing for the specified time. Here, the transmission unit 305 included in the transmission source application functions as a notification unit, and notifies the control unit 204 of the end of the processing after the processing unit 302 ends the processing for the processing time. On the other hand, if not received, the control unit 204 periodically repeats the process of S910.

ステップS911において、制御部204は、送信元のアプリケーションに対して応答イベントを送信する。その後、ステップS912において、制御部204は、全てのアプリケーションに対して基準同期時間までの残りの処理実行を指示する。これに対する各アプリケーションのイベント同期処理は、図5を用いて説明した処理と同様である。   In step S911, the control unit 204 transmits a response event to the transmission source application. Thereafter, in step S912, the control unit 204 instructs all applications to execute the remaining processing until the reference synchronization time. The event synchronization process of each application corresponding to this is the same as the process described with reference to FIG.

次に、図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 control unit 204 and each application in the event synchronization processing. Here, for ease of explanation, two applications are assumed. However, the event synchronization process can be applied to three or more applications in a similar manner. White circles shown in FIG. 10 indicate processing of the control unit 204 or each application. The arrows from each process indicate the flow of information.

ステップS1001において、制御部204は、各アプリケーションに対して基準同期時間Tsの処理実行を指示する。ステップS1002、S1003において、各アプリケーションは、処理実行の指示を受信すると、それぞれの仮想時間による基準同期時間分の処理実行を開始する。   In step S1001, the control unit 204 instructs each application to execute processing for the reference synchronization time Ts. In steps S1002 and S1003, when receiving an instruction to execute processing, each application starts processing execution for the reference synchronization time based on the virtual time.

基準同期時間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 application 1 transmits a synchronization event. Here, the application 1 stops the virtual time and the process. When the synchronization event transmitted by the application 1 is received, in step S1005, the control unit 204 transmits the synchronization event to the application 2 and instructs the application 2 to execute continuous processing without time limitation. Further, the control unit 204 starts the time counting by the time measuring unit 214 here.

ステップS1006、S1007において、アプリケーション2は、同期イベント及び連続処理実行の指示を受信し、連続実行処理を開始する。その後、ステップS1008において、アプリケーション2は、同期イベントに対する処理を実行した後に、同期イベントに対する応答イベントを送信する。ここで、応答イベントの送信は、同期イベントを受信してから仮想時間T3時間後となる。さらに、応答イベントを送信すると、アプリケーション2は、仮想時間の進行を停止するとともに、処理を停止する。   In steps S1006 and S1007, the application 2 receives the synchronization event and the instruction for executing the continuous process, and starts the continuous execution process. After that, in step S1008, the application 2 transmits a response event for the synchronization event after executing processing for the synchronization event. Here, the response event is transmitted after the virtual time T3 hours from the reception of the synchronization event. Further, when the response event is transmitted, the application 2 stops the progress of the virtual time and stops the process.

ステップS1009において、制御部204は、応答イベントを受信すると、決定部213により上述した処理時間を決定し、決定した処理時間(T3)をアプリケーション1へ送信する。ここで、制御部204に含まれる受信部208は、応答イベント受信手段として機能し、アプリケーション2から応答イベントを受信する。指示された処理時間を受信すると、ステップS1010において、アプリケーション1は、停止中の仮想時間の進行を再開させ、指定された時間(T3)の処理を実行する。その後、ステップS1011において、アプリケーション1は、指定時間(T3)の処理が終了したことを報知するために終了通知を送信する。   In step S <b> 1009, when the control unit 204 receives a response event, the determination unit 213 determines the processing time described above, and transmits the determined processing time (T <b> 3) to the application 1. Here, the receiving unit 208 included in the control unit 204 functions as a response event receiving unit, and receives a response event from the application 2. When the instructed processing time is received, in step S1010, the application 1 resumes the progress of the virtual time being stopped, and executes processing for the designated time (T3). Thereafter, in step S1011, the application 1 transmits an end notification to notify that the processing of the specified time (T3) has ended.

終了通知を受信すると、ステップS1012において、制御部204は、アプリケーション1に応答イベントを送信するとともに、全てのアプリケーションに対しそれぞれの残り時間の処理実行を指示する。ステップS1013において、アプリケーション1は、応答イベントを受信する。この場合の残り時間は、アプリケーション1でTs−(T1+T3)、アプリケーション2でTs−(T2+T3)となる。その後の基準同期終了、次の全体同期処理の再開は図7と同様な処理であるため説明を省略する。   When the end notification is received, in step S1012, the control unit 204 transmits a response event to the application 1, and instructs all applications to execute processing for each remaining time. In step S1013, the application 1 receives a response event. The remaining time in this case is Ts− (T1 + T3) for application 1 and Ts− (T2 + T3) for application 2. The subsequent end of the reference synchronization and the resumption of the next overall synchronization processing are the same as in FIG.

このように、情報処理装置100は、アプリケーション2が同期イベントを受信してから応答イベントを送信するまでの仮想時間の進行と、アプリケーション1が同期イベントを送信してから応答イベントを受信するまでの仮想時間の進行とを一致させうる。したがって、アプリケーション1及びアプリケーション2は、同期イベントに対する処理を仮想的に同期させて行うことができる。   As described above, the information processing apparatus 100 advances the virtual time from when the application 2 receives the synchronization event until the response event is transmitted, and from when the application 1 transmits the synchronization event until the response event is received. The progress of virtual time can be matched. Therefore, the application 1 and the application 2 can perform processing for the synchronization event in a virtually synchronized manner.

以上説明したように、本実施形態に係る情報処理装置100は、それぞれ固有の仮想時間を有し、独立して動作するアプリケーションと、各アプリケーションの処理をシステム全体の仮想時間に同期させる。これに加えて、本情報処理装置100は、同期イベントが送信された場合に、送信先のアプリケーションにおける同期イベントに対する処理時間と、送信元のアプリケーションが同期イベントを送信してから応答イベントを受信するまでの時間とを同期させる。これにより、本情報処理装置100は、特定のアプリケーション間の処理について時間精度の高い同期処理を行うことができる。したがって、本情報処理装置100は、システム負荷を増大させることなく、それぞれの仮想時間を有する複数のアプリケーションの処理を同期させうる。   As described above, the information processing apparatus 100 according to the present embodiment has an inherent virtual time, and synchronizes the independently operating application and the processing of each application with the virtual time of the entire system. In addition to this, when a synchronization event is transmitted, the information processing apparatus 100 receives a response event after processing time for the synchronization event in the transmission destination application and the transmission source application transmitting the synchronization event. Synchronize with the time until. As a result, the information processing apparatus 100 can perform synchronization processing with high time accuracy for processing between specific applications. Therefore, the information processing apparatus 100 can synchronize the processes of a plurality of applications having respective virtual times without increasing the system load.

なお、本発明は、上述の実施形態に限らず様々な変形が可能となる。例えば、本情報処理装置100は、送信先のアプリケーションへ同期イベントを送信してから、当該送信先のアプリケーションから応答イベントを取得するまでの時間を計時する。これにより、本情報処理装置100は、仮想時間を停止している送信元のアプリケーションに対して、送信先のアプリケーションが同期イベントに対する処理に要した処理時間を通知することができる。よって、本情報処理装置100は、容易に、イベント同期処理を実現することができる。   The present invention is not limited to the above-described embodiment, and various modifications can be made. For example, the information processing apparatus 100 measures the time from when a synchronization event is transmitted to a transmission destination application until a response event is acquired from the transmission destination application. As a result, the information processing apparatus 100 can notify the transmission source application that has stopped the virtual time of the processing time required for the transmission destination application to process the synchronization event. Therefore, the information processing apparatus 100 can easily realize event synchronization processing.

また、本情報処理装置100は、独立した仮想時間を有する複数のアプリケーションの処理を同期させるために、システム全体の仮想時間に同期させた基準同期時間を導出し、各アプリケーションの処理を制御する。これにより、本情報処理装置100は、システム全体の同期処理を大きな時間単位で効率良く行い、さらに、特定のアプリケーション間の処理について時間精度の高い同期処理を行うことができる。したがって、本情報処理装置100は、システム負荷を増大させることなく、それぞれの仮想時間を有する複数のアプリケーションの処理を同期させうる。   In addition, in order to synchronize the processing of a plurality of applications having independent virtual times, the information processing apparatus 100 derives a reference synchronization time synchronized with the virtual time of the entire system, and controls the processing of each application. Thereby, the information processing apparatus 100 can efficiently perform synchronization processing of the entire system in large time units, and can perform synchronization processing with high time accuracy for processing between specific applications. Therefore, the information processing apparatus 100 can synchronize the processes of a plurality of applications having respective virtual times without increasing the system load.

また、本実施形態では、シミュレーション同期装置として1つの情報処理装置100に本発明を適用したが、複数の装置間においても適用することが可能である。例えば、アプリケーションを動作させる複数のアプリケーション(情報処理装置)と、複数のアプリケーションに含まれる第1、第2アプリケーション間の処理を同期させるサーバ(情報処理装置)との間にも適用することができる。この場合、上述した各アプリケーションの機能が各アプリケーションに実装され、上述した制御部204の機能がサーバに実装される。これにより、複数の情報処理装置を有する大規模なシミュレーションも可能となる。   In the present embodiment, the present invention is applied to one information processing apparatus 100 as a simulation synchronization apparatus. However, the present invention can also be applied to a plurality of apparatuses. For example, the present invention can be applied between a plurality of applications (information processing apparatuses) that operate applications and a server (information processing apparatus) that synchronizes processing between the first and second applications included in the plurality of applications. . In this case, the function of each application described above is implemented in each application, and the function of the control unit 204 described above is implemented in the server. Thereby, a large-scale simulation having a plurality of information processing apparatuses is also possible.

[第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 information processing apparatus 100 according to the present embodiment can execute the processing corresponding to the processing time described above in parallel in the transmission source and transmission destination applications.

具体的に、第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 some response is returned to the CPU 1 after the process of the CPU 2 is executed with the signal from the CPU 1 to the CPU 2 as a trigger, the content and timing of the response event of the CPU 2 execute the process of the CPU 2 I can't decide unless I try.

しかし、アプリケーションによっては同期イベントを受信した時点で、そのときの同期イベントの内容、及び、その他の状況により直ちに応答イベントの内容と、タイミングを決定できる場合がる。例えば、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 control unit 204 and control blocks of each application according to the second embodiment. Here, only the parts different from the first embodiment will be described.

各アプリケーションは、図3に示す制御ブロックに加えて、算出手段として機能する算出部1101を備える。算出部1101は、同期イベントが送信されると、当該同期イベントに対応する処理が完了する予定時間を算出する。これにより各アプリケーションは、算出部1101によって算出された予定時間を付与した応答イベントを制御部204へ通知することができる。これにより、決定部213は、応答イベントから取得した予定時間を同期イベントに対する処理に要する処理時間として決定する。   Each application includes a calculation unit 1101 that functions as a calculation unit in addition to the control blocks shown in FIG. When a synchronization event is transmitted, the calculation unit 1101 calculates a scheduled time for completion of processing corresponding to the synchronization event. Accordingly, each application can notify the control unit 204 of a response event to which the scheduled time calculated by the calculation unit 1101 is given. Thereby, the determination unit 213 determines the scheduled time acquired from the response event as the processing time required for processing for the synchronization event.

図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 control unit 204. Here, the same processes as those described with reference to FIG. 9 are denoted by the same reference numerals and description thereof is omitted. That is, in the following, only the processing of steps S1201 to S1204 will be described.

S905において送信されたイベントが同期イベントであると判定されると、ステップS1201において、制御部204は、送信先のアプリケーションからの応答イベントを受信したか否かを判定する。ここで、送信先のアプリケーションは、上述したモータシミュレータのFGパルス発生処理のように同期イベントに対する処理を行うことなく応答イベントの内容、及び、発生タイミングを決定できる。さらに、送信先のアプリケーションは、算出部1101によって同期イベントに対する処理が完了する予定時間を算出して、応答イベントに算出した予定時間を付加する。   If it is determined that the event transmitted in S905 is a synchronization event, in step S1201, the control unit 204 determines whether a response event from the transmission destination application has been received. Here, the application of the transmission destination can determine the content of the response event and the generation timing without performing the process for the synchronous event like the FG pulse generation process of the motor simulator described above. Further, the application at the transmission destination calculates a scheduled time for completion of processing for the synchronization event by the calculation unit 1101, and adds the calculated scheduled time to the response event.

応答イベントを受信すると、ステップS1202において、制御部204は、送信元のアプリケーション及び送信先のアプリケーションを含む全てのアプリケーションに対して所定時間の実行を指示する。ここで指示される実行時間は、送信先のアプリケーションから送信された応答イベントに付加された予定時間となる。即ち、応答イベントを送信元のアプリケーションに通知されるまでの時間となる。   When the response event is received, in step S1202, the control unit 204 instructs all applications including the transmission source application and the transmission destination application to execute for a predetermined time. The execution time indicated here is the scheduled time added to the response event transmitted from the destination application. That is, it is the time until the response event is notified to the transmission source application.

その後、S1203において、制御部204は、全てのアプリケーションから終了通知を受信したか否かを判定する。全てのアプリケーションから終了通知を受信すると、ステップS1204において、制御部204は、送信元のアプリケーションに対して応答イベントを送信する。さらに、S912において、制御部204は、基準同期時間までの残りの処理実行を指示する。   Thereafter, in step S1203, the control unit 204 determines whether or not termination notifications have been received from all applications. When the end notification is received from all the applications, in step S1204, the control unit 204 transmits a response event to the transmission source application. In step S912, the control unit 204 instructs execution of the remaining processing up to the reference synchronization time.

図13は、イベント同期処理における制御部204及び各アプリケーションの連携状況を示す図である。ここでは、説明を容易にするため、アプリケーションを2つに想定する。しかしながら、イベント同期処理は、同様の方法で3つ以上のアプリケーションに対して適用できる。図13に示す白丸は、制御部204又は各アプリケーションの処理を示す。各処理からの矢印は、情報の流れを示す。   FIG. 13 is a diagram illustrating a cooperation status of the control unit 204 and each application in the event synchronization processing. Here, for ease of explanation, two applications are assumed. However, the event synchronization process can be applied to three or more applications in a similar manner. White circles shown in FIG. 13 indicate processing of the control unit 204 or each application. The arrows from each process indicate the flow of information.

ステップ1301において、制御部204は、各アプリケーションに対して基準同期時間Tsの処理実行を指示する。ステップS1302、S1303において、各アプリケーションは、処理実行の指示を受信すると、それぞれの仮想時間による基準同期時間分の処理実行を開始する。   In step 1301, the control unit 204 instructs each application to execute processing for the reference synchronization time Ts. In steps S1302 and S1303, when receiving an instruction to execute processing, each application starts processing for the reference synchronization time based on the respective virtual time.

基準同期時間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 application 1 transmits a synchronization event in step S1304. Here, the application 1 stops the virtual time and the process. When the synchronization event transmitted by the application 1 is received, the control unit 204 transmits the synchronization event to the application 2 in step S1305. In step 1306, application 2 receives the synchronization event. On the other hand, in step S1307, the application 2 immediately transmits a response event (without progress of virtual time). Here, the application 2 adds the scheduled time for completing the process for the synchronization event to the response event.

応答イベントを受信すると、ステップS1308において、制御部204は、全てのアプリケーションに対して仮想時間T3時間分の処理実行を指示する。ここで、仮想時間T3時間は、アプリケーション2から送信される応答イベントに付加された予定時間に対応する。その後、ステップS1309、S1310において、各アプリケーションは、自身が保持する仮想時間に従って指定された処理時間(T3)を実行する。   When the response event is received, in step S1308, the control unit 204 instructs all applications to execute processing for the virtual time T3. Here, the virtual time T3 time corresponds to the scheduled time added to the response event transmitted from the application 2. Thereafter, in steps S1309 and S1310, each application executes the processing time (T3) designated according to the virtual time held by itself.

その後、ステップ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 control unit 204 when the processing time (T3) ends. On the other hand, in steps S1312, S1315, the control unit 204 receives an end notification. In step S <b> 1313, when receiving a termination notification from the transmission source application, the control unit 204 notifies the response event received from the transmission destination application. In step S1315, the control unit 204 determines that end notifications have been received from all applications, and instructs all applications to execute processing for the remaining time until the reference synchronization time Ts. After that, the end of the reference synchronization and the resumption of the next overall synchronization process are the same as those in FIG.

以上説明したように、本実施形態に係るアプリケーションは、同期イベントを受信すると、当該同期イベントに対する処理が完了する予定時間を算出する。さらに、制御部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 control unit 204 acquires the scheduled time calculated from the application to which the synchronization event is transmitted, and causes all applications to execute processing according to the scheduled time. As a result, the information processing apparatus 100 according to the present embodiment can further perform efficient event synchronization processing such as efficiency.

また、本実施形態では、シミュレーション同期装置として1つの情報処理装置100に本発明を適用したが、複数の装置間においても適用することが可能である。例えば、アプリケーションを動作させるアプリケーション(情報処理装置)と、各アプリケーション間の処理を同期させるサーバ(情報処理装置)との間にも適用することができる。この場合、上述した各アプリケーションの機能が各アプリケーションに実装され、上述した制御部204の機能がサーバに実装される。これにより、複数の情報処理装置を有する大規模なシミュレーションも可能となる。   In the present embodiment, the present invention is applied to one information processing apparatus 100 as a simulation synchronization apparatus. However, the present invention can be applied to a plurality of apparatuses. For example, the present invention can also be applied between an application (information processing apparatus) that operates an application and a server (information processing apparatus) that synchronizes processing between the applications. In this case, the function of each application described above is implemented in each application, and the function of the control unit 204 described above is implemented in the server. As a result, a large-scale simulation having a plurality of information processing apparatuses is also possible.

第1の実施形態に係る情報処理装置のハードウェア構成を示す図である。It is a figure which shows the hardware constitutions of the information processing apparatus which concerns on 1st Embodiment. 第1の実施形態に係る情報処理装置100の制御ブロックを示す図である。It is a figure which shows the control block of the information processing apparatus 100 which concerns on 1st Embodiment. 第1の実施形態に係る各アプリケーションの共通の制御ブロックを示す図である。It is a figure which shows the control block common to each application which concerns on 1st Embodiment. 各アプリケーションの処理を同期させる全体同期処理を説明する図である。It is a figure explaining the whole synchronous process which synchronizes the process of each application. 各アプリケーションにおける全体同期処理の制御手順について説明するフローチャートである。It is a flowchart explaining the control procedure of the whole synchronous process in each application. 制御部204における全体同期処理の制御手順について説明するフローチャートである。10 is a flowchart illustrating a control procedure of overall synchronization processing in control unit 204. 全体同期処理における制御部204及び各アプリケーションの連携状況を示す図である。It is a figure which shows the cooperation condition of the control part 204 and each application in a whole synchronous process. 全体同期処理を行っている間に発生するイベントが各アプリケーションの仮想時間上でどのようなタイミングとして捕らえられるかを説明する図である。It is a figure explaining what kind of timing the event which generate | occur | produces during performing the whole synchronous process is caught on the virtual time of each application. 第1の実施形態に係るイベント同期処理を含む全体同期処理の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the whole synchronous process including the event synchronous process which concerns on 1st Embodiment. イベント同期処理における制御部204及び各アプリケーションの連携状況を示す図である。It is a figure which shows the cooperation condition of the control part 204 and each application in an event synchronous process. 第2の実施形態に係る制御部204及び各アプリケーションの制御ブロックを示す図である。ここでは、第1の実施形態と異なる部分についてのみ説明を記載する。It is a figure which shows the control part 204 and control block of each application which concern on 2nd Embodiment. Here, only the parts different from the first embodiment will be described. 第2の実施形態に係るイベント同期処理を含む全体同期処理の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the whole synchronous process including the event synchronous process which concerns on 2nd Embodiment. イベント同期処理における制御部204及び各アプリケーションの連携状況を示す図である。It is a figure which shows the cooperation condition of the control part 204 and each application in an event synchronous process.

符号の説明Explanation of symbols

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: control units 205a to 205d: I / F
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:
A synchronization event transmission unit that relays the synchronization unit to transmit the synchronization event to the second simulation execution unit;
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;
Notification means for notifying the end of the processing after finishing the processing of the processing time,
The relay means is
A simulation synchronization apparatus characterized by transmitting a response event received from the second simulation execution means to the first and simulation execution means in response to the end of the process notified by the notification means.
応答イベント送信手段は、
前記処理手段による処理が完了した後に、応答イベントを送信し、
前記決定手段は、
前記第2のシミュレーション実行手段へ前記同期イベントを送信してから、該第2のシミュレーション実行手段から前記応答イベントを受信するまでの時間を計時する計時手段を備え、
前記計時された時間を前記処理時間として決定することを特徴とする請求項1に記載のシミュレーション同期装置。
The response event transmission means
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.
前記第2のシミュレーション実行手段は、
前記応答イベントを送信してから前記第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.
前記第2のシミュレーション実行手段は、
前記同期イベントを受信すると、該同期イベントに対する処理が完了する予定時間を算出する算出手段をさらに備え、
前記応答イベント送信手段は、
前記処理手段による処理が実行される前に、前記算出された予定時間を付加した応答イベントを送信し、
前記決定手段は、
前記受信した応答イベントに付加されている予定時間を前記処理時間として決定することを特徴とする請求項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のシミュレーション実行手段に前記決定された処理時間を送信し、
第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のシミュレーション実行手段は、
前記同期手段を中継して前記第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:
Relaying the synchronization means to transmit the synchronization event to the second simulation execution 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 end of the processing after the processing of the processing time is completed,
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.
JP2007155724A 2007-06-12 2007-06-12 Simulation synchronization apparatus and control method thereof Expired - Fee Related JP4875545B2 (en)

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 true JP2008310449A (en) 2008-12-25
JP2008310449A5 JP2008310449A5 (en) 2010-07-22
JP4875545B2 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011064915A (en) * 2009-09-16 2011-03-31 Canon Inc Simulation device, control method for the same, and program
CN107544282A (en) * 2016-06-27 2018-01-05 发那科株式会社 Analogue system
KR101833839B1 (en) 2016-10-14 2018-03-05 주식회사 샵캐스트 Apparatus and method of developing operating power decrease for copyright technology based on mobilde device
US11100131B2 (en) 2014-12-23 2021-08-24 Micro Focus Llc Simulation of a synchronization of records

Citations (4)

* Cited by examiner, † Cited by third party
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
JP2004038785A (en) * 2002-07-05 2004-02-05 Mitsubishi Electric Corp Integrated simulation system and program
JP2005339029A (en) * 2004-05-25 2005-12-08 Canon Inc Program cooperation system
JP2007233675A (en) * 2006-03-01 2007-09-13 Fujitsu Ten Ltd Simulation device

Patent Citations (4)

* Cited by examiner, † Cited by third party
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
JP2004038785A (en) * 2002-07-05 2004-02-05 Mitsubishi Electric Corp Integrated simulation system and program
JP2005339029A (en) * 2004-05-25 2005-12-08 Canon Inc Program cooperation system
JP2007233675A (en) * 2006-03-01 2007-09-13 Fujitsu Ten Ltd Simulation device

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011064915A (en) * 2009-09-16 2011-03-31 Canon Inc Simulation device, control method for the same, and program
US11100131B2 (en) 2014-12-23 2021-08-24 Micro Focus Llc Simulation of a synchronization of records
CN107544282A (en) * 2016-06-27 2018-01-05 发那科株式会社 Analogue system
JP2018005260A (en) * 2016-06-27 2018-01-11 ファナック株式会社 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

Also Published As

Publication number Publication date
JP4875545B2 (en) 2012-02-15

Similar Documents

Publication Publication Date Title
US10025286B2 (en) Simulation system, programmable controller, simulation device, and engineering tool
JP4577090B2 (en) In-vehicle electrical component test system and test method
JP2002063050A (en) Control program development support device
JP4875545B2 (en) Simulation synchronization apparatus and control method thereof
JP2016012172A (en) Communication system, programmable display, information processing device, operation control method, information processing method, and program
JP2005339029A (en) Program cooperation system
KR102198204B1 (en) Simulation device
JP6318500B2 (en) Simulation apparatus and simulation program
JP5314959B2 (en) Information processing apparatus, control method therefor, computer program, and storage medium
JP2010128987A (en) Simulation method and system of the same
JP5996125B2 (en) System construction support device
WO2020246097A1 (en) Support device and support program
WO2015181921A1 (en) Programmable display device and rendering software
JP6120657B2 (en) Integrated simulator apparatus, simulation method, and program
JP2006172128A (en) Processing method and information processing device for program cooperation system
JP6166530B2 (en) Information processing apparatus and program
JP2009163423A (en) Program cooperation system and simulation control method therefor
JP2018077783A (en) Traceability system
JP4341387B2 (en) Printer simulator and printer simulation method
JP2011090559A (en) Editor device, display input device, failure display method, screen creation method, and program
JP5162531B2 (en) Simulation support method, storage medium storing simulation support program, and simulation support apparatus
JP2003228496A (en) Control-program development supporting device
JP5693668B2 (en) Information processing apparatus, control method therefor, computer program, and storage medium
JP4905782B2 (en) Plant control system, plant control method, and program for plant control
JP2011107962A (en) Simulation device and simulation method

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