JPH0697436B2 - プログラム追跡方法 - Google Patents

プログラム追跡方法

Info

Publication number
JPH0697436B2
JPH0697436B2 JP59095790A JP9579084A JPH0697436B2 JP H0697436 B2 JPH0697436 B2 JP H0697436B2 JP 59095790 A JP59095790 A JP 59095790A JP 9579084 A JP9579084 A JP 9579084A JP H0697436 B2 JPH0697436 B2 JP H0697436B2
Authority
JP
Japan
Prior art keywords
trace
instruction
tracking
program
cpu
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
JP59095790A
Other languages
English (en)
Other versions
JPS6010354A (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 JPS6010354A publication Critical patent/JPS6010354A/ja
Publication of JPH0697436B2 publication Critical patent/JPH0697436B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、多重プロセツサ(MP)のCPUにおいて、プロ
グラム追跡を並行して実施しているCPU間の追跡相互作
用を伴なわずに動作しうるプログラム追跡・監視方法に
係る。
〔従来技術〕
ソフトウエアおよびマイクロコードのエラーすなわちバ
クを、プログラムによる追跡によつて発見するための、
ソフトウエアおよびマイクロコード追跡ルーチンは従来
から知られている。また、ソフトウエア監視ルーチンお
よび命令(例えば、システム/370のモニタ呼出し命令)
は、システムにおけるプログラム実行中にセンスされた
ハードウエアおよびソフトウエア状態を記憶しその結果
を分析し、システム性能を測定するとともに、システム
の資源構成をチユーニング(tuning)することができ
る。
追跡はプログラムで、ある位置に達したときに存在する
一定の種類の状態のスナツプシヨツト・レコードを記憶
領域に供給することにより、システムの問題が何である
かを決定するのに寄与する。
ソフトウエアの監視をサポートする命令は、追跡をサポ
ートする命令にいくらか似ているが、両者は機能的には
異なる。すなわち、追跡はソフトウエアを診断し、監視
はシステム性能を測定する。一般的に、ソフトウエア・
モニタは被測定システムの動作を歪ませるという問題を
かかえている。これは、ソフトウエア・モニタ・ルーチ
ンまたは命令は被測定プログラムに割込み、システムの
ハードウエア資源の使用について両者が競合することに
よるものである。前記の歪みは追跡の診断機能にとつて
は重要ではない。監視は特殊なハードウエアによつて最
も正確に行われるが、システムに組込むことができる。
多種類の追跡プログラムが現に使用可能であるが、追跡
プログラムそのものは、種々の領域のコンピユータ・プ
ログラムの検査を包含する。ある1つの追跡プログラム
は別の追跡プログラムと著しく異なつたり、それぞれが
違つた目的に使用可能であつたりすることがある。追跡
プログラムによつては、特定の種類の状況、事象または
情報しか観察することができない。従来の多くの追跡プ
ログラムはユーザ指向でもなく、柔軟性もないので、特
定のコンピユータまたは特定のプログラム実行と調整す
ることはできない。
従来の追跡プログラムは、プログラムによつて、追跡機
能が分岐点や割込み点にだけ限られたり、所定の命令シ
ーケンス、または他のあらかじめ指定された事象に限ら
れていた。従来の追跡プログラムのあるものは、比較的
低速で動作する。例えば、このような従来のプログラム
は、前追跡データを記憶するのに、平均して、追跡され
ない場合の実行時間の100倍も長くかかるのが普通であ
る。従来の大抵の追跡プログラムは、一定の出力領域を
オーバーレイし、出力装置へのバツフアとして使用した
り、または分析のため追跡結果を主記憶に記憶しておく
ことができる。
計算システム上ですべての他のプログラムを完全に制御
する追跡プログラムが米国特許第3707724号に開発され
ている。
システム/370の2重アドレス空間(DAS)追跡は、IBMシ
ステム/370 Principle of Operations、Form No.GA22-
7000-8の4-11〜4-15頁に、システムの全CPUによつて使
用される主記憶にある1つの追跡表に書込まれた固定長
項目を用いる追跡アーキテクチヤとして説明されてい
る。
また、特別な目的の追跡命令が、システム/370のMVS/37
0プログラムの補助として使用されている。この追跡命
令の各々がシステム追跡表に32バイトの固定長追跡項目
を生成する。前記追跡命令には下記の種類がある。
SVC割込追跡命令 プログラム割込追跡命令 初期SRBタスク指名追跡命令 I/O割込追跡命令 タスク指定追跡命令 SVCリターン追跡命令 SVC割込追跡命令 固定長フオーマツトが固定長フオーマツトの範囲以上の
追跡データを収得する必要がある場合にはその追跡性能
が制限される。その場合、追加データを収集する追跡プ
ログラムによつて追跡を補う必要がある。
第7図に示すような従来のシステム/370追跡方法では、
MPにあるすべてのCPU、CPU(1)〜CPU(N)は同じシ
ステム追跡表を使用する。これらのCPUはすべて、主記
憶における絶対アドレス84のアンカーワードによつてシ
ステム追跡表をアクセスする。アンカーワードのフラグ
・ビツトAはシステム追跡が可能か否かを指示する。A
=0は追跡オフ、A=1は追跡オンを表わす。若し追跡
が可能ならば、アンカーワードの追跡表見出しアドレス
は主記憶にある追跡表見出しをアクセスするのに用いら
れる。この見出しには、現に使用される追跡アドレスが
含まれるほか、アドレス・フイールドを開始、終了する
際のシステム追跡表の境界も含まれる。追跡表が現在の
ページ・フレームを越える場合には、その前に別のペー
ジ・フレームを割当てなければならないので、更新され
た現在の追跡項目アドレスと、終了アドレスおよび現に
使用中の4KBフレームの終了とを比較するために、作成
された追跡項目ごとにかなりのオーバーヘツドが生じ
る。
更に詳細に説明すれば、すべてのCPU(1)〜CPU(N)
の追跡は、A=1にセツトすることにより可能になる。
そして、すべてのCPU(1)〜CPU(N)によつて実行さ
れる追跡可能な命令は、下記のステツプのように、固定
長追跡項目を単一のシステム追加表に書込む。
(1)追跡可能な命令を実行中のCPU(1)〜CPU(N)
の1つまたはそれ以上は、絶対アドレス84をアクセス
し、追跡表見出しアドレスを読取る。これは、読取要求
しか行われないから、同時に要求しているCPUの間の競
合は生じない。
(2)追跡表をアクセスすることを許可されたCPUの各
々は、現在の項目アドレスを次の項目の値に変更し、次
に許可されたCPUが追跡項目を作成するようにしなけれ
ばならない。追跡表の完全性を維持するために、1回に
1つのCPUだけが現在の項目アドレスを読取り、現在の
項目アドレス値を変更することができる。このように、
現在の項目アドレスでインタロツクされた更新を実行す
る際に、競合中のCPUの1つしか、この1ワード・アド
レスをアクセスすることができない。この動作は、通常
は、並行して要求するすべてのCPUを直列化する比較お
よびスワツプ(CS)命令によつて行なわれる。アクセス
できなかつた各々の要求CPUは、そのCS命令が首尾よく
実行されるまでCS待ちループ内に留まり、CS命令が実行
されてから、現在の入力項目を読取つて変更する。ま
た、良好なCS読取要求が生じた場合、極めて重大な、CP
U間のもう1つの種類の干渉が存在することがある。す
なわち、要求された現在の項目アドレスが、そのアドレ
ス値を最後に変更した他のCPUに内臓されたキヤツシユ
にしか存在しないことがある。読取要求の実行が可能に
なるのは、そのアドレスを含む行が前記他のCPUのキヤ
ツシユから読出され、要求CPUのキヤツシユに取込まれ
てからである。この動作は主記憶を介して、または、MP
で使用可能な場合はキヤツシユ対キヤツシユで行なうこ
とができる。
(3)現在の命令アドレスは、CS命令が首尾よく実行さ
れたCPUに読取られると、該CPUにしか存在しないものに
なる。これは、現在の項目アドレスを読取る次の各々の
CPUは、(CS命令が前に首尾よく実行されたCPUによつて
増加された)異なつたアドレスを得るからである。それ
故、その追跡データを記憶する追跡表自体をアクセスす
る際、追跡CPU間にはインタロツク競合は存在しない。
しかしながら、CPU間には重大なCPUキヤツシユ相互の競
合が存在する。これは、それらのキヤツシユ行の大きさ
が、1ワードの現在の項目アドレス・フイールドよりも
ずつと長いからである。
従つて、前記ステツプ(2)および(3)はどちらも、
他のCPUとのキヤツシユ干渉を生じる高い確率を有す
る。そのため、MPの性能が大幅に低下することがある。
ステツプ(3)では、各CPUはその追跡項目をそれぞれ
の32バイト記憶位置に記憶しているけれども、若し、キ
ヤツシユ行の大きさが32バイト以上で、要求された32バ
イト項目の全部または一部分が他のCPUキヤツシユの行
(例えば、128バイト)の一部分であるならば、CPU相互
干渉が生じる。例えば、IBM3081のCPUでは、キヤツシユ
行の大きさは、4追跡表項目にわたる128バイトであ
る。
また、システム/370の固定長追跡項目の場合、下記の2
つの基本的な構成上の問題がある。
(1)項目によつては要求された使用可能な情報のすべ
てを含むことができない。
(2)未使用の空間を無駄にする項目がある。
本発明によつて提供された可変長項目により、各追跡項
目は、要求された使用可能な情報を無駄なく含むことが
できる。
〔発明が解決しようとする問題点〕
本発明の目的は、下記によりMPのどれか1またはそれ以
上のCPUにおけるプログラム追跡をサポートすることで
ある。
(1)追跡を行なつているCPU間の干渉をなくしMPの性
能を大間に改善する。
(2)追跡中の命令ストリームへの追跡割込みを(ペー
ジ境界線を横切らない限り)なくし、追跡を行なつてい
るCPUの性能を大幅に改善する。
(3)CPUにある任意の数の汎用レジスタの内容を捕獲
しうることにより、汎用追跡命令が一般的な明示型の追
跡をサポートする。
(4)各CPUは、選択された分岐およびアドレス空間命
令による黙示的な追跡ならびに追跡命令による明示型の
追跡を通じて制御する。
(5)追跡表の可変長項目により、追跡項目の内容の質
を改善するとともに、記憶空間を効率的に使用する。
(6)プログラムまたはオペランド・データを変更せず
に、(別々のプログラムに存在することがある)所定の
クラスの明示型追跡命令の使用可能・使用禁止について
コンソールによる制御を行なう。
(7)オペランド・データは変更するが、プログラム変
更を必要とせずに、プログラム中の明示型の各追跡命令
の使用禁止について個々に制御する。
(8)CPU追跡表の項目を作成するのに必要なページ終
了境界線を検査のオーバヘツドをかなり減少させる。
〔問題点を解決するための手段〕
本発明は、MPにおける各CPUの個々の追跡表をサポート
し、追跡表項目を作成する際のCPU相互干渉を取除く。
また本発明は、例示型の各追跡表項目にタイム・スタン
プを供給し、後にMPシステムの全追跡表を、必要の都
度、単一の追跡表に併合することができる。
CPU相互干渉は、CPUの各々に、専用の追跡表と、その追
跡表に対する専用のインタフエースを設けることにより
避けられる。すなわち、CPUは他のCPUの追跡表のインタ
フエースを使用したり、追跡表項目を作成することはで
きない。本発明は、従来のシステム/370の追跡と比較し
て、下記のように2種類のCPU相互干渉を回避する。
(1)共通の追跡表見出しを設けないことによつて、CP
U間の直列化干渉が生じない。
(2)各CPUが別々のインタフエース、別々の追跡表を
アクセスするので、キヤツシユ間の干渉が生じない。例
えば、従来のシステム/370の追跡表では、CPUが要求し
た見出しフイールドまたは追跡項目が別のCPUのキヤツ
シユのキヤツシユ行の一部である場合があり、そのた
め、該キヤツシユ行が先ず要求CPUに取出されて始め
て、次の項目アドレスまたは新しい追跡表項目を書込む
ことができる。
下記の2種類の追跡によつて、CPU追跡表に項目を作成
することができる。
(1)(a)分岐命令のセツトおよび(b)ASN(アド
レス空間番号)命令のセツトの黙示型追跡 (2)新規な汎用追跡命令による明示型追跡 これらの命令セツトは使用可能な全分岐命令よりも少な
くてもよく、または使用可能なASN命令よりも少なくて
もよい。
追跡表を検査する際に各追跡項目の長さおよび種類を識
別するため、各追跡項目の第1のフイールドに項目識別
子(ID)が入れられる。
各CPUで、分岐追跡、ASN追跡および明示型追跡を別々に
使用することができる。
分岐追跡が使用可能であつて追跡可能な分岐命令が実行
されると、若し、該命令によつて分岐が行なわれるなら
ば、CPUの追跡表の項目が作成される。また、追跡項目
に入れられたIDロードは、分岐が行なわれた後に、どの
アドレス指定モードが生じるかを指示する。
ASN追跡が使用可能であつて、追跡可能なASN命令が実行
されると、CPUの項目表の項目が作成される。
明示型追跡が使用可能であつて、追跡命令が実行される
と、CPUの追跡表の項目が作成される。追跡命令項目に
含まれるのは、システム時刻(TOD)クロツクから取出
されたタイム・スタンプ、実行中の追跡命令によつて取
出された記憶オペランド、指定された汎用レジスタの内
容、および指令された汎用レジスタ数−1に等しい数値
フイールド(N)である。
追跡命令項目のタイム・スタンプは、この追跡命令の使
用方法にとつて重要であるが、追跡可能命令の追跡項目
のタイム・スタンプはあまり重要ではない。追跡項目に
タイム・スタンプを含むことと、タイム・スタンプの不
使用による追跡表の記憶空間の節約とのトレードオフで
は、タイム・スタンプを含まない方が望ましい。
MPシステムにおける黙示的追跡および明示型追跡の制御
はいずれも、本発明ではCPU単位で各CPUの制御レジスタ
(CR)の1つを用いて行なう。追跡制御レジスタはフラ
グ・フイールドを含み、そのCPUの追跡表で、それぞれ
のタイプの追跡の使用に関する制御を行なう。CRも追跡
項目アドレス・フイールドを含む。このフイールドは、
次に実行された使用可能な追跡可能命令または追跡中の
命令によつて追跡表に作成される次の項目のアドレスを
記憶する。これらのCR制御フイールドは下記により構成
される。
(1)分岐命令のセツトの黙示型追跡を使用可能にする
か使用禁止にするかを制御する分岐追跡制御ビツト
(B) 若し、この制御ビツトが0ならば、分岐追跡は使用禁止
になり、若し1ならば、分岐追跡は使用可能になる。
(2)ASN命令のセツトの黙示型追跡を使用可能にする
か使用禁止にするかを制御するASN追跡制御ビツト
(A) 若し、この制御ビツトが0ならば、ASN追跡は使用禁止
になり、若し1ならば、ASN追跡は使用可能になる。
(3)追跡命令による追跡を使用可能にするか使用禁止
にするかを制御する明示型追跡制御ビツト(E) 若し、この制御ビツトが0ならば、明示型追跡は使用禁
止になり、追跡命令はノーオペレーシヨン(NOP)とし
て実行される。若し、このビツトが1ならば、追跡命令
の実行によつて追跡表の項目が作成されるが、追跡命令
が使用禁止であることを特定の追跡命令の記憶オペラン
ドにある使用禁止フラグ・ビツト(T)が指示した場
合、項目は作成されない。
どの制御レジスタ内のフラグ・フイールドも任意の組合
せにより使用可能になつたり、またはすべてのフラグ・
フイールドが使用可能または使用禁止になることがあ
る。また、MPにおけるそれぞれのCPUの追跡制御レジス
タは、互いに独立にフラグ・フイールドをセツトし、そ
れによつて、任意の組合せにより、あるCPUでは追跡が
使用禁止になり、他のCPUでは使用禁止になることがあ
る。
CPUによる実行のため追跡可能命令が復号され、対応す
る黙示型追跡命機能が使用可能になると、そのCPUの追
跡表の、適切なフオーマツトを有する追跡項目が作成さ
れる。次の各追跡項目の実アドレスは、CPUが追跡して
いるCRアドレス・フイールドから直接得られる。実アド
レスが取出された後、作成中の可変項目の大きさに応じ
て制御レジスタにあるアドレスが増加され、その追跡表
における次の項目へのアドレスを供給する。
主記憶におけるページ境界線を追跡項目が横切るごとに
(例えば、CRにおける次のアドレスが現在のページ・フ
レームの外側にあつた場合)、ページ境界線のビツト位
置(例えば、4KBページのビツト19)に送られた桁上げ
によつて検出され、追跡表例外信号が生成され、命令実
行が取消される。次のページ・フレームが得られた後、
そのアドレスは追跡制御中のCRに入れられ、命令が再実
行され、新しいページ・フレームの最初に追跡項目が生
成される。
可変長項目の使用によつて、すべての項目は、 (1)要求された全追跡情報を含み、 (2)記憶空間の無駄をなくすことができる。
項目の長さは、各追跡表項目の最初にある識別子コード
・フイールドによつて伝えられ、場合によつては、その
タイプの項目の可変フイールドの長さのバイト・カウン
トで分る。
復号された各追跡命令は記憶装置のオペランドを取出
す。記憶オペランドに使用禁止ビツト(T)を設けるこ
とにより、追跡命令がプログラムにアセンブルされた
後、ユーザは、追跡命令がアセンブルされたプログラム
をアクセスする−これはプログラムの完全性にとつて危
険である−ことなく、追跡命令を選択的に使用禁止にす
ることができる。すなわち、ユーザは、主記憶中のオペ
ランド・データをアクセス、変更し、関連プログラム中
の追跡命令のオペランドにある使用禁止ビツト(T)を
選択的にオンまたはオフにセツトするだけでよい。オペ
ランドの使用禁止ビツトが使用禁止になると、たとえ明
示型追跡がCPUの追跡制御レジスタで使用可能であつて
も、追跡項目は対応する命令によつて作成されることは
ない。
複数の追跡命令が同じ記憶オペランドをアドレス指定す
ることができる。その場合、この複数の追跡命令は、1
つのオペランドの使用禁止フラグTによりサブセツトと
して制御される。しかし、追跡命令ごとに独特のオペラ
ンド記憶位置を設けることにより、各追跡命令はフラグ
・ビツトTによつて個々に制御することができる。
通常、追跡命令は、そのコンパイルまたはアセンブル動
作中、プログラム・モジユールを全体にわたつて埋込む
ことができる。他方、これらのオペランドは、データ・
モジユール内の表にアセンブルし、容易に発見し、動的
に変更することができる。
個々の明示型追跡命令の使用禁止の場合、ユーザは、現
に存在するプログラム・モジユールに影響を与えずに、
Tビツトを変更することにより、追跡活動を動的に制御
し、変更される基準に適応することができる。これは調
整を簡単なものにし、下記のように予期されないまたは
変化する要求に適応するものである。
(1)追跡機能のユーテイリテイに貢献する。
(2)下記の場合に柔軟性を与える。
(a)正確にどれだけの追跡を行なうべきかを動的に設
定する。
(b)プログラミング・システムの構成要素に追跡を割
当てる。
また、本発明によつて、コンソール操作員は複数の追跡
命令クラスのどれが追跡項目を生成するかの選択を制御
することができる。これは、コンソール制御される追跡
命令の各記憶オペランドにクラス・フイールドがセツト
された後に行なうことができる。それぞれのプログラム
の記憶オペランド、またはプログラムのそれぞれの部分
で、それぞれのクラス(例えば、0〜15)をセツトする
ことにより、コンソール制御は、CPUにセツトされたTR
マスクの形式を制御するコンソールによつて実行し、選
択された追跡命令クラスを使用可能にすることができ
る。
〔実施例〕
第3図は、特殊なオペランド・コード(TROPコード)と
3つのオペランド・アドレスを含む追跡命令11の構成を
示す。オペランド・アドレスのうち、R1とR3は、システ
ム/370CPUの汎用レジスタのR1〜R3のラツプアラウンド
の範囲を定義する。B2とD2を含む第2のオペランド・ア
ドレスは、主記憶の32ビツト・ワードである第2オペラ
ンド(OPD2)の論理アドレス(仮想アドレスの場合もあ
る)を供給するように組合わされている。
第3図の追跡命令11のような、任意数の追跡(TR)命令
は、IBMシステム/370拡張アーキテクチヤ(XA)−IBM S
ystem/370 Extended Architecture Principles of Oper
ation、Form No.SA22-7085参照−に従つて書込まれた任
意のプログラムの命令ストリームの選択された追跡位置
に挿入されることができる。第6図々命令ストリーム全
体にわたつてTR命令が点在しているプログラムの例を示
す。
各CPUの追跡項目16の制御レジスタ(CR)の1つCR12は
追跡動作制御するのに使われる。CR12において、B、A
およびEと呼ばれる3つのフラグ・フイールドがあり、
その各々の長さは1ビツトである。また、CR12は“次の
TT(追跡表)項目アドレス”と呼ばれるアドレス・フイ
ールドを有する。フラグ・ビツトBは(1の状態にセツ
トされると)、下記のシステム/37OXA命令セツトの黙示
型追跡を可能にする。
分岐・連結(BALRのみ):R2フイールド≠0の場合。
分岐・保管(BASRのみ):R2フイールド≠0の場合。
分岐・保管・セツト・モード:R2フイールド≠0の場
合。
B=1によつて追跡が使用可能になると、これらの分岐
命令の1つが実行されるごとに、分岐した後に存在する
システム/370XAアドレス・モードに従つて、追跡項目
は、第4図に示されたタイプの31ビツト分岐項目または
24ビツト分岐項目として生成され、それぞれのCPUの主
記憶内の追跡表に挿入される。
同様に、フラグ・ビツトAが1にセツトされると、下記
の、システム/370XAアドレス空間ASN命令セツトの黙示
型追跡が使用可能になる。
プログラム呼出し プログラム転送 2次ASNセツト ビツトAが1にセツトされると、これらのASN命令のど
れか1つを実行することにより追跡表の項目が作成され
る。また、追跡表にそれぞれ生成された、これらのASN
命令の追跡項目のフオーマツトも、それぞれの命令の名
前と一緒に第4図に示されている。
フラグ・ビツトBまたはAまたは両者を1の状態にセツ
トすると、黙示型追跡が可能になる。これは、これらの
2つのセツトにある命令のどれかが実行されるごとに、
追跡表項目が実行プロセスの一部分として黙示的に生成
されるからである。黙示的である理由は、これらの命令
をプログラムに挿入するプログラムは、それらの命令を
後に追跡に使うことについて気づかなくてもよいからで
ある。
CR12のフラグ・ビツトEは、第3図に示された追跡命令
11のようなタイプの追跡命令の各々による明示型追跡を
制御し、第4図の「追跡」の項目形式を有する追跡表の
項目を生成する。プログラマによるTR命令の使用は明示
型である。その理由は、プログラムは追跡に使用するこ
とが分つていてTR命令をプログラムに挿入するからであ
る。明示型追跡が使用可能(すなわち、フラグ・ビツト
Eが1にセツトされている)であり、かつ実行中のプロ
グラムで追跡命令11に出会つたとき、若し、追跡命令の
第2オペランドのフラグ・ビツトTが0の状態にセツト
されているならば、どの追跡命令も使用禁止されてお
り、追跡項目は生成されない。しかしながら、若し、フ
ラグ・ビツトTが1の状態にセツトされているならば、
該命令は使用可能であり、追跡項目は生成され、追跡表
に加えられる。
任意選択のクラス制御機能もCPUに設けられ、追跡命令
のクラスの使用可能および使用禁止を制御することがで
きる。例えば、1つのルーチンにある追跡命令のすべて
はクラス1と呼ばれ、もう1つのルーチンの追跡命令の
すべてはクラス2と呼ばれることができる。そして若
し、CPUでクラス機能が使用可能ならば、コンソール操
作員は、CPUの追跡(TR)マスク・レジスタ(第5図のT
Rマスク・レジスタ22)に追跡マスクをセツトし、例え
ば、クラス1を使用可能に、クラス2を使用禁止にする
ことができる。この動作により、クラス1追跡命令だけ
が追跡表に項目を加え、クラス2追跡命令はノーオペレ
ーシヨン(NOP)として実行され、追跡項目は供給され
ない。
追跡可能なプログラムの完全性は特別な追跡可能/禁止
制御を各追跡命令の記憶オペランドに加えることにより
高められる。これは、追跡命令11を含むプログラム・モ
ジユール以外の異なつたプログラム制御セクシヨンに第
2オペランド・データを置くことによつて行われる。そ
して、ユーザは後に、該プログラム・モジユールを妨害
することなく、フラグ・ビツトTおよび/またはクラス
・フイールド(もしあれば)の一方または双方をセツト
することにより、任意の追跡命令の使用禁止を制御する
ことができる。若し、ユーザが追跡を制御するため該モ
ジユールをアセンブルし直すことができるならばプログ
ラムは破壊されるので、ユーザにプログラムをアクセス
させないようにすることにより、プログラムの完全性が
維持される。
また、プログラム自体をアクセスせずに特定の追跡を実
行しようとする際、ユーザがセツトすることもできる記
憶オペランドに註釈フイールドが設けられる。
第5図は各CPU内の本発明にとつて重要な回路を表わ
す。CPUの回路の大部分は、本発明の実施例の説明とは
関連しないので、それらの図示および説明は省略する。
従つて、第5図には、各CPUの、時刻(TOD)クロツク2
1、TRマスク・レジスタ22、命令実行(IE)装置23、複
数の制御レジスタ(CR)0〜15(CR12の出力のみ表
示)、複数の汎用レジスタ(GR)0〜15、TRデータ・レ
ジスタ26、記憶データ・バス(SDB)レジスタ31、記憶
アドレス・バス(SAB)レジスタ32等、ならびにこれら
を相互接続する回路が示されている。
TRマスク・レジスタ22は、任意選択でCPUに設けられ、
前に説明したクラス追跡制御をサポートするのにしか必
要としない。クラス追跡制御は他のCPUには存在しない
ことがある。若し存在しないならば、第3図に示された
OPD2(第2オペランド)のクラス・フイールドは使用で
きず、CPUは無視する。若し、TRマスク・レジスタ22がC
PUに存在するならば、システム・コンソール(図示せ
ず)−システムによつてはプロセツサ制御装置(PC)と
呼ばれる−からの追跡マスク・セツト・コマンドによつ
てセツトされる。PCについては前記米国特許出願第5091
28号(1983年6月29日)を参照されたい。CPUは、PCコ
マンド・デコーダ37およびANDゲート38に接続されてい
る両方向性バス36を介してPCからのコマンドを受取る。
PCコマンド・デコーダ37がTRマスク・セツト・コマンド
を受取り、複号すると、ANDゲート38が使用可能にな
り、16ビツトの(この時点で両方向性バス36を介して送
られている)TRマスクが通過してCPUのTRマスク・レジ
スタ22にロードされる。
それぞれのTRマスク・セツト・コマンドはシステムの各
CPUによつて識別されるので、PCはMPのそれぞれのCPUの
TRマスクを別々にセツトすることができる。
従つて、どのCPUへのTRマスク・セツト・コマンドも、P
Cからの両方向性バス36を介してTRマスクをTRマスク・
レジスタ22にロードする。
各CPUのIE装置23は、通常の方法でCPUの命令ストリーム
を解放し実行する。更に、IE装置23は、本明細書の説明
のように、新規の黙示型および明示型の追跡(TR)命令
を実行する。
本発明によるシステム性能の利点として、本発明による
黙示型および明示型の追跡を使用する場合、CPUは命令
ストリームに割込まない。(現在のページに追跡項目が
満たされると新しいページを割振つて追跡表を続けるた
めに割込みを必要とすることがときどきある。ページ割
振りの割込みは、IBM多重仮想記憶(MVS)制御プログラ
ムの場合のような、仮想アドレス方式ではよく知られて
いる。ページング割込みは追跡割込みではない点に注意
を要する。) CPUが第5図のIE装置23においてTR命令を実行すること
は、CPUキヤツシユ(図示せず)にある。または、CPUキ
ヤツシユにはない場合は、主記憶からの第2オペランド
をアクセスするために、バス41からORゲート42を介して
SABレジスタ32へ(変換後の、かつ接頭の)TR第2オペ
ランド絶対アドレスをIE装置23が供給することと関連す
る。(キヤツシユおよび記憶アクセス制御は、当業者に
は周知の従来のものでよい。)SDBO(記憶データ・バス
出力)43は、キヤツシユ(または主記憶)からのオペラ
ンド・データを受取り、それをIE装置23に転送する。IE
装置23は、そのローカル記憶44に第2オペランドを一時
記憶する。
第1図および第2図は、黙示型および明示型の追跡の実
行を制御するための、第5図のCPUで使用されるマイク
ロコード化された方法を表わす。この実行プロセスは、
IE動作の結果を一時的に保持するローカル記憶44を使用
する。マイクロコードによつて、ローカル記憶44の選択
された内容は、TRデータ・レジスタ26を介して主記憶に
転送され、追跡表項目が書込まれる。第1図および第2
図はMPシステムの各CPUに使用され、各CPUで別個に動作
する。
第1図において、CPUの動作が開始された後、ステツプ1
11において、次の命令の実行が開始され、次いで、ステ
ツプ112、113および114において、命令が黙示型または
明示型の追跡表項目を生成できるタイプの1つであるか
どうかが検査される。ステツプ112の検査では、分岐命
令セツトにある追跡可能な命令であるかどうかを決定す
る。ステツプ113の検査では、アドレス空間命令セツト
にある追跡可能命令であるかどうかを決定し、ステツプ
114の検査では、追跡命令であるかどうかを決定する。
若し、ステツプ112、113および114の検査結果がすべて
“ノー”ならば、ステツプ111に戻つて追跡可能な状態
の次の命令を実行する。(通常のすべての命令も実行さ
れているが、本発明とは無関係であるので、その説明は
省略する。) しかしながら、若し、ステツプ112、113または114のど
れかが、命令が追跡可能命令または追跡命令であること
を見つけるならば、そのステツプの検査結果は、“イエ
ス”となり、フラグ・ビツトB、AまたはEのどれかが
検査され、該ビツトが1の状態または0の状態のどちら
にセツトされるかを決定する。若し、フラグ・ビツトが
0の状態にセツトされているならば、“ノー”の出口を
通つて、ステツプ111に戻り、追跡可能状態の次の命令
を実行する。
しかしながら、若し、検査されたフラグ・ビツトB、A
またはEが1の状態であれば、検査結果は、“イエス”
の出口を取る。若し、フラグ・ビツトBまたはAの検査
ステツプ116または117から“イエス”の出口を通るなら
ば、ステツプ104または105に進み、それぞれの実行中の
命令の、第4図の対応するフオーマツトに従つて、追跡
表項目の書込みを制御する。
ステツプ104および105は、第4図に示された長さを有す
る新しい項目が、現に使用しているページ・フレームの
末尾を越えるかどうかを決定し、若しそうなら、ステツ
プ104または105は、CR12における次の項目のアドレスと
なる新しいページ・フレームを割振る。
次に、ステツプ106または107は、(第4図に示すよう
に)書込まれる項目の左端のフイールドのそれぞれの項
目IDコードをそれぞれ生成する。書込まれる項目の長さ
は異なることがあるので、この項目IDコードによつて、
各々の書込まれた追跡表項目の長さおよびタイプを、後
に行なう表分析中に決定することができる。次いで、ス
テツプ108および109は追跡における次の項目位置に項目
を書込む。
しかしながら、若し、フラグ・ビツトEを検査するステ
ツプ118の結果が“イエス”であれば、ステツプ119で、
第2オペランド(OPD2)は、アドレス指定されるととも
に取出され、第5図のSDBO43を介してIE装置23に受取ら
れる。そして、第2オペランドは一時的にローカル記憶
44に記憶される。次いで、IE装置23は、ステツプ121で
フラグ・ビツトTの状態を検査し、Tが1の状態である
か、0の状態であるかを決定する。若し、Tが0の状態
であれば、追跡命令は、使用禁止となり、“ノー”の出
口を通つてステツプ111に戻り、次の追跡命令を実行す
る。しかしながら、若し、フラグ・ビツトTが1の状態
ならば、“イエス”の出口から経路101を介してステツ
プ103に進み、追跡表(TT)項目を書込む。そして経路1
02を介してステツプ111に戻り、次の追跡命令を実行す
る。
第2図は第1図のステツプ103のサブステツプの詳細を
示す。第2図のステツプ131において、このPCUで現に実
行中の追跡命令によつて作成しようとしている追跡項目
の記憶位置を主記憶の絶対アドレスで示すビツト位置19
に対応する、CR12のアドレス・フイールドのビツト位置
がアクセスされる。CR12のこのビツト位置19は、ステツ
プ131において現在のビツト19として指定され、ローカ
ル記憶19に一時的にコピーすることができる。
次に、ステツプ132において、値Nが生成される。値N
は、実行中の追跡命令のR1およびR3フイールドによつて
定義されたシーケンスのレジスタ数から1を差引いた値
である。このシーケンスはR1で始まりR3で終る。R1およ
びR3は各々が0〜15の任意の値をとることができる。若
し、R3がR1よりも小さければ、シーケンスはラツプアラ
ウンドしてGR0に戻る。若し、R1とR3が等しければ、1
つの汎用レジスタが指定され、Nは0ではある。若し、
R3がR1に等しいか、またはR1よりも大きければ、NはR3
−R1に等しい。しかし、若しR3がR1よりも小さければ、
ラツプアラウンドが生じ、Nは16−R1+R3に等しくな
る。Nは、該命令のR1〜R3の範囲によつて指定されたレ
ジスタ数よりも1だけ小さいので、該追命令によつて指
定された範囲のレジスタ数を決めるためには、Nに1を
加える必要がある。
次に、ステツプ133において、次に追跡項目のアドレス
が生成される。このアドレスは、追跡表に現に作成中の
項目に論理的に追随する。この次アドレスは、(CR12か
ら得た)現在のTTアドレス+12+4(N+1)として生
成される。すなわち、明示型の追跡命令の追跡表項目の
長さは常に12バイトに可変GR内容フイールドを加えたも
のである。これは、ビツト位置を表わす第4図に示され
た追跡項目で分る。追跡項目は、(アドレスがバイト単
位であるので)ステツプ133計算で8ビツト・バイト
(ポリテイは無視)に変換されなければならない。
次に、ステツプ134において、次のビツト19が、(ステ
ツプ133で計算された)次の項目アドレスから、ローカ
ル記憶44で次のビツト19と呼ばれる記憶場所に書込まれ
る。
次に、ステツプ136において、IE装置23によつて現在の
ビツト19とローカル記憶44にある次のビツト19の比較が
行われる。この比較によつて、書込まれる現在の追跡項
目が、主記憶で使用中の現在のページ・フレームの末尾
の境界を越えるかどうかが決められる。若し、現在のビ
ツト19と次のビツト19とが等しければ(通常の場合)、
書込まれる現在の項目のための空間が現在のページにあ
ることを示し、次のステツプ137において、該項目が現
在のページに書込まれることになり、現在の項目が生成
される。この動作には項目IDコードの生成が含まれる。
項目IDコードは、IE装置23が、ローカル記憶44の項目ID
コード表への引数として現に実行中の命令から得られる
OPコードおよびアドレス指定モードを使用することによ
つて生成される。すなわち、追跡可能な命令の各々は、
分岐されたアドレス指定モードも必要とする追跡可能な
分岐命令を除き、そのOPコードに対応するIDコードを有
する。次に、該コード表のアクセスされた項目IDコード
は、ローカル記憶44において形成中のTT項目のIDコード
・フイールド(左端のフイールド)に書込まれる。
ステツプ137において、追跡命令のローカル記憶44に形
成中のこの項目はまた、第5図のTODクロツク21からTOD
の値を受取る。
また、ステツプ137において、Nの値がローカル記憶44
に形成中のTT項目のNフイールドに挿入される。次にス
テツプ138において、主記憶がアクセスされる。そし
て、ステツプ139において、項目IDコード、Nフイール
ド、TODフイールド、および第2オペランドが、ローカ
ル記録44からTRデータ・レジスタ26およびSDBレジスタ3
1を介してCPUキヤツシユへ、次いで主記憶の追跡表へ転
送される。
更に、ステツプ139において、第4図の追跡命令のフオ
ーマツトに示すように、レジスタR1〜R3の内容を転送す
る。このように、TT項目は次の追跡項目として追跡表に
書込むことができる。
次に、ステツプ140において、(前のステツプ133で生成
され、ローカル記憶44に書込まれた)次の項目アドレス
が取出され、CR12における次のTT項目アドレス・フイー
ルドに転送される。
ステツプ136において、若し、現在のビツト19と次のビ
ツト19とが等しくなければ、生成されている追跡項目
は、現に使用しているページ・フレームの末尾境界線を
越えるから、ステツプ144に進む。すなわち追跡表は実
記憶域で割振られた空間から抜け出しており、より多く
の空間を割振つて始めて追跡表は別の項目によつて拡張
することができる。そのために、ステツプ144におい
て、ページ例示信号が生成される。
次に、ステツプ145において、追跡命令実行によつてロ
ーカル記録44に生成された領域を無効化するように、実
行中のTR命令の実行結果を廃棄する。
次に、ステツプ146において、プログラム割込みが行わ
れ、ステツプ147において、記憶割振りプログラムが開
発され、追跡表の新しいページ・フレームが割振られ、
新しいページ・アドレスがCR12の、次のTT項目アドレス
・フイールドにロードされる。その後、出口Aを経由し
て第1図に戻る。第1図では、同じTR命令のマイクロコ
ードは、後にPSWをロードすることによりCPU制御が記憶
割振りプログラムからそのプログラムに返送された後、
最初から再開される。第1図および第2図のマイクロコ
ードの再実行は、ステツプ136で、割振られたページ・
フレームに項目が適合し、ステツプ137で、現にCR12に
ある新しいページ・アドレスにおいて追跡表への追跡項
目の書込みを生じる外は、前述の説明と同様に行われ
る。
本明細書で説明したマイクロコード(すなわちフオーム
ウエア)は、コンピユータ設計技術にかかわる当業者が
比較的容易に、ハードウエア単独で、またはマイクロコ
ードとハードウエアの組合せで実施することができ、マ
イクロコード形式はそれぞれの特定のハードウエア設計
支援に応じて変更される。
〔発明の効果〕
従来の追跡手法は、本発明と較べると、特定の状況の場
合、相対的に少なすぎたりまたは多すぎる追跡表項目を
備えている場合が多く、前記項目を必要性と平衡させる
のに調整しうる幅が少ない。
オペレーテイング・システムの性能の改善はしばしば、
スパーバイザ呼出し(SVC)命令を分岐・連結命令に変
更することによりモジユール間のインタフエース動作を
変更し、SVCが生じるハードウエア割込みを除去するこ
とによつて行なうことができる。このような変更がなさ
れると、(SVC割込みハンドラ・プログラムによつて生
成された)従来の分岐追跡情報はもはや得られなくな
る。このように、システムの分岐・連結インタフエース
が符号化されればされる程、追跡情報の収集は少なくな
る。本発明の分岐追跡機能は時折のページ境界横断の場
合を除き、プログラム割込みなしで追跡情報を取戻す能
力を提供する。追跡制御レジスタにおいて分岐追跡は別
々に使用可能になるので、システムのこの部分で問題が
生じたときだけ、追跡情報が収集される。
かくて本発明により下記の効果が得られる。
(1)追跡を行つているCPU間の干渉をなくしMPの性能
を大幅に改善する。
(2)追跡中の命令ストリームへの追跡割込みをなく
し、追跡を行なつているCPUの性能を大幅に改善でき
る。
(3)汎用追跡命令で一般的な明示型の追跡をサポート
できる。
(4)追跡項目の内容の質を改善し、記憶空間を効率的
に使用できる。
【図面の簡単な説明】
第1図は本発明によつて使用できる方法の流れ図、 第2図は第1図のステツプ103のサブステツプの流れ
図、 第3図は本発明の追跡命令の構成を示す図、 第4図は第3図の追跡命令による明示型追跡、 ならびに、分岐およびASN命令による黙示型追跡におい
てCPUの追跡表に作成しうる種々の可変長項目を示す
図、 第5図はCPUに設けられた、追跡可能命令および追跡命
令によつて追跡動作をサポートするハードウエアの論理
図、 第6図は追跡命令を含む、アセンブルされた命令ストリ
ームを表わす図、 第7図は複数のCPUが使用しうる従来のシステム/370の
追跡命令の構成を示す図である。 11……追跡命令、12……第2オペランド、16……追跡項
目、21……TODクロツク、22……TRマスク・レジスタ、2
3……IE装置、26……TRデータ・レジスタ、31……SDBレ
ジスタ、32……SABレジスタ、36……両方向性バス、37
……PCコマンド・デコーダ、38……ANDゲート、41……
バス、42……ORゲート、43……SDBO、44……ローカル記
憶。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ア−サ−・ルイス・レヴイン アメリカ合衆国ニユ−ヨ−ク州プレザン ト・バレ−・ノ−ス・アベニユ−・ピ−・ オ−・ボツクス573番地 (72)発明者 ロナルド・モ−トン・スミス アメリカ合衆国ニユ−ヨ−ク州ワツピンジ ヤ−ズ・ホ−ルズ・シダ・ミル・ル−プ15 番地 (72)発明者 ジヨン・ヘイドン・ウイルソン アメリカ合衆国テキサス州オ−スチン・イ ンウツド・ロ−ド404番地 (56)参考文献 特開 昭51−60127(JP,A) 特開 昭54−93941(JP,A) 特開 昭56−71148(JP,A) 特開 昭50−74950(JP,A)

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】複数の中央処理装置と、前記複数の中央処
    理装置が夫々命令実行回路、制御レジスタ、汎用レジス
    タ、主メモリを有しているマルチプロセッサ環境におい
    て前記中央処理装置ごとに所定のプログラムの追跡を行
    う方法であって、前記プログラム中に挿入された明示型
    追跡命令の実行によって、 前記命令実行回路が前記明示型追跡命令のオペランド中
    で指定された前記主メモリ中のオペランドアドレスに格
    納された使用禁止フィールドが所定の値を示す場合に、
    前記オペランド中の汎用レジスタを特定する情報を用い
    て前記汎用レジスタを特定し、前記特定された汎用レジ
    スタに格納された内容に係わる情報を含む可変長な追跡
    項目を、前記主メモリ内の前記制御レジスタに記憶され
    た所定のアドレス位置に作成するプログラム追跡方法。
  2. 【請求項2】前記制御レジスタは前記明示型追跡命令の
    実行を禁止する情報を含むことを特徴とした請求項1の
    プログラム追跡方法。
  3. 【請求項3】前記制御レジスタは前記明示型追跡命令以
    外の所定の命令が実行された時に、前記所定の命令に固
    有な追跡情報を含む固定長の項目を、前記制御レジスタ
    に記憶された前記主メモリ内の所定のアドレス位置に作
    成することを禁止する作用を有するビットを含むことを
    特徴とした請求項2のプログラム追跡方法。
JP59095790A 1983-06-29 1984-05-15 プログラム追跡方法 Expired - Lifetime JPH0697436B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/509,129 US4598364A (en) 1983-06-29 1983-06-29 Efficient trace method adaptable to multiprocessors
US509129 1983-06-29

Publications (2)

Publication Number Publication Date
JPS6010354A JPS6010354A (ja) 1985-01-19
JPH0697436B2 true JPH0697436B2 (ja) 1994-11-30

Family

ID=24025398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59095790A Expired - Lifetime JPH0697436B2 (ja) 1983-06-29 1984-05-15 プログラム追跡方法

Country Status (4)

Country Link
US (1) US4598364A (ja)
EP (1) EP0130467B1 (ja)
JP (1) JPH0697436B2 (ja)
DE (1) DE3483120D1 (ja)

Families Citing this family (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0776932B2 (ja) * 1984-12-07 1995-08-16 日本電気株式会社 デ−タ伝送方式
DE3502387A1 (de) * 1985-01-25 1986-07-31 Klöckner-Moeller Elektrizitäts GmbH, 5300 Bonn Verfahren zur ueberwachung von mikroprozessorsystemen und speicherprogrammierbaren steuerungen
US4764863A (en) * 1985-05-09 1988-08-16 The United States Of America As Represented By The Secretary Of Commerce Hardware interpreter for finite state automata
US4937740A (en) * 1985-09-18 1990-06-26 Cadre Technologies, Inc. Real time software analyzing system for storing selective m-bit addresses based upon correspondingly generated n-bit tags
JPS62243008A (ja) * 1986-04-15 1987-10-23 Fanuc Ltd Pmcの信号トレ−ス制御方式
JPH01125633A (ja) * 1987-11-11 1989-05-18 Fujitsu Ltd マルチプロセッサシステムのデバッグ法
JP2678283B2 (ja) * 1988-03-15 1997-11-17 株式会社日立製作所 データ通信制御装置
JPH01241636A (ja) * 1988-03-17 1989-09-26 Internatl Business Mach Corp <Ibm> データ処理システム
JPH01297764A (ja) * 1988-05-25 1989-11-30 Nec Corp プロセッサ
US5067073A (en) * 1988-08-02 1991-11-19 International Business Machines Corporation Embedded tracing method for identifying program executed paths
US5121489A (en) * 1988-08-02 1992-06-09 International Business Machines Corporation Tracing method for identifying program execution paths using a trace points bit map with one-to-one correspondence with embedded trace points
US5073968A (en) * 1988-08-09 1991-12-17 Hewlett-Packard Company Method and apparatus for marking emulation analysis states
JPH02199548A (ja) * 1988-11-09 1990-08-07 Asea Brown Boveri Ag 電算機系で作成されるオブジエクト・プログラムの時間経過を観察する方法とこの方法を実行する観測器具
JPH02133834A (ja) * 1988-11-14 1990-05-23 Nec Corp インサートキットエミュレータ
JPH02216545A (ja) * 1989-02-17 1990-08-29 Nec Corp 実行履歴記憶装置
JPH02271435A (ja) * 1989-04-13 1990-11-06 Mitsubishi Electric Corp タスクトレース装置
EP0396833A1 (en) * 1989-05-12 1990-11-14 International Business Machines Corporation Trace facility for use in a multiprocessing environment
US5274811A (en) * 1989-06-19 1993-12-28 Digital Equipment Corporation Method for quickly acquiring and using very long traces of mixed system and user memory references
US5124989A (en) * 1990-01-08 1992-06-23 Microsoft Corporation Method of debugging a computer program
JPH03217949A (ja) * 1990-01-23 1991-09-25 Hitachi Ltd 計算機システム
JPH0820975B2 (ja) * 1990-03-29 1996-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムおよびコンピュータ上で実行されるトレース方法
EP0455946A3 (en) * 1990-05-07 1992-10-28 International Business Machines Corporation System for debugging shared memory multiprocessor computers
US5151981A (en) * 1990-07-13 1992-09-29 International Business Machines Corporation Instruction sampling instrumentation
US5355469A (en) * 1990-07-30 1994-10-11 Delphi Data, A Division Of Sparks Industries, Inc. Method for detecting program errors
US5355484A (en) * 1991-08-12 1994-10-11 International Business Machines Corporation Dynamically established event monitors in event management services of a computer system
US5305454A (en) * 1991-08-12 1994-04-19 International Business Machines Corporation Notification of event handlers in broadcast or propagation mode by event management services in a computer system
US5625821A (en) * 1991-08-12 1997-04-29 International Business Machines Corporation Asynchronous or synchronous operation of event signaller by event management services in a computer system
US5237684A (en) * 1991-08-12 1993-08-17 International Business Machines Corporation Customized and versatile event monitor within event management services of a computer system
US5319784A (en) * 1991-12-18 1994-06-07 International Business Machines Corp. System for automatic and selective compile-time installation of fastpath into program for calculation of function/procedure without executing the function/procedure
US5491793A (en) * 1992-07-31 1996-02-13 Fujitsu Limited Debug support in a processor chip
US5359608A (en) * 1992-11-24 1994-10-25 Amdahl Corporation Apparatus for activation and deactivation of instruction tracing through use of conditional trace field in branch instructions
US5473754A (en) * 1993-11-23 1995-12-05 Rockwell International Corporation Branch decision encoding scheme
JP3290280B2 (ja) * 1994-01-13 2002-06-10 株式会社東芝 情報処理装置
DE4407573C1 (de) * 1994-03-07 1995-03-30 Siemens Nixdorf Inf Syst Datenverarbeitungsanlage mit Einrichtungen zur Aufzeichnung von bei Programmabläufen wirksam werdenden Steuersignalen und/oder Adressen
US5446876A (en) * 1994-04-15 1995-08-29 International Business Machines Corporation Hardware mechanism for instruction/data address tracing
US5642478A (en) * 1994-12-29 1997-06-24 International Business Machines Corporation Distributed trace data acquisition system
US6052801A (en) * 1995-05-10 2000-04-18 Intel Corporation Method and apparatus for providing breakpoints on a selectable address range
US5659679A (en) * 1995-05-30 1997-08-19 Intel Corporation Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system
US5621886A (en) * 1995-06-19 1997-04-15 Intel Corporation Method and apparatus for providing efficient software debugging
US5740413A (en) * 1995-06-19 1998-04-14 Intel Corporation Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping
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
US5805862A (en) * 1995-11-16 1998-09-08 Motorola, Inc. Method of forming an integrated circuit
US5758061A (en) * 1995-12-15 1998-05-26 Plum; Thomas S. Computer software testing method and apparatus
JPH1078889A (ja) * 1996-09-04 1998-03-24 Mitsubishi Electric Corp マイクロコンピュータ
US5862371A (en) * 1996-11-25 1999-01-19 International Business Machines Corporation Method and system for instruction trace reconstruction utilizing performance monitor outputs and bus monitoring
US6148381A (en) * 1997-04-08 2000-11-14 Advanced Micro Devices, Inc. Single-port trace buffer architecture with overflow reduction
US6094729A (en) * 1997-04-08 2000-07-25 Advanced Micro Devices, Inc. Debug interface including a compact trace record storage
US6189140B1 (en) 1997-04-08 2001-02-13 Advanced Micro Devices, Inc. Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic
US6142683A (en) * 1997-04-08 2000-11-07 Advanced Micro Devices, Inc. Debug interface including data steering between a processor, an input/output port, and a trace logic
US6154856A (en) * 1997-04-08 2000-11-28 Advanced Micro Devices, Inc. Debug interface including state machines for timing synchronization and communication
US6009270A (en) * 1997-04-08 1999-12-28 Advanced Micro Devices, Inc. Trace synchronization in a processor
US6314530B1 (en) 1997-04-08 2001-11-06 Advanced Micro Devices, Inc. Processor having a trace access instruction to access on-chip trace memory
US5933626A (en) * 1997-06-12 1999-08-03 Advanced Micro Devices, Inc. Apparatus and method for tracing microprocessor instructions
US6282701B1 (en) 1997-07-31 2001-08-28 Mutek Solutions, Ltd. System and method for monitoring and analyzing the execution of computer programs
US6175914B1 (en) 1997-12-17 2001-01-16 Advanced Micro Devices, Inc. Processor including a combined parallel debug and trace port and a serial port
JP3872196B2 (ja) * 1998-01-09 2007-01-24 株式会社ルネサステクノロジ マイクロコンピュータ
US6021271A (en) * 1998-01-15 2000-02-01 Motorola, Inc. Methods of simulating an electronic circuit design
US6145100A (en) * 1998-03-04 2000-11-07 Advanced Micro Devices, Inc. Debug interface including timing synchronization logic
US6145122A (en) * 1998-04-27 2000-11-07 Motorola, Inc. Development interface for a data processor
US6125444A (en) * 1998-04-30 2000-09-26 International Business Machines Corporation Millimode capable computer system providing global branch history table disables and separate millicode disables which enable millicode disable to be turned off for some sections of code execution but not disabled for all
US6145123A (en) * 1998-07-01 2000-11-07 Advanced Micro Devices, Inc. Trace on/off with breakpoint register
US6223338B1 (en) * 1998-09-30 2001-04-24 International Business Machines Corporation Method and system for software instruction level tracing in a data processing system
US6253338B1 (en) * 1998-12-21 2001-06-26 International Business Machines Corporation System for tracing hardware counters utilizing programmed performance monitor to generate trace interrupt after each branch instruction or at the end of each code basic block
US6260082B1 (en) * 1998-12-23 2001-07-10 Bops, Inc. Methods and apparatus for providing data transfer control
GB2348718A (en) 1999-04-07 2000-10-11 Ibm Data processing system having a centralised trace facility with dynamic tracing
US6539500B1 (en) * 1999-10-28 2003-03-25 International Business Machines Corporation System and method for tracing
US7058928B2 (en) 1999-12-23 2006-06-06 Identify Software Ltd. System and method for conditional tracing of computer programs
US20020087949A1 (en) * 2000-03-03 2002-07-04 Valery Golender System and method for software diagnostics using a combination of visual and dynamic tracing
US8312435B2 (en) * 2000-12-26 2012-11-13 Identify Software Ltd. (IL) System and method for conditional tracing of computer programs
US6795836B2 (en) * 2000-12-29 2004-09-21 International Business Machines Corporation Accurately determining an object's lifetime
US7313734B2 (en) * 2002-01-14 2007-12-25 International Business Machines Corporation Method and system for instruction tracing with enhanced interrupt avoidance
US20030135718A1 (en) * 2002-01-14 2003-07-17 International Business Machines Corporation Method and system using hardware assistance for instruction tracing by revealing executed opcode or instruction
US20040003160A1 (en) * 2002-06-28 2004-01-01 Lee John P. Method and apparatus for provision, access and control of an event log for a plurality of internal modules of a chipset
US7386839B1 (en) 2002-11-06 2008-06-10 Valery Golender System and method for troubleshooting software configuration problems using application tracing
US8032866B1 (en) 2003-03-27 2011-10-04 Identify Software Ltd. System and method for troubleshooting runtime software problems using application learning
US7395527B2 (en) 2003-09-30 2008-07-01 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses
US8381037B2 (en) 2003-10-09 2013-02-19 International Business Machines Corporation Method and system for autonomic execution path selection in an application
US7458078B2 (en) * 2003-11-06 2008-11-25 International Business Machines Corporation Apparatus and method for autonomic hardware assisted thread stack tracking
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
US7415705B2 (en) 2004-01-14 2008-08-19 International Business Machines Corporation Autonomic method and apparatus for hardware assist for patching code
US7434108B2 (en) * 2004-04-30 2008-10-07 Freescale Semiconductor, Inc. Masking within a data processing system having applicability for a development interface
GB0412104D0 (en) * 2004-05-29 2004-06-30 Ibm Apparatus method and program for recording diagnostic trace information
US7827539B1 (en) 2004-06-25 2010-11-02 Identify Software Ltd. System and method for automated tuning of program execution tracing
US7464874B2 (en) * 2005-02-24 2008-12-16 Robert William Donner Method and system for transparent and secure vote tabulation
US7188052B2 (en) * 2005-04-12 2007-03-06 International Business Machines Corporation Using highly skewed clocks for application based tracing and application based normalization of processor clocks in an SMP environment
US7725894B2 (en) * 2006-09-15 2010-05-25 International Business Machines Corporation Enhanced un-privileged computer instruction to store a facility list
US20080071502A1 (en) * 2006-09-15 2008-03-20 International Business Machines Corporation Method and system of recording time of day clock
US7962803B2 (en) * 2008-09-30 2011-06-14 International Business Machines Corporation Apparatus, system, and method for multi-address space tracing
US8234524B1 (en) * 2009-09-28 2012-07-31 Dale Trenton Smith Protocol analysis with event present flags
US20110231820A1 (en) * 2010-03-19 2011-09-22 Aricent Inc. Exclusive logging
US8745598B2 (en) 2010-12-14 2014-06-03 Bmc Software, Inc. Running injected code prior to execution of an application
US8762952B2 (en) 2010-12-14 2014-06-24 Bmc Software, Inc. Recording method calls that led to an unforeseen problem
US8793538B2 (en) * 2012-01-30 2014-07-29 Hewlett-Packard Development Company, L.P. System error response
JP6122749B2 (ja) * 2013-09-30 2017-04-26 ルネサスエレクトロニクス株式会社 コンピュータシステム
US10108528B2 (en) 2016-08-26 2018-10-23 Microsoft Technology Licensing, Llc High-performance processor instruction tracing
US10042737B2 (en) 2016-08-31 2018-08-07 Microsoft Technology Licensing, Llc Program tracing for time travel debugging and analysis
US10031833B2 (en) 2016-08-31 2018-07-24 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis
US10031834B2 (en) 2016-08-31 2018-07-24 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis
US10489273B2 (en) 2016-10-20 2019-11-26 Microsoft Technology Licensing, Llc Reuse of a related thread's cache while recording a trace file of code execution
US10310977B2 (en) 2016-10-20 2019-06-04 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using a processor cache
US10310963B2 (en) 2016-10-20 2019-06-04 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using index bits in a processor cache
US10324851B2 (en) 2016-10-20 2019-06-18 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using way-locking in a set-associative processor cache
US10540250B2 (en) 2016-11-11 2020-01-21 Microsoft Technology Licensing, Llc Reducing storage requirements for storing memory addresses and values
US10365987B2 (en) 2017-03-29 2019-07-30 Google Llc Synchronous hardware event collection
US9875167B1 (en) 2017-03-29 2018-01-23 Google Inc. Distributed hardware tracing
US10318332B2 (en) 2017-04-01 2019-06-11 Microsoft Technology Licensing, Llc Virtual machine execution tracing
US10296442B2 (en) 2017-06-29 2019-05-21 Microsoft Technology Licensing, Llc Distributed time-travel trace recording and replay
CN107516052B (zh) * 2017-08-14 2020-11-13 海光信息技术有限公司 一种内存访问隔离方法
US10459824B2 (en) 2017-09-18 2019-10-29 Microsoft Technology Licensing, Llc Cache-based trace recording using cache coherence protocol data
US10558572B2 (en) 2018-01-16 2020-02-11 Microsoft Technology Licensing, Llc Decoupling trace data streams using cache coherence protocol data
US11907091B2 (en) 2018-02-16 2024-02-20 Microsoft Technology Licensing, Llc Trace recording by logging influxes to an upper-layer shared cache, plus cache coherence protocol transitions among lower-layer caches
US10642737B2 (en) 2018-02-23 2020-05-05 Microsoft Technology Licensing, Llc Logging cache influxes by request to a higher-level cache
US10496537B2 (en) 2018-02-23 2019-12-03 Microsoft Technology Licensing, Llc Trace recording by logging influxes to a lower-layer cache based on entries in an upper-layer cache
US10579505B1 (en) 2018-09-11 2020-03-03 International Business Machines Corporation Capturing task traces for multiple tasks

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3659272A (en) * 1970-05-13 1972-04-25 Burroughs Corp Digital computer with a program-trace facility
JPS5160127A (ja) * 1974-11-22 1976-05-25 Hitachi Ltd
US4205370A (en) * 1975-04-16 1980-05-27 Honeywell Information Systems Inc. Trace method and apparatus for use in a data processing system
JPS5946023B2 (ja) * 1978-01-06 1984-11-09 日本電気株式会社 マイクロプログラムのトレ−ス装置
US4268904A (en) * 1978-02-15 1981-05-19 Tokyo Shibaura Electric Co., Ltd. Interruption control method for multiprocessor system
US4435759A (en) * 1981-06-15 1984-03-06 International Business Machines Corporation Hardware monitor for obtaining processor software/hardware interrelationships
US4462077A (en) * 1982-06-24 1984-07-24 Bell Telephone Laboratories, Incorporated Trace facility for use in multiprocessing environment

Also Published As

Publication number Publication date
JPS6010354A (ja) 1985-01-19
US4598364A (en) 1986-07-01
DE3483120D1 (de) 1990-10-11
EP0130467A3 (en) 1987-10-21
EP0130467B1 (en) 1990-09-05
EP0130467A2 (en) 1985-01-09

Similar Documents

Publication Publication Date Title
JPH0697436B2 (ja) プログラム追跡方法
US8812792B2 (en) Technique for using memory attributes
KR100578437B1 (ko) 다수의 스레드의 병행 실행을 지원하는 컴퓨터 시스템에서의 인터럽트 처리 메커니즘
KR100403405B1 (ko) 분산형버스액세스및제어조정에따라다수개의내부신호버스를공유하는다수개의회로기능요소를갖는집적회로
US7783838B1 (en) Maintaining coherency of derived data in a computer system
US6430657B1 (en) Computer system that provides atomicity by using a tlb to indicate whether an exportable instruction should be executed using cache coherency or by exporting the exportable instruction, and emulates instructions specifying a bus lock
EP2660752B1 (en) Memory protection circuit, processing unit, and memory protection method
US20060036824A1 (en) Managing the updating of storage keys
EP0838762A2 (en) A data processor having a cache memory
EP3814907B1 (en) Cache-based trace replay breakpoints using reserved tag field bits
JPH03217949A (ja) 計算機システム
US5594917A (en) High speed programmable logic controller
US20110154111A1 (en) Memory Based Hardware Breakpoints
JP3862959B2 (ja) マイクロプロセッサのロード/ストア命令制御回路、およびロード/ストア命令制御方法
US20060149940A1 (en) Implementation to save and restore processor registers on a context switch
US4991083A (en) Method and system for extending address space for vector processing
US8612720B2 (en) System and method for implementing data breakpoints
EP0156307A2 (en) Pipelined processor having dual cache memories
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
US5117491A (en) Ring reduction logic using parallel determination of ring numbers in a plurality of functional units and forced ring numbers by instruction decoding
JPS6032220B2 (ja) 情報処理装置
JP3055031B2 (ja) メモリ参照について選択可能整列検査を実行するマイクロプロセツサ
JPS6113261B2 (ja)
JPH0652507B2 (ja) マイクロコンピユ−タの開発装置
JPS61290540A (ja) 情報処理装置