JP2023552484A - 補助プロセッサ・コマンド・タイプ・フィルタリング - Google Patents
補助プロセッサ・コマンド・タイプ・フィルタリング Download PDFInfo
- Publication number
- JP2023552484A JP2023552484A JP2023535698A JP2023535698A JP2023552484A JP 2023552484 A JP2023552484 A JP 2023552484A JP 2023535698 A JP2023535698 A JP 2023535698A JP 2023535698 A JP2023535698 A JP 2023535698A JP 2023552484 A JP2023552484 A JP 2023552484A
- Authority
- JP
- Japan
- Prior art keywords
- command
- type filtering
- filtering mode
- command type
- processor
- 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.)
- Pending
Links
- 238000001914 filtration Methods 0.000 title claims abstract description 294
- 238000012545 processing Methods 0.000 claims abstract description 90
- 238000000034 method Methods 0.000 claims description 60
- 238000003860 storage Methods 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 description 88
- 230000006870 function Effects 0.000 description 47
- 230000008569 process Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 20
- 238000004088 simulation Methods 0.000 description 12
- 238000005192 partition Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 230000003068 static effect Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000006855 networking Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- 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/45558—Hypervisor-specific management and integration aspects
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Storage Device Security (AREA)
- Fats And Perfumes (AREA)
- Image Processing (AREA)
- Advance Control (AREA)
Abstract
補助プロセッサ・コマンド・タイプ・フィルタリングは、ターゲット補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されているかどうか、および別の補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されているかどうかを決定することを含む。ターゲット補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていないという決定に基づいて、および別の補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていることに基づいて、コマンドは、選択されたコマンド・タイプ・フィルタリング・モードに対してコマンドが有効であるかどうかを決定するための処理のために別の補助プロセッサに転送される。別の補助プロセッサでの処理に基づいて、コマンドが、選択されたコマンド・タイプ・フィルタリング・モードに対して有効であるかどうかの指示が取得される。コマンドが、選択されたコマンド・タイプ・フィルタリング・モードに対して有効であるという指示の取得に基づいて、コマンドは、実行のためにターゲット補助プロセッサに送られる。
Description
1つまたは複数の態様は、一般に、コンピューティング環境内での処理を容易にすることに関し、特に、コンピューティング環境内でのコマンド処理に関連する処理を容易にすることに関する。
コンピューティング環境は、しばしば、処理を強化するために異なるタイプのプロセッサを含む。一例として、コンピューティング環境は、メイン・プロセッサと見なされる1つまたは複数の中央処理装置と、中央処理装置に従属すると見なされる1つまたは複数の補助プロセッサとを含むことができる。補助プロセッサは、一般に、特定のタイプのタスクを実行する。例えば、補助プロセッサの特定の例は、暗号化操作を実行するために使用される暗号(クリプト)カードである。
ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションによって供される暗号カードの一例は、チャネル接続Crypto Expressカードである。Crypto Expressカードは、暗号化キーを使用するコマンド(セキュア・キー・コマンドと呼ばれる)、クリア・キーを使用するコマンド(クリア・キー・コマンドと呼ばれる)、ハッシュ・コマンド、クエリ・コマンド、乱数発生器コマンド、などのような多数のタイプのコマンドをサポートするように定義されている。さらに、Crypto Expressカードは、例えば、共通暗号アーキテクチャ(CCA)モード、アクセラレータ・モード、およびエンタープライズ公開鍵暗号標準(PKCS)モード(別名、XCP/EP11-エンタープライズPKCS#11モード)を含む多数のモードをサポートするように設計されている。各モードは、特定のタイプのコマンドを処理するように構成される。
Crypto Expressカードは、起動されたマシン構成の持続期間の間、異なる多数のモードのうちの1つで動作するように構成することができる。それゆえに、顧客が異なるモードを使用したい場合、コンピューティング環境は、異なる多数のモードのための少なくともその数のカードを含むことになり、各カードは、異なるモードで構成され、そのモードのために定義された特定のタイプのコマンドを処理することができる。
コンピューティング環境内での処理を容易にするためにコンピュータ・プログラム製品を提供することによって、先行技術の欠点が克服され、追加の利点が提供される。コンピュータ・プログラム製品は、1つまたは複数のコンピュータ可読ストレージ媒体と、方法を実行するために1つまたは複数のコンピュータ可読ストレージ媒体に集合的に格納されたプログラム命令とを含む。この方法は、コンピューティング環境の複数の補助プロセッサのうちのターゲット補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されているかどうかを決定することと、複数の補助プロセッサのうちの別の補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されているかどうかをチェックすることとを含む。ターゲット補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていないという決定に基づいて、および別の補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていることに基づいて、コマンドは、選択されたコマンド・タイプ・フィルタリング・モードに対してコマンドが有効であるかどうかを決定するための処理のために別の補助プロセッサに転送される。別の補助プロセッサでの処理に基づいて、コマンドが、選択されたコマンド・タイプ・フィルタリング・モードに対して有効であるかどうかの指示が取得される。コマンドは、選択されたコマンド・タイプ・フィルタリング・モードに対してコマンドが有効であるという指示の取得に基づいて、実行のためにターゲット補助プロセッサに送られる。
別の補助プロセッサでコマンドを処理することによって、コマンドの実行がシミュレートされ、その結果、コマンドがターゲット補助プロセッサでの実行に対して有効であるかどうかが分かる。シミュレーションは、サポートされる補助プロセッサ・タイプごとにコマンド・タイプ・フィルタリング・モードごとの補助プロセッサ・コマンドの静的なリストを維持する必要性を除く。このようにして、処理が容易になり、性能が改善される。
1つの実施形態では、コマンドは、選択されたコマンド・タイプ・フィルタリング・モードに対してコマンドが無効であるという指示の取得に基づいて、選択されたコマンド・タイプ・フィルタリング・モードに対して無効であるとして拒否され、ターゲット補助プロセッサで実行することが控えられる。このようにして、別の補助プロセッサでコマンドをシミュレートし、コマンドが、選択されたコマンド・タイプ・フィルタリング・モードでは無効であり、それゆえに、要求に応じて、ターゲット補助プロセッサで実行することができないと決定することによって、処理が容易になり、性能が改善される。
1つの実施形態では、拒否することは、エラー・コードへのアクセスを容易にするためにエラー・コードを中央場所に配置することを含む。補助プロセッサ・モードと無関係である中央場所を使用してエラー・コードを返すことにより、誰がエラーを生成したか(例えば、コマンド・タイプ・フィルタリング・シミュレーションを使用するハイパーバイザ、特定のモードでの補助プロセッサ、など)にかかわらず、プログラムでエラー・コードを捜し出すことが容易になる。
1つの実施形態では、コマンドは、選択されたコマンド・タイプ・フィルタリング・モードに対してコマンドが有効であるという指示の取得に基づいて、選択されたコマンド・タイプ・フィルタリング・モード・コマンドとしてコマンド・リストに加えられる。コマンド・リストは、どのコマンドがターゲット補助プロセッサでの実行に有効であるかを決定するために使用され得る。さらに、1つの実施形態では、コマンドは、選択されたコマンド・タイプ・フィルタリング・モードに対してコマンドが無効であるという指示の取得に基づいて、有効な補助プロセッサ・コマンドとしてコマンド・リストに加えられる。動的に更新されるコマンド・リストは、どのコマンドがターゲット・プロセッサに有効であるかの決定を容易にすることによって、処理を容易にし、性能を改善する。しかしながら、コマンドは、選択されたコマンド・タイプ・フィルタリング・モードをサポートする1つまたは複数の補助プロセッサでシミュレートされ得るので、コマンド・リストはオプションである。
1つの実施形態では、コマンドは、複数の補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていないという決定に基づいて拒否される。1つの実施形態では、補助プロセッサのどれも、選択されたコマンド・タイプ・フィルタリング・モードをサポートしない場合、シミュレーションは実行されず、それによって、処理が容易になり、性能が改善される。
1つの実施形態では、ターゲット補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていないという決定に基づいて、および別の補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていることに基づいて、コマンドがコマンド・リストに載っているかどうかに関して決定が行われ、コマンド・リストは、コマンドがターゲット補助プロセッサで実行され得るかどうかを決定するために使用され得る。コマンドは、コマンドがコマンド・リストにないという決定に基づいて、処理のために別の補助プロセッサに転送される。動的に更新されるコマンド・リストは、どのコマンドがターゲット補助プロセッサに有効であるかの決定を容易にすることによって、処理を容易にし、性能を改善する。
1つの実施形態では、コマンドは、別の補助プロセッサでのコマンドの実行の成功に基づいて、有効な選択されたコマンド・タイプ・フィルタリング・モード・コマンドとしてコマンド・リストに加えられる。1つの実施形態では、コマンドは、別の補助プロセッサでのコマンドの実行の不成功に基づいて、有効な補助プロセッサ・コマンドとしてコマンド・リストに加えられる。
一例として、選択されたコマンド・タイプ・フィルタリング・モードは、ステートレス・コマンド・フィルタリング・モードである。さらに、一例として、複数の補助プロセッサは、複数の暗号カードを含む。
1つまたは複数の態様に関連するコンピュータ実施方法およびシステムが、さらに、説明され、本明細書において特許請求される。さらに、1つまたは複数の態様に関連するサービスが、さらに、説明され、本明細書において特許請求され得る。
追加の特徴および利点は、本明細書において説明される技術により実現される。他の実施形態および態様は、本明細書において詳細に説明され、特許請求される態様の一部と見なされる。
1つまたは複数の態様が、本明細書の結論において、特許請求の範囲における例として特に指摘され、明確に特許請求される。前述のことと、1つまたは複数の態様の目的、特徴、および利点とは、添付の図面に関連して行われる以下の詳細な説明から明らかである。
本発明の1つまたは複数の態様において、暗号(クリプト)カードなどの補助プロセッサが、コマンドごとに、補助プロセッサによって取得されたコマンドが補助プロセッサによって実行されるべきかどうかを動的に決定することができるようにするフィルタリング能力が提供される。例えば、1つまたは複数のコマンドごとのフィルタリング・インジケータ(例えば、選択されたコマンド・タイプ・フィルタリング・インジケータ)が使用されて、受け取ったコマンドが、コマンドごとのフィルタリング・インジケータによって指定された有効なコマンド・タイプであり、したがって、補助プロセッサによって実行されるべきであるかどうかが決定される。1つの実施形態では、1つまたは複数のコマンドごとのフィルタリング・インジケータは、コマンドごとに、コマンドの要求元に関連するコンピューティング・ポリシーに基づいて設定される。したがって、ある要求元によって発行されたコマンドは、要求元のコンピューティング・ポリシーに基づいて設定されたコマンドごとのフィルタリング・インジケータによって指定されるので、実行のための有効なコマンド・タイプであり得るが、別の要求元によって発行されたコマンドは、無効であり得る。
1つまたは複数の態様では、補助プロセッサがコマンドごとのフィルタリングに関与するには、少なくとも1つのフィルタリング機能が、補助プロセッサにインストールされるべきである。様々なフィルタリング機能がインストールされてもよく、各機能は、コマンドごとのフィルタリングで使用される少なくとも1つの関連するフィルタリング・インジケータ(例えば、選択されたコマンド・タイプ・フィルタリング・インジケータ)を有する。フィルタリング機能の1つの例は、選択されたコマンド・タイプ(例えば、ステートレス・コマンド・タイプ・コマンド)が実行に有効であるステートレス・コマンド・フィルタリング機能である。例えば、補助プロセッサが、例えばステートレス・コマンド・フィルタリング機能をサポートし、受け取ったコマンドが、ステートレス・コマンド・タイプ・フィルタリング・インジケータを選択値、例えば1に設定している場合、コマンドは、実行されるべきステートレス・コマンド・タイプ・コマンドであり得る。コマンドが、別のコマンド・タイプである場合、補助プロセッサの構成されたモード(例えば、共通暗号アーキテクチャ(CCA)モード、別名、コプロセッサ・モード)によってサポートされたものでさえ、コマンドは、無効であると見なされる。しかしながら、コマンド内のステートレス・コマンド・タイプ・フィルタリング・インジケータが別の値、例えばゼロに設定されている場合、コマンドは、実行される補助プロセッサの構成されたモードによってサポートされる任意のコマンド・タイプとすることができる。したがって、1つの例では、ステートレス・コマンド・フィルタリング機能などのフィルタリング機能がサポートされているとき、本明細書ではコマンド・セット・モードと呼ぶ1つのモードで構成された補助プロセッサは、構成されたモード(例えば、コプロセッサ・モード)でサポートされるコマンド・タイプのフル・セットまたは縮小されたコマンド・タイプのセット(例えば、ステートレス・コマンド・タイプ・コマンドのみ)のいずれかを実行するために使用することができる。
ステートレス・コマンド・フィルタリング機能が、本明細書に1つの例として記載されているが、他のフィルタリング機能または技術が適用されてもよい。例えば、選択されたコマンド・タイプがマスター・キー管理キー・コマンドであるマスター・キー・フィルタリング機能を使用することができる。別の例として、フィルタリングは、ポリシーが課すユース・ケース制限を用いて実装することができる。例えば、選択されたコマンド・アクセスが一般的な暗号コマンド・アクセスとは異なる価格を設定されている場合、購入されたユース・ケースにフィルタを課すことができる。フィルタリングのさらなるレベルは、性能サービス契約に基づくことができ、コマンドは、購入された性能に基づいて高いまたは低いサービス応答性能優先順位を記される。他のフィルタリング機能または技術を使用することもできる。フィルタリング機能の各々の適用は、補助プロセッサを別のモードに再構成することなしに許容される。フィルタリング機能は、互いに連動して、または互いに別個に使用されてもよい。多くの例が可能である。
1つまたは複数の態様において、コンピューティング環境は、複数の補助プロセッサを含み、補助プロセッサのうちの1つまたは複数が、コマンド・タイプ・フィルタリング機能または特定のコマンド・タイプ・フィルタリング機能あるいはその両方をサポートしない場合がある。それゆえに、1つの実施形態では、コマンド要求の取得に基づいて、要求のターゲット補助プロセッサが、要求によって示されたフィルタリング機能(コマンド・タイプ・フィルタリング・モードとも呼ばれる)をサポートしているかどうかに関して決定が行われる。ターゲット補助プロセッサが、要求された機能をサポートしていないが、別の補助プロセッサがサポートしている場合、本発明の一態様によれば、選択されたコマンド・タイプ・フィルタリング・モードのコマンドの動作は、別の補助プロセッサでコマンドを実行することによってシミュレートされる。別の補助プロセッサでのコマンドの実行が有効である場合、コマンドはターゲット・プロセッサで実行される。
本発明の1つまたは複数の態様を組み込み使用するためのコンピューティング環境の1つの実施形態が、図1Aを参照して説明される。1つの例では、コンピューティング環境100は、少なくとも1つの中央処理装置102と、少なくとも1つの補助プロセッサ(AP)104と含み、それらの各々は、システム・メモリ106と呼ばれるメモリの少なくとも一部に結合される。1つの例として、システム・メモリ106は、ハードウェア・システム域を含み、それは、間接的にアクセス可能であり、中央処理装置で実行するプログラムには見えない。(間接的にアクセス可能であるとは、本明細書では、ハードウェア・システム域、またはそこに格納された補助プロセッサ・キュー(以下で説明される)が、特定の限定された命令によってのみアクセス可能であり、そうでなければ、アクセス可能でない(例えば、それにロードすることができない、プログラムがアドレスを知らない、など)ことを意味するように使用される。)システム・メモリ内に、1つまたは複数の補助プロセッサ・キュー108が配置される。これらのキューは、ユーザ・プログラムから直接見ることができず、代わりに、マシン(すなわち、中央処理装置、システム・メモリ、および補助プロセッサを含むマシン)の一部と見なされる。中央処理装置は、例えば、キューに要求を出す、またはキューから応答を取り除く、あるいはその両方のための命令を発行することによって、システム・メモリ内のキューへのアクセス権を有する。しかしながら、補助プロセッサは、例えば、トランスポート層110(例えば、i390CO)を介してキューへの直接アクセス権を有し、キューから要求を取り出し、要求を処理し、要求への応答をキューに出すことを担当する。
本発明の1つまたは複数の態様を組み込み使用するコンピューティング環境の別の実施形態が、図1Bを参照して説明される。この実施形態では、マシンは、仮想サポートを含み、複数のゲスト152(例えば、ゲスト・オペレーティング・システムまたはゲスト・プログラムあるいはその両方)を含む少なくとも1つのホスト中央処理装置150がある。ホスト中央処理装置は、システム・メモリ154と呼ばれるメモリの少なくとも一部に結合される。加えて、少なくとも1つの補助プロセッサ156があり、それも、例えば、トランスポート層160を介してシステム・メモリ154に結合される。1つの例として、システム・メモリ154は、ハードウェア・システム域を含み、システム・メモリ内に、1つまたは複数の補助プロセッサ・キュー158が配置される。
図示のように、限定はしないが、暗号カードまたはアダプタを含む、異なるタイプの補助プロセッサがある。暗号カードの具体的な例は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションによって供されるCrypto Expressカードである。例示の暗号カードが提供されるが、インターナショナル・ビジネス・マシーンズ・コーポレーションまたは他の会社あるいはその両方によって供される他の暗号カードが、本発明の1つまたは複数の態様を組み込む、または使用する、あるいはその両方とすることができる。さらに、他のタイプの補助プロセッサが、本発明の1つまたは複数の態様を組み込む、または使用する、あるいはその両方とすることができる。
1つの実施形態では、暗号カード(例えば、Crypto Expressカード)などの補助プロセッサは、限定はしないが、例として、コプロセッサ・モード、アクセラレータ・モード、およびエンタープライズ公開鍵暗号標準(PKCS)モード(例えば、XCP/EP11-エンタープライズPKCS#11)を含む、複数のモードをサポートする。追加のより少ないまたは他のあるいはその両方のモードが、他の例ではサポートされ得る。モードの各々は、それ自体のAPメッセージ構造およびフォーマットを有することができる。
一例として、補助プロセッサ・メッセージは、多数のデータ・セグメントで構成され、データ・セグメントは、互いに隣接しなくてもよく、代わりに、1つまたは複数がインターリーブされてもよい。これらのデータ・セグメントは、スキャッタ・ギャザー・データ・セグメントと呼ばれる。1つの例では、暗号カードは、エンキューされたAPメッセージへの直接アクセス権を有さず、メッセージの一部(例えば、APメッセージの下部)は、例えばAPコマンドを実行するために暗号カードによって使用され得るデータを含む。それゆえに、APコマンド・トランスポート層(例えば、トランスポート層110、160)は、APコマンド要求メッセージから関連データをコピーし、それを、暗号カードが理解するフォーマット(例えば、クリプト・カードのコマンド要求メッセージ)にパッケージ化し、それを暗号カードに送る。同様に、APコマンドが暗号カードによって実行された後、暗号カードは、例えばパケット5および6を含む暗号カード・コマンド・応答メッセージを生成し、それをAPコマンド・トランスポート層に送り、APコマンド・トランスポート層は、それをAPコマンド応答メッセージに再パッケージ化する。例えば、トランスポート層は、APコマンド要求メッセージと、暗号カードのコマンド応答メッセージとの様々な部分を使用して、ヘッダ、サブヘッダ、およびパケットを含むAPコマンド応答メッセージを提供する。次いで、トランスポート層は、APコマンド応答メッセージを、APキューに送り、後にプログラムによってデキューされる。APコマンド要求メッセージおよびAPコマンド応答メッセージのさらなる詳細は、本発明の1つまたは複数の態様のコマンド・タイプ・フィルタリングに従って使用されるメッセージの態様を含めて、以下で説明される。
本発明の一態様によれば、マシン・ハイパーバイザが、コンピューティング・ポリシー(例えば、顧客のライセンス条項、高い可用性要件などの許可要件またはリソース要件あるいはその両方、など)に従ってコマンド・タイプ・フィルタリングを要求できるようにする補助プロセッサ(例えば、暗号カード)が設計される。顧客が、それに関連する異なるコンピューティング・ポリシー(例えば、ライセンス条項、許可、または高い可用性要件などのリソース要件、あるいはその組合せ)を有するので、すべてのタイプのコマンドが、特定の顧客に利用できるとは限らない。したがって、本発明の一態様によれば、コマンド・タイプ・フィルタリングが提供され、その結果、選択された補助プロセッサ(例えば、特定のモード(例えばコプロセッサ・モード)用に構成された暗号カード)は、補助プロセッサを異なるサポート・モードに再構成する必要なしに、異なるコンピューティング・ポリシー、したがって、異なる許可をもつ顧客のために使用され得る。
一例として、本発明の1つまたは複数の態様に従って、コマンドごとに1つまたは複数の選択されたAPコマンド・タイプ・フィルタリング機能に基づいてAPコマンドをフィルタリングできるようにするAPコマンド・タイプ・フィルタリング機能(APFT)が提供される。1つの例では、1つまたは複数の選択されたAPコマンド・タイプ・フィルタリング機能は、ステートレス・APコマンド・フィルタリング機能(SAPCF)を含む。APコマンド・タイプ・フィルタリング機能およびステートレスAPコマンド・フィルタリング機能の態様は、本明細書では、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションによって供されるz/Architecture(R)ハードウェア・アーキテクチャなどの特定のアーキテクチャに関して説明される。z/Architectureハードウェア・アーキテクチャの1つの実施形態が、「z/Architecture Principles of Operation」、IBM Publication No. SA22-7832-12、第13版、2019年9月に記載されており、その全体が参照により本明細書に組み込まれる。IBMおよびZ/ARCHITECTUREは、少なくとも1つの管轄区域におけるインターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である。しかしながら、z/Architectureハードウェア・アーキテクチャは、1つの例示のアーキテクチャにすぎない。本発明の態様は、限定はしないが、Intel x86アーキテクチャ、インターナショナル・ビジネス・マシーンズ・コーポレーションの他のアーキテクチャ、または他の会社のアーキテクチャ、あるいはその組合せを含む他のアーキテクチャに基づくこともできる。
1つの例では、ステートレスAPコマンド・フィルタリング機能がインストールされると、APコマンド・タイプ・フィルタリング機能がインストールされる。ステートレスAPコマンド・フィルタリング機能がインストールされているかどうかを決定するために、プロセス補助プロセッサ・キュー命令が、本発明の態様に従って使用される。
プロセス補助プロセッサ・キュー(PQAP)命令の1つの例が、図2Aを参照して説明される。図示のように、1つの例では、プロセス補助プロセッサ・キュー命令200は、補助プロセッサ・キューのプロセス動作を示す命令コード(オペコード)202(例えば、32ビット命令のビット0~15)を含む。1つの実施形態では、プロセス補助プロセッサ・キュー命令は、汎用レジスタ0、1、および2を含む複数の汎用レジスタを利用する。汎用レジスタ0のAPキュー番号(APQN)によって指定されるAPキューは、汎用レジスタ0に指定された機能コードに従って処理される。汎用レジスタ0、1、および2の例が、以下でさらに説明される。
図2Bを参照すると、1つの実施形態では、汎用レジスタ0(GR0)210は、例えば、実行されるべき選択された機能を示すための機能コード(FC)212(例えば、ビット32~39)と、インストールされた機能のマスクが汎用レジスタ2に用意されているかどうか示すために使用されるテスト機能インジケータ(T)214(例えば、ビット40)と、機能コードに従って処理される補助プロセッサ・キュー(例えば、APキュー108(図1A)、APキュー158(図1B))を識別する補助プロセッサ・キュー番号(APQN)216(例えば、ビット48~63)とを含む64ビット・レジスタである。
プロセス補助プロセッサ・キュー命令の発行に基づいて、機能コード212は、複数の許容可能なコードのうちの1つを含むことができ、その一例は、コード00テストAPキュー(TAPQ)である。
本発明の1つまたは複数の態様によれば、コンピューティング環境が、例えば、z/Architectureアーキテクチャ・モードにあり、APFT機能がインストールされているとき、TAPQ機能コードが指定される(例えば、GR0におけるFC=00)場合、汎用レジスタ0のビット40は、TAPQ機能のためのテスト機能ビット(T)214として定義される。Tが1であるとき、汎用レジスタ2のビット0~31は、インストールされたAP機能および他の関連情報のマスクで置き換えられ、その一例が以下で説明される。Tがゼロであり、例えば、APFT機能がインストールされていないことを示しているとき、汎用レジスタ2の結果は、例えば、ビット位置32~63に制限され、ビット位置0~31は無視され変更されない。この場合、ATフィールドおよびQDフィールド(以下で説明される)は有効であり、他のビット位置はゼロとして格納される。
図示のように、汎用レジスタ0に加えて、汎用レジスタ1および2が、プロセス補助プロセッサ・キュー命令によって使用され、それらの各々が、本明細書においてさらに説明される。
図2Cを参照すると、1つの実施形態では、汎用レジスタ1(GR1)220は、例えば、例えば補助プロセッサ・キュー・ステータス・ワード(APQSW)222(例えば、ビット32~63)を含む64ビット・レジスタである。プロセス補助プロセッサ・キュー命令の完了時に、特定の機能に対して別段の記載がない限り、APQSWフィールドは、APキュー・ステータス・ワードを含む。APキュー・ステータス・ワードは、例えば、命令の完了時のAPキューの状態を示す。
さらに、図2Dを参照すると、1つの実施形態では、汎用レジスタ2(GR2)230は、例えば、複数のフィールドを含む64ビット・レジスタである。本明細書で説明するように、1つの実施形態では、ビット位置0~31は、設定されると、インストールされたAP機能および他の関連情報のマスクを含む。本発明の1つまたは複数の態様によるGR2の例示のフィールドは、例えば、以下を含む。
モード232:設定されるとき、このフィールド(例えば、ビット3~5)は、複数の可能なAPモード機能を示す。例えば、D(例えば、ビット3)が1であるとき、指定されたAPはコプロセッサ・モード機能を提供し、A(例えば、ビット4)が1であるとき、指定されたAPはアクセラレータ・モード機能を提供し、X(例えば、ビット5)が1であるとき、指定されたAPはXCPモード機能を提供する。
SL234:このフィールド(例えば、ビット7)が1であるとき、本発明の1つまたは複数の態様のステートレスAPコマンド・フィルタリング機能(SAPCF)がインストールされる。SAPCF機能は、例えば、PCI-X(周辺構成要素相互接続拡張)クリプト・デバイス機能であり、それは、例えば、1つの実施形態では、z/Architectureアーキテクチャ・モードでインストールされる。
分類236:このフィールド(例えば、ビット8から15)は、指定された補助プロセッサ(AP)の機能的能力に関する情報を含む。各ビットは、レジスタのモード・フィールド(例えば、ビット3~5)に示されるように、補助プロセッサによって提供される機能に関連する特定の機能的能力を表す。ゼロが、例えば、分類フィールドのビット8から15に格納される場合、フル・ネイティブ・カード機能が、指定されたAPで利用可能である。分類フィールドは、PCI-Xクリプト・デバイス機能ではなく、システムフォームウェアによって設定されない。むしろ、フル・ネイティブ・カード機能またはフル・ネイティブ・カード機能の1つまたは複数のサブセットのいずれかを、ゲストの特権に基づいて、ゲストのうちの1つまたは複数に提供するようにハイパーバイザによってオプションとして設定される。例として、ビット8は、フルAPコマンド・セット(FAPCS)機能を示す。ビット8が1値(例えば、1)に設定されると、それは、フル・ネイティブ・カード機能が、指定された補助プロセッサで利用可能であることを示す。ビット8が設定される(例えば、1に設定される)と、ゼロ(1つの例では)が、ビット9に格納される。ビット9は、例えば、ステートレスAPコマンド(SAPC)機能を示す。ビット9が1値(例えば、1)に設定されると、ステートレス機能のみが指定された補助プロセッサで利用可能であることを示す。ビット9が設定される(例えば、1に設定される)と、ゼロ(1つの例では)が、ビット8に格納される。ビット10~15は、1つの例では予約されている。
コンピューティング環境によってサポートされ得る、他の機能、または1つまたは複数の機能に関連する情報、あるいはその両方は、例えばビット0~31内のマスクの1つまたは複数のビットによって示され得る。
補助プロセッサ・タイプ(AT)238:このフィールド(例えば、ビット位置32~39)は、例えば、様々な補助プロセッサ・タイプを示す0~255の範囲の例示の有効なAPタイプ値を含む。
APキュー・エントリ(QD)240の数:構成における各APキューのキュー・エントリの数。QDは、一例として、例えば0~31の範囲の値であり、例えば1~32の10進数の範囲のキュー・エントリの数を表す。
1つの例では、汎用レジスタ2に返されるインストールされた機能情報は、同じAPタイプで、(統合されたAP(例えば、APタイプ10以上)の場合)同じ構成モードのすべてのAPに適用される。インストールされた機能情報は、1つの例では、少なくとも次のサブシステム・リセットまで持続する。機能を同時に加えることができる。機能は、APタイプの最後のAPが構成解除されるとき、同時に取り除かれる場合もあり取り除かれない場合もある。
汎用レジスタ2は、TAPQ機能が、例えば、状態コード0(正常な完了)、または状態コード3、応答コード、例えば、02~05(予期しない状態、例えば、進行中のAPキュー・リセット、AP構成解除、APチェックストップ、APビジー)により完了したとき、定義された通りに変更される。そうでなければ、汎用レジスタ2は変更されない。
特定のフィールド、フィールドの場所、フィールドのサイズ、ビット、およびフィールドもしくはビットの値が、本明細書の1つの実施形態において、プロセス補助プロセッサ・キュー命令および関連するレジスタについて説明されているが、他のフィールド、フィールドの場所、フィールドのサイズ、ビット、フィールドもしくはビットの値、あるいはその組合せが、本発明の1つまたは複数の態様から逸脱することなく使用されてもよい。本明細書に記載されていない汎用レジスタの各々のフィールドまたはビットあるいはその両方は、ブランクであってもよく、事前定義された値(例えば、ゼロ)を有してもよく、または1つの実施形態では無視され得る値を含んでもよく、あるいはその組合せである。多くの可能性が存在する。
1つまたは複数の態様によれば、補助プロセッサ(例えば、クリプト・カード)は、異なるタイプのコマンドの属性を認識する論理を有する。これらの属性は、1つの実施形態では、一緒にして考慮されるとき、コマンドのセットおよびサブセットを定義する。異なるタイプのコマンドは、1つの実施形態では、ハイパーバイザによって提供される。ハイパーバイザは、例えば、コマンド要求を受け取ることができる顧客のセットに基づいて、コマンド・タイプ・タグのセットを決定する。例えば、コマンド・タイプ・タグのセットによって表され得るコマンドのタイプは、例えば、コマンド要求を受け取ることができる顧客のコンピューティング・ポリシー(例えば、ライセンス条項、許可、例えば高い可用性要件などのリソース要件、など)に基づく。
1つの例では、コマンドには、コマンドの属性を表すタグのセット(例えば、ポリシーまたはフィルタリング・タグ)が関連づけられており、同じタグを有するコマンドはグループと見なすことができる。同じコマンドが、ハイパーバイザが課したコマンド・タイプ・タグのセットに基づいて多数のコマンド・タイプ・セットに現れ得る。例えば、コマンドは、コマンドが有効なステートレス・コマンド・タイプ・コマンドであることを示すためのステートレス・コマンド・タイプ・タグ、コマンドが有効なマスター・キー・コマンド・タイプ・コマンドであることを示すマスターキー・コマンド・タイプ・タグ、などを有することができる。コマンド・タイプ、コマンド・タイプ機能、およびコマンド・タイプ・コマンドには様々な可能性があり、各コマンドは、それに関連する1つまたは複数のコマンド・タイプ・タグを有することができる。
コマンド・タイプ・タグのセットの指示は、補助プロセッサによって取得される(例えば、提供される、受け取られる、取り出される、など)。補助プロセッサ(例えば、補助プロセッサ・ファームウェア)は、ハイパーバイザによって要求され得るコマンド・タイプ・タグのセットに基づいて、予期されるコマンドを異なるコマンドのセットに分離する。例えば、1つの特定の例では、補助プロセッサは、セキュア・キー・コマンド・タイプ・コマンド(例えば、呼び出し元によって要求されたときにセキュア・キー・コマンドを無効にするために使用される)のためのタグと、ステートレス・コマンド・タイプ・コマンドのためのタグとを含むコマンド・タイプ・タグのセットを受け取る。それゆえに、補助プロセッサは、暗号化キー(例えば、セキュア・キー・コマンド・タイプ・コマンド)を使用するコマンドをセキュア・キー・コマンド・タイプ・コマンド・セットの一部と見なし、コマンドの残りは、各コマンドのコマンド属性を使用するステートレス・コマンド・タイプ・コマンド・セットの一部と見なされる。ハイパーバイザが他のフィルタリング機能に他のタグを提供する他の実施形態では、他のタグに対応するコマンドをもつ他のコマンド・セットが提供される。多くのタイプのコマンド・セットが可能である。
さらに、1つの実施形態では、コマンド要求は、本発明の1つまたは複数の態様に従って、コマンドごとのフィルタリングを行うために使用される1つまたは複数のコマンド・タイプ・フィルタリング・インジケータなどの1つまたは複数のフィルタリング・インジケータを含むように構成される。コマンド要求に含まれる選択されたコマンド・タイプ・フィルタリング・インジケータに関するさらなる詳細が、図3A~図3Bを参照して説明される。
図3Aを参照すると、1つの例では、APコマンド要求メッセージ300は、ヘッダ302、サブヘッダ304、および複数のパケット306~312を含む。1つの例では、パケットのうちの1つまたは複数(例えば、パケット-1 308~310のうちの1つまたは複数)は、コマンドを提供するように構成され、パケットのうちの1つまたは複数(例えば、パケット-2 312)は、入力データを提供するように構成される。パケットのうちの1つは、本発明の一態様による、コマンド・タイプ・フィルタリングに関連する1つまたは複数のフィルタリング・インジケータを含む要求接続プログラミング要求ブロック(CPRB)308を含む。
例えば、図3Bに示されるように、要求CPRB308は、1つまたは複数のコマンド・タイプ・フィルタリング・インジケータを含むAPコマンド・フィルタ・マスク320を含む。コマンド・タイプ・フィルタリング・インジケータの1つの例は、ステートレス・コマンド・タイプ・インジケータ322である。このインジケータは、許可されたコマンド・セットが、ステートレス・コマンド・タイプ・コマンドのためのもの(例えば、1に設定された、選択されたビットなどのインジケータ322)であるか、またはフル・コマンド・セットのためのもの(例えば、0に設定されたインジケータ322)であるかどうかを示す。他のインジケータ、フラグ、ビットなどが、フィルタリングされ得る他のタイプのコマンドを示すために、要求CPRB308に含まれてもよい。例えば、別のインジケータは、マスター・キーに基づくフィルタリングを示すことができる。多くの他の例が可能である。
メッセージに応じて、応答が、提供され、1つの例では、APコマンド応答メッセージの形態のものであり、その一例が、図3Cに示される。図示のように、APコマンド応答メッセージ330は、例えば、ヘッダ332、サブヘッダ334、および複数のパケット336~340を含む。パケットのうちの1つは、本発明の一態様に従って、要求への応答を含み、エラーを示すことができる応答CPRB336を含む。
例えば、図3Dに示されるように、応答CPRB336は、エラー指示350を含む。エラー指示は、顧客が要求したコマンドが、定義されたコマンド・タイプ・タグのセット(例えば、ハイパーバイザまたは別のエンティティによって課された)によって許可されていないことを報告するためのエラー・コード(例えばCPRB return_code/reason_code)を含むことができる。
1つの例では、図3Eを参照すると、エラー・コードは、選択されたAP応答コード(例えば、8B無効ステートレス・コマンド)に変換され、応答コード・フィールド352内のヘッダ332に格納される。これにより、エラー・コードのための中央場所が提供される。
1つの実施形態では、APコマンド要求メッセージが、プロセス中の状態に入った後、ステートレスAPコマンド・フィルタリング機能がインストールされており、APコマンド要求メッセージが、CPRBにおいてステートレス・コマンド・タイプ・ビット(例えばステートレス・コマンド・タイプ・インジケータ322)を1に設定するが、ステートレスAPコマンドを指定しない場合、またはステートレスAPコマンド・フィルタリング機能がインストールされていないが、ステートレスAPコマンド機能がインストールされており、APコマンド要求メッセージがステートレスAPコマンドを指定していない場合、コマンド要求の通常の処理は終了する。1つの例として、フォーマット-1サブヘッダを指定するタイプ-86コマンド応答メッセージが、応答コード8Bにより返される。
1つの態様では、コマンド要求メッセージは、本明細書ではターゲット補助プロセッサと呼ぶ特定の補助プロセッサを対象にする。それゆえに、本発明の態様によれば、ターゲット補助プロセッサがコマンドを実行することができるかどうかに関して決定が行われる。例えば、コマンド要求が、要求元が特定のフィルタリング機能またはモードのコマンドを実行することのみ許可されていることを示すフィルタリング・インジケータ(例えば、ステートレス・コマンド・タイプ・インジケータ322などの選択されたコマンド・タイプ・フィルタリング・インジケータ)を含む場合、ターゲット補助プロセッサが、コマンド・タイプ・フィルタリング、特に、コマンドによって示される特定のフィルタリング機能をサポートするかどうかに関して決定が行われる。1つの例では、これは、プロセス補助プロセッサ・キュー命令または同様のタイプの命令を介して決定される。ターゲット補助プロセッサが特定のコマンド・タイプ・フィルタリング・モードをサポートしない場合、本発明の一態様によれば、コマンドは、特定のコマンド・タイプ・フィルタリング・モードをサポートする別の補助プロセッサでコマンドを実行し、結果をチェックし、次いで、結果が、選択されたコマンド・タイプ・フィルタリング・モードに対して有効なコマンドを示す場合にターゲット補助プロセッサでコマンドを実行することによってシミュレートされる。
コマンド・シミュレーションに関するさらなる詳細が、図4A~図4Bを参照して説明される。図4A~図4Bの例では、コンピューティング環境はクラウド環境であるが、しかしながら、他の実施形態では、コンピューティング環境は非クラウド環境である。本発明の態様は、特定のコンピューティング環境に限定されない。さらに、図4A~図4Bの例では、補助プロセッサは、暗号カードである。しかしながら、フィルタリングは、他の補助プロセッサによって使用されてもよく、暗号カードは1つの例にすぎない。
図4Aを参照すると、1つの実施形態では、ハイパーバイザ(例えば、以下で説明するハイパーバイザ672(図6C)、692(図6D))は、アカウント構成404(例えば、クラウド・アカウント構成)に基づくゲストの要求ポリシー402(例えばクラウド要求ポリシー)を取得し(例えば、受け取り、提供され、取り出し、アクセス権を有し、など)、ゲストの動作モードを決定する(ステップ400)。要求ポリシー402は、例えば、アカウント構成404によって提供される要求元のコンピューティング・ポリシー(例えば、ライセンス条項、高い可用性要件などリソース要件、または許可、あるいはその組合せ)に基づいて要求元のために処理されるべき各要求元(例えば、ゲスト、呼び出し元、顧客)の許容コマンド・タイプに対する指示を含む。要求ポリシーに基づいて、ハイパーバイザは、構成に対するゲストの能力を示すために分類236に少なくとも1つの指示(例えば、少なくとも1つのビット)を設定する。例えば、ゲストが、要求ポリシーに基づいて、フルAPコマンド・セットにアクセスすることを許可される場合、ビット8は1に設定され、ビット9はゼロに設定されるが、しかしながら、ゲストが、ステートレス・コマンド・タイプ・コマンドなど選択されたコマンドのサブセットにアクセスすることのみを許可される場合、ビット8はゼロに設定され、ビット9は1に設定される。他のビットは、他のタイプの機能に使用されることになる。ビットの設定は、構成のためのゲストの動作モードを示す構成の補助プロセッサのすべてに適用される。例として、分類236の設定は、要求を受け取ることに基づいてゲストの初期プログラム・ロード(IPL)時に、または1つまたは複数のゲストに対して別の時間に実行されて、各ゲストの動作モードを反映して、保存される(例えば、各ゲストのための分類)。他の実施形態が可能である。
加えて、ハイパーバイザは、本明細書で説明するように、シミュレーション・プロセスで使用される初期補助プロセッサ・コマンド・リスト408を取得する(例えば、受け取る、提供される、取り出す、アクセス権を有する、など)。一例として、以下で説明するように、ハイパーバイザは、選択されたコマンド・タイプ・フィルタリング機能(例えば、ステートレスAPコマンド・フィルタリング機能)をサポートする暗号カードから取得された情報に基づいて、APコマンド・リストを動的に生成し、例えば、選択されたコマンド・タイプ・フィルタリング機能をサポートしないターゲット暗号カードのステートレスAPコマンド・フィルタリング動作をシミュレートする際にコマンド・リストを使用する。1つの例では、それは、すべてゼロ(空リスト)、またはステートレスAPコマンド・インジケータをもつ既知のステートレスAPコマンド(または他の機能のコマンド)のリストなどのデフォルト値でAPコマンド・リストを初期化する。
さらに、ハイパーバイザは、ゲストからのAPコマンド要求メッセージ406(例えばメッセージ300)を取得する(例えば、受け取る、提供される、取り出す、アクセス権を有する、など)(STEP405)。一例として、ハイパーバイザは、ゲストからのAPコマンドをインターセプトし、その後、APコマンドは、ゲスト・プログラムが、z/Architectureハードウェア・アーキテクチャのNQAP(エンキュー補助プロセッサ・キュー)命令などのエンキュー命令、または別のアーキテクチャの別のエンキュー命令を介してAPコマンドをターゲットAPキューにエンキューすることに基づいて、ターゲットAPキューにエンキューされる。
ハイパーバイザは、ゲストが補助プロセッサの構成されたコマンド・セット・モード(例えば、コマンドのコプロセッサ・フル・セット)に対して認可されているかどうかを決定する(問い合わせ410)。一例として、ハイパーバイザは、要求ポリシー402(ゲストのコンピューティング・ポリシーに基づいている)に基づいている分類236をチェックすることによって、ゲストがコマンドのフル・セット(例えば、コプロセッサ・モード)または縮小されたコマンドのセット(例えば、ステートレス・コマンド・フィルタリング・モード)へのアクセス権を有しているかどうかを決定する。ゲストが、構成されたコマンド・セット・モードに対して認可されている場合、ハイパーバイザは、APコマンドをターゲット補助プロセッサに送り、APコマンドは、ターゲット補助プロセッサ(例えば、クリプト・カード)で実行され、結果が、ゲストに返される(ステップ412)。
しかしながら、ゲストが、構成されたコマンド・セット・モードに対して認可されないが、代わりに、ステートレス・コマンド・フィルタリング・モードなどの選択されたモードに対して認可されている(問い合わせ410)場合、例えばハイパーバイザによって、選択されたコマンド・タイプ・フィルタリング機能をサポートするマシン構成の暗号カードがあるかどうかに関してさらなる決定が行われる(問い合わせ414)。例えば、ステートレス・コマンド・フィルタリング機能が暗号カードのいずれかによってサポートされるかどうかに関して決定が行われる。これは、例えば、各暗号カードに対してプロセス補助プロセッサ・キュー命令を実行することによって決定され得る。選択されたコマンド・タイプ・フィルタリング機能をサポートする暗号カードがないことが決定された場合、ハイパーバイザは、ゲストが暗号カードのいずれを使用することも許可されていないので、APコマンドを拒否する(ステップ416)。
問い合わせ414に戻ると、しかしながら、選択されたコマンド・タイプ・フィルタリング機能をサポートする少なくとも1つの暗号カードがある場合、例えばハイパーバイザによって、ターゲット暗号カードが、選択されたコマンド・タイプ・フィルタリング機能をサポートするかどうかに関してさらなる決定が行われる(問い合わせ420)。ターゲット暗号カードが、プロセス補助プロセッサ・キュー命令によって示されるように、選択されたコマンド・タイプ・フィルタリング機能をサポートしている場合、ハイパーバイザは、コマンド要求における選択されたコマンド・タイプ・フィルタリング・インジケータなどのフィルタリング・インジケータを選択値(例えば、1)に設定し、処理のためにコマンドをターゲット暗号カードに送る(ステップ422)。例えば、要求CPRB308内のステートレス・コマンド・タイプ・インジケータ322が、1に設定され、次いで、要求が、処理のためにターゲット暗号カードに送られる。
ターゲット暗号カードは、コマンド要求メッセージを取得し(例えば、受け取り、提供され、取り出し、など)、コマンドが、選択されたコマンド・タイプ・フィルタリング・モードに対して有効なコマンドであるかどうかを決定する(問い合わせ424)。例えば、選択されたコマンド・タイプ・フィルタリング機能のコマンドのセットのコマンド部分であるか?コマンドが、選択されたコマンド・タイプ・フィルタリング機能のコマンドのセットの一部である場合、コマンドは、ターゲット暗号カードによって実行され、結果は、暗号カードのコマンド応答メッセージに配置され、それは、例えば、APトランスポート層に送られる(ステップ426)。トランスポート層は、暗号カードから受け取ったコマンド応答メッセージをAPコマンド応答メッセージ(例えば、メッセージ330)に変換し、それが、ゲストに返される(ステップ428)。
問い合わせ424に戻ると、コマンドが、有効な選択されたコマンド・タイプ・フィルタリング・コマンドでない(例えば、選択されたコマンド・タイプ・フィルタリング機能のコマンドのセット内にない)場合、コマンドは、ターゲット暗号カードによって、無効な選択されたコマンド・タイプ・フィルタリング・コマンドとして拒否され、そのような指示が、トランスポート層に返される(ステップ430)。例えば、一例として、選択されたエラー・コード(例えば、エラー・コード350)が、暗号カードの応答メッセージの応答CPRBに含まれ、応答メッセージが、トランスポート層に送られる。トランスポート層は、暗号カードから受け取った応答メッセージを変換し、応答CPRB336のエラー・コード350ならびにヘッダ332内の応答コード352を含むAPコマンド応答メッセージ330を提供する。例えば、トランスポート層は、CPRB内の選択されたエラー・コードをAP応答コード(例えば、8B)に変換し、それをAP応答メッセージ・ヘッダのAP応答コード・フィールド(例えば、応答コード352)に配置し、応答コードのアクセスを容易にする(ステップ432)。応答メッセージは、ゲストに送られる(ステップ428)。
問い合わせ420に戻ると、ターゲット暗号カードが、選択されたコマンド・タイプ・フィルタリング機能(例えば、ステートレス・コマンド・フィルタリング機能)をサポートしていない場合、本発明の一態様によれば、ハイパーバイザは、以下で説明するように、選択されたコマンド・タイプ・フィルタリング動作(例えば、ステートレス・コマンド・フィルタリング動作)をシミュレートし、動作の結果が、ゲストに返される(ステップ450)。選択されたコマンド・タイプ・フィルタリング動作をシミュレートすることのさらなる詳細が、図4Bを参照して説明される。
図4Bを参照すると、1つの実施形態では、ハイパーバイザは、要求されたコマンドに関するAPコマンド・リスト(例えば、APコマンド・リスト408)をチェックする(ステップ452)。例えば、ハイパーバイザは、APコマンド・リストをチェックして、ターゲットAPコマンドがAPコマンド・リストに含まれているかどうかを調べる。要求されたコマンドがリストに載っていない場合(問い合わせ454)、適切なフィルタリング・インジケータ(例えば、ステートレス・コマンド・タイプ・インジケータ322などの選択されたコマンド・タイプ・フィルタリング・インジケータ)が、選択値、例えば1に設定され(ステップ456)、コマンドは、選択されたコマンド・タイプ・フィルタリング機能をサポートする暗号カードのうちの1つに送られる。
暗号カードは、コマンドを処理し、ハイパーバイザは、結果をチェックする(ステップ458)。結果が、選択されたコマンド・タイプ・フィルタリング機能に対して有効なコマンドを示す場合(問い合わせ460)、ハイパーバイザは、APコマンドをAPコマンド・リストに、選択されたコマンド・タイプ・フィルタリング・コマンドとして(例えば、ステートレスAPコマンド・タイプ・コマンドとして)加える(ステップ462)。その上、APコマンドは、ターゲット暗号カードで実行され、結果がゲストに返される(ステップ464)。
問い合わせ460に戻ると、結果が、例えばエラー・コードを介して、選択されたコマンド・タイプ・フィルタリング機能に対して無効なコマンドを示す場合、ハイパーバイザは、コマンドをコマンド・リストに、有効なAPコマンドとして(但し、有効な選択されたコマンド・タイプ・フィルタリング・コマンドとしてではなく)加え(ステップ466)、APコマンドは拒否される(ステップ468)。例えば、ハイパーバイザは、APコマンド応答メッセージ・ヘッダ(例えば、ヘッダ332)のAP応答コード・フィールド(例えば、応答コード352)に、新しいAP応答コード8Bをもつ無効なステートレスAPコマンドエラー応答メッセージを構成することによって、APコマンドを無効な選択されたコマンド・タイプ・フィルタリング・コマンドとして拒否し、コマンドが、選択されたAPコマンド・タイプ・コマンドではないことをゲストに示すために、構成されたAP応答メッセージをAPコマンドをエンキューしたゲストに返す。
問い合わせ454に戻ると、APコマンドがAPコマンド・リストに載っている場合、例えばハイパーバイザによって、コマンドが、選択されたコマンド・タイプ・フィルタリング機能に対して有効なコマンドであるかどうかに関してさらなる決定が行われる(問い合わせ470)。コマンドが、選択されたコマンド・タイプ・フィルタリング機能に対して有効である場合、処理は、ステップ464に続き、APコマンドは、ハイパーバイザによってターゲット暗号カードに送られ、コマンドは、ターゲット暗号カードで実行され、結果が、ゲストに返される。しかしながら、APコマンドが、選択されたコマンド・タイプ・フィルタリング機能に対して無効である場合、APコマンドは、上述のように、ハイパーバイザによって、選択されたコマンド・タイプ・フィルタリング機能に対して無効なコマンドとして拒否され、結果が、ゲストに返される(ステップ468)。
1つの実施形態では、ゲスト・プログラムが、例えば、z/Architectureハードウェア・アーキテクチャのデキュー補助プロセス・キュー(DQAP)命令または別のアーキテクチャの命令などのデキュー命令を介して、APキューからAPコマンド応答メッセージ(例えばメッセージ330)をデキューするとき、それは、暗号カードから(ハイパーバイザ・シミュレーションまたはクリプト・カードのいずれかから)処理されたAPコマンド応答メッセージを受け取る。ゲスト・プログラムは、APコマンドがハイパーバイザ・シミュレーションまたはクリプト・カードによって拒否されたかどうかにかかわらず、AP応答コード(例えば、応答コード352)内の同じエラー・コード、例えば、コード8Bを調べる。しかしながら、1つの実施形態では、暗号カードが、APコマンドを処理し、ハイパーバイザ・シミュレーションを処理しなかった場合、ゲスト・プログラムは、コマンド応答メッセージのCPRB内のエラー・コードのみを調べることになる。それゆえに、CPRBエラー・コードは、APコマンド応答メッセージを検査することによってエラーの生成元を決定するために使用することができる。
本明細書で説明するように、1つの実施形態では、ゲストがコマンドのサブセット(例えば、ステートレス・コマンド・タイプ・コマンド)のみの実行を許可されているが、ハイパーバイザの構成内の暗号カードのどれも選択されたモード(例えば、ステートレスAPコマンド・フィルタリング)をサポートしていない場合、ハイパーバイザは、ステートレスAPコマンド・フィルタリング機能をそれ自体でシミュレートせず、ゲストが暗号カードを使用することを許可しない。
しかしながら、本発明の一態様によれば、ゲストが、選択されたコマンド・タイプ・フィルタリング・モード(例えば、ステートレスAPコマンド・フィルタリング・モード)で動作しているが、選択されたコマンド・タイプ・フィルタリング機能が、ターゲット暗号カードにインストールされていない場合、ハイパーバイザは、コマンドをシミュレートすることによって、APコマンドが、選択されたコマンド・タイプ・フィルタリング機能のコマンドかどうかを確認する。これは、1つの例では、暗号カード・タイプごとにサポートする選択されたコマンドの静的リストを保持する代わりに実行され、これは、かなり負担であり、マシン立ち上げ試験に間に合うように取得することは容易でない。それは、選択されたコマンド・タイプ・モードをサポートする他の暗号カードのうちの1つからの情報を使用して、選択されたコマンド・タイプ・モード機能をサポートしないターゲット暗号カードでコマンドをシミュレートする。APコマンド応答メッセージは、ハイパーバイザによって構成され、結果が、ゲストに送られる。
ゲストが、選択されたコマンド・タイプ・モードで動作しており、選択されたコマンド・タイプ・モードに対応する選択されたAPコマンド・タイプ・フィルタリング機能が、ターゲット暗号カードにインストールされている場合、ハイパーバイザは、CPRBにステートレス・コマンド・タイプ・インジケータを設定し、ターゲット暗号カードにコマンドを送って実行させる。
1つの実施形態では、暗号カードは、ハイパーバイザからのコマンド要求メッセージ(例えば、APコマンド要求メッセージ300)を受け取り、コマンドが、CPRB内のハイパーバイザが課したコマンド・タイプ・フィルタリング・インジケータのセットに基づいて実行されることを許可されているかどうかを決定し、コマンドが、ハイパーバイザが課したコマンド・タイプ・インジケータのセットに基づいて有効であると決定された場合、コマンドを実行し、結果が、コマンド応答メッセージに配置される。コマンド応答メッセージは、例えば、APコマンド・トランスポート層(例えば、トランスポート層110、160)に送られ、APコマンド・トランスポート層は、コマンド応答メッセージをAPコマンド応答メッセージ330に変換する。さらに、それは、CPRB内のフィルタリング・エラー・コード(見いだされた場合)を、選択されたAP応答コード、例えば8Bに変換する。トランスポート層は、応答コードを、APコマンド応答メッセージ・ヘッダ(例えば、ヘッダ332)内のAP応答コード・フィールド(例えば、応答コード352)に配置し、結果をゲストに送る。
本発明の一態様によれば、ハイパーバイザが課したコマンド・タイプ・フィルタリング・インジケータのセットによって許可されていないAPコマンドをゲストが要求したことをクリプト・カードが報告するために、APコマンド応答メッセージの応答CPRB内のエラー報告フィールドにエラー・コード(例えば、無効なステートレスAPコマンドエラー・コード)が定義される。クリプト・カードは、APコマンド応答メッセージの応答CPRB内のエラー報告フィールドでAPコマンド・タイプ・フィルタリング・エラー・コードを報告する。しかしながら、CPRB内の暗号カード・エラー・コードは、異なるモード(例えば、コプロセッサ・モード、EP11モード)では異なるオフセットで配置され、そのメッセージ構造およびフォーマットは異なる。それゆえに、補助プロセッサ・モードに依存しないAPエラー・コード(例えば、AP応答コード)を返す中央場所が設けられて、誰がエラーを生成するかにかかわらず、ハイパーバイザならびにゲストがエラー・コードを容易に捜し出す。その結果、無効な選択モード・エラー・コード(例えば、AP応答コード8B)が、APコマンド応答メッセージ・ヘッダのAP応答コード・フィールド(例えば、応答コード352)内に定義されて、フィルタリングされた非ステートレスAPコマンドエラーを報告する。AP応答コードは、APメッセージのための共通エラー報告フィールドであり、その理由は、共通エラー報告フィールドは、誰(コマンド・タイプ・フィルタリング・シミュレーションを使用するハイパーバイザ、コプロセッサ・モードの暗号カード、XCPモードの暗号カード、またはアクセラレータ・モードの暗号カード、など)がエラーを生成するかにかかわらず、ゲストがエラー・コードを捜し出しやすくするからである。しかしながら、暗号カードは、AP応答コード・フィールドへのアクセス権を有しておらず、それゆえに、AP応答コードをAPコマンド応答メッセージ・ヘッダ内のAP応答コードに格納しない。APコマンド応答メッセージの応答CPRB内のエラー報告フィールドに格納される暗号カード・エラー・コードは、一般に、APアーキテクチャの範囲外である。それゆえに、トランスポート層は、APコマンド応答メッセージの応答CPRB内のエラー報告フィールドで選択コマンド・タイプ・フィルタリング・モード・エラー・コードを探し、CPRB内のエラー・コードを応答コード、例えば、8Bに変換し、それをAP応答コードに配置するように構成される。
APコマンド応答メッセージの応答CPRB内のエラー報告フィールドに無効な選択モード・コマンド・エラー・コードがあることは、ハイパーバイザ・シミュレーションが、無効な選択モード・コマンド・エラー・コードをAPコマンド応答メッセージの応答CPRB内のエラー報告フィールドに格納しないので、AP応答コードが暗号カードまたはハイパーバイザ・シミュレーションによって生成されたかどうかを決定するためのデバッギング目的に有用である。
本発明の1つまたは複数の態様は、コンピュータ技術に密接に結び付けられており、コンピューティング環境内でのコマンド処理を含む処理を容易にし、その性能を改善する。コンピューティング環境内での処理を容易にすることに関連する態様の1つの実施形態のさらなる詳細が、図5A~図5Bを参照して説明される。
図5Aを参照すると、1つの実施形態では、コンピューティング環境の複数の補助プロセッサのうちのターゲット補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されているかどうかに関して決定が行われ(500)、複数の補助プロセッサのうちの別の補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されているかどうかに関するチェックが行われる(502)。
ターゲット補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていないという決定に基づいて、および別の補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていることに基づいて、コマンドは、選択されたコマンド・タイプ・フィルタリング・モードに対してコマンドが有効であるかどうかを決定するための処理のために別の補助プロセッサに転送される(504)。別の補助プロセッサでの処理に基づいて、コマンドが、選択されたコマンド・タイプ・フィルタリング・モードに対して有効であるかどうかの指示が取得される(506)。
コマンドは、選択されたコマンド・タイプ・フィルタリング・モードに対してコマンドが有効であるという指示の取得に基づいて、実行のためにターゲット補助プロセッサに送られる(508)。
1つの実施形態では、コマンドは、選択されたコマンド・タイプ・フィルタリング・モードに対してコマンドが無効であるという指示の取得に基づいて、選択されたコマンド・タイプ・フィルタリング・モードに対して無効であるとして拒否され、ターゲット補助プロセッサで実行することが控えられる(510)。
加えて、1つの例では、エラー・コードは、エラー・コードへのアクセスを容易にするために中央場所に配置される(512)。
例として、選択されたコマンド・タイプ・フィルタリング・モードは、ステートレス・コマンド・フィルタリング・モードであり(514)、複数の補助プロセッサは、複数の暗号カードを含む(516)。
図5Bを参照すると、1つの実施形態では、コマンドは、選択されたコマンド・タイプ・フィルタリング・モードに対してコマンドが有効であるという指示の取得に基づいて、選択されたコマンド・タイプ・フィルタリング・モード・コマンドとしてコマンド・リストに加えられる(518)。コマンド・リストは、どのコマンドがターゲット補助プロセッサでの実行に有効であるかを決定するために使用され得る(520)。さらに、1つの実施形態では、コマンドは、選択されたコマンド・タイプ・フィルタリング・モードに対してコマンドが無効であるという指示の取得に基づいて、有効な補助プロセッサ・コマンドとしてコマンド・リストに加えられる(522)。
1つの実施形態では、コマンドは、複数の補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていないという決定に基づいて拒否される(524)。
さらに、1つの実施形態では、ターゲット補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていないという決定に基づいて、および別の補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていることに基づいて、コマンドがコマンド・リストに載っているかどうかに関して決定が行われ、コマンド・リストは、コマンドがターゲット補助プロセッサで実行され得るかどうかを決定するために使用され得る(526)。コマンドがコマンド・リストに載っていないという決定に基づいて、コマンドは、処理のために別の補助プロセッサに転送される(528)。
1つの実施形態では、コマンドは、別の補助プロセッサでのコマンドの実行の成功に基づいて、有効な選択されたコマンド・タイプ・フィルタリング・モード・コマンドとしてコマンド・リストに加えられる(530)。その上、コマンドは、別の補助プロセッサでのコマンドの実行の不成功に基づいて、有効な補助プロセッサ・コマンドとしてコマンド・リストに加えられる(532)。
他の変形および実施形態が可能である。
本発明の1つまたは複数の態様のコマンド・タイプ・フィルタリングは、多くのコンピューティング環境に組み込まれ使用され得る。1つの例示のコンピューティング環境が、図6Aを参照して説明される。一例として、コンピューティング環境は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションによって供されるz/Architecture(R)ハードウェア・アーキテクチャに基づく。しかしながら、z/Architectureハードウェア・アーキテクチャは、1つの例示のアーキテクチャにすぎない。コンピューティング環境は、限定はしないが、Intel x86アーキテクチャ、インターナショナル・ビジネス・マシーンズ・コーポレーションの他のアーキテクチャ、または他の会社のアーキテクチャ、あるいはその組合せを含む他のアーキテクチャに基づくこともできる。
図6Aに示されるように、コンピューティング環境600は、例えば、例えば汎用コンピューティング・デバイスの形態で示されるコンピュータ・システム602を含む。コンピュータ・システム602は、限定はしないが、1つまたは複数のプロセッサまたは処理ユニット604(例えば、中央処理装置(CPU))、メモリ606(別名、例として、システム・メモリ、メイン・メモリ、メイン・ストレージ、中央ストレージ、またはストレージ)、および1つまたは複数の入力/出力(I/O)インターフェース608を含むことができ、それらは、1つまたは複数のバスまたは他の接続あるいはその両方610を介して互いに結合される。
バス610は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィック・ポート、および様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、いくつかのタイプのバス構造のいずれかの1つまたは複数を表す。例として、限定ではなく、そのようなアーキテクチャは、産業標準アーキテクチャ(ISA)、マイクロ・チャネル・アーキテクチャ(MCA)、エンハンストISA(EISA)、ビデオ電子機器規格協会(VESA)ローカル・バス、および周辺構成要素相互接続(PCI)を含む。
メモリ606は、例えば、プロセッサ604のローカル・キャッシュ614に結合され得る共有キャッシュなどのキャッシュ612を含むことができる。さらに、メモリ606は、1つまたは複数のプログラムまたはアプリケーション616と、少なくとも1つのオペレーティング・システム618と、1つまたは複数のコンピュータ可読プログラム命令620とを含むことができる。コンピュータ可読プログラム命令620は、本発明の態様の実施形態の機能を実行するように構成することができる。
1つの実施形態では、メモリ606(例えば、少なくともメモリ606のハードウェア・システム域)は、1つまたは複数の補助プロセッサ・バス623を介して、および1つまたは複数の実施形態ではAPトランスポート層を介して1つまたは複数の補助プロセッサ621に結合される。
コンピュータ・システム602は、例えば、I/Oインターフェース608を介して、ユーザ端末、テープ・ドライブ、ポインティング・デバイス、ディスプレイ、および1つまたは複数のデータ・ストレージ・デバイス634、などのような1つまたは複数の外部デバイス630と通信することができる。データ・ストレージ・デバイス634は、1つまたは複数のプログラム636、1つまたは複数のコンピュータ可読プログラム命令638、またはデータ、あるいはその組合せ、などを格納することができる。コンピュータ可読プログラム命令は、本発明の態様の実施形態の機能を実行するように構成することができる。
コンピュータ・システム602はまた、例えばI/Oインターフェース608を介して、ネットワーク・インターフェース632と通信することができ、それにより、コンピュータ・システム602は、ローカル・エリア・ネットワーク(LAN)、汎用ワイド・エリア・ネットワーク(WAN)、または公衆ネットワーク(例えば、インターネット)、あるいはその組合せなどの1つまたは複数のネットワークと通信し、他のコンピューティング・デバイスまたはシステムと通信することができる。
コンピュータ・システム602は、取り外し可能/取り外し不能で揮発性/不揮発性のコンピュータ・システム・ストレージ媒体を含む、またはそれに結合される、あるいはその両方であり得る。例えば、それは、取り外し不能で不揮発性の磁気媒体(一般に「ハード・ドライブ」と呼ばれる)、取り外し可能で不揮発性の磁気ディスク(例えば「フロッピー・ディスク」)への読み書きのための磁気ディスク・ドライブ、またはCD-ROM、DVD-ROM、もしくは他の光学媒体などの取り外し可能で不揮発性の光ディスクへの読み書きのための光ディスク・ドライブ、あるいはその組合せを含む、またはそれに結合される、あるいはその両方であり得る。他のハードウェア構成要素またはソフトウェア構成要素あるいはその両方がコンピュータ・システム602とともに使用され得ることを理解されたい。例には、限定はしないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システム、などが含まれる。
コンピュータ・システム602は、多数の他の汎用または専用コンピューティング・システム環境または構成により動作可能であり得る。コンピュータ・システム602による使用に適し得るよく知られているコンピューティング・システム、環境、または構成、あるいはその組合せの例には、限定はしないが、パーソナル・コンピュータ(PC)システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベース・システム、セット・トップ・ボックス、プログラマブル家庭用電化製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上述のシステムまたはデバイスのうちのいずれかを含む分散型クラウド・コンピューティング環境、などが含まれる。
本発明の1つまたは複数の態様を組み込み使用するためのコンピューティング環境の別の例が、図6Bを参照して以下で説明される。一例として、図6Bのコンピューティング環境は、インターナショナル・ビジネス・マシーンズ・コーポレーションによって供されるz/Architecture(R)ハードウェア・アーキテクチャに基づくことができる。しかしながら、z/Architectureハードウェア・アーキテクチャは、1つの例示のアーキテクチャにすぎない。再度、コンピューティング環境は、限定はしないが、インテルx86アーキテクチャ、インターナショナル・ビジネス・マシーンズ・コーポレーションの他のアーキテクチャ、または他の会社のアーキテクチャ、あるいはその組合せを含む、他のアーキテクチャに基づくこともできる。
1つの例では、コンピューティング環境650は、中央電子処理装置(CEC)652を含む。CEC652は、例えば、1つまたは複数のプロセッサ(別名、中央処理装置(CPU))656、および入力/出力(I/O)サブシステム658に結合されたメモリ654(別名、システム・メモリ、メイン・メモリ、メイン・ストレージ、中央ストレージ、ストレージ)などの複数の構成要素を含む。さらに、1つの実施形態では、メモリ654(例えば、少なくともメモリ654のハードウェア・システム域)は、1つまたは複数の補助プロセッサ・バスを介して、および1つまたは複数の実施形態ではAPトランスポート層を介して1つまたは複数の補助プロセッサ657に結合される。
I/Oサブシステム658は、中央電子処理装置の一部であってもよく、またはそれとは別個であってもよい。それは、メイン・ストレージ654と、中央電子処理装置に結合された入力/出力制御ユニット660および入力/出力(I/O)デバイス662との間の情報の流れを指示する。
多くのタイプのI/Oデバイスを使用することができる。1つの特定のタイプは、データ・ストレージ・デバイス664である。データ・ストレージ・デバイス664は、1つまたは複数のプログラム666、1つまたは複数のコンピュータ可読プログラム命令668、またはデータ、あるいはその組合せ、などを格納することができる。コンピュータ可読プログラム命令は、本発明の態様の実施形態の機能を実行するように構成することができる。
中央電子処理装置652は、取り外し可能/取り外し不能で揮発性/不揮発性のコンピュータ・システム・ストレージ媒体を含む、またはそれに結合される、あるいはその両方であり得る。例えば、それは、取り外し不能で不揮発性の磁気媒体(一般に「ハード・ドライブ」と呼ばれる)、取り外し可能で不揮発性の磁気ディスク(例えば「フロッピー・ディスク」)への読み書きのための磁気ディスク・ドライブ、またはCD-ROM、DVD-ROM、もしくは他の光学媒体などの取り外し可能で不揮発性の光ディスクへの読み書きのための光ディスク・ドライブ、あるいはその組合せを含む、またはそれに結合される、あるいはその両方であり得る。他のハードウェア構成要素またはソフトウェア構成要素あるいはその両方が中央電子処理装置652とともに使用され得ることを理解されたい。例には、限定はしないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システム、などが含まれる。
さらに、中央電子処理装置652は、多数の他の汎用または専用コンピューティング・システム環境または構成により動作可能であり得る。中央電子処理装置652による使用に適し得るよく知られているコンピューティング・システム、環境、または構成、あるいはその組合せの例には、限定はしないが、パーソナル・コンピュータ(PC)システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベース・システム、セット・トップ・ボックス、プログラマブル家庭用電化製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上述のシステムまたはデバイスのうちのいずれかを含む分散型クラウド・コンピューティング環境、などが含まれる。
中央電子処理装置652は、1つまたは複数の実施形態では、論理パーティショニングまたは仮想化サポートあるいはその両方を提供する。1つの実施形態では、図6Cに示されるように、メモリ654は、例えば、1つまたは複数の論理パーティション670と、論理パーティションを管理するハイパーバイザ672と、プロセッサ・ファームウェア674とを含む。ハイパーバイザ672の1つの例は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションによって供されるProcessor Resource/System Manager(PR/SM)である。本明細書で使用されるとき、ファームウェアは、例えば、プロセッサのマイクロコードを含む。それは、例えば、より高いレベルのマシン・コードの実装において使用されるハードウェア・レベル命令またはデータ構造あるいはその両方を含む。1つの実施形態では、それは、例えば、一般に、信頼できるソフトウェアを含むマイクロコード、または基礎的なハードウェアに固有のマイクロコードとして送り出され、システム・ハードウェアへのオペレーティング・システムのアクセスを制御する専有のコードを含む。
各論理パーティション670は、別個のシステムとして機能することができる。すなわち、各論理パーティションは、独立して、リセットされ、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションによって供されるz/OS(R)オペレーティング・システムなどのゲスト・オペレーティング・システム676、または結合機能制御コード(CFCC)などの他の制御コード678を実行し、異なるプログラム680で動作することができる。論理パーティションで動作するオペレーティング・システムまたはアプリケーション・プログラムは、全面的なおよび完全なシステムへのアクセス権を有するように見えるが、実際には、その一部のみが利用可能である。z/OSが一例として供されているが、他のオペレーティング・システムが、本発明の1つまたは複数の態様に従って使用されてもよい。
メモリ654は、論理パーティションに割り当てられ得る物理プロセッサ・リソースであるCPU656(図6B)に結合される。例えば、論理パーティション670は、1つまたは複数の論理プロセッサを含み、それらの各々は、論理パーティションに動的に割り当てられ得る物理プロセッサ・リソース656のすべてまたは割り当て分を表す。
さらに、さらなる実施形態では、中央電子処理装置は、仮想マシン・サポートを提供する(論理パーティショニング・サポートの有無にかかわらず)。図6Dに示されるように、中央電子処理装置652のメモリ654は、例えば、1つまたは複数の仮想マシン690と、仮想マシンを管理するハイパーバイザ692などの仮想マシン・マネージャと、プロセッサ・ファームウェア694とを含む。ハイパーバイザ692の1つの例は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションによって供されるz/VM(R)ハイパーバイザである。ハイパーバイザは、時には、ホストと呼ばれる。z/OSおよびz/VMは、少なくとも1つの管轄区域におけるインターナショナル・ビジネス・マシーンズ・コーポレーションの商標または登録商標である。
CPCの仮想マシン・サポートは、各々が異なるプログラム696で動作し、Linux(R)オペレーティング・システムなどのゲスト・オペレーティング・システム698を実行することができる多数の仮想マシン690を動作させる能力を提供する。各仮想マシン690は、別個のシステムとして機能することができる。すなわち、各仮想マシンは、独立して、リセットされ、ゲスト・オペレーティング・システムを実行し、異なるプログラムで動作することができる。仮想マシンで動作するオペレーティング・システムまたはアプリケーション・プログラムは、全面的なおよび完全なシステムへのアクセス権を有するように見えるが、実際には、その一部のみが利用可能である。z/VMおよびLinuxが例として供されているが、他の仮想マシン・マネージャおよびオペレーティング・システムが、本発明の1つまたは複数の態様に従って使用されてもよい。登録商標Linux (R)は、世界的規模での商標の所有者であるLinus Torvaldsの独占的ライセンシーのLinux Foundationからのサブライセンスに従って使用される。
本発明の1つまたは複数の態様を組み込み使用するコンピューティング環境の別の実施形態が、図7Aを参照して説明される。この例では、コンピューティング環境10は、例えば、例えば1つまたは複数のバス18または他の接続あるいはその両方を介して互いに結合される、ネイティブ中央処理装置(CPU)12と、メモリ14と、1つまたは複数の入力/出力デバイスまたはインターフェース16あるいはその両方とを含む。例として、コンピューティング環境10は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションによって供されるPowerPC(R)プロセッサ、カリフォルニア州パロアルトのヒューレット・パッカード・コーポレーションによって供されるIntel Itanium IIプロセッサをもつHP Superdome、またはインターナショナル・ビジネス・マシーンズ・コーポレーション、ヒューレット・パッカード、インテル・コーポレーション、オラクル、などによって供されるアーキテクチャに基づく他のマシン、あるいはその組合せを含むことができる。PowerPCは、少なくとも1つの管轄区域におけるインターナショナル・ビジネス・マシーンズ・コーポレーションの商標または登録商標である。IntelおよびItaniumは、米国および他の国々におけるインテル・コーポレーションまたはその子会社の商標または登録商標である。
ネイティブ中央処理装置12は、1つまたは複数のネイティブ・レジスタ20、例えば、環境内での処理中に使用される1つまたは複数の汎用レジスタまたは1つまたは複数の専用レジスタあるいはその両方などを含む。これらのレジスタは、任意の特定の時点の環境の状態を表す情報を含む。
その上、ネイティブ中央処理装置12は、メモリ14に格納されている命令およびコードを実行する。1つの特定の例では、中央処理装置は、メモリ14に格納されたエミュレータ・コード22を実行する。このコードにより、1つのアーキテクチャで構成されたコンピューティング環境は、別のアーキテクチャをエミュレートすることができる。例えば、エミュレータ・コード22により、PowerPCプロセッサ、HP Superdomeサーバなどのような、z/Architectureハードウェア・アーキテクチャ以外のアーキテクチャに基づくマシンが、z/Architectureハードウェア・アーキテクチャをエミュレートし、z/Architectureハードウェア・アーキテクチャに基づいて開発されたソフトウェアおよび命令を実行することができる。
エミュレータ・コード22に関連するさらなる詳細が、図7Bを参照して説明される。メモリ14に格納されたゲスト命令30は、ネイティブCPU12のアーキテクチャ以外のアーキテクチャで実行されるように開発されたソフトウェア命令(例えば、マシン命令と互いに関係がある)を含む。例えば、ゲスト命令30は、z/Architectureハードウェア・アーキテクチャに基づくプロセッサで実行するように設計されている場合があるが、代わりに、例えば、Intel Itanium IIプロセッサであり得るネイティブCPU12でエミュレートされる。1つの例では、エミュレータ・コード22は、メモリ14から1つまたは複数のゲスト命令30を取得し、オプションとして、取得した命令にローカル・バッファリングを提供するための命令フェッチング・ルーチン32を含む。それは、取得したゲスト命令のタイプを決定し、ゲスト命令を1つまたは複数の対応するネイティブ命令36に変換するための命令変換ルーチン34をさらに含む。この変換は、例えば、ゲスト命令によって実行されるべき機能を識別することと、その機能を実行するためのネイティブ命令を選ぶこととを含む。
さらに、エミュレータ・コード22は、ネイティブ命令を実行させるためのエミュレーション制御ルーチン40を含む。エミュレーション制御ルーチン40は、ネイティブCPU12に、1つまたは複数の以前に取得したゲスト命令をエミュレートするネイティブ命令のルーチンを実行させ、そのような実行の終了時に、次のゲスト命令またはゲスト命令のグループの取得をエミュレートするために命令フェッチ・ルーチンに制御を戻させることができる。ネイティブ命令36の実行は、データをメモリ14からレジスタにロードすること、データをレジスタからメモリに戻して格納すること、または変換ルーチンによって決定されるあるタイプの算術演算または論理演算を実行することを含むことができる。
各ルーチンは、例えば、ソフトウェアで実装され、ソフトウェアは、メモリに格納され、ネイティブ中央処理装置12によって実行される。他の例では、ルーチンまたは動作のうちの1つまたは複数は、ファームウェア、ハードウェア、ソフトウェア、またはそれらの組合せで実装される。エミュレートされたプロセッサのレジスタは、ネイティブCPUのレジスタ20を使用して、またはメモリ14内のロケーションを使用することよってエミュレートされ得る。実施形態では、ゲスト命令30、ネイティブ命令36、およびエミュレータ・コード22は、同じメモリに常駐してもよく、または異なるメモリ・デバイス間に分配されてもよい。
さらに、1つの実施形態では、コンピューティング環境10は、メモリ14に結合された1つまたは複数の補助プロセッサ15を含む。1つまたは複数の補助プロセッサは、あるアーキテクチャで定義され、別のアーキテクチャをエミュレートするように構成される。例えば、補助プロセッサは、エミュレートされているアーキテクチャのゲスト・コマンドを取得し、ゲスト・コマンドを1つのアーキテクチャのネイティブ・コマンドに変換し、ネイティブ・コマンドを実行する。
上述のコンピューティング環境は、使用することができるコンピューティング環境の例にすぎない。限定はしないが、パーティションされていない環境、パーティションされた環境、クラウド環境、またはエミュレートされた環境、あるいはその組合せを含む他の環境が、使用されてもよく、実施形態は、任意の1つの環境に限定されない。コンピューティング環境の様々な例が本明細書で説明されるが、本発明の1つまたは複数の態様は、多くのタイプの環境で使用することができる。本明細書で提供されるコンピューティング環境は例にすぎない。
各コンピューティング環境は、本発明の1つまたは複数の態様を含むように構成することができる。例えば、各々は、コマンド・タイプ・フィルタリングごとに、本発明の1つまたは複数の態様に従って構成され得る。
本明細書で説明されるように、1つまたは複数の態様では、コマンドごとのコマンド・タイプ・フィルタリングが提供される。多くのフィルタリング技術を使用することができる。1つの特定の例では、ステートレス・コマンド・フィルタリングが提供される。このフィルタリングを用いて、1つの例では、ステートレス・コマンド・フィルタリング機能が、例えばゼロに設定される場合、ステートレス・コマンド・フィルタリング機能はインストールされず、補助プロセッサ(例えば、クリプト・カード)は、補助プロセッサによってサポートされるコマンドが実行されるのを可能にし、そうでなければ、ステートレス・コマンド・フィルタリング機能がインストールされ、コマンドが補助プロセッサによって実行されるかどうかは、コマンド要求内のハイパーバイザが課したコマンド・タイプ・フィルタリング・インジケータのセットの値に依存する。コマンド要求メッセージ内にステートレス・コマンド・タイプ・インジケータを含む例示の実施形態が、以下で説明される。
ステートレス・コマンド・タイプ・インジケータ(例えば、インジケータ322)がコマンド要求メッセージ(例えば、メッセージ300)においてゼロに設定される場合、クリプト・カードは、クリプト・カードによってサポートされるコマンドのすべてが実行されることを可能にする。ステートレス・コマンド・タイプ・インジケータ(例えば、インジケータ322)がコマンド要求メッセージ(例えば、メッセージ300)において1に設定される場合、クリプト・カードは、クリプト・カードによってサポートされるすべてのコマンドが実行されることを許可しない。コマンド要求メッセージ内のコマンドが、ステートレス・コマンド・タイプ・コマンドである場合、コマンドが実行される。コマンド要求メッセージ内のコマンドが、ステートレス・コマンド・タイプ・コマンドでない場合、コマンドは、コマンド応答メッセージ(例えば、メッセージ330)のCPRB(例えば、応答CPRB336)内のエラー・コードにより拒否される。
1つまたは複数の態様では、暗号カードの構成されたモード(例えば、コプロセッサ・モード)を使用して、ステートレス・コマンド・フィルタリング(非セキュア・キー・フィルタリング・モードとも呼ばれる、例えば、ステートレス・コマンド・タイプ・コマンドのみが処理される)、または例えばアクセラレータ・モードのような新しいクリプト・カード・モードで暗号カードを構成することなく縮小されたコマンドのセットによる別のフィルタリング・モードのいずれかが提供され得る。フィルタリング技術は、ステートレス・コマンド・タイプ・コマンド、またはマスター・キー管理コマンドなどのような他の例における他のコマンド・タイプ・コマンドなどのコマンドのセットをフィルタリングするために使用されてもよい。これにより、購入および管理されるべき補助プロセッサの数が減少する。
さらに、本発明の1つまたは複数の態様は、コマンドごとにコマンド・タイプ・フィルタリング・モードを動的に切り替える能力を提供し、コマンド・タイプ・フィルタリングは、コマンドごとに行われる。それゆえに、各コマンドは、コマンド・タイプ・フラグ値(例えば、コマンド・タイプ・フィルタリング・インジケータ)に基づいてコマンド処理時に有効であることもあり無効であることもある。プログラムは、異なるフィルタリング・コマンド・セットを実行するために、様々なクリプト・カード・モードを切り替える必要はない。それゆえに、クリプト・カードの数を管理および使用する複雑さは、サポートされるフィルタリング・モードの数にかかわらず同じままである。プログラムの複雑さの低減により、さらに、より効率的なコードが加えられ、コード実行時間および性能が改善される。
さらなる態様では、選択されたコマンド・タイプ・フィルタリング機能をサポートする補助プロセッサ(例えば、新しいバージョン)からの情報を使用して、ターゲット補助プロセッサ(例えば、古いバージョン)がサポートしないフィルタリング機能がシミュレートされる。
1つまたは複数の態様では、ハイパーバイザは、ゲストのニーズ(例えば、クラウド環境顧客のセット)に基づいて、APコマンド・タイプ・フィルタリング・モード、APコマンド・タイプ・セット、およびAPコマンド・タイプ・フラグのセットを決定する。ハイパーバイザは、クラウド環境ゲストによって許可されたAPコマンド・セットに基づいてAPコマンド・セット・モードを設定し、ゲストによって発行されたAPコマンドをインターセプトし、適切な動作を行うことよってその動作モードを実行する。ハイパーバイザは、ゲスト構成で構成されたクリプト・カードで対応するハードウェアのAPコマンド・セット・フィルタリング・モード機能を使用することによって、APコマンド・セット・フィルタリング・モード・サポートをクラウド環境顧客に提供する。ハイパーバイザは、ゲストが例えばAPコマンドのステートレス・サブセットのみ実行することを許可されているが、ハイパーバイザの構成におけるクリプト・カードのどれもステートレスAPコマンド・タイプ・フィルタリング(ハードウェア)機能をサポートしていない場合、ゲストがクリプト・カードを使用することを許可しない。しかしながら、少なくとも1つのクリプト・カードが、ステートレス・コマンド・フィルタリングをサポートしている場合、ハイパーバイザは、例えば、ゲストがステートレスAPコマンド・モードで動作しているが、ステートレスAPコマンド・タイプ・フィルタリング(ハードウェア)機能がターゲット暗号カードにインストールされていないならば、ステートレスAPコマンド・タイプ・フィルタリング動作をそれ自体でシミュレートする。
ハイパーバイザ・シミュレーションは、ステートレスAPコマンド・タイプ・フィルタリング(ハードウェア)機能(または他のフィルタリング機能)をサポートする暗号カードのうちの1つからの情報を使用して、ステートレスAPコマンド・タイプ・フィルタリング(ハードウェア)機能をサポートしていないターゲット暗号カードでステートレスAPコマンド・タイプ・フィルタリング動作をシミュレートすることによって、例えば、機能的に同等のハードウェア・フィルタリング動作を保証する。1つの実施形態では、APコマンド・トランスポート層(例えばi390CO)は、エラーの発信元にかかわらず均一な障害応答を行う方法を提供し、ハイパーバイザ内のソフトウェア実装を暗号カードと一致させることができるように強化される。
1つまたは複数の態様では、同じ暗号カード・モード(例えば、コプロセッサまたはEP11モード)を使用して、例えばアクセラレータ・モードのような別のクリプト・カード・モードで暗号カードを構成することなく、フルAPコマンド・セット・モード、ステートレスAPコマンド・モード、または縮小されたコマンドのセットをもつ別のフィルタリング・モードを提供することができる。顧客は、クリプト・カード・フィルタリング・モードのために追加のカードを購入する必要はない。ハイパーバイザは、例えば、同じクリプト・カード・モードの異なるクリプト・ドメインを、異なるAPコマンド・タイプ・フィルタリング要件をもつ異なるゲストに特化することによって、異なるAPコマンド・タイプ・フィルタリング要件をもつ異なるゲストに貢献することができる。ハイパーバイザは、ゲストをサポートするためにソフトウェア・シミュレーションとハードウェア・フィルタリング能力の組合せを使用して、非クリプト・カード・タイプ構成を対称クリプト・カード・タイプ構成に変えることができる。共通インターフェースを使用するハードウェアとソフトウェア・フィルタリングの組合せを使用することは、1つまたは複数のクリプト・カード・タイプが、いかなるハードウェア・フィルタリング機能も提供しないか、またはすべてのサポートされるハードウェア・フィルタリング機能(例えば、非対称クリプト・カード・タイプ)を提供するとは限らない多数のクリプト・カード・タイプ構成にとって有用である。
1つの態様では、ハイパーバイザは、シミュレーションのためにサポートするクリプト・カード・タイプごとにフィルタリング・モードごとのAPコマンドの静的リストを維持する必要はない。ハイパーバイザがサポートするクリプト・カード・タイプおよびモードごとにフィルタリング・モードごとのAPコマンドの最新の静的リストを維持することは、負担であり、マシン立ち上げ試験に間に合うように取得することは容易でない。その結果、ハイパーバイザは、ソフトウェアAPコマンド・タイプ・フィルタリングが、それがサポートするクリプト・カード・タイプごとにフィルタリング・モードごとのAPコマンドの静的リストを維持することによって、ハードウェアAPコマンド・タイプ・フィルタリングと機能的に同等となることを保証することができない。
1つの態様では、プログラムは、異なるフィルタリング・コマンド・セットを実行するために、様々なクリプト・カード・モードを切り替える必要はない。それゆえに、クリプト・カードの管理および使用の複雑さは、サポートされるフィルタリング・モードの数にかかわらず同じままである。プログラムの複雑さのこの低減により、さらに、より効率的なコードが加えられ、コード実行時間および性能が改善される。さらに、1つの態様では、ハイパーバイザは、ゲスト・プログラムによって提供されるCPRB内のコマンド・タイプ・フラグの適切な設定をチェックする必要がない。それは、APコマンド要求メッセージを生成するゲスト・プログラムの代わりに、ゲストによって許可されたAPコマンド・セットに基づいて、APコマンド要求メッセージのCPRBにコマンド・タイプ・フラグを挿入する。その結果、ハイパーバイザは、コマンド設定がゲストによって許可されたコマンド・タイプ・フィルタリング設定に違反する場合、CPRB内のコマンド・タイプ・フラグを設定する(または再設定する)必要がなく、またはコマンドを拒否する必要もない。
ハードウェア・フィルタリング技術とソフトウェア・フィルタリング技術の両方を使用する1つの態様では、共通インターフェースを使用することは、1つまたは複数のクリプト・カード・タイプが、いかなるハードウェア・フィルタリング機能も提供しないか、またはすべてのサポートされたハードウェア・フィルタリング機能(例えば、非対称クリプト・カード・タイプ)を提供するとは限らない多数のクリプト・カード・タイプ構成にとって有用である。例えば、ハイパーバイザ構成が複数のクリプト・カード・タイプを伴う単一のマシンからなるが、すべてのクリプト・カード・タイプが選択されたコマンド・タイプ・フィルタリング機能、例えばステートレス・コマンド・フィルタリング機能をサポートするとは限らない場合、ハイパーバイザは、選択されたコマンド・タイプ・フィルタリング機能をサポートしていないクリプト・カード・タイプで、選択されたコマンド・タイプ・フィルタリング機能をそれ自体でシミュレートして、すべての利用可能なクリプト・カードで同じ選択されたコマンド・タイプ・フィルタリング機能を提供することができる。同様に、ハイパーバイザ構成が、異なるモデルをもつ多数のマシンで構成され、ゲストが、それらのマシン・モデルのうちのいずれかに再配置され得るが、すべてのモデルが、例えば、選択されたコマンド・タイプ・フィルタリング機能をサポートするとは限らない場合、ハイパーバイザは、選択されたコマンド・タイプ・フィルタリング機能をサポートしていないマシン・モデルで、ステートレス・コマンド・フィルタリング機能をそれ自体でシミュレートして、すべての利用可能なマシン・モデルで同じ選択されたコマンド・タイプ・フィルタリング機能を提供することができる。これにより、ハイパーバイザは、ソフトウェア能力とハードウェア能力の組合せを使用して非対称クリプト・カード・タイプ構成を対称クリプト・カード・タイプ構成に変え、ゲストにコマンド・タイプ・フィルタリング機能サポートを提供することができる。この技術はまた、多数のハードウェア・フィルタリング機能をサポートするために使用することができる。他の変形も可能である。
さらに、ハードウェア・フィルタリング機能は、例えば、コマンドごとにフィルタリング・モードを動的に切り替える能力を提供し、コマンド・タイプ・フィルタリングは、コマンドごとに行われる。その結果、各コマンドは、コマンド・タイプ・フラグ値に基づいてコマンド処理時に有効であることもあり無効であることもある。それゆえに、この技術により、ハイパーバイザは、異なるAPコマンド・タイプ・フィルタリング要件をもつ多数のゲストと同じクリプト・ドメインを共有することができる。さらに、プログラムは、異なるフィルタリング・コマンド・セットを実行するために、様々なクリプト・カード・モードを切り替える必要はない。それゆえに、クリプト・カードの数を管理および使用する複雑さは、サポートされるフィルタリング・モードの数にかかわらず同じままである。プログラムの複雑さのこの低減により、さらに、より効率的なコードが加えられ、コード実行時間および性能が改善される。
1つまたは複数の実施形態において、ハイパーバイザは、論理パーティション・ハイパーバイザのようなホスト、z/VM(R)のようなオペレーティング・システム、またはデバイス・ドライバとすることができる。z/VMは、同じクリプト・カードを使用して、異なるポリシーをもつ多数のゲストに貢献することができる。クリプト・デバイス・ドライバは、処理されたAPメッセージを取り出すために、Linux環境のような特定の環境においてオペレーティング・システムの代わりに使用されてもよい。クリプト・デバイス・ドライバは、ドッカ-・コンテナまたは異なるポリシーをもつ異なるアプリケーションのように、多数のユーザに貢献することができる。z/VMマネージャなどのマネージャまたはクリプト・デバイス・ドライバのいずれかは、コマンドごとに、あるコマンド・タイプ・フィルタリング・モードなどのあるフィルタリング・モードから別のフィルタリング・モードに切り替えることができる。1つ例では、少なくとも1つのゲストが、単一のクリプト・コマンドのみを実行する場合、マネージャまたはクリプト・デバイス・ドライバは、次のゲストに切り替え、次のゲストは、異なるフィルタリング・モードからのクリプト・コマンドを実行する。
様々な実施形態が本明細書に記載されているが、多くの変形および他の実施形態が、本発明の態様から逸脱することなく可能である。特に矛盾しない限り、本明細書に記載された各態様または特徴、およびその変形は、任意の他の態様または特徴と組み合わせることができることに留意されたい。
1つまたは複数の態様は、クラウド・コンピューティングに関連することができる。
本開示は、クラウド・コンピューティングに関する詳細な説明を含むが、本明細書に詳述される教示の実施は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られているかまたは後に開発される任意の他のタイプのコンピューティング環境とともに実装することができる。
クラウド・コンピューティングは、最小限の管理労力またはサービスのプロバイダとの対話によって迅速にプロビジョニングおよびリリースすることができる構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの便利でオン・デマンドのネットワーク・アクセスを可能にするためのサービス・デリバリのモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含むことができる。
特徴は以下の通りである。
オン・デマンド・セルフサービス:クラウド消費者は、サービスのプロバイダとの人的対話を必要とすることなく必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワークを通して利用可能であり、異種のシンまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準メカニズムを介してアクセスされる。
リソース・プーリング:プロバイダのコンピューティング・リソースが、マルチテナント・モデルを使用して多数の消費者にサービスを提供するためにプールされ、異なる物理リソースおよび仮想リソースが、要求に応じて動的に割り当てらおよび再割り当てされる。消費者は、通常、提供されるリソースの正確な場所に対する制御または知識を有していないが、より高いレベルの抽象化レベル(例えば、国、州、またはデータセンタ)での場所を指定することができる可能性があるという点で、場所独立性の感覚がある。
迅速な伸縮性:機能は、迅速におよび伸縮自在に、場合によっては自動的に、プロビジョニングされて、速やかにスケール・アウトし、迅速にリリースされて速やかにスケール・インすることができる。消費者にとって、プロビジョニングのために利用可能な機能は、多くの場合、無制限であるように見え、随時任意の量で購入することができる。
従量制サービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適した抽象化レベルで計測機能を活用することによって、リソース使用を自動的に制御および最適化する。リソースの使用量をモニタし、制御し、報告して、利用されるサービスのプロバイダと消費者の両方に透明性を提供することができる。
サービス・モデルは以下の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウド・インフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通して様々なクライアント・デバイスからアクセス可能である。消費者は、限定的なユーザ固有のアプリケーション構成設定の可能性を除いて、ネットワーク、サーバ、オペレーティング・システム、ストレージ、またはさらに個々のアプリケーション機能を含む基礎をなすクラウド・インフラストラクチャを管理または制御しない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された消費者作成または獲得アプリケーションをクラウド・インフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎をなすクラウド・インフラストラクチャを管理または制御しないが、展開されたアプリケーションと、場合によっては、アプリケーション・ホスティング環境構成とを制御する。
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることであり、消費者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアを展開および実行することができる。消費者は、基礎をなすクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、展開されたアプリケーションを制御し、場合によっては、選択されたネットワーキング構成要素(例えば、ホスト・ファイアウォール)を限定的に制御する。
展開モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは組織のためにのみ運用される。クラウド・インフラストラクチャは、組織またはサード・パーティによって管理されてもよく、オンプレミスに存在してもオフプレミスに存在してもよい。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有の関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、組織またはサード・パーティによって管理されてもよく、オンプレミスに存在してもオフプレミスに存在してもよい。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆または大規模業界団体に対して利用可能にされており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合であり、これらのクラウドは、固有のエンティティのままであるが、データおよびアプリケーション・ポータビリティを可能にする標準技術または専用技術(例えば、クラウド間のロード・バランシングのためのクラウド・バースティング)によって結合される。
クラウド・コンピューティング環境は、ステートレス性、疎結合性、モジュール性、および意味相互運用性に重点をおいたサービス指向である。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
次に図8を参照すると、例示のクラウド・コンピューティング環境50が示される。図示のように、クラウド・コンピューティング環境50は、クラウド消費者によって使用されるローカル・コンピューティング・デバイス、例えば、携帯情報端末(PDA)もしくセルラー電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなどが通信することができる1つまたは複数のクラウド・コンピューティング・ノード52を含む。ノード52は、互いに通信することができる。ノード52は、先に記載のプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはそれらの組合せなどの1つまたは複数のネットワークにおいて物理的にまたは仮想的にグループ化されてもよい(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウド消費者がローカル・コンピューティング・デバイスにリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを供することができる。図8に示されたコンピューティング・デバイス54A~54Nのタイプは単に例示であることが意図されていることと、コンピューティング・ノード52およびクラウド・コンピューティング環境50は、任意のタイプのネットワークまたはネットワーク・アドレス指定可能な接続あるいはその両方を介して(例えば、ウェブ・ブラウザを使用して)任意のタイプのコンピュータ化デバイスと通信できることとを理解されたい。
次に、図9を参照すると、クラウド・コンピューティング環境50(図8)によって提供される機能抽象化層のセットが示される。図9に示された構成要素、層、および機能は、単に例示であることが意図されており、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示のように、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層60は、ハードウェア構成要素およびソフトウェア構成要素を含む。ハードウェア構成要素の例には、メインフレーム61と、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベース・サーバ62と、サーバ63と、ブレード・サーバ64と、ストレージ・デバイス65と、ネットワークおよびネットワーキング構成要素66とが含まれる。いくつかの実施形態では、ソフトウェア構成要素には、ネットワーク・アプリケーション・サーバ・ソフトウェア67と、データベース・ソフトウェア68とが含まれる。
仮想化層70は、仮想エンティティの以下の例、すなわち、仮想サーバ71と、仮想ストレージ72と、仮想プライベート・ネットワークを含む仮想ネットワーク73と、仮想アプリケーションおよびオペレーティング・システム74と、仮想クライアント75とを備えることができる抽象化層を提供する。
1つの例では、管理層80は、以下で説明する機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的調達を行う。計測および価格設定82は、リソースがクラウド・コンピューティング環境内で利用されたときにコスト追跡を行い、これらのリソースの消費に対する請求書または送り状を作成および送付する。1つの例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド消費者およびタスクのアイデンティティ検証、ならびにデータおよび他のリソースの保護を行う。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセス権を消費者およびシステム管理者に提供する。サービス・レベル管理84は、必要なサービス・レベルが満たされるようにクラウド・コンピューティング・リソース割り当ておよび管理を行う。サービス品質保証契約(SLA)計画および履行85は、SLAに従って将来の要求が予想されるクラウド・コンピューティング・リソースの事前準備および調達を行う。
ワークロード層90は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供され得るワークロードおよび機能の例には、マッピングおよびナビゲーション91と、ソフトウェア開発およびライフサイクル管理92と、仮想教室教育デリバリ93と、データ分析処理94と、トランザクション処理95と、コマンド・タイプ・フィルタリング処理96とが含まれる。
本発明の態様は、任意の可能な技術的詳細の統合レベルでのシステム、方法、またはコンピュータ・プログラム製品、あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する1つのコンピュータ可読ストレージ媒体(または複数の媒体)を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持および格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、限定はしないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述のものの任意の適切な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、命令が記録されたパンチカードまたは溝内の隆起構造などの機械的にコード化されたデバイス、および前述のものの任意の適切な組合せを含む。本明細書で使用されるコンピュータ可読ストレージ媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通って伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通して伝送される電気信号などのそれ自体一過性信号であると解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはその組合せを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含むことができる。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、そのコンピュータ可読プログラム命令をそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはSmalltalk、C++などのようなオブジェクト指向プログラミング言語および「C」プログラミング言語または類似のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータで、部分的にユーザのコンピュータで、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータでおよび部分的にリモート・コンピュータで、または完全にリモート・コンピュータもしくはサーバで実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続されてもよく、または接続が外部コンピュータに対して行われてもよい(例えば、インターネット・サービス・プロバイダを使用してインターネットを通して)。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人専用にすることによってコンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照して本明細書に記載されている。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実現され得ることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実施するための手段を創り出すように、コンピュータのプロセッサ、または他のプログラマブル・データ処理装置に提供されて、マシンを作り出すことができる。これらのコンピュータ可読プログラム命令はまた、命令が格納されたコンピュータ可読ストレージ媒体が流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作の態様を実施する命令を含む製品を構成するように、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せに、特定の方法で機能するように指示することができるコンピュータ可読ストレージ媒体に格納されてもよい。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令が流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実施するように、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他のデバイス上で実行させて、コンピュータ実装プロセスを作り出すことができる。
図における流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能、および動作を示す。これに関しては、流れ図またはブロック図の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または一部を表すことができる。いくつかの代替の実施態様では、ブロックに記された機能は、図に記された順序から外れて行われてもよい。例えば、連続して示された2つのブロックは、実際には、同時に、実質的に同時に、部分的にもしくは全面的に時間的に重複して実行される1つのステップとして達成されてもよく、またはブロックは、時には、関連する機能に応じて逆の順序で実行されてもよい。ブロック図または流れ図あるいはその両方の各ブロック、およびブロック図または流れ図あるいはその両方のブロックの組合せは、指定された機能または動作を実行するかあるいは専用ハードウェア命令とコンピュータ命令の組合せを実行する専用ハードウェア・ベース・システムで実施され得ることにも留意されたい。
上述に加えて、1つまたは複数の態様は、顧客環境の管理を供するサービス・プロバイダによって提供され、供され、展開され、管理され、サービスなどをされ得る。例えば、サービス・プロバイダは、1つまたは複数の顧客のための1つまたは複数の態様を実行するコンピュータ・コードまたはコンピュータ・インフラストラクチャあるいはその両方の創出、維持、サポートなどを行うことができる。見返りとして、サービス・プロバイダは、例として、加入契約または料金契約あるいはその両方の下で顧客から支払いを受け取ることができる。追加として、または代替として、サービス・プロバイダは、1つまたは複数のサード・パーティへの広告コンテンツの販売から支払いを受け取るかことができる。
1つの態様では、アプリケーションは、1つまたは複数の実施形態を実行するために展開され得る。1つの例として、アプリケーションの展開は、1つまたは複数の実施形態を実行するように動作可能なコンピュータ・インフラストラクチャを提供することを含む。
さらなる態様として、コンピュータ可読コードをコンピューティング・システムに統合することを含むコンピューティング・インフラストラクチャを展開することができ、コンピューティング・システムと組み合わせたコードは、1つまたは複数の実施形態を実行することができる。
さらに、さらなる態様として、コンピュータ可読コードをコンピュータ・システムに統合することを含むコンピューティング・インフラストラクチャを統合するためのプロセスが提供され得る。コンピュータ・システムはコンピュータ可読媒体を含み、コンピュータ媒体は、1つまたは複数の実施形態を含む。コンピュータ・システムと組み合わせたコードは、1つまたは複数の実施形態を実行することができる。
様々な実施形態が上述されているが、これらは、例にすぎない。例えば、他のアーキテクチャのコンピュータ環境を使用して、1つまたは複数の実施形態を組み込み使用することができる。さらに、異なる命令、コマンド、または動作が使用されてもよい。追加として、異なるタイプの指示またはタグ、ならびに異なるタイプのフィルタリング・モードまたは補助プロセッサあるいはその両方が指定されてもよい。多くの変形が可能である。
様々な態様が、本明細書に説明されている。さらに、多くの変形が、本発明の態様から逸脱することなく可能である。特に矛盾しない限り、本明細書に記載された各態様または特徴、およびその変形は、任意の他の態様または特徴と組み合わせることができることに留意されたい。
さらに、他のタイプのコンピュータ環境が、利益を与え、使用され得る。一例として、実行プログラム・コードの格納または実行あるいはその両方を行うのに適するデータ処理システムが、使用可能であり、システム・バスを介してメモリ要素に直接または間接的に結合された少なくとも2つのプロセッサを含む。メモリ要素は、例えば、プログラム・コードの実際の実行中に利用されるローカル・メモリと、バルク・ストレージと、実行中にコードをバルク・ストレージから取り出さなければならない回数を減じるために少なくともいくつかのプログラム・コードの一時的ストレージを提供するキャッシュ・メモリとを含む。
入力/出力またはI/Oデバイス(限定はしないが、キーボード、ディスプレイ、ポインティング・デバイス、DASD、テープ、CD、DVD、サム・ドライブ、および他のメモリ媒体、などを含む)は、システムに、直接、または介在するI/Oコントローラを介して結合され得る。ネットワーク・アダプタが、さらに、データ処理システムを、介在するプライベートまたはパブリック・ネットワークを介して他のデータ処理システム、リモート・プリンタ、またはストレージ・デバイスに結合させるようにすることができるシステムに結合されてもよい。モデム、ケーブル・モデム、およびイーサネット・カードは、利用可能なタイプのネットワーク・アダプタのほんの一部にすぎない。
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としたものであり、限定することを意図するものではない。本明細書に使用されるとき、単数形「a」、「an」、および「the」は、文脈上そうでないと明確に示されない限り、複数形も同様に含むように意図される。「comprises(含む、備える)」または「comprising(含んでいる、備えている)」あるいはその両方の用語は、本明細書で使用されるとき、記述された特徴、整数、ステップ、動作、要素、または構成要素、あるいはその組合せの存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、またはそれらのグループ、あるいはその組合せの存在または追加を妨げないことをさらに理解されよう。
以下の特許請求の範囲におけるすべてのミーンズまたはステップ・プラス・ファンクション要素の、対応する構造、材料、動作、および均等物は、もしあれば、具体的に特許請求されるような他の特許請求される要素と組み合わせて機能を実行するための任意の構造、材料、または動作を含むことが意図される。1つまたは複数の実施形態の説明は、例証および説明の目的のために提示されているが、網羅的であること、または開示された形態に限定されることを意図されていない。多くの変形および変更が当業者には明らかであろう。実施形態は、様々な態様および実際の用途を最も良く説明し、当業者が、意図された特定の使用に適する様々な変形を伴う様々な実施形態を理解することができるように選ばれ説明された。
Claims (20)
- コンピューティング環境内での処理を容易にするためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、
方法を実行するために1つまたは複数のコンピュータ可読ストレージ媒体と、前記1つまたは複数のコンピュータ可読ストレージ媒体に集合的に格納されたプログラム命令と
を含み、前記方法は、
前記コンピューティング環境の複数の補助プロセッサのうちのターゲット補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されているかどうかを決定することと、
前記複数の補助プロセッサのうちの別の補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されているかどうかをチェックすることと、
前記ターゲット補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていないという決定に基づいて、および前記別の補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていることに基づいて、コマンドを、前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して有効であるかどうかを決定するための処理のために前記別の補助プロセッサに転送することと、
前記別の補助プロセッサでの処理に基づいて、前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して有効であるかどうかの指示を取得することと、
前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して有効であるという指示の取得に基づいて、前記コマンドを、実行のために前記ターゲット補助プロセッサに送ることと
を含む、コンピュータ・プログラム製品。 - 前記方法は、前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して無効であるという指示の取得に基づいて、前記選択されたコマンド・タイプ・フィルタリング・モードに対して前記コマンドを無効であるとして拒否することと、前記ターゲット補助プロセッサで前記コマンドを実行することを控えることとをさらに含む、請求項1に記載のコンピュータ・プログラム製品。
- 前記拒否することが、エラー・コードへのアクセスを容易にするために前記エラー・コードを中央場所に配置することをさらに含む、請求項2に記載のコンピュータ・プログラム製品。
- 前記方法は、
前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して有効であるという指示の取得に基づいて、前記コマンドを、選択されたコマンド・タイプ・フィルタリング・モード・コマンドとしてコマンド・リストに加えることであり、前記コマンド・リストは、どのコマンドが前記ターゲット補助プロセッサでの実行に有効であるかを決定するために使用され得る、加えることと、
前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して無効であるという指示の取得に基づいて、前記コマンドを、有効な補助プロセッサ・コマンドとして前記コマンド・リストに加えることと
をさらに含む、請求項1に記載のコンピュータ・プログラム製品。 - 前記方法は、前記複数の補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていないという決定に基づいて、前記コマンドを拒否することをさらに含む、請求項1に記載のコンピュータ・プログラム製品。
- 前記方法は、
前記ターゲット補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていないという決定に基づいて、および前記別の補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていることに基づいて、前記コマンドがコマンド・リストに載っているかどうかを決定することであり、前記コマンド・リストは、前記コマンドが前記ターゲット補助プロセッサで実行され得るかどうかを決定するために使用され得る、決定することと、
前記コマンドが前記コマンド・リストに載っていないという決定に基づいて、前記コマンドを処理のために前記別の補助プロセッサに転送することと
をさらに含む、請求項1に記載のコンピュータ・プログラム製品。 - 前記方法が、前記別の補助プロセッサでの前記コマンドの実行の成功に基づいて、前記コマンドを、有効な選択されたコマンド・タイプ・フィルタリング・モード・コマンドとしてコマンド・リストに加えることをさらに含む、請求項6に記載のコンピュータ・プログラム製品。
- 前記方法が、前記別の補助プロセッサでの前記コマンドの実行の不成功に基づいて、前記コマンドを、有効な補助プロセッサ・コマンドとして前記コマンド・リストに加えることをさらに含む、請求項6に記載のコンピュータ・プログラム製品。
- 前記選択されたコマンド・タイプ・フィルタリング・モードが、ステートレス・コマンド・フィルタリング・モードである、請求項1に記載のコンピュータ・プログラム製品。
- 前記複数の補助プロセッサが、複数の暗号カードを含む、請求項1に記載のコンピュータ・プログラム製品。
- コンピューティング環境内での処理を容易にするためのコンピュータ・システムであって、前記コンピュータ・システムが、
メモリと、
前記メモリと通信する少なくとも1つのプロセッサであり、前記コンピュータ・システムが、方法を実行するように構成され、前記方法が、
前記コンピューティング環境の複数の補助プロセッサのうちのターゲット補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されているかどうかを決定することと、
前記複数の補助プロセッサのうちの別の補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されているかどうかをチェックすることと、
前記ターゲット補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていないという決定に基づいて、および前記別の補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていることに基づいて、コマンドを、前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して有効であるかどうかを決定するための処理のために前記別の補助プロセッサに転送することと、
前記別の補助プロセッサでの処理に基づいて、前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して有効であるかどうかの指示を取得することと、
前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して有効であるという指示の取得に基づいて、前記コマンドを、実行のために前記ターゲット補助プロセッサに送ることと
を含む、少なくとも1つのプロセッサと
を含む、コンピュータ・システム。 - 前記方法は、前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して無効であるという指示の取得に基づいて、前記選択されたコマンド・タイプ・フィルタリング・モードに対して前記コマンドを無効であるとして拒否することと、前記ターゲット補助プロセッサで前記コマンドを実行することを控えることとをさらに含む、請求項11に記載のコンピュータ・システム。
- 前記方法は、
前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して有効であるという指示の取得に基づいて、前記コマンドを、選択されたコマンド・タイプ・フィルタリング・モード・コマンドとしてコマンド・リストに加えることであり、前記コマンド・リストは、どのコマンドが前記ターゲット補助プロセッサでの実行に有効であるかを決定するために使用され得る、加えることと、
前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して無効であるという指示の取得に基づいて、前記コマンドを、有効な補助プロセッサ・コマンドとして前記コマンド・リストに加えることと
をさらに含む、請求項11に記載のコンピュータ・システム。 - 前記方法は、前記複数の補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていないという決定に基づいて、前記コマンドを拒否することをさらに含む、請求項11に記載のコンピュータ・システム。
- 前記方法は、
前記ターゲット補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていないという決定に基づいて、および前記別の補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていることに基づいて、前記コマンドがコマンド・リストに載っているかどうかを決定することであり、前記コマンド・リストは、前記コマンドが前記ターゲット補助プロセッサで実行され得るかどうかを決定するために使用され得る、決定することと、
前記コマンドが前記コマンド・リストに載っていないという決定に基づいて、前記コマンドを処理のために前記別の補助プロセッサに転送することと
をさらに含む、請求項11に記載のコンピュータ・システム。 - コンピューティング環境内での処理を容易にするコンピュータ実施方法であって、前記コンピュータ実施方法が、
前記コンピューティング環境の複数の補助プロセッサのうちのターゲット補助プロセッサが、選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されているかどうかを決定することと、
前記複数の補助プロセッサのうちの別の補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されているかどうかをチェックすることと、
前記ターゲット補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていないという決定に基づいて、および前記別の補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていることに基づいて、コマンドを、前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して有効であるかどうかを決定するための処理のために前記別の補助プロセッサに転送することと、
前記別の補助プロセッサでの処理に基づいて、前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して有効であるかどうかの指示を取得することと、
前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して有効であるという指示の取得に基づいて、前記コマンドを、実行のために前記ターゲット補助プロセッサに送ることと
を含む、コンピュータ実施方法。 - 前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して無効であるという指示の取得に基づいて、前記選択されたコマンド・タイプ・フィルタリング・モードに対して前記コマンドを無効であるとして拒否することと、前記ターゲット補助プロセッサで前記コマンドを実行することを控えることとをさらに含む、請求項16に記載のコンピュータ実施方法。
- 前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して有効であるという指示の取得に基づいて、前記コマンドを、選択されたコマンド・タイプ・フィルタリング・モード・コマンドとしてコマンド・リストに加えることであり、前記コマンド・リストは、どのコマンドが前記ターゲット補助プロセッサでの実行に有効であるかを決定するために使用され得る、加えることと、
前記コマンドが前記選択されたコマンド・タイプ・フィルタリング・モードに対して無効であるという指示の取得に基づいて、前記コマンドを、有効な補助プロセッサ・コマンドとして前記コマンド・リストに加えることと
をさらに含む、請求項16に記載のコンピュータ実施方法。 - 前記複数の補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていないという決定に基づいて、前記コマンドを拒否することをさらに含む、請求項16に記載のコンピュータ実施方法。
- 前記ターゲット補助プロセッサが前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていないという決定に基づいて、および前記別の補助プロセッサが、前記選択されたコマンド・タイプ・フィルタリング・モードをサポートするように構成されていることに基づいて、前記コマンドがコマンド・リストに載っているかどうかを決定することであり、前記コマンド・リストは、前記コマンドが前記ターゲット補助プロセッサで実行され得るかどうかを決定するために使用され得る、決定することと、
前記コマンドが前記コマンド・リストに載っていないという決定に基づいて、前記コマンドを処理のために前記別の補助プロセッサに転送することと
をさらに含む、請求項16に記載のコンピュータ実施方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/122,363 | 2020-12-15 | ||
US17/122,363 US12026555B2 (en) | 2020-12-15 | 2020-12-15 | Adjunct processor command-type filtering |
PCT/CN2021/132683 WO2022127538A1 (en) | 2020-12-15 | 2021-11-24 | Adjunct processor command-type filtering |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023552484A true JP2023552484A (ja) | 2023-12-15 |
JPWO2022127538A5 JPWO2022127538A5 (ja) | 2024-01-15 |
Family
ID=81942511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023535698A Pending JP2023552484A (ja) | 2020-12-15 | 2021-11-24 | 補助プロセッサ・コマンド・タイプ・フィルタリング |
Country Status (6)
Country | Link |
---|---|
US (1) | US12026555B2 (ja) |
JP (1) | JP2023552484A (ja) |
CN (1) | CN116457754A (ja) |
DE (1) | DE112021006005T5 (ja) |
GB (1) | GB2617495B (ja) |
WO (1) | WO2022127538A1 (ja) |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US20020131368A1 (en) | 2001-03-14 | 2002-09-19 | Raftelis Michael T. | Method and apparatus for processing a network manager command in a communication network |
US7228401B2 (en) | 2001-11-13 | 2007-06-05 | Freescale Semiconductor, Inc. | Interfacing a processor to a coprocessor in which the processor selectively broadcasts to or selectively alters an execution mode of the coprocessor |
US8032741B2 (en) | 2007-08-22 | 2011-10-04 | Intel Corporation | Method and apparatus for virtualization of a multi-context hardware trusted platform module (TPM) |
US8584229B2 (en) | 2007-12-21 | 2013-11-12 | Intel Corporation | Methods and apparatus supporting access to physical and virtual trusted platform modules |
US8782251B2 (en) * | 2008-02-27 | 2014-07-15 | Microsoft Corporation | Automated configuration of network mode |
WO2009147734A1 (ja) | 2008-06-04 | 2009-12-10 | 株式会社ルネサステクノロジ | 車両、メンテナンス装置、メンテナンスサービスシステム及びメンテナンスサービス方法 |
US8136158B1 (en) * | 2008-07-21 | 2012-03-13 | Google Inc. | User-level segmentation mechanism that facilitates safely executing untrusted native code |
US8019922B2 (en) | 2008-10-21 | 2011-09-13 | International Business Machines Corporation | Interruption facility for adjunct processor queues |
US8418177B2 (en) * | 2010-10-01 | 2013-04-09 | Microsoft Corporation | Virtual machine and/or multi-level scheduling support on systems with asymmetric processor cores |
US8832696B2 (en) | 2010-12-22 | 2014-09-09 | International Business Machines Corporation | Adaptive channel for algorithms with different latency and performance points |
US9118642B2 (en) | 2011-06-05 | 2015-08-25 | Apple Inc. | Asset streaming |
US10079044B2 (en) | 2012-12-20 | 2018-09-18 | Advanced Micro Devices, Inc. | Processor with host and slave operating modes stacked with memory |
US9117081B2 (en) * | 2013-12-20 | 2015-08-25 | Bitdefender IPR Management Ltd. | Strongly isolated malware scanning using secure virtual containers |
CN104090790B (zh) * | 2014-06-30 | 2017-05-17 | 飞天诚信科技股份有限公司 | 一种安全终端的双芯片方案的固件更新方法 |
US9769227B2 (en) | 2014-09-24 | 2017-09-19 | Microsoft Technology Licensing, Llc | Presentation of computing environment on multiple devices |
US10142250B2 (en) * | 2015-01-26 | 2018-11-27 | Hfi Innovation Inc. | Maximum transmission unit size reporting using AT commands |
US9858177B2 (en) * | 2015-10-30 | 2018-01-02 | International Business Machines Corporation | Automated test generation for multi-interface enterprise virtualization management environment |
US9471313B1 (en) * | 2015-11-25 | 2016-10-18 | International Business Machines Corporation | Flushing speculative instruction processing |
US10846113B1 (en) * | 2017-03-30 | 2020-11-24 | Amazon Technologies, Inc. | Board management controller firmware virtualization |
US11010338B2 (en) * | 2017-04-06 | 2021-05-18 | Shanghai Cambricon Information Technology Co., Ltd | Data screening device and method |
US10476841B2 (en) | 2018-03-23 | 2019-11-12 | Microsoft Technology Licensing, Llc | Stateless tunnels |
US10949207B2 (en) * | 2018-09-29 | 2021-03-16 | Intel Corporation | Processor core supporting a heterogeneous system instruction set architecture |
US11385993B2 (en) * | 2018-10-04 | 2022-07-12 | Red Hat, Inc. | Dynamic integration of command line utilities |
US10726865B2 (en) | 2018-10-11 | 2020-07-28 | Western Digital Technologies, Inc. | Zoned block command to stream command translator |
US11210430B2 (en) * | 2019-04-02 | 2021-12-28 | Dell Products L.P. | System and method to negotiate encryption responsibilities between an encryption capable controller and a self encrypting drive |
US11055094B2 (en) * | 2019-06-26 | 2021-07-06 | Intel Corporation | Heterogeneous CPUID spoofing for remote processors |
US11409572B2 (en) * | 2019-09-27 | 2022-08-09 | Intel Corporation | Methods of hardware and software coordinated opt-in to advanced features on hetero ISA platforms |
US11461483B2 (en) * | 2020-01-28 | 2022-10-04 | Intel Corporation | Protection of communications between trusted execution environment and hardware accelerator utilizing enhanced end-to-end encryption and inter-context security |
US11513818B1 (en) * | 2020-09-30 | 2022-11-29 | Cadence Design Systems, Inc. | Method, product, and system for integrating a hardware accelerator with an extensible processor |
-
2020
- 2020-12-15 US US17/122,363 patent/US12026555B2/en active Active
-
2021
- 2021-11-24 JP JP2023535698A patent/JP2023552484A/ja active Pending
- 2021-11-24 CN CN202180077033.4A patent/CN116457754A/zh active Pending
- 2021-11-24 WO PCT/CN2021/132683 patent/WO2022127538A1/en active Application Filing
- 2021-11-24 DE DE112021006005.8T patent/DE112021006005T5/de active Pending
- 2021-11-24 GB GB2310175.1A patent/GB2617495B/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2022127538A1 (en) | 2022-06-23 |
US20220188168A1 (en) | 2022-06-16 |
DE112021006005T5 (de) | 2023-11-09 |
GB2617495B (en) | 2024-03-06 |
US12026555B2 (en) | 2024-07-02 |
GB2617495A (en) | 2023-10-11 |
CN116457754A (zh) | 2023-07-18 |
GB202310175D0 (en) | 2023-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7546675B2 (ja) | セキュア・ゲストへのセキュリティ・モジュールのセキュア・オブジェクトのバインディング | |
KR102551935B1 (ko) | 보안 운영 체제 이미지의 점진적 복호화 및 무결성 검증 | |
AU2020426828B2 (en) | Reserving one or more security modules for secure guest | |
US11150926B2 (en) | Native code generation for cloud services | |
JP2023551527A (ja) | 準同型暗号化を使用したセキュアなコンピューティング・リソース配置 | |
US11360789B2 (en) | Configuration of hardware devices | |
TWI808749B (zh) | 用於安全客體映像及後設資料更新之電腦程式產品、電腦系統及電腦實施方法 | |
JP2024533068A (ja) | コンテナ・システムのデータ管理方法、およびシステム | |
JP2023552648A (ja) | コマンドごとのフィルタリング・インジケータに基づくコマンド・タイプ・フィルタリング | |
US11829495B2 (en) | Confidential data provided to a secure guest via metadata | |
JP2024510893A (ja) | 複数の暗号システムを用いたハイブリッドセキュリティ証明書の生成 | |
JP7412062B2 (ja) | 暗号計算スカラ乗算実施命令 | |
JP2023552484A (ja) | 補助プロセッサ・コマンド・タイプ・フィルタリング | |
JP7391979B2 (ja) | キー機能制御に基づくデータ移動および記憶キー設定 | |
US11875200B2 (en) | Adjunct processor extended message limit facility | |
CN115774661A (zh) | 具有用户数据隔离的多用户调试 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231227 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240516 |