JP2824828B2 - プログラムアドレスデータを圧縮する方法および装置ならびにプログラムのデバッギング処理を速める装置 - Google Patents

プログラムアドレスデータを圧縮する方法および装置ならびにプログラムのデバッギング処理を速める装置

Info

Publication number
JP2824828B2
JP2824828B2 JP6286417A JP28641794A JP2824828B2 JP 2824828 B2 JP2824828 B2 JP 2824828B2 JP 6286417 A JP6286417 A JP 6286417A JP 28641794 A JP28641794 A JP 28641794A JP 2824828 B2 JP2824828 B2 JP 2824828B2
Authority
JP
Japan
Prior art keywords
program
debugged
address
data
programmable processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP6286417A
Other languages
English (en)
Other versions
JPH07200348A (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.)
GOSU GURAFUITSUKU SHISUTEMUZU Inc
Original Assignee
GOSU GURAFUITSUKU SHISUTEMUZU Inc
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 GOSU GURAFUITSUKU SHISUTEMUZU Inc filed Critical GOSU GURAFUITSUKU SHISUTEMUZU Inc
Publication of JPH07200348A publication Critical patent/JPH07200348A/ja
Application granted granted Critical
Publication of JP2824828B2 publication Critical patent/JP2824828B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の背景】この発明は、アクセス不能なコンピュー
タ処理装置内のプログラムの流れを確かめる手段に関す
るものである。これは、RSP装置と呼ばれる、単一チ
ップの縮小命令セットの信号処理装置の内部論理の中に
備えられた、デバッグポートの内部に組込まれている。
これは論理アナライザの代わりに使用されるが、その理
由はRSP装置の内部プログラムアドレスバスは、イン
タフェースでは利用できないためである。
【0002】従来、論理アナライザは、デジタルコンピ
ュータのハードウェアのトラブルシューティング時に使
用される主要手段であった。しかし、広い幅のデータと
アドレスバスとを持つ、高度にパイプライン処理された
単一チップの処理装置の出現によって、ハードウェアお
よびプログラムのトラブルシューティングのために、イ
ンタフェースにすべての必要なバスを設けることは非実
用的になってきた。さらにこの目的のために、リアルタ
イムプログラム環境でデバッグするとき、有益と考えら
れるすべてのデータを出力バスに多重化することは不可
能である。
【0003】これらの問題は、外部リードの数が限定さ
れ、あらゆる物理的限界に近い速度を使用し、さらに多
数かつ広いバスへのアクセスが必要となる、次世代の装
置の場合にも起こるであろう。
【0004】
【発明の概要】デバッグポートは、ハードウェアのデバ
ッギングおよびソフトウェア開発のためのツールとし
て、RSP装置の内部に組込まれている。デバッグポー
トは商用論理アナライザの多くの特徴を持つが、装置の
内部論理の中に含まれている。それは主として、装置の
超高速性能の特徴のために、ほとんどの動作が単一シリ
コンダイに含まれることが必要となるからである。この
ことは、装置の機能的動作の大部分が内部的であるゆ
え、外部開発ツールには利用できないことを意味する。
そのため、内部レジスタおよびメモリの中の主情報は、
装置のインタフェースピンでは利用不能であり、また、
リアルタイムプログラム環境では、簡単に多重化できな
い。
【0005】しかしながら、デバッグポートは、すべて
の内部バスにほぼフルにアクセス可能で、プログラマや
装置の設計者が要求するプログラムフローデータを、他
の情報同様に送ることができる。デバッグポートは確か
にシリコン領域にペナルティを課すが、この領域は装置
全体の5パーセント以下であろう。
【0006】この専用デバッグポートは、アドオン論理
アナライザが使用不能であることに関連する多くの問題
を解決する。デバッグポートは、RSP装置のリアルタ
イム処理を妨げずに、バス上のデータをとらえるための
トリガ捕獲条件の入力を許可し、またRSP装置の命令
ストリームへの命令の挿入も許可する。たとえば、内部
レジスタの内容とメモリ位置とをデバッグポートレジス
タにコピーし、出力することが可能である。
【0007】しかし、デバッグポートには8ビットデー
タバスインタフェースの制限がある。8ビットポートは
開発ツールと装置の入力/出力要求とを折衷している。
この制限のため、リアルタイムプログラム開発の間、各
命令サイクルで変化する24ビットプログラムカウンタ
のすべての状態を、そのほんの3分の1の8ビットのポ
ートを通してモニタすることは全く不可能である。
【0008】本発明はアプリケーションプログラムの連
続性を利用することにより、この問題を解決する。プロ
グラムアドレスカウンタのカウントに不連続性が生じる
のは、ごく限られた状況(すなわち、分岐、ジャンプ、
サブルーチンコール、サブルーチンからのリターン、例
外、例外からのリターン、トラップ、トラップからのリ
ターンおよびループ先端へのループバック)においての
みなので、デバッグポートはこの事実を利用し、何か不
連続性が生じた場合のみ、プログラムフローデータをと
らえる。その結果、出力データは大幅に減少する。
【0009】さらに、すべての単純分岐(すなわち分岐
アドレスが1つしかないもの)は、分岐決定ワード
“1”または“0”でコード化されている。というの
も、分岐および必ずそれに続く遅延スロット命令の後に
実行される次の命令は、特定の目的アドレスでの命令ま
たは遅延スロット命令に続く命令のいずれかであるから
である。アプリケーションと伸張プログラムの同期性を
維持するため、24ビットプログラムアドレスは、分岐
決定ワードの出力の際にはいつも出力される。
【0010】デバッグポートは上記の8ビットバスに圧
縮プログラムフローと他のデータとを出す。このバスは
インタフェースモジュールに延び、そのモジュールは
“バースト的な”高速データを低速にバッファする。低
速データは、小型コンピュータシステムインタフェース
(SCSI)のバスを通って、プログラマまたは装置の
デバッガのワークステーションに送られるのに適するも
のになる。
【0011】プログラムフローアドレスの不連続性が、
デバッグポートのプログラムフローユニットにより、い
かに処理されるかを理解するために、不連続性のすべて
の原因が以下の3つの表に示されている。
【0012】
【表1】
【0013】
【表2】
【0014】
【表3】
【0015】まず、3つの表に示されたタイトルに注目
し、それから表1の左端欄について考える。表1のグル
ープAの各命令は常にプログラムアドレスにおいて実行
される分岐、ジャンプ、コールまたはトラップといった
命令に特定される目的アドレスへの不連続性を引起こ
す。不連続性は常に生じ、目的アドレスは分岐命令の一
部で、ユーザのためにプログラムフローデータを伸張す
るプログラムでも既知であるので、これらのどの命令が
実行されても、どんなプログラムフローデータも捕獲不
能である。
【0016】さて、グループBの自動ループバック機能
について考える。n−パスのループにおいて命令が実行
された場合、最初のn−1パスでは、ループにおける最
終命令、すなわちループ先端へのバックという命令の後
に、常に不連続性が生じる。n番目のパスでは、次に実
行される命令は常にループにおける最終命令の次に連続
する命令となる。たとえ、ループにおける最終命令の次
に実行される命令が予知可能でも、デバッグポートの設
計者たちは、ループ先端へのループの際にプログラムア
ドレスをとらえるのではなく、ループ先端において次に
連続する命令が取出される際に、n番目のパスの間にプ
ログラムアドレスをとらえる方を選択してきた。(表3
参照。エントリ−ループ終了でフォールスルー。)次
に、グループCのループ開始命令について考える。ルー
プ開始命令はループの先端および長さ、ならびにドロッ
プする前のパスの数を規定するために用いられる。ルー
プ開始命令は、命令実行後直ちに不連続性を発生させる
ことは決してない(不連続性はループにおける最終命令
実行の後に、ボトムで発生する)ので、この命令が実行
されるときには、プログラムフローデータの捕獲は起こ
らない。
【0017】停止命令は、RSP装置の起動の必要がな
いときに電力を節約するために装置に含まれている。停
止命令は、プログラムアドレスにおけるジャンプの原因
とはならないが、プログラムカウンタの進行の停止と、
装置の動作の停止とをもたらす。停止命令の実行のた
め、プログラムフローデータは捕獲されない。
【0018】表2における命令はすべて条件付命令であ
る。これらのどの命令の実行も、ある条件が満たされれ
ば(特定の目的アドレスへの)不連続性を起こす。もし
くは、ある条件が満たされなければ次に続く命令の実行
を引起こす。これらの命令に対し、デバッグポートは、
もし不連続性が生じれば“1”で、不連続性が生じなけ
れば“0”で分岐決定ワードをコーディングする。
【0019】表3の左端欄(グループA)は、装置のす
べての間接命令を示している。これらのどの命令が実行
されても、算出アドレスは特定レジスタから読取られ、
遅延スロット命令の後に実行された命令を取出すために
用いられる。目的アドレスは計算されるものであり、多
くの場合予知不能なので、プログラムフローユニットは
常に目的アドレスがプログラムアドレスバスに出される
と、これらの命令に備えてその目的アドレスをとらえる
のである。
【0020】表3のグループBに示された正常および迅
速例外は、サービスを要求しているI/Oユニットより
発信された信号と、エラー発生の信号を送る演算コアユ
ニットからの信号とによって生じる。
【0021】RSP装置は、I/Oユニットからの例外
信号に応答するとき、現行のタスクでの処理を停止し、
関連のない例外ルーチンへ、タスクの終了に戻る前に、
入力レジスタからなんとかデータを読取るかまたは出力
レジスタにデータの書込をする目的でジャンプする。信
号処理アプリケーションにおいては、入力/出力タスク
は、データのロスを防ぐため、通常は周期的に行なわれ
なければならない。
【0022】RSP装置は演算コアからの例外信号に応
答するときもまた、処理を停止し、例外ルーチンへジャ
ンプする。しかし、例外ルーチンは、エラーの修正また
はオペレータへのエラー発生の通報のコールの原因とな
る条件に関連するタスクを行なうために使用されること
が多い。
【0023】例外ルーチンは遂行中の現行のタスクに関
連する場合としない場合があるため、プログラマにとっ
ては、もし、ある状況下(たとえば、演算エラーが正し
く修正されたかどうか決定するようなとき)で例外不連
続性の捕獲を可能化し、他の状況(たとえば、多くのI
/O例外が発生するようなとき)ではその捕獲を不能化
できるのであれば、プログラムフローデータはそう混乱
したものにはならないだろう。
【0024】表3の2番目の欄のNEXCEとQEXC
Eはそれぞれ正常および迅速の例外に対するプログラム
の不連続性捕獲のイネーブルである。QEXCEは迅速
例外ルーチンへの出入りの際のプログラムの不連続性の
捕獲を可能化/不能化にするのに対し、NEXCEは正
常な例外ルーチンに入る際のみその捕獲を可能化/不能
化することに注意されたい。RSP装置においては、1
つの命令は、トラップおよび正常例外からのリターンを
コマンドするために用いられる。そのため、デバッグポ
ートの設計者たちは、常に正常の例外ルーチンを出ると
きに生じる不連続性を報告することにしてきたが、これ
は、1つはトラップからのリターン、2番目は正常例外
からのリターンといった別々の命令を受けるのを避ける
ためである。
【0025】上記表1に関して、“ループの先端への自
動ループバック”の機能についての説明で、ループ先端
へのループバックが発生した場合に起こるプログラムア
ドレスの不連続性は報告されないと述べたが、ループの
処理が完了したときにはループの先端において、プログ
ラムアドレスは報告される。
【0026】表3のグループDに含まれるウエイトおよ
びブレークの命令のいずれも、その実行の際、プログラ
ムアドレスを変更させないが、プログラムカウンタを停
止させる。ウエイト命令は、電力を節約するという点に
おいて、停止命令と似ている。ウエイト命令は演算コア
のクロックを停止させる(位相1をオンしたまま)が、
I/Oユニットのクロックはそのまま動き続ける。デバ
ッグポートはウエイト命令の実行の際にプログラムアド
レスをとらえる。
【0027】プログラムのデバッギングの間、プログラ
ムのその時点での数多くのレジスタ/メモリの位置の値
/状態を決定するために、レジスタ/メモリ位置を調べ
ることができるように、ブレーク命令は命令の実行を停
止させるのに用いられる。デバッグポートはまた、ブレ
ーク命令の実行の際にプログラムアドレスをとらえる。
【0028】デバッグポートのプログラムフローユニッ
トは6つの必須レジスタを含む。それらは、24ビット
プログラムアドレス獲得レジスタ(PAC)、32ビッ
ト分岐決定シフトレジスタ(BDR)、8ビット状態レ
ジスタ(STR)、24ビットプログラムアドレスバッ
ファ(PAB)、32ビット分岐決定バッファ(BD
B)および8ビット状態バッファ(STB)である。
【0029】PAB、BDBおよびSTBはバッファレ
ジスタである。これらは各々、デバッグポートのFIF
O出力への転送のため、データがデバッグポートの出力
バスに多重化されることができるようになるまで、PA
C、BDRおよびSTRからコピーされたデータを保持
する。
【0030】PABは常に、PACレジスタが装置のプ
ログラムアドレス(PA)バス上のアドレスをとらえる
前に、PACレジスタの現在の内容をコピーする。PA
Cレジスタは、以下のいずれかの状態が発生した場合、
プログラムアドレスをとらえる。
【0031】1.予知不能な態様で、プログラムフロー
を変更するような命令が実行されるかまたは、そのよう
な条件が発生する場合。
【0032】2.分岐決定シフトレジスタ(BDR)が
満杯になる場合。 3.入力メッセージが、プログラムアドレスの捕獲を指
定する場合。
【0033】PABとPACとに対するコピー/捕獲制
御論理は隣接する論理より7つの入力を受ける。7つの
うちの5つの入力は、RSP装置の命令デコードユニッ
トからのものである。これらの入力は下記の表4に示さ
れている。
【0034】
【表4】
【0035】表4はどの命令または条件が5つの信号そ
れぞれのアサートを引起こすかを示している。これらの
命令/条件は表3にも示されており、予知不能な態様
で、プログラムフローの変更を起こすものである。
【0036】PAB/PAC制御論理へ入力される、あ
との2つの信号は後に図2および3で示される。
【0037】1つの代わりに5つの信号がPAB/PA
Cコピー/獲得制御論理により入力されるが、これは、
いくつかはまたSTRレジスタにより状態信号として入
力されるからである。
【0038】STRレジスタは、プログラムアドレスが
捕獲された理由および最後の捕獲以降何かイベントが発
生したかどうかに関する情報を含む。表5はSTRレジ
スタ内のビットの意味を示しており、表6は表5のPF
Tビットの意味を拡張するものである。
【0039】
【表5】
【0040】
【表6】
【0041】BDRレジスタは、命令デコードユニット
からの2つの入力により制御される。sbr_inst
(単純分岐命令)という信号は、何か単純分岐命令が実
行された際にBDRを左シフトさせる。2番目の信号s
br_tkn(実行された単純分岐)は、BDRの最下
位ビットによりコピーされ、分岐した場合は“1”、分
岐しない場合は“0”である。
【0042】BDRレジスタは、装置の電源投入リセッ
トにより初期化され、31−1ビットはすべて“0”
に、および0ビットは“1”となる。BDRレジスタ
は、BDBに内容がコピーされるときは常に同じ状態に
再び初期化される。BDRは、0ビットに初期化された
唯一の“1”が31ビットによりシフトされた場合に、
満杯になる。
【0043】プログラムフローの捕獲発生毎に、以下の
状態が発生する。 1.PACの以前の内容がPABにコピーされる。
【0044】2.BDRの内容がBDBにコピーされ
る。 3.STRの内容がSTBにコピーされる。
【0045】4.BDRが再び初期化される。 5.STR内のRC(参照カウンタ)ビットが増加す
る。
【0046】6.捕獲されたデータのFIFO出力への
移動のため、デバッグポートの出力バス上の時間スロッ
トを要求するのに、bd16.srまたはbd32.s
rというサービス要求のいずれかが設定される。
【0047】bd16.srとbd32.srとの2つ
のサービス要求出力は、分岐決定ビットが以前にBDR
の最上位16ビットにシフトされたかどうかを、デバッ
グポートの出力バスアービタに示すために用いられる。
もしBDRの上半分にシフトされたビットがなければ、
BDBの最下位16ビットのみがFIFO出力にコピー
される。
【0048】プログラムフローデータは、FIFO出力
に書込まれた後、まずインタフェースモジュールへ、次
にホストワークステーションのハードディスクへ送られ
る。ワークステーションは、ハードディスクからのデー
タの伸張を行ない、プログラム原始コードとともに、結
果として生じたプログラムフローアドレスを表示する。
【0049】この記述のビット数は例示のためのみに使
われている。他のレジスタの幅や、バスの幅などは、異
なった構成を扱うときには、簡単に設計することができ
る。
【0050】
【好ましい実施例の説明】図1において、RSP装置は
(11)に示されており、内部のデバッグポートは(1
3)に示されている。
【0051】ハードウェアの制限のため、RSP装置の
内部プログラムアドレスバス上に発生するすべてのプロ
グラムアドレスをとらえ、出力することは不可能であ
る。したがって、デバッグポートの主要な機能の1つ
は、必須量のプログラムフローデータのみを、プログラ
マのホストワークステーションに伝送するために、コー
ド化し、捕獲することである。
【0052】図1では、プログラムフローデータは、デ
バッグバス(14)、インタフェースモジュール(1
5)およびSCSI(小型コンピュータシステムインタ
フェース)(16)を経由してプログラマのワークステ
ーション(17)に送られる。ワークステーションは、
プログラムフローデータの処理の後、プログラムが正し
く機能しているかどうかをプログラマが決定できるよう
に、各プログラムアドレスおよびそのアドレスに相当す
るプログラマの原始コードを(19)に表示しようとす
る。
【0053】プログラムは次々にいくつかの複合分岐命
令を有することがあり得るので、ワークステーションが
プログラムを完全に再構成するために、デバッグポート
のプログラムフローユニットがすべての必要なデータを
とらえることは不可能である。この状態が発生すると、
プログラムフローユニットは、出力状態バイト内に重ね
書きビットを示す。再構成プログラムが重ね書きビット
を察知すると、表示されたデータ内に不連続性を示す。
【0054】図2はプログラムフローデータのコード化
や捕獲の際に用いられる、デバッグポートと他のRSP
装置のユニットとの間の意味のあるインタフェースを示
す。命令取出ユニット(20)は、次に実行される命令
のアドレスを発する。このアドレスは、プログラムアド
レスバス(23)に出され、次の命令を取出すために命
令メモリ(21)により使用される。命令メモリはプロ
グラムデータバス(24)に命令を出力する。命令デコ
ード(22)は、命令をデコードし、ここには示されて
いない他のユニットにおけるその命令の実行を制御す
る。命令デコードはまた、デバッグポートのための命令
をデコードし、それらの命令がプログラムデータバスに
あるとき、ユニット間の適切なラインをアサートする。
L−バス(25)はデバッグポートとRSPコアとの間
のコマンドおよびデータの転送のために使用される。
【0055】図3は、プログラムフロー機能に含まれ
る、デバッグポート内の3つのユニットを示す。
【0056】3つのユニットのうち、コマンドユニット
(31)は最も関連性が薄い。コマンドユニットは2つ
の機能を果たす。1つは、en_pfu(イネーブルプ
ログラムフローユニット)ライン経由の、プログラムフ
ローユニットの可能化/不能化である。コマンドユニッ
トは、デバッグポート入力バス(40)、入力シンクロ
ナイザ(33)およびデバッグバス(14)を介してプ
ログラマから、またはL−バス(25)上のRSPコア
(命令の実行の結果として)から、可能化および不能化
PFUコマンドを受取る。
【0057】コマンドユニットはまた、cap_paラ
インを介して、いつでもプログラムアドレスの捕獲のた
めに、プログラムフローユニットをコマンドすることが
できる。コマンドユニットは、可能化および不能化PF
U命令と同じ経路で、プログラマまたはL−バスから入
力されたプログラムアドレス捕獲コマンドをデコードす
る。
【0058】通信ユニット(32)は、コマンドとデー
タをデバッグポートに入力するためおよびプログラムフ
ローその他のデータの出力のために用いられる。デバッ
グバスは双方向性があるので、FIFO出力(35)
は、図1のインタフェースモジュール(15)の受取準
備ができるまで出力データを蓄積するために含まれてい
る。
【0059】いくつかのデータソースが、データをデバ
ッグポート出力バス(41)に同時にコピーしようとす
ることがあるので、通信ユニットはまた出力バスアービ
タ(34)を含む。その目的は、アサートされたすべて
のサービス要求を見て、バスへの各アクセスを、1度に
1つずつ許可することである。バスへのデータのコピー
の許可は、データセレクタバス(42)に書込された5
ビットのコードを介して与えられる。
【0060】図4は、プログラムフローユニットそのも
のを示している。BDR(分岐決定シフトレジスタ)
(50)は、32ビットのシフトレジスタであり、sb
r_instrの入力がアサートされる毎に左にシフト
する。シフトの際、sbr_tknの入力状態をコピー
する。このようにして、単純分岐命令(すなわち、表2
の命令)が実行されるとき、分岐した場合は“1”で、
分岐しない場合は“0”でレジスタにコード化される。
【0061】あまりに多くの分岐決定がコード化される
と、データが失われることがあるので、BDRが満杯で
あるときを検出する手段が提供される。BDRは、左端
の31ビットは“0”で、右端ビットは“1”で初期化
される。左端(60)での出力bdr_fullで初期
の“1”が検出されたとき、制御論理(56)は、31
のシフトが行なわれたことを知り、またその内容はBD
B(分岐決定バッファ)(51)にコピーされねばなら
ない。BDRの最上位ビットは、分岐決定の蓄積のため
には決して使われないが、この方法を用いることによ
り、遂行されるシフトの数をトラックし続けるのにカウ
ンタを使用しなくてもよい。さらに、BDRの内容はい
つでもBDBにコピー可能なので、出力データの初期の
“1”の位置の検出により、何個の分岐決定が含まれて
いるかが示される。
【0062】BDRの内容はいつでもBDBにコピー可
能なので、タップbdr_half_full(61)
は、15またはそれ以下の分岐決定がコード化されたの
かどうかを示すために提供される。この場合、BDRの
最下位16ビットのみがワークステーションに送られ
る。16ビットの分岐決定データを含むメッセージは、
図3のヘッダジェネレータ(36)がメッセージの前に
置いたヘッダにより、32ビットの分岐決定データのメ
ッセージと区別される。プログラムフローユニットは、
通信ユニット(32)にデータの長さの信号を送るが、
これは、BDB、PABおよびSTBバッファがホスト
ワークステーションのためのデータを含んでいるとき
に、bd16_sr(43)またはbd32_sr(4
4)というサービス要求をアサートすることにより行な
われる。
【0063】PAC(プログラムアドレス捕獲)レジス
タ(52)は、プログラム内で予知不能の不連続性が発
生したとき(すなわち、表3に示された命令または条件
のどれかが発生したときはいつも)プログラムアドレス
バス(45)からプログラムアドレスをコピーするため
に用いられる。
【0064】命令デコードユニットからの5つの入力
(26)は、予知不能の不連続性の発生を知らせるため
に用いられる。これらの入力のいずれかがアサートされ
た場合、制御論理は、まずPACの現在の内容のPAB
へのコピー、次にBDRの現在の内容のBDBへのコピ
ー、そしてSTRの現在の内容のSTBへのコピー、さ
らにはPACによるプログラムアドレスバスのコピーを
引起こす。つぎに、制御論理は、データがデバッグポー
ト/出力バスに出力される用意があることを知らせるた
めに、bd16_srまたはbd32_srをアサート
する。
【0065】PAB、BDBおよびSTBデータは、い
ずれか2つのコードがデータセレクタバスで検出された
場合、出力データシーケンサ(57)の制御のもとでデ
バッグポート出力バスにコピーされる。1番目のコード
により、シーケンサはPAB、STBおよびBDBの両
半分を出力バスにコピーし、2番目のコードにより、P
AB、STBおよびBDBの下半分のみが出力バスにコ
ピーされる。
【0066】BDRレジスタが満杯になったかまたは予
知不能の不連続性が発生したかいずれかの理由で、デー
タはプログラムフローユニットより出力されるので、S
TR(55)からの8ビットの状態バイトは、このメッ
セージが出力された理由を示すために、常にBDBおよ
びPACデータとともに出力される。
【0067】STRレジスタビット(表5および表6に
明示)はまた重ね書きビットと、2ビットカウントとを
含む。重ね書きビットは、データがデバッグポートにコ
ピーされる前にPABバッファが重ね書きされたかどう
かを示し、2ビットカウントはPACレジスタがプログ
ラムアドレスをコピーする毎に増加する。そのカウント
は重ね書きが何度発生したかを示している。
【0068】特定の実施例については、いくぶん詳細に
わたって述べられてきたが、この発明の真の精神と範囲
については、そこには限定されておらず、前掲の特許請
求の範囲にのみ限定される。
【図面の簡単な説明】
【図1】インタフェースモジュールと、2つの接続バス
とによりホストワークステーションに接続する、RSP
装置に組込まれたデバッグポートのブロック図である。
【図2】デバッグポート、命令取出、命令メモリおよび
命令デコードユニットが意味のある接続で繋がっている
RSP装置の図である。
【図3】外部ユニットから意味のある入力を受け、内部
の通信、コマンドおよびプログラムフローユニットが意
味のある接続で繋がっている、デバッグポートの図であ
る。
【図4】内部の6つのレジスタ、制御論理、出力データ
マルチプレクサおよび出力データシーケンサが、意味の
ある接続で繋がっている、デバッグポートのプログラム
フローユニットの図である。
【符号の説明】
11 RSP装置 13 デバッグポート 15 インタフェースモジュール
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リック・ウェイラン・クラーク アメリカ合衆国、92714 カリフォルニ ア州、アーバイン、ディアウッド・イー スト、18 (72)発明者 ドナルド・ディーン・ハレンバーグ アメリカ合衆国、92670 カリフォルニ ア州、プラセンティア、リメリック・ド ライブ、1131 (56)参考文献 特開 昭63−91750(JP,A) 特開 平2−64828(JP,A) 特開 昭59−205652(JP,A) 実開 昭57−144148(JP,U) 実開 平1−135552(JP,U) (58)調査した分野(Int.Cl.6,DB名) G06F 11/28 - 11/34

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】 集積回路上で具体化されたプログラマブ
    ルプロセッサにおけるプログラムアドレスデータを圧縮
    する方法であって、前記集積回路がデバッグ中またはプ
    ログラムが前記集積回路上でデバッグ中であって、前記
    方法は、 前記プログラマブルプロセッサ上で既知のプログラムを
    実行するステップと、 ビットフォームデータで、前記プログラム内で発生する
    単純分岐および発生しない単純分岐をコード化するステ
    ップと、 デバッグ中の前記プロセッサ内のストレージ位置から、
    ビットフォームデータで予め予測することができないプ
    ログラムの絶対アドレスをコピーするステップと、 任意のプログラムで予め定められた命令を無視するステ
    ップと、 デバッグ中のプログラマブルプロセッサから離れた位置
    のワークステーションに前記ビットフォームデータを記
    録するステップとを含む、方法。
  2. 【請求項2】 前記コード化は、分岐されたか否かを示
    す特有の2進ビットをレジスタに供給することにより達
    成される、請求項1に記載の方法。
  3. 【請求項3】 ワークステーションで、圧縮プログラム
    アドレスデータとして記録するため、前記ビットを蓄積
    するステップをさらに含む、請求項2に記載の方法。
  4. 【請求項4】 プログラムアドレスデータの捕獲のため
    に、信号が受取られるたびに、さらなるレジスタに絶対
    新規アドレスを蓄積するステップをさらに含む、請求項
    3に記載の方法。
  5. 【請求項5】 集積回路上で具体化されたプログラマブ
    ルプロセッサにおけるプログラムアドレスデータを圧縮
    する方法であって、前記集積回路がデバッグ中またはプ
    ログラムが前記集積回路上でデバッグ中であって、プロ
    グラムエラーの修正を促進するために用いられ、前記方
    法は、 プログラマブルプロセッサ上で既知のプログラムを実行
    するステップと、 デバッグ中の前記プログラマブルプロセッサから離れた
    ワークステーションでプログラムによって行なわれる任
    意の分岐を記録するステップと、 予め定められていない方法でプログラムがジャンプした
    とき、デバッグ中の前記プログラマブルプロセッサおよ
    びデバッグ中のプロセッサ内のストレージ位置から離れ
    たワークステーションで新しいアドレスを記録するステ
    ップと、 前記ワークステーションで、デバッグ中の前記プログラ
    マブルプロセッサ上のプログラムの操作をモニタするた
    めに前記記録された情報を使用するステップとを含む、
    プログラムアドレスを圧縮する方法。
  6. 【請求項6】 プログラムまたはプログラムを実行する
    プログラマブルプロセッサのデバッグを促進する装置で
    あって、 プログラム中で実行または実行されない任意の分岐をコ
    ード化する手段と、 プログラムがビットフォームで、予め定められていない
    方法でジャンプしたとき、プログラマブルプロセッサか
    ら離れたワークステーションにプロセッサ内のストレー
    ジ位置からプログラムの絶対アドレスを記録する手段と
    を含む、装置。
  7. 【請求項7】 あるアドレス捕獲のための信号発生の際
    に、ビットフォームのデータとして新規アドレスを受取
    るために接続された、プログラムカウンタ参照レジスタ
    をさらに含む、請求項6に記載の装置。
  8. 【請求項8】 前記ビットフォームのデータを、記録の
    ために蓄積する手段をさらに含む、請求項7に記載の装
    置。
  9. 【請求項9】 圧縮されたアドレスデータに含めるた
    め、アドレス捕獲のための命令が検出された際に、絶対
    新規アドレスを蓄積するためのレジスタ手段をさらに含
    む、請求項8に記載の装置。
  10. 【請求項10】 集積回路上で実現されるプログラム可
    能なプロセッサのプログラムアドレスおよび命令データ
    圧縮装置であって、前記集積回路はデバッグ中であるか
    または前記プログラムの操作が前記集積回路上でデバッ
    グ中であり、前記プログラムのエラーの修正を促進する
    ために用いられる装置であって、 前記プログラムによって行なわれる任意の分岐を、デバ
    ッグ中の前記プログラマブルプロセッサから離れたワー
    クステーションで記録する手段と、 予め定められていない方法で前記プログラムがジャンプ
    したとき、デバッグ中の前記プログラマブルプロセッサ
    およびデバッグ中のプロセッサ内のストレージ位置から
    離れたワークステーションで新しいアドレスを記録する
    手段と、 離れたワークステーションでデバッグ中のプログラマブ
    ルプロセッサでの前記プログラムの操作をモニタするた
    めに、前記記録された情報を使用する手段とを含むプロ
    グラムアドレスおよび命令データを圧縮する装置。
JP6286417A 1993-11-23 1994-11-21 プログラムアドレスデータを圧縮する方法および装置ならびにプログラムのデバッギング処理を速める装置 Expired - Fee Related JP2824828B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US155891 1993-11-23
US08/155,891 US5473754A (en) 1993-11-23 1993-11-23 Branch decision encoding scheme

Publications (2)

Publication Number Publication Date
JPH07200348A JPH07200348A (ja) 1995-08-04
JP2824828B2 true JP2824828B2 (ja) 1998-11-18

Family

ID=22557192

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6286417A Expired - Fee Related JP2824828B2 (ja) 1993-11-23 1994-11-21 プログラムアドレスデータを圧縮する方法および装置ならびにプログラムのデバッギング処理を速める装置

Country Status (4)

Country Link
US (1) US5473754A (ja)
EP (1) EP0655684B1 (ja)
JP (1) JP2824828B2 (ja)
DE (1) DE69414985T2 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5544311A (en) * 1995-09-11 1996-08-06 Rockwell International Corporation On-chip debug port
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
US5797019A (en) * 1995-10-02 1998-08-18 International Business Machines Corporation Method and system for performance monitoring time lengths of disabled interrupts 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
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
US5752062A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring through monitoring an order of processor events during execution 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
US5862161A (en) * 1996-08-28 1999-01-19 Cirrus Logic, Inc. Sampled amplitude read channel with simplified sequence detector matched to partial erasure
US5887003A (en) * 1996-09-10 1999-03-23 Hewlett-Packard Company Apparatus and method for comparing a group of binary fields with an expected pattern to generate match results
US5867644A (en) * 1996-09-10 1999-02-02 Hewlett Packard Company System and method for on-chip debug support and performance monitoring in a microprocessor
US5881224A (en) * 1996-09-10 1999-03-09 Hewlett-Packard Company Apparatus and method for tracking events in a microprocessor that can retire more than one instruction during a clock cycle
US6003107A (en) * 1996-09-10 1999-12-14 Hewlett-Packard Company Circuitry for providing external access to signals that are internal to an integrated circuit chip package
US5790843A (en) * 1996-09-19 1998-08-04 International Business Machines Corporation System for modifying microprocessor operations independently of the execution unit upon detection of preselected opcodes
US5880671A (en) * 1996-10-31 1999-03-09 Hewlett-Packard Company Flexible circuitry and method for detecting signal patterns on a bus
US5956476A (en) * 1996-10-31 1999-09-21 Hewlett Packard Company Circuitry and method for detecting signal patterns on a bus using dynamically changing expected patterns
US5951696A (en) * 1996-11-14 1999-09-14 Hewlett-Packard Company Debug system with hardware breakpoint trap
US5838692A (en) * 1996-11-14 1998-11-17 Hewlett-Packard Company System and method for extracting realtime debug signals from an integrated circuit
US5812830A (en) * 1996-11-14 1998-09-22 Hewlett-Packard Company Debug system with raw mode trigger capability
US5751735A (en) * 1996-11-14 1998-05-12 Hewlett-Packard Company Integrated debug trigger method and apparatus for an integrated circuit
US5771240A (en) * 1996-11-14 1998-06-23 Hewlett-Packard Company Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin
US5956477A (en) * 1996-11-25 1999-09-21 Hewlett-Packard Company Method for processing information in a microprocessor to facilitate debug and performance monitoring
US6009539A (en) * 1996-11-27 1999-12-28 Hewlett-Packard Company Cross-triggering CPUs for enhanced test operations in a multi-CPU computer system
US5881217A (en) * 1996-11-27 1999-03-09 Hewlett-Packard Company Input comparison circuitry and method for a programmable state machine
US5892941A (en) 1997-04-29 1999-04-06 Microsoft Corporation Multiple user software debugging system
US6321331B1 (en) * 1998-04-22 2001-11-20 Transwitch Corporation Real time debugger interface for embedded systems
EP0992907B1 (en) * 1998-10-06 2005-09-28 Texas Instruments Inc. Trace fifo management
US6374370B1 (en) 1998-10-30 2002-04-16 Hewlett-Packard Company Method and system for flexible control of BIST registers based upon on-chip events
JP2000306399A (ja) * 1999-04-22 2000-11-02 Mitsubishi Electric Corp 半導体装置
US6771250B1 (en) * 1999-07-27 2004-08-03 Samsung Electronics Co., Ltd. Portable computer system having application program launcher for low power consumption and method of operating the same
WO2001093040A1 (fr) * 2000-05-30 2001-12-06 Matsushita Electric Industrial Co., Ltd. Systeme et procede d'analyse de compteur de programme, et dispositif a semi-conducteur
US6985980B1 (en) * 2000-11-03 2006-01-10 Xilinx, Inc. Diagnostic scheme for programmable logic in a system on a chip
US7287147B1 (en) 2000-12-29 2007-10-23 Mips Technologies, Inc. Configurable co-processor interface
US7237090B1 (en) 2000-12-29 2007-06-26 Mips Technologies, Inc. Configurable out-of-order data transfer in a coprocessor interface
US7134116B1 (en) 2001-04-30 2006-11-07 Mips Technologies, Inc. External trace synchronization via periodic sampling
US7069544B1 (en) 2001-04-30 2006-06-27 Mips Technologies, Inc. Dynamic selection of a compression algorithm for trace data
US7185234B1 (en) 2001-04-30 2007-02-27 Mips Technologies, Inc. Trace control from hardware and software
US7178133B1 (en) 2001-04-30 2007-02-13 Mips Technologies, Inc. Trace control based on a characteristic of a processor's operating state
US7124072B1 (en) 2001-04-30 2006-10-17 Mips Technologies, Inc. Program counter and data tracing from a multi-issue processor
US7181728B1 (en) 2001-04-30 2007-02-20 Mips Technologies, Inc. User controlled trace records
US7065675B1 (en) 2001-05-08 2006-06-20 Mips Technologies, Inc. System and method for speeding up EJTAG block data transfers
US7043668B1 (en) 2001-06-29 2006-05-09 Mips Technologies, Inc. Optimized external trace formats
US7231551B1 (en) 2001-06-29 2007-06-12 Mips Technologies, Inc. Distributed tap controller
CA2704294C (en) * 2001-07-26 2012-11-20 Irise System and process for automatically configuring a behavior for an instruction for a requirements validation computer program
US7184763B2 (en) * 2002-01-22 2007-02-27 Honeywell International, Inc. VHF ground station selection algorithm
US7159101B1 (en) 2003-05-28 2007-01-02 Mips Technologies, Inc. System and method to trace high performance multi-issue processors
US7644322B2 (en) * 2006-11-21 2010-01-05 Atmel Corporation Hardware flow control monitor
JP2009059005A (ja) * 2007-08-29 2009-03-19 Panasonic Corp デバッグシステム、デバッグ装置および方法
GB2459652B (en) 2008-04-28 2010-09-22 Imagination Tech Ltd Controlling instruction scheduling based on the space in a trace buffer
US8489866B2 (en) * 2010-06-30 2013-07-16 International Business Machines Corporation Branch trace history compression

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3673573A (en) * 1970-09-11 1972-06-27 Rca Corp Computer with program tracing facility
US4205370A (en) * 1975-04-16 1980-05-27 Honeywell Information Systems Inc. Trace method and apparatus for use in a data processing system
JPS57144148U (ja) * 1981-03-02 1982-09-10
US4453093A (en) * 1982-04-02 1984-06-05 Honeywell Information Systems Inc. Multiple comparison circuitry for providing a software error trace signal
JPS59161746A (ja) * 1983-03-04 1984-09-12 Omron Tateisi Electronics Co プログラムアナライザ
JPS59191661A (ja) * 1983-04-15 1984-10-30 Omron Tateisi Electronics Co デバツグ装置
JPS59205652A (ja) * 1983-05-06 1984-11-21 Fuji Electric Co Ltd プログラムトレ−ス・システム
US4598364A (en) * 1983-06-29 1986-07-01 International Business Machines Corporation Efficient trace method adaptable to multiprocessors
JPS61131136A (ja) * 1984-11-30 1986-06-18 Fujitsu Ltd 履歴蓄積方式
US4821178A (en) * 1986-08-15 1989-04-11 International Business Machines Corporation Internal performance monitoring by event sampling
JPS6391750A (ja) * 1986-10-06 1988-04-22 Matsushita Electric Ind Co Ltd ブランチアドレストレ−ス装置
JPS63129432A (ja) * 1986-11-19 1988-06-01 Nec Corp プログラム・アドレス・トレ−ス装置
DE3740762A1 (de) * 1987-01-22 1988-08-04 Nat Semiconductor Corp Datenverarbeitungssystem mit einer externen schnittstelle
JPH01297747A (ja) * 1988-05-26 1989-11-30 Nec Ibaraki Ltd バストレーサ
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
JPH0264828A (ja) * 1988-08-31 1990-03-05 Nec Corp アドレストレース回路
JPH02148339A (ja) * 1988-11-30 1990-06-07 Nec Corp トレーサ制御回路
JPH0365737A (ja) * 1989-08-03 1991-03-20 Nec Corp 周辺制御装置
JPH03266140A (ja) * 1990-03-16 1991-11-27 Nec Corp プログラムデバッグ方式
JPH0442330A (ja) * 1990-06-08 1992-02-12 Nec Corp 分岐ヒストリテーブルを用いたデバッグ方式
JPH04130932A (ja) * 1990-09-21 1992-05-01 Nec Corp アドレストレースメモリ
JPH04140851A (ja) * 1990-10-02 1992-05-14 Nec Corp 情報処理装置の診断方式
JPH04140852A (ja) * 1990-10-02 1992-05-14 Nec Corp 情報処理装置の診断方式
JPH04167146A (ja) * 1990-10-31 1992-06-15 Nec Corp 情報処理装置のアドレストレース方式
US5301325A (en) * 1991-03-07 1994-04-05 Digital Equipment Corporation Use of stack depth to identify architechture and calling standard dependencies in machine code
JPH0581085A (ja) * 1991-04-19 1993-04-02 Internatl Business Mach Corp <Ibm> トレースデータ捕捉・蓄積方法及び装置
JPH0512061A (ja) * 1991-07-08 1993-01-22 Nec Eng Ltd アドレストレース記憶装置
JPH0561720A (ja) * 1991-09-04 1993-03-12 Fujitsu Ltd トレースデータ収集装置
JPH05100903A (ja) * 1991-10-07 1993-04-23 Nec Ibaraki Ltd アドレストレーサ
JPH05100900A (ja) * 1991-10-09 1993-04-23 Nec Corp 情報処理装置
JPH05120080A (ja) * 1991-10-30 1993-05-18 Nec Ibaraki Ltd フアームウエア実行履歴記憶方式
JPH05224990A (ja) * 1992-02-13 1993-09-03 Nec Corp マイクロプログラムトレーサ
JPH05241892A (ja) * 1992-02-27 1993-09-21 Nec Corp リアルタイムトレーサ
JPH05289908A (ja) * 1992-04-06 1993-11-05 Nec Corp プログラムトレーサ
EP0569987A1 (en) * 1992-05-13 1993-11-18 Nec Corporation Microprocessor incorporating cache memory enabling efficient debugging
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

Also Published As

Publication number Publication date
DE69414985T2 (de) 1999-07-08
JPH07200348A (ja) 1995-08-04
DE69414985D1 (de) 1999-01-14
US5473754A (en) 1995-12-05
EP0655684A1 (en) 1995-05-31
EP0655684B1 (en) 1998-12-02

Similar Documents

Publication Publication Date Title
JP2824828B2 (ja) プログラムアドレスデータを圧縮する方法および装置ならびにプログラムのデバッギング処理を速める装置
KR100394897B1 (ko) 데이터처리장치및데이터처리장치제공방법
US5754759A (en) Testing and monitoring of programmed devices
US5724505A (en) Apparatus and method for real-time program monitoring via a serial interface
US6826747B1 (en) System and method for tracing program instructions before and after a trace triggering event within a processor
US6094729A (en) Debug interface including a compact trace record storage
US6243836B1 (en) Apparatus and method for circular buffering on an on-chip discontinuity trace
KR100387193B1 (ko) 트레이스함수와그에따른방법을실행하기위한데이타처리시스템
KR100350568B1 (ko) 디버그기능을수행하기위한데이타처리시스템및방법
US5978902A (en) Debug interface including operating system access of a serial/parallel debug port
JP3846939B2 (ja) データプロセッサ
US6681280B1 (en) Interrupt control apparatus and method separately holding respective operation information of a processor preceding a normal or a break interrupt
US5809293A (en) System and method for program execution tracing within an integrated processor
US6009270A (en) Trace synchronization in a processor
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
EP0528585B1 (en) Data processing system with internal instruction cache
US6148381A (en) Single-port trace buffer architecture with overflow reduction
US6175914B1 (en) Processor including a combined parallel debug and trace port and a serial port
EP0391173B1 (en) Debug peripheral for microcomputers, microprocessors and core processor integrated circuits and system using the same
EP0942372B1 (en) Processor with breakpoint circuit
US20030051122A1 (en) Trace information generation apparatus for generating branch trace information omitting at least part of branch source information and branch destination information on target processing
KR20010006188A (ko) 마이크로프로세서 기반 장치용 트레이스 캐시
JP4633474B2 (ja) 集積回路内の診断データ取り込み
US5572667A (en) Interrupt processing device for controlling the timing of an interrupt signal initiated by a debugging break point in an instruction code
US5129079A (en) Computer system having subinstruction surveillance capability

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19980721

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees