JP3746371B2 - 性能シミュレーション方法 - Google Patents
性能シミュレーション方法 Download PDFInfo
- Publication number
- JP3746371B2 JP3746371B2 JP09763798A JP9763798A JP3746371B2 JP 3746371 B2 JP3746371 B2 JP 3746371B2 JP 09763798 A JP09763798 A JP 09763798A JP 9763798 A JP9763798 A JP 9763798A JP 3746371 B2 JP3746371 B2 JP 3746371B2
- Authority
- JP
- Japan
- Prior art keywords
- performance
- simulation
- simulator
- shared resource
- simulators
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3457—Performance evaluation by simulation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
【発明の属する技術分野】
本発明は、論理装置の性能シミュレーション方法に関し、特に、マルチプロセッサシステム等に多数のシミュレーション手段を構成し、これにより、論理装置の性能シミュレーションを高速に行うことを可能にした性能シミュレーション方法に関する。
【0002】
【従来の技術】
近年、スーパーコンピュータやメインフレーム等の情報処理装置における高性能化が要求されている。このような情報処理装置には、実機が試作される前に性能の解析を行うことが必要である。一般に、情報処理装置の性能は、CPU内のパイプライン構造、キャッシュ等のメモリ構造、I/O構造を含んだハードウェアアーキテクチャと、その上で実行されるソフトウェアを生成するコンパイラの性能等とにより決定される。これらの性能を実機試作前に解析し、情報処理装置やコンパイラの開発に活かすことが、情報処理装置の高性能確保のために、ますます重要になってきている。
【0003】
前述したような情報処理装置の性能解析を実施する手段として、性能シミュレーション技術がある。性能シミュレーションとは、対象となる情報処理装置のハードウェアアーキテクチャのモデルをソフトウェアにより構築し、与えられたソフトウェアプログラムに対するハードウェア動作をそのモデル上で模擬し、そのプログラムの実行に要する時間(一般に、サイクル数)や、キャッシュのヒット率、メモリのロードレイテンシ等を計測するものである。
【0004】
使用者は、この性能シミュレーションにより、対象の情報処理装置の事前性能解析を実施し、情報処理装置の試作前にハードウェアの性能不良を摘出することが可能となる。また、性能シミュレーションにより、対象処理装置用のコンパイラやOSの性能評価を行うことが可能となり、これらのソフトウェアの性能向上にも利用することができる。
【0005】
性能シミュレーションにおけるシミュレーションの実行は、対象装置の同期クロックサイクルを基本として進行され、対象装置の性能は、1マシンサイクル毎に評価する方法、あるいは、発生するハードウェアイベントのレイテンシに基づき評価する方法等により評価されるが、いずれにせよシミュレーション実行の時間単位は、マシンサイクルであるのが主流である。
【0006】
前述のような性能シミュレーション技術に関する従来技術として、例えば、特開平8−180094号公報等に記載された技術が知られている。この従来技術による方法は、モデル上で実行されるアプリケーションのシステムコールの解析やアドレスジェネレータを包含し、CPUやメモリのタイミングをシミュレートするという方法である。また、他の従来技術として、例えば、特願平9−145965号等に記載された技術が知られている。この従来技術による方法は、通常のアプリケーションプログラムに対し、不当な分岐予測により実行される命令を考慮し、CPUの動的分岐予測機構の方式性能を測定する方法である。
【0007】
【発明が解決しようとする課題】
前述したような従来技術による性能シミュレーション技術は、取り扱うことのできる情報処理装置の規模に限界があり、近年の情報処理装置のように、大規模化により論理モデルが大きくなった情報処理装置を取り扱うことが困難になり、また、取り扱うことが可能であっても、シミュレーション時間が増加してしまうという問題点を有している。
【0008】
このような問題点に対して、対象情報処理装置を複数の部分に分割し、それぞれの部分を別々の性能シミュレータに担当させ、これらをマルチプロセッサシステムによる計算機上で実行させ、シミュレーションの高速化を実現するアプローチが考えられる。この場合、各部分を担当する性能シミュレータを別々のプロセッサに割り付ければ、シミュレーション処理の高速化が期待できる。そして、前述したように、性能シミュレーションは、基本的にマシンサイクルを単位に進行するため、マルチプロセッサシステム上で並列にシミュレーション実行させる場合も、厳密にはサイクル単位でお互いに同期を取りながら、全体のシミュレーションを進行させる必要がある。しかし、この方法は、同期のためのプロセス間の通信が毎サイクルに発生し、同期のためのオーバーヘッドが大きくなると言う問題点を有している。
【0009】
これに対して、各シミュレータ間の同期を1サイクル毎ではなく、複数サイクル(以下、ΔTサイクルと呼ぶ)毎に同期を取ることにより、オーバーヘッドを少なくするという方法が考えれている。しかし、各シミュレータが担当する対象論理に共通資源がある場合、基本的には個別にシミュレーションすることができず、このようなΔTサイクル毎の同期方式は、正確なシミュレーションを行うことができないという不具合が生じる。
【0010】
図9は本発明及び従来技術による性能シミュレーション方法が対象とする情報処理装置の構成例を示すブロック図、図10は独立な性能シミュレータでその動作を模擬する場合のシミュレーションの実行を説明する図であり、以下、図9、図10を参照して、従来技術によるΔTサイクル毎の同期方式による性能シミュレーションの問題点を説明する。図9において、100は情報処理装置、101、102は部分装置、103は双方向バスである。
【0011】
性能シミュレーションの対象となる情報処理装置100は、図9に示すように、部分装置101と部分装置102とを双方向バス103で接続して構成されており、各部分装置101、102が、各部分装置で共有している資源である双方向バス103を介して相互にデータの送受信を実行しながら協調して処理動作を実行する。情報処理装置100は、例えば、複数のノード装置またはプロセッサにより構成される並列処理装置であり、分割された部分装置101、102は1つ1つのノード装置またはプロセッサである。このような性能シミュレーションの対象に対して、部分装置101、102をそれぞれ、独立な性能シミュレータでその動作を模擬する場合のシミュレーションの実行の状況を図10を参照して説明する。
【0012】
図10に示す例において、図示しない性能シミュレータ201が部分装置101と双方向バス103とを、図示しない性能シミュレータ202が部分装置102をそれぞれ担当してシミュレーションを実行するものとする。そして、各性能シミュレータ201、202が、前述したように、ΔTサイクル毎に同期を取りながらシミュレーションを進行させるものとする。
【0013】
前述の場合、部分装置102のみに対する性能シミュレータ202は、あるシミュレーション期間における次の同期ポイントまでの途中で、双方向バス103の占有状況を知ることができない。すなわち、性能シミュレータ202は、例えば、図中のタイミングAにおいて、双方向バス103にデータを出力しようとしても、実際には部分装置101が占有している可能性があり、性能シミュレータ202が担当する部分装置102が占有可能か否かを判断することができない。
【0014】
前述したように、ΔTサイクル毎の同期方式による従来技術は、平行して実行されるシミュレータの対象装置間に、バスのような共通資源がある場合、正確なシミュレーションを行うことができないという問題点を有している。
【0015】
本発明の目的は、前述したΔTサイクル毎の同期方式による性能シミュレーションの従来技術の問題点を解決し、大規模な装置を部分装置に分割して性能シミュレーションを行う場合に、部分装置間に共有資源が存在する場合でも、ΔTサイクル毎の同期により全体のシミュレーションを実行することができ、同期によるオーバーヘッドを低減することが可能な性能シミュレーション方法を提供することにある。
【0016】
また、本発明の目的は、共有資源を持たない部分装置を担当する性能シミュレータを、同時に並列に動作させることを可能にし、特に、複数の性能シミュレータをマルチプロセッサ構成の計算機上に実現した場合にも、大規模装置を対象とした性能シミュレーションを高速に実行することを可能とした性能シミュレーション方法を提供することにある。
【0017】
【課題を解決するための手段】
本発明によれば前記目的は、複数のプロセッサが各プロセッサ毎に独立したバスによりシステム制御装置に接続され該システム制御装置に主記憶が接続されたマルチプロセッサシステム上で実行される処理をシミュレーションすることにより、前記マルチプロセッサシステムの実行性能を測定する性能シミュレーション方法であって、前記複数のプロセッサのそれぞれの動作をシミュレーションする複数の第1の性能シミュレータと、システム制御装置及び主記憶の動作をシミュレーションする第2の性能シミュレータとから構成され、前記複数の第1の性能シミュレータのそれぞれは、性能シミュレーションを実行する性能シミュレーション手段と、該性能シミュレーション手段による所定サイクル分のシミュレーションの実行終了を第2の性能シミュレータに通知する同期手段と、前記バスの占有状況のデータ格納して管理する共有資源管理部と、前記バスの占有状況のデータを第2の性能シミュレータに送信する通信手段とを有し、前記第2の性能シミュレータは、性能シミュレーションを実行する性能シミュレーション手段と、該性能シミュレーション手段による所定サイクル分のシミュレーションの実行終了を第1の性能シミュレータに通知する同期手段と、前記バスの占有状況のデータを第1の性能シミュレータに送信する通信手段とを有し、(a)前記第1の性能シミュレータのそれぞれは、各プロセッサに対する所定サイクルのシミュレーションを実行し、シミュレーション終了後、前記第2の性能シミュレータに、バス占有状況のデータを送信すると共に、シミュレーション実行の終了を通知し、(b)前記第2の性能シミュレータは、全ての前記第1の性能シミュレータからのシミュレーション実行の終了の通知を受けると、システム制御装置及び主記憶に対する所定サイクルのシミュレーションを実行し、シミュレーション終了後、前記第1の性能シミュレータのそれぞれに、バス占有状況のデータを送信すると共に、シミュレーション実行の終了を通知し、(c)前記(a)及び(b)の処理を交互に繰り返すことにより前記マルチプロセッサシステム全体のシミュレーションを実行することにより達成される。
【0019】
さらに、前記目的は、前記部分装置間に共有資源が存在しない部分装置に対する性能シミュレーション手段に、並列にシミュレーションを実行させることにより達成される。
【0020】
本発明は、前述の構成を備えることにより、複数シミュレーション手段による共有資源の占有の衝突を回避することが可能となり、共有資源を有する複数の部分装置に対するシミュレーションをΔTサイクルの同期で実行することができる。また、本発明は、対象情報処理装置全体を複数の部分装置に分割し、お互いに共通資源を持たない部分を担当するシミュレーション手段を同時に並列に動作させることにより、並列にシミュレーションを実行することができ、高速に性能シミュレーションを実行することが可能となる。
【0021】
【発明の実施の形態】
以下、本発明による性能シミュレーション方法の実施形態を図面により詳細に説明する。
【0022】
図1は本発明の第1の実施形態によるシミュレーション方法を実行する性能シミュレーションシステムの構成を示すブロック図、図2は共有資源占有データの例を説明する図、図3は性能シミュレーションの動作を説明する図、図4は共有資源占有データの影響を説明する図である。図1において、301は全体制御部、302、303は性能シミュレータ、304、305は性能シミュレーション部、306、307は共有資源データ送受信部、400は共有資源管理部である。
【0023】
図1に示す性能シミュレーションシステムは、性能シミュレーションの対象としている処理装置として図9により説明した構成を持つものとしている。図1に示す性能シミュレーションシステムは、全体の動作を制御する全体制御部301と、性能シミュレータ302と、性能シミュレータ303とにより構成される。これらの2つのシミュレータ302、303は、例えば、図9により説明した情報処理装置の性能シミュレーションを行う場合、それぞれ、部分装置101、102に対する性能シミュレーションを実行する。性能シミュレータ302、303は、その内部にそれぞれ性能シミュレーション部304、305を内蔵し、担当する部分装置の性能シミュレーションを実行する機能を持つ。
【0024】
なお、性能シミュレーション部は既存の技術であり、性能シミュレーションに必要なテストプログラムデータ、ハードウェアモデル構造情報、ハードウェアタイミング情報等の入力データ、及び、性能シミュレーション結果等の出力データについては省略している。
【0025】
全体制御部301は、性能シミュレータ302、303をΔTサイクル毎に交互に実行させる機能を持つ。図示例の場合、例えば、全体制御部301は、まず、性能シミュレータ302にΔTサイクル分の性能シミュレーションを実行するように指示する。次に、性能シミュレータ302のΔTサイクル分の実行が終了するのを待ってから、性能シミュレータ303にΔTサイクル分の性能シミュレーションを実行するように指示する。この動作を繰り返すことにより、ΔTサイクル毎に性能シミュレータ302、303を交互に実行させる。
【0026】
性能シミュレータ302は、性能シミュレーション部304の他に、共有資源管理部400と共有資源データ送受信部306とを内蔵している。共有資源管理部400は、例えば、図9に示した例で言えば、部分装置が共有している双方向バス等の共有資源の占有状況データを保持している。共有資源データ送受信部306は、共有資源管理部400が保持している共有資源の占有状況データを他の性能シミュレータ303に送信したり、また、性能シミュレータ303からの共有資源占有状況データを受信し、共有資源管理部400に通知する機能を持つ。
【0027】
一方、性能シミュレータ303は、性能シミュレーション部305と共有資源データ送受信部307とを内蔵している。共有資源データ送受信部307は、性能シミュレータ302からの共有資源の占有状況データを受け取り、性能シミュレーション部305に渡すと共に、性能シミュレーション部305の実行の結果である共有資源の占有状況データを性能シミュレータ302に送信する機能を持つ。
【0028】
本発明による性能シミュレーションを実行する性能シミュレーションシステムは、まず、全体制御部301の指示により、性能シミュレータ302が、ΔTサイクル分の性能シミュレーションを実行する。このとき、性能シミュレーション部304は、担当の部分装置及び共有資源をも含めて、性能シミュレーションを実行し、その結果、共有資源の占有状況を共有資源管理部400内に格納する。このとき、性能シミュレータ303は、まだ実行されていないので、共有資源において占有の衝突が発生することはない。
【0029】
性能シミュレータ302によるΔTサイクルの性能シミュレーションが終了すると、共有資源データ送受信部306が、共有資源の占有状況データを性能シミュレータ303に送信すると共に、全体制御部301にΔTサイクルシミュレーションの実行終了を通知する。実行終了の通知を受けた全体制御部301は、次に、性能シミュレータ303にΔTサイクルの性能シミュレーション実行の指示を出す。
【0030】
実行指示を受けた性能シミュレータ303は、ΔTサイクル分の性能シミュレーションを実行する。このとき、実際に性能シミュレーションを実行する性能シミュレーション部305は、先に性能シミュレータ302から受信した共有資源の占有状況データを参照して、性能シミュレーションを実行する。例えば、あるサイクルで共有資源を占有しようとしたとき、占有状況データを参照し、もし性能シミュレータ302の実行の結果、そのサイクルでその共有資源が占有されていた場合、共有資源がビジーであると判断し、共有資源が占有されていない時刻で占有を試みる。
【0031】
性能シミュレータ303は、このようにしてΔTサイクル分の性能シミュレーションを実行し、共有資源への占有が発生した場合、その占有状況データを共有資源データ送受信部307により、性能シミュレータ302に通知する。これと同時に、性能シミュレータ303は、全体制御部301にΔTサイクルのシミュレーションが終了したことを通知する。通知を受けた全体制御部301は、次に性能シミュレータ302に実行開始指示を送り、前述した処理を繰り返す。
【0032】
前述したように性能シミュレーションシステムは、対象処理装置を部分装置に分割し、それぞれを独立の性能シミュレータに担当させて、シミュレーションをΔTサイクル毎に交互に実行させ、かつ、共有資源について、お互いの占有状況データを性能シミュレータ間でやりとりしながら、性能シミュレーションを実行させることにより、共有資源占有の衝突を回避し、整合性のとれた性能シミュレーションの実行を可能とする。また、このシステムは、ΔTサイクル毎の同期により、同期に必要なオーバーヘッドを1サイクル毎の同期に比べて、低減することが可能となる。
【0033】
次に、図2〜図4を参照して、本発明によるシミュレーション方法を実施する性能シミュレーションシステムの動作をさらに詳細に説明する。
【0034】
図2に示す共有資源管理部400が保持する共有資源占有データの例は、図9に示す双方向バス103の共有資源占有データの例である。共有資源占有データは、共有資源の占有状況を格納したデータであり、図示例の場合、共有資源である双方向バスの占有開始サイクル(時刻)、占有終了サイクル(時刻)、及び、占有したバストランザクションの種類を保持している。図1により説明した各性能シミュレータ302、303は、性能シミュレーションを実行するに当たって、この共有資源占有データを参照して、共有資源があるサイクルで使用可能か否かを判断すると共に、使用した場合、その占有の情報を共有資源占有データとして格納する。
【0035】
性能シミュレーションの動作を説明する図3において、図3(a)は、実際の装置の動作の様子を示しており、横軸方向は、実際の時間である。図に示すように部分装置101と部分装置102とは、同時に並列に処理を実行している。すなわち、ΔTで区間に切った場合、区間501と区間502とが同時に並列に処理を実行しており、区間503と区間504とが同時に並列に処理を実行している。
【0036】
これに対して、性能シミュレーションシステムのシミュレーションの実行の様子が図3(b)に示されている。図3(b)は、横軸方向は、シミュレーションの実行時間である。まず、性能シミュレータ302は、区間501に相当するΔTサイクル分の性能シミュレーションを実行し、このシミュレーションが終了したら、性能シミュレータ303に共有資源占有データ505を送信する。
【0037】
次に、性能シミュレータ303は、受信した共有資源占有データ505を参照しながら、担当の部分装置102の性能シミュレーションを区間502に相当する区間のΔTサイクル分実行し、共有資源占有データ506を性能シミュレータ302に送信する。続いて、性能シミュレータ302は、区間503に相当するΔTサイクルの性能シミュレーションを実行し、以下、前述した処理を繰り返していく。
【0038】
前述したように、性能シミュレータ302、303に交互にシミュレーションを実行させ、かつ、共有資源の占有情報を相互にやりとりさせることにより、共有資源における占有の衝突を回避でき、整合性のある性能シミュレーションの実行が可能となる。なお、2つの性能シミュレータで先にシミュレーションを実行する性能シミュレータは、共有資源の占有の優先度を持つ方である。
【0039】
前述のシミュレーション時における共有資源の占有に関して、一部正確さに欠けるケースが存在する。これについて、図4を参照して説明する。図4は性能シミュレーションシステムの動作の様子を示したものであり、横軸方向は、実際の論理装置の実行時間である。また、縦軸方向は、性能シミュレーションの実行の時間推移を示している。
【0040】
図1に示す性能シミュレーションシステムは、まず、性能シミュレータ302が区間601のシミュレーションを実行する。ここで、あるタイミングで共有資源の占有602が発生したとする。次に、性能シミュレータ303が実際には区間601と同時に実行される区間603の性能シミュレーションを実行する。このとき、性能シミュレータ302の共有資源の占有602は、性能シミュレータ303における区間603のシミュレーションにおいてもタイミングAで考慮することが可能となる。さらに、この区間603のシミュレーションにおいて、共有資源の占有604がタイミングBで発生したとする。この場合、性能シミュレータ302の区間601のシミュレーションにおいて、共有資源の占有604をタイミングBで評価することができず、次の同期ポイントであるタイミングCでしか性能シミュレータ302に反映することができない。
【0041】
すなわち、本発明による性能シミュレーション方法を実施する図1に示す性能シミュレーションシステムは、厳密に言うと正確なシミュレーションを行うことができない。しかし、同期サイクルであるΔTの値を、大きな値にしない限り、これによるシミュレーションの誤差は、性能シミュレーションにおいて無視することができる範囲であり、実用上問題は発生しない。
【0042】
前述した本発明の第1の実施形態による性能シミュレーション方法は、対象装置を2つの部分装置に分割し、それぞれに割り当てた性能シミュレータによりシミュレーションを実行させているので、各性能シミュレータが交互にシミュレーションを実行することになるが、本発明は、対象装置としての情報処理装置をさらに多数の部分装置に分割し、各部分装置に性能シミュレータを割り当てて性能シミュレーションを行わせるようにすることができる。この場合、複数の各性能シミュレータを順次サイクリックに動作させるようにすればよい。
【0043】
前述したように、本発明の第1の実施形態による性能シミュレーション方法は、大規模の対象装置を部分装置に分割し、それぞれを別々の性能シミュレータでシミュレーションを実行することにより、大規模装置に対しても性能シミュレーションを行わせることが可能である。また、本発明の第1の実施形態による性能シミュレーション方法は、分割した部分装置間にバス等の共有資源があった場合にも、シミュレーションを交互に実行し、共有資源の占有データをやりとりすることにより、整合性のとれた性能シミュレーションを行わせることが可能である。
【0044】
図5は本発明の第2の実施形態によるシミュレーション方法を実行する性能シミュレーションシステムの構成を示すブロック図である。図5において、703、704は同期制御部であり、他の符号は図1の場合と同一である。
【0045】
図5に示す性能シミュレーションシステムは、図1に示した性能シミュレーションシステムと同様の機能を有するものであるが、図1における全体制御部301の代わりに、性能シミュレータ302、303内に同期制御部703、704を内蔵して構成されている。
【0046】
図5に示す性能シミュレーションシステムは、性能シミュレータ302によるΔTサイクル分のシミュレーションが終了すると、同期制御部703が性能シミュレータ303に性能シミュレータ302によるシミュレーションの実行終了を通知する。性能シミュレータ303の同期制御部704は、性能シミュレータ302からのΔTサイクルのシミュレーション実行の終了通知を受けると、性能シミュレータ303による性能シミュレーションを開始させる。同様に、性能シミュレータ303は、ΔTサイクルのシミュレーションの実行が終了すると、同期制御部704が性能シミュレータ302にシミュレーションの終了を通知する。終了通知を受けた性能シミュレータ302の同期制御部703は、次のΔTサイクルのシミュレーション実行を開始させる。前述の処理を繰り返すことにより、全体の性能シミュレーションが進行する。前述において、共有資源データ送受信部307及び共有資源管理部400の動作は、図1の場合と同一である。
【0047】
前述したように、図5に示す性能シミュレーションシステムは、図1により説明したシステムとは異なり、全体制御部なしでΔT同期によるシミュレーションの実行が可能であるが、図1に示した例の場合と全く同様な効果を奏することができる。
【0048】
図6は本発明の第3の実施形態によるシミュレーション方法を実行する性能シミュレーションシステムの構成を示すブロック図、図7は図6に示すシミュレーションシステムがシミュレーションの対象とする情報処理装置の構成例を示すブロック図、図8は図6に示すシミュレーションシステムによる性能シミュレーションの動作を説明する図である。図6、図7において、308〜310は共有資源データ送受信部、801〜805は性能シミュレータ、901〜904はプロセッサ、905はシステムコントロール、906は主記憶であり、他の符号は図5の場合と同一である。
【0049】
図6に示す性能シミュレーションシステムは、性能シミュレータ801〜805により構成される。このうち、性能シミュレータ801〜804は、図5に示した性能シミュレータ302と同様の構成を持ち、また、性能シミュレータ805は、図5に示した性能シミュレータ303と同様の構成を持つ。但し、この性能シミュレータ805は、性能シミュレータ801〜804の共有資源データ送受信部706との間で共有資源データの送受信を行うため、共有資源データ送受信部307の他に共有資源送受信部308〜310を備えており、また、同期制御部704が、性能シミュレータ801〜804の同期制御部703に接続されている。
【0050】
図6に示す性能シミュレーションシステムは、図7に示すような構成をとる処理装置を対象として性能シミュレーションを実行するシステムである。シミュレーション対象となる処理装置は、プロセッサ901〜904が、システムコントロール905に接続され、さらに、システムコントロール905に主記憶906に接続されて構成されている。そして、プロセッサ901〜904とシステムコントロール905とを接続しているバスは、各プロセッサ毎に独立しているものとする。この処理装置は、一般的なマルチプロセッサのアーキテクチャであるスイッチ型のSMP(Sysmetric MultiProcessor)である。
【0051】
前述のような構成による処理装置のシミュレーションを行う図6に示す性能シミュレーションシステムは、性能シミュレータ801〜804が、プロセッサ901〜904の性能シミュレーションを実行し、性能シミュレータ805が、システムコントロール905と主記憶906との動作をシミュレーションする。
【0052】
図7において、プロセッサ901〜904は、それぞれ双方向バスでシステムコントロール905と接続されており、両者の間には個々に共有資源が存在する。一方、プロセッサ901〜904の相互間には、共有資源が存在せず、これらのプロセッサは独立に動作する。そのため、図6に示す性能シミュレーションシステムにおいて、性能シミュレータ801〜804と性能シミュレータ805との間には、共有資源を管理するための通信が発生するが、性能シミュレータ801〜804の相互間には、共有資源を管理するための通信が発生することはない。そのため、性能シミュレータ801〜804は、独立にしかも並列にプロセッサ901〜904の性能シミュレーションを実行することができる。
【0053】
次に、図6に示す性能シミュレーションシステムによるシミュレーションの実行を図8を参照して説明する。図8において、横軸は、シミュレーションの実行時間である。
【0054】
図8に示すように、まず、性能シミュレータ801〜804が並列にそれぞれの担当のプロセッサに対する△Tサイクルの性能シミュレーション1001〜1004を実行する。シミュレーションが終了すると、各性能シミュレータ801〜804は、それぞれの共有資源データ送受信部306が、共有資源占有データを性能シミュレータ805の共有資源データ送受信部307〜310に送信すると共に、各性能シミュレータの同期制御部703が、性能シミュレータ805の同期制御部704に△Tサイクルのシミュレーション実行の終了を通知する。
【0055】
性能シミュレータ805の同期制御部704は、全ての他の性能シミュレータからの△Tサイクルのシミュレーション実行終了の通知を待ってから、自分の担当する部分装置に対する性能シミュレーション1005を実行させるる。性能シミュレータ805は、シミュレーションが終了すると、図1、図5により説明した例の場合と同様に、共有資源の占有データを、共有資源データ送受信部307〜310を介して性能シミュレータ801〜804の共有資源データ送受信部306に送信すると共に、同期制御部810がシミュレーション終了の通知を性能シミュレータ801〜804の同期制御部703に送信する。
【0056】
性能シミュレータ801〜804は、性能シミュレータ805からのシミュレーション終了の通知を受けてから、次の△Tサイクルのシミュレーション1006〜1009を実行する。前述の処理を繰り返すことにより、全体の性能シミュレーションが進行する。
【0057】
前述したように、図6に示す性能シミュレーションシステムは、互いに共有資源を持たない独立な部分装置を担当している性能シミュレータによるシミュレーションを同時に並列に実行させることにより、処理の高速化を図ることができる。特に、図6に示すシステムは、マルチプロセッサ構成の計算機上に、各性能シミュレータのそれぞれを1つのプロセッサに割り付けて性能シミュレーションを実行するようにすれば、並列実行の効果により、全体のシミュレーション性能の向上を図ることができる。
【0058】
【発明の効果】
以上説明したように本発明によれば、大規模装置を部分装置に分割し、それぞれを別の性能シミュレータに割り付けることにより、大規模な装置のシミュレーションを行うことができ、また、分割された部分装置間に共有資源が存在する場合にも、1サイクル毎の同期ではなく、△Tサイクル毎の同期で全体のシミュレーションを実行することができ、同期によるオーバーヘッドを低減することが可能となる。
【0059】
さらに、本発明によれば、共有資源を持たない部分装置を担当する性能シミュレータを同時に並列に実行させることにより、特に、マルチプロセッサ構成の計算機上に性能シミュレーションシステムを構成した場合、大規模装置を対象とした性能シミュレーションを高速に実行することが可能となる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態によるシミュレーション方法を実行する性能シミュレーションシステムの構成を示すブロック図である。
【図2】共有資源占有データの例を説明する図である。
【図3】性能シミュレーションの動作を説明する図である。
【図4】共有資源占有データの影響を説明する図である。
【図5】本発明の第2の実施形態によるシミュレーション方法を実行する性能シミュレーションシステムの構成を示すブロック図である。
【図6】本発明の第3の実施形態によるシミュレーション方法を実行する性能シミュレーションシステムの構成を示すブロック図である。
【図7】図6に示すシミュレーションシステムがシミュレーションの対象とする情報処理装置の構成例を示すブロック図である。
【図8】図6に示すシミュレーションシステムによる性能シミュレーションの動作を説明する図である。
【図9】本発明及び従来技術による性能シミュレーション方法が対象とする情報処理装置の構成例を示すブロック図である。
【図10】独立な性能シミュレータでその動作を模擬する場合のシミュレーションの実行を説明する図である。
【符号の説明】
100 情報処理装置
101、102 部分装置
103 双方向バス
301 全体制御部
302、303、801〜805 性能シミュレータ
304、305 性能シミュレーション部
306、307〜310 共有資源データ送受信部
400 共有資源管理部
703、704 同期制御部
901〜904 プロセッサ
905 システムコントロール
906 主記憶
Claims (2)
- 複数のプロセッサが各プロセッサ毎に独立したバスによりシステム制御装置に接続され該システム制御装置に主記憶が接続されたマルチプロセッサシステム上で実行される処理をシミュレーションすることにより、前記マルチプロセッサシステムの実行性能を測定する性能シミュレーション方法であって、
前記複数のプロセッサのそれぞれの動作をシミュレーションする複数の第1の性能シミュレータと、システム制御装置及び主記憶の動作をシミュレーションする第2の性能シミュレータとから構成され、
前記複数の第1の性能シミュレータのそれぞれは、性能シミュレーションを実行する性能シミュレーション手段と、該性能シミュレーション手段による所定サイクル分のシミュレーションの実行終了を第2の性能シミュレータに通知する同期手段と、前記バスの占有状況のデータ格納して管理する共有資源管理部と、前記バスの占有状況のデータを第2の性能シミュレータに送信する通信手段とを有し、
前記第2の性能シミュレータは、性能シミュレーションを実行する性能シミュレーション手段と、該性能シミュレーション手段による所定サイクル分のシミュレーションの実行終了を第1の性能シミュレータに通知する同期手段と、前記バスの占有状況のデータを第1の性能シミュレータに送信する通信手段とを有し、
(a)前記第1の性能シミュレータのそれぞれは、各プロセッサに対する所定サイクルのシミュレーションを実行し、シミュレーション終了後、前記第2の性能シミュレータに、バス占有状況のデータを送信すると共に、シミュレーション実行の終了を通知し、
(b)前記第2の性能シミュレータは、全ての前記第1の性能シミュレータからのシミュレーション実行の終了の通知を受けると、システム制御装置及び主記憶に対する所定サイクルのシミュレーションを実行し、シミュレーション終了後、前記第1の性能シミュレータのそれぞれに、バス占有状況のデータを送信すると共に、シミュレーション実行の終了を通知し、
(c)前記(a)及び(b)の処理を交互に繰り返すことにより前記マルチプロセッサシステム全体のシミュレーションを実行することを特徴とする性能シミュレーション方法。 - 前記複数の第1の性能シミュレータによるシミュレーションを同時に並列に実行させることを特徴とする請求項1記載の性能シミュレーション方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09763798A JP3746371B2 (ja) | 1998-04-09 | 1998-04-09 | 性能シミュレーション方法 |
US09/288,029 US6507809B1 (en) | 1998-04-09 | 1999-04-08 | Method and system for simulating performance of a computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09763798A JP3746371B2 (ja) | 1998-04-09 | 1998-04-09 | 性能シミュレーション方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11296409A JPH11296409A (ja) | 1999-10-29 |
JP3746371B2 true JP3746371B2 (ja) | 2006-02-15 |
Family
ID=14197662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09763798A Expired - Fee Related JP3746371B2 (ja) | 1998-04-09 | 1998-04-09 | 性能シミュレーション方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6507809B1 (ja) |
JP (1) | JP3746371B2 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW451126B (en) * | 1999-11-09 | 2001-08-21 | Via Tech Inc | Computer element integrated testing system with software simulation |
US7149676B2 (en) * | 2001-06-21 | 2006-12-12 | Renesas Technology Corporation | Variable accuracy modes in microprocessor simulation |
US20030093254A1 (en) * | 2001-11-09 | 2003-05-15 | Frankel Carl B. | Distributed simulation system which is agnostic to internal node configuration |
US7020722B2 (en) * | 2001-11-09 | 2006-03-28 | Sun Microsystems, Inc. | Synchronization of distributed simulation nodes by keeping timestep schedulers in lockstep |
US7464016B2 (en) * | 2001-11-09 | 2008-12-09 | Sun Microsystems, Inc. | Hot plug and hot pull system simulation |
US20030093256A1 (en) * | 2001-11-09 | 2003-05-15 | Carl Cavanagh | Verification simulator agnosticity |
US7231338B2 (en) * | 2001-11-09 | 2007-06-12 | Sun Microsystems, Inc. | Distributed simulation system having phases of a timestep |
US20030093253A1 (en) * | 2001-11-09 | 2003-05-15 | Freyensee James P. | Grammar for message passing in a distributed simulation environment |
US7529653B2 (en) * | 2001-11-09 | 2009-05-05 | Sun Microsystems, Inc. | Message packet logging in a distributed simulation system |
US7152028B2 (en) * | 2001-12-13 | 2006-12-19 | Texas Instruments Incorporated | Software development tool with embedded cache analysis |
US20040054515A1 (en) * | 2002-09-18 | 2004-03-18 | Todi Rajat Kumar | Methods and systems for modeling the performance of a processor |
JP4426764B2 (ja) * | 2003-01-21 | 2010-03-03 | 株式会社日立製作所 | コンパイラテストプログラムの自動生成方法 |
JP4020849B2 (ja) * | 2003-09-25 | 2007-12-12 | 松下電器産業株式会社 | シミュレーション装置、シミュレーションプログラム、記録媒体及びシミュレーション方法 |
US8417499B2 (en) | 2004-03-31 | 2013-04-09 | International Business Machines Corporation | Enabling real-time testing of on-demand infrastructure to predict service level agreement compliance |
DE102004022558B4 (de) * | 2004-05-07 | 2011-12-08 | Siemens Ag | Verfahren und Vorrichtung zur Simulation eines Automatisierungssystems |
US7302364B2 (en) * | 2004-07-30 | 2007-11-27 | The Boeing Company | Methods and systems for advanced spaceport information management |
US7424416B1 (en) | 2004-11-09 | 2008-09-09 | Sun Microsystems, Inc. | Interfacing hardware emulation to distributed simulation environments |
US7480609B1 (en) | 2005-01-31 | 2009-01-20 | Sun Microsystems, Inc. | Applying distributed simulation techniques to hardware emulation |
JP4717492B2 (ja) | 2005-04-12 | 2011-07-06 | 富士通株式会社 | マルチコアモデルシミュレータ |
JP4820654B2 (ja) * | 2006-02-06 | 2011-11-24 | 富士通セミコンダクター株式会社 | サイクルシミュレーション方法、サイクルシミュレーションプログラム、該プログラムを記録した記録媒体、およびサイクルシミュレータ |
US8126696B1 (en) * | 2008-10-15 | 2012-02-28 | Hewlett-Packard Development Company, L.P. | Modifying length of synchronization quanta of simulation time in which execution of nodes is simulated |
JP6394341B2 (ja) * | 2014-07-23 | 2018-09-26 | 富士通株式会社 | 計算装置、計算方法、および計算プログラム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4901260A (en) * | 1987-10-28 | 1990-02-13 | American Telephone And Telegraph Company At&T Bell Laboratories | Bounded lag distributed discrete event simulation method and apparatus |
JPH03112324A (ja) * | 1989-09-21 | 1991-05-13 | Mitsubishi Electric Corp | 分散型シミユレーシヨン装置 |
US6324495B1 (en) * | 1992-01-21 | 2001-11-27 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Synchronous parallel system for emulation and discrete event simulation |
US5701439A (en) * | 1992-03-30 | 1997-12-23 | Boeing North American, Inc. | Combined discrete-event and continuous model simulation and analysis tool |
NL9300036A (nl) * | 1993-01-08 | 1994-08-01 | Nederland Ptt | Systeem voor het testen van de gebruiksregistratie-functie in een telecommunicatiesysteem. |
JP2663893B2 (ja) | 1994-12-27 | 1997-10-15 | 日本電気株式会社 | アーキテクチャ・シミュレータ |
US5715184A (en) * | 1995-01-23 | 1998-02-03 | Motorola, Inc. | Method of parallel simulation of standard cells on a distributed computer system |
US5826060A (en) * | 1996-04-04 | 1998-10-20 | Westinghouse Electric Corporation | Stimulated simulator for a distributed process control system |
-
1998
- 1998-04-09 JP JP09763798A patent/JP3746371B2/ja not_active Expired - Fee Related
-
1999
- 1999-04-08 US US09/288,029 patent/US6507809B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11296409A (ja) | 1999-10-29 |
US6507809B1 (en) | 2003-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3746371B2 (ja) | 性能シミュレーション方法 | |
US7873507B2 (en) | Multi-core model simulator | |
JP5651251B2 (ja) | シミュレーション実行方法、プログラム及びシステム | |
US8990062B2 (en) | Method and program for estimating operation of program | |
JPH1074214A (ja) | ハードウェア/ソフトウェア協調シミュレータ及びシミュレーション方法 | |
US7957950B2 (en) | Hard/soft cooperative verifying simulator | |
JP4599266B2 (ja) | シミュレーション装置及びシミュレーション方法 | |
Badia et al. | Performance prediction in a grid environment | |
Andújar et al. | An open-source family of tools to reproduce MPI-based workloads in interconnection network simulators | |
Bosque et al. | A parallel computational model for heterogeneous clusters | |
CN112068942B (zh) | 一种基于单节点模拟的大规模并行系统模拟方法 | |
Chakraborty et al. | Non-blocking PMI extensions for fast MPI startup | |
US7761280B2 (en) | Data processing apparatus simulation by generating anticipated timing information for bus data transfers | |
George et al. | An Integrated Simulation Environment for Parallel and Distributed System Prototying | |
US6629174B1 (en) | Synchronization using bus arbitration control for system analysis | |
KR20130011805A (ko) | 시뮬레이션 장치 및 그의 시뮬레이션 방법 | |
Eggenberger et al. | Globally asynchronous locally synchronous simulation of nocs on many-core architectures | |
JP2708172B2 (ja) | 並列処理方法 | |
Wieferink et al. | Early iss integration into network-on-chip designs | |
CN111143141B (zh) | 一种状态机设置方法及系统 | |
JP5874433B2 (ja) | トレース結合装置及びプログラム | |
JPH05158902A (ja) | マルチプロセッサシステムの試験方法及び装置 | |
CN118378579A (zh) | 一种集成电路的验证方法、装置、计算机设备及存储介质 | |
Beichler et al. | Optimization of a novel WLAN Simulation Framework for Prototyping Network Applications and Protocols. | |
Susukita et al. | Performance Evaluation of RDMA Communication Patterns by Means of Simulations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050418 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050510 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050708 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050809 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051011 |
|
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: 20051115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051122 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091202 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101202 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111202 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |