JP4987182B2 - コンピュータシステム - Google Patents
コンピュータシステム Download PDFInfo
- Publication number
- JP4987182B2 JP4987182B2 JP2000301822A JP2000301822A JP4987182B2 JP 4987182 B2 JP4987182 B2 JP 4987182B2 JP 2000301822 A JP2000301822 A JP 2000301822A JP 2000301822 A JP2000301822 A JP 2000301822A JP 4987182 B2 JP4987182 B2 JP 4987182B2
- Authority
- JP
- Japan
- Prior art keywords
- watchpoint
- code
- register
- precondition
- computer system
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Microcomputers (AREA)
Description
【発明の属する技術分野】
本発明は、大略、マイクロコンピュータに関するものであって、更に詳細には、マイクロコンピュータ上でデバッギング動作を実施する方法及び装置に関するものである。
【0002】
【従来の技術】
通常マイクロコンピュータであるシステム・オン・チップ(SOC)装置は公知である。これらの装置は、通常、プロセッサと、1個又はそれ以上のモジュールとバスインターフェースと、メモリ装置と、情報を通信するための1つ又はそれ以上のシステムバスとを有している。マイクロコンピュータを設計し、テストし、チェックする場合に、マイクロコンピュータ上で実行するプログラムに関する問題を識別し且つ補正することが可能であるようなモードでマイクロコンピュータを動作させることが必要である。この問題を識別し且つ補正する処理は「デバッギング」又はデバッグとして知られている。複数個のモジュール及びそれらの通信はチップ内部において発生するものであるから、この情報に対するアクセスは、ソフトウエア又はハードウエアにおいて問題が発生する場合には一般的に困難なものである。従って、これらのシステムに関するデバッギングは簡単なものではない。これらのSOCの開発の結果として、チップ上での性能をモニタし且つ情報をトレースするための特別のデバッギングシステムが開発されている。このようなシステムは、典型的に、シリアル通信を介してプロセッサへアクセスする例えばデバッグ通路及びデバッグソフトウエア等の専用のハードウエア又はソフトウエアを包含している。
【0003】
然しながら、SOCのデバッギングは、通常、1個又はそれ以上のプロセッサレジスタ又はメモリ位置の侵略的なモニタ動作が行われる。メモリ位置へのアクセスは、時折、破壊的なものであり、且つデバッギングツールから読取られる位置へのデータアクセスはプロセッサの性能を阻害する場合がある。同様に、アクセスは、通常、システムバスを介してプロセッサ、メモリ、又はその他のモジュールに対して行われ、且つ一般的な動作を実行するためのシステムバスを介して使用可能な帯域幅を減少させる場合がある。あるデバッギングシステムではプロセサと同一のクロック速度で動作するものではなく、且つ例えばトレース情報を採取すること等のデバッギングの特徴を使用することを可能とするためにはプロセッサの性能を遅くさせることが必要な場合がある。プロセッサを遅くさせるか又は休止させることにより、あるタイプのエラーが再現されない場合があり、従って、検知又は補正することが不可能な場合がある。更に、プロセッサの速度が速いために正確な情報が全く得られない場合があり、情報がスキュー即ち歪みが発生し又は欠落する場合がある。
【0004】
幾つかのシステムでは、時々デバッグユニット又はモジュールと呼称されるプロセッサをデバッギングするための専用のSOC内の1個又はそれ以上の専用の機能ユニットを有している。然しながら、これらのユニットは、例えばトレース情報等の情報を得る場合にプロセッサの動作に影響を与える。これらの装置は、典型的に、プロセッサよりもより遅い速度で機能し、従って、それらがプロセッサのデータへアクセスする場合にはプロセッサの動作に影響を与える。デバッグシステムはターゲットプロセッサ自身の上でデバッグコードを稼動させることに依存しており、且つこのコードは、通常、デバッグされるものの中に組込まれている。従って、デバッグコードが存在することは、メモリレイアウトの点で侵略的なものであり、且つ命令ストリームが乱される。
【0005】
インサーキットエミュレータ(ICE)と呼称されるその他のデバッギングシステムはオンチップハードウエアとマッチしており且つそれと接続されている。従って、オンチップ接続がエミュレータ上にマッピングされ且つテストされるべきチップに対して特別に設計されているエミュレータ上でアクセス可能である。然しながら、エミュレータはある適用に対しては法外に高価なものである。何故ならば、それらは特別に開発されたハードウエアであり、全てのオンチップ速度又は通信とマッチするものではないからである。従って、エミュレータシステムは不適切である。更に、これらのシステムは、通常、システムバスを介して情報を転送し、従って必然的にプロセッサの性能に影響を与える。これらのICEは、通常、同一の製造業者からの外部デバッグ装置とのみインターフェースさせることが可能なプロプライエテリィ即ち私有の通信インターフェースを使用する。
【0006】
トラブルシューティング用の別の技術はロジックステートアナライザ(LSA)即ち論理状態解析器を使用するものであり、それは全てのオフチップ通信の状態をモニタする集積回路のピンへ接続されている装置である。LSA装置は、通常、高価な装置であり、チップ内部のピン情報へのアクセスを可能とするものではない。
【0007】
従来、マイクロコンピュータをデバッグするために使用することが可能な2つの主要なタイプの開発システムアーキテクチャが存在している。図1は第一のタイプのデバッギングシステムを示している。このシステムはターゲットプロセッサボード10を有している。ターゲットプロセッサボード10はその上に配設されているターゲットプロセッサ12を有している。ターゲットプロセッサ12は、デバッグシステムによってデバッグされるマイクロコンピュータである。データリンク16を介してターゲットプロセッサ12へ結合されているモニタROM14も設けられている。シリアルポートインターフェース18がデータリンク20を介してターゲットプロセッサ12をデータリンク24を介してホストコンピュータ22と結合させるために設けられている。ホストコンピュータ22はソフトウエアバックプレーン/オペレーティングシステム26を稼動させ、それはソフトウエアデバッガーシステム28がターゲットプロセッサ12へアクセスすることを可能とする。図1に示したシステムにおいては、ターゲットプロセッサ12は最小のデバッグ特徴を有しているか又はデバッグ特徴を有していない場合がある。ターゲットプロセッサ12の動作をデバッギングするのに必要なツールの殆どはデバッガーソフトウエアシステム28内に設けられている。
【0008】
図1のシステムは実施することが可能なデバッギング動作のタイプが幾分制限されている。ターゲットプロセッサ12とホストコンピュータ22との間で通信を行うためにシリアルポートが使用されているので、このシステムは、典型的に、ターゲットプロセッサ12をしてホストコンピュータ22上で実行するソフトウエアからブートさせるために直接的にCPUを制御することが可能なものではない。更に、図1のデバッギングシステムは侵略的なものである場合がある。何故ならば、このシステムはターゲットプロセッサ12自身の上のコードを実行することに依存しているからである。従って、ホストコンピュータ22はターゲットプロセッサ12上のコードの実行を乱す場合があり且つ実際に乱すこととなる。ホストコンピュータ22がデバッギング動作期間中にターゲットプロセッサ12の動作を実際に乱すものであるから、デバッギング動作の結果はある不確定性に影響される場合がある。何故ならば、デバッギングシステムが存在していること自身ターゲットプロセッサの動作を変える場合があるからである。
【0009】
図2は別の従来のデバッギングシステムを示している。図2のデバッギングシステムにおいては、ターゲットプロセッサ12がデバッグリンク32を介してデバッグアダプタ30へ接続している。ホストコンピュータ22がデバッガーシステム28をサポートするソフトウエアバックプレーン/オペレーティングシステム26を稼動する。ホストコンピュータ22は双方向データリンク34を介してデバッグアダプタ30と通信を行う。デバッグアダプタ30は「インテリジェント」なものである。それは、デバッグリンクの通信プロトコルとデータリンク34の通信プロトコルとの間で翻訳を行うためにアダプタソフトウエアを実行するランダムアクセスメモリ38及びCPU36を有している。デバッグデータリンク34は、例えば、イーサーネット接続又はPCIバスとすることが可能である。
【0010】
オプションとして、例えばロジックアナライザ40等の外部ハードウエアを設けることが可能であり、それはトリガインデータリンク42を介してトリガ信号をターゲットプロセッサ12へ供給し且つトリガアウトデータリンク44を介してターゲットプロセッサ12からトリガ信号を受取ることが可能である。
【0011】
図2のデバッグシステムは、図1のシステムにおいて必要とされていたようなターゲットプロセッサをデバッギングシステムとインターフェースさせるための付加的なオフチップハードウエアを必要とするものではない。このことはデバッギングシステムのエキストラなコンポーネントへ接続する前に付加的なコンポーネントと結合させることを必要とすることなしに生産用のターゲットプロセッサ12をデバッギングすることを可能とする。更に、システム内にデバッグアダプタ30を設けているので、向上させたデバッギング特徴を与えることが可能である。然しながら、図2のデバッギングシステムは、デバッギングソフトウエアがターゲットプロセッサ12の動作を乱す場合があるという点において少なくとも侵略的であるという制限を被るものである。
【0012】
【発明が解決しようとする課題】
本発明は、以上の点に鑑みなされたものであって、上述した如き従来技術の欠点を解消し、改良したマイクロコンピュータデバッグ装置及び方法を提供することを目的とする。
【0013】
【課題を解決するための手段】
本発明の1つの側面によれば、少なくとも1個の中央処理装置と、該少なくとも1個の中央処理装置へ結合されているメモリユニットと、該コンピュータシステムにおいて画定(定義)されている1組のウォッチポイント(watchpoint)とを有しているコンピュータシステムが提供され、該1組のウォッチポイントにおける各ウォッチポイントは、該1組のウォッチポイントにおける各ウォッチポイントに対して同一な1組のプレコンディション(事前条件)コードを格納するプログラム可能なプレコンディション(precondition)レジスタ、該1組のウォッチポイントにおける各ウォッチポイントに対して同一の1組のアクションコードを格納するプログラム可能なアクション(action)レジスタ、及び第一比較器を有している。第一比較器は、該プレコンディションレジスタへ結合されている入力端を具備しており、且つ該1組のプレコンディションコードにおける少なくとも1個のプレコンディションコードを該コンピュータシステムにおける第一データ値と比較し且つそれに応答して該アクションレジスタへ信号を供給する。
【0014】
本発明の側面によれば、該コンピュータシステムにおける第一データ値が該プレコンディションコードを満足する場合に、該比較器が該アクションレジスタへ信号を供給する。
【0015】
本発明の別の側面によれば、該コンピュータシステムが該アクションレジスタへ供給される信号に応答し且つ該アクションコードによって決定され、該ウォッチポイントがトリガされたことを表す信号を発生する。
【0016】
本発明の別の側面によれば、該コンピュータシステムは該1組のウォッチポイントにおける特定のウォッチポイントに対して該1組のプレコンディションコードにおけるどのプレコンディションコードがアクティブ即ち活性状態であるかを選択するハードウエア及びソフトウエアを有している。
【0017】
本発明の別の側面によれば、該コンピュータシステムは、該1組のウォッチポイントにおける特定のウォッチポイントに対して該1組のアクションコードにおけるどのアクションコードがアクティブ即ち活性状態にあるかを選択するハードウエア及びソフトウエアを有している。
【0018】
本発明の別の側面によれば、該1組のウォッチポイントはオペランドアドレス、命令値、命令アドレス、分岐、ブレークポイント命令、印刷命令に対するウォッチポイントのタイプを包含している。
【0019】
本発明の別の側面によれば、各ウォッチポイントは、更に、少なくとも1個のマッチコードを格納するプログラム可能なマッチ(match)レジスタを有しており、格納されるマッチコードはウォッチポイントのタイプに依存する。
【0020】
本発明の別の側面によれば、本コンピュータシステムは、更に、第一比較器へ結合している入力端を具備しており、第一比較器に応答し、且つ該少なくとも1個のマッチコードを本コンピュータシステムにおける第二データ値と比較し且つそれに応答して該アクションレジスタへ信号を供給する第二比較器を有している。
【0021】
本発明の別の側面によれば、該マッチコードはアドレスレンジ(範囲)、データ値、データマスク、命令値、命令マスク、分岐タイプ、及び該少なくとも1個の中央処理装置に対して外部的な信号のうちの少なくとも1つを包含している。
【0022】
本発明の別の側面によれば、本コンピュータシステムにおける第二データ値が該マッチコードとマッチ即ち一致する場合に、該第二比較器が該アクションレジスタへ信号を供給する。
【0023】
本発明の別の側面によれば、該1組のプレコンディションコードが基本イネーブルコード、アドレス空間識別子イネーブルコード、アドレス空間識別子コード、ラッチイネーブルコード、ラッチ識別子コード、イベントカウンタイネーブルコード、イベントカウンタ識別子コード、ISAモードイネーブルコード、CPUスーパーバイザーモード選択コードを包含している。
【0024】
本発明の別の側面によれば、該1組のアクションコードは、例外イネーブルコード、イベントカウンタデクリメントイネーブルコード、イベントカウンタ識別子コード、ラッチ変更コード、ラッチ識別子コード、性能カウンタインクリメントイネーブルコード、リセット全性能カウンタコード、性能カウンタ識別子コード、トレースイネーブルコード、トレースメッセージタイプコード、イネーブルトレース時間スタンプコード、トリガアウトイネーブルコード、インタラプトイネーブルコードを包含している。
【0025】
本発明の別の側面によれば、本コンピュータシステムは単一の集積回路チップ上で実現されている。
【0026】
本発明の別の側面によれば、各ウォッチポイントは、少なくとも1個のマッチコードを格納するプログラム可能なマッチレジスタを有しており、格納されるマッチコードはウォッチポイントのタイプに依存し、且つプレコンディションレジスタと、マッチレジスタと、アクションレジスタとがメモリユニット内の夫々のメモリ位置を占有している。
【0027】
本発明の別の側面によれば、少なくとも1個の中央処理装置と、該少なくとも1個の中央処理装置へ結合されているメモリユニットと、本コンピュータシステムにおいて画定されている1組のウォッチポイントとを有するコンピュータシステムが提供され、該1組のウォッチポイントにおける各ウォッチポイントは、該1組のウォッチポイントにおける各ウォッチポイントに対して同一である少なくとも1個のプレコンディションコードを格納するプログラム可能な第一格納手段と、該1組のウォッチポイントにおける各ウォッチポイントに対して同一である少なくとも1個のコンピュータアクションコードを格納するプログラム可能な第二格納手段と、該プログラム可能な第一格納手段に応答する入力端を具備しており、該少なくとも1個のプレコンディションコードを本コンピュータシステムにおけるデータ値と比較し且つそれに応答して該プログラム可能な第二格納手段へ信号を供給する比較器とを有している。
【0028】
本発明の別の側面によれば、少なくとも1個の中央処理装置及び該少なくとも1個の中央処理装置へ結合されているメモリユニットを有しているコンピュータシステムにおいてウォッチポイントをトリガする方法が提供され、該方法は、1組のプレコンディションレジスタ及び1組のアクションレジスタを画定することによって本コンピュータシステム内に1組のウォッチポイントを画定し、該1組のウォッチポイントにおける各ウォッチポイントに対して同一である1組のプレコンディションコードをプレコンディションレジスタ内に格納し、該1組のウォッチポイントにおける各ウォッチポイントに対して同一である1組のアクションコードをアクションレジスタ内に格納し、該1組のプレコンディションコードにおける少なくとも1個のプレコンディションコードを本コンピュータシステムにおける第一データ値と比較し且つそれに応答して該アクションレジスタへ信号を供給する、上記各ステップを有している。
【0029】
本発明の別の側面によれば、該比較するステップは、本コンピュータシステムにおける第一データ値が該プレコンディションコードを満足する場合に該アクションレジスタへ信号を供給するステップを包含している。
【0030】
本発明の別の側面によれば、本方法は、該1組のプレコンディションコードのうちでどのプレコンディションコードが該1組のウォッチポイントにおける特定のウォッチポイントに対してアクティブであるかを選択するステップを有している。
【0031】
本発明の別の側面によれば、本方法は、該1組のアクションコードのうちでどのアクションコードが該1組のウォッチポイントにおける特定のウォッチポイントに対してアクティブであるかを選択するステップを有している。
【0032】
本発明の別の側面によれば、該1組のウォッチポイントはオペランドアドレス、命令値、命令アドレス、分岐、ブレークポイント命令、印刷命令に対するウォッチポイントのタイプを包含している。
【0033】
本発明の別の側面によれば、本方法は、プログラム可能なマッチレジスタを画定し且つ該マッチレジスタ内に少なくとも1個のマッチコードを格納するステップを有しており、該マッチコードはウォッチポイントのタイプに依存する。
【0034】
本発明の別の側面によれば、本方法は、該少なくとも1個のプレコンディションコードが満足された後に、該少なくとも1個のマッチコードを本コンピュータシステムにおける第二データ値と比較するステップを有している。
【0035】
本発明の別の側面によれば、該第二データ値が該マッチコードとマッチする場合に、該信号がアクションレジスタへ供給される。
【0036】
本発明の別の側面によれば、該1組のプレコンディションコードは基本イネーブルコード、アドレス空間識別子イネーブルコード、アドレス空間識別子コード、ラッチイネーブルコード、ラッチ識別子コード、イベントカウンタイネーブルコード、イベントカウンタ識別子コード、ISAモードイネーブルコード、CPUスーパーバイザーモード選択コードを包含している。
【0037】
本発明の別の側面によれば、本コンピュータシステムは、例外イネーブルコード、イベントカウンタデクリメントイネーブルコード、イベントカウンタ識別子コード、ラッチ変更コード、ラッチ識別子コード、性能カウンタインクリメントイネーブルコード、リセット全性能カウンタコード、性能カウンタ識別子コード、トレースイネーブルコード、トレースメッセージタイプコード、イネーブルトレース時間スタンプコード、トリガアウトイネーブルコード、インタラプトイネーブルコードを包含している1組のアクションコードを有している。
【0038】
本発明の別の側面によれば、本コンピュータシステムは、更に、メモリユニット内の夫々のメモリ位置においてプレコンディションレジスタ、マッチレジスタ、アクションレジスタを画定するステップを有している。
【0039】
本発明の別の側面によれば、少なくとも1個の中央処理装置及び該少なくとも1個の中央処理装置に結合されているメモリユニットを有しているコンピュータシステムにおいてデバッギングデータをフィルタする方法が提供され、該方法は1組のプレコンディションレジスタ及び1組のアクションレジスタを画定することによって本コンピュータシステム内に1組のウォッチポイントを画定し、該1組のウォッチポイントにおける各ウォッチポイントに対して適用されるべき1組の同一のプレコンディションコードを画定し、該1組のウォッチポイントにおける各ウォッチポイントに対して適用されるべき1組の同一のアクションコードを画定し、該1組のプレコンディションレジスタにおける各プレコンディションレジスタ内に該1組のプレコンディションコードを格納し、該1組のアクションレジスタにおける各アクションレジスタ内に該1組のアクションコードを格納し、該1組のプレコンディションコードのうちでどのプレコンディションコードが特定のウォッチポイントに対してアクティブであるかを選択し、該1組のアクションコードのうちでどのアクションコードが特定のウォッチポイントに対してアクティブであるかを選択し、プログラムを実行するために本コンピュータシステムを動作させ、本コンピュータシステムにおけるデバッギングデータを特定のウォッチポイントに対するアクティブなプレコンディションコードと比較し、本コンピュータシステムにおけるデバッギングデータが該特定のウォッチポイントに対するアクティブなプレコンディションコードを満足する場合に該特定のウォッチポイントに対するアクションレジスタへ信号を送り、本コンピュータシステムを該特定のウォッチポイントに対するアクティブなアクションコードに対して応答させる、上記各ステップを有している。
【0040】
本発明の別の側面によれば、該1組のウォッチポイントは、オペランドアドレス、命令値、命令アドレス、分岐、ブレークポイント命令、印刷命令に対するウォッチポイントのタイプを包含している。
【0041】
本発明の別の側面によれば、該1組のプレコンディションコードは基本イネーブルコード、アドレス空間識別子イネーブルコード、アドレス空間識別子コード、ラッチイネーブルコード、ラッチ識別子コード、イベントカウンタイネーブルコード、イベントカウンタ識別子コード、ISAモードイネーブルコード、CPUスーパーバイザーモード選択コードを包含している。
【0042】
本発明の別の側面によれば、該1組のアクションコードは例外イネーブルコード、イベントカウンタデクリメントイネーブルコード、イベントカウンタ識別子コード、ラッチ変更コード、ラッチ識別子コード、性能カウンタインクリメントイネーブルコード、リセット全性能カウンタコード、性能カウンタ識別子コード、トレースイネーブルコード、トレースメッセージタイプコード、イネーブルトレース時間スタンプコード、トリガアウトイネーブルコード、インタラプトイネーブルコードを包含している。
【0043】
本発明の別の側面によれば、本方法は、プログラム可能なマッチレジスタを画定し且つ該マッチレジスタ内に少なくとも1個のマッチコードを格納するステップを有しており、該マッチコードはウォッチポイントのタイプに依存する。
【0044】
本発明の別の側面によれば、本方法は、該少なくとも1個のプレコンディションコードが満足された後に、該少なくとも1個のマッチコードを本コンピュータシステムにおける第二データ値と比較するステップを有している。
【0045】
本発明の別の側面によれば、該第二データ値が該マッチコードとマッチする場合に該アクションレジスタへ信号が供給される。
【0046】
本発明の別の側面によれば、該マッチコードは、アドレス範囲、データ値、データマスク、命令値、命令マスク、分岐タイプ、該少なくとも1個の中央処理装置に対して外部的な信号のうちの少なくとも1つを包含している。
【0047】
本発明の別の側面によれば、本方法は、プレコンディションレジスタ、マッチレジスタ、アクションレジスタをメモリユニットにおける夫々のメモリ位置に画定するステップを有している。
【0048】
本発明の別の側面によれば、少なくとも1個の中央処理装置と、該少なくとも1個の中央処理装置へ結合されているメモリユニットと、本コンピュータシステムに内に画定されている1組のウォッチポイントであって、各ウォッチポイントがプログラム可能なプレコンディションレジスタとプログラム可能なアクションレジスタとを有している1組のウォッチポイント、1組のラッチ、アクションレジスタの出力を選択したラッチの入力ヘ結合させるために該1組のラッチにおける1つのラッチを選択する選択回路とを有している。
【0049】
本発明の別の側面によれば、該選択回路がアクションレジスタの出力へ結合されている入力を具備しており且つ各々が該1組のラッチにおける各ラッチの入力へ夫々結合している複数個の出力を具備しているデマルチプレクサを有している。
【0050】
本発明の別の側面によれば、該選択回路が該1組のラッチにおける各ラッチの出力へ夫々結合している複数個の入力及びプレコンディションレジスタへ結合している入力とを具備しているマルチプレクサを有している。
【0051】
本発明の別の側面によれば、本コンピュータシステムは、更に、該1組のウォッチポイントに対応する1組のデマルチプレクサを有しており、該1組のデマルチプレクサにおける各デマルチプレクサは該1組のウォッチポイントにおける夫々のアクションレジスタの出力へ夫々結合している入力を具備しており、該1組のデマルチプレクサにおける各デマルチプレクサは該1組のラッチにおける各ラッチの入力へ夫々結合している複数個の出力を具備している。
【0052】
本発明の別の側面によれば、本コンピュータシステムは、更に、該1組のウォッチポイントに対応している1組のマルチプレクサを有しており、該1組のマルチプレクサにおける各マルチプレクサは該1組のラッチにおける各ラッチの出力へ夫々結合している複数個の入力を具備しており、該1組のマルチプレクサにおける各マルチプレクサは該1組のウォッチポイントにおける夫々のプレコンディションレジスタの入力へ結合している出力を具備している。
【0053】
本発明の別の側面によれば、本コンピュータシステムは、更に、該1組のラッチにおける1個のラッチと夫々関連している制御レジスタを有しており、該制御レジスタは、本コンピュータシステムに対して外部的な信号に応答して、該ラッチをセット又はリセットする状態を有している。
【0054】
本発明の別の側面によれば、本コンピュータシステムは単一の集積回路チップ上で実現されている。
【0055】
本発明の別の側面によれば、該デマルチプレクサは、該アクションレジスタの状態に応答して、該1組のラッチにおける1個のラッチの入力を選択すべく該デマルチプレクサを制御する選択出力を有している。
【0056】
本発明の別の側面によれば、該マルチプレクサは該プレコンディションレジスタの状態に応答して、該1組のラッチのうちで1個のラッチの出力を選択すべく該マルチプレクサを制御する選択入力を有している。
【0057】
本発明の別の側面によれば、各マルチプレクサは、夫々のプレコンディションレジスタの状態に応答して、該1組のラッチのうちで1個のラッチの出力を選択すべく各マルチプレクサを制御する選択入力を有している。
【0058】
本発明の別の側面によれば、各デマルチプレクサは、夫々のアクションレジスタの状態に応答して、該1組のラッチのうちで1個のラッチの入力を選択すべく該デマルチプレクサを制御する選択出力を有している。
【0059】
本発明の別の側面によれば、該プレコンディションレジスタは1組のプレコンディションコードを格納しており、該1組のプレコンディションコードは該1組のウォッチポイントにおける各ウォッチポイントに対して同一である。
【0060】
本発明の別の側面によれば、該アクションレジスタは1組のアクションコードを格納しており、該1組のアクションコードは該1組のウォッチポイントにおける各ウォッチポイントに対して同一である。
【0061】
本発明の別の側面によれば、本コンピュータシステムは、該1組のプレコンディションコードのうちでどのプレコンディションコードが該1組のウォッチポイントにおける特定のウォッチポイントに対してアクティブであるかを選択するハードウエア及びソフトウエアを包含している。
【0062】
本発明の別の側面によれば、本コンピュータシステムは、該1組のアクションコードのうちでどのアクションコードが該1組のウォッチポイントにおける特定のウォッチポイントに対してアクティブであるか選択するハードウエア及びソフトウエアを包含している。
【0063】
本発明の別の側面によれば、該1組のウォッチポイントは、オペランドアドレス、命令値、命令アドレス、分岐、ブレークポイント命令、印刷命令に対するウォッチポイントのタイプを包含している。
【0064】
本発明の別の側面によれば、各ウォッチポイントは、更に、少なくとも1個のマッチコードを格納するプログラム可能なマッチレジスタを有しており、該格納されたマッチコードはウォッチポイントのタイプに依存する。
【0065】
本発明の別の側面によれば、該マッチコードはアドレス範囲、データ値、データマスク、命令値、命令マスク、分岐タイプの内の少なくとも1つを包含している。
【0066】
本発明の別の側面によれば、該1組のプレコンディションコードは基本イネーブルコード、アドレス空間識別子イネーブルコード、アドレス空間識別子コード、ラッチイネーブルコード、ラッチ識別子コード、イベントカウンタイネーブルコード、イベントカウンタ識別子コード、ISAモードイネーブルコード、CPUスーパーバイザーモード選択コードを包含している。
【0067】
本発明の別の側面によれば、該1組のアクションコードは、例外イネーブルコード、イベントカウンタデクリメントイネーブルコード、イベントカウンタ識別子コード、ラッチ変更コード、ラッチ識別子コード、性能カウンタインクリメントイネーブルコード、リセット全性能カウンタコード、性能カウンタ識別子コード、トレースイネーブルコード、トレースメッセージタイプコード、イネーブルトレース時間スタンプコード、トリガアウトイネーブルコード、インタラプトイネーブルコードを包含している。
【0068】
本発明の別の側面によれば、少なくとも1個の中央処理装置と、該少なくとも1個の中央処理装置へ結合されているメモリユニットと、本コンピュータシステム内に画定されている1組のウォッチポイントと、該1組のウォッチポイントにおける1つのウォッチポイントを該1組のウォッチポイントにおける少なくとも1つの別のウォッチポイントとリンクさせる手段とを有しており、該リンクさせる手段がプログラマブル即ちプログラム可能であるコンピュータシステムが提供される。
【0069】
本発明の別の側面によれば、該リンクさせる手段が、各ウォッチポイントと関連しており、該1組のウォッチポイントにおける各ウォッチポイントに対して同一である1組のプレコンディションコードを格納するプログラム可能なプレコンディションレジスタ、及び該1組のウォッチポイントにおける各ウォッチポイントに対して同一である1組のアクションコードを格納するプログラム可能なアクションをレジスタを有している。
【0070】
本発明の別の側面によれば、該リンクさせる手段が、更に、ラッチを有している。
【0071】
本発明の別の側面によれば、該ラッチは該1組のウォッチポイントにおける1つのウォッチポイントと関連しているアクションレジスタの1つの出力と該1組のウォッチポイントにおけるその他のすべてのプレコンディションレジスタの全ての入力のうちの1つの入力との間に結合されている。
【0072】
本発明の別の側面によれば、少なくとも1個の中央処理装置と該少なくとも1個の中央処理装置へ結合されているメモリユニットとを有しているコンピュータシステムを動作させる方法において、本方法が、1組のプレコンディションレジスタ及び1組のアクションレジスタを画定することにより本コンピュータシステム内に1組のウォッチポイントを画定し、該1組のウォッチポイントにおける各ウォッチポイントへ適用されるべき1組の同一のプレコンディションコードを画定し、該1組のウォッチポイントにおける各ウォッチポイントへ適用されるべき1組の同一のアクションコードを画定し、該1組のプレコンディションレジスタ内の各プレコンディションレジスタ内に該1組のプレコンディションコードを格納し、該1組のアクションレジスタ内の各アクションレジスタ内に該1組のアクションコードを格納し、該1組のプレコンディションコードにおけるどのプレコンディションコードが特定のウォッチポイントに対してアクティブであるかを選択し、該1組のアクションコードのうちでどのアクションコードが特定のウォッチポイントに対してアクティブであるかを選択し、プログラムを実行させるために本コンピュータシステムを動作させ本コンピュータシステムにおけるデバッギングデータを特定のウォッチポイントに対するアクティブなプレコンディションコードと比較し、本コンピュータシステムにおける該デバッギングデータがその特定のウォッチポイントに対するアクティブなプレコンディションコードを満足する場合にその特定のウォッチポイントに対するアクションレジスタへ信号を送る、上記各ステップを有しており、該コンピュータシステムはトリガ信号を発生することによって該アクティブなアクションコードに応答し且つ該コンピュータシステムは、更に、該トリガ信号の状態に応答してラッチをセット又はクリアすることによって該トリガ信号に応答する。
【0073】
本発明の別の側面によれば、該コンピュータシステムは1組のラッチを有しており且つ本方法は、更に、該トリガ信号に応答する該1組のラッチにおける1個のラッチを選択するステップを有している。
【0074】
本発明の別の側面によれば、本方法は、更に、該1組のウォッチポイントにおける各プレコンディションレジスタへ該ラッチから出力信号を供給するステップを有している。
【0075】
本発明の別の側面によれば、本方法は、更に、該ラッチからの出力信号に応答するためにプレコンディションレジスタを選択するステップを有している。
【0076】
本発明の別の側面によれば、該1組のウォッチポイントはオペランドアドレス、命令値、命令アドレス、分岐、ブレークポイント命令及び印刷命令に対するウォッチポイントのタイプを包含している。
【0077】
本発明の別の側面によれば、該1組のプレコンディションコードは、基本イネーブルコード、アドレス空間識別子イネーブルコード、アドレス空間識別子コード、ラッチイネーブルコード、ラッチ識別子コード、イベントカウンタイネーブルコード、イベントカウンタ識別子コード、ISAモードイネーブルコード、CPUスーバーバイザーモード選択コードを包含している。
【0078】
本発明の別の側面によれば、該1組のアクションコードは、例外イネーブルコード、イベントカウントデクリメントイネーブルコード、イベントカウンタ識別子コード、ラッチ変更コード、ラッチ識別子コード、性能カウンタインクリメントイネーブルコード、リセット全性能カウンタコード、性能カウンタ識別子コード、トレースイネーブルコード、トレースメッセセージタイプコード、イネーブルトレース時間スタンプコード、トリガアウトイネーブルコード、インタラプトイネーブルコードを包含している。
【0079】
本発明の別の側面によれば、本方法は、プログラム可能なマッチレジスタを画定し且つ該マッチレジスタ内に少なくとも1個のマッチコードを格納するステップを有しており、該マッチコードがウォッチポイントのタイプに依存する。
【0080】
本発明の別の側面によれば、本方法は、更に、該少なくとも1個のプレコンディションコードが満足された後に、該少なくとも1個のマッチコードを該コンピュータシステムにおける第二データ値と比較するステップを有している。
【0081】
本発明の別の側面によれば、該第二データ値が該マッチコードとマッチする場合に、該信号が該アクションレジスタへ供給される。
【0082】
本発明の別の側面によれば、本方法は、更に、該メモリユニットにおける夫々のメモリ位置において該プレコンディションレジスタ、該マッチレジスタ、該アクションレジスタを画定するステップを有している。
【0083】
本発明の別の側面によれば、少なくとも1個の中央処理装置、該少なくとも1個の中央処理装置へ結合されているメモリユニット、該コンピュータシステムにおいて画定されている1組のウォッチポイントであって、該1組のウォッチポイントにおける各ウォッチポイントが1組のプレコンディションコードを格納するプログラム可能なプレコンディションレジスタを有しており、該1組のプレコンディションコードが該1組のウォッチポイントにおける各ウォッチポイントに対して同一である1組のウォッチポイント、1組のアクションコードを格納するプログラム可能なアクションレジスタであって、該1組のアクションレジスタが該1組のウォッチポイントにおける各ウォッチポイントに対して同一であるプログラム可能なアクションレジスタ、各ラッチが入力と出力とを具備している1組のラッチ、少なくとも2つのウォッチポイントのトリガ動作の間に所定の関係が存在するように該1組のラッチのうちの少なくとも1個のラッチを該1組のウォッチポイントにおける少なくとも2個のウォッチポイントへ結合させる回路、を有しているコンピュータシステムが提供される。
【0084】
本発明の別の側面によれば、該所定の関係が該1組のプレコンディションコードのうちのどのプレコンディションコードがアクティブであるかにより且つ該1組のアクションコードにおけるどのアクションコードがアクティブであるかによって画定される。
【0085】
本発明の別の側面によれば、該所定の関係はAND関数である。
【0086】
本発明の別の側面によれば、該所定の関係はOR関数である。
【0087】
本発明の別の側面によれば、該少なくとも2個のウォッチポイントのうちの第一のものは、該第一ウォッチポイントがトリガされる場合であり且つ該少なくとも2個のウォッチポイントのうちの第二のものもトリガされる場合にトリガされる。
【0088】
本発明の別の側面によれば、第一ウォッチポイントのアクションレジスタが該ラッチのセット入力へ結合しており且つ第二ウォッチポイントのアクションレジスタが該ラッチのリセット入力へ結合しており、且つ該ラッチの出力ヘ結合しているプレコンディションレジスタを具備している第三ウォッチポイントが設けられており、従って該第一ウォッチポイントのトリガ動作が該ラッチをセットして該第三ウォッチポイントをイネーブル即ち動作可能状態とさせ且つ該第二ウォッチポイントのトリガ動作が該ラッチをリセットして該第三ウォッチポイントをディスエーブル即ち動作不可能状態とさせる。
【0089】
本発明の別の側面によれば、第一ウォッチポイントのアクションレジスタが該ラッチのセット入力へ結合しており且つ第二ウォッチポイントのアクションレジスタが該ラッチのリセット入力へ結合しており且つ該第二ウォッチポイントのプレコンディションレジスタが該ラッチの出力へ結合しており、従って該第一ウォッチポイントのトリガ動作が該ラッチをセットして該第二ウォッチポイントをイネーブルさせ且つ該第二ウォッチポイントのトリガ動作が該ラッチをリセットして該第二ウォッチポイントをディスエーブルさせる。
【0090】
本発明の別の側面によれば、該1組のウォッチポイントにおける第一数のウォッチポイントに対する夫々のアクションレジスタが該ラッチのセット入力へ結合しており、且つ該1組のウォッチポイントにおける第二数のウォッチポイントの夫々のアクションレジスタが該ラッチのリセット入力へ結合されており、且つ該ラッチの出力へ結合しているプレコンディションレジスタを具備している別のウォッチポイントが設けられており、従って該第一数のウォッチポイントのうちのいずれかのトリガ動作が該ラッチをセットして該別のウォッチポイントをイネーブルさせ且つ該第二数のウォッチポイントのうちのいずれかのトリガ動作が該ラッチをリセットして該第三ウォッチポイントをディスエーブルさせる。
【0091】
本発明の別の側面によれば、少なくとも1個の中央処理装置と、該少なくとも1個の中央処理装置へへ結合されているメモリユニットとを有しているコンピュータシステムにおいてデバッギングデータをフィルタする方法が提供され、該方法は、各ウォッチポイントに対して1組のプレコンディションレジスタ及び1組のアクションレジスタを画定することにより該コンピュータシステム内に1組の少なくとも3個のウォッチポイントを画定し、該1組のウォッチポイントにおける各ウォッチポイントへ適用されるべき1組の同一のプレコンディションコードを画定し、該1組の各ウォッチポイントにおける各ウォッチポイントへ適用すべき1組の同一のアクションコードを画定し、該1組のプレコンディションレジスタ内の各プレコンディションレジスタ内に該1組のプレコンディションコードを格納し、該1組のアクションレジスタ内の各アクションレジスタ内に該1組のアクションレジスタを格納し、該1組のプレコンディションコードのうちでどのプレコンディションコードが該少なくとも3個のウォッチポイントの各々に対してアクティブであるかを選択し、該1組のアクションコードの中でどのアクションコードが該少なくとも3個のウォッチポイントの各々に対してアクティブであるかを選択し従って該第一及び第二ウォッチポイントが該第三ウォッチポイントのプレコンディションレジスタ内のプレコンディションコードを活性化させ、プログラムを実行するために該コンピュータシステムを動作させ、該コンピュータシステムにおけるデバッギングデータを該少なくとも3個のウォッチポイントの各々に対するアクティブなプレコンディションコードと比較し、該コンピュータシステムにおけるデバッギングデータが該第一又は第二ウォッチポイントに対するアクティブなプレコンディションコードを満足する場合に該第一及び第二ウォッチポイントのうちの1つをトリガし且つ該第一及び第二ウォッチポイントのうちの1つのトリガ動作に応答して該第三ウォッチポイントをトリガする、上記各ステップを有している。
【0092】
本発明の別の側面によれば、該1組のウォッチポイントは、オペランドアドレス、命令値、命令アドレス、分岐、ブレークポイント命令、印刷命令に対するウォッチポイントのタイプを包含している。
【0093】
本発明の別の側面によれば、該1組のプレコンディションコードは、基本イネーブルコード、アドレス空間識別子イネーブルコード、アドレス空間識別子コード、ラッチイネーブルコード、ラッチ識別子コード、イベントカウンタイネーブルコード、イベントカウンタ識別子コード、ISAモードイネーブルコード、CPUスーバーバイザーモード選択コードを包含している。
【0094】
本発明の別の側面によれば、該1組のアクションコードは例外イネーブルコード、イベントカウンタデクリメントイネーブルコード、イベントカウンタ識別子コード、ラッチ変更コード、ラッチ識別子コード、性能カウンタインクリメントイネーブルコード、リセット全性能カウンタコード、性能カウンタ識別子コード、トレースイネーブルコード、トラースメッセセージタイプコード、イネーブルトレース時間スタンプコード、トリガアウトイネーブルコード、インタラプトイネーブルコードを包含している。
【0095】
本発明の別の側面によれば、本方法は、プログラム可能なマッチレジスタを画定し且つ該マッチレジスタ内に少なくとも1個のマッチコードを格納するステップを有しており、該マッチコードはウォッチポイントのタイプに依存する。
【0096】
本発明の別の側面によれば、本方法は、更に、少なくとも1つのプレコンディションコードが満足された後に、該少なくとも1個のマッチコードを本コンピュータシステムにおける第二データ値と比較するステップを有している。
【0097】
本発明の別の側面によれば、該第二データ値が該マッチコードと一致する場合に該信号が該アクションレジスタへ供給される。
【0098】
本発明の別の側面によれば、本方法は、更に、該メモリユニットにおける夫々のメモリ位置において該プレコンディションレジスタ、該マッチレジスタ、該アクションレジスタを画定(定義)するステップを有している。
【0099】
【発明の実施の形態】
以下の説明においては、本発明を単一チップマイクロコンピュータにおいて使用した場合について説明するが、本発明は、複数個のチップから構成したコンピュータシステムにおいて使用することも可能であることは勿論である。
【0100】
図3は本発明に基づく単一チップマイクロコンピュータ50を示している。マイクロコンピュータ50は、図1又は2のマイクロコンピュータデバッギングシステムのいずれかにおいて使用することが可能である。マイクロコンピュータ50は、コンピュータ内における演算即ち動作を実行するための中央処理装置コア51を有している。中央処理装置(CPU)52及びCPUウォッチポイント(watchpoint)制御器54がCPUコア51の一部として設けられている。単一の中央処理装置コア51が図3に示されているが、マイクロコンピュータ50は複数個の中央処理装置52を有することが可能である。後により詳細に説明するように、CPUウォッチポイント制御器54は、CPUウォッチポイントをトリガし且つこの情報をマイクロコンピュータ50のその他の部分へ報告するためのウォッチポイント制御回路を有している。CPUコア51はデータリンク58を介してシステムバス56へ結合している。システムバス56は、システムバスに取付けられているモジュール及びインターフェースの間でデータ、命令、制御信号の交換を行うための経路を提供している。オフチップランダムアクセスメモリに対するインターフェースを与えるRAMインターフェース60が、データリンク62を介してシステムバス56へ結合している。オフチップリードオンリメモリに対するアクセスを与えるROMインターフェース64がデータリンク66を介してシステムバス56へ結合している。その他のシステムバスモジュール68はデータリンク70を介してシステムバス66へ結合している。
【0101】
デバッグインターフェースを包含しているデバッグモジュール72がデータリンク74を介してシステムバス56へ結合している。デバッグモジュール72はデータリンク76を介してCPUコア51からデバッギング即ちデバッグ用データを受取る。デバッグモジュール72はデバッグリンク72を介してオフチップインターフェースを与え、それは、マイクロコンピュータ50が、例えば、デバッグアダプタ30とインターフェースすることを可能とする。デバッグモジュール72は更にトリガイン/トリガアウトインターフェース78を提供している。トリガイン/トリガアウトインターフェース78は、その他のデバッギング動作においてロジックアナライザ(論理解析器)をトリガさせるために、ロジックアナライザ等の外部ハードウエアへトリガアウト(trigger out)信号経路を介してオフチップへ例えばウォッチポイントのトリガ動作等のデバッグ情報をデバッグモジュール72が送ることを可能とする。トリガイン/トリガアウトインターフェース78は、更に、トリガイン(trigger in)信号経路を提供しており、それは、例えばロジックアナライザ等の外部装置がオンチップのデバッグ用ハードウエアをトリガする場合に使用するためにマイクロコンピュータ50へトリガ信号を供給させることを可能とする。トリガイン/トリガアウトインターフェース78は、又、マイクロコンピュータ50をその他のCPUコア又はその他のマイクロコンピュータへ結合するために使用することが可能である。このことは、その他のCPUコア又はマイクロコンピュータからのデバッグ用データをそのデバッグ処理の一部としてマイクロコンピュータ50によって使用することを可能とする。このことは、又、マイクロコンピュータ50がデバッグ用データを他のCPUコア又はマイクロコンピュータへ送り、これらの他の装置におけるウォッチポイント又はその他のデバッグ動作をトリガさせることを可能とする。
【0102】
マイクロコンピュータ50は、更に、データリンク82を介してシステムバス56へ結合されているシステムバス制御器80を有している。システムバス制御器80は、システムバス56を介してのデータトラフィック即ちデータの流れを制御するシステムバスアービター(調停器)81を包含している。システムバスアナライザ(解析器)84はシステムバス制御器80内に配設されているシステムバスウォッチポイントをトリガするためのウォッチポイント制御回路を包含している。システムバスアナライザ84内のウォッチポイント回路の動作については後により詳細に説明する。システムバスアナライザ84は、データリンク86を介して、システムバスウォッチポイントのトリガ動作等のデバッグ用情報をデバッグモジュール72へ送る。
【0103】
マイクロコンピュータ50は、更に、ペリフェラルコンポーネントバス88を有している。ペリフェラルコンポーネントバス制御器90は、ペリフェラルコンポーネントバス88を介してのデータの流れを制御するペリフェラルコンポーネントバスアービター91を有しており、それはデータリンク92を介してペリフェラルコンポーネントバス88へ結合されており且つデータリンク94を介してシステムバス56に対するインターフェースを提供する。ペリフェラルコンポーネントバス制御器90は、ペリフェラルコンポーネントバスウォッチポイントをトリガさせる制御回路を包含しているペリフェラルコンポーネントバスアナライザ96を有している。ペリフェラルコンポーネントバスアナライザ96は、データリンク98を介して、例えばウォッチポイントのトリガ動作等のデバッグ用データをデバッグモジュール72へ供給する。
【0104】
ペリフェラルコンポーネントバスモジュール100はデータリンク102を介してペリフェラルコンポーネントバス88へ結合させることが可能である。ペリフェラルコンポーネントバス88へデータリンク106を介して結合されているペリフェラルコンポーネントバスインターフェース104は、ペリフェラルコンポーネントバス88に対してオフチップコンポーネントに対するインターフェースを提供している。
【0105】
本発明の1つの特徴は、マイクロコンピュータ50において1組の「ウォッチポイント(watchpoint)」を設けることである。ウォッチポイントは、マイクロコンピュータ50の実行状態をモニタし且つマイクロコンピュータ50内の多数の条件が満足された場合に信号を供給するメカニズムである。1つのウォッチポイントを活性化させるのに必要な条件が満足されると、そのウォッチポイントは「トリガ」されたという。マイクロコンピュータ50の回路自身における欠陥を識別するためにも、マイクロコンピュータ50上でデバッグ用プログラムが実行される場合にもウォッチポイントが使用される。ウォッチポイントは、例外を発生させるため、トレースメッセージを発生させるため、且つ一般的にデバッグ用データをユーザへ供給するために使用することが可能である。多数のウォッチポイントがマイクロコンピュータ50内に設けることが可能である。図3に関連して理解されるように、ウォッチポイントはCPU、システムバス、ペリフェラルコンポーネントバス、デバッグモジュールに対して設けることが可能である。当業者が理解するように、これら4つのタイプのウォッチポイントについて特に言及しているが、マイクロコンピュータ50のその他の部分においてはその他のウォッチポイントを設けることが可能である。
【0106】
図4は本発明に基づくウォッチポイントの仕様を例示している。本発明に基づくウォッチポイントは2つのメモリマップ型レジスタ110及び112によって画定即ち定義される。レジスタ110は1組のプレコンディション(precondition)即ち事前条件コードを格納するプレコンディションレジスタである。プレコンディションコードは、ウォッチポイントがイネーブル即ち動作可能状態とされる前、即ちそのウォッチポイントをトリガさせることが可能である前に、満足されねばならないマイクロコンピュータ50の特定の状態を画定(定義)する。本発明の1つの特徴は、マイクロコンピュータ50に対する1組のウォッチポイントにおける全てのプレコンディションレジスタが同一の組のプレコンディションを共用するという点である。即ち、全てのウォッチポイントに対する該1組のプレコンディション即ち事前条件は、そのウォッチポイントがCPUウォッチポイントであるか、デバッグモジュールウォッチポイントであるか、システムバスアナライザウォッチポイントであるか、又はその他のタイプのウォッチポイントであるかに拘わらずに同一である。
【0107】
アクション(action)レジスタ112は、プレコンディションレジスタ110におけるアクティブなプレコンディションコードの全てが満足された結果としてそのウォッチポイントがトリガされた場合にマイクロコンピュータ50が取ることが可能な1組のアクション(活動)を画定(定義)する。プレコンディションの場合におけるように、アクションレジスタ112によって特定される1組のアクションは、マイクロコンピュータ50内に定義されている全てのウォッチポイントに対して同一である。ウォッチポイントは、例えば、オペランドアドレス、命令値、命令アドレス、分岐、ブレークポイント命令、印刷命令に対して設けることが可能である。
【0108】
前に説明したように、プレコンディションレジスタ110及びアクションレジスタ112はメモリマップ型レジスタであり且つプログラマブル即ちプログラム可能である。プレコンディションレジスタ110及びアクションレジスタ112は、マイクロコンピュータ50のデバッギングモードが動作している場合にプログラムすることが可能である。プレコンディションレジスタ110及びアクションレジスタ112はマイクロコンピュータ50のメインメモリ内にメモリマップされるので、これらのレジスタは、例えば図1及び2に示したデバッガーシステム28等のマイクロコンピュータ50に対して外部的な装置によって読取り且つプログラムすることが可能である。当業者によって理解されるように、各ウォッチポイントに対して一様の即ち同一の組のプレコンディションが設けられているが、マイクロコンピュータ50内の全てのウォッチポイントに対して全てのプレコンディション即ち事前条件が満足されることが必要なわけではない。プレコンディションレジスタ及びアクションレジスタはプログラム可能なものであるから、特定のウォッチポイントのトリガ動作はプレコンディションレジスタ110内のどのプレコンディションがその特定のウォッチポイントに対してアクティブ即ち活性状態にあるかに依存する。特定のウォッチポイントに対してどのプレコンディションがアクティブであるかの選択は、マイクロコンピュータ50がデバッギングモードにあり且つプレコンディションレジスタ110の特定のフィールドがイネーブル即ち動作可能状態とされる場合に決定される。
【0109】
同一の態様で、一様な即ち同一な組のアクションが各ウォッチポイントに対して与えられているが、ウォッチポイントのトリガ動作に応答してマイクロコンピュータ50によって取られるアクションは、その特定のウォッチポイントに対してアクションレジスタ112内のどのアクションがアクティブであるかに依存する。ウォッチポイントのトリガ動作によって該1組のアクションにおける全てのアクションが取られることが必要なわけではない。特定のウォッチポイントに対してどのアクションがアクティブであるかの選択は、マイクロコンピュータ50がデバッギングモードにあり且つレジスタ112の特定のフィールドがイネーブルされている場合に決定される。
【0110】
プレコンディションレジスタ及びアクションレジスタは、マイクロコンピュータ50内において画定されている各ウォッチポイントに対して設けられている。マイクロコンピュータ50内に画定されている1組のウォッチポイントにおける各ウォッチポイントに対する1組のプレコンディション及びアクションは同一のものであるから、本発明に基づくウォッチポイントの画定(定義)はマイクロコンピュータ50における全てのウォッチポイントを一様な態様でプログラムすることを可能とする。従って、特定のタイプのウォッチポイントに対して特別のステップを取ることは必要ではなく、そのことはマイクロコンピュータ50のプログラミング及びデバッギングを簡単化させる。更に、プレコンディションレジスタ及びアクションレジスタはプログラム可能なものであるから、いつウォッチポイントがイネーブルされるか及びウォッチポイントのトリガに基づいてどのアクションをマイクロコンピュータ50が取るかについての決定を行う場合に柔軟性が著しく向上されている。
【0111】
オプションとして、メモリマップ型マッチレジスタ114はウォッチポイントの一部として設けることも可能である。マッチレジスタ114は、ウォッチポイントをトリガすることが可能となる前にマッチされねばならない特定のデータ値を有している。マッチレジスタ114内に格納されているマッチ条件は特定のタイプのウォッチポイントに対して特定的なものである。例えば、命令アドレスウォッチポイントは、マッチレジスタ114において特定されるアドレスレンジ(範囲)を有することが可能である。オペランドアドレスウォッチポイントは、マッチレジスタ114において特定されるアドレスレンジ及びデータ値/マスクを有することが可能である。命令値ウォッチポイントはマッチレジスタ114において特定される命令マスク及び命令値を有することが可能である。分岐ウォッチポイントはマッチレジスタ114において特定される分岐タイプを有することが可能である。従って、マッチレジスタ114はウォッチポイントがトリガされる前にマッチングされることを必要とする付加的な条件を与えることが可能であるが、これらの条件は特定のタイプのウォッチポイントに対して特定的なものである。
【0112】
図5A−5Cは1つのウォッチポイントに対して多数のプレコンディション(事前条件)を定義するプレコンディションレジスタ110の1実施例を示している。前述した如く、プレコンディションレジスタ110の画定即ち定義は、1組のウォッチポイントにおける各ウォッチポイントに対して同一である。本発明の1実施例においては、図5A−5Cに示したプレコンディションレジスタ110は64ビットメモリマップ型レジスタであるが、当業者にとって明らかなように、プレコンディションレジスタ110は任意の数のビットのものとすることが可能である。
【0113】
プレコンディションレジスタ110の第一フィールド116は1ビット基本イネーブルフィールドであり、それはウォッチポイントをイネーブル即ち動作可能状態又はディスエーブル即ち動作不能状態とさせる。第二フィールド118は1ビットアドレス空間識別子イネーブルフィールドであって、それはウォッチポイントのトリガ動作において現在のASID値を包含させることをイネーブル又はディスエーブルする。第三フィールド120は1ビットチェーンラッチイネーブルフィールドであり、それはウォッチポイントのトリガ動作において、特定のチェーンラッチを包含させるか否かを特定する。チェーンラッチについては後により詳細に説明する。第四フィールド122は4ビットチェーンラッチ識別フィールドであり、それは該1組のチェーンラッチのうちでどのチェーンラッチがウォッチポイントをトリガ動作する場合に使用されるかを定義するために使用される。第五フィールド124は1ビットイベントカウントイネーブルフィールドであって、それは、特定したイベントカウンタがそのウォッチポイントのトリガ動作の一部であるか否かを決定する。第六フィールド126は4ビットイベントカウンタ識別フィールドであって、それはマイクロコンピュータ50におけるどのイベントカウンタがそのウォッチポイントのトリガ動作において使用されるかを画定する。第七フィールド128は8ビットASID値フィールドであり、それはそのウォッチポイントのトリガ動作において使用されるASID値を画定する。第八フィールド130は2ビットCPU・ISAモード選択フィールドであって、それはそのウォッチポイントのトリガ動作を決定する場合にどのCPUモードが使用されるかを特定する。第九フィールド132は2ビットスーパーバイザーモード選択フィールドであってそれはそのウォッチポイントのトリガ動作においてCPUユーザーモードか又はスーパーバイザーモードが包含されるべきであるかを特定する。プレコンディションレジスタ110の残りのビットはリザーブ即ち予約済である。プレコンディションレジスタ112におけるフィールドに関するより詳細な情報は図5A−5Cにおける各フィールドの説明欄において記載されている。
【0114】
当業者によって理解されるように、図5A−5Cはプレコンディションレジスタ110の画定における1つの例を示すものであるが、デバッグされる特定のマイクロコンピュータ及びデバッギング手順に対して重要であると考えられる特定の条件に依存してその他の条件を特定することが可能である。更に、当業者によって理解されるように、図5A−5Cにおいて特定した条件の全てが与えられることが必要なものではない。例えば、図5A−5Cに示したものと異なるプレコンディション又はより少ない数のプレコンディションを有する特定のマイクロコンピュータに対して1組のプレコンディションを画定即ち定義することが可能である。その組のプレコンディションがマイクロコンピュータにおいて画定されている全てのウォッチポイントに対して一様なものである限り、任意の組のプレコンディションを画定することが可能である。
【0115】
次に、図6A−6Gを参照すると、これらの図は、1つのウォッチポイントがトリガされる場合にマイクロコンピュータ50によって取ることが可能な多数のアクションを画定するアクションレジスタ112の1実施例を示している。1実施例においては、図6A−6Gに示したアクションレジスタ112は64ビットメモリマップ型レジスタであるが、当業者にとって明らかなように、アクションレジスタ112は任意の数のビットとすることが可能である。
【0116】
最初の1ビットフィールド134は、マイクロコンピュータ50がデバッグ例外を持ち出すことにより応答する例外イネーブルフィールドを特定する。2番目の1ビットフィールド136はイベントカウントデクリメントイネーブルフィールドであり、それはイベントカウンタのデクリメント動作をイネーブル又はディスエーブルさせることによって応答する。3番目の4ビットフィールド138はイベントカウンタ識別フィールドであり、それはそのウォッチポイントがトリガされる場合にマイクロコンピュータ50が作用するイベントカウンタを画定する。4番目の2ビットフィールド40はイネーブルチェーンラッチ変更フィールドであり、それはウォッチポイントがトリガされる場合にマイクロコンピュータ50によってチェーンラッチが修正されるか否か及びどのように修正されるかを特定する。チェーンラッチはフィールド140に応答してセット、リセット、又は全く不変のままとさせることが可能である。5番目の4ビットフィールド142はチェーンラッチ識別フィールドであって、それはウォッチポイントがトリガされる場合にマイクロコンピュータ50によって変更されるべきチェーンラッチを特定する。6番目の2ビットフィールド144はトレースイネーブルフィールドであって、それは、マイクロコンピュータ50がウォッチポイントのトリガ動作と共にトレースメッセージの発生をイネーブル又はディスエーブルさせることによって応答する。7番目の1ビットフィールド146はトレースメッセージタイプフィールドであって、それはウォッチポイントがトリガされる場合にマイクロコンピュータ50によって発生されるトレースメッセージのタイプを特定する。8番目の1ビットフィールド148はイネーブルトレース時間スタンプフィールドであって、それはトレースメッセージ内に時間スタンプが包含されるか否かを特定する。9番目の1ビットフィールド150はトリガアウトイネーブルフィールドであって、それに対して、ウォッチポイントがトリガされる場合にトリガアウトメッセージの発生をイネーブル又はディスエーブルさせることによってマイクロコンピュータ50が応答する。このフィールドは、トリガイン/トリガアウトインターフェース78のトリガアウト信号経路を介してトリガアウトメッセージを発生するために使用される。10番目の1ビットフィールド152はオペランドアドレスマッチイネーブルフィールドであって、それはデバッグモジュール72におけるチェーンラッチ及びトレース発生アクションが成功したオペランドアドレスデータマッチに依存するか否かを決定する。11番目の1ビットフィールド154は性能カウンタインクリメントイネーブルフィールドであって、マイクロコンピュータ50は、そのウォッチポイントがトリガされる場合に、性能カウンタのインクリメント動作をイネーブル又はディスエーブルさせることによって応答する。12番目の1ビットフィールド156はリセット全性能カウンタフィールドであって、マイクロコンピュータ50は、そのウォッチポイントがトリガされる場合に、全ての性能カウンタをリセットさせることによって応答する。13番目の4ビットフィールド158は性能カウンタ識別フィールドであって、それはそのウォッチポイントがトリガされる場合にインクリメントされる性能カウンタを特定する。14番目のフィールド160はシステムバス物理的モジュール番号であって、それはウォッチポイントがトリガされる場合にバスマスターをフリーズ即ち凍結させる目的のためにシステムバスマスターモジュールのIDを特定する。15番目の1ビットフィールド162はフリーズイネーブルフィールドであって、それは、ウォッチポイントがトリガされる場合に、フィールド160によって特定されたシステムバスマスターが更なるシステムバストランズアクションを発生することが禁止されるか否かを特定する。アクションレジスタ112における残りのビットはリザーブ即ち予約済であり且つその他のアクションに対して割り当てることが可能である。アクションレジスタ112におけるフィールドに関するより詳細な情報は図6A−6Gにおける各フィールドの説明欄に記載してある。
【0117】
プレコンディションレジスタ110において定義したプレコンディションの場合におけるように、アクションレジスタ112において画定されている1組のアクションは該1組のウォッチポイントにおける全てのウォッチポイントに対して同一である。当業者によって理解されるように、デバッグされるマイクロプロセッサの特定の条件に依存してその他のアクションを与えることが可能である。当業者によって理解されるように、図6A−6Gにおいて定義してあるアクションの全てが与えられることが必要なものではない。例えば、図6A−6Gに示したものと異なるアクション又はそれより少ない数のアクションを有する特定のマイクロコンピュータに対して1組のアクションを画定即ち定義することが可能である。
【0118】
図7はウォッチポイントをトリガリング即ちトリガ動作させる本発明に基づく方法を示している。図7に示したステップを実行する前に、マイクロコンピュータ50は標準の技術を使用してメモリマップ型レジスタ110及び112に対して書込を行うことによってプレコンディションコードのうちのあるもの及びアクションコードのうちのあるものを活性化させる指示が与えられる。本方法は、ステップ170において開始し、その場合に、マイクロコンピュータ50はプレコンディションレジスタ110において特定されている全てのアクティブな即ち活性状態にあるプレコンディションが満足されているか否かを決定する。アクティブなプレコンディションとは特定のウォッチポイントに対してイネーブルされているプレコンディションレジスタ110において特定されているプレコンディションである。マイクロコンピュータ50は、レジスタ110におけるアクティブなビットをマイクロコンピュータ内のデータ値と比較することによってこの決定を行う。例えば、プレコンディションレジスタ110のフィールド128が特定のウォッチポイントに対してアクティブである場合には、マイクロコンピュータ50はフィールド120における8ビットASID値を、プログラムが実行されるに従い、マイクロコンピュータのASID値と比較する。フィールド128内の値が現在のASID値とマッチ即ち一致する場合には、そのプレコンディション即ち事前条件が満足されていることになる。全てのアクティブなプレコンディションが満足されていない場合には、そのウォッチポイントはディスエーブル状態のままであり且つトリガさせることは不可能である。
【0119】
一方、全てのアクティブなプレコンディションが満足されている場合に、マイクロコンピュータ50がステップ172へ移行し、そこで、マッチレジスタがそのウォッチポイントに対して画定されているか否か及びマッチレジスタ114において特定されている全てのマッチ条件がマッチされているか否かを決定する。マイクロコンピュータ50は、マッチレジスタ114内のビットをマイクロコンピュータ内のデータ値と比較することによってこの決定を行う。例えば、そのウォッチポイントがオペランドアドレスウォッチポイントである場合には、マッチレジスタ114はアドレスレンジ(範囲)を包含しており且つマイクロコンピュータ50はマッチレジスタ114内のアドレスレンジをそのアドレスの現在の値と比較する。マッチレジスタ114において特定されたアドレスが現在のアドレスとマッチする場合には、マッチ条件が満足されている。マッチレジスタ114において特定されている全てのマッチ条件がマッチされていない場合には、マイクロコンピュータ50はそのマッチ条件の実行及びモニタ動作を継続して行う。一方、マッチレジスタ114において特定されている全てのマッチ条件が満足された場合には、そのウォッチポイントがトリガされ且つマイクロコンピュータ50はステップ174へ移行し、そこでマイクロコンピュータ50はアクションレジスタ112のフィールド内のビットを読取る。次いで、マイクロコンピュータ50はアクションレジスタ112において格納されているアクティブなアクションコードによって特定されるアクションを取る。
【0120】
本発明の1つの特徴は、デバッギング即ちデバッグ動作を非侵略的に行うことが可能であるということであり、そのことは、デバッグ用情報を発生するために行われるアクションがマイクロコンピュータ50の動作に乱れを与えることがないことを意味している。プレコンディションレジスタ110及びアクションレジスタ112及びオプションのマッチレジスタ114はメモリマップ型であるので、マイクロコンピュータ50が通常のプログラム実行モードで動作している間に、これらのレジスタの内容を読取ることが可能であり且つこれらのレジスタ内のビットを変化させることが可能である。ウォッチポイントトリガ動作及びデバッグ動作を非侵略的なものとさせるために、専用の比較及びトリガ回路がCPUウォッチポイント制御器54、デバッグモジュール72、システムバスアナライザ84内に設けられている。図8はこの専用回路を示している。マイクロコンピュータ50において画定されている各ウォッチポイントに対して、組み合わせ論理を使用して構成されている比較器・トリガ処理論理回路180が設けられている。従って、2個の比較器及びトリガ処理論理回路がCPUウォッチポイント制御器54内に設けられており、2個の比較器及びトリガ処理論理回路がデバッグモジュール72内に設けられており、且つ2個の比較器及びトリガ処理論理回路がシステムバスアナライザ84内に設けられている。
【0121】
比較器論理182は、モニタ中のビットをプレコンディションレジスタ110のアクティブなフィールド内のビットと夫々AND処理することによって、モニタ中のプロセッサデータ値をプレコンディションレジスタ110のアクティブなフィールド内のビットとのビット毎の比較を実施する少なくとも1個の比較器を有している。プレコンディションレジスタ110のアクティブなビットがプロセッサデータ値181とマッチする場合には、比較器論理182は線184上にイネーブル信号を発生し、それは比較器論理186をイネーブルさせる。次いで、比較器186は、モニタ中のビットをマッチビット内のビットと夫々AND処理することによってマッチレジスタ114のアクティブなビットとマッチレジスタによって特定されたプロセッサデータ値との間のビット毎の比較動作を実施する。プロセッサデータ値188がマッチレジスタ114において特定されている値とマッチする場合には、ウォッチポイントがトリガされ且つ比較論理186は接続192を介してトリガリング(トリガ処理)論理190へ信号を送る。トリガ処理論理190は、トリガ処理信号192とアクションレジスタ112のアクティブなビットとの間で夫々AND処理することによってトリガ処理信号192とアクションレジスタ112のアクティブなビットとの間で組合わせ論理を使用したビット毎の比較を行う。全ての信号がアクティブである場合には、トリガ処理論理190は夫々の信号をアクションレジスタ112において特定されたラッチ、装置、カウンタ、例外ハンドラ等へ送る。ウォッチポイントが画定されている各コンポーネントにおいて比較器及びトリガ処理論理18を見つけ出すことはマイクロコンピュータ50において精密な例外モデルを維持することを可能とする。何故ならば、アクティブなプレコンディションの満足とウォッチポイントのトリガ動作との間の時間が短く維持され、従ってウォッチポイントのより精密なトリガ動作を維持するからである。比較器及びトリガ処理論理はモニタ中のマイクロコンピュータ50の一部に位置されているので、ウォッチポイントはソフトウエアの介入なしで且つマイクロコンピュータ50の動作に侵略的な影響を与えることなしにトリガさせることが可能である。
【0122】
前述した如く、本発明の特徴のうちの1つは、マイクロコンピュータ50における「チェーンラッチ」と呼ぶことが可能な1組のラッチを包含している点である。このようなラッチの1例を図9に示してある。ラッチ200は任意のタイプのラッチとすることが可能である。ラッチ200はセット入力202、リセット入力204、クロック入力205、出力206を有している。ラッチ200のセット入力及びリセット入力はトリガ処理論理190へ結合しており、且つウォッチポイントがトリガされると、ラッチ200は図6Bに示したアクションレジスタ112におけるビット6及び7の状態に依存してセットされるか又はリセットされる。クロック入力205はシステムクロックと同期されているクロック信号を受取る。
【0123】
前述した如く、1組のラッチをマイクロコンピュータ50に設けることが可能である。ウォッチポイントと同数のラッチを設けることが可能であり、又ウォッチポイントより多くの数又は少ない数のラッチを設けることも可能である。図5A−5C及び6A−6Gにおいて、4個のビットが1個のチェーンラッチを識別するために使用されており、従って16個のチェーンラッチを使用することが可能である。この1組のラッチはデバッグ処理の目的のために複数個のウォッチポイントを一体的にチェーン化させることを可能とする。例えば、あるウォッチポイントがトリガされると、トリガ処理論理190がアクションレジスタ112のビット8乃至11を読取り且つクロック入力205の制御下においてラッチ200をセット又はリセットするためにセット入力202又はリセット入力204へ信号を送る。その結果、ウォッチポイントのトリガ処理はラッチ200における状態ビットとして格納される。ラッチ200の出力206は別のウォッチポイントのプレコンディションレジスタ110のビット3乃至6へ経路付けさせることが可能である。従って、最初のウォッチポイントがトリガされた後の次のマイクロプロセッサクロックサイクルにおいてラッチ200の出力状態がそのプレコンディションレジスタを介して別のウォッチポイントに対するプレコンディションとして使用可能である。従って、マイクロコンピュータ50内にラッチを包含させることは、複数個のウォッチポイントを一体的にチェーン化させることを可能とし、従って1つのウォッチポイントのトリガ動作を他のウォッチポイントのトリガ動作を制御するために使用することが可能である。更に、プレコンディションレジスタ110及びアクションレジスタ112はプログラム可能なものであるから、異なるウォッチポイントを柔軟性があり且つ任意的な態様で一体的にチェーン化させることが可能である。
【0124】
図10A及び図10Bは本発明に基づく1組のウォッチポイント及びチェーンラッチを有するマイクロコンピュータ50の1実施例を示している。図10A及び図10Bは、CPUウォッチポイント制御器54、2個のチェーンラッチ200、2個の比較器・トリガ処理論理回路180において画定されている2個のウォッチポイントと、システムバスアナライザ84、2個のチェーンラッチ200、2個の比較器・トリガ処理論理回路180において画定されている2個のウォッチポイントと、デバッグモジュール72、2個のチェーンラッチ200、2個の比較器・トリガ処理論理回路180において画定されている2個のウォッチポイントとを示している。前に説明したように、各ウォッチポイントはプレコンディションレジスタ110A−110Fとアクションレジスタ112A−112Fとを有している。各ウォッチポイントは、又、比較器・トリガ処理論理180A−180Fを有している。図8に関連して説明したように、プレコンディションレジスタ110A−110Fのビット及びアクションレジスタ112A−112Fのビットは、夫々、接続113A−113F及び115A−115Fを介して比較器・トリガ処理論理180A−180Fへ接続されている。1組のチェーンラッチ200A−200Fも設けられている。更に、付加的なトリガインラッチ200Gがデバッグモジュール72内に設けられている。トリガインラッチ200Gはラッチ200A−200Fと同じタイプのラッチとすることが可能である。ラッチ200Gはトリガイン/トリガアウトインターフェース78上のトリガイン信号に応答し、それは、ウォッチポイントに対するプレコンディション即ち事前条件として例えばロジックアナライザ等の外部システムによって使用することが可能である。ラッチ200Gは、又、メモリマップ型レジスタと関連することが可能であり、そのことはシステムソフトウエア又は外部信号が直接的に該ラッチをセット又はリセットすることを可能とする。
【0125】
マイクロコンピュータ50における各ウォッチポイント間においての完全なる接続性を与えるために、各ラッチはマルチプレクサ210A−210F及びデマルチプレクサ212A−212Fと関連している。各マルチプレクサ210A−210Fは接続117A−117Fを介してプレコンディションレジスタ110A−110Fのビット3乃至6へ夫々結合される選択出力信号を有している。各マルチプレクサは接続214A−214Gを介してラッチ200A−200Gの各出力206A−206Gへ接続される多数の入力を有している。各ラッチは、そのセット入力202A−202F及びリセット入力204A−204Fを、夫々、接続213A−213Fを介して、デマルチプレクサ212A−212Fの出力へ接続している。比較器・トリガ処理論理180A−180Fが、夫々、接続217A−217Fを介してデマルチプレクサ212A−212Fへ結合している。
【0126】
動作について説明すると、プレコンディションレジスタ110と、アクションレジスタ114と、比較器・トリガ処理論理回路180とを有するいずれかのウォッチポイントをマルチプレクサ210と、ラッチ200と、デマルチプレクサ212とを有する接続用回路を使用してその他のウォッチポイントへ接続させることが可能である。例えば、プレコンディションレジスタ110Eと、アクションレジスタ112Eと、比較器・トリガ処理論理180Eとを有するデバッグモジュールウォッチポイントのトリガ動作を、プレコンディションレジスタ110Aと、アクションレジスタ112Aと、比較器・トリガ処理論理180Aとを有するCPUウォッチポイントに従属させることが望まれているものと仮定する。プレコンディションレジスタ110Aを、該1組のプレコンディションコードの中でいずれかの所望のプレコンディションコードをイネーブルさせるようにプログラムする。該1組のアクションコードの中でいずれか所望のアクションコードを活性化するようにアクションレジスタ112Aをプログラムし、且つ、特に、アクションレジスタ112Aのフィールド142をラッチ200Cを識別する4ビットコードでプログラムする。アクションレジスタ112Aのフィールド140を、該ウォッチポイントのトリガ動作と共に、ラッチ200Cをセットするようにプログラムする。プレコンディションレジスタ110Eを該1組のプレコンディションコードの中でいずれかの所望のプレコンディションコードをイネーブルさせるようにプログラムし、且つ、特に、プレコンディションレジスタ110Eのフィールド120を該プレコンディション内に1個のラッチを包含させることをイネーブルさせるべくプログラムし、且つプレコンディションレジスタ110Eのフィールド122をラッチ200Cを識別する4ビットコードでプログラムする。アクションレジスタ112Eを該1組のアクションコードのうちでいずれか所望のアクションコードを活性化させるべくプログラムする。
【0127】
その後に、プログラムの実行期間中に、該アクティブなプレコンディションが全てが特定されると(且つオプションのマッチレジスタにおける付加的なマッチ条件がマッチされると)、該ウォッチポイントがトリガし且つ比較器・トリガ処理論理180Aがアクションレジスタ112Aのフィールド142に応答してデマルチプレクサ212Aへ選択信号を送る。デマルチプレクサ212Aはこの信号に応答してラッチ202Cを選択し且つクロック入力205A上のクロック信号及びアクションレジスタ112Aのフィールド140に応答して該ラッチをセットする。
【0128】
次のクロックサイクルにおいて、ラッチ200の出力が全てのマルチプレクサ210A−210Fへ供給される。マルチプレクサ210Eはプレコンディションレジスタ110Eのフィールド122に応答してラッチ200Cの出力206Cを選択する。プレコンディションレジスタ110Eにおいて特定された全てのプレコンディション(事前条件)が満足されると(且つ、オプションのマッチレジスタにおける付加的なマッチ条件がマッチされると)、該ウォッチポイントがトリガし且つ比較器・トリガ処理論理180Eがアクションレジスタ112Eに応答してアクションレジスタ112Eにおけるアクティブなアクションコードに応答する。
【0129】
上述した実施例は、マイクロコンピュータにおけるいずれかのラッチ及びいずれかのウォッチポイントを共に結合させることが可能であることを示している。特に、上述した例のアナライザ(解析器)はCPUウォッチポイントをデバッグモジュールウォッチポイントへ結合するために使用されているシステムバスアナライザにおけるラッチを例示している。
【0130】
理解されるように、複数個のプレコンディションレジスタが単一のラッチ出力に応答することが可能である。更に理解されるように、複数個のアクションレジスタが単一のラッチをセット又はリセットすることが可能である。
【0131】
マイクロコンピュータ50内に設けられており且つ図10A及び図10Bに示した回路の結果として、マイクロコンピュータ内の複数個のウォッチポイントの間で完全なる接続性が提供されている。いずれのウォッチポイントも、チェーンラッチを介して、該マイクロコンピュータ内のその他のウォッチポイントのプレコンディションに参加させるために使用することが可能である。ウォッチポイントは任意の態様で結合させることが可能である。このことはデバッグ用データの有用で且つ洗練されたフィルタ処理を提供することを可能とさせる。例えば、2個のウォッチポイントは、それらが、両方ともトリガされた場合に3番目のウォッチポイントをイネーブルさせるようにAND処理させることが可能である。別の例においては、1個のウォッチポイントを第二のウォッチポイントをイネーブルさせるチェーンラッチをセットさせるために使用することが可能であり、且つ該第二ウォッチポイントをディスエーブルさせるために該チェーンラッチをリセットさせるために第三ウォッチポイントを使用することが可能である。別の例においては、このイネーブル及びディスエーブル機能を与えるためにウォッチポイントのグループを結合させることが可能である。例えば、1つのグループのウォッチポイントを1個のウォッチポイントをイネーブルさせるためにOR処理することが可能であり、且つそのウォッチポイントをディスエーブルさせるために別のグループのウォッチポイントをOR処理させることが可能である。
【0132】
プログラム可能なプレコンディションレジスタとアクションレジスタとを具備している本発明のウォッチポイントがチェーンラッチを使用して任意の態様で結合される場合には、強力且つ洗練されたデバッギング動作及びデバッギングデータのフィルタ処理を簡潔な態様で達成することが可能である。
【0133】
ウォッチポイントトリガ処理イベントを一体的に結び付けるためにラッチと関連して一様にプログラム可能なウォッチポイントを結合させることによって与えられるフィルタ処理機能は、マイクロコンピュータ50において必要とされる回路の量を不当に増加させることなしに、オンチップ上で洗練され且つ複雑なデバッギング動作を実施することを可能とさせる。更に、複雑なデバッギング動作を実施するための能力はオンチップ上に設けられているので、外部の高価なロジックアナライザが最早必要とされるものではない。又、プログラム可能なウォッチポイント及びラッチはデバッギング情報用のフィルタとして使用することが可能であるので、オフチップへ送られるトレース情報の量を著しく減少させることが可能である。何故ならば、デバッグデータを処理するかなりの部分はオンチップで行うことが可能だからである。
【0134】
次に、図11を参照すると、それは2個のウォッチポイントの動作をどのようにしてAND処理することが可能であるかを例示している。信号250は任意のウォッチポイントの出力を示している。一連のイネーブル及びディスエーブルイベントが該ウォッチポイントのトリガ動作によって発生されている。イネーブルイベントはイネーブル用のウォッチポイントの出力が高論理レベルへ遷移する場合に発生され、且つディスエーブルイベントはイネーブル用ウォッチポイントの出力が低レベルへ遷移する場合に発生される。イネーブル用ウォッチポイントは該イネーブル用ウォッチポイントに関してイネーブルイベントが発生する場合にセットされ且つイネーブル用ウォッチポイントに関してディスエーブルイベントが発生する場合にリセットされるラッチへ結合されている。信号252は、イネーブル用ウォッチポイントがイネーブルイベントを発生する場合にラッチ出力状態が高論理レベルへ遷移し且つイネーブル用ウォッチポイントがディスエーブルイベントを発生する場合に低論理レベルへ遷移することを示している。ラッチ出力状態はウォッチポイントXに対するプレコンディションレジスタへ結合される。信号254は、ウォッチポイントXが信号254が高論理レベルにある場合にそのプレコンディションレジスタによってイネーブルされ且つ信号254が低論理レベルにある場合にそのプレコンディションレジスタによってディスエーブルされることを示している。信号256は、ウォッチポイントXがトリガする場合を示している。信号250と254とが高レベルにある場合には、信号256は高論理レベルにあり、ウォッチポイントXがトリガされたことを表し、且つ信号250と254とが高論理レベルにない場合には、信号256は低論理レベルにあり、ウォッチポイントXがトリガされていないことを表す。従って、ウォッチポイントXは、そのイネーブル用ウォッチポイントがトリガしており、且つウォッチポイントXのプレコンディションが満足されている場合にのみトリガする。ウォッチポイントのトリガ動作は、上昇又は下降クロックエッジ上で発生する。
【0135】
図12はどのようにして1つのウォッチポイントが2番目のウォッチポイントによってイネーブルされ且つ3番目のウォッチポイントによってディスエーブルされるかを示している。図12において、信号258はラッチをセットするために使用されるイネーブル用ウォッチポイントの出力である。信号260は該ラッチをリセットするために使用されるディスエーブル用ウォッチポイントの出力である。該ラッチの出力はウォッチポイントXのプレコンディションレジスタへ1つのプレコンディションとして供給される。ウォッチポイントXはそれ自身のプレコンディションレジスタを有しており、それはウォッチポイントXがイネーブルされる条件を画定する。信号266はトリガされた場合のウォッチポイントXの状態を表しており、即ち該ウォッチポイントがトリガされた場合には高論理レベルへ遷移し、且つ該ウォッチポイントがトリガされない場合には低論理レベルへ遷移する。その結果、信号262が高論理レベルにあり且つ信号264が高論理レベルにある場合には、信号266は高論理レベルへ遷移する。
【0136】
イベントのシーケンスは以下の通りである。マッチポイント出力258が領域268において高論理レベルへ遷移すると、イネーブルイベントが発生する。このことはラッチ出力状態を高論理レベルへセットする。従って、ウォッチポイントXがイネーブルされるが、信号264が高論理レベルへ遷移する場合に領域270における第一マッチが発生するまでトリガすることはない。その後に、信号260が低論理レベルから高論理レベルへ遷移して領域272においてディスエーブルイベントを発生する。この信号260の遷移が該ラッチをリセットさせ、従って信号262上の論理レベルは高論理レベルから低論理レベルへ遷移する。この期間中に、信号264も低論理レベルへ遷移し従ってウォッチポイントXは最早イネーブルされておらず、従ってウォッチポイントXはトリガすることはない。その後に、信号258は領域274において低論理レベルから高論理レベルへ遷移してイネーブルイベントを発生し、信号262を低論理レベルから高論理レベルへ遷移させる。然しながら、信号264は未だに低論理レベルにあるので、ウォッチポイントXはトリガすることはなく、信号264が高論理レベルへ遷移し且つ第二マッチが領域276において発生した場合にのみトリガする。その後に信号260は低論理レベルから高論理レベルへ遷移して領域278においてディスエーブル用ウォッチポイント出力を発生し、そのことは該ラッチをクリアし、従って信号262は高論理レベルから低論理レベルへ遷移する。その後に、信号258は低論理レベルから高論理レベルへ遷移してイネーブルイベントを発生し、該イベントが該ラッチをセットし且つ信号262を低論理レベルから高論理レベルへ遷移させる。ウォッチポイントのトリガ動作は上昇又は下降クロックエッジ上で発生する。
【0137】
図13は、ウォッチポイントXがイネーブルされるウォッチポイントであると共にディスエーブルイベントを発生するという点を除いて、図12におけるものと同一のタイプのシーケンスを示している。線286上のイネーブル用ウォッチポイント出力によって発生されるイネーブルイベントの結果としてウォッチポイントXがトリガすると、ウォッチポイントXはディスエーブルイベントを発生してラッチをリセットさせ、従ってラッチ出力状態信号288は高論理レベルから低論理レベルへ遷移する。該ラッチは再度ウォッチポイントXをイネーブルさせるためには次のイネーブルイベント294によってリセットされねばならない。このウォッチポイントプログラミングの例は、ウォッチポイントXをしてイネーブル条件をディスエーブルさせ、該イネーブル条件は、ウォッチポイントXを再度トリガさせるためには再度発生せねばならない。ウォッチポイントのトリガ動作は上昇又は下降クロックエッジ上で発生する。
【0138】
図14は図12と同様な別の例を示している。図14において、複数個のウォッチポイントEO―ENが複数個のディスエーブル用ウォッチポイントEO―ENとOR処理され、従っていずれか1つのウォッチポイントEO―ENのトリガ動作はウォッチポイントXをイネーブルさせ且つウォッチポイントDO―DNのうちのいずれか1つのトリガ動作はウォッチポイントXをディスエーブルさせる。ウォッチポイントEO―ENのいずれかのトリガ動作、ウォッチポイントDO―DNのうちのいずれかのトリガ動作、及びウォッチポイントXのトリガ動作は上昇又は下降クロックエッジ上で発生する。
【0139】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ制限されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
【図面の簡単な説明】
【図1】 第一のタイプのマイクロコンピュータデバッギングシステムを示した概略図。
【図2】 別のタイプのマイクロコンピュータデバッギングシステムを示した概略図。
【図3】 本発明に基づく全体的なコンピュータシステムの構成を示した概略図。
【図4】 本発明に基づくウォッチポイントの構成を示した概略図。
【図5A】 図4に示したプレコンディションレジスタの定義の一部を示した概略図。
【図5B】 図4に示したプレコンディションレジスタの定義の一部を示した概略図。
【図5C】 図4に示したプレコンディションレジスタの定義の一部を示した概略図。
【図6A】 図4に示したアクションレジスタの定義の一部を示した概略図。
【図6B】 図4に示したアクションレジスタの定義の一部を示した概略図。
【図6C】 図4に示したアクションレジスタの定義の一部を示した概略図。
【図6D】 図4に示したアクションレジスタの定義の一部を示した概略図。
【図6E】 図4に示したアクションレジスタの定義の一部を示した概略図。
【図6F】 図4に示したアクションレジスタの定義の一部を示した概略図。
【図6G】 図4に示したアクションレジスタの定義の一部を示した概略図。
【図7】 本発明に基づいてウォッチポイントがトリガ動作される方法を示したフローチャート。
【図8】 本発明に基づいてウォッチポイントをトリガ動作させる回路を示した概略図。
【図9】 本発明に基づくラッチを示した概略図。
【図10A】 本発明に基づいてウォッチポイントをリンクさせるためにどのようにしてラッチが使用されるかの構成の一部を示した概略図。
【図10B】 本発明に基づいてウォッチポイントをリンクさせるためにどのようにしてラッチが使用されるかの構成の一部を示した概略図。
【図11】 本発明に基づいてどのようにして2個のウォッチポイントをAND処理するかを示した概略図。
【図12】 どのようにして2個のウォッチポイントが3番目のウォッチポイントをイネーブル及びディスエーブルさせるかを示した概略図。
【図13】 どのようにして2個のウォッチポイントが3番目のウォッチポイントをイネーブル及びディスエーブルさせるかを示しており第一及び第二ウォッチポイントが第三ウォッチポイントと同一である場合の概略図。
【図14】 どのようにして複数個のウォッチポイントからなるグループ内のいずれかのウォッチポイントが3番目のウォッチポイントをイネーブルさせ且つ別のグループのウォッチポイントにおけるいずれかのウォッチポイントが該3番目のウォッチポイントをディスエーブルさせるかを示した概略図。
【符号の説明】
50 マイクロコンピュータ
51 中央処理装置コア
52 中央処理装置(CPU)
54 CPUウォッチポイント制御器
56 システムバス
58 データリンク
60 RAMインターフェース
62 データリンク
64 ROMインターフェース
66 データリンク
70 デバッグモジュール
78 トリガイン/トリガアウトインターフェース
80 システムバス制御器
81 システムバスアービター(調停器)
84 システムバスアナライザ
88 ペリフェラルコンポーネントバス
90 ペリフェラルコンポーネントバス制御器
91 ペリフェラルコンポーネントバスアービター
96 ペリフェラルコンポーネントバスアナライザ
100 ペリフェラルコンポーネントバスモジュール
104 ペリフェラルコンポーネントバスインターフェース
Claims (16)
- コンピュータシステムにおいて、
少なくとも1個の中央処理装置、
前記少なくとも1個の中央処理装置へ結合されているメモリユニット、
前記コンピュータシステムにおいて設けられている1組のウオッチポイントであって、前記1組のウオッチポイントにおける各ウオッチポイントが、前記ウオッチポイントがトリガーされるべき条件を設定するための第一複数個のフィールドを具備しているプログラム可能なプレコンディションレジスタと、前記ウオッチポイントがトリガーされた場合に前記コンピュータシステムがとるべきアクションを設定するための第2複数個のフィールドを具備しているプログラム可能なアクションレジスタと、前記コンピュータシステムにおける特定の箇所においての処理中のデータを前記プレコンディションレジスタ内に設定されているトリガー条件と比較し且つ前記トリガー条件が満足される場合に前記アクションレジスタ内に設定されているアクションを読み出してウオッチポイントの出力として出力する比較・トリガー手段と、を有している1組のウオッチポイント、
1組のラッチ、
前記1組のウオッチポイントの内の第1ウオッチポイントがトリガーされた場合に前記第1ウオッチポイントの前記アクションレジスタによって指定される前記1組のラッチの内の一つのラッチを前記第1ウオッチポイントの前記比較・トリガー手段と別の第2ウオッチポイントの前記プレコンディションレジスタとの間に接続させる接続手段、
を有していることを特徴とするコンピュータシステム - 請求項1において、前記接続手段が、対応するウオッチポイントの出力と前記1組のラッチにおける各ラッチの入力との間に結合しているデマルチプレクサを有していることを特徴とするコンピュータシステム。
- 請求項2において、前記接続手段が、前記1組のラッチにおける各ラッチの出力と対応するウオッチポイントのプレコンディションレジスタとの間に結合しているマルチプレクサを有していることを特徴とするコンピュータシステム。
- 請求項3において、更に、前記1組のウオッチポイントに対応して同数の1組のデマルチプレクサが設けられていることを特徴とするコンピュータシステム。
- 請求項4において、更に、前記1組のウオッチポイントに対応して同数の1組のデマルチプレクサが設けられていることを特徴とするコンピュータシステム。
- 請求項5において、更に、前記1組のラッチにおける1個のラッチと夫々関連してトリガーインラッチが設けられており、前記トリガーインラッチは、前記コンピュータシステム外部の信号に応答して、前記ラッチをセット又はリセットさせる状態を有していることを特徴とするコンピュータシステム。
- 請求項6において、単一の集積回路チップ上に実現されていることを特徴とするコンピュータシステム。
- 請求項2において、前記デマルチプレクサが、前記第1ウオッチポイントの前記アクションレジスタの状態に応答して、前記1組のラッチにおける1個のラッチの入力を選択するために前記デマルチプレクサを制御する選択出力を有していることを特徴とするコンピュータシステム。
- 請求項3において、前記マルチプレクサが、前記第1ウオッチポイントの前記プレコンディションレジスタの状態に応答して、前記1組のラッチにおける1個のラッチの出力を選択するために前記マルチプレクサを制御する選択入力を有していることを特徴とするコンピュータシステム。
- 請求項1において、前記プレコンディションレジスタが1組のプレコンディションコードを格納し、前記1組のプレコンディションコードが前記1組のウオッチポイントにおける各ウオッチポイントに対して同一であることを特徴とするコンピュータシステム。
- 請求項10において、前記アクションレジスタが1組のアクションコードを格納し、前記1組のアクションコードが前記1組のウオッチポイントにおける各ウオッチポイントに対して同一であることを特徴とするコンピュータシステム。
- 請求項10において、前記1組のウオッチポイントが、オペランドアドレス、命令値、命令アドレス、分岐、ブレークポイント命令、印刷命令に対する複数個のタイプのウオッチポイントを包含していることを特徴とするコンピュータシステム。
- 請求項12において、各ウオッチポイントが、更に、少なくとも1個のマッチコードを格納するプログラム可能なマッチレジスタを有しており、前記マッチコードは前記処理中のデータが前記プレコンディションレジスタ内に設定されているトリガー条件を満足した後に前記ウオッチポイントがトリガーされるべき付加的な条件を表していることを特徴とするコンピュータシステム。
- 請求項13において、前記マッチコードが、アドレスレンジ、データ値、データマスク、命令値、命令マスク、分岐タイプのうちの少なくとも1つを有していることを特徴とするコンピュータシステム。
- 請求項10において、前記1組のプレコンディションコードが、基本イネーブルコード、アドレス空間識別子イネーブルコード、アドレス空間識別子コード、ラッチイネーブルコード、ラッチ識別子コード、イベントカウンタイネーブルコード、イベントカウンタ識別子コード、ISAモードイネーブルコード、CPUスーパーバイザリモード選択コードを有していることを特徴とするコンピュータシステム。
- 請求項11において、前記1組のアクションコードが、例外イネーブルコード、イベントカウンタデクリメントイネーブルコード、イベントカウンタ識別子コード、ラッチ変更コード、ラッチ識別子コード、性能カウンタインクリメントイネーブルコード、リセット全性能カウンタコード、性能カウンタ識別子コード、トレースイネーブルコード、トレースメッセージタイプコード、イネーブルトレース時間スタンプコード、トリガアウトイネーブルコード、インタラプトイネーブルコードを有していることを特徴とするコンピュータシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/411786 | 1999-10-01 | ||
US09/411,786 US6557119B1 (en) | 1999-10-01 | 1999-10-01 | Microcomputer debug architecture and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001147836A JP2001147836A (ja) | 2001-05-29 |
JP4987182B2 true JP4987182B2 (ja) | 2012-07-25 |
Family
ID=23630326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000301822A Expired - Fee Related JP4987182B2 (ja) | 1999-10-01 | 2000-10-02 | コンピュータシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US6557119B1 (ja) |
EP (1) | EP1089184B1 (ja) |
JP (1) | JP4987182B2 (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6725363B1 (en) * | 2000-07-31 | 2004-04-20 | Sun Microsystems, Inc. | Method for filtering instructions to get more precise event counts |
US6829701B2 (en) * | 2000-12-15 | 2004-12-07 | Intel Corporation | Watchpoint engine for a pipelined processor |
US7185234B1 (en) * | 2001-04-30 | 2007-02-27 | Mips Technologies, Inc. | Trace control from hardware and software |
GB2380827A (en) * | 2001-10-12 | 2003-04-16 | Siroyan Ltd | Debugging of processors using two separate event detectors |
WO2003034224A2 (en) * | 2001-10-12 | 2003-04-24 | Pts Corporation | Debug exception registers |
WO2003034226A2 (en) * | 2001-10-12 | 2003-04-24 | Pts Corporation | Debugging of processors |
US8225194B2 (en) * | 2003-01-09 | 2012-07-17 | Kaleidescape, Inc. | Bookmarks and watchpoints for selection and presentation of media streams |
US20050050103A1 (en) * | 2003-07-15 | 2005-03-03 | Kaleidescape | Displaying and presenting multiple media streams from multiple DVD sets |
US7404112B2 (en) * | 2003-05-09 | 2008-07-22 | Hewlett-Packard Development Company, L.P. | Data selection circuit for performance counter |
US7475302B2 (en) * | 2003-08-06 | 2009-01-06 | Hewlett-Packard Development Company, L.P. | Decoded match circuit for performance counter |
US20050050524A1 (en) * | 2003-08-25 | 2005-03-03 | Arm Limited | Generating software test information |
US7328429B2 (en) * | 2003-11-13 | 2008-02-05 | Intel Corporation | Instruction operand tracing for software debug |
US7500152B2 (en) * | 2003-12-05 | 2009-03-03 | Freescale Semiconductor, Inc. | Apparatus and method for time ordering events in a system having multiple time domains |
JP4526111B2 (ja) * | 2003-12-19 | 2010-08-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マイクロコンピュータおよびデバッグ方法 |
CN1297919C (zh) * | 2004-01-16 | 2007-01-31 | 中兴通讯股份有限公司 | 一种单片机后台调试的***及方法 |
US20050283669A1 (en) * | 2004-06-03 | 2005-12-22 | Adkisson Richard W | Edge detect circuit for performance counter |
US7624319B2 (en) * | 2004-06-03 | 2009-11-24 | Hewlett-Packard Development Company, L.P. | Performance monitoring system |
US7676530B2 (en) * | 2004-06-03 | 2010-03-09 | Hewlett-Packard Development Company, L.P. | Duration minimum and maximum circuit for performance counter |
US7346824B2 (en) * | 2004-06-03 | 2008-03-18 | Hewlett-Packard Development Company, L.P. | Match circuit for performing pattern recognition in a performance counter |
US20060294433A1 (en) * | 2005-06-28 | 2006-12-28 | Thelen Greg W | Debugging using watchpoints |
US7373565B2 (en) * | 2005-08-23 | 2008-05-13 | Hewlett-Packard Development Company, L.P. | Start/stop circuit for performance counter |
US7765526B2 (en) * | 2005-09-30 | 2010-07-27 | Intel Corporation | Management of watchpoints in debuggers |
US7613955B2 (en) * | 2006-01-06 | 2009-11-03 | Microsoft Corporation | Collecting debug data from a wireless device |
US7650555B2 (en) * | 2006-07-27 | 2010-01-19 | International Business Machines Corporation | Method and apparatus for characterizing components of a device under test using on-chip trace logic analyzer |
JP5151996B2 (ja) * | 2007-02-14 | 2013-02-27 | 日本電気株式会社 | 半導体集積回路及びデバッグ・トレース回路 |
US7870455B2 (en) | 2007-12-12 | 2011-01-11 | Infineon Technologies Ag | System-on-chip with master/slave debug interface |
JP5107131B2 (ja) * | 2008-04-28 | 2012-12-26 | 株式会社東芝 | テストケース生成装置およびその生成方法、ならびにテストケース生成のためのプログラム |
US9037911B2 (en) * | 2010-12-09 | 2015-05-19 | Advanced Micro Devices, Inc. | Debug state machines and methods of their operation |
US8635497B2 (en) | 2011-06-28 | 2014-01-21 | Freescale Semiconductor, Inc. | Data processing system having a sequence processing unit and method of operation |
US10261887B1 (en) * | 2017-04-26 | 2019-04-16 | Cadence Design Systems, Inc. | Method and system for computerized debugging assertions |
GB2574231B (en) * | 2018-05-31 | 2020-12-30 | Advanced Risc Mach Ltd | An apparatus and method for triggering action performance |
Family Cites Families (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2159100B (en) | 1984-05-18 | 1988-10-26 | Unisys Corp | Passbook printer |
EP0165600B1 (en) | 1984-06-20 | 1991-11-21 | Convex Computer Corporation | Input/output bus for computer |
US4935867A (en) | 1986-03-04 | 1990-06-19 | Advanced Micro Devices, Inc. | Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations |
US4821178A (en) * | 1986-08-15 | 1989-04-11 | International Business Machines Corporation | Internal performance monitoring by event sampling |
US4814981A (en) | 1986-09-18 | 1989-03-21 | Digital Equipment Corporation | Cache invalidate protocol for digital data processing system |
US5483518A (en) | 1992-06-17 | 1996-01-09 | Texas Instruments Incorporated | Addressable shadow port and protocol for serial bus networks |
JPH0666056B2 (ja) | 1989-10-12 | 1994-08-24 | 甲府日本電気株式会社 | 情報処理システム |
JPH03217949A (ja) | 1990-01-23 | 1991-09-25 | Hitachi Ltd | 計算機システム |
US5452432A (en) | 1990-08-14 | 1995-09-19 | Chips And Technologies, Inc. | Partially resettable, segmented DMA counter |
JP2984463B2 (ja) | 1991-06-24 | 1999-11-29 | 株式会社日立製作所 | マイクロコンピュータ |
US5423050A (en) | 1991-11-27 | 1995-06-06 | Ncr Corporation | Intermodule test across system bus utilizing serial test bus |
US5724549A (en) | 1992-04-06 | 1998-03-03 | Cyrix Corporation | Cache coherency without bus master arbitration signals |
GB2266606B (en) | 1992-04-27 | 1996-02-14 | Intel Corp | A microprocessor with an external command mode |
US5448576A (en) | 1992-10-29 | 1995-09-05 | Bull Hn Information Systems Inc. | Boundary scan architecture extension |
JPH06150023A (ja) | 1992-11-06 | 1994-05-31 | Hitachi Ltd | マイクロコンピュータ及びマイクロコンピュータシステム |
JP3524110B2 (ja) | 1992-11-06 | 2004-05-10 | 株式会社ルネサステクノロジ | マイクロコンピュータシステム |
JP3231429B2 (ja) | 1992-11-06 | 2001-11-19 | 株式会社日立製作所 | 中央処理装置と乗算器とを有する半導体集積回路装置 |
US5627842A (en) | 1993-01-21 | 1997-05-06 | Digital Equipment Corporation | Architecture for system-wide standardized intra-module and inter-module fault testing |
JP2731692B2 (ja) | 1993-04-28 | 1998-03-25 | 日本電気アイシーマイコンシステム株式会社 | デバッグ装置 |
US5598551A (en) | 1993-07-16 | 1997-01-28 | Unisys Corporation | Cache invalidation sequence system utilizing odd and even invalidation queues with shorter invalidation cycles |
EP0636976B1 (en) | 1993-07-28 | 1998-12-30 | Koninklijke Philips Electronics N.V. | Microcontroller provided with hardware for supporting debugging as based on boundary scan standard-type extensions |
JP3610095B2 (ja) | 1993-07-30 | 2005-01-12 | テキサス インスツルメンツ インコーポレイテツド | 電気回路のストリームライン化(Streamlined)された同時試験方法と装置 |
JP3904244B2 (ja) | 1993-09-17 | 2007-04-11 | 株式会社ルネサステクノロジ | シングル・チップ・データ処理装置 |
EP0652516A1 (en) | 1993-11-03 | 1995-05-10 | Advanced Micro Devices, Inc. | Integrated microprocessor |
US5596734A (en) | 1993-12-17 | 1997-01-21 | Intel Corporation | Method and apparatus for programming embedded memories of a variety of integrated circuits using the IEEE test access port |
US5828825A (en) | 1993-12-22 | 1998-10-27 | Intel Corporation | Method and apparatus for pseudo-direct access to embedded memories of a micro-controller integrated circuit via the IEEE test access port |
US5434804A (en) | 1993-12-29 | 1995-07-18 | Intel Corporation | Method and apparatus for synchronizing a JTAG test control signal to an on-chip clock signal |
US5602729A (en) * | 1994-03-15 | 1997-02-11 | Mercury Computer Systems, Inc. | Method and apparatus for monitoring and controlling multiprocessor digital data processing systems |
US5488688A (en) | 1994-03-30 | 1996-01-30 | Motorola, Inc. | Data processor with real-time diagnostic capability |
JPH07287668A (ja) | 1994-04-19 | 1995-10-31 | Hitachi Ltd | データ処理装置 |
US5537541A (en) * | 1994-08-16 | 1996-07-16 | Digital Equipment Corporation | System independent interface for performance counters |
GB9417602D0 (en) | 1994-09-01 | 1994-10-19 | Inmos Ltd | A controller for implementing scan testing |
JPH08329687A (ja) | 1995-06-05 | 1996-12-13 | Hitachi Ltd | 半導体集積回路 |
JP3740195B2 (ja) | 1994-09-09 | 2006-02-01 | 株式会社ルネサステクノロジ | データ処理装置 |
JP3672634B2 (ja) | 1994-09-09 | 2005-07-20 | 株式会社ルネサステクノロジ | データ処理装置 |
JP3713312B2 (ja) | 1994-09-09 | 2005-11-09 | 株式会社ルネサステクノロジ | データ処理装置 |
US5848247A (en) | 1994-09-13 | 1998-12-08 | Hitachi, Ltd. | Microprocessor having PC card interface |
US5613153A (en) | 1994-10-03 | 1997-03-18 | International Business Machines Corporation | Coherency and synchronization mechanisms for I/O channel controllers in a data processing system |
US5751621A (en) | 1994-11-17 | 1998-05-12 | Hitachi, Ltd. | Multiply-add unit and data processing apparatus using it |
TW330265B (en) | 1994-11-22 | 1998-04-21 | Hitachi Ltd | Semiconductor apparatus |
JP2752592B2 (ja) | 1994-12-28 | 1998-05-18 | 日本ヒューレット・パッカード株式会社 | マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法 |
US5778237A (en) | 1995-01-10 | 1998-07-07 | Hitachi, Ltd. | Data processor and single-chip microcomputer with changing clock frequency and operating voltage |
US5664197A (en) | 1995-04-21 | 1997-09-02 | Intel Corporation | Method and apparatus for handling bus master channel and direct memory access (DMA) channel access requests at an I/O controller |
US5867726A (en) | 1995-05-02 | 1999-02-02 | Hitachi, Ltd. | Microcomputer |
US5570375A (en) | 1995-05-10 | 1996-10-29 | National Science Council Of R.O.C. | IEEE Std. 1149.1 boundary scan circuit capable of built-in self-testing |
US5659679A (en) * | 1995-05-30 | 1997-08-19 | Intel Corporation | Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system |
US5860127A (en) | 1995-06-01 | 1999-01-12 | Hitachi, Ltd. | Cache memory employing dynamically controlled data array start timing and a microcomputer using the same |
US5774701A (en) | 1995-07-10 | 1998-06-30 | Hitachi, Ltd. | Microprocessor operating at high and low clok frequencies |
US5708773A (en) | 1995-07-20 | 1998-01-13 | Unisys Corporation | JTAG interface system for communicating with compliant and non-compliant JTAG devices |
US5754839A (en) * | 1995-08-28 | 1998-05-19 | Motorola, Inc. | Apparatus and method for implementing watchpoints and breakpoints in a data processing system |
JPH09218801A (ja) | 1995-08-30 | 1997-08-19 | Motorola Inc | データプロセッサ |
US5737516A (en) | 1995-08-30 | 1998-04-07 | Motorola, Inc. | Data processing system for performing a debug function and method therefor |
US5704034A (en) | 1995-08-30 | 1997-12-30 | Motorola, Inc. | Method and circuit for initializing a data processing system |
JP3655403B2 (ja) | 1995-10-09 | 2005-06-02 | 株式会社ルネサステクノロジ | データ処理装置 |
JP3623840B2 (ja) | 1996-01-31 | 2005-02-23 | 株式会社ルネサステクノロジ | データ処理装置及びマイクロプロセッサ |
US5950012A (en) | 1996-03-08 | 1999-09-07 | Texas Instruments Incorporated | Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes |
US5978874A (en) | 1996-07-01 | 1999-11-02 | Sun Microsystems, Inc. | Implementing snooping on a split-transaction computer system bus |
JPH09311786A (ja) | 1996-03-18 | 1997-12-02 | Hitachi Ltd | データ処理装置 |
US5751941A (en) * | 1996-04-04 | 1998-05-12 | Hewlett-Packard Company | Object oriented framework for testing software |
JP3579205B2 (ja) | 1996-08-06 | 2004-10-20 | 株式会社ルネサステクノロジ | 半導体記憶装置、半導体装置、データ処理装置及びコンピュータシステム |
GB9617033D0 (en) | 1996-08-14 | 1996-09-25 | Int Computers Ltd | Diagnostic memory access |
US5768152A (en) | 1996-08-28 | 1998-06-16 | International Business Machines Corp. | Performance monitoring through JTAG 1149.1 interface |
WO1998013759A1 (fr) | 1996-09-27 | 1998-04-02 | Hitachi, Ltd. | Machine de traitement de donnees et systeme de traitement de donnees |
JP3790307B2 (ja) | 1996-10-16 | 2006-06-28 | 株式会社ルネサステクノロジ | データプロセッサ及びデータ処理システム |
JPH10177520A (ja) | 1996-10-16 | 1998-06-30 | Hitachi Ltd | データプロセッサ及びデータ処理システム |
JP3641327B2 (ja) | 1996-10-18 | 2005-04-20 | 株式会社ルネサステクノロジ | データプロセッサ及びデータ処理システム |
GB9622686D0 (en) | 1996-10-31 | 1997-01-08 | Sgs Thomson Microelectronics | A test port controller and a method of effecting communication using the same |
DE69715557T2 (de) * | 1996-10-31 | 2003-06-12 | Sgs Thomson Microelectronics | Mikrorechner mit Paketbus |
US5983017A (en) | 1996-11-12 | 1999-11-09 | Lsi Logic Corporation | Virtual monitor debugging method and apparatus |
US5953538A (en) | 1996-11-12 | 1999-09-14 | Digital Equipment Corporation | Method and apparatus providing DMA transfers between devices coupled to different host bus bridges |
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 |
JPH10214201A (ja) * | 1997-01-29 | 1998-08-11 | Mitsubishi Electric Corp | マイクロコンピュータ |
US5896550A (en) | 1997-04-03 | 1999-04-20 | Vlsi Technology, Inc. | Direct memory access controller with full read/write capability |
US5978902A (en) | 1997-04-08 | 1999-11-02 | Advanced Micro Devices, Inc. | Debug interface including operating system access of a serial/parallel debug port |
US5944841A (en) | 1997-04-15 | 1999-08-31 | Advanced Micro Devices, Inc. | Microprocessor with built-in instruction tracing capability |
GB9802097D0 (en) | 1998-01-30 | 1998-03-25 | Sgs Thomson Microelectronics | DMA controller |
GB9806184D0 (en) | 1998-03-23 | 1998-05-20 | Sgs Thomson Microelectronics | A cache coherency mechanism |
GB9809203D0 (en) | 1998-04-29 | 1998-07-01 | Sgs Thomson Microelectronics | Packet distribution in a microcomputer |
US6173386B1 (en) * | 1998-12-14 | 2001-01-09 | Cisco Technology, Inc. | Parallel processor with debug capability |
US6345295B1 (en) * | 1999-01-22 | 2002-02-05 | International Business Machines Corporation | Conducting traces in a computer system attachment network |
-
1999
- 1999-10-01 US US09/411,786 patent/US6557119B1/en not_active Expired - Lifetime
-
2000
- 2000-09-25 EP EP00308375.5A patent/EP1089184B1/en not_active Expired - Lifetime
- 2000-10-02 JP JP2000301822A patent/JP4987182B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001147836A (ja) | 2001-05-29 |
EP1089184B1 (en) | 2013-06-19 |
US6557119B1 (en) | 2003-04-29 |
EP1089184A3 (en) | 2003-11-26 |
EP1089184A2 (en) | 2001-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4987182B2 (ja) | コンピュータシステム | |
JP4865943B2 (ja) | コンピュータシステム | |
US6487683B1 (en) | Microcomputer debug architecture and method | |
US6463553B1 (en) | Microcomputer debug architecture and method | |
US6598178B1 (en) | Peripheral breakpoint signaler | |
US6665817B1 (en) | Apparatus and method for implementing a wireless system-on-a-chip with a reprogrammable tester, debugger, and bus monitor | |
US6516428B2 (en) | On-chip debug system | |
US5630102A (en) | In-circuit-emulation event management system | |
US6732311B1 (en) | On-chip debugger | |
JP4335999B2 (ja) | プロセッサ内蔵半導体集積回路装置 | |
US7392431B2 (en) | Emulation system with peripherals recording emulation frame when stop generated | |
US20030154430A1 (en) | On-chip instrumenation | |
US20070011492A1 (en) | Generation of trace data | |
JP2008507025A (ja) | 集積回路テスト用エミュレーション及びデバッグインターフェイス | |
US6647511B1 (en) | Reconfigurable datapath for processor debug functions | |
US7313729B2 (en) | Low-cost debugging system with a ROM or RAM emulator | |
JP2011513834A (ja) | デバッグ資源を共有する方法及び装置 | |
US7617428B2 (en) | Circuits and associated methods for improved debug and test of an application integrated circuit | |
US20170045583A1 (en) | Debug Adapter | |
CN100403275C (zh) | 应用于固件程序除错的微处理器与方法 | |
US20030126502A1 (en) | Efficient word recognizer for a logic analyzer | |
US6718498B2 (en) | Method and apparatus for the real time manipulation of a test vector to access the microprocessor state machine information using the integrated debug trigger | |
US7051237B2 (en) | Program-controlled unit | |
US9581643B1 (en) | Methods and circuits for testing partial circuit designs | |
US20040205410A1 (en) | Program-controlled unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071002 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101109 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110209 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110215 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110309 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110314 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110411 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110510 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110810 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110815 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110912 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111004 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20111222 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20111228 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120203 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120229 |
|
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: 20120327 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120425 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4987182 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: 20150511 Year of fee payment: 3 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |