JP5347482B2 - 性能評価装置、性能評価方法及びシミュレーションプログラム - Google Patents

性能評価装置、性能評価方法及びシミュレーションプログラム Download PDF

Info

Publication number
JP5347482B2
JP5347482B2 JP2008322807A JP2008322807A JP5347482B2 JP 5347482 B2 JP5347482 B2 JP 5347482B2 JP 2008322807 A JP2008322807 A JP 2008322807A JP 2008322807 A JP2008322807 A JP 2008322807A JP 5347482 B2 JP5347482 B2 JP 5347482B2
Authority
JP
Japan
Prior art keywords
event
data
model
output
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008322807A
Other languages
English (en)
Other versions
JP2010146292A (ja
Inventor
真澄 堀田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2008322807A priority Critical patent/JP5347482B2/ja
Priority to US12/636,295 priority patent/US8688428B2/en
Publication of JP2010146292A publication Critical patent/JP2010146292A/ja
Application granted granted Critical
Publication of JP5347482B2 publication Critical patent/JP5347482B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

論理回路を有するハードウェアに対応するシミュレーションモデルを用いて、ハードウェアの性能評価を行う性能評価装置、性能評価方法及びシミュレーションプログラムに関する。
論理回路等を有するハードウェアの設計には非常に時間がかかるため、先行してそれに代わる擬似モデルを作成し、シミュレーションを行い、ハードウェアの評価を行うことにより、先行してソフトウェアの開発、仕様の不具合回避、性能確認を行うことが行われる。
シミュレーションの具体的な方法としては、ハードウェアに含まれるプロセッサやバスなどの機能ブロック毎に動作モデルを作成し、それらを統合して、ハードウェア全体の動作を模擬するシミュレーションモデルを作成する方法が挙げられる。ここで、動作モデルとしては、クロックモデル、トランザクションモデル、機能モデルなどが挙げられる。これらの動作モデルは、それぞれの抽象度が以下のように互いに異なっている。
クロックモデルは、クロック毎の信号レベルでの動作を記述した動作モデルであり、クロックレベルでハードウェアの動作と一致する。そのため、クロックモデルは、主に詳細な動作検証を行うために用いられる。トランザクションモデルは、複数の信号により表される1つの処理(トランザクション)毎に動作をまとめて記述した動作モデルであり、ハードウェア全体としての動作検証に用いられる。機能モデルは、入力データに対する動作を記述した動作モデルである。
ここで、ハードウェアの性能評価には、多くの機能を高い精度で、かつ、高速に検証されることが求められている。しかしながら、ハードウェアの性能評価では、精度を高めようとすると速度が遅くなるという、精度と速度がトレードオフの関係となっている。例えば、全ての機能ブロックをクロックモデルでモデル化して精度を高めようとすると、クロック毎に演算が行われることとなり、性能評価に膨大な時間がかかってしまう。また、全ての機能ブロックをモデル化すると、モデリング量が膨大となるため、モデル生成の早期実現を図ることが難しくなる。そこで、ハードウェア全体の一部の機能のみを詳細に評価検証したいときには、抽象度の異なるモデルを組み合わせてシミュレーションを行う方法が考えられる。このようなシミュレーションを行うときの一つの方法として、例えば、トランザクションモデルと機能モデルとを分けて、それぞれ別々に評価を実施する技術が提案されている。
特開2004−21907号公報
シミュレートの対象となるハードウェアでは、制御信号及びデータ信号が入出力されるが、データ信号及び制御信号のそれぞれの入出力のタイミングが考慮されない場合に、シミュレーションモデルを用いたハードウェアの性能評価の精度が低下する。
開示の装置は、ハードウェアに対応するシミュレーションモデルに含まれる複数の機能ブロック間で入出力される制御信号の入出力タイミングをモデル化した制御タイミングモデルであって、各機能ブロックにおける制御信号の出力に要する待ち時間を示す時間情報を含む制御タイミングモデルを用いて、複数の機能ブロック間の制御信号の入出力に係るイベントである第1のイベントの入出力を行い、第1のイベントにおいて、機能ブロックに入力された第1の制御信号に応じて第2の制御信号を出力するときに第1の制御信号に伴い入力された時間情報の時間値に第2の制御信号に対応した時間情報の時間値を加算して当該機能ブロックから出力し、複数の機能ブロック間で入出力されるデータの入出力タイミングをモデル化したデータタイミングモデルであって、データ自体は含まずデータのデータサイズ情報を入出力するデータタイミングモデルを用いて、複数の機能ブロック間のデータサイズ情報の入出力に係るイベントである第2のイベントの入出力を行い、第2のイベントにおいて、機能ブロックに入出力されるデータサイズ情報に基づき当該機能ブロックにおけるデータの転送時間を算出し、第2のイベントに伴い入力された時間情報の時間値に転送時間の時間値を加算して当該機能ブロックから出力し、第1及び第2のイベントで機能ブロックにおいて時間値が加算された時間情報に基づきハードウェアの性能を評価する処理をコンピュータが実行する
開示の装置によれば、データ信号及び制御信号のそれぞれの入出力のタイミングを考慮した性能評価を行うことが可能となるため、性能評価の精度が向上する。
以下では、実施形態の一例について図面を参照しつつ説明する。
[第1実施形態]
まず、第1実施形態に係るシミュレーションモデルについて図1〜図3を参照して説明する。
図1は、第1実施形態に係るシミュレーションモデルの対象となるハードウェアの構成の一例を示すブロック図である。
第1実施形態に係るシミュレーションモデルの対象となるハードウェア10は、例えば、CPU(Central Processing Unit)1、バス11a、調停回路11b、メモリ13a、メモリコントローラ13bを有する。CPU1、調停回路11b、メモリ13a、メモリコントローラ13bは、バス11aを介して互いに接続されている。
CPU1は、バス11aを介してメモリコントローラ13bと制御信号及びデータ信号の入出力を行う。メモリコントローラ13bは、バス11aを介してCPU1と制御信号及びデータ信号の入出力を行うとともに、メモリ13aへのデータの書き込み又はメモリ13aからのデータの読み出しを行う。調停回路11bは、バス11aにおける制御信号の競合を調整するための回路である。CPU1又はメモリコントローラ13bは、調停回路11bから送信許可を得ることにより、バス11aを介して、制御信号を送信先に送信する。
まず、シミュレーションモデルの対象となるハードウェア10における実際の処理、具体的には、メモリ13aへのデータの書き込み処理、及び、メモリ13aからのデータの読み出し処理について簡単に説明する。
最初に、CPU1は、データ書き込み処理又はデータ読み出し処理のいずれの場合であっても、バス11aを介してメモリコントローラ13bと制御信号(要求信号及び応答信号)の入出力を行う。
具体的には、CPU1は、バス11aを介して、メモリコントローラ13bに対し、メモリ13aへデータを書き込むための要求信号、又は、メモリ13aからデータを読み込むための要求信号を送信する。要求信号を受信したメモリコントローラ13bは、バス11aを介して、CPU1に対し応答信号を送信する。
より詳細には、CPU1は、メモリコントローラ13bに要求信号を送信する前に、送信権限要求を示す信号を調停回路11bに送信する。CPU1は、調停回路11bより送信権限許可を示す信号を受信すると、バス11aを介して、要求信号をメモリコントローラ13bに送信する。CPU1よりデータ書き込み要求信号又はデータ読み出し要求信号を受信したメモリコントローラ13bは、応答信号を生成した後、送信権限要求を示す信号を調停回路11bに送信する。メモリコントローラ13bは、調停回路11bより送信権限許可を示す信号を受信すると、バス11aを介して、生成した応答信号をCPU1に送信する。
CPU1は、メモリコントローラ13bより応答信号を受信すると、バス11aを介してメモリコントローラ13bとデータ信号の入出力を行う。
具体的には、CPU1は、メモリ13aへデータを書き込む場合には、データを含むデータ信号をメモリコントローラ13bに送信する。メモリコントローラ13bは、データを含むデータ信号を受信すると、データをメモリ13aへ書き込む。メモリコントローラ13bは、メモリ13aへのデータの書き込みが終了すると、処理終了を示す処理終了信号をCPU1へ送信し、メモリ13aへのデータ書き込み処理が終了する。
一方、CPU1は、メモリ13aよりデータを読み込む場合には、データアドレス及びデータサイズを含むデータ信号をメモリコントローラ13bへ送信する。メモリコントローラ13bは、データアドレス及びデータサイズを含むデータ信号を受信すると、当該データアドレス及び当該データサイズを基に、データをメモリ13aから読み出した後、読み出したデータをCPU1に送信する。メモリコントローラ13bは、メモリ13aから読み出したデータをCPU1に送信し終えると、処理終了信号をCPU1に送信し、メモリ13aからのデータ読み出し処理が終了する。
図2は、第1実施形態に係るシミュレーションモデルのシミュレート方法を示す概略図である。
図2に示すように、第1実施形態に係るシミュレーションモデルは、少なくとも、制御タイミングモデル、データタイミングモデル、機能モデルを有し、制御タイミングモデル、データタイミングモデルはトランザクションモデリングを行っている。トランザクションモデルはクロックモデルに比べ、モデリング工数が少ないので、モデルの早期構築に繋がる。なお機能モデルはオプションであり、機能モデルが無くとも、制御タイミングモデル、データタイミングモデルの2つのシミュレーション結果を得て、性能評価をすることも可能である。ここで、制御タイミングモデルは、CPU1やメモリコントローラ13bなどの機能ブロックにおける制御信号の入出力のタイミングをモデル化したものである。データタイミングモデルは、機能ブロックにおけるデータ信号の入出力のタイミングをモデル化したものである。これら制御タイミングモデル及びデータタイミングモデルは、例えば、機能ブロック間で入出力される制御信号及びデータ信号の入出力にかかる時間を評価するために用いられる。
機能モデルは、データ信号のデータ部分を機能ブロックに入力又は機能ブロックより出力したときの動作をモデル化したものである。この機能モデルは、例えば、機能ブロック間で、データ自体の受け渡しが正確に行われるか否かを評価するためのモデルである。
第1実施形態に係るシミュレーションモデルは、制御タイミングモデル、データタイミングモデル、機能モデルのそれぞれについてシミュレートを行い、その結果を統合することにより、ハードウェアの評価を行う。以下で具体的に説明する。
図3は、第1実施形態に係るシミュレーションモデルの具体的な構成の一例を示すブロック図である。
第1実施形態に係るシミュレーションモデルは、図1に示したハードウェア10のシミュレーションモデルであり、例えば、少なくとも演算部及び記憶部を有するコンピュータなどのシミュレータ上で動作するプログラムとして提供される。このシミュレーションモデルのプログラムがシミュレータ上で動作することにより、ハードウェア10における各機能ブロックをモデル化した各構成要素がスレッドとして動作し、互いにイベントを入出力する。このように、シミュレーションモデルのプログラムがシミュレータ上で動作することにより性能評価装置が実現される。
なお、シミュレータは、例えば、記憶部に格納されたシミュレーションモデルに対応するプログラムを、演算部に読み出して実行することによりシミュレーションを行い、シミュレーションの結果をシミュレータに接続された表示部に表示させてもよい。記憶部に格納されたシミュレーションモデルに対応するプログラムは、CD−ROM(CD−R、CD−RW)、MO、DVD(Digital Versatile Disk)、又はメモリーカード等の記憶媒体、又はプラグアンドプレイなどによって接続可能な外部記憶装置から記憶部へロードしてもよい。また、シミュレータがネットワークに接続可能な通信装置を備えている場合、ネットワークを介してプログラムをダウンロードしてもよい。なお、演算部としてCPUやMPU等の処理装置を適用し,記憶部としてROM、RAM、HDD(ハードディスクドライブ)等の一般的な記憶装置を適用してよい。
第1実施形態に係るシミュレーションモデルは、バスモデル101と、CPUモデル102と、メモリモデル103とを有する。具体的には、バスモデル101は、ハードウェア10におけるバス11a及び調停回路11bをモデル化したものである。CPUモデル102は、ハードウェア10におけるCPU1をモデル化したものである。メモリモデル103は、ハードウェア10におけるメモリ13a及びメモリコントローラ13bをモデル化したものである。
第1実施形態に係るシミュレーションモデルでは、主に、CPUモデル102とメモリモデル103とが、バスモデル101を介して、制御信号を示すイベント(制御イベント)及びデータ信号を示すイベント(データイベント)を入出力する。図3において、実線矢印はデータ書き込み処理をシミュレートしたときのイベントの流れを示している。
バスモデル101は、イベント受信部104と、イベント発信部105と、制御タイミング取り扱い部106と、データタイミング取り扱い部107と、機能取り扱い部108と、調停部109とを有する。制御タイミング取り扱い部106、データタイミング取り扱い部107、機能取り扱い部108は、バスモデル101におけるモデル動作手段である。
イベント受信部104は、CPUモデル102からイベントを受信し、イベントの内容を解析する。そして、イベント受信部104は、イベントの内容に応じて、制御タイミング取り扱い部106、データタイミング取り扱い部107、機能取り扱い部108のうちのいずれかのモデル動作手段に当該イベントを送信する。具体的には、CPUモデル102からイベント受信部104に送信されるイベントには、いずれのモデル動作手段に送信するかを示す識別子が予め付加されており、イベント受信部104は、当該識別子に基づいて、受信したイベントをいずれかのモデル動作手段に送信する。
例えば、イベント受信部104は、CPUモデル102より受信したイベントのうち、制御信号(要求信号及び応答信号)を示す制御イベントを制御タイミング取り扱い部106に送信する。また、イベント受信部104は、CPUモデル102より受信したイベントのうち、データ自体を含まず、かつ、データサイズ情報を含むデータイベント(データサイズ情報イベント)をデータタイミング取り扱い部107に送信する。一方、イベント受信部104は、CPUモデル102より受信したイベントのうち、データ自体を含むデータイベント(データ情報イベント)を機能取り扱い部108に送信する。
また、イベント受信部104は、制御タイミング取り扱い部106、データタイミング取り扱い部107、機能取り扱い部108のそれぞれからイベントを受信し、受信したイベントをCPUモデル102に送信する。
制御タイミング取り扱い部106は、ハードウェア10におけるCPU1−メモリコントローラ13b間でバス11aを介して入出力される制御信号の入出力のタイミングをモデル化したモデル動作手段である。具体的には、制御タイミング取り扱い部106は、CPUモデル102とメモリモデル103との間における制御イベントの受け渡しを行う。制御タイミング取り扱い部106は、制御イベントの受け渡しを行う際に、調停部109に対し、当該制御イベントを送信先に送信する権限を要求する(送信権限要求)。そして、制御タイミング取り扱い部106は、調停部109より送信権限を受けたときに、当該制御イベントを送信先に送信する。CPUモデル102とメモリモデル103との間で制御タイミング取り扱い部106を介して制御イベントが入出力されることで、制御タイミングモデルが実現される。
データタイミング取り扱い部107は、ハードウェア10におけるCPU1−メモリコントローラ13b間でバス11aを介して入出力されるデータ信号の入出力をモデル化したモデル動作手段である。具体的には、データタイミング取り扱い部107は、CPUモデル102とメモリモデル103との間におけるデータサイズ情報イベントの受け渡しを行う。CPUモデル102とメモリモデル103との間でデータタイミング取り扱い部107を介してデータサイズ情報イベントが入出力されることで、データ信号の入出力のタイミングがモデル化されたデータタイミングモデルが実現される。
機能取り扱い部108は、データ信号のデータがCPU1又はメモリ13aに入力されたときの動作をモデル化したモデル動作手段である。具体的には、機能取り扱い部108は、CPUモデル102とメモリモデル103との間におけるデータ情報イベントの受け渡しを行う。CPUモデル102とメモリモデル103との間で機能取り扱い部108を介してデータ情報イベントが入出力されることで、データ信号のデータ部分をメモリに入出力したときの動作をモデル化した機能モデルが実現される。
調停部109は、ハードウェア10における調停回路11bをモデル化したものである。調停部109は、制御タイミング取り扱い部106より送信権限要求を受けると、当該制御タイミング取り扱い部106に送信権限を与えるか否かについて判定する。調停部109は、当該制御タイミング取り扱い部106に対し、送信権限を与える場合には送信権限を与える旨の通知を行い、送信権限を与えない場合には送信権限を与えない旨の通知を行う。具体的には、調停部109は、制御タイミング取り扱い部106とは異なる他の制御タイミング取り扱い部からも送信権限要求を受けた場合には、バスの競合が発生しているものとみなす。この場合、調停部109は、優先度の最も高い制御イベントを送信する制御タイミング取り扱い部にのみ送信権限を与えることとする。第1実施形態に係るシミュレーションモデルでは、バスに1つのCPUしか接続されていないハードウェアをシミュレートしているので、バスには競合が発生していないものと仮定してもよい。従って、第1実施形態に係るシミュレーションモデルでは、調停部109は、制御タイミング取り扱い部106より送信権限要求を受けると、当該制御タイミング取り扱い部106に対し送信権限を与える旨の通知を行う。
イベント発信部105は、制御タイミング取り扱い部106、データタイミング取り扱い部107、機能取り扱い部108よりイベントを受信し、受信したイベントをメモリモデル103に送信する。また、イベント発信部105は、メモリモデル103からイベントを受信し、イベントの内容に応じて、制御タイミング取り扱い部106、データタイミング取り扱い部107、機能取り扱い部108のうち、いずれかのモデル動作手段に当該イベントを送信する。例えば、イベント発信部105は、制御イベントを制御タイミング取り扱い部106に送信し、データサイズ情報イベントをデータタイミング取り扱い部107に送信し、データ情報イベントを機能取り扱い部108に送信する。
上述したように、第1実施形態に係るシミュレーションモデルでは、バスモデル101は、モデル動作手段として、制御タイミング取り扱い部106、データタイミング取り扱い部107、機能取り扱い部108を有する。CPUモデル102とメモリモデル103との間で制御タイミング取り扱い部106を介して制御イベントが入出力されることで、制御タイミングモデルが実現される。CPUモデル102とメモリモデル103との間でデータタイミング取り扱い部107を介してデータサイズ情報イベントが入出力されることで、データタイミングモデルが実現される。CPUモデル102とメモリモデル103との間で機能取り扱い部108を介してデータ情報イベントが入出力されることで、機能モデルが実現される。
このように、第1実施形態に係るシミュレーションモデルは、制御信号の入出力のタイミングをモデル化した制御タイミングモデルと、データ信号の入出力のタイミングをモデル化したデータタイミングモデルとを有している。このようにすることで、データ信号及び制御信号のそれぞれの入出力のタイミングを考慮した性能評価を行うことが可能となり、性能評価の精度を高めることができる。以下では、メモリへのデータ書き込み処理、メモリからのデータ読み出し処理をシミュレートした場合の例を用いてシミュレーションモデルの動作について具体的に説明する。
(メモリへのデータ書き込み処理)
まず、CPU1がバス11aを介してメモリ13aにデータを書き込む処理をシミュレートしたときのシミュレーションモデルの動作について図3及び図4を用いて説明する。図3において、実線矢印はデータ書き込み処理をシミュレートしたときのイベントの流れを示している。また、実線矢印の始点に付された英字は、データ書き込み処理をシミュレートしたときのイベントの符号を示し、当該英字の横の数字は、制御タイミング取り扱い部106及びデータタイミング取り扱い部107を介したイベントの入出力される順番を示している。
図4は、データ書き込み処理をシミュレートした場合における、制御タイミング取り扱い部106、データタイミング取り扱い部107、機能取り扱い部108のそれぞれでのイベント例を示している。
図4(a)は、制御タイミング取り扱い部106におけるイベント例を示している。図4(a)において、左端はイベントを示し、右端はイベントに対する返し値を示している。
図3に示すように、CPUモデル102は、バスモデル101に対しデータ書き込み要求を示す要求イベントREQを送信する。具体的には、CPUモデル102は、要求イベントREQとして、図4(a)の171「request」及び173「write」に示されるイベントをイベント受信部104に送信する。バスモデル101において、イベント受信部104は、CPUモデル102より受信した要求イベントREQを、制御タイミング取り扱い部106に送信する。
制御タイミング取り扱い部106は、図4(a)の171「request」に示される要求イベントREQを受信すると、送信権限要求を調停部109に対して行う。具体的には、制御タイミング取り扱い部106は、図4(a)の172「check」で示される送信権限要求イベントCHを調停部109に送信する。
調停部109は、制御タイミング取り扱い部106より送信権限要求イベントCHを受信すると、制御タイミング取り扱い部106に対し送信権限を与えるか否かについて判定し、その結果を通知イベントRAとして、制御タイミング取り扱い部106に送信する。具体的には、調停部109は、制御タイミング取り扱い部106に対し、送信権限を与える場合には、通知イベントRAとして、送信権限を許可する旨を示す「true」の返し値を送信する。一方、調停部109は、制御タイミング取り扱い部106に対し、送信権限を与えない場合には、通知イベントRAとして、送信権限を与えない旨を示す「false」の返し値を送信する。先にも述べたように、第1実施形態では、バスの競合が発生していないと仮定しているので、このとき、調停部109は、制御タイミング取り扱い部106に対し、通知イベントRAとして「true」の返し値を送信する。
制御タイミング取り扱い部106は、調停部109より「true」の返し値を受信すると、図4(a)の173「write」に示される要求イベントREQをイベント発信部105へ送信する。この「write」のイベントにおける数字は、データ書き込みの始点となるメモリアドレス及び書き込まれるデータサイズを示している。具体的には、「1000」、「3」の数字は、メモリアドレス「1000」からデータ「3」個分書き込まれることを示している。イベント発信部105は、制御タイミング取り扱い部106より受信した要求イベントREQをメモリモデル103へ送信する。
メモリモデル103は、「write」の要求イベントREQを受信すると、図4(a)の174「acknowlegde」で示される応答イベントACKをイベント発信部105に送信する。イベント発信部105は、メモリモデル103より受信した応答イベントACKを、制御タイミング取り扱い部106へ送信する。
制御タイミング取り扱い部106は、「acknowlegde」の応答イベントACKを受信すると、再度、送信権限要求イベントCHを調停部109に送信する。具体的には、制御タイミング取り扱い部106は、図4(a)の175「check」で示される送信権限要求イベントを調停部109に送信する。第1実施形態では、バスの競合がないと仮定しているので、このとき、調停部109は、通知イベントRAとして「true」の返し値を制御タイミング取り扱い部106に送信する。
制御タイミング取り扱い部106は、調停部109より「true」の返し値を受信すると、応答イベントACKをイベント受信部104へ送信する。イベント受信部104は、制御タイミング取り扱い部106より受信した応答イベントACKを、CPUモデル102へ送信する。
図4(b)は、データタイミング取り扱い部107におけるイベント例を示している。図4(b)の176「send」で示されるイベントは、データタイミング取り扱い部107へ入力されるデータサイズ情報イベントであることを示し、「1000」、「3」はそれぞれ、データ書き込みの始点となるメモリアドレス及び書き込まれるデータサイズを示している。
CPUモデル102は、イベント受信部104より応答イベントACKを受信すると、図4(b)の176「send」に示されるデータサイズ情報イベントDataSをイベント受信部104へ送信する。つまり、このとき、CPUモデル102は、ハードウェア10での実際の動作とは異なり、データを含むデータ情報イベントをバスモデル101に送信するのではなく、データを含まないデータサイズ情報イベントをバスモデル101に送信する。イベント受信部104は、データサイズ情報イベントDataSを受信すると、データタイミング取り扱い部107へ当該イベントDataSを送信する。データタイミング取り扱い部107は、イベント受信部104より受信したデータサイズ情報イベントDataSを、イベント発信部105へ送信する。イベント発信部105は、データタイミング取り扱い部107より受信したデータサイズ情報イベントDataSを、メモリモデル103へ送信する。
メモリモデル103は、データサイズ情報イベントDataSを受信すると、図4(b)の177「EOD」に示される処理終了信号のイベント(EODイベント)をイベント発信部105に送信する。イベント発信部105は、メモリモデル103より受信したEODイベントを、データタイミング取り扱い部107へ送信する。
データタイミング取り扱い部107は、イベント発信部105より受信したEODイベントをイベント受信部104に送信するとともに、調停部109に対し、送信権限を返還する旨を通知する通知イベントRArtを送信する。イベント受信部104は、データタイミング取り扱い部107より受信したEODイベントをCPUモデル102に送信する。
このように、データタイミング取り扱い部107を介したイベントの入出力では、データサイズを示すイベントであるデータサイズ情報イベントの入出力がされるのであって、データ自体を含むイベントの入出力がされるのではない。このようにデータサイズ情報イベントの入出力がされるとすることで、データ自体を含むデータ情報イベントの入出力がされる場合と比較して、制御タイミングモデル及びデータタイミングモデルの実行にかかる時間を短縮することが可能となる。
図4(c)は、機能取り扱い部108におけるイベント例を示している。図4(c)の178「write」で示されるイベントは、データを実際に書き込む処理を示すイベントであり、データを含むデータ情報イベントとなっている。このデータ情報イベントにおいて、「1000」、「3」は、メモリアドレス「1000」からデータサイズ「3」個分書き込むことを示し、「5」、「10」、「2」は書き込まれるデータを示している。
CPUモデル102は、イベント受信部104に対し、図4(c)の178「write」で示されるデータ情報イベントDataDWを送信し、イベント受信部104は、CPUモデル102より受信したデータ情報イベントDataDWを機能取り扱い部108へと送信する。
機能取り扱い部108は、イベント受信部104より受信したデータ情報イベントDataDWをイベント発信部105へと送信する。イベント発信部105は、機能取り扱い部108より受信したデータ情報イベントDataDWを、メモリモデル103へ送信する。メモリモデル103は、イベント発信部105より受信したデータ情報イベントDataDWにおけるデータ「5」、「10」、「2」をシミュレータの外部出力などに出力する。このようにして、データ書き込み処理が行われる場合において、データ自体の受け渡しが正確に行われるか否かをシミュレートすることが可能となる。
以上では、CPU1がバス11aを介してメモリ13aにデータを書き込む処理をシミュレートしたときのシミュレーションモデルの動作について説明した。ここで、第1実施形態に係るシミュレーションモデルでは、CPU1とメモリコントローラ13bとの間におけるバスを介して入出力される制御信号及びデータ信号のそれぞれについて、入出力にかかる時間を示す時間情報を得ることが可能である。以下では、上述のデータ書き込み処理をシミュレートした場合における時間情報を得る方法について説明する。
図5は、データ書き込み処理の場合におけるシミュレーションモデルの動作のタイミングチャートを示している。図5において、Δtw1〜Δtw3が制御信号についての時間
情報を示し、Δtw4〜Δtw7がデータ信号についての時間情報を示している。図6は
、データ書き込み処理が行われる場合におけるΔtw1〜Δtw7の時間を決める要素を
示す表である。以下で具体的に述べる。
まず、CPUモデル102は、バスモデル101に対し、メモリモデル103への書き込み要求イベントREQを送信する。
バスモデル101において、制御タイミング取り扱い部106は、書き込み要求イベントREQを受信すると、送信権限要求イベントCHを調停部109に送信する。制御タイミング取り扱い部106は、調停部109より送信権限を許可する旨の通知イベントRAを受けると、書き込み要求イベントREQとともに時間情報Δtw1をメモリモデル10
3へ送信する。ここで、時間情報Δtw1は、ハードウェア10において、CPU1が要
求信号を送信するのを待つ待ち時間に対応する。具体的には、時間情報Δtw1は、CP
U1が調停回路11bに対し送信権限要求を送信してから当該調停回路11bより送信権限を得て要求信号を送信するまでの時間に対応する。従って、時間情報Δtw1は、バス
11aの競合の有無により変化する。第1実施形態では、バスに競合が発生していないと仮定しているので、時間情報Δtw1は実験などにより予め決められた固定値に設定され
る。なお、固定値は、シミュレータのメモリなどに予め記憶されている。
メモリモデル103は、書き込み要求イベントREQ及び時間情報Δtw1をバスモデ
ル101より受信すると、バスモデル101に対し応答イベントACKを送信する。このとき、メモリモデル103は、応答イベントACKとともに、時間情報Δtw1に時間情
報Δtw2を加えた時間情報Δtw1_2をバスモデル101に送信する。ここで、時間
情報Δtw2は、ハードウェア10において、メモリコントローラ13bが要求信号を受
信してから応答信号を送信する準備を完了するまでの処理時間に対応する。時間情報Δt
w2は、実験などにより予め決められた固定値に設定される。
バスモデル101において、制御タイミング取り扱い部106は、応答イベントACK及び時間情報Δtw1_2を受信すると、再度、調停部109に対し送信権限要求イベン
トCHを送信する。制御タイミング取り扱い部106は、調停部109より送信権限を許可する旨の通知イベントRAを受信すると、応答イベントACKとともに、時間情報Δt
w1_2に時間情報Δtw3を加えた時間情報Δtw1_3をCPUモデル102へ送信
する。ここで、時間情報Δtw3は、ハードウェア10において、メモリコントローラ1
3bが応答信号を送信するのを待つ待ち時間に対応する。具体的には、時間情報Δtw3
は、メモリコントローラ13bが調停回路11bに対し送信権限要求を行ってから当該調停回路11bより送信権限を得て応答イベントACKを送信するまでの時間に対応する。従って、時間情報Δtw3は、バス11aの競合の有無により変化する。第1実施形態で
は、バスに競合が発生していないと仮定しているので、時間情報Δtw3は、実験などに
より予め決められた固定値に設定される。
このようにして求められた時間情報Δtw1_3が、ハードウェア10において、デー
タ書き込み処理の際における制御信号の入出力にかかる時間情報となる。
CPUモデル102は、応答イベントACK及び時間情報Δtw1_3をバスモデル1
01より受信すると、バスモデル101に対しデータサイズ情報イベントDataSを送信する。このとき、CPUモデル102は、データサイズ情報イベントDataSとともに、時間情報Δtw1_3に時間情報Δtw4を加えた時間情報Δtw1_4をバスモデ
ル101に送信する。ここで、時間情報Δtw4は、ハードウェア10において、CPU
1が応答信号を受信してからデータを含むデータ信号を送信するまでの処理時間に対応する。具体的には、時間情報Δtw4は、CPU1がデータを含むデータ信号を用意する時
間とCPU1がバス11aに当該データ信号を出力する時間とを足したものに対応する。時間情報Δtw4は、1データ当たりの処理時間にデータサイズ情報を掛けることによっ
て求められる。ここで、1データ当たりの処理時間は、実験などにより予め決められた固定値に設定される。
バスモデル101において、データタイミング取り扱い部107は、CPUモデル102より受信したデータサイズ情報イベントDataSとともに、時間情報Δtw1_4に
時間情報Δtw5を加えた時間情報Δtw1_5をメモリモデル103へ送信する。ここ
で、時間情報Δtw5は、ハードウェア10において、データ信号をバス11aで送信す
るのにかかる送信時間に対応する。時間情報Δtw5は、1データ当たりの送信時間にデ
ータサイズ情報を掛けることによって求められる。ここで、1データ当たりの送信時間は、実験などにより予め決められた固定値に設定される。
メモリモデル103は、データサイズ情報イベントDataS及び時間情報Δtw1_
5をバスモデル101より受信すると、バスモデル101に対しEODイベントを送信する。このとき、メモリモデル103は、EODイベントとともに、時間情報Δtw1_5
に時間情報Δtw6を加えた時間情報Δtw1_6をバスモデル101に送信する。ここ
で、時間情報Δtw6は、ハードウェア10において、データがメモリ13aに書き込ま
れるのにかかる処理時間に対応する。具体的には、時間情報Δtw6は、1データ当たり
のメモリへの書き込み時間にデータサイズ情報を掛けることによって求められる。ここで、1データ当たりのメモリへの書き込み時間は、実験などにより予め決められた固定値に設定される。
バスモデル101において、データタイミング取り扱い部107は、メモリモデル103より受信したEODイベントとともに、時間情報Δtw1_6に時間情報Δtw7を加
えた時間情報Δtw1_7を、イベント受信部104を介してCPUモデル102へ送信
する。ここで、時間情報Δtw7は、ハードウェア10において、処理終了信号をバス1
1aで送信するのにかかる送信時間に対応する。なお、時間情報Δtw7は、実験などに
より予め決められた固定値に設定される。
このようにして求められた時間情報Δtw1_7が、ハードウェア10でデータ書き込
み処理にかかるトータルの時間(CPU1がデータ書き込み要求を出力してから処理終了信号を得るまでの時間)に対応する。つまり、CPUモデル102は、EODイベントを受信したときに、メモリへのデータ書き込み処理にかかるトータルの時間を時間情報Δt
w1_7として得ることができる。なお、このうち、時間情報Δtw4〜Δtw7までの
合計した時間情報は、データ書き込み処理の際におけるデータ信号の入出力にかかる時間に対応する。
このように、時間情報を次々に渡していけるのは、CPUモデルからバスモデル間、バスモデルからメモリモデル間、メモリモデルからバスモデル間、バスモデルからCPUモデル間・・・で実行される処理(トランザクション)を、それぞれ別々にトランザクションモデリングを行っているためで、これによりトランザクションモデルからトランザクションモデルへと時間情報を渡すことが可能となる。
以上に述べたことから分かるように、第1実施形態に係るシミュレーションモデルは、例えば、制御信号の入出力のタイミングがモデル化された制御タイミングモデルと、データ信号の入出力のタイミングがモデル化されたデータタイミングモデルとを有している。そして、制御タイミングモデルでは、CPUモデル102、バスモデル101における制御タイミング取り扱い部106、メモリモデル103により制御信号の入出力にかかった時間が算出される。具体的には、制御タイミング取り扱い部106は時間情報Δtw1、
Δtw3を算出し、メモリモデル103は時間情報Δtw2を算出する。データ書き込み
処理の場合において、ハードウェア10におけるCPU1−メモリコントローラ13b間における制御信号の転送期間は、例えば時間情報Δtw1、Δtw3に対応し、制御信号
の処理時間は、例えば時間情報Δtw2に対応する。従って、制御信号転送期間算出部は
、例えば制御タイミング取り扱い部106に対応し、制御信号処理時間算出部は、例えばメモリモデル103に対応する。また、データタイミングモデルでは、CPUモデル102、バスモデル101におけるデータタイミング取り扱い部107、メモリモデル103によりデータ信号の入出力にかかった時間が算出される。具体的には、データタイミング取り扱い部106は、時間情報Δtw5、Δtw7を算出し、CPUモデル102、メモ
リモデル103はそれぞれ、時間情報Δtw4、Δtw6を算出する。データ書き込み処
理の場合において、ハードウェア10におけるCPU1−メモリコントローラ13b間におけるデータ信号の転送期間は、例えば時間情報Δtw5、Δtw7に対応し、データ信
号の処理時間は、例えば時間情報Δtw4、Δtw6に対応する。従って、データ信号転
送期間算出部は、例えばデータタイミング取り扱い部106に対応し、データ信号処理時間算出部は、例えばCPUモデル102、メモリモデル103に対応する。
ここで、一般的なシミュレーションモデルでは、データ書き込み要求を示す要求イベントが、CPUモデルからバスモデルを介してメモリモデルに送信された際に、メモリモデルによりデータ書き込み時間が算出される。例えば、メモリモデルは、図4の173「write」で示されるイベントを受信したときに、データ書き込み時間を算出する。そして、メモリモデルは、応答イベントとEODイベントとをバスを介してCPUモデルに送信する。つまり、一般的なシミュレーションモデルでは、データ信号及び制御信号のそれぞれの入出力のタイミングを考慮して時間情報を算出していない。
それに対し、第1実施形態に係るシミュレーションモデルでは、データ書き込み処理をシミュレートする場合において、データ信号及び制御信号のそれぞれの入出力のタイミングを考慮して、時間情報を算出している。具体的には、第1実施形態に係るシミュレーションモデルでは、ハードウェアにおける制御信号及びデータ信号のそれぞれの入出力と同様に、制御信号を示すイベント及びデータ信号を示すイベントの入出力を行っている。そして、第1実施形態に係るシミュレーションモデルでは、それぞれのイベントの入出力がされる間に制御信号についての時間情報、データ信号についての時間情報をそれぞれ算出している。そのため、第1実施形態に係るシミュレーションモデルは、一般的なシミュレーションモデルと比較して、シミュレートの対象となるハードウェアにより近いモデルとなり、データ書き込み処理にかかるトータルの時間を、精度を高めて算出することができる。
また、第1実施形態に係るシミュレーションモデルでは、データ信号を示すイベントの入出力としてデータサイズ情報イベントの入出力を行うこととし、当該データサイズ情報イベントを基に、データ送信時間の時間情報Δtw5、データ信号処理時間の時間情報Δ
tw4、Δtw6を算出している。これにより、データ情報イベントの入出力を行う場合
と比較して、シミュレーション時間を短縮することが可能となる。
(メモリからのデータ読み出し処理)
次に、CPU1がバス11aを介してメモリ13aからデータを読み込む処理をシミュレートしたときのシミュレーションモデルの動作について図7及び図8を用いて説明する。
図7は、図3と同様、第1実施形態に係るシミュレーションモデルの具体的な構成の一例を示すブロック図である。ただし、図7では、図3と異なり、実線矢印はデータ読み出しをシミュレートしたときのイベントの流れを示している。また、実線矢印の始点に付された英字は、データ読み出し処理をシミュレートしたときのイベントの符号を示している。当該英字の横の数字は、制御タイミング取り扱い部106及びデータタイミング取り扱い部107を介したイベントの入出力される順番を示している。
図8は、データ読み出し処理をモデル化した場合において、制御タイミング取り扱い部106、データタイミング取り扱い部107、機能取り扱い部108のそれぞれにおけるイベント例を示している。
図8(a)は、制御タイミング取り扱い部106におけるイベント例を示している。図8(a)において、左端はイベントを示し、右端はイベントに対する返し値を示している。
図7に示すように、CPUモデル102は、バスモデル101に対しデータ読み出し要求を示す要求イベントREQを送信する。具体的には、CPUモデル102は、イベント受信部104に対し図8(a)の181「request」及び183「read」で示されるイベントを送信する。バスモデル101において、イベント受信部104は、CPUモデル102より受信した要求イベントREQを、制御タイミング取り扱い部106に送信する。
制御タイミング取り扱い部106は、図8(a)の181「request」で示される要求イベントREQを受信すると、送信権限要求イベントCHを調停部109に送信する。具体的には、制御タイミング取り扱い部106は、図8(a)の182「check」で示されるイベントを調停部109に送信する。
調停部109は、制御タイミング取り扱い部106より送信権限要求イベントCHを受信すると、制御タイミング取り扱い部106に対し送信権限を与えるか否かについて判定する。第1実施形態では、バスの競合が発生していないと仮定しているので、調停部109は、制御タイミング取り扱い部106に対し、通知イベントRAとして「true」の返し値を送信する。
制御タイミング取り扱い部106は、調停部109より「true」の返し値を受信すると、図8(a)の183「read」で示される要求イベントREQをイベント発信部105へ送信する。この「read」のイベントにおける数字は、データ読み出しの始点となるメモリアドレス及び読み出されるデータサイズを示している。具体的には、「1000」、「3」の数字は、メモリアドレス「1000」からデータ「3」個分読み出されることを示している。イベント発信部105は、制御タイミング取り扱い部106より受信した要求イベントREQをメモリモデル103へ送信する。
メモリモデル103は、イベント発信部105より要求イベントREQを受信すると、図8(a)の184「acknowlegde」で示される応答イベントACKをイベント発信部105に送信する。イベント発信部105は、メモリモデル103より受信した応答イベントACKを、制御タイミング取り扱い部106へ送信する。
制御タイミング取り扱い部106は、「acknowlegde」の応答イベントACKを受信すると、再度、送信権限要求イベントCHを調停部109に送信する。具体的には、制御タイミング取り扱い部106は、図8(a)の185「check」で示されるイベントを調停部109に送信する。第1実施形態では、バスの競合がないと仮定しているので、調停部109は、通知イベントRAとして「true」の返し値を制御タイミング取り扱い部106に送信する。
制御タイミング取り扱い部106は、調停部109より「true」の返し値を受信すると、応答イベントACKをイベント受信部104へ送信する。イベント受信部104は、制御タイミング取り扱い部106より受信した応答イベントACKを、CPUモデル102へ送信する。
図8(b)は、データタイミング取り扱い部107におけるイベント例を示している。図8(b)の186、187「send」で示されるイベントはデータタイミング取り扱い部107へ入力されるデータサイズ情報イベントであることを示している。図8(b)の186、187に示す「1000」、「3」はそれぞれ、データ読み出しの始点となるメモリアドレス及び読み出されるデータサイズを示している。
CPUモデル102は、イベント受信部104より応答イベントACKを受信すると、図8(b)の186「send」で示されるデータサイズ情報イベントDataSをイベント受信部104へ送信する。イベント受信部104は、データサイズ情報イベントDataSを受信すると、データタイミング取り扱い部107へ当該データサイズ情報イベントDataSを送信する。データタイミング取り扱い部107は、イベント受信部104より受信したデータサイズ情報イベントDataSを、イベント発信部105へ送信する。イベント発信部105は、データタイミング取り扱い部107より受信したデータサイズ情報イベントDataSを、メモリモデル103へ送信する。
メモリモデル103は、データサイズ情報イベントDataSを受信すると、受信したデータサイズ情報イベントDataSをイベント発信部105に返信するとともに、EODイベントもイベント発信部105に送信する。つまり、このとき、メモリモデル103は、ハードウェア10での実際の動作とは異なり、データを含むデータ情報イベントをバスモデル101に送信するのではなく、データサイズ情報イベントをバスモデル101に返信する。イベント発信部105は、メモリモデル103より受信したデータサイズ情報イベントDataS及びEODイベントを、データタイミング取り扱い部107へ送信する。図8(b)の187「send」で示されるイベント、及び、188のEODイベントは、このときに、データタイミング取り扱い部107がイベント発信部105より受信したデータサイズ情報イベントDataS、及び、EODイベントを示している。
データタイミング取り扱い部107は、イベント発信部105より受信したデータサイズ情報イベントDataS及びEODイベントをイベント受信部104に送信するとともに、調停部109に対し、送信権限を返還する旨の通知イベントRArtを送信する。イベント受信部104は、データタイミング取り扱い部107より受信したデータサイズ情報イベントDataS及びEODイベントをCPUモデル102に送信する。
以上述べたように、データ読み出し処理の場合においても、先に述べたデータ書き込み処理の場合と同様、制御タイミング取り扱い部106、データタイミング取り扱い部107を介したイベントの入出力では、データサイズを示すイベントであるデータサイズ情報イベントの入出力がされるのであって、データ自体を含むイベントの入出力がされるのではない。
図8(c)は、機能取り扱い部108におけるイベント例を示している。図8(c)の190「read」で示されるイベントは、データを実際に読み込む処理を示すイベントであり、データサイズ情報イベントとなっている。このデータ情報イベントにおいて、「1000」、「3」は、メモリアドレス「1000」からデータサイズ「3」個分読み込むことを示している。
CPUモデル102は、イベント受信部104に対し、図8(c)の190「read」で示されるデータサイズ情報イベントDataSRを送信し、イベント受信部104は、「read」のデータサイズ情報イベントを受信すると、機能取り扱い部108へ当該データサイズ情報イベントDataSRを送信する。
機能取り扱い部108は、データサイズ情報イベントDataSRを受信すると、イベント発信部105へと送信する。イベント発信部105は、機能取り扱い部108より受信したデータサイズ情報イベントSRを、メモリモデル103へ送信する。メモリモデル103は、イベント発信部105より受信したデータサイズ情報イベントDataSRにおけるメモリアドレス及びデータサイズを基に、シミュレータのメモリなどからデータを読み込む。そして、メモリモデル103は、読み出したデータを、データ情報イベントDataDRとしてイベント発信部105へ送信する。イベント発信部105は、メモリモデル103より受信したデータ情報イベントDataDRを機能取り扱い部108に送信する。図8(c)の191「data」で示されるイベントは、このときのデータ情報イベントDataDRを示し、「5」、「10」、「2」は、シミュレータのメモリより読み込まれたデータを示している。
機能取り扱い部108は、イベント発信部105より受信したデータ情報イベントDataDRをイベント受信部104に送信する。イベント受信部104は、機能取り扱い部108より受信したデータ情報イベントDataDRをCPUモデル102に送信する。CPUモデル102は、イベント受信部104より受信したデータ情報イベントDataDRのデータ「5」、「10」、「2」をシミュレータの外部出力などに出力する。このようにして、データ読み出し処理が行われる場合において、データ自体の受け渡しが正確に行われるか否かをシミュレートすることが可能となる。
以上では、CPU1がバス11aを介してメモリ13aよりデータを読み込む処理をシミュレートしたときのシミュレーションモデルの動作について説明した。上述したことから分かるように、データ読み出し処理をシミュレートした場合における制御イベントの入出力は、先に述べたデータ書き込み処理をシミュレートした場合における制御イベントのやりとりと同じように行われる。また、データタイミング取り扱い部107を介したイベントの入出力についても、データ書き込み処理をシミュレートした場合と同様、データサイズを示すイベントであるデータサイズ情報イベントの入出力がされる。データ読み出し処理がシミュレートされた場合であっても、CPU1とメモリコントローラ13bとの間におけるバスを介した制御信号及びデータ信号のそれぞれについて、入出力にかかる時間を示す時間情報を得ることが可能である。以下では、上述のデータ読み出し処理をシミュレートした場合における時間情報を得る方法について説明する。
図9は、データ読み出し処理をシミュレートした場合におけるシミュレーションモデルの動作のタイミングチャートを示している。図9において、Δtr1〜Δtr3が制御信
号についての時間情報を示し、Δtr4〜Δtr7がデータ信号についての時間情報を示
している。図10は、データ読み出し処理が行われる場合におけるΔtr1〜Δtr7の
時間を決める要素を示す表である。以下で具体的に述べる。
まず、CPUモデル102は、バスモデル101に対し、メモリモデル103への読み出し要求イベントREQを送信する。
バスモデル101において、制御タイミング取り扱い部106は、読み出し要求イベントREQを受信すると、調停部109に対し送信権限要求イベントCHを送信する。制御タイミング取り扱い部106は、調停部109より調停部109より送信権限を許可する旨の通知イベントRAを受信すると、読み出し要求イベントREQとともに時間情報Δt
r1をメモリモデル103へ送信する。ここで、時間情報Δtr1は、データ書き込み処
理の場合と同様、ハードウェア10において、CPU1が要求信号を送信するのを待つ待ち時間に対応する。具体的には、時間情報Δtr1は、CPU1が調停回路11bに対し
送信権限要求を行ってから当該調停回路11bより送信権限を得て要求イベントREQを送信するまでの時間に対応する。従って、時間情報Δtr1は、バス11aの競合の有無
により変化する。第1実施形態では、バスに競合が発生していないと仮定しているので、時間情報Δtr1は実験などにより予め決められた固定値に設定される。
メモリモデル103は、読み出し要求イベントREQ及び時間情報Δtr1をバスモデ
ル101より受信すると、バスモデル101に対し応答イベントACKを送信する。このとき、メモリモデル103は、応答イベントACKとともに、時間情報Δtr1に時間情
報Δtr2を加えた時間情報Δtr1_2をバスモデル101に送信する。ここで、時間
情報Δtr2は、データ書き込み処理の場合と同様、ハードウェア10において、メモリ
コントローラ13bが読み出し要求信号を受信してから応答信号を送信する準備を完了するまでの処理時間に対応する。時間情報Δtr2は実験などにより予め決められた固定値
に設定される。
バスモデル101において、制御タイミング取り扱い部106は、応答イベントACK及び時間情報Δtr1_2を受信すると、調停部109に対し、再度、送信権限要求イベ
ントCHを送信する。制御タイミング取り扱い部106は、調停部109より送信権限を許可する旨の通知イベントRAを受信すると、応答イベントACKとともに、時間情報Δ
tr1_2に時間情報Δtr3を加えた時間情報Δtr1_3をCPUモデル102へ送
信する。ここで、時間情報Δtr3は、データ書き込み処理の場合と同様、ハードウェア
10において、メモリコントローラ13bが応答信号を送信するのを待つ待ち時間に対応する。具体的には、時間情報Δtr3は、メモリコントローラ13bが調停回路11bに
対し送信権限要求を行ってから当該調停回路11bより送信権限を得て応答イベントACKを送信するまでの時間に対応する。従って、時間情報Δtr3は、バス11aの競合の
有無により変化する。第1実施形態では、バスに競合が発生していないと仮定しているので、時間情報Δtr3は実験などにより予め決められた固定値に設定される。
このようにして求められた時間情報Δtr1_3が、ハードウェア10において、デー
タ読み出し処理の際における制御信号の入出力にかかる時間情報となる。上述したことから分かるように、データ読み出し処理をシミュレートした場合におけるΔtr1〜Δtr
3はそれぞれ、先に述べたデータ書き込み処理をシミュレートした場合におけるΔtw1
〜Δtw3を求めたときと同様の方法で求められる。
CPUモデル102は、応答イベントACK及び時間情報Δtr1_3をバスモデル1
01より受信すると、バスモデル101に対しデータサイズ情報イベントDataSを送信する。このとき、CPUモデル102は、データサイズ情報イベントDataSとともに、時間情報Δtr1_3に時間情報Δtr4を加えた時間情報Δtr1_4をバスモデ
ル101に送信する。ここで、時間情報Δtr4は、ハードウェア10において、CPU
1が応答信号を受信してからデータアドレス及びデータサイズを含むデータ信号を送信する準備を完了するまでの処理時間に対応する。当該データ信号はデータを含まないので、時間情報Δtr4は実験などにより予め決められた固定値に設定される。
バスモデル101において、データタイミング取り扱い部107は、CPUモデル102より受信したデータサイズ情報イベントDataSとともに、時間情報Δtr1_4に
時間情報Δtr5を加えた時間情報Δtr1_5をメモリモデル103へ送信する。ここ
で、時間情報Δtr5は、ハードウェア10において、データアドレス及びデータサイズ
を含むデータ信号をバス11aで送信するのにかかる送信時間に対応する。当該データ信号はデータを含まないので、時間情報Δtr5は実験などにより予め決められた固定値に
設定される。
メモリモデル103は、データサイズ情報イベントDataS及び時間情報Δtr1_
5をバスモデル101より受信すると、バスモデル101に対し、データ情報イベントDataS及びEODイベントを送信する。このとき、メモリモデル103は、データ情報イベントDataS及びEODイベントとともに、時間情報Δtr1_5に時間情報Δt
r6を加えた時間情報Δtr1_6をバスモデル101に送信する。ここで、時間情報Δ
tr6は、ハードウェア10において、メモリ13aよりデータが読み出されるのにかかる処理時間に対応する。具体的には、時間情報Δtr6は、1データ当たりのメモリから
の読み出し時間にデータサイズ情報を掛けることによって求められる。ここで、1データ当たりのメモリからの読み出し時間は実験などにより予め決められた固定値に設定される。
バスモデル101において、データタイミング取り扱い部107は、データサイズ情報イベントDataS及びEODイベントとともに、時間情報Δtr1_5に時間情報Δt
r7を加えた時間情報Δtr1_7を、CPUモデル102へ送信する。ここで、時間情
報Δtr7は、ハードウェア10において、データを含むデータ信号をバス11aで送信
するのにかかる送信時間に対応する。具体的には、時間情報Δtr7は、1データ当たり
の送信時間にデータサイズ情報を掛けることによって求められる。ここで、1データ当たりの送信時間は実験などにより予め決められた固定値に設定される。
このようにして求められた時間情報Δtr1_7が、ハードウェア10でデータ読み出
し処理にかかるトータルの時間(CPU1がデータ読み出し要求を出力してから処理終了信号を得るまでの時間)に対応する。つまり、CPUモデル102は、EODイベントを受信したときに、データ読み出し処理にかかるトータルの時間を時間情報Δtr1_7と
して得ることができる。なお、このうち、時間情報Δtr4〜Δtr7までの合計した時
間情報は、データ読み出し処理の際におけるデータ信号の入出力にかかる時間に対応する。
以上に述べたことから分かるように、データ読み出し処理の場合においても、制御タイミングモデルでは、CPUモデル102、バスモデル101における制御タイミング取り扱い部106、メモリモデル103により制御信号の入出力にかかった時間が算出される。具体的には、制御タイミング取り扱い部106は時間情報Δtr1、Δtr3を算出し
、メモリモデル103は時間情報Δtr2を算出する。データ読み出し処理の場合におい
て、ハードウェア10におけるCPU1−メモリコントローラ13b間における制御信号の転送期間は、例えば時間情報Δtr1、Δtr3に対応し、制御信号の処理時間は、例
えば時間情報Δtr2に対応する。また、データタイミングモデルでは、CPUモデル1
02、バスモデル101におけるデータタイミング取り扱い部107、メモリモデル103によりデータ信号の入出力にかかった時間が算出される。具体的には、データタイミング取り扱い部106は、時間情報Δtr5、Δtr7を算出し、CPUモデル102、メ
モリモデル103はそれぞれ、時間情報Δtr4、Δtr6を算出する。データ読み出し
処理の場合において、ハードウェア10におけるCPU1−メモリコントローラ13b間におけるデータ信号の転送期間は、例えば時間情報Δtr5、Δtr7に対応し、データ
信号の処理時間は、例えば時間情報Δtr4、Δtr6に対応する。
第1実施形態に係るシミュレーションモデルでは、データ読み出し処理をシミュレートする場合においても、データ信号及び制御信号のそれぞれの入出力のタイミングを考慮して、時間情報を算出している。そのため、第1実施形態に係るシミュレーションモデルは、シミュレートの対象となるハードウェアにより近いモデルとなり、データ読み出し処理にかかるトータルの時間を、精度を高めて算出することができる。
[第2実施形態]
次に、第2実施形態に係るシミュレーションモデルについて図11〜13を参照して説明する。第2実施形態に係るシミュレーションでは、バスに競合が発生していると仮定した場合のシミュレーションモデルの動作の例について説明する。
図11は、第2実施形態に係るシミュレーションモデルの対象となるハードウェアの構成の一例を示すブロック図である。
図11において、図1と同様の構成要素については図1と同じ符号が付されている。第2実施形態に係るシミュレーションモデルの対象となるハードウェア20は、図1で示したハードウェア10と異なり、バス11aに2つのCPU1、2が接続されている。つまり、第2実施形態に係るシミュレーションモデルの対象となるハードウェアは、マルチプロセッサのハードウェアである。ハードウェア20では、2つのCPU1、2が、バス11aを介してメモリコントローラ13bと制御信号及びデータ信号の入出力を行う。
具体的には、CPU1、2は、メモリコントローラ13bと制御信号の入出力を行う際において、それぞれ、送信権限要求を示す信号を調停回路11bに送信する。調停回路11bは、CPU1、2のうち、いずれか一方に送信権限を許可する。そして、CPU1、2のうち、調停回路11bより送信権限許可を示す信号を受信した方のCPUのみが、バス11aを介して、メモリコントローラ13bと制御信号及びデータ信号の入出力を行う。送信権限許可を示す信号を受信した方のCPUによる処理が終了するまで、送信権限許可を示す信号を受信していない方のCPUは、制御信号及びデータ信号の送受信を待つこととする。
図12は、第2実施形態に係るシミュレーションモデルの構成の一例を示すブロック図である。図12において、図3と同様の構成要素については図3と同じ符号が付されている。
第2実施形態に係るシミュレーションモデルは、図11に示したハードウェア20のシミュレーションモデルであり、第1実施形態に係るシミュレーションモデルと同様、例えば、コンピュータなどのシミュレータ上で動作するプログラムとして提供される。このシミュレーションモデルのプログラムがシミュレータ上で動作することにより性能評価装置が実現される。
第2実施形態に係るシミュレーションモデルは、バスモデル101と、CPU1モデル102aと、CPU2モデル102bと、メモリモデル103とを有する。CPU1モデル102aがCPU1をモデル化したものであり、CPU2モデル102bがCPU2をモデル化したものである。
第2実施形態に係るシミュレーションモデルでは、主に、2つのCPUモデル102a、102bのそれぞれとメモリモデル103とが、バスモデル101を介して、制御イベント及びデータイベントを入出力する。図12において、実線矢印は、CPU1モデル102aとバスモデル101とメモリモデル103との間で入出力されるイベントの流れを示している。一点鎖線矢印は、CPU2モデル102bとバスモデル101とメモリモデル103との間で入出力されるイベントの流れを示している。
バスモデル101は、イベント受信部104と、イベント発信部105と、制御タイミング取り扱い部106a、106bと、データタイミング取り扱い部107と、機能取り扱い部108と、調停部109とを有する。
制御タイミング取り扱い部106aは、CPU1−メモリコントローラ13b間でバス11aを介して入出力される制御信号の入出力のタイミングをモデル化した、バスモデル101のモデル動作手段である。具体的には、制御タイミング取り扱い部106aは、CPU1モデル102aとメモリモデル103との間における制御イベントの受け渡しを行う。
制御タイミング取り扱い部106bは、CPU2−メモリコントローラ13b間でバス11aを介して入出力される制御信号の入出力のタイミングをモデル化した、バスモデル101のモデル動作手段である。具体的には、制御タイミング取り扱い部106bは、CPU2モデル102bとメモリモデル103との間における制御イベントの受け渡しを行う。
次に、第2実施形態に係るシミュレーションモデルの動作の流れについて、CPU1、2がそれぞれバス11aを介してメモリ13aにデータを書き込む処理をシミュレートしたときの動作を例に、図12、図13を用いて説明する。
図12において、実線矢印及び一点鎖線矢印の始点に付された英字は、データ書き込み処理をシミュレートしたときのイベントの符号を示し、当該英字の横の数字は、イベントの入出力される順番の一例を示している。
図13は、制御タイミング取り扱い部106a、制御タイミング取り扱い部106b、データタイミング取り扱い部107、機能取り扱い部108のそれぞれにおけるイベント例を示している。
図13(a)は、制御タイミング取り扱い部106aにおけるイベント例を示し、図13(b)は、制御タイミング取り扱い部106bにおけるイベント例を示している。図13(a)、13(b)において、左端はイベントを示し、右端はイベントに対する返し値を示している。
まず、図12に示すように、CPU2モデル102bが、バスモデル101に対しデータ書き込み要求を示す要求イベントREQ2を送信したとする。このとき、CPU2モデル102bは、当該要求イベントの優先度を示す情報(優先度情報)を当該要求イベントREQ2に付加してバスモデル101に送信する。イベント受信部104は、CPU2モデル102bより受信した要求イベントREQ2を、制御タイミング取り扱い部106bへ送信する。要求イベントREQ2は、図13(b)の371「request」及び373「write」で示されるイベントに対応する。優先度情報は、図13(b)の371「request」で示されるイベントの数字「2」に対応する。この数字が小さいほど優先度が高くなる。
制御タイミング取り扱い部106bは、イベント受信部104より「request」の要求イベントREQ2を受信すると、図13(b)の372「check」で示される送信権限要求イベントCH2と優先度情報「2」とを調停部109に送信する。この段階では、調停部109は、もう一つの制御タイミング取り扱い部106aより送信権限要求イベントを受け取っていない。即ち、バス11aに競合は発生していないと仮定してもよいので、調停部109は、制御タイミング取り扱い部106bに対し、通知イベントRA2として送信権限許可を示す返し値「true」を送信する。
制御タイミング取り扱い部106bは、調停部109より送信権限許可を示す返し値「true」を受信すると、図13(b)の373「write」に示される要求イベントREQ2をイベント発信部105へ送信する。イベント発信部105は、制御タイミング取り扱い部106bより受信した「write」の要求イベントREQ2をメモリモデル103へ送信する。
メモリモデル103は、「write」の要求イベントREQ2を受信すると、図13(b)の374「acknowlegde」に示される応答イベントACK2を、イベント発信部105を介して、制御タイミング取り扱い部106へ送信する。
ここで、制御タイミング取り扱い部106bが要求イベントREQ2を送信してから応答イベントACK2を受信するまでの間に、CPU1モデル102aが、バスモデル101に対しデータ書き込み要求を示す要求イベントREQ1を送信したとする。このとき、CPU1モデル102aは、当該要求イベントREQ1の優先度を示す情報(優先度情報)を当該要求イベントREQ1に付加してバスモデル101に送信する。イベント受信部104は、CPU1モデル102aより受信した要求イベントREQ1を、制御タイミング取り扱い部106aへ送信する。このときのデータ書き込み要求を示す要求イベントREQ1は、図13(a)の271「request」及び273「write」で示されるイベントに対応する。優先度情報は、図13(a)の271「request」のイベントの数字「1」に対応する。つまり、この場合、CPU1モデル102aより送信される制御イベントは、CPU2モデル102bより送信される制御イベントよりも優先度が高くなっている。
制御タイミング取り扱い部106aは、イベント受信部104より「request」の要求イベントREQ1を受信すると、図13(a)の272「check」で示される送信権限要求イベントCH1と優先度情報「1」とを調停部109に送信する。このとき、調停部109は、既に、もう一つの制御タイミング取り扱い部106bに対し送信権限許可を与えている。そのため、調停部109は、制御タイミング取り扱い部106aに対しては送信権限を許可しないこととし、通知イベントRA1として「false」の返し値を送信する。調停部109は、制御タイミング取り扱い部106bに応答イベントACK2が返信されるまで、制御タイミング取り扱い部106aに対して送信権限を許可しない。
一方、制御タイミング取り扱い部106bは、イベント発信部105より応答イベントACK2を受信すると、図13(b)の375「check」で示される送信権限要求イベントCH2を調停部109に送信する。このとき、調停部109は、先に述べたように、制御タイミング取り扱い部106aより送信権限要求イベントCH1を受信している状態となっている。このとき、調停部109は、2つの制御タイミング取り扱い部106a、106bのうち、優先度の高い方のイベントを受け渡している制御タイミング取り扱い部に対して送信権限を許可することとする。つまり、調停部109は、優先度情報が「1」となっている制御イベントを受け渡している制御タイミング取り扱い部106aに対し、図13(a)の273に示すように、通知イベントRA1として「true」の返し値を送信する。また、調停部109は、優先度の低い方のイベントを受け渡している制御タイミング取り扱い部106bに対し、図13(b)の375に示すように、通知イベントRA2として「false」の返し値を送信する。調停部109は、CPU1モデル102aとメモリモデル103との間における制御イベント及びデータイベントの入出力が終了するまで、図13(b)の376に示すように、優先度の低い方の制御タイミング取り扱い部106bには送信権限を許可しない。
制御タイミング取り扱い部106aは、調停部109より返し値「true」を受信すると、図13(a)の274「write」に示される要求イベントREQ1をイベント発信部105へ送信する。イベント発信部105は、制御タイミング取り扱い部106aより受信した「write」の要求イベントREQ1をメモリモデル103へ送信する。
メモリモデル103は、「write」の要求イベントREQ1を受信すると、図13(a)の275に示す「acknowlegde」の応答イベントACK1を、イベント発信部105を介して、制御タイミング取り扱い部106へ送信する。
制御タイミング取り扱い部106aは、イベント発信部105より「acknowlegde」の応答イベントACK1を受信すると、図13(a)の276「check」で示される送信権限要求イベントCH1を調停部109に送信する。このとき、調停部109は、先に述べたように、制御タイミング取り扱い部106bより送信権限要求イベントCH2を受信している状態となっている。そこで、調停部109は、優先度の高い方のイベントを受け渡している制御タイミング取り扱い部106aに対し、通知イベントRA1として、送信許可を示す返し値「true」を送信する。
制御タイミング取り扱い部106aは、調停部109より返し値「true」を受信すると、「acknowlegde」の応答イベントACK1をイベント受信部104へ送信する。イベント受信部104は、制御タイミング取り扱い部106aより受信した応答イベントACK1を、CPU1モデル102aへ送信する。
図13(c)は、データタイミング取り扱い部107におけるイベント例を示している。図13(c)の281「send」で示されるイベントは、CPU1モデル102aからデータタイミング取り扱い部107へ入力されるデータサイズ情報イベントであることを示している。図13(c)の381「send」で示されるイベントは、CPU2モデル102bからデータタイミング取り扱い部107へ入力されるデータサイズ情報イベントであることを示している。図13(c)の281、381における「1000」、「3」はそれぞれ、データ書き込みの始点となるメモリアドレス及びデータサイズを示している。
CPU1モデル102aは、イベント受信部104より応答イベントACK1を受信すると、図13(c)の281「send」で示されるデータサイズ情報イベントDataS1をイベント受信部104へ送信する。イベント受信部104は、データサイズ情報イベントDataS1を受信すると、データタイミング取り扱い部107へ当該データサイズ情報イベントDataS1を送信する。データタイミング取り扱い部107は、イベント受信部104より受信したデータサイズ情報イベントDataS1を、イベント発信部105へ送信する。イベント発信部105は、データタイミング取り扱い部107より受信したデータサイズ情報イベントDataS1を、メモリモデル103へ送信する。
メモリモデル103は、イベント発信部105よりデータサイズ情報イベントDataS1を受信すると、図13(c)の282「EOD1」で示されるEODイベント(EOD1イベント)を、イベント発信部105を介して、データタイミング取り扱い部107へ送信する。データタイミング取り扱い部107は、イベント発信部105より受信したEOD1イベントをイベント受信部104に送信するとともに、調停部109に対し、送信権限を返還する旨を示す通知イベントRA1rtを送信する。イベント受信部104は、データタイミング取り扱い部107より受信したEOD1イベントをCPU1モデル102aに送信する。
調停部109は、データタイミング取り扱い部107より送信権限を返還する旨の通知イベントRA1rtを受信すると、CPU1モデル102aとメモリモデル103との間におけるイベントの入出力が全て終了したとみなす。そして、調停部109は、イベントの送信を待っている制御タイミング取り扱い部106bに対し、図13(b)の377に示すように、通知イベントRA2として「true」の返し値を送信する。制御タイミング取り扱い部106bは、調停部109より返し値「true」を受信すると、「acknowlegde」の応答イベントACK2をイベント受信部104へ送信する。イベント受信部104は、制御タイミング取り扱い部106bより受信した「acknowlegde」の応答イベントACK2を、CPU2モデル102bへ送信する。
CPU2モデル102bは、イベント受信部104より「acknowlegde」の応答イベントACK2を受信すると、図13(c)の381「send」で示されるデータサイズ情報イベントDataS2をイベント受信部104へ送信する。イベント受信部104は、データサイズ情報イベントDataS2を受信すると、データタイミング取り扱い部107へ当該データサイズ情報イベントDataS2を送信する。データタイミング取り扱い部107は、イベント受信部104より受信したデータサイズ情報イベントDataS2を、イベント発信部105へ送信する。イベント発信部105は、データタイミング取り扱い部107より受信したデータサイズ情報イベントDataS2を、メモリモデル103へ送信する。
メモリモデル103は、データサイズ情報イベントDataS2を受信すると、図13(c)の382「EOD2」で示されるEODイベント(EOD2イベント)を、イベント発信部105を介して、データタイミング取り扱い部107へ送信する。データタイミング取り扱い部107は、イベント発信部105より受信したEOD2イベントをイベント受信部104に送信するとともに、調停部109に対し、送信権限を返還する旨の通知イベントRA2rtを送信する。イベント受信部104は、データタイミング取り扱い部107より受信したEODイベントをCPU2モデル102bに送信する。
図13(d)は、機能取り扱い部108におけるイベント例を示している。図13(d)の291「write」で示されるイベントは、CPU1モデル102aからメモリモデル103へ送信されるデータ情報イベントである。図13(d)の391「write」で示されるイベントは、CPU2モデル102bからメモリモデル103へ送信されるデータ情報イベントである。図13(d)の291、391に示すデータ情報イベントにおいて、「1000」、「3」は、メモリアドレス「1000」からデータサイズ「3」個分書き込むことを示し、「5」、「10」、「2」は書き込まれるデータを示している。
CPU1モデル102aは、図13(d)の291に示す「write」のデータ情報イベントDataD1を、イベント受信部104を介して、機能取り扱い部108へ送信する。機能取り扱い部108は、データ情報イベントDataD1を受信すると、当該データ情報イベントDataD1を、イベント発信部105を介して、メモリモデル103へ送信する。メモリモデル103は、イベント発信部105より受信した「write」のデータ情報イベントDataD1におけるデータ「5」、「10」、「2」をシミュレータの外部出力などに出力する。このようにして、データ書き込み処理が行われる場合において、CPU1からメモリへのデータの受け渡し、CPU2からメモリへのデータの受け渡しが、それぞれ正確に行われるか否かをシミュレートすることが可能となる。
また、CPU2モデル102bは、図13(d)の391に示す「write」のデータ情報イベントDataD2を、イベント受信部104を介して、機能取り扱い部108へ送信する。機能取り扱い部108は、「write」のデータ情報イベントDataD2を受信すると、当該データ情報イベントDataD2を、イベント発信部105を介して、メモリモデル103へ送信する。メモリモデル103は、イベント発信部105より受信した「write」のデータ情報イベントDataD2におけるデータ「5」、「10」、「2」をシミュレータの外部出力などに出力する。
第2実施形態に係るシミュレーションモデルでは、調停部109は、CPU1モデル102a、CPU2モデル102bのそれぞれから送信された制御イベントについて、優先度の高い方のイベントに対し送信先への送信権限を与えている。また、調停部109は、優先度の高い方のイベントの入出力が全て終了するまで、優先度の低い方の制御イベントに対して送信権限を与えないこととしている。このように、第2実施形態に係るシミュレーションモデルでは、バス11aに競合が発生した場合におけるハードウェア20の動作をシミュレートすることが可能である。以下では、上述のデータ書き込み処理をシミュレートした場合における時間情報を得る方法について説明する。
図14は、データ書き込みの場合におけるシミュレーションモデルの動作のタイミングチャートを示している。図14では、CPU1とメモリコントローラ13bとの間での入出力における時間情報Δtw1〜Δtw7をそれぞれ、時間情報Δtw1(C1)〜Δt
w7(C1)として示し、CPU2とメモリコントローラ13bとの間での入出力における時間情報Δtw1〜Δtw7をそれぞれ、時間情報Δtw1(C2)〜Δtw7(C2
)として示している。図15は、データ書き込み処理が行われる場合におけるΔtw1〜
Δtw7の時間を決める要素を示す表である。以下で具体的に述べる。
まず、CPU2モデル102bは、バスモデル101に対し、優先度情報を付加した要求イベントREQ2を送信する。
バスモデル101において、制御タイミング取り扱い部106bは、イベント受信部104より要求イベントREQ2を受信すると、送信権限要求イベントRA2と優先度情報「2」とを調停部109に送信する。この段階では、調停部109は、もう一つの制御タイミング取り扱い部106aより何らイベントを受け取っていないので、制御タイミング取り扱い部106bに対し、送信権限許可を示す返し値「true」を送信する。制御タイミング取り扱い部106bは、調停部109より返し値「true」を受信すると、要求イベントREQ2とともに時間情報Δtw1(C2)を、イベント発信部105を介し
てメモリモデル103へ送信する。時間情報Δtw1(C2)は、ハードウェア20にお
いて、CPU2が要求信号を送信するのを待つ待ち時間に対応し、バスにおける競合の有無により変化する。しかしながら、このとき、バスには競合が発生していないとみなしてもよい。従って、時間情報Δtw1(C2)は、図5の時間情報Δtw1と同様、実験な
どにより予め決められた固定値に設定される。
メモリモデル103は、要求イベントREQ2及び時間情報Δtw1(C2)をバスモ
デル101より受信すると、バスモデル101に対し応答イベントACK2を送信する。このとき、メモリモデル103は、応答イベントACK2とともに、時間情報Δtw1(
C2)に時間情報Δtw2(C2)を加えた時間情報ΔC2t1_2をバスモデル101
に送信する。ここで、時間情報Δtw2(C2)は、図5の時間情報Δtw2と同様、ハ
ードウェア20において、メモリコントローラ13bが要求信号を受信してから応答信号を送信する準備を完了するまでの処理時間に対応し、実験などにより予め決められた固定値に設定される。バスモデル101において、イベント発信部105は、応答イベントACK2及び時間情報ΔC2t1_2を制御タイミング取り扱い部106bへ送信する。
ここで、制御タイミング取り扱い部106bがデータ書き込み要求イベントREQ2を送信してから応答イベントACK2を受信するまでの間に、CPU1モデル102aが、優先度情報を付加した要求イベントREQ1をバスモデル101に対し送信する。
バスモデル101において、制御タイミング取り扱い部106aは、イベント受信部104より要求イベントREQ1を受信すると、送信権限要求イベントRA1と優先度情報「1」とを調停部109に送信する。ここで、調停部109は、既に、制御タイミング取り扱い部106bに対し送信権限を与えているので、制御タイミング取り扱い部106aに対しては送信権限を許可しない。つまり、このときは、図14に示すように、ハードウェア20では、CPU2が送信権限を得ている状態に対応する。
この後、制御タイミング取り扱い部106bは、イベント発信部105より応答イベントACK2を受信すると、送信権限要求イベントRA2を調停部109に送信する。
送信権限要求イベントRA1、RA2を受信している調停部109は、優先度の高い方の制御イベントを受け渡している制御タイミング取り扱い部106aに送信権限を許可する。調停部109は、CPU1モデル102aとメモリモデル103との間における制御イベント及びデータサイズ情報イベントの入出力が終了するまで、優先度の低い方の制御イベントを受け渡している制御タイミング取り扱い部106bに送信権限を許可しない。つまり、このことは、図14に示すように、ハードウェア20において、CPU2からCPU1へと送信権限が移ったことを示している。このように、REQが発信され、処理の途中でスレッドの入れ替えが可能であるのは、制御タイミングモデルとデータタイミングモデルを、別々にトランザクションモデリングを行っているためである。
制御タイミング取り扱い部106aは、調停部109より送信許可を得ると、要求イベントREQ1とともに、時間情報Δtw1(C1)を、イベント発信部105を介してメ
モリモデル103へ送信する。時間情報Δtw1(C1)は、ハードウェア20において
、CPU1が要求信号を送信するのを待つ待ち時間に対応し、バスにおける競合の有無により変化する。このとき、時間情報Δtw1は、時間情報Δtw2(C2)から時間情報
Δtw0(C1)を引いた値として求められる。ここで、時間情報Δtw0(C1)は、
CPU2が要求信号をメモリコントローラ11bに送信してからCPU1が調停回路11bに送信権限要求を示す信号を送信するまでの時間である。なお、時間情報Δtw0(C
1)は、優先度の高いREQ1がバスモデル101に渡されるタイミングに応じて変化してよい情報である。
メモリモデル103は、要求イベントREQ1及び時間情報Δtw1(C1)をバスモ
デル101より受信すると、バスモデル101に対し応答イベントACK1を送信する。このとき、メモリモデル103は、応答イベントACK1とともに、時間情報Δtw1(
C1)に時間情報Δtw2(C1)を加えた時間情報ΔC1t1_2をバスモデル101
に送信する。ここで、時間情報Δtw2は、ハードウェア20において、メモリコントロ
ーラ13bが要求信号を受信してから応答信号を送信する準備を完了するまでの処理時間に対応し、実験などにより予め決められた固定値に設定される。
バスモデル101において、制御タイミング取り扱い部106aは、応答イベントACK1及び時間情報ΔC1t1_2を受信すると、送信権限要求RA1を調停部109に送
信して、送信権限許可を得る。制御タイミング取り扱い部106aは、調停部109より送信許可を得ると、応答イベントACK1とともに、時間情報ΔC1t1_2に時間情報
Δtw3(C1)を加えた時間情報ΔC1t1_3を、イベント発信部105を介して、
CPU1モデル102aへ送信する。ここで、時間情報Δtw3(C1)は、ハードウェ
ア20において、メモリコントローラ13bがCPU1に対し応答信号を送信するのを待つ待ち時間に対応し、バスにおける競合の有無により変化する。しかし、先にも述べたように、制御タイミング取り扱い部106aが受け渡すイベントは、制御タイミング取り扱い部106bが受け渡すイベントよりも優先度が高い。従って、時間情報Δtw3(C1
)は、図5の時間情報Δtw3と同様、実験などにより予め決められた固定値に設定され
る。
CPU1モデル102aは、応答イベントACK1及び時間情報ΔC1t1_3をバス
モデル101より受信すると、バスモデル101に対しデータサイズ情報DataS1を送信する。ここで、CPU1モデル102aは、データサイズ情報DataS1とともに、時間情報ΔC1t1_3に時間情報Δtw4(C1)を加えた時間情報ΔC1t1_4
をバスモデル101に送信する。ここで、時間情報Δtw4(C1)は、図5の時間情報
Δtw4と同様、ハードウェア20において、CPU1が応答信号を受信してからデータ
を含むデータ信号を送信するまでの処理時間に対応する。具体的には、時間情報Δtw4
(C1)は、CPU1が当該データ信号を用意する時間とCPU1がバス11aにデータを含むデータ信号を出力する時間とを足したものに対応する。時間情報Δtw4(C1)
は、1データ当たりの処理時間にデータサイズ情報を掛けることによって求められる。ここで、1データ当たりの処理時間は、実験などにより予め決められた固定値に設定される。
バスモデル101において、データタイミング取り扱い部107は、CPUモデル102より受信したデータサイズ情報DataS1とともに、時間情報ΔC1t1_5を、イ
ベント発信部105を介してメモリモデル103へ送信する。ここで、時間情報ΔC1t
1_5は、時間情報ΔC1t1_4に時間情報Δtw5(C1)を加えた時間情報である
。ここで、時間情報Δtw5(C1)は、図5の時間情報Δtw5と同様、ハードウェア
20において、データを含むデータ信号をバス11aで送信するのにかかる送信時間に対応する。時間情報Δtw5は、1データ当たりの送信時間にデータサイズ情報を掛けるこ
とによって求められる。ここで、1データ当たりの送信時間は、実験などにより予め決められた固定値に設定される。
メモリモデル103は、データサイズ情報イベントDataS1及び時間情報ΔC1t
1_5をバスモデル101より受信すると、バスモデル101に対しEOD1イベントを送信する。このとき、メモリモデル103は、EOD1イベントとともに、時間情報ΔC
1t1_5に時間情報Δtw6(C1)を加えた時間情報ΔC1t1_6をバスモデル1
01に送信する。ここで、時間情報Δtw6(C1)は、図5の時間情報Δtw6と同様
、ハードウェア20において、データがメモリ13aに書き込まれるのにかかる処理時間に対応する。具体的には、時間情報Δtw6(C1)は、メモリモデル103が1データ
当たりのメモリへの書き込み時間にデータサイズ情報を掛けることによって求められる。ここで、1データ当たりのメモリへの書き込み時間は、実験などにより予め決められた固定値に設定される。
バスモデル101において、データタイミング取り扱い部107は、メモリモデル102よりEOD1イベント及び時間情報ΔC1t1_6を受信すると、調停部109に対し
、送信権限を返還する旨の通知を行う。そして、データタイミング取り扱い部107は、EODイベントとともに、時間情報ΔC1t1_6に時間情報Δtw7(C1)を加えた
時間情報ΔC1t1_7を、イベント受信部104を介してCPUモデル102へ送信す
る。ここで、時間情報Δtw7(C1)は、図5の時間情報Δtw7と同様、ハードウェ
ア20において、処理終了信号をバス11aで送信するのにかかる送信時間に対応する。なお、時間情報Δtw7は、実験などにより予め決められた固定値に設定される。このよ
うにしこのようにして求められた時間情報ΔC1tw1_7が、CPU1がデータ書き込
み要求を出力してから処理終了信号を得るまでの時間に対応する。
調停部109は、データタイミング取り扱い部107より送信権限を返還する旨の通知を受信すると、制御タイミング取り扱い部106bによる処理を再開させるため、制御タイミング取り扱い部106bに送信権限を与える。つまり、このことは、図14に示すように、ハードウェア20において、CPU1からCPU2へと送信権限が移ったことを示している。
制御タイミング取り扱い部106bは、送信権限を調停部109より得ると、応答イベントACK2とともに、時間情報ΔC2t1_2に時間情報Δtw3(C2)を加えた時
間情報ΔC2t1_3を、イベント発信部105を介して、CPU2モデル102bへ送
信する。ここで、時間情報Δtw3(C2)は、ハードウェア20において、メモリコン
トローラ13bがCPU2に対し応答信号を送信するのを待つ待ち時間に対応し、バスにおける競合の有無により変化する。具体的には、時間情報Δtw3(C2)は、Δtw2
(C1)、Δtw3(C1)、Δtw4(C1)、Δtw5(C1)、Δtw6(C1)
、Δtw7(C1)の合計である。つまり、第2実施形態に係るシミュレーションモデル
では、優先度の低い方の制御信号の送信待ち時間は、当該優先度の低い方の制御信号が送信待ちをしている間にやりとりされた優先度の高い方の制御信号及びデータ信号の時間情報の合計として求められる。
CPU2モデル102bは、応答イベントACK2及び時間情報ΔC2t1_3をバス
モデル101より受信すると、バスモデル101に対しデータサイズ情報DataS2を送信する。ここで、CPU2モデル102bは、データサイズ情報DataS2とともに、時間情報ΔC2t1_3に時間情報Δtw4(C2)を加えた時間情報ΔC2t1_4
をバスモデル101に送信する。ここで、時間情報Δtw4(C2)は、図5の時間情報
Δtw4と同様、ハードウェア20において、CPU2が応答信号を受信してからデータ
を含むデータ信号を送信するまでの処理時間に対応する。具体的には、時間情報Δtw4
(C2)は、CPU2が当該データ信号を用意する時間とCPU2がバス11aに当該データ信号を出力する時間とを足したものに対応する。時間情報Δtw4(C2)は、1デ
ータ当たりの処理時間にデータサイズ情報を掛けることによって求められる。ここで、1データ当たりの処理時間は、実験などにより予め決められた固定値に設定される。
バスモデル101において、データタイミング取り扱い部107は、CPUモデル102より受信したデータサイズ情報DataS2とともに、時間情報ΔC2t1_4に時間
情報Δtw5(C2)を加えた時間情報ΔC2t1_5を、イベント発信部105を介し
てメモリモデル103へ送信する。ここで、時間情報Δtw5(C2)は、図5の時間情
報Δtw5と同様、ハードウェア20において、データ信号をバス11aで送信するのに
かかる送信時間に対応する。時間情報Δtw5は、1データ当たりの送信時間にデータサ
イズ情報を掛けることによって求められる。ここで、1データ当たりの送信時間は、実験などにより予め決められた固定値に設定される。
メモリモデル103は、データサイズ情報DataS2及び時間情報ΔC2t1_5を
バスモデル101より受信すると、バスモデル101に対しEOD2イベントを送信する。このとき、メモリモデル103は、EOD2イベントとともに、時間情報ΔC2t1_
5に時間情報Δtw6(C2)を加えた時間情報ΔC2t1_6をバスモデル101に送
信する。ここで、時間情報Δtw6(C2)は、図5の時間情報Δtw6と同様、ハード
ウェア20において、データがメモリ13aに書き込まれるのにかかる処理時間に対応する。具体的には、時間情報Δtw6(C2)は、メモリモデル103が1データ当たりの
メモリへの書き込み時間にデータサイズ情報を掛けることによって求められる。ここで、1データ当たりのメモリへの書き込み時間は、実験などにより予め決められた固定値に設定される。
バスモデル101において、データタイミング取り扱い部107は、メモリモデル102よりEODイベント及び時間情報ΔC2t1_6を受信すると、調停部109に対し、
送信権限を返還する旨の通知を行う。そして、データタイミング取り扱い部107は、EODイベントとともに、時間情報ΔC2t1_6に時間情報Δtw7(C2)を加えた時
間情報ΔC2t1_7を、イベント受信部104を介してCPUモデル102へ送信する
。ここで、時間情報Δtw7(C2)は、図5の時間情報Δtw7と同様、ハードウェア
20において、処理終了信号をバス11aで送信するのにかかる送信時間に対応する。なお、時間情報Δtw7は、実験などにより予め決められた固定値に設定される。このよう
にしこのようにして求められた時間情報ΔC2tw1_7が、CPU2がデータ書き込み
要求を出力してから処理終了信号を得るまでの時間に対応する。
以上に述べたように、第2実施形態に係るシミュレーションモデルでは、CPU1モデル102a、CPU2モデル102bのそれぞれから送信された制御イベントについて、優先度の高い方の制御イベントに対し送信先への送信権限が与えられる。また、優先度の高い方の制御イベント及び当該制御イベントに応じたデータサイズ情報イベントの入出力が全て終了するまで、優先度の低い方の制御イベントには、送信権限が与えられないこととしている。このようにすることで、バス11aに2つのCPU1、2が接続されることによりバスに競合が発生した状態をシミュレートすることができる。
また、第2実施形態に係るシミュレーションモデルでは、優先度の低い方の制御イベントが送信待ちをしている間において、優先度の高い方の制御イベント及び当該制御イベントに応じたデータサイズ情報イベントの入出力において得られた時間情報の合計が算出される。このようにすることで、優先度の低い方の制御イベントについての待ち時間情報が得られる。従って、第2実施形態に係るシミュレーションモデルでは、CPU1、CPU2のそれぞれがデータ書き込み要求を出力してから処理終了信号を得るまでの時間情報Δ
C1tw1_7、ΔC2tw1_7を得ることができる。
また、第2実施形態に係るシミュレーションモデルでは、メモリへのデータ書き込み処理をシミュレートした場合の例について述べたが、これに限られるものではない。代わりに、メモリからのデータ読み出し処理をシミュレートした場合であっても、上述したのと同様の方法を取ることにより、バスに競合が発生した状態をシミュレートすることができるのは言うまでもない。
さらに、第2実施形態に係るシミュレーションモデルでは、バス11aに2つのCPU1、2が接続された状態をシミュレートした例について述べたが、これに限られるものではない。この代わりに、3つ以上のCPUがバスに接続された場合であっても上述したのと同様の方法をとることが可能である。この場合には、調停部は、複数のCPUモデルのそれぞれから送信された制御イベントについて、最も優先度の高い制御イベントから順に送信先への送信権限を与える。例えば、調停部は、所定の制御イベントについて、当該所定の制御イベントよりも優先度の高い制御イベント及び当該制御イベントに応じたデータサイズ情報イベントの入出力が終了するまで、当該所定の制御イベントには送信権限を与えないこととする。ここで、当該所定の制御イベントが送信待ちをしている間に、当該所定の制御イベントよりも優先度の高い制御イベント及び当該制御イベントに応じたデータサイズ情報イベントの入出力において得られた時間情報の合計が算出される。この算出された時間情報の合計が、当該任意の制御イベントについての待ち時間情報となる。
なお、実チップでは、競合が高い頻度で発生する。実チップにおいて競合が発生しない場合と同じような振る舞いになる従来のシミュレーションモデルと比較して、上述する実施形態により精度が高くなる。
[変形例]
上述の各実施形態では、CPUとメモリコントローラ間における制御信号及びデータ信号の入出力をシミュレートした例について述べたが、機能ブロックとしてはCPUとメモリコントローラに限られるものではないのは言うまでもない。例えば、DMAコントローラとメモリコントローラとの間における制御信号及びデータ信号の入出力をシミュレータした場合であっても、上述の各実施形態を適用可能である。即ち、CPUとメモリコントローラ以外のマスター及びスレーブのそれぞれとして機能する複数の機能ブロック間で入出力される制御信号及びデータ信号の入出力をシミュレートした場合にも、上述の各実施形態で述べた方法は適用可能である。
図16は、変形例に係るシミュレーションモデルの具体的な構成の一例を示すブロック図である。
第1実施形態の図3及び図7、第2実施形態の図12の説明で述べたことから分かるように、バスモデルにおける機能取り扱い部の動作は、制御タイミング取り扱い部及びデータタイミング取り扱い部の動作とは独立している。従って、シミュレーションモデルを、制御タイミングモデル及びデータタイミングモデルと、機能モデルとに分けて実行するとしても良い。具体的には、シミュレーションモデルのプログラムを、制御タイミングモデル及びデータタイミングモデルが実行されるスレッドと、機能モデルが実行されるスレッドとに分けて実行することができる。
図16は、図3に示したシミュレーションモデルを、制御タイミングモデル及びデータタイミングモデルが実行されるスレッドと、機能モデルが実行されるスレッドとに分けたときの具体的な構成の一例を示している。
CPUモデル102x、バスモデル101x、メモリモデル103xを有するシミュレーションモデルは、制御タイミングモデル及びデータタイミングモデルを実行する。バスモデル101xは、制御タイミング取り扱い部106、データタイミング取り扱い部107、調停部109を有している。CPUモデル102xとメモリモデル103xとの間ではバスモデル101xを介して制御イベント及びデータサイズ情報イベントの入出力が行われる。CPUモデル102y、バスモデル101y、メモリモデル103yを有するシミュレーションモデルは、機能モデルを実行する。バスモデル101yは、機能取り扱い部108を有している。CPUモデル102yとメモリモデル103yとの間ではバスモデル101yを介してデータ情報イベントの入出力が行われる。この2つのシミュレーションモデルがそれぞれスレッドとして別々に動作することにより、制御タイミングモデル及びデータタイミングモデルと、機能モデルとを並列に実行することができ、シミュレーションモデル全体の実行時間を短縮することが可能となる。
なお、実施形態は、上述した各実施形態の例に限られるものではなく、特許請求の範囲及び明細書全体から読み取れる発明の要旨あるいは思想に反しない範囲で適宜変更可能である。
以上説明した実施形態に関して、更に以下の付記を開示する。
(付記1)
ハードウェアに対応するシミュレーションモデルに含まれる複数の機能ブロック間で入出力される制御信号の入力のタイミングを出力する制御タイミングモデル部と、
前記制御信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記制御信号の転送期間を算出する制御信号転送期間算出部と、
前記制御信号に対応するデータ信号であって、前記複数の機能ブロック間で入出力されるデータ信号の入力のタイミングを出力するデータタイミングモデル部と、
前記データ信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記データ信号の転送期間を算出するデータ信号転送期間算出部と
を備えることを特徴とする性能評価装置。
(付記2)
前記制御信号が入力された前記機能ブロックにおける前記制御信号の処理時間を示す時間情報を算出する制御信号処理時間算出部と、を有することを特徴とする付記1に記載の性能評価装置。
(付記3)
前記データ信号が入力された前記機能ブロックにおける前記データ信号の処理時間を示す時間情報を算出するデータ信号処理時間算出部と、を有することを特徴とする付記1又は2に記載の性能評価装置。
(付記4)
前記データタイミングモデル部は、前記複数の機能ブロックモデル間において、前記データイベントとしてデータサイズ情報を示すイベントであるデータサイズ情報イベントの入出力を行い、
前記データ信号転送期間算出部は、前記データサイズ情報に1データ当たりの送信時間を掛けることにより、前記データ信号の送信時間を示す時間情報を算出し、
前記データ信号処理時間算出部は、前記データサイズ情報に1データ当たりの処理時間を掛けることにより、前記データ信号の処理時間を示す時間情報を算出することを特徴とする付記3に記載の性能評価装置。
(付記5)
前記シミュレーションモデルは、前記複数の機能ブロックのうち、マスターとして動作する機能ブロックと、前記マスターとバスを介して接続され、スレーブとして動作する機能ブロックとを含むハードウェアをモデル化したものであり、
前記制御タイミングモデル部は、前記マスターとして動作する機能ブロックをモデル化したマスターモデル部と、前記スレーブとして動作する機能ブロックをモデル化したスレーブモデル部との間で、前記バスをモデル化したバスモデル部を介して前記制御イベントの入出力を行い、
前記データタイミングモデル部は、前記マスターモデル部と前記スレーブモデル部との間で前記バスモデル部を介して前記データイベントの入出力を行うモデルであることを特徴とする付記1乃至4のいずれか一項に記載の性能評価装置。
(付記6)
前記シミュレーションモデルは、前記バスに接続された前記マスターを複数有するハードウェアをモデル化したものであり、
前記バスモデル部は、前記複数のマスターのそれぞれと前記スレーブとの間で入出力される前記制御信号の前記バスにおける競合を調停する調停回路をモデル化した調停部を有し、
前記調停部は、前記バスモデル部が受信した前記制御イベントに対し、当該制御イベントよりも優先度の高い制御イベントの入出力が終了してから、送信先への送信を許可することを特徴とする付記5に記載の性能評価装置。
(付記7)
前記制御信号転送期間算出部は、前記制御信号の待ち時間を示す時間情報として、当該制御信号の送信待ちの間に入出力された制御信号及びデータ信号の時間情報の合計を算出することを特徴とする付記6に記載の性能評価装置。
(付記8)
前記制御タイミングモデル部及び前記データタイミングモデル部が並列に実行されることを特徴とする付記1乃至7のいずれか一項に記載の性能評価装置。
(付記9)
コンピュータが実行する、シミュレーションプログラムであって、
前記コンピュータを、ハードウェアに対応するシミュレーションモデルに含まれる複数の機能ブロック間で入出力される制御信号の入力のタイミングを出力する制御タイミングモデル部として機能させ、
前記制御信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記制御信号の転送期間を算出する制御信号転送期間算出部として機能させ、
前記制御信号に対応するデータ信号であって、前記複数の機能ブロック間で入出力されるデータ信号の入力のタイミングを出力するデータタイミングモデル部として機能させ、
前記データ信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記データ信号の転送期間を算出するデータ信号転送期間算出部として機能させる
ことを特徴とするシミュレーションプログラム。
(付記10)
ハードウェアに対応するシミュレーションモデルに含まれる複数の機能ブロック間で入出力される制御信号の入力のタイミングを出力し、
前記制御信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記制御信号の転送期間を算出し、
前記制御信号に対応するデータ信号であって、前記複数の機能ブロック間で入出力されるデータ信号の入力のタイミングを出力し、
前記データ信号の入力のタイミングに応じて、前記複数の機能ブロック間における前記データ信号の転送期間を算出する
ことを特徴とする性能評価方法。
第1実施形態に係るシミュレーションモデルの対象となるハードウェアの構成の一例を示すブロック図である。 第1実施形態に係るシミュレーションモデルのシミュレート方法を示す概略図である。 第1実施形態に係るシミュレーションモデルの具体的な構成の一例を示すブロック図である。 データ書き込み処理の場合における各モデル動作手段のそれぞれのイベント例を示した図である。 データ書き込みの場合におけるシミュレーションモデルの動作のタイミングチャートである。 データ書き込み処理が行われる場合における時間情報を決める要素を示す表図である。 第1実施形態に係るシミュレーションモデルの具体的な構成の一例を示すブロック図である。 データ読み出し処理の場合における各モデル動作手段のそれぞれのイベント例を示した図である。 データ読み出し処理をシミュレートした場合におけるシミュレーションモデルの動作のタイミングチャートである。 データ読み出し処理が行われる場合における時間情報を決める要素を示す表図である。 第2実施形態に係るシミュレーションモデルの対象となるハードウェアの構成の一例を示すブロック図である。 第2実施形態に係るシミュレーションモデルの構成の一例を示すブロック図である。 データ書き込み処理の場合における各モデル動作手段のそれぞれのイベント例を示した図である。 データ書き込みの場合におけるシミュレーションモデルの動作のタイミングチャートである。 データ書き込み処理が行われる場合における時間情報を決める要素を示す表図である。 変形例に係るシミュレーションモデルの具体的な構成の一例を示すブロック図である。
符号の説明
101 バスモデル
102 CPUモデル
103 メモリモデル
104 イベント受信部
105 イベント発信部
106 制御タイミング取り扱い部
107 データタイミング取り扱い部
108 機能取り扱い部

Claims (9)

  1. ハードウェアに対応するシミュレーションモデルを用いて前記ハードウェアの性能を評価する性能評価装置であって、コンピュータを備え、
    前記シミュレーションモデルに含まれる複数の機能ブロック間で入出力される制御信号の入出力タイミングをモデル化した制御タイミングモデルであって、各機能ブロックにおける前記制御信号の出力に要する待ち時間を示す時間情報を含む制御タイミングモデルを用いて、前記複数の機能ブロック間の前記制御信号の入出力に係るイベントである第1のイベントの入出力を行い、
    前記第1のイベントにおいて、前記機能ブロックに入力された第1の制御信号に応じて第2の制御信号を出力するときに前記第1の制御信号に伴い入力された時間情報の時間値に前記第2の制御信号に対応した時間情報の時間値を加算して当該機能ブロックから出力し、
    前記複数の機能ブロック間で入出力されるデータの入出力タイミングをモデル化したデータタイミングモデルであって、前記データ自体は含まず前記データのデータサイズ情報を入出力するデータタイミングモデルを用いて、前記複数の機能ブロック間の前記データサイズ情報の入出力に係るイベントである第2のイベントの入出力を行い、
    前記第2のイベントにおいて、前記機能ブロックに入出力される前記データサイズ情報に基づき当該機能ブロックにおける前記データの転送時間を算出し、前記第2のイベントに伴い入力された時間情報の時間値に前記転送時間の時間値を加算して当該機能ブロックから出力し、
    前記第1及び第2のイベントで前記機能ブロックにおいて時間値が加算された時間情報に基づき前記ハードウェアの性能を評価する処理を前記コンピュータが実行することを特徴とする性能評価装置。
  2. 前記第2のイベントにおいて、前記データサイズ情報に基づき前記機能ブロックにおける前記データの処理時間を算出し、前記第2のイベントに伴い入力された時間情報の時間値に前記処理時間の時間値を加算して当該機能ブロックから出力する処理を前記コンピュータが実行することを特徴とする請求項に記載の性能評価装置。
  3. 前記データ転送時間の算出において、前記データサイズ情報に1データ当たりの転送時間を掛けることにより、前記データの転送時間を示す時間情報を算出し、
    前記データ処理時間算出において、前記データサイズ情報に1データ当たりの処理時間を掛けることにより、前記データの処理時間を示す時間情報を算出する処理を前記コンピュータが実行することを特徴とする請求項に記載の性能評価装置。
  4. 前記シミュレーションモデルは、前記複数の機能ブロックのうち、マスターとして動作する機能ブロックと、前記マスターとバスを介して接続され、スレーブとして動作する機能ブロックとを含むハードウェアをモデル化したものであり、
    記マスターとして動作する機能ブロックをモデル化したマスターモデルと、前記スレーブとして動作する機能ブロックをモデル化したスレーブモデルとの間で、前記バスをモデル化したバスモデルを介して前記第1のイベントの入出力を行い、
    記マスターモデルと前記スレーブモデルとの間で前記バスモデルを介して前記第2のイベントの入出力を行うモデルであることを特徴とする請求項1乃至のいずれか一項に記載の性能評価装置。
  5. 前記シミュレーションモデルは、前記バスに接続された前記マスターを複数有するハードウェアをモデル化したものであり、
    前記バスモデルは、前記複数のマスターのそれぞれと前記スレーブとの間で入出力される前記制御信号の前記バスにおける競合を調停する調停回路をモデル化した調停回路モデルを有し、
    前記調停回路モデルは、前記バスモデルが受信した前記第1のイベントに対し、当該第1のイベントよりも優先度の高い第1のイベントの入出力が終了してから、送信先への送信を許可するモデルであることを特徴とする請求項に記載の性能評価装置。
  6. 前記データの転送時間の算出において、前記制御信号の待ち時間を示す時間情報として、当該制御信号の送信待ちの間に入出力された制御信号及びデータの時間情報の合計を算出する処理を前記コンピュータが実行することを特徴とする請求項に記載の性能評価装置。
  7. 前記第1のイベントの入出力及び前記第2のイベントの入出力が並列に実行されることを特徴とする請求項1乃至のいずれか一項に記載の性能評価装置。
  8. ハードウェアに対応するシミュレーションモデルを用いた前記ハードウェアの性能評価をコンピュータに実行させるシミュレーションプログラムであって、
    前記シミュレーションモデルに含まれる複数の機能ブロック間で入出力される制御信号の入出力タイミングをモデル化した制御タイミングモデルであって、各機能ブロックにおける前記制御信号の出力に要する待ち時間を示す時間情報を含む制御タイミングモデルを用いて、前記複数の機能ブロック間の前記制御信号の入出力に係るイベントである第1のイベントの入出力を行い、
    前記第1のイベントにおいて、前記機能ブロックに入力された第1の制御信号に応じて第2の制御信号を出力するときに前記第1の制御信号に伴い入力された時間情報の時間値に前記第2の制御信号に対応した時間情報の時間値を加算して当該機能ブロックから出力し、
    前記複数の機能ブロック間で入出力されるデータの入出力タイミングをモデル化したデータタイミングモデルであって、前記データ自体は含まず前記データのデータサイズ情報を入出力するデータタイミングモデルを用いて、前記複数の機能ブロック間の前記データサイズ情報の入出力に係るイベントである第2のイベントの入出力を行い、
    前記第2のイベントにおいて、前記機能ブロックに入出力される前記データサイズ情報に基づき当該機能ブロックにおける前記データの転送時間を算出し、前記第2のイベントに伴い入力された時間情報の時間値に前記転送時間の時間値を加算して当該機能ブロックから出力し、
    前記第1及び第2のイベントで前記機能ブロックにおいて時間値が加算された時間情報に基づき前記ハードウェアの性能を評価する処理を前記コンピュータに実行させることを特徴とするシミュレーションプログラム。
  9. ハードウェアに対応するシミュレーションモデルを用いた前記ハードウェアの性能評価を、演算部及び記憶部を有するコンピュータに実行させる性能評価方法であって、
    前記記憶部に格納された、前記シミュレーションモデルに含まれる複数の機能ブロック間で入出力される制御信号の入出力タイミングをモデル化した制御タイミングモデルであって、各機能ブロックにおける前記制御信号の出力に要する待ち時間を示す時間情報を含む制御タイミングモデルを、前記演算部によって読み出し、
    前記演算部は、前記制御タイミングモデルを用いて、前記複数の機能ブロック間の前記制御信号の入出力に係るイベントである第1のイベントの入出力を行い、前記第1のイベントにおいて、前記機能ブロックに入力された第1の制御信号に応じて第2の制御信号を出力するときに前記第1の制御信号に伴い入力された時間情報の時間値に前記第2の制御信号に対応した時間情報の時間値を加算して当該機能ブロックから出力し、
    前記記憶部に格納された、前記複数の機能ブロック間で入出力されるデータの入出力タイミングをモデル化したデータタイミングモデルであって、前記データ自体は含まず前記データのデータサイズ情報を入出力するデータタイミングモデルを前記演算部によって読み出し、
    前記演算部は、前記データタイミングモデルを用いて、前記複数の機能ブロック間の前記データサイズ情報の入出力に係るイベントである第2のイベントの入出力を行い、前記第2のイベントにおいて、前記機能ブロックに入出力される前記データサイズ情報に基づき当該機能ブロックにおける前記データの転送時間を算出し、前記第2のイベントに伴い入力された時間情報の時間値に前記転送時間の時間値を加算して当該機能ブロックから出力し、
    前記第1及び第2のイベントで前記機能ブロックにおいて時間値が加算された時間情報に基づき前記ハードウェアの性能を評価することを特徴とする性能評価方法。
JP2008322807A 2008-12-18 2008-12-18 性能評価装置、性能評価方法及びシミュレーションプログラム Expired - Fee Related JP5347482B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008322807A JP5347482B2 (ja) 2008-12-18 2008-12-18 性能評価装置、性能評価方法及びシミュレーションプログラム
US12/636,295 US8688428B2 (en) 2008-12-18 2009-12-11 Performance evaluation device, performance evaluation method and simulation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008322807A JP5347482B2 (ja) 2008-12-18 2008-12-18 性能評価装置、性能評価方法及びシミュレーションプログラム

Publications (2)

Publication Number Publication Date
JP2010146292A JP2010146292A (ja) 2010-07-01
JP5347482B2 true JP5347482B2 (ja) 2013-11-20

Family

ID=42267344

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008322807A Expired - Fee Related JP5347482B2 (ja) 2008-12-18 2008-12-18 性能評価装置、性能評価方法及びシミュレーションプログラム

Country Status (2)

Country Link
US (1) US8688428B2 (ja)
JP (1) JP5347482B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5991211B2 (ja) * 2012-05-25 2016-09-14 富士通株式会社 シミュレーション方法、およびシミュレーションプログラム
WO2014064788A1 (ja) * 2012-10-24 2014-05-01 富士通株式会社 シミュレーションプログラム、シミュレーション装置、シミュレーション方法、バスモデルおよびバス回路
JP5994661B2 (ja) * 2013-01-31 2016-09-21 株式会社ソシオネクスト 検証プログラム、検証方法及び検証装置
KR20180043626A (ko) 2016-10-20 2018-04-30 삼성전자주식회사 버퍼를 포함하는 버스를 라우팅하기 위한 시스템 및 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5881267A (en) * 1996-03-22 1999-03-09 Sun Microsystems, Inc. Virtual bus for distributed hardware simulation
US6078742A (en) * 1996-12-19 2000-06-20 Ati International Hardware emulation
US5960191A (en) * 1997-05-30 1999-09-28 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
US6154801A (en) * 1997-07-31 2000-11-28 Advanced Micro Devices, Inc. Verification strategy using external behavior modeling
JP2001076027A (ja) * 1999-09-08 2001-03-23 Nec Corp システム設計段階におけるシミュレーション方法、その装置及びそのプログラムを記憶した記憶媒体
US7050958B1 (en) * 2000-06-02 2006-05-23 Arm Limited Method and apparatus for accelerating hardware simulation
US7548841B2 (en) * 2001-11-16 2009-06-16 Canon Kabushiki Kaisha Method for logic checking to check operation of circuit to be connected to bus
US20030110338A1 (en) * 2001-12-06 2003-06-12 Yuanlong Wang Method and apparatus for emulating computer buses using point-to-point techniues
US7856346B2 (en) * 2002-05-10 2010-12-21 Arm Limited Emulating multiple bus used within a data processing system
JP2004021907A (ja) * 2002-06-20 2004-01-22 Matsushita Electric Ind Co Ltd 性能評価用シミュレーションシステム
JP4020849B2 (ja) * 2003-09-25 2007-12-12 松下電器産業株式会社 シミュレーション装置、シミュレーションプログラム、記録媒体及びシミュレーション方法
JP2005258917A (ja) * 2004-03-12 2005-09-22 Ip Flex Kk 集積回路の設計支援システムおよび設計支援プログラム
US20050228627A1 (en) * 2004-04-08 2005-10-13 Matthew Bellantoni System-level simulation of devices having diverse timing
US7778815B2 (en) * 2005-05-26 2010-08-17 The Regents Of The University Of California Method for the fast exploration of bus-based communication architectures at the cycle-count-accurate-at-transaction-boundaries (CCATB) abstraction

Also Published As

Publication number Publication date
US8688428B2 (en) 2014-04-01
US20100161305A1 (en) 2010-06-24
JP2010146292A (ja) 2010-07-01

Similar Documents

Publication Publication Date Title
JP5347482B2 (ja) 性能評価装置、性能評価方法及びシミュレーションプログラム
CN113947050B (zh) 用于生成形式验证环境的方法、电子设备及存储介质
US8489376B2 (en) Controller and fabric performance testing
US20130054854A1 (en) Full Bus Transaction Level Modeling Approach for Fast and Accurate Contention Analysis
JP2008282314A (ja) シミュレータ、シミュレーション方法
US20140325468A1 (en) Storage medium, and generation apparatus for generating transactions for performance evaluation
CN1312583C (zh) 仿真装置和仿真方法
US7761280B2 (en) Data processing apparatus simulation by generating anticipated timing information for bus data transfers
JP2012203451A (ja) 半導体集積回路シミュレーション装置及び半導体集積回路のシミュレーション方法
US11295052B1 (en) Time correlation in hybrid emulation system
JP5994661B2 (ja) 検証プログラム、検証方法及び検証装置
JP2004021907A (ja) 性能評価用シミュレーションシステム
JP3571177B2 (ja) バス調停シミュレーション方法、最適バス調停方式決定方法、バス調停シミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体、及び最適バス調停方式決定プログラムを記録したコンピュータ読み取り可能な記録媒体
Choudhary et al. Design and Performance Evaluation of PCle on Different FPGA
CN114429051B (zh) 数据流芯片的建模方法、装置、设备及介质
US11550981B2 (en) Distributed application processing with synchronization protocol
JP2921087B2 (ja) ハードウェアアクセラレータにおける実チップシミュレーション方式
JP2006065457A (ja) インタフェース回路生成装置およびインタフェース回路
US20130317802A1 (en) Method for simulating data transmission among a plurality of hardware elements
JP6119442B2 (ja) シミュレーション装置、シミュレーション装置の動作方法およびシミュレーションプログラム
CN112596869A (zh) 延时模型的构建方法及装置、电子设备及存储介质
JP2006127380A (ja) untimed記述で設計されたシステムLSIにおけるプログラム開発環境
JP2016218677A (ja) シミュレーション装置、シミュレーション方法およびシミュレーションプログラム
Mitby A PCI/PCI-X test card for I/O system verification
Yu et al. Estimation of Communication in SystemC Transaction Level Models

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120806

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130705

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130723

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130805

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees