(57)【要約】【課題】精度を高めた性能評価を行うことが可能な性能評価装置を提供する。【解決手段】上記の性能評価装置は、ハードウェアに対応するシミュレーションモデルに含まれる複数の機能ブロック間で入出力される制御信号の入力のタイミングを出力する制御タイミングモデル部と、制御信号の入力のタイミングに応じて、複数の機能ブロック間における制御信号の転送期間を算出する制御信号転送期間算出部と、制御信号に対応するデータ信号であって、複数の機能ブロック間で入出力されるデータ信号の入力のタイミングを出力するデータタイミングモデル部と、データ信号の入力のタイミングに応じて、複数の機能ブロック間におけるデータ信号の転送期間を算出するデータ信号転送期間算出部と、を有する。【選択図】図３
2010146292.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアに対応するシミュレーションモデルに含まれる複数の機能ブロック間で入出力される制御信号の入力のタイミングを出力する制御タイミングモデル部と、
前記制御信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記制御信号の転送期間を算出する制御信号転送期間算出部と、
前記制御信号に対応するデータ信号であって、前記複数の機能ブロック間で入出力されるデータ信号の入力のタイミングを出力するデータタイミングモデル部と、
前記データ信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記データ信号の転送期間を算出するデータ信号転送期間算出部と
を備えることを特徴とする性能評価装置。
【請求項２】
前記制御信号が入力された前記機能ブロックにおける前記制御信号の処理時間を示す時間情報を算出する制御信号処理時間算出部と、を有することを特徴とする請求項１に記載の性能評価装置。
【請求項３】
前記データ信号が入力された前記機能ブロックにおける前記データ信号の処理時間を示す時間情報を算出するデータ信号処理時間算出部と、を有することを特徴とする請求項１又は２に記載の性能評価装置。
【請求項４】
前記データタイミングモデル部は、前記複数の機能ブロックモデル間において、前記データイベントとしてデータサイズ情報を示すイベントであるデータサイズ情報イベントの入出力を行い、
前記データ信号転送期間算出部は、前記データサイズ情報に１データ当たりの送信時間を掛けることにより、前記データ信号の送信時間を示す時間情報を算出し、
前記データ信号処理時間算出部は、前記データサイズ情報に１データ当たりの処理時間を掛けることにより、前記データ信号の処理時間を示す時間情報を算出することを特徴とする請求項３に記載の性能評価装置。
【請求項５】
前記シミュレーションモデルは、前記複数の機能ブロックのうち、マスターとして動作する機能ブロックと、前記マスターとバスを介して接続され、スレーブとして動作する機能ブロックとを含むハードウェアをモデル化したものであり、
前記制御タイミングモデル部は、前記マスターとして動作する機能ブロックをモデル化したマスターモデル部と、前記スレーブとして動作する機能ブロックをモデル化したスレーブモデル部との間で、前記バスをモデル化したバスモデル部を介して前記制御イベントの入出力を行い、
前記データタイミングモデル部は、前記マスターモデル部と前記スレーブモデル部との間で前記バスモデル部を介して前記データイベントの入出力を行うモデルであることを特徴とする請求項１乃至４のいずれか一項に記載の性能評価装置。
【請求項６】
前記シミュレーションモデルは、前記バスに接続された前記マスターを複数有するハードウェアをモデル化したものであり、
前記バスモデル部は、前記複数のマスターのそれぞれと前記スレーブとの間で入出力される前記制御信号の前記バスにおける競合を調停する調停回路をモデル化した調停部を有し、
前記調停部は、前記バスモデル部が受信した前記制御イベントに対し、当該制御イベントよりも優先度の高い制御イベントの入出力が終了してから、送信先への送信を許可することを特徴とする請求項５に記載の性能評価装置。
【請求項７】
前記制御信号転送期間算出部は、前記制御信号の待ち時間を示す時間情報として、当該制御信号の送信待ちの間に入出力された制御信号及びデータ信号の時間情報の合計を算出することを特徴とする請求項６に記載の性能評価装置。
【請求項８】
前記制御タイミングモデル部及び前記データタイミングモデル部が並列に実行されることを特徴とする請求項１乃至７のいずれか一項に記載の性能評価装置。
【請求項９】
コンピュータが実行する、シミュレーションプログラムであって、
前記コンピュータを、ハードウェアに対応するシミュレーションモデルに含まれる複数の機能ブロック間で入出力される制御信号の入力のタイミングを出力する制御タイミングモデル部として機能させ、
前記制御信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記制御信号の転送期間を算出する制御信号転送期間算出部として機能させ、
前記制御信号に対応するデータ信号であって、前記複数の機能ブロック間で入出力されるデータ信号の入力のタイミングを出力するデータタイミングモデル部として機能させ、
前記データ信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記データ信号の転送期間を算出するデータ信号転送期間算出部として機能させる
ことを特徴とするシミュレーションプログラム。
【請求項１０】
ハードウェアに対応するシミュレーションモデルに含まれる複数の機能ブロック間で入出力される制御信号の入力のタイミングを出力し、
前記制御信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記制御信号の転送期間を算出し、
前記制御信号に対応するデータ信号であって、前記複数の機能ブロック間で入出力されるデータ信号の入力のタイミングを出力し、
前記データ信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記データ信号の転送期間を算出する
ことを特徴とする性能評価方法。
【発明の詳細な説明】
【技術分野】
【０００１】
論理回路を有するハードウェアに対応するシミュレーションモデルを用いて、ハードウェアの性能評価を行う性能評価装置、性能評価方法及びシミュレーションプログラムに関する。
【背景技術】
【０００２】
論理回路等を有するハードウェアの設計には非常に時間がかかるため、先行してそれに代わる擬似モデルを作成し、シミュレーションを行い、ハードウェアの評価を行うことにより、先行してソフトウェアの開発、仕様の不具合回避、性能確認を行うことが行われる。
【０００３】
シミュレーションの具体的な方法としては、ハードウェアに含まれるプロセッサやバスなどの機能ブロック毎に動作モデルを作成し、それらを統合して、ハードウェア全体の動作を模擬するシミュレーションモデルを作成する方法が挙げられる。ここで、動作モデルとしては、クロックモデル、トランザクションモデル、機能モデルなどが挙げられる。これらの動作モデルは、それぞれの抽象度が以下のように互いに異なっている。
【０００４】
クロックモデルは、クロック毎の信号レベルでの動作を記述した動作モデルであり、クロックレベルでハードウェアの動作と一致する。そのため、クロックモデルは、主に詳細な動作検証を行うために用いられる。トランザクションモデルは、複数の信号により表される１つの処理（トランザクション）毎に動作をまとめて記述した動作モデルであり、ハードウェア全体としての動作検証に用いられる。機能モデルは、入力データに対する動作を記述した動作モデルである。
【０００５】
ここで、ハードウェアの性能評価には、多くの機能を高い精度で、かつ、高速に検証されることが求められている。しかしながら、ハードウェアの性能評価では、精度を高めようとすると速度が遅くなるという、精度と速度がトレードオフの関係となっている。例えば、全ての機能ブロックをクロックモデルでモデル化して精度を高めようとすると、クロック毎に演算が行われることとなり、性能評価に膨大な時間がかかってしまう。また、全ての機能ブロックをモデル化すると、モデリング量が膨大となるため、モデル生成の早期実現を図ることが難しくなる。そこで、ハードウェア全体の一部の機能のみを詳細に評価検証したいときには、抽象度の異なるモデルを組み合わせてシミュレーションを行う方法が考えられる。このようなシミュレーションを行うときの一つの方法として、例えば、トランザクションモデルと機能モデルとを分けて、それぞれ別々に評価を実施する技術が提案されている。
【０００６】
【特許文献１】特開２００４−２１９０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
シミュレートの対象となるハードウェアでは、制御信号及びデータ信号が入出力されるが、データ信号及び制御信号のそれぞれの入出力のタイミングが考慮されない場合に、シミュレーションモデルを用いたハードウェアの性能評価の精度が低下する。
【課題を解決するための手段】
【０００８】
開示の装置は、ハードウェアに対応するシミュレーションモデルに含まれる複数の機能ブロック間で入出力される制御信号の入力のタイミングを出力する制御タイミングモデル部と、前記制御信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記制御信号の転送期間を算出する制御信号転送期間算出部と、前記制御信号に対応するデータ信号であって、前記複数の機能ブロック間で入出力されるデータ信号の入力のタイミングを出力するデータタイミングモデル部と、前記データ信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記データ信号の転送期間を算出するデータ信号転送期間算出部と、を有する。
【発明の効果】
【０００９】
開示の装置によれば、データ信号及び制御信号のそれぞれの入出力のタイミングを考慮した性能評価を行うことが可能となるため、性能評価の精度が向上する。
【発明を実施するための最良の形態】
【００１０】
以下では、実施形態の一例について図面を参照しつつ説明する。
【００１１】
［第１実施形態］
まず、第１実施形態に係るシミュレーションモデルについて図１〜図３を参照して説明する。
【００１２】
図１は、第１実施形態に係るシミュレーションモデルの対象となるハードウェアの構成の一例を示すブロック図である。
【００１３】
第１実施形態に係るシミュレーションモデルの対象となるハードウェア１０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１、バス１１ａ、調停回路１１ｂ、メモリ１３ａ、メモリコントローラ１３ｂを有する。ＣＰＵ１、調停回路１１ｂ、メモリ１３ａ、メモリコントローラ１３ｂは、バス１１ａを介して互いに接続されている。
【００１４】
ＣＰＵ１は、バス１１ａを介してメモリコントローラ１３ｂと制御信号及びデータ信号の入出力を行う。メモリコントローラ１３ｂは、バス１１ａを介してＣＰＵ１と制御信号及びデータ信号の入出力を行うとともに、メモリ１３ａへのデータの書き込み又はメモリ１３ａからのデータの読み出しを行う。調停回路１１ｂは、バス１１ａにおける制御信号の競合を調整するための回路である。ＣＰＵ１又はメモリコントローラ１３ｂは、調停回路１１ｂから送信許可を得ることにより、バス１１ａを介して、制御信号を送信先に送信する。
【００１５】
まず、シミュレーションモデルの対象となるハードウェア１０における実際の処理、具体的には、メモリ１３ａへのデータの書き込み処理、及び、メモリ１３ａからのデータの読み出し処理について簡単に説明する。
【００１６】
最初に、ＣＰＵ１は、データ書き込み処理又はデータ読み出し処理のいずれの場合であっても、バス１１ａを介してメモリコントローラ１３ｂと制御信号（要求信号及び応答信号）の入出力を行う。
【００１７】
具体的には、ＣＰＵ１は、バス１１ａを介して、メモリコントローラ１３ｂに対し、メモリ１３ａへデータを書き込むための要求信号、又は、メモリ１３ａからデータを読み込むための要求信号を送信する。要求信号を受信したメモリコントローラ１３ｂは、バス１１ａを介して、ＣＰＵ１に対し応答信号を送信する。
【００１８】
より詳細には、ＣＰＵ１は、メモリコントローラ１３ｂに要求信号を送信する前に、送信権限要求を示す信号を調停回路１１ｂに送信する。ＣＰＵ１は、調停回路１１ｂより送信権限許可を示す信号を受信すると、バス１１ａを介して、要求信号をメモリコントローラ１３ｂに送信する。ＣＰＵ１よりデータ書き込み要求信号又はデータ読み出し要求信号を受信したメモリコントローラ１３ｂは、応答信号を生成した後、送信権限要求を示す信号を調停回路１１ｂに送信する。メモリコントローラ１３ｂは、調停回路１１ｂより送信権限許可を示す信号を受信すると、バス１１ａを介して、生成した応答信号をＣＰＵ１に送信する。
【００１９】
ＣＰＵ１は、メモリコントローラ１３ｂより応答信号を受信すると、バス１１ａを介してメモリコントローラ１３ｂとデータ信号の入出力を行う。
【００２０】
具体的には、ＣＰＵ１は、メモリ１３ａへデータを書き込む場合には、データを含むデータ信号をメモリコントローラ１３ｂに送信する。メモリコントローラ１３ｂは、データを含むデータ信号を受信すると、データをメモリ１３ａへ書き込む。メモリコントローラ１３ｂは、メモリ１３ａへのデータの書き込みが終了すると、処理終了を示す処理終了信号をＣＰＵ１へ送信し、メモリ１３ａへのデータ書き込み処理が終了する。
【００２１】
一方、ＣＰＵ１は、メモリ１３ａよりデータを読み込む場合には、データアドレス及びデータサイズを含むデータ信号をメモリコントローラ１３ｂへ送信する。メモリコントローラ１３ｂは、データアドレス及びデータサイズを含むデータ信号を受信すると、当該データアドレス及び当該データサイズを基に、データをメモリ１３ａから読み出した後、読み出したデータをＣＰＵ１に送信する。メモリコントローラ１３ｂは、メモリ１３ａから読み出したデータをＣＰＵ１に送信し終えると、処理終了信号をＣＰＵ１に送信し、メモリ１３ａからのデータ読み出し処理が終了する。
【００２２】
図２は、第１実施形態に係るシミュレーションモデルのシミュレート方法を示す概略図である。
【００２３】
図２に示すように、第１実施形態に係るシミュレーションモデルは、少なくとも、制御タイミングモデル、データタイミングモデル、機能モデルを有し、制御タイミングモデル、データタイミングモデルはトランザクションモデリングを行っている。トランザクションモデルはクロックモデルに比べ、モデリング工数が少ないので、モデルの早期構築に繋がる。なお機能モデルはオプションであり、機能モデルが無くとも、制御タイミングモデル、データタイミングモデルの２つのシミュレーション結果を得て、性能評価をすることも可能である。ここで、制御タイミングモデルは、ＣＰＵ１やメモリコントローラ１３ｂなどの機能ブロックにおける制御信号の入出力のタイミングをモデル化したものである。データタイミングモデルは、機能ブロックにおけるデータ信号の入出力のタイミングをモデル化したものである。これら制御タイミングモデル及びデータタイミングモデルは、例えば、機能ブロック間で入出力される制御信号及びデータ信号の入出力にかかる時間を評価するために用いられる。
【００２４】
機能モデルは、データ信号のデータ部分を機能ブロックに入力又は機能ブロックより出力したときの動作をモデル化したものである。この機能モデルは、例えば、機能ブロック間で、データ自体の受け渡しが正確に行われるか否かを評価するためのモデルである。
【００２５】
第１実施形態に係るシミュレーションモデルは、制御タイミングモデル、データタイミングモデル、機能モデルのそれぞれについてシミュレートを行い、その結果を統合することにより、ハードウェアの評価を行う。以下で具体的に説明する。
【００２６】
図３は、第１実施形態に係るシミュレーションモデルの具体的な構成の一例を示すブロック図である。
【００２７】
第１実施形態に係るシミュレーションモデルは、図１に示したハードウェア１０のシミュレーションモデルであり、例えば、少なくとも演算部及び記憶部を有するコンピュータなどのシミュレータ上で動作するプログラムとして提供される。このシミュレーションモデルのプログラムがシミュレータ上で動作することにより、ハードウェア１０における各機能ブロックをモデル化した各構成要素がスレッドとして動作し、互いにイベントを入出力する。このように、シミュレーションモデルのプログラムがシミュレータ上で動作することにより性能評価装置が実現される。
【００２８】
なお、シミュレータは、例えば、記憶部に格納されたシミュレーションモデルに対応するプログラムを、演算部に読み出して実行することによりシミュレーションを行い、シミュレーションの結果をシミュレータに接続された表示部に表示させてもよい。記憶部に格納されたシミュレーションモデルに対応するプログラムは、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、又はメモリーカード等の記憶媒体、又はプラグアンドプレイなどによって接続可能な外部記憶装置から記憶部へロードしてもよい。また、シミュレータがネットワークに接続可能な通信装置を備えている場合、ネットワークを介してプログラムをダウンロードしてもよい。なお、演算部としてＣＰＵやＭＰＵ等の処理装置を適用し，記憶部としてＲＯＭ、ＲＡＭ、ＨＤＤ（ハードディスクドライブ）等の一般的な記憶装置を適用してよい。
【００２９】
第１実施形態に係るシミュレーションモデルは、バスモデル１０１と、ＣＰＵモデル１０２と、メモリモデル１０３とを有する。具体的には、バスモデル１０１は、ハードウェア１０におけるバス１１ａ及び調停回路１１ｂをモデル化したものである。ＣＰＵモデル１０２は、ハードウェア１０におけるＣＰＵ１をモデル化したものである。メモリモデル１０３は、ハードウェア１０におけるメモリ１３ａ及びメモリコントローラ１３ｂをモデル化したものである。
【００３０】
第１実施形態に係るシミュレーションモデルでは、主に、ＣＰＵモデル１０２とメモリモデル１０３とが、バスモデル１０１を介して、制御信号を示すイベント（制御イベント）及びデータ信号を示すイベント（データイベント）を入出力する。図３において、実線矢印はデータ書き込み処理をシミュレートしたときのイベントの流れを示している。
【００３１】
バスモデル１０１は、イベント受信部１０４と、イベント発信部１０５と、制御タイミング取り扱い部１０６と、データタイミング取り扱い部１０７と、機能取り扱い部１０８と、調停部１０９とを有する。制御タイミング取り扱い部１０６、データタイミング取り扱い部１０７、機能取り扱い部１０８は、バスモデル１０１におけるモデル動作手段である。
【００３２】
イベント受信部１０４は、ＣＰＵモデル１０２からイベントを受信し、イベントの内容を解析する。そして、イベント受信部１０４は、イベントの内容に応じて、制御タイミング取り扱い部１０６、データタイミング取り扱い部１０７、機能取り扱い部１０８のうちのいずれかのモデル動作手段に当該イベントを送信する。具体的には、ＣＰＵモデル１０２からイベント受信部１０４に送信されるイベントには、いずれのモデル動作手段に送信するかを示す識別子が予め付加されており、イベント受信部１０４は、当該識別子に基づいて、受信したイベントをいずれかのモデル動作手段に送信する。
【００３３】
例えば、イベント受信部１０４は、ＣＰＵモデル１０２より受信したイベントのうち、制御信号（要求信号及び応答信号）を示す制御イベントを制御タイミング取り扱い部１０６に送信する。また、イベント受信部１０４は、ＣＰＵモデル１０２より受信したイベントのうち、データ自体を含まず、かつ、データサイズ情報を含むデータイベント（データサイズ情報イベント）をデータタイミング取り扱い部１０７に送信する。一方、イベント受信部１０４は、ＣＰＵモデル１０２より受信したイベントのうち、データ自体を含むデータイベント（データ情報イベント）を機能取り扱い部１０８に送信する。
【００３４】
また、イベント受信部１０４は、制御タイミング取り扱い部１０６、データタイミング取り扱い部１０７、機能取り扱い部１０８のそれぞれからイベントを受信し、受信したイベントをＣＰＵモデル１０２に送信する。
【００３５】
制御タイミング取り扱い部１０６は、ハードウェア１０におけるＣＰＵ１−メモリコントローラ１３ｂ間でバス１１ａを介して入出力される制御信号の入出力のタイミングをモデル化したモデル動作手段である。具体的には、制御タイミング取り扱い部１０６は、ＣＰＵモデル１０２とメモリモデル１０３との間における制御イベントの受け渡しを行う。制御タイミング取り扱い部１０６は、制御イベントの受け渡しを行う際に、調停部１０９に対し、当該制御イベントを送信先に送信する権限を要求する（送信権限要求）。そして、制御タイミング取り扱い部１０６は、調停部１０９より送信権限を受けたときに、当該制御イベントを送信先に送信する。ＣＰＵモデル１０２とメモリモデル１０３との間で制御タイミング取り扱い部１０６を介して制御イベントが入出力されることで、制御タイミングモデルが実現される。
【００３６】
データタイミング取り扱い部１０７は、ハードウェア１０におけるＣＰＵ１−メモリコントローラ１３ｂ間でバス１１ａを介して入出力されるデータ信号の入出力をモデル化したモデル動作手段である。具体的には、データタイミング取り扱い部１０７は、ＣＰＵモデル１０２とメモリモデル１０３との間におけるデータサイズ情報イベントの受け渡しを行う。ＣＰＵモデル１０２とメモリモデル１０３との間でデータタイミング取り扱い部１０７を介してデータサイズ情報イベントが入出力されることで、データ信号の入出力のタイミングがモデル化されたデータタイミングモデルが実現される。
【００３７】
機能取り扱い部１０８は、データ信号のデータがＣＰＵ１又はメモリ１３ａに入力されたときの動作をモデル化したモデル動作手段である。具体的には、機能取り扱い部１０８は、ＣＰＵモデル１０２とメモリモデル１０３との間におけるデータ情報イベントの受け渡しを行う。ＣＰＵモデル１０２とメモリモデル１０３との間で機能取り扱い部１０８を介してデータ情報イベントが入出力されることで、データ信号のデータ部分をメモリに入出力したときの動作をモデル化した機能モデルが実現される。
【００３８】
調停部１０９は、ハードウェア１０における調停回路１１ｂをモデル化したものである。調停部１０９は、制御タイミング取り扱い部１０６より送信権限要求を受けると、当該制御タイミング取り扱い部１０６に送信権限を与えるか否かについて判定する。調停部１０９は、当該制御タイミング取り扱い部１０６に対し、送信権限を与える場合には送信権限を与える旨の通知を行い、送信権限を与えない場合には送信権限を与えない旨の通知を行う。具体的には、調停部１０９は、制御タイミング取り扱い部１０６とは異なる他の制御タイミング取り扱い部からも送信権限要求を受けた場合には、バスの競合が発生しているものとみなす。この場合、調停部１０９は、優先度の最も高い制御イベントを送信する制御タイミング取り扱い部にのみ送信権限を与えることとする。第１実施形態に係るシミュレーションモデルでは、バスに１つのＣＰＵしか接続されていないハードウェアをシミュレートしているので、バスには競合が発生していないものと仮定してもよい。従って、第１実施形態に係るシミュレーションモデルでは、調停部１０９は、制御タイミング取り扱い部１０６より送信権限要求を受けると、当該制御タイミング取り扱い部１０６に対し送信権限を与える旨の通知を行う。
【００３９】
イベント発信部１０５は、制御タイミング取り扱い部１０６、データタイミング取り扱い部１０７、機能取り扱い部１０８よりイベントを受信し、受信したイベントをメモリモデル１０３に送信する。また、イベント発信部１０５は、メモリモデル１０３からイベントを受信し、イベントの内容に応じて、制御タイミング取り扱い部１０６、データタイミング取り扱い部１０７、機能取り扱い部１０８のうち、いずれかのモデル動作手段に当該イベントを送信する。例えば、イベント発信部１０５は、制御イベントを制御タイミング取り扱い部１０６に送信し、データサイズ情報イベントをデータタイミング取り扱い部１０７に送信し、データ情報イベントを機能取り扱い部１０８に送信する。
【００４０】
上述したように、第１実施形態に係るシミュレーションモデルでは、バスモデル１０１は、モデル動作手段として、制御タイミング取り扱い部１０６、データタイミング取り扱い部１０７、機能取り扱い部１０８を有する。ＣＰＵモデル１０２とメモリモデル１０３との間で制御タイミング取り扱い部１０６を介して制御イベントが入出力されることで、制御タイミングモデルが実現される。ＣＰＵモデル１０２とメモリモデル１０３との間でデータタイミング取り扱い部１０７を介してデータサイズ情報イベントが入出力されることで、データタイミングモデルが実現される。ＣＰＵモデル１０２とメモリモデル１０３との間で機能取り扱い部１０８を介してデータ情報イベントが入出力されることで、機能モデルが実現される。
【００４１】
このように、第１実施形態に係るシミュレーションモデルは、制御信号の入出力のタイミングをモデル化した制御タイミングモデルと、データ信号の入出力のタイミングをモデル化したデータタイミングモデルとを有している。このようにすることで、データ信号及び制御信号のそれぞれの入出力のタイミングを考慮した性能評価を行うことが可能となり、性能評価の精度を高めることができる。以下では、メモリへのデータ書き込み処理、メモリからのデータ読み出し処理をシミュレートした場合の例を用いてシミュレーションモデルの動作について具体的に説明する。
【００４２】
（メモリへのデータ書き込み処理）
まず、ＣＰＵ１がバス１１ａを介してメモリ１３ａにデータを書き込む処理をシミュレートしたときのシミュレーションモデルの動作について図３及び図４を用いて説明する。図３において、実線矢印はデータ書き込み処理をシミュレートしたときのイベントの流れを示している。また、実線矢印の始点に付された英字は、データ書き込み処理をシミュレートしたときのイベントの符号を示し、当該英字の横の数字は、制御タイミング取り扱い部１０６及びデータタイミング取り扱い部１０７を介したイベントの入出力される順番を示している。
【００４３】
図４は、データ書き込み処理をシミュレートした場合における、制御タイミング取り扱い部１０６、データタイミング取り扱い部１０７、機能取り扱い部１０８のそれぞれでのイベント例を示している。
【００４４】
図４（ａ）は、制御タイミング取り扱い部１０６におけるイベント例を示している。図４（ａ）において、左端はイベントを示し、右端はイベントに対する返し値を示している。
【００４５】
図３に示すように、ＣＰＵモデル１０２は、バスモデル１０１に対しデータ書き込み要求を示す要求イベントＲＥＱを送信する。具体的には、ＣＰＵモデル１０２は、要求イベントＲＥＱとして、図４（ａ）の１７１「ｒｅｑｕｅｓｔ」及び１７３「ｗｒｉｔｅ」に示されるイベントをイベント受信部１０４に送信する。バスモデル１０１において、イベント受信部１０４は、ＣＰＵモデル１０２より受信した要求イベントＲＥＱを、制御タイミング取り扱い部１０６に送信する。
【００４６】
制御タイミング取り扱い部１０６は、図４（ａ）の１７１「ｒｅｑｕｅｓｔ」に示される要求イベントＲＥＱを受信すると、送信権限要求を調停部１０９に対して行う。具体的には、制御タイミング取り扱い部１０６は、図４（ａ）の１７２「ｃｈｅｃｋ」で示される送信権限要求イベントＣＨを調停部１０９に送信する。
【００４７】
調停部１０９は、制御タイミング取り扱い部１０６より送信権限要求イベントＣＨを受信すると、制御タイミング取り扱い部１０６に対し送信権限を与えるか否かについて判定し、その結果を通知イベントＲＡとして、制御タイミング取り扱い部１０６に送信する。具体的には、調停部１０９は、制御タイミング取り扱い部１０６に対し、送信権限を与える場合には、通知イベントＲＡとして、送信権限を許可する旨を示す「ｔｒｕｅ」の返し値を送信する。一方、調停部１０９は、制御タイミング取り扱い部１０６に対し、送信権限を与えない場合には、通知イベントＲＡとして、送信権限を与えない旨を示す「ｆａｌｓｅ」の返し値を送信する。先にも述べたように、第１実施形態では、バスの競合が発生していないと仮定しているので、このとき、調停部１０９は、制御タイミング取り扱い部１０６に対し、通知イベントＲＡとして「ｔｒｕｅ」の返し値を送信する。
【００４８】
制御タイミング取り扱い部１０６は、調停部１０９より「ｔｒｕｅ」の返し値を受信すると、図４（ａ）の１７３「ｗｒｉｔｅ」に示される要求イベントＲＥＱをイベント発信部１０５へ送信する。この「ｗｒｉｔｅ」のイベントにおける数字は、データ書き込みの始点となるメモリアドレス及び書き込まれるデータサイズを示している。具体的には、「１０００」、「３」の数字は、メモリアドレス「１０００」からデータ「３」個分書き込まれることを示している。イベント発信部１０５は、制御タイミング取り扱い部１０６より受信した要求イベントＲＥＱをメモリモデル１０３へ送信する。
【００４９】
メモリモデル１０３は、「ｗｒｉｔｅ」の要求イベントＲＥＱを受信すると、図４（ａ）の１７４「ａｃｋｎｏｗｌｅｇｄｅ」で示される応答イベントＡＣＫをイベント発信部１０５に送信する。イベント発信部１０５は、メモリモデル１０３より受信した応答イベントＡＣＫを、制御タイミング取り扱い部１０６へ送信する。
【００５０】
制御タイミング取り扱い部１０６は、「ａｃｋｎｏｗｌｅｇｄｅ」の応答イベントＡＣＫを受信すると、再度、送信権限要求イベントＣＨを調停部１０９に送信する。具体的には、制御タイミング取り扱い部１０６は、図４（ａ）の１７５「ｃｈｅｃｋ」で示される送信権限要求イベントを調停部１０９に送信する。第１実施形態では、バスの競合がないと仮定しているので、このとき、調停部１０９は、通知イベントＲＡとして「ｔｒｕｅ」の返し値を制御タイミング取り扱い部１０６に送信する。
【００５１】
制御タイミング取り扱い部１０６は、調停部１０９より「ｔｒｕｅ」の返し値を受信すると、応答イベントＡＣＫをイベント受信部１０４へ送信する。イベント受信部１０４は、制御タイミング取り扱い部１０６より受信した応答イベントＡＣＫを、ＣＰＵモデル１０２へ送信する。
【００５２】
図４（ｂ）は、データタイミング取り扱い部１０７におけるイベント例を示している。図４（ｂ）の１７６「ｓｅｎｄ」で示されるイベントは、データタイミング取り扱い部１０７へ入力されるデータサイズ情報イベントであることを示し、「１０００」、「３」はそれぞれ、データ書き込みの始点となるメモリアドレス及び書き込まれるデータサイズを示している。
【００５３】
ＣＰＵモデル１０２は、イベント受信部１０４より応答イベントＡＣＫを受信すると、図４（ｂ）の１７６「ｓｅｎｄ」に示されるデータサイズ情報イベントＤａｔａＳをイベント受信部１０４へ送信する。つまり、このとき、ＣＰＵモデル１０２は、ハードウェア１０での実際の動作とは異なり、データを含むデータ情報イベントをバスモデル１０１に送信するのではなく、データを含まないデータサイズ情報イベントをバスモデル１０１に送信する。イベント受信部１０４は、データサイズ情報イベントＤａｔａＳを受信すると、データタイミング取り扱い部１０７へ当該イベントＤａｔａＳを送信する。データタイミング取り扱い部１０７は、イベント受信部１０４より受信したデータサイズ情報イベントＤａｔａＳを、イベント発信部１０５へ送信する。イベント発信部１０５は、データタイミング取り扱い部１０７より受信したデータサイズ情報イベントＤａｔａＳを、メモリモデル１０３へ送信する。
【００５４】
メモリモデル１０３は、データサイズ情報イベントＤａｔａＳを受信すると、図４（ｂ）の１７７「ＥＯＤ」に示される処理終了信号のイベント（ＥＯＤイベント）をイベント発信部１０５に送信する。イベント発信部１０５は、メモリモデル１０３より受信したＥＯＤイベントを、データタイミング取り扱い部１０７へ送信する。
【００５５】
データタイミング取り扱い部１０７は、イベント発信部１０５より受信したＥＯＤイベントをイベント受信部１０４に送信するとともに、調停部１０９に対し、送信権限を返還する旨を通知する通知イベントＲＡｒｔを送信する。イベント受信部１０４は、データタイミング取り扱い部１０７より受信したＥＯＤイベントをＣＰＵモデル１０２に送信する。
【００５６】
このように、データタイミング取り扱い部１０７を介したイベントの入出力では、データサイズを示すイベントであるデータサイズ情報イベントの入出力がされるのであって、データ自体を含むイベントの入出力がされるのではない。このようにデータサイズ情報イベントの入出力がされるとすることで、データ自体を含むデータ情報イベントの入出力がされる場合と比較して、制御タイミングモデル及びデータタイミングモデルの実行にかかる時間を短縮することが可能となる。
【００５７】
図４（ｃ）は、機能取り扱い部１０８におけるイベント例を示している。図４（ｃ）の１７８「ｗｒｉｔｅ」で示されるイベントは、データを実際に書き込む処理を示すイベントであり、データを含むデータ情報イベントとなっている。このデータ情報イベントにおいて、「１０００」、「３」は、メモリアドレス「１０００」からデータサイズ「３」個分書き込むことを示し、「５」、「１０」、「２」は書き込まれるデータを示している。
【００５８】
ＣＰＵモデル１０２は、イベント受信部１０４に対し、図４（ｃ）の１７８「ｗｒｉｔｅ」で示されるデータ情報イベントＤａｔａＤＷを送信し、イベント受信部１０４は、ＣＰＵモデル１０２より受信したデータ情報イベントＤａｔａＤＷを機能取り扱い部１０８へと送信する。
【００５９】
機能取り扱い部１０８は、イベント受信部１０４より受信したデータ情報イベントＤａｔａＤＷをイベント発信部１０５へと送信する。イベント発信部１０５は、機能取り扱い部１０８より受信したデータ情報イベントＤａｔａＤＷを、メモリモデル１０３へ送信する。メモリモデル１０３は、イベント発信部１０５より受信したデータ情報イベントＤａｔａＤＷにおけるデータ「５」、「１０」、「２」をシミュレータの外部出力などに出力する。このようにして、データ書き込み処理が行われる場合において、データ自体の受け渡しが正確に行われるか否かをシミュレートすることが可能となる。
【００６０】
以上では、ＣＰＵ１がバス１１ａを介してメモリ１３ａにデータを書き込む処理をシミュレートしたときのシミュレーションモデルの動作について説明した。ここで、第１実施形態に係るシミュレーションモデルでは、ＣＰＵ１とメモリコントローラ１３ｂとの間におけるバスを介して入出力される制御信号及びデータ信号のそれぞれについて、入出力にかかる時間を示す時間情報を得ることが可能である。以下では、上述のデータ書き込み処理をシミュレートした場合における時間情報を得る方法について説明する。
【００６１】
図５は、データ書き込み処理の場合におけるシミュレーションモデルの動作のタイミングチャートを示している。図５において、Δｔｗ１〜Δｔｗ３が制御信号についての時間
情報を示し、Δｔｗ４〜Δｔｗ７がデータ信号についての時間情報を示している。図６は
、データ書き込み処理が行われる場合におけるΔｔｗ１〜Δｔｗ７の時間を決める要素を
示す表である。以下で具体的に述べる。
【００６２】
まず、ＣＰＵモデル１０２は、バスモデル１０１に対し、メモリモデル１０３への書き込み要求イベントＲＥＱを送信する。
【００６３】
バスモデル１０１において、制御タイミング取り扱い部１０６は、書き込み要求イベントＲＥＱを受信すると、送信権限要求イベントＣＨを調停部１０９に送信する。制御タイミング取り扱い部１０６は、調停部１０９より送信権限を許可する旨の通知イベントＲＡを受けると、書き込み要求イベントＲＥＱとともに時間情報Δｔｗ１をメモリモデル１０
３へ送信する。ここで、時間情報Δｔｗ１は、ハードウェア１０において、ＣＰＵ１が要
求信号を送信するのを待つ待ち時間に対応する。具体的には、時間情報Δｔｗ１は、ＣＰ
Ｕ１が調停回路１１ｂに対し送信権限要求を送信してから当該調停回路１１ｂより送信権限を得て要求信号を送信するまでの時間に対応する。従って、時間情報Δｔｗ１は、バス
１１ａの競合の有無により変化する。第１実施形態では、バスに競合が発生していないと仮定しているので、時間情報Δｔｗ１は実験などにより予め決められた固定値に設定され
る。なお、固定値は、シミュレータのメモリなどに予め記憶されている。
【００６４】
メモリモデル１０３は、書き込み要求イベントＲＥＱ及び時間情報Δｔｗ１をバスモデ
ル１０１より受信すると、バスモデル１０１に対し応答イベントＡＣＫを送信する。このとき、メモリモデル１０３は、応答イベントＡＣＫとともに、時間情報Δｔｗ１に時間情
報Δｔｗ２を加えた時間情報Δｔｗ１＿２をバスモデル１０１に送信する。ここで、時間
情報Δｔｗ２は、ハードウェア１０において、メモリコントローラ１３ｂが要求信号を受
信してから応答信号を送信する準備を完了するまでの処理時間に対応する。時間情報Δｔ
ｗ２は、実験などにより予め決められた固定値に設定される。
【００６５】
バスモデル１０１において、制御タイミング取り扱い部１０６は、応答イベントＡＣＫ及び時間情報Δｔｗ１＿２を受信すると、再度、調停部１０９に対し送信権限要求イベン
トＣＨを送信する。制御タイミング取り扱い部１０６は、調停部１０９より送信権限を許可する旨の通知イベントＲＡを受信すると、応答イベントＡＣＫとともに、時間情報Δｔ
ｗ１＿２に時間情報Δｔｗ３を加えた時間情報Δｔｗ１＿３をＣＰＵモデル１０２へ送信
する。ここで、時間情報Δｔｗ３は、ハードウェア１０において、メモリコントローラ１
３ｂが応答信号を送信するのを待つ待ち時間に対応する。具体的には、時間情報Δｔｗ３
は、メモリコントローラ１３ｂが調停回路１１ｂに対し送信権限要求を行ってから当該調停回路１１ｂより送信権限を得て応答イベントＡＣＫを送信するまでの時間に対応する。従って、時間情報Δｔｗ３は、バス１１ａの競合の有無により変化する。第１実施形態で
は、バスに競合が発生していないと仮定しているので、時間情報Δｔｗ３は、実験などに
より予め決められた固定値に設定される。
【００６６】
このようにして求められた時間情報Δｔｗ１＿３が、ハードウェア１０において、デー
タ書き込み処理の際における制御信号の入出力にかかる時間情報となる。
【００６７】
ＣＰＵモデル１０２は、応答イベントＡＣＫ及び時間情報Δｔｗ１＿３をバスモデル１
０１より受信すると、バスモデル１０１に対しデータサイズ情報イベントＤａｔａＳを送信する。このとき、ＣＰＵモデル１０２は、データサイズ情報イベントＤａｔａＳとともに、時間情報Δｔｗ１＿３に時間情報Δｔｗ４を加えた時間情報Δｔｗ１＿４をバスモデ
ル１０１に送信する。ここで、時間情報Δｔｗ４は、ハードウェア１０において、ＣＰＵ
１が応答信号を受信してからデータを含むデータ信号を送信するまでの処理時間に対応する。具体的には、時間情報Δｔｗ４は、ＣＰＵ１がデータを含むデータ信号を用意する時
間とＣＰＵ１がバス１１ａに当該データ信号を出力する時間とを足したものに対応する。時間情報Δｔｗ４は、１データ当たりの処理時間にデータサイズ情報を掛けることによっ
て求められる。ここで、１データ当たりの処理時間は、実験などにより予め決められた固定値に設定される。
【００６８】
バスモデル１０１において、データタイミング取り扱い部１０７は、ＣＰＵモデル１０２より受信したデータサイズ情報イベントＤａｔａＳとともに、時間情報Δｔｗ１＿４に
時間情報Δｔｗ５を加えた時間情報Δｔｗ１＿５をメモリモデル１０３へ送信する。ここ
で、時間情報Δｔｗ５は、ハードウェア１０において、データ信号をバス１１ａで送信す
るのにかかる送信時間に対応する。時間情報Δｔｗ５は、１データ当たりの送信時間にデ
ータサイズ情報を掛けることによって求められる。ここで、１データ当たりの送信時間は、実験などにより予め決められた固定値に設定される。
【００６９】
メモリモデル１０３は、データサイズ情報イベントＤａｔａＳ及び時間情報Δｔｗ１＿
５をバスモデル１０１より受信すると、バスモデル１０１に対しＥＯＤイベントを送信する。このとき、メモリモデル１０３は、ＥＯＤイベントとともに、時間情報Δｔｗ１＿５
に時間情報Δｔｗ６を加えた時間情報Δｔｗ１＿６をバスモデル１０１に送信する。ここ
で、時間情報Δｔｗ６は、ハードウェア１０において、データがメモリ１３ａに書き込ま
れるのにかかる処理時間に対応する。具体的には、時間情報Δｔｗ６は、１データ当たり
のメモリへの書き込み時間にデータサイズ情報を掛けることによって求められる。ここで、１データ当たりのメモリへの書き込み時間は、実験などにより予め決められた固定値に設定される。
【００７０】
バスモデル１０１において、データタイミング取り扱い部１０７は、メモリモデル１０３より受信したＥＯＤイベントとともに、時間情報Δｔｗ１＿６に時間情報Δｔｗ７を加
えた時間情報Δｔｗ１＿７を、イベント受信部１０４を介してＣＰＵモデル１０２へ送信
する。ここで、時間情報Δｔｗ７は、ハードウェア１０において、処理終了信号をバス１
１ａで送信するのにかかる送信時間に対応する。なお、時間情報Δｔｗ７は、実験などに
より予め決められた固定値に設定される。
【００７１】
このようにして求められた時間情報Δｔｗ１＿７が、ハードウェア１０でデータ書き込
み処理にかかるトータルの時間（ＣＰＵ１がデータ書き込み要求を出力してから処理終了信号を得るまでの時間）に対応する。つまり、ＣＰＵモデル１０２は、ＥＯＤイベントを受信したときに、メモリへのデータ書き込み処理にかかるトータルの時間を時間情報Δｔ
ｗ１＿７として得ることができる。なお、このうち、時間情報Δｔｗ４〜Δｔｗ７までの
合計した時間情報は、データ書き込み処理の際におけるデータ信号の入出力にかかる時間に対応する。
【００７２】
このように、時間情報を次々に渡していけるのは、ＣＰＵモデルからバスモデル間、バスモデルからメモリモデル間、メモリモデルからバスモデル間、バスモデルからＣＰＵモデル間・・・で実行される処理（トランザクション）を、それぞれ別々にトランザクションモデリングを行っているためで、これによりトランザクションモデルからトランザクションモデルへと時間情報を渡すことが可能となる。
【００７３】
以上に述べたことから分かるように、第１実施形態に係るシミュレーションモデルは、例えば、制御信号の入出力のタイミングがモデル化された制御タイミングモデルと、データ信号の入出力のタイミングがモデル化されたデータタイミングモデルとを有している。そして、制御タイミングモデルでは、ＣＰＵモデル１０２、バスモデル１０１における制御タイミング取り扱い部１０６、メモリモデル１０３により制御信号の入出力にかかった時間が算出される。具体的には、制御タイミング取り扱い部１０６は時間情報Δｔｗ１、
Δｔｗ３を算出し、メモリモデル１０３は時間情報Δｔｗ２を算出する。データ書き込み
処理の場合において、ハードウェア１０におけるＣＰＵ１−メモリコントローラ１３ｂ間における制御信号の転送期間は、例えば時間情報Δｔｗ１、Δｔｗ３に対応し、制御信号
の処理時間は、例えば時間情報Δｔｗ２に対応する。従って、制御信号転送期間算出部は
、例えば制御タイミング取り扱い部１０６に対応し、制御信号処理時間算出部は、例えばメモリモデル１０３に対応する。また、データタイミングモデルでは、ＣＰＵモデル１０２、バスモデル１０１におけるデータタイミング取り扱い部１０７、メモリモデル１０３によりデータ信号の入出力にかかった時間が算出される。具体的には、データタイミング取り扱い部１０６は、時間情報Δｔｗ５、Δｔｗ７を算出し、ＣＰＵモデル１０２、メモ
リモデル１０３はそれぞれ、時間情報Δｔｗ４、Δｔｗ６を算出する。データ書き込み処
理の場合において、ハードウェア１０におけるＣＰＵ１−メモリコントローラ１３ｂ間におけるデータ信号の転送期間は、例えば時間情報Δｔｗ５、Δｔｗ７に対応し、データ信
号の処理時間は、例えば時間情報Δｔｗ４、Δｔｗ６に対応する。従って、データ信号転
送期間算出部は、例えばデータタイミング取り扱い部１０６に対応し、データ信号処理時間算出部は、例えばＣＰＵモデル１０２、メモリモデル１０３に対応する。
【００７４】
ここで、一般的なシミュレーションモデルでは、データ書き込み要求を示す要求イベントが、ＣＰＵモデルからバスモデルを介してメモリモデルに送信された際に、メモリモデルによりデータ書き込み時間が算出される。例えば、メモリモデルは、図４の１７３「ｗｒｉｔｅ」で示されるイベントを受信したときに、データ書き込み時間を算出する。そして、メモリモデルは、応答イベントとＥＯＤイベントとをバスを介してＣＰＵモデルに送信する。つまり、一般的なシミュレーションモデルでは、データ信号及び制御信号のそれぞれの入出力のタイミングを考慮して時間情報を算出していない。
【００７５】
それに対し、第１実施形態に係るシミュレーションモデルでは、データ書き込み処理をシミュレートする場合において、データ信号及び制御信号のそれぞれの入出力のタイミングを考慮して、時間情報を算出している。具体的には、第１実施形態に係るシミュレーションモデルでは、ハードウェアにおける制御信号及びデータ信号のそれぞれの入出力と同様に、制御信号を示すイベント及びデータ信号を示すイベントの入出力を行っている。そして、第１実施形態に係るシミュレーションモデルでは、それぞれのイベントの入出力がされる間に制御信号についての時間情報、データ信号についての時間情報をそれぞれ算出している。そのため、第１実施形態に係るシミュレーションモデルは、一般的なシミュレーションモデルと比較して、シミュレートの対象となるハードウェアにより近いモデルとなり、データ書き込み処理にかかるトータルの時間を、精度を高めて算出することができる。
【００７６】
また、第１実施形態に係るシミュレーションモデルでは、データ信号を示すイベントの入出力としてデータサイズ情報イベントの入出力を行うこととし、当該データサイズ情報イベントを基に、データ送信時間の時間情報Δｔｗ５、データ信号処理時間の時間情報Δ
ｔｗ４、Δｔｗ６を算出している。これにより、データ情報イベントの入出力を行う場合
と比較して、シミュレーション時間を短縮することが可能となる。
【００７７】
（メモリからのデータ読み出し処理）
次に、ＣＰＵ１がバス１１ａを介してメモリ１３ａからデータを読み込む処理をシミュレートしたときのシミュレーションモデルの動作について図７及び図８を用いて説明する。
【００７８】
図７は、図３と同様、第１実施形態に係るシミュレーションモデルの具体的な構成の一例を示すブロック図である。ただし、図７では、図３と異なり、実線矢印はデータ読み出しをシミュレートしたときのイベントの流れを示している。また、実線矢印の始点に付された英字は、データ読み出し処理をシミュレートしたときのイベントの符号を示している。当該英字の横の数字は、制御タイミング取り扱い部１０６及びデータタイミング取り扱い部１０７を介したイベントの入出力される順番を示している。
【００７９】
図８は、データ読み出し処理をモデル化した場合において、制御タイミング取り扱い部１０６、データタイミング取り扱い部１０７、機能取り扱い部１０８のそれぞれにおけるイベント例を示している。
【００８０】
図８（ａ）は、制御タイミング取り扱い部１０６におけるイベント例を示している。図８（ａ）において、左端はイベントを示し、右端はイベントに対する返し値を示している。
【００８１】
図７に示すように、ＣＰＵモデル１０２は、バスモデル１０１に対しデータ読み出し要求を示す要求イベントＲＥＱを送信する。具体的には、ＣＰＵモデル１０２は、イベント受信部１０４に対し図８（ａ）の１８１「ｒｅｑｕｅｓｔ」及び１８３「ｒｅａｄ」で示されるイベントを送信する。バスモデル１０１において、イベント受信部１０４は、ＣＰＵモデル１０２より受信した要求イベントＲＥＱを、制御タイミング取り扱い部１０６に送信する。
【００８２】
制御タイミング取り扱い部１０６は、図８（ａ）の１８１「ｒｅｑｕｅｓｔ」で示される要求イベントＲＥＱを受信すると、送信権限要求イベントＣＨを調停部１０９に送信する。具体的には、制御タイミング取り扱い部１０６は、図８（ａ）の１８２「ｃｈｅｃｋ」で示されるイベントを調停部１０９に送信する。
【００８３】
調停部１０９は、制御タイミング取り扱い部１０６より送信権限要求イベントＣＨを受信すると、制御タイミング取り扱い部１０６に対し送信権限を与えるか否かについて判定する。第１実施形態では、バスの競合が発生していないと仮定しているので、調停部１０９は、制御タイミング取り扱い部１０６に対し、通知イベントＲＡとして「ｔｒｕｅ」の返し値を送信する。
【００８４】
制御タイミング取り扱い部１０６は、調停部１０９より「ｔｒｕｅ」の返し値を受信すると、図８（ａ）の１８３「ｒｅａｄ」で示される要求イベントＲＥＱをイベント発信部１０５へ送信する。この「ｒｅａｄ」のイベントにおける数字は、データ読み出しの始点となるメモリアドレス及び読み出されるデータサイズを示している。具体的には、「１０００」、「３」の数字は、メモリアドレス「１０００」からデータ「３」個分読み出されることを示している。イベント発信部１０５は、制御タイミング取り扱い部１０６より受信した要求イベントＲＥＱをメモリモデル１０３へ送信する。
【００８５】
メモリモデル１０３は、イベント発信部１０５より要求イベントＲＥＱを受信すると、図８（ａ）の１８４「ａｃｋｎｏｗｌｅｇｄｅ」で示される応答イベントＡＣＫをイベント発信部１０５に送信する。イベント発信部１０５は、メモリモデル１０３より受信した応答イベントＡＣＫを、制御タイミング取り扱い部１０６へ送信する。
【００８６】
制御タイミング取り扱い部１０６は、「ａｃｋｎｏｗｌｅｇｄｅ」の応答イベントＡＣＫを受信すると、再度、送信権限要求イベントＣＨを調停部１０９に送信する。具体的には、制御タイミング取り扱い部１０６は、図８（ａ）の１８５「ｃｈｅｃｋ」で示されるイベントを調停部１０９に送信する。第１実施形態では、バスの競合がないと仮定しているので、調停部１０９は、通知イベントＲＡとして「ｔｒｕｅ」の返し値を制御タイミング取り扱い部１０６に送信する。
【００８７】
制御タイミング取り扱い部１０６は、調停部１０９より「ｔｒｕｅ」の返し値を受信すると、応答イベントＡＣＫをイベント受信部１０４へ送信する。イベント受信部１０４は、制御タイミング取り扱い部１０６より受信した応答イベントＡＣＫを、ＣＰＵモデル１０２へ送信する。
【００８８】
図８（ｂ）は、データタイミング取り扱い部１０７におけるイベント例を示している。図８（ｂ）の１８６、１８７「ｓｅｎｄ」で示されるイベントはデータタイミング取り扱い部１０７へ入力されるデータサイズ情報イベントであることを示している。図８（ｂ）の１８６、１８７に示す「１０００」、「３」はそれぞれ、データ読み出しの始点となるメモリアドレス及び読み出されるデータサイズを示している。
【００８９】
ＣＰＵモデル１０２は、イベント受信部１０４より応答イベントＡＣＫを受信すると、図８（ｂ）の１８６「ｓｅｎｄ」で示されるデータサイズ情報イベントＤａｔａＳをイベント受信部１０４へ送信する。イベント受信部１０４は、データサイズ情報イベントＤａｔａＳを受信すると、データタイミング取り扱い部１０７へ当該データサイズ情報イベントＤａｔａＳを送信する。データタイミング取り扱い部１０７は、イベント受信部１０４より受信したデータサイズ情報イベントＤａｔａＳを、イベント発信部１０５へ送信する。イベント発信部１０５は、データタイミング取り扱い部１０７より受信したデータサイズ情報イベントＤａｔａＳを、メモリモデル１０３へ送信する。
【００９０】
メモリモデル１０３は、データサイズ情報イベントＤａｔａＳを受信すると、受信したデータサイズ情報イベントＤａｔａＳをイベント発信部１０５に返信するとともに、ＥＯＤイベントもイベント発信部１０５に送信する。つまり、このとき、メモリモデル１０３は、ハードウェア１０での実際の動作とは異なり、データを含むデータ情報イベントをバスモデル１０１に送信するのではなく、データサイズ情報イベントをバスモデル１０１に返信する。イベント発信部１０５は、メモリモデル１０３より受信したデータサイズ情報イベントＤａｔａＳ及びＥＯＤイベントを、データタイミング取り扱い部１０７へ送信する。図８（ｂ）の１８７「ｓｅｎｄ」で示されるイベント、及び、１８８のＥＯＤイベントは、このときに、データタイミング取り扱い部１０７がイベント発信部１０５より受信したデータサイズ情報イベントＤａｔａＳ、及び、ＥＯＤイベントを示している。
【００９１】
データタイミング取り扱い部１０７は、イベント発信部１０５より受信したデータサイズ情報イベントＤａｔａＳ及びＥＯＤイベントをイベント受信部１０４に送信するとともに、調停部１０９に対し、送信権限を返還する旨の通知イベントＲＡｒｔを送信する。イベント受信部１０４は、データタイミング取り扱い部１０７より受信したデータサイズ情報イベントＤａｔａＳ及びＥＯＤイベントをＣＰＵモデル１０２に送信する。
【００９２】
以上述べたように、データ読み出し処理の場合においても、先に述べたデータ書き込み処理の場合と同様、制御タイミング取り扱い部１０６、データタイミング取り扱い部１０７を介したイベントの入出力では、データサイズを示すイベントであるデータサイズ情報イベントの入出力がされるのであって、データ自体を含むイベントの入出力がされるのではない。
【００９３】
図８（ｃ）は、機能取り扱い部１０８におけるイベント例を示している。図８（ｃ）の１９０「ｒｅａｄ」で示されるイベントは、データを実際に読み込む処理を示すイベントであり、データサイズ情報イベントとなっている。このデータ情報イベントにおいて、「１０００」、「３」は、メモリアドレス「１０００」からデータサイズ「３」個分読み込むことを示している。
【００９４】
ＣＰＵモデル１０２は、イベント受信部１０４に対し、図８（ｃ）の１９０「ｒｅａｄ」で示されるデータサイズ情報イベントＤａｔａＳＲを送信し、イベント受信部１０４は、「ｒｅａｄ」のデータサイズ情報イベントを受信すると、機能取り扱い部１０８へ当該データサイズ情報イベントＤａｔａＳＲを送信する。
【００９５】
機能取り扱い部１０８は、データサイズ情報イベントＤａｔａＳＲを受信すると、イベント発信部１０５へと送信する。イベント発信部１０５は、機能取り扱い部１０８より受信したデータサイズ情報イベントＳＲを、メモリモデル１０３へ送信する。メモリモデル１０３は、イベント発信部１０５より受信したデータサイズ情報イベントＤａｔａＳＲにおけるメモリアドレス及びデータサイズを基に、シミュレータのメモリなどからデータを読み込む。そして、メモリモデル１０３は、読み出したデータを、データ情報イベントＤａｔａＤＲとしてイベント発信部１０５へ送信する。イベント発信部１０５は、メモリモデル１０３より受信したデータ情報イベントＤａｔａＤＲを機能取り扱い部１０８に送信する。図８（ｃ）の１９１「ｄａｔａ」で示されるイベントは、このときのデータ情報イベントＤａｔａＤＲを示し、「５」、「１０」、「２」は、シミュレータのメモリより読み込まれたデータを示している。
【００９６】
機能取り扱い部１０８は、イベント発信部１０５より受信したデータ情報イベントＤａｔａＤＲをイベント受信部１０４に送信する。イベント受信部１０４は、機能取り扱い部１０８より受信したデータ情報イベントＤａｔａＤＲをＣＰＵモデル１０２に送信する。ＣＰＵモデル１０２は、イベント受信部１０４より受信したデータ情報イベントＤａｔａＤＲのデータ「５」、「１０」、「２」をシミュレータの外部出力などに出力する。このようにして、データ読み出し処理が行われる場合において、データ自体の受け渡しが正確に行われるか否かをシミュレートすることが可能となる。
【００９７】
以上では、ＣＰＵ１がバス１１ａを介してメモリ１３ａよりデータを読み込む処理をシミュレートしたときのシミュレーションモデルの動作について説明した。上述したことから分かるように、データ読み出し処理をシミュレートした場合における制御イベントの入出力は、先に述べたデータ書き込み処理をシミュレートした場合における制御イベントのやりとりと同じように行われる。また、データタイミング取り扱い部１０７を介したイベントの入出力についても、データ書き込み処理をシミュレートした場合と同様、データサイズを示すイベントであるデータサイズ情報イベントの入出力がされる。データ読み出し処理がシミュレートされた場合であっても、ＣＰＵ１とメモリコントローラ１３ｂとの間におけるバスを介した制御信号及びデータ信号のそれぞれについて、入出力にかかる時間を示す時間情報を得ることが可能である。以下では、上述のデータ読み出し処理をシミュレートした場合における時間情報を得る方法について説明する。
【００９８】
図９は、データ読み出し処理をシミュレートした場合におけるシミュレーションモデルの動作のタイミングチャートを示している。図９において、Δｔｒ１〜Δｔｒ３が制御信
号についての時間情報を示し、Δｔｒ４〜Δｔｒ７がデータ信号についての時間情報を示
している。図１０は、データ読み出し処理が行われる場合におけるΔｔｒ１〜Δｔｒ７の
時間を決める要素を示す表である。以下で具体的に述べる。
【００９９】
まず、ＣＰＵモデル１０２は、バスモデル１０１に対し、メモリモデル１０３への読み出し要求イベントＲＥＱを送信する。
【０１００】
バスモデル１０１において、制御タイミング取り扱い部１０６は、読み出し要求イベントＲＥＱを受信すると、調停部１０９に対し送信権限要求イベントＣＨを送信する。制御タイミング取り扱い部１０６は、調停部１０９より調停部１０９より送信権限を許可する旨の通知イベントＲＡを受信すると、読み出し要求イベントＲＥＱとともに時間情報Δｔ
ｒ１をメモリモデル１０３へ送信する。ここで、時間情報Δｔｒ１は、データ書き込み処
理の場合と同様、ハードウェア１０において、ＣＰＵ１が要求信号を送信するのを待つ待ち時間に対応する。具体的には、時間情報Δｔｒ１は、ＣＰＵ１が調停回路１１ｂに対し
送信権限要求を行ってから当該調停回路１１ｂより送信権限を得て要求イベントＲＥＱを送信するまでの時間に対応する。従って、時間情報Δｔｒ１は、バス１１ａの競合の有無
により変化する。第１実施形態では、バスに競合が発生していないと仮定しているので、時間情報Δｔｒ１は実験などにより予め決められた固定値に設定される。
【０１０１】
メモリモデル１０３は、読み出し要求イベントＲＥＱ及び時間情報Δｔｒ１をバスモデ
ル１０１より受信すると、バスモデル１０１に対し応答イベントＡＣＫを送信する。このとき、メモリモデル１０３は、応答イベントＡＣＫとともに、時間情報Δｔｒ１に時間情
報Δｔｒ２を加えた時間情報Δｔｒ１＿２をバスモデル１０１に送信する。ここで、時間
情報Δｔｒ２は、データ書き込み処理の場合と同様、ハードウェア１０において、メモリ
コントローラ１３ｂが読み出し要求信号を受信してから応答信号を送信する準備を完了するまでの処理時間に対応する。時間情報Δｔｒ２は実験などにより予め決められた固定値
に設定される。
【０１０２】
バスモデル１０１において、制御タイミング取り扱い部１０６は、応答イベントＡＣＫ及び時間情報Δｔｒ１＿２を受信すると、調停部１０９に対し、再度、送信権限要求イベ
ントＣＨを送信する。制御タイミング取り扱い部１０６は、調停部１０９より送信権限を許可する旨の通知イベントＲＡを受信すると、応答イベントＡＣＫとともに、時間情報Δ
ｔｒ１＿２に時間情報Δｔｒ３を加えた時間情報Δｔｒ１＿３をＣＰＵモデル１０２へ送
信する。ここで、時間情報Δｔｒ３は、データ書き込み処理の場合と同様、ハードウェア
１０において、メモリコントローラ１３ｂが応答信号を送信するのを待つ待ち時間に対応する。具体的には、時間情報Δｔｒ３は、メモリコントローラ１３ｂが調停回路１１ｂに
対し送信権限要求を行ってから当該調停回路１１ｂより送信権限を得て応答イベントＡＣＫを送信するまでの時間に対応する。従って、時間情報Δｔｒ３は、バス１１ａの競合の
有無により変化する。第１実施形態では、バスに競合が発生していないと仮定しているので、時間情報Δｔｒ３は実験などにより予め決められた固定値に設定される。
【０１０３】
このようにして求められた時間情報Δｔｒ１＿３が、ハードウェア１０において、デー
タ読み出し処理の際における制御信号の入出力にかかる時間情報となる。上述したことから分かるように、データ読み出し処理をシミュレートした場合におけるΔｔｒ１〜Δｔｒ
３はそれぞれ、先に述べたデータ書き込み処理をシミュレートした場合におけるΔｔｗ１
〜Δｔｗ３を求めたときと同様の方法で求められる。
【０１０４】
ＣＰＵモデル１０２は、応答イベントＡＣＫ及び時間情報Δｔｒ１＿３をバスモデル１
０１より受信すると、バスモデル１０１に対しデータサイズ情報イベントＤａｔａＳを送信する。このとき、ＣＰＵモデル１０２は、データサイズ情報イベントＤａｔａＳとともに、時間情報Δｔｒ１＿３に時間情報Δｔｒ４を加えた時間情報Δｔｒ１＿４をバスモデ
ル１０１に送信する。ここで、時間情報Δｔｒ４は、ハードウェア１０において、ＣＰＵ
１が応答信号を受信してからデータアドレス及びデータサイズを含むデータ信号を送信する準備を完了するまでの処理時間に対応する。当該データ信号はデータを含まないので、時間情報Δｔｒ４は実験などにより予め決められた固定値に設定される。
【０１０５】
バスモデル１０１において、データタイミング取り扱い部１０７は、ＣＰＵモデル１０２より受信したデータサイズ情報イベントＤａｔａＳとともに、時間情報Δｔｒ１＿４に
時間情報Δｔｒ５を加えた時間情報Δｔｒ１＿５をメモリモデル１０３へ送信する。ここ
で、時間情報Δｔｒ５は、ハードウェア１０において、データアドレス及びデータサイズ
を含むデータ信号をバス１１ａで送信するのにかかる送信時間に対応する。当該データ信号はデータを含まないので、時間情報Δｔｒ５は実験などにより予め決められた固定値に
設定される。
【０１０６】
メモリモデル１０３は、データサイズ情報イベントＤａｔａＳ及び時間情報Δｔｒ１＿
５をバスモデル１０１より受信すると、バスモデル１０１に対し、データ情報イベントＤａｔａＳ及びＥＯＤイベントを送信する。このとき、メモリモデル１０３は、データ情報イベントＤａｔａＳ及びＥＯＤイベントとともに、時間情報Δｔｒ１＿５に時間情報Δｔ
ｒ６を加えた時間情報Δｔｒ１＿６をバスモデル１０１に送信する。ここで、時間情報Δ
ｔｒ６は、ハードウェア１０において、メモリ１３ａよりデータが読み出されるのにかかる処理時間に対応する。具体的には、時間情報Δｔｒ６は、１データ当たりのメモリから
の読み出し時間にデータサイズ情報を掛けることによって求められる。ここで、１データ当たりのメモリからの読み出し時間は実験などにより予め決められた固定値に設定される。
【０１０７】
バスモデル１０１において、データタイミング取り扱い部１０７は、データサイズ情報イベントＤａｔａＳ及びＥＯＤイベントとともに、時間情報Δｔｒ１＿５に時間情報Δｔ
ｒ７を加えた時間情報Δｔｒ１＿７を、ＣＰＵモデル１０２へ送信する。ここで、時間情
報Δｔｒ７は、ハードウェア１０において、データを含むデータ信号をバス１１ａで送信
するのにかかる送信時間に対応する。具体的には、時間情報Δｔｒ７は、１データ当たり
の送信時間にデータサイズ情報を掛けることによって求められる。ここで、１データ当たりの送信時間は実験などにより予め決められた固定値に設定される。
【０１０８】
このようにして求められた時間情報Δｔｒ１＿７が、ハードウェア１０でデータ読み出
し処理にかかるトータルの時間（ＣＰＵ１がデータ読み出し要求を出力してから処理終了信号を得るまでの時間）に対応する。つまり、ＣＰＵモデル１０２は、ＥＯＤイベントを受信したときに、データ読み出し処理にかかるトータルの時間を時間情報Δｔｒ１＿７と
して得ることができる。なお、このうち、時間情報Δｔｒ４〜Δｔｒ７までの合計した時
間情報は、データ読み出し処理の際におけるデータ信号の入出力にかかる時間に対応する。
【０１０９】
以上に述べたことから分かるように、データ読み出し処理の場合においても、制御タイミングモデルでは、ＣＰＵモデル１０２、バスモデル１０１における制御タイミング取り扱い部１０６、メモリモデル１０３により制御信号の入出力にかかった時間が算出される。具体的には、制御タイミング取り扱い部１０６は時間情報Δｔｒ１、Δｔｒ３を算出し
、メモリモデル１０３は時間情報Δｔｒ２を算出する。データ読み出し処理の場合におい
て、ハードウェア１０におけるＣＰＵ１−メモリコントローラ１３ｂ間における制御信号の転送期間は、例えば時間情報Δｔｒ１、Δｔｒ３に対応し、制御信号の処理時間は、例
えば時間情報Δｔｒ２に対応する。また、データタイミングモデルでは、ＣＰＵモデル１
０２、バスモデル１０１におけるデータタイミング取り扱い部１０７、メモリモデル１０３によりデータ信号の入出力にかかった時間が算出される。具体的には、データタイミング取り扱い部１０６は、時間情報Δｔｒ５、Δｔｒ７を算出し、ＣＰＵモデル１０２、メ
モリモデル１０３はそれぞれ、時間情報Δｔｒ４、Δｔｒ６を算出する。データ読み出し
処理の場合において、ハードウェア１０におけるＣＰＵ１−メモリコントローラ１３ｂ間におけるデータ信号の転送期間は、例えば時間情報Δｔｒ５、Δｔｒ７に対応し、データ
信号の処理時間は、例えば時間情報Δｔｒ４、Δｔｒ６に対応する。
【０１１０】
第１実施形態に係るシミュレーションモデルでは、データ読み出し処理をシミュレートする場合においても、データ信号及び制御信号のそれぞれの入出力のタイミングを考慮して、時間情報を算出している。そのため、第１実施形態に係るシミュレーションモデルは、シミュレートの対象となるハードウェアにより近いモデルとなり、データ読み出し処理にかかるトータルの時間を、精度を高めて算出することができる。
【０１１１】
［第２実施形態］
次に、第２実施形態に係るシミュレーションモデルについて図１１〜１３を参照して説明する。第２実施形態に係るシミュレーションでは、バスに競合が発生していると仮定した場合のシミュレーションモデルの動作の例について説明する。
【０１１２】
図１１は、第２実施形態に係るシミュレーションモデルの対象となるハードウェアの構成の一例を示すブロック図である。
【０１１３】
図１１において、図１と同様の構成要素については図１と同じ符号が付されている。第２実施形態に係るシミュレーションモデルの対象となるハードウェア２０は、図１で示したハードウェア１０と異なり、バス１１ａに２つのＣＰＵ１、２が接続されている。つまり、第２実施形態に係るシミュレーションモデルの対象となるハードウェアは、マルチプロセッサのハードウェアである。ハードウェア２０では、２つのＣＰＵ１、２が、バス１１ａを介してメモリコントローラ１３ｂと制御信号及びデータ信号の入出力を行う。
【０１１４】
具体的には、ＣＰＵ１、２は、メモリコントローラ１３ｂと制御信号の入出力を行う際において、それぞれ、送信権限要求を示す信号を調停回路１１ｂに送信する。調停回路１１ｂは、ＣＰＵ１、２のうち、いずれか一方に送信権限を許可する。そして、ＣＰＵ１、２のうち、調停回路１１ｂより送信権限許可を示す信号を受信した方のＣＰＵのみが、バス１１ａを介して、メモリコントローラ１３ｂと制御信号及びデータ信号の入出力を行う。送信権限許可を示す信号を受信した方のＣＰＵによる処理が終了するまで、送信権限許可を示す信号を受信していない方のＣＰＵは、制御信号及びデータ信号の送受信を待つこととする。
【０１１５】
図１２は、第２実施形態に係るシミュレーションモデルの構成の一例を示すブロック図である。図１２において、図３と同様の構成要素については図３と同じ符号が付されている。
【０１１６】
第２実施形態に係るシミュレーションモデルは、図１１に示したハードウェア２０のシミュレーションモデルであり、第１実施形態に係るシミュレーションモデルと同様、例えば、コンピュータなどのシミュレータ上で動作するプログラムとして提供される。このシミュレーションモデルのプログラムがシミュレータ上で動作することにより性能評価装置が実現される。
【０１１７】
第２実施形態に係るシミュレーションモデルは、バスモデル１０１と、ＣＰＵ１モデル１０２ａと、ＣＰＵ２モデル１０２ｂと、メモリモデル１０３とを有する。ＣＰＵ１モデル１０２ａがＣＰＵ１をモデル化したものであり、ＣＰＵ２モデル１０２ｂがＣＰＵ２をモデル化したものである。
【０１１８】
第２実施形態に係るシミュレーションモデルでは、主に、２つのＣＰＵモデル１０２ａ、１０２ｂのそれぞれとメモリモデル１０３とが、バスモデル１０１を介して、制御イベント及びデータイベントを入出力する。図１２において、実線矢印は、ＣＰＵ１モデル１０２ａとバスモデル１０１とメモリモデル１０３との間で入出力されるイベントの流れを示している。一点鎖線矢印は、ＣＰＵ２モデル１０２ｂとバスモデル１０１とメモリモデル１０３との間で入出力されるイベントの流れを示している。
【０１１９】
バスモデル１０１は、イベント受信部１０４と、イベント発信部１０５と、制御タイミング取り扱い部１０６ａ、１０６ｂと、データタイミング取り扱い部１０７と、機能取り扱い部１０８と、調停部１０９とを有する。
【０１２０】
制御タイミング取り扱い部１０６ａは、ＣＰＵ１−メモリコントローラ１３ｂ間でバス１１ａを介して入出力される制御信号の入出力のタイミングをモデル化した、バスモデル１０１のモデル動作手段である。具体的には、制御タイミング取り扱い部１０６ａは、ＣＰＵ１モデル１０２ａとメモリモデル１０３との間における制御イベントの受け渡しを行う。
【０１２１】
制御タイミング取り扱い部１０６ｂは、ＣＰＵ２−メモリコントローラ１３ｂ間でバス１１ａを介して入出力される制御信号の入出力のタイミングをモデル化した、バスモデル１０１のモデル動作手段である。具体的には、制御タイミング取り扱い部１０６ｂは、ＣＰＵ２モデル１０２ｂとメモリモデル１０３との間における制御イベントの受け渡しを行う。
【０１２２】
次に、第２実施形態に係るシミュレーションモデルの動作の流れについて、ＣＰＵ１、２がそれぞれバス１１ａを介してメモリ１３ａにデータを書き込む処理をシミュレートしたときの動作を例に、図１２、図１３を用いて説明する。
【０１２３】
図１２において、実線矢印及び一点鎖線矢印の始点に付された英字は、データ書き込み処理をシミュレートしたときのイベントの符号を示し、当該英字の横の数字は、イベントの入出力される順番の一例を示している。
【０１２４】
図１３は、制御タイミング取り扱い部１０６ａ、制御タイミング取り扱い部１０６ｂ、データタイミング取り扱い部１０７、機能取り扱い部１０８のそれぞれにおけるイベント例を示している。
【０１２５】
図１３（ａ）は、制御タイミング取り扱い部１０６ａにおけるイベント例を示し、図１３（ｂ）は、制御タイミング取り扱い部１０６ｂにおけるイベント例を示している。図１３（ａ）、１３（ｂ）において、左端はイベントを示し、右端はイベントに対する返し値を示している。
【０１２６】
まず、図１２に示すように、ＣＰＵ２モデル１０２ｂが、バスモデル１０１に対しデータ書き込み要求を示す要求イベントＲＥＱ２を送信したとする。このとき、ＣＰＵ２モデル１０２ｂは、当該要求イベントの優先度を示す情報（優先度情報）を当該要求イベントＲＥＱ２に付加してバスモデル１０１に送信する。イベント受信部１０４は、ＣＰＵ２モデル１０２ｂより受信した要求イベントＲＥＱ２を、制御タイミング取り扱い部１０６ｂへ送信する。要求イベントＲＥＱ２は、図１３（ｂ）の３７１「ｒｅｑｕｅｓｔ」及び３７３「ｗｒｉｔｅ」で示されるイベントに対応する。優先度情報は、図１３（ｂ）の３７１「ｒｅｑｕｅｓｔ」で示されるイベントの数字「２」に対応する。この数字が小さいほど優先度が高くなる。
【０１２７】
制御タイミング取り扱い部１０６ｂは、イベント受信部１０４より「ｒｅｑｕｅｓｔ」の要求イベントＲＥＱ２を受信すると、図１３（ｂ）の３７２「ｃｈｅｃｋ」で示される送信権限要求イベントＣＨ２と優先度情報「２」とを調停部１０９に送信する。この段階では、調停部１０９は、もう一つの制御タイミング取り扱い部１０６ａより送信権限要求イベントを受け取っていない。即ち、バス１１ａに競合は発生していないと仮定してもよいので、調停部１０９は、制御タイミング取り扱い部１０６ｂに対し、通知イベントＲＡ２として送信権限許可を示す返し値「ｔｒｕｅ」を送信する。
【０１２８】
制御タイミング取り扱い部１０６ｂは、調停部１０９より送信権限許可を示す返し値「ｔｒｕｅ」を受信すると、図１３（ｂ）の３７３「ｗｒｉｔｅ」に示される要求イベントＲＥＱ２をイベント発信部１０５へ送信する。イベント発信部１０５は、制御タイミング取り扱い部１０６ｂより受信した「ｗｒｉｔｅ」の要求イベントＲＥＱ２をメモリモデル１０３へ送信する。
【０１２９】
メモリモデル１０３は、「ｗｒｉｔｅ」の要求イベントＲＥＱ２を受信すると、図１３（ｂ）の３７４「ａｃｋｎｏｗｌｅｇｄｅ」に示される応答イベントＡＣＫ２を、イベント発信部１０５を介して、制御タイミング取り扱い部１０６へ送信する。
【０１３０】
ここで、制御タイミング取り扱い部１０６ｂが要求イベントＲＥＱ２を送信してから応答イベントＡＣＫ２を受信するまでの間に、ＣＰＵ１モデル１０２ａが、バスモデル１０１に対しデータ書き込み要求を示す要求イベントＲＥＱ１を送信したとする。このとき、ＣＰＵ１モデル１０２ａは、当該要求イベントＲＥＱ１の優先度を示す情報（優先度情報）を当該要求イベントＲＥＱ１に付加してバスモデル１０１に送信する。イベント受信部１０４は、ＣＰＵ１モデル１０２ａより受信した要求イベントＲＥＱ１を、制御タイミング取り扱い部１０６ａへ送信する。このときのデータ書き込み要求を示す要求イベントＲＥＱ１は、図１３（ａ）の２７１「ｒｅｑｕｅｓｔ」及び２７３「ｗｒｉｔｅ」で示されるイベントに対応する。優先度情報は、図１３（ａ）の２７１「ｒｅｑｕｅｓｔ」のイベントの数字「１」に対応する。つまり、この場合、ＣＰＵ１モデル１０２ａより送信される制御イベントは、ＣＰＵ２モデル１０２ｂより送信される制御イベントよりも優先度が高くなっている。
【０１３１】
制御タイミング取り扱い部１０６ａは、イベント受信部１０４より「ｒｅｑｕｅｓｔ」の要求イベントＲＥＱ１を受信すると、図１３（ａ）の２７２「ｃｈｅｃｋ」で示される送信権限要求イベントＣＨ１と優先度情報「１」とを調停部１０９に送信する。このとき、調停部１０９は、既に、もう一つの制御タイミング取り扱い部１０６ｂに対し送信権限許可を与えている。そのため、調停部１０９は、制御タイミング取り扱い部１０６ａに対しては送信権限を許可しないこととし、通知イベントＲＡ１として「ｆａｌｓｅ」の返し値を送信する。調停部１０９は、制御タイミング取り扱い部１０６ｂに応答イベントＡＣＫ２が返信されるまで、制御タイミング取り扱い部１０６ａに対して送信権限を許可しない。
【０１３２】
一方、制御タイミング取り扱い部１０６ｂは、イベント発信部１０５より応答イベントＡＣＫ２を受信すると、図１３（ｂ）の３７５「ｃｈｅｃｋ」で示される送信権限要求イベントＣＨ２を調停部１０９に送信する。このとき、調停部１０９は、先に述べたように、制御タイミング取り扱い部１０６ａより送信権限要求イベントＣＨ１を受信している状態となっている。このとき、調停部１０９は、２つの制御タイミング取り扱い部１０６ａ、１０６ｂのうち、優先度の高い方のイベントを受け渡している制御タイミング取り扱い部に対して送信権限を許可することとする。つまり、調停部１０９は、優先度情報が「１」となっている制御イベントを受け渡している制御タイミング取り扱い部１０６ａに対し、図１３（ａ）の２７３に示すように、通知イベントＲＡ１として「ｔｒｕｅ」の返し値を送信する。また、調停部１０９は、優先度の低い方のイベントを受け渡している制御タイミング取り扱い部１０６ｂに対し、図１３（ｂ）の３７５に示すように、通知イベントＲＡ２として「ｆａｌｓｅ」の返し値を送信する。調停部１０９は、ＣＰＵ１モデル１０２ａとメモリモデル１０３との間における制御イベント及びデータイベントの入出力が終了するまで、図１３（ｂ）の３７６に示すように、優先度の低い方の制御タイミング取り扱い部１０６ｂには送信権限を許可しない。
【０１３３】
制御タイミング取り扱い部１０６ａは、調停部１０９より返し値「ｔｒｕｅ」を受信すると、図１３（ａ）の２７４「ｗｒｉｔｅ」に示される要求イベントＲＥＱ１をイベント発信部１０５へ送信する。イベント発信部１０５は、制御タイミング取り扱い部１０６ａより受信した「ｗｒｉｔｅ」の要求イベントＲＥＱ１をメモリモデル１０３へ送信する。
【０１３４】
メモリモデル１０３は、「ｗｒｉｔｅ」の要求イベントＲＥＱ１を受信すると、図１３（ａ）の２７５に示す「ａｃｋｎｏｗｌｅｇｄｅ」の応答イベントＡＣＫ１を、イベント発信部１０５を介して、制御タイミング取り扱い部１０６へ送信する。
【０１３５】
制御タイミング取り扱い部１０６ａは、イベント発信部１０５より「ａｃｋｎｏｗｌｅｇｄｅ」の応答イベントＡＣＫ１を受信すると、図１３（ａ）の２７６「ｃｈｅｃｋ」で示される送信権限要求イベントＣＨ１を調停部１０９に送信する。このとき、調停部１０９は、先に述べたように、制御タイミング取り扱い部１０６ｂより送信権限要求イベントＣＨ２を受信している状態となっている。そこで、調停部１０９は、優先度の高い方のイベントを受け渡している制御タイミング取り扱い部１０６ａに対し、通知イベントＲＡ１として、送信許可を示す返し値「ｔｒｕｅ」を送信する。
【０１３６】
制御タイミング取り扱い部１０６ａは、調停部１０９より返し値「ｔｒｕｅ」を受信すると、「ａｃｋｎｏｗｌｅｇｄｅ」の応答イベントＡＣＫ１をイベント受信部１０４へ送信する。イベント受信部１０４は、制御タイミング取り扱い部１０６ａより受信した応答イベントＡＣＫ１を、ＣＰＵ１モデル１０２ａへ送信する。
【０１３７】
図１３（ｃ）は、データタイミング取り扱い部１０７におけるイベント例を示している。図１３（ｃ）の２８１「ｓｅｎｄ」で示されるイベントは、ＣＰＵ１モデル１０２ａからデータタイミング取り扱い部１０７へ入力されるデータサイズ情報イベントであることを示している。図１３（ｃ）の３８１「ｓｅｎｄ」で示されるイベントは、ＣＰＵ２モデル１０２ｂからデータタイミング取り扱い部１０７へ入力されるデータサイズ情報イベントであることを示している。図１３（ｃ）の２８１、３８１における「１０００」、「３」はそれぞれ、データ書き込みの始点となるメモリアドレス及びデータサイズを示している。
【０１３８】
ＣＰＵ１モデル１０２ａは、イベント受信部１０４より応答イベントＡＣＫ１を受信すると、図１３（ｃ）の２８１「ｓｅｎｄ」で示されるデータサイズ情報イベントＤａｔａＳ１をイベント受信部１０４へ送信する。イベント受信部１０４は、データサイズ情報イベントＤａｔａＳ１を受信すると、データタイミング取り扱い部１０７へ当該データサイズ情報イベントＤａｔａＳ１を送信する。データタイミング取り扱い部１０７は、イベント受信部１０４より受信したデータサイズ情報イベントＤａｔａＳ１を、イベント発信部１０５へ送信する。イベント発信部１０５は、データタイミング取り扱い部１０７より受信したデータサイズ情報イベントＤａｔａＳ１を、メモリモデル１０３へ送信する。
【０１３９】
メモリモデル１０３は、イベント発信部１０５よりデータサイズ情報イベントＤａｔａＳ１を受信すると、図１３（ｃ）の２８２「ＥＯＤ１」で示されるＥＯＤイベント（ＥＯＤ１イベント）を、イベント発信部１０５を介して、データタイミング取り扱い部１０７へ送信する。データタイミング取り扱い部１０７は、イベント発信部１０５より受信したＥＯＤ１イベントをイベント受信部１０４に送信するとともに、調停部１０９に対し、送信権限を返還する旨を示す通知イベントＲＡ１ｒｔを送信する。イベント受信部１０４は、データタイミング取り扱い部１０７より受信したＥＯＤ１イベントをＣＰＵ１モデル１０２ａに送信する。
【０１４０】
調停部１０９は、データタイミング取り扱い部１０７より送信権限を返還する旨の通知イベントＲＡ１ｒｔを受信すると、ＣＰＵ１モデル１０２ａとメモリモデル１０３との間におけるイベントの入出力が全て終了したとみなす。そして、調停部１０９は、イベントの送信を待っている制御タイミング取り扱い部１０６ｂに対し、図１３（ｂ）の３７７に示すように、通知イベントＲＡ２として「ｔｒｕｅ」の返し値を送信する。制御タイミング取り扱い部１０６ｂは、調停部１０９より返し値「ｔｒｕｅ」を受信すると、「ａｃｋｎｏｗｌｅｇｄｅ」の応答イベントＡＣＫ２をイベント受信部１０４へ送信する。イベント受信部１０４は、制御タイミング取り扱い部１０６ｂより受信した「ａｃｋｎｏｗｌｅｇｄｅ」の応答イベントＡＣＫ２を、ＣＰＵ２モデル１０２ｂへ送信する。
【０１４１】
ＣＰＵ２モデル１０２ｂは、イベント受信部１０４より「ａｃｋｎｏｗｌｅｇｄｅ」の応答イベントＡＣＫ２を受信すると、図１３（ｃ）の３８１「ｓｅｎｄ」で示されるデータサイズ情報イベントＤａｔａＳ２をイベント受信部１０４へ送信する。イベント受信部１０４は、データサイズ情報イベントＤａｔａＳ２を受信すると、データタイミング取り扱い部１０７へ当該データサイズ情報イベントＤａｔａＳ２を送信する。データタイミング取り扱い部１０７は、イベント受信部１０４より受信したデータサイズ情報イベントＤａｔａＳ２を、イベント発信部１０５へ送信する。イベント発信部１０５は、データタイミング取り扱い部１０７より受信したデータサイズ情報イベントＤａｔａＳ２を、メモリモデル１０３へ送信する。
【０１４２】
メモリモデル１０３は、データサイズ情報イベントＤａｔａＳ２を受信すると、図１３（ｃ）の３８２「ＥＯＤ２」で示されるＥＯＤイベント（ＥＯＤ２イベント）を、イベント発信部１０５を介して、データタイミング取り扱い部１０７へ送信する。データタイミング取り扱い部１０７は、イベント発信部１０５より受信したＥＯＤ２イベントをイベント受信部１０４に送信するとともに、調停部１０９に対し、送信権限を返還する旨の通知イベントＲＡ２ｒｔを送信する。イベント受信部１０４は、データタイミング取り扱い部１０７より受信したＥＯＤイベントをＣＰＵ２モデル１０２ｂに送信する。
【０１４３】
図１３（ｄ）は、機能取り扱い部１０８におけるイベント例を示している。図１３（ｄ）の２９１「ｗｒｉｔｅ」で示されるイベントは、ＣＰＵ１モデル１０２ａからメモリモデル１０３へ送信されるデータ情報イベントである。図１３（ｄ）の３９１「ｗｒｉｔｅ」で示されるイベントは、ＣＰＵ２モデル１０２ｂからメモリモデル１０３へ送信されるデータ情報イベントである。図１３（ｄ）の２９１、３９１に示すデータ情報イベントにおいて、「１０００」、「３」は、メモリアドレス「１０００」からデータサイズ「３」個分書き込むことを示し、「５」、「１０」、「２」は書き込まれるデータを示している。
【０１４４】
ＣＰＵ１モデル１０２ａは、図１３（ｄ）の２９１に示す「ｗｒｉｔｅ」のデータ情報イベントＤａｔａＤ１を、イベント受信部１０４を介して、機能取り扱い部１０８へ送信する。機能取り扱い部１０８は、データ情報イベントＤａｔａＤ１を受信すると、当該データ情報イベントＤａｔａＤ１を、イベント発信部１０５を介して、メモリモデル１０３へ送信する。メモリモデル１０３は、イベント発信部１０５より受信した「ｗｒｉｔｅ」のデータ情報イベントＤａｔａＤ１におけるデータ「５」、「１０」、「２」をシミュレータの外部出力などに出力する。このようにして、データ書き込み処理が行われる場合において、ＣＰＵ１からメモリへのデータの受け渡し、ＣＰＵ２からメモリへのデータの受け渡しが、それぞれ正確に行われるか否かをシミュレートすることが可能となる。
【０１４５】
また、ＣＰＵ２モデル１０２ｂは、図１３（ｄ）の３９１に示す「ｗｒｉｔｅ」のデータ情報イベントＤａｔａＤ２を、イベント受信部１０４を介して、機能取り扱い部１０８へ送信する。機能取り扱い部１０８は、「ｗｒｉｔｅ」のデータ情報イベントＤａｔａＤ２を受信すると、当該データ情報イベントＤａｔａＤ２を、イベント発信部１０５を介して、メモリモデル１０３へ送信する。メモリモデル１０３は、イベント発信部１０５より受信した「ｗｒｉｔｅ」のデータ情報イベントＤａｔａＤ２におけるデータ「５」、「１０」、「２」をシミュレータの外部出力などに出力する。
【０１４６】
第２実施形態に係るシミュレーションモデルでは、調停部１０９は、ＣＰＵ１モデル１０２ａ、ＣＰＵ２モデル１０２ｂのそれぞれから送信された制御イベントについて、優先度の高い方のイベントに対し送信先への送信権限を与えている。また、調停部１０９は、優先度の高い方のイベントの入出力が全て終了するまで、優先度の低い方の制御イベントに対して送信権限を与えないこととしている。このように、第２実施形態に係るシミュレーションモデルでは、バス１１ａに競合が発生した場合におけるハードウェア２０の動作をシミュレートすることが可能である。以下では、上述のデータ書き込み処理をシミュレートした場合における時間情報を得る方法について説明する。
【０１４７】
図１４は、データ書き込みの場合におけるシミュレーションモデルの動作のタイミングチャートを示している。図１４では、ＣＰＵ１とメモリコントローラ１３ｂとの間での入出力における時間情報Δｔｗ１〜Δｔｗ７をそれぞれ、時間情報Δｔｗ１（Ｃ１）〜Δｔ
ｗ７（Ｃ１）として示し、ＣＰＵ２とメモリコントローラ１３ｂとの間での入出力における時間情報Δｔｗ１〜Δｔｗ７をそれぞれ、時間情報Δｔｗ１（Ｃ２）〜Δｔｗ７（Ｃ２
）として示している。図１５は、データ書き込み処理が行われる場合におけるΔｔｗ１〜
Δｔｗ７の時間を決める要素を示す表である。以下で具体的に述べる。
【０１４８】
まず、ＣＰＵ２モデル１０２ｂは、バスモデル１０１に対し、優先度情報を付加した要求イベントＲＥＱ２を送信する。
【０１４９】
バスモデル１０１において、制御タイミング取り扱い部１０６ｂは、イベント受信部１０４より要求イベントＲＥＱ２を受信すると、送信権限要求イベントＲＡ２と優先度情報「２」とを調停部１０９に送信する。この段階では、調停部１０９は、もう一つの制御タイミング取り扱い部１０６ａより何らイベントを受け取っていないので、制御タイミング取り扱い部１０６ｂに対し、送信権限許可を示す返し値「ｔｒｕｅ」を送信する。制御タイミング取り扱い部１０６ｂは、調停部１０９より返し値「ｔｒｕｅ」を受信すると、要求イベントＲＥＱ２とともに時間情報Δｔｗ１（Ｃ２）を、イベント発信部１０５を介し
てメモリモデル１０３へ送信する。時間情報Δｔｗ１（Ｃ２）は、ハードウェア２０にお
いて、ＣＰＵ２が要求信号を送信するのを待つ待ち時間に対応し、バスにおける競合の有無により変化する。しかしながら、このとき、バスには競合が発生していないとみなしてもよい。従って、時間情報Δｔｗ１（Ｃ２）は、図５の時間情報Δｔｗ１と同様、実験な
どにより予め決められた固定値に設定される。
【０１５０】
メモリモデル１０３は、要求イベントＲＥＱ２及び時間情報Δｔｗ１（Ｃ２）をバスモ
デル１０１より受信すると、バスモデル１０１に対し応答イベントＡＣＫ２を送信する。このとき、メモリモデル１０３は、応答イベントＡＣＫ２とともに、時間情報Δｔｗ１（
Ｃ２）に時間情報Δｔｗ２（Ｃ２）を加えた時間情報ΔＣ２ｔ１＿２をバスモデル１０１
に送信する。ここで、時間情報Δｔｗ２（Ｃ２）は、図５の時間情報Δｔｗ２と同様、ハ
ードウェア２０において、メモリコントローラ１３ｂが要求信号を受信してから応答信号を送信する準備を完了するまでの処理時間に対応し、実験などにより予め決められた固定値に設定される。バスモデル１０１において、イベント発信部１０５は、応答イベントＡＣＫ２及び時間情報ΔＣ２ｔ１＿２を制御タイミング取り扱い部１０６ｂへ送信する。
【０１５１】
ここで、制御タイミング取り扱い部１０６ｂがデータ書き込み要求イベントＲＥＱ２を送信してから応答イベントＡＣＫ２を受信するまでの間に、ＣＰＵ１モデル１０２ａが、優先度情報を付加した要求イベントＲＥＱ１をバスモデル１０１に対し送信する。
【０１５２】
バスモデル１０１において、制御タイミング取り扱い部１０６ａは、イベント受信部１０４より要求イベントＲＥＱ１を受信すると、送信権限要求イベントＲＡ１と優先度情報「１」とを調停部１０９に送信する。ここで、調停部１０９は、既に、制御タイミング取り扱い部１０６ｂに対し送信権限を与えているので、制御タイミング取り扱い部１０６ａに対しては送信権限を許可しない。つまり、このときは、図１４に示すように、ハードウェア２０では、ＣＰＵ２が送信権限を得ている状態に対応する。
【０１５３】
この後、制御タイミング取り扱い部１０６ｂは、イベント発信部１０５より応答イベントＡＣＫ２を受信すると、送信権限要求イベントＲＡ２を調停部１０９に送信する。
【０１５４】
送信権限要求イベントＲＡ１、ＲＡ２を受信している調停部１０９は、優先度の高い方の制御イベントを受け渡している制御タイミング取り扱い部１０６ａに送信権限を許可する。調停部１０９は、ＣＰＵ１モデル１０２ａとメモリモデル１０３との間における制御イベント及びデータサイズ情報イベントの入出力が終了するまで、優先度の低い方の制御イベントを受け渡している制御タイミング取り扱い部１０６ｂに送信権限を許可しない。つまり、このことは、図１４に示すように、ハードウェア２０において、ＣＰＵ２からＣＰＵ１へと送信権限が移ったことを示している。このように、ＲＥＱが発信され、処理の途中でスレッドの入れ替えが可能であるのは、制御タイミングモデルとデータタイミングモデルを、別々にトランザクションモデリングを行っているためである。
【０１５５】
制御タイミング取り扱い部１０６ａは、調停部１０９より送信許可を得ると、要求イベントＲＥＱ１とともに、時間情報Δｔｗ１（Ｃ１）を、イベント発信部１０５を介してメ
モリモデル１０３へ送信する。時間情報Δｔｗ１（Ｃ１）は、ハードウェア２０において
、ＣＰＵ１が要求信号を送信するのを待つ待ち時間に対応し、バスにおける競合の有無により変化する。このとき、時間情報Δｔｗ１は、時間情報Δｔｗ２（Ｃ２）から時間情報
Δｔｗ０（Ｃ１）を引いた値として求められる。ここで、時間情報Δｔｗ０（Ｃ１）は、
ＣＰＵ２が要求信号をメモリコントローラ１１ｂに送信してからＣＰＵ１が調停回路１１ｂに送信権限要求を示す信号を送信するまでの時間である。なお、時間情報Δｔｗ０（Ｃ
１）は、優先度の高いＲＥＱ１がバスモデル１０１に渡されるタイミングに応じて変化してよい情報である。
【０１５６】
メモリモデル１０３は、要求イベントＲＥＱ１及び時間情報Δｔｗ１（Ｃ１）をバスモ
デル１０１より受信すると、バスモデル１０１に対し応答イベントＡＣＫ１を送信する。このとき、メモリモデル１０３は、応答イベントＡＣＫ１とともに、時間情報Δｔｗ１（
Ｃ１）に時間情報Δｔｗ２（Ｃ１）を加えた時間情報ΔＣ１ｔ１＿２をバスモデル１０１
に送信する。ここで、時間情報Δｔｗ２は、ハードウェア２０において、メモリコントロ
ーラ１３ｂが要求信号を受信してから応答信号を送信する準備を完了するまでの処理時間に対応し、実験などにより予め決められた固定値に設定される。
【０１５７】
バスモデル１０１において、制御タイミング取り扱い部１０６ａは、応答イベントＡＣＫ１及び時間情報ΔＣ１ｔ１＿２を受信すると、送信権限要求ＲＡ１を調停部１０９に送
信して、送信権限許可を得る。制御タイミング取り扱い部１０６ａは、調停部１０９より送信許可を得ると、応答イベントＡＣＫ１とともに、時間情報ΔＣ１ｔ１＿２に時間情報
Δｔｗ３（Ｃ１）を加えた時間情報ΔＣ１ｔ１＿３を、イベント発信部１０５を介して、
ＣＰＵ１モデル１０２ａへ送信する。ここで、時間情報Δｔｗ３（Ｃ１）は、ハードウェ
ア２０において、メモリコントローラ１３ｂがＣＰＵ１に対し応答信号を送信するのを待つ待ち時間に対応し、バスにおける競合の有無により変化する。しかし、先にも述べたように、制御タイミング取り扱い部１０６ａが受け渡すイベントは、制御タイミング取り扱い部１０６ｂが受け渡すイベントよりも優先度が高い。従って、時間情報Δｔｗ３（Ｃ１
）は、図５の時間情報Δｔｗ３と同様、実験などにより予め決められた固定値に設定され
る。
【０１５８】
ＣＰＵ１モデル１０２ａは、応答イベントＡＣＫ１及び時間情報ΔＣ１ｔ１＿３をバス
モデル１０１より受信すると、バスモデル１０１に対しデータサイズ情報ＤａｔａＳ１を送信する。ここで、ＣＰＵ１モデル１０２ａは、データサイズ情報ＤａｔａＳ１とともに、時間情報ΔＣ１ｔ１＿３に時間情報Δｔｗ４（Ｃ１）を加えた時間情報ΔＣ１ｔ１＿４
をバスモデル１０１に送信する。ここで、時間情報Δｔｗ４（Ｃ１）は、図５の時間情報
Δｔｗ４と同様、ハードウェア２０において、ＣＰＵ１が応答信号を受信してからデータ
を含むデータ信号を送信するまでの処理時間に対応する。具体的には、時間情報Δｔｗ４
（Ｃ１）は、ＣＰＵ１が当該データ信号を用意する時間とＣＰＵ１がバス１１ａにデータを含むデータ信号を出力する時間とを足したものに対応する。時間情報Δｔｗ４（Ｃ１）
は、１データ当たりの処理時間にデータサイズ情報を掛けることによって求められる。ここで、１データ当たりの処理時間は、実験などにより予め決められた固定値に設定される。
【０１５９】
バスモデル１０１において、データタイミング取り扱い部１０７は、ＣＰＵモデル１０２より受信したデータサイズ情報ＤａｔａＳ１とともに、時間情報ΔＣ１ｔ１＿５を、イ
ベント発信部１０５を介してメモリモデル１０３へ送信する。ここで、時間情報ΔＣ１ｔ
１＿５は、時間情報ΔＣ１ｔ１＿４に時間情報Δｔｗ５（Ｃ１）を加えた時間情報である
。ここで、時間情報Δｔｗ５（Ｃ１）は、図５の時間情報Δｔｗ５と同様、ハードウェア
２０において、データを含むデータ信号をバス１１ａで送信するのにかかる送信時間に対応する。時間情報Δｔｗ５は、１データ当たりの送信時間にデータサイズ情報を掛けるこ
とによって求められる。ここで、１データ当たりの送信時間は、実験などにより予め決められた固定値に設定される。
【０１６０】
メモリモデル１０３は、データサイズ情報イベントＤａｔａＳ１及び時間情報ΔＣ１ｔ
１＿５をバスモデル１０１より受信すると、バスモデル１０１に対しＥＯＤ１イベントを送信する。このとき、メモリモデル１０３は、ＥＯＤ１イベントとともに、時間情報ΔＣ
１ｔ１＿５に時間情報Δｔｗ６（Ｃ１）を加えた時間情報ΔＣ１ｔ１＿６をバスモデル１
０１に送信する。ここで、時間情報Δｔｗ６（Ｃ１）は、図５の時間情報Δｔｗ６と同様
、ハードウェア２０において、データがメモリ１３ａに書き込まれるのにかかる処理時間に対応する。具体的には、時間情報Δｔｗ６（Ｃ１）は、メモリモデル１０３が１データ
当たりのメモリへの書き込み時間にデータサイズ情報を掛けることによって求められる。ここで、１データ当たりのメモリへの書き込み時間は、実験などにより予め決められた固定値に設定される。
【０１６１】
バスモデル１０１において、データタイミング取り扱い部１０７は、メモリモデル１０２よりＥＯＤ１イベント及び時間情報ΔＣ１ｔ１＿６を受信すると、調停部１０９に対し
、送信権限を返還する旨の通知を行う。そして、データタイミング取り扱い部１０７は、ＥＯＤイベントとともに、時間情報ΔＣ１ｔ１＿６に時間情報Δｔｗ７（Ｃ１）を加えた
時間情報ΔＣ１ｔ１＿７を、イベント受信部１０４を介してＣＰＵモデル１０２へ送信す
る。ここで、時間情報Δｔｗ７（Ｃ１）は、図５の時間情報Δｔｗ７と同様、ハードウェ
ア２０において、処理終了信号をバス１１ａで送信するのにかかる送信時間に対応する。なお、時間情報Δｔｗ７は、実験などにより予め決められた固定値に設定される。このよ
うにしこのようにして求められた時間情報ΔＣ１ｔｗ１＿７が、ＣＰＵ１がデータ書き込
み要求を出力してから処理終了信号を得るまでの時間に対応する。
【０１６２】
調停部１０９は、データタイミング取り扱い部１０７より送信権限を返還する旨の通知を受信すると、制御タイミング取り扱い部１０６ｂによる処理を再開させるため、制御タイミング取り扱い部１０６ｂに送信権限を与える。つまり、このことは、図１４に示すように、ハードウェア２０において、ＣＰＵ１からＣＰＵ２へと送信権限が移ったことを示している。
【０１６３】
制御タイミング取り扱い部１０６ｂは、送信権限を調停部１０９より得ると、応答イベントＡＣＫ２とともに、時間情報ΔＣ２ｔ１＿２に時間情報Δｔｗ３（Ｃ２）を加えた時
間情報ΔＣ２ｔ１＿３を、イベント発信部１０５を介して、ＣＰＵ２モデル１０２ｂへ送
信する。ここで、時間情報Δｔｗ３（Ｃ２）は、ハードウェア２０において、メモリコン
トローラ１３ｂがＣＰＵ２に対し応答信号を送信するのを待つ待ち時間に対応し、バスにおける競合の有無により変化する。具体的には、時間情報Δｔｗ３（Ｃ２）は、Δｔｗ２
（Ｃ１）、Δｔｗ３（Ｃ１）、Δｔｗ４（Ｃ１）、Δｔｗ５（Ｃ１）、Δｔｗ６（Ｃ１）
、Δｔｗ７（Ｃ１）の合計である。つまり、第２実施形態に係るシミュレーションモデル
では、優先度の低い方の制御信号の送信待ち時間は、当該優先度の低い方の制御信号が送信待ちをしている間にやりとりされた優先度の高い方の制御信号及びデータ信号の時間情報の合計として求められる。
【０１６４】
ＣＰＵ２モデル１０２ｂは、応答イベントＡＣＫ２及び時間情報ΔＣ２ｔ１＿３をバス
モデル１０１より受信すると、バスモデル１０１に対しデータサイズ情報ＤａｔａＳ２を送信する。ここで、ＣＰＵ２モデル１０２ｂは、データサイズ情報ＤａｔａＳ２とともに、時間情報ΔＣ２ｔ１＿３に時間情報Δｔｗ４（Ｃ２）を加えた時間情報ΔＣ２ｔ１＿４
をバスモデル１０１に送信する。ここで、時間情報Δｔｗ４（Ｃ２）は、図５の時間情報
Δｔｗ４と同様、ハードウェア２０において、ＣＰＵ２が応答信号を受信してからデータ
を含むデータ信号を送信するまでの処理時間に対応する。具体的には、時間情報Δｔｗ４
（Ｃ２）は、ＣＰＵ２が当該データ信号を用意する時間とＣＰＵ２がバス１１ａに当該データ信号を出力する時間とを足したものに対応する。時間情報Δｔｗ４（Ｃ２）は、１デ
ータ当たりの処理時間にデータサイズ情報を掛けることによって求められる。ここで、１データ当たりの処理時間は、実験などにより予め決められた固定値に設定される。
【０１６５】
バスモデル１０１において、データタイミング取り扱い部１０７は、ＣＰＵモデル１０２より受信したデータサイズ情報ＤａｔａＳ２とともに、時間情報ΔＣ２ｔ１＿４に時間
情報Δｔｗ５（Ｃ２）を加えた時間情報ΔＣ２ｔ１＿５を、イベント発信部１０５を介し
てメモリモデル１０３へ送信する。ここで、時間情報Δｔｗ５（Ｃ２）は、図５の時間情
報Δｔｗ５と同様、ハードウェア２０において、データ信号をバス１１ａで送信するのに
かかる送信時間に対応する。時間情報Δｔｗ５は、１データ当たりの送信時間にデータサ
イズ情報を掛けることによって求められる。ここで、１データ当たりの送信時間は、実験などにより予め決められた固定値に設定される。
【０１６６】
メモリモデル１０３は、データサイズ情報ＤａｔａＳ２及び時間情報ΔＣ２ｔ１＿５を
バスモデル１０１より受信すると、バスモデル１０１に対しＥＯＤ２イベントを送信する。このとき、メモリモデル１０３は、ＥＯＤ２イベントとともに、時間情報ΔＣ２ｔ１＿
５に時間情報Δｔｗ６（Ｃ２）を加えた時間情報ΔＣ２ｔ１＿６をバスモデル１０１に送
信する。ここで、時間情報Δｔｗ６（Ｃ２）は、図５の時間情報Δｔｗ６と同様、ハード
ウェア２０において、データがメモリ１３ａに書き込まれるのにかかる処理時間に対応する。具体的には、時間情報Δｔｗ６（Ｃ２）は、メモリモデル１０３が１データ当たりの
メモリへの書き込み時間にデータサイズ情報を掛けることによって求められる。ここで、１データ当たりのメモリへの書き込み時間は、実験などにより予め決められた固定値に設定される。
【０１６７】
バスモデル１０１において、データタイミング取り扱い部１０７は、メモリモデル１０２よりＥＯＤイベント及び時間情報ΔＣ２ｔ１＿６を受信すると、調停部１０９に対し、
送信権限を返還する旨の通知を行う。そして、データタイミング取り扱い部１０７は、ＥＯＤイベントとともに、時間情報ΔＣ２ｔ１＿６に時間情報Δｔｗ７（Ｃ２）を加えた時
間情報ΔＣ２ｔ１＿７を、イベント受信部１０４を介してＣＰＵモデル１０２へ送信する
。ここで、時間情報Δｔｗ７（Ｃ２）は、図５の時間情報Δｔｗ７と同様、ハードウェア
２０において、処理終了信号をバス１１ａで送信するのにかかる送信時間に対応する。なお、時間情報Δｔｗ７は、実験などにより予め決められた固定値に設定される。このよう
にしこのようにして求められた時間情報ΔＣ２ｔｗ１＿７が、ＣＰＵ２がデータ書き込み
要求を出力してから処理終了信号を得るまでの時間に対応する。
【０１６８】
以上に述べたように、第２実施形態に係るシミュレーションモデルでは、ＣＰＵ１モデル１０２ａ、ＣＰＵ２モデル１０２ｂのそれぞれから送信された制御イベントについて、優先度の高い方の制御イベントに対し送信先への送信権限が与えられる。また、優先度の高い方の制御イベント及び当該制御イベントに応じたデータサイズ情報イベントの入出力が全て終了するまで、優先度の低い方の制御イベントには、送信権限が与えられないこととしている。このようにすることで、バス１１ａに２つのＣＰＵ１、２が接続されることによりバスに競合が発生した状態をシミュレートすることができる。
【０１６９】
また、第２実施形態に係るシミュレーションモデルでは、優先度の低い方の制御イベントが送信待ちをしている間において、優先度の高い方の制御イベント及び当該制御イベントに応じたデータサイズ情報イベントの入出力において得られた時間情報の合計が算出される。このようにすることで、優先度の低い方の制御イベントについての待ち時間情報が得られる。従って、第２実施形態に係るシミュレーションモデルでは、ＣＰＵ１、ＣＰＵ２のそれぞれがデータ書き込み要求を出力してから処理終了信号を得るまでの時間情報Δ
Ｃ１ｔｗ１＿７、ΔＣ２ｔｗ１＿７を得ることができる。
【０１７０】
また、第２実施形態に係るシミュレーションモデルでは、メモリへのデータ書き込み処理をシミュレートした場合の例について述べたが、これに限られるものではない。代わりに、メモリからのデータ読み出し処理をシミュレートした場合であっても、上述したのと同様の方法を取ることにより、バスに競合が発生した状態をシミュレートすることができるのは言うまでもない。
【０１７１】
さらに、第２実施形態に係るシミュレーションモデルでは、バス１１ａに２つのＣＰＵ１、２が接続された状態をシミュレートした例について述べたが、これに限られるものではない。この代わりに、３つ以上のＣＰＵがバスに接続された場合であっても上述したのと同様の方法をとることが可能である。この場合には、調停部は、複数のＣＰＵモデルのそれぞれから送信された制御イベントについて、最も優先度の高い制御イベントから順に送信先への送信権限を与える。例えば、調停部は、所定の制御イベントについて、当該所定の制御イベントよりも優先度の高い制御イベント及び当該制御イベントに応じたデータサイズ情報イベントの入出力が終了するまで、当該所定の制御イベントには送信権限を与えないこととする。ここで、当該所定の制御イベントが送信待ちをしている間に、当該所定の制御イベントよりも優先度の高い制御イベント及び当該制御イベントに応じたデータサイズ情報イベントの入出力において得られた時間情報の合計が算出される。この算出された時間情報の合計が、当該任意の制御イベントについての待ち時間情報となる。
【０１７２】
なお、実チップでは、競合が高い頻度で発生する。実チップにおいて競合が発生しない場合と同じような振る舞いになる従来のシミュレーションモデルと比較して、上述する実施形態により精度が高くなる。
【０１７３】
［変形例］
上述の各実施形態では、ＣＰＵとメモリコントローラ間における制御信号及びデータ信号の入出力をシミュレートした例について述べたが、機能ブロックとしてはＣＰＵとメモリコントローラに限られるものではないのは言うまでもない。例えば、ＤＭＡコントローラとメモリコントローラとの間における制御信号及びデータ信号の入出力をシミュレータした場合であっても、上述の各実施形態を適用可能である。即ち、ＣＰＵとメモリコントローラ以外のマスター及びスレーブのそれぞれとして機能する複数の機能ブロック間で入出力される制御信号及びデータ信号の入出力をシミュレートした場合にも、上述の各実施形態で述べた方法は適用可能である。
【０１７４】
図１６は、変形例に係るシミュレーションモデルの具体的な構成の一例を示すブロック図である。
【０１７５】
第１実施形態の図３及び図７、第２実施形態の図１２の説明で述べたことから分かるように、バスモデルにおける機能取り扱い部の動作は、制御タイミング取り扱い部及びデータタイミング取り扱い部の動作とは独立している。従って、シミュレーションモデルを、制御タイミングモデル及びデータタイミングモデルと、機能モデルとに分けて実行するとしても良い。具体的には、シミュレーションモデルのプログラムを、制御タイミングモデル及びデータタイミングモデルが実行されるスレッドと、機能モデルが実行されるスレッドとに分けて実行することができる。
【０１７６】
図１６は、図３に示したシミュレーションモデルを、制御タイミングモデル及びデータタイミングモデルが実行されるスレッドと、機能モデルが実行されるスレッドとに分けたときの具体的な構成の一例を示している。
【０１７７】
ＣＰＵモデル１０２ｘ、バスモデル１０１ｘ、メモリモデル１０３ｘを有するシミュレーションモデルは、制御タイミングモデル及びデータタイミングモデルを実行する。バスモデル１０１ｘは、制御タイミング取り扱い部１０６、データタイミング取り扱い部１０７、調停部１０９を有している。ＣＰＵモデル１０２ｘとメモリモデル１０３ｘとの間ではバスモデル１０１ｘを介して制御イベント及びデータサイズ情報イベントの入出力が行われる。ＣＰＵモデル１０２ｙ、バスモデル１０１ｙ、メモリモデル１０３ｙを有するシミュレーションモデルは、機能モデルを実行する。バスモデル１０１ｙは、機能取り扱い部１０８を有している。ＣＰＵモデル１０２ｙとメモリモデル１０３ｙとの間ではバスモデル１０１ｙを介してデータ情報イベントの入出力が行われる。この２つのシミュレーションモデルがそれぞれスレッドとして別々に動作することにより、制御タイミングモデル及びデータタイミングモデルと、機能モデルとを並列に実行することができ、シミュレーションモデル全体の実行時間を短縮することが可能となる。
【０１７８】
なお、実施形態は、上述した各実施形態の例に限られるものではなく、特許請求の範囲及び明細書全体から読み取れる発明の要旨あるいは思想に反しない範囲で適宜変更可能である。
以上説明した実施形態に関して、更に以下の付記を開示する。
【０１７９】
（付記１）
ハードウェアに対応するシミュレーションモデルに含まれる複数の機能ブロック間で入出力される制御信号の入力のタイミングを出力する制御タイミングモデル部と、
前記制御信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記制御信号の転送期間を算出する制御信号転送期間算出部と、
前記制御信号に対応するデータ信号であって、前記複数の機能ブロック間で入出力されるデータ信号の入力のタイミングを出力するデータタイミングモデル部と、
前記データ信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記データ信号の転送期間を算出するデータ信号転送期間算出部と
を備えることを特徴とする性能評価装置。
（付記２）
前記制御信号が入力された前記機能ブロックにおける前記制御信号の処理時間を示す時間情報を算出する制御信号処理時間算出部と、を有することを特徴とする付記１に記載の性能評価装置。
（付記３）
前記データ信号が入力された前記機能ブロックにおける前記データ信号の処理時間を示す時間情報を算出するデータ信号処理時間算出部と、を有することを特徴とする付記１又は２に記載の性能評価装置。
（付記４）
前記データタイミングモデル部は、前記複数の機能ブロックモデル間において、前記データイベントとしてデータサイズ情報を示すイベントであるデータサイズ情報イベントの入出力を行い、
前記データ信号転送期間算出部は、前記データサイズ情報に１データ当たりの送信時間を掛けることにより、前記データ信号の送信時間を示す時間情報を算出し、
前記データ信号処理時間算出部は、前記データサイズ情報に１データ当たりの処理時間を掛けることにより、前記データ信号の処理時間を示す時間情報を算出することを特徴とする付記３に記載の性能評価装置。
（付記５）
前記シミュレーションモデルは、前記複数の機能ブロックのうち、マスターとして動作する機能ブロックと、前記マスターとバスを介して接続され、スレーブとして動作する機能ブロックとを含むハードウェアをモデル化したものであり、
前記制御タイミングモデル部は、前記マスターとして動作する機能ブロックをモデル化したマスターモデル部と、前記スレーブとして動作する機能ブロックをモデル化したスレーブモデル部との間で、前記バスをモデル化したバスモデル部を介して前記制御イベントの入出力を行い、
前記データタイミングモデル部は、前記マスターモデル部と前記スレーブモデル部との間で前記バスモデル部を介して前記データイベントの入出力を行うモデルであることを特徴とする付記１乃至４のいずれか一項に記載の性能評価装置。
（付記６）
前記シミュレーションモデルは、前記バスに接続された前記マスターを複数有するハードウェアをモデル化したものであり、
前記バスモデル部は、前記複数のマスターのそれぞれと前記スレーブとの間で入出力される前記制御信号の前記バスにおける競合を調停する調停回路をモデル化した調停部を有し、
前記調停部は、前記バスモデル部が受信した前記制御イベントに対し、当該制御イベントよりも優先度の高い制御イベントの入出力が終了してから、送信先への送信を許可することを特徴とする付記５に記載の性能評価装置。
（付記７）
前記制御信号転送期間算出部は、前記制御信号の待ち時間を示す時間情報として、当該制御信号の送信待ちの間に入出力された制御信号及びデータ信号の時間情報の合計を算出することを特徴とする付記６に記載の性能評価装置。
（付記８）
前記制御タイミングモデル部及び前記データタイミングモデル部が並列に実行されることを特徴とする付記１乃至７のいずれか一項に記載の性能評価装置。
（付記９）
コンピュータが実行する、シミュレーションプログラムであって、
前記コンピュータを、ハードウェアに対応するシミュレーションモデルに含まれる複数の機能ブロック間で入出力される制御信号の入力のタイミングを出力する制御タイミングモデル部として機能させ、
前記制御信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記制御信号の転送期間を算出する制御信号転送期間算出部として機能させ、
前記制御信号に対応するデータ信号であって、前記複数の機能ブロック間で入出力されるデータ信号の入力のタイミングを出力するデータタイミングモデル部として機能させ、
前記データ信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記データ信号の転送期間を算出するデータ信号転送期間算出部として機能させる
ことを特徴とするシミュレーションプログラム。
（付記１０）
ハードウェアに対応するシミュレーションモデルに含まれる複数の機能ブロック間で入出力される制御信号の入力のタイミングを出力し、
前記制御信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記制御信号の転送期間を算出し、
前記制御信号に対応するデータ信号であって、前記複数の機能ブロック間で入出力されるデータ信号の入力のタイミングを出力し、
前記データ信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記データ信号の転送期間を算出する
ことを特徴とする性能評価方法。
【図面の簡単な説明】
【０１８０】
【図１】第１実施形態に係るシミュレーションモデルの対象となるハードウェアの構成の一例を示すブロック図である。
【図２】第１実施形態に係るシミュレーションモデルのシミュレート方法を示す概略図である。
【図３】第１実施形態に係るシミュレーションモデルの具体的な構成の一例を示すブロック図である。
【図４】データ書き込み処理の場合における各モデル動作手段のそれぞれのイベント例を示した図である。
【図５】データ書き込みの場合におけるシミュレーションモデルの動作のタイミングチャートである。
【図６】データ書き込み処理が行われる場合における時間情報を決める要素を示す表図である。
【図７】第１実施形態に係るシミュレーションモデルの具体的な構成の一例を示すブロック図である。
【図８】データ読み出し処理の場合における各モデル動作手段のそれぞれのイベント例を示した図である。
【図９】データ読み出し処理をシミュレートした場合におけるシミュレーションモデルの動作のタイミングチャートである。
【図１０】データ読み出し処理が行われる場合における時間情報を決める要素を示す表図である。
【図１１】第２実施形態に係るシミュレーションモデルの対象となるハードウェアの構成の一例を示すブロック図である。
【図１２】第２実施形態に係るシミュレーションモデルの構成の一例を示すブロック図である。
【図１３】データ書き込み処理の場合における各モデル動作手段のそれぞれのイベント例を示した図である。
【図１４】データ書き込みの場合におけるシミュレーションモデルの動作のタイミングチャートである。
【図１５】データ書き込み処理が行われる場合における時間情報を決める要素を示す表図である。
【図１６】変形例に係るシミュレーションモデルの具体的な構成の一例を示すブロック図である。
【符号の説明】
【０１８１】
１０１  バスモデル
１０２  ＣＰＵモデル
１０３  メモリモデル
１０４  イベント受信部
１０５  イベント発信部
１０６  制御タイミング取り扱い部
１０７  データタイミング取り扱い部
１０８  機能取り扱い部
【図１】
2010146292.tif 000003
【図２】
2010146292.tif 000004
【図３】
2010146292.tif 000005
【図４】
2010146292.tif 000006
【図５】
2010146292.tif 000007
【図６】
2010146292.tif 000008
【図７】
2010146292.tif 000009
【図８】
2010146292.tif 000010
【図９】
2010146292.tif 000011
【図１０】
2010146292.tif 000012
【図１１】
2010146292.tif 000013
【図１２】
2010146292.tif 000014
【図１３】
2010146292.tif 000015
【図１４】
2010146292.tif 000016
【図１５】
2010146292.tif 000017
【図１６】
2010146292.tif 000018