(57)【特許請求の範囲】
【請求項１】
実時間に同期させたシミュレーションである同期シミュレーションを行うための条件である同期シミュレーション条件と、実時間と非同期のシミュレーションである非同期シミュレーションを行うための条件である非同期シミュレーション条件とが定義されるシミュレーション条件情報を記憶する記憶部と、
前記シミュレーション条件情報を参照して、自装置と外部装置とのインタフェースの接続により生じる相互作用の有無を判断し、前記同期シミュレーション条件及び前記非同期シミュレーション条件のいずれが成立しているかを判定する条件判定部と、
前記条件判定部により前記同期シミュレーション条件が成立していると判定された場合に、前記同期シミュレーションを行い、前記条件判定部により前記非同期シミュレーション条件が成立していると判定された場合に、前記非同期シミュレーションを行うシミュレーション実行部とを有するシミュレーション装置。
【請求項２】
実時間に同期させたシミュレーションである同期シミュレーションを行うための条件である同期シミュレーション条件と、実時間と非同期のシミュレーションである非同期シミュレーションを行うための条件である非同期シミュレーション条件とが自装置の内部状態に関連づけて定義されるシミュレーション条件情報を記憶する記憶部と、
前記シミュレーション条件情報を参照して、自装置の現在の内部状態を解析して、外部装置とのインタフェースの接続により生じる相互作用の有無を判断し、前記同期シミュレーション条件及び前記非同期シミュレーション条件のいずれが成立しているかを判定する条件判定部と、
前記条件判定部により前記同期シミュレーション条件が成立していると判定された場合に、前記同期シミュレーションを行い、前記条件判定部により前記非同期シミュレーション条件が成立していると判定された場合に、前記非同期シミュレーションを行うシミュレーション実行部とを有するシミュレーション装置。
【請求項３】
実時間に同期させたシミュレーションである同期シミュレーションを行うための条件である同期シミュレーション条件と、実時間と非同期のシミュレーションである非同期シミュレーションを行うための条件である非同期シミュレーション条件とが、シミュレーション結果を利用する外部装置の状態に関連づけて定義されるシミュレーション条件情報を記憶する記憶部と、
前記シミュレーション条件情報を参照して、前記外部装置の現在の状態を解析して、前記同期シミュレーション条件及び前記非同期シミュレーション条件のいずれが成立しているかを判定する条件判定部と、
前記条件判定部により前記同期シミュレーション条件が成立していると判定された場合に、前記同期シミュレーションを行い、前記条件判定部により前記非同期シミュレーション条件が成立していると判定された場合に、前記非同期シミュレーションを行うシミュレーション実行部とを有するシミュレーション装置。
【請求項４】
実時間に同期させたシミュレーションである同期シミュレーションを行うための条件である同期シミュレーション条件と、実時間と非同期のシミュレーションである非同期シミュレーションを行うための条件である非同期シミュレーション条件とが、自装置の内部状態である、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の使用状況、メモリの割当て状況、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスの稼動状況、変数の値、ポインタの参照先、プログラムカウンタの値、フラグの値、タイマの値、分岐命令の分岐先、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の状態の少なくともいずれかに関連づけて定義されるシミュレーション条件情報を記憶する記憶部と、
前記シミュレーション条件情報を参照して、自装置の現在の内部状態を解析して、前記同期シミュレーション条件及び前記非同期シミュレーション条件のいずれが成立しているかを判定する条件判定部と、
前記条件判定部により前記同期シミュレーション条件が成立していると判定された場合に、前記同期シミュレーションを行い、前記条件判定部により前記非同期シミュレーション条件が成立していると判定された場合に、前記非同期シミュレーションを行うシミュレーション実行部とを有するシミュレーション装置。
【請求項５】
前記記憶部は、
前記同期シミュレーション条件と前記非同期シミュレーション条件とが、前記シミュレーション装置のユーザインタフェースの状態に関連づけて定義されているシミュレーション条件情報を記憶し、
前記条件判定部は、
前記ユーザインタフェースの現在の状態を解析して、前記同期シミュレーション条件及び前記非同期シミュレーション条件のいずれが成立しているかを判定する請求項１〜４のいずれか一項に記載のシミュレーション装置。
【請求項６】
前記シミュレーション実行部は、
計算時間を短縮させる計算方法を用いて、前記非同期シミュレーションを行う請求項１〜４のいずれか一項に記載のシミュレーション装置。
【請求項７】
前記シミュレーション実行部は、
計算量を減少させる計算方法を用いて、前記非同期シミュレーションを行う請求項１〜４のいずれか一項に記載のシミュレーション装置。
【請求項８】
前記シミュレーション実行部は、
外部のシミュレーション装置とシミュレーション計算上の時刻を合せながら前記非同期シミュレーションを行う請求項１〜４のいずれか一項に記載のシミュレーション装置。
【請求項９】
前記シミュレーション実行部は、
計算時間を短縮させる計算方法及び計算量を減少させる計算方法の少なくともいずれかを用いて、外部のシミュレーション装置と同期しながら前記非同期シミュレーションを行う請求項７に記載のシミュレーション装置。
【請求項１０】
前記条件判定部は、接続されている外部装置が、自装置と同種の装置であるかを判定する、請求項１〜４のいずれか一項に記載のシミュレーション装置。
【請求項１１】
実時間に同期させたシミュレーションである同期シミュレーションを行うための条件である同期シミュレーション条件と、実時間と非同期のシミュレーションである非同期シミュレーションを行うための条件である非同期シミュレーション条件とが定義されるシミュレーション条件情報を記憶するコンピュータが、前記シミュレーション条件情報を参照して、前記コンピュータと外部装置とのインタフェースの接続により生じる相互作用の有無を判断し、前記同期シミュレーション条件及び前記非同期シミュレーション条件のいずれが成立しているかを判定する条件判定ステップと、
前記コンピュータが、前記条件判定ステップにより前記同期シミュレーション条件が成立していると判定された場合に、前記同期シミュレーションを行い、前記条件判定ステップにより前記非同期シミュレーション条件が成立していると判定された場合に、前記非同期シミュレーションを行うシミュレーション実行ステップとを有するシミュレーション方法。
【請求項１２】
実時間に同期させたシミュレーションである同期シミュレーションを行うための条件である同期シミュレーション条件と、実時間と非同期のシミュレーションである非同期シミュレーションを行うための条件である非同期シミュレーション条件とが定義されるシミュレーション条件情報を記憶するコンピュータに、
前記シミュレーション条件情報を参照して、前記コンピュータと外部装置とのインタフェースの接続により生じる相互作用の有無を判断し、前記同期シミュレーション条件及び前記非同期シミュレーション条件のいずれが成立しているかを判定する条件判定ステップと、
前記条件判定ステップにより前記同期シミュレーション条件が成立していると判定された場合に、前記同期シミュレーションを行い、前記条件判定ステップにより前記非同期シミュレーション条件が成立していると判定された場合に、前記非同期シミュレーションを行うシミュレーション実行ステップとを実行させるシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーション装置に関する。
【背景技術】
【０００２】
近年の電子機器は多機能化に伴い、複雑な制御をすることを求められる。
そのため、従来は電子回路や物理的機構等のハードウェアによって行われていた制御は、マイクロコンピュータを搭載することによってソフトウェアで実現されている。
このように、電子機器など特定の目的に用いられるシステムを、パーソナルコンピュータ（以下、ＰＣという）のような汎用的なシステムと対比して組込みシステムと呼ぶ。
【０００３】
組込みシステムにおける製品開発では、ハードウェアとソフトウェアが並行して開発されることがある。
そのため、組込みシステムの製品開発段階では、ＰＣ等でマイクロコンピュータの動作を模擬するシミュレーション装置が頻繁に用いられる。
シミュレーション装置を用いることで、ハードウェアが完成していなくても開発したソフトウェアが正しく動作しているかどうかを検証することができる。
【０００４】
また、組込みシステムではハードウェアを制御することが多いため、リアルタイム性も求められる。
特に昨今では、複数の機器が連動して付加価値の高い機能を実現することも増えてきており、マイクロコンピュータ同士の通信や同期は重要度を増している。
シミュレーション装置は、既存の機器と開発中の機器および開発中の機器同士の接続動作の検証にも有効である。
【０００５】
組み込みシステムで使用されるマイクロコンピュータに比べ、ＰＣは高い計算能力を持つ場合が多く、シミュレーション装置は実際にはより高速に計算可能であるが、実機（マイクロコンピュータ）と連動するために速度を落として実行される場合がある。
また、マイクロコンピュータにおいて、実際にシミュレーション装置と通信可能になるまでに初期処理を実施するための待ち時間が発生する場合もある。
【０００６】
特許文献１では、実機の処理速度と同じ速度で処理が行われるシミュレーション装置において、試験情報に変速情報を付加することでシミュレーションの実行速度を変化させている。
変速情報を付加することにより、実時間で再現する必要の無い部分は高速で処理を行い、本当に模擬したい部分だけを実機と同速度で再現することが可能になり、短時間でのシミュレーションを実現している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−２０６１０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１の技術では、予め設定された試験情報を基に定めた部分の高速化しかできず、試験情報に合わせて予め人手で高速化する部位を設定する必要がある。
すなわち、特許文献１の技術では、シミュレーション実施者が、シミュレーションを高速化する部位を試験情報から個別に抽出し、抽出した各部位をシミュレーション装置に設定する必要があり、シミュレーション実施者の負担が大きいという課題がある。
【０００９】
本発明は、上記のような課題を解決することを主な目的の一つとしており、シミュレーション実施者に負担をかけずに、シミュレーションを高速化できる構成を得ることを主な目的とする。
【課題を解決するための手段】
【００１０】
本発明に係るシミュレーション装置は、
実時間に同期させたシミュレーションである同期シミュレーションを行うための条件である同期シミュレーション条件と、実時間と非同期のシミュレーションである非同期シミュレーションを行うための条件である非同期シミュレーション条件とが定義されるシミュレーション条件情報を記憶する記憶部と、
前記シミュレーション条件情報を参照して、自装置と外部装置とのインタフェースの接続により生じる相互作用の有無を判断し、前記同期シミュレーション条件及び前記非同期シミュレーション条件のいずれが成立しているかを判定する条件判定部と、
前記条件判定部により前記同期シミュレーション条件が成立していると判定された場合に、前記同期シミュレーションを行い、前記条件判定部により前記非同期シミュレーション条件が成立していると判定された場合に、前記非同期シミュレーションを行うシミュレーション実行部とを有する。
【発明の効果】
【００１１】
本発明では、同期シミュレーション条件及び非同期シミュレーション条件の成否を判定し、非同期シミュレーション条件が成立している場合は、実時間と非同期のシミュレーションである非同期シミュレーションを行う。
このため、本発明によれば、システム設計者は、同期シミュレーション条件及び非同期シミュレーション条件を設定するのみでよく、シミュレーションを高速化する部位を試験情報から個別に抽出し、抽出した各部位をシミュレーション装置に設定する必要がない。
従って、シミュレーション実施者に負担をかけずに、シミュレーションを高速化することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１に係るシミュレーション装置の利用環境の例を示す図。
【図２】実施の形態１に係るシミュレーション装置の機能構成例を示す図。
【図３】実施の形態１に係るシミュレーション装置と実機の動作時間の差の例を示す図。
【図４】実施の形態１に係るシミュレーション装置の動作例を示すフローチャート図。
【図５】実施の形態１に係るシミュレーション装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１３】
以下に、本発明に係るシミュレーション装置の実施の形態を図面に基づいて詳細に説明する。
なお、この実施の形態によりこの発明が限定されるものではない。
【００１４】
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係るシミュレーション装置１の利用環境の例を示す。
シミュレーション装置１は、接点や通信などのインタフェースを介して実機２及び他のシミュレーション装置３と接続される。
実機２は、シミュレーション装置１が模擬する装置である被模擬装置と通信を行う機器である。
実機２は、例えば、マイクロコンピュータである。
シミュレーション装置３は、シミュレーション装置１と同種のシミュレーション装置でもよいし、シミュレーション装置１と異なる種類のシミュレーション装置のいずれでもよい。
また、シミュレーション装置１は、ユーザ４とのユーザインタフェースを持つ。
シミュレーション装置１に接続される実機２の台数及び他のシミュレーション装置３の台数はそれぞれ１台でもよいし、それぞれ複数台でもよい。
また、シミュレーション装置１に実機２のみが接続され、シミュレーション装置３は接続されない構成でもよい。
また、ユーザ４が存在しなくてもよい。
【００１５】
シミュレーション装置１が、実機２、シミュレーション装置３、ユーザ４のいずれとも接続しない場合、すなわち、シミュレーション装置１が単独で動作することで所定の動作を実施する場合、本質的にシミュレーション装置１はその処理内容と時刻を外部と同期する必要はない。
たとえば、シミュレーション装置１がある熱源に対する室温の変化を模擬する場合、計算開始から実際の経過時間に合わせた形で計算した温度変化の情報を出力する必要はなく、目的とする時刻までの変化を可能な限り高速に計算し、出力することができる。
【００１６】
次に、シミュレーション装置１が実機２と接続される場合のシミュレーション装置１の動作を説明する。
シミュレーション装置１が実機２と通信する場合、通信が発生する期間はシミュレーション装置１と実機２との間で相互作用が生じるため、シミュレーション装置１の実行は実機２の状態に影響を受ける。
シミュレーション装置１が、現実の時間である実時間より高速に模擬動作を実施可能な演算処理能力を有する場合、相互作用を正しく模擬するためには、シミュレーション装置１は、何も処理しない時間であるアイドル時間を設けて実時間に同期する必要がある。
【００１７】
シミュレーション装置１をユーザ４が操作し、対話的に処理を進めるような場合にも、シミュレーション装置１が高速に動作するとユーザ４が正しく操作を行えない、表示内容を読み取れない、といった問題が発生する。
このため、シミュレーション装置１は、実時間に同期させるか、ユーザが操作可能な状態まで実行速度を遅くする必要がある。
【００１８】
従来のシミュレーション装置では、上記のような実時間との同期機能を持つ場合、シミュレーション装置の起動から実際に通信が開始され相互作用が発生するまでの期間においても、実時間に同期して計算が行われる。
シミュレーション装置と外部（実機２又はユーザ４に相当）との間の相互作用がない期間では実時間に同期する必要がないが、従来のシミュレーション装置では相互作用がない期間でも不必要に実時間と同期してシミュレーションを行う。
もしくは、このような相互作用がない期間におけるシミュレーションを高速化するためには、シミュレーション実施者が相互作用がない期間を個々に抽出し、当該期間においてシミュレーションを高速化させる設定を行う必要がある。
【００１９】
本実施の形態に係るシミュレーション装置１では、シミュレーション装置１内部の状態または実機２又はユーザ４というシミュレーション装置１の外部の状態を参照して相互作用の有無を判断する。
そして、本実施の形態に係るシミュレーション装置１は、相互作用がない状態と判断できる場合には無駄な待ち時間をなくして高速に動作する。
【００２０】
本実施の形態に係るシミュレーション装置１の機能構成例を図２に示す。
【００２１】
図２において、入出力制御部１３は、実機２と通信を行う等により実機２の現在の状態を検出する。
また、入出力制御部１３は、シミュレーション実行部１２のシミュレーション結果を実機２に出力する。
【００２２】
内部状態特定部１７は、シミュレーション装置１の内部状態を特定する。
例えば、内部状態特定部１７は、シミュレーション装置１のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の使用状況、メモリの割当て状況、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスの稼動状況、変数の値、ポインタの参照先、プログラムカウンタの値、フラグの値、タイマの値、分岐命令の分岐先、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の状態等の情報を収集して、シミュレーション装置１の内部状態を特定する。
【００２３】
記憶部１６は、シミュレーション条件情報を記憶する。
シミュレーション条件情報には、同期シミュレーション条件と非同期シミュレーション条件とが定義されている。
同期シミュレーション条件は、実時間に同期させたシミュレーションである同期シミュレーションを行うための条件である。
同期シミュレーション条件には、相互作用がある状態が記述される。
非同期シミュレーション条件は、実時間と非同期のシミュレーションである非同期シミュレーションを行うための条件である。
非同期シミュレーション条件には、相互作用がない状態が記述される。
シミュレーション条件情報では、同期シミュレーション条件と非同期シミュレーション条件とが、シミュレーション装置１の内部状態、シミュレーション結果を利用する外部装置の状態、シミュレーション装置１のユーザインタフェースの状態の少なくともずれかに関連づけて定義されている。
シミュレーション装置１の内部状態及びユーザインタフェースの状態は、内部状態特定部１７により特定され、外部装置の状態は入出力制御部１３により特定される。
【００２４】
非同期シミュレーション条件としては、例えば、外部装置が初期化中であり、外部装置がシミュレーション装置１と通信を行うことができないない状態であるという条件が想定される。
また、入出力制御部１３が管理している通信ポート１５に外部装置が接続されていない状態であるという条件が想定される。
更に、ユーザインタフェースが非表示や無効状態になっているという条件、シミュレーション装置１の内部の時計が特定の時刻であるという条件、通信ポート１５に外部装置が接続されているが、外部装置からデータを受信していないという条件等が想定される。
また、同期シミュレーション条件としては、非同期シミュレーション条件に記述される状態になっていないという条件が想定される。
【００２５】
なお、シミュレーション条件情報には、同期シミュレーション条件及び非同期シミュレーション条件のいずれか一方のみが記述されるようにしてもよい。
シミュレーション条件情報に同期シミュレーション条件のみが記述されている場合は、同期シミュレーション条件に該当しない状態が非同期シミュレーション条件にあたる。
一方、シミュレーション条件情報に非同期シミュレーション条件のみが記述されている場合は、非同期シミュレーション条件に該当しない状態が同期シミュレーション条件にあたる。
このように、シミュレーション条件情報では、同期シミュレーション条件のみが記述されている場合でも非同期シミュレーション条件が定義されていることになる。
同様に、非同期シミュレーション条件のみが記述されている場合でも同期シミュレーション条件が定義されていることになる。
【００２６】
条件判定部１４は、シミュレーション条件情報を参照して、同期シミュレーション条件及び非同期シミュレーション条件のいずれが成立しているかを判定する。
より具体的には、同期シミュレーション条件と非同期シミュレーション条件とがシミュレーション装置１の内部状態に関連づけて定義されている場合に、条件判定部１４は、シミュレーション装置１の現在の内部状態を解析して、同期シミュレーション条件及び非同期シミュレーション条件のいずれが成立しているかを判定する。
また、同期シミュレーション条件と非同期シミュレーション条件とが、外部装置の状態に関連づけて定義されている場合は、条件判定部１４は、外部装置である実機２の現在の状態を解析して、同期シミュレーション条件及び非同期シミュレーション条件のいずれが成立しているかを判定する。
また、同期シミュレーション条件と非同期シミュレーション条件とが、シミュレーション装置１のユーザインタフェースの状態に関連づけて定義されている場合は、条件判定部１４は、ユーザインタフェースの現在の状態を解析して、同期シミュレーション条件及び非同期シミュレーション条件のいずれが成立しているかを判定する。
なお、条件判定部１４により行われる処理は条件判定ステップに相当する。
【００２７】
シミュレーション実行部１２は、条件判定部１４により同期シミュレーション条件が成立していると判定された場合に、同期シミュレーションを行う。
一方、条件判定部１４により非同期シミュレーション条件が成立していると判定された場合に、シミュレーション実行部１２は、非同期シミュレーションを行う。
シミュレーション実行部１２は、後述の調速部１１の制御に基づき、計算時間を短縮させる計算方法を用いて、非同期シミュレーションを行うことができる。
また、シミュレーション実行部１２は、調速部１１の制御に基づき、計算量を減少させる計算方法を用いて、非同期シミュレーションを行うことができる。
なお、シミュレーション実行部１２により行われる処理はシミュレーション実行ステップに相当する。
【００２８】
調速部１１は、実時間に同期するための方法を制御する。
つまり、調速部１１は、シミュレーション装置１の内部時間と実時間をどのように同期させるかを管理している。
前述したように、調速部１１は、計算時間を短縮させる計算方法を指定し、シミュレーション実行部１２に、指定した計算方法での非同期シミュレーションを行わせることができる。
また、調速部１１は、計算量を減少させる計算方法を指定し、シミュレーション実行部１２に、指定した計算方法での非同期シミュレーションを行わせることができる。
調速部１１は、具体的には、以下に示す（１）〜（３）の方法のいずれか又は（１）〜（３）の方法を組み合わせて、非同期シミュレーションの計算時間の短縮又は計算量の減少を図る。
（１）時刻を同期するためにシミュレーション実行部１２に設定されている待ち時間を減らす。
（２）計算精度が低くなる代わりに計算量が減るアルゴリズムや計算条件を採用してシミュレーション実行部１２の計算量を減らす。
例えば、実数演算の精度を落とす、１／１０００秒単位で実施していた計算を１秒単位で行う、予め計算しておいた「相互作用を開始する直前の状態」を適用する、といった方法を採用する。
（３）ハードウェア資源を一時的に増加して処理能力を向上する。
例えば、ＣＰＵのオーバークロックや、ＯＳによるタスク処理割り当て時間を増加（模擬演算処理の優先度を上げる）させることで単位時間あたりの計算量を増やす方法がある。
【００２９】
＊＊＊動作の説明＊＊＊
次に、図４を参照して、本実施の形態に係るシミュレーション装置１の動作例を説明する。
なお、図４に示す処理手順は、シミュレーション方法及びシミュレーションプログラムの例に相当する。
【００３０】
まず、条件判定部１４が現在の状態を取得する（Ｓ４０１）。
具体的には、条件判定部１４は、シミュレーション装置１の内部の状態及びユーザインタフェースの状態を内部状態特定部１７から取得し、外部装置の状態を入出力制御部１３から取得する。
【００３１】
次に、条件判定部１４は、シミュレーション条件情報の同期シミュレーション条件及び非同期シミュレーション条件と、Ｓ４０１で取得した現在の状態とを照合する（Ｓ４０２）。
そして、条件判定部１４は、同期シミュレーション条件及び非同期シミュレーション条件のいずれが成立しているかを判定する（Ｓ４０３）。
【００３２】
そして、同期シミュレーション条件が成立している場合は、シミュレーション実行部１２が同期シミュレーションを行う（Ｓ４０４）。
一方、非同期シミュレーション条件が成立している場合は、シミュレーション実行部１２は、非同期シミュレーションを行う（Ｓ４０５）。
より具体的には、条件判定部１４がＳ４０３の判定結果を調速部１１に出力する。
条件判定部１４により同期シミュレーション条件が成立していると判定された場合は、調速部１１は、実機２と同期をとるための待ち時間を指定して、シミュレーション実行部１２にシミュレーションの実行を指示する。
この結果、シミュレーション実行部１２では、同期シミュレーションが行われる。
一方、条件判定部１４により非同期シミュレーション条件が成立していると判定された場合は、調速部１１は、計算時間を短縮させる計算方法や計算量を減少させる計算方法（上記の（１）〜（３）等の方法）を指定して、シミュレーション実行部１２にシミュレーションの実行を指示する。
この結果、シミュレーション実行部１２では、非同期シミュレーションが行われる。
【００３３】
シミュレーション装置１では、以上のＳ４０１〜Ｓ４０５の処理が繰り返される。
【００３４】
本実施の形態に係るシミュレーション装置１では、図３に示すように非同期シミュレーションが行われることによりシミュレーションが高速化される。
図３では、シミュレーション装置１が動作を模擬する被模擬装置では初期化処理に時間Ｔ１を要する。
初期化期間では、被模装置と実機２との間では通信が行われず相互作用が発生しない。
シミュレーション装置１では、初期化処理を非同期シミュレーションにより時間Ｔ２で完了させることができる。
このため、シミュレーション装置１は、初期化処理を（Ｔ１−Ｔ２）の時間分短縮することができる。
【００３５】
なお、本実施の形態に係るシミュレーション装置１に、同種のシミュレーション装置（以下、シミュレーション装置１Ａという）が接続されている場合は、シミュレーション装置１及びシミュレーション装置１Ａは相互に非同期シミュレーションによりシミュレーションを高速化することができる。
しかしながら、シミュレーション装置１が、外部装置がシミュレーション装置１Ａであることを判別できないと、シミュレーション装置１Ａの状態が同期シミュレーション条件に合致する場合には、「相互作用必要」と判断され、同期シミュレーションが実行されてしまう。
このため、条件判定部１４に、接続されている外部装置が、シミュレーション装置１と同種のシミュレーション装置１Ａであるかを判定する機能を設けるようにしてもよい。
例えば、条件判定部１４は、入出力制御部１３を介して外部装置との間で特定のメッセージが送受信できた場合には、外部装置がシミュレーション装置１Ａであると判定する。
そして、外部装置がシミュレーション装置１Ａであると判定できた場合には、シミュレーション実行部１２は、シミュレーション装置１Ａとの間で実時間から独立して高速にシミュレーションを行う（非同期シミュレーションを行う）。
この場合にも、シミュレーション実行部１２は、計算時間を短縮させる計算方法や計算量を減少させる計算方法（上記の（１）〜（３）等の方法）にて、非同期シミュレーションを行うことができる。
【００３６】
シミュレーション装置１にシミュレーション装置１Ａが接続されている場合にも、シミュレーション装置１とのシミュレーション装置１Ａとの間で同期をとる必要がある場合がある。
このような場合には、シミュレーション装置１の調速部１１とシミュレーション装置１Ａの調速部１１とが連携して時刻同期を行いながら、シミュレーション装置１のシミュレーション実行部１２とシミュレーション装置１Ａのシミュレーション実行部１２が非同期シミュレーションを行う。
なお、シミュレーション装置１の調速部１１とシミュレーション装置１Ａの調速部１１とで同期をとる時刻は、実時間上の時刻ではなくシミュレーション計算上の時刻である。
このようにすることで、シミュレーション装置１にシミュレーション装置１Ａを接続した場合でも、最適な実行時間で模擬処理を完了することができる。
【００３７】
＊＊＊実施の形態の効果＊＊＊
以上のように、本実施の形態では、シミュレーション装置１は条件判定部１４と調速部１１の働きによりシミュレーション実行部１２の実行時間を短縮し、シミュレーション装置１の初期化時間の短縮によって動作完了までの待ち時間を削減することができる。
【００３８】
また、シミュレーション装置１がＰＣ上のプログラムとして存在する場合、シミュレーション装置１が使用するハードウェアリソース（ＣＰＵ計算量）を削減することで、同一ＰＣ上で実行される他のプログラムを優先的に動作させることも可能である。
この目的で前記（２）の方式を用いて実時間との同期を維持したまま計算量を減らすことも可能である。
【００３９】
以上のように、本実施の形態に係るシミュレーション装置１は、制御ソフトウェア等の開発における接続試験に有用であり、特に模擬対象の装置やシステムが初期化等で長大な待ち時間を要する場合に効果を奏する。
【００４０】
＊＊＊ハードウェア構成の説明＊＊＊
【００４１】
最後に、シミュレーション装置１のハードウェア構成例を図５を参照して説明する。
シミュレーション装置１はコンピュータである。
シミュレーション装置１は、プロセッサ９０１、補助記憶装置９０２、メモリ９０３、通信装置９０４、入力インタフェース９０５、ディスプレイインタフェース９０６といったハードウェアを備える。
プロセッサ９０１は、信号線９１０を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
入力インタフェース９０５は、入力装置９０７に接続されている。
ディスプレイインタフェース９０６は、ディスプレイ９０８に接続されている。
【００４２】
プロセッサ９０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
プロセッサ９０１は、例えば、ＣＰＵ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）である。
補助記憶装置９０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。
メモリ９０３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
記憶部１６は、補助記憶装置９０２又はメモリ９０３により実現される。
通信装置９０４は、データを受信するレシーバー９０４１及びデータを送信するトランスミッター９０４２を含む。
通信装置９０４は、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
通信装置９０４に通信ポート１５が含まれる。
入力インタフェース９０５は、入力装置９０７のケーブル９１１が接続されるポートである。
ディスプレイインタフェース９０６は、ディスプレイ９０８のケーブル９１２が接続されるポートである。
入力装置９０７は、例えば、マウス、キーボード又はタッチパネルである。
ディスプレイ９０８は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。
【００４３】
補助記憶装置９０２には、図２に示す調速部１１、シミュレーション実行部１２、入出力制御部１３、条件判定部１４及び内部状態特定部１７（以下、調速部１１、シミュレーション実行部１２、入出力制御部１３、条件判定部１４及び内部状態特定部１７をまとめて「部」と表記する）の機能を実現するプログラムが記憶されている。
このプログラムは、メモリ９０３にロードされ、プロセッサ９０１に読み込まれ、プロセッサ９０１によって実行される。
更に、補助記憶装置９０２には、ＯＳも記憶されている。
そして、ＯＳの少なくとも一部がメモリ９０３にロードされ、プロセッサ９０１はＯＳを実行しながら、「部」の機能を実現するプログラムを実行する。
図５では、１つのプロセッサ９０１が図示されているが、シミュレーション装置１が複数のプロセッサ９０１を備えていてもよい。
そして、複数のプロセッサ９０１が「部」の機能を実現するプログラムを連携して実行してもよい。
また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ９０３、補助記憶装置９０２、又は、プロセッサ９０１内のレジスタ又はキャッシュメモリに記憶される。
【００４４】
また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
「回路」は、プロセッサ９０１だけでなく、ロジックＩＣ又はＧＡ（Ｇａｔｅ  Ａｒｒａｙ）又はＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）又はＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）といった他の種類の処理回路をも包含する概念である。
【符号の説明】
【００４５】
１  シミュレーション装置、２  実機、３  シミュレーション装置、４  ユーザ、１１  調速部、１２  シミュレーション実行部、１３  入出力制御部、１４  条件判定部、１５  通信ポート、１６  記憶部、１７  内部状態特定部。
【図１】
0006664158.tif 000002
【図２】
0006664158.tif 000003
【図３】
0006664158.tif 000004
【図４】
0006664158.tif 000005
【図５】
0006664158.tif 000006