(57)【要約】  方法は、複数のデバッグ資源（４２）を有する集積回路（１２）を設けることを含む。デバッグ資源は専らデバッグ処理に使用される。デバッグ処理は、集積回路によって実行されるデバッグソフトウェアにより管理される処理と、集積回路の外部にある外部デバッグハードウェア（１４）によって管理される処理とを含む。上記方法は更に、デバッグ資源の第１の部分をデバッグソフトウェアによる使用に利用可能にすることを含み、デバッグ資源の第２の部分は外部デバッグハードウェアによる排他的な使用に捧げられる。第１の部分は第２の部分を含まない。上記方法は、デバッグ資源の第１の部分のうちの少なくとも１つのデバッグ資源を用いたデバッグソフトウェアにより管理される処理と、デバッグ資源の第２の部分のうちの少なくとも１つのデバッグ資源を用いた外部デバッグハードウェアにより管理される処理とを実行することを含む。
2011513834.tif 000002
【特許請求の範囲】
【請求項１】
デバッグ処理に専ら使用される複数のデバッグ資源を有する集積回路を設ける準備ステップであり、該デバッグ処理は、該集積回路によって実行されるデバッグソフトウェアにより管理される処理と、該集積回路の外部にある外部デバッグハードウェアによって管理される処理とを有する、準備ステップ；
前記デバッグ資源の第１の部分を前記デバッグソフトウェアによる使用に利用可能にする可能化ステップであり、前記デバッグ資源の第２の部分を前記外部デバッグハードウェアによる排他的な使用に捧げ、該第１の部分は該第２の部分を含まない、可能化ステップ；及び
前記デバッグ資源の前記第１の部分のうちの少なくとも１つのデバッグ資源を用いた前記デバッグソフトウェアにより管理される処理と、前記デバッグ資源の前記第２の部分のうちの少なくとも１つのデバッグ資源を用いた前記外部デバッグハードウェアにより管理される処理とを実行する実行ステップ；
を有する方法。
【請求項２】
前記実行ステップは更に、前記外部デバッグハードウェア及び前記デバッグソフトウェアを同時に動作させているときに行われることを特徴とする、請求項１に記載の方法。
【請求項３】
前記準備ステップは更に、前記デバッグ資源が複数のデバッグレジスタのフィールドを有することと、前記集積回路が、前記デバッグ資源の使用を特定する制御レジスタを有することとを特徴とし；
前記可能化ステップは更に、前記第１の部分及び前記第２の部分を特定するために、前記外部デバッグハードウェアに応答して前記制御レジスタをロードすることを特徴とし；且つ
前記制御レジスタをロードすることに基づいて、前記デバッグソフトウェアに応答して、前記複数のデバッグレジスタのうちの第１のデバッグレジスタのフィールドを設定する；
請求項１に記載の方法。
【請求項４】
前記可能化ステップは更に、前記制御レジスタに応答して、前記第１のデバッグレジスタの第１のフィールドの組を、該第１のフィールドの組が前記デバッグソフトウェアに応答しないようにマスキングすることを特徴とする、請求項３に記載の方法。
【請求項５】
前記準備ステップは更に、前記集積回路が更に制御レジスタを有することを特徴とし；且つ
前記捧げることは更に、前記制御レジスタが前記第１の部分及び前記第２の部分を特定することを特徴とする；
請求項１に記載の方法。
【請求項６】
前記準備ステップは更に、前記デバッグ資源が複数のデバッグレジスタのフィールドを有することを特徴とし；且つ
前記捧げることは更に、前記外部デバッグハードウェアに応答して前記制御レジスタの設定を確立することと、前記制御レジスタが、前記デバッグレジスタの第１のフィールドの組が前記デバッグソフトウェアによって実行されること、及び前記デバッグレジスタの第２のフィールドの組が前記デバッグソフトウェアからマスクされることを可能にすることとを特徴とする；
請求項５に記載の方法。
【請求項７】
前記準備ステップは更に、前記集積回路が更に第２の制御レジスタを有することと、前記デバッグ資源が少なくとも１つの比較器及びカウンタを有することとを特徴とし；且つ
前記捧げることは更に、前記デバッグ資源の前記第１の部分及び前記第２の部分を定める際に、前記第２の制御レジスタをロードすることを特徴とする；
請求項６に記載の方法。
【請求項８】
集積回路であって：
処理ユニット；
デバッグ処理に専ら使用される複数のデバッグ資源；
デバッグ処理を制御するための複数のフィールドを有する制御レジスタであり：
各デバッグ処理が前記デバッグ資源の一部を利用し；
当該集積回路が、前記フィールドの全てが当該集積回路の外部のデバッグハードウェアによる使用に利用可能にされるモードを有し；且つ
前記デバッグハードウェアに応答してロードされるフィールドが、前記複数のフィールドのうちの第１の部分を有し、且つ前記複数のデバッグ資源の第１のサブセットと前記複数のデバッグ資源の第２のサブセットとを特定する；
制御レジスタ；及び
前記第１のサブセットの第１のフィールド群と前記第２のサブセットの第２のフィールド群とを有する前記複数のデバッグ資源のデバッグレジスタであり、前記第２のフィールド群は、前記処理ユニットによって実行されるデバッグソフトウェアに応答する、デバッグレジスタ；
を有する集積回路。
【請求項９】
前記処理ユニットは：
前記複数のデバッグ資源に結合された制御回路；及び
前記制御回路と前記複数のデバッグ資源とに結合された命令フェッチユニット；
を有する、請求項８に記載の集積回路。
【請求項１０】
前記複数のデバッグ資源は、デバッグ処理に専ら使用される複数のレジスタを有する、請求項９に記載の集積回路。
【請求項１１】
前記処理ユニットは更に、前記制御回路と前記複数のデバッグ資源とに結合されたロード／記憶ユニットを有する、請求項１０に記載の集積回路。
【請求項１２】
前記複数のデバッグ資源は更にカウンタを有する、請求項１１に記載の集積回路。
【請求項１３】
前記複数のデバッグ資源は更に比較器を有する、請求項１２に記載の集積回路。
【請求項１４】
ハードウェアデバッガと集積回路上のデバッグソフトウェアとを動作させる方法であって：
前記集積回路上でデバッグ処理を実行する際に使用する複数のデバッグ資源を準備するステップ；
前記複数のデバッグ資源から第１のデバッグ資源のサブセットと第２のデバッグ資源のサブセットとを特定するステップであり、該第１のデバッグ資源のサブセットは、前記ハードウェアデバッガによって必要とされないデバッグ資源であり且つ前記デバッグソフトウェアに利用可能にされ、前記ハードウェアデバッガは前記集積回路の外部にあり、該第２のデバッグ資源のサブセットは、前記第１のデバッグ資源のサブセットが特定された後の前記複数のデバッグ資源の残りのデバッグ資源である、特定するステップ；
前記ハードウェアデバッガと前記デバッグソフトウェアとを同時に動作させるステップであり：
前記デバッグソフトウェアが前記集積回路によって実行され；
前記ハードウェアデバッガが、前記第１のデバッグ資源のサブセットを使用せずに、前記第２のデバッグ資源のサブセットを使用し；且つ
前記デバッグソフトウェアが、前記第２のデバッグ資源のサブセットを使用せずに、前記第１のデバッグ資源のサブセットを使用する；
同時に動作させるステップ；
を有する方法。
【請求項１５】
前記特定するステップは更に、前記デバッグ資源のサブセットが専らデバッグ処理のためのものであることを特徴とする、請求項１４に記載の方法。
【請求項１６】
前記特定するステップは更に、前記第１のサブセットを特定することが前記第２のサブセットを特定することになることを特徴とする、請求項１４に記載の方法。
【請求項１７】
前記準備するステップは更に、前記デバッグ資源がレジスタを有することを特徴とする、請求項１４に記載の方法。
【請求項１８】
前記ハードウェアデバッガと前記デバッグソフトウェアとを前記同時に動作させるステップは更に、前記デバッグソフトウェアをデバッグするために前記ハードウェアデバッガを使用することを特徴とする、請求項１４に記載の方法。
【請求項１９】
前記準備するステップは更に、デバッグレジスタと、複数のフィールドを有する制御レジスタとを準備することを特徴とし：
該デバッグレジスタ及び該制御レジスタは前記集積回路上にあり、且つ
該制御レジスタは、前記デバッグソフトウェアに応答しての前記デバッグ資源の使用を指定し；
前記特定するステップは更に、前記デバッグレジスタの第１のフィールド群をマスクするように、前記ハードウェアデバッガを用いて前記制御レジスタをロードすることを特徴とし；且つ
前記同時に動作させるステップは更に、前記デバッグソフトウェアが前記第１のフィールド群からマスクされることを特徴とする；
請求項１４に記載の方法。
【請求項２０】
前記準備するステップは更に、制御レジスタ及びデバッグレジスタを有することを特徴とし、
該制御レジスタは、デバッグ処理を制御するための複数のフィールドを有し；
各デバッグ処理は前記デバッグ資源の一部の使用を特定し；
前記集積回路は、前記複数のフィールドの全てが、前記集積回路の外部の前記ハードウェアデバッガによる使用に利用可能にされるモードを有し；
前記第１のデバッグ資源のサブセットを特定するステップは更に、前記ハードウェアデバッガに応答して前記制御レジスタの複数のフィールドのうちの第１のサブセットをロードし、該第１のサブセットのフィールドが前記第１のデバッグ資源のサブセットを定めることを特徴とする；
請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概してデータ処理システムに関し、より具体的にはデバッグ資源を共有するシステム及び方法に関する。
【背景技術】
【０００２】
ソフトウェアデバッガは、様々なデバッグ処理を実行するためにプロセッサ内で広く使用されている。ソフトウェアデバッガは典型的に、例えば命令ブレイクポイント、データブレイクポイント、様々な実行イベントのブレイクポイント、及びリソースを設定し且つ様々なイベントの状況を報告するための制御・ステータスフィールド等、デバッグ処理を実行するために多様なリソースを使用する。ソフトウェアデバッガ内では、例えば不正確なデバッグ処理をもたらすことがあるエラーが存在し得る。しかしながら、ソフトウェアデバッガ自体を実際にデバッグすることは困難である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
デバッグ資源を共有する方法及び装置が提供される。
【課題を解決するための手段】
【０００４】
本発明の一態様に従った方法は、複数のデバッグ資源を有する集積回路を設けることを含む。デバッグ資源は専らデバッグ処理に使用される。デバッグ処理は、集積回路によって実行されるデバッグソフトウェアにより管理される処理と、集積回路の外部にある外部デバッグハードウェアによって管理される処理とを含む。当該方法はまた、デバッグ資源の第１の部分をデバッグソフトウェアによる使用に利用可能にすることを含み、デバッグ資源の第２の部分は外部デバッグハードウェアによる排他的な使用に捧げられる。第１の部分は第２の部分を含まない。当該方法は更に、デバッグ資源の第１の部分のうちの少なくとも１つのデバッグ資源を用いたデバッグソフトウェアにより管理される処理と、デバッグ資源の第２の部分のうちの少なくとも１つのデバッグ資源を用いた外部デバッグハードウェアにより管理される処理とを実行することを含む。
【図面の簡単な説明】
【０００５】
本発明は、例として図示されるのであり、添付の図によって限定されるものではない。図において、似通った参照符号は同様の要素を指し示す。図中の要素は、単純且つ明瞭にするために示されたものであり、必ずしも縮尺通りには描かれてはいない。
【図１】本発明の一実施形態に従ったデータ処理システムを示すブロック図である。
【図２】本発明の一実施形態に従った図１のデータ処理システムに付随するプロセッサを示すブロック図である。
【図３】図１のデータ処理システムに付随する典型的なデバッグレジスタを例示する図である。
【図４】本発明の一実施形態に従った図３のデバッグレジスタに付随するデバッグ制御レジスタを示す図である。
【図５】本発明の一実施形態に従った図４のデバッグ制御レジスタの一部の機能を表の形態で示す図である。
【図６】本発明の一実施形態に従った図４のデバッグ制御レジスタの一部の機能を表の形態で示す図である。
【図７】本発明の一実施形態に従った図３のデバッグレジスタに付随するデバッグステータスレジスタを示す図である。
【図８】本発明の一実施形態に従った図７のデバッグステータスレジスタの一部の機能を表の形態で示す図である。
【図９】本発明の一実施形態に従った図１のデータ処理システムに付随するデバッグ資源制御レジスタを示す図である。
【図１０】図９のデバッグ資源制御レジスタの一部の機能を表の形態で示す図である。
【図１１】図９のデバッグ資源制御レジスタの一部の機能を表の形態で示す図である。
【図１２】図９のデバッグ資源制御レジスタの一部の機能を表の形態で示す図である。
【図１３】図９のデバッグ資源制御レジスタの一部の機能を表の形態で示す図である。
【図１４】図４のデバッグ制御レジスタ及び図９のデバッグ資源制御レジスタの典型的な設定に基づく、ソフトウェアアクセス可能な資源を表の形態で示す図である。
【図１５】図４のデバッグ制御レジスタ及び図９のデバッグ資源制御レジスタの典型的な設定に基づく、ソフトウェアアクセス可能な資源を表の形態で示す図である。
【図１６】本発明の一実施形態に従った図２のプロセッサに付随するマスキング回路の部分を、部分的に結線図として且つ部分的にブロック図として示す図である。
【図１７】本発明の一実施形態に従った図２のプロセッサに付随するマスキング回路の部分を、部分的に結線図として且つ部分的にブロック図として示す図である。
【図１８】本発明の一実施形態に従った外部デバッグコマンドレジスタを例示する図である。
【図１９】図１８の外部デバッグコマンドレジスタの一部の機能を表の形態で示す図である。
【図２０】外部デバッグコマンドレジスタの典型的な設定に基づく選択レジスタを表の形態で示す図である。
【発明を実施するための形態】
【０００６】
一実施形態において、デバッグ処理を実行するハードウェアデバッガ及びソフトウェアデバッガによって、共通の制御レジスタ及びステータスレジスタの組が使用される。しかしながら、全てのデバッグ資源が専らハードウェア制御下、あるいは専らソフトウェア制御下に置かれなければならないというより、一実施形態は、個別的及び集団的な資源割当てがハードウェア又はソフトウェアの何れかの使用に指定されることを可能にする共有機構を提供する。例えば、デバッグ資源制御レジスタは、１つ以上の資源がソフトウェアデバッガとハードウェアデバッガとの間で共有されるときに、デバッグ制御レジスタフィールドがソフトウェア又はハードウェアによって選択的に管理されることを可能にする。一実施形態において、ハードウェアデバッガは、外部デバッグモードにあるとき、ソフトウェアが（デバッグ資源制御レジスタを介して）１つ以上の資源を管理することを許可する。その場合、ソフトウェアによって利用されるイベント群は、ソフトウェアによって取り扱われる割り込みをもたらしてもよく、ハードウェアに割り当てられるイベント群は、プロセッサの処理が中止されるハードウェアデバッグモードに入ること（エントリ）を（デバッグポートを介して外部デバッガにそのようなエントリを通知するとともに）もたらしてもよい。また、１実施形態は、ソフトウェア使用に利用可能にされるようにハードウェアデバッガによってデバッグ資源の一部のみが実際に割り当てられるときに、ソフトウェアがレジスタを更新して正しい（すなわち、一致した）ステータスを読み取ることができる一貫性機構を提供する。
【０００７】
ここでは、用語“バス”は、例えばデータ、アドレス、制御又はステータス等の１つ以上の様々なタイプの情報を伝送するために使用され得る複数の信号又は導体を意味するように使用される。ここで議論される導体は、単一の導体、複数の導体、単方向の導体又は双方向の導体であることに関して図示あるいは説明され得る。しかしながら、相異なる実施形態では導体の実装は異なり得る。例えば、双方向導体に代えて別個の複数の単方向導体が用いられてもよく、その逆も然りである。また、複数の導体は、複数の信号を順次に、あるいは時間多重的に伝送する単一の導体で置き換えられてもよい。同様に、複数の信号を搬送する単一の導体が、これら信号の小集合を搬送する複数の様々な導体に分離されてもよい。故に、信号の伝送には数多くの選択肢が存在する。
【０００８】
用語“アサート”又は“セット”、及び“ネゲート”（又は“デアサート”若しくは“クリア”）は、ここでは、信号、ステータスビット又は同様の装置を、それぞれ、その論理的に真、又は論理的に偽の状態にすることを意味するときに使用される。論理的に真の状態が論理レベルの１である場合、論理的に偽の状態は論理レベルの０（ゼロ）である。論理的に真の状態が論理レベルの０である場合には、論理的に偽の状態は論理レベルの１である。
【０００９】
ここで説明する各信号は、正論理又は負論理として設計され得る。負論理は、信号名の上のバー又は信号名に続くアスタリスク（＊）によって指し示すことができる。負論理信号の場合、信号は論理的に真の状態が論理レベルの０に対応するアクティブローである。正論理信号の場合には、信号は論理的に真の状態が論理レベルの１に対応するアクティブハイである。なお、ここで説明する何れの信号も、負論理信号又は正論理信号の何れとしても設計され得る。故に、代替的な実施形態において、正論理信号として説明される信号は負論理信号として実現されてもよく、負論理信号として説明される信号は正論理信号として実現されてもよい。
【００１０】
角括弧は、ここでは、バスの導体群又は或る値のビット位置を指し示すために使用される。例えば、“バス６０［７：０］”又は“バス６０の導体［７：０］”は、バス６０の低次側の８個の導体を指し示し、“アドレスビット［７：０］”又は“ＡＤＤＲＥＳＳ［７：０］”は、アドレス値の低次側の８ビットを指し示す。数字の前の記号“＄”は、その数字がその１６進表記又は基底１６表記にて表されることを指し示す。数字の前の記号“％”又は“０ｂ”は、その数字がその２進表記又は基底２表記にて表されることを指し示す。
【００１１】
図１は、本発明の一実施形態に従ったデータ処理システム１０を示している。データ処理システムはシステム・オン・チップとしてもよい。データ処理システム１０は、単一の集積回路上に実装されてもよいし、複数の集積回路上に実装されてもよい。データ処理システム１０は、バス２０を介して結合され得るプロセッサ１２、外部デバッグ回路１４、Ｉ／Ｏモジュール１６及びメモリ１８を含んでいる。代替的な実施形態において、メモリ１８は、如何なる種類のメモリであってもよく、また、プロセッサ１２と同一の集積回路上又はプロセッサ１２とは異なる集積回路上の何れに位置していてもよい。メモリ１８は、例えば読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、不揮発性メモリ（例えば、フラッシュ）等の如何なる種類のメモリであってもよい。また、メモリ１８は、別の周辺機器若しくはスレーブ内、あるいは異なる集積回路上、に位置するメモリ又はその他のデータ記憶装置であってもよい。
【００１２】
図２は、図１のデータ処理システム１０に付随するプロセッサ１２のブロック図である。プロセッサ１２は、パイプライン的に処理を実行するように実装されてもよく、また、命令パイプ２２、実行ユニット２４、命令フェッチユニット２６、制御回路２８、汎用レジスタ３０、ロード／格納ユニット３２、バスインタフェースユニット（ＢＩＵ）３４及び内部デバッグ回路４０を含み得る。プロセッサ１２は、データ処理システム１０のその他の構成要素と、ＢＩＵ３４に結合されたバス２０を介して通信し得る。内部デバッグ回路４０は、図２に示したデバッグポートを介して、例えばＩＥＥＥ  ＩＳＴＯ−５００１準拠のＮｅｘｕｓ（登録商標）デバッグユニット等の外部デバッグユニットに結合され得る。Ｎｅｘｕｓは、テキサス州オースティンのフリースケールセミコンダクター社の登録商標である。デバッグポートは、例えばＩＥＥＥ１１４９に適合する工業規格ＪＴＡＧ  ＴＡＰ等のシリアルインタフェースを用いて実現されることができ、あるいはパラレルポート、シリアルポートとパラレルポートとの組み合わせ、又はイーサネット（登録商標）ポートとして実現されてもよい。内部デバッグ回路４０は、マスキング回路３１、デバッグレジスタ４２及びデバッグ制御回路４４を含み得る。デバッグ制御回路４４は、外部デバッグコマンドレジスタ３３及びデバッグ資源制御レジスタ４１（ＤＢＥＲＣ０）を含み得る。マスキング回路３１は、デバッグレジスタ４２、実行ユニット２４と通信し、デバッグ資源制御レジスタ４１から情報を受信する。デバッグレジスタ４２は、命令ブレイクポイント、データブレイクポイント、ウォッチポイントを含む様々なデバッグ関連イベントを制御し、且つデバッグに関連するその他のメッセージ伝達を行うため、フィールド群にグループ化されたビット群を含み得る。これらのデバッグ資源は、プロセッサ１２と外部デバッグ回路１４との間で共有され得る。また、デバッグ制御回路４４は、導体３５により、ＢＩＵ３４とアドレス及びデータを通信し得る。
【００１３】
なお、一実施形態において、ソフトウェアデバッガは、デバッグ処理を実行するプロセッサ１２によって実行されるソフトウェア又はデバッグソフトウェアを意味する。一実施形態において、ハードウェアデバッガは、プロセッサ１２の外部にあってプロセッサ１２内でのデバッグ処理を管理する外部デバッグハードウェア又は回路を意味する。一実施形態において、ハードウェアデバッガは、デバッグポートを介して、あるいは代替的に１つ以上のデバッグ信号の組を介して、プロセッサ１２内でのデバッグ処理を管理する。また、デバッグソフトウェアは概してソフトウェアと呼ぶこともあり、ハードウェアデバッガは概してハードウェアと呼ぶこともある。
【００１４】
次に、図３を参照するに、デバッグレジスタ４２内のレジスタはまた、命令、及び／又はデータアクセスブレイクポイント及びウォッチポイントイベントを実行するための、１つ以上のアドレス比較値、アドレスレンジ、及びデータマッチ値、並びにその他のデバッグ制御基準を記憶するために設けられ得る。これらのアドレス値及びデータ値は、様々な制御基準とともに、内部デバッグモードがアクティブであるときにデバッグ例外のための例外処理をプロセッサ１２に開始させることが可能な、あるいは外部デバッグモードがアクティブであるときに外部デバッグ回路１４によって内部デバッグユニット４０のデバッグポートを介して（例えば、外部デバッグコマンドレジスタ３３に）提供されるコマンドに応答するデバッグ中止モードにプロセッサ１２を入らせることが可能な、ブレイクポイント又はウォッチポイントイベントを発生させる目的で、プロセッサ１２が１つ以上の所定の命令アドレス又はデータアドレスにいつアクセスするかを決定するために使用される。すなわち、デバッグレジスタ４２は、デバッグイベントを設定するために使用され得る。例として、デバッグレジスタ４２は、デバッグ制御レジスタ５０（ＤＢＣＲ０）及びその他のデバッグ制御レジスタ４３（ＤＢＣＲ１、ＤＢＣＲ２、ＤＢＣＲ３及びＤＢＣＲ４）を含む様々なデバッグ制御レジスタを含み得る。デバッグレジスタ４２は更に、命令アドレス比較レジスタ４５（ＩＡＣ１及びＩＡＣ２）を含み得る。命令アドレス比較レジスタ４５は、アドレス比較の目的で命令アドレスを格納し得る。デバッグレジスタ４２は更に、データアドレス比較レジスタ４７（ＤＡＣ１及びＤＡＣ２）を含み得る。データアドレス比較レジスタ４７は、アドレス比較の目的でデータアクセスアドレスを格納し得る。デバッグレジスタ４２は更に、デバッグステータスレジスタ４９（ＤＢＳＲ）、デバッグカウンタ５１（ＤＢＣＮＴ１及びＤＢＣＮＴ２）、及びデータ値比較レジスタ５３（ＤＶＣ１及びＤＶＣ２）を含み得る。デバッグレジスタ４２は、ユーザのソフトウェアプログラミングモデルの一部であってもよい。デバッグカウンタ５１は、１つ以上の計数可能な得ベントが発生したときにカウントダウンするように構成され得る。カウント値がゼロに到達するとき、デバッグカウントイベントが信号伝達され、可能であれば、デバッグ割り込みが発生される。データ値比較レジスタ５３は、データ比較の目的でデータ値を格納し得る。
【００１５】
内部デバッグモードにおいて（外部デバッグモードが有効でないとき）、これらのレジスタ資源はソフトウェアによって（例えば、プロセッサ１２上で実行されているデバッグソフトウェア又はソフトウェアデバッガによって）管理され、外部デバッグ回路の使用は要求されない。ソフトウェアは、有効にされたデバッグイベントがソフトウェアデバッグ割り込みを発生させ得るソフトウェアベースのデバッグ動作を実行させるために個々のデバッグレジスタを初期化するよう、プログラマーモデルのソフトウェア命令である専用レジスタ命令への、あるいはそれからの転送を用いるデータ転送によってレジスタ群を設定し得る。そして、ソフトウェア割り込みハンドラが、データ処理システム１０のソフトウェアプログラマによって決定される様々な所望の活動を実行し得る。この内部デバッグモードにおいては、図３のデバッグ資源は専ら、外部デバッグハードウェアがこれらの資源にアクセスしないように、ソフトウェアによって使用・管理（すなわち、所有）される。
【００１６】
外部デバッグモードにおいては、外部デバッグ回路１４（すなわち、外部デバッグハードウェア）に図３のデバッグ資源の排他的所有権が与えられ、設定されたデバッグイベントが発生したとき、プロセッサ１２は、ソフトウェア命令を実行することを止めて中止状態（この中止状態はハードウェアデバッグモードとも称し得る）に入ることができ、外部デバッグ回路１４によって与えられるコマンドを待つ。ソフトウェア（例えば、プロセッサ１２によって実行されるデバッグソフトウェア等）は、外部デバッグモードが有効にされたとき、もはやデバッグ資源の制御を有しない。外部デバッグ回路１４は、例えばＪＴＡＧ  ＴＡＰポートとして実装され得る（図２に示した）デバッグポートを介して直接的に、デバッグレジスタ４２を含むデバッグ資源にアクセスし得る。一実施形態において、デバッグレジスタ４２は、ＪＴＡＧのＩＲ及びＤＲ処理を通じてデバッガによるレジスタへの読み出しアクセス及び書き込みアクセスを提供する様々なＪＴＡＧ命令に関する１つ以上のフィールド内に含まれるレジスタ選択エンコーディングを備えたＪＴＡＧデータレジスタとしてマッピングされ得る。更に詳細に後述するように、外部デバッグモードにおいて、外部デバッグ回路１４は、プロセッサ１２上のソフトウェア（例えば、プロセッサ１２上で実行されるデバッグソフトウェア又はソフトウェアデバッガ）がデバッグ資源の一部を選択的に管理することを許可することができる。すなわち、外部デバッグ回路１４は、デバッグ資源制御レジスタ４１の使用を介して、１つ以上のデバッグ資源を管理のためにソフトウェアに割り当てることができる。例えば、外部デバッグ回路１４は、デバッグレジスタ４２内の特定のデバッグ制御レジスタフィールドがソフトウェアによって管理されることを許可することができる。デバッグソフトウェア（例えば、ソフトウェアデバッガ）によって管理されるデバッグイベントは、（割り込みが可能にされると仮定して、）ソフトウェアによって取り扱われる割り込みを生じさせ、ハードウェア（例えば、外部デバッグ回路１４）によって管理されるデバッグイベントは、プロセッサ１２が停止されてデバッグがデバッグポートを介して外部デバッグ回路１４によって実行されるハードウェアデバッグモードへのエントリを生じさせる。斯くして、１つ以上の資源がソフトウェアデバッガとハードウェアデバッガとの間で共有されるとき、デバッグ制御レジスタフィールド及びその他のデバッグ資源は、ハードウェア又はソフトウェアによって選択的に管理あるいは所有されることができる。さらに、外部デバッグ回路１４は、１つ以上のデバッグ資源をデバッグソフトウェアによって使用されるように割り当てることが可能なことにより、デバッグソフトウェア自体をデバッグすることができる。
【００１７】
なお、ここで用いられるように、デバッグ資源は、デバッグレジスタ４２に含まれているものより多い、あるいは少ないレジスタを含み得る。例えば、デバッグ資源は、命令ブレイクポイント、データブレイクポイント、様々な実行イベントブレイクポイント、及びリソースを設定し且つ様々なイベントの状況を報告するための制御・ステータスフィールドを含み得る。デバッグ資源はまた、デバッグレジスタの１つ以上の特定のフィールドを含んでいてもよい。デバッグ資源はまた、必要に応じて、デバッグ処理を実行するために、カウンタ及び比較器を含んでいてもよい。また、管理するためにハードウェアデバッガ及びソフトウェアデバッガ用に複製した組を有するのではなく、共通の制御レジスタ及びステータスレジスタの組を共有することは、実装すべき必要なプロセッサ１２の資源を少なくし、それにより、データ処理システム１０のユーザにとってプログラミングモデルが簡略化される。内部デバッグユニット４０は、プロセッサ１２内での活動を監視し、記憶されたデバッグ設定情報に基づく１つ以上の所定の状態を検出したことに応答して、１つ以上のデータブレイクポイントイベント、命令ブレイクポイントイベント、例えば分岐又はトラップを有するイベント等の命令実行イベント、命令完了イベント、及びこれらに類するものを生成し得る。この処理手法において、プロセッサ１２は当業者に認識され得るように機能する。
【００１８】
図４は、図１のデータ処理システムに付随するデバッグ制御レジスタ５０を示している。デバッグ制御レジスタ５０は、デバッグレジスタ４２の一部として含められ得る。なお、デバッグレジスタ４２は内部デバッグユニット４０の一部として含められ得る。デバッグ制御レジスタ５０は、デバッグ設定情報を格納するように使用され得る。図４は、特定のビットフィールドを用いる本発明の特定の一実施形態を示しているが、本発明の代替的な実施形態は、異なる数のビットを各フィールドに有する様々なビットフィールドを用い得る。図４の特定のビットフィールドは単に説明のために示したものである。例として、デバッグ制御レジスタ５０は３２ビットを含み得る。デバッグ制御レジスタ５０は、ＥＤＭ５２、ＩＤＭ５４、ＲＳＴ５６、ＩＣＭＰ５８、ＢＲＴ６０、ＩＡＣ１  ６１、ＩＡＣ２  ６２、ＩＡＣ３  ６３、ＩＡＣ４  ６４、ＤＡＣ１  ６６、ＤＡＣ２  ６８、ＤＣＮＴ１  ７０、ＤＣＮＴ２  ７１及びＴＲＡＰ７２としてラベルを付されたビットフィールドを含み得る。これらのビットフィールドは単に例示であり、デバッグ制御レジスタ５０は、より少ないビットフィールド、又は更なるビットフィールドを含んでいてもよい。また、これらのビットフィールドは異なるように配列されてもよい。なお、各フィールドはビット、ビット群又はフィールドとして参照され得る。デバッグ制御レジスタ５０はまた、将来的に使用され得る予備ビットフィールド７３を含んでいてもよい。様々なビットフィールドの機能は図５及び６に関連付けて説明する。例として、デバッグ制御レジスタ５０は、読み取り可能でもある書き込み可能レジスタとしてもよく、また、ユーザのソフトウェアプログラミングモデルの部分としてもよい。本発明の代替的な実施形態において、デバッグ制御レジスタ５０は、ユーザのソフトウェアプログラミングモデル内の制御レジスタでなくてもよく、その代わりに、ユーザのソフトウェアプログラミングモデルの外部に実装されてもよい。デバッグ制御レジスタ５０を実装するために、如何なる種類の記憶回路が用いられてもよい。
【００１９】
図５は、図４のデバッグ制御レジスタ５０の一部の機能を表の形態で示している。ＥＤＭビット５２は、外部デバッグモードが有効であるか無効であるかを指し示し得る。ＥＤＭビット５２が１にセットされるとき、例えば、デバッグ制御レジスタ５０などの制御レジスタは、外部デバッグ回路１４の排他的制御下に置かれ、データ処理システム１０のソフトウェアはこれらの制御レジスタに情報を書き込むことができない。代替的に、ＥＤＭビット５２が１にセットされるとき、ソフトウェアはデバッグ制御レジスタの特定の部分に書き込むことができない。さらに、ＥＤＭビット５２は、一定のリセットイベントが、デバッグ制御レジスタ５０及びその他のデバッグ資源内に記憶された情報、これはデバッグ制御・設定情報を含み得る、をクリアすることを選択的に阻止するために使用される。また、ＥＤＭビット５２が１にセットされるとき、デバッグ資源制御レジスタ４１は、制御レジスタフィールドの一部を管理のためにソフトウェアに割り当てるために外部デバッグ回路１４によって使用されることができる。ＩＤＭビット５４は、内部デバッグモードが有効であるか無効であるか、故に、デバッグ例外が有効であるか無効であるかを指し示し得る。ＲＳＴビット５６は、リセット機能を制御するために使用され得る。ＩＣＭＰビット５８は、命令完了デバッグイベントが有効であるか無効であるかを指し示すために用いられ得る。ＢＲＴビット６０は、分岐を取るデバッグイベントが有効であるか無効であるかを指し示すために用いられ得る。ＩＡＣ１ビット６１は、命令アドレス比較１デバッグイベントが有効であるか無効であるかを指し示すために用いられ得る。ＩＡＣ２ビット６２は、命令アドレス比較２デバッグイベントが有効であるか無効であるかを指し示すために用いられ得る。ＩＡＣ３ビット６３は、命令アドレス比較３デバッグイベントが有効であるか無効であるかを指し示すために用いられ得る。ＩＡＣ４ビット６４は、命令アドレス比較４デバッグイベントが有効であるか無効であるかを指し示すために用いられ得る。
【００２０】
続いて図６を参照するに、図６は、図４のデバッグ制御レジスタ５０の一部の機能を表の形態で示している。ＤＡＣ１ビット６６は、データアドレス比較１デバッグイベントが有効であるか無効であるかを指し示すために用いられ得る。有効である場合、ＤＡＣ１ビット６６はまた、どのような種類の記憶アクセスに対して（例えば、格納型のデータ記憶アクセスに対して、ロード型のデータ記憶アクセスに対して、あるいはロード型又は格納型の何れかのデータ記憶アクセスに対して）データアドレス比較１デバッグイベントが有効であるかを指し示す。ＤＡＣ２ビット６８は、データアドレス比較２デバッグイベントが有効であるか無効であるかを指し示すために用いられ得る。有効である場合、ＤＡＣ２ビット６８はまた、どのような種類の記憶アクセスに対して（例えば、格納型のデータ記憶アクセスに対して、ロード型のデータ記憶アクセスに対して、あるいはロード型又は格納型の何れかのデータ記憶アクセスに対して）データアドレス比較１デバッグイベントが有効であるかを指し示す。ＤＣＮＴ１ビット７０は、デバッグカウンタ１デバッグイベントが有効であるか否かを指し示すために用いられ得る。ＤＣＮＴ２ビット７１は、デバッグカウンタ２デバッグイベントが有効であるか否かを指し示すために用いられ得る。ＴＲＡＰビット７２は、トラップを取るデバッグイベントが有効であるか否かを指し示すために用いられ得る。ビット７３（１７：３１）は、将来的な使用のための予備とされ得る。図５及び６は、デバッグイベントに関する様々な設定情報を提供する特定数のビットフィールドを記述しているが、これらの図に示したものとは異なる数のビットフィールドも用いられ得る。
【００２１】
図７は、図１のデータ処理システムに付随するデバッグステータスレジスタ４９を示している。データステータスレジスタ４９は、内部デバッグユニット４０の一部として含められ得るデバッグレジスタ４２の一部として含められ得る。デバッグステータスレジスタ４９は、デバッグイベントのステータス情報を格納するように使用され得る。一実施形態において、デバッグステータスレジスタ４９内の或るビットが‘１’にセットされるとき、デバッグ中止モードへのエントリを信号伝達すること（ハードウェアデバッグイベントの場合）、又はプロセッサへのデバッグ割り込み要求を生成すること（ソフトウェアデバッグイベントの場合）の何れかのために使用される対応する制御信号が生成される。図７は、特定のビットフィールドを用いる本発明の特定の一実施形態を示しているが、本発明の代替的な実施形態は、異なる数のビットを各フィールドに有する様々なビットフィールドを用い得る。図７の特定のビットフィールドは単に説明のために示したものである。例として、デバッグステータスレジスタ４９は３２ビットを含み得る。デバッグステータスレジスタ４９は、ＩＤＥ７６、ＩＣＭＰ７８、ＢＲＴ８０、ＩＡＣ１  ８２、ＩＡＣ２  ８４、ＩＡＣ３  ８６、ＩＡＣ４  ８８、ＤＡＣ１Ｒ９０、ＤＡＣ１Ｗ９２、ＤＡＣ２Ｒ９４、ＤＡＣ２Ｗ９６、ＴＲＡＰ９７、ＤＣＮＴ１  ９８、ＤＣＮＴ２  ９９及びソフトウェア専用ビット１０１としてラベルを付されたビットフィールドを含み得る。これらのビットフィールドは単に例示であり、デバッグステータスレジスタ４９は、より少ないビットフィールド、又は更なるビットフィールドを含んでいてもよい。また、これらのビットフィールドは異なるように配列されてもよい。なお、各フィールドはビット、ビット群又はフィールドとして参照され得る。デバッグステータスレジスタ４９はまた、将来的に使用され得る予備ビットフィールド１００を含んでいてもよい。様々なビットフィールドの機能は図８に関連付けて説明する。また、デバッグステータスレジスタ４９に関して、ビットをセットすることは、論理レベルの１を記憶させることを意味し、ビットをクリアすることは、論理レベルの０を記憶させることを意味する。例として、デバッグステータスレジスタ４９は、そのビット群がハードウェアを介してセットされ、且つソフトウェアを介して読み出され、クリアされるレジスタとしてもよく、また、ユーザのソフトウェアプログラミングモデルの部分としてもよい。本発明の代替的な実施形態において、デバッグステータスレジスタ４９は、ユーザのソフトウェアプログラミングモデル内になくてもよく、その代わりに、ユーザのソフトウェアプログラミングモデルの外部に実装されてもよい。一実施形態において、デバッグステータスレジスタ４９のデバッグステータスビット群は、内部デバッグモードが有効にされている、あるいは外部デバッグモードが有効にされている間のみ、デバッグイベントによってセットされる。一実施形態において、内部デバッグモードにおいてデバッグ割り込みが可能にされるとき、デバッグステータスレジスタ４９内のセットされたビットは、デバッグ割り込みを発生させ得る。このとき、デバッグ割り込みハンドラが、通常の実行に戻るのに先立ってデバッグステータスレジスタ４９のビット群をクリアする責任を負う。一実施形態において、外部デバッグモードにあるとき、デバッグステータスレジスタ４９のデバッグステータスビット群は、ハードウェア所有のデバッグイベントによってセットされる。ハードウェアが何らかの資源をソフトウェアに割り当てている場合、それら割り当てられた資源に対応するデバッグステータスビットは、ソフトウェア所有のデバッグイベントによってセットされ、割り込みが可能にされている場合、ソフトウェアによって所有されているセットされたビットが割り込み要求信号を生成させ、ソフトウェアによってデバッグ割り込みが起こされ、取り扱われる。それに対応して、ハードウェアによって所有されているセットされたビットは、デバッグモード要求信号を生成させ、デバッグ中止モードへのエントリが行われ、ハードウェアデバッガによって対処される。（なお、ハードウェア所有の資源をハードウェア管理資源、ソフトウェア所有の資源をソフトウェア管理資源と呼ぶこともある。）また、デバッグステータスレジスタ４９を実装するために、如何なる種類の記憶回路が用いられてもよい。
【００２２】
図８は、図７のデバッグステータスレジスタ４９の機能を表の形態で示している。ＩＤＥビット７６は、曖昧（imprecise）デバッグイベントの発生を指し示すために使用され、故に、デバッグ例外が無効にされ且つデバッグイベントがそれぞれのデバッグステータスレジスタビットを１にセットさせる場合に１にセットされ得る。すなわち、デバッグイベントは発生され得るものの、プロセッサ１２のパイプラインの現在状態のために割り込みはまだ起こり得ないため、デバッグ例外は無効のままにされ得る。ＩＣＭＰビット７８は、命令完了デバッグイベントが発生した場合に１にセットされ得る。ＢＲＴビット８０は、分岐を取るデバッグイベントが発生した場合に１にセットされ得る。ＩＡＣ１ビット８２は、ＩＡＣ１デバッグイベントが発生した場合に１にセットされ得る。ＩＡＣ２ビット８４は、ＩＡＣ２デバッグイベントが発生した場合に１にセットされ得る。ＩＡＣ３ビット８６は、ＩＡＣ３デバッグイベントが発生した場合に１にセットされ得る。ＩＡＣ４ビット８８は、ＩＡＣ４デバッグイベントが発生した場合に１にセットされ得る。ＤＡＣ１Ｒビット９０は、ＤＡＣ１ビット６６が％１０又は％１１に等しい（図６に示すようにロード型データ記憶アクセスに対してＤＡＣ１デバッグイベントが有効であることを指し示す）ときに読み取り型のＤＡＣ１デバッグイベントが発生した場合に１にセットされ得る。ＤＡＣ１Ｗビット９２は、ＤＡＣ１ビット６６が％０１又は％１１に等しい（図６に示すように格納型データ記憶アクセスに対してＤＡＣ１デバッグイベントが有効であることを指し示す）ときに書き込み型のＤＡＣ１デバッグイベントが発生した場合に１にセットされ得る。ＤＡＣ２Ｒビット９４は、ＤＡＣ２ビット６８が％１０又は％１１に等しい（図６に示すようにロード型データ記憶アクセスに対してＤＡＣ２デバッグイベントが有効であることを指し示す）ときに読み取り型のＤＡＣ２デバッグイベントが発生した場合に１にセットされ得る。ＤＡＣ２Ｗビット９６は、ＤＡＣ２ビット６８が％０１又は％１１に等しい（図６に示すように格納型データ記憶アクセスに対してＤＡＣ２デバッグイベントが有効であることを指し示す）ときに書き込み型のＤＡＣ２デバッグイベントが発生した場合に１にセットされ得る。ＴＲＡＰビット９７は、トラップを取るデバッグイベントが発生した場合に１にセットされ得る。ＤＣＮＴ１ビット９８は、ＤＣＮＴ１デバッグイベントが発生した場合に１にセットされ得る。ＤＣＮＴ２ビット９９は、ＤＣＮＴ２デバッグイベントが発生した場合に１にセットされ得る。一実施形態において、ビット１０１は、ソフトウェアのみがアクセスすることが可能なソフトウェア専用ビットにされる。
【００２３】
図９は、図１のデータ処理システムに付随するデバッグ資源制御レジスタ４１を示している。デバッグ資源制御レジスタ４１は、外部デバッグモードが有効にされているとき（例えば、デバッグ制御レジスタ５０のＥＤＭビット５２が１にセットされているとき）にリソース割当てを制御するために使用され得る。デバッグ資源制御レジスタ４１は、ハードウェアデバッガ（例えば、外部デバッグ回路１４）がソフトウェアとデバッグ資源を共有する機構を提供する。個々の資源は、外部デバッグモードが有効にされているときにデバッグ資源制御レジスタ４１の設定に基づいて割り当てられる。一実施形態において、外部デバッグモードが有効にされているとき（例えば、デバッグ制御レジスタ５０のＥＤＭビット５２が１にセットされているとき）、デバッグ資源（例えば、デバッグレジスタ４２）は、先ず、ハードウェアデバッガのみの制御下に置かれ、ソフトウェアはこれらの資源に書き込むことができない。ハードウェアデバッガは、デバッグ資源制御レジスタ４１を介して、１つ以上の資源を、残りの資源の使用を保ちながら、ソフトウェアに戻すように割り当てることができる。斯くして、外部デバッグモードにおいて、デバッグソフトウェアによって管理されるデバッグ処理と、外部デバッグハードウェアによって管理されるデバッグ処理とが同時発生することができる。すなわち、ハードウェアデバッガ及びソフトウェアデバッガが同時に動作することができる。外部デバッグモードが無効にされているとき（例えば、デバッグ制御レジスタ５０のＥＤＭビット５２が０にセットされているとき）には、デバッグ資源制御レジスタ４１における設定は無視される。
【００２４】
一実施形態において、デバッグイベントを生成するハードウェア所有の資源は、ハードウェアデバッグモードへのエントリを生じさせ、デバッグイベントを生成するソフトウェア所有の資源は、あたかもデバッグイベントが内部デバッグモードで発生したかのように振る舞い、故に、ＩＤＭビット５４が１にセットされ且つ割り込みが可能にされている場合に、デバッグ割り込みを生じさせる。一実施形態において、デバッグ資源制御レジスタ４１は、デバッグポートを介して制御され、ソフトウェアに対して読み取り専用である。また、デバッグステータスレジスタ４９内のデバッグステータスビットは、内部デバッグモードが有効にされているときにのみ、ソフトウェア所有のデバッグイベントによってセットされる。すなわち、デバッグ割り込みが可能にされているとき（且つ、デバッグ制御レジスタ５０内のＩＤＭビット５４が１にセットされ且つデバッグ制御レジスタ５０内のＥＤＭビット５２が０にセットされているとき、又はデバッグ制御レジスタ５０内のＩＤＭビット５４及びＥＤＭビット５２の双方が１にセットされ且つデバッグ資源制御レジスタ４１を介してソフトウェアに１つ以上のデバッグ資源が割り当てられているとき）、ソフトウェア所有のデバッグイベントに対応するデバッグステータスレジスタ４９内のセットされたビットは、デバッグ割り込みを生成することになる。
【００２５】
図９は、特定のビットフィールドを用いる本発明の特定の一実施形態を示しているが、本発明の代替的な実施形態は、異なる数のビットを各フィールドに有する様々なビットフィールドを用い得る。図９の特定のビットフィールドは単に説明のために示したものである。さらに、ここで説明する何れのレジスタもそうであるように、データを格納するために、より多い、あるいは少ないレジスタが用いられてもよい。例として、デバッグ資源制御レジスタ４１は３２ビットを含み得る。デバッグ資源制御レジスタ４１は、ＩＤＭ１１２、ＲＳＴ１１４、ＵＤＥ１１６、ＩＣＭＰ１１８、ＢＲＴ１２０、ＩＲＰＴ１２２、ＴＲＡＰ１２４、ＩＡＣ１  １２６、ＩＡＣ２  １２８、ＩＡＣ３  １３０、ＩＡＣ４  １３２、ＤＡＣ１  １３４、ＤＡＣ２  １３８、ＲＥＴ１４２、ＤＥＶＴ１  １４６、ＤＥＶＴ２  １４８、ＤＣＮＴ１  １５０、ＤＣＮＴ２  １５２、ＣＩＲＰＴ１５４、ＣＲＥＴ１５６、ＢＫＰＴ１５８及びＦＴ１６２としてラベルを付されたビットフィールドを含み得る。これらのビットフィールドは単に例示であり、デバッグ資源制御レジスタ４１は、より少ないビットフィールド、又は更なるビットフィールドを含んでいてもよい。また、これらのビットフィールドは異なるように配列されてもよい。なお、各フィールドはビット、ビット群又はフィールドとして参照され得る。デバッグ資源制御レジスタ４１はまた、将来的に使用され得る予備ビットフィールド１１０、１３６、１４０、１４４及び１６０を含んでいてもよい。様々なビットフィールドの機能は図１０−１３に関連付けて説明する。
【００２６】
図１０は、図９のデバッグ資源制御レジスタ４１（ＤＢＥＲＣ０）の一部の機能を表の形態で示している。ＩＤＭビット１１２は内部デバッグモード制御を提供する。ＩＤＭビット１１２が０にセットされているとき、内部デバッグモードはソフトウェアによって可能にされない。すなわち、デバッグ制御レジスタ５０（ＤＢＣＲ０）内のＩＤＭビット５４は専らハードウェアによって所有される。デバッグ制御レジスタ５０及び４３（ＤＢＣＲ０−ＤＢＣＲ４）、デバッグカウンタレジスタ５１（ＤＢＣＮＴ１及びＤＢＣＮＴ２）、又はデバッグステータスレジスタ４９（ＤＢＳＲ）への特殊目的レジスタへの転送（Move  to  Special  Purpose  Register；ｍｔｓｐｒ）命令は常に無視される。また、ＤＢＥＲＣ０  ４１内のその他のフィールドの設定にかかわらず、リソース共有は行われない。すなわち、ハードウェアが全ての資源を排他的に所有する。また、ソフトウェアによる如何なるデバッグレジスタ４２からの特殊目的レジスタからの転送（Move  from  Special  Purpose  Register；ｍｆｓｐｒ）命令も０を返す。ＩＤＭビット１１２が１にセットされているとき、内部デバッグモードはソフトウェアによって可能にされ得る。すなわち、ＤＢＣＲ０  ５０内のＩＤＭビット５４及びＤＢＳＲ４９内のＩＤＥビット７６は、ソフトウェアによって所有され、故に、ソフトウェアによって読み取り可能／書き込み可能なものになる。また、ＤＢＳＲ４９内のハードウェアが管理するステータス・制御ビットは、ソフトウェアアクセスからマスクされ且つ０として読まれ、ＤＢＣＲ０−ＤＢＣＲ４、ＤＢＣＮＴ及びＤＢＳＲ内のハードウェア管理ビットへのｍｔｓｐｒ命令を介してのソフトウェア書き込みは無視される。なお、ＩＤＭビット１１２を１にセットすることにより、ハードウェアは、ソフトウェアによって使用されるように資源を割り当てることができ、ソフトウェアに割り当てられた資源は、ＤＢＥＲＣ０  ４１内のその他のフィールドによって規定され得る。ＲＳＴビット１１４はリセットフィールド制御を提供する。ＲＳＴビット１１４が０にセットされているとき、ＤＢＣＲ０  ５０のＲＳＴビット５６は専らハードウェアによって所有される。また、ＲＳＴビット５６へのソフトウェアによるｍｔｓｐｒアクセスは許可されず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＲＳＴビット１１４が１にセットされているとき、ＤＢＣＲ０  ５０のＲＳＴビット５６はソフトウェアデバッガによるアクセスが可能なものにされる。すなわち、ＲＳＴビット５６はソフトウェアによって読み取り可能且つ書き込み可能なものになる。
【００２７】
なおも図１０を参照するに、ＵＤＥビット１１６は、無条件デバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＵＤＥビット１１６が０にセットされているとき、無条件デバッグイベントはハードウェアデバッガによって所有される。ソフトウェアはｍｔｓｐｒ命令を介してＤＢＳＲ４９内のＵＤＥフィールド（図示せず）にアクセスすることができず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＵＤＥビット１１６が１にセットされているとき、無条件デバッグイベントはソフトウェアデバッガによって所有される。この場合、ＤＢＳＲ４９内のＵＤＥフィールドはソフトウェアによって読み取り可能且つ書き込み可能である。ＩＣＭＰビット１１８は、命令完了デバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＩＣＭＰビット１１８が０にセットされているとき、命令完了デバッグイベントはハードウェアデバッガによって所有される。ＤＢＣＲ０  ５０内のＩＣＭＰフィールド５８又はＤＢＳＲ４９内のＩＣＭＰフィールド７８へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＩＣＭＰビット１１８が１にセットされているとき、命令完了デバッグイベントはソフトウェアデバッガによって所有される。この場合、ＤＢＣＲ０  ５０内のＩＣＭＰフィールド５８及びＤＢＳＲ４９内のＩＣＭＰフィールド７８はソフトウェアによって読み取り可能且つ書き込み可能である。ＢＲＴビット１２０は、分岐を取るデバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＢＲＴビット１２０が０にセットされているとき、分岐を取るデバッグイベントはハードウェアデバッガによって所有される。ＤＢＣＲ０  ５０内のＢＲＴフィールド６０又はＤＢＳＲ４９内のＢＲＴフィールド８０へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＢＲＴビット１２０が１にセットされているとき、分岐を取るデバッグイベントはソフトウェアデバッガによって所有される。この場合、ＤＢＣＲ０  ５０内のＢＲＴフィールド６０及びＤＢＳＲ４９内のＢＲＴフィールド８０はソフトウェアによって読み取り可能且つ書き込み可能である。
【００２８】
図１１は、図９のデバッグ資源制御レジスタ４１（ＤＢＥＲＣ０）の一部の機能を表の形態で示している。ＩＲＰＴビット１２２は、割り込みを取るデバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＩＲＰＴビット１２２が０にセットされているとき、割り込みを取るデバッグイベントはハードウェアデバッガによって所有される。ＤＢＣＲ０  ５０内のＩＲＰＴフィールド（図示せず）又はＤＢＳＲ４９内のＩＲＰＴフィールド（図示せず）へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＩＲＰＴビット１２２が１にセットされているとき、割り込みを取るデバッグイベントはソフトウェアデバッガによって所有される。この場合、ＤＢＣＲ０  ５０内のＩＲＰＴフィールド及びＤＢＳＲ４９内のＩＲＰＴフィールドはソフトウェアによって読み取り可能且つ書き込み可能である。ＴＲＡＰビット１２４は、トラップを取るデバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＴＲＡＰビット１２４が０にセットされているとき、トラップを取るデバッグイベントはハードウェアデバッガによって所有される。ＤＢＣＲ０  ５０内のＴＲＡＰフィールド７２又はＤＢＳＲ４９内のＴＲＡＰフィールド９７へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＴＲＡＰビット１２４が１にセットされているとき、トラップを取るデバッグイベントはソフトウェアデバッガによって所有される。この場合、ＤＢＣＲ０  ５０内のＴＲＡＰフィールド７２及びＤＢＳＲ４９内のＴＲＡＰフィールド９７はソフトウェアによって読み取り可能且つ書き込み可能である。
【００２９】
なおも図１１を参照するに、ＩＡＣ１ビット１２６は、命令アドレス比較１デバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＩＡＣ１ビット１２６が０にセットされているとき、命令アドレス比較１デバッグイベントはハードウェアデバッガによって所有される。ＩＡＣ１制御・ステータスフィールド（例えば、ＤＢＣＲ０  ５０内のＩＡＣ１フィールド６１及びＤＢＳＲ４９内のＩＡＣ１フィールド８２）へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＩＡＣ１ビット１２６が１にセットされているとき、命令アドレス比較１デバッグイベントはソフトウェアデバッガによって所有される。この場合、ＩＡＣ１制御・ステータスフィールド（例えば、ＤＢＣＲ０  ５０内のＩＡＣ１フィールド６１及びＤＢＳＲ４９内のＩＡＣ１フィールド８２）はソフトウェアによって読み取り可能且つ書き込み可能である。ＩＡＣ２ビット１２８は、命令アドレス比較２デバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＩＡＣ２ビット１２８が０にセットされているとき、命令アドレス比較２デバッグイベントはハードウェアデバッガによって所有される。ＩＡＣ２制御・ステータスフィールド（例えば、ＤＢＣＲ０  ５０内のＩＡＣ２フィールド６２及びＤＢＳＲ４９内のＩＡＣ２フィールド８４）へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＩＡＣ２ビット１２８が１にセットされているとき、命令アドレス比較２デバッグイベントはソフトウェアデバッガによって所有される。この場合、ＩＡＣ２制御・ステータスフィールド（例えば、ＤＢＣＲ０  ５０内のＩＡＣ２フィールド６２及びＤＢＳＲ４９内のＩＡＣ２フィールド８４）はソフトウェアによって読み取り可能且つ書き込み可能である。ＩＡＣ３ビット１３０は、命令アドレス比較３デバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＩＡＣ３ビット１３０が０にセットされているとき、命令アドレス比較３デバッグイベントはハードウェアデバッガによって所有される。ＩＡＣ３制御・ステータスフィールド（例えば、ＤＢＣＲ０  ５０内のＩＡＣ３フィールド６３及びＤＢＳＲ４９内のＩＡＣ３フィールド８６）へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＩＡＣ３ビット１３０が１にセットされているとき、命令アドレス比較３デバッグイベントはソフトウェアデバッガによって所有される。この場合、ＩＡＣ３制御・ステータスフィールド（例えば、ＤＢＣＲ０  ５０内のＩＡＣ３フィールド６３及びＤＢＳＲ４９内のＩＡＣ３フィールド８６）はソフトウェアによって読み取り可能且つ書き込み可能である。ＩＡＣ４ビット１３２は、命令アドレス比較４デバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＩＡＣ４ビット１３２が０にセットされているとき、命令アドレス比較４デバッグイベントはハードウェアデバッガによって所有される。ＩＡＣ４制御・ステータスフィールド（例えば、ＤＢＣＲ０  ５０内のＩＡＣ４フィールド６４及びＤ���ＳＲ４９内のＩＡＣ４フィールド８８）へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＩＡＣ４ビット１３２が１にセットされているとき、命令アドレス比較４デバッグイベントはソフトウェアデバッガによって所有される。この場合、ＩＡＣ４制御・ステータスフィールド（例えば、ＤＢＣＲ０  ５０内のＩＡＣ４フィールド６４及びＤＢＳＲ４９内のＩＡＣ４フィールド８８）はソフトウェアによって読み取り可能且つ書き込み可能である。
【００３０】
図１２は、図９のデバッグ資源制御レジスタ４１（ＤＢＥＲＣ０）の一部の機能を表の形態で示している。ＤＡＣ１ビット１３４は、データアドレス比較１デバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＤＡＣ１ビット１３４が０にセットされているとき、データアドレス比較１デバッグイベントはハードウェアデバッガによって所有される。ＤＡＣ１制御・ステータスフィールド（例えば、ＤＢＣＲ０  ５０内のＤＡＣ１フィールド６６、並びにＤＢＳＲ４９内のＤＡＣ１Ｒフィールド９０及びＤＡＣ１Ｗフィールド９２）へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＤＡＣ１ビット１３４が１にセットされているとき、データアドレス比較１デバッグイベントはソフトウェアデバッガによって所有される。この場合、ＤＡＣ１制御・ステータスフィールド（例えば、ＤＢＣＲ０  ５０内のＤＡＣ１フィールド６６、並びにＤＢＳＲ４９内のＤＡＣ１Ｒフィールド９０及びＤＡＣ１Ｗフィールド９２）はソフトウェアによって読み取り可能且つ書き込み可能である。ＤＡＣ２ビット１３８は、データアドレス比較２デバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＤＡＣ２ビット１３８が０にセットされているとき、データアドレス比較２デバッグイベントはハードウェアデバッガによって所有される。ＤＡＣ２制御・ステータスフィールド（例えば、ＤＢＣＲ０  ５０内のＤＡＣ２フィールド６８、並びにＤＢＳＲ４９内のＤＡＣ２Ｒフィールド９４及びＤＡＣ２Ｗフィールド９６）へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＤＡＣ２ビット１３８が１にセットされているとき、データアドレス比較２デバッグイベントはソフトウェアデバッガによって所有される。この場合、ＤＡＣ２制御・ステータスフィールド（例えば、ＤＢＣＲ０  ５０内のＤＡＣ２フィールド６８、並びにＤＢＳＲ４９内のＤＡＣ２Ｒフィールド９４及びＤＡＣ２Ｗフィールド９６）はソフトウェアによって読み取り可能且つ書き込み可能である。
【００３１】
なおも図１２を参照するに、ＲＥＴビット１４２は、リターンデバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＲＥＴビット１４２が０にセットされているとき、リターンデバッグイベントはハードウェアデバッガによって所有される。ＤＢＣＲ０  ５０内のＲＥＴフィールド（図示せず）及びＤＢＳＲ４９内のＲＥＴフィールド（図示せず）へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＲＥＴビット１４２が１にセットされているとき、リターンデバッグイベントはソフトウェアデバッガによって所有される。この場合、ＤＢＣＲ０  ５０内のＲＥＴフィールド及びＤＢＳＲ４９内のＲＥＴフィールドはソフトウェアによって読み取り可能且つ書き込み可能である。ＤＥＶＴ１ビット１４６は、外部デバッグイベント１デバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＤＥＶＴ１ビット１４６が０にセットされているとき、外部デバッグイベント１デバッグイベントはハードウェアデバッガによって所有される。ＤＢＣＲ０  ５０内のＤＥＶＴ１フィールド（図示せず）及びＤＢＳＲ４９内のＤＥＶＴ１フィールド（図示せず）へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＤＥＶＴ１ビット１４６が１にセットされているとき、外部デバッグイベント１デバッグイベントはソフトウェアデバッガによって所有される。この場合、ＤＢＣＲ０  ５０内のＤＥＶＴ１フィールド及びＤＢＳＲ４９内のＤＥＶＴ１フィールドはソフトウェアによって読み取り可能且つ書き込み可能である。ＤＥＶＴ２ビット１４８は、外部デバッグイベント２デバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＤＥＶＴ２ビット１４８が０にセットされているとき、外部デバッグイベント２デバッグイベントはハードウェアデバッガによって所有される。ＤＢＣＲ０  ５０内のＤＥＶＴ２フィールド（図示せず）及びＤＢＳＲ４９内のＤＥＶＴ２フィールド（図示せず）へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＤＥＶＴ２ビット１４８が１にセットされているとき、外部デバッグイベント２デバッグイベントはソフトウェアデバッガによって所有される。この場合、ＤＢＣＲ０  ５０内のＤＥＶＴ２フィールド及びＤＢＳＲ４９内のＤＥＶＴ２フィールドはソフトウェアによって読み取り可能且つ書き込み可能である。
【００３２】
図１３は、図９のデバッグ資源制御レジスタ４１（ＤＢＥＲＣ０）の一部の機能を表の形態で示している。ＤＣＮＴ１ビット１５０は、デバッグカウンタ１デバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＤＣＮＴ１ビット１５０が０にセットされているとき、デバッグカウンタ１デバッグイベントはハードウェアデバッガによって所有される。カウンタ１制御・ステータスフィールド（例えば、ＤＢＣＲ０  ５０内のＤＣＮＴ１フィールド７０及びＤＢＳＲ４９内のＤＣＮＴ１フィールド９８）へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＤＣＮＴ１ビット１５０が１にセットされているとき、デバッグカウンタ１デバッグイベントはソフトウェアデバッガによって所有される。この場合、カウンタ１制御・ステータスフィールド（例えば、ＤＢＣＲ０  ５０内のＤＣＮＴ１フィールド７０及びＤＢＳＲ４９内のＤＣＮＴ１フィールド９８）はソフトウェアによって読み取り可能且つ書き込み可能である。ＤＣＮＴ２ビット１５２は、デバッグカウンタ２デバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＤＣＮＴ２ビット１５２が０にセットされているとき、デバッグカウンタ２デバッグイベントはハードウェアデバッガによって所有される。カウンタ２制御・ステータスフィールド（例えば、ＤＢＣＲ０  ５０内のＤＣＮＴ２フィールド７１及びＤＢＳＲ４９内のＤＣＮＴ２フィールド９９）へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＤＣＮＴ２ビット１５２が１にセットされているとき、デバッグカウンタ２デバッグイベントはソフトウェアデバッガによって所有される。この場合、カウンタ２制御・ステータスフィールド（例えば、ＤＢＣＲ０  ５０内のＤＣＮＴ２フィールド７１及びＤＢＳＲ４９内のＤＣＮＴ２フィールド９９）はソフトウェアによって読み取り可能且つ書き込み可能である。ＣＩＲＰＴビット１５４は、クリティカル割り込みを取るデバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＣＩＲＰＴビット１５４が０にセットされているとき、クリティカル割り込みを取るデバッグイベントはハードウェアデバッガによって所有される。ＤＢＣＲ０  ５０内のＣＩＲＰＴフィールド（図示せず）及びＤＢＳＲ４９内のＣＩＲＰＴフィールド（図示せず）へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＣＩＲＰＴビット１５４が１にセットされているとき、クリティカル割り込みを取るデバッグイベントはソフトウェアデバッガによって所有される。この場合、ＤＢＣＲ０  ５０内のＣＩＲＰＴフィールド及びＤＢＳＲ４９内のＣＩＲＰＴフィールドはソフトウェアによって読み取り可能且つ書き込み可能である。ＣＲＥＴビット１５６は、クリティカルリターンデバッグイベントの所有権（又は管理）のソフトウェアへの割当てを可能にする。ＣＲＥＴビット１５６が０にセットされているとき、クリティカルリターンデバッグイベントはハードウェアデバッガによって所有される。ＤＢＣＲ０  ５０内のＣＲＥＴ���ィールド（図示せず）及びＤＢＳＲ４９内のＣＲＥＴフィールド（図示せず）へのソフトウェアによるｍｔｓｐｒアクセスは存在せず、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。ＣＲＥＴビット１５６が１にセットされているとき、クリティカルリターンデバッグイベントはソフトウェアデバッガによって所有される。この場合、ＤＢＣＲ０  ５０内のＣＲＥＴフィールド及びＤＢＳＲ４９内のＣＲＥＴフィールドはソフトウェアによって読み取り可能且つ書き込み可能である。
【００３３】
なおも図１３を参照するに、ＢＫＰＴビット１５８は、ブレイクポイント命令デバッグ制御を提供する。ＢＫＰＴビット１５８が０にセットされているとき、ブレイクポイントはハードウェアによって所有される。ブレイクポイント（ｂｋｐｔ）命令（全て０の命令コードを有する命令）の実行は、ハードウェアデバッガがデバッグ処理を管理することが可能なデバッグモードに入ること（エントリ）をもたらす。ＫＰＴビット１５８が１にセットされているとき、ブレイクポイントはソフトウェアデバッガによって所有される。ｂｋｐｔ命令の実行は、不当命令例外（illegal  instruction  exception）をもたらす。ＦＴビット１６２は、フリーズタイマーデバッグ制御を提供する。ＦＴビット１６２が０にセットされているとき、ＤＢＣＲ０  ５０のＦＴフィールド（図示せず）はハードウェアデバッガによって所有され、ソフトウェアによるアクセスは許可されない。ＦＴビット１６２が１にセットされているとき、ＦＴフィールドはソフトウェアデバッガによって所有され、故に、ソフトウェアによって読み取り可能且つ書き込み可能となる。図１０−１３において、ビットフィールド１１０、１３６、１４０、１４４及び１６０は将来的な使用のための予備とされ得る。
【００３４】
従って、上述のように、プロセッサ１２が最初に外部デバッグモードに入るとき、全ての資源は専らハードウェアデバッガ（例えば、外部デバッグ回路１４）に割り当てられる。しかしながら、デバッグ資源制御レジスタ４１の使用を介して、ハードウェア（例えば、ハードウェアデバッガ）は、資源をソフトウェア（例えば、ソフトウェアデバッガ）に戻すように割り当て、ソフトウェアによる排他的な使用のために供することができる。すなわち、外部デバッグハードウェアは、デバッグ資源の第１の部分をデバッグソフトウェアに利用可能にすることができ、そのとき、デバッグ資源の第２の部分は外部デバッグハードウェアによる排他的使用に捧げられる（第１及び第２の部分は相互に排他的な部分である）。図１０−１３内の説明に見られるように、デバッグイベント又はデバッグ制御をソフトウェアに割り当てることにより、ソフトウェアはそれらデバッグイベント又はデバッグ制御を管理するために必要な資源へのアクセスを有することになる。一実施形態において、ソフトウェアは、デバッグイベント又はデバッグ制御を管理するために必要な資源のみに対してアクセスを与えられる。例えば、ハードウェアがＩＡＣ１ビット１２６及びＩＡＣ２ビット１２８の各々を１にセットする（且つ、資源の共有を可能にするためにＩＤＭビット１１２を１にセットする）場合、それらの命令アドレス比較デバッグイベントを管理するために必要なステータス・制御レジスタ及びその他の資源がソフトウェアに割り当てられる。例えば、ソフトウェアは、ＤＢＣＲ０  ５０内のＩＡＣ１フィールド６１及びＩＡＣ２フィールド６２、ＤＢＳＲ４９内のＩＡＣ１フィールド８２及びＩＡＣ２フィールド８４、並びにＩＡＣ１及びＩＡＣ２のレジスタ４５へのアクセスを有する。斯くして、ソフトウェアは、デバッグイベントを設定するために、該当するＩＡＣ１フィールド６１、ＩＡＣ２フィールド６２、及び必要に応じてＩＡＣレジスタ４５、をセットすることにより、ＩＡＣ１若しくはＩＡＣ２の何れかのデバッグイベント（又は、双方のデバッグイベント）をイネーブルすることができる。しかしながら、ＤＢＥＲＣ０内の残りのビットフィールドが０にセットされたままである場合、ハードウェアはそれら残りの資源について排他的な使用を有する。斯くして、ソフトウェアデバッガはハードウェアデバッガによって割り当てられた資源のみにアクセスすることに制限されるが、外部デバッグモードにおいてハードウェアデバッガとソフトウェアデバッガとが同時にデバッグ処理を実行し得る。また、プロセッサ１２上で実行されるデバッグソフトウェアは、ハードウェアによって排他的に所有されたままのその他資源の何れにもアクセスすることができないであろう。故に、デバッグソフトウェアは、デバッグイベントの所有権を割り当てられると、必要に応じて特定のレジスタ又はレジスタの特定のフィールドへのアクセスを与えられる。斯くして、ハードウェアデバッガは、デバッグ資源の相互に排他的な第１の部分及び第２の部分について、デバッグ資源の第２の部分を当該ハードウェアデバッガに投じながら、デバッグ資源の第１の部分をデバッグソフトウェアによる使用に利用可能にすることができる。
【００３５】
図１４及び１５は、ＤＢＥＲＣ０  ４１の具体的な設定に応じて何れの資源がソフトウェアアクセス可能であるかを表の形態で示している。行１７２を参照するに、外部デバッグモードが有効にされていない場合（ＥＤＭビット５２が０にセットされている場合）、全ての資源が専らソフトウェアによって所有され、故にソフトウェアによってアクセス可能である。図１４及び１５の残りの行では、行１７６、１７８、１８０、１８２、１８４、１８６、１８８、１９０、１９２、１９４、１９６、１９８、２００、２０２、２０４、２０６、２０８及び２１０に示すように、外部デバッグモードが有効にされ（ＥＤＭビット５２が１にセットされ）且つＤＢＥＲＣ０  ４１のＩＤＭビット１１２が１にセットされており、ＤＢＥＲＣ０  ４１の残りのフィールドが特定の資源をソフトウェアに割り当てている。例えば、ソフトウェアが（前段落の例で説明したように）命令アドレス比較１及び２デバッグイベントを所有することを可能にすることには、行１８６若しくは行１８８、又はこれら双方の設定を用いることができ、“ソフトウェアアクセス可能”と題を付された列が、ＤＢＥＲＣ０  ４１のＩＡＣ１ビット１２６又はＩＡＣ２ビット１２８のどちらが１にセットされているかに基づいて、ソフトウェアによる使用に何れのデバッグ資源が利用可能であるかを指し示している。なお、ＤＢＣＲ０  ５０に関して説明したフィールドに加えて、その他のデバッグ制御レジスタ４３内のその他のフィールド（例えば、ＤＢＣＲ１のＩＡＣ１ＵＳ及びＩＡＣ１ＥＲ等）もソフトウェアによる使用に割り当てられることが可能である。
【００３６】
図１６及び１７は、本発明の一実施形態に従ったマスキング回路３１の部分を例示している。図１６は、例えばｍｆｓｐｒ命令を実行するとき等の、デバッグレジスタ４２から実行ユニット２４までの読み出しパスの一部を示している。図１０−１３に関連して説明したように、特定のデバッグイベントに対応するビットフィールドがアサートされていないとき、該特定のデバッグイベントはハードウェアに所有され、ソフトウェアによるｍｆｓｐｒアクセスは０を返す。しかしながら、特定のデバッグイベントに対応するビットフィールドがアサートされているときには、該特定のデバッグイベントはソフトウェアに所有され、ソフトウェアによって読み取り可能且つ書き込み可能である。斯くして、デバッグソフトウェアの実行中にＤＢＳＲ４９の部分ぶぶんがデバッグソフトウェアによって読み取られることを防止することができる。故に、図１６を参照するに、各ＡＮＤゲート２２０、２２２、２２４、２２６及び２２８は、ＤＢＥＲＣ０  ４１からの第１のビット入力と、ＤＢＳＲ４９からの対応する第２のビット入力とを受信する。すなわち、各ＡＮＤゲートは、例えば特定のデバッグイベントに対応するＤＢＥＲＣ０からの１つのビットフィールドを受信するとともに、該特定のデバッグイベントに対応する（すなわち、該特定のデバッグイベントの結果を報告する）ＤＢＳＲ４９からのビットフィールドを受信する。例えば、ＡＮＤゲート２２２は、第１の入力としてのＤＢＥＲＣ０  ４１からのＩＡＣ１ビット１２６と、第２の入力としてのＤＢＳＲ４９からのＩＡＣ１ビット８２とを受信し得る。ＤＢＥＲＣ０  ４１からＡＮＤゲートへの入力が“１”（対応するデバッグイベントがソフトウェア所有であることを指し示す）である場合、該ＡＮＤゲートの出力は、該ＡＮＤゲートの第２の入力として提供されるＤＢＳＲ４９からの対応するビットフィールドの値を反映したものとなる。しかしながら、ＤＢＥＲＣ０  ４１からＡＮＤゲートへの入力が“０”である場合、ＤＢＳＲ４９から入力される値にかかわらず、該ＡＮＤゲートの出力は０になる。斯くして、ｍｆｓｐｒアクセスは、ＤＢＥＲＣ０  ４１内の対応するビットがネゲートされているとき、常にゼロを返すことになる。
【００３７】
図１７は、実行ユニット２４からデバッグレジスタ４２への書き込みパスの一部を示している。図１０−１３に関連して説明したように、特定のデバッグイベントに対応するビットフィールドがアサートされていないとき、該特定のデバッグイベントはハードウェアに所有され、ソフトウェアによるｍｔｓｐｒアクセスは存在しない。すなわち、ソフトウェアはそのビットフィールドに書き込むことができない。しかしながら、特定のデバッグイベントに対応するビットフィールドがアサートされているときには、該特定のデバッグイベントはソフトウェアに所有され、ソフトウェアによって読み取り可能且つ書き込み可能である。故に、図１７を参照するに、各ＡＮＤゲート２３０、２３２及び２３４は、第１の入力としてのライトイネーブル（WRITE_EN）信号２４２と、ＤＢＥＲＣ０  ４１からの対応するビット入力とを受信する。斯くして、ＤＢＥＲＣ０  ４１からの対応するビット入力がアサートされているときにのみ、対応するビットフィールド（例えば、ＢＩＴ８、ＢＩＴ９及びＢＩＴ１５）はソフトウェアによって書き込まれることができる。すなわち、ＤＢＥＲＣ０  ４１からの対応するビット入力がアサートされていないときには、対応するビットフィールドは書き込まれることができない。なお、記憶回路２３６、２３８及び２４０に格納されたＢＩＴ８、ＢＩＴ９及びＢＩＴ１５は、それぞれ、デバッグ制御レジスタ（例えば、ＤＢＣＲ０−ＤＢＣＲ４等）又はＤＢＳＲ４９のビットフィールド位置８、９及び１５に対応する。すなわち、ＡＮＤゲート２３０、２３２及び２３４等のＡＮＤゲートは、必要に応じて、デバッグレジスタ４２内のレジスタへの書き込みパス内に存在し得る。例えば、記憶回路２３６は、ＤＢＣＲ０  ５０のＩＡＣ３ビットフィールド６３のレジスタ記憶ビット（ＩＡＣ３ビットフィールド６３はＤＢＣＲ０  ５０のビットフィールド位置８に格納されている）に相当し得る。記憶回路２３６がＤＢＳＲ４９のレジスタ記憶ビットに相当する場合、記憶回路２３６はＤＡＣ１Ｗビットフィールド９２のレジスタ記憶ビット（ＤＡＣ１Ｗビットフィールド９２はＤＢＳＲ４９のビットフィールド位置８に格納されている）に相当し得る。
【００３８】
一実施形態において、ＤＢＳＲ４９内の各フィールドはステータスフラグと呼ぶことができ、ハードウェア所有のデバッグイベントに対応するフィールドはハードウェアステータスフラグ、ソフトウェア所有のデバッグイベントに対応するフィールドはソフトウェアステータスフラグと呼び得る。なお、ハードウェアステータスフラグのセット及びクリアは、ハードウェアデバッガを実行することから発生し、存在する場合には、ソフトハードウェアステータスフラグのセット及びクリアは、デバッグソフトウェアを実行することから発生する。マスキング回路３１は故に、ＤＢＳＲ４９内の複数の位置をマスクし、そのとき、ハードウェアステータスフラグ及びソフトウェアステータスフラグの双方がハードウェアデバッガによって読まれることを可能にしながら、ハードウェアステータスフラグはデバッグソフトウェアによって読まれないようにされる。なお、マスキング回路３１の機能は、デバッグステータスレジスタ内の複数の位置をマスクするように様々な回路を用いる様々な手法にて実現され得る。
【００３９】
図１８は、図２の外部デバッグコマンドレジスタ３３の一実施形態を示している。外部デバッグコマンドレジスタ３３は、例えば外部デバッグ回路１４等のハードウェアデバッガから、デバッグポートを介して、デバッグコマンドを受信する。外部デバッグコマンドレジスタ３３は、読み出し／書き込みコマンドフィールド２５０と、レジスタ選択フィールド２５４とを含んでいる。図示した実施形態において、読み出し／書き込みコマンドフィールド２５０は単一ビットのフィールドであり、レジスタ選択フィールド２５４は７ビットを含んでいる。外部デバッグコマンドレジスタ３３はまた、将来的な使用のための予備のビット２５２を含んでいてもよい。図１８は、特定のビットフィールドを用いる本発明の特定の一実施形態を示しているが、本発明の代替的な実施形態は、異なる数のビットを各フィールドに有する様々なビットフィールドを用い得る。図１８の特定のビットフィールドは単に説明のために示したものである。さらに、ここで説明する何れのレジスタもそうであるように、データを格納するために、より多い、あるいは少ないレジスタが用いられてもよい。例として、外部デバッグコマンドレジスタ３３は１０ビットを含み得る。
【００４０】
図１９は、本発明の一実施形態に従った図１８の外部デバッグコマンドレジスタ３３の機能を表の形態で示している。読み出し／書き込みコマンドビット２５０はデータ転送の向きを指定する。読み出し／書き込みコマンドビットが０である場合、外部デバッグコマンドに関連付けられたデータが、レジスタ選択フィールド２５４によって指定されるレジスタに書き込まれる。読み出し／書き込みコマンドビットが１である場合、レジスタ選択フィールド２５４によって指定されるレジスタ内に含まれるデータが読み出される。一実施形態において、読み出し／書き込みコマンドビットは読み出し専用レジスタ又は書き込み専用レジスタの場合に無視される。レジスタ選択フィールド２５４は、どのレジスタが、読み出し処理の場合のソースレジスタ、又は書き込み処理の場合の宛先レジスタであるかを規定する。一実施形態において、読み出し専用レジスタに対して試みられた書き込みは無視される。
【００４１】
図２０は、本発明の一実施形態に従ったレジスタ選択フィールドに使用され得るレジスタアドレスを表の形態で示している。代替的な実施形態は、レジスタアドレスを異なるように規定してもよい。図２０を参照するに、例えば、行２７６に示すように、レジスタ選択フィールド２５４の値０１０００００は、デバッグレジスタ４２内のＩＡＣ１レジスタを指し示す。行２９８に示すように、レジスタ選択フィールド２５４の値０１１００００はＤＢＳＲ４９を指し示す。故に、行２６６、２７６、２７８、２８０、２８２、２８４、２８６、２８８、２９０、２９４、２９８、３００、３０２、３０４、３０６及び３１０は、それぞれ、ＪＴＡＧ  ＩＤレジスタ、ＩＡＣ１レジスタ、ＩＡＣ２レジスタ、ＩＡＣ３レジスタ、ＩＡＣ４レジスタ、ＤＡＣ１レジスタ、ＤＡＣ２レジスタ、ＤＶＣ１レジスタ、ＤＶＣ２レジスタ、ＤＢＣＮＴレジスタ、ＤＢＳＲレジスタ、ＤＢＣＲ０−３レジスタ及びＤＢＥＲＣ０レジスタを指し示すレジスタ選択フィールド２５４の様々な値を示している。従って、外部デバッグモードにおいて、外部デバッグ回路１４はデバッグポートを介して外部デバッグコマンドレジスタ３３にコマンドを提供することができる。例えば、外部デバッグモードにおいて、ハードウェアデバッガがデバッグ資源をソフトウェアに割り当てることを望む場合、ハードウェアデバッガは、読み出し／書き込みコマンドフィールド２５０が０にセットされ且つレジスタ選択フィールドが０１１１１１１（行３１０に示す）にセットされたコマンドを提供することができる。ハードウェアデバッガは、その後、デバッグポートを介してＤＢＥＲＣ０  ４１に所望の値を書き込むことができる。
【００４２】
上述のように、外部デバッグモードにおけるソフトウェアによる読み取りアクセスは、ソフトウェア所有でないビットフィールドがゼロを返すようにマスクされる。斯くして、ソフトウェア処理による一貫性が維持される。しかしながら、一実施形態において、ハードウェアデバッガが例えばＤＢＳＲ４９等のデバッグレジスタを読み取るとき、その全ての値が提供される。すなわち、ソフトウェア所有のビットフィールドはハードウェアデバッガにも提供される。
【００４３】
故に、ハードウェアデバッガとソフトウェアデバッガとの間でデバッグ資源を共有して、ハードウェアデバッガ及びソフトウェアデバッガが同時にどのように動作し得るかは認識されることができる。一実施形態において、外部デバッグモードにある間にデバッグ資源の一部をデバッグソフトウェアによる使用に利用可能にし得ることは、ハードウェアデバッガがソフトウェアデバッガをデバッグすることを可能にする。例えば、割り込みが可能にされた一実施形態において、ソフトウェア所有のデバッグイベントの発生は、ソフトウェア割り込みハンドラによって対処される割り込みを生じさせ得る。このハンドラ（すなわち、ソフトウェアルーチン）は、その後、ハードウェアデバッガに制御を提供するために、実行の中断又はプロセッサの停止を行うことができる。斯くして、ハードウェアデバッガは、外部デバッグコマンドレジスタ３３を介してデバッグ処理を管理し、ひいてはデバッグソフトウェア自体をデバッグすることが可能である。なお、代替的な実施形態においては、ソフトウェアにデバッグ資源を実際に利用可能にするために、デバッグ資源制御レジスタ４１等の制御レジスタを介してではなく、その他の種類の記憶回路又は論理回路が用いられ得る。
【００４４】
本発明を実現する装置は、大部分が、当業者に既知の電子部品及び回路からなるので、本発明の基本的な概念の理解及び認識のため、また、本発明の教示を不明瞭にしたりそれから逸脱したりしないよう、回路の詳細については、必要と思われる以上には説明しないこととする。
【００４５】
用語“プログラム”は、ここでは、コンピュータシステム上で実行されるように設計された命令シーケンスとして定義される。プログラムすなわちコンピュータプログラムは、コンピュータシステム上での実行用に設計された、サブルーチン、関数、プロシージャ、オブジェクト方法、オブジェクト実装、実行可能アプリケーション、アプレット、サーブレット、ソースコード、オブジェクトコード、共有ライブラリ／ダイナミックロードライブラリ、及び／又はその他の命令シーケンスを含み得る。
【００４６】
上述の実施形態の一部は、多様な情報処理システムを用いて実現され得る。例えば、図１及びその説明は典型的な情報処理アーキテクチャを記述しているが、この典型的なアーキテクチャは、単に、本発明の様々な態様を議論する際に便利な参考を提供するために提示したものである。当然ながら、このアーキテクチャの記述は説明目的のために単純化されており、本発明に従って使用され得る様々な種類の適用可能なアーキテクチャのうちの１つに過ぎない。当業者に認識されるように、論理ブロック同士の間の境界は単なる例示であり、代替的な実施形態は、複数の論理ブロック又は回路要素を融合したり、機能を様々な論理ブロック又は回路要素上に別のように分解したりすることが可能である。
【００４７】
故に、理解されるように、ここで記述したアーキテクチャは単なる例示であり、実際には、同一の機能を達成する数多くのその他のアーキテクチャが実現され得る。要約するに、しかし依然として明確な意味で、同一の機能を達成する如何なる構成の要素群も、所望の機能が達成されるように効果的に“結合”される。従って、１つの特定の機能を達成するように組み合わされる如何なる２つの要素も、アーキテクチャや中間要素に関係なく、所望の機能を達成するように互いに“結合”されていると見ることが可能である。同様に、そのように結合される如何なる２つの要素も、所望の機能を達成するように互いに“動作的に接続されている”あるいは“動作的に結合されている”として見ることができる。
【００４８】
また、例えば、一実施形態において、システム１０の図示した要素群は、単一の集積回路上、あるいは同一のデバイス内に位置付けられる回路である。代替的に、システム１０は、相互に接続された如何なる数の別々の集積回路又は別々のデバイスを含んでいてもよい。また、例えば、システム１０又はその一部は、物理回路の、あるいは物理回路に変換可能な論理表現の、ソフト表現若しくはコード表現であってもよい。このように、システム１０は、如何なる適切な種類のハードウェア記述言語にて具現化されてもよい。
【００４９】
さらに、当業者に認識されるように、上述の処理の複数の機能間の境界は単なる例示である。複数の処理の機能が単一の処理に結合されてもよく、且つ／或いは単一の処理の機能が更なる処理に分散されてもよい。また、代替的な実施形態は、１つの特定の処理の複数の例を含むことができ、処理間の順序は様々なその他の実施形態において変更され得る。
【００５０】
ここで説明したソフトウェアの全て又は一部は、例えば、メモリ１８又はその他のコンピュータシステム上のその他のメディアなどのコンピュータ読み取り可能媒体から受信したデータ処理システム１０の要素であってもよい。コンピュータ読み取り可能媒体は、データ処理システム１０等の情報処理システムに、恒久的に、取り外し可能に、あるいは遠隔に結合され得る。コンピュータ読み取り可能媒体は、非限定的な例として：ディスク状及びテープ状の記憶メディアを含む磁気記憶媒体；コンパクトディスクメディア（例えば、ＣＤ−ＲＯＭ、ＣＤ−Ｒ等）及びデジタルビデオディスク記憶メディアなどの光記憶媒体；例えばフラッシュメモリ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、ＲＯＭ等の半導体ベースのメモリユニットを含む不揮発性メモリ記憶媒体；強磁性デジタルメモリ；ＭＲＡＭ；レジスタ、バッファ若しくはキャッシュ、メインメモリ、ＲＡＭ等を含む揮発性記憶媒体；並びに数例を挙げるとコンピュータネットワーク、二地点間遠隔通信設備、及び搬送波伝送媒体を含むデータ伝送媒体；を含み得る。
【００５１】
ここでは特定の実施形態を参照して本発明を説明したが、請求項に記載される本発明の範囲を逸脱することなく、様々な変更及び変形が為され得る。従って、本明細書及び図面は、限定的な意味ではなく例示的な意味と見るべきであり、そのような変更及び変形は本発明の範囲に含まれるべきものである。特定の実施形態に関してここで説明した如何なる利点、効果、又は問題の解法も、何れかの請求項又は全ての請求項の決定的な、必要な、あるいは本質的な特徴又は要素として解釈されるべきものではない。
【００５２】
用語“結合”は、ここでは、直接的な結合又は機械的な結合に限定されるべきものではない。
【００５３】
さらに、用語“ａ”又は“ａｎ”は、ここでは、１つ、又は１つより多くとして定義される。また、請求項中の例えば“少なくとも１つ”及び“１つ以上”等の前置語は、不定冠詞“ａ”又は“ａｎ”による別のクレーム要素の導入が、例え同一のクレームが前置語“少なくとも１つ”及び“１つ以上”と“ａ”又は“ａｎ”等の不定冠詞とを含むときであっても、そのような導入クレーム要素を含む特定の請求項をそのような要素を１つだけ含む発明に限定することを意味するものと解釈されるべきでない。定冠詞の使用に関しても同様である。
【００５４】
特に言及しない限り、例えば“第１”及び“第２”等の用語は、そのような用語が記述する複数の要素を任意に区別するために使用されている。故に、それらの用語は必ずしも、そのような要素の時間的あるいはその他の順序付けを指し示すものではない。
【００５５】
（付記１）
デバッグ処理に専ら使用される複数のデバッグ資源を有する集積回路を設ける準備ステップであり、該デバッグ処理は、該集積回路によって実行されるデバッグソフトウェアにより管理される処理と、該集積回路の外部にある外部デバッグハードウェアによって管理される処理とを有する、準備ステップ；
前記デバッグ資源の第１の部分を前記デバッグソフトウェアによる使用に利用可能にする可能化ステップであり、前記デバッグ資源の第２の部分を前記外部デバッグハードウェアによる排他的な使用に捧げ、該第１の部分は該第２の部分を含まない、可能化ステップ；及び
前記デバッグ資源の前記第１の部分のうちの少なくとも１つのデバッグ資源を用いた前記デバッグソフトウェアにより管理される処理と、前記デバッグ資源の前記第２の部分のうちの少なくとも１つのデバッグ資源を用いた前記外部デバッグハードウェアにより管理される処理とを実行する実行ステップ；
を有する方法。
【００５６】
（付記２）
前記実行ステップは更に、前記外部デバッグハードウェア及び前記デバッグソフトウェアを同時に動作させているときに行われることを特徴とする、付記１に記載の方法。
【００５７】
（付記３）
前記準備ステップは更に、前記デバッグ資源が複数のデバッグレジスタのフィールドを有することと、前記集積回路が、前記デバッグ資源の使用を特定する制御レジスタを有することとを特徴とし；
前記可能化ステップは更に、前記第１の部分及び前記第２の部分を特定するために、前記外部デバッグハードウェアに応答して前記制御レジスタをロードすることを特徴とし；且つ
前記制御レジスタをロードすることに基づいて、前記デバッグソフトウェアに応答して、前記複数のデバッグレジスタのうちの第１のデバッグレジスタのフィールドを設定する；
付記１に記載の方法。
【００５８】
（付記４）
前記可能化ステップは更に、前記制御レジスタに応答して、前記第１のデバッグレジスタの第１のフィールドの組を、該第１のフィールドの組が前記デバッグソフトウェアに応答しないようにマスキングすることを特徴とする、付記３に記載の方法。
【００５９】
（付記５）
前記準備ステップは更に、前記集積回路が更に制御レジスタを有することを特徴とし；且つ
前記捧げることは更に、前記制御レジスタが前記第１の部分及び前記第２の部分を特定することを特徴とする；
付記１に記載の方法。
【００６０】
（付記６）
前記準備ステップは更に、前記デバッグ資源が複数のデバッグレジスタのフィールドを有することを特徴とし；且つ
前記捧げることは更に、前記外部デバッグハードウェアに応答して前記制御レジスタの設定を確立することと、前記制御レジスタが、前記デバッグレジスタの第１のフィールドの組が前記デバッグソフトウェアによって実行されること、及び前記デバッグレジスタの第２のフィールドの組が前記デバッグソフトウェアからマスクされることを可能にすることとを特徴とする；
付記５に記載の方法。
【００６１】
（付記７）
前記準備ステップは更に、前記集積回路が更に第２の制御レジスタを有することと、前記デバッグ資源が少なくとも１つの比較器及びカウンタを有することとを特徴とし；且つ
前記捧げることは更に、前記デバッグ資源の前記第１の部分及び前記第２の部分を定める際に、前記第２の制御レジスタをロードすることを特徴とする；
付記６に記載の方法。
【００６２】
（付記８）
集積回路であって：
処理ユニット；
デバッグ処理に専ら使用される複数のデバッグ資源；
デバッグ処理を制御するための複数のフィールドを有する制御レジスタであり：
各デバッグ処理が前記デバッグ資源の一部を利用し；
当該集積回路が、前記フィールドの全てが当該集積回路の外部のデバッグハードウェアによる使用に利用可能にされるモードを有し；且つ
前記デバッグハードウェアに応答してロードされるフィールドが、前記複数のフィールドのうちの第１の部分を有し、且つ前記複数のデバッグ資源の第１のサブセット（部分集合）と前記複数のデバッグ資源の第２のサブセットとを特定する；
制御レジスタ；及び
前記第１のサブセットの第１のフィールド群と前記第２のサブセットの第２のフィールド群とを有する前記複数のデバッグ資源のデバッグレジスタであり、前記第２のフィールド群は、前記処理ユニットによって実行されるデバッグソフトウェアに応答する、デバッグレジスタ；
を有する集積回路。
【００６３】
（付記９）
前記処理ユニットは：
前記複数のデバッグ資源に結合された制御回路；及び
前記制御回路と前記複数のデバッグ資源とに結合された命令フェッチユニット；
を有する、付記８に記載の集積回路。
【００６４】
（付記１０）
前記複数のデバッグ資源は、デバッグ処理に専ら使用される複数のレジスタを有する、付記９に記載の集積回路。
【００６５】
（付記１１）
前記処理ユニットは更に、前記制御回路と前記複数のデバッグ資源とに結合されたロード／記憶ユニットを有する、付記１０に記載の集積回路。
【００６６】
（付記１２）
前記複数のデバッグ資源は更にカウンタを有する、付記１１に記載の集積回路。
【００６７】
（付記１３）
前記複数のデバッグ資源は更に比較器を有する、付記１２に記載の集積回路。
【００６８】
（付記１４）
ハードウェアデバッガと集積回路上のデバッグソフトウェアとを動作させる方法であって：
前記集積回路上でデバッグ処理を実行する際に使用する複数のデバッグ資源を準備するステップ；
前記複数のデバッグ資源から第１のデバッグ資源のサブセットと第２のデバッグ資源のサブセットとを特定するステップであり、該第１のデバッグ資源のサブセットは、前記ハードウェアデバッガによって必要とされないデバッグ資源であり且つ前記デバッグソフトウェアに利用可能にされ、前記ハードウェアデバッガは前記集積回路の外部にあり、該第２のデバッグ資源のサブセットは、前記第１のデバッグ資源のサブセットが特定された後の前記複数のデバッグ資源の残りのデバッグ資源である、特定するステップ；
前記ハードウェアデバッガと前記デバッグソフトウェアとを同時に動作させるステップであり：
前記デバッグソフトウェアが前記集積回路によって実行され；
前記ハードウェアデバッガが、前記第１のデバッグ資源のサブセットを使用せずに、前記第２のデバッグ資源のサブセットを使用し；且つ
前記デバッグソフトウェアが、前記第２のデバッグ資源のサブセットを使用せずに、前記第１のデバッグ資源のサブセットを使用する；
同時に動作させるステップ；
を有する方法。
【００６９】
（付記１５）
前記特定するステップは更に、前記デバッグ資源のサブセットが専らデバッグ処理のためのものであることを特徴とする、付記１４に記載の方法。
【００７０】
（付記１６）
前記特定するステップは更に、前記第１のサブセットを特定することが前記第２のサブセットを特定することになることを特徴とする、付記１４に記載の方法。
【００７１】
（付記１７）
前記準備するステップは更に、前記デバッグ資源がレジスタを有することを特徴とする、付記１４に記載の方法。
【００７２】
（付記１８）
前記ハードウェアデバッガと前記デバッグソフトウェアとを前記同時に動作させるステップは更に、前記デバッグソフトウェアをデバッグするために前記ハードウェアデバッガを使用することを特徴とする、付記１４に記載の方法。
【００７３】
（付記１９）
前記準備するステップは更に、デバッグレジスタと、複数のフィールドを有する制御レジスタとを準備することを特徴とし：
該デバッグレジスタ及び該制御レジスタは前記集積回路上にあり、且つ
該制御レジスタは、前記デバッグソフトウェアに応答しての前記デバッグ資源の使用を指定し；
前記特定するステップは更に、前記デバッグレジスタの第１のフィールド群をマスクするように、前記ハードウェアデバッガを用いて前記制御レジスタをロードすることを特徴とし；且つ
前記同時に動作させるステップは更に、前記デバッグソフトウェアが前記第１のフィールド群からマスクされることを特徴とする；
付記１４に記載の方法。
【００７４】
（付記２０）
前記準備するステップは更に、制御レジスタ及びデバッグレジスタを有することを特徴とし、
該制御レジスタは、デバッグ処理を制御するための複数のフィールドを有し；
各デバッグ処理は前記デバッグ資源の一部の使用を特定し；
前記集積回路は、前記複数のフィールドの全てが、前記集積回路の外部の前記ハードウェアデバッガによる使用に利用可能にされるモードを有し；
前記第１のデバッグ資源のサブセットを特定するステップは更に、前記ハードウェアデバッガに応答して前記制御レジスタの複数のフィールドのうちの第１のサブセットをロードし、該第１のサブセットのフィールドが前記第１のデバッグ資源のサブセットを定めることを特徴とする；
付記１４に記載の方法。
【図１】
2011513834.tif 000003
【図２】
2011513834.tif 000004
【図３】
2011513834.tif 000005
【図４】
2011513834.tif 000006
【図５】
2011513834.tif 000007
【図６】
2011513834.tif 000008
【図７】
2011513834.tif 000009
【図８】
2011513834.tif 000010
【図９】
2011513834.tif 000011
【図１０】
2011513834.tif 000012
【図１１】
2011513834.tif 000013
【図１２】
2011513834.tif 000014
【図１３】
2011513834.tif 000015
【図１４】
2011513834.tif 000016
【図１５】
2011513834.tif 000017
【図１６】
2011513834.tif 000018
【図１７】
2011513834.tif 000019
【図１８】
2011513834.tif 000020
【図１９】
2011513834.tif 000021
【図２０】
2011513834.tif 000022
【国際調査報告】
2011513834.tif 000023
2011513834.tif 000024