JP3708521B2 - パイプライン方式のプロセッサのための監視点エンジン - Google Patents
パイプライン方式のプロセッサのための監視点エンジン Download PDFInfo
- Publication number
- JP3708521B2 JP3708521B2 JP2002550532A JP2002550532A JP3708521B2 JP 3708521 B2 JP3708521 B2 JP 3708521B2 JP 2002550532 A JP2002550532 A JP 2002550532A JP 2002550532 A JP2002550532 A JP 2002550532A JP 3708521 B2 JP3708521 B2 JP 3708521B2
- Authority
- JP
- Japan
- Prior art keywords
- watchpoint
- monitoring point
- address
- match
- count value
- 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
Links
Images
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/3648—Software debugging using additional hardware
-
- 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
Description
【発明の属する技術分野】
本発明は、パイプライン方式のプロセッサのための監視点の生成に関する。
【0002】
【従来の技術】
パイプライン方式のプロセッサのような複雑な集積回路装置のために開発されたコードは、典型的には広範囲なデバッギングを要求する。プロセッサのパイプラインを通る命令の伝播をモニタする監視点を生成することは有用である。この理由から、監視点エンジンは、プロセッサのパイプラインからステート情報を抽出し、かつそのステート情報をイベント取扱いのための制御ユニットに提供するために設けられる。このように、アプリケーション開発者は、適切なコード動作を確認し、プロセッサ用に開発されたコードをデバッグすることができる。
【0003】
【実施例の詳細な説明】
図1は集積回路装置10を図示するブロック図である。図1の中で示されるように、集積回路装置10はプログラム可能プロセッサ12、プロセッサ制御ユニット14および監視点エンジン16を含む。プロセッサ12は、フラッシュ・メモリ装置のようなランダム・アクセス・メモリ(RAM)装置中の命令を実行する。プロセッサ12は、マルチ実行ステージを備えるパイプライン方式のプロセッサであってよい。監視点エンジン16は、ステート情報をプロセッサ12からリアルタイムで抽出し、例外と割込みのようなイベントを制御ユニット14に通知するためにその情報を処理する。
【0004】
監視点エンジン16は、アドレスの区間内(インクルーシブ)または区間外(エクスクルーシブ)の範囲、つまり組合せのマッチと同様に、データまたは命令のアドレスに関して一致するように適合する。さらに、監視点エンジン16は、パイプライン方式のプロセッサ12の連続する実行ステージを通って監視点アドレス・マッチの伝播を追跡するように適合される。その目的のために、監視点エンジン16は、これらの機能をサポートするために配置された適切なレジスタおよびロジックを含む。レジスタはフリップ・フロップまたはラッチとして実行する。さらに、監視点エンジン16は、プロセッサ12の高速動作のための監視点をリアルタイムで生成するために配置される。
【0005】
監視点エンジン16のモジュール・セクションは、電力保存のために、異なる機能を独立して動作可能または不能にされる。監視点エンジン16は、電力保存が心配される携帯型あるいは他のポータブル型の電池式装置に組み込まれた集積回路装置に特に有用である。したがって、いくつかの実施例では、監視点エンジン16は、リアルタイム・レスポンス、高速動作および低減した電力消費という利点を組み合わせることができる。
【0006】
命令およびデータのための正確な監視点マッチを生成することによって、デバッギングを促進し、コード・パッチ(code patching)を可能にする。プロセッサ・パイプラインを通る命令の伝播は、エミュレーションおよび例外イベントを識別し、エミュレーション・モード動作または例外処理を適切に提供するために、リアルタイムでモニタされる。監視点マッチは、直接関連のある命令がコミットされる前に、いくつかのサイクルで識別される。重要なことには、例外の取り扱いは、命令がキルされることを可能にして、速度と正確さをもって生じることである、つまり、それらの命令がライトバック・ステージに達する時、終了する。この特徴はコード・パッチを促進させる。このように、高頻度、かつリアルタイムの監視点マッチを提供する能力は、コード開発者に著しい利点を提供することができる。
【0007】
図2は、監視点エンジン16の実行に適した回路を図示するブロック図である。図2中で示されるように、監視点エンジン16は1つ以上の監視点レジスタ18,20を含んでいてもよい。監視点レジスタ18が「WP0」と指定される一方、監視点レジスタ20は「WP1」と指定される。監視点レジスタ18,20は、コード開発者によってデバッグ目的のために所要の監視点アドレスでプログラムされるメモリ・マップド・レジスタであってもよい。図2では、監視点レジスタ18,20はフリップ・フロップによって表わされる。ある実施例において、監視点エンジン16は、複数の命令およびデータ・アドレスおよび複数のアドレス・レンジ上でマッチングを可能にする6つの監視点レジスタを含むことができる。
【0008】
監視点ステータス・レジスタ(図示せず)は、監視点マッチを記録する。監視点命令アドレス制御レジスタおよび監視点データ・アドレス制御レジスタ(図示せず)は、特定の監視点マッチがエミュレーション・イベントまたは例外イベントを生成すべきかどうか明示する。コード・パッチ、あるいは古いコードを交換することは、古いコードのスタート番地を監視点レジスタのうちの1つに書き、例外を引き起こさせるために制御レジスタのうちの1つに対応するビットを設定することにより行われる。例外サービス・ルーチンにおいて、ステータス・レジスタが読み込まれる。一般に、命令がライトバックを行なうとき、それはキルされる。そのポイントで、例外ルーチンは別の場所にある命令にジャンプさせる。その場所の命令が実行される。その後、プログラムはライトバック中でキルされた命令の直後の命令に戻る。このように、新しいコードは、コード・パッチを提供して、キルされた命令の代わりに実行される。
【0009】
監視点レジスタ18,20に、直接マッチ監視点またはレンジ境界監視点のいずれかをロードする。直接マッチ監視点は、監視点エンジン16が監視点マッチを生成する命令またはデータのためのメモリ・アドレスである。レンジ境界監視点は、監視点エンジン16が監視点マッチを提供するアドレスの境界の1つを定義する命令またはデータのためのメモリ・アドレスである。
【0010】
直接マッチに対して、監視点アドレスは監視点レジスタ18,20に独立してロードされる。レンジ・マッチについては、監視点レジスタ18および監視点レジスタ20にロードされた監視点アドレスの双方は、マッチのためのアドレスのレンジを定義するが、共に使用される。直接およびレンジ境界監視点アドレスは、監視点レジスタ18,20へ所望のようにプログラムすることができる。
【0011】
監視点エンジン16は、さらにマルチプレクサ22,24,26,28、および比較器30,32,34,36を含む。マルチプレクサ22,26は、提供される現在の命令もしくはデータ・アドレス、または一般に多重のビット値である「0」のいずれかを選択する。アドレスは、例としての目的のためにプログラム・カウンタによって提供される命令アドレス(IA)として図2に示される。図1中のアドレスは、実行ステージ、例えばEX1、に対して局所的である。マルチプレクサ24,28は、それぞれの監視点レジスタ18,20にロードされた監視点アドレス、または一般に多重のビット値である「1」もしくは他のゼロでない値のいずれかを選択する。マルチプレクサ22,24の出力は、比較器30,32に加えられる。同様に、マルチプレクサ26,28の出力は、比較器34、36に加えられる。いずれの場合においても、それぞれの比較器30,32,34,36は、1つのマルチプレクサ22,26の出力を、他のマルチプレクサ24,28の出力と比較する。
【0012】
マルチプレクサ22,24,26,28は、監視点レジスタ18,20の一方または両方が電力保存のために不能になる場合に、比較器回路を安定させるために提供される。単一の直接マッチの監視点だけがモニタされる場合では、例えば、監視点レジスタ18,20の1つを不能にしてもよい。これは、特に電池式装置に対して、電力保存の見地から非常に有利である。過度の電力消費を回避して、特に監視点エンジン16の一部または全てを、必要でないとき、選択的に不能にしてもよい。監視点のモニタリングが必要とされない場合、インクルーシブ・イネーブル・ビットは、監視点回路に関連する全てのフリップ・フロップおよびラッチをディセーブルするためにリセットされる。
【0013】
WP0イネーブル/ディセーブル制御線は、マルチプレクサ22,24の両方に結合される。WP1イネーブル/ディセーブル制御線は、マルチプレクサ26,28の両方に結合される。監視点レジスタ18がイネーブルにならない場合、マルチプレクサ22,24はWP0ディセーブル信号を受け取り、比較器30,32に、それぞれ、マルチ・ビット「0」および「1」を伝播する。もしそうでない場合、比較器30,32は、比較のための命令アドレス(IA)およびそれぞれの監視点アドレスを受け取る。再び、命令アドレスが例の目的のために参照される。他の例では、アドレスはデータ・アドレスである。マルチプレクサ26,28は、監視点レジスタ20をディセーブルする場合のWP1ディセーブル信号に応答して、同様の方法で動作する。比較器30,32,34、46がトグルしない場合、その比較器に結合された下流にあるロジックの残りのほとんどは、さらに電力消費の著しい削減のために動作しない。
【0014】
通常の動作では、比較器30,34は、監視点レジスタ18,20の監視点アドレスとマルチプレクサ22、26によって提供される現在のアドレスと間の直接のマッチをそれぞれモニタする。換言すれば、比較器30,34は、監視点アドレスおよび命令アドレスが互いに等しいかどうか決める。レジスタ18からの監視点アドレスが命令アドレスと等しい場合、比較器30は、監視点マッチ・ジェネレータの一部を形成する付加的な監視点論理回路にマルチ・ビット「1」を伝播する。比較器34は同様の方法で動作する。
【0015】
比較器32は、レジスタ18中の監視点アドレスが命令アドレス未満かどうかを決める。この場合、レジスタ18中の監視点アドレスは下限アドレスとしてレンジ・マッチに使用してもよい。比較器36は、レジスタ20中の監視点アドレスが命令アドレス以上であるかどうか決める。この場合、レジスタ20中の監視点アドレスは上限アドレスとしてレンジ・マッチに使用してもよい。各比較器32,36に監視点マッチがある場合、命令アドレスは、レジスタ18,20によって指定されたレンジ内にある。この場合、比較器32,36は、追加の論理回路へ「1」を伝播する。
【0016】
図示された実施例では、比較器30の出力はANDゲート38に結合される一方で、比較器32の出力は、ANDゲート40およびORゲート42の反転入力に結合される。比較器34の出力はANDゲート44に結合される一方で、比較器36の出力はANDゲート40およびORゲート42の反転入力に結合される。ANDゲート38,44は、レンジ・イネーブル信号を受け取る反転入力を有する。事実、比較器30,34が直接の監視点アドレス・マッチを示し、かつ監視点エンジン16がレンジ・モード内で動作していない、つまりANDゲート38,44が「NOT RANGE(範囲外)」を受け取る場合、ANDゲート38,44は「1」を伝播する。
【0017】
ANDゲート40入力の出力は、命令アドレスが監視点レジスタ18,20にロードした監視点レンジの境界によって定義されるインクルーシブ・レンジ内にあるかどうか決める別のANDゲート46に提供される。ANDゲート46は、入力として、ANDゲート40の出力、監視点エンジン16がレンジ・モードであることを示すレンジ・イネーブル信号、およびレンジ・モードがインクルーシブであること、つまり、監視点エンジンが監視点レジスタ18,20中にロードされた2つの監視点レンジの境界間にあるアドレスにマッチしていることを示すインクルーシブ信号を受け取る。
【0018】
ORゲート42は、比較器32,36の出力を反転入力で受信して、エクスクルーシブ・レンジを定義するために動作する。ORゲート42の「1」である出力は、監視点レジスタ18中の監視点アドレスが命令アドレス未満であるか、あるいは監視点レジスタ20中の監視点アドレスが命令アドレス以上でないことを示す。ORゲート42の出力はANDゲート48に供給し、それはさらに反転入力でディセーブル信号を受け取る。ディセーブル信号は、エクスクルーシブ・レンジ・モードがイネーブルであるかディセーブルであるかを示す。したがって、ディセーブル信号が低であり、比較器32,36の出力のうち1つが低であるとき、ORゲート42およびANDゲート48は「1」を伝播する。
【0019】
ANDゲート48の出力は別のANDゲート50に供給する。ANDゲート50は、追加の入力として、レンジ・イネーブル信号およびエクスクルーシブ・レンジ・イネーブル信号を受信する。レンジ・イネーブル信号は、監視点エンジン16がレンジ・モードであることを示す一方で、エクスクルーシブ信号は、レンジ・モードがエクスクルーシブであることを示す。換言すれば、監視点エンジン16が、監視点レジスタ18,20にロードされたレンジの境界監視点によって定義されるレンジの外部にあるアドレスに一致するモードである。エクスクルーシブ信号が高の場合、レンジ信号は高であり、また、ANDゲート48の出力は高となり、ANDゲート50は「1」をORゲート52へ伝える。
【0020】
ORゲート52は、入力として、インクルーシブ・レンジのANDゲート46、エクスクルーシブ・レンジのANDゲート50およびダイレクト・マッチのANDゲート38の出力を受信する。ORゲート52への入力のうちのいずれかが高の場合、「1」をANDゲート54に出力する。図2に示される論理回路は、主にプロセッサのパイプラインにおける第1の実行ステージ内で動作する。図示のように、そのステージは「EX1」ステージとして示される。命令がパイプラインの前でキルまたはストールされた場合、そのイベントは、図2の論理回路によって決定される監視点マッチを伝える前に処理される。
【0021】
この目的のために、ANDゲート54は、入力として、反転キル信号(inverted Kill signal)、反転ストール信号(inverted Stall signal)および有効信号(Valid signal)を含む。キル信号は、特にそのパイプライン・ステージ中の命令がキル(消去)されたことを示す。ストール信号は、特にそのパイプライン・ステージ中の命令がストール(停止)されたことを示す。有効信号は、現在の命令が有効であることを示す。ANDゲート54が、キルされていなく、ストールもされていなく、かつ有効である指示の組み合わせとともにORゲート52からのマッチ指示を受け取る場合、「1」を監視点エンジン16の次のステージへ伝える。そうでない場合、ANDゲート54は「0」を生成する。
【0022】
ANDゲート54によって出力される「1」は、そのときどの監視点モードが監視点エンジン16に適用可能であるかに依存して、インクルーシブ・レンジのマッチ、エクスクルーシブ・レンジのマッチまたは直接のマッチのいずれかがあったことを示す。ANDゲート54によって検出されたインクルーシブおよびエクスクルーシブ・レンジのマッチは、監視点レジスタ18,20にロードされた監視点アドレスに関連して作成される。ANDゲート54によって検出された直接マッチは、監視点レジスタ18中にロードされた監視点アドレスに関連して作成される。
【0023】
ANDゲート54に類似するANDゲート56は、監視点レジスタ20にロードされた監視点アドレス上の直接のマッチを検出し表示するために提供される。ANDゲート56は、入力として、ANDゲート44の出力、反転キル信号、反転ストール信号および有効信号を受け取る。ANDゲート44の出力が高で、ANDゲート54がキル信号もストール信号も受け取らず、かつ有効信号を受け取る場合、「1」を監視点エンジン16の次のステージへ伝える。このように、ANDゲート56は、監視点レジスタ20にロードされた監視点アドレス上の直接アドレス・マッチを示す。
【0024】
図3は、監視点を生成するための追加の回路を図示する概要図である。図3中の点線の境界によって示されるように、図3の回路は、図2中で図示されたステージに続く監視点エンジン16の次のステージを示し、プロセッサ・パイプラインの第2(EX2)、第3(EX3)およびライトバック(WB)ステージにまたがる。図3の例では、レジスタ58は、例えばフリップ・フロップであるが、図2のANDゲート54の出力を保持する。図3中で示される回路に本質的に類似する回路が、図2のANDゲート56の出力を処理するために提供されてもよい。
【0025】
図3の回路の重要な側面の1つは、ダイナミック・カウンタ・ロジックであり、それはプロセッサのパイプライン実行ステージ内における例外を正確に処理することができる。例えば、監視点マッチがEX2に伝達されるが、しかしEX3中のパイプラインの前方にある命令がキルされている場合、監視点エンジン16は、監視点アドレス上で一致したキルされた命令を補償するためにカウンタを再調整する。この目的のために、レジスタ58の出力は、カウンタ回路および監視点論理の双方へ供給する。特に、レジスタ58は、カウンタ論理回路60へ供給し、それは、参照番号62で示されるように、それはカウンタ制御器として動作し、かつ追加の入力としてカウント調整信号を受信する。
【0026】
カウンタ論理回路60はマルチプレクサ64を制御し、加算器66に供給される−1、またはカウンタ調整量のいずれかを選択する。加算器66は、一連のマルチプレクサ68、70およびカウント・レジスタ72によって生成されたカウンタ値をインクリメントまたはデクリメントさせる役割を果たす。1だけデクリメントさせること、つまり、−1を加えることは、カウントされる特定のイベントが検出されるときの通常の動作である。カウンタは、エミュレーションまたは例外イベント・ハンドラをトリガする前に特定の監視点の連続発生を計数可能にするために提供される。特に、EX1ステージに検出された監視点マッチの発生は、後のステージの中で、つまりEX2ステージの中で計数される。
【0027】
カウント・レジスタ72の出力は、参照番号74によって示されるように、加算器66およびマルチプレクサ68の入力の1つにフィード・バックされる。マルチプレクサ68は、他の入力として加算器66の出力を受信する。マルチプレクサ70は、所望のカウント値をローディングするために提供される。マルチプレクサ70は、カウント・イネーブル信号に応答し、マルチプレクサ68によって生成されたカウント値またはアプリケーション開発者によってメモリにロードされた最初のカウント値のいずれかを選択する。換言すれば、マルチプレクサ70は、イベント・トリガを生成する前に、イベントが検出されるべき時間数を表わす最初のカウント値のエントリーを許容する。動作において、その最初のカウント値は加算器66によってデクリメントさせられる。
【0028】
カウント更新信号は、マルチプレクサ68が加算器66の出力またはレジスタ72の出力を選択するべきかどうか示す。したがって、カウント更新信号は、カウント値が更新されるか保持されるべきかどうか示す。加算器66の出力がマルチプレクサ68によって選択される場合、既存のカウント値は加算器に与えられるマルチプレクサ64の出力に依存して、デクリメントされるかインクリメントされる。レジスタ72の出力がマルチプレクサ68によって選択される場合、インクリメントされまたはデクリメントされるのではなく、既存のカウント値が保持される。
【0029】
カウンタ回路は、特定のイベント、例えば、直接マッチあるいは範囲マッチの所望の発生回数を追跡する。命令が監視点アドレス・マッチを生成し、カウンタをデクリメントさせる結果に帰着するが、EX3ステージの中でキルされる場合、そのカウンタ値は、一致した命令が数えられたが続いてキルされたという事実を補うために減らされたのではなくむしろ、1だけインクリメントされる。命令が監視点アドレス・マッチを生成し、カウンタをデクリメントする結果に帰着するが、ライトバック・ステージの中でキルされる場合、そのカウンタ値は、減らされたのではなくむしろ、1だけインクリメントされる。監視点アドレス・マッチを生成する命令がEX3およびライトバック・ステージでキルされる場合、このカウンタ値は減らされたのではなくむしろ、2だけインクリメントされる。そのカウント値が調節される量を決定するためのロジックは、レジスタ76、ANDゲート78、レジスタ80、論理回路82およびレジスタ84によって提供される。
【0030】
レジスタ76は、ANDゲート75から、有効なマッチがEX2ステージで検出されたかどうか示す入力を受け取る。有効なマッチは、監視点アドレス・マッチを生成した適切な命令が現在のパイプライン・ステージ中で有効であり、キルされず、ストールされなかったことを意味する。レジスタ76の出力は、ANDゲート78および論理回路82に送られる。ANDゲート78はまた、入力として、マッチした命令がEX3ステージにおいてキルされず、ストールされず、および有効であるかどうかの表示を受け取る。非キル、非ストール、および有効信号は、論理的に各パイプライン・ステージに対し異なった信号である。マッチがあり、マッチした命令がEX3ステージにおいてキルされず、ストールされず、かつ有効である場合、ANDゲート78の出力はレジスタ80に供給され、それは、ライトバック(WB)ステージに値を出力する。
【0031】
レジスタ80の出力はレジスタ76の出力と共に論理回路82に供給される。次に、論理回路82はカウンタ調整量を生成し、レジスタ84の入力を駆動する。レジスタ76の出力は、EX3ステージにおいて、命令がキルされ、ストールされ、または有効でなくなったかどうか示す。レジスタ80の出力は、ライトバック・ステージにおいて、命令がキルされ、ストールされ、または有効でなくなったかどうか示す。これらの入力に基づいて、論理回路82は、上記に示されたカウンタ調整量、つまり1または2を生成し、デクリメント動作のための補償を行なう。レジスタ84はマルチプレクサ64にカウンタ調整量を提供する。カウンタ調整が必要なとき、論理回路82はさらに、マルチプレクサ64に適用されるカウント調整信号を制御信号として生成し、マルチプレクサ64へ−1、0の入力ではなくレジスタ84によって生成されたカウンタ調整量を選択する。カウント調整信号は、単に命令がEX3またはライトバック中でキルされたかどうか示す。
【0032】
論理回路82は、パイプラインの後の実行ステージにおいてマッチした命令のキルに応答してカウンタ調整量を生成する。このように、特定のマッチの反復回数を追跡するカウンタ値は、計数されるが後にキルされるマッチのために補償され得る。論理回路82の出力は、2つの条件およびこれらの条件の組合せを本質的に追跡する。
【0033】
監視点アドレス・マッチを生成した命令がEX3ステージ中でキルされたとき、第1の条件が存在する。監視点アドレス・マッチを生成した命令がライトバック・ステージ中でキルされたとき、第2の条件が存在する。ある場合には、両方の条件が存在することもある。論理回路82は、レジスタ76およびレジスタ80の出力に基づいた条件を識別する。レジスタ76の出力は、EX3ステージの有効なマッチを示す一方で、レジスタ80の出力は、命令がライトバック・ステージの中でキルされたかストールされたかどうか示す。
【0034】
第2ではなく第1の条件の存在に対して、論理回路82は、カウンタ調整量として「1」の値を生成する。このように、加算器66は、既存のカウンタ値に「1」を加え、パイプライン中の1つ前のステージでキルされた命令に対し補償する。両方のステージ(EX3とWB)でキルされた命令が存在するがそれらのステージの監視点アドレス・マッチがない場合、0がカウンタに加えられる。
【0035】
第1ではなく第2の条件の存在に対して、論理回路82は、カウンタ調整量として「1」の値を生成する。このように、加算器66は、既存のカウンタ値に「1」を加え、WBステージでキルされた命令を補償して、カウンタ値を減らす代わりにカウンタ値をインクリメントさせる。
【0036】
第1と第2の両方の条件が存在する場合、論理回路82は、カウンタ調整量として「2」の値を生成する。このように、加算器66は、既存のカウンタ値に「2」を加え、EX3ステージおよび続くライトバック(WB)ステージで監視点アドレス・マッチを生成したキルされた命令を補償して、カウンタ値を減らす代わりに「2」だけカウンタ値をインクリメントさせる。
【0037】
ANDゲート86は、レジスタ58の出力、加算器66の最上位ビットおよび反転入力でレジスタ72の最上位ビット出力を受け取る。ANDゲート86は、カウンタがEMUまたはEXCイベントの生成の条件としてロールオーバしたかどうかを追跡し、その故に、単にレジスタ72および加算器66の最上位ビットの検査を要求のみである。レジスタ58の出力およびANDゲート86の出力は、マルチプレクサ88によって受け取られる。レジスタ58の出力が監視点マッチを示すとき、レジスタ72中の現在のカウンタ値は「1」に減らされ、また、加算器66の出力は「1」となり(現在のサイクルでカウント調整を示さずに)、ANDゲート86はマルチプレクサ88に「1」を出力する。
【0038】
カウント・イネーブル信号は、開発者が監視点のための多数の発生を指定したか、または単一の発生がイベントのトリガに十分かどうかを示すことがある。このように、カウント・イネーブル信号は、マルチプレクサ88がレジスタ58の出力またはANDゲート86の出力のいずれを選択すべきかを示し、それ故、第1番目の発生または第n番目の発生でそれぞれトリガすべきかどうか示す。マルチプレクサ88は、監視点のための発生回数を指定するトリガ回路の一部を形成してもよい。
【0039】
マルチプレクサ88の出力は、エミュレーション(EMU)イベント生成回路90および例外(EXC)イベント生成回路92を駆動することができる。EMU生成回路90は、パイプラインのEX3ステージ中でエミュレーション要求(EMU REQ)を生成するレジスタ94を駆動する。EXC生成回路92は、パイプラインのEX3ステージ中で例外要求(EXC REQ)を生成するレジスタ96を駆動する。EMUおよびEXC生成回路90,92は、図4を参照して以下より詳しくに説明される。
【0040】
エミュレーション・イベントによって、プロセッサ12はエミュレーション・モードに入力する。エミュレーション・モードでは、命令は、集積回路装置10中で提供されるJTAGインターフェースから読むことができる。JTAGインターフェースは、IEEE標準規格1149.1(IEEE規格1149.1−1990、1990に公表され、「Test Access Port and Boundary-Scan Architecture」と表題される)によって定義される。エミュレーション・イベントが発生すると、エミュレーション・イベントのタイプ、つまり監視点マッチがステータス・レジスタに記録される。選択的に、監視点マッチは、プロセッサ12にエミュレーション・イベントではなく例外を出させることができる。例外イベントについては、プロセッサ12は例外ハンドラにトラップをかける。コンフィギュレーション・ビットは、監視点命令アドレス制御レジスタおよび監視点データ・アドレス制御レジスタ中にセットされ、特定のイベントがエミュレーション・イベントまたは例外イベントを生成するべきかどうかを明示する。
【0041】
図4は、監視点エンジンを実行するのにふさわしい付加的な回路を図示する他の回路図である。特に、図4はEMUイベント生成回路90およびEXCイベント生成回路92をより詳しく図示する。図3のANDゲート86およびマルチプレクサ88も図4中に図示される。図4に示されるように、EMUイベント生成回路90は、入力として、EMUイネーブル信号および監視点イベントの識別を示すマルチプレクサ88の出力を受け取るANDゲート91を含む。EMUイネーブル信号は、所望のイベントのタイプがエミュレーションであることを示す。ANDゲート91の出力は、ORゲート93,95を駆動する。
【0042】
集積回路装置10は、図2中で示される回路のように、監視点比較器の複数の対を含んでいてもよい。ORゲート93は、ANDゲート91の出力に加えて、監視点エンジンのすべての出力を受け取る。多様な監視点エンジンの比較器対によって生成されるように、ORゲート95は、ANDゲート91の出力に加えて、命令に対するすべての監視点アドレス・マッチの指示を受け取る。多様な監視点エンジンの比較器対によって生成されるように、追加のORゲート97はデータに対するすべての監視点アドレス・マッチの指示を受け取る。このように、ORゲート93,95,97は、監視点アドレス・マッチの指示のために、集積回路装置10中の全監視点エンジンの出力をモニタする。一般に、データのマッチのみがEMUイベントの生成を導く。
【0043】
ANDゲート98は、一方の入力にゲート93の出力を、反転入力に参照番号102によって示される命令およびデータのマッチ・イネーブル信号を受け取る。命令およびデータ・マッチ・イネーブル信号が高の場合、ANDゲート98は事実上不能になり、低の出力を生成する。しかしながら、ORゲート95およびORゲート97が両方とも高で、それ故、同じサイクルで、命令マッチおよびデータ・マッチの両方を示す場合、ANDゲート100は高の出力を生成する。したがって、命令およびデータ・ッチ・イネーブル信号は、命令マッチおよびデータ・ッチの両方があるとき、装置10をEMUイベントが生成されるだけのモードに置く。命令およびデータ・マッチ・イネーブル信号が低の場合、そのときORゲート93の出力によって示されるように、いずれかの監視点アドレス・マッチはEMUイベントの生成に対して十分となる。事実、EMU生成回路90は、a)集積回路装置がエミュレーション・モードあるのかどうか、b)いずれかのデータまたは命令のマッチがあるのかどうかを決定する。
【0044】
再び、命令およびデータ・マッチ・イネーブル信号が高の場合、ORゲート95,97の出力が、両方とも高というイベントでANDゲート100を高で駆動している間、ORゲート93の出力は無視される。命令およびデータ・マッチ・イネーブル信号が低の場合、ORゲート93の出力だけが考慮される。いずれの場合においても、適切な出力、つまりANDゲート98または100からの出力が高の場合、ゲート104はエミュレーション要求を生成するために高となる。
【0045】
例外生成回路92に対して、EMUイネーブル信号およびマルチプレクサ88の出力はANDゲート106に入力を提供する。EMUイネーブル信号は、ANDゲート106の反転入力で受信される。マルチプレクサ88の出力は、監視点比較器対の1つに対して監視点マッチ・ステータスを示し、このようにEXCイベント生成回路92への多くの入力の1つである。ANDゲート106は、ORゲート108の入力の1つを駆動する。ORゲート108への他の入力は、集積回路装置10中で提供される他の監視点比較器対によって生成されたさまざまな命令およびデータ監視点マッチである。ORゲート108の出力はレジスタ96へ供給される。ゲート108の出力が例外マッチを示す場合、レジスタ96は例外要求の生成を駆動する「1」を出力する。
【0046】
図5は、監視点エンジンの実行にふさわしい付加的な回路を図示する他の回路図である。図5は、特に監視点ステータス・レジスタ(「WP Stat」)の保守を図示する。監視点ステータス・レジスタWP Statは、監視点のステータスをモニタする。このレジスタはあらゆるクロック・サイクルで更新されてもよい。監視点または監視点のレンジが一致(マッチ)するとき、WP Statレジスタは監視点のソースをラッチする。これは、監視点およびソースが一致した識別を許容する。
【0047】
図5中で示されるように、ANDゲート114は例外の指示またはエミュレーション・イベントのいずれか、および関連するステージにおいてそのイベントが有効でかつキルでもストールでもない指示を受け取る。ANDゲート114の出力は2つのフリップ・フロップ116,118を駆動する。中間のANDゲート117は、EX3中でマッチした命令がキルされず、ストールもされず、有効であるかどうかを決める。フロップ118の出力は、ORゲート120の1つの入力を駆動する。フロップ118の出力またはWP Statの内容が高であるイベントで、ORゲート120の出力は高となる。
【0048】
マルチプレクサ122は、入力として、ORゲート120の出力およびANDゲート124の出力を受け取る。ANDゲート124は、入力として、WP Statの内容およびWP Statクリア信号を反転入力で受け取る。WP Statクリア信号は、WP Stat値が0にセットされるべきかどうか示す。もしそうであるならば、ANDゲート124の出力は低である。マルチプレクサ122はEXC Taken/EMU Taken制御線によって制御される。EXCまたはEMUのイベントが得られることになる場合、マルチプレクサ122はORゲート120の出力を選択する。EXCまたはEMUのイベントが得ることができない場合、マルチプレクサ122はANDゲート124の出力を選択する。マルチプレクサ122はレジスタ126を駆動し、それはWP Statレジスタの内容を表わす。
【0049】
図6は、監視点マッチの生成を示すフローチャートである。現在の命令またはデータ・アドレスを第1および第2監視点アドレスWP0およびWP1と比較して(128)、プロセスはインクルーシブ・レンジが可能になるかどうかを決める(130)。そうならば、そのプロセスは、アドレスが第1監視点アドレスWP0より大きく、かつ第2監視点アドレスWP1未満か(または以下か)どうかを決める(132)。そうでなければ、監視点マッチがないと判断する(134)。そうならば、プロセスは、現在のパイプライン・ステージにおいて関連する命令が有効で、キルもストールもされていないかどうかを決定する(136)。そうならば、監視点マッチが生成される(138)。
【0050】
インクルーシブ・レンジが可能にならない場合、プロセスはエクスクルーシブ・レンジが可能になるかどうかを決める(140)。もしそうならば、そのプロセスは、第1監視点WP0がそのアドレスより大きいかどうか、あるいはそのアドレスが第2監視点WP1より(または以上)大きいかどうか決める(142)。どちらかが正しい場合、そのプロセスは関連するな命令が有効で、キルされず、またストールもされなかったかどうかを決める(136)。もしそうならば、監視点マッチが示される(138)。もしどちらの条件(142)も正しくない場合、監視点マッチ144はない。
【0051】
インクルーシブ・レンジ(130)もエクスクルーシブ・レンジ(140)も可能にならない場合、監視点WP0およびWP1を備えた直接マッチが考慮される(146,148)。どちらも直接の監視点マッチを生成しない場合、その指示が行われる(150)。監視点WP0,WP1のいずれかが直接マッチを生成する場合、そのプロセスは関連する命令は有効で、キルもストールもされていないかどうかを決める(136)。この条件が正しい場合、そのプロセスは監視点マッチを識別する(138)。
【0052】
本発明の様々な実施例が記述された。これらおよび他の実施例は、次の請求項の範囲内にある。
【図面の簡単な説明】
【図1】 パイプライン方式のプロセッサおよび監視点エンジンを有する集積回路を図示するブロック図である。
【図2】 監視点エンジンを実行するのに適した回路を図示する回路図である。
【図3】 監視点エンジンを実行するのに適した追加の回路を図示する回路図である。
【図4】 監視点エンジンを実行するのに適した追加の回路を図示する別の回路図である。
【図5】 監視点エンジンを実行するのに適した追加の回路を図示する別の回路図である。
【図6】 監視点マッチの生成を図示するフローチャートである。
Claims (34)
- 監視点アドレスを格納するために形成された監視点レジスタと、
前記監視点アドレスをプロセッサ・パイプラインの第1ステージに送られた命令に関連するプログラム・アドレスと比較するために形成された比較器と、
前記プログラム・アドレスが前記監視点アドレスと等しいとき、監視点マッチを生成するために形成された監視点生成器と、
監視点マッチの数を表わすカウント値を前記プロセッサ・パイプラインの第2ステージに生成するために形成されたカウンタと、
から構成されることを特徴とする装置。 - 前記カウント値がトリガ閾値を越える場合、要求を引き起こすために形成されたトリガ回路と、
前記監視点マッチの1つに関連する前記命令の1つが前記パイプライン中の後のステージでキルされまたはストールされる場合、前記カウント値を調節するために形成された制御器と、
をさらに含むことを特徴とする請求項1記載の装置。 - 前記パイプラインの第2ステージが、前記パイプラインの第1ステージより後にあることを特徴とする請求項2記載の装置。
- 前記プログラム・アドレスが、命令アドレスまたはデータ・アドレスであることを特徴とする請求項2記載の装置。
- 前記監視点マッチに関連する予め定められたイベント・タイプに基づいたエミュレーション・イベント処理要求または例外処理要求のいずれかを選択的に生成するために形成されたイベント生成回路をさらに含むことを特徴とする請求項2記載の装置。
- 前記カウンタは各監視点マッチに対する初期カウント値をデクリメントさせることにより前記カウント値を生成するために形成され、前記制御器は、前記監視点マッチの1つと関連する命令の1つがパイプライン中の後のステージでキルされまたはストールされる場合、デクリメントする機能を補償することにより、前記カウント値を調節するために形成されることを特徴とする請求項2記載の装置。
- 前記監視点レジスタは第1監視点アドレスをロードした第1監視点レジスタおよび第2監視点アドレスをロードした第2監視点レジスタを含み、前記比較器は前記第1および第2監視点アドレスを前記プロセッサ・パイプラインに送られた命令に関連するプログラム・アドレスと比較するためにさらに形成され、また、前記プログラム・アドレスが前記第1および第2監視点アドレスによって定義されたレンジにある場合、前記監視点生成器は監視点マッチを生成するためにさらに形成されることを特徴とする請求項2記載の装置。
- 前記レンジは、前記第1および第2監視点アドレス間に広がるインクルーシブ・レンジ、または、前記第1および第2監視点アドレス間に広がるレンジの外側のエクスクルーシブ・レンジであることを特徴とする請求項7記載の装置。
- 電力を保存するために前記監視点レジスタの1つを選択的に不能にするために形成された回路をさらに含むことを特徴とする請求項7記載の装置。
- 前記比較器は、前記第1監視点アドレスを前記プログラム・アドレスと比較するために形成された第1比較器、および、前記第2監視点アドレスを前記プログラム・アドレスと比較するために形成された第2比較器を含み、監視点エンジンは前記第1および第2比較器の少なくとも1つを選択的に不能にし、前記不能にされた比較器の出力を安定させるために形成された回路をさらに含むことを特徴とする請求項7記載の装置。
- 監視点アドレスを、プロセッサ・パイプラインの第1ステージに送られた命令に関連するプログラム・アドレスと比較する段階と、
プログラム・アドレスが前記監視点アドレスと等しい場合、監視点マッチを生成する段階と、
監視点マッチの数を表わすカウント値を前記プロセッサ・パイプラインの第2ステージに生成する段階と、
から構成されることを特徴とする方法。 - 前記カウント値がトリガ閾値を越える場合、要求を生成する段階と、
前記監視点マッチの1つに関連した命令の1つが前記パイプラインの後のステージでキルされまたはストールされる場合、前記カウント値を調節する段階と、
をさらに含むことを特徴とする請求項11記載の方法。 - 前記カウント値を生成する段階は、前記カウント値を前記パイプラインの第1ステージより後にある前記パイプラインの第2ステージに生成する段階を含むことを特徴とする請求項12記載の方法。
- 前記要求を生成する段階は、エミュレーション・イベント取扱い要求または例外処理要求を生成する段階を含むことを特徴とする請求項12記載の方法。
- 前記監視点アドレスを前記プログラム・アドレスと比較する段階は、前記監視点アドレスを命令アドレスまたはデータ・アドレスと比較する段階を含むことを特徴とする請求項12記載の方法。
- 前記監視点マッチに関連した予め定められたイベント・タイプに基づいて、エミュレーション・イベント取扱い要求または例外処理要求のいずれかを選択的に生成する段階をさらに含むことを特徴とする請求項12記載の方法。
- 第1および第2監視点レジスタ中の第1および第2監視点アドレスを指定する段階と、
前記第1および第2監視点アドレスをプロセッサ・パイプラインに送られた命令に関連したプログラム・アドレスと比較する段階と、
前記プログラム・アドレスが第1および第2監視点アドレスによって定義されたレンジにある場合に、監視点マッチを生成する段階をさらに含むことを特徴とする請求項12記載の方法。 - 前記プログラム・アドレスが、前記第1および第2監視点アドレス間に広がるインクルーシブ・レンジ、または、前記第1および第2監視点アドレス間に広がるレンジの外側のエクスクルーシブ・レンジである場合、前記監視点マッチを生成する段階をさらに含むことを特徴とする請求項17記載の方法。
- 電力を保存するために前記第1および第2監視点レジスタの1つを選択的に不能にする段階をさらに含むことを特徴とする請求項17記載の方法。
- フラッシュ・メモリ装置と、
前記フラッシュ・メモリ装置に結合されたパイプライン方式のプロセッサと、
第1監視点アドレスを格納するために形成された第1監視点レジスタと、
第2監視点アドレスを格納するために形成された第2監視点レジスタと、
前記第1および第2監視点アドレスをプロセッサ・パイプラインに送られた命令に関連したプログラム・アドレスと比較するために形成された比較器と、
前記プログラム・アドレスが前記第1および第2監視点アドレスによって定義されたレンジ内にある場合、監視点マッチを生成するために形成された監視点生成器と、
前記監視点生成器によって生成された監視点マッチの数を表わすカウント値を生成するために形成されたカウンタと、
前記カウント値がトリガ閾値を越える場合、要求を引き起こすために形成されたトリガ回路と、
前記監視点マッチの1つに関連した前記命令の1つがパイプライン中の後の実行ステージでキルされまたはストールされる場合、前記カウント値を調節するために形成された制御器と、
から構成されることを特徴とするシステム。 - 前記要求は、エミュレーション・イベント取扱い要求または例外処理要求であることを特徴とする請求項20記載のシステム。
- 監視点アドレスがロードされた監視点レジスタと、
前記監視点アドレスをプロセッサ・パイプラインの第1ステージの命令に関連したプログラム・アドレスと比較するために形成された比較器と、
前記プログラム・アドレスが前記監視点アドレスと等しい場合、監視点マッチを生成するために形成された監視点生成器と、
前記監視点生成器によって生成された監視点マッチの数を表わすカウント値を前記プロセッサ・パイプラインの第2ステージに生成するために形成されたカウンタと、
から構成されることを特徴とする装置。 - 前記カウント値がトリガ閾値を越える場合、要求を引き起こすために形成されたトリガ回路と、
前記監視点マッチの1つに関連した前記命令の1つがパイプライン中の後のステージでキルされまたはストールされる場合、前記カウント値を調節するために形成された制御器と、
を含むことを特徴とする請求項22記載の装置。 - 前記要求は、エミュレーション・イベント取扱い要求または例外処理要求であることを特徴とする請求項22記載の装置。
- 監視点アドレスを指定する段階と、
前記監視点アドレスをプロセッサ・パイプラインの第1ステージの命令に関連したプログラム・アドレスと比較する段階と、
前記プログラム・アドレス前記が監視点アドレスと等しい場合に、監視点マッチを生成する段階と、
監視点マッチの数を表わすカウント値を前記プロセッサ・パイプラインの第2ステージに生成する段階と、
から構成されることを特徴とする方法。 - 前記カウント値がトリガ閾値を越える場合に、要求を生成する段階と、
前記監視点マッチの1つに関連した前記命令の1つが前記パイプライン中の後のステージでキルされまたはストールされる場合、前記カウント値を調節する段階と、
をさらに含むことを特徴とする請求項25記載の方法。 - 監視点アドレスを格納するために適合した監視点レジスタと、
前記監視点アドレスをプロセッサ・パイプラインの第1ステージで送られた命令に関連するプログラム・アドレスと比較する比較器と、
プログラム・アドレスが前記監視点アドレスと等しいとき、監視点マッチを生成する監視点生成器であって、前記監視点レジスタは第1監視点アドレスをロードした第1監視点レジスタおよび第2監視点アドレスをロードした第2監視点レジスタを含み、前記比較器は前記第1および第2監視点アドレスを前記プロセッサ・パイプラインに送られた命令に関連するプログラム・アドレスと比較するために形成され、また、前記プログラム・アドレスが前記第1および第2監視点アドレスによって定義されたレンジ内にある場合、前記監視点生成器は監視点マッチを生成するために形成される、監視点生成器と、
監視点マッチの数を表わすカウント値を前記プロセッサ・パイプラインの第2ステージに生成するカウンタと、
前記カウント値がトリガ閾値を越える場合、要求を引き起こすトリガ回路と、
前記監視点マッチの1つに関連する前記命令の1つが前記パイプライン中の後のステージでキルされまたはストールされる場合、前記カウント値を調節する制御器と、を含む装置であって、
前記レンジは前記第1および第2監視点アドレスの間に広がるインクルーシブ・レンジであるか、または、前記第1および第2監視点アドレスの間に広がるレンジの外側にあるエクスクルーシブ・レンジであることを特徴とする装置。 - 前記監視点マッチに関連する予め定められたイベント・タイプに基づいて、エミュレーション・イベント処理要求または例外処理要求のいずれかを選択的に生成するイベント生成回路をさらに含むことを特徴とする請求項27記載の装置。
- 電力を保存するために前記監視点レジスタの1つを選択的に不能にする回路をさらに含むことを特徴とする請求項27記載の装置。
- 前記比較器は、前記第1監視点アドレスを前記プログラム・アドレスと比較するために形成された第1比較器、および、前記第2監視点アドレスを前記プログラム・アドレスと比較する第2比較器を含み、監視点エンジンは前記第1および第2比較器の少なくとも1つを選択的に不能にし、前記不能にされた比較器の出力を安定させる回路をさらに含むことを特徴とする請求項27記載の装置。
- 監視点アドレスを、プロセッサ・パイプラインの第1ステージに送られた命令に関連するプログラム・アドレスと比較する段階と、
プログラム・アドレスが前記監視点アドレスと等しい場合、監視点マッチを生成する段階と、
監視点マッチの数を表わすカウント値を前記プロセッサ・パイプラインの第2ステージに生成する段階と、
前記カウント値がトリガ閾値を越える場合、要求を生成する段階と、
前記監視点マッチの1つに関連した命令の1つが前記パイプラインの後のステージでキルされまたはストールされる場合、前記カウント値を調節する段階と、
第1および第2監視点レジスタ中の第1および第2監視点アドレスを指定する段階と、
前記第1および第2監視点アドレスをプロセッサ・パイプラインに送られた命令に関連したプログラム・アドレスと比較する段階と、
前記プログラム・アドレスが前記第1および第2監視点アドレスによって定義されたレンジ内にある場合に、監視点マッチを生成する段階と、
前記プログラム・アドレスが、前記第1および第2監視点アドレス間に広がるインクルーシブ・レンジ、または、前記第1および第2監視点アドレス間に広がるレンジの外側にあるエクスクルーシブ・レンジにある場合、前記監視点マッチを生成する段階と
から構成されることを特徴とする方法。 - 前記監視点マッチに関連した予め定められたイベント・タイプに基づいて、エミュレーション・イベント処理要求または例外処理要求のいずれかを選択的に生成する段階をさらに含むことを特徴とする請求項31記載の方法。
- 電力を保存するために前記第1および第2監視点レジスタの1つを選択的に不能にする段階をさらに含むことを特徴とする請求項31記載の方法。
- フラッシュ・メモリ装置と、
前記フラッシュ・メモリ装置に結合されたパイプライン方式のプロセッサと、
第1監視点アドレスを格納するために適合した第1監視点レジスタと、
第2監視点アドレスを格納するために適合した第2監視点レジスタと、
前記第1および第2監視点アドレスをプロセッサ・パイプラインに送られた命令に関連したプログラム・アドレスと比較する比較器と、
前記プログラム・アドレスが前記第1および第2監視点アドレスによって定義されたレンジ内にある場合、監視点マッチを生成する監視点生成器であって、前記レンジが前記第1および第2監視点アドレス間に広がるインクルーシブ・レンジ、または、前記第1および第2監視点アドレス間に広がるレンジの外側にあるエクスクルーシブ・レンジである場合、前記監視点マッチを生成する、監視点生成器と、
前記監視点生成器によって生成された監視点マッチの数を表わすカウント値を生成するカウンタと、
前記カウント値がトリガ閾値を越える場合、要求を引き起こすトリガ回路であって、前記要求はエミュレーション・イベント処理要求または例外処理要求である、トリガ回路と、
前記監視点マッチの1つに関連した前記命令の1つがパイプライン中の後の実行ステージでキルされまたはストールされる場合、前記カウント値を調整する制御器と、
から構成されることを特徴とするシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/739,092 US6829701B2 (en) | 2000-12-15 | 2000-12-15 | Watchpoint engine for a pipelined processor |
PCT/US2001/047621 WO2002048888A2 (en) | 2000-12-15 | 2001-12-10 | Watchpoint engine for a pipelined processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004516550A JP2004516550A (ja) | 2004-06-03 |
JP3708521B2 true JP3708521B2 (ja) | 2005-10-19 |
Family
ID=24970785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002550532A Expired - Lifetime JP3708521B2 (ja) | 2000-12-15 | 2001-12-10 | パイプライン方式のプロセッサのための監視点エンジン |
Country Status (6)
Country | Link |
---|---|
US (1) | US6829701B2 (ja) |
JP (1) | JP3708521B2 (ja) |
KR (1) | KR100571732B1 (ja) |
CN (1) | CN1306411C (ja) |
TW (1) | TWI235949B (ja) |
WO (1) | WO2002048888A2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2362968B (en) * | 1999-12-23 | 2003-12-10 | St Microelectronics Sa | Computer system with debug facility |
TWI223138B (en) * | 2001-07-11 | 2004-11-01 | Faraday Tech Corp | Device and method for detecting micro-processor execution performance |
US7065691B2 (en) * | 2003-05-19 | 2006-06-20 | Hewlett-Packard Development Company, L.P. | Apparatus and method for saving precise system state following exceptions |
US7711914B2 (en) | 2005-06-28 | 2010-05-04 | Hewlett-Packard Development Company, L.P. | Debugging using virtual watchpoints |
CN101192193A (zh) * | 2006-11-27 | 2008-06-04 | 国际商业机器公司 | 用于实现观察点的方法和系统 |
US7783867B2 (en) * | 2007-02-01 | 2010-08-24 | International Business Machines Corporation | Controlling instruction execution in a processing environment |
US7783865B2 (en) * | 2007-08-01 | 2010-08-24 | International Business Machines Corporation | Conditional data watchpoint management |
US8407457B2 (en) | 2007-09-28 | 2013-03-26 | Freescale Semiconductor, Inc. | System and method for monitoring debug events |
US8042002B2 (en) | 2008-01-18 | 2011-10-18 | Freescale Semiconductor, Inc. | Method and apparatus for handling shared hardware and software debug resource events in a data processing system |
CN116775417B (zh) * | 2023-08-16 | 2023-11-07 | 无锡国芯微高新技术有限公司 | Risc-v处理器运行监测和行为追踪系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US531894A (en) * | 1895-01-01 | Alfred ashby | ||
JP2505950B2 (ja) | 1991-05-13 | 1996-06-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | ハ―ドウェア支援ブレ―クポイント・システム |
US5651124A (en) * | 1995-02-14 | 1997-07-22 | Hal Computer Systems, Inc. | Processor structure and method for aggressively scheduling long latency instructions including load/store instructions while maintaining precise state |
EP0992905A3 (en) | 1998-10-06 | 2002-11-27 | Texas Instruments Inc. | Cache miss benchmarking |
US6477683B1 (en) * | 1999-02-05 | 2002-11-05 | Tensilica, Inc. | Automated processor generation system for designing a configurable processor and method for the same |
US6557119B1 (en) * | 1999-10-01 | 2003-04-29 | Stmicroelectronics Limited | Microcomputer debug architecture and method |
US6349371B1 (en) * | 1999-10-01 | 2002-02-19 | Stmicroelectronics Ltd. | Circuit for storing information |
-
2000
- 2000-12-15 US US09/739,092 patent/US6829701B2/en not_active Expired - Lifetime
-
2001
- 2001-12-10 JP JP2002550532A patent/JP3708521B2/ja not_active Expired - Lifetime
- 2001-12-10 KR KR1020037007896A patent/KR100571732B1/ko active IP Right Grant
- 2001-12-10 CN CNB018207065A patent/CN1306411C/zh not_active Expired - Fee Related
- 2001-12-10 WO PCT/US2001/047621 patent/WO2002048888A2/en active IP Right Grant
- 2001-12-14 TW TW090131069A patent/TWI235949B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JP2004516550A (ja) | 2004-06-03 |
KR20030090613A (ko) | 2003-11-28 |
WO2002048888A3 (en) | 2003-09-18 |
CN1555526A (zh) | 2004-12-15 |
WO2002048888A9 (en) | 2003-04-17 |
TWI235949B (en) | 2005-07-11 |
KR100571732B1 (ko) | 2006-04-18 |
WO2002048888A2 (en) | 2002-06-20 |
US20020078329A1 (en) | 2002-06-20 |
CN1306411C (zh) | 2007-03-21 |
US6829701B2 (en) | 2004-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8060730B2 (en) | Selective MISR data accumulation during exception processing | |
US7043416B1 (en) | System and method for state restoration in a diagnostic module for a high-speed microprocessor | |
US6925584B2 (en) | Systems and methods for testing processors | |
US6857084B1 (en) | Multiprocessor system and method for simultaneously placing all processors into debug mode | |
US5371894A (en) | Off-chip breakpoint system for a pipelined microprocessor | |
US5675729A (en) | Method and apparatus for performing on-chip measurement on a component | |
US7496788B1 (en) | Watchdog monitoring for unit status reporting | |
US7865704B2 (en) | Selective instruction breakpoint generation based on a count of instruction source events | |
KR20100081130A (ko) | 시스템 온 칩 및 그 구동 방법 | |
US8370684B2 (en) | Microprocessor with system-robust self-reset capability | |
US11803455B2 (en) | Processor with debug pipeline | |
GB2329049A (en) | A debugger interface unit for identifying selected exceptions | |
JP3708521B2 (ja) | パイプライン方式のプロセッサのための監視点エンジン | |
US8185772B2 (en) | Determining execution times of commands | |
JPH10333939A (ja) | マイクロプロセッサ | |
KR20090095500A (ko) | 다수의 클록 도메인 사이의 결정을 촉진하는 장치, 시스템,방법 및 머신 판독 가능한 매체 | |
US7100027B1 (en) | System and method for reproducing system executions using a replay handler | |
US6990569B2 (en) | Handling problematic events in a data processing apparatus | |
US20050210327A1 (en) | Diagnostic mechanisms within multi processing systems | |
US7404120B1 (en) | Verification of event handling | |
US7627795B2 (en) | Pipelined data processor with deterministic signature generation | |
Gunia et al. | Extending Microprocessor Trace Hardware for Fault Injection | |
JPH05108402A (ja) | デバツグ装置 | |
JPH08161195A (ja) | アドレストレース格納装置及びアドレストレース生成方法 | |
JP2003323315A (ja) | データ処理装置、プロセッサユニットおよびデバッグユニット |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050328 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050401 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050622 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050719 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050803 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3708521 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090812 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090812 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090812 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100812 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110812 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110812 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120812 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130812 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |