データ処理装置であって、処理対象のデータ値を格納するように構成される複数のレジスタと、前記複数のレジスタに結合され、前記複数のレジスタに格納されたデータ値に対してデータ処理操作を実行するように構成される処理回路と、前記処理回路に結合され、前記データ処理操作を実行するように前記処理回路を制御するためのプログラム命令のストリームに応答する、命令デコーダと、を備え、前記命令デコーダは、前記複数のレジスタにより提供されるNビットアーキテクチャレジスタを使用して前記データ処理操作を実行するように前記処理回路を制御するための、第1の命令セットのプログラム命令に応答し、Nは、正の整数値であり、前記命令デコーダは、前記複数のレジスタにより提供されるMビットアーキテクチャレジスタを使用して前記データ処理操作を実行するように前記処理回路を制御するための、第2の命令セットのプログラム命令に応答し、Mは、正の整数値であり、前記複数のレジスタの少なくともいくつかは、前記第1の命令セットのプログラム命令および前記第2の命令セットのプログラム命令により共有され、前記命令デコーダは、前記第1の命令セットのプログラム命令による使用に提示されるNビットアーキテクチャレジスタの第1のセットの一部として前記複数のレジスタのどれにアクセスするかを決定する時に、前記第1の命令セットのプログラム命令内のレジスタ指定フィールドをデコードするように構成され、前記命令デコーダは、前記第2の命令セットのプログラム命令による使用に提示されるMビットアーキテクチャレジスタの第2のセットの一部として前記複数のレジスタのどれにアクセスするかを決定する時に、前記第2の命令セットのプログラム命令内のレジスタ指定フィールドをデコードするように構成され、前記命令デコーダは、前記第1の命令セットのプログラム命令内の前記レジスタ指定フィールドの値と、前記複数のレジスタとの間の第1のマッピングと、前記第2の命令セットのプログラム命令内の前記レジスタ指定フィールドの値と、前記複数のレジスタとの間の第2のマッピングとを提供するように構成され、前記第1のマッピングは、前記第2のマッピングとは異なり、前記第1のマッピングおよび前記第2のマッピングは、前記第1のセットの各レジスタが、前記第2のセットのレジスタに対し所定の1対1のマッピングを有し、前記第2のセットの前記レジスタと、前記複数のレジスタ内の共通レジスタの共有部分を共有し前記共通レジスタの非共有部分は前記第1の命令セットの命令を使用してアクセス不可である、前記第2のセットのレジスタを使用してアクセス可能である値を格納するようなマッピングである、データ処理装置。M=2Nである、請求項1に記載の装置。前記第1のセットおよび前記第2のセットは、同数のレジスタを含む、請求項1または2に記載の装置。前記複数のレジスタは、複数のMビットレジスタを備え、前記第1の命令セットのプログラム命令は、前記Mビットレジスタの最下位Nビットにアクセスする、請求項1、2および3のいずれか一項に記載の装置。N=32である、請求項1から4のいずれか一項に記載の装置。前記装置は、前記第1の命令セットのプログラム命令を実行する時に、複数の例外状態において動作するように構成され、前記命令デコーダは、前記複数のレジスタのどれにアクセスするかを決定する時に、前記複数の例外状態の現在の例外状態とともに、前記第1の命令セットのプログラム命令内の前記レジスタ指定フィールドをデコードするように構成され、前記第1の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの共通の値および異なる例外状態に対応する前記第1のセット内のレジスタのグループは、レジスタのバンクグループである、請求項1から5のいずれか一項に記載の装置。前記レジスタのバンクグループ内で、前記第1の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの最下位ビットの値は、前記第2の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの最下位ビットの値と共通である、請求項6に記載の装置。前記命令デコーダは、前記第2の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの増分値のシーケンスに対応する前記第2のセットの前記レジスタの部分に対して、前記第1の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの対応する値が2つの値の間で交互するように、前記マッピングを提供するように構成される、請求項7に記載の装置。前記複数のレジスタは、前記第2の命令セットのプログラム命令にアクセスしたときに、所定のヌル値を格納するヌル値レジスタを含む、請求項1から8のいずれか一項に記載の装置。前記レジスタの第1のセットは、前記ヌル値レジスタにマッピングされたアーキテクチャレジスタを有さない、請求項9に記載の装置。前記第1の命令セットのプログラム命令を実行する時に、プログラムカウンタレジスタは、実行されているプログラム命令のメモリアドレスを示す値を格納し、前記プログラムカウンタレジスタは、前記第2のセットのレジスタにマッピングされる前記第1のセットの外にある、請求項1から10のいずれか一項に記載の装置。前記共通レジスタが前記第1の命令セットのプログラム命令によりアクセスされる時に、前記非共有部分が、ゼロ化される、不変である、および未定義値に設定されるうちの1つである、請求項1から11のいずれか一項に記載の装置。データ処理装置であって、処理対象のデータ値を格納するための複数のレジスタ手段と、前記複数のレジスタ手段に格納されたデータ値に対してデータ処理操作を実行するための処理手段と、プログラム命令のストリームに応答して前記データ処理操作を実行するように前記処理回路を制御するための命令デコーディング手段と、を備え、前記命令デコーディング手段は、前記複数のレジスタ手段により提供されるNビットアーキテクチャレジスタ手段を使用して前記データ処理操作を実行するように前記処理手段を制御するための、第1の命令セットのプログラム命令に応答し、Nは、正の整数値であり、前記命令デコーディング手段は、前記複数のレジスタ手段により提供されるMビットアーキテクチャレジスタ手段を使用して前記データ処理操作を実行するように前記処理手段を制御するための、第2の命令セットのプログラム命令に応答し、Mは、正の整数値であり、前記複数のレジスタ手段の少なくともいくつかは、前記第1の命令セットのプログラム命令および前記第2の命令セットのプログラム命令により共有され、前記命令デコーディング手段は、前記第1の命令セットのプログラム命令による使用に提示されるNビットアーキテクチャレジスタ手段の第1のセットの一部として前記複数のレジスタ手段のどれにアクセスするかを決定する時に、前記第1の命令セットのプログラム命令内のレジスタ指定フィールドをデコードするように構成され、前記命令デコーディング手段は、前記第2の命令セットのプログラム命令による使用に提示されるMビットアーキテクチャレジスタ手段の第2のセットの一部として前記複数のレジスタ手段のどれにアクセスするかを決定する時に、前記第2の命令セットのプログラム命令内のレジスタ指定フィールドをデコードするように構成され、前記命令デコーディング手段は、前記第1の命令セットのプログラム命令内の前記レジスタ指定フィールドの値と、前記複数のレジスタ手段との間の第1のマッピングと、前記第2の命令セットのプログラム命令内の前記レジスタ指定フィールドの値と、前記複数のレジスタ手段との間の第2のマッピングとを提供するように構成され、前記第1のマッピングは、前記第2のマッピングとは異なり、前記第1のマッピングおよび前記第2のマッピングは、前記第1のセットの各レジスタ手段が、前記第2のセットのレジスタ手段に対し所定の1対1のマッピングを有し、前記第2のセットの前記レジスタ手段と、前記複数のレジスタ手段内の共通レジスタ手段の共有部分を共有し前記共通レジスタ手段の非共有部分は前記第1の命令セットを使用してアクセス不可である、前記第2のセットのレジスタ手段を使用してアクセス可能である値を格納するようなマッピングである、データ処理装置。データ処理方法であって、複数のレジスタ内で処理対象のデータ値を格納するステップと、前記複数のレジスタに格納されたデータ値に対してデータ処理操作を実行するステップと、前記データ処理操作を実行する前記ステップを制御するためのプログラム命令のストリームをデコードするステップと、を含み、前記デコードするステップは、前記複数のレジスタにより提供されるNビットアーキテクチャレジスタを使用して前記データ処理操作を実行する前記ステップを制御するための、第1の命令セットのプログラム命令に応答し、Nは、正の整数値であり、前記デコードするステップは、前記複数のレジスタにより提供されるMビットアーキテクチャレジスタを使用して前記データ処理操作を実行する前記ステップを制御するための、第2の命令セットのプログラム命令に応答し、Mは、正の整数値であり、前記複数のレジスタの少なくともいくつかは、前記第1の命令セットのプログラム命令および前記第2の命令セットのプログラム命令により共有され、前記デコードするステップは、前記第1の命令セットのプログラム命令による使用に提示されるNビットアーキテクチャレジスタの第1のセットの一部として前記複数のレジスタのどれにアクセスするかを決定する時に、前記第1の命令セットのプログラム命令内のレジスタ指定フィールドをデコードし、前記デコードするステップは、前記第2の命令セットのプログラム命令による使用に提示されるMビットアーキテクチャレジスタの第2のセットの一部として前記複数のレジスタのどれにアクセスするかを決定する時に、前記第2の命令セットのプログラム命令内のレジスタ指定フィールドをデコードし、前記デコードするステップは、前記第1の命令セットのプログラム命令内の前記レジスタ指定フィールドの値と、前記複数のレジスタとの間の第1のマッピングと、前記第2の命令セットのプログラム命令内の前記レジスタ指定フィールドの値と、前記複数のレジスタとの間の第2のマッピングとを提供し、前記第1のマッピングは、前記第2のマッピングとは異なり、前記第1のマッピングおよび前記第2のマッピングは、前記第1のセットの各レジスタが、前記第2のセットのレジスタに対し所定の1対1のマッピングを有し、前記第2のセットの前記レジスタと、前記複数のレジスタ内の共通レジスタの共有部分を共有し前記共通レジスタの非共有部分は前記第1の命令セットを使用してアクセス不可である、前記第2のセットのレジスタを使用してアクセス可能である値を格納するようなマッピングである、データ処理方法。M=2Nである、請求項14に記載の方法。前記第1のセットおよび前記第2のセットは、同数のレジスタを含む、請求項14または15に記載の方法。前記複数のレジスタは、複数のMビットレジスタを備え、前記第1の命令セットのプログラム命令は、前記Mビットレジスタの最下位Nビットにアクセスする、請求項14、15および16のいずれか一項に記載の装置。N=32である、請求項14から17のいずれか一項に記載の方法。前記第1の命令セットのプログラム命令を実行する時に、複数の例外状態の1つにおいて動作し、前記デコードするステップは、前記複数のレジスタのどれにアクセスするかを決定する時に、前記複数の例外状態の現在の例外状態とともに、前記第1の命令セットのプログラム命令内の前記レジスタ指定フィールドをデコードし、前記第1の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの共通の値および異なる例外状態に対応する前記第1のセット内のレジスタのグループは、レジスタのバンクグループである、請求項14から18のいずれか一項に記載の方法。前記レジスタのバンクグループ内で、前記第1の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの最下位ビットの値は、前記第2の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの最下位ビットの値と共通である、請求項19に記載の方法。前記デコードするステップは、前記第2の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの増分値のシーケンスに対応する前記第2のセットの前記レジスタの部分に対して、前記第1の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの対応する値が2つの値の間で交互するように、前記マッピングを提供する、請求項20に記載の方法。前記複数のレジスタは、前記第2の命令セットのプログラム命令にアクセスした時に、所定のヌル値を格納するヌル値レジスタを含む、請求項14から21のいずれか一項に記載の方法。前記レジスタの第1のセットは、前記ヌル値レジスタにマッピングされたアーキテクチャレジスタを有さない、請求項22に記載の方法。前記第1の命令セットのプログラム命令を実行する時に、プログラムカウンタレジスタは、実行されているプログラム命令のメモリアドレスを示す値を格納し、前記プログラムカウンタレジスタは、前記第2のセットのレジスタにマッピングされるレジスタの前記第1のセットの外にある、請求項14から23のいずれか一項に記載の方法。前記共通レジスタが前記第1の命令セットのプログラム命令によりアクセスされる時に、前記非共有部分が、ゼロ化される、不変である、および未定義値に設定されるうちの1つである、請求項14から24のいずれか一項に記載の装置。データ処理装置上で実行されるコンピュータプログラムにより提供される仮想機械であって、請求項1から12のいずれか一項に記載の装置に対応する命令実行環境を提供する仮想機械。データ処理装置であって、処理対象のデータ値を格納するように構成される複数のレジスタと、前記複数のレジスタに結合され、前記複数のレジスタに格納されたデータ値に対してデータ処理操作を実行するように構成される処理回路と、前記処理回路に結合され、前記データ処理操作を実行するように前記処理回路を制御するためのプログラム命令のストリームに応答する、命令デコーダと、を備え、前記命令デコーダは、前記複数のレジスタにより提供されるアーキテクチャレジスタの第1のセットを使用して前記データ処理操作を実行するように前記処理回路を制御するための、第1の命令セットのプログラム命令に応答し、前記装置は、前記第1の命令セットのプログラム命令を実行する時に、複数の例外状態において動作するように構成され、前記命令デコーダは、どのアーキテクチャレジスタを使用するかを決定する時に、前記複数の例外状態の現在の例外状態とともに、前記第1の命令セットのプログラム命令内のレジスタ指定フィールドをデコードするように構成され、前記命令デコーダは、前記複数のレジスタにより提供され、前記第1の命令セットのプログラム命令と共有される、アーキテクチャレジスタの第2のセットを使用して前記データ処理操作を実行するように前記処理回路を制御するための、第2の命令セットのプログラム命令に応答し、前記命令デコーダは、どのアーキテクチャレジスタを使用するかを決定する時に、例外状態に依存せずに前記第2の命令セットのプログラム命令内のレジスタ指定フィールドをデコードするように構成される、データ処理装置。前記第1のセットおよび前記第2のセットは、同数のレジスタを含む、請求項27に記載の装置。前記複数のレジスタは、複数の2Nビットレジスタを備え、前記第1の命令セットのプログラム命令は、前記2Nビットレジスタの最下位Nビットにアクセスする、請求項27または28に記載の装置。N=32である、請求項29に記載の装置。前記第1の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの共通の値および異なる例外状態に対応する前記第1のセット内のレジスタのグループは、レジスタのバンクグループである、請求項27から30のいずれか一項に記載の装置。前記レジスタのバンクグループ内で、前記第1の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの最下位ビットの値は、前記第2の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの最下位ビットの値と共通である、請求項31に記載の装置。前記命令デコーダは、前記第2の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの増分値のシーケンスに対応する前記第2のセットの前記レジスタの部分に対して、前記第1の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの対応する値が2つの値の間で交互するように構成される、請求項32に記載の装置。前記複数のレジスタは、前記第2の命令セットのプログラム命令にアクセスした時に、所定のヌル値を格納するヌル値レジスタを含み、前記第1のセットは、前記ヌル値レジスタに対応するレジスタを有さない、請求項27から33のいずれか一項に記載の装置。前記第1のセットは、前記ヌル値レジスタに対応するアーキテクチャレジスタを有さない、請求項34に記載の装置。前記第1の命令セットのプログラム命令を実行する時に、プログラムカウンタレジスタは、実行されているプログラム命令のメモリアドレスを示す値を格納し、前記プログラムカウンタレジスタは、前記第2のセットのレジスタに対応する前記第1のセットの外にある、請求項27から35のいずれか一項に記載の装置。データ処理装置であって、処理対象のデータ値を格納するための複数のレジスタ手段と、前記複数のレジスタ手段に格納されたデータ値に対してデータ処理操作を実行するための処理手段と、プログラム命令のストリームに応答して前記データ処理操作を実行するように前記処理回路を制御するための命令デコーダ手段と、を備え、前記命令デコーダ手段は、前記複数のレジスタ手段により提供されるアーキテクチャレジスタの第1のセットを使用して前記データ処理操作を実行するように前記処理手段を制御するための、第1の命令セットのプログラム命令に応答し、前記装置は、前記第1の命令セットのプログラム命令を実行する時に、複数の例外状態において動作するように構成され、前記命令デコーダ手段は、どのアーキテクチャレジスタを使用するかを決定する時に、前記複数の例外状態の現在の例外状態とともに、前記第1の命令セットのプログラム命令内の前記レジスタ指定フィールドをデコードするように構成され、前記命令デコーダ手段は、前記複数のレジスタ手段により提供され、前記第1の命令セットのプログラム命令と共有される、アーキテクチャレジスタの第2のセットを使用して前記データ処理操作を実行するように前記処理手段を制御するための、第2の命令セットのプログラム命令に応答し、前記命令デコーダ手段は、アーキテクチャレジスタのどれを使用するかを決定する時に、例外状態に依存せずに前記第2の命令セットのプログラム命令内のレジスタ指定フィールドをデコードするように構成される、データ処理装置。データ処理方法であって、複数のレジスタ内で処理対象のデータ値を格納するステップと、前記複数のレジスタに格納されたデータ値に対してデータ処理操作を実行するステップと、前記データ処理操作を実行する前記ステップを制御するためのプログラム命令のストリームをデコードするステップと、を含み、前記デコードするステップは、前記複数のレジスタにより提供されるアーキテクチャレジスタの第1のセットを使用して前記データ処理操作を実行する前記ステップを制御するための、第1の命令セットのプログラム命令に応答し、前記第1の命令セットのプログラム命令を実行する時に、複数の例外状態において動作し、どのアーキテクチャレジスタを使用するかを決定するために、前記複数の例外状態の現在の例外状態とともに、前記第1の命令セットのプログラム命令内のレジスタ指定フィールドをデコードするステップと、を含み、前記デコードするステップは、前記複数のレジスタにより提供され、前記第1の命令セットのプログラム命令と共有される、アーキテクチャレジスタの第2のセットを使用して前記データ処理操作を実行する前記ステップを制御するための、第2の命令セットのプログラム命令に応答し、前記デコードするステップは、どのアーキテクチャレジスタを使用するかを決定する時に、例外状態に依存せずに前記第2の命令セットのプログラム命令内のレジスタ指定フィールドをデコードする、データ処理方法。前記第1のセットおよび前記第2のセットは、同数のレジスタを含む、請求項38に記載の方法。前記複数のレジスタは、複数の2Nビットレジスタを備え、前記第1の命令セットのプログラム命令は、前記2Nビットレジスタの最下位Nビットにアクセスする、請求項38または39に記載の方法。N=32である、請求項40に記載の方法。前記第1の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの共通の値および異なる例外状態に対応する前記第1のセット内のレジスタのグループは、レジスタのバンクグループである、請求項38から41のいずれか一項に記載の方法。前記レジスタのバンクグループ内で、前記第1の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの最下位ビットの値は、前記第2の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの最下位ビットの値と共通である、請求項42に記載の方法。前記デコードするステップは、前記第2の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの増分値のシーケンスに対応する前記第2のセットの前記レジスタの部分に対して、前記第1の命令セットの前記プログラム命令内の前記レジスタ指定フィールドの対応する値が2つの値の間で交互するようなステップである、請求項43に記載の方法。前記複数のレジスタは、前記第2の命令セットのプログラム命令にアクセスした時に、所定のヌル値を格納するヌル値レジスタを含み、前記第1のセットは、前記ヌル値レジスタに対応するレジスタを有さない、請求項38から44のいずれか一項に記載の方法。前記第1のセットは、前記ヌル値レジスタに対応するアーキテクチャレジスタを有さない、請求項45に記載の方法。前記第1の命令セットのプログラム命令を実行する時に、プログラムカウンタレジスタは、実行されているプログラム命令のメモリアドレスを示す値を格納し、前記プログラムカウンタレジスタは、前記第2のセットのレジスタに対応する前記第1のセットの外にある、請求項38から46のいずれか一項に記載の方法。データ処理装置上で実行されるコンピュータプログラムにより提供される仮想機械であって、請求項27から36のいずれか一項に記載の装置に対応する命令実行環境を提供する仮想機械。一態様から見れば、本発明は、データ処理装置であって、処理対象のデータ値を格納するように構成される複数のレジスタと、前記複数のレジスタに結合され、前記複数のレジスタに格納されたデータ値に対してデータ処理操作を実行するように構成される処理回路と、前記処理回路に結合され、前記データ処理操作を実行するように前記処理回路を制御するためのプログラム命令のストリームに応答する、命令デコーダと、を備え、前記命令デコーダは、前記複数のレジスタにより提供されるNビットアーキテクチャレジスタを使用して前記データ処理操作を実行するように前記処理回路を制御するための、第1の命令セットのプログラム命令に応答し、Nは、正の整数値であり、前記命令デコーダは、前記複数のレジスタにより提供されるMビットアーキテクチャレジスタを使用して前記データ処理操作を実行するように前記処理回路を制御するための、第2の命令セットのプログラム命令に応答し、Mは、正の整数値であり、前記複数のレジスタの少なくともいくつかは、前記第1の命令セットのプログラム命令および前記第2の命令セットのプログラム命令により共有され、前記命令デコーダは、前記第1の命令セットのプログラム命令による使用に提示されるNビットアーキテクチャレジスタの第1のセットの一部として前記複数のレジスタのどれにアクセスするかを決定する時に、前記第1の命令セットのプログラム命令内のレジスタ指定フィールドをデコードするように構成され、前記命令デコーダは、前記第2の命令セットのプログラム命令による使用に提示されるMビットアーキテクチャレジスタの第2のセットの一部として前記複数のレジスタのどれにアクセスするかを決定する時に、前記第2の命令セットのプログラム命令内のレジスタ指定フィールドをデコードするように構成され、前記命令デコーダは、前記第1の命令セットのプログラム命令内の前記レジスタ指定フィールドの値と、前記複数のレジスタとの間の第1のマッピングと、前記第2の命令セットのプログラム命令内の前記レジスタ指定フィールドの値と、前記複数のレジスタとの間の第2のマッピングとを提供し、前記第1のマッピングは、前記第2のマッピングとは異なり、前記第1のマッピングおよび前記第2のマッピングは、前記第1のセットの各レジスタが、前記第2のセットのレジスタに対し所定の1対1のマッピングを有し、前記第2のセットの前記レジスタと、前記複数のレジスタ内の共通レジスタの共有部分を共有し前記共通レジスタの非共有部分は前記第1の命令セットを使用してアクセス不可である、前記第2のセットのレジスタを使用してアクセス可能である値を格納するようなマッピングである、データ処理装置を提供する。本発明の技術は、異なる幅のアーキテクチャレジスタに対して異なる命令セットが動作する場合であっても、命令セットは、複数のレジスタのリソースを共有することができることを認識する。さらに、2つの命令セットにより使用されるレジスタ識別子間の所定の1対1のマッピングに対応することにより、命令セットの少なくとも1つは、他の命令セットによりレジスタ内に格納される値の全てにアクセスすることが可能である。これは、2つの命令セットに書き込まれるプログラムの相互操作、例えば2つの命令セットの異なる一方を使用して書き込まれるプログラム間のデータ値の共有に有益である。命令は、典型的には、2つ以上のレジスタ指定フィールドを含み得ることが理解される。いくつかの命令はまた、特定のレジスタの使用を暗に指定してもよく、例えばPUSHおよびPOP命令は、スタックポインタレジスタの使用を暗に指定する。第1の命令セットに提示されるようなレジスタの第1のセットは、第2の命令セットに提示されるようなレジスタの第2のセットとは数が異なっていてもよいことが可能であるが、少なくとも好ましい実施形態において、第1のセットおよび第2のセットは、同数のレジスタを含む。これは、提供されるレジスタリソースの高レベルの再使用に役立つだけでなく、2つの命令セット間の効率的な相互運用性を促進する。Mビットアーキテクチャレジスタは、2Nビットアーキテクチャレジスタであってもよい。複数のレジスタは、第2の命令セットによる2Nビットデータ値の操作を容易化するために、2Nビットレジスタであってもよい。この場合、第1の命令セットは、2Nビットレジスタの最下位Nビットにアクセスするように構成されてもよい。レジスタサイズおよびデータ幅は変動し得るが、少なくともいくつかの好ましい実施形態において、N=32である。アクセスされるレジスタは、プログラム命令内のレジスタ指定フィールドにより完全に指定されてもよい。代替として、どのアーキテクチャレジスタが処理されるべきかを決定するために、現在の例外状態等の追加的状態が、レジスタ指定フィールドの値と組み合わされてもよい。本発明の少なくともいくつかの好ましい実施形態において、第1の命令セットがこのように動作する。例外状態が、所与の値のレジスタ指定フィールドに対してどのアーキテクチャレジスタが使用されるべきかを指定する上での追加的な自由度を提供する場合、レジスタ指定フィールドの共通の値および異なる例外状態でアクセスされるアーキテクチャレジスタのグループは、レジスタのバンクグループと呼ばれる。そのような構成は、迅速な実行処理の補助に有用となり得る。例えばアウトオブオーダー処理を容易化するためにレジスタリネーミングを使用する実施形態において、アーキテクチャレジスタにマッピングされる物理レジスタは変化すること、および、処理の所与の時点において、同じアーキテクチャレジスタに対応する複数の物理レジスタが存在し得るが、プログラム順序においては別の点であることが理解される。命令デコーディングおよび使用される正しいアーキテクチャレジスタの識別を単純化するために、命令デコーダにより使用されるマッピングは、レジスタのバンクグループ内において、そのようなバンクレジスタの1つを指定する第1の命令セットのプログラム命令内のレジスタ指定フィールドの最下位ビットの値は、同じアーキテクチャレジスタにマッピングする第2の命令セットのプログラム命令のレジスタ指定フィールドの最下位ビットと共通の値であるように構成されるようなマッピングであってもよい。これは、デコーディングを単純化する。バンクレジスタに関連した上述の構成を利用するいくつかの実施形態の特徴は、命令デコーダが、第2のセットのプログラムインストラクション内のレジスタ指定フィールドの増分値のシーケンスに対応する前記第2のセットのレジスタの部分に対して、第1の命令セットのプログラム命令内のレジスタ指定フィールドの対応する値が2つの値で交互するように、マッピングを提供するように構成されることである。提供される複数のレジスタは、第2の命令セットのプログラム命令にアクセスした時に所定のヌル値を格納するヌル値レジスタを含んでもよく、第1の命令セットは、ヌル値レジスタにマッピングされるレジスタを有さない。そのようなヌル値レジスタは、読み出された時にヌル値を返すことができ、書き込むレジスタとしてヌル値レジスタを指定する命令は、結果が廃棄されたものとして解釈される。いくつかの実施形態において、ヌル値はゼロである。いくつかの実施形態において、第1の命令セットのプログラム命令を実行する時に、プログラムカウンタレジスタは、実行されているプログラム命令のメモリアドレスを示す値を格納し、プログラムカウンタレジスタは、第2のセットのレジスタにマッピングされる第1のセットの外にある。したがって、上述のように命令デコーダにより提供される1対1のマッピングは、プログラムカウンタレジスタを含まない。さらなる態様から見れば、本発明は、データ処理装置であって、処理対象のデータ値を格納するための複数のレジスタ手段と、前記複数のレジスタ手段に格納されたデータ値に対してデータ処理操作を実行するための処理手段と、プログラム命令のストリームに応答して前記データ処理操作を実行するように前記処理回路を制御するための命令デコーディング手段と、を備え、前記命令デコーディング手段は、前記複数のレジスタ手段により提供されるNビットアーキテクチャレジスタ手段を使用して前記データ処理操作を実行するように前記処理手段を制御するための、第1の命令セットのプログラム命令に応答し、Nは、正の整数値であり、前記命令デコーディング手段は、前記複数のレジスタ手段により提供されるMビットアーキテクチャレジスタ手段を使用して前記データ処理操作を実行するように前記処理手段を制御するための、第2の命令セットのプログラム命令に応答し、Mは、正の整数値であり、前記複数のレジスタ手段の少なくともいくつかは、前記第1の命令セットのプログラム命令および前記第2の命令セットのプログラム命令により共有され、前記命令デコーディング手段は、前記第1の命令セットのプログラム命令による使用に提示されるNビットアーキテクチャレジスタ手段の第1のセットの一部として前記複数のレジスタ手段のどれにアクセスするかを決定する時に、前記第1の命令セットのプログラム命令内のレジスタ指定フィールドをデコードするように構成され、前記命令デコーディング手段は、前記第2の命令セットのプログラム命令による使用に提示されるMビットアーキテクチャレジスタ手段の第2のセットの一部として前記複数のレジスタ手段のどれにアクセスするかを決定する時に、前記第2の命令セットのプログラム命令内のレジスタ指定フィールドをデコードするように構成され、前記命令デコーディング手段は、前記第1の命令セットのプログラム命令内の前記レジスタ指定フィールドの値と、前記複数のレジスタ手段との間の第1のマッピングと、前記第2の命令セットのプログラム命令内の前記レジスタ指定フィールドの値と、前記複数のレジスタ手段との間の第2のマッピングとを提供するように構成され、前記第1のマッピングは、前記第2のマッピングとは異なり、前記第1のマッピングおよび前記第2のマッピングは、前記第1のセットの各レジスタ手段が、前記第2のセットのレジスタ手段に対し所定の1対1のマッピングを有し、前記第2のセットの前記レジスタ手段と、前記複数のレジスタ手段内の共通レジスタ手段の共有部分を共有し前記共通レジスタ手段の非共有部分は前記第1の命令セットを使用してアクセス不可である、前記第2のセットのレジスタ手段を使用してアクセス可能である値を格納するようなマッピングである、データ処理装置を提供する。別の態様から見れば、本発明は、データ処理方法であって、複数のレジスタ内で処理対象のデータ値を格納するステップと、前記複数のレジスタに格納されたデータ値に対してデータ処理操作を実行するステップと、前記データ処理操作を実行する前記ステップを制御するためのプログラム命令のストリームをデコードするステップと、を含み、前記デコードするステップは、前記複数のレジスタにより提供されるNビットアーキテクチャレジスタを使用して前記データ処理操作を実行する前記ステップを制御するための、第1の命令セットのプログラム命令に応答し、Nは、正の整数値であり、前記デコードするステップは、前記複数のレジスタにより提供されるMビットアーキテクチャレジスタを使用して前記データ処理操作を実行する前記ステップを制御するための、第2の命令セットのプログラム命令に応答し、Mは、正の整数値であり、前記複数のレジスタの少なくともいくつかは、前記第1の命令セットのプログラム命令および前記第2の命令セットのプログラム命令により共有され、前記デコードするステップは、前記第1の命令セットのプログラム命令による使用に提示されるNビットアーキテクチャレジスタの第1のセットの一部として前記複数のレジスタのどれにアクセスするかを決定する時に、前記第1の命令セットのプログラム命令内のレジスタ指定フィールドをデコードし、前記デコードするステップは、前記第2の命令セットのプログラム命令による使用に提示されるMビットアーキテクチャレジスタの第2のセットの一部として前記複数のレジスタのどれにアクセスするかを決定する時に、前記第2の命令セットのプログラム命令内のレジスタ指定フィールドをデコードし、前記デコードするステップは、前記第1の命令セットのプログラム命令内の前記レジスタ指定フィールドの値と、前記複数のレジスタとの間の第1のマッピングと、前記第2の命令セットのプログラム命令内の前記レジスタ指定フィールドの値と、前記複数のレジスタとの間の第2のマッピングとを提供し、前記第1のマッピングは、前記第2のマッピングとは異なり、前記第1のマッピングおよび前記第2のマッピングは、前記第1のセットの各レジスタが、前記第2のセットのレジスタに対し所定の1対1のマッピングを有し、前記第2のセットの前記レジスタと、前記複数のレジスタ内の共通レジスタの共有部分を共有し前記共通レジスタの非共有部分は前記第1の命令セットを使用してアクセス不可である、前記第2のセットのレジスタを使用してアクセス可能である値を格納するようなマッピングである、データ処理方法を提供する。さらなる態様から見れば、本発明は、データ処理装置であって、処理対象のデータ値を格納するように構成される複数のレジスタと、前記複数のレジスタに結合され、前記複数のレジスタに格納されたデータ値に対してデータ処理操作を実行するように構成される処理回路と、前記処理回路に結合され、前記データ処理操作を実行するように前記処理回路を制御するためのプログラム命令のストリームに応答する、命令デコーダと、を備え、前記命令デコーダは、前記複数のレジスタにより提供されるアーキテクチャレジスタの第1のセットを使用して前記データ処理操作を実行するように前記処理回路を制御するための、第1の命令セットのプログラム命令に応答し、前記装置は、前記第1の命令セットのプログラム命令を実行する時に、複数の例外状態において動作するように構成され、前記命令デコーダは、どのアーキテクチャレジスタを使用するかを決定する時に、前記複数の例外状態の現在の例外状態とともに、前記第1の命令セットのプログラム命令内の前記レジスタ指定フィールドをデコードするように構成され、前記命令デコーダは、前記複数のレジスタにより提供され、前記第1の命令セットのプログラム命令と共有される、アーキテクチャレジスタの第2のセットを使用して前記データ処理操作を実行するように前記処理回路を制御するための、第2の命令セットのプログラム命令に応答し、前記命令デコーダは、例外状態に依存せずに前記第2の命令セットのプログラム命令内のレジスタ指定フィールドをデコードし、どのアーキテクチャレジスタを使用するかを決定するように構成される、データ処理装置を提供する。さらなる態様から見れば、本発明は、データ処理装置であって、処理対象のデータ値を格納するための複数のレジスタ手段と、前記複数のレジスタ手段に格納されたデータ値に対してデータ処理操作を実行するための処理手段と、プログラム命令のストリームに応答して前記データ処理操作を実行するように前記処理回路を制御するための命令デコーディング手段と、を備え、前記命令デコーダ手段は、前記複数のレジスタ手段により提供されるアーキテクチャレジスタの第1のセットを使用して前記データ処理操作を実行するように前記処理手段を制御するための、第1の命令セットのプログラム命令に応答し、前記装置は、前記第1の命令セットのプログラム命令を実行する時に、複数の例外状態において動作するように構成され、前記命令デコーダ手段は、どのアーキテクチャレジスタを使用するかを決定する時に、前記複数の例外状態の現在の例外状態とともに、前記第1の命令セットのプログラム命令内の前記レジスタ指定フィールドをデコードするように構成され、前記命令デコーダ手段は、前記複数のレジスタ手段により提供され、前記第1の命令セットのプログラム命令と共有される、アーキテクチャレジスタの第2のセットを使用して前記データ処理操作を実行するように前記処理手段を制御するための、第2の命令セットのプログラム命令に応答し、前記命令デコーダ手段は、どのアーキテクチャレジスタを使用するかを決定する時に、例外状態に依存せずに前記第2の命令セットのプログラム命令内のレジスタ指定フィールドをデコードするように構成される、データ処理装置を提供する。さらなる態様から見れば、本発明は、データ処理方法であって、複数のレジスタ内で処理対象のデータ値を格納するステップと、前記複数のレジスタに格納されたデータ値に対してデータ処理操作を実行するステップと、前記データ処理操作を実行する前記ステップを制御するためのプログラム命令のストリームをデコードするステップと、を含み、前記デコードするステップは、前記複数のレジスタにより提供されるアーキテクチャレジスタの第1のセットを使用して前記データ処理操作を実行する前記ステップを制御するための、第1の命令セットのプログラム命令に応答し、前記第1の命令セットのプログラム命令を実行する時に、複数の例外状態において動作し、どのアーキテクチャレジスタを使用するかを決定するために、前記複数の例外状態の現在の例外状態とともに、前記第1の命令セットのプログラム命令内の前記レジスタ指定フィールドをデコードするステップと、を含み、前記デコードするステップは、前記複数のレジスタにより提供され、前記第1の命令セットのプログラム命令と共有される、アーキテクチャレジスタの第2のセットを使用して前記データ処理操作を実行する前記ステップを制御するための、第2の命令セットのプログラム命令に応答し、前記デコードするステップは、どのアーキテクチャレジスタを使用するかを決定する時に、例外状態に依存せずに前記第2の命令セットのプログラム命令内のレジスタ指定フィールドをデコードする、データ処理方法を提供する。ここで、例示のみを目的として、添付の図面を参照しながら本発明の実施形態を説明する。図1は、メモリ6に結合されたプロセッサ4を含むデータ処理システムを概略的に示している。プロセッサ4は、3164ビット汎用レジスタとして形成された複数のレジスタ8、および常にゼロ値を返すヌルレジスタを含む。これらは、一実施形態においてレジスタリネーミングを使用しないプロセッサ4のハードウェアにより提供されるレジスタである。レジスタリネーミングを使用する一実施形態において、アーキテクチャレジスタ例えば命令により指定され、プログラマーのモデルにおいて考慮されるようなレジスタは、異なる物理レジスタにマッピングされてもよく、複数の物理レジスタは、プログラム順序において異なる時間に同じアーキテクチャレジスタに対応する値を同時に保有してもよい。レジスタ8の使用は、32ビットでエンコードされ32ビットデータ値32ビット命令に対し動作する命令を含む第1の命令セットに提示されるレジスタの第1のセット32ビットアーキテクチャレジスタのセットを介するもの、および32ビットでエンコードされ64ビットデータ値64ビット命令に対し動作する命令を含む第2の命令セットに提示されるレジスタの第2のセット64ビットアーキテクチャレジスタを介するものである。これらの両方の命令セット内の命令は、32ビットを有するものとしてエンコードされるが、これらの命令セットに影響されるデータ値の幅は異なる。処理回路10は、複数のレジスタ8に結合され、乗算器12、シフター14および加算器16を含むデータパスの形態をとる。命令デコーダ18レジスタマッピング回路を含むは、命令デコーダ18によりデコードされたプログラム命令に応答して制御信号20を生成する。これらの制御信号20は、処理回路10を制御および構成するとともに、複数の汎用レジスタ8内のレジスタへのアクセスを制御する。処理回路10は明確性を改善するために単純化された形態で示されていること、また実際にはより多くの回路要素が存在し得ることが理解される。データ処理システム2は、状態データユーザ可読であってもよく、またはユーザ可読でなくてもよいを使用して、プログラム命令が第1の命令セットのプログラム命令としてデコードされるか、または第2の命令セットのプログラム命令としてデコードされるかを制御し、例えば、モードビットまたはモード状態は、どの命令セットが使用されているかを示すように設定されてもよい。異なる命令セット内の命令のエンコーディングは、同じ命令ビットパターンが両方の命令セットにおいて生じてもよく、それらの命令セット内の異なる命令に対応してもよいという点で非直交であってもよい。デコードされるプログラム命令は、第1の命令セットのプログラム24および第2の命令セットのプログラム26の両方を格納するメモリ6から、命令パイプライン22にフェッチされる。プログラム命令が命令パイプライン22内のデコード段階に達すると、次いでそれらは、命令デコーダ18に受け渡され、デコードされて制御信号20が生成される。命令デコーダ18はまた、どの命令セットが現在使用されているか、およびそれに伴い命令パイプライン22によるデコーディングに提示されるプログラム命令が、第1の命令セットの32ビット命令として、または第2の命令セットの64ビット命令としてデコードされるべきか否かを示す、命令セット選択回路28からの信号に応答する。命令デコーダ18が第1の命令セットからの命令32ビット命令をデコードしている場合、命令デコーダはまた、プロセッサ4が現在どのモードで動作しているかを示す32ビット例外モード回路30からの信号に応答する。第1の命令セットのプログラム命令を実行する時の現在の例外モードは、以下で説明されるように、第1の命令セットに提示されるレジスタの第1のセットのレジスタのどれが使用されるべきかを指定するために必要である。図2は、図1からの複数の汎用レジスタ8の1つを示す。この汎用レジスタは、64ビットレジスタである。第1の命令セット32ビット命令のプログラム命令を実行する場合、図2のレジスタの最下位ビット部がアクセスされ、操作される。好ましい実施形態において、最上位ビット部は、そのような操作中不変のまま維持されるが、ゼロ化されるか、またはある未定義値に設定されてもよい。図2のレジスタが第2の命令セットのプログラム命令によりアクセスされる場合、レジスタの64ビット全てが利用される。したがって、2つの命令セットが異なるデータ幅に対して動作するとしても、図1の複数のレジスタ8に提供される物理レジスタの使用を共有することができる。レジスタの最上位32ビットは、2つの命令セット間で共有されないレジスタの部分である。図3は、第1の命令セットからの加算操作の実行におけるレジスタの使用を概略的に示す。図から分かるように、各レジスタの下位部分が、入力オペランドまたは実行される処理操作の宛先を提供するために利用される。レジスタの上位部分は無視され、好ましい実施形態においては不変のままである。図4において、第2の命令セット64ビット命令の加算操作が同様の様式で示されている。図4から、この場合の入力オペランドおよび宛先は、全て図2のレジスタの全幅を利用することが分かる。図5は、3つのレジスタ指定フィールドを含む第1の命令セットの命令32ビット命令を概略的に示す。これらのレジスタ指定フィールドは、各レジスタ指定フィールドにより16個の異なる値を指定することができる4ビットフィールドである。2つのソースレジスタ指定フィールド、すなわちRmおよびRnが示されている。1つの宛先レジスタ指定フィールド、すなわちRdが示されている。図5に概略的に示されている命令の残りは、どのデータ処理操作が実行されるべきかを示すために使用されるオペコードである。レジスタ指定フィールドはまた、不連続であってもよく、レジスタ指定子のいくつかのビットは、レジスタ指定子の他のビットから分離されてもよい。図6は図5に類似しているが、ただしこの場合第2の命令セットからの命令64ビット命令が示されている。この場合、レジスタ指定フィールドは、各レジスタ指定フィールドに対し最大32個の異なる値を示すことができる5ビットフィールドである。ソースレジスタ指定フィールドは、XmおよびXnであり、宛先レジスタ指定フィールドは、Xdである。図7は、第1の命令セットに提示されるようなアーキテクチャレジスタの第1のセットを示す。これは、ARMLimitedCambridge、Englandにより設計されたプロセッサにおけるARM命令セットに提示されるアーキテクチャレジスタのセットである。レジスタ指定フィールドは、0から15の値を指定することができる4ビットフィールドである。レジスタR15は、プログラムカウンタとしての使用に確保される。プログラムカウンタとしてのR15の使用は、特殊目的の使用であり、プログラムカウンタは、後述のように、64ビット命令に提示されるアーキテクチャレジスタの第2のセットにマッピングされるARM命令セット第1の命令セットに提示されるアーキテクチャレジスタの第1のセットの1つを形成しない。図7に示されるように、ユーザおよびシステムモードは、15の汎用レジスタR0からR14を有する。実行されているデータ処理操作の一部としてこれらのレジスタのうちどれがアクセスされるべきかを指定するために、図5に示されるような命令内のレジスタ指定フィールドが使用される。多くのデータ処理操作が、アクセスされる複数のレジスタを指定することが理解される。実際には、レジスタR13がスタックポインタとしての使用に確保され、レジスタR14が、例えば機能呼び出しに関するリターンアドレスの格納のために、リターンアドレスレジスタとして使用される。図7は、プロセッサ4が例外モードの1つで動作している場合32ビット例外モード回路30により命令デコーダ18に示されるように、特定のレジスタ指定値を使用する際に異なるアーキテクチャレジスタが第1の命令セットに提供されることを示している。したがって、一例として、レジスタ指定値が13である場合、使用することができる7個の異なるアーキテクチャレジスタがある任意のレジスタリネーミングの前に。これらのアーキテクチャレジスタの1番目は、ユーザまたはシステムモードで使用される。ユーザまたはシステムモードで使用されるアーキテクチャレジスタの代わりに有効に置換される、これらのアーキテクチャレジスタの残りの6個は、現在の例外モードまたはプロセッサがハイパーバイザモードで実行されているか否かに基づいて選択される。プロセッサ4がハイパーバイザモードで実行されている場合、これは、図1に示されるように、命令デコーダ18への信号入力により示される。ユーザまたはシステムモードのR13の代替となることができる6個のアーキテクチャレジスタは、バンク例外レジスタと呼ばれるグループとしてのレジスタである。異なるアーキテクチャレジスタは、異なる数のバンク化相当物を有し、全てのアーキテクチャレジスタがバンク化相当物を有するわけではないことが分かる。これらのバンクレジスタの提供は、いくつかの状況において、より迅速な例外処理を促進することができる。図8は、第2の命令セットに提示されるようなアーキテクチャレジスタの第2のセットを概略的に示す。このアーキテクチャレジスタの第2のセットは、図7に示されるアーキテクチャレジスタの第1のセットと比較して、単純化された構造を有する。アーキテクチャレジスタの第2のセットは、それぞれ64ビットレジスタである31個の汎用レジスタを備える。これらは、X0からX30と指定される。図6に示される5ビットレジスタ指定フィールドは、これらのアーキテクチャレジスタのどれがアクセスされるべきかを指定するために使用される。図8に示されるアーキテクチャレジスタは、64ビットレジスタとしてアクセスされ、64ビット全てが、指定されるデータ処理操作により操作される。対照的に、図7のアーキテクチャレジスタは、基底物理レジスタが図2に示されるような64ビットレジスタであるとしても、32ビットレジスタとしてアクセスされる。また、図8には、ヌル値例えば0を格納するヌルレジスタX31が示されている。このヌルレジスタが読み出される時は必ず、ヌル値が返される。このレジスタが書き込まれる時は必ず、書き込みの試行に関わらずヌル値がヌルレジスタに格納されたままとなる。図7に示されるような第1の命令セットに提示されるアーキテクチャレジスタにおいては、図8のヌルレジスタの相当物は存在しない。したがって、ヌルレジスタは、第1のセットおよび第2のセットのレジスタ間の1対1マッピングに供されるアーキテクチャレジスタの第2のセット内には含まれない。図9は、第1のセットのレジスタと第2のセットのレジスタとの間のマッピングを示す。図示されるように、レジスタX0からX7は、レジスタR0からR7と同様に、それぞれ同じ64ビットレジスタにアクセスする。これは、図示されるようなマッピングについてさらなるレジスタに対して継続される。留意すべき特徴は、レジスタR13およびR14の場合、第1の命令セットにおいて使用されるレジスタ指定子の最下位ビットが、第2の命令セットの対応するレジスタに対して使用されるレジスタ指定子の最下位ビットに対応する点である。これは、物理レジスタを選択するためのレジスタ指定子および例外モードのデコーディングを単純化する。このマッピングのさらなる特徴は、レジスタX16からX23に対するレジスタ指定子の増分順序が、値が交互するR14およびR13の第1の命令セットにおけるレジスタ値に対応する点である。図9から、第1の命令セットに提示されるレジスタの第1のセットと、第2の命令セットに提示されるレジスタの第2のセットとの間の1対1マッピングが存在することが分かる。第1のセットのレジスタは全て、第2の命令セットのプログラム命令にアクセス可能である。これは、命令セット間の相互運用性を促進する。したがって、第1の命令セットの命令を実行している間、バンクレジスタ内に保持されるある特定の値は、現在の例外モードがそれらのバンクレジスタを使用にマッピングしないため、プログラム命令に利用可能ではない可能性がある。しかしながら、第2の命令セットの命令の実行へのスイッチは、第1のセットのレジスタの全てを、それらが現在のモードとは独立して全てアクセス可能となるように、第2のセットのレジスタにマッピングする。図10は、命令デコーダ18の動作を概略的に示すフロー図である。ステップ32において、処理は、命令が受信されるまで待機する。ステップ34において、命令が第2の命令セットからのものか否か、すなわち命令が64ビット命令か否かに関して決定がなされる。命令が64ビット命令である場合、ステップ36は、64ビット命令をデコードする。ステップ38は、使用されるレジスタを、5ビットフィールドであるレジスタ指定フィールドにマッピングする。次いで、ステップ40は、5ビットレジスタ指定フィールドにより指定されたレジスタにアクセスする。ステップ42は、命令を実行する。ステップ34における決定が、命令が64ビット命令ではないという決定である場合、ステップ44は、命令を32ビット命令としてデコードする。ステップ46は、4ビットレジスタ指定フィールド、ならびに上述のような現在の例外モードおよびハイパーバイザ状態を使用して、使用されるレジスタをマッピングする。次いで、ステップ40および42は、識別されたレジスタにアクセスし、命令を実行する。図11は、命令デコーダ18の一部により実行されるような、異なる命令セットからのプログラム命令のデコーディングを概略的に示す。これらの命令セットは、32ビットデータ値を操作する32ビット命令としてエンコードされるARM命令セット、32ビットデータ値を操作する16ビット命令としてエンコードされるThumb命令セット、および64ビットデータ値を操作する32ビット命令としてエンコードされる64ビット命令セットである。ARM命令は、yビット、例えば16個の異なるアーキテクチャレジスタを指定することができる4ビットの長さのレジスタフィールドを含む。Thumb命令は、いくつかの命令に使用されるHビットで拡張されたxビット、例えば、8個のアーキテクチャレジスタが通常アドレスされ、いくつかの命令において16個のアーキテクチャレジスタのアドレスを可能とするHビットにより拡張され得る3ビットのレジスタ指定フィールドを使用する。64ビット命令は、zビットレジスタ指定フィールド、例えば、32個のアーキテクチャレジスタがアドレスされ得る5ビットレジスタ指定フィールドを使用する。プロセッサ4内の状態は、どの命令セットが現在使用されているかを制御する。この状態は、いくつかの実施形態において、プログラマーに可視であってもよい。現在使用中の命令セットは、命令セット選択命令を使用して選択することができ、これは、分岐動作、例えば、命令セットのスイッチを有するブランチ等に関連付けられる場合がある。異なる命令セットの命令エンコーディングは非直交であり、その結果、ARM命令を指定する同じ32ビットパターンが、64ビット命令セット内の異なる命令に対応し得る。この32ビットパターンの正しいデコーディングは、どの命令セットが現在使用中かを識別する状態と組み合わせて実行することができる。Thumb命令のレジスタ指定フィールドのデコーディングは、まず変換回路50を使用してxビットおよびHビットをyビットフィールドに変換することにより行われる。このyビットフィールドは、ARM命令におけるyビットフィールドに対応する。次いで、マルチプレクサ52が、ARMまたはThumb命令セットのどれが現在使用中かに基づいて、変換回路50からのyビットレジスタ指定フィールド、またはARM命令から読み出されたyビット指定フィールドを、バンクレジスタマッピング回路54に受け渡すことを選択する。図7に関連して上述したように、ARM命令セットおよびThumb命令セットもは、バンクレジスタを提供する。特定のアーキテクチャレジスタにアクセスするために、yビットレジスタ指定フィールドおよび現在の例外モードの両方がバンクレジスタマッピング回路54によりデコードされ、zビットのアーキテクチャフラットレジスタ数AFRNを生成する必要がある。ARM命令またはThumb命令から生成された所与のyビットレジスタ指定フィールドは、例えば、レジスタR13を指定することができる。しかしながら、図7に示されるように、それぞれこのyビットフィールドに対応する7個のアーキテクチャレジスタが存在し、対応するアーキテクチャフラットレジスタ数を生成するために、現在の例外モードを使用して、これらの7個の異なるアーキテクチャレジスタのうちから選択する。64ビット命令セットは、バンクレジスタを使用しない。したがって、アクセスされるアーキテクチャレジスタを指定するためにzビットレジスタ指定フィールドをアーキテクチャフラットレジスタ数として直接使用することができる。マルチプレクサ56は、レジスタリネーミング回路58に受け渡されるアーキテクチャフラットレジスタ数を提供するために、64ビット命令から読み出されたアーキテクチャフラットレジスタ数、またはバンクレジスタマッピング回路54により生成されたアーキテクチャフラットレジスタ数のいずれかを選択する。レジスタリネーミング回路は、複数のレジスタ60内の物理レジスタをアドレスするために使用されるレジスタ指定子z’を生成するために、既知のアウトオブオーダー処理技術に従い、レジスタリネーミング操作を実行することができる。図11の構成は、レジスタリネーミング回路58が異なる命令セット間で共有されることを可能とするだけでなく、複数のレジスタ60の共有を可能とする。アーキテクチャフラットレジスタ数の共通の生成は、複数のレジスタ60のデコーディングおよび共有を単純化する。レジスタリネーミング回路58は、全ての実施形態に提供される必要はない。図12は、使用可能な仮想機械実装を示す。前述の実施形態は、関連する技術をサポートする特定の処理ハードウェアを操作するための装置および方法に関して、本発明を実施するものであるが、ハードウェアデバイスのいわゆる仮想機械実装を提供することも可能である。これらの仮想機械実装は、仮想機械プログラム510をサポートするホストオペレーティングシステム520を実行しているホストプロセッサ530上で行われる。典型的には、妥当な速度で実行する仮想機械実装を提供するためには、大型の強力なプロセッサが必要であるが、そのような手法は、例えば、適合性または再使用の理由から、別のプロセッサにネイティブなコードを実行することが求められる場合等、ある特定の状況においては正当化され得る。仮想機械プログラム510は、アプリケーションプログラム500に対して、仮想機械プログラム510によりモデル化されているデバイスである実際のハードウェアにより提供されるようなアプリケーションプログラムインターフェースと同じアプリケーションプログラムインターフェースを提供する。したがって、上述のメモリアクセスの制御を含むプログラム命令は、仮想機械ハードウェアとのインタラクションをモデル化するための仮想機械プログラム500を使用して、アプリケーションプログラム500内から実行することができる。