IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドの特許一覧 ▶ エーティーアイ・テクノロジーズ・ユーエルシーの特許一覧

特表2024-546945コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコル
<>
  • 特表-コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコル 図1
  • 特表-コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコル 図2
  • 特表-コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコル 図3
  • 特表-コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコル 図4
  • 特表-コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコル 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-26
(54)【発明の名称】コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコル
(51)【国際特許分類】
   G06F 13/36 20060101AFI20241219BHJP
   G06F 12/0831 20160101ALI20241219BHJP
   G06F 12/1081 20160101ALI20241219BHJP
   G06F 13/42 20060101ALI20241219BHJP
   G06F 13/14 20060101ALI20241219BHJP
【FI】
G06F13/36 310E
G06F12/0831 100
G06F12/1081
G06F13/36 510
G06F13/42 310
G06F13/14 320H
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024535918
(86)(22)【出願日】2022-12-19
(85)【翻訳文提出日】2024-07-18
(86)【国際出願番号】 US2022053305
(87)【国際公開番号】W WO2023129405
(87)【国際公開日】2023-07-06
(31)【優先権主張番号】17/565,666
(32)【優先日】2021-12-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(71)【出願人】
【識別番号】508301087
【氏名又は名称】エーティーアイ・テクノロジーズ・ユーエルシー
【氏名又は名称原語表記】ATI TECHNOLOGIES ULC
【住所又は居所原語表記】One Commerce Valley Drive East, Markham, Ontario, L3T 7X6 Canada
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】フィリップ ン
(72)【発明者】
【氏名】ニッポン ラヴァル
(72)【発明者】
【氏名】デイビッド エイ. カプラン
(72)【発明者】
【氏名】ドナルド ピー. マシューズ ジュニア.
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205PP00
5B205RR01
(57)【要約】
コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルを制限する方法は、第1のプロトコルをサポートする周辺デバイスから第1のアドレス変換要求を受信することであって、第1のプロトコルは、周辺デバイスとプロセッサキャッシュとの間のキャッシュコヒーレンシをサポートする、ことと、コンフィデンシャルコンピュートアーキテクチャが有効化されていると判定することと、第1のアドレス変換要求に応じて、第1のプロトコルを使用しないための周辺デバイスへの指標を含む応答を提供することと、を含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルの方法であって、
第1のプロトコルをサポートする周辺デバイスから第1のアドレス変換要求を受信することであって、前記第1のプロトコルは、前記周辺デバイスとプロセッサキャッシュとの間のキャッシュコヒーレンシをサポートする、ことと、
コンフィデンシャルコンピュートアーキテクチャが有効化されていると判定することと、
前記第1のアドレス変換要求に応じて、前記第1のプロトコルを使用しないための前記周辺デバイスへの指標を含む応答を提供することと、を含む、
方法。
【請求項2】
前記周辺デバイスへの指標は、キャッシュコヒーレンシをサポートしない第2のプロトコルを前記周辺デバイスに使用させる、
請求項1の方法。
【請求項3】
前記第1のプロトコルは、第1のコンピュートエクスプレスリンク(CXL)プロトコルを含む、
請求項2の方法。
【請求項4】
前記第2のプロトコルは、第2のCXLプロトコルを含む、
請求項3の方法。
【請求項5】
前記周辺デバイスから第2のアドレス変換要求を受信することと、
前記コンフィデンシャルコンピュートアーキテクチャが無効化されていると判定することと、
前記第1のプロトコルの使用を可能にする前記第2のアドレス変換要求への応答を提供することと、を含む、
請求項1の方法。
【請求項6】
前記第1のアドレス変換要求に関連付けられたアドレスをゲスト物理アドレスに変換することを含み、
前記応答は、前記ゲスト物理アドレスを含む、
請求項1の方法。
【請求項7】
前記第1のアドレス変換要求は、前記第2のプロトコルを介して受信される、
請求項2の方法。
【請求項8】
コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルのためのシステムであって、
周辺デバイスと、
前記周辺デバイスに動作可能に結合された装置と、を備え、
前記装置は、
第1のプロトコルをサポートする周辺デバイスから第1のアドレス変換要求を受信することであって、前記第1のプロトコルは、前記周辺デバイスとプロセッサキャッシュとの間のキャッシュコヒーレンシをサポートする、ことと、
コンフィデンシャルコンピュートアーキテクチャが有効化されていると判定することと、
前記第1のアドレス変換要求に応じて、前記第1のプロトコルを使用しないための前記周辺デバイスへの指標を含む応答を提供することと、
を含むステップを実行するように構成されている、
システム。
【請求項9】
前記周辺デバイスへの指標は、キャッシュコヒーレンシをサポートしない第2のプロトコルを前記周辺デバイスに使用させる、
請求項8のシステム。
【請求項10】
前記第1のプロトコルは、第1のコンピュートエクスプレスリンク(CXL)プロトコルを含む、
請求項9のシステム。
【請求項11】
前記第2のプロトコルは、第2のCXLプロトコルを含む、
請求項10のシステム。
【請求項12】
前記ステップは、
前記周辺デバイスから第2のアドレス変換要求を受信することと、
前記コンフィデンシャルコンピュートアーキテクチャが無効化されていると判定することと、
前記第1のプロトコルの使用を可能にする前記第2のアドレス変換要求への応答を提供することと、を含む、
請求項8のシステム。
【請求項13】
前記ステップは、
前記第1のアドレス変換要求に関連付けられたアドレスをゲスト物理アドレスに変換することを含み、
前記応答は、前記ゲスト物理アドレスを含む、
請求項8のシステム。
【請求項14】
前記第1のアドレス変換要求は、前記第2のプロトコルを介して受信される、
請求項9のシステム。
【請求項15】
非一時的コンピュータ可読媒体に配置されたコンピュータプログラム製品であって、
前記コンピュータプログラム製品は、コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルのためのコンピュータプログラム命令を含み、
前記コンピュータプログラム命令は、実行されると、
第1のプロトコルをサポートする周辺デバイスから第1のアドレス変換要求を受信することであって、前記第1のプロトコルは、前記周辺デバイスとプロセッサキャッシュとの間のキャッシュコヒーレンシをサポートする、ことと、
コンフィデンシャルコンピュートアーキテクチャが有効化されていると判定することと、
前記第1のアドレス変換要求に応じて、前記第1のプロトコルを使用しないための前記周辺デバイスへの指標を含む応答を提供することと、
を含むステップをコンピュータシステムに実行させる、
コンピュータプログラム製品。
【請求項16】
前記周辺デバイスへの指標は、キャッシュコヒーレンシをサポートしない第2のプロトコルを前記周辺デバイスに使用させる、
請求項15のコンピュータプログラム製品。
【請求項17】
前記第1のプロトコルは、第1のコンピュートエクスプレスリンク(CXL)プロトコルを含む、
請求項16のコンピュータプログラム製品。
【請求項18】
前記第2のプロトコルは、第2のCXLプロトコルを含む、
請求項17のコンピュータプログラム製品。
【請求項19】
前記ステップは、
前記周辺デバイスから第2のアドレス変換要求を受信することと、
前記コンフィデンシャルコンピュートアーキテクチャが無効化されていると判定することと、
前記第1のプロトコルの使用を可能にする前記第2のアドレス変換要求への応答を提供することと、を含む、
請求項15のコンピュータプログラム製品。
【請求項20】
前記ステップは、
前記第1のアドレス変換要求に関連付けられたアドレスをゲスト物理アドレスに変換することを含み、
前記応答は、前記ゲスト物理アドレスを含む、
請求項15のコンピュータプログラム製品。
【発明の詳細な説明】
【背景技術】
【0001】
コンピュートエクスプレスリンク(Compute Express Link、CXL)等の周辺デバイスプロトコル又は規格は、周辺デバイスとプロセッサキャッシュとの間のキャッシュコヒーレンシを可能にする。そうするために、周辺デバイスは、メモリのシステム物理アドレスに向けられたトランザクション要求を発行する。システムが、メモリの特定の部分へのアクセスを、割り当てられたエンティティに制限するコンフィデンシャルコンピュートアーキテクチャ(confidential compute architecture)を実装している場合、システム物理アドレスを使用する周辺デバイスによるメモリアクセスを処理することができない。
【図面の簡単な説明】
【0002】
図1】いくつかの実施形態による、コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルについての例示的なデバイスのブロック図である。
図2】いくつかの実施形態による、コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルについての例示的なコンピュータのブロック図である。
図3】いくつかの実施形態による、コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルについての例示的な方法のフローチャートである。
図4】いくつかの実施形態による、コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルについての別の例示的な方法のフローチャートである。
図5】いくつかの実施形態による、コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルについての別の例示的な方法のフローチャートである。
【発明を実施するための形態】
【0003】
コンピュートエクスプレスリンク(CXL)等の周辺デバイスプロトコル又は規格は、周辺デバイスとプロセッサキャッシュとの間のキャッシュコヒーレンシを可能にする。そうするために、周辺デバイスは、メモリのシステム物理アドレスに向けられたトランザクション要求を発行する。いくつかのシステムは、メモリの特定の部分へのアクセスを、割り当てられたエンティティに制限するコンフィデンシャルコンピュートアーキテクチャを使用する。例えば、メモリの特定の部分は、特定のエンティティ(例えば、仮想マシン又はハイパーバイザ)によって所有され、メモリのそれらの部分は、他のエンティティにとってアクセス不可能である。典型的には、これらのチェックは、システム物理アドレスへのアドレス変換中にメモリ管理ユニット(memory management unit、MMU)によって実行される。周辺デバイスは、これらの変換を実行することができないため、周辺デバイスは、コンフィデンシャルコンピュート環境においてシステム物理アドレスをターゲットとするトランザクションを実行することができない。
【0004】
その目的で、本明細書は、コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルのための様々な実施形態を説明する。いくつかの実施形態では、コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルの方法は、第1のプロトコルであって、第1のプロトコルが、周辺デバイスとプロセッサキャッシュとの間のキャッシュコヒーレンシをサポートする、第1のプロトコルをサポートする周辺デバイスから第1のアドレス変換要求を受信することを含む。また、方法は、コンフィデンシャルコンピュートアーキテクチャが有効化されていると判定することと、第1のアドレス変換要求に応じて、第1のプロトコルを使用しないための周辺デバイスへの指標を含む応答を提供することと、を含む。
【0005】
いくつかの実施形態では、周辺デバイスへの指標を提供することは、周辺デバイスに、キャッシュコヒーレンシをサポートしない第2のプロトコルを使用させる。いくつかの実施形態では、第1のプロトコルは、第1のコンピュートエクスプレスリンク(CXL)プロトコルを含む。いくつかの実施形態では、第2のプロトコルは、第2のコンピュートエクスプレスリンク(CXL)プロトコルを含む。いくつかの実施形態では、方法は、周辺デバイスから第2のアドレス変換要求を受信することと、コンフィデンシャルコンピュートアーキテクチャが無効化されていると判定することと、第1のプロトコルの使用を可能にする第2のアドレス変換要求への応答を提供することと、を更に含む。いくつかの実施形態では、方法は、第1のトランザクション要求に関連付けられたアドレスをゲスト物理アドレスに変換することを更に含み、応答は、ゲスト物理アドレスを更に含む。いくつかの実施形態では、第1のアドレス変換要求は、第2のプロトコルを介して受信される。
【0006】
また、本明細書は、コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルのためのシステムの様々な実施形態について記載する。そのようなシステムは、周辺デバイスと、周辺デバイスに動作可能に結合された装置と、を含む。装置は、第1のプロトコルであって、第1のプロトコルが、周辺デバイスとプロセッサキャッシュとの間のキャッシュコヒーレンシをサポートする、第1のプロトコルをサポートする周辺デバイスから第1のアドレス変換要求を受信することを含む。また、ステップは、コンフィデンシャルコンピュートアーキテクチャが有効化されていると判定することと、第1のアドレス変換要求に応じて、第1のプロトコルを使用しないための周辺デバイスへの指標を含む応答を提供することと、を含む。
【0007】
いくつかの実施形態では、周辺デバイスへの指標を提供することは、周辺デバイスに、キャッシュコヒーレンシをサポートしない第2のプロトコルを使用させる。いくつかの実施形態では、第1のプロトコルは、第1のコンピュートエクスプレスリンク(CXL)プロトコルを含む。いくつかの実施形態では、第2のプロトコルは、第2のコンピュートエクスプレスリンク(CXL)プロトコルを含む。いくつかの実施形態では、ステップは、周辺デバイスから第2のアドレス変換要求を受信することと、コンフィデンシャルコンピュートアーキテクチャが無効化されていると判定することと、第1のプロトコルの使用を可能にする第2のアドレス変換要求への応答を提供することと、を更に含む。いくつかの実施形態では、ステップは、第1のトランザクション要求に関連付けられたアドレスをゲスト物理アドレスに変換することを更に含み、応答は、ゲスト物理アドレスを更に含む。いくつかの実施形態では、第1のアドレス変換要求は、第2のプロトコルを介して受信される。
【0008】
また、本明細書では、コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルのためのコンピュータプログラム製品の様々な実施形態について記載する。そのようなコンピュータプログラム製品は、非一時的なコンピュータ可読記憶媒体に配置されており、コンピュータプログラム命令を含み、コンピュータプログラム命令は、実行された場合に、コンピュータシステムに、第1のプロトコルであって、第1のプロトコルが、周辺デバイスとプロセッサキャッシュとの間のキャッシュコヒーレンシをサポートする、第1のプロトコルをサポートする周辺デバイスから第1のアドレス変換要求を受信することを含むステップを実行させる。また、方法は、コンフィデンシャルコンピュートアーキテクチャが有効化されていると判定することと、第1のアドレス変換要求に応じて、第1のプロトコルを使用しないための周辺デバイスへの指標を含む応答を提供することと、を含む。
【0009】
いくつかの実施形態では、周辺デバイスへの指標を提供することは、周辺デバイスに、キャッシュコヒーレンシをサポートしない第2のプロトコルを使用させる。いくつかの実施形態では、第1のプロトコルは、第1のコンピュートエクスプレスリンク(CXL)プロトコルを含む。いくつかの実施形態では、第2のプロトコルは、第2のコンピュートエクスプレスリンク(CXL)プロトコルを含む。いくつかの実施形態では、ステップは、周辺デバイスから第2のアドレス変換要求を受信することと、コンフィデンシャルコンピュートアーキテクチャが無効化されていると判定することと、第1のプロトコルの使用を可能にする第2のアドレス変換要求への応答を提供することと、を更に含む。いくつかの実施形態では、ステップは、第1のトランザクション要求に関連付けられたアドレスをゲスト物理アドレスに変換することを更に含み、応答は、ゲスト物理アドレスを更に含む。
【0010】
以下の開示は、提供される発明の異なる特徴を実装するための多くの異なる実施形態又は例を提供する。本開示を簡略化するために、構成要素及び構成の具体例が以下に説明される。もちろん、これらは単なる例であり、限定することを意図するものではない。例えば、以下の説明における第2の特徴部の上方又は上への第1の特徴部の形成は、第1及び第2の特徴部が直接接触して形成される実施形態を含み、且つ、第1及び第2の特徴部が直接接触しないように、第1の特徴部と第2の特徴部との間に追加の特徴部が形成される実施形態を含む。更に、「下(beneath)」、「下方(below)」、「下部(lower)」、「上方(above)」、「上部(upper)」、「後部(back)」、「前部(front)」、「上部(top)」、「底部(bottom)」等のような空間的に相対的な用語は、本明細書では、図に示されるような、1つの要素又は特徴の別の要素又は特徴に対する関係を説明する記述を容易にするために使用される。同様に、「前面」及び「裏面」又は「上面」及び「裏面」等の用語は、本明細書では、様々な構成要素をより容易に識別するために使用され、それらの構成要素が、例えば、別の構成要素の対向する側にあることを識別する。空間的に相対的な用語は、図に示される向きに加えて、使用又は処理中のデバイスの異なる向きを包含することが意図される。
【0011】
図1は、非限定的な例示的なデバイス100のブロック図である。例示的なデバイス100は、モバイルデバイス、パーソナルコンピュータ、周辺ハードウェアコンポーネント、ゲームデバイス、セットトップボックス等を含む様々なコンピューティングデバイスとして実装され得る。当業者は、いくつかの実施形態では、デバイス100が、複数のコンピューティングデバイスを組み合わせて使用して実装されることを理解するであろう。以下に詳述される説明に加えて、デバイス100の機能性は、図3図5に記載された方法において更に詳細に記載されている。デバイス100は、1つ以上のプロセッサ102を含む。プロセッサ102の各々は、半導体材料上に製造された機能回路等の機能回路の1つ以上のコアを含む。いくつかの実施形態では、プロセッサ102は、中央処理ユニット(central processing unit、CPU)を含む。いくつかの実施形態では、プロセッサ102は、以下で更に詳細に記載するように、コンフィデンシャルコンピュータアーキテクチャを実装することに関連付けられた様々なチェック、処理等を実行するプラットフォームセキュリティプロセッサ102を含む。各プロセッサ102は、キャッシュ116(例えば、プロセッサキャッシュ116)を含む。いくつかの実施形態では、キャッシュ116は、1つ以上のキャッシュメモリレベルを含む。
【0012】
デバイス100は、1つ以上の仮想マシン104a~104nを実行する。各仮想マシン104a~104nは、デバイス100内で実行される物理コンピューティングデバイスのエミュレートされた又はシミュレートされたインスタンスである。また、デバイス100では、ハイパーバイザ106が実行される。ハイパーバイザ106は、仮想マシン104a~104nの生成、実行及び終了を管理する。一例として、ハイパーバイザ106は、メモリリソース、ディスク空き容量、処理リソース等の仮想マシン104a~104nの生成及び終了におけるコンピュータリソースの割り当て及び解放を管理する。
【0013】
また、デバイス100は、1つ以上の周辺デバイス108を含む。周辺インターフェース108は、デバイス100と周辺デバイス110との間の動作可能且つ通信可能な接続を生成するために、周辺デバイス110が結合されるポート又はソケットである。周辺デバイス110は、理解され得るように、ネットワークインターフェース、グラフィックス処理ユニット又は機械学習アクセラレータ等の並列アクセラレータといった任意の周辺コンポーネントを含む。一例として、周辺インターフェース108は、ペリフェラルコンポーネントインターフェースエクスプレス(peripheral component interface express、PCIe)ソケットを含む。
【0014】
この例では、周辺デバイス110は、周辺デバイス110とデバイス100との間(例えば、周辺デバイス110のキャッシュと、デバイス100のメモリ112又はキャッシュ116と、の間)のキャッシュコヒーレンシを可能にするデバイス通信プロトコルを使用することができる。一例として、周辺デバイス110は、メモリ112のある部分に対応するキャッシュを維持する。周辺デバイス110は、キャッシュに書き込むことができ、デバイス100は、周辺デバイス110のキャッシュに書き込むことができる。周辺デバイス110のキャッシュの変更は、メモリ112に書き戻すこと、デバイス100における対応するエントリに書き込むこと等が可能である。キャッシュコヒーレンシ処理の別の例として、周辺デバイス110は、メモリ112又はキャッシュ116からメモリの一部分の最新のコピーを取得し、同時に、メモリの一部の他の全てのキャッシュされたコピーを無効にし、且つ、取得されたコピーを周辺デバイス110のローカルキャッシュに書き込むことができる排他的コピーにするリードフォーオーナーシップ処理(read-for-ownership operation)を実行する。いくつかの実施形態では、周辺デバイス110は、そのようなキャッシュコヒーレンシを可能にする周辺デバイス110通信のためのプロトコル(例えば、CXLキャッシュプロトコル)を含む規格であるコンピュートエクスプレスリンク(CXL)を使用することができる。
【0015】
また、周辺デバイス110は、キャッシュコヒーレンシを提供しない他のデバイス通信プロトコルを使用することができる。一例として、周辺デバイス110は、PCIeを使用してデバイス100と通信することができる。別の例として、周辺デバイス110は、キャッシュコヒーレンシをサポートしないCXLプロトコルであるCXL.ioを使用してデバイスと通信することができる。言い換えれば、周辺デバイス110は、同じPCIe周辺インターフェース108を介してキャッシュコヒーレントプロトコル及び非キャッシュコヒーレントプロトコルの両方を使用することができる。
【0016】
デバイス100は、コンフィデンシャルコンピュートアーキテクチャを実装している。コンフィデンシャルコンピュートアーキテクチャは、仮想マシン104a~104nによって使用されるデータ及びメモリ112を、他の仮想マシン104a~104mから隔離し、且つ、ハイパーバイザ106からも隔離し続ける技術である。したがって、所定の仮想マシン104a~104nによって使用されるメモリ112の特定の部分に記憶されたデータは、他の仮想マシン104a~104n及びハイパーバイザ106によるアクセスから隔離される。複数のテナントがこれらのテナントのそれぞれの仮想マシン104a~104nを実行するために同じデバイス100又はデバイス100のシステムの使用を共有するマルチテナントシステムにおいて、これにより、1つのテナントが他のテナントのデータを危殆化することが防止される。
【0017】
コンフィデンシャルコンピュートアーキテクチャのための1つの手法は、セキュアネストページング(secure nested paging)の使用である。メモリ112の特定の部分が、特定の仮想マシン104a~104nによる使用のために割り当てられる(例えば、ページ単位で又は別の粒度に従って)。特定の仮想マシン104a~104nからのコマンド又は処理がメモリ112の特定の部分にアクセスしようと試みる場合、その仮想マシン104a~104nがメモリ112のその部分へのアクセスを割り当てられているかどうかを判定するためのチェックが実行される。例えば、テーブル又はデータ構造は、何れのシステム物理アドレスが何れの仮想マシン104a~104nによって所有されているかを(例えば、ページ単位で)維持する。メモリ112の特定のゲスト仮想アドレスにアクセスするための仮想マシン104a~104nによるコマンドに応じて、システム物理アドレスへの変換の後、メモリ管理ユニット(MMU)114又はロジックの他の部分が、データ構造にアクセスして、仮想マシン104a~104nがそのシステム物理アドレスへのアクセス権を有するかどうかを判定する。例えば、ゲスト仮想アドレスは、最初にゲスト物理アドレスに変換される(例えば、MMU114によって、又は、仮想マシン104a~104nに実装された仮想化MMU114によって)。次いで、ゲスト物理アドレスは、MMU114によってシステム物理アドレスに変換される。本明細書で使用される場合、ゲスト仮想アドレスは、仮想マシン104a~104nの仮想アドレス空間におけるメモリアドレスである。ゲスト物理アドレスは、仮想マシン104a~104nの物理アドレス空間におけるアドレスである。システム仮想アドレスは、デバイス100のネイティブ仮想アドレス空間のアドレスである。システム物理アドレスは、デバイス100のネイティブ物理アドレス空間におけるアドレスである。
【0018】
(例えば、CXLを使用して)キャッシュコヒーレンシを維持するために、周辺デバイス110は、物理アドレス(例えば、システム物理アドレス)を使用して、プロセッサ102の物理アドレス指定されたキャッシュ116にアクセスしなければならない。これにより、セキュアネストページングを使用するコンフィデンシャルコンピュートアーキテクチャが実装される場合に複雑が導入される。例えば、周辺デバイス110は、プロセッサ102の物理アドレス指定されたキャッシュ116にアクセスするために、仮想アドレス(例えば、ゲスト仮想アドレス)からシステム物理アドレスへの変換を実行することができない。周辺デバイス110が、MMU114によるシステム物理アドレスへの変換のための仮想アドレスをデバイス100に提供し、且つ、周辺デバイス110にシステム物理アドレスが戻されると、必要に応じて変換を後で無効にすることが困難になるであろう。別の懸念として、周辺デバイス110が悪意のあるものであるか又は危殆化されている場合、周辺デバイス110は、アドレス変換の結果を無視し、コンフィデンシャルコンピュートプロパティに違反する随意のシステム物理アドレスに対する要求を発する。したがって、セキュアネストページングを使用するコンフィデンシャルコンピュートアーキテクチャにおいて、CXLによって提供されるキャッシュコヒーレントな周辺デバイスプロトコルの使用同士の競合がある。
【0019】
したがって、周辺デバイス110とプロセッサ102キャッシュ116との間のキャッシュコヒーレンシが可能なプロトコルをサポートする周辺デバイス110からアドレス変換要求が受信されるものとする。例えば、いくつかの実施形態では、アドレス変換要求は、ゲスト仮想アドレスを後のアクセスのための物理アドレス(例えば、システム物理アドレス又はゲスト物理アドレス)に変換する要求である。いくつかの実施形態では、トランザクション要求は、周辺デバイス110にアクセスする特定の仮想マシン104a~104nによって生成される。一例として、周辺デバイス110は、特定の仮想マシン104a~104nにとって可視であるか又は別様にアクセス可能である。いくつかの実施形態では、アドレス変換要求は、周辺デバイス110がキャッシュコヒーレントプロトコルをサポートすることができることを示すように設定されたフラグ又はビットを含む。例えば、いくつかの実施形態では、アドレス変換要求は、非キャッシュコヒーレントプロトコルを介して提供されるが、周辺デバイス110がキャッシュコヒーレントプロトコルをサポートすることができることを示すフラグ又は識別子を含む。
【0020】
アドレス変換要求に応じて、デバイス100は、コンフィデンシャルコンピュートアーキテクチャが有効化されているかどうかを判定する。例えば、専用プラットフォームセキュリティプロセッサ102等のプロセッサ102は、コンフィデンシャルコンピュートアーキテクチャが有効化されているかどうかに関する特定の構成データ又は他のインジケータにアクセスする。この例を続けると、コンフィデンシャルコンピュートアーキテクチャが有効化されているかどうかを示すパラメータ又は構成属性が、デバイス100のブート又は始動中に設定されるものとする。有効化されている場合、プロセッサ102は、アドレス変換(例えば、ゲスト物理アドレス又はゲスト仮想アドレスからシステム物理アドレスへの)中にMMU114にセキュアネストページングチェックを実行させるコマンド又は指標をMMU114に送信する。
【0021】
コンフィデンシャルコンピュートアーキテクチャが有効化されている場合、アドレス変換要求への応答は、キャッシュコヒーレンシをサポートする第1のプロトコルの代わりにキャッシュコヒーレンシを実装又はサポートしない第2のプロトコルを使用するための周辺デバイス110への指標を含む。一例として、デバイス100は、周辺デバイス110に、CXL.cacheの代わりにPCIe又はCXL.ioを使用するための指標を提供する。いくつかの実施形態では、応答は、アドレス変換要求に含まれるアドレスに対応するゲスト物理アドレス(例えば、変換要求におけるゲスト仮想アドレスから変換されたゲスト物理アドレス)を含む。したがって、周辺デバイス110によって生成された後続のトランザクション要求は、アドレス変換要求への応答において提供されるゲスト物理アドレスをターゲットにする。そのような後続のトランザクション要求は、第2のプロトコル(例えば、PCIe又はCXL.io)に従って提供される。ゲスト物理アドレスに向けられた要求は、MMU114によってシステム物理アドレスに変換され、それによって、MMU114がシステム物理アドレスに対してセキュアネストページングチェックを実行することを可能にする。
【0022】
いくつかの実施形態では、指標を受信することに応じて、周辺デバイス110は、キャッシュコヒーレンシをサポートする第1のプロトコルの代わりにキャッシュコヒーレンシを実装又はサポートしない第2のプロトコルを使用するための何らかのデータ又は他の指標を記憶する。いくつかの実施形態では、この指標は、揮発性メモリに記憶又は維持される。したがって、周辺デバイス110が接続を維持し、且つ、デバイスから電力を引き出す限り、指標が記憶される。他の実施形態では、この指標は、不揮発性メモリに記憶される。したがって、そのような実施形態では、この指標は、デバイス100との接続イベント又は切断イベント全体にわたって持続する。例えば、周辺デバイス110が切断され、且つ、デバイス100に再接続された場合、周辺デバイス100は、デバイス100への再接続後に第2のプロトコルを使用し続ける。別の例として、いくつかの実施形態では、周辺デバイス110は、異なるデバイス100への接続後に、第1のプロトコルを使用するためのコマンド又は命令を受信するまで、第2のプロトコルを使用し続ける。
【0023】
本明細書に記載された手法は、キャッシュコヒーレントプロトコルを使用することができる周辺デバイス110が別の非キャッシュコヒーレントプロトコルへの切り替えによってコンフィデンシャルコンピュートアーキテクチャで依然として使用されることを可能にすることを当業者は理解するであろう。更に、本明細書に記載された手法は、コンフィデンシャルコンピュートアーキテクチャが無効化された場合に、そのような周辺デバイス110がこれらの周辺デバイスのキャッシュコヒーレントプロトコルを使用することを可能にすることを当業者は理解するであろう。
【0024】
上記の説明は、周辺デバイス110とプロセッサ102のキャッシュ116との間のキャッシュコヒーレンシを可能にするプロトコルの使用を制限することについて記載しているが、本明細書に記載された手法は、周辺デバイス110がシステム物理アドレスを使用してシステムアドレス指定されたメモリにアクセスする任意の標準又はプロトコルの使用を防止することに適用可能であることを当業者は理解するであろう。
【0025】
更に、上記の説明は、周辺デバイス110とプロセッサ102のキャッシュ116との間のキャッシュコヒーレンシを可能にするプロトコルの使用を制限することについて記載しているが、いくつかの実施形態では、コンフィデンシャルコンピュートアーキテクチャがデバイス100上で有効化されているかどうかを周辺デバイス110が判定することを当業者は理解するであろう。例えば、いくつかの実施形態では、周辺デバイス110は、デバイス100に照会して、コンフィデンシャルコンピュートアーキテクチャが有効化されているかどうかを判定する。別の例として、いくつかの実施形態では、周辺デバイス110は、コンフィデンシャルコンピュートアーキテクチャを(例えば、周辺デバイス110によって、又は、周辺デバイス110による接続に応じて)有効化又は無効化させる。したがって、いくつかの実施形態では、コンフィデンシャルコンピュートアーキテクチャが有効化されていると判定される場合、周辺デバイス110は、キャッシュコヒーレントプロトコルの使用を制限する。
【0026】
いくつかの実施形態では、図1のデバイス100は、コンピュータ200として実装されている。コンピュータ200は、少なくとも1つのプロセッサ202を含む。少なくとも1つのプロセッサ202に加えて、図2のコンピュータ200は、高速メモリバス206及びバスアダプタ208を介してプロセッサ202及びコンピュータ200の他の構成要素に接続されたランダムアクセスメモリ(random access memory、RAM)204を含む。RAM204には、オペレーティングシステム210、仮想マシン104a~104n、及び、ハイパーバイザ106が記憶される。図2の例におけるオペレーティングシステム210は、RAM204に示されているが、そのようなソフトウェアの多くの構成要素は、典型的には、例えばディスクドライブ等のデータストレージ212等の不揮発性メモリにも記憶される。
【0027】
図2のコンピュータ200は、拡張バス218及びバスアダプタ208を介してプロセッサ202とコンピュータ200の他の構成要素とに結合されたディスクドライブアダプタ216を含む。ディスクドライブアダプタ216は、不揮発性データストレージを、データストレージ212の形態でコンピュータ200に接続する。そのようなディスクドライブアダプタとしては、インテグレーテドドライブエレクトロニクス(Integrated Drive Electronics、「IDE」)アダプタ、スモールコンピュータシステムインターフェース(Small Computer System Interface、「SCSI」)アダプタ、及び、当業者が想到する他のアダプタが挙げられる。いくつかの実施形態では、不揮発性コンピュータメモリは、当業者が想到するように、光ディスクドライブ、電気的消去可能プログラマブル読み取り専用メモリ(electrically erasable programmable read-only memory、いわゆる「EEPROM」又は「フラッシュ」メモリ)、RAMドライブ等として実装される。
【0028】
図2の例示的なコンピュータ200は、1つ以上の入出力(input/output、「I/O」)アダプタ220を含む。I/Oアダプタは、例えば、コンピュータディスプレイスクリーン等のディスプレイデバイスへの出力、並びに、キーボード及びマウス等のユーザ入力デバイス222からのユーザ入力を制御するためのソフトウェアドライバ及びコンピュータハードウェアを通して、ユーザ指向入力/出力を実現する。図2の例示的なコンピュータ200は、ディスプレイスクリーン又はコンピュータモニタ等のディスプレイデバイス226へのグラフィック出力のために特別に設計されたI/Oアダプタの一例であるビデオアダプタ224を含む。ビデオアダプタ224は、高速ビデオバス228、バスアダプタ208、及び、同じく高速バスであるフロントサイドバス230を介してプロセッサ202に接続される。
【0029】
図2の例示的なコンピュータ200は、他のコンピュータとのデータ通信及びデータ通信ネットワークとのデータ通信のための通信アダプタ232を含む。そのようなデータ通信は、RS-232接続を通して、ユニバーサルシリアルバス(Universal Serial Bus、「USB」)等の外部バスを通して、IPデータ通信ネットワーク等のデータ通信ネットワークを通して、及び/又は、当業者が想到する他の方法で、シリアルに行われる。通信アダプタ232は、あるコンピュータが別のコンピュータに直接的に又はデータ通信ネットワークを介してデータ通信を送信するハードウェアレベルのデータ通信を実現する。そのような通信アダプタ232としては、有線ダイヤルアップ通信用のモデム、有線データ通信用のイーサネット(登録商標)(IEEE802.3)アダプタ、及び、無線データ通信用の802.11アダプタが挙げられる。
【0030】
更なる説明のために、図3は、コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルのための例示的な方法を示すフローチャートを示す。図3の方法は、例えば、デバイス100で実施される。図3の方法は、第1のプロトコルをサポートする周辺デバイス110から第1のアドレス変換要求(例えば、要求304)を受信すること302を含む。第1のプロトコルは、周辺デバイス100とプロセッサ102のキャッシュ116との間のキャッシュコヒーレンシをサポートする。第1のプロトコルは、デバイス100が周辺デバイス100上のキャッシュからの読み出し及び書き込みへのアクセス権を有し、且つ、周辺デバイス110のキャッシュ及びプロセッサ102のキャッシュ116の両方の部分が各々デバイス100のメモリ112の部分に対応するという点で、周辺デバイス100とプロセッサ102キャッシュ116との間のキャッシュコヒーレンシをサポートする。一例として、第1のプロトコルは、CXL.cache等のコンピュートエクスプレスリンク(CXL)プロトコルを含む。
【0031】
いくつかの実施形態では、要求304は、特定の仮想マシン104a~104nに関連付けられる。例えば、要求304は、周辺デバイス110へのアクセス権を有する仮想マシン104a~104nからのコマンド又は処理に応じて、周辺デバイス110によって生成される。いくつかの実施形態では、要求304は、仮想アドレス(例えば、ゲスト仮想アドレス)を物理アドレス(例えば、システム物理アドレス)に変換する要求を含む。例えば、周辺デバイス110が、キャッシュコヒーレンシを維持するように、システム物理アドレスを使用してキャッシュ116の物理アドレス指定された部分をターゲットにする際、周辺デバイス110は、後続のトランザクションを実行するために仮想アドレスのシステム物理アドレスへの変換を要求する。
【0032】
また、図3の方法は、コンフィデンシャルコンピュートアーキテクチャが有効化されていると判定すること306を含む。コンフィデンシャルコンピュートアーキテクチャは、ハイパーバイザにおける、特定の仮想マシン104a~104nによって使用されるメモリ112の部分を他の仮想マシン104a~104nから隔離する動作技術である。一例として、コンフィデンシャルコンピュートアーキテクチャは、セキュアネストページングを使用し、それによって、システム物理アドレス指定されたメモリ112の特定の部分(例えば、ページ)が、特定の仮想マシン104a~104nに割り当てられるか、又は、それらによって所有されることを含む。仮想マシン104a~104nとメモリ112のページとの間の関連付けを維持するデータ構造は、システム物理アドレスへのアドレス変換中に(例えば、MMU114によって)アクセスされる。例えば、変換のために提供されたゲスト仮想アドレスは、ゲスト物理アドレスに変換され、次いで、システム物理アドレスに変換される。別の例として、変換のために提供される(例えば、仮想マシン104a~104nにおける仮想化MMU114によってゲスト仮想アドレスから変換される)ゲスト物理アドレスは、システム物理アドレスへの変換のためにMMU114に提供される。次いで、システム物理アドレスを使用して、データ構造又はテーブルに照会して、システム物理アドレス指定された部分のメモリ112を所有するか、又は、それへのアクセス権を有するエンティティがあれば、そのエンティティを識別する。
【0033】
いくつかの実施形態では、コンフィデンシャルコンピュートアーキテクチャが有効化されていると判定すること306は、特定の構成パラメータ又は設定(例えば、MMU114における、ハイパーバイザ106における、オペレーティングシステムにおける等)が、コンフィデンシャルコンピュートアーキテクチャが有効化されていることを示すように設定されているかどうかを判定することを含む。
【0034】
また、図3の方法は、第1のアドレス変換要求(例えば、要求304)に応じて、第1のプロトコルを使用しないための周辺デバイス110への指標を含む応答310を提供すること308を含む。いくつかの実施形態では、応答310は、第1のプロトコルの代わりに使用すべき別のプロトコルを示す。例えば、他のプロトコルは、PCIe又はCXL.io等のように、周辺デバイス110とプロセッサ102キャッシュ116との間のキャッシュコヒーレンシをサポートしないプロトコルを含む。いくつかの実施形態では、応答310は、別のプロトコルを示さない。したがって、周辺デバイス110は、第1のプロトコルの代わりに使用すべき別のサポートされたプロトコルを判定する。いくつかの実施形態では、要求304は、第2のプロトコルを介して受信される。いくつかの実施形態では、応答310は、第2のプロトコルを介して提供される。
【0035】
いくつかの実施形態では、応答310は、要求304に含まれるゲスト仮想アドレスに対応するゲスト物理アドレスを含む。例えば、要求304がゲスト仮想アドレスに対する変換要求を含む場合、応答310は、ゲスト仮想アドレスに対応するゲスト物理アドレスを含む。言い換えれば、要求304に応じてシステム物理アドレスを提供する代わりに、ゲスト物理アドレスが周辺デバイス110に提供される。したがって、周辺デバイス110は、ゲスト物理アドレスを、後続のトランザクション又はメモリ処理のターゲットとして使用することができる。次いで、そのようなゲスト物理アドレスは、後続のセキュアネストページングチェックのために、MMU114によってシステム物理アドレスに変換される。
【0036】
図1に関してコンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルについて記載された手法は、図3図5のフローチャートにおける方法としても記載されている。したがって、更なる説明のために、図4は、コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルのための例示的な方法を示すフローチャートを示す。図4の方法は、第1のプロトコルをサポートする周辺デバイス110から第1のアドレス変換要求(例えば、要求304)を受信すること302と、コンフィデンシャルコンピュートアーキテクチャが有効化されていると判定すること306と、第1のアドレス変換要求(例えば、要求304)に応じて、第1のプロトコルを使用しないための周辺デバイス110への指標を含む応答310を提供すること308と、を含むという点で、図3と同様である。
【0037】
いくつかの実施形態では、デバイス100は、デフォルトで一貫してコンフィデンシャルコンピュートアーキテクチャを有効化する。いくつかの実施形態では、デバイス100は、コンフィデンシャルコンピュートアーキテクチャを実装することと実装しないこととの間で遷移する。例えば、いくつかの実施形態では、コンフィデンシャルコンピュートアーキテクチャは、無効化された後にユーザ又は他のエンティティによって有効化される。別の例として、周辺デバイス110は、(例えば、デバイス100への接続に応じて、周辺デバイス110からデバイスへのコマンド又は信号に応じて等)デバイス100にコンフィデンシャルコンピュートアーキテクチャを有効化又は無効化させる。
【0038】
したがって、図4の方法は、周辺デバイス110から第2のアドレス変換要求(例えば、要求404)を受信すること402と、コンフィデンシャルコンピュートアーキテクチャが無効化されていると判定すること406と、を含むという点で、図3とは異なる。例えば、第2の要求404が第1の要求304の前に受信されるものとする。更に、第2の要求404が受信された時点で、コンフィデンシャルコンピュートアーキテクチャが有効化されていなかったものとする。
【0039】
また、図4の方法は、第1のプロトコル(例えば、キャッシュコヒーレントプロトコル)を可能にする第2のアドレス変換要求(例えば、要求404)に対する応答410を提供すること408を含む。第2の要求404に応じて、アドレス変換処理が実行される。例えば、いくつかの実施形態では、仮想アドレスからシステム物理アドレスへの変換が実行される。次いで、応答410は、システム物理アドレスを含む。コンフィデンシャルコンピュートアーキテクチャが無効化される際、周辺デバイス110は、システム物理アドレスを使用して、プロセッサ102のキャッシュ116と周辺デバイス110との間のキャッシュコヒーレンシを維持する処理を実行することができる。いくつかの実施形態では、応答410は、第1のプロトコル(例えば、キャッシュコヒーレントプロトコル)が、応答410に含まれるシステム物理アドレスをターゲットとする後続のトランザクションに使用され得ることを示すフラグ、ビット又は他のオペランドを含む。
【0040】
図4は、ステップ402~408がステップ302の前に実行され、それによって、コンフィデンシャルコンピュートアーキテクチャが無効化された後に有効化されることを示しているが、いくつかの実施形態では、ステップ402~408がステップ308の後に実行され、それによって、コンフィデンシャルコンピュートアーキテクチャが有効化された後に無効化される。更に、図4は、図3に記載されたのと同じ周辺デバイス110について記載しているが、いくつかの実施形態では、図4に示される周辺デバイス110は、異なる周辺デバイス110である。一例として、デバイス100のコンフィデンシャルコンピュートアーキテクチャは、何れの周辺デバイス110がアタッチされているかに応じて有効化又は無効化される。
【0041】
当業者は、図4の方法が、コンフィデンシャルコンピュートアーキテクチャが無効化されている間、周辺デバイス110がキャッシュコヒーレントプロトコルを使用することができることを例示していることを理解するであろう。コンフィデンシャルコンピュートアーキテクチャが有効化されると、周辺デバイス110は、別のプロトコルを介して依然として使用可能であり、デバイス100から取り除かれる必要がない。当業者は、コンフィデンシャルコンピュートアーキテクチャが有効化された後に無効化される場合、いくつかの実施形態では、周辺デバイス110は、代わりに第1のプロトコルを使用して後続の要求を処理することができることも理解するであろう。
【0042】
更なる説明のために、図5は、コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルのための例示的な方法を示すフローチャートを示す。図5の方法は、第1のプロトコルをサポートする周辺デバイス110から第1のアドレス変換要求(例えば、要求304)を受信すること302と、コンフィデンシャルコンピュートアーキテクチャが有効化されていると判定すること306と、第1のアドレス変換要求(例えば、要求304)に応じて、第1のプロトコルを使用しないための周辺デバイス110への指標を含む応答を提供すること308と、を含むという点で、図3と同様である。
【0043】
図5の方法は、第1のアドレス変換要求(例えば、要求304)に関連付けられたアドレスをゲスト物理アドレスに変換すること502を含むという点で、図3とは異なる。いくつかの実施形態では、ゲスト物理アドレスは、要求304に含まれるゲスト仮想アドレスから変換される。一例として、ゲスト仮想アドレスは、MMU114又は仮想マシン104a~104nにおける仮想化MMU114によってゲスト物理アドレスに変換される。次いで、変換されたゲスト物理アドレスは、要求304に対する応答310に含められる。
【0044】
一例として、いくつかの実施形態では、第1のアドレス変換要求は、ゲスト仮想アドレスをシステム物理アドレスに変換する要求である。コンフィデンシャルコンピュートアーキテクチャが有効化されていることに起因して、周辺デバイス110は、メモリの特定の領域へのアクセス権を有しない。これらの領域へのアクセスを制御するために、デバイス100は、周辺デバイス110によって使用されているメモリアクセス権がゲスト物理アドレスを対象とすることを必要とする。次いで、これらのゲスト物理アドレスを、デバイス100によって使用して、周辺デバイス100がコンフィデンシャルコンピュートアーキテクチャ下でアクセス権を有するかどうかを判定する。したがって、第1のアドレス変換要求に対する応答は、要求されたシステム物理アドレスの代わりにゲスト物理アドレスを含む。
【0045】
上記に詳述された説明を考慮して、読者は、コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルの利益が、コンフィデンシャルコンピュートアーキテクチャを実装するシステムにおいてキャッシュコヒーレントなデバイスプロトコルが可能な周辺デバイスの使用を可能にすることによるコンピューティングシステムの性能を含むことを認識するであろう。
【0046】
本開示の例示的な実施形態は、コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルのための完全に機能するコンピュータシステムのコンテキストで主に説明される。しかしながら、当業者の読者は、本開示が、任意の好適なデータ処理システムとともに使用するためにコンピュータ可読記憶媒体に配置されたコンピュータプログラム製品に具現化され得ることを認識するであろう。そのようなコンピュータ可読記憶媒体は、磁気媒体、光学媒体、又は、他の好適な媒体を含む機械可読情報のための任意の記憶媒体であり得る。そのような媒体の例としては、ハードドライブ又はディスケット内の磁気ディスク、光学ドライブのためのコンパクトディスク、磁気テープ、及び、当業者に着想されるような他のものを含む。当業者であれば、好適なプログラミング手段を有する任意のコンピュータシステムが、コンピュータプログラム製品で具現化された本開示の方法のステップを実行することが可能であることを直ちに認識するであろう。当業者は、本明細書に記載の例示的な実施形態のいくつかがコンピュータハードウェア上でインストール及び実行されるソフトウェアに向けられているが、それにもかかわらず、ファームウェアとして又はハードウェアとして実装される代替的な実施形態が本開示の範囲に十分に含まれることも認識するであろう。
【0047】
本開示は、システム、方法及び/又はコンピュータプログラム製品とすることができる。コンピュータプログラム製品は、プロセッサに本開示の態様を行わせるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。
【0048】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持及び記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又は、上記の任意の好適な組み合わせであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは、以下を含む。ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(read-only memory、ROM)、消去可能なプログラマブル読み取り専用メモリ(erasable programmable read-only memory、EPROM若しくはフラッシュメモリ)、スタティックランダムアクセスメモリ(static random access memory、SRAM)、携帯型コンパクトディスク専用メモリ(compact disc read-only memory、CD-ROM)、デジタル多用途デバイス(digital versatile disk、DVD)、メモリスティック、フロッピー(登録商標)ディスク、パンチカード又はその上に記録された命令を有する溝内の隆起構造等の機械的にコード化されたデバイス、及び、上記の任意の好適な組み合わせ。本明細書で使用される場合、コンピュータ可読記憶媒体は、電波若しくは他の自由に伝播する電磁波等、導波管若しくは他の伝送媒体(例えば、光ファイバケーブルを通過する光パルス)を通って伝播する電磁波、又は、ワイヤを通って伝送される電気信号等の一時的な信号それ自体であると解釈されるべきではない。
【0049】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、又は、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、広域ネットワーク及び/若しくは無線ネットワーク)を介して外部コンピュータ若しくは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、及び/又は、エッジサーバを含むことができる。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために伝送する。
【0050】
本開示の処理を行うためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(instruction-set-architecture、ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Smalltalk、C等のオブジェクト配向プログラミング言語、並びに、「C」プログラミング言語又は同様のプログラミング言語等の従来の手続きプログラミング言語を含む1つ以上のプログラミング言語の任意の組み合わせで書き込まれたソースコード又はオブジェクトコードの何れかとすることができる。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、スタンドアロンソフトウェアパッケージとして、ユーザのコンピュータ上で部分的に、リモートコンピュータ上で部分的に、又は、リモートコンピュータ若しくはサーバ上で完全に実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(local area network、LAN)若しくは広域ネットワーク(wide area network、WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続することができるか、又は、外部コンピュータ(例えば、インターネットサービスプロバイダを使用するインターネットを介して)に接続することができる。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)又はプログラマブルロジックアレイ(programmable logic array、PLA)を含む電子回路は、本開示の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することによって、コンピュータ可読プログラム命令を実行することができる。
【0051】
本開示の態様は、本開示の実施形態による方法、装置(システム)及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して本明細書に記載されている。フローチャート及び/又はブロック図の各ブロック、並びに、フローチャート及び/又はブロック図におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実現することができることが理解されよう。
【0052】
これらのコンピュータ可読プログラム命令は、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図の1つ以上のブロックで指定された機能/行為を実施するための手段を生成するような機械を製造するように、汎用コンピュータ、専用コンピュータ又は他のプログラマブルデータ処理装置のプロセッサに提供することができる。これらのコンピュータ可読プログラム命令は、その上に記憶された命令を有するコンピュータ可読記憶媒体が、フローチャート及び/又はブロック図の1つ以上のブロックで指定された機能/行為の態様を実行する命令を含む製造物品を含むように、コンピュータ、プログラマブルデータ処理装置及び/又は他のデバイスに特定の方法で機能するように指示することができる、コンピュータ可読記憶媒体に記憶することができる。
【0053】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブルデータ処理装置又は他のデバイスにロードされて、コンピュータ、他のプログラマブル装置又は他のデバイス上で実行される命令が、フローチャート及び/又はブロック図の1つ以上のブロックで指定された機能/行為を実行するように、コンピュータによって実行されるプロセスを生成するために、コンピュータ、他のプログラマブル装置又は他のデバイス上で一連の処理ステップを行わせることができる。
【0054】
図中のフローチャート及びブロック図は、本開示の様々な実施形態によるシステム、方法及びコンピュータプログラム製品の可能な実施形態のアーキテクチャ、機能及び処理を示す。これに関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実装するための1つ以上の実行可能命令を含む、命令のモジュール、セグメント又は部分を表すことができる。いくつかの代替的な実施形態では、ブロックに記載されている機能は、図に記載された順序から外れて発生する可能性がある。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行されてもよく、又は、ブロックは、関与する機能に応じて、逆の順序で実行され得る。ブロック図及び/又はフロー図の各ブロック、並びに、ブロック図及び/又はフロー図におけるブロックの組み合わせは、指定された機能若しくは行為を行うか、又は、専用ハードウェアとコンピュータ命令との組み合わせを行う、専用ハードウェアベースのシステムによって実行することができることにも留意されたい。
【0055】
本開示の様々な実施形態において修正及び変更を行うことができることは、上記の記載から理解されるであろう。本明細書における記載は、例示のみを目的としており、限定的な意味で解釈されるべきではない。本開示の範囲は、以下の特許請求の範囲の文言によってのみ限定される。
図1
図2
図3
図4
図5
【手続補正書】
【提出日】2024-08-16
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルの方法であって、
第1のプロトコルをサポートする周辺デバイスから第1のアドレス変換要求を受信することであって、前記第1のプロトコルは、前記周辺デバイスとプロセッサキャッシュとの間のキャッシュコヒーレンシをサポートする、ことと、
コンフィデンシャルコンピュートアーキテクチャが有効化されていると判定することと、
前記第1のアドレス変換要求に応じて、前記第1のプロトコルを使用しないための前記周辺デバイスへの指標を含む応答を提供することと、を含む、
方法。
【請求項2】
前記周辺デバイスへの指標は、キャッシュコヒーレンシをサポートしない第2のプロトコルを前記周辺デバイスに使用させる、
請求項1の方法。
【請求項3】
前記第1のプロトコルは、第1のコンピュートエクスプレスリンク(CXL)プロトコルを含む、
請求項2の方法。
【請求項4】
前記第2のプロトコルは、第2のCXLプロトコルを含む、
請求項3の方法。
【請求項5】
前記周辺デバイスから第2のアドレス変換要求を受信することと、
前記コンフィデンシャルコンピュートアーキテクチャが無効化されていると判定することと、
前記第1のプロトコルの使用を可能にする前記第2のアドレス変換要求への応答を提供することと、を含む、
請求項1の方法。
【請求項6】
前記第1のアドレス変換要求に関連付けられたアドレスをゲスト物理アドレスに変換することを含み、
前記応答は、前記ゲスト物理アドレスを含む、
請求項1の方法。
【請求項7】
前記第1のアドレス変換要求は、前記第2のプロトコルを介して受信される、
請求項2の方法。
【請求項8】
コンフィデンシャルコンピュートアーキテクチャにおける周辺デバイスプロトコルのためのシステムであって、
周辺デバイスと、
前記周辺デバイスに動作可能に結合された装置と、を備え、
前記装置は、
第1のプロトコルをサポートする周辺デバイスから第1のアドレス変換要求を受信することであって、前記第1のプロトコルは、前記周辺デバイスとプロセッサキャッシュとの間のキャッシュコヒーレンシをサポートする、ことと、
コンフィデンシャルコンピュートアーキテクチャが有効化されていると判定することと、
前記第1のアドレス変換要求に応じて、前記第1のプロトコルを使用しないための前記周辺デバイスへの指標を含む応答を提供することと、
行うように構成されている、
システム。
【請求項9】
前記周辺デバイスへの指標は、キャッシュコヒーレンシをサポートしない第2のプロトコルを前記周辺デバイスに使用させる、
請求項8のシステム。
【請求項10】
前記第1のプロトコルは、第1のコンピュートエクスプレスリンク(CXL)プロトコルを含む、
請求項9のシステム。
【請求項11】
前記第2のプロトコルは、第2のCXLプロトコルを含む、
請求項10のシステム。
【請求項12】
記周辺デバイスから第2のアドレス変換要求を受信することと、
前記コンフィデンシャルコンピュートアーキテクチャが無効化されていると判定することと、
前記第1のプロトコルの使用を可能にする前記第2のアドレス変換要求への応答を提供することと、
行うように構成されている
請求項8のシステム。
【請求項13】
記第1のアドレス変換要求に関連付けられたアドレスをゲスト物理アドレスに変換するように構成されており
前記応答は、前記ゲスト物理アドレスを含む、
請求項8のシステム。
【国際調査報告】