(57)【特許請求の範囲】
【請求項１】
複数の命令並列実行可能なプロセッサを相互に通信可能に接続して構成されるマルチプロセッシングシステムの性能を評価するための方法であって、
各プロセッサの実行トレースデータを採取する第１ステップと、
該プロセッサ毎に採取された実行トレースデータから、該プロセッサ内での処理実行時間を見積もる第２ステップと、
該プロセッサ毎に見積もられた該処理実行時間を用いて該マルチプロセッシングシステムのシミュレーションを行ない、そのシミュレーション結果に基づいて該マルチプロセッシングシステムの性能を評価する第３ステップとをそなえ、
該第２ステップにおいて、該処理実行時間を２つの時間間隔として見積もり、その際に、これら２つの時間間隔の和が、データアクセスに要する通信時間を０と仮定した場合の、該データアクセスを指示した命令（以下、単にデータアクセス命令という）の発生時刻と当該データアクセス命令の次に発行された次のデータアクセスを指示する命令（以下、次のデータアクセス命令という）の発生時刻との間隔となるように、該処理実行時間としての前記２つの時間間隔を算出するとともに、前記データアクセス命令の発生時刻から、前記データアクセス命令と該プロセッサ内での処理命令との間に依存関係が発生する時刻までの時間間隔として定義される第１時間間隔Ｉ１と、前記データアクセス命令と該処理命令との間に依存関係が発生する時刻から、前記次のデータアクセス命令の発生時刻までの時間間隔として定義される第２時間間隔Ｉ２とを前記２つの時間間隔として算出し、
該第３ステップにおいて該マルチプロセッシングシステムのシミュレーションを行なう際に、時間が０であると仮定された該データアクセスに要する通信時間として時間ＮＬが与えられた場合、該処理実行時間として見積もられた前記第１時間間隔Ｉ１および前記第２時間間隔Ｉ２に基づき、前記データアクセス命令の発生時刻から前記次のデータアクセス命令の発生時刻までの実際の時間間隔を、次式
max(ＮＬ，Ｉ１) ＋Ｉ２
により算出し、算出された前記実際の時間間隔に基づいて、前記次のデータアクセス命令の発生時刻を算出することを特徴とする、マルチプロセッシングシステムの性能評価方法。
【請求項２】
複数の命令並列実行可能なプロセッサを相互に通信可能に接続して構成されるマルチプロセッシングシステムの、性能を評価するための装置であって、
各プロセッサの実行トレースデータを採取するトレースデータ採取部と、
該トレースデータ採取部により該プロセッサ毎に採取された実行トレースデータを変換することにより、該プロセッサ内での処理実行時間を見積もるトレースデータ変換部と、
該マルチプロセッシングシステムの性能を評価すべく、該トレースデータ変換部により該プロセッサ毎に見積もられた該処理実行時間を用いて該マルチプロセッシングシステムのシミュレーションを行なうシミュレーション部とをそなえ、
該トレースデータ変換部が、
該処理実行時間を２つの時間間隔として見積もり、その際に、これら２つの時間間隔の和が、データアクセスに要する通信時間を０と仮定した場合の、該データアクセスを指示した命令（以下、単にデータアクセス命令という）の発生時刻と当該データアクセス命令の次に発行された次のデータアクセスを指示する命令（以下、次のデータアクセス命令という）の発生時刻との間隔となるように、該処理実行時間としての前記２つの時間間隔を算出するとともに、前記データアクセス命令の発生時刻から、前記データアクセス命令と該プロセッサ内での処理命令との間に依存関係が発生する時刻までの時間間隔として定義される第１時間間隔Ｉ１と、前記データアクセス命令と該処理命令との間に依存関係が発生する時刻から、前記次のデータアクセス命令の発生時刻までの時間間隔として定義される第２時間間隔Ｉ２とを前記２つの時間間隔として算出し、
該シミュレーション部が、
時間が０であると仮定された該データアクセスに要する通信時間として時間ＮＬが与えられた場合、該処理実行時間として見積もられた前記第１時間間隔Ｉ１および前記第２時間間隔Ｉ２に基づき、前記データアクセス命令の発生時刻から前記次のデータアクセス命令の発生時刻までの実際の時間間隔を、次式
max(ＮＬ，Ｉ１) ＋Ｉ２
により算出し、算出された前記実際の時間間隔に基づいて、前記次のデータアクセス命令の発生時刻を算出することを特徴とする、マルチプロセッシングシステムの性能評価装置。
【請求項３】
複数の命令並列実行可能なプロセッサを相互に通信可能に接続して構成されるマルチプロセッシングシステムの性能をコンピュータにより評価するための性能評価プログラムを格納した記憶媒体であって、
該性能評価プログラムが、
各プロセッサの実行トレースデータを採取するトレースデータ採取部、
該トレースデータ採取部により該プロセッサ毎に採取された実行トレースデータを変換することにより、該プロセッサ内での処理実行時間を見積もるトレースデータ変換部、および、
該マルチプロセッシングシステムの性能を評価すべく、該トレースデータ変換部により該プロセッサ毎に見積もられた該処理実行時間を用いて該マルチプロセッシングシステムのシミュレーションを行なうシミュレーション部として、該コンピュータを機能させるものであり、
該性能評価プログラムが、
該処理実行時間を２つの時間間隔として見積もり、その際に、これら２つの時間間隔の和が、データアクセスに要する通信時間を０と仮定した場合の、該データアクセスを指示した命令（以下、単にデータアクセス命令という）の発生時刻と当該データアクセス命令の次に発行された次のデータアクセスを指示する命令（以下、次のデータアクセス命令という）の発生時刻との間隔となるように、該処理実行時間としての前記２つの時間間隔を算出するとともに、前記データアクセス命令の発生時刻から、前記データアクセス命令と該プロセッサ内での処理命令との間に依存関係が発生する時刻までの時間間隔として定義される第１時間間隔Ｉ１と、前記データアクセス命令と該処理命令との間に依存関係が発生する時刻から、前記次のデータアクセス命令の発生時刻までの時間間隔として定義される第２時間間隔Ｉ２とを前記２つの時間間隔として算出するように、該トレースデータ変換部を動作させ、
さらに、時間が０であると仮定された該データアクセスに要する通信時間として与えられる時間ＮＬと該処理実行時間として見積もられた前記第１時間間隔Ｉ１および前記第２時間間隔Ｉ２とに基づき、前記データアクセス命令の発生時刻から前記次のデータアクセス命令の発生時刻までの実際の時間間隔を、次式
max(ＮＬ，Ｉ１) ＋Ｉ２
により算出し、算出された前記実際の時間間隔に基づいて、前記次のデータアクセス命令の発生時刻を算出するように、該シミュレーション部を動作させることを特徴とする、マルチプロセッシングシステムの性能評価プログラムを格納した記憶媒体。
【発明の詳細な説明】
【０００１】
（目次）
発明の属する技術分野
従来の技術
発明が解決しようとする課題
課題を解決するための手段
発明の実施の形態
・（ａ）一実施形態の説明（図１〜図１９）
・（ｂ）その他
発明の効果
【０００２】
【発明の属する技術分野】
本発明は、命令並列実行可能なプロセッサを複数そなえこれらのプロセッサを相互に通信可能に接続して構成されるマルチプロセッシングシステムの性能を評価する際に用いて好適な、マルチプロセッシングシステムの性能評価方法および装置並びにマルチプロセッシングシステムの性能評価プログラムを格納した記憶媒体に関する。
【０００３】
マルチプロセッシングシステム（以下、ＭＰシステムという）の性能は、複数のプロセッサ間あるいはプロセッサ−メモリ間の通信効率に応じて大きく変化する。このため、ＭＰシステムの性能評価は、ＭＰシステムの設計，構築，チューニングと様々な開発段階にて行なわれている。
ＭＰシステムの性能評価手法としては、いくつかの手法が存在しており、要求されるシミュレーション精度やシミュレーション速度により適切な手法が選択される。
【０００４】
本発明では、ＭＰシステムの性能評価手法として、シミュレーション精度が高く且つシミュレーション速度の速いトレースドリブンシミュレーションを用いて、ＭＰシステムの開発サイクルを短縮するようにしている。
【０００５】
【従来の技術】
従来よりのＭＰシステム用のトレースドリブンシミュレーションにおいては、各プロセッサ毎に、ハードウェア又はソフトウェア処理により、他のプロセッサとの通信やメモリとの通信（以下、プロセッサ間通信ということがある）が行なわれた時刻を記録した実行トレースデータが採取され、ＭＰシステム用のシミュレータにより、採取された各プロセッサ毎のトレースデータに基づいてＭＰシステムのシミュレーションが行なわれる。
【０００６】
この手法によれば、実際のプログラムのトレースデータを用いることにより、実際のプロセッサ間通信に近いパターンを検証することができる上に、トレースデータを一度採取すればよいためシミュレーション速度が速いという利点がある。
特に、ＭＰシステムを構成するプロセッサが、命令を並列実行しないスカラプロセッサである場合には、精度の高いシミュレーションが期待できる。
【０００７】
【発明が解決しようとする課題】
しかしながら、ＭＰシステムを構成するプロセッサが、命令の並列実行が可能であるプロセッサ（例えばスーパスカラプロセッサ）である場合には、プロセッサ間通信が行なわれている最中にも、プロセッサ内部での処理が進むことにより、トレースデータが動的に変わる可能性がある。
【０００８】
従って、トレースデータを固定してＭＰシステムのシミュレーションを行なうと、シミュレーション精度が大幅に落ちてしまうという課題がある。
一方、通信セクション間レイテンシの精度を向上させるために、シングルプロセッサ用のシミュレータを用いて、各プロセッサ毎のトレースデータをその都度採取してＭＰシステムのシミュレーションを行なうと、シミュレーションに要する時間が膨大なものとなるという課題がある。
【０００９】
本発明は、このような課題に鑑み創案されたもので、命令並列実行可能なプロセッサを複数そなえてなるマルチプロセッシングシステムのシミュレーションを高精度且つ高速に行なって、マルチプロセッシングシステムの性能を高精度且つ高速に評価できるようにした、マルチプロセッシングシステムの性能評価方法および装置を提供することを目的とするとともに、更には、マルチプロセッシングシステムの性能を評価すべくコンピュータを動作させるためのマルチプロセッシングシステムの性能評価プログラムを格納した記憶媒体を提供することを目的とする。
【００１０】
【課題を解決するための手段】
このため、本発明のマルチプロセッシングシステムの性能評価方法は、複数の命令並列実行可能なプロセッサを相互に通信可能に接続して構成されるマルチプロセッシングシステムの性能を評価するための方法であって、各プロセッサの実行トレースデータを採取する第１ステップと、プロセッサ毎に採取された実行トレースデータから、プロセッサ内での処理実行時間を見積もる第２ステップと、プロセッサ毎に見積もられた処理実行時間を用いてマルチプロセッシングシステムのシミュレーションを行ない、そのシミュレーション結果に基づいてマルチプロセッシングシステムの性能を評価する第３ステップとをそなえ、第２ステップにおいて、処理実行時間を２つの時間間隔として見積もり、その際に、これら２つの時間間隔の和が、データアクセスに要する通信時間を０と仮定した場合の、データアクセスを指示した命令（以下、単にデータアクセス命令という）の発生時刻と当データアクセス命令の次に発行された次のデータアクセスを指示する命令（以下、次のデータアクセス命令という）の発生時刻との間隔となるように、処理実行時間としての前記２つの時間間隔を算出するとともに、前記データアクセス命令の発生時刻から、前記データアクセス命令とプロセッサ内での処理命令との間に依存関係が発生する時刻までの時間間隔として定義される第１時間間隔Ｉ１と、前記データアクセス命令と処理命令との間に依存関係が発生する時刻から、前記次のデータアクセス命令の発生時刻までの時間間隔として定義される第２時間間隔Ｉ２とを前記２つの時間間隔として算出し、第３ステップにおいてマルチプロセッシングシステムのシミュレーションを行なう際に、時間が０であると仮定されたデータアクセスに要する通信時間として時間ＮＬが与えられた場合、処理実行時間として見積もられた前記第１時間間隔Ｉ１および前記第２時間間隔Ｉ２に基づき、前記データアクセス命令の発生時刻から前記次のデータアクセス命令の発生時刻までの実際の時間間隔を、次式
max(ＮＬ，Ｉ１) ＋Ｉ２
により算出し、算出された前記実際の時間間隔に基づいて、前記次のデータアクセス命令の発生時刻を算出することを特徴としている（請求項１）。
【００１４】
さらに、本発明のマルチプロセッシングシステムの性能評価装置は、複数の命令並列実行可能なプロセッサを相互に通信可能に接続して構成されるマルチプロセッシングシステムの、性能を評価するための装置であって、各プロセッサの実行トレースデータを採取するトレースデータ採取部と、トレースデータ採取部によりプロセッサ毎に採取された実行トレースデータを変換することにより、プロセッサ内での処理実行時間を見積もるトレースデータ変換部と、マルチプロセッシングシステムの性能を評価すべく、トレースデータ変換部によりプロセッサ毎に見積もられた処理実行時間を用いてマルチプロセッシングシステムのシミュレーションを行なうシミュレーション部とをそなえ、トレースデータ変換部が、処理実行時間を２つの時間間隔として見積もり、その際に、これら２つの時間間隔の和が、データアクセスに要する通信時間を０と仮定した場合の、データアクセスを指示した命令（以下、単にデータアクセス命令という）の発生時刻と当データアクセス命令の次に発行された次のデータアクセスを指示する命令（以下、次のデータアクセス命令という）の発生時刻との間隔となるように、処理実行時間としての前記２つの時間間隔を算出するとともに、前記データアクセス命令の発生時刻から、前記データアクセス命令とプロセッサ内での処理命令との間に依存関係が発生する時刻までの時間間隔として定義される第１時間間隔Ｉ１と、前記データアクセス命令と処理命令との間に依存関係が発生する時刻から、前記次のデータアクセス命令の発生時刻までの時間間隔として定義される第２時間間隔Ｉ２とを前記２つの時間間隔として算出し、シミュレーション部が、時間が０であると仮定されたデータアクセスに要する通信時間として時間ＮＬが与えられた場合、処理実行時間として見積もられた前記第１時間間隔Ｉ１および前記第２時間間隔Ｉ２に基づき、前記データアクセス命令の発生時刻から前記次のデータアクセス命令の発生時刻までの実際の時間間隔を、次式
max(ＮＬ，Ｉ１) ＋Ｉ２
により算出し、算出された前記実際の時間間隔に基づいて、前記次のデータアクセス命令の発生時刻を算出することを特徴としている（請求項２）。
【００１８】
さらに、本発明のマルチプロセッシングシステムの性能評価プログラムを格納した記憶媒体は、複数の命令並列実行可能なプロセッサを相互に通信可能に接続して構成されるマルチプロセッシングシステムの性能をコンピュータにより評価するための性能評価プログラムを格納した記憶媒体であって、性能評価プログラムが、各プロセッサの実行トレースデータを採取するトレースデータ採取部、トレースデータ採取部によりプロセッサ毎に採取された実行トレースデータを変換することにより、プロセッサ内での処理実行時間を見積もるトレースデータ変換部、および、マルチプロセッシングシステムの性能を評価すべく、トレースデータ変換部によりプロセッサ毎に見積もられた処理実行時間を用いてマルチプロセッシングシステムのシミュレーションを行なうシミュレーション部として、コンピュータを機能させるものであり、性能評価プログラムが、処理実行時間を２つの時間間隔として見積もり、その際に、これら２つの時間間隔の和が、データアクセスに要する通信時間を０と仮定した場合の、データアクセスを指示した命令（以下、単にデータアクセス命令という）の発生時刻と当データアクセス命令の次に発行された次のデータアクセスを指示する命令（以下、次のデータアクセス命令という）の発生時刻との間隔となるように、処理実行時間としての前記２つの時間間隔を算出するとともに、前記データアクセス命令の発生時刻から、前記データアクセス命令とプロセッサ内での処理命令との間に依存関係が発生する時刻までの時間間隔として定義される第１時間間隔Ｉ１と、前記データアクセス命令と処理命令との間に依存関係が発生する時刻から、前記次のデータアクセス命令の発生時刻までの時間間隔として定義される第２時間間隔Ｉ２とを前記２つの時間間隔として算出するように、トレースデータ変換部を動作させ、さらに、時間が０であると仮定されたデータアクセスに要する通信時間として与えられる時間ＮＬと処理実行時間として見積もられた前記第１時間間隔Ｉ１および前記第２時間間隔Ｉ２とに基づき、前記データアクセス命令の発生時刻から前記次のデータアクセス命令の発生時刻までの実際の時間間隔を、次式
max(ＮＬ，Ｉ１) ＋Ｉ２
により算出し、算出された前記実際の時間間隔に基づいて、前記次のデータアクセス命令の発生時刻を算出するように、シミュレーション部を動作させることを特徴としている（請求項３）。
【００２３】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
（ａ）一実施形態の説明
図１は本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置の構成を示すブロック図であり、この図１に示すマルチプロセッシングシステムの性能評価装置１（以下、ＭＰシステム性能評価装置１ということがある）は、マルチプロセッシングシステム（以下、ＭＰシステムという）の性能を評価するための装置である。
【００２４】
ここで、ＭＰシステムの一例を図２に示すと、ＭＰシステム１０は、例えばこの図２に示すように、命令並列実行可能なプロセッサ１１を複数（図２では２つだけ図示している）そなえ、これらのプロセッサ１１をバス１４を介して相互に通信可能に接続して構成されている。そして、ＭＰシステム１０においては、メモリ１３が各プロセッサ１１とバス１４を介して接続され、各プロセッサ１１がメモリ１３を共有して使用するように構成されている。なお、各プロセッサ１１はそれぞれキャッシュ１２を有している。また、プロセッサ１１は、周辺機器のコントローラ（Ｉ／Ｏ）も含むものとする。
【００２５】
まず、前述したトレースドリブンシミュレーションについて説明すると、トレースドリブンシミュレーションは、シミュレーションの入力として、実際のシステムの実行履歴（トレースデータ）を用いたシミュレーションである。
即ち、トレースドリブンシミュレーションは、あるシステム（ハードウェア／ソフトウェア）で採取されたトレースデータを用いて、異なったシステム（ハードウェア／ソフトウェア）の性能の評価，予測を行なうものである。
【００２６】
従って、トレースドリブンシミュレーションは、「異なったシステムにおいても命令の実行シーケンス（順番）が変わらない」という仮定に基づいたシミュレーションであるといえる。
トレースドリブンシミュレーションの長所を以下に示す。
（ｉ）トレースデータを入力として用いることによって、対象としているプログラムの振る舞いを評価，予測することができる。
（ii）シミュレーションの際に、対象としているプログラムを実行する必要がないため、高速に性能の評価，予測を行なうことができる。
【００２７】
そして、図１に示すＭＰシステム性能評価装置１は、複数のシングルプロセッサシミュレータ２及びマルチプロセッシングシステムシミュレータ７をそなえて構成されている。
ここで、シングルプロセッサシミュレータ２（以下、ＳＰシミュレータ２ということがある）は、各プロセッサ１１のシミュレーションを並列して行なうべく、プロセッサ１１の数に応じて複数個設けられており、それぞれトレースデータ採取部３，トレースデータ格納部４，トレースデータ変換部５及び変換後トレースデータ格納部６をそなえている。
【００２８】
トレースデータ採取部３は、各プロセッサ１１の実行トレースデータを採取するものである。
ここで、ＭＰシステムの性能評価には、一般的にはいろいろな種類のトレースデータが用いられているが、本実施形態においては、命令トレースデータ及びアドレストレースデータを用いた場合、即ち、トレースデータ採取部３がプロセッサ１１毎に命令トレースデータ及びアドレストレースデータからなるトレースデータを採取する場合について説明する。
【００２９】
命令トレースデータは、実際に実行された命令列を実行された順に並べたものであり、プロセッサ１１のパイプラインシミュレーションに用いられるものである。
また、アドレストレースデータは、ロード／ストア等のようなメモリアクセスを指示する命令に着目して、アクセスしたアドレスをアクセスした順に並べたものであり、キャッシュ１２のシミュレーションに用いられるものである。なお、アドレストレースデータには、通常、アクセスした命令の種類（ロード／ストア）に関する情報が付加される。
【００３０】
そして、トレースデータ採取部３では、従来のトレースデータとは異なり、トレースデータとして、命令トレースデータ及びアドレストレースデータを混合したものが採取されるようになっている。
ここで、トレースデータ（変換前トレースデータ）の構成の一例を図４に示すと、１つのトレースデータ４Ａは、例えば図４に示すように、「命令ワード」，「ＰＣ（プログラムカウンタ）」，「アクセスアドレス」，「条件分岐成立／不成立」に関する情報から構成されている。なお、「命令ワード」は実行された命令を示し、「ＰＣ」は実行された命令のアドレスを示し、「アクセスアドレス」はアクセスしたアドレス（ロード命令とストア命令に限り値が書き込まれる）を示し、「条件分岐成立／不成立」はアクセスしたアドレス（条件分岐命令に限り値が書き込まれる）を示している。
【００３１】
また、トレースデータ格納部４は、トレースデータ採取部３によりプロセッサ１１毎に採取された実行トレースデータ４Ａを格納するものである。
さらに、トレースデータ変換部５は、トレースデータ採取部３によりプロセッサ１１毎に採取された実行トレースデータ４Ａを変換することにより、プロセッサ１１内での実質的な処理実行時間を見積もるものである。
【００３２】
即ち、本実施形態では、トレースデータ変換部５は、プロセッサ１１毎に採取された実行トレースデータ４Ａを、トレースドリブンシミュレーションにより変換して、プロセッサ１１内での実質的な処理実行時間を算出するシングルプロセッサ用のシミュレータとして構成されている。
ここで、トレースデータ変換部５は、後述にて詳述するように、処理実行時間を、その総和が、データアクセスに要する通信時間を０と仮定した場合の、データアクセスを指示した命令の発生時刻と次のデータアクセス命令の発生時刻との間隔となる、複数の時間間隔として見積もるように構成されている。
【００３３】
換言すれば、トレースデータ変換部５は、やはり後述にて詳述するように、データアクセスを指示した命令の発生時刻から、データアクセスを指示した命令とプロセッサ１１内での処理命令との間に依存関係が発生する時刻までの第１時間間隔Ｉ１と、データアクセスを指示した命令と処理命令との間に依存関係が発生する時刻から、前記次のデータアクセス命令の発生時刻までの第２時間間隔Ｉ２とを、複数の時間間隔として見積もるように構成されているのである。
【００３４】
ここで、トレースデータ変換部５により変換されたトレースデータ（変換後トレースデータ）を、図５に示す。
変換後トレースデータ６Ａは、図５に示すように、「アクセスアドレス〔Ａｄｄｒ（ｎ）  〕」，「アクセスサイズ〔Ｓｉｚｅ（ｎ）  〕」，「アクセスタイプ〔Ｔｙｐｅ（ｎ）  〕」，「次の通信セクションまでのレイテンシに関する情報〔Ｉ１（ｎ），Ｉ２（ｎ）〕」に関する情報から構成されている。なお、「アクセスアドレス」はメモリ１３上のアクセスするアドレスを示し、「アクセスサイズ」はアクセスするデータの大きさを示し、「アクセスタイプ」はアクセス命令のタイプ（リード／ライト／リプレース／ロック／アンロック等）を示す。また、「次の通信セクションまでのレイテンシに関する情報」は、通信セクション〔即ち、プロセッサ間通信（他のプロセッサとの通信やメモリとの通信）を行なっている部分〕間の実行時間に関する情報であり、前述したＩ１（ｎ），Ｉ２（ｎ）がこれに相当する。
【００３５】
さらに、変換後トレースデータ格納部６は、トレースデータ変換部５により変換された変換後トレースデータ６Ａを格納するものである。
ところで、マルチプロセッシングシステムシミュレータ７（以下、ＭＰシステムシミュレータ７ということがある）は、ＭＰシステム１０の性能を評価すべく、各ＳＰシミュレータ２のトレースデータ変換部５によりプロセッサ１１毎に見積もられた上記処理実行時間を用いて、ＭＰシステム１０のシミュレーションを行なうものであり、シミュレーション部として機能するものである。このＭＰシステムシミュレータ７は、詳細には図３に示すように、プロセッサ１１のシミュレーションを行なうプロセッサシミュレート部７Ａ，バス１４のシミュレーションを行なうバスシミュレート部７Ｂ，メモリ１３のシミュレーションを行なうメモリシミュレート部７Ｃにより構成されている。なお、各シミュレート部は、各構成要素を１サイクルずつシミュレートするように構成されている。
【００３６】
ここで、ＭＰシステムシミュレータ７は、図１，図３に示すように変換後トレースデータ６Ａを入力としているが、この変換後トレースデータ６Ａは、プロセッサシミュレート部７Ａに適用されるようになっている。また、ＭＰシステムシミュレータ７からの出力は、総実行時間，バス使用率，キャッシュヒット率，ＣＰＵ処理時間等が考えられる。
【００３７】
このＭＰシステムシミュレータ７は、後述にて詳述するように、時間が０であると仮定されたデータアクセスに要する通信時間として与えられる時間ＮＬと前記第１時間間隔Ｉ１および前記第２時間間隔Ｉ２とに基づき、データアクセスに要する実際の通信時間を、次式（１）により算出するように構成されている。
ｍａｘ（ＮＬ，Ｉ１）  ＋Ｉ２                                      …（１）
さらに、このＭＰシステムシミュレータ７は、やはり後述にて詳述するように、前記実際の通信時間に基づいて、前記次のデータアクセス命令の発生時刻を算出するように構成されている。
【００３８】
実際には、本実施形態にかかるマルチプロセッシングシステムの性能評価装置１において、上述したＳＰシミュレータ２のトレースデータ採取部３及びトレースデータ変換部５並びにＭＰシステムシミュレータ７に相当する機能は、コンピュータにおけるディスク装置やＣＤ−ＲＯＭ等の記録媒体（図示せず）に記録されたプログラム〔以下、マルチプロセッシングシステムの性能評価プログラム（ＭＰシステム性能評価プログラム）という〕を図示しないメモリ（ＲＡＭ）に読み出し、そのプログラムを起動してやはり図示しないプロセッサ回路（ＣＰＵ等）で実行することにより、プロセッサ回路の動作として実現される。
【００３９】
ここで、ＭＰシステム性能評価プログラムは、各プロセッサ１１の実行トレースデータを採取するトレースデータ採取部３、トレースデータ採取部３によりプロセッサ１１毎に採取された実行トレースデータを変換することにより、プロセッサ１１内での実質的な処理実行時間を見積もるトレースデータ変換部５、および、マルチプロセッシングシステム１０の性能を評価すべく、トレースデータ変換部５によりプロセッサ１１毎に見積もられた処理実行時間を用いてマルチプロセッシングシステム１０のシミュレーションを行なうＭＰシステムシミュレータ７として、コンピュータを機能させるものである。
【００４０】
なお、このＭＰシステム性能評価プログラムは、例えばＣＤ−ＲＯＭ等に記録されており、ＣＤ−ＲＯＭ等からコンピュータにおけるディスク装置等にインストールされて使用される。
即ち、上述したディスク装置やＣＤ−ＲＯＭ等が、マルチプロセッシングシステム１０の性能をコンピュータにより評価するための性能評価プログラムを格納した記憶媒体に相当する。
【００４１】
さらに、トレースデータ格納部４，変換後トレースデータ格納部６としては、ディスク装置やメモリ（ＲＡＭ）等の記録媒体（ともに図示せず）が用いられる。
上述の構成により、本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置１においては、以下にて説明するようにしてＭＰシステム１０のシミュレーションが行なわれ、そのシミュレーション結果に基づいてＭＰシステム１０の性能が評価される。
【００４２】
このときのＭＰシステム性能評価装置１における動作を、図６〜図１４に示すフローチャートを用いて詳細に説明する。
ここで、本実施形態においては、前記トレースドリブンシミュレーションは、以下の前提のもとで行なわれる。これらの前提は、プロセッサ１１の処理の実行順序によって、通信セクション以外のトレースデータが変化しないことを保証するものである。
（ｉ）トレースデータの前提
トレースデータは各プロセッサ１１毎に採取されている。
【００４３】
共有変数のロック，アンロックを行なう際のビジーループは、抽象的な命令列（ロックをかける命令，ロックを解除する命令）として保持されている。
他のプロセッサ１１からアクセスされる可能性のある共有変数と、自プロセッサ１１からしかアクセスされないローカル変数の区別が可能である。
（ｉｉ）プログラムの振る舞いの前提
他のプロセッサ１１の振る舞いによって、命令ワード（実行トレース命令列）及びアクセスアドレスが変化しない。
【００４４】
このような前提のもとで、ＭＰシステム性能評価装置１においては、まず、ＳＰシミュレータ２のトレースデータ採取部３により、各プロセッサ１１の実行トレースデータが採取される（図６のステップＳ１；第１ステップ）。
続いて、ＳＰシミュレータ２のトレースデータ変換部５により、プロセッサ１１毎に採取された実行トレースデータからプロセッサ１１内での実質的な処理実行時間が見積もられる（図６のステップＳ２；第２ステップ）。なお、上記処理実行時間は、プロセッサ１１毎に採取された実行トレースデータ４Ａに基づいて、トレースドリブンシミュレーションにより算出される。
【００４５】
ここで、トレースデータ変換部５においては、変換後トレースデータ６Ａは１回のプロセッサ間通信毎に作成される。なお、トレースデータ変換部５は、各ＳＰシミュレータ２に設けられているので、各トレースデータの変換処理は並列に行なうことも可能である。
また、トレースデータの解析の際には、ネットワークトラフィックに関わる全てのメモリアクセスに注意する必要がある。そこで、プロセッサ間通信を行なう場合は、以下の場合であるとする。
（ｉ）共有変数へのアクセス（ロード／ストア／リプレース）
（ｉｉ）ローカル変数アクセスの外部キャッシュミス（キャッシュのリプレースも含む）
ここで、トレースドリブンシミュレーションによるプロセッサ１１の評価の一例を、図９，図１０に示す。なお、本実施形態では、変換前トレースデータ４Ａにおけるプログラムカウンタ（図４参照）の値を用いない場合について説明する。
【００４６】
まず、以下のような簡単なパイプラインをもったプロセッサ１１のシミュレーションが行なわれる（図９のステップＢ１〜Ｂ１０および図１０のステップＢ１１〜Ｂ２４参照）。
（ｉ）通常の命令；ＦＤＥＷ
（ｉｉ）メモリアクセス命令；ＦＤＥＭＭＷ
なお、Ｆはフェッチ（ｆｅｔｃｈ  ），Ｄはデコード（ｄｅｃｏｄｅ），Ｅは実行（ｅｘｅｃｕｔｅ  ），Ｗは書き込み（ｗｒｉｔｅｂａｃｋ  ），Ｍはメモリアクセス（ｍｅｍｏｒｙ  ａｃｃｅｓｓ  ）を示す。
【００４７】
そして、図９のステップＢ８におけるｉｆサイクルでフェッチ，図１０のステップＢ１３におけるｄｃサイクルでデコード，図１０のステップＢ１６におけるｅｘサイクルで実行，図１０のステップＢ２３におけるｗｂサイクルで書き込みが行われた時刻がわかる。また、図１０のステップＢ２０におけるｅｘサイクルでメモリアクセスが開始された時刻がわかり、全命令実行終了後のｗｂサイクルから全実行時間がわかる。
【００４８】
さらに、トレースデータ変換部５では、処理実行時間が、その総和が、データアクセスに要する通信時間を０と仮定した場合（即ち、ネットワークレイテンシがないと仮定した場合）の、データアクセスを指示した命令の発生時刻と次のデータアクセス命令の発生時刻との間隔となる、複数の時間間隔Ｉ１（ｎ），Ｉ２（ｎ）として見積もられる。
【００４９】
ここで、ｎ番目のネットワークアクセス命令をＮＡ（ｎ），これに依存する命令をＩＮＳＴ（ｎ）としたときに、Ｉ１（ｎ），Ｉ２（ｎ）を次式（２），（３）のように定義する。
0003608915.tif 000002
換言すれば、Ｉ１（ｎ）は、データアクセスを指示した命令の発生時刻から、データアクセスを指示した命令とプロセッサ１１内での処理命令との間に依存関係が発生する時刻までの第１時間間隔を示す。また、Ｉ２（ｎ）は、データアクセスを指示した命令と処理命令との間に依存関係が発生する時刻から、前記次のデータアクセス命令の発生時刻までの第２時間間隔を示す。
【００５０】
さらに、トレースデータ変換部５における通信セクション間のレイテンシの見積り手順を図７，図８に示す。
そして、ネットワークレイテンシ（ＮＬ）がない設定で、シングルプロセッサ用トレースドリブンシミュレータによりシミュレーションが行なわれ（図７のステップＡ１〜Ａ１４および図８のステップＡ１５〜Ａ１８参照）、上記Ｉ１（ｎ），Ｉ２（ｎ）が求められる。
【００５１】
なお、Ｉ１（ｎ）を求める際に検出すべき依存関係を以下に示す。なお、カッコの中は依存が発生するタイミングを示す。
（ｉ）ロードの場合
・ロードと真依存にある命令（オペランドを読むステージ）
・後続ロード（メモリアクセス）
・メモリ干渉を起こす後続ストア（メモリアクセス）
（ii）ストアの場合
・後続ストア（メモリアクセス）
・メモリ干渉を起こす後続ロード（メモリアクセス）
そして、ＭＰシステムシミュレータ７により、プロセッサ１１毎に見積もられた処理実行時間を用いてＭＰシステム１０のシミュレーションが行なわれる（図６のステップＳ３；第３ステップ）。
【００５２】
ここで、ＭＰシステムシミュレータ７が全体として行なう動作を図１１に示す。
まず、ＭＰシステムシミュレータ７においては、各プロセッサ１１の変換後トレースデータ６Ａが読み込まれ、各プロセッサシミュレート部７Ａの変数が初期化されるとともに、バスシミュレート部７Ｂ，メモリシミュレート部７Ｃのビジーがそれぞれ０に設定され（図１１のステップＣ１）、更に現在時刻が０に設定される（図１１のステップＣ２）。
【００５３】
続いて、各シミュレート部７Ａ，７Ｂ，７Ｃより、各構成要素１１，１４，１３が１サイクル分ずつシミュレートされる（図１１のステップＣ３；即ち、図１２のステップＤ１〜ステップＤ１８，図１３のステップＥ１〜ステップＥ６，図１４のステップＦ１〜ステップＦ５）。なお、図１２は１サイクルのプロセッサシミュレート部７Ａの行なう動作を示すフローチャートであり、図１３は１サイクルのバスシミュレート部７Ｂの行なう動作を示すフローチャートであり、図１４は１サイクルのメモリシミュレート部７Ｃの行なう動作を示すフローチャートである。
【００５４】
さらに、未処理の変換後トレースデータ６Ａがあるか、又は、待ち状態の要求があるか、又は、ビジーが０でないバス１４，メモリ１３があるかが判断される（図１１のステップＣ４）。
そして、未処理の変換後トレースデータ６Ａがある場合、又は、待ち状態の要求がある場合、又は、ビジーが０でないバス１４，メモリ１３がある場合には、現在時刻が１追加され（図１１のステップＣ４のＹＥＳルートから図１１のステップＣ５）、そうでない場合には、ＭＰシステムシミュレータ７によるシミュレーションが終了する。
【００５５】
ここで、プロセッサシミュレート部７Ａにおける処理に着目すると、プロセッサシミュレート部７Ａにおいては、トレースデータ変換部５により得られた変換後トレースデータ６Ａを用いて、シミュレーションが行なわれる（図１２のステップＤ１〜ステップＤ１８）。
まず、以下の説明にて使用する略号について説明する。
Ｔｒａｃｅ（ｉｄ）  ：プロセッサｉｄ（ｉｄ：識別番号）の変換後トレースデータ６Ａ
Ｉ１（ｉｄ，ｎ）：プロセッサｉｄの変換後トレースデータにおけるＩ１（ｎ）
Ｉ２（ｉｄ，ｎ）：プロセッサｉｄの変換後トレースデータにおけるＩ２（ｎ）
Ａ（ｉｄ，ｉ）：プロセッサｉｄのｉ番目の通信セクションの開始時刻（これはＭＰシステムシミュレータ７により見積もられる。）
プロセッサシミュレート部７Ａにおいては、各プロセッサ１１における時刻をＩ１（ｉｄ，０）で初期化した後、Ｔｒａｃｅ（ｉｄ）  をイベントキューに見立ててシミュレーションが行なわれる。
【００５６】
そして、シミュレーションを行なう際に、時間が０であると仮定されたデータアクセスに要する通信時間として時間ＮＬが与えられた場合、Ｉ１（ｉｄ，ｎ），Ｉ２（ｉｄ，ｎ）に基づき、データアクセスに要する実際の通信時間が、次式（４）により算出される。
ｍａｘ  〔ＮＬ，Ｉ１（ｉｄ，ｎ）〕＋ｍａｘ  〔０，Ｉ２（ｉｄ，ｎ）〕            …（４）
さらに、式（４）により求められた実際の通信時間に基づいて、次のデータアクセス命令の発生時刻が算出される。
【００５７】
即ち、プロセッサシミュレート部７Ａでは、Ａ(id,n)，Ｉ１(id,n)，Ｉ２(id,n)を用いて、ｎ＋１番目の通信セクション開始タイミングＡ(id,n+1)が求められるのであり、ＮＡ(id,n)の処理時間がＮＬ(id,n)であったとすると、次式（５）によりＡ(id,n+1)が求められる。なお、ＮＬ(id,n)の算出方法については、従来からの方法が適宜用いられる。
【００５８】
0003608915.tif 000003
なお、シミュレーションのシステム時刻がＡ（ｉｄ，ｎ＋１）に達した時点で、Ｔｒａｃｅ（ｉｄ）  からトレースデータが抜き出され、ＭＰシミュレーションが適用される。
さらに、トレースデータ変換部５によるＩ１（ｎ）及びＩ２（ｎ）の計算例を図１５に示す。この図１５では、横軸が時間を示し、縦軸が命令列を示している。また、太い網かけ右矢印の長さにより、各命令が処理されている期間を示している。実際のＭＰシステム１０においては、ネットワークレイテンシＮＬ（ｎ）が０ではないので、図１６，図１７に示すようにＮＬ（ｎ）＜Ｉ１（ｎ）の場合と、図１８，図１９に示すようにＮＬ（ｎ）＞Ｉ１（ｎ）の場合がある。なお、図１６，図１８における太い白抜き右矢印Ｘは、それぞれＮＬ（ｎ）を示す。
【００５９】
ＮＡ（ｎ）に依存する命令ＩＮＳＴは、ＮＡ（ｎ）の実行完了より先に処理することはできないため、ＩＮＳＴが処理されるタイミングＴは次式（６）で表される。
Ｔ＝Ａ（ｉｄ，ｎ）＋ｍａｘ  〔ＮＬ（ｉｄ，ｎ），Ｉ１（ｉｄ，ｎ）〕              …（６）
ＩＮＳＴの処理が開始された後、ＮＡ（ｎ＋１）がＩ２（ｎ）サイクルの後に通信セクションを実行する。従って、次式（７）が得られる。
【００６０】
Ａ（ｉｄ，ｎ＋１）＝Ｔ＋ｍａｘ  〔０，Ｉ２（ｉｄ，ｎ）〕                    …（７）
換言すれば、ＭＰシステムシミュレータ７においては、上記の式（６），（７）を用いて通信セクション開始タイミングが見積もられるのである。
この際、本実施形態においては、プロセッサ１１内のシミュレーションを完全に独立に行なうことができ、また、一度トレースデータの変換を行なえばプロセッサ１１内のシミュレーションを再度行なう必要がないため、高速にシミュレーションを行なうことができる。
【００６１】
最後に、ＭＰシステムシミュレータ７によるシミュレーション結果に基づいて、ＭＰシステム１０の性能が評価される。
このように、本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置１によれば、各プロセッサ１１毎に採取された実行トレースデータ４Ａから、そのプロセッサ１１内での実質的な処理実行時間を見積もる〔即ち、通信セクション間隔をＩ１（ｎ），Ｉ２（ｎ）に分離して保持する〕ことにより、命令並列実行可能なプロセッサを複数そなえてなるＭＰシステムのシミュレーションを高精度且つ高速に行なうことができ、ＭＰシステムの性能を高精度且つ高速に評価することができる。
【００６２】
従って、ＭＰシステムの開発サイクルを短縮化することができ、ＭＰシステムの開発の工数を抑える効果がある。
（ｂ）その他
なお、ＭＰシステムの性能評価の重要なものの一つに、キャッシュプロトコルによるトラフィック増加の見積りがあるが、キャッシュプロトコルをシミュレートするためには、通信セクションでのキャッシュ状態に関する情報が必要になる。
【００６３】
このため、ＭＰシステムシミュレータ７は、変換後トレースデータ６Ａに基づいて、通信セクション時のキャッシュ状態を再現するキャッシュシミュレート部をそなえてもよい。つまり、変換後トレースデータ６Ａには、リードやライトアクセスばかりでなくリプレースの情報も含まれているため、キャッシュシミュレート部によりキャッシュ状態を再現することができる。
【００６４】
さらに、ＭＰシステムシミュレータ７は、スピンロックによる通信セクション回数の増加，キャッシュコヒーレンスによる通信セクション回数の増加をシミュレートするスピンロックシミュレート部をそなえてもよい。
このようにすれば、ＭＰシステムシミュレータ７により、更に正確なシミュレーションを行なうことができる。
【００６５】
【発明の効果】
以上詳述したように、請求項１〜３記載の本発明によれば、各プロセッサ毎に採取された実行トレースデータから、そのプロセッサ内での実質的な処理実行時間を見積もることにより、命令並列実行可能なプロセッサを複数そなえてなるマルチプロセッシングシステムのシミュレーションを高精度且つ高速に行なうことができ、マルチプロセッシングシステムの性能を高精度且つ高速に評価することができる利点がある。従って、マルチプロセッシングシステムの開発サイクルを短縮化することができ、マルチプロセッシングシステムの開発の工数を抑える効果がある。
【図面の簡単な説明】
【図１】本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置の構成を示すブロック図である。
【図２】マルチプロセッシングシステムの構成の一例を示す図である。
【図３】マルチプロセッシングシステムシミュレータの構成を示す図である。
【図４】変換前トレースデータの構成を示す図である。
【図５】変換後トレースデータの構成を示す図である。
【図６】本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置の動作を説明するためのフローチャートである。
【図７】本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置の動作を説明するためのフローチャートである。
【図８】本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置の動作を説明するためのフローチャートである。
【図９】本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置の動作を説明するためのフローチャートである。
【図１０】本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置の動作を説明するためのフローチャートである。
【図１１】本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置の動作を説明するためのフローチャートである。
【図１２】本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置の動作を説明するためのフローチャートである。
【図１３】本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置の動作を説明するためのフローチャートである。
【図１４】本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置の動作を説明するためのフローチャートである。
【図１５】本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置の動作を説明するための図である。
【図１６】本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置の動作を説明するための図である。
【図１７】本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置の動作を説明するための図である。
【図１８】本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置の動作を説明するための図である。
【図１９】本発明の一実施形態にかかるマルチプロセッシングシステムの性能評価装置の動作を説明するための図である。
【符号の説明】
１  マルチプロセッシングシステム性能評価装置
２  シングルプロセッサシミュレータ
３  トレースデータ採取部
４  トレースデータ格納部
４Ａ  変換前トレースデータ
５  トレースデータ変換部
６  変換後トレースデータ格納部
６Ａ  変換後トレースデータ
７  マルチプロセッシングシステムシミュレータ（シミュレーション部）
７Ａ  プロセッサシミュレート部
７Ｂ  バスシミュレート部
７Ｃ  メモリシミュレート部
１０  マルチプロセッシングシステム
１１  プロセッサ
１２  キャッシュ
１３  メモリ
１４  バス
【図１】
0003608915.tif 000004
【図２】
0003608915.tif 000005
【図３】
0003608915.tif 000006
【図４】
0003608915.tif 000007
【図５】
0003608915.tif 000008
【図６】
0003608915.tif 000009
【図７】
0003608915.tif 000010
【図８】
0003608915.tif 000011
【図９】
0003608915.tif 000012
【図１０】
0003608915.tif 000013
【図１１】
0003608915.tif 000014
【図１２】
0003608915.tif 000015
【図１３】
0003608915.tif 000016
【図１４】
0003608915.tif 000017
【図１５】
0003608915.tif 000018
【図１６】
0003608915.tif 000019
【図１７】
0003608915.tif 000020
【図１８】
0003608915.tif 000021
【図１９】
0003608915.tif 000022