JP2013534668A - 多機能命令のうちの選択されたインストール済み機能を隠蔽するためのコンピュータで実装される方法、コンピュータ・システム、およびコンピュータ・プログラム - Google Patents
多機能命令のうちの選択されたインストール済み機能を隠蔽するためのコンピュータで実装される方法、コンピュータ・システム、およびコンピュータ・プログラム Download PDFInfo
- Publication number
- JP2013534668A JP2013534668A JP2013515736A JP2013515736A JP2013534668A JP 2013534668 A JP2013534668 A JP 2013534668A JP 2013515736 A JP2013515736 A JP 2013515736A JP 2013515736 A JP2013515736 A JP 2013515736A JP 2013534668 A JP2013534668 A JP 2013534668A
- Authority
- JP
- Japan
- Prior art keywords
- function
- instruction
- code
- bit
- operand
- 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
Links
Images
Classifications
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45541—Bare-metal, i.e. hypervisor runs directly on hardware
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Devices For Executing Special Programs (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
【解決手段】 多機能命令のうちの選択されたインストール済み機能が隠蔽され、プロセッサが隠蔽されたインストール済み機能を実行できる場合でも隠蔽された機能の可用性が隠蔽され、多機能命令が機能の可用性を照会することに応答して、隠蔽されていない機能のみがインストール済みとして報告されるようになっている。
【選択図】 図5
Description
第2オペランドはダブルワード境界上に指定しなければならず、そうではない場合、指定例外が認識される。
0 完全な機構リストが保管された
1 −
2 −
3 不完全な機構リストが保管された
・アクセス(保管、第2オペランド)
・動作(拡張機構リスト保管機構がインストールされない場合)
・指定
拡張機構リスト保管のパフォーマンスは、記憶装置内のバイトを単純にテストする場合よりかなり遅くなる可能性がある。ある機構の存在について頻繁にテストする必要があるプログラム−−たとえば、その機構をあるパスで使用するが、他のパスでは使用しないというデュアルパス・コード−−は、初期設定中に拡張機構リスト保管命令を1回実行しなければならない。その後、プログラムは、マスク下テスト(TEST UNDER MASK)などの命令を使用して、保管されている結果を検査することにより、その機構の存在についてテストすることができる。
表2
ビットが1のときのビットの意味:
0 z/Architectureの第7章および第10章の命令要約図に「N3」とマークされている命令がインストールされる。
1 z/Architectureアーキテクチャ・モードがインストールされる。
2 z/Architectureアーキテクチャ・モードがアクティブである。このビットがゼロである場合、ESA/390アーキテクチャ・モードがアクティブである。
3 DAT強化機構がz/Architectureアーキテクチャ・モードでインストールされる。DAT強化機構は、DATテーブル項目無効化(IDTE:INVALIDATE DAT TABLE ENTRY)命令および比較交換パージ(CSPG:COMPARE AND SWAP AND PURGE)命令を含む。
4 DATテーブル項目無効化(IDTE)は、1つまたは複数のセグメント・テーブル項目が無効化されたときに、結合された領域セグメント・テーブル項目を選択的にクリアすることにより、無効化クリア動作を実行する。また、IDTEは、ASCEによるクリア動作も実行する。ビット4が1でない限り、IDTEは単純にすべてのTLBをパージする。ビット4が1である場合、ビット3は1である。
5 DATテーブル項目無効化(IDTE)は、1つまたは複数の領域テーブル項目が無効化されたときに、結合された領域セグメント・テーブル項目を選択的にクリアすることにより、無効化クリア動作を実行する。ビット5が1である場合、ビット3および4は1である。
6 ASN/LX再利用(ASN-and-LX reuse)機構がz/Architectureアーキテクチャ・モードでインストールされる。
7 拡張機構リスト保管機構がインストールされる。
8 拡張DAT機構がz/Architectureアーキテクチャ・モードでインストールされる。
9 実行状況感知(sense-running-status)機構がz/Architectureアーキテクチャ・モードでインストールされる。
10 条件付きSSKE機構がz/Architectureアーキテクチャ・モードでインストールされる。
11 構成トポロジ機構がz/Architectureアーキテクチャ・モードでインストールされる。
16 拡張変換機構2がインストールされる。
17 メッセージ・セキュリティ・アシストがインストールされる。
18 長変位(long-displacement)機構がz/Architectureアーキテクチャ・モードでインストールされる。
19 長変位機構が高いパフォーマンスを有する。ビット19が1である場合、ビット18は1である。
20 HFP乗算加算/減算(HFP-multiply-and-add/subtract)機構がインストールされる。
21 拡張即値(extended-immediate)機構がz/Architectureアーキテクチャ・モードでインストールされる。
22 拡張変換機構3がz/Architectureアーキテクチャ・モードでインストールされる。
23 HFP非正規拡張(HFP-unnormalized-extension)機構がz/Architectureアーキテクチャ・モードでインストールされる。
24 ETF2強化機構がインストールされる。
25 急速クロック保管(store-clock-fast)機構がz/Architectureアーキテクチャ・モードでインストールされる。
26 解析強化機構がz/Architectureアーキテクチャ・モードでインストールされる。
27 任意選択指定移動(move-with-optional-specifications)機構がz/Architectureアーキテクチャ・モードでインストールされる。
28 TODクロック・ステアリング(TOD-clock-steering)機構がz/Architectureアーキテクチャ・モードでインストールされる。
30 ETF3強化機構がz/Architectureアーキテクチャ・モードでインストールされる。
31 CPU時間抽出機構がz/Architectureアーキテクチャ・モードでインストールされる。
32 比較交換保管(compare-and-swap-and-store)機構がz/Architectureアーキテクチャ・モードでインストールされる。
33 比較交換保管機構2がz/Architectureアーキテクチャ・モードでインストールされる。
34 汎用命令拡張(general-instructions-extension)機構がz/Architectureアーキテクチャ・モードでインストールされる。
35 拡張実行(execute-extensions)機構がz/Architectureアーキテクチャ・モードでインストールされる。
39 IBM内部使用に割り当てられている。
41 浮動小数点サポート強化機構(FPR−GR転送、FPS符号操作、およびDFP丸め)がz/Architectureアーキテクチャ・モードでインストールされる。
42 DFP(10進浮動小数点)機構がz/Architectureアーキテクチャ・モードでインストールされる。
43 DFP(10進浮動小数点)機構が高いパフォーマンスを有する。ビット43が1である場合、ビット42は1である。
44 PFPO命令がz/Architectureアーキテクチャ・モードでインストールされる。
暗黙の汎用レジスタ0内の機能コードによって指定された機能が実行される。
命令のビット16〜23は無視される。
汎用レジスタ0のビット位置57〜63は機能コードを含む。
暗号鍵フィールドが第1オペランドのいずれかの部分にオーバラップする。
チェーニング値フィールドが第1オペランドまたは第2オペランドのいずれかの部分にオーバラップする。
第1および第2オペランドが破壊的にオーバラップする。処理が一度に1バイトずつ左から右に実行されると想定して、データがそこに移動した後で第1オペランド位置がソースとして使用されるときに、オペランドは破壊的にオーバラップすると言われる。
中間メッセージ・ダイジェスト計算(KIMD)および最終メッセージ・ダイジェスト計算(KLMD)命令:
コンピュータ・システムによって実行されると、汎用レジスタ0内の機能コードによって指定された機能が実行される。この命令のビット16〜23およびR1フィールドは無視される。汎用レジスタ0のビット位置57〜63は機能コードを含む。汎用レジスタ0のビット56はゼロでなければならず、そうではない場合、指定例外が認識される。汎用レジスタ0の他のすべてのビットは無視される。汎用レジスタ1は記憶装置内のパラメータ・ブロックの最左端バイトの論理アドレスを含む。24ビットのアドレッシング・モードでは、汎用レジスタ1のビット位置40〜63の内容がアドレスを構成し、ビット位置0〜39の内容は無視される。31ビットのアドレッシング・モードでは、汎用レジスタ1のビット位置33〜63の内容がアドレスを構成し、ビット位置0〜32の内容は無視される。64ビットのアドレッシング・モードでは、汎用レジスタ1のビット位置0〜63の内容がアドレスを構成する。その他の機能コードはいずれも割り当てられていない。照会機能は、その他の機能の可用性を示す手段を提供する。汎用レジスタR2およびR2+1の内容は照会機能については無視される。その他のすべての機能の場合、第2オペランドは、パラメータ・ブロック内の初期チェーニング値を使用して機能コードによって指定された通りに処理され、その結果はチェーニング値に取って代わる。最終メッセージ・ダイジェスト計算の場合、動作はパラメータ・ブロック内のメッセージ・ビット長も使用する。第2オペランド位置の終わりに達したときまたはCPUが決定したバイト数が処理されたときのうち、どちらか先に発生するまで、動作が進行する。その結果は条件コードに示される。R2フィールドは汎用レジスタの奇偶対を指定するものであって、偶数番号レジスタを指定しなければならず、そうではない場合、指定例外が認識される。第2オペランドの最左端バイトの位置はR2汎用レジスタの内容によって指定される。第2オペランド位置のバイト数は汎用レジスタR2+1に指定される。動作の一部として、汎用レジスタR2内のアドレスは第2オペランドから処理されたバイト数だけ増分され、汎用レジスタR2+1内の長さは同じ数だけ減分される。アドレスおよび長さの形成および更新はアドレッシング・モードに依存する。24ビットのアドレッシング・モードでは、汎用レジスタR2のビット位置40〜63の内容が第2オペランドのアドレスを構成し、ビット位置0〜39の内容は無視され、更新されたアドレスのビット40〜63は汎用レジスタR2内の対応するビットに取って代わり、更新されたアドレスのビット位置40からの繰り上がりは無視され、汎用レジスタR2のビット位置32〜39の内容はゼロに設定される。31ビットのアドレッシング・モードでは、汎用レジスタR2のビット位置33〜63の内容が第2オペランドのアドレスを構成し、ビット位置0〜32の内容は無視され、更新されたアドレスのビット33〜63は汎用レジスタR2内の対応するビットに取って代わり、更新されたアドレスのビット位置33からの繰り上がりは無視され、汎用レジスタR2のビット位置32の内容はゼロに設定される。64ビットのアドレッシング・モードでは、汎用レジスタR2のビット位置0〜63の内容が第2オペランドのアドレスを構成し、更新されたアドレスのビット0〜63は汎用レジスタR2の内容に取って代わり、ビット位置0からの繰り上がりは無視される。24ビットと31ビットのどちらのアドレッシング・モードでも、汎用レジスタR2+1のビット位置32〜63の内容が、第2オペランド内のバイト数を指定する32ビットの符号なし2進整数を形成し、更新された値は汎用レジスタR2+1のビット位置32〜63の内容に取って代わる。64ビットのアドレッシング・モードでは、汎用レジスタR2+1のビット位置0〜63の内容が、第2オペランド内のバイト数を指定する64ビットの符号なし2進整数を形成し、更新された値は汎用レジスタR2+1の内容に取って代わる。24ビットまたは31ビットのアドレッシング・モードでは、汎用レジスタR2およびR2+1のビット位置0〜31の内容は常に変わらない。アクセス・レジスタ・モードでは、アクセス・レジスタ1およびR2は、それぞれ、パラメータ・ブロックおよび第2オペランドを含むアドレス・スペースを指定する。この結果は、処理が第2オペランドの左端から始まって、ブロックごとに右に進む場合のように得られる。第2オペランド内のすべてのソース・バイトが処理されたとき(通常完了という)または第2オペランドの長さより小さく、CPUが決定したブロック数が処理されたとき(部分完了という)に、動作が終了する。CPUが決定したブロック数はモデルに依存し、命令が実行されるたびに異なる数になる可能性がある。CPUが決定したブロック数は、通常、非ゼロである。特定の異常な状況では、この数がゼロになる可能性があり、進行なしで条件コード3が設定される可能性がある。しかし、CPUは、この進行なしのケースの無限再発を防止する。チェーニング値フィールドが第2オペランドのいずれかの部分にオーバラップする場合、チェーニング値フィールド内の結果は予測不能である。中間メッセージ・ダイジェスト計算の場合、汎用レジスタR2+1内に指定された第2オペランド内のバイト数が処理されたときに通常完了が行われる。最終メッセージ・ダイジェスト計算の場合、汎用レジスタR2+1内に指定された第2オペランド内のすべてのバイトが処理された後、埋め込み操作が行われ、次に通常完了が行われる。通常完了により動作が終了すると、条件コード0が設定され、R2+1内の結果値はゼロになる。部分完了により動作が終了すると、条件コード3が設定され、R2+1内の結果値は非ゼロになる。第2オペランド長が最初にゼロである場合、第2オペランドはアクセスされず、汎用レジスタR2およびR2+1は変更されず、条件コード0が設定される。中間メッセージ・ダイジェスト計算の場合、パラメータ・ブロックはアクセスされない。しかし、最終メッセージ・ダイジェスト計算の場合、空ブロック(L=0)のケースでは、埋め込み操作が行われ、その結果はパラメータ・ブロックに保管される。その他のCPUおよびチャネル・プログラムによって観察されるように、パラメータ・ブロックおよびストレージ・オペランドに対する参照は多重アクセス参照になる可能性があり、これらの記憶位置へのアクセスは必ずしもブロックコンカレントではなく、これらのアクセスまたは参照のシーケンスは未定義である。第2オペランドのうち、命令の単一実行で処理されるより大きい部分について、アクセス例外が報告される可能性があるが、第2オペランドの長さを超える位置または処理されている現在の位置を4Kバイトより大きく超える位置については、アクセス例外は認識されない。
128ビットの状況ワードはパラメータ・ブロックに保管される。このフィールドのビット0〜127は、それぞれ、中間メッセージ・ダイジェスト計算命令の機能コード0〜127に対応する。1つのビットが1である場合、対応する機能がインストールされ、そうではない場合、その機能はインストールされない。条件コード0はKIMD照会機能の実行が完了したときに設定され、条件コード3はこの機能には適用可能ではない。
20バイトの中間メッセージ・ダイジェストは、パラメータ・ブロック内の20バイトのチェーニング値とともにSHA−1ブロック・ダイジェスト・アルゴリズムを使用して、オペランド2内の64バイトのメッセージ・ブロックについて生成される。生成された中間メッセージ・ダイジェストは、出力チェーニング値(OCV)とも呼ばれ、パラメータ・ブロックのチェーニング値フィールドに保管される。
32バイトの中間メッセージ・ダイジェストは、パラメータ・ブロック内の32バイトのチェーニング値とともにSHA−256ブロック・ダイジェスト・アルゴリズムを使用して、オペランド2内の64バイトのメッセージ・ブロックについて生成される。生成された中間メッセージ・ダイジェストは、出力チェーニング値(OCV)とも呼ばれ、パラメータ・ブロックのチェーニング値フィールドに保管される。
64バイトの中間メッセージ・ダイジェストは、パラメータ・ブロック内の64バイトのチェーニング値とともにSHA−512ブロック・ダイジェスト・アルゴリズムを使用して、オペランド2内の128バイトのメッセージ・ブロックについて生成される。生成された中間メッセージ・ダイジェストは、出力チェーニング値(OCV)とも呼ばれ、パラメータ・ブロックのチェーニング値フィールドに保管される。
128ビットの状況ワードはパラメータ・ブロックに保管される。このフィールドのビット0〜127は、それぞれ、最終メッセージ・ダイジェスト計算命令の機能コード0〜127に対応する。1つのビットが1である場合、対応する機能がインストールされ、そうではない場合、その機能はインストールされない。条件コード0はKLMD照会機能の実行が完了したときに設定され、条件コード3はこの機能には適用可能ではない。
オペランド2内のメッセージ(M)に関するメッセージ・ダイジェストは、パラメータ・ブロック内のチェーニング値およびメッセージ・ビット長情報とともにSHA−1アルゴリズムを使用して生成される。オペランド2内のメッセージの長さが64バイトに等しいかまたはそれより大きい場合、中間メッセージ・ダイジェストは、パラメータ・ブロック内の20バイトのチェーニング値とともにSHA−1ブロック・ダイジェスト・アルゴリズムを使用して、64バイトの各メッセージ・ブロックについて生成され、生成された中間メッセージ・ダイジェストは、出力チェーニング値(OCV)とも呼ばれ、パラメータ・ブロックのチェーニング値フィールドに保管される。この動作は、残りのメッセージが64バイト未満になるまで繰り返される。メッセージまたは残りのメッセージの長さが0バイトである場合、動作は実行される。メッセージまたは残りのメッセージの長さが1バイト以上で55バイト以下である場合、動作は実行され、その長さが56バイト以上で63バイト以下である場合、動作は実行される。メッセージ・ダイジェストは、出力チェーニング値(OCV)とも呼ばれ、パラメータ・ブロックのチェーニング値フィールドに保管される。
オペランド2内のメッセージ(M)に関するメッセージ・ダイジェストは、パラメータ・ブロック内のチェーニング値およびメッセージ・ビット長情報とともにSHA−256アルゴリズムを使用して生成される。オペランド2内のメッセージが64バイトに等しいかまたはそれより大きい場合、中間メッセージ・ダイジェストは、パラメータ・ブロック内の32バイトのチェーニング値とともにSHA−256ブロック・ダイジェスト・アルゴリズムを使用して、64バイトの各メッセージ・ブロックについて生成され、生成された中間メッセージ・ダイジェストは、出力チェーニング値(OCV)とも呼ばれ、パラメータ・ブロックのチェーニング値フィールドに保管される。この動作は、残りのメッセージが64バイト未満になるまで繰り返される。メッセージまたは残りのメッセージの長さが0バイトである場合、動作は実行される。メッセージまたは残りのメッセージの長さが1バイト以上で55バイト以下である場合、動作は実行され、その長さが56バイト以上で63バイト以下である場合、動作は実行される。メッセージ・ダイジェストは、出力チェーニング値(OCV)とも呼ばれ、パラメータ・ブロックのチェーニング値フィールドに保管される。
オペランド2内のメッセージ(M)に関するメッセージ・ダイジェストは、パラメータ・ブロック内のチェーニング値およびメッセージ・ビット長情報とともにSHA−512アルゴリズムを使用して生成される。オペランド2内のメッセージが128バイトに等しいかまたはそれより大きい場合、中間メッセージ・ダイジェストは、パラメータ・ブロック内の64バイトのチェーニング値とともにSHA−512ブロック・ダイジェスト・アルゴリズムを使用して、128バイトの各メッセージ・ブロックについて生成され、生成された中間メッセージ・ダイジェストは、出力チェーニング値(OCV)とも呼ばれ、パラメータ・ブロックのチェーニング値フィールドに保管される。この動作は、残りのメッセージが128バイト未満になるまで繰り返される。メッセージまたは残りのメッセージの長さが0バイトである場合、動作は実行される。メッセージまたは残りのメッセージの長さが1バイト以上で111バイト以下である場合、動作は実行され、その長さが112バイト以上で127バイト以下である場合、動作は実行される。メッセージ・ダイジェストは、出力チェーニング値(OCV)とも呼ばれ、パラメータ・ブロックのチェーニング値フィールドに保管される。
コンピュータ・システムによって実行されると、汎用レジスタ0内の機能コードによって指定された機能が実行される。この命令のビット16〜23およびR1フィールドは無視される。汎用レジスタ0のビット位置57〜63は機能コードを含む。その他の機能コードはいずれも割り当てられていない。汎用レジスタ0のビット56はゼロでなければならず、そうではない場合、指定例外が認識される。汎用レジスタ0の他のすべてのビットは無視される。汎用レジスタ1は記憶装置内のパラメータ・ブロックの最左端バイトの論理アドレスを含む。24ビットのアドレッシング・モードでは、汎用レジスタ1のビット位置40〜63の内容がアドレスを構成し、ビット位置0〜39の内容は無視される。31ビットのアドレッシング・モードでは、汎用レジスタ1のビット位置33〜63の内容がアドレスを構成し、ビット位置0〜32の内容は無視される。64ビットのアドレッシング・モードでは、汎用レジスタ1のビット位置0〜63の内容がアドレスを構成する。照会機能は、その他の機能の可用性を示す手段を提供する。汎用レジスタR2およびR2+1の内容は無視される。その他のすべての機能の場合、第2オペランドは、パラメータ・ブロック内の初期チェーニング値を使用して機能コードによって指定された通りに処理され、その結果はチェーニング値に取って代わる。動作はパラメータ・ブロック内の暗号鍵も使用する。第2オペランド位置の終わりに達したときまたはCPUが決定したバイト数が処理されたときのうち、どちらか先に発生するまで、動作が進行する。その結果は条件コードに示される。R2フィールドは汎用レジスタの奇偶対を指定するものであって、偶数番号レジスタを指定しなければならず、そうではない場合、指定例外が認識される。第2オペランドの最左端バイトの位置はR2汎用レジスタの内容によって指定される。第2オペランド位置のバイト数は汎用レジスタR2+1に指定される。動作の一部として、汎用レジスタR2内のアドレスは第2オペランドから処理されたバイト数だけ増分され、汎用レジスタR2+1内の長さは同じ数だけ減分される。アドレスおよび長さの形成および更新はアドレッシング・モードに依存する。24ビットのアドレッシング・モードでは、汎用レジスタR2のビット位置40〜63の内容が第2オペランドのアドレスを構成し、ビット位置0〜39の内容は無視され、更新されたアドレスのビット40〜63は汎用レジスタR2内の対応するビットに取って代わり、更新されたアドレスのビット位置40からの繰り上がりは無視され、汎用レジスタR2のビット位置32〜39の内容はゼロに設定される。31ビットのアドレッシング・モードでは、汎用レジスタR2のビット位置33〜63の内容が第2オペランドのアドレスを構成し、ビット位置0〜32の内容は無視され、更新されたアドレスのビット33〜63は汎用レジスタR2内の対応するビットに取って代わり、更新されたアドレスのビット位置33からの繰り上がりは無視され、汎用レジスタR2のビット位置32の内容はゼロに設定される。64ビットのアドレッシング・モードでは、汎用レジスタR2のビット位置0〜63の内容が第2オペランドのアドレスを構成し、更新されたアドレスのビット0〜63は汎用レジスタR2の内容に取って代わり、ビット位置0からの繰り上がりは無視される。24ビットと31ビットのどちらのアドレッシング・モードでも、汎用レジスタR2+1のビット位置32〜63の内容が、第2オペランド内のバイト数を指定する32ビットの符号なし2進整数を形成し、更新された値は汎用レジスタR2+1のビット位置32〜63の内容に取って代わる。64ビットのアドレッシング・モードでは、汎用レジスタR2+1のビット位置0〜63の内容が、第2オペランド内のバイト数を指定する64ビットの符号なし2進整数を形成し、更新された値は汎用レジスタR2+1の内容に取って代わる。24ビットまたは31ビットのアドレッシング・モードでは、汎用レジスタR2およびR2+1のビット位置0〜31の内容は常に変わらない。アクセス・レジスタ・モードでは、アクセス・レジスタ1およびR2は、それぞれ、パラメータ・ブロックおよび第2オペランドを含むアドレス・スペースを指定する。この結果は、処理が第2オペランドの左端から始まって、ブロックごとに右に進む場合のように得られる。第2オペランド内のすべてのソース・バイトが処理されたとき(通常完了という)または第2オペランドの長さより小さく、CPUが決定したブロック数が処理されたとき(部分完了という)に、動作が終了する。CPUが決定したブロック数はモデルに依存し、命令が実行されるたびに異なる数になる可能性がある。CPUが決定したブロック数は、通常、非ゼロである。特定の異常な状況では、この数がゼロになる可能性があり、進行なしで条件コード3が設定される可能性がある。しかし、CPUは、この進行なしのケースの無限再発を防止する。チェーニング値フィールドが第2オペランドのいずれかの部分にオーバラップする場合、チェーニング値フィールド内の結果は予測不能である。汎用レジスタR2+1内に指定された第2オペランド内のバイト数が処理されたときに通常完了が行われる。通常完了により動作が終了すると、条件コード0が設定され、R2+1内の結果値はゼロになる。部分完了により動作が終了すると、条件コード3が設定され、R2+1内の結果値は非ゼロになる。第2オペランド長が最初にゼロである場合、第2オペランドおよびパラメータ・ブロックはアクセスされず、汎用レジスタR2およびR2+1は変更されず、条件コード0が設定される。その他のCPUおよびチャネル・プログラムによって観察されるように、パラメータ・ブロックおよびストレージ・オペランドに対する参照は多重アクセス参照になる可能性があり、これらの記憶位置へのアクセスは必ずしもブロックコンカレントではなく、これらのアクセスまたは参照のシーケンスは未定義である。第2オペランドのうち、命令の単一実行で処理されるより大きい部分について、アクセス例外が報告される可能性があるが、第2オペランドの長さを超える位置または処理されている現在の位置を4Kバイトより大きく超える位置については、アクセス例外は認識されない。
128ビットの状況ワードはパラメータ・ブロックに保管される。このフィールドのビット0〜127は、それぞれ、KMAC命令の機能コード0〜127に対応する。1つのビットが1である場合、対応する機能がインストールされ、そうではない場合、その機能はインストールされない。条件コード0はKMAC照会機能の実行が完了したときに設定され、条件コード3はこの機能には適用可能ではない。
オペランド2内の8バイトのメッセージ・ブロック(M1、M2、...、Mn)に関するメッセージ認証コードは、64ビットの暗号鍵とパラメータ・ブロック内の64ビットのチェーニング値とともにDEAアルゴリズムを使用して計算される。メッセージ認証コードは、出力チェーニング値(OCV)とも呼ばれ、パラメータ・ブロックのチェーニング値フィールドに保管される。
オペランド2内の8バイトのメッセージ・ブロック(M1、M2、...、Mn)に関するメッセージ認証コードは、2つの64ビットの暗号鍵とパラメータ・ブロック内の64ビットのチェーニング値とともにTDEAアルゴリズムを使用して計算される。メッセージ認証コードは、出力チェーニング値(OCV)とも呼ばれ、パラメータ・ブロックのチェーニング値フィールドに保管される。
オペランド2内の8バイトのメッセージ・ブロック(M1、M2、...、Mn)に関するメッセージ認証コードは、3つの64ビットの暗号鍵とパラメータ・ブロック内の64ビットのチェーニング値とともにTDEAアルゴリズムを使用して計算される。メッセージ認証コードは、出力チェーニング値(OCV)とも呼ばれ、パラメータ・ブロックのチェーニング値フィールドに保管される。
コンピュータ・システムによって実行されると、汎用レジスタ1に指定されたロックが取得された後、汎用レジスタ0内の機能コードによって指定された動作が実行され、次にロックが解除される。しかし、その他のCPUによって観察されるように、(1)使用可能なパラメータ・リスト内のフィールドを含むストレージ・オペランドは、取り出すことができ、ロックが取得される前に、テスト済み位置におけるストアが可能であれば、ストアタイプ・アクセス例外についてテストすることができ、(2)ロックが解除された後、オペランドはパラメータ・リストに保管することができる。ロックが取得される前にパラメータ・リスト内にないオペランドが取り出された場合、それは、ロックが取得された後にもう一度取り出される。機能コードは、比較ロード(compare and load)、比較交換(compare and swap)、二重比較交換(double compare and swap)、比較交換保管(compare andswap and store)、比較交換二重保管(compare and swap and doublestore)、または比較交換三重保管(compare and swap and triple store)という6つの動作のいずれかを指定することができる。汎用レジスタ0内のテスト・ビットは、1であるときに、ロックが取得されず、6つの動作のいずれも実行されないが、その代わりに、機能コードの妥当性がテストされることを指定する。これは、追加の動作に関する追加の機能コードが将来、割り当てられる場合に有用になる。この定義は、別の表明がある場合を除き、テスト・ビットがゼロである場合のように作成される。比較ロードが指定された場合、第1オペランド比較値と第2オペランドが比較される。これらが等しい場合、第4オペランドが第3オペランド位置に置かれる。比較が不一致(inequality)を示す場合、第2オペランドは、新しい第1オペランド比較値として第1オペランド比較値位置に置かれる。比較交換が指定された場合、第1オペランド比較値と第2オペランドが比較される。これらが等しい場合、第1オペランド置換値が第2オペランド位置に保管される。比較が不一致を示す場合、第2オペランドは、新しい第1オペランド比較値として第1オペランド比較値位置に置かれる。二重比較交換が指定された場合、第1オペランド比較値と第2オペランドが比較される。これらが等しい場合、第3オペランド比較値と第4オペランドが比較される。両方の比較が一致(equality)を示す場合、第1オペランド置換値および第3オペランド置換値が、それぞれ、第2オペランド位置および第4オペランド位置に保管される。第1の比較が不一致を示す場合、第2オペランドは、新しい第1オペランド比較値として第1オペランド比較値位置に置かれる。第1の比較が一致を示すが、第2の比較が一致を示さない場合、第4オペランドは、新しい第3オペランド比較値として第3オペランド比較値位置に置かれる。比較交換保管、比較交換二重保管、または比較交換三重保管が指定された場合、第1オペランド比較値と第2オペランドが比較される。これらが等しい場合、第1オペランド置換値が第2オペランド位置に保管され、第3オペランドが第4オペランド位置に保管される。次に、この動作が二重保管または三重保管動作である場合、第5オペランドが第6オペランド位置に保管され、この動作が三重保管動作である場合、第7オペランドが第8オペランド位置に保管される。第1オペランド比較が不一致を示す場合、第2オペランドは、新しい第1オペランド比較値として第1オペランド比較値位置に置かれる。6つの動作のいずれの後でも、1つまたは複数の比較の結果は条件コードに示される。機能コード(FC)は汎用レジスタ0のビット位置56〜63にある。機能コードは、実行すべき動作だけでなく、オペランドの長さ、ならびに、まとめて単純に第1および第3オペランドと呼ばれる第1オペランド比較値および第1オペランド置換値と第3オペランドまたは第3オペランド比較値および第3オペランド置換値が汎用レジスタまたはパラメータ・リスト内にあるかどうかも指定する。機能コードのパターンは以下の通りである。・4の倍数(0を含む)である機能コードは、汎用レジスタのビット位置32〜63内の第1および第3オペランドで32ビットの長さを指定する。・4の倍数より1大きい機能コードは、パラメータ・リスト内の第1および第3オペランドで64ビットの長さを指定する。・4の倍数より2大きい機能コードは、汎用レジスタのビット位置0〜63内の第1および第3オペランドで64ビットの長さを指定する。・4の倍数より3大きい機能コードは、パラメータ・リスト内の第1および第3オペランドで128ビットの長さを指定する。
第1オペランド比較値は第2オペランドと比較される。第1オペランド比較値が第2オペランドと等しい場合、第3オペランドが第4オペランドで置き換えられ、条件コード0が設定される。第1オペランド比較値が第2オペランドと等しくない場合、第1オペランド比較値が第2オペランドで置き換えられ、条件コード1が設定される。
第1オペランド比較値は第2オペランドと比較される。第1オペランド比較値が第2オペランドと等しい場合、第1オペランド置換値が第2オペランド位置に保管され、条件コード0が設定される。第1オペランド比較値が第2オペランドと等しくない場合、第1オペランド比較値が第2オペランドで置き換えられ、条件コード1が設定される。
第1オペランド比較値は第2オペランドと比較される。第1オペランド比較値が第2オペランドと等しい場合、第3オペランド比較値が第4オペランドと比較される。第3オペランド比較値が第4オペランドと等しい場合(第1オペランド比較値が第2オペランドと等しいと判明した後)、第1オペランド置換値が第2オペランド位置に保管され、第3オペランド置換値が第4オペランド位置に保管され、条件コード0が設定される。第1オペランド比較値が第2オペランドと等しくない場合、第1オペランド比較値が第2オペランドで置き換えられ、条件コード1が設定される。第3オペランド比較値が第4オペランドと等しくない場合(第1オペランド比較値が第2オペランドと等しいと判明した後)、第3オペランド比較値が第4オペランドで置き換えられ、条件コード2が設定される。
第1オペランド比較値は第2オペランドと比較される。第1オペランド比較値が第2オペランドと等しい場合、第1オペランド位置である第3オペランドが第4オペランド位置に保管され、条件コード0が設定される。第1オペランド比較値が第2オペランドと等しくない場合、第1オペランド比較値が第2オペランドで置き換えられ、条件コード1が設定される。
第1オペランド比較値は第2オペランドと比較される。第1オペランド比較値が第2オペランドと等しい場合、第1オペランド置換値が第2オペランド位置に保管され、第3オペランドが第4オペランド位置に保管され、第5オペランドが第6オペランド位置に保管され、条件コード0が設定される。第1オペランド比較値が第2オペランドと等しくない場合、第1オペランド比較値が第2オペランドで置き換えられ、条件コード1が設定される。
第1オペランド比較値は第2オペランドと比較される。第1オペランド比較値が第2オペランドと等しい場合、第1オペランド置換値が第2オペランド位置に保管され、第3オペランドが第4オペランド位置に保管され、第5オペランドが第6オペランド位置に保管され、第7オペランドが第8オペランド位置に保管され、条件コード0が設定される。第1オペランド比較値が第2オペランドと等しくない場合、第1オペランド比較値が第2オペランドで置き換えられ、条件コード1が設定される。
ロックは、動作の始めに取得され、動作の終わりに解除される。取得されたロックは、すでに述べた通り、その論理アドレスが汎用レジスタ1に指定されるプログラム・ロック・トークン(PLT)によって表される。PLTは、PLT論理アドレスのモデル依存変換によって生成された値である。モデル次第で、PLTは、PLT論理アドレスから直接導出される場合もあれば、DATがオンである場合、DATによるPLT論理アドレスの変換の結果として得られる実アドレスから導出される場合もある。DATが使用される場合、アクセス・レジスタ変換(ART)はアクセス・レジスタ・モードでDATより先行する。PLTは、その構成内でモデル依存数のロックのうちの1つを選択する。異なるCPUによって実行されているプログラムは、同じであるPLT論理アドレスのうち、異なるCPUによって同じ実アドレスに変換できるPLT論理アドレスを指定することによってのみ、同じロックを指定することを確信することができる。あるモデルがPLTを形成するときにARTおよびDATを使用する場合もあれば、使用しない場合もあるので、ARTおよびDAT中に遭遇できるアクセス例外条件は、例外として認識される場合もあれば、認識されない場合もある。PLTによって指定された位置のアクセスは行われないが、その位置についてアドレッシング例外が認識される可能性がある。保護例外は、PLT論理アドレスの処理中にいかなる理由でも認識されない。CPUは一度に1つのロックを保持することができる。ロック演算実行がこのCPUによって実行され、他のCPUによるロック演算実行命令の実行のために他のCPUによってすでに保持されているロックを使用する場合、このCPUによる実行は、ロックがもはや保持されなくなるまで遅延される。過剰な遅延は、マシンの誤動作のみによって引き起こされる可能性があり、マシン・チェック条件の1つである。同じロックに関する複数の要求が満足される順序は未定義である。ロックを保持している間のCPUの回復不能障害の結果として、マシン・チェック、チェック停止状態への移行、またはシステム・チェック停止が発生する可能性がある。マシン・チェックは、すべてのオペランドが損傷していない場合はバックアップを処理し、レジスタ・オペランドが損傷している場合は損傷を処理する。その結果がマシン・チェックまたはチェック停止状態である場合、いかなるストレージ・オペランドも変更されていないかまたは変更予定のすべてのストレージ・オペランドが正しく変更されており、いずれの場合も、ロックは解除されている。ストレージ・オペランドがそれぞれの正しい元の状態またはそれぞれの正しい最終状態にない場合、その結果はシステム・チェック停止になる。
コンピュータ・システムによって実行されると、汎用レジスタ0内の機能コードによって指定された動作が実行され、その結果を示すために条件コードが設定される。例外条件がまったくない場合、条件コード0が設定される。IEEE非トラップ例外が認識された場合、条件コード1が設定される。代替アクションを伴うIEEEトラップ例外が認識された場合、条件コード2が設定される。32ビットの戻りコードが汎用レジスタ1のビット32〜63に置かれ、汎用レジスタ1のビット0〜31は変わらない。浮動小数点演算実行(PFPO)命令は、制御レジスタ0のビット45であるAFPレジスタ制御ビットの対象になる。PFPOが正常に実行されるために、AFPレジスタ制御ビットは1でなければならず、そうではない場合、AFPレジスタ・データ例外であるDXC1が認識される。汎用レジスタ0のビット32はテスト・ビットである。ビット32がゼロである場合、汎用レジスタ0のビット33〜63によって指定された機能が実行され、ビット33〜63内の各フィールドは有効でなければならず、その組み合わせは有効かつインストール済み機能でなければならず、そうではない場合、指定例外が認識される。ビット32が1である場合、ビット33〜63によって指定された機能は実行されないが、その代わりに、これらのビットが有効かつインストール済み機能を指定するかどうかを示すために条件コードが設定され、条件コードは、その機能が有効かつインストール済みである場合は0に設定され、その機能が無効であるかまたはインストールされていない場合は3に設定される。これは、追加の機能が将来、割り当てられる場合に有用になる。この定義は、別の表明がある場合を除き、テスト・ビットがゼロである場合のように作成される。
汎用レジスタ0のビット57は代替例外アクション制御である。この制御の設定は、IEEEオーバフローおよびIEEEアンダフロー・トラップ例外について行われるアクションに影響を及ぼす。代替例外アクション制御がゼロである場合、IEEEオーバフローおよびIEEEアンダフロー・トラップ例外は通常の方法で報告される。すなわち、適切なデータ例外コード(DXC)が浮動小数点制御レジスタのバイト2に置かれ、動作が完了し、データ例外に関するプログラム割り込みが行われる。(プログラム割り込みの一部として、DXCが位置147に保管される。)これは、通常アクション付きのIEEEトラップ例外と呼ばれる。代替例外アクション制御が1である場合、DXCは浮動小数点制御レジスタのバイト2に置かれ、動作が完了し、条件コード2が設定され、プログラム実行は次の順次命令を続行する。(プログラム割り込みはまったく行われず、DXCは位置147に保管されない。)これは、代替アクション付きのIEEEトラップ例外と呼ばれる。
汎用レジスタ0のビット58はHFPオーバフロー制御である。HFPオーバフロー制御がゼロである場合、HFPオーバフロー条件は、IEEE無効動作例外として報告され、IEEE無効動作マスクの対象になる。HFPオーバフロー制御が1である場合、HFPオーバフロー条件は、IEEEオーバフロー例外として報告され、IEEEオーバフロー・マスクの対象になる。HFPオーバフロー制御はHFPターゲットについてのみ定義され、HFPターゲット以外のものが指定された場合、このビットはゼロでなければならない。
HFPターゲットの場合、汎用レジスタ0のビット59はHFP代替アンダフロー制御である。HFPアンダフロー制御がゼロである場合、HFPアンダフローにより、結果はソースと同じ符号が付いた真のゼロに設定され、アンダフローは報告されない。(この場合の結果は不正確になり、不正確抑制制御の対象になる。)HFPアンダフロー制御が1である場合、この条件は、IEEEアンダフロー例外として報告され、IEEEアンダフロー・マスクの対象になる。汎用レジスタ0のビット59はHFPおよびDFPターゲットについてのみ定義され、BFPターゲットが指定された場合、このビットはゼロでなければならない。
DFPターゲットの場合、汎用レジスタ0のビット59はDFP優先量制御(DPQC)である。DFPターゲットによる基数変換の場合、引き渡された値が不正確である場合、最小量を有するコホート・メンバ(cohort member)が選択され、引き渡された値が正確である場合、選択はDFP優先量制御(DPQC)である汎用レジスタ0のビット59の値に依存する。引き渡された値が正確であり、DPQCビットがゼロである場合、最大量を有するコホート・メンバが選択される。引き渡された値が正確であり、DPQCビットが1である場合、優先量は1であり、1に最も近い量を有するコホート・メンバが選択される。
どの条件コードが設定されるかにかかわらず、テスト・ビットが1であるかどうかに関係なく、32ビットの戻りコードが汎用レジスタ1のビット32〜63に置かれ、汎用レジスタ1のビット0〜31は変わらない。IEEEトラップ例外が完了するためにプログラム割り込みが行われる場合、戻りコードも汎用レジスタ1に置かれ、IEEEトラップ例外が抑制されるためにプログラム割り込みが行われる場合、汎用レジスタ1は更新されない。したがって、汎用レジスタ1は、IEEEオーバフロー、IEEEアンダフロー、およびIEEE不正確トラップ例外に関するプログラム割り込みのときに更新されるが、IEEE無効動作トラップ例外に関するプログラム割り込みのときに更新されない。別の指定がある場合を除き、戻りコードはゼロという値である。
PFPO浮動小数点基数変換の場合、結果の符号はソースの符号と同じである。これに対する唯一の例外は、ソースがNaNであり、ターゲットがHFPである場合であり、この場合、結果はターゲットHFPフォーマットの最大表現可能数(Hmax)であり、符号はプラスに設定される。
DFPターゲットによる基数変換の場合、引き渡された値が不正確である場合、最小量を有するコホート・メンバが選択され、引き渡された値が正確である場合、選択はDFP優先量制御(DPQC)である汎用レジスタ0のビット59の値に依存する。引き渡された値が正確であり、DPQCビットがゼロである場合、最大量を有するコホート・メンバが選択される。引き渡された値が正確であり、DPQCビットが1である場合、優先量は1であり、1に最も近い量を有するコホート・メンバが選択される。
DFPとBFPとの間で変換する場合、NaNの符号は常に保存され、ペイロードの値は可能であれば保存される。ソース・ペイロードの値がターゲット・ペイロードの最大値を超える場合、ターゲットはデフォルトQNaNに設定されるが、符号はソースと同じである。トラップが使用不可になっている場合、SNaNは対応するQNaNに変換され、ペイロードは可能であれば保存され、すなわち、SNaN(x)はQNaN(x)に変換され、ここでxはペイロードの値である。DFPの場合、QNaN(0)およびSNaN(0)はいずれも表すことができるが、BFPでは、QNaN(0)に関する表現はあるが、SNaN(0)に関する表現はない。
PFPO浮動数点基数変換演算の場合、IEEEオーバフロー・トラップ・アクションまたはIEEEアンダフロー・トラップ・アクションが行われると、以下のステップを使用して、スケーリング済みの値が計算される。
Ψ=bΩ
z=g÷Ψ
ここで、Ωは符号付きスケーリング指数であり、bはターゲット基数(2、10、または16)であり、Ψはスケール係数(scale factor)であり、gは精度丸め値(precision-roundedvalue)であり、zはスケーリング済みの値である。符号付きスケーリング指数(Ω)は、スケーリング済みの結果(z)の値の大きさを1<|z|<bという範囲に入れるように選択される。符号付きスケーリング指数(Ω)の値は、32ビットの符号付き2進整数として扱われ、汎用レジスタ1のビット32〜63に置かれ、汎用レジスタ1のビット0〜31は変わらない。スケーリング済みの値は、引き渡された値として使用され、結果位置に置かれる。DFPターゲットの場合、スケーリング済みの優先量に最も近い量を有するコホート・メンバが選択される。(しかし、現在サポートされている変換のすべてについて、結果が常に不正確になり、したがって、最小量を有するコホート・メンバが選択されることに留意されたい。)BFPターゲットの場合、冗長表現はまったく存在せず、1つのコホート内には1つのメンバのみが存在する。HFPターゲットの場合、結果は正規化される。
非正規HFP値は入力時に受け入れられるが、すべてのHFP結果は正規化される。HFP結果が最小(大きさの点で)表現可能正規化数より小さくなる場合、HFPアンダフロー条件が存在する。
PFPO浮動数点基数変換演算のHFPターゲットの場合、オーバフローおよびアンダフロー条件の処理は、それぞれ、HFPオーバフロー制御およびHFPアンダフロー制御によって制御される。
コンピュータ・システムによって実行されると、汎用レジスタ0内の機能コードによって指定されたタイミング機構機能が実行される。条件コードは、機能の結果を示すように設定される。汎用レジスタ1は記憶装置内のパラメータ・ブロックのアドレスを含む。PTFF照会機能はパラメータ・ブロック内に情報を入れ、PTFF制御機能はパラメータ・ブロックから入手された情報を使用する。その他のCPUおよびチャネル・プログラムによって観察されるように、パラメータ・ブロックに対する参照は多重アクセス参照になる可能性があり、これらの記憶位置へのアクセスは必ずしもブロックコンカレントではなく、これらのアクセスまたは参照のシーケンスは未定義である。汎用レジスタ0のビット位置57〜63は機能コードを含む。汎用レジスタ0のビット56はゼロでなければならず、そうではない場合、指定例外が認識される。汎用レジスタ0の他のすべてのビットは無視される。汎用レジスタ1は記憶装置内のパラメータ・ブロックの最左端バイトの論理アドレスを含む。24ビットのアドレッシング・モードでは、汎用レジスタ1のビット位置40〜63の内容がアドレスを構成し、ビット位置0〜39の内容は無視される。31ビットのアドレッシング・モードでは、汎用レジスタ1のビット位置33〜63の内容がアドレスを構成し、ビット位置0〜32の内容は無視される。64ビットのアドレッシング・モードでは、汎用レジスタ1のビット位置0〜63の内容がアドレスを構成する。PTFF−QAF(使用可能機能照会)機能は、その他の機能の可用性を示す手段を提供する。PTFF−QAF機能は、基本マシン・レベルにおいて監視プログラム状態で実行されているプログラムについてこの機能がインストールされるかどうかを示す。
この機能に使用されるパラメータ・ブロックは以下のフォーマットを有し、128ビットのフィールドがパラメータ・ブロックに保管される。このフィールドのビット0〜127は、それぞれ、PTFF命令の機能コード0〜127に対応する。1つのビットが1である場合、対応する機能がインストールされ、そうではない場合、その機能はインストールされない。pb.w1のビット0〜3は、現在、照会機能に割り当てられている機能コード0〜3を表すので、1に設定される。pb.w1のビット4〜31は追加の照会機能のために予約される。pb.w3のビット0〜3は、現在、制御機能に割り当てられている機能コード64〜67を表すので、1に設定される。pb.w3のビット4〜31は追加の制御機能のために予約される。パラメータ・ブロック・ワードpb.w2およびpb.w4は将来の拡張のために予約される。
返される64ビットの物理クロック値(pb.Tu)は、最新のTODオフセット更新イベントにおける物理クロックの値である。返される64ビットのTODオフセット値(pb.d)はTODオフセット(d)の値を示す。これは、Tb(基本マシンTODクロック)を入手するためにTr(物理クロック)に加えられる現行値であり、すなわち、Tb=Tr+pb.dである。返される64ビットの論理TODオフセット値(pb.dl)は、Tc(CPU実行の現行レベルに関する論理TODクロック)を入手するためにTr(物理クロック)に加えられる現行値を示し、すなわち、Tc=Tr+pb.dlである。したがって、基本マシン・レベルで実行されると、pb.dl=pb.d=dであり、ロジカル・パーティション・レベルで実行されると、Tp−Tbエポック差(Dp)が加えられ、その結果、pb.dl=d+Dpになり、仮想計算機レベルで実行されると、Tv−Tpエポック差(Dv)も加えられ、その結果、pb.dl=d+Dp+Dvになる。ビット位置0からの繰り上がりがある場合、これらの式のそれぞれに関する加算の際には無視される。返される64ビットのTODエポック差値(pb.ed)は、CPU実行の現行レベルに関するTODエポック差である。基本マシン・レベルで実行されると、この値はゼロになり、ロジカル・パーティション・レベルで実行されると、この値はTp−Tbエポック差(Dp)になり、仮想計算機レベルで実行されると、この値はTv−Tpエポック差(Dv)になる。
返される64ビットの物理クロック値(pb.Tu)は、最新のTODオフセット更新イベントにおける物理クロックの値である。残りのフィールドは、旧エピソードおよび新エピソード・レジスタの値である。
返される64ビットの物理クロック値(pb.Tr)は、物理クロックの現行値である。物理クロックによって提供されない最右端のビット位置についてゼロが保管される。クロックが実行されている場合、同じかまたは異なるCPU上でPTFF−QPTを2回実行すると必ずしもクロックの異なる値を返すわけではない。
パラメータ・ブロックからの64ビット値(pb.a)は、符号なし2進値として扱われ、次のエピソードのベース・オフセットに加えられる。ビット位置0からの繰り上がりがある場合、この加算の際には無視される。その効果は即座ではないが、次のTODオフセット更新イベントと一致するようにスケジューリングされる。次のエピソードがすでにスケジューリングされているが、まだアクティブになっていない場合、pb.aとnew.bの合計はnew.bに取って代わり、その他のアクションはまったく行われない。次のエピソードがスケジューリングされていない(すなわち、新エピソード・レジスタが現行エピソードである)場合、新エピソード・レジスタは旧エピソード・レジスタに保存され、新エピソードがスケジューリングされる(したがって、旧エピソード・レジスタを現行エピソードにする)。新エピソード開始時間(new.s)は、物理クロックが次のTODオフセット更新イベントのときに有することになる値に設定され、新エピソード・ベース・オフセット(new.b)は、pb.aと、TODオフセットが同じ瞬間に持っていたと思われる値であって、現在のステアリング・パラメータを使用して計算された値との合計に設定される。新エピソードがスケジューリングされ、新エピソードの細密ステアリング(finesteering)および概略ステアリング(gross-steering)・レートが現行値と同じである場合、ステアリング・レート(steering rate)はこの機能によって変更されない。TODオフセット調整機能の実行は、構成内のすべてのCPUによって観察されるようにTODオフセット・レジスタの内容全体が同時にかつ一斉に更新されるように見えるように、インターロックされる。しかし、構成内のCPUによる論理TODクロック(基本マシンTODクロック、ロジカル・パーティションTODクロック、および仮想計算機TODクロック)へのアクセスは人工的に遅延されず、したがって、大きい符号なし調整値を加えることは、否定的変化という効果がある可能性があり、論理TODクロックが後に進むように見えるようになる可能性がある。
パラメータ・ブロックからの64ビット値(pb.d)はTODオフセットに取って代わる。基本マシン・レベルで発行されると、その効果は即座ではないが、次のTODオフセット更新イベントと一致するようにスケジューリングされる。次のエピソードがすでにスケジューリングされているが、まだアクティブになっていない場合、pb.dはnew.bに取って代わり、その他のアクションはまったく行われない。次のエピソードがスケジューリングされていない(すなわち、新エピソード・レジスタが現行エピソードである)場合、新エピソード・レジスタは旧エピソード・レジスタに保存され、新エピソードがスケジューリングされる(したがって、旧エピソード・レジスタを現行エピソードにする)。新エピソード開始時間(new.s)は、物理クロックが次のTODオフセット更新イベントのときに有することになる値に設定され、新エピソード・ベース・オフセット(new.b)はpb.dの値に設定される。新エピソードがスケジューリングされ、新エピソードの細密ステアリングおよび概略ステアリング・レートが現行値と同じである場合、ステアリング・レートはこの機能によって変更されない。ロジカル・パーティションまたは仮想計算機レベルで発行されると、この機能はハイパーバイザによってシミュレートすることができ、CPU実行の現行レベルに関するTODエポック差(それぞれ、DpまたはDv)について動作し、いかなる新エピソードもスケジューリングされず、変更が直ちに効力を発する。TODオフセット設定機能の実行は、構成内のすべてのCPUによって観察されるようにTODオフセット・レジスタの内容全体が同時にかつ一斉に更新されるように見えるように、インターロックされる。しかし、構成内のCPUによる論理TODクロック(基本マシンTODクロック、ロジカル・パーティションTODクロック、および仮想計算機TODクロック)へのアクセスは人工的に遅延されず、したがって、より小さい値でTODオフセットを置換することにより、論理TODクロックが後に進むように見えるようになる可能性がある。
パラメータ・ブロックからの32ビット値(pb.f)は次のエピソードに関する細密ステアリング・レートになる。その効果は即座ではないが、次のTODオフセット更新イベントと一致するようにスケジューリングされる。次のエピソードがすでにスケジューリングされているが、まだアクティブになっていない場合、pb.fはnew.fに取って代わり、その他のアクションはまったく行われない。次のエピソードがスケジューリングされていない(すなわち、新エピソード・レジスタが現行エピソードである)場合、新エピソード・レジスタは旧エピソード・レジスタに保存され、新エピソードがスケジューリングされる(したがって、旧エピソード・レジスタを現行エピソードにする)。新エピソード開始時間(new.s)は、物理クロックが次のTODオフセット更新イベントのときに有することになる値に設定され、新エピソード・ベース・オフセット(new.b)は、TODオフセットが同じ瞬間に有することになる値であって、現在のステアリング・パラメータを使用して計算された値に設定される。新エピソード細密ステアリング・レート(new.f)はpb.fに設定され、新エピソード概略ステアリング・レートは現行値と同じになる。新エピソードが効力を発すると、構成内のCPUによる論理TODクロックへのアクセスは、すべてのプログラムによって観察されるように論理TODクロックが固有かつ単調に増加するように見えることを保証するようにインターロックされる。
パラメータ・ブロックからの32ビット値(pb.g)は次のエピソードに関する概略ステアリング・レートになる。その効果は即座ではないが、次のTODオフセット更新イベントと一致するようにスケジューリングされる。次のエピソードがすでにスケジューリングされているが、まだアクティブになっていない場合、pb.gはnew.gに取って代わり、その他のアクションはまったく行われない。次のエピソードがスケジューリングされていない(すなわち、新エピソード・レジスタが現行エピソードである)場合、新エピソード・レジスタは旧エピソード・レジスタに保存され、新エピソードがスケジューリングされる(したがって、旧エピソード・レジスタを現行エピソードにする)。新エピソード開始時間(new.s)は、物理クロックが次のTODオフセット更新イベントのときに有することになる値に設定され、新エピソード・ベース・オフセット(new.b)は、TODオフセットが同じ瞬間に有することになる値であって、現在のステアリング・パラメータを使用して計算された値に設定される。新エピソード概略ステアリング・レート(new.g)はpb.gに設定され、新エピソード細密ステアリング・レートは現行値と同じになる。新エピソードが効力を発すると、構成内のCPUによる論理TODクロックへのアクセスは、すべてのプログラムによって観察されるように論理TODクロックが固有かつ単調に増加するように見えることを保証するようにインターロックされる。
図12を参照すると、VM内の仮想アーキテクチャ・レベル(VAL)命令ブロッキング機構の機能が示されている。VM内で実行すべき各命令(記憶装置内の命令の列に示されている通り)は命令コードを含む。いくつかの実装例では、命令コードは命令901、902、903、904内の単一フィールドである。他の実装例では、命令コードは、命令905(命令コード||OC)、906(命令コード||命令コード)の2つ以上のフィールドに分散することができる。好ましくは、回路、マイクロコード、またはこれらの組み合わせは、命令コードに基づいて、実行すべき命令が現在の仮想計算機によってサポートされているかどうかを判断することになるであろう。サポートされていない場合、プログラム割り込み、たとえば、プログラム例外が示され、命令が抑制されるであろう。
命令テスト/照会機構の機能ブロッキング機構がインストールされた場合(図14)、命令コード・テーブル項目1001は、一実施形態では、機能コード・フィールド(FCx)1003(または機能コード・テーブル1108を指すポインタ)をさらに含むことができる。機能コード・フィールド1003(または機能コード・テーブル1108の項目1107)は、1103で実行すべき機能コード1102と比較される。機能コードが匹敵する場合、命令は1105で機能コードを使用するために許可され、1103で機能コードが匹敵しない場合、命令実行により、1104でプログラム例外または指定例外(プログラム・チェック)などのプログラム割り込みが行われる。
Claims (9)
- 多機能命令のうちの選択されたインストール済み機能を隠蔽するためのコンピュータで実装される方法であって、前記多機能命令が複数のインストール済み機能のうちの1つの機能を実行するように設計され、前記方法が、
インストール済み機能の可用性を制御する値を1つまたは複数のプロセッサを含むホスト・コンピュータの多機能命令に設定することであって、1つのプロセッサが前記多機能命令のうちの第1の複数の前記インストール済み機能を有し、前記第1の複数のインストール済み機能が1つまたは複数の第1のインストール済み機能と1つまたは複数の第2のインストール済み機能とを含むことと、
多機能命令を実行することであって、前記多機能命令が命令コード・フィールドを含むことを含み、前記実行が、
前記多機能命令が照会機能を指定することに応答して、前記多機能命令にとって使用可能なインストール済み機能を決定するために前記照会機能を実行することと、
前記照会機能実行が前記1つまたは複数の第2のインストール済み機能を決定するために前記値を使用することと、
前記照会機能実行が前記1つまたは複数の第1のインストール済み機能のうちの1つまたは複数が前記多機能命令にとって使用可能ではないことを示す結果値を保管することと、
前記多機能命令が前記第1の複数の前記インストール済み機能のうちの非照会機能を指定することに応答して、前記非照会機能が前記第2のインストール済み機能のうちの1つであるときに前記非照会機能を実行し、前記非照会機能が前記第2のインストール済み機能のうちの1つ以外の機能であるときに前記非照会機能の実行をブロックすること
を含む、方法。 - 前記値が前記ホスト・コンピュータの仮想計算機について前記ホスト・コンピュータのハイパーバイザによって設定され、前記仮想計算機が1つまたは複数の論理プロセッサを含み、前記1つまたは複数の論理プロセッサが1つまたは複数の物理プロセッサに割り当てられ、1つの物理プロセッサが前記多機能命令のうちの前記1つまたは複数の第2のインストール済み機能を有し、前記多機能命令が前記1つまたは複数の物理プロセッサのうちの1つの物理プロセッサ上の1つまたは複数の論理プロセッサのうちの1つの論理プロセッサによって前記仮想計算機内で実行される、請求項1記載の方法。
- 前記1つまたは複数の第2のインストール済み機能を決定することが、前記多機能命令の前記命令コードに基づくものである、請求項2記載の方法。
- 前記ハイパーバイザにより、インストール済み機能の可用性を制御する他の値を前記ホスト・コンピュータ・システムの他の仮想計算機上で実行される多機能命令に設定することと、
1つまたは複数の他の論理プロセッサのうちの1つの他の論理プロセッサによって前記他の仮想計算機内で他の多機能命令を実行することと、
前記他の多機能命令が他の照会機能を指定することに応答して、前記他の多機能命令にとって使用可能なインストール済み機能を決定するために前記他の照会機能を実行することと、
前記他の照会機能実行が1つまたは複数の第3のインストール済み機能を決定するために前記他の値を使用することと、
前記他の照会機能実行が前記1つまたは複数の第3のインストール済み機能のうちの1つまたは複数が前記他の多機能命令にとって使用可能ではないことを示す他の結果値を保管すること
をさらに含む、請求項2記載の方法。 - 前記保管された結果値がビット有効値であり、各ビット位置が1つの機能に対応し、1つのビットが1であることは前記対応する機能がインストールされていることを示す、請求項2記載の方法。
- 前記照会機能が、多機能命令指定機能コードまたは多機能命令指定テスト・ビットによって指定される、請求項2記載の方法。
- 前記多機能命令が、暗号命令、タイミング機構機能実行命令、浮動小数点演算実行命令、またはロック演算実行命令のうちのいずれか1つからなるz/Architecture命令であり、前記暗号命令が、暗号メッセージ命令、チェーニング付き暗号メッセージ命令、中間メッセージ・ダイジェスト計算命令、最終メッセージ・ダイジェスト計算命令、メッセージ認証コード計算命令のうちのいずれか1つを含み、前記多機能命令が照会機能を指定することが、
前記多機能命令が暗号命令またはPTFF命令であることに応答して、実行すべき前記多機能命令指定機能コードを入手し、前記入手された機能コードが照会機能からなり、前記保管された結果値が複数のビットであり、前記複数のビットのうちの各ビットが対応する機能コードがサポートされるかどうかを示すことと、
前記多機能命令が暗号命令またはPTFF命令であることに応答して、実行すべき前記多機能命令指定機能コードを入手し、前記入手された機能コードが前記照会機能ではなく、前記入手された機能コードに応じて暗号機能またはPTFF機能を実行することと、
前記多機能命令が前記ロック演算実行命令または前記浮動小数点演算実行命令であり、前記多機能命令指定テスト・ビットが1であることに応答して、多機能命令指定機能コードがインストールされたことを判断し、前記保管された結果値が条件コード値であることと、
前記多機能命令が前記ロック演算実行命令または前記浮動小数点演算実行命令であり、前記多機能命令指定テスト・ビットが0であることに応答して、前記入手された機能コードに応じて浮動小数点機能またはロック演算を実行すること
を含む、請求項6記載の方法。 - 多機能命令のうちの選択されたインストール済み機能を隠蔽するためのコンピュータ・システムであって、前記多機能命令が複数のインストール済み機能のうちの1つの機能を実行するように設計され、
メモリと、
前記メモリと通信状態にあるプロセッサであって、メモリから命令を取り出すための命令取り出し要素と取り出した命令を実行するための1つまたは複数の実行要素とを含むプロセッサとを含み、
請求項1ないし7のいずれかに記載の方法を実行するように構成された、コンピュータ・システム。 - 多機能命令のうちの選択されたインストール済み機能を隠蔽するためのコンピュータ・プログラムであって、前記多機能命令が複数のインストール済み機能のうちの1つの機能を実行するように設計され、処理回路によって読み取り可能であって、請求項1ないし7のいずれかに記載の方法を実行するために前記処理回路による実行のために命令を保管する有形の記憶媒体を含む、コンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/822,358 | 2010-06-24 | ||
US12/822,358 US9851969B2 (en) | 2010-06-24 | 2010-06-24 | Function virtualization facility for function query of a processor |
PCT/EP2010/067046 WO2011160724A1 (en) | 2010-06-24 | 2010-11-08 | Function virtualization facility for function query of a processor |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015121857A Division JP6206881B2 (ja) | 2010-06-24 | 2015-06-17 | 多機能命令のうちの選択されたインストール済み機能を隠蔽するためのコンピュータで実装される方法、コンピュータ・システム、およびコンピュータ・プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013534668A true JP2013534668A (ja) | 2013-09-05 |
JP5893012B2 JP5893012B2 (ja) | 2016-03-30 |
Family
ID=43416668
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013515736A Active JP5893012B2 (ja) | 2010-06-24 | 2010-11-08 | 多機能命令のうちの選択されたインストール済み機能を隠蔽するためのコンピュータで実装される方法、コンピュータ・システム、およびコンピュータ・プログラム |
JP2015121857A Active JP6206881B2 (ja) | 2010-06-24 | 2015-06-17 | 多機能命令のうちの選択されたインストール済み機能を隠蔽するためのコンピュータで実装される方法、コンピュータ・システム、およびコンピュータ・プログラム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015121857A Active JP6206881B2 (ja) | 2010-06-24 | 2015-06-17 | 多機能命令のうちの選択されたインストール済み機能を隠蔽するためのコンピュータで実装される方法、コンピュータ・システム、およびコンピュータ・プログラム |
Country Status (13)
Country | Link |
---|---|
US (3) | US9851969B2 (ja) |
EP (1) | EP2430534A1 (ja) |
JP (2) | JP5893012B2 (ja) |
KR (1) | KR101442429B1 (ja) |
CN (1) | CN102947794B (ja) |
AU (1) | AU2010355815B2 (ja) |
BR (1) | BR112012033817B1 (ja) |
CA (1) | CA2800642C (ja) |
MX (1) | MX2012014522A (ja) |
RU (1) | RU2571364C2 (ja) |
SG (1) | SG186100A1 (ja) |
WO (1) | WO2011160724A1 (ja) |
ZA (1) | ZA201209645B (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013535063A (ja) * | 2010-06-24 | 2013-09-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 特定の命令がプロセッサによって実行されないようにブロックするためのコンピュータで実装される方法、コンピュータ・システム、およびコンピュータ・プログラム |
JP2014181209A (ja) * | 2013-03-19 | 2014-09-29 | Wakayama Univ | 新規(2→3)結合型シアロ糖鎖の製造方法 |
JP2019535036A (ja) * | 2016-10-13 | 2019-12-05 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 認証命令を含む暗号メッセージを実現するコンピュータ・プログラム製品、コンピュータ・システム、およびコンピュータ実装方法 |
JP2022522113A (ja) * | 2019-02-27 | 2022-04-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 複数のマシン世代にわたる複合体の機能の互換性の維持 |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7356725B2 (en) * | 2005-09-09 | 2008-04-08 | International Business Machines Corporation | Method and apparatus for adjusting a time of day clock without adjusting the stepping rate of an oscillator |
FR2957440B1 (fr) | 2010-03-09 | 2012-08-17 | Proton World Int Nv | Protection d'un module de securite dans un dispositif de telecommunication couple a un circuit nfc |
FR2957438B1 (fr) | 2010-03-09 | 2012-03-30 | Proton World Int Nv | Detection d'un deroutement d'un canal de communication d'un dispositif de telecommunication couple a un circuit nfc |
FR2957439B1 (fr) | 2010-03-09 | 2012-03-30 | Proton World Int Nv | Protection d'un canal de communication entre un module de securite et un circuit nfc |
US8615645B2 (en) | 2010-06-23 | 2013-12-24 | International Business Machines Corporation | Controlling the selectively setting of operational parameters for an adapter |
US8468284B2 (en) | 2010-06-23 | 2013-06-18 | International Business Machines Corporation | Converting a message signaled interruption into an I/O adapter event notification to a guest operating system |
US8572635B2 (en) | 2010-06-23 | 2013-10-29 | International Business Machines Corporation | Converting a message signaled interruption into an I/O adapter event notification |
US8635430B2 (en) | 2010-06-23 | 2014-01-21 | International Business Machines Corporation | Translation of input/output addresses to memory addresses |
US9851969B2 (en) | 2010-06-24 | 2017-12-26 | International Business Machines Corporation | Function virtualization facility for function query of a processor |
FR2969341B1 (fr) * | 2010-12-20 | 2013-01-18 | Proton World Int Nv | Gestion de canaux de communication dans un dispositif de telecommunication couple a un circuit nfc |
US8533714B2 (en) | 2011-05-03 | 2013-09-10 | International Business Machines Corporation | Dynamic virtual machine domain configuration and virtual machine relocation management |
DE102011107169A1 (de) * | 2011-07-13 | 2013-01-17 | Kuka Roboter Gmbh | Steuerung eines Roboter |
US9104508B2 (en) * | 2012-01-18 | 2015-08-11 | International Business Machines Corporation | Providing by one program to another program access to a warning track facility |
US8850450B2 (en) * | 2012-01-18 | 2014-09-30 | International Business Machines Corporation | Warning track interruption facility |
CN104509026B (zh) | 2012-03-30 | 2018-04-24 | 英特尔公司 | 用于处理sha-2安全散列算法的方法和设备 |
US8953785B2 (en) * | 2012-09-28 | 2015-02-10 | Intel Corporation | Instruction set for SKEIN256 SHA3 algorithm on a 128-bit processor |
US8874933B2 (en) * | 2012-09-28 | 2014-10-28 | Intel Corporation | Instruction set for SHA1 round processing on 128-bit data paths |
US8924741B2 (en) | 2012-12-29 | 2014-12-30 | Intel Corporation | Instruction and logic to provide SIMD secure hashing round slice functionality |
US9400678B2 (en) * | 2013-03-12 | 2016-07-26 | International Business Machines Corporation | Systems for selectively enabling and disabling hardware features |
US10108805B2 (en) | 2013-06-26 | 2018-10-23 | Intel Corporation | Method and apparatus to process SHA-2 secure hashing algorithm |
US9990216B2 (en) * | 2013-06-27 | 2018-06-05 | Red Hat Israel, Ltd. | Providing hypercall interface for virtual machines |
WO2015009288A1 (en) * | 2013-07-16 | 2015-01-22 | Empire Technology Development, Llc | Processor identification for virtual machines |
US10038550B2 (en) | 2013-08-08 | 2018-07-31 | Intel Corporation | Instruction and logic to provide a secure cipher hash round functionality |
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 |
US9582295B2 (en) | 2014-03-18 | 2017-02-28 | International Business Machines Corporation | Architectural mode configuration |
US10313129B2 (en) * | 2015-06-26 | 2019-06-04 | Intel Corporation | Keyed-hash message authentication code processors, methods, systems, and instructions |
CN113949567B (zh) * | 2016-04-15 | 2023-10-13 | 瑞典爱立信有限公司 | 用户设备容器和网络切片 |
US10348506B2 (en) * | 2016-09-30 | 2019-07-09 | International Business Machines Corporation | Determination of state of padding operation |
US11841792B1 (en) * | 2019-12-09 | 2023-12-12 | Amazon Technologies, Inc. | Instructions with multiple memory access modes |
US11334358B2 (en) | 2019-12-09 | 2022-05-17 | Amazon Technologies, Inc. | Hardware accelerator having reconfigurable instruction set and reconfigurable decoder |
US11928070B2 (en) | 2021-04-13 | 2024-03-12 | SK Hynix Inc. | PCIe device |
KR102568906B1 (ko) | 2021-04-13 | 2023-08-21 | 에스케이하이닉스 주식회사 | PCIe 디바이스 및 그 동작 방법 |
KR102570943B1 (ko) | 2021-04-13 | 2023-08-28 | 에스케이하이닉스 주식회사 | PCIe 디바이스 및 그 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040230816A1 (en) * | 2003-05-12 | 2004-11-18 | International Business Machines Corporation | Cipher message assist instructions |
JP2006221606A (ja) * | 2005-01-17 | 2006-08-24 | Renesas Technology Corp | データプロセッサ |
JP2008299847A (ja) * | 2007-05-29 | 2008-12-11 | Palo Alto Research Center Inc | 照会ベースでコンポーネント実行可能命令を使用するモデルベース・プランニング |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3626427A (en) | 1967-01-13 | 1971-12-07 | Ibm | Large-scale data processing system |
JPS60159948A (ja) | 1984-01-30 | 1985-08-21 | Nec Corp | 命令例外処理方式 |
JPS62123552A (ja) | 1985-11-22 | 1987-06-04 | Nec Corp | 中央処理装置割当て方式 |
KR930006542B1 (ko) | 1990-12-31 | 1993-07-16 | 한국전기통신공사 | 마이크로 콘트롤러를 이용한 톤 발생장치 |
EP0534597B1 (en) | 1991-09-23 | 2000-04-26 | Intel Corporation | Computer system having software interrupt (INTN) instructions selectively operating in a virtual mode |
AU6629894A (en) | 1993-05-07 | 1994-12-12 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
US5925125A (en) | 1993-06-24 | 1999-07-20 | International Business Machines Corporation | Apparatus and method for pre-verifying a computer instruction set to prevent the initiation of the execution of undefined instructions |
US5551013A (en) | 1994-06-03 | 1996-08-27 | International Business Machines Corporation | Multiprocessor for hardware emulation |
US5632028A (en) | 1995-03-03 | 1997-05-20 | Hal Computer Systems, Inc. | Hardware support for fast software emulation of unimplemented instructions |
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 |
US5758140A (en) | 1996-01-25 | 1998-05-26 | International Business Machines Corporation | Method and system for emulating instructions by performing an operation directly using special-purpose register contents |
US6076156A (en) | 1997-07-17 | 2000-06-13 | Advanced Micro Devices, Inc. | Instruction redefinition using model specific registers |
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 |
US6092185A (en) | 1998-04-30 | 2000-07-18 | International Business Machines Corporation | Opcode compare logic in E-unit for breaking infinite loops, detecting invalid opcodes and other exception checking |
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 |
US6138229A (en) | 1998-05-29 | 2000-10-24 | Motorola, Inc. | Customizable instruction set processor with non-configurable/configurable decoding units and non-configurable/configurable execution units |
US6185670B1 (en) | 1998-10-12 | 2001-02-06 | Intel Corporation | System for reducing number of opcodes required in a processor using an instruction format including operation class code and operation selector code fields |
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 |
US6427202B1 (en) | 1999-05-04 | 2002-07-30 | Microchip Technology Incorporated | Microcontroller with configurable instruction set |
US6859870B1 (en) * | 2000-03-07 | 2005-02-22 | University Of Washington | Method and apparatus for compressing VLIW instruction and sharing subinstructions |
US7865948B1 (en) | 2001-12-03 | 2011-01-04 | Advanced Micro Devices, Inc. | Method and apparatus for restricted execution of security sensitive instructions |
US20040031022A1 (en) | 2002-08-02 | 2004-02-12 | Masayuki Kabasawa | Information processing device for multiple instruction sets with reconfigurable mechanism |
JP2004127255A (ja) | 2002-08-02 | 2004-04-22 | Renesas Technology Corp | 情報処理装置 |
US7159122B2 (en) | 2003-05-12 | 2007-01-02 | International Business Machines Corporation | Message digest instructions |
WO2005036806A2 (en) | 2003-10-08 | 2005-04-21 | Unisys Corporation | Scalable partition memory mapping system |
JP2005149361A (ja) | 2003-11-19 | 2005-06-09 | Hitachi Ltd | 仮想計算機システムおよび仮想計算機システムの制御プログラム |
US7493483B2 (en) | 2004-02-19 | 2009-02-17 | International Business Machines Corporation | Method to prevent vulnerability to virus and worm attacks through instruction remapping |
JP2005242510A (ja) | 2004-02-25 | 2005-09-08 | Matsushita Electric Ind Co Ltd | 情報処理装置の命令使用権限設定方法及び情報処理装置 |
US20050251652A1 (en) | 2004-04-27 | 2005-11-10 | Eswaramoorthi Nallusamy | Methods and apparatus for processing an extensible firmware interface byte code instruction in a loop |
US7802250B2 (en) | 2004-06-28 | 2010-09-21 | Intel Corporation | Support for transitioning to a virtual machine monitor based upon the privilege level of guest software |
US8572606B1 (en) | 2005-12-29 | 2013-10-29 | Vmware, Inc. | System and method for avoiding synchronization bugs through virtualization |
JP2008146542A (ja) | 2006-12-13 | 2008-06-26 | Fujitsu Ltd | マルチプロセッサシステム、プロセッサ装置及び例外処理方法 |
US7802252B2 (en) | 2007-01-09 | 2010-09-21 | International Business Machines Corporation | Method and apparatus for selecting the architecture level to which a processor appears to conform |
US8321849B2 (en) | 2007-01-26 | 2012-11-27 | Nvidia Corporation | Virtual architecture and instruction set for parallel thread computing |
JP2008226290A (ja) | 2007-03-08 | 2008-09-25 | Hitachi-Lg Data Storage Inc | 装置内蔵型光ディスク装置 |
JP4882845B2 (ja) * | 2007-04-19 | 2012-02-22 | 株式会社日立製作所 | 仮想計算機システム |
US8479195B2 (en) | 2007-05-16 | 2013-07-02 | Vmware, Inc. | Dynamic selection and application of multiple virtualization techniques |
US8127296B2 (en) | 2007-09-06 | 2012-02-28 | Dell Products L.P. | Virtual machine migration between processors having VM migration registers controlled by firmware to modify the reporting of common processor feature sets to support the migration |
US7925923B1 (en) | 2008-01-31 | 2011-04-12 | Hewlett-Packard Development Company, L.P. | Migrating a virtual machine in response to failure of an instruction to execute |
US8332846B2 (en) | 2008-02-28 | 2012-12-11 | Sony Mobile Communications Ab | Selective exposure to USB device functionality for a virtual machine by filtering descriptors |
US8352952B2 (en) | 2008-12-01 | 2013-01-08 | Citrix Systems, Inc. | Systems and methods for facilitating virtualization of a heterogeneous processor pool |
US8078854B2 (en) | 2008-12-12 | 2011-12-13 | Oracle America, Inc. | Using register rename maps to facilitate precise exception semantics |
US8195923B2 (en) * | 2009-04-07 | 2012-06-05 | Oracle America, Inc. | Methods and mechanisms to support multiple features for a number of opcodes |
US9851969B2 (en) | 2010-06-24 | 2017-12-26 | International Business Machines Corporation | Function virtualization facility for function query of a processor |
US10521231B2 (en) | 2010-06-24 | 2019-12-31 | International Business Machines Corporation | Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor |
-
2010
- 2010-06-24 US US12/822,358 patent/US9851969B2/en active Active
- 2010-11-08 CA CA2800642A patent/CA2800642C/en active Active
- 2010-11-08 AU AU2010355815A patent/AU2010355815B2/en active Active
- 2010-11-08 SG SG2012087839A patent/SG186100A1/en unknown
- 2010-11-08 KR KR1020137000057A patent/KR101442429B1/ko active IP Right Grant
- 2010-11-08 JP JP2013515736A patent/JP5893012B2/ja active Active
- 2010-11-08 BR BR112012033817-0A patent/BR112012033817B1/pt active IP Right Grant
- 2010-11-08 RU RU2012147699/08A patent/RU2571364C2/ru active
- 2010-11-08 CN CN201080066964.6A patent/CN102947794B/zh active Active
- 2010-11-08 WO PCT/EP2010/067046 patent/WO2011160724A1/en active Application Filing
- 2010-11-08 EP EP10776351A patent/EP2430534A1/en not_active Ceased
- 2010-11-08 MX MX2012014522A patent/MX2012014522A/es active IP Right Grant
-
2012
- 2012-12-19 ZA ZA2012/09645A patent/ZA201209645B/en unknown
-
2015
- 2015-06-17 JP JP2015121857A patent/JP6206881B2/ja active Active
-
2017
- 2017-12-08 US US15/835,576 patent/US10664269B2/en active Active
-
2020
- 2020-03-18 US US16/822,560 patent/US11188326B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040230816A1 (en) * | 2003-05-12 | 2004-11-18 | International Business Machines Corporation | Cipher message assist instructions |
JP2006221606A (ja) * | 2005-01-17 | 2006-08-24 | Renesas Technology Corp | データプロセッサ |
JP2008299847A (ja) * | 2007-05-29 | 2008-12-11 | Palo Alto Research Center Inc | 照会ベースでコンポーネント実行可能命令を使用するモデルベース・プランニング |
Non-Patent Citations (1)
Title |
---|
JPN5013007448; EDEL T. R.: 'DYNAMIC INSTRUCTION SET DEFINITION' IBM TECHNICAL DISCLOSURE BULLETIN V16 N6, 19731101, INTERNATIONAL BUSINESS MACHINES CORP. * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013535063A (ja) * | 2010-06-24 | 2013-09-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 特定の命令がプロセッサによって実行されないようにブロックするためのコンピュータで実装される方法、コンピュータ・システム、およびコンピュータ・プログラム |
US10521231B2 (en) | 2010-06-24 | 2019-12-31 | International Business Machines Corporation | Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor |
JP2014181209A (ja) * | 2013-03-19 | 2014-09-29 | Wakayama Univ | 新規(2→3)結合型シアロ糖鎖の製造方法 |
JP2019535036A (ja) * | 2016-10-13 | 2019-12-05 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 認証命令を含む暗号メッセージを実現するコンピュータ・プログラム製品、コンピュータ・システム、およびコンピュータ実装方法 |
JP7116050B2 (ja) | 2016-10-13 | 2022-08-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 認証命令を含む暗号メッセージを実現するコンピュータ・プログラム製品、コンピュータ・システム、およびコンピュータ実装方法 |
JP2022522113A (ja) * | 2019-02-27 | 2022-04-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 複数のマシン世代にわたる複合体の機能の互換性の維持 |
JP7430195B2 (ja) | 2019-02-27 | 2024-02-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 複数のマシン世代にわたる複合体の機能の互換性の維持 |
Also Published As
Publication number | Publication date |
---|---|
SG186100A1 (en) | 2013-01-30 |
US10664269B2 (en) | 2020-05-26 |
KR20130034036A (ko) | 2013-04-04 |
RU2571364C2 (ru) | 2015-12-20 |
US20110320825A1 (en) | 2011-12-29 |
ZA201209645B (en) | 2013-08-28 |
US20200218536A1 (en) | 2020-07-09 |
BR112012033817B1 (pt) | 2020-12-01 |
AU2010355815A1 (en) | 2012-12-20 |
MX2012014522A (es) | 2013-01-29 |
JP6206881B2 (ja) | 2017-10-04 |
BR112012033817A2 (pt) | 2018-05-15 |
CN102947794A (zh) | 2013-02-27 |
CN102947794B (zh) | 2016-08-17 |
AU2010355815B2 (en) | 2014-10-30 |
US11188326B2 (en) | 2021-11-30 |
CA2800642A1 (en) | 2011-12-29 |
EP2430534A1 (en) | 2012-03-21 |
KR101442429B1 (ko) | 2014-09-17 |
US20180107480A1 (en) | 2018-04-19 |
JP5893012B2 (ja) | 2016-03-30 |
US9851969B2 (en) | 2017-12-26 |
JP2015201227A (ja) | 2015-11-12 |
CA2800642C (en) | 2017-12-12 |
RU2012147699A (ru) | 2014-05-20 |
WO2011160724A1 (en) | 2011-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6206881B2 (ja) | 多機能命令のうちの選択されたインストール済み機能を隠蔽するためのコンピュータで実装される方法、コンピュータ・システム、およびコンピュータ・プログラム | |
US11809870B2 (en) | Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor | |
TWI622880B (zh) | 比較及取代動態位址轉譯表項之電腦程式產品、電腦系統及方法 | |
JP5692760B2 (ja) | 独立ロード/ストア機構およびそのための命令を実行するための方法、システム、およびコンピュータ・プログラム | |
JP6284130B2 (ja) | ローカル・クリア制御 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130806 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140819 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20140901 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20140902 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141111 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20150217 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150617 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20150624 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150901 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151130 |
|
TRDD | Decision of grant or rejection written | ||
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20160202 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160202 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160223 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5893012 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |