(57)【要約】コンピュータの動作の模擬をおこない、コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーション装置であって、バッファ、キューおよびセレクタの動的状況を示すデータを採取するシミュレーション部と、演算部からメモリまでのバッファ、キューおよびセレクタの動的状況を同一時間軸上に揃えてグラフィック表示するデータを作成するグラフィック表示データ作成部と、作成したデータを用いて表示装置にグラフィック表示するグラフィック表示部とを備える。
2004055672.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータの動作の模擬をおこない、該コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーション装置であって、
前記ハードウェア要素の動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成するグラフィックデータ作成手段と、
前記グラフィックデータ作成手段により作成されたグラフィックデータを用いて前記ハードウェア要素の動的状況を表示するグラフィック表示手段と、
を備えたことを特徴とする性能シミュレーション装置。
【請求項２】
前記ハードウェア要素は、演算部がメモリにアクセスを要求したメモリアクセスデータの移動経路に沿って備えられたバッファ、キューおよびセレクタであり、前記グラフィックデータ作成手段は、前記バッファ、キューおよびセレクタの動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成することを特徴とする請求の範囲第１項に記載の性能シミュレーション装置。
【請求項３】
前記グラフィックデータ作成手段は、共通の時間軸を用いて前記バッファ、キューおよびセレクタの動的状況をグラフィック表示するグラフィックデータを作成することを特徴とする請求の範囲第２項に記載の性能シミュレーション装置。
【請求項４】
コンピュータ全体の動作に関する情報を付加して前記データを採取するデータ採取手段をさらに備え、前記グラフィックデータ作成手段は、前記データ採取手段により採取されたデータに基づいてコンピュータ全体の動作と関連付けて前記バッファ、キューおよびセレクタの動的状況をグラフィック表示するグラフィックデータを作成することを特徴とする請求の範囲第２項または第３項に記載の性能シミュレーション装置。
【請求項５】
前記データ採取手段は、コンピュータ全体の動作に関する情報としてコア識別子またはストランド識別子を前記データに付加し、前記グラフィックデータ作成手段は、前記データ採取手段により付加された識別子を用いてコアまたはストランドごとに前記バッファ、キューおよびセレクタの動的状況が識別できる形態でグラフィックデータを作成することを特徴とする請求の範囲第４項に記載の性能シミュレーション装置。
【請求項６】
前記データ採取手段は、メモリとキャッシュの間にあるバッファ、キューおよびセレクタと、キャッシュとキャッシュの間にあるバッファ、キューおよびセレクタの動的状況に関するデータを採取することを特徴とする請求の範囲第５項に記載の性能シミュレーション装置。
【請求項７】
前記コンピュータの動作の模擬は、キャッシュのプロトコルの模擬を含み、前記データ採取手段は、キャッシュミスおよびキャッシュのインバリデートをキャッシュの動的状況に関するデータとして採取することを特徴とする請求の範囲第５項または第６項に記載の性能シミュレーション装置。
【請求項８】
前記コンピュータの動作の模擬は、分岐予測動作およびＴＬＢの動作の模擬を含み、前記データ採取手段は、分岐予測バッファのエントリの作成および分岐予測バッファのヒットまたはミス、ならびにＴＬＢのエントリの作成およびＴＬＢのヒットまたはミスをＴＬＢの動的状況に関するデータとして採取することを特徴とする請求の範囲第５項、第６項または第７項に記載の性能シミュレーション装置。
【請求項９】
コンピュータの動作の模擬をおこない、該コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーションプログラムであって、
前記ハードウェア要素の動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成するグラフィックデータ作成手順と、
前記グラフィックデータ作成手順により作成されたグラフィックデータを用いて前記ハードウェア要素の動的状況を表示するグラフィック表示手順と、
を実行することを特徴とする性能シミュレーションプログラム。
【請求項１０】
コンピュータの動作の模擬をおこない、該コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーションプログラムであって、
前記ハードウェア要素の動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成するグラフィックデータ作成手順と、
前記グラフィックデータ作成手順により作成されたグラフィックデータを用いて前記ハードウェア要素の動的状況を表示する表示装置に該グラフィックデータをネットワークを介して送信するグラフィックデータ送信手順と、
を実行することを特徴とする性能シミュレーションプログラム。
【請求項１１】
コンピュータの動作の模擬をおこない、該コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーションプログラムであって、
前記ハードウェア要素の動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成するグラフィックデータ作成手順と、
前記グラフィックデータ作成手順により作成されたグラフィックデータを用いて前記ハードウェア要素の動的状況を表示する表示装置が入力する該グラフィックデータを記憶装置に出力するグラフィックデータ出力手順と、
を実行することを特徴とする性能シミュレーションプログラム。
【請求項１２】
前記ハードウェア要素は、演算部がメモリにアクセスを要求したメモリアクセスデータの移動経路に沿って備えられたバッファ、キューおよびセレクタであり、前記グラフィックデータ作成手順は、前記バッファ、キューおよびセレクタの動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成することを特徴とする請求の範囲第９項、第１０項または第１１項に記載の性能シミュレーションプログラム。
【請求項１３】
前記グラフィックデータ作成手順は、共通の時間軸を用いて前記バッファ、キューおよびセレクタの動的状況をグラフィック表示するグラフィックデータを作成することを特徴とする請求の範囲第１２項に記載の性能シミュレーションプログラム。
【請求項１４】
コンピュータ全体の動作に関する情報を付加して前記データを採取するデータ採取手順をさらに実行し、前記グラフィックデータ作成手順は、前記データ採取手順により採取されたデータに基づいてコンピュータ全体の動作と関連付けて前記バッファ、キューおよびセレクタの動的状況をグラフィック表示するグラフィックデータを作成することを特徴とする請求の範囲第１３項に記載の性能シミュレーションプログラム。
【請求項１５】
前記データ採取手順は、コンピュータ全体の動作に関する情報としてコア識別子またはストランド識別子を前記データに付加し、前記グラフィックデータ作成手順は、前記データ採取手順により付加された識別子を用いてコアまたはストランドごとに前記バッファ、キューおよびセレクタの動的状況が識別できる形態でグラフィックデータを作成することを特徴とする請求の範囲第１４項に記載の性能シミュレーションプログラム。
【請求項１６】
コンピュータの動作の模擬をおこない、該コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーション方法であって、
前記ハードウェア要素の動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成するグラフィックデータ作成工程と、
前記グラフィックデータ作成工程により作成されたグラフィックデータを用いて前記ハードウェア要素の動的状況を表示するグラフィック表示工程と、
を含んだことを特徴とする性能シミュレーション方法。
【請求項１７】
前記ハードウェア要素は、演算部がメモリにアクセスを要求したメモリアクセスデータの移動経路に沿って備えられたバッファ、キューおよびセレクタであり、前記グラフィックデータ作成工程は、前記バッファ、キューおよびセレクタの動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成することを特徴とする請求の範囲第１６項に記載の性能シミュレーション方法。
【請求項１８】
前記グラフィックデータ作成工程は、共通の時間軸を用いて前記バッファ、キューおよびセレクタの動的状況をグラフィック表示するグラフィックデータを作成することを特徴とする請求の範囲第１７項に記載の性能シミュレーション方法。
【請求項１９】
コンピュータ全体の動作に関する情報を付加して前記データを採取するデータ採取工程をさらに含み、前記グラフィックデータ作成工程は、前記データ採取工程により採取されたデータに基づいてコンピュータ全体の動作と関連付けて前記バッファ、キューおよびセレクタの動的状況をグラフィック表示するグラフィックデータを作成することを特徴とする請求の範囲第１７項または第１８項に記載の性能シミュレーション方法。
【請求項２０】
前記データ採取工程は、コンピュータ全体の動作に関する情報としてコア識別子またはストランド識別子を前記データに付加し、前記グラフィックデータ作成工程は、前記データ採取工程により付加された識別子を用いてコアまたはストランドごとに前記バッファ、キューおよびセレクタの動的状況が識別できる形態でグラフィックデータを作成することを特徴とする請求の範囲第１９項に記載の性能シミュレーション方法。
【発明の詳細な説明】
【技術分野】  この発明は、コンピュータの動作の模擬をおこない、コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーション装置、性能シミュレーションプログラムおよび性能シミュレーション方法に関し、特に、性能低下を引き起こす現象が発生している個所とその現象が発生する原因のハードウェア設計者による把握を容易にすることができる性能シミュレーション装置、性能シミュレーションプログラムおよび性能シミュレーション方法に関するものである。
【背景技術】  従来から、コンピュータのハードウェア設計者は、コンピュータの性能を解析してその向上をはかるために性能シミュレータを使用してきた。すなわち、ハードウェア設計者は、性能シミュレータを用いて、コンピュータを構成するバッファ、キュー、セレクタなどのハードウェア要素の動的状況を示す情報を採取し、採取した情報を用いてコンピュータの性能を向上するための方策を検討してきた。
たとえば、ハードウェア設計者は、性能シミュレータを用いてキャッシュのアクセス数、ミス数、リクエストの種別などのデータを採取し、採取したデータに基づいてキャッシュのサイズやメモリへの書込み方式の検討などをおこなってきた。
このような、性能シミュレータを用いたコンピュータの性能解析技術については、Ｐｒａｄｉｐ  Ｂｏｓｅ，ａｎｄ  Ｔｈｏｍａｓ  Ｍ．Ｃｏｎｔｅ，″Ｐｅｒｆｏｒｍａｎｃｅ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｉｔｓ  Ｉｍｐａｃｔ  ｏｎ  Ｄｅｓｉｇｎ，″ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ，Ｍａｙ  １９９８，ｐｐ．４１−４９．、Ｓ．Ｒ．Ｋｕｎｋｅｌ  ｅｔ  ａｌ．，″Ａ  ｐｅｒｆｏｒｍａｎｃｅ  ｍｅｔｈｏｄｏｌｏｇｙ  ｆｏｒ  ｃｏｍｍｅｒｃｉａｌ  ｓｅｒｖｅｒｓ，″ＩＢＭ  Ｊ．Ｒｅｓ．＆  Ｄｅｖ．，Ｖｏｌ．４４，Ｎｏ．６，ｐｐ．８５１−８７２，Ｎｏｖ．２０００．、Ｍａｔｔ  Ｒｅｉｌｌｙ，ａｎｄ  Ｊｏｈｎ  Ｅｄｍｏｎｄｓｏｎ，″Ｐｅｒｆｏｒｍａｎｃｅ  Ｓｉｍｕｌａｔｉｏｎ  ｏｆ  ａｎ  Ａｌｐｈａ  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ，″ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ，Ｍａｙ  １９９８，ｐｐ．５０−５８．およびＳｔｅｖｅｎ  Ｋｕｎｋｅｌ，Ｂｉｌｌ  Ａｒｍｓｔｒｏｎｇ，ａｎｄ  Ｐｈｉｌｉｐ  Ｖｉｔａｌｅ，″Ｓｙｓｔｅｍ  Ｏｐｔｉｍｉｚａｔｉｏｎ  ｆｏｒ  ＯＬＴＰ  Ｗｏｒｋｌｏａｄｓ，″ＩＥＥＥ  Ｍｉｃｒｏ，Ｍａｙ／Ｊｕｎｅ  １９９９，ｐｐ．５６−６４．に開示されている。
しかしながら、従来の性能シミュレータでは、コンピュータのハードウェア要素の動的状況を示す情報は局所的な情報として個別に表示されるため、これらの局所的な情報だけでは、ハードウェア設計者が各ハードウェア要素とコンピュータ全体の動作との関連やハードウェア要素相互間の関連を把握することが困難であるという問題があった。
このため、これらの局所的な情報だけでは、性能向上のボトルネックとなっている個所を発見することができても、このボトルネックを引き起こす真の原因を特定することは容易でなかった。
とくに、ＣＭＰ（ｏｎ−ｃｈｉｐ  ｍｕｌｔｉｐｒｏｃｅｓｓｏｒ）やマルチストランド構成のコンピュータなど、メモリアクセスが複雑なコンピュータでは、性能向上に絡む要因が多く、局所的に表示される情報だけから全体を関連付けることは容易でなく、性能向上の検討を困難なものとしていた。ここで、ＣＭＰとは、複数のＣＰＵがメモリを共有するコンピュータであり、１つのＣＰＵがコアと呼ばれるプロセッサを複数個有する場合もある。また、マルチストランド構成のコンピュータとは、１つのＣＰＵが複数のジョブ（ストランド）を同時に実行するコンピュータである。
従って、この発明は、性能低下を引き起こす現象が発生している個所とその現象が発生する原因のハードウェア設計者による把握を容易にすることができる性能シミュレーション装置、性能シミュレーションプログラムおよび性能シミュレーション方法を提供することを目的としている。
【発明の開示】
上述した課題を解決し、目的を達成するため、本発明は、コンピュータの動作の模擬をおこない、該コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーション装置であって、前記ハードウェア要素の動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成するグラフィックデータ作成手段と、前記グラフィックデータ作成手段により作成されたグラフィックデータを用いて前記ハードウェア要素の動的状況を表示するグラフィック表示手段と、を備えたことを特徴とする。
また、本発明は、コンピュータの動作の模擬をおこない、該コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーションプログラムであって、前記ハードウェア要素の動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成するグラフィックデータ作成手順と、前記グラフィックデータ作成手順により作成されたグラフィックデータを用いて前記ハードウェア要素の動的状況を表示するグラフィック表示手順と、を実行することを特徴とする。
また、本発明は、コンピュータの動作の模擬をおこない、該コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーション方法であって、前記ハードウェア要素の動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成するグラフィックデータ作成工程と、前記グラフィックデータ作成工程により作成されたグラフィックデータを用いて前記ハードウェア要素の動的状況を表示するグラフィック表示工程と、を含んだことを特徴とする。
かかる発明によれば、ハードウェア要素の動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成し、作成したグラフィックデータを用いてハードウェア要素の動的状況を表示することとしたので、性能低下を引き起こす現象が発生している個所とその現象が発生する原因のハードウェア設計者による把握を容易にすることができる。
また、本発明は、コンピュータの動作の模擬をおこない、該コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーションプログラムであって、前記ハードウェア要素の動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成するグラフィックデータ作成手順と、前記グラフィックデータ作成手順により作成されたグラフィックデータを用いて前記ハードウェア要素の動的状況を表示する表示装置に該グラフィックデータをネットワークを介して送信するグラフィックデータ送信手順と、を実行することを特徴とする。
この発明によれば、ハードウェア要素の動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成し、作成したグラフィックデータを用いてハードウェア要素の動的状況を表示する表示装置にグラフィックデータをネットワークを介して送信することとしたので、表示装置を利用するハードウェア設計者が、性能低下を引き起こす現象が発生している個所とその現象が発生する原因を容易に把握することができる。
また、本発明は、コンピュータの動作の模擬をおこない、該コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーションプログラムであって、前記ハードウェア要素の動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成するグラフィックデータ作成手順と、前記グラフィックデータ作成手順により作成されたグラフィックデータを用いて前記ハードウェア要素の動的状況を表示する表示装置が入力する該グラフィックデータを記憶装置に出力するグラフィックデータ出力手順と、を実行することを特徴とする。
この発明によれば、ハードウェア要素の動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成し、作成したグラフィックデータを用いてハードウェア要素の動的状況を表示する表示装置が入力するグラフィックデータを記憶装置に出力することとしたので、表示装置を利用するハードウェア設計者が、性能低下を引き起こす現象が発生している個所とその現象が発生する原因を容易に把握することができる。
【図面の簡単な説明】  第１図は、本実施の形態に係る性能シミュレーション装置による動的データ採取の概念を説明するための説明図であり、第２図は、本実施の形態に係る性能シミュレーション装置の構成を示す機能ブロック図であり、第３図は、グラフィック表示についてのシミュレーションパラメータの一例を示す図であり、第４図は、本実施の形態に係る性能シミュレーション装置の処理手順を示すフローチャートであり、第５図は、第２図に示したグラフィック表示データ作成部の処理手順を示すフローチャートであり、第６図は、本実施の形態に係る性能シミュレーション装置が表示するグラフィック表示の一例を示す図であり、第７図は、本実施の形態に係る性能シミュレーション装置が表示するグラフィック表示の他の例を示す図であり、第８図は、本実施の形態に係る性能シミュレーションプログラムを実行するコンピュータシステムを示す図であり、第９図は、第８図に示した本体部の構成を示す機能ブロック図である。
【発明を実施するための最良の形態】  以下、添付図面を参照して、この発明に係る性能シミュレーション装置、性能シミュレーションプログラムおよび性能シミュレーション方法の好適な実施の形態を詳細に説明する。
まず、本実施の形態に係る性能シミュレーション装置による動的データ採取の概念について説明する。第１図は、本実施の形態に係る性能シミュレーション装置による動的データ採取の概念を説明するための説明図である。
同図は、本実施の形態に係る性能シミュレーション装置によってシミュレートされるコンピュータの一例を示しており、このコンピュータは、命令ユニット１０と、演算ユニット２０と、１次キャッシュユニット３０と、２次キャッシュユニット４０とを有する。また、２次キャッシュユニット４０は、２次キャッシュ４１と外部アクセスユニット４２とを有する。
従来の性能シミュレーション装置は、これらのユニットが有するバッファ、キューおよびセレクタの動的状況を示すデータ、すなわち動的データを採取し、採取した動的データを局所的な情報として表示していた。たとえば、２次キャッシュ４１については、アクセス数、ヒット回数、リクエスト種別などの動的データを採取し、２次キャッシュ４１とメモリ間のメモリシステムについては、外部アクセスユニット４２にあるバッファの送出待ち数やデータ待ち数などの動的データを採取していた。
一方、本実施の形態に係る性能シミュレーション装置は、各ユニットが有するバッファ、キューおよびセレクタの動的データを採取し、演算部からメモリまでのバッファ、キューおよびセレクタの動的状況を同一時間軸に揃えてグラフィック表示する。また、本実施の形態に係る性能シミュレーション装置は、各ユニットが有するバッファ、キューおよびセレクタの動的データを採取する場合に、コンピュータ全体の動作を示す情報を採取した動的データに付加する。そして、採取した動的データを表示する場合に、コンピュータ全体の動作と関連付けてグラフィック表示できるようにする。
たとえば、２次キャッシュ４１のアクセス数やヒット回数などの動的データについては、各コアの命令ユニット１０および演算ユニット２０を識別するためにコアＩＤを設け、コアＩＤやストランドＩＤを採取するデータに付加することによって、２次キャッシュ４１へのアクセス要求元であるコアやストランド別にこれらの動的データをグラフィック表示できるようにする。
また、２次キャッシュ４１とメモリ間のメモリシステムについても、外部アクセスユニット４２にあるバッファの送出待ち数やデータ待ち数などの動的データに関するデータ採取時にコアＩＤやストランドＩＤを付加し、メモリアクセスを要求したコアやストランド別にこれらの動的データをグラフィック表示できるようにする。
このように、本実施の形態に係る性能シミュレーション装置は、シミュレーションを実行して採取したバッファ、キューおよびセレクタの動的データを、局所的な情報として表示するのではなく、演算ユニット２０からメモリまでのバッファ、キューおよびセレクタをならべてグラフィック表示することによって、ハードウェア設計者が相互の関連を把握することを容易にしている。
また、本実施の形態に係る性能シミュレーション装置は、各ユニットが有するバッファ、キューおよびセレクタの動的データを採取する際に、コアＩＤやストランドＩＤを付加することによって、バッファ、キューおよびセレクタの動的状況を表示する場合に、コアやストランドごとに表示することを可能とし、ハードウェア設計者がバッファ、キューおよびセレクタの動的状況をコンピュータ全体の動作と関連付けて把握することを容易にしている。
次に、本実施の形態に係る性能シミュレーション装置の構成について説明する。第２図は、本実施の形態に係る性能シミュレーション装置の構成を示す機能ブロック図である。同図に示すように、この性能シミュレーション装置２００は、シミュレーションデータ入力部２１０と、シミュレーション部２２０と、グラフィック表示データ作成部２３０と、グラフィック表示部２４０と、シミュレーションデータ記憶部２５０と、採取データ記憶部２６０と、グラフィック表示データ記憶部２７０と、制御部２８０とを有する。
シミュレーションデータ入力部２１０は、実行履歴データおよびシミュレーションパラメータを入力する処理部である。ここで、実行履歴データは、シミュレーションの対象であるコンピュータで実行されるプログラムに相当するものであり、実際のハードウェアでプログラムを実行したときの履歴データである。シミュレーションの対象であるコンピュータで実行されるプログラムに相当するものとしては、実行履歴データ以外に、プログラムの傾向を継承するシミュレーション用のデータ、実行履歴データを加工したものまたは実際のハードウェアが入力するプログラムを用いることもできる。
また、シミュレーションパラメータは、シミュレーションを実行する仕様の選択や、シミュレーション結果のグラフィク表示形態の指定などをおこなうためのものである。第３図は、グラフィック表示についてのシミュレーションパラメータの一例を示す図である。同図に示すように、このシミュレーションパラメータを用いて、表示するバッファ、キューおよびセレクタの種別、グラフの形態、グラフ内での表示の詳細ならびに表示時間を指定することができる。
シミュレーション部２２０は、シミュレーションデータ入力部２１０が入力したシミュレーションパラメータを用いてシミュレーションを実行し、バッファ、キューおよびセレクタの動的状況を示すデータを採取する処理部である。また、このシミュレーション部２２０は、バッファ、キューおよびセレクタの動的状況を示すデータを採取する場合に、バッファ、キューおよびセレクタへのアクセスを要求したジョブに関する情報、すなわちコアＩＤとストランドＩＤを採取したデータに付加する。
グラフィック表示データ作成部２３０は、シミュレーション部２２０が採取したバッファ、キューおよびセレクタの動的状況を示すデータに基づいて、シミュレーションパラメータで指定された形態のグラフィック表示データを作成する処理部である。このとき、このグラフィック表示データ作成部２３０は、演算部からメモリまでのバッファ、キューおよびセレクタの動的状況を同一時間軸上に揃えてグラフィック表示できるように表示データを作成する。また、このグラフィック表示データ作成部２３０は、バッファ、キューおよびセレクタへのアクセスを要求したコアやストランドごとにグラフィック表示できるように表示データを作成する。
このように、このグラフィック表示データ作成部２３０が、演算部からメモリまでのバッファ、キューおよびセレクタの動的状況をならべてグラフィック表示するデータを作成することによって、ハードウェア設計者がハードウェア各要素の局所的な動的データを相互に関連付けて把握することを容易にすることができる。
また、シミュレーション部２２０が、バッファ、キューおよびセレクタの動的状況を示すデータを採取する場合に、バッファ、キューおよびセレクタへのアクセスを要求したコアおよびストランドに関する情報を付加し、グラフィック表示データ作成部２３０が、コアおよびストランドごとにグラフィック表示データを作成することによって、ハードウェア設計者は、ＣＭＰおよびマルチストランド構成のコンピュータの複雑な動作を容易に把握することができる。
グラフィック表示部２４０は、グラフィック表示データ作成部２３０が作成したグラフィック表示データを用いて、表示装置にバッファ、キューおよびセレクタの動的状況をグラフィック表示する処理部である。
シミュレーションデータ記憶部２５０は、シミュレーションデータ入力部２１０が入力したシミュレーションに必要なデータを記憶する記憶部であり、シミュレーション部２２０によって使用される。
採取データ記憶部２６０は、シミュレーション部２２０が採取したバッファ、キューおよびセレクタの動的状況を示すデータを記憶する記憶部であり、動的表示デー作成部２３０によって使用される。
グラフィック表示データ記憶部２７０は、動的表示デー作成部２３０が作成したグラフィック表示データを記憶する記憶部であり、このグラフィック表示データ記憶部２７０に記憶されたグラフィック表示データを用いてグラフィック表示部２４０が表示装置にグラフィック表示をおこなう。
制御部２８０は、性能シミュレーション装置２００全体の制御をおこなう処理部であり、具体的には、機能部間の制御の移動や機能部と記憶部の間のデータの受け渡しなどをおこなうことによって、性能シミュレーション装置２００を一つの装置として機能させる。
次に、本実施の形態に係る性能シミュレーション装置２００の処理手順について説明する。第４図は、本実施の形態に係る性能シミュレーション装置２００の処理手順を示すフローチャートである。同図に示すように、この性能シミュレーション装置２００は、まずシミュレーションデータ入力部２１０がシミュレーションパラメータを入力する（ステップＳ４０１）。そして、入力したシミュレーションパラメータの指定に基づいて、シミュレーション部２２０が実行履歴データを用いてシミュレーションを実行し、バッファ、キューおよびセレクタの動的状況を示すデータを採取する（ステップＳ４０２）。ここで、シミュレーション部２２０は、バッファ、キューおよびセレクタにアクセスを要求したコアおよびストランドのＩＤを付加してデータを採取する。
そして、グラフィック表示データ作成部２３０が、採取したデータに基づいてグラフィック表示データを作成する（ステップＳ４０３）。このとき、グラフィック表示データ作成部２３０は、演算部からメモリまでのバッファ、キューおよびセレクタの動的状況を同一時間軸上に揃えてグラフィック表示するように表示データを作成する。また、バッファ、キューおよびセレクタの動的状況をコアおよびストランドごとに表示するなど、バッファ、キューおよびセレクタの動的状況がコンピュータ全体の動作と関連付けて表示できるようにグラフィック表示データを作成する。そして、グラフィック表示部２４０が、作成したグラフィック表示データを用いて表示装置にグラフィック表示をおこなう（ステップＳ４０４）。
このように、グラフィック表示データ作成部２３０が、演算部からメモリまでのバッファ、キューおよびセレクタの動的状況を同一時間軸上に揃え、コンピュータ全体の動作と関連付けて表示するようにグラフィック表示データを作成し、グラフィック表示部２４０が、作成されたグラフィック表示データを用いて表示装置にグラフィック表示をおこなうことによって、ハードウェア設計者がハードウェア各要素の局所的な動的データを相互に関連付けて把握することを容易にすることができる。
次に、第２図に示したグラフィック表示データ作成部２３０の処理手順の詳細について説明する。第５図は、第２図に示したグラフィック表示データ作成部２３０の処理手順を示すフローチャートである。なお、このグラフィック表示データ作成部２３０の処理は、第４図に示したステップＳ４０３のグラフィック表示データ作成処理に対応する。
同図に示すように、このグラフィック表示データ作成部２３０は、まず、１つのＣＰＵを選択し（ステップＳ５０１）、選択したＣＰＵについて、ＩＰＣ（ｉｎｓｔｒｕｃｔｉｏｎ  ｐｅｒ  ｃｙｃｌｅ）のグラフィック表示データを作成する（ステップＳ５０２）。そして、グラフィック表示するバッファ、キューまたはセレクタを一つ選択し（ステップＳ５０３）、ＣＰＵがマルチコア構成やマルチストランド構成であるか否かを調べる（ステップＳ５０４）。
その結果、ＣＰＵがマルチコア構成でもマルチストランド構成でもない場合には、選択したバッファ、キューまたはセレクタのグラフィック表示データを作成する（ステップＳ５０５）。なお、グラフィック表示の形態は、シミュレーションパラメータにより指定される。
一方、ＣＰＵがマルチコア構成やマルチストランド構成である場合には、選択したバッファ、キューまたはセレクタの動的状況がコアやストランドごとにわかる表示形態でグラフィック表示データを作成する（ステップＳ５０６）。ここで、動的状況がコアやストランドごとにわかる表示形態としては、コアやストランドごとに別のグラフとする形態や色を変える形態などがある。
そして、シミュレーションパラメータで指定された全てのバッファ、キューおよびセレクタについてグラフィック表示データを作成したか否かを調べ（ステップＳ５０７）、作成していない場合には、ステップＳ５０３に戻って他のバッファ、キューまたはセレクタのグラフィック表示データを作成する。一方、シミュレーションパラメータで指定された全てのバッファ、キューおよびセレクタについてグラフィック表示データを作成した場合には、全てのＣＰＵについてグラフィック表示データを作成したか否かを調べ（ステップＳ５０８）、作成していない場合には、ステップＳ５０１に戻って他のＣＰＵのグラフィック表示データを作成する。
これに対して、全てのＣＰＵについてグラフィック表示データを作成した場合には、全てのＣＰＵに共通するバッファ、キューおよびセレクタのグラフィック表示データを作成し（ステップＳ５０９）、処理を終了する。ここで、全てのＣＰＵに共通するバッファ、キューおよびセレクタのグラフィック表示データは、ＣＰＵごとにそれらの動的状況がわかる形態で作成する。
このように、このグラフィック表示データ作成部２３０が、マルチコア構成やマルチストランド構成である場合に、バッファ、キューおよびセレクタの動的状況がコアやストランドごとにわかる表示形態でグラフィック表示データを作成することによって、性能シミュレーション装置２００は、ＣＭＰやマルチストランド構成などのメモリアクセスが複雑なコンピュータの動作把握を容易にするグラフィック表示をおこなうことができる。
次に、本実施の形態に係る性能シミュレーション装置２００が表示するグラフィック表示について説明する。第６図は、本実施の形態に係る性能シミュレーション装置２００が表示するグラフィック表示の一例を示す図である。同図は、２つのＣＰＵのそれぞれが２つのコアを有するＣＭＰ構成のコンピュータをシミュレートして演算部からメモリまでのバッファ、キューおよびセレクタの動的状況を同一時間軸上に揃えて表示した例を示している。
同図に示すように、演算部からメモリまでのバッファ、キューおよびセレクタの動的状況として、演算部バッファのＢＵＳＹ状態、１次キャッシュミスおよび１次・２次キャッシュ間バッファエントリが各ＣＰＵのコアごとに表示されている。また、ＣＰＵ間に共通するバッファの動的状況として、２次キャッシュミスおよび２次キャッシュ・メモリ間リクエストバッファエントリが表示されており、２次キャッシュ・メモリ間リクエストバッファエントリについては、ＣＰＵごとに表示されている。
このように、演算部からメモリまでのバッファ、キューおよびセレクタの動的状況を同一時間軸上に揃えてグラフィック表示することにより、ハードウェア設計者が、コンピュータ全体の動作と関連付けて各バッファ、キューおよびセレクタの動的状況を直感的に把握することが可能となり、ハードウェアの設計を効率良くおこなうことができる。また、各バッファ、キューおよびセレクタの動的状況を、ＣＰＵおよびコアごとにグラフィック表示することにより、ハードウェア設計者は、ＣＭＰ構成のコンピュータシステムの設計を効率よくおこなうことができる。
第７図は、本実施の形態に係る性能シミュレーション装置２００が表示するグラフィック表示の他の例を示す図である。同図は、複数のＣＰＵのうちの１つが２つのストランドを実行するコンピュータをシミュレートして各バッファ、キューおよびセレクタの動的状況を表示した例を示している。
同図に示すように、命令バッファや演算部バッファの動的状況がストランドごとにグラフィック表示されており、ハードウェア設計者は、マルチストランド構成のコンピュータシステムを効率よく設計することができる。
上述したように、本実施の形態では、シミュレーション部２２０がバッファ、キューおよびセレクタの動的状況を示すデータを採取し、グラフィック表示データ作成部２３０が演算部からメモリまでのバッファ、キューおよびセレクタの動的状況を同一時間軸上に揃えてグラフィック表示するデータを作成し、作成したデータを用いてグラフィック表示部２４０が表示装置にグラフィック表示することとしたので、ハードウェア設計者が、コンピュータ全体の動作と関連付けて各バッファ、キューおよびセレクタの動的状況を直感的に把握し、性能低下を引き起こす現象が発生している個所とその現象が発生する原因を把握することが容易となる。
また、本実施の形態では、シミュレーション部２２０がバッファ、キューおよびセレクタの動的状況を示すデータにコアおよびストランド情報を付加し、グラフィック表示データ作成部２３０がバッファ、キューおよびセレクタの動的状況をコアおよびストランドごとに識別できる形態でグラフィック表示するデータを作成し、作成したデータを用いてグラフィック表示部２４０が表示装置にグラフィック表示することとしたので、ハードウェア設計者が、ＣＭＰやマルチストランド構成などのメモリアクセスが複雑なコンピュータシステムを効率よく設計することができる。
なお、図示した性能シミュレーション装置２００の各構成要素は機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。すなわち、性能シミュレーション装置２００の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷状況や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。たとえば、表示装置にグラフィック表示するグラフィック表示部２４０は、必ずしも性能シミュレーション装置２００内に設ける必要はなく、ネットワークを介して接続される別の装置に表示装置とともに設けることもできる。
また、シミュレーションを実行した結果を直ちに表示することも要しない。たとえば、グラフィック表示データ作成部２３０が作成したグラフィック表示データを磁気ディスクなどに記憶してシミュレーション処理を終了し、シミュレーション結果のグラフィック表示だけを別の時点でおこなうこともできる。
また、本実施の形態では、性能シミュレーション装置について説明したが、この性能シミュレーション装置が有する構成をソフトウェアによって実現することで、同様の機能を有する性能シミュレーションプログラムを得ることができる。そこで、この性能シミュレーションプログラムを実行するコンピュータシステムについて説明する。
第８図は、本実施の形態に係る性能シミュレーションプログラムを実行するコンピュータシステムを示す図である。同図に示すように、このコンピュータシステム１００は、本体部１０１と、本体部１０１からの指示により表示画面１０２ａに画像等の情報を表示する表示装置１０２と、このコンピュータシステム１００に種々の情報を入力するためのキーボード１０３と、表示装置１０２の表示画面１０２ａ上の任意の位置を指定するマウス１０４と、ローカルエリアネットワーク（ＬＡＮ）１０６または広域エリアネットワーク（ＷＡＮ）に接続するＬＡＮインタフェースと、インターネットなどの公衆回線１０７に接続するモデム１０５とを有する。ここで、ＬＡＮ１０６は、他のコンピュータシステム（ＰＣ）１１１、サーバ１１２、プリンタ１１３などとコンピュータシステム１００とを接続している。
また、第９図は、第８図に示した本体部１０１の構成を示す機能ブロック図である。同図に示すように、この本体部１０１は、ＣＰＵ１２１と、ＲＡＭ１２２と、ＲＯＭ１２３と、ハードディスクドライブ（ＨＤＤ）１２４と、ＣＤ−ＲＯＭドライブ１２５と、ＦＤドライブ１２６と、Ｉ／Ｏインタフェース１２７と、ＬＡＮインタフェース１２８とを有する。
このコンピュータシステム１００において性能シミュレーションプログラムを実行する場合、フロッピィディスク（ＦＤ）１０８、ＣＤ−ＲＯＭ１０９、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの可搬型記憶媒体、ＬＡＮインタフェース１２８を介して接続されたサーバ１１２または他のコンピュータシステム（ＰＣ）１１１のデータベース、あるいは、公衆回線１０７を介して接続された他のコンピュータシステムのデータベースに記憶された性能シミュレーションプログラムをコンピュータシステム１００にインストールする。そして、インストールされた性能シミュレーションプログラムは、ＨＤＤ１２４に記憶され、ＲＡＭ１２２、ＲＯＭ１２３などを利用してＣＰＵ１２１により実行される。
以上説明したように、本発明によれば、ハードウェア要素の動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成し、作成したグラフィックデータを用いてハードウェア要素の動的状況を表示するよう構成したので、性能低下を引き起こす現象が発生している個所とその現象が発生する原因のハードウェア設計者による把握を容易にすることができるという効果を奏する。
また、本発明によれば、ハードウェア要素の動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成し、作成したグラフィックデータを用いてハードウェア要素の動的状況を表示する表示装置にグラフィックデータをネットワークを介して送信するよう構成したので、表示装置を利用するハードウェア設計者が、性能低下を引き起こす現象が発生している個所とその現象が発生する原因を容易に把握することができるという効果を奏する。
また、本発明によれば、ハードウェア要素の動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成し、作成したグラフィックデータを用いてハードウェア要素の動的状況を表示する表示装置が入力するグラフィックデータを記憶装置に出力するよう構成したので、表示装置を利用するハードウェア設計者が、性能低下を引き起こす現象が発生している個所とその現象が発生する原因を容易に把握することができるという効果を奏する。
【産業上の利用可能性】  以上のように、本発明に係る性能シミュレーション装置、性能シミュレーションプログラムおよび性能シミュレーション方法は、コンピュータハードウェアの性能評価に基づいて設計をおこなう場合に使用するツール、特に、ＣＭＰやマルチストランド構成などメモリアクセスが複雑なコンピュータハードウェアの設計をおこなう場合に使用するツールとして適している。
【図１】
2004055672.tif 000003
【図２】
2004055672.tif 000004
【図３】
2004055672.tif 000005
【図４】
2004055672.tif 000006
【図５】
2004055672.tif 000007
【図６】
2004055672.tif 000008
【図７】
2004055672.tif 000009
【図８】
2004055672.tif 000010
【図９】
2004055672.tif 000011
【手続補正書】
【提出日】平成17年2月2日(2005.2.2)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】      明細書
【特許請求の範囲】
【請求項１】  コンピュータの動作の模擬をおこない、該コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーション装置であって、
演算部がメモリにアクセスを要求したメモリアクセスデータの移動経路に沿って備えられたバッファ、キューおよびセレクタの動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成するグラフィックデータ作成手段と、
前記グラフィックデータ作成手段により作成されたグラフィックデータを用いて前記バッファ、キューおよびセレクタの動的状況を表示するグラフィック表示手段と、
を備えたことを特徴とする性能シミュレーション装置。
【請求項２】  前記グラフィックデータ作成手段は、共通の時間軸を用いて前記バッファ、キューおよびセレクタの動的状況をグラフィック表示するグラフィックデータを作成することを特徴とする請求の範囲第１項に記載の性能シミュレーション装置。
【請求項３】  コンピュータ全体の動作に関する情報を付加して前記データを採取するデータ採取手段をさらに備え、前記グラフィックデータ作成手段は、前記データ採取手段により採取されたデータに基づいてコンピュータ全体の動作と関連付けて前記バッファ、キューおよびセレクタの動的状況をグラフィック表示するグラフィックデータを作成することを特徴とする請求の範囲第１項または第２項に記載の性能シミュレーション装置。
【請求項４】  前記データ採取手段は、コンピュータ全体の動作に関する情報としてコア識別子またはストランド識別子を前記データに付加し、前記グラフィックデータ作成手段は、前記データ採取手段により付加された識別子を用いてコアまたはストランドごとに前記バッファ、キューおよびセレクタの動的状況が識別できる形態でグラフィックデータを作成することを特徴とする請求の範囲第３項に記載の性能シミュレーション装置。
【請求項５】  前記データ採取手段は、メモリとキャッシュの間にあるバッファ、キューおよびセレクタと、キャッシュとキャッシュの間にあるバッファ、キューおよびセレクタの動的状況に関するデータを採取することを特徴とする請求の範囲第４項に記載の性能シミュレーション装置。
【請求項６】  前記コンピュータの動作の模擬は、キャッシュのプロトコルの模擬を含み、前記データ採取手段は、キャッシュミスおよびキャッシュのインバリデートをキャッシュの動的状況に関するデータとして採取することを特徴とする請求の範囲第４項または第５項に記載の性能シミュレーション装置。
【請求項７】  前記コンピュータの動作の模擬は、分岐予測動作およびＴＬＢの動作の模擬を含み、前記データ採取手段は、分岐予測バッファのエントリの作成および分岐予測バッファのヒットまたはミス、ならびにＴＬＢのエントリの作成およびＴＬＢのヒットまたはミスをＴＬＢの動的状況に関するデータとして採取することを特徴とする請求の範囲第４項、第５項または第６項に記載の性能シミュレーション装置。
【請求項８】  コンピュータの動作の模擬をおこない、該コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーションプログラムであって、
演算部がメモリにアクセスを要求したメモリアクセスデータの移動経路に沿って備えられたバッファ、キューおよびセレクタの動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成するグラフィックデータ作成手順と、
前記グラフィックデータ作成手順により作成されたグラフィックデータを用いて前記バッファ、キューおよびセレクタの動的状況を表示するグラフィック表示手順と、
を実行することを特徴とする性能シミュレーションプログラム。
【請求項９】  前記グラフィックデータ作成手順は、共通の時間軸を用いて前記バッファ、キューおよびセレクタの動的状況をグラフィック表示するグラフィックデータを作成することを特徴とする請求の範囲第８項に記載の性能シミュレーションプログラム。
【請求項１０】  コンピュータ全体の動作に関する情報を付加して前記データを採取するデータ採取手順をさらに実行し、前記グラフィックデータ作成手順は、前記データ採取手順により採取されたデータに基づいてコンピュータ全体の動作と関連付けて前記バッファ、キューおよびセレクタの動的状況をグラフィック表示するグラフィックデータを作成することを特徴とする請求の範囲第８項または第９項に記載の性能シミュレーションプログラム。
【請求項１１】  前記データ採取手順は、コンピュータ全体の動作に関する情報としてコア識別子またはストランド識別子を前記データに付加し、前記グラフィックデータ作成手順は、前記データ採取手順により付加された識別子を用いてコアまたはストランドごとに前記バッファ、キューおよびセレクタの動的状況が識別できる形態でグラフィックデータを作成することを特徴とする請求の範囲第１０項に記載の性能シミュレーションプログラム。
【請求項１２】  コンピュータの動作の模擬をおこない、該コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーション方法であって、
演算部がメモリにアクセスを要求したメモリアクセスデータの移動経路に沿って備えられたバッファ、キューおよびセレクタの動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成するグラフィックデータ作成工程と、
前記グラフィックデータ作成工程により作成されたグラフィックデータを用いて前記バッファ、キューおよびセレクタの動的状況を表示するグラフィック表示工程と、
を含んだことを特徴とする性能シミュレーション方法。
【請求項１３】  前記グラフィックデータ作成工程は、共通の時間軸を用いて前記バッファ、キューおよびセレクタの動的状況をグラフィック表示するグラフィックデータを作成することを特徴とする請求の範囲第１２項に記載の性能シミュレーション方法。
【請求項１４】  コンピュータ全体の動作に関する情報を付加して前記データを採取するデータ採取工程をさらに含み、前記グラフィックデータ作成工程は、前記データ採取工程により採取されたデータに基づいてコンピュータ全体の動作と関連付けて前記バッファ、キューおよびセレクタの動的状況をグラフィック表示するグラフィックデータを作成することを特徴とする請求の範囲第１２項または第１３項に記載の性能シミュレーション方法。
【請求項１５】  前記データ採取工程は、コンピュータ全体の動作に関する情報としてコア識別子またはストランド識別子を前記データに付加し、前記グラフィックデータ作成工程は、前記データ採取工程により付加された識別子を用いてコアまたはストランドごとに前記バッファ、キューおよびセレクタの動的状況が識別できる形態でグラフィックデータを作成することを特徴とする請求の範囲第１４項に記載の性能シミュレーション方法。
【発明の詳細な説明】
【０００１】
【技術分野】
この発明は、コンピュータの動作の模擬をおこない、コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーション装置、性能シミュレーションプログラムおよび性能シミュレーション方法に関し、特に、性能低下を引き起こす現象が発生している個所とその現象が発生する原因のハードウェア設計者による把握を容易にすることができる性能シミュレーション装置、性能シミュレーションプログラムおよび性能シミュレーション方法に関するものである。
【０００２】
【背景技術】
従来から、コンピュータのハードウェア設計者は、コンピュータの性能を解析してその向上をはかるために性能シミュレータを使用してきた。すなわち、ハードウェア設計者は、性能シミュレータを用いて、コンピュータを構成するバッファ、キュー、セレクタなどのハードウェア要素の動的状況を示す情報を採取し、採取した情報を用いてコンピュータの性能を向上するための方策を検討してきた。
【０００３】
たとえば、ハードウェア設計者は、性能シミュレータを用いてキャッシュのアクセス数、ミス数、リクエストの種別などのデータを採取し、採取したデータに基づいてキャッシュのサイズやメモリへの書込み方式の検討などをおこなってきた。
【０００４】
このような、性能シミュレータを用いたコンピュータの性能解析技術については、Pradip Bose, and Thomas M. Conte, "Performance Analysis and Its Impact on Design," IEEE Computer, May 1998, pp.41-49.、S.R.Kunkel et al., "A performance methodology for commercial servers," IBM J. Res. & Dev., Vol.44, No.6, pp.851-872, Nov. 2000.、Matt Reilly, and John Edmondson, "Performance Simulation of an Alpha Microprocessor," IEEE Computer, May 1998, pp.50-58. および Steven Kunkel, Bill Armstrong, and Philip Vitale,"System Optimization for OLTP Workloads," IEEE Micro, May/June 1999, pp.56-64. に開示されている。
【０００５】
しかしながら、従来の性能シミュレータでは、コンピュータのハードウェア要素の動的状況を示す情報は局所的な情報として個別に表示されるため、これらの局所的な情報だけでは、ハードウェア設計者が各ハードウェア要素とコンピュータ全体の動作との関連やハードウェア要素相互間の関連を把握することが困難であるという問題があった。
このため、これらの局所的な情報だけでは、性能向上のボトルネックとなっている個所を発見することができても、このボトルネックを引き起こす真の原因を特定することは容易でなかった。
【０００６】
とくに、ＣＭＰ（on-chip multiprocessor）やマルチストランド構成のコンピュータなど、メモリアクセスが複雑なコンピュータでは、性能向上に絡む要因が多く、局所的に表示される情報だけから全体を関連付けることは容易でなく、性能向上の検討を困難なものとしていた。ここで、ＣＭＰとは、複数のＣＰＵがメモリを共有するコンピュータであり、１つのＣＰＵがコアと呼ばれるプロセッサを複数個有する場合もある。また、マルチストランド構成のコンピュータとは、１つのＣＰＵが複数のジョブ（ストランド）を同時に実行するコンピュータである。
【０００７】
従って、この発明は、性能低下を引き起こす現象が発生している個所とその現象が発生する原因のハードウェア設計者による把握を容易にすることができる性能シミュレーション装置、性能シミュレーションプログラムおよび性能シミュレーション方法を提供することを目的としている。
【０００８】
【発明の開示】
上述した課題を解決し、目的を達成するため、本発明は、コンピュータの動作の模擬をおこない、該コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーション装置であって、演算部がメモリにアクセスを要求したメモリアクセスデータの移動経路に沿って備えられたバッファ、キューおよびセレクタの動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成するグラフィックデータ作成手段と、前記グラフィックデータ作成手段により作成されたグラフィックデータを用いて前記バッファ、キューおよびセレクタの動的状況を表示するグラフィック表示手段と、を備えたことを特徴とする。
【０００９】
また、本発明は、コンピュータの動作の模擬をおこない、該コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーションプログラムであって、演算部がメモリにアクセスを要求したメモリアクセスデータの移動経路に沿って備えられたバッファ、キューおよびセレクタの動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成するグラフィックデータ作成手順と、前記グラフィックデータ作成手順により作成されたグラフィックデータを用いて前記バッファ、キューおよびセレクタの動的状況を表示するグラフィック表示手順と、を実行することを特徴とする。
【００１０】
また、本発明は、コンピュータの動作の模擬をおこない、該コンピュータを構成するハードウェア要素の動的状況に関するデータを採取して表示する性能シミュレーション方法であって、演算部がメモリにアクセスを要求したメモリアクセスデータの移動経路に沿って備えられたバッファ、キューおよびセレクタの動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成するグラフィックデータ作成工程と、前記グラフィックデータ作成工程により作成されたグラフィックデータを用いて前記バッファ、キューおよびセレクタの動的状況を表示するグラフィック表示工程と、を含んだことを特徴とする。
【００１１】
かかる発明によれば、演算部がメモリにアクセスを要求したメモリアクセスデータの移動経路に沿って備えられたバッファ、キューおよびセレクタの動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成し、作成したグラフィックデータを用いてバッファ、キューおよびセレクタの動的状況を表示することとしたので、性能低下を引き起こす現象が発生している個所とその現象が発生する原因のハードウェア設計者による把握を容易にすることができる。
【００１２】
【発明を実施するための最良の形態】
以下、添付図面を参照して、この発明に係る性能シミュレーション装置、性能シミュレーションプログラムおよび性能シミュレーション方法の好適な実施の形態を詳細に説明する。
【００１３】
まず、本実施の形態に係る性能シミュレーション装置による動的データ採取の概念について説明する。第１図は、本実施の形態に係る性能シミュレーション装置による動的データ採取の概念を説明するための説明図である。
【００１４】
同図は、本実施の形態に係る性能シミュレーション装置によってシミュレートされるコンピュータの一例を示しており、このコンピュータは、命令ユニット１０と、演算ユニット２０と、1次キャッシュユニット３０と、２次キャッシュユニット４０とを有する。また、２次キャッシュユニット４０は、２次キャッシュ４１と外部アクセスユニット４２とを有する。
【００１５】
従来の性能シミュレーション装置は、これらのユニットが有するバッファ、キューおよびセレクタの動的状況を示すデータ、すなわち動的データを採取し、採取した動的データを局所的な情報として表示していた。たとえば、２次キャッシュ４１については、アクセス数、ヒット回数、リクエスト種別などの動的データを採取し、２次キャッシュ４１とメモリ間のメモリシステムについては、外部アクセスユニット４２にあるバッファの送出待ち数やデータ待ち数などの動的データを採取していた。
【００１６】
一方、本実施の形態に係る性能シミュレーション装置は、各ユニットが有するバッファ、キューおよびセレクタの動的データを採取し、演算部からメモリまでのバッファ、キューおよびセレクタの動的状況を同一時間軸に揃えてグラフィック表示する。また、本実施の形態に係る性能シミュレーション装置は、各ユニットが有するバッファ、キューおよびセレクタの動的データを採取する場合に、コンピュータ全体の動作を示す情報を採取した動的データに付加する。そして、採取した動的データを表示する場合に、コンピュータ全体の動作と関連付けてグラフィック表示できるようにする。
【００１７】
たとえば、２次キャッシュ４１のアクセス数やヒット回数などの動的データについては、各コアの命令ユニット１０および演算ユニット２０を識別するためにコアＩＤを設け、コアＩＤやストランドＩＤを採取するデータに付加することによって、２次キャッシュ４１へのアクセス要求元であるコアやストランド別にこれらの動的データをグラフィック表示できるようにする。
【００１８】
また、２次キャッシュ４１とメモリ間のメモリシステムについても、外部アクセスユニット４２にあるバッファの送出待ち数やデータ待ち数などの動的データに関するデータ採取時にコアＩＤやストランドＩＤを付加し、メモリアクセスを要求したコアやストランド別にこれらの動的データをグラフィック表示できるようにする。
【００１９】
このように、本実施の形態に係る性能シミュレーション装置は、シミュレーションを実行して採取したバッファ、キューおよびセレクタの動的データを、局所的な情報として表示するのではなく、演算ユニット２０からメモリまでのバッファ、キューおよびセレクタをならべてグラフィック表示することによって、ハードウェア設計者が相互の関連を把握することを容易にしている。
【００２０】
また、本実施の形態に係る性能シミュレーション装置は、各ユニットが有するバッファ、キューおよびセレクタの動的データを採取する際に、コアＩＤやストランドＩＤを付加することによって、バッファ、キューおよびセレクタの動的状況を表示する場合に、コアやストランドごとに表示することを可能とし、ハードウェア設計者がバッファ、キューおよびセレクタの動的状況をコンピュータ全体の動作と関連付けて把握することを容易にしている。
【００２１】
次に、本実施の形態に係る性能シミュレーション装置の構成について説明する。第２図は、本実施の形態に係る性能シミュレーション装置の構成を示す機能ブロック図である。同図に示すように、この性能シミュレーション装置２００は、シミュレーションデータ入力部２１０と、シミュレーション部２２０と、グラフィック表示データ作成部２３０と、グラフィック表示部２４０と、シミュレーションデータ記憶部２５０と、採取データ記憶部２６０と、グラフィック表示データ記憶部２７０と、制御部２８０とを有する。
【００２２】
シミュレーションデータ入力部２１０は、実行履歴データおよびシミュレーションパラメータを入力する処理部である。ここで、実行履歴データは、シミュレーションの対象であるコンピュータで実行されるプログラムに相当するものであり、実際のハードウェアでプログラムを実行したときの履歴データである。シミュレーションの対象であるコンピュータで実行されるプログラムに相当するものとしては、実行履歴データ以外に、プログラムの傾向を継承するシミュレーション用のデータ、実行履歴データを加工したものまたは実際のハードウェアが入力するプログラムを用いることもできる。
【００２３】
また、シミュレーションパラメータは、シミュレーションを実行する仕様の選択や、シミュレーション結果のグラフィク表示形態の指定などをおこなうためのものである。第３図は、グラフィック表示についてのシミュレーションパラメータの一例を示す図である。同図に示すように、このシミュレーションパラメータを用いて、表示するバッファ、キューおよびセレクタの種別、グラフの形態、グラフ内での表示の詳細ならびに表示時間を指定することができる。
【００２４】
シミュレーション部２２０は、シミュレーションデータ入力部２１０が入力したシミュレーションパラメータを用いてシミュレーションを実行し、バッファ、キューおよびセレクタの動的状況を示すデータを採取する処理部である。また、このシミュレーション部２２０は、バッファ、キューおよびセレクタの動的状況を示すデータを採取する場合に、バッファ、キューおよびセレクタへのアクセスを要求したジョブに関する情報、すなわちコアＩＤとストランドＩＤを採取したデータに付加する。
【００２５】
グラフィック表示データ作成部２３０は、シミュレーション部２２０が採取したバッファ、キューおよびセレクタの動的状況を示すデータに基づいて、シミュレーションパラメータで指定された形態のグラフィック表示データを作成する処理部である。このとき、このグラフィック表示データ作成部２３０は、演算部からメモリまでのバッファ、キューおよびセレクタの動的状況を同一時間軸上に揃えてグラフィック表示できるように表示データを作成する。また、このグラフィック表示データ作成部２３０は、バッファ、キューおよびセレクタへのアクセスを要求したコアやストランドごとにグラフィック表示できるように表示データを作成する。
【００２６】
このように、このグラフィック表示データ作成部２３０が、演算部からメモリまでのバッファ、キューおよびセレクタの動的状況をならべてグラフィック表示するデータを作成することによって、ハードウェア設計者がハードウェア各要素の局所的な動的データを相互に関連付けて把握することを容易にすることができる。
【００２７】
また、シミュレーション部２２０が、バッファ、キューおよびセレクタの動的状況を示すデータを採取する場合に、バッファ、キューおよびセレクタへのアクセスを要求したコアおよびストランドに関する情報を付加し、グラフィック表示データ作成部２３０が、コアおよびストランドごとにグラフィック表示データを作成することによって、ハードウェア設計者は、ＣＭＰおよびマルチストランド構成のコンピュータの複雑な動作を容易に把握することができる。
【００２８】
グラフィック表示部２４０は、グラフィック表示データ作成部２３０が作成したグラフィック表示データを用いて、表示装置にバッファ、キューおよびセレクタの動的状況をグラフィック表示する処理部である。
【００２９】
シミュレーションデータ記憶部２５０は、シミュレーションデータ入力部２１０が入力したシミュレーションに必要なデータを記憶する記憶部であり、シミュレーション部２２０によって使用される。
【００３０】
採取データ記憶部２６０は、シミュレーション部２２０が採取したバッファ、キューおよびセレクタの動的状況を示すデータを記憶する記憶部であり、動的表示デー作成部２３０によって使用される。
【００３１】
グラフィック表示データ記憶部２７０は、動的表示デー作成部２３０が作成したグラフィック表示データを記憶する記憶部であり、このグラフィック表示データ記憶部２７０に記憶されたグラフィック表示データを用いてグラフィック表示部２４０が表示装置にグラフィック表示をおこなう。
【００３２】
制御部２８０は、性能シミュレーション装置２００全体の制御をおこなう処理部であり、具体的には、機能部間の制御の移動や機能部と記憶部の間のデータの受け渡しなどをおこなうことによって、性能シミュレーション装置２００を一つの装置として機能させる。
【００３３】
次に、本実施の形態に係る性能シミュレーション装置２００の処理手順について説明する。第４図は、本実施の形態に係る性能シミュレーション装置２００の処理手順を示すフローチャ−トである。同図に示すように、この性能シミュレーション装置２００は、まずシミュレーションデータ入力部２１０がシミュレーションパラメータを入力する（ステップＳ４０１）。そして、入力したシミュレーションパラメータの指定に基づいて、シミュレーション部２２０が実行履歴データを用いてシミュレーションを実行し、バッファ、キューおよびセレクタの動的状況を示すデータを採取する（ステップＳ４０２）。ここで、シミュレーション部２２０は、バッファ、キューおよびセレクタにアクセスを要求したコアおよびストランドのＩＤを付加してデータを採取する。
【００３４】
そして、グラフィック表示データ作成部２３０が、採取したデータに基づいてグラフィック表示データを作成する（ステップＳ４０３）。このとき、グラフィック表示データ作成部２３０は、演算部からメモリまでのバッファ、キューおよびセレクタの動的状況を同一時間軸上に揃えてグラフィック表示するように表示データを作成する。また、バッファ、キューおよびセレクタの動的状況をコアおよびストランドごとに表示するなど、バッファ、キューおよびセレクタの動的状況がコンピュータ全体の動作と関連付けて表示できるようにグラフィック表示データを作成する。そして、グラフィック表示部２４０が、作成したグラフィック表示データを用いて表示装置にグラフィック表示をおこなう（ステップＳ４０４）。
【００３５】
このように、グラフィック表示データ作成部２３０が、演算部からメモリまでのバッファ、キューおよびセレクタの動的状況を同一時間軸上に揃え、コンピュータ全体の動作と関連付けて表示するようにグラフィック表示データを作成し、グラフィック表示部２４０が、作成されたグラフィック表示データを用いて表示装置にグラフィック表示をおこなうことによって、ハードウェア設計者がハードウェア各要素の局所的な動的データを相互に関連付けて把握することを容易にすることができる。
【００３６】
次に、第２図に示したグラフィック表示データ作成部２３０の処理手順の詳細について説明する。第５図は、第２図に示したグラフィック表示データ作成部２３０の処理手順を示すフローチャートである。なお、このグラフィック表示データ作成部２３０の処理は、第４図に示したステップＳ４０３のグラフィック表示データ作成処理に対応する。
【００３７】
同図に示すように、このグラフィック表示データ作成部２３０は、まず、１つのＣＰＵを選択し（ステップＳ５０１）、選択したＣＰＵについて、ＩＰＣ（instruction per cycle）のグラフィック表示データを作成する（ステップＳ５０２）。そして、グラフィック表示するバッファ、キューまたはセレクタを一つ選択し（ステップＳ５０３）、ＣＰＵがマルチコア構成やマルチストランド構成であるか否かを調べる（ステップＳ５０４）。
【００３８】
その結果、ＣＰＵがマルチコア構成でもマルチストランド構成でもない場合には、選択したバッファ、キューまたはセレクタのグラフィック表示データを作成する（ステップＳ５０５）。なお、グラフィック表示の形態は、シミュレーションパラメータにより指定される。
【００３９】
一方、ＣＰＵがマルチコア構成やマルチストランド構成である場合には、選択したバッファ、キューまたはセレクタの動的状況がコアやストランドごとにわかる表示形態でグラフィック表示データを作成する（ステップＳ５０６）。ここで、動的状況がコアやストランドごとにわかる表示形態としては、コアやストランドごとに別のグラフとする形態や色を変える形態などがある。
【００４０】
そして、シミュレーションパラメータで指定された全てのバッファ、キューおよびセレクタについてグラフィック表示データを作成したか否かを調べ（ステップＳ５０７）、作成していない場合には、ステップＳ５０３に戻って他のバッファ、キューまたはセレクタのグラフィック表示データを作成する。一方、シミュレーションパラメータで指定された全てのバッファ、キューおよびセレクタについてグラフィック表示データを作成した場合には、全てのＣＰＵについてグラフィック表示データを作成したか否かを調べ（ステップＳ５０８）、作成していない場合には、ステップＳ５０１に戻って他のＣＰＵのグラフィック表示データを作成する。
【００４１】
これに対して、全てのＣＰＵについてグラフィック表示データを作成した場合には、全てのＣＰＵに共通するバッファ、キューおよびセレクタのグラフィック表示データを作成し（ステップＳ５０９）、処理を終了する。ここで、全てのＣＰＵに共通するバッファ、キューおよびセレクタのグラフィック表示データは、ＣＰＵごとにそれらの動的状況がわかる形態で作成する。
【００４２】
このように、このグラフィック表示データ作成部２３０が、マルチコア構成やマルチストランド構成である場合に、バッファ、キューおよびセレクタの動的状況がコアやストランドごとにわかる表示形態でグラフィック表示データを作成することによって、性能シミュレーション装置２００は、ＣＭＰやマルチストランド構成などのメモリアクセスが複雑なコンピュータの動作把握を容易にするグラフィック表示をおこなうことができる。
【００４３】
次に、本実施の形態に係る性能シミュレーション装置２００が表示するグラフィック表示について説明する。第６図は、本実施の形態に係る性能シミュレーション装置２００が表示するグラフィック表示の一例を示す図である。同図は、２つのＣＰＵのそれぞれが２つのコアを有するＣＭＰ構成のコンピュータをシミュレートして演算部からメモリまでのバッファ、キューおよびセレクタの動的状況を同一時間軸上に揃えて表示した例を示している。
【００４４】
同図に示すように、演算部からメモリまでのバッファ、キューおよびセレクタの動的状況として、演算部バッファのBUSY状態、1次キャッシュミスおよび１次・２次キャッシュ間バッファエントリが各ＣＰＵのコアごとに表示されている。また、ＣＰＵ間に共通するバッファの動的状況として、２次キャッシュミスおよび２次キャッシュ・メモリ間リクエストバッファエントリが表示されており、２次キャッシュ・メモリ間リクエストバッファエントリについては、ＣＰＵごとに表示されている。
【００４５】
このように、演算部からメモリまでのバッファ、キューおよびセレクタの動的状況を同一時間軸上に揃えてグラフィック表示することにより、ハードウェア設計者が、コンピュータ全体の動作と関連付けて各バッファ、キューおよびセレクタの動的状況を直感的に把握することが可能となり、ハードウェアの設計を効率良くおこなうことができる。また、各バッファ、キューおよびセレクタの動的状況を、ＣＰＵおよびコアごとにグラフィック表示することにより、ハードウェア設計者は、ＣＭＰ構成のコンピュータシステムの設計を効率よくおこなうことができる。
【００４６】
第７図は、本実施の形態に係る性能シミュレーション装置２００が表示するグラフィック表示の他の例を示す図である。同図は、複数のＣＰＵのうちの１つが２つのストランドを実行するコンピュータをシミュレートして各バッファ、キューおよびセレクタの動的状況を表示した例を示している。
【００４７】
同図に示すように、命令バッファや演算部バッファの動的状況がストランドごとにグラフィック表示されており、ハードウェア設計者は、マルチストランド構成のコンピュータシステムを効率よく設計することができる。
【００４８】
上述したように、本実施の形態では、シミュレーション部２２０がバッファ、キューおよびセレクタの動的状況を示すデータを採取し、グラフィック表示データ作成部２３０が演算部からメモリまでのバッファ、キューおよびセレクタの動的状況を同一時間軸上に揃えてグラフィック表示するデータを作成し、作成したデータを用いてグラフィック表示部２４０が表示装置にグラフィック表示することとしたので、ハードウェア設計者が、コンピュータ全体の動作と関連付けて各バッファ、キューおよびセレクタの動的状況を直感的に把握し、性能低下を引き起こす現象が発生している個所とその現象が発生する原因を把握することが容易となる。
【００４９】
また、本実施の形態では、シミュレーション部２２０がバッファ、キューおよびセレクタの動的状況を示すデータにコアおよびストランド情報を付加し、グラフィック表示データ作成部２３０がバッファ、キューおよびセレクタの動的状況をコアおよびストランドごとに識別できる形態でグラフィック表示するデータを作成し、作成したデータを用いてグラフィック表示部２４０が表示装置にグラフィック表示することとしたので、ハードウェア設計者が、ＣＭＰやマルチストランド構成などのメモリアクセスが複雑なコンピュータシステムを効率よく設計することができる。
【００５０】
なお、図示した性能シミュレーション装置２００の各構成要素は機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。すなわち、性能シミュレーション装置２００の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷状況や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。たとえば、表示装置にグラフィック表示するグラフィック表示部２４０は、必ずしも性能シミュレーション装置２００内に設ける必要はなく、ネットワークを介して接続される別の装置に表示装置とともに設けることもできる。
【００５１】
また、シミュレーションを実行した結果を直ちに表示することも要しない。たとえば、グラフィック表示データ作成部２３０が作成したグラフィック表示データを磁気ディスクなどに記憶してシミュレーション処理を終了し、シミュレーション結果のグラフィック表示だけを別の時点でおこなうこともできる。
【００５２】
また、本実施の形態では、性能シミュレーション装置について説明したが、この性能シミュレーション装置が有する構成をソフトウェアによって実現することで、同様の機能を有する性能シミュレーションプログラムを得ることができる。そこで、この性能シミュレーションプログラムを実行するコンピュータシステムについて説明する。
【００５３】
第８図は、本実施の形態に係る性能シミュレーションプログラムを実行するコンピュータシステムを示す図である。同図に示すように、このコンピュータシステム１００は、本体部１０１と、本体部１０１からの指示により表示画面１０２ａに画像等の情報を表示する表示装置１０２と、このコンピュータシステム１００に種々の情報を入力するためのキーボード１０３と、表示装置１０２の表示画面１０２ａ上の任意の位置を指定するマウス１０４と、ローカルエリアネットワーク（ＬＡＮ）１０６または広域エリアネットワーク（ＷＡＮ）に接続するＬＡＮインタフェースと、インターネットなどの公衆回線１０７に接続するモデム１０５とを有する。ここで、ＬＡＮ１０６は、他のコンピュータシステム（ＰＣ）１１１、サーバ１１２、プリンタ１１３などとコンピュータシステム１００とを接続している。
【００５４】
また、第９図は、第８図に示した本体部１０１の構成を示す機能ブロック図である。同図に示すように、この本体部１０１は、ＣＰＵ１２１と、ＲＡＭ１２２と、ＲＯＭ１２３と、ハードディスクドライブ（ＨＤＤ）１２４と、ＣＤ−ＲＯＭドライブ１２５と、ＦＤドライブ１２６と、Ｉ／Ｏインタフェース１２７と、ＬＡＮインタフェース１２８とを有する。
【００５５】
このコンピュータシステム１００において性能シミュレーションプログラムを実行する場合、フロッピィディスク（ＦＤ）１０８、ＣＤ−ＲＯＭ１０９、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの可搬型記憶媒体、ＬＡＮインタフェース１２８を介して接続されたサーバ１１２または他のコンピュータシステム（ＰＣ）１１１のデータベース、あるいは、公衆回線１０７を介して接続された他のコンピュータシステムのデータベースに記憶された性能シミュレーションプログラムをコンピュータシステム１００にインストールする。そして、インストールされた性能シミュレーションプログラムは、ＨＤＤ１２４に記憶され、ＲＡＭ１２２、ＲＯＭ１２３などを利用してＣＰＵ１２１により実行される。
【００５６】
以上説明したように、本発明によれば、演算部がメモリにアクセスを要求したメモリアクセスデータの移動経路に沿って備えられたバッファ、キューおよびセレクタの動的状況を相互に関連付けてグラフィック表示するグラフィックデータを作成し、作成したグラフィックデータを用いてバッファ、キューおよびセレクタの動的状況を表示するよう構成したので、性能低下を引き起こす現象が発生している個所とその現象が発生する原因のハードウェア設計者による把握を容易にすることができるという効果を奏する。
【００５７】
【産業上の利用可能性】
以上のように、本発明に係る性能シミュレーション装置、性能シミュレーションプログラムおよび性能シミュレーション方法は、コンピュータハードウェアの性能評価に基づいて設計をおこなう場合に使用するツール、特に、ＣＭＰやマルチストランド構成などメモリアクセスが複雑なコンピュータハードウェアの設計をおこなう場合に使用するツールとして適している。
【図面の簡単な説明】
【図１】
第１図は、本実施の形態に係る性能シミュレーション装置による動的データ採取の概念を説明するための説明図である。
【図２】
第２図は、本実施の形態に係る性能シミュレーション装置の構成を示す機能ブロック図である。
【図３】
第３図は、グラフィック表示についてのシミュレーションパラメータの一例を示す図である。
【図４】
第４図は、本実施の形態に係る性能シミュレーション装置の処理手順を示すフローチャ−トである。
【図５】
第５図は、第２図に示したグラフィック表示データ作成部の処理手順を示すフローチャートである。
【図６】
第６図は、本実施の形態に係る性能シミュレーション装置が表示するグラフィック表示の一例を示す図である。
【図７】
第７図は、本実施の形態に係る性能シミュレーション装置が表示するグラフィック表示の他の例を示す図である。
【図８】
第８図は、本実施の形態に係る性能シミュレーションプログラムを実行するコンピュータシステムを示す図である。
【図９】
第９図は、第８図に示した本体部の構成を示す機能ブロック図である。
【国際調査報告】
2004055672.tif 000012
2004055672.tif 000013
2004055672.tif 000014
2004055672.tif 000015