JP5034916B2 - 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置 - Google Patents

性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置 Download PDF

Info

Publication number
JP5034916B2
JP5034916B2 JP2007318093A JP2007318093A JP5034916B2 JP 5034916 B2 JP5034916 B2 JP 5034916B2 JP 2007318093 A JP2007318093 A JP 2007318093A JP 2007318093 A JP2007318093 A JP 2007318093A JP 5034916 B2 JP5034916 B2 JP 5034916B2
Authority
JP
Japan
Prior art keywords
model
functional module
transaction
performance evaluation
simulation
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
JP2007318093A
Other languages
English (en)
Other versions
JP2009140388A (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 JP2007318093A priority Critical patent/JP5034916B2/ja
Priority to US12/289,759 priority patent/US8700380B2/en
Publication of JP2009140388A publication Critical patent/JP2009140388A/ja
Application granted granted Critical
Publication of JP5034916B2 publication Critical patent/JP5034916B2/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Description

本発明は、一般に計算機利用設計に関し、詳しくは計算機利用設計における設計対象システムの性能評価に関する。
CPUやメモリ等を含む各種機能モジュールが1つのLSIに搭載されたシステムLSIの開発においては、LSIの回路規模が大きいために、システム全体の動作を検証するためのシミュレーションに時間がかかるという問題がある。開発するLSIのシステム全体としての処理能力を評価するためには、ハードウェアとソフトウェアとを同時に動作させた検証を行うことが必要である。しかしながら、回路記述用のRTL(Register Transfer Level)を用いて検証を行なったのでは、具体的なハードウェア構成のレベルでシステム全体のシミュレーションを実行することになり、莫大な計算時間がかかってしまうという問題がある。実際には、RTLを用いた検証手法では、巨大なシステム全体の動作を検証しシステム性能を見積もることは不可能な状況となっている。
高精度であるが速度が遅いRTLを用いた設計・検証手法に代わり、より抽象度を上げて、プログラマから見た視点としてアプリケーションソフトウェアの実行命令単位で設計・検証するPV(Programmer’s View)がある。PVでは、モデル化されたCPUによりアプリケーションソフトウェアの命令を実行し、各種機能モジュール間でバスを介したトランザクションを実行し、トランザクションレベルでのモデリングによりシステム全体の動作を表現する。なおトランザクションレベルモデリング(TLM)とは、関数コールによる通信を用いたモデリングであり、OSCI(Open SystemC Initiative)等の標準化団体により標準化が進められている。PVを用いれば大規模LSIの動作検証を行なうことができるが、PVでは時間を表現する記述がなく、システム全体の処理速度に応じたシステム性能の評価ができないという問題がある。
動作検証だけでなくシステム評価を行なうために、PVにおいて時間の概念を取り入れたモデルとしてPVT(Programmer’s View with Timing)がある。しかしながら、各機能モジュールの時間を如何にして測定してPVモデルに組み込むかについて、具体的な方法は提供されていない。
特開2006−79369号公報
以上を鑑みて、本発明は、トランザクションレベルでシステムの動作を表現したモデルに時間情報を組み込むことにより性能評価モデルを生成する方法及び装置を提供することを目的とする。
性能評価モデル生成方法は、トランザクションレベルで記述した機能モジュールの第1のモデルを用いて該機能モジュール間のトランザクションレベルにおいてシステムの動作の第1のシミュレーションを実行し、該第1のシミュレーションにおいて発生したトランザクションを各機能モジュール毎に記録し、ハードウェアレベルで記述した該機能モジュールの第2のモデルを用いて該機能モジュールの回路動作の第2のシミュレーションを実行することにより該記録されたトランザクションに関する各機能モジュール毎の遅延時間を求め、該遅延時間を示す情報を各機能モジュールの該第1のモデルに割り当てて各機能モジュール毎の第3のモデルを生成する各段階を含み、各段階をコンピュータが実行することを特徴とする。
システム性能評価方法は、トランザクションレベルで記述した機能モジュールの第1のモデルを用いて該機能モジュール間のトランザクションレベルにおいてシステムの動作の第1のシミュレーションを実行し、該第1のシミュレーションにおいて発生したトランザクションを各機能モジュール毎に記録し、ハードウェアレベルで記述した該機能モジュールの第2のモデルを用いて該機能モジュールの回路動作の第2のシミュレーションを実行することにより該記録されたトランザクションに関する各機能モジュール毎の遅延時間を求め、該遅延時間を示す情報を各機能モジュールの該第1のモデルに割り当てて各機能モジュール毎の第3のモデルを生成し、該第3のモデルを用いて該機能モジュール間のトランザクションレベルにおいて前記システムの動作の第3のシミュレーションを実行して該システムの動作の処理時間を求める各段階を含み、各段階をコンピュータが実行することを特徴とする。

性能評価モデル生成装置は、トランザクションレベルで記述した機能モジュールの第1のモデルと、ハードウェアレベルで記述した該機能モジュールの第2のモデルと、CPUモデルと、該CPU及び該機能モジュールから構成されるシステムにおいて実行されるソフトウェアのプログラムとを格納するメモリと、該メモリに格納された該プログラムを該CPUモデルで実行することにより、該メモリに格納された該機能モジュールの該第1及び第2のモデルに基づいて該システムの動作をシミュレートする演算処理ユニットを含み、該演算処理ユニットは、該第1のモデルを用いて該機能モジュール間のトランザクションレベルにおいて該システムの動作の第1のシミュレーションを実行し、該第1のシミュレーションにおいて発生したトランザクションを各機能モジュール毎に該メモリに記録し、該第2のモデルを用いて該機能モジュールの回路動作の第2のシミュレーションを実行することにより該記録されたトランザクションに関する各機能モジュール毎の遅延時間を求め、該遅延時間を示す情報を各機能モジュールの該第1のモデルに割り当てて各機能モジュール毎の第3のモデルを生成する各段階を実行することを特徴とする。
本発明の少なくとも1つの実施例によれば、トランザクションレベルでシステムの動作を表現したモデルに時間情報を組み込むことにより、ハードウェアとソフトウェアとを統合した環境におけるシステムの性能を高速且つ正確に測定することが可能となる。
図1は、一般的なシステムLSIの構成とその動作環境を説明する図である。図1を用いて、まず一般的なLSIのシステム構成について説明する。LSI10は、CPU11、メモリ12、周辺回路13、周辺回路14、及びバス15を含む。CPU11、メモリ12、周辺回路13、及び周辺回路14は、バス15により互いに双方向通信可能に結合される。
ソフトウェア18はコンパイラ19により機械語の命令系列である実行可能形式ファイルに変換され、LSI10のメモリ12へロードされる。その実行可能形式ファイルの各命令をCPU11が読み込んで実行することにより、必要に応じてバス15を介してメモリ12、周辺回路13、及び周辺回路14との間でトランザクションを実行しながら、システム全体の動作が進行する。
このようなシステムを開発する場合、LSI10の各機能モジュール(CPU11、メモリ12、周辺回路13、周辺回路14)のハードウェアレベルでの回路構成をRTLで記述し、各機能モジュールの動作を検証する。RTLで記述された各機能モジュールはクロック単位で動作が規定されるので、クロック単位の精度で性能評価することができる。しかしRTL記述を用いてクロック単位の精度でシステム全体の検証を行うことは、莫大な計算量が必要になり困難である。
システム全体の動作を検証するためには、プログラマから見た視点としてアプリケーションソフトウェアの実行命令単位で設計・検証するPV(Programmer’s View)を用いればよい。PVでは、モデル化されたCPUによりアプリケーションソフトウェアの命令を実行し、各種機能モジュール間でバスを介したトランザクションを実行し、トランザクションレベルでシステム全体の動作を表現する。各機能モジュールの振る舞いはデータ入力及びデータ出力に関して規定されており、トランザクションとしてのデータ入力があると所定の対応する処理を実行し、処理の結果をトランザクションとしてデータ出力する。このようにCPUがプログラム命令を実行する単位に対応させて各機能モジュールを簡略化したPVモデルを用いれば、検証シミュレーションの速度を向上させることができる。
PVは、CPUによるプログラム命令実行の順序を表現できるレベルにまで簡略化されたモデルであり、クロック単位での動作を表現してシステムの処理能力を測定することができない。システムの処理能力を正確に見積もるためには、シミュレーションにおいて各機能モジュールの処理にかかる時間を正確に反映させる必要がある。
図2は、本発明の実施例である性能評価モデル生成方法を説明するための図である。LSIモデル20は、図1のLSI10をソフトウェアでモデル化したものであり、CPUモデル21、周辺モデル23、周辺モデル24、観測装置25、及びバス26を含む。CPUモデル21、周辺モデル23、及び周辺モデル24は、それぞれ図1のCPU11、周辺回路13、及び周辺回路14をPVでモデル化したものである。図2では、メモリのモデルの図示が省略されているが、図1のメモリ12をモデル化したものを同様に周辺モデルとして含んでよい。
本実施例の性能評価モデル生成方法では、機能モジュール(CPU11、周辺回路13、及び周辺回路14)をトランザクションレベルで記述した第1のモデル(CPUモデル21、周辺モデル23、及び周辺モデル24)を用いて、機能モジュール間のトランザクションレベルにおいてシステム(LSI10)の動作のシミュレーションを実行する。即ちCPUモデル21によりアプリケーション27のプログラムの各命令を実行することにより、プログラムの各命令の実行に応じて各機能モジュール間にトランザクションが発生し、システム全体の動作が進行する。そして、このシミュレーションにおいて発生したトランザクションを各機能モジュール毎に観測装置25により記録する。図2に示す例では周辺モデル24を観測対象として、この観測対象の周辺モデル24のトランザクションを記録する観測装置が示されている。観測装置25は、周辺モデル24がバス26へ接続される箇所に接続され、当該周辺回路24へ入力されるトランザクションの履歴を記録する。
図3は、トランザクションの記録動作を説明するための図である。図3に示すように、周辺モデル24は、複数のレジスタから構成されるインターフェースレジスタ(I/Fレジスタ)30と、周辺モデル24の振る舞いを定義するC関数31を含む。C関数31は必ずしもC言語で記述された関数である必要はなく、当該周辺回路の振る舞いを適切に定義できる言語で記述された関数であればよい。インターフェースレジスタ30は、バス26に対する周辺モデル24のデータ入出力のために設けられる複数のレジスタからなるレジスタ群であり、各レジスタにはバス26からのアクセスのための固有のアドレスが割り当てられている。
図3に示す例では、インターフェースレジスタ30のレジスタ30−1にバス26を介して所定のデータを書き込む動作(write動作)を実行することにより、C関数31で規定される処理動作を開始する。C関数31で規定される処理動作が終了すると、その処理の結果に応じたデータ(処理結果のデータ或いは処理終了を示すデータ)がインターフェースレジスタ30のレジスタ30−2に格納される。バス26からデータ読み出し動作(read動作)によりレジスタ30−2の内容を読み出すことで、周辺モデル24の処理の結果を例えばCPUモデル21が入手する。これらデータ書き込み動作及びデータ読み出し動作がバス26を介したトランザクションであり、このトランザクションの履歴をトランザクションデータ35として記録する。このトランザクションの主体は主にCPUモデル21であるが、他の周辺モデル23がバスマスタとして機能してトランザクションを発生させてもよい。
図2に示すLSIモデル20にアプリケーション27を実行させることにより、上記のようにしてシステム動作のシミュレーションを実行し、シミュレーションにおいて発生したトランザクションを機能モジュール毎に観測装置により記録する。各機能モジュールに対して観測装置を設けることにより、一度のシミュレーションにより全ての機能モジュールに関してトランザクションを記録することができる。
図4は、記録されたトランザクションデータの書式の一例を示す図である。図4に示すようにトランザクションデータは、インターフェースレジスタ30の個々のレジスタに割り当てられた各アドレス0x00、0x04、0x08、・・・に対して、動作サイクルT0、T1、T2、・・・毎に書き込みデータ或いは読み出しデータを記録したものである。図4の例では、アドレス0x04のレジスタにサイクルT0でデータ0xaaが書き込まれている。またアドレス0x08のレジスタにサイクルT1でデータ0x04が書き込まれている。また例えば、アドレス0x14のレジスタからサイクルT4でデータ0x01が読み出されている。
図4に示す例ではアドレスは0x14まで示されているが、例えば周辺モデル24にアドレス0x32のレジスタまで設けられているとすると、周辺モデル24のトランザクションデータはアドレス0x00から0x32までの各アドレスに対応して各行が設けられることになる。このように、トランザクションは各機能モジュールの各インターフェースレジスタ毎に記録されてよい。また図4に示す例ではサイクルはT5まで示されているが、T5以降もシミュレーション実行が続く限りはそれに対応するサイクルが続くことになる。なおここで言う動作サイクルとは、CPUモデル21による1つの命令の実行に一対一に対応するサイクルであり、各トランザクションの実行に一対一に対応するサイクルでもある。
図5は、本発明の実施例である性能評価モデル生成方法を説明するための図である。図3に示すようにしてトランザクションデータ35を記録すると、その後、RTL記述に基づいてトランザクションデータ35に対応する処理動作のシミュレーションを実行する。
図5において、周辺モデル24Aは図1の周辺回路14をRTL記述41によりモデル化したものであり、レジスタ間のデータ転送のレベルで回路の動作を規定したものである。周辺モデル24Aにはクロック信号が入力され、このクロックの各パルスに同期して回路内部でデータがフリップフロップからフリップフロップへと転送されていく。トランザクションデータ35には、周辺モデル24についてインターフェースレジスタ30のレジスタ30−1へのデータ書き込みとレジスタ30−2からのデータ読み出しとが記録されている。このトランザクションデータ35に基づいて、周辺モデル24Aにおいて、インターフェースレジスタ30のレジスタ30−1へのデータ書き込みに応答して、このデータ書き込みに対応する処理動作をRTL記述41に基づいてシミュレーションする。この処理動作が終了すると、その処理の結果に応じたデータ(処理結果のデータ或いは処理終了を示すデータ)がインターフェースレジスタ30のレジスタ30−2に格納される。この処理の実行にかかった時間、即ちインターフェースレジスタ30のレジスタ30−1へのデータ書き込みからインターフェースレジスタ30のレジスタ30−2への処理結果の格納までに経過した時間が、このトランザクションに関する周辺モデル24Aの処理の遅延時間として求められる。この遅延時間は、RTL記述のモデルが動作するクロックのサイクル数で表現されてよい。
このようにして、機能モジュール(周辺回路14)をハードウェアレベルで記述した第2のモデル(周辺モデル24A)を用いて当該機能モジュールの回路動作の第2のシミュレーションを実行することにより、記録されたトランザクション(トランザクションデータ35として記録されたレジスタ30−1へのデータ書き込みとレジスタ30−2からのデータ読み出し)に関する当該機能モジュールの遅延時間を求める。これを各機能モジュール毎に行なうことで、各機能モジュール毎の遅延時間を求める。なお遅延時間は各インターフェースレジスタ毎に求めてよい。即ち、例えば図5に示すインターフェースレジスタ30のレジスタ30−3に対するデータ書き込みに対応して所定の処理動作が実行される場合、この処理動作の遅延時間をレジスタ30−3に対応する処理の遅延時間として、前記のレジスタ30−1に対応する処理の遅延時間とは別個に求めてよい。1つのレジスタに対して複数の処理動作が実行されそれぞれの遅延時間が異なるときは、最長の遅延時間(最悪条件の遅延時間)をそのレジスタの遅延時間として求めてよい。また、ある機能モジュールにおいて、あるトランザクションに応答して割込みが発生する場合には、割込み発生までの時間を遅延時間として求めてよい。
図6は、本発明の実施例である性能評価モデル生成方法を説明するための図である。図5に示すようにしてトランザクションデータ35に基づいて遅延時間が求められると、その後、求められた遅延時間をPVモデルに組み込む処理を実行する。図6において、図3と同一の構成要素は同一の番号で参照し、その説明は省略する。
図6において、周辺モデル24Bは、複数のレジスタから構成されるインターフェースレジスタ30と、周辺モデル24の振る舞いを定義するC関数31Bを含む。C関数31Bは、図3に示すC関数31と同等の関数であり、遅延時間に関する情報が組み込まれている点のみがC関数31とは相違する。この遅延時間に関する情報は、図5で説明したレジスタ30−1へのデータ書き込みとレジスタ30−2からのデータ読み出しのトランザクションに対応する処理の遅延時間の長さを示すデータである。遅延時間の長さは、RTL記述のモデルが動作するクロックのサイクル数で表現されてよい。
このように、遅延時間を示す情報を機能モジュールの第1のモデル(PVモデルである周辺モデル24)に割り当てて機能モジュールの第3のモデル(周辺モデル24B)を生成する。これを各機能モジュール毎に行なうことで、各機能モジュールの第3のモデルを生成する。このようにして生成された各機能モジュールの第3のモデルでは、その処理動作にかかる処理時間がクロックのサイクル単位の精度で分かっていることになる。
図7は、本発明の実施例であるシステム性能評価方法の一例を説明するための図である。図7において、LSIモデル20Bは、図1のLSI10をソフトウェアでモデル化したものであり、CPUモデル21B、周辺モデル23B、周辺モデル24B、及びバス26を含む。CPUモデル21B、周辺モデル23B、及び周辺モデル24Bは、それぞれ図2のCPUモデル21、周辺モデル23、及び周辺モデル24に対して遅延時間に関する情報Timeが付加されたモデルである。周辺モデル24Bは、図6に示す周辺モデル24Bに相当するものである。
各機能モジュール(CPU11、周辺回路13、及び周辺回路14)の第3のモデル(CPUモデル21B、周辺モデル23B、周辺モデル24B)では、その処理動作にかかる処理時間がクロックのサイクル単位の精度で時間情報Timeとして分かっている。従って、この時間情報Timeが示す時間長を考慮しながらトランザクションレベルでのシステム全体の動作のシミュレーションを再度実行することで、システム全体の性能評価をすることができる。即ち、第3のモデルを用いて機能モジュール間のトランザクションレベルにおいてシステムの動作の第3のシミュレーションを実行することにより、システムの動作の処理時間を求めることができる。
図8は、本発明の実施例である性能評価モデル生成方法を含むシステム性能評価方法の全体の処理の流れ及びデータの流れ示す図である。
まず実行対象のアプリケーションソフトウェアからアセンブラ50により実行可能形式プログラムを生成してメモリ51に格納する。このメモリ51は、例えば図1のメモリ12に対応するPVモデルであってよい。CPU52は、命令セットシミュレータとしてソフトウェアで構成したCPUのモデルであり、上記実行可能形式プログラムを実行する。このCPU52は、例えば図1のCPU11に相当する。周辺回路54は、周辺回路のPVモデルであり、例えば図1の周辺回路13及び14に相当する。トランザクション記録装置53は、各機能モジュールに対するトランザクションを記録するための機構であり、図2の観測装置25に相当する。トランザクション記録装置53は、周辺回路がバスへ接続される箇所に接続され、当該周辺回路へ入力されるトランザクションの履歴を記録するものである。
これらのメモリ51、CPU52、及び周辺回路54から構成されるシステムに対して、ステップS1において、ハードウェアとソフトウェアとの協調動作の検証シミュレーションを実行する。即ち、CPU52によりメモリ51のアプリケーションプログラムを実行することにより、トランザクションレベルにおいて当該システムの動作をシミュレーションする。この際、トランザクション記録装置53により各周辺回路54へのトランザクションを記録することにより、トランザクション記録55が生成される。トランザクション記録55は、図3のトランザクションデータ35に相当するものである。
ステップS2において、トランザクション記録55とRTL記述の周辺回路56とに基づいて、周辺回路単体の性能検証を行なう。即ち、図5を参照して説明したように、RTL記述された周辺回路56をクロックに同期して動作させ、インターフェースレジスタの各レジスタ毎にトランザクション記録55に記録されたトランザクションについて、対応する処理動作の遅延時間を測定する。シミュレーションの結果、遅延時間の長さを示すデータが性能情報57として得られる。この性能情報57は、各周辺回路がトランザクションに応答して実行する処理について遅延時間を示すものであり、各周辺回路単体の性能を示す情報である。
次にこの性能情報57をPVモデルの周辺回路54に組み込むことで、PVTモデルの周辺回路58を生成する。即ち、図6を参照して説明したように、PVモデルのC関数に、そのC関数の実行開始から終了までに要する時間をクロックサイクル数で示した情報を割り当てる。これにより、そのC関数の処理を実行したときに必要な処理時間を知ることができる。
ステップS3で、メモリ51、CPU52、及び周辺回路58から構成されるシステムに対して、ハードウェアとソフトウェアとの協調動作の検証シミュレーションを実行する。即ち、CPU52によりメモリ51のアプリケーションプログラムを実行することにより、トランザクションレベルにおいて当該システムの動作をシミュレーションする。この際、
各機能モジュールのPVTモデルでは、その処理動作にかかる処理時間がクロックのサイクル単位の精度で時間情報として分かっている。従って、この時間情報Timeが示す時間長を考慮しながらトランザクションレベルでのシステム全体の動作のシミュレーションを再度実行することで、システム全体の性能評価をすることができる。こうして性能評価情報59が得られることになる。この性能評価情報59は、例えば、所定のシステム動作を実行するのに必要な時間を示す情報である。
図9は、周辺回路による処理の具体例としてバイナリサーチのアルゴリズムを示すフローチャートである。図10は、バイナリサーチを実行する周辺回路のインターフェースレジスタの機能を説明するための図である。
図9のステップS1で、検索値が入力される。これは図10の周辺回路60において、CPU62からインターフェースレジスタ61のレジスタ61−2に検索対象の値を書き込むことに相当する。レジスタ61−2のアドレスは0x04であり、その機能は検索値格納機能である。
ステップS2で、最小値及び最大値が入力される。これは周辺回路60において、CPU62からインターフェースレジスタ61のレジスタ61−3及び61−4にそれぞれ最小値及び最大値を書き込むことに相当する。レジスタ61−3のアドレスは0x08であり、その機能は最小値格納機能である。またレジスタ61−4のアドレスは0x0Cであり、その機能は最大値格納機能である。
ステップS3で、開始レジスタへの書き込み動作を実行する。これは周辺回路60において、CPU62からインターフェースレジスタ61のレジスタ61−1にバイナリサーチ処理開始を指示する値を書き込むことに相当する。レジスタ61−1のアドレスは0x00であり、その機能はバイナリサーチ開始指示である。即ち、レジスタ61−1にバイナリサーチ処理開始を指示する値を書き込むと、これに応答して周辺回路60がバイナリサーチ処理を開始する。
ステップS4で、周辺回路60の実行するバイナリサーチ処理が最小値と最大値との和を2で割ることにより中央値を求める。ステップS5で、周辺回路60の実行するバイナリサーチ処理が測定値(検索値)と中央値とが等しいか否かを判定する。検索値と中央値とが異なる場合にはステップS6に進む。
ステップS6において、周辺回路60の実行するバイナリサーチ処理が測定値(検索値)が中央値よりも大きいか否かを判定する。測定値(検索値)が中央値よりも大きい場合には、ステップS7で最小値を中央値として、ステップS4に戻る。測定値(検索値)が中央値よりも大きくない場合には、ステップS8で最大値を中央値として、ステップS4に戻る。
ステップS5で測定値(検索値)と中央値とが等しいと判定されると、処理はステップS9に進む。ステップS9で、完了レジスタにバイナリサーチ処理が完了したことを示す値を格納する。これは周辺回路60において、バイナリサーチ処理によりインターフェースレジスタ61のレジスタ61−6に処理完了を示す値を書き込むことに相当する。レジスタ61−6のアドレスは0x14であり、その機能はバイナリサーチ完了通知である。
ステップS10で、検索結果を格納する。これは周辺回路60において、バイナリサーチ処理によりインターフェースレジスタ61のレジスタ61−5に検索結果を示す値を書き込むことに相当する。レジスタ61−5のアドレスは0x10であり、その機能はバイナリサーチ検索結果格納である。
上記のようにして、あるトランザクションが周辺回路60のインターフェースレジスタ61のレジスタ61−1への書き込みを実行すると、それに応答してバイナリサーチ処理が実行され、レジスタ61−6に処理完了を示す値が格納される。RTL記述によるシミュレーションにより遅延時間を測定する際には、図11に示すように、アドレス0x14のレジスタ61−6を終点として完了する処理の始点がアドレス0x00のレジスタであることが分かっているので、この始点から終点までの処理について遅延時間を測定することになる。
測定した遅延時間は、入力側のレジスタに割り当ててよい。上記の例では、バイナリサーチ処理の遅延時間を、インターフェースレジスタ61のレジスタ61−1に割り当ててよい。この際、バイナリサーチ処理という同一の処理であっても、その検索対象の値によって処理完了までに必要な時間は変動する。即ち処理の実行時間がそれぞれ入力検索値により異なることになる。このような場合、異なる遅延時間が得られるので、最大の遅延時間を当該バイナリサーチ処理の処理時間として、インターフェースレジスタ61のレジスタ61−1に割り当ててよい。
図12は、最大の遅延時間を抽出する処理の流れを示すフローチャートである。このフローチャートは、例えば図8のステップS2における個々の周辺回路の単体の性能検証シミュレーションにおいて、シミュレーションを制御し遅延時間を記録する制御プログラム側の動作を示すものである。
ステップS1において、処理が開始されたか否かを判断する。上記のバイナリサーチの例では、レジスタ61−1への書き込みに応答してバイナリサーチ処理が開始されたか否かを判断する。処理が開始されると、ステップS2において、処理が完了したか否かを判断する。上記のバイナリサーチの例では、バイナリサーチ処理の完了によりレジスタ61−6に処理完了を示す値が書き込まれたか否かを判断する。
処理が完了していない場合にはステップS3で、カウント値をカウントアップする。ここで言うカウント値とは、RTL記述に基づく回路動作のシミュレーションにおいて、回路が同期して動作するクロックのサイクル数をカウントしたものである。ステップS2で処理が完了したと判断されると、その時のカウント値が遅延時間をクロックサイクル数で示したものとなる。なおカウント値は、処理開始時にゼロに初期化されている。
ステップS4で、今回測定された遅延時間(カウント値)が、最大遅延時間よりも大きいか否かを判断する。大きい場合にはステップS5で、今回測定された遅延時間を最大遅延時間とする。即ち、最大遅延時間を更新して、今回測定された遅延時間に等しい値に設定する。
以上の処理を繰り返すことにより、処理完了までにかかる時間が変動した場合、最大の遅延時間を検出することができる。この最大遅延時間を当該処理に時間情報として割り当てる。
図13は、遅延時間記録のための具体的構成の一例を示す図である。図13の周辺回路60Aは、図10に示したバイナリサーチ処理の例における周辺回路60に対して遅延時間記録機能を設けたものである。図13に示すように、インターフェースレジスタ61の個々のレジスタに対して遅延値記録装置65が割り当てられている。遅延値記録装置65は、対応レジスタに対応する処理が実行されたときに、その処理の遅延時間を記録する。この記録処理は、図12に示すように最大値を検出して記録する処理であってよい。
図14は、本発明による性能評価モデル生成方法及びステム性能評価方法を実行する装置の構成を示す図である。
図14に示されるように、本発明による性能評価モデル生成方法及びステム性能評価方法を実行する装置は、例えばパーソナルコンピュータやエンジニアリングワークステーション等のコンピュータにより実現される。図14の装置は、コンピュータ510と、コンピュータ510に接続されるディスプレイ装置520、通信装置523、及び入力装置よりなる。入力装置は、例えばキーボード521及びマウス522を含む。コンピュータ510は、CPU511、RAM512、ROM513、ハードディスク等の二次記憶装置514、可換媒体記憶装置515、及びインターフェース516を含む。
キーボード521及びマウス522は、ユーザとのインターフェースを提供するものであり、コンピュータ510を操作するための各種コマンドや要求されたデータに対するユーザ応答等が入力される。ディスプレイ装置520は、コンピュータ510で処理された結果等を表示すると共に、コンピュータ510を操作する際にユーザとの対話を可能にするために様々なデータ表示を行う。通信装置523は、遠隔地との通信を行なうためのものであり、例えばモデムやネットワークインターフェース等よりなる。
本発明による性能評価モデル生成方法及びステム性能評価方法は、コンピュータ510が実行可能なコンピュータプログラムとして提供される。このコンピュータプログラムは、可換媒体記憶装置515に装着可能な記憶媒体Mに記憶されており、記憶媒体Mから可換媒体記憶装置515を介して、RAM512或いは二次記憶装置514にロードされる。或いは、このコンピュータプログラムは、遠隔地にある記憶媒体(図示せず)に記憶されており、この記憶媒体から通信装置523及びインターフェース516を介して、RAM512或いは二次記憶装置514にロードされる。
キーボード521及び/又はマウス522を介してユーザからプログラム実行指示があると、CPU511は、記憶媒体M、遠隔地記憶媒体、或いは二次記憶装置514からプログラムをRAM512にロードする。CPU511は、RAM512の空き記憶空間をワークエリアとして使用して、RAM512にロードされたプログラムを実行し、適宜ユーザと対話しながら処理を進める。なおROM513は、コンピュータ510の基本動作を制御するための制御プログラムが格納されている。
上記コンピュータプログラムを実行することにより、コンピュータ510が、上記各実施例で説明されたように性能評価モデル生成方法及びステム性能評価方法を実行する。
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
一般的なシステムLSIの構成とその動作環境を説明する図である。 本発明の実施例である性能評価モデル生成方法を説明するための図である。 トランザクションの記録動作を説明するための図である。 記録されたトランザクションデータの書式の一例を示す図である。 本発明の実施例である性能評価モデル生成方法を説明するための図である。 本発明の実施例である性能評価モデル生成方法を説明するための図である。 本発明の実施例であるシステム性能評価方法の一例を説明するための図である。 本発明の実施例である性能評価モデル生成方法を含むシステム性能評価方法の全体の処理の流れ及びデータの流れ示す図である。 周辺回路による処理の具体例としてバイナリサーチのアルゴリズムを示すフローチャートである。 バイナリサーチを実行する周辺回路のインターフェースレジスタの機能を説明するための図である。 バイナリサーチ処理の始点と終点との関連づけを説明するための図である。 最大の遅延時間を抽出する処理の流れを示すフローチャートである。 遅延時間記録のための具体的構成の一例を示す図である。 本発明による性能評価モデル生成方法及びステム性能評価方法を実行する装置の構成を示す図である。
符号の説明
10 LSI
11 CPU
12 メモリ
13 周辺回路
14 周辺回路
15 バス
18 ソフトウェア
19 コンパイラ
20 LSIモデル
21 CPUモデル
23 周辺モデル
24 周辺モデル
25 観測装置
26 バス
30 インターフェースレジスタ
31 C関数
35 トランザクションデータ
510 コンピュータ
511 CPU
512 RAM
513 ROM
514 二次記憶装置
515 可換媒体記憶装置
516 インターフェース
520 ディスプレイ装置
521 キーボード
522 マウス
523 通信装置

Claims (10)

  1. トランザクションレベルで記述した機能モジュールの第1のモデルを用いて該機能モジュール間のトランザクションレベルにおいてシステムの動作の第1のシミュレーションを実行し、
    該第1のシミュレーションにおいて発生したトランザクションを各機能モジュール毎に記録し、
    ハードウェアレベルで記述した該機能モジュールの第2のモデルを用いて該機能モジュールの回路動作の第2のシミュレーションを実行することにより該記録されたトランザクションに関する各機能モジュール毎の遅延時間を求め、
    該遅延時間を示す情報を各機能モジュールの該第1のモデルに割り当てて各機能モジュール毎の第3のモデルを生成する
    各段階を含み、各段階をコンピュータが実行することを特徴とする性能評価モデル生成方法。
  2. 前記第1のモデルは、RTL(Register Transfer Level)より抽象度が高く、アプリケーションソフトウェアの実行命令単位で前記第1のシミュレーションを行うPV(Programmer's View)で記述されたモデルであることを特徴とする請求項1記載の性能評価モデル生成方法。
  3. 前記第2のモデルはRTL(Register Transfer Level)で記述されたモデルであることを特徴とする請求項1記載の性能評価モデル生成方法。
  4. 前記トランザクションは各機能モジュールの各インターフェースレジスタ毎に記録され、前記遅延時間は各インターフェースレジスタ毎に割り当てられることを特徴とする請求項1記載の性能評価モデル生成方法。
  5. トランザクションレベルで記述した機能モジュールの第1のモデルを用いて該機能モジュール間のトランザクションレベルにおいてシステムの動作の第1のシミュレーションを実行し、
    該第1のシミュレーションにおいて発生したトランザクションを各機能モジュール毎に記録し、
    ハードウェアレベルで記述した該機能モジュールの第2のモデルを用いて該機能モジュールの回路動作の第2のシミュレーションを実行することにより該記録されたトランザクションに関する各機能モジュール毎の遅延時間を求め、
    該遅延時間を示す情報を各機能モジュールの該第1のモデルに割り当てて各機能モジュール毎の第3のモデルを生成し、
    該第3のモデルを用いて該機能モジュール間のトランザクションレベルにおいて前記システムの動作の第3のシミュレーションを実行して該システムの動作の処理時間を求める
    各段階を含み、各段階をコンピュータが実行することを特徴とするシステム性能評価方法。
  6. 前記第1のモデルは、RTL(Register Transfer Level)より抽象度が高く、アプリケーションソフトウェアの実行命令単位で前記第1のシミュレーションを行うPV(Programmer's View)で記述されたモデルであることを特徴とする請求項5記載のシステム性能評価方法。
  7. 前記第2のモデルはRTL(Register Transfer Level)で記述されたモデルであることを特徴とする請求項5記載のシステム性能評価方法。
  8. 前記トランザクションは各機能モジュールの各インターフェースレジスタ毎に記録され、前記遅延時間は各インターフェースレジスタ毎に割り当てられることを特徴とする請求項5記載のシステム性能評価方法。
  9. トランザクションレベルで記述した機能モジュールの第1のモデルと、ハードウェアレベルで記述した該機能モジュールの第2のモデルと、CPUモデルと、該CPU及び該機能モジュールから構成されるシステムにおいて実行されるソフトウェアのプログラムとを格納するメモリと、
    該メモリに格納された該プログラムを該CPUモデルで実行することにより、該メモリに格納された該機能モジュールの該第1及び第2のモデルに基づいて該システムの動作をシミュレートする演算処理ユニットを含み、該演算処理ユニットは、
    該第1のモデルを用いて該機能モジュール間のトランザクションレベルにおいて該システムの動作の第1のシミュレーションを実行し、
    該第1のシミュレーションにおいて発生したトランザクションを各機能モジュール毎に該メモリに記録し、
    該第2のモデルを用いて該機能モジュールの回路動作の第2のシミュレーションを実行することにより該記録されたトランザクションに関する各機能モジュール毎の遅延時間を求め、
    該遅延時間を示す情報を各機能モジュールの該第1のモデルに割り当てて各機能モジュール毎の第3のモデルを生成する
    各段階をコンピュータに実行させることを特徴とする性能評価モデル生成装置。
  10. 前記メモリに記録されるトランザクションは、各機能モジュールの各インターフェースレジスタ毎の書き込みデータ及び読み出しデータを各動作サイクルに関して記録したものであることを特徴とする請求項9記載の性能評価モデル生成装置。
JP2007318093A 2007-12-10 2007-12-10 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置 Expired - Fee Related JP5034916B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007318093A JP5034916B2 (ja) 2007-12-10 2007-12-10 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置
US12/289,759 US8700380B2 (en) 2007-12-10 2008-11-03 Method for generating performance evaluation model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007318093A JP5034916B2 (ja) 2007-12-10 2007-12-10 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置

Publications (2)

Publication Number Publication Date
JP2009140388A JP2009140388A (ja) 2009-06-25
JP5034916B2 true JP5034916B2 (ja) 2012-09-26

Family

ID=40722523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007318093A Expired - Fee Related JP5034916B2 (ja) 2007-12-10 2007-12-10 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置

Country Status (2)

Country Link
US (1) US8700380B2 (ja)
JP (1) JP5034916B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7521481B2 (en) 2003-02-27 2009-04-21 Mclaurin Joanne Methods of preventing, treating and diagnosing disorders of protein aggregation
JP5909958B2 (ja) * 2011-09-22 2016-04-27 株式会社ソシオネクスト 協調検証方法及び協調検証装置
JP2015184818A (ja) * 2014-03-20 2015-10-22 株式会社東芝 サーバ、モデル適用可否判定方法およびコンピュータプログラム
US9846627B2 (en) * 2015-02-13 2017-12-19 North Carolina State University Systems and methods for modeling memory access behavior and memory traffic timing behavior
JP6712052B2 (ja) * 2016-06-29 2020-06-17 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US10289779B2 (en) 2017-04-18 2019-05-14 Raytheon Company Universal verification methodology (UVM) register abstraction layer (RAL) traffic predictor

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5953519A (en) * 1995-06-12 1999-09-14 Fura; David A. Method and system for generating electronic hardware simulation models
US6182258B1 (en) * 1997-06-03 2001-01-30 Verisity Ltd. Method and apparatus for test generation during circuit design
US6169968B1 (en) * 1997-07-09 2001-01-02 Matsushita Electric Industrial Co., Ltd. Apparatus and method for estimating performance integrated circuit
US6553472B2 (en) * 2001-01-12 2003-04-22 Sun Microsystems, Inc. Method for programming clock delays, command delays, read command parameter delays, and write command parameter delays of a memory controller in a high performance microprocessor
JP2004013227A (ja) * 2002-06-03 2004-01-15 Matsushita Electric Ind Co Ltd シミュレーション装置並びにシミュレーションモデル生成プログラム
JP4262174B2 (ja) * 2004-09-09 2009-05-13 キヤノン株式会社 シミュレーション時間取得方法

Also Published As

Publication number Publication date
JP2009140388A (ja) 2009-06-25
US20090150137A1 (en) 2009-06-11
US8700380B2 (en) 2014-04-15

Similar Documents

Publication Publication Date Title
US7472361B2 (en) System and method for generating a plurality of models at different levels of abstraction from a single master model
US8122398B2 (en) Conversion of circuit description to an abstract model of the circuit
JP6448195B2 (ja) ランタイムにfpgaの信号値にランダムにアクセスするための方法、データ処理装置、コンピュータプログラム、ディジタル記憶媒体及びfpgaビルドの実施方法
US20060130029A1 (en) Programming language model generating apparatus for hardware verification, programming language model generating method for hardware verification, computer system, hardware simulation method, control program and computer-readable storage medium
JP5034916B2 (ja) 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置
KR20220148913A (ko) 초기 단계 회로 설계에서 기계 학습 기반 메트릭 예측
JP4175953B2 (ja) 高位合成装置、ハードウェア検証用モデル生成方法、ハードウェア検証方法、制御プログラムおよび可読記録媒体
JP2008299464A (ja) 消費電力計算方法、消費電力計算プログラムおよび消費電力計算装置
JP2005108007A (ja) Lsi設計検証装置及びlsi設計検証方法
US20140325468A1 (en) Storage medium, and generation apparatus for generating transactions for performance evaluation
JP5454349B2 (ja) 性能推定装置
US10223077B2 (en) Determination of signals for readback from FPGA
JP4881769B2 (ja) 半導体集積回路設計支援装置、半導体集積回路設計支援方法、半導体集積回路設計支援プログラム
JP5001126B2 (ja) ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムおよび可読記録媒体
JP2007018313A (ja) 回路設計プログラム、回路設計装置、回路設計方法
US20190012418A1 (en) Simulation program, method, and device
US6339751B1 (en) Circuit design support apparatus and a method
JP5390464B2 (ja) シミュレーション装置、シミュレーション装置の制御方法およびプログラム
JP5110206B2 (ja) 動作合成装置、動作合成方法、ならびに、プログラム
KR100928181B1 (ko) 디지털 시스템 설계 방법
US8495539B1 (en) Scheduling processes in simulation of a circuit design
KR100871839B1 (ko) 스크립트 기반의 애니메이션을 이용한 전자 회로 설계 검증 방법
JP2004145670A (ja) テストベンチ生成方法、テストベンチ生成装置、及びコンピュータプログラム
JP5287132B2 (ja) 設計支援プログラム、設計支援装置、およびシミュレーションモデル
JP3048969B2 (ja) サイクルベースシミュレータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100824

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120409

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: 20120605

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120618

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

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