(57)【要約】【課題】同期を取りながらシミュレーション演算を実行する複数のシミュレータ部と接続する統合シミュレータ装置において、シミュレーション演算を一時停止させ、その時点における各シミュレータ部の内部状態の観測が可能であり、かつ、観測後にシミュレーション演算を再開可能な統合シミュレータ装置を提供する。【解決手段】複数のシミュレータ部と接続するシミュレーション管理部を有する統合シミュレータ装置が提供される。前記シミュレーション管理部は、シミュレータ状態を保持するシミュレータ状態管理部と、前記複数のシミュレータ部の各々に対する同期状態を取得する同期判定手段と、前記複数のシミュレータ部に一時停止指示を送出することを指示する一時停止指示手段と、同期応答を作成する同期管理部とを有する。前記一時停止指示手段は、前記同期状態を前記同期応答へ含めることを指示する。【選択図】図１
2014211806.tif 000002
【特許請求の範囲】
【請求項１】
各々がシミュレーション演算を実行する複数のシミュレータ部と接続するシミュレーション管理部を有する統合シミュレータ装置であって、
前記シミュレーション管理部は、
前記複数のシミュレータ部の各々に対するシミュレータ状態を保持するシミュレータ状態管理部と、
前記シミュレータ状態に基づいて、前記複数のシミュレータ部の間で同期が確定しているか否かを判定することにより、前記複数のシミュレータ部の各々に対する同期状態を取得する同期判定手段と、
前記複数のシミュレータ部に対して一時停止指示を送出することを指示する一時停止指示手段と、
前記複数のシミュレータ部に対して送出される同期応答を作成する同期管理部と
を有し、
前記一時停止指示手段は、前記同期判定手段が取得した同期状態を前記同期応答へ含めることを指示することを特徴とする統合シミュレータ装置。
【請求項２】
前記シミュレータ状態は夫々、仮想時間及びシミュレーション演算結果を含み、
前記同期判定手段は、前記仮想時間を比較することにより同期が確定しているシミュレータ部を特定することを特徴とする請求項１に記載の統合シミュレータ装置。
【請求項３】
前記シミュレータ部は、
シミュレーション演算を実行するシミュレーション演算部と、
前記シミュレーション演算部を制御するシミュレーション実行制御部と、
同期要求を作成するシミュレーション同期部と
を有し、
前記シミュレーション実行制御部は、進行判定手段を備え、
前記進行判定手段は、前記シミュレーション管理部から送出された同期応答に含まれる同期状態を記憶し、
前記同期状態を参照することにより前記シミュレータ部の同期が確定しているか否かを判定することを特徴とする請求項１に記載の統合シミュレータ装置。
【請求項４】
前記進行判定手段が前記シミュレータ部の同期が確定していると判定した場合は、前記シミュレーション演算部がシミュレーション演算を実行した後で、前記シミュレーション同期部は、同期要求を作成し、
前記進行判定手段が前記シミュレータ部の同期が確定していないと判定した場合は、前記シミュレーション演算部がシミュレーション演算を実行することなく、前記シミュレーション同期部は、同期要求を作成することを特徴とする請求項３に記載の統合シミュレータ装置。
【請求項５】
前記シミュレータ状態は夫々、仮想時間、同期予定時間、及びシミュレーション演算結果を含み、
前記同期判定手段は、前記仮想時間を比較すること及び前記同期予定時間を比較することにより同期が確定しているシミュレータ部を特定することを特徴とする請求項１に記載の統合シミュレータ装置。
【請求項６】
前記シミュレータ部は、
シミュレーション演算を実行するシミュレーション演算部と、
前記シミュレーション演算部を制御するシミュレーション実行制御部と、
同期要求を作成するシミュレーション同期部と
とを有し、
前記シミュレーション実行制御部は、前記シミュレーション管理部に一時停止要求を送出し、かつ、前記シミュレーション管理部からの一時停止指示を受け付けることを特徴とする請求項５に記載の統合シミュレータ装置。
【請求項７】
前記シミュレーション実行制御部は、進行判定手段を備え、
前記実行制御部が前記シミュレーション管理部からの一時停止指示があると判定した場合に、前記進行判定手段は、前記シミュレーション管理部から送出された同期応答に含まれる同期状態を記憶し、前記同期状態を参照することにより前記シミュレータ部の同期が確定しているか否かを判定することを特徴とする請求項６に記載の統合シミュレータ装置。
【請求項８】
前記シミュレーション管理部は、シミュレーション状態表示部を更に備えたことを特徴とする請求項１に記載の統合シミュレータ装置。
【請求項９】
コンピュータを請求項１乃至８の何れか１項に記載の統合シミュレータ装置として機能させるためのプログラム。
【請求項１０】
各々がシミュレーション演算を実行する複数のシミュレータ部と接続するシミュレーション管理部を有する統合シミュレータ装置におけるシミュレーション方法であって、
前記シミュレーション管理部が、シミュレータ部から送出された同期要求を受け付けるステップと、
前記シミュレーション管理部が、前記同期要求に含まれる情報をシミュレータ状態として保持するステップと、
前記シミュレーション管理部が、前記シミュレータ状態に基づいて、前記複数のシミュレータ部の間で同期が確定しているか否かを判定することにより、前記複数のシミュレータ部の各々に対する同期状態を取得するステップと、
前記シミュレーション管理部が、前記複数のシミュレータ部に対する同期応答を作成するステップと、
前記シミュレーション管理部が、前記複数のシミュレータ部に対して一時停止指示を送出するステップと、
前記シミュレーション管理部が、前記同期状態を前記同期応答に含めた上で、前記複数のシミュレータ部に対して送出するステップと
備えたことを特徴とするシミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、統合シミュレータ装置、シミュレーション方法、及びプログラムに関する。具体的には、本発明は、２つ以上のシミュレータのシミュレーション演算を、同期を取りながら連携して、シミュレーションを実行する統合シミュレータ装置、シミュレーション方法、及びプログラムに関する。
【背景技術】
【０００２】
シミュレーション技術の進歩と、シミュレーションを実行する計算機環境の性能向上とにより、２つ以上のシミュレータのシミュレーション演算を、仮想時間の同期を取りながら連携して、シミュレーションを実行することが可能になってきた。例えば、CPUを模擬する命令セットシミュレータ（以下「ISS」と略記）と、電気回路を模擬する回路シミュレータと、装置の機構的挙動を模擬するメカ機構シミュレータとを連携させ、ソフトウェアによる装置の挙動全体をシミュレーションすることができる。このような複数のシミュレータのシミュレーション演算を、仮想時間で同期を取りながら連携して、シミュレーションを実行するシミュレータ装置及びシミュレーション方法に関して、特許文献１、特許文献２に記載の技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−１７１５５２号公報
【特許文献２】特開２００９−２９５０１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
仮想時間の同期を取りながら連携して、複数のシミュレータによるシミュレーション演算を実行するシミュレータ装置において、シミュレーション演算を一時停止し、その時点で各シミュレータのシミュレーション演算状態を観測したいというニーズがある。このニーズの例として、ISSと、回路シミュレータと、メカ機構シミュレータとを連携させることにより、制御ソフトウェアをISS上で動作させて、メカの挙動や電気回路の挙動を見る場合を検討する。このような連携シミュレーションを行う際、制御ソフトウェアを所望の条件で一時停止させて、そのときの電気回路の信号状態（信号レベルやレジスタ設定値）、メカ機構における着目部材の動作状態（部材間の位置関係や部材にかかる力）を確認できれば望ましい。なお、制御ソフトウェアを一時停止させる所望の条件とは、例えば、プログラムの実行命令や、メモリや回路へのアクセス等である。
【０００５】
特許文献１では、所定の仮想時間までシミュレーション演算を進め、進みが早いシミュレータは、進みの遅いシミュレータが所定の仮想時間まで演算が進むのを待機することにより（即ち「同期待ち」を行うことにより）、シミュレータ間の同期を取っている。従って、進みの遅いシミュレータがシミュレーション演算を一時停止した場合、進みの早いシミュレータは、進みの遅いシミュレータが所定の仮想時間に達するまで待機（進みの早いシミュレータは「同期待ち」で停止している）している。よって、ユーザは、進みの速いシミュレータにおいて、シミュレーション演算状態を観測する操作を行うことができないという課題がある。また、進みの遅いシミュレータは、所定の仮想時間に達していないため同期応答を返せない。よって、ユーザは、進みの遅いシミュレータにおいて、シミュレーション演算状態を観測する操作を行うことができないという課題もある（図２０を参照）。
【０００６】
また、特許文献２では、各シミュレータの時間を判定して、シミュレーション演算部へパラメータを通知する方法が提案されている。しかしながら、演算パラメータを切り替えても、シミュレーション演算時間（仮想時間）を調整することができないため、一時停止解除時にシミュレーション演算結果が一時停止しない場合と異なってくるという課題がある（図２１を参照）。
【０００７】
このように、従来の技術では、ユーザがシミュレーションを一時停止させてシミュレーション演算の内部状態を観測する操作を行うことができないという課題があった。また、ユーザがシミュレーションを一時停止させ、その後、一時停止を解除したときに、シミュレーション演算の結果が一時停止しない場合と異なってしまうという課題があった。
【課題を解決するための手段】
【０００８】
本発明に係る統合シミュレータ装置は、各々がシミュレーション演算を実行する複数のシミュレータ部と接続するシミュレーション管理部を有する統合シミュレータ装置であって、前記シミュレーション管理部は、前記複数のシミュレータ部の各々に対するシミュレータ状態を保持するシミュレータ状態管理部と、前記シミュレータ状態に基づいて、前記複数のシミュレータ部の間で同期が確定しているか否かを判定することにより、前記複数のシミュレータ部の各々に対する同期状態を取得する同期判定手段と、前記複数のシミュレータ部に対して一時停止指示を送出することを指示する一時停止指示手段と、前記複数のシミュレータ部に対して送出される同期応答を作成する同期管理部とを有し、前記一時停止指示手段は、前記同期判定手段が取得した同期状態を前記同期応答へ含めることを指示する。
【発明の効果】
【０００９】
同期を取りながら連携して、複数のシミュレータによるシミュレーション演算を実行する統合シミュレータ装置が提供される。本発明に係る統合シミュレータ装置により、シミュレーション演算を一時停止させ、その時点における各シミュレータの内部状態の観測が可能となる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係る統合シミュレータ装置の構成を説明するブロック図である。
【図２】第１の実施形態に係るシミュレータ部の処理フローの一例を示すフロー図である。
【図３】第１の実施形態に係るシミュレーション管理部の処理フローの一例を示すフロー図である。
【図４】第１の実施形態に係る同期シーケンスの一例を示すシーケンス図である。
【図５】第１の実施形態に係る同期シーケンスの一例を示すシーケンス図である。
【図６】第１の実施形態に係る同期シーケンスの一例を示すシーケンス図である。
【図７】第１の実施形態に係る同期判定手段が参照する各シミュレータ部の仮想時間と、同期確定仮想時間との関係を示す図である。
【図８】第１の実施形態に係るシミュレータ部と、シミュレーション管理部との間でやり取りされる要求・指示一覧を示す図である。
【図９】第２の実施形態に係る統合シミュレータ装置の構成を説明するブロック図である。
【図１０】第２の実施形態に係るシミュレータ部の処理フローの一例を示すフロー図である。
【図１１】第２の実施形態に係るシミュレーション管理部の処理フローの一例を示すフロー図である。
【図１２】第２の実施形態に係る同期シーケンスの一例を示すシーケンス図である。
【図１３】第２の実施形態に係るシミュレータ部と、シミュレーション管理部との間でやり取りされる要求・指示一覧を示す図である。
【図１４】第３の実施形態に係る統合シミュレータ装置の構成を説明するブロック図である。
【図１５】第３の実施形態に係るシミュレーション状態表示部における画面表示の一例である。
【図１６】第３の実施形態に係るシミュレーション状態表示部における画面表示の一例である。
【図１７】従来の統合シミュレータ装置の構成を説明するブロック図である。
【図１８】従来のシミュレータ部の処理フローを示すフロー図である。
【図１９】従来のシミュレーション管理部の処理フローを示すフロー図である。
【図２０】従来の統合シミュレータ装置の問題を説明するためのシーケンス図である。
【図２１】従来の統合シミュレータ装置の問題を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１１】
（第１の実施形態）
以下、図１〜図８を参照しながら本発明の第１の実施形態を説明する。
【００１２】
［統合シミュレータ装置の構成］
図１を参照しながら、本実施形態に係る統合シミュレータ装置の構成を説明する。図１は、統合シミュレータ装置の構成を説明するブロック図である。
【００１３】
統合シミュレータ装置は、シミュレーション管理部１００と、３個のシミュレータ部１５０とから構成される。３個のシミュレータ部１５０の各々の同期間隔は、10ms、20ms、30msであり相違する。なお、シミュレーション管理部と、シミュレータ部とは、同一装置内や同一計算機内にあっても良く、或いは、異なる装置や異なる計算機に分散していても良い。また、シミュレータ部は、計算機上のソフトウェアであっても良いし、専用のシミュレータ装置であっても良い。
【００１４】
シミュレーション管理部１００は、接続されたシミュレータ部１５０の状態の管理と、実行の制御とを行う。シミュレーション管理部１００は、シミュレーション実行指示部１１０と、シミュレータ状態管理部１２０と、時刻管理部１３０と、同期管理部１４０とから構成される。
【００１５】
シミュレーション実行指示部１１０は、シミュレーションの実行を司り、シミュレーションの開始、シミュレーションの一時停止、シミュレーションの一時停止解除、シミュレーションの終了を指示する。シミュレーション実行指示部１１０は、一時停止指示手段１１１を備える。シミュレーション管理部１００が一時停止要求を受け付けると、一時停止指示手段１１１は、シミュレータ部１５０へ一時停止指示を送出することを指示し、同期管理部１４０に対して、同期判定手段１３１により取得した同期状態を同期応答へ含めるよう指示する。
【００１６】
シミュレータ状態管理部１２０は、接続されたシミュレータ部１５０の各々に対応したシミュレータ状態１２１を保持する。シミュレータ状態１２１は、仮想時間１２２と、シミュレーション演算結果１２３とを含む。シミュレータ状態管理部１２０は、シミュレータ部１５０から受け付けた同期要求に含まれる仮想時間１６１及びシミュレーション演算結果１５２を、仮想時間１２２及びシミュレーション演算結果１２３として保持する。
【００１７】
時刻管理部１３０は、シミュレータ状態管理部１２０が保持するシミュレータ状態１２１の各々に含まれる仮想時間１２２を仮想時間１３２として参照する。時刻管理部１３０は、同期判定手段１３１を備え、同期判定手段１３１は、シミュレータ部１５０の各々に対応する仮想時間１３２を比較することにより、同期が確定したシミュレータ部を特定する。同期を確定する方法は、後述する。
【００１８】
同期管理部１４０は、同期応答１４１を作成する。同期応答１４１は、次のシミュレーションを演算するためのシミュレーション演算条件１４２を含む。同期管理部１４０は、シミュレータ状態管理部１２０が保持するシミュレーション演算結果１２３を参照することにより、同期応答１４１を作成する。同期管理部１４０は、同期判定手段１３１が判定したシミュレータの同期が確定したか否かを示す同期状態を、同期応答１４１に追加する。作成された同期応答１４１は、シミュレータ部１５０に送出される。
【００１９】
シミュレータ部１５０は、シミュレーション演算部１６０と、シミュレーション実行制御部１７０と、シミュレーション同期部１８０とから構成される。
【００２０】
シミュレーション演算部１６０は、シミュレーション演算を実行する。シミュレーション演算部１６０は、仮想時間１６１と、演算処理単位時間１６２とを保持し、シミュレーション演算条件１５１を入力として演算処理単位時間１６２で指定された時間分のシミュレーション演算を実行し、シミュレーション演算結果１５２を出力する。仮想時間１６１は、既に実行されたシミュレーション演算の演算処理単位時間１６２を積分した時間である。なお、演算処理単位時間１６２は、固定時間であっても良く、可変時間であっても良い。
【００２１】
シミュレーション実行制御部１７０は、シミュレータ部１５０がシミュレータ管理部１００からの指示を受け付けたとき、シミュレーション演算部１６０を制御する。具体的には、シミュレーション実行制御部１７０は、シミュレーションの開始、シミュレーションの一時停止、シミュレーションの一時停止解除、シミュレーションの終了を制御する。シミュレーション実行制御部１７０は、進行判定手段１７１を備える。進行判定手段１７１は、シミュレーション同期部１８０がシミュレーション管理部１００から受け付けた同期応答に含まれる同期状態から同期が確定しているか否かを判定する。その上で、シミュレーション実行制御部１７０は、シミュレーション演算部１６０に対してシミュレーション演算を指示し、またはシミュレーション同期部１８０に対して同期要求発行を指示する。
【００２２】
シミュレーション同期部１８０は、シミュレーション管理部１００に同期要求を送出し、シミュレーション管理部１００から同期応答を受け付ける。シミュレーション同期部１８０は、同期間隔１８１を保持する。シミュレーション同期部１８０は、仮想時間１６１と、同期間隔１８１とを比較して同期のタイミングと判定したとき、仮想時間１６１と、シミュレーション演算結果１５２とから構成される同期要求を作成する。作成された同期要求は、シミュレーション管理部１００へ送出され、その後、シミュレータ部１５０は、シミュレーション管理部１００から送出される同期応答を待つ。なお、同期間隔１８１は、固定間隔であっても良く、可変間隔であっても良い。
【００２３】
参考のために、図１７に、従来の統合シミュレータ装置の構成を示す。図１と、図１７とを比較すると、本実施形態に係るシミュレーション実行制御部１７０は、進行判定手段１７１を備え、シミュレーション実行指示部１１０は、一時停止手段１１１を備えており、これらの点において、本実施形態は、従来技術と相違する。
【００２４】
なお、上述した例では、統合シミュレータ装置は３個のシミュレータ部から構成され、各シミュレータ部の同期間隔を10ms、20ms、30msとして説明したが、シミュレータ部の個数又は同期間隔によって本発明は限定されない。統合シミュレータ装置は、複数のシミュレータ部から構成されていれば良い。
【００２５】
［シミュレータ部の処理］
図２を参照しながら、本実施形態に係るシミュレータ部（図１のシミュレータ部１５０）の処理の流れを説明する。図２は、シミュレータ部の処理フローの一例を示すフロー図である。
【００２６】
ステップＳ２０１において、シミュレータ部１５０は、シミュレーション管理部１００から送られる(1)開始指示を待つ。シミュレーション実行制御部１７０がシミュレーション管理部１００から送られる(1)開始指示を受け付けると、処理はステップＳ２０２に進む。
【００２７】
ステップＳ２０２において、シミュレーション演算部１６０は、シミュレーション演算を実行する。シミュレーション演算部１６０は、所定の時間分のシミュレーション演算を実行し、仮想時間（以下、仮想時間をＴとする）を進め、シミュレーション演算結果１５２を出力する。次いで、処理はステップＳ２０３に進む。なお、後述するが、ステップＳ２０２は後続のステップの後で再び実行される場合があり、ステップＳ２０２のうちの最先のステップＳ２０２において、仮想時間Ｔの初期化及び初期化演算が行われる。
【００２８】
ステップＳ２０３において、シミュレーション同期部１８０は、(2)同期要求を作成する。(2)同期要求は、仮想時間１６１と、シミュレーション演算結果１５２とを含む。シミュレーション同期部１８０は、作成した(2)同期要求をシミュレーション管理部１００へ送出する。次いで、処理はステップＳ２０４に進む。
【００２９】
ステップＳ２０４において、シミュレータ部１５０は、シミュレーション管理部１００から送られる(3)同期応答を待つ。シミュレーション同期部１８０は、シミュレーション管理部１００から送られる(3)同期応答を受け付けると、(3)同期応答に含まれるシミュレーション演算条件をシミュレーション演算条件１５１にセットする。次いで、処理はステップＳ２０５に進む。
【００３０】
ステップＳ２０５において、シミュレーション実行制御部１７０は、シミュレーション管理部１００から送られた(8)終了指示の有無を判定する。シミュレーション管理部１００から送られた(8)終了指示がある場合は、シミュレーションを終了し、シミュレーション管理部１００から送られた(8)終了指示がない場合は、処理はステップＳ２０６に進む。
【００３１】
ステップＳ２０６において、シミュレーション実行制御部１７０は、シミュレーション管理部１００から送られた(4)一時停止指示の有無を判定する。シミュレーション管理部１００から送られた(4)一時停止指示がある場合は、処理はステップＳ２０７に進む。シミュレーション管理部１００から送られた(4)一時停止指示がない場合は、処理はステップＳ２０２に戻る。この場合、ステップＳ２０２において、シミュレーション演算部１６０は、ステップＳ２０４でセットされたシミュレーション演算条件１５１を入力として演算処理単位時間１６２分のシミュレーション演算を実行し、シミュレーション演算結果１５２を出力する。また、シミュレーション演算部１６０は、演算処理単位時間１６２だけ仮想時間１６１を進める。このシミュレーション演算をシミュレーション同期部１８０の同期間隔１８１に達するまで繰り返す。
【００３２】
ステップＳ２０７において、進行判定手段１７１は、シミュレーション同期部１８０で受け取った(3)同期応答に含まれる同期状態を記憶する。なお、同期状態を記憶する代わりに、送られた(3)同期応答に含まれる同期確定仮想時間を記憶しても良い。同期確定仮想時間については後述する。次いで、処理はステップＳ２０８に進む。
【００３３】
ステップＳ２０８において、ユーザは、シミュレーション実行制御部１７０を操作して一時停止中のシミュレーション演算部１６０を参照することにより、シミュレーション演算の内部状態を確認することができる。この操作は、シミュレーション管理部１００から送られてくる(5)一時停止解除指示をシミュレーション実行制御部１７０が受け付けるまで実行可能である。次いで、処理はステップＳ２０９に進む。
【００３４】
ステップＳ２０９において、シミュレータ部１５０は、シミュレーション管理部１００から送られる(5)一時停止解除指示を待つ。シミュレーション実行制御部１７０は、シミュレーション管理部１００から送られる(5)一時停止解除指示を受け付けると、処理はステップＳ２１０に進む。なお、図２のフローでは順番に記載しているが、内部状態確認操作ステップＳ２０８と、一時停止解除指示待ちステップＳ２０９とは、並行して実行されている。
【００３５】
ステップＳ２１０において、進行判定手段１７１は、ステップＳ２０７で記憶した同期状態から同期が確定しているか否かを判定する。同期が確定していると判定された場合は、処理はステップＳ２０２に戻る。この場合、ステップＳ２０４で受け付けた(3)同期応答により同期が確定している。従って、ステップＳ２０２において、(3)同期応答に含まれるシミュレーション演算条件１４２がシミュレーション演算条件１５１としてシミュレーション演算部１６０に入力されて、シミュレーション演算が実行される。一方、同期が確定していないと判定された場合は、処理はステップＳ２０３に戻る。この場合、ステップＳ２０４で受け付けた(3)同期応答により同期が確定していないので、(3)同期応答に含まれるシミュレーション演算条件１４２は無効であり、シミュレーション演算を実行することができない。従って、仮想時間１６１を進めることなく同期要求を作成する。
【００３６】
参考のために、図１８に、従来のシミュレータ部の処理フローを示す。図２と、図１８とを比較すると、本実施形態に係るシミュレータ部の処理フローは、同期状態記憶ステップＳ２０７と、同期状態判定ステップＳ２１０とを備えており、この点において、本実施形態は、従来技術と相違する。
【００３７】
［シミュレーション管理部の処理］
図３を参照しながら、本実施形態に係るシミュレーション管理部（図１のシミュレーション管理部１００）の処理の流れを説明する。図３は、シミュレーション管理部の処理フローの一例を示すフロー図である。
【００３８】
ステップＳ３０１において、シミュレーション管理部１００は、接続されているシミュレータ部１５０に対し、シミュレーション実行指示部１１０からの(1)開始指示を送出する。次いで、処理はステップＳ３０２に進む。
【００３９】
ステップＳ３０２において、シミュレーション管理部１００は、シミュレーション実行指示部１１０からの終了要求の有無により、シミュレーションを終了させるか否かを判定する。シミュレーションを継続させる場合、処理はステップＳ３０３に進み、シミュレーションを終了させる場合、処理はステップＳ３１３に進む。
【００４０】
ステップＳ３０３において、シミュレーション管理部１００は、シミュレータ部１５０から(2)同期要求が送られるのを待つ。シミュレータ部１５０から(2)同期要求を受け付けると、処理はステップＳ３０４に進む。
【００４１】
ステップＳ３０４において、シミュレータ状態管理部１２０は、シミュレータ部１５０に対応するシミュレータ状態１２１を保持する。シミュレータ状態管理部１２０は、送られた(2)同期要求に含まれる仮想時間及びシミュレーション演算結果を、シミュレータ状態１２１に含まれる仮想時間１２２及びシミュレーション演算結果１２３として保持する。次いで、処理はステップＳ３０５に進む。
【００４２】
ステップＳ３０５において、同期判定手段１３１は、シミュレータ状態管理部１２０が保持しているシミュレータ状態１２１の仮想時間１２２を仮想時間１３２として参照する。同期判定手段１３１は、仮想時間１３２を比較することにより、シミュレーションの進捗状況を把握し、同期が確定したシミュレータ部を特定する。ここで、参照される仮想時間１３２のうち、最も遅れている仮想時間を同期確定仮想時間とし、この同期確定仮想時間を持つシミュレータを同期が確定したシミュレータ部（同期確定のシミュレータ部）とする。同期確定仮想時間以外の仮想時間（同期確定仮想時間より未来の仮想時間）を持つシミュレータ部を同期が確定していないシミュレータ部（同期未確定のシミュレータ部）とする。次いで、処理はステップＳ３０６に進む。
【００４３】
ステップＳ３０６において、同期管理部１４０は、シミュレータ部に対して送出される同期応答１４１を作成する。次いで、処理はステップＳ３０７に進む。
【００４４】
ステップＳ３０７において、シミュレーション管理部１００は、シミュレーション実行指示部１１０からの一時停止要求の有無を判定する。シミュレーション実行指示部１１０からの一時停止要求がある場合、処理はステップＳ３０８に進み、シミュレーション実行指示部１１０からの一時停止要求がない場合、処理はステップＳ３１２に進む。
【００４５】
ステップＳ３０８において、一時停止指示手段１１１は、接続されている全てのシミュレータ部１５０に対して(4)一時停止指示を送出するよう指示する。次いで、処理はステップＳ３０９に進む。
【００４６】
ステップＳ３０９において、一時停止指示手段１１１は、同期判定手段１３１を介してシミュレータ部１５０各々の同期状態を把握し、同期管理部１４０に対しこの同期状態を同期応答１４１に追加するよう指示する。指示を受けた同期管理部１４０は、(3)同期応答を作成し、シミュレーション管理部１００は、作成した(3)同期応答をシミュレータ部１５０に送出する。次いで、処理はステップＳ３１０に進む。
【００４７】
ステップＳ３１０において、シミュレーション管理部１００は、シミュレーション実行指示部１１０からの一時停止解除要求を待つ。シミュレーション管理部１００が一時停止解除要求を受け付けると、処理はステップＳ３１１に進む。
【００４８】
ステップＳ３１１において、一時停止指示手段１１１は、接続されているシミュレータ部１５０に対して(5)一時停止解除指示を送出するよう指示する。次いで、処理はステップＳ３０２に戻る。
【００４９】
ステップＳ３１２において、シミュレーション管理部１００は、同期が確定しているシミュレータ部１５０に対して(3)同期応答を送出する。次いで、処理はステップＳ３０２に戻る。
【００５０】
ステップＳ３１３において、シミュレーション管理部１００は、(8)終了指示をシミュレータ部１５０へ送出する。
【００５１】
参考のために、図１９に、従来のシミュレーション管理部の処理フローを示す。図３と、図１９とを比較すると、本実施形態に係るシミュレーション管理部の処理フローでは、ステップＳ３０９において、同期状態を同期応答に追加した上で、同期応答をシミュレータ部に送出しており、この点において、本実施形態は、従来技術と相違する。
【００５２】
［同期シーケンスの例］
図４を参照しながら、シミュレーション管理部１００と、シミュレータ部１５０との間の同期シーケンスを説明する。図４は、本発明の第１の実施形態に係る同期シーケンスの一例を示すシーケンス図である。図４に示す例では、統合シミュレータ装置は、シミュレーション管理部と、第１のシミュレータ部と、第２のシミュレータ部と、第３のシミュレータ部とから構成される。ここで、第１のシミュレータ部が持つ仮想時間をT1とし、第２のシミュレータ部が持つ仮想時間をT2とし、第３のシミュレータ部が持つ仮想時間をT3とする。また、第１のシミュレータ部が持つ同期間隔を10msとし、第２のシミュレータ部が持つ同期間隔を20msとし、第３のシミュレータ部が持つ同期間隔を30msとする。以下、時系列に沿って（図４の上から下に向かって）同期シーケンスを説明する。
【００５３】
まず、シミュレーション管理部は、第１のシミュレータ部と、第２のシミュレータ部と、第３のシミュレータ部とに対して、(1)開始指示を一斉に送出する。
【００５４】
次いで、(1)開始指示を受け付けた第１のシミュレータ部は、初期化演算を実行し仮想時間をT1=0msとして（図２のＳ２０２）、(2)同期要求（0ms）を作成する（図２のＳ２０３）。同期要求は、仮想時間T1と、シミュレーション演算結果とを含む。第１のシミュレータ部は、作成した(2)同期要求（0ms）をシミュレーション管理部に送出する。同様に、(1)開始指示を受け付けた第２のシミュレータ部は、初期化演算を実行し仮想時間をT2=0msとして、(2)同期要求（0ms）を作成し、作成した(2)同期要求（0ms）をシミュレーション管理部に送出する。同様に、(1)開始指示を受け付けた第３のシミュレータ部は、初期化演算を実行し仮想時間をT3=0msとして(2)同期要求（0ms）を作成し、作成した(2)同期要求（0ms）をシミュレーション管理部に送出する。
【００５５】
シミュレーション管理部が第１〜第３のシミュレータ部からの(2)同期要求(0ms)を受け付けると、シミュレータ状態管理部１２０は、シミュレータ部の各々に対するシミュレータ状態１２１を保持する（図３のＳ３０４）。シミュレータ状態１２１は、仮想時間１２２と、シミュレーション演算結果１２３とを含む。
【００５６】
次いで、同期判定手段１３１は、シミュレータ部のうちで同期確定のシミュレータ部を特定する（図３のＳ３０５）。ここで、第１のシミュレータ部の仮想時間はT1=0msであり、第２のシミュレータ部の仮想時間はT2=0msであり、第３のシミュレータ部の仮想時間はT3=0msであるから、同期確定仮想時間は0msとなる。従って、同期判定手段１３１は、第１〜第３のシミュレータ部の全てを同期確定のシミュレータ部として特定する。ここで、本実施形態に係る同期シーケンスを理解するために図７を参照する。図７は、図４の同期シーケンスにおいて同期判定手段１３１が参照する各シミュレータ部の仮想時間１３２と、同期確定仮想時間との関係を示す図である。図７において、各シミュレータ部の仮想時間の列の、矢印「→」の左側の時間及び矢印「→」を伴わない時間は、(2)同期要求にてシミュレータ部から送られた仮想時間を表す。また、図７において、矢印「→」は同期が確定したことを表し、矢印「→」の右側の時間は同期確定仮想時間を表す。従って、矢印「→」の記載の無いシミュレータ部は、同期未確定のシミュレータ部である。再右列の同期確定仮想時間は、同期判定手段によって判定された最も遅れている仮想時間である。
【００５７】
次いで、同期管理部１４０は、シミュレータ状態１２１に含まれたシミュレーション演算結果１２３から、同期確定の第１〜第３のシミュレータ部に送付される同期応答１４１に含まれるシミュレーション演算条件１４２を作成する（図３のＳ３０６）。このとき、同期管理部１４０は、同期確定仮想時間と、シミュレータ状態管理部１２０が保持するシミュレータ状態１２１に含まれる仮想時間１２２とを比較する。同期管理部１４０は、同期確定仮想時間より進んでいない仮想時間１２２に対応するシミュレーション演算結果１２３を参照して次のシミュレーション用のシミュレーション演算条件１４２を作成することにより、同期応答１４１を作成する。現在、同期状態判定ステップ（図３のＳ３０５）で、同期確定仮想時間は0msかつ第１のシミュレータ部と、第２のシミュレータ部と、第３のシミュレータ部とが同期確定のシミュレータ部として特定された状態である。従って、同期管理部１４０は、第１のシミュレータ部と、第２のシミュレータ部と、第３のシミュレータ部とに対して送出される(3)同期応答（0ms）を作成する（図３のＳ３０６）。このとき、各シミュレータ部に対応するシミュレーション演算条件１４２は、シミュレータ状態１２１に含まれる仮想時間0msに対応したシミュレーション演算結果１２３を参照して作成される。
【００５８】
次いで、シミュレーション管理部は、一時停止要求有無判定ステップ（図３のＳ３０７）にて一時停止なしと判定され、同期が確定している第１〜第３のシミュレータ部に対して、(3)同期応答（0ms）を送出する（図３のＳ３１２）。その後、シミュレーション管理部は、シミュレーション終了判定ステップ（図３のＳ３０２）を経て、同期要求を待つ（図３のＳ３０３）。
【００５９】
(3)同期応答（0ms）を受け付けた第１のシミュレータ部は、シミュレーション終了判定ステップ（図２のＳ２０５）及び一時停止指示有無判定ステップ（図２のＳ２０６）を経て、シミュレーション演算を実行する（図２のＳ２０２）。第１のシミュレータ部は、第１のシミュレータ部の同期間隔（10ms）分、シミュレーション演算を実行し、T1=10ms時点のシミュレーション演算結果１５２を出力し、仮想時間１６１をT1=10msとする。次いで、第１のシミュレータ部は、(2)同期要求(10ms)を作成し（図２のＳ２０３）、作成した(2)同期要求(10ms)をシミュレーション管理部に送出する。同様に、第２のシミュレータ部は、(2)同期要求(20ms)を作成し、作成した(2)同期要求(20ms)をシミュレーション管理部に送出する。同様に、第３のシミュレータ部は、(2)同期要求(30ms)を作成し、作成した(2)同期要求(30ms)をシミュレーション管理部に送出する。
【００６０】
第１のシミュレータ部から(2)同期要求(10ms)を受け付けたシミュレーション管理部は、シミュレータ状態管理部１２０に第１のシミュレータ部に対応するシミュレータ状態１２１を追加して保持させる（図３のＳ３０４）。追加されたシミュレータ状態１２１において、仮想時間１２２は、T1=10msであり、シミュレーション演算結果１２３は、T1=10ms時点の第１のシミュレータ部のシミュレーション演算結果である。同様に、第２のシミュレータ部から(2)同期要求(20ms)を受け付けたシミュレーション管理部は、シミュレータ状態管理部１２０にシミュレータ状態１２１を追加して保持させる。同様に、第３のシミュレータ部から(2)同期要求(30ms)を受け付けたシミュレーション管理部は、シミュレータ状態管理部１２０にシミュレータ状態１２１を追加して保持させる。
【００６１】
次いで、同期判定手段１３１は、シミュレータ部のうちで同期確定のシミュレータ部を特定する（図３のＳ３０５）。ここで、第１のシミュレータ部の仮想時間はT1=10msであり、第２のシミュレータ部の仮想時間はT2=20msであり、第３のシミュレータ部の仮想時間はT3=30msであるから、同期確定仮想時間は10msとなる。従って、同期判定手段１３１は、第１のシミュレータ部を同期確定のシミュレータ部として特定し、第２のシミュレータ部及び第３のシミュレータ部を同期未確定のシミュレータ部として特定する。図７を参照すると、同期判定10msの行において、第１のシミュレータ部の仮想時間は、「10ms→10ms」である。
【００６２】
次いで、同期管理部１４０は、同期確定の第１のシミュレータ部に送出される(3)同期応答(10ms)を作成する（図３のＳ３０６）。この際、シミュレーション演算条件１４２は、T1=10msに対応したシミュレーション演算結果１２３と、T2=0msに対応したシミュレーション演算結果１２３と、T3=0msに対応したシミュレーション演算結果１２３とを参照して作成される。シミュレータ状態管理部１２０は、第２のシミュレータ部のシミュレーション演算結果に関し、T2=0msにおけるシミュレーション演算結果と、T2=20msにおけるシミュレーション演算結果とを保持する。しかし、同期確定仮想時間は10msなので、未来(T2=20ms)のシミュレーション演算結果は使えない。従って、(3)同期応答(10ms)の作成の際は、T2=0msに対応したシミュレーション演算結果が採用される。また、シミュレータ状態管理部１２０は、第３のシミュレータ部のシミュレーション演算結果に関し、T3=0msにおけるシミュレーション演算結果と、T3=30msにおけるシミュレーション演算結果とを保持する。しかし、同期確定仮想時間は10msなので、未来(T3=30ms)のシミュレーション演算結果は使えない。従って、(3)同期応答(10ms)の作成の際は、T3=0msに対応したシミュレーション演算結果が採用される。
【００６３】
次いで、シミュレーション管理部は、一時停止要求有無判定ステップ（図３のＳ３０７）にて一時停止要求なしと判定された後、同期確定の第１のシミュレータ部に対して、(3)同期応答（10ms）を送出する（図３のＳ３１２）。その後、シミュレーション管理部は、シミュレーション終了判定ステップ（図３のＳ３０２）を経て、同期要求を待つ（図３のＳ３０３）。なお、第２のシミュレータ部及び第３のシミュレータ部は、同期未確定なので、(3)同期応答（10ms）は、送出されない。
【００６４】
(3)同期応答（10ms）を受け付けた第１のシミュレータ部は、シミュレーション終了判定ステップ（図２のＳ２０５）及び一時停止指示有無判定ステップ（図２のＳ２０６）を経て、シミュレーション演算を実行する（図２のＳ２０２）。第１のシミュレータ部は、第１のシミュレータ部の同期間隔（10ms）分、シミュレーション演算を実行し、T1=20ms時点のシミュレーション演算結果１５２を出力し、仮想時間１６１をT1=20msとする。次いで、第１のシミュレータ部は、(2)同期要求(20ms)を作成し（図２のＳ２０３）、作成した(2)同期要求(20ms)をシミュレーション管理部に送出する。
【００６５】
第１のシミュレータ部から(2)同期要求(20ms)を受け付けたシミュレーション管理部は、シミュレータ状態管理部１２０に第１のシミュレータ部に対応するシミュレータ状態１２１を追加して保持させる（図３のＳ３０４）。追加されたシミュレータ状態１２１において、仮想時間１２２は、T1=20msであり、シミュレーション演算結果１２３は、T1=20ms時点の第１のシミュレータ部のシミュレーション演算結果である。シミュレーション管理部は、接続されているシミュレータ部から(2)同期要求(20ms)を受け付けた後で、同期状態判定ステップ（図３のＳ３０５）に移行する。
【００６６】
次いで、同期判定手段１３１は、シミュレータ部のうちで同期確定のシミュレータ部を特定する（図３のＳ３０５）。ここで、第１のシミュレータ部の仮想時間はT1=20msであり、第２のシミュレータ部の仮想時間はT2=20msであり、第３のシミュレータ部の仮想時間はT3=30msであるから、同期確定仮想時間は20msとなる。従って、同期判定手段１３１は、第１のシミュレータ部と、第２のシミュレータ部とを同期確定のシミュレータ部として特定し、第３のシミュレータ部を同期未確定のシミュレータ部として特定する。図７を参照すると、同期判定20msの行において、第１のシミュレータ部の仮想時間は「20ms→20ms」であり、第２のシミュレータ部の仮想時間は「→20ms」である。
【００６７】
次いで、同期管理部１４０は、同期確定の第１のシミュレータ部及び第２のシミュレータ部に送出されるシミュレーション演算条件１４２を含んだ(3)同期応答(20ms)を作成する（図３のＳ３０６）。この際、シミュレーション演算条件１４２は、T1=20msに対応したシミュレーション演算結果１２３と、T2=20msに対応したシミュレーション演算結果１２３と、T3=0msに対応したシミュレーション演算結果１２３とを参照して作成される。シミュレータ状態管理部１２０は、第３のシミュレータ部のシミュレーション演算結果に関し、T3=0msにおけるシミュレーション演算結果と、T3=30msにおけるシミュレーション演算結果とを保持する。しかし、同期確定仮想時間は20msなので、未来(T3=30ms)のシミュレーション演算結果は使えない。従って、(3)同期応答(20ms)の作成の際は、T3=0msに対応した第３のシミュレータ部のシミュレーション演算結果が採用される。
【００６８】
次いで、シミュレーション管理部は、一時停止要求有無判定ステップ（図３のＳ３０７）にて一時停止要求なしと判定された後、同期確定の第１のシミュレータ部及び第２のシミュレータ部に対して、(3)同期応答（20ms）を送出する（図３のＳ３１２）。その後、シミュレーション管理部は、シミュレーション終了判定ステップ（図３のＳ３０２）を経て、同期要求を待つ（図３のＳ３０３）。なお、第３のシミュレータ部は、同期未確定なので、(3)同期応答（20ms）は、送出されない。
【００６９】
なお、図４では、(3)同期応答（20ms）が送出された後の、シミュレーション管理部と、第１〜第３のシミュレータ部との間の同期シーケンスも示しているが、以降の同期シーケンスは上記と同様であるので説明を省略する。
【００７０】
［同期シーケンスの例（一時停止がある場合）］
図５〜図８を参照しながら、シミュレーション実行指示部１１０から一時停止要求があったときの、シミュレーション管理部１００と、シミュレータ部１５０との間の同期シーケンスを説明する。図５は、一時停止要求があった場合の同期シーケンスの一例を示すシーケンス図である。図５に示す例では、統合シミュレータ装置は、シミュレーション管理部と、第１のシミュレータ部と、第２のシミュレータ部と、第３のシミュレータ部とから構成される。ここで、第１のシミュレータ部が持つ仮想時間をT1とし、第２のシミュレータ部が持つ仮想時間をT2とし、第３のシミュレータ部が持つ仮想時間をT3とする。また、第１のシミュレータ部が持つ同期間隔を10msとし、第２のシミュレータ部が持つ同期間隔を20msとし、第３のシミュレータ部が持つ同期間隔を30msとする。図５では、同期判定=170ms〜220msの期間における同期シーケンスが示されている。
【００７１】
以下、時系列に沿って（図５の上から下に向かって）同期シーケンスを説明する。なお、図５に示す例では、同期判定=170msに至るまでは、一時停止が行われない。また、同期判定=170msの前にシミュレーション管理部は、第１のシミュレータ部からの(2)同期要求(170ms)、第２のシミュレータ部からの(2)同期要求(180ms)、第３のシミュレータ部からの(2)同期要求(180ms)を受け付けている。
【００７２】
シミュレーション管理部が第１のシミュレータ部からの(2)同期要求(170ms)を受け付けると、シミュレータ状態管理部１２０は、第１のシミュレータ部に対するシミュレータ状態１２１を保持する（図３のＳ３０４）。
【００７３】
次いで、同期判定手段１３１は、シミュレータ部のうちで同期確定のシミュレータ部を特定する（図３のＳ３０５）。ここで、第１のシミュレータ部の仮想時間はT1=170msであり、第２のシミュレータ部の仮想時間はT2=180msであり、第３のシミュレータ部の仮想時間はT3=180msであるから、同期確定仮想時間は170msとなる。従って、同期判定手段１３１は、第１のシミュレータ部を同期確定のシミュレータ部として特定する。
【００７４】
次いで、同期管理部１４０は、シミュレータ状態１２１に含まれたシミュレーション演算結果１２３から、同期確定の第１のシミュレータ部に送付される同期応答１４１に含まれるシミュレーション演算条件１４２を作成する（図３のＳ３０６）。
【００７５】
次いで、シミュレーション管理部は、一時停止要求有無判定ステップ（図３のＳ３０７）の後、同期確定の第１のシミュレータ部に対して、(3)同期応答（170ms）を送出する（図３のＳ３１２）。その後、シミュレーション管理部は、シミュレーション終了判定ステップ（図３のＳ３０２）を経て、同期要求を待つ（図３のＳ３０３）。
【００７６】
(3)同期応答（170ms）を受け付けた第１のシミュレータ部は、シミュレーション終了判定ステップ（図２のＳ２０５）及び一時停止指示有無判定ステップ（図２のＳ２０６）を経て、シミュレーション演算を実行する（図２のＳ２０２）。第１のシミュレータ部は、第１のシミュレータ部の同期間隔（10ms）分、シミュレーション演算を実行し、T1=180ms時点のシミュレーション演算結果１５２を出力し、仮想時間１６１をT1=180msとする。次いで、第１のシミュレータ部は、(2)同期要求(180ms)を作成し（図２のＳ２０３）、作成した(2)同期要求(180ms)をシミュレーション管理部に送出する。
【００７７】
第１のシミュレータ部から(2)同期要求(180ms)を受け付けたシミュレーション管理部は、シミュレータ状態管理部１２０に第１のシミュレータ部に対応するシミュレータ状態１２１を追加して保持させる（図３のＳ３０４）。追加されたシミュレータ状態１２１において、仮想時間１２２は、T1=180msであり、シミュレーション演算結果１２３は、T1=180ms時点の第１のシミュレータ部のシミュレーション演算結果である。
【００７８】
次いで、同期判定手段１３１は、シミュレータ部のうちで同期確定のシミュレータ部を特定する（図３のＳ３０５）。ここで、第１のシミュレータ部の仮想時間はT1=180msであり、第２のシミュレータ部の仮想時間はT2=180msであり、第３のシミュレータ部の仮想時間はT3=180msであるから、同期確定仮想時間は180msとなる。従って、同期判定手段１３１は、第１〜第３のシミュレータ部を同期確定のシミュレータ部として特定する。
【００７９】
次いで、同期管理部１４０は、同期確定の第１〜第３のシミュレータ部に送出される(3)同期応答(180ms)を作成する（図３のＳ３０６）。
【００８０】
次いで、シミュレーション管理部は、一時停止要求有無判定ステップ（図３のＳ３０７）にて一時停止要求なしと判定された後、同期確定の第１〜第３のシミュレータ部に対して、(3)同期応答（180ms）を送出する（図３のＳ３１２）。その後、シミュレーション管理部は、シミュレーション終了判定ステップ（図３のＳ３０２）を経て、同期要求を待つ（図３のＳ３０３）。
【００８１】
(3)同期応答(180ms)を受け付けた第１のシミュレータ部は、シミュレーション終了判定ステップ（図２のＳ２０５）及び一時停止指示有無判定ステップ（図２のＳ２０６）を経て、シミュレーション演算を実行する（図２のＳ２０２）。第１のシミュレータ部は、第１のシミュレータ部の同期間隔（10ms）分、シミュレーション演算を実行し、T1=190ms時点のシミュレーション演算結果１５２を出力し、仮想時間１６１をT1=190msとする。次いで、第１のシミュレータ部は、(2)同期要求(190ms)を作成し（図２のＳ２０３）、作成した(2)同期要求(190ms)をシミュレーション管理部に送出する。同様に、(3)同期応答(180ms)を受け付けた第２のシミュレータ部は、(2)同期要求(200ms)を作成し、作成した(2)同期要求(200ms)をシミュレーション管理部に送出する。同様に、(3)同期応答(180ms)を受け付けた第３のシミュレータ部は、(2)同期要求(210ms)を作成し、作成した(2)同期要求(210ms)をシミュレーション管理部に送出する。
【００８２】
第１のシミュレータ部からの(2)同期要求(190ms)を受け付けたシミュレーション管理部は、シミュレータ状態管理部１２０に第１のシミュレータ部に対するシミュレータ状態１２１を追加して保持させる（図３のＳ３０４）。追加されたシミュレータ状態１２１において、仮想時間１２２は、T1=190msであり、シミュレーション演算結果１２３は、T1=190ms時点の第１のシミュレータ部のシミュレーション演算結果である。同様に、第２のシミュレータ部から(2)同期要求(200ms)を受け付けたシミュレーション管理部は、シミュレータ状態管理部にシミュレータ状態１２１を追加して保持させる。同様に、第３のシミュレータ部から(2)同期要求(210ms)を受け付けたシミュレーション管理部は、シミュレータ状態管理部にシミュレータ状態１２１を追加して保持させる。
【００８３】
次いで、同期判定手段１３１は、シミュレータ部のうちで同期確定のシミュレータ部を特定する（図３のＳ３０５）。ここで、第１のシミュレータ部の仮想時間はT1=190msであり、第２のシミュレータ部の仮想時間はT2=200msであり、第３のシミュレータ部の仮想時間はT3=210msであるから、同期確定仮想時間は190msとなる。従って、同期判定手段１３１は、第１のシミュレータ部を同期確定のシミュレータ部として特定し、第２のシミュレータ部及び第３のシミュレータ部を同期未確定のシミュレータ部として特定する。
【００８４】
次いで、同期管理部１４０は、第１〜第３のシミュレータ部に送出される(3)同期応答(190ms)を作成する（図３のＳ３０６）。
【００８５】
次いで、一時停止要求を受け付けたシミュレーション管理部は、一時停止要求有無判定ステップ（図３のＳ３０７）において一時停止要求ありと判定され、第１〜第３のシミュレータ部に対して、(4)一時停止指示を送出する（図３のＳ３０８）。
【００８６】
次いで、同期管理部１４０は、(3) 同期応答(190ms)に同期状態を追加し、シミュレーション管理部は、同期状態が追加された同期応答(190ms)を全てのシミュレータ部に送出し（図３のＳ３０９）、一時停止解除要求を待つ（図３のＳ３１０）。具体的には、第１のシミュレータ部に対し(3)同期応答(190ms,確定)が送出され、第２のシミュレータ部に対し(3)同期応答(190ms,未確定)が送出され、第３のシミュレータ部に対し(3)同期応答(190ms,未確定)が送出される。なお、シミュレータ部に送出される(3)同期応答は、同期確定仮想時間（=190ms）を含んでいても良い。
【００８７】
(3)同期応答(190ms,確定／未確定)及び(4)一時停止指示を受け付けた第１〜第３のシミュレータ部は、一時停止状態になる。シミュレータ部が一時停止状態にあるとき、ユーザは、シミュレータ部に対して内部状態確認操作を実行することができる。図５の斜線部は、シミュレータ部が一時停止状態であることを示している。
【００８８】
次いで、シミュレーション実行指示部１１０からの一時停止解除要求をシミュレーション管理部が受け付けると、シミュレーション管理部は、(5)一時停止解除指示を第１〜第３のシミュレータ部に対して送出する（図３のＳ３１１）。
【００８９】
(5)一時停止解除指示を受け付けた第１のシミュレータ部は、同期状態判定ステップ（図２のＳ２１０）にて同期確定と判定された後、第１のシミュレータ部の同期間隔10ms分、シミュレーション演算を実行する（図２のＳ２０２）。第１のシミュレータ部は、T1=200ms時点のシミュレーション演算結果１５２を出力し、仮想時間をT1=200msとして、(2)同期要求(200ms)を作成し（図２のＳ２０３）、シミュレーション管理部に(2)同期要求(200ms)を送出する。また、(5)一時停止解除指示を受け付けた第２のシミュレータ部は、同期状態判定ステップ（図２のＳ２１０）にて同期未確定と判定された後、シミュレーション演算を実行することなく、同期要求(200ms)を作成し、送出する（図２のＳ２０３）。同様に、(5)一時停止解除指示を受け付けた第３のシミュレータ部は、同期状態判定ステップ（図２のＳ２１０）にて同期未確定と判定された後、シミュレーション演算を実行することなく、同期要求(210ms)を作成し、送出する（図２のＳ２０３）。
【００９０】
次いで、シミュレーション管理部は、第１のシミュレータ部から(2)同期要求(200ms)を、第２のシミュレータ部から(2)同期要求(200ms)、第３のシミュレータ部から(2)同期要求(210ms)を受け付ける。
【００９１】
ここで図６を参照する。図６は、一時停止要求がない場合の同期シーケンスの一例を示すシーケンス図であり、図５と同じ期間（同期判定=170ms〜220ms）におけるシーケンス図である。図５及び図６を参照すると、上述した実施形態により、一時停止をした場合の状態を、一時停止をしない場合と同一の状態にすることができたことが分かる。即ち、一時停止を行う・行わないにかかわらず、シミュレーション管理部の同期要求待ちステップ（図３のＳ３０３）において、統合シミュレータ装置を同じ状態に復元させることが可能となる。
【００９２】
このように本実施形態により、シミュレーション管理部１００からシミュレータ部１５０を一時停止させたとき、各シミュレータ部１５０において、一時停止中のシミュレーション演算部１６０を参照して、シミュレーション演算の内部状態を確認することができる。また、シミュレーション管理部１００において、一時停止を解除したときに、一時停止をしない場合と同じ状態に復帰する事が可能となる。従って、最終的なシミュレーション演算結果は、一時停止した場合と、一時停止しない場合とで一致する。
【００９３】
（第２の実施形態）
以下、本発明の第２の実施形態を説明する。第２の実施形態では、CPUを模擬するシミュレータISSに代表されるような、シミュレーション演算を実行途中で一時停止することができるシミュレータ側から、統合シミュレーションを一時停止し、一時停止解除する方法を説明する。以下、ISSを例に挙げて説明するが、ISSの代わりに或いはISSと組み合わせて、電気回路シミュレータやメカ機構シミュレータ、モデル設計シミュレータ等、シミュレーション演算を実行途中で一時停止することができるシミュレータを使用しても良い。
【００９４】
ISSは、CPUの実行可能な命令セットをシミュレーション環境で実行する。ISSは一般的に、CPUで実行されるソフトウェアに対するデバッガ機能と連携し、特定の命令や実行アドレス、時間でISSを一時停止させることにより、ソフトウェアの実行状態を確認することができる。
【００９５】
ISSと連携したシミュレーション環境においても、ISSと連携したデバッガ機能により、ISSを一時停止させたときに、他のシミュレータを停止させてシミュレーション演算状態を確認できることが望ましい。また、ISSと連携したデバッグ機能により、ISSの一時停止を解除したときに、連携シミュレーションを再開できることが望ましい。連携シミュレーションを再開したときには、シミュレーションを一時停止しなかったときと同一の状態に復帰することが求められる。
【００９６】
［統合シミュレータ装置の構成］
図９を参照しながら、本実施形態に係る統合シミュレータ装置の構成を説明する。図９は、統合シミュレータ装置の構成を説明するブロック図である。
【００９７】
図９に示すように、本実施形態に係る統合シミュレータ装置の構成は、第１の実施形態に係る統合シミュレータの装置の構成と類似する（図１を参照）。従って、以下では、本実施形態に係る統合シミュレータ装置の構成と、第１の実施形態に係る統合シミュレータの装置の構成との相違点を中心に説明する。
【００９８】
統合シミュレータ装置は、シミュレーション管理部１００と、３個のシミュレータ部１５０とから構成される。３個のシミュレータ部１５０の各々の同期間隔は、10ms、20ms、30msであり相違する。なお、シミュレーション管理部と、シミュレータ部とは、同一装置内や同一計算機内にあっても良く、或いは、異なる装置や異なる計算機に分散していても良い。また、シミュレータ部は、計算機上のソフトウェアであっても良いし、専用のシミュレータ装置であっても良い。
【００９９】
シミュレーション同期部１８０が同期予定時間１８２を保持する点、シミュレータ状態１２１が同期予定時間１２４を含む点、及び時刻管理部１３０が同期予定時間１３３を保持する点において、本実施形態は、第１の実施形態と相違する。
【０１００】
シミュレータ部１５０において、演算処理単位時間１６２は、CPUの実行可能な命令セット単位の処理時間であり、模擬するCPUのクロック周波数に依存する。仮想時間１６１は、CPUが起動してからの時間であり、実行したCPUの命令の処理時間分だけ演算処理単位時間１６２が仮想時間１６１に加算される。
【０１０１】
シミュレータ部１５０を構成するシミュレーション実行制御部１７０は、シミュレーション演算部１６０における演算実行状態を監視し、必要に応じてシミュレーション演算を一時停止させることができる。上述したISSでは、特定の命令、実行アドレス、仮想時間１６１等を監視し、所望の条件が満たされたときにシミュレーション演算を一時停止させることができる。また、電気回路シミュレータでは、回路における信号線の状態（レベルやエッジ、周波数等）が特定の状態を満たす場合に、シミュレーション演算を一時停止させることができる。また、メカ機構シミュレータでは、部材間の関係（間隔、位置関係等）、部材の動作（停止、稼働、加減速等）、及び／又は部材にかかる力（応力、摩擦力等）が特定の状態になったときに、シミュレーション演算を一時停止させることができる。また、モデル設計シミュレータでは、モデル演算結果が特定の状態になったとき、或いは、モデルが特定の状態遷移をしたときに、シミュレーション演算を一時停止させることができる。シミュレーション実行制御部１７０は、シミュレーション演算部１６０にシミュレーション演算を一時停止させると、シミュレーション同期部１８０に対して一時停止の通知を行うとともに、シミュレーション管理部１００に対して一時停止要求を送出する。その後、一時停止が解除されシミュレーション演算を再開するとき、シミュレーション実行制御部１７０は、シミュレーション管理部１００に対して一時停止解除要求を送出する。
【０１０２】
シミュレータ部１５０を構成するシミュレーション同期部１８０が保持する同期予定時間１８２は、同期間隔１８１と、シミュレーション演算部１６０が保持する仮想時間１６１とから算出される。シミュレーション同期部１８０は、シミュレーション実行制御部１７０からの一時停止の通知を受けて、同期予定時間１８２と、シミュレーション演算部１６０が保持する仮想時間１６１と、シミュレーション結果１５２とから同期要求を作成する。作成された同期要求は、シミュレーション管理部１００へ送出される。
【０１０３】
シミュレータ状態管理部１２０は、シミュレータ部１５０から送出された同期要求を受け付けると、対応するシミュレータ状態１２１が含む仮想時間１２２と、シミュレーション演算結果１２３と、同期予定時間１２４とを設定し、保持する。
【０１０４】
シミュレーション管理部１００を構成する時刻管理部１３０は、シミュレータ状態１２１の各々に含まれる仮想時間１２２を仮想時間１３２として参照する。また、時刻管理部１３０は、シミュレータ状態１２１の各々に含まれる同期予定時間１２４を同期予定時間１３３として参照する。時刻管理部１３０は、同期判定手段１３１を備え、同期判定手段１３１は、シミュレータ部１５０の各々に対応する仮想時間１３２及び同期予定時間１３３を比較することにより、同期が確定したシミュレータ部を特定する。
【０１０５】
なお、上述した例では、統合シミュレータ装置は３個のシミュレータ部から構成され、各シミュレータ部の同期間隔を10ms、20ms、30msとして説明したが、シミュレータ部の個数、同期間隔によって本発明は限定されない。
【０１０６】
［シミュレータ部の処理］
図１０を参照しながら、本実施形態に係るシミュレータ部（図９のシミュレータ部１５０）の処理の流れを説明する。図１０は、シミュレータ部の処理フローの一例を示すフロー図である。
【０１０７】
ステップＳ２０１において、シミュレータ部１５０は、シミュレーション管理部１００から送られる(1)開始指示を待つ。シミュレーション実行制御部１７０がシミュレーション管理部１００から送られる(1)開始指示を受け付けると、処理はステップＳ２０２に進む。
【０１０８】
ステップＳ２０２において、シミュレーション演算部１６０は、シミュレーション演算を実行する。シミュレーション演算部１６０は、所定の時間分のシミュレーション演算を実行し、仮想時間１６１(=Ｔ)を進め、シミュレーション演算結果１５２を出力する。次いで、処理はステップＳ１００１に進む。なお、第１の実施形態と同様に、ステップＳ２０２のうちの最先のステップＳ２０２において、仮想時間Ｔの初期化及び初期化演算が行われる。また、本実施形態では、上述したとおり、シミュレーション演算部１６０を所望の条件により一時停止させることが可能である。
【０１０９】
ステップＳ１００１において、進行判定手段１７１は、シミュレーション演算ステップＳ２０２実行中に一時停止されたか否かを判定する。一時停止されたと判定されたとき、処理はステップＳ１００２に進み、一時停止されなかったと判定されたとき、処理はステップＳ２０３に進む。
【０１１０】
ステップＳ１００２において、シミュレーション実行制御部１７０は、シミュレーション管理部１００に対して、(6)一時停止要求を送出する。次いで、処理はステップＳ２０３に進む。
【０１１１】
ステップＳ２０３において、シミュレーション同期部１８０は、(2)同期要求を作成する。本実施形態では、(2)同期要求は、同期予定時間１８２と、仮想時間１６１と、シミュレーション演算結果１５２と、ステップＳ１００１における判定結果（シミュレーション演算の一時停止の有無）とを含む。シミュレーション同期部１８０は、シミュレーション管理部１００に対して、作成した(2)同期要求を送出する。次いで、処理はステップＳ２０４に進む。なお、ステップＳ１００１において一時停止されなかったと判定されたときは、ステップＳ２０３において、第１の実施形態と同様の(2)同期要求を作成、送出しても良い。この場合、シミュレーション演算の途中で所望の条件が満たされず一時停止されなかったため、仮想時間１６１は、同期予定時間１８２まで進むこととなる。
【０１１２】
ステップＳ２０４において、シミュレータ部１５０は、シミュレーション管理部１００から送られる(3)同期応答を待つ。シミュレーション同期部１８０は、シミュレーション管理部１００から送られる(3)同期応答を受け付けると、(3)同期応答に含まれるシミュレーション演算条件をシミュレーション演算条件１５１にセットする。次いで、処理はステップＳ２０５に進む。
【０１１３】
ステップＳ２０５において、シミュレーション実行制御部１７０は、シミュレーション管理部１００から送られた(8)終了指示の有無を判定する。シミュレーション管理部１００から送られた(8)終了指示がある場合は、シミュレーションを終了し、シミュレーション管理部１００から送られた(8)終了指示がない場合は、処理はステップＳ２０６に進む。
【０１１４】
ステップＳ２０６において、シミュレーション実行制御部１７０は、シミュレーション管理部１００から送られた(4)一時停止指示の有無を判定する。シミュレーション管理部１００から送られた(4)一時停止指示がある場合は、処理はステップＳ２０７に進む。シミュレーション管理部１００から送られた(4)一時停止指示がない場合は、処理はステップＳ２０２に戻る。
【０１１５】
ステップＳ２０７において、進行判定手段１７１は、シミュレーション同期部１８０で受け取った(3)同期応答に含まれる同期状態を記憶する。次いで、処理はステップＳ２０８に進む。
【０１１６】
ステップＳ２０８において、ユーザは、シミュレーション実行制御部１７０を操作して一時停止中のシミュレーション演算部１６０を参照することにより、シミュレーション演算の内部状態を確認することができる。次いで、処理はステップＳ１００３に進む。
【０１１７】
ステップＳ１００３において、所望の条件によりシミュレーション演算を一時停止しているシミュレータ部１５０は、シミュレーション演算を再開させるための所定の操作（一時停止解除操作）を実行する。一時停止解除操作が実行されると、シミュレータ部１５０は、シミュレータ管理部１００に対して、(7)一時停止解除要求を送出する。次いで、処理はステップＳ２０９に進む。なお、シミュレーション演算部１６０が実行するシミュレーション演算を一時停止していないシミュレータ部１５０において、(5)一時停止解除指示をステップＳ２０９で受け付けるまで、シミュレーション演算の内部状態を確認することができる。
【０１１８】
ステップＳ２０９において、シミュレータ部１５０は、シミュレーション管理部１００から送られる(5)一時停止解除指示を待つ。シミュレーション実行制御部１７０は、シミュレーション管理部１００から送られる(5)一時停止解除指示を受け付けると、処理はステップＳ２１０に進む。
【０１１９】
ステップＳ２１０において、進行判定手段１７１は、ステップＳ２０７で記憶した同期状態から同期が確定しているか否かを判定する。同期が確定していると判定された場合は、処理はステップＳ２０２に戻り、同期が確定していないと判定された場合は、処理はステップＳ２０３に戻る。
【０１２０】
［シミュレーション管理部の処理］
図１１を参照しながら、本実施形態に係るシミュレーション管理部（図９のシミュレーション管理部１００）の処理の流れを説明する。図１１は、シミュレーション管理部の処理フローの一例を示すフロー図である。
【０１２１】
ステップＳ３０１〜Ｓ３０３は、第１の実施形態と同等である。
【０１２２】
ステップＳ３０４において、シミュレータ状態管理部１２０は、シミュレータ部１５０毎に対応するシミュレータ状態１２１を保持する。シミュレータ状態管理部１２０は、(2)同期要求が含む同期予定時間１８２、仮想時間１６１、及びシミュレーション演算結果１５２を、シミュレータ状態１２１が含む同期予定時間１２４、仮想時間１２２、及びシミュレーション演算結果１２３として保持する。このとき、シミュレータ状態管理部１２０は、シミュレーション演算の一時停止の有無（図１０のステップＳ１００１における判定結果）を保持しても良い。次いで、処理はステップＳ３０５に進む。
【０１２３】
ステップＳ３０５において、同期判定手段１３１は、シミュレータ状態管理部１２０が保持しているシミュレータ状態１２１に含まれる仮想時間１２２を仮想時間１３２として参照し、同期予定時間１２４を同期予定時間１３３として参照する。同期判定手段１３１は、仮想時間１３２及び同期予定時間１３３を比較することにより、シミュレーションの進捗状況を把握し、同期が確定したシミュレータ部を特定する。ここで、参照される仮想時間１３２のうち、最も遅れている仮想時間を同期確定仮想時間（図１２では「現在時間」と表記される）とし、この同期確定仮想時間を持つシミュレータ部を同期が確定したシミュレータ部（同期確定のシミュレータ部）とする。同期確定仮想時間以外の仮想時間（同期確定仮想時間より未来の仮想時間）を持つシミュレータ部を同期が確定していないシミュレータ部（同期未確定のシミュレータ部）とする。また、参照される同期予定時間１３３のうち、最も遅れている同期予定時間を同期判定時間とする。次いで、処理はステップＳ３０６に進む。
【０１２４】
ステップＳ３０６において、同期管理部１４０は、シミュレータ部に対して送出される同期応答１４１を作成する。次いで、処理はステップＳ３０７に進む。
【０１２５】
ステップＳ３０７において、シミュレーション管理部１００は、シミュレータ部１５０から送出された(6)一時停止要求の有無を判定する。シミュレータ部１５０から送出された(6)一時停止要求がある場合、処理はステップＳ３０８に進み、シミュレータ部１５０から送出された(6)一時停止要求がない場合、処理はステップＳ３１２に進む。なお、第１の実施形態と同様に、シミュレーション管理部１００は、シミュレーション実行指示部１１０からの一時停止要求の有無も併せて判定しても良い。
【０１２６】
ステップＳ３０８において、一時停止指示手段１１１は、接続されている全てのシミュレータ部１５０に対して(4)一時停止指示を送出する。次いで、処理はステップＳ３０９に進む。
【０１２７】
ステップＳ３０９において、一時停止指示手段１１１は、同期判定手段１３１を介してシミュレータ部１５０各々の同期状態を把握し、同期管理部１４０に対してこの同期状態を同期応答１４１に追加するよう指示する。指示を受けた同期管理部１４０は、(3)同期応答を作成し、シミュレーション管理部１００は、接続されている全てのシミュレータ部１５０に対して、作成した(3)同期応答を送出する。次いで、処理はステップＳ３１０に進む。
【０１２８】
ステップＳ３１０において、シミュレーション管理部１００は、シミュレータ部１５０から送出される(7)一時停止解除要求を待つ。シミュレーション管理部１００がシミュレータ部１５０から送出された(7)一時停止解除要求を受け付けると、処理はステップＳ３１１に進む。
【０１２９】
ステップＳ３１１において、一時停止指示手段１１１は、接続されているシミュレータ部１５０に対して(5)一時停止解除指示を送出する。次いで、処理はステップＳ３０２に戻る。
【０１３０】
ステップＳ３１２において、シミュレーション管理部１００は、同期が確定しているシミュレータ部１５０に対して(3)同期応答を送出する。次いで、処理はステップＳ３０２に戻る。
【０１３１】
ステップＳ３１３において、シミュレーション管理部１００は、シミュレータ部１５０に対して(8)終了指示を送出する。
【０１３２】
［同期シーケンスの例］
以下、シミュレータ部１５０のシミュレーション実行制御部１７０がシミュレーション演算部１６０を所望の条件で一時停止させた場合のフローについて、図１２を参照しながら説明する。図１２は、本発明の第２の実施形態に係る同期シーケンスの一例を示すシーケンス図である。
【０１３３】
図１２に示す例では、統合シミュレータ装置は、シミュレーション管理部と、第１のシミュレータ部と、第２のシミュレータ部と、第３のシミュレータ部とから構成される。ここで、第１のシミュレータ部が持つ仮想時間をT1とし、第２のシミュレータ部が持つ仮想時間をT2とし、第３のシミュレータ部が持つ仮想時間をT3とする。また、第１のシミュレータ部が持つ同期間隔を10msとし、第２のシミュレータ部が持つ同期間隔を20msとし、第３のシミュレータ部が持つ同期間隔を30msとする。図１２では、同期判定=170ms〜200msの期間における同期シーケンスが示されている。
【０１３４】
また、図１２に示す例では、第２のシミュレータ部はISSとして機能し、第２のシミュレータ部を所望の条件で一時停止させるものとする。第２のシミュレータ部を停止させる所望の条件をCPU命令の実行時間とする。具体的には、仮想時間T2=185msで一時停止させ、その後、5ms分CPU命令を実行した後T2=190msで一時停止させ、その後、5ms分CPU命令を実行した後T2=195msで一時停止させ、その後、一時停止を解除する。
【０１３５】
以下、時系列に沿って（図１２の上から下に向かって）同期シーケンスを説明する。図１２に示す例では、同期判定=170msに至るまでは、一時停止が行われないため、第１の実施形態における一時停止が行われない場合と同様に処理が進むものとする。同期判定=170msの前にシミュレーション管理部は、第１のシミュレータ部からの(2)同期要求(170ms)、第２のシミュレータ部からの(2)同期要求(180ms)、第３のシミュレータ部からの(2)同期要求(180ms)を受け付けている。
【０１３６】
シミュレーション管理部が第１のシミュレータ部からの(2)同期要求(170ms)を受け付けると、シミュレータ状態管理部１２０は、第１のシミュレータ部に対するシミュレータ状態１２１を保持する（図１１のＳ３０４）。
【０１３７】
次いで、同期判定手段１３１は、シミュレータ部のうちで同期確定のシミュレータ部を特定する（図１１のＳ３０５）。ここで、第１のシミュレータ部の仮想時間はT1=170msであり、第２のシミュレータ部の仮想時間はT2=180msであり、第３のシミュレータ部の仮想時間はT3=180msであるから、同期確定仮想時間は170msとなる。従って、同期判定手段１３１は、第１のシミュレータ部を同期確定のシミュレータ部として特定する。
【０１３８】
次いで、同期管理部１４０は、シミュレータ状態１２１に含まれたシミュレーション演算結果１２３から、同期確定の第１のシミュレータ部に送付される同期応答１４１に含まれるシミュレーション演算条件１４２を作成する（図１１のＳ３０６）。
【０１３９】
次いで、シミュレーション管理部は、一時停止要求有無判定ステップ（図１１のＳ３０７）の後、同期確定の第１のシミュレータ部に対して、(3)同期応答（170ms）を送出する（図１１のＳ３１２）。その後、シミュレーション管理部は、シミュレーション終了判定ステップ（図１１のＳ３０２）を経て、同期要求を待つ（図１１のＳ３０３）。
【０１４０】
(3)同期応答（170ms）を受け付けた第１のシミュレータ部は、シミュレーション終了判定ステップ（図１０のＳ２０５）及び一時停止指示有無判定ステップ（図１０のＳ２０６）を経て、シミュレーション演算を実行する（図１０のＳ２０２）。第１のシミュレータ部は、第１のシミュレータ部の同期間隔（10ms）分、シミュレーション演算を実行し、T1=180ms時点のシミュレーション演算結果１５２を出力し、仮想時間１６１をT1=180msとする。第１のシミュレータ部は、演算一時停止有無判定ステップ（図１０のＳ１００１）にて一時停止なしと判定され、(2)同期要求(180ms)を作成し（図１０のＳ２０３）、作成した(2)同期要求(180ms)をシミュレーション管理部に送出する。
【０１４１】
第１のシミュレータ部から(2)同期要求(180ms)を受け付けたシミュレーション管理部は、シミュレータ状態管理部１２０に第１のシミュレータ部に対応するシミュレータ状態１２１を追加して保持させる（図１１のＳ３０４）。追加されたシミュレータ状態１２１において、仮想時間１２２は、T1=180msであり、シミュレーション演算結果１２３は、T1=180ms時点の第１のシミュレータ部のシミュレーション演算結果である。
【０１４２】
次いで、同期判定手段１３１は、シミュレータ部のうちで同期確定のシミュレータ部を特定する（図１１のＳ３０５）。ここで、第１のシミュレータ部の仮想時間はT1=180msであり、第２のシミュレータ部の仮想時間はT2=180msであり、第３のシミュレータ部の仮想時間はT3=180msであるから、同期確定仮想時間は180msとなる。従って、同期判定手段１３１は、第１〜第３のシミュレータ部を同期確定のシミュレータ部として特定する。
【０１４３】
次いで、同期管理部１４０は、同期確定の第１〜第３のシミュレータ部に送出される(3)同期応答(180ms)を作成する（図１１のＳ３０６）。
【０１４４】
次いで、シミュレーション管理部は、一時停止要求有無判定ステップ（図１１のＳ３０７）にて一時停止要求なしと判定された後、同期確定の第１〜第３のシミュレータ部に対して、(3)同期応答（180ms）を送出する（図１１のＳ３１２）。その後、シミュレーション管理部は、シミュレーション終了判定ステップ（図１１のＳ３０２）を経て、同期要求を待つ（図１１のＳ３０３）。
【０１４５】
(3)同期応答（180ms）を受け付けた第１のシミュレータ部は、シミュレーション終了判定ステップ（図１０のＳ２０５）及び一時停止指示有無判定ステップ（図１０のＳ２０６）を経て、シミュレーション演算を実行する（図１０のＳ２０２）。第１のシミュレータ部は、第１のシミュレータ部の同期間隔（10ms）分、シミュレーション演算を実行し、T1=190ms時点のシミュレーション演算結果１５２を出力し、仮想時間１６１をT1=190msとする。第１のシミュレータ部は、演算一時停止有無判定ステップ（図１０のＳ１００１）にて一時停止なしと判定され、(2)同期要求(190ms)を作成し（図１０のＳ２０３）、作成した(2)同期要求(190ms)をシミュレーション管理部に送出する。
【０１４６】
(3)同期応答（180ms）を受け付けた第２のシミュレータ部は、シミュレーション終了判定ステップ（図１０のＳ２０５）及び一時停止指示有無判定ステップ（図１０のＳ２０６）を経て、シミュレーション演算を実行する（図１０のＳ２０２）。このとき、同期間隔１８１は20msであり、仮想時間１６１は180msであり、同期予定時間１８２は200msである。第２のシミュレータ部は、ステップＳ２０２において、(3)同期応答（180ms）に含まれるシミュレーション演算条件をシミュレーション演算条件１５１として用い、ISSとしてCPUの命令を実行してシミュレーション演算結果１５２を出力する。第２のシミュレータ部は、演算処理単位時間１６２を仮想時間１６１に加えながらシミュレーション演算を同期予定時間１８２まで繰り返す。ところが、本実施形態では、上述のとおり、第２のシミュレータ部が仮想時間T2=185msで一時停止するよう設定されている。従って、第２のシミュレータ部は、仮想時間１６１がT2=185msに到達するまではCPUの命令を繰り返し実行するが、仮想時間１６１は同期予定時間１８２（=200ms）まで到達しない。第２のシミュレータ部では、T2=185msに到達した時点でシミュレーション演算は一時停止となり、シミュレーション演算ステップ（図１０のＳ２０２）は終了する。次いで、ステップＳ１００１において、演算一時停止ありと判定され、一時停止要求ステップ（図１０のＳ１００２）において、第２のシミュレータ部は、シミュレーション管理部に対して、(6)一時停止要求を送出する。次いで、同期要求作成ステップ（図１０のＳ２０３）において、第２のシミュレータ部は、同期予定時間１８２（=200ms）、仮想時間１６１（=185ms）、ステップＳ１００１における判定結果（一時停止あり）を含んだ同期要求を作成する。この同期要求は、図１２では、(2)同期要求（200ms,185ms,一時停止）として表記されている。第２のシミュレータ部は、作成した(2)同期要求（200ms,185ms,一時停止）をシミュレーション管理部に対して送出する。
【０１４７】
(3)同期応答（180ms）を受け付けた第３のシミュレータ部は、シミュレーション終了判定ステップ（図１０のＳ２０５）及び一時停止指示有無判定ステップ（図１０のＳ２０６）を経て、シミュレーション演算を実行する（図１０のＳ２０２）。第３のシミュレータ部は、第３のシミュレータ部の同期間隔（30ms）分、シミュレーション演算を実行し、T3=210ms時点のシミュレーション演算結果１５２を出力し、仮想時間１６１をT3=210msとする。第３のシミュレータ部は、演算一時停止有無判定ステップ（図１０のＳ１００１）にて一時停止なしと判定され、(2)同期要求(210ms)を作成し（図１０のＳ２０３）、作成した(2)同期要求(210ms)をシミュレーション管理部に送出する。
【０１４８】
次いで、シミュレーション管理部は、第１のシミュレータ部からの(2)同期要求(190ms)、第２のシミュレータ部からの(2)同期要求（200ms,185ms,一時停止）、及び第３のシミュレータ部からの(2)同期要求(210ms)を受け付ける。
【０１４９】
第１のシミュレータ部からの(2)同期要求(190ms)を受け付けたシミュレーション管理部は、シミュレータ状態管理部１２０に第１のシミュレータ部に対するシミュレータ状態１２１を保持させる（図１１のＳ３０４）。第１のシミュレータ部に対するシミュレータ状態１２１は、仮想時間１２２（=190ms）と、シミュレーション演算結果１２３と、同期予定時間１２４（=190ms）とを含む。同様に、第２のシミュレータ部からの(2)同期要求(200ms,185ms,一時停止)を受け付けたシミュレーション管理部は、シミュレータ状態管理部１２０に第２のシミュレータ部に対するシミュレータ状態１２１を保持させる。第２のシミュレータ部に対するシミュレータ状態１２１は、仮想時間１２２（=185ms）と、シミュレーション演算結果１２３と、同期予定時間１２４（=200ms）とを含む。同様に、第３のシミュレータ部からの(2)同期要求(210ms)を受け付けたシミュレーション管理部は、シミュレータ状態管理部１２０に第３のシミュレータ部に対するシミュレータ状態１２１を保持させる。第３のシミュレータ部に対するシミュレータ状態１２１は、仮想時間１２２（=210ms）と、シミュレーション演算結果１２３と、同期予定時間１２４（=210ms）とを含む。
【０１５０】
次いで、同期判定手段１３１は、シミュレータ部のうちで同期確定のシミュレータ部を特定する（図１１のＳ３０５）。ここで、第１のシミュレータ部の同期予定時間は190msであり、第２のシミュレータ部の同期予定時間は200msであり、第３のシミュレータ部の同期予定時間は210msであるから、同期判定時間は190msとなる。また、第１のシミュレータ部の仮想時間は190msであり、第２のシミュレータ部の仮想時間は185msであり、第３のシミュレータ部の仮想時間は210msであるから、同期確定仮想時間（図１２では「現在時間」と表記される）は185msとなる。即ち、同期処理の動作は同期判定時間190msで実行されるが、信号が確定しているのは、同期確定仮想時間185msの時点である。従って、同期判定手段１３１は、第１のシミュレータ部をT1=190msで同期未確定、第２のシミュレータ部をT2=185msで同期確定、第３のシミュレータ部をT3=190msで同期未確定として特定する。
【０１５１】
次いで同期管理部１４０は、第１のシミュレータ部に送出する(3)同期応答(190ms)、第２のシミュレータ部に送出する(3)同期応答(185ms)、及び第３のシミュレータ部に送出する(3)同期応答(190ms)を作成する（図１１のＳ３０６）。
【０１５２】
次いで、シミュレーション管理部は、一時停止要求有無判定ステップ（図１１のＳ３０７）にて一時停止要求ありと判定された後、第１のシミュレータ部、第２のシミュレータ部、及び第３のシミュレータ部に、(4)一時停止指示を送出する（図１１のＳ３０８）。
【０１５３】
次いで、同期管理部１４０は、作成した同期応答に同期状態を追加した上で、シミュレータ部に対して同期応答を送出する（図１１のＳ３０９）。図１２では、同期管理部は、第１のシミュレータ部に(3)同期応答(190ms,未確定)を送出し、第２のシミュレータ部に(3)同期応答(185ms,確定)を送出し、第３のシミュレータ部に(3)同期応答(190ms,未確定)を送出している。
【０１５４】
(4)一時停止指示及び(3)同期応答(190ms,未確定)を受け付けた第１のシミュレータ部は、同期状態（未確定状態）を記憶する（図１０のＳ２０７）。同様に、(4)一時停止指示及び(3)同期応答(185ms,確定)を受け付けた第２のシミュレータ部は、同期状態（確定状態）を記憶する。同様に、(4)一時停止指示及び(3)同期応答(190ms,未確定)を受け付けた第３のシミュレータ部は、同期状態（未確定状態）を記憶する。
【０１５５】
図１２では、(3)同期応答(190ms,未確定)を第１のシミュレータ部が受け付けた後、第１のシミュレータ部は、内部状態確認操作（図１０のＳ２０８）ができる状態であることを斜線部で示している。また、図１２では、(3)同期応答(185ms,確定)を第２のシミュレータ部が受け付けた後、第２のシミュレータ部は、内部状態確認操作及び一時停止解除操作（図１０のＳ２０８及びＳ１００３）ができる状態であることを斜線部で示している。さらに、図１２では、シミュレーション管理部から(3)同期応答(190ms,未確定)を第３のシミュレータ部が受け付けた後、第３のシミュレータ部は、内部状態確認操作（図１０のＳ２０８）ができる状態であることを斜線部で示している。
【０１５６】
ここで、第２のシミュレータ部は、T2=185msでシミュレーション演算が一時停止している状態である。従って、次いで、第２のシミュレータ部において一時停止解除操作（図１０のＳ１００３）が行われ、第２のシミュレータ部は、次の5ms分のCPU命令を実行するために、シミュレーション管理部に対して(7)一時停止解除要求を送出する。
【０１５７】
第２のシミュレータ部からの(7)一時停止解除要求を受け付けたシミュレーション管理部は、第１のシミュレータ部と、第２のシミュレータ部と、第３のシミュレータ部とに対して、(5)一時停止解除指示を送出する（図１１のＳ３１１）。次いで、シミュレーション管理部は、シミュレーション終了判定を行う（図１１のＳ３０２）。
【０１５８】
シミュレーション管理部からの(5)一時停止解除指示を受け付けた第１のシミュレータ部は、同期状態記憶ステップ（図１０のＳ２０７）で未確定状態が記憶されたので、仮想時間１６１を進めない（T1=190msのまま）。第１のシミュレータ部は、(2)同期要求(190ms)を作成し、シミュレーション管理部に対して送出する（図１０のＳ２０９→Ｓ２１０→Ｓ２０３の流れ）。
【０１５９】
シミュレーション管理部からの(5)一時停止解除指示を受け付けた第２のシミュレータ部は、同期状態記憶ステップ（図１０のＳ２０７）で確定状態が記憶されたので、5ms分のシミュレーション演算を実行し、仮想時間１６１をT2=190msまで進める。本実施形態では、上述のとおり、第２のシミュレータ部が仮想時間T2=190msで一時停止するよう設定されているので、第２のシミュレータ部は、T2=190msで一時停止状態となる。次いで、ステップＳ１００１において、演算一時停止ありと判定され、一時停止要求ステップ（図１０のＳ１００２）において、第２のシミュレータ部は、シミュレーション管理部に対して、(6)一時停止要求を送出する。次いで、同期要求作成ステップ（図１０のＳ２０３）において、第２のシミュレータ部は、(2)同期要求（200ms,190ms,一時停止）を作成し、送出する（図１０のＳ２０９→Ｓ２１０→Ｓ２０２→Ｓ１００１→Ｓ１００２→Ｓ２０３の流れ）。
【０１６０】
シミュレーション管理部からの(5)一時停止解除指示を受け付けた第３のシミュレータ部は、同期状態記憶ステップ（図１０のＳ２０７）で未確定状態が記憶されたので、仮想時間１６１を進めない（T3=210msのまま）。第３のシミュレータ部は、(2)同期要求(210ms)を作成し、シミュレーション管理部に対して送出する（図１０のＳ２０９→Ｓ２１０→Ｓ２０３の流れ）。
【０１６１】
第１のシミュレータ部からの(2)同期要求(190ms)を受け付けたシミュレータ状態管理部は、第１のシミュレータ部に対するシミュレータ状態１２１を保持する（図１１のＳ３０４）。第１のシミュレータ部に対するシミュレータ状態１２１は、仮想時間１２２（=190ms）と、シミュレーション演算結果１２３と、同期予定時間１２４（=190ms）とを含む。同様に、第２のシミュレータ部からの(2)同期要求（200ms,190ms,一時停止）を受け付けたシミュレータ状態管理部は、第２のシミュレータ部に対するシミュレータ状態１２１を保持する。第２のシミュレータ部に対するシミュレータ状態１２１は、仮想時間１２２（=190ms）と、シミュレーション演算結果１２３と、同期予定時間１２４（=200ms）とを含む。同様に、第３のシミュレータ部からの(2)同期要求(210ms)を受け付けたシミュレータ状態管理部は、第３のシミュレータ部に対するシミュレータ状態１２１を保持する。第３のシミュレータ部に対するシミュレータ状態１２１は、仮想時間１２２（=210ms）と、シミュレーション演算結果１２３と、同期予定時間１２４（=210ms）とを含む。
【０１６２】
次いで、同期判定手段１３１は、シミュレータ部のうちで同期確定のシミュレータ部を特定する（図１１のＳ３０５）。ここで、第１のシミュレータ部の同期予定時間は190msであり、第２のシミュレータ部の同期予定時間は200msであり、第３のシミュレータ部の同期予定時間は210msであるから、同期判定時間は190msとなる。また、第１のシミュレータ部の仮想時間は190msであり、第２のシミュレータ部の仮想時間は190msであり、第３のシミュレータ部の仮想時間は210msであるから、同期確定仮想時間は190msとなる。即ち、同期処理の動作は同期判定時間190msで実行され、信号が確定しているのは、同期確定仮想時間190msの時点である。従って、同期判定手段１３１は、第１のシミュレータ部をT1=190msで同期確定、第２のシミュレータ部をT2=190msで同期確定、第３のシミュレータ部をT3=190msで同期未確定として特定する。
【０１６３】
次いで同期管理部１４０は第１のシミュレータ部に送出する(3)同期応答(190ms)、第２のシミュレータ部に送出する(3)同期応答(190ms)、及び第３のシミュレータ部に送出する(3)同期応答(190ms)を作成する（図１１のＳ３０６）。同期管理部１４０が第１のシミュレータ部に送出される(3)同期応答(190ms)を作成する際、シミュレータ状態管理部１２０は、T2=190msにおける第２のシミュレータ部のシミュレーション演算結果１２３を保持している。しかしながら、第２のシミュレータ部の同期予定時間１２４は200msであるため、第１のシミュレータ部に送出する(3)同期応答(190ms)を作成する際に、T2=190msにおけるシミュレーション演算結果１２３を使用することはできない。従って、前回同期をとったとき(同期判定=180ms)の第２のシミュレータ部のシミュレーション演算結果１２３が使用される。これにより、一時停止した場合と、一時停止しない場合との間で、シミュレーション演算条件の一致を確保することができる。このように、第１のシミュレータ部に送出される(3)同期応答(190ms)が含むシミュレーション演算条件１４２は、第２のシミュレータ部に関する部分についてはT2=180msにおけるシミュレーション演算結果を採用することで、作成される。
【０１６４】
次いで、シミュレーション管理部は、一時停止要求有無判定ステップ（図１１のＳ３０７）にて一時停止要求ありと判定された後、第１のシミュレータ部、第２のシミュレータ部、及び第３のシミュレータ部に、(4)一時停止指示を送出する（図１１のＳ３０８）。
【０１６５】
次いで、同期管理部１４０は、作成した同期応答に同期状態を追加した上で、シミュレータ部に対して同期応答を送出する（図１１のＳ３０９）。図１２では、同期管理部は、第１のシミュレータ部に(3)同期応答(190ms,確定)を送出し、第２のシミュレータ部に(3)同期応答(190ms,確定)を送出し、第３のシミュレータ部に(3)同期応答(190ms,未確定)を送出している。
【０１６６】
(4)一時停止指示及び(3)同期応答(190ms,確定)を受け付けた第１のシミュレータ部は、同期状態（確定状態）を記憶する（図１０のＳ２０７）。同様に、(4)一時停止指示及び(3)同期応答(190ms,確定)を受け付けた第２のシミュレータ部は、同期状態（確定状態）を記憶する。同様に、(4)一時停止指示及び(3)同期応答(190ms,未確定)を受け付けた第３のシミュレータ部は、同期状態（未確定状態）を記憶する。
【０１６７】
図１２では、(3)同期応答(190ms,確定)を第１のシミュレータ部が受け付けた後、第１のシミュレータ部は、内部状態確認操作（図１０のＳ２０８）ができる状態であることを斜線部で示している。また、図１２では、(3)同期応答(190ms,確定)を第２のシミュレータ部が受け付けた後、第２のシミュレータ部は、内部状態確認操作及び一時停止解除操作（図１０のＳ２０８及びＳ１００３）ができる状態であることを斜線部で示している。さらに、図１２では、シミュレーション管理部から(3)同期応答(190ms,未確定)を第３のシミュレータ部が受け付けた後、第３のシミュレータ部は、内部状態確認操作（図１０のＳ２０８）ができる状態であることを斜線部で示している。
【０１６８】
ここで、第２のシミュレータ部は、T2=190msでシミュレーション演算が一時停止している状態である。従って、次いで、第２のシミュレータ部において一時停止解除操作（図１０のＳ１００３）が行われ、第２のシミュレータ部は、次の5ms分のCPU命令を実行するために、シミュレーション管理部に対して(7)一時停止解除要求を送出する。
【０１６９】
第２のシミュレータ部からの(7)一時停止解除要求を受け付けたシミュレーション管理部は、第１のシミュレータ部と、第２のシミュレータ部と、第３のシミュレータ部とに対して、(5)一時停止解除指示を送出する（図１１のＳ３１１）。次いで、シミュレーション管理部は、シミュレーション終了判定を行う（図１１のＳ３０２）。
【０１７０】
(5)一時停止解除指示を受け付けた第１のシミュレータ部は、同期状態記憶ステップ（図１０のＳ２０７）で確定状態が記憶されたので、10ms分のシミュレーション演算を実行し、仮想時間１６１をT1=200msまで進める。その後、第１のシミュレータ部は、(2)同期要求(200ms)を作成する。即ち、図１０のＳ２０９→Ｓ２１０→Ｓ２０２→Ｓ１００１→Ｓ２０３の流れで、処理は進む。
【０１７１】
シミュレーション管理部からの(5)一時停止解除指示を受け付けた第２のシミュレータ部は、同期状態記憶ステップ（図１０のＳ２０７）で確定状態が記憶されたので、5ms分のシミュレーション演算を実行し、仮想時間１６１をT2=195msまで進める。本実施形態では、上述のとおり、第２のシミュレータ部が仮想時間T2=195msで一時停止するよう設定されているので、第２のシミュレータ部は、T2=195msで一時停止状態となる。次いで、ステップＳ１００１において、演算一時停止ありと判定され、一時停止要求ステップ（図１０のＳ１００２）において、第２のシミュレータ部は、シミュレーション管理部に対して、(6)一時停止要求を送出する。次いで、同期要求作成ステップ（図１０のＳ２０３）において、第２のシミュレータ部は、(2)同期要求（200ms,195ms,一時停止）を作成し、シミュレーション管理部に対して送出する。即ち、図１０のＳ２０９→Ｓ２１０→Ｓ２０２→Ｓ１００１→Ｓ１００２→Ｓ２０３の流れで、処理は進む。
【０１７２】
シミュレーション管理部からの(5)一時停止解除指示を受け付けた第３のシミュレータ部は、同期状態記憶ステップ（図１０のＳ２０７）で未確定状態が記憶されたので、仮想時間１６１を進めない（T3=210msのまま）。第３のシミュレータ部は、(2)同期要求(210ms)を作成し、シミュレーション管理部に対して送出する。即ち、図１０のＳ２０９→Ｓ２１０→Ｓ２０３の流れで、処理は進む。
【０１７３】
第１のシミュレータ部からの(2)同期要求(200ms)を受け付けたシミュレータ状態管理部は、第１のシミュレータ部に対するシミュレータ状態１２１を保持する（図１１のＳ３０４）。第１のシミュレータ部に対するシミュレータ状態１２１は、仮想時間１２２（=200ms）と、シミュレーション演算結果１２３と、同期予定時間１２４（=200ms）とを含む。同様に、第２のシミュレータ部からの(2)同期要求（200ms,195ms,一時停止）を受け付けたシミュレータ状態管理部は、第２のシミュレータ部に対するシミュレータ状態１２１を保持する。第２のシミュレータ部に対するシミュレータ状態１２１は、仮想時間１２２（=195ms）と、シミュレーション演算結果１２３と、同期予定時間１２４（=200ms）とを含む。同様に、第３のシミュレータ部からの(2)同期要求(210ms)を受け付けたシミュレータ状態管理部は、第３のシミュレータ部に対するシミュレータ状態１２１を保持する。第３のシミュレータ部に対するシミュレータ状態１２１は、仮想時間１２２（=210ms）と、シミュレーション演算結果１２３と、同期予定時間１２４（=210ms）とを含む。
【０１７４】
次いで、同期判定手段１３１は、シミュレータ部のうちで同期確定のシミュレータ部を特定する（図１１のＳ３０５）。ここで、第１のシミュレータ部の同期予定時間は200msであり、第２のシミュレータ部の同期予定時間は200msであり、第３のシミュレータ部の同期予定時間は210msであるから、同期判定時間は200msとなる。また、第１のシミュレータ部の仮想時間は200msであり、第２のシミュレータ部の仮想時間は195msであり、第３のシミュレータ部の仮想時間は210msであるから、同期確定仮想時間は195msとなる。即ち、同期処理の動作は同期判定時間200msで実行されるが、信号が確定しているのは、同期確定仮想時間195msの時点である。従って、同期判定手段１３１は、第１のシミュレータ部をT1=200msで同期未確定、第２のシミュレータ部をT2=195msで同期確定、第３のシミュレータ部をT3=200msで同期未確定として特定する。
【０１７５】
上述したように、本実施形態により、あるシミュレータ部１５０において任意の仮想時間１６１でシミュレーションを一時停止させたときに、他のシミュレータ部におけるシミュレーションも一時停止させることができる。また、シミュレーション演算部１６０を参照することで、シミュレーション演算の内部状態を確認することができる。更に、シミュレータ部１５０において一時停止が解除されたときに、一時停止をしない場合と同じ状態に復帰することが可能となり、従って、最終的なシミュレーション演算結果を、一時停止した場合と一時停止しない場合とで一致させることができる。
【０１７６】
（第３の実施形態）
以下、本発明の第３の実施形態を説明する。第１の実施形態及び第２の実施形態で説明したように、一時停止したときの各シミュレータ部における仮想時間は、シミュレータ部の間で一致していない場合がある。そこで、本実施形態では、一時停止時における各シミュレータ部の停止状況を確認することができる表示方法を提供する。
【０１７７】
以下の説明では、第２の実施形態と同様に、統合シミュレータ装置が、シミュレーション管理部と、３個のシミュレータ部とから構成され、各シミュレータ部の同期間隔が10ms、20ms、30msであるものとする。ただし、本発明は、シミュレータ部の個数、同期間隔によって限定されず、また、以下で説明する表示画面の構成はあくまで一例であり、本発明を限定するものではないことに留意されたい。
【０１７８】
［統合シミュレータ装置の構成］
図１４を参照しながら、本実施形態に係る統合シミュレータ装置の構成を説明する。図１４は、統合シミュレータ装置の構成を説明するブロック図である。
【０１７９】
図１４に示すように、本実施形態に係る統合シミュレータ装置の構成は、第２の実施形態に係る統合シミュレータの装置の構成と類似する（図９を参照）。シミュレーション管理部がシミュレーション状態表示部を備える点において、本実施形態は、第２の実施形態と相違する。
【０１８０】
シミュレーション実行部１１０からの一時停止指示があったとき、シミュレーション状態表示部１９０は、同期判定手段１３１により判定された同期判定時間及び同期確定仮想時間を表示する。また、シミュレーション状態表示部１９０は、シミュレーション実行指示部１１０より取得された各シミュレータ部の停止状態を表示する。更に、シミュレーション状態表示部１９０は、シミュレータ状態管理部１２０が保持する各シミュレータ部の同期予定時間、仮想時間、及びシミュレーション演算結果並びに同期管理部１４０が作成した各シミュレータ部のシミュレーション演算条件を表示する。
【０１８１】
［表示画面の構成］
図１２、図１５、図１６を参照しながら、本実施形態に係るシミュレーション状態表示部における画面表示の構成を説明する。図１５は、シミュレーション状態表示部１９０における画面表示の一例を示す図である。以下で説明する例は、第２の実施形態において、第２のシミュレータ部が185msまでシミュレーション演算処理を実行した時点で所望の条件を満たし(6)一時停止要求をシミュレーション管理部に送出した後の状態における画面表示の例である。
【０１８２】
図１５では、同期判定時間は、シミュレーション状態表示部５２０の同期時間５２１として表示され、同期確定仮想時間は、シミュレーション状態表示部５２０の現在時間５２２として表示される。
【０１８３】
図１５では、(6)一時停止要求を送出した第２のシミュレータ部に対して、シミュレータ状態表示部５３０のシミュレータ状態表示部５３２に「BREAK」が表示される。また、(6)一時停止要求を送出していない第１及び第３のシミュレータ部に対して、シミュレータ状態表示部５３２に「PAUSE」が表示される。表示内容「BREAK」や「PAUSE」は一例であり、一時停止している状態を示すことができれば何でも良い。また、シミュレータ状態表示部５３０において、シミュレータ状態管理部１２０が保持している各シミュレータの同期予定時間を同期予定時間５３３として表示し、仮想時間を現在時間５３４として表示する。シミュレータ状態表示部５３０の詳細表示ボタン５３５を押すと、各シミュレータにおける一時停止状態の詳細情報を表示する画面が表示される。
【０１８４】
図１５に示す画面表示は、シミュレーション実行指示部１１０に対する操作を行うためのシミュレーション操作表示部５１０も備える。シミュレーション操作表示部５１０は、開始要求、終了要求、一時停止要求、及び一時停止解除要求を発行する操作ボタン５１１と、シミュレーションの現在の状態を示すインジケータ５１２と備えている。
【０１８５】
図１６は、図１５の第１のシミュレータ部に対する詳細表示ボタン５３５を押下したときの画面表示の一例である。
【０１８６】
詳細表示ボタン５３５が押下されると、シミュレーション状態表示部１９０は、シミュレータ状態管理部１２０が保持するシミュレータ状態１２１を参照し、シミュレーション演算結果１２３をシミュレーション演算結果表示部５４０に表示する。図１６に示すように、シミュレーション演算結果表示部５４０には、シミュレーション演算結果５４１を最新のシミュレーション演算結果及び過去のシミュレーション演算結果をまとめた形で表示しても良い。
【０１８７】
詳細表示ボタン５３５が押下されると、シミュレーション状態表示部１９０は、同期管理部１４０が保持する同期応答１４１を参照し、シミュレーション演算条件１４２をシミュレーション演算条件表示部５５０に表示する。図１６に示すように、シミュレーション演算条件表示部５５０には、最新のシミュレーション演算条件（(2)同期要求で受け付けたシミュレーション演算結果の最新値）５５１及び以前に(3)同期応答で送出したシミュレーション演算条件５５２を表示しても良い。
【０１８８】
図示する例では、シミュレーション管理部が第２のシミュレータ部からの(6)一時停止要求を受け付けた状態である。従って、図１５のシミュレーション操作表示部５１０において、一時停止に対応するシミュレーション操作状態表示部５１２がアクティブ表示「●」となり、一時停止に対応するボタン５１１が押下された状態となる。
【０１８９】
シミュレーション管理部は、第１のシミュレータ部からの(2)同期要求(190ms)、第２のシミュレータ部からの(2)同期要求(200ms,185ms,一時停止)、第３のシミュレータ部からの(2)同期要求(210ms)を受け付けた状態である。従って、図１５のシミュレータ状態表示部５３０において、第１のシミュレータ部に対して、同期予定時間５３３は「190ms」と表示され、現在時間５３４は「190ms」と表示される。また、シミュレータ状態表示部５３０において、第２のシミュレータ部に対して、同期予定時間５３３は「200ms」と表示され、現在時間５３４は「185ms」と表示される。さらに、シミュレータ状態表示部５３０において、第３のシミュレータ部に対して、同期予定時間５３３は「210ms」と表示され、現在時間５３４は「210ms」と表示される。
【０１９０】
このとき、同期判定時間は190msであり、同期確定仮想時間は185msであるから、図１５のシミュレーション状態表示部５２０において、同期時間５２１は「190ms」と表示され、現在時間５２２は「185ms」と表示される。
【０１９１】
シミュレーション管理部は、第１のシミュレータ部からの(2)同期要求(190ms)を受け付けたので、シミュレーション状態管理部１２０は、第１のシミュレータ部の仮想時間T1=190msにおけるシミュレーション演算結果１２３を保持している。従って、図１６のシミュレーション演算結果表示部５４０において、第１のシミュレータ部の仮想時間T1=190msにおけるシミュレーション演算結果１２３がシミュレーション演算結果５４１として表示される。このとき、図１６に示すように、過去に保持された第１のシミュレータ部の仮想時間（例えばT1=180ms,170ms等）におけるシミュレーション演算結果１２３を一緒に表示しても良い。
【０１９２】
図１６のシミュレーション演算条件表示部５５０において、第１のシミュレータ部に対する最新のシミュレーション演算条件が、シミュレーション演算条件５５１として表示されている。シミュレーション演算条件５５１は、T2=185msにおけるシミュレーション演算結果と、T3=210msにおけるシミュレーション演算結果との中から選択された第１のシミュレータ部に対してシミュレーション演算条件となるものを含む。図１６に示す例では、第２のシミュレータ部のT2=185msにおけるシミュレーション演算結果を「・・・from第２のシミュレータ部185ms」と表示している。また、第３のシミュレータ部のT3=210msにおけるシミュレーション演算結果を「・・・from 第３のシミュレータ部 210ms」と表示している。ただし、同期予定時間=190msで第１のシミュレータ部に同期応答が送出されるが、第２のシミュレータ部の同期予定時間は200msであるため、現在受け付けている第２のシミュレータのT2=185msにおけるシミュレーション演算結果を使用できない。
【０１９３】
従って、同期予定時間=190msで第１のシミュレータ部に送出される同期応答に含まれるシミュレーション演算条件を作成する際には、同期が確定しているT2=180msにおける第２のシミュレータ部のシミュレーション演算結果が使用される。同じ理由により、同期予定時間=190msで第１のシミュレータ部に送出される同期応答に含まれるシミュレーション演算条件を作成する際には、同期が確定しているT3=180msにおける第３のシミュレータ部のシミュレーション演算結果が使用される。
【０１９４】
図１６に示す例では、第１のシミュレータ部に送出される同期応答に含まれるT1=190msにおけるシミュレーション演算条件が、シミュレーション演算条件５５２として表示されている。シミュレーション演算条件５５２は、T2=180msにおけるシミュレーション演算結果と、T3=180msにおけるシミュレーション演算結果との中から選択された第１のシミュレータ部に対するシミュレーション演算条件となるものを含む。図１６に示す例では、第２のシミュレータ部のT2=180msにおけるシミュレーション演算結果を「・・・from第２のシミュレータ部180ms」と表示している。また、第３のシミュレータ部のT3=180msにおけるシミュレーション演算結果を「・・・from 第３のシミュレータ部 180ms」と表示している。
【０１９５】
このように、本実施形態により、一時停止したときの各シミュレータ部における仮想時間がシミュレータ部の間で一致していない場合であっても、一時停止時における各シミュレータ部の停止状況を一覧表示して、確認する事ができる。
【０１９６】
さらに、観測後にシミュレーション演算を再開できる。この際、シミュレーション演算を一時停止させた場合のシミュレーション演算結果を、シミュレーション演算を一時停止させなかった場合のシミュレーション演算結果と一致させることができる。
【０１９７】
（その他の実施形態）
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
2014211806.tif 000003
【図２】
2014211806.tif 000004
【図３】
2014211806.tif 000005
【図４】
2014211806.tif 000006
【図５】
2014211806.tif 000007
【図６】
2014211806.tif 000008
【図７】
2014211806.tif 000009
【図８】
2014211806.tif 000010
【図９】
2014211806.tif 000011
【図１０】
2014211806.tif 000012
【図１１】
2014211806.tif 000013
【図１２】
2014211806.tif 000014
【図１３】
2014211806.tif 000015
【図１４】
2014211806.tif 000016
【図１５】
2014211806.tif 000017
【図１６】
2014211806.tif 000018
【図１７】
2014211806.tif 000019
【図１８】
2014211806.tif 000020
【図１９】
2014211806.tif 000021
【図２０】
2014211806.tif 000022
【図２１】
2014211806.tif 000023