(57)【特許請求の範囲】
【請求項１】
トランザクションレベルで記述した機能モジュールの第１のモデルを用いて該機能モジュール間のトランザクションレベルにおいてシステムの動作の第１のシミュレーションを実行し、
該第１のシミュレーションにおいて発生したトランザクションを各機能モジュール毎に記録し、
ハードウェアレベルで記述した該機能モジュールの第２のモデルを用いて該機能モジュールの回路動作の第２のシミュレーションを実行することにより該記録されたトランザクションに関する各機能モジュール毎の遅延時間を求め、
該遅延時間を示す情報を各機能モジュールの該第１のモデルに割り当てて各機能モジュール毎の第３のモデルを生成する
各段階を含み、各段階をコンピュータが実行することを特徴とする性能評価モデル生成方法。
【請求項２】
前記第１のモデルは、ＲＴＬ（Register Transfer Level）より抽象度が高く、アプリケーションソフトウェアの実行命令単位で前記第１のシミュレーションを行うＰＶ（Programmer's View）で記述されたモデルであることを特徴とする請求項１記載の性能評価モデル生成方法。
【請求項３】
前記第２のモデルはＲＴＬ（Register Transfer Level）で記述されたモデルであることを特徴とする請求項１記載の性能評価モデル生成方法。
【請求項４】
前記トランザクションは各機能モジュールの各インターフェースレジスタ毎に記録され、前記遅延時間は各インターフェースレジスタ毎に割り当てられることを特徴とする請求項１記載の性能評価モデル生成方法。
【請求項５】
トランザクションレベルで記述した機能モジュールの第１のモデルを用いて該機能モジュール間のトランザクションレベルにおいてシステムの動作の第１のシミュレーションを実行し、
該第１のシミュレーションにおいて発生したトランザクションを各機能モジュール毎に記録し、
ハードウェアレベルで記述した該機能モジュールの第２のモデルを用いて該機能モジュールの回路動作の第２のシミュレーションを実行することにより該記録されたトランザクションに関する各機能モジュール毎の遅延時間を求め、
該遅延時間を示す情報を各機能モジュールの該第１のモデルに割り当てて各機能モジュール毎の第３のモデルを生成し、
該第３のモデルを用いて該機能モジュール間のトランザクションレベルにおいて前記システムの動作の第３のシミュレーションを実行して該システムの動作の処理時間を求める
各段階を含み、各段階をコンピュータが実行することを特徴とするシステム性能評価方法。
【請求項６】
前記第１のモデルは、ＲＴＬ（Register Transfer Level）より抽象度が高く、アプリケーションソフトウェアの実行命令単位で前記第１のシミュレーションを行うＰＶ（Programmer's View）で記述されたモデルであることを特徴とする請求項５記載のシステム性能評価方法。
【請求項７】
前記第２のモデルはＲＴＬ（Register Transfer Level）で記述されたモデルであることを特徴とする請求項５記載のシステム性能評価方法。
【請求項８】
前記トランザクションは各機能モジュールの各インターフェースレジスタ毎に記録され、前記遅延時間は各インターフェースレジスタ毎に割り当てられることを特徴とする請求項５記載のシステム性能評価方法。
【請求項９】
トランザクションレベルで記述した機能モジュールの第１のモデルと、ハードウェアレベルで記述した該機能モジュールの第２のモデルと、ＣＰＵモデルと、該ＣＰＵ及び該機能モジュールから構成されるシステムにおいて実行されるソフトウェアのプログラムとを格納するメモリと、
該メモリに格納された該プログラムを該ＣＰＵモデルで実行することにより、該メモリに格納された該機能モジュールの該第１及び第２のモデルに基づいて該システムの動作をシミュレートする演算処理ユニットを含み、該演算処理ユニットは、
該第１のモデルを用いて該機能モジュール間のトランザクションレベルにおいて該システムの動作の第１のシミュレーションを実行し、
該第１のシミュレーションにおいて発生したトランザクションを各機能モジュール毎に該メモリに記録し、
該第２のモデルを用いて該機能モジュールの回路動作の第２のシミュレーションを実行することにより該記録されたトランザクションに関する各機能モジュール毎の遅延時間を求め、
該遅延時間を示す情報を各機能モジュールの該第１のモデルに割り当てて各機能モジュール毎の第３のモデルを生成する
各段階をコンピュータに実行させることを特徴とする性能評価モデル生成装置。
【請求項１０】
前記メモリに記録されるトランザクションは、各機能モジュールの各インターフェースレジスタ毎の書き込みデータ及び読み出しデータを各動作サイクルに関して記録したものであることを特徴とする請求項９記載の性能評価モデル生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に計算機利用設計に関し、詳しくは計算機利用設計における設計対象システムの性能評価に関する。
【背景技術】
【０００２】
ＣＰＵやメモリ等を含む各種機能モジュールが１つのＬＳＩに搭載されたシステムＬＳＩの開発においては、ＬＳＩの回路規模が大きいために、システム全体の動作を検証するためのシミュレーションに時間がかかるという問題がある。開発するＬＳＩのシステム全体としての処理能力を評価するためには、ハードウェアとソフトウェアとを同時に動作させた検証を行うことが必要である。しかしながら、回路記述用のＲＴＬ（Register Transfer Level）を用いて検証を行なったのでは、具体的なハードウェア構成のレベルでシステム全体のシミュレーションを実行することになり、莫大な計算時間がかかってしまうという問題がある。実際には、ＲＴＬを用いた検証手法では、巨大なシステム全体の動作を検証しシステム性能を見積もることは不可能な状況となっている。
【０００３】
高精度であるが速度が遅いＲＴＬを用いた設計・検証手法に代わり、より抽象度を上げて、プログラマから見た視点としてアプリケーションソフトウェアの実行命令単位で設計・検証するＰＶ（Programmer’s View）がある。ＰＶでは、モデル化されたＣＰＵによりアプリケーションソフトウェアの命令を実行し、各種機能モジュール間でバスを介したトランザクションを実行し、トランザクションレベルでのモデリングによりシステム全体の動作を表現する。なおトランザクションレベルモデリング（ＴＬＭ）とは、関数コールによる通信を用いたモデリングであり、ＯＳＣＩ（Open SystemC Initiative）等の標準化団体により標準化が進められている。ＰＶを用いれば大規模ＬＳＩの動作検証を行なうことができるが、ＰＶでは時間を表現する記述がなく、システム全体の処理速度に応じたシステム性能の評価ができないという問題がある。
【０００４】
動作検証だけでなくシステム評価を行なうために、ＰＶにおいて時間の概念を取り入れたモデルとしてＰＶＴ（Programmer’s View with Timing）がある。しかしながら、各機能モジュールの時間を如何にして測定してＰＶモデルに組み込むかについて、具体的な方法は提供されていない。
【特許文献１】特開２００６−７９３６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
以上を鑑みて、本発明は、トランザクションレベルでシステムの動作を表現したモデルに時間情報を組み込むことにより性能評価モデルを生成する方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
性能評価モデル生成方法は、トランザクションレベルで記述した機能モジュールの第１のモデルを用いて該機能モジュール間のトランザクションレベルにおいてシステムの動作の第１のシミュレーションを実行し、該第１のシミュレーションにおいて発生したトランザクションを各機能モジュール毎に記録し、ハードウェアレベルで記述した該機能モジュールの第２のモデルを用いて該機能モジュールの回路動作の第２のシミュレーションを実行することにより該記録されたトランザクションに関する各機能モジュール毎の遅延時間を求め、該遅延時間を示す情報を各機能モジュールの該第１のモデルに割り当てて各機能モジュール毎の第３のモデルを生成する各段階を含み、各段階をコンピュータが実行することを特徴とする。
【０００７】
システム性能評価方法は、トランザクションレベルで記述した機能モジュールの第１のモデルを用いて該機能モジュール間のトランザクションレベルにおいてシステムの動作の第１のシミュレーションを実行し、該第１のシミュレーションにおいて発生したトランザクションを各機能モジュール毎に記録し、ハードウェアレベルで記述した該機能モジュールの第２のモデルを用いて該機能モジュールの回路動作の第２のシミュレーションを実行することにより該記録されたトランザクションに関する各機能モジュール毎の遅延時間を求め、該遅延時間を示す情報を各機能モジュールの該第１のモデルに割り当てて各機能モジュール毎の第３のモデルを生成し、該第３のモデルを用いて該機能モジュール間のトランザクションレベルにおいて前記システムの動作の第３のシミュレーションを実行して該システムの動作の処理時間を求める各段階を含み、各段階をコンピュータが実行することを特徴とする。
【０００８】
性能評価モデル生成装置は、トランザクションレベルで記述した機能モジュールの第１のモデルと、ハードウェアレベルで記述した該機能モジュールの第２のモデルと、ＣＰＵモデルと、該ＣＰＵ及び該機能モジュールから構成されるシステムにおいて実行されるソフトウェアのプログラムとを格納するメモリと、該メモリに格納された該プログラムを該ＣＰＵモデルで実行することにより、該メモリに格納された該機能モジュールの該第１及び第２のモデルに基づいて該システムの動作をシミュレートする演算処理ユニットを含み、該演算処理ユニットは、該第１のモデルを用いて該機能モジュール間のトランザクションレベルにおいて該システムの動作の第１のシミュレーションを実行し、該第１のシミュレーションにおいて発生したトランザクションを各機能モジュール毎に該メモリに記録し、該第２のモデルを用いて該機能モジュールの回路動作の第２のシミュレーションを実行することにより該記録されたトランザクションに関する各機能モジュール毎の遅延時間を求め、該遅延時間を示す情報を各機能モジュールの該第１のモデルに割り当てて各機能モジュール毎の第３のモデルを生成する各段階を実行することを特徴とする。
【発明の効果】
【０００９】
本発明の少なくとも１つの実施例によれば、トランザクションレベルでシステムの動作を表現したモデルに時間情報を組み込むことにより、ハードウェアとソフトウェアとを統合した環境におけるシステムの性能を高速且つ正確に測定することが可能となる。
【発明を実施するための最良の形態】
【００１０】
図１は、一般的なシステムＬＳＩの構成とその動作環境を説明する図である。図１を用いて、まず一般的なＬＳＩのシステム構成について説明する。ＬＳＩ１０は、ＣＰＵ１１、メモリ１２、周辺回路１３、周辺回路１４、及びバス１５を含む。ＣＰＵ１１、メモリ１２、周辺回路１３、及び周辺回路１４は、バス１５により互いに双方向通信可能に結合される。
【００１１】
ソフトウェア１８はコンパイラ１９により機械語の命令系列である実行可能形式ファイルに変換され、ＬＳＩ１０のメモリ１２へロードされる。その実行可能形式ファイルの各命令をＣＰＵ１１が読み込んで実行することにより、必要に応じてバス１５を介してメモリ１２、周辺回路１３、及び周辺回路１４との間でトランザクションを実行しながら、システム全体の動作が進行する。
【００１２】
このようなシステムを開発する場合、ＬＳＩ１０の各機能モジュール（ＣＰＵ１１、メモリ１２、周辺回路１３、周辺回路１４）のハードウェアレベルでの回路構成をＲＴＬで記述し、各機能モジュールの動作を検証する。ＲＴＬで記述された各機能モジュールはクロック単位で動作が規定されるので、クロック単位の精度で性能評価することができる。しかしＲＴＬ記述を用いてクロック単位の精度でシステム全体の検証を行うことは、莫大な計算量が必要になり困難である。
【００１３】
システム全体の動作を検証するためには、プログラマから見た視点としてアプリケーションソフトウェアの実行命令単位で設計・検証するＰＶ（Programmer’s View）を用いればよい。ＰＶでは、モデル化されたＣＰＵによりアプリケーションソフトウェアの命令を実行し、各種機能モジュール間でバスを介したトランザクションを実行し、トランザクションレベルでシステム全体の動作を表現する。各機能モジュールの振る舞いはデータ入力及びデータ出力に関して規定されており、トランザクションとしてのデータ入力があると所定の対応する処理を実行し、処理の結果をトランザクションとしてデータ出力する。このようにＣＰＵがプログラム命令を実行する単位に対応させて各機能モジュールを簡略化したＰＶモデルを用いれば、検証シミュレーションの速度を向上させることができる。
【００１４】
ＰＶは、ＣＰＵによるプログラム命令実行の順序を表現できるレベルにまで簡略化されたモデルであり、クロック単位での動作を表現してシステムの処理能力を測定することができない。システムの処理能力を正確に見積もるためには、シミュレーションにおいて各機能モジュールの処理にかかる時間を正確に反映させる必要がある。
【００１５】
図２は、本発明の実施例である性能評価モデル生成方法を説明するための図である。ＬＳＩモデル２０は、図１のＬＳＩ１０をソフトウェアでモデル化したものであり、ＣＰＵモデル２１、周辺モデル２３、周辺モデル２４、観測装置２５、及びバス２６を含む。ＣＰＵモデル２１、周辺モデル２３、及び周辺モデル２４は、それぞれ図１のＣＰＵ１１、周辺回路１３、及び周辺回路１４をＰＶでモデル化したものである。図２では、メモリのモデルの図示が省略されているが、図１のメモリ１２をモデル化したものを同様に周辺モデルとして含んでよい。
【００１６】
本実施例の性能評価モデル生成方法では、機能モジュール（ＣＰＵ１１、周辺回路１３、及び周辺回路１４）をトランザクションレベルで記述した第１のモデル（ＣＰＵモデル２１、周辺モデル２３、及び周辺モデル２４）を用いて、機能モジュール間のトランザクションレベルにおいてシステム（ＬＳＩ１０）の動作のシミュレーションを実行する。即ちＣＰＵモデル２１によりアプリケーション２７のプログラムの各命令を実行することにより、プログラムの各命令の実行に応じて各機能モジュール間にトランザクションが発生し、システム全体の動作が進行する。そして、このシミュレーションにおいて発生したトランザクションを各機能モジュール毎に観測装置２５により記録する。図２に示す例では周辺モデル２４を観測対象として、この観測対象の周辺モデル２４のトランザクションを記録する観測装置が示されている。観測装置２５は、周辺モデル２４がバス２６へ接続される箇所に接続され、当該周辺回路２４へ入力されるトランザクションの履歴を記録する。
【００１７】
図３は、トランザクションの記録動作を説明するための図である。図３に示すように、周辺モデル２４は、複数のレジスタから構成されるインターフェースレジスタ（Ｉ／Ｆレジスタ）３０と、周辺モデル２４の振る舞いを定義するＣ関数３１を含む。Ｃ関数３１は必ずしもＣ言語で記述された関数である必要はなく、当該周辺回路の振る舞いを適切に定義できる言語で記述された関数であればよい。インターフェースレジスタ３０は、バス２６に対する周辺モデル２４のデータ入出力のために設けられる複数のレジスタからなるレジスタ群であり、各レジスタにはバス２６からのアクセスのための固有のアドレスが割り当てられている。
【００１８】
図３に示す例では、インターフェースレジスタ３０のレジスタ３０−１にバス２６を介して所定のデータを書き込む動作（ｗｒｉｔｅ動作）を実行することにより、Ｃ関数３１で規定される処理動作を開始する。Ｃ関数３１で規定される処理動作が終了すると、その処理の結果に応じたデータ（処理結果のデータ或いは処理終了を示すデータ）がインターフェースレジスタ３０のレジスタ３０−２に格納される。バス２６からデータ読み出し動作（ｒｅａｄ動作）によりレジスタ３０−２の内容を読み出すことで、周辺モデル２４の処理の結果を例えばＣＰＵモデル２１が入手する。これらデータ書き込み動作及びデータ読み出し動作がバス２６を介したトランザクションであり、このトランザクションの履歴をトランザクションデータ３５として記録する。このトランザクションの主体は主にＣＰＵモデル２１であるが、他の周辺モデル２３がバスマスタとして機能してトランザクションを発生させてもよい。
【００１９】
図２に示すＬＳＩモデル２０にアプリケーション２７を実行させることにより、上記のようにしてシステム動作のシミュレーションを実行し、シミュレーションにおいて発生したトランザクションを機能モジュール毎に観測装置により記録する。各機能モジュールに対して観測装置を設けることにより、一度のシミュレーションにより全ての機能モジュールに関してトランザクションを記録することができる。
【００２０】
図４は、記録されたトランザクションデータの書式の一例を示す図である。図４に示すようにトランザクションデータは、インターフェースレジスタ３０の個々のレジスタに割り当てられた各アドレス０ｘ００、０ｘ０４、０ｘ０８、・・・に対して、動作サイクルＴ０、Ｔ１、Ｔ２、・・・毎に書き込みデータ或いは読み出しデータを記録したものである。図４の例では、アドレス０ｘ０４のレジスタにサイクルＴ０でデータ０ｘａａが書き込まれている。またアドレス０ｘ０８のレジスタにサイクルＴ１でデータ０ｘ０４が書き込まれている。また例えば、アドレス０ｘ１４のレジスタからサイクルＴ４でデータ０ｘ０１が読み出されている。
【００２１】
図４に示す例ではアドレスは０ｘ１４まで示されているが、例えば周辺モデル２４にアドレス０ｘ３２のレジスタまで設けられているとすると、周辺モデル２４のトランザクションデータはアドレス０ｘ００から０ｘ３２までの各アドレスに対応して各行が設けられることになる。このように、トランザクションは各機能モジュールの各インターフェースレジスタ毎に記録されてよい。また図４に示す例ではサイクルはＴ５まで示されているが、Ｔ５以降もシミュレーション実行が続く限りはそれに対応するサイクルが続くことになる。なおここで言う動作サイクルとは、ＣＰＵモデル２１による１つの命令の実行に一対一に対応するサイクルであり、各トランザクションの実行に一対一に対応するサイクルでもある。
【００２２】
図５は、本発明の実施例である性能評価モデル生成方法を説明するための図である。図３に示すようにしてトランザクションデータ３５を記録すると、その後、ＲＴＬ記述に基づいてトランザクションデータ３５に対応する処理動作のシミュレーションを実行する。
【００２３】
図５において、周辺モデル２４Ａは図１の周辺回路１４をＲＴＬ記述４１によりモデル化したものであり、レジスタ間のデータ転送のレベルで回路の動作を規定したものである。周辺モデル２４Ａにはクロック信号が入力され、このクロックの各パルスに同期して回路内部でデータがフリップフロップからフリップフロップへと転送されていく。トランザクションデータ３５には、周辺モデル２４についてインターフェースレジスタ３０のレジスタ３０−１へのデータ書き込みとレジスタ３０−２からのデータ読み出しとが記録されている。このトランザクションデータ３５に基づいて、周辺モデル２４Ａにおいて、インターフェースレジスタ３０のレジスタ３０−１へのデータ書き込みに応答して、このデータ書き込みに対応する処理動作をＲＴＬ記述４１に基づいてシミュレーションする。この処理動作が終了すると、その処理の結果に応じたデータ（処理結果のデータ或いは処理終了を示すデータ）がインターフェースレジスタ３０のレジスタ３０−２に格納される。この処理の実行にかかった時間、即ちインターフェースレジスタ３０のレジスタ３０−１へのデータ書き込みからインターフェースレジスタ３０のレジスタ３０−２への処理結果の格納までに経過した時間が、このトランザクションに関する周辺モデル２４Ａの処理の遅延時間として求められる。この遅延時間は、ＲＴＬ記述のモデルが動作するクロックのサイクル数で表現されてよい。
【００２４】
このようにして、機能モジュール（周辺回路１４）をハードウェアレベルで記述した第２のモデル（周辺モデル２４Ａ）を用いて当該機能モジュールの回路動作の第２のシミュレーションを実行することにより、記録されたトランザクション（トランザクションデータ３５として記録されたレジスタ３０−１へのデータ書き込みとレジスタ３０−２からのデータ読み出し）に関する当該機能モジュールの遅延時間を求める。これを各機能モジュール毎に行なうことで、各機能モジュール毎の遅延時間を求める。なお遅延時間は各インターフェースレジスタ毎に求めてよい。即ち、例えば図５に示すインターフェースレジスタ３０のレジスタ３０−３に対するデータ書き込みに対応して所定の処理動作が実行される場合、この処理動作の遅延時間をレジスタ３０−３に対応する処理の遅延時間として、前記のレジスタ３０−１に対応する処理の遅延時間とは別個に求めてよい。１つのレジスタに対して複数の処理動作が実行されそれぞれの遅延時間が異なるときは、最長の遅延時間（最悪条件の遅延時間）をそのレジスタの遅延時間として求めてよい。また、ある機能モジュールにおいて、あるトランザクションに応答して割込みが発生する場合には、割込み発生までの時間を遅延時間として求めてよい。
【００２５】
図６は、本発明の実施例である性能評価モデル生成方法を説明するための図である。図５に示すようにしてトランザクションデータ３５に基づいて遅延時間が求められると、その後、求められた遅延時間をＰＶモデルに組み込む処理を実行する。図６において、図３と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００２６】
図６において、周辺モデル２４Ｂは、複数のレジスタから構成されるインターフェースレジスタ３０と、周辺モデル２４の振る舞いを定義するＣ関数３１Ｂを含む。Ｃ関数３１Ｂは、図３に示すＣ関数３１と同等の関数であり、遅延時間に関する情報が組み込まれている点のみがＣ関数３１とは相違する。この遅延時間に関する情報は、図５で説明したレジスタ３０−１へのデータ書き込みとレジスタ３０−２からのデータ読み出しのトランザクションに対応する処理の遅延時間の長さを示すデータである。遅延時間の長さは、ＲＴＬ記述のモデルが動作するクロックのサイクル数で表現されてよい。
【００２７】
このように、遅延時間を示す情報を機能モジュールの第１のモデル（ＰＶモデルである周辺モデル２４）に割り当てて機能モジュールの第３のモデル（周辺モデル２４Ｂ）を生成する。これを各機能モジュール毎に行なうことで、各機能モジュールの第３のモデルを生成する。このようにして生成された各機能モジュールの第３のモデルでは、その処理動作にかかる処理時間がクロックのサイクル単位の精度で分かっていることになる。
【００２８】
図７は、本発明の実施例であるシステム性能評価方法の一例を説明するための図である。図７において、ＬＳＩモデル２０Ｂは、図１のＬＳＩ１０をソフトウェアでモデル化したものであり、ＣＰＵモデル２１Ｂ、周辺モデル２３Ｂ、周辺モデル２４Ｂ、及びバス２６を含む。ＣＰＵモデル２１Ｂ、周辺モデル２３Ｂ、及び周辺モデル２４Ｂは、それぞれ図２のＣＰＵモデル２１、周辺モデル２３、及び周辺モデル２４に対して遅延時間に関する情報Ｔｉｍｅが付加されたモデルである。周辺モデル２４Ｂは、図６に示す周辺モデル２４Ｂに相当するものである。
【００２９】
各機能モジュール（ＣＰＵ１１、周辺回路１３、及び周辺回路１４）の第３のモデル（ＣＰＵモデル２１Ｂ、周辺モデル２３Ｂ、周辺モデル２４Ｂ）では、その処理動作にかかる処理時間がクロックのサイクル単位の精度で時間情報Ｔｉｍｅとして分かっている。従って、この時間情報Ｔｉｍｅが示す時間長を考慮しながらトランザクションレベルでのシステム全体の動作のシミュレーションを再度実行することで、システム全体の性能評価をすることができる。即ち、第３のモデルを用いて機能モジュール間のトランザクションレベルにおいてシステムの動作の第３のシミュレーションを実行することにより、システムの動作の処理時間を求めることができる。
【００３０】
図８は、本発明の実施例である性能評価モデル生成方法を含むシステム性能評価方法の全体の処理の流れ及びデータの流れ示す図である。
【００３１】
まず実行対象のアプリケーションソフトウェアからアセンブラ５０により実行可能形式プログラムを生成してメモリ５１に格納する。このメモリ５１は、例えば図１のメモリ１２に対応するＰＶモデルであってよい。ＣＰＵ５２は、命令セットシミュレータとしてソフトウェアで構成したＣＰＵのモデルであり、上記実行可能形式プログラムを実行する。このＣＰＵ５２は、例えば図１のＣＰＵ１１に相当する。周辺回路５４は、周辺回路のＰＶモデルであり、例えば図１の周辺回路１３及び１４に相当する。トランザクション記録装置５３は、各機能モジュールに対するトランザクションを記録するための機構であり、図２の観測装置２５に相当する。トランザクション記録装置５３は、周辺回路がバスへ接続される箇所に接続され、当該周辺回路へ入力されるトランザクションの履歴を記録するものである。
【００３２】
これらのメモリ５１、ＣＰＵ５２、及び周辺回路５４から構成されるシステムに対して、ステップＳ１において、ハードウェアとソフトウェアとの協調動作の検証シミュレーションを実行する。即ち、ＣＰＵ５２によりメモリ５１のアプリケーションプログラムを実行することにより、トランザクションレベルにおいて当該システムの動作をシミュレーションする。この際、トランザクション記録装置５３により各周辺回路５４へのトランザクションを記録することにより、トランザクション記録５５が生成される。トランザクション記録５５は、図３のトランザクションデータ３５に相当するものである。
【００３３】
ステップＳ２において、トランザクション記録５５とＲＴＬ記述の周辺回路５６とに基づいて、周辺回路単体の性能検証を行なう。即ち、図５を参照して説明したように、ＲＴＬ記述された周辺回路５６をクロックに同期して動作させ、インターフェースレジスタの各レジスタ毎にトランザクション記録５５に記録されたトランザクションについて、対応する処理動作の遅延時間を測定する。シミュレーションの結果、遅延時間の長さを示すデータが性能情報５７として得られる。この性能情報５７は、各周辺回路がトランザクションに応答して実行する処理について遅延時間を示すものであり、各周辺回路単体の性能を示す情報である。
【００３４】
次にこの性能情報５７をＰＶモデルの周辺回路５４に組み込むことで、ＰＶＴモデルの周辺回路５８を生成する。即ち、図６を参照して説明したように、ＰＶモデルのＣ関数に、そのＣ関数の実行開始から終了までに要する時間をクロックサイクル数で示した情報を割り当てる。これにより、そのＣ関数の処理を実行したときに必要な処理時間を知ることができる。
【００３５】
ステップＳ３で、メモリ５１、ＣＰＵ５２、及び周辺回路５８から構成されるシステムに対して、ハードウェアとソフトウェアとの協調動作の検証シミュレーションを実行する。即ち、ＣＰＵ５２によりメモリ５１のアプリケーションプログラムを実行することにより、トランザクションレベルにおいて当該システムの動作をシミュレーションする。この際、
各機能モジュールのＰＶＴモデルでは、その処理動作にかかる処理時間がクロックのサイクル単位の精度で時間情報として分かっている。従って、この時間情報Ｔｉｍｅが示す時間長を考慮しながらトランザクションレベルでのシステム全体の動作のシミュレーションを再度実行することで、システム全体の性能評価をすることができる。こうして性能評価情報５９が得られることになる。この性能評価情報５９は、例えば、所定のシステム動作を実行するのに必要な時間を示す情報である。
【００３６】
図９は、周辺回路による処理の具体例としてバイナリサーチのアルゴリズムを示すフローチャートである。図１０は、バイナリサーチを実行する周辺回路のインターフェースレジスタの機能を説明するための図である。
【００３７】
図９のステップＳ１で、検索値が入力される。これは図１０の周辺回路６０において、ＣＰＵ６２からインターフェースレジスタ６１のレジスタ６１−２に検索対象の値を書き込むことに相当する。レジスタ６１−２のアドレスは０ｘ０４であり、その機能は検索値格納機能である。
【００３８】
ステップＳ２で、最小値及び最大値が入力される。これは周辺回路６０において、ＣＰＵ６２からインターフェースレジスタ６１のレジスタ６１−３及び６１−４にそれぞれ最小値及び最大値を書き込むことに相当する。レジスタ６１−３のアドレスは０ｘ０８であり、その機能は最小値格納機能である。またレジスタ６１−４のアドレスは０ｘ０Ｃであり、その機能は最大値格納機能である。
【００３９】
ステップＳ３で、開始レジスタへの書き込み動作を実行する。これは周辺回路６０において、ＣＰＵ６２からインターフェースレジスタ６１のレジスタ６１−１にバイナリサーチ処理開始を指示する値を書き込むことに相当する。レジスタ６１−１のアドレスは０ｘ００であり、その機能はバイナリサーチ開始指示である。即ち、レジスタ６１−１にバイナリサーチ処理開始を指示する値を書き込むと、これに応答して周辺回路６０がバイナリサーチ処理を開始する。
【００４０】
ステップＳ４で、周辺回路６０の実行するバイナリサーチ処理が最小値と最大値との和を２で割ることにより中央値を求める。ステップＳ５で、周辺回路６０の実行するバイナリサーチ処理が測定値（検索値）と中央値とが等しいか否かを判定する。検索値と中央値とが異なる場合にはステップＳ６に進む。
【００４１】
ステップＳ６において、周辺回路６０の実行するバイナリサーチ処理が測定値（検索値）が中央値よりも大きいか否かを判定する。測定値（検索値）が中央値よりも大きい場合には、ステップＳ７で最小値を中央値として、ステップＳ４に戻る。測定値（検索値）が中央値よりも大きくない場合には、ステップＳ８で最大値を中央値として、ステップＳ４に戻る。
【００４２】
ステップＳ５で測定値（検索値）と中央値とが等しいと判定されると、処理はステップＳ９に進む。ステップＳ９で、完了レジスタにバイナリサーチ処理が完了したことを示す値を格納する。これは周辺回路６０において、バイナリサーチ処理によりインターフェースレジスタ６１のレジスタ６１−６に処理完了を示す値を書き込むことに相当する。レジスタ６１−６のアドレスは０ｘ１４であり、その機能はバイナリサーチ完了通知である。
【００４３】
ステップＳ１０で、検索結果を格納する。これは周辺回路６０において、バイナリサーチ処理によりインターフェースレジスタ６１のレジスタ６１−５に検索結果を示す値を書き込むことに相当する。レジスタ６１−５のアドレスは０ｘ１０であり、その機能はバイナリサーチ検索結果格納である。
【００４４】
上記のようにして、あるトランザクションが周辺回路６０のインターフェースレジスタ６１のレジスタ６１−１への書き込みを実行すると、それに応答してバイナリサーチ処理が実行され、レジスタ６１−６に処理完了を示す値が格納される。ＲＴＬ記述によるシミュレーションにより遅延時間を測定する際には、図１１に示すように、アドレス０ｘ１４のレジスタ６１−６を終点として完了する処理の始点がアドレス０ｘ００のレジスタであることが分かっているので、この始点から終点までの処理について遅延時間を測定することになる。
【００４５】
測定した遅延時間は、入力側のレジスタに割り当ててよい。上記の例では、バイナリサーチ処理の遅延時間を、インターフェースレジスタ６１のレジスタ６１−１に割り当ててよい。この際、バイナリサーチ処理という同一の処理であっても、その検索対象の値によって処理完了までに必要な時間は変動する。即ち処理の実行時間がそれぞれ入力検索値により異なることになる。このような場合、異なる遅延時間が得られるので、最大の遅延時間を当該バイナリサーチ処理の処理時間として、インターフェースレジスタ６１のレジスタ６１−１に割り当ててよい。
【００４６】
図１２は、最大の遅延時間を抽出する処理の流れを示すフローチャートである。このフローチャートは、例えば図８のステップＳ２における個々の周辺回路の単体の性能検証シミュレーションにおいて、シミュレーションを制御し遅延時間を記録する制御プログラム側の動作を示すものである。
【００４７】
ステップＳ１において、処理が開始されたか否かを判断する。上記のバイナリサーチの例では、レジスタ６１−１への書き込みに応答してバイナリサーチ処理が開始されたか否かを判断する。処理が開始されると、ステップＳ２において、処理が完了したか否かを判断する。上記のバイナリサーチの例では、バイナリサーチ処理の完了によりレジスタ６１−６に処理完了を示す値が書き込まれたか否かを判断する。
【００４８】
処理が完了していない場合にはステップＳ３で、カウント値をカウントアップする。ここで言うカウント値とは、ＲＴＬ記述に基づく回路動作のシミュレーションにおいて、回路が同期して動作するクロックのサイクル数をカウントしたものである。ステップＳ２で処理が完了したと判断されると、その時のカウント値が遅延時間をクロックサイクル数で示したものとなる。なおカウント値は、処理開始時にゼロに初期化されている。
【００４９】
ステップＳ４で、今回測定された遅延時間（カウント値）が、最大遅延時間よりも大きいか否かを判断する。大きい場合にはステップＳ５で、今回測定された遅延時間を最大遅延時間とする。即ち、最大遅延時間を更新して、今回測定された遅延時間に等しい値に設定する。
【００５０】
以上の処理を繰り返すことにより、処理完了までにかかる時間が変動した場合、最大の遅延時間を検出することができる。この最大遅延時間を当該処理に時間情報として割り当てる。
【００５１】
図１３は、遅延時間記録のための具体的構成の一例を示す図である。図１３の周辺回路６０Ａは、図１０に示したバイナリサーチ処理の例における周辺回路６０に対して遅延時間記録機能を設けたものである。図１３に示すように、インターフェースレジスタ６１の個々のレジスタに対して遅延値記録装置６５が割り当てられている。遅延値記録装置６５は、対応レジスタに対応する処理が実行されたときに、その処理の遅延時間を記録する。この記録処理は、図１２に示すように最大値を検出して記録する処理であってよい。
【００５２】
図１４は、本発明による性能評価モデル生成方法及びステム性能評価方法を実行する装置の構成を示す図である。
【００５３】
図１４に示されるように、本発明による性能評価モデル生成方法及びステム性能評価方法を実行する装置は、例えばパーソナルコンピュータやエンジニアリングワークステーション等のコンピュータにより実現される。図１４の装置は、コンピュータ５１０と、コンピュータ５１０に接続されるディスプレイ装置５２０、通信装置５２３、及び入力装置よりなる。入力装置は、例えばキーボード５２１及びマウス５２２を含む。コンピュータ５１０は、ＣＰＵ５１１、ＲＡＭ５１２、ＲＯＭ５１３、ハードディスク等の二次記憶装置５１４、可換媒体記憶装置５１５、及びインターフェース５１６を含む。
【００５４】
キーボード５２１及びマウス５２２は、ユーザとのインターフェースを提供するものであり、コンピュータ５１０を操作するための各種コマンドや要求されたデータに対するユーザ応答等が入力される。ディスプレイ装置５２０は、コンピュータ５１０で処理された結果等を表示すると共に、コンピュータ５１０を操作する際にユーザとの対話を可能にするために様々なデータ表示を行う。通信装置５２３は、遠隔地との通信を行なうためのものであり、例えばモデムやネットワークインターフェース等よりなる。
【００５５】
本発明による性能評価モデル生成方法及びステム性能評価方法は、コンピュータ５１０が実行可能なコンピュータプログラムとして提供される。このコンピュータプログラムは、可換媒体記憶装置５１５に装着可能な記憶媒体Ｍに記憶されており、記憶媒体Ｍから可換媒体記憶装置５１５を介して、ＲＡＭ５１２或いは二次記憶装置５１４にロードされる。或いは、このコンピュータプログラムは、遠隔地にある記憶媒体（図示せず）に記憶されており、この記憶媒体から通信装置５２３及びインターフェース５１６を介して、ＲＡＭ５１２或いは二次記憶装置５１４にロードされる。
【００５６】
キーボード５２１及び／又はマウス５２２を介してユーザからプログラム実行指示があると、ＣＰＵ５１１は、記憶媒体Ｍ、遠隔地記憶媒体、或いは二次記憶装置５１４からプログラムをＲＡＭ５１２にロードする。ＣＰＵ５１１は、ＲＡＭ５１２の空き記憶空間をワークエリアとして使用して、ＲＡＭ５１２にロードされたプログラムを実行し、適宜ユーザと対話しながら処理を進める。なおＲＯＭ５１３は、コンピュータ５１０の基本動作を制御するための制御プログラムが格納されている。
【００５７】
上記コンピュータプログラムを実行することにより、コンピュータ５１０が、上記各実施例で説明されたように性能評価モデル生成方法及びステム性能評価方法を実行する。
【００５８】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【００５９】
【図１】一般的なシステムＬＳＩの構成とその動作環境を説明する図である。
【図２】本発明の実施例である性能評価モデル生成方法を説明するための図である。
【図３】トランザクションの記録動作を説明するための図である。
【図４】記録されたトランザクションデータの書式の一例を示す図である。
【図５】本発明の実施例である性能評価モデル生成方法を説明するための図である。
【図６】本発明の実施例である性能評価モデル生成方法を説明するための図である。
【図７】本発明の実施例であるシステム性能評価方法の一例を説明するための図である。
【図８】本発明の実施例である性能評価モデル生成方法を含むシステム性能評価方法の全体の処理の流れ及びデータの流れ示す図である。
【図９】周辺回路による処理の具体例としてバイナリサーチのアルゴリズムを示すフローチャートである。
【図１０】バイナリサーチを実行する周辺回路のインターフェースレジスタの機能を説明するための図である。
【図１１】バイナリサーチ処理の始点と終点との関連づけを説明するための図である。
【図１２】最大の遅延時間を抽出する処理の流れを示すフローチャートである。
【図１３】遅延時間記録のための具体的構成の一例を示す図である。
【図１４】本発明による性能評価モデル生成方法及びステム性能評価方法を実行する装置の構成を示す図である。
【符号の説明】
【００６０】
１０  ＬＳＩ
１１  ＣＰＵ
１２  メモリ
１３  周辺回路
１４  周辺回路
１５  バス
１８  ソフトウェア
１９  コンパイラ
２０  ＬＳＩモデル
２１  ＣＰＵモデル
２３  周辺モデル
２４  周辺モデル
２５  観測装置
２６  バス
３０  インターフェースレジスタ
３１  Ｃ関数
３５  トランザクションデータ
５１０  コンピュータ
５１１  ＣＰＵ
５１２  ＲＡＭ
５１３  ＲＯＭ
５１４  二次記憶装置
５１５  可換媒体記憶装置
５１６  インターフェース
５２０  ディスプレイ装置
５２１  キーボード
５２２  マウス
５２３  通信装置
【図１】
0005034916.tif 000002
【図２】
0005034916.tif 000003
【図３】
0005034916.tif 000004
【図４】
0005034916.tif 000005
【図５】
0005034916.tif 000006
【図６】
0005034916.tif 000007
【図７】
0005034916.tif 000008
【図８】
0005034916.tif 000009
【図９】
0005034916.tif 000010
【図１０】
0005034916.tif 000011
【図１１】
0005034916.tif 000012
【図１２】
0005034916.tif 000013
【図１３】
0005034916.tif 000014
【図１４】
0005034916.tif 000015