(57)【要約】  デバッグ命令を提供する工程と、デバッグ制御レジスタフィールドを提供する工程と、を含む方法において、デバッグ制御レジスタフィールドが第１の値を有する場合、デバッグ命令は、デバッグ動作を実行するものとし、デバッグ制御レジスタフィールドが第２の値を有する場合、デバッグ命令は、ノーオペレーション（ＮＯＰ）命令として実行されるものとする。データ処理システム（１０）には、デバッグ命令を受信するための命令フェッチ回路（２６）と、デバッグ制御レジスタフィールドと、デバッグ実行制御回路（６２）であって、デバッグ制御レジスタフィールドが第１の値を有する場合、第１の手法でデバッグ命令の実行を制御し、デバッグ制御レジスタフィールドが第２の値を有する場合、第２の手法で制御するデバッグ実行制御回路（６２）と、が含まれる。この場合、第１の手法では、デバッグ動作を実施し、第２の手法では、デバッグ動作を実施しない。
2011501265.tif 000002
【特許請求の範囲】
【請求項１】
デバッグ命令を提供する工程と、
デバッグ制御レジスタフィールドを提供する工程と、を含み、
デバッグ制御レジスタフィールドが第１の値を有する場合、デバッグ命令によってデバッグ動作が実行され、
デバッグ制御レジスタフィールドが第２の値を有する場合、デバッグ命令はノーオペレーション（ＮＯＰ）命令として実行される、方法。
【請求項２】
デバッグ制御レジスタフィールドが第２の値を有する場合、デバッグ割込の代わりにＮＯＰ命令が実行される請求項１に記載の方法。
【請求項３】
デバッグ制御レジスタフィールドが第１の値を有する場合、デバッグ命令の実行によってデバッグモードに入る請求項１に記載の方法。
【請求項４】
デバッグ制御レジスタフィールドが第１の値を有する場合、デバッグ命令の実行によってプロセッサ停止させる請求項１に記載の方法。
【請求項５】
集積回路外部のデバッガは、デバッグ制御レジスタフィールドへの書込アクセスが可能であり、集積回路上のプロセッサは、デバッグ制御レジスタフィールドへの書込アクセスが不可能である請求項１に記載の方法。
【請求項６】
集積回路外部のデバッガは、デバッグ制御レジスタフィールドへの書込アクセスが不可能であり、集積回路上のプロセッサは、デバッグ制御レジスタフィールドへの書込アクセスが可能である請求項１に記載の方法。
【請求項７】
集積回路上のプロセッサの外部にあるデバッガは、デバッグ制御レジスタフィールドへの書込アクセスが可能であり、集積回路上のプロセッサは、デバッグ制御レジスタフィールドへの書込アクセスが不可能である請求項１に記載の方法。
【請求項８】
デバッグ命令は、複数のデバッグ命令グループのうちの１つを示すグループフィールドを含む請求項１に記載の方法。
【請求項９】
デバッグ制御レジスタフィールドは、前記複数のデバッグ命令グループのうちの１つに各々対応する、複数のデバッグ制御レジスタフィールド部を含む、請求項８に記載の方法。
【請求項１０】
第１デバッグ命令を提供する工程と、
第１デバッグ命令においてグループ番号を示すフィールドを提供する工程と、
複数のデバッグ制御レジスタフィールドを提供する工程と、
グループ番号は、前記複数のデバッグ制御レジスタフィールドのうちの第１のフィールドを第１デバッグ命令と関連付けることと、
前記複数のデバッグ制御レジスタフィールドのうちの第１のフィールドが第１の値を有する場合、第１デバッグ命令は第１デバッグ命令として実行されることと、
前記複数のデバッグ制御レジスタフィールドのうちの第１のフィールドが第２の値を有する場合、第１デバッグ命令はノーオペレーション（ＮＯＰ）命令として実行されることと、
グループ番号を示すフィールドを有しない第２デバッグ命令を提供する工程と、
前記複数のデバッグ制御レジスタフィールドのうちの第２のフィールドは第２デバッグ命令と関連付けられることと、
前記複数のデバッグ制御レジスタフィールドのうちの第２のフィールドが第１の値を有する場合、第２デバッグ命令は第２デバッグ命令として実行されることと、
前記複数のデバッグ制御レジスタフィールドのうちの第２のフィールドが第２の値を有する場合、第２デバッグ命令はＮＯＰ命令として実行されることと、を含む方法。
【請求項１１】
第１デバッグ命令は第２デバッグ命令と異なる請求項１０に記載の方法。
【請求項１２】
前記複数のデバッグ制御レジスタフィールドのうちの第１のフィールド及び前記複数のデバッグ制御レジスタフィールドのうちの第２のフィールドは、前記複数のデバッグ制御レジスタフィールドのうちの同じフィールドである請求項１０に記載の方法。
【請求項１３】
前記複数のデバッグ制御レジスタフィールドのうちの第１のフィールド及び前記複数のデバッグ制御レジスタフィールドのうちの第２のフィールドは、前記複数のデバッグ制御レジスタフィールドのうちの異なるフィールドである請求項１０に記載の方法。
【請求項１４】
前記複数のデバッグ制御レジスタフィールドのうちの第１のフィールドが第１の値を有する場合、第１デバッグ命令の実行によってデバッグモードに入ることと、前記複数のデバッグ制御レジスタフィールドのうちの第２のフィールドが第１の値を有する場合、第２デバッグ命令の実行によってデバッグモードに入ることと、を含む請求項１０に記載の方法。
【請求項１５】
前記複数のデバッグ制御レジスタフィールドのうちの第１のフィールドが第１の値を有する場合、第１デバッグ命令の実行によってプロセッサを停止させることと、前記複数のデバッグ制御レジスタフィールドのうちの第２のフィールドが第１の値を有する場合、第２デバッグ命令の実行によってプロセッサを停止させることと、を含む請求項１０に記載の方法。
【請求項１６】
データ処理システムであって、
デバッグ命令を受信するための命令フェッチ回路と、
デバッグ制御レジスタフィールドと、
命令フェッチ回路及びデバッグ制御レジスタフィールドに結合された、デバッグ実行制御回路とを備え、該デバッグ実行制御回路は、デバッグ制御レジスタフィールドが第１の値を有する場合、第１の手法によりデバッグ命令の実行を制御し、デバッグ制御レジスタフィールドが第２の値を有する場合、第２の手法によりデバッグ命令の実行を制御することと、第１の手法ではデバッグ動作が実行され、第２の手法ではデバッグ動作が実行されないことと、を含むデータ処理システム。
【請求項１７】
デバッグ制御レジスタフィールドが第１の値を有する場合、デバッグ命令の実行によってデバッグモードに入る請求項１６に記載のデータ処理システム。
【請求項１８】
デバッグ制御レジスタフィールドが第１の値を有する場合、デバッグ命令の実行によってデバッグ割込処理が開始される請求項１６に記載のデータ処理システム。
【請求項１９】
デバッグ制御レジスタフィールドが第１の値を有する場合、デバッグ命令の実行によって命令フェッチ回路に通常の命令フェッチを停止させる請求項１６に記載のデータ処理システム。
【請求項２０】
デバッグ命令は、複数のデバッグ命令グループのうちの１つを示すグループフィールドを含み、前記複数のデバッグ命令グループのうちの１つによって、前記デバッグ制御レジスタフィールドが複数のデバッグ制御レジスタフィールドから選択される請求項１６に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般にデータ処理システムに関し、より詳細には、データ処理システムにおいて用いるためのデバッグ命令に関する。
【背景技術】
【０００２】
デバッグ命令は、一般に、ソフトウェア開発中にデバッグ動作を行わせるために用いられる。ソフトウェアの開発が完了しデバッグ命令によって検証されると、それらのデバッグ命令はソフトウェアアプリケーションにおいて望ましくない例外を起こさないよう除去される。しかしながら、それらのデバッグ命令を除去することにおってシステムの実行特性が変化するため、実行の予測可能性が低下することがある。このことは、特に、リアルタイム・アプリケーションにおいて問題となり得る。
【図面の簡単な説明】
【０００３】
【図１】本発明の一実施形態に基づくデータ処理システムのブロック図。
【図２】本発明の一実施形態に基づく、図１のデータ処理システムに関係するプロセッサのブロック図。
【図３】図１のデータ処理システムに関係する代表的なデバッグレジスタを示す図。
【図４】図１のデータ処理システムに関連する代表的な外部デバッグレジスタを示す図。
【図５】図２のプロセッサによって実行可能である代表的なデバッグ命令を示す図。
【図６】図２のプロセッサによって実行可能である代表的なデバッグ命令を示す図。
【図７】本発明の一実施形態に基づく、図３のデバッグレジスタに関連するデバッグ制御レジスタの図。
【図８】本発明の一実施形態に基づく、図７のデバッグ制御レジスタの一部の機能を表形式で示す図。
【図９】本発明の一実施形態に基づく、図４の外部デバッグレジスタに関連する外部デバッグ制御レジスタの図。
【図１０】本発明の一実施形態に基づく、図９の外部デバッグ制御レジスタの一部の機能を表形式で示す図。
【図１１】本発明の一実施形態に基づく、図２のプロセッサの制御回路の一部を示すブロック図。
【図１２】図５のデバッグ命令を用いる代表的なコード部の図。
【図１３】図６のデバッグ命令を用いる代表的なコード部の図。
【発明を実施するための形態】
【０００４】
現行のデバッグ命令では、ソフトウェア開発プロセス中にはソフトウェア制御の下で、条件により、デバッグ停止モード（即ち、デバッグモード）に入るか、ソフトウェアデバッグ例外（即ち、デバッグ割込）を起こす能力が提供され、ソフトウェア又はハードウェアデバッグ動作を行わせる。しかしながら、ソフトウェア開発が完了すると、それらのデバッグ命令は、最終版のコードに埋め込まれたままでは望ましくない例外の原因になるため、除去される必要がある。しかしながら、これらのデバッグ命令を除去すると、システムの実行特性が変化する。即ち、デバッグ命令の除去により、分岐先、ページ境界、及び他の命令の関係が変わり得ることから、コードイメージ自体が変わる。コードイメージ自体を変えずにおくことで、おそらくは実行をより予測可能なものとするために、本明細書に説明する一実施形態では、追加の制御を行うことによって、デバッグ命令を「ノー・オプ（ｎｏ−ｏｐ）」命令（ノーオペレーション命令又はＮＯＰとも称する）として動作させるか、又はその実行を抑制する。これにより、デバッグ処理が行われることのないアプリケーション実行中、デバッグ命令を適所に残しておくことが可能となり、この場合、デバッグ命令はＮＯＰとして扱われるか、ＮＯＰは当分野で公知であるように動作するか、デバッグ命令の実行は抑制され、命令がデバッグ関連の実行セマンティクスを有する場合にも、デバッグ動作は実施されない。
【０００５】
更に、一実施形態では、あるクラスのデバッグ命令により、実行時に１つ以上のアクションを取らせることを通じて独立の制御を各々有する独立した複数のグループへとデバッグ命令をグループ化することによって、デバッグの柔軟性を追加することが可能である。これらのグループは独立に制御されることができ、その結果生じるアクションは、ハードウェア又はソフトウェアデバッガのいずれかによって動的に修正されることができる。
【０００６】
本明細書に用いる用語「バス」は、データ、アドレス、制御、又は状態等の、１つ又は複数の様々な種類の情報を伝達するのに用い得る複数の信号又はコンダクタ（導体）を参照するために用いる。本明細書で述べる導体は、単一の導体、複数の導体、単方向の導体、又は双方向の導体であることに関連して例示又は記述し得る。しかしながら、異なる実施形態では、導体の実装も異なり得る。例えば、双方向の導体よりもむしろ別個の単方向導体を用いたり、その逆の場合もあったりする。また、直列に又は時分割多重方式で複数の信号を伝達する単一の導体で複数の導体を置き換えることがある。同様に、複数の信号を搬送する単一の導体は、これらの信号の一部を搬送する様々な異なる導体に分離し得る。従って、信号を伝達するための多くのオプションが存在する。
【０００７】
用語「アサート」又は「設定」及び「ネゲート」（又は「ディアサート」又は「クリア」）は、信号、状態ビット、又は同様の装置をそれぞれその論理的に真又は論理的に偽の状態にすることを参照する際に用いる。論理的に真の状態が論理レベル１である場合、論理的に偽の状態は、論理レベル０である。また、論理的に真の状態が論理レベル０である場合、論理的に偽の状態は、論理レベル１である。
【０００８】
本明細書に述べた各信号は、正又は負論理として構成し得る。この場合、負論理は、信号名称上のバー又は名称に続くアスタリスク記号（＊）によって示し得る。負論理信号の場合、信号は、アクティブ「ロー」であり、この場合、論理的に真の状態は、論理レベル０に対応する。正論理信号の場合、信号は、アクティブ「ハイ」であり、この場合、論理的に真の状態は、論理レベル１に対応する。本明細書で述べる信号は、いずれも負又は正のいずれかの論理信号として構成し得ることに留意されたい。従って、他の実施形態では、正論理信号として述べた信号は、負論理信号として実現してもよく、また、負論理信号として述べた信号は、正論理信号として実現してよい。
【０００９】
角括弧は、本明細書では、バスの導体又は値のビット位置を示すために用いる。例えば、「バス６０［７：０］」又は「バス６０の導体［７：０］」は、バス６０の８つの下位導体を示し、「アドレスビット［７：０］」又は「ＡＤＤＲＥＳＳ［７：０］」は、アドレス値の８つの下位ビットを示す。数に先行する記号「＄」は、その数が１６進数、即ち、基数１６の形式で表されることを示す。数に先行する記号「％」は、その数が２進数、即ち、基数２の形式で表されることを示す。
【００１０】
図１は、本発明の実施形態と整合性のあるデータ処理システム１０を示す。データ処理システム１０は、システム・オン・チップであってよい。データ処理システム１０は、単一の集積回路又は複数の集積回路上に実装し得る。データ処理システム１０には、プロセッサ１２、外部デバッグ回路１４、Ｉ／Ｏモジュール１６、及びメモリ１８が含まれ、これらは、バス２０を介して結合し得る。他の実施形態では、メモリ１８は、任意の種類のメモリであってよく、また、プロセッサ１２と同じ集積回路上に配置してもよく、又はプロセッサ１２と異なる集積回路上に配置してもよい。メモリ１８は、任意の種類のメモリであってよく、例えば、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、不揮発性メモリ（例えば、フラッシュメモリ）等であってよい。更に、メモリ１８は、他の周辺装置もしくはスレーブ内又は異なる集積回路上に配置されたメモリ又は他のデータ記憶装置であってよい。外部デバッグ回路１４は、プロセッサ１２と同じ集積回路上に含まれてもよく、集積回路又はシステム・オン・チップを含むプロセッサ１２から独立した別個のシステムとして実装されてもよい。
【００１１】
図２は、図１のデータ処理システム１０に関係するプロセッサ１２のブロック図である。プロセッサ１２には、命令パイプ２２、実行ユニット２４、命令フェッチユニット２６、制御回路２８、汎用レジスタ３０、ロード／記憶ユニット３２、バス・インターフェイス・ユニット（ＢＩＵ）３４、及び内部デバッグ回路４０を含み得る。プロセッサ１２は、ＢＩＵ（３４）に結合したバス２０を介して、データ処理システム１０の他の構成要素と通信を行い得る。内部デバッグ回路４０は、図２に示すデバッグポートを介して外部デバッグ処理ユニットに結合してよく、例えば、ＩＥＥＥ  ＩＳＴＯ−５００１準拠のＮｅｘｕｓ（商標）デバッグ処理ユニットに結合してよい。外部デバッグ処理ユニットは、図１の外部デバッグ回路１４の一部又は全部を含むことができる。Ｎｅｘｕｓ（商標）は、テキサス州オースティン所在のフリースケール・セミコンダクタ（Ｆｒｅｅｓｃａｌｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）社の商標である。デバッグポートは、ＪＴＡＧ等のシリアルインターフェイスであってよく、又はパラレルポート、シリアル及びパラレルポートの組合せ、又はイーサネット（登録商標）ポートとして実装してよい。内部デバッグ回路４０には、デバッグレジスタ４２及びデバッグ制御回路４４を含み得る。デバッグレジスタ４２には、命令ブレークポイント、データブレークポイント、ウォッチポイント、及びデバッグ処理に関連する他のメッセージ伝達を含む様々なデバッグ関連イベントを制御するためのフィールドにグループ分けされたビットを含み得る。これらのデバッグ処理資源は、プロセッサ１２と外部デバッグ回路１４との間で共有し得る。
【００１２】
次に、図３において、デバッグレジスタ４２内のレジスタは、更に、命令及び／又はデータアクセスブレークポイント及びウォッチポイントイベント、並びに他のデバッグ制御基準を実現するための１つ又は複数のアドレス比較値、アドレス範囲、及びデータマッチ値を記憶するために提供し得る。これらのアドレス及びデータ値は、様々な制御基準値と共に用いられ、プロセッサ１２が、ブレークポイント又はウォッチポイントイベントを発生させる目的で、１つ又は複数の所定の命令アドレス又はデータアドレスにいつアクセスするか判定される。これによって、内部デバッグモードが有効な場合、プロセッサ１２は、デバッグ例外のための例外処理を開始することができるようになる。あるいは、外部デバッグモードが有効な場合、プロセッサ１２は、デバッグ休止モードに入ることができるようになり、この場合、内部デバッグユニット４０のデバッグポートを通して外部デバッグ回路１４によって提供されたコマンドに応答する。一例として、デバッグレジスタ４２には、デバッグ制御レジスタ４３（ＤＢＣＲ０、ＤＢＣＲ１、ＤＢＣＲ２、ＤＢＣＲ３、及びＤＢＣＲ４）を含む、様々なデバッグ制御レジスタを含んでよい。デバッグレジスタ４２には、更に、命令アドレス比較レジスタ４５（ＩＡＣ１及びＩＡＣ２）を含み得る。命令アドレス比較レジスタ４５は、アドレス比較の目的のために命令アドレスを記憶し得る。デバッグレジスタ４２には、更に、データアドレス比較レジスタ４７（ＤＡＣ１及びＤＡＣ２）を含み得る。データアドレス比較レジスタ４７は、アドレス比較の目的のためにデータアクセスアドレスを記憶し得る。デバッグレジスタ４２には、更に、デバッグ状態レジスタ４９、デバッグカウンタ５１（ＤＢＣＮＴ１及びＤＢＣＮＴ２）、及びデータ値比較レジスタ５３（ＤＶＣ１及びＤＶＣ２）を含み得る。デバッグレジスタ４２は、ユーザのソフトウェア・プログラミング・モデルの一部であってよい。デバッグカウンタ５１は、１つ又は複数の計数割込可能なイベントが発生すると、カウントダウンするように構成し得る。カウント値が０に達すると、デバッグ計測イベントが通知され、割込可能ならば、デバッグ割込を生成し得る。データ値比較レジスタ５３は、データ比較の目的のためにデータ値を記憶し得る。
【００１３】
内部デバッグモードにおいて、これらのレジスタ資源ソフトウェアによって管理され、外部デバッグ回路を用いる必要は無い。ソフトウェアは、ソフトウェアベースのデバッグ処理アクティビティを実行するために個々のデバッグレジスタを初期化するためのソフトウェア命令である、専用レジスタとの間のムーブ（ｍｏｖｅ）命令を用いるデータ移動によってレジスタを構成することができる。この場合、有効化されたデバッグイベントによりソフトウェアデバッグ割込が発生する。このとき、ソフトウェア割込ハンドラが、データ処理システム１０のソフトウェア・プログラマによって決定される様々な所望のアクティビティを実行する。
【００１４】
外部デバッグモードでは、外部デバッグ回路１４にデバッグレジスタ４２の共有デバッグレジスタの所有権を割り当てることができ、そして、設定したデバッグイベントが起こると、プロセッサ１２は、停止状態に入り、外部デバッグ回路１４によって提供される命令を待ち得る。ソフトウェアは、外部デバッグモードが有効なときには、もはや共有デバッグ資源の制御を有しない。更に、図４に示すように、デバッグレジスタ４２には、ＥＤＢＣＲ０及びＥＤＢＣＲ１等の様々な外部デバッグ制御レジスタ５０を含み得る。図３のレジスタとは異なり、図４のレジスタは、デバッグレジスタ４２内又はプロセッサ１２内の他の場所に配置してよいが、ユーザのソフトウェア・プログラミング・モデルの一部ではない。即ち、プロセッサ１２上で実行中のソフトウェアからは、外部デバッグ制御レジスタ５０を見ることができない。外部デバッグ回路１４は、デバッグポート（図２に示す）を介して、共有デバッグ資源及び任意の専用外部デバッグ資源（外部デバッグ制御レジスタ５０等）に直接アクセスし得る。図２のデバッグポートは、例えば、ＪＴＡＧ  ＴＡＰポートとして実現し得る。一実施形態では、デバッグレジスタ４２及び外部デバッグ制御レジスタ５０は、レジスタ選択符号が様々なＪＴＡＧ命令用の１つ又は複数のフィールド内に含まれた状態で、ＪＴＡＧデータレジスタとしてマッピングしてよい。ＪＴＡＧ命令は、ＪＴＡＧ  ＩＲ及びＤＲ動作により、デバッガによるレジスタへの読出及び書込アクセスを備える。
【００１５】
一組のレジスタを共有すると、実装すべきプロセッサ１２の資源が低減され、これにより、データ処理システム１０のユーザ向けのプログラミングモデルを簡素化し得る。内部デバッグ回路４０は、プロセッサ１２内のアクティビティを監視し、デバッグレジスタ４２内又はプロセッサ１２内の他の場所に存在する記憶したデバッグ設定情報に基づく１つ又は複数の所定条件の検出に応じて、１つ又は複数のデータブレークポイントイベントや、命令ブレークポイントイベントや、分岐又はトラップ発生イベント等の命令実行イベントや、命令完了イベント等を生成し得る。この動作の仕方では、プロセッサ１２は、当業者が認識できるように機能する。
【００１６】
図５及び６は、デバッグ通知停止命令の２つの形態を示す。図５に示すデバッグ通知停止（ｄｎｈ）命令では、ｄｎｈ命令の実行は、然るべきデバッグ制御レジスタの所定の制御フィールドによって示すように動作する（外部デバッグモードが有効になっている場合にはＥＤＢＣＲ０であり、外部デバッグモードが有効になっていない場合にはＤＢＣＲ４である。双方共、後述する）。図６は、異なるｄｎｈ２命令のグループを考慮に入れる異なる種類のデバッグ通知停止命令（ｄｎｈ２命令）を示す。即ち、ｄｎｈ２命令には、グループを示すフィールドが含まれる。このグループ識別子は、デバッグ制御フィールド（例えば、グループ制御フィールド）をｄｎｈ２命令に関連付ける。例えば、図６に例示した実施形態では、ｄｎｈ２のグループフィールドは、８つの異なるグループ（グループ０乃至７）のうちの１つを示し得る３ビットフィールドである。そして、ｄｎｈ２命令の実行は、然るべきデバッグ制御レジスタの対応するグループ制御フィールドによって示すように動作する（外部デバッグモードが有効になっている場合にはＥＤＢＣＲ０、外部デバッグモードが有効になっていない場合にはＤＣＢＲ４）。一実施形態では、図１０を参照して後述するように、外部デバッグ制御レジスタ５０内の外部デバッグモードビットフィールドは、プロセッサ１２が外部デバッグモードで動作しているか否かを示すために用いられ、この場合、外部デバッグ回路１４等の外部デバッガは、プロセッサ１２が、外部デバッグモードで動作するか又はしないように、このフィールドをそれぞれ設定又はクリアし得る。一実施形態では、プロセッサ１２が外部デバッグモードで動作していない場合、内部デバッグモードで動作していると見なす。
【００１７】
尚、図５及び６に示すｄｎｈ及びｄｎｈ２命令は、任意の様々な異なるフォーマットを用いることができ、また、オプコード（例えば、ｄｎｈ及びｄｎｈ２命令のビット０乃至５）、サブオプコード（例えば、ｄｎｈ及びｄｎｈ２命令のビット２１乃至３１）、及びグループ識別子（例えば、ｄｎｈ２命令のビット１８乃至２０）に加えて他のフィールドを含んでよい。例えば、図５及び６に示すように、ｄｎｈ及びｄｎｈ２の各命令は、更に、ｄｕｉ及びｄｕｉｓフィールドを含む。例えば、プロセッサ１２がｄｎｈ又はｄｎｈ２命令に応じて停止した場合、ｄｕｉフィールドを外部デバッグ回路へ送信して、停止理由を特定し得る。更に、ｄｕｉｓフィールドを用いて、停止に関する追加情報を伝え得る。
【００１８】
図７は、図１のデータ処理システムに関連するデバッグ制御レジスタＤＢＣＲ４の図である。ＤＢＣＲ４は、内部デバッグユニット４０内に配置し得るデバッグレジスタ４２の一部として含み得る。ＤＢＣＲ４は、デバッグ設定情報を記憶するために用い得る。図７は、特定のフィールドを用いる本発明の特定の実施形態を示すが、本発明の他の実施形態では、各フィールドに異なる数のビットを有する異なるフィールドを用いてよい。図７に示す特定のフィールドは、例示の目的のためだけに示す。一例として、ＤＢＣＲ４は、３２ビットを含み得る。ＤＢＣＲ４は、様々なフィールドを含むことができ、例えば、ＧＲＰ７Ｃ、ＧＲＰ６Ｃ、ＧＲＰ５Ｃ、ＧＲＰ４Ｃ、ＧＲＰ３Ｃ、ＧＲＰ２Ｃ、ＧＲＰ１Ｃ、及びＧＲＰ０Ｃ等の２ビットグループフィールドを含むことができる。これらのフィールドは、代表例に過ぎず、ＤＢＣＲ４は、より多い又は少ないフィールドを含み得る。また、これらのフィールドは、様々に構成し得る。ＤＢＣＲ４は、将来用いるかも知れない予約済みビットフィールド０乃至１５も含み得る。一例として、ＤＢＣＲ４は、ユーザのソフトウェア・プログラミング・モデルの一部である読出／書込可能なレジスタであってよい。本発明の他の実施形態では、ＤＢＣＲ４は、ユーザのソフトウェア・プログラミング・モデル内の制御レジスタでなくてよく、その代わり、ユーザのソフトウェア・プログラミング・モデル外に実装してもよい。任意の種類の記憶回路を用いてＤＢＣＲ４を実装してよい。他の選択肢として、１つ又は複数の他のデバッグ制御レジスタ（デバッグレジスタ４２内など）には、ＤＢＣＲ４ではなくＤＢＣＲ４のグループフィールドを含んでよい。
【００１９】
プロセッサ１２が内部デバッグモードで動作している場合、ＤＢＣＲ４のグループフィールドＧＲＰ１Ｃ乃至ＧＲＰ７Ｃの各々を用いて、対応するグループを示すグループ識別子を備えたｄｎｈ２命令の機能を設定し得る。例えば、グループ３を示すｄｎｈ２命令の動作は、内部デバッグモードの場合、ＧＲＰ３Ｃによって制御される。更に、内部デバッグモードの場合、ＧＲＰ０Ｃを用いて、グループ０を示すｄｎｈ２命令並びにｄｎｈ命令の双方の機能を設定し得る。即ち、一実施形態では、内部デバッグモード中、ｄｎｈ命令がどのように動作すべきかを示すために用いられるＤＢＣＲ４の所定の制御フィールドは、ＧＲＰＣ０である。本例では、どのｄｎｈ命令も既定値としてグループ０を示す（ｄｎｈ２命令と異なり、ｄｎｈ命令自体には、特定のグループを示すフィールドが無いため）。他の選択肢として、ｄｎｈ命令がどのように動作すべきかを示すために用いられるＤＢＣＲ４の所定の制御フィールドは、ＧＲＰ０Ｃ乃至ＧＲＰ７Ｃのうちのいずれか１つであってよい。
【００２０】
図８は、図７のＤＢＣＲ４の一部の機能を表形式で示す。ＧＲＰ７Ｃは、一実施形態に基づき、どのようにグループ７のｄｎｈ２命令（即ち、グループ７を示すｄｎｈ２命令）が動作すべきであるかを示すために用いられる２ビットフィールドである。例えば、２進数の値００は、グループ７のｄｎｈ２命令が、デバッグ命令例外を生成する（従って、デバッグ割込処理が開始される）ことを示し得る。デバッグ命令例外は、ソフトウェア割込を招き、従って、ｄｎｈ２命令（又はｄｎｈ命令）の結果として生成されたデバッグ命令例外は、ソフトウェアデバッグ割込とも称し得る。２進数の値０１が示し得ることは、グループ７のｄｎｈ２命令が、ＮＯＰとして扱われることである（この場合、ＮＯＰは、当分野で公知なように、様々な方法で動作又は実現し得る）。例示した実施形態では、２進数の値１０及び１１は、将来使用する可能性に備えて予約される。他の実施形態では、ＧＲＰ７Ｃに単一ビットを用いて、グループ７のｄｎｈ２命令がソフトウェア割込を生成するか又はＮＯＰとして扱われるか示し得る。ＧＲＰ６Ｃ乃至ＧＲＰ１Ｃも、２ビットフィールドであり、それらの説明は、それらそれぞれのグループのｄｎｈ２命令についてのものであること以外は、ＧＲＰ７Ｃについて行ったものと同じである。ＧＲＰ０Ｃは、２ビットフィールドであり、一実施形態において、ｄｎｈ及びグループ０のｄｎｈ２命令の双方がどのように動作すべきであるか示すために用いられる。例えば、２進数の値００は、グループ０のｄｎｈ２命令並びに全てのｄｎｈ命令が、デバッグ命令例外（即ち、ソフトウェア割込）を生成することを示し得る。２進数の値０１は、グループ０のｄｎｈ２命令並びに全てのｄｎｈ命令が、ＮＯＰとして扱われることを示し得る。例示した実施形態では、２進数の値１０及び１１は、将来使用する可能性に備えて予約される。他の実施形態では、単一のビットをＧＲＰ０Ｃに用いて、ｄｎｈ命令及びグループ０のｄｎｈ２命令がソフトウェア割込を生成するか又はＮＯＰとして扱われるか示し得る。一実施形態では、ｄｎｈ又はｄｎｈ２命令をＮＯＰとして実行するのではなく、これらの命令の命令実行を抑制し得るが、これにより、フェッチされて部分的に復号されるようなことがあっても、目に見える形で実行されない。
【００２１】
図９は、一実施形態に基づく、図１のデータ処理システムに関連する外部デバッグ制御レジスタＥＤＢＣＲ０の図である。ＥＤＢＣＲ０は、外部デバッグレジスタ５０の一部として含んでよく、外部デバッグレジスタ５０は、内部デバッグユニット４０内のデバッグ制御レジスタ４２の一部であってもなくてもよいが、プロセッサ１２上で実行しているソフトウェアによってアクセス可能ではない。ＥＤＢＣＲ０を用いると、外部デバッグモード中に使用するデバッグ設定情報を記憶し得る。図９は、特定のフィールドを用いる本発明の特定の実施形態を示すが、本発明の他の実施形態では、各フィールドに異なる数のビットを有する異なるフィールドを用いてよい。図９に示す特定のフィールドは、例示の目的のためだけに示す。一例として、ＥＤＢＣＲ０は、３２ビットを含み得る。ＥＤＢＣＲ０は、様々なフィールドを含むことができ、例えば、ＥＤＭビットフィールド、ＤＮＨ＿ＥＮビットフィールド、並びにＧＲＰ７Ｃ、ＧＲＰ６Ｃ、ＧＲＰ５Ｃ、ＧＲＰ４Ｃ、ＧＲＰ３Ｃ、ＧＲＰ２Ｃ、ＧＲＰ１Ｃ、及びＧＲＰ０Ｃ等の２ビットグループフィールドを含み得る。これらのフィールドは、単なる代表例に過ぎず、ＥＤＢＣＲ０は、より少ない又は更に多くのフィールドを含み得る。更に、これらのフィールドは、様々に構成し得る。ＥＤＢＣＲ０は、更に、将来用い得る予約済みビットフィールド２乃至１５を含み得る。一例として、ＥＤＢＣＲ０は、デバッグポートを介して外部デバッグ回路によってのみ書込可能なレジスタであってよく、ここで、外部デバッグ回路は、プロセッサ１２の外部に配置されるが、プロセッサ１２と同じ又は異なる集積回路上に配置されてもよい。一例として、ＥＤＢＣＲ０は、ユーザのソフトウェア・プログラミング・モデル内の制御レジスタではない。プロセッサ１２の内部又は外部に配置した任意の種類の記憶回路を用いて、ＥＤＢＣＲ０を実現してよい。他の選択肢として、１つ又は複数の他の外部デバッグ制御レジスタ（外部デバッグ制御レジスタ５０内など）には、ＥＤＢＣＲ０ではなくＥＤＢＣＲ０の１つ又は複数のフィールドを含み得る。
【００２２】
図１０は、一実施形態に基づき、図９のＥＤＢＣＲ０の一部の機能を表形式で示す。ＥＤＭは、外部デバッグモードが有効か無効かを示すために用いられるビットフィールドである。一実施形態では、外部デバッグモードが無効である場合、内部デバッグモードが有効であると見なす。（他の選択肢として、内部デバッグモード用の別個の有効化フィールドを、例えば、ＤＢＣＲ０内などで用い得る。）一例において、ＥＤＭフィールドが設定された（例えば、２進数の値１を有する）場合、プロセッサ１２は、外部デバッグモードで動作し、また、ＥＤＭフィールドがクリアされた（例えば、２進数の値０を有する）場合、プロセッサ１２は、内部デバッグモードで動作する。ＥＤＭビット５２が１に設定される場合、例えば、ＤＢＣＲ４等の制御レジスタは、外部デバッグ回路１４の排他的な制御下に置かれ、データ処理システム１０のソフトウェアは、これらの制御レジスタに情報を書き出せない。他の選択肢として、ＥＤＭビット５２が１に設定される場合、ソフトウェアは、デバッグ制御レジスタの特定部分に書き出せない。ＤＮＨ＿ＥＮは、ＤＢＣＲ４のグループフィールド又はＥＤＢＣＲ０のグループフィールドを用いて、ｄｎｈ及びｄｎｈ２命令の動作を示そうとしているかどうかを表す有効化フィールドである。即ち、プロセッサ１２が外部デバッグモードで動作していても、ＤＮＨ＿ＥＮをクリアして、ｄｎｈ及びｄｎｈ２命令の動作を示すために、ＥＤＢＣＲ０でなくＤＢＣＲ４のグループ設定を用いるべきであることを示し得る（この場合、一実施形態では、ＤＢＣＲ４のＧＲＰ０Ｃ設定は、ｄｎｈ命令に用いられ、また、各ｄｎｈ２命令自体によって示されたグループに対応するＤＢＣＲ４のグループ設定は、そのｄｎｈ２命令に用いられる）。しかしながら、ＤＮＨ＿ＥＮが設定された場合、ｄｎｈ及びｄｎｈ２命令は、ＥＤＢＣＲ０の然るべきグループフィールドによって示されるように動作する。
【００２３】
引き続き図１０において、ＧＲＰ７Ｃは、グループ７のｄｎｈ２命令（即ち、グループ７を示すｄｎｈ２命令）がどのように動作すべきであるかを示すために用いられる２ビットフィールドである。例えば、２進数の値００は、グループ７のｄｎｈ２命令がＮＯＰとして扱われることを示し得る（この場合、ＮＯＰは、当分野で公知なように、様々な方法で動作又は実現し得る）。２進数の値０１は、グループ７のｄｎｈ２命令により、プロセッサが停止してデバッグモードに入ることを示し得る。例えば、プロセッサ停止の際に、制御は、プロセッサ１２から外部デバッグ回路１４等の外部デバッガに移され、デバッグ動作を実施し、デバッグポートを介してプロセッサ１２にアクセスする。従って、デバッグモードに入ると、命令フェッチユニット２６は、通常の命令フェッチを停止し得る。２進数の値１０は、グループ７のｄｎｈ２命令によりウォッチポイントを信号で通知することを示し得る。２進数の値１１は、グループ７のｄｎｈ２命令により、プロセッサが停止してデバッグモードに入ること、また、更にウォッチポイントを信号で通知することを示し得る。尚、他の実施形態では、異なるビット値の符号を用いて、グループ７のｄｎｈ命令の動作を表し得る。ＧＲＰ６Ｃ乃至ＧＲＰ１Ｃも、２ビットフィールドであり、それらの説明は、それらそれぞれのグループのｄｎｈ２命令についてのものであること以外は、ＧＲＰ７Ｃについて行ったものと同じである。ＧＲＰ０Ｃは、ｄｎｈ２及びｄｎｈ命令の双方がどのように動作すべきであるか示すために用いられる２ビットフィールドである。即ち、一実施形態では、ＧＲＰ０Ｃは、どのようにｄｎｈ命令が動作すべきかを示すために用いられるＥＤＢＣＲ０の所定の制御フィールドである。例えば、２進数の値００は、グループ０のｄｎｈ２命令並びに全てのｄｎｈ命令がＮＯＰとして扱われることを示し得る。２進数の値０１は、グループ０のｄｎｈ２命令並びに全てのｄｎｈ命令により、プロセッサが停止してデバッグモードに入ることを示し得る。２進数の値１０は、グループ７のｄｎｈ２命令並びにｄｎｈ命令により、ウォッチポイントを信号で通知することを示し得る。２進数の値１１は、グループ７のｄｎｈ２命令並びにｄｎｈ命令により、プロセッサが停止してデバッグモードに入ること、また、更に、ウォッチポイントを信号で通知することを示し得る。他の選択肢として、ｄｎｈ命令がどのように動作すべきかを示すために用いられるＥＤＢＣＲ０の所定の制御フィールドは、ＧＲＰ０Ｃ乃至ＧＲＰ７Ｃのいずれか１つであってよい。
【００２４】
従って、外部デバッグモードであってＤＮＨ＿ＥＮが設定されている場合、ＥＤＢＣＲ０のグループフィールドＧＲＰ０Ｃ乃至ＧＲＰ７Ｃの各々は、対応するグループを示すｄｎｈ２命令の機能を設定するために用い得る。例えば、グループ３を示すｄｎｈ２命令の動作は、外部デバッグモードにおいて且つＤＮＨ＿ＥＮが設定されている場合、ＥＤＢＣＲ０のＧＲＰ３Ｃによって制御される。（尚、グループ３を示すｄｎｈ２命令の動作は、外部デバッグモードにおいて且つＤＮＨ＿ＥＮがクリアされている場合、ＤＢＣＲ４のＧＲＰ３Ｃによって制御される。）更に、外部デバッグモードであって且つＤＮＨ＿ＥＮが設定されている場合、ＥＤＢＣＲ０のＧＲＰ０Ｃは、グループ０を示すｄｎｈ２命令並びにｄｎｈ命令の双方の機能を設定するために用い得る。即ち、一実施形態では、ＤＮＨ＿ＥＮが設定されている場合、外部デバッグモード中に、ｄｎｈ命令がどのように動作すべきであるかを示すために用いられるＥＤＢＣＲ０の所定の制御フィールドは、ＧＲＰＣ０である。本例では、どのｄｎｈ命令も、既定値としてグループ０を示す（ｄｎｈ２命令と異なり、ｄｎｈ命令自体には、特定のグループを示すフィールドが無いため）。しかし、外部デバッグモードにおいて且つＤＮＨ＿ＥＮがクリアされている場合、ＤＢＣＲ４のＧＲＰ０Ｃを代わりに用いて、グループ０を示すｄｎｈ２命令並びにｄｎｈ命令の双方の機能を設定してよい。従って、外部デバッグモード中、ｄｎｈ命令がどのように動作すべきかを示すために用いられる所定の制御フィールドは、ＤＮＨ＿ＥＮに依存することがあり、この場合、ＤＮＨ＿ＥＮの値に応じて、ＤＢＣＲ４又はＥＤＢＣＲ０のＧＲＰ０Ｃ設定を所定の制御フィールドとして用い得ることに留意されたい。しかしながら、他の実施形態では、ＤＮＨ＿ＥＮは、用いなくてもよく又は無くてもよい。本実施形態では、外部デバッグモード時、ＥＤＢＣＲ０の（ＤＢＣＲ４でない）然るべきグループフィールドだけで、ｄｎｈ及びｄｎｈ２命令がどのように動作すべきかを示す。
【００２５】
従って、ｄｎｈ及びｄｎｈ２命令の各々は、デバッグ動作を実施可能であり、又は各命令をＮＯＰとして扱われることが可能であり、この場合、デバッグ動作を実施しないことに留意されたい。一実施形態では、ｄｎｈ又はｄｎｈ２命令をＮＯＰとして実行するのではなく、これらの命令の実行を抑制し得るが、これにより、これらの命令は、フェッチされて部分的に復号されるようなことがあっても、目に見える形で実行されない（また、従って、デバッグ動作が実施されない）。本明細書に用いるデバッグ動作には、例えば、プロセッサを停止してデバッグモードに入らせる工程、ウォッチポイントを信号で通知させる工程、ソフトウェアデバッグ割込を生成する工程等が含まれる。一実施形態では、ウォッチポイントを信号で通知することにより、ブレークポイント又はデバッグ停止状態を起こすのではなく、プロセッサ１２は、プロセッサ１２の外部又は内部のウォッチポイント条件が１つ又は複数発生したことを通知し得る。上述した例では、プロセッサを停止してデバッグ動作に入らせる工程、並びにウォッチポイントを信号で通知させる工程等のデバッグ動作は、外部デバッグモード中に起こり、一方、ソフトウェアデバッグ割込を生成する工程は、外部又は内部デバッグモード時のいずれでも、例えば、ＤＮＨ＿ＥＮに基づいて起こり得る。他の選択肢として、他のデバッグ動作は、内部又は外部デバッグモードのいずれかについて、ＤＢＣＲ４及びＥＤＢＣＲ０のグループフィールドによって定義し得る。しかしながら、然るべきデバッグ制御レジスタ（例えば、ＤＢＣＲ４又はＥＤＢＣＲ０等）のグループフィールド設定に応じて、ｄｎｈ又はｄｎｈ２命令は、デバッグ動作を実施するのではなく、ＮＯＰとして扱われることができる（又は実行を抑制してよい）。即ち、然るべきデバッグ制御レジスタのグループフィールド設定に応じて、ｄｎｈ又はｄｎｈ２命令は、ｄｎｈ又はｄｎｈ２命令として実行するか（従って、デバッグ動作を実施するか）又はＮＯＰとして実行できる。上述したように、ＮＯＰは、当分野で公知なように実施し得る。しかしながら、本明細書で用いるＮＯＰは、デバッグ動作を実施しないことに留意されたい。即ち、ＮＯＰは、デバッグ動作を実施させない。更に、（デバッグ動作を実施する）デバッグ命令としてではなくＮＯＰとしてデバッグ命令を実行する能力又はデバッグ命令をグループ化する能力は、任意の種類のデバッグ命令に適用でき、ｄｎｈ及びｄｎｈ２等のデバッグ通知停止命令のみに限定されないことに留意されたい。一実施形態では、命令の実行を行わないことがあり、代わりに、然るべきデバッグ制御レジスタ（例えば、ＤＢＣＲ４又はＥＤＢＣＲ０等）のグループフィールド設定に応じて、ｄｎｈ又はｄｎｈ２命令の実行は、プロセッサ１２の実行段階を進むのではなく、抑制できる。
【００２６】
一実施形態では、ｄｎｈ及びｄｎｈ２命令等のデバッグ命令をＮＯＰとして扱う能力は、デバッグ動作を抑制する能力を可能にする。従って、これにより、割込又は他のデバッグ動作を生じることなく、デバッグ命令を最終コード中に残すことができる。このようにして、コードイメージは、変えずにそのままにしておける。例えば、図１２は、グループ０を示すｄｎｈ２命令及びｄｎｈ命令（既定値はグループ０）が含まれるコードセグメント７０を示す。これらの命令は、コードセグメント７０をデバッグするためには必要であったかもしれないが、コードセグメント７０を最終決定する際、これらの命令を除去すると、コードセグメント７０のコードイメージが望ましくない方向に変わることがあり、この場合、例えば、ページ境界（水平の点線によって示す）、分岐、及び（例えば、その対象位置を矢印が指す分岐命令によって示す）分岐先の命令位置が、残りの命令に対して変わる。ＤＢＣＲ４のＧＲＰ０Ｃフィールドを０１に設定することによって、コードセグメント７０のｄｎｈ及びｄｎｈ２命令は、ＮＯＰとして動作し、これにより、デバッグ命令例外が起こらない（割込が起こらない）。更に、図１３に示す新しいコードセグメント７２をデバッグしつつ、コードセグメント７０を最終決定することが望ましいことがある。従って、新しいコードセグメント７２には、グループ１及び２を示すｄｎｈ２命令が含まれることに留意されたい。尚、これらのｄｎｈ２命令は、グループ０を示さないことから、ＧＲＰ０Ｃ設定によって影響されない。このようにして、ｄｎｈ２命令は、独立して制御され、従って、コードセグメント７０のｄｎｈ２及びｄｎｈ命令とは異なるように動作し得る。従って、ｄｎｈ２命令のグループ化は、様々な異なる方法に用いることができる。更に、本明細書に説明する「グループ化」（即ち、１つ又は複数のデバッグ制御レジスタ内でのグループフィールドの使用）は、任意のデバッグ命令に用いることができ、デバッグ通知停止命令のみに限定されない。
【００２７】
図１１は、本発明の一実施形態に基づく、プロセッサ１２内の制御回路２８の一部を示す。制御回路２８は、復号回路６０及びデバッグ実行制御回路６２を含む。復号回路６０は、命令フェッチユニット２６から情報を受信するように結合され、また、デバッグ実行制御回路６２に情報を提供するように結合される。デバッグ実行制御回路６２は、更に、必要に応じて、デバッグレジスタ４２から情報を受信し、プロセッサ１２の一部に制御信号を提供する。
【００２８】
動作時、現在実行している命令又は実行される命令に関する情報は、命令フェッチユニット２６から復号回路６０に提供される。この情報は、例えば、実行すべきｄｎｈ２命令の表示を含み得る。そして、復号回路６０は、この命令を復号してデバッグ実行制御回路６２に然るべき情報を提供する。例えば、復号回路６０は、ｄｎｈ２命令のグループフィールドをデバッグ実行制御回路に送り得る。デバッグ実行制御回路は、このグループフィールドの値を用いて、デバッグレジスタ４２の然るべきデバッグ制御レジスタ（例えば、ＥＤＭ及びＤＮＨ＿ＥＮの値に応じて、ＤＢＣＲ４又はＥＤＢＣＲ０）の対応するグループ制御フィールドにアクセスする。その結果に基づき、デバッグ実行制御回路６２は、必要に応じて、プロセッサ１２の一部に然るべき制御信号を提供して、デバッグレジスタ４２からの情報によって示されたｄｎｈ２命令用の然るべき機能を実現することができる。例えば、デバッグ動作が示された場合、当分野で公知なように、然るべき制御信号がそれに応じて提供され、あるいは、ＮＯＰが示された場合、当分野で公知なように、然るべき制御信号が、それに応じて提供される。更に、命令の実行を抑制しようとする場合、当分野で公知なように、然るべき制御信号が、それに応じて提供される。従って、デバッグ実行制御回路６２は、然るべきデバッグ制御レジスタの対応するグループ制御フィールドに記憶した値に基づき、第１の手法又は第２の手法で、ｄｎｈ又はｄｎｈ２命令等のデバッグ命令の実行を制御できることに留意されたい。一例では、第１の手法では、デバッグ動作を実施し、第２の手法では、デバッグ動作を実施しない。
【００２９】
従って、現段階で、デバッグ命令に対応するデバッグ動作をどのように抑制できるか理解されたであろう。例えば、デバッグ命令は、デバッグ動作を実施させるのではなく、実行時、ＮＯＰとして扱われ得る。このようにして、デバッグ命令は、必要に応じて、ソフトウェア割込を生じることなく、コードのセグメント内に残すことができ、これにより、コードを適切に実行し得る。即ち、通常、一旦コードが最終決定されると、ｄｎｈ命令は、コード内に残っている場合、常にデバッグ割込を生成する。これらのｄｎｈ命令は、従って、適切なコード機能のために除去しなければならなかった。しかしながら、本明細書に述べた少なくとも一つの実施形態では、デバッグ命令にデバッグ動作を実施させるか又はデバッグ動作を実施させないようにする追加の制御を含むことによって（例えば、ＮＯＰとして処理又は実行を抑制することによって）、コード実行中のデバッグ割込の抑制が可能になる。
【００３０】
一実施形態の方法には、デバッグ命令を提供する工程と、デバッグ制御レジスタフィールドを提供する工程とが含まれる。ここで、デバッグ制御レジスタフィールドが第１の値を有する場合、デバッグ命令は、デバッグ動作を実行し、デバッグ制御レジスタフィールドが第２の値を有する場合、デバッグ命令は、ノーオペレーション（ＮＯＰ）命令として実行される。
【００３１】
更なる実施形態では、デバッグ制御レジスタフィールドが第２の値を有する場合、ＮＯＰ命令が、デバッグ割込の代わりに実行される。
他の更なる実施形態では、デバッグ制御レジスタフィールドが第１の値を有する場合、デバッグ命令を実行すると、デバッグモードに入る。
【００３２】
他の更なる実施形態では、デバッグ制御レジスタフィールドが第１の値を有する場合、デバッグ命令を実行すると、プロセッサが停止する。
他の更なる実施形態では、集積回路外部のデバッガは、デバッグ制御レジスタフィールドへの書込アクセスが可能であり、集積回路上のプロセッサは、デバッグ制御レジスタフィールドへの書込アクセスが不可能である。
【００３３】
他の更なる実施形態では、集積回路外部のデバッガは、デバッグ制御レジスタフィールドへの書込アクセスが不可能であり、集積回路上のプロセッサは、デバッグ制御レジスタフィールドへの書込アクセスが可能である。
【００３４】
他の更なる実施形態では、集積回路上のプロセッサの外部にあるデバッガは、デバッグ制御レジスタフィールドへの書込アクセスが可能であり、集積回路上のプロセッサは、デバッグ制御レジスタフィールドへの書込アクセスが不可能である。
【００３５】
他の更なる実施形態では、デバッグ命令には、複数のデバッグ命令グループの１つを示すグループフィールドが含まれる。更に他の実施形態では、デバッグ制御レジスタフィールドは、複数のデバッグ制御レジスタフィールド部を含み、ここで、各デバッグ制御レジスタフィールド部は、複数のデバッグ命令グループの１つに対応する。
【００３６】
他の実施形態の方法には、第１デバッグ命令を提供する工程と、第１デバッグ命令においてグループ番号を示すフィールドを提供する工程と、複数のデバッグ制御レジスタフィールドを提供する工程と、が含まれる。ここで、グループ番号は、複数のデバッグ制御レジスタフィールドのうちの第１のフィールドを第１デバッグ命令と関連付ける。複数のデバッグ制御レジスタフィールドのうちの第１のフィールドが第１の値を有する場合、第１デバッグ命令は、第１デバッグ命令として実行されるものとし、複数のデバッグ制御レジスタフィールドのうちの第１のフィールドが第２の値を有する場合、第１デバッグ命令は、ノーオペレーション（ＮＯＰ）命令として実行されるものとする。本方法は、更に、第２デバッグ命令を提供する工程を含む。ここで、第２デバッグ命令は、グループ番号を示すフィールドを有さず、複数のデバッグ制御レジスタフィールドのうちの第２のフィールドは、第２デバッグ命令と関連付けられる。複数のデバッグ制御レジスタフィールドのうちの第２のフィールドが第１の値を有する場合、第２デバッグ命令は、第２デバッグ命令として実行されるものとし、複数のデバッグ制御レジスタフィールドのうちの第２のフィールドが第２の値を有する場合、第２デバッグ命令は、ＮＯＰ動作命令として実行されるものとする。
【００３７】
上記他の実施形態の更なる実施形態では、第１デバッグ命令は、第２デバッグ命令と異なる。
上記他の実施形態の更に他の実施形態では、複数のデバッグ制御レジスタフィールドのうちの第１のフィールド及び複数のデバッグ制御レジスタフィールドのうちの第２のフィールドは、複数のデバッグ制御レジスタフィールドのうちの同じフィールドである。
【００３８】
上記他の実施形態の更に他の実施形態では、複数のデバッグ制御レジスタフィールドのうちの第１のフィールド及び複数のデバッグ制御レジスタフィールドのうちの第２のフィールドは、複数のデバッグ制御レジスタフィールドのうちの異なるフィールドである。
【００３９】
上記他の実施形態の更に他の実施形態では、複数のデバッグ制御レジスタフィールドのうちの第１のフィールドが第１の値を有する場合、第１デバッグ命令を実行すると、デバッグモードに入り、複数のデバッグ制御レジスタフィールドのうちの第２のフィールドが第１の値を有する場合、第２デバッグ命令を実行すると、デバッグモードに入る。
【００４０】
上記他の実施形態の更に他の実施形態において、複数のデバッグ制御レジスタフィールドのうちの第１のフィールドが第１の値を有する場合、第１デバッグ命令を実行すると、プロセッサが停止し、複数のデバッグ制御レジスタフィールドのうちの第２のフィールドが第１の値を有する場合、第２デバッグ命令を実行すると、プロセッサが停止する。
【００４１】
一実施形態に基づくデータ処理システムには、デバッグ命令を受信するための命令フェッチ回路と、デバッグ制御レジスタフィールドと、命令フェッチ回路及びデバッグ制御レジスタフィールドに結合されたデバッグ実行制御回路と、が含まれる。デバッグ実行制御回路は、デバッグ制御レジスタフィールドが第１の値を有する場合、第１の手法でデバッグ命令の実行を制御する。また、デバッグ実行制御回路は、デバッグ制御レジスタフィールドが第２の値を有する場合、第２の手法でデバッグ命令の実行を制御する。ここで、第１の手法では、デバッグ動作を実施し、第２の手法では、デバッグ動作を実施しない。
【００４２】
データ処理システムの更なる実施形態では、デバッグ制御レジスタフィールドが第１の値を有する場合、デバッグ命令を実行すると、デバッグモードに入る。
データ処理システムの他の更なる実施形態では、デバッグ制御レジスタフィールドが第１の値を有する場合、デバッグ命令を実行すると、デバッグ割込処理が開始される。
【００４３】
データ処理システムの他の更なる実施形態では、デバッグ制御レジスタフィールドが第１の値を有する場合、デバッグ命令を実行すると、命令フェッチ回路は、通常の命令フェッチを停止する。
【００４４】
データ処理システムの他の更なる実施形態では、デバッグ命令には、複数のデバッグ命令グループのうちの１つを示すグループフィールドが含まれる。ここで、複数のデバッグ命令グループのうちの１つは、複数のデバッグ制御レジスタフィールドの中からデバッグ制御レジスタフィールドを選択する。
【００４５】
本発明を実装する装置は、ほとんど当業者には既知の電子部品や回路から構成されるため、回路の詳細については、本発明の根底にある概念の理解や認識のために、また、本発明の教示内容が不明瞭になったり注意が逸れたりしないように、上述した如く必要と思われる以上の説明はしない。
【００４６】
本明細書に用いる用語「プログラム」は、コンピュータシステム上での実行用に設計された一連の命令と定義する。プログラム、即ち、コンピュータプログラムには、サブルーチン、関数、手順、オブジェクト・メソッド、オブジェクト実装、実行可能なアプリケーション、アプレット、サーブレット、ソースコード、オブジェクトコード、共有ライブラリ／動的読込ライブラリ、及び／又はコンピュータシステム上での実行用に設計された他の一連の命令を含み得る。
【００４７】
上述した実施形態の一部は、適用可能であれば、様々な異なる情報処理システムを用いて実現し得る。例えば、図１及び図２並びにそれらについての説明では、代表的な情報処理構成について述べるが、この代表的な構成は、本発明の様々な態様の説明において有用な基準を提供するためだけに示している。勿論、構成の説明は、説明のために簡素化しており、また、この構成は、本発明に基づいて用い得る多くの異なる種類の適切な構成の内の１つに過ぎない。当業者は、論理ブロック間の境界は、説明のためだけであり、他の実施形態では、論理ブロック又は回路素子を併合したり、様々な論理ブロック又は回路素子に機能を分解して代替させたりしてよいことを認識されるであろう。
【００４８】
従って、本明細書に示した構成は代表例に過ぎず、実際には、同じ機能を実現する任意の他の構成を実装し得ることを理解されたい。抽象的ではあるが明確に、同じ機能を達成する構成要素の任意の構成は、所望の機能を達成するように有効に「関連付けられる」。従って、本明細書において特定の機能を達成するために組み合わせた任意の２つの構成要素は、構成又は中間構成要素にかかわらず、所望の機能を達成するように互いに「関連付けられている」と理解し得る。同様に、そのように関連付けた任意の２つの構成要素は、所望の機能を達成するために互いに「動作可能に接続された」又は「動作可能に結合された」とも見なし得る。
【００４９】
更に、例えば、一実施形態では、システム１０の図示した要素は、単一の集積回路上又は同一装置内に配置された回路である。他の選択肢として、システム１０には、相互接続された任意の数の別個の集積回路又は別個の装置を含み得る。更に、例えば、システム１０又はその一部は、物理的な回路又は物理的な回路に転換可能な論理表現のソフト又はコード表現であってよい。このように、システム１０は、任意の適切な種類のハードウェア記述言語で具現化し得る。
【００５０】
更に、当業者は、上述した動作の機能間の境界は、単なる例示であることを認識されるであろう。複数動作の機能は、単一動作に集約してもよく、及び／又は単一動作の機能は、追加の動作に分散してもよい。更に、他の実施形態には、特定の動作の複数のインスタンスを含んでもよく、動作順序は、様々な他の実施形態では、変更してもよい。
【００５１】
本明細書に述べたソフトウェアの全て又は一部は、データ処理システム１０の受信される要素であってよく、例えば、メモリ１８等のコンピュータ判読可能媒体又は他のコンピュータシステム上の他の媒体から受信し得る。そのようなコンピュータ判読可能媒体は、データ処理システム１０等の情報処理システムに、恒久的に、着脱可能に、又は遠隔的に結合してよい。コンピュータ判読可能媒体には、例えば、これらに限定するものではないが、ほんの一例を挙げると、ディスク及びテープ記憶媒体を含む磁気記憶媒体と、コンパクトディスク媒体（例えば、ＣＤ−ＲＯＭ、ＣＤ−Ｒ等）及びデジタル映像ディスク記憶媒体等の光学記憶媒体と、ＦＬＡＳＨメモリ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、ＲＯＭ等の半導体ベースのメモリユニットを含む不揮発性メモリ記憶媒体と、強磁性デジタルメモリと、ＭＲＡＭと、レジスタ、バッファ又はキャッシュ、主記憶装置、ＲＡＭ等を含む揮発性記憶媒体と、コンピュータネットワーク、二地点間電気通信設備、及び搬送波伝送媒体を含むデータ伝送媒体と、の内から任意の数のものを含んでよい。
【００５２】
本発明について、本明細書では特定の実施形態を参照して述べたが、様々な修正や変更は、以下の請求項に記載した本発明の範囲から逸脱することなく行い得る。従って、明細書及び図は、限定的であるというよりもむしろ例示であると解釈すべきであり、また、そのような全ての修正は、本発明の範囲内に含まれるものとする。本明細書において具体的な実施形態に関して述べたあらゆる恩恵、利点、又は問題に対する解決策も、全ての請求項の不可欠、必須、又は本質的な特徴もしくは要素であると解釈しようとするものではない。
【００５３】
本明細書に用いた用語「結合された」は、直接結合又は機械的結合に限定するものではない。
更に、本明細書に用いた用語「ａ又はａｎ（不定冠詞）」は、１つ又は２つ以上と定義する。更に、請求項において「少なくとも１つの」及び「１つ又は複数の」等の導入節を用いることは、不定冠詞「ａ」又は「ａｎ」による他の請求項要素の導入が、同じ請求項に導入節「１つ又は複数の」又は「少なくとも１つの」及び「ａ」又は「ａｎ」等の不定冠詞が含まれる場合でも、そのように導入した請求項要素を含む任意の特定の請求項を、そのような要素を１つだけ含む発明に限定することを意味すると解釈すべきではない。同じことは、定冠詞の使用にも当てはまる。
【００５４】
特に明記しない限り、「第１」及び「第２」等の用語は、そのような用語が述べる要素間を任意に区別するために用いる。従って、これらの用語は、必ずしもそのような要素の時間的な又は他の優先順位付けを示そうとするものではない。
【図１】
2011501265.tif 000003
【図２】
2011501265.tif 000004
【図３】
2011501265.tif 000005
【図４】
2011501265.tif 000006
【図５】
2011501265.tif 000007
【図６】
2011501265.tif 000008
【図７】
2011501265.tif 000009
【図８】
2011501265.tif 000010
【図９】
2011501265.tif 000011
【図１０】
2011501265.tif 000012
【図１１】
2011501265.tif 000013
【図１２】
2011501265.tif 000014
【図１３】
2011501265.tif 000015
【国際調査報告】
2011501265.tif 000016
2011501265.tif 000017