"第1の数の大容量GPRを有するコンピュータにおいて、プログラムの命令が利用可能な汎用レジスタGPRの有効数を拡張するためにコンピュータに実装する方法であって、各々の命令は、オペコードと、対応するGPRを指定するための1つ又は複数のGPRフィールドとを含み、各々の大容量GPRは第1の部分と第2の部分とを含み、前記大容量GPRは、前記第1の部分から成る第1の小容量GPRと、前記第2の部分から成る第2の小容量GPRとを含み、前記方法は、前記コンピュータが小容量GPRモードにあることに応答して、a前記第1の小容量GPRにアクセスするための第1の命令セットの命令を実行することであって、前記実行は、前記第1の小容量GPRに基づいたメモリオペランドにアクセスするため又は第1の小容量GPRのオペランドにアクセスするためにメモリアドレスを生成することを含み、前記第1の小容量GPRは前記第1の部分から成る、実行すること、及び、b前記第2の小容量GPRにアクセスするための第2の命令セットの命令を実行することであって、前記実行は、前記第2の小容量GPRに基づいたメモリオペランドにアクセスするため又は第2の小容量GPRのオペランドにアクセスするためにメモリアドレスを生成することを含み、前記第2の小容量GPRは前記第2の部分から成る、実行することを実行することと、前記コンピュータが大容量GPRモードにあることに応答して、第3の命令セットの命令を実行することであって、前記実行は、前記大容量GPRに基づいたメモリオペランドにアクセスするため又は前記第1の部分及び前記第2の部分を含む大容量GPRのオペランドにアクセスするためにメモリアドレスを生成することを含む、実行することと、を含む方法。前記小容量GPRモードは、24ビットアドレッシングモード又は31ビットアドレッシングモードの一方にあることを含む、請求項1に記載の方法。前記第1の部分は32ビットであり、前記第2の部分は32ビットであり、第3の部分は64ビットである、請求項2に記載の方法。前記第2の命令セットの前記命令を実行することは、2つのオペランドに基づいた対応オペコード定義関数を実行し、結果を格納することを含み、前記対応オペコード定義関数は、2つのオペランドのADD関数、又は2つのオペランドのCOMPARE関数から成る、請求項2に記載の方法。前記第2の命令セットの前記命令を実行することは、2つのオペランドに基づいた対応オペコード定義関数を実行し、結果を格納することを含み、前記対応オペコード定義関数は、メモリからのオペランドのLOAD関数、又はメモリへのオペランドのSTORE関数から成る、請求項2に記載の方法。前記第2の命令セットの前記命令を実行することは、2つのオペランドに基づいた対応オペコード定義関数を実行し、結果を格納することを含み、前記対応オペコード定義関数は、命令が指定した量だけソースオペランドをローテートさせることと、前記ローテートされたソースオペランドの選択された部分をターゲットオペランドの選択された部分に挿入することと、を含むROTATETHENINSERTSELECTEDBITS関数である、請求項2に記載の方法。大容量GPRモードで動作するオペレーティングシステムをサポートすることを含み、前記大容量GPRは、小容量GPRモードで実行されているアプリケーションためのコンテキストスイッチ中、保存され、復元される、請求項2に記載の方法。前記第3の命令セットは、前記第1の命令セットと前記第2の命令セットとを含む、請求項7に記載の方法。第1の数の大容量GPRを有するコンピュータにおいて、プログラムの命令が利用可能な汎用レジスタGPRの有効数を拡張するためのコンピュータプログラムであって、各々の命令は、オペコードと、対応するGPRを指定するための1つ又は複数のGPRフィールドとを含み、各々の大容量GPRは第1の部分と第2の部分とを含み、前記大容量GPRは、前記第1の部分から成る第1の小容量GPRと、前記第2の部分から成る第2の小容量GPRとを含み、前記コンピュータプログラムは、コンピュータに、前記コンピュータが小容量GPRモードにあることに応答して、a前記第1の小容量GPRにアクセスするための第1の命令セットの命令を実行することであって、前記実行は、前記第1の小容量GPRに基づいたメモリオペランドにアクセスするため又は第1の小容量GPRのオペランドにアクセスするためにメモリアドレスを生成することを含み、前記第1の小容量GPRは前記第1の部分から成る、実行すること、及び、b前記第2の小容量GPRにアクセスするための第2の命令セットの命令を実行することであって、前記実行は、前記第2の小容量GPRに基づいたメモリオペランドにアクセスするため又は第2の小容量GPRのオペランドにアクセスするためにメモリアドレスを生成することを含み、前記第2の小容量GPRは前記第2の部分から成る、実行すること、並びに、前記コンピュータが大容量GPRモードにあることに応答して、第3の命令セットの命令を実行することであって、前記実行は、前記大容量GPRに基づいたメモリオペランドにアクセスするため又は前記第1の部分及び前記第2の部分を含む大容量GPRのオペランドにアクセスするためにメモリアドレスを生成することを含む、実行すること、を含む方法を実行させる、コンピュータプログラム。前記小容量GPRモードは、24ビットアドレッシングモード又は31ビットアドレッシングモードの一方にあることを含む、請求項9に記載のコンピュータプログラム。前記第1の部分は32ビットであり、前記第2の部分は32ビットであり、第3の部分は64ビットである、請求項10に記載のコンピュータプログラム。前記第2の命令セットの前記命令を実行することは、2つのオペランドに基づいた対応オペコード定義関数を実行し、結果を格納することを含み、前記対応オペコード定義関数は、2つのオペランドのADD関数、又は2つのオペランドのCOMPARE関数から成る、請求項10に記載のコンピュータプログラム。前記第2の命令セットの前記命令を実行することは、2つのオペランドに基づいた対応オペコード定義関数を実行し、結果を格納することを含み、前記対応オペコード定義関数は、メモリからのオペランドのLOAD関数、又はメモリへのオペランドのSTORE関数から成る、請求項10に記載のコンピュータプログラム。前記第2の命令セットの前記命令を実行することは、2つのオペランドに基づいた対応オペコード定義関数を実行し、結果を格納することを含み、前記対応オペコード定義関数は、命令が指定した量だけソースオペランドをローテートさせることと、前記ローテートされたソースオペランドの選択された部分をターゲットオペランドの選択された部分に挿入することと、を含むROTATETHENINSERTSELECTEDBITS関数である、請求項10に記載のコンピュータプログラム。大容量GPRモードで動作するオペレーティングシステムをサポートすることを含み、前記大容量GPRは、小容量GPRモードで実行されているアプリケーションためのコンテキストスイッチ中、保存され、復元される、請求項10に記載のコンピュータプログラム。前記第3の命令セットは、前記第1の命令セットと前記第2の命令セットとを含む、請求項15に記載のコンピュータプログラム。第1の数の大容量GPRを有するコンピュータにおいて、プログラムの命令が利用可能な汎用レジスタGPRの有効数を拡張するためのコンピュータシステムであって、各々の命令は、オペコードと、対応するGPRを指定するための1つ又は複数のGPRフィールドとを含み、各々の大容量GPRは第1の部分と第2の部分とを含み、前記大容量GPRは、前記第1の部分から成る第1の小容量GPRと、前記第2の部分から成る第2の小容量GPRとを含み、メモリと、前記メモリと通信状態にあるプロセッサであって、メモリから命令をフェッチするための命令フェッチ要素と、フェッチした命令を実行するための1つ又は複数の実行要素とを含む、プロセッサと、を含み、前記コンピュータシステムは、前記コンピュータが小容量GPRモードにあることに応答して、a前記第1の小容量GPRにアクセスするための第1の命令セットの命令を実行することであって、前記実行は、前記第1の小容量GPRに基づいたメモリオペランドにアクセスするため又は第1の小容量GPRのオペランドにアクセスするためにメモリアドレスを生成することを含み、前記第1の小容量GPRは前記第1の部分から成る、実行すること、及び、b前記第2の小容量GPRにアクセスするための第2の命令セットの命令を実行することであって、前記実行は、前記第2の小容量GPRに基づいたメモリオペランドにアクセスするため又は第2の小容量GPRのオペランドにアクセスするためにメモリアドレスを生成することを含み、前記第2の小容量GPRは前記第2の部分から成る、実行すること、並びに、前記コンピュータが大容量GPRモードにあることに応答して、第3の命令セットの命令を実行することであって、前記実行は、前記大容量GPRに基づいたメモリオペランドにアクセスするため又は前記第1の部分及び前記第2の部分を含む大容量GPRのオペランドにアクセスするためにメモリアドレスを生成することを含む、実行すること、を含む方法を実行するように構成される、コンピュータシステム。前記小容量GPRモードは24ビットアドレッシングモード又は31ビットアドレッシングモードの一方にあることを含む、請求項17に記載のコンピュータシステム。前記第1の部分は32ビットであり、前記第2の部分は32ビットであり、第3の部分は64ビットである、請求項18に記載のコンピュータシステム。前記第2の命令セットの前記命令を実行することは、2つのオペランドに基づいた対応オペコード定義関数を実行し、結果を格納することを含み、前記対応オペコード定義関数は、2つのオペランドのADD関数、又は2つのオペランドのCOMPARE関数から成る、請求項18に記載のコンピュータシステム。前記第2の命令セットの前記命令を実行することは、2つのオペランドに基づいた対応オペコード定義関数を実行し、結果を格納することを含み、前記対応オペコード定義関数は、メモリからのオペランドのLOAD関数、又はメモリへのオペランドのSTORE関数から成る、請求項18に記載のコンピュータシステム。前記第2の命令セットの前記命令を実行することは、2つのオペランドに基づいた対応オペコード定義関数を実行し、結果を格納することを含み、前記対応オペコード定義関数は、命令が指定した量だけソースオペランドをローテートさせることと、前記ローテートされたソースオペランドの選択された部分をターゲットオペランドの選択された部分に挿入することと、を含むROTATETHENINSERTSELECTEDBITS関数である、請求項18に記載のコンピュータシステム。大容量GPRモードで動作するオペレーティングシステムをサポートすることを含み、前記大容量GPRは、小容量GPRモードで実行されているアプリケーションためのコンテキストスイッチ中、保存され、復元される、請求項18に記載のコンピュータシステム。前記第3の命令セットは、前記第1の命令セットと前記第2の命令セットとを含む、請求項23に記載のコンピュータシステム。必要とされるのは、汎用レジスタのようなアーキテクチャリソースへの依存を軽減し、新しい命令を用いるソフトウェアバージョンの機能及び性能を改善する、既存のアーキテクチャと整合性が取れた新しい命令機能である。上位ワードhighwordファシリティの一実施形態においては、第1の数の大容量GPRを有するコンピュータにおいて、プログラムの命令が利用可能な汎用レジスタGPRの有効数が拡張され、各々の命令は、オペコードopcodeと、対応するGPRを指定するための1つ又は複数のGPRフィールドとを含み、各々の大容量GPRは第1の部分と第2の部分とを含み、大容量GPRは、第1の部分から成る第1の小容量GPRと、第2の部分から成る第2の小容量GPRとを含み、この方法は、コンピュータが小容量GPRモードにあることに応答して、a第1の小容量GPRにアクセスするための第1の命令セットの命令を実行することであって、この実行は、第1の小容量GPRに基づいたメモリオペランドにアクセスするため又は第1の小容量GPRのオペランドにアクセスするためにメモリアドレスを生成することを含み、第1の小容量GPRは第1の部分から成る、実行すること、及び、b第2の小容量GPRにアクセスするための第2の命令セットの命令を実行することであって、この実行は、第2の小容量GPRに基づいたメモリオペランドにアクセスするため又は第2の小容量GPRのオペランドにアクセスするためにメモリアドレスを生成することを含み、第2の小容量GPRは第2の部分から成る、実行すること、であるa及びbを実行する。さらに、この方法は、コンピュータが大容量GPRモードにあることに応答して、第3の命令セットの命令が実行され、この実行は、大容量GPRに基づいたメモリオペランドにアクセスするため又は第1の部分及び第2の部分を含む大容量GPRのオペランドにアクセスするためにメモリアドレスを生成することを含む。一実施形態において、小容量GPRモードは、24ビットアドレッシングモード又は31ビットアドレッシングモードの一方にあることを含む。一実施形態において、第1の部分は32ビットであり、第2の部分は32ビットであり、第3の部分は64ビットである。一実施形態において、第2の命令セットの命令の実行は、2つのオペランドに基づいた対応オペコード定義関数を実行し、結果を格納することを含み、対応オペコード定義関数は、2つのオペランドのADD関数、又は2つのオペランドのCOMPARE関数から成る。一実施形態において、第2の命令セットの命令の実行は、2つのオペランドに基づいた対応オペコード定義関数を実行し、結果を格納することを含み、対応オペコード定義関数は、メモリからのオペランドのLOAD関数、又はメモリへのオペランドのSTORE関数から成る。一実施形態において、第2の命令セットの命令の実行は、2つのオペランドに基づいた対応オペコード定義関数を実行し、結果を格納することを含み、対応オペコード定義関数は、命令が指定した量だけソースオペランドをローテートさせることと、ローテートされたソースオペランドの選択された部分をターゲットオペランドの選択された部分に挿入することと、を含むROTATETHENINSERTSELECTEDBITS関数である。一実施形態において、大容量GPRモードで動作するオペレーティングシステムがサポートされ、大容量GPRは、小容量GPRモードで実行されているアプリケーションのためのコンテキストスイッチ中、保存され、復元される。一実施形態において、オペレーティングシステムは大容量GPRモードで動作し、大容量GPRは、小容量GPRモードで実行されているアプリケーションのためのコンテキストスイッチ中、保存され、復元される。実施形態の上記及び付加的な目的、特徴、並びに利点は、以下に書かれた説明において明らかになるであろう。他の実施形態及び態様は、本明細書に詳細に説明され、特許請求される本発明の一部であるとみなされる。利点及び特徴をより良く理解するために、説明及び図面を参照されたい。本発明とみなされる主題は、本明細書の最後にある特許請求の範囲において具体的に示され、明確に請求されている。本発明の前記及び他の目的、特徴、並びに利点は、添付の図面と併用される以下の詳細な説明から明らかである。1つの実施形態は、ソフトウェアライセンス内部コードLIC、ファームウェア、マイクロコード、ミリコード、ピココードなどと呼ばれる場合もあるが、そのいずれも実施形態と整合性があるにより実施することができる。図1を参照すると、ソフトウェアプログラムコードは、典型的には、システム50のCPU中央演算処理装置1としても知られるプロセッサにより、CD-ROMドライブ、テープドライブ、又はハードドライブといった長期ストレージ媒体11からアクセスされる。ソフトウェアプログラムコードは、ディスケット、ハードドライブ、又はC-ROMといった、データ処理システムと共に使用するための種々の周知の媒体のいずれかの上で具体化することができる。コードは、こうした媒体上に分散させても、又はコンピュータメモリ2からユーザに分散させても、或いは、こうした他のシステムのユーザが使用するために、ネットワーク10上の1つのコンピュータシステムのストレージから他のコンピュータシステムに分散させてもよい。或いは、プログラムコードをメモリ2内で具体化し、プロセッサバスを用いてプロセッサ1によってプログラムコードにアクセスすることができる。このようなプログラムコードは、種々のコンピュータコンポーネント及び1つ又は複数のアプリケーションプログラムの機能及び相互作用を制御するオペレーティングシステムを含む。プログラムコードは、通常、高密度ストレージ媒体11から高速メモリ2にページングされ、そこでプロセッサ1による処理のために利用可能になる。ソフトウェアプログラムコードをメモリ内、物理的媒体上で具体化し、及び/又は、ネットワークを介してソフトウェアコードを分散させる技術及び方法は周知であり、ここではこれ以上論じない。プログラムコードは、有形の媒体これらに限られるものではないが、電子メモリモジュールRAM、フラッシュメモリ、コンパクトディスクCD、DVD、磁気テープなどを含む上に作成され、格納されたとき、コンピュータプログラム製品と呼ばれることが多い。コンピュータプログラム製品媒体は、典型的には、処理回路によって実行されるために、好ましくはコンピュータシステム内の処理回路によって読み取り可能である。図3は、代表的なワークステーション又はサーバハードウェアシステムを示す。図3のシステム100は、随意的な周辺機器を含む、パーソナルコンピュータ、ワークステーション、又はサーバなどの代表的なコンピュータシステム101を含む。ワークステーション101は、1つ又は複数のプロセッサ106と、周知の技術に従ってプロセッサ106とシステム101の他のコンポーネントを接続し、これらの間の通信を可能にするために用いられるバスとを含む。バスは、プロセッサ106を、例えばハードドライブ例えば、磁気媒体、CD、DVD、及びフラッシュメモリのいずれかを含む又はテープドライブを含むことができる、メモリ105及び長期ストレージ107に接続する。システム101はまた、バスを介して、マイクロプロセッサ106を、キーボード104、マウス103、プリンタ/スキャナ110、及び/又はタッチセンシティブスクリーン、デジタル化された入力パッド等のいずれかのユーザインターフェース機器とすることができる他のインターフェース機器といった、1つ又は複数のインターフェース機器に接続する、ユーザインターフェースアダプタを含むこともできる。バスはまた、ディスプレイアダプタを介して、LCDスクリーン又はモニタなどのディスプレイ装置102をマイクロプロセッサ106にも接続する。システム101は、ネットワーク109と通信する108ことができるネットワークアダプタを介して、他のコンピュータ又はコンピュータネットワークと通信することができる。例示的なネットワークアダプタは、通信チャネル、トークンリング、イーサネット又はモデムである。代替的に、ワークステーション101は、CDPDセルラーデジタルパケットデータカードのような無線インターフェースを用いて通信することもできる。ワークステーション101は、ローカルエリアネットワークLAN又は広域エリアネットワークWAN内のこうした他のコンピュータと関連付けることができ、或いは、別のコンピュータ等とのクライアント/サーバ構成におけるクライアントとすることができる。これらの構成の全て、並びに、適切な通信ハードウェア及びソフトウェアは、当技術分野において周知である。図4は、実施形態を実施することができるデータ処理ネットワーク200を示す。データ処理ネットワーク200は、各々が複数の個々のワークステーション101、201、202、203、204を含むことができる、無線ネットワーク及び有線ネットワークのような複数の個々のネットワークを含むことができる。さらに、当業者であれば理解するように、1つ又は複数のLANを含ませることができ、そこで、LANは、ホストプロセッサに結合された複数のインテリジェントワークステーションを含むことができる。さらに図4を参照すると、ネットワークはまた、ゲートウェイコンピュータクライアントサーバ206、又はアプリケーションサーバデータリポジトリにアクセスすることができ、かつ、ワークステーション205から直接アクセスすることもできるリモートサーバ208のようなメインフレームコンピュータ又はサーバを含むこともできる。ゲートウェイコンピュータ206は、各ネットワーク207への入口点として働く。ゲートウェイは、1つのネットワークプロトコルを別のものに接続するときに必要とされる。ゲートウェイ206は、通信リンクによって別のネットワーク例えば、インターネット207に結合できることが好ましい。ゲートウェイ206はまた、通信リンクを用いて、1つ又は複数のワークステーション101、201、202、203、204に直接結合することもできる。ゲートウェイコンピュータは、IBMCorp.社から入手可能なIBMeServer商標、zSeries登録商標、z9登録商標サーバを用いて実装することができる。ソフトウェアプログラムコードは、一般的に、CD-ROMドライブ又はハードドライブといった、長期ストレージ媒体107から、システム101のプロセッサ106によってアクセスされる。ソフトウェアプログラムコードは、ディスケット、ハードドライブ、又はCD-ROMといった、データ処理システムと共に使用するための種々の周知の媒体のいずれかの上で具体化することができる。コードは、そのような媒体上で分散させても、又はメモリからユーザ210、211に分散させても、或いは、こうした他のシステムのユーザが使用するために、ネットワー上の1つのコンピュータシステムのストレージから他のコンピュータシステムに分散させてもよい。或いは、プログラムコード111をメモリ105内で具体化し、プロセッサバスを用いてプロセッサ106によってプログラムコード111にアクセスすることができる。このようなプログラムコードは、種々のコンピュータコンポーネント及び1つ又は複数のアプリケーションプログラム112の機能及び相互作用を制御するオペレーティングシステムを含む。プログラムコードは、通常、高密度ストレージ媒体107から高速メモリ105にページングされ、そこでプロセッサ106による処理のために利用可能になる。ソフトウェアプログラムコードをメモリ内、物理的媒体上で具体化し、及び/又は、ネットワークを介してソフトウェアコードを配布する技術及び方法は周知であり、ここではこれ以上論じない。プログラムコードは、作成され、有形の媒体これらに限られるものではないが、電子メモリモジュールRAM、フラッシュメモリ、コンパクトディスクCD、DVD、磁気テープなどを含むに格納された場合には、しばしばコンピュータプログラム製品と呼ばれる。コンピュータプログラム製品媒体は、典型的には、処理回路によって実行されるために、好ましくはコンピュータシステム内にある処理回路によって読み取り可能である。プロセッサが最も容易に利用できるキャッシュ通常、プロセッサの他のキャッシュよりも高速で小さいは、最下位L1又はレベル1のキャッシュであり、メインストアメインメモリは、最上位レベルのキャッシュ3つのレベルがある場合にはL3である。最下位レベルのキャッシュは、実行されるマシン命令を保持する命令キャッシュI-キャッシュと、データオペランドを保持するデータキャッシュD-キャッシュとに分割されることが多い。図5を参照すると、プロセッサ106についての例示的なプロセッサの実施形態が示される。典型的には、メモリブロックをバッファに入れてプロセッサ性能を向上させるために、1つ又は複数のレベルのキャッシュ303が用いられる。キャッシュ303は、使用される可能性が高いメモリデータのキャッシュラインを保持する高速バッファである。典型的なキャッシュラインは、64バイト、128バイト、又は256バイトのメモリデータである。データをキャッシュに入れるのではなく、命令をキャッシュに入れるために、別個のキャッシュが用いられることが多い。キャッシュコヒーレンスメモリ及びキャッシュ内のラインのコピーの同期は、多くの場合、当技術分野において周知の種々のスヌープSnoopアルゴリズムによって与えられる。プロセッサシステムの主ストレージ105は、キャッシュと呼ばれることが多い。4つのレベルのキャッシュ303を有するプロセッサシステムにおいて、主ストレージ105は、典型的にはより高速であり、かつ、コンピュータシステムが利用できる不揮発性ストレージDASD、テープ等の一部だけを保持するので、レベル5L5のキャッシュと呼ばれることがある。主ストレージ105は、オペレーティングシステムによって主ストレージ105との間でページングされるデータのページをキャッシュに入れる。プログラムカウンタ命令カウンタ311は、実行される現行の命令のアドレスを常時監視している。z/Architectureプロセッサのプログラムカウンタは64ビットであり、従来のアドレッシング制限をサポートするために、31ビット又は24ビットに切り捨てることができる。プログラムカウンタは、典型的には、コンテキストスイッチの際に持続するように、コンピュータのPSWプログラム状況ワード内で具体化される。従って、例えば、オペレーティングシステムにより、プログラムカウンタ値を有する進行中のプログラムに割り込みをかけることが可能であるプログラム環境からオペレーティングシステム環境へのコンテキストスイッチ。プログラムのPSWは、プログラムがアクティブでない間、プログラムカウンタ値を保持し、オペレーティングシステムが実行されている間、オペレーティングシステムのPSW内のプログラムカウンタが使用される。典型的には、プログラムカウンタは、現行の命令のバイト数に等しい量だけインクリメントされる。RISCReducedInstructionSetComputing、縮小命令セットコンピューティング命令は、典型的には固定長であり、CISCComplexInstructionSetComputing、複合命令セットコンピューティング命令は、典型的には可変長である。IBMz/Architectureの命令は、2バイト、4バイト、又は6バイトの長さを有するCISC命令である。例えば、コンテキストスイッチ操作又は分岐命令の分岐成立Branchtaken操作により、プログラムカウンタ311が変更される。コンテキストスイッチ操作において、現行のプログラムカウンタ値は、実行されるプログラムについての他の状態情報条件コードのようなと共にプログラム状況ワードPSW内に保存され、実行される新しいプログラムモジュールの命令を指し示す新しいプログラムカウンタ値がロードされる。分岐成立操作を行い、分岐命令の結果をプログラムカウンタ311にロードすることにより、プログラムが判断を下すこと又はプログラム内でループすることを可能にする。典型的には、プロセッサ106の代わりに命令をフェッチするために、命令フェッチユニット305が用いられる。フェッチユニットは、次の順次命令nextsequentialinstruction、分岐成立命令のターゲット命令、又はコンテキストスイッチの後のプログラムの最初の命令のいずれかをフェッチする。今日の命令フェッチユニットは、プリフェッチされた命令を使用することができる可能性に基づいて、命令を投機的にプリフェッチするプリフェッチ技術を用いることが多い。例えば、フェッチユニットは、次の順次命令を含む16バイトの命令と、付加的なバイトの更なる順次命令とをフェッチすることができる。次いで、フェッチされた命令が、プロセッサ106によって実行される。一実施形態において、フェッチされた命令は、フェッチユニットのディスパッチユニット306に渡される。ディスパッチユニット306は命令をデコードし、デコードされた命令についての情報を適切なユニット307、308、310に転送する。実行ユニット307は、典型的には、命令フェッチユニット305からデコードされた算術命令についての情報を受け取り、命令のオペコードに従ってオペランドに関する算術演算を行う。オペランドは、好ましくは、メモリ105、アーキテクチャ化レジスタ309、又は実行される命令の即値フィールドのいずれかから、実行ユニット307に与えられる。実行の結果は、格納された場合には、メモリ105、レジスタ309、又は他のマシンハードウェア制御レジスタ、PSWレジスタなどのような内に格納される。プロセッサ106は、典型的には、命令の機能を実行するための1つ又は複数の実行ユニット307、308、310を有する。図6を参照すると、実行ユニット307は、インターフェース論理407を介して、アーキテクチャ化された汎用レジスタ309、デコード/ディスパッチユニット306、ロードストアユニット310、及び他のプロセッサユニット401と通信することができる。実行ユニット307は、幾つかのレジスタ回路403、404、405を用いて、算術論理演算ユニットALU402が動作する情報を保持することができる。ALUは、加算add、減算subtract、乗算multiply、及び除算divideなどの算術演算、並びに、論理積and、論理和or、及び排他的論理和xor、ローテートrotate及びシフトshiftのような論理関数を実行する。ALUは、設計に依存する専用の演算をサポートすることが好ましい。他の回路は、例えば条件コード及びリカバリーサポート論理を含む、他のアーキテクチャ化ファシリティ408を提供することができる。典型的には、ALU演算の結果は、出力レジスタ回路406に保持され、この出力レジスタ回路406が、結果を種々の他の処理機能に転送することができる。多数のプロセッサユニットの構成が存在し、本説明は、一実施形態の代表的な理解を与えることのみを意図している。例えばADD命令は、算術及び論理機能を有する実行ユニット307で実行され、一方、例えば浮動小数点命令は、特化された浮動小数点能力を有する浮動小数点実行部で実行される。実行ユニットは、オペランドに対してオペコードが定めた関数を行うことにより、命令が特定したオペランドに対して動作することが好ましい。例えば、ADD命令は、命令のレジスタフィールドによって特定された2つのレジスタ309内に見出されるオペランドに対して、実行ユニット307により実行することができる。実行ユニット307は、2つのオペランドに対して算術加算を実行し、結果を第3オペランドに格納し、ここで第3オペランドは、第3のレジスタであっても又は2つのソースレジスタのいずれかであってもよい。実行ユニットは、シフト、ローテート、論理積、論理和、及び排他的論理和のような種々の論理関数、並びに、加算、減算、乗算、除法のいずれかを含む、種々の代数関数を実行することができる算術論理演算ユニットALU402を使用することが好ましい。スカラー演算のために設計されたALU402もあり、浮動小数点のために設計されたALU402もある。データは、アーキテクチャに応じて、ビッグエンディアンBigEndian最下位のバイトが最も高いバイトアドレスである、又はリトルエンディアンLittleEndian最下位のバイトが最も低いバイトアドレスであるとすることができる。IBMz/Architectureは、ビッグエンディアンである。符号付きフィールドは、アーキテクチャに応じて、符号及び大きさ、1の補数、又は2の補数とすることができる。2の補数における負の値又は正の値は、ALU内で加法しか必要としないため、ALUが減算能力を設計する必要がないという点で、2の補数は有利である。数値は、通常、省略表現で記述され、12ビットフィールドは、4,096バイトブロックのアドレスを定め、通常、例えば4Kバイトキロバイトブロックのように記述される。3モードアドレッシング3モードアドレッシングTrimodaladdressingは、24ビットアドレッシングモード、31ビットアドレッシングモード、及び64ビットアドレッシングモードの間で切り換える能力を指す。この切り換えは、以下により行うことができる。:即ち、従来の命令BRANCHANDSAVEANDSETMODE及びBRANCHANDSETMODE。これらの命令はどちらも、R2汎用レジスタのビット63が1である場合、64ビットアドレッシングモードを設定する。ビット63が0である場合には、これらの命令は、レジスタのビット32が0又は1である場合、それぞれ、24ビットアドレッシングモード又は31ビットアドレッシングモードを設定する。新しい命令SETADDRESSINGMODESAM24、SAM31、及びSAM64。この命令は、命令コードの決定に従って、24ビットアドレッシングモード、31ビットアドレッシングモード、及び64ビットアドレッシングモードを設定する。3モーダル命令3モードアドレッシングは、以下のものを除き、一般命令において論理ストレージアドレスを扱う方法に対して影響を与えるだけである。:即ち、命令BRANCHANDLINK、BRANCHANDSAVE、BRANCHANDSAVEANDSETMODE、BRANCHANDSETMODE、及びBRANCHRELATIVEANDSAVEは、24ビット又は31ビットアドレッシングモードでは、ESA/390の場合と同様に、汎用レジスタR1のビット位置32-39に情報を入れ、又は、64ビットアドレッシングモードでは、これらのビット位置にアドレスビットを入れる。新しい命令BRANCHRELATIVEANDSAVELONGも同じことを行う。命令BRANCHANDSAVEANDSETMODE及びBRANCHANDSETMODEは、64ビットアドレッシングモードでは、汎用レジスタR1のビット位置63に1を入れる。24ビット又は31ビットモードでは、BRANCHANDSAVEANDSETMODEは、ビット63を0に設定し、BRANCHANDSETMODEは、このビットを変更しないままにする。特定の命令は、24ビット又は31ビットアドレッシングモードでは、汎用レジスタのビット0-31を変更しないままにするが、64ビットアドレッシングモードでは、これらのビット内でアドレス又は長さ情報を配置又は更新する。これらの命令は、ページ7-7のプログラミング上の注意1に列挙されており、モーダル命令modalinstructionと呼ばれることもある。汎用レジスタのビット0-31への影響汎用レジスタのビット0-31は、2つのタイプの命令により変更される。第1のタイプは、命令が64ビットアドレッシングモードで実行されるときのモーダル命令である前のセクションを参照されたい。第2のタイプは、アドレッシングモードに関係なく、64ビットの結果オペランドを単一の汎用レジスタに入れる命令、又は、128ビットの結果オペランドを偶数-奇数対の汎用レジスタに入れる命令である。第2のタイプの命令の大部分は、ニーモニック中のGのみ又はGFにより示される。第2のタイプの全ての命令をGタイプ命令と呼ぶこともある。プログラムが64ビットアドレッシングモード大容量GPRモードで実行されておらず、Gタイプ命令も含まない場合、そのプログラムは、いずれの汎用レジスタのビット0-31も変更することができない小容量GPRモード。幾つかの実施形態においては、アプリケーションプログラムの一部分が小容量GPRモードにあり、別の部分が大容量GPRモードにあってもよい。一実施形態においては、特定の命令が小容量GPRモード命令であり、他の命令が大容量GPRモード命令であってもよく、ここでコンピュータのモードは、該コンピュータが小容量GPRモード命令を実行しているか、又は、大容量GPRモード命令を実行しているかによって決まる。図7を参照すると、分岐命令を実行するための分岐命令情報が、典型的には、分岐ユニット308に送られ、この分岐ユニット308は、多くの場合、分岐履歴テーブル432のような分岐予測アルゴリズムを用いて、他の条件付き演算が完了する前に分岐の結果を予測する。条件付き演算が完了する前に、現行の分岐命令のターゲットがフェッチされ、投機的に実行される。条件付き演算が完了すると、投機的に実行された分岐命令は、条件付き演算の条件及び投機された結果に基づいて、完了されるか又は破棄される。典型的な分岐命令は、条件コードを試験し、条件コードが分岐命令の分岐要件を満たす場合、ターゲットアドレスに分岐することができ、ターゲットアドレスは、例えば、命令のレジスタフィールド又は即値フィールド内に見出されるものを含む幾つかの数に基づいて計算することができる。分岐ユニット308は、複数の入力レジスタ回路427、428、429と、出力レジスタ回路430とを有するALU426を用いることができる。分岐ユニット308は、例えば、汎用レジスタ309、デコードディスパッチユニット306、又は他の回路425と通信することができる。例えば、オペレーティングシステムによって開始されるコンテキストスイッチ、コンテキストスイッチを発生させるプログラム例外又はエラー、コンテキストスイッチを発生させるI/O割り込み信号、或いは、マルチスレッド環境における複数のプログラムのマルチスレッド活動を含む様々な理由により、命令のグループの実行に割り込みがかけられることがある。コンテキストスイッチ動作は、現在実行中のプログラムについての状態情報を保存し、次いで、起動される別のプログラムについての状態情報をロードすることが好ましい。状態情報は、例えば、ハードウェアレジスタ又はメモリ内に保存することができる。状態情報は、実行される次の命令を指し示すプログラムカウンタ値と、条件コードと、メモリ変換情報と、アーキテクチャ化されたレジスタの内容とを含むことが好ましい。コンテキストスイッチの活動は、ハードウェア回路、アプリケーションプログラム、オペレーティングシステムプログラム、又はファームウェアコードマイクロコード、ピココード、又はライセンス内部コードLIC単独で又はその組み合わせで実施することができる。プロセッサは、命令により定義された方法に従ってオペランドにアクセスする。命令は、命令の一部の値を用いて即値オペランドを与えることができ、汎用レジスタ又は専用レジスタ例えば、浮動小数点レジスタのいずれかを明示的に指し示す1つ又は複数のレジスタフィールドを与えることができる。命令は、オペコードフィールドによって、オペランドとして識別されるインプライドレジスタimpliedregisterを用いることができる。命令は、オペランドのためのメモリ位置を用いることができる。z/Architectureの長変位ファシリティlongdisplacementfacilityにより例示されるように、オペランドのメモリ位置を、レジスタ、即値フィールド、又はレジスタと即値フィールドの組み合わせによって与えることができ、命令は、基底レジスタ、指標レジスタ、及び即値フィールド変位フィールドを定め、これらが、例えば互いに加算されてメモリ内のオペランドのアドレスをもたらす。ここでの位置locationは、典型的には、特に断りのない限り、メインメモリ主ストレージ内の記憶位置を意味する。図8を参照すると、プロセッサは、ロード/ストアユニット310を用いて、ストレージにアクセスする。ロード/ストアユニット310は、メモリ303内のターゲットオペランドのアドレスを取得し、オペランドをレジスタ309又は別のメモリ303の記憶位置にロードすることによってロード操作を行うことができ、或いは、メモリ303内のターゲットオペランドのアドレスを取得し、レジスタ309又は別のメモリ303の記憶位置から取得したデータをメモリ303内のターゲットオペランドの記憶位置に格納することによって、ストア操作を行うことができる。ロード/ストアユニット310は、投機的なものであってもよく、命令シーケンスに対してアウトオブオーダー式の順序でメモリにアクセスすることができるが、プログラムに対して、命令がインオーダー式に実行されたという外観を維持する必要がある。ロード/ストアユニット310は、汎用レジスタ309、デコード/ディスパッチユニット306、キャッシュ/メモリインターフェース303、又は他の要素455と通信することができ、ストレージアドレスを計算し、かつ、パイプライン処理を順に行って操作をインオーダー式に保持するための、種々のレジスタ回路、ALU458、及び制御論理463を含む。一部の動作は、アウトオブオーダー式とすることができるが、ロード/ストアユニットは、アウトオブオーダー式動作が、プログラムに対して、当技術分野において周知のようなインオーダー式に実行されたように見えるようにする機能を提供する。好ましくは、アプリケーションプログラムが見ているアドレスは、仮想アドレスと呼ばれることが多い。仮想アドレスは、論理アドレス及び実効アドレスeffectiveaddressと呼ばれることもある。これらの仮想アドレスは、これらに限られるものではないが、単に仮想アドレスをオフセット値にプリフィックス付加すること、1つ又は複数の変換テーブルを介して仮想アドレスを変換することを含む、種々の動的アドレス変換DAT312技術の1つによって、物理的メモリ位置にリダイレクトされるという点で仮想のものであり、変換テーブルは、少なくともセグメントテーブル及びページテーブルを単独で又は組み合わせて含むことが好ましく、セグメントテーブルは、ページテーブルを指し示すエントリを有することが好ましい。z/Architectureでは、領域第1テーブル、領域第2テーブル、領域第3テーブル、セグメントテーブル、及び随意的なページテーブルを含む、変換の階層が提供される。アドレス変換の性能は、仮想アドレスを関連した物理的メモリ位置にマッピングするエントリを含む変換ルックアサイドバッファTLBを用いることにより改善されることが多い。DAT312が変換テーブルを用いて仮想アドレスを変換したときに、エントリが作成される。次いで、後に仮想アドレスを用いることで、低速の順次変換テーブルアクセスではなく、高速のTLBのエントリを用いることが可能になる。TLBの内容は、LRULeastRecentlyUsedを含む種々の置換アルゴリズムによって管理することができる。プロセッサがマルチプロセッサシステムのプロセッサである場合には、各プロセッサは、コヒーレンシのために、I/O、キャッシュ、TLB、及びメモリといった共有リソースをインターロック状態に保持する責任を負う。キャッシュコヒーレンシを保持する際に、一般的にはスヌープ技術が用いられる。スヌープ環境においては、共有を容易にするために、各キャッシュラインを、共有状態、排他的状態、変更状態、無効状態等のいずれか1つの状態にあるものとしてマーク付けすることができる。I/Oユニット304は、プロセッサに、例えば、テープ、ディスク、プリンタ、ディスプレイ、及びネットワークを含む周辺機器に取り付けるための手段を与える。I/Oユニットは、ソフトウェアドライバによってコンピュータプログラムに提示されることが多い。IBMによるz/Seriesのようなメインフレームにおいては、チャネルアダプタ及びオープンシステムアダプタが、オペレーティングシステムと周辺機器との間に通信をもたらすメインフレームのI/Oユニットである。非特許文献1からの以下の記述は、コンピュータシステムのアーキテクチャ上の観点を記載する。:ストレージ:コンピュータシステムは、主ストレージ内の情報、並びに、アドレッシング、保護、参照、及び変更の記録を含む。アドレッシングの幾つかの態様は、アドレスの形式、アドレス空間の概念、種々のタイプのアドレス、及び1つのタイプのアドレスを別のタイプのアドレスに変換する方法を含む。主ストレージの一部は、永続的に割り当てられた記憶位置を含む。主ストレージは、システムに、データの直接アドレス指定可能な高速アクセスストレージを与える。データ及びプログラムを処理できるようになる前に、入力装置からデータ及びプログラムの両方を主ストレージにロードしなければならない。主ストレージは、キャッシュと呼ばれることもある、1つ又は複数のより小さくより高速アクセスのバッファストレージを含むことができる。キャッシュは、典型的には、CPU又はI/Oプロセッサと物理的に関連付けられる。物理的構成及び別個のストレージ媒体を使用することの影響は、性能に対するものを除き、通常、プログラムにより観察することはできない。命令及びデータオペランドについて、別個のキャッシュを保持することができる。キャッシュ内の情報は、キャッシュブロック又はキャッシュライン又は短縮してラインと呼ばれる、整数境界integralboundary上にある連続したバイト内に保持される。モデルは、キャッシュラインのサイズをバイトで返す、EXTRACTCACHEATTRIBUTE命令を提供することができる。モデルはまた、データ又は命令キャッシュへのストレージのプリフェッチ、或いは、キャッシュからのデータの解放に影響を与える、PREFETCHDATA及びPREFETCHDATARELATIVELONG命令を提供することができる。ストレージは、長い水平方向のビットの文字列と考えられる。大部分の操作において、ストレージへのアクセスは、左から右への順序で進む。ビットの文字列は、8ビット単位で分割される。8ビットの単位は1バイトと呼ばれ、全ての情報の形式の基本的な構成要素buildingblockである。ストレージ内の各々のバイト位置は、負でない一意の整数により識別され、この整数がそのバイト位置のアドレスであり、即ち、簡単にバイトアドレスである。隣接するバイト位置は、連続するアドレスを有し、左の0で始まり、左から右への順序で進む。アドレスは、符号なしの2進整数であり、24ビット、31ビット、又は64ビットである。情報は、ストレージとCPU又はチャネルサブシステムとの間で、一度に1バイトずつ、又は1バイトグループずつ伝送される。特に断りのない限り、ストレージ内のバイトグループは、グループの左端のバイトによりアドレス指定される。グループ内のバイト数は、実行される操作により暗黙に決定されるか、又は明示的に指定される。CPU操作に使用される場合、バイトグループはフィールドと呼ばれる。バイトグループの中の各々において、ビットは、左から右の順序で番号が付けられる。左端のビットは上位highorderビットと呼ばれることがあり、右端ビットは下位loworderビットと呼ばれることがある。しかしながら、ビット数は、ストレージアドレスではない。バイトだけを、アドレス指定することができる。ストレージ内の1つのバイトを形成する個々のビットに対して操作を行うためには、そのバイト全体にアクセスする必要がある。1バイトの中のビットには、左から右に0から7までの番号が付けられる。1つのアドレスの中のビットには、24ビットアドレスの場合は8-31又は40-63の番号を付けることができ、或いは、31ビットアドレスの場合は1-31又は33-63の番号を付けることができ、64ビットアドレスの場合は0-63の番号が付けられる。複数バイトから成る他のいずれかの固定長形式の中では、その形式を構成するビットには、0から始まる連続番号が付けられる。エラー検出のため及び好ましくは訂正のために、各バイト又はバイトグループと共に、1つ又は複数の検査ビットが伝送されることがある。このような検査ビットは、マシンにより自動的に生成されるものであり、プログラムが直接制御することはできない。記憶容量は、バイト数で表わされる。ストレージオペランドフィールドの長さが命令のオペレーションコードで暗黙的に指定される場合、そのフィールドは固定長を有すると言われ、固定長は、1バイト、2バイト、4バイト、8バイト、又は16バイトとすることができる。一部の命令では、より長いフィールドが暗黙的に指定されることもある。ストレージオペランドフィールドの長さが暗黙的に指定されず明示的に記述される場合は、そのフィールドは可変長を有すると言われる。可変長オペランドは、1バイトのインクリメントにより変化し得る。情報がストレージ内に置かれるとき、ストレージへの物理パスの幅が格納されるフィールドの長さを上回り得るが、指定されたフィールド内に含まれるバイト位置の内容のみが置き換えられる。特定の情報単位は、ストレージ内の整数境界上になければならない。そのストレージアドレスがバイトでの単位での長さの倍数であるとき、境界は、情報単位に関して整数のものであると言われる。整数境界上にある2バイト、4バイト、8バイト、及び16バイトのフィールドには、特別な名称が与えられる。ハーフワードhalfwordは、2バイト境界上にある2個の連続したバイトのグループであり、これは、命令の基本的な構成要素である。ワードwordは、4バイト境界上にある4個の連続したバイトのグループである。ダブルワードdoublewordは、8バイト境界上にある8個の連続したバイトのグループである。クワッドワードquadwordは、16バイト境界上にある16個の連続したバイトのグループである。ストレージアドレスが、ハーフワード、ワード、ダブルワード、及びクワッドワードを示す場合、そのアドレスの2進表現は、それぞれ、右端の1個、2個、3個、又は4個のビットが0になる。命令は、2バイトの整数境界上になければならない。大部分の命令のストレージオペランドは、境界合わせboundaryalignment要件をもたない。命令及びデータオペランドに対して別個のキャッシュを実装するモデルにおいては、ストアが、後にフェッチされる命令を変更するかどうかに関係なく、後に命令をフェッチするキャッシュライン内にプログラムが格納する場合には、著しい遅延が生じることがある。命令:典型的には、CPUの動作は、ストレージ内の命令により制御され、これらの命令は、ストレージアドレスの昇順に従って左から右へ一度に1つずつ順に実行される。この順次操作は、分岐、LOADPSW、割り込み、SIGNALPROCESSORの指令、又は手作業の介入によって変更され得る。命令は、2つの主要部分:即ち、実行される動作を指定するオペレーションコードオペコード随意的に、関与するオペランドの指定を含むことが好ましい。z/Architectureの命令形式が、図9-図14に示される。命令は、単にオペコード501を提供することができ、或いは、オペコードと、即値オペランド又はレジスタ若しくはメモリ内のオペランドを探し出すためのレジスタ指定子を含む種々のフィールドとを提供することもできる。オペコードは、1つ又は複数の特定の汎用レジスタGPRのような暗黙的リソースオペランド等が使用されることをハードウェアに指示することができる。オペランドは、3つのクラス、即ち、レジスタ内に入れられるオペランド、即値オペランド、及びストレージ内のオペランドにグループ化することができる。オペランドは、明示的に指定される場合又は暗黙的に指定される場合がある。レジスタオペランドは、汎用レジスタ、浮動小数点レジスタ、アクセスレジスタ、又は制御レジスタ内に含めることができ、レジスタのタイプは、オペコードにより識別される。オペランドを含むレジスタは、命令の中のRフィールドと呼ばれる4ビットフィールド内のレジスタを識別することによって指定される。命令によっては、オペランドは、暗黙的に指定されたレジスタに含められ、このレジスタは、オペコードにより暗黙的に指定される。即値オペランドは、命令の中に含まれるものであり、即値オペランドを含む8ビット、16ビット、又は32ビットのフィールドを、Iフィールドと呼ぶ。ストレージ内のオペランドの長さは、暗黙的に指定されるか、ビットマスクによって指定されるか、命令内のLフィールドと呼ばれる4ビット又は8ビットの長さ指定により指定されるか、又は汎用レジスタの内容により指定され得る。ストレージ内のオペランドのアドレスは、汎用レジスタの内容をアドレスの一部として使用する形式により指定される。これにより、以下の:1.簡略表記法を使用して完全なアドレスを指定する、2.汎用レジスタをオペランドとして用いる命令を使用して、アドレス操作を行う、3.命令ストリームを変更することなく、プログラム手段によりアドレスを変更する、4.他のプログラムから受け取ったアドレスを直接使用して、データ域の記憶位置に関係なく操作を行う、ことが可能になる。ストレージを参照するために使用されるアドレスは、命令のRフィールドが指すレジスタに含まれているか、又は、それぞれ、命令の中でBフィールド、Xフィールド、及びDフィールドにより指定されている基底アドレス、指標、及び変位から計算される。CPUがアクセスレジスタモードにあるとき、Bフィールド又はRフィールドは、アドレスを指定するために使用されるのに加えて、アクセスレジスタを指定することもできる。命令の実行を記述するために、オペランドは、第1オペランド及び第2オペランド、そして場合によっては第3オペランド及び第4オペランドとして指定されることが好ましい。一般に、1つの命令の実行には2つのオペランドが関与し、実行結果は第1オペランドと置き換わる。命令の長さは、1個、2個、又は3個のハーフワードとし、ストレージ内でハーフワード境界上に配置する必要がある。命令形式を示す図9-図14を参照すると、各々の命令は、25個の基本形式:即ち、E501、I502、RI503、504、RIE505、551、552、553、554、RIL506、507、RIS555、RR510、RRE511、RRF512、513、514、RRS、RS516、517、RSI520、RSL521、RSY522、523、RX524、RXE525、RXF526、RXY527、S530、SI531、SIL556、SIY532、SS533、534、535、536、537、SSE541、及びSSF542のいずれかの形をとり、RRFには3つ、RI、RIL、RS及びRSYには2つ、RIE及びSSには5つの変形がある。形式の名前は、大まかに言うと、その操作に関与するオペランドのクラス、及びフィールドについての何らかの詳細を示す。即ち:RISは、レジスタ対即値操作及びストレージ操作を示す。RRSは、レジスタ間操作及びストレージ操作を示す。SILは、16ビットの即値フィールドを有するストレージ対即値操作を示す。I、RR、RS、RSI、RX、SI、及びSS形式では、命令の最初の1バイトが、オペコードを含む。E、RRE、RRF、S、SIL、及びSSE形式では、S形式の一部の形式では最初の1バイト内にオペコードがあることを除いては、命令の最初の2バイトがオペコードを含む。RI及びRIL形式では、命令の最初の1バイト及びビット位置12-15内にオペコードがある。RIE、RIS、RRS、RSL、RSY、RXE、RXF、RXY、及びSIY形式では、命令の最初の1バイト及び第6バイト内にオペコードがある。オペコードの最初又は唯一のバイトの最初の2ビットは、以下のように、命令の長さと形式を指定する。RR、RRE、RRF、RRR、RX、RXE、RXF、RXY、RS、RSY、RSI、RI、RIE、及びRIL形式では、R1フィールドが示すレジスタの内容が、第1オペランドと呼ばれる。第1オペランドを含むレジスタは、第1オペランド位置と呼ばれ、レジスタR1と呼ばれることもある。RR、RRE、RRF、及びRRR形式では、R2フィールドは、第2オペランドを含むレジスタを示し、かつ、R1と同じレジスタを示すこともある。RRF、RXF、RS、RSY、RSI、及びRIE形式では、R3フィールドが使用されるかどうかは、命令によって決まる。RS及びRSY形式では、R3フィールドは、代わりに、マスクを指定するM3フィールドである場合もある。Rフィールドは、一般命令では汎用レジスタ又はアクセスレジスタを指し、制御命令では汎用レジスタを指し、浮動小数点命令では浮動小数点レジスタ又は汎用レジスタを指す。汎用レジスタ及び制御レジスタについては、レジスタオペランドは、命令に応じて、64ビットレジスタのビット位置32-63にあるか、又はレジスタ全体を占める。I形式では、8ビットの即値データフィールド、即ち命令のIフィールドの内容が、直接オペランドとして使用される。SI形式では、8ビットの即値データフィールド、即ち命令のI2フィールドの内容が、直接第2オペランドとして使用される。B1フィールド及びD1フィールドが、第1オペランドを指定し、その長さは1バイトである。SIY形式では、D1フィールドの代わりにDH1フィールド及びDL1フィールドが用いられることを除いて、操作は同じである。命令ADDHALFWORDIMMEDIATE、COMPAREHALFWORDIMMEDIATE、LOADHALFWORDIMMEDIATE、及びMULTIPLYHALFWORDIMMEDIATEのRI形式では、命令の16ビットのI2フィールドの内容が、直接符号付き2進整数として使用され、R1フィールドは第1オペランドを指定し、その長さは、命令に応じて、32ビット又は64ビットである。命令TESTUNDERMASKTMHH、TMHL、TMLH、TMLLについては、I2フィールドの内容はマスクとして使用され、R1フィールドは、第1オペランドを指定し、その長さは64ビットである。命令INSERTIMMEDIATE、ANDIMMEDIATE、ORIMMEDIATE、及びLOADLOGICALIMMEDIATEについては、I2フィールドの内容が、符号なし2進整数又は論理値として用いられ、R1フィールドは、第1オペランドを指定し、その長さは64ビットである。RI及びRSI形式の相対分岐命令の場合は、16ビットのI2フィールドの内容が、ハーフワードの数を示す符号付き2進整数として使用される。この数値を分岐命令のアドレスに加えたものが、分岐アドレスを示す。RIL形式の相対分岐命令の場合、I2フィールドは32ビットであり、同じように使用される。RI及びRSI形式の相対分岐命令の場合は、16ビットのI2フィールドの内容が、ハーフワードの数を示す符号付き2進整数として使用される。この数値を分岐命令のアドレスに加えたものが、分岐アドレスを示す。RIL形式の相対分岐命令の場合、I2フィールドは32ビットであり、同じように使用される。RIE形式の命令COMPAREIMMEDIATEANDBRANCHRELATIVE及びCOMPARELOGICALIMMEDIATEANDBRANCHRELATIVEの場合は、8ビットのI2フィールドの内容が、直接第2オペランドとして使用される。RIE形式の命令COMPAREIMMEDIATEANDBRANCH、COMPAREIMMEDIATEANDTRAP、COMPARELOGICALIMMEDIATEANDBRANCH、及びCOMPARELOGICALIMMEDIATEANDTRAPの場合は、16ビットのI2フィールドの内容が、直接第2オペランドとして用いられる。RIE形式の命令COMPAREANDBRANCHRELATIVE、COMPAREIMMEDIATEANDBRANCHRELATIVE、COMPARELOGICALANDBRANCHRELATIVE、及びCOMPARELOGICALIMMEDIATEANDBRANCHRELATIVEの場合は、16ビットのI4フィールドの内容が、ハーフワードの数を示す符号付き2進整数として使用され、これが命令のアドレスに加算されて分岐アドレスを形成する。RIL形式の命令ADDIMMEDIATE、ADDLOGICALIMMEDIATE、ADDLOGICALWITHSIGNEDIMMEDIATE、COMPAREIMMEDIATE、COMPARELOGICALIMMEDIATE、LOADIMMEDIATE、及びMULTIPLYSINGLEIMMEDIATEの場合は、32ビットのI2フィールドの内容が、直接第2オペランドとして用いられる。RIS形式の命令の場合は、8ビットのI2フィールドの内容が、直接第2オペランドとして使用される。SIL形式では、16ビットのI2フィールドの内容が、直接第2オペランドとして使用される。以下に説明されるように、B1及びD1フィールドが、第1オペランドを指定する。RSL、SI、SIL、SSE、及び殆どのSS形式では、B1フィールドが示す汎用レジスタの内容がD1フィールドの内容に加えられ、第1オペランドアドレスを形成する。RS、RSY、S、SIY、SS、及びSSE形式では、B2フィールドが示す汎用レジスタの内容がD2フィールド又はDH2及びDL2フィールドの内容に加えられ、第2オペランドアドレスを形成する。RX、RXE、RXF、及びRXY形式では、X2及びB2フィールドが示す汎用レジスタの内容がD2フィールド又はDH2及びDL2フィールドの内容に加えられ、第2オペランドアドレスを形成する。RIS及びRRS形式並びに1つのSS形式では、B4フィールドが示す汎用レジスタの内容がD4フィールドの内容に加えられ、第4オペランドアドレスを形成する。8ビットの長さのフィールドを1つだけ有するSS形式では、命令ANDNC、EXCLUSIVEORXC、MOVEMVC、MOVENUMERICS、MOVEZONES、及びOROCにおいて、Lは、第1オペランドアドレスが示すバイトの右側に追加するオペランドバイトの数を指定する。従って、第1オペランドのバイト長は、Lの長さコード0-255に対応して、1-256になる。格納結果は、第1オペランドと置き換わり、アドレスと長さで指定されるフィールドの外部に格納されることは決してない。この形式では、第2オペランドは、第1オペランドと同じ長さを有する。EDIT、EDITANDMARK、PACKASCII、PACKUNICODE、TRANSLATE、TRANSLATEANDTEST、UNPACKASCII、及びUNPACKUNICODEに適用される、前述の定義の変形がある。2つの長さフィールドを有するSS形式及びRSL形式では、L1は、第1オペランドアドレスが示すバイトの右側に追加するオペランドバイトの数を指定する。従って、第1オペランドのバイト長は、L1の長さコード0-15に対応して、1-16になる。同様に、L2は、第2オペランドアドレスが示す記憶位置の右側に追加するオペランドバイトの数を指定する。結果は第1オペランドと置き換わり、アドレスと長さで指定されるフィールドの外部に格納されることは決してない。第1オペランドが第2オペランドより長い場合は、第2オペランドは、第1オペランドの長さに等しくなるまで左方向に拡張され、その拡張部分には0が入る。この拡張によって、ストレージ内の第2オペランドが変更されることはない。MOVETOPRIMARY、MOVETOSECONDARY、及びMOVEWITHKEY命令により使用される、2つのRフィールドを有するSS形式では、R1フィールドが示す汎用レジスタの内容は、32ビットの符号なしの値であり、これは真の長さと呼ばれる。オペランドの長さは、どちらも、有効長と呼ばれる長さである。有効長は、真の長さ又は256の、どちらか短い方の長さである。命令では、条件コードを設定し、真の長さで指定された総バイト数を移動するためのループをプログラミングしやすくする。LOADMULTIPLEDISJOINT命令についての様々なレジスタ及び2つのストレージオペランドを指定するため、及び、PERFORMLOCKEDOPERATION命令についての1つ又は2つのレジスタ及び1つ又は2つのストレージオペランドを指定するためにも、2つのRフィールドを有するSS形式が使用される。B1、B2、X2、又はB4フィールドのいずれかが0である場合は、それに対応するアドレスコンポーネントが存在しないことを示す。存在しないコンポーネントについては、汎用レジスタ0の内容に関係なく、中間合計値を形成する際に0が使用される。変位が0であるということに、特別な意味はない。現行PSWのビット31及び32は、アドレッシングモードビットである。ビット31は拡張アドレッシングモードビットであり、ビット32は基本アドレッシングモードビットである。これらのビットは、アドレス生成により生成される実効アドレスのサイズを制御する。現行PSWのビット31及び32が両方とも0のときは、CPUは24ビットアドレッシングモードになっており、24ビットの命令実効アドレス及びオペランド実効アドレスが生成される。現行PSWのビット31が0であり、ビット32が1のときは、CPUは31ビットアドレッシングモードになっており、31ビットの命令実効アドレス及びオペランド実効アドレスが生成される。現行PSWのビット31及び32が両方とも1のときは、CPUは64ビットアドレッシングモードになっており、64ビットの命令実効アドレス及びオペランド実効アドレスが生成される。CPUが命令を実行するときには、命令及びオペランドのアドレスの生成が必要とされる。現行PSWが示す記憶位置から命令がフェッチされると、命令アドレスがその命令に含まれるバイト数だけ増加され、命令が実行される。次いで、次の順番の命令をフェッチするために新しい命令のアドレス値を使用して、同じステップが繰り返される。24ビットアドレッシングモードでは、命令アドレスは循環し、命令アドレス224-2の位置のハーフワードの次には、命令アドレス0の位置のハーフワードが続く。従って、24ビットアドレッシングモードでは、命令アドレスの更新の結果としてPSWビット位置104からの繰り上がりが生じる場合、その繰り上がりは失われる。31ビット又は64ビットのアドレッシングモードでは、命令アドレスは同様に循環し、それぞれ、命令アドレス231-2の位置又は264-2の位置にあるハーフワードの次には、命令アドレス0の位置にあるハーフワードが続く。それぞれPSWビット位置97又は64からの繰り上がりは失われる。ストレージを参照するオペランドアドレスは、中間値から導き出され、中間値は、命令のRフィールドで指定されているレジスタに含まれるか、又は、基底アドレス、指標、及び変位の3つの2進数の和として求められる。基底アドレスBは、命令内のBフィールドと呼ばれる4ビットフィールドにプログラムで指定された汎用レジスタに含まれている、64ビットの数値である。基底アドレスは、各々のプログラム及びデータ域を個別にアドレス指定するための手段として使用することができる。基底アドレスは、配列型の計算では配列の位置を示し、レコード型の処理ではレコードを識別することができる。基底アドレスを使用して、ストレージ全体のアドレス指定が行われる。基底アドレスはまた、指標付けにも使用できる。指標Xは、命令内のXフィールドと呼ばれる4ビットフィールドにプログラムで指定された汎用レジスタに含まれている、64ビットの数値である。指標は、RX、RXE、及びRXY形式の命令により指定されたアドレスの中にのみ含まれている。RX-、RXE-、RXF-、及びRXY-形式の命令では、二重の指標付けが可能である、即ち、指標を使用して、配列の中の要素のアドレスを与えることができる。変位Dは、命令内のDフィールドと呼ばれるフィールドに含まれている、12ビット又は20ビットの数値である。12ビット変位は符号なしであり、基底アドレスが指定する記憶位置を超えた最大4,095バイトまでの相対アドレッシングを提供する。20ビットの変位は符号付きであり、基底アドレスの位置を超えた最大524,287バイトまで、又はその前の最大524,288バイトまでの相対アドレス指定を提供する。配列型の計算では、変位を使用して、1つの要素と関連した多数の項目のうちの1つを指定することができる。レコードの処理では、変位を使用して、レコード内の項目を識別することができる。12ビットの変位は、特定の形式の命令のビット位置20-31にある。幾つかの形式の命令では、第2の12ビットの変位も命令のビット位置36-47にある。20ビットの変位は、RSY、RXY、又はSIY形式の命令の中だけにある。これらの命令において、Dフィールドは、ビット位置20-31のDL低フィールドと、ビット位置32-39のDH高フィールドとから成る。長変位ファシリティがインストールされた場合、変位の数値は、DLフィールドの内容の左にDHフィールドの内容を追加することにより形成される。長変位ファシリティがインストールされていない場合、変位の数値は、DLフィールドの内容の左に8つの0ビットを追加することにより形成され、DHフィールドの内容は無視される。中間合計値を形成する際、基底アドレス及び指標は、64ビットの2進整数として扱われる。12ビットの変位は、12ビットの符号なし2進整数として扱われ、左側に52個の0ビットが追加される。20ビットの変位は、20ビットの符号付き2進整数として扱われ、左側に符号ビットと等しいビットが44個追加される。この3つは、64ビット2進整数として加算され、オーバーフローは無視される。合計値は常に64ビットの長さであり、生成アドレスを形成するための中間値として用いられる。中間値のビットには、0-63の番号が付けられる。B1、B2、X2、又はB4フィールドのいずれかが0である場合、それに対応するアドレスコンポーネントが存在しないことを示す。存在しないコンポーネントについては、汎用レジスタ0の内容に関係なく、中間合計値を形成する際に0が使用される。変位が0であるということに、特別な意味はない。Rフィールドが示す汎用レジスタの内容を使用してストレージ内のオペランドをアドレス指定することが命令の説明により指定されている場合は、そのレジスタの内容が64ビットの中間値として使用される。1つの命令で、アドレス計算及びオペランド位置の両方に同じ汎用レジスタを指定することができる。アドレス計算は、もしあれば、操作によりレジスタが変更される前に完了する。個々の命令定義の中で特に断りがない限り、生成されるオペランドアドレスは、ストレージ内でのオペランドの左端のバイトを指す。生成されるオペランドアドレスは常に64ビットの長さであり、ビットには0-63の番号が付けられている。生成アドレスが中間値から取得される方法は、現行のアドレッシングモードによって決まる。24ビットアドレッシングモードでは、中間値のビット0-39は無視され、生成アドレスのビット0-39は、0に強制的に設定され、中間値のビット40-63が、生成アドレスのビット40-63になる。31ビットアドレッシングモードでは、中間値のビット0-32は無視され、生成アドレスのビット0-32は0に強制的に設定され、中間値のビット33-63が、生成アドレスのビット33-63になる。64ビットアドレッシングモードでは、中間値のビット0-63が、生成アドレスのビット0-63になる。指標レジスタ及び基底アドレスレジスタの中では、負の値を使用することができる。31ビットアドレッシングモードでは、これらの値のビット0-32は無視され、24ビットアドレッシングモードでは、これらの値のビット0-39は無視される。分岐命令の場合、分岐が実行されたときに次に実行される命令のアドレスを、分岐アドレスと呼ぶ。命令形式は、分岐命令に応じて、RR、RRE、RX、RXY、RS、RSY、RSI、RI、RIE、又はRILとすることができる。分岐アドレスは、RS、RSY、RX、及びRXY形式では、基底アドレスと変位により指定され、RX及びRXY形式では、指標により指定される。これらの形式において、中間値の生成は、オペランドアドレスの中間値の生成と同じ規則に従って行われる。RR及びRRE形式では、R2フィールドが示す汎用レジスタの内容が、分岐アドレス形成の元となる中間値として使用される。汎用レジスタ0を、分岐アドレスを含むものとして指定することはできない。R2フィールドの値が0である場合は、その命令は分岐なしで実行される。相対-分岐命令は、RSI、RI、RIE、及びRIL形式のものである。相対-分岐命令のRSI、RI、及びRIS形式では、I2フィールドの内容は、ハーフワードの数を示す16ビットの符号付き2進整数として扱われる。RIL形式では、I2フィールドの内容は、ハーフワードの数を示す32ビットの符号付き2進整数として扱われる。分岐アドレスは、相対-分岐命令のアドレスに、I2フィールドに指定されているハーフワードの数を加えたものである。RSI、RI、RIE、又はRIL形式の相対分岐命令の場合の64ビットの中間値は、2つの加数の和であり、ビット位置0からのオーバーフローは無視される。RSI、RI、又はRIE形式では、第1の加数は、COMPAREANDBRANCHRELATIVE、COMPAREIMMEDIATEAMDBRANCHRELATIVE、COMPARELOGICALANDBRANCHRELATIVE、及びCOMPARELOGICALIMMEDIATEANDBRANCHRELATIVEの場合に、I4フィールドの内容にI2フィールドについて上述したようにビットが追加されているという点を除いて、I2フィールドの内容の右側に1個の0ビットを付加し、左側にその内容の符号ビットと等しいビットを47個付加したものである。RIL形式では、第1の加数は、I2フィールドの内容の右側に1個の0ビットを付加し、左側にその内容の符号ビットと等しいビットを31個付加したものである。第2の加数は、全ての形式において、分岐命令の64ビットアドレスである。分岐命令のアドレスは、次の順次命令をアドレス指定するためにアドレスが更新される前のPSWの命令アドレスであるか、又は、EXECUTE命令が使用される場合は、EXECUTE命令のターゲットのアドレスである。EXECUTEを24ビット又は31ビットアドレッシングモードで使用している場合、分岐命令のアドレスは、それぞれ、ターゲットアドレスの左側に40個又は33個の0を付加したものである。分岐アドレスは常に64ビットの長さであり、ビットには0-63の番号が付けられる。分岐アドレスは、現行PSWのビット64-127と置き換わる。分岐アドレスを中間値から取得する方法は、アドレッシングモードによって決まる。アドレッシングモードを変更する分岐命令の場合は、新しいアドレッシングモードが使用される。24ビットアドレッシングモードでは、中間値のビット0-39は無視され、分岐アドレスのビット0-39は0にされ、中間値のビット40-63が、分岐アドレスのビット40-63になる。31ビットアドレッシングモードでは、中間値のビット0-32は無視され、分岐アドレスのビット0-32は0にされ、中間値のビット33-63が、分岐アドレスのビット33-63になる。64ビットアドレッシングモードでは、中間値のビット0-63が分岐アドレスのビット0-63になる。幾つかの分岐命令では、指定された特定の条件を満たしているかどうかによって、分岐するかどうかが決まる。条件が満たされていない場合は、分岐は行われず、通常の順序で命令が続行され、分岐アドレスは使用されない。分岐が行われる場合は、分岐アドレスのビット0-63が現行PSWのビット64-127と置き換わる。分岐アドレスは、分岐操作の一部としてストレージにアクセスするためには使用されない。分岐アドレスが奇数であることが原因で起きる指定例外、及び、分岐位置にある命令のフェッチが原因で起こるアクセス例外は、分岐操作の一部として認識されるのではなく、代わりに、分岐位置にある命令の実行に関連した例外として認識される。BRANCHANDSAVEのような分岐命令で、分岐アドレス計算及びオペランド位置の両方に同じ汎用レジスタを指定することができる。分岐アドレス計算が完了してから、操作の残りの部分が実行される。第4章制御で説明したプログラム状況ワードPSWには、プログラムの適正な実行のために必要な情報が含まれている。PSWは、命令の順序を制御し、現在実行中のプログラムとの関連におけるCPUの状態を保持及び提示するために使用される。アクティブなPSW、即ち制御を行っているPSWを、現行PSWcurrentPSWと呼ぶ。分岐命令は、意思決定、ループ制御、及びサブルーチンリンケージの機能を実行する。分岐命令は、現行PSWに新しい命令アドレスを導入することにより、命令の順序に影響を与える。16ビットのI2フィールドを有する相対-分岐命令では、基底レジスタを使用せずに、分岐命令の位置を基準として、プラス64K-2バイトまで、又はマイナス64Kバイトまでのオフセット位置に分岐することができる。32ビットのI2フィールドを有する相対-分岐命令では、基底レジスタを使用せずに、分岐命令の位置を基準として、プラス4G-2バイトまで、又はマイナス4Gバイトまでのオフセット位置に分岐することができる。意思決定のためのファシリティは、BRANCHONCONDITION、BRANCHRELATIVEONCONDITION、及びBRANCHRELATIVEONCONDITIONLONG命令により与えられる。これらの命令は、殆どの算術操作、論理操作、及びI/O操作の結果を反映する条件コードを検査する。条件コードは、2ビットから成り、0、1、2、及び3の4通りの条件コード設定が可能である。各設定の具体的な意味は、条件コードを設定する操作によって決まる。例えば、条件コードは、0である、0以外、第1オペランドが高い、等しい、オーバーフロー、及びサブチャネル使用中などの条件を反映する。一旦設定されると、条件コードは、別の条件コードを設定させる命令により変更されるまで、変わらないままである。BRANCHONCONDITION、BRANCHRELATIVEONCONDITION、及びBRANCHRELATIVEONCONDITIONLONGを使用し、アドレスの算術操作及びカウント操作の結果をテストすることにより、ループ制御を行うことができる。特に使用頻度の高い算術とテストの組み合わせに使用する命令として、BRANCHONCOUNT、BRANCHONINDEXHIGH、及びBRANCHONINDEXLOWOREQUALが提供され、これらの命令と同等の相対分岐も提供される。これらの分岐は、これらのタスク用に特化されているので、それらの性能が向上する。アドレッシングモードの変更が必要ない場合のサブルーチンリンケージを行う命令には、BRANCHANDLINK及びBRANCHANDSAVE命令がある。BRANCHANDSAVEに関するこの説明は、BRANCHRELATIVEANDSAVE及びBRANCHRELATIVEANDSAVELONGにも適用される。これらの命令はどちらも、新しい命令アドレスを導入するだけでなく、戻りアドレスとそれに関連した情報を保存することもできる。分岐命令をターゲットとするEXECUTE命令の場合は、EXECUTEの後に続く命令のアドレスであるが、戻りアドレスは、ストレージ内の分岐命令の後に続く命令アドレスである。BRANCHANDLINK及びBRANCHANDSAVEのどちらの命令も、R1フィールドを有する。これらの命令は、それぞれ命令に応じたフィールドを使用して分岐アドレスを形成する。以下のように命令の働きを要約する。:24ビットアドレッシングモードでは、どちらの命令も、汎用レジスタR1のビット位置40-63に戻りアドレスを入れ、そのレジスタのビット0-31は変わらないままである。BRANCHANDLINKは、汎用レジスタR1のビット位置32-39に、命令長コードと、現行PSWからの条件コード及びプログラムマスクを入れる。BRANCHANDSAVEは、これらのビット位置に0を入れる。31ビットアドレッシングモードでは、どちらの命令も、汎用レジスタR1のビット位置33-63に戻りアドレスを入れ、ビット位置32に1を入れ、レジスタのビット0-31は変わらないままである。64ビットアドレッシングモードでは、どちらの命令も、汎用レジスタR1のビット位置0-63に戻りアドレスを入れる。どのアドレッシングモードにおいても、どちらの命令も現行アドレッシングモードの制御下で分岐アドレスを生成する。これらの命令は、分岐アドレスのビット0-63をPSWのビット位置64-127に入れる。RR形式では、命令のR2フィールドが0であるときは、どちらの命令も分岐を行わない。24ビット又は31ビットのアドレッシングモードでは、BRANCHANDSAVEは、基本アドレッシングモードビット、即ちPSWのビット32を、汎用レジスタR1のビット位置32に入れることが分かる。BRANCHANDLINKは、31ビットアドレッシングモードの場合に同じことを行う。命令BRANCHANDSAVEANDSETMODE及びBRANCHANDSETMODEは、リンケージ中にアドレッシングモードの変更が必要な場合に使用するためのものである。これらの命令には、R1フィールドとR2フィールドとがある。以下にこれらの命令の働きを要約する。:BRANCHANDSAVEANDSETMODEは、汎用レジスタR1の内容をBRANCHANDSAVEの場合と同じ設定にする。さらに、この命令は、拡張アドレッシングモードビット、即ちPSWのビット31を、レジスタのビット位置63に入れる。BRANCHANDSETMODEは、R1が0以外のときは、以下のことを行う。24ビット又は31ビットモードでは、この命令は、PSWのビット32を汎用レジスタR1のビット位置32に入れ、レジスタのビット0-31及び33-63は変更しない。このレジスタが命令アドレスを含む場合、レジスタのビット63は0でなければならないという点に留意されたい。64ビットモードでは、この命令は、PSWのビット311つを汎用レジスタR1のビット位置63に入れ、レジスタのビット0-62は変更されないままである。R2が0以外のときは、どちらの命令も、以下のように、アドレッシングモードを設定し、分岐を行う。汎用レジスタR2のビット63が、PSWのビット位置31に入れられる。ビット63が0の場合は、レジスタのビット32がPSWのビット位置32に入れられる。ビット63が1の場合は、PSWのビット32は1に設定される。次いで、新しいアドレッシングモードの制御下で、レジスタの内容から分岐アドレスが生成されるが、レジスタのビット63は0と見なされる。命令は、分岐アドレスのビット0-63をPSWのビット位置64-127に入れる。汎用レジスタR2のビット63は変更されないままなので、呼び出し先プログラムに入る時点で1になっていることがある。R2がR1と同じである場合は、指定された汎用レジスタ内の結果は、R1レジスタについて指定されている結果と同じになる。割り込みコンテキストスイッチ:割り込み機構により、CPUが、構成の外部、構成の内部、又はCPU自体の中にある条件の結果として、状態を変化させることが可能になる。優先順位の高い条件に迅速に応答し、条件のタイプを即時認識するのを可能にするために、割り込み条件は、外部割り込み、入力/出力割り込み、マシンチェック割り込み、プログラム割り込み、再始動割り込み、及び監視プログラム呼び出し割り込みの6つのクラスにグループ化される。割り込みは、現行PSWを旧PSWとして格納し、割り込みの原因を示す情報を格納し、新しいPSWをフェッチすることから成る。処理は、新しいPSWの指定に従って再開する。通常、割り込みが発生したときに格納される旧PSWには、割り込みが発生しなかったとすれば次に実行されるはずだった命令のアドレスが含まれており、従って、中断されたプログラムの再開が可能である。プログラム割り込み及び監視プログラム呼び出し割り込みの場合、格納された情報は、最後に実行される命令の長さを識別するコードも含んでおり、従って、プログラムが割り込みの原因に対応することが可能である。通常の応答が割り込みを発生させた命令の再実行である或るプログラム条件の場合は、命令アドレスは、最後に実行された命令を直接識別する。再始動割り込みを除き、CPUが作動状態にあるときにだけ、割り込みが発生し得る。再始動割り込みは、CPUが停止状態又は作動状態にあるときにも発生し得る。いずれのアクセス例外も、その例外が関連している命令の実行の一部として発生する。CPUが、使用可能でない記憶位置からプリフェッチしようと試みた場合、或いは他の何らかのアクセス例外条件を検出したが、分岐命令又は割り込みが命令シーケンスを変更した結果、当該命令が実行されない場合は、アクセス例外は発生しない。どの命令でも、命令フェッチが原因でアクセス例外が発生することがある。さらに、ストレージ内のオペランドへのアクセスが原因で、命令実行に関連したアクセス例外が発生することがある。例外を発生させずに命令の第1ハーフワードをフェッチできないとき、命令のフェッチを原因とするアクセス例外が示される。命令の第1ハーフワードについてアクセス例外がないときは、命令の最初の2ビットに指定されている命令長に従って、付加的なハーフワードについてアクセス例外が示されることがあるが、命令の第2又は第3のハーフワードにアクセスせずに操作を実行できる場合は、その未使用部分についてアクセス例外が示されるかどうかは、予測不能である。命令フェッチに関するアクセス例外の指示は全ての命令について共通であるので、個々の命令の定義の中ではカバーされない。個々の命令の説明の中に特に明記されていない限り、オペランド位置へのアクセスに関連した例外には、以下の規則が適用される。フェッチタイプオペランドの場合は、アクセス例外が必ず示されるのは、操作の完了に必要なオペランド部分についてのみである。フェッチタイプのオペランドの中の、操作の完了に必要な部分については、アクセス例外が示されるかどうかは予測不能である。ストアタイプのオペランドの場合は、オペランドのアクセス不能部分を使用せずに操作を完了できる場合であっても、オペランド全体についてアクセス例外が発生する。ストアタイプのオペランドの値が予測不能として定義される状況では、アクセス例外が示されるかどうかは予測不能である。オペランド位置へのアクセスが原因でアクセス例外が発生するたびに、命令の説明の中のプログラム例外のリストに、アクセスという語が含められる。また、このエントリには、どのオペランドが例外の発生の原因となり得るか、及び、そのオペランド位置へのフェッチアクセス又はストアアクセスのどちらで例外が発生するかも示される。アクセス例外は、オペランドの、個々の命令について定義されている部分についてのみ発生する。操作例外は、CPUが、無効なオペレーションコードを有する命令を実行しようとした場合に発生する。そのオペレーションコードは割り当てられていないものであるか、又は、そのオペレーションコードを有する命令がCPUにインストールされていない可能性がある。操作は抑止される。命令長コードは、1、2、又は3である。操作例外は、000116進数のプログラム割り込みコードにより示される又は、同時にPERイベントも示される場合は、008116進数。一部のモデルでは、特殊機能又は特注機能の補助のため、又は、それらの一部として提供されている命令などのように、本明細書では説明されていない命令を提供することがある。従って、本明細書で説明されていないオペレーションコードにより、必ずしも操作例外が発生するとは限らない。さらに、これらの命令により、操作モードがセットアップされたり、又は、後続の命令の実行に影響を及ぼすような変更がマシンに加えられたりすることもある。このような操作が生じるのを回避するために、本明細書で説明されていないオペレーションコードを有する命令は、そのオペレーションコードに関連した特定の機能が求められる場合に限り実行すべきである。指定例外specificationexceptionは、以下のいずれかが真であるときに発生する。1.PSWの未割り当てのビット位置即ち、ビット位置0、2-4、24-30、又は33-63のいずれかに1が入れられる。これは、早期PSW指定例外として扱われる。2.PSWのビット位置12に1が入れられる。これは、早期PSW指定例外として扱われる。3.次のいずれかの理由により、PSWが無効である:a.PSWのビット31が1であり、ビット32が0である。b.PSWのビット31及び32が、24ビットアドレッシングモードを示す0であり、PSWのビット64-103が全て0ではない。c.PSWのビット31が0であり、ビット32が、31ビットアドレッシングモードを示す1であり、PSWのビット64-96が全て0ではない。これは、早期PSW指定例外として扱われる。4.PSWが奇数の命令アドレスを含む。5.こうした整数境界指定を必要とする命令で、オペランドアドレスが整数境界を示していない。6.偶数番号のレジスタ指定を必要とする命令のRフィールドにより、奇数番号の汎用レジスタが指定されている。7.拡張オペランドに、0、1、4、5、8、9、12、又は13以外の浮動小数点レジスタが指定されている。8.10進数演算の乗数又は除数が、15桁の数字と符号を超えている。9.10進数の乗算又は除算において、第1オペランドフィールドの長さが、第2オペランドフィールドの長さより短いか又はこれと等しい。10.CIPHERMESSAGE、CIPHERMESSAGEWITHCHAINING、COMPUTEINTERMEDIATEMESSAGEDIGEST、COMPUTELASTMESSAGEDIGEST、又はCOMPUTEMESSAGEAUTHENTICATIONCODEの実行が試みられ、汎用レジスタ0のビット57-63における機能コードは、未割り当ての又はインストールされていない機能コードを含む。11.CIPHERMESSAGE又はCIPHERMESSAGEWITHCHAININGの実行が試みられ、R1又はR2フィールドは、奇数番号のレジスタ又は汎用レジスタ0を指示する。12.CIPHERMESSAGE、CIPHERMESSAGEWITHCHAINING、COMPUTEINTERMEDIATEMESSAGEDIGEST、又はCOMPUTEMESSAGEAUTHENTICATIONCODEの実行が試みられ、第2オペランドの長さは、指定された関数のデータブロックのサイズの倍数ではない。この指定例外条件は、クエリ関数に適用されない。13.COMPAREANDFORMCODEWORDの実行が試みられ、汎用レジスタ1、2、及び3は最初に偶数値を含んでいない。32.COMPAREANDSWAPANDSTOREの実行が試みられ、かつ、次の条件のいずれかが存在する。:機能コードが未割り当ての値を指定する。格納特性が未割り当ての値を指定する。機能コードは0であり、第1オペランドはワード境界上に指定されない。機能コードは1であり、第1オペランドはダブルワード境界上に指定されない。第2オペランドは、格納値のサイズに対応する整数境界上に指定されない。33.COMPARELOGICALLONGUNICODE又はMOVELONGUNICODEの実行が試みられ、汎用レジスタR11又はR31のいずれの内容も、偶数のバイト数を指定しない。34.COMPARELOGICALSTRING、MOVESTRING、又はSEARCHSTRINGの実行が試みられ、汎用レジスタ0のビット32-55が全て0ではない。35.COMPRESSIONCALLの実行が試みられ、汎用レジスタ0のビット48-51が、値0000及び0110-11112進数のいずれかを有する。36.COMPUTEINTERMEDIATEMESSAGEDIGEST、COMPUTELASTMESSAGEDIGEST、又はCOMPUTEMESSAGEAUTHENTICATIONCODEの実行が試みられ、次のいずれかが真である。:R2フィールドが、奇数番号のレジスタ又は汎用レジスタ0を指定する。汎用レジスタ0のビット56が0ではない。37.CONVERTHFPTOBFP、CONVERTTOFIXEDBFP又はHFP、又はLOADFPINTEGERBFPの実行が試みられ、M3フィールドが有効な修飾子を指定していない。38.DIVIDETOINTEGERの実行が試みられ、M4フィールドが有効な修飾子を指定していない。39.EXECUTEの実行が試みられ、ターゲットアドレスが奇数である。40.EXTRACTSTACKEDSTATEの実行が試みられ、汎用レジスタR2のビット位置56-63のコードは、ASN-and-LX-reuseファシリティがインストールされていない場合に4より大きく、或いは、このファシリティがインストールされている場合に5より大きい。41.FINDLEFTMOSTONEの実行が試みられ、R1フィールドが、奇数番号のレジスタを指定する。42.INVALIDATEDATTABLEENTRYの実行が試みられ、汎用レジスタR2のビット44-51が全て0ではない。43.LOADFPCの実行が試みられ、FPCレジスタ内のサポートされていないビットに対応する第2オペランドの1つ又は複数のビットが1である。44.LOADPAGE-TABLE-ENTRYADDRESSの実行が試みられ、命令のM4フィールドが、0000-01002進数以外のいずれかの値を含む。45.LOADPSWの実行が試みられ、第2オペランドアドレスにおけるダブルワードのビット12が0である。この例外が発生するかどうかは、モデルによって決まる。46.MONITORCALLの実行が試みられ、命令のビット位置8-11が0を含まない。47.MOVEPAGEの実行が試みられ、汎用レジスタ0のビット位置48-51が0を含まないか、又は、レジスタのビット52と53が両方とも1である。48.PACKASCIIの実行が試みられ、L2フィールドが31より大きい。49.PACKUNICODEの実行が試みられ、L2フィールドが63より大きいか、又は偶数である。50.PERFORMFLOATINGPOINTOPERATIONの実行が試みられ、汎用レジスタ0のビット32が0であり、ビット33-63の1つ又は複数のフィールドが無効であるか、又はインストールされていない機能を指定する。51.PERFORMLOCKEDOPERATIONの実行が試みられ、次のいずれかが真である。:汎用レジスタ0のTビット、即ちビット55が0であり、レジスタのビット56-63の機能コードが無効である。汎用レジスタ0のビット32-54が全て0ではない。アクセスレジスタモードにおいて、ALETを含むパラメータリストを使用させる機能コードについて、R3フィールドが0である。52.PERFORMTIMINGFACILITYFUNCTIONの実行が試みられ、次のいずれかが真である。:汎用レジスタ0のビット56が0ではない。汎用レジスタ0のビット57-63が、未割り当ての又はインストールされていない機能コードを指定する。53.PROGRAMTRANSFER又はPROGRAMTRANSFERWITHINSTANCEの実行が試みられ、次の全てが真である。:PSWの拡張アドレッシングモードビットが0である。命令のR2フィールドが指定する汎用レジスタ内の基本アドレッシングモードビット、即ちビット32が0である。同じレジスタ内の命令アドレスのビット33-39が全て0ではない。54.RESUMEPROGRAMの実行が試みられ、次のいずれかが真である。:現行PSWに入れるために、第2オペランドのPSWフィールドのビット31、32、及び64-127は有効ではない。次のいずれかが真である場合、例外が発生する。:-ビット31及び32の両方とも0であり、ビット63-103が全て0ではない。-ビット31は0、ビット32が1であり、ビット64-96が全て0ではない。-ビット31は1、ビット32が0である。-ビット127が1である。パラメータリストのビット0-12が全て0ではない。55.SEARCHSTRINGUNICODEの実行が試みられ、汎用レジスタ0のビット32-47が全て0ではない。56.SETADDRESSSPACECONTROL、又はSETADDRESSSPACECONTROLFASTの実行が試みられ、第2オペランドアドレスのビット52及び53が両方とも0ではない。57.SETADDRESSINGMODESAM24の実行が試みられ、PSW内の未更新の命令アドレスのビット0-39、PSWのビット64-103が、全て0ではない。58.SETADDRESSINGMODESAM31の実行が試みられ、PSW内の未更新の命令アドレスのビット0-32、PSWのビット64-96が、全て0ではない。59.SETCLOCKPROGRAMMABLEFIELDの実行が試みられ、汎用レジスタ0のビット32-47が全て0ではない。60.SETFPCの実行が試みられ、FPCレジスタ内のサポートされていないビットに対応する第1オペランドの1つ又は複数のビットが1である。61.STORESYSTEMINFORMATIONの実行が試みられ、汎用レジスタ0内の機能コードが有効であり、次のいずれかが真である。:汎用レジスタ0のビット36-55及び汎用レジスタ1のビット32-47が全て0ではない。第2オペランドアドレスが、4Kバイト境界上に位置合わせされない。62.TRANSLATETWOTOONE又はTRANSLATETWOTOTWOの実行が試みられ、汎用レジスタR11における長さは偶数のバイトを指定していない。63.UNPACKASCIIの実行が試みられ、L1フィールドが31より大きい。64.UNPACKUNICODEの実行が試みられ、L1フィールドが63より大きいか、又は偶数である。65.UPDATETREEの実行が試みられ、汎用レジスタ4及び5の最初の内容は、24ビット又は31ビットアドレッシングモードにおいて8の倍数ではないか、又は、64ビットアドレッシングモードにおいて16の倍数ではない。旧PSWにより識別される命令の実行は抑止される。しかしながら、早期PSW指定例外原因1-3の場合は、新PSWを導入する操作は完了するが、その直後に割り込みが発生する。命令長コードILCは1、2、又は3であり、例外を引き起こした命令の長さを示すことが好ましい。命令アドレスが奇数6~33ページの原因4の場合は、ILCが1、2、又は3のいずれになるかは予測不能である。早期PSW指定例外原因1-3のために例外が発生し、LOADPSW、LOADPSWEXTENDED、PROGRAMRETURN、又は割り込みによりその例外が導入された場合は、ILCは0である。例外がSETADDRESSINGMODESAM24、SAM31により導入された場合は、ILCは1であり、或いは、SETADDRESSINGMODEがEXECUTEのターゲットであった場合、ILCは2である。例外が、SETSYSTEMMASK又はSTORETHENORSYSTEMMASKにより導入された場合、ILCは2である。プログラム割り込みは、プログラムの実行中に起きた例外及びイベントを報告するために使用される。プログラム割り込みにより、旧PSWが実記憶位置reallocation336-351に格納され、新PSWが実記憶位置464-479からフェッチされる。割り込み原因は、割り込みコードにより識別される。割り込みコードは、実記憶位置142-143に入れられ、命令長コードは実記憶位置141のバイトのビット位置5及び6に入れられ、そのビットの残りは0に設定され、実記憶位置140には0が格納される。原因によっては、割り込みの理由を識別する付加的な情報が実記憶位置144-183に格納される。PER-3ファシリティがインストールされている場合、プログラム割り込み動作の一部として、ブレーキングイベントアドレスレジスタの内容が、実記憶位置272-279に入れられる。PERイベント及び暗号操作例外を除いて、割り込みコードの右端7個のビット位置に入れられたコード値が、割り込みの原因となった条件を示す。一度に1つの条件しか示すことはできない。割り込みコードのビット0-7は、0に設定される。PERイベントは、割り込みコードのビット8が1に設定されることにより示される。これが唯一の条件である場合は、ビット0-7及び9-15も0に設定される。PERイベントと同時に別のプログラム割り込み条件も示される場合、ビット8は1に設定され、他の条件と同様にビット0-7及び9-15が設定される。暗号操作例外は、割り込みコードの011916進数で示されるか、又は、PERイベントも示される場合、019916進数で示される。対応するマスクビットが存在する場合、そのマスクビットが1のときだけ、プログラム割り込み起こり可能性がある。PSW内のプログラムマスクは4つの例外を制御し、FPCレジスタ内のIEEEマスクはIEEE例外を制御し、制御レジスタ0のビット33は、SETSYSTEMMASKが特殊操作例外を起こすかどうかを制御し、制御レジスタ8のビット48-63は、監視イベントが引き起こす割り込みを制御し、マスクの階層はPERイベントが引き起こす割り込みを制御する。いずれかの制御マスクビットが0であれば、条件は無視され、その条件は保留のまま残されることはない。プログラム割り込み用の新PSWにPSW形式エラーがあるか、又は、命令フェッチのプロセスにおいて例外が発生した場合、一連のプログラム割り込みが起きることがある。プログラム例外として示される条件の幾つかは、チャネルサブシステムにより発生することもあり、その場合、例外はサブチャネル状況ワード又は拡張状況ワードで示される。データ例外が原因でプログラム割り込みが起きたときは、データ例外コードDXCが記憶位置147に格納され、記憶位置144-146には0が格納される。DXCは、種々のタイプのデータ例外条件を識別する。AFPレジスタ付加的浮動小数点レジスタ制御ビット、即ち、制御レジスタ0のビット45が1のとき、浮動小数点制御FPCレジスタのDXCフィールドにもDXCが入れられる。他のいずれのプログラム例外が報告されても、FPCレジスタ内のDXCフィールドは変更されないままである。DXCは、データ例外の具体的な原因を示す8ビットのコードである。DXC2及び3は、相互排他的であり、いずれの他のDXCよりも優先順位が高い。従って、例えば、DXC2BFP命令は、どのIEEE例外よりも優先され、DXC3DFP命令は、どのIEEE例外又はシミュレートされたIEEE例外よりも優先される。別の例として、DXC3DFP命令及びDXC1AFPレジスタの両方についての条件が存在する場合には、DXC3が報告される。指定例外及びAFPレジスタデータ例外の両方が該当する場合は、どちらが報告されるかは予測不能である。アドレッシング例外は、CPUが、構成内で使用可能になっていない主記憶位置を参照しようと試みた場合に発生する。主記憶位置が構成内で使用できないのは、その位置がインストールされていない場合、ストレージユニットが構成内に存在しない場合、又はストレージユニットの電源がオフである場合である。構成内で使用可能でない記憶位置を指定しているアドレスを、無効であると言う。命令のアドレスが無効な場合は、操作は抑止される。同様に、EXECUTEのターゲット命令のアドレスが無効な場合も、操作は抑止される。さらに、テーブル又はテーブルエントリにアクセスする際にアドレッシング例外が発生した場合は、操作単位が抑止される。この規則が適用されるテーブル及びテーブルエントリは、ディスパッチ可能単位制御テーブル、1次ASN第2テーブルエントリ、並びにアクセスリスト、領域第1テーブル、領域第2テーブル、領域第3テーブル、セグメントテーブル、ページテーブル、リンケージテーブル、リンケージ第1テーブル、リンケージ第2テーブル、エントリテーブル、ASN第1テーブル、ASN第2テーブル、権限テーブル、リンケージスタック、及びトレーステーブル内のエントリである。領域第1テーブル、領域第2テーブル、領域第3テーブル、セグメントテーブル、及びページテーブルに対する参照についてアドレッシング例外が生じた場合は、動的アドレス変換の際の暗黙参照の場合も、LOADPAGE-TABLE-ENTRYADDRESS、LOADREALADDRESS、STOREREALADDRESS、及びTESTPROTECTIONの実行と関連した参照の場合も、アドレッシング例外は抑止をもたらす。同様に、ディスパッチ可能単位制御テーブル、1次ASN第2テーブルエントリ、アクセスリスト、ASN第2テーブル、又は権限テーブルへのアクセスについてアドレッシング例外が生じた場合は、暗黙的なアクセスレジスタ変換の場合も、又は、LOADPAGE-TABLE-ENTRYADDRESS、LOADREALADDRESS、STOREREALADDRESS、TESTACCESS、又はTESTPROTECTIONの一部として行われるアクセスレジスタ変換の場合も、抑止がもたらされる。実行が抑止される一部の特定の命令を除いて、オペランドアドレスの変換はできても、そのアドレスが使用不能の位置を示している場合は、操作は終了する。終了の場合は、変更されるのは結果フィールドだけである。この文脈における結果フィールドという用語は、条件コード、レジスタ、及びいずれかの記憶位置のうち、命令により変更されるものとして指定されている位置が含まれる。上記は、1つのコンピュータシステムの実施形態の用語及び構造の理解に有用である。実施形態は、z/Architecture又はそこで提供される説明に制限されるものではない。実施形態は、ここでの教示を有する他のコンピュータ製造業者の他のコンピュータアーキテクチャに有利に適用することが可能である。異なるプロセッサアーキテクチャは、汎用レジスタgeneralpurposeregisterと呼ばれることが多い、制限された数の汎用レジスタgeneralregister、GRを提供し、それらは、アーキテクチャ化された命令セットの命令により明示的に及び/又は、暗黙的に識別される。IBMz/Architecture及びその前身のアーキテクチャ1964年頃のオリジナルのSystem360に遡ることができるは、各々の中央演算処理装置CPUに対して16個の汎用レジスタGRを提供する。以下のように、プロセッサ中央演算処理装置CPUの命令により、GRを使用することができる。:算術又は論理演算のソースオペランドとして。算術又は論理演算のターゲットオペランドとして。メモリオペランドのアドレスとして基底レジスタ、指標レジスタ、又は直接。メモリオペランドの長さとして。命令との間で機能コード又は他の情報を提供するといった他の使用。2000年にIBMz/Architectureメインフレームが導入されるまで、メインフレームの汎用レジスタは、32ビットで構成されており、z/Architectureの導入に伴い、汎用レジスタは64ビットで構成されるようになったが、互換性の理由で、多くのz/Architecture命令は、引き続き32ビットをサポートしている。同様に、例えばIntel登録商標からのx86のような他のアーキテクチャは、互換モードを提供するので、例えば32ビットレジスタを有する現行のマシンは、命令が、32ビットGRの最初の8ビット又は16ビットだけにアクセスするモードを提供する。初期のIBMSystem360環境においてさえ、アセンブラプログラマ及びコンパイラ設計者にとって、16個のレジスタ例えば、命令内の4ビットレジスタフィールドにより識別されるは難題であることが分かっていた。中規模サイズのプログラムは、コード及びデータをアドレス指定するために幾つかの基底レジスタを必要とすることがあり、アクティブな変数を保持するのに使用可能なレジスタの数を制限する。制限された数のレジスタに対処するために、特定の技術が使用される。:プログラム設計モジュラープログラミングのように単純なは、基底レジスタの過剰使用を最小限にするのに役立った。コンパイラは、レジスタの動的な再割り当てを管理するために、レジスタの色分けのような技術を使用している。以下を用いて、基底レジスタの使用を減らすことができる。:即ち、命令内に即値定数を有するよりより新しい算術及び論理命令。相対-即値オペランドアドレスを有するより新しい命令。長変位を有するより新しい命令。しかしながら、CPU内のレジスタの数が収容可能であるよりも多くの生存変数livevariable及びアドレッシング範囲がある場合、一定のレジスタ圧registerpressureが残る。z/Architectureは、3つのプログラムが選択可能なアドレッシングモード:即ち、24ビット、31ビット、及び64ビットアドレッシングを提供する。しかしながら、64ビット値を必要とせず、64ビットのメモリアドレッシングも利用しないプログラムの場合には、64ビットのGRを有することの利点は限られている。以下の開示は、通常は64ビットアドレッシング又は変数を使用しないプログラムに対して64ビットレジスタを利用するための技術を説明する。本開示においては、レジスタのビット位置に、左から右に昇順で番号が付けられるビッグエンディアン慣例が使用される。64ビットレジスタでは、ビット0左端のビットが最上位の値263を表し、ビット63右端のビットが最下位の値20を表す。こうしたレジスタの左端の32ビットビット0-31は、上位ワードhighwordと呼ばれ、レジスタの右端の32ビットビット32-63は、下位ワードlowwordと呼ばれ、1ワードは32ビットである。上位ワードファシリティCPUが32ビットモードにあるときに64ビットの汎用レジスタの上位ワード最上位の32ビットを利用するために、新しい一連の汎用命令つまり、アプリケーションプログラムが利用可能な命令が導入される。プログラムは、新しい命令を利用し、引き続き下位ワードに制限される従来の命令に加えて、GPRの隠れたこれまで利用可能でなかった上位ワードにアクセスすることができる。図18を参照すると、64ビットレジスタをサポートしているより新しいバージョンのアーキテクチャ上で、16ビット又は32ビットレジスタを有するアーキテクチャに書き込まれたプログラムを実行することができる。例えば32ビットモード用に書かれたプログラムは、32ビットレジスタ、典型的には32ビット又はそれより少ない論理アドレスビットのみを認識する。64ビットアーキテクチャ化コンピュータシステム内のオペレーティングシステムOS801は、64ビットモード用に書かれたプログラム803、及び、32ビットモード用に書かれたプログラム802をサポートすることができる。アプリケーションプログラム802、803が、32ビットモードであるか又は64ビットモードであるかに関係なく、プログラム及び/又はオペレーティングシステム間で切り換えを行うとき、こうしたマシンにおけるコンテキストスイッチ操作804が、64ビットレジスタ、及び、プログラム状況ワードPSWを保存する805。従って、特定のコンテキストスイッチの際、64ビットオペレーティングシステムの制御下の64ビットマシンにおいて32ビットモードで実行されている32ビットプログラムは、そのレジスタが保存され、復元される。コンテキストスイッチが行われるプログラムが32ビットモードで実行されていても、コンテキストスイッチの際、コンピュータシステム及びオペレーティングシステムは、実際には、汎用レジスタの64ビット全てを保存し、復元することができる805。従って、プログラムは、レジスタの半分だけ、即ち、各レジスタの64ビットの32ビットのみを見る。実装されたレジスタの他の32ビットは、32ビットプログラムから隠されている。既知のレジスタの32ビットをアドレス指定のために使用することができ、コンピュータシステムが64ビットアドレッシングをサポートしている場合でも、OSは、動的アドレス変換を介して管理することができるので、アドレスの32ビットだけが、32ビットモードの32ビットプログラムにより操作される。プログラムは、ダブルワード64ビットレジスタの下位ワード32ビットワードのみを使用しているので、32ビットモードは、下位ワードモードと考えることができる。アプリケーションプログラムは、OSの制御下で動作し、OSを起動して、OSに特定の機能を実行させる。この起動は、アプリケーションプログラムの状態を保存し、実行されるOSの状態をロードするコンテキストスイッチ804によって行われ、OSは、コンテキストスイッチにより与えられたアドレスにおいて実行を開始する。次いで、OSは、コンテキストスイッチ804によりアプリケーションプログラムの1つを起動して、そのアプリケーションプログラムの実行を可能にすることができる。幾つかのアプリケーションにおいては、各アプリケーションの動作のタイムスライスを可能にすることによって、リソースの使用がサポートされ、コンテキストスイッチ804を用いて、経過時間後にアクティブプログラムを中断し、OSが、別のタイムスライスにおいて別のアプリケーションプログラムをディスパッチするのを可能にする。上位ワードファシリティの可用性は、マシン内のビット又はフィールドにより制御することができ、上位ワードファシリティをイネーブルにするように、マシンを設定しなければならない。上位ワードファシリティがイネーブルにされたとき、32ビットプログラムは、新しい上位ワードファシリティ命令を実行することにより、レジスタの隠れた部分を利用することができる。下位ワードレジスタを使用する命令に新しい命令を提供する、他の新しい上位ワードファシリティ命令を提供することができる。これらの命令の大部分においては、レジスタの上位ワードのみが操作される。特定の命令では、1つのソースレジスタの上位ワードを別のソースレジスタの下位ワードと共に操作するための変形形態が与えられ、その結果は、ターゲットレジスタの上位ワードに入れられる例えば、AHHLR。RISBLGは、上位ワードのRISBHG命令に類似した下位ワードを提供する。多数の擬似命令を実施する際に、RISBHGとRISBLGは、大きい柔軟性をもたらすアセンブラプログラムの支援により。上述されたように、プロセッサアーキテクチャは、アーキテクチャの命令セットが利用可能な汎用レジスタGPRを利用する。プログラムは、GPR内にあるデータを利用することができ、このデータは、より低速なメインストアにデータを有するよりも速い性能を得るように、チップ上の埋め込みラッチのような高速メモリ内に実装することができ、多くの場合、複雑な動的アドレス変換メカニズムにより実装される。64個のGPRを有するx86のような幾つかのアーキテクチャにおいては、各GPRのサイズは、8ビットから16ビット、32ビット、及び現行の64ビットへと、進化を伴って増大してきた。しかしながら、命令内のGPRフィールドのビット数x86の場合は6により決定される命令が利用可能なGPRの数x86の場合は64は同じままであるので、例えば8ビットGPRを有する従来の命令用に書かれたプログラムは、例えば32ビットGPRを有する新しいアーキテクチャ上でも依然として実行される。従って、8ビットモードで動作している、32ビットGPRを有するマシンは、各々の32ビットGPRの下位8ビットにのみアクセスを与える。しかしながら、コンテキストスイッチ中、32ビットオペレーティングシステムOSは、常に、各GPRの32ビット全てを保存し、復元する。IBMz/Architectureの実装において、マシンは、各々が64ビットビット0-63からなる16個のGPRを有することができるが、32ビットモードの32ビットレジスタ用に書かれたアプリケーションプログラムを実行することができる。32ビットは、GPRの下位の32ビットビット32-63とすることができ、32ビットの操作モードでは、上位の32ビットビット0-31は利用可能ではない隠されている。GPRの上位32ビットはプログラムには見えないので、アプリケーションプログラムは、それらを利用する術がない。一例において、アプリケーションプログラムは、32ビットレジスタのみを有し、メモリに対して24ビット又は31ビットの論理アドレスをアドレス指定する、前世代のマシンの32ビットマシン用に書かれている場合がある。32ビットモードは、例示的な32ビットアプリケーションプログラムが、64ビットのGPRをサポートし、64ビットオペレーションシステムOSを有し、64ビットモードの64ビットアプリケーションプログラムをサポートするアーキテクチャを有する、より新しいマシン上での実行を可能にする。32ビットGPR用に定められた別のマシンアーキテクチャにおいては、アプリケーションプログラムには見えない、32ビットの隠しhiddenGPRの組を提供することができる。命令のサブセットが隠しGPR又は上位GPRにアクセスするのを可能にしながら、残りの命令セットが、アーキテクチャ化されたGPR又は下位GPRにアクセスできるようにする上位ワードファシリティモードが提供される。上位ワードファシリティモードでは、命令のサブセットは、1つの実施においては、上位GPRにしかアクセスすることができないが、別の実施においては、上位GPRに向けられるGPRフィールドと、下位GPRに向けられる別のGPRフィールドとを定め得ることが好ましい。別の好ましい実施においては、上位ワードファシリティモードでは、メインメモリアドレスを生成するために、下位GPRだけを用いることができる。1つの実施において、上位ワードファシリティモードで実行されているアプリケーションが、上位ワードファシリティモードで実行されていないアプリケーションと共存できる。上位ワードファシリティモードでないアプリケーションは、32ビットGPRアプリケーション又は64ビットGPRアプリケーションであり得る。この例では、32ビットを用いるGPR用に書かれたアプリケーションと共に64ビットを有するマシンのGPRが用いられるが、本実施形態は、より少ない数のビット8、16、24、32、64を有するGPR用に書かれたアプリケーションを実行している、いずれの数のビット16、24、32、64、128を有するマシンのGPRにも利点をもたらす。さらに、上位ワードファシリティモードの隠しレジスタは、該隠しGPRの指定された部分しか用いることができないので、前の例の32ビットアプリケーションプログラムにおいては、例えば、幾つかの命令に対して上位ワードファシリティモードで利用可能な隠しレジスタは、64ビットGPRの上位32ビットのうちの下位8ビット又は16ビットとすることができ、一方、他の隠しレジスタは、64ビットGPRの上位32ビットのうちの上位8ビット又は16ビットとすることができる。実施形態の教示は、z/Architecture、及び/又は、x/86アーキテクチャを用いて提示されるが、本明細書での教示に照らすと、当業者には他の実装が容易に明らかである。例示的なz/Architectureの実施形態においては、選択された32ビット命令について、上位ワードファシリティは、16個の64ビット汎用レジスタビット0-63のうちのこれまで利用可能でなかった上位ビット0-31を用いることにより、16個の付加的な32ビットレジスタ上位ワードレジスタを有効に提供する。一実施形態において、上位ワードファシリティは、機能を示すニーモニック例えば、ADDHIGHを表すAHHHRを有する次の命令を可能にすることができる。ADDHIGHAHHHR、AHHLRADDIMMEDIATEHIGHAIHADDLOGICALHIGHALHHHR、ALHHLRADDLOGICALWITHSIGNEDIMMEDIATEHIGHALSIH、ALSIHNBRANCHRELATIVEONCOUNTHIGHBRCTHCOMPAREHIGHCHHR、CHLR、CHFCOMPAREIMMEDIATEHIGHCIHCOMPARELOGICALHIGHCLHHR、CLHLR、CLHFCOMPARELOGICALIMMEDIATEHIGHCLIHLOADBYTEHIGHLBHLOADHALFWORDHIGHLHHLOADHIGHLFHLOADLOGICALCHARACTERHIGHLLCHLOADLOGICALHALFWORDHIGHLLHHROTATETHENINSERTSELECTEDBITSHIGHRISBHGROTATETHENINSERTSELECTEDBITSLOWRISBLGSTORECHARACTERHIGHSTCHSTOREHALFWORDHIGHSTHHSTOREHIGHSTFHSUBTRACTHIGHSHHHR、SHHLRSUBTRACTLOGICALHIGHSLHHHR、SLHHLRである。インターロックアクセスinterlockedaccessファシリティがインストールされている場合、次の付加的な一般命令を利用可能にすることができる。:すなわち、LOADANDADDLAA、LAAGLOADANDADDLOGICALLAAL、LAALGLOADANDANDLAN、LANGLOADANDEXCLUSIVEORLAX、LAXGLOADANDORLAO、LAOGLOADPAIRDISJOINTLPD、LPDGである。条件付きロード/ストアloadstoreonconditionファシリティがインストールされている場合、次の付加的な一般命令を利用可能にすることができる。:即ち、LOADONCONDITIONLOC、LGOC、LGROC、LROCSTOREONCONDITIONSTOC、STGOCである。独立オペランドdistinctoperandsファシリティがインストールされている場合、次の付加的な一般命令を利用可能にすることができる。:即ち、ADDARK、AGRKADDIMMEDIATEAHIK、AGHIKADDLOGICALALRK、ALGRKADDLOGICALWITHSIGNEDIMMEDIATEALHSIK、ALGHSIKANDNRK、NGRKEXCLUSIVEORXRK、XGRKORORK、OGRKSHIFTLEFTSINGLESLAKSHIFTLEFTSINGLELOGICALSLLKSHIFTRIGHTSINGLESRAKSHIFTRIGHTSINGLELOGICALSRLKSUBTRACTSRK、SGRKSUBTRACTLOGICALSLRK、SLGRKである。例示的な上位ワード命令:次のものは、上位ワードファシリティを用いることができる例示的な命令である。ADDHIGHRRF形式命令がコンピュータシステムにより実行されると、第2オペランドが第3オペランドに加算され、和が第1オペランド位置に入れられる。オペランドと和は、32ビットの符号付き2進整数として扱われる。第1及び第2オペランドは、それぞれ、汎用レジスタR1及びR2のビット位置0-31にあり、汎用レジスタR1のビット32-63は変更されず、汎用レジスタR2のビット32-63は無視される。AHHHRオペコードの場合、第3オペランドは、汎用レジスタR3のビット位置0-31にあり、レジスタのビット32-63は無視される。AHHLRオペコードの場合、第3オペランドは、汎用レジスタR3のビット位置32-63にあり、レジスタのビット0-31は無視される。オーバーフローが発生すると、符号ビット位置へのいずれの繰り上がりも許容し、符号ビット位置からのいずれの繰り上がりも無視することにより、結果が得られ、条件コード3が設定される。固定小数点オーバーフローマスクが1の場合、固定小数点オーバーフローに関するプログラム割り込みが発生する。結果として得られる条件コード:0結果は0であり、オーバーフローは発生しない1結果は0より小さく、オーバーフローは発生しない2結果が0より大きく、オーバーフローは発生しない3オーバーフロープログラム例外:固定小数点オーバーフロー例外操作例外上位ワードファシリティがインストールされない場合ADDIMMEDIATEHIGHRIL形式命令がコンピュータシステムにより実行されると、第2オペランドが第1オペランドに加算され、和が第1オペランド位置に入れられる。オペランドと和は、32ビットの符号付き2進整数として扱われる。第1オペランドは、汎用レジスタR1のビット位置0-31にあり、レジスタのビット32-63は変更されない。オーバーフローが発生すると、符号ビット位置へのいずれの繰り上がりも許容し、符号ビット位置からのいずれの繰り上がりも無視することによって、結果が得られ、条件コード3が設定される。固定小数点オーバーフローマスクが1の場合、固定小数点オーバーフローに関するプログラム割り込みが発生する。結果として得られる条件コード:0結果は0であり、オーバーフローは発生しない1結果は0より小さく、オーバーフローは発生しない2結果が0より大きく、オーバーフローは発生しない3オーバーフロープログラム例外:固定小数点オーバーフロー例外操作例外上位ワードファシリティがインストールされない場合ADDLOGICALHIGHRRF形式命令がコンピュータシステムにより実行されると、第2オペランドが第3オペランドに加算され、和が第1オペランド位置に入れられる。オペランドと和は、32ビットの符号なし2進整数として扱われる。第1及び第2オペランドは、それぞれ、汎用レジスタR1及びR2のビット位置0-31にあり、汎用レジスタR1のビット32-63は変更されず、汎用レジスタR2のビット32-63は無視される。ALHHHRオペコードの場合、第3オペランドは、汎用レジスタR3のビット0-31にあり、レジスタのビット32-63は無視される。ALHHLRオペコードの場合、第3オペランドは、汎用レジスタR3のビット32-63にあり、レジスタのビット0-31は無視される。結果として得られる条件コード:0結果は0であり、繰り上がりはない1結果は0でなく、繰り上がりはない2結果は0であり、繰り上がる3結果は0でなく、繰り上がるプログラム例外:操作例外上位ワードファシリティがインストールされていない場合ADDLOGICALWITHSIGNEDIMMEDIATEHIGHRIL形式命令がコンピュータシステムにより実行されると、第2オペランドが第1オペランドに加算され、和が第1オペランド位置に入れられる。第1オペランドと和は、32ビットの符号なし2進整数として扱われる。第2オペランドは、32ビットの符号付き2進整数として扱われる。第1オペランドは、汎用レジスタR1のビット0-31にあり、レジスタのビット32-63は変更されない。結果として得られる条件コード:ALSIHの場合、コードは次のように設定される。:0結果は0であり、繰り上がりはない1結果は0でなく、繰り上がりはない2結果は0であり、繰り上がる3結果は0でなく、繰り上がるALSIHNの場合、コードは変更されないままである。プログラム例外:操作例外上位ワードファシリティがインストールされていない場合BRANCHRELATIVEONCOUNTHIGHRI、RIL形式命令がコンピュータシステムにより実行されると、第1オペランドから1が減算され、結果が第1オペランド位置に入れられる。BRANCHRELATIVEONCOUNTBRCTオペコードの場合、第1オペランド及び結果は、汎用レジスタR1のビット32-63にある32ビットの2進整数として扱われ、オーバーフローは無視され、レジスタのビット0-31は変更されない。BRANCHRELATIVEONCOUNTHIGHBRCTHオペコードの場合、第1オペランド及び結果は、汎用レジスタR1のビット0-31にある32ビットの2進整数として扱われ、オーバーフローは無視され、レジスタのビット32-63は変更されない。BRANCHRELATIVEONCOUNTBRCTGオペコードの場合、第1オペランド及び結果は、64ビットの2進整数として扱われ、オーバーフローは無視される。結果が0のときには、更新済み命令アドレスを使用して通常の命令順序に従って処理が進められる。結果が0でない場合は、現行PSWの中の命令アドレスが、分岐アドレスに置き換えられる。I2フィールドの内容が、分岐アドレスを生成するために命令のアドレスに加えられるハーフワードの数を指定する符号付き2進整数である。条件コード:コードは変更されないままである。プログラム例外:操作例外BRCTH、上位ワードファシリティがインストールされていない場合プログラミング上の注意:1.操作は、分岐アドレスを指定する方法を除いて、BRANCHONCOUNT命令のものと同じである。2.2進数減算の結果は符号付きの場合でも又は符号なしの場合でも同じになるため、第1オペランド及び結果は、符号付き2進整数又は符号なし2進整数のどちらと見なすこともできる。3.初期カウントが1の場合、結果は0であり、分岐は実行されない。初期カウントが0の場合、結果は-1であり、分岐が実行される。初期カウントが-1の場合、結果は-2であり、分岐が実行される。以下同様である。ループ内では、結果が再び0に戻るまでは、命令が実行されるたびに分岐が実行される。BRCTの場合は、数値範囲上の理由で、初期カウントが-231なら、結果は正の値231-1になり、又は、BRCTGの場合は、初期カウントが-263なら、結果は正の値263-1になることに留意されたい。4.命令が、実行executeタイプ命令のターゲットであるとき、分岐は、ターゲットアドレスを基準とする相対的なものになる。COMPAREHIGHRRE、RXY形式、COMPAREIMMEDIATEHIGHRIL形式命令がコンピュータシステムにより実行されると、第1オペランドが第2オペランドと比較され、その結果が条件コードで示される。これらのオペランドは、32ビットの符号付き2進整数として扱われる。第1オペランドは、汎用レジスタR1のビット位置0-31にあり、レジスタのビット位置32-63は無視される。COMPAREHIGHCHHRオペコードの場合、第2オペランドは、汎用レジスタR2のビット位置0-31にあり、レジスタのビット位置32-63は無視される。COMPAREHIGHCHLRオペコードの場合、第2オペランドは、汎用レジスタR2のビット位置32-63にあり、レジスタのビット位置0-31は無視される。CHFに関する変位は、20ビットの符号付き2進整数として扱われる。結果として得られる条件コード:0両オペランドは等しい1第1オペランドの方が小さい2第1オペランドの方が大きい3--プログラム例外:アクセス例外CHFのオペランド2のみ操作例外上位ワードファシリティがインストールされていない場合COMPARELOGICALHIGHRRE、RXY形式、COMPARELOGICALIMMEDIATEHIGHRIL形式命令がコンピュータシステムにより実行されると、第1オペランドが第2オペランドと比較され、その結果が条件コードで示される。これらのオペランドは、32ビットの符号なし2進整数として扱われる。第1オペランドは、汎用レジスタR1のビット位置0-31にあり、レジスタのビット位置32-63は無視される。COMPARELOGICALHIGHCLHHRオペコードの場合、第2オペランドは、汎用レジスタR2のビット位置0-31にあり、レジスタのビット位置32-63は無視される。COMPARELOGICALHIGHCLHLRオペコードの場合、第2オペランドは、汎用レジスタR2のビット位置32-63にあり、レジスタのビット位置0-31は無視される。CLHFに関する変位は、20ビットの符号付き2進整数として扱われる。結果として得られる条件コード:0両オペランドは等しい1第1オペランドの方が小さい2第1オペランドの方が大きい3--プログラム例外:アクセス例外CLHFのオペランド2のみ操作例外上位ワードファシリティがインストールされていない場合LOADBYTEHIGHRXY形式命令がコンピュータシステムにより実行されると、第2オペランドは符号拡張され、第1オペランド位置に入れられる。第2オペランドは、長さが1バイトであり、8ビットの符号付き2進整数として扱われる。第1オペランドは、汎用レジスタR1のビット0-31にある32ビットの符号付き2進整数として扱われ、レジスタのビット32-63は変更されない。変位は、20ビットの符号付き2進整数として扱われる。条件コード:コードは変更されないままである。プログラム例外:アクセス例外フェッチ、オペランド2操作例外上位ワードファシリティがインストールされていない場合LOADHALFWORDHIGHRXY形式命令がコンピュータシステムにより実行されると、第2オペランドは符号拡張され、第1オペランド位置に入れられる。第2オペランドは、長さが2バイトであり、16ビットの符号付き2進整数として扱われる。第1オペランドは、汎用レジスタR1のビット0-31にある32ビットの符号付き2進整数として扱われ、レジスタのビット32-63は変更されない。変位は、20ビットの符号付き2進整数として扱われる。条件コード:コードは変更されないあまである。プログラム例外:アクセス例外フェッチ、オペランド2操作例外上位ワードファシリティがインストールされていない場合LOADHIGHRXY形式命令がコンピュータシステムにより実行されると、第2オペランドは、変更されずに、第1オペランド位置に入れられる。第2オペランドは32ビットであり、第1オペランドは、汎用レジスタR1のビット0-31にあり、レジスタのビット32-63は変更されない。変位は、20ビットの符号付き2進整数として扱われる。条件コード:コードは変更されないままである。プログラム例外:アクセス例外フェッチ、オペランド2操作例外上位ワードファシリティがインストールされていない場合LOADLOGICALCHARACTERHIGHRXY形式命令がコンピュータシステムにより実行されると、1バイトの第2オペランドが、汎用レジスタR1のビット位置24-31に入れられ、0が、汎用レジスタR1のビット位置0-23に入れられ、汎用レジスタR1のビット位置32-63は変更されない。変位は、20ビットの符号付き2進整数として扱われる。条件コード:コードは変更されないままである。プログラム例外:アクセス例外フェッチ、オペランド2操作例外上位ワードファシリティがインストールされていない場合LOADLOGICALHALFWORDHIGHRXY形式命令がコンピュータシステムにより実行されると、2バイトの第2オペランドが、汎用レジスタR1のビット位置16-31に入れられ、0が、汎用レジスタR1のビット位置0-15に入れられ、汎用レジスタR1のビット位置32-63は変更されない。変位は、20ビットの符号付き2進整数として扱われる。条件コード:コードは変更されないままである。プログラム例外:アクセス例外フェッチ、オペランド2操作例外上位ワードファシリティがインストールされていない場合ROTATETHENINSERTSELECTEDBITSHIGHRIE形式、ROTATETHENINSERTSELECTEDBITSLOWRIE形式命令がコンピュータシステムにより実行されると、64ビットの第2オペランドが、第5オペランドに指定されたビットの数だけ左にローテートされる。オペランドの左端のビット位置から外にシフトされた各ビットは、オペランドの右端のビット位置に再び入る。ローテートされた第2オペランドの選択されたビットは、第1オペランドの対応するビット位置の内容に置き換わる。ROTATETHENINSERTSELECTEDBITSHIGHの場合、第1オペランドは、汎用レジスタR1のビット0-31にあり、レジスタのビット32-63は変更されない。ROTATETHENINSERTSELECTEDBITSLOWの場合、第1オペランドは、汎用レジスタR1のビット32-63にあり、レジスタのビット0-31は変更されない。第2オペランドは、汎用レジスタR2において変更されないままである。ROTATETHENINSERTSELECTEDBITSHIGHの場合は、各々の左側に2進数の0が付加された、I3フィールド及びI4フィールドのビット3-7それぞれ、命令のビット位置19-23及び27-31は、ローテート後に、第1オペランド及び第2オペランドにおける選択されたビット範囲の開始ビット位置及び最終ビット位置これらを含めたを指定する6ビットの符号なし2進整数を形成する。最終ビット位置が開始ビット位置より小さいときは、選択されたビット範囲は、ビット31からビット0へ循環するwraparound。従って、選択されたビット範囲の開始ビット位置及び最終ビット位置は、常に、0から31までの間になる。ROTATETHENINSERTSELECTEDBITSLOWの場合は、各々の左側に2進数の1が付加された、I3フィールド及びI4フィールドのビット位置3-7は、ローテート後、第1オペランド及び第2オペランドにおける選択されたビット範囲の開始ビット位置及び最終ビット位置これらを含めたを指定する6ビットの符号なし2進整数を形成する。最終ビット位置が開始ビット位置より小さいときは、選択されたビット範囲は、ビット63からビット32に循環する。従って、選択されたビット範囲の開始ビット位置及び最終ビット位置は、常に、32から63までの間になる。I5フィールドのビット2-7命令のビット34-39は、第2オペランドを左にローテートさせるビット数を指定する符号なし2進整数を含む。I4フィールドのビット0命令のビット24は、0-残りのビットの制御Zを含む。Zビット制御は、第1オペランドの残りのビットがどのように設定されるかを示す即ち、あるとしたら、指定された範囲の外にあるビット。Zビットが0のときは、第1オペランドの残りのビットは変更されない。Zビットが1のときは、第1オペランドの残りのビットは0に設定される。ここで説明された即値フィールドは、次のとおりである。:すなわち、I3フィールドのビット0-2及びI4フィールドのビット1-2それぞれ、命令のビット16-19及び25-26は予約されており、0を含む必要がある。そうでない場合には、将来、プログラムが、互換性を有した状態で動作しない可能性がある。I5フィールドのビット0-1命令のビット32-33は無視される。条件コード:コードは変更されないままである。プログラム例外:操作例外上位ワードファシリティがインストールされていない場合プログラミング上の注意:1.I5フィールドのビット2-7は、第2オペランドを左にローテートさせるビット数を指定する符号なし2進整数を含むように定められるが、負の値をコード化し、右へのローテート量を有効に指定するようにすることもできる。2.第1オペランドは、常に、ローテートされていない形で使用される。R1フィールド及びR2フィールドが同じレジスタを指定するときは、レジスタ内に含まれる値が最初にローテートされ、次いで、ローテート値の選択されたビットが、ローテートされていないレジスタの内容の対応するビットに挿入される。3.アセンブラ構文においては、ローテート量を含むI5オペランドは随意的であると考えられる。I5フィールドがコード化されていないとき、ローテート量0を意味する。4.I4フィールドは、0-残りのビットの制御Zビット0におけると、最終ビット位置の値ビット2-7におけるの両方を含む。例えば、レジスタ7のビット40-43をレジスタ5の対応するビット位置に挿入しローテーションなし、レジスタ5の右半分の残りのビットをゼロにするために、プログラマは、次のようにコード化することができる:即ち、X80は、最終ビット位置に付加されてI4フィールドを形成する、0-残りのビットの制御を表す。高レベルアセンブラHLASMは、それぞれ、RISBHGZ及びRISBLHZの形態の、RISBHG及びRISBLGの0-残りのビットバージョンに対する代替的なニーモニックを提供する。ニーモニックへのZサフィックス付加は、オブジェクトコードを生成するときに、指定されたI4フィールドが、X80の値と論理和演算されることを示す。Zサフィックスを付加したニーモニックを使用する上記に示された例に相当するのは次の通りである。:5.幾つかのモデルでは、0-残りのビットの制御を1に設定することにより又は、Zサフィックスを付加したニーモニックを使用することにより、RISBHG及びRISBLGの改善された性能を達成することができる。6.条件コードを設定するROTATETHENINSERTSELECTEDBITSとは異なり、ROTATETHENINSERTSELECTEDBITSHIGH及びROTATETHENINSERTSELECTEDBITSLOWは、条件コードを設定しない。STORECHARACTERHIGHRXY形式命令がコンピュータシステムにより実行されると、汎用レジスタR1のビット24-31は、変更されずに、第2オペランド位置に入れられる。第2オペランドの長さは、1バイトである。変位は、20ビットの符号付き2進整数として扱われる。条件コード:コードは変更されない。プログラム例外:アクセス例外ストア、オペランド2操作例外上位ワードファシリティがインストールされていない場合STOREHALFWORDHIGHRXY形式命令がコンピュータシステムにより実行されると、汎用レジスタR1のビット16-31が、変更されずに、第2オペランド位置に入れられる。第2オペランドの長さは、2バイトである。変位は、20ビットの符号付き2進整数として扱われる。条件コード:コードは変更されない。プログラム例外:アクセス例外ストア、オペランド2操作例外上位ワードファシリティがインストールされていない場合STOREHIGHRXY形式命令がコンピュータシステムにより実行されると、第1オペランドは、変更されずに、第2オペランド位置に入れられる。第1オペランドは、汎用レジスタR1のビット0-31にあり、第2オペランドはストレージ内の32ビットである。変位は、20ビットの符号付き2進整数として扱われる。条件コード:コードは変更されない。プログラム例外:アクセス例外ストア、オペランド2操作例外上位ワードファシリティがインストールされていない場合SUBTRACTHIGHRRF形式命令がコンピュータシステムにより実行されると、第2オペランドから第3オペランドが減算され、差が第1オペランド位置に入れられる。オペランドと差は、32ビットの符号付き2進整数として扱われる。第1及び第2オペランドは、それぞれ、汎用レジスタR1及びR2のビット0-31にあり、汎用レジスタR1のビット32-63は変更されず、汎用レジスタR2のビット32-63は無視される。SHHHRオペコードの場合は、第3オペランドは、汎用レジスタR3のビット0-31にあり、レジスタのビット32-63は無視される。SHHLRオペコードの場合、第3オペランドは、汎用レジスタR3のビット32-63にあり、レジスタのビット0-31は無視される。オーバーフローが発生する、符号ビット位置へのいずれの繰り上がりも許容し、符号ビット位置からのいずれの繰り上がりも無視することによって、結果が得られ、条件コード3が設定される。固定小数点オーバーフローマスクが1の場合、固定小数点オーバーフローに関するプログラム割り込みが発生する。結果として得られる条件コード:0結果が0であり、オーバーフローは発生しない1結果が0より小さく、オーバーフローは発生しない2結果が0より大きく、オーバーフローは発生しない3オーバーフロープログラム例外:固定小数点オーバーフロー例外操作例外上位ワードファシリティがインストールされていない場合SUBTRACTLOGICALHIGHRRF形式命令がコンピュータシステムにより実行されると、第2オペランドから第3オペランドが減算され、差が第1オペランド位置に入れられる。オペランドと差は、32ビットの符号なし2進整数として扱われる。第1及び第2オペランドは、それぞれ、汎用レジスタR1及びR2のビット0-31にあり、汎用レジスタR1のビット32-63は変更されず、汎用レジスタR2のビット32-63は無視される。SLHHHRオペコードの場合は、第3オペランドは、汎用レジスタR3のビット位置0-31にあり、レジスタのビット32-63は無視される。SLHHLRオペコードの場合、第3オペランドは、汎用レジスタR3のビット32-63にあり、レジスタのビット0-31は無視される。結果として得られる条件コード:0--1結果は0でなく、繰り下がりがある2結果は0であり、繰り下がりはない3結果は0でなく、繰り下がりはないプログラム例外:操作例外上位ワードファシリティがインストールされていない場合図15を参照すると、16個のGPRを有する例示的な汎用レジスタGPRが示される各々のGPRは、小容量GPRモードにあるビット32-63と、大容量GPRモードにあるビット0-63とを含む。第1の数16の大容量GPRを有するコンピュータにおいて、プログラムの命令が利用可能な汎用レジスタGPRの有効数を拡張することができ、各々の命令は、オペコードと、対応するGPRを指定するための1つ又は複数のGPRフィールドとを含み、各大容量GPRは、第1の部分32-63と第2の部分0-31とから成る。図16を参照すると、コンピュータは、第1のセット701、第2のセット702、又は第3のセット710のいずれかの命令を含む命令を、実行のためにフェッチする。第1のセットは、いずれかのGPRの第1の部分のみにアクセスし、第2のセットは、いずれかのGPRの第2の部分のみにアクセスし、第3のセットは、第1の部分及び第2の部分を含むGPR全体にアクセスする。例えばコンピュータが小容量GPRモードにあり703、かつ、第1の部分にアクセスするために第1の命令セットの命令を実行している707とき、実行は、小容量GPRに基づいてメモリオペランドにアクセスする又は小容量GPRのオペランドにアクセスする708ために、メモリアドレスを生成することを含み、小容量GPRの各々は、第1の部分から成る。コンピュータが小容量GPRモードにある703とき、コンピュータが上位ワード命令705を実行し、命令が指定した第2の部分にアクセスするための第2の命令セットの命令706を実行しているとき、実行は、小容量GPRに基づいてメモリオペランドにアクセスする、又は小容量GPRオペランドにアクセスする708ために、メモリアドレスを生成することを含み、小容量GPRは、命令が指定した第2の部分から成る。コンピュータが大容量GPRモードにあり704、各大容量GPRが第1の部分及び第2の部分から成るとき、コンピュータは、第3の命令セットの命令を実行し、この実行は、大容量GPRに基づいてメモリオペランドにアクセスする、又は大容量GPRオペランドにアクセスするためにメモリアドレスを生成することを含み、各大容量GPRは、第1の部分及び第2の部分から成る。コンピュータが小容量GPRモードにあることに応答して、コンピュータは、第2の命令セットの命令の実行に応答して操作例外を発生させる709ことがある。第2の命令セットの命令の実行は、2つのオペランドに基づいた対応するオペコードが定義する関数を実行し751、結果を格納することができ、対応オペコード定義関数は、2つのオペランドのADD関数、2つのオペランドのCOMPARE関数、又は2つのオペランドのOR関数から成る752。第2の命令セットの命令の実行は、2つのオペランドに基づいた対応オペコード定義関数を実行し、結果を格納することができ、対応オペコード定義関数は、メモリからのオペランドのLOAD関数、又はメモリへのオペランドのSTORE関数から成る753。第2の命令セットの命令の実行は、2つのオペランドに基づいた対応オペコード定義関数を実行し、結果を格納することができ、対応オペコード定義関数は、命令が指定した量だけソースオペランドをローテートし、次いで、ローテートされたソースオペランドの選択された部分をターゲットオペランドの選択された部分に挿入すること754を含むROTATETHENINSERTSELECTEDBITS関数である。本発明の好ましい実施形態がここに示され、説明されたが、本発明は、ここで開示される精密な構成に限定されるものではないこと、及び、添付の特許請求の範囲に定められる本発明の範囲内にある全ての変更及び修正に対する権利が保持されることを理解すべきである。"