JP4987182B2 - コンピュータシステム - Google Patents

コンピュータシステム Download PDF

Info

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
Application number
JP2000301822A
Other languages
English (en)
Other versions
JP2001147836A (ja
Inventor
アラン エドワーズ デイビッド
ダブリュ. リッチ アンソニー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics lnc USA
Original Assignee
STMicroelectronics lnc USA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics lnc USA filed Critical STMicroelectronics lnc USA
Publication of JP2001147836A publication Critical patent/JP2001147836A/ja
Application granted granted Critical
Publication of JP4987182B2 publication Critical patent/JP4987182B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software 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

【0001】
【発明の属する技術分野】
本発明は、大略、マイクロコンピュータに関するものであって、更に詳細には、マイクロコンピュータ上でデバッギング動作を実施する方法及び装置に関するものである。
【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組のウオッチポイントであって、前記1組のウオッチポイントにおける各ウオッチポイントが、前記ウオッチポイントがトリガーされるべき条件を設定するための第一複数個のフィールドを具備しているプログラム可能なプレコンディションレジスタと、前記ウオッチポイントがトリガーされた場合に前記コンピュータシステムがとるべきアクションを設定するための第2複数個のフィールドを具備しているプログラム可能なアクションレジスタと、前記コンピュータシステムにおける特定の箇所においての処理中のデータを前記プレコンディションレジスタ内に設定されているトリガー条件と比較し且つ前記トリガー条件が満足される場合に前記アクションレジスタ内に設定されているアクションを読み出してウオッチポイントの出力として出力する比較・トリガー手段と、を有している1組のウオッチポイント、
    1組のラッチ、
    前記1組のウオッチポイントの内の第1ウオッチポイントがトリガーされた場合に前記第1ウオッチポイントの前記アクションレジスタによって指定される前記1組のラッチの内の一つのラッチを前記第1ウオッチポイントの前記比較・トリガー手段と別の第2ウオッチポイントの前記プレコンディションレジスタとの間に接続させる接続手段、
    を有していることを特徴とするコンピュータシステム
  2. 請求項1において、前記接続手段が、対応するウオッチポイントの出力と前記1組のラッチにおける各ラッチの入力との間に結合しているデマルチプレクサを有していることを特徴とするコンピュータシステム。
  3. 請求項2において、前記接続手段が、前記1組のラッチにおける各ラッチの出力と対応するウオッチポイントのプレコンディションレジスタとの間に結合しているマルチプレクサを有していることを特徴とするコンピュータシステム。
  4. 請求項3において、更に、前記1組のウオッチポイントに対応して同数の1組のデマルチプレクサが設けられていることを特徴とするコンピュータシステム。
  5. 請求項4において、更に、前記1組のウオッチポイントに対応して同数の1組のデマルチプレクサが設けられていることを特徴とするコンピュータシステム。
  6. 請求項5において、更に、前記1組のラッチにおける1個のラッチと夫々関連してトリガーインラッチが設けられており、前記トリガーインラッチは、前記コンピュータシステム外部の信号に応答して、前記ラッチをセット又はリセットさせる状態を有していることを特徴とするコンピュータシステム。
  7. 請求項6において、単一の集積回路チップ上に実現されていることを特徴とするコンピュータシステム。
  8. 請求項2において、前記デマルチプレクサが、前記第1ウオッチポイントの前記アクションレジスタの状態に応答して、前記1組のラッチにおける1個のラッチの入力を選択するために前記デマルチプレクサを制御する選択出力を有していることを特徴とするコンピュータシステム。
  9. 請求項3において、前記マルチプレクサが、前記第1ウオッチポイントの前記プレコンディションレジスタの状態に応答して、前記1組のラッチにおける1個のラッチの出力を選択するために前記マルチプレクサを制御する選択入力を有していることを特徴とするコンピュータシステム。
  10. 請求項1において、前記プレコンディションレジスタが1組のプレコンディションコードを格納し、前記1組のプレコンディションコードが前記1組のウオッチポイントにおける各ウオッチポイントに対して同一であることを特徴とするコンピュータシステム。
  11. 請求項1において、前記アクションレジスタが1組のアクションコードを格納し、前記1組のアクションコードが前記1組のウオッチポイントにおける各ウオッチポイントに対して同一であることを特徴とするコンピュータシステム。
  12. 請求項1において、前記1組のウオッチポイントが、オペランドアドレス、命令値、命令アドレス、分岐、ブレークポイント命令、印刷命令に対する複数個のタイプのウオッチポイントを包含していることを特徴とするコンピュータシステム。
  13. 請求項1において、各ウオッチポイントが、更に、少なくとも1個のマッチコードを格納するプログラム可能なマッチレジスタを有しており、前記マッチコードは前記処理中のデータが前記プレコンディションレジスタ内に設定されているトリガー条件を満足した後に前記ウオッチポイントがトリガーされるべき付加的な条件を表していることを特徴とするコンピュータシステム。
  14. 請求項1において、前記マッチコードが、アドレスレンジ、データ値、データマスク、命令値、命令マスク、分岐タイプのうちの少なくとも1つを有していることを特徴とするコンピュータシステム。
  15. 請求項1において、前記1組のプレコンディションコードが、基本イネーブルコード、アドレス空間識別子イネーブルコード、アドレス空間識別子コード、ラッチイネーブルコード、ラッチ識別子コード、イベントカウンタイネーブルコード、イベントカウンタ識別子コード、ISAモードイネーブルコード、CPUスーパーバイザリモード選択コードを有していることを特徴とするコンピュータシステム。
  16. 請求項1において、前記1組のアクションコードが、例外イネーブルコード、イベントカウンタデクリメントイネーブルコード、イベントカウンタ識別子コード、ラッチ変更コード、ラッチ識別子コード、性能カウンタインクリメントイネーブルコード、リセット全性能カウンタコード、性能カウンタ識別子コード、トレースイネーブルコード、トレースメッセージタイプコード、イネーブルトレース時間スタンプコード、トリガアウトイネーブルコード、インタラプトイネーブルコードを有していることを特徴とするコンピュータシステム。
JP2000301822A 1999-10-01 2000-10-02 コンピュータシステム Expired - Fee Related JP4987182B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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