JPH0816878B2 - 命令サンプリング計測のための装置および方法 - Google Patents

命令サンプリング計測のための装置および方法

Info

Publication number
JPH0816878B2
JPH0816878B2 JP3151053A JP15105391A JPH0816878B2 JP H0816878 B2 JPH0816878 B2 JP H0816878B2 JP 3151053 A JP3151053 A JP 3151053A JP 15105391 A JP15105391 A JP 15105391A JP H0816878 B2 JPH0816878 B2 JP H0816878B2
Authority
JP
Japan
Prior art keywords
instruction
execution
signal
machine
iid
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 - Lifetime
Application number
JP3151053A
Other languages
English (en)
Other versions
JPH04233637A (ja
Inventor
ダグラス、ウェイン、ウエストコット
バレリー、ホワイト
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 JPH04233637A publication Critical patent/JPH04233637A/ja
Publication of JPH0816878B2 publication Critical patent/JPH0816878B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

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

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ディジタルコンピュー
タにおける計測および監視に関する。より詳しく言え
ば、本発明は、アウトオブシーケンス方式で命令を実行
できる処理装置の計測および監視に関する。
【0002】
【従来の技術およびその課題】大型処理装置における計
測は、従来、実行されたCPU命令ストリームに関する
情報の収集を伴う。収集されたデータは、重大な命令ス
トリームの障害を識別するために使用され、その結果、
プログラムのデータ構造または命令ストリーム自体はキ
ャッシュまたは機械構造に適合できる。例えば、計測デ
ータは、コンピュータのオペレーティングシステムの性
能の問題を識別し決定するために使用できる。
【0003】処理装置の計測(従来的にはモニタまたは
監視システムとも称する)の例は、本発明と同一の譲受
人に譲渡されたEilert他に対する米国特許第4,
590,550号(Eilert特許)に見ることがで
きる。Eilert特許は、データ処理システムのため
の内部分散形ハードウエア/ソフトウエアモニタを開示
している。Eilert特許のこのモニタは、システム
の各種ハードウエア構成要素内に分散された多数の計測
テーブルユニット(ITU)にハードウエア信号を収集
する。収集されたハードウエア信号は、追跡テーブルに
設けられたソフトウエア制御追跡項目に関連づけられ
る。Eilert特許のモニタは、機械信号が時間駆動
(周期)サンプリングパルスと同期されて記録される、
時間サンプリング法を使用している。
【0004】Eilert特許のこの時間駆動サンプリ
ングパルスは、頻繁にまたは周期的に発生する機械信号
の監視には十分に適している。しかしながら、一部の機
械信号は、頻繁なまたは周期的なものではない。それは
特に、システム事象を指示する機械信号について当ては
まる。システム事象は、頻繁にではなく、また、不定期
な時間間隔で発生し得る。Eilert特許の周期サン
プリングパルスは、関係する事象中に発生しないかもし
れないので、事象の発生が見逃される、または(およ
び)、不必要なデータが記録される可能性がある。
【0005】Eilert特許のモニタに対する改良
は、本発明と同一の譲受人に譲渡されたLevin他に
対する米国特許第4,821,178号(Levin特
許)に開示されている。Levin特許の監視システム
では、Eilert特許に開示された汎用ITU構造内
の動作のための代替計測モードとして事象駆動サンプリ
ングが付与されている。事象駆動サンプリングは、選択
された事象が発生した場合にのみサンプリングパルスを
生じる。Levin特許の事象駆動サンプリングは、不
定期的発生事象にもとづく機械信号の監視を可能にす
る。
【0006】Levin特許およびEilert特許の
計測装置は、従来のほとんどのCPUを監視するタスク
には十分に適しているが、アウトオブシーケンス形処理
装置の命令の監視には問題がある。Eilert特許お
よびLevin特許の計測では、監視された機械信号
は、ハードウエアのラッチから直接読出し、計測配列に
入れることができる。命令を順次的に実行する処理装置
においては、この技法は、配列に格納されたデータと関
係する完了した命令との間に自然な対応(例えば、実行
時間の関して)が維持されるので、適切である。だが、
命令がアウトオブシーケンス方式で実行される処理装置
では、完了した命令と生成された機械信号との間の対応
を確保することはずっと困難である。
【0007】アウトオブシーケンス形CPUの機械信号
の監視に関する問題は、従来のアウトオブシーケンス命
令処理の要約によってさらに明白となろう。アウトオブ
シーケンス命令処理では、機械(すなわちCPU、中央
処理装置)は、一連の命令のそれぞれをパイプライン方
式で解読し、それらの実行を開始する。たいていは、後
続する命令が先行する命令より以前に実行される。各命
令が実行を終了すると、命令は、機械においてアウトオ
ブシーケンス方式で実行されたとしても、それが完了し
た順番に待ち行列に入る。機械はそれ以前の命令に関す
る命令ストリームを完了する前に命令を取出し、解読
し、実行しているので、取出され、解読され、実行され
た命令の一部は、完了した以前の命令によって、また
は、その命令ストリームへの割込みによって無駄にされ
る可能性がある。また機械でも、完了時には、実行され
た命令の種類に関する情報は上書きされてしまってい
る。
【0008】アウトオブシーケンス処理は、計測ユーザ
に対して問題を提示している。従来の計測は通常、その
ような環境において完了した命令と生成された機械信号
との間の対応を維持するための手段を備えていないから
である。計測ユーザは一般に、完了した命令に関する機
械信号に関心がある。しかしアウトオブシーケンス処理
では、多くの命令は通常、その命令が機械信号を生成
し、また、システム事象を発生させたとしても完了しな
い。従って、従来の計測は、まったく完了していない命
令に関する相当量のデータを収集することもある。さら
に、CPUは、完了した命令と生成された機械信号との
間の自然な対応を維持しないので、単に実行中に監視さ
れた信号を捕捉することだけでは、計測ユーザに多くの
重要な性能の判定を行うために十分な情報を与えないこ
とになる。
【0009】アウトオブシーケンス処理環境は、図1に
よってさらに十分に理解されよう。図1の機械では、コ
ンピュータプログラムを形成する命令は、システム主記
憶装置102に記憶されている。実行を遂行するため
に、各命令は、CPUによって付与された記憶アドレス
に従って論理順に(ブロック104で)取出される。
「論理順」というのは、プログラマが命令を完了させる
ように意図した順序でそれらの命令が主記憶装置から取
出されるということである。
【0010】命令は、取出された後、命令に埋め込まれ
た命令コードにもとづいて(ブロック106で)解読さ
れる。命令コードは、命令がどのような種類であるかを
識別する(例えば、分岐、レジスタロード、格納な
ど)。解読されると、その命令コード情報はもはや命令
コード形式ではCPUにとって必要とされない。命令コ
ードから機械レベルのコマンドが生成され、その命令コ
ード情報は次の命令によって上書きされる。命令の機械
レベルの1集合だけが保持される。CPUは、実行され
た機械レベルの命令とその元の命令コードとの対応を維
持しない。
【0011】解読時に、(ブロック106で)各命令に
順次的な命令識別番号(IID)が割当てられる。II
Dは輪番で割当てられる。言い換えれば、割当てられる
IIDは、例えば、1から32までの範囲となる。取出
された最初の命令はIID1が割当てられる。取出され
た次の命令はIID 2が割当てられる。取出された第
3の命令はIID 3が割当てられる。取出された32
番目の命令はIID32が割当てられる。そして33番
目に取出された命令は再びIID 1が割当てられる、
というように行われる。
【0012】IIDを割当てられた(タグ付けられた)
後、その命令は(ブロック112で)実行される。各命
令は実行要素に送信される。各CPUには多数の実行要
素114〜122がある。これらの実行要素は並列に動
作し、それぞれ命令を相互に独立して処理する。実行を
待っている命令は、1つの実行要素が以前の命令の実行
を完了するまで実行要素待ち行列に入れられる。
【0013】異なる命令はしばしば異なる実行マシンサ
イクル数を要する。実行時間の違いの結果として、実行
要素はしばしば、命令が取出された順序と異なる順序で
その命令の実行を終了する。これをアウトオブシーケン
ス実行と称する。
【0014】命令が実行を終了したという事実は、その
実行結果が妥当であるということを保証するものではな
い。例えば、条件分岐命令が、主記憶装置102で後続
するレジスタ格納命令より以前に取出されることもあり
得る。レジスタ格納命令は第1の実行要素(例えばブロ
ック114)に送られ、条件分岐命令は第2の実行要素
(例えばブロック116)に送られるかもしれない。
【0015】上記の例では、レジスタ格納命令のほうが
条件分岐命令より以前に実行を終了する。しかしCPU
は、分岐がまだ実行途中であるためにその分岐条件が適
合するかどうかをまだ判断していないであろう。実際に
分岐が行われるとすれば、プログラムカウンタはその分
岐の結果としてプログラムの別の部分に飛び越すので、
レジスタ格納命令の結果はまったく使用されなくなる
(すなわち、無効となる)。従って、レジスタ格納命令
の結果は無効となるであろう。
【0016】実行結果が妥当であることが判断される時
点を「完了」と称する。命令の「完了」または「非完
了」は完了論理126によって判断される。各命令が実
行を完了すると、その結果は格納バッファ124に格納
される。各実行要素が命令の実行を完了すると、実行要
素は完了論理126に通知する。完了論理126は、完
了する最新の命令および、実行は終了したがまだ完了し
ていない以降の取出された命令を追跡している。実行が
実際に妥当であることが判断されると、完了論理はII
D N完了信号(Nは命令識別番号)を表明することに
より命令が完了したことを指示する。
【0017】上記の例で、分岐が行われたことを実行要
素によって知らされると、完了論理126は、レジスタ
格納命令の結果を保持する格納バッファロケーションに
無効の印をつけ、命令ストリームの処理は継続される。
上記の例で分岐が行われないとすれば、完了論理126
は、主記憶装置102またはCPUの内部レジスタをそ
の完了された命令に関する格納バッファ124の内容で
更新し、他の処理要素に命令が完了されていたことを指
示するために信号を送るであろう。
【0018】アウトオブシーケンス命令実行は、計測ユ
ーザに問題を提示する。計測ユーザは完了した命令スト
リームに関心がある。しかし、アウトオブシーケンス処
理によって、ユーザが求める情報(元の命令コード、キ
ャッシュミス状態、その他のシステム事象データなど)
は、たいてい、関係する命令が完了する時までには機械
に存在しなくなる。さらに、従来の計測は通常、完了し
た命令とそれが生成する機械信号との間の対応を維持す
るように適応されていないので、ユーザは、キャッシュ
ミスその他のシステム事象を、それらを発生させた完了
した命令に関連づけることができずに取り残されてしま
う。
【0019】
【課題を解決するための手段】本発明の目的は、監視さ
れたデータと関係する完了した命令との間の対応を維持
するような方法でアウトオブシーケンス実行機械におけ
る命令処理を監視することである。
【0020】本発明の第2の目的は、アウトオブシーケ
ンス実行機械におけるキャッシュミスその他のシステム
事象を、オペレーティングシステムコードの特定の命令
に関連づけることである。
【0021】本発明の第3の目的は、プログラマが、オ
ペレーティングシステムの性能に影響する要因をより明
確に理解するためにアウトオブシーケンス実行機械にお
けるオペレーティングシステムモジュールの実行を調査
できるようにすることである。
【0022】前述の目的は、命令サンプリングのシステ
ムおよびその方法によって達成される。命令サンプリン
グでは、既定の命令識別番号(IID)をタグ付けられ
た命令が計測によって識別される。その既定のIIDを
有する命令が検出されると、その命令に関する情報がア
ウトオブシーケンス実行の進行と同時に捕捉される。命
令が完了すれば、捕捉されていた情報は、記憶配列の単
一の計測項目として格納される。
【0023】好ましい実施例において、命令サンプリン
グは、米国特許第4,821,178号(Levin特
許)の事象駆動サンプリングと組み合わせることが有利
である。この事象駆動命令サンプリングは、オペレーテ
ィングシステム計測に、キャッシュミスその他のシステ
ム事象をオペレーティングシステム/アプリケーション
コードの特定の命令に関連づける能力を付与する。各オ
ペレーティングシステムモジュールのキャッシュミス率
はオペレーティングシステムの性能をより明確に理解す
るために調査できる。
【0024】
【実施例】〔1.概要〕計測サンプリングは、アウトオ
ブシーケンス実行機械における命令の処理を監視するた
めのシステムおよび方法を付与する。アウトオブシーケ
ンス実行機械の実行パイプラインにおける一連の各命令
は、命令識別番号(IID)をタグ付けられる。計測サ
ンプリングの好ましい実施例に従えば、そのCPU計測
はIID24をタグ付けられた命令(以下、IID 2
4命令と呼ぶ)を識別する。IID 24を有するキャ
ッシュヒット/ミスデータその他の関係する情報の命令
が検出されると、その命令に関連する命令コード、すな
わち実行データは、中央処理装置(CPU)各所に分散
された多数のレジスタに捕捉される。
【0025】関係する情報が捕捉されると、計測は、検
出されたIID 24命令が実行を完了したかどうかを
判断するようにCPUを監視する。検出されたIID
24命令が完了しており、ユーザによって選択されたト
リガ条件に適合していれば、その命令に関連する捕捉さ
れた情報は、単一の計測項目として計測配列に格納され
る。検出されたIID 24命令が完了しておらず、ま
たは、ユーザ選択トリガ条件に適合していなければ、そ
の次に検出されたIID 24命令に関連するデータが
レジスタに捕捉される。システム、計測プログラムまた
はユーザによって終了されるまで、上記のプロセスが検
出されたIID 24命令のそれぞれについて繰り返さ
れる。
【0026】命令サンプリングのCPU計測への応用
は、図3によってさらに明瞭に理解されよう。命令の処
理において、機械信号31A〜Zがアウトオブシーケン
ス形CPUによって生成される。信号が生成されると、
各IID 24命令の実行に関連する機械信号は、信号
コレクタ304によって識別され捕捉(収集)される。
サンプリングパルストリガ論理318によって各サンプ
リングパルスが生成されると、信号コレクタ304に捕
捉されていたデータは、アドレスジェネレータ33の制
御のもとで計測テーブル配列〔ITA〕32に項目とし
て書込まれる。計測テーブル配列32のデータは、プロ
セッサ制御要素206のコマンドでマルチプレクサ(M
UX)316を通じて記憶装置(磁気テープ212な
ど)へ選択的に出力すことができる(図2)。
【0027】サンプリングパルストリガ論理318は、
事象選択論理307および第N事象制御論理309を含
む。事象選択論理は、条件選択論理302から選択され
たシステム条件信号を、CPUおよび信号コレクタ30
4からシステム事象関連機械信号を受信する。事象選択
論理は、システム事象と条件信号を論理的に結合するた
めの回路を含む。
【0028】事象選択論理307では、操作員によって
選択された事象がサンプリングパルスを生成するための
基礎として使用される。この操作員選択事象は、システ
ム事象単独、または、システム条件との論理結合による
システム事象(すなわち条件付き事象)とすることがで
きる。サンプリングパルスの生成は、第N事象制御論理
309で事前に選択された値によって決定される選択事
象のN番目の発生を条件とする。第N事象制御論理が既
定のカウントに達した後、選択された事象の発生中に完
了すべき最初のIID 24命令ごとに、サンプリング
パルスが線310に生成される。 〔2.システム環境および相互接続〕命令サンプリング
計測のシステム環境および相互接続を図2によって説明
する。図2は多重プロセッサ(MP)を示す。これは、
自己のアウトオブシーケンス形CPU 202および2
04のそれぞれに計測テーブルユニット(ITU)を内
部に備えている。また、プロセッサ制御要素(PCE)
206、チャネル制御要素(CCE)208およびシス
テム制御要素(SCE)210も備えている。PCE
206(Eilert特許ではPCと称する)およびS
CE 210は、米国特許第4,590,550号およ
び同第4,821,178号に図示された種類のもので
ある。CCE 208は、IBMシステム370コンピ
ュータで使用される種類の従来のチャネル制御システム
である。コマンド経路151がITUとPCEを連結し
て図示されている。
【0029】PCEは、ITUサブシステムに対する制
御が行われるシステム操作員操作卓と関連している。す
べてのITU出力バッファがPCEに存在する。これら
の出力バッファは、経路251でのデータ転送によって
ITUから充填される。一杯になると、各出力バッファ
は、PCEのITU出力プログラムの制御のもとで出力
媒体212(テープまたはディスクなど)に書込まれ
る。PCEのITU出力プログラムはまた、各ITU配
列からバッファへの経路251でのITUデータの転送
も制御する。経路151および251は、双方向性PC
Eバス51に包含されている。
【0030】計測を助けるPCEの別の機能は、ユーザ
入力にもとづいて、測定実行の初期化および終了を行う
ことである。測定実行を開始・終了するためのコマンド
構造および論理は、従来技術で見られる種類のものであ
り、本発明の一部ではない。
【0031】図2は、好ましい実施例を各ITU内の事
象駆動命令サンプリングレコーダ(ISR)30Aおよ
び30Bとして示すことによって計測構造全体を含んで
いる。また、このITUは、米国特許第4,590,5
50号の時間サンプリングの実施例および、米国特許第
4,821,178号における分岐モードサンプリング
も含む。他の形式のサンプリングレコーダも、命令サン
プリングの代替法としてITUに含めることができる。
非CPU制御要素であるSCEおよびCCEのITU
は、本発明を用いては示されていない。これらの要素
は、命令サンプリングではなく時間駆動サンプリングを
使用する。
【0032】本発明のITUは、米国特許第4,59
0,550号に開示されたような内部分散形監視システ
ムの一部である。 〔3.詳細な構造および動作〕 命令サンプリング計測〔ISI〕を図2から図6によっ
て詳細に説明する。図3に示す各ブロックは、回路およ
びマイクロコードによって実行される論理機能を表す。
これらのブロックは、好ましくは、物理的なパッケージ
構成要素ではない。米国特許第4,590,550号の
要素と同様の機能を実行する図3の各要素は同じ参照番
号が割当てられている。
【0033】測定および制御はPCE操作卓から行わ
れ、そこでユーザは、操作卓表示画面の適切なメニュー
などで、計測コマンドを発し、希望の測定特性を入力す
る。コマンドを選択するためのメニューの使用はコンピ
ュータ技術において公知である。図2において、コマン
ドパラメータは、コマンドにより選択されたいずれかの
ITUに経路151で転送される。選択されたITU
は、そのコマンドをPCEコマンドデコーダ34で受信
し解読し、解読されたコマンド信号に従って適切なラッ
チを設定するブロック300,302,304,30
7,309および316にコマンド信号を出力する。
【0034】ユーザはまた、命令サンプリングに関する
ものだけでなく、計測実行を開始し終了する方法などの
測定コマンドの選択も行うことができる。これらのコマ
ンド選択は、PCEのプログラムに保持することができ
る。 〔3.1 サンプリングモード選択ブロック〕サンプリ
ングモードの選択は、計測モード選択ブロック300で
そのモードを設定することによって行う。各種計測サン
プリングモード(時間サンプリング、分岐サンプリン
グ、命令サンプリングなど)のいずれかがCPU計測に
関して選択できる。本発明には命令サンプリングモード
だけが関連する。 〔3.2 ISI信号コレクタ〕ISI〔命令サンプリ
ング計測〕信号コレクタ〔304〕は、計測されるCP
Uによって処理された各IID 24命令を識別し、各
種実行段階を通じて進行するに従って識別されたIID
24命令に関連する機械信号を捕捉する。
【0035】IID 24命令に関連して多数の機械信
号が捕捉できる。個々の事象はそれぞれ、ブロック30
4でラッチまたはレジスタを持ち、ここにその信号は
(CPU処理要素により)IID 24命令の処理中に
生じると同時に収集される。事象および他の関係する機
械信号は、ISI信号コレクタ304で設定されたレジ
スタに捕捉される。好ましい実施例では、この計測レジ
スタは、関係する信号の出所の近くに位置できるように
CPU各所に物理的に分散される。
【0036】ISI信号コレクタ304は、図4に詳細
に図示されている。CPU処理要素400は、本願の関
連技術の部分で説明した種類のアウトオブシーケンス形
CPUの命令処理論理である。捕捉された信号は、好ま
しくは、命令コード・基底レジスタ、論理アドレス、一
次アドレス空間番号(PASN)、キャッシュミス、発
生相互問合せヒット、および、CPUからの選択マシン
サイクル数を含む。
【0037】命令コード・基底レジスタ情報は、命令コ
ードレジスタ422に捕捉される。IID 24命令に
関連する命令コードだけが捕捉されるようにするため
に、命令コードレジスタ422は線424のIID 2
4命令コード有効信号によって計時されている。IID
24命令コード有効信号は、命令解読・IID割当て
論理(図1のブロック106)が妥当な命令コードがI
ID 24命令に検出されたと判断した時に、中央処理
装置によって生成される。命令の基底レジスタビット
は、命令がそうしたビットを使用している場合にのみ有
効である。それ以外は、その基底レジスタビットは無効
である。
【0038】中央処理装置の命令アドレスレジスタの内
容(論理アドレス)は、アドレスレジスタ426に捕捉
される。IID 24命令に関連する妥当な命令アドレ
スだけが捕捉されるようにするために、アドレスレジス
タ426は線428のIID24 IAR有効信号によ
って計時されている。IID 24 IAR有効信号4
28は、命令取出し論理104(図1)によって、これ
がIID 24に関して妥当な命令アドレスが付与され
たと判断した時に生成される。
【0039】プログラムアドレス空間番号(PASN)
は、PASNレジスタ430に捕捉される。IID 2
4命令に関連するPASNアドレスだけが捕捉されるよ
うにするために、PASNレジスタは線432のIID
24 PASN有効信号によって計時されている。I
ID 24 PASN有効信号は、命令取出し論理(図
1のブロック104)によって、これがIID 24に
関してPASNが付与されたと判断した時に生成され
る。
【0040】計測“A”カウンタ440は、 1.命令解読〜終了カウント、または、 2.要する実行サイクル、のいずれかをカウントするた
めにCPUの処理要素によって計時されている。 好ましい実施例では、いずれか一方だけが計測に選択で
きる。CPUは、PCEによりブロック300のカウン
タA選択レジスタ(図示せず)の値にもとづいていずれ
のマシンサイクルをカウントするかを選択する。“A”
カウンタは、IID 24解読信号によってゼロにリセ
ットされる。
【0041】命令解読〜終了カウントは、IID 24
命令の解読の完了(図1のブロック106)と実行サイ
クルの終了(図1のブロック112)との間に要するマ
シンサイクル数である。これには、実行の終了と命令完
了との間に要するマシンサイクルは含まない。
【0042】要する実行サイクルは、実行要素(図1の
ブロック114〜122)でIID24命令が実行され
るためのマシンサイクル数である。これは、実行の終了
と命令の完了との間に要するマシンサイクル、または、
実行待ち行列待機時間のいずれも含まない。
【0043】計測“B”カウンタ442は、 1.命令解読〜完了カウント、または、 2.(要する実行サイクル)−(キャッシュ待機サイク
ル)、のいずれかをカウントするためにCPUの処理要
素400によって計時されている。好ましい実施例で
は、いずれか一方だけが計測に選択できる。CPUは、
PCEによりブロック300のカウンタB選択レジスタ
(図示せず)の値にもとづいていずれのマシンサイクル
をカウントするかを選択する。“B”カウンタは、II
D 24解読信号によってゼロにリセットされる。
【0044】命令解読〜完了カウントは、IID 24
命令解読の完了の開始(図1のブロック106)と命令
完了の判断(図1のブロック126)との間に要するマ
シンサイクル数である。
【0045】(要する実行サイクル)−(キャッシュ待
機サイクル)は、実行要素(図1のブロック114〜1
22)でIID 24命令が実行されるためのマシンサ
イクル数である。これには、実行の終了と命令の完了と
の間に要するマシンサイクル、実行待ち行列待機時間、
および、実行要素がキャッシュからデータが返されるの
を待っているいずれかのサイクルのいずれのマシンサイ
クルも含まない。
【0046】要する実行サイクルは、ハードウエア性能
の測度である。その他のカウントされた測度は、プログ
ラムが所与のプロセッサのアウトオブシーケンス実行方
法にどれほどうまく適合しているかの指標となる。これ
らの測度はソフトウエアを機械に適合させるために使用
できる。
【0047】命令サンプリングモードには、計測によっ
て監視される6の個別のキャッシュミス信号がある。こ
れらの信号はそれぞれ、キャッシュミスラッチ444〜
454に保持される。各ラッチは、(計測されるCPU
によって生成される)適切なIID 24データキャッ
シュアクセス有効線によって計時されている。同種のラ
ッチは、一度設定されると、リセットされるまでそれを
保持する(すなわち、セット/リセットラッチ)。キャ
ッシュミスラッチは444〜454はIID24解読信
号によってリセットされる。CPUによって生成される
キャッシュミス信号は、以下の通りである。
【0048】a.データキャッシュ格納ミス(線456
のIID 24データキャッシュ格納有効信号によって
C6ラッチ454に計時される) b.データキャッシュ取出しミス(線458のIID
24データキャッシュ取出し有効信号によってC5ラッ
チ452に計時される) c.アクセスレジスタセグメントテーブル起点アドレス
(STO)ミス(線460のIID 24アクセスレジ
スタSTOヒット有効信号によってC1ラッチ444に
計時される) d.アクセスレジスタSTOヒット(線462のIID
24アクセスレジスタSTOミス有効信号によってC
2ラッチ446に計時される) e.データキャッシュミスによって発生したレベル2キ
ャッシュ(L2)取出しミス(線464のIID 24
L2キャッシュアクセス有効信号によってC5ラッチ
450に計時される)。L2キャッシュミスは主記憶装
置アクセスを生じさせるとみなされる。
【0049】f.発生相互問合せヒット(線466のI
ID 24 CCI有効信号によってC3ラッチ448
に計時される)。CCI信号は、計測されるCPUのI
ID24命令により、別のCPUで生じたキャストアウ
トに際して生成される。 〔3.3 条件選択論理〕監視されるシステム条件の選
択は、条件選択論理302に設定される。システム条件
とシステム事象とは、システム事象信号がごく短期間
(例えば、1,2マシンサイクル)であるのに対し、シ
ステム条件信号が多数のサイクルにおいて連続する長期
間を有する点で区別される。システム条件は、システム
事象が発生した場合にも存在し得る。命令サンプリング
のための好ましい選択可能なシステム条件〔信号〕は、
以下の通りである。
【0050】計測調整・制御ラッチ制御命令(ICCL
ATCH) 範囲内命令アドレス(IAWR) プログラムアドレス空間番号(PASN)比較 2以上の条件信号が活動状態になることができる。選択
された条件信号は事象選択論理307に送られ、そこで
事象信号と論理的に結合される。好ましい実施例では、
ICCLATCHは、IAWRと論理的に論理和をとら
れ、ICC−OR−IAWR信号を生成する。 〔3.4 サンプリングパルストリガ論理〕サンプリン
グパルストリガ論理318は、事象選択論理307およ
び第N事象制御論理309を含む。サンプリングパルス
トリガ論理318は、選択された事象が選択された度数
だけ発生した後、IID 24命令が完了し、操作員選
択事象判定基準に適合した場合は必ず、線310にIT
Aアドレスジェネレータへのサンプリングパルスを生成
する。
【0051】(測定をトリガするための監視されるべ
き)特定の種類の事象の選択、または、事象種類の組合
せは、事象選択論理307で設定される。各種条件は、
コマンドに挿入することができる。命令サンプリングに
とって必須条件として使用される好ましい事象は、以下
の通りである。
【0052】・IID 24命令解読 ・タイムストローブ(マシンサイクル) ・データキャッシュ(Dキャッシュ)格納ミス ・データキャッシュ(Dキャッシュ)取出しミス ・レベル2(L2)キャッシュ取出しミス ・発生相互問合せ(CCI) 条件選択論理302からの選択された条件と事象との論
理結合も選択できる。命令サンプリングにとって好まし
い選択可能な論理結合は、以下の通りである。
【0053】・(ICC−OR−IAWR)とタイムス
トローブとの論理積 ・(ICC−OR−IAWR)とIID 24命令解読
との論理積 ・(ICC−OR−IAWR)とデータキャッシュ(D
キャッシュ)格納ミスとの論理積 ・(ICC−OR−IAWR)とデータキャッシュ(D
キャッシュ)取出しミスとの論理積 ・(ICC−OR−IAWR)とDキャッシュミスによ
って生じたL2キャッシュ取出しミスとの論理積 ・PASN比較とIID 24命令解読との論理積 ・PASN比較とデータキャッシュ格納ミスとの論理積 ・PASN比較とデータキャッシュ取出しミスとの論理
積 ・PASN比較とDキャッシュミスによって生じたL2
キャッシュ取出しミスとの論理積 第N事象制御ブロック(以下に詳説する)は、カウント
される選択事象が選択された値Nに達した後、その次に
完了し選択されたトリガ条件を満たすIID24命令の
記録を制御するために使用される。第N事象制御ブロッ
ク309の値Nの選択は、PCE操作卓で実行される。
その他の論理ブロックのためのコマンドと同様、Nの選
択は、好ましくは、各ITA出力バッファにオーバラン
をまったく生じないように(または最低限ですむよう
に)、推定CPU事象頻度にもとづく。
【0054】サンプリングパルストリガ論理は、図5お
よび図6に詳細に図示する。図5および図6はサンプリ
ングパルストリガ論理の概念説明図である。サンプリン
グパルストリガ論理の必須回路は、好ましくは、ゲート
アレイで具体化される。図3および4の同一要素には同
じ参照番号が割当てられている。
【0055】(事象または、事象と条件との論理結合に
もとづく)以下のトリガ条件の一つが、PCE 206
からのコマンドによってサンプリングパルストリガ論理
318の制御レジスタ590に指定される。(PCEか
らの)トリガ条件選択データは、サンプリングパルスト
リガ論理の必須条件選択入力(4ビット)507に生じ
る。この必須条件選択入力は、16の事象/条件の組合
せの一つを、16:1MUX 501の選択によってI
ID 24格納必須条件として選択するために使用され
る。(PCE操作卓で選択された)しきい値Nは、線5
98を通じてしきい値レジスタ505に設定される。サ
ンプリングパルストリガ論理318による線310での
サンプリングパルスの生成は、命令サンプリングモード
が操作員操作卓で設定されており、それにより線596
での命令サンプリングモードビットを設定していると前
提とすることが理解されるはずである。 〔A.グローバルからのタイムストローブ〕タイムスト
ローブ信号(線502)は、SCE 210(図2)に
よって周期的に生成される。MUX 501を通じて選
択されると、タイムストローブ信号は、タイムストロー
ブごとに1度ずつ2進カウンタを増分する。2進カウン
タ503の値がしきい値レジスタ505の値Nに達した
後に最初に完了するIID24命令ごとに、サンプリン
グパルスが線310に生成される。 〔B.IID 24命令解読〕IID 24命令解読信
号(線506)は、(図1のブロック106の)CPU
命令解読・IID割当て論理によって、IID 24命
令の有効命令コードが解読されるとき常にストローブ
(パルス)生成される。IID 24命令解読信号は、
機械信号線31A〜Zのいずれか一つでサンプリングパ
ルストリガ論理に入力する。MUX 501を通じて選
択されると、IID 24命令解読信号は、IID 2
4命令が解読されるごとに2進カウンタ503を増分す
る。2進カウンタ503の値がしきい値レジスタ505
の値Nに達した後に最初に完了するIID 24命令ご
とに、サンプリングパルスが線310に生成される。 〔C.データキャッシュ(Dキャッシュ)格納ミス〕ラ
ッチされたデータキャッシュ格納ミス信号(線508)
は、ISI信号コレクタのC6ラッチ454(図4)か
ら得られる。前述のように、C6ラッチ454は、各I
ID 24命令について一度だけ設定でき、(計測され
るCPUによって生成された)新しい有効なIID 2
4命令解読信号ごとにクリアされる。MUX 501を
通じて選択されると、ラッチされたデータキャッシュ格
納ミス信号は、データキャッシュ格納ミスを発生させた
各IID 24命令の実行ごとに1度ずつ2進カウンタ
503を増分する。2進カウンタ503の値がしきい値
レジスタ505の値Nに達した後、データキャッシュ格
納ミス事象において最初に完了すべきIID 24命令
について、サンプリングパルスが線310に生成され
る。このモードは、データキャッシュ格納ミスを命令テ
ーブル配列に退避させるIID 24命令の処理に関連
するデータのみを生じさせる。 〔D.データキャッシュ取出しミス〕ラッチされたデー
タキャッシュ取出しミス信号(線510)は、ISI信
号コレクタのC5ラッチ452(図4)から得られる。
前述のように、C5ラッチ452は、各IID 24命
令について一度だけ設定でき、新しい有効なIID24
命令解読信号ごとにクリアされる。MUX501を通じ
て選択されると、ラッチされたデータキャッシュ取出し
ミス信号は、データキャッシュ取出しミスを発生させた
各IID 24命令の実行ごとに1度ずつ2進カウンタ
503を増分する。2進カウンタ503の値がしきい値
レジスタ505の値Nに達した後、データキャッシュ取
出しミス事象において最初に完了すべきIID 24命
令について、サンプリングパルスが線310に生成され
る。このモードは、データキャッシュ取出しミスを命令
テーブル配列に退避させるIID 24命令の処理に関
連するデータのみを生じさせる。 〔E.Dキャッシュミス(主記憶装置アクセス)によっ
て生じたレベル2(L2)キャッシュ取出しミス〕ラッ
チされたレベル2キャッシュ取出しミス信号(線51
2)は、C4ラッチ450(図4)から得られる。前述
のように、C4ラッチ450は、各IID24命令につ
いて一度だけ設定でき、新しい有効なIID24命令解
読信号ごとにクリアされる。MUX 501を通じて選
択されると、ラッチされたL2キャッシュ取出しミス信
号は、L2キャッシュ取出しミスを発生させた各IID
24命令の実行ごとに1度ずつ2進カウンタ503を増
分する。この信号は、データキャッシュミスが自動的に
主記憶装置アクセスを伴わない(システムに存在するレ
ベル2キャッシュがある場合のような)状況で意味があ
るにすぎないことを理解すべきである。2進カウンタ5
03の値がしきい値レジスタ505の値Nに達した後、
L2キャッシュ取出しミス事象において最初に完了すべ
きIID24命令について、サンプリングパルスが線3
10に生成される。このモードは、L2キャッシュ取出
しミスを命令テーブル配列に退避させるIID 24命
令の処理に関連するデータのみを生じさせる。 〔F.タイムストローブ・(ICC−OR−IAW
R)〕ICCまたは範囲内命令アドレス(IWAR)条
件が発生すると、計測されるCPUはICC−OR−I
AWR信号をストローブ生成する(線514)。ICC
−OR−IAWR信号は、条件選択論理302を介して
機械信号線31A〜Zのいずれか一つでサンプリングパ
ルストリガ論理318に入力する。ICC−OR−IA
WR信号は、ゲート532でタイムストローブ信号50
2と論理積をとられる。MUX 501を通じて選択さ
れると、タイムストローブ・ICC−OR−IAWR
AND信号(線534)は、ICC−OR−IAWR条
件が存在する場合に、各タイムストローブについて2進
カウンタ503を増分する。2進カウンタ503の値が
しきい値レジスタ505の値Nに達した後に、ICCL
ATCHまたはIAWR条件におけるタイムストローブ
に関して最初に完了するIID 24命令ごとに、サン
プリングパルスが線310に生成される。 〔G.IID 24命令解読・(ICC−OR−IAW
R)〕ICC−OR−IAWR信号は、ゲート528で
IID 24命令解読信号506と論理積をとられる。
MUX 501を通じて選択されると、IID 24命
令解読・ICC−OR−IAWR AND信号(線53
0)は、ICC−OR−IAWR条件が存在する場合
に、各IID 24命令解読について2進カウンタ50
3を増分する。2進カウンタ503の値がしきい値レジ
スタ505の値Nに達した後に、ICCLATCHまた
はIAWR条件において最初に完了するIID 24命
令ごとに、サンプリングパルスが線310に生成され
る。 〔H.データキャッシュ格納ミス・(ICC−OR−I
AWR)〕ラッチされたデータキャッシュ格納ミス信号
は、ゲート524でICC−OR−IAWR信号と論理
積をとられる。MUX 501を通じて選択されると、
ラッチされたデータキャッシュ格納ミス・ICC−OR
−IAWR AND信号(線526)は、ICC−OR
−IAWR条件においてデータキャッシュ格納ミス事象
を生じさせる各IID 24命令解読について2進カウ
ンタ503を増分する。2進カウンタ503の値がしき
い値レジスタ505の値Nに達した後に、データキャッ
シュ格納ミス事象およびICCLATCHまたはIAW
R条件において最初に完了するIID 24命令ごと
に、サンプリングパルスが線310に生成される。 〔I.データキャッシュ取出しミス・(ICC−OR−
IAWR)〕ラッチされたデータキャッシュ取出しミス
信号は、ゲート520でICC−OR−IAWR信号と
論理積をとられる。MUX 501を通じて選択される
と、ラッチされたデータキャッシュ取出しミス・ICC
−OR−IAWR AND信号(線522)は、ICC
−OR−IAWR条件においてデータキャッシュ取出し
ミス事象を生じさせる各IID 24命令解読について
2進カウンタ503を増分する。2進カウンタ503の
値がしきい値レジスタ505の値Nに達した後に、デー
タキャッシュ取出しミス事象およびICCLATCHま
たはIAWR条件において最初に完了するIID 24
命令ごとに、サンプリングパルスが線310に生成され
る。 〔J.Dキャッシュミスによって生じたL2キャッシュ
取出しミス・(ICC−OR−IAWR)〕ラッチされ
たL2キャッシュ取出しミス信号は、ゲート516でI
CC−OR−IAWR信号と論理積をとられる。MUX
501を通じて選択されると、ラッチされたL2キャ
ッシュ取出しミス・ICC−OR−IAWR AND信
号(線518)は、ICC−OR−IAWR条件におい
てL2キャッシュ取出しミスを生じさせる各IID 2
4命令解読について2進カウンタ503を増分する。2
進カウンタ503の値がしきい値レジスタ505の値N
に達した後に、L2キャッシュ取出しミス事象およびI
CCLATCHまたはIAWR条件において最初に完了
するIID 24命令ごとに、サンプリングパルスが線
310に生成される。 〔K.タイムストローブ・PASN比較〕PASN比較
信号(線556)は、命令が既定の一次アドレス空間の
記憶域にアクセスした時に、計測されるCPUによって
生成される。PASN比較信号は、条件選択論理302
を介して機械信号線31A〜Zのいずれか一つでサンプ
リングパルストリガ論理に入力する。PASN比較信号
は、ゲート552でタイムストローブ信号と論理積をと
られる。MUX 501を通じて選択されると、タイム
ストローブ・PASN比較AND信号(線554)は、
PASN比較条件においてタイムストローブが生じるご
とに2進カウンタ503を増分する。2進カウンタ50
3の値がしきい値レジスタ505の値Nに達した後に、
PASN比較条件におけるタイムストローブについて最
初に完了するIID 24命令ごとに、サンプリングパ
ルスが線310に生成される。 〔L.IID 24命令解読・PASN比較〕PASN
比較信号は、ゲート548でIID 24命令解読信号
と論理積をとられる。MUX 501を通じて選択され
ると、PASN比較・IID 24命令解読AND信号
(線550)は、PASN比較条件におけるIID 2
4命令解読ごとに2進カウンタ503を増分する。2進
カウンタ503の値がしきい値レジスタ505の値Nに
達した後に、PASN比較条件において最初に完了する
IID 24命令ごとに、サンプリングパルスが線31
0に生成される。 〔M.データキャッシュ格納ミス・PASN比較〕PA
SN比較信号は、ゲート544でラッチされたデータキ
ャッシュ格納ミス信号508と論理積をとられる。MU
X 501を通じて選択されると、ラッチされたデータ
キャッシュ格納ミス・PASN比較AND信号546
は、PASN比較条件においてデータキャッシュ格納ミ
ス事象を生じさせるIID 24命令実行ごとに2進カ
ウンタ503を増分する。2進カウンタ503の値がし
きい値レジスタ505の値Nに達した後に、データキャ
ッシュ格納ミス事象およびPASN比較条件において最
初に完了するIID 24命令ごとに、サンプリングパ
ルスが線310に生成される。 〔N.データキャッシュ取出しミス・PASN比較〕P
ASN比較信号は、ゲート540でラッチされたデータ
キャッシュ取出しミス信号510と論理積をとられる。
MUX 501を通じて選択されると、ラッチされたデ
ータキャッシュ取出しミス・PASN比較AND信号
(線542)は、PASN比較条件においてデータキャ
ッシュ取出しミス事象を生じさせるIID 24命令実
行ごとに2進カウンタ503を増分する。2進カウンタ
503の値がしきい値レジスタ505の値Nに達した後
に、データキャッシュ取出しミス事象およびPASN比
較条件において最初に完了するIID 24命令ごと
に、サンプリングパルスが線310に生成される。 〔O.Dキャッシュミスによって生じたL2キャッシュ
取出しミス・PASN比較〕PASN比較信号は、ゲー
ト536でラッチされたL2キャッシュ取出しミス信号
512と論理積をとられる。MUX 501を通じて選
択されると、ラッチされたL2キャッシュ取出しミス・
PASN比較AND信号(線538)は、PASN比較
条件においてL2キャッシュ取出しミス事象を生じさせ
る各命令ごとに2進カウンタ503を増分する。2進カ
ウンタ503の値がしきい値レジスタ505の値Nに達
した後に、L2キャッシュ取出しミス事象およびPAS
N比較条件において最初に完了するIID 24命令ご
とに、サンプリングパルスが線310に生成される。 〔P.発生相互問合せ(CCI)〕発生相互問合せ(C
CI)信号(線535)は、計測されるCPUによって
生成される。CCI信号は、機械信号線31A〜Zのい
ずれか一つでサンプリングパルストリガ論理318に入
力する。MUX 501を通じて選択されると、CCI
信号356は、CCI条件を発生させた各IID 24
命令の実行ごとに1度ずつ2進カウンタ503を増分す
る。2進カウンタ503の値がしきい値レジスタ505
の値Nに達した後、CCI条件において最初に完了すべ
きIID 24命令について、サンプリングパルスが線
310に生成される。このモードは、CCI事象を命令
テーブル配列に退避させるIID 24命令の処理に関
連するデータのみを生じさせる。
【0056】図5および図6の実施例では、上記の事象
だけが、捕捉されたIID 24データ(すなわち、I
SI信号コレクタ304でレジスタに入れられた、また
は、カウントされたデータ)が格納される前にカウント
されるべきNの事象において可能である。
【0057】第N事象カウンタが既定の値Nに達した後
に最初に完了するIID24命令を処理するための論理
を、図5および図6によって以下に説明する。IID
24命令完了信号は、4:1 MUX 588(事象M
UX)への第1の入力となる。IID 24命令完了信
号は、ANDゲート586(事象ANDゲート)で(M
UX 501からの)選択された事象信号と論理積をと
られ、事象MUX588への第2の入力となる。IID
24命令完了信号は、ゲート592でICC−OR−
TAWR信号と、また、ゲート594でPASN比較信
号と付加的に論理積をとられる。ANDゲート592お
よび594の出力は、事象MUX588への第3および
第4の入力となる。事象MUX 588の出力は、AN
Dゲート560で比較器558の出力と論理積をとられ
る。比較器558が、2進カウンタ503の値が(PC
Eによって事前に設定された)しきい値レジスタ505
のカウントに等しいことを検出すると、比較器558の
出力は、高レベル(真の)状態になる。
【0058】タイムストローブが選択されたトリガ条件
である場合、事象MUX588はIID 24命令完了
入力を選択する。命令サンプリングモードビットが(出
力ANDゲート564で)設定されると、2進カウンタ
503のタイムストローブカウントがしきい値レジスタ
505の値に達した後、次の完了すべきIID 24命
令はサンプリングパルスを線310に生じさせる。
【0059】IID 24命令解読・ICC−OR−I
AWR AND信号が選択されたトリガ条件である場
合、事象MUX 588はANDゲート592の出力を
選択する。カウンタ503は、ICC−OR−IAWR
条件においてIID24命令解読が生じるカウントを維
持する。命令サンプリングモードビットが設定される
と、ICC−OR−IAWR条件の発生において次の完
了すべきIID24命令は、2進カウンタ503のカウ
ントがしきい値レジスタ505の既定のしきい値に達し
た後、サンプリングパルスを線310に生じさせる。
【0060】PASN比較・IID 24命令解読AN
D信号が選択されたトリガ条件である場合、事象MUX
588はANDゲート594の出力を選択する。カウ
ンタ503は、PASN比較条件においてIID 24
命令解読が生じるカウントを維持する。命令サンプリン
グモードビットが設定されると、PASN比較条件の発
生において次の完了すべきIID 24命令は、2進カ
ウンタ503のカウントがしきい値レジスタ505の既
定のしきい値に達した後、サンプリングパルスを線31
0に生じさせる。
【0061】タイムストローブ、IID 24命令解読
・ICC−OR−IAWR AND信号、または、PA
SN比較・IID 24命令解読AND信号以外のトリ
ガ条件が選択された場合、事象MUX 588はAND
ゲート586の出力を選択する。命令サンプリングモー
ドビットが(出力ANDゲート564で)設定される
と、選択された事象の発生において次の完了すべきII
D 24命令は、2進カウンタ503のカウントがしき
い値レジスタ505の希望のカウントに達した後、サン
プリングパルスを線310に生じさせる。
【0062】カウンタ503は線310のサンプリング
パルスの発生によってリセットされる。 〔3.5 ITAおよびITAアドレスジェネレータ〕
ITA 32は、ISI信号コレクタに捕捉されたデー
タを格納することを目的とする記憶配列である。監視さ
れたIID 24命令が完了し、選択されたトリガ条件
に適合すると、ISI信号コレクタからの関連する捕捉
データは、単一の計測項目としてITAに格納される。
【0063】ITA 32は、好ましくは、2の独立に
アドレス可能な区域32Aおよび32Bに編成される。
この配列は、命令サンプリングで関係する全部の信号を
保持するのに十分な幅でなければならない。より好まし
くは、この配列はさらに、他の監視モードで関係するい
ずれかの他の信号を収容するのに十分な幅とすべきであ
る。この後者の実施例は、異なるモードまたは種類の計
測によって同一の配列の使用を可能にする。個別の配列
は、好ましくは、診断および性能計測のために付与され
る。
【0064】命令サンプリングのための出力バッファ制
御は以下のように行われる。
【0065】ITAアドレスジェネレータには2のテー
ブルアドレスカウンタ(TAC)がある。書込みTAC
332は、ISI信号コレクタからのデータの書込み
のための項目アドレスをITAに付与するために使用さ
れる。読出しTAC 331は、ITAからのデータを
読出すための項目アドレスをPCEの記憶装置に付与す
るために使用される。好ましい実施例では、1つのTA
Cアドレスバス336があり、読出しはITAへの書込
みが進行中でない場合にのみ使用可能となる。サンプリ
ングパルスが線310でITAアドレスジェネレータ3
3によって受信された(かつ、ITAが後述するように
書込み禁止となっていない)場合、書込みTAC 33
2によって指示された現在アドレスの(ISI信号コレ
クタ304からの)命令サンプルの格納のためにITA
アドレスジェネレータ33にITAを使用可能にさせ
る。
【0066】ITAの前半32Aが一杯になると(書込
みTAC 332が第64項目を指すまで増分されたこ
とにより指示される)、前半満杯ビットがITAアドレ
スジェネレータ33内のITA状況レジスタ333に設
定される。同様に、ITAの後半32Bが一杯になると
(書込みTAC 332が第128項目を指すまで増分
されたことにより指示される)、後半満杯ビットがIT
Aアドレスジェネレータ33内のITA状況レジスタに
設定される。ITAの両半分が一杯になると、ISI信
号ジェネレータからのITAへの書込みはITAアドレ
スジェネレータによって禁止される。ITAの両半分が
一杯である時に線310のサンプリングパルスがITA
アドレスジェネレータによって受信された場合、ITA
アドレスジェネレータはITA状況レジスタにオーバラ
ンビットを設定する。
【0067】ITAの各半分について1オーバランビッ
トがある。設定されるビットは書込み禁止中の書込みT
ACのアドレスに依存する。書込みTACが書込み禁止
中にITAの前半32Aを指示している場合、前半オー
バラン状況ビットが設定される。TACが書込み禁止中
にITAの後半32Aを指示している場合、後半オーバ
ラン状況ビットが設定される。
【0068】ITA状況レジスタ333は、ITAから
読出しを開始する前に(経路338によって)PCEに
よって読出される。状況レジスタがオーバランを指示す
る場合、計測ユーザがデータが失われたことを認識で
き、その事実の重要性を分析できるように計測制御プロ
グラムに報告される。代替的な実施例として、ITAア
ドレスレジスタはオーバランカウンタを含むことがで
き、オーバランの数がITA状況の一部として報告され
るようにすることができる。
【0069】PCEのコマンドによって、ブロック33
の読出しTAC 331は、そのアドレスバス336で
ITAに読出しアドレスを与える。PCEは、ITAの
いずれの半分が読出すべきかを判断するためにその配列
満杯状況を使用する。前述のように、ITAの読出しは
ITAの書込み動作の間に生じる。PCEがITAの半
分全部を読出すと、ITAアドレスジェネレータ33に
ITAのその半分に関連するオーバランおよび配列満杯
状況ビットをリセットし、ISI信号コレクタから書込
むためにそのITAの半分を開放するように命じる。
【0070】代替的な実施例として、ITAアドレスジ
ェネレータは、従来の二重バッファ方式で配列の半分に
読み書きするためにTACを使用することができる。さ
らに代替的な実施例として、米国特許第4,821,1
78号に説明されたように、単一のTACを使用するこ
ともできる。ITAアドレスジェネレータがITAの入
力アドレス指定および出力アドレス指定の両方について
単一のTACだけを使用する場合、ITAゲート31に
よって受信されたCPU信号は、1)線310のトリガ
信号(サンプリングパルス)が第N事象制御論理309
から付与された場合、および、2)ITAアドレスジェ
ネレータ33のTACがその出力バッファに充填された
ITA内容を出力しているがITA入力はロックされて
いない場合にのみ、ITAに格納される。
【0071】PCEにITAからのデータの多様な組合
せを読出させるために、計測項目は、カプレット(2バ
イトの組)単位でITAアドレスジェネレータ33から
読出される。各カプレットは、マルチプレクサ(MU
X)316を通じてPCEによって個別にアドレス指定
できる(すなわち、ビット0〜15は1カプレットとし
て、ビット16〜31は別のカプレットとして、という
ように)。MUX 316は、PCEからPCEコマン
ドデコーダ34を介して(経路312で)MUX316
に付与された選択データによって直接(PCEの1読出
しサイクルで)ITA 32のいずれかの1カプレット
を選択するために使用されるようにすることができる。
【0072】経路314は、米国特許第4,590,5
50号の内部分散監視システムで開示された種類のSA
Tアドレス制御装置(図示せず)にITAアドレスを供
給する。米国特許第4,590,550号の内部分散監
視システムで開示された(図2,参照番号35,35
B,36,36A)種類の従来の追跡・SATゲート論
理(図示せず)が備わっており、従来の形式で命令サン
プリングレコーダに接続されている。
【0073】ITA項目の格納は、サンプリングパルス
が線310に付与された瞬間に発生するにすぎず、その
結果、ITA 32に入力された各サンプルは選択され
たトリガ条件に適合するIID 24の単一の発生に対
応する。 〔4.動作の要約〕次に、命令サンプリング計測の動作
を図2によって概説する。測定制御コマンド信号は、P
CEから各ITUにバス51で送信される。コマンド経
路151は、バス301,312および318に制御信
号を生成し出力するPCEコマンドデコーダ34(図
3)によって受信される。前述のように、コマンド経路
151およびデータ経路251とも、実際には、単一の
双方向性PCEバス51として具体化されている。制御
信号は、前述のように、命令サンプリング計測の動作お
よび選択の設定は、以下のように要約できる。
【0074】A.計測モードが計測モード選択ブロック
300で計測サンプリングモードに設定される。(命令
サンプリングモードでは、線55で受信された時間サン
プリング入力パルスはCPUのITUに到達することを
禁止される。) B.条件選択論理302が、測定実行中に活動状態にな
る条件を選択するように設定される。
【0075】C.事象選択論理307が、事象または、
事象もしくは条件の組合せを選択するように設定され
る。
【0076】D.第N事象制御論理ブロック309が値
Nに設定される。これは、ブロック309のカウンタ5
03のためのしきい値レジスタ505のしきい値を値N
に設定する。このカウンタによって、サンプリングパル
ストリガ論理は、選択されたトリガ条件のN番目の発生
ごとの後に、選択されたトリガ条件に適合し発生すべき
(条件選択論理302を通じて機械信号31A〜Zから
渡された)最初のIID 24完了信号に際してITA
アドレスジェネレータにサンプリングパルスを出力す
る。このようにして、選択された事象のN番目の発生ご
との後に、選択された事象の発生において最初の完了す
べきIID 24命令に関するデータだけがITA 3
2に記録される。
【0077】E.ISI信号コレクタ304は、ITA
のデータ収集を可能にするためにいずれの事象信号がラ
ッチされるかを選択するために設定される。(これは、
ブロック309からのサンプリングパルスの発生に際し
てCPUからITAに渡す選択されたデータのための経
路を準備する。) F.付加的に、連続したオーバランが発生した場合に測
定を終了するためのオーバランしきい値をPCEに設定
することができる。
【0078】(操作員のコマンドによって設定された)
以降の時に、実際の測定が開始する。これは、線31A
〜Zの選択された機械状態信号が、ブロック309から
の各サンプリングパルスの発生後にITAアドレスジェ
ネレータ33によって選択されたITA 32のITA
アドレスに記録するために、ISI信号コレクタ304
にその時に登録されることを意味する。
【0079】サンプリング動作のために選択された線3
1A〜Zにいずれかの信号が発生すると、その信号は、
それが発生したCPUの出所からITUのISI信号コ
レクタ304に送信される。ISI信号コレクタ304
は、各選択事象信号をラッチし、ITUの他の領域に転
送する。この領域とは、詳しく言えば次の領域である。
【0080】1.この信号がサンプリングのために使用
されるべきものであるかどうかを判断するために事象選
択論理307へ。
【0081】2.選択信号がそのデータが収集された時
点で現在のITA項目に記録できる場合にはバス331
でITA 32のデータ入力へ。
【0082】条件信号バス303は条件信号を渡し、バ
ス305は、条件指定がコマンド制御のもとで設定され
ていた場合に、事象信号の一部を条件選択論理ブロック
302に渡す。ブロック302で、信号は試験され、選
択されている場合、それらは測定実行のためにラッチさ
れる。このラッチは、選択条件がCPUによって送信さ
れていれば、線306で事象選択論理307に出力され
る。
【0083】事象選択論理ブロック307では、選択さ
れた信号が計測初期化中にコマンド経路301から以前
に指定されたトリガ条件との適合を検査される。ブロッ
ク307で選択された信号の適合が検出されると、出力
パルスが経路308で第N事象制御論理ブロック309
へ転送される。
【0084】第N事象制御論理ブロック309では、カ
ウンタ(CTR)が、測定について選択された事象の発
生ごとに増分される。前述のように、選択事象は、シス
テム事象または、システム事象もしくはシステム条件の
論理結合とすることができる。増分されたカウンタが値
Nに達するごとに、選択されたトリガ条件に適合し完了
すべき次のIID 24命令によって、サンプリングパ
ルスが次の完了すべきIID 24命令に際して経路3
10でITAアドレスジェネレータに出力される。これ
によって、ISI信号コレクタ304から付与されたラ
ッチされた信号の組の選択された信号の組をITAに記
録することが可能になる。カウンタは、IID 24命
令が監視CPUによって解読されるごとにゼロにリセッ
トされる。
【0085】ITAアドレスジェネレータ33の読出し
テーブルアドレスカウンタ(TAC)は、線310の各
サンプリングパルスによって増分される。(TACは、
128項目を有するITAデータ項目のための7ビット
カウンタである。)ITAは、好ましくは、通常の測定
状況下でオーバランを防止するために十分な保持能力を
有する。
【0086】ITAアドレスジェネレータのアドレス増
分論理は、他の計測モードのものと同一とすることがで
きる。しかし、前述のように、命令サンプリングモード
は(時間サンプリングモードとは異なり)本質的にCP
U間で非同期であり、従って、ITAの出力制御は、命
令サンプリングモードの場合と時間サンプリングモード
の場合とでは異なる。
【0087】指摘したように、命令サンプリングは、所
与の範囲内にある現在の命令アドレス、IAWR(IB
Mシステム370での実施におけるPERレジスタな
ど)を条件とすることができる。または、関係するルー
チンへの出入りの信号を送るために測定中のコードに置
かれた特殊な状態命令(診断またはSIEなど)によっ
て設定されているブロック302内の特殊ラッチ(IC
CLATCH)(図示せず)を条件とすることもでき
る。条件制御は、サンプリングがアドレス範囲によって
制限できる、または、プログラム制御、一定のCPU状
態またはCPUの機種依存性のもとで動的に動作/非動
作にさせることができる点で、別の次元の選択性を可能
にする。
【0088】ITA 32の命令サンプリング信号の記
録は、Nの設定によって抑制することができる。頻繁な
事象については、第N番目の事象の発生後に選択された
事象において完了すべき最初のIID 24命令に際し
てのみ記録することが、バッファのオーバランを防ぐた
めにその記録内容を出力バッファに移すことができる速
さよりも速くITAを一杯にさせることを避けるために
必要である。
【0089】CPU状態データが一定の間隔でサンプリ
ングされ(すなわち時間サンプリング)、(プログラム
とコンピュータ構造との間の対話その他の性能関係を調
べるために)以後の解析用に記録される場合、一部の事
象がサンプリングに困難な速度で発生するという問題が
生じる場合がある。その理由は、その事象があまりに頻
繁すぎて要求されるデータ記録速度が得られたデータを
記録するために実行可能な速度よりも大きい、または、
事象が極めて稀でかつ極く短時間で生じるために、関係
する事象を含む統計的に有意なサンプル数を得るために
極めて長期間にわたって大量のサンプルが取られなけれ
ばならないからである。
【0090】従って、事象駆動命令サンプリングは、完
了するIID 24命令の実行中および選択事象の選択
された発生数後の選択事象の発生中に機械の状態を捕捉
する。言い換えれば、命令サンプリングモードでは、サ
ンプリングは任意のタイマ間隔で実施されるのではな
く、選択された事象が選択された度数だけ発生した後に
IID 24命令が選択された事象(選択されたシステ
ム事象、システム条件、またはそれらの論理結合)の進
行中に完了した場合に限って実施される。プロセッサの
多数の下位要素が命令サンプリングの実行に参加でき
る。
【0091】事象サンプリング中のITUの測定動作
は、事実上、測定を指定したコマンドに従って終了され
る。
【0092】CPUのデータの流れは、ITUの機械信
号インタフェースとしての線31A〜31Zによって計
測データを転送する各種下位要素を関係させる。これら
のデータ信号入力は、命令サンプリングモードの場合と
他のサンプリングモードの場合とで同一であるが、命令
サンプリングの場合は事象関連信号が選択された事象/
条件の記録サンプルへの処理のために経路303,30
5および311Aによって転送される点だけが異なる。
【0093】システム測定中のPCEの活動は関連する
出力バッファの動作を制御する。PCEは各出力バッフ
ァを監視し、一杯になった場合にテープその他の大量記
憶装置への書込みを行わせる。PCEはまた、各ITA
のオーバランのカウントを記録する。オーバランはデー
タ損失を指示し、その頻度にもとづいて、オーバランは
実行の測定精度に影響を与え得る。ユーザがオーバラン
しきい値を特定のオーバラン数としてしていれば、オー
バランしきい値に達すれば、測定実行は終了させること
ができる。 〔5.IID割当て−命令サンプリングの検討事項〕命
令サンプリングを使用する際の一つの検討事項は、CP
Uによる割込みの取扱いである。一部のアウトオブシー
ケンス形プロセッサでは、割込みの発生はIID割当て
論理に割込まれた命令にIID 0を割当てさせる〔こ
れは正しいか?〕。IID割当て論理はその後、割込み
処理ルーチンの命令に順序的なIIDを再割当てし始め
るように求めるであろう。一つの可能なIID割当て順
序は次のようなものである。
【0094】12345.0.12345...上記の
例で、最初の“12345”は命令ストリームに割当て
られた一連のIIDである。“0”は割込まれた命令に
割当てられたIIDであり、次の“12345”は割込
み処理ルーチンの命令に割当てられた最初の5のIID
である。
【0095】上記の方式は、命令サンプリングにはうま
く適合しない。IID割当てが割込み処理ルーチンの最
初の命令について“1”に戻るので、真のランダムサン
プルは得られないであろう。上記の割当て方法によれ
ば、割込み処理ルーチンの同一の命令は、毎回、同一の
タグを付けられる。例えば、すべてのIID24命令が
サンプリングされている場合、割込み処理ルーチンの唯
一の命令シーケンス(24番目ごとに)が計測によって
ずっと見られることになるであろう。
【0096】この非ランダム化には多数の解決策があ
る。そうした解決策の一つは、以下のように、IID割
当てを割込み前の最後のIID番号から続けさせること
である。
【0097】12345.0.56789...同様
に、IID割当てを以下のように最後の次のIID番号
から続けさせることもできよう。
【0098】12345.0.6789A...別な解
決策として、割込まれた命令に、次のように、順番のI
ID番号を割当てることもできよう。
【0099】12345.6.789AB...上記の
解決策の要点は、割込み処理ルーチンの命令に関してラ
ンダム化されたサンプリングを維持することである。 〔6.0 変更および改良〕本発明の好ましい実施例の
上述の説明は、例示の目的で行ったものである。本発明
の精神および適用範囲に適合する記載実施例の多数の変
更および修正が存在することを当業者は理解されるであ
ろう。例えば、IID 24の代わりに、いずれかの他
の命令IIDが識別され、計測の基礎として使用できる
であろう。さらに、異なる計測、同一システムにおける
異なるCPUの監視は異なるIIDを有する命令の実行
を監視できるであろう。
【図面の簡単な説明】
【図1】アウトオブシーケンス実行の例のブロック図。
【図2】本発明を包含するデータ処理システムのブロッ
ク図。
【図3】図1のいずれかのCPUのITUにおける本発
明の実施例のブロック図。
【図4】図3のISI信号コレクタの詳細ブロック図。
【図5】図3のサンプリングパルストリガ論理の詳細ブ
ロック図の左半分の図。
【図6】図3のサンプリングパルストリガ論理の詳細ブ
ロック図の右半分の図。
【符号の説明】
30 ISR 31A〜Z 機械信号線 32 計測テーブル配列(ITA) 33 ITAアドレスジェネレータ 331 テーブルアドレスカウンタ(TAC) 332 テーブルアドレスカウンタ(TAC) 333 ITA状況レジスタ 34 PCEコマンドデコーダ 300 計測モード選択ブロック 302 条件選択論理 304 命令サンプリング計測(ISI)信号コレクタ 318 サンプリングパルストリガ論理 307 事象選択論理 309 第N事象制御論理 316 マルチプレクサ(MUX)
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭62−279438(JP,A) 特開 平2−176834(JP,A) 特開 平2−100146(JP,A)

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】実行パイプラインにおける各命令が命令識
    別番号をタグ付けされた形式のアウトオブシーケンス実
    行機械における命令の実行を監視するための装置であっ
    て、 主記憶装置と、 既定の命令識別番号を有する命令の前記機械による処理
    を検出するための第1の検出手段と、 前記第1の検出手段と通信し応答する、前記既定の命令
    識別番号を有する前記命令の処理に関するデータを収集
    するための一時記憶手段と、 前記機械が前記既定の命令識別番号を有する前記命令の
    実行の完了を示す前記機械からの信号を検出するための
    第2の検出手段と、 前記第2の検出手段、前記一時記憶手段および前記主記
    憶装置と通信し、前記一時記憶手段に収集された前記デ
    ータを、前記既定の命令識別番号を有する前記命令の実
    行の完了に応答して前記主記憶装置に格納させるための
    トリガ手段と、 を備え、 前記既定の命令識別番号を有する前記命令のうち、処理
    を完了した命令に関するデータのみを前記主記憶装置に
    格納する装置。
  2. 【請求項2】前記主記憶装置が独立してアドレス指定可
    能な二つの区域を有する請求項1記載の装置であって、
    さらに、 コマンドデコーダと、 前記主記憶装置の書込みアドレスを生成するための第1
    のアドレス生成手段と、 解読されたコマンドに応答して前記主記憶装置の読出し
    アドレスを生成するための第2のアドレス生成手段と、 前記解読されたコマンドに応答する、前記読出しアドレ
    スのデータ項目の選択された部分を読出すためのマルチ
    プレクサ手段と、 を備え、 前記マルチプレクサ手段は前記主記憶装置および前記コ
    マンドデコーダと通信しており、 前記第1および第2のアドレス生成手段はコマンドデー
    タ経路を通じて前記主記憶装置と通信しており、 前記第2のアドレス生成手段は前記コマンドデコーダと
    通信している装置。
  3. 【請求項3】アウトオブシーケンス中央処理装置におけ
    る命令の実行を監視するための装置であって、 主記憶装置と、 前記主記憶装置に結合され、中央処理装置からの機械信
    号を受信するために配置された多数のレジスタであり、
    前記レジスタのそれぞれは前記レジスタによって受信さ
    れた前記機械信号が既定の命令識別番号を有する命令の
    処理中に発生したことを指示する妥当性信号によって計
    時されているレジスタと、 前記中央処理装置と通信し、前記中央処理装置が前記既
    定の命令識別番号を有する前記命令の実行を完了したこ
    とを指示する完了信号を中央処理装置から受信するため
    に配置されたサンプリングパルストリガ論理であり、 a)前記中央処理装置の多数の事象の発生を指示するデ
    ータを受信するための手段、 b)前記事象のいずれかを選択するための手段、 c)前記完了信号が受信され、前記選択された事象が発
    生した場合にサンプリングパルスを生成するための手段
    とを有する前記サンプリングパルストリガ論理と、 前記主記憶装置および前記サンプリングパルストリガ論
    理と通信し、前記サンプリングパルストリガ論理からの
    サンプリングパルスに応答して前記レジスタの前記内容
    を前記主記憶装置に書込ませるための記憶制御手段と、 を備え、 前記既定の命令識別番号を有する命令の実行を完了し、
    前記選択された事象が発生した場合にのみ、前記レジス
    タによって受信された前記機械信号が前記主記憶装置に
    記憶される装置。
  4. 【請求項4】実行パイプラインにおける各命令が命令識
    別番号をタグ付けされた形式のアウトオブシーケンス実
    行機械における命令の実行を監視するための方法であっ
    て、 a)前記命令識別番号の既定の番号を付けられた命令の
    前記機械による処理を検出する段階と、 b)前記段階a)で検出された前記既定の命令識別番号
    を有する前記命令の処理に関するデータを収集する段階
    と、 c)段階a)で検出された前記既定の命令識別番号を有
    する前記命令の前記機械による実行の完了を示す前記機
    械からの信号を検出する段階と、 d)前記既定の命令識別番号を有する前記命令の前記実
    行の完了が段階c)で検出された場合に、段階b)で収
    集された前記データをテーブルに格納する段階と、 を含む方法。
  5. 【請求項5】請求項4記載の方法であって、さらに、 e)前記機械での既定の事象の発生を検出する段階と、 を含み、前記段階d)の格納は段階e)によって検出さ
    れた前記既定の事象の発生を条件とすることを特徴とす
    る方法。
  6. 【請求項6】実行パイプラインにおける各命令に順番に
    割当てられる命令識別番号を付ける形式のアウトオブシ
    ーケンス実行機械において命令の実行を監視するための
    方法であって、 a)既定の前記命令識別番号を付けられた命令の前記機
    械による処理を検出する段階と、 b)段階a)で検出された前記既定の命令識別番号を有
    する前記命令の処理に関連するデータを収集する段階
    と、 c)段階a)で検出された前記既定の命令識別番号を有
    する前記命令の前記機械による実行の完了を示す前記機
    械からの信号を検出する段階と、 d)前記既定の命令識別番号を有する前記命令の実行の
    完了が段階c)で検出されない場合、段階b)で収集さ
    れた前記データを放棄する段階と、 e)前記既定の命令識別番号を有する前記命令の前記実
    行の完了が段階c)で検出された場合、段階b)で収集
    された前記データをテーブルに格納する段階とを含む方
    法。
  7. 【請求項7】請求項6記載の方法であって、さらに、 f)前記機械での既定のシステム条件の発生を検出する
    段階とを含み、 前記段階e)の格納は段階f)によって検出された前記
    既定のシステム条件の発生を条件とする方法。
JP3151053A 1990-07-13 1991-05-27 命令サンプリング計測のための装置および方法 Expired - Lifetime JPH0816878B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US552389 1990-07-13
US07/552,389 US5151981A (en) 1990-07-13 1990-07-13 Instruction sampling instrumentation

Publications (2)

Publication Number Publication Date
JPH04233637A JPH04233637A (ja) 1992-08-21
JPH0816878B2 true JPH0816878B2 (ja) 1996-02-21

Family

ID=24205119

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3151053A Expired - Lifetime JPH0816878B2 (ja) 1990-07-13 1991-05-27 命令サンプリング計測のための装置および方法

Country Status (3)

Country Link
US (1) US5151981A (ja)
EP (1) EP0465765A3 (ja)
JP (1) JPH0816878B2 (ja)

Families Citing this family (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5255371A (en) * 1990-04-02 1993-10-19 Unisys Corporation Apparatus for interfacing a real-time communication link to an asynchronous digital computer system by utilizing grouped data transfer commands
US5511172A (en) * 1991-11-15 1996-04-23 Matsushita Electric Co. Ind, Ltd. Speculative execution processor
JP2500038B2 (ja) * 1992-03-04 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・コンピュ―タ・システム、フォ―ルト・トレラント処理方法及びデ―タ処理システム
DE69430018T2 (de) * 1993-11-05 2002-11-21 Intergraph Corp., Huntsville Befehlscachespeicher mit assoziativem Kreuzschienenschalter
EP0652510B1 (en) * 1993-11-05 2000-01-26 Intergraph Corporation Software scheduled superscalar computer architecture
US6360313B1 (en) 1993-11-05 2002-03-19 Intergraph Corporation Instruction cache associative crossbar switch
US5463745A (en) * 1993-12-22 1995-10-31 Intel Corporation Methods and apparatus for determining the next instruction pointer in an out-of-order execution computer system
TW234172B (en) * 1994-02-08 1994-11-11 Keridian Semiconductor Inc Method and apparatus for testing the functionality of a microprocessor
JPH07288630A (ja) * 1994-04-20 1995-10-31 Canon Inc 画像処理装置
US5465336A (en) * 1994-06-30 1995-11-07 International Business Machines Corporation Fetch and store buffer that enables out-of-order execution of memory instructions in a data processing system
CA2130065C (en) * 1994-08-12 1999-03-02 Michael Joel Cincinatus Utilizing pseudotables as a method and mechanism for providing database monitor information
JP2630271B2 (ja) * 1994-09-14 1997-07-16 日本電気株式会社 情報処理装置
TW295646B (ja) * 1995-01-25 1997-01-11 Ibm
US5727167A (en) * 1995-04-14 1998-03-10 International Business Machines Corporation Thresholding support in performance monitoring
US5875294A (en) 1995-06-30 1999-02-23 International Business Machines Corporation Method and system for halting processor execution in response to an enumerated occurrence of a selected combination of internal states
US5751945A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US5729726A (en) * 1995-10-02 1998-03-17 International Business Machines Corporation Method and system for performance monitoring efficiency of branch unit operation in a processing system
US5748855A (en) * 1995-10-02 1998-05-05 Iinternational Business Machines Corporation Method and system for performance monitoring of misaligned memory accesses in a processing system
US5949971A (en) * 1995-10-02 1999-09-07 International Business Machines Corporation Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
US5691920A (en) * 1995-10-02 1997-11-25 International Business Machines Corporation Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5751946A (en) * 1996-01-18 1998-05-12 International Business Machines Corporation Method and system for detecting bypass error conditions in a load/store unit of a superscalar processor
EP0825506B1 (en) 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
US6055598A (en) * 1996-09-26 2000-04-25 Vlsi Technology, Inc. Arrangement and method for allowing sequence-independent command responses across a computer bus bridge
US5796939A (en) * 1997-03-10 1998-08-18 Digital Equipment Corporation High frequency sampling of processor performance counters
US6148396A (en) * 1997-11-26 2000-11-14 Compaq Computer Corporation Apparatus for sampling path history in a processor pipeline
US5964867A (en) * 1997-11-26 1999-10-12 Digital Equipment Corporation Method for inserting memory prefetch operations based on measured latencies in a program optimizer
US6332178B1 (en) * 1997-11-26 2001-12-18 Compaq Computer Corporation Method for estimating statistics of properties of memory system transactions
US6000044A (en) * 1997-11-26 1999-12-07 Digital Equipment Corporation Apparatus for randomly sampling instructions in a processor pipeline
US5809450A (en) * 1997-11-26 1998-09-15 Digital Equipment Corporation Method for estimating statistics of properties of instructions processed by a processor pipeline
US6070009A (en) * 1997-11-26 2000-05-30 Digital Equipment Corporation Method for estimating execution rates of program execution paths
US6092180A (en) * 1997-11-26 2000-07-18 Digital Equipment Corporation Method for measuring latencies by randomly selected sampling of the instructions while the instruction are executed
US6119075A (en) * 1997-11-26 2000-09-12 Digital Equipment Corporation Method for estimating statistics of properties of interactions processed by a processor pipeline
US6442585B1 (en) 1997-11-26 2002-08-27 Compaq Computer Corporation Method for scheduling contexts based on statistics of memory system interactions in a computer system
US6374367B1 (en) 1997-11-26 2002-04-16 Compaq Computer Corporation Apparatus and method for monitoring a computer system to guide optimization
US6237073B1 (en) 1997-11-26 2001-05-22 Compaq Computer Corporation Method for providing virtual memory to physical memory page mapping in a computer operating system that randomly samples state information
US6202127B1 (en) * 1997-11-26 2001-03-13 Compaq Computer Corporation Apparatus for spatial and temporal sampling in a computer memory system
US6175814B1 (en) 1997-11-26 2001-01-16 Compaq Computer Corporation Apparatus for determining the instantaneous average number of instructions processed
US5923872A (en) * 1997-11-26 1999-07-13 Digital Equipment Corporation Apparatus for sampling instruction operand or result values in a processor pipeline
US6195748B1 (en) 1997-11-26 2001-02-27 Compaq Computer Corporation Apparatus for sampling instruction execution information in a processor pipeline
US6163840A (en) * 1997-11-26 2000-12-19 Compaq Computer Corporation Method and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline
US6549930B1 (en) 1997-11-26 2003-04-15 Compaq Computer Corporation Method for scheduling threads in a multithreaded processor
US6237059B1 (en) 1997-11-26 2001-05-22 Compaq Computer Corporation Method for estimating statistics of properties of memory system interactions among contexts in a computer system
US6014513A (en) * 1997-12-23 2000-01-11 University Of Washington Discovering code and data in a binary executable program
US6691183B1 (en) 1998-05-20 2004-02-10 Invensys Systems, Inc. Second transfer logic causing a first transfer logic to check a data ready bit prior to each of multibit transfer of a continous transfer operation
US7086035B1 (en) 1999-05-13 2006-08-01 International Business Machines Corporation Method and system for counting non-speculative events in a speculative processor
AU5025600A (en) 1999-05-17 2000-12-05 Foxboro Company, The Process control configuration system with parameterized objects
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
US7272815B1 (en) 1999-05-17 2007-09-18 Invensys Systems, Inc. Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects
US7096465B1 (en) 1999-05-17 2006-08-22 Invensys Systems, Inc. Process control configuration system with parameterized objects
US6754885B1 (en) 1999-05-17 2004-06-22 Invensys Systems, Inc. Methods and apparatus for controlling object appearance in a process control configuration system
US6501995B1 (en) 1999-06-30 2002-12-31 The Foxboro Company Process control system and method with improved distribution, installation and validation of components
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US6519766B1 (en) * 1999-06-15 2003-02-11 Isogon Corporation Computer program profiler
US6415378B1 (en) * 1999-06-30 2002-07-02 International Business Machines Corporation Method and system for tracking the progress of an instruction in an out-of-order processor
AU6615600A (en) 1999-07-29 2001-02-19 Foxboro Company, The Methods and apparatus for object-based process control
US6675374B2 (en) 1999-10-12 2004-01-06 Hewlett-Packard Development Company, L.P. Insertion of prefetch instructions into computer program code
US6574727B1 (en) 1999-11-04 2003-06-03 International Business Machines Corporation Method and apparatus for instruction sampling for performance monitoring and debug
US6550002B1 (en) 1999-11-04 2003-04-15 International Business Machines Corporation Method and system for detecting a flush of an instruction without a flush indicator
US6539502B1 (en) 1999-11-08 2003-03-25 International Business Machines Corporation Method and apparatus for identifying instructions for performance monitoring in a microprocessor
US6631463B1 (en) 1999-11-08 2003-10-07 International Business Machines Corporation Method and apparatus for patching problematic instructions in a microprocessor using software interrupts
US6681387B1 (en) 1999-12-01 2004-01-20 Board Of Trustees Of The University Of Illinois Method and apparatus for instruction execution hot spot detection and monitoring in a data processing unit
US6473660B1 (en) 1999-12-03 2002-10-29 The Foxboro Company Process control system and method with automatic fault avoidance
US6779128B1 (en) 2000-02-18 2004-08-17 Invensys Systems, Inc. Fault-tolerant data transfer
JP5356635B2 (ja) * 2000-04-11 2013-12-04 アナログ デバイセス インコーポレーテッド 非侵入式アプリケーション・コード・プロファイリングの方法および装置
US6748522B1 (en) * 2000-10-31 2004-06-08 International Business Machines Corporation Performance monitoring based on instruction sampling in a microprocessor
US7093108B2 (en) * 2001-02-01 2006-08-15 Arm Limited Apparatus and method for efficiently incorporating instruction set information with instruction addresses
US7093236B2 (en) * 2001-02-01 2006-08-15 Arm Limited Tracing out-of-order data
US7032134B2 (en) * 2001-03-28 2006-04-18 Intel Corporation Microprocessor design support for computer system and platform validation
EP1502218A4 (en) 2002-04-15 2005-08-17 Invensys Sys Inc METHOD AND DEVICES FOR A PROCESS-, FACTORY-, ENVIRONMENT-, ENVIRONMENT- AND COMPUTER AIDED MANUFACTURING-BASED OR OTHERWISE CONTROL SYSTEM WITH REAL-TIME DATA DISTRIBUTION
US20050070265A1 (en) * 2003-09-29 2005-03-31 Nokia Corporation Method, terminal device and system for remote initiation of network applications within mobile communication environment
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
US20050071611A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus for counting data accesses and instruction executions that exceed a threshold
US20050071816A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically count instruction execution for applications
US20050071608A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus for selectively counting instructions and data accesses
US7373637B2 (en) * 2003-09-30 2008-05-13 International Business Machines Corporation Method and apparatus for counting instruction and memory location ranges
US20050071609A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically take an exception on specified instructions
US20050071610A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus for debug support for individual instructions and memory locations
US7395527B2 (en) * 2003-09-30 2008-07-01 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses
US7421681B2 (en) 2003-10-09 2008-09-02 International Business Machines Corporation Method and system for autonomic monitoring of semaphore operation in an application
US8381037B2 (en) 2003-10-09 2013-02-19 International Business Machines Corporation Method and system for autonomic execution path selection in an application
US7197586B2 (en) * 2004-01-14 2007-03-27 International Business Machines Corporation Method and system for recording events of an interrupt using pre-interrupt handler and post-interrupt handler
US7415705B2 (en) 2004-01-14 2008-08-19 International Business Machines Corporation Autonomic method and apparatus for hardware assist for patching code
US7082486B2 (en) * 2004-01-14 2006-07-25 International Business Machines Corporation Method and apparatus for counting interrupts by type
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
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
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
US7284158B2 (en) * 2004-02-10 2007-10-16 International Business Machines Corporation Processor bus for performance monitoring with digests
US7761923B2 (en) 2004-03-01 2010-07-20 Invensys Systems, Inc. Process control methods and apparatus for intrusion detection, protection and network hardening
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
US7389502B2 (en) * 2004-03-31 2008-06-17 Intel Corporation Program phase detection for dynamic optimization
US20060119075A1 (en) * 2004-12-03 2006-06-08 Sharon Chen Trailer ball and production thereof
US7363450B1 (en) 2005-06-01 2008-04-22 Sun Microsystems, Inc. Method and apparatus for estimating multithreaded processor throughput based on processor cache performance
US7457931B1 (en) * 2005-06-01 2008-11-25 Sun Microsystems, Inc. Method and apparatus for estimating the effect of processor cache memory bus delays on multithreaded processor throughput
WO2007123753A2 (en) * 2006-03-30 2007-11-01 Invensys Systems, Inc. Digital data processing apparatus and methods for improving plant performance
US20080141002A1 (en) * 2006-12-08 2008-06-12 Advanced Micro Devices, Inc. Instruction pipeline monitoring device and method thereof
US20080141008A1 (en) * 2006-12-08 2008-06-12 Advanced Micro Devices, Inc. Execution engine monitoring device and method thereof
US20080140993A1 (en) * 2006-12-08 2008-06-12 Advanced Micro Devices, Inc. Fetch engine monitoring device and method thereof
US7881906B2 (en) * 2008-02-15 2011-02-01 International Business Machines Corporation Method, system and computer program product for event-based sampling to monitor computer system performance
US7870438B2 (en) * 2008-02-15 2011-01-11 International Business Machines Corporation Method, system and computer program product for sampling computer system performance data
CN104407518B (zh) 2008-06-20 2017-05-31 因文西斯系统公司 对用于过程控制的实际和仿真设施进行交互的系统和方法
US20100008464A1 (en) 2008-07-11 2010-01-14 Infineon Technologies Ag System profiling
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US20120084537A1 (en) * 2010-09-30 2012-04-05 International Business Machines Corporation System and method for execution based filtering of instructions of a processor to manage dynamic code optimization
US9471315B2 (en) 2012-03-16 2016-10-18 International Business Machines Corporation Run-time instrumentation reporting
US9465716B2 (en) 2012-03-16 2016-10-11 International Business Machines Corporation Run-time instrumentation directed sampling
US9405541B2 (en) 2012-03-16 2016-08-02 International Business Machines Corporation Run-time instrumentation indirect sampling by address
US9454462B2 (en) 2012-03-16 2016-09-27 International Business Machines Corporation Run-time instrumentation monitoring for processor characteristic changes
US9367316B2 (en) 2012-03-16 2016-06-14 International Business Machines Corporation Run-time instrumentation indirect sampling by instruction operation code
US9483268B2 (en) 2012-03-16 2016-11-01 International Business Machines Corporation Hardware based run-time instrumentation facility for managed run-times
US9280447B2 (en) 2012-03-16 2016-03-08 International Business Machines Corporation Modifying run-time-instrumentation controls from a lesser-privileged state
US9442824B2 (en) 2012-03-16 2016-09-13 International Business Machines Corporation Transformation of a program-event-recording event into a run-time instrumentation event
US9158660B2 (en) 2012-03-16 2015-10-13 International Business Machines Corporation Controlling operation of a run-time instrumentation facility
US9411591B2 (en) 2012-03-16 2016-08-09 International Business Machines Corporation Run-time instrumentation sampling in transactional-execution mode
US9430238B2 (en) 2012-03-16 2016-08-30 International Business Machines Corporation Run-time-instrumentation controls emit instruction
US9250902B2 (en) 2012-03-16 2016-02-02 International Business Machines Corporation Determining the status of run-time-instrumentation controls
US9916161B2 (en) 2015-06-25 2018-03-13 Intel Corporation Instruction and logic for tracking fetch performance bottlenecks
US9727395B2 (en) * 2015-07-01 2017-08-08 International Business Machines Corporation Robust and adaptable management of event counters
US10140216B2 (en) * 2016-01-21 2018-11-27 Arm Limited Measuring address translation latency
GB2595303B (en) * 2020-05-22 2024-04-17 Advanced Risc Mach Ltd Profiling of sampled operations processed by processing circuitry

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3736566A (en) * 1971-08-18 1973-05-29 Ibm Central processing unit with hardware controlled checkpoint and retry facilities
US3771138A (en) * 1971-08-31 1973-11-06 Ibm Apparatus and method for serializing instructions from two independent instruction streams
JPS5886648A (ja) * 1981-11-18 1983-05-24 Mitsubishi Electric Corp トレ−ス装置
US4598364A (en) * 1983-06-29 1986-07-01 International Business Machines Corporation Efficient trace method adaptable to multiprocessors
US4590550A (en) * 1983-06-29 1986-05-20 International Business Machines Corporation Internally distributed monitoring system
US4707834A (en) * 1985-09-17 1987-11-17 Tektronix, Inc. Computer-based instrument system
US4722049A (en) * 1985-10-11 1988-01-26 Unisys Corporation Apparatus for out-of-order program execution
JPH0731615B2 (ja) * 1986-04-18 1995-04-10 日本電気株式会社 情報処理装置
JPS62279438A (ja) * 1986-05-29 1987-12-04 Mitsubishi Electric Corp トレ−ス回路
US4821178A (en) * 1986-08-15 1989-04-11 International Business Machines Corporation Internal performance monitoring by event sampling
US4991090A (en) * 1987-05-18 1991-02-05 International Business Machines Corporation Posting out-of-sequence fetches
JPH02100146A (ja) * 1988-10-06 1990-04-12 Fujitsu Ltd トレース決定方式
JPH02176834A (ja) * 1988-12-27 1990-07-10 Nec Eng Ltd プログラムロジックの自己監視方式

Also Published As

Publication number Publication date
EP0465765A3 (en) 1992-11-19
EP0465765A2 (en) 1992-01-15
US5151981A (en) 1992-09-29
JPH04233637A (ja) 1992-08-21

Similar Documents

Publication Publication Date Title
JPH0816878B2 (ja) 命令サンプリング計測のための装置および方法
US4821178A (en) Internal performance monitoring by event sampling
US4435759A (en) Hardware monitor for obtaining processor software/hardware interrelationships
US20060005083A1 (en) Performance count tracing
US5608866A (en) System for measuring and analyzing operation of information processor
US4590550A (en) Internally distributed monitoring system
KR100280732B1 (ko) 데이터처리시스템의성능모니터링방법및장치
US6519310B2 (en) Hardware event based flow control of counters
US5544311A (en) On-chip debug port
US5675729A (en) Method and apparatus for performing on-chip measurement on a component
US9342468B2 (en) Memory time stamp register external to first and second processors
CN108475236B (zh) 测量地址转换延迟
EP1076855B1 (en) Non-intrusive performance monitoring
CN100524231C (zh) 用于非侵入跟踪的方法和装置
US6278959B1 (en) Method and system for monitoring the performance of a data processing system
US20120046912A1 (en) Processor core having a saturating event counter for making performance measurements
US20060242517A1 (en) Monitoring a data processor to detect abnormal operation
JPH07210427A (ja) メモリアクセス監視装置およびメモリアクセス監視方法
JPH05346870A (ja) ディジタルコンピュータシステム
JPH05342036A (ja) 組み込み用制御マイコンおよびその開発支援装置