JP2017511941A - 複数のアーキテクチャにおいて初期化することができる制御ユーティリティのための共通ブート・シーケンス - Google Patents

複数のアーキテクチャにおいて初期化することができる制御ユーティリティのための共通ブート・シーケンス Download PDF

Info

Publication number
JP2017511941A
JP2017511941A JP2016557115A JP2016557115A JP2017511941A JP 2017511941 A JP2017511941 A JP 2017511941A JP 2016557115 A JP2016557115 A JP 2016557115A JP 2016557115 A JP2016557115 A JP 2016557115A JP 2017511941 A JP2017511941 A JP 2017511941A
Authority
JP
Japan
Prior art keywords
architecture
mode
processor
instruction
cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016557115A
Other languages
English (en)
Other versions
JP6437008B2 (ja
Inventor
グシュビント、マイケル、カール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2017511941A publication Critical patent/JP2017511941A/ja
Application granted granted Critical
Publication of JP6437008B2 publication Critical patent/JP6437008B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)

Abstract

【課題】 コンピューティング環境において制御ユーティリティを初期化するための方法、コンピュータ・システム及びコンピュータ・プログラムを提供する。【解決手段】 ブート・シーケンスを変更することなく、制御ユーティリティ(例証として、例えばオペレーティング・システム、制御プログラム、又は他のスタンドアロン・ツール)を複数の構成でブートすることを可能にする共通ブート・シーケンス・ファシリティが提供される。オペレーティング・システム又は他の制御ユーティリティは、共通ブート・シーケンスを用いて、例えばESA/390などの1つのアーキテクチャにおいて初期化し、処理のために例えばz/Architectureなどの別のアーキテクチャに切り替える第1のアーキテクチャ構成、又は、例えばz/Architectureなどの別のアーキテクチャにおいて初期化し、処理する第2のアーキテクチャ構成のいずれかにおいてブートすることができる。【選択図】 図5

Description

1つ又は複数の態様は、一般に、コンピューティング環境の構成に関し、具体的には、複数の構成をサポートすることに関する。
コンピューティング環境は、環境のアーキテクチャ構成に応じて、様々な能力及び機能を提供する。IBM(登録商標)により提供される2つのアーキテクチャとして、ESA/390及びz/Architecture(登録商標)が挙げられる。ESA/390は、z/Architectureの先行アーキテクチャである。しかしながら、z/Architectureが導入された際、ESA/390は引き続きサポートされた。1つの環境において両方のアーキテクチャをサポートするために、特定の手順に従う。例えば、起動時に、ESA/390をブートし、次に、必要に応じてz/Architectureに切り替えることができる。これにより、レガシー・ソフトウェアが、変更することなく実行し続けることが可能になる。1つの環境においては、両方のアーキテクチャ構成をサポートするために、他のこうした手順が与えられる。
ソフトウェアが後のアーキテクチャに移行した場合でも先のアーキテクチャを維持すると、より複雑になる。
米国特許第5,551,013号明細書 米国特許第6,009,261号明細書 米国特許第5,574,873号明細書 米国特許第6,308,255号明細書 米国特許第6,463,582号明細書 米国特許第5,790,825号明細書
「z/Architecture−Principles of Operation」と題するIBM出版物、出版番号第SA22−7932−09、第10版、2012年9月 Plambeck他著、「Development and Attributes of z/Architecture」、IBM J.Res.&Dev.、46巻、No.4/5、2002年7月/9月
従って、当技術分野において、上述の問題に対処する必要性が存在する。
第1の態様から見ると、本発明は、コンピューティング環境において制御ユーティリティを初期化するための方法を提供し、この方法は、プロセッサにより、選択されたアーキテクチャに基づく選択されたアーキテクチャ・モードで制御ユーティリティをブートするためのブート・シーケンスを実行することであって、制御ユーティリティは、選択されたアーキテクチャのために書かれており、かつ、1つのアーキテクチャにおいて初期化し、処理のために選択されたアーキテクチャに切り替える第1のアーキテクチャ構成、又は、選択されたアーキテクチャにおいて初期化し、処理する第2のアーキテクチャ構成のうちの少なくとも1つにおいて初期化されるように構成される、実行することを含み、ブート・シーケンスを実行することは、プロセッサが、第1のアーキテクチャ構成に基づいて初期化を実行するか又は第2のアーキテクチャ構成に基づいて初期化を実行するかに関係なく、1つ又は複数の命令を実行することであって、1つ又は複数の命令は、1つ又は複数の命令が1つのアーキテクチャ及び選択されたアーキテクチャにおいて定められるという点で、1つのアーキテクチャ及び選択されたアーキテクチャに共通である、実行することを含み、実行することは、プロセッサが、1つのアーキテクチャにおいて初期化を実行するか又は選択されたアーキテクチャにおいて初期化を実行するかに関係なく、プロセッサに対するアーキテクチャ・モードの切り替えを要求するための切り替え操作を実行することであって、切り替え操作は、1つのアーキテクチャ又は選択されたアーキテクチャのどちらかのアーキテクチャに基づいて異なるように実行され、プロセッサは初期化を実行し、切り替え操作を実行することに基づいて、選択されたアーキテクチャ・モードで制御ユーティリティがブートされる。
更に別の態様から見ると、本発明は、コンピューティング環境において制御ユーティリティを初期化するためのコンピュータ・システムを提供し、このコンピュータ・システムは、メモリと、メモリと通信するプロセッサとを含み、かつ、方法を実行するように構成され、この方法は、プロセッサにより、選択されたアーキテクチャに基づく選択されたアーキテクチャ・モードで制御ユーティリティをブートするためのブート・シーケンスを実行することであって、制御ユーティリティは、選択されたアーキテクチャのために書かれており、かつ、1つのアーキテクチャにおいて初期化し、処理のために選択されたアーキテクチャに切り替える第1のアーキテクチャ構成、又は、選択されたアーキテクチャにおいて初期化し、処理する第2のアーキテクチャ構成のうちの少なくとも1つにおいて初期化されるように構成される、実行することを含み、ブート・シーケンスを実行することは、プロセッサが、第1のアーキテクチャ構成に基づいて初期化を実行するか又は第2のアーキテクチャ構成に基づいて初期化を実行するかに関係なく、1つ又は複数の命令を実行することであって、1つ又は複数の命令は、1つ又は複数の命令が1つのアーキテクチャ及び選択されたアーキテクチャにおいて定められるという点で、1つのアーキテクチャ及び選択されたアーキテクチャに共通である、実行することを含み、実行することは、プロセッサが、1つのアーキテクチャにおいて初期化を実行するか又は選択されたアーキテクチャにおいて初期化を実行するかに関係なく、プロセッサに対するアーキテクチャ・モードの切り替えを要求するための切り替え操作を実行することであって、切り替え操作は、1つのアーキテクチャ又は選択されたアーキテクチャのどちらかのアーキテクチャに基づいて異なるように実行され、プロセッサは初期化を実行し、切り替え操作を実行することに基づいて、選択されたアーキテクチャ・モードで制御ユーティリティがブートされる。
更に別の態様から見ると、本発明は、コンピューティング環境において制御ユーティリティを初期化するためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、処理回路により読み取り可能であり、かつ、本発明のステップを実行する方法を実行するための、処理回路により実行される命令を格納するコンピュータ可読ストレージ媒体を含む。
更に別の態様から見ると、本発明は、コンピュータ可読媒体上に格納され、プログラムがコンピュータ上で実行されるとき、本発明のステップを実行するためのソフトウェア・コード部分を含むデジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムを提供する。
コンピューティング環境内で制御ユーティリティを初期化するためのコンピュータ・プログラム製品を提供することにより、従来技術の欠点が克服され、利点が与えられる。コンピュータ・プログラム製品は、例えば、処理回路により読み取り可能であり、かつ、方法を実施するための、処理回路により実行される命令を格納するコンピュータ可読ストレージ媒体を含む。この方法は、例えば、プロセッサにより、選択されたアーキテクチャに基づく選択されたアーキテクチャ・モードで制御ユーティリティをブートするためのブート・シーケンスを実行することであって、制御ユーティリティは、選択されたアーキテクチャのために書かれており、かつ、1つのアーキテクチャにおいて初期化し、処理のために選択されたアーキテクチャに切り替える第1のアーキテクチャ構成、又は、選択されたアーキテクチャにおいて初期化し、処理する第2のアーキテクチャ構成のうちの少なくとも1つにおいて初期化されるように構成される、実行することを含み、ブート・シーケンスを実行することは、プロセッサが、第1のアーキテクチャ構成に基づいて初期化を実行するか又は第2のアーキテクチャ構成に基づいて初期化を実行するかに関係なく、1つ又は複数の命令を実行することであって、1つ又は複数の命令は、1つ又は複数の命令が1つのアーキテクチャ及び選択されたアーキテクチャにおいて定められるという点で、1つのアーキテクチャ及び選択されたアーキテクチャに共通である、実行することを含み、実行することは、プロセッサが、1つのアーキテクチャにおいて初期化を実行するか又は選択されたアーキテクチャにおいて初期化を実行するかに関係なく、プロセッサに対するアーキテクチャ・モードの切り替えを要求するための切り替え操作を実行することであって、切り替え操作は、1つのアーキテクチャ又は選択されたアーキテクチャのどちらかのアーキテクチャに基づいて異なるように実行され、プロセッサは初期化を実行し、切り替え操作を実行することに基づいて、選択されたアーキテクチャ・モードで制御ユーティリティがブートされる。
1つ又は複数の好ましい実施形態に関連する方法及びシステムも、本明細書で説明され、特許請求される。さらに、1つ又は複数の好ましい実施形態に関連するサービスも説明され、本発明で特許請求され得る。
付加的な特徴及び利点が実現される。他の好ましい実施形態及び態様は、本明細書で詳細に説明され、特許請求される本発明の一部であると見なされる。
ここで本発明の好ましい実施形態を、添付図面を参照して単なる例として説明する。
本発明の好ましい実施形態による、共通ブート・シーケンス・ファシリティの1つ又は複数の態様を組み込み、用いるためのコンピューティング環境の一例を示す。 本発明の好ましい実施形態による、共通ブート・シーケンス・ファシリティの1つ又は複数の態様を組み込み、用いるためのコンピューティング環境の別の例を示す。 本発明の好ましい実施形態による、共通ブート・シーケンス・ファシリティの1つ又は複数の態様を組み込み、用いるためのコンピューティング環境のさらに別の例を示す。 本発明の好ましい実施形態による、図3のメモリのさらなる詳細を示す。 本発明の好ましい実施形態による、1つのアーキテクチャ・モードでコンピューティング環境をパワーオンするための論理の1つの実施形態を示す。 本発明の好ましい実施形態による、図5のパワーオン・プロセスと関連したさらなる処理の1つの実施形態を示す。 本発明の好ましい実施形態による、プログラム状況ワード(program status word)の形式の1つの実施形態を示す。 本発明の好ましい実施形態による、図5においてパワーオンされた1つのアーキテクチャ・モードとは異なるアーキテクチャ・モードでコンピューティング環境をパワーオンするための論理の1つの実施形態を示す。 本発明の好ましい実施形態による、図8のパワーオン・プロセスと関連したさらなる処理の1つの実施形態を示す。 本発明の好ましい実施形態による、Load Program Status Word命令の1つの例示的な形式を示す。 本発明の好ましい実施形態による、Signal Processor命令の1つの例示的な形式を示す。 本発明の好ましい実施形態による、図11のSignal Processor命令と関連した処理の1つの実施形態を示す。 本発明の好ましい実施形態による、制御ユーティリティがESA/390で初期化されるブートを実施するための論理の1つの実施形態を示す。 制御ユーティリティがz/Architectureで初期化されるブートを実施するための論理の1つの実施形態を示す。 本発明の好ましい実施形態による、共通ブート・シーケンスのための論理の1つの実施形態を示す。 本発明の好ましい実施形態による、共通ブート・シーケンスのための論理の別の実施形態を示す。 本発明の好ましい実施形態による、Extract Program Status Word命令の1つの例示的な形式を示す。 本発明の好ましい実施形態による、共通ブート・シーケンスのための論理の更に別の実施形態を示す。 本発明の好ましい実施形態による、制御ユーティリティをリブートするためにリセットを実施するための論理の1つの実施形態を示す。 本発明の好ましい実施形態による、制御ユーティリティをリブートするためにリセットを実施するための論理の別の実施形態を示す。 本発明の好ましい実施形態による、制御ユーティリティをリブートするためにリセットを実施するための論理のさらに別の実施形態を示す。 本発明の好ましい実施形態による、互換性のない制御ユーティリティを、これがブート・シーケンスと関連するときに検出するための論理の1つの実施形態を示す。 本発明の好ましい実施形態による、制御ユーティリティのブートの実施と関連した処理の1つの実施形態を示す。 従来技術による、本発明の好ましい実施形態を実装できる、コンピュータ・プログラム製品の1つの実施形態を示す。 従来技術による、本発明の好ましい実施形態を実装できる、ホスト・コンピュータ・システムの1つの実施形態を示す。 従来技術による、本発明の好ましい実施形態を実装できる、コンピュータ・システムの更に別の例を示す。 従来技術による、本発明の好ましい実施形態を実装できる、コンピュータ・ネットワークを含むコンピュータ・システムの別の例を示す。 従来技術による、本発明の好ましい実施形態を実装できる、コンピュータ・システムの種々の要素の1つの実施形態を示す。 従来技術による、本発明の好ましい実施形態を実装できる、図28のコンピュータ・システムの実行ユニットの1つの実施形態を示す。 従来技術による、本発明の好ましい実施形態を実装できる、図28のコンピュータ・システムの分岐ユニットの1つの実施形態を示す。 従来技術による、本発明の好ましい実施形態を実装できる、図28のコンピュータ・システムのロード/ストア・ユニットの1つの実施形態を示す。 エミュレートされたホスト・コンピュータ・システムの1つの実施形態を示す。 従来技術による、本発明の好ましい実施形態を実装できる、クラウド・コンピューティング・ノードの1つの実施形態を示す。 従来技術による、本発明の好ましい実施形態を実装できる、クラウド・コンピューティング環境の1つの実施形態を示す。 従来技術による、本発明の好ましい実施形態を実装できる、抽象化モデル層の一例を示す。
1つ又は複数の態様によると、制御ユーティリティ(例えば、オペレーティング・システム、制御プログラム、又は、例として保守及び管理(例えば、ダンプ、ディスク・フォーマット)ユーティリティのようなオペレーティング・システムを必要とせずにブートされる他のスタンドアロン・ツール)が、ブート・シーケンスを変更することなく、複数の構成でブートされることを可能にする共通ブート・シーケンス・ユーティリティが提供される。例えば、オペレーティング・システム又は他の制御ユーティリティは、例えばESA/390などの1つのアーキテクチャで初期化し、次にz/Architectureのような、処理のために別のアーキテクチャに切り替える第1のアーキテクチャ構成、又は、例えばz/Architectureなどの他のアーキテクチャで初期化及び処理を行う第2のアーキテクチャ構成のいずれかでブートすることを可能にする共通ブート・シーケンス・ユーティリティを使用する。
z/Architectureを段階的に導入する場合、制御ユーティリティは、z/Architectureの先行であるESA/390でブートを続行し、次に、ブート・シーケンス中、処理は、z/Architectureに切り替える。このことは、レガシー・ソフトウェアが、変更することなく実行し続けることを可能にした。しかしながら、z/Architectureに直接ブートすることが望ましい場合があり得る。従って、制御ユーティリティが、いずれの構成でもトランスペアレントにブートされるのを可能にする共通ブート・シーケンス(common boot sequence)が提供される。例えば、z/Architecture用に書かれているオペレーティング・システムは、ブート・シーケンスを用いて、ESA/390でブートされ、次にz/Architectureに切り替えられるか、又は直接z/Architectureでブートされる。本明細書での実施形態は、ESA/390及びz/Architectureを参照して説明されるが、1つ又は複数の態様は、他のアーキテクチャにも適用可能である。
図1を参照して、共通ブート・シーケンス・ファシリティの1つ又は複数の態様を組み込み、用いるためのコンピューティング環境の一例を説明する。図1を参照すると、一例において、コンピューティング環境100は、IBMにより提供されるz/Architectureに基づいている。z/Architectureは、非特許文献1に記載されている。コンピューティング環境はz/Architectureに基づいているが、1つの好ましい実施形態においては、コンピューティング環境は、ESA/390のような1つ又は複数のアーキテクチャ構成もサポートする。
一例として、コンピューティング環境100は、1つ又は複数の制御ユニット108を介して、1つ又は複数の入力/出力(I/O)デバイス106に結合された中央プロセッサ・コンプレックス(CPC)102を含む。中央プロセッサ・コンプレックス102は、例えば、1つ又は複数の中央プロセッサ(中央処理ユニット(CPU)としても知られる)110及び入力/出力サブシステム111に結合されたプロセッサ・メモリ104(主メモリ、主ストレージ、中央ストレージとも呼ばれる)を含み、これらの各々を以下に説明する。
プロセッサ・メモリ104は、例えば、1つ又は複数のパーティション112(例えば、論理パーティション)と、論理パーティション・ハイパーバイザ114及び他のプロセッサ・ファームウェア115を含むプロセッサ・ファームウェア113とを含む。論理パーティション・ハイパーバイザ114の一例は、Processor Resource/System Manager(商標)(PR/SM)である。IBM、z/OS、z/VM、z/Architecture及びProcessor Resource/System Managerは、世界中の多数の管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。
論理パーティションは、別個のシステムとして機能し、かつ、1つ又は複数のアプリケーション120、及び任意に、各々の論理パーティションについて異なり得る、内部の常駐オペレーティング・システム122とを有する。1つの好ましい実施形態において、オペレーティング・システムは、ニューヨーク州アーモンク所在のインターナショナル・ビジネス・マシーンズ・コーポレーションにより提供されるz/OSオペレーティング・システム、z/VMオペレーティング・システム、z/Linuxオペレーティング・システム、又はTPFオペレーティング・システムである。例として、オペレーティング・システムは、共通ブート・シーケンス・ファシリティ124を含むことができ、又は、オペレーティング・システムとは別個に共通ブート・シーケンス・ファシリティを提供し、これを用いてオペレーティング・システムをブートする(又は、初期化する)ことができる。
論理パーティション112は、プロセッサ110上で実行されているファームウェアが実装する論理パーティション・ハイパーバイザ114により管理される。本明細書で用いられるファームウェアは、例えば、プロセッサのマイクロコード及び/又はミリコードを含む。ファームウェアは、例えば、より上位レベルのマシン・コードの実装に用いられる、ハードウェア・レベルの命令及び/又はデータ構造体を含む。1つの好ましい実施形態において、ファームウェアは、例えば、典型的には、信頼できるソフトウェアを含むマイクロコードとして又は基礎をなすハードウェアに特有のマイクロコードとして配信される独自のコードを含み、システム・ハードウェアへのオペレーティング・システムのアクセスを制御する。
中央プロセッサ110は、論理パーティションに割り当てられた物理プロセッサ・リソースである。特に、各論理パーティション112は、その各々がパーティションに割り当てられた物理プロセッサ110の全て又は割り当て分(share)を表す、1つ又は複数の論理プロセッサを有する。特定のパーティション112の論理プロセッサは、そのパーティション専用とし、そのパーティションに対して基礎をなすプロセッサ・リソース110が予約されるようにしても、又は、別のパーティションと共有し、基礎をなすプロセッサ・リソースが潜在的に別のパーティションに利用可能であるようにしてもよい。一例において、CPUの1つ又は複数は、本明細書で説明される構成アーキテクチャ・モード・ファシリティ130の態様を含むことができる。
入力/出力サブシステム111は、入力/出力デバイス106と主ストレージ104との間の情報の流れを方向付ける。この入力/出力サブシステム111は、中央処理コンプレックスに結合され、中央処理コンプレックスの一部とすることも又はそれとは別個のものとすることもできる。I/Oサブシステムは、中央プロセッサを、入力/出力デバイスと直接通信するタスクから解放し、データ処理が、入力/出力処理と同時に進行することを可能にする。通信を提供するために、I/Oサブシステムは、I/O通信アダプタを用いる。例えば、チャネル、I/Oアダプタ、PCIカード、イーサネット・カード、Small Computer System Interface(SCSI)カード等を含む、種々のタイプの通信アダプタがある。本明細書で説明される特定の例において、I/O通信アダプタはチャネルであり、従って、I/Oサブシステムは、本明細書ではチャネル・サブシステムと呼ばれる。しかしながら、これは一例にすぎない。他のタイプのI/Oサブシステムを用いることもできる。
I/Oサブシステムは、入力/出力デバイス106との間の情報の流れを管理する際に、1つ又は複数の入力/出力経路を通信リンクとして使用する。この特定の例において、通信アダプタはチャネルであるので、これらの経路は、チャネル経路と呼ばれる。
図2を参照して、共通ブート・シーケンス・ファシリティの1つ又は複数の態様を組み込み、用いるためのコンピューティング環境の別の例を説明する。この例では、コンピューティング環境200は、z/Architecture及びESA/390を含む複数のアーキテクチャ・モード用に構成することができる、パーティション化されていない環境を含む。例えば、コンピューティング環境200は、例えば構成アーキテクチャ・モード・ファシリティ204及び1つ又は複数のキャッシュ206を含むプロセッサ(中央処理ユニット−CPU)202を含む。プロセッサ202は、1つ又は複数のキャッシュ210を有するメモリ部分208及び入力/出力(I/O)サブシステム212に通信可能に結合される。I/Oサブシステム212は、例えば、データ入力デバイス、センサ、及び/又はディスプレイなどの出力デバイスを含むことができる外部I/Oデバイス214に通信可能に結合される。
一例において、メモリ部分208はまた、ブート時に共通ブート・シーケンス222を使用する、オペレーティング・システムのような少なくとも1つの制御ユーティリティ220も含む。
図3を参照して、共通ブート・シーケンス・ファシリティの1つ又は複数の態様を組み込み、用いるためのコンピューティング環境の別の好ましい実施形態を説明する。この例では、コンピューティング環境300は、例えば1つ又は複数のバス308及び/又は他の接続を介して互いに結合された、例えば、ネイティブ中央処理ユニット(CPU)302、メモリ304、及び1つ又は複数の入力/出力デバイス及び/又はインターフェース306を含む。例として、コンピューティング環境300は、PowerPC(登録商標)プロセッサ又はPower Systems(商標)サーバ;カリフォルニア州Palo Alto所在のHewlett Packard Co.により提供されるIntel(登録商標)Itanium(登録商標)IIプロセッサを伴うHP Superdome;及び/又は、インターナショナル・ビジネス・マシーンズ・コーポレーション、Hewlett Packard、Intel、Oracle、又はその他により提供されるアーキテクチャに基づく他のマシンを含むことができる。PowerPC及びPower Systemsは、世界中の多数の管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標であり、Intel及びItaniumは、Intelは、米国及び他の国々におけるIntel Corporation又はその子会社の商標又は登録商標である
ネイティブ中央演算処理ユニット302は、環境内での処理の際に用いられる、1つ又は複数の汎用レジスタ及び/又は1つ又は複数の専用レジスタなどの1つ又は複数のネイティブ・レジスタ310、及び任意に、構成アーキテクチャ・モード・ファシリティ311を含む。これらのレジスタは、任意の特定の時点における環境の状態を表す情報を含む。
さらに、ネイティブ中央演算処理ユニット302は、メモリ304内に格納された命令及びコードを実行する。1つの特定の例において、中央演算処理ユニットは、メモリ304内に格納されたエミュレータ・コード312を実行する。このコードにより、1つのアーキテクチャにおいて構成されたコンピューティング環境が、1つ又は複数の他のアーキテクチャをエミュレートすることが可能になる。例えば、エミュレータ・コード312により、PowerPCプロセッサ、PowerSytemsサーバ、HP Superdomeサーバ又は他のものなどの、z/Architecture以外のアーキテクチャに基づくマシンが、z/Architecture(及び/又はESA/390)をエミュレートし、z/Architectureに基づいて開発されたソフトウェア及び命令を実行することが可能になる。
図4を参照して、エミュレータ・コード312に関する更なる詳細が、説明される。ゲスト命令350が、ネイティブCPU302のもの以外のアーキテクチャにおいて実行されるように開発されたソフトウェア命令(例えば、マシン命令と相関する)を含む。例えば、ゲスト命令350は、z/Architectureプロセッサ202上で実行されるように設計されるが、代わりに、例えばIntel Itanium IIプロセッサとすることができるネイティブCPU302上でエミュレートされることもある。一例において、ゲスト命令は、共通ブート・シーケンス351を含む。一例において、エミュレータ・コード312は、メモリ304から1つ又は複数のゲスト命令350を取得し、取得された命令に対してローカル・バッファリングを任意に提供するための命令フェッチ・ルーチン352を含む。エミュレータ・コード312また、取得されたゲスト命令のタイプを判断し、ゲスト命令を1つ又は複数の対応するネイティブ命令356に変換するための命令変換ルーチン354も含む。この変換は、例えば、ゲスト命令により実施される機能を識別することと、その機能を実施するためのネイティブ命令を選択することとを含む。
さらに、エミュレータ・コード312は、ネイティブ命令を実行させるためのエミュレーション制御ルーチン360を含む。エミュレーション制御ルーチン360は、ネイティブCPU302に、1つ又は複数の以前に取得されたゲスト命令をエミュレートするネイティブ命令のルーチンを実行させ、こうした実行の最後に、次のゲスト命令又はゲスト命令のグループの取得をエミュレートするように、制御を命令フェッチ・ルーチンに戻させることができる。ネイティブ命令356の実行は、データをメモリ304からレジスタにロードすること、データをレジスタから再びメモリに格納すること、又は変換ルーチンによって定められるような何らかのタイプの算術演算又は論理演算を実施することを含むことができる。
各ルーチンは、例えば、メモリ内に格納され、ネイティブ中央処理ユニット302によって実行される、ソフトウェアで実装される。他の例において、1つ又は複数のルーチン又は演算は、ファームウェア、ハードウェア、ソフトウェア、又はそれらの何らかの組み合わせで実装される。エミュレートされるプロセッサのレジスタは、ネイティブCPUのレジスタ310又はメモリ304内の位置を使用して、エミュレートすることができる。好ましい実施形態において、ゲスト命令350、ネイティブ命令356、及びエミュレータ・コード312は、同一のメモリ内に存在してもよく、又は、異なるメモリ・デバイスの間に分配されてもよい。
上述したコンピューティング環境は、使用することができるコンピューティング環境の例に過ぎない。これらに限定されるものではないが、他のパーティション化されていない環境、他のパーティション化された環境、及び/又は他のエミュレートされた環境を含む他の環境を用いてもよく、実施形態は、いずれか1つの環境に限定されるものではない。
本明細書で説明されるように、例えば、制御ユーティリティが第1のアーキテクチャ・モード(例えば、ESA/390のようなレガシー・モード)で初期化され、次に、処理が第2のアーキテクチャ・モード(例えば、z/Architectureのような強化されたモード)に切り替えられる第1の構成;又は、制御ユーティリティが、例えば第2のアーキテクチャ・モードで初期化され、処理を行う第2の構成を含む、複数のアーキテクチャ構成の1つで、制御ユーティリティをブートするための共通ブート・シーケンス(common boot sequence)が提供される。1つの実施形態において、第1のアーキテクチャ・モードは、第1の命令セット・アーキテクチャを含み、かつ、31ビット・アドレッシング、32ビットの汎用レジスタの使用及び種々のファシリティといった、第1の組のサポートされた特徴部を有する。さらに、第2のアーキテクチャ・モードは、第2の命令セット・アーキテクチャを含み、かつ、64ビット・アドレッシング、64ビットの汎用レジスタの使用、並びに動的アドレス変換及び/又は他のファシリティなどの種々のファシリティといった第2の組のサポートされた特徴部を有する。
1つの実施形態において、構成アーキテクチャ・モード・ファシリティをインストールすることにより、制御ユーティリティが初期化され、z/Architectureのような選択されたアーキテクチャ・モードで直接処理する第2の構成が容易にされる。本明細書で説明されるようなこのファシリティは、選択されたアーキテクチャ・モードでコンピューティング環境をブートするコンピューティング環境(例えば、プロセッサ、LPAR、仮想ゲスト)のためのパワーオン又はブート・シーケンスを提供する。従って、共通ブート・シーケンスに関する更なる詳細を提供する前に、構成アーキテクチャ・モード・ファシリティの態様を説明する。しかしながら、共通ブート・シーケンスの能力は、構成アーキテクチャ・モード・ファシリティを含まない環境においても用い得ることに留意されたい。
1つの実施形態において、環境の再構成を制御するために、コンピューティング環境の1つ又は複数のプロセッサ(例えば、中央処理ユニット)内に、構成アーキテクチャ・モード(CAM)ファシリティがインストールされる。例えば、CAMが、複数のアーキテクチャ・モードをサポートするコンピューティング環境内にインストールされると、コンピューティング環境は、アーキテクチャ・モードの少なくとも1つの1つ又は複数の態様の使用が制限されるように再構成される。
構成アーキテクチャ・モード・ファシリティの1つの特定の例は、構成z/Architectureアーキテクチャ・モード(Configuration z/Architecture Architectural Mode、CZAM)ファシリティである。例えば、CZAMのインストールは、例えば1に設定されたビット138などのファシリティ・インストール・インジケータにより示される。1つの特定の例において、ビット138が1に設定されると、CZAMファシリティがインストールされ、インストール時に、通常リセット及びクリア・リセットにより、構成がz/Architectureアーキテクチャ・モードになる。従って、一例において、例えば、z/Architectureアーキテクチャ・モードを示す、ビット2などのファシリティ・ビットは、アクティブであり、同じく1に設定される。
CZAMのインストールに基づいて、コンピューティング環境(例えば、シングル・プロセッサ、論理パーティション、仮想ゲスト等)は、例えばESA/390などの選択されたアーキテクチャの1つ又は複数の態様がもはやサポートされなくなるように、再構成される。もはやサポートされなくなる種々の態様、及び/又はCZAMのインストールにより影響を受ける特定のプロセスが、以下に説明される。本明細書に説明される好ましい実施形態において、複数のアーキテクチャ・モードは、レガシー・アーキテクチャ(例えば、ESA/390)及び強化されたアーキテクチャ(例えば、z/Architecture)を含み、レガシー・アーキテクチャ(ESA/390)の態様は、もはやサポートされないが、他の好ましい実施形態は、他のアーキテクチャを含むことができる。ESA/390及びz/Architectureは、例に過ぎない。
CZAMのインストールにより影響を受ける1つのプロセスは、パワーオン・プロセスである。このプロセスがどのように影響を受けるかを説明するために、最初に、図5−図6を参照して、複数のアーキテクチャ構成をサポートし、CZAMファシリティを含まない環境についてのパワーオン・プロセスを説明し、次に、図8−図9を参照して、複数のアーキテクチャ構成をサポートし、CZAMファシリティを含む環境についてのパワーオン・プロセスを説明する。システムのパワーオンは、例えば、システムを開始し、ブート・シーケンス又はシステムにおける開始操作の他の手段を開始することを含む。パワーオンは、物理的パワーオン、ハードウェア・リセット、及び/又は仮想パワーオン(例えば、エミュレートされたシステム、仮想マシン、又はゲスト環境における)に対応し得る。
最初に図5を参照すると、コンピューティング環境のプロセッサをパワーオンし、例えば、ロード・ノーマル・キー又はロード・クリア・キーなどのオペレータ・キーをアクティブ化することに基づいて、プロセッサは、ロード状態になり、コンピューティング環境を、例えばESA/390モードなどの特定のアーキテクチャ・モードに設定する(ステップ400)。例えば、チャネル制御ワード(channel control word、CCW)の初期プログラム・ロード(initial program load、IPL)のような初期プログラム・ロード(IPL)が実行される(ステップ402)。初期プログラム・ローディングは、指定されたデバイスからプログラムを読み取り、そのプログラムの実行を開始するための手動手段を提供する。CCWタイプのIPLは、ロード・ユニット・アドレス制御を、入力デバイスを指示する4桁の数字に設定し、その後、特定のCPUについてロード・クリア・キー又はロード・ノーマル・キーのアクティブ化により、手作業で開始される。
ロード・クリア・キーをアクティブにすると、構成に対してクリア・リセットが実行され、ロード・ノーマル・キーをアクティブ化すると、このCPU(キーがアクティブにされたCPU)に対して初期CPUリセットが実行され、CPUリセットが構成内の他の全てのCPUに伝搬され、構成の残りに対してサブシステム・リセットが実行される。ロード・クリア・キー又はロード・ノーマル・キーをアクティブ化すると、アーキテクチャ・モード(例えば、ESA/390)が設定される。
操作のローディング部分の中で、リセットが実行された後は、このCPUはロード状態に入る。このCPUは、リセット操作の実行中、必ずしも停止状態に入るとは限らない。CPUがロード状態にあるときは、ロード・インジケータはオンである。
その後、ロード・ユニット・アドレス制御により指定されているI/Oデバイスから、チャネル・プログラム読み取り操作が開始される。チャネル・プログラムの実行効果は、あたかも、絶対ストレージ位置0で始まる形式0のCCWで、修飾子ビットを0、データ・アドレスを0、バイト・カウントを24、チェーン・コマンド及びSLIフラグを1、そして他の全てのフラグを0に設定して、読み取りコマンドを指定した場合と同じになる。
IPLの入力/出力操作が正常に完了すると、IPLデバイスのサブシステム識別ワードが、選択された絶対ストレージ位置(例えば、位置184−187)に格納され、他の選択された絶対ストレージ位置(例えば、位置188−191)には0が格納され、選択された絶対ストレージ位置(例えば、位置0−7)から、新しいプログラム状況ワード(PSW)がロードされる(ステップ404)。プログラム状況ワードは、コンピューティング環境の操作を制御する。
PSWロードが成功し、マシンの誤動作が検出されなければ、このCPUはロード状態を終了し、ロード・インジケータはオフにされる。速度制御が処理の位置に設定されている場合、CPUは動作状態になり、新しいプログラム状況ワード(PSW)の制御下で、コンピューティング環境の操作が進行する(ステップ406)。次に、図6を参照してさらに説明されるように、ブートされたコンピューティング環境が実行される(ステップ408)。
図6を参照すると、ブートされたコンピューティング環境が、ESA/390モードで開始され(ステップ420)、従って、操作は、ESA/390モードで実行される(ステップ422)。ある時点で、アーキテクチャ・モードをESA/390からz/Architectureに変更する要求を行うことができる。具体的には、プログラムは、指令コード(order code)(例えば、Set Architecture(アーキテクチャ設定)を指定するコード)をプロセッサに送り、プロセッサは、ESA/390モードからz/Architectureモードに切り替えるための指令コードによりSignal Processor(SIGP)命令を発行する(ステップ424)。例えば、Signal Processor命令(後述される)及びアーキテクチャ設定のためのものを含む、指令コードを解釈し、サーバ上で実行するための機構を含むCPUの信号発信(signaling)及び応答ファシリティが使用される。ファシリティは、割り当てられた指令コードのセットを伝送し、受信し、デコードする;指定された操作を開始する;及びCPUの信号発信に応答することを含む、CPU間の通信を提供する。アーキテクチャ設定の使用により、アーキテクチャ・モードは、所望の構成、例えばz/Architectureに設定される。この処理の更なる詳細を以下にさらに説明する。
その後、SIGP操作が受け入れられたかどうかについての判断が行われる(問い合わせ426)。戻りコードに基づいて、CPUが既にコードに指定されたアーキテクチャ・モードにある(即ち、アーキテクチャ設定が現在のモード自体への切り替えを表すか、又はこれが1つのモードから別のモードへの切り替えであるかどうか)の判断がなされたときの「無効パラメータ」表示を含む、多数のエラー条件を診断することができる。SIGPが受け入れられ、アーキテクチャ設定がレガシー・モード切り替え操作を表す場合、SIGP操作を受けたコンピューティング環境の全てのプロセッサは、例えば、本明細書で説明されるアーキテクチャ設定処理を用いて、z/Architectureにモードに移行する(ステップ428)。しかしながら、SIGP操作が合法でない場合、エラーが示される(ステップ430)。
上述のように、パワーオン操作により、プログラム状況ワードがロードされる。図7を参照して、プログラム状況ワード(PSW)の形式の1つの実施形態を説明する。図7を参照すると、この例では、プログラム状況ワードの形式は、以下に示されるようにビット31がEAとして示される点を除いて、ESA/390の形式である。
1つの実施形態において、プログラム状況ワード500は、一例として、以下のフィールドを含む。
マスク毎(Per Mask)(R)502:ビット1は、CPUがプログラム・イベント記録(PER)と関連した割り込みに関してイネーブルにされるかどうかを制御する。ビットが0である場合、PERイベントが割り込みを引き起こすことはない。ビットが1である場合、割り込みは許容され、制御レジスタ9内のPERイベント・マスク・ビットに左右される。
DATモード(T)504:ビット5は、ストレージにアクセスするのに用いられる論理及び命令アドレスの暗黙的な動的アドレス変換(DAT)が行われるかどうかを制御する。ビットが0である場合、DATはオフであり、論理及び命令アドレスは実アドレスとして扱われる。ビットが1である場合、DATはオンであり、動的アドレス変換機構が呼び出される。
I/Oマスク(IO)506:ビット6は、CPUが、I/O割り込みに関してイネーブルにされるかどうかを制御する。ビットが0である場合、I/O割り込みが発生することはない。ビットが1である場合、I/O割り込みは、制御レジスタ6内のI/O割り込みサブクラス・マスク・ビットに左右される。I/O割り込みサブクラス・マスク・ビットが0である場合、そのI/O割り込みサブクラスに対するI/O割り込みが発生することはなく、I/O割り込みサブクラス・マスク・ビットが1である場合、そのI/O割り込みサブクラスに対するI/O割り込みが発生することがある。
外部マスク(EX)508:ビット7は、CPUが、外部クラス内に含まれる条件による割り込みに関してイネーブルにされるかどうかを制御する。ビットが0である場合、外部割り込みが発生することはない。ビットが1である場合、外部割り込みは、制御レジスタ0内の対応する外部サブクラス・マスク・ビットに左右される。サブクラス・マスク・ビットが0である場合、サブクラスと関連した条件が割り込みを発生させることはない。サブクラス・マスク・ビットが1である場合、そのサブクラス内の割り込みが発生し得る。
PSWキー(キー)510:ビット9−11は、CPUによるストレージ参照のためのアクセス・キーを形成する。参照がキー制御保護を受ける場合、情報が格納されるとき又はフェッチから保護される記憶位置から情報がフェッチされるとき、PSWキーがストレージ・キーと適合される。しかしながら、Move to Primary、Move to Secondary、Move with Key、Move with Source Key、及びMove with Destination Keyの各々のオペランドの1つ、並びに、Move with Optional Specificationsのいずれか又は両方のオペランドでは、オペランドとして指定されるアクセス・キーが、PSWキーの代わりに使用される。
ビット12 512:このビットは、現在のアーキテクチャ・モードを示す。このビットは、ESA/390 PSW形式の場合、1に設定される。z/Architecture PSW形式の場合、このビットは、0になるように定められる。z/Architectureモードにあるとき、真のz/Architecture PSW(命令アドレスをビット64−127に有することを含む、本明細書で説明される形式とは異なる形式を有する)をロードするために、load PSW extended(ロードPSW拡張)(LPSWE)命令が定められる。しかしながら、ESA/390ロードPSW(LPSW)は依然としてサポートされ、これを用いてESA/390形式のPSWをロードすることができる。LPSWが実行され、コンピューティング環境がz/Architectureモードにあるとき、プロセッサは、ESA/390形式のPSWを、ビット12を反転させることを含む、z/Architecture形式に拡張する。これは、オペレーティング・システムが、ESA/390形式のPSWを生成するために実行するz/ArchitectureのPSW形式を折りたたむ(collapse)のと逆である。つまり、ESA/390及びz/Architectureの両方をサポートするコンピューティング環境において、PSWのコピーはストレージ内に入れられ、オペレーティング・システムは、完全なz/Architecture PSWを、ESA/390 PSWのサイズ及び形式に折りたたむ。従って、PSW形式の依存関係を用いる他のソフトウェアは、z/Architecture PSWに気付くことができない。
マシン・チェック・マスク(M)514:ビット13は、CPUが、マシン・チェック条件による割り込みに対してイネーブルにされるかどうかを制御する。ビットが0である場合、マシン・チェック割り込みが発生することはない。ビットが1である場合、システム損傷及び命令処理損傷に起因するマシン・チェック割り込みが許容されるが、他のマシン・チェック・サブクラス条件に起因する割り込みは、制御レジスタ14内のサブクラス・マスク・ビットに左右される。
待機状態(W)516:ビット14が1である場合、CPUは待機中である、つまり、命令はCPUにより処理されず、割り込みが発生し得る。ビット14が0である場合、命令のフェッチ及び実行は、通常の方法で行われる。ビットが1である場合、待機インジケータは1である。
問題状態(P)518:ビット15が1である場合、CPUは問題状態(problem state)にある。ビット15が0である場合、CPUは、スーパーバイザ状態(supervisor state)にある。スーパーバイザ状態においては、全ての命令が有効である。問題状態においては、意味のある情報を問題プログラムに提供し、かつ、システムの完全性に影響を与えることのない命令のみが有効であり、そうした命令は、非特権(unprivileged)命令と呼ばれる。問題状態において有効ではない命令は、特権(priviledged)命令と呼ばれる。問題状態において、CPUが特権命令を実行しようと試みるとき、特権操作例外が認識される。準特権(semiprivileged)命令と呼ばれる命令の別のグループは、特定の権限試験が満たされる場合にのみ、問題状態においてCPUにより実行され、そうでない場合には、違反した特定の要件に応じて、特権操作例外又は何らかの他のプログラム例外が認識される。
アドレス空間制御(AS)520:ビット16及び17は、PSWビット5と共に、変換モードを制御する。
条件コード(CC)522:ビット18及び19は、条件コードの2つのビットである。条件コードは、特定の命令の実行において得られる結果に応じて、0、1、2、又は3に設定される。大部分の算術及び論理演算、並びに一部の他の演算が、条件コードを設定する。命令BRANCH ON CONDITIONは、分岐のための基準として、条件コード値の任意の選択を指定することができる。
プログラム・マスク524:ビット20−23は、4つのプログラム・マスク・ビットである。各ビットは、次のように、プログラム例外と関連付けられる。
Figure 2017511941
マスク・ビットが1のとき、例外は割り込みをもたらす。マスク・ビットが0のとき、割り込みは発生しない。HFP・有効数字・マスク・ビットのHFP・指数・アンダー・フロー・マスク・ビットの設定もまた、対応する例外が発生するときに演算が完了する方式を決定する。
拡張アドレッシング・モード(EA)526:ビット31は、ビット32、即ち基本アドレッシング・モード・ビットと併せて、有効アドレス(effective address)のサイズ及び有効アドレス生成を制御する。ビット31が0の場合、アドレッシング・モードは、ビット32により制御される。ビット31及び32が両方とも1の場合、64ビット・アドレッシングが指定される。
基本アドレッシング・モード(BA)528:ビット31及び32は、有効アドレスのサイズ及び有効アドレスの生成を制御する。ビット31及び32の両方が0の場合、24ビット・アドレッシングが指定される。ビット31が0であり、ビット32が1である場合、31ビット・アドレッシングが指定される。ビット31及び32の両方とも1である場合、64ビット・アドレッシングが指定される。ビット31 1及びビット32 0は、指定例外を認識させる無効な組み合わせである。アドレッシング・モードは、DAT、ASN、ディスパッチ可能ユニット制御、リンケージ、エントリ、及びトレース・テーブル又はアクセス・リスト又はリンケージ・スタックにアクセスするのに用いられる、PERアドレス又はアドレスのサイズを制御しない。PSWのビット31及び32によるアドレッシング・モードの制御は、次のように要約される。
Figure 2017511941

命令アドレス530:PSWのビット33−63は、命令アドレスである。アドレスは、CPUが待機状態(PSWのビット14が1)でない限り、実行される次の命令の左端バイトの位置を指定する。
1つの態様によると、構成z/Architecruteアーキテクチャ・モード(CZAM)ファシリティのような構成アーキテクチャ・モード・ファシリティが、コンピューティング環境にインストールされ、アクティブ化されると、パワーオン・プロセスが変更される。図8を参照して、CZAMパワーオン・プロセスの1つの実施形態が説明される。
図8を参照すると、コンピューティング環境のプロセッサのパワーオンに基づき、CZAMがインストールされると、コンピューティング環境が、例えば、z/Architectureモード(ESAMEとも呼ばれる)などの構成アーキテクチャ・モード・ファシリティが指定する特定のアーキテクチャ・モードに設定される(ステップ600)。例えば、ステップ602において、上述のように、チャネル制御ワード(CCW)初期プログラム・ロード(IPL)のような初期プログラム・ロード(IPL)が実行され、IPL入力/出力操作が正常に完了すると、IPLデバイスについてのサブシステム識別ワードが選択された絶対ストレージ位置(例えば、位置184−187)に格納され、他の選択された絶対ストレージ位置(例えば、位置188−191)に0が格納され、この実施形態において、絶対ストレージ位置(例えば、位置0−7)から、16バイトの新しいプログラム状況ワード(PSW)が生成される(ステップ604)。新しい16バイトPSWは、例えば、選択されたストレージのダブルワード(例えば、位置0−7)から形成される。ダブルワードのビット12は、1となり、そうでない場合は、エラーが示され得る。(エラーは、認識される指定例外、マシン・チェック、又は別のエラー表示であり得る)。新しく作成されたPSWのビット0−32は、ビット12が反転されることを除いて、選択されたダブルワードのビット0−32に設定される。新しく作成されたPSWのビット33−96は、0に設定される。新しく作成されたPSWのビット位置97−127は、選択されたダブルワードのビット33−63から初期化される。
1つの実施形態において、命令によりロードされるPSWフィールドは、それらがロードされる前に、妥当性に関してチェックされない。1つの実施形態において、PSWのビット12は、妥当性に関してチェックされる。さらに別の実施形態において、全てのフィールドは、妥当性に関してチェックされる。別の実施形態において、PSWのロード前にチェックされなかったいずれのビットも、PSWが初期化された後、妥当性に関してチェックされ、プロセッサは、エラーを示し得る(例えば、認識される指定例外、マシン・チェック、又は別のエラー表示を生成することによって)。
コンピューティング環境が動作状態になり、新しいプログラム状況ワード(PSW)の制御下コンピューティング環境の動作が進行する(ステップ606)。図9を参照してさらに説明されるように、ブートされたコンピューティング環境が実行される(ステップ608)。
図9を参照すると、ブートされたコンピューティング環境が、z/Architectureモードで開始され(ステップ620)、従って、動作は、z/Architectureモードで実行される(ステップ622)。モード切り替えは不要であり、処理は、z/Architectureモードでの処理を直接続行する。従って、1つの実施形態において、以下のステップ:即ち、ESA/390モードからz/Architectureモードに切り替えるためのプロセッサ信号発信(SIGP)操作;SIGP操作が受け入れられる操作であるかどうかの判断;SIGP操作が受け入れられる操作である場合のz/Architectureへの移行;又は、SIGP操作が受け入れられない場合のエラー表示は、必要とされない。
コンピューティング環境のプロセッサの全て(すなわち、シングル・プロセッサ、論理パーティション、VMゲストなどの構成されている環境)は、上述のステップを行うことなく、z/Architectureモードにある。従って、本明細書で説明されるように、1つの態様によれば、ESA/390モードでブート又はパワーオンする能力が、ESA/390及びz/Architectureの両方のために構成されるコンピューティング環境から除去される。具体的には、コンピューティング環境は、複数のアーキテクチャをサポートするように構成されるが、構成されたアーキテクチャの少なくとも1つの態様を制限するための機能が与えられ、態様の1つは、そのアーキテクチャでパワーオンするための能力である。
1つ又は複数の好ましい実施形態において、z/Architectureモードでのパワーオンは、(1)論理パーティション(ゲスト−1)及び(2)論理パーティション、及びESA/390モードでブートする必要なしにz/Architectureモードでブート及びリセットされるゲスト−2、のうちの一方を指定するための機構を提供する。この特徴は、無条件に又は構成切り替えの制御下でインストールすることができる。
PSW初期化に関するブート・シーケンスが修正される。例えば、IPLの終わりに、絶対位置0−7におけるIPL PSWがロードされる。リセット条件がESA/390であるとき現在行われているように、ビット12は、有効なESA/390アーキテクチャ・モードにする1であり、プログラムは、ESA/390アーキテクチャ・モードでの命令の実行を続行する。CZAMがインストールされた場合、リセット条件はz/Architectureであり、ビット12は、依然として、有効なESA/390アーキテクチャ・モードにする1であるが、上述のように、16バイトz/Architectureの現PSWの形成の際、ビット12は反転される。
パワーオン・プロセスに加えて、他のプロセス、挙動及び/又は操作も、構成アーキテクチャ・モード・ファシリティのインストールにより変更される又は影響を受けることがある。これらの影響を受けるプロセス、挙動、及び/又は操作は、ESA/390及びz/Architectureモードに特有である。しかしながら、他のタイプのアーキテクチャにおいて、類似の及び/又は異なるプロセスが影響を受けることがある。1つ又は複数の好ましい実施形態において影響を受け得る例示的なプロセス、挙動及び/又は操作として、例えば、以下が挙げられる。
(1)エラーを発生することなく(又はエラーを無視することなく)、モードから自身への(z/Architectureモードからz/Architectureモードへの)切り替えをイネーブルにすること。つまり、プロセッサは、SIGP命令を発行して、z/Architectureモードに切り替えることができ、プロセッサが既にそのモードにある場合、エラーは発生しない。これまで、現在のモードに対応するモードに切り替えようとする試みにより、エラーが発生した。
(2)ESA/390モードへの切り替えをディスエーブルにすること。CZMをインストールし、アクティブ化することに基づいて、ESA/390への切り替えがディスエーブルにされ、今やエラーが発生する。ESA/390への再切り替えは、PSWのビット12をチェックすることにより防止され、ビット12がz/Architectureモードを示すように設定されない場合(ストレージ内の「1」のビット12により表され、このビットは、ESA/390 PSWが有効なz/Architecture PSWに変換されたとき、PSWにおけるz/Architectureを表すように、ビット「0」に反転される)、例外が発生する。
(3)ビット12の処理を制限するために、PSWロード(Load PSW)操作を変更すること。構成z/Architectureアーキテクチャ・モード・ファシリティがインストールされている場合、PSWロードは、その第2のオペランドが1でない場合には、指定例外を認識する。PSWロードは、ビット12が反転されることを除いて、その第2のオペランドのビット0−32を、そして、オペランドのビット33−63を、現PSWのそれぞれ、ビット0−32及び97−127としてロードし、現PSWのビット33−96を0に設定する。
図10を参照して、Load PSW命令に関する更なる詳細を説明する。1つの実施形態において、Load PSW命令700は、PSWロード操作を示すためのオペコードを含むオペコード・フィールド702、ベース・フィールド(B)704、及び変位フィールド(D)706を含む。Bフィールドにより指定される汎用レジスタの内容をDフィールドの内容に加えて、ストレージ内の第2のオペランドのアドレスを形成する(第2のオペランド・アドレスと呼ばれる)。
Load PSW命令の動作において、現PSWは、第2のオペランド・アドレスが指定する位置におけるダブルワードの内容から形成された16バイトのPSWに置き換えられる。
ダブルワードのビット12は1となり、そうでない場合は、モデルによって、指定例外が認識され得る。構成z/Architectureアーキテクチャ・モード・ファシリティがインストールされた場合、ダブルワードのビット12が1でなければ、指定例外が認識される。
ダブルワードのビット0−32は、ビット12が反転されることを除いて、現PSWの位置0−32に入れられる。ダブルワードのビット33−63は、現PSWの位置97−127に入れられる。現PSWのビット33−96は、0に設定される。
シリアル化及びチェックポイント同期機能は、オペランドのフェッチ前又は後、及び再び操作の完了後に実行される。
オペランドは、ダブルワード境界上で指定され、そうでない場合には、指定例外が認識される。モデルによって、オペランドのビット12が0である場合、指定例外が認識され得る。
命令によってロードされるPSWフィールドは、ビット12のチェックを除き、それらがロードされる前に、妥当性に関してチェックされない。しかしながら、ロードの直後、指定例外が認識され、新しくロードされたPSWに関して以下のいずれかが真であるとき、プログラム割り込みが発生する。
*ビット0、2−4、12、又は24−30のいずれかが1である。
*ビット31及び32の両方とも0であり、ビット97−103は全て0ではない。
*ビット31及び32は、それぞれ、1及び0である。
これらの場合、操作は完了し、結果として得られる命令長コードは0である。
全てのアドレッシング及び保護例外において、操作は抑止される。
結果の条件コード:コードは、ロードされた新しいPSWにおいて指定されるように設定される。
プログラム例外:
*アクセス(フェッチ、オペランド2)
*特権操作
*指定
プログラミング上の注意:第2のオペランドは、ESA/390 PSWの形式を有するべきである。オペランドのビット12が0である場合、PSWロードの実行中又は実行後、指定例外が認識される。
PSWに関する更なる詳細が、非特許文献2に記載される。
構成アーキテクチャ・モード・ファシリティのインストールに起因して変更され得る上記のプロセス、操作及び/又は挙動に加えて、以下に説明されるように、1つ又は複数の好ましい実施形態において、リセット・モードを変更することもできる。
(4)(例えば、リセット、クリア・リセット、及びリセットのための他のアクションに関する)リセット・モードを変更すること。CZAMファシリティがインストールされているとき、例えばロード・ノーマル・キーなどのアクティブ化によりCPUリセットが生じる場合、アーキテクチャ・モードがz/Architectureモードに設定される。
例えば、CPUリセット、初期CPUリセット、サブシステム・リセット、クリア・リセット及びパワーオン・リセットを含む、ESA/390及びz/Architectureモードの部分として含まれる多数のリセット機能があり、その各々を以下に説明する。
CPUリセット
CPUリセットは、機器チェック表示をクリアする手段を提供し、CPU状態に予測不能な結果が生じている場合に、情報の破壊を最小限に抑える。特に、CPUリセットは、分析又は操作の再開のためにCPU状態を保存しておく必要があるときに、チェック条件をクリアするために使用される。構成z/Architectureアーキテクチャ・モード(CZAM)ファシリティがインストールされていない場合、CPUリセットは、ロード・ノーマル・キー(オペレータ・ファシリティ)のアクティブ化が原因でリセットが生じた場合は、アーキテクチャ・モードがESA/390モードに設定される。CZAMファシリティがインストールされている場合、CPUリセットは、ロード・ノーマル・キーのアクティブ化が原因でリセットが生じた場合は、アーキテクチャ・モードがz/Architectureモードに設定される。CPUリセットによりESA/390モードが設定される場合、現PSWが保存されるので、アーキテクチャ・モードを元のz/Architectureに変更するSignal Processor Set Architecture指令により、PSWを復元することができる。
1つの実施形態において、CPUリセットにより、次のアクションが引き起こされる。
1.現在の命令又は割り込みなどの他の処理シーケンスの実行が終了し、全てのプログラム割り込み及びスーパーバイザ呼び出し・割り込み条件がクリアされる。
2.CPUにローカルなあらゆる保留中の外部割り込み条件がクリアされる。浮動外部割り込み条件はクリアされない。
3.CPUにローカルなあらゆる保留中のマシン・チェック・割り込み条件及びエラー表示、並びにあらゆるチェック停止状態がクリアされる。浮動マシン・チェック割り込み条件はクリアされない。構成内の全てのCPUに報告され、CPUに対して保留状態にされたあらゆるマシン・チェック条件は、CPUにローカルであると言われる。
4.プリフェッチされた命令又はオペランドの全てのコピーがクリアされる。付加的に、現在のチェックポイント間隔での命令の実行が理由で格納されるあらゆる結果がクリアされる。
5.ART(Access Register Translation)ルックアサイド・バッファ及び変換ルックアサイド・バッファは、エントリをクリアする。
6.構成内のいずれかのCPU上のロード・ノーマル・キーのアクティブ化により、リセットが引き起こされた場合、次のアクションが行われる。
a.CZAMファシリティがインストールされていないとき、CPU(及び、CPUリセット又はそれらにより実行されるCPUリセットのため、構成内の他の全てのCPU)のアーキテクチャ・モードが、z/ArchitectureモードからESA/390モードに設定される。
b.CZAMファシリティがインストールされていないとき、現PSWは、z/Architectureモードを復元するSignal Processor Set Architecture命令による後の使用のために保存される。
c.CZAMファシリティがインストールされていないとき、現PSWは、16バイトから8バイトに変更される。8バイトのPSWのビットは、次のように設定される。:即ち、ビット0−11及び13−32は、16バイトのPSWの同じビットと等しくなるように設定され、ビット12は1に設定され、ビット33−63は、16バイトのPSWのビット97−127と等しくなるように設定される。
システム・リセット・ノーマル・キーのアクティブ化により又はSignal Processor CPU−Reset命令により引き起こされるCPUリセット、並びにESA/390モードにおけるあらゆるCPUリセットは、キャプチャされたz/Architecture−PSWレジスタ(即ち、コード0でのSet Architecture命令、又はロード・ノーマル・キーのアクティブ化に起因するCPUリセットのために、CPUが、z/ArchitectureモードからESA/390モードに最後に変わったとき保存されるPSW)に影響を与えない。
7.アクション1−6が完了した後、CPUは停止状態になる。CCWタイプのIPLシーケンスがそのCPUにおけるリセット機能に従うとき、CPUは、リセット機能の完了時にロード状態になり、リセット動作の実行中、必ずしも停止状態にはならない。リスト指示のIPLシーケンスがそのCPUにおけるリセット機能に従うとき、CPUは動作状態になり、リセット操作の実行中、必ずしも停止状態にはならない。
レジスタ、ストレージの内容、及びCPUの外部の条件の状態は、CPUリセットにより変更されないままである。しかしながら、リセット時に内容を変更する操作が進行中の場合、レジスタ、記憶位置、又は状態の後の内容は予測不能である。PERFORM LOCKED OPERATIONの実行時にCPUにより保持されるロックは、CPUリセットにより解放されない。
CPUがI/O命令を実行しているとき又はI/O割り込みを実施しているときに、CPUにおけるリセット機能が開始された場合、CPUとチャネル・サブシステムとの間の現在の動作は、完了することも又は完了しないこともあり、関連したチャネル・サブシステム・ファシリティの結果として得られる状態は、予測不可能であり得る。
プログラミング上の注意:
1.CPUが停止状態にあるとき、状態、条件、又はフィールドの内容を変更する大部分の操作が行われないことがある。しかしながら、一部のプロセッサ信号発信機能及び一部のオペレータ機能により、これらのフィールドが変更されることがある。CPUリセットが生じたときにフィールドを失う可能性を排除するために、CPUを停止すべきであり、オペレータ機能が進行中であってはならない。
2.アーキテクチャ・モードがESA/390モードに変更され、現PSWのビット31が1である場合、PSWは無効である。
初期CPUリセット
初期CPUリセットは、現PSWの初期化、キャプチャされたz/ArchitecturePSW、CPUタイマ、クロック・コンパレータ、プリフィックス、ブレーキング・イベント・アドレス制御、浮動小数点制御、及び時刻(Time of Day、TOD)プログラム可能レジスタと共に、CPUリセットの機能を提供する。CZAMファシリティがインストールされていない場合、初期CPUリセットは、ロード・ノーマル・キーのアクティブ化により生じる場合は、アーキテクチャ・モードがESA/390モードに設定される。CZAMファシリティがインストールされている場合、初期CPUリセットは、ロード・ノーマル・キーのアクティブ化により生じる場合は、アーキテクチャ・モードがz/Architectureモードに設定される。
初期CPUリセットは、CPUリセット機能を以下のクリア及び初期化機能と結合させる。
1.CZAMファシリティがインストールされていない場合、ロード・ノーマル・キーのアクティブ化によりリセット生じる場合は、CPU(及び構成内の他の全てのCPUの)アーキテクチャ・モードは、ESA/390モードに設定される。そうでない場合、CZAMファシリティがインストールされているならば、CPU(及び構成内の他の全てのCPU)のアーキテクチャ・モードは、z/Architectureモードに設定される。
2.現PSW、キャプチャされたz/Architecture−PSW、プリフィックス、CPUタイマ、クロック・コンパレータ、及びTODプログラム可能レジスタの内容が、0に設定される。IPLシーケンスがそのCPUにおけるリセット機能に従うとき、PSWの内容は、必ずしも0に設定されない。
3.制御レジスタの内容は、その初期z/Architecture値に設定される。CPUがESA/390モードにあるか又はz/Architectureモードにあるかに関係なく、制御レジスタの全ての64ビットが設定される。
4.浮動小数点制御レジスタの内容は、0に設定される。
5.ブレーキング・イベント・アドレス・レジスタの内容は、0000000000000001(16進法)に初期化される。
これらのクリア及び初期化機能は、妥当性検査を含む。
PSWビット12はそのモードで1となるので、動作の終わりにCPUがESA/390アーキテクチャ・モードにあるときに現PSWを0に設定することにより、PSWは無効となる。従って、この場合、新PSWを最初に導入することなく、CPUがリセット後に動作状態になった場合、指定例外が認識される。
サブシステム・リセット
サブシステム・リセットは、浮動割り込み条件のクリア及びI/Oシステム・リセットの呼び出しのための手段を提供する。
クリア・リセット
クリア・リセットにより、初期CPUリセット及びサブシステム・リセットが実行され、付加的に、TODクロックを除く、構成内の全てのCPUにおける全てのストレージ位置及びレジスタがクリア又は初期化される。こうしたクリアは、プログラムをデバッグする際及びユーザのプライバシーを保証する際に有用である。また、クリア・リセットにより、PERFORM LOCKED OPERATION命令によって使用される全てのロックが解放される。CZAMファシリティがインストールされていない場合、クリア・リセットにより、アーキテクチャ・モードがESA/390モードに設定される。CZAMファシリティがインストールされている場合、クリア・リセットにより、アーキテクチャ・モードがz/Architectureモードに設定される。クリアは、アドレス指定可能でないページの内容を保持するために制御プログラムが使用するダイレクト・アクセス・ストレージ・デバイスなどの外部ストレージに影響を与えない。
クリア・リセットは、初期CPU上のリセット機能を初期化機能と結合し、それにより以下のアクションが引き起こされる。
1.CZAMファシリティがインストールされていない場合、構成内の全てのCPUのアーキテクチャ・モードは、ESA/390モードに設定される。CZAMファシリティがインストールされている場合、構成内の全てのCPUのアーキテクチャ・モードは、z/Architectureモードに設定される。
2.構成内の全てのCPUのアクセス、汎用、及び浮動小数点レジスタは、0に設定される。クリア・リセットが開始されると、CPUがESA/390モードにあったか又はz/Architectureアーキテクチャ・モードにあったかに関係なく、汎用レジスタの全ての64ビットが0に設定される。
3.構成内の主ストレージの内容及び関連したストレージ・キーは、有効なチェック・ブロック・コードにより0に設定される。
4.PERFORM LOCKED OPERATION命令を実行する際に構成内のあらゆるCPUにより使用されるロックが、解放される。
5.サブシステム・リセットが実施される。
妥当性検査は、レジスタの設定、並びにストレージ及びストレージ・キーのクリアに含まれる。
プログラミング上の注意:
1.アーキテクチャ・モードは、システム・リセット・ノーマル・キーのアクティブ化により、又はSignal Processor CPU−Reset若しくはInitial−CPU−reset指令の実行により、変更されない。構成内の全てのCPUは、同じアーキテクチャ・モードにある。
2.CPUリセット動作が変更されないままにされるフィールドの内容に影響を与えない場合、CPUは命令を実行しておらず、リセット時に全ての割り込みに関してディスエーブルにされる。CPUタイマの動作及びマシン・チェック割り込みの発生の可能性を除き、CPUを待機状態にすること、及び、I/O及び外部割り込みに対してこれをディスエーブルにすることにより、全てのCPU活動を停止させることができる。CPUタイマが更新されるとき又はマシン・チェック割り込みが発生するときにリセットを引き起こす可能性を回避するために、CPUは停止状態になる。
3.CPUリセット、初期CPUリセット、サブシステム・リセット、及びクリア・リセットは、TODクロックの値及び状態に影響を与えない。
4.CPUがチェック停止状態になる条件はモデル依存であり、現在の動作の完了を妨げる機能不良を含む。従って、CPUがチェック停止状態にある間にCPUリセット又は初期CPUリセットが実行された場合、PSW、レジスタ、及びエラー時にアクセスされるストレージ・キー及びストレージ位置を含むストレージ位置の内容は、予測不能な値を有することがあり、場合によっては、内容は、チェック停止状態がこれらのリセットによってクリアされた後、依然としてエラーになり得る。この状況において、クリア・リセットは、エラーのクリアを必要とする。
パワーオン・リセット
マシンのコンポーネントのためのパワーオン・リセット機能は、そのコンポーネントのためのパワーオン・シーケンスの一部として実行される。TODクロック、主ストレージ、拡張ストレージ及びチャネル・サブシステムのパワーオン・シーケンスは、CPUパワーオン・シーケンスの一部として含ませることができ、又は、これらのユニットのパワーオン・シーケンスを別個に開始することができる。
CPUパワーオン・リセット:パワーオン・リセットにより、初期CPUリセットが実行され、チャネル・サブシステムにおいてI/Oシステム・リセットが実行されることも又はされないこともある。汎用レジスタ、アクセス・レジスタ、及び浮動小数点レジスタの内容は、チェック・ブロッサム・コードにより、0にクリアされる。PERFORM LOCKED OPERATIONにより使用され、CPUと関連付けられたロックは、それらが既にパワーオンしているCPUにより保持されない限り、解放される。CZAMファシリティがインストールされておらず、リセットが構成の確立と関連付けられている場合、CPUは、ESA/390モードになり、そうでない場合、CPUは、既に構成内にあるCPUのアーキテクチャ・モードになる。CZAMファシリティがインストールされている場合、CPUは、z/Architectureモードになる。
CPUリセット、初期CPUリセット、サブシステム・リセット、及びクリア・リセットは、オペレータ・ファシリティを用いて手動で開始することができる。初期CPUリセットは、初期プログラム・ロード機能の部分である。パワーオン・リセットは、パワーオンに変わる一部分として実行される。
CZAMファシリティがインストールされていない場合、リセットが、システム・リセット・クリア、ロード・ノーマル、又はロード・クリア・キーにより、又は構成を確立するCPUパワーオン・リセットにより開始されるのであれば、アーキテクチャ・モードはESA/390モードに設定され、そうでない場合、パワーオン・リセットにより、モードが既に構成内にあるCPUのモードに設定されることを除けば、アーキテクチャ・モードは変更されない。CZAMファシリティがインストールされている場合、アーキテクチャ・モードは、z/Architectureモードに設定される。
構成アーキテクチャ・モード・ファシリティのインストールが原因で変更され得る他のプロセス、操作、及び/又は挙動が、以下に説明される。
(5)リセットが実行されると、ESA/390モードとz/Architectureモードとの間の変更を容易にするためにとられる他のリセット関連アクションを抑止する。CZAMファシリティがインストールされていない場合、現PSWは、z/Architectureモードを復元するSignal Processor Set Architecture指令による後の使用のために保存される。CZAMファシリティがインストールされていない場合、現PSWは、16バイトから8バイトに変更される。8バイトのPSWのビットは、一例では、次のように設定される。:即ち、ビット0−11及び13−32は、16バイトのPSWの同じビットに等しくなるように設定され、ビット12は1に設定され、ビット33−63は、16バイトのPSWのビット97−127に等しくなるように設定される。CZAMファシリティがインストールされている場合、PSWは、z/Architectureモードを復元するSignal Processor Set Architecture指令による後の使用のために保存されず、現PSWは、16バイトから8バイトに変更されない。
(6)CPU SCLP構成(configure Service Call Logical Processor)コマンド、及びロード・キー操作により、CPUを構成するためのプロセスを変更する。ESA/390における構成ではなく、リセットにより定められるモードで構成する。CPU SCLP構成コマンドは、対象CPUを、既に構成された状態にあるCPUのアーキテクチャ・モードにする。構成内に入れられた少なくとも第1のCPUは、CPUのパワーオン・リセットと共にそこに入れられ、そのリセットの一部分として、CPUパワーオン・リセットで定められたアーキテクチャ・モードにされる。モデルは、これが構成されるCPUのモードを設定するとき、待機状態にあるCPUのモードを代替的に設定することができる。
ロード・クリア・キー又はロード・ノーマル・キーのアクティブ化により、アーキテクチャ・モードが、それぞれ、クリア・リセット又は初期CPUリセットで定められるように設定される。
(7)Set Architecture指令によりアーキテクチャ・モードがESA/390モードに変更できないように、SIGPを変更する。
図11を参照して、Signal Processor(SIGP)命令の1つの実施形態を説明する。1つの実施形態において、Signal Processor命令800は、例えば、プロセッサ信号操作を示すオペコードを有するオペコード・フィールド(オペコード)802、第1のレジスタ・フィールド(R)804、第2のレジスタ・フィールド(R)806、ベース・フィールド(B)808、及び変位フィールド(D)810を含む複数のフィールドを有する。Rは、その内容が第1のオペランドである汎用レジスタを示し、Rは、その内容が第3のオペランドである汎用レジスタを示し、Rにより示されるレジスタの内容をDにおける変位に加えて、第2のオペランドのアドレスをもたらす。
動作において、8ビットの指令コード、及び、要求される場合は、32ビットのパラメータが、第3のオペランド内に含まれるCPUアドレスが指定するCPUに伝送される。結果は、条件コードにより示され、第1オペランド位置のビット位置32−63内に集められた状況により詳述することができる。
第2オペランド・アドレスは、データをアドレス指定するために用いられず、代わりに、アドレスのビット56−63は、8ビットの指令コードを含む。第2オペランド・アドレスのビット0−55は無視される。指令コードは、アドレス指定されたCPUにより実施される機能を指定する。例えば、一例において、指令コードの割り当て及び定義は、以下の通りである。
Figure 2017511941
汎用レジスタRのビット位置48−63内に含まれる16ビットの2進数は、CPUアドレスを形成する。レジスタのビット0−47は無視される。指定された指令が、Set Architecture指令であるとき、CPUアドレスは無視され、構成内の他の全てのCPUは、アドレス指定されるものと見なされる。
ビット位置32−63内に32ビットのパラメータを含む汎用レジスタは、どちらであっても奇数番号のレジスタであるR又はR+1である。パラメータが与えられているかどうか及びこれが使用される目的に関して、汎用レジスタは、指令コードに依存する。
前述のオペランドは、一例において、以下の形式を有する。:
により指定される汎用レジスタ:ビット0−31は使用されない;ビット32−63は状況を含む。
どちらであっても奇数番号のレジスタであるR又はR+1により指定される汎用レジスタ:ビット0−31は使用されない;ビット32−63はパラメータを含む。
により指定される汎用レジスタ:ビット0−48は未使用;ビット49−63はCPUアドレスを含む。
第2オペランド・アドレス:ビット0−55は使用されない;ビット56−63は指令コードを含む。
操作が開始する前及び操作が再び完了した後、シリアル化機能が実施される。
指令コードが受け入れられ、非ゼロ(nonzero)状況が戻されないとき、条件コード0が設定される。状況情報がこのCPU(SIGPを実行しているCPU)により生成されるとき又はアドレス指定されたCPUにより戻されるとき、状況は、汎用レジスタRのビット位置32−63に入れられ、レジスタのビット0−31は変更されないままであり、条件コード1が設定される。
アドレス指定されたCPUへのアクセス経路がビジーであるとき又はアドレス指定されたCPUが作動しているが、指令コードに応答できない状態にあるとき、条件コード2が設定される。
アドレス指定されたCPUが非動作状態にある場合(つまり、インストールに供されていないか、構成内にないか、特定の顧客・エンジニア・テスト・モードのいずれかになっているか、又は電源がオフになっている場合)、条件コードが設定される。
結果の条件コード
0 指令コードが受け入れられる
1 状況が格納される
2 ビジー
3 非動作状態
プログラム例外
*特権操作
*トランザクション制約
Set Architecture Signal Processor指令がSignal Processor指令の第2オペランド・アドレスのビット位置56−63に指定されるとき、パラメータ・レジスタのビット位置56−63の内容は、構成内の全てのCPUが設定されるアーキテクチャ・モードを指定するコードとして使用される。:コード0は、ESA/390モードを指定し、コード1及び2は、z/Architectureモードを指定する。コード1は、構成内の全てのCPUの各々について、現在のESA/390PSWがアーキテクチャPSWに変換されることを規定する。コード2は、Signal Processorを実行しているCPUのPSWがz/Architecture PSWに変換されること、及び、構成内の他の全てのCPUについて、PSWがそのCPUについてのキャプチャされたz/Architecture PSWレジスタの値を有するように設定されることを規定する。キャプチャされたz/Architecture PSWレジスタがリセットにより全て0に設定されなかったならば、キャプチャされたz/Architecture PSWレジスタの値によるPSWの設定は、CPUが最後にz/Architectureモードにあったときに存在したPSWを復元する。
パラメータ・レジスタのビット0−55は無視される。Sigal Processor指令のCPUアドレス・レジスタの内容は無視され、構成内の他の全てのCPUがアドレス指定されるものと見なされる。
CZAMファシリティがインストールされていない場合、指令は、コードが0、1、又は2である場合にのみ受け入れられ、CPUは、既にコードにより指定されたモードにはなく、他の全てのPUの各々は停止又はチェック停止状態のいずれかになっており、かつ、他の条件は指令の受け入れを妨げない。
CZAMファシリティがインストールされている場合、ESA/390モードへ戻るのは許容されないため、コード0は受け入れられず、CPUは既にz/Architectureアーキテクチャ・モードにあることから、コード1及び2の指定は完了をもたらし、無効パラメータ及び条件コード1を示す。Set Architecture指令により通常検証される他の必須条件は、チェックされることも又はされないこともある。
受け入れられる場合、Signal Processorの実行中、指令は、全てのCPUにより完了する。この実施形態において、決して、異なるCPUが異なるアーキテクチャ・モードにあることはない。
一例において、Set Architecture指令は、次のように完了する。:
・パラメータ・レジスタ内のコードが0、1、又は2でない場合、又はCPUが既にコードにより指定されるアーキテクチャ・モードにあるとき、指令は受け入れられない。代わりに、Signal Processor命令のRフィールドに指定されている汎用レジスタのビット55(無効パラメータ)が1に設定され、条件コード1が設定される。
・構成内の他の全てのCPUが停止又はチェック停止状態にある場合、指令は受け入れられない。代わりに、Signal Processor命令のRフィールドに指定されている汎用レジスタのビット54(誤り状態)が1に設定され、条件コード1が設定される。
・構成内の全てのCPUのアーキテクチャ・モードがコードで指定されているものに設定される(例えば、操作を制御するためのPSWのビット12は、指定されたアーキテクチャ・モードに設定され、及び/又は、コンピューティング環境内の別の表示は、指定されたアーキテクチャ・モードを示すように設定される)。
・指令によりアーキテクチャ・モードがESA/390からz/Architectureに変更され、コードが1である場合は、構成内の各CPUについて、8バイトの現PSWは16バイトのPSWに変更され、16バイトPSWのビットは、以下のように設定される。:即ち、ビット0−11及び13−32は8バイトPSWの同じビットと等しくなるように設定され、ビット12及びビット33−96は0に設定され、ビット97−127は8バイトPSWのビット33−63と等しくなるように設定される。また、ESA/390プリフィックスのビット19(これは、z/Architectureプリフィックスのビット51になる)は、0に設定される。
コードが2である場合、Signal Processorを実行しているCPUのPSW及び全てのCPUのプリフィックス値は、コード1の場合におけるように設定される。構成内の他の全てのCPUの各々について、PSWは、キャプチャされたz/Architecture・PSWレジスタの値を有するように設定される。しかしながら、アーキテクチャ・モードの移行時に又はその後、CPUが、CPUリセット以外のリセットを実行した場合、キャプチャされたz/Architecture・PSWレジスタは全て0に設定された。
・指令により、アーキテクチャ・モードがz/ArchitectureからESA/390に変更された場合、構成内の各CPUについて、(1)Signal Processorを実行しているCPUの場合に更新されたPSWである現PSWが、キャプチャされたz/Architecture・PSWレジスタ内に保存され、(2)8バイトPSWのビットを以下のように設定すること:即ち、ビット0−11及び13−32は16バイトPSWの同じビットと等しくなるように設定され、ビット12は1に設定し、ビット33−63は16バイトPSWのビット97−127と等しくなるように設定することにより、16バイトPSWが8バイトPSWに変更される。z/Architectureプリフィックスのビット51(これは、ESA/390プリフィックスのビット19になる)は、変更されないままである。
・構成内の全てのCPUのALB及びTLBの内容がクリアされる。
・構成内の全てのCPUで、シリアル化及びチェックポイント同期化機能が実行される。
指令により、アーキテクチャ・モードがz/ArchitectureからESA/390に変更され、Signal Processor命令により命令フェッチPERイベントが発生した場合、この命令のアドレスの右端31ビットだけが、ESA/390 PERアドレス・フィールドに格納される。
1つの実施形態において、CZAMでは、以下が必須条件である。:即ち、他の全てのCPUの各々が停止又はチェック停止状態のいずれかにあり、他の条件が指令の受け入れを妨げない。CZAMファシリティがインストールされているとき、ESA/390モードに戻ることは許容されないので、コード0は受け入れられず、CPUは既にz/Architectureアーキテクチャ・モードにあるので、コード1及び2の指定は完了をもたらし、無効パラメータ及び条件コード1を示す。Set Architecture指令により通常検証される他の必須条件は、チェックされることも又はされないこともある。さらに別の実施形態において、コード1及び2によるSIGPは、更なる表示なしに、成功裏の完了を示す。
図12を参照して、Set Architecture指令コードについてのSIGP命令の実行と関連した処理の1つの実施形態を説明する。図12を参照すると、コンピューティング環境のプロセッサが、SIGP命令を実行し、アーキテクチャ設定操作を示す指令コードを取得する(ステップ850)。一例において、指令コードは、SIGP命令の第2オペランド・アドレスに含められる。
付加的に、例えばSIGP命令が指定するパラメータ・レジスタから、切り替えられる要求されたアーキテクチャ・モードが取得される(ステップ852)。さらに、CZAMのような構成アーキテクチャ・モード・ファシリティがインストールされているかどうかについての判断がなされる(問い合わせ854)。これは、一例において、ファシリティ・インジケータにより判断される。
CZAMがインストールされていない場合、CPUは既に要求されたアーキテクチャ・モードにあるかどうかについての更なる判断がなされる(問い合わせ856)。CPUが既に要求されたアーキテクチャ・モードにある場合、状況が、例えばSIGP命令に指定されたレジスタ内に与えられ(ステップ858)、状況はエラーとして扱われる(ステップ860)。しかしながら、CPUが要求されたモードにない場合(問い合わせ856)、構成されるコンピューティング環境の他のCPUが停止状態等にあるかどうかなど、命令により指定された他の条件が満たされるかどうかについての判断がなされる(問い合わせ862)。条件が満たされない場合、処理はステップ858に続く。そうでない場合には、指令は受け入れられ(ステップ864)、アーキテクチャ・モードが変更される。従って、上述のようにPSWが設定され(ステップ866)、命令のこの態様についての処理は終了する(ステップ868)。
問い合わせ854に戻ると、CZAMがインストールされている場合、CPUが要求されたモードにあるかどうかについての判断がなされる(問い合わせ870)。CPUが既に要求されたモードにある場合、一例において、状況が与えられ、CPUは既に要求されたアーキテクチャ・モード(例えば、z/Architecture)にある(ステップ872)。しかしながら、この実施形態において、この状況は受け入れ可能であり、エラーとして扱われない(ステップ874)。これは無視されるか、又は別の実施形態においては、非エラー・コードである条件コードを与えることができる。さらに別の実施形態において、状況は、成功裏の完了を示すにすぎない。CPUが既に要求されたアーキテクチャ・モードにあったとしても、非エラーを示すために、他の可能性も存在する。
問い合わせ870に戻ると、しかしながら、CPUが要求されたモードにない場合、1つのアーキテクチャ・モード(例えば、ESA/390)に戻るのは不正(illegal)であるので、指令は受け入れられない(ステップ876)。状況が与えられ(ステップ878)、これはエラーであるとみなされる(ステップ880)。
1つの実施形態において、CZAMが選択可能でないファシリティとしてシステム内にあるとき、問い合わせ854を省略することができ、制御は、ステップ852から直接ステップ870に進むことができる。こうした実施形態において、ステップ854乃至868は実施されないことがある。
別の実施形態において、現在のアーキテクチャ・モードに切り替えるための指令を受け取った場合、指令を受け入れることができず、エラーが示されることがある(ステップ874)。
CZAMのインストールに基づいて変更できる他の挙動、プロセス、及び/又は操作は、以下を含むことができる。:即ち、
(8)ファシリティ・ビットへの変更:例えばビット138などの新しいビットが、構成z/Architectureアーキテクチャ・モード・ファシリティを示すようにファシリティ・ビットに加えられ、z/Architectureアーキテクチャ・モードがアクティブかどうかを示すビット2が1(アクティブを示す)に設定される。
上述のように、コンピューティング環境は、1つのアーキテクチャ・モード(例えば、ESA/390)でブートし、次に、処理のために別のアーキテクチャ・モード(例えば、z/Architecture)に切り替えることができ、又は、コンピューティング環境は、処理を行う予定のアーキテクチャ・モード(例えば、z/Architecture)に直接ブートすることができる。従って、1つ又は複数の態様によると、これらに限定されるものではないが、オペレーティング・システム又はオペレーティング・システムをブートする必要のない他の独立型ユーティリティを含む制御ユーティリティが提供され、これらは、制御ユーティリティが1つのアーキテクチャ・モード(例えば、ESA/390)で初期化され、次に、別のアーキテクチャ・モード(例えば、z/Architecture)に切り替えられる第1のアーキテクチャ・モード、又は、制御ユーティリティが、選択されたアーキテクチャ・モード(例えば、z/Architecture)で初期化され、処理を行う第2のアーキテクチャ・モードのいずれかでブートすることができる。1つの実施形態において、選択されたアーキテクチャ・モードは、制御ユーティリティが書かれたアーキテクチャである。
図13を参照して、第1のアーキテクチャ構成での制御ユーティリティのブートと関連した論理の1つの実施形態を説明する。最初に、プロセッサ(例えば、ハードウェア)は、実行を制御するために用いられるプログラム状況ワード(PSW)を設定する(ステップ900)。この例において、ハードウェアは、メモリからPSWをロードし、PSWは、例えばESA/390などの1つのアーキテクチャ・モードの形式を有する。次に、設定コードが、1つのアーキテクチャ・モードで実行される(ステップ902)。例えば、制御ユーティリティは、プログラム状況ワードにより指定された第1のセットの命令の実行を開始する。その後、1つの実施形態において、1つのアーキテクチャ・モード(ESA/390)から、z/Architectureのような別のアーキテクチャ・モードに切り替える準備が行われる(ステップ904)。例えば、制御ユーティリティは、指令コード(例えば、Set Architecture指令コード)によりレジスタを設定し、そのレジスタを、Signal Processor命令と呼ばれる命令に渡すことにより、モード切り替えを準備する。
プロセッサは、Signal Processor命令を実行して、プロセッサを、従って制御ユーティリティを、z/Architectureモードにする(ステップ906)。その後、1つの実施形態において、Signal Processor命令が正常に実行されたかどうかについての判断がなされる(問い合わせ908)。プロセッサ信号発信エラー条件が存在した場合、制御ユーティリティのブートはアボートされ(ステップ910)、そうでない場合、残りのコードは、z/Architectureモードで実行される(ステップ912)。
更に別の実施形態において、選択されたアーキテクチャ(例えば、z/Architectureモード)のために書かれた制御ユーティリティは、1つのアーキテクチャでブートされ、モードを切り替えるのではなく、そのアーキテクチャで直接ブートされる。図14を参照して、CZAMファシリティを含むシステムのような、切り替えを必要としないシステム上で直接制御ユーティリティをブートするための論理の1つの実施形態を説明する。図14を参照すると、最初に、プロセッサ(例えば、ハードウェア)が、ストレージからプログラム状況ワードを設定する(ステップ1000)。一例において、選択された絶対ストレージ位置(例えば、位置0−7)から、16バイトの新しいプログラム状況ワード(PSW)が作成される。新しい16バイトのPSWは、例えば、選択されたストレージ・ダブルワード(例えば、位置0−7)の内容から形成される。ダブルワードのビット12は、1となり、そうでない場合は、エラーが表示され得る。(エラーは、指定例外の認識、マシン・チェック、又は更に別のエラー表示とすることができる。)新しく作成されたPSWのビット0−32は、ビット12が反転されることを除き、選択されたダブルワードのビット0−32に設定される。新しく作成されたPSWのビット33−96は、0に設定される。新しく作成されたPSWのビット位置97−127は、選択されたダブルワードのビット33−63から初期化される。
その後、システムは既にそのモードにあるので、設定コードが、z/Architectureモードで実行される(ステップ1002)。さらに、コードの残りもまた、z/Architectureモードで実行される(ステップ1004)。
上記のブート・シーケンスは、アーキテクチャ構成(例えば、第1の構成又は第2の構成)に応じて別個に使用できるが、1つの実施形態においては、制御ユーティリティがブートされるアーキテクチャ・モードに関係なく使用できるブート・シーケンスが提供される。つまり、これらに限定されるものではないが、第1のアーキテクチャ構成及び第2のアーキテクチャ構成を含む複数のアーキテクチャ構成で使用できる共通ブート・シーケンスが提供される。
図15を参照して、共通ブート・シーケンスと関連した論理の1つの実施形態を説明する。最初に、プロセッサ(例えば、ハードウェア)は、ストレージからプログラム状況ワードを設定する(ステップ1100)。この実施形態において、アーキテクチャ・モードは、ESA/390のようなレガシー・モード、又はz/Architectureのような強化されたアーキテクチャ・モードを含む、複数のモードのいずれかとすることができる。従って、プログラム状況ワードは、プロセッサの初期アーキテクチャ・モードを反映する。
その後、共通命令サブセットを実行して、特定量の設定を行うことができる(ステップ1102)。これらの命令は、異なるアーキテクチャ・モードに等しく適用可能であるが、モードに基づいて異なるように振る舞うことができる。これらの命令は、異なるアーキテクチャにおいて定められ、現在のアーキテクチャ・モードに関係なく実行できるという点で共通のものである。
何らかの設定を行うために共通命令サブセットを実行することに加えて及び/又はその一部として、現在のアーキテクチャ・モードに関係なく、モード切り替えが実行される(ステップ1104)。上記のように、指令コードは、レジスタ内に入れられ、SIGP命令に転送される。環境をz/Architectureモードにするために、SIGP命令が実行される(ステップ1106)。具体的には、1つの実施形態において、環境がESA/390にある場合、SIGP命令の実行により、環境がz/Architectureモードになる。しかしながら、環境が既にz/Architectureモードにある場合、SIGP命令の実行は、モード切り替えを行わず、代わりに、環境が既にz/Architectureモードにあるという状況を提供する。この状況は、非エラーとして受け入れられる。
次に、コードの残りが、z/Architectureモードで実行される(ステップ1108)。
単純なブート・シーケンスの一例は、例えば、制御レジスタを初期化するための1つ又は複数のロード制御命令(LCTL)、SIGP命令を実行するためのコマンド・レジスタによるレジスタのロード、及びSIGP命令を含むことができる。これらの命令は、ESA/390モード又はz/Architectureモードのいずれかで発行することができ、SIGPの完了後、システムが最初に構成され、z/Architectureモードにあるという同様の結果をもたらす。少なくとも1つの実施形態において、コードは、SIGP命令の完了後に条件コードをチェックして、システムが最初にESA/390モードで構成されたか(例えば、ESA/390からの成功裏の切り替えが実行されたことを示す0の条件コード値により)、又はz/Architectureで構成されたか(例えば、システムが既に要求されたアーキテクチャ・モードにあったため、切り替えが実行されなかったことを示す1の条件コードにより)を判断する。
図16を参照して、制御ユーティリティをブートするために共通ブート・シーケンスを使用する別の実施形態を説明する。この例では、上述のように、プロセッサ(例えば、ハードウェア)は、プロセッサが最初に処理するアーキテクチャ・モードでストレージからPSWを設定する(ステップ1200)。次に、PSWのビット12をチェックして、コンピューティング環境のアーキテクチャ・モードを判断する(問い合わせ1202)。1つの実施形態において、PSWビットをチェックするために、Extract PSW命令が用いられる。図17を参照して、Extract PSW命令の一例を説明する。
図17を参照すると、1つの実施形態において、Extract PSW命令1300が、PSW取り出し操作を示すためのオペコードを含むオペコード・フィールド1302、第1のレジスタ・フィールド(R)1304、及び第2のレジスタ・フィールド(R)1306を含む。動作において、現PSWのビット0−31は、第1のオペランド(第1のレジスタ・フィールドに指定されたレジスタ)のビット位置32−63に入れられ、オペランドのビット0−31は、変更されないままである。その後、現PSWのビット32−63は、第2のオペランド(第2のレジスタに指定されたレジスタ)のビット位置32−63に入れられ、オペランドのビット0−31は、変更されないままである。一例では、Rフィールドが0である場合、第2のオペランドと関連したアクションは、実行されない。
図16に戻ると、アーキテクチャ・モードが、例えばESA/390である(例えば、PSWのビット12=1)場合、設定コードは、ESA/390で実行される(ステップ1204)。プロセッサは、モード切り替えを準備し(ステップ1206)、SIGP命令が、モードをz/Architectureモードに変更するために使用される(ステップ1208)。さらに、SIGP命令が正常に完了したかどうかについての判断がなされる(ステップ1210)。SIGP命令が正常に完了しなかった場合、エラーが提示される(ステップ1214)。そうでない場合には、コードの残りが、z/Architectureモードで実行される(ステップ1216)。
問い合わせ1202に戻ると、PSWのビット12のチェックが、コンピューティング環境がz/Architectureモードにあることを示す(例えば、PSWのビット12=0)場合、設定コードは、z/Architectureモードで実行され(ステップ1215)、処理は、z/Architectureモードでのコードの残りの実行を続ける(ステップ1216)。
図18を参照して、共通ブート・シーケンスを使用する更に別の実施形態を説明する。この例では、上述のように、プロセッサ(例えば、ハードウェア)は、プロセッサが最初に処理を行うアーキテクチャ・モードに基づいて、ストレージからPSWを設定し(ステップ1400)、共通命令サブセット(例えば、1〜5個の命令のような少数の命令)を用いて、設定コードを実行する(ステップ1402)。プロセッサは、モード切り替えを準備し(ステップ1404)、SIGP命令を実行して、z/Architectureモードに切り替える(ステップ1406)。
SIGP命令が正常に完了したかどうかについての判断がなされる(問い合わせ1408)。SIGP命令が成功した場合、ESA/390モードでブートされたことに応答して、何らかのz/Architectureコードが実行され、コードの残りは、z/Architectureで実行される(ステップ1412)。例えば、ソフトウェア・リセットが実行されるとき、リセットをESA/390モードで実行すべきであることを示すように、インジケータを保存することができる。別の態様において、ESA/390モードでブートするモデルは、z/Architectureモードでブートするモデルとは異なるように初期化された幾つかの制御レジスタを有することができ、ESA/390モードでブートされたことに応答するコードは、z/Architectureに好ましい設定に対応するように制御を再構成することができる。
問い合わせ1408に戻ると、コンピューティング環境が既にz/Architectureモードにあるため、SIGP命令が切り替えを行わない場合、z/Architectureモードでブートされたことに応答して、何らかのz/Architectureコードが実行され(ステップ1414)、コードの残りも、z/Architectureモードで実行される(ステップ1412)。例えば、プログラマは、z/Architectureモードへ、リセットを行うべきであるというインジケータを保存することができる。別の態様において、z/Architectureモードでブートするモデルは、システムがESA/390モードでブートされた場合に初期化するのに不適切な、ステップ1414において初期化できる付加的な制御レジスタを提供することができる。また、この実施形態において、SIGPは、切り替えを行わないという点で「失敗する」ことがあり、エラー条件は存在しない。それは、SIGPの受け入れ可能な使用である。
制御ユーティリティの上記のブートに加えて、リセットに起因する制御ユーティリティのリブートも提供される。1つの実施形態において、マシン全体をリセットし、システムをレガシー・モード(例えば、ESA/390)のような特定のモードに再設定し、ブート・ローダに分岐することにより、リブート(reboot)をエミュレートするコードが存在する。しかしながら、CZAMのインストールの場合、これは行われない。従って、例えば、現在のモデルがレガシー・モード(例えば、ESA/390)でパワーオンするか、又は強化されたアーキテクチャ・モード(例えば、z/Architecture)でパワーオンするかを判断すること、マシン・モードを対応するモードに設定し、マシン・モードに応じてネイティブ・マシン・モードでブート・ローダに分岐すること、又はネイティブ・ハードウェア・ブート・モードに関係なく、z/Architectureブート・モデルのような本モデルをリブートすること、即ち、ソフトウェアにより開始される再初期化を、ESA/390システム上でもz/Architectureリブートであるかのように実行することを含む、2〜3の他の選択肢がある。これは、ディスクに行って制御ユーティリティ全体を再びロードすることなくリブートを行うかのように、プロセッサがリサイクルする、ウォーム・リブート(warm reboot)としても知られるソフトウェア・リブートであるので、可能である。レジスタ及びPSWは、ブートが行われたかのように同じ状態に初期化され、ブート・シーケンスの第1の命令に分岐する。
図19を参照して、リセットの1つの実施形態を説明する。最初に、プロセッサは、例えば、I/Oの接続を切断すること、マシンを休止させること、一般的に動作を終了させるといった、環境のティアダウン(tear down)を開始する(ステップ1500)。その後、ファシリティ・ビット又は別のインジケータを読み取り、CZAMがインストールされているかどうかを判断する(ステップ1502)。CZAMがインストールされていない場合(問い合わせ1504)、プロセッサは、SIGP命令の指令コードによりレジスタを設定することにより、モード切り替えを準備し(ステップ1506)、SIGP命令を実行して、ESA/390モードに切り替える(ステップ1508)。その後、その例が上述される制御ユーティリティ・ブート・シーケンスの開始への分岐が行われる(ステップ1510)。次に、ブート・コードがESA/390モードで実行され、z/Architectureモードに切り替えられる。
問い合わせ1504に戻ると、CZAMがインストールされている場合、コンピューティング環境は既にz/Architectureモードにあるので、切り替えは必要なく、従って、上述のような制御ユーティリティ・ブート・シーケンスの開始への分岐が行われる(ステップ1514)。次に、ブート・コードが、z/Architectureモードで実行される(ステップ1512)。
1つの実施形態において、CZAMファシリティ・インジケータが与えられない場合、ステップ1410、1414の一部として保存されたインジケータは、代わりに、ブート構成アーキテクチャ・モードを示すために用いることができる。
図20を参照して、リセット論理の更に別の実施形態を説明する。最初に、プロセッサは、例えば、I/Oの接続を切断すること、マシンを休止させること、一般的に動作を終了させるといった、環境のティアダウンを開始する(ステップ1600)。その後、ファシリティ・ビット又は別のインジケータを読み取り、CZAMがインストールされているかどうかを判断する(ステップ1602)。CZAMがインストールされていない場合(問い合わせ1604)、プロセッサは、モード切り替えを準備し(ステップ1606)、SIGP命令を実行して、ESA/390モードに切り替える(ステップ1608)。付加的に、PSWをリセットPSWに設定する(ステップ1610)。例えば、PSWは、例えば、本明細書で説明されるような絶対位置0乃至7に格納された値へのリセット時の既知の値に、又はアーキテクチャ仕様により定められた固定値により、初期化される。次に、上述のように、制御ユーティリティ・ブート・シーケンスの開始へ分岐が行われる(ステップ1612)。次に、ブート・コードがESA/390モードで実行され、z/Architectureモードに切り替えられる。
問い合わせ1604に戻ると、CZAMがインストールされている場合、切り替えは必要とされず、PSWは、リセットPSWに設定され(ステップ1616)、上述のように、制御ユーティリティ・ブート・シーケンスの開始へ分岐が行われ(ステップ1618)、ブート・コードが、z/Architectureモードで実行される(ステップ1614)。
図21を参照して説明されるように、リセットのさらに別の実施形態において、リセットは、あたかもz/Architectureモードにあるように実行される。この実施形態において、最初に、システムは、環境のティアダウンを開始する(ステップ1700)。次に、PSWは、リセットz/Architecture PSWに設定され(ステップ1702)、制御ユーティリティ・ブート・シーケンスの開始への分岐が行われる(ステップ1704)。マシンがESA/390でブートするか又はネイティブにz/Architectureでブートするかに関係なく、ブート・コードが実行される(ステップ1706)。
更に別の態様において、ブートされる制御ユーティリティが共通ブート・シーケンスと互換性があるかどうかを判断するために、検出論理が与えられる。例えば、本明細書での例において、制御ユーティリティは、例えばz/Architectureなどの1つの特定のアーキテクチャのために書かれており、ブート・シーケンスはこれに基づいている。従って、制御ユーティリティが、z/Architectureを予期せず、ESA/390などの別のアーキテクチャのために書かれていることが分かった場合、不一致が生じる。
従って、1つの実施形態において、ブート・シーケンスの早期に、SIGP命令に関してチェックが行われ、それは、一例においては、制御ユーティリティがz/Architecture用であるかどうかに関する表示である。この論理は、ブート・シーケンスの初期化を実施するプログラム論理内に直接含ませることができ、SIGP命令は、図15に説明されるようなブート・シーケンス内に含ませることができる。
図22を参照して、この検出論理の1つの実施形態を説明する。最初に、ブート・シーケンス内の所定数の命令までの命令が実行される(ステップ1800)。SIGP命令を実行することなく、所定数の命令nが実行された場合(問い合わせ1802)、制御ユーティリティは共通ブート・ユーティリティではないと仮定されるので、修正アクションがとられる(ステップ1804)。このアクションは、例えば、実行を停止すること、例外を生成すること、及び/又は通知を提供することを含む。
問い合わせ1802に戻ると、SIGPが実行された場合、上述のように、ブート・シーケンスは、処理を続行できると仮定される(ステップ1806)。
上記の論理は、SIGPが、共通ブート・シーケンスにおいて発行される仮定する。SIGPを実行できない他のタイプのブート・シーケンスが用いられる場合、他の検出論理を用いてもよい。別の実施形態においては、例えば図14を参照して説明されるように、制御ユーティリティが、z/Architectureモードでネイティブにブートするシステム上での排他的実行に適合されるときに、同じ検出論理が用いられる。図14のブート・シーケンスは、図22の制御論理の要件を満たすために、例えば、SIGP Set Architecture(又は、これに限定されるものではないが、z/Architectureがブートされることを示す、新しく定められたSIGP「アサートz/Architecture」のような他のインジケータ)により増強される。
制御ユーティリティを複数のアーキテクチャ構成でブートするために共通ブート・シーケンスを使用するための能力が、詳細に上述される。この能力を用いて、プロセッサは、ESA/390でブートし、z/Architectureに切り替えるコンピューティング環境、及びz/Architectureでブートするコンピューティング環境において、同じオペレーティング・システム及び他の制御ユーティリティをブートすることができる。一例では、SIGPが同じアーキテクチャ・モードへの切り替えを試みた場合、SIGPにおけるエラーを報告しないように、ハードウェアが修正される。
図23を参照して、共通ブート・シーケンスに関する更に別の態様を説明する。最初に、選択されたアーキテクチャ・モードでオペレーティング・システムのような制御ユーティリティをブートするためのブート・シーケンスが開始される(ステップ1900)。選択されたアーキテクチャ・モードは、制御ユーティリティ用に書かれた選択されたアーキテクチャに基づく。制御ユーティリティは、1つのアーキテクチャで初期化し、処理のために選択されたアーキテクチャに切り替える第1のアーキテクチャ構成、又は選択されたアーキテクチャで初期化し、処理する第2のアーキテクチャ構成の少なくとも1つにおいて初期化されるように構成される。
ブート・シーケンスが実行され、このブート・シーケンスは、例えば、プロセッサの現在のアーキテクチャ構成に基づいてプロセッサ状況ワードを設定することを含む(ステップ1902)。さらに、プロセッサが第1のアーキテクチャ構成又は第2のアーキテクチャ構成に基づいて初期化を実行するかに関係なく、1つ又は複数の命令が実行される(ステップ1904)。1つ又は複数の命令は、モード切り替えを準備すること(ステップ1906)を含むことができ、プロセッサは、プロセッサのアーキテクチャ・モードに関係なく切り替え動作を行う準備をする。例えば、切り替え動作を実行するために、アーキテクチャ設定指令コードが、SIGP命令に与えられる(ステップ1908)。切り替え操作は、プロセッサが、初期化を1つのアーキテクチャで実行するか又は選択されたアーキテクチャで実行するかに関係なく、プロセッサのアーキテクチャ・モードの切り替えを必要とする。切り替え動作は、どのアーキテクチャかに基づいて、すなわち1つのアーキテクチャ又は選択されたアーキテクチャに基づいて異なるように実行され、プロセッサは、初期化を実行する。例えば、プロセッサが1つのアーキテクチャにある場合、切り替え動作は、1つのアーキテクチャから選択されたアーキテクチャに切り替えられ、制御ユーティリティの処理は、選択されたアーキテクチャにある。しかしながら、プロセッサが既に選択されたアーキテクチャにある場合、切り替え動作は、選択されたアーキテクチャ・モードから選択されたアーキテクチャ・モードへの切り替えを必要とする。これは、プロセッサが現在選択されたアーキテクチャ・モードにあることを示す状況の格納をもたらすが、その状況は、切り替え動作の発行者に受け入れ可能であるとみなされる。つまり、それは、エラーとは見なされない。切り替え動作を行った後、制御ユーティリティがブートされ、コードが選択されたアーキテクチャで実行される(ステップ1910)。
本明細書で説明されるフローにおいて、モード切り替え操作及びSIGP命令の準備は、共通命令サブセットから別個に示すことができる。しかしながら、これらは、共通サブセット内に及び/又はそれとは別個に含ませることもできる。
共通ブート・ユーティリティ・ファシリティの態様は、例えば、その各々の全体が引用により本明細書に組み入れられる、同一出願人により同時に出願されたMichael K.Gscheindによる「Architectural Mode Configuration」(IBM整理番号:POU920140021US1)及びGainey他による「Managing Processing Associated with Selected Architectural Facilities」(IBM整理番号:POU920140020US1)に説明される、例えばCZAMファシリティ及びNo−DATファシリティを含む1つ又は複数の他のファシリティと共に使用することができる。
図24を参照すると、一例において、コンピュータ・プログラム製品2000は、例えば、1つ又は複数の好ましい実施形態を提供し、容易にするように、その上にコンピュータ可読プログラム・コード手段、論理及び/又は命令2004を格納するための、1つ又は複数の一時的でないコンピュータ可読ストレージ媒体2002を含む。
本発明は、システム、方法、及び/又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用するための命令を保持及び格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの、即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、クリア可能なプログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク型読み出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカード又は命令がその上に記録された溝の中の隆起構造などの機械的にエンコードされるデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で用いられる場合、コンピュータ可読ストレージ媒体は、電波若しくは他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を介して伝搬する電磁波(例えば、光ファイバ・ケーブルの中を通る光パルス)、又は配線を介して伝送される電気信号などの、一時的な信号自体と解釈されるべきではない。
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスにダウンロードしてもよく、又は、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び/又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードしてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び/又はエッジ・サーバを含むことができる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インタフェースが、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するように、コンピュータ可読プログラム命令を転送する。
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データとすることができ、又は、Smalltalk、C++等のようなオブジェクト指向プログラミング言語、及び、「C」プログラミング言語若しくは類似のプログラミング言語のような従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせで書かれたソース・コード若しくはオブジェクト・コードのいずれかとすることができる。コンピュータ可読プログラム命令は、全体をユーザのコンピュータ上で実行することができ、独立型ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で実行されることができ、一部をユーザのコンピュータ上で実行し、一部を遠隔コンピュータ上で実行することができ、又は全体を遠隔コンピュータ若しくはサーバ上で実行することができる。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、又は、外部コンピュータに対して(例えば、インターネット・サービス・プロバイダを使用してインターネット経由で)接続が行われてもよい。幾つかの好ましい実施形態においては、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラマブル論理アレイ(PLA)を含む電子回路が、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによって、コンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本明細書において、本発明の好ましい実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するための手段を生成するようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、及び/又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、その結果、命令をその内部に格納したコンピュータ可読ストレージ媒体が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する命令を含む製品を含むようにすることもできる。
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、そのコンピュータ、他のプログラム可能装置、又は他のデバイス上で一連の動作ステップを行わせてコンピュータ実装プロセスを生成し、それにより、そのコンピュータ、他のプログラム可能装置、又は他のデバイス上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実施するようにすることもできる。
図面内のフローチャート及びブロック図は、本発明の種々の好ましい実施形態による、システム、方法及びコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実行するための1つ又は複数の実行可能な命令を含む、モジュール、セグメント又は命令の一部を表すことができる。幾つかの代替的な実施において、ブロック内に記された機能は、図面内に記された順序とは異なる順序で行われることもある。例えば、連続して示された2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックは、ときには逆の順序で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を行う専用ハードウェアベースのシステムにより実装すること、又は専用ハードウェアとコンピュータ命令との組み合わせによって実施することができることにも留意されたい。
上記に加えて、1つ又は複数の態様は、顧客環境の管理を提供するサービス・プロバイダによって供与、提供、配置、管理、サービス等を行うことができる。例えば、サービス・プロバイダは、1又は複数の顧客のために1つ又は複数の態様を実施するコンピュータ・コード及び/又はコンピュータ・インフラストラクチャの作成、保守、サポート等を行うことができる。見返りに、サービス・プロバイダは、例として、予約申し込み及び/又は報酬契約の下で顧客から支払いを受けることができる。付加的に又は代替的に、サービス・プロバイダは、1又は複数の第三者に対する広告内容の販売から支払いを受けることができる。
一態様において、1つ又は複数の実施形態を実施するために、アプリケーションを配備することができる。一例として、アプリケーションの配備は、1つ又は複数の好ましい実施形態を実施するように動作可能なコンピュータ・インフラストラクチャを提供することを含む。
更に別の態様として、コンピュータ可読コードをコンピュータ・システムに統合することを含む、コンピュータ・インフラストラクチャを配置することができ、そこでは、コードは、コンピューティング・システムと協働して、1つ又は複数の好ましい実施形態を実施することができる。
更に別の態様として、コンピュータ可読コードをコンピュータ・システムに統合することを含む、プロセスを提供することができる。コンピュータ・システムは、コンピュータ可読媒体を含み、ここで、コンピュータ媒体は、1つ又は複数の好ましい実施形態を含む。コードは、コンピュータ・システムと協働して、1つ又は複数の好ましい実施形態を実施することができる。
種々の実施形態が上述されたが、これらは例にすぎない。例えば、1つ又は複数の好ましい実施形態を組み込み、使用するために、他のアーキテクチャのコンピューティング環境を使用することもできる。さらに、異なる命令、命令形式、命令フィールド、及び/又は命令の値を使用することができる。また、他のブート及びリブート・シーケンスを使用することもできる。多くの変形が可能である。
さらに、他のタイプのコンピューティング環境の利益を得、これを使用することができる。一例として、プログラム・コードを格納及び/又は実行するのに適しており、システム・バスを介してメモリ要素に直接又は間接的に結合された少なくとも2つのプロセッサを含む、データ処理システムを使用することができる。メモリ要素は、例えば、プログラム・コードの実際の実行中に用いられるローカル・メモリ、大容量記憶装置、及び実行中に大容量記憶装置からコードを取り出さなければならない回数を減らすために少なくとも幾つかのプログラム・コードの一時的なストレージを提供するキャッシュ・メモリを含む。
入力/出力即ちI/Oデバイス(これらに限定されるものではないが、キーボード、ディスプレイ、ポインティング・デバイス、DASD、テープ、CD、DVD、サムドライブ及び他のメモリ媒体等)は、直接システムに結合することもでき、又は介在するI/Oコントローラを介してシステムに結合することができる。ネットワーク・アダプタをシステムに結合させて、データ処理システムが、介在する私的ネットワーク又は公衆ネットワークを通じて他のデータ処理システム又は遠隔プリンタ若しくはストレージ・デバイスに結合できるようにすることもできる。モデム、ケーブル・モデム及びイーサネット・カードは、ネットワーク・アダプタの利用可能なタイプのうちのほんの数例である。
図25を参照すると、これは、1つ又は複数の好ましい実施形態を実装するためのホスト・コンピュータ・システム5000の代表的なコンポーネントが描かれる。代表的なホスト・コンピュータ5000は、コンピュータ・メモリ(即ち、中央ストレージ)5002と通信する1つ又は複数のCPU5001と、他のコンピュータ若しくはSANなどとの通信のためのストレージ媒体デバイス5011及びネットワーク5010に対するI/Oインターフェースとを含む。CPU5001は、アーキテクチャ化命令セット及びアーキテクチャ化機能を有するアーキテクチャに準拠している。CPU5001は、アクセス・レジスタ変換(ART)5012を有し、これは、プログラム・アドレス(仮想アドレス)をメモリの実アドレスに変換するための動的アドレス変換(DAT)5003により用いられるアドレス空間を選択するためのARTルックアサイド・バッファ(ALB)5013を含む。DATは、典型的には、変換をキャッシュに入れるための変換ルックアサイド・バッファ(TLB)5007を含み、後でコンピュータ・メモリ5002のブロックにアクセスしたときにアドレス変換による遅延を必要とせずに済むように変換をキャッシュに入れるための、変換ルックアサイド・バッファ(TLB)5007を含む。典型的には、キャッシュ5009は、コンピュータ・メモリ5002とプロセッサ5001との間で用いられる。キャッシュ5009は、1つより多くのCPUが利用できる大型キャッシュと、大型キャッシュと各CPUとの間のより小型で高速な(下位レベルの)キャッシュとを有する階層構造とすることができる。いくつかの実施において、下位レベルのキャッシュは、命令フェッチ及びデータ・アクセスのための個別の下位レベル・キャッシュを提供するように分割される。
1つの実施形態において、命令は、命令フェッチ・ユニット5004によりメモリ5002からキャッシュ5009を介してフェッチされる。命令は、命令デコード・ユニット5006内でデコードされ(幾つかの好ましい実施形態においては他の命令と共に)命令実行ユニット5008にディスパッチされる。典型的には、幾つかの実行ユニット5008、例えば、算術演算実行ユニット、浮動小数点実行ユニット及び分岐命令実行ユニットが用いられる。命令は、実行ユニットにより、必要に応じて命令が指定するレジスタ又はメモリからのオペランドにアクセスすることにより実行される。オペランドがメモリ5002からアクセスされる(ロードされる又はストアされる)場合には、典型的には、ロード/ストア・ユニット5005が、実行されている命令の制御下でアクセスを取り扱う。命令は、ハードウェア回路若しくは内部マイクロコード(ファームウェア)、又はこの両方の組み合わせにより実行することができる。
既述のように、コンピュータ・システムは、ローカル(又は、主)ストレージ内の情報、並びにアドレス指定、保護、並びに参照及び変更記録を含む。アドレス指定の幾つかの態様は、アドレスの形式、アドレス空間の概念、アドレスの種々のタイプ及び1つのタイプのアドレスが別のタイプのアドレスに変換される方法を含む。主ストレージの一部は、恒久的に割り当てられたストレージ位置を含む。主ストレージは、システムに、直接アドレス可能なデータの高速アクセス・ストレージを提供する。データ及びプログラムの両方とも、これらが処理される前に(入力デバイスから)主ストレージにロードされる。
主ストレージは、キャッシュと呼ばれることがある、1つ又は複数のより小型の高速アクセス・バッファ・ストレージを含むことができる。キャッシュは、典型的には、CPU又はI/Oプロセッサと物理的に関連付けられる。物理的構造の、性能を除いた効果及び別個のストレージ媒体の使用は、一般に、プログラムにより観察することができない。
命令及びデータ・オペランドに対して、別個のキャッシュを維持することができる。キャッシュ内の情報は、キャッシュ・ブロック又はキャッシュ・ライン(又は、簡単に言えばライン)と呼ばれる整数境界上の連続バイトで維持される。モデルは、キャッシュ・ラインのサイズをバイト単位で戻すEXTRACT CACHE ATTRIBUTE命令を提供することができる。別の実施形態において、この情報は、例えば、Power Architecture Platform Reference仕様により指定されるインターフェースに従ったファームウェアから取得することができる。モデルはまた、データ・キャッシュ・ブロック・タッチ(dcbt)、データ又は命令キャッシュへのストレージのプリフェッチ又はキャッシュからのデータの解放を行うPREFETCH DATA及びPREFETCH DATA RELATIVE LONG命令のうちの1つ又は複数を提供することもできる。
ストレージは、ビットの水平の長い文字列として見ることができる。殆どの操作では、ストレージへのアクセスは、左から右への順で進行する。ビットの文字列は、8ビット単位で細分される。この8ビットの単位はバイトと呼ばれ、これは全ての情報形式の基本構成単位である。ストレージ内の各々のバイト位置は、負でない固有の整数により識別され、この整数がバイト位置のアドレス、即ち、簡単にバイト・アドレスである。隣接するバイト位置は連続するアドレスを有し、左端の0から始まって左から右へ順に進行する。アドレスは、符号なしの2進整数であり、24ビット、31ビット又は64ビットである。
情報は、ストレージとCPU又はチャネル・サブシステムとの間で、一度に1バイトずつ、又は1グループ分のバイトで伝送される。特に断りのない限り、例えば、Power ISA及びz/Architectureにおいて、ストレージ内のバイト・グループは、グループの左端のバイトによりアドレス指定される。グループ内のバイト数は、実行される操作により暗黙的に決定される場合、又は明示的に決定される場合がある。CPU操作に使用される場合、バイト・グループはフィールドと呼ばれる。各々のバイト・グループ内において、例えば、Power ISA及びz/Architectureにおいて、ビットは、左から右の順に番号付けされる。Power ISA及びz/Architectureにおいて、左端のビットを「最上位」ビットと呼び、右端のビットを「最下位」ビットと呼ぶことがある。しかしながら、ビット番号はストレージ・アドレスではない。アドレス指定できるのはバイトだけである。ストレージ内の1つのバイトの個々のビットに対して操作を行うためには、そのバイト全体にアクセスされる。1バイトの中のビットには、(z/Architectureにおいて)左から右に0から7までの番号が付けられる。1つのアドレスの中のビットには、24ビット・アドレスの場合は、8−31又は40−63の番号が付けられ、又は31ビット・アドレスの場合は、1−31又は33−63の番号が付けられ、又は64ビット・アドレスの場合は、0−63の番号が付けられる。一例においては、ビット8−31及び1−31は、32ビット長の記憶位置(例えばレジスタ)にあるアドレスに適用され、一方、ビット40−63及び33−63は、64ビット長の記憶位置にあるアドレスに適用される。複数バイトの任意の他の固定長形式において、形式を構成するビットは、0から始まって連続的に番号が付けられる。エラー検出のため、また好ましくは訂正のため、各々のバイト又はバイト・グループと共に1又は複数の検査ビットを伝送することができる。こうした検査ビットは、マシンにより自動的に生成され、プログラムにより直接制御することはできない。ストレージ容量は、バイト数で表現される。ストレージ・オペランド・フィールドの長さが命令のオペコードで暗黙指定される場合、そのフィールドは固定長を有するといわれ、この長さは1バイト、2バイト、4バイト、8バイト又は16バイトとすることができる。幾つかの命令に対しては、より大きいフィールドが暗黙指定される。ストレージ・オペランドの長さが暗黙指定されず、明示的に指定される場合は、そのフィールドは可変長を有するといわれる。可変長オペランドは、1バイトのインクリメント(又は幾つかの命令では、2バイトの倍数又は他の倍数で)で長さが変化し得る。情報がストレージ内に配置されると、ストレージへの物理的パスの幅が格納されるフィールドの長さより大きい場合であっても、指定したフィールドに含まれているバイト位置の内容のみが置き換えられる。
情報の特定の単位は、ストレージ内の整数境界上にあるべきである。境界は、そのストレージ・アドレスがバイトでの単位の長さの倍数である場合に、情報の単位に対して整数であると呼ばれる。整数境界上にある2バイト、4バイト、8バイト、16バイト及び32バイトのフィールドには、特別な名称が与えられる。ハーフワードは、2バイト境界上にある2個の連続したバイトのグループであり、これは命令の基本構成単位である。ワードは、4バイト境界上にある4個の連続したバイトのグループである。ダブルワードは、8バイト境界上にある8個の連続したバイトのグループである。クワッドワードは、16バイト境界上にある16個の連続したバイトのグループである。オクトワードは、32バイト境界上にある32個の連続したバイトのグループである。ストレージ・アドレスが、ハーフワード、ワード、ダブルワード、クワッドワード及びオクトワードを指定するとき、そのアドレスの2進表現では、それぞれ1個、2個、3個、4個又は5個の右端の0ビットを含む。命令は、2バイト整数境界上にあるべきである。殆どの命令のストレージ・オペランドは、境界位置合わせ要件を有さない。
命令及びデータ・オペランドに対して別個のキャッシュを実装するデバイスにおいては、ストアが後にフェッチされる命令を変更するかどうかに関係なく、プログラムが、後にフェッチされるキャッシュ・ラインに格納される場合、著しい遅延が生じ得る。
一例において、実施形態は、ソフトウェア(ライセンス内部コード、ファームウェア、マイクロコード、ミリコード、ピココードなどとも呼ばれる場合があるが、そのいずれも1つ又は複数の好ましい実施形態と整合性がある)により実施することができる。図25を参照すると、1つ又は複数の態様を具体化するソフトウェア・プログラム・コードは、CD−ROMドライブ、テープドライブ、又はハードドライブといった長期ストレージ媒体デバイス5011から、ホスト・システム5000のプロセッサ5001によりアクセスすることができる。ソフトウェア・プログラム・コードは、ディスケット、ハードドライブ、又はCD−ROMのようなデータ処理システムと共に使用するための種々の周知の媒体のいずれかの上で具体化することができる。コードは、こうした媒体上に分散させても、又はコンピュータ・メモリ5002からユーザに分散させても、又はこうした他のシステムのユーザが使用するために、ネットワーク5010上の1つのコンピュータ・システムのストレージから他のコンピュータ・システムに分散させてもよい。
ソフトウェア・プログラム・コードは、種々のコンピュータ・コンポーネント及び1つ又は複数のアプリケーション・プログラムの機能及び相互作用を制御するオペレーティング・システムを含む。プログラム・コードは、通常、ストレージ媒体デバイス5011から相対的により高速のコンピュータ・ストレージ5002にページングされ、そこでプロセッサ5001による処理のために利用可能になる。ソフトウェア・プログラム・コードをメモリ内、物理的媒体上で具体化し、及び/又は、ネットワークを介してソフトウェア・コードを配布する技術及び方法は周知であり、ここではこれ以上論じない。プログラム・コードは、有形の媒体(これらに限定されるものではないが、電子メモリ・モジュール(RAM)、フラッシュ・メモリ、コンパクト・ディスク(CD)、DVD、磁気テープ等)上に作成され格納されたとき、「コンピュータ・プログラム」と呼ばれることが多い。コンピュータ・プログラム媒体は、典型的には、処理回路による実行のために、好ましくはコンピュータ・システム内の処理回路によって読み取り可能である。
図26は、1つ又は複数の好ましい実施形態を実施することができる代表的なワークステーション又はサーバ・ハードウェア・システムを示す。図22のシステム5020は、随意的な周辺機器を含む、パーソナル・コンピュータ、ワークステーション、又はサーバなどの代表的なベース・コンピュータ・システム5021を含む。ベース・コンピュータ・システム5021は、1つ又は複数のプロセッサ5026と、周知の技術に従ってプロセッサ5026とシステム5021の他のコンポーネントを接続し、これらの間の通信を可能にするために用いられるバスとを含む。バスは、プロセッサ5026を、ハードドライブ(例えば、磁気媒体、CD、DVD及びフラッシュ・メモリのいずれかを含む)又はテープドライブを含むことができる、メモリ5025及び長期ストレージ5027に接続する。システム5021はまた、バスを介して、マイクロプロセッサ5026を、キーボード5024、マウス5023、プリンタ/スキャナ5030、及び/又はタッチ・センシティブ・スクリーン、デジタル化された入力パッド等のいずれかのユーザ・インターフェース機器とすることができる他のインターフェース機器といった、1つ又は複数のインターフェース機器に接続する、ユーザ・インターフェース・アダプタを含むこともできる。バスはまた、ディスプレイ・アダプタを介して、LCDスクリーン又はモニタなどのディスプレイ装置5022をマイクロプロセッサ5026にも接続する。
システム5021は、ネットワーク5029と通信する5028ことができるネットワーク・アダプタを介して、他のコンピュータ又はコンピュータ・ネットワークと通信することができる。例示的なネットワーク・アダプタは、通信チャネル、トークン・リング、イーサネット又はモデムである。代替的に、システム5021は、CDPD(セルラー・デジタル・パケット・データ)カードのような無線インターフェースを用いて通信することもできる。システム5021は、ローカル・エリア・ネットワーク(LAN)又は広域ネットワーク(WAN)又はシステム5021内のこうした他のコンピュータと関連付けることができ、又は、別のコンピュータ等とのクライアント/サーバ構成におけるクライアントとすることができる。これら構成の全て、並びに、適切な通信ハードウェア及びソフトウェアは、当技術分野において周知である。
図27は、1つ又は複数の好ましい実施形態を実施することができるデータ処理ネットワーク5040を示す。データ処理ネットワーク5040は、各々が複数の個々のワークステーション5041、5042、5043、5044を含むことができる、無線ネットワーク及び有線ネットワークのような複数の個々のネットワークを含むことができる。さらに、当業者であれば理解するように、1つ又は複数のLANを含ませることができ、そこで、LANは、ホスト・プロセッサに結合された複数のインテリジェント・ワークステーションを含むことができる。
さらに図27を参照すると、ネットワークはまた、ゲートウェイ・コンピュータ(クライアント・サーバ5046)、又はアプリケーション・サーバ(データ・リポジトリにアクセスすることができ、かつ、ワークステーション5045から直接アクセスすることもできる遠隔サーバ5048)のような、メインフレーム・コンピュータ又はサーバを含むこともできる。ゲートウェイ・コンピュータ5046は、各々の個々のネットワークへの入力点のとして働く。ゲートウェイは、1つのネットワーク・プロトコルを別のものに接続するときに必要とされる。ゲートウェイ5046は、通信リンクによって別のネットワーク(例えば、インターネット5047)に結合できることが好ましい。ゲートウェイ5046はまた、通信リンクを用いて、1つ又は複数のワークステーション5041、5042、5043、5044に直接結合することもできる。ゲートウェイ・コンピュータは、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能なIBM Power Systemsサーバ及びIBM System z(登録商標)サーバの一方を用いて実装することができる。System zは、世界中の多数の管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。
図26及び図27を同時に参照すると、1つ又は複数の態様を具体化することができるソフトウェア・プログラム・コード5031には、一般的に、CD−ROMドライブ又はハードドライブといった長期ストレージ媒体5027から、システム5020のプロセッサ5026によってアクセスすることができる。ソフトウェア・プログラム・コードは、ディスケット、ハードドライブ、又はCD−ROMといった、データ処理システムと共に用いるための種々の周知の媒体のいずれかの上で具体化することができる。コードは、そのような媒体上で分散させても、又はメモリからユーザ5050、5051に分散させても、又は、こうした他のシステムのユーザが用いるために、ネットワーク上の1つのコンピュータ・システムのメモリ若しくはストレージから他のコンピュータ・システムに分散させてもよい。
代替的に、プログラム・コードをメモリ5025内で具体化し、プロセッサ・バスを用いてプロセッサ5026によってプログラム・コードにアクセスすることができる。このようなプログラム・コードは、種々のコンピュータ・コンポーネント及び1つ又は複数のアプリケーション・プログラム5032の機能及び相互作用を制御するオペレーティング・システムを含む。プログラム・コードは、通常、ストレージ媒体5027から高速メモリ5025にページングされ、そこでプロセッサ5026による処理のために利用可能になる。ソフトウェア・プログラム・コードをメモリ内、物理的媒体上で具体化し、及び/又は、ネットワークを介してソフトウェア・コードを配布する技術及び方法は周知であり、ここではこれ以上論じない。プログラム・コードは、有形の媒体(これらに限定されるものではないが、電子メモリ・モジュール(RAM)、フラッシュ・メモリ、コンパクト・ディスク(CD)、DVD、磁気テープなどを含む)に格納されたとき、「コンピュータ・プログラム」と呼ばれることが多い。コンピュータ・プログラム媒体は、典型的には、処理回路による実行のために、好ましくはコンピュータ・システム内の処理回路によって読み取り可能である。
プロセッサが最も容易に利用できるキャッシュ(通常、プロセッサの他のキャッシュよりも高速で小さい)は、最下位(L1又はレベル1)のキャッシュであり、主ストア(主メモリ)は、最上位レベルのキャッシュ(3つのレベルがある場合にはL3)である。最下位レベルのキャッシュは、実行されるマシン命令を保持する命令キャッシュ(I−キャッシュ)と、データ・オペランドを保持するデータ・キャッシュ(D−キャッシュ)とに分割されることが多い。
図28を参照すると、プロセッサ5026についての例示的なプロセッサの実施形態が示される。典型的には、メモリ・ブロックをバッファに入れてプロセッサ性能を向上させるために、1つ又は複数のレベルのキャッシュ5053が用いられる。キャッシュ5053は、用いられる可能性が高いメモリ・データのキャッシュ・ラインを保持する高速バッファである。典型的なキャッシュ・ラインは、64バイト、128バイト、又は256バイトのメモリ・データである。データをキャッシュに入れるのではなく、命令をキャッシュに入れるために、別個のキャッシュが用いられることが多い。キャッシュ・コヒーレンス(メモリ及びキャッシュ内のラインのコピーの同期)は、多くの場合、当技術分野において周知の種々の「スヌープ」アルゴリズムによって与えられる。プロセッサ・システムの主メモリ・ストレージ5025は、キャッシュと呼ばれることが多い。4つのレベルのキャッシュ5053を有するプロセッサ・システムにおいて、主ストレージ5025は、典型的にはより高速であり、かつ、コンピュータ・システムが利用できる不揮発性ストレージ(DASD、テープ等)の一部だけを保持するので、レベル5(L5)のキャッシュと呼ばれることがある。主ストレージ5025は、オペレーティング・システムによって主ストレージ5025との間でページングされるデータのページを「キャッシュに入れる」。
プログラム・カウンタ(命令カウンタ)5061は、実行される現行の命令のアドレスを常時監視している。z/Architectureプロセッサのプログラム・カウンタは64ビットであり、従来のアドレッシング制限をサポートするために、31ビット又は24ビットに切り捨てることができる。Power Architectureプロセッサのプログラム・カウンタは、64ビットであり、従来のアドレッシング制限をサポートするために、32ビットに切り捨てることができる。プログラム・カウンタは、典型的には、コンテキスト・スイッチの際に持続するように、コンピュータのPSW(プログラム状況ワード)内で具体化される。従って、例えば、オペレーティング・システムにより、プログラム・カウンタ値を有する進行中のプログラムに割り込みをかけることが可能である(プログラム環境からオペレーティング・システム環境へのコンテキスト・スイッチ)。プログラムのPSWは、プログラムがアクティブでない間、プログラム・カウンタ値を保持し、オペレーティング・システムが実行されている間、オペレーティング・システムの(PSW内の)プログラム・カウンタが用いられる。典型的には、プログラム・カウンタは、現行の命令のバイト数に等しい量だけインクリメントされる。RISC(Reduced Instruction Set Computing)命令は、典型的には固定長であり、CISC(Complex Instruction Set Computing)命令は、典型的には可変長である。IBM z/Architectureの命令は、2バイト、4バイト、又は6バイトの長さを有するCISC命令である。IBM Power ISAの命令は、4バイトの長さを有するRISC命令である。例えば、コンテキスト・スイッチ操作又は分岐命令の分岐成立操作により、プログラム・カウンタ5061が変更される。コンテキスト・スイッチ操作において、現行のプログラム・カウンタ値は、実行されるプログラムについての他の状態情報(条件コードのような)と共にプログラム状況ワード内に保存され、実行される新しいプログラム・モジュールの命令を指し示す新しいプログラム・カウンタ値がロードされる。分岐成立操作を行い、分岐命令の結果をプログラム・カウンタ5061にロードすることにより、プログラムが判断を下すこと又はプログラム内でループすることを可能にする。
典型的には、プロセッサ5026の代わりに命令をフェッチするために、命令フェッチ・ユニット5055が用いられる。フェッチ・ユニットは、「次の順次命令」、分岐成立命令のターゲット命令、又はコンテキスト・スイッチの後のプログラムの最初の命令のいずれかをフェッチする。今日の命令フェッチ・ユニットは、プリフェッチされた命令を用いることができる可能性に基づいて、命令を投機的にプリフェッチするプリフェッチ技術を用いることが多い。例えば、フェッチ・ユニットは、次の順次命令を含む16バイトの命令と、付加的なバイトの更なる順次命令とをフェッチすることができる。
次いで、フェッチされた命令が、プロセッサ5026によって実行される。1つの実施形態において、フェッチされた命令は、フェッチ・ユニットのディスパッチ・ユニット5056に渡される。ディスパッチ・ユニットは命令をデコードし、デコードされた命令についての情報を適切なユニット5057、5058、5060に転送する。実行ユニット5057は、典型的には、命令フェッチ・ユニット5055からデコードされた算術命令についての情報を受け取り、命令のオペコードに従ってオペランドに関する算術演算を行う。オペランドは、好ましくは、メモリ5025、アーキテクチャ化レジスタ5059、又は実行される命令の即値フィールドのいずれかから、実行ユニット5057に与えられる。実行の結果は、格納された場合には、メモリ5025、レジスタ5059、又は他のマシン・ハードウェア(制御レジスタ、PSWレジスタなどのような)内に格納される。
仮想アドレスは、動的アドレス変換5062、及び随意的に、アクセス・レジスタ変換5063を用いて、実アドレスに変換される。
プロセッサ5026は、典型的には、命令の機能を実行するための1つ又は複数の実行ユニット5057、5058、5060を有する。図29を参照すると、実行ユニット5057は、インターフェース論理5071を介して、アーキテクチャ化された汎用レジスタ5059、デコード/ディスパッチ・ユニット5056、ロード・ストア・ユニット5060、及び他のプロセッサ・ユニット5065と通信することができる。実行ユニット5057は、幾つかのレジスタ回路5067、5068、5069を用いて、算術論理演算ユニット(ALU)5066が動作する情報を保持することができる。ALUは、加算、減算、乗算、及び除算などの算術演算、並びに、論理積、論理和、及び排他的論理和、ローテート及びシフトのような論理関数を実行する。ALUは、設計に依存する専用の演算をサポートすることが好ましい。他の回路は、例えば条件コード及び回復サポート論理を含む、他のアーキテクチャ化ファシリティ5072を提供することができる。典型的には、ALU演算の結果は、出力レジスタ回路5070に保持され、この出力レジスタ回路5070が、結果を種々の他の処理機能に転送することができる。多数のプロセッサ・ユニットの構成が存在し、本説明は、1つの実施形態の代表的な理解を与えることのみを意図している。
例えばADD命令は、算術及び論理機能を有する実行ユニット5057で実行され、一方、例えば浮動小数点命令は、特化された浮動小数点能力を有する浮動小数点実行部で実行される。実行ユニットは、オペランドに対してオペコードが定めた関数を行うことにより、命令が特定したオペランドに対して動作することが好ましい。例えば、ADD命令は、命令のレジスタ・フィールドによって特定された2つのレジスタ5059内に見出されるオペランドに対して、実行ユニット5057により実行することができる。
実行ユニット5057は、2つのオペランドに対して算術加算を実行し、結果を第3オペランドに格納し、ここで第3オペランドは、第3のレジスタであっても又は2つのソース・レジスタのいずれかであってもよい。実行ユニットは、シフト、ローテート、論理積、論理和、及び排他的論理和のような種々の論理関数、並びに、加算、減算、乗算、除法のいずれかを含む、種々の代数関数を実行することができる算術論理演算ユニット(ALU)5066を用いることが好ましい。スカラー演算のために設計されたALU5066もあり、浮動小数点のために設計されたものALU5066もある。データは、アーキテクチャに応じて、ビッグ・エンディアン(最下位のバイトが最も高いバイト・アドレスである)、又はリトル・エンディアン(最下位のバイトが最も低いバイト・アドレスである)とすることができる。IBM z/Architectureは、ビッグ・エンディアンである。IBM Power ISAは、ビッグ・エンディアン及びリトル・エンディアン実行モードの両方をサポートする。符号付きフィールドは、アーキテクチャに応じて、符号及び大きさ、1の補数、又は2の補数とすることができる。2の補数における負の値又は正の値は、ALU内で加法しか必要としないため、ALUが減算能力を設計する必要がないという点で、2の補数は有利である。数値は、通常、省略表現で記述され、12ビット・フィールドは、4,096バイトブロックのアドレスを定め、通常、例えば4Kバイト(キロバイト)ブロックのように記述される。
図30を参照すると、分岐命令を実行するための分岐命令情報が、典型的には、分岐ユニット5058に送られ、この分岐ユニット5058は、多くの場合、分岐履歴テーブル5082のような分岐予測アルゴリズムを用いて、他の条件付き演算が完了する前に分岐の結果を予測する。条件付き演算が完了する前に、現行の分岐命令のターゲットがフェッチされ、投機的に実行される。条件付き演算が完了すると、投機的に実行された分岐命令は、条件付き演算の条件及び投機された結果に基づいて、完了されるか又は破棄される。典型的な分岐命令は、条件コードを試験し、条件コードが分岐命令の分岐要件を満たす場合、ターゲット・アドレスに分岐することができ、ターゲット・アドレスは、例えば、命令のレジスタ・フィールド又は即値フィールド内に見出されるものを含む幾つかの数に基づいて計算することができる。分岐ユニット5058は、複数の入力レジスタ回路5075、5076、5077と、出力レジスタ回路5080とを有するALU5074を用いることができる。分岐ユニット5058は、例えば、汎用レジスタ5059、デコード・ディスパッチ・ユニット5056、又は他の回路5073と通信すること5081ができる。
例えば、オペレーティング・システムによって開始されるコンテキスト・スイッチ、コンテキスト・スイッチを発生させるプログラム例外又はエラー、コンテキスト・スイッチを発生させるI/O割り込み信号、又は(マルチスレッド環境における)複数のプログラムのマルチスレッド活動を含む様々な理由により、命令のグループの実行に割り込みがかけられることがある。コンテキスト・スイッチ動作は、現在実行中のプログラムについての状態情報を保存し、次いで、起動される別のプログラムについての状態情報をロードすることが好ましい。状態情報は、例えば、ハードウェア・レジスタ又はメモリ内に保存することができる。状態情報は、実行される次の命令を指し示すプログラム・カウンタ値と、条件コードと、メモリ変換情報と、アーキテクチャ化されたレジスタの内容とを含むことが好ましい。コンテキスト・スイッチの活動は、ハードウェア回路、アプリケーション・プログラム、オペレーティング・システム・プログラム、又はファームウェア・コード(マイクロコード、ピココード、又はライセンス内部コード(LIC))単独で又はその組み合わせで実施することができる。
プロセッサは、命令により定義された方法に従ってオペランドにアクセスする。命令は、命令の一部の値を用いて即値オペランドを与えることができ、汎用レジスタ又は専用レジスタ(例えば、浮動小数点レジスタ)のいずれかを明示的に指し示す1つ又は複数のレジスタ・フィールドを与えることができる。命令は、オペコード・フィールドによって、オペランドとして識別されるインプライド・レジスタを用いることができる。命令は、オペランドのためのメモリ位置を用いることができる。命令がベース・レジスタ、インデックス・レジスタ、及び即値フィールド(変位フィールド)を定め、これらを互いに付加してメモリ内のオペランドのアドレスをもたらすz/Architectureの長変位ファシリティ、又は、D−形式のアドレスがベース・レジスタ及び即値フィールド(変位フィールド)を定め、これらを互いに付加してメモリ内のオペランドのアドレスをもたらし、かつ、X−形式のアドレスがベース・レジスタ及びインデックス・レジスタを定め、これらが互いに加えられてメモリ内のオペランドのアドレスをもたらす、Power ISAアドレッシング・モードにより例示されるように、オペランドのメモリ位置を、レジスタ、即値フィールド、又はレジスタと即値フィールドの組み合わせによって与えることができる。ここでの位置は、典型的には、特に断りのない限り、主メモリ(主ストレージ)内の記憶位置を意味する。
図31を参照すると、プロセッサは、ロード/ストア・ユニット5060を用いて、ストレージにアクセスする。ロード/ストア・ユニット5060は、メモリ5025内のターゲット・オペランドのアドレスを取得し、オペランドをレジスタ5059又は別のメモリ5025の記憶位置にロードすることによってロード操作を行うことができ、或いは、メモリ5025内のターゲット・オペランドのアドレスを取得し、レジスタ5059又は別のメモリ5025の記憶位置から取得したデータをメモリ5025内のターゲット・オペランドの記憶位置に格納することによって、ストア操作を行うことができる。ロード/ストア・ユニット5060は、投機的なものであってもよく、命令シーケンスに対してアウト・オブ・オーダー式の順序でメモリにアクセスすることができるが、プログラムに対して、命令がインオーダー式に実行されたという外観を維持することになる。ロード/ストア・ユニット5060は、汎用レジスタ5059、デコード/ディスパッチ・ユニット5056、キャッシュ/メモリ・インターフェース5053、又は他の要素5083と通信することができ、ストレージ・アドレスを計算し、かつ、パイプライン処理を順に行って操作をインオーダー式に保持するための、種々のレジスタ回路、ALU5085、及び制御論理5090を含む。一部の動作は、アウト・オブ・オーダー式とすることができるが、ロード/ストア・ユニットは、アウト・オブ・オーダー式動作が、プログラムに対して、当技術分野において周知のようなインオーダー式に実行されたように見えるようにする機能を提供する。
好ましくは、アプリケーション・プログラムが「見ている」アドレスは、仮想アドレスと呼ばれることが多い。仮想アドレスは、「論理アドレス」及び「実効アドレス」と呼ばれることもある。これらの仮想アドレスは、これらに限定されるものではないが、単に仮想アドレスをオフセット値にプリフィックス付加すること、1つ又は複数の変換テーブルを介して仮想アドレスを変換することを含む、種々の動的アドレス変換(DAT)技術の1つによって、物理的メモリ位置にリダイレクトされるという点で仮想のものであり、変換テーブルは、少なくともセグメント・テーブル及びページ・テーブルを単独で又は組み合わせて含むことが好ましく、セグメント・テーブルは、ページ・テーブルを指し示すエントリを有することが好ましい。z/Architectureでは、領域第1テーブル、領域第2テーブル、領域第3テーブル、セグメント・テーブル、及び随意的なページ・テーブルを含む、変換の階層構成が提供される。アドレス変換の性能は、仮想アドレスを関連した物理的メモリ位置にマッピングするエントリを含む変換ルックアサイド・バッファ(TLB)を用いることにより改善されることが多い。DATが変換テーブルを用いて仮想アドレスを変換したときに、エントリが作成される。次いで、後に仮想アドレスを用いることで、低速の順次変換テーブル・アクセスではなく、高速のTLBのエントリを用いることが可能になる。TLBの内容は、LRU(Least Recently used:最長時間未使用)を含む種々の置換アルゴリズムによって管理することができる。
プロセッサがマルチプロセッサ・システムのプロセッサである場合には、各プロセッサは、コヒーレンシのために、I/O、キャッシュ、TLB、及びメモリといった共有リソースをインターロック状態に保持する責任を負う。キャッシュ・コヒーレンシを保持する際に、一般的には「スヌープ」技術が用いられる。スヌープ環境においては、共有を容易にするために、各キャッシュ・ラインを、共有状態、排他的状態、変更状態、無効状態等のいずれか1つの状態にあるものとしてマーク付けすることができる。
I/Oユニット5054(図28)は、プロセッサに、例えば、テープ、ディスク、プリンタ、ディスプレイ、及びネットワークを含む周辺機器に取り付けるための手段を与える。I/Oユニットは、ソフトウェア・ドライバによってコンピュータ・プログラムに提示されることが多い。IBMによるSystem zのようなメインフレームにおいては、チャネル・アダプタ及びオープン・システム・アダプタが、オペレーティング・システムと周辺機器との間に通信をもたらすメインフレームのI/Oユニットである。IBM(登録商標)からのPower SystemsのようなRISCサーバにおいて、専用アダプタ及びオープン・システム・アダプタは、オペレーティング・システムと周辺機器との間の通信を与えるI/Oユニットである。
さらに、他のタイプのコンピューティング環境が、1つ又は複数の態様から利益を得ることができる。一例として、環境は、特定のアーキテクチャ(例えば、命令実行、アドレス変換などのアーキテクチャ化された機能、及びアーキテクチャ化されたレジスタを含む)又はそのサブセットをエミュレートする(例えば、プロセッサ及びメモリを有するネイティブ・コンピュータ・システム上で)エミュレータ(例えば、ソフトウェア又は他のエミュレーション機構)を含むことができる。このような環境においては、エミュレータを実行しているコンピュータが、エミュレートされる機能とは異なるアーキテクチャを有することができたとしても、エミュレータの1又は複数のエミュレーション機能により、1つ又は複数の好ましい実施形態が実施され得る。一例として、エミュレーション・モードにおいては、エミュレートされる特定の命令又は操作がデコードされ、適切なエミュレーション機能が構築され、個々の命令又は操作を実施する。
エミュレーション環境においては、ホスト・コンピュータは、例えば、命令及びデータを格納するためのメモリと、メモリから命令をフェッチし、随意的に、フェッチされた命令のためのローカル・バッファリングを提供するための命令フェッチ・ユニットと、フェッチされた命令を受信し、フェッチされた命令のタイプを判断するための命令デコード・ユニットと、命令を実行するための命令実行ユニットとを含む。実行は、データをメモリからレジスタ内にロードすること、データをレジスタから再びメモリに格納すること、又はデコード・ユニットにより判断されるように、何らかのタイプの算術演算又は論理演算を実行することを含むことができる。一例においては、各ユニットは、ソフトウェアで実装される。例えば、ユニットが実行する演算は、エミュレータ・ソフトウェア内の1つ又は複数のサブルーチンとして実装される。
より具体的には、メインフレームにおいて、アーキテクチャ化されたマシン命令は、通常、プログラマによって、多くの場合コンパイラ・アプリケーションを介して、今日では「C」プログラマによって用いられる。ストレージ媒体内に格納されたこれらの命令は、Power Systems又はz/ArchitectureのIBM(登録商標)サーバにおいて、又は代替的に他のアーキテクチャを実行するマシンにおいて、ネイティブに実行することができる。これらの命令は、既存の及び将来のIBM(登録商標)メインフレーム・サーバ、Power Systemサーバにおいて、及び、IBM(登録商標)の他のマシン(例えば、IBMのSystem xサーバ)上で、エミュレートすることができる。これらの命令は、IBM(登録商標)、Intel(登録商標)、AMDなどによって製造されたハードウェアを用いて種々のマシン上でLinuxを実行しているマシンにおいて実行することができる。Power Architecture又はz/Architecture下でそのハードウェア上で実行することに加えて、Linux(登録商標)を用いること、並びに、一般に実行がエミュレーション・モードにあるHercules、UMX、又はFSI(Fundamental Software,Inc)によるエミュレーションを用いるマシンを用いることもできる。エミュレーション・モードにおいては、ネイティブ・プロセッサによって、エミュレーション・ソフトウェアが実行され、エミュレートされたプロセッサのアーキテクチャをエミュレートする。Linuxは、米国、その他の国々、又はその両方におけるLinus Torvaldsの登録商標である。
ネイティブ・プロセッサは、一般的に、エミュレートされたプロセッサのエミュレーションを実行するためにファームウェア又はネイティブ・オペレーティング・システムのいずれかを含むエミュレーション・ソフトウェアを実行する。エミュレーション・ソフトウェアは、エミュレートされたプロセッサ・アーキテクチャの命令のフェッチと実行を担当する。エミュレーション・ソフトウェアは、エミュレートされたプログラム・カウンタを維持し、命令境界を常時監視している。エミュレーション・ソフトウェアは、一度に1つ又は複数のエミュレートされたマシン命令をフェッチし、ネイティブ・プロセッサにより実行するために、その1つ又は複数のエミュレートされたマシン命令を、対応するネイティブマシン命令のグループに変換することができる。これらの変換された命令は、より速い変換を達成できるようにキャッシュに入れることができる。それにも関わらず、エミュレーション・ソフトウェアは、エミュレートされたプロセッサ・アーキテクチャのアーキテクチャ規則を維持して、オペレーティング・システム及びエミュレートされたプロセッサのために書かれたアプリケーションが正確に動作することを保証しなければならない。さらに、エミュレーション・ソフトウェアは、これらに限定されるものではないが、制御レジスタ、汎用レジスタ、浮動小数点レジスタ、例えばセグメント・テーブル及びページ・テーブルを含む動的アドレス変換機能、割り込み機構、コンテキスト・スイッチ機構、時刻(TOD)クロック、及びI/Oサブシステムへのアーキテクチャ化インターフェースを含む、エミュレートされたプロセッサのアーキテクチャによって識別されるリソースを提供し、オペレーティング・システム又はエミュレートされたプロセッサ上で実行するように設計されたアプリケーション・プログラムが、エミュレーション・ソフトウェアを有するネイティブ・プロセッサ上で実行することができる。
エミュレートされた特定の命令がデコードされ、個々の命令の機能を実行するためのサブルーチンが呼び出される。エミュレートされたプロセッサの機能をエミュレートするエミュレーション・ソフトウェア機能は、例えば、「C」サブルーチン若しくはドライバにおいて、又は本発明の好ましい実施形態の説明を理解した後で当業者の技術の範囲内にあるような特定のハードウェアのためにドライバを提供する他の何らかの方法で実装される。その各々が引用により本明細書に組み入れられる、Beausoleil他による「Multiprocessor for Hardware Emulation」という名称の特許文献1、Scalzi他による「Preprocessing of Stored Target Routines for Emulating Incompatible Instructions on a Target Processor」という名称の特許文献2、Davidian他による「Decoding Guest Instruction to Directly Access Emulation Routines that Emulate the Guest Instructions」という名称の特許文献3、Gorishek他による「Symmetrical Multiprocessing Bus and Chipset Used for Coprocessor Support Allowing Non−Native Code to Run in a System」という名称の特許文献4、Lethin他による「Dynamic Optimizing Object Code Translator for Architecture Emulation and Dynamic Optimizing Object Code Translation Method」という名称の特許文献5、Eric Trautによる「Method for Emulating Guest Instructions on a Host Computer Through Dynamic Recompilation of Host Instructions」という名称の特許文献6及び他の多くを含むがこれらに限定されない、種々のソフトウェア及びハードウェア・エミュレーションの特許は、当業者が利用可能なターゲット・マシンのための異なるマシン用に設計された命令形式のエミュレーションを達成する様々な既知の方法を示す。
図32において、ホスト・アーキテクチャのホスト・コンピュータ・システム5000’をエミュレートする、エミュレートされたホスト・コンピュータ・システム5092の一例が提供される。エミュレートされたホスト・コンピュータ・システム5092では、ホスト・プロセッサ(CPU)5091は、エミュレートされたホスト・プロセッサ(又は、仮想ホスト・プロセッサ)であり、かつ、ホスト・コンピュータ5000’のプロセッサ5091のものとは異なるネイティブな命令セット・アーキテクチャを有するエミュレーション・プロセッサ5093を含む。エミュレートされたホスト・コンピュータ・システム5092は、エミュレーション・プロセッサ5093がアクセス可能なメモリ5094を有する。本発明の例示的な好ましい実施形態において、メモリ5094は、ホスト・コンピュータ・メモリ5096の部分と、エミュレーション・ルーチン5097の部分とにパーティション化される。ホスト・コンピュータ・メモリ5096は、ホスト・コンピュータ・アーキテクチャに従い、エミュレートされたホスト・コンピュータ・システム5092のプログラムに利用可能である。エミュレーション・プロセッサ5093は、エミュレートされたプロセッサ5091のもの以外のアーキテクチャのアーキテクチャ化された命令セットのネイティブ命令を実行し、このネイティブ命令はエミュレーション・ルーチン・メモリ5097から取得されたものであり、かつ、エミュレーション・プロセッサ5093は、シーケンス及びアクセス/デコード・ルーチンにおいて取得される1つ又は複数の命令を用いることにより、ホスト・コンピュータ・メモリ5096の中のプログラム由来の実行のためのホスト命令にアクセスすることができ、このシーケンス及びアクセス/デコード・ルーチンは、アクセスされたホスト命令をデコードして、アクセスされたホスト命令の機能をエミュレートするためのネイティブ命令実行ルーチンを判断することができる。ホスト・コンピュータ・システム5000’のアーキテクチャのために定められた、例えば、汎用レジスタ、制御レジスタ、動的アドレス変換、及びI/Oサブシステムのサポート、並びにプロセッサ・キャッシュといったファシリティを含む他のファシリティを、アーキテクチャ化ファシリティ・ルーチンによってエミュレートすることができる。エミュレーション・ルーチンは、エミュレーション・ルーチンの性能を高めるために、エミュレーション・プロセッサ5093において利用可能な(汎用レジスタ、及び仮想アドレスの動的変換といった)機能を利用することもできる。ホスト・コンピュータ5000’の機能をエミュレートする際にプロセッサ5093を補助するために、専用のハードウェア及びオフ・ロード・エンジンを設けることもできる。
本発明の更に別の好ましい実施形態において、1つ又は複数の態様は、クラウド・コンピューティングに関する。本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書で述べられる教示の実装は、クラウド・コンピューティング環境に限定されるものではないことが予め理解される。むしろ、本発明の好ましい実施形態は、現在知られている又は後に開発される他のいずれかのタイプのコンピューティング環境と併せて実装することができる。
クラウド・コンピューティングは、最小限の管理労力又はサービス・プロバイダとの対話で迅速にプロビジョニング及び解放することができる構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの、便利なオンデマンドのネットワーク・アクセスを可能にするサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、及び少なくとも4つの配備モデルを含むことができる。
特徴は、以下の通りである。
オンデマンド・セルフサービス:クラウド・コンシューマは、必要に応じて、サーバ時間及びネットワーク・ストレージ等のコンピューティング機能を、人間がサービスのプロバイダと対話する必要なく自動的に、一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、異なる物理及び仮想リソースを要求に応じて動的に割り当て及び再割り当てすることにより、複数のコンシューマにサービスを提供するためにプールされる。コンシューマは、一般に、提供されるリソースの正確な位置についての制御又は知識を持たないが、より高レベルの抽象化では位置(例えば、国、州、又はデータセンタ)を特定できる場合があるという点で、位置とは独立しているといえる。
迅速な弾力性:機能は、迅速かつ弾力的に、幾つかの場合自動的に、プロビジョニングして素早くスケール・アウトし、迅速にリリースして素早くスケール・インさせることができる。コンシューマにとって、プロビジョニングに利用可能なこれらの機能は、多くの場合、無制限であり、いつでもどんな量でも購入できるように見える。
サービスの測定:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、報告し、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらすことができる。
サービス・モデルは以下の通りである。
Software as a Service(SaaS):クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用するために、コンシューマに提供される機能である。これらのアプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定の考え得る例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Platform as a Service(PaaS):プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウド・インフラストラクチャ上に配備するために、コンシューマに提供される機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージなどの基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、配備されたアプリケーション、及び場合によってはアプリケーション・ホスティング環境構成に対して制御を有する。
Infrastructure as a Service(IaaS):コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアを配備及び動作させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニンングするために、コンシューマに提供される機能である。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対する制御、及び場合によってはネットワーク・コンポーネント(例えば、ホストのファイアウォール)選択の限定された制御を有する。
配備モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運営される。このクラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、構内又は構外に存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項(例えば、任務、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、構内又は構外に存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループに利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって結び付けられる2つ又はそれより多いクラウド(プライベート、コミュニティ、又はパブリック)の混成物である。
クラウド・コンピューティング環境は、無国籍性、低結合性、モジュール性、及びセマンティック相互運用性に焦点を置くことを指向するサービスである。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで図33を参照すると、クラウド・コンピューティング・ノードの一例の概略図が示される。クラウド・コンピューティング・ノード6010は、好適なクラウド・コンピューティング・ノードの単なる一例であり、本明細書で説明される本発明の好ましい実施形態の使用又は機能の範囲に対するいずれかの制限を示唆することを意図するものではない。上記に関係なく、クラウド・コンピューティング・ノード6010は、本明細書で上述された機能のいずれかを実装及び/又は実施することができる。
クラウド・コンピューティング・ノード6010には、他の多数の汎用又は専用コンピューティング・システム環境又は構成で動作可能な、コンピュータ・システム/サーバ6012が存在する。コンピュータ・システム/サーバ6012と共に用いるのに好適な周知のコンピューティング・システム、環境、及び/又は構成の例としては、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能民生電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び、上述のシステム又はデバイス等のいずれかを含む分散型クラウド・コンピューティング環境が含まれる。
コンピュータ・システム/サーバ6012は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム/サーバ6012は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施することができる。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔両方のコンピュータ・システム・ストレージ媒体に配置することができる。
図33に示されるように、クラウド・コンピューティング・ノード6010のコンピュータ・システム/サーバ6012は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム/サーバ6012のコンポーネントは、これらに限定されるものではないが、1つ又は複数のプロセッサ又は処理ユニット6016、システム・メモリ6028、及びシステム・メモリ6028を含む種々のシステム・コンポーネントをプロセッサ6016に結合するバス6018を含むことができる。
バス6018は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの1つ又は複数を表す。限定ではなく例としては、このようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture、ISA)バス、マイクロ・チャネル・アーキテクチャ(Micro Channel Architecture、MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、及びPeripheral Component Interconnect(PCI)バスを含む。
コンピュータ・システム/サーバ6012は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ6012がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不能媒体の両方とを含む。
システム・メモリ6028は、ランダム・アクセス・メモリ(RAM)6030及び/又はキャッシュ・メモリ6032など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ6012は、他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体(図示されておらず、典型的には「ハードドライブ」と呼ばれる)との間の読み出し及び書き込みのために、ストレージ・システム6034を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、「フレキシブル・ディスク」)との間の読み出し及び書き込みのための磁気ディスク・ドライブと、CD−ROM、DVD−ROM又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、それぞれを、1つ又は複数のデータ媒体インターフェースによってバス6018に接続することができる。以下でさらに示され説明されるように、メモリ6028は、本発明の好ましい実施形態の機能を実行するように構成されたプログラム・モジュールの組(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
限定ではなく例として、メモリ6028内に、プログラム・モジュール6042の組(少なくとも1つ)を有するプログラム/ユーティリティ6040、並びにオペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを格納することができる。オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの何らかの組み合わせの各々は、ネットワーキング環境の実装形態を含むことができる。プログラム・モジュール6042は、一般に、本明細書で説明される本発明の好ましい実施形態の機能及び/又は方法を実行する。
コンピュータ・システム/サーバ6012は、キーボード、ポインティング・デバイス、ディスプレイ6024等のような1つ又は複数の外部デバイス6014;ユーザがコンピュータ・システム/サーバ6012と対話することを可能にする1つ又は複数のデバイス;及び/又はコンピュータ・システム/サーバ6012が1つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス(例えば、ネットワーク・カード、モデムなど)と通信することもできる。このような通信は、入力/出力(I/O)インターフェース6022を経由して行うことができる。さらにまた、コンピュータ・システム/サーバ6012は、ネットワーク・アダプタ6020を介して、ローカル・エリア・ネットワーク(LAN)、汎用広域ネットワーク(WAN)、及び/又はパブリック・ネットワーク(例えば、インターネット)などの1つ又は複数のネットワークと通信することもできる。示されるように、ネットワーク・アダプタ6020は、バス6018を介して、コンピュータ・システム/サーバ6012の他のコンポーネントと通信する。図示されないが、コンピュータ・システム/サーバ6012と共に他のハードウェア及び/又はソフトウェア・コンポーネントを使用できることを理解されたい。例としては、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部のディスク・ドライブ・アレイ、RAIDシステム、テープドライブ、及びデータ・アーカイブ・ストレージ・システムなどが含まれる。
ここで図34を参照すると、例示的なクラウド・コンピューティング環境6050が示される。示されるように、クラウド・コンピューティング環境6050は、例えば携帯情報端末(PDA)又は携帯電話6054A、デスクトップ・コンピュータ6054B、ラップトップ・コンピュータ6054C、及び/又は自動車コンピュータ・システム6054Nなどといった、クラウド・コンシューマによって用いられるローカル・コンピューティング・デバイスと通信することができる、1つ又は複数のクラウド・コンピューティング・ノード6010を含む。ノード6010は、互いに通信することができる。これらのノードは、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、若しくはハイブリッド・クラウド、又はこれらの組み合わせなど、1つ又は複数のネットワークにおいて物理的又は仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境6050は、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして、インフラストラクチャ、プラットフォーム、及び/又はソフトウェアを提供することが可能になる。図34に示されるコンピューティング・デバイス6054A−Nのタイプは単に例示であることを意図し、コンピューティング・ノード10及びクラウド・コンピューティング環境6050は、いずれのタイプのネットワーク及び/又はネットワーク・アドレス指定可能な接続上でも(例えば、ウェブ・ブラウザを用いて)、いずれのタイプのコンピュータ化された装置とも通信できることを理解されたい。
ここで図35を参照すると、クラウド・コンピューティング環境6050(図34)によって提供される機能抽象化層の組が示される。図35に示されるコンポーネント、層、及び機能は単に例示であることを意図し、本発明の好ましい実施形態はそれらに限定されないことを予め理解されたい。図示されるように、以下の層及び対応する機能が提供される。
ハードウェア及びソフトウェア層6060は、ハードウェア及びソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、IBM(登録商標)zSeriesシステムを一例とするメインフレームと、IBM(登録商標) pSeriesシステムを一例とするRISC(Reduced Instruction Set Computer(縮小命令セット・コンピュータ))アーキテクチャ・ベースのサーバと、IBM(登録商標) xSeries(登録商標)システムと、IBM(登録商標) BladeCenter(登録商標)システムと、ストレージ・デバイスと、ネットワーク及びネットワーク・コンポーネントと、が含まれる。ソフトウェア・コンポーネントの例として、IBM(登録商標) WebSphere(登録商標)アプリケーション・サーバ・ソフトウェアを一例とするネットワーク・アプリケーション・サーバ・ソフトウェアと、IBM(登録商標) DB2(登録商標)データベース・ソフトウェアを一例とするデータベース・ソフトウェアとが含まれる。(IBM、zSeries、xSeries、BladeCenter、WebSphere、及びDB2は、世界中の多数の管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。)
仮想化層6062は、抽象化層を提供し、この層により、仮想エンティティの以下の例、すなわち、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーション及びオペレーティング・システム、並びに仮想クライアントを提供することができる。
一例においては、管理層6060は、以下で説明される機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格決定は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡と、リソースの消費に対する課金又は請求とを提供する。1つの例においては、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクに対する識別情報の検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータルは、コンシューマ及びシステム管理者のために、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント(Service Level Agreement、SLA)の計画及び履行は、SLAに従って将来の要件が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
ワークロード層6066は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例には、マッピング及びナビゲーション、ソフトウェア開発及びライフサイクル管理、仮想教室教育配信、データ分析処理、及びトランザクション処理が含まれる。
本明細書で用いられる用語は、特定の好ましい実施形態を説明する目的のためのものにすぎず、本発明を限定することを意図したものではない。本明細書で用いられる場合、単数形「1つの(a)」、「1つの(an)」及び「その(the)」は、文脈が特に明示しない限り、複数形も同様に含むことを意図したものである。「含む(comprise)」及び/又は「含んでいる(comprising)」という用語は、本明細書で用いられる場合、記述された特徴、整数、ステップ、動作、要素、及び/又はコンポーネントの存在を指示するが、1つ又は複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、及び/又はそれらの群の存在又は追加を排除するものではないこともさらに理解されるであろう。
以下の特許請求の範囲に存在する場合、「手段又はステップと機能との組合せ(ミーンズ又はステップ・プラス・ファンクション)」要素の対応する構造、材料、動作及び均等物は、明確に特許請求された他の請求要素と共に機能を実行するための任意の構造体、材料、又は行為を含むことを意図したものである。1つ又は複数の好ましい実施形態の説明は、例証及び説明のためだけに提示されたものであり、網羅的であること又は本発明を開示した形態に限定することを意図したものではない。当業者には、本発明の範囲から逸脱しない多くの修正物及び変形物が明らかとなるであろう。実施形態は、本発明の原理及び実際の用途を最もよく説明するため、及び、当業者が、企図した特定の用途に適するように種々の修正を有する種々の好ましい実施形態に関して本発明を理解することができるように、選択され記述された。
100、200、300:コンピューティング環境
102:中央プロセッサ・コンプレックス(CPC)
104:プロセッサ・メモリ
106、214:入力/出力(I/O)デバイス
108:制御ユニット
110、202:プロセッサ
111、212:入力/出力サブシステム
112:論理パーティション
206:キャッシュ
212:I/Oサブシステム
220:制御ユーティリティ
222、351:ブート・シーケンス
304:メモリ
311:構成アーキテクチャ・モード・ファシリティ
312:エミュレータ・コード
350:ゲスト命令
356:ネイティブ命令
2000:コンピュータ・プログラム製品

Claims (19)

  1. コンピューティング環境において制御ユーティリティを初期化するための方法であって、前記方法は、
    プロセッサにより、選択されたアーキテクチャに基づく選択されたアーキテクチャ・モードで前記制御ユーティリティをブートするためのブート・シーケンスを実行することであって、前記制御ユーティリティは、前記選択されたアーキテクチャのために書かれており、かつ、1つのアーキテクチャにおいて初期化し、処理のために前記選択されたアーキテクチャに切り替える第1のアーキテクチャ構成、又は、前記選択されたアーキテクチャにおいて初期化し、処理する第2のアーキテクチャ構成のうちの少なくとも1つにおいて初期化されるように構成される、実行することを含み、前記ブート・シーケンスを実行することは、
    前記プロセッサが、前記第1のアーキテクチャ構成に基づいて初期化を実行するか又は前記第2のアーキテクチャ構成に基づいて初期化を実行するかに関係なく、1つ又は複数の命令を実行することであって、前記1つ又は複数の命令は、前記1つ又は複数の命令が前記1つのアーキテクチャ及び前記選択されたアーキテクチャにおいて定められるという点で、前記1つのアーキテクチャ及び前記選択されたアーキテクチャに共通である、実行することを含み、前記実行することは、前記プロセッサが、前記1つのアーキテクチャにおいて初期化を実行するか又は前記選択されたアーキテクチャにおいて初期化を実行するかに関係なく、前記プロセッサに対するアーキテクチャ・モードの切り替えを要求するための切り替え操作を実行することであって、前記切り替え操作は、前記1つのアーキテクチャ又は前記選択されたアーキテクチャのどちらかのアーキテクチャに基づいて異なるように実行され、前記プロセッサは初期化を実行し、前記切り替え操作を実行することに基づいて、前記選択されたアーキテクチャ・モードで前記制御ユーティリティがブートされる、方法。
  2. 前記制御ユーティリティは、オペレーティング・システムを含む、請求項1に記載の方法。
  3. 前記ブート・シーケンスを実行することは、
    前記プロセッサが前記1つのアーキテクチャにおいて初期化を実行するか又は前記選択されたアーキテクチャにおいて初期化を実行するかに基づいて、前記1つのアーキテクチャ又は前記選択されたアーキテクチャの形式でプログラム状況ワードを設定することと、
    前記切り替え操作を実行するためにモード切り替えを準備することと、
    を含む、前記請求項のいずれかに記載の方法。
  4. 前記切り替え操作を実行することは、前記1つのアーキテクチャから前記選択されたアーキテクチャに切り替えることを含み、前記制御ユーティリティの処理は、前記選択されたアーキテクチャにおけるものである、前記請求項のいずれかに記載の方法。
  5. 前記切り替え操作を実行することは、前記選択されたアーキテクチャから前記選択されたアーキテクチャへの切り替えを要求することを含み、かつ、前記プロセッサが現在前記選択されたアーキテクチャ・モードにあることを示す状況の格納をもたらし、前記状況は、前記切り替え操作の発行者に受け入れ可能なものとして扱われる、前記請求項のいずれかに記載の方法。
  6. 前記切り替え操作は、Signal Processor命令を含む、請求項5に記載の方法。
  7. 前記1つのアーキテクチャは、31ビット・アドレッシング及び32ビット汎用レジスタを使用し、前記選択されたアーキテクチャは、64ビット・アドレッシング及び64ビット汎用レジスタを使用する、前記請求項のいずれかに記載の方法。
  8. 前記ブート・シーケンスを実行することは、前記制御ユーティリティが前記選択されたアーキテクチャのために書かれているかどうかを判断し、前記制御ユーティリティが前記選択されたアーキテクチャのために書かれていることに基づいて、前記ブート・シーケンスの実行を続行することを含む、前記請求項のいずれかに記載の方法。
  9. リセットを実行して前記制御ユーティリティをリブートすることをさらに含む、前記請求項のいずれかに記載の方法。
  10. 前記リセットを実行することは、前記リセットを反映させるようにプログラム状況ワードを設定することを含む、前記請求項のいずれかに記載の方法。
  11. コンピューティング環境において制御ユーティリティを初期化するためのコンピュータ・システムであって、前記コンピュータ・システムは、
    メモリと、
    前記メモリと通信するプロセッサと、
    を含み、かつ、方法を実施するように構成され、前記方法は、
    前記プロセッサにより、選択されたアーキテクチャに基づく選択されたアーキテクチャ・モードで前記制御ユーティリティをブートするためのブート・シーケンスを実行することであって、前記制御ユーティリティは、前記選択されたアーキテクチャのために書かれており、かつ、1つのアーキテクチャにおいて初期化し、処理のために前記選択されたアーキテクチャに切り替える第1のアーキテクチャ構成、又は、前記選択されたアーキテクチャにおいて初期化し、処理する第2のアーキテクチャ構成のうちの少なくとも1つにおいて初期化されるように構成される、実行することを含み、前記ブート・シーケンスを実行することは、
    前記プロセッサが、前記第1のアーキテクチャ構成に基づいて初期化を実行するか又は前記第2のアーキテクチャ構成に基づいて初期化を実行するかに関係なく、1つ又は複数の命令を実行することであって、前記1つ又は複数の命令は、前記1つ又は複数の命令が前記1つのアーキテクチャ及び前記選択されたアーキテクチャにおいて定められるという点で、前記1つのアーキテクチャ及び前記選択されたアーキテクチャに共通である、実行することを含み、前記実行することは、前記プロセッサが、前記1つのアーキテクチャにおいて初期化を実行するか又は前記選択されたアーキテクチャにおいて初期化を実行するかに関係なく、前記プロセッサに対するアーキテクチャ・モードの切り替えを要求するための切り替え操作を実行することであって、前記切り替え操作は、前記1つのアーキテクチャ又は前記選択されたアーキテクチャのどちらかのアーキテクチャに基づいて異なるように実行され、前記プロセッサは初期化を実行し、前記切り替え操作を実行することに基づいて、前記選択されたアーキテクチャ・モードで前記制御ユーティリティがブートされる、コンピュータ・システム。
  12. 前記ブート・シーケンスを実行することは、
    前記プロセッサが前記1つのアーキテクチャにおいて初期化を実行するか又は前記選択されたアーキテクチャにおいて初期化を実行するかに基づいて、前記1つのアーキテクチャ又は前記選択されたアーキテクチャの形式でプログラム状況ワードを設定することと、
    前記切り替え操作を実行するためにモード切り替えを準備することと、
    を含む、請求項11に記載のコンピュータ・システム。
  13. 前記切り替え操作を実行することは、前記1つのアーキテクチャから前記選択されたアーキテクチャに切り替えることを含み、前記制御ユーティリティの処理は、前記選択されたアーキテクチャにおけるものである、請求項11又は請求項12のいずれかに記載のコンピュータ・システム。
  14. 前記切り替え操作を実行することは、前記選択されたアーキテクチャから前記選択されたアーキテクチャへの切り替えを要求することを含み、かつ、前記プロセッサが現在前記選択されたアーキテクチャ・モードにあることを示す状況の格納をもたらし、前記状況は、前記切り替え操作の発行者に受け入れ可能なものとして扱われる、請求項11から請求項13までのいずれかに記載のコンピュータ・システム。
  15. 前記1つのアーキテクチャは、31ビット・アドレッシング及び32ビット汎用レジスタを使用し、前記選択されたアーキテクチャは、64ビット・アドレッシング及び64ビット汎用レジスタを使用する、請求項11から請求項14までのいずれかに記載のコンピュータ・システム。
  16. 前記ブート・シーケンスを実行することは、前記制御ユーティリティが前記選択されたアーキテクチャのために書かれているかどうかを判断し、前記制御ユーティリティが前記選択されたアーキテクチャのために書かれていることに基づいて、前記ブート・シーケンスの実行を続行することを含む、請求項11から請求項15までのいずれかに記載のコンピュータ・システム。
  17. リセットを実行して前記制御ユーティリティをリブートすることをさらに含む、請求項11から請求項16までのいずれかに記載のコンピュータ・システム。
  18. コンピューティング環境において制御ユーティリティを初期化するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、
    処理回路により読み取り可能であり、請求項1から請求項10までのいずれかに記載の方法を実行するための、処理回路により実行される命令を格納するコンピュータ可読ストレージ媒体を含む、コンピュータ・プログラム製品。
  19. コンピュータ可読媒体上に格納され、前記プログラムがコンピュータ上で実行されるとき、請求項1から請求項10までのいずれかに記載の方法を実行するための、ソフトウェア・コード部分を含むデジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラム。
JP2016557115A 2014-03-18 2015-02-20 複数のアーキテクチャにおいて初期化することができる制御ユーティリティのための共通ブート・シーケンス Active JP6437008B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/217,800 2014-03-18
US14/217,800 US9588774B2 (en) 2014-03-18 2014-03-18 Common boot sequence for control utility able to be initialized in multiple architectures
US14/554,313 US9600292B2 (en) 2014-03-18 2014-11-26 Common boot sequence for control utility able to be initialized in multiple architectures
US14/554,313 2014-11-26
PCT/EP2015/053638 WO2015139917A1 (en) 2014-03-18 2015-02-20 Common boot sequence for control utility able to be initialized in multiple architectures

Publications (2)

Publication Number Publication Date
JP2017511941A true JP2017511941A (ja) 2017-04-27
JP6437008B2 JP6437008B2 (ja) 2018-12-12

Family

ID=54142192

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016557115A Active JP6437008B2 (ja) 2014-03-18 2015-02-20 複数のアーキテクチャにおいて初期化することができる制御ユーティリティのための共通ブート・シーケンス

Country Status (22)

Country Link
US (2) US9588774B2 (ja)
EP (1) EP3120239B1 (ja)
JP (1) JP6437008B2 (ja)
KR (1) KR101918831B1 (ja)
CN (1) CN106133682B (ja)
AU (1) AU2015233763B2 (ja)
BR (1) BR112016021599B1 (ja)
CA (1) CA2940867C (ja)
DK (1) DK3120239T3 (ja)
ES (1) ES2746479T3 (ja)
HU (1) HUE045068T2 (ja)
IL (1) IL247819B (ja)
LT (1) LT3120239T (ja)
MX (1) MX2016011922A (ja)
PL (1) PL3120239T3 (ja)
PT (1) PT3120239T (ja)
RU (1) RU2665238C2 (ja)
SG (1) SG11201606096VA (ja)
SI (1) SI3120239T1 (ja)
TW (1) TWI639090B (ja)
WO (1) WO2015139917A1 (ja)
ZA (1) ZA201605468B (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582295B2 (en) 2014-03-18 2017-02-28 International Business Machines Corporation Architectural mode configuration
US9588774B2 (en) 2014-03-18 2017-03-07 International Business Machines Corporation Common boot sequence for control utility able to be initialized in multiple architectures
US9916185B2 (en) 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities
US10234921B2 (en) * 2016-03-04 2019-03-19 Schneider Electric USA, Inc. Systems and methods for operating a virtual power environment
US10282327B2 (en) * 2017-01-19 2019-05-07 International Business Machines Corporation Test pending external interruption instruction
US10423191B2 (en) 2017-01-19 2019-09-24 International Business Machines Corporation Clock comparator sign control
US10705825B2 (en) 2018-09-20 2020-07-07 Hewlett Packard Enterprise Development Lp Creation of images
US11188497B2 (en) 2018-11-21 2021-11-30 SambaNova Systems, Inc. Configuration unload of a reconfigurable data processor
TWI766211B (zh) * 2018-11-21 2022-06-01 美商聖巴諾瓦系統公司 可重組態資料處理器的組態加載和卸載
US10831507B2 (en) 2018-11-21 2020-11-10 SambaNova Systems, Inc. Configuration load of a reconfigurable data processor
CN110109707B (zh) * 2019-04-10 2022-05-31 广州视源电子科技股份有限公司 终端启动方法、装置及终端
US11386038B2 (en) 2019-05-09 2022-07-12 SambaNova Systems, Inc. Control flow barrier and reconfigurable data processor
WO2020236133A1 (en) * 2019-05-17 2020-11-26 Hewlett-Packard Development Company, L.P. Disabling software persistence
US11055141B2 (en) 2019-07-08 2021-07-06 SambaNova Systems, Inc. Quiesce reconfigurable data processor
US11500653B2 (en) 2020-02-05 2022-11-15 International Business Machines Corporation Signal handling between programs associated with different addressing modes
US11782729B2 (en) 2020-08-18 2023-10-10 SambaNova Systems, Inc. Runtime patching of configuration files
CN112591152B (zh) * 2020-12-01 2023-01-31 上海航天控制技术研究所 空间站太阳翼控制系统
US11556494B1 (en) 2021-07-16 2023-01-17 SambaNova Systems, Inc. Defect repair for a reconfigurable data processor for homogeneous subarrays
US11409540B1 (en) 2021-07-16 2022-08-09 SambaNova Systems, Inc. Routing circuits for defect repair for a reconfigurable data processor
US11327771B1 (en) 2021-07-16 2022-05-10 SambaNova Systems, Inc. Defect repair circuits for a reconfigurable data processor
US12118387B2 (en) 2021-08-05 2024-10-15 International Business Machines Corporation Query and update of processor boost information
US11487694B1 (en) 2021-12-17 2022-11-01 SambaNova Systems, Inc. Hot-plug events in a pool of reconfigurable data flow resources
US20240320341A1 (en) * 2023-03-23 2024-09-26 Intel Corporation Apparatus and method for booting an application processor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006018819A (ja) * 2004-06-30 2006-01-19 Microsoft Corp 64ビットx86プロセッサ上でレガシ32ビットx86仮想マシンを実行するためのシステムおよび方法
JP2007207074A (ja) * 2006-02-03 2007-08-16 Ricoh Co Ltd オペレーションシステム、スレッド制御機構、及び情報処理装置
US20120297180A1 (en) * 2011-05-18 2012-11-22 Asustek Computer Inc. Method of switching between multiple operating systems of computer system

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0734021Y2 (ja) * 1989-04-13 1995-08-02 株式会社ダイフク 搬送設備
AU6629894A (en) 1993-05-07 1994-12-12 Apple Computer, Inc. Method for decoding guest instructions for a host computer
JPH06332803A (ja) * 1993-05-25 1994-12-02 Hitachi Ltd 仮想計算機システムにおけるtlb制御方法
US5551013A (en) 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation
US5790825A (en) 1995-11-08 1998-08-04 Apple Computer, Inc. Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions
US6009261A (en) 1997-12-16 1999-12-28 International Business Machines Corporation Preprocessing of stored target routines for emulating incompatible instructions on a target processor
US6199202B1 (en) 1998-01-06 2001-03-06 Hewlett-Packard Company Method and apparatus for the inter-operation of differing architectural and run time conventions
US6308255B1 (en) 1998-05-26 2001-10-23 Advanced Micro Devices, Inc. Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system
US6463582B1 (en) 1998-10-21 2002-10-08 Fujitsu Limited Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method
US6772325B1 (en) 1999-10-01 2004-08-03 Hitachi, Ltd. Processor architecture and operation for exploiting improved branch control instruction
US6496971B1 (en) * 2000-02-07 2002-12-17 Xilinx, Inc. Supporting multiple FPGA configuration modes using dedicated on-chip processor
US7406682B2 (en) 2001-03-26 2008-07-29 Emc Corporation Translator-compiler for converting legacy management software
US7234037B2 (en) 2003-11-25 2007-06-19 International Business Machines Corporation Memory mapped Input/Output operations
GB0407384D0 (en) 2004-03-31 2004-05-05 Ignios Ltd Resource management in a multicore processor
US8024730B2 (en) 2004-03-31 2011-09-20 Intel Corporation Switching between protected mode environments utilizing virtual machine functionality
US7562209B2 (en) * 2004-04-07 2009-07-14 Marvell International, Ltd. Supporting different instruction set architectures during run time
US7339837B2 (en) * 2004-05-18 2008-03-04 Infineon Technologies Ag Configurable embedded processor
US7308571B2 (en) 2004-10-06 2007-12-11 Intel Corporation Overriding processor configuration settings
US7647589B1 (en) 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US7562349B2 (en) 2005-04-25 2009-07-14 Sap Ag Version adaptation interface for integration of different virtual machines
US7496495B2 (en) 2005-05-12 2009-02-24 Microsoft Corporation Virtual operating system device communication relying on memory access violations
KR100663864B1 (ko) * 2005-06-16 2007-01-03 엘지전자 주식회사 멀티-코어 프로세서의 프로세서 모드 제어장치 및 방법
US7409537B2 (en) * 2005-10-06 2008-08-05 Microsoft Corporation Fast booting an operating system from an off state
WO2007122640A2 (en) 2006-04-26 2007-11-01 Tata Consultancy Services A system and method for automated re-architectureing of legacy systems using object-oriented language
US8117614B2 (en) 2006-05-19 2012-02-14 International Business Machines Corporation Extract CPU time facility
US20080093277A1 (en) * 2006-06-13 2008-04-24 John Armour Cadence detection in a sequence of video fields
WO2008083277A1 (en) 2006-12-31 2008-07-10 San Disk Corporation Portable multi-platform booting systems and architectures
US7739434B2 (en) 2008-01-11 2010-06-15 International Business Machines Corporation Performing a configuration virtual topology change and instruction therefore
US7734900B2 (en) 2008-01-11 2010-06-08 International Business Machines Corporation Computer configuration virtual topology discovery and instruction therefore
US8117417B2 (en) 2008-01-11 2012-02-14 International Business Machines Corporation Dynamic address translation with change record override
US8321861B2 (en) 2008-02-20 2012-11-27 Arm Limited Non-native program execution across multiple execution environments
US8176280B2 (en) 2008-02-25 2012-05-08 International Business Machines Corporation Use of test protection instruction in computing environments that support pageable guests
US8086811B2 (en) 2008-02-25 2011-12-27 International Business Machines Corporation Optimizations of a perform frame management function issued by pageable guests
WO2013098643A2 (en) 2011-12-16 2013-07-04 Hyperion Core Inc. Advanced processor architecture
US8301865B2 (en) 2009-06-29 2012-10-30 Oracle America, Inc. System and method to manage address translation requests
GB2478726B (en) 2010-03-15 2013-12-25 Advanced Risc Mach Ltd Mapping between registers used by multiple instruction sets
US9851969B2 (en) 2010-06-24 2017-12-26 International Business Machines Corporation Function virtualization facility for function query of a processor
US8479172B2 (en) 2010-11-23 2013-07-02 International Business Machines Corporation Virtual machine testing
US9141389B2 (en) 2011-04-07 2015-09-22 Via Technologies, Inc. Heterogeneous ISA microprocessor with shared hardware ISA registers
KR101780052B1 (ko) * 2011-08-24 2017-09-19 한국전자통신연구원 정보처리 시스템에서 운영체제 전환방법
TW201321949A (zh) 2011-11-23 2013-06-01 Inventec Corp 電源開機控制方法及其系統
US9298469B2 (en) 2012-06-15 2016-03-29 International Business Machines Corporation Management of multiple nested transactions
US9582295B2 (en) 2014-03-18 2017-02-28 International Business Machines Corporation Architectural mode configuration
US9588774B2 (en) 2014-03-18 2017-03-07 International Business Machines Corporation Common boot sequence for control utility able to be initialized in multiple architectures
US9916185B2 (en) 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006018819A (ja) * 2004-06-30 2006-01-19 Microsoft Corp 64ビットx86プロセッサ上でレガシ32ビットx86仮想マシンを実行するためのシステムおよび方法
JP2007207074A (ja) * 2006-02-03 2007-08-16 Ricoh Co Ltd オペレーションシステム、スレッド制御機構、及び情報処理装置
US20120297180A1 (en) * 2011-05-18 2012-11-22 Asustek Computer Inc. Method of switching between multiple operating systems of computer system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
笠原 一輝: "「AMD64対応64ビットWindowsの真価」", DOS/V MAGAZINE, vol. 第12巻,第23号, JPN6018041338, 1 December 2003 (2003-12-01), pages pp.134−137 *

Also Published As

Publication number Publication date
DK3120239T3 (da) 2019-09-30
US20150268966A1 (en) 2015-09-24
CN106133682B (zh) 2019-04-09
AU2015233763A1 (en) 2016-08-04
MX2016011922A (es) 2016-12-09
PT3120239T (pt) 2019-10-11
AU2015233763B2 (en) 2017-11-30
KR101918831B1 (ko) 2018-11-14
ZA201605468B (en) 2017-09-27
CN106133682A (zh) 2016-11-16
BR112016021599A2 (ja) 2017-08-15
ES2746479T3 (es) 2020-03-06
US9600292B2 (en) 2017-03-21
EP3120239B1 (en) 2019-08-21
CA2940867A1 (en) 2015-09-24
IL247819B (en) 2019-09-26
LT3120239T (lt) 2019-09-25
SI3120239T1 (sl) 2019-11-29
HUE045068T2 (hu) 2019-12-30
WO2015139917A1 (en) 2015-09-24
US9588774B2 (en) 2017-03-07
US20150268965A1 (en) 2015-09-24
TW201610708A (zh) 2016-03-16
RU2016126976A (ru) 2018-04-18
JP6437008B2 (ja) 2018-12-12
PL3120239T3 (pl) 2019-12-31
SG11201606096VA (en) 2016-08-30
KR20160128374A (ko) 2016-11-07
BR112016021599B1 (pt) 2022-10-25
IL247819A0 (en) 2016-11-30
EP3120239A1 (en) 2017-01-25
RU2665238C2 (ru) 2018-08-28
TWI639090B (zh) 2018-10-21
CA2940867C (en) 2022-05-10

Similar Documents

Publication Publication Date Title
JP6437008B2 (ja) 複数のアーキテクチャにおいて初期化することができる制御ユーティリティのための共通ブート・シーケンス
JP6585612B2 (ja) アーキテクチャ・モードの構成
JP6407299B2 (ja) 選択されたアーキテクチャ・ファシリティと関連した処理の管理
US20160255094A1 (en) Determining virtual adapter access controls in a computing environment
JP2017511931A (ja) 比較及び遅延(compare and delay)命令
US20150261706A1 (en) Ascertaining configuration of a virtual adapter in a computing environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171025

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181010

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181023

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181113

R150 Certificate of patent or registration of utility model

Ref document number: 6437008

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150