JPH10275099A - データ処理システムにおけるパフォーマンス監視 - Google Patents

データ処理システムにおけるパフォーマンス監視

Info

Publication number
JPH10275099A
JPH10275099A JP10049127A JP4912798A JPH10275099A JP H10275099 A JPH10275099 A JP H10275099A JP 10049127 A JP10049127 A JP 10049127A JP 4912798 A JP4912798 A JP 4912798A JP H10275099 A JPH10275099 A JP H10275099A
Authority
JP
Japan
Prior art keywords
performance
processor
processing system
data processing
performance monitor
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.)
Granted
Application number
JP10049127A
Other languages
English (en)
Other versions
JP3113855B2 (ja
Inventor
Elliott Levin Frank
フランク・エリオット・レヴィン
Philip Ross Charles
チャールズ・フィリップ・ロス
Hugh Welbone Edward
エドワード・ヒュー・ウェルボン
Chris Randolph Jeck
ジェック・クリス・ランドルフ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH10275099A publication Critical patent/JPH10275099A/ja
Application granted granted Critical
Publication of JP3113855B2 publication Critical patent/JP3113855B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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 for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

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)
  • Advance Control (AREA)
  • Hardware Redundancy (AREA)

Abstract

(57)【要約】 【課題】 システム・パフォーマンスの分析の改善に対
応することである。 【解決手段】 プロセッサまたはパフォーマンス・モニ
タを含む他の装置の内部だけでなく、データ処理システ
ム全体の内部で行われる動作についてパフォーマンス分
析を行えるように、データ処理システム全体にパフォー
マンス監視機能を拡張する。したがって、データ処理シ
ステム内の様々な装置およびプロセッサ内の様々なパフ
ォーマンス・モニタ間でパフォーマンス・モニタ関連信
号を通信するための備えが用意されている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にデータ処理
システムに関し、具体的にはデータ処理システムにおけ
るパフォーマンス監視に関する。
【0002】
【従来の技術】プロセッサを使用する典型的なコンピュ
ータ・システムでは、システム開発者はより効率のよい
システム設計のために実行ソフトウェアを最適化する必
要がある。一般に、システム効率を決定するために、プ
ログラムからメモリへのアクセス・パターンやシステム
のメモリ階層とのやりとりの研究が行われている。メモ
リ階層の挙動を理解すると、タスクをスケジューリング
するかまたは区分すると同時にシステムを最適化するた
めにデータを分配し構築するアルゴリズムの開発に役に
立つ。
【0003】システム内のソフトウェアの使い方を最適
化する場合、パフォーマンス監視を使用することが多
い。一般にパフォーマンス・モニタは、特定の時点での
マシンの状態を決定することによりシステムのデバッグ
および分析を支援するよう指定の特性を監視するために
プロセッサに取り入れられた機能であると見なされてい
る。パフォーマンス・モニタは、プロセッサの命令実行
および記憶制御の使用状況に関する情報を生成する場合
が多い。たとえば、パフォーマンス・モニタを使用する
と、処理システム内の事象間に経過した時間の量に関す
る情報が得られる。通常得られる情報によって、システ
ム設計者は、所与のシステムのパフォーマンスを強化し
たり、新しいシステムの設計の改良点を開発する方向に
導かれる。
【0004】先行技術のパフォーマンス監視の手法では
外部テスト機器の使用を含む。残念ながら、この手法は
完全に満足のいくものではない。テスト機器は外部プロ
セッサ・インタフェースに取り付けることができるが、
このような機器はプロセッサの内部動作の特性を判定す
ることができない。また、外部プロセッサ・インタフェ
ースに取り付けられたテスト機器は、プロセッサ内で実
行される命令を区別することができない。プロセッサの
内部構成要素を調べるように設計されたテスト機器は、
通常、非常に高価であると考えられている。というの
は、プロセッサ内でパイプライン、命令事前取出し、デ
ータ・バッファ、複数レベルのメモリ階層を使用する複
雑なプロセッサ・システムでは、多くのバスおよび調査
点を監視する際に困難を伴うからである。パフォーマン
ス・データを提供するための一般的な手法は、ソフトウ
ェアを変更または計装することである。しかし、この手
法は、実行経路にかなり影響を及ぼし、得られる結果を
無効にする恐れがある。その結果、ソフトウェアでアク
セス可能なカウンタがプロセッサに取り入れられてい
る。しかし、多くのソフトウェアでアクセス可能なカウ
ンタは、それが提供する情報の細分性が制限されてい
る。
【0005】さらに、従来のパフォーマンス・モニタ
は、通常、割込みが通知されるまでマシン状態データを
捕捉することができないので、プロセッサによって割込
みに対応できるようになったときに存在する所与のマシ
ン条件の方向に結果が偏る可能性がある。また、割込み
ハンドラは、通常通り、一度に複数の命令が進行中の場
合に処理システム内の一部の命令実行を取り消すことが
できる。さらに、処理システム内には多くの相互依存関
係が存在するので、意味のあるデータとプロファイルを
得るためには、すべてのシステム要素間で同時に処理シ
ステムの状態を入手しなければならない。したがって、
サンプル率の制御によって処理システムが適切な状態を
捕捉できるようになるので、この制御は重要なものであ
る。また、監視中のサンプルに対して前のサンプルが及
ぼす影響はごくわずかであり、パフォーマンス・モニタ
がプロセッサのパフォーマンスに影響しないことを保証
できることも重要である。したがって、潜在的な改良分
野を効率よく非侵略的に識別するような、処理システム
のパフォーマンスを効果的に監視するためのシステムお
よび方法の必要性が存在する。より効果的なパフォーマ
ンス監視システムは上記の相互参照出願に開示されてい
る。
【0006】プロセッサの計装化は、現在では一般的に
なっている。しかし、プロセッサにとって既知の情報を
提供しても完全なシステム分析に対応できない。(プロ
セッサだけではなく)システム全体のパフォーマンスを
分析するためには、システム構成要素に関する情報を提
供することが重要である。システム構成要素とプロセッ
サとの間で情報を提供するための典型的な手法は、ピン
に変換される信号を介する方法である。この場合、ピン
の数が増えれば増えるほど、プロセッサのコストが増大
する。このため、個々の構成要素がカウント情報をプロ
セッサに提供するよう要求することは通常、禁止されて
おり、プロセッサはそのプロセッサを動作させているア
プリケーション(複数も可)に情報を提供することがで
きる。
【0007】
【発明が解決しようとする課題】低コストで構築したも
のを含む、広範囲のシステムに関するシステム・パフォ
ーマンスの分析を改善するために、システム構成要素に
関する情報を制御し捕捉するための費用効果の高い手段
を提供する。
【0008】
【課題を解決するための手段】本発明は、プロセッサ
と、プロセッサに結合された周辺装置とを含み、周辺装
置のうちの1つまたは複数がパフォーマンス監視機能を
備えているデータ処理システムを提供することにより、
上記の必要性に対処するものである。さらに、互いに通
信するために様々なデータ処理システム装置内にパフォ
ーマンス・モニタの機能を設け、具体的にはプロセッサ
上(またはプログラム可能回路内)に常駐するパフォー
マンス・モニタを設ける。その結果、プロセッサの境界
を越えてデータ処理システム全体までシステム・パフォ
ーマンスの分析を拡張することができる。その結果、デ
ータ処理システムの設計者は、データ処理システムの様
々な動作局面を分析するために、装置内の様々なパフォ
ーマンス・モニタで実現すべき様々な分析を生み出すこ
とができる。
【0009】本発明の代替実施例では、プロセッサと様
々な周辺装置との間で送信される信号をマスクすること
ができる。
【0010】本発明の他の代替実施例では、システム内
の様々なパフォーマンス・モニタをプログラミングする
ために共通アーキテクチャを使用する。
【0011】上記の説明では、以下に示す本発明の詳細
な説明をより十分に理解できるようにするために、本発
明の特徴および技術上の利点についてかなり大まかに概
要を示している。本発明の請求の範囲の主題を形成する
本発明の他の特徴および利点について、以下に説明す
る。
【0012】
【発明の実施の形態】以下の説明では、本発明を徹底的
に理解するために、具体的なワードまたはバイト長など
の具体的な詳細例を数多く示す。しかし、このような具
体的な詳細例がなくても本発明を実施できることは、当
業者には明らかであろう。他の例では、不必要なほど詳
細に示して本発明を不明確にしないようにするため、周
知の回路をブロック図形式で示している。ほとんどの場
合、本発明を完全に理解するためにこのような詳細例が
不要であり、当業者の技能の範囲内である限り、タイミ
ング上の考慮事項などに関する詳細は省略されている。
【0013】次に添付図面を参照するが、図示の諸要素
は必ずしも一定の縮尺で示されておらず、複数の図面を
通して同一または同様の要素は同一の参照番号で示され
ている。
【0014】図1は、一実施例により情報を処理するた
めのプロセッサ10システムのブロック図である。プロ
セッサ10は、IBMから販売されているPowerP
TMプロセッサなどの単一集積回路スーパースカラ・マ
イクロプロセッサである。したがって、以下に詳述する
ように、プロセッサ10は様々なユニット、レジスタ、
バッファ、メモリ、その他のセクションを含むが、その
いずれも集積回路で形成されている。プロセッサ10は
縮小命令セット・コンピューティング(「RISC」)
技法により動作する。図1に示すように、システム・バ
ス11はプロセッサ10のバス・インタフェース・ユニ
ット(「BIU」)12に接続されている。BIU12
は、プロセッサ10とシステム・バス11との間の情報
の転送を制御する。
【0015】BIU12は、プロセッサ10の命令キャ
ッシュ14およびデータ・キャッシュ16に接続されて
いる。命令キャッシュ14はシーケンサ・ユニット18
に命令を出力する。命令キャッシュ14からのこのよう
な命令に応答して、シーケンサ・ユニット18はプロセ
ッサ10の他の実行回路に選択的に命令を出力する。
【0016】ディスパッチ・ユニット46、フェッチ・
ユニット47、完了ユニット48という実行ユニットを
含むシーケンサ・ユニット18に加え、プロセッサ10
の実行回路は、複数の実行ユニット、すなわち、分岐ユ
ニット20、固定小数点ユニットA(「FXUA」)2
2、固定小数点ユニットB(「FXUB」)24、複合
固定小数点ユニット(「CFXU」)26、ロード/ス
トア・ユニット(「LSU」)28、浮動小数点ユニッ
ト(「FPU」)30を含む。FXUA22、FXUB
24、CFXU26、LSU28は、汎用アーキテクチ
ャ・レジスタ(「GPR」)32と固定小数点リネーム
・バッファ34からそれぞれのソース・オペランド情報
を入力する。しかも、FXUA22とFXUB24は、
キャリー・ビット(「CA」)レジスタ42から「キャ
リー・ビット」を入力する。
【0017】FXUA22、FXUB24、CFXU2
6、LSU28は、固定小数点リネーム・バッファ34
内の指定の項目に格納するためにそれぞれの演算の結果
(宛先オペランド情報)を出力する。また、CFXU2
6は、専用レジスタ(「SPR」)40との間でソース
・オペランド情報と宛先オペランド情報の入出力も行
う。
【0018】FPU30は、浮動小数点アーキテクチャ
・レジスタ(「FPR」)36と浮動小数点リネーム・
バッファ38からそのソース・オペランド情報を入力す
る。また、FPU30は、浮動小数点リネーム・バッフ
ァ38内の指定の項目に格納するためにその演算の結果
(宛先オペランド情報)を出力する。
【0019】ロード命令に応答して、LSU28は、デ
ータ・キャッシュ16から情報を入力し、このような情
報をリネーム・バッファ34および38のうちの指定の
バッファにコピーする。このような情報がデータ・キャ
ッシュ16に格納されていない場合、データ・キャッシ
ュ16はシステム・バス11に接続されたシステム・メ
モリ39から(BIU12およびシステム・バス11を
介して)このような情報を入力する。さらに、データ・
キャッシュ16は、システム・バス11に接続されたシ
ステム・メモリ39にデータ・キャッシュ16からの情
報を(BIU12およびシステム・バス11を介して)
出力することができる。ストア命令に応答して、LSU
28は、GPR32およびFPR36のうちの指定のレ
ジスタから情報を入力し、このような情報をデータ・キ
ャッシュ16にコピーする。
【0020】シーケンサ・ユニット18は、GPR32
およびFPR36との間で情報の入出力を行う。分岐ユ
ニット20は、シーケンサ・ユニット18から、プロセ
ッサ10の現在の状態を示す信号と命令を入力する。こ
のような命令および信号に応答して、分岐ユニット20
は、プロセッサ10による実行のために一連の命令を格
納する適当なメモリ・アドレスを示す信号を(シーケン
サ・ユニット18に)出力する。分岐ユニット20から
のこのような信号に応答して、シーケンサ・ユニット1
8は、命令キャッシュ14からの指示された一連の命令
を入力する。一連の命令のうちの1つまたは複数が命令
キャッシュ14に格納されていない場合、命令キャッシ
ュ14は、システム・バス11に接続されたシステム・
メモリ39から(BIU12およびシステム・バス11
を介して)このような命令を入力する。
【0021】命令キャッシュ14から入力した命令に応
答して、シーケンサ・ユニット18は、ディスパッチ・
ユニット46を介して実行ユニット20、22、24、
26、28、30のうちの指定のユニットに命令を選択
的にディスパッチする。各実行ユニットは、特定のクラ
スの命令のうちの1つまたは複数の命令を実行する。た
とえば、FXUA22とFXUB24は、加算、減算、
AND、OR、XORなど、ソース・オペランドに対し
て第1のクラスの固定小数点数学演算を実行する。CF
XU26は、固定小数点乗算および除算など、ソース・
オペランドに対して第2のクラスの固定小数点演算を実
行する。FPU30は、浮動小数点乗算および除算な
ど、ソース・オペランドに対して浮動小数点演算を実行
する。
【0022】リネーム・バッファ34のうちの指定のバ
ッファに情報が格納されるので、このような情報は、指
定のリネーム・バッファが割り振られた命令が指定する
記憶位置(たとえば、GPR32またはCAレジスタ4
2のうちの1つ)に関連付けられる。リネーム・バッフ
ァ34のうちの指定のバッファに格納された情報は、シ
ーケンサ・ユニット18からの信号に応答して、その関
連GPR32(またはCAレジスタ42)にコピーされ
る。シーケンサ・ユニット18は、完了ユニット48を
介して情報を生成した命令の「完了」に応答して、リネ
ーム・バッファ34のうちの指定のバッファに格納され
た情報のこのようなコピーを指示する。このようなコピ
ーは「ライトバック」という。
【0023】リネーム・バッファ38のうちの指定のバ
ッファに情報が格納されるので、このような情報はFP
R36の1つに関連付けられる。リネーム・バッファ3
8のうちの指定のバッファに格納された情報は、シーケ
ンサ・ユニット18からの信号に応答して、その関連F
PR36にコピーされる。シーケンサ・ユニット18
は、情報を生成した命令の「完了」に応答して、リネー
ム・バッファ38のうちの指定のバッファに格納された
情報のこのようなコピーを指示する。
【0024】プロセッサ10は、実行ユニット20、2
2、24、26、28、30のうちの様々なユニットで
同時に複数の命令を処理することにより、ハイ・パフォ
ーマンスを達成する。したがって、各命令は一連の段階
として処理され、各段階は他の命令の各種ステージと並
行して実行可能である。このような技法は「スーパース
カラ・パイプライン処理」という。1つの命令は、通
常、6つの段階、すなわち、フェッチ、デコード、ディ
スパッチ、実行、完了、ライトバックとして処理され
る。
【0025】フェッチ段階では、シーケンサ・ユニット
18(フェッチ・ユニット47)は、分岐ユニット20
およびシーケンサ・ユニット18に関連して上記の説明
で詳述した一連の命令を格納する1つまたは複数のメモ
リ・アドレスから1つまたは複数の命令を(命令キャッ
シュ14から)選択的に入力する。
【0026】デコード段階では、シーケンサ・ユニット
18は、最高4つのフェッチ命令をデコードする。
【0027】ディスパッチ段階では、シーケンサ・ユニ
ット18は、ディスパッチ・ユニット46により各ディ
スパッチ済み命令の結果(宛先オペランド情報)のため
にリネーム・バッファ項目を予約した後、(デコード段
階でのデコードに応答して)実行ユニット20、22、
24、26、28、30のうちの指定のユニットに最高
4つのデコード済み命令を選択的にディスパッチする。
ディスパッチ段階では、ディスパッチ済み命令のための
指定の実行ユニットにオペランド情報が供給される。プ
ロセッサ10はそのプログラム済み順序の通りに命令を
ディスパッチする。
【0028】実行段階では、実行ユニットがそれぞれの
ディスパッチ済み命令を実行し、上記の説明で詳述した
ようにリネーム・バッファ34およびリネーム・バッフ
ァ38の指定の項目に格納するためにそれぞれの演算の
結果(宛先オペランド情報)を出力する。このため、プ
ロセッサ10は、そのプログラム済み順序に対して順不
同に命令を実行することができる。
【0029】完了段階では、シーケンサ・ユニット18
は命令が「完了」したことを示す。プロセッサ10はそ
のプログラム済み順序の通りに命令を「完了」する。
【0030】ライトバック段階では、シーケンサ18
は、リネーム・バッファ34および38からGPR32
およびFPR36への情報のコピーをそれぞれ指示す
る。シーケンサ・ユニット18は、指定のリネーム・バ
ッファに格納された情報のこのようなコピーを指示す
る。同様に、特定の命令のライトバック段階でプロセッ
サ10は、その特定の命令に応答してそのアーキテクチ
ャ上の状態を更新する。プロセッサ10は、そのプログ
ラム済み順序の通りにそれぞれの命令の「ライトバッ
ク」段階を処理する。また、プロセッサ10は、指定の
状況で任意の命令の完了段階とライトバック段階を統合
するので有利である。
【0031】各命令が命令処理の各段階を完了するのに
1マシン・サイクルを要することが望ましいが、多くの
実施態様では、複数サイクルを必要とする命令がいくつ
かある(たとえば、CFXU26が実行する複合固定小
数点命令)。したがって、前の命令の完了に必要な時間
の変動に応答して、特定の命令の実行段階と完了段階と
の間に可変遅延が発生する可能性がある。
【0032】図2は、シーケンサ・ユニット18のブロ
ック図である。上記の説明で詳述したように、フェッチ
段階でシーケンサ・ユニット18は、命令キャッシュ1
4から最高4つの命令を選択的に入力し、このような命
令を命令バッファ70に格納する。デコード段階でデコ
ード論理回路72は、命令バッファ70からの最高4つ
のフェッチ命令を入力してデコードする。ディスパッチ
段階でディスパッチ論理回路74は、(デコード段階で
のデコードに応答して)実行ユニット20、22、2
4、26、28、30のうちの指定のユニットに最高4
つのデコード済み命令を選択的にディスパッチする。
【0033】図3は、シーケンサ・ユニット18のリオ
ーダ・バッファ76の概念図である。図3に示すよう
に、リオーダ・バッファ76は、それぞれバッファ番号
0〜15というラベルが付いた16個の項目を有する。
各項目には5つの基本フィールド、すなわち、「命令タ
イプ」フィールドと、「GPR宛先数」フィールドと、
「FPR宛先数」フィールドと、「終了」フィールド
と、「例外」フィールドがある。
【0034】図2も参照すると、ディスパッチ論理回路
74は実行ユニットに命令をディスパッチするので、シ
ーケンサ・ユニット18はディスパッチ済み命令をリオ
ーダ・バッファ76内の関連項目に割り当てる。シーケ
ンサ・ユニット18は、項目0を割り当て、次に項目1
〜15を順に割り当て、もう一度項目0を割り当てるよ
うに、先入れ先出し方式かつ循環方式でリオーダ・バッ
ファ76内の項目を割り当てる(または「関連付け
る」)。ディスパッチ済み命令はリオーダ・バッファ7
6内の関連項目に割り当てられるので、ディスパッチ論
理回路74は、リオーダ・バッファ76内の関連項目の
様々なフィールドおよびサブフィールドに格納するため
にディスパッチ済み命令に関する情報を出力する。
【0035】たとえば、図3の項目1でリオーダ・バッ
ファ76は、その命令がFXUA22にディスパッチさ
れることを示している。さらに項目1は、ディスパッチ
済み命令が1つのGPR宛先レジスタを有し(「GPR
宛先数」=1になる)、0個のFPR宛先レジスタを有
し(「FPR宛先数」=0になる)、まだ終了されず
(「終了」=0になる)、まだ例外を引き起こしていな
い(「例外」=0になる)ことを示している。
【0036】実行ユニットがディスパッチ済み命令を実
行すると、その実行ユニットはリオーダ・バッファ76
内のその命令の関連項目を変更する。より具体的には、
ディスパッチ済み命令の実行終了に応答して、実行ユニ
ットはその項目の「終了」フィールドを変更する(「終
了」=1になる)。実行ユニットがディスパッチ済み命
令の実行中に例外を検出した場合、実行ユニットはその
項目の「例外」フィールドを変更する(「例外」=1に
なる)。
【0037】図3は、割振りポインタ73と完了ポイン
タ75を示している。プロセッサ10は、リオーダ・バ
ッファ76に対する読み書きを制御するためにこのよう
なポインタを管理する。
【0038】プロセッサ10は、リオーダ・バッファ項
目が特定の命令に割り振られた(または「関連付けられ
た」)かどうかを示すために割振りポインタ73を管理
する。図3に示すように、割振りポインタ73はリオー
ダ・バッファ項目3を指し示し、それにより、リオーダ
・バッファ項目3が命令の割振りに使用可能な次のリオ
ーダ・バッファ項目であることを示している。
【0039】また、プロセッサ10は、(特定の命令に
事前に割り振られたリオーダ・バッファ項目について)
特定の命令が以下の条件を満足するかどうかを示すため
に完了ポインタ75を管理する。 条件1−実行ユニット(その命令のディスパッチ先)が
その命令の実行を終了する。 条件2−その命令のいずれかの処理段階に関連して、例
外は一切検出されていない。 条件3−事前にディスパッチした命令が条件1と条件2
を満足する。
【0040】図3に示すように、完了ポインタ75がリ
オーダ・バッファ項目1を指し示し、それにより、リオ
ーダ・バッファ項目1が条件1、2、3を満足できる次
のリオーダ・バッファ項目であることを示している。し
たがって、「有効」リオーダ・バッファ項目は、完了バ
ッファ75が指し示すリオーダ・バッファ項目と、その
後続リオーダ・バッファ項目のうち割振りポインタ73
が指し示すリオーダ・バッファ項目より前にあるもので
あると定義することができる。
【0041】もう一度図2を参照すると、リオーダ・バ
ッファ76の項目は、シーケンサ・ユニット18の完了
論理回路80および例外論理回路82によって読み取ら
れる。リオーダ・バッファ76の「例外」フィールドに
応答して、例外論理回路82はディスパッチ済み命令の
実行中に検出した例外を処理する。リオーダ・バッファ
76の「終了」フィールドおよび「例外」フィールドに
応答して、完了論理回路80はそれぞれのプログラム済
み順序の通りに命令の「完了」を示す。完了論理回路8
0は、それが以下の条件を満足する場合に命令の「完
了」を示す。 条件1−実行ユニット(その命令のディスパッチ先)が
その命令の実行を終了する(リオーダ・バッファ76内
のその命令の関連項目の「終了」=1になる)。 条件2−その命令のいずれかの処理段階に関連して、例
外は一切検出されていない(リオーダ・バッファ76内
のその命令の関連項目の「例外」=0になる)。 条件3−事前にディスパッチした命令が条件1と条件2
を満足する。
【0042】リオーダ・バッファ76内の情報に応答し
て、ディスパッチ論理回路74はディスパッチすべき適
当な数の追加命令を決定する。
【0043】図4および図7を参照すると、パフォーマ
ンス・モニタ(PM)50はプロセッサ10の1つの機
構である。パフォーマンス・モニタ50は、Power
PCの命令実行および記憶制御の使用状況に関して相当
な細分性を備えた詳細情報を提供するためのソフトウェ
アでアクセス可能なメカニズムである。一般に、パフォ
ーマンス・モニタ50は、プロセッサ/記憶域関連事象
をカウントするために使用する、インプリメンテーショ
ン次第で数が決まる(たとえば、1〜8)カウンタ5
1、たとえば、PMC1〜PMC8を含む。さらに、パ
フォーマンス・モニタ50には、それぞれのMMCRが
通常、いくつかのカウンタを制御するようにカウンタP
MCnの機能を確立するためのモニタ・モード制御レジ
スタ(MMCRn)が含まれている。レジスタMMCR
nは、通常、プロセッサ10、たとえば、PowerP
C上に物理的に常駐する専用レジスタである。このよう
な専用レジスタは、mfspr(専用レジスタからの移
動)命令とmtspr(専用レジスタへの移動)命令に
より読み書きのためにアクセス可能であり、書込み動作
は特権状態または監視プログラム状態で許可されるが、
読取りは問題プログラム状態で許可される。というの
は、専用レジスタを読み取ってもレジスタの内容が変化
しないからである。他の環境であれば、このようなレジ
スタは入出力空間のアドレスなどの他の手段によってア
クセス可能である。
【0044】MMCRnレジスタは、記録/カウントす
べき事象/信号選択に対応するビット・フィールドに区
分される。許容される事象の組合せを選択すると、すべ
てのカウンタが同時に動作する。
【0045】MMCRnレジスタは、カウンタ使用可能
コントロール、カウンタ負割込みコントロール、カウン
タ事象選択、カウンタ・フリーズ・コントロールなどの
コントロールを含み、インプリメンテーション次第で数
が決まる事象がカウント用として選択可能である。特定
のプロセッサおよびバス・アーキテクチャまたは所期の
アプリケーションに対応するために使用するカウンタお
よびレジスタを増減できるので、本発明の精神および範
囲を逸脱せずに、使用するMMCRnおよびPMCn用
の専用レジスタの数を変えることができる。
【0046】パフォーマンス・モニタ50は、マシン状
態を保管するための精密な時点を指定するカウンタを含
む時間基準機構52とともに設けられている。時間基準
機構52は、通常はシステム・バス・クロックに基づく
周波数を備えたクロックを含み、同期時間基準を提供す
るために複数のプロセッサ10を含むスーパースカラ・
プロセッサ・システムの必須機構である。時間基準クロ
ック周波数は、システム・バス・クロックまたはシステ
ム・バス・クロックの一部、たとえば、1/4の周波数
で提供される。
【0047】時間基準機構52に含まれる64ビット・
カウンタ内の所定のビットは、監視したビット・フリッ
プ間の時間の増分を制御できるように、監視用として選
択される。時間基準機構52を同期化すると、マルチプ
ロセッサ・システム内のすべてのプロセッサが同時に動
作を開始することができる。このような同期化を実行す
るための方法の例は、本発明の譲受人に譲渡された「Pe
rformance Monitoringin a Multiprocessor System Wit
h Interrupt Masking」という名称の関連米国特許出願
第08/675427号に記載されている。
【0048】さらに、時間基準機構52は、マルチプロ
セッサ・システムの各プロセッサ上で同時に発生する事
象を追跡する方法を提供する。時間基準機構52はすべ
てのプロセッサを同期化するための単純な方法を提供す
るので、マルチプロセッサ・システムのすべてのプロセ
ッサは、同期方式で指定の単純なシステム規模の事象を
検出し、それに反応する。ビットがフリップするかまた
はカウントした数の事象が発生したときに割込みを通知
するように、複数のプロセッサ間で1つの条件を同時に
カウントするために、任意のビットまたはビット・グル
ープのうちの指定のビットの変換を使用することができ
る。
【0049】動作時に、所定のビットがフリップする
と、時間基準機構52からPM50に通知信号が送られ
る。次にPM50は、マシン状態値を専用レジスタに保
管する。他のシナリオでは、PM50は、負カウンタ
(ビット・ゼロ・オン)条件によって通知された「パフ
ォーマンス・モニタ」割込みを使用する。プロセッサの
1つが割込み処理を使用禁止にした場合、オペランドと
アドレス・データを含む状態情報を提示するという行為
が遅延することもある。
【0050】割込み条件を通知したときに割込みマスク
によるデータの損失が一切発生しないように保証するた
め、プロセッサは、有効命令と、実行中の「1つ」の命
令のオペランド(ある場合)アドレスを捕捉し、割込み
解決論理回路57に割込みを提示するが、この論理回路
は様々な割込み処理ルーチン71、77、79を使用す
る。このようなアドレスは、保管データ・アドレス(S
DAR)および保管命令アドレス(SIAR)というレ
ジスタに保管され、このレジスタはシステム規模の通知
時にこのような目的のために指定される。様々な実行ユ
ニットの状態も保管される。割込みを通知する時点の様
々な実行ユニットのこのような状態は、保管状態レジス
タ(SSR)に入れて供給される。このSSRは、内部
レジスタであるか、またはソフトウェアでアクセス可能
なSPRにすることができる。したがって、実際に割込
みを処理するときに、このようなレジスタの内容は、通
知時点にプロセッサ内で現在実行中の現行命令に関する
情報を提供する。
【0051】「サンプル・データ」を記録すべきである
ことを示すためにPM50が時間基準52から通知を受
け取ると、割込み信号が分岐処理ユニット20に出力さ
れる。同時に、サンプル・データ(マシン状態データ)
は、入出力空間内のアドレスまたはレジスタとして適切
に提供されるSIAR、SDAR、SSRを含むSPR
40に入る。MMCRnで定義したように選択したビッ
ト変換に応じて割込み通知を示すために、フラグを使用
することもできる。当然のことながら、時間基準機構5
2および指定のビットの実際のインプリメンテーション
は、システムおよびプロセッサ・インプリメンテーショ
ンの機能の1つである。
【0052】図5に示すブロック図は、パフォーマンス
監視を含むスーパースカラ・プロセッサ・システム動作
の本発明による全体的なプロセス・フローを示してい
る。このプロセスは、スーパースカラ・プロセッサ・シ
ステム内で命令を処理することにより、ブロック61か
ら始まる。スーパースカラ・プロセッサ・システム動作
中に、モニタ・モード制御レジスタによってパフォーマ
ンス・モニタ・カウンタを構成することによりブロック
63で指定の方法でパフォーマンス監視を実施し、ブロ
ック65でパフォーマンス監視データを収集する。
【0053】パフォーマンス・モニタ・カウントの値を
調整することにより、すなわち、1つの事象が所定の回
数発生することによって例外が通知されるようにカウン
タの値を十分高い値に設定することにより、システム・
パフォーマンスのプロファイルを入手することができ
る。さらに、この開示の場合、おそらく処理中の選択可
能な時点でパフォーマンス監視割込みが発生する。以下
に詳述するように、所定数の事象を適切に使用して、停
止時点を選択する。たとえば、2つの命令の完了後にカ
ウンタが負になるようにすることにより、2つの命令後
に終了するようにカウントをプログラミングすることが
できる。さらに、この開示の場合、監視が行われる期間
は分かっている。したがって、収集したデータは、監視
が行われる分数、時間数、日数などによるコンテキスト
を有する。
【0054】以下に説明するように、指定のパフォーマ
ンス監視としては、事象間の関係を再構築すること、偽
トリガを識別すること、ボトルネックを識別すること、
停止を監視すること、アイドルを監視すること、ディス
パッチ・ユニットの動作効率を判定すること、分岐ユニ
ットの動作の有効性を判定すること、位置合せ不良のデ
ータ・アクセスのパフォーマンス上の不利益を判定する
こと、逐次化命令の実行頻度を識別すること、禁止され
た命令を識別すること、効率を識別するためにLittleの
法則を適用することを含む。
【0055】ブロック67で指定のパフォーマンス監視
ルーチンを完了し、収集したデータを分析して、システ
ム強化の潜在的な分野を識別する。ソフトウェアまたは
ハードウェアのうち、パフォーマンスを改良可能な特定
の分野を識別するために、収集したデータを使用して、
ヒストグラムなどのプロファイル・メカニズムを構築す
ることができる。さらに、時間に敏感な事象、たとえ
ば、停止数、アイドル数などを監視する場合、データが
サンプリング期間などによるコンテキストを有するよう
に、既知の経過サイクル数の間、カウント数データを収
集する。ただし、いずれもIBMから入手可能な「aixt
race」またはグラフィック・パフォーマンス視覚化ツー
ル「pv」などのツールを使用して、収集したデータの
分析を容易にすることができることに留意されたい。
【0056】図6には、2つのPMCカウンタ、たとえ
ば、PMC1とPMC2の動作を制御するのに適したM
MCR0の構成の表現例を示す。この例に示すように、
MMCR0は複数のビット・フィールドに区分される
が、その設定によってカウントすべき事象が選択され、
パフォーマンス・モニタ割込みが使用可能になり、カウ
ントが使用可能になる条件が指定され、しきい値(X)
が設定される。
【0057】しきい値(X)は可変であると同時にソフ
トウェアで選択可能なものであり、その目的は、減少す
るしきい値を上回るアクセスのカウントを累積すること
により、設計者がより明確な競合ピクチャを獲得するよ
うに、所与のデータの特徴付けを可能にすることであ
る。データ命令が完了する前に減分器がゼロに達する
と、しきい値(X)を上回ると見なされる。これに対し
て、減分器がゼロに達する前にデータ命令が完了した場
合、しきい値を上回るとは見なされない。当然のことな
がら、実行中のデータ命令に応じて、「完了」の意味は
異なる。たとえば、ロード命令の場合、「完了」とはそ
の命令に関連するデータを受け取ったことを示し、「ス
トア」命令の場合、「完了」とはデータが正常に書き込
まれたことを示す。ユーザ可読カウンタ、たとえば、P
MC1は、しきい値を上回るたびに適切に増分する。
【0058】ユーザは、パフォーマンス・モニタ割込み
の通知前に、しきい値を上回る回数を判定することがで
きる。たとえば、ユーザは、指定のしきい値を上回る1
00番目のデータ・ミスの際にカウンタが割込みを発生
するように初期値を設定することができる。適切な値を
使用すれば、PM機構は直ちにシステム・パフォーマン
ス問題を識別する際に使用するのに適したものになる。
【0059】図6を参照すると、この例が示すように、
MMCR0のビット0〜4とビット18は、カウントが
使用可能になるシナリオを決定するものである。例とし
て、ビット0はカウント・フリーズ・ビット(FC)で
ある。論理レベルがハイである場合(FC=1)、PM
Cnカウンタ内の値はハードウェア事象によって変更さ
れない、すなわち、カウントがフリーズされる。ビット
0の論理レベルがローである場合(FC=0)、PMC
nの値は選択したハードウェア事象によって変更するこ
とができる。ビット1〜4は、カウントがフリーズされ
る他の具体的な条件を示す。
【0060】たとえば、ビット1は監視プログラム状態
中カウント・フリーズ(FCS)ビットであり、ビット
2は問題プログラム状態中カウント・フリーズ(FC
P)ビットであり、ビット3はPM=1中カウント・フ
リーズ(FCPM1)ビットであり、ビット4はPM=
0中カウント・フリーズ(FCPM0)ビットである。
PMは、マシン状態レジスタ(MSR)(図1のSPR
40)のパフォーマンス・モニタ・マーク付きビットで
あるビット29を表す。ビット1とビット2の場合、M
SRのPR(特権)ビットの論理レベルによって、監視
プログラム状態または問題プログラム状態が示される。
これらのビットによるカウントをフリーズするための状
態は次の通りである。すなわち、ビット1の場合はFC
S=1およびPR=0、ビット2の場合はFCP=1お
よびPR=1、ビット3の場合はFCPM1=1および
PM=1、ビット4の場合はFCPM0=1およびPM
=0である。また、これらのビットによるカウントを可
能にするための状態は、ビット1の場合はFCS=1お
よびPR=1、ビット2の場合はFCP=1およびPR
=0、ビット3の場合はFCPM1=1およびPM=
0、ビット4の場合はFCPM0=1およびPM=1で
ある。
【0061】ビット5、ビット16、ビット17は、P
MCnによってトリガされる割込み信号を制御するため
に使用する。ビット6〜9は、時間または事象ベースの
変換を制御するために使用する。しきい値(X)はビッ
ト10〜15によって不定に設定される。ビット18
は、n>1の場合にPMCnについてカウントを使用可
能にするかどうかを制御するものであり、ローの場合は
カウントが使用可能になるが、ハイの場合はPMC1の
ビット0がハイになるかまたはパフォーマンス監視例外
が通知されるまでカウントが使用禁止になる。ビット1
9〜25は、PMC1のための事象選択、すなわち、カ
ウントすべき信号の選択に使用する。
【0062】図7は、本発明の実施例によるMMCR1
の構成を示している。ビット0〜4はPMC3用の事象
選択を適切に制御し、ビット5〜9はPMC4用の事象
選択を制御する。同様に、ビット10〜14はPMC5
用の事象選択を制御し、ビット15〜19はPMC6用
の事象選択を制御し、ビット20〜24はPMC7用の
事象選択を制御し、ビット25〜28はPMC8用の事
象選択を制御する。
【0063】カウンタ選択フィールド、たとえば、MM
CR0のビット19〜25およびビット26〜31と、
MMCR1のビット0〜28は、特定のインプリメンテ
ーションが提供する全領域の選択可能な事象を指定する
ために必要な数のビットを有することが好ましい。
【0064】パフォーマンス分析用のデータを捕捉する
には、少なくとも1つのカウンタが必要である。カウン
タを増やすと、より高速かつより正確な分析に対応でき
る。そのシナリオが厳密に反復可能である場合、他の項
目を選択して同じシナリオを実行することができる。そ
のシナリオが厳密に反復可能ではない場合、統計データ
を収集するために、同じ項目を何回も選択して同じシナ
リオを実行することができる。シナリオの開始からの時
間は、複数の時間間隔を使用して他のサンプルおよび他
の事象と相関させることができるように、システム時間
サービスにより得られるものと想定する。
【0065】「A Method and System for Performance
Monitoring Time Lengths of Instruction Execution i
n a Processing System」という名称の米国特許出願第
08/537417号では、有効アドレスによる事象順
序の選択と区別、実行中のプロセッサ事象の順序を監視
することによるパフォーマンス監視、ボトルネックと停
止を識別するためのパフォーマンス監視、プロセッサ・
システムに対するメモリ・アクセスの影響のパフォーマ
ンス監視、ディスパッチ・ユニットの不足のパフォーマ
ンス監視、アイドルのパフォーマンス監視、位置合せ不
良のメモリ・アクセスのパフォーマンス監視、逐次化命
令のパフォーマンス監視、分岐ユニットの動作効率のパ
フォーマンス監視、使用禁止割込みの時間長のパフォー
マンス監視、命令実行の時間長のパフォーマンス監視に
ついてさらに論じている。パフォーマンス監視の詳細に
ついては、Performance Monitor, PowerPC 604 RISC Mi
croprocessor User's Manual(pp.9−1〜9−11、
IBM、1994年)の第9章を参照されたい。この参
考文献には、図6および図7に示すレジスタなどのMM
CRnレジスタ内に格納するためのコード点を示す複数
のテーブルが記載されているが、これはどの事象をどの
ように監視するかを様々なカウンタPMCnに通知する
ものである。
【0066】次に図8を参照すると、同図には本発明を
実施するための実施例が示されている。図8は、複数の
MMCRnレジスタ51と、SIARおよびSDARレ
ジスタ40と、PMC1・・・PMCn(カウンタ1・
・・Nとして明記)とを有するパフォーマンス・モニタ
50を示しているが、それぞれの関連加算器とカウンタ
制御論理回路には、MMCRnレジスタの様々なビット
によって制御されるマルチプレクサ72・・・73から
供給される。マルチプレクサ72・・・73は、限界器
71、時間基準回路52、その他の事象から事象を受け
取るが、これらはマイクロプロセッサ内の様々な実行ユ
ニットおよび他のユニットから発生した信号である。パ
フォーマンス・モニタ50の様々な回路要素のいずれに
ついても本明細書および上記の関連特許出願で述べられ
ているので、このような要素の動作についてはこれ以上
詳述しない。
【0067】次に図9を参照すると、同図には本発明の
複数の実施例が示されている。データ処理システム80
が示されているが、これはバス801または他の何らか
の周知の手段によって結合することができる。複数のシ
ステム80が同一である場合もあれば、互いに異なる場
合もあり、これについては当業者であれば分かるはずで
ある。ただし、本発明は1つのシステム80のみで実施
可能であり、特に示した場合を除き、以下の説明では図
示のシステム80を1つだけ参照することに留意された
い。
【0068】CPU10は、それとともに実現されたパ
フォーマンス・モニタ50を有し、図1に示すプロセッ
サと同様のものにすることができる。また、CPU10
は1つまたは複数のキャッシュ806を付随する場合も
ある。さらに、CPU10は、バス810を介して直接
メモリ・アクセス(DMA)コントローラ803に、バ
ス812を介してメモリ・コントローラ804に、バス
813を介してブリッジ回路805に結合することがで
きる。バス850はDMAコントローラ803とメモリ
・コントローラ804との間で信号を伝達することがで
きる。バス851はDMAコントローラ803とブリッ
ジ回路805との間で信号を伝達することができる。さ
らに、バス852はメモリ・コントローラ804とブリ
ッジ回路805との間で信号を伝達することができる。
【0069】DMAコントローラ803、メモリ・コン
トローラ804、ブリッジ回路805のうちの1つまた
は複数は、パフォーマンス・モニタ50を含むことがで
きる。ただし、このような装置のそれぞれに含まれるパ
フォーマンス・モニタ50は、CPU10または他の装
置の1つの内部で特別に実現されたものとは異なる場合
もあることに留意されたい。パフォーマンス・モニタ5
0は、図8に示すものと同様に実現することができる。
【0070】システム80はプログラム可能回路802
も含むことができ、この回路はパフォーマンス監視機能
50も含む。プログラム可能回路802はバス807に
よってCPU10に結合される。プログラム可能回路8
02は、バス809を介してDMAコントローラ803
に、バス808を介してメモリ・コントローラ804
に、バス811を介してブリッジ回路805に結合され
る。プログラム可能回路802内に囲まれたパフォーマ
ンス・モニタ50を使用して何らかのタイプのパフォー
マンス監視分析を実行するために、CPU10とともに
またはCPU10の代わりにプログラム可能回路802
を使用することもできる。たとえば、プログラム可能回
路802を使用すると、バス850〜852によって渡
される信号を監視できるはずである。したがって、以下
の説明は、CPU10またはプログラム可能回路802
の内部あるいは何らかのタイプの両者の組合せによるパ
フォーマンス監視機能の実施に適用される。
【0071】DMAコントローラ803、メモリ・コン
トローラ804、ブリッジ回路805は、このような装
置のうちの1つまたは複数のみの対話、相互間の対話、
またはCPU10との対話についてパフォーマンス分析
を行えるようにパフォーマンス・モニタ50を実現でき
るデータ処理システム内の他のモジュールの例として示
されている。当然のことながら、ここに示していない他
のモジュールでも同様にパフォーマンス・モニタ50を
実現できることは、当業者には分かるだろう。
【0072】本発明の利点の1つは、CPU10の内部
だけでなく、システム80全体(または、バス801に
よりパフォーマンス監視信号を転送することにより、複
数のシステム80)の内部の動作についてパフォーマン
ス分析を行えるように、関連出願で述べられているパフ
ォーマンス監視機能をシステム規模の拡張できることで
ある。以下の説明では、システム80または複数のシス
テム80の内部でこのようなパフォーマンス監視機能を
実現する方法について説明する。本明細書では、本発明
を使用して実行可能な様々な分析のすべてについて詳述
するわけではない。システム80内の複数の装置の内部
にパフォーマンス・モニタが存在するということを利用
する、いかなるタイプの分析も本発明で実施可能である
ことに留意するだけで十分である。
【0073】本発明はシステム80内の各装置上の1つ
または複数のピンに結合されたバス808〜813によ
る信号の転送に対応するものであるが、この信号はカウ
ントを制御し、装置がオーバーフローしたかまたはしそ
うなカウンタを有することをCPU10またはプログラ
ム可能回路802に通知するために使用することができ
る。
【0074】第1の信号はCPU10からの出力にする
ことができる。この信号は、パフォーマンス・モニタ5
0がカウントするときにハイで出力され、パフォーマン
ス・モニタ50がカウントしないときにローで出力され
る。複数のプロセッサ10が存在するシステムでは、い
ずれかのプロセッサがカウントする場合に信号がハイに
なるように、これらの信号についてまとめてORを取る
ことができる。すべてのプロセッサがカウントしない場
合のみ、このような信号はローで送信される。第1の信
号の実施態様については図11の流れ図で詳しく示す
が、トリガ信号はプロセッサのパフォーマンス・モニタ
50から周辺装置のパフォーマンス・モニタに送られ
る。この第1の信号である信号1については、以下に詳
述する。
【0075】第2の信号はプロセッサ10(またはプロ
グラム可能回路802)への入力にすることができる。
この信号は、周辺装置内のカウンタがカウントしている
ことをプロセッサ10に通知するようにトリガとして機
能することもできる。この第2の信号である信号2につ
いては、以下に詳述し、図13に詳しく示す。
【0076】第3の信号はプロセッサ10(またはプロ
グラム可能回路802)への入力にすることができる。
この信号は、外部装置から出力され、カウンタが負にな
るかまたは折り返すなど、その装置に対する何らかのタ
イプのアテンションが必要であることを示すためにハイ
に設定される。取るべき適切なアクションをソフトウェ
アが決定する場合、このアテンションはパフォーマンス
・モニタ割込みの要求に変換することができる。いずれ
かの装置がアテンションを必要とする場合に信号がハイ
になり、いずれの装置もアテンションを必要としない場
合のみ信号がローになるように、外部装置からの信号に
ついてまとめてORを取ることができる。複数のプロセ
ッサが存在するシステムでは、アテンションを必要とす
る装置の決定と割込みの処理を担当する単一プロセッサ
に入力を経路指定することが妥当な実施態様である。上
記の第3の信号については図12の流れ図に詳しく示す
が、周辺装置のパフォーマンス・モニタ50の1つから
プロセッサのパフォーマンス・モニタに割込み信号を送
ることができる。この第3の信号である信号3について
は、以下に詳述する。
【0077】プロセッサ10またはプログラム可能回路
802への入力信号は信号/ピンによって実現すること
ができるが、この信号はカウント可能な事象である。こ
の信号の信号発生を検出すると直ちに割込みを通知する
ように、パフォーマンス・モニタ50をプログラミング
することができる。
【0078】次に図10を参照すると、本発明の他の代
替実施例では、プロセッサ10(またはプログラム可能
回路802)との間で転送される信号はマスク可能にす
ることができ、その信号はマスク・ビットがアサートさ
れた場合のみ使用する。たとえば、周辺装置から受け取
ったプロセッサ10への割込み信号が処理されたかどう
かは、図12に示す実施態様に従い、状況によって決ま
る。一例として、受信側プロセッサ10は、その現行カ
ウントまたは命令フローを邪魔しないように割込みを処
理する必要がない可能性もある。その結果、指定の装置
内で発生する指定の状況のみに依存するように、マスク
・ビットを使用して所与の手順を調整し定義することが
できる。
【0079】それぞれのオフプロセッサ装置は、そのパ
フォーマンス・モニタ内のカウントを制御するための独
自の方法を備えている可能性がある。また、カウントす
べき事象を選択するレジスタMMCRnなどの独自の制
御レジスタも備えている可能性がある(図8を参照)。
電源オン・リセット条件を使用すると、すべての外部装
置は使用禁止になっている条件を選択することができ、
ソフトウェアを使用してカウントを開始するはずであ
る。
【0080】前述のように、PowerPCプロセッサ
のパフォーマンス・モニタ・サポートのための基本アー
キテクチャ(図8を参照)は、可変数の制御レジスタM
MCR0、MMCR1、・・・MMCRjを有する。同
様に、PowerPCプロセッサのパフォーマンス・モ
ニタ・サポートのためのアーキテクチャは、可変数のカ
ウンタPMC1、PMC2、PMC3、・・・PMCn
を有する。MMCRjは制御フラグと選択フィールドを
有する。MMCRjとPMCnのプロセッサ・インプリ
メンテーションは専用レジスタSPRによるものであ
る。
【0081】前述のように、これと同じ手法は、ブリッ
ジ・チップ805、メモリ・コントローラ804、キャ
ッシュ・コントローラなどの非プロセッサ・システム構
成要素によってサポートすることができる。ただし、S
PRを使用する代わりに、特定のアドレス位置を使用し
て同じサポートを提供することができる。
【0082】システム構成要素(802〜805)は、
制御レジスタMMCRjおよびカウンタPMCn用とし
て、プロセッサ10と同じ基本制御ビットおよびアクセ
ス・ビットと32ビット・ワード定義をサポートできる
はずである。また、その特定のインプリメンテーション
に適用可能なビットを使用するはずである。システム8
0または複数のシステム80内のすべてのパフォーマン
ス・モニタについてこのように同様のアーキテクチャを
使用すると、ユーザによるパフォーマンス・モニタのプ
ログラミング用の様々なレジスタのすべてをプログラミ
ングするための時間が短縮される。これは、多くのシス
テム80または少なくとも多くのプロセッサ10を有す
る大規模並列マシンの場合に特に貴重なものになる可能
性がある。
【0083】その結果、すべてのパフォーマンス・モニ
タ50のプログラミングは、同様のビット・フィールド
または同様に順序付けられたアドレスをプログラミング
することによって達成することができる。
【0084】たとえば、MMCR0のFCビットは、パ
フォーマンスの計装化をサポートするすべてのシステム
構成要素(802〜805)について実現できるはずで
ある。
【0085】オフプロセッサ・システム構成要素(80
2〜805)は、MMCR0のビット5およびビット6
を以下のようにサポートできるはずである。 ビット5 パフォーマンス・モニタ例外使用可能
(PMXE) ビット=0 パフォーマンス・モニタ例外が使用禁止に
なる。 ビット=1 パフォーマンス・モニタ例外が発生するま
でパフォーマンス・モニタ例外が使用可能になり、発生
した時点でMMCR0[PMXE]が0に設定される。
【0086】例外は、通常、信号またはピンによってシ
ステム構成要素(802〜805)からプロセッサ10
に通知されるはずである。
【0087】パフォーマンス・モニタ割込みを防止する
ために、ソフトウェアでこのビットを0に設定すること
ができる。
【0088】ソフトウェアでこのビットを1に設定し、
そのビットをポーリングして、使用可能になっている条
件または事象が発生したかどうかを判定することができ
る。これは、パフォーマンス・モニタ割込みを行わない
インプリメンテーションについて特に有用である。 ビット6 使用可能になっている条件または事象時
にカウンタをフリーズする(FCECE) ビット=0 PMCが増分される(他のMMCRビット
によって許可されている場合)。 ビット=1 MMCR0[TRIGGER]=0のとき
に使用可能になっている条件または事象が発生するまで
PMCが増分され(他のMMCRビットによって許可さ
れている場合)、発生した時点でMMCR0[FC]が
1に設定される。
【0089】MMCR0[TRIGGER]=1のとき
に使用可能になっている条件または事象が発生した場
合、FCECEビットはそれが0である場合と同じよう
に扱われる。
【0090】あるいは、制御レジスタおよびカウンタに
関するシステム構成要素(すなわち、オフプロセッサ装
置802〜805)のサポートは、T=0の入出力空間
内のシステム固有のアドレス位置、すなわち、キャッシ
ュ禁止入出力空間内のアドレス可能メモリ位置によって
行われるはずである。様々なタイプおよびバージョンの
システム構成要素について特定のアドレスを選択するこ
とを推奨する。また、レジスタの変位を変更することが
できる構成メカニズムを開発することを推奨する。パフ
ォーマンス監視(PM)アプリケーション・プログラミ
ング・インタフェース(API)は汎用要求を制御レジ
スタとカウンタからなるパック・アレイに変換するの
で、推奨する手法は、MMCRnおよびPMCnの位置
を順序付け、連続メモリ空間内に入れる方法である。M
MCRnおよびカウンタは32ビット・ワードであると
定義されているので、これらを32ビット・ワードとし
てアドレス空間にパックすることが妥当であると思われ
る。また、64ビット・ワードを反映する変位をサポー
トすることも妥当なことである。このタイプのサポート
は、PM APIのテーブル・サポート定義の一部であ
るはずである。この実施態様では、制御レジスタおよび
カウンタに対する読み書きは、構成要素固有のテーブル
の一部であるアドレスから変位したところで行われるは
ずである。
【0091】上記のように、この開示では「アドオン」
機構を容易にする方法を定義しているが、その方法は、
信号分析に関する情報のリアルタイム制御と捕捉に対応
し、システム・パフォーマンス分析の改善を可能にする
ものである。個々のシステムに付加可能な「アドオン機
構」を有することの主な利点は、販売されたすべてのシ
ステムについてコストが発生するわけではないことであ
る。具体的には、バス上またはいずれかの構成要素の外
部で得られる信号は、「アドオン」機構によって捕捉す
ることができ、必ずしもその構成要素自体に組み込まれ
るわけではない。
【0092】「アドオン」機構の形式は、システムの必
要性に応じて調整することができる。ロー・エンド・シ
ステムの場合は、非常に単純なプログラム可能論理装置
(PLD)または特定用途向けIC(ASIC)が適切
である可能性がある(すなわち、プログラム可能回路8
02による)。ハイ・エンド・システムの場合は、フル
カスタム・チップが適切だと思われる。この開示の以下
の説明では、システム80に付加可能でプログラム可能
論理回路に対応する装置802を示すために、「PL
D」を使用する。このPLD802は、信号分析に関す
る情報のリアルタイム制御と捕捉に対応し、システム・
パフォーマンスの分析に使用することができる。
【0093】その手法は、システム固有の監視要件に応
じて調整可能なPLD802を設計することである。P
LD802は、指定のバス信号を認識してカウントする
ように設計することができる。単純な設計でもプロセッ
サ10のPM50の設計を反映させることができる。カ
ウントすべき信号の選択は、前述のように、T=0の入
出力空間内の特定のアドレス位置での読み書きという関
連開示手法を使用する他のシステム構成要素の場合と同
じようにサポートすることができる。
【0094】PLD802自体は、プロセッサのパフォ
ーマンス・モニタ機構50と同様に機能するように設計
することができる。
【0095】一実施例で本発明は、カウントを制御する
信号(ピン)であって、たとえば、そのカウンタが負に
なるかまたは折り返したときに装置が何らかのアテンシ
ョンを必要とすることをプロセッサ10に指示するため
に使用できる信号(ピン)に対応することができる。
【0096】この提案は、プロセッサ部分と「システム
構成要素」部分とを有する。プロセッサ部分について
は、他の制御アドレス空間MMCR2で定義された2つ
の制御ビットが追加されるはずである。(オペレーティ
ング・システムのアクセスはMMCR0およびMMCR
1から別々のSPR番号により行われるはずであるが、
実際のインプリメンテーションでは、既存のMMCRn
のうちの1つにある2つの未使用ビットと同じ物理レジ
スタ空間を使用することができる。)この2つのビット
に加え、以下のように3つの新しい信号(ピン)が存在
する。
【0097】信号サポート: −信号1:プロセッサ10からの出力(図11を参照) この信号はカウントが開始されたときにアサートされる
(極性非依存)。TRIGGERビットが設定されてい
る場合、この信号はトリガ条件が発生する(PMC1負
または使用可能になっている例外が発生する)までアサ
ートされない。 −信号2:プロセッサ10への入力(非プロセッサ・シ
ステム構成要素(たとえば、802、803、804、
805)がこの信号を制御する。)(図13を参照) いずれかの構成要素がこれをハイに設定して、現在カウ
ントしていることをプロセッサ10に指示することがで
きる。この信号がハイになると、新しいMMCR2ビッ
トの1つによって監視を開始することができる。以下の
MMCR2(a)を参照。 −信号3:プロセッサ10への入力(非プロセッサ・シ
ステム構成要素がこの信号を制御する。)(図12を参
照) いずれかの構成要素がこれをハイに設定して、PM割込
みを行うためのプロセスを必要としていることをプロセ
ッサ10に指示することができる。プロセッサ10は、
MMCR2(b)(以下を参照)が設定されている場合
のみ、この信号を検査する。
【0098】ただし、この信号はパルスである(スティ
ッキーではない)ことに留意されたい。周辺装置(80
2〜805)は、PM割込みを行う必要があることをプ
ロセッサ10に指示する。これは、通常、負になったカ
ウンタがあるときに発生するはずである。L2/L3キ
ャッシュ・コントローラなどのインライン装置は、ブリ
ッジ・チップ805およびプロセッサ10との間で送信
される信号間の媒介物として動作することになる。これ
が必要になるのは、バス速度がおそらく互いに異なるか
らである。
【0099】新しいMMCR2ビット: −ビットa: 信号2入力までのカウンタ・フリーズ
(FCISIG) ビットa=0 PMCが増分される(他のMMCRビッ
トによって許可されている場合)。 ビットa=1 入力信号(プロセッサ用の信号2)がハ
イになるまでPMCが増分されない。信号2がハイにな
ると、以下のようになる。 − PMCが増分を再開する(他のMMCRビットによ
って許可されている場合)。 − MMCR1[FCISIG]が0に設定される。 −ビットb: 信号3監視用のPM条件検査(PMC
SIG3) このビットは、信号3がハイであるために信号3のハイ
条件を使用可能にするかどうかを制御する。 ビットb=0 信号3のハイ条件を使用禁止にする。 ビットb=1 信号3のハイ条件を使用可能にする。
【0100】信号3のハイ条件は、PM例外を発生する
可能性のある条件のリストに追加される。
【0101】非プロセッサ・システム構成要素(802
〜805)の場合、PMXEサポートは、その構成要素
が信号3をハイに設定するかどうかに変換される。新し
いMMCR2ビットが定義されている場合、プロセッサ
10から出力されるその入力信号を調べるためにビット
aが解釈されるので、以下のように定義されるはずであ
る。 −ビットa: 信号1入力までのカウンタ・フリーズ
(FCISIG) ビットa=0 PMCが増分される(他のMMCRビッ
トによって許可されている場合)。 ビットa=1 システム構成要素用の信号1である入力
信号がハイになるまでPMCが増分されない。信号1が
ハイになると、以下のようになる。 − PMCが増分を再開する(他のMMCRビットによ
って許可されている場合)。 −ビットb: 信号3監視用のPM条件検査(PMC
SIG3) このビットは、信号3がハイであるために信号3のハイ
条件を使用可能にするかどうかを制御する。 ビットb=0 信号3のハイ条件を使用禁止にする。 ビットb=1 信号3のハイ条件を使用可能にする。
【0102】例外条件が処理されるまで、すべてのシス
テム80構成要素とフリーズしたすべてのカウンタによ
って信号3を監視できることに留意されたい。
【0103】このアーキテクチャにより、いかなる装置
もカウント開始条件またはカウント停止条件を他の装置
に通知することができる。たとえば、インラインL2コ
ントローラは、その入力をすべての装置から取ることが
できる。これは、基本的にはトポロジ非依存アーキテク
チャである。
【0104】信号1の予定用途は、カウントをゲートす
ることである。プロセッサおよびシステム構成要素を適
切にプログラミングすることにより、カウントに対して
広範囲の制御が可能になる。たとえば、1次プロセッサ
が待機プロセスを実行しているときに指定の装置につい
てカウントを行わないようにすることができる。これ
は、MSR(PMM)ビットの用途の具体的な応用例で
ある。これと同じタイプのゲートは、特定の命令アドレ
スで実行が行われているときにのみカウントを開始する
など、他の機能で行うことができる。
【0105】信号2の予定用途は、介在割込みを必要と
せずに1つの構成要素からのカウントによって他の構成
要素でのカウントを開始させることである。
【0106】信号3の予定用途は、特定のシステム構成
要素で発生している所与の事象についてパフォーマンス
監視を分離することである。たとえば、入出力ブリッジ
AStat再試行、L2コントローラによるスヌープ要
求の受取り、使用中条件によるメモリ・コントローラか
らの再試行の発行など、所与のパフォーマンス事象発生
時に割込みを行い、分離することが望ましいと思われ
る。その場合、割込みハンドラは、その事象に関連する
情報をさらに供給するかまたはその事象の今後の発生を
防止するという意図で、その事象に関する情報をさらに
収集することができる。
【0107】この方式により、任意のプロセッサは、他
のプロセッサがセマフォアへのアクセスなどの所与の状
態に達した後でカウントを開始することができる。この
タイプのトリガを使用すると、監視した条件が検出され
た後ですべてのプロセッサに監視を開始させることがで
きるはずである。
【0108】本発明とその利点について詳細に説明して
きたが、特許請求の範囲に定義するように、本発明の精
神および範囲を逸脱せずに様々な変更、代用、代替が可
能であることを理解されたい。
【0109】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0110】(1)第1のパフォーマンス・モニタを含
む第1のプロセッサと、第1のプロセッサに結合され、
第2のパフォーマンス・モニタを含む第1の装置と、第
1および第2のパフォーマンス・モニタ間で通信するた
めの回路とを含み、第1および第2のパフォーマンス・
モニタのそれぞれが、プロセッサおよび装置内の指定の
信号を受け取ってカウントするようにプログラム可能で
あることを特徴とする、データ処理システム。 (2)第1および第2のパフォーマンス・モニタのそれ
ぞれが、ソフトウェアでアクセス可能なレジスタ内のビ
ット・フィールドを使用してプログラム可能であること
を特徴とする、上記(1)に記載のデータ処理システ
ム。 (3)第1および第2のパフォーマンス・モニタが、対
応するレジスタ内の同様のビット・フィールドをプログ
ラミングすることにより同様の機能を実行するようにプ
ログラミングできることを特徴とする、上記(2)に記
載のデータ処理システム。 (4)第1のパフォーマンス・モニタが、第2のパフォ
ーマンス・モニタの動作をトリガするように動作可能で
あることを特徴とする、上記(1)に記載のデータ処理
システム。 (5)第2のパフォーマンス・モニタが、第1のパフォ
ーマンス・モニタに動作の結果を送信するように動作可
能であることを特徴とする、上記(4)に記載のデータ
処理システム。 (6)第1のプロセッサに結合され、第3のパフォーマ
ンス・モニタを含む第2のプロセッサと、第2のプロセ
ッサに結合され、第4のパフォーマンス・モニタを含む
第2の装置と、第3および第4のパフォーマンス・モニ
タ間で通信するための回路とをさらに含むことを特徴と
する、上記(1)に記載のデータ処理システム。 (7)第1および第2のパフォーマンス・モニタに結合
された第3のパフォーマンス・モニタを含むプログラム
可能回路をさらに含むことを特徴とする、上記(1)に
記載のデータ処理システム。 (8)第2のパフォーマンス・モニタの動作のトリガを
マスクするための回路をさらに含むことを特徴とする、
上記(4)に記載のデータ処理システム。 (9)第2のパフォーマンス・モニタが、プロセッサに
割込みを送信するように動作可能であることを特徴とす
る、上記(1)に記載のデータ処理システム。 (10)第2のパフォーマンス・モニタからの割込みの
受取りをマスクするための回路をさらに含むことを特徴
とする、上記(9)に記載のデータ処理システム。 (11)第2のパフォーマンス・モニタが、第1のパフ
ォーマンス・モニタの動作をトリガするように動作可能
であることを特徴とする、上記(1)に記載のデータ処
理システム。 (12)第1および第2のパフォーマンス・モニタが、
同様に順序付けられたアドレス・データをプログラミン
グすることにより同様の機能を実行するようにプログラ
ミングできることを特徴とする、上記(2)に記載のデ
ータ処理システム。 (13)[1]第1のパフォーマンス・モニタを含む第
1のプロセッサと、[2]第1のプロセッサに結合さ
れ、第2のパフォーマンス・モニタを含む第1の装置と
を含み、第1および第2のパフォーマンス・モニタのそ
れぞれがプロセッサおよび装置内の指定の信号を受け取
ってカウントするようにプログラム可能であるデータ処
理システムにおいて、指定の動作のパフォーマンス監視
を行うための方法であって、ソフトウェアでアクセス可
能なレジスタにより第1および第2のパフォーマンス・
モニタをプログラミングするステップと、第1および第
2のパフォーマンス・モニタにより、1つまたは複数の
カウント機能を実行するステップと、第1および第2の
パフォーマンス・モニタ間で1つまたは複数のカウント
機能の結果を通信するステップとを含む方法。 (14)前記プログラミング・ステップが、第1および
第2のパフォーマンス・モニタの対応するレジスタ内の
同様のビット・フィールドをプログラミングするステッ
プをさらに含むことを特徴とする、上記(13)に記載
の方法。 (15)前記通信ステップが、第1のパフォーマンス・
モニタにより、第2のパフォーマンス・モニタの動作を
トリガするステップをさらに含むことを特徴とする、上
記(13)に記載の方法。 (16)前記通信ステップが、第2のパフォーマンス・
モニタにより、第1のパフォーマンス・モニタに動作の
結果を送信するステップをさらに含むことを特徴とす
る、上記(15)に記載の方法。 (17)第1のパフォーマンス・モニタを含む第1のプ
ロセッサと、第1のプロセッサに結合され、第2のパフ
ォーマンス・モニタを含む第2のプロセッサと、第1お
よび第2のパフォーマンス・モニタ間で通信するための
回路とを含み、第1および第2のパフォーマンス・モニ
タのそれぞれが、第1および第2のプロセッサ内の指定
の信号を受け取ってカウントするようにプログラム可能
であることを特徴とする、データ処理システム。 (18)第1および第2のパフォーマンス・モニタのそ
れぞれが、ソフトウェアでアクセス可能なレジスタ内の
ビット・フィールドを使用してプログラム可能であるこ
とを特徴とする、上記(17)に記載のデータ処理シス
テム。 (19)第1および第2のパフォーマンス・モニタが、
対応するレジスタ内の同様のビット・フィールドをプロ
グラミングすることにより同様の機能を実行するように
プログラミングできることを特徴とする、上記(18)
に記載のデータ処理システム。 (20)第1のパフォーマンス・モニタが、第2のパフ
ォーマンス・モニタの動作をトリガするように動作可能
であることを特徴とする、上記(17)に記載のデータ
処理システム。 (21)第2のパフォーマンス・モニタが、第1のパフ
ォーマンス・モニタに動作の結果を送信するように動作
可能であることを特徴とする、上記(20)に記載のデ
ータ処理システム。 (22)第2のパフォーマンス・モニタが、第1のプロ
セッサに割込みを送信するように動作可能であることを
特徴とする、上記(17)に記載のデータ処理システ
ム。 (23)第1のパフォーマンス・モニタを含む第1のプ
ログラム可能装置と、第1のプログラム可能装置に結合
された第2の装置と、第1のプログラム可能装置に結合
された第3の装置と、第1のパフォーマンス・モニタが
第2および第3の装置間の通信を監視できるようにする
ための回路とを含む、データ処理システム。 (24)第1のプログラム可能装置がプロセッサではな
いことを特徴とする、上記(23)に記載のデータ処理
システム。
【図面の簡単な説明】
【図1】本発明により情報を処理するためのプロセッサ
のブロック図である。
【図2】図1のプロセッサのシーケンサ・ユニットのブ
ロック図である。
【図3】図2のシーケンサ・ユニットのリオーダ・バッ
ファの概念図である。
【図4】本発明のパフォーマンス監視態様のブロック図
である。
【図5】パフォーマンス監視を含むシステム動作を処理
するための本発明による全体的なプロセス・フローを示
すブロック図である。
【図6】複数のカウンタを管理するために使用するモニ
タ制御レジスタ(MMCRn)を示す図である。
【図7】複数のカウンタを管理するために使用するモニ
タ制御レジスタ(MMCRn)を示す図である。
【図8】本発明により構成されたパフォーマンス・モニ
タのブロック図である。
【図9】本発明の一実施例を示す図である。
【図10】本発明の代替実施例を示す図である。
【図11】データ処理システム内の各種装置のパフォー
マンス・モニタ間で通信するためのプロセスを示す図で
ある。
【図12】データ処理システム内の各種装置のパフォー
マンス・モニタ間で通信するためのプロセスを示す図で
ある。
【図13】データ処理システム内の各種装置のパフォー
マンス・モニタ間で通信するためのプロセスを示す図で
ある。
【符号の説明】 10 プロセッサ 11 システム・バス 12 バス・インタフェース・ユニット(「BIU」) 14 命令キャッシュ 16 データ・キャッシュ 18 シーケンサ・ユニット 20 分岐ユニット 22 固定小数点ユニットA(「FXUA」) 24 固定小数点ユニットB(「FXUB」) 26 複合固定小数点ユニット(「CFXU」) 28 ロード/ストア・ユニット(「LSU」) 30 浮動小数点ユニット(「FPU」) 32 汎用アーキテクチャ・レジスタ(「GPR」) 34 固定小数点リネーム・バッファ 36 浮動小数点アーキテクチャ・レジスタ(「FP
R」) 38 浮動小数点リネーム・バッファ 39 システム・メモリ 40 専用レジスタ(「SPR」) 42 キャリー・ビット(「CA」)レジスタ 46 ディスパッチ・ユニット 47 フェッチ・ユニット 48 完了ユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 チャールズ・フィリップ・ロス アメリカ合衆国78729 テキサス州オース チン ティテェスタ・コート 13305 (72)発明者 エドワード・ヒュー・ウェルボン アメリカ合衆国78730 テキサス州オース チン ターキー・クリーク・ドライブ 3637 (72)発明者 ジェック・クリス・ランドルフ アメリカ合衆国55902 ミネソタ州ロチェ スターメドウ・ラン・ドライブ サウス・ ウェスト 316

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】第1のパフォーマンス・モニタを含む第1
    のプロセッサと、 第1のプロセッサに結合され、第2のパフォーマンス・
    モニタを含む第1の装置と、 第1および第2のパフォーマンス・モニタ間で通信する
    ための回路とを含み、 第1および第2のパフォーマンス・モニタのそれぞれ
    が、プロセッサおよび装置内の指定の信号を受け取って
    カウントするようにプログラム可能であることを特徴と
    する、データ処理システム。
  2. 【請求項2】第1および第2のパフォーマンス・モニタ
    のそれぞれが、ソフトウェアでアクセス可能なレジスタ
    内のビット・フィールドを使用してプログラム可能であ
    ることを特徴とする、請求項1に記載のデータ処理シス
    テム。
  3. 【請求項3】第1および第2のパフォーマンス・モニタ
    が、対応するレジスタ内の同様のビット・フィールドを
    プログラミングすることにより同様の機能を実行するよ
    うにプログラミングできることを特徴とする、請求項2
    に記載のデータ処理システム。
  4. 【請求項4】第1のパフォーマンス・モニタが、第2の
    パフォーマンス・モニタの動作をトリガするように動作
    可能であることを特徴とする、請求項1に記載のデータ
    処理システム。
  5. 【請求項5】第2のパフォーマンス・モニタが、第1の
    パフォーマンス・モニタに動作の結果を送信するように
    動作可能であることを特徴とする、請求項4に記載のデ
    ータ処理システム。
  6. 【請求項6】第1のプロセッサに結合され、第3のパフ
    ォーマンス・モニタを含む第2のプロセッサと、 第2のプロセッサに結合され、第4のパフォーマンス・
    モニタを含む第2の装置と、 第3および第4のパフォーマンス・モニタ間で通信する
    ための回路とをさらに含むことを特徴とする、請求項1
    に記載のデータ処理システム。
  7. 【請求項7】第1および第2のパフォーマンス・モニタ
    に結合された第3のパフォーマンス・モニタを含むプロ
    グラム可能回路をさらに含むことを特徴とする、請求項
    1に記載のデータ処理システム。
  8. 【請求項8】第2のパフォーマンス・モニタの動作のト
    リガをマスクするための回路をさらに含むことを特徴と
    する、請求項4に記載のデータ処理システム。
  9. 【請求項9】第2のパフォーマンス・モニタが、プロセ
    ッサに割込みを送信するように動作可能であることを特
    徴とする、請求項1に記載のデータ処理システム。
  10. 【請求項10】第2のパフォーマンス・モニタからの割
    込みの受取りをマスクするための回路をさらに含むこと
    を特徴とする、請求項9に記載のデータ処理システム。
  11. 【請求項11】第2のパフォーマンス・モニタが、第1
    のパフォーマンス・モニタの動作をトリガするように動
    作可能であることを特徴とする、請求項1に記載のデー
    タ処理システム。
  12. 【請求項12】第1および第2のパフォーマンス・モニ
    タが、同様に順序付けられたアドレス・データをプログ
    ラミングすることにより同様の機能を実行するようにプ
    ログラミングできることを特徴とする、請求項2に記載
    のデータ処理システム。
  13. 【請求項13】[1]第1のパフォーマンス・モニタを
    含む第1のプロセッサと、[2]第1のプロセッサに結
    合され、第2のパフォーマンス・モニタを含む第1の装
    置とを含み、第1および第2のパフォーマンス・モニタ
    のそれぞれがプロセッサおよび装置内の指定の信号を受
    け取ってカウントするようにプログラム可能であるデー
    タ処理システムにおいて、指定の動作のパフォーマンス
    監視を行うための方法であって、 ソフトウェアでアクセス可能なレジスタにより第1およ
    び第2のパフォーマンス・モニタをプログラミングする
    ステップと、 第1および第2のパフォーマンス・モニタにより、1つ
    または複数のカウント機能を実行するステップと、 第1および第2のパフォーマンス・モニタ間で1つまた
    は複数のカウント機能の結果を通信するステップとを含
    む方法。
  14. 【請求項14】前記プログラミング・ステップが、第1
    および第2のパフォーマンス・モニタの対応するレジス
    タ内の同様のビット・フィールドをプログラミングする
    ステップをさらに含むことを特徴とする、請求項13に
    記載の方法。
  15. 【請求項15】前記通信ステップが、第1のパフォーマ
    ンス・モニタにより、第2のパフォーマンス・モニタの
    動作をトリガするステップをさらに含むことを特徴とす
    る、請求項13に記載の方法。
  16. 【請求項16】前記通信ステップが、第2のパフォーマ
    ンス・モニタにより、第1のパフォーマンス・モニタに
    動作の結果を送信するステップをさらに含むことを特徴
    とする、請求項15に記載の方法。
  17. 【請求項17】第1のパフォーマンス・モニタを含む第
    1のプロセッサと、 第1のプロセッサに結合され、第2のパフォーマンス・
    モニタを含む第2のプロセッサと、 第1および第2のパフォーマンス・モニタ間で通信する
    ための回路とを含み、 第1および第2のパフォーマンス・モニタのそれぞれ
    が、第1および第2のプロセッサ内の指定の信号を受け
    取ってカウントするようにプログラム可能であることを
    特徴とする、データ処理システム。
  18. 【請求項18】第1および第2のパフォーマンス・モニ
    タのそれぞれが、ソフトウェアでアクセス可能なレジス
    タ内のビット・フィールドを使用してプログラム可能で
    あることを特徴とする、請求項17に記載のデータ処理
    システム。
  19. 【請求項19】第1および第2のパフォーマンス・モニ
    タが、対応するレジスタ内の同様のビット・フィールド
    をプログラミングすることにより同様の機能を実行する
    ようにプログラミングできることを特徴とする、請求項
    18に記載のデータ処理システム。
  20. 【請求項20】第1のパフォーマンス・モニタが、第2
    のパフォーマンス・モニタの動作をトリガするように動
    作可能であることを特徴とする、請求項17に記載のデ
    ータ処理システム。
  21. 【請求項21】第2のパフォーマンス・モニタが、第1
    のパフォーマンス・モニタに動作の結果を送信するよう
    に動作可能であることを特徴とする、請求項20に記載
    のデータ処理システム。
  22. 【請求項22】第2のパフォーマンス・モニタが、第1
    のプロセッサに割込みを送信するように動作可能である
    ことを特徴とする、請求項17に記載のデータ処理シス
    テム。
  23. 【請求項23】第1のパフォーマンス・モニタを含む第
    1のプログラム可能装置と、 第1のプログラム可能装置に結合された第2の装置と、 第1のプログラム可能装置に結合された第3の装置と、 第1のパフォーマンス・モニタが第2および第3の装置
    間の通信を監視できるようにするための回路とを含む、
    データ処理システム。
  24. 【請求項24】第1のプログラム可能装置がプロセッサ
    ではないことを特徴とする、請求項23に記載のデータ
    処理システム。
JP10049127A 1997-03-13 1998-03-02 データ処理システムにおけるパフォーマンス監視 Expired - Fee Related JP3113855B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/816626 1997-03-13
US08/816,626 US5970439A (en) 1997-03-13 1997-03-13 Performance monitoring in a data processing system

Publications (2)

Publication Number Publication Date
JPH10275099A true JPH10275099A (ja) 1998-10-13
JP3113855B2 JP3113855B2 (ja) 2000-12-04

Family

ID=25221177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10049127A Expired - Fee Related JP3113855B2 (ja) 1997-03-13 1998-03-02 データ処理システムにおけるパフォーマンス監視

Country Status (4)

Country Link
US (1) US5970439A (ja)
JP (1) JP3113855B2 (ja)
KR (1) KR100280732B1 (ja)
TW (1) TW342480B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6715011B1 (en) 2000-05-31 2004-03-30 International Business Machines Corporation PCI/PCI-X bus bridge with performance monitor
JP2008071237A (ja) * 2006-09-15 2008-03-27 Hitachi Ltd ハードウェアモニタを用いた性能評価システム及び再構築可能な計算機システム
JP2008535040A (ja) * 2005-01-28 2008-08-28 インターナショナル・ビジネス・マシーンズ・コーポレーション 決定的イベント・シーケンスのロギングおよび再生のための命令をカウントするシステムおよび方法
JP2011233158A (ja) * 2006-12-29 2011-11-17 Intel Corp Pcuにプロセッサアーキテクチャイベントをファクタリングすることによる電力使用の最適化
JP2014052962A (ja) * 2012-09-10 2014-03-20 Fujitsu Ltd プロセッサおよびプロセッサの評価方法

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6338159B1 (en) * 1997-12-12 2002-01-08 International Business Machines Corporation System and method for providing trace information
US6233531B1 (en) 1997-12-19 2001-05-15 Advanced Micro Devices, Inc. Apparatus and method for monitoring the performance of a microprocessor
US6526370B1 (en) * 1999-02-04 2003-02-25 Advanced Micro Devices, Inc. Mechanism for accumulating data to determine average values of performance parameters
US6499116B1 (en) * 1999-03-31 2002-12-24 International Business Machines Corp. Performance of data stream touch events
US6629170B1 (en) * 1999-11-08 2003-09-30 International Business Machines Corporation Method and apparatus for a byte lane selectable performance monitor bus
US6438737B1 (en) 2000-02-15 2002-08-20 Intel Corporation Reconfigurable logic for a computer
US6842857B2 (en) * 2001-04-12 2005-01-11 International Business Machines Corporation Method and apparatus to concurrently boot multiple processors in a non-uniform-memory-access machine
US6970809B2 (en) * 2001-08-29 2005-11-29 International Business Machines Corporation Automated configuration of on-circuit facilities
US20030117971A1 (en) * 2001-12-21 2003-06-26 Celoxica Ltd. System, method, and article of manufacture for profiling an executable hardware model using calls to profiling functions
US7043718B1 (en) * 2002-02-15 2006-05-09 Lsi Logic Corporation System real-time analysis tool
US6804631B2 (en) * 2002-05-15 2004-10-12 Microsoft Corporation Event data acquisition
US7457864B2 (en) * 2002-11-27 2008-11-25 International Business Machines Corporation System and method for managing the performance of a computer system based on operational characteristics of the system components
AU2003283550A1 (en) 2003-01-13 2004-08-10 Arm Limited Data processing performance control
US20040168005A1 (en) * 2003-02-21 2004-08-26 Sun Microsystems, Inc. Methods for interrupting a program and for obtaining program execution acquisition
US7373557B1 (en) * 2003-04-04 2008-05-13 Unisys Corporation Performance monitor for data processing systems
US8365193B2 (en) 2003-08-14 2013-01-29 Oracle International Corporation Recoverable asynchronous message driven processing in a multi-node system
US7269830B2 (en) * 2003-09-16 2007-09-11 Sun Microsystems, Inc. Methods and hardware for safe memory allocation in arbitrary program environments
US7095416B1 (en) 2003-09-22 2006-08-22 Microsoft Corporation Facilitating performance analysis for processing
US7533371B1 (en) 2003-09-22 2009-05-12 Microsoft Corporation User interface for facilitating performance analysis for processing
US7395527B2 (en) 2003-09-30 2008-07-01 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses
US7937691B2 (en) * 2003-09-30 2011-05-03 International Business Machines Corporation Method and apparatus for counting execution of specific instructions and accesses to specific data locations
US20050071516A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically profile applications
US8381037B2 (en) 2003-10-09 2013-02-19 International Business Machines Corporation Method and system for autonomic execution path selection in an application
US7526757B2 (en) * 2004-01-14 2009-04-28 International Business Machines Corporation Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program
US7415705B2 (en) * 2004-01-14 2008-08-19 International Business Machines Corporation Autonomic method and apparatus for hardware assist for patching code
US7895382B2 (en) 2004-01-14 2011-02-22 International Business Machines Corporation Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs
US7392370B2 (en) * 2004-01-14 2008-06-24 International Business Machines Corporation Method and apparatus for autonomically initiating measurement of secondary metrics based on hardware counter values for primary metrics
US7290255B2 (en) * 2004-01-14 2007-10-30 International Business Machines Corporation Autonomic method and apparatus for local program code reorganization using branch count per instruction hardware
US7299319B2 (en) * 2004-03-22 2007-11-20 International Business Machines Corporation Method and apparatus for providing hardware assistance for code coverage
US7421684B2 (en) * 2004-03-22 2008-09-02 International Business Machines Corporation Method and apparatus for autonomic test case feedback using hardware assistance for data coverage
US8135915B2 (en) * 2004-03-22 2012-03-13 International Business Machines Corporation Method and apparatus for hardware assistance for prefetching a pointer to a data structure identified by a prefetch indicator
US7526616B2 (en) * 2004-03-22 2009-04-28 International Business Machines Corporation Method and apparatus for prefetching data from a data structure
US7480899B2 (en) * 2004-03-22 2009-01-20 International Business Machines Corporation Method and apparatus for autonomic test case feedback using hardware assistance for code coverage
JP4599902B2 (ja) * 2004-06-18 2010-12-15 株式会社日立製作所 ハードウェアモニタを用いた性能解析方法
US7552212B2 (en) * 2004-10-22 2009-06-23 International Business Machines Corporation Intelligent performance monitoring based on user transactions
US20080007563A1 (en) * 2006-07-10 2008-01-10 Microsoft Corporation Pixel history for a graphics application
WO2008111276A1 (ja) 2007-03-15 2008-09-18 Shiseido Company, Ltd. 繰り出し容器
US9027025B2 (en) * 2007-04-17 2015-05-05 Oracle International Corporation Real-time database exception monitoring tool using instance eviction data
US9128895B2 (en) 2009-02-19 2015-09-08 Oracle International Corporation Intelligent flood control management
US20100218171A1 (en) * 2009-02-26 2010-08-26 Computer Measurement Laboratory, Inc. Computer bus monitoring for the adaptive control of executing software processes
US9165086B2 (en) 2010-01-20 2015-10-20 Oracle International Corporation Hybrid binary XML storage model for efficient XML processing
US8458530B2 (en) 2010-09-21 2013-06-04 Oracle International Corporation Continuous system health indicator for managing computer system alerts
US9342432B2 (en) 2011-04-04 2016-05-17 International Business Machines Corporation Hardware performance-monitoring facility usage after context swaps
US8868886B2 (en) * 2011-04-04 2014-10-21 International Business Machines Corporation Task switch immunized performance monitoring
US20130055033A1 (en) 2011-08-22 2013-02-28 International Business Machines Corporation Hardware-assisted program trace collection with selectable call-signature capture

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1491707A (en) * 1974-06-21 1977-11-16 Marconi Co Ltd Processor equipments
FR2345016A1 (fr) * 1976-03-17 1977-10-14 Lainey Gilbert Dispositifs de mesure du taux d'erreur sur les elements binaires d'une liaison numerique
US4905171A (en) * 1987-11-09 1990-02-27 International Business Machines Corporation Workstation controller performance monitor
US5657253A (en) * 1992-05-15 1997-08-12 Intel Corporation Apparatus for monitoring the performance of a microprocessor
US5450349A (en) * 1992-10-27 1995-09-12 Digital Equipment Corporation Computer system performance evaluation system and method
US5485574A (en) * 1993-11-04 1996-01-16 Microsoft Corporation Operating system based performance monitoring of programs
US5845310A (en) * 1993-12-15 1998-12-01 Hewlett-Packard Co. System and methods for performing cache latency diagnostics in scalable parallel processing architectures including calculating CPU idle time and counting number of cache misses
US5796939A (en) * 1997-03-10 1998-08-18 Digital Equipment Corporation High frequency sampling of processor performance counters

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6715011B1 (en) 2000-05-31 2004-03-30 International Business Machines Corporation PCI/PCI-X bus bridge with performance monitor
JP2008535040A (ja) * 2005-01-28 2008-08-28 インターナショナル・ビジネス・マシーンズ・コーポレーション 決定的イベント・シーケンスのロギングおよび再生のための命令をカウントするシステムおよび方法
JP2008071237A (ja) * 2006-09-15 2008-03-27 Hitachi Ltd ハードウェアモニタを用いた性能評価システム及び再構築可能な計算機システム
JP2011233158A (ja) * 2006-12-29 2011-11-17 Intel Corp Pcuにプロセッサアーキテクチャイベントをファクタリングすることによる電力使用の最適化
JP2014052962A (ja) * 2012-09-10 2014-03-20 Fujitsu Ltd プロセッサおよびプロセッサの評価方法

Also Published As

Publication number Publication date
KR19980079448A (ko) 1998-11-25
KR100280732B1 (ko) 2001-02-01
TW342480B (en) 1998-10-11
JP3113855B2 (ja) 2000-12-04
US5970439A (en) 1999-10-19

Similar Documents

Publication Publication Date Title
JP3113855B2 (ja) データ処理システムにおけるパフォーマンス監視
US5835702A (en) Performance monitor
US5691920A (en) Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5987598A (en) Method and system for tracking instruction progress within a data processing system
US5752062A (en) Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5797019A (en) Method and system for performance monitoring time lengths of disabled interrupts in a processing system
US6446029B1 (en) Method and system for providing temporal threshold support during performance monitoring of a pipelined processor
US5751945A (en) Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
JP3537030B2 (ja) 回路、方法及びプロセッサ
US8615619B2 (en) Qualifying collection of performance monitoring events by types of interrupt when interrupt occurs
US6708296B1 (en) Method and system for selecting and distinguishing an event sequence using an effective address in a processing system
JP3531731B2 (ja) 投機的プロセッサ内で非投機的イベントをカウントするための方法およびシステム
US7200522B2 (en) Method, apparatus, and computer program product in a performance monitor for sampling all performance events generated by a processor
US7197586B2 (en) Method and system for recording events of an interrupt using pre-interrupt handler and post-interrupt handler
US5938760A (en) System and method for performance monitoring of instructions in a re-order buffer
US6189072B1 (en) Performance monitoring of cache misses and instructions completed for instruction parallelism analysis
US5991708A (en) Performance monitor and method for performance monitoring within a data processing system
US5949971A (en) Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
US6499116B1 (en) Performance of data stream touch events
WO2009085088A1 (en) Mechanism for profiling program software running on a processor
US5881306A (en) Instruction fetch bandwidth analysis
US6415378B1 (en) Method and system for tracking the progress of an instruction in an out-of-order processor
US5748855A (en) Method and system for performance monitoring of misaligned memory accesses in a processing system
US5729726A (en) Method and system for performance monitoring efficiency of branch unit operation in a processing system
US6530042B1 (en) Method and apparatus for monitoring the performance of internal queues in a microprocessor

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080922

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees