(57)【要約】    【課題】      同期または非同期に関わらずシミュレーションが可能であるとともに、高速なシミュレーションを行うことができ、複数のプロセッサやハードウェアから構成されるシステムの開発効率を高め、開発スピードを向上させること。    【解決手段】  モデル切替え部１０５は、処理実行制御部１０６から実行停止フラグまたは処理完了フラグが入力された場合、当該シミュレーションモデルの処理実行制御部１０６に対し、実行停止命令を出力する。また、このとき、モデル切替え部１０５は、各シミュレーションモデルのシミュレーション上の時刻を比較し、もっとも経過時間が少ないシミュレーションモデルを選択し、そのモデルの処理実行制御部１０６に対し、実行開始命令を出力する。  【選択図】      図１
2006215781.tif 000002
【特許請求の範囲】
【請求項１】
複数のシステムのそれぞれのシミュレーションを行う複数のシミュレーションモデル手段と、
前記シミュレーションモデル手段を切り替えるための情報である切替情報に基づいて、実行中の前記シミュレーションモデル手段の実行を停止させるとともに他の前記シミュレーションモデル手段の実行を開始するように切り替えるモデル切替手段と、
を具備することを特徴とするシミュレーション装置。
【請求項２】
前記モデル切替手段は、実行中の前記シミュレーションモデル手段に対して、他の前記シミュレーションモデル手段から出力される情報である出力情報の入力が必要になったことを示す前記切替情報が入力した場合に、他の前記シミュレーションモデル手段の実行を開始するように切り替えることを特徴とする請求項１記載のシミュレーション装置。
【請求項３】
前記シミュレーションモデル手段は、シミュレーション上の時刻を計測し、
前記モデル切替手段は、あらかじめ設定した前記切替情報であるシミュレーション停止時刻と前記シミュレーションモデル手段にて計測された時刻とが一致した場合に、他の前記シミュレーションモデル手段の実行を開始するように切り替えることを特徴とする請求項１または請求項２記載のシミュレーション装置。
【請求項４】
前記シミュレーションモデル手段からの出力情報を格納する出力情報記憶手段と、
前記出力情報記憶手段における所定のシミュレーションモデル手段の記憶情報量と閾値とを比較する出力情報記憶量監視手段を具備し、
前記モデル切替手段は、前記切替情報である前記記憶情報量が前記閾値以上になったことが前記出力情報記憶量監視手段にて検出された場合には、実行中の前記シミュレーションモデル手段を他の前記シミュレーションモデル手段に切り替えることを特徴とする請求項１から請求項３のいずれかに記載のシミュレーション装置。
【請求項５】
前記モデル切替手段は、前記シミュレーションモデル手段における実行が、あらかじめ設定した前記切替情報である実行停止位置になった場合には、他の前記シミュレーションモデル手段の実行を開始するように切り替えることを特徴とする請求項１から請求項４のいずれかに記載のシミュレーション装置。
【請求項６】
要求される実行速度が異なるシミュレーションモデルの複数の実行形式の中から任意の前記実行形式を選択する実行形式指示手段を具備し、
前記モデル切替手段は、前記実行形式指示手段にて選択された前記切替情報である前記実行形式の情報より、要求される実行速度が速い前記実行形式ほど所定時間における切り替え回数が少なくなるように、他の前記シミュレーションモデル手段の実行を開始するように切り替えることを特徴とする請求項１から請求項５のいずれかに記載のシミュレーション装置。
【請求項７】
前記モデル切替手段は、実行時間がもっとも少ない他の前記シミュレーションモデル手段の実行を開始するように切り替えることを特徴とする請求項１から請求項６のいずれかに記載のシミュレーション装置。
【請求項８】
複数のシミュレーションモデルのそれぞれのシミュレーションを行うステップと、
前記シミュレーションモデルの実行を切り替えるための情報である切替情報に基づいて、実行中の前記シミュレーションモデルを停止させるとともに他の前記シミュレーションモデルの実行を開始するように切り替えるステップと、
を具備することを特徴とするシミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーション装置及びシミュレーション方法に関し、特に処理時間を高速化したシミュレーション装置及びシミュレーション方法に関する。
【背景技術】
【０００２】
従来、ハードウェアやプロセッサおよびそのプロセッサ上で動くソフトウェアを開発する場合、各ハードウェアやプロセッサをモデル化し、擬似的に実行させるシミュレーション装置が一般的に用いられている。シミュレーション装置では、処理単位である動作１クロックごとに、各ハードウェアやプロセッサのモデルを動作させ、命令を実行する。しかし、シミュレーション装置の各モデルを１クロックごとに切り替える必要があり、そのためのオーバヘッドが大きくなり、シミュレーション時間がかかってしまうという問題がある。
【０００３】
そこで、シミュレーション時間を短縮するために、特許文献１で示すようなシミュレーション装置が知られている。図９に示すような、プロセッサによるプログラム実行を例にとって説明すると、外部周辺回路とのやり取りが生じるまでは、プロセッサにおいて複数のクロック分の命令１＃１０及び命令２＃１１をモデルを切り替えず実行し、実行したクロック数をカウントする。周辺回路とのやり取りが生じた段階で、プロセッサにおいて実行したクロック数分、周辺回路を実行することにより命令３＃１２を実行する。このような構成によって、各モデルの切り替え量を減らすことができ、シミュレーション時間を短縮することができる。
【特許文献１】特開平８−３２８９０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の装置においては、単一のプロセッサにおいてはシミュレーションの高速化が可能であるが、複数のプロセッサとハードウェアとがパラレルに動作する場合に適用できないので、そのようなモデルのシミュレーションの高速化ができないという問題がある。又、従来の装置においては、複数のプロセッサとハードウェアの間で非同期に通信する場合には適用できないという問題がある。
【０００５】
本発明はかかる点に鑑みてなされたものであり、同期または非同期に関わらずシミュレーションが可能であるとともに、高速なシミュレーションを行うことができ、複数のプロセッサやハードウェアから構成されるシステムの開発効率を高め、開発スピードを向上させることができるシミュレーション装置及びシミュレーション方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のシミュレーション装置は、複数のシステムのそれぞれのシミュレーションを行う複数のシミュレーションモデル手段と、前記シミュレーションモデル手段を切り替えるための情報である切替情報に基づいて、実行中の前記シミュレーションモデル手段の実行を停止させるとともに他の前記シミュレーションモデル手段の実行を開始するように切り替えるモデル切替手段と、を具備する構成を採る。
【０００７】
本発明のシミュレーション方法は、複数のシミュレーションモデルのそれぞれのシミュレーションを行うステップと、前記シミュレーションモデルの実行を切り替えるための情報である切替情報に基づいて、実行中の前記シミュレーションモデルを停止させるとともに他の前記シミュレーションモデルの実行を開始するように切り替えるステップと、を具備するようにした。
【発明の効果】
【０００８】
本発明によれば、同期または非同期に関わらずシミュレーションが可能であるとともに、高速なシミュレーションを行うことができ、複数のプロセッサやハードウェアから構成されるシステムの開発効率を高め、開発スピードを向上させることができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１０】
（実施の形態１）
図１は、本発明の実施の形態１に係るシミュレーション装置１００の構成を示すブロック図である。
【００１１】
図１に示すように、シミュレーション装置１００は、複数のプロセッサやハードウェアを模擬したシミュレーションモデル部（以下、「シミュレーションモデル」と記載する）１０１〜１０３と、出力情報記憶部１０４と、モデル切替え部１０５とから構成されている。
【００１２】
それぞれのシミュレーションモデル１０１〜１０３は、処理実行制御部１０６と、時間計測部１０７と、入力情報記憶部１０８と、内部状態記憶部１０９とから構成されている。
【００１３】
出力情報記憶部１０４は、処理実行制御部１０６から出力された出力情報を記憶する。また、入力情報記憶部１０８より出力情報取得要望がある場合は、該当する出力情報を入力情報記憶部１０８に出力する。
【００１４】
モデル切替え部１０５は、処理実行制御部１０６から実行停止フラグまたは処理完了フラグが入力された場合、当該シミュレーションモデルの処理実行制御部１０６に対し、実行停止命令を出力する。また、このとき、各シミュレーションモデルのシミュレーション上の時刻を比較し、もっとも経過時間が少ないシミュレーションモデルを選択し、そのモデルの処理実行制御部１０６に対し、実行開始命令を出力する。
【００１５】
処理実行制御部１０６は、モデル切替え部１０５から処理実行開始命令が入力されると、入力情報記憶部１０８に対し、入力情報取得命令を出力すると共に、内部状態記憶部１０９からモデルの内部状態を読み出して、内部状態を設定する。以降、モデル切替え部１０５から、処理実行停止命令を受信するまでは、１クロックごとに当該シミュレーションモデルの処理を実行し、実行完了フラグを時間計測部１０７に出力する。入力情報記憶部１０８から、入力情報取得命令に対応する入力値がある場合は、それを用いて処理を実行する。当該シミュレーションモデルの処理がすべて終了した場合は、処理完了フラグをモデル切替え部１０５に出力する。
【００１６】
また、処理実行制御部１０６は、当該シミュレーションモデルの処理において、他のシミュレーションモデルに対し出力を行う場合は、時間計測部１０７より入力されたシミュレーション上の時刻と出力値およびそのアドレスを出力情報記憶部１０４に出力する。
【００１７】
また、処理実行制御部１０６は、当該シミュレーションモデルの処理において、他のシミュレーションモデルから出力される情報である出力情報の入力が必要な場合は、時間計測部１０７より入力されたシミュレーション上の時刻とアドレスを入力情報記憶部１０８に出力するとともに、内部状態記憶部１０９に当該シミュレーションモデルの内部状態を記憶させ、処理停止フラグ（切替情報）をモデル切替え部１０５に出力し、次の命令の実行に備える。
【００１８】
時間計測部１０７は、処理実行制御部１０６から実行完了フラグが入力するたびに、当該シミュレーションモデルのシミュレーション上の時刻を１クロックインクリメントする。当該シミュレーションモデルの現時点の時刻は、都度処理実行制御部１０６およびモデル切替え部１０５に出力される。
【００１９】
入力情報記憶部１０８は、当該シミュレーションモデルへの入力情報として、処理実行制御部１０６から入力されたシミュレーション上の時刻とアドレスを記憶する。また、処理実行制御部１０６より入力情報取得命令が入力されたときに、当該シミュレーションモデルの入力情報が、出力情報記憶部１０４に記憶されている場合は、出力情報記憶部１０４から該当する入力値を取得し、それを処理実行制御部１０６に出力する。
【００２０】
次に、図２に示すフロー図を用いて、シミュレーション装置１００の動作を詳細に説明する。
【００２１】
まず、ＳＴ２０１で、モデル切替え部１０５は、任意の１つのシミュレーションモデル１０１を選択し、選択したシミュレーションモデル１０１に対し、実行開始命令を出力する。この実行開始命令を受けて、シミュレーションモデル１０１の処理実行制御部１０６は、入力情報記憶部１０８に対し入力情報取得命令を出力する。また、内部状態記憶部１０９から内部状態を読み出し、内部状態を設定する。
【００２２】
ＳＴ２０２において、入力情報記憶部１０８は、入力情報があるか確認し、ある場合はＳＴ２０３で、他のシミュレーションモデル１０２、１０３の出力したアドレス情報に基づき、出力情報記憶部１０４に格納された出力情報の読み出しを要望し、出力情報記憶部１０４から該当する値を得て、それを処理実行制御部１０６に出力する。
【００２３】
次に、処理実行制御部１０６は、ＳＴ２０４で１クロック分の処理を行う。ＳＴ２０３で入力値を得た場合は、その入力値を用いて処理を行う。また、この処理で出力がある場合（ＳＴ２０５）は、ＳＴ２０６で時間計測部１０７より得た現在の時刻および出力情報のアドレスと出力値を出力情報記憶部１０４に出力する。処理が完了したら、時間計測部１０７に実行完了フラグを出力する。
【００２４】
次に、時間計測部１０７は、ＳＴ２０７で処理実行制御部１０６から実行完了フラグを得たら、現在時刻を１クロック分インクリメントし、処理実行制御部１０６およびモデル切替え部１０５に出力する。処理実行制御部１０６は、ＳＴ２０８でシミュレーションモデル１０１の処理が終了した場合は、処理完了フラグをモデル切替え部１０５に出力し、ＳＴ２１２に進む。また、終了していない場合はＳＴ２０９に進む。
【００２５】
処理実行制御部１０６は、ＳＴ２０９において、次回の処理で入力があるかどうか確認し、入力がない場合はＳＴ２０４に戻り、次の命令を実行する。一方、入力がある場合は、ＳＴ２１０で時間計測部１０７より得た現在の時刻および入力情報のアドレスと出力値を、入力情報記憶部１０８に記憶する。また、実行停止フラグをモデル切替え部１０５に出力する。モデル切替え部１０５は、実行停止フラグを受信したら、実行中のシミュレーションモデル１０１に対し処理実行停止命令を出力する。次に、ＳＴ２１１において、モデル切替え部１０５は、各シミュレーションモデル１０２、１０３の時間計測部１０７から得た各モデルのシミュレーション上の時刻を比較し、最も経過時間が少ないシミュレーションモデル１０２を選択し、そのシミュレーションモデル１０２に対し処理実行開始命令を出力し、シミュレーションモデルを切り替えてＳＴ２０２に戻る。
【００２６】
ＳＴ２１１で、切り替えられたシミュレーションモデル１０１の処理実行制御部１０６は、処理実行停止命令が入力されたら、シミュレーションモデル１０１内の状態を内部状態記憶部１０９に記憶する。なお、場合によっては、同一のシミュレーションモデル１０１が連続して選択される場合もあるので、その場合は、そのシミュレーションモデル１０１内の状態を記憶する必要はない。したがって、ＳＴ２１１で、処理実行制御部１０６が、処理実行停止命令と処理実行開始命令とを同時に受け取った場合は、そのシミュレーションモデル１０１内の状態の記憶は行わず、ＳＴ２０２に戻る。
【００２７】
又、ＳＴ２１２で処理完了フラグがモデル切替え部１０５に入力されると、モデル切替え部１０５では、すべてのシミュレーションモデル１０１〜１０３の処理が終了したか確認する。終了していないシミュレーションモデルがある場合は、ＳＴ２１１に進む。また、すべてのシミュレーションモデル１０１〜１０３の処理が終了した場合は、シミュレーションを終了する。
【００２８】
次に、図３を用いて、図４に示すような３つのプロセッサ３０１〜３０３が１つのメモリ４０１を共有する場合の処理を例にとり、シミュレーション装置１００による実行順序を説明する。なお、以下の説明では、各プロセッサとも、１クロックで１命令が実行されるとする。
【００２９】
まず、はじめに、シミュレーションモデルとしてプロセッサ３０１が選択されると、命令１から命令１２までは外部からの入力がないため、プロセッサ３０１上で連続して処理が実行される。途中、命令２および命令６で、それぞれ外部への出力があるため、その時刻とアドレスと出力値とを出力情報記憶部１０４に記憶させる。なお、この図において、各プロセッサ３０１〜３０３から外側の矢印は出力、内側への矢印は入力を示す。また、Ｖｅｒ１［２］とは、時刻２のアドレスＶｅｒ１の値を出力していることを示す。
【００３０】
次に、プロセッサ３０１の時刻１２の時点で入力があったため、プロセッサ３０１は命令１２の実行直前で停止し、その入力情報と内部状態を記憶し、他のプロセッサ３０２、３０３に処理が移行する。プロセッサ３０２およびプロセッサ３０３ともまだ実行されていないため、どちらが選択されてもかまわない。ここでは、プロセッサ３０２が選択される。プロセッサ３０２では、命令１から命令７まで実行され、途中、命令３と命令５で出力情報を記憶する。プロセッサ３０２の時刻７の入力情報と内部情報とを記憶したあと、プロセッサ３０３に移行し、命令１から命令４までが実行される。
【００３１】
ここで、各プロセッサ３０１〜３０３の出力情報としては、時刻、アドレス、出力値であり、同一アドレスであっても時刻が異なる情報はそれぞれ記憶する必要がある。これは、各プロセッサ３０１〜３０３の処理がシミュレーション時間上で非同期であり、たとえ同じアドレスに上書きされることが自明であっても、上書きされる前の状態が必要になる可能性があるためである。
【００３２】
プロセッサ３０３で命令４まで実行されたあと、モデル切替え部１０５は、各プロセッサ３０１〜３０３の経過時間を比較し、最も経過時間が少ないプロセッサ３０３を選択する。したがって、プロセッサ３０３は継続して実行される。プロセッサ３０３では、命令４で得ようとした入力情報を、出力情報記憶部１０４から取得する。図において、Ｖｅｒ［４］、即ち、時刻４の時点のＶｅｒ４の情報が必要であるが、これはプロセッサ３０２の命令３で出力された時刻３の時点のＶｅｒ４の出力情報が時刻４でも保たれているため、これがプロセッサ３０３の命令４の時点の入力情報に該当する。この入力情報を用いてプロセッサ３０３の命令４の処理を行い、引き続き命令５から命令１２までの処理を行う。
【００３３】
同様にして、プロセッサ３０２に処理が移行し、命令７における入力情報として、プロセッサ３０１の命令６で出力されたＶｅｒ２の値を取得し命令７の処理を行う。続けて命令８から命令１６までの処理を行う。命令１６でプロセッサ３０についてはすべての処理が完了するため、モデル切替え部１０５でプロセッサ３０１に処理を移す。プロセッサ３０１で命令１２から命令１６までの処理を行い、最後にプロセッサ３０３で命令１２から命令１６の処理を行ってシミュレーションを終了する。
【００３４】
図３の例で示すように、本発明は、入力がない状態での出力モデルの実行結果は、他のシミュレーションモデルと独立に実行できることを利用して、シミュレーションモデルの切り替えを入力があったときのみとすることで、切り替えオーバヘッドを削減することができる点に特徴がある。
【００３５】
また、各シミュレーションモデルからの時刻の異なる出力情報をすべて記憶することで、複数のプロセッサおよびハードウェアが非同期に動作するシミュレーションモデルに対応している。
【００３６】
なお、過去の出力情報が必要なくなった場合は、それを削除することで出力情報記憶部１０４の記憶すべき情報量を削減することができる。過去の出力情報が必要なくなる場合とは、すべてのモデルの経過時刻よりも古い、同一アドレスの情報が２つ以上ある場合であり、このときは最新のもののみを残して後のものは削除することができる。
【００３７】
このように、本実施の形態１によれば、他のシミュレーションモデルからの出力情報の入力が必要になった場合には実行を停止するとともに、実行時間の最も短いシミュレーションモデルに切り替えるので、複数のプロセッサとハードウェアとがパラレルに動作し、又、非同期に通信する場合であっても、高速にシミュレーションを実行することができる。また、本実施の形態１によれば、複数のプロセッサやハードウェアから構成されるシステムの開発効率を高め、開発スピードを向上させることができる。
【００３８】
（実施の形態２）
図５は、本発明の実施の形態２に係るシミュレーション装置５００の構成を示すブロック図である。
【００３９】
本実施の形態２に係るシミュレーション装置５００は、図１に示す実施の形態１に係るシミュレーション装置１００において、図５に示すように、処理停止時刻設定部５０１を追加し、モデル切替え部１０５の代わりにモデル切替え部５０２を有する。なお、図５においては、図１と同一構成である部分には同一の符号を付してその説明は省略する。
【００４０】
処理停止時刻設定部５０１は、シミュレーション停止時刻を指定する。指定方法としては、シミュレーション上のある絶対時刻や、現時点のシミュレーション時点からの相対的な時刻などがある。
【００４１】
モデル切替え部５０２は、処理停止時刻設定部５０１から入力されたシミュレーション停止時刻の情報（切替情報）と時間計測部１０７から入力されるシミュレーションモデルの現時点の時刻とを比較し、それが一致した時点で、実行中のシミュレーションモデルの処理実行制御部１０６に対し実行停止命令を出力し、他のシミュレーションモデルに制御を移す。また、モデル切替え部５０２は、各シミュレーションモデルのシミュレーション上の時刻を比較し、もっとも経過時間が少ないシミュレーションモデルを選択し、そのモデルの処理実行制御部１０６に対し、実行開始命令を出力する。又、他のシミュレーションモデルでも同様にシミュレーション停止時刻まで実行を行い、実行を停止させる。
【００４２】
このような構成とすることで、シミュレーション装置上の全モデルにおいて、指定した任意のシミュレーション上の時刻までの実行が行われ、この時刻でのすべてのモデル状態が観測できる。また、この時点で出力情報記憶部１０４に記憶されている情報は、各アドレスごとに最新のものを除いてすべて削除することができるため、出力情報の記憶量を削減できる。
【００４３】
このように、本実施の形態２によれば、あらかじめ設定したシミュレーション停止時刻と時間計測部１０７にて計測した時刻とが一致した場合には実行を停止するとともに、実行時間の最も短いシミュレーションモデルに切り替えるので、複数のプロセッサとハードウェアとがパラレルに動作し、又、非同期に通信する場合であっても、高速にシミュレーションを実行することができる。また、本実施の形態２によれば、複数のプロセッサやハードウェアから構成されるシステムの開発効率を高め、開発スピードを向上させることができる。また、本実施の形態２によれば、高速シミュレーションを行いながら、任意のシミュレーション時刻での全プロセッサおよび周辺回路の情報を得ることができる。また、本実施の形態２によれば、時刻を適切に設定することで、出力情報記憶部１０４の記憶量が限定された環境であっても、高速にシミュレーションを実行することができる。
【００４４】
なお、本実施の形態２と実施の形態１とを適宜組み合わせるように構成しても良い。
【００４５】
（実施の形態３）
図６は、本発明の実施の形態３に係るシミュレーション装置６００の構成を示すブロック図である。
【００４６】
本実施の形態３に係るシミュレーション装置６００は、図１に示す実施の形態１に係るシミュレーション装置１００において、図６に示すように、出力情報記憶量監視部６０２を追加し、出力情報記憶部１０４の代わりに出力情報記憶部６０１を有するとともにモデル切替え部１０５の代わりにモデル切替え部６０３を有する。なお、図６においては、図１と同一構成である部分には同一の符号を付してその説明は省略する。
【００４７】
出力情報記憶部６０１は、処理実行制御部１０６からの出力情報を記憶すると共に、現在の出力情報記憶部６０１の記憶情報量の情報（切替情報）を出力情報記憶量監視部６０２に出力する。出力情報記憶量監視部６０２は、予め設定された閾値と各時点での記憶情報量とを比較し、記憶情報量が閾値を超えている場合は、モデル切替え部６０３に記憶情報量超過フラグを出力する。
【００４８】
モデル切替え部６０３は、出力情報記憶量監視部６０２から記憶情報量超過フラグが入力した場合は、実行中の当該シミュレーションモデルの処理実行制御部１０６に対し実行停止命令を出力し、他のシミュレーションモデルに制御を移す。この時点で出力情報記憶部６０１に記憶されている情報は、各アドレスごとに最新のものを除いてすべて削除することができ、出力情報の記憶量を削減できる。また、モデル切替え部６０３は、各シミュレーションモデルのシミュレーション上の時刻を比較し、もっとも経過時間が少ないシミュレーションモデルを選択し、そのモデルの処理実行制御部１０６に対し、実行開始命令を出力する。
【００４９】
又、記憶情報量と比較する最適な閾値は、シミュレーションの実行形態によって変わるが、シミュレーションモデル数が多くなるほど低い閾値にすることで、記憶情報量が実際に記憶できる限界を超えないような実行ができる。特に、実施の形態２に示すような処理停止時刻の指定と組み合わせることにより、記憶情報量を低く抑えることができる。
【００５０】
このように、本実施の形態３によれば、記憶情報量が閾値以上である場合には実行を停止するとともに、実行時間の最も短いシミュレーションモデルに切り替えるので、複数のプロセッサとハードウェアとがパラレルに動作し、又、非同期に通信する場合であっても、高速にシミュレーションを実行することができる。また、本実施の形態３によれば、複数のプロセッサやハードウェアから構成されるシステムの開発効率を高め、開発スピードを向上させることができる。また、本実施の形態３によれば、記憶情報量の閾値を適切に設定することで、出力情報記憶部６０１の記憶情報量が制限されても高速にシミュレーションを実行することができる。
【００５１】
なお、本実施の形態３と、実施の形態１または実施の形態２とを組み合わせるように構成しても良い。
【００５２】
（実施の形態４）
図７は、本発明の実施の形態４に係るシミュレーション装置７００の構成を示すブロック図である。
【００５３】
本実施の形態４に係るシミュレーション装置７００は、図１に示す実施の形態１に係るシミュレーション装置１００において、図７に示すように、処理停止位置設定部７０１を追加し、モデル切替え部１０５の代わりにモデル切替え部７０２を有するとともに処理実行制御部１０６の代わりに処理実行制御部７０３を有する。なお、図７においては、図１と同一構成である部分には同一の符号を付してその説明は省略する。
【００５４】
処理停止位置設定部７０１は、シミュレーションモデル上における停止位置を指定する。例えば、停止位置は、プロセッサで実行される、任意の命令アドレス等である。
【００５５】
モデル切替え部７０２は、処理停止位置設定部７０１から入力した停止位置の情報（切替情報）を、該当するシミュレーションモデルの処理実行制御部７０３に設定する。停止位置が指定されたシミュレーションモデルの処理実行制御部７０３は、処理が停止位置に達した時点で実行停止フラグをモデル切替え部７０２に出力する。モデル切替え部７０２は、実行停止フラグが入力されたら、当該シミュレーションモデルに処理実行停止命令を出力し、他のシミュレーションモデルに制御を移す。また、このとき、モデル切替え部７０２は、各シミュレーションモデルのシミュレーション上の時刻を比較し、もっとも経過時間が少ないシミュレーションモデルを選択し、そのモデルの処理実行制御部７０３に対し、実行開始命令を出力する。
【００５６】
このように、本実施の形態４によれば、シミュレーションモデルにおける実行が、あらかじめ設定した実行停止位置になった場合には実行を停止するとともに、実行時間の最も短いシミュレーションモデルに切り替えるので、複数のプロセッサとハードウェアとがパラレルに動作し、又、非同期に通信する場合であっても、高速にシミュレーションを実行することができる。また、本実施の形態４によれば、複数のプロセッサやハードウェアから構成されるシステムの開発効率を高め、開発スピードを向上させることができる。また、本実施の形態４によれば、高速シミュレーションを行いながら、モデル上の任意の位置に到達した時刻の全プロセッサおよび周辺回路の情報を得ることができる。具体的な例として、ブレークポイントによるシミュレーション停止設定に対応しながら、かつ高速シミュレーションの効果が得られる。
【００５７】
なお、本実施の形態４と実施の形態１〜３とを適宜組み合わせるように構成しても良い。
【００５８】
（実施の形態５）
図８は、本発明の実施の形態５に係るシミュレーション装置８００の構成を示すブロック図である。
【００５９】
本実施の形態５に係るシミュレーション装置８００は、図１に示す実施の形態１に係るシミュレーション装置１００において、図８に示すように、実行形式指示部８０１を追加し、モデル切替え部１０５の代わりにモデル切替え部８０２を有する。なお、図８においては、図１と同一構成である部分には同一の符号を付してその説明は省略する。
【００６０】
実行形式指示部８０１は、実施の形態１のようにできるだけシミュレーションモデルの切り替えを抑制した高速なシミュレーション実行形式及び１処理単位ごとにシミュレーションモデルの切り替えを行うシミュレーション実行形式の内から、任意の実行形式の選択を行い、選択した実行形式の情報（切替情報）をモデル切替え部８０２に出力する。
【００６１】
モデル切替え部８０２は、実行形式指示部８０１から入力された実行形式の情報に従い制御する。即ち、モデル切替え部８０２は、高速なシミュレーションの実行形式が選択された場合は、実施の形態１と同様の制御を行い、１処理単位ごとにシミュレーションのモデルの切り替えを行うシミュレーション実行形式が選択された場合は、１処理を行うたびにシミュレーションモデルを切り替えて、シミュレーションを実行する。また、モデル切替え部８０２は、他のシミュレーションモデルに切り替える場合には、各々の他のシミュレーションモデルのシミュレーション上の時刻を比較し、もっとも経過時間が少ないシミュレーションモデルを選択し、そのモデルの処理実行制御部１０６に対し、実行開始命令を出力する。
【００６２】
このように、本実施の形態５によれば、要求される実行速度が早い実行形式のシミュレーションモデルは、切り替えの回数が少なくなるようにするので、複数のプロセッサとハードウェアとがパラレルに動作し、又、非同期に通信する場合であっても、高速にシミュレーションを実行することができる。また、本実施の形態５によれば、複数のプロセッサやハードウェアから構成されるシステムの開発効率を高め、開発スピードを向上させることができる。また、本実施の形態５によれば、高速シミュレーションと１処理時間単位ごとの実行を組み合わせた検証を行うことができる。具体的な例としては、ステップ実行によるシミュレーション実行と、高速シミュレーションを組み合わせて使用することができる。
【００６３】
なお、本実施の形態５において、高速なシミュレーション実行形式及び１処理単位ごとにシミュレーションモデルの切り替えを行うシミュレーション実行形式の２つの実行形式の中から選択したが、これに限らず、要求される実行速度が各々異なる３つ以上の実行形式の中から任意に実行形式を選択するようにしても良い。その際、モデル切替え部８０２は、要求される実行速度が速い実行形式ほど所定時間における切り替え回数が少なくなるようにする。また、本実施の形態５と実施の形態１〜４とを適宜組み合わせるように構成しても良い。
【００６４】
上記実施の形態１〜実施の形態５において、実行時間がもっとも少ない他のシミュレーションモデルの実行を開始するように切り替えることにしたが、これに限らず、任意のソミュレーションモデルの実行を開始するように切り替えても良い。また、上記実施の形態１〜実施の形態５において、シミュレーションモデルの数は任意にすることができる。
【産業上の利用可能性】
【００６５】
本発明にかかるシミュレーション装置及びシミュレーション方法は、処理時間を高速化したシミュレーション装置に好適であり、特に、複数のプロセッサとハードウェアがパラレルに動作し、また、非同期に通信する場合のシミュレーションに好適である。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施の形態１に係るシミュレーション装置の構成を示すブロック図
【図２】本発明の実施の形態１に係るシミュレーション装置の動作を示すフロー図
【図３】本発明の実施の形態１に係るシミュレーション装置の実行順序を説明する図
【図４】本発明の実施の形態１に係るシミュレーション装置の実行例のモデル構成を示す図
【図５】本発明の実施の形態２に係るシミュレーション装置の構成を示すブロック図
【図６】本発明の実施の形態３に係るシミュレーション装置の構成を示すブロック図
【図７】本発明の実施の形態４に係るシミュレーション装置の構成を示すブロック図
【図８】本発明の実施の形態５に係るシミュレーション装置の構成を示すブロック図
【図９】従来のシミュレーション装置の動作を説明する図
【符号の説明】
【００６７】
１００  シミュレーション装置
１０１、１０２、１０３  シミュレーションモデル
１０４  出力情報記憶部
１０５  モデル切替え部
１０６  処理実行制御部
１０７  時間計測部
１０８  入力情報記憶部
１０９  内部情報記憶部
【図１】
2006215781.tif 000003
【図２】
2006215781.tif 000004
【図３】
2006215781.tif 000005
【図４】
2006215781.tif 000006
【図５】
2006215781.tif 000007
【図６】
2006215781.tif 000008
【図７】
2006215781.tif 000009
【図８】
2006215781.tif 000010
【図９】
2006215781.tif 000011