(57)【要約】  【課題】  ストレージ・アクセスの柔軟な制御が可能となるストレージ・アクセス・キーの使用を容易にする。  【解決手段】  選択された任意のストレージ・アクセス・キーを使用してストレージにアクセスすることができる。ストレージ・アクセス・キーはユーザ・レジスタ内で指定することができ、このストレージ・アクセス・キーをシステム・レジスタ内で示されるストレージ・アクセス・キーに優先させることができる。  【選択図】  図１
2009537879.tif 000002
【特許請求の範囲】
【請求項１】
処理環境内のソース・アドレス空間からターゲット・アドレス空間にデータを移動する方法であって、
ソース・オペランドへのアクセスを制御するのに使用されるソース・アクセス・キーを選択するステップであって、オペランド・アクセス制御（４０２、４０４）を使用して、ユーザによって更新されることが想定されるソース・ユーザ・レジスタ、及びユーザによって更新されることが想定されないシステム・レジスタのうちの１つから前記ソース・アクセス・キーを選択するステップを含み、前記オペランド・アクセス制御内の情報がある値を有するときに、前記ソース・ユーザ・レジスタに由来する前記ソース・アクセス・キーが選択され、前記オペランド・アクセス制御内の情報が別の値を有するときに、前記システム・レジスタに由来する前記ソース・アクセス・キーが選択される、ステップと、
ターゲット・オペランドへのアクセスを制御するのに使用されるターゲット・アクセス・キーを選択するステップであって、オペランド・アクセス制御（４０２、４０４）を使用して、ユーザによって更新されることが想定されるターゲット・ユーザ・レジスタと、ユーザによって更新されることが想定されない前記システム・レジスタのうちの１つから前記ターゲット・アクセス・キーを選択するステップを含み、前記オペランド・アクセス制御内の情報がある値を有するときに、前記ターゲット・ユーザ・レジスタに由来する前記ターゲット・アクセス・キーが選択され、前記オペランド・アクセス制御内の情報が別の値を有するときに、前記システム・レジスタに由来する前記ターゲット・アクセス・キーが選択され、前記ターゲット・アクセス・キーを選択する前記ステップは、前記ソース・アクセス・キーを選択する前記ステップに依存する、ステップと、
前記ソース・アドレス空間から前記ターゲット・アドレス空間への前記データの移動を実行する際に、前記ソース・アクセス・キーを使用して前記ソース・オペランドへのアクセスを制御し、前記ターゲット・アクセス・キーを使用して前記ターゲット・オペランドへのアクセスを制御するステップと、
を含む方法。
【請求項２】
前記システム・レジスタは、前記処理環境内の命令実行を制御するのに使用されるプログラム状態語を含む、請求項１に記載の方法。
【請求項３】
前記ソース・アクセス・キーを選択する前記制御は、前記ソース・ユーザ・レジスタ内に配置され、前記ターゲット・アクセス・キーを選択する前記制御は、前記ターゲット・ユーザ・レジスタ内に配置される、請求項１に記載の方法。
【請求項４】
前記ソース・ユーザ・レジスタ及び前記ターゲット・ユーザ・レジスタは、ユーザ・レジスタと呼ばれる同一のユーザ・レジスタである、請求項３に記載の方法。
【請求項５】
前記ユーザ・レジスタは、前記ソース・オペランドに関する第１の情報セットと、前記ターゲット・オペランドに関する第２の情報セットと、を含み、前記第１の情報セットは、前記ユーザ・レジスタの前記ソース・アクセス・キーと、前記ソース・アクセス・キーを選択する前記制御と、を含み、前記第２の情報セットは、前記ユーザ・レジスタの前記ターゲット・アクセス・キーと、前記ターゲット・アクセス・キーを選択する前記制御と、を含む、請求項４に記載の方法。
【請求項６】
前記ユーザ・レジスタは、命令に対する入力制御であり、前記命令は、それぞれ前記ソース・アクセス・キー及び前記ターゲット・アクセス・キーを使用して前記命令で示される前記ソース・オペランド及び前記ターゲット・オペランドへのアクセスを制御する、請求項５に記載の方法。
【請求項７】
前記命令はデータ移動命令を含む、請求項６に記載の方法。
【請求項８】
前記ソース・アクセス・キーを選択する前記ステップ及び前記ターゲット・アクセス・キーを選択する前記ステップは、前記処理環境内のデータ移動操作中に実行される、請求項１に記載の方法。
【請求項９】
請求項１乃至８のいずれかに記載の方法に係るすべてのステップを実行するように適合された手段を備えるシステム。
【請求項１０】
それ自体がコンピュータ・システム上で実行されたときに、請求項１乃至８のいずれかに記載の方法に係るすべてのステップを実行する命令を備えるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に処理環境内の処理に関するものであり、特に、そのような処理環境内のストレージにアクセスするためのストレージ・アクセス・キーの使用を容易にすることに関するものである。
【背景技術】
【０００２】
ストレージ・アクセス・キーはストレージへのアクセスを制御するのに使用される。インターナショナル・ビジネス・マシーンズ・コーポレーションから提供されるｚ／アーキテクチャのような一例では、ストレージ・アクセス・キーは構成内で使用可能な４Ｋバイト・ブロックの各ストレージと関連付けられる。ストレージ・アクセス・キーを用いることにより、ストレージへの不適切な記憶操作に対する保護、又はストレージへの不適切な記憶操作及びストレージからの不適切なフェッチ操作に対する保護が可能となる。例えば、記憶操作又は記憶及びフェッチ操作は、ストレージ・アクセス・キーがストレージ・アクセス要求に関連するストレージ・アクセス・キーと一致する場合にのみ許可される。
【０００３】
現行のｚ／アーキテクチャでは、各命令で指定されるソース・オペランドやターゲット・オペランドへのアクセス等、ストレージへのアクセスを制御するのに使用されるストレージ・アクセス・キーを指定する複数の命令が存在する。これらの命令には、「Move with Key （MVCK）」（キーで移動）、「Move with DestinationKey （MVCDK）」（宛先キーで移動）、及び「Move with Source Key （MVCSK）」（ソース・キーで移動）が含まれる。これらの各命令を用いて、アクセス・キーは命令によって指定される場合もあればプログラム状態語（ｐｒｏｇｒａｍ  ｓｔａｔｕｓ  ｗｏｒｄ：ＰＳＷ）で示される場合もある。ＰＳＷとは、処理環境内の命令の実行を制御するのに使用されるシステム・レジスタを指す。
【０００４】
一例として、「Move with Destination Key」命令を用いる場合には、宛先オペランド位置へのアクセスは、汎用レジスタ１で指定されるキーを使用することによって実行され、ソース・オペランド位置へのアクセスは、ＰＳＷキーを使用することによって実行される。同様に、「Move with Source Key」命令を用いる場合には、ソース・オペランド位置へのアクセスは、汎用レジスタ１で指定されるキーを使用することによって実行され、宛先オペランド位置へのアクセスは、ＰＳＷキーを使用することによって実行される。それ故、上記の各命令を用いる場合、アクセス・キーは命令自体によって静的に事前定義される。更に、上記の各命令を用いる場合は一方のアクセス・キーをＰＳＷで指定しなければならない。
【非特許文献１】「ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ：  Ｐｒｉｎｃｉｐｌｅｓ  ｏｆ  Ｏｐｅｒａｔｉｏｎ，  ＩＢＭ（Ｒ）  Ｐｕｂｌｉｃａｔｉｏｎ  Ｎｏ．  ＳＡ２２‐７８３２‐０４」（２００５年９月）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記の事情から、例えば一方のアクセス・キーをＰＳＷから選択することを必要としない柔軟なファシリティが必要とされている。特に、ストレージ・アクセス・キーをシステム・レジスタから選択する代わりに、必要に応じて１つ又は複数のユーザ・レジスタから選択することが可能となるファシリティが必要とされている。
【課題を解決するための手段】
【０００６】
本発明は、添付の特許請求範囲の請求項１に記載される、処理環境内でデータを移動する方法を提供する。
【０００７】
本明細書及び添付の特許請求範囲には、上述の方法に対応するシステム及びコンピュータ・プログラムも記載されている。
【０００８】
本発明の技法を利用すれば本発明の他の特徴及び利点も理解されるだろう。本明細書では本発明の他の実施形態及び態様についても詳細に説明し、これらは添付の特許請求範囲に記載される発明の一部と見なされる。
【０００９】
特許請求範囲では、本発明の１つ又は複数の態様が具体例として個別に記載されている。本発明の上記及び他の目的、特徴、及び利点は、以下の詳細な説明を添付図面と併せて読めば明らかとなるだろう。
【発明を実施するための最良の形態】
【００１０】
本発明の一態様によれば、ストレージ・アクセス・キーの使用が容易となり、それによってストレージ・アクセスの柔軟な制御が可能となる。選択された任意のストレージ・アクセス・キーを使用してストレージにアクセスすることができる。このように選択されるキーは、必要に応じてシステム・レジスタからではなく１つ又は複数のユーザ・レジスタから選択することができる。一例では、ストレージ・アクセス・キーの選択はデータ移動命令に含められる。データ移動命令は、所定のオプション指定（ｏｐｔｉｏｎａｌ  ｓｐｅｃｉｆｉｃａｔｉｏｎ）によって移動操作を柔軟に制御することを可能にし、そのようなオプション指定のうちの１つは、ストレージ・アクセス・キーの指定を含まないことも複数のストレージ・アクセス・キーの指定を含むこともある。
【００１１】
図１を参照して、本発明の１つ又は複数の態様が組み込まれ使用される処理環境の一実施形態について説明する。処理環境１００は、例えば複数のプロセッサ１０２（例えば中央処理装置（ＣＰＵ））と、メモリ１０４（例えばメイン・メモリ）と、例えば１つ又は複数のバス１０８又は他の接続を介して互いに連結される１つ又は複数の入出力（Ｉ／Ｏ）デバイス１０６とを含むマルチ・プロセッシング環境である。
【００１２】
一例として、各プロセッサ１０２は、インターナショナル・ビジネス・マシーンズ・コーポレーション（ニューヨーク州アーモンク）から提供されるＩＢＭシステムＺ（ＴＭ）サーバであり、プロセッサのうちの１つ又は複数は、やはりインターナショナル・ビジネス・マシーンズ・コーポレーションから提供されるｚ／ＯＳ（Ｒ）のようなオペレーティング・システムを実行する。（「ｚ／ＯＳ」及び「ＩＢＭ」は、インターナショナル・ビジネス・マシーンズ・コーポレーション（米国ニューヨーク州アーモンク）の登録商標である。本明細書で使用される他の名称もインターナショナル・ビジネス・マシーンズ・コーポレーション又は他の企業の登録商標、商標、又は製品名である可能性がある。）
【００１３】
処理環境１００内の処理は、データ移動操作の柔軟な制御を可能にするデータ移動ファシリティを提供することによって容易となる。図２を参照すると、当該ファシリティの概略図が示されている。データは任意のアドレス空間から他の任意のアドレス空間に移動され、一例では、移動対象となるストレージへのアクセスは、選択された任意のストレージ・アクセス・キーを使用して行われる（ステップ２００）。一実施形態では、データ移動は、オペレーティング・システムを修正する必要なしに、例えばアクセス・レジスタ・モードをサポートする修正を施す必要なしに実行される。更に、一実施形態では、アドレス空間又はストレージ・アクセス・キーあるいはその両方の静的な定義を必要としない単一の命令が使用される。本命令は、データの移動元／移動先となる所望のアドレスの選択を可能にするオプション指定と、命令のソース・オペランド及びターゲット・オペランドにアクセスするためのストレージ・アクセス・キーの選択と、を含む。
【００１４】
命令を使用してデータを移動する本実施形態では、当該命令を多くのアーキテクチャで実行及びエミュレートすることができる。例えば、当該命令はハードウェア内のプロセッサによって実行され、あるいは当該命令を含む命令セットをエミュレートすることによって実行され、あるいは異なるネイティブ命令セットを有する処理ユニット上で実行されるソフトウェアによって実行される。具体的な一例において、当該命令はインターナショナル・ビジネス・マシーンズ・コーポレーションから提供されるｚ／アーキテクチャ内で実行され、本明細書ではこれを「Move with OptionalSpecifications （MVCOS）」（オプション指定で移動）命令と呼ぶ。
【００１５】
例えば、「Move with Optional Specifications」命令３００（図３）は、「Move with OptionalSpecifications」命令を指定する命令コード３０２ａ、３０２ｂと、命令で使用される第３のオペランドをそれ自体の内容によって指定し、例えば移動対象データの実際の長さである実長（ｔｒｕｅ  ｌｅｎｇｔｈ）と呼ばれる符号なし２進整数を含む汎用レジスタ３０４と、処理ユニット内の１６個の汎用レジスタのうちの任意の１つとすることができ、命令で使用されるストレージ内の第１のオペランドのアドレス部分を含むベース・レジスタ３０６と、例えばストレージ内の第１のオペランドのアドレスを提供するためにレジスタ３０６の内容に追加される符号なし１２ビット２進数である変位値（ｄｉｓｐｌａｃｅｍｅｎｔ  ｖａｌｕｅ）３０８と、やはり処理ユニット内の１６個の汎用レジスタのうちの任意の１つとされ、命令で使用されるストレージ内の第２のオペランドのアドレス部分を含むベース・レジスタ３１０と、命令に関するストレージ内の第２のオペランドのアドレスを提供するためにレジスタ３１０の内容に追加される変位値３１２と、を含む。一実施形態では、第１及び第２のオペランドのアドレスは仮想アドレスである。
【００１６】
上述のレジスタに加えて、「Move with Optional Specifications」命令は、命令で使用されるが符号化する必要がない汎用レジスタである汎用レジスタ０も暗黙的に使用する。このレジスタは移動命令のユーザによって更新されることが意図されるため、本明細書ではユーザ・レジスタと呼ばれる。
【００１７】
例えば、汎用レジスタ０（図４の４００）は、第１のオペランドのアクセスを制御するのに使用されるオペランド・アクセス制御（ＯＡＣ）１（４０２）と、第２のオペランドのアクセスを制御するのに使用されるオペランド・アクセス制御２（４０４）と、を含む。図５を参照して、オペランド・アクセス制御４０２及び４０４のそれぞれに関連するフィールドの一例について説明する。一例では、各オペランド・アクセス制御は以下のフィールドを含む。
【００１８】
指定アクセス・キー（Ｓｐｅｃｉｆｉｅｄ  Ａｃｃｅｓｓ  Ｋｅｙ：「Ｋｅｙ」）４１２：一例として、後述する指定アクセス・キーの有効性制御（「Ｋ」）が１である場合は、このフィールドを使用してオペランド（ＯＡＣ  ４０２の場合は第１のオペランド、ＯＡＣ  ４０４の場合は第２のオペランド）へのアクセスが行われ、「Ｋ」が１以外の場合は無視される。
【００１９】
指定アドレス空間制御（Ｓｐｅｃｉｆｉｅｄ  Ａｄｄｒｅｓｓ  Ｓｐａｃｅ  Ｃｏｎｔｒｏｌ：「ＡＳ」）４１４：後述するアドレス空間制御の有効性制御（「Ａ」）が１である場合は、このフィールドを使用してオペランドへのアクセスが行われ、「Ａ」が１以外の場合は無視される。例えば、指定アドレス空間制御は、１次空間モード用の「００」、レジスタ・アクセス・モード用の「０１」、２次空間モード用の「１０」、及びホーム空間モード用の「１１」を含む。
【００２０】
指定アクセス・キーの有効性制御（Ｓｐｅｃｉｆｉｅｄ  Ａｃｃｅｓｓ  Ｋｅｙ  Ｖａｌｉｄｉｔｙ  Ｃｏｎｔｒｏｌ：「Ｋ」）４１６：オペランドにアクセスする上でプログラム状態語（ＰＳＷ）のようなシステム・レジスタ内のキーを使用すべきか、それとも指定アクセス・キーを使用すべきかを制御する値である。例えば、この制御の値が「０」である場合は、ＰＳＷキーが使用される。一方、例えばこの制御の値が「１」である場合は、指定アクセス・キーが使用される。本明細書で使用する「システム・レジスタ」という用語は、移動命令のユーザがそのレジスタを直接修正することが想定されないレジスタ、又はそのような修正が許可されないレジスタ、あるいはその両方が認められないレジスタを指す。
【００２１】
指定アドレス空間制御の有効性制御（Ｓｐｅｃｉｆｉｅｄ  Ａｄｄｒｅｓｓ  Ｓｐａｃｅ  Ｃｏｎｔｒｏｌ  Ｖａｌｉｄｉｔｙ  Ｃｏｎｔｒｏｌ：「Ａ」）４１８：オペランドにアクセスする上で現在のＰＳＷ内のアドレス空間制御を使用すべきか、それとも指定アドレス空間制御内のアドレス空間制御を使用すべきかを制御する。例えば、「Ａ」制御の値が「０」である場合には、現在のＰＳＷ内のアドレス空間制御が使用される。例えば、「Ａ」制御の値が「１」である場合には、指定アドレス空間制御が使用される。
【００２２】
レジスタの例について説明したが、各レジスタは上記よりも多くの情報を含むことも少ない情報を含むこともでき、また、上記と異なる情報を含むこともできる。更に、各レジスタは、本発明の１つ又は複数の態様で必ずしも必要とされない追加的なデータを含むこともできる。各情報に関するレジスタ内の具体的な位置は、実装形態又はアーキテクチャあるいはその両方に依存する。
【００２３】
図６を参照して、「Move with Optional Specifications」命令に関連するロジックの一実施形態について説明する。一例として、本命令は処理環境内の１つ又は複数のプロセッサによって実行される。
【００２４】
本命令の実行に応答して、ソース・オペランド及びターゲット・オペランドに使用すべきストレージ・キーが判定される（ステップ５００）。本明細書で使用する「ソース・オペランド」は命令の第２のオペランドを指し、「ターゲット・オペランド」は第１のオペランドを指す。ソース・オペランド及びターゲット・オペランドは、それぞれに関連する独自のストレージ・アクセス・キーを有することになる。特定のオペランドに関するストレージ・アクセス・キーは、当該オペランドに関するオペランド・アクセス制御（例えば、ターゲット・オペランドならＯＡＣ  １、ソース・オペランドならＯＡＣ  ２）で指定され、又はプログラム状態語で指定される。
【００２５】
特定のオペランドについてオペランド・アクセス制御内のストレージ・アクセス・キーを使用すべきか、それともプログラム状態語内のストレージ・アクセス・キーを使用すべきかを判定するために、選択プロトコルが利用される。例えば、図７に示されるように、マルチプレクサ６００を使用してストレージ・アクセス・キーが選択される。マルチプレクサ６００には、プログラム状態語６０４のキー６０２ならびにオペランド・アクセス制御６０８のキー６０６が入力される。利用されるオペランド・アクセス制御は、ターゲット・オペランドについて判定が行われるのか、それともソース・オペランドについて判定が行われるのか（例えば、ターゲット・オペランドならＯＡＣ  １、ソース・オペランドならＯＡＣ  ２）に応じて異なる。マルチプレクサ６００には、指定アクセス・キーの有効性制御６１０も入力される。一例では、この制御の値が「０」の場合にはキー６０２が使用される。一方、この制御の値が「１」の場合にはキー６０６が使用される。これにより、ソース・オペランドならびにターゲット・オペランドに使用すべきアクセス・キーの選択を柔軟に行うことが可能となる。
【００２６】
選択されたアクセス・キーはストレージへのアクセスを制御する際に使用される。例えば、選択されたアクセス・キーと、アクセス対象のストレージに割り当てられたストレージ・キーとの比較が行われる。２つのキーが一致した場合にはアクセスが許可される。２つのキーが一致しない場合にはアクセスが拒否される。
【００２７】
図６を参照すると、使用すべきストレージ・キーの判定に加えて、使用すべきソース・オペランド及びターゲット・オペランドのアドレス空間も判定される（ステップ５０２）。ストレージ・キーの場合と同様に、アドレス空間の選択もまた所望のアドレス空間制御モードを指定し、選択制御を使用することによって制御される。例えば、図７に示されるように、マルチプレクサ６２０を使用して有効なアドレス空間が選択される。マルチプレクサ６２０には、オペランド・アクセス制御６０８（例えば、ターゲット・オペランドならＯＡＣ  １、ソース・オペランドならＯＡＣ  ２）の指定アドレス空間制御６２２と、ＰＳＷ  ６０４のアドレス空間制御６２４とが入力される。マルチプレクサ６２０には、ＰＳＷとオペランド・アクセス制御のどちらのアドレス空間制御を使用してオペランドにアクセスすべきかを制御する、指定アドレス空間制御の有効性制御６２６も入力される。例えば、指定アドレス空間制御の有効性制御の値が「０」である場合には、現在のＰＳＷ内のアドレス空間制御６２４が使用される。一方、例えば、指定アドレス空間制御の有効性制御の値が「１」である場合には、指定アドレス空間制御６２２が使用される。アドレス空間制御は例えば２ビットのフィールドであり、選択されたアドレス空間モードを示すものである。
【００２８】
ソース・オペランド及びターゲット・オペランドにアクセスするアドレス空間が判定された後に、ソース・オペランド及びターゲット・オペランドのアドレスが判定される（ステップ５０４）。特に、本実施形態ではオペランドは仮想アドレスであるため、仮想アドレスから絶対アドレスへの変換が行われる。
【００２９】
図８を参照して、オペランド解決に関連するロジックの一実施形態について説明する。解決対象のオペランドのアドレス７００は、ベース・レジスタ７０２及び変位７０４の形で指定される。このアドレスはオペランドの仮想アドレス７０６であり、動的アドレス変換７０８に入力される。動的アドレス変換には、マルチプレクサ７１２のような選択制御から判定される有効なアドレス空間制御要素７１０も入力される。マルチプレクサ７１２には、例えば図７から取得される有効なアドレス空間、ならびに（該当する場合は）様々な制御レジスタ及びアクセス・レジスタ変換が入力される。マルチプレクサ７１２の出力は、動的アドレス変換に入力される有効なアドレス空間制御要素（ＡＳＣＥ）である。例えば、有効なＡＳ  ７１４の値が「００」である場合には、１次アドレス空間モードを示すＣＲ１が選択される。同様に、有効なＡＳ  ７１４の値が「０１」である場合には、アクセス・レジスタ・モード等が選択される。アドレス空間制御要素は、マルチプレクサ７１２に対する入力に応じて、仮想アドレスから実アドレスへの変換を行うためにＤＡＴによって使用される１つ又は複数の特定のテーブルを指定する。動的アドレス変換の出力はオペランドの実アドレスであり、当該実アドレスのプレフィックス変換７２２を行うことにより、オペランドの絶対アドレス７２４が提供される。プレフィックス変換は、それによって実アドレスの絶対アドレスを判定するルールが適用されるメカニズムである。動的アドレス変換及びプレフィックス変換ならびに他の仮想アドレッシングの概念に関する更なる詳細は、「ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ：  Ｐｒｉｎｃｉｐｌｅｓ  ｏｆ  Ｏｐｅｒａｔｉｏｎ，  ＩＢＭ（Ｒ）  Ｐｕｂｌｉｃａｔｉｏｎ  Ｎｏ．  ＳＡ２２‐７８３２‐０４」（２００５年９月）に記載されている。
【００３０】
ソース・オペランド及びターゲット・オペランドのアドレスが判定された後に、ソース・オペランドからターゲット・オペランドにデータが移動される（ステップ５０６）。移動されるデータ量は、命令の第３のオペランドで指定される。この様子が図９に示されている。図示のとおり、Ｂ２Ｄ２  ８０４で示される第２のオペランド８００のデータがＢ１Ｄ１  ８０８で示される第１のオペランド８０６に移動される。移動されるバイト数は、第３のオペランド８１２で指定される（８１０）。本発明の一態様によれば、例えば１回の命令実行で４０９６文字まで移動することができる。例えば、指定された文字数がソースからターゲットにコピーされる。複数回の命令実行を使用して追加的なバイトのデータを移動することもできる。
【００３１】
上記では、指定された任意のアクセス制御キーを使用してデータを任意のアドレス空間から他の任意のアドレス空間に移動することが可能となる柔軟なデータ移動ファシリティについて詳しく説明した。更に、このデータ移動ファシリティでは移動されるデータ量を指定することが可能である。
【００３２】
以下では、１６Ｋバイトのデータを２次アドレス空間からホーム・アドレス空間に移動する一例について説明する。本例では、ＰＳＷキーを使用して第１のオペランドにアクセスし、「Ｋｅｙ  ５」を使用して第２のオペランドにアクセスする。
【００３３】
【数１】
2009537879.tif 000003
【００３４】
上記の例において、∪００Ｃ１∪はＯＡＣ  １の内容であり、∪５０８３∪はＯＡＣ  ２の内容である。更に、一例では、ＯＡＣのうち（左から右に数えて）ビット０〜３は指定キー、ビット８〜９は指定アドレス空間制御、ビット１４は指定キー有効性ビット、ビット１５は指定ＡＳＣ有効性ビットである。
【００３５】
本発明の１つ又は複数の態様は、例えばコンピュータ使用可能な媒体を有する製品（例えば１つ又は複数のコンピュータ・プログラム製品）に含めることができる。当該媒体は、例えば本発明の機能の実現を容易にするコンピュータ読み取り可能なプログラム・コード手段又はロジック（例えば、命令、コード、コマンド等）を内部に有する。上記の製品はコンピュータ・システムの一部に含めることもコンピュータ・システムと別々に販売することもできる。
【００３６】
図１０を参照して、本発明の１つ又は複数の態様が組み込まれる製品又はコンピュータ・プログラム製品の一例について説明する。コンピュータ・プログラム製品９００には、例えば本発明の１つ又は複数の態様の実現を容易にするコンピュータ読み取り可能なプログラム・コード手段又はロジック９０４が記憶された１つ又は複数のコンピュータ使用可能な媒体９０２が含まれる。上記媒体は、電子系、磁気系、光学系、電磁気系、赤外線系、又は半導体系（即ち装置又はデバイス）であっても、伝搬媒体であってもよい。コンピュータ可読媒体の例としては、半導体又は固体メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、固定磁気ディスク、及び光ディスクが挙げられる。光ディスクの例としては、コンパクト・ディスク‐読み取り専用メモリ（ＣＤ‐ＲＯＭ）、コンパクト・ディスク‐読み出し／書き込み（ＣＤ‐Ｒ／Ｗ）、及びＤＶＤが挙げられる。
【００３７】
１つ又は複数のコンピュータ読み取り可能なプログラム・コード手段又はロジックによって定義される一連のプログラム命令、又は１つ又は複数の相関モジュールから成る論理アセンブリは、本発明の１つ又は複数の態様の性能を決定する。
【００３８】
有利なことに、本発明の１つ又は複数の態様は、ストレージのオペランドに関するストレージ保護キーがプログラムによって指定可能となるファシリティ、又はプログラム状態語に関するストレージ保護キーのデフォルト値が使用可能となるファシリティ、あるいはその両方を実現するファシリティを提供する。ストレージ・アクセス・キーを命令内で静的に事前定義する必要がないファシリティが提供される。他の態様では、移動操作用のオプション指定をサポートすることができるデータ移動ファシリティが提供される。例えばアクセス・レジスタ・モードの追加のようなオペレーティング・システムの機能拡張を必要とすることなく、データを任意のアドレス空間モード（例えば、１次空間モード、２次空間モード、指定されたアクセス・レジスタ空間モード、指定されたホーム空間モード又はＰＳＷ空間モード等）から他の任意のアドレス・モードに移動することが可能となるファシリティが提供される。オペランドのアドレス空間モードは、明示的に指定することも現在のプログラム状態語でデフォルトで提供することもできる。一実施形態では、命令を使用してデータが任意のアドレス空間から他の任意のアドレス空間に移動される。この命令は、アドレス空間モードの静的な定義を必要としない。更に、このファシリティは、通常移動可能なデータよりも多くのデータを１回の命令実行で移動することができる。この機能を実現するために新しいハードウェア・レジスタ又はテーブルが使用されることはない。
【００３９】
本明細書では１つ又は複数の実例を説明してきたが、これらは単なる例示にすぎない。本発明の趣旨から逸脱しない限り様々な変更形態が可能である。例えば、本明細書に示した例とは異なる処理環境であっても本発明の１つ又は複数の態様を含むことができ、又はそれらの利益を享受することができ、あるいはその両方を実現することができる。一例として、１つ又は複数のプロセッサをＩＢＭシステムＺ（ＴＭ）プロセッサ以外のプロセッサとすること、又はｚ／ＯＳ（Ｒ）以外のオペレーティング・システムを実行すること、あるいはその両方を実現することができる。なお、処理環境は必ずしもｚ／アーキテクチャに基づく必要はなく、その代わりにＩｎｔｅｌやＳｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ等の企業から提供される他のアーキテクチャに基づく処理環境を利用することもできる。また、上記の命令は、情報を指定するレジスタ以外のレジスタ又はエンティティを含むことができる。更に、レジスタ内又はエンティティ内あるいはその両方の内部に様々なデータを収容すること又は配置することあるいはその両方を行うことが可能である。また、上記では移動命令の１回の実行で移動可能な文字数の例として最大４０９６文字とされているが、文字数を無制限にすることを含めて他の任意の文字数を使用することが可能であり、命令を割込み可能にすることも可能である。他にも様々な変更形態が存在する。
【００４０】
他の例として、アドレス空間モード又はアクセス・キーあるいはその両方に関するデフォルト値をＰＳＷ以外のシステム・レジスタに含めることができる。また、１つ又は複数のＯＡＣに関して他のレジスタを使用することもできる。更に、上記では各制御の値が示されているが、本発明の趣旨から逸脱しない限り他の値を使用することもできる。更に、上記ではＤＡＴ又はプレフィックス変換あるいはその両方を使用して仮想アドレスから絶対アドレスへの変換が行われているが、これらの使用は単なる一例にすぎない。変換は、必ずしもそれだけに限定されるわけではないが、テーブル参照を含めた様々な手法で実行することができる。
【００４１】
また、環境としては、特定のアーキテクチャ又はアーキテクチャのサブセットがエミュレートされるエミュレータ（例えば、ソフトウェア又は他のエミュレーション・メカニズム）を挙げることができる。そのような環境では、エミュレータを実行するコンピュータがエミュレート対象となる機能とは異なるアーキテクチャを有する可能性もあるが、エミュレータの１つ又は複数のエミュレーション機能によって本発明の１つ又は複数の態様を実現することができる。一例として、エミュレーション・モードでは、エミュレート対象となる特定の命令又は操作がデコードされ、個々の命令又は操作を実行する適切なエミュレーション機能が構築される。
【００４２】
あるエミュレーション環境において、ホスト・コンピュータは、例えば、命令及びデータを記憶するメモリと、メモリから命令をフェッチし、任意選択で、フェッチされた命令のローカル・バッファリングを行う命令フェッチ・ユニットと、命令フェッチ・ユニットを受け、フェッチされた命令のタイプを判定する命令デコード・ユニットと、命令を実行する命令実行ユニットと、を含む。実行は、データをメモリのレジスタにロードするステップ、データをレジスタからメモリに記憶するステップ、又はデコード・ユニットの判定に従って何らかのタイプの算術演算又は論理演算を実行するステップを含むことができる。一例において、各ユニットはソフトウェアの形で実装される。例えば、各ユニットによって実行される演算は、エミュレータ・ソフトウェア内の１つ又は複数のサブルーチンとして実行される。
【００４３】
更に、システム・バスを介してメモリ要素に直接又は間接的に連結される少なくとも１つのプロセッサを含む、プログラム・コードを記憶し又は実行しあるいはその両方を行うのに適したデータ処理システムを使用することが可能である。上記メモリ要素は、例えば上記プログラム・コードの実際の実行中に利用されるローカル・メモリ、バルク記憶装置、及び実行中にバルク記憶装置からコードを検索しなければならない回数を少なくするために、少なくともいくつかのプログラム・コードを一時的に記憶するキャッシュ・メモリを含む。
【００４４】
入力／出力すなわちＩ／Ｏデバイス（必ずしもそれだけに限定されるわけではないが、キーボード、ディスプレイ、ポインティング・デバイス等を含む）は、上記システムに直接又はＩ／Ｏコントローラを介して、連結することもできる。介在する私設ネットワーク又は公共ネットワークを通して他のデータ処理システムあるいは遠隔プリンタ又は記憶装置に、上記データ処理システムが連結できるようにするために、上記システムにネットワーク・アダプタを連結することもできる。モデム、ケーブル・モデム及びイーサネット・カードは、現時点で使用可能なタイプのネットワーク・アダプタのほんのいくつかにすぎない。
【００４５】
本明細書で使用する「オペランド」という用語は、命令のオペランドを含む／指すだけでなく、他のオペランド、ならびにプログラムの関数間で受け渡されるパラメータ又は引数、又はエンティティ間で受け渡される他の任意のデータをも含む／指す。
【００４６】
本発明の１つ又は複数の態様に係る機能は、ソフトウェア、ファームウェア、ハードウェア、又はそれらの任意の組合せの形で実施することができる。本発明の機能を実行する機械によって実行可能な命令から成る少なくとも１つのプログラムを実行する機械によって読み取り可能な、少なくとも１つのプログラム記憶装置を提供することができる。
【００４７】
本明細書で説明したフロー図は単なる例示にすぎない。各図又は各図に示されるステップ（又は処理）には本発明の趣旨から逸脱しない限り様々な変更を施すことができる。例えば、各ステップを異なる順序で実行することも、ステップを追加、削除、修正することも可能である。それらの変更形態はすべて、添付の特許請求範囲に記載される発明の一部と見なされる。
【図面の簡単な説明】
【００４８】
【図１】本発明の１つ又は複数の態様が組み込まれ使用される処理環境の一実施形態を示す図である。
【図２】本発明の一態様に係るデータ移動ファシリティの概要に関連するロジックの一実施形態を示す図である。
【図３】本発明の一態様に従って提供される「Move with Optional Specifications」命令のフォーマットの一例を示す図である。
【図４】本発明の一態様に係る「Move with Optional Specifications」命令で使用される汎用レジスタ０のフィールドの一実施形態を示す図である。
【図５】本発明の一態様に係る汎用レジスタ０のオペランド・アクセス制御に関連するフィールドの一実施形態を示す図である。
【図６】本発明の一態様に係る「Move with Optional Specifications」命令の実行に関連するロジックの一実施形態を示す図である。
【図７】本発明の一態様に係るオペランド・アクセス制御を利用して、移動操作で使用される指定アドレス空間及びアクセス・キーを判定する処理の一実施形態を示す図である。
【図８】本発明の一態様に係るアドレス解決に関連するロジックの一実施形態を示す図である。
【図９】本発明の一態様に従ってデータをソース・オペランドからターゲット・オペランドに移動する処理の一実施形態を示す図である。
【図１０】本発明の１つ又は複数の態様が組み込まれるコンピュータ・プログラム製品の一例を示す図である。
【図１】
2009537879.tif 000004
【図２】
2009537879.tif 000005
【図３】
2009537879.tif 000006
【図４】
2009537879.tif 000007
【図５】
2009537879.tif 000008
【図６】
2009537879.tif 000009
【図７】
2009537879.tif 000010
【図８】
2009537879.tif 000011
【図９】
2009537879.tif 000012
【図１０】
2009537879.tif 000013
【国際調査報告】
2009537879.tif 000014
2009537879.tif 000015