(57)【要約】【課題】システムＬＳＩのシミュレータにおいて、メモリアクセスによるオーバヘッドが０の場合でも、その命令実行サイクル数を正確に算出することができるシステム性能評価方法およびシステム性能評価装置を提供する。【解決手段】１サイクル毎に、メモリアクセスペナルティの発生の有無を確認し（Ｓ１０１）、メモリアクセスペナルティが発生していない場合のみ、ＣＰＵモデルを実行する（Ｓ２０２）。【選択図】図１
2006172234.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つ以上のＣＰＵ及びメモリ階層を有するシステムの性能を評価するためのシステム性能評価方法であって、前記ＣＰＵのシミュレーションを実行するＣＰＵシミュレーションステップと、前記メモリ階層のシミュレーションを実行するメモリシミュレーションステップと、前記ＣＰＵシミュレーションステップと前記メモリシミュレーションステップを並行して実行するシステムシミュレーションステップと、前記メモリ階層の影響を取り除いた前記ＣＰＵの性能を計測するＣＰＵ性能計測ステップと、前記メモリ階層の影響による前記システムの性能劣化を計測するシステム性能計測ステップとを有することを特徴とするシステム性能評価方法。
【請求項２】
請求項１記載のシステム性能評価方法において実行するステップと、前記メモリシミュレーションステップにおいてメモリアクセスペナルティが発生しているか否かを判定するペナルティ発生判定ステップと、前記ペナルティ発生判定ステップでの判定の結果、メモリアクセスペナルティが発生している場合に前記ＣＰＵシミュレーションステップをスキップするＣＰＵシミュレーションスキップステップとを有し、前記ＣＰＵ性能計測ステップでは、前記ＣＰＵシミュレーションスキップステップでの前記ＣＰＵシミュレーションステップのスキップにより最終的に前記ＣＰＵシミュレーションを実行したサイクル数を基に、前記ＣＰＵの性能を計測することを特徴とするシステム性能評価方法。
【請求項３】
請求項２記載のシステム性能評価方法において実行するステップと、前記ＣＰＵシミュレーションステップにおけるメモリアクセスについてのみのシミュレーションを実行するメモリアクセスシミュレーションステップと、前記ペナルティ発生判定ステップの結果、前記メモリアクセスペナルティが発生していない場合に、前記メモリアクセスシミュレーションステップを実行するシミュレーション選択ステップとを有することを特徴とするシステム性能評価方法。
【請求項４】
請求項３記載のシステム性能評価方法において実行するステップと、前記ＣＰＵシミュレーションステップを実行する際に、前記メモリアクセスペナルティの影響を反映させるか否かを指定するシミュレーションモード選択ステップとを有することを特徴とするシステム性能評価方法。
【請求項５】
少なくとも一つ以上のＣＰＵ及びメモリ階層を有するシステムの性能を評価する際のシステムシミュレーションとして、前記ＣＰＵ上での命令実行サイクル数について前記メモリ階層の影響を排除した場合の計算を実行するステップを有するシステム性能評価方法であって、前記ＣＰＵ上での命令実行サイクル数について、命令キャッシュメモリのヒット率の値に応じて、前記メモリ階層の影響を排除した場合の計算結果に対する前記メモリ階層の影響を反映させた場合の計算結果のシミュレーション誤差を判定する命令キャッシュヒット率判定ステップと、前記命令キャッシュヒット率判定ステップの結果を基に、前記シミュレーション誤差を表示する誤差表示ステップとを有することを特徴とするシステム性能評価方法。
【請求項６】
少なくとも一つ以上のＣＰＵ及びメモリ階層を有するシステムの性能を評価する際のシステムシミュレーションとして、前記ＣＰＵ上での命令実行サイクル数について前記メモリ階層の影響を排除した場合の計算を実行するステップを有するシステム性能評価方法であって、前記ＣＰＵ上での命令実行サイクル数について、メモリアクセスペナルティの値に応じて、前記メモリ階層の影響を排除した場合の計算結果に対する前記メモリ階層の影響を反映させ場合の計算結果のシミュレーション誤差を判定するメモリアクセスペナルティ判定ステップと、前記命令キャッシュヒット率判定ステップの結果を基に、前記シミュレーション誤差を表示する誤差表示ステップとを有することを特徴とするシステム性能評価方法。
【請求項７】
請求項１ないし請求項６の何れかに記載のシステム性能評価方法における各ステップをコンピュータによって実行させることを特徴とするプログラム。
【請求項８】
請求項７記載のプログラムに従って、請求項１ないし請求項６の何れかに記載のシステム性能評価方法における各ステップを実行させることを特徴とするシステム性能評価装置。
【請求項９】
請求項１ないし請求項６の何れかに記載のシステム性能評価方法における各ステップをコンピュータによって実行させることを特徴とするシステム性能評価装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムＬＳＩなどＣＰＵ及びメモリを具備したシステムの性能を評価するためのシステム性能評価技術に関するものである。
【背景技術】
【０００２】
従来から、機器組込み分野におけるシステム開発では、所望の性能を満たしているかを、実際のシステムを組み上げる前に、計算機上で動作するシステムシミュレータを用いて検証する工程が非常に重要であった。
【０００３】
そこで、近年では、システムシミュレータでシミュレーションされるシステムは、多くの場合、ＣＰＵ（演算処理装置）とメモリ（記憶領域）を備えており、通常、メモリは速度とコストのトレードオフを解決するため、データをキャッシュするキャッシュシステムなどを含む階層構造を取り、その階層構造はシステムの性能に多大な影響を与える。
【０００４】
故に、多くのシステムシミュレータは、図２２に示すように、ＣＰＵのモデルとメモリ階層のモデルを備えている。
図２２に示す従来の典型的なシステムシミュレータ２２０１は、機器組み込みシステムの動作をシミュレーションするシミュレータである。
【０００５】
システムシミュレータ２２０１は、機器組み込みシステムに搭載されたＣＰＵのシミュレーションを行うＣＰＵモデル２２０４と、機器組み込みシステム上に構築されたメモリ階層をシミュレーションするメモリモデル２２０５を備える。また、システムシミュレータ２２０１は、ＣＰＵモデル２２０４とメモリモデル２２０５の実行順序等を制御するスケジューリング部２２０２を備える。さらに、スケジューリング部２２０２は、その内部に、シミュレーションを行ったサイクルをカウントする実行サイクル数カウント部２２０３を備える。
【０００６】
スケジューリング部２２０２は、図２１に示すようなフローでモデル実行処理ステップＳ２００を実行する。モデル実行処理ステップＳ２００は、メモリモデル２２０５を１サイクル分実行するメモリモデル実行ステップＳ２０１と、ＣＰＵモデル２２０４を１サイクル分実行するＣＰＵモデル実行ステップＳ２０２と、実行サイクル数カウント部２２０３に保持される実行サイクル数をインクリメントする実行サイクル数インクリメントステップＳ２０３と、シミュレーションの状態が終了条件に合致するか否かを判定する終了条件判定ステップＳ２０４を備えている。
【０００７】
図中に示されるように、モデル実行処理ステップＳ２００は、メモリモデル実行ステップＳ２０１とＣＰＵモデル実行ステップＳ２０２を、それぞれ１サイクル分並行して実行する。続いて、実行サイクル数インクリメントステップＳ２０３で実行サイクル数をインクリメントする。
【０００８】
続いて、終了条件判定ステップＳ２０４でシミュレーション状態を評価し、シミュレーション状態が終了条件に合致していなければシミュレーションを継続し、シミュレーション状態が終了条件に合致していればモデル実行処理ステップＳ２００を終了する。
【０００９】
上記構成による従来技法では、メモリ階層のシミュレーション結果をＣＰＵのシミュレーションに反映させながら、システムシミュレーションを行い、システムの性能を計測する。
【００１０】
しかし、単純にシステム性能を計測するだけではＣＰＵ性能とメモリ性能のどちらにシステム性能のボトルネックがあるかを特定できない。そこで、システムシミュレーション時に発生したメモリアクセスペナルティ（メモリアクセスによるオーバヘッド時間）を累計し、システムの全体の実行時間とメモリアクセスペナルティの差分を取ることにより、ＣＰＵ性能を算出していた。
【００１１】
しかしながら、このようにして求めたＣＰＵ性能は過大に評価される可能性があった。これについて図１６、図１７、図１８を用いて以下に説明する。
図１６は従来から機器組み込みシステムに搭載されているＣＰＵの構成を示したブロック図である。図１６において、ＣＰＵ４１００は、外部メモリのデータをキャッシングする命令キャッシュ４１５１及びデータキャッシュ４１５２と接続され、キャッシングされていないデータを要求した場合には、メモリデータが到着するまで要求したデータを使用できない。
【００１２】
また、ＣＰＵ４１００は、パイプラインレジスタで区切られた各種パイプラインステージと、コンテキストを保存したレジスタファイル４１２１とからなり、ＣＰＵ４１００の各種パイプラインステージとしては、命令をフェッチするＩＦステージ４１０１、フェッチされた命令をデコードするＤＣステージ４１０２、デコードされた命令を実行するＥＸステージ４１０３、実行された命令によりメモリアクセスを行うＭＥＭステージ４１０４、実行された命令によりレジスタファイル４１２１を変更するＷＢステージ４１０５、割り算を行うＤＩＶ１ステージ４１１１、ＤＩＶ２ステージ４１１２、ＤＩＶ３ステージ４１１３から成る。
【００１３】
各パイプラインステージは、並行に動作し、各ステージ毎に１つずつ命令を処理することが可能で、全体として複数の命令を同時に処理することになる。
ある時点でのパイプラインステージの実行状態を図１７と図１８に示す。
【００１４】
図１７は縦軸の左側に示された４つの命令が各時刻においてＣＰＵ４１００のどのパイプラインで処理されているかを示したタイムチャートである。縦軸は命令の実行される命令を上から順に示し、横軸はシステムのシミュレーションにおける時間を示す。
【００１５】
図中の４つの命令は、ＣＰＵ４１００に対して、下記に示す動作に基づく処理を実行するように指示するためのものである。（以下、命令とその命令に対する動作の対応を、「命令：動作」のように記載する）
ＤＩＶ  Ｒ０，Ｒ１    ：レジスタ０の値をレジスタ１の値で除算し、商をレジスタ０に格納する
ＬＤ    Ｒ２，（Ｒ３）：レジスタ３に格納されたアドレスのメモリデータを読み出し、レジスタ２に格納する
ＡＤＤ  Ｒ４，Ｒ０    ：レジスタ４の値とレジスタ０の値の和をレジスタ４に格納する
ＭＯＶ  Ｒ５，Ｒ６    ：レジスタ６の値をレジスタ５に格納する
これら４つの各命令は、上記の記載順にその命令メモリからフェッチされる。
【００１６】
すなわち、時刻Ｔ１００では、ＤＩＶ命令のフェッチが開始されている。ＤＩＶ命令の実行は、前述のＤＩＶ１ステージ４１１１〜ＤＩＶ３ステージ４１１３で行われる。ＤＩＶ命令に後続するＡＤＤ命令は、ＤＩＶ命令の演算結果を用いて演算処理を実行する。
【００１７】
このようなＤＩＶ命令とＡＤＤ命令の関係をデータ依存と呼ぶ。データ依存が存在する図中のような場合、先行命令（図中のＤＩＶ命令）の演算結果を使用する後続命令（図中のＡＤＤ命令）の実行は、先行命令の実行完了を待つ。これにより、図中に示すように命令間のデータ依存によるパイプラインストールが発生する。
【００１８】
以上のように、ＣＰＵ性能評価のためのシミュレーションにおいては、命令間のデータ依存により発生するパイプラインストールに起因する実行性能の低下がある場合には、それを正確に再現しなければ、実行性能の低下が考慮されず本来のＣＰＵ性能より高い性能を計測してしまう。例えば、図１７のようなメモリアクセスペナルティが発生していない状態においては、ＤＩＶ命令からＭＯＶ命令までの命令実行時間は、時刻Ｔ１００から時刻Ｔ１０１までの９サイクルとなる。
【００１９】
次に、メモリアクセスペナルティが存在する条件下で、図１７と同様の命令を実行した場合について、図１８を用いて説明する。
図１８は、図１７と同様に、縦軸の左側に示された４つの命令が各時刻においてＣＰＵ４１００のどのパイプラインで処理されているかを示したタイムチャートである。縦軸は命令の実行される命令を上から順に示し、横軸はシステムのシミュレーションにおける時間を示す。
【００２０】
図中のＬＤ命令では、メモリアクセスペナルティが３サイクル発生している。ＬＤ命令は、ＭＥＭステージでメモリデータを読み出すためにデータ到着を待つため、３サイクル分のパイプラインストールを発生させる。このとき、ＬＤ命令に先行するＤＩＶ命令は実行を完了するため、ＡＤＤ命令およびＭＯＶ命令において、図１７で説明したような命令間のデータ依存によるパイプラインストールは発生しなくなる。
【００２１】
図１８の状態では、ＤＩＶ命令からＭＯＶ命令までの命令実行時間は、時刻Ｔ１１０から時刻Ｔ１１１までの１１サイクルとなる。このとき、メモリアクセスペナルティは３サイクルである。ここで、従来技法として前述した方法を用いて、メモリアクセスペナルティが０の場合のＣＰＵでの命令実行時間を算出すると、命令の実行時間１１サイクルからメモリアクセスペナルティの３サイクル分を引いた８サイクルとなる。しかし、図１７の説明で示したとおり、メモリアクセスペナルティが０である場合のＣＰＵでの命令実行時間は９サイクルである。
【００２２】
以上のように、従来技法を用いてメモリアクセスペナルティの影響を排除したＣＰＵにおける命令実行時間を算出すると、ＣＰＵの性能を過大に評価してしまうことになるため、これに対する従来の解決策として、メモリ階層に係るオーバヘッドを取り除いたシステムシミュレーション環境を別途用意し、それを用いて純粋なＣＰＵの性能を計測し、メモリ階層による性能への影響を計測していた。
【００２３】
しかし、上記のような方法では、システムのシミュレーションを２度行うこととなり、シミュレーション時間が長大化する問題がある。また、２つの異なるシミュレーション環境を用意するための工数や、条件の違いから誤差が生じるという問題もある。
【００２４】
これに対して、従来のいくつかのシステム性能評価方法では、メモリ階層のシミュレーションを効率的に行うために、ＣＰＵのシミュレーションとメモリ階層のシミュレーションを切り離す方法（例えば、特許文献１を参照）が考案されている。
【００２５】
この方法では、ＣＰＵのシミュレーション結果からメモリアクセスログを出力し、出力されたメモリアクセスログを用いてキャッシュシミュレーションを実行することにより、効率的にシステムの性能評価を行うようにしている。
【特許文献１】特開２０００−２７６３８１号公報（Ｐ１６、図１）
【発明の開示】
【発明が解決しようとする課題】
【００２６】
しかしながら上記のような従来のシステム性能評価方法では、近年の機器組込み分野におけるソフトウェアは複雑化し、システムで実行される命令数が飛躍的に増加したことにより、前述の方法を用いてシステムにおけるＣＰＵ性能を正確に評価しようとすると、ＣＰＵのメモリアクセスログが膨大になり、そのため膨大なディスク容量が要求されるという問題点を有していた。
【００２７】
本発明は、上記従来の問題点を解決するもので、少ないディスク容量でも、メモリ階層のシミュレーションを行いながら、メモリアクセスペナルティが０であった場合のＣＰＵ性能を正確に評価し、大規模化したシステムにおいてもその性能を正しく評価することができるシステム性能評価方法およびシステム性能評価装置を提供する。
【課題を解決するための手段】
【００２８】
上記の課題を解決するために、本発明の請求項１に記載のシステム性能評価方法は、少なくとも一つ以上のＣＰＵ及びメモリ階層を有するシステムの性能を評価するためのシステム性能評価方法であって、前記ＣＰＵのシミュレーションを実行するＣＰＵシミュレーションステップと、前記メモリ階層のシミュレーションを実行するメモリシミュレーションステップと、前記ＣＰＵシミュレーションステップと前記メモリシミュレーションステップを並行して実行するシステムシミュレーションステップと、前記メモリ階層の影響を取り除いた前記ＣＰＵの性能を計測するＣＰＵ性能計測ステップと、前記メモリ階層の影響による前記システムの性能劣化を計測するシステム性能計測ステップとを有する方法としたことを特徴とする。
【００２９】
以上により、システム全体のシミュレーションを行いながら、そのシステム性能の算出とは別に、ＣＰＵ単体の性能とメモリ階層による性能劣化を算出することにより、大量のメモリアクセスログを保存する必要がなくなり、１度のシステムシミュレーションをもって、ＣＰＵ単体の性能とメモリ階層による性能劣化を把握することができる。
【００３０】
また、本発明の請求項２に記載のシステム性能評価方法は、請求項１記載のシステム性能評価方法において実行するステップと、前記メモリシミュレーションステップにおいてメモリアクセスペナルティが発生しているか否かを判定するペナルティ発生判定ステップと、前記ペナルティ発生判定ステップでの判定の結果、メモリアクセスペナルティが発生している場合に前記ＣＰＵシミュレーションステップをスキップするＣＰＵシミュレーションスキップステップとを有し、前記ＣＰＵ性能計測ステップでは、前記ＣＰＵシミュレーションスキップステップでの前記ＣＰＵシミュレーションステップのスキップにより最終的に前記ＣＰＵシミュレーションを実行したサイクル数を基に、前記ＣＰＵの性能を計測する方法としたことを特徴とする。
【００３１】
以上により、メモリアクセスペナルティの影響をＣＰＵのシミュレーションに反映させずにシステムシミュレーションを行うことにより、ＣＰＵのシミュレーションにおいてメモリアクセスペナルティが０の状態を保つことができ、メモリアクセスペナルティの影響を排除したＣＰＵ単体の性能を正確に計測することができる。
【００３２】
また、本発明の請求項３に記載のシステム性能評価方法は、請求項２記載のシステム性能評価方法において実行するステップと、前記ＣＰＵシミュレーションステップにおけるメモリアクセスについてのみのシミュレーションを実行するメモリアクセスシミュレーションステップと、前記ペナルティ発生判定ステップの結果、前記メモリアクセスペナルティが発生していない場合に、前記メモリアクセスシミュレーションステップを実行するシミュレーション選択ステップとを有する方法としたことを特徴とする。
【００３３】
以上により、ＣＰＵとメモリ階層間のメモリアクセスプロトコルを満足させるようシステムシミュレーションを行うことにより、既存のシミュレータにおけるＣＰＵとメモリ間の通信プロトコルを満足することが可能となり、既存のシミュレータに対して少ない変更で、当該シミュレーションを適用することができる。
【００３４】
また、本発明の請求項４に記載のシステム性能評価方法は、請求項３記載のシステム性能評価方法において実行するステップと、前記ＣＰＵシミュレーションステップを実行する際に、前記メモリアクセスペナルティの影響を反映させるか否かを指定するシミュレーションモード選択ステップとを有する方法としたことを特徴とする。
【００３５】
以上により、ＣＰＵがメモリ階層に対して行うべき入出力処理を代替するシミュレーションを行うか否かを変更可能とすることにより、メモリアクセスペナルティがＣＰＵの動作にどのような影響を与えるかを検証する場合と、ＣＰＵの性能をシステムの性能と同時に見積もりたい場合と、両方の用途に対して１つのシミュレータで満足させることができる。
【００３６】
また、本発明の請求項５に記載のシステム性能評価方法は、少なくとも一つ以上のＣＰＵ及びメモリ階層を有するシステムの性能を評価する際のシステムシミュレーションとして、前記ＣＰＵ上での命令実行サイクル数について前記メモリ階層の影響を排除した場合の計算を実行するステップを有するシステム性能評価方法であって、前記ＣＰＵ上での命令実行サイクル数について、命令キャッシュメモリのヒット率の値に応じて、前記メモリ階層の影響を排除した場合の計算結果に対する前記メモリ階層の影響を反映させた場合の計算結果のシミュレーション誤差を判定する命令キャッシュヒット率判定ステップと、前記命令キャッシュヒット率判定ステップの結果を基に、前記シミュレーション誤差を表示する誤差表示ステップとを有する方法としたことを特徴とする。
【００３７】
また、本発明の請求項６に記載のシステム性能評価方法は、少なくとも一つ以上のＣＰＵ及びメモリ階層を有するシステムの性能を評価する際のシステムシミュレーションとして、前記ＣＰＵ上での命令実行サイクル数について前記メモリ階層の影響を排除した場合の計算を実行するステップを有するシステム性能評価方法であって、前記ＣＰＵ上での命令実行サイクル数について、メモリアクセスペナルティの値に応じて、前記メモリ階層の影響を排除した場合の計算結果に対する前記メモリ階層の影響を反映させ場合の計算結果のシミュレーション誤差を判定するメモリアクセスペナルティ判定ステップと、前記命令キャッシュヒット率判定ステップの結果を基に、前記シミュレーション誤差を表示する誤差表示ステップとを有する方法としたことを特徴とする。
【００３８】
以上により、ＣＰＵのシミュレーションに、メモリアクセスペナルティの影響を反映させていない場合と反映させた場合で、許容できる誤差が生じているか否かを示す指標を算出することにより、システム性能評価を行う者が、シミュレーションがどの程度信頼できるものかを認識することができ、誤った性能評価を行わないようにすることができる。
【発明の効果】
【００３９】
以上のように本発明によれば、システム性能評価環境を変えずに、ＣＰＵの性能を正確に計測しながら、同時にメモリ階層によるオーバヘッドを計測するシミュレーションを実行することができる。
【００４０】
また、メモリアクセストレースログを保存するリソースを不要とし、容易にＣＰＵ性能とシステム性能の両方を同時に計測するとともに、メモリアクセスによるオーバヘッドが０の場合の命令実行サイクル数を正確に算出することができる。
【００４１】
以上により、機器組込みシステムのより効率的な開発を可能にするとともに、少ないディスク容量でも、メモリ階層のシミュレーションを行いながら、メモリアクセスペナルティが０であった場合のＣＰＵ性能を正確に評価し、大規模化したシステムにおいてもその性能を正しく評価することができる。
【発明を実施するための最良の形態】
【００４２】
以下、本発明の実施の形態を示すシステム性能評価方法およびシステム性能評価装置について、図面を参照しながら具体的に説明する。
（実施の形態１）
本発明の実施の形態１のシステム性能評価方法およびシステム性能評価装置を説明する。
【００４３】
はじめに、本実施の形態１のシステム性能評価方法およびシステム性能評価装置に係るシステム性能評価システムの外観について説明する。
図１３は本実施の形態１におけるシステム性能評価システム１１００の外観を示している。本実施の形態１におけるシステム性能評価システム１１００は、コンピュータ１１０１と、表示装置１１０２と、キーボード等の入力装置１１０３からなる。
【００４４】
以上のようなシステム性能評価システム１１００において、システムの性能を評価するためにシステムをシミュレーションする場合には、コンピュータ１１０１により、図８に示すシステムシミュレータ２１０１が有するシステムシミュレーション用のプログラムを実行する。
【００４５】
この際に、システム性能評価システム１１００のユーザは、入力装置１１０３を用いてコンピュータ１１０１へ指示を与え、コンピュータ１１０１は、与えられた指示に応じて、評価対象のシステムをシミュレーションすることにより、その結果として対象システムの性能を表示装置１１０２に表示する。
【００４６】
次に、本実施の形態１のシステム性能評価方法およびシステム性能評価装置に係るシステム性能評価システム１１００における入出力について説明する。
図１０、図１２は本実施の形態１におけるシステム性能評価システム１１００に対する入出力例であり、表示装置１１０２に表示された内容である。メインウィンドウＷ１にコンソールとユーザが入力したコマンド及びその結果が表示されている。
【００４７】
図１０に図示されている内容を詳細に説明する。
図中の‘＞’は、コンソールのプロンプトであり、ユーザは、この‘＞’が表示された行に対して、入力装置１１０３よりコマンドを入力し、コンピュータ１１０１を制御する。図中では、ユーザが‘ｓｉｍ  −ｓ  ｔｅｓｔ．ｘ’というコマンドを入力している。ｓｉｍコマンドは、システムシミュレータ２１０１のプログラムを実行するコマンドである。−ｓは、システムシミュレータ２１０１に対して、メモリアクセスペナルティの影響をＣＰＵのシミュレーションに反映させないよう指示するオプションである。ｔｅｓｔ．ｘは、システムシミュレータ２１０１にロードする機器組み込みシステムのプログラムのファイル名である。
【００４８】
図中で示すように、コンピュータ１１０１は、ｓｉｍコマンドを受け取ると、システムシミュレータ２１０１を起動してシミュレーションを実行し、その実行後、シミュレーション結果を表示してユーザからのコマンド待ち状態に戻る。
【００４９】
図中の‘Ｓｙｓｔｅｍ  ：  ’とある行は、シミュレーションしたシステムでのプログラム実行サイクル数と、実行時間を示している。図中では、１，１３０，００４，２３８サイクル（１１３０．００４２３８秒）であったことを示している。この値は、後述する図８に示すＣＰＵサイクル数カウント部２１１０に保持された値である。
【００５０】
図中の‘Ｍｅｍｏｒｙ  ：  ’とある行は、メモリアクセスペナルティとして累計されたサイクル数と時間を示している。図中では、１，０１０，０００，０２３サイクル（１０１０．００００２３秒）であったことを示している。
【００５１】
図中の‘ＣＰＵ  ：  ’とある行は、メモリアクセスペナルティが０とした場合のプログラム実行サイクル数と、実行時間を示している。図中では、１２０，００４，３０５サイクル（１２０．００４３０５秒）であったことを示している。
【００５２】
図中の‘Ｉｎｓｔｒｕｃｔｉｏｎ  ｃａｃｈｅ  ｈｉｔ  ｒａｔｉｏ  ：  ’とある行は、命令キャッシュのヒット率を示している。図中では、全命令メモリアクセスのうち、９９．５％の命令メモリアクセスが命令キャッシュにヒットしたことを示している。
【００５３】
図中の‘Ｓｙｓｔｅｍ  Ｐｅｒｆｏｒｍａｎｃｅ’とある行は、シミュレーションしたシステムでのプログラム実行サイクル数と実行時間に対するマージンが小さいか否かを示すメッセージである。図中では、シミュレーションしたシステムでのプログラム実行サイクル数と実行時間に対するマージンが小さいであろうことを示している。シミュレーションしたシステムでのプログラム実行サイクル数と実行時間に対するマージンが小さいか否かの判定は、後述する図１に示す命令キャッシュヒット率判定処理ステップＳ４００で判定される。
【００５４】
図１２については、図１０との差分のみを説明する。
図１２では、ユーザは‘ｓｉｍ  ｔｅｓｔ．ｘ’というコマンドを入力している。ｓｉｍコマンドの−ｓオプションがないことが図１０の場合と異なっている。この場合、システムシミュレータ２１０１は、メモリアクセスペナルティの影響をＣＰＵのシミュレーションに反映してシステムのシミュレーションを行う。また、図１０で表示されていた命令キャッシュのヒット率の表示と、シミュレーションしたシステムでのプログラム実行サイクル数と実行時間に対するマージンが小さいか否かを示すメッセージは表示されなくなる。
【００５５】
このときのメモリアクセスペナルティが０とした場合のプログラム実行サイクル数（‘ＣＰＵ  ：  ’の行に表示）は、シミュレーションしたシステムでのプログラム実行サイクル数（‘Ｓｙｓｔｅｍ  ：  ’の行に表示）からメモリアクセスペナルティとして累計されたサイクル数（‘Ｍｅｍｏｒｙ  ：  ’の行に表示）の差分となっている。
【００５６】
次に、本実施の形態１のシステム性能評価方法およびシステム性能評価装置におけるシステムシミュレータ２１０１の構成について説明する。
図８は本実施の形態１におけるシステムシミュレータ２１０１の構成を示すブロック図である。本実施の形態１におけるシステムシミュレータ２１０１は、システムＬＳＩなどを含む機器組み込みシステムの動作をシミュレーションするシミュレータである。なお、図中のメモリモデル２２０５、ＣＰＵモデル２２０４、実行サイクル数カウント部２２０３については、前述した従来の典型的なシステムシミュレータと同様のものであるため、ここでの説明は省略する。
【００５７】
本実施の形態１におけるシステムシミュレータ２１０１は、ＣＰＵモデル２２０４の代わりにメモリアクセスシミュレーションを代行するメモリアクセス代行処理部２１２０を備えている。
【００５８】
スケジューリング部２１０２は、ＣＰＵモデル２２０４とメモリモデル２２０５の実行順序等を制御するものであり、メモリアクセスペナルティの影響を排除したＣＰＵサイクル数をカウントするＣＰＵサイクル数カウント部２１１０と、メモリモデル２２０５において発生するメモリアクセスペナルティを検出するメモリアクセスペナルティ検出部２１１１と、メモリモデル２２０５に対するメモリアクセスにおいて命令キャッシュがヒットした割合を計測する命令キャッシュヒット率測定部２１３１とを備えている。
【００５９】
次に、本実施の形態１のシステム性能評価方法およびシステム性能評価装置におけるモデル実行処理ステップＳ１００について説明する。
スケジューリング部２１０２は、図１に示すようなフローに従って、モデル実行処理ステップＳ１００を実行する。なお、図中のメモリモデル実行ステップＳ２０１と、ＣＰＵモデル実行ステップＳ２０２と、実行サイクル数インクリメントステップＳ２０３と、終了条件判定ステップＳ２０４については、前述した従来の典型的なシステムシミュレータと同様のものであるため、説明を省略する。
【００６０】
モデル実行処理ステップＳ１００は、命令キャッシュがヒットした割合を計測する命令キャッシュヒット率測定処理ステップＳ８００と、メモリアクセスペナルティの有無を判定するペナルティ有無判定ステップＳ１０１と、図８に示すＣＰＵサイクル数カウント部２１１０に保持されるＣＰＵサイクル数をインクリメントするＣＰＵサイクル数インクリメントステップＳ１０２と、図８に示すメモリアクセス代行処理部２１２０を実行するメモリアクセス代行処理ステップＳ３００と、命令キャッシュのヒット率に応じてシミュレーション結果として得られたシステムの実行サイクル数に対するマージンが小さいか否かを示すメッセージを表示する命令キャッシュヒット率判定処理ステップＳ４００とを備えている。
【００６１】
図中に示されるように、モデル実行処理ステップＳ１００は、メモリモデル実行ステップＳ２０１を実行するのと並行して、命令キャッシュヒット率測定処理ステップＳ８００と、ペナルティ有無判定ステップＳ１０１と、ＣＰＵサイクル数インクリメントステップＳ１０２と、メモリアクセス代行処理ステップＳ３００とを実行する。
【００６２】
本実施の形態１において特徴的なことは、ペナルティ有無判定ステップＳ１０１の結果に応じて、ＣＰＵモデル実行ステップＳ２０２とメモリアクセス代行処理ステップＳ３００を選択的に実行することと、ＣＰＵモデル実行ステップＳ２０２を実行したときのみ、ＣＰＵサイクル数インクリメントステップＳ１０２を実行することである。
【００６３】
ペナルティ有無判定ステップＳ１０１は、図８に示すメモリアクセスペナルティ検出部２１１１で実行され、メモリモデル２２０５の内部状態を参照し、メモリアクセスペナルティが発生しているか否かを調査する。調査の結果、メモリアクセスペナルティが発生していればペナルティ有りと判定し、メモリアクセスペナルティが発生していなければペナルティ無しと判定する。ただし、ペナルティ有無判定ステップＳ１０１は、前述したｓｉｍコマンドのオプションに−ｓオプションが指定されていない場合は、メモリアクセスペナルティの発生に関わらず、ペナルティ無しと判定する。
【００６４】
ペナルティ有無判定ステップＳ１０１でペナルティ無しと判定された場合は、ＣＰＵモデル実行ステップＳ２０２を実行し、その後ＣＰＵサイクル数インクリメントステップＳ１０２を実行する。一方、ペナルティ有無判定ステップＳ１０１でペナルティ有りと判定された場合、ＣＰＵモデル２２０４はＣＰＵモデル実行ステップＳ２０２を実行せず、メモリアクセス代行処理ステップＳ３００を実行する。
【００６５】
上記のような制御によれば、図８に示すＣＰＵモデル２２０４によるＣＰＵモデル実行ステップＳ２０２は、メモリアクセスペナルティが発生していない場合のみ実行されるため、必然的に、メモリアクセスペナルティが０の場合におけるシミュレーションを行うこととなる。
【００６６】
よって、ＣＰＵサイクル数インクリメントステップＳ１０２によってＣＰＵサイクル数カウント部２１１０に保持されたＣＰＵモデル２２０４が実行された回数を、メモリアクセスペナルティが０の場合の命令実行時間とすることができ、これにより、メモリアクセスペナルティの影響を排除した場合のＣＰＵ性能を正確に測定することができる。
【００６７】
また、本発明の実施の形態１における他の特徴としては、モデル実行終了処理の前にシミュレーション結果として得られたシステムの実行サイクル数に対するマージンが小さいか否かを示すメッセージを表示する命令キャッシュヒット率判定処理ステップＳ４００を実行することである。
【００６８】
後述する命令キャッシュヒット率判定処理ステップＳ４００を実行し、得られたシミュレーション結果のマージンが小さいか否かを、システム性能評価システム１１００のユーザに通知することによって、ユーザは、システム全体の性能を示す値をどの程度信頼してよいかを判断することができる。ただし、命令キャッシュヒット率判定処理ステップＳ４００は、前述したｓｉｍコマンドのオプションに−ｓオプションが指定されていない場合は、スキップされる。
【００６９】
次に、本実施の形態１のシステム性能評価方法およびシステム性能評価装置におけるメモリアクセス代行処理部２１２０が解決する課題について、図１４、図１５を用いて説明する。
【００７０】
図１４、図１５は、ＣＰＵモデル２２０４とメモリモデル２２０５とが通信するための信号を示した波形図である。縦軸には各種信号線が並び、横軸はシステムのシミュレーションにおける時間である。縦軸に並ぶ各信号は下記の意味を持つ（以下、信号とその意味との対応を、「信号：意味」のように記載する）。
ＣＬＫ        ：システムのクロック
ＳＴ＿ＲＥＱ  ：ＣＰＵモデル２２０４からのストアリクエスト
ＳＴ＿ＤＡＴＡ：ＣＰＵモデル２２０４からのストアデータ
ＡＣＫ        ：メモリモデル２２０５からのリクエスト受付通知
本実施の形態１においてシミュレーションするシステムでは、図８に示すＣＰＵモデル２２０４は、ストアリクエストＳＴ＿ＲＥＱをアクティブにした１サイクル後に、ストアデータＳＴ＿ＤＡＴＡを出力する規約となっているものとする。また、図８に示すメモリモデル２２０５は、ストアリクエストの受け付けが完了したサイクルで、リクエスト受付通知ＡＣＫをアクティブにする規約となっているものとする。さらに、リクエスト受付通知ＡＣＫは、少なくとも１サイクル前か、それ以上前に発行された最後のリクエストに対する受け付け完了通知であるという規約となっているものとする。
【００７１】
図１４は、図８に示すＣＰＵモデル２２０４からメモリモデル２２０５に対してデータのストアを要求し、メモリモデル２２０５が１サイクルでストア要求を受け付ける場合の信号波形である。この場合、メモリアクセスペナルティは０サイクルとなる。
【００７２】
ＣＰＵモデル２２０４は、ストアリクエストＳＴ＿ＲＥＱを時刻Ｔ０にアクティブにし、次のサイクルである時刻Ｔ１にストアデータＳＴ＿ＤＡＴＡを出力している。それに対しメモリモデル２２０５は、時刻Ｔ１にＣＰＵモデル２２０４からのリクエストを受け付けたことを示すリクエスト受付通知ＡＣＫをアクティブにしている。上記の処理を行うことで、前述の規約を満たす。
【００７３】
図１５（ａ）は、ＣＰＵモデル２２０４からメモリモデル２２０５に対してデータのストアを要求し、メモリモデル２２０５が３サイクル後にストア要求を受け付ける場合の信号波形である。この場合、メモリアクセスペナルティは２サイクルとなる。
【００７４】
ＣＰＵモデル２２０４は、ストアリクエストＳＴ＿ＲＥＱを時刻Ｔ０にアクティブにし、次のサイクルである時刻Ｔ１にストアデータＳＴ＿ＤＡＴＡを出力している。それに対しメモリモデル２２０５は、時刻Ｔ３にＣＰＵモデル２２０４からのリクエストを受け付けたことを示すリクエスト受付通知ＡＣＫをアクティブにしている。
上記の処理を行うことで、前述の規約を満たす。
【００７５】
ここで、図１５（ａ）と同様の状況で、単純にメモリアクセスペナルティが無い場合のみＣＰＵモデル２２０４を動作させた場合の信号波形を図１５（ｂ）に示す。このようにすると、メモリアクセスペナルティが発生している時刻Ｔ１から時刻Ｔ３の間ではＣＰＵモデル２２０４が実行されないため、本来時刻Ｔ１に出力されるべきストアデータＳＴ＿ＤＡＴＡが時刻Ｔ３に出力されてしまい、前述の規約を満たせないという問題が生じる。
【００７６】
本実施の形態１におけるメモリアクセス代行処理部２１２０は、上記に示した課題を解決するものである。
本発明の実施の形態１における方法によれば、図１５（ａ）での時刻Ｔ１から時刻Ｔ３の間ではＣＰＵモデル２２０４が実行されないが、代わりにメモリアクセス代行処理部２１２０においてメモリアクセス代行処理ステップＳ３００が実行される。
【００７７】
このメモリアクセス代行処理ステップＳ３００により、時刻Ｔ１にストアデータＳＴ＿ＤＡＴＡがメモリモデル２２０５に対して出力され、前述の規約を満たすことが可能となる。
【００７８】
次に、本実施の形態１のシステム性能評価方法およびシステム性能評価装置におけるメモリアクセス代行処理ステップＳ３００について説明する。
図３にメモリアクセス代行処理ステップＳ３００のフローチャートを示す。ＣＰＵモデル２２０４の代わりにメモリアクセスシミュレーションを行うため、メモリアクセス代行処理部２１２０において、メモリアクセス代行処理ステップＳ３００が実行される。
【００７９】
メモリアクセス代行処理ステップＳ３００は、ＣＰＵモデル２２０４にメモリモデル２２０５へのストアデータがあるか判定するストアデータ判定ステップＳ３０１と、ＣＰＵモデル２２０４にあるストアデータを出力するストアデータ出力ステップＳ３０２と、ＣＰＵモデル２２０４にあるストアデータを消去するストアデータ消去ステップＳ３０３とを備えている。
【００８０】
このメモリアクセス代行処理ステップＳ３００は、ストアデータ判定ステップＳ３０１でＣＰＵモデル２２０４にストアデータがあるかを判定し、ストアデータがある場合は、ストアデータ出力ステップＳ３０２とストアデータ消去ステップＳ３０３を実行する。ストアデータがない場合は、何も行わない。
【００８１】
このような構成を取ることにより、ＣＰＵモデル２２０４がストアリクエストを出力したときにメモリアクセスペナルティが検出され、ペナルティが発生している間、ＣＰＵモデル２２０４が実行されなくとも、メモリアクセス代行処理部２１２０がＣＰＵモデル２２０４にあるストアデータを出力するため、図１５（ａ）に示す信号波形を保持することができ、ＣＰＵモデル２２０４とメモリモデル２２０５間での規約を満たすことが可能となる。
【００８２】
次に、本実施の形態１のシステム性能評価方法およびシステム性能評価装置における命令キャッシュヒット率判定処理ステップＳ４００が解決する課題について、図１９及び図２０を用いて説明する。
【００８３】
図１９及び図２０は、システムのシミュレーションにおける命令アクセスの時間と、命令実行の時間に関して表したタイムチャートである。縦軸には命令アクセスと命令実行の２つの要素が並び、横軸はシミュレーションにおける時間である。命令アクセスの軸上に描かれる四角形は、四角形の内部に書かれたメモリアドレスへの命令のフェッチを示す。命令実行の軸上に描かれる四角形は、四角形の内部に書かれたメモリアドレスの命令の実行を示す。命令アクセスの軸上の四角形から命令実行の軸上の四角形に引かれている破線は、フェッチされる命令と実行される命令との対応を示している。
【００８４】
図１９は、本実施の形態１において、ｓｉｍコマンドのオプションに−ｓを指定しない場合、すなわち、メモリアクセスペナルティの影響をＣＰＵのシミュレーションに反映する場合の命令アクセスと命令実行の関係を示す。
【００８５】
図１９に示す命令アクセスは、メモリアドレス０ｘ１０、０ｘ２０、０ｘ３０、０ｘ４０、０ｘ８０の命令に、順々にアクセスしている。メモリアドレス０ｘ１０へのアクセスは、ＣＰＵの命令バッファに命令が存在していない状態での命令フェッチであり、これを先頭命令フェッチとする。
【００８６】
メモリアドレス０ｘ２０〜０ｘ４０へのアクセスは、ＣＰＵが命令を実行しているバックグラウンドで行われる命令アクセスで、これをプリフェッチとする。図中のメモリアドレス０ｘ４０へのアクセスは、命令フェッチが完了する前に分岐命令が実行され、フェッチキャンセルが発生し、途中で中断されていることを示す。メモリアドレス０ｘ８０は、分岐先の命令のフェッチであり、これを分岐先フェッチとする。
【００８７】
図１９に示す状態は、メモリアクセスペナルティの発生に関わらずＣＰＵモデル２２０４を実行するため、命令アクセスと命令実行が並行して行われている。図１９に示す状態におけるメモリアドレス０ｘ１０の命令のフェッチ開始から分岐命令の実行までの時間は、時刻Ｔ６１０から時刻Ｔ６１１となる。
【００８８】
図２０は、本実施の形態１において、ｓｉｍコマンドのオプションに−ｓを指定した場合、すなわち、メモリアクセスペナルティの影響をＣＰＵのシミュレーションに反映しない場合の命令アクセスと命令実行の関係を示す。
【００８９】
図２０に示す命令アクセスは、図１９と同様の命令を同様の順番でフェッチしている。しかし、図２０に示す状態は、メモリアクセスペナルティの発生時にＣＰＵモデル２２０４を実行しないため、命令アクセスと命令実行は排他的に行われている。よって、図２０に示す状態におけるメモリアドレス０ｘ１０の命令のフェッチ開始から分岐命令の実行までの時間は、時刻Ｔ６１０から時刻Ｔ６１２となる。
【００９０】
上記に説明したように、メモリアクセスペナルティの発生時にＣＰＵモデル２２０４を実行するか否かで、システムの実行時間に差異が出てしまう。この差異により、システム性能評価システム１１００のユーザは、システムの性能を過小に評価してしまうという問題があった。上記の課題を解決するため、本実施の形態１では、命令キャッシュヒット率判定処理ステップＳ４００が実行される。
【００９１】
次に、本実施の形態１のシステム性能評価方法およびシステム性能評価装置における命令キャッシュヒット率判定処理ステップＳ４００について説明する。
図８に示すスケジューリング部２１０２において、命令キャッシュヒット率判定処理ステップＳ４００が実施され、命令キャッシュヒット率判定処理ステップＳ４００の内部フローを図４に示す。
【００９２】
命令キャッシュヒット率判定処理ステップＳ４００は、命令キャッシュのヒット率が事前に設定された閾値以上であるか否かを判定するキャッシュヒット率比較ステップＳ４０１と、シミュレーションしたシステムでのプログラム実行サイクル数と実行時間に対するマージンが小さいという旨のメッセージを表示する誤差小メッセージ表示ステップＳ４０２と、シミュレーションしたシステムでのプログラム実行サイクル数と実行時間に対するマージンが大きいという旨のメッセージを表示する誤差大メッセージ表示ステップＳ４０３とを備えている。
【００９３】
命令キャッシュヒット率判定処理ステップＳ４００は、キャッシュヒット率比較ステップＳ４０１の結果、命令キャッシュのヒット率が事前に設定された閾値以上である場合は誤差小メッセージ表示ステップＳ４０２を実行し、命令キャッシュのヒット率が事前に設定された閾値未満である場合は誤差大メッセージ表示ステップＳ４０３を実行する。
【００９４】
これにより、シミュレーションしたシステムでのプログラム実行サイクル数と実行時間に対するマージンが小さいか否かを示すメッセージを表示できるようになる。
ここで、命令キャッシュのヒット率が高い場合に、なぜ、シミュレーションしたシステムでのプログラム実行サイクル数と実行時間に対する誤差が小さくなり、マージンが小さくなるかを説明する。
【００９５】
命令キャッシュのヒット率が高い場合、ほとんどの命令アクセスはメモリアクセスペナルティが０の状態で完了される。命令アクセスのメモリアクセスペナルティが０の場合、ＣＰＵの命令バッファに保持された命令を実行する時間によって隠蔽される命令プリフェッチのメモリアクセスペナルティは０であるため、実質的にメモリアクセスペナルティの影響をＣＰＵのシミュレーションに反映するか否かによる結果の差異がなくなる。
【００９６】
また、命令キャッシュがミスした場合のメモリアクセスペナルティは、ＣＰＵの命令バッファに保持された命令を実行する時間と比べて非常に大きなものになる。故に、命令キャッシュがミスした場合、ＣＰＵの命令バッファに保持された命令を実行する時間によって隠蔽される命令プリフェッチのメモリアクセスペナルティは比較的小さなものとなる。よって、実質的にメモリアクセスペナルティの影響をＣＰＵのシミュレーションに反映するか否かによる結果の差異は相対的に小さくなると言える。
【００９７】
次に、本実施の形態１のシステム性能評価方法およびシステム性能評価装置における命令キャッシュヒット率測定処理ステップＳ８００について説明する。
図６は、図８に示す命令キャッシュヒット率測定部２１３１において、命令キャッシュヒット率を測定するために実行される命令キャッシュヒット率測定処理ステップＳ８００の内部フローを示す。
【００９８】
命令キャッシュヒット率測定処理ステップＳ８００は、メモリモデル２２０５から命令メモリリクエストの応答があるか否かを判定する応答判定ステップＳ４０１と、命令メモリリクエストに対して命令キャッシュがヒットしたか否かを判定するヒット判定ステップＳ４０２と、命令キャッシュヒット数をインクリメントするヒット数インクリメントステップＳ４０３と、命令アクセス数をインクリメントする命令アクセス数インクリメントステップＳ４０４とを備える。
【００９９】
命令キャッシュヒット率測定処理ステップＳ８００は、応答判定ステップＳ４０１で命令メモリリクエストの応答があり、且つ、ヒット判定ステップＳ４０２とで命令キャッシュがヒットしない場合に、命令アクセス数インクリメントステップＳ４０４を実行する。また、命令キャッシュヒット率測定処理ステップＳ８００は、応答判定ステップＳ４０１で命令メモリリクエストの応答があり、且つ、ヒット判定ステップＳ４０２とで命令キャッシュがヒットした場合に、ヒット数インクリメントステップＳ４０３を実施する。
【０１００】
上記のような方法によれば、命令メモリリクエストの応答がある度に命令アクセス数がインクリメントされ、命令アクセス数がカウントできる。また、命令キャッシュがヒットする度に命令キャッシュヒット数はインクリメントされ、命令キャッシュヒット数をカウントできる。よって、命令キャッシュヒット数を命令アクセス数で除算した商が、命令キャッシュヒット率として算出できる。
【０１０１】
以上のようにして、本実施の形態によれば、システムシミュレータ１１０１の実行時に、ｓｉｍコマンドの−ｓオプションを用いて、メモリアクセスペナルティをＣＰＵのシミュレーションに反映させるか否かを指定することが可能となる。
【０１０２】
また、メモリアクセスペナルティをＣＰＵのシミュレーションに反映させないとした場合、スケジューリング部２１０２で実行されるモデル実行処理ステップＳ１００により、メモリアクセスペナルティが発生した場合にはＣＰＵモデル２２０４を実行しない構成になっているので、ＣＰＵのシミュレーションに対してメモリアクセスペナルティの影響を排除した場合の実行サイクル数を正確に計測することが可能となる。
【０１０３】
さらに、命令キャッシュヒット率判定処理ステップＳ４００を有することで、命令アクセスと命令実行が排他的に実行される状態におけるシステム性能のマージンの大きさについてのメッセージを表示することができる。
（実施の形態２）
本発明の実施の形態２のシステム性能評価方法およびシステム性能評価装置を説明する。なお、本実施の形態２では、実施の形態１のシステム性能評価の際に実行するシミュレーションにおけるシステム性能のマージンの大きさを見積もるための指標を、命令キャッシュヒット率としたのに対して、その指標を命令メモリアクセスペナルティの発生率とした場合について説明する。この場合の構成は実施の形態１の場合と大部分が同じであり、その説明を簡単にするため、両者に差異がある部分を中心に説明する。
【０１０４】
はじめに、本実施の形態２のシステム性能評価方法およびシステム性能評価装置に係るシステム性能評価システムの外観について説明する。なお、本実施の形態２におけるシステム性能評価システムの外観は、実施の形態１におけるシステム性能評価システム１１００と同様であるため、ここでの説明は省略する。
【０１０５】
次に、本実施の形態２のシステム性能評価方法およびシステム性能評価装置に係るシステム性能評価システムに対する入出力について、図１１および図１２を用いて説明する。なお、本実施の形態２におけるシステム性能評価システムに対する入出力の説明において、実施の形態１におけるシステム性能評価システムに対する入出力と同様である部分については、ここでの説明は省略する。
【０１０６】
図１１は本実施の形態２におけるシステム性能評価システムに対する入出力例であり、システム性能評価システムの表示装置に表示された内容を示す。
図１１に図示されている内容を詳細に説明する。
【０１０７】
図中の‘Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｐｅｎａｌｔｙ  ｒａｔｉｏ  ：  ’とある行は、命令メモリアクセスペナルティの発生率を示している。図中では、全命令メモリアクセスのうち、０．９５％の命令メモリアクセスでメモリアクセスペナルティが発生したことを示している。この表示以外は、図１０の表示内容と同じである。
【０１０８】
なお、シミュレーションしたシステムでのプログラム実行サイクル数と実行時間に対するマージンが小さいか否かの判定は、後述するペナルティ発生率判定処理ステップＳ５００で判定される。
【０１０９】
また、図１１に示したｓｉｍコマンドで−ｓオプションがない場合の表示内容は、実施の形態１で説明した図１２に示す表示内容と同じである。実施の形態１の場合と同様に、図１１で表示されていた命令メモリアクセスペナルティの発生率の表示と、シミュレーションしたシステムでのプログラム実行サイクル数と実行時間に対するマージンが小さいか否かを示すメッセージは表示されなくなる。
【０１１０】
次に、本実施の形態２のシステム性能評価方法およびシステム性能評価装置におけるシステムシミュレータ２３０１の構成について説明する。
図９に示す本実施の形態２におけるシステムシミュレータ２３０１は、図８に示す実施の形態１の場合に備えられた命令キャッシュヒット率測定部２１３１が、命令メモリのアクセスペナルティ率を測定するペナルティ発生率測定部２３３１に置き換えられたものである。
【０１１１】
次に、本実施の形態２のシステム性能評価方法およびシステム性能評価装置におけるモデル実行処理ステップＳ１０００について説明する。
スケジューリング部２３０２は、図２に示すフローに従って、モデル実行処理ステップＳ１０００を実行する。モデル実行処理ステップＳ１０００は、図１に示すモデル実行処理ステップＳ１００における命令キャッシュヒット率測定処理ステップＳ８００と、命令キャッシュヒット率判定処理ステップＳ４００とが、それぞれ、命令メモリアクセスペナルティの発生率を計測するペナルティ発生率測定処理ステップＳ９００と、命令メモリアのクセスペナルティの発生率に応じてシミュレーション結果として得られたシステムの実行サイクル数に対するマージンが小さいか否かを示すメッセージを表示するペナルティ発生率判定処理ステップＳ５００に置き換えられたものである。
【０１１２】
次に、本実施の形態２のシステム性能評価方法およびシステム性能評価装置におけるペナルティ発生率判定処理ステップＳ５００について説明する。
図５にペナルティ発生率判定処理ステップＳ５００のフローを示す。図５に示すペナルティ発生率判定処理ステップＳ５００は、図９に示すスケジューリング部２３０２において実行される。このペナルティ発生率判定処理ステップＳ５００は、図５に示すように、命令メモリアクセスペナルティ発生率が事前に設定された閾値以上であるか否かを判定するペナルティ発生率比較ステップＳ５０１と、実施の形態１で説明した誤差小メッセージ表示ステップＳ４０２及び誤差大メッセージ表示ステップＳ４０３とを備えている。
【０１１３】
以上のようなペナルティ発生率判定処理ステップＳ５００において、ペナルティ発生率比較ステップＳ５０１の結果、命令メモリアクセスペナルティの発生率が事前に設定された閾値未満である場合は誤差小メッセージ表示ステップＳ４０２を実行し、命令キャッシュのヒット率が事前に設定された閾値以上である場合は誤差大メッセージ表示ステップＳ４０３を実行する。
【０１１４】
これにより、シミュレーションしたシステムでのプログラム実行サイクル数と実行時間に対するマージンが小さいか否かを示すメッセージを表示することができるようになる。
ここで、命令メモリアクセスペナルティの発生率が低い場合に、なぜ、シミュレーションしたシステムでのプログラム実行サイクル数と実行時間に対するマージンが小さくなるかを説明する。
【０１１５】
命令メモリアクセスペナルティの発生率が低い場合、ほとんどの命令アクセスはメモリアクセスペナルティが０の状態で完了される。すなわち、実施の形態１で説明した命令キャッシュヒット率が高い場合と同様の状態であると言える。
【０１１６】
よって、実施の形態１と同様に、実質的にメモリアクセスペナルティの影響をＣＰＵのシミュレーションに反映するか否かによる結果の差異、つまりマージンは相対的に小さくなると言える。
【０１１７】
次に、本実施の形態２のシステム性能評価方法およびシステム性能評価装置におけるペナルティ発生率測定処理ステップＳ９００について説明する。
図７は、図９に示すペナルティ発生率測定部２３３１において、命令メモリアクセスペナルティの発生率を測定するために実行されるペナルティ発生率測定処理ステップＳ９００のフローである。図７に示すように、ペナルティ発生率測定処理ステップＳ９００は、実施の形態１で説明した応答判定ステップＳ４０１と、ＣＰＵモデル２２０４が発行した命令メモリリクエストとメモリモデル２２０５が返した応答の間隔が２サイクル以上であるか否かを判定するペナルティ判定ステップＳ９０２と、ペナルティ発生数をインクリメントするペナルティ発生数インクリメントステップＳ９０３と、実施の形態１で説明した命令アクセス数インクリメントステップＳ４０４とを備えている。
【０１１８】
以上のようなペナルティ発生率測定処理ステップＳ９００は、応答判定ステップＳ４０１で命令メモリリクエストの応答があり、且つ、ペナルティ判定ステップＳ９０２で命令メモリアクセスペナルティが発生していない場合に、命令アクセス数インクリメントステップＳ４０４を実行する。
【０１１９】
また、ペナルティ発生率測定処理ステップＳ９００は、応答判定ステップＳ４０１で命令メモリリクエストの応答があり、且つ、ペナルティ判定ステップＳ９０２とで命令メモリアクセスペナルティが発生した場合には、ペナルティ数インクリメントステップＳ９０３および命令アクセス数インクリメントステップＳ４０４を実行する。
【０１２０】
上記によれば、命令メモリリクエストの応答がある度に命令アクセス数がインクリメントされ、命令アクセス数がカウントできる。また、命令メモリアクセスペナルティが発生する度にペナルティ発生数はインクリメントされ、命令メモリアクセスペナルティの発生数をカウントできる。よって、命令メモリアクセスペナルティの発生数を命令アクセス数で除算した商が、ペナルティ発生率として正確に算出できる。
【０１２１】
以上のようにして本実施の形態によれば、実施の形態１におけるシステム性能のマージンの大きさを見積もるための指標を、命令キャッシュヒット率から命令メモリアクセスペナルティの発生率に置き換えることができ、命令キャッシュヒット率を計測しなくとも、実施の形態１の場合と同様な効果を得ることができる。
【産業上の利用可能性】
【０１２２】
本発明のシステム性能評価方法およびシステム性能評価装置は、容易にＣＰＵの性能とシステムの性能の両方を同時に計測するシステム性能評価方法を実現することが可能となるので、機器組み込みシステムの開発において有用である。
【図面の簡単な説明】
【０１２３】
【図１】本発明の実施の形態１のシステム性能評価方法およびシステム性能評価装置におけるシミュレーションモデル実行処理のフローチャート
【図２】本発明の実施の形態２のシステム性能評価方法およびシステム性能評価装置におけるシミュレーションモデル実行処理のフローチャート
【図３】本発明の実施の形態１のシステム性能評価方法およびシステム性能評価装置におけるメモリアクセス代行処理のフローチャート
【図４】同実施の形態１のシステム性能評価方法およびシステム性能評価装置における命令キャッシュヒット率判定処理のフローチャート
【図５】本発明の実施の形態２のシステム性能評価方法およびシステム性能評価装置における命令メモリアクセスペナルティ発生率判定処理のフローチャート
【図６】本発明の実施の形態１のシステム性能評価方法およびシステム性能評価装置における命令キャッシュヒット率測定処理のフローチャート
【図７】本発明の実施の形態２のシステム性能評価方法およびシステム性能評価装置における命令メモリアクセスペナルティ発生率測定処理のフローチャート
【図８】本発明の実施の形態１のシステム性能評価方法およびシステム性能評価装置におけるシステムシミュレータの構成を示すブロック図
【図９】本発明の実施の形態２のシステム性能評価方法およびシステム性能評価装置におけるシステムシミュレータの構成を示すブロック図
【図１０】本発明の実施の形態１のシステム性能評価方法およびシステム性能評価装置における表示装置の表示例の説明図
【図１１】本発明の実施の形態２のシステム性能評価方法およびシステム性能評価装置における表示装置の表示例の説明図
【図１２】本発明の実施の形態１及び実施の形態２のシステム性能評価方法およびシステム性能評価装置における表示装置の表示例の説明図
【図１３】同実施の形態１及び実施の形態２のシステム性能評価方法およびシステム性能評価装置の構成を示す外観図
【図１４】本発明の実施の形態１のシステム性能評価方法およびシステム性能評価装置におけるＣＰＵとメモリとの間で取り交わされる信号を示す波形図
【図１５】同実施の形態１のシステム性能評価方法およびシステム性能評価装置におけるＣＰＵとメモリとの間で取り交わされる信号の比較説明図
【図１６】従来のシステム性能評価方法およびシステム性能評価装置におけるＣＰＵの機能を示すブロック図
【図１７】同従来例のシステム性能評価方法およびシステム性能評価装置におけるＣＰＵで処理される命令とパイプラインステージの関係を示したタイムチャート
【図１８】同従来例のシステム性能評価方法およびシステム性能評価装置におけるＣＰＵで処理される命令とパイプラインステージの関係を示した他のタイムチャート
【図１９】本発明の実施の形態１のシステム性能評価方法およびシステム性能評価装置におけるＣＰＵのシミュレーションモデルが実行する命令アクセスと命令実行の関係を示したタイムチャート
【図２０】同実施の形態１のシステム性能評価方法およびシステム性能評価装置におけるＣＰＵのシミュレーションモデルが実行する命令アクセスと命令実行の関係を示した他のタイムチャート
【図２１】従来のシステム性能評価方法およびシステム性能評価装置におけるシミュレーションモデル実行処理のフローチャート
【図２２】同従来例のシステム性能評価方法およびシステム性能評価装置におけるシステムシミュレータの構成を示すブロック図
【符号の説明】
【０１２４】
１１００    システム性能評価システム
１１０１    コンピュータ
１１０２    表示装置
１１０３    入力装置
２１０１    システムシミュレータ
２１０２    スケジューリング部
２１１０    ＣＰＵサイクル数カウント部
２１１１    メモリアクセスペナルティ検出部
２１２０    メモリアクセス代行処理部
２１３１    命令キャッシュヒット率測定部
２２０１    システムシミュレータ
２２０２    スケジューリング部
２２０３    実行サイクル数カウント部
２２０４    ＣＰＵモデル
２２０５    メモリモデル
２３０１    システムシミュレータ
２３０２    スケジューリング部
２３３１    ペナルティ発生率測定部
４１００    ＣＰＵ
４１０１    ＩＦステージ
４１０２    ＤＣステージ
４１０３    ＥＸステージ
４１０４    ＭＥＭステージ
４１０５    ＷＢステージ
４１１１    ＤＩＶ１ステージ
４１１２    ＤＩＶ２ステージ
４１１３    ＤＩＶ３ステージ
４１２１    レジスタファイル
４１５１    命令キャッシュ
４１５２    データキャッシュ
【図１】
2006172234.tif 000003
【図２】
2006172234.tif 000004
【図３】
2006172234.tif 000005
【図４】
2006172234.tif 000006
【図５】
2006172234.tif 000007
【図６】
2006172234.tif 000008
【図７】
2006172234.tif 000009
【図８】
2006172234.tif 000010
【図９】
2006172234.tif 000011
【図１０】
2006172234.tif 000012
【図１１】
2006172234.tif 000013
【図１２】
2006172234.tif 000014
【図１３】
2006172234.tif 000015
【図１４】
2006172234.tif 000016
【図１５】
2006172234.tif 000017
【図１６】
2006172234.tif 000018
【図１７】
2006172234.tif 000019
【図１８】
2006172234.tif 000020
【図１９】
2006172234.tif 000021
【図２０】
2006172234.tif 000022
【図２１】
2006172234.tif 000023
【図２２】
2006172234.tif 000024