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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements 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装置の内部プログラムアドレスバスは、イン
タフェースでは利用できないためである。
タ処理装置内のプログラムの流れを確かめる手段に関す
るものである。これは、RSP装置と呼ばれる、単一チ
ップの縮小命令セットの信号処理装置の内部論理の中に
備えられた、デバッグポートの内部に組込まれている。
これは論理アナライザの代わりに使用されるが、その理
由はRSP装置の内部プログラムアドレスバスは、イン
タフェースでは利用できないためである。
【0002】従来、論理アナライザは、デジタルコンピ
ュータのハードウェアのトラブルシューティング時に使
用される主要手段であった。しかし、広い幅のデータと
アドレスバスとを持つ、高度にパイプライン処理された
単一チップの処理装置の出現によって、ハードウェアお
よびプログラムのトラブルシューティングのために、イ
ンタフェースにすべての必要なバスを設けることは非実
用的になってきた。さらにこの目的のために、リアルタ
イムプログラム環境でデバッグするとき、有益と考えら
れるすべてのデータを出力バスに多重化することは不可
能である。
ュータのハードウェアのトラブルシューティング時に使
用される主要手段であった。しかし、広い幅のデータと
アドレスバスとを持つ、高度にパイプライン処理された
単一チップの処理装置の出現によって、ハードウェアお
よびプログラムのトラブルシューティングのために、イ
ンタフェースにすべての必要なバスを設けることは非実
用的になってきた。さらにこの目的のために、リアルタ
イムプログラム環境でデバッグするとき、有益と考えら
れるすべてのデータを出力バスに多重化することは不可
能である。
【0003】これらの問題は、外部リードの数が限定さ
れ、あらゆる物理的限界に近い速度を使用し、さらに多
数かつ広いバスへのアクセスが必要となる、次世代の装
置の場合にも起こるであろう。
れ、あらゆる物理的限界に近い速度を使用し、さらに多
数かつ広いバスへのアクセスが必要となる、次世代の装
置の場合にも起こるであろう。
【0004】
【発明の概要】デバッグポートは、ハードウェアのデバ
ッギングおよびソフトウェア開発のためのツールとし
て、RSP装置の内部に組込まれている。デバッグポー
トは商用論理アナライザの多くの特徴を持つが、装置の
内部論理の中に含まれている。それは主として、装置の
超高速性能の特徴のために、ほとんどの動作が単一シリ
コンダイに含まれることが必要となるからである。この
ことは、装置の機能的動作の大部分が内部的であるゆ
え、外部開発ツールには利用できないことを意味する。
そのため、内部レジスタおよびメモリの中の主情報は、
装置のインタフェースピンでは利用不能であり、また、
リアルタイムプログラム環境では、簡単に多重化できな
い。
ッギングおよびソフトウェア開発のためのツールとし
て、RSP装置の内部に組込まれている。デバッグポー
トは商用論理アナライザの多くの特徴を持つが、装置の
内部論理の中に含まれている。それは主として、装置の
超高速性能の特徴のために、ほとんどの動作が単一シリ
コンダイに含まれることが必要となるからである。この
ことは、装置の機能的動作の大部分が内部的であるゆ
え、外部開発ツールには利用できないことを意味する。
そのため、内部レジスタおよびメモリの中の主情報は、
装置のインタフェースピンでは利用不能であり、また、
リアルタイムプログラム環境では、簡単に多重化できな
い。
【0005】しかしながら、デバッグポートは、すべて
の内部バスにほぼフルにアクセス可能で、プログラマや
装置の設計者が要求するプログラムフローデータを、他
の情報同様に送ることができる。デバッグポートは確か
にシリコン領域にペナルティを課すが、この領域は装置
全体の5パーセント以下であろう。
の内部バスにほぼフルにアクセス可能で、プログラマや
装置の設計者が要求するプログラムフローデータを、他
の情報同様に送ることができる。デバッグポートは確か
にシリコン領域にペナルティを課すが、この領域は装置
全体の5パーセント以下であろう。
【0006】この専用デバッグポートは、アドオン論理
アナライザが使用不能であることに関連する多くの問題
を解決する。デバッグポートは、RSP装置のリアルタ
イム処理を妨げずに、バス上のデータをとらえるための
トリガ捕獲条件の入力を許可し、またRSP装置の命令
ストリームへの命令の挿入も許可する。たとえば、内部
レジスタの内容とメモリ位置とをデバッグポートレジス
タにコピーし、出力することが可能である。
アナライザが使用不能であることに関連する多くの問題
を解決する。デバッグポートは、RSP装置のリアルタ
イム処理を妨げずに、バス上のデータをとらえるための
トリガ捕獲条件の入力を許可し、またRSP装置の命令
ストリームへの命令の挿入も許可する。たとえば、内部
レジスタの内容とメモリ位置とをデバッグポートレジス
タにコピーし、出力することが可能である。
【0007】しかし、デバッグポートには8ビットデー
タバスインタフェースの制限がある。8ビットポートは
開発ツールと装置の入力/出力要求とを折衷している。
この制限のため、リアルタイムプログラム開発の間、各
命令サイクルで変化する24ビットプログラムカウンタ
のすべての状態を、そのほんの3分の1の8ビットのポ
ートを通してモニタすることは全く不可能である。
タバスインタフェースの制限がある。8ビットポートは
開発ツールと装置の入力/出力要求とを折衷している。
この制限のため、リアルタイムプログラム開発の間、各
命令サイクルで変化する24ビットプログラムカウンタ
のすべての状態を、そのほんの3分の1の8ビットのポ
ートを通してモニタすることは全く不可能である。
【0008】本発明はアプリケーションプログラムの連
続性を利用することにより、この問題を解決する。プロ
グラムアドレスカウンタのカウントに不連続性が生じる
のは、ごく限られた状況(すなわち、分岐、ジャンプ、
サブルーチンコール、サブルーチンからのリターン、例
外、例外からのリターン、トラップ、トラップからのリ
ターンおよびループ先端へのループバック)においての
みなので、デバッグポートはこの事実を利用し、何か不
連続性が生じた場合のみ、プログラムフローデータをと
らえる。その結果、出力データは大幅に減少する。
続性を利用することにより、この問題を解決する。プロ
グラムアドレスカウンタのカウントに不連続性が生じる
のは、ごく限られた状況(すなわち、分岐、ジャンプ、
サブルーチンコール、サブルーチンからのリターン、例
外、例外からのリターン、トラップ、トラップからのリ
ターンおよびループ先端へのループバック)においての
みなので、デバッグポートはこの事実を利用し、何か不
連続性が生じた場合のみ、プログラムフローデータをと
らえる。その結果、出力データは大幅に減少する。
【0009】さらに、すべての単純分岐(すなわち分岐
アドレスが1つしかないもの)は、分岐決定ワード
“1”または“0”でコード化されている。というの
も、分岐および必ずそれに続く遅延スロット命令の後に
実行される次の命令は、特定の目的アドレスでの命令ま
たは遅延スロット命令に続く命令のいずれかであるから
である。アプリケーションと伸張プログラムの同期性を
維持するため、24ビットプログラムアドレスは、分岐
決定ワードの出力の際にはいつも出力される。
アドレスが1つしかないもの)は、分岐決定ワード
“1”または“0”でコード化されている。というの
も、分岐および必ずそれに続く遅延スロット命令の後に
実行される次の命令は、特定の目的アドレスでの命令ま
たは遅延スロット命令に続く命令のいずれかであるから
である。アプリケーションと伸張プログラムの同期性を
維持するため、24ビットプログラムアドレスは、分岐
決定ワードの出力の際にはいつも出力される。
【0010】デバッグポートは上記の8ビットバスに圧
縮プログラムフローと他のデータとを出す。このバスは
インタフェースモジュールに延び、そのモジュールは
“バースト的な”高速データを低速にバッファする。低
速データは、小型コンピュータシステムインタフェース
(SCSI)のバスを通って、プログラマまたは装置の
デバッガのワークステーションに送られるのに適するも
のになる。
縮プログラムフローと他のデータとを出す。このバスは
インタフェースモジュールに延び、そのモジュールは
“バースト的な”高速データを低速にバッファする。低
速データは、小型コンピュータシステムインタフェース
(SCSI)のバスを通って、プログラマまたは装置の
デバッガのワークステーションに送られるのに適するも
のになる。
【0011】プログラムフローアドレスの不連続性が、
デバッグポートのプログラムフローユニットにより、い
かに処理されるかを理解するために、不連続性のすべて
の原因が以下の3つの表に示されている。
デバッグポートのプログラムフローユニットにより、い
かに処理されるかを理解するために、不連続性のすべて
の原因が以下の3つの表に示されている。
【0012】
【表1】
【0013】
【表2】
【0014】
【表3】
【0015】まず、3つの表に示されたタイトルに注目
し、それから表1の左端欄について考える。表1のグル
ープAの各命令は常にプログラムアドレスにおいて実行
される分岐、ジャンプ、コールまたはトラップといった
命令に特定される目的アドレスへの不連続性を引起こ
す。不連続性は常に生じ、目的アドレスは分岐命令の一
部で、ユーザのためにプログラムフローデータを伸張す
るプログラムでも既知であるので、これらのどの命令が
実行されても、どんなプログラムフローデータも捕獲不
能である。
し、それから表1の左端欄について考える。表1のグル
ープAの各命令は常にプログラムアドレスにおいて実行
される分岐、ジャンプ、コールまたはトラップといった
命令に特定される目的アドレスへの不連続性を引起こ
す。不連続性は常に生じ、目的アドレスは分岐命令の一
部で、ユーザのためにプログラムフローデータを伸張す
るプログラムでも既知であるので、これらのどの命令が
実行されても、どんなプログラムフローデータも捕獲不
能である。
【0016】さて、グループBの自動ループバック機能
について考える。n−パスのループにおいて命令が実行
された場合、最初のn−1パスでは、ループにおける最
終命令、すなわちループ先端へのバックという命令の後
に、常に不連続性が生じる。n番目のパスでは、次に実
行される命令は常にループにおける最終命令の次に連続
する命令となる。たとえ、ループにおける最終命令の次
に実行される命令が予知可能でも、デバッグポートの設
計者たちは、ループ先端へのループの際にプログラムア
ドレスをとらえるのではなく、ループ先端において次に
連続する命令が取出される際に、n番目のパスの間にプ
ログラムアドレスをとらえる方を選択してきた。(表3
参照。エントリ−ループ終了でフォールスルー。)次
に、グループCのループ開始命令について考える。ルー
プ開始命令はループの先端および長さ、ならびにドロッ
プする前のパスの数を規定するために用いられる。ルー
プ開始命令は、命令実行後直ちに不連続性を発生させる
ことは決してない(不連続性はループにおける最終命令
実行の後に、ボトムで発生する)ので、この命令が実行
されるときには、プログラムフローデータの捕獲は起こ
らない。
について考える。n−パスのループにおいて命令が実行
された場合、最初のn−1パスでは、ループにおける最
終命令、すなわちループ先端へのバックという命令の後
に、常に不連続性が生じる。n番目のパスでは、次に実
行される命令は常にループにおける最終命令の次に連続
する命令となる。たとえ、ループにおける最終命令の次
に実行される命令が予知可能でも、デバッグポートの設
計者たちは、ループ先端へのループの際にプログラムア
ドレスをとらえるのではなく、ループ先端において次に
連続する命令が取出される際に、n番目のパスの間にプ
ログラムアドレスをとらえる方を選択してきた。(表3
参照。エントリ−ループ終了でフォールスルー。)次
に、グループCのループ開始命令について考える。ルー
プ開始命令はループの先端および長さ、ならびにドロッ
プする前のパスの数を規定するために用いられる。ルー
プ開始命令は、命令実行後直ちに不連続性を発生させる
ことは決してない(不連続性はループにおける最終命令
実行の後に、ボトムで発生する)ので、この命令が実行
されるときには、プログラムフローデータの捕獲は起こ
らない。
【0017】停止命令は、RSP装置の起動の必要がな
いときに電力を節約するために装置に含まれている。停
止命令は、プログラムアドレスにおけるジャンプの原因
とはならないが、プログラムカウンタの進行の停止と、
装置の動作の停止とをもたらす。停止命令の実行のた
め、プログラムフローデータは捕獲されない。
いときに電力を節約するために装置に含まれている。停
止命令は、プログラムアドレスにおけるジャンプの原因
とはならないが、プログラムカウンタの進行の停止と、
装置の動作の停止とをもたらす。停止命令の実行のた
め、プログラムフローデータは捕獲されない。
【0018】表2における命令はすべて条件付命令であ
る。これらのどの命令の実行も、ある条件が満たされれ
ば(特定の目的アドレスへの)不連続性を起こす。もし
くは、ある条件が満たされなければ次に続く命令の実行
を引起こす。これらの命令に対し、デバッグポートは、
もし不連続性が生じれば“1”で、不連続性が生じなけ
れば“0”で分岐決定ワードをコーディングする。
る。これらのどの命令の実行も、ある条件が満たされれ
ば(特定の目的アドレスへの)不連続性を起こす。もし
くは、ある条件が満たされなければ次に続く命令の実行
を引起こす。これらの命令に対し、デバッグポートは、
もし不連続性が生じれば“1”で、不連続性が生じなけ
れば“0”で分岐決定ワードをコーディングする。
【0019】表3の左端欄(グループA)は、装置のす
べての間接命令を示している。これらのどの命令が実行
されても、算出アドレスは特定レジスタから読取られ、
遅延スロット命令の後に実行された命令を取出すために
用いられる。目的アドレスは計算されるものであり、多
くの場合予知不能なので、プログラムフローユニットは
常に目的アドレスがプログラムアドレスバスに出される
と、これらの命令に備えてその目的アドレスをとらえる
のである。
べての間接命令を示している。これらのどの命令が実行
されても、算出アドレスは特定レジスタから読取られ、
遅延スロット命令の後に実行された命令を取出すために
用いられる。目的アドレスは計算されるものであり、多
くの場合予知不能なので、プログラムフローユニットは
常に目的アドレスがプログラムアドレスバスに出される
と、これらの命令に備えてその目的アドレスをとらえる
のである。
【0020】表3のグループBに示された正常および迅
速例外は、サービスを要求しているI/Oユニットより
発信された信号と、エラー発生の信号を送る演算コアユ
ニットからの信号とによって生じる。
速例外は、サービスを要求しているI/Oユニットより
発信された信号と、エラー発生の信号を送る演算コアユ
ニットからの信号とによって生じる。
【0021】RSP装置は、I/Oユニットからの例外
信号に応答するとき、現行のタスクでの処理を停止し、
関連のない例外ルーチンへ、タスクの終了に戻る前に、
入力レジスタからなんとかデータを読取るかまたは出力
レジスタにデータの書込をする目的でジャンプする。信
号処理アプリケーションにおいては、入力/出力タスク
は、データのロスを防ぐため、通常は周期的に行なわれ
なければならない。
信号に応答するとき、現行のタスクでの処理を停止し、
関連のない例外ルーチンへ、タスクの終了に戻る前に、
入力レジスタからなんとかデータを読取るかまたは出力
レジスタにデータの書込をする目的でジャンプする。信
号処理アプリケーションにおいては、入力/出力タスク
は、データのロスを防ぐため、通常は周期的に行なわれ
なければならない。
【0022】RSP装置は演算コアからの例外信号に応
答するときもまた、処理を停止し、例外ルーチンへジャ
ンプする。しかし、例外ルーチンは、エラーの修正また
はオペレータへのエラー発生の通報のコールの原因とな
る条件に関連するタスクを行なうために使用されること
が多い。
答するときもまた、処理を停止し、例外ルーチンへジャ
ンプする。しかし、例外ルーチンは、エラーの修正また
はオペレータへのエラー発生の通報のコールの原因とな
る条件に関連するタスクを行なうために使用されること
が多い。
【0023】例外ルーチンは遂行中の現行のタスクに関
連する場合としない場合があるため、プログラマにとっ
ては、もし、ある状況下(たとえば、演算エラーが正し
く修正されたかどうか決定するようなとき)で例外不連
続性の捕獲を可能化し、他の状況(たとえば、多くのI
/O例外が発生するようなとき)ではその捕獲を不能化
できるのであれば、プログラムフローデータはそう混乱
したものにはならないだろう。
連する場合としない場合があるため、プログラマにとっ
ては、もし、ある状況下(たとえば、演算エラーが正し
く修正されたかどうか決定するようなとき)で例外不連
続性の捕獲を可能化し、他の状況(たとえば、多くのI
/O例外が発生するようなとき)ではその捕獲を不能化
できるのであれば、プログラムフローデータはそう混乱
したものにはならないだろう。
【0024】表3の2番目の欄のNEXCEとQEXC
Eはそれぞれ正常および迅速の例外に対するプログラム
の不連続性捕獲のイネーブルである。QEXCEは迅速
例外ルーチンへの出入りの際のプログラムの不連続性の
捕獲を可能化/不能化にするのに対し、NEXCEは正
常な例外ルーチンに入る際のみその捕獲を可能化/不能
化することに注意されたい。RSP装置においては、1
つの命令は、トラップおよび正常例外からのリターンを
コマンドするために用いられる。そのため、デバッグポ
ートの設計者たちは、常に正常の例外ルーチンを出ると
きに生じる不連続性を報告することにしてきたが、これ
は、1つはトラップからのリターン、2番目は正常例外
からのリターンといった別々の命令を受けるのを避ける
ためである。
Eはそれぞれ正常および迅速の例外に対するプログラム
の不連続性捕獲のイネーブルである。QEXCEは迅速
例外ルーチンへの出入りの際のプログラムの不連続性の
捕獲を可能化/不能化にするのに対し、NEXCEは正
常な例外ルーチンに入る際のみその捕獲を可能化/不能
化することに注意されたい。RSP装置においては、1
つの命令は、トラップおよび正常例外からのリターンを
コマンドするために用いられる。そのため、デバッグポ
ートの設計者たちは、常に正常の例外ルーチンを出ると
きに生じる不連続性を報告することにしてきたが、これ
は、1つはトラップからのリターン、2番目は正常例外
からのリターンといった別々の命令を受けるのを避ける
ためである。
【0025】上記表1に関して、“ループの先端への自
動ループバック”の機能についての説明で、ループ先端
へのループバックが発生した場合に起こるプログラムア
ドレスの不連続性は報告されないと述べたが、ループの
処理が完了したときにはループの先端において、プログ
ラムアドレスは報告される。
動ループバック”の機能についての説明で、ループ先端
へのループバックが発生した場合に起こるプログラムア
ドレスの不連続性は報告されないと述べたが、ループの
処理が完了したときにはループの先端において、プログ
ラムアドレスは報告される。
【0026】表3のグループDに含まれるウエイトおよ
びブレークの命令のいずれも、その実行の際、プログラ
ムアドレスを変更させないが、プログラムカウンタを停
止させる。ウエイト命令は、電力を節約するという点に
おいて、停止命令と似ている。ウエイト命令は演算コア
のクロックを停止させる(位相1をオンしたまま)が、
I/Oユニットのクロックはそのまま動き続ける。デバ
ッグポートはウエイト命令の実行の際にプログラムアド
レスをとらえる。
びブレークの命令のいずれも、その実行の際、プログラ
ムアドレスを変更させないが、プログラムカウンタを停
止させる。ウエイト命令は、電力を節約するという点に
おいて、停止命令と似ている。ウエイト命令は演算コア
のクロックを停止させる(位相1をオンしたまま)が、
I/Oユニットのクロックはそのまま動き続ける。デバ
ッグポートはウエイト命令の実行の際にプログラムアド
レスをとらえる。
【0027】プログラムのデバッギングの間、プログラ
ムのその時点での数多くのレジスタ/メモリの位置の値
/状態を決定するために、レジスタ/メモリ位置を調べ
ることができるように、ブレーク命令は命令の実行を停
止させるのに用いられる。デバッグポートはまた、ブレ
ーク命令の実行の際にプログラムアドレスをとらえる。
ムのその時点での数多くのレジスタ/メモリの位置の値
/状態を決定するために、レジスタ/メモリ位置を調べ
ることができるように、ブレーク命令は命令の実行を停
止させるのに用いられる。デバッグポートはまた、ブレ
ーク命令の実行の際にプログラムアドレスをとらえる。
【0028】デバッグポートのプログラムフローユニッ
トは6つの必須レジスタを含む。それらは、24ビット
プログラムアドレス獲得レジスタ(PAC)、32ビッ
ト分岐決定シフトレジスタ(BDR)、8ビット状態レ
ジスタ(STR)、24ビットプログラムアドレスバッ
ファ(PAB)、32ビット分岐決定バッファ(BD
B)および8ビット状態バッファ(STB)である。
トは6つの必須レジスタを含む。それらは、24ビット
プログラムアドレス獲得レジスタ(PAC)、32ビッ
ト分岐決定シフトレジスタ(BDR)、8ビット状態レ
ジスタ(STR)、24ビットプログラムアドレスバッ
ファ(PAB)、32ビット分岐決定バッファ(BD
B)および8ビット状態バッファ(STB)である。
【0029】PAB、BDBおよびSTBはバッファレ
ジスタである。これらは各々、デバッグポートのFIF
O出力への転送のため、データがデバッグポートの出力
バスに多重化されることができるようになるまで、PA
C、BDRおよびSTRからコピーされたデータを保持
する。
ジスタである。これらは各々、デバッグポートのFIF
O出力への転送のため、データがデバッグポートの出力
バスに多重化されることができるようになるまで、PA
C、BDRおよびSTRからコピーされたデータを保持
する。
【0030】PABは常に、PACレジスタが装置のプ
ログラムアドレス(PA)バス上のアドレスをとらえる
前に、PACレジスタの現在の内容をコピーする。PA
Cレジスタは、以下のいずれかの状態が発生した場合、
プログラムアドレスをとらえる。
ログラムアドレス(PA)バス上のアドレスをとらえる
前に、PACレジスタの現在の内容をコピーする。PA
Cレジスタは、以下のいずれかの状態が発生した場合、
プログラムアドレスをとらえる。
【0031】1.予知不能な態様で、プログラムフロー
を変更するような命令が実行されるかまたは、そのよう
な条件が発生する場合。
を変更するような命令が実行されるかまたは、そのよう
な条件が発生する場合。
【0032】2.分岐決定シフトレジスタ(BDR)が
満杯になる場合。 3.入力メッセージが、プログラムアドレスの捕獲を指
定する場合。
満杯になる場合。 3.入力メッセージが、プログラムアドレスの捕獲を指
定する場合。
【0033】PABとPACとに対するコピー/捕獲制
御論理は隣接する論理より7つの入力を受ける。7つの
うちの5つの入力は、RSP装置の命令デコードユニッ
トからのものである。これらの入力は下記の表4に示さ
れている。
御論理は隣接する論理より7つの入力を受ける。7つの
うちの5つの入力は、RSP装置の命令デコードユニッ
トからのものである。これらの入力は下記の表4に示さ
れている。
【0034】
【表4】
【0035】表4はどの命令または条件が5つの信号そ
れぞれのアサートを引起こすかを示している。これらの
命令/条件は表3にも示されており、予知不能な態様
で、プログラムフローの変更を起こすものである。
れぞれのアサートを引起こすかを示している。これらの
命令/条件は表3にも示されており、予知不能な態様
で、プログラムフローの変更を起こすものである。
【0036】PAB/PAC制御論理へ入力される、あ
との2つの信号は後に図2および3で示される。
との2つの信号は後に図2および3で示される。
【0037】1つの代わりに5つの信号がPAB/PA
Cコピー/獲得制御論理により入力されるが、これは、
いくつかはまたSTRレジスタにより状態信号として入
力されるからである。
Cコピー/獲得制御論理により入力されるが、これは、
いくつかはまたSTRレジスタにより状態信号として入
力されるからである。
【0038】STRレジスタは、プログラムアドレスが
捕獲された理由および最後の捕獲以降何かイベントが発
生したかどうかに関する情報を含む。表5はSTRレジ
スタ内のビットの意味を示しており、表6は表5のPF
Tビットの意味を拡張するものである。
捕獲された理由および最後の捕獲以降何かイベントが発
生したかどうかに関する情報を含む。表5はSTRレジ
スタ内のビットの意味を示しており、表6は表5のPF
Tビットの意味を拡張するものである。
【0039】
【表5】
【0040】
【表6】
【0041】BDRレジスタは、命令デコードユニット
からの2つの入力により制御される。sbr_inst
(単純分岐命令)という信号は、何か単純分岐命令が実
行された際にBDRを左シフトさせる。2番目の信号s
br_tkn(実行された単純分岐)は、BDRの最下
位ビットによりコピーされ、分岐した場合は“1”、分
岐しない場合は“0”である。
からの2つの入力により制御される。sbr_inst
(単純分岐命令)という信号は、何か単純分岐命令が実
行された際にBDRを左シフトさせる。2番目の信号s
br_tkn(実行された単純分岐)は、BDRの最下
位ビットによりコピーされ、分岐した場合は“1”、分
岐しない場合は“0”である。
【0042】BDRレジスタは、装置の電源投入リセッ
トにより初期化され、31−1ビットはすべて“0”
に、および0ビットは“1”となる。BDRレジスタ
は、BDBに内容がコピーされるときは常に同じ状態に
再び初期化される。BDRは、0ビットに初期化された
唯一の“1”が31ビットによりシフトされた場合に、
満杯になる。
トにより初期化され、31−1ビットはすべて“0”
に、および0ビットは“1”となる。BDRレジスタ
は、BDBに内容がコピーされるときは常に同じ状態に
再び初期化される。BDRは、0ビットに初期化された
唯一の“1”が31ビットによりシフトされた場合に、
満杯になる。
【0043】プログラムフローの捕獲発生毎に、以下の
状態が発生する。 1.PACの以前の内容がPABにコピーされる。
状態が発生する。 1.PACの以前の内容がPABにコピーされる。
【0044】2.BDRの内容がBDBにコピーされ
る。 3.STRの内容がSTBにコピーされる。
る。 3.STRの内容がSTBにコピーされる。
【0045】4.BDRが再び初期化される。 5.STR内のRC(参照カウンタ)ビットが増加す
る。
る。
【0046】6.捕獲されたデータのFIFO出力への
移動のため、デバッグポートの出力バス上の時間スロッ
トを要求するのに、bd16.srまたはbd32.s
rというサービス要求のいずれかが設定される。
移動のため、デバッグポートの出力バス上の時間スロッ
トを要求するのに、bd16.srまたはbd32.s
rというサービス要求のいずれかが設定される。
【0047】bd16.srとbd32.srとの2つ
のサービス要求出力は、分岐決定ビットが以前にBDR
の最上位16ビットにシフトされたかどうかを、デバッ
グポートの出力バスアービタに示すために用いられる。
もしBDRの上半分にシフトされたビットがなければ、
BDBの最下位16ビットのみがFIFO出力にコピー
される。
のサービス要求出力は、分岐決定ビットが以前にBDR
の最上位16ビットにシフトされたかどうかを、デバッ
グポートの出力バスアービタに示すために用いられる。
もしBDRの上半分にシフトされたビットがなければ、
BDBの最下位16ビットのみがFIFO出力にコピー
される。
【0048】プログラムフローデータは、FIFO出力
に書込まれた後、まずインタフェースモジュールへ、次
にホストワークステーションのハードディスクへ送られ
る。ワークステーションは、ハードディスクからのデー
タの伸張を行ない、プログラム原始コードとともに、結
果として生じたプログラムフローアドレスを表示する。
に書込まれた後、まずインタフェースモジュールへ、次
にホストワークステーションのハードディスクへ送られ
る。ワークステーションは、ハードディスクからのデー
タの伸張を行ない、プログラム原始コードとともに、結
果として生じたプログラムフローアドレスを表示する。
【0049】この記述のビット数は例示のためのみに使
われている。他のレジスタの幅や、バスの幅などは、異
なった構成を扱うときには、簡単に設計することができ
る。
われている。他のレジスタの幅や、バスの幅などは、異
なった構成を扱うときには、簡単に設計することができ
る。
【0050】
【好ましい実施例の説明】図1において、RSP装置は
(11)に示されており、内部のデバッグポートは(1
3)に示されている。
(11)に示されており、内部のデバッグポートは(1
3)に示されている。
【0051】ハードウェアの制限のため、RSP装置の
内部プログラムアドレスバス上に発生するすべてのプロ
グラムアドレスをとらえ、出力することは不可能であ
る。したがって、デバッグポートの主要な機能の1つ
は、必須量のプログラムフローデータのみを、プログラ
マのホストワークステーションに伝送するために、コー
ド化し、捕獲することである。
内部プログラムアドレスバス上に発生するすべてのプロ
グラムアドレスをとらえ、出力することは不可能であ
る。したがって、デバッグポートの主要な機能の1つ
は、必須量のプログラムフローデータのみを、プログラ
マのホストワークステーションに伝送するために、コー
ド化し、捕獲することである。
【0052】図1では、プログラムフローデータは、デ
バッグバス(14)、インタフェースモジュール(1
5)およびSCSI(小型コンピュータシステムインタ
フェース)(16)を経由してプログラマのワークステ
ーション(17)に送られる。ワークステーションは、
プログラムフローデータの処理の後、プログラムが正し
く機能しているかどうかをプログラマが決定できるよう
に、各プログラムアドレスおよびそのアドレスに相当す
るプログラマの原始コードを(19)に表示しようとす
る。
バッグバス(14)、インタフェースモジュール(1
5)およびSCSI(小型コンピュータシステムインタ
フェース)(16)を経由してプログラマのワークステ
ーション(17)に送られる。ワークステーションは、
プログラムフローデータの処理の後、プログラムが正し
く機能しているかどうかをプログラマが決定できるよう
に、各プログラムアドレスおよびそのアドレスに相当す
るプログラマの原始コードを(19)に表示しようとす
る。
【0053】プログラムは次々にいくつかの複合分岐命
令を有することがあり得るので、ワークステーションが
プログラムを完全に再構成するために、デバッグポート
のプログラムフローユニットがすべての必要なデータを
とらえることは不可能である。この状態が発生すると、
プログラムフローユニットは、出力状態バイト内に重ね
書きビットを示す。再構成プログラムが重ね書きビット
を察知すると、表示されたデータ内に不連続性を示す。
令を有することがあり得るので、ワークステーションが
プログラムを完全に再構成するために、デバッグポート
のプログラムフローユニットがすべての必要なデータを
とらえることは不可能である。この状態が発生すると、
プログラムフローユニットは、出力状態バイト内に重ね
書きビットを示す。再構成プログラムが重ね書きビット
を察知すると、表示されたデータ内に不連続性を示す。
【0054】図2はプログラムフローデータのコード化
や捕獲の際に用いられる、デバッグポートと他のRSP
装置のユニットとの間の意味のあるインタフェースを示
す。命令取出ユニット(20)は、次に実行される命令
のアドレスを発する。このアドレスは、プログラムアド
レスバス(23)に出され、次の命令を取出すために命
令メモリ(21)により使用される。命令メモリはプロ
グラムデータバス(24)に命令を出力する。命令デコ
ード(22)は、命令をデコードし、ここには示されて
いない他のユニットにおけるその命令の実行を制御す
る。命令デコードはまた、デバッグポートのための命令
をデコードし、それらの命令がプログラムデータバスに
あるとき、ユニット間の適切なラインをアサートする。
L−バス(25)はデバッグポートとRSPコアとの間
のコマンドおよびデータの転送のために使用される。
や捕獲の際に用いられる、デバッグポートと他のRSP
装置のユニットとの間の意味のあるインタフェースを示
す。命令取出ユニット(20)は、次に実行される命令
のアドレスを発する。このアドレスは、プログラムアド
レスバス(23)に出され、次の命令を取出すために命
令メモリ(21)により使用される。命令メモリはプロ
グラムデータバス(24)に命令を出力する。命令デコ
ード(22)は、命令をデコードし、ここには示されて
いない他のユニットにおけるその命令の実行を制御す
る。命令デコードはまた、デバッグポートのための命令
をデコードし、それらの命令がプログラムデータバスに
あるとき、ユニット間の適切なラインをアサートする。
L−バス(25)はデバッグポートとRSPコアとの間
のコマンドおよびデータの転送のために使用される。
【0055】図3は、プログラムフロー機能に含まれ
る、デバッグポート内の3つのユニットを示す。
る、デバッグポート内の3つのユニットを示す。
【0056】3つのユニットのうち、コマンドユニット
(31)は最も関連性が薄い。コマンドユニットは2つ
の機能を果たす。1つは、en_pfu(イネーブルプ
ログラムフローユニット)ライン経由の、プログラムフ
ローユニットの可能化/不能化である。コマンドユニッ
トは、デバッグポート入力バス(40)、入力シンクロ
ナイザ(33)およびデバッグバス(14)を介してプ
ログラマから、またはL−バス(25)上のRSPコア
(命令の実行の結果として)から、可能化および不能化
PFUコマンドを受取る。
(31)は最も関連性が薄い。コマンドユニットは2つ
の機能を果たす。1つは、en_pfu(イネーブルプ
ログラムフローユニット)ライン経由の、プログラムフ
ローユニットの可能化/不能化である。コマンドユニッ
トは、デバッグポート入力バス(40)、入力シンクロ
ナイザ(33)およびデバッグバス(14)を介してプ
ログラマから、またはL−バス(25)上のRSPコア
(命令の実行の結果として)から、可能化および不能化
PFUコマンドを受取る。
【0057】コマンドユニットはまた、cap_paラ
インを介して、いつでもプログラムアドレスの捕獲のた
めに、プログラムフローユニットをコマンドすることが
できる。コマンドユニットは、可能化および不能化PF
U命令と同じ経路で、プログラマまたはL−バスから入
力されたプログラムアドレス捕獲コマンドをデコードす
る。
インを介して、いつでもプログラムアドレスの捕獲のた
めに、プログラムフローユニットをコマンドすることが
できる。コマンドユニットは、可能化および不能化PF
U命令と同じ経路で、プログラマまたはL−バスから入
力されたプログラムアドレス捕獲コマンドをデコードす
る。
【0058】通信ユニット(32)は、コマンドとデー
タをデバッグポートに入力するためおよびプログラムフ
ローその他のデータの出力のために用いられる。デバッ
グバスは双方向性があるので、FIFO出力(35)
は、図1のインタフェースモジュール(15)の受取準
備ができるまで出力データを蓄積するために含まれてい
る。
タをデバッグポートに入力するためおよびプログラムフ
ローその他のデータの出力のために用いられる。デバッ
グバスは双方向性があるので、FIFO出力(35)
は、図1のインタフェースモジュール(15)の受取準
備ができるまで出力データを蓄積するために含まれてい
る。
【0059】いくつかのデータソースが、データをデバ
ッグポート出力バス(41)に同時にコピーしようとす
ることがあるので、通信ユニットはまた出力バスアービ
タ(34)を含む。その目的は、アサートされたすべて
のサービス要求を見て、バスへの各アクセスを、1度に
1つずつ許可することである。バスへのデータのコピー
の許可は、データセレクタバス(42)に書込された5
ビットのコードを介して与えられる。
ッグポート出力バス(41)に同時にコピーしようとす
ることがあるので、通信ユニットはまた出力バスアービ
タ(34)を含む。その目的は、アサートされたすべて
のサービス要求を見て、バスへの各アクセスを、1度に
1つずつ許可することである。バスへのデータのコピー
の許可は、データセレクタバス(42)に書込された5
ビットのコードを介して与えられる。
【0060】図4は、プログラムフローユニットそのも
のを示している。BDR(分岐決定シフトレジスタ)
(50)は、32ビットのシフトレジスタであり、sb
r_instrの入力がアサートされる毎に左にシフト
する。シフトの際、sbr_tknの入力状態をコピー
する。このようにして、単純分岐命令(すなわち、表2
の命令)が実行されるとき、分岐した場合は“1”で、
分岐しない場合は“0”でレジスタにコード化される。
のを示している。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”の位置の検出により、何個の分岐決定が含まれて
いるかが示される。
と、データが失われることがあるので、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)というサービス要求をアサートすることにより行な
われる。
能なので、タップ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)からプログラムアドレスをコピーするため
に用いられる。
タ(52)は、プログラム内で予知不能の不連続性が発
生したとき(すなわち、表3に示された命令または条件
のどれかが発生したときはいつも)プログラムアドレス
バス(45)からプログラムアドレスをコピーするため
に用いられる。
【0064】命令デコードユニットからの5つの入力
(26)は、予知不能の不連続性の発生を知らせるため
に用いられる。これらの入力のいずれかがアサートされ
た場合、制御論理は、まずPACの現在の内容のPAB
へのコピー、次にBDRの現在の内容のBDBへのコピ
ー、そしてSTRの現在の内容のSTBへのコピー、さ
らにはPACによるプログラムアドレスバスのコピーを
引起こす。つぎに、制御論理は、データがデバッグポー
ト/出力バスに出力される用意があることを知らせるた
めに、bd16_srまたはbd32_srをアサート
する。
(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の下半分のみが出力バスにコ
ピーされる。
ずれか2つのコードがデータセレクタバスで検出された
場合、出力データシーケンサ(57)の制御のもとでデ
バッグポート出力バスにコピーされる。1番目のコード
により、シーケンサはPAB、STBおよびBDBの両
半分を出力バスにコピーし、2番目のコードにより、P
AB、STBおよびBDBの下半分のみが出力バスにコ
ピーされる。
【0066】BDRレジスタが満杯になったかまたは予
知不能の不連続性が発生したかいずれかの理由で、デー
タはプログラムフローユニットより出力されるので、S
TR(55)からの8ビットの状態バイトは、このメッ
セージが出力された理由を示すために、常にBDBおよ
びPACデータとともに出力される。
知不能の不連続性が発生したかいずれかの理由で、デー
タはプログラムフローユニットより出力されるので、S
TR(55)からの8ビットの状態バイトは、このメッ
セージが出力された理由を示すために、常にBDBおよ
びPACデータとともに出力される。
【0067】STRレジスタビット(表5および表6に
明示)はまた重ね書きビットと、2ビットカウントとを
含む。重ね書きビットは、データがデバッグポートにコ
ピーされる前にPABバッファが重ね書きされたかどう
かを示し、2ビットカウントはPACレジスタがプログ
ラムアドレスをコピーする毎に増加する。そのカウント
は重ね書きが何度発生したかを示している。
明示)はまた重ね書きビットと、2ビットカウントとを
含む。重ね書きビットは、データがデバッグポートにコ
ピーされる前にPABバッファが重ね書きされたかどう
かを示し、2ビットカウントはPACレジスタがプログ
ラムアドレスをコピーする毎に増加する。そのカウント
は重ね書きが何度発生したかを示している。
【0068】特定の実施例については、いくぶん詳細に
わたって述べられてきたが、この発明の真の精神と範囲
については、そこには限定されておらず、前掲の特許請
求の範囲にのみ限定される。
わたって述べられてきたが、この発明の真の精神と範囲
については、そこには限定されておらず、前掲の特許請
求の範囲にのみ限定される。
【図1】インタフェースモジュールと、2つの接続バス
とによりホストワークステーションに接続する、RSP
装置に組込まれたデバッグポートのブロック図である。
とによりホストワークステーションに接続する、RSP
装置に組込まれたデバッグポートのブロック図である。
【図2】デバッグポート、命令取出、命令メモリおよび
命令デコードユニットが意味のある接続で繋がっている
RSP装置の図である。
命令デコードユニットが意味のある接続で繋がっている
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)
- 【請求項1】 集積回路上で具体化されたプログラマブ
ルプロセッサにおけるプログラムアドレスデータを圧縮
する方法であって、前記集積回路がデバッグ中またはプ
ログラムが前記集積回路上でデバッグ中であって、前記
方法は、 前記プログラマブルプロセッサ上で既知のプログラムを
実行するステップと、 ビットフォームデータで、前記プログラム内で発生する
単純分岐および発生しない単純分岐をコード化するステ
ップと、 デバッグ中の前記プロセッサ内のストレージ位置から、
ビットフォームデータで予め予測することができないプ
ログラムの絶対アドレスをコピーするステップと、 任意のプログラムで予め定められた命令を無視するステ
ップと、 デバッグ中のプログラマブルプロセッサから離れた位置
のワークステーションに前記ビットフォームデータを記
録するステップとを含む、方法。 - 【請求項2】 前記コード化は、分岐されたか否かを示
す特有の2進ビットをレジスタに供給することにより達
成される、請求項1に記載の方法。 - 【請求項3】 ワークステーションで、圧縮プログラム
アドレスデータとして記録するため、前記ビットを蓄積
するステップをさらに含む、請求項2に記載の方法。 - 【請求項4】 プログラムアドレスデータの捕獲のため
に、信号が受取られるたびに、さらなるレジスタに絶対
新規アドレスを蓄積するステップをさらに含む、請求項
3に記載の方法。 - 【請求項5】 集積回路上で具体化されたプログラマブ
ルプロセッサにおけるプログラムアドレスデータを圧縮
する方法であって、前記集積回路がデバッグ中またはプ
ログラムが前記集積回路上でデバッグ中であって、プロ
グラムエラーの修正を促進するために用いられ、前記方
法は、 プログラマブルプロセッサ上で既知のプログラムを実行
するステップと、 デバッグ中の前記プログラマブルプロセッサから離れた
ワークステーションでプログラムによって行なわれる任
意の分岐を記録するステップと、 予め定められていない方法でプログラムがジャンプした
とき、デバッグ中の前記プログラマブルプロセッサおよ
びデバッグ中のプロセッサ内のストレージ位置から離れ
たワークステーションで新しいアドレスを記録するステ
ップと、 前記ワークステーションで、デバッグ中の前記プログラ
マブルプロセッサ上のプログラムの操作をモニタするた
めに前記記録された情報を使用するステップとを含む、
プログラムアドレスを圧縮する方法。 - 【請求項6】 プログラムまたはプログラムを実行する
プログラマブルプロセッサのデバッグを促進する装置で
あって、 プログラム中で実行または実行されない任意の分岐をコ
ード化する手段と、 プログラムがビットフォームで、予め定められていない
方法でジャンプしたとき、プログラマブルプロセッサか
ら離れたワークステーションにプロセッサ内のストレー
ジ位置からプログラムの絶対アドレスを記録する手段と
を含む、装置。 - 【請求項7】 あるアドレス捕獲のための信号発生の際
に、ビットフォームのデータとして新規アドレスを受取
るために接続された、プログラムカウンタ参照レジスタ
をさらに含む、請求項6に記載の装置。 - 【請求項8】 前記ビットフォームのデータを、記録の
ために蓄積する手段をさらに含む、請求項7に記載の装
置。 - 【請求項9】 圧縮されたアドレスデータに含めるた
め、アドレス捕獲のための命令が検出された際に、絶対
新規アドレスを蓄積するためのレジスタ手段をさらに含
む、請求項8に記載の装置。 - 【請求項10】 集積回路上で実現されるプログラム可
能なプロセッサのプログラムアドレスおよび命令データ
圧縮装置であって、前記集積回路はデバッグ中であるか
または前記プログラムの操作が前記集積回路上でデバッ
グ中であり、前記プログラムのエラーの修正を促進する
ために用いられる装置であって、 前記プログラムによって行なわれる任意の分岐を、デバ
ッグ中の前記プログラマブルプロセッサから離れたワー
クステーションで記録する手段と、 予め定められていない方法で前記プログラムがジャンプ
したとき、デバッグ中の前記プログラマブルプロセッサ
およびデバッグ中のプロセッサ内のストレージ位置から
離れたワークステーションで新しいアドレスを記録する
手段と、 離れたワークステーションでデバッグ中のプログラマブ
ルプロセッサでの前記プログラムの操作をモニタするた
めに、前記記録された情報を使用する手段とを含むプロ
グラムアドレスおよび命令データを圧縮する装置。
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)
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)
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 |
-
1993
- 1993-11-23 US US08/155,891 patent/US5473754A/en not_active Expired - Lifetime
-
1994
- 1994-09-09 DE DE69414985T patent/DE69414985T2/de not_active Expired - Fee Related
- 1994-09-09 EP EP94114205A patent/EP0655684B1/en not_active Expired - Lifetime
- 1994-11-21 JP JP6286417A patent/JP2824828B2/ja not_active Expired - Fee Related
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 |