![]() デバッグ資源を共有する方法及び装置
专利摘要:
方法は、複数のデバッグ資源(42)を有する集積回路(12)を設けることを含む。デバッグ資源は専らデバッグ処理に使用される。デバッグ処理は、集積回路によって実行されるデバッグソフトウェアにより管理される処理と、集積回路の外部にある外部デバッグハードウェア(14)によって管理される処理とを含む。上記方法は更に、デバッグ資源の第1の部分をデバッグソフトウェアによる使用に利用可能にすることを含み、デバッグ資源の第2の部分は外部デバッグハードウェアによる排他的な使用に捧げられる。第1の部分は第2の部分を含まない。上記方法は、デバッグ資源の第1の部分のうちの少なくとも1つのデバッグ資源を用いたデバッグソフトウェアにより管理される処理と、デバッグ資源の第2の部分のうちの少なくとも1つのデバッグ資源を用いた外部デバッグハードウェアにより管理される処理とを実行することを含む。 公开号:JP2011513834A 申请号:JP2010548759 申请日:2009-01-23 公开日:2011-04-28 发明作者:シー. マーシャル,レイ;シー. モイアー,ウィリアム;ピー. ロバートソン,アリステアー 申请人:フリースケール セミコンダクター インコーポレイテッド; IPC主号:G06F11-28
专利说明:
[0001] 本開示は、概してデータ処理システムに関し、より具体的にはデバッグ資源を共有するシステム及び方法に関する。] 背景技術 [0002] ソフトウェアデバッガは、様々なデバッグ処理を実行するためにプロセッサ内で広く使用されている。ソフトウェアデバッガは典型的に、例えば命令ブレイクポイント、データブレイクポイント、様々な実行イベントのブレイクポイント、及びリソースを設定し且つ様々なイベントの状況を報告するための制御・ステータスフィールド等、デバッグ処理を実行するために多様なリソースを使用する。ソフトウェアデバッガ内では、例えば不正確なデバッグ処理をもたらすことがあるエラーが存在し得る。しかしながら、ソフトウェアデバッガ自体を実際にデバッグすることは困難である。] 発明が解決しようとする課題 [0003] デバッグ資源を共有する方法及び装置が提供される。] 課題を解決するための手段 [0004] 本発明の一態様に従った方法は、複数のデバッグ資源を有する集積回路を設けることを含む。デバッグ資源は専らデバッグ処理に使用される。デバッグ処理は、集積回路によって実行されるデバッグソフトウェアにより管理される処理と、集積回路の外部にある外部デバッグハードウェアによって管理される処理とを含む。当該方法はまた、デバッグ資源の第1の部分をデバッグソフトウェアによる使用に利用可能にすることを含み、デバッグ資源の第2の部分は外部デバッグハードウェアによる排他的な使用に捧げられる。第1の部分は第2の部分を含まない。当該方法は更に、デバッグ資源の第1の部分のうちの少なくとも1つのデバッグ資源を用いたデバッグソフトウェアにより管理される処理と、デバッグ資源の第2の部分のうちの少なくとも1つのデバッグ資源を用いた外部デバッグハードウェアにより管理される処理とを実行することを含む。] 図面の簡単な説明 [0005] 本発明は、例として図示されるのであり、添付の図によって限定されるものではない。図において、似通った参照符号は同様の要素を指し示す。図中の要素は、単純且つ明瞭にするために示されたものであり、必ずしも縮尺通りには描かれてはいない。 本発明の一実施形態に従ったデータ処理システムを示すブロック図である。 本発明の一実施形態に従った図1のデータ処理システムに付随するプロセッサを示すブロック図である。 図1のデータ処理システムに付随する典型的なデバッグレジスタを例示する図である。 本発明の一実施形態に従った図3のデバッグレジスタに付随するデバッグ制御レジスタを示す図である。 本発明の一実施形態に従った図4のデバッグ制御レジスタの一部の機能を表の形態で示す図である。 本発明の一実施形態に従った図4のデバッグ制御レジスタの一部の機能を表の形態で示す図である。 本発明の一実施形態に従った図3のデバッグレジスタに付随するデバッグステータスレジスタを示す図である。 本発明の一実施形態に従った図7のデバッグステータスレジスタの一部の機能を表の形態で示す図である。 本発明の一実施形態に従った図1のデータ処理システムに付随するデバッグ資源制御レジスタを示す図である。 図9のデバッグ資源制御レジスタの一部の機能を表の形態で示す図である。 図9のデバッグ資源制御レジスタの一部の機能を表の形態で示す図である。 図9のデバッグ資源制御レジスタの一部の機能を表の形態で示す図である。 図9のデバッグ資源制御レジスタの一部の機能を表の形態で示す図である。 図4のデバッグ制御レジスタ及び図9のデバッグ資源制御レジスタの典型的な設定に基づく、ソフトウェアアクセス可能な資源を表の形態で示す図である。 図4のデバッグ制御レジスタ及び図9のデバッグ資源制御レジスタの典型的な設定に基づく、ソフトウェアアクセス可能な資源を表の形態で示す図である。 本発明の一実施形態に従った図2のプロセッサに付随するマスキング回路の部分を、部分的に結線図として且つ部分的にブロック図として示す図である。 本発明の一実施形態に従った図2のプロセッサに付随するマスキング回路の部分を、部分的に結線図として且つ部分的にブロック図として示す図である。 本発明の一実施形態に従った外部デバッグコマンドレジスタを例示する図である。 図18の外部デバッグコマンドレジスタの一部の機能を表の形態で示す図である。 外部デバッグコマンドレジスタの典型的な設定に基づく選択レジスタを表の形態で示す図である。] 図1 図18 図2 図3 図4 図7 図9 実施例 [0006] 一実施形態において、デバッグ処理を実行するハードウェアデバッガ及びソフトウェアデバッガによって、共通の制御レジスタ及びステータスレジスタの組が使用される。しかしながら、全てのデバッグ資源が専らハードウェア制御下、あるいは専らソフトウェア制御下に置かれなければならないというより、一実施形態は、個別的及び集団的な資源割当てがハードウェア又はソフトウェアの何れかの使用に指定されることを可能にする共有機構を提供する。例えば、デバッグ資源制御レジスタは、1つ以上の資源がソフトウェアデバッガとハードウェアデバッガとの間で共有されるときに、デバッグ制御レジスタフィールドがソフトウェア又はハードウェアによって選択的に管理されることを可能にする。一実施形態において、ハードウェアデバッガは、外部デバッグモードにあるとき、ソフトウェアが(デバッグ資源制御レジスタを介して)1つ以上の資源を管理することを許可する。その場合、ソフトウェアによって利用されるイベント群は、ソフトウェアによって取り扱われる割り込みをもたらしてもよく、ハードウェアに割り当てられるイベント群は、プロセッサの処理が中止されるハードウェアデバッグモードに入ること(エントリ)を(デバッグポートを介して外部デバッガにそのようなエントリを通知するとともに)もたらしてもよい。また、1実施形態は、ソフトウェア使用に利用可能にされるようにハードウェアデバッガによってデバッグ資源の一部のみが実際に割り当てられるときに、ソフトウェアがレジスタを更新して正しい(すなわち、一致した)ステータスを読み取ることができる一貫性機構を提供する。] [0007] ここでは、用語“バス”は、例えばデータ、アドレス、制御又はステータス等の1つ以上の様々なタイプの情報を伝送するために使用され得る複数の信号又は導体を意味するように使用される。ここで議論される導体は、単一の導体、複数の導体、単方向の導体又は双方向の導体であることに関して図示あるいは説明され得る。しかしながら、相異なる実施形態では導体の実装は異なり得る。例えば、双方向導体に代えて別個の複数の単方向導体が用いられてもよく、その逆も然りである。また、複数の導体は、複数の信号を順次に、あるいは時間多重的に伝送する単一の導体で置き換えられてもよい。同様に、複数の信号を搬送する単一の導体が、これら信号の小集合を搬送する複数の様々な導体に分離されてもよい。故に、信号の伝送には数多くの選択肢が存在する。] [0008] 用語“アサート”又は“セット”、及び“ネゲート”(又は“デアサート”若しくは“クリア”)は、ここでは、信号、ステータスビット又は同様の装置を、それぞれ、その論理的に真、又は論理的に偽の状態にすることを意味するときに使用される。論理的に真の状態が論理レベルの1である場合、論理的に偽の状態は論理レベルの0(ゼロ)である。論理的に真の状態が論理レベルの0である場合には、論理的に偽の状態は論理レベルの1である。] [0009] ここで説明する各信号は、正論理又は負論理として設計され得る。負論理は、信号名の上のバー又は信号名に続くアスタリスク(*)によって指し示すことができる。負論理信号の場合、信号は論理的に真の状態が論理レベルの0に対応するアクティブローである。正論理信号の場合には、信号は論理的に真の状態が論理レベルの1に対応するアクティブハイである。なお、ここで説明する何れの信号も、負論理信号又は正論理信号の何れとしても設計され得る。故に、代替的な実施形態において、正論理信号として説明される信号は負論理信号として実現されてもよく、負論理信号として説明される信号は正論理信号として実現されてもよい。] [0010] 角括弧は、ここでは、バスの導体群又は或る値のビット位置を指し示すために使用される。例えば、“バス60[7:0]”又は“バス60の導体[7:0]”は、バス60の低次側の8個の導体を指し示し、“アドレスビット[7:0]”又は“ADDRESS[7:0]”は、アドレス値の低次側の8ビットを指し示す。数字の前の記号“$”は、その数字がその16進表記又は基底16表記にて表されることを指し示す。数字の前の記号“%”又は“0b”は、その数字がその2進表記又は基底2表記にて表されることを指し示す。] [0011] 図1は、本発明の一実施形態に従ったデータ処理システム10を示している。データ処理システムはシステム・オン・チップとしてもよい。データ処理システム10は、単一の集積回路上に実装されてもよいし、複数の集積回路上に実装されてもよい。データ処理システム10は、バス20を介して結合され得るプロセッサ12、外部デバッグ回路14、I/Oモジュール16及びメモリ18を含んでいる。代替的な実施形態において、メモリ18は、如何なる種類のメモリであってもよく、また、プロセッサ12と同一の集積回路上又はプロセッサ12とは異なる集積回路上の何れに位置していてもよい。メモリ18は、例えば読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、不揮発性メモリ(例えば、フラッシュ)等の如何なる種類のメモリであってもよい。また、メモリ18は、別の周辺機器若しくはスレーブ内、あるいは異なる集積回路上、に位置するメモリ又はその他のデータ記憶装置であってもよい。] 図1 [0012] 図2は、図1のデータ処理システム10に付随するプロセッサ12のブロック図である。プロセッサ12は、パイプライン的に処理を実行するように実装されてもよく、また、命令パイプ22、実行ユニット24、命令フェッチユニット26、制御回路28、汎用レジスタ30、ロード/格納ユニット32、バスインタフェースユニット(BIU)34及び内部デバッグ回路40を含み得る。プロセッサ12は、データ処理システム10のその他の構成要素と、BIU34に結合されたバス20を介して通信し得る。内部デバッグ回路40は、図2に示したデバッグポートを介して、例えばIEEE ISTO−5001準拠のNexus(登録商標)デバッグユニット等の外部デバッグユニットに結合され得る。Nexusは、テキサス州オースティンのフリースケールセミコンダクター社の登録商標である。デバッグポートは、例えばIEEE1149に適合する工業規格JTAG TAP等のシリアルインタフェースを用いて実現されることができ、あるいはパラレルポート、シリアルポートとパラレルポートとの組み合わせ、又はイーサネット(登録商標)ポートとして実現されてもよい。内部デバッグ回路40は、マスキング回路31、デバッグレジスタ42及びデバッグ制御回路44を含み得る。デバッグ制御回路44は、外部デバッグコマンドレジスタ33及びデバッグ資源制御レジスタ41(DBERC0)を含み得る。マスキング回路31は、デバッグレジスタ42、実行ユニット24と通信し、デバッグ資源制御レジスタ41から情報を受信する。デバッグレジスタ42は、命令ブレイクポイント、データブレイクポイント、ウォッチポイントを含む様々なデバッグ関連イベントを制御し、且つデバッグに関連するその他のメッセージ伝達を行うため、フィールド群にグループ化されたビット群を含み得る。これらのデバッグ資源は、プロセッサ12と外部デバッグ回路14との間で共有され得る。また、デバッグ制御回路44は、導体35により、BIU34とアドレス及びデータを通信し得る。] 図1 図2 [0013] なお、一実施形態において、ソフトウェアデバッガは、デバッグ処理を実行するプロセッサ12によって実行されるソフトウェア又はデバッグソフトウェアを意味する。一実施形態において、ハードウェアデバッガは、プロセッサ12の外部にあってプロセッサ12内でのデバッグ処理を管理する外部デバッグハードウェア又は回路を意味する。一実施形態において、ハードウェアデバッガは、デバッグポートを介して、あるいは代替的に1つ以上のデバッグ信号の組を介して、プロセッサ12内でのデバッグ処理を管理する。また、デバッグソフトウェアは概してソフトウェアと呼ぶこともあり、ハードウェアデバッガは概してハードウェアと呼ぶこともある。] [0014] 次に、図3を参照するに、デバッグレジスタ42内のレジスタはまた、命令、及び/又はデータアクセスブレイクポイント及びウォッチポイントイベントを実行するための、1つ以上のアドレス比較値、アドレスレンジ、及びデータマッチ値、並びにその他のデバッグ制御基準を記憶するために設けられ得る。これらのアドレス値及びデータ値は、様々な制御基準とともに、内部デバッグモードがアクティブであるときにデバッグ例外のための例外処理をプロセッサ12に開始させることが可能な、あるいは外部デバッグモードがアクティブであるときに外部デバッグ回路14によって内部デバッグユニット40のデバッグポートを介して(例えば、外部デバッグコマンドレジスタ33に)提供されるコマンドに応答するデバッグ中止モードにプロセッサ12を入らせることが可能な、ブレイクポイント又はウォッチポイントイベントを発生させる目的で、プロセッサ12が1つ以上の所定の命令アドレス又はデータアドレスにいつアクセスするかを決定するために使用される。すなわち、デバッグレジスタ42は、デバッグイベントを設定するために使用され得る。例として、デバッグレジスタ42は、デバッグ制御レジスタ50(DBCR0)及びその他のデバッグ制御レジスタ43(DBCR1、DBCR2、DBCR3及びDBCR4)を含む様々なデバッグ制御レジスタを含み得る。デバッグレジスタ42は更に、命令アドレス比較レジスタ45(IAC1及びIAC2)を含み得る。命令アドレス比較レジスタ45は、アドレス比較の目的で命令アドレスを格納し得る。デバッグレジスタ42は更に、データアドレス比較レジスタ47(DAC1及びDAC2)を含み得る。データアドレス比較レジスタ47は、アドレス比較の目的でデータアクセスアドレスを格納し得る。デバッグレジスタ42は更に、デバッグステータスレジスタ49(DBSR)、デバッグカウンタ51(DBCNT1及びDBCNT2)、及びデータ値比較レジスタ53(DVC1及びDVC2)を含み得る。デバッグレジスタ42は、ユーザのソフトウェアプログラミングモデルの一部であってもよい。デバッグカウンタ51は、1つ以上の計数可能な得ベントが発生したときにカウントダウンするように構成され得る。カウント値がゼロに到達するとき、デバッグカウントイベントが信号伝達され、可能であれば、デバッグ割り込みが発生される。データ値比較レジスタ53は、データ比較の目的でデータ値を格納し得る。] 図3 [0015] 内部デバッグモードにおいて(外部デバッグモードが有効でないとき)、これらのレジスタ資源はソフトウェアによって(例えば、プロセッサ12上で実行されているデバッグソフトウェア又はソフトウェアデバッガによって)管理され、外部デバッグ回路の使用は要求されない。ソフトウェアは、有効にされたデバッグイベントがソフトウェアデバッグ割り込みを発生させ得るソフトウェアベースのデバッグ動作を実行させるために個々のデバッグレジスタを初期化するよう、プログラマーモデルのソフトウェア命令である専用レジスタ命令への、あるいはそれからの転送を用いるデータ転送によってレジスタ群を設定し得る。そして、ソフトウェア割り込みハンドラが、データ処理システム10のソフトウェアプログラマによって決定される様々な所望の活動を実行し得る。この内部デバッグモードにおいては、図3のデバッグ資源は専ら、外部デバッグハードウェアがこれらの資源にアクセスしないように、ソフトウェアによって使用・管理(すなわち、所有)される。] 図3 [0016] 外部デバッグモードにおいては、外部デバッグ回路14(すなわち、外部デバッグハードウェア)に図3のデバッグ資源の排他的所有権が与えられ、設定されたデバッグイベントが発生したとき、プロセッサ12は、ソフトウェア命令を実行することを止めて中止状態(この中止状態はハードウェアデバッグモードとも称し得る)に入ることができ、外部デバッグ回路14によって与えられるコマンドを待つ。ソフトウェア(例えば、プロセッサ12によって実行されるデバッグソフトウェア等)は、外部デバッグモードが有効にされたとき、もはやデバッグ資源の制御を有しない。外部デバッグ回路14は、例えばJTAG TAPポートとして実装され得る(図2に示した)デバッグポートを介して直接的に、デバッグレジスタ42を含むデバッグ資源にアクセスし得る。一実施形態において、デバッグレジスタ42は、JTAGのIR及びDR処理を通じてデバッガによるレジスタへの読み出しアクセス及び書き込みアクセスを提供する様々なJTAG命令に関する1つ以上のフィールド内に含まれるレジスタ選択エンコーディングを備えたJTAGデータレジスタとしてマッピングされ得る。更に詳細に後述するように、外部デバッグモードにおいて、外部デバッグ回路14は、プロセッサ12上のソフトウェア(例えば、プロセッサ12上で実行されるデバッグソフトウェア又はソフトウェアデバッガ)がデバッグ資源の一部を選択的に管理することを許可することができる。すなわち、外部デバッグ回路14は、デバッグ資源制御レジスタ41の使用を介して、1つ以上のデバッグ資源を管理のためにソフトウェアに割り当てることができる。例えば、外部デバッグ回路14は、デバッグレジスタ42内の特定のデバッグ制御レジスタフィールドがソフトウェアによって管理されることを許可することができる。デバッグソフトウェア(例えば、ソフトウェアデバッガ)によって管理されるデバッグイベントは、(割り込みが可能にされると仮定して、)ソフトウェアによって取り扱われる割り込みを生じさせ、ハードウェア(例えば、外部デバッグ回路14)によって管理されるデバッグイベントは、プロセッサ12が停止されてデバッグがデバッグポートを介して外部デバッグ回路14によって実行されるハードウェアデバッグモードへのエントリを生じさせる。斯くして、1つ以上の資源がソフトウェアデバッガとハードウェアデバッガとの間で共有されるとき、デバッグ制御レジスタフィールド及びその他のデバッグ資源は、ハードウェア又はソフトウェアによって選択的に管理あるいは所有されることができる。さらに、外部デバッグ回路14は、1つ以上のデバッグ資源をデバッグソフトウェアによって使用されるように割り当てることが可能なことにより、デバッグソフトウェア自体をデバッグすることができる。] 図2 図3 [0017] なお、ここで用いられるように、デバッグ資源は、デバッグレジスタ42に含まれているものより多い、あるいは少ないレジスタを含み得る。例えば、デバッグ資源は、命令ブレイクポイント、データブレイクポイント、様々な実行イベントブレイクポイント、及びリソースを設定し且つ様々なイベントの状況を報告するための制御・ステータスフィールドを含み得る。デバッグ資源はまた、デバッグレジスタの1つ以上の特定のフィールドを含んでいてもよい。デバッグ資源はまた、必要に応じて、デバッグ処理を実行するために、カウンタ及び比較器を含んでいてもよい。また、管理するためにハードウェアデバッガ及びソフトウェアデバッガ用に複製した組を有するのではなく、共通の制御レジスタ及びステータスレジスタの組を共有することは、実装すべき必要なプロセッサ12の資源を少なくし、それにより、データ処理システム10のユーザにとってプログラミングモデルが簡略化される。内部デバッグユニット40は、プロセッサ12内での活動を監視し、記憶されたデバッグ設定情報に基づく1つ以上の所定の状態を検出したことに応答して、1つ以上のデータブレイクポイントイベント、命令ブレイクポイントイベント、例えば分岐又はトラップを有するイベント等の命令実行イベント、命令完了イベント、及びこれらに類するものを生成し得る。この処理手法において、プロセッサ12は当業者に認識され得るように機能する。] [0018] 図4は、図1のデータ処理システムに付随するデバッグ制御レジスタ50を示している。デバッグ制御レジスタ50は、デバッグレジスタ42の一部として含められ得る。なお、デバッグレジスタ42は内部デバッグユニット40の一部として含められ得る。デバッグ制御レジスタ50は、デバッグ設定情報を格納するように使用され得る。図4は、特定のビットフィールドを用いる本発明の特定の一実施形態を示しているが、本発明の代替的な実施形態は、異なる数のビットを各フィールドに有する様々なビットフィールドを用い得る。図4の特定のビットフィールドは単に説明のために示したものである。例として、デバッグ制御レジスタ50は32ビットを含み得る。デバッグ制御レジスタ50は、EDM52、IDM54、RST56、ICMP58、BRT60、IAC1 61、IAC2 62、IAC3 63、IAC4 64、DAC1 66、DAC2 68、DCNT1 70、DCNT2 71及びTRAP72としてラベルを付されたビットフィールドを含み得る。これらのビットフィールドは単に例示であり、デバッグ制御レジスタ50は、より少ないビットフィールド、又は更なるビットフィールドを含んでいてもよい。また、これらのビットフィールドは異なるように配列されてもよい。なお、各フィールドはビット、ビット群又はフィールドとして参照され得る。デバッグ制御レジスタ50はまた、将来的に使用され得る予備ビットフィールド73を含んでいてもよい。様々なビットフィールドの機能は図5及び6に関連付けて説明する。例として、デバッグ制御レジスタ50は、読み取り可能でもある書き込み可能レジスタとしてもよく、また、ユーザのソフトウェアプログラミングモデルの部分としてもよい。本発明の代替的な実施形態において、デバッグ制御レジスタ50は、ユーザのソフトウェアプログラミングモデル内の制御レジスタでなくてもよく、その代わりに、ユーザのソフトウェアプログラミングモデルの外部に実装されてもよい。デバッグ制御レジスタ50を実装するために、如何なる種類の記憶回路が用いられてもよい。] 図1 図4 図5 [0019] 図5は、図4のデバッグ制御レジスタ50の一部の機能を表の形態で示している。EDMビット52は、外部デバッグモードが有効であるか無効であるかを指し示し得る。EDMビット52が1にセットされるとき、例えば、デバッグ制御レジスタ50などの制御レジスタは、外部デバッグ回路14の排他的制御下に置かれ、データ処理システム10のソフトウェアはこれらの制御レジスタに情報を書き込むことができない。代替的に、EDMビット52が1にセットされるとき、ソフトウェアはデバッグ制御レジスタの特定の部分に書き込むことができない。さらに、EDMビット52は、一定のリセットイベントが、デバッグ制御レジスタ50及びその他のデバッグ資源内に記憶された情報、これはデバッグ制御・設定情報を含み得る、をクリアすることを選択的に阻止するために使用される。また、EDMビット52が1にセットされるとき、デバッグ資源制御レジスタ41は、制御レジスタフィールドの一部を管理のためにソフトウェアに割り当てるために外部デバッグ回路14によって使用されることができる。IDMビット54は、内部デバッグモードが有効であるか無効であるか、故に、デバッグ例外が有効であるか無効であるかを指し示し得る。RSTビット56は、リセット機能を制御するために使用され得る。ICMPビット58は、命令完了デバッグイベントが有効であるか無効であるかを指し示すために用いられ得る。BRTビット60は、分岐を取るデバッグイベントが有効であるか無効であるかを指し示すために用いられ得る。IAC1ビット61は、命令アドレス比較1デバッグイベントが有効であるか無効であるかを指し示すために用いられ得る。IAC2ビット62は、命令アドレス比較2デバッグイベントが有効であるか無効であるかを指し示すために用いられ得る。IAC3ビット63は、命令アドレス比較3デバッグイベントが有効であるか無効であるかを指し示すために用いられ得る。IAC4ビット64は、命令アドレス比較4デバッグイベントが有効であるか無効であるかを指し示すために用いられ得る。] 図4 図5 [0020] 続いて図6を参照するに、図6は、図4のデバッグ制御レジスタ50の一部の機能を表の形態で示している。DAC1ビット66は、データアドレス比較1デバッグイベントが有効であるか無効であるかを指し示すために用いられ得る。有効である場合、DAC1ビット66はまた、どのような種類の記憶アクセスに対して(例えば、格納型のデータ記憶アクセスに対して、ロード型のデータ記憶アクセスに対して、あるいはロード型又は格納型の何れかのデータ記憶アクセスに対して)データアドレス比較1デバッグイベントが有効であるかを指し示す。DAC2ビット68は、データアドレス比較2デバッグイベントが有効であるか無効であるかを指し示すために用いられ得る。有効である場合、DAC2ビット68はまた、どのような種類の記憶アクセスに対して(例えば、格納型のデータ記憶アクセスに対して、ロード型のデータ記憶アクセスに対して、あるいはロード型又は格納型の何れかのデータ記憶アクセスに対して)データアドレス比較1デバッグイベントが有効であるかを指し示す。DCNT1ビット70は、デバッグカウンタ1デバッグイベントが有効であるか否かを指し示すために用いられ得る。DCNT2ビット71は、デバッグカウンタ2デバッグイベントが有効であるか否かを指し示すために用いられ得る。TRAPビット72は、トラップを取るデバッグイベントが有効であるか否かを指し示すために用いられ得る。ビット73(17:31)は、将来的な使用のための予備とされ得る。図5及び6は、デバッグイベントに関する様々な設定情報を提供する特定数のビットフィールドを記述しているが、これらの図に示したものとは異なる数のビットフィールドも用いられ得る。] 図4 図5 図6 [0021] 図7は、図1のデータ処理システムに付随するデバッグステータスレジスタ49を示している。データステータスレジスタ49は、内部デバッグユニット40の一部として含められ得るデバッグレジスタ42の一部として含められ得る。デバッグステータスレジスタ49は、デバッグイベントのステータス情報を格納するように使用され得る。一実施形態において、デバッグステータスレジスタ49内の或るビットが‘1’にセットされるとき、デバッグ中止モードへのエントリを信号伝達すること(ハードウェアデバッグイベントの場合)、又はプロセッサへのデバッグ割り込み要求を生成すること(ソフトウェアデバッグイベントの場合)の何れかのために使用される対応する制御信号が生成される。図7は、特定のビットフィールドを用いる本発明の特定の一実施形態を示しているが、本発明の代替的な実施形態は、異なる数のビットを各フィールドに有する様々なビットフィールドを用い得る。図7の特定のビットフィールドは単に説明のために示したものである。例として、デバッグステータスレジスタ49は32ビットを含み得る。デバッグステータスレジスタ49は、IDE76、ICMP78、BRT80、IAC1 82、IAC2 84、IAC3 86、IAC4 88、DAC1R90、DAC1W92、DAC2R94、DAC2W96、TRAP97、DCNT1 98、DCNT2 99及びソフトウェア専用ビット101としてラベルを付されたビットフィールドを含み得る。これらのビットフィールドは単に例示であり、デバッグステータスレジスタ49は、より少ないビットフィールド、又は更なるビットフィールドを含んでいてもよい。また、これらのビットフィールドは異なるように配列されてもよい。なお、各フィールドはビット、ビット群又はフィールドとして参照され得る。デバッグステータスレジスタ49はまた、将来的に使用され得る予備ビットフィールド100を含んでいてもよい。様々なビットフィールドの機能は図8に関連付けて説明する。また、デバッグステータスレジスタ49に関して、ビットをセットすることは、論理レベルの1を記憶させることを意味し、ビットをクリアすることは、論理レベルの0を記憶させることを意味する。例として、デバッグステータスレジスタ49は、そのビット群がハードウェアを介してセットされ、且つソフトウェアを介して読み出され、クリアされるレジスタとしてもよく、また、ユーザのソフトウェアプログラミングモデルの部分としてもよい。本発明の代替的な実施形態において、デバッグステータスレジスタ49は、ユーザのソフトウェアプログラミングモデル内になくてもよく、その代わりに、ユーザのソフトウェアプログラミングモデルの外部に実装されてもよい。一実施形態において、デバッグステータスレジスタ49のデバッグステータスビット群は、内部デバッグモードが有効にされている、あるいは外部デバッグモードが有効にされている間のみ、デバッグイベントによってセットされる。一実施形態において、内部デバッグモードにおいてデバッグ割り込みが可能にされるとき、デバッグステータスレジスタ49内のセットされたビットは、デバッグ割り込みを発生させ得る。このとき、デバッグ割り込みハンドラが、通常の実行に戻るのに先立ってデバッグステータスレジスタ49のビット群をクリアする責任を負う。一実施形態において、外部デバッグモードにあるとき、デバッグステータスレジスタ49のデバッグステータスビット群は、ハードウェア所有のデバッグイベントによってセットされる。ハードウェアが何らかの資源をソフトウェアに割り当てている場合、それら割り当てられた資源に対応するデバッグステータスビットは、ソフトウェア所有のデバッグイベントによってセットされ、割り込みが可能にされている場合、ソフトウェアによって所有されているセットされたビットが割り込み要求信号を生成させ、ソフトウェアによってデバッグ割り込みが起こされ、取り扱われる。それに対応して、ハードウェアによって所有されているセットされたビットは、デバッグモード要求信号を生成させ、デバッグ中止モードへのエントリが行われ、ハードウェアデバッガによって対処される。(なお、ハードウェア所有の資源をハードウェア管理資源、ソフトウェア所有の資源をソフトウェア管理資源と呼ぶこともある。)また、デバッグステータスレジスタ49を実装するために、如何なる種類の記憶回路が用いられてもよい。] 図1 図7 図8 [0022] 図8は、図7のデバッグステータスレジスタ49の機能を表の形態で示している。IDEビット76は、曖昧(imprecise)デバッグイベントの発生を指し示すために使用され、故に、デバッグ例外が無効にされ且つデバッグイベントがそれぞれのデバッグステータスレジスタビットを1にセットさせる場合に1にセットされ得る。すなわち、デバッグイベントは発生され得るものの、プロセッサ12のパイプラインの現在状態のために割り込みはまだ起こり得ないため、デバッグ例外は無効のままにされ得る。ICMPビット78は、命令完了デバッグイベントが発生した場合に1にセットされ得る。BRTビット80は、分岐を取るデバッグイベントが発生した場合に1にセットされ得る。IAC1ビット82は、IAC1デバッグイベントが発生した場合に1にセットされ得る。IAC2ビット84は、IAC2デバッグイベントが発生した場合に1にセットされ得る。IAC3ビット86は、IAC3デバッグイベントが発生した場合に1にセットされ得る。IAC4ビット88は、IAC4デバッグイベントが発生した場合に1にセットされ得る。DAC1Rビット90は、DAC1ビット66が%10又は%11に等しい(図6に示すようにロード型データ記憶アクセスに対してDAC1デバッグイベントが有効であることを指し示す)ときに読み取り型のDAC1デバッグイベントが発生した場合に1にセットされ得る。DAC1Wビット92は、DAC1ビット66が%01又は%11に等しい(図6に示すように格納型データ記憶アクセスに対してDAC1デバッグイベントが有効であることを指し示す)ときに書き込み型のDAC1デバッグイベントが発生した場合に1にセットされ得る。DAC2Rビット94は、DAC2ビット68が%10又は%11に等しい(図6に示すようにロード型データ記憶アクセスに対してDAC2デバッグイベントが有効であることを指し示す)ときに読み取り型のDAC2デバッグイベントが発生した場合に1にセットされ得る。DAC2Wビット96は、DAC2ビット68が%01又は%11に等しい(図6に示すように格納型データ記憶アクセスに対してDAC2デバッグイベントが有効であることを指し示す)ときに書き込み型のDAC2デバッグイベントが発生した場合に1にセットされ得る。TRAPビット97は、トラップを取るデバッグイベントが発生した場合に1にセットされ得る。DCNT1ビット98は、DCNT1デバッグイベントが発生した場合に1にセットされ得る。DCNT2ビット99は、DCNT2デバッグイベントが発生した場合に1にセットされ得る。一実施形態において、ビット101は、ソフトウェアのみがアクセスすることが可能なソフトウェア専用ビットにされる。] 図6 図7 図8 [0023] 図9は、図1のデータ処理システムに付随するデバッグ資源制御レジスタ41を示している。デバッグ資源制御レジスタ41は、外部デバッグモードが有効にされているとき(例えば、デバッグ制御レジスタ50のEDMビット52が1にセットされているとき)にリソース割当てを制御するために使用され得る。デバッグ資源制御レジスタ41は、ハードウェアデバッガ(例えば、外部デバッグ回路14)がソフトウェアとデバッグ資源を共有する機構を提供する。個々の資源は、外部デバッグモードが有効にされているときにデバッグ資源制御レジスタ41の設定に基づいて割り当てられる。一実施形態において、外部デバッグモードが有効にされているとき(例えば、デバッグ制御レジスタ50のEDMビット52が1にセットされているとき)、デバッグ資源(例えば、デバッグレジスタ42)は、先ず、ハードウェアデバッガのみの制御下に置かれ、ソフトウェアはこれらの資源に書き込むことができない。ハードウェアデバッガは、デバッグ資源制御レジスタ41を介して、1つ以上の資源を、残りの資源の使用を保ちながら、ソフトウェアに戻すように割り当てることができる。斯くして、外部デバッグモードにおいて、デバッグソフトウェアによって管理されるデバッグ処理と、外部デバッグハードウェアによって管理されるデバッグ処理とが同時発生することができる。すなわち、ハードウェアデバッガ及びソフトウェアデバッガが同時に動作することができる。外部デバッグモードが無効にされているとき(例えば、デバッグ制御レジスタ50のEDMビット52が0にセットされているとき)には、デバッグ資源制御レジスタ41における設定は無視される。] 図1 図9 [0024] 一実施形態において、デバッグイベントを生成するハードウェア所有の資源は、ハードウェアデバッグモードへのエントリを生じさせ、デバッグイベントを生成するソフトウェア所有の資源は、あたかもデバッグイベントが内部デバッグモードで発生したかのように振る舞い、故に、IDMビット54が1にセットされ且つ割り込みが可能にされている場合に、デバッグ割り込みを生じさせる。一実施形態において、デバッグ資源制御レジスタ41は、デバッグポートを介して制御され、ソフトウェアに対して読み取り専用である。また、デバッグステータスレジスタ49内のデバッグステータスビットは、内部デバッグモードが有効にされているときにのみ、ソフトウェア所有のデバッグイベントによってセットされる。すなわち、デバッグ割り込みが可能にされているとき(且つ、デバッグ制御レジスタ50内のIDMビット54が1にセットされ且つデバッグ制御レジスタ50内のEDMビット52が0にセットされているとき、又はデバッグ制御レジスタ50内のIDMビット54及びEDMビット52の双方が1にセットされ且つデバッグ資源制御レジスタ41を介してソフトウェアに1つ以上のデバッグ資源が割り当てられているとき)、ソフトウェア所有のデバッグイベントに対応するデバッグステータスレジスタ49内のセットされたビットは、デバッグ割り込みを生成することになる。] [0025] 図9は、特定のビットフィールドを用いる本発明の特定の一実施形態を示しているが、本発明の代替的な実施形態は、異なる数のビットを各フィールドに有する様々なビットフィールドを用い得る。図9の特定のビットフィールドは単に説明のために示したものである。さらに、ここで説明する何れのレジスタもそうであるように、データを格納するために、より多い、あるいは少ないレジスタが用いられてもよい。例として、デバッグ資源制御レジスタ41は32ビットを含み得る。デバッグ資源制御レジスタ41は、IDM112、RST114、UDE116、ICMP118、BRT120、IRPT122、TRAP124、IAC1 126、IAC2 128、IAC3 130、IAC4 132、DAC1 134、DAC2 138、RET142、DEVT1 146、DEVT2 148、DCNT1 150、DCNT2 152、CIRPT154、CRET156、BKPT158及びFT162としてラベルを付されたビットフィールドを含み得る。これらのビットフィールドは単に例示であり、デバッグ資源制御レジスタ41は、より少ないビットフィールド、又は更なるビットフィールドを含んでいてもよい。また、これらのビットフィールドは異なるように配列されてもよい。なお、各フィールドはビット、ビット群又はフィールドとして参照され得る。デバッグ資源制御レジスタ41はまた、将来的に使用され得る予備ビットフィールド110、136、140、144及び160を含んでいてもよい。様々なビットフィールドの機能は図10−13に関連付けて説明する。] 図10 図9 [0026] 図10は、図9のデバッグ資源制御レジスタ41(DBERC0)の一部の機能を表の形態で示している。IDMビット112は内部デバッグモード制御を提供する。IDMビット112が0にセットされているとき、内部デバッグモードはソフトウェアによって可能にされない。すなわち、デバッグ制御レジスタ50(DBCR0)内のIDMビット54は専らハードウェアによって所有される。デバッグ制御レジスタ50及び43(DBCR0−DBCR4)、デバッグカウンタレジスタ51(DBCNT1及びDBCNT2)、又はデバッグステータスレジスタ49(DBSR)への特殊目的レジスタへの転送(Move to Special Purpose Register;mtspr)命令は常に無視される。また、DBERC0 41内のその他のフィールドの設定にかかわらず、リソース共有は行われない。すなわち、ハードウェアが全ての資源を排他的に所有する。また、ソフトウェアによる如何なるデバッグレジスタ42からの特殊目的レジスタからの転送(Move from Special Purpose Register;mfspr)命令も0を返す。IDMビット112が1にセットされているとき、内部デバッグモードはソフトウェアによって可能にされ得る。すなわち、DBCR0 50内のIDMビット54及びDBSR49内のIDEビット76は、ソフトウェアによって所有され、故に、ソフトウェアによって読み取り可能/書き込み可能なものになる。また、DBSR49内のハードウェアが管理するステータス・制御ビットは、ソフトウェアアクセスからマスクされ且つ0として読まれ、DBCR0−DBCR4、DBCNT及びDBSR内のハードウェア管理ビットへのmtspr命令を介してのソフトウェア書き込みは無視される。なお、IDMビット112を1にセットすることにより、ハードウェアは、ソフトウェアによって使用されるように資源を割り当てることができ、ソフトウェアに割り当てられた資源は、DBERC0 41内のその他のフィールドによって規定され得る。RSTビット114はリセットフィールド制御を提供する。RSTビット114が0にセットされているとき、DBCR0 50のRSTビット56は専らハードウェアによって所有される。また、RSTビット56へのソフトウェアによるmtsprアクセスは許可されず、ソフトウェアによるmfsprアクセスは0を返す。RSTビット114が1にセットされているとき、DBCR0 50のRSTビット56はソフトウェアデバッガによるアクセスが可能なものにされる。すなわち、RSTビット56はソフトウェアによって読み取り可能且つ書き込み可能なものになる。] 図10 図9 [0027] なおも図10を参照するに、UDEビット116は、無条件デバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。UDEビット116が0にセットされているとき、無条件デバッグイベントはハードウェアデバッガによって所有される。ソフトウェアはmtspr命令を介してDBSR49内のUDEフィールド(図示せず)にアクセスすることができず、ソフトウェアによるmfsprアクセスは0を返す。UDEビット116が1にセットされているとき、無条件デバッグイベントはソフトウェアデバッガによって所有される。この場合、DBSR49内のUDEフィールドはソフトウェアによって読み取り可能且つ書き込み可能である。ICMPビット118は、命令完了デバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。ICMPビット118が0にセットされているとき、命令完了デバッグイベントはハードウェアデバッガによって所有される。DBCR0 50内のICMPフィールド58又はDBSR49内のICMPフィールド78へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。ICMPビット118が1にセットされているとき、命令完了デバッグイベントはソフトウェアデバッガによって所有される。この場合、DBCR0 50内のICMPフィールド58及びDBSR49内のICMPフィールド78はソフトウェアによって読み取り可能且つ書き込み可能である。BRTビット120は、分岐を取るデバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。BRTビット120が0にセットされているとき、分岐を取るデバッグイベントはハードウェアデバッガによって所有される。DBCR0 50内のBRTフィールド60又はDBSR49内のBRTフィールド80へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。BRTビット120が1にセットされているとき、分岐を取るデバッグイベントはソフトウェアデバッガによって所有される。この場合、DBCR0 50内のBRTフィールド60及びDBSR49内のBRTフィールド80はソフトウェアによって読み取り可能且つ書き込み可能である。] 図10 [0028] 図11は、図9のデバッグ資源制御レジスタ41(DBERC0)の一部の機能を表の形態で示している。IRPTビット122は、割り込みを取るデバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。IRPTビット122が0にセットされているとき、割り込みを取るデバッグイベントはハードウェアデバッガによって所有される。DBCR0 50内のIRPTフィールド(図示せず)又はDBSR49内のIRPTフィールド(図示せず)へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。IRPTビット122が1にセットされているとき、割り込みを取るデバッグイベントはソフトウェアデバッガによって所有される。この場合、DBCR0 50内のIRPTフィールド及びDBSR49内のIRPTフィールドはソフトウェアによって読み取り可能且つ書き込み可能である。TRAPビット124は、トラップを取るデバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。TRAPビット124が0にセットされているとき、トラップを取るデバッグイベントはハードウェアデバッガによって所有される。DBCR0 50内のTRAPフィールド72又はDBSR49内のTRAPフィールド97へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。TRAPビット124が1にセットされているとき、トラップを取るデバッグイベントはソフトウェアデバッガによって所有される。この場合、DBCR0 50内のTRAPフィールド72及びDBSR49内のTRAPフィールド97はソフトウェアによって読み取り可能且つ書き込み可能である。] 図11 図9 [0029] なおも図11を参照するに、IAC1ビット126は、命令アドレス比較1デバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。IAC1ビット126が0にセットされているとき、命令アドレス比較1デバッグイベントはハードウェアデバッガによって所有される。IAC1制御・ステータスフィールド(例えば、DBCR0 50内のIAC1フィールド61及びDBSR49内のIAC1フィールド82)へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。IAC1ビット126が1にセットされているとき、命令アドレス比較1デバッグイベントはソフトウェアデバッガによって所有される。この場合、IAC1制御・ステータスフィールド(例えば、DBCR0 50内のIAC1フィールド61及びDBSR49内のIAC1フィールド82)はソフトウェアによって読み取り可能且つ書き込み可能である。IAC2ビット128は、命令アドレス比較2デバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。IAC2ビット128が0にセットされているとき、命令アドレス比較2デバッグイベントはハードウェアデバッガによって所有される。IAC2制御・ステータスフィールド(例えば、DBCR0 50内のIAC2フィールド62及びDBSR49内のIAC2フィールド84)へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。IAC2ビット128が1にセットされているとき、命令アドレス比較2デバッグイベントはソフトウェアデバッガによって所有される。この場合、IAC2制御・ステータスフィールド(例えば、DBCR0 50内のIAC2フィールド62及びDBSR49内のIAC2フィールド84)はソフトウェアによって読み取り可能且つ書き込み可能である。IAC3ビット130は、命令アドレス比較3デバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。IAC3ビット130が0にセットされているとき、命令アドレス比較3デバッグイベントはハードウェアデバッガによって所有される。IAC3制御・ステータスフィールド(例えば、DBCR0 50内のIAC3フィールド63及びDBSR49内のIAC3フィールド86)へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。IAC3ビット130が1にセットされているとき、命令アドレス比較3デバッグイベントはソフトウェアデバッガによって所有される。この場合、IAC3制御・ステータスフィールド(例えば、DBCR0 50内のIAC3フィールド63及びDBSR49内のIAC3フィールド86)はソフトウェアによって読み取り可能且つ書き込み可能である。IAC4ビット132は、命令アドレス比較4デバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。IAC4ビット132が0にセットされているとき、命令アドレス比較4デバッグイベントはハードウェアデバッガによって所有される。IAC4制御・ステータスフィールド(例えば、DBCR0 50内のIAC4フィールド64及びDBSR49内のIAC4フィールド88)へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。IAC4ビット132が1にセットされているとき、命令アドレス比較4デバッグイベントはソフトウェアデバッガによって所有される。この場合、IAC4制御・ステータスフィールド(例えば、DBCR0 50内のIAC4フィールド64及びDBSR49内のIAC4フィールド88)はソフトウェアによって読み取り可能且つ書き込み可能である。] 図11 [0030] 図12は、図9のデバッグ資源制御レジスタ41(DBERC0)の一部の機能を表の形態で示している。DAC1ビット134は、データアドレス比較1デバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。DAC1ビット134が0にセットされているとき、データアドレス比較1デバッグイベントはハードウェアデバッガによって所有される。DAC1制御・ステータスフィールド(例えば、DBCR0 50内のDAC1フィールド66、並びにDBSR49内のDAC1Rフィールド90及びDAC1Wフィールド92)へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。DAC1ビット134が1にセットされているとき、データアドレス比較1デバッグイベントはソフトウェアデバッガによって所有される。この場合、DAC1制御・ステータスフィールド(例えば、DBCR0 50内のDAC1フィールド66、並びにDBSR49内のDAC1Rフィールド90及びDAC1Wフィールド92)はソフトウェアによって読み取り可能且つ書き込み可能である。DAC2ビット138は、データアドレス比較2デバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。DAC2ビット138が0にセットされているとき、データアドレス比較2デバッグイベントはハードウェアデバッガによって所有される。DAC2制御・ステータスフィールド(例えば、DBCR0 50内のDAC2フィールド68、並びにDBSR49内のDAC2Rフィールド94及びDAC2Wフィールド96)へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。DAC2ビット138が1にセットされているとき、データアドレス比較2デバッグイベントはソフトウェアデバッガによって所有される。この場合、DAC2制御・ステータスフィールド(例えば、DBCR0 50内のDAC2フィールド68、並びにDBSR49内のDAC2Rフィールド94及びDAC2Wフィールド96)はソフトウェアによって読み取り可能且つ書き込み可能である。] 図12 図9 [0031] なおも図12を参照するに、RETビット142は、リターンデバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。RETビット142が0にセットされているとき、リターンデバッグイベントはハードウェアデバッガによって所有される。DBCR0 50内のRETフィールド(図示せず)及びDBSR49内のRETフィールド(図示せず)へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。RETビット142が1にセットされているとき、リターンデバッグイベントはソフトウェアデバッガによって所有される。この場合、DBCR0 50内のRETフィールド及びDBSR49内のRETフィールドはソフトウェアによって読み取り可能且つ書き込み可能である。DEVT1ビット146は、外部デバッグイベント1デバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。DEVT1ビット146が0にセットされているとき、外部デバッグイベント1デバッグイベントはハードウェアデバッガによって所有される。DBCR0 50内のDEVT1フィールド(図示せず)及びDBSR49内のDEVT1フィールド(図示せず)へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。DEVT1ビット146が1にセットされているとき、外部デバッグイベント1デバッグイベントはソフトウェアデバッガによって所有される。この場合、DBCR0 50内のDEVT1フィールド及びDBSR49内のDEVT1フィールドはソフトウェアによって読み取り可能且つ書き込み可能である。DEVT2ビット148は、外部デバッグイベント2デバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。DEVT2ビット148が0にセットされているとき、外部デバッグイベント2デバッグイベントはハードウェアデバッガによって所有される。DBCR0 50内のDEVT2フィールド(図示せず)及びDBSR49内のDEVT2フィールド(図示せず)へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。DEVT2ビット148が1にセットされているとき、外部デバッグイベント2デバッグイベントはソフトウェアデバッガによって所有される。この場合、DBCR0 50内のDEVT2フィールド及びDBSR49内のDEVT2フィールドはソフトウェアによって読み取り可能且つ書き込み可能である。] 図12 [0032] 図13は、図9のデバッグ資源制御レジスタ41(DBERC0)の一部の機能を表の形態で示している。DCNT1ビット150は、デバッグカウンタ1デバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。DCNT1ビット150が0にセットされているとき、デバッグカウンタ1デバッグイベントはハードウェアデバッガによって所有される。カウンタ1制御・ステータスフィールド(例えば、DBCR0 50内のDCNT1フィールド70及びDBSR49内のDCNT1フィールド98)へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。DCNT1ビット150が1にセットされているとき、デバッグカウンタ1デバッグイベントはソフトウェアデバッガによって所有される。この場合、カウンタ1制御・ステータスフィールド(例えば、DBCR0 50内のDCNT1フィールド70及びDBSR49内のDCNT1フィールド98)はソフトウェアによって読み取り可能且つ書き込み可能である。DCNT2ビット152は、デバッグカウンタ2デバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。DCNT2ビット152が0にセットされているとき、デバッグカウンタ2デバッグイベントはハードウェアデバッガによって所有される。カウンタ2制御・ステータスフィールド(例えば、DBCR0 50内のDCNT2フィールド71及びDBSR49内のDCNT2フィールド99)へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。DCNT2ビット152が1にセットされているとき、デバッグカウンタ2デバッグイベントはソフトウェアデバッガによって所有される。この場合、カウンタ2制御・ステータスフィールド(例えば、DBCR0 50内のDCNT2フィールド71及びDBSR49内のDCNT2フィールド99)はソフトウェアによって読み取り可能且つ書き込み可能である。CIRPTビット154は、クリティカル割り込みを取るデバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。CIRPTビット154が0にセットされているとき、クリティカル割り込みを取るデバッグイベントはハードウェアデバッガによって所有される。DBCR0 50内のCIRPTフィールド(図示せず)及びDBSR49内のCIRPTフィールド(図示せず)へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。CIRPTビット154が1にセットされているとき、クリティカル割り込みを取るデバッグイベントはソフトウェアデバッガによって所有される。この場合、DBCR0 50内のCIRPTフィールド及びDBSR49内のCIRPTフィールドはソフトウェアによって読み取り可能且つ書き込み可能である。CRETビット156は、クリティカルリターンデバッグイベントの所有権(又は管理)のソフトウェアへの割当てを可能にする。CRETビット156が0にセットされているとき、クリティカルリターンデバッグイベントはハードウェアデバッガによって所有される。DBCR0 50内のCRETフィールド(図示せず)及びDBSR49内のCRETフィールド(図示せず)へのソフトウェアによるmtsprアクセスは存在せず、ソフトウェアによるmfsprアクセスは0を返す。CRETビット156が1にセットされているとき、クリティカルリターンデバッグイベントはソフトウェアデバッガによって所有される。この場合、DBCR0 50内のCRETフィールド及びDBSR49内のCRETフィールドはソフトウェアによって読み取り可能且つ書き込み可能である。] 図13 図9 [0033] なおも図13を参照するに、BKPTビット158は、ブレイクポイント命令デバッグ制御を提供する。BKPTビット158が0にセットされているとき、ブレイクポイントはハードウェアによって所有される。ブレイクポイント(bkpt)命令(全て0の命令コードを有する命令)の実行は、ハードウェアデバッガがデバッグ処理を管理することが可能なデバッグモードに入ること(エントリ)をもたらす。KPTビット158が1にセットされているとき、ブレイクポイントはソフトウェアデバッガによって所有される。bkpt命令の実行は、不当命令例外(illegal instruction exception)をもたらす。FTビット162は、フリーズタイマーデバッグ制御を提供する。FTビット162が0にセットされているとき、DBCR0 50のFTフィールド(図示せず)はハードウェアデバッガによって所有され、ソフトウェアによるアクセスは許可されない。FTビット162が1にセットされているとき、FTフィールドはソフトウェアデバッガによって所有され、故に、ソフトウェアによって読み取り可能且つ書き込み可能となる。図10−13において、ビットフィールド110、136、140、144及び160は将来的な使用のための予備とされ得る。] 図10 図13 [0034] 従って、上述のように、プロセッサ12が最初に外部デバッグモードに入るとき、全ての資源は専らハードウェアデバッガ(例えば、外部デバッグ回路14)に割り当てられる。しかしながら、デバッグ資源制御レジスタ41の使用を介して、ハードウェア(例えば、ハードウェアデバッガ)は、資源をソフトウェア(例えば、ソフトウェアデバッガ)に戻すように割り当て、ソフトウェアによる排他的な使用のために供することができる。すなわち、外部デバッグハードウェアは、デバッグ資源の第1の部分をデバッグソフトウェアに利用可能にすることができ、そのとき、デバッグ資源の第2の部分は外部デバッグハードウェアによる排他的使用に捧げられる(第1及び第2の部分は相互に排他的な部分である)。図10−13内の説明に見られるように、デバッグイベント又はデバッグ制御をソフトウェアに割り当てることにより、ソフトウェアはそれらデバッグイベント又はデバッグ制御を管理するために必要な資源へのアクセスを有することになる。一実施形態において、ソフトウェアは、デバッグイベント又はデバッグ制御を管理するために必要な資源のみに対してアクセスを与えられる。例えば、ハードウェアがIAC1ビット126及びIAC2ビット128の各々を1にセットする(且つ、資源の共有を可能にするためにIDMビット112を1にセットする)場合、それらの命令アドレス比較デバッグイベントを管理するために必要なステータス・制御レジスタ及びその他の資源がソフトウェアに割り当てられる。例えば、ソフトウェアは、DBCR0 50内のIAC1フィールド61及びIAC2フィールド62、DBSR49内のIAC1フィールド82及びIAC2フィールド84、並びにIAC1及びIAC2のレジスタ45へのアクセスを有する。斯くして、ソフトウェアは、デバッグイベントを設定するために、該当するIAC1フィールド61、IAC2フィールド62、及び必要に応じてIACレジスタ45、をセットすることにより、IAC1若しくはIAC2の何れかのデバッグイベント(又は、双方のデバッグイベント)をイネーブルすることができる。しかしながら、DBERC0内の残りのビットフィールドが0にセットされたままである場合、ハードウェアはそれら残りの資源について排他的な使用を有する。斯くして、ソフトウェアデバッガはハードウェアデバッガによって割り当てられた資源のみにアクセスすることに制限されるが、外部デバッグモードにおいてハードウェアデバッガとソフトウェアデバッガとが同時にデバッグ処理を実行し得る。また、プロセッサ12上で実行されるデバッグソフトウェアは、ハードウェアによって排他的に所有されたままのその他資源の何れにもアクセスすることができないであろう。故に、デバッグソフトウェアは、デバッグイベントの所有権を割り当てられると、必要に応じて特定のレジスタ又はレジスタの特定のフィールドへのアクセスを与えられる。斯くして、ハードウェアデバッガは、デバッグ資源の相互に排他的な第1の部分及び第2の部分について、デバッグ資源の第2の部分を当該ハードウェアデバッガに投じながら、デバッグ資源の第1の部分をデバッグソフトウェアによる使用に利用可能にすることができる。] 図10 [0035] 図14及び15は、DBERC0 41の具体的な設定に応じて何れの資源がソフトウェアアクセス可能であるかを表の形態で示している。行172を参照するに、外部デバッグモードが有効にされていない場合(EDMビット52が0にセットされている場合)、全ての資源が専らソフトウェアによって所有され、故にソフトウェアによってアクセス可能である。図14及び15の残りの行では、行176、178、180、182、184、186、188、190、192、194、196、198、200、202、204、206、208及び210に示すように、外部デバッグモードが有効にされ(EDMビット52が1にセットされ)且つDBERC0 41のIDMビット112が1にセットされており、DBERC0 41の残りのフィールドが特定の資源をソフトウェアに割り当てている。例えば、ソフトウェアが(前段落の例で説明したように)命令アドレス比較1及び2デバッグイベントを所有することを可能にすることには、行186若しくは行188、又はこれら双方の設定を用いることができ、“ソフトウェアアクセス可能”と題を付された列が、DBERC0 41のIAC1ビット126又はIAC2ビット128のどちらが1にセットされているかに基づいて、ソフトウェアによる使用に何れのデバッグ資源が利用可能であるかを指し示している。なお、DBCR0 50に関して説明したフィールドに加えて、その他のデバッグ制御レジスタ43内のその他のフィールド(例えば、DBCR1のIAC1US及びIAC1ER等)もソフトウェアによる使用に割り当てられることが可能である。] 図14 [0036] 図16及び17は、本発明の一実施形態に従ったマスキング回路31の部分を例示している。図16は、例えばmfspr命令を実行するとき等の、デバッグレジスタ42から実行ユニット24までの読み出しパスの一部を示している。図10−13に関連して説明したように、特定のデバッグイベントに対応するビットフィールドがアサートされていないとき、該特定のデバッグイベントはハードウェアに所有され、ソフトウェアによるmfsprアクセスは0を返す。しかしながら、特定のデバッグイベントに対応するビットフィールドがアサートされているときには、該特定のデバッグイベントはソフトウェアに所有され、ソフトウェアによって読み取り可能且つ書き込み可能である。斯くして、デバッグソフトウェアの実行中にDBSR49の部分ぶぶんがデバッグソフトウェアによって読み取られることを防止することができる。故に、図16を参照するに、各ANDゲート220、222、224、226及び228は、DBERC0 41からの第1のビット入力と、DBSR49からの対応する第2のビット入力とを受信する。すなわち、各ANDゲートは、例えば特定のデバッグイベントに対応するDBERC0からの1つのビットフィールドを受信するとともに、該特定のデバッグイベントに対応する(すなわち、該特定のデバッグイベントの結果を報告する)DBSR49からのビットフィールドを受信する。例えば、ANDゲート222は、第1の入力としてのDBERC0 41からのIAC1ビット126と、第2の入力としてのDBSR49からのIAC1ビット82とを受信し得る。DBERC0 41からANDゲートへの入力が“1”(対応するデバッグイベントがソフトウェア所有であることを指し示す)である場合、該ANDゲートの出力は、該ANDゲートの第2の入力として提供されるDBSR49からの対応するビットフィールドの値を反映したものとなる。しかしながら、DBERC0 41からANDゲートへの入力が“0”である場合、DBSR49から入力される値にかかわらず、該ANDゲートの出力は0になる。斯くして、mfsprアクセスは、DBERC0 41内の対応するビットがネゲートされているとき、常にゼロを返すことになる。] 図10 図16 [0037] 図17は、実行ユニット24からデバッグレジスタ42への書き込みパスの一部を示している。図10−13に関連して説明したように、特定のデバッグイベントに対応するビットフィールドがアサートされていないとき、該特定のデバッグイベントはハードウェアに所有され、ソフトウェアによるmtsprアクセスは存在しない。すなわち、ソフトウェアはそのビットフィールドに書き込むことができない。しかしながら、特定のデバッグイベントに対応するビットフィールドがアサートされているときには、該特定のデバッグイベントはソフトウェアに所有され、ソフトウェアによって読み取り可能且つ書き込み可能である。故に、図17を参照するに、各ANDゲート230、232及び234は、第1の入力としてのライトイネーブル(WRITE_EN)信号242と、DBERC0 41からの対応するビット入力とを受信する。斯くして、DBERC0 41からの対応するビット入力がアサートされているときにのみ、対応するビットフィールド(例えば、BIT8、BIT9及びBIT15)はソフトウェアによって書き込まれることができる。すなわち、DBERC0 41からの対応するビット入力がアサートされていないときには、対応するビットフィールドは書き込まれることができない。なお、記憶回路236、238及び240に格納されたBIT8、BIT9及びBIT15は、それぞれ、デバッグ制御レジスタ(例えば、DBCR0−DBCR4等)又はDBSR49のビットフィールド位置8、9及び15に対応する。すなわち、ANDゲート230、232及び234等のANDゲートは、必要に応じて、デバッグレジスタ42内のレジスタへの書き込みパス内に存在し得る。例えば、記憶回路236は、DBCR0 50のIAC3ビットフィールド63のレジスタ記憶ビット(IAC3ビットフィールド63はDBCR0 50のビットフィールド位置8に格納されている)に相当し得る。記憶回路236がDBSR49のレジスタ記憶ビットに相当する場合、記憶回路236はDAC1Wビットフィールド92のレジスタ記憶ビット(DAC1Wビットフィールド92はDBSR49のビットフィールド位置8に格納されている)に相当し得る。] 図10 図17 [0038] 一実施形態において、DBSR49内の各フィールドはステータスフラグと呼ぶことができ、ハードウェア所有のデバッグイベントに対応するフィールドはハードウェアステータスフラグ、ソフトウェア所有のデバッグイベントに対応するフィールドはソフトウェアステータスフラグと呼び得る。なお、ハードウェアステータスフラグのセット及びクリアは、ハードウェアデバッガを実行することから発生し、存在する場合には、ソフトハードウェアステータスフラグのセット及びクリアは、デバッグソフトウェアを実行することから発生する。マスキング回路31は故に、DBSR49内の複数の位置をマスクし、そのとき、ハードウェアステータスフラグ及びソフトウェアステータスフラグの双方がハードウェアデバッガによって読まれることを可能にしながら、ハードウェアステータスフラグはデバッグソフトウェアによって読まれないようにされる。なお、マスキング回路31の機能は、デバッグステータスレジスタ内の複数の位置をマスクするように様々な回路を用いる様々な手法にて実現され得る。] [0039] 図18は、図2の外部デバッグコマンドレジスタ33の一実施形態を示している。外部デバッグコマンドレジスタ33は、例えば外部デバッグ回路14等のハードウェアデバッガから、デバッグポートを介して、デバッグコマンドを受信する。外部デバッグコマンドレジスタ33は、読み出し/書き込みコマンドフィールド250と、レジスタ選択フィールド254とを含んでいる。図示した実施形態において、読み出し/書き込みコマンドフィールド250は単一ビットのフィールドであり、レジスタ選択フィールド254は7ビットを含んでいる。外部デバッグコマンドレジスタ33はまた、将来的な使用のための予備のビット252を含んでいてもよい。図18は、特定のビットフィールドを用いる本発明の特定の一実施形態を示しているが、本発明の代替的な実施形態は、異なる数のビットを各フィールドに有する様々なビットフィールドを用い得る。図18の特定のビットフィールドは単に説明のために示したものである。さらに、ここで説明する何れのレジスタもそうであるように、データを格納するために、より多い、あるいは少ないレジスタが用いられてもよい。例として、外部デバッグコマンドレジスタ33は10ビットを含み得る。] 図18 図2 [0040] 図19は、本発明の一実施形態に従った図18の外部デバッグコマンドレジスタ33の機能を表の形態で示している。読み出し/書き込みコマンドビット250はデータ転送の向きを指定する。読み出し/書き込みコマンドビットが0である場合、外部デバッグコマンドに関連付けられたデータが、レジスタ選択フィールド254によって指定されるレジスタに書き込まれる。読み出し/書き込みコマンドビットが1である場合、レジスタ選択フィールド254によって指定されるレジスタ内に含まれるデータが読み出される。一実施形態において、読み出し/書き込みコマンドビットは読み出し専用レジスタ又は書き込み専用レジスタの場合に無視される。レジスタ選択フィールド254は、どのレジスタが、読み出し処理の場合のソースレジスタ、又は書き込み処理の場合の宛先レジスタであるかを規定する。一実施形態において、読み出し専用レジスタに対して試みられた書き込みは無視される。] 図18 図19 [0041] 図20は、本発明の一実施形態に従ったレジスタ選択フィールドに使用され得るレジスタアドレスを表の形態で示している。代替的な実施形態は、レジスタアドレスを異なるように規定してもよい。図20を参照するに、例えば、行276に示すように、レジスタ選択フィールド254の値0100000は、デバッグレジスタ42内のIAC1レジスタを指し示す。行298に示すように、レジスタ選択フィールド254の値0110000はDBSR49を指し示す。故に、行266、276、278、280、282、284、286、288、290、294、298、300、302、304、306及び310は、それぞれ、JTAGIDレジスタ、IAC1レジスタ、IAC2レジスタ、IAC3レジスタ、IAC4レジスタ、DAC1レジスタ、DAC2レジスタ、DVC1レジスタ、DVC2レジスタ、DBCNTレジスタ、DBSRレジスタ、DBCR0−3レジスタ及びDBERC0レジスタを指し示すレジスタ選択フィールド254の様々な値を示している。従って、外部デバッグモードにおいて、外部デバッグ回路14はデバッグポートを介して外部デバッグコマンドレジスタ33にコマンドを提供することができる。例えば、外部デバッグモードにおいて、ハードウェアデバッガがデバッグ資源をソフトウェアに割り当てることを望む場合、ハードウェアデバッガは、読み出し/書き込みコマンドフィールド250が0にセットされ且つレジスタ選択フィールドが0111111(行310に示す)にセットされたコマンドを提供することができる。ハードウェアデバッガは、その後、デバッグポートを介してDBERC0 41に所望の値を書き込むことができる。] 図20 [0042] 上述のように、外部デバッグモードにおけるソフトウェアによる読み取りアクセスは、ソフトウェア所有でないビットフィールドがゼロを返すようにマスクされる。斯くして、ソフトウェア処理による一貫性が維持される。しかしながら、一実施形態において、ハードウェアデバッガが例えばDBSR49等のデバッグレジスタを読み取るとき、その全ての値が提供される。すなわち、ソフトウェア所有のビットフィールドはハードウェアデバッガにも提供される。] [0043] 故に、ハードウェアデバッガとソフトウェアデバッガとの間でデバッグ資源を共有して、ハードウェアデバッガ及びソフトウェアデバッガが同時にどのように動作し得るかは認識されることができる。一実施形態において、外部デバッグモードにある間にデバッグ資源の一部をデバッグソフトウェアによる使用に利用可能にし得ることは、ハードウェアデバッガがソフトウェアデバッガをデバッグすることを可能にする。例えば、割り込みが可能にされた一実施形態において、ソフトウェア所有のデバッグイベントの発生は、ソフトウェア割り込みハンドラによって対処される割り込みを生じさせ得る。このハンドラ(すなわち、ソフトウェアルーチン)は、その後、ハードウェアデバッガに制御を提供するために、実行の中断又はプロセッサの停止を行うことができる。斯くして、ハードウェアデバッガは、外部デバッグコマンドレジスタ33を介してデバッグ処理を管理し、ひいてはデバッグソフトウェア自体をデバッグすることが可能である。なお、代替的な実施形態においては、ソフトウェアにデバッグ資源を実際に利用可能にするために、デバッグ資源制御レジスタ41等の制御レジスタを介してではなく、その他の種類の記憶回路又は論理回路が用いられ得る。] [0044] 本発明を実現する装置は、大部分が、当業者に既知の電子部品及び回路からなるので、本発明の基本的な概念の理解及び認識のため、また、本発明の教示を不明瞭にしたりそれから逸脱したりしないよう、回路の詳細については、必要と思われる以上には説明しないこととする。] [0045] 用語“プログラム”は、ここでは、コンピュータシステム上で実行されるように設計された命令シーケンスとして定義される。プログラムすなわちコンピュータプログラムは、コンピュータシステム上での実行用に設計された、サブルーチン、関数、プロシージャ、オブジェクト方法、オブジェクト実装、実行可能アプリケーション、アプレット、サーブレット、ソースコード、オブジェクトコード、共有ライブラリ/ダイナミックロードライブラリ、及び/又はその他の命令シーケンスを含み得る。] [0046] 上述の実施形態の一部は、多様な情報処理システムを用いて実現され得る。例えば、図1及びその説明は典型的な情報処理アーキテクチャを記述しているが、この典型的なアーキテクチャは、単に、本発明の様々な態様を議論する際に便利な参考を提供するために提示したものである。当然ながら、このアーキテクチャの記述は説明目的のために単純化されており、本発明に従って使用され得る様々な種類の適用可能なアーキテクチャのうちの1つに過ぎない。当業者に認識されるように、論理ブロック同士の間の境界は単なる例示であり、代替的な実施形態は、複数の論理ブロック又は回路要素を融合したり、機能を様々な論理ブロック又は回路要素上に別のように分解したりすることが可能である。] 図1 [0047] 故に、理解されるように、ここで記述したアーキテクチャは単なる例示であり、実際には、同一の機能を達成する数多くのその他のアーキテクチャが実現され得る。要約するに、しかし依然として明確な意味で、同一の機能を達成する如何なる構成の要素群も、所望の機能が達成されるように効果的に“結合”される。従って、1つの特定の機能を達成するように組み合わされる如何なる2つの要素も、アーキテクチャや中間要素に関係なく、所望の機能を達成するように互いに“結合”されていると見ることが可能である。同様に、そのように結合される如何なる2つの要素も、所望の機能を達成するように互いに“動作的に接続されている”あるいは“動作的に結合されている”として見ることができる。] [0048] また、例えば、一実施形態において、システム10の図示した要素群は、単一の集積回路上、あるいは同一のデバイス内に位置付けられる回路である。代替的に、システム10は、相互に接続された如何なる数の別々の集積回路又は別々のデバイスを含んでいてもよい。また、例えば、システム10又はその一部は、物理回路の、あるいは物理回路に変換可能な論理表現の、ソフト表現若しくはコード表現であってもよい。このように、システム10は、如何なる適切な種類のハードウェア記述言語にて具現化されてもよい。] [0049] さらに、当業者に認識されるように、上述の処理の複数の機能間の境界は単なる例示である。複数の処理の機能が単一の処理に結合されてもよく、且つ/或いは単一の処理の機能が更なる処理に分散されてもよい。また、代替的な実施形態は、1つの特定の処理の複数の例を含むことができ、処理間の順序は様々なその他の実施形態において変更され得る。] [0050] ここで説明したソフトウェアの全て又は一部は、例えば、メモリ18又はその他のコンピュータシステム上のその他のメディアなどのコンピュータ読み取り可能媒体から受信したデータ処理システム10の要素であってもよい。コンピュータ読み取り可能媒体は、データ処理システム10等の情報処理システムに、恒久的に、取り外し可能に、あるいは遠隔に結合され得る。コンピュータ読み取り可能媒体は、非限定的な例として:ディスク状及びテープ状の記憶メディアを含む磁気記憶媒体;コンパクトディスクメディア(例えば、CD−ROM、CD−R等)及びデジタルビデオディスク記憶メディアなどの光記憶媒体;例えばフラッシュメモリ、EEPROM、EPROM、ROM等の半導体ベースのメモリユニットを含む不揮発性メモリ記憶媒体;強磁性デジタルメモリ;MRAM;レジスタ、バッファ若しくはキャッシュ、メインメモリ、RAM等を含む揮発性記憶媒体;並びに数例を挙げるとコンピュータネットワーク、二地点間遠隔通信設備、及び搬送波伝送媒体を含むデータ伝送媒体;を含み得る。] [0051] ここでは特定の実施形態を参照して本発明を説明したが、請求項に記載される本発明の範囲を逸脱することなく、様々な変更及び変形が為され得る。従って、本明細書及び図面は、限定的な意味ではなく例示的な意味と見るべきであり、そのような変更及び変形は本発明の範囲に含まれるべきものである。特定の実施形態に関してここで説明した如何なる利点、効果、又は問題の解法も、何れかの請求項又は全ての請求項の決定的な、必要な、あるいは本質的な特徴又は要素として解釈されるべきものではない。] [0052] 用語“結合”は、ここでは、直接的な結合又は機械的な結合に限定されるべきものではない。] [0053] さらに、用語“a”又は“an”は、ここでは、1つ、又は1つより多くとして定義される。また、請求項中の例えば“少なくとも1つ”及び“1つ以上”等の前置語は、不定冠詞“a”又は“an”による別のクレーム要素の導入が、例え同一のクレームが前置語“少なくとも1つ”及び“1つ以上”と“a”又は“an”等の不定冠詞とを含むときであっても、そのような導入クレーム要素を含む特定の請求項をそのような要素を1つだけ含む発明に限定することを意味するものと解釈されるべきでない。定冠詞の使用に関しても同様である。] [0054] 特に言及しない限り、例えば“第1”及び“第2”等の用語は、そのような用語が記述する複数の要素を任意に区別するために使用されている。故に、それらの用語は必ずしも、そのような要素の時間的あるいはその他の順序付けを指し示すものではない。] [0055] (付記1) デバッグ処理に専ら使用される複数のデバッグ資源を有する集積回路を設ける準備ステップであり、該デバッグ処理は、該集積回路によって実行されるデバッグソフトウェアにより管理される処理と、該集積回路の外部にある外部デバッグハードウェアによって管理される処理とを有する、準備ステップ; 前記デバッグ資源の第1の部分を前記デバッグソフトウェアによる使用に利用可能にする可能化ステップであり、前記デバッグ資源の第2の部分を前記外部デバッグハードウェアによる排他的な使用に捧げ、該第1の部分は該第2の部分を含まない、可能化ステップ;及び 前記デバッグ資源の前記第1の部分のうちの少なくとも1つのデバッグ資源を用いた前記デバッグソフトウェアにより管理される処理と、前記デバッグ資源の前記第2の部分のうちの少なくとも1つのデバッグ資源を用いた前記外部デバッグハードウェアにより管理される処理とを実行する実行ステップ; を有する方法。] [0056] (付記2) 前記実行ステップは更に、前記外部デバッグハードウェア及び前記デバッグソフトウェアを同時に動作させているときに行われることを特徴とする、付記1に記載の方法。] [0057] (付記3) 前記準備ステップは更に、前記デバッグ資源が複数のデバッグレジスタのフィールドを有することと、前記集積回路が、前記デバッグ資源の使用を特定する制御レジスタを有することとを特徴とし; 前記可能化ステップは更に、前記第1の部分及び前記第2の部分を特定するために、前記外部デバッグハードウェアに応答して前記制御レジスタをロードすることを特徴とし;且つ 前記制御レジスタをロードすることに基づいて、前記デバッグソフトウェアに応答して、前記複数のデバッグレジスタのうちの第1のデバッグレジスタのフィールドを設定する; 付記1に記載の方法。] [0058] (付記4) 前記可能化ステップは更に、前記制御レジスタに応答して、前記第1のデバッグレジスタの第1のフィールドの組を、該第1のフィールドの組が前記デバッグソフトウェアに応答しないようにマスキングすることを特徴とする、付記3に記載の方法。] [0059] (付記5) 前記準備ステップは更に、前記集積回路が更に制御レジスタを有することを特徴とし;且つ 前記捧げることは更に、前記制御レジスタが前記第1の部分及び前記第2の部分を特定することを特徴とする; 付記1に記載の方法。] [0060] (付記6) 前記準備ステップは更に、前記デバッグ資源が複数のデバッグレジスタのフィールドを有することを特徴とし;且つ 前記捧げることは更に、前記外部デバッグハードウェアに応答して前記制御レジスタの設定を確立することと、前記制御レジスタが、前記デバッグレジスタの第1のフィールドの組が前記デバッグソフトウェアによって実行されること、及び前記デバッグレジスタの第2のフィールドの組が前記デバッグソフトウェアからマスクされることを可能にすることとを特徴とする; 付記5に記載の方法。] [0061] (付記7) 前記準備ステップは更に、前記集積回路が更に第2の制御レジスタを有することと、前記デバッグ資源が少なくとも1つの比較器及びカウンタを有することとを特徴とし;且つ 前記捧げることは更に、前記デバッグ資源の前記第1の部分及び前記第2の部分を定める際に、前記第2の制御レジスタをロードすることを特徴とする; 付記6に記載の方法。] [0062] (付記8) 集積回路であって: 処理ユニット; デバッグ処理に専ら使用される複数のデバッグ資源; デバッグ処理を制御するための複数のフィールドを有する制御レジスタであり: 各デバッグ処理が前記デバッグ資源の一部を利用し; 当該集積回路が、前記フィールドの全てが当該集積回路の外部のデバッグハードウェアによる使用に利用可能にされるモードを有し;且つ 前記デバッグハードウェアに応答してロードされるフィールドが、前記複数のフィールドのうちの第1の部分を有し、且つ前記複数のデバッグ資源の第1のサブセット(部分集合)と前記複数のデバッグ資源の第2のサブセットとを特定する; 制御レジスタ;及び 前記第1のサブセットの第1のフィールド群と前記第2のサブセットの第2のフィールド群とを有する前記複数のデバッグ資源のデバッグレジスタであり、前記第2のフィールド群は、前記処理ユニットによって実行されるデバッグソフトウェアに応答する、デバッグレジスタ; を有する集積回路。] [0063] (付記9) 前記処理ユニットは: 前記複数のデバッグ資源に結合された制御回路;及び 前記制御回路と前記複数のデバッグ資源とに結合された命令フェッチユニット; を有する、付記8に記載の集積回路。] [0064] (付記10) 前記複数のデバッグ資源は、デバッグ処理に専ら使用される複数のレジスタを有する、付記9に記載の集積回路。] [0065] (付記11) 前記処理ユニットは更に、前記制御回路と前記複数のデバッグ資源とに結合されたロード/記憶ユニットを有する、付記10に記載の集積回路。] [0066] (付記12) 前記複数のデバッグ資源は更にカウンタを有する、付記11に記載の集積回路。] [0067] (付記13) 前記複数のデバッグ資源は更に比較器を有する、付記12に記載の集積回路。] [0068] (付記14) ハードウェアデバッガと集積回路上のデバッグソフトウェアとを動作させる方法であって: 前記集積回路上でデバッグ処理を実行する際に使用する複数のデバッグ資源を準備するステップ; 前記複数のデバッグ資源から第1のデバッグ資源のサブセットと第2のデバッグ資源のサブセットとを特定するステップであり、該第1のデバッグ資源のサブセットは、前記ハードウェアデバッガによって必要とされないデバッグ資源であり且つ前記デバッグソフトウェアに利用可能にされ、前記ハードウェアデバッガは前記集積回路の外部にあり、該第2のデバッグ資源のサブセットは、前記第1のデバッグ資源のサブセットが特定された後の前記複数のデバッグ資源の残りのデバッグ資源である、特定するステップ; 前記ハードウェアデバッガと前記デバッグソフトウェアとを同時に動作させるステップであり: 前記デバッグソフトウェアが前記集積回路によって実行され; 前記ハードウェアデバッガが、前記第1のデバッグ資源のサブセットを使用せずに、前記第2のデバッグ資源のサブセットを使用し;且つ 前記デバッグソフトウェアが、前記第2のデバッグ資源のサブセットを使用せずに、前記第1のデバッグ資源のサブセットを使用する; 同時に動作させるステップ; を有する方法。] [0069] (付記15) 前記特定するステップは更に、前記デバッグ資源のサブセットが専らデバッグ処理のためのものであることを特徴とする、付記14に記載の方法。] [0070] (付記16) 前記特定するステップは更に、前記第1のサブセットを特定することが前記第2のサブセットを特定することになることを特徴とする、付記14に記載の方法。] [0071] (付記17) 前記準備するステップは更に、前記デバッグ資源がレジスタを有することを特徴とする、付記14に記載の方法。] [0072] (付記18) 前記ハードウェアデバッガと前記デバッグソフトウェアとを前記同時に動作させるステップは更に、前記デバッグソフトウェアをデバッグするために前記ハードウェアデバッガを使用することを特徴とする、付記14に記載の方法。] [0073] (付記19) 前記準備するステップは更に、デバッグレジスタと、複数のフィールドを有する制御レジスタとを準備することを特徴とし: 該デバッグレジスタ及び該制御レジスタは前記集積回路上にあり、且つ 該制御レジスタは、前記デバッグソフトウェアに応答しての前記デバッグ資源の使用を指定し; 前記特定するステップは更に、前記デバッグレジスタの第1のフィールド群をマスクするように、前記ハードウェアデバッガを用いて前記制御レジスタをロードすることを特徴とし;且つ 前記同時に動作させるステップは更に、前記デバッグソフトウェアが前記第1のフィールド群からマスクされることを特徴とする; 付記14に記載の方法。] [0074] (付記20) 前記準備するステップは更に、制御レジスタ及びデバッグレジスタを有することを特徴とし、 該制御レジスタは、デバッグ処理を制御するための複数のフィールドを有し; 各デバッグ処理は前記デバッグ資源の一部の使用を特定し; 前記集積回路は、前記複数のフィールドの全てが、前記集積回路の外部の前記ハードウェアデバッガによる使用に利用可能にされるモードを有し; 前記第1のデバッグ資源のサブセットを特定するステップは更に、前記ハードウェアデバッガに応答して前記制御レジスタの複数のフィールドのうちの第1のサブセットをロードし、該第1のサブセットのフィールドが前記第1のデバッグ資源のサブセットを定めることを特徴とする; 付記14に記載の方法。]
权利要求:
請求項1 デバッグ処理に専ら使用される複数のデバッグ資源を有する集積回路を設ける準備ステップであり、該デバッグ処理は、該集積回路によって実行されるデバッグソフトウェアにより管理される処理と、該集積回路の外部にある外部デバッグハードウェアによって管理される処理とを有する、準備ステップ;前記デバッグ資源の第1の部分を前記デバッグソフトウェアによる使用に利用可能にする可能化ステップであり、前記デバッグ資源の第2の部分を前記外部デバッグハードウェアによる排他的な使用に捧げ、該第1の部分は該第2の部分を含まない、可能化ステップ;及び前記デバッグ資源の前記第1の部分のうちの少なくとも1つのデバッグ資源を用いた前記デバッグソフトウェアにより管理される処理と、前記デバッグ資源の前記第2の部分のうちの少なくとも1つのデバッグ資源を用いた前記外部デバッグハードウェアにより管理される処理とを実行する実行ステップ;を有する方法。 請求項2 前記実行ステップは更に、前記外部デバッグハードウェア及び前記デバッグソフトウェアを同時に動作させているときに行われることを特徴とする、請求項1に記載の方法。 請求項3 前記準備ステップは更に、前記デバッグ資源が複数のデバッグレジスタのフィールドを有することと、前記集積回路が、前記デバッグ資源の使用を特定する制御レジスタを有することとを特徴とし;前記可能化ステップは更に、前記第1の部分及び前記第2の部分を特定するために、前記外部デバッグハードウェアに応答して前記制御レジスタをロードすることを特徴とし;且つ前記制御レジスタをロードすることに基づいて、前記デバッグソフトウェアに応答して、前記複数のデバッグレジスタのうちの第1のデバッグレジスタのフィールドを設定する;請求項1に記載の方法。 請求項4 前記可能化ステップは更に、前記制御レジスタに応答して、前記第1のデバッグレジスタの第1のフィールドの組を、該第1のフィールドの組が前記デバッグソフトウェアに応答しないようにマスキングすることを特徴とする、請求項3に記載の方法。 請求項5 前記準備ステップは更に、前記集積回路が更に制御レジスタを有することを特徴とし;且つ前記捧げることは更に、前記制御レジスタが前記第1の部分及び前記第2の部分を特定することを特徴とする;請求項1に記載の方法。 請求項6 前記準備ステップは更に、前記デバッグ資源が複数のデバッグレジスタのフィールドを有することを特徴とし;且つ前記捧げることは更に、前記外部デバッグハードウェアに応答して前記制御レジスタの設定を確立することと、前記制御レジスタが、前記デバッグレジスタの第1のフィールドの組が前記デバッグソフトウェアによって実行されること、及び前記デバッグレジスタの第2のフィールドの組が前記デバッグソフトウェアからマスクされることを可能にすることとを特徴とする;請求項5に記載の方法。 請求項7 前記準備ステップは更に、前記集積回路が更に第2の制御レジスタを有することと、前記デバッグ資源が少なくとも1つの比較器及びカウンタを有することとを特徴とし;且つ前記捧げることは更に、前記デバッグ資源の前記第1の部分及び前記第2の部分を定める際に、前記第2の制御レジスタをロードすることを特徴とする;請求項6に記載の方法。 請求項8 集積回路であって:処理ユニット;デバッグ処理に専ら使用される複数のデバッグ資源;デバッグ処理を制御するための複数のフィールドを有する制御レジスタであり:各デバッグ処理が前記デバッグ資源の一部を利用し;当該集積回路が、前記フィールドの全てが当該集積回路の外部のデバッグハードウェアによる使用に利用可能にされるモードを有し;且つ前記デバッグハードウェアに応答してロードされるフィールドが、前記複数のフィールドのうちの第1の部分を有し、且つ前記複数のデバッグ資源の第1のサブセットと前記複数のデバッグ資源の第2のサブセットとを特定する;制御レジスタ;及び前記第1のサブセットの第1のフィールド群と前記第2のサブセットの第2のフィールド群とを有する前記複数のデバッグ資源のデバッグレジスタであり、前記第2のフィールド群は、前記処理ユニットによって実行されるデバッグソフトウェアに応答する、デバッグレジスタ;を有する集積回路。 請求項9 前記処理ユニットは:前記複数のデバッグ資源に結合された制御回路;及び前記制御回路と前記複数のデバッグ資源とに結合された命令フェッチユニット;を有する、請求項8に記載の集積回路。 請求項10 前記複数のデバッグ資源は、デバッグ処理に専ら使用される複数のレジスタを有する、請求項9に記載の集積回路。 請求項11 前記処理ユニットは更に、前記制御回路と前記複数のデバッグ資源とに結合されたロード/記憶ユニットを有する、請求項10に記載の集積回路。 請求項12 前記複数のデバッグ資源は更にカウンタを有する、請求項11に記載の集積回路。 請求項13 前記複数のデバッグ資源は更に比較器を有する、請求項12に記載の集積回路。 請求項14 ハードウェアデバッガと集積回路上のデバッグソフトウェアとを動作させる方法であって:前記集積回路上でデバッグ処理を実行する際に使用する複数のデバッグ資源を準備するステップ;前記複数のデバッグ資源から第1のデバッグ資源のサブセットと第2のデバッグ資源のサブセットとを特定するステップであり、該第1のデバッグ資源のサブセットは、前記ハードウェアデバッガによって必要とされないデバッグ資源であり且つ前記デバッグソフトウェアに利用可能にされ、前記ハードウェアデバッガは前記集積回路の外部にあり、該第2のデバッグ資源のサブセットは、前記第1のデバッグ資源のサブセットが特定された後の前記複数のデバッグ資源の残りのデバッグ資源である、特定するステップ;前記ハードウェアデバッガと前記デバッグソフトウェアとを同時に動作させるステップであり:前記デバッグソフトウェアが前記集積回路によって実行され;前記ハードウェアデバッガが、前記第1のデバッグ資源のサブセットを使用せずに、前記第2のデバッグ資源のサブセットを使用し;且つ前記デバッグソフトウェアが、前記第2のデバッグ資源のサブセットを使用せずに、前記第1のデバッグ資源のサブセットを使用する;同時に動作させるステップ;を有する方法。 請求項15 前記特定するステップは更に、前記デバッグ資源のサブセットが専らデバッグ処理のためのものであることを特徴とする、請求項14に記載の方法。 請求項16 前記特定するステップは更に、前記第1のサブセットを特定することが前記第2のサブセットを特定することになることを特徴とする、請求項14に記載の方法。 請求項17 前記準備するステップは更に、前記デバッグ資源がレジスタを有することを特徴とする、請求項14に記載の方法。 請求項18 前記ハードウェアデバッガと前記デバッグソフトウェアとを前記同時に動作させるステップは更に、前記デバッグソフトウェアをデバッグするために前記ハードウェアデバッガを使用することを特徴とする、請求項14に記載の方法。 請求項19 前記準備するステップは更に、デバッグレジスタと、複数のフィールドを有する制御レジスタとを準備することを特徴とし:該デバッグレジスタ及び該制御レジスタは前記集積回路上にあり、且つ該制御レジスタは、前記デバッグソフトウェアに応答しての前記デバッグ資源の使用を指定し;前記特定するステップは更に、前記デバッグレジスタの第1のフィールド群をマスクするように、前記ハードウェアデバッガを用いて前記制御レジスタをロードすることを特徴とし;且つ前記同時に動作させるステップは更に、前記デバッグソフトウェアが前記第1のフィールド群からマスクされることを特徴とする;請求項14に記載の方法。 請求項20 前記準備するステップは更に、制御レジスタ及びデバッグレジスタを有することを特徴とし、該制御レジスタは、デバッグ処理を制御するための複数のフィールドを有し;各デバッグ処理は前記デバッグ資源の一部の使用を特定し;前記集積回路は、前記複数のフィールドの全てが、前記集積回路の外部の前記ハードウェアデバッガによる使用に利用可能にされるモードを有し;前記第1のデバッグ資源のサブセットを特定するステップは更に、前記ハードウェアデバッガに応答して前記制御レジスタの複数のフィールドのうちの第1のサブセットをロードし、該第1のサブセットのフィールドが前記第1のデバッグ資源のサブセットを定めることを特徴とする;請求項14に記載の方法。
类似技术:
公开号 | 公开日 | 专利标题 JP6095682B2|2017-03-15|プログラム・イベント記録イベントのランタイム計装イベントへの変換 US6415344B1|2002-07-02|System and method for on-chip communication US7962314B2|2011-06-14|Mechanism for profiling program software running on a processor US6785850B2|2004-08-31|System and method for automatically configuring a debug system US4811345A|1989-03-07|Methods and apparatus for providing a user oriented microprocessor test interface for a complex, single chip, general purpose central processing unit US6148381A|2000-11-14|Single-port trace buffer architecture with overflow reduction US7010722B2|2006-03-07|Embedded symmetric multiprocessor system debug US5764885A|1998-06-09|Apparatus and method for tracing data flows in high-speed computer systems US6175914B1|2001-01-16|Processor including a combined parallel debug and trace port and a serial port JP4225851B2|2009-02-18|データ処理装置用トレース要素生成システム CN100541446C|2009-09-16|调试装置和方法 US7299335B2|2007-11-20|Translation information retrieval transparent to processor core US9268666B2|2016-02-23|System and method for debugging of computer programs US7707395B2|2010-04-27|Data processing system with trace co-processor US7185320B2|2007-02-27|System and method for processing breakpoint events in a child process generated by a parent process US5754759A|1998-05-19|Testing and monitoring of programmed devices US7043416B1|2006-05-09|System and method for state restoration in a diagnostic module for a high-speed microprocessor US8739163B2|2014-05-27|Critical path deterministic execution of multithreaded applications in a transactional memory system JP5668143B2|2015-02-12|データ処理装置のデバッグ US6662314B1|2003-12-09|Microcomputer including program for rewriting data in an internal flash memory US7131114B2|2006-10-31|Debugger breakpoint management in a multicore DSP device having shared program memory US6598178B1|2003-07-22|Peripheral breakpoint signaler US5809293A|1998-09-15|System and method for program execution tracing within an integrated processor EP2230602B1|2012-12-12|Processing apparatus and method for acquiring log information US5657253A|1997-08-12|Apparatus for monitoring the performance of a microprocessor
同族专利:
公开号 | 公开日 WO2009111108A1|2009-09-11| TW200943053A|2009-10-16| CN101946236A|2011-01-12| US7870430B2|2011-01-11| US20090222692A1|2009-09-03|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 JPH09218802A|1995-08-30|1997-08-19|Motorola Inc|データプロセッサ| JPH09319727A|1996-05-31|1997-12-12|Hitachi Ltd|データプロセッサ及びデータ処理システム| JPH10214201A|1997-01-29|1998-08-11|Internatl Business Mach Corp <Ibm>|マイクロコンピュータ| US6708270B1|1998-08-06|2004-03-16|Infineon Technologies Ag|Programmable unit having on chip debugging support module and reset manager that determines if OCDS should reset if programmable unit is reset| JP2002323995A|2001-04-25|2002-11-08|Mitsubishi Electric Corp|トレース回路| JP2005122350A|2003-10-15|2005-05-12|Seiko Epson Corp|情報処理装置、プログラム中断方法、レジスタダンプ方法、レジスタ書換え方法、メモリダンプ方法、メモリ書換え方法、アドレストレース方法及びターゲット用プログラムのステップ実行方法|JP5628411B2|2011-03-24|2014-11-19|ルネサスエレクトロニクス株式会社|半導体装置|JP3151808B2|1997-07-16|2001-04-03|日本電気株式会社|集積回路装置、回路検査装置および方法| US6321331B1|1998-04-22|2001-11-20|Transwitch Corporation|Real time debugger interface for embedded systems| US6643803B1|1999-02-19|2003-11-04|Texas Instruments Incorporated|Emulation suspend mode with instruction jamming| US6553513B1|1999-02-19|2003-04-22|Texas Instruments Incorporated|Emulation suspend mode with differing response to differing classes of interrupts| US6591378B1|2000-02-22|2003-07-08|Motorola, Inc.|Debug controller in a data processor and method therefor| WO2001063416A1|2000-02-24|2001-08-30|Bops Incorporated|Methods and apparatus for scalable array processor interrupt detection and response| US6865663B2|2000-02-24|2005-03-08|Pts Corporation|Control processor dynamically loading shadow instruction register associated with memory entry of coprocessor in flexible coupling mode| JP3913470B2|2000-12-28|2007-05-09|株式会社東芝|システムlsi| US20030074650A1|2001-10-17|2003-04-17|Tankut Akgul|Debugger operating system for embedded systems| US7243340B2|2001-11-15|2007-07-10|Pace Anti-Piracy|Method and system for obfuscation of computer program execution flow to increase computer program security| US6895530B2|2003-01-24|2005-05-17|Freescale Semiconductor, Inc.|Method and apparatus for controlling a data processing system during debug| JP4409349B2|2004-04-27|2010-02-03|Okiセミコンダクタ株式会社|デバッグ回路およびデバッグ制御方法| CN100492315C|2004-12-15|2009-05-27|浙江大学|嵌入式信号处理器模拟器| US7296137B2|2005-05-27|2007-11-13|Freescale Semiconductor, Inc.|Memory management circuitry translation information retrieval during debugging| US7681078B2|2007-05-18|2010-03-16|Freescale Semiconductor, Inc.|Debugging a processor through a reset event|CN102063367B|2010-10-29|2013-07-17|凌阳科技股份有限公司|针对当机程序的离线分析方法及装置| US9053233B2|2011-08-15|2015-06-09|Freescale Semiconductor, Inc.|Method and device for controlling debug event resources| JP2018128767A|2017-02-07|2018-08-16|ルネサスエレクトロニクス株式会社|デバッグシステム及び半導体装置| US10642693B2|2017-09-06|2020-05-05|Western Digital Technologies, Inc.|System and method for switching firmware|
法律状态:
2012-01-24| A621| Written request for application examination|Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120123 | 2012-07-21| A711| Notification of change in applicant|Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20120720 | 2013-03-15| A977| Report on retrieval|Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130315 | 2013-03-27| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130326 | 2013-06-26| A601| Written request for extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130625 | 2013-07-03| A602| Written permission of extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130702 | 2013-11-06| A02| Decision of refusal|Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20131105 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|