JP7018950B2 - 仮想環境内の保護ストレージ制御の保存/復元 - Google Patents
仮想環境内の保護ストレージ制御の保存/復元 Download PDFInfo
- Publication number
- JP7018950B2 JP7018950B2 JP2019536835A JP2019536835A JP7018950B2 JP 7018950 B2 JP7018950 B2 JP 7018950B2 JP 2019536835 A JP2019536835 A JP 2019536835A JP 2019536835 A JP2019536835 A JP 2019536835A JP 7018950 B2 JP7018950 B2 JP 7018950B2
- Authority
- JP
- Japan
- Prior art keywords
- protected storage
- instruction
- protected
- register
- computer
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
Description
・ さらに、ネイティブ中央処理装置202は、メモリ204に格納された命令およびコードを実行する。1つの特定の例では、中央処理装置は、メモリ204に格納されたエミュレータ・コード212を実行する。このコードは、あるアーキテクチャで構成されたコンピューティング環境が、別のアーキテクチャをエミュレートできるようにする。例えば、エミュレータ・コード212は、z/Architecture(R)以外のアーキテクチャに基づくマシン(PowerPC(R)プロセッサ、pSeries(R)サーバ、あるいはその他のサーバまたはプロセッサなど)が、z/Architecture(R)をエミュレートし、z/Architecture(R)に基づいて開発されたソフトウェアおよび命令を実行できるようにする。IBM、Power、Power Architecture、PowerPC、System z、z/VM、z/OS、z/VSE、およびz/Architectureは、世界中の多くの管轄区域で登録されている、International Business Machines Corporationの商標である。Intelは、米国およびその他の国における、Intel Corporationまたはその子会社の商標または登録商標である。
* 保護ストレージ原点(GSO:Guarded Storage Origin)302:このフィールドは、保護ストレージの防護が適用されてよいストレージのブロックのアドレスを指定する。保護ストレージ領域の位置は、GSDレジスタの左端のビットによって指定される。一実施形態では、左端のビットの数は、このレジスタのビット58~63内の保護ストレージ特性(GSC:guarded storage characteristic)の値によって決定される。保護ストレージ指定レジスタのビット位置0~(63-GSC)は、その右側のビット位置(64-GSC)~63に2進ゼロが埋め込まれて、保護ストレージ領域の左端のバイトの64ビット論理アドレスを形成する。他の実施形態では、保護ストレージ領域の原点を指定する異なるメカニズムを使用してよい。
* 保護読み込みシフト(GLS:Guarded Load Shift)304:一実施形態では、保護ストレージ指定レジスタのビット53~55は、読み込み論理およびシフト保護命令の中間結果の形成において使用される3ビット符号なし2進整数を含む。一実施形態では、有効なGLSの値は0~4であり、値5~7は予備であり、予測不可能なシフト量をもたらすことがある。
* 保護ストレージ特性(GSC:Guarded Storage Characteristic)306:一実施形態では、保護ストレージ指定レジスタのビット位置58~63は、2のべき乗として扱われる6ビット符号なし2進整数を含む。有効なGSCの値は、例えば25~56であり、値0~24および57~63は予備であり、予測不可能な保護ストレージ・イベント検出をもたらすことがある。1つの例では、GSCは次を指定する。
・ 保護ストレージ原点のアライメント。25のGSCの値は32Mバイトのアライメントを示し、26の値は64Mバイトのアライメントを示す、などとなる。
・ 保護ストレージ・セクションのサイズ。25のGSCの値は512Kバイトのセクションを示し、26の値は1Mバイトのセクションを示す、などとなる。他の実施形態では、保護ストレージ原点および保護ストレージ・セクションのサイズの指定に対応して変化する、GSCを指定する異なるメカニズムを許容してよい。
予備:GSEPLのバイト0および4~7は予備であり、1つの例では、保護ストレージ・イベントが認識されたときに、0に設定される。
予備:GSEAMのビット0~5は予備であり、0が格納される。
トランザクション実行モード指示(TX)622:GSECIのビット0が0である場合、保護ストレージ・イベントが認識されたときに、CPUはトランザクション実行モードではなかった。GSECIのビット0が1である場合、保護ストレージ・イベントが認識されたときに、CPUはトランザクション実行モードだった。
予備:GSEAIのビット0は予備であり、1つの例では、保護ストレージ・イベントが認識されたときに、0に設定される。
例えば、24ビット・アドレス指定モードにおいて、中間結果は、40個の2進ゼロと第2のオペランドのビット40~63との連結から形成される。31ビット・アドレス指定モードにおいて、中間結果は、33個の2進ゼロと第2のオペランドのビット33~63との連結から形成される。64ビット・アドレス指定モードにおいて、中間結果は、第2のオペランド全体から形成される。
成するために、保護ストレージ指定レジスタで指定された数のビット位置だけ左にシフトされた、32ビット値である。この64ビット値は、アドレス指定モードに応じて調整される。すなわち、24ビット・アドレス指定モードでは、ビット0~39が0に設定され、31ビット・アドレス指定モードでは、ビット0~32が0に設定され、64ビット・アドレス指定モードでは、値は変更されない。中間的な値の選択されたビットは、(GSDレジスタ内の)保護ストレージ原点と比較され、中間的な値のその他の選択されたビットは、保護ストレージ・セクション・マスク(GSSM)レジスタ内のビットをインデックスで示すために使用される。この比較が等しく、インデックスで示されたGSSMビットが1である場合、保護ストレージ・イベントが検出される。そうでない場合、命令は単に中間的な値をレジスタに読み込む。
保護ストレージ機能が(例えば、制御レジスタ2のビット59を用いて)有効化されている場合、保護読み込みシフト値(保護ストレージ指定レジスタのビット53~55内のGLS)を使用して中間結果が形成される。保護ストレージ機能が有効化されていない場合、GLS値は0であると仮定される。
1.~7. 一般的なケースに関する、プログラム割り込み条件の優先度と同じ優先度を持つ例外。
8. ストレージ内の第2のオペランドに関するアクセス例外。
9. 保護ストレージ・イベントが認識されない状態での完了。
10. 保護ストレージ・イベント・パラメータ・リストに関する、副作用アクセス例外。
11. 保護ストレージ・イベントが認識された状態での完了。
* 保護ストレージ機能がインストールされていない場合、または保護ストレージ機能がインストールされているが、LCフィールドが0である場合、マシン・チェック拡張保存領域のサイズは、1,024バイトであると仮定され、これによって、保護ストレージ機能を認識しない古いソフトウェアの互換性のある動作を保証する。
* 保護ストレージ機能がインストールされていて、LCフィールドが例えば1~9のいずれかの値である場合、エラーであると仮定され、MCESAO全体が0を含んでいる(すなわち、MCESAは格納されない)かのように扱われる。
* 保護ストレージ機能がインストールされていて、LCフィールドが例えば10以上の値を含んでいる場合、MCESAのサイズおよびアライメントは2LCバイトである。その場合、MCESADのビット0~63-LCがマシン・チェック拡張保存領域原点(MCESAO)を形成する。MCESAOは、LC個の0ビットが右に追加されて、マシン・チェック拡張保存領域の64ビット・アドレスを形成する。
1. トランザクションが、例えばアボート・コード19を伴って、アボートされる。トランザクション診断ブロック(TDB)アドレスが有効でない場合、またはTDBアドレスが有効でアクセス可能である場合、トランザクション・アボートPSW内で、一例として、条件コード2が設定される。TDBアドレスが有効であるが、TDBがアクセス可能でない場合、トランザクション・アボートPSW内で、一例として、条件コード1が設定される。
2. モデルに応じて、読み込み保護命令または読み込み論理およびシフト保護命令の第2のオペランドが再フェッチされて、保護ストレージ・イベント条件がまだ存在するかどうかを判定してよい。
・ 第2のオペランドが再フェッチされ、保護ストレージ・イベント条件が存在しなくなった場合、トランザクション・アボートPSWの読み込みによって、正常なトランザクション・アボート処理が完了する。この場合、保護ストレージ・イベント処理は発生しない。
・ 第2のオペランドが再フェッチされない場合、または第2のオペランドが再フェッチされ、保護ストレージ・イベント条件が持続している場合、本明細書に記載されているように、(トランザクション・アボートPSWを読み込む代わりに)保護ストレージ・イベント処理が発生する。(すなわち、保護ストレージ機能なしで、トランザクション実行がアボートされた場合、制御が、トランザクション・アボートPSWによって指定された命令に渡される。制約なしトランザクションの場合、この命令は、トランザクション実行を開始した最も外側のTBEGIN命令に続く命令である。通常、この命令は制御をトランザクション・アボート・ハンドラに移動し、このトランザクション・アボート・ハンドラは、プログラム条件を変更し、トランザクション実行でのその後の試みを成功させることができる可能性がある。制約付きトランザクションの場合、トランザクション・アボートPSWは、TBEGINC命令を指定する。したがって、トランザクションは、アボート・ハンドラからの介入なしで再実行される。)トランザクション実行中にGSEが認識された場合、トランザクションがアボートされる。GSEを解決しないでトランザクションを再実行することは、生産的ではない。したがって、トランザクション・アボートの後に、制御がGSEハンドラに渡され、本明細書に記載されているように、GSEハンドラがイベントを管理する。
・ プログラム割り込みが発生する。
・ CPUがトランザクション実行モードでない場合、プログラムの旧PSW内の命令アドレスが次のように設定される。
- 例外条件が無効化をもたらす場合、命令アドレスは、保護ストレージ・イベントを引き起こす命令を指す(すなわち、例えば、LGGまたはLLGFSGのアドレス、あるいはターゲットがLGGまたはLLGFSGである実行タイプ命令のアドレス)。
- 例外条件が抑制または終了をもたらす場合、命令アドレスは、保護ストレージ・イベントを引き起こした命令に続く次の順次命令を指す。
・ アドレス指定を除くすべてのアクセス例外条件の場合、副作用アクセスの指示(例えば、実位置168~175での変換例外識別情報(TEID:translation exception identification)のビット54)が、1に設定される(アドレス指定例外の場合、TEIDは格納されない)。
・ GSEPLがアクセス可能でない場合、後述される残りの保護ストレージ・イベント処理は発生しない。
・ GSEPLのバイト0および4~7が0に設定される。
・ アドレス指定モードの指示が、次のように保護ストレージ・イベント・アドレス指定モード(GSEAM、GSEPLのバイト1)に配置される。
- GSEAMのビット0~5が0に設定される。
- 保護ストレージ・イベントが認識された時点で、GSEAMのビット6および7が、PSWのビット31および32に設定される。
・ イベントの原因の指示が、次のように保護ストレージ・イベント原因指示フィールド(GSECI、GSEPLのバイト2)に配置される。
- 保護ストレージ・イベントが認識されたときに、CPUがトランザクション実行モードだった場合、GSECIのビット0が1に設定され、そうでない場合、バイト2のビット0が0に設定される。
- 保護ストレージ・イベントが認識されたときに、CPUが制約付きトランザクション実行モードだった場合、GSECIのビット1が1に設定され、そうでない場合、GSECIのビット1が0に設定される。
- GSECIのビット2~6が0に設定される。
- GSECIのビット7が、保護ストレージ・イベントを引き起こした命令を指定するように設定される。例えば、0の値は、イベントがLGG命令によって引き起こされたことを意味し、1の値は、イベントがLLGFSG命令によって引き起こされたことを意味する。
・ PSW DAT、アドレス指定モード、およびアドレス空間制御の指示が、次のように保護ストレージ・イベント・アクセス指示フィールド(GSEAI、GSEPLのバイト3)に配置される。
- GSEAIのビット0は予備であり、0に設定される。
- 現在の変換モード(PSWのビット5)が、GSEAIのビット1に配置される。
- DATがオンである場合、PSWのビット16~17が、GSEAIのビット2~3に配置される。DATがオフである場合、GSEAIのビット2~3は予測不可能である。
- CPUがアクセス・レジスタ・モードである場合、イベントを引き起こすLGG命令またはLLGFSG命令のB2フィールドに対応するアクセス・レジスタ数が、GSEAIのビット4~7に配置される。CPUがARモードでない場合、GSEAIのビット4~7は予測不可能である。
・ PSW内の命令アドレスが、保護ストレージ・イベント・ハンドラ・アドレス・フィールド(GSEHA、GSEPLのバイト8~15)の内容に置き換えられる。GSEHAフィールドは、分岐アドレスであると見なされる。現在のアドレス指定モードは変更されない。
・ 保護ストレージ・イベントを引き起こす命令のアドレスが、保護ストレージ・イベント命令アドレス・フィールド(GSEIA、GSEPLのバイト16~23)に配置される。GSEIAに配置されるアドレスは、例えば、LGG命令またはLLGFSG命令のアドレス、あるいはターゲットがLGGまたはLLGFSGである実行タイプ命令のアドレスである。GSEIAは、停止イベント・アドレス・レジスタにも配置される。
・ LGG命令またはLLGFSG命令の第2のオペランド・アドレスが、保護ストレージ・イベント・オペランド・アドレス(GSEOA、GSEPLのバイト24~31)に配置される。保護ストレージ・イベントの認識に起因してトランザクション実行がアボートされた場合、GSEOAフィールドは、トランザクション実行中に形成されたオペランド・アドレスを含む。
・ LGG命令またはLLGFSG命令の中間結果が、保護ストレージ・イベント中間結果フィールド(GSEIR、GSEPLのバイト32~39)に配置される。保護ストレージ・イベントの認識に起因してトランザクション実行がアボートされた場合、GSEIRフィールドは、保護ストレージ・オペランド・アドレス(GSEOA)フィールドを使用して形成される。しかし、トランザクション実行中に保護ストレージ・イベントが認識された場合、GSEIRが、トランザクションにおいてフェッチされた値を含むのか、それともトランザクションがアボートされた後にフェッチされた値を含むのかは、モデルに依存する。
・ トランザクションがアボートされた後に、GSE中間アドレス(GSE intermediate address)(すなわち、LGGまたはLLGFSGによって読み込まれたポインタ)が形成される。一実施形態では、トランザクション中に、LGG/LLGFSGのオペランドがトランザクションにおいて変更された場合、GSEIAはそれらの変更を示さない。
・ 保護ストレージ・イベントが認識されたときに、CPUがトランザクション実行モードだった場合、トランザクション・アボートPSWの命令アドレスが、保護ストレージ・イベント復帰アドレス・フィールド(GSERA、GSEPLのバイト40~47)に配置される。CPUが制約付きトランザクション実行モードだった場合、GSERAは、TBEGINC(制約付きトランザクション開始)命令を指定する。CPUが制約なしトランザクション実行モードだった場合、GSERAは、TBEGIN(トランザクション開始)命令に続く命令を指定する。GSE処理の後に、ハンドラは、このアドレスに分岐してトランザクションを再試行することができる。
・ 例外が無効化をもたらした場合、命令アドレスは、例えば、GSEを引き起こしたLGG命令またはLLGFSG命令(または、LGGまたはLLGFSGであるオペランドを持つ実行タイプ命令)を指す。
・ 例外が抑制または終了をもたらした場合、命令アドレスは、抑制する例外または終了する例外のGSEを引き起こした命令に続く次の順次命令を指す。
プログラム用の予備1502:バイト0~7は、プログラムによって使用するための予備である。
ビット0:保護ストレージ制御ブロックが提供される
ビット1~63:予備
状態記述付加特性(SDNXC:State Description Annex Characteristic)1602:例えば、SDNX指定のビット60~63は、状態記述付加特性を含む。例えば、SDNXCは、SDNXのサイズおよびアライメントを2のべき乗として指定する、4ビット符号なし整数である。
* ホスト構成において保護ストレージ機能がインストールされおり、保護ストレージ機能を示すSIE状態記述の実行制御B(ECB)のビット1が、例えば1である。
* SDNXの将来のエクスプロイター(Future exploiters)がインストールされている。
別の態様として、コンピュータ可読コードをコンピューティング・システムに統合することを含むコンピューティング・インフラストラクチャがデプロイされてよく、このコンピューティング・インフラストラクチャでは、コンピューティング・システムと組み合わせたコードが、1つまたは複数の実施形態を実行できる。
Claims (18)
- 仮想コンピューティング環境内の保護ストレージ機能を提供するためのコンピュータ実装方法であって、
前記仮想コンピューティング環境は、ホスト・プログラムが仮想ゲスト環境を提供する解釈実行アーキテクチャを利用し、前記ホスト・プログラムは、状態記述制御ブロックを指定する命令を発行し、前記状態記述制御ブロックは、ゲストの状態および制御を保持し、ゲスト命令およびゲスト割り込みが直接処理される解釈実行を開始するようになっていて、
前記コンピュータ実装方法が、
前記ホスト・プログラムにより、ゲストをディスパッチすることと、
状態記述付加の保護ストレージ制御ブロックの内容を取得するために、前記ゲストをディスパッチすることに基づいて、前記ホスト・プログラムにより、読み込み保護ストレージ制御命令を実行することであって、前記状態記述付加は、前記状態記述制御ブロックの論理的拡張であり、前記保護ストレージ制御ブロックを含む、前記実行することと
を含み、
前記記実行することが、前記保護ストレージ制御ブロックの前記内容を複数のレジスタに読み込むことを含み、
前記複数のレジスタは、ガベージ・コレクション中に防護される保護ストレージ領域の属性を規定する保護ストレージ指定レジスタと、前記保護ストレージ領域のセクションのためのビットを含む保護ストレージ・セクション・マスク・レジスタと、ガベージ・コレクションが実行される1つまたは複数のセクションを指す読み込み保護命令によって保護ストレージ・イベントが認識されるときに、保護ストレージ・イベント・パラメータ・リストの位置を特定するために使用されるアドレスを含む保護ストレージ・イベント・パラメータ・リスト・アドレス・レジスタとを含み、
前記保護ストレージ制御ブロックの前記内容は、前記保護ストレージ指定レジスタの内容、前記保護ストレージ・セクション・マスク・レジスタの内容、および前記保護ストレージ・イベント・パラメータ・リスト・アドレス・レジスタの内容を含み、
前記保護ストレージ・セクション・マスク・レジスタによって指定される前記保護ストレージ領域の、ガベージ・コレクションが実行される前記1つまたは複数のセクションを防護するために、前記保護ストレージ指定レジスタおよび前記保護ストレージ・セクション・マスク・レジスタは、前記ゲストにより使用され、
前記保護ストレージ・イベント・パラメータ・リストは、前記読み込み保護命令によって前記保護ストレージ・イベントが認識されるときに、前記保護ストレージ・イベントに関する情報を提供する、
コンピュータ実装方法。 - 前記読み込み保護ストレージ制御命令は、オペランドを含むストレージ内のアドレスを提供し、前記オペランドは、前記保護ストレージ指定レジスタ、前記保護ストレージ・セクション・マスク・レジスタおよび前記保護ストレージ・イベント・パラメータ・リスト・アドレス・レジスタを読み込むためにアクセスされる前記保護ストレージ制御ブロックを含む、請求項1に記載のコンピュータ実装方法。
- 前記ゲストが解釈実行を終了することに基づいて、前記複数のレジスタの内容を前記保護ストレージ制御ブロックに格納することをさらに含む、請求項1または2に記載のコンピュータ実装方法。
- 前記格納することは、前記ホスト・プログラムにより、前記複数のレジスタの内容を前記保護ストレージ制御ブロックに格納するための格納保護ストレージ制御命令を発行することを含む、請求項3に記載のコンピュータ実装方法。
- 前記方法は、前記状態記述付加の位置を特定することをさらに含み、前記位置を特定するのに状態記述付加指定の情報を使用し、前記状態記述付加指定は前記仮想コンピューティング環境内の処理を制御するのに使用される、請求項1ないし4のいずれかに記載のコンピュータ実装方法。
- 前記情報が前記状態記述付加の原点へのポインタを含んでいる、請求項5に記載のコンピュータ実装方法。
- 前記情報が、前記状態記述付加のサイズおよびアライメントを示すために使用される特性を含む、請求項5に記載のコンピュータ実装方法。
- 前記状態記述付加が、前記状態記述付加の内容の有効性を示す機能指示を含む、請求項1ないし7のいずれかに記載のコンピュータ実装方法。
- 前記方法は、要求された機能が有効であるかどうかを判定することをさらに含み、前記判定することが前記機能指示を使用する、請求項8に記載のコンピュータ実装方法。
- コンピューティング環境内の処理を容易にするためのコンピュータ・システムであって、前記コンピュータ・システムが、
メモリと、
前記メモリと通信するプロセッサと
を備えており、前記コンピュータ・システムが方法を実行するように構成されており、前記方法が、仮想コンピューティング環境内の保護ストレージ機能を提供することを含み、
前記仮想コンピューティング環境は、ホスト・プログラムが仮想ゲスト環境を提供する解釈実行アーキテクチャを利用し、前記ホスト・プログラムは、状態記述制御ブロックを指定する命令を発行し、前記状態記述制御ブロックは、ゲストの状態および制御を保持し、ゲスト命令およびゲスト割り込みが直接処理される解釈実行を開始するようになっていて、
前記方法が、
前記ホスト・プログラムにより、ゲストをディスパッチすることと、
状態記述付加の保護ストレージ制御ブロックの内容を取得するために、前記ゲストをディスパッチすることに基づいて、前記ホスト・プログラムにより、読み込み保護ストレージ制御命令を実行することであって、前記状態記述付加は、前記状態記述制御ブロックの論理的拡張であり、前記保護ストレージ制御ブロックを含む、前記実行することと
を含み、
前記記実行することが、前記保護ストレージ制御ブロックの前記内容を複数のレジスタに読み込むことを含み、
前記複数のレジスタは、ガベージ・コレクション中に防護される保護ストレージ領域の属性を規定する保護ストレージ指定レジスタと、前記保護ストレージ領域のセクションのためのビットを含む保護ストレージ・セクション・マスク・レジスタと、ガベージ・コレクションが実行される1つまたは複数のセクションを指す読み込み保護命令によって保護ストレージ・イベントが認識されるときに、保護ストレージ・イベント・パラメータ・リストの位置を特定するために使用されるアドレスを含む保護ストレージ・イベント・パラメータ・リスト・アドレス・レジスタとを含み、
前記保護ストレージ制御ブロックの前記内容は、前記保護ストレージ指定レジスタの内容、前記保護ストレージ・セクション・マスク・レジスタの内容、および前記保護ストレージ・イベント・パラメータ・リスト・アドレス・レジスタの内容を含み、
前記保護ストレージ・セクション・マスク・レジスタによって指定される前記保護ストレージ領域の、ガベージ・コレクションが実行される前記1つまたは複数のセクションを防護するために、前記保護ストレージ指定レジスタおよび前記保護ストレージ・セクション・マスク・レジスタは、前記ゲストにより使用され、
前記保護ストレージ・イベント・パラメータ・リストは、前記読み込み保護命令によって前記保護ストレージ・イベントが認識されるときに、前記保護ストレージ・イベントに関する情報を提供する、
コンピュータ・システム。 - 前記読み込み保護ストレージ制御命令は、オペランドを含むストレージ内のアドレスを提供し、前記オペランドは、前記保護ストレージ指定レジスタ、前記保護ストレージ・セクション・マスク・レジスタおよび前記保護ストレージ・イベント・パラメータ・リスト・アドレス・レジスタを読み込むためにアクセスされる前記保護ストレージ制御ブロックを含む、請求項10に記載のコンピュータ・システム。
- 前記ゲストが解釈実行を終了することに基づいて、前記複数のレジスタの内容を前記保護ストレージ制御ブロックに格納することをさらに含む、請求項10または11に記載のコンピュータ・システム。
- 前記格納することは、前記ホスト・プログラムにより、前記複数のレジスタの内容を前記保護ストレージ制御ブロックに格納するための格納保護ストレージ制御命令を発行することを含む、請求項12に記載のコンピュータ・システム。
- 前記方法は、前記状態記述付加の位置を特定することをさらに含み、前記位置を特定するのに状態記述付加指定の情報を使用し、前記状態記述付加指定は前記仮想コンピューティング環境内の処理を制御するのに使用される、請求項10ないし13のいずれかに記載のコンピュータ・システム。
- 前記状態記述付加が、前記状態記述付加の内容の有効性を示す機能指示を含む、請求項10ないし14のいずれかに記載のコンピュータ・システム。
- コンピューティング環境内の処理を容易にするためのコンピュータ・プログラムであって、処理回路によって読み取り可能な、請求項1ないし9のいずれかに記載の方法を実行するために前記処理回路によって実行される命令を格納している、コンピュータ可読記憶媒体を備えている、コンピュータ・プログラム。
- コンピュータ可読媒体に格納された、デジタル・コンピュータの内部メモリに読み込み可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行された場合に請求項1ないし9のいずれかに記載の前記方法を実行するためのソフトウェア・コード部分を含んでいる、コンピュータ・プログラム。
- コンピュータ可読媒体に格納されて、請求項10ないし15のいずれかに記載の前記システムの内部メモリに読み込まれるコンピュータ・プログラムであって、前記プログラムが前記システムで実行された場合に請求項1ないし9のいずれかに記載の前記方法を実行するためのソフトウェア・コード部分を含んでいる、コンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/409,633 US10496292B2 (en) | 2017-01-19 | 2017-01-19 | Saving/restoring guarded storage controls in a virtualized environment |
US15/409,633 | 2017-01-19 | ||
PCT/EP2018/050762 WO2018134136A1 (en) | 2017-01-19 | 2018-01-12 | Saving/restoring guarded storage controls in a virtualized environment |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020516974A JP2020516974A (ja) | 2020-06-11 |
JP7018950B2 true JP7018950B2 (ja) | 2022-02-14 |
Family
ID=60957326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019536835A Active JP7018950B2 (ja) | 2017-01-19 | 2018-01-12 | 仮想環境内の保護ストレージ制御の保存/復元 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10496292B2 (ja) |
EP (1) | EP3571595B1 (ja) |
JP (1) | JP7018950B2 (ja) |
CN (1) | CN110235109B (ja) |
AU (1) | AU2018209084B2 (ja) |
CA (1) | CA3037277A1 (ja) |
IL (1) | IL265558B (ja) |
TW (1) | TWI663547B (ja) |
WO (1) | WO2018134136A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10579377B2 (en) | 2017-01-19 | 2020-03-03 | International Business Machines Corporation | Guarded storage event handling during transactional execution |
US10496311B2 (en) | 2017-01-19 | 2019-12-03 | International Business Machines Corporation | Run-time instrumentation of guarded storage event processing |
US10725685B2 (en) | 2017-01-19 | 2020-07-28 | International Business Machines Corporation | Load logical and shift guarded instruction |
US10732858B2 (en) * | 2017-01-19 | 2020-08-04 | International Business Machines Corporation | Loading and storing controls regulating the operation of a guarded storage facility |
US10452288B2 (en) | 2017-01-19 | 2019-10-22 | International Business Machines Corporation | Identifying processor attributes based on detecting a guarded storage event |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015516601A (ja) | 2012-03-16 | 2015-06-11 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 被管理ランタイムのためのハードウェア・ベース・ランタイム計装機構 |
US20170004078A1 (en) | 2015-06-30 | 2017-01-05 | International Business Machines Corporation | Garbage collection handler to update object pointers |
US20170004072A1 (en) | 2015-06-30 | 2017-01-05 | International Business Machines Corporation | Multi-Section Garbage Collection |
US20170004074A1 (en) | 2015-06-30 | 2017-01-05 | International Business Machines Corporation | Garbage collection absent use of special instructions |
Family Cites Families (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL134954C (ja) | 1964-10-07 | |||
US7447069B1 (en) | 1989-04-13 | 2008-11-04 | Sandisk Corporation | Flash EEprom system |
US5574936A (en) | 1992-01-02 | 1996-11-12 | Amdahl Corporation | Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system |
US5644752A (en) | 1994-06-29 | 1997-07-01 | Exponential Technology, Inc. | Combined store queue for a master-slave cache system |
US6317872B1 (en) | 1997-07-11 | 2001-11-13 | Rockwell Collins, Inc. | Real time processor optimized for executing JAVA programs |
DE19836347C2 (de) | 1998-08-11 | 2001-11-15 | Ericsson Telefon Ab L M | Fehlertolerantes Computersystem |
US7409694B2 (en) * | 1998-09-09 | 2008-08-05 | Microsoft Corporation | Highly componentized system architecture with loadable virtual memory manager |
US20040158695A1 (en) | 1999-05-03 | 2004-08-12 | Laurent Ugen | Method and apparatus for handling transfer of guarded instructions in a computer system |
US6765571B2 (en) * | 1999-09-24 | 2004-07-20 | Sun Microsystems, Inc. | Using a master controller to manage threads and resources for scene-based rendering |
US7197585B2 (en) | 2002-09-30 | 2007-03-27 | International Business Machines Corporation | Method and apparatus for managing the execution of a broadcast instruction on a guest processor |
US7043505B1 (en) | 2003-01-28 | 2006-05-09 | Unisys Corporation | Method variation for collecting stability data from proprietary systems |
US7330981B2 (en) | 2004-04-23 | 2008-02-12 | Microsoft Corporation | File locker and mechanisms for providing and using same |
US7240176B2 (en) | 2004-05-01 | 2007-07-03 | Intel Corporation | Apparatus and methods for placing a managed heap |
US8452938B1 (en) | 2004-12-30 | 2013-05-28 | Azul Systems, Inc. | Garbage collection with memory quick release |
US7212440B2 (en) | 2004-12-30 | 2007-05-01 | Sandisk Corporation | On-chip data grouping and alignment |
US7555506B2 (en) | 2005-04-05 | 2009-06-30 | Microsoft Corporation | Partial deserialization of complex type objects |
US20070005935A1 (en) | 2005-06-30 | 2007-01-04 | Khosravi Hormuzd M | Method and apparatus for securing and validating paged memory system |
US20070011441A1 (en) | 2005-07-08 | 2007-01-11 | International Business Machines Corporation | Method and system for data-driven runtime alignment operation |
US8387049B2 (en) * | 2005-07-15 | 2013-02-26 | International Business Machines Corporation | Facilitating processing within computing environments supporting pageable guests |
US7395407B2 (en) | 2005-10-14 | 2008-07-01 | International Business Machines Corporation | Mechanisms and methods for using data access patterns |
US7555619B2 (en) | 2005-12-07 | 2009-06-30 | Microsoft Corporation | Efficient per-object operations in software transactional memory |
WO2008070802A2 (en) | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for an in-server storage area network |
EP2115593B1 (en) | 2007-01-26 | 2018-10-24 | Intel Corporation | Hierarchical immutable content-addressable memory processor |
US8364910B2 (en) | 2007-03-08 | 2013-01-29 | Daniel Shawcross Wilkerson | Hard object: hardware protection for software objects |
US9095802B2 (en) | 2007-05-10 | 2015-08-04 | The Baker Company | Biosafety cabinets with air filters accessible through the work chamber |
US8078827B2 (en) | 2007-07-05 | 2011-12-13 | International Business Machines Corporation | Method and apparatus for caching of page translations for virtual machines |
US8327084B2 (en) | 2007-08-30 | 2012-12-04 | International Business Machines Corporation | Method and apparatus to trigger synchronization and validation actions upon memory access |
US8819676B2 (en) | 2007-10-30 | 2014-08-26 | Vmware, Inc. | Transparent memory-mapped emulation of I/O calls |
EP2232361A1 (en) | 2007-12-05 | 2010-09-29 | Sandbridge Technologies, Inc. | Method and instruction set including register shifts and rotates for data processing |
US8041923B2 (en) | 2008-01-11 | 2011-10-18 | International Business Machines Corporation | Load page table entry address instruction execution based on an address translation format control field |
US8677098B2 (en) * | 2008-01-11 | 2014-03-18 | International Business Machines Corporation | Dynamic address translation with fetch protection |
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 |
US8407455B2 (en) | 2008-07-28 | 2013-03-26 | Advanced Micro Devices, Inc. | Coexistence of advanced hardware synchronization and global locks |
US8578483B2 (en) * | 2008-07-31 | 2013-11-05 | Carnegie Mellon University | Systems and methods for preventing unauthorized modification of an operating system |
US8250331B2 (en) | 2009-06-26 | 2012-08-21 | Microsoft Corporation | Operating system virtual memory management for hardware transactional memory |
US8402218B2 (en) | 2009-12-15 | 2013-03-19 | Microsoft Corporation | Efficient garbage collection and exception handling in a hardware accelerated transactional memory system |
KR101639672B1 (ko) | 2010-01-05 | 2016-07-15 | 삼성전자주식회사 | 무한 트랜잭션 메모리 시스템 및 그 동작 방법 |
KR20110102734A (ko) | 2010-03-11 | 2011-09-19 | 삼성전자주식회사 | 오티피 록 비트 레지스터를 구비한 불휘발성 반도체 메모리 장치 |
CN102169429B (zh) | 2010-03-29 | 2016-06-29 | 威盛电子股份有限公司 | 预取单元、数据预取方法以及微处理器 |
GB2482710A (en) * | 2010-08-12 | 2012-02-15 | Advanced Risc Mach Ltd | Enabling stack access alignment checking independently of other memory access alignment checking |
DE112011103536T5 (de) | 2010-10-20 | 2013-08-01 | International Business Machines Corp. | Verfahren zum Erkennen von Zugriffen auf ein Objekt und Computer und Computerprogrammprodukt für selbiges |
KR101724590B1 (ko) | 2011-01-31 | 2017-04-11 | 삼성전자주식회사 | 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법 |
JP2013033412A (ja) | 2011-08-03 | 2013-02-14 | Internatl Business Mach Corp <Ibm> | メモリ管理方法、プログラム及びシステム |
CN104011663B (zh) | 2011-12-22 | 2018-01-26 | 英特尔公司 | 掩码寄存器上的广播操作 |
US20130326519A1 (en) * | 2011-12-30 | 2013-12-05 | Andrew V. Anderson | Virtual machine control structure shadowing |
US9442824B2 (en) | 2012-03-16 | 2016-09-13 | International Business Machines Corporation | Transformation of a program-event-recording event into a run-time instrumentation event |
US9280447B2 (en) | 2012-03-16 | 2016-03-08 | International Business Machines Corporation | Modifying run-time-instrumentation controls from a lesser-privileged state |
US9262428B2 (en) * | 2012-04-23 | 2016-02-16 | International Business Machines Corporation | Preserving redundancy in data deduplication systems by designation of virtual address |
US8583920B1 (en) * | 2012-04-25 | 2013-11-12 | Citrix Systems, Inc. | Secure administration of virtual machines |
US20130339656A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Compare and Replace DAT Table Entry |
US9262320B2 (en) | 2012-06-15 | 2016-02-16 | International Business Machines Corporation | Tracking transactional execution footprint |
US9311101B2 (en) | 2012-06-15 | 2016-04-12 | International Business Machines Corporation | Intra-instructional transaction abort handling |
US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
US20130339680A1 (en) * | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
US8880959B2 (en) | 2012-06-15 | 2014-11-04 | International Business Machines Corporation | Transaction diagnostic block |
US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
US9424896B2 (en) | 2012-06-22 | 2016-08-23 | Nxp B.V. | Method and system for fast initialization of a memory unit |
US10565099B2 (en) * | 2012-12-28 | 2020-02-18 | Apple Inc. | Methods and apparatus for compressed and compacted virtual memory |
US9311011B2 (en) * | 2013-08-07 | 2016-04-12 | Qualcomm Incorporated | Dynamic address negotiation for shared memory regions in heterogenous multiprocessor systems |
TWI609263B (zh) | 2013-08-16 | 2017-12-21 | 司固科技公司 | 可變大小快閃轉變層 |
CN104468150A (zh) | 2013-09-12 | 2015-03-25 | 阿里巴巴集团控股有限公司 | 一种虚拟主机实现故障迁移的方法及虚拟主机业务装置 |
US9329890B2 (en) | 2013-09-26 | 2016-05-03 | Globalfoundries Inc. | Managing high-coherence-miss cache lines in multi-processor computing environments |
US20150113240A1 (en) | 2013-10-17 | 2015-04-23 | International Business Machines Corporation | Restricting access to sensitive data in system memory dumps |
KR101835250B1 (ko) | 2013-12-17 | 2018-03-06 | 인텔 코포레이션 | 트랜잭셔널 메모리를 사용한 비인가 메모리 수정 및 액세스의 검출 |
US20150178078A1 (en) | 2013-12-21 | 2015-06-25 | H. Peter Anvin | Instructions and logic to provide base register swap status verification functionality |
US9582295B2 (en) | 2014-03-18 | 2017-02-28 | International Business Machines Corporation | Architectural mode configuration |
US9772867B2 (en) | 2014-03-27 | 2017-09-26 | International Business Machines Corporation | Control area for managing multiple threads in a computer |
US20150278123A1 (en) | 2014-03-28 | 2015-10-01 | Alex Nayshtut | Low-overhead detection of unauthorized memory modification using transactional memory |
US9483295B2 (en) | 2014-03-31 | 2016-11-01 | International Business Machines Corporation | Transparent dynamic code optimization |
US9842055B2 (en) * | 2014-07-21 | 2017-12-12 | Via Alliance Semiconductor Co., Ltd. | Address translation cache that supports simultaneous invalidation of common context entries |
US9749448B2 (en) | 2014-11-25 | 2017-08-29 | Intel Corporation | Header parity error handling |
US20160299712A1 (en) | 2015-04-07 | 2016-10-13 | Microsoft Technology Licensing, Llc | Virtual Machines Backed by Host Virtual Memory |
US9665373B2 (en) | 2015-06-26 | 2017-05-30 | Intel Corporation | Protecting confidential data with transactional processing in execute-only memory |
US10223257B2 (en) | 2015-07-27 | 2019-03-05 | International Business Machines Corporation | Multi-section garbage collection |
US10083113B2 (en) | 2015-07-27 | 2018-09-25 | International Business Machines Corporation | Scheme for determining data object usage in a memory region |
US10496311B2 (en) | 2017-01-19 | 2019-12-03 | International Business Machines Corporation | Run-time instrumentation of guarded storage event processing |
US10452288B2 (en) | 2017-01-19 | 2019-10-22 | International Business Machines Corporation | Identifying processor attributes based on detecting a guarded storage event |
US10732858B2 (en) | 2017-01-19 | 2020-08-04 | International Business Machines Corporation | Loading and storing controls regulating the operation of a guarded storage facility |
US10725685B2 (en) | 2017-01-19 | 2020-07-28 | International Business Machines Corporation | Load logical and shift guarded instruction |
US10579377B2 (en) | 2017-01-19 | 2020-03-03 | International Business Machines Corporation | Guarded storage event handling during transactional execution |
-
2017
- 2017-01-19 US US15/409,633 patent/US10496292B2/en active Active
-
2018
- 2018-01-09 TW TW107100738A patent/TWI663547B/zh active
- 2018-01-12 AU AU2018209084A patent/AU2018209084B2/en active Active
- 2018-01-12 CN CN201880007425.1A patent/CN110235109B/zh active Active
- 2018-01-12 CA CA3037277A patent/CA3037277A1/en active Pending
- 2018-01-12 WO PCT/EP2018/050762 patent/WO2018134136A1/en unknown
- 2018-01-12 JP JP2019536835A patent/JP7018950B2/ja active Active
- 2018-01-12 EP EP18700345.4A patent/EP3571595B1/en active Active
-
2019
- 2019-03-22 IL IL265558A patent/IL265558B/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015516601A (ja) | 2012-03-16 | 2015-06-11 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 被管理ランタイムのためのハードウェア・ベース・ランタイム計装機構 |
US20170004078A1 (en) | 2015-06-30 | 2017-01-05 | International Business Machines Corporation | Garbage collection handler to update object pointers |
US20170004072A1 (en) | 2015-06-30 | 2017-01-05 | International Business Machines Corporation | Multi-Section Garbage Collection |
US20170004074A1 (en) | 2015-06-30 | 2017-01-05 | International Business Machines Corporation | Garbage collection absent use of special instructions |
Non-Patent Citations (1)
Title |
---|
Christian Jacobi, et al.,Transactional Memory Architecture and Implementation for IBM System z,2012 IEEE/ACM 45th Annual Internatinal Symposium on Microarchitecture,米国,IEEE,2012年12月01日,p. 25-36 |
Also Published As
Publication number | Publication date |
---|---|
WO2018134136A1 (en) | 2018-07-26 |
EP3571595A1 (en) | 2019-11-27 |
CN110235109A (zh) | 2019-09-13 |
IL265558B (en) | 2021-02-28 |
IL265558A (en) | 2019-05-30 |
AU2018209084A1 (en) | 2019-06-13 |
US10496292B2 (en) | 2019-12-03 |
JP2020516974A (ja) | 2020-06-11 |
AU2018209084B2 (en) | 2020-10-08 |
TWI663547B (zh) | 2019-06-21 |
EP3571595B1 (en) | 2021-09-01 |
TW201830241A (zh) | 2018-08-16 |
CA3037277A1 (en) | 2018-07-26 |
CN110235109B (zh) | 2023-05-05 |
US20180203618A1 (en) | 2018-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6995124B2 (ja) | トランザクション実行中の保護ストレージ・イベント処理 | |
JP6909298B2 (ja) | 読み込み論理およびシフト保護命令 | |
JP7018950B2 (ja) | 仮想環境内の保護ストレージ制御の保存/復元 | |
JP7042277B2 (ja) | 保護ストレージ機能の動作を調整する制御の読み込みおよび格納 | |
US11010066B2 (en) | Identifying processor attributes based on detecting a guarded storage event | |
JP7065860B2 (ja) | 保護ストレージ・イベント処理のランタイム・インストルメンテーション |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200722 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210730 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210805 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211104 |
|
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: 20220125 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220201 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7018950 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |