(57)【特許請求の範囲】
【請求項１】
複数のプロセッサが各プロセッサ毎に独立したバスによりシステム制御装置に接続され該システム制御装置に主記憶が接続されたマルチプロセッサシステム上で実行される処理をシミュレーションすることにより、前記マルチプロセッサシステムの実行性能を測定する性能シミュレーション方法であって、
前記複数のプロセッサのそれぞれの動作をシミュレーションする複数の第１の性能シミュレータと、システム制御装置及び主記憶の動作をシミュレーションする第２の性能シミュレータとから構成され、
前記複数の第１の性能シミュレータのそれぞれは、性能シミュレーションを実行する性能シミュレーション手段と、該性能シミュレーション手段による所定サイクル分のシミュレーションの実行終了を第２の性能シミュレータに通知する同期手段と、前記バスの占有状況のデータ格納して管理する共有資源管理部と、前記バスの占有状況のデータを第２の性能シミュレータに送信する通信手段とを有し、
前記第２の性能シミュレータは、性能シミュレーションを実行する性能シミュレーション手段と、該性能シミュレーション手段による所定サイクル分のシミュレーションの実行終了を第１の性能シミュレータに通知する同期手段と、前記バスの占有状況のデータを第１の性能シミュレータに送信する通信手段とを有し、
（ａ）前記第１の性能シミュレータのそれぞれは、各プロセッサに対する所定サイクルのシミュレーションを実行し、シミュレーション終了後、前記第２の性能シミュレータに、バス占有状況のデータを送信すると共に、シミュレーション実行の終了を通知し、
（ｂ）前記第２の性能シミュレータは、全ての前記第１の性能シミュレータからのシミュレーション実行の終了の通知を受けると、システム制御装置及び主記憶に対する所定サイクルのシミュレーションを実行し、シミュレーション終了後、前記第１の性能シミュレータのそれぞれに、バス占有状況のデータを送信すると共に、シミュレーション実行の終了を通知し、
（ｃ）前記（ａ）及び（ｂ）の処理を交互に繰り返すことにより前記マルチプロセッサシステム全体のシミュレーションを実行することを特徴とする性能シミュレーション方法。
【請求項２】
前記複数の第１の性能シミュレータによるシミュレーションを同時に並列に実行させることを特徴とする請求項１記載の性能シミュレーション方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理装置の性能シミュレーション方法に関し、特に、マルチプロセッサシステム等に多数のシミュレーション手段を構成し、これにより、論理装置の性能シミュレーションを高速に行うことを可能にした性能シミュレーション方法に関する。
【０００２】
【従来の技術】
近年、スーパーコンピュータやメインフレーム等の情報処理装置における高性能化が要求されている。このような情報処理装置には、実機が試作される前に性能の解析を行うことが必要である。一般に、情報処理装置の性能は、ＣＰＵ内のパイプライン構造、キャッシュ等のメモリ構造、Ｉ／Ｏ構造を含んだハードウェアアーキテクチャと、その上で実行されるソフトウェアを生成するコンパイラの性能等とにより決定される。これらの性能を実機試作前に解析し、情報処理装置やコンパイラの開発に活かすことが、情報処理装置の高性能確保のために、ますます重要になってきている。
【０００３】
前述したような情報処理装置の性能解析を実施する手段として、性能シミュレーション技術がある。性能シミュレーションとは、対象となる情報処理装置のハードウェアアーキテクチャのモデルをソフトウェアにより構築し、与えられたソフトウェアプログラムに対するハードウェア動作をそのモデル上で模擬し、そのプログラムの実行に要する時間（一般に、サイクル数）や、キャッシュのヒット率、メモリのロードレイテンシ等を計測するものである。
【０００４】
使用者は、この性能シミュレーションにより、対象の情報処理装置の事前性能解析を実施し、情報処理装置の試作前にハードウェアの性能不良を摘出することが可能となる。また、性能シミュレーションにより、対象処理装置用のコンパイラやＯＳの性能評価を行うことが可能となり、これらのソフトウェアの性能向上にも利用することができる。
【０００５】
性能シミュレーションにおけるシミュレーションの実行は、対象装置の同期クロックサイクルを基本として進行され、対象装置の性能は、１マシンサイクル毎に評価する方法、あるいは、発生するハードウェアイベントのレイテンシに基づき評価する方法等により評価されるが、いずれにせよシミュレーション実行の時間単位は、マシンサイクルであるのが主流である。
【０００６】
前述のような性能シミュレーション技術に関する従来技術として、例えば、特開平８−１８００９４号公報等に記載された技術が知られている。この従来技術による方法は、モデル上で実行されるアプリケーションのシステムコールの解析やアドレスジェネレータを包含し、ＣＰＵやメモリのタイミングをシミュレートするという方法である。また、他の従来技術として、例えば、特願平９−１４５９６５号等に記載された技術が知られている。この従来技術による方法は、通常のアプリケーションプログラムに対し、不当な分岐予測により実行される命令を考慮し、ＣＰＵの動的分岐予測機構の方式性能を測定する方法である。
【０００７】
【発明が解決しようとする課題】
前述したような従来技術による性能シミュレーション技術は、取り扱うことのできる情報処理装置の規模に限界があり、近年の情報処理装置のように、大規模化により論理モデルが大きくなった情報処理装置を取り扱うことが困難になり、また、取り扱うことが可能であっても、シミュレーション時間が増加してしまうという問題点を有している。
【０００８】
このような問題点に対して、対象情報処理装置を複数の部分に分割し、それぞれの部分を別々の性能シミュレータに担当させ、これらをマルチプロセッサシステムによる計算機上で実行させ、シミュレーションの高速化を実現するアプローチが考えられる。この場合、各部分を担当する性能シミュレータを別々のプロセッサに割り付ければ、シミュレーション処理の高速化が期待できる。そして、前述したように、性能シミュレーションは、基本的にマシンサイクルを単位に進行するため、マルチプロセッサシステム上で並列にシミュレーション実行させる場合も、厳密にはサイクル単位でお互いに同期を取りながら、全体のシミュレーションを進行させる必要がある。しかし、この方法は、同期のためのプロセス間の通信が毎サイクルに発生し、同期のためのオーバーヘッドが大きくなると言う問題点を有している。
【０００９】
これに対して、各シミュレータ間の同期を１サイクル毎ではなく、複数サイクル（以下、ΔＴサイクルと呼ぶ）毎に同期を取ることにより、オーバーヘッドを少なくするという方法が考えれている。しかし、各シミュレータが担当する対象論理に共通資源がある場合、基本的には個別にシミュレーションすることができず、このようなΔＴサイクル毎の同期方式は、正確なシミュレーションを行うことができないという不具合が生じる。
【００１０】
図９は本発明及び従来技術による性能シミュレーション方法が対象とする情報処理装置の構成例を示すブロック図、図１０は独立な性能シミュレータでその動作を模擬する場合のシミュレーションの実行を説明する図であり、以下、図９、図１０を参照して、従来技術によるΔＴサイクル毎の同期方式による性能シミュレーションの問題点を説明する。図９において、１００は情報処理装置、１０１、１０２は部分装置、１０３は双方向バスである。
【００１１】
性能シミュレーションの対象となる情報処理装置１００は、図９に示すように、部分装置１０１と部分装置１０２とを双方向バス１０３で接続して構成されており、各部分装置１０１、１０２が、各部分装置で共有している資源である双方向バス１０３を介して相互にデータの送受信を実行しながら協調して処理動作を実行する。情報処理装置１００は、例えば、複数のノード装置またはプロセッサにより構成される並列処理装置であり、分割された部分装置１０１、１０２は１つ１つのノード装置またはプロセッサである。このような性能シミュレーションの対象に対して、部分装置１０１、１０２をそれぞれ、独立な性能シミュレータでその動作を模擬する場合のシミュレーションの実行の状況を図１０を参照して説明する。
【００１２】
図１０に示す例において、図示しない性能シミュレータ２０１が部分装置１０１と双方向バス１０３とを、図示しない性能シミュレータ２０２が部分装置１０２をそれぞれ担当してシミュレーションを実行するものとする。そして、各性能シミュレータ２０１、２０２が、前述したように、ΔＴサイクル毎に同期を取りながらシミュレーションを進行させるものとする。
【００１３】
前述の場合、部分装置１０２のみに対する性能シミュレータ２０２は、あるシミュレーション期間における次の同期ポイントまでの途中で、双方向バス１０３の占有状況を知ることができない。すなわち、性能シミュレータ２０２は、例えば、図中のタイミングＡにおいて、双方向バス１０３にデータを出力しようとしても、実際には部分装置１０１が占有している可能性があり、性能シミュレータ２０２が担当する部分装置１０２が占有可能か否かを判断することができない。
【００１４】
前述したように、ΔＴサイクル毎の同期方式による従来技術は、平行して実行されるシミュレータの対象装置間に、バスのような共通資源がある場合、正確なシミュレーションを行うことができないという問題点を有している。
【００１５】
本発明の目的は、前述したΔＴサイクル毎の同期方式による性能シミュレーションの従来技術の問題点を解決し、大規模な装置を部分装置に分割して性能シミュレーションを行う場合に、部分装置間に共有資源が存在する場合でも、ΔＴサイクル毎の同期により全体のシミュレーションを実行することができ、同期によるオーバーヘッドを低減することが可能な性能シミュレーション方法を提供することにある。
【００１６】
また、本発明の目的は、共有資源を持たない部分装置を担当する性能シミュレータを、同時に並列に動作させることを可能にし、特に、複数の性能シミュレータをマルチプロセッサ構成の計算機上に実現した場合にも、大規模装置を対象とした性能シミュレーションを高速に実行することを可能とした性能シミュレーション方法を提供することにある。
【００１７】
【課題を解決するための手段】
本発明によれば前記目的は、複数のプロセッサが各プロセッサ毎に独立したバスによりシステム制御装置に接続され該システム制御装置に主記憶が接続されたマルチプロセッサシステム上で実行される処理をシミュレーションすることにより、前記マルチプロセッサシステムの実行性能を測定する性能シミュレーション方法であって、前記複数のプロセッサのそれぞれの動作をシミュレーションする複数の第１の性能シミュレータと、システム制御装置及び主記憶の動作をシミュレーションする第２の性能シミュレータとから構成され、前記複数の第１の性能シミュレータのそれぞれは、性能シミュレーションを実行する性能シミュレーション手段と、該性能シミュレーション手段による所定サイクル分のシミュレーションの実行終了を第２の性能シミュレータに通知する同期手段と、前記バスの占有状況のデータ格納して管理する共有資源管理部と、前記バスの占有状況のデータを第２の性能シミュレータに送信する通信手段とを有し、前記第２の性能シミュレータは、性能シミュレーションを実行する性能シミュレーション手段と、該性能シミュレーション手段による所定サイクル分のシミュレーションの実行終了を第１の性能シミュレータに通知する同期手段と、前記バスの占有状況のデータを第１の性能シミュレータに送信する通信手段とを有し、（ａ）前記第１の性能シミュレータのそれぞれは、各プロセッサに対する所定サイクルのシミュレーションを実行し、シミュレーション終了後、前記第２の性能シミュレータに、バス占有状況のデータを送信すると共に、シミュレーション実行の終了を通知し、（ｂ）前記第２の性能シミュレータは、全ての前記第１の性能シミュレータからのシミュレーション実行の終了の通知を受けると、システム制御装置及び主記憶に対する所定サイクルのシミュレーションを実行し、シミュレーション終了後、前記第１の性能シミュレータのそれぞれに、バス占有状況のデータを送信すると共に、シミュレーション実行の終了を通知し、（ｃ）前記（ａ）及び（ｂ）の処理を交互に繰り返すことにより前記マルチプロセッサシステム全体のシミュレーションを実行することにより達成される。
【００１９】
さらに、前記目的は、前記部分装置間に共有資源が存在しない部分装置に対する性能シミュレーション手段に、並列にシミュレーションを実行させることにより達成される。
【００２０】
本発明は、前述の構成を備えることにより、複数シミュレーション手段による共有資源の占有の衝突を回避することが可能となり、共有資源を有する複数の部分装置に対するシミュレーションをΔＴサイクルの同期で実行することができる。また、本発明は、対象情報処理装置全体を複数の部分装置に分割し、お互いに共通資源を持たない部分を担当するシミュレーション手段を同時に並列に動作させることにより、並列にシミュレーションを実行することができ、高速に性能シミュレーションを実行することが可能となる。
【００２１】
【発明の実施の形態】
以下、本発明による性能シミュレーション方法の実施形態を図面により詳細に説明する。
【００２２】
図１は本発明の第１の実施形態によるシミュレーション方法を実行する性能シミュレーションシステムの構成を示すブロック図、図２は共有資源占有データの例を説明する図、図３は性能シミュレーションの動作を説明する図、図４は共有資源占有データの影響を説明する図である。図１において、３０１は全体制御部、３０２、３０３は性能シミュレータ、３０４、３０５は性能シミュレーション部、３０６、３０７は共有資源データ送受信部、４００は共有資源管理部である。
【００２３】
図１に示す性能シミュレーションシステムは、性能シミュレーションの対象としている処理装置として図９により説明した構成を持つものとしている。図１に示す性能シミュレーションシステムは、全体の動作を制御する全体制御部３０１と、性能シミュレータ３０２と、性能シミュレータ３０３とにより構成される。これらの２つのシミュレータ３０２、３０３は、例えば、図９により説明した情報処理装置の性能シミュレーションを行う場合、それぞれ、部分装置１０１、１０２に対する性能シミュレーションを実行する。性能シミュレータ３０２、３０３は、その内部にそれぞれ性能シミュレーション部３０４、３０５を内蔵し、担当する部分装置の性能シミュレーションを実行する機能を持つ。
【００２４】
なお、性能シミュレーション部は既存の技術であり、性能シミュレーションに必要なテストプログラムデータ、ハードウェアモデル構造情報、ハードウェアタイミング情報等の入力データ、及び、性能シミュレーション結果等の出力データについては省略している。
【００２５】
全体制御部３０１は、性能シミュレータ３０２、３０３をΔＴサイクル毎に交互に実行させる機能を持つ。図示例の場合、例えば、全体制御部３０１は、まず、性能シミュレータ３０２にΔＴサイクル分の性能シミュレーションを実行するように指示する。次に、性能シミュレータ３０２のΔＴサイクル分の実行が終了するのを待ってから、性能シミュレータ３０３にΔＴサイクル分の性能シミュレーションを実行するように指示する。この動作を繰り返すことにより、ΔＴサイクル毎に性能シミュレータ３０２、３０３を交互に実行させる。
【００２６】
性能シミュレータ３０２は、性能シミュレーション部３０４の他に、共有資源管理部４００と共有資源データ送受信部３０６とを内蔵している。共有資源管理部４００は、例えば、図９に示した例で言えば、部分装置が共有している双方向バス等の共有資源の占有状況データを保持している。共有資源データ送受信部３０６は、共有資源管理部４００が保持している共有資源の占有状況データを他の性能シミュレータ３０３に送信したり、また、性能シミュレータ３０３からの共有資源占有状況データを受信し、共有資源管理部４００に通知する機能を持つ。
【００２７】
一方、性能シミュレータ３０３は、性能シミュレーション部３０５と共有資源データ送受信部３０７とを内蔵している。共有資源データ送受信部３０７は、性能シミュレータ３０２からの共有資源の占有状況データを受け取り、性能シミュレーション部３０５に渡すと共に、性能シミュレーション部３０５の実行の結果である共有資源の占有状況データを性能シミュレータ３０２に送信する機能を持つ。
【００２８】
本発明による性能シミュレーションを実行する性能シミュレーションシステムは、まず、全体制御部３０１の指示により、性能シミュレータ３０２が、ΔＴサイクル分の性能シミュレーションを実行する。このとき、性能シミュレーション部３０４は、担当の部分装置及び共有資源をも含めて、性能シミュレーションを実行し、その結果、共有資源の占有状況を共有資源管理部４００内に格納する。このとき、性能シミュレータ３０３は、まだ実行されていないので、共有資源において占有の衝突が発生することはない。
【００２９】
性能シミュレータ３０２によるΔＴサイクルの性能シミュレーションが終了すると、共有資源データ送受信部３０６が、共有資源の占有状況データを性能シミュレータ３０３に送信すると共に、全体制御部３０１にΔＴサイクルシミュレーションの実行終了を通知する。実行終了の通知を受けた全体制御部３０１は、次に、性能シミュレータ３０３にΔＴサイクルの性能シミュレーション実行の指示を出す。
【００３０】
実行指示を受けた性能シミュレータ３０３は、ΔＴサイクル分の性能シミュレーションを実行する。このとき、実際に性能シミュレーションを実行する性能シミュレーション部３０５は、先に性能シミュレータ３０２から受信した共有資源の占有状況データを参照して、性能シミュレーションを実行する。例えば、あるサイクルで共有資源を占有しようとしたとき、占有状況データを参照し、もし性能シミュレータ３０２の実行の結果、そのサイクルでその共有資源が占有されていた場合、共有資源がビジーであると判断し、共有資源が占有されていない時刻で占有を試みる。
【００３１】
性能シミュレータ３０３は、このようにしてΔＴサイクル分の性能シミュレーションを実行し、共有資源への占有が発生した場合、その占有状況データを共有資源データ送受信部３０７により、性能シミュレータ３０２に通知する。これと同時に、性能シミュレータ３０３は、全体制御部３０１にΔＴサイクルのシミュレーションが終了したことを通知する。通知を受けた全体制御部３０１は、次に性能シミュレータ３０２に実行開始指示を送り、前述した処理を繰り返す。
【００３２】
前述したように性能シミュレーションシステムは、対象処理装置を部分装置に分割し、それぞれを独立の性能シミュレータに担当させて、シミュレーションをΔＴサイクル毎に交互に実行させ、かつ、共有資源について、お互いの占有状況データを性能シミュレータ間でやりとりしながら、性能シミュレーションを実行させることにより、共有資源占有の衝突を回避し、整合性のとれた性能シミュレーションの実行を可能とする。また、このシステムは、ΔＴサイクル毎の同期により、同期に必要なオーバーヘッドを１サイクル毎の同期に比べて、低減することが可能となる。
【００３３】
次に、図２〜図４を参照して、本発明によるシミュレーション方法を実施する性能シミュレーションシステムの動作をさらに詳細に説明する。
【００３４】
図２に示す共有資源管理部４００が保持する共有資源占有データの例は、図９に示す双方向バス１０３の共有資源占有データの例である。共有資源占有データは、共有資源の占有状況を格納したデータであり、図示例の場合、共有資源である双方向バスの占有開始サイクル（時刻）、占有終了サイクル（時刻）、及び、占有したバストランザクションの種類を保持している。図１により説明した各性能シミュレータ３０２、３０３は、性能シミュレーションを実行するに当たって、この共有資源占有データを参照して、共有資源があるサイクルで使用可能か否かを判断すると共に、使用した場合、その占有の情報を共有資源占有データとして格納する。
【００３５】
性能シミュレーションの動作を説明する図３において、図３（ａ）は、実際の装置の動作の様子を示しており、横軸方向は、実際の時間である。図に示すように部分装置１０１と部分装置１０２とは、同時に並列に処理を実行している。すなわち、ΔＴで区間に切った場合、区間５０１と区間５０２とが同時に並列に処理を実行しており、区間５０３と区間５０４とが同時に並列に処理を実行している。
【００３６】
これに対して、性能シミュレーションシステムのシミュレーションの実行の様子が図３（ｂ）に示されている。図３（ｂ）は、横軸方向は、シミュレーションの実行時間である。まず、性能シミュレータ３０２は、区間５０１に相当するΔＴサイクル分の性能シミュレーションを実行し、このシミュレーションが終了したら、性能シミュレータ３０３に共有資源占有データ５０５を送信する。
【００３７】
次に、性能シミュレータ３０３は、受信した共有資源占有データ５０５を参照しながら、担当の部分装置１０２の性能シミュレーションを区間５０２に相当する区間のΔＴサイクル分実行し、共有資源占有データ５０６を性能シミュレータ３０２に送信する。続いて、性能シミュレータ３０２は、区間５０３に相当するΔＴサイクルの性能シミュレーションを実行し、以下、前述した処理を繰り返していく。
【００３８】
前述したように、性能シミュレータ３０２、３０３に交互にシミュレーションを実行させ、かつ、共有資源の占有情報を相互にやりとりさせることにより、共有資源における占有の衝突を回避でき、整合性のある性能シミュレーションの実行が可能となる。なお、２つの性能シミュレータで先にシミュレーションを実行する性能シミュレータは、共有資源の占有の優先度を持つ方である。
【００３９】
前述のシミュレーション時における共有資源の占有に関して、一部正確さに欠けるケースが存在する。これについて、図４を参照して説明する。図４は性能シミュレーションシステムの動作の様子を示したものであり、横軸方向は、実際の論理装置の実行時間である。また、縦軸方向は、性能シミュレーションの実行の時間推移を示している。
【００４０】
図１に示す性能シミュレーションシステムは、まず、性能シミュレータ３０２が区間６０１のシミュレーションを実行する。ここで、あるタイミングで共有資源の占有６０２が発生したとする。次に、性能シミュレータ３０３が実際には区間６０１と同時に実行される区間６０３の性能シミュレーションを実行する。このとき、性能シミュレータ３０２の共有資源の占有６０２は、性能シミュレータ３０３における区間６０３のシミュレーションにおいてもタイミングＡで考慮することが可能となる。さらに、この区間６０３のシミュレーションにおいて、共有資源の占有６０４がタイミングＢで発生したとする。この場合、性能シミュレータ３０２の区間６０１のシミュレーションにおいて、共有資源の占有６０４をタイミングＢで評価することができず、次の同期ポイントであるタイミングＣでしか性能シミュレータ３０２に反映することができない。
【００４１】
すなわち、本発明による性能シミュレーション方法を実施する図１に示す性能シミュレーションシステムは、厳密に言うと正確なシミュレーションを行うことができない。しかし、同期サイクルであるΔＴの値を、大きな値にしない限り、これによるシミュレーションの誤差は、性能シミュレーションにおいて無視することができる範囲であり、実用上問題は発生しない。
【００４２】
前述した本発明の第１の実施形態による性能シミュレーション方法は、対象装置を２つの部分装置に分割し、それぞれに割り当てた性能シミュレータによりシミュレーションを実行させているので、各性能シミュレータが交互にシミュレーションを実行することになるが、本発明は、対象装置としての情報処理装置をさらに多数の部分装置に分割し、各部分装置に性能シミュレータを割り当てて性能シミュレーションを行わせるようにすることができる。この場合、複数の各性能シミュレータを順次サイクリックに動作させるようにすればよい。
【００４３】
前述したように、本発明の第１の実施形態による性能シミュレーション方法は、大規模の対象装置を部分装置に分割し、それぞれを別々の性能シミュレータでシミュレーションを実行することにより、大規模装置に対しても性能シミュレーションを行わせることが可能である。また、本発明の第１の実施形態による性能シミュレーション方法は、分割した部分装置間にバス等の共有資源があった場合にも、シミュレーションを交互に実行し、共有資源の占有データをやりとりすることにより、整合性のとれた性能シミュレーションを行わせることが可能である。
【００４４】
図５は本発明の第２の実施形態によるシミュレーション方法を実行する性能シミュレーションシステムの構成を示すブロック図である。図５において、７０３、７０４は同期制御部であり、他の符号は図１の場合と同一である。
【００４５】
図５に示す性能シミュレーションシステムは、図１に示した性能シミュレーションシステムと同様の機能を有するものであるが、図１における全体制御部３０１の代わりに、性能シミュレータ３０２、３０３内に同期制御部７０３、７０４を内蔵して構成されている。
【００４６】
図５に示す性能シミュレーションシステムは、性能シミュレータ３０２によるΔＴサイクル分のシミュレーションが終了すると、同期制御部７０３が性能シミュレータ３０３に性能シミュレータ３０２によるシミュレーションの実行終了を通知する。性能シミュレータ３０３の同期制御部７０４は、性能シミュレータ３０２からのΔＴサイクルのシミュレーション実行の終了通知を受けると、性能シミュレータ３０３による性能シミュレーションを開始させる。同様に、性能シミュレータ３０３は、ΔＴサイクルのシミュレーションの実行が終了すると、同期制御部７０４が性能シミュレータ３０２にシミュレーションの終了を通知する。終了通知を受けた性能シミュレータ３０２の同期制御部７０３は、次のΔＴサイクルのシミュレーション実行を開始させる。前述の処理を繰り返すことにより、全体の性能シミュレーションが進行する。前述において、共有資源データ送受信部３０７及び共有資源管理部４００の動作は、図１の場合と同一である。
【００４７】
前述したように、図５に示す性能シミュレーションシステムは、図１により説明したシステムとは異なり、全体制御部なしでΔＴ同期によるシミュレーションの実行が可能であるが、図１に示した例の場合と全く同様な効果を奏することができる。
【００４８】
図６は本発明の第３の実施形態によるシミュレーション方法を実行する性能シミュレーションシステムの構成を示すブロック図、図７は図６に示すシミュレーションシステムがシミュレーションの対象とする情報処理装置の構成例を示すブロック図、図８は図６に示すシミュレーションシステムによる性能シミュレーションの動作を説明する図である。図６、図７において、３０８〜３１０は共有資源データ送受信部、８０１〜８０５は性能シミュレータ、９０１〜９０４はプロセッサ、９０５はシステムコントロール、９０６は主記憶であり、他の符号は図５の場合と同一である。
【００４９】
図６に示す性能シミュレーションシステムは、性能シミュレータ８０１〜８０５により構成される。このうち、性能シミュレータ８０１〜８０４は、図５に示した性能シミュレータ３０２と同様の構成を持ち、また、性能シミュレータ８０５は、図５に示した性能シミュレータ３０３と同様の構成を持つ。但し、この性能シミュレータ８０５は、性能シミュレータ８０１〜８０４の共有資源データ送受信部７０６との間で共有資源データの送受信を行うため、共有資源データ送受信部３０７の他に共有資源送受信部３０８〜３１０を備えており、また、同期制御部７０４が、性能シミュレータ８０１〜８０４の同期制御部７０３に接続されている。
【００５０】
図６に示す性能シミュレーションシステムは、図７に示すような構成をとる処理装置を対象として性能シミュレーションを実行するシステムである。シミュレーション対象となる処理装置は、プロセッサ９０１〜９０４が、システムコントロール９０５に接続され、さらに、システムコントロール９０５に主記憶９０６に接続されて構成されている。そして、プロセッサ９０１〜９０４とシステムコントロール９０５とを接続しているバスは、各プロセッサ毎に独立しているものとする。この処理装置は、一般的なマルチプロセッサのアーキテクチャであるスイッチ型のＳＭＰ(Ｓysmetric ＭultiＰrocessor）である。
【００５１】
前述のような構成による処理装置のシミュレーションを行う図６に示す性能シミュレーションシステムは、性能シミュレータ８０１〜８０４が、プロセッサ９０１〜９０４の性能シミュレーションを実行し、性能シミュレータ８０５が、システムコントロール９０５と主記憶９０６との動作をシミュレーションする。
【００５２】
図７において、プロセッサ９０１〜９０４は、それぞれ双方向バスでシステムコントロール９０５と接続されており、両者の間には個々に共有資源が存在する。一方、プロセッサ９０１〜９０４の相互間には、共有資源が存在せず、これらのプロセッサは独立に動作する。そのため、図６に示す性能シミュレーションシステムにおいて、性能シミュレータ８０１〜８０４と性能シミュレータ８０５との間には、共有資源を管理するための通信が発生するが、性能シミュレータ８０１〜８０４の相互間には、共有資源を管理するための通信が発生することはない。そのため、性能シミュレータ８０１〜８０４は、独立にしかも並列にプロセッサ９０１〜９０４の性能シミュレーションを実行することができる。
【００５３】
次に、図６に示す性能シミュレーションシステムによるシミュレーションの実行を図８を参照して説明する。図８において、横軸は、シミュレーションの実行時間である。
【００５４】
図８に示すように、まず、性能シミュレータ８０１〜８０４が並列にそれぞれの担当のプロセッサに対する△Ｔサイクルの性能シミュレーション１００１〜１００４を実行する。シミュレーションが終了すると、各性能シミュレータ８０１〜８０４は、それぞれの共有資源データ送受信部３０６が、共有資源占有データを性能シミュレータ８０５の共有資源データ送受信部３０７〜３１０に送信すると共に、各性能シミュレータの同期制御部７０３が、性能シミュレータ８０５の同期制御部７０４に△Ｔサイクルのシミュレーション実行の終了を通知する。
【００５５】
性能シミュレータ８０５の同期制御部７０４は、全ての他の性能シミュレータからの△Ｔサイクルのシミュレーション実行終了の通知を待ってから、自分の担当する部分装置に対する性能シミュレーション１００５を実行させるる。性能シミュレータ８０５は、シミュレーションが終了すると、図１、図５により説明した例の場合と同様に、共有資源の占有データを、共有資源データ送受信部３０７〜３１０を介して性能シミュレータ８０１〜８０４の共有資源データ送受信部３０６に送信すると共に、同期制御部８１０がシミュレーション終了の通知を性能シミュレータ８０１〜８０４の同期制御部７０３に送信する。
【００５６】
性能シミュレータ８０１〜８０４は、性能シミュレータ８０５からのシミュレーション終了の通知を受けてから、次の△Ｔサイクルのシミュレーション１００６〜１００９を実行する。前述の処理を繰り返すことにより、全体の性能シミュレーションが進行する。
【００５７】
前述したように、図６に示す性能シミュレーションシステムは、互いに共有資源を持たない独立な部分装置を担当している性能シミュレータによるシミュレーションを同時に並列に実行させることにより、処理の高速化を図ることができる。特に、図６に示すシステムは、マルチプロセッサ構成の計算機上に、各性能シミュレータのそれぞれを１つのプロセッサに割り付けて性能シミュレーションを実行するようにすれば、並列実行の効果により、全体のシミュレーション性能の向上を図ることができる。
【００５８】
【発明の効果】
以上説明したように本発明によれば、大規模装置を部分装置に分割し、それぞれを別の性能シミュレータに割り付けることにより、大規模な装置のシミュレーションを行うことができ、また、分割された部分装置間に共有資源が存在する場合にも、１サイクル毎の同期ではなく、△Ｔサイクル毎の同期で全体のシミュレーションを実行することができ、同期によるオーバーヘッドを低減することが可能となる。
【００５９】
さらに、本発明によれば、共有資源を持たない部分装置を担当する性能シミュレータを同時に並列に実行させることにより、特に、マルチプロセッサ構成の計算機上に性能シミュレーションシステムを構成した場合、大規模装置を対象とした性能シミュレーションを高速に実行することが可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態によるシミュレーション方法を実行する性能シミュレーションシステムの構成を示すブロック図である。
【図２】共有資源占有データの例を説明する図である。
【図３】性能シミュレーションの動作を説明する図である。
【図４】共有資源占有データの影響を説明する図である。
【図５】本発明の第２の実施形態によるシミュレーション方法を実行する性能シミュレーションシステムの構成を示すブロック図である。
【図６】本発明の第３の実施形態によるシミュレーション方法を実行する性能シミュレーションシステムの構成を示すブロック図である。
【図７】図６に示すシミュレーションシステムがシミュレーションの対象とする情報処理装置の構成例を示すブロック図である。
【図８】図６に示すシミュレーションシステムによる性能シミュレーションの動作を説明する図である。
【図９】本発明及び従来技術による性能シミュレーション方法が対象とする情報処理装置の構成例を示すブロック図である。
【図１０】独立な性能シミュレータでその動作を模擬する場合のシミュレーションの実行を説明する図である。
【符号の説明】
１００  情報処理装置
１０１、１０２  部分装置
１０３  双方向バス
３０１  全体制御部
３０２、３０３、８０１〜８０５  性能シミュレータ
３０４、３０５  性能シミュレーション部
３０６、３０７〜３１０  共有資源データ送受信部
４００  共有資源管理部
７０３、７０４  同期制御部
９０１〜９０４  プロセッサ
９０５  システムコントロール
９０６  主記憶
【図１】
0003746371.tif 000002
【図２】
0003746371.tif 000003
【図３】
0003746371.tif 000004
【図４】
0003746371.tif 000005
【図５】
0003746371.tif 000006
【図６】
0003746371.tif 000007
【図７】
0003746371.tif 000008
【図８】
0003746371.tif 000009
【図９】
0003746371.tif 000010
【図１０】
0003746371.tif 000011