プログラム命令の実行に応じてデータ処理動作を実施するためのデータ処理回路であって、少なくとも動作モードおよびデバッグモードで動作するように構成される、データ処理回路と、前記データ処理回路と前記データ処理回路の外部のデバッガユニットとの間にインターフェースを設けるように構成されるデバッグ回路であって、前記データ処理回路が前記デバッグモードで動作しているときに、前記データ処理回路の動作を制御するように構成される、デバッグ回路と、を備える、データ処理装置であって、前記データ処理回路が前記デバッグモードに入ったときに、前記データ処理装置の現在の動作状態を判定し、現在の前記動作状態に応じて、複数の命令セットのうちの1つをデバッグ命令セットとして使用するように割り当てるように、前記データ処理回路が構成される、データ処理装置。前記データ処理回路が、前記デバッガユニットに対して、前記データ処理回路を制御するために使用される割り当てられた前記デバッグ命令セットを表示するように構成される、請求項1に記載のデータ処理装置。前記データ処理回路が、複数の特権レベルで動作するように構成可能であり、異なる特権レベルにおいて、前記データ処理回路は、メモリおよびレジスタセットのうちの少なくとも1つに対する異なるアクセス許可をプログラム命令に与える、請求項1に記載のデータ処理装置。前記特権レベルの異なるレベルにおいて、前記データ処理回路は各々異なる仮想メモリアドレスから物理メモリアドレスへの変換規則を適用する、請求項3に記載のデータ処理装置。複数の前記特権レベルの各々に対応する、複数の異なるソフトウェア階層レベルに対応するプログラム命令を実行するように構成される、請求項3または4に記載のデータ処理装置。複数の前記特権レベルのうちの第1のレベルはアプリケーション層に対応し、複数の前記特権レベルのうちの第2のレベルは動作システム層に対応する、請求項5に記載のデータ処理装置。複数の前記特権レベルのうちの第3のレベルはハイパーバイザ層に対応する、請求項6に記載のデータ処理装置。更なる特権レベルがセキュリティ監視層に対応する、請求項6または7に記載のデータ処理装置。複数の前記特権レベルの異なるレベルの間での切り換え時に、前記データ処理回路は、更新されたデバッグ命令セットを生成し、更新された前記デバッグ命令セットを前記デバッガユニットへ表示するために、現在の前記動作状態および前記デバッグ命令セットの前記判定を繰り返すように構成される、請求項3~8のいずれか一項に記載のデータ処理装置。現在の前記動作状態は、各々異なるオペランドビット幅を有する複数の異なるプロセッサ動作状態から選択される、請求項1~9のいずれか一項に記載のデータ処理装置。複数の前記動作状態は、少なくとも32ビット動作状態および64ビット動作状態を含む、請求項10に記載のデータ処理装置。前記プログラム命令のオペランドを記憶するための複数のレジスタを備えるデータ処理装置であって、異なる前記オペランドビット幅は、前記データ処理回路によって使用される異なるレジスタ幅に対応する、請求項10または11に記載のデータ処理装置。複数の前記レジスタの少なくとも1つのサブセットは可変幅レジスタとして構成される、請求項12に記載のデータ処理装置。前記データ処理回路は、前記デバッガユニットへアクセス可能な少なくとも1つのレジスタへ書き込むことによって、前記デバッガユニットへ前記デバッグ命令セットを表示するように構成される、請求項2~13のいずれか一項に記載のデータ処理装置。前記データ処理回路は、前記デバッガユニットへ制御コマンドを送信することによって、前記デバッガユニットへ設定された前記デバッグ命令セットを表示するように構成される、請求項2に記載のデータ処理装置。前記デバッガユニットにとってアクセス可能な所与の位置に、現在の前記動作状態の記憶された値を維持するように構成される、請求項1~15のいずれか一項に記載のデータ処理装置。現在の前記動作状態は各々のオペランドビット幅を有する複数のプロセッサ動作状態から選択され、前記デバッガユニットにとってアクセス可能な第1の位置に、複数の前記特権レベルの各々と関連付けられるオペランドビット幅の記録を維持するように構成される、請求項3に記載のデータ処理装置。前記データ処理装置が前記デバッガユニットにとってアクセス可能な第2の位置で動作する現在の特権レベルの記録を維持するように構成される、請求項17に記載のデータ処理装置。前記データ処理回路は、前記各々のオペランドビット幅を有する複数の前記プロセッサ動作状態から前記デバッグ命令セットを判定するために、現在の前記特権レベルを使用する、請求項18に記載のデータ処理装置。現在の前記プロセッサ動作状態に対応する現在のオペランドビット幅の記録を維持するように構成される、請求項1~16のいずれか一項に記載のデータ処理装置。前記デバッガユニットは、現在の前記オペランドビット幅の前記記録から、前記データ処理回路によって割り当てられる前記デバッグ命令セットを推定するように構成される、請求項20に記載のデータ処理装置。前記デバッガユニットは、前記データ処理回路が動作している現在の特権レベルを判定するために、少なくとも1つのプログラム命令を前記データ処理回路によって実行させるように構成される、請求項21に記載のデータ処理装置。割り当てられた前記デバッグ命令セットは、非デバッグモードで前記データ処理装置による実行のために利用可能な全命令セットのサブセットを備える、請求項1~22のいずれか一項に記載のデータ処理装置。前記全命令セットは、A32命令セット、T32命令セット、T32EE命令セット、およびA64命令セットのうちの1つを備える、請求項23に記載のデータ処理装置。前記全命令セットの前記サブセットは少なくともブランチ命令を除外する、請求項23または請求項23または24に記載のデータ処理装置。データ処理装置の動作のデバッグ処理を実施するデバッグユニットであって、前記データ処理装置は少なくともデバッグモードと動作モードで、また複数の異なる動作状態において動作可能であり、前記データ処理装置内の記憶場所から、前記データ処理装置の複数の前記動作状態の1つを指定する現在のオペランドビット幅の記録を読み取るための読み取り回路と、前記デバッグ処理を実施するために前記データ処理装置のデバッグ回路へ供給するためのデバッグ命令を生成する際に使用されるデバッグ命令セットを推定するための推定回路と、を備える、デバッグユニット。前記推定回路は、前記データ処理装置から受信される制御コマンドに基づいて、前記デバッグ命令セットを推定するように構成される、請求項26に記載のデバッグユニット。前記推定回路は、前記データ処理装置内の現在の前記オペランドビット幅の記録の前記読み取り内容に基づいて、前記デバッグ命令セットを推定するように構成される、請求項26に記載のデバッグユニット。前記データ処理装置は複数の異なる特権レベルで動作可能であり、異なる特権レベルにおいて、前記データ処理装置はメモリおよびレジスタセットのうちの少なくとも1つに対する異なるアクセス許可をプログラム命令に与え、前記推定回路は、前記データ処理装置が動作している現在の特権レベルを判定するために、少なくとも1つのプログラム命令を前記データ処理装置によって実行させるように構成される、請求項27に記載のデバッグユニット。データ処理装置の動作のデバッグ処理を実施するためのデバッグ方法であって、前記データ処理装置は少なくともデバッグモードおよび動作モードで、複数の異なる動作状態で動作可能であり、前記データ処理装置内の記憶場所から、前記データ処理装置の複数の前記動作状態のうちの1つを指定する現在のオペランドビット幅の記録を読み取ることと、前記デバッグ処理を実施するために前記データ処理装置のデバッグ回路へ供給するためのデバッグ命令を生成する際に使用されるデバッグ命令セットを推定することと、を含む、デバッグ方法。請求項30に記載のデバッグ方法を実装するための、コンピュータプログラム。データ処理装置上で実行するコンピュータプログラムによって提供される仮想マシンであって、請求項1~25のいずれか一項に記載のデータ処理装置に従って命令実行環境を提供する、仮想マシン。プログラム命令の実行に応じてデータ処理動作を実施するための手段であって、少なくとも動作モードとデバッグモードで動作するように構成されデータ処理動作を実施する手段と、データ処理を実施するための前記手段とデータ処理装置の外部のデバッグ分析のための手段との間のインターフェースを提供するように構成されるデバッグ処理のための手段であって、データ処理を実施するための前記手段が前記デバッグモードで動作するときに、データ処理を実施するための前記手段の動作を制御するように構成されるデバッグ処理のための手段と、を備え、データ処理を実施するための前記手段は、データ処理を実施するための前記手段が前記デバッグモードに入ったときに、データ処理を実施するための前記手段の現在の動作状態を判定し、現在の前記動作状態に応じて、デバッグ命令セットとして使用される複数の命令セットの1つを割り当て、デバッグ分析のための前記手段に、データ処理を実施するための前記手段を制御するために使用される前記割り当てられたデバッグ命令セットを表示するように構成される、データ処理装置。少なくとも動作モードとデバッグモードで動作するように構成されるデータ処理回路上でのプログラム命令の実施に応じて、データ処理動作を実施することと、前記データ処理回路と前記データ処理回路の外部のデバッガユニットとの間のデバッグインターフェースを提供することであって、前記デバッグインターフェースは、前記データ処理回路が前記デバッグモードで動作しているときに、前記データ処理回路の動作を制御するように構成される、デバッグインターフェースを提供することと、前記データ処理回路がデバッグモードに入ると、前記データ処理回路の現在の動作状態を判定し、現在の前記動作状態に応じて、デバッグ命令セットとして使用される複数の命令セットの1つを割り当てることと、を含む、データ処理方法。請求項34の方法を実施するためのコンピュータプログラム製品。データ処理装置の動作のデバッグ処理を実施するための装置であって、前記データ処理装置は少なくともデバッグモードと動作モード、また複数の異なる動作状態において動作可能であり、デバッグユニットは、前記データ処理装置の複数の前記動作状態の1つを指定する現在のオペランドビット幅の記録を、前記データ処理装置内の記憶場所から読み取るための手段と、前記デバッグ処理を実施するために前記データ処理装置のデバッグ回路へ供給するためのデバッグ命令を生成する際に使用されるデバッグ命令セットを推定するための手段と、を備える、装置。しかし、データ処理装置の動作状態、即ち、デバッグ動作が実施される場合にデータ処理装置が動作している特権レベルと、データ処理装置のデバッグモードでの使用のために割り当てられる命令セットとの間で発生し得る不整合のために、問題が発生する可能性がある。したがって、例えば、プロセッサの現在の特権レベルに適した仮想から物理へのアドレス変換スキームは、選択されたデバッグ命令セットと互換性がない可能性がある。この場合には、更に大きいオペランドビット幅を有する命令がデバッグプロセスに使用されなければならない可能性があるので、命令のための可変幅レジスタを有するように構成可能なデータ処理装置において特定の問題を呈し、一方で、プロセッサの動作状態は、32ビットの仮想から物理へのアドレス変換スキームがデバッグモードで実行されることを意味する。データ処理装置によって実行可能な複数の命令セットの各々に対応する多くのビットパターンに対応するように、デバッグモジュールハードウェアが設計されていなければならないので、プロセッサ動作状態とデバッグ命令セットとの間の、この潜在的な不整合により、デバッグ作業が更に複雑になる。したがって、デバッグ回路の複雑さを低減し、更に複数の異なる特権レベルで動作できて、ならびに/または複数の異なる命令セットを実行できるデータ処理装置をデバッグする柔軟性を提供する必要性がある。第1の態様により、本発明は、プログラム命令の実行に応じてデータ処理動作を実施するためのデータ処理回路であって、少なくとも動作モードとデバッグモードで動作するように構成されるデータ処理回路と、前記データ処理回路と前記データ処理回路の外部デバッガユニットとの間にインターフェースを提供するように構成されるデバッグ回路であって、前記データ処理回路が前記デバッグモードで動作する場合に前記データ処理回路の動作を制御するように構成されるデバッグ回路と、を備えるデータ処理装置であって、前記データ処理回路が前記デバッグモードに入ったときに、前記データ処理装置の現在の動作状態を判定し、現在の前記動作状態に応じて、複数の命令セットのうちの1つをデバッグ命令セットとして使用するように割り当てるように、前記データ処理回路が構成されるデータ処理装置を提供する。本発明では、データ処理回路がデバッグモードに入ると、データ処理装置の現在の動作状態を判定し、現在の動作状態に応じて、デバッグ命令セットとして使用される複数の命令セットのうちの1つを割り当てることによって、良好な柔軟性レベルの余裕ができると認識している。これは、本発明が、デバッグモードでは、単一デフォルト命令セットより多くの命令セットを使用し、データ処理装置の現在の動作状態に応じて、選択された命令セットを適切に選択する機会を提供するからである。これにより、データ処理回路の現在の動作状態と割り当てられたデバッグ命令セットとの間の互換性の可能性が改善される。デバッグモードに入ると単に現在の命令セットを選択しないことにより、デバッグモードで対応する必要がある命令の合計数を低減することができる。実際には、データ処理装置によって実行できる全体の複数の命令セットのサブセットのみを、デバッグモードで実施する必要がある。これは、デバッグ命令の検証を簡略化し、デバッグ処理回路のコストを低減する。効果的には、デバッグモードに入ると、データ処理回路の現在の動作状態に応じて複数の命令セットを割り当てることができるので、デバッグモードで復号される命令は、必ず、現在の動作状態のメモリ構成即ち、権限レベルに適したものになる。データ処理装置は、データ処理ハードウェアの異なる表示に関係する多くの異なる動作状態のいずれかの1つで動作するように構成され、適切なデバッグ命令セットは現在の動作状態の特定の特性に従って割り当てられることが理解される。しかし、ある実施形態においては、データ処理回路は、複数の特権レベルで動作するように構成可能であり、異なる特権レベルにおいて、データ処理回路はメモリおよびレジスタセットのうちの少なくとも1つに対する異なるアクセス許可をプログラム命令に与える。例えば、高位の特権レベルにおいては、データ処理装置は下位の特権レベルにおけるよりも多くの制御レジスタセットにアクセスできる。異なる特権レベルに適用可能なメモリおよび/またはレジスタの異なる表示により、デバッグ命令セットとプロセッサの現在の動作状態との間の互換性は更に重要になる。現在の特権レベルに応じて複数の代替デバッグ命令セットからデバッグ命令セットを割り当てる能力により、デバッグ動作の効率が改善される。異なる特権レベルにおいて、データ処理装置には、メモリおよびレジスタのうちの少なくとも1つへのアクセス許可の差は別にして、動作状態の様々な差がある可能性があることが理解される。しかし、1つの実施形態においては、異なる特権レベルにおいては、データ処理回路は物理メモリアドレス変換規則に各々異なる仮想メモリアドレスを適用する。異なる動作状態において、異なる仮想メモリアドレスから物理メモリアドレスへの変換規則がデータ処理装置によって使用されるときには、デバッグモードで不適切なデバッグ命令セットが割り当てられれば、デバッグ動作は極度に複雑になる。例えば、現在の動作状態が32ビット仮想アドレスを物理アドレスに変換するように構成されるゲストオペレーティングシステムであり、一方、デフォルト命令セットが64ビット仮想アドレスを生成する命令を備える場合には、問題が発生する可能性がある。この場合には、64ビットデバッグ命令から生成される32ビット仮想アドレスか、または32ビット仮想アドレスを変換するように構成されるシステム内で64ビット仮想アドレスを変換する手段を必要とする。したがって、プロセッサの現在の動作状態に応じてデバッグ命令セットを適切に割り当てる能力は、現在で実装された仮想メモリアドレスから物理メモリアドレスへの変換スキームとデバッグ動作のために実行される命令との間の非互換性を避けるためには有用である。ある実施形態においては、データ処理装置は、複数の特権レベルの各々に対応する、複数の異なるソフトウェア階層レベルに対応するプログラム命令を実行するように構成される。したがって、例えば、1つの特権レベルはゲストオペレーティングシステムに対応し、一方で、他の特権レベルはユーザーアプリケーションに対応してもよい。本来は64ビット命令を実行可能なデータ処理装置上で32ビット動作システムを実行できる要件等のソフトウェアに関して後方互換性があるデータ処理装置についての一般的な要件により、問題が発生する可能性がある。現在の動作状態に応じ、かつ現在のソフトウェア階層レベルに従って適切なデバッグ命令セットを割り当てる能力により、後方互換性を併せ持ったシステム内でデバッグ処理に充分に対処するデバッグシステム内で柔軟性が提供される。異なるソフトウェア階層レベルに対応する複数の特権レベルは、ソフトウェア層の多くの変形した組合せを備える可能性があることが理解される。しかし、1つの実施形態においては、複数のソフトウェア階層は、アプリケーション層および動作システム層に加えて、ハイパーバイザ層を備える。これにより、都合良くシステムは仮想化に対処できる。更なる実施形態においては、アプリケーションシステム層およびハイパーバイザ層付き、または無しの動作システム層に加えて、セキュリティ監視層が提供される。セキュアモードでの動作時に確実に適切なデバッグ命令セットが選択されることは、データ処理装置の整合性を維持するために、特に重要である。最初にデバッグモードに入ると、単一のデバッグ命令セットが、デバッグモードに入る場合に現在の動作状態に応じて割り当てられることが理解される。しかし、ある実施形態においては、データ処理装置は、複数の特権レベルの異なるレベル間で切り換えるために、デバッグモード自体内から構成可能であり、データ処理回路は判定の現在の動作状態の判定を繰り返すように、またデータ処理装置の新規に切り換えられた動作状態に応じてデバッグ命令セットの割当を繰り返すように構成される。これにより、デバッグ動作が行われている間での現在の動作状態の切り換えに関わらず、このような場合でも、適切なデバッグ命令セットが割り当てられる。これにより、可能性があるシステムバグを更に調査するために、1つの動作状態から他の動作状態へ切り換えるようにデバッグ回路を制御できる更なる柔軟性が提供されるとともに、この柔軟性に関わらず、デバッグ命令セットと現在の動作状態との間の互換性が確実に維持されるようになる。データ処理装置の現在の動作状態は、同一のオペランドビット幅を有する複数の異なるプロセッサ動作状態から選択され得ることが理解される。しかし、1つの実施形態においては、現在の動作状態は、各々異なるオペランドビット幅を有する複数の異なるプロセッサ動作状態から選択される。異なるオペランドビット幅を有する命令を実行できるデータ処理装置においては、例えば、2つの異なるオペランドビット幅等の間で異なる仮想メモリアドレスから物理メモリアドレスへの変換スキームのために、互換性の問題が発生する恐れがある。したがって、現在の動作状態により適切にデバッグ命令セットを割り当てる能力は、デバッグモードの場合に極めて面倒な変換プロセスを実行しなければならないことを避ける際には有用である。いくつかのこのような種類の実施形態においては、複数のオペランドビット幅を有する動作状態は、少なくとも32ビット動作状態と64ビット動作状態とを備える。メモリからオペランドを読み取ることによって、命令を実行するデータ処理装置等のいずれかのデータ処理装置へ、本技術を適用し得ることが理解される。しかし、ある実施形態においては、データ処理装置は、プログラム命令のオペランドを記憶するための複数のレジスタを備え、異なるオペランドビット幅は処理回路によって使用される異なるレジスタ幅に対応する。可変レジスタ幅を使用するように構成可能なデータ処理装置においては、デバッグ命令セットの割当は、可変幅レジスタの現在の設定に応じて、適切に選択できるので、現在の動作状態に応じて適切なデバッグ命令セットを割り当てることができることは有用である。このようなある実施形態においては、異なるオペランドビット幅を有する複数のレジスタのサブセットは、可変幅レジスタとして構成される。ある実施形態においては、データ処理回路は、デバッグ回路にとってアクセス可能な少なくとも1つのレジスタへ書き込むことにより、現在の動作状態に応じて、デバッグ回路へ割り当てられたデバッグ命令セットを表示するように構成される。これにより、デバッグ回路による使用のために、適切なデバッグ命令セットを表示する便利な方法が提供される。別に実施形態においては、データ処理回路は、制御コマンドをデバッガユニットへ送信することにより、デバッガユニットへのデバッグ命令セットを表示するように構成される。これにより、レジスタ上のスペースが節約される。データ処理装置は、多くの異なる方法のいずれか1つで現在の動作状態を判定できることが理解される。しかし、ある実施形態においては、データ処理装置は、デバッガユニットにとってアクセス可能な所与の位置で現在の動作状態の記憶された値を維持するように構成される。いつデータプロセッサが非デバッグモードからデバッグモードへ切り換わるかに関わらず、必要な場合には必ず、デバッガユニットによって現在の動作状態に対して実行するのは簡単であり、また容易なアクセスを可能にする。データ処理装置が、複数の異なる特権レベルで動作するように構成可能なある実施形態においては、現在の動作状態は、各々のオペランドビット幅を有する複数のプロセッサ動作状態から選択され、データ処理装置は、デバッグ回路にとってアクセス可能な第1の位置の複数の特権レベルの各々に関連付けられたオペランドビット幅の記録を維持するように構成される。異なるプロセッサ動作状態のオペランドビット幅は、全てが必ずしも異なっておらず、例えば、4つの特権レベルと2つのビット幅は、2つ以上の特権レベルのために同じオペランドビット幅を使用できる。これにより、対応するオペランドビット幅にそれぞれ可能な特権レベルのための記憶の便利な手段が提供され、これは、適切なデバッグ命令セットが容易に判定され得ることを意味する。異なる時間において、データ処理装置は、例えば、異なるプログラム動作または異なるオペレーティング動作システムを実行する場合があり、これにともない、所与の特権レベルに関連付けられたオペランドビット幅は異なる時間では異なる場合があることが理解されるので、維持された記録内に現在で記憶されるオペランドビット幅は現在の時間に依存することに留意する必要がある。複数の特権レベルの各々に関連付けられたオペランドビット幅の記録が第1の位置に記憶される、このようなある実施形態においては、データ処理装置は、データ処理回路が、デバッガユニットにとってアクセス可能な第2の位置で動作している現在の特権レベルの記録を維持するようにも構成される。第1の位置と第2の位置の両方を参照することにより、デバッガユニットは、現在の特権レベルに対応するオペランドビット幅を容易に判定することができ、したがって、現在のオペランドビット幅に応じて、データ処理回路が割り当てたデバッグ命令セットを適切に判定することができる。ある実施形態においては、データ処理回路は、前記各々のオペランドビット幅を有する複数の前記プロセッサ動作状態から前記デバッグ命令セット判定するために現在の前記特権レベルを使用する。このようなある実施形態においては、データ処理装置は、現在のプロセッサ動作状態に対応する現在のオペランドビット幅の記録を維持するように構成される。別の実施形態においては、デバッガユニットは、デバッグ命令セットを推定するために、また、少なくとも1つのプログラム命令がデータ処理回路によって実行されて、データ処理回路が動作している現在の特権レベルを判定するために、現在の前記オペランドビット幅の前記記録を使用するように構成される。複数の可能な特権レベルの各々についてのオペランドビット幅の記憶位置を設けるよりも使用するレジスタスペースは少ないので、これは実行するのがより安価である。使用するスペースが少ないという事実により、現在の例外レベルを判定するために必要な論理に関して追加コストが相殺される。デバッガユニットは、この場合のデバッグ命令セットを推定するが、データ処理回路は適切なデバッグ命令セットの最初の判定を行い即ち、デバッグ命令セットを実際に割り当てる、次いでデバッガユニットは、レジスタの内容に基づいて、データ処理回路が何を実行したかを算定する。一方、現在の特権レベルの記録と、少なくとも複数の特権レベルに関連付けられたオペランドビット幅の記録の両方を使用する実施形態においては、記憶位置のこれら2つのセットの状態は、プロセッサ内のいずれかの位置で、例えば、レジスタの状態を都合よく反映しやすく、更に情報をデバッガへ提供し、適切なデバッグ命令セットを判定するために実行されるプログラム命令の数を低減する。割り当てられたデバッグ命令セットは、非デバッグモードのデータ処理装置による実行のために使用可能な全命令セットを提供し得ることが理解される。しかし、ある実施形態においては、割り当てられたデバッグ命令セットは全命令セットのサブセットを備える。このようなある実施形態においては、サブセットは、A32命令セット、T32命令セット、T32EE命令セット、およびA64命令セットのうち1つのサブセットである。したがって、デバッグモードで実行するためには望ましくない、および/または有用でない全命令セットのこれらの命令を、容易に、デバッグモードでの使用のために割り当てられる全命令のサブセットから除外することができる。例えば、所与の全命令セットの分岐命令を、デバッグモードのときに未定義にさせることができる。第2の態様により、本発明は、少なくとも動作モードおよびデバッグモードで動作するように構成されるデータ処理回路上でのプログラム命令の実施に応じて、データ処理動作を実施することと、前記データ処理回路と前記データ処理回路の外部のデバッガユニットとの間のデバッグインターフェースを提供することであって、前記デバッグインターフェースは、前記データ処理回路が前記デバッグモードで動作しているときに、前記データ処理回路の動作を制御するように構成されることと、前記データ処理回路が前記デバッグモードに入ると、前記データ処理回路の現在の動作状態を判定し、現在の前記動作状態に応じて、デバッグ命令セットとして使用される複数の命令セットのうちの1つを割り当てることを備える、データ処理方法を提供する。第3の態様により、本発明は、プログラム命令の実行に応じてデータ処理動作を実施するための手段であって、少なくとも動作モードとデバッグモードで動作するように構成されデータ処理動作を実施する手段と、前記データ処理を実施するための手段と前記データ処理装置の外部のデバッグ分析のための手段との間のインターフェースを提供するように構成されるデバッグ処理のための手段であって、前記データ処理を実施するための手段が前記デバッグモードで動作するときに、前記データ処理を実施するための手段の動作を制御するように構成されるデバッグ処理のための手段と、を備え、前記データ処理を実施するための手段は、データ処理を実施するための前記手段が前記デバッグモードに入ったときに、データ処理を実施するための前記手段の現在の動作状態を判定し、現在の前記動作状態に応じて、デバッグ命令セットとして使用される複数の命令セットの1つを割り当てるように構成された、データ処理装置を提供する。本発明の様々な各々の態様および特徴は、添付の請求項において明確にされる。従属請求項の特徴の組合せは、適宜独立請求項の特徴と組み合わせられてもよく、単に請求項には明示的に規定されていないのみである。以降、添付の図面を参照して、実施例のみとして、本発明の好ましい実施形態が説明される。図1は、本発明の実施形態に係るデータ処理装置を概略的に示す。データ処理装置は、システムオンチップを形成する複数の回路コンポーネントを備える集積回路100を備える。集積回路100は、実行パイプライン110、1組の汎用レジスタ120、1組の制御レジスタ160、デバッグモジュール130、デバッグポート132、メモリ管理ユニットMMUおよびオンチップメモリ142を備える。更に、データ処理装置100は、オフチップメモリ144へのアクセスを有する。データ処理装置100のデバッグポート132は、データ処理回路100のデバッグを補助するために、1組のデバッガソフトウェア152を実行するように構成されるホストパーソナルコンピュータ150へ接続される。図1のデータ処理装置100は、RISC短縮命令セット演算アーキテクチャを有し、これは、データを処理する命令がレジスタ上でのみ動作し、メモリへアクセスする命令から分離しているロードストアアーキテクチャである。データ処理装置100は、パイプライン化されたデータ処理装置であり、実行パイプライン110は、フェッチステージ、復号ステージ、および実行ステージ図示しないを備える。レジスタの組は、汎用レジスタ120、更に制御レジスタ160を備える。この特定の実施形態においては、レジスタ120の組は、複数の64ビットレジスタを備え、これらは、可変幅レジスタとして動作するように構成可能であり、データ処理回路100が32ビットレジスタ幅動作状態で動作しているとき、即ち、実質的に32ビットデータを処理し仮想アドレスの32ビット32ビットプログラムと称する、32ビットプログラム命令を備えるを使用するときには、レジスタ120の組は、データ処理装置によって32ビットレジスタとして見なされ、一方、データ処理回路100が64ビットレジスタ幅動作状態で動作しているとき、即ち、実質的に64ビットデータを処理し仮想アドレスの32ビットを超えるビットを使用するプログラム64ビットプログラムと称する、64ビットプログラム命令を備えるを実行するときには、レジスタ120の組の各レジスタのフル64ビット幅が利用されるように構成される。しかし、処理回路100が32ビットレジスタ幅動作状態で動作しているときには、ある64ビット動作即ち、64ビット値の広い乗算およびロード/ストアを実行できることに留意する。同様に、処理回路100が64ビットレジスタ幅動作状態で動作しているときには、ある32ビット動作が更に実施されてもよい。動作の非デバッグモードのときには、データ処理回路100は、システムメモリから、即ち、オンチップメモリ142またはオフチップメモリ144からの実行命令を実行する。メモリ管理ユニット140は、データ処理装置100の現在の動作状態に従ってメモリ142、144へのアクセスを制御し、例えば、ユーザーモードでは、システムモードでアクセス可能であるよりも、データ処理回路100にとってアクセス可能であるメモリ位置のサブセットは少なくなる。メモリ管理ユニット140は、実行パイプライン110によるメモリへの全てのアクセス要求の取扱いを担い、その機能は、仮想メモリアドレスから物理メモリアドレスへの変換、メモリ保護、キャッシュ制御およびバスアービトレーションを含む。データ処理装置100がデバッグモードに入ると、実行パイプラインは、直接、デバッグモジュール130の命令伝達レジスタITR134からの命令を実行する。命令伝達レジスタ134は、ホストPC150上で実行するデバッガソフトウェア152の制御の下で、デバッグ命令がロードされ、これは、デバッグモードで、デバッグポート132を介してデータ処理回路100を制御する。この実施形態においては、デバッガソフトウェア152およびその上で実行するホストPC150は、デバッガユニットを表わす。しかし、別の実施形態においては、デバッガユニットはデータ処理回路と同じ集積回路上に組み立てられる。制御レジスタ160は、データ処理装置100の態様の制御を担う制御値を記憶する。特に、データ処理装置100の複数の特権レベルの各々については図2を参照して、詳細に記載する、レジスタは、当該特権レベルに関連付けられた対応するオペランドビット幅動作状態を記憶する。デバッグモジュール130は、更に、複数の特権レベルの各々に関連付けられたレジスタ幅状態即ち、オペランドビット幅状態の記録およびデータ処理装置100が動作している現在の特権レベルの記録を維持する外部デバッグインターフェースレジスタEDIFR136を備える。EDIFR136は、デバッガソフトウェア152にとって可視である。データ処理装置100が標準動作モードまたは、いずれかの非デバッグモードからデバッグモードへ切り換わると、データ処理装置100は、制御レジスタ160内に記憶されたデータから、データ処理装置の現在の動作状態を判定し、この状態に応じて、デバッグ動作を実施するために実行する複数の異なるデバッグ命令セットのうちの1つを選択し、それに従って、EDIFR136内の記録を更新する。デバッガソフトウェア152は、デバッグモードの間に、1つの動作状態から他の異なる動作状態へデータ処理装置100の切り換えを開始することができる。例えば、デバッグ命令の第1のグループ実行する第1の特権レベルでの動作からデバッグ命令の第2のグループを実行する第2の特権レベルでの動作へデータ処理装置を切り換えることができる。したがって、デバッグモジュール130は、動作状態切り換えのときに、制御レジスタ160内の情報に基づいてデータ処理回路100の現在の動作状態の判定を繰り返し、デバッグ動作のために更新されたデバッグ命令セットを割り当て、それに伴って、EDIFR136内の記録を更新するように構成される。この場合には、実行されるデバッグ命令セットは、動作状態切り換えに対応して変化する場合があり、または、この代わりに同じ状態で保持されることもできる。図1の実施形態においては、EDIFR136はデバッグモジュール130内に配置され、別の実施形態においては、EDIFR136はデータ処理装置100の外部のホストパーソナルコンピュータ150内に、即ち、デバッガユニット内に配置される。更に別の実施形態においては、EDIFRは実装されないが、これに含まれる情報はメインシステムレジスタ、即ち、制御レジスタ160から状態値を読み取ることによって、デバッガユニットによって得られる。ハードウェアレベルにおいては、EDIFRレジスタ136をラッチ回路図1の実施形態のようにまたはシステムレジスタからの簡単な組合せパスとして実装することができる。更に、図1の実施形態においては、ホストPCデバッガユニットは、データ処理回路100に対してオフチップに位置し、別の実施形態においては、データ処理装置100およびデバッグ動作を制御し、デバッガソフトウェア152即ち、デバッグユニットを実行するための回路は、同じ集積回路上に組み立てられ、データ処理回路100はシステムオンチップ全体を形成しない。このような実施形態においては、論理的に、デバッグ回路を、デバッグされるプロセッサの一部と見なすことができ、デバッグユニットは同じシステムオンチップ上に配置された第2の異なるプロセッサである。図1の実施形態においては、デバッガユニット150へインターフェース例えば、アドバンストマイクロコントローラバスアーキテクチャバスインターフェース:AMBAを提供するデバッグモジュール30のデバッグ回路は、システムオンチップ100のデータ処理回路と同じマクロセルの一部である。図2は、各々の複数の特権レベルに対応する図1のデータ処理装置100の複数の異なる動作状態を概略的に示す。各々の特権レベルは、図1のデータ処理装置100上で実行するソフトウェアの各々の異なる階層に対応する。図2の最上列は、最低特権レベルPL0に対応し、一方、図2の最低列は最高特権レベルPL3に対応する。最低特権レベルPL0と最高特権レベルPL3との間では、2つの中間特権レベルPL1とPL2がある。最低特権レベルPL0は、アプリケーションソフトウェア層に対応する。この例の実施形態においては、処理リソースの時分割多重によって、データ処理装置100上で6つの異なるアプリケーションプログラムが実行していて、任意の瞬間では6つのアプリケーションプログラムのうちの1つのみがデータ処理回路100の制御を有する。第1のプログラムアプリケーション202は、32ビットプログラム命令を備える32ビットプログラムであり、したがって、この第1のアプリケーション202を実行する場合には、データ処理装置100は32ビット動作状態である。第2のアプリケーションプログラム204も、実行しているときに32ビットプロセッサ動作状態を必要とする32ビットプログラムアプリケーションである。第3のプログラムアプリケーション206は64ビットプログラム命令を備える64ビットプログラムであり、したがって、このアプリケーションを実行する場合には、データ処理装置は64ビット動作状態になる。第4のプログラムアプリケーション208は、32ビットプロセッサ動作状態を必要とする32ビットプログラムアプリケーションである。最下位特権レベルPL0は、第1のセキュア64ビットプログラムアプリケーション209と第2のセキュア32ビットプログラムアプリケーション210も備える。データ処理装置がセキュアモードの動作である場合のみに、これらのセキュアアプリケーションを実行することができる。第1の特権レベルPL12番目に最低の特権レベルは、オペレーティングシステムソフトウェア層に対応する。図1および図2の実施形態においては、データ処理装置は、3つの異なるゲストオペレーティングシステムをホスティングする能力を備えて設定される。第1のゲストオペレーティングシステム222は、32ビットオペレーティングシステムであり、32ビット仮想アドレス付きの32ビットプログラムを備えることを意味する。第2のゲストオペレーティングシステム224は、64ビットオペレーティングシステムであり、32ビットを超える仮想アドレス付きの64ビットプログラムを備えることを意味する。64ビットセキュアオペレーティングシステム226もプロセッサ動作のセキュアモードでの専用使用のために第1の特権レベルPL1に位置する。オペレーティングシステムは、アプリケーションの管理、特には、下位のデータ処理システム100へのアプリケーションのアクセスの制御を担い、またマルチプロセッサおよびマルチスレッドプロセッサにおいては、異なるプロセッサおよびスレッドへのアプリケーションプログラムの割当を含む、異なるアプリケーション間での時分割多重を担う。図1および図2の実施形態においては、32ビットオペレーティングシステムは32ビットプログラムアプリケーションのみを管理することができるので、第1のゲストオペレーティングシステム222によって管理される2つのアプリケーション、つまり、第1のプログラムアプリケーション202と第2のプログラムアプリケーション204とは、両方とも32ビットプログラムアプリケーションである。しかし、64ビットオペレーティングシステムは、64ビットおよび32ビットプログラムアプリケーションの両方を管理することができるので、第2のゲストオペレーティングシステム224によって、またセキュアオペレーティングシステム226によって管理されるアプリケーションは、32ビットプログラムアプリケーションおよび64ビットプログラムアプリケーションの混合を備える。オペレーティングシステム222、224および226は、特権レベルPL0で実行するアプリケーションの各々について、また特権レベルPL1で実行するオペレーティングシステム自体について、どのように仮想メモリアドレスから物理メモリアドレスへの変換を実施するかに影響する一対の変換表基準レジスタTTBR0_PL1およびTTBR1_PL1の制御を担う。第2の特権レベルPL2は、ハイパーバイザソフトウェア層に対応する。図2において、ハイパーバイザ230は、データ処理装置100上で実行し、第1のゲストオペレーティングシステム222、第2のゲストオペレーティングシステム224を同じデータ処理装置100上で実行させる、64ビットプログラム命令を備える64ビットプログラムである。ハイパーバイザ230は、第1のゲストオペレーティングシステム222、および第2のゲストオペレーティングシステム224が、他のゲストオペレーティングシステムがそこで同時に実行していることを知らずに、同一のデータ処理装置100上で実行できるようにする仮想化システムの一部である。ハイパーバイザは、オペレーティングシステムの管理、特には、下位のデータ処理システム100へのオペレーティングシステムのアクセスの制御を担い、またマルチプロセッサおよびマルチスレッドプロセッサにおいては、異なるプロセッサおよびスレッドへのオペレーティングシステムの割当を含む、異なるオペレーティングシステム間での時分割多重を担う。64ビットハイパーバイザは、32ビットおよび64ビットオペレーティングシステムの両方を管理することができるので、ハイパーバイザ230によって管理されるオペレーティングシステムは32ビットおよび64ビットオペレーティングシステムの混合を備える。ハイパーバイザ230は、特権レベルPL1で実行するオペレーティングシステムの各々について、また特権レベルPL0で実行するこれらのオペレーティングシステムによって管理されるアプリケーションについて、どのように仮想メモリアドレスから物理メモリアドレスへの変換が実施されるかに更に影響する仮想変換表基準レジスタVTTBR_PL2の実装を制御する。また、ハイパーバイザ230は、特権レベルPL2で実行するハイパーバイザについて、どのように仮想メモリアドレスから物理メモリアドレスへの変換が実施されるかを制御する第3の仮想変換表基準レジスタTTBR_PL2の実装を制御する。したがって、PL2における仮想アドレスから物理アドレスへの変換は、PL0およびPL1における仮想アドレスから物理アドレスへの変換と独立している。最高特権レベルはPL3であり、これは、セキュアモニタ240ソフトウェア層に対応し、この場合には、ソフトウェア層は64ビットプログラム命令を備える64ビットプログラムである。セキュアモニタ240は、非セキュアモードで実行するソフトウェア、即ち、ハイパーバイザ230、オペレーティングシステム222、224、およびアプリケーション、202、204、206および208、更にセキュアモードで実行するソフトウェア、即ち、セキュアオペレーティングシステム226、またアプリケーション209、210の対との間のゲートキーパーとして動作する。図2に示されるように、データ処理装置がセキュアモードである場合には、ハイパーバイザ230は使用されない。したがって、セキュアモードにおいては、3つの特権レベルPL0、PL1およびPL3のみが有効である。セキュアモニタ240は、特権レベルPL3で実行するセキュアモニタについて、どのように仮想メモリアドレスから物理メモリアドレスへの変換が実施されるかを制御する第4の変換表基準レジスタTTBR_PL3の実装も制御する。したがって、PL3における仮想アドレスから物理アドレスへの変換は、PL0、PL1およびPL2における仮想アドレスから物理アドレスへの変換と独立している。単一スレッド動作のみを行うことができる単一実行パイプライン110を備えるデータ処理装置100については、単一のプログラムアプリケーションがいずれかの時点でセキュアまたは非セキュアモードで制御時にのみ、単一のオペレーティングシステムを実行する。図2に示される4つの特権レベルの各々については、図1のデバッグモジュール130のEDIFR136は対応するオペランドビット幅を記憶する。この実施形態においては、4つの可能な特権レベルがあるので、フィールドRW[3:0]、即ち、32ビットEDIFR136の4ビットフィールドを使用して、各例外レベルに対応するオペランドビット幅または同様にレジスタ幅を表示する。データ処理装置の可能な動作状態の各々についてのフィールドRW[3:0]の内容は、図2の上部に示される。第1のプログラムアプリケーション202がハイパーバイザ230の制御の下での第1のゲストオペレーティングシステム222上で、またセキュアモニタ240を有するシステム内で実行している場合には、4ビットレジスタフィールドRW[3:0]は1100の値を有する。これは、この実施形態においては、0の値を使用して32ビットアーキテクチュア状態を表示する場合に、1の値を使用して、64ビットプロセッサ状態を表示するからである。RWレジスタフィールドの4つのビットは、各々、PL3、PL2、PL1、およびPL0に対応する。同様に、第2のプログラムアプリケーション204がハイパーバイザ230およびセキュアモニタ240の上部での第1のゲストオペレーティングシステム222上で実行している場合には、4ビットレジスタフィールドRW[3:0]は1100の値を有する。一方、64ビットアプリケーションである第3のプログラムアプリケーション206が64ビットの第2のゲストオペレーティングシステム224上で実行している場合には、アプリケーション、オペレーティングシステム、ハイパーバイザおよびセキュアモニタの全ては64ビットプログラムコードに対応するので、レジスタフィールドRW[3:0]は1111の値を有する。第4のプログラムアプリケーション208が第2のゲストオペレーティングシステム上で実行する場合には、最下位特権レベル即ち、第4のプログラムアプリケーション208以外の全ては64ビットコードに対応するので、4ビットレジスタフィールドRW[3:0]は1110の値を有する。データ処理装置がセキュアモードで動作しているときには、PL2に対応するハイパーバイザ層230が無いので、4つではなく3つの特権レベルのみがある。したがって、RW[2]に対する値の選択は、ある程度任意に行われる。図1のデータ処理装置においては、セキュアモードで動作しているときには、RW[2]はRW[1]と同じ値に設定される。したがって、図2においては、第1の64ビット、セキュアアプリケーション209がセキュアオペレーティングシステム226上で動作しているときには、レジスタフィールドRW[3:0]は1111の値を有し、第2の32ビット、セキュアアプリケーション210が実行している場合には、レジスタフィールドRW[3:0]は1110の値を有する。マルチプルプロセッサ、つまり、多重実行パイプライン、および/または、いずれかの時点で同時に多重スレッドを実行できるプロセッサを備える他の実施形態においては、多重プログラムアプリケーションを、ことによると多重オペレーティングシステムの制御の下で、またことによるとセキュアおよび非セキュアの混合状態で実行できることが理解される。このような実施形態においては、EDIFRの制御フィールドを二重化して、各ハードウェアスレッドごとに一度ずつ同じ情報を提示することができる。図3は、図1のデータ処理装置がプログラム命令の実行中に複数の異なる特権レベルの異なるレベル間で切り換える能力を有するように、どのように構成されるか、また異なる特権レベルにおいて、どのように仮想アドレスから物理アドレスへの変換スキームが異なるかを概略的に示す。図3は、最下位特権レベルPL0での32ビットプログラムアプリケーション410、次の最高特権レベルPL1での32ビットオペレーティングシステム420、次の特権レベルPL2での64ビットハイパーバイザ430、更に最高特権レベルPL3での64ビットセキュアモニタ440を示す。データ処理回路100が非デバッグまたはデバッグモードでプログラム命令を実行している場合には、図1のデータ処理装置100の動作状態は、4つの特権レベルPL0、PL1、PL02、PL3の異なるレベル間で入り、切りを切り換えることができる。データ処理装置がこれらの特権レベル間で切り換わるので、動作状態は変化する。データ処理装置が特権レベルPL0からのプログラム命令を実行している場合には、プログラムコードによって生成された32ビット仮想メモリアドレスは、ゲストオペレーティングシステム420が属する特権レベルに固有の変換表基準レジスタTTBR0_PL1およびTTBR1_PL1を使用して中間の物理アドレスへ変換される。今度は、中間の物理アドレスは、ハイパーバイザ430の特権レベルPL2に対応する仮想変換表基準レジスタVTTBR_PL2を使用して、最終物理アドレスへ変換される。同様に、32ビットゲストオペレーティングシステム420のプログラム命令を実行している場合には、実行されているゲストオペレーティングシステム命令に対応する32ビット仮想アドレスは、ゲストオペレーティングシステム420の特権レベルPL1に対応する変換表基準レジスタTTBR0_PL1およびTTBR1_PL2を使用して、中間の物理アドレスへ変換され、今度は、中間の物理アドレスは、ハイパーバイザ430に関連する仮想変換表基準レジスタを参照して最終物理アドレスへ変換される。対比すると、64ビットハイパーバイザ430のプログラム命令が、特権レベルPL2に対応して実行されると、単一ステージの仮想メモリアドレスから物理メモリアドレス変換のみが行われる必要があり、ハイパーバイザ特権レベルTTBR_PL2に関連する変換表基準レジスタを参照して、64ビット仮想アドレスは直接的に物理アドレスへ変換される。この場合には、仮想変換表基準レジスタは必要ない。図3の異なる特権レベルでの仮想アドレスサイズと仮想メモリアドレスから物理メモリアドレスへの変換との間の差に加えて、異なる特権レベルでシステムレジスタおよび/またはメモリ位置へのアクセス性にも差がある。特に、最高特権レベルにおいては、全てのシステムレジスタを見ることができるようになり、特権レベルが順次に低くなると、利用できるシステムレジスタが順次に少なくなる。更に、システム制御レジスタが特には動作状態にリンクされている場合には、32ビット状態でアクセスすると、32ビットシステムレジスタとして表示される場合があるが、64ビット状態でアクセスすると、64ビットシステムレジスタとして表示される。例えば、不良アドレスレジスタFAR図示無しが、仮想アドレスを含み、これは32ビット状態で32ビット幅であるが、64ビット状態で64ビット幅である。他のシステムレジスタは、当然ながら、64ビット幅であり、32ビット動作状態でアクセスされると一対の32ビット汎用レジスタ上で動作するが、64ビット動作状態でアクセスされると、64ビット汎用レジスタ上で動作するレギュラーシステムレジスタ命令でアクセスすることができる特殊なシステム命令を使用して、アクセスしなければならない。例えば、TTBRレジスタは変換表の物理基準アドレスを含んでいて、物理アドレスはサイズが32ビットより大きいので、32ビット動作状態と64ビット動作状態の両方において、64ビット幅である。他のシステムレジスタは、1つの状態でアクセス可能であるが、他の状態ではアクセスできない。仮想メモリアドレスから物理メモリアドレスへの変換スキームはプロセッサの動作状態に依存し、図3の場合には、データ処理システムが現在で動作している特権レベルに対応するので、任意の所与の特権レベルでデバッグ動作を行うようにデバッグ命令セットを恣意的に割り当てることができない。例えば、データ処理装置が図3のPL1に対応する動作状態にあるときに、64ビットデバッグ命令セットが割り当てられると、問題が発生する恐れがある。これは、この特権レベルで動作するゲストオペレーティングシステム420は、64ビットデバッグ命令から生成される32ビット仮想アドレスを必要とする仮想メモリアドレスから物理メモリアドレスへの変換スキームを実装する32ビットゲストオペレーティングシステムであるからである。TTBRレジスタを読むように設定された64ビットデバッグ命令が、図3のPL1に対応する動作状態で実行された場合には、更なる問題が発生する恐れがある。これは、この命令は通常は64ビットシステムレジスタと単一の64ビット汎用レジスタとの間でデータを転送するが、32ビット命令セット相当は64ビットシステムレジスタと一対の32ビット汎用レジスタとの間で転送するからである。図4Aは、図1のEDIFRレジスタ136のビット割当を概略的に示す。図4Aで示されるように、EDIFRは、ビットEDIFR[9:8]は、データ処理装置がデバッグ状態になっているときに、現在の特権レベルを指定するように割り当てられる32ビットレジスタであり、一方、ビットEDIFR[13:10]は、図2の実施形態の4つの特権レベルの各々について、その特権レベルに関連付けられた対応するオペランドビット幅を表示するように割り当てられる。各特権レベルのオペランドビット幅は、代わりに、図1の実施形態についてのレジスタ幅とも称することができ、これは可変レジスタ幅32ビットまたは64ビット構成を有する。したがって、EDIFRのオペランドビット幅またはレジスタ幅フィールドはRW[13:10]で表わされ、一方、現在の特権レベルを指定するために割り当てられるビットはPL[9:8]で表わされる。オペランドビット幅インジケータビットRW[13:10]は、ビット13が最高特権レベルに対応し、一方で、ビット10は最低特権レベルに対応するように、即ち、ビット13から10は、各々、PL3、PL2、PL1およびPL0に対応するように割り当てられる。フィールドRW[13:10]は、読取専用フィールドであり、一方、フィールドPL[9:8]は現在の特権レベルを更新するために、データ処理装置によって書込み可能である。図4Bの表は、2ビットフィールドPL[9:8]の4つの可能な値の各々について、表示される対応する特権を示す。特に、PL[9:8]=00は最低特権レベルPL0に対応し、PL[9:8]=01はPL1に対応し、PL[9:8]=10はPL2に対応し、PL[9:8]=11はPL3に対応する。デバッグ回路に関する限りは、これら2つのビットPL[9:8]は読取専用である。データ処理装置100がデバッグモードにあると、2つのビットPL[9:8]はプロセッサの現在の特権レベルを表わし、一方、データ処理装置が非デバッグモードにある場合には、2つのビットフィールドPL[9:8]は00に設定される。図4Cの表は、EDIFRフィールドRW[13:10]の異なるビット値について、4つのRWビットに各々対応する4つの特権レベルの各々の対応するプロセッサレジスタ幅動作状態または等価なオペランドビット幅動作状態を指定する。RW[13:10]=1111の値は、64ビットレジスタ幅状態になる4つの特権レベル全てに対応する。RW[13:10]=1110の値は、64ビットレジスタ幅状態にある最上位の特権レベルPL3、PL2、PL1および32ビットレジスタ幅状態にある最下位特権レベルPL0に対応する。RW[13:10]=1100の値は、64ビットレジスタ幅状態にある最上位の2つの特権レベルPL3、PL2に対応する一方で、32ビットレジスタ幅状態にある最下位の2つの特権レベルPL1、PL0に対応する。データ処理装置が現在でセキュアモードで動作しているときには、この特定の値、RW[13:10]=1100は見られないことに留意する必要がある。これは、図2に示されるように、PL2に対応するハイパーバイザ層はセキュアモードに対して見えないからである。RW[13:10]=1000の値は、64ビットレジスタ幅状態にある最上位の特権レベルPL3に対応し、一方で、残りの下位の3つの特権レベルPL2、PL1、PL0は32ビットレジスタ幅状態である。この特定のビットパターンRW[13:10]=1000は、PL3が64ビットレジスタ幅状態であり、一方で、PL1およびPL0が32ビットレジスタ幅状態であるセキュアモードについて表示するように選択されているこの状態では、PL2は存在しない。RW[13:10]=0000のビットパターンは、4つ全ての特権レベルが32ビットレジスタ幅状態に対応していることを示す。RW[13:10]の他の値は許可されない。この特定の実施形態については、都合上、レジスタ幅状態インジケータRWおよび特権レベル状態インジケータPLのためにある予め設定された値が選択された。例えば、データ処理装置がデバッグモードでない場合には、フィールドRW[13:10]は1111に設定される。現在の特権レベルがPL0以外であれば、低いビットレジスタ幅フィールドの最下位ビットRW[10]は同様にRW[11]に等しく設定される。セキュアモードでは、PL2は存在しないので、RW[12]はRW[11]と同様に設定される。図5は、AArch32のラベルが付いた32ビットレジスタ幅状態およびAArch64のラベルが付いた64ビットレジスタ幅状態について、プロセッサが所定のレジスタ幅状態にあるときに実行され得る対応する命令セットを概略的に示す。図5においては、第1の設定ラベル510はAArch32、即ち、32ビットオペランド幅または32ビットレジスタ幅状態に対応する。このプロセッサ状態においては、データ処理装置は3つの異なる命令セットを実行することができる。第1の命令セット522は、32ビット幅データ上で動作する高性能32ビット幅命令に対応するA32命令セットである。第2の命令セット524は、16ビット幅フォーマットに圧縮され最も頻繁に使用されるA32命令のサブセットを備える更にコンパクトな命令セットを表わすT32命令セットであるが、これらの命令は32ビット幅データ上でも動作する。第3の命令セット526は、T32に類似するコンパクトな命令セットを表わすが、Java登録商標命令およびT32EE命令等のオブジェクト指向プログラムコード間の変換を実施する能力を提供する仮想マシンに適した拡張子を組み込むT32EE命令セットThumbEE命令セットとしても知られるである。したがって、プロセッサが32ビットレジスタ幅状態即ち、32ビット幅データ上で動作しているに従って動作しているときには、命令セットについては、実行できる3つの選択肢、A32、T32、T32EEがある。図5においては、第2のセット550は、単一のA64命令セット562を実行できる64ビットレジスタ幅状態AArch64を表わす。A64命令セットは、64ビット幅データ上で動作する。特には、この実施形態においては、AArch64命令セット550のセットとAArch32命令セット510のセットの間に交差点がない。本技術によると、データ処理装置100が現在でAArch64レジスタ幅状態550にあると判断される場合には、A64命令セット562はデバッグ命令セットとして割り当てられ、一方で、デバッグモードに入ると、プロセッサがAArch32レジスタ幅状態になる場合には、T32命令セット524は、プロセッサがデバッグモードに入ったときにA32命令セット522、T32命令セット524またはT32EE命令セット526を実行していたかどうかに関わらず、デバッグ命令セットとして選択される。明らかに、32ビットレジスタ幅状態AArch32についてのT32命令セット524の特定の選択は、この特定の実施形態に固有のものである。別の実施形態においては、3つの可能なAArch32命令セット522、524、526のうちのいずれか1つはデバッグ命令セットとして選択され得る。更なる別の実施形態においては、全非デバッグモード命令セットのうちの1つのサブセットは、デバッグモード命令セットとして選択される。図6は、デバッグ処理モジュール130による実装のために適切なデバッグ命令セットを判定するために、図1のデータ処理装置によって実施される動作を概略的に示すフローチャートである。実行パイプライン110がオンチップメモリ142またはオフチップメモリ144のいずれかから得られた命令を処理するステージ610で、プロセスが開始する。つまり、ステージ610において、データ処理装置はデバッグモードではなく標準動作モードで命令を実行する。次に、プロセスは、ステージ620へ進み、ここで、デバッグイベントが発生したかどうかが判定される。ステージ620でデバッグイベントが発生していない場合には、プロセッサはステージ610へ戻って、ここで、実行パイプラインが継続してメモリ142、144から命令をフェッチ、復号し実行する。しかし、ステージ620でデバッグイベントが実際に検出された場合には、プロセスはステージ630へ進み、同時に、データ処理装置データ処理回路はデバッグモードに入る。ステージ630の後で、プロセスはステージ640へ進み、ここで、データ処理装置が64ビットプロセッサ状態になっているかどうか判定される。データ処理装置がステージ640で32ビットプロセッサ状態であることが分かると、プロセスはステージ650へ進み、ここで、データ処理回路はT32命令セットをデバッグ命令セットとして割り当てる。次に、プロセスはステージ670へ進む。一方、ステージ640で、データ処理装置が、図5の状態550に対応する64ビットプロセッサ状態であることが判定される場合には、プロセスはステージ660へ進み、ここで、データ処理回路はデバッグ動作のためにA64命令セットを割り当てる。図5に示されるように、A64命令セットは、64ビットプロセッサ状態でデータ処理回路が実行できる命令セットであり、一方、T32命令セットは、データ処理回路が非デバッグモードで32ビットプロセッサ動作状態において実行できる3つの異なる命令セットのうちの1つである。図6の実施形態においては、A64またはT32命令セットはステージ650および660でプロセッサによって割り当てられるが、別の実施形態においては、割り当てられたデバッグ命令セットは全命令セットのサブセットを備える。例えば、A64命令セット、A32命令セット、T32命令セットまたはT32EE命令セットのうちの1つのサブセット。デバッグモードでの使用に適した全命令セットのサブセットは、例えば、デバッグ、モードで望ましくない分岐命令等の命令の実行を排除するように適切に選択されてもよい。つまり、T32またはA64命令セットのサブセットにおいては、分岐命令等を強制的に定義させないようにすることができる。ステージ650および660の両方に続いて、プロセスはステージ670へ進み、ここで、デバッグ回路130はどの命令セットを使用するかをデバッガ152即ち、デバッガユニットへ表示する。このステージにおいては、データ処理回路はデバッグモジュール130でレジスタを更新して、どの命令セットが現在使用中であるかを表示する。ステージ670で適切なデバッグ命令セットが表示されると、プロセスはステージ680へ進み、ここで、デバッグ命令の実行が開始する。このステージでは、プロセッサがデバッグモードであるので、実行パイプライン110はメモリから命令をフェッチしないが、この代わりに、図1のデバッグモジュール130の命令転送レジスタ134から直接命令をフェッチする。ステージ680の後で、プロセスはステージ690へ進み、ここで、データ処理装置がデバッグモードを終了するかどうかが判定される。デバッガソフトウェア152によって制御されているデバッグ動作が完了する場合には、ステージ690でデバッグモードは終了し、終了する場合には、プロセスはステージ610へ戻り、ここで、プロセッサはデバッグモードから標準動作モードへ切り換わり、同時に、命令がメモリ142、144から実行パイプライン110へ送られる。一方で、ステージ690で、更なるデバッグ動作が必要であり、データ処理装置がデバッグモードになっている必要があることが判定されると、プロセスはステージ700へ進み、ここで、デバッグモード中にデータプロセッサが動作している現在の特権レベルへ変更が行われたかどうが確定される。最新に確定された特権レベルの後で特権レベルへ変更が行われなかった場合には、プロセスはステージ680へ戻る。したがって、現在の特権レベルに変更が行われていなくて、データ処理装置がまだデバッグ状態にある場合には、命令転送レジスタ134からの命令は継続して処理される。しかし、ステージ700で特権レベルに変更がある場合には、プロセスはステージ640へ戻り、ここで、割り当てられたデバッグ命令セットは現在の特権レベルに従って更新される。図7は、使用され得る仮想マシンの実装を示す。前述した実施形態は、関連する技術に対応する固有の処理ハードウェアを動作させるための装置および方法に関して本発明を実施するが、ハードウェアデバイスのいわゆる仮想マシン実装を提供することも可能である。これらの仮想マシン実装は、仮想マシンプログラム720に対応するホストオペレーティングシステム730を実行するホストプロセッサ740上で作動する。典型的には、妥当な速度で実行する仮想マシン実装を提供するためには、大型の強力なプロセッサが必要であるが、互換性または再利用の理由により、他のプロセッサ固有のコードを実行することが望ましい場合等の特定の環境においては上記の手法が妥当とされてもよい。仮想マシンプログラム720は、仮想マシンプログラム720によってモデル化されているデバイスである実際のハードウェアによって提供されることになるアプリケーションプログラムインターフェースと同じであるアプリケーションプログラム710に対してアプリケーションプログラムインターフェースを提供する。したがって、上記で説明されたメモリアクセスの制御を含めて、プログラム命令は、仮想マシンハードウェアとの相互関係をモデル化する仮想マシンプログラム720を使用して、アプリケーションプログラム710内から実行されてもよい。