(57)【特許請求の範囲】
【請求項１】
プロセッサを備えるコンピュータを再構成するための方法であって、前記方法は、
前記プロセッサにより、複数のアーキテクチャ・モード用に構成され、かつ、前記複数のアーキテクチャ・モードのうちの１つのアーキテクチャ・モードで前記コンピュータをパワーオンするために定められたパワーオン・シーケンスを有する前記コンピュータにおいて、構成アーキテクチャ・モード・ファシリティがインストールされていることを判断することであって、前記１つのアーキテクチャ・モードは、第１の命令セット・アーキテクチャ・モードを含み、第１セットのサポートされたフィーチャを有する、判断することと、
前記構成アーキテクチャ・モード・ファシリティがインストールされていると判断することに基づいて、前記プロセッサにより、前記１つのアーキテクチャ・モードの使用を制限するように前記コンピュータを再構成することと、
を含み、前記再構成することは、
前記複数のアーキテクチャ・モードの別のアーキテクチャ・モードで前記コンピュータをパワーオンするための異なるパワーオン・シーケンスを選択することであって、前記別のアーキテクチャ・モードは前記１つのアーキテクチャ・モードとは異なり、前記別のアーキテクチャ・モードは、第２の命令セット・アーキテクチャを含み、第２セットのサポートされたフィーチャを有する、選択することと、
前記１つのアーキテクチャ・モードの代わりに、前記1つのアーキテクチャ・モードの使用を制限する前記別のアーキテクチャ・モードで前記コンピュータをパワーオンするための前記異なるパワーオン・シーケンスを実行することと、
を含む、方法。
【請求項２】
前記異なるパワーオン・シーケンスは、前記別のアーキテクチャ・モードで前記コンピュータの操作を制御するための新しいプログラム状況ワードを作成することを含み、前記新しいプログラム状況ワードを作成することは、前記別のアーキテクチャ・モードを示すように、前記新しいプログラム状況ワード内のアーキテクチャ・モード・インジケータを反転させることを含む、請求項１に記載の方法。
【請求項３】
前記新しいプログラム状況ワードを作成することは、前記別のアーキテクチャ・モードにより示される形式を有するように前記新しいプログラム状況ワードを形成することであって、前記形式は、アドレス・フィールドを第１のサイズから第２のサイズへ拡張させることを含む、形成することと、前記アーキテクチャ・モード・インジケータの前記反転を実行することとを含む、請求項２に記載の方法。
【請求項４】
前記構成アーキテクチャ・モード・ファシリティがインストールされていることを判断することは、ファシリティ・インジケータをチェックすることを含み、前記ファシリティ・インジケータは、無条件に又は構成インジケータの制御下で設定される、前記請求項１ないし３のいずれかに記載の方法。
【請求項５】
前記再構成することは、前記コンピュータ内で、前記１つのアーキテクチャ・モードをサポートするために１又は複数の操作をディスエーブルにすることをさらに含み、前記１又は複数の操作は、前記別のアーキテクチャ・モードから元の前記１つのアーキテクチャ・モードへ切り替えるための切り替え操作を含み、元の前記１つのアーキテクチャ・モードへの切り替えがディスエーブルにされる、前記請求項１ないし４のいずれかに記載の方法。
【請求項６】
前記ディスエーブルにすることは、元の前記１つのアーキテクチャ・モードへ切り替える要求に基づいてエラーを与えるように、Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ命令の処理を変更することを含む、請求項５に記載の方法。
【請求項７】
前記方法は、
前記コンピュータの少なくとも１つのプロセッサのリセットを実行することをさらに含み、前記リセットを実行することは、
前記別のアーキテクチャ・モードで前記コンピュータをリセットすることであって、前記リセットすることは、前記コンピュータの１つのアーキテクチャ・モードを前記別のアーキテクチャ・モードに設定することを含む、リセットすることと、
前記別のアーキテクチャ・モードを示すようにプログラム状況ワード内のアーキテクチャ・モード・インジケータを反転させることであって、前記プログラム状況ワードは前記コンピュータの操作を制御するために用いられる、反転させることと、
を含む、前記請求項１ないし６のいずれかに記載の方法。
【請求項８】
前記再構成することは、プロセッサ信号操作の処理を変更することを含み、前記コンピュータのアーキテクチャ・モードを、これが現在ある前記アーキテクチャ・モードに設定するための前記プロセッサ信号操作は、前記コンピュータが現在前記アーキテクチャ・モードにあることを示す状況の格納をもたらし、この状況は、前記プロセッサ信号操作の発行者により受け入れ可能なものとして扱われる、前記請求項１ないし７のいずれかに記載の方法。
【請求項９】
前記１つのアーキテクチャ・モードはレガシー・モードであり、前記別のアーキテクチャ・モードは強化されたモードであり、前記第１セットのサポートされたフィーチャは、３１ビット・アドレッシング及び３２ビット汎用レジスタの使用を含み、前記第２セットのサポートされたフィーチャは、６４ビット・アドレッシング及び６４ビット汎用レジスタの使用を含む、前記請求項１ないし８のいずれかに記載の方法。
【請求項１０】
前記コンピュータは、ホスト・プロセッサ、第１レベルの仮想化における第１のゲスト仮想マシン、及び第２レベルの仮想化における第２のゲスト仮想マシンを有する仮想ゲストコンピュータであり、前記再構成することは、前記ホスト・プロセッサ及び前記第１のゲスト仮想マシンに関して実行されるが、前記第２のゲスト仮想マシンに関しては実行されず、前記第２のゲスト仮想マシンは前記１つのアーキテクチャ・モードで開始され、処理する、前記請求項１ないし９のいずれかに記載の方法。
【請求項１１】
プロセッサを備えるコンピュータを構成するための方法であって、前記方法は、
前記プロセッサにより、選択されたアーキテクチャ・モードで操作を実行するためにコンピューティング環境を構成することであって、前記構成することは、
格納されたプログラム状況ワードを用いた前記コンピュータの初期化を開始することであって、前記格納されたプログラム状況ワードは前記選択されたアーキテクチャ・モードとは異なるアーキテクチャ・モードの形式を有する、開始することと、
前記格納されたプログラム状況ワードは前記選択されたアーキテクチャ・モードとは異なるアーキテクチャ・モードの形式を有することを判断することと、
前記格納されたプログラム状況ワードが前記選択されたアーキテクチャ・モードとは異なるアーキテクチャ・モードの形式を有すると判断することに基づいて、前記選択されたアーキテクチャ・モードの形式を有するように前記格納されたプログラム状況ワードを自動的に修正することであって、前記自動的に修正することは、前記選択されたアーキテクチャ・モードへ切り替える明示的な要求なしに実行される、自動的に修正することと、
前記修正されたプログラム状況ワードを用いた前記コンピュータの初期化を完了し、前記選択されたアーキテクチャ・モードで前記コンピュータを構成することと、
を含む、方法。
【請求項１２】
自身を再構成するコンピュータ・システムであって、前記コンピュータ・システムは、
メモリと、
前記メモリと通信するプロセッサと、
を含み、前記コンピュータ・システムは、方法を実行するように構成され、前記方法は、
前記プロセッサにより、複数のアーキテクチャ・モード用に構成され、かつ、前記複数のアーキテクチャ・モードのうちの１つのアーキテクチャ・モードで前記コンピュータ・システムをパワーオンするために定められたパワーオン・シーケンスを有する前記コンピュータ・システムにおいて、構成アーキテクチャ・モード・ファシリティがインストールされていることを判断することであって、前記１つのアーキテクチャ・モードは、第１の命令セット・アーキテクチャ・モードを含み、第１セットのサポートされたフィーチャを有する、判断することと、
前記構成アーキテクチャ・モード・ファシリティがインストールされていると判断することに基づいて、前記プロセッサにより、前記１つのアーキテクチャ・モードの使用を制限するように前記コンピュータ・システムを再構成することと、
を含み、前記再構成することは、
前記複数のアーキテクチャ・モードの別のアーキテクチャ・モードで前記コンピュータ・システムをパワーオンするための異なるパワーオン・シーケンスを選択することであって、前記別のアーキテクチャ・モードは前記１つのアーキテクチャ・モードとは異なり、前記別のアーキテクチャ・モードは、第２の命令セット・アーキテクチャを含み、第２セットのサポートされたフィーチャを有する、選択することと、
前記１つのアーキテクチャ・モードの代わりに、前記1つのアーキテクチャ・モードの使用を制限する前記別のアーキテクチャ・モードで前記コンピュータ・システムをパワーオンするための前記異なるパワーオン・シーケンスを実行することと、
を含む、コンピュータ・システム。
【請求項１３】
前記異なるパワーオン・シーケンスは、前記別のアーキテクチャ・モードで前記コンピュータ・システムの操作を制御するための新しいプログラム状況ワードを作成することを含み、前記新しいプログラム状況ワードを作成することは、前記別のアーキテクチャ・モードを示すように、前記新しいプログラム状況ワード内のアーキテクチャ・モード・インジケータを反転させることを含む、請求項１２に記載のコンピュータ・システム。
【請求項１４】
前記新しいプログラム状況ワードを作成することは、前記別のアーキテクチャ・モードにより示される形式を有するように前記新しいプログラム状況ワードを形成することであって、前記形式は、アドレス・フィールドを第１のサイズから第２のサイズへ拡張させることを含む、形成することと、前記アーキテクチャ・モード・インジケータの前記反転を実行することとを含む、請求項１３に記載のコンピュータ・システム。
【請求項１５】
前記再構成することは、前記コンピュータ・システム内で、前記１つのアーキテクチャ・モードをサポートするために１又は複数の操作をディスエーブルにすることをさらに含み、前記１又は複数の操作は、前記別のアーキテクチャ・モードから元の前記１つのアーキテクチャ・モードへ切り替えるための切り替え操作を含み、元の前記１つのアーキテクチャ・モードへの切り替えがディスエーブルにされる、請求項１２から請求項１４までのいずれかに記載のコンピュータ・システム。
【請求項１６】
前記ディスエーブルにすることは、元の前記１つのアーキテクチャ・モードへ切り替える要求に基づいてエラーを与えるように、Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ命令の処理を変更することを含む、請求項１５に記載のコンピュータ・システム。
【請求項１７】
前記再構成することは、プロセッサ信号操作の処理を変更することを含み、前記コンピュータ・システムのアーキテクチャ・モードを、これが現在ある前記アーキテクチャ・モードに設定するための前記プロセッサ信号操作は、前記コンピュータが現在前記アーキテクチャ・モードにあることを示す状況の格納をもたらし、この状況は、前記プロセッサ信号操作の発行者により受け入れ可能なものとして扱われる、請求項１２から請求項１６までのいずれかに記載のコンピュータ・システム。
【請求項１８】
コンピュータに実行されることで、前記コンピュータに請求項１ないし１1のいずれかに記載の方法を実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
１つ又は複数の態様は、一般に、コンピューティング環境の構成に関し、具体的には、こうした環境の構成を変更することに関する。
【背景技術】
【０００２】
コンピューティング環境は、環境のアーキテクチャ構成に応じて、様々な能力及び機能を提供する。ニューヨーク州アーモンク所在のインターナショナル・ビジネス・マシーンズ・コーポレーションにより提供されている２つのアーキテクチャとして、ＥＳＡ／３９０及びｚ／Ａｒｃｈｉｔｅｃｔｕｒｅが挙げられる。
【０００３】
ＥＳＡ／３９０は、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅの先行アーキテクチャである。しかしながら、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅが導入された際、ＥＳＡ／３９０は引き続きサポートされた。１つの環境において両方のアーキテクチャをサポートするために、特定の手順に従う。例えば、起動時に、ＥＳＡ／３９０をブートし、次に、必要に応じてｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに切り替えることができる。これにより、レガシー（legacy）ソフトウェアが、変更することなく実行し続けることが可能になる。１つの環境においては、両方のアーキテクチャ構成をサポートするために、他のこうした手順が与えられる。
【０００４】
しかしながら、仮想メモリのテストには費用がかかる。アーキテクチャがサンセット（衰退技術）であるとき、例えば、主としてコマンドラインのインタープリタ環境として機能する（例えば、ＭＳ  ＤＯＳ又はＣＭＳなどの）ＤＯＳオペレーティング・システムのような最小のアーキテクチャ・サポートを使用するシステムのため、又は、ＢＩＯＳの部分を実行するために使用される（及び仮想メモリの複雑さを有することなく実行することができる）環境のために、レガシー・システムを提供することが望ましいことがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第５，５５１，０１３号明細書
【特許文献２】米国特許第６，００９，２６１号明細書
【特許文献３】米国特許第５，５７４，８７３号明細書
【特許文献４】米国特許第６，３０８，２５５号明細書
【特許文献５】米国特許第６，４６３，５８２号明細書
【特許文献６】米国特許第５，７９０，８２５号明細書
【非特許文献】
【０００６】
【非特許文献１】「ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ−Ｐｒｉｎｃｉｐｌｅｓ  ｏｆ  Ｏｐｅｒａｔｉｏｎ」と題するＩＢＭ出版物、出版番号第ＳＡ２２−７９３２−０９、第１０版、２０１２年９月
【非特許文献２】「ｚ／ＶＭ：Ｒｕｎｎｉｎｇ  Ｇｕｅｓｔ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍｓ」と題するＩＢＭ出版物、ＩＢＭ（登録商標）出版番号第ＳＣ２４−５９９７−０２、２００１年１０月
【非特許文献３】「Ｓｙｓｔｅｍ／３７０  Ｅｘｔｅｎｔｅｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ／Ｉｎｔｅｒｐｒｅｔｉｖｅ  Ｅｘｅｃｕｔｉｏｎ」、ＩＢＭ出版番号第ＳＡ２２−７０９５−０１、１９８５年９月
【非特許文献４】Ｏｓｉｓｅｋ他著、「ＥＳＡ／３９０  ｉｎｔｅｒｐｒｅｔｉｖｅ−ｅｘｅｃｕｔｉｏｎ  ａｒｃｈｉｔｅｃｔｕｒｅ、ｆｏｕｎｄａｔｉｏｎ  ｆｏｒＶＭ／ＥＳＡ」、ＩＢＭ  Ｓｙｓｔｅｍｓ  Ｊｏｕｒｎａｌ、３０巻、第１、ｐｐ．３４−５１、１９９１年１月
【非特許文献５】Ｐｌａｍｂｅｃｋ他著、「Ｄｅｖｅｌｏｐｍｅｎｔ  ａｎｄ  Ａｔｔｒｉｂｕｔｅｓ  ｏｆ  ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ」、ＩＢＭ  Ｊ．Ｒｅｓ．＆Ｄｅｖ．、４６巻、Ｎｏ．４／５、２００２年７月／９月
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従って、当技術分野において、上述の問題に対処する必要性が存在する。
【課題を解決するための手段】
【０００８】
コンピューティング環境内でマシン命令を実行するためのコンピュータ・プログラム製品を提供することにより、従来技術の欠点が克服され、利点が与えられる。コンピュータ・プログラム製品は、例えば、処理回路により読み取り可能であり、かつ、方法を実施するための処理回路により実行される命令を格納するコンピュータ可読ストレージ媒体を含む。この方法は、例えば、プロセッサにより、複数のアーキテクチャ・モード用に構成され、かつ、複数のアーキテクチャ・モードのうちの１つのアーキテクチャ・モードでコンピューティング環境をパワーオンするために定められたパワーオン・シーケンスを有するコンピューティング環境において、構成アーキテクチャ・モード・ファシリティがインストールされていることを判断することであって、１つのアーキテクチャ・モードは、第１の命令セット・アーキテクチャ・モードを含み、第１セットのサポートされたフィーチャを有する、判断することと、構成アーキテクチャ・モード・ファシリティがインストールされていると判断することに基づいて、プロセッサにより、１つのアーキテクチャ・モードの使用を制限するようにコンピューティング環境を再構成することとを含み、再構成することは、複数のアーキテクチャ・モードの別のアーキテクチャ・モードでコンピューティング環境をパワーオンするための異なるパワーオン・シーケンスを選択することであって、別のアーキテクチャ・モードは１つのアーキテクチャ・モードとは異なり、別のアーキテクチャ・モードは、第２の命令セット・アーキテクチャを含み、第２セットのサポートされたフィーチャを有する、選択することと、１つのアーキテクチャ・モードの使用を制限する１つのアーキテクチャ・モードの代わりに、別のアーキテクチャ・モードでコンピューティング環境をパワーオンするための異なるパワーオン・シーケンスを実行することとを含む。
【０００９】
第１の態様から見ると、本発明は、コンピューティング環境を再構成するための方法を提供し、この方法は、プロセッサにより、複数のアーキテクチャ・モード用に構成され、かつ、複数のアーキテクチャ・モードのうちの１つのアーキテクチャ・モードでコンピューティング環境をパワーオンするために定められたパワーオン・シーケンスを有するコンピューティング環境において、構成アーキテクチャ・モード・ファシリティがインストールされていることを判断することであって、１つのアーキテクチャ・モードは、第１の命令セット・アーキテクチャ・モードを含み、第１セットのサポートされたフィーチャを有する、判断することと、構成アーキテクチャ・モード・ファシリティがインストールされていると判断することに基づいて、プロセッサにより、１つのアーキテクチャ・モードの使用を制限するようにコンピューティング環境を再構成することとを含み、再構成することは、複数のアーキテクチャ・モードの別のアーキテクチャ・モードでコンピューティング環境をパワーオンするための異なるパワーオン・シーケンスを選択することであって、別のアーキテクチャ・モードは１つのアーキテクチャ・モードとは異なり、別のアーキテクチャ・モードは、第２の命令セット・アーキテクチャを含み、第２セットのサポートされたフィーチャを有する、選択することと、１つのアーキテクチャ・モードの使用を制限する１つのアーキテクチャ・モードの代わりに、別のアーキテクチャ・モードでコンピューティング環境をパワーオンするための異なるパワーオン・シーケンスを実行することとを含む。
【００１０】
更に別の態様から見ると、本発明は、コンピューティング環境を構成するための方法を提供し、この方法は、プロセッサにより、選択されたアーキテクチャ・モードで操作を実行するためにコンピューティング環境を構成することであって、構成することは、格納されたプログラム状況ワードを用いたコンピューティング環境の初期化を開始することであって、格納されたプログラム状況ワードは選択されたアーキテクチャ・モードとは異なるアーキテクチャ・モードの形式を有する、開始することと、格納されたプログラム状況ワードは選択されたアーキテクチャ・モードとは異なるアーキテクチャ・モードの形式を有することを判断することと、格納されたプログラム状況ワードが選択されたアーキテクチャ・モードとは異なるアーキテクチャ・モードの形式を有すると判断することに基づいて、選択されたアーキテクチャ・モードの形式を有するように格納されたプログラム状況ワードを自動的に修正することであって、自動的に修正することは、選択されたアーキテクチャ・モードへ切り替える明示的な要求なしに実行される、自動的に修正することと、修正されたプログラム状況ワードを用いたコンピューティング環境の初期化を完了し、選択されたアーキテクチャ・モードでコンピューティング環境を構成することとを含む。
【００１１】
更に別の態様から見ると、本発明は、コンピューティング環境を再構成するためのコンピュータ・システムを提供し、このコンピュータ・システムは、メモリと、メモリと通信するプロセッサとを含み、コンピュータ・システムは、方法を実行するように構成され、方法は、プロセッサにより、複数のアーキテクチャ・モード用に構成され、かつ、複数のアーキテクチャ・モードのうちの１つのアーキテクチャ・モードでコンピューティング環境をパワーオンするために定められたパワーオン・シーケンスを有するコンピューティング環境において、構成アーキテクチャ・モード・ファシリティがインストールされていることを判断することであって、１つのアーキテクチャ・モードは、第１の命令セット・アーキテクチャ・モードを含み、第１セットのサポートされたフィーチャを有する、判断することと、構成アーキテクチャ・モード・ファシリティがインストールされていると判断することに基づいて、プロセッサにより、１つのアーキテクチャ・モードの使用を制限するようにコンピューティング環境を再構成することとを含み、再構成することは、複数のアーキテクチャ・モードの別のアーキテクチャ・モードでコンピューティング環境をパワーオンするための異なるパワーオン・シーケンスを選択することであって、別のアーキテクチャ・モードは１つのアーキテクチャ・モードとは異なり、別のアーキテクチャ・モードは、第２の命令セット・アーキテクチャを含み、第２セットのサポートされたフィーチャを有する、選択することと、１つのアーキテクチャ・モードの使用を制限する１つのアーキテクチャ・モードの代わりに、別のアーキテクチャ・モードでコンピューティング環境をパワーオンするための異なるパワーオン・シーケンスを実行することとを含む。
【００１２】
更に別の態様から見ると、本発明は、コンピューティング環境を再構成するためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、処理回路により読み取り可能であり、かつ、本発明のステップを実行する方法を実行するための、処理回路により実行される命令を格納するコンピュータ可読ストレージ媒体を含む。更に別の態様によると、本発明は、コンピューティング環境を再構成するためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、コンピューティング環境を構成するためのコンピュータ・プログラム製品を含み、このコンピュータ・プログラム製品は、処理回路により読み取り可能であり、かつ、本発明のステップを実行する方法を実行するための、処理回路により実行される命令を格納するコンピュータ可読ストレージ媒体を含む。
【００１３】
更に別の態様から見ると、本発明は、コンピュータ可読媒体上に格納され、プログラムがコンピュータ上で実行されるとき、本発明のステップを実施するためのソフトウェア・コード部分を含むデジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムを提供する。
【００１４】
１つ又は複数の実施形態に関連する方法及びシステムも、本明細書で説明され、特許請求される。さらに、１つ又は複数の好ましい実施形態に関連するサービスも説明され、本発明で特許請求され得る。
【００１５】
付加的な特徴及び利点が実現される。他の好ましい実施形態及び態様は、本明細書で詳細に説明され、特許請求される本発明の一部であると見なされる。
【００１６】
ここで本発明の好ましい実施形態を、添付図面を参照して単なる例として説明する。
【図面の簡単な説明】
【００１７】
【図１】本発明の好ましい実施形態による、構成アーキテクチャ・モード・ファシリティの１つ又は複数の態様を組み込み、使用するためのコンピューティング環境の一例を示す。
【図２】本発明の好ましい実施形態による、構成アーキテクチャ・モード・ファシリティの１つ又は複数の態様を組み込み、使用するための仮想コンピューティング環境の一例を示す。
【図３】本発明の好ましい実施形態による、構成アーキテクチャ・モード・ファシリティの１つ又は複数の態様を組み込み、使用するための仮想コンピューティング環境の別の例を示す。
【図４】本発明の好ましい実施形態による、構成アーキテクチャ・モード・ファシリティの１つ又は複数の態様を組み込み、使用するための仮想コンピューティング環境の別の例を示す。
【図５】本発明の好ましい実施形態による、図４のメモリのさらなる詳細を示す。
【図６】本発明の好ましい実施形態による、１つのアーキテクチャ・モードでコンピューティング環境をパワーオンするための論理の１つの実施形態を示す。
【図７】本発明の好ましい実施形態による、図６のパワーオン・プロセスと関連したさらなる処理の１つの実施形態を示す。
【図８】本発明の好ましい実施形態による、プログラム状況ワード（programstatus word）の形式の１つの実施形態を示す。
【図９】本発明の好ましい実施形態による、図６においてパワーオンされた１つのアーキテクチャ・モードとは異なるアーキテクチャ・モードでコンピューティング環境をパワーオンするための論理の１つの実施形態を示す。
【図１０】本発明の好ましい実施形態による、図９のパワーオン・プロセスと関連したさらなる処理の１つの実施形態を示す。
【図１１】本発明の好ましい実施形態による、Ｌｏａｄ  Ｐｒｏｇｒａｍ  Ｓｔａｔｕｓ  Ｗｏｒｄ（プログラム状況ワードロード）命令の１つの例示的な形式を示す。
【図１２】本発明の好ましい実施形態による、Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ（プロセッサ信号）命令の１つの例示的な形式を示す。
【図１３】本発明の好ましい実施形態による、図１２のＳｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ命令と関連した処理の１つの実施形態を示す。
【図１４】本発明の好ましい実施形態による、再構成された構成でコンピューティング環境をパワーオンするための論理の１つの実施形態を示す。
【図１５】本発明の好ましい実施形態による、コンピューティング環境を再構成する際に行われるさらなる変更を示す。
【図１６】コンピューティング環境をリセットするための論理の１つの実施形態を示す。
【図１７】本発明の好ましい実施形態による、コンピューティング環境を構成するための論理の１つの実施形態を示す。
【図１８】従来技術による、本発明の好ましい実施形態を実装できる、コンピュータ・プログラム製品の１つの実施形態を示す。
【図１９】従来技術による、本発明の好ましい実施形態を実装できる、ホスト・コンピュータ・システムの１つの実施形態を示す。
【図２０】従来技術による、本発明の好ましい実施形態を実装できる、コンピュータ・システムの更に別の例を示す。
【図２１】従来技術による、本発明の好ましい実施形態を実装できる、コンピュータ・ネットワークを含むコンピュータ・システムの別の例を示す。
【図２２】従来技術による、本発明の好ましい実施形態を実装できる、コンピュータ・システムの種々の要素の１つの実施形態を示す。
【図２３】従来技術による、本発明の好ましい実施形態を実装できる、図２２のコンピュータ・システムの実行ユニットの１つの実施形態を示す。
【図２４】従来技術による、本発明の好ましい実施形態を実装できる、図２２のコンピュータ・システムの分岐ユニットの１つの実施形態を示す。
【図２５】従来技術による、本発明の好ましい実施形態を実装できる、図２２のコンピュータ・システムのロード／ストア・ユニットの１つの実施形態を示す。
【図２６】従来技術による、本発明の好ましい実施形態を実装できる、エミュレートされたホスト・コンピュータ・システムの１つの実施形態を示す。
【図２７】従来技術による、本発明の好ましい実施形態を実装できる、クラウド・コンピューティング・ノードの１つの実施形態を示す。
【図２８】従来技術による、本発明の好ましい実施形態を実装できる、クラウド・コンピューティング環境の１つの実施形態を示す。
【図２９】従来技術による、本発明の好ましい実施形態を実装できる、抽象化モデル層の一例を示す。
【発明を実施するための形態】
【００１８】
１つの態様によると、複数の構成をサポートするように構成されたコンピューティング環境による構成の使用を制限し、制限された構成の１つ又は複数の態様を使用できなくする能力が与えられる。一例として、プロセッサは、構成アーキテクチャ・モード（ＣＡＭ）で構成される。ＣＡＭにおいて、コンピューティング環境（例えば、プロセッサ、論理パーティション、ゲスト）は、もともと複数のアーキテクチャ、例えばレガシー・アーキテクチャ・モード及び強化されたアーキテクチャ用に構成されており、レガシー・アーキテクチャのような、アーキテクチャの少なくとも１つの１つ又は複数の態様がもはやサポートされなくなるように再構成される。そうした構成において、アーキテクチャのサポートされない態様は、利用することができない。
【００１９】
１つの特定の例として、ＥＳＡ／３９０及びｚ／Ａｒｃｈｉｔｅｃｔｕｒｅのような複数のアーキテクチャ・モードをサポートするコンピューティング環境において、ＥＳＡ／３９０の態様を使用する能力を除去する、構成ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅアーキテクチャ・モード（Configuration z/Architecture Architectural Mode、ＣＺＡＭ）ファシリティが提供される。代わりに、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ（及び／又は、他の実施形態においては、ＥＳＡ／３９０以外の他のアーキテクチャ）が用いられる。例として、ＣＺＡＭは、ネイティブ・マシン、論理パーティション、及び／又は仮想ゲストに適用できる。
【００２０】
図１を参照して、構成アーキテクチャ・モード・ファシリティの１つ又は複数の態様を組み込み、用いるためのコンピューティング環境の一例を説明する。図１を参照すると、一例において、コンピューティング環境１００は、ニューヨーク州アーモンク所在のインターナショナル・ビジネス・マシーンズ（ＩＢＭ（登録商標））コーポレーションにより提供されるによりｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに基づいている。ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅは、非特許文献１に記載されている。コンピューティング環境はｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに基づくが、１つの好ましい実施形態においては、コンピューティング環境は、ＥＳＡ／３９０のような１つ又は複数のアーキテクチャ構成もサポートする。
【００２１】
一例として、コンピューティング環境１００は、１つ又は複数の制御ユニット１０８を介して、１つ又は複数の入力／出力（Ｉ／Ｏ）デバイス１０６に結合された中央プロセッサ・コンプレックス（ＣＰＣ）１０２を含む。中央プロセッサ・コンプレックス１０２は、例えば、１つ又は複数の中央プロセッサ（中央処理ユニット（ＣＰＵ）としても知られる）１１０及び入力／出力サブシステム１１１に結合されたプロセッサ・メモリ１０４（主メモリ、主ストレージ、中央ストレージとも呼ばれる）を含み、これらの各々を以下に説明する。
【００２２】
プロセッサ・メモリ１０４は、例えば、１つ又は複数のパーティション１１２（例えば、論理パーティション）と、論理パーティション・ハイパーバイザ１１４及び他のプロセッサ・ファームウェア１１５を含むプロセッサ・ファームウェア１１３とを含む。論理パーティション・ハイパーバイザ１１４の一例は、ニューヨーク州Ａｒｍｏｎｋ所在のインターナショナル・ビジネス・マシーンズ・コーポレーションにより提供されるＰｒｏｃｅｓｓｏｒ  Ｒｅｓｏｕｒｃｅ／Ｓｙｓｔｅｍ  Ｍａｎａｇｅｒ（ＰＲ／ＳＭ）である。
【００２３】
論理パーティションは、別個のシステムとして機能し、かつ、１つ又は複数のアプリケーション１２０、及び任意に、各々の論理パーティションについて異なり得る、内部の常駐オペレーティング・システム１２２とを有する。本発明の１つの好ましい実施形態において、オペレーティング・システムは、ニューヨーク州アーモンク所在のインターナショナル・ビジネス・マシーンズ・コーポレーションにより提供されるｚ／ＯＳオペレーティング・システム、ｚ／ＶＭオペレーティング・システム、ｚ／Ｌｉｎｕｘオペレーティング・システム、又はＴＰＦオペレーティング・システムである。論理パーティション１１２は、プロセッサ１１０上で実行されているファームウェアが実装する論理パーティション・ハイパーバイザ１１４により管理される。本明細書で用いられるファームウェアは、例えば、プロセッサのマイクロコード及び／又はミリコードを含む。ファームウェアは、例えば、より上位レベルのマシン・コードの実装に用いられる、ハードウェア・レベルの命令及び／又はデータ構造体を含む。本発明の１つの好ましい実施形態において、ファームウェアは、例えば、典型的には、信頼できるソフトウェアを含むマイクロコードとして又は基礎をなすハードウェアに特有のマイクロコードとして配信される独自のコードを含み、システム・ハードウェアへのオペレーティング・システムのアクセスを制御する。
【００２４】
中央プロセッサ１１０は、論理パーティションに割り当てられた物理プロセッサ・リソースである。特に、各論理パーティション１１２は、その各々がパーティションに割り当てられた物理プロセッサ１１０の全て又は割り当て分（share）を表す、１つ又は複数の論理プロセッサを有する。特定のパーティション１１２の論理プロセッサは、そのパーティション専用とし、そのパーティションに対して基礎をなすプロセッサ・リソース１１０が予約されるようにしても、又は、別のパーティションと共有し、基礎をなすプロセッサ・リソースが潜在的に別のパーティションに利用可能であるようにしてもよい。一例において、ＣＰＵの１つ又は複数は、本明細書で説明される構成アーキテクチャ・モード・ファシリティ１３０の態様を含む。
【００２５】
入力／出力サブシステム１１１は、入力／出力デバイス１０６と主ストレージ１０４との間の情報の流れを方向付ける。この入力／出力サブシステム１１１は、中央処理コンプレックスに結合され、中央処理コンプレックスの一部とすることも又はそれとは別個のものとすることもできる。Ｉ／Ｏサブシステムは、中央プロセッサを、入力／出力デバイスと直接通信するタスクから解放し、データ処理が、入力／出力処理と同時に進行することを可能にする。通信を提供するために、Ｉ／Ｏサブシステムは、Ｉ／Ｏ通信アダプタを用いる。例えば、チャネル、Ｉ／Ｏアダプタ、ＰＣＩカード、イーサネット・カード、Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ）カード等を含む、種々のタイプの通信アダプタがある。本明細書で説明される特定の例において、Ｉ／Ｏ通信アダプタはチャネルであり、従って、Ｉ／Ｏサブシステムは、本明細書ではチャネル・サブシステムと呼ばれる。しかしながら、これは一例にすぎない。他のタイプのＩ／Ｏサブシステムを用いることもできる。
【００２６】
Ｉ／Ｏサブシステムは、入力／出力デバイス１０６との間の情報の流れを管理する際に、１つ又は複数の入力／出力経路を通信リンクとして使用する。この特定の例において、通信アダプタはチャネルであるので、これらの経路は、チャネル経路と呼ばれる。
【００２７】
図２を参照して、ＣＡＭファシリティの１つ又は複数の態様を組み込み、用いるためのコンピューティング環境の別の例を説明する。この例では、コンピューティング環境１５０は、仮想マシン・サポートを提供する中央プロセッサ・コンプレックス１５２を含む。ＣＰＵ１５２は、１つ又は複数の制御ユニット１０８を介して、１つ又は複数の入力／出力（Ｉ／Ｏ）デバイス１０６に結合される。中央プロセッサ・コンプレックス１５２は、例えば、１つ又は複数の中央プロセッサ（中央処理ユニット（ＣＰＵ）としても知られる）１１０及び入力／出力サブシステム１１１に結合されたプロセッサ・メモリ１５４（主メモリ、主ストレージ、中央ストレージとも呼ばれる）を含む。
【００２８】
プロセッサ・メモリ１５４は、例えば、１つ又は複数の仮想マシン１６２と、ホスト・ハイパーバイザ１６４及び他のプロセッサ・ファームウェア１６５を含むプロセッサ・ファームウェア１６３とを含む。ホスト・ハイパーバイザ１６４の一例は、ニューヨーク州Ａｒｍｏｎｋ所在のインターナショナル・ビジネス・マシーンズ・コーポレーションにより提供されるｚ／ＶＭ（登録商標）である。
【００２９】
ＣＰＵの仮想マシン・サポートは、各々がＬｉｎｕｘ（登録商標）のようなゲスト・オペレーティング・システム１７２をホストすることができる、多数の仮想マシン１６２を動作させる能力を提供する。各々の仮想マシン１６２は、別個のシステムとして機能することができる。つまり、各々の仮想マシンは、独立してリセットし、ゲスト・オペレーティング・システムをホストし、異なるプログラム１２０により動作することができる。仮想マシン内で実行されているオペレーティング・システム又はアプリケーション・プログラムは、十分かつ完全なシステムへのアクセスを有するように見えるが、実際には、その一部分しか利用可能ではない。Ｌｉｎｕｘは、米国、他の国々、又はその両方におけるＬｉｎｕｓ  Ｔｏｒｖａｌｄｓの登録商標である。
【００３０】
この特定の例において、仮想マシンのモデルはＶ＝Ｖモデルであり、仮想マシンの絶対メモリ又は実メモリは、実メモリ又は絶対メモリの代わりにホスト仮想メモリによってバッキングされる。各々の仮想マシンは仮想線形メモリ空間を有する。物理リソースはホスト１６４によって所有され、共用物理リソースは、それぞれの処理要求に応じるために、必要に応じてホストによってゲスト・オペレーティング・システムにディスパッチされる。このＶ＝Ｖ仮想マシン（すなわち、ページング可能ゲスト）モデルでは、典型的には、ゲストが多数であるために、ホストがハードウェア・リソースを単にパーティション化して、構成済みゲストにそのハードウェア・リソースを割り当てることが妨げられるので、ゲスト・オペレーティング・システムと物理的な共用マシン・リソースとの間の対話がホストによって制御されるものと想定している。Ｖ＝Ｖモデルの１つ又は複数の態様は、非特許文献２にさらに説明される。
【００３１】
中央プロセッサ１１０は、仮想マシンに割り当て可能な物理プロセッサ・リソースである。例えば、仮想マシン１６２は１つ又は複数の論理プロセッサを含み、その各々は仮想マシンに動的に割り当て可能な物理プロセッサ・リソース１１０の全て又は割り当て分を表す。仮想マシン１６２は、ホスト１６４によって管理される。
【００３２】
本発明の１つの好ましい実施形態においては、ホスト（例えば、ｚ／ＶＭ（登録商標））及びプロセッサ（例えば、Ｓｙｓｔｅｍ  ｚ）のハードウェア／ファームウェアは、ゲスト・オペレーティング・システムとホストとの間で制御を転送する必要なしに、Ｖ＝Ｖゲスト・オペレーティング・システム動作を処理するために、制御連携方式で相互に対話する。ページング可能ストレージ・モード・ゲストについて命令を解釈実行するのを可能にするファシリティを介して、ゲスト動作をホストの介入なしに直接実行することができる。このファシリティは、Ｓｔａｒｔ  Ｉｎｔｅｒｐｒｅｔｉｖｅ  Ｅｘｅｃｕｔｉｏｎ（解釈実行開始、ＳＩＥ）という命令を提供し、この命令は、ゲスト（仮想マシン）の状態及び制御を保持する状態記述という制御ブロックを指定して、ホストが発行することができる。この命令は、マシンを解釈実行モードにするものであり、そのモードでは、ホストの注意を必要とする条件が発生するまでゲスト命令及び割り込みが直接処理される。このような条件が発生すると、解釈実行が終了し、ホスト割り込みが提示されるか又はＳＩＥ命令が検出された条件の詳細の格納を完了し、この後者のアクションはインターセプトと呼ばれる。解釈実行の一例は、非特許文献３に説明される。
【００３３】
具体的には、本発明の１つの好ましい実施形態において、解釈実行ファシリティが、仮想マシンの実行のための命令を提供する。Ｓｔａｒｔ  Ｉｎｔｅｒｐｒｅｔａｔｉｖｅ  Ｅｘｅｃｕｔｉｏｎ（ＳＩＥ、解釈実行開始）と呼ばれるこの命令は、ゲスト実行環境を確立するホストにより発行される。ホストは、実マシンを直接管理する制御プログラムであり、ゲストは、任意の仮想マシン又は解釈されるマシンを指す。マシンは、ＳＩＥ命令を発行するホストにより、解釈実行モードにされる。このモードにおいて、マシンは、選択されたアーキテクチャ（例えば、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ、ＥＳＡ／３９０）の機能を提供する。この機能は、例えば、特に特権及び問題プログラム命令の実行、アドレス変換、割り込み処理及びタイミングを含む。マシンは、該マシンが仮想マシンの文脈で実行する機能を解釈すると言われる。
【００３４】
ＳＩＥ命令は、ゲストの現在の状態に関連する情報を含む、状態記述と呼ばれるオペランドを有する。ＳＩＥの実行が終了すると、制御がホストに戻される前に、ゲストＰＳＷを含むゲストの状態を表す情報は、状態記述に保存される。
【００３５】
解釈実行アーキテクチャは、ページング可能ストレージ・モードと呼ばれる絶対ストレージのためのストレージ・モードを提供する。ページング可能ストレージ・モードにおいては、ホスト・レベルにおける動的アドレス変換が、ゲストの主ストレージをマッピングするために用いられる。ホストは、ページング可能ストレージ・モード・ゲストの実ストレージを、ホストＤＡＴを用いることによってホスト実ストレージのどの場所でも、使用可能なフレームに拡散させ、かつ、ゲスト・データを補助ストレージにページアウトする能力を有する。この技術は、ゲスト用絶対ストレージの連続的な範囲の期待される外観を保持しながら、実マシン・リソースを割り当てる際に柔軟性を与える。
【００３６】
仮想マシン環境は、ＤＡＴのアプリケーションを二度呼び出すことができる：最初は、ゲスト・レベルで、ゲストにより管理される変換テーブルを通じてゲスト仮想アドレスをゲスト実アドレスに変換し、次に、ページング可能ゲストに関して、ホスト・レベルで、対応するホスト仮想アドレスをホスト実アドレスに変換する。
【００３７】
特定の場合には、ホストは、通常、マシンにデリゲートされた（delegated）動作の仲裁を行う必要がある。この目的のため、状態記述は、特別な条件を「トラップする」又はインターセプトするために、ホストによって設定可能な制御を含む。インターセプト制御ビットは、特定のゲスト命令に遭遇したとき、マシンが制御をホスト・シミュレーションに戻すことを要求する。介入制御は、イネーブルにされた状態のＰＳＷへの導入をキャプチャするので、ホストは、ゲストのために保留状態を保持する割り込みを提示することができる。解釈が進行する間、別の実プロセッサ上のホストによって、介入制御を非同期的に設定することができる。マシンは、ストレージから制御を周期的に再フェッチするので、更新された値が認識される。これにより、時期尚早に解釈を妨げることなく、ゲスト割り込みを保留状態にすることができる。
【００３８】
本発明の１つの好ましい実施形態において、状態記述におけるモード制御は、ゲストがＥＳＡ／３９０モードで実行されるか又はｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードで実行されるかを指定し、ホスト・ストレージ内のゲスト仮想マシンのゲスト主ストレージを表すための複数の方法の１つを選択する。本発明の１つの好ましい実施形態によると、第１のアーキテクチャ・モード及び第２のアーキテクチャ・モード（例えば、それぞれｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ及びＥＳＡ／３９０）にあるゲスト間で選択するために、状態制御において制御ビットが与えられる。本発明の別の好ましい実施形態によると、２つの別個の命令が、ホストに、第１及び第２のゲスト仮想マシンを生成する能力を与えることができ、例えば、別個の命令ＳＩＥｚ及びＳＩＥｅを与えて、それぞれ、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモード及びＥＳＡ／３９０モードでゲスト・マシンを開始することができる。
【００３９】
サーバのタイム・スライスが消費されるまで、又は、ハードウェアが仮想化できない動作又は制御プログラムがそれに関する制御を回復する動作をサーバが実行する必要が発生するまで、ＳＩＥ命令は、制御プログラムによってディスパッチされた仮想サーバを実行する。その時点で、ＳＩＥ命令は終了し、制御は制御プログラムに戻り、制御プログラムはその命令をシミュレートするか又は仮想サーバを強制待機状態にする。完了すると、制御プログラムは、実行するよう仮想サーバを再びスケジュールし、サイクルが再び始まる。このようにして、ＣＰＵの全能力及び速度が仮想サーバに利用可能になる。制御プログラムによる支援又は妥当性検査を必要とする特権命令だけがインターセプトされる。これらのＳＩＥインターセプトは、そう呼ばれるように、仮想サーバが実デバイス上で実行できる動作に対して制限を課すために制御プログラムよって使用される。
【００４０】
ＳＩＥに関するさらなる詳細は、非特許文献４に記載されている。
【００４１】
図３を参照して、構成アーキテクチャ・モード・ファシリティの１つ又は複数の態様を組み込み、用いるためのコンピューティング環境の更に別の例を説明する。この例では、コンピューティング環境２００は、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ及びＥＳＡ／３９０を含む複数のアーキテクチャ・モード用に構成された、パーティション化されていない環境を含む。例えば、コンピューティング環境２００は、例えば構成アーキテクチャ・モード・ファシリティ２０４及び１つ又は複数のキャッシュ２０６を含むプロセッサ（中央処理ユニット−ＣＰＵ）２０２を含む。プロセッサ２０２は、１つ又は複数のキャッシュ２１０を有するメモリ部分２０８、及び入力／出力（Ｉ／Ｏ）サブシステム２１２に通信可能に結合される。Ｉ／Ｏサブシステム２１２は、例えば、データ入力デバイス、センサ、及び／又はディスプレイなどの出力デバイスを含むことができる外部Ｉ／Ｏデバイス２１４に通信可能に結合される。
【００４２】
図４を参照して、構成アーキテクチャ・モード・ファシリティの１つ又は複数の態様を組み込み、用いるためのコンピューティング環境の本発明の別の好ましい実施形態を説明する。この例では、コンピューティング環境３００は、例えば１つ又は複数のバス３０８及び／又は他の接続を介して互いに結合された、例えば、ネイティブ中央処理ユニット（ＣＰＵ）３０２、メモリ３０４、及び１つ又は複数の入力／出力デバイス及び／又はインターフェース３０６を含む。例として、コンピューティング環境３００は、ニューヨーク州Ａｒｍｏｎｋ所在のインターナショナル・ビジネス・マシーンズ・コーポレーションにより提供されるＰｏｗｅｒＰＣプロセッサ又はＰｏｗｅｒ  Ｓｙｓｔｅｍｓサーバ；カリフォルニア州Ｐａｌｏ  Ａｌｔｏ所在のＨｅｗｌｅｔｔ  Ｐａｃｋａｒｄ  Ｃｏ．により提供されるＩｎｔｅｌ  Ｉｔａｎｉｕｍ  ＩＩプロセッサを伴うＨＰ  Ｓｕｐｅｒｄｏｍｅ；及び／又は、インターナショナル・ビジネス・マシーンズ・コーポレーション、Ｈｅｗｌｅｔｔ  Ｐａｃｋａｒｄ、Ｉｎｔｅｌ、Ｏｒａｃｌｅ、又はその他により提供されるアーキテクチャに基づく他のマシンを含むことができる。Ｉｎｔｅｌ及びＩｔａｎｉｕｍは、米国及び他の国々におけるＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ又はその子会社の商標又は登録商標である。
【００４３】
ネイティブ中央処理ユニット３０２は、環境内での処理の際に用いられる１つ又は複数の汎用レジスタ及び／又は１つ又は複数の専用レジスタなどの１つ又は複数のネイティブ・レジスタ３１０と、構成アーキテクチャ・モード・ファシリティ３１１とを含む。これらのレジスタは、任意の特定の時点における環境の状態を表す情報を含む。
【００４４】
さらに、ネイティブ中央処理ユニット３０２は、メモリ３０４内に格納された命令及びコードを実行する。１つの特定の例において、中央処理ユニットは、メモリ３０４内に格納されたエミュレータ・コード３１２を実行する。このコードにより、１つのアーキテクチャにおいて構成されたコンピューティング環境が、１つ又は複数の他のアーキテクチャをエミュレートすることが可能になる。例えば、エミュレータ・コード３１２により、ＰｏｗｅｒＰＣプロセッサ、ＰｏｗｅｒＳｙｔｅｍｓサーバ、ＨＰ  Ｓｕｐｅｒｄｏｍｅサーバ又は他のものなどの、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ以外のアーキテクチャに基づくマシンが、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ（及び／又はＥＳＡ／３９０）をエミュレートし、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに基づいて開発されたソフトウェア及び命令を実行することが可能になる。
【００４５】
図５を参照して、エミュレータ・コード３１２に関する更なる詳細が、説明される。ゲスト命令３５０が、ネイティブＣＰＵ３０２のもの以外のアーキテクチャにおいて実行されるように開発されたソフトウェア命令（例えば、マシン命令と相関する）を含む。例えば、ゲスト命令３５０は、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅプロセッサ２０２上で実行されるように設計されるが、代わりに、例えばＩｎｔｅｌ  Ｉｔａｎｉｕｍ  ＩＩプロセッサとすることができるネイティブＣＰＵ３０２上でエミュレートされることもある。一例において、エミュレータ・コード３１２は、メモリ３０４から１つ又は複数のゲスト命令３５０を取得し、取得された命令に対してローカル・バッファリングを任意に提供するための命令フェッチ・ルーチン３５２を含む。エミュレータ・コード３１２また、取得されたゲスト命令のタイプを判断し、ゲスト命令を１つ又は複数の対応するネイティブ命令３５６に変換するための命令変換ルーチン３５４も含む。この変換は、例えば、ゲスト命令により実施される機能を識別することと、その機能を実施するためのネイティブ命令を選択することとを含む。
【００４６】
さらに、エミュレータ・コード３１２は、ネイティブ命令を実行させるためのエミュレーション制御ルーチン３６０を含む。エミュレーション制御ルーチン３６０は、ネイティブＣＰＵ３０２に、１つ又は複数の以前に取得されたゲスト命令をエミュレートするネイティブ命令のルーチンを実行させ、こうした実行の最後に、次のゲスト命令又はゲスト命令のグループの取得をエミュレートするように、制御を命令フェッチ・ルーチンに戻させることができる。ネイティブ命令３５６の実行は、データをメモリ３０４からレジスタにロードすること、データをレジスタから再びメモリに格納すること、又は変換ルーチンによって定められるような何らかのタイプの算術演算又は論理演算を実施することを含むことができる。
【００４７】
各ルーチンは、例えば、メモリ内に格納され、ネイティブ中央処理ユニット３０２によって実行される、ソフトウェアで実装される。他の例において、１つ又は複数のルーチン又は演算は、ファームウェア、ハードウェア、ソフトウェア、又はそれらの何らかの組み合わせで実装される。エミュレートされるプロセッサのレジスタは、ネイティブＣＰＵのレジスタ３１０又はメモリ３０４内の位置を使用して、エミュレートすることができる。実施形態において、ゲスト命令３５０、ネイティブ命令３５６、及びエミュレータ・コード３１２は、同一のメモリ内に存在してもよく、又は、異なるメモリ・デバイスの間に分配されてもよい。
【００４８】
上述のコンピューティング環境は、使用できるコンピューティング環境の単なる例に過ぎない。これらに限定されるものではないが、他のパーティション化されていない環境、他のパーティション化された環境、及び／又は他のエミュレートされた環境を含む他の環境を用いてもよく、実施形態は、いずれか１つの環境に限定されるものではない。
【００４９】
１つ又は複数の態様によると、環境の再構成を制御するために、コンピューティング環境の１つ又は複数のプロセッサ（例えば、中央処理ユニット）内に、構成アーキテクチャ・モード（ＣＡＭ）ファシリティがインストールされる。例えば、ＣＡＭが、複数のアーキテクチャ・モードをサポートするコンピューティング環境内にインストールされると、コンピューティング環境は、アーキテクチャ・モードの少なくとも１つの１つ又は複数の態様の使用が制限されるように再構成される。
【００５０】
構成アーキテクチャ・モード・ファシリティの１つの特定の例は、構成ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅアーキテクチャ・モード（ＣＺＡＭ）ファシリティである。例えば、ＣＺＡＭのインストールは、例えば１に設定されたビット１３８などのファシリティ・インストール・インジケータにより示される。１つの特定の例において、ビット１３８が１に設定されると、ＣＺＡＭファシリティがインストールされ、インストール時に、通常リセット及びクリア・リセットにより、構成がｚ／Ａｒｃｈｉｔｅｃｔｕｒｅアーキテクチャ・モードになる。従って、一例において、例えば、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅアーキテクチャ・モードを示す、ビット２などのファシリティ・ビットは、アクティブであり、同じく１に設定される。
【００５１】
ＣＺＡＭのインストールに基づいて、コンピューティング環境（例えば、シングル・プロセッサ、論理パーティション、仮想ゲスト等）は、例えばＥＳＡ／３９０などの選択されたアーキテクチャの１つ又は複数の態様がもはやサポートされなくなるように、再構成される。もはやサポートされなくなるそれらの態様、及び／又はＣＺＡＭのインストールにより影響を受けるプロセスが、以下に説明される。
【００５２】
本明細書に説明される実施形態において、複数のアーキテクチャ・モードは、レガシー・アーキテクチャ（例えば、ＥＳＡ／３９０）及び強化されたアーキテクチャ（例えば、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ）を含み、レガシー・アーキテクチャ（ＥＳＡ／３９０）の態様は、もはやサポートされないが、他の実施形態は、他のアーキテクチャを含むことができる。ＥＳＡ／３９０及びｚ／Ａｒｃｈｉｔｅｃｔｕｒｅは、例に過ぎない。
【００５３】
ＣＺＡＭのインストールにより影響を受ける１つのプロセスは、パワーオン・プロセスである。このプロセスがどのように影響を受けるかを説明するために、最初に、図６−図７を参照して、複数のアーキテクチャ構成をサポートし、ＣＺＡＭファシリティを含まない環境についてのパワーオン・プロセスを説明し、次に、図９−図１０を参照して、複数のアーキテクチャ構成をサポートし、ＣＺＡＭファシリティを含む環境についてのパワーオン・プロセスを説明する。システムのパワーオンは、例えば、システムを開始し、ブート・シーケンス又はシステムにおける開始操作の他の手段を開始することを含む。パワーオンは、物理的パワーオン、ハードウェア・リセット、及び／又は仮想パワーオン（例えば、エミュレートされたシステム、仮想マシン、又はゲスト環境における）に対応し得る。
【００５４】
最初に図６を参照すると、コンピューティング環境のプロセッサをパワーオンし、例えば、ロード・ノーマル・キー又はロード・クリア・キーなどのオペレータ・キーをアクティブにすることに基づいて、プロセッサは、ロード状態になり、コンピューティング環境を、例えばＥＳＡ／３９０モードなどの特定のアーキテクチャ・モードに設定する（ステップ４００）。例えば、チャネル制御ワード（channel control word、ＣＣＷ）の初期プログラム・ロード（initialprogram load、ＩＰＬ）のような初期プログラム・ロード（ＩＰＬ）が実行される（ステップ４０２）。初期プログラム・ローディングは、指定されたデバイスからプログラムを読み取り、そのプログラムの実行を開始するための手動手段を提供する。ＣＣＷタイプのＩＰＬは、ロード・ユニット・アドレス制御を、入力デバイスを指示する４桁の数字に設定し、その後、特定のＣＰＵについてロード・クリア・キー又はロード・ノーマル・キーをアクティブにすることにより、手作業で開始される。
【００５５】
ロード・クリア・キーをアクティブにすると、構成に対してクリア・リセットが実行され、ロード・ノーマル・キーをアクティブにすると、このＣＰＵ（キーがアクティブにされたＣＰＵ）に対して初期ＣＰＵリセットが実行され、ＣＰＵリセットが構成内の他の全てのＣＰＵに伝搬され、構成の残りに対してサブシステム・リセットが実行される。ロード・クリア・キー又はロード・ノーマル・キーをアクティブにすると、アーキテクチャ・モード（例えば、ＥＳＡ／３９０）が設定される。
【００５６】
操作のローディング部分の中で、リセットが実行された後は、このＣＰＵはロード状態に入る。このＣＰＵは、リセット操作の実行中、必ずしも停止状態に入るとは限らない。ＣＰＵがロード状態にあるときは、ロード・インジケータはオンである。
【００５７】
その後、ロード・ユニット・アドレス制御により指定されているＩ／Ｏデバイスから、チャネル・プログラム読み取り操作が開始される。チャネル・プログラムの実行効果は、あたかも、絶対ストレージ位置０で始まる形式０のＣＣＷで、修飾子ビットを０、データ・アドレスを０、バイト・カウントを２４、チェーン・コマンド及びＳＬＩフラグを１、そして他の全てのフラグを０に設定して、読み取りコマンドを指定した場合と同じになる。
【００５８】
ＩＰＬの入力／出力操作が正常に完了すると、ＩＰＬデバイスのサブシステム識別ワードが、選択された絶対ストレージ位置（例えば、位置１８４−１８７）に格納され、他の選択された絶対ストレージ位置（例えば、位置１８８−１９１）には０が格納され、選択された絶対ストレージ位置（例えば、位置０−７）から、新しいプログラム状況ワード（ＰＳＷ）がロードされる（ステップ４０４）。プログラム状況ワードは、コンピューティング環境の操作を制御する。
【００５９】
ＰＳＷロードが成功し、マシンの誤動作が検出されなければ、このＣＰＵはロード状態を終了し、ロード・インジケータはオフにされる。速度制御が処理の位置に設定されている場合、ＣＰＵは動作状態になり、新しいプログラム状況ワード（ＰＳＷ）の制御下で、コンピューティング環境の操作が進行する（ステップ４０６）。次に、図７を参照してさらに説明されるように、ブートされたコンピューティング環境が実行される（ステップ４０８）。
【００６０】
図７を参照すると、ブートされたコンピューティング環境が、ＥＳＡ／３９０モードで開始され（ステップ４２０）、従って、操作は、ＥＳＡ／３９０モードで実行される（ステップ４２２）。ある時点で、アーキテクチャ・モードをＥＳＡ／３９０からｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに変更する要求を行うことができる。具体的には、プログラムは、指令コード（order code）（例えば、Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ（アーキテクチャ設定）を指定するコード）をプロセッサに送り、プロセッサは、ＥＳＡ／３９０モードからｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードに切り替えるための指令コードによりＳｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ（ＳＩＧＰ）命令を発行する（ステップ４２４）。例えば、Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ命令（後述される）及びアーキテクチャ設定のためのものを含む、指令コードを解釈し、サーバ上で実行するための機構を含むＣＰＵの信号発信（signaling）及び応答ファシリティが使用される。ファシリティは、割り当てられた指令コードのセットを伝送し、受信し、デコードする；指定された操作を開始する；及びＣＰＵの信号発信に応答することを含む、ＣＰＵ間の通信を提供する。アーキテクチャ設定の使用により、アーキテクチャ・モードは、所望の構成、例えばｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに設定される。この処理の更なる詳細を以下にさらに説明する。
【００６１】
その後、ＳＩＧＰ操作が受け入れられたかどうかについての判断が行われる（問い合わせ４２６）。戻りコードに基づいて、ＣＰＵが既にコードに指定されたアーキテクチャ・モードにある（即ち、アーキテクチャ設定が現在のモード自体への切り替えを表すか、又はこれが１つのモードから別のモードへの切り替えであるかどうか）の判断がなされたときの「無効パラメータ」表示を含む、多数のエラー条件を診断することができる。ＳＩＧＰが受け入れられ、アーキテクチャ設定がレガシー・モード切り替え操作を表す場合、ＳＩＧＰ操作を受けたコンピューティング環境の全てのプロセッサは、例えば、本明細書で説明されるアーキテクチャ設定処理を用いて、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅにモードに移行する（ステップ４２８）。しかしながら、ＳＩＧＰ操作が合法でない場合、エラーが示される（ステップ４３０）。
【００６２】
上述のように、パワーオン操作により、プログラム状況ワードがロードされる。図８を参照して、プログラム状況ワード（ＰＳＷ）の形式の本発明の１つの好ましい実施形態を説明する。図８を参照すると、この例では、プログラム状況ワードの形式は、以下に示されるようにビット３１がＥＡとして示される点を除いて、ＥＳＡ／３９０の形式である。
【００６３】
本発明の１つの好ましい実施形態において、プログラム状況ワード５００は、一例として、以下のフィールドを含む。
マスク毎（Per Mask)（Ｒ）５０２：ビット１は、ＣＰＵがプログラム・イベント記録（ＰＥＲ）と関連した割り込みに関してイネーブルにされるかどうかを制御する。ビットが０である場合、ＰＥＲイベントが割り込みを引き起こすことはない。ビットが１である場合、割り込みは許容され、制御レジスタ９内のＰＥＲイベント・マスク・ビットに左右される。
ＤＡＴモード（Ｔ）５０４：ビット５は、ストレージにアクセスするのに用いられる論理及び命令アドレスの暗黙的な動的アドレス変換（ＤＡＴ）が行われるかどうかを制御する。ビットが０である場合、ＤＡＴはオフであり、論理及び命令アドレスは実アドレスとして扱われる。ビットが１である場合、ＤＡＴはオンであり、動的アドレス変換機構が呼び出される。
【００６４】
Ｉ／Ｏマスク（ＩＯ）５０６：ビット６は、ＣＰＵが、Ｉ／Ｏ割り込みに関してイネーブルにされるかどうかを制御する。ビットが０である場合、Ｉ／Ｏ割り込みが発生することはない。ビットが１である場合、Ｉ／Ｏ割り込みは、制御レジスタ６内のＩ／Ｏ割り込みサブクラス・マスク・ビットに左右される。Ｉ／Ｏ割り込みサブクラス・マスク・ビットが０である場合、そのＩ／Ｏ割り込みサブクラスに対するＩ／Ｏ割り込みが発生することはなく、Ｉ／Ｏ割り込みサブクラス・マスク・ビットが１である場合、そのＩ／Ｏ割り込みサブクラスに対するＩ／Ｏ割り込みが発生することがある。
外部マスク（ＥＸ）５０８：ビット７は、ＣＰＵが、外部クラス内に含まれる条件による割り込みに関してイネーブルにされるかどうかを制御する。ビットが０である場合、外部割り込みが発生することはない。ビットが１である場合、外部割り込みは、制御レジスタ０内の対応する外部サブクラス・マスク・ビットに左右される。サブクラス・マスク・ビットが０である場合、サブクラスと関連した条件が割り込みを発生させることはない。サブクラス・マスク・ビットが１である場合、そのサブクラス内の割り込みが発生し得る。
【００６５】
ＰＳＷキー（キー）５１０：ビット９−１１は、ＣＰＵによるストレージ参照のためのアクセス・キーを形成する。参照がキー制御保護を受ける場合、情報が格納されるとき又はフェッチから保護される記憶位置から情報がフェッチされるとき、ＰＳＷキーがストレージ・キーと適合される。しかしながら、Ｍｏｖｅ  ｔｏ  Ｐｒｉｍａｒｙ、Ｍｏｖｅ  ｔｏ  Ｓｅｃｏｎｄａｒｙ、Ｍｏｖｅ  ｗｉｔｈ  Ｋｅｙ、Ｍｏｖｅ  ｗｉｔｈ  Ｓｏｕｒｃｅ  Ｋｅｙ、及びＭｏｖｅ  ｗｉｔｈ  Ｄｅｓｔｉｎａｔｉｏｎ  Ｋｅｙの各々のオペランドの１つ、並びに、Ｍｏｖｅ  ｗｉｔｈ  Ｏｐｔｉｏｎａｌ  Ｓｐｅｃｉｆｉｃａｔｉｏｎｓのいずれか又は両方のオペランドでは、オペランドとして指定されるアクセス・キーが、ＰＳＷキーの代わりに使用される。
【００６６】
ビット１２  ５１２：このビットは、現在のアーキテクチャ・モードを示す。このビットは、ＥＳＡ／３９０  ＰＳＷ形式の場合、１に設定される。ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ  ＰＳＷ形式の場合、このビットは、０になるように定められる。ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードにあるとき、真のｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ  ＰＳＷ（命令アドレスをビット６４−１２７に有することを含む、本明細書で説明される形式とは異なる形式を有する）をロードするために、ｌｏａｄ  ＰＳＷ  ｅｘｔｅｎｄｅｄ（ロードＰＳＷ拡張）（ＬＰＳＷＥ）命令が定められる。しかしながら、ＥＳＡ／３９０ロードＰＳＷ（ＬＰＳＷ）は依然としてサポートされ、これを用いてＥＳＡ／３９０形式のＰＳＷをロードすることができる。ＬＰＳＷが実行され、コンピューティング環境がｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードにあるとき、プロセッサは、ＥＳＡ／３９０形式のＰＳＷを、ビット１２を反転させることを含む、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ形式に拡張する。これは、オペレーティング・システムが、ＥＳＡ／３９０形式のＰＳＷを生成するために実行するｚ／ＡｒｃｈｉｔｅｃｔｕｒｅのＰＳＷ形式を折りたたむ（collapse）のと逆である。つまり、ＥＳＡ／３９０及びｚ／Ａｒｃｈｉｔｅｃｔｕｒｅの両方をサポートするコンピューティング環境において、ＰＳＷのコピーはストレージ内に入れられ、オペレーティング・システムは、完全なｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ  ＰＳＷを、ＥＳＡ／３９０  ＰＳＷのサイズ及び形式に折りたたむ。従って、ＰＳＷ形式の依存関係を用いる他のソフトウェアは、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ  ＰＳＷに気付くことができない。
【００６７】
マシン・チェック・マスク（Ｍ）５１４：ビット１３は、ＣＰＵが、マシン・チェック条件による割り込みに対してイネーブルにされるかどうかを制御する。ビットが０である場合、マシン・チェック割り込みが発生することはない。ビットが１である場合、システム損傷及び命令処理損傷に起因するマシン・チェック割り込みが許容されるが、他のマシン・チェック・サブクラス条件に起因する割り込みは、制御レジスタ１４内のサブクラス・マスク・ビットに左右される。
【００６８】
待機状態（Ｗ）５１６：ビット１４が１である場合、ＣＰＵは待機中である、つまり、命令はＣＰＵにより処理されず、割り込みが発生し得る。ビット１４が０である場合、命令のフェッチ及び実行は、通常の方法で行われる。ビットが１である場合、待機インジケータは１である。
【００６９】
問題状態（Ｐ）５１８：ビット１５が１である場合、ＣＰＵは問題状態（problem state）にある。ビット１５が０である場合、ＣＰＵは、スーパーバイザ状態（supervisor state）にある。スーパーバイザ状態においては、全ての命令が有効である。問題状態においては、意味のある情報を問題プログラムに提供し、かつ、システムの完全性に影響を与えることのない命令のみが有効であり、そうした命令は、非特権（unprivileged）命令と呼ばれる。問題状態において有効ではない命令は、特権（priviledged）命令と呼ばれる。問題状態において、ＣＰＵが特権命令を実行しようと試みるとき、特権操作例外が認識される。準特権（semiprivileged）命令と呼ばれる命令の別のグループは、特定の権限試験が満たされる場合にのみ、問題状態においてＣＰＵにより実行され、そうでない場合には、違反した特定の要件に応じて、特権操作例外又は何らかの他のプログラム例外が認識される。
【００７０】
アドレス空間制御（ＡＳ）５２０：ビット１６及び１７は、ＰＳＷビット５と共に、変換モードを制御する。
【００７１】
条件コード（ＣＣ）５２２：ビット１８及び１９は、条件コードの２つのビットである。条件コードは、特定の命令の実行において得られる結果に応じて、０、１、２、又は３に設定される。大部分の算術及び論理演算、並びに一部の他の演算が、条件コードを設定する。命令ＢＲＡＮＣＨ  ＯＮ  ＣＯＮＤＩＴＩＯＮは、分岐のための基準として、条件コード値の任意の選択を指定することができる。
【００７２】
プログラム・マスク５２４：ビット２０−２３は、４つのプログラム・マスク・ビットである。各ビットは、次のように、プログラム例外と関連付けられる。
【表１】
0006585612.tif 000002
【００７３】
マスク・ビットが１のとき、例外は割り込みをもたらす。マスク・ビットが０のとき、割り込みは発生しない。ＨＦＰ・有効数字・マスク・ビットのＨＦＰ・指数・アンダー・フロー・マスク・ビットの設定もまた、対応する例外が発生するときに演算が完了する方式を決定する。
【００７４】
拡張アドレッシング・モード（ＥＡ）５２６：ビット３１は、ビット３２、即ち基本アドレッシング・モード・ビットと共に、有効アドレス（effective address）のサイズ及び有効アドレス生成を制御する。ビット３１が０の場合、アドレッシング・モードは、ビット３２により制御される。ビット３１及び３２が両方とも１の場合、６４ビット・アドレッシングが指定される。
【００７５】
基本アドレッシング・モード（ＢＡ）５２８：ビット３１及び３２は、有効アドレスのサイズ及び有効アドレスの生成を制御する。ビット３１及び３２の両方が０の場合、２４ビット・アドレッシングが指定される。ビット３１が０であり、ビット３２が１である場合、３１ビット・アドレッシングが指定される。ビット３１及び３２の両方とも１である場合、６４ビット・アドレッシングが指定される。ビット３１  １及びビット３２  ０は、指定例外を認識させる無効な組み合わせである。アドレッシング・モードは、ＤＡＴ、ＡＳＮ、ディスパッチ可能ユニット制御、リンケージ、エントリ、及びトレース・テーブル又はアクセス・リスト又はリンケージ・スタックにアクセスするのに用いられる、ＰＥＲアドレス又はアドレスのサイズを制御しない。ＰＳＷのビット３１及び３２によるアドレッシング・モードの制御は、次のように要約される。
【表２】
0006585612.tif 000003
【００７６】
命令アドレス５３０：ＰＳＷのビット３３−６３は、命令アドレスである。アドレスは、ＣＰＵが待機状態（ＰＳＷのビット１４が１）でない限り、実行される次の命令の左端バイトの位置を指定する。
【００７７】
１つの態様によると、構成ｚ／Ａｒｃｈｉｔｅｃｒｕｔｅアーキテクチャ・モード（ＣＺＡＭ）ファシリティのような構成アーキテクチャ・モード・ファシリティが、コンピューティング環境にインストールされ、アクティブにされると、パワーオン・プロセスが変更される。図９を参照して、ＣＺＡＭパワーオン・プロセスの本発明の１つの好ましい実施形態が説明される。
【００７８】
図９を参照すると、コンピューティング環境のプロセッサのパワーオンに基づき、ＣＺＡＭがインストールされると、コンピューティング環境が、例えば、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモード（ＥＳＡＭＥとも呼ばれる）などの構成アーキテクチャ・モード・ファシリティが指定する特定のアーキテクチャ・モードに設定される（ステップ６００）。例えば、ステップ６０２において、上述のように、チャネル制御ワード（ＣＣＷ）初期プログラム・ロード（ＩＰＬ）のような初期プログラム・ロード（ＩＰＬ）が実行され、ＩＰＬ入力／出力操作が正常に完了すると、ＩＰＬデバイスについてのサブシステム識別ワードが選択された絶対ストレージ位置（例えば、位置１８４−１８７）に格納され、他の選択された絶対ストレージ位置（例えば、位置１８８−１９１）に０が格納され、この実施形態において、絶対ストレージ位置（例えば、位置０−７）から、１６バイトの新しいプログラム状況ワード（ＰＳＷ）が生成される（ステップ６０４）。新しい１６バイトＰＳＷは、例えば、選択されたストレージのダブルワード（例えば、位置０−７）から形成される。ダブルワードのビット１２は、１となり、そうでない場合は、エラーが示され得る。（エラーは、認識される指定例外、マシン・チェック、又は別のエラー表示であり得る）。新しく作成されたＰＳＷのビット０−３２は、ビット１２が反転されることを除いて、選択されたダブルワードのビット０−３２に設定される。新しく作成されたＰＳＷのビット３３−９６は、０に設定される。新しく作成されたＰＳＷのビット位置９７−１２７は、選択されたダブルワードのビット３３−６３から初期化される。
【００７９】
本発明の１つの好ましい実施形態において、命令によりロードされるＰＳＷフィールドは、それらがロードされる前に、妥当性に関してチェックされない。本発明の１つの好ましい実施形態において、ＰＳＷのビット１２は、妥当性に関してチェックされる。さらに本発明の別の好ましい実施形態において、全てのフィールドは、妥当性に関してチェックされる。本発明の別の好ましい実施形態において、ＰＳＷのロード前にチェックされなかったいずれのビットも、ＰＳＷが初期化された後、妥当性に関してチェックされ、プロセッサは、エラーを示し得る（例えば、認識される指定例外、マシン・チェック、又は別のエラー表示を生成することによって）。
【００８０】
コンピューティング環境が動作状態になり、新しいプログラム状況ワード（ＰＳＷ）の制御下コンピューティング環境の動作が進行する（ステップ６０６）。図１０を参照してさらに説明されるように、ブートされたコンピューティング環境が実行される（ステップ６０８）。
【００８１】
図１０を参照すると、ブートされたコンピューティング環境が、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードで開始され（ステップ６２０）、従って、動作は、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードで実行される（ステップ６２２）。モード切り替えは不要であり、処理は、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードでの処理を直接続行する。従って、本発明の１つの好ましい実施形態において、以下のステップは必要としない。：即ち、ＥＳＡ／３９０モードからｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードに切り替えるためのプロセッサ信号（ＳＩＧＰ）操作；ＳＩＧＰ操作が受け入れられる操作であるかどうかの判断；ＳＩＧＰ操作が受け入れられる操作である場合のｚ／Ａｒｃｈｉｔｅｃｔｕｒｅへの移行；又は、ＳＩＧＰ操作が受け入れられない場合のエラー表示。
【００８２】
コンピューティング環境のプロセッサの全て（すなわち、シングル・プロセッサ、論理パーティション、ＶＭゲストなどの構成されている環境）は、上述のステップを行うことなく、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードにある。従って、本明細書で説明されるように、１つの態様によれば、ＥＳＡ／３９０モードでブート又はパワーオンする能力が、ＥＳＡ／３９０及びｚ／Ａｒｃｈｉｔｅｃｔｕｒｅの両方のために構成されるコンピューティング環境から除去される。具体的には、コンピューティング環境は、複数のアーキテクチャをサポートするように構成されるが、構成されたアーキテクチャの少なくとも１つの態様を制限するための機能が与えられ、態様の１つは、そのアーキテクチャでパワーオンするための能力である。
【００８３】
１つ又は複数の実施形態において、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードでのパワーオンは、（１）論理パーティション（ゲスト−１）及び（２）論理パーティション、及びＥＳＡ／３９０モードでブートする必要なしにｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードでブート及びリセットされるゲスト−２、のうちの一方を指定するための機構を提供する。この特徴は、無条件に又は構成切り替えの制御下でインストールすることができる。
【００８４】
ＰＳＷ初期化に関するブート・シーケンスが修正される。例えば、ＩＰＬの終わりに、絶対位置０−７におけるＩＰＬ  ＰＳＷがロードされる。リセット条件がＥＳＡ／３９０であるとき現在行われているように、ビット１２は、有効なＥＳＡ／３９０アーキテクチャ・モードにする１であり、プログラムは、ＥＳＡ／３９０アーキテクチャ・モードでの命令の実行を続行する。ＣＺＡＭがインストールされた場合、リセット条件はｚ／Ａｒｃｈｉｔｅｃｔｕｒｅであり、ビット１２は、依然として、有効なＥＳＡ／３９０アーキテクチャ・モードにする１であるが、上述のように、１６バイトｚ／Ａｒｃｈｉｔｅｃｔｕｒｅの現ＰＳＷの形成の際、ビット１２は反転される。
【００８５】
パワーオン・プロセスに加えて、他のプロセス、挙動及び／又は操作も、構成アーキテクチャ・モード・ファシリティのインストールにより変更される又は影響を受けることがある。これらの影響を受けるプロセス、挙動、及び／又は操作は、ＥＳＡ／３９０及びｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードに特有である。しかしながら、他のタイプのアーキテクチャにおいて、類似の及び／又は異なるプロセスが影響を受けることがある。１つ又は複数の実施形態において影響を受け得る例示的なプロセス、挙動及び／又は操作として、例えば、以下が挙げられる。
（１）エラーを発生することなく（又はエラーを無視することなく）、モードから自身への（ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードからｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードへの）切り替えをイネーブルにすること。つまり、プロセッサは、ＳＩＧＰ命令を発行して、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードに切り替えることができ、プロセッサが既にそのモードにある場合、エラーは発生しない。これまで、現在のモードに対応するモードに切り替えようとする試みにより、エラーが発生した。
（２）ＥＳＡ／３９０モードへの切り替えをディスエーブルにすること。ＣＺＭをインストールし、アクティブにすることに基づいて、ＥＳＡ／３９０への切り替えがディスエーブルにされ、今やエラーが発生する。ＥＳＡ／３９０への再切り替えは、ＰＳＷのビット１２をチェックすることにより防止され、ビット１２がｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードを示すように設定されない場合（ストレージ内の「１」のビット１２により表され、このビットは、ＥＳＡ／３９０  ＰＳＷが有効なｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ  ＰＳＷに変換されたとき、ＰＳＷにおけるｚ／Ａｒｃｈｉｔｅｃｔｕｒｅを表すように、ビット「０」に反転される）、例外が発生する。
（３）ビット１２の処理を制限するために、Ｌｏａｄ  ＰＳＷ（ＰＳＷロード）操作を変更すること。構成ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅアーキテクチャ・モード・ファシリティがインストールされている場合、ＰＳＷロードは、その第２のオペランドが１でない場合には、指定例外を認識する。ＰＳＷロードは、ビット１２が反転されることを除いて、その第２のオペランドのビット０−３２を、そして、オペランドのビット３３−６３を、現ＰＳＷのそれぞれ、ビット０−３２及び９７−１２７としてロードし、現ＰＳＷのビット３３−９６を０に設定する。
【００８６】
図１１を参照して、Ｌｏａｄ  ＰＳＷ命令に関する更なる詳細を説明する。本発明の１つの好ましい実施形態において、Ｌｏａｄ  ＰＳＷ命令７００は、ＰＳＷロード操作を示すためのオペコードを含むオペコード・フィールド７０２、ベース・フィールド（Ｂ２）７０４、及び変位フィールド（Ｄ２）７０６を含む。Ｂ２フィールドにより指定される汎用レジスタの内容をＤ２フィールドの内容に加えて、ストレージ内の第２のオペランドのアドレスを形成する（第２のオペランド・アドレスと呼ばれる）。
【００８７】
Ｌｏａｄ  ＰＳＷ命令の動作において、現ＰＳＷは、第２のオペランド・アドレスが指定する位置におけるダブルワードの内容から形成された１６バイトのＰＳＷに置き換えられる。
【００８８】
ダブルワードのビット１２は１となり、そうでない場合は、モデルによって、指定例外が認識され得る。構成ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅアーキテクチャ・モード・ファシリティがインストールされた場合、ダブルワードのビット１２が１でなければ、指定例外が認識される。
【００８９】
ダブルワードのビット０−３２は、ビット１２が反転されることを除いて、現ＰＳＷの位置０−３２に入れられる。ダブルワードのビット３３−６３は、現ＰＳＷの位置９７−１２７に入れられる。現ＰＳＷのビット３３−９６は、０に設定される。
【００９０】
シリアル化及びチェックポイント同期機能は、オペランドのフェッチ前又は後、及び再び操作の完了後に実行される。
【００９１】
オペランドは、ダブルワード境界上で指定され、そうでない場合には、指定例外が認識される。モデルによって、オペランドのビット１２が０である場合、指定例外が認識され得る。
【００９２】
命令によってロードされるＰＳＷフィールドは、ビット１２のチェックを除き、それらがロードされる前に、妥当性に関してチェックされない。しかしながら、ロードの直後、指定例外が認識され、新しくロードされたＰＳＷに関して以下のいずれかが真であるとき、プログラム割り込みが発生する。
＊ビット０、２−４、１２、又は２４−３０のいずれかが１である。
＊ビット３１及び３２の両方とも０であり、ビット９７−１０３は全て０ではない。
＊ビット３１及び３２は、それぞれ、１及び０である。
これらの場合、操作は完了し、結果として得られる命令長コードは０である。
【００９３】
全てのアドレッシング及び保護例外において、操作は抑止される。
結果の条件コード：コードは、ロードされた新しいＰＳＷにおいて指定されるように設定される。
プログラム例外：
＊アクセス（フェッチ、オペランド２）
＊特権操作
＊指定
【００９４】
プログラミング上の注意：第２のオペランドは、ＥＳＡ／３９０  ＰＳＷの形式を有するべきである。オペランドのビット１２が０である場合、ＰＳＷロードの実行中又は実行後、指定例外が認識される。
【００９５】
ＰＳＷに関する更なる詳細が、非特許文献５に記載される。
【００９６】
構成アーキテクチャ・モード・ファシリティのインストールに起因して変更され得る上記のプロセス、操作及び／又は挙動に加えて、以下に説明されるように、１つ又は複数の実施形態において、リセット・モードを変更することもできる。
（４）（例えば、リセット、クリア・リセット、及びリセットのための他のアクションに関する）リセット・モードを変更すること。ＣＺＡＭファシリティがインストールされているとき、ＣＰＵリセットは、例えばロード・ノーマル・キーなどをアクティブにすることにより引き起こされる場合、アーキテクチャ・モードをｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードに設定する。
【００９７】
例えば、ＣＰＵリセット、初期ＣＰＵリセット、サブシステム・リセット、クリア・リセット及びパワーオン・リセットを含む、ＥＳＡ／３９０及びｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードの部分として含まれる多数のリセット機能があり、その各々を以下に説明する。
【００９８】
ＣＰＵリセット
ＣＰＵリセットは、機器チェック表示をクリアする手段と、破壊される情報の破壊を最小量に抑えた、ＣＰＵ状態における結果の予測不能性とをもたらす。特に、ＣＰＵリセットは、ＣＰＵ状態が分析又は操作の再開のために予約されるとき、チェック条件をクリアするために使用される。構成ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅアーキテクチャ・モード（ＣＺＡＭ）ファシリティがインストールされていない場合、ＣＰＵリセットは、これがロード・ノーマル・キー（オペレータ・ファシリティ）をアクティブにすることによって引き起こされるのであれば、アーキテクチャ・モードをＥＳＡ／３９０モードに設定する。ＣＺＡＭファシリティがインストールされている場合、ＣＰＵリセットは、これがロード・ノーマル・キーをアクティブにすることによって引き起こされるのであれば、アーキテクチャ・モードをｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードに設定する。ＣＰＵリセットによりＥＳＡ／３９０モードが設定される場合、これは現ＰＳＷを保存するので、アーキテクチャ・モードを元のｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに変更するＳｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ指令により、ＰＳＷを復元することができる。
本発明の１つの好ましい実施形態において、ＣＰＵリセットにより、次のアクションが引き起こされる。
１．現在の命令又は割り込みなどの他の処理シーケンスの実行が終了し、全てのプログラム割り込み及びスーパーバイザ呼び出し・割り込み条件がクリアされる。
２．ＣＰＵにローカルなあらゆる保留中の外部割り込み条件がクリアされる。浮動外部割り込み条件はクリアされない。
３．ＣＰＵにローカルなあらゆる保留中のマシン・チェック・割り込み条件及びエラー表示、並びにあらゆるチェック停止状態がクリアされる。浮動マシン・チェック割り込み条件はクリアされない。構成内の全てのＣＰＵに報告され、ＣＰＵに対して保留状態にされたあらゆるマシン・チェック条件は、ＣＰＵにローカルであると言われる。
４．プリフェッチされた命令又はオペランドの全てのコピーがクリアされる。付加的に、現在のチェックポイント間隔での命令の実行が理由で格納されるあらゆる結果がクリアされる。
５．ＡＲＴ（Access Register Translation）ルックアサイド・バッファ及び変換ルックアサイド・バッファは、エントリをクリアする。
６．構成内のいずれかのＣＰＵ上のロード・ノーマル・キーをアクティブすることにより、リセットが引き起こされた場合、次のアクションが行われる。
ａ．ＣＺＡＭファシリティがインストールされていないとき、ＣＰＵ（及び、ＣＰＵリセット又はそれらにより実行されるＣＰＵリセットのため、構成内の他の全てのＣＰＵ）のアーキテクチャ・モードが、ｚ／ＡｒｃｈｉｔｅｃｔｕｒｅモードからＥＳＡ／３９０モードに設定される。
ｂ．ＣＺＡＭファシリティがインストールされていないとき、現ＰＳＷは、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードを復元するＳｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ命令による後の使用のために保存される。
ｃ．ＣＺＡＭファシリティがインストールされていないとき、現ＰＳＷは、１６バイトから８バイトに変更される。８バイトのＰＳＷのビットは、次のように設定される。：即ち、ビット０−１１及び１３−３２は、１６バイトのＰＳＷの同じビットと等しくなるように設定され、ビット１２は１に設定され、ビット３３−６３は、１６バイトのＰＳＷのビット９７−１２７と等しくなるように設定される。
システム・リセット・ノーマル・キーをアクティブにすることにより又はＳｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ  ＣＰＵ−Ｒｅｓｅｔ命令により引き起こされるＣＰＵリセット、並びにＥＳＡ／３９０モードにおけるあらゆるＣＰＵリセットは、キャプチャされたｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ−ＰＳＷレジスタ（即ち、コード０でのＳｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ命令、又はロード・ノーマル・キーをアクティブにすることに起因するＣＰＵリセットのために、ＣＰＵが、ｚ／ＡｒｃｈｉｔｅｃｔｕｒｅモードからＥＳＡ／３９０モードに最後に変わったときに保存されるＰＳＷ）に影響を与えない。
７．アクション１−６が完了した後、ＣＰＵは停止状態になる。ＣＣＷタイプのＩＰＬシーケンスがそのＣＰＵにおけるリセット機能に従うとき、ＣＰＵは、リセット機能の完了時にロード状態になり、リセット動作の実行中、必ずしも停止状態にはならない。リスト指示のＩＰＬシーケンスがそのＣＰＵにおけるリセット機能に従うとき、ＣＰＵは動作状態になり、リセット操作の実行中、必ずしも停止状態にはならない。
【００９９】
レジスタ、ストレージの内容、及びＣＰＵの外部の条件の状態は、ＣＰＵリセットにより変更されないままである。しかしながら、リセット時に内容を変更する操作が進行中の場合、レジスタ、記憶位置、又は状態の後の内容は予測不能である。ＰＥＲＦＯＲＭ  ＬＯＣＫＥＤ  ＯＰＥＲＡＴＩＯＮの実行時にＣＰＵにより保持されるロックは、ＣＰＵリセットにより解放されない。
【０１００】
ＣＰＵがＩ／Ｏ命令を実行しているとき又はＩ／Ｏ割り込みを実施しているときに、ＣＰＵにおけるリセット機能が開始された場合、ＣＰＵとチャネル・サブシステムとの間の現在の動作は、完了することも又は完了しないこともあり、関連したチャネル・サブシステム・ファシリティの結果として得られる状態は、予測不可能であり得る。
【０１０１】
プログラミング上の注意：
１．ＣＰＵが停止状態にあるとき、状態、条件、又はフィールドの内容を変更する大部分の操作が行われないことがある。しかしながら、一部のプロセッサ信号機能及び一部のオペレータ機能により、これらのフィールドが変更されることがある。ＣＰＵリセットが生じたときにフィールドを失う可能性を排除するために、ＣＰＵを停止すべきであり、オペレータ機能が進行中であってはならない。
２．アーキテクチャ・モードがＥＳＡ／３９０モードに変更され、現ＰＳＷのビット３１が１である場合、ＰＳＷは無効である。
【０１０２】
初期ＣＰＵリセット
初期ＣＰＵリセットは、現ＰＳＷの初期化、キャプチャされたｚ／ＡｒｃｈｉｔｅｃｔｕｒｅＰＳＷ、ＣＰＵタイマ、クロック・コンパレータ、プリフィックス、ブレーキング・イベント・アドレス制御、浮動小数点制御、及び時刻（Time of Day、ＴＯＤ）プログラム可能レジスタと共に、ＣＰＵリセットの機能を提供する。ＣＺＡＭファシリティがインストールされていない場合、初期ＣＰＵリセットは、ロード・ノーマル・キーをアクティブにすることによりリセットが引き起こされるならば、アーキテクチャ・モードがＥＳＡ／３９０モードに設定される。ＣＺＡＭファシリティがインストールされている場合、初期ＣＰＵリセットは、これがロード・ノーマル・キーをアクティブにすることにより引き起こされるならば、アーキテクチャ・モードがｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードに設定される。
初期ＣＰＵリセットは、ＣＰＵリセット機能を以下のクリア及び初期化機能と結合させる。
１．ＣＺＡＭファシリティがインストールされていない場合、ロード・ノーマル・キーをアクティブにすることによりリセットが引き起こされるならば、ＣＰＵ（及び構成内の他の全てのＣＰＵの）アーキテクチャ・モードが、ＥＳＡ／３９０モードに設定される。そうでない場合、ＣＺＡＭファシリティがインストールされているならば、ＣＰＵ（及び構成内の他の全てのＣＰＵ）のアーキテクチャ・モードは、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードに設定される。
２．現ＰＳＷ、キャプチャされたｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ−ＰＳＷ、プリフィックス、ＣＰＵタイマ、クロック・コンパレータ、及びＴＯＤプログラム可能レジスタの内容が、０に設定される。ＩＰＬシーケンスがそのＣＰＵにおけるリセット機能に従うとき、ＰＳＷの内容は、必ずしも０に設定されない。
３．制御レジスタの内容は、その初期ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ値に設定される。ＣＰＵがＥＳＡ／３９０モードにあるか又はｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードにあるかに関係なく、制御レジスタの全ての６４ビットが設定される。
４．浮動小数点制御レジスタの内容は、０に設定される。
５．ブレーキング・イベント・アドレス・レジスタの内容は、０００００００００００００００１ｈｅｘに初期化される。
これらのクリア及び初期化機能は、妥当性検査を含む。
【０１０３】
ＰＳＷビット１２はそのモードで１となるので、動作の終わりにＣＰＵがＥＳＡ／３９０アーキテクチャ・モードにあるときに現ＰＳＷを０に設定することにより、ＰＳＷは無効となる。従って、この場合、新ＰＳＷを最初に導入することなく、ＣＰＵがリセット後に動作状態になった場合、指定例外が認識される。
【０１０４】
サブシステム・リセット
サブシステム・リセットは、浮動割り込み条件のクリア及びＩ／Ｏシステム・リセットの呼び出しのための手段を提供する。
【０１０５】
クリア・リセット
クリア・リセットにより、初期ＣＰＵリセット及びサブシステム・リセットが実行され、付加的に、ＴＯＤクロックを除く、構成内の全てのＣＰＵにおける全てのストレージ位置及びレジスタがクリア又は初期化される。こうしたクリアは、プログラムをデバッグする際及びユーザのプライバシーを保証する際に有用である。また、クリア・リセットにより、ＰＥＲＦＯＲＭ  ＬＯＣＫＥＤ  ＯＰＥＲＡＴＩＯＮ命令によって使用される全てのロックが解放される。ＣＺＡＭファシリティがインストールされていない場合、クリア・リセットにより、アーキテクチャ・モードがＥＳＡ／３９０モードに設定される。ＣＺＡＭファシリティがインストールされている場合、クリア・リセットにより、アーキテクチャ・モードがｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードに設定される。クリアは、アドレス指定可能でないページの内容を保持するために制御プログラムが使用するダイレクト・アクセス・ストレージ・デバイスなどの外部ストレージに影響を与えない。
クリア・リセットは、初期ＣＰＵ上のリセット機能を初期化機能と結合し、それにより以下のアクションが引き起こされる。
１．ＣＺＡＭファシリティがインストールされていない場合、構成内の全てのＣＰＵのアーキテクチャ・モードは、ＥＳＡ／３９０モードに設定される。ＣＺＡＭファシリティがインストールされている場合、構成内の全てのＣＰＵのアーキテクチャ・モードは、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードに設定される。
２．構成内の全てのＣＰＵのアクセス、汎用、及び浮動小数点レジスタは、０に設定される。クリア・リセットが開始されると、ＣＰＵがＥＳＡ／３９０モードにあったか又はｚ／Ａｒｃｈｉｔｅｃｔｕｒｅアーキテクチャ・モードにあったかに関係なく、汎用レジスタの全ての６４ビットが０に設定される。
３．構成内の主ストレージの内容及び関連したストレージ・キーは、有効なチェック・ブロック・コードにより０に設定される。
４．ＰＥＲＦＯＲＭ  ＬＯＣＫＥＤ  ＯＰＥＲＡＴＩＯＮ命令を実行する際に構成内のあらゆるＣＰＵにより使用されるロックが、解放される。
５．サブシステム・リセットが実施される。
妥当性検査は、レジスタの設定、並びにストレージ及びストレージ・キーのクリアに含まれる。
【０１０６】
プログラミング上の注意：
１．アーキテクチャ・モードは、システム・リセット・ノーマル・キーのアクティブ化により、又はＳｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ  ＣＰＵ−Ｒｅｓｅｔ若しくはＩｎｉｔｉａｌ−ＣＰＵ−ｒｅｓｅｔ指令の実行により、変更されない。構成内の全てのＣＰＵは、同じアーキテクチャ・モードにある。
２．ＣＰＵリセット動作が変更されないままにされるフィールドの内容に影響を与えない場合、ＣＰＵは命令を実行しておらず、リセット時に全ての割り込みに関してディスエーブルにされる。ＣＰＵタイマの動作及びマシン・チェック割り込みの発生の可能性を除き、ＣＰＵを待機状態にすること、及び、Ｉ／Ｏ及び外部割り込みに対してこれをディスエーブルにすることにより、全てのＣＰＵ活動を停止させることができる。ＣＰＵタイマが更新されるとき又はマシン・チェック割り込みが発生するときにリセットを引き起こす可能性を回避するために、ＣＰＵは停止状態になる。
３．ＣＰＵリセット、初期ＣＰＵリセット、サブシステム・リセット、及びクリア・リセットは、ＴＯＤクロックの値及び状態に影響を与えない。
４．ＣＰＵがチェック停止状態になる条件はモデル依存であり、現在の動作の完了を妨げる機能不良を含む。従って、ＣＰＵがチェック停止状態にある間にＣＰＵリセット又は初期ＣＰＵリセットが実行された場合、ＰＳＷ、レジスタ、及びエラー時にアクセスされるストレージ・キー及びストレージ位置を含むストレージ位置の内容は、予測不能な値を有することがあり、場合によっては、内容は、チェック停止状態がこれらのリセットによってクリアされた後、依然としてエラーになり得る。この状況において、クリア・リセットは、エラーのクリアを必要とする。
【０１０７】
パワーオン・リセット
マシンのコンポーネントのためのパワーオン・リセット機能は、そのコンポーネントのためのパワーオン・シーケンスの一部として実行される。ＴＯＤクロック、主ストレージ、拡張ストレージ及びチャネル・サブシステムのパワーオン・シーケンスは、ＣＰＵパワーオン・シーケンスの一部として含ませることができ、又は、これらのユニットのパワーオン・シーケンスを別個に開始することができる。
ＣＰＵパワーオン・リセット：パワーオン・リセットにより、初期ＣＰＵリセットが実行され、チャネル・サブシステムにおいてＩ／Ｏシステム・リセットが実行されることも又はされないこともある。汎用レジスタ、アクセス・レジスタ、及び浮動小数点レジスタの内容は、チェック・ブロッサム・コードにより、０にクリアされる。ＰＥＲＦＯＲＭ  ＬＯＣＫＥＤ  ＯＰＥＲＡＴＩＯＮにより使用され、ＣＰＵと関連付けられたロックは、それらが既にパワーオンしているＣＰＵにより保持されない限り、解放される。ＣＺＡＭファシリティがインストールされておらず、リセットが構成の確立と関連付けられている場合、ＣＰＵは、ＥＳＡ／３９０モードになり、そうでない場合、ＣＰＵは、既に構成内にあるＣＰＵのアーキテクチャ・モードになる。ＣＺＡＭファシリティがインストールされている場合、ＣＰＵは、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードになる。
ＣＰＵリセット、初期ＣＰＵリセット、サブシステム・リセット、及びクリア・リセットは、オペレータ・ファシリティを用いて手動で開始することができる。初期ＣＰＵリセットは、初期プログラム・ロード機能の部分である。パワーオン・リセットは、パワーオンに変わる部分として実行される。
【０１０８】
ＣＺＡＭファシリティがインストールされていない場合、リセットが、システム・リセット・クリア、ロード・ノーマル、又はロード・クリア・キーにより、又は構成を確立するＣＰＵパワーオン・リセットにより開始されるのであれば、アーキテクチャ・モードはＥＳＡ／３９０モードに設定され、そうでない場合、パワーオン・リセットにより、モードが既に構成内にあるＣＰＵのモードに設定されることを除けば、アーキテクチャ・モードは変更されない。ＣＺＡＭファシリティがインストールされている場合、アーキテクチャ・モードは、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードに設定される。
【０１０９】
構成アーキテクチャ・モード・ファシリティのインストールが原因で変更され得る他のプロセス、操作、及び／又は挙動が、以下に説明される。
（５）リセットが実行されると、ＥＳＡ／３９０モードとｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードとの間の変更を容易にするためにとられる他のリセット関連アクションを抑止する。ＣＺＡＭファシリティがインストールされていない場合、現ＰＳＷは、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードを復元するＳｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ指令による後の使用のために保存される。ＣＺＡＭファシリティがインストールされていない場合、現ＰＳＷは、１６バイトから８バイトに変更される。８バイトのＰＳＷのビットは、一例では、次のように設定される。：即ち、ビット０−１１及び１３−３２は、１６バイトのＰＳＷの同じビットに等しくなるように設定され、ビット１２は１に設定され、ビット３３−６３は、１６バイトのＰＳＷのビット９７−１２７に等しくなるように設定される。ＣＺＡＭファシリティがインストールされている場合、ＰＳＷは、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードを復元するＳｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ指令による後の使用のために保存されず、現ＰＳＷは、１６バイトから８バイトに変更されない。
（６）ＣＰＵ  ＳＣＬＰ構成（configure Service Call Logical Processor）コマンド、及びロード・キー操作により、ＣＰＵを構成するためのプロセスを変更する。ＥＳＡ／３９０における構成ではなく、リセットにより定められるモードで構成する。ＣＰＵ  ＳＣＬＰ構成コマンドは、対象ＣＰＵを、既に構成された状態にあるＣＰＵのアーキテクチャ・モードにする。構成内に入れられた少なくとも第１のＣＰＵは、ＣＰＵのパワーオン・リセットと共にそこに入れられ、そのリセットの一部分として、ＣＰＵパワーオン・リセットで定められたアーキテクチャ・モードにされる。モデルは、これが構成されるＣＰＵのモードを設定するとき、待機状態にあるＣＰＵのモードを代替的に設定することができる。
【０１１０】
ロード・クリア・キー又はロード・ノーマル・キーをアクティブにすることにより、アーキテクチャ・モードが、それぞれ、クリア・リセット又は初期ＣＰＵリセットで定められるように設定される。
【０１１１】
（７）Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ指令によりアーキテクチャ・モードがＥＳＡ／３９０モードに変更できないように、ＳＩＧＰを変更する。
【０１１２】
図１２を参照して、Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ（ＳＩＧＰ）命令の本発明の１つの好ましい実施形態を説明する。１つの好ましい実施形態において、Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ命令８００は、例えば、プロセッサ信号操作を示すオペコードを有するオペコード・フィールド（オペコード）８０２、第１のレジスタ・フィールド（Ｒ１）８０４、第２のレジスタ・フィールド（Ｒ３）８０６、ベース・フィールド（Ｂ２）８０８、及び変位フィールド（Ｄ２）８１０を含む複数のフィールドを有する。Ｒ１は、その内容が第１のオペランドである汎用レジスタを示し、Ｒ３は、その内容が第３のオペランドである汎用レジスタを示し、Ｒ２により示されるレジスタの内容をＤ２における変位に加えて、第２のオペランドのアドレスをもたらす。
【０１１３】
動作において、８ビットの指令コード、及び、要求される場合は、３２ビットのパラメータが、第３のオペランド内に含まれるＣＰＵアドレスが指定するＣＰＵに伝送される。結果は、条件コードにより示され、第１オペランド位置のビット位置３２−６３内に集められた状況により詳述することができる。
【０１１４】
第２オペランド・アドレスは、データをアドレス指定するために用いられず、代わりに、アドレスのビット５６−６３は、８ビットの指令コードを含む。第２オペランド・アドレスのビット０−５５は無視される。指令コードは、アドレス指定されたＣＰＵにより実施される機能を指定する。例えば、一例において、指令コードの割り当て及び定義は、以下の通りである。
【表３】
0006585612.tif 000004
【０１１５】
汎用レジスタＲ３のビット位置４８−６３内に含まれる１６ビットの２進数は、ＣＰＵアドレスを形成する。レジスタのビット０−４７は無視される。指定された指令が、Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ指令であるとき、ＣＰＵアドレスは無視され、構成内の他の全てのＣＰＵは、アドレス指定されるものと見なされる。
【０１１６】
ビット位置３２−６３内に３２ビットのパラメータを含む汎用レジスタは、Ｒ１又はＲ１＋１の、どちらかの奇数番号のレジスタである。パラメータが与えられているかどうか及びこれが使用される目的に関して、汎用レジスタは、指令コードに依存する。
【０１１７】
前述のオペランドは、一例において、以下の形式を有する。：
Ｒ１により指定される汎用レジスタ：ビット０−３１は使用されない；ビット３２−６３は状況を含む。
どちらであっても奇数番号のレジスタであるＲ１又はＲ１＋１により指定される汎用レジスタ：ビット０−３１は使用されない；ビット３２−６３はパラメータを含む。
Ｒ３により指定される汎用レジスタ：ビット０−４８は未使用；ビット４９−６３はＣＰＵアドレスを含む。
第２オペランド・アドレス：ビット０−５５は使用されない；ビット５６−６３は指令コードを含む。
【０１１８】
操作が開始する前及び操作が再び完了した後、シリアル化機能が実施される。
【０１１９】
指令コードが受け入れられ、非ゼロ（nonzero）状況が戻されないとき、条件コード０が設定される。状況情報がこのＣＰＵ（ＳＩＧＰを実行しているＣＰＵ）により生成されるとき又はアドレス指定されたＣＰＵにより戻されるとき、状況は、汎用レジスタＲ１のビット位置３２−６３に入れられ、レジスタのビット０−３１は変更されないままであり、条件コード１が設定される。
【０１２０】
アドレス指定されたＣＰＵへのアクセス経路がビジーであるとき又はアドレス指定されたＣＰＵが作動しているが、指令コードに応答できない状態にあるとき、条件コード２が設定される。
【０１２１】
アドレス指定されたＣＰＵが非動作状態にある場合（つまり、インストールに供されていないか、構成内にないか、特定の顧客・エンジニア・テスト・モードのいずれかになっているか、又は電源がオフになっている場合）、条件コードが設定される。
【０１２２】
結果の条件コード
０  指令コードが受け入れられる
１  状況が格納される
２  ビジー
３  非動作状態
プログラム例外
＊特権操作
＊トランザクション制約
【０１２３】
Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ指令がＳｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ指令の第２オペランド・アドレスのビット位置５６−６３に指定されるとき、パラメータ・レジスタのビット位置５６−６３の内容は、構成内の全てのＣＰＵが設定されるアーキテクチャ・モードを指定するコードとして使用される。：コード０は、ＥＳＡ／３９０モードを指定し、コード１及び２は、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードを指定する。コード１は、構成内の全てのＣＰＵの各々について、現在のＥＳＡ／３９０ＰＳＷがアーキテクチャＰＳＷに変換されることを規定する。コード２は、Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒを実行しているＣＰＵのＰＳＷがｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ  ＰＳＷに変換されること、及び、構成内の他の全てのＣＰＵについて、ＰＳＷがそのＣＰＵについてのキャプチャされたｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ  ＰＳＷレジスタの値を有するように設定されることを規定する。キャプチャされたｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ  ＰＳＷレジスタがリセットにより全て０に設定されなかったならば、キャプチャされたｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ  ＰＳＷレジスタの値によるＰＳＷの設定は、ＣＰＵが最後にｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードにあったときに存在したＰＳＷを復元する。
【０１２４】
パラメータ・レジスタのビット０−５５は無視される。Ｓｉｇａｌ  Ｐｒｏｃｅｓｓｏｒ指令のＣＰＵアドレス・レジスタの内容は無視され、構成内の他の全てのＣＰＵがアドレス指定されるものと見なされる。
【０１２５】
ＣＺＡＭファシリティがインストールされていない場合、指令は、コードが０、１、又は２である場合にのみ受け入れられ、ＣＰＵは、既にコードにより指定されたモードにはなく、他の全てのＰＵの各々は停止又はチェック停止状態のいずれかになっており、かつ、他の条件は指令の受け入れを妨げない。
【０１２６】
ＣＺＡＭファシリティがインストールされている場合、ＥＳＡ／３９０モードへ戻るのは許容されないため、コード０は受け入れられず、ＣＰＵは既にｚ／Ａｒｃｈｉｔｅｃｔｕｒｅアーキテクチャ・モードにあることから、コード１及び２の指定は完了をもたらし、無効パラメータ及び条件コード１を示す。Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ指令により通常検証される他の必須条件は、チェックされることも又はされないこともある。
【０１２７】
受け入れられる場合、Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒの実行中、指令は、全てのＣＰＵにより完了する。この実施形態において、決して、異なるＣＰＵが異なるアーキテクチャ・モードにあることはない。
【０１２８】
一例において、Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ指令は、次のように完了する。：
・パラメータ・レジスタ内のコードが０、１、又は２でない場合、又はＣＰＵが既にコードにより指定されるアーキテクチャ・モードにあるとき、指令は受け入れられない。代わりに、Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ命令のＲ１フィールドに指定されている汎用レジスタのビット５５（無効パラメータ）が１に設定され、条件コード１が設定される。
・構成内の他の全てのＣＰＵが停止又はチェック停止状態にある場合、指令は受け入れられない。代わりに、Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ命令のＲ１フィールドに指定されている汎用レジスタのビット５４（誤り状態）が１に設定され、条件コード１が設定される。
・構成内の全てのＣＰＵのアーキテクチャ・モードがコードで指定されているものに設定される（例えば、操作を制御するためのＰＳＷのビット１２は、指定されたアーキテクチャ・モードに設定され、及び／又は、コンピューティング環境内の別の表示は、指定されたアーキテクチャ・モードを示すように設定される）。
・指令によりアーキテクチャ・モードがＥＳＡ／３９０からｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに変更され、コードが１である場合は、構成内の各ＣＰＵについて、８バイトの現ＰＳＷは１６バイトのＰＳＷに変更され、１６バイトＰＳＷのビットは、以下のように設定される。：即ち、ビット０−１１及び１３−３２は８バイトＰＳＷの同じビットと等しくなるように設定され、ビット１２及びビット３３−９６は０に設定され、ビット９７−１２７は８バイトＰＳＷのビット３３−６３と等しくなるように設定される。また、ＥＳＡ／３９０プリフィックスのビット１９（これは、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅプリフィックスのビット５１になる）は、０に設定される。
【０１２９】
コードが２である場合、Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒを実行しているＣＰＵのＰＳＷ及び全てのＣＰＵのプリフィックス値は、コード１の場合におけるように設定される。構成内の他の全てのＣＰＵの各々について、ＰＳＷは、キャプチャされたｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ・ＰＳＷレジスタの値を有するように設定される。しかしながら、アーキテクチャ・モードの移行時に又はその後、ＣＰＵが、ＣＰＵリセット以外のリセットを実行した場合、キャプチャされたｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ・ＰＳＷレジスタは全て０に設定された。
・指令により、アーキテクチャ・モードがｚ／ＡｒｃｈｉｔｅｃｔｕｒｅからＥＳＡ／３９０に変更された場合、構成内の各ＣＰＵについて、（１）Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒを実行しているＣＰＵの場合に更新されたＰＳＷである現ＰＳＷが、キャプチャされたｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ・ＰＳＷレジスタ内に保存され、（２）８バイトＰＳＷのビットを以下のように設定すること：即ち、ビット０−１１及び１３−３２は１６バイトＰＳＷの同じビットと等しくなるように設定され、ビット１２は１に設定し、ビット３３−６３は１６バイトＰＳＷのビット９７−１２７と等しくなるように設定することにより、１６バイトＰＳＷが８バイトＰＳＷに変更される。ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅプリフィックスのビット５１（これは、ＥＳＡ／３９０プリフィックスのビット１９になる）は、変更されないままである。
・構成内の全てのＣＰＵのＡＬＢ及びＴＬＢの内容がクリアされる。
・構成内の全てのＣＰＵで、シリアル化及びチェックポイント同期化機能が実行される。
【０１３０】
指令により、アーキテクチャ・モードがｚ／ＡｒｃｈｉｔｅｃｔｕｒｅからＥＳＡ／３９０に変更され、Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ命令により命令フェッチＰＥＲイベントが発生した場合、この命令のアドレスの右端３１ビットだけが、ＥＳＡ／３９０  ＰＥＲアドレス・フィールドに格納される。
【０１３１】
本発明の１つの好ましい実施形態において、ＣＺＡＭでは、以下が必須条件である。：即ち、他の全てのＣＰＵの各々が停止又はチェック停止状態のいずれかにあり、他の条件が指令の受け入れを妨げない。ＣＺＡＭファシリティがインストールされているとき、ＥＳＡ／３９０モードに戻ることは許容されないので、コード０は受け入れられず、ＣＰＵは既にｚ／Ａｒｃｈｉｔｅｃｔｕｒｅアーキテクチャ・モードにあるので、コード１及び２の指定は完了をもたらし、無効パラメータ及び条件コード１を示す。Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ指令により通常検証される他の必須条件は、チェックされることも又はされないこともある。本発明のさらに別の好ましい実施形態において、コード１及び２でのＳＩＧＰは、更なる表示なしに、成功裏の完了を示す。
【０１３２】
図１３を参照して、Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ指令コードについてのＳＩＧＰ命令の実行と関連した処理の本発明の１つの好ましい実施形態を説明する。図１３を参照すると、コンピューティング環境のプロセッサが、ＳＩＧＰ命令を実行し、アーキテクチャ設定操作を示す指令コードを取得する（ステップ８５０）。一例において、指令コードは、ＳＩＧＰ命令の第２オペランド・アドレスに含められる。
【０１３３】
付加的に、例えばＳＩＧＰ命令が指定するパラメータ・レジスタから、切り替えられる要求されたアーキテクチャ・モードが取得される（ステップ８５２）。さらに、ＣＺＡＭのような構成アーキテクチャ・モード・ファシリティがインストールされているかどうかについての判断がなされる（問い合わせ８５４）。これは、一例において、ファシリティ・インジケータにより判断される。
【０１３４】
ＣＺＡＭがインストールされていない場合、ＣＰＵは既に要求されたアーキテクチャ・モードにあるかどうかについての更なる判断がなされる（問い合わせ８５６）。ＣＰＵが既に要求されたアーキテクチャ・モードにある場合、状況が、例えばＳＩＧＰ命令に指定されたレジスタ内に与えられ（ステップ８５８）、状況はエラーとして扱われる（ステップ８６０）。しかしながら、ＣＰＵが要求されたモードにない場合（問い合わせ８５６）、構成されるコンピューティング環境の他のＣＰＵが停止状態等にあるかどうかなど、命令により指定された他の条件が満たされるかどうかについての判断がなされる（問い合わせ８６２）。条件が満たされない場合、処理はステップ８５８に続く。そうでない場合には、指令は受け入れられ（ステップ８６４）、アーキテクチャ・モードが変更される。従って、上述のようにＰＳＷが設定され（ステップ８６６）、命令のこの態様についての処理は終了する（ステップ８６８）。
【０１３５】
問い合わせ８５４に戻ると、ＣＺＡＭがインストールされている場合、ＣＰＵが要求されたモードにあるかどうかについての判断がなされる（問い合わせ８７０）。ＣＰＵが既に要求されたモードにある場合、一例において、状況が与えられ、ＣＰＵは既に要求されたアーキテクチャ・モード（例えば、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ）にある（ステップ８７２）。しかしながら、この実施形態において、この状況は受け入れ可能であり、エラーとして扱われない（ステップ８７４）。これは無視されるか、又は別の実施形態においては、非エラー・コードである条件コードを与えることができる。本発明のさらに別の実施形態において、状況は、成功裏の完了を示すにすぎない。ＣＰＵが既に要求されたアーキテクチャ・モードにあったとしても、非エラーを示すために、他の可能性も存在する。
【０１３６】
問い合わせ８７０に戻ると、しかしながら、ＣＰＵが要求されたモードにない場合、１つのアーキテクチャ・モード（例えば、ＥＳＡ／３９０）に戻るのは不正（illegal）であるので、指令は受け入れられない（ステップ８７６）。状況が与えられ（ステップ８７８）、これはエラーであるとみなされる（ステップ８８０）。
【０１３７】
本発明の１つの好ましい実施形態において、ＣＺＡＭが選択可能でないファシリティとしてシステム内にあるとき、問い合わせ８５４を省略することができ、制御は、ステップ８５２から直接ステップ８７０に進むことができる。こうした実施形態において、ステップ８５４乃至８６８は実施されないことがある。
【０１３８】
本発明の別の好ましい実施形態において、現在のアーキテクチャ・モードに切り替えるための指令を受け取った場合、指令を受け入れることができず、エラーが示されることがある（ステップ８７４）。
【０１３９】
ＣＺＡＭのインストールに基づいて変更できる他の挙動、プロセス、及び／又は操作は、以下を含むことができる。：即ち、
（８）ファシリティ・ビットへの変更：例えばビット１３８などの新しいビットが、構成ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅアーキテクチャ・モード・ファシリティを示すようにファシリティ・ビットに加えられ、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅアーキテクチャ・モードがアクティブかどうかを示すビット２が１（アクティブを示す）に設定される。
【０１４０】
本発明の少なくとも１つの好ましい実施形態において、ＣＺＡＭファシリティは、ＬＰＡＲ及びゲスト−１（第１レベル・ゲスト−ハイパーバイザによって開始されるゲスト（例えば、Ｓｔａｒｔ  Ｉｎｔｅｒｐｒｅｔｉｖｅ  Ｅｘｅｃｕｔｉｏｎ（ＳＩＥ）命令を発行することによって））に対してインストールされているが、ゲスト−２（第２レベルのゲスト−別のゲストによって開始されるゲスト（例えば、ＳＩＥ命令を発行することによって）に対してはインストールされていない。
【０１４１】
本発明の少なくとも１つの好ましい実施形態において、ＣＺＡＭがインストールされ、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅゲスト−２が開始される場合、ゲストは、図９の技術に従ってｚ／Ａｒｃｈｉｔｅｃｔｕｒｅモードで開始される。しかしながら、ＣＺＡＭがインストールされ、ＥＳＡ／３９０ゲスト−２が開始される場合、この実施形態では、ゲストは、ＣＺＡＭに影響を受けないので、図６の技術に従ってＥＳＡ／３９０モードで開始される。従って、ホスト及び第１レベル・ゲストはＣＺＡＭによって制御され、そこで、これらは、アーキテクチャ・モードのプリファレンスに関係なく、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅで開始／リセット等される（例えば、ＥＳＡ／３９０はサポートされないので、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅにあるように強制される）が、第２レベルのＥＳＡ／３９０ゲストは、ＣＺＡＭにより影響を受けず、ＥＳＡ／３９０において開始／リセット等を続行する。
【０１４２】
本明細書で説明されるように、構成ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅアーキテクチャ・モード・ファシリティのような構成アーキテクチャ・モード・ファシリティをインストールすることに基づいて、複数のアーキテクチャ・モード用に構成されたコンピューティング環境の特定のプロセス、動作、及び／又は挙動が変更される。１つのこうしたプロセスは、パワーオン・プロセスである。構成アーキテクチャ・モード・ファシリティがインストールされたときのパワーオン・プロセスと関連した処理のさらなる態様が、図１４を参照して説明される。
【０１４３】
図１４を参照すると、最初に、構成アーキテクチャ・モード・ファシリティが、複数のアーキテクチャ・モード用に構成されたコンピューティング環境にインストールされ、かつ、１つのアーキテクチャ・モード（例えば、ＥＳＡ／３９０などのレガシー・モード）でコンピューティング環境をパワーオンするための定められたパワーオン・シーケンスを有するかどうかについての判断がなされる（ステップ９００）。１つのアーキテクチャ・モードは、第１の命令セット・アーキテクチャを含み、３１ビット・アドレッシング、３２ビット汎用レジスタの使用、及び種々のフィーチャのような第１セットのサポートされたフィーチャを有する。構成アーキテクチャ・モード・ファシリティがインストールされていないと判断される場合（問い合わせ９０２）、図６−図７を参照して説明されるように、現在のパワーオン・シーケンスが実行される（ステップ９０４）。そうでない場合、コンピューティング環境は、１つのアーキテクチャ・モード（例えば、レガシーＥＳＡ／３９０モード）の使用を制限するように再構成される（ステップ９０６）。再構成は、例えば、別のアーキテクチャ・モード（例えば、後の又は強化されたバージョンのアーキテクチャ・モード（例えばｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ））でコンピューティング環境をパワーオンするための異なるパワーオン・シーケンスを選択することを含む（ステップ９０８）。別のアーキテクチャ・モードは、第２の命令セット・アーキテクチャ・モードを含み、６４ビット・アドレッシング、６４ビットの汎用レジスタの使用、及び動的アドレス変換のような種々のファシリティ、及び／又は他のファシリティのような第２セットのサポートされたフィーチャを有する。次に、例えば図９−図１０を参照して説明されるように、パワーオン・シーケンスは、１つのアーキテクチャ・モードの使用を制限する他のアーキテクチャ・モードでコンピューティング環境をパワーオンするように実行される（ステップ９１０）。一例では、この実行は、ＰＳＷをロードし、ビット１２を反転させることを含む。その後、コンピューティング環境は、他のアーキテクチャ・モード（例えば、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ）で実行される（ステップ９１２）。
【０１４４】
更に別の実施形態において、図１５を参照すると、再構成することは、切り替え操作をディスエーブルにすることを含む、１つのアーキテクチャ・モードをサポートする１つ又は複数の操作をディスエーブルにすることを含む（ステップ１０００）。例えば、１つのアーキテクチャ・モード、例えばＥＳＡ／３９０に再び切り替える要求に基づいてエラーを与えるように、Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ命令が変更される。
【０１４５】
さらに、１つのアーキテクチャ・モードの代わりに他のアーキテクチャ・モードでパワーオンするのをサポートするために、１つ又は複数の他のプロセス、操作及び／又は挙動が変更され、１つのアーキテクチャ・モードの使用が制限される（ステップ１００２）。これらの１つ又は複数の他のプロセスは、例えば、ＣＰＵを、既に構成された状態にあるＣＰＵのアーキテクチャ・モードにするＣＰＵ  ＳＣＬＰ構成コマンド（１００４）；それぞれ、アーキテクチャ・モードをクリア・リセット又は初期ＣＰＵリセットに定められるものとして設定するオペレータ・ファシリティである、ロード・クリア・キー及びロード・ノーマル・キー（１００６）；１つのアーキテクチャ・モードから同じアーキテクチャ・モードへの切り替えを受け入れて、状況が与えられ、エラーとして扱われないように変更されるＳｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ命令（１００８）；及び構成アーキテクチャ・モード・ファシリティを示すようにファシリティ・インジケータに付加されるファシリティ・ビット（１０１０）を含む。
【０１４６】
本明細書で説明されるように、構成アーキテクチャ・モード・ファシリティのインストールにより影響を受ける別の操作は、リセット操作である。図１６を参照して、リセットと関連した処理の本発明の１つの好ましい実施形態を説明する。最初に、プロセッサは、リセット操作を取得する（例えば、受け取る、提供される、又は他の方法で取得する（ステップ１１００）。本明細書で説明されるように、リセット操作は、コンピューティング環境を他のアーキテクチャ・モード（例えば、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ）にリセットするために実行される（ステップ１１０２）。これは、例えば、アーキテクチャのための適切な形式であるＰＳＷを使用し、ＰＳＷのビット１２を０に設定することを含む。
【０１４７】
本明細書で詳細に説明されるのは、複数のアーキテクチャ・モード用に構成されたコンピューティング環境によりサポートされるアーキテクチャの特定のアーキテクチャ態様の使用を制限する構成アーキテクチャ・モード・ファシリティである。一例では、構成アーキテクチャ・モード・ファシリティがインストールされ、複数のアーキテクチャ構成をサポートするコンピューティング環境を、アーキテクチャ・モードの一方（例えば、レガシー・モード）の態様はもはやサポートされないが、別のアーキテクチャ・モード（例えば、強化されたアーキテクチャ・モード）はサポートされるままであるように再構成することができる。コンピューティング環境がそのように構成される場合、コンピューティング環境が、再びサポートされないアーキテクチャ・モードに再構成することが防止される。
【０１４８】
更に別の実施形態において、コンピューティング環境は、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅのような選択されたアーキテクチャ・モードで動的に構成される。この実施形態において、ＣＺＡＭファシリティがインストールされているかどうかをチェックすることができず、及び／又は明示的なＳＩＧＰ  Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ指令を実行することはできない。図１７を参照して、この構成を実施するための論理の本発明の１つの好ましい実施形態を説明する。
【０１４９】
図１７を参照すると、本発明の１つの好ましい実施形態において、プロセッサは、選択されたアーキテクチャ・モード（例えば、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ）で操作を実行するようにコンピューティング環境を構成する（ステップ１２００）。構成することは、例えば、格納されたプログラム状況ワードを用いて、コンピューティング環境の初期化を開始することを含む（ステップ１２０２）。一例において、格納されたプログラム状況ワードは、選択されたアーキテクチャ・モードとは異なるアーキテクチャ・モードの形式を有する。従って、格納されたプログラム状況ワードは、選択されたアーキテクチャ・モードとは異なるアーキテクチャ・モードの形式を有すると判断される（ステップ１２０４）。その判断に基づいて、格納されたプログラム状況ワードは、選択されたアーキテクチャ・モードの形式を有するように自動的に修正される（ステップ１２０６）。自動的に修正することは、選択されたアーキテクチャへ切り替える明示的な要求なしに行われる。修正されたプログラム状況ワードを用いたコンピューティング環境の初期化を完了し、選択されたアーキテクチャ・モードでコンピューティング環境を構成する（ステップ１２０８）。
【０１５０】
本発明の１つの好ましい実施形態において、ＣＺＡＭファシリティは、例えば、次の同時出願された、同一出願人による、Ｇａｉｎｅｙ他の「Ａｒｃｈｉｔｅｃｔｕｒａｌ  Ｍｏｄｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ」という名称の出願（米国特許出願第１４／２１７８４０号）及びＭｉｃｈａｅｌ  Ｋ．Ｇｓｃｈｗｉｎｄによる「Ｃｏｍｍｏｎ  Ｂｏｏｔ  Ｓｅｑｕｅｎｃｅ  ｆｏｒ  Ｃｏｎｔｒｏｌ  Ｕｔｉｌｉｔｙ  Ａｂｌｅ  ｔｏ  ｂｅ  Ｉｎｉｔｉａｌｉｚｅｄ  ｉｎ  Ｍｕｌｔｉｐｌｅ  Ａｒｃｈｉｔｅｃｔｕｒｅｓ」という名称の出願（米国特許出願第１４／２１７８００号）に記載される、Ｎｏ−ＤＡＴファシリティ及び／又は制御ユーティリティ・ブート・ファシリティを含む１つ又は複数の他のファシリティと共に使用することができる。
【０１５１】
図１８を参照すると、一例において、コンピュータ・プログラム製品１３００は、例えば、１つ又は複数の実施形態を提供し、容易にするように、その上にコンピュータ可読プログラム・コード手段、論理及び／又は命令１３０４を格納するための、１つ又は複数の一時的でないコンピュータ可読ストレージ媒体１３０２を含む。
【０１５２】
本発明は、システム、方法、及び／又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含むことができる。
【０１５３】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用するための命令を保持及び格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの、即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、クリア可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク型読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、パンチカード又は命令がその上に記録された溝の中の隆起構造などの機械的にエンコードされるデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で用いられる場合、コンピュータ可読ストレージ媒体は、電波若しくは他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を介して伝搬する電磁波（例えば、光ファイバ・ケーブルの中を通る光パルス）、又は配線を介して伝送される電気信号などの、一時的な信号自体と解釈されるべきではない。
【０１５４】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスにダウンロードしてもよく、又は、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び／又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードしてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び／又はエッジ・サーバを含むことができる。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インタフェースが、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体に格納するように、コンピュータ可読プログラム命令を転送する。
【０１５５】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データとすることができ、又は、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語若しくは類似のプログラミング言語のような従来の手続き型プログラミング言語を含む、１つ又は複数のプログラミング言語の任意の組み合わせで書かれたソース・コード若しくはオブジェクト・コードのいずれかとすることができる。コンピュータ可読プログラム命令は、全体をユーザのコンピュータ上で実行することができ、独立型ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で実行されることができ、一部をユーザのコンピュータ上で実行し、一部を遠隔コンピュータ上で実行することができ、又は全体を遠隔コンピュータ若しくはサーバ上で実行することができる。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、又は、外部コンピュータに対して（例えば、インターネット・サービス・プロバイダを使用してインターネット経由で）接続が行われてもよい。幾つかの実施形態においては、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はプログラマブル論理アレイ（ＰＬＡ）を含む電子回路が、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによって、コンピュータ可読プログラム命令を実行することができる。
【０１５６】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【０１５７】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するための手段を生成するようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、及び／又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、その結果、命令をその内部に格納したコンピュータ可読ストレージ媒体が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装する命令を含む製品を含むようにすることもできる。
【０１５８】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、そのコンピュータ、他のプログラム可能装置、又は他のデバイス上で一連の動作ステップを行わせてコンピュータ実装プロセスを生成し、それにより、そのコンピュータ、他のプログラム可能装置、又は他のデバイス上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実施するようにすることもできる。
【０１５９】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法及びコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実行するための１つ又は複数の実行可能な命令を含む、モジュール、セグメント又は命令の一部を表すことができる。幾つかの代替的な実施において、ブロック内に記された機能は、図面内に記された順序とは異なる順序で行われることもある。例えば、連続して示された２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックは、ときには逆の順序で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、並びにブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を行う専用ハードウェアベースのシステムにより実装すること、又は専用ハードウェアとコンピュータ命令との組み合わせによって実施することができることにも留意されたい。
【０１６０】
上記に加えて、１つ又は複数の態様は、顧客環境の管理を提供するサービス・プロバイダによって供与、提供、配置、管理、サービス等を行うことができる。例えば、サービス・プロバイダは、１又は複数の顧客のために１つ又は複数の態様を実施するコンピュータ・コード及び／又はコンピュータ・インフラストラクチャの作成、保守、サポート等を行うことができる。見返りに、サービス・プロバイダは、例として、予約申し込み及び／又は報酬契約の下で顧客から支払いを受けることができる。付加的に又は代替的に、サービス・プロバイダは、１又は複数の第三者に対する広告内容の販売から支払いを受けることができる。
【０１６１】
一態様において、１つ又は複数の実施形態を実施するために、アプリケーションを配備することができる。一例として、アプリケーションの配備は、１つ又は複数の実施形態を実施するように動作可能なコンピュータ・インフラストラクチャを提供することを含む。
【０１６２】
更に別の態様として、コンピュータ可読コードをコンピュータ・システムに統合することを含む、コンピュータ・インフラストラクチャを配置することができ、そこでは、コードは、コンピューティング・システムと協働して、１つ又は複数の実施形態を実施することができる。
【０１６３】
更に別の態様として、コンピュータ可読コードをコンピュータ・システムに統合することを含む、プロセスを提供することができる。コンピュータ・システムは、コンピュータ可読媒体を含み、ここで、コンピュータ媒体は、１つ又は複数の実施形態を含む。コードは、コンピュータ・システムと協働して、１つ又は複数の実施形態を実施することができる。
【０１６４】
種々の実施形態が上述されたが、これらは例にすぎない。例えば、１つ又は複数の実施形態を組み込み、使用するために、他のアーキテクチャのコンピューティング環境を使用することもできる。さらに、異なる命令、命令形式、命令フィールド、及び／又は命令の値を使用することができる。さらにまた、他のタイプのプロセス、操作及び／又は挙動がＣＡＭのインストールにより影響を受けることがある。多くの変形が可能である。
【０１６５】
さらに、他のタイプのコンピューティング環境の利益を得、これを使用することができる。一例として、プログラム・コードを格納及び／又は実行するのに適しており、システム・バスを介してメモリ要素に直接又は間接的に結合された少なくとも２つのプロセッサを含む、データ処理システムを使用することができる。メモリ要素は、例えば、プログラム・コードの実際の実行中に用いられるローカル・メモリ、大容量記憶装置、及び実行中に大容量記憶装置からコードを取り出さなければならない回数を減らすために少なくとも幾つかのプログラム・コードの一時的なストレージを提供するキャッシュ・メモリを含む。
【０１６６】
入力／出力即ちＩ／Ｏデバイス（これらに限定されるものではないが、キーボード、ディスプレイ、ポインティング・デバイス、ＤＡＳＤ、テープ、ＣＤ、ＤＶＤ、サムドライブ及び他のメモリ媒体等）は、直接システムに結合することもでき、又は介在するＩ／Ｏコントローラを介してシステムに結合することができる。ネットワーク・アダプタをシステムに結合させて、データ処理システムが、介在する私的ネットワーク又は公衆ネットワークを通じて他のデータ処理システム又は遠隔プリンタ若しくはストレージ・デバイスに結合できるようにすることもできる。モデム、ケーブル・モデム及びイーサネット・カードは、ネットワーク・アダプタの利用可能なタイプのうちのほんの数例である。
【０１６７】
図１９を参照すると、これは、１つ又は複数の実施形態を実装するためのホスト・コンピュータ・システム５０００の代表的なコンポーネントが描かれる。代表的なホスト・コンピュータ５０００は、コンピュータ・メモリ（即ち、中央ストレージ）５００２と通信する１つ又は複数のＣＰＵ５００１と、他のコンピュータ若しくはＳＡＮなどとの通信のためのストレージ媒体デバイス５０１１及びネットワーク５０１０に対するＩ／Ｏインターフェースとを含む。ＣＰＵ５００１は、アーキテクチャ化命令セット及びアーキテクチャ化機能を有するアーキテクチャに準拠している。ＣＰＵ５００１は、アクセス・レジスタ変換（ＡＲＴ）５０１２を有し、これは、プログラム・アドレス（仮想アドレス）をメモリの実アドレスに変換するための動的アドレス変換（ＤＡＴ）５００３により用いられるアドレス空間を選択するためのＡＲＴルックアサイド・バッファ（ＡＬＢ）５０１３を含む。ＤＡＴは、典型的には、変換をキャッシュに入れるための変換ルックアサイド・バッファ（ＴＬＢ）５００７を含み、後でコンピュータ・メモリ５００２のブロックにアクセスしたときにアドレス変換による遅延を必要とせずに済むように変換をキャッシュに入れるための、変換ルックアサイド・バッファ（ＴＬＢ）５００７を含む。典型的には、キャッシュ５００９は、コンピュータ・メモリ５００２とプロセッサ５００１との間で用いられる。キャッシュ５００９は、１つより多くのＣＰＵが利用できる大型キャッシュと、大型キャッシュと各ＣＰＵとの間のより小型で高速な（下位レベルの）キャッシュとを有する階層構造とすることができる。いくつかの実施において、下位レベルのキャッシュは、命令フェッチ及びデータ・アクセスのための個別の下位レベル・キャッシュを提供するように分割される。
【０１６８】
本発明の１つの好ましい実施形態において、命令は、命令フェッチ・ユニット５００４によりメモリ５００２からキャッシュ５００９を介してフェッチされる。命令は、命令デコード・ユニット５００６内でデコードされ（幾つかの実施形態においては他の命令と共に）命令実行ユニット５００８にディスパッチされる。典型的には、幾つかの実行ユニット５００８、例えば、算術演算実行ユニット、浮動小数点実行ユニット及び分岐命令実行ユニットが用いられる。命令は、実行ユニットにより、必要に応じて命令が指定するレジスタ又はメモリからのオペランドにアクセスすることにより実行される。オペランドがメモリ５００２からアクセスされる（ロードされる又はストアされる）場合には、典型的には、ロード／ストア・ユニット５００５が、実行されている命令の制御下でアクセスを取り扱う。命令は、ハードウェア回路若しくは内部マイクロコード（ファームウェア）、又はこの両方の組み合わせにより実行することができる。
【０１６９】
既述のように、コンピュータ・システムは、ローカル（又は、主）ストレージ内の情報、並びにアドレス指定、保護、並びに参照及び変更記録を含む。アドレス指定の幾つかの態様は、アドレスの形式、アドレス空間の概念、アドレスの種々のタイプ及び１つのタイプのアドレスが別のタイプのアドレスに変換される方法を含む。主ストレージの一部は、恒久的に割り当てられたストレージ位置を含む。主ストレージは、システムに、直接アドレス可能なデータの高速アクセス・ストレージを提供する。データ及びプログラムの両方とも、これらが処理される前に（入力デバイスから）主ストレージにロードされる。
【０１７０】
主ストレージは、キャッシュと呼ばれることがある、１つ又は複数のより小型の高速アクセス・バッファ・ストレージを含むことができる。キャッシュは、典型的には、ＣＰＵ又はＩ／Ｏプロセッサと物理的に関連付けられる。物理的構造の、性能を除いた効果及び別個のストレージ媒体の使用は、一般に、プログラムにより観察することができない。
【０１７１】
命令及びデータ・オペランドに対して、別個のキャッシュを維持することができる。キャッシュ内の情報は、キャッシュ・ブロック又はキャッシュ・ライン（又は、簡単に言えばライン）と呼ばれる整数境界上の連続バイトで維持される。モデルは、キャッシュ・ラインのサイズをバイト単位で戻すＥＸＴＲＡＣＴ  ＣＡＣＨＥ  ＡＴＴＲＩＢＵＴＥ命令を提供することができる。モデルはまた、データ又は命令キャッシュへのストレージのプリフェッチ又はキャッシュからのデータの解放を行うＰＲＥＦＥＴＣＨ  ＤＡＴＡ及びＰＲＥＦＥＴＣＨ  ＤＡＴＡ  ＲＥＬＡＴＩＶＥ  ＬＯＮＧ命令を提供することもできる。
【０１７２】
ストレージは、ビットの水平の長い文字列として見ることができる。殆どの操作では、ストレージへのアクセスは、左から右への順で進行する。ビットの文字列は、８ビット単位で細分される。この８ビットの単位はバイトと呼ばれ、これは全ての情報形式の基本構成単位である。ストレージ内の各々のバイト位置は、負でない固有の整数により識別され、この整数がバイト位置のアドレス、即ち、簡単にバイト・アドレスである。隣接するバイト位置は連続するアドレスを有し、左端の０から始まって左から右へ順に進行する。アドレスは、符号なしの２進整数であり、２４ビット、３１ビット又は６４ビットである。
【０１７３】
情報は、ストレージとＣＰＵ又はチャネル・サブシステムとの間で、一度に１バイトずつ、又は１グループ分のバイトで伝送される。特に断りのない限り、例えば、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅにおいて、ストレージ内のバイト・グループは、グループの左端のバイトによりアドレス指定される。グループ内のバイト数は、実行される操作により暗黙的に決定される場合、又は明示的に決定される場合がある。ＣＰＵ操作に使用される場合、バイト・グループはフィールドと呼ばれる。各々のバイト・グループ内において、例えば、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅにおいて、ビットは、左から右の順に番号付けされる。ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅにおいて、左端のビットを「最上位」ビットと呼び、右端のビットを「最下位」ビットと呼ぶことがある。しかしながら、ビット番号はストレージ・アドレスではない。アドレス指定できるのはバイトだけである。ストレージ内の１つのバイトの個々のビットに対して操作を行うためには、そのバイト全体にアクセスされる。１バイトの中のビットには、（ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅにおいて）左から右に０から７までの番号が付けられる。１つのアドレスの中のビットには、２４ビット・アドレスの場合は、８−３１又は４０−６３の番号が付けられ、又は３１ビット・アドレスの場合は、１−３１又は３３−６３の番号が付けられ、又は６４ビット・アドレスの場合は、０−６３の番号が付けられる。一例においては、ビット８−３１及び１−３１は、３２ビット長の記憶位置（例えばレジスタ）にあるアドレスに適用され、一方、ビット４０−６３及び３３−６３は、６４ビット長の記憶位置にあるアドレスに適用される。複数バイトの任意の他の固定長形式において、形式を構成するビットは、０から始まって連続的に番号が付けられる。エラー検出のため、また好ましくは訂正のため、各々のバイト又はバイト・グループと共に１又は複数の検査ビットを伝送することができる。こうした検査ビットは、マシンにより自動的に生成され、プログラムにより直接制御することはできない。ストレージ容量は、バイト数で表現される。ストレージ・オペランド・フィールドの長さが命令のオペコードで暗黙指定される場合、そのフィールドは固定長を有するといわれ、この長さは１バイト、２バイト、４バイト、８バイト又は１６バイトとすることができる。幾つかの命令に対しては、より大きいフィールドが暗黙指定される。ストレージ・オペランドの長さが暗黙指定されず、明示的に指定される場合は、そのフィールドは可変長を有するといわれる。可変長オペランドは、１バイトのインクリメント（又は幾つかの命令では、２バイトの倍数又は他の倍数で）で長さが変化し得る。情報がストレージ内に配置されると、ストレージへの物理的パスの幅が格納されるフィールドの長さより大きい場合であっても、指定したフィールドに含まれているバイト位置の内容のみが置き換えられる。
【０１７４】
情報の特定の単位は、ストレージ内の整数境界上にあるべきである。境界は、そのストレージ・アドレスがバイトでの単位の長さの倍数である場合に、情報の単位に対して整数であると呼ばれる。整数境界上にある２バイト、４バイト、８バイト、１６バイト及び３２バイトのフィールドには、特別な名称が与えられる。ハーフワードは、２バイト境界上にある２個の連続したバイトのグループであり、これは命令の基本構成単位である。ワードは、４バイト境界上にある４個の連続したバイトのグループである。ダブルワードは、８バイト境界上にある８個の連続したバイトのグループである。クワッドワードは、１６バイト境界上にある１６個の連続したバイトのグループである。オクトワードは、３２バイト境界上にある３２個の連続したバイトのグループである。ストレージ・アドレスが、ハーフワード、ワード、ダブルワード、クワッドワード及びオクトワードを指定するとき、そのアドレスの２進表現では、それぞれ１個、２個、３個、４個又は５個の右端の０ビットを含む。命令は、２バイト整数境界上にあるべきである。殆どの命令のストレージ・オペランドは、境界位置合わせ要件を有さない。
【０１７５】
命令及びデータ・オペランドに対して別個のキャッシュを実装するデバイスにおいては、ストアが後にフェッチされる命令を変更するかどうかに関係なく、プログラムが、後にフェッチされるキャッシュ・ラインに格納される場合、著しい遅延が生じ得る。
【０１７６】
一例において、実施形態は、ソフトウェア（ライセンス内部コード、ファームウェア、マイクロコード、ミリコード、ピココードなどとも呼ばれる場合があるが、そのいずれも１つ又は複数の実施形態と整合性がある）により実施することができる。図１９を参照すると、１つ又は複数の態様を具体化するソフトウェア・プログラム・コードは、ＣＤ−ＲＯＭドライブ、テープドライブ、又はハードドライブといった長期ストレージ媒体デバイス５０１１から、ホスト・システム５０００のプロセッサ５００１によりアクセスすることができる。ソフトウェア・プログラム・コードは、ディスケット、ハードドライブ、又はＣＤ−ＲＯＭのようなデータ処理システムと共に使用するための種々の周知の媒体のいずれかの上で具体化することができる。コードは、こうした媒体上に分散させても、又はコンピュータ・メモリ５００２からユーザに分散させても、又はこうした他のシステムのユーザが使用するために、ネットワーク５０１０上の１つのコンピュータ・システムのストレージから他のコンピュータ・システムに分散させてもよい。
【０１７７】
ソフトウェア・プログラム・コードは、種々のコンピュータ・コンポーネント及び１つ又は複数のアプリケーション・プログラムの機能及び相互作用を制御するオペレーティング・システムを含む。プログラム・コードは、通常、ストレージ媒体デバイス５０１１から相対的により高速のコンピュータ・ストレージ５００２にページングされ、そこでプロセッサ５００１による処理のために利用可能になる。ソフトウェア・プログラム・コードをメモリ内、物理的媒体上で具体化し、及び／又は、ネットワークを介してソフトウェア・コードを配布する技術及び方法は周知であり、ここではこれ以上論じない。プログラム・コードは、有形の媒体（これらに限定されるものではないが、電子メモリ・モジュール（ＲＡＭ）、フラッシュ・メモリ、コンパクト・ディスク（ＣＤ）、ＤＶＤ、磁気テープ等）上に作成され格納されたとき、「コンピュータ・プログラム」と呼ばれることが多い。コンピュータ・プログラム媒体は、典型的には、処理回路による実行のために、好ましくはコンピュータ・システム内の処理回路によって読み取り可能である。
【０１７８】
図２０は、１つ又は複数の実施形態を実施することができる代表的なワークステーション又はサーバ・ハードウェア・システムを示す。図２０のシステム５０２０は、随意的な周辺機器を含む、パーソナル・コンピュータ、ワークステーション、又はサーバなどの代表的なベース・コンピュータ・システム５０２１を含む。ベース・コンピュータ・システム５０２１は、１つ又は複数のプロセッサ５０２６と、周知の技術に従ってプロセッサ５０２６とシステム５０２１の他のコンポーネントを接続し、これらの間の通信を可能にするために用いられるバスとを含む。バスは、プロセッサ５０２６を、ハードドライブ（例えば、磁気媒体、ＣＤ、ＤＶＤ及びフラッシュ・メモリのいずれかを含む）又はテープドライブを含むことができる、メモリ５０２５及び長期ストレージ５０２７に接続する。システム５０２１はまた、バスを介して、マイクロプロセッサ５０２６を、キーボード５０２４、マウス５０２３、プリンタ／スキャナ５０３０、及び／又はタッチ・センシティブ・スクリーン、デジタル化された入力パッド等のいずれかのユーザ・インターフェース機器とすることができる他のインターフェース機器といった、１つ又は複数のインターフェース機器に接続する、ユーザ・インターフェース・アダプタを含むこともできる。バスはまた、ディスプレイ・アダプタを介して、ＬＣＤスクリーン又はモニタなどのディスプレイ装置５０２２をマイクロプロセッサ５０２６にも接続する。
【０１７９】
システム５０２１は、ネットワーク５０２９と通信する５０２８ことができるネットワーク・アダプタを介して、他のコンピュータ又はコンピュータ・ネットワークと通信することができる。例示的なネットワーク・アダプタは、通信チャネル、トークン・リング、イーサネット又はモデムである。代替的に、システム５０２１は、ＣＤＰＤ（セルラー・デジタル・パケット・データ）カードのような無線インターフェースを用いて通信することもできる。システム５０２１は、ローカル・エリア・ネットワーク（ＬＡＮ）又は広域ネットワーク（ＷＡＮ）又はシステム５０２１内のこうした他のコンピュータと関連付けることができ、又は、別のコンピュータ等とのクライアント／サーバ構成におけるクライアントとすることができる。これら構成の全て、並びに、適切な通信ハードウェア及びソフトウェアは、当技術分野において周知である。
【０１８０】
図２１は、１つ又は複数の実施形態を実施することができるデータ処理ネットワーク５０４０を示す。データ処理ネットワーク５０４０は、各々が複数の個々のワークステーション５０４１、５０４２、５０４３、５０４４を含むことができる、無線ネットワーク及び有線ネットワークのような複数の個々のネットワークを含むことができる。さらに、当業者であれば理解するように、１つ又は複数のＬＡＮを含ませることができ、そこで、ＬＡＮは、ホスト・プロセッサに結合された複数のインテリジェント・ワークステーションを含むことができる。
【０１８１】
さらに図２１を参照すると、ネットワークはまた、ゲートウェイ・コンピュータ（クライアント・サーバ５０４６）、又はアプリケーション・サーバ（データ・リポジトリにアクセスすることができ、かつ、ワークステーション５０４５から直接アクセスすることもできる遠隔サーバ５０４８）のような、メインフレーム・コンピュータ又はサーバを含むこともできる。ゲートウェイ・コンピュータ５０４６は、各々の個々のネットワークへの入力点のとして働く。ゲートウェイは、１つのネットワーク・プロトコルを別のものに接続するときに必要とされる。ゲートウェイ５０４６は、通信リンクによって別のネットワーク（例えば、インターネット５０４７）に結合できることが好ましい。ゲートウェイ５０４６はまた、通信リンクを用いて、１つ又は複数のワークステーション５０４１、５０４２、５０４３、５０４４に直接結合することもできる。ゲートウェイ・コンピュータは、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能なＩＢＭ  ｅＳｅｒｖｅｒ  Ｓｙｓｔｅｍ  ｚサーバを用いて実装することができる。
【０１８２】
図２０及び図２１を同時に参照すると、１つ又は複数の態様を具体化することができるソフトウェア・プログラム・コード５０３１には、一般的に、ＣＤ−ＲＯＭドライブ又はハードドライブといった長期ストレージ媒体５０２７から、システム５０２０のプロセッサ５０２６によってアクセスすることができる。ソフトウェア・プログラム・コードは、ディスケット、ハードドライブ、又はＣＤ−ＲＯＭといった、データ処理システムと共に用いるための種々の周知の媒体のいずれかの上で具体化することができる。コードは、そのような媒体上で分散させても、又はメモリからユーザ５０５０、５０５１に分散させても、又は、こうした他のシステムのユーザが用いるために、ネットワーク上の１つのコンピュータ・システムのメモリ若しくはストレージから他のコンピュータ・システムに分散させてもよい。
【０１８３】
代替的に、プログラム・コードをメモリ５０２５内で具体化し、プロセッサ・バスを用いてプロセッサ５０２６によってプログラム・コードにアクセスすることができる。このようなプログラム・コードは、種々のコンピュータ・コンポーネント及び１つ又は複数のアプリケーション・プログラム５０３２の機能及び相互作用を制御するオペレーティング・システムを含む。プログラム・コードは、通常、ストレージ媒体５０２７から高速メモリ５０２５にページングされ、そこでプロセッサ５０２６による処理のために利用可能になる。ソフトウェア・プログラム・コードをメモリ内、物理的媒体上で具体化し、及び／又は、ネットワークを介してソフトウェア・コードを配布する技術及び方法は周知であり、ここではこれ以上論じない。プログラム・コードは、有形の媒体（これらに限定されるものではないが、電子メモリ・モジュール（ＲＡＭ）、フラッシュ・メモリ、コンパクト・ディスク（ＣＤ）、ＤＶＤ、磁気テープなどを含む）に格納されたとき、「コンピュータ・プログラム」と呼ばれることが多い。コンピュータ・プログラム媒体は、典型的には、処理回路による実行のために、好ましくはコンピュータ・システム内の処理回路によって読み取り可能である。
【０１８４】
プロセッサが最も容易に利用できるキャッシュ（通常、プロセッサの他のキャッシュよりも高速で小さい）は、最下位（Ｌ１又はレベル１）のキャッシュであり、主ストア（主メモリ）は、最上位レベルのキャッシュ（３つのレベルがある場合にはＬ３）である。最下位レベルのキャッシュは、実行されるマシン命令を保持する命令キャッシュ（Ｉ−キャッシュ）と、データ・オペランドを保持するデータ・キャッシュ（Ｄ−キャッシュ）とに分割されることが多い。
【０１８５】
図２２を参照すると、プロセッサ５０２６についての例示的なプロセッサの実施形態が示される。典型的には、メモリ・ブロックをバッファに入れてプロセッサ性能を向上させるために、１つ又は複数のレベルのキャッシュ５０５３が用いられる。キャッシュ５０５３は、用いられる可能性が高いメモリ・データのキャッシュ・ラインを保持する高速バッファである。典型的なキャッシュ・ラインは、６４バイト、１２８バイト、又は２５６バイトのメモリ・データである。データをキャッシュに入れるのではなく、命令をキャッシュに入れるために、別個のキャッシュが用いられることが多い。キャッシュ・コヒーレンス（メモリ及びキャッシュ内のラインのコピーの同期）は、多くの場合、当技術分野において周知の種々の「スヌープ」アルゴリズムによって与えられる。プロセッサ・システムの主メモリ・ストレージ５０２５は、キャッシュと呼ばれることが多い。４つのレベルのキャッシュ５０５３を有するプロセッサ・システムにおいて、主ストレージ５０２５は、典型的にはより高速であり、かつ、コンピュータ・システムが利用できる不揮発性ストレージ（ＤＡＳＤ、テープ等）の一部だけを保持するので、レベル５（Ｌ５）のキャッシュと呼ばれることがある。主ストレージ５０２５は、オペレーティング・システムによって主ストレージ５０２５との間でページングされるデータのページを「キャッシュに入れる」。
【０１８６】
プログラム・カウンタ（命令カウンタ）５０６１は、実行される現行の命令のアドレスを常時監視している。ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅプロセッサのプログラム・カウンタは６４ビットであり、従来のアドレッシング制限をサポートするために、３１ビット又は２４ビットに切り捨てることができる。プログラム・カウンタは、典型的には、コンテキスト・スイッチの際に持続するように、コンピュータのＰＳＷ（プログラム状況ワード）内で具体化される。従って、例えば、オペレーティング・システムにより、プログラム・カウンタ値を有する進行中のプログラムに割り込みをかけることが可能である（プログラム環境からオペレーティング・システム環境へのコンテキスト・スイッチ）。プログラムのＰＳＷは、プログラムがアクティブでない間、プログラム・カウンタ値を保持し、オペレーティング・システムが実行されている間、オペレーティング・システムの（ＰＳＷ内の）プログラム・カウンタが用いられる。典型的には、プログラム・カウンタは、現行の命令のバイト数に等しい量だけインクリメントされる。ＲＩＳＣ（Reduced Instruction Set Computing）命令は、典型的には固定長であり、ＣＩＳＣ（Complex Instruction Set Computing）命令は、典型的には可変長である。ＩＢＭ  ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅの命令は、２バイト、４バイト、又は６バイトの長さを有するＣＩＳＣ命令である。例えば、コンテキスト・スイッチ操作又は分岐命令の分岐成立操作により、プログラム・カウンタ５０６１が変更される。コンテキスト・スイッチ操作において、現行のプログラム・カウンタ値は、実行されるプログラムについての他の状態情報（条件コードのような）と共にプログラム状況ワード内に保存され、実行される新しいプログラム・モジュールの命令を指し示す新しいプログラム・カウンタ値がロードされる。分岐成立操作を行い、分岐命令の結果をプログラム・カウンタ５０６１にロードすることにより、プログラムが判断を下すこと又はプログラム内でループすることを可能にする。
【０１８７】
典型的には、プロセッサ５０２６の代わりに命令をフェッチするために、命令フェッチ・ユニット５０５５が用いられる。フェッチ・ユニットは、「次の順次命令」、分岐成立命令のターゲット命令、又はコンテキスト・スイッチの後のプログラムの最初の命令のいずれかをフェッチする。今日の命令フェッチ・ユニットは、プリフェッチされた命令を用いることができる可能性に基づいて、命令を投機的にプリフェッチするプリフェッチ技術を用いることが多い。例えば、フェッチ・ユニットは、次の順次命令を含む１６バイトの命令と、付加的なバイトの更なる順次命令とをフェッチすることができる。
【０１８８】
次いで、フェッチされた命令が、プロセッサ５０２６によって実行される。１つの実施形態において、フェッチされた命令は、フェッチ・ユニットのディスパッチ・ユニット５０５６に渡される。ディスパッチ・ユニットは命令をデコードし、デコードされた命令についての情報を適切なユニット５０５７、５０５８、５０６０に転送する。実行ユニット５０５７は、典型的には、命令フェッチ・ユニット５０５５からデコードされた算術命令についての情報を受け取り、命令のオペコードに従ってオペランドに関する算術演算を行う。オペランドは、好ましくは、メモリ５０２５、アーキテクチャ化レジスタ５０５９、又は実行される命令の即値フィールドのいずれかから、実行ユニット５０５７に与えられる。実行の結果は、格納された場合には、メモリ５０２５、レジスタ５０５９、又は他のマシン・ハードウェア（制御レジスタ、ＰＳＷレジスタなどのような）内に格納される。
【０１８９】
仮想アドレスは、動的アドレス変換５０６２、及び随意的に、アクセス・レジスタ変換５０６３を用いて、実アドレスに変換される。
【０１９０】
プロセッサ５０２６は、典型的には、命令の機能を実行するための１つ又は複数の実行ユニット５０５７、５０５８、５０６０を有する。図２３を参照すると、実行ユニット５０５７は、インターフェース論理５０７１を介して、アーキテクチャ化された汎用レジスタ５０５９、デコード／ディスパッチ・ユニット５０５６、ロード・ストア・ユニット５０６０、及び他のプロセッサ・ユニット５０６５と通信することができる。実行ユニット５０５７は、幾つかのレジスタ回路５０６７、５０６８、５０６９を用いて、算術論理演算ユニット（ＡＬＵ）５０６６が動作する情報を保持することができる。ＡＬＵは、加算、減算、乗算、及び除算などの算術演算、並びに、論理積、論理和、及び排他的論理和、ローテート及びシフトのような論理関数を実行する。ＡＬＵは、設計に依存する専用の演算をサポートすることが好ましい。他の回路は、例えば条件コード及び回復サポート論理を含む、他のアーキテクチャ化ファシリティ５０７２を提供することができる。典型的には、ＡＬＵ演算の結果は、出力レジスタ回路５０７０に保持され、この出力レジスタ回路５０７０が、結果を種々の他の処理機能に転送することができる。多数のプロセッサ・ユニットの構成が存在し、本説明は、本発明の１つの好ましい実施形態の代表的な理解を与えることのみを意図している。
【０１９１】
例えばＡＤＤ命令は、算術及び論理機能を有する実行ユニット５０５７で実行され、一方、例えば浮動小数点命令は、特化された浮動小数点能力を有する浮動小数点実行部で実行される。実行ユニットは、オペランドに対してオペコードが定めた関数を行うことにより、命令が特定したオペランドに対して動作することが好ましい。例えば、ＡＤＤ命令は、命令のレジスタ・フィールドによって特定された２つのレジスタ５０５９内に見出されるオペランドに対して、実行ユニット５０５７により実行することができる。
【０１９２】
実行ユニット５０５７は、２つのオペランドに対して算術加算を実行し、結果を第３オペランドに格納し、ここで第３オペランドは、第３のレジスタであっても又は２つのソース・レジスタのいずれかであってもよい。実行ユニットは、シフト、ローテート、論理積、論理和、及び排他的論理和のような種々の論理関数、並びに、加算、減算、乗算、除法のいずれかを含む、種々の代数関数を実行することができる算術論理演算ユニット（ＡＬＵ）５０６６を用いることが好ましい。スカラー演算のために設計されたＡＬＵ５０６６もあり、浮動小数点のために設計されたものＡＬＵ５０６６もある。データは、アーキテクチャに応じて、ビッグ・エンディアン（最下位のバイトが最も高いバイト・アドレスである）、又はリトル・エンディアン（最下位のバイトが最も低いバイト・アドレスである）とすることができる。ＩＢＭ  ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅは、ビッグ・エンディアンである。符号付きフィールドは、アーキテクチャに応じて、符号及び大きさ、１の補数、又は２の補数とすることができる。２の補数における負の値又は正の値は、ＡＬＵ内で加法しか必要としないため、ＡＬＵが減算能力を設計する必要がないという点で、２の補数は有利である。数値は、通常、省略表現で記述され、１２ビット・フィールドは、４，０９６バイトブロックのアドレスを定め、通常、例えば４Ｋバイト（キロバイト）ブロックのように記述される。
【０１９３】
図２４を参照すると、分岐命令を実行するための分岐命令情報が、典型的には、分岐ユニット５０５８に送られ、この分岐ユニット５０５８は、多くの場合、分岐履歴テーブル５０８２のような分岐予測アルゴリズムを用いて、他の条件付き演算が完了する前に分岐の結果を予測する。条件付き演算が完了する前に、現行の分岐命令のターゲットがフェッチされ、投機的に実行される。条件付き演算が完了すると、投機的に実行された分岐命令は、条件付き演算の条件及び投機された結果に基づいて、完了されるか又は破棄される。典型的な分岐命令は、条件コードを試験し、条件コードが分岐命令の分岐要件を満たす場合、ターゲット・アドレスに分岐することができ、ターゲット・アドレスは、例えば、命令のレジスタ・フィールド又は即値フィールド内に見出されるものを含む幾つかの数に基づいて計算することができる。分岐ユニット５０５８は、複数の入力レジスタ回路５０７５、５０７６、５０７７と、出力レジスタ回路５０８０とを有するＡＬＵ５０７４を用いることができる。分岐ユニット５０５８は、例えば、汎用レジスタ５０５９、デコード・ディスパッチ・ユニット５０５６、又は他の回路５０７３と通信すること５０８１ができる。
【０１９４】
例えば、オペレーティング・システムによって開始されるコンテキスト・スイッチ、コンテキスト・スイッチを発生させるプログラム例外又はエラー、コンテキスト・スイッチを発生させるＩ／Ｏ割り込み信号、又は（マルチスレッド環境における）複数のプログラムのマルチスレッド活動を含む様々な理由により、命令のグループの実行に割り込みがかけられることがある。コンテキスト・スイッチ動作は、現在実行中のプログラムについての状態情報を保存し、次いで、起動される別のプログラムについての状態情報をロードすることが好ましい。状態情報は、例えば、ハードウェア・レジスタ又はメモリ内に保存することができる。状態情報は、実行される次の命令を指し示すプログラム・カウンタ値と、条件コードと、メモリ変換情報と、アーキテクチャ化されたレジスタの内容とを含むことが好ましい。コンテキスト・スイッチの活動は、ハードウェア回路、アプリケーション・プログラム、オペレーティング・システム・プログラム、又はファームウェア・コード（マイクロコード、ピココード、又はライセンス内部コード（ＬＩＣ））単独で又はその組み合わせで実施することができる。
【０１９５】
プロセッサは、命令により定義された方法に従ってオペランドにアクセスする。命令は、命令の一部の値を用いて即値オペランドを与えることができ、汎用レジスタ又は専用レジスタ（例えば、浮動小数点レジスタ）のいずれかを明示的に指し示す１つ又は複数のレジスタ・フィールドを与えることができる。命令は、オペコード・フィールドによって、オペランドとして識別されるインプライド・レジスタを用いることができる。命令は、オペランドのためのメモリ位置を用いることができる。命令がベース・レジスタ、インデックス・レジスタ、及び即値フィールド（変位フィールド）を定め、これらを互いに付加して、例えば、メモリ内のオペランドのアドレスをもたらすｚ／Ａｒｃｈｉｔｅｃｔｕｒｅの長変位ファシリティにより例示されるように、オペランドのメモリ位置を、レジスタ、即値フィールド、又はレジスタと即値フィールドの組み合わせによって与えることができる。ここでの位置は、典型的には、特に断りのない限り、主メモリ（主ストレージ）内の記憶位置を意味する。
【０１９６】
図２５を参照すると、プロセッサは、ロード／ストア・ユニット５０６０を用いて、ストレージにアクセスする。ロード／ストア・ユニット５０６０は、メモリ５０２５内のターゲット・オペランドのアドレスを取得し、オペランドをレジスタ５０５９又は別のメモリ５０２５の記憶位置にロードすることによってロード操作を行うことができ、或いは、メモリ５０２５内のターゲット・オペランドのアドレスを取得し、レジスタ５０５９又は別のメモリ５０２５の記憶位置から取得したデータをメモリ５０２５内のターゲット・オペランドの記憶位置に格納することによって、ストア操作を行うことができる。ロード／ストア・ユニット５０６０は、投機的なものであってもよく、命令シーケンスに対してアウト・オブ・オーダー式の順序でメモリにアクセスすることができるが、プログラムに対して、命令がインオーダー式に実行されたという外観を維持することになる。ロード／ストア・ユニット５０６０は、汎用レジスタ５０５９、デコード／ディスパッチ・ユニット５０５６、キャッシュ／メモリ・インターフェース５０５３、又は他の要素５０８３と通信することができ、ストレージ・アドレスを計算し、かつ、パイプライン処理を順に行って操作をインオーダー式に保持するための、種々のレジスタ回路、ＡＬＵ５０８５、及び制御論理５０９０を含む。一部の動作は、アウト・オブ・オーダー式とすることができるが、ロード／ストア・ユニットは、アウト・オブ・オーダー式動作が、プログラムに対して、当技術分野において周知のようなインオーダー式に実行されたように見えるようにする機能を提供する。
【０１９７】
好ましくは、アプリケーション・プログラムが「見ている」アドレスは、仮想アドレスと呼ばれることが多い。仮想アドレスは、「論理アドレス」及び「実効アドレス」と呼ばれることもある。これらの仮想アドレスは、これらに限定されるものではないが、単に仮想アドレスをオフセット値にプリフィックス付加すること、１つ又は複数の変換テーブルを介して仮想アドレスを変換することを含む、種々の動的アドレス変換（ＤＡＴ）技術の１つによって、物理的メモリ位置にリダイレクトされるという点で仮想のものであり、変換テーブルは、少なくともセグメント・テーブル及びページ・テーブルを単独で又は組み合わせて含むことが好ましく、セグメント・テーブルは、ページ・テーブルを指し示すエントリを有することが好ましい。ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅでは、領域第１テーブル、領域第２テーブル、領域第３テーブル、セグメント・テーブル、及び随意的なページ・テーブルを含む、変換の階層構成が提供される。アドレス変換の性能は、仮想アドレスを関連した物理的メモリ位置にマッピングするエントリを含む変換ルックアサイド・バッファ（ＴＬＢ）を用いることにより改善されることが多い。ＤＡＴが変換テーブルを用いて仮想アドレスを変換したときに、エントリが作成される。次いで、後に仮想アドレスを用いることで、低速の順次変換テーブル・アクセスではなく、高速のＴＬＢのエントリを用いることが可能になる。ＴＬＢの内容は、ＬＲＵ（Least Recently used：最長時間未使用）を含む種々の置換アルゴリズムによって管理することができる。
【０１９８】
プロセッサがマルチプロセッサ・システムのプロセッサである場合には、各プロセッサは、コヒーレンシのために、Ｉ／Ｏ、キャッシュ、ＴＬＢ、及びメモリといった共有リソースをインターロック状態に保持する責任を負う。キャッシュ・コヒーレンシを保持する際に、一般的には「スヌープ」技術が用いられる。スヌープ環境においては、共有を容易にするために、各キャッシュ・ラインを、共有状態、排他的状態、変更状態、無効状態等のいずれか１つの状態にあるものとしてマーク付けすることができる。
【０１９９】
Ｉ／Ｏユニット５０５４（図２２）は、プロセッサに、例えば、テープ、ディスク、プリンタ、ディスプレイ、及びネットワークを含む周辺機器に取り付けるための手段を与える。Ｉ／Ｏユニットは、ソフトウェア・ドライバによってコンピュータ・プログラムに提示されることが多い。ＩＢＭによるＳｙｓｔｅｍ  ｚのようなメインフレームにおいては、チャネル・アダプタ及びオープン・システム・アダプタが、オペレーティング・システムと周辺機器との間に通信をもたらすメインフレームのＩ／Ｏユニットである。
【０２００】
さらに、他のタイプのコンピューティング環境が、１つ又は複数の態様から利益を得ることができる。一例として、環境は、特定のアーキテクチャ（例えば、命令実行、アドレス変換などのアーキテクチャ化された機能、及びアーキテクチャ化されたレジスタを含む）又はそのサブセットをエミュレートする（例えば、プロセッサ及びメモリを有するネイティブ・コンピュータ・システム上で）エミュレータ（例えば、ソフトウェア又は他のエミュレーション機構）を含むことができる。このような環境においては、エミュレータを実行しているコンピュータが、エミュレートされる機能とは異なるアーキテクチャを有することができたとしても、エミュレータの１又は複数のエミュレーション機能により、１つ又は複数の実施形態が実施され得る。一例として、エミュレーション・モードにおいては、エミュレートされる特定の命令又は操作がデコードされ、適切なエミュレーション機能が構築され、個々の命令又は操作を実施する。
【０２０１】
エミュレーション環境においては、ホスト・コンピュータは、例えば、命令及びデータを格納するためのメモリと、メモリから命令をフェッチし、随意的に、フェッチされた命令のためのローカル・バッファリングを提供するための命令フェッチ・ユニットと、フェッチされた命令を受信し、フェッチされた命令のタイプを判断するための命令デコード・ユニットと、命令を実行するための命令実行ユニットとを含む。実行は、データをメモリからレジスタ内にロードすること、データをレジスタから再びメモリに格納すること、又はデコード・ユニットにより判断されるように、何らかのタイプの算術演算又は論理演算を実行することを含むことができる。一例においては、各ユニットは、ソフトウェアで実装される。例えば、ユニットが実行する演算は、エミュレータ・ソフトウェア内の１つ又は複数のサブルーチンとして実装される。
【０２０２】
より具体的には、メインフレームにおいて、アーキテクチャ化されたマシン命令は、通常、プログラマによって、多くの場合コンパイラ・アプリケーションを介して、今日では「Ｃ」プログラマによって用いられる。ストレージ媒体内に格納されたこれらの命令は、ｚ／ＡｒｃｈｉｔｅｃｔｕｒｅのＩＢＭ（登録商標）サーバにおいて、又は代替的に他のアーキテクチャを実行するマシンにおいて、ネイティブに実行することができる。これらの命令は、既存の及び将来のＩＢＭ（登録商標）メインフレーム・サーバにおいて、及び、ＩＢＭ（登録商標）の他のマシン（例えば、Ｐｏｗｅｒ  Ｓｙｓｔｅｍサーバ及びＳｙｓｔｅｍ  ｘサーバ）上で、エミュレートすることができる。これらの命令は、ＩＢＭ（登録商標）、Ｉｎｔｅｌ（登録商標）、ＡＭＤなどによって製造されたハードウェアを用いて種々のマシン上でＬｉｎｕｘを実行しているマシンにおいて実行することができる。ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ下でそのハードウェア上で実行することに加えて、Ｌｉｎｕｘを用いること、並びに、一般に実行がエミュレーション・モードにあるＨｅｒｃｕｌｅｓ、ＵＭＸ、又はＦＳＩ（Ｆｕｎｄａｍｅｎｔａｌ  Ｓｏｆｔｗａｒｅ，Ｉｎｃ）によるエミュレーションを用いるマシンを用いることもできる。エミュレーション・モードにおいては、ネイティブ・プロセッサによって、エミュレーション・ソフトウェアが実行され、エミュレートされたプロセッサのアーキテクチャをエミュレートする。
【０２０３】
ネイティブ・プロセッサは、一般的に、エミュレートされたプロセッサのエミュレーションを実行するためにファームウェア又はネイティブ・オペレーティング・システムのいずれかを含むエミュレーション・ソフトウェアを実行する。エミュレーション・ソフトウェアは、エミュレートされたプロセッサ・アーキテクチャの命令のフェッチと実行を担当する。エミュレーション・ソフトウェアは、エミュレートされたプログラム・カウンタを維持し、命令境界を常時監視している。エミュレーション・ソフトウェアは、一度に１つ又は複数のエミュレートされたマシン命令をフェッチし、ネイティブ・プロセッサにより実行するために、その１つ又は複数のエミュレートされたマシン命令を、対応するネイティブ・マシン命令のグループに変換することができる。これらの変換された命令は、より速い変換を達成できるようにキャッシュに入れることができる。それにも関わらず、エミュレーション・ソフトウェアは、エミュレートされたプロセッサ・アーキテクチャのアーキテクチャ規則を維持して、オペレーティング・システム及びエミュレートされたプロセッサのために書かれたアプリケーションが正確に動作することを保証しなければならない。さらに、エミュレーション・ソフトウェアは、これらに限定されるものではないが、制御レジスタ、汎用レジスタ、浮動小数点レジスタ、例えばセグメント・テーブル及びページ・テーブルを含む動的アドレス変換機能、割り込み機構、コンテキスト・スイッチ機構、時刻（ＴＯＤ）クロック、及びＩ／Ｏサブシステムへのアーキテクチャ化インターフェースを含む、エミュレートされたプロセッサのアーキテクチャによって識別されるリソースを提供し、オペレーティング・システム又はエミュレートされたプロセッサ上で実行するように設計されたアプリケーション・プログラムが、エミュレーション・ソフトウェアを有するネイティブ・プロセッサ上で実行することができる。
【０２０４】
エミュレートされた特定の命令がデコードされ、個々の命令の機能を実行するためのサブルーチンが呼び出される。エミュレートされたプロセッサの機能をエミュレートするエミュレーション・ソフトウェア機能は、例えば、「Ｃ」サブルーチン若しくはドライバにおいて、又は好ましい実施形態の説明を理解した後で当業者の技術の範囲内にあるような特定のハードウェアのためにドライバを提供する他の何らかの方法で実装される。Ｂｅａｕｓｏｌｅｉｌ他による「Ｍｕｌｔｉｐｒｏｃｅｓｓｏｒ  ｆｏｒ  Ｈａｒｄｗａｒｅ  Ｅｍｕｌａｔｉｏｎ」という名称の特許文献１、Ｓｃａｌｚｉ他による「Ｐｒｅｐｒｏｃｅｓｓｉｎｇ  ｏｆ  Ｓｔｏｒｅｄ  Ｔａｒｇｅｔ  Ｒｏｕｔｉｎｅｓ  ｆｏｒ  Ｅｍｕｌａｔｉｎｇ  Ｉｎｃｏｍｐａｔｉｂｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎｓ  ｏｎ  ａ  Ｔａｒｇｅｔ  Ｐｒｏｃｅｓｓｏｒ」という名称の特許文献２、Ｄａｖｉｄｉａｎ他による「Ｄｅｃｏｄｉｎｇ  Ｇｕｅｓｔ  Ｉｎｓｔｒｕｃｔｉｏｎ  ｔｏ  Ｄｉｒｅｃｔｌｙ  Ａｃｃｅｓｓ  Ｅｍｕｌａｔｉｏｎ  Ｒｏｕｔｉｎｅｓ  ｔｈａｔ  Ｅｍｕｌａｔｅ  ｔｈｅ  Ｇｕｅｓｔ  Ｉｎｓｔｒｕｃｔｉｏｎｓ」という名称の特許文献３、Ｇｏｒｉｓｈｅｋ他による「Ｓｙｍｍｅｔｒｉｃａｌ  Ｍｕｌｔｉｐｒｏｃｅｓｓｉｎｇ  Ｂｕｓ  ａｎｄ  Ｃｈｉｐｓｅｔ  Ｕｓｅｄ  ｆｏｒ  Ｃｏｐｒｏｃｅｓｓｏｒ  Ｓｕｐｐｏｒｔ  Ａｌｌｏｗｉｎｇ  Ｎｏｎ−Ｎａｔｉｖｅ  Ｃｏｄｅ  ｔｏ  Ｒｕｎ  ｉｎ  ａ  Ｓｙｓｔｅｍ」という名称の特許文献４、Ｌｅｔｈｉｎ他による「Ｄｙｎａｍｉｃ  Ｏｐｔｉｍｉｚｉｎｇ  Ｏｂｊｅｃｔ  Ｃｏｄｅ  Ｔｒａｎｓｌａｔｏｒ  ｆｏｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｅｍｕｌａｔｉｏｎ  ａｎｄ  Ｄｙｎａｍｉｃ  Ｏｐｔｉｍｉｚｉｎｇ  Ｏｂｊｅｃｔ  Ｃｏｄｅ  Ｔｒａｎｓｌａｔｉｏｎ  Ｍｅｔｈｏｄ」という名称の特許文献５、Ｅｒｉｃ  Ｔｒａｕｔによる「Ｍｅｔｈｏｄ  ｆｏｒ  Ｅｍｕｌａｔｉｎｇ  Ｇｕｅｓｔ  Ｉｎｓｔｒｕｃｔｉｏｎｓ  ｏｎ  ａ  Ｈｏｓｔ  Ｃｏｍｐｕｔｅｒ  Ｔｈｒｏｕｇｈ  Ｄｙｎａｍｉｃ  Ｒｅｃｏｍｐｉｌａｔｉｏｎ  ｏｆ  Ｈｏｓｔ  Ｉｎｓｔｒｕｃｔｉｏｎｓ」という名称の特許文献６及び他の多くを含むがこれらに限定されない、種々のソフトウェア及びハードウェア・エミュレーションの特許は、当業者が利用可能なターゲット・マシンのための異なるマシン用に設計された命令形式のエミュレーションを達成する様々な既知の方法を示す。
【０２０５】
図２６において、ホスト・アーキテクチャのホスト・コンピュータ・システム５０００’をエミュレートする、エミュレートされたホスト・コンピュータ・システム５０９２の一例が提供される。エミュレートされたホスト・コンピュータ・システム５０９２では、ホスト・プロセッサ（ＣＰＵ）５０９１は、エミュレートされたホスト・プロセッサ（又は、仮想ホスト・プロセッサ）であり、かつ、ホスト・コンピュータ５０００’のプロセッサ５０９１のものとは異なるネイティブな命令セット・アーキテクチャを有するエミュレーション・プロセッサ５０９３を含む。エミュレートされたホスト・コンピュータ・システム５０９２は、エミュレーション・プロセッサ５０９３がアクセス可能なメモリ５０９４を有する。例示的な実施形態において、メモリ５０９４は、ホスト・コンピュータ・メモリ５０９６の部分と、エミュレーション・ルーチン５０９７の部分とにパーティション化される。ホスト・コンピュータ・メモリ５０９６は、ホスト・コンピュータ・アーキテクチャに従い、エミュレートされたホスト・コンピュータ・システム５０９２のプログラムに利用可能である。エミュレーション・プロセッサ５０９３は、エミュレートされたプロセッサ５０９１のもの以外のアーキテクチャのアーキテクチャ化命令セットのネイティブ命令を実行し、このネイティブ命令はエミュレーション・ルーチン・メモリ５０９７から取得されたものであり、かつ、エミュレーション・プロセッサ５０９３は、シーケンス及びアクセス／デコード・ルーチンにおいて取得される１つ又は複数の命令を用いることにより、ホスト・コンピュータ・メモリ５０９６の中のプログラム由来の実行のためのホスト命令にアクセスすることができ、このシーケンス及びアクセス／デコード・ルーチンは、アクセスされたホスト命令をデコードして、アクセスされたホスト命令の機能をエミュレートするためのネイティブ命令実行ルーチンを判断することができる。ホスト・コンピュータ・システム５０００’のアーキテクチャのために定められた、例えば、汎用レジスタ、制御レジスタ、動的アドレス変換、及びＩ／Ｏサブシステムのサポート、並びにプロセッサ・キャッシュといったファシリティを含む他のファシリティを、アーキテクチャ化ファシリティ・ルーチンによってエミュレートすることができる。エミュレーション・ルーチンは、エミュレーション・ルーチンの性能を高めるために、エミュレーション・プロセッサ５０９３において利用可能な（汎用レジスタ、及び仮想アドレスの動的変換といった）機能を利用することもできる。ホスト・コンピュータ５０００’の機能をエミュレートする際にプロセッサ５０９３を補助するために、専用のハードウェア及びオフ・ロード・エンジンを設けることもできる。
【０２０６】
更に別の実施形態において、１つ又は複数の態様は、クラウド・コンピューティングに関する。本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書で述べられる教示の実装は、クラウド・コンピューティング環境に限定されるものではないことが予め理解される。むしろ、本発明の実施形態は、現在知られている又は後に開発される他のいずれかのタイプのコンピューティング環境と併せて実装することができる。
【０２０７】
クラウド・コンピューティングは、最小限の管理労力又はサービス・プロバイダとの対話で迅速にプロビジョニング及び解放することができる構成可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス）の共有プールへの、便利なオンデマンドのネットワーク・アクセスを可能にするサービス配信のモデルである。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、及び少なくとも４つの配備モデルを含むことができる。
【０２０８】
特徴は、以下の通りである。
オンデマンド・セルフサービス：クラウド・コンシューマは、必要に応じて、サーバ時間及びネットワーク・ストレージ等のコンピューティング機能を、人間がサービスのプロバイダと対話する必要なく自動的に、一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス：機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム（例えば、携帯電話、ラップトップ、及びＰＤＡ）による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化：プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、異なる物理及び仮想リソースを要求に応じて動的に割り当て及び再割り当てすることにより、複数のコンシューマにサービスを提供するためにプールされる。コンシューマは、一般に、提供されるリソースの正確な位置についての制御又は知識を持たないが、より高レベルの抽象化では位置（例えば、国、州、又はデータセンタ）を特定できる場合があるという点で、位置とは独立しているといえる。
迅速な弾力性：機能は、迅速かつ弾力的に、幾つかの場合自動的に、プロビジョニングして素早くスケール・アウトし、迅速にリリースして素早くスケール・インさせることができる。コンシューマにとって、プロビジョニングに利用可能なこれらの機能は、多くの場合、無制限であり、いつでもどんな量でも購入できるように見える。
サービスの測定：クラウド・システムは、サービスのタイプ（例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント）に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、報告し、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらすことができる。
【０２０９】
サービス・モデルは以下の通りである。
Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＳａａＳ）：クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用するために、コンシューマに提供される機能である。これらのアプリケーションは、ウェブ・ブラウザ（例えば、ウェブ・ベースの電子メール）などのシン・クライアント・インターフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定の考え得る例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＰａａＳ）：プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウド・インフラストラクチャ上に配備するために、コンシューマに提供される機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージなどの基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、配備されたアプリケーション、及び場合によってはアプリケーション・ホスティング環境構成に対して制御を有する。
Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＩａａＳ）：コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアを配備及び動作させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニンングするために、コンシューマに提供される機能である。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対する制御、及び場合によってはネットワーク・コンポーネント（例えば、ホストのファイアウォール）選択の限定された制御を有する。
【０２１０】
配備モデルは以下の通りである。
プライベート・クラウド：クラウド・インフラストラクチャは、ある組織のためだけに運営される。このクラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、構内又は構外に存在することができる。
コミュニティ・クラウド：クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項（例えば、任務、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項）を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、構内又は構外に存在することができる。
パブリック・クラウド：クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループに利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術（例えば、クラウド間の負荷分散のためのクラウド・バースティング）によって結び付けられる２つ又はそれより多いクラウド（プライベート、コミュニティ、又はパブリック）の混成物である。
【０２１１】
クラウド・コンピューティング環境は、無国籍性、低結合性、モジュール性、及びセマンティック相互運用性に焦点を置くことを指向するサービスである。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【０２１２】
ここで図２７を参照すると、クラウド・コンピューティング・ノードの一例の概略図が示される。クラウド・コンピューティング・ノード６０１０は、好適なクラウド・コンピューティング・ノードの単なる一例であり、本明細書で説明される本発明の実施形態の使用又は機能の範囲に対するいずれかの制限を示唆することを意図するものではない。上記に関係なく、クラウド・コンピューティング・ノード６０１０は、本明細書で上述された機能のいずれかを実装及び／又は実施することができる。
【０２１３】
クラウド・コンピューティング・ノード６０１０には、他の多数の汎用又は専用コンピューティング・システム環境又は構成で動作可能な、コンピュータ・システム／サーバ６０１２が存在する。コンピュータ・システム／サーバ６０１２と共に用いるのに好適な周知のコンピューティング・システム、環境、及び／又は構成の例としては、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能民生電子機器、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び、上述のシステム又はデバイス等のいずれかを含む分散型クラウド・コンピューティング環境が含まれる。
【０２１４】
コンピュータ・システム／サーバ６０１２は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム／サーバ６０１２は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施することができる。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔両方のコンピュータ・システム・ストレージ媒体に配置することができる。
【０２１５】
図２７に示されるように、クラウド・コンピューティング・ノード６０１０のコンピュータ・システム／サーバ６０１２は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム／サーバ６０１２のコンポーネントは、これらに限定されるものではないが、１つ又は複数のプロセッサ又は処理ユニット６０１６、システム・メモリ６０２８、及びシステム・メモリ６０２８を含む種々のシステム・コンポーネントをプロセッサ６０１６に結合するバス６０１８を含むことができる。
【０２１６】
バス６０１８は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの１つ又は複数を表す。限定ではなく例としては、このようなアーキテクチャは、業界標準アーキテクチャ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、及びＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含む。
【０２１７】
コンピュータ・システム／サーバ６０１２は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ６０１２がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不能媒体の両方とを含む。
【０２１８】
システム・メモリ６０２８は、ランダム・アクセス・メモリ（ＲＡＭ）６０３０及び／又はキャッシュ・メモリ６０３２など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ６０１２は、他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体（図示されておらず、典型的には「ハードドライブ」と呼ばれる）との間の読み出し及び書き込みのために、ストレージ・システム６０３４を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク（例えば、「フレキシブル・ディスク」）との間の読み出し及び書き込みのための磁気ディスク・ドライブと、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、それぞれを、１つ又は複数のデータ媒体インターフェースによってバス６０１８に接続することができる。以下でさらに示され説明されるように、メモリ６０２８は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールの組（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含むことができる。
【０２１９】
限定ではなく例として、メモリ６０２８内に、プログラム・モジュール６０４２の組（少なくとも１つ）を有するプログラム／ユーティリティ６０４０、並びにオペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを格納することができる。オペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの何らかの組み合わせの各々は、ネットワーキング環境の実装形態を含むことができる。プログラム・モジュール６０４２は、一般に、本明細書で説明される本発明の実施形態の機能及び／又は方法を実行する。
【０２２０】
コンピュータ・システム／サーバ６０１２は、キーボード、ポインティング・デバイス、ディスプレイ６０２４等のような１つ又は複数の外部デバイス６０１４；ユーザがコンピュータ・システム／サーバ６０１２と対話することを可能にする１つ又は複数のデバイス；及び／又はコンピュータ・システム／サーバ６０１２が１つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス（例えば、ネットワーク・カード、モデムなど）と通信することもできる。このような通信は、入力／出力（Ｉ／Ｏ）インターフェース６０２２を経由して行うことができる。さらにまた、コンピュータ・システム／サーバ６０１２は、ネットワーク・アダプタ６０２０を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、汎用広域ネットワーク（ＷＡＮ）、及び／又はパブリック・ネットワーク（例えば、インターネット）などの１つ又は複数のネットワークと通信することもできる。示されるように、ネットワーク・アダプタ６０２０は、バス６０１８を介して、コンピュータ・システム／サーバ６０１２の他のコンポーネントと通信する。図示されないが、コンピュータ・システム／サーバ６０１２と共に他のハードウェア及び／又はソフトウェア・コンポーネントを使用できることを理解されたい。例としては、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部のディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープドライブ、及びデータ・アーカイブ・ストレージ・システムなどが含まれる。
【０２２１】
ここで図２８を参照すると、例示的なクラウド・コンピューティング環境６０５０が示される。示されるように、クラウド・コンピューティング環境６０５０は、例えば携帯情報端末（ＰＤＡ）又は携帯電話６０５４Ａ、デスクトップ・コンピュータ６０５４Ｂ、ラップトップ・コンピュータ６０５４Ｃ、及び／又は自動車コンピュータ・システム６０５４Ｎなどといった、クラウド・コンシューマによって用いられるローカル・コンピューティング・デバイスと通信することができる、１つ又は複数のクラウド・コンピューティング・ノード６０１０を含む。ノード６０１０は、互いに通信することができる。これらのノードは、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、若しくはハイブリッド・クラウド、又はこれらの組み合わせなど、１つ又は複数のネットワークにおいて物理的又は仮想的にグループ化することができる（図示せず）。これにより、クラウド・コンピューティング環境６０５０は、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして、インフラストラクチャ、プラットフォーム、及び／又はソフトウェアを提供することが可能になる。図２８に示されるコンピューティング・デバイス６０５４Ａ−Ｎのタイプは単に例示であることを意図し、コンピューティング・ノード１０及びクラウド・コンピューティング環境６０５０は、いずれのタイプのネットワーク及び／又はネットワーク・アドレス指定可能な接続上でも（例えば、ウェブ・ブラウザを用いて）、いずれのタイプのコンピュータ化された装置とも通信できることを理解されたい。
【０２２２】
ここで図２９を参照すると、クラウド・コンピューティング環境６０５０（図２８）によって提供される機能抽象化層の組が示される。図２９示されるコンポーネント、層、及び機能は単に例示であることを意図し、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示されるように、以下の層及び対応する機能が提供される。
ハードウェア及びソフトウェア層６０６０は、ハードウェア及びソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、ＩＢＭ（登録商標）ｚＳｅｒｉｅｓシステムを一例とするメインフレームと、ＩＢＭ（登録商標）  ｐＳｅｒｉｅｓシステムを一例とするＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ（縮小命令セット・コンピュータ））アーキテクチャ・ベースのサーバと、ＩＢＭ（登録商標）  ｘＳｅｒｉｅｓ（登録商標）システムと、ＩＢＭ（登録商標）  ＢｌａｄｅＣｅｎｔｅｒ（登録商標）システムと、ストレージ・デバイスと、ネットワーク及びネットワーク・コンポーネントと、が含まれる。ソフトウェア・コンポーネントの例として、ＩＢＭ（登録商標）  ＷｅｂＳｐｈｅｒｅ（登録商標）アプリケーション・サーバ・ソフトウェアを一例とするネットワーク・アプリケーション・サーバ・ソフトウェアと、ＩＢＭ（登録商標）  ＤＢ２（登録商標）データベース・ソフトウェアを一例とするデータベース・ソフトウェアとが含まれる。ＩＢＭ、ｚＳｅｒｉｅｓ、ｘＳｅｒｉｅｓ、ＢｌａｄｅＣｅｎｔｅｒ、ＷｅｂＳｐｈｅｒｅ、及びＤＢ２、ｚ／ＯＳ、ｚ／ＶＭ、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ、及びＰｒｏｃｅｓｓｏｒ  Ｒｅｓｏｕｒｃｅ／Ｓｙｓｔｅｍｓ  Ｍａｎａｇｅｒは、世界中の多数の管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。本明細書において用いられる他の名称は、インターナショナル・ビジネス・マシーンズ・コーポレーション又は他の会社の登録商標、商標、又は製品名とすることができる。
仮想化層６０６２は、抽象化層を提供し、この層により、仮想エンティティの以下の例、すなわち、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーション及びオペレーティング・システム、並びに仮想クライアントを提供することができる。
【０２２３】
一例においては、管理層６０６０は、以下で説明される機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格決定は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡と、リソースの消費に対する課金又は請求とを提供する。１つの例においては、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクに対する識別情報の検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータルは、コンシューマ及びシステム管理者のために、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ、ＳＬＡ）の計画及び履行は、ＳＬＡに従って将来の要件が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
【０２２４】
ワークロード層６０６６は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例には、マッピング及びナビゲーション、ソフトウェア開発及びライフサイクル管理、仮想教室教育配信、データ分析処理、及びトランザクション処理が含まれる。
【０２２５】
本明細書で用いられる用語は、特定の実施形態を説明する目的のためのものにすぎず、本発明を限定することを意図したものではない。本明細書で用いられる場合、単数形「１つの（a）」、「１つの（an）」及び「その（the）」は、文脈が特に明示しない限り、複数形も同様に含むことを意図したものである。「含む（comprise）」及び／又は「含んでいる（comprising）」という用語は、本明細書で用いられる場合、記述された特徴、整数、ステップ、動作、要素、及び／又はコンポーネントの存在を指示するが、１つ又は複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、及び／又はそれらの群の存在又は追加を排除するものではないこともさらに理解されるであろう。
【０２２６】
以下の特許請求の範囲に存在する場合、「手段又はステップと機能との組合せ（ミーンズ又はステップ・プラス・ファンクション）」要素の対応する構造、材料、動作及び均等物は、明確に特許請求された他の請求要素と共に機能を実行するための任意の構造体、材料、又は行為を含むことを意図したものである。１つ又は複数の実施形態の説明は、例証及び説明のためだけに提示されたものであり、網羅的であること又は本発明を開示した形態に限定することを意図したものではない。当業者には、本発明の範囲から逸脱しない多くの修正物及び変形物が明らかとなるであろう。実施形態は、本発明の原理及び実際の用途を最もよく説明するため、及び、当業者が、企図した特定の用途に適するように種々の修正を有する種々の実施形態に関して本発明を理解することができるように、選択され記述された。
【符号の説明】
【０２２７】
１００、１５０、３００：コンピューティング環境
１０２、１５２：中央プロセッサ・コンプレックス
１０４、１５４：プロセッサ・メモリ
１０８：制御ユニット
１１０：中央プロセッサ
１１１、２１２：入力／出力サブシステム
１１２：論理パーティション
１１３、１６５：プロセッサ・ファームウェア
１１４：論理パーティション・ハイパーバイザ
１６２：仮想メモリ
１６４：ホスト・ハイパーバイザ
２０２：プロセッサ
２１０：キャッシュ
３０４：メモリ
３１１：構成アーキテクチャ・モード・ファシリティ
３１２：エミュレータ・コード
３５０：ゲスト命令
３５６：ネイティブ命令
１３００：コンピュータ・プログラム製品
0006585612.tif 000005
【図１】
0006585612.tif 000006
【図２】
0006585612.tif 000007
【図３】
0006585612.tif 000008
【図４】
0006585612.tif 000009
【図５】
0006585612.tif 000010
【図６】
0006585612.tif 000011
【図７】
0006585612.tif 000012
【図８】
0006585612.tif 000013
【図９】
0006585612.tif 000014
【図１０】
0006585612.tif 000015
【図１１】
0006585612.tif 000016
【図１２】
0006585612.tif 000017
【図１３】
0006585612.tif 000018
【図１４】
0006585612.tif 000019
【図１５】
0006585612.tif 000020
【図１６】
0006585612.tif 000021
【図１７】
0006585612.tif 000022
【図１８】
0006585612.tif 000023
【図１９】
0006585612.tif 000024
【図２０】
0006585612.tif 000025
【図２１】
0006585612.tif 000026
【図２２】
0006585612.tif 000027
【図２３】
0006585612.tif 000028
【図２４】
0006585612.tif 000029
【図２５】
0006585612.tif 000030
【図２６】
0006585612.tif 000031
【図２７】
0006585612.tif 000032
【図２８】
0006585612.tif 000033
【図２９】
0006585612.tif 000034