JP2023544001A - アクセラレータカードのセキュリティモードの静的構成 - Google Patents
アクセラレータカードのセキュリティモードの静的構成 Download PDFInfo
- Publication number
- JP2023544001A JP2023544001A JP2023519035A JP2023519035A JP2023544001A JP 2023544001 A JP2023544001 A JP 2023544001A JP 2023519035 A JP2023519035 A JP 2023519035A JP 2023519035 A JP2023519035 A JP 2023519035A JP 2023544001 A JP2023544001 A JP 2023544001A
- Authority
- JP
- Japan
- Prior art keywords
- accelerator card
- security mode
- configuration memory
- satellite controller
- integrated circuit
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/34—User authentication involving the use of external additional devices, e.g. dongles or smart cards
- G06F21/35—User authentication involving the use of external additional devices, e.g. dongles or smart cards communicating wirelessly
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Time Recorders, Dirve Recorders, Access Control (AREA)
- Stored Programmes (AREA)
Abstract
アクセラレータカードは、読み出し専用メモリであって、読み出し専用メモリ内の指定されたフィールド内にセキュリティ識別子を記憶するように構成された、読み出し専用メモリと、リセットイベントに応答してセキュリティ識別子を読み出すように構成されたサテライトコントローラと、を含み得る。サテライトコントローラは、セキュリティ識別子に基づいて、複数のセキュリティモードからセキュリティモードを選択し、かつ選択されたセキュリティモードをアクセラレータカード内に実装するように構成されている。【選択図】図3
Description
本開示は、コンピュータシステムとともに周辺デバイスを使用することに関し、より詳細には、アクセラレータカードタイプの周辺デバイスに対するセキュリティモードの構成に関する。
ハードウェアアクセラレーションは、コンピューティングシステムのタスクが中央処理装置(CPU)からシステム内の他のハードウェアにオフロードされる技術を指す。他のハードウェアは、オフロードされたタスクを実行するために特別に調整又は適合され得る。タスクがオフロードされるハードウェアは、アクセラレータカードと呼ばれる場合がある。
アクセラレータカードは、通信バスを介してコンピュータシステムに通信可能にリンクされる。多くの場合、アクセラレータカードは、コンピュータシステムの利用可能なバススロットに嵌合するエッジコネクタを有する。さらに、アクセラレータカードは、様々な異なる通信バス又は他の通信技術のうちのいずれかによってコンピュータシステムに通信可能にリンクされ得る。
アクセラレータカードは、読み出し専用メモリであって、読み出し専用メモリ内の指定されたフィールド内にセキュリティ識別子を記憶するように構成された、読み出し専用メモリと、リセットイベントに応答してセキュリティ識別子を読み出すように構成されたサテライトコントローラと、を含み得る。サテライトコントローラは、セキュリティ識別子に基づいて、複数のセキュリティモードからセキュリティモードを選択し、選択されたセキュリティモードをアクセラレータカード内に実装することができる。
アクセラレータカードに対するセキュリティモードを構成する方法は、アクセラレータカードのサテライトコントローラを使用して、リセットイベントに応答してアクセラレータカードの読み出し専用メモリの指定されたフィールドからセキュリティ識別子を読み出すことと、セキュリティ識別子に基づいて、かつサテライトコントローラを使用して、アクセラレータカードに対する複数のセキュリティモードからセキュリティモードを選択することと、選択されたセキュリティモードをアクセラレータカード内に実装することと、を含み得る。
この発明の概要セクションは、特定の概念を紹介するためにのみ提供され、特許請求される主題の重要な又は本質的な特徴を識別するためのものではない。本発明の構成の他の特徴は、添付の図面及び以下の詳細な説明から明らかになるであろう。
本発明の構成は、例として添付の図面に示されている。しかしながら、図面は、示された特定の実装態様のみに本発明の構成を限定するものと解釈されるべきではない。以下の詳細な説明を検討し、図面を参照すると、様々な態様及び利点が明らかになるであろう。
本開示は、新規の特徴を定義する特許請求の範囲によって結論付けられるが、本開示内で説明される様々な特徴は、図面と併せて説明を考察することによってよりよく理解されると考えられる。本明細書に記載のプロセス、機械、製造物、及びそれらの任意の変形は、例示の目的で提供される。本開示内で説明される特定の構造的及び機能的詳細は、限定として解釈されるべきではなく、単に特許請求の範囲の基礎として、かつ事実上任意の適切な詳細構造に記載された特徴を様々に採用することを当業者に教示するための代表的な基礎として解釈されるべきである。さらに、本開示内で使用される用語及び語句は、限定することを意図するものではなく、むしろ記載された特徴の理解可能な説明を提供することを意図している。
本開示は、コンピュータシステムとともに周辺デバイスを使用することに関し、より詳細には、アクセラレータカードタイプの周辺デバイスに対するセキュリティモードの構成に関する。現代のコンピュータシステムは、アクセラレータカードとよく呼ばれる周辺デバイスを利用して、コンピュータシステムの中央処理装置(CPU)のみに依存しては達成できない場合がある1つ以上の利益を得ることができる。これらの利益には、より高速な演算、消費電力の削減、及び冗長性が含まれ得るが、これらに限定されない。
ルート・オブ・トラストは、コンピュータシステムのオペレーティングシステムによって常に信頼されている、コンピュータシステムの信頼されたコンポーネントによって提供される機能のセットを指す。コンピュータシステムは、アクセラレータカードなどの特定の周辺デバイスにルート・オブ・トラストを拡張することができる。しかしながら、異なるコンピュータシステムは、異なるルート・オブ・トラストを利用する場合があり、各異なるルート・オブ・トラストは、ルート・オブ・トラストを周辺デバイスに拡張するための異なる経路を有する場合がある。
本開示内で説明される本発明の構成によれば、アクセラレータカードなどの周辺デバイスは、周辺デバイスに必要なセキュリティロールを自動的に検出することができる。例えば、リセットイベントに応答して、周辺デバイスは、周辺デバイス内に実装されるべきセキュリティモードを自動的に判定することができる。実装されるセキュリティモードは、周辺デバイスが使用される特定のホストコンピュータのルート・オブ・トラストに依存し得る。
一態様では、周辺デバイスは、周辺デバイスのメモリ内に記憶されたセキュリティ識別子に基づいて複数のセキュリティモードからセキュリティモードを選択することができる。セキュリティ識別子は、ホストコンピュータのルート・オブ・トラストを示す。周辺デバイスは、選択されたセキュリティモードを実装することによってそれ自体を自動的に構成することができる。選択されたセキュリティモードを実装することにより、周辺デバイスは、正しい経路を介してホストコンピュータのルート・オブ・トラストに応答し、任意の必要なセキュリティプロトコルを実行し、そのようなセキュリティプロトコルの実行に続いて、1つ以上のアプリケーションワークロードを開始することができる。
例示的な実装態様では、周辺デバイスは、選択されたセキュリティモードで静的に構成されている。セキュリティモードの静的構成は、周辺デバイスがリセットイベントに応答してセキュリティモードを選択し実装することを意味する。リセットイベントは、例えば、ブートプロセスを実行する周辺デバイスを含み得る。例えば、電源投入又はリセットされることに応答して、周辺デバイスは、セキュリティモードを選択し、そのセキュリティモードを実装することができる。
本発明の構成のさらなる態様は、図を参照して以下により詳細に説明される。図示を簡単かつ明確にするために、図に示す要素は必ずしも縮尺通りに描かれていない。例えば、要素のうちのいくつかの寸法は、明確にするために他の要素に対して誇張されている場合がある。さらに、適切であると考えられる場合、対応する、類似の、又は同様の特徴を示すために、図間で参照番号が繰り返される。
図1は、本開示内で説明される本発明の構成とともに使用するための例示的なコンピューティング環境100を示している。コンピューティング環境は、アクセラレータカード104に結合されたホストコンピュータ102を含む。アクセラレータカード104は、ホストコンピュータ102の周辺デバイスの一例である。
コンピュータ102のコンポーネントは、ホストプロセッサ106(例えば、1つ以上のCPU)、メモリ108、及びメモリ108を含む様々なシステムコンポーネントをホストプロセッサ106に結合するバス110を含み得るが、これらに限定されない。ホストプロセッサ106は、プログラムコードを実行することができる様々なプロセッサのうちのいずれかとして実装され得る。例示的なプロセッサタイプには、x86タイプのアーキテクチャ(IA-32、IA-64など)を有するプロセッサ、パワーアーキテクチャ、及びARMプロセッサなどが含まれるが、これらに限定されない。
プロセッサ106は、バス110を介してメモリ108と通信する。例えば、バス110は、メモリバスとして実装されてもよい。コンピュータ102は、典型的には、様々なコンピュータ可読媒体を含む。そのような媒体は、ホストコンピュータ102によってアクセスされ得る様々な媒体のうちのいずれかであり得、揮発性媒体、不揮発性媒体、リムーバブル媒体、及び/又は非リムーバブル媒体の任意の組合せを含み得る。
メモリ108は、ホストプロセッサ106に関連して本開示内で説明される機能及び/又は動作を実行するように構成されたプログラムモジュール(例えば、プログラムコード)のセット(例えば、少なくとも1つ)を有する少なくとも1つのコンピュータプログラム製品の一例である。例えば、メモリ108は、ランダム・アクセス・メモリ(RAM)112及び/又はキャッシュメモリ114などの揮発性メモリの形態のコンピュータ可読媒体を含み得る。コンピュータ102はまた、他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピュータシステム記憶媒体を含み得る。例えば、記憶システム116は、ディスクドライブを含み得、ディスクドライブは、その中に含まれる非リムーバブル不揮発性の磁気媒体及び/又はソリッドステート媒体(例えば、「ハードドライブ」)から読み出し及び書き込みが可能である。記憶システム116はまた、磁気、ソリッドステート、及び/又は光学であり得るリムーバブル不揮発性媒体からの読み出し及び書き込みのための1つ以上のディスクドライブを含み得る。ディスクドライブは、1つ以上のデータ媒体インターフェースによってバス110に接続され得る。
プログラム/ユーティリティ118は、1つ以上のプログラムモジュール120を含み得る。メモリ108内に記憶されているプログラムモジュール120には、オペレーティングシステム、1つ以上のアプリケーションプログラム(例えば、ユーザアプリケーション)、他のプログラムモジュール、及び/又はプログラムデータが含まれ得るが、これらに限定されない。プログラムモジュール120は、一般に、少なくともホストプロセッサ106によって実行される動作に関して本明細書に記載されるような機能及び/又は方法論を実行する。
プログラム/ユーティリティ118は、ホストプロセッサ106によって実行可能である。プログラム/ユーティリティ118及びホストプロセッサ106によって使用、生成、及び/又は動作される任意のデータ項目は、ホストプロセッサ106によって採用されるときに機能性を付与する機能的データ構造である。本開示内で定義されるように、「データ構造」は、物理メモリ内のデータモデルのデータの編成の物理的な実装態様である。したがって、データ構造は、メモリ内の特定の電気的又は磁気的構造要素から形成されている。データ構造は、プロセッサを使用して実行されるアプリケーションプログラムによって使用されるように、メモリ内に記憶されたデータに物理的編成を課す。
ホストコンピュータ102は、バス124を介してホストプロセッサ106に通信可能にリンクされた1つ以上の入力/出力(I/O)インターフェース122を含み得る。バス124は、拡張バス又はI/Oバスであり得る。I/Oインターフェース122は、コンピュータ102がアクセラレータカード104などの様々な周辺デバイスに結合し、周辺デバイスと通信することを可能にする。ホストコンピュータ102は、他のI/Oインターフェースを介して、キーボード、ポインティングデバイス、及び/又はディスプレイなどの他のデバイス(図示せず)に結合され得る。I/Oインターフェース122の例には、ネットワークカード、モデム、ネットワークアダプタ、ハードウェアコントローラなどが含まれ得るが、これらに限定されない。
バス124は、様々な通信バス構造のうちのいずれかとして実装され得る。限定ではなく例として、そのようなバス構造は、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオエレクトロニクス規格協会(VESA)ローカルバス、ペリフェラル・コンポーネント・インターコネクト(PCI)バス、又はPCIエクスプレス(PCIe)バスを含み得る。
図1の例では、ホストコンピュータ102は、通信チャネル126を介してアクセラレータカード104に結合されている。通信チャネル126は、バス124上のI/Oインターフェース122によって確立され得る。例示的な実装態様では、ホストコンピュータ102がアクセラレータカード104と通信するためのI/Oインターフェース122は、PCIeアダプタである。アクセラレータカード104は、ホストコンピュータ102に結合する回路基板として実装され得る。アクセラレータカード104は、例えば、ホストコンピュータ102の利用可能なカードスロット、例えば、利用可能なバス及び/又はPCIeスロット内に挿入され得る。図1の例では、通信チャネル126は、「帯域内」の通信チャネルである。
ホストコンピュータ102がベースボード管理コントローラ(BMC)(図示せず)を含む1つ以上の例示的な実装態様では、ホストコンピュータ102はまた、通信チャネル128によってアクセラレータカード104に通信可能にリンクされ得る。通信チャネル128は、BMCをアクセラレータカード104に通信可能にリンクする帯域外(OOB)通信チャネルとして実装され得る。一態様では、通信チャネル128は、通信チャネル126と同じ物理コネクタを介して実装され得る。それでもやはり、通信チャネル128は、通信チャネル126と物理的に別個であり、かつ通信チャネル126から分離されている。
図1の例では、アクセラレータカード104は、プログラマブルIC132を含む。プログラマブルIC132は、プログラマブル回路(例えば、プログラマブル論理)を含む。明示的に示されていないが、プログラマブルIC132は、プログラマブル回路と協働するように使用され得る1つ以上のハードワイヤード回路ブロックを含み得ることを理解されたい。一例として、プログラマブルIC132は、フィールド・プログラマブル・ゲート・アレイ(FPGA)として実装され得る。一態様では、プログラマブルIC132は、互いに協働して動作することができる異なるサブシステムを含むシステム・オン・チップ(SoC)として実装され得る。例えば、プログラマブルIC132は、プロセッサ及び/若しくはプロセッサアレイサブシステム、プログラマブル論理サブシステム、並びに/又は1つ以上の他の専用ハードワイヤード回路ブロックを含み得る。アクセラレータカード104はまた、揮発性メモリ及び/又は不揮発性メモリなどの、プログラマブルIC132に結合された図1に示されていない他のコンポーネントを含み得る。
図1は、本明細書に記載の例の使用又は機能性の範囲に関するいかなる限定も示唆することを意図していない。ホストコンピュータ102は、アクセラレータカード104及び/又はプログラマブルIC132に関連して本開示内で説明される様々な動作を実行することができるコンピュータハードウェア(例えば、システム)の一例である。アクセラレータカード104は、例示の目的で提供されており、本発明の構成を限定することを意図するものではない。アクセラレータカード104のより詳細な例は、図2に関連して説明される。
一態様では、ホストコンピュータ102はサーバを表す。例えば、ホストコンピュータ102は、スタンドアロンデバイスとして、ベアメタルサーバとして、又はコンピューティングデバイスのクラスタの一部として実践され得る。別の態様では、コンピューティング環境100は、ホストコンピュータ102がコンピューティング環境100内で実践されているデータセンタを表し得る。データセンタは、例えば、サーバ、ルータ、スイッチ、ファイアウォール、電気通信機器、及び/又は記憶システムなどのコンピューティング設備を収容する部屋又は建物などの専用空間を指す。データセンタは、バックアップ機器、消火設備、及び空調などのサポートコンポーネントを含むことが多い。データセンタは、個人用であっても共有であってもよい。典型的には、データセンタは、コンピューティングハードウェアに対するアクセスを認可された人員のみに制限する。1つの例示的な実装態様では、コンピューティング環境100は、ハイパースケールデータセンタを表し得る。
例示的な実装態様では、コンピュータ環境102は、ホストコンピュータ102がコンピュータ環境102内で実践されている分散クラウドコンピューティング環境を表し得る。分散クラウドコンピューティング環境では、タスクは、通信ネットワークを介してリンクされたリモート処理デバイスによって実行される。分散クラウドコンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカル及びリモートコンピュータシステム記憶媒体の両方に位置し得る。
本明細書で使用される場合、「クラウドコンピューティング」という用語は、ネットワーク、サーバ、記憶装置、アプリケーション、IC(例えば、プログラマブルIC)、及び/又はサービスなどの構成可能なコンピューティングリソースの共有プールに対する便利なオンデマンド・ネットワーク・アクセスを容易にするコンピューティングモデルを指す。これらのコンピューティングリソースは、最小限の管理労力又はサービスプロバイダの対話で迅速にプロビジョニング及び発売され得る。クラウドコンピューティングは、可用性を促進し、オンデマンドのセルフサービス、広範なネットワークアクセス、リソースプーリング、迅速な順応性、及び測定されたサービスによって特徴付けられ得る。
例えば、クラウドコンピューティング環境、エッジコンピューティング環境、及び/又はデータセンタなどのいくつかのコンピューティング環境は、一般に、サービスとしてのFPGA(FaaS)モデルをサポートする。FaaSモデルでは、ユーザ機能は、ホストコンピュータの制御下で動作するプログラマブルIC内に実装された回路設計としてハードウェアアクセラレーションされる。クラウドコンピューティングモデルの他の例は、米国国立標準技術研究所(NIST)、より具体的には、NISTの情報技術研究所によって説明されている。
実際のデータセンタ及び/又は分散クラウドコンピューティング環境は、図示されているよりも多くのコンピュータを含み得、コンピュータのうちの1つ以上又は全ては、それに結合された1つ以上のアクセラレータカードを有することを理解されたい。
例示的な実装態様では、アクセラレータカード104は、アクセラレータカード104内にセキュリティモードを自動的かつ静的に構成することができる。アクセラレータカード104は、ホストコンピュータ102によって提供されるルート・オブ・トラストのインフラストラクチャと互換性のあるセキュリティモードを実装することができる。これにより、アクセラレータカード104は、正しい信号経路を介してホストコンピュータ102のルート・オブ・トラストと対話することができる。
図2は、ホストコンピュータ102及びアクセラレータカード104を含むコンピューティング環境100の別の例を示している。アクセラレータカード104は、プログラマブルIC132に加えて、スイッチ204に結合されたサテライトコントローラ202と、プログラマブル読み出し専用メモリ(PROM)206と、制御回路208と、を含む。一例では、サテライトコントローラ202は、プログラムコードを実行することができるプロセッサとして実装され得る。別の例では、サテライトコントローラ202は、専用回路として実装され得る。
アクセラレータカード104はまた、プログラマブルIC132に結合されたランダム・アクセス・メモリ(図示せず)を含み得る。サテライトコントローラ202は、その中に含まれるシリアル・ペリフェラル・インターフェース(SPI)を介してスイッチ204のポートに結合され得る。サテライトコントローラ202はまた、その中に含まれる集積回路間(I2C)インターフェースを介して、制御回路208と通信し、制御信号を制御回路に提供し、PROM206から読み出すことができる。アクセラレータカード104のコンポーネントによって使用される、本明細書に記載の特定のバス、通信チャネル、及び/又はインターフェースは、限定ではなく例示を目的として提供されることを理解されたい。記載されたもの以外の同等かつ/又は好適なインターフェースが使用されてもよい。
図2の例では、ホストコンピュータ102は、BMC210を含む。例えば、図2は、ホストコンピュータ102のマザーボード又はマザーボードの一部分を示し得る。この例では、BMC210は、ホストプロセッサ106と同じホストコンピュータ102のマザーボード上に実装され得る。例示を目的として、図1に関連して前述したホストコンピュータ102の他のコンポーネントは、図2には示されていない。ホストプロセッサ106は、通信チャネル126を介してプログラマブルIC132に結合されている。通信チャネル126は、コネクタ212を通って延在する。コネクタ212は、PCIeコネクタであり得る。BMC210は、通信チャネル128を介してサテライトコントローラ202に結合されている。通信チャネル128もまた、コネクタ212を通って延在する。一態様では、通信チャネル128は、システム管理バス(SMBus)として実装されている。
例示的な実装態様では、PROM206は、電気的に消去可能なPROMとして実装され得る。PROM206は、アクセラレータカード104が製造された時点及び現場で発売される前にその中に記憶される様々なデータを含み得る。このデータは、フィールド交換可能ユニット(FRU)データを含み得る。FRUデータは、他の機器製造業者(Other Equipment Manufacturer:OEM)データを含み得る。例示的な実装態様では、セキュリティ識別子(ID)は、例えば、FRU EOMフィールドなどのFRU OEMデータ内に記憶され得る。
例示的な実装態様では、セキュリティIDは、アクセラレータカードのルート・オブ・トラスト、及び、したがって、ルート・オブ・トラストを拡張するための特定の経路を特定する。例示の目的で、セキュリティIDは、アクセラレータカード104内に実装されるべき第1の、すなわち帯域内(IB)のセキュリティモードを示す第1の値を特定し得る。IBセキュリティモードでは、ルート・オブ・トラストは、ホストプロセッサ106である。IBセキュリティモードでは、ルート・オブ・トラストを拡張するために有効化される経路は、IB通信チャネルである通信チャネル126である。あるいは、セキュリティIDは、アクセラレータカード104内に実装されるべき第2の、すなわちOOBセキュリティモードを示す1つ以上の他の値を特定し得る。OOBセキュリティモードでは、ルート・オブ・トラストは、BMC210である。OOBセキュリティモードでは、ルート・オブ・トラストを拡張するために有効化される経路は、OOB通信チャネルである通信チャネル128である。本明細書に記載の例では、IBチャネルは、ホストコンピュータ102からアクセラレーションカード104にタスクをオフロードする目的で、例えば、ワークロードを実行するために、ホストプロセッサ106によってアクセラレータカード104と通信するために使用される。OOB通信チャネルは、ホストコンピュータ102からのワークロードを実行するためにアクセラレータカード104によって使用されない。
スイッチ204は、メモリ214に結合されている。メモリ214は、不揮発性メモリとして実装され得る。図2の例では、メモリ214は、構成メモリ216及びリカバリ構成メモリ218を含む。構成メモリ216は、プログラマブルIC132が構成メモリ216からブートするという点で、一次構成メモリであり得る。リカバリ構成メモリ218は、特定の状況において構成メモリ216のバックアップとして使用され得る。一態様では、構成メモリ216及びリカバリ構成メモリ218は各々、フラッシュメモリとして実装され得る。メモリ214は、例えば、プログラマブルIC132の構成データを記憶し得る。スイッチ204は、制御回路208から提供される制御信号によって構成可能であり、アクセラレータカード104内に実装されたセキュリティモードに基づいて、構成メモリ216に対する読み出し専用アクセス、又は構成メモリ216に対する読み出し及び書き込みアクセスのいずれかをプログラマブルIC132に提供する。スイッチ204がプログラマブルIC132に構成メモリ216に対する読み出し及び書き込みアクセスを提供する場合、スイッチ204は、サテライトコントローラ202のメモリ214に対するアクセスを禁止又はオフする。
この例では、プログラマブルIC132は、スイッチ204のポートに接続されたインターフェース222を含み、それによって、プログラマブルIC132のメモリ214からの読み出し、又は構成メモリ216に対する読み出し及び書き込みを可能にする。例示的な実装態様では、インターフェース222は、クワッド・シリアル・ペリフェラル・インターフェース(QSPI)である。スイッチ204は、アクセラレータカード104上に実装される特定のセキュリティモードに関係なく、プログラマブルIC132がリカバリ構成メモリ218から読み出すことができるように構成されてもよい。1つ以上の例示的な実装態様では、制御回路208を介したスイッチ204の構成に応じて、プログラマブルIC132は、メモリ214の一方又は両方のいずれかに対する読み出し及び/又は書き込みが可能である。
アクセラレータカード104のリセットイベントに応答して、サテライトコントローラ202は、PROM206からセキュリティIDを読み出す。リセットイベントは、その中のアクセラレータカード及びサテライトコントローラの再起動及び/又はブートの任意の発生であり得る。リセットイベントの例には、アクセラレータカード104の電源がオフにされてからオンにされるハードリセット、アクセラレータカード104のソフトリセット、及びアクセラレータカード104の初期電源オンが含まれ得る。
セキュリティIDの値に基づいて、サテライトコントローラ202は、コマンドを制御回路208に送信し、制御回路208に特定の構成でスイッチ204を構成させる。例えば、セキュリティIDが、ルート・オブ・トラストがホストプロセッサ106であるIBセキュリティモードを示す場合、サテライトコントローラ202は、構成メモリ216に対する読み出し及び書き込みアクセスをプログラマブルIC132に提供するようにスイッチ204を構成するように、制御回路208に命令する。サテライトコントローラ202はさらに、サテライトコントローラ202がメモリ214にアクセスするのを防止するようにスイッチ204を構成するように、制御回路208に命令する。その場合、スイッチ204は、サテライトコントローラ202をメモリ214から効果的に切断する。サテライトコントローラ202からの命令を受信したことに応答して、制御回路208は、説明したように、スイッチ204を構成するのに必要な制御信号を生成する。
IBセキュリティモードでは、プログラマブルIC132には、構成メモリ216に対する読み出し及び書き込みアクセスが与えられる。したがって、プログラマブルIC132は、少なくとも最初は、構成メモリ216から読み出されたブートイメージを使用してブートすることができる。本開示内では随時、プログラマブルIC132のブートイメージは、プログラマブルIC132の「ファームウェア」と呼ばれ得る。ブートイメージは、プログラマブルIC132内にロードされると、プログラマブルIC132内にセキュア回路設計220を実装し得る。セキュア回路設計220は、通信チャネル126を介してホストプロセッサ106と通信することができる。例えば、セキュア回路設計220は、プログラマブルIC132内にPCIeエンドポイントなどの通信インターフェースを実装し得る。セキュア回路設計220は、プログラマブルIC132及び/又はアクセラレータカード104内のセキュリティプロトコルの実装に関するホストプロセッサ106から受信したさらなる命令に応答することができる。
IBセキュリティモードの場合、セキュア回路設計220は、ホストプロセッサ106上で実行するユーザアプリケーションのアクセス権と、ホストプロセッサ106上で実行するルート・オブ・トラスト(オペレーティングシステム)と、を区別することができる。セキュア回路設計220は、例えば、ルート・オブ・トラストとして機能するホストプロセッサ106から受信され得るさらなる構成データを認証することができる。例えば、セキュア回路設計220は、ルート・オブ・トラストとして機能するホストプロセッサ106から別のブートイメージを受信し得る。プログラマブルIC132を構成するためのブートイメージを受信することに応答して、セキュア回路設計220は、ブートイメージを認証することができる。例えば、セキュア回路設計220は、受信されたブートイメージのハッシュ値を生成し、ハッシュ値を既知又は所定のハッシュ値と比較することができる。セキュア回路設計220は、認証された構成データ又はブートイメージを構成メモリ216に書き込むことができる。したがって、ホストプロセッサ106の制御下で動作するセキュア回路設計220は、ホストプロセッサ106から受信した構成データで構成メモリ216を更新することができる。セキュア回路設計220に構成メモリ216への書き込みの権限を与えることによって、ルート・オブ・トラストは、ホストプロセッサ106からセキュア回路設計220に拡張される。
IBセキュリティモードでは、サテライトコントローラ202は、通信チャネル128を介してBMC210と通信しない。すなわち、サテライトコントローラ202は、通信チャネル128を介してBMC210から受信したコマンド又は通信にサテライトコントローラ202が応答しないモードに置かれ得る。IBセキュリティモードでは、サテライトコントローラ202は、少なくともアクセラレータカード104の次のリセットイベントまで、プログラマブルIC132及び/又はメモリ214から効果的に切断する。
セキュリティIDが、ルート・オブ・トラストがBMC210であるOOBセキュリティモードを示す場合、サテライトコントローラ202は、構成メモリ216に対する読み出し専用アクセスをプログラマブルIC132に提供するようにスイッチ204を構成するように、制御回路208に命令する。サテライトコントローラ202はさらに、サテライトコントローラ202に構成メモリ216に対する読み出し及び書き込みアクセスを提供するようにスイッチ204を構成するように、制御回路208に命令する。サテライトコントローラ202からの命令を受信したことに応答して、制御回路208は、説明したように、スイッチ204を構成するのに必要な制御信号を生成する。1つ以上の例示的な実装態様では、制御回路208を介したスイッチ204の構成に応じて、サテライトコントローラ202は、メモリ214の一方又は両方のいずれかに対する読み出し及び/又は書き込みが可能である。
OOBセキュリティモードでは、プログラマブルIC132は、構成メモリ216に対する読み出し専用アクセスを与えられる。したがって、プログラマブルIC132は、少なくとも最初は、構成メモリ216から読み出されたブートイメージを使用してブートすることができる。ブートイメージは、プログラマブルIC132にロードされると、プログラマブルIC132内にセキュア回路設計220を実装し得る。セキュア回路設計220の特定の実装態様は、IBセキュリティモードとOOBセキュリティモードとで異なり得ることを理解されたい。すなわち、OOBセキュリティモードの場合とは異なるセキュア回路設計が構成メモリ216内に記憶され、そこから読み出され、IBセキュリティモードのプログラマブルIC132内に実装され得る。一例として、IBセキュリティモードの場合、セキュア回路設計220は、ホストプロセッサ106から受信した特定の構成データの認証を実行し、認証された構成データを構成メモリ216に書き込むことができるが、セキュア回路設計220は、OOBセキュリティモードの場合、そのような機能を実行することができない場合がある。
OOBセキュリティモードでは、サテライトコントローラ202は、通信チャネル128を介してBMC210と通信する。すなわち、サテライトコントローラ202は、通信チャネル128を介して、ルート・オブ・トラストであるBMC210から受信したコマンド又は通信にサテライトコントローラ202が応答するモードに置かれている。サテライトコントローラ202は、プログラマブルIC132及び/又はアクセラレータカード104内のセキュリティプロトコルの実装に関するBMC210から受信したさらなる命令に応答することができる。
一態様では、OOBセキュリティモードは、サテライトコントローラ202が最初にBMC210によって認証されることを意味する。BMC210によって認証されると、サテライトコントローラ202は、ルート・オブ・トラストとして機能するBMC210から受信され得るさらなる構成データを認証することができる。例えば、サテライトコントローラ202は、ルート・オブ・トラストとして機能するBMC210からプログラマブルIC132の別のブートイメージを受信し得る。サテライトコントローラ202は、ブートイメージを受信すると、ブートイメージを認証することができる。例えば、サテライトコントローラ202は、受信したブートイメージからハッシュ値を生成し、既知又は所定のハッシュ値と比較することができる。サテライトコントローラ202は、認証された構成データ又はブートイメージを構成メモリ216に書き込むことができる。したがって、プログラマブルIC132は、ブートイメージの認証を実行しないか、又はそのようなデータを構成メモリ216に書き込まない。セキュアサテライトコントローラ202に構成メモリ216に対する書き込み権限を与えることにより、ルート・オブ・トラストはBMC210からサテライトコントローラ202に拡張される。
1つ以上の例示的な実装態様では、OOBセキュリティモードは、アクセラレータカード104を使用する特定の顧客又はユーザに基づいてアクセラレータカード104を構成するための特定のルーチンを実装し得る。例えば、セキュリティIDは、特定のセキュリティモードを特定し、サテライトコントローラ202によって実行されるべき特定のルーチンのセットもまた特定し得る。一例として、セキュリティIDは、アクセラレータカード104を使用することになる特定のエンティティを示す1つ以上の最下位ビットを含み得る。実行されるルーチンは、アクセラレータカード104の特定のユーザに固有のものであり得る。
一例として、サテライトコントローラ202は、アクセラレータカード104を使用して、特定のハイパースケールベンダに固有の特定のルーチンを実行し得る。サテライトコントローラ202は、複数の異なるハイパースケールベンダに対応する複数のルーチンを含み得る。複数の異なるセキュリティIDは、OOBセキュリティモードを示し得、そのような各異なるセキュリティIDは、異なるベンダに対応する。セキュリティIDを読み出し、OOBセキュリティモードを実装すると、サテライトコントローラ202は、セキュリティIDに関連付けられたそれらのセキュリティルーチン、例えば、複数のルーチンのうちの選択されたもののみを実行することができる。例えば、セキュリティIDによって示されるハイパースケールベンダに対応するこれらのセキュリティルーチンのみが、サテライトコントローラ202によって実行又は実装される。
図2の例では、セキュア回路設計220は、プログラマブルIC132をブートするために使用される「ゴールデン」又は信頼された回路設計とみなされ得る。セキュア回路設計220は、ホストプロセッサ106又はBMC210のいずれかが残りの構成を実行することを可能にする。上述したように、セキュア回路設計220の特定のバージョン又は実装態様は、アクセラレータカード104によって実装される特定のセキュリティモードに基づいて変化し得る。セキュア回路設計220は、アクセラレータカード104が現場に出されると、ルート・オブ・トラストによって更新され得る。
プログラマブルIC132がセキュア回路設計220をその中に実装してブートし、ルート・オブ・トラストからのセキュリティ関連命令が実行されると、プログラマブルIC132は既知の良好な状態になる。その時点で、プログラマブルIC132には、実装された特定のセキュリティモードにかかわらず、その中にユーザ特定回路224を実装するアプリケーション構成データがロードされ得る。アプリケーション構成データは、ルート・オブ・トラストから受信したブートイメージと区別される。ユーザ特定回路224がプログラマブルIC132内に実装されると、ワークロードを実行する一部として動作するアプリケーション構成データ及びデータは、ホストプロセッサ106から通信チャネル126を介して提供される。
本開示内に記載される例は、同じアクセラレータカードが異なるコンピューティング環境内で使用されることを可能にする。例えば、アクセラレータカード104は、IBセキュリティモードを使用するOEMタイプのフレームワーク又はOOBセキュリティモードを使用するハイパースケールタイプのフレームワークをサポートするために、製造時に特定のセキュアIDがロードされるだけでよい。IBセキュリティモードが実装されている場合、ホストコンピュータは、例えば、BMCを有していてもよいし、有していなくてもよい。本明細書に記載の本発明の構成は、アクセラレータカードの1つのモデルが2つの異なるルート・オブ・トラストのフレームワークをサポートすることを可能にする。記載された異なるルート・オブ・トラストのフレームワークをサポートするために、アクセラレータカード104の2つの異なる物理的実装態様を作成する必要はない。
図3は、アクセラレータカードにおけるセキュリティモードの静的構成の例示的な方法300を示している。アクセラレータカードは、図1及び図2に関連して説明したように実装され得る。
ブロック302において、アクセラレータカード104は、リセットイベントに応答して電源オン又はリセットされる。アクセラレータカード104の電源投入又はリセットに応答して、サテライトコントローラ202はブートする。ブロック304において、サテライトコントローラ202は、PROM206内の指定された又は所定のメモリ場所からセキュリティIDを読み出す。セキュリティIDは、アクセラレータカード104の製造時にPROM206内に記憶され得る。
上述したように、セキュリティIDは、IBセキュリティモード又はOOBセキュリティモードのどちらがアクセラレータカード104によって実装されるべきかを示す。IBセキュリティモードは、あるエンティティ、例えば、ホストプロセッサ106をルート・オブ・トラストとして認識する。OOBセキュリティモードは、別のエンティティ、例えば、BMC210をルート・オブ・トラストとして認識する。各異なるルート・オブ・トラストは、ルート・オブ・トラストを拡張するために異なる信号経路又はフレームワークを利用する。
ブロック306において、サテライトコントローラ202は、PROM206から読み出されたセキュリティIDに基づいて、アクセラレータカード104内に実装されるべき特定のセキュリティモードを判定する。セキュリティIDは、例えば、IBセキュリティモード又はOOBセキュリティモードのいずれかを示す。上述したように、セキュリティIDはまた、OOBセキュリティモードの場合にサテライトコントローラ202によって実行されるべきセキュリティプロトコル又は動作の特定のセットを特定し得る。ブロック308においてセキュリティIDがIBセキュリティモードを示すと判定したことに応答して、方法300は、ブロック310に続く。ブロック308においてセキュリティIDがOOBセキュリティモードを示すと判定したことに応答して、方法300は、ブロック320に続く。
ブロック310に続き、サテライトコントローラ202は、スイッチ204を構成するための命令を制御回路208に提供する。ブロック312において、制御回路208は、サテライトコントローラ202からの命令に応答して、スイッチ204に制御信号を提供してスイッチ204を構成し、それによって、プログラマブルIC132に構成メモリ216に対する読み出し及び書き込みアクセスを提供し、かつサテライトコントローラ202を構成メモリ216及びバックアップ構成メモリ218から切断する。例えば、スイッチ204は、サテライトコントローラ202が接続されているポートを無効にするように構成され得る。
ブロック314において、プログラマブルIC132は、構成メモリ216からの読み出されたものとしてのセキュア回路設計220によってブートする。すなわち、プログラマブルIC132は、セキュア回路設計220のためのブートイメージを構成メモリ216から読み出し、プログラマブルIC132内にロードし、それによってセキュア回路設計220を実装する。ブロック316において、セキュア回路設計220は、ルート・オブ・トラストとしてホストプロセッサ106から受信したコマンドに応答するモードに入る。セキュア回路設計220は、例えば、通信チャネル126を介してホストプロセッサ106と通信するための通信エンドポイントを実装し得る。セキュア回路設計220は、チャネル126を介して、ブートイメージを提供するホストプロセッサ106からのコマンド、ブートイメージを認証するための命令、及び認証されたブートイメージを構成メモリ216内に記憶するための命令を受信することができる。セキュア回路設計220は、通信チャネル126を介してホストプロセッサ106から受信したコマンドに応答して、他のセキュリティ対策及び/又はプロトコルをその中に実装するようにアクセラレータカード104のプログラマブルIC132及び/又は他のコンポーネントをさらに構成することができる。
ブロック318において、ホストプロセッサ106は、通信チャネル126を介してプログラマブルIC132にアプリケーション構成データをロードすることができる。アプリケーション構成データは、ロードされると、プログラマブルIC132内のユーザ特定回路224を実装する。アプリケーション構成データは、セキュリティ構成が完了すると、例えば、プログラマブルIC132内の任意のセキュリティプロトコル及び/又は測定値の実装に続いて、プログラマブルIC132にロードされる。プログラマブルIC132内に実装されたユーザ特定回路224を用いて、ホストプロセッサ106は、ユーザ特定回路224によって実行されるワークロードの一部として動作するようにプログラマブルIC132にデータを送信し得る。
ブロック320に続き、サテライトコントローラ202は、スイッチ204を構成するための命令を制御回路208に提供する。ブロック322において、制御回路208は、サテライトコントローラ202からの命令に応答して、スイッチ204に制御信号を提供してスイッチ204を構成し、それによって、プログラマブルIC132に構成メモリ216に対する読み出し専用アクセスを提供し、かつサテライトコントローラ202に構成メモリ216に対する読み出し及び書き込みアクセスを提供する。
ブロック324において、サテライトコントローラ202は、BMC210から受信したコマンドに応答するモードに入る。BMC210は、例えば、通信チャネル128を介してサテライトコントローラ202と通信し得る。サテライトコントローラ202は、チャネル128を介して、ブートイメージを提供するBMC210からのコマンド、ブートイメージを認証するための命令、及び認証されたブートイメージを構成メモリ216内に記憶するための命令を受信することができる。サテライトコントローラ202はさらに、通信チャネル128を介してBMC210から受信したコマンドに応答して、他のセキュリティ対策及び/又はプロトコルをその中に実装することができる。
ブロック326において、プログラマブルIC132は、構成メモリ216からの読み出されたものとしてのセキュア回路設計220によってブートする。すなわち、プログラマブルIC132は、セキュア回路設計220のためのブートイメージを構成メモリ216から読み出し、プログラマブルIC132内にロードし、それによってセキュア回路設計220を実装する。
ブロック326の後、方法300はブロック318に進むことができ、ここで、ユーザ特定回路224は、ホストプロセッサ106の制御下でプログラマブルIC132内に実装され得、ユーザ特定回路224は、説明したようにワークロードを実行し得る。
図4は、アクセラレータカードにおけるセキュリティモードの静的構成の別の例示的な方法400を示している。アクセラレータカードは、図1及び図2に関連して説明したように実装され得る。
ブロック402において、サテライトコントローラは、リセットイベントに応答して、アクセラレータカードの読み出し専用メモリの指定されたフィールドからセキュリティ識別子を読み出す。ブロック404において、セキュリティ識別子に基づいて、サテライトコントローラは、アクセラレータカードに対する複数のセキュリティモードからセキュリティモードを選択する。ブロック406において、選択されたセキュリティモードは、アクセラレータカード内に実装される。
前述及び他の実装態様は各々、単独で又は組み合わせて、以下の特徴のうちの1つ以上を任意選択的に含み得る。いくつかの例示的な実装態様は、全ての以下の特徴を組み合わせて含む。
一態様では、複数のセキュリティモードは、IBセキュリティモード及びOOBセキュリティモードを含む。
方法は、IBセキュリティモードを実装することに応答して、アクセラレータカードと通信するホストコンピュータのホストプロセッサをアクセラレータカードのルート・オブ・トラストとして指定することを含み得る。
アクセラレータカードは、プログラマブルIC、及びプログラマブルICのための構成メモリを含み得る。
方法は、IBセキュリティモードを実装することに応答して、ブートイメージの受信のためにホストプロセッサとプログラマブルICとの間のIB通信チャネルを有効化することを含み得る。プログラマブルICは、ブートイメージを認証し、ブートイメージを構成メモリ内に記憶するように構成されている。
方法は、OOBセキュリティモードを実装することに応答して、ホストコンピュータのBMCをアクセラレータカードのルート・オブ・トラストとして指定することを含み得る。
方法は、OOBセキュリティモードを実装することに応答して、ブートイメージの受信のためにサテライトコントローラとBMCとの間のOOB通信チャネルを有効化することを含み得る。サテライトコントローラは、ブートイメージを認証し、ブートイメージを構成メモリ内に記憶するように構成され得る。
アクセラレータカードは、構成メモリ、プログラマブルIC、及びサテライトコントローラに結合されたスイッチを含み得、スイッチは、選択されたセキュリティモードに基づいて構成メモリに対する書き込みアクセスをプログラマブルIC又はサテライトコントローラに提供するようにサテライトコントローラによって構成される。
方法は、IBセキュリティモードを実装することに応答して、プログラマブルICに構成メモリに対する読み出し及び書き込みアクセスを提供し、かつサテライトコントローラを構成メモリから切断するように、スイッチを構成することを含み得る。
方法は、OOBセキュリティモードを実装することに応答して、プログラマブルICに構成メモリに対する読み出し専用アクセスを提供し、かつサテライトコントローラに構成メモリに対する読み出し及び書き込みアクセスを提供するように、スイッチを構成することを含み得る。
別の態様では、読み出し専用メモリは、セキュリティ識別子が予めロードされ得、サテライトコントローラによってのみ読み出し可能である。
1つ以上の例示的な実装態様では、IBセキュリティモードは、サーバがオンプレミスであるOEMサーバインフラストラクチャで使用され得る。OEMサーバインフラストラクチャが、アクセラレータカードがライブビデオストリーミングなどの特定の機能を実行することを可能にする例を考える。その場合、ルート・オブ・トラストがサーバ(例えば、ホストプロセッサ)からオペレーティングシステム上のsudoロールに拡張されるIBセキュリティモードが使用され得る。sudoロールは、ユーザが別のユーザのセキュリティ特権でプログラムを実行することを可能にするコンピュータオペレーティングシステム機能を指す。
アクセラレータカードがパブリッククラウドコンピューティング環境、例えばハイパースケールコンピューティング環境でライブビデオストリーミングを提供する場合、OOBセキュリティモードが使用され得る。その場合、ルート・オブ・トラストは、ホストプロセッサではなくサーバ上に位置するBMCである。外部ユーザに、パブリッククラウド内のサーバホスト上のライブビデオストリーミングサービスに対するアクセスが提示される可能性があるため、ルート・オブ・トラストとしてパブリッククラウドコンピューティング環境内のホストプロセッサを使用することはセキュアではない場合がある。
本明細書に記載の本発明の構成によれば、OOBセキュリティモードは、BMCから発行され得る様々なコマンドをサポートすることができる。サテライトコントローラは、例えば、OOBセキュリティモードがアクセラレータカード内に実装されると、BMCからのそのようなコマンドに応答し得る。これらのコマンドは、セキュアなファームウェア更新(例えば、異なるブートイメージによる構成メモリの更新)をサポートする。
以下は、サテライトコントローラによってサポートされ得る例示的なコマンドである。
・アクセラレータカードのセキュリティステータス情報を読み出す。このコマンドは、サテライトコントローラによって実行されたとき、構成デバイス(例えば、構成メモリ216及び/又はリカバリ構成メモリ218)ごとの書き込み保護ステータス、アクセスモード、及びブートイメージ認証ステータスに関する情報を提供する読み出しコマンドである。
・デフォルトのブートデバイスの選択。このコマンドは、プログラマブルIC132が各電源投入時にそこからブートするデフォルトのブートデバイスとして1つの構成デバイスを選択するオプションを提供する書き込みコマンドである。例えば、デフォルトのブートデバイスは、このコマンドを使用して構成メモリ216又はリカバリ構成メモリ218に設定され得る。
・選択された構成デバイスに対してセキュリティ設定を構成する。このコマンドは、選択された構成デバイスにアクセラレータカード上の利用可能なセキュリティ設定のいずれかを適用するオプションを提供する書き込みコマンドである。セキュリティ設定オプションは、様々なモードのSPIアクセス、並びに構成メモリ216及び/又はリカバリ構成メモリ218の書き込み有効化/無効化を含む。
・サテライトコントローラファームウェアの認証、及びサテライトコントローラに対するセキュアなファームウェア更新の実行。これは、OOB通信チャネルを介してサテライトコントローラのファームウェアの認証及びサテライトコントローラのファームウェアの更新を可能にする読み出し及び書き込みコマンドの集合を指す。一例として、認証は、デフォルトAES、又はファームウェア更新中の暗号化/復号化、及びCRCチェックの選択を含み得る。
・主構成デバイスのセキュアなファームウェア更新。これは、構成メモリ216及び/又はリカバリ構成メモリ218のセキュアなファームウェア更新を可能にする読み出し及び書き込みコマンドの集合を指す。このようなコマンドの受信に応答して、サテライトコントローラは、PROMからのセキュリティIDをチェックし、構成メモリの更新が許可されていることを確認する。セキュリティIDの検証に成功した場合にのみ、このカテゴリの書き込みコマンドが有効になる。このカテゴリ内のコマンドには、ステータス読み出し、ブートイメージペイロードの転送、及びCRCチェックが含まれる。サテライトコントローラの内部において、これらのコマンドは、サテライトコントローラが実行するための対応するアクションをトリガして、ブートイメージを構成メモリの正しいセクタに書き込み、ブートイメージに対してCRC比較を実行し、失敗の場合に再試行する。
・主構成デバイスコンテンツの認証。これは、構成メモリ216及び/又はリカバリ構成218内のブートイメージの完全な認証を可能にする読み出し及び書き込みコマンドの集合を指す。1つ以上の例示的な実装態様では、使用される特定の認証方式又はプロトコルは、PROMから読み出される特定のセキュリティIDによって異なり得る。例えば、複数の異なるセキュリティIDのうちのいずれかがPROM206に特定され得、複数のセキュリティIDの各々は、OOBセキュリティモードを特定し、各セキュリティIDは、サテライトコントローラによって実装される異なる事前に定義された認証方式を特定する。サテライトコントローラは、複数の異なる認証方式をサポートすることができるが、セキュリティIDに基づいて実行時に1つの認証方式を実装する。認証ステータスは、ステータスコマンドによって提供され得る。認証失敗の場合、サテライトコントローラは、認証されていないコンテンツを完全に消去することができる。
・主構成デバイスから二次構成デバイスへの認証されたコンテンツの転送。このコマンドは、構成メモリ216などの主構成デバイスからリカバリ構成デバイス218などのリカバリデバイスへのコンテンツの複製を可能にする。このコマンドは、ハードウェア内でプロビジョニングされ、フォールトトレラントを達成するためにファームウェアによってサポートされ得る。構成メモリ216内のデータの破損又は損失の場合、プログラマブルIC132は、リカバリ構成メモリ218から構成され得る。この冗長性機能を有効化するために、サテライトコントローラは、構成メモリ216からリカバリ構成メモリ218に構成データ又はブートイメージをコピーし、それによって、IB通信チャネルよりも遅い速度で動作するOOB通信チャネルを介して各構成メモリに対して別々に比較的遅い更新を実行する必要性を排除する。コンテンツの複製は、構成メモリ218内に記憶された構成データのサテライトコントローラによる認証の成功に応答してのみ有効化される。一態様では、各構成デバイスの認証情報は、各コマンド動作中の相互検証のためにサテライトコントローラの内部不揮発性メモリ内に記憶され得る。
・アクセラレータカードのセキュリティステータス情報を読み出す。このコマンドは、サテライトコントローラによって実行されたとき、構成デバイス(例えば、構成メモリ216及び/又はリカバリ構成メモリ218)ごとの書き込み保護ステータス、アクセスモード、及びブートイメージ認証ステータスに関する情報を提供する読み出しコマンドである。
・デフォルトのブートデバイスの選択。このコマンドは、プログラマブルIC132が各電源投入時にそこからブートするデフォルトのブートデバイスとして1つの構成デバイスを選択するオプションを提供する書き込みコマンドである。例えば、デフォルトのブートデバイスは、このコマンドを使用して構成メモリ216又はリカバリ構成メモリ218に設定され得る。
・選択された構成デバイスに対してセキュリティ設定を構成する。このコマンドは、選択された構成デバイスにアクセラレータカード上の利用可能なセキュリティ設定のいずれかを適用するオプションを提供する書き込みコマンドである。セキュリティ設定オプションは、様々なモードのSPIアクセス、並びに構成メモリ216及び/又はリカバリ構成メモリ218の書き込み有効化/無効化を含む。
・サテライトコントローラファームウェアの認証、及びサテライトコントローラに対するセキュアなファームウェア更新の実行。これは、OOB通信チャネルを介してサテライトコントローラのファームウェアの認証及びサテライトコントローラのファームウェアの更新を可能にする読み出し及び書き込みコマンドの集合を指す。一例として、認証は、デフォルトAES、又はファームウェア更新中の暗号化/復号化、及びCRCチェックの選択を含み得る。
・主構成デバイスのセキュアなファームウェア更新。これは、構成メモリ216及び/又はリカバリ構成メモリ218のセキュアなファームウェア更新を可能にする読み出し及び書き込みコマンドの集合を指す。このようなコマンドの受信に応答して、サテライトコントローラは、PROMからのセキュリティIDをチェックし、構成メモリの更新が許可されていることを確認する。セキュリティIDの検証に成功した場合にのみ、このカテゴリの書き込みコマンドが有効になる。このカテゴリ内のコマンドには、ステータス読み出し、ブートイメージペイロードの転送、及びCRCチェックが含まれる。サテライトコントローラの内部において、これらのコマンドは、サテライトコントローラが実行するための対応するアクションをトリガして、ブートイメージを構成メモリの正しいセクタに書き込み、ブートイメージに対してCRC比較を実行し、失敗の場合に再試行する。
・主構成デバイスコンテンツの認証。これは、構成メモリ216及び/又はリカバリ構成218内のブートイメージの完全な認証を可能にする読み出し及び書き込みコマンドの集合を指す。1つ以上の例示的な実装態様では、使用される特定の認証方式又はプロトコルは、PROMから読み出される特定のセキュリティIDによって異なり得る。例えば、複数の異なるセキュリティIDのうちのいずれかがPROM206に特定され得、複数のセキュリティIDの各々は、OOBセキュリティモードを特定し、各セキュリティIDは、サテライトコントローラによって実装される異なる事前に定義された認証方式を特定する。サテライトコントローラは、複数の異なる認証方式をサポートすることができるが、セキュリティIDに基づいて実行時に1つの認証方式を実装する。認証ステータスは、ステータスコマンドによって提供され得る。認証失敗の場合、サテライトコントローラは、認証されていないコンテンツを完全に消去することができる。
・主構成デバイスから二次構成デバイスへの認証されたコンテンツの転送。このコマンドは、構成メモリ216などの主構成デバイスからリカバリ構成デバイス218などのリカバリデバイスへのコンテンツの複製を可能にする。このコマンドは、ハードウェア内でプロビジョニングされ、フォールトトレラントを達成するためにファームウェアによってサポートされ得る。構成メモリ216内のデータの破損又は損失の場合、プログラマブルIC132は、リカバリ構成メモリ218から構成され得る。この冗長性機能を有効化するために、サテライトコントローラは、構成メモリ216からリカバリ構成メモリ218に構成データ又はブートイメージをコピーし、それによって、IB通信チャネルよりも遅い速度で動作するOOB通信チャネルを介して各構成メモリに対して別々に比較的遅い更新を実行する必要性を排除する。コンテンツの複製は、構成メモリ218内に記憶された構成データのサテライトコントローラによる認証の成功に応答してのみ有効化される。一態様では、各構成デバイスの認証情報は、各コマンド動作中の相互検証のためにサテライトコントローラの内部不揮発性メモリ内に記憶され得る。
1つ以上の例示的な実装態様では、上述のコマンドは、バックグラウンド内で実行され得る。すなわち、プログラマブルIC132は、上述したコマンドのうちの1つ以上がバックグラウンド内で実行され得る間、動作し続けることができる。例えば、プログラマブルIC132は、主構成デバイス内に記憶された認証コンテンツからブートすることができ、ワークロードの実行(例えば、その中に実装されたユーザ特定回路を使用してホストコンピュータによってオフロードされたタスクを実行する)を開始する。プログラマブルIC132がワークロード実行を実行している間、サテライトコントローラは、主構成デバイスに対する書き込みアクセスを取得し、バックグラウンド動作として主構成デバイス内に記憶されたデータのセキュアな更新を実行することができる。更新が成功した後、例えば、プログラマブルIC132のための認証されたブートイメージを記憶した後、アクセラレータカードは、新しいファームウェアでリブートされ得る。リブートすると、プログラマブルIC132は新しいブートイメージをロードし、それによって、プログラマブルIC132内に実装されたセキュア回路設計の更新を可能にする。
サテライトコントローラのファームウェアは、PROM206から読み出されたセキュリティIDに基づいてセキュリティ機能を有効化又は無効化する。セキュリティレベル及び各セキュリティレベルの実装態様詳細は、事前に定義され、それぞれのセキュリティIDが割り当てられ得る。前述のコマンドは、セキュリティIDの要件に従ってのみ有効化され得る。コマンドの各々は、PROM206に書き込まれるセキュリティIDに基づいて使用されるカスタム構成又は実装態様を有し得る。
図5は、ICの例示的なアーキテクチャ500を示している。一態様では、アーキテクチャ500は、プログラマブルIC内に実装され得る。例えば、アーキテクチャ500は、フィールド・プログラマブル・ゲート・アレイ(FPGA)を実装するために使用され得る。アーキテクチャ500はまた、システム・オン・チップ(SoC)タイプのICを表し得る。SoCは、プログラムコードを実行するプロセッサ及び1つ以上の他の回路を含むICである。他の回路は、ハードワイヤード回路、プログラマブル回路、及び/又はそれらの組合せとして実装され得る。回路は、互いにかつ/又はプロセッサと協働して動作し得る。
図示のように、アーキテクチャ500は、いくつかの異なるタイプのプログラマブル回路、例えば、論理ブロックを含む。例えば、アーキテクチャ500は、マルチギガビットトランシーバ(MGT)501、構成可能論理ブロック(CLB)502、ランダム・アクセス・メモリ・ブロック(BRAM)503、入力/出力ブロック(IOB)504、構成及びクロッキング論理(CONFIG/CLOCKS)505、デジタル信号処理ブロック(DSP)506、特殊I/Oブロック507(例えば、構成ポート及びクロックポート)、並びにデジタル・クロック・マネージャ、アナログ-デジタルコンバータ、及びシステム監視論理などの他のプログラマブル論理508を含む、多数の異なるプログラマブルタイルを含み得る。
いくつかのICでは、各プログラマブルタイルは、各隣接タイル内の対応する相互接続素子(INT)511との標準化された接続を有するプログラマブルINT511を含む。したがって、INT511は、一緒になって、図示のICのプログラマブルな相互接続構造を実装する。各INT511はまた、図5の右側に含まれる例によって示されるように、同じタイル内のプログラマブル論理素子との接続を含む。
例えば、CLB502は、ユーザ論理に加えて単一のINT511を実装するようにプログラムされ得る構成可能論理素子(CLE)512を含み得る。BRAM503は、1つ以上のINT511に加えて、BRAM論理素子(BRL)513を含み得る。典型的には、タイル内に含まれるINT511の数は、タイルの高さに依存する。描かれているように、BRAMタイルは、5つのCLBと同じ高さを有するが、他の数(例えば、4つ)が使用されてもよい。DSPタイル506は、適切な数のINT511に加えて、DSP論理素子(DSPL)514を含み得る。IOB504は、例えば、INT511の1つのインスタンスに加えて、I/O論理素子(IOL)515の2つのインスタンスを含み得る。IOL515に接続される実際のI/Oパッドは、IOL515のエリアに制限されなくてもよい。
図5に描かれている例では、例えば領域505、507、及び508で形成されたダイの中心近くの水平エリアは、構成、クロック、及び他の制御論理に使用されてもよい。この水平エリアから延在する垂直エリア509は、プログラマブルICの幅全体にクロック及び構成信号を分配するために使用され得る。
図5に示すアーキテクチャを利用するいくつかのICは、ICの大部分を構成する規則的な柱状構造を破壊する追加の論理ブロックを含む。追加の論理ブロックは、プログラマブルブロック及び/又は専用回路であり得る。例えば、PROC510として示されているプロセッサブロックは、CLB及びBRAMのいくつかの列にまたがっている。
一態様では、PROC510は、ICのプログラマブル回路を実装するダイの一部として組み立てられた専用回路として、例えば、ハードワイヤードプロセッサとして実装され得る。PROC510は、個々のプロセッサ、例えば、プログラムコードを実行することができる単一のコアから、1つ以上のコア、モジュール、コプロセッサ、又はインターフェースなどを有するプロセッサシステム全体までの範囲の複雑さの、様々な異なるプロセッサタイプ及び/又はシステムのうちのいずれかを表し得る。
別の態様では、PROC510は、アーキテクチャ500から省略され、記載された他の種類のプログラマブルブロックのうちの1つ以上と置き換えられ得る。さらに、そのようなブロックは、プログラマブル回路の様々なブロックを使用して、PROC510の場合のようにプログラムコードを実行することができるプロセッサを形成することができるという点で、「ソフトプロセッサ」を形成するために利用され得る。
「プログラマブル回路」という語句は、IC内のプログラマブル回路素子、例えば、本明細書に記載の様々なプログラマブル又は構成可能な回路ブロック又はタイル、並びにIC内にロードされた構成データに従って様々な回路ブロック、タイル、及び/又は素子を選択的に結合する相互接続回路を指す。例えば、CLB502及びBRAM503などのPROC510の外部にある、図5に示す回路ブロックは、ICのプログラマブル回路とみなされる。
一般に、プログラマブル回路の機能性は、構成データがIC内にロードされるまで確立されない。構成ビットのセットは、FPGAなどのICのプログラマブル回路をプログラムするために使用され得る。構成ビットは、典型的には、「構成ビットストリーム」と呼ばれる。一般に、プログラマブル回路は、最初に構成ビットストリームをIC内にロードしなければ動作又は機能しない。構成ビットストリームは、プログラマブル回路内の特定の回路設計を効果的に実装する。回路設計は、例えば、プログラマブル回路ブロックの機能的態様、及び様々なプログラマブル回路ブロック間の物理的接続性を特定する。
「ハードワイヤード」又は「硬化した」、すなわちプログラム不可能な回路は、ICの一部として製造される。プログラマブル回路とは異なり、ハードワイヤード回路又は回路ブロックは、構成ビットストリームのロードによるICの製造後に実装されない。ハードワイヤード回路は、一般に、例えば、最初に構成ビットストリームをIC、例えばPROC510内にロードすることなく機能する専用の回路ブロック及び相互接続を有するとみなされる。
場合によっては、ハードワイヤード回路は、IC内の1つ以上のメモリ素子内に記憶されたレジスタ設定又は値に従って設定又は選択することができる1つ以上の動作モードを有し得る。動作モードは、例えば、構成ビットストリームをIC内にロードすることによって設定され得る。この能力にもかかわらず、ハードワイヤード回路は、動作可能であり、かつICの一部として製造されるときに特定の機能を有するため、ハードワイヤード回路はプログラマブル回路とはみなされない。
SoCの場合、構成ビットストリームは、プログラマブル回路内に実装されるべき回路及びPROC510又はソフトプロセッサによって実行されるべきプログラムコードを特定し得る。場合によっては、アーキテクチャ500は、構成ビットストリームを適切な構成メモリ及び/又はプロセッサメモリにロードする専用構成プロセッサを含む。専用構成プロセッサは、特定ユーザのプログラムコードを実行しない。他の場合には、アーキテクチャ500は、PROC510を利用して、構成ビットストリームを受信し、構成ビットストリームを適切な構成メモリ内にロードし、かつ/又は実行のためにプログラムコードを抽出し得る。
図5は、プログラマブル回路、例えば、プログラマブルファブリックを含むICを実装するために使用され得る例示的なアーキテクチャを示すことを意図している。例えば、列内の論理ブロックの数、列の相対幅、列の数及び順序、列に含まれる論理ブロックのタイプ、論理ブロックの相対サイズ、及び図5の右側に含まれる相互接続/論理実装態様は、純粋に例示的なものである。実際のICでは、例えば、ユーザ回路設計の効率的な実装を容易にするために、CLBが現れる場所には常に、CLBの2つ以上の隣接する列が典型的には含まれる。しかしながら、隣接するCLB列の数は、ICの全体サイズに応じて変化し得る。さらに、IC内のPROC510などのブロックのサイズ及び/又は位置決めは、例示のみを目的としており、限定として意図されていない。
図5は、プログラマブルIC132の例示的な実装態様として提供されており、本明細書に記載の本発明の構成の目的のためにアクセラレータカード上に実装され得るICのタイプを限定することを意図するものではない。他のタイプのプログラマブルICが使用されてもよい。場合によっては、プログラマブルIC132は、ホストコンピュータと通信するための、例えば、PCIeエンドポイントなどの硬化したバスエンドポイントを含み得る。他の場合には、バスエンドポイントは、プログラマブル回路で実装され得る。これに関して、セキュア回路設計は、ブートイメージのロードに応答して完全にプログラマブル論理で、又は部分的にプログラマブル論理で、及びブートイメージのロードに応答して部分的に1つ以上のハードワイヤード回路ブロックで実装され得る。場合によっては、プログラマブルICは、プログラマブルICの他のプロセッサ及び/又はサブシステム(例えば、プログラマブル論理)と協働して動作し得るプロセッサアレイを含み得る。
説明の目的で、本明細書に開示される様々な発明概念の完全な理解を提供するために、特定の命名法が記載される。しかしながら、本明細書で使用される術語は、本発明の構成の特定の態様を説明することのみを目的としており、限定することを意図するものではない。
本明細書で定義されるように、単数形「a」、「an」、及び「the」は、文脈が明らかにそうでないことを示さない限り、複数形も含むことが意図される。
本明細書で定義されるように、「少なくとも1つ」、「1つ以上の」、及び「及び/又は」という用語は、特に明記されていない限り、動作において接続的及び離接的の両方であるオープンエンド表現である。例えば、「A、B、及びCのうちの少なくとも1つ」、「A、B、又はCのうちの少なくとも1つ」、「A、B、及びCのうちの1つ以上」、「A、B、又はCのうちの1つ以上」、及び「A、B、及び/又はC」という表現の各々は、Aのみ、Bのみ、Cのみ、AとBとを一緒に、AとCとを一緒に、BとCとを一緒に、又はAとBとCとを一緒に意味する。
本明細書で定義されるように、「自動的に」という用語は、人間の介入なしを意味する。いくつかの文脈では、「ユーザ」という用語は人間を意味する。
本明細書で定義されるように、「コンピュータ可読記憶媒体」という用語は、命令実行システム、装置、又はデバイスによって、又はそれに関連して使用されるプログラムコードを含む又は記憶する記憶媒体を意味する。本明細書で定義されるように、「コンピュータ可読記憶媒体」は、一時的な伝播信号自体ではない。コンピュータ可読記憶媒体は、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又はこれらの任意の好適な組合せであり得るが、これらに限定されない。本明細書に記載の様々な形態のメモリは、コンピュータ可読記憶媒体の例である。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、ポータブル・コンピュータ・ディスケット、ハードディスク、RAM、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROM又はフラッシュメモリ)、電子的消去可能プログラマブル読み出し専用メモリ(EEPROM)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、又はフロッピーディスクなどが含まれ得る。
本明細書で定義されるように、「の場合」、「のとき」、又は「すると」という用語は、文脈に応じて「に応答して(in response to)」又は「に応答して(responsive to)」を意味する。本明細書で定義されるように、「に応答して(responsive to)」及び「に応答して(in response to)」という用語は、アクション又はイベントに直ちに応答又は反応することを意味する。応答又は反応は、自動的に行われる。したがって、第2のアクションが第1のアクション「に応答して」実行される場合、第1のアクションの発生と第2のアクションの発生との間に因果関係が存在する。「に応答して」という用語は、因果関係を示す。
本明細書で定義されるように、「プロセッサ」という用語は、プログラムコードに含まれる命令を実行することができる少なくとも1つの回路を意味する。回路は、集積回路であってもよいし、集積回路内に埋め込まれていてもよい。プロセッサは、ハードワイヤードであってもよいし、プログラマブル論理を使用して実装されていてもよい。
本明細書で定義されるように、「実質的に」という用語は、列挙された特性、パラメータ、又は値が正確に達成される必要はないが、例えば、公差、測定誤差、測定精度限界、及び当業者に知られている他の要因を含む偏差又は変動が、特性が提供しようとした効果を除外しない量で発生し得ることを意味する。
第1の、第2の、などの用語は、様々な要素を説明するために本明細書で使用され得る。これらの用語は、1つの要素を別の要素から区別するためにのみ使用されるため、これらの要素は、特に明記しない限り、又は文脈が明らかにそうでないことを示さない限り、これらの用語によって限定されるべきではない。
コンピュータプログラム製品は、プロセッサに本明細書に記載の本発明の構成の態様を実行させるためのコンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体を含み得る。本開示内で、「プログラムコード」という用語は、用語「コンピュータ可読プログラム命令」と互いに交換可能に使用される。本明細書に記載のコンピュータ可読プログラム命令は、ネットワーク、例えば、インターネット、LAN、WAN、及び/又は無線ネットワークを介して、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、又は外部コンピュータ若しくは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、及び/又はエッジサーバを含むエッジデバイスを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カード又はネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体内に記憶するためにコンピュータ可読プログラム命令を転送する。
本明細書に記載の本発明の構成のための動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、又はオブジェクト指向プログラミング言語及び/若しくは手続き型プログラミング言語を含む1つ以上のプログラミング言語のうちの任意の組合せによって記述されたソースコード若しくはオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、状態設定データを含み得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上で、部分的にリモートコンピュータ上で、又は完全にリモートコンピュータ若しくはサーバ上で実行し得る。後者のシナリオでは、リモートコンピュータは、LAN又はWANを含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、又は外部コンピュータへの接続(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)が行われてもよい。
本発明の構成の特定の態様は、方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して本明細書で説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図のブロックの組合せは、コンピュータ可読プログラム命令、例えば、プログラムコードによって実装され得ることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図のブロック若しくは複数のブロックで特定された機能/行動を実装するための手段を作成するように、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供されて、機械が作製される。これらのコンピュータ可読プログラム命令はまた、記憶された命令をその中に有するコンピュータ可読記憶媒体が、フローチャート及び/又はブロック図のブロック若しくは複数のブロックで特定された動作の態様を実装する命令を含む製品を備えるように、コンピュータ、プログラマブルデータ処理装置、及び/又は他のデバイスに特定の方法で機能するように指示することができるコンピュータ可読記憶媒体内に記憶され得る。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行される命令がフローチャート及び/又はブロック図のブロック若しくは複数のブロックで特定された機能/行動を実装するように、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイス上にロードされて、コンピュータ、他のプログラマブル装置、又は他のデバイス上で一連の動作を実行させてコンピュータ実装プロセスを生成し得る。
図のフローチャート及びブロック図は、本発明の構成の様々な態様によるシステム、方法、及びコンピュータプログラム製品の可能な実装態様のアーキテクチャ、機能性、及び動作を示している。これに関して、フローチャート又はブロック図の各ブロックは、特定された動作を実装するための1つ以上の実行可能命令を含むモジュール、セグメント、又は命令の一部分を表し得る。
いくつかの代替的な実装態様では、ブロックに記載された動作は、図に記載された順序とは異なる順序で発生してもよい。例えば、連続して示されている2つのブロックは、実質的に同時に実行されてもよく、又はブロックは、関連する機能性に応じて、時には逆の順序で実行されてもよい。他の例では、ブロックは、一般に、昇順で実行され得るが、さらに他の例では、1つ以上のブロックは、様々な順序で実行されて、結果が記憶され、後続のブロック又は直後には続かない他のブロックで利用され得る。また、ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図のブロックの組合せは、指定された機能又は行動を実行するか、又は専用ハードウェアとコンピュータ命令との組合せを実行する専用ハードウェアベースのシステムによって実装され得ることに留意されたい。
以下の特許請求の範囲に見出され得る全てのミーンズ・プラス・ファンクション又はステップ・プラス・ファンクションの要素の対応する構造、材料、動作、及び均等物は、具体的に特許請求されている他の特許請求されている要素と組み合わせて機能を実行するための任意の構造、材料、又は行動を含むことが意図されている。
アクセラレータカードは、読み出し専用メモリであって、読み出し専用メモリ内の指定されたフィールド内にセキュリティIDを記憶するように構成された、読み出し専用メモリと、リセットイベントに応答してセキュリティIDを読み出すように構成されたサテライトコントローラと、を含み得る。サテライトコントローラは、セキュリティ識別子に基づいて、複数のセキュリティモードからセキュリティモードを選択し、選択されたセキュリティモードをアクセラレータカード内に実装するように構成され得る。
前述及び他の実装態様は各々、単独で又は組み合わせて、以下の特徴のうちの1つ以上を任意選択的に含み得る。いくつかの例示的な実装態様は、全ての以下の特徴を組み合わせて含む。
一態様では、複数のセキュリティモードは、IBセキュリティモード及びOOBセキュリティモードを含む。
IBセキュリティモードは、アクセラレータカードと通信するホストコンピュータのホストプロセッサをアクセラレータカードのルート・オブ・トラストとして指定し得る。OOBセキュリティモードは、ホストコンピュータのBMCをアクセラレータカードのルート・オブ・トラストとして指定し得る。
別の態様では、アクセラレータカードは、プログラマブルICと、プログラマブルICのための構成メモリと、を含む。
IBセキュリティモードは、ブートイメージの受信のために、ホストプロセッサとプログラマブルICとの間のIB通信チャネルを有効化し得る。プログラマブルICは、ブートイメージを認証し、ブートイメージを構成メモリ内に記憶するように構成されている。
OOBセキュリティモードは、ブートイメージの受信のために、サテライトコントローラとBMCとの間のOOB通信チャネルを有効化し得る。サテライトコントローラは、ブートイメージを認証し、ブートイメージを構成メモリ内に記憶するように構成されている。
別の態様では、アクセラレータカードは、構成メモリと、プログラマブルICと、サテライトコントローラと、に結合されたスイッチを含む。スイッチは、選択されたセキュリティモードに基づいて、プログラマブルIC又はサテライトコントローラに構成メモリに対する書き込みアクセスを提供するようにサテライトコントローラによって構成されている。
例えば、IBセキュリティモードでは、スイッチは、プログラマブルICに構成メモリに対する読み出し及び書き込みアクセスを提供し、サテライトコントローラを構成メモリから切断するように構成される。OOBセキュリティモードでは、スイッチは、プログラマブルICに構成メモリに対する読み出し専用アクセスを提供し、サテライトコントローラに構成メモリに対する読み出し及び書き込みアクセスを提供するように構成される。
アクセラレータカードは、サテライトコントローラからの制御信号に応答してスイッチに選択信号を提供するように構成された制御回路を含み得る。
別の態様では、読み出し専用メモリは、セキュリティ識別子が予めロードされており、サテライトコントローラによってのみ読み出し可能である。
本明細書で提供された本発明の構成の説明は、例示を目的とするものであり、網羅的であること、又は開示された形態及び例に限定されることを意図するものではない。本明細書で使用された術語は、本発明の構成の原理、実際の用途、若しくは市場で見られる技術に対する技術的改善を説明するために、かつ/又は当業者が本明細書に開示された本発明の構成を理解することを可能にするために選択された。記載された本発明の構成の範囲及び趣旨から逸脱することなく、修正及び変形が当業者には明らかであり得る。したがって、そのような特徴及び実装態様の範囲を示すものとして、前述の開示ではなく、以下の特許請求の範囲を参照すべきである。
Claims (15)
- アクセラレータカードであって、
読み出し専用メモリであって、前記読み出し専用メモリ内の指定されたフィールド内にセキュリティ識別子を記憶するように構成された、読み出し専用メモリと、
リセットイベントに応答して前記セキュリティ識別子を読み出すように構成されたサテライトコントローラと、
を備え、
前記サテライトコントローラが、前記セキュリティ識別子に基づいて、複数のセキュリティモードからセキュリティモードを選択し、かつ選択された前記セキュリティモードを前記アクセラレータカード内に実装するように構成されている、アクセラレータカード。 - 前記複数のセキュリティモードが、
前記アクセラレータカードと通信するホストコンピュータのホストプロセッサを前記アクセラレータカードのルート・オブ・トラストとして指定する帯域内セキュリティモードと、
前記ホストコンピュータのベースボード管理コントローラを前記アクセラレータカードの前記ルート・オブ・トラストとして指定する帯域外セキュリティモードと、
を含む、請求項1に記載のアクセラレータカード。 - プログラマブル集積回路と、
前記プログラマブル集積回路のための構成メモリと、
をさらに備え、
前記帯域内セキュリティモードが、ブートイメージの受信のために前記ホストプロセッサと前記プログラマブル集積回路との間の帯域内通信チャネルを有効化し、
前記プログラマブル集積回路が、前記ブートイメージを認証し、かつ前記ブートイメージを前記構成メモリ内に記憶するように構成されている、
請求項2に記載のアクセラレータカード。 - プログラマブル集積回路と、
前記プログラマブル集積回路のための構成メモリと、
をさらに備え、
前記帯域外セキュリティモードが、ブートイメージを受信するために前記サテライトコントローラと前記ベースボード管理コントローラとの間の帯域外通信チャネルを有効化し、
前記サテライトコントローラが、前記ブートイメージを認証し、かつ前記ブートイメージを前記構成メモリ内に記憶するように構成されている、
請求項2に記載のアクセラレータカード。 - プログラマブル集積回路と、
前記プログラマブル集積回路のための構成メモリと、
前記構成メモリ、前記プログラマブル集積回路、及び前記サテライトコントローラに結合されたスイッチであって、前記スイッチが、選択された前記セキュリティモードに基づいて、前記プログラマブル集積回路又は前記サテライトコントローラに前記構成メモリに対する書き込みアクセスを提供するように前記サテライトコントローラによって構成される、スイッチと、
をさらに備える、請求項2に記載のアクセラレータカード。 - 前記帯域内セキュリティモードにおいて、前記スイッチが、前記プログラマブル集積回路に前記構成メモリに対する読み出し及び書き込みアクセスを提供し、かつ前記サテライトコントローラを前記構成メモリから切断するように構成されている、
請求項5に記載のアクセラレータカード。 - 前記帯域外セキュリティモードにおいて、前記スイッチが、前記プログラマブル集積回路に前記構成メモリに対する読み出し専用アクセスを提供し、かつ前記サテライトコントローラに前記構成メモリに対する読み出し及び書き込みアクセスを提供するように構成されている、
請求項5に記載のアクセラレータカード。 - 前記サテライトコントローラからの制御信号に応答して前記スイッチに選択信号を提供するように構成された制御回路
をさらに備える、請求項5に記載のアクセラレータカード。 - 前記読み出し専用メモリは、前記セキュリティ識別子が予めロードされており、前記サテライトコントローラによってのみ読み出し可能である、請求項1に記載のアクセラレータカード。
- アクセラレータカードに対するセキュリティモードを構成する方法であって、前記方法が、
前記アクセラレータカードのサテライトコントローラを使用して、リセットイベントに応答して前記アクセラレータカードの読み出し専用メモリの指定されたフィールドからセキュリティ識別子を読み出すことと、
前記セキュリティ識別子に基づいて、かつ前記サテライトコントローラを使用して、前記アクセラレータカードに対する複数のセキュリティモードからセキュリティモードを選択することと、
選択された前記セキュリティモードを前記アクセラレータカード内に実装することと、
を含む、方法。 - 前記アクセラレータカードが、プログラマブル集積回路と、前記プログラマブル集積回路のための構成メモリと、を含み、前記方法が、
帯域内セキュリティモードを実装することに応答して、前記アクセラレータカードと通信するホストコンピュータのホストプロセッサを前記アクセラレータカードのルート・オブ・トラストとして指定することと、
前記帯域内セキュリティモードを実装することに応答して、ブートイメージの受信のために前記ホストプロセッサと前記プログラマブル集積回路との間の帯域内通信チャネルを有効化することと、
をさらに含み、
前記プログラマブル集積回路が、前記ブートイメージを認証し、かつ前記ブートイメージを前記構成メモリ内に記憶するように構成されている、
請求項10に記載の方法。 - 前記アクセラレータカードが、プログラマブル集積回路と、前記プログラマブル集積回路のための構成メモリと、を含み、前記方法が、
帯域外セキュリティモードを実装することに応答して、ホストコンピュータのベースボード管理コントローラを前記アクセラレータカードのルート・オブ・トラストとして指定することと、
前記帯域外セキュリティモードを実装することに応答して、ブートイメージの受信のために前記サテライトコントローラと前記ベースボード管理コントローラとの間の帯域外通信チャネルを有効化することと、
をさらに含み、
前記サテライトコントローラが、前記ブートイメージを認証し、かつ前記ブートイメージを前記構成メモリ内に記憶するように構成されている、
請求項10に記載の方法。 - 前記アクセラレータカードが、
プログラマブル集積回路と、
前記プログラマブル集積回路のための構成メモリと、
前記構成メモリ、前記プログラマブル集積回路、及び前記サテライトコントローラに結合されたスイッチであって、前記スイッチが、選択された前記セキュリティモードに基づいて、前記プログラマブル集積回路又は前記サテライトコントローラに前記構成メモリに対する書き込みアクセスを提供するように前記サテライトコントローラによって構成される、スイッチと、
を含む、請求項10に記載の方法。 - 帯域内セキュリティモードを実装することに応答して、前記プログラマブル集積回路に前記構成メモリに対する読み出し及び書き込みアクセスを提供し、かつ前記サテライトコントローラを前記構成メモリから切断するように前記スイッチを構成すること
をさらに含む、請求項13に記載の方法。 - 帯域外セキュリティモードを実装することに応答して、前記プログラマブル集積回路に前記構成メモリに対する読み出し専用アクセスを提供し、かつ前記サテライトコントローラに前記構成メモリに対する読み出し及び書き込みアクセスを提供するように前記スイッチを構成すること
をさらに含む、請求項13に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/034,868 | 2020-09-28 | ||
US17/034,868 US11295000B1 (en) | 2020-09-28 | 2020-09-28 | Static configuration of accelerator card security modes |
PCT/US2021/050336 WO2022066475A1 (en) | 2020-09-28 | 2021-09-14 | Static configuration of accelerator card security modes |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023544001A true JP2023544001A (ja) | 2023-10-19 |
Family
ID=78086081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023519035A Pending JP2023544001A (ja) | 2020-09-28 | 2021-09-14 | アクセラレータカードのセキュリティモードの静的構成 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11295000B1 (ja) |
EP (1) | EP4172828B1 (ja) |
JP (1) | JP2023544001A (ja) |
KR (1) | KR20230078683A (ja) |
CN (1) | CN116235175A (ja) |
WO (1) | WO2022066475A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11861010B2 (en) * | 2022-02-14 | 2024-01-02 | Xilinx, Inc. | Extensible device hosted root of trust architecture for integrated circuits |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5689195A (en) | 1995-05-17 | 1997-11-18 | Altera Corporation | Programmable logic array integrated circuit devices |
US5986465A (en) | 1996-04-09 | 1999-11-16 | Altera Corporation | Programmable logic integrated circuit architecture incorporating a global shareable expander |
US6025737A (en) | 1996-11-27 | 2000-02-15 | Altera Corporation | Circuitry for a low internal voltage integrated circuit |
US20070288765A1 (en) | 1999-12-22 | 2007-12-13 | Kean Thomas A | Method and Apparatus for Secure Configuration of a Field Programmable Gate Array |
US7240218B2 (en) | 2000-02-08 | 2007-07-03 | Algotronix, Ltd. | Method of using a mask programmed key to securely configure a field programmable gate array |
US6493862B1 (en) | 2000-07-25 | 2002-12-10 | Xilinx Inc. | Method for compressing an FPGA bitsream |
US6526557B1 (en) | 2000-07-25 | 2003-02-25 | Xilinx, Inc. | Architecture and method for partially reconfiguring an FPGA |
US6957340B1 (en) | 2000-11-28 | 2005-10-18 | Xilinx, Inc. | Encryption key for multi-key encryption in programmable logic device |
US7058177B1 (en) | 2000-11-28 | 2006-06-06 | Xilinx, Inc. | Partially encrypted bitstream method |
US7117373B1 (en) | 2000-11-28 | 2006-10-03 | Xilinx, Inc. | Bitstream for configuring a PLD with encrypted design data |
US8650409B1 (en) | 2004-09-15 | 2014-02-11 | Altera Corporation | FPGA configuration data scrambling using input multiplexers |
GB0114317D0 (en) | 2001-06-13 | 2001-08-01 | Kean Thomas A | Method of protecting intellectual property cores on field programmable gate array |
US7424658B1 (en) | 2002-07-01 | 2008-09-09 | Altera Corporation | Method and apparatus for testing integrated circuits |
US8503437B2 (en) | 2003-03-13 | 2013-08-06 | Verizon Business Global Llc | Integrated customer premises equipment device |
US8484671B1 (en) * | 2003-10-07 | 2013-07-09 | The Directv Group, Inc. | Receiver interface with multiple access cards |
US7143384B1 (en) | 2003-11-18 | 2006-11-28 | Xilinx, Inc. | Methods of routing programmable logic devices to minimize programming time |
US7606362B1 (en) | 2005-01-25 | 2009-10-20 | Altera Corporation | FPGA configuration bitstream encryption using modified key |
US7725738B1 (en) | 2005-01-25 | 2010-05-25 | Altera Corporation | FPGA configuration bitstream protection using multiple keys |
US7788502B1 (en) | 2005-03-10 | 2010-08-31 | Xilinx, Inc. | Method and system for secure exchange of IP cores |
US7747025B1 (en) | 2005-11-22 | 2010-06-29 | Xilinx, Inc. | Method and apparatus for maintaining privacy of data decryption keys in configuration bitstream decryption |
WO2008014493A2 (en) | 2006-07-28 | 2008-01-31 | Drc Computer Corporation | Configurable processor module accelerator using a progrmmable logic device |
US7385532B1 (en) | 2007-02-16 | 2008-06-10 | Xilinx, Inc. | Extended bitstream and generation thereof for dynamically configuring a decoder |
US9256728B2 (en) * | 2008-11-26 | 2016-02-09 | Nokia Technologies Oy | Method, apparatus, and computer program product for managing software versions |
US8022724B1 (en) | 2009-11-25 | 2011-09-20 | Xilinx, Inc. | Method and integrated circuit for secure reconfiguration of programmable logic |
US8576641B1 (en) | 2010-02-26 | 2013-11-05 | Xilinx, Inc. | Method of and circuit for providing non-volatile memory in an integrated circuit |
US8539254B1 (en) | 2010-06-01 | 2013-09-17 | Xilinx, Inc. | Method and integrated circuit for protecting against differential power analysis attacks |
US8966253B1 (en) | 2010-06-01 | 2015-02-24 | Xilinx, Inc. | Method and apparatus for authenticating a programmable device bitstream |
US8438436B1 (en) | 2010-06-04 | 2013-05-07 | Xilinx, Inc. | Secure design-for-test scan chains |
US8479017B2 (en) | 2010-06-21 | 2013-07-02 | Intel Corporation | System and method for N-ary locality in a security co-processor |
KR101303278B1 (ko) | 2011-12-14 | 2013-09-04 | 한국전자통신연구원 | 비트스트림 보호를 위한 fpga 장치 및 그 방법 |
US8983073B1 (en) | 2012-02-10 | 2015-03-17 | Xilinx, Inc. | Method and apparatus for restricting the use of integrated circuits |
US9218505B1 (en) | 2013-01-31 | 2015-12-22 | Xilinx, Inc. | Programmable integrated circuit with DPA-resistant decryption |
JP2017519457A (ja) | 2014-06-27 | 2017-07-13 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 共有鍵を決定するためのデバイス |
US10044514B1 (en) | 2015-09-25 | 2018-08-07 | Xilinx, Inc. | Secure external key storage for programmable ICS |
US9722613B1 (en) | 2015-09-28 | 2017-08-01 | Xilinx, Inc. | Circuit arrangement for and a method of enabling a partial reconfiguration of a circuit implemented in an integrated circuit device |
US10031760B1 (en) | 2016-05-20 | 2018-07-24 | Xilinx, Inc. | Boot and configuration management for accelerators |
US10528765B2 (en) | 2016-09-16 | 2020-01-07 | Intel Corporation | Technologies for secure boot provisioning and management of field-programmable gate array images |
US10740146B2 (en) | 2017-02-10 | 2020-08-11 | Xilinx, Inc. | Migrating virtual machines between compute systems by transmitting programmable logic accelerator state |
US10489609B1 (en) | 2017-06-06 | 2019-11-26 | Xilinx, Inc. | Restricting programmable integrated circuits to specific applications |
US10997092B2 (en) | 2017-08-10 | 2021-05-04 | Seagate Technology Llc | Enabling out-of-band hardware management via an in-band communications channel |
US10305511B1 (en) | 2018-05-25 | 2019-05-28 | Xilinx, Inc. | Run length compression and decompression using an alternative value for single occurrences of a run value |
US11126757B2 (en) | 2018-10-19 | 2021-09-21 | Microsoft Technology Licensing, Llc | Peripheral device |
US11038678B2 (en) | 2018-11-09 | 2021-06-15 | Microsoft Technology Licensing, Llc | Trusted key diversity on cloud edge devices |
US10924430B2 (en) * | 2018-11-09 | 2021-02-16 | Xilinx, Inc. | Streaming platform flow and architecture for an integrated circuit |
US10990547B2 (en) | 2019-08-11 | 2021-04-27 | Xilinx, Inc. | Dynamically reconfigurable networking using a programmable integrated circuit |
-
2020
- 2020-09-28 US US17/034,868 patent/US11295000B1/en active Active
-
2021
- 2021-09-14 CN CN202180066481.4A patent/CN116235175A/zh active Pending
- 2021-09-14 EP EP21789946.7A patent/EP4172828B1/en active Active
- 2021-09-14 WO PCT/US2021/050336 patent/WO2022066475A1/en unknown
- 2021-09-14 KR KR1020237010834A patent/KR20230078683A/ko unknown
- 2021-09-14 JP JP2023519035A patent/JP2023544001A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220100840A1 (en) | 2022-03-31 |
CN116235175A (zh) | 2023-06-06 |
US11295000B1 (en) | 2022-04-05 |
EP4172828A1 (en) | 2023-05-03 |
KR20230078683A (ko) | 2023-06-02 |
EP4172828B1 (en) | 2024-03-27 |
WO2022066475A1 (en) | 2022-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110073355B (zh) | 用于提供安全执行环境的服务器和用于保护服务器上的非易失性存储器中的固件的方法 | |
US10778521B2 (en) | Reconfiguring a server including a reconfigurable adapter device | |
US10031993B1 (en) | Application store model for dynamic reconfiguration of a field-programmable gate array (FPGA) | |
CN109154849B (zh) | 包括核心层、用户接口和配备有基于容器的用户空间的服务层的超融合*** | |
US10860305B1 (en) | Secure firmware deployment | |
CN107025406B (zh) | 母板、计算机可读存储装置以及固件验证方法 | |
KR101453266B1 (ko) | 서비스 프로세서 컴플렉스 내의 데이터 저장을 위한 요구 기반 usb 프록시 | |
US8671405B2 (en) | Virtual machine crash file generation techniques | |
US11194588B2 (en) | Information handling systems and method to provide secure shared memory access at OS runtime | |
KR102607127B1 (ko) | 클라우드 컴퓨팅에 사용 가능한 신뢰 상태로의 베어 메탈 리소스의 클리어런스 | |
TWI537748B (zh) | 用於網路基本輸入輸出系統管理之設備、方法與非暫態電腦可讀取媒體 | |
US20130325998A1 (en) | System and Method for Providing Input/Output Functionality by an I/O Complex Switch | |
US20150081829A1 (en) | Out-of-band replicating bios setting data across computers | |
US11188407B1 (en) | Obtaining computer crash analysis data | |
CN105814541A (zh) | 计算机设备及计算机设备内存启动的方法 | |
US9886408B2 (en) | Data access protection for computer systems | |
US7536604B2 (en) | Method and system for reconfiguring functional capabilities in a data processing system with dormant resources | |
US11321077B1 (en) | Live updating of firmware behavior | |
US9047112B2 (en) | Installation of virtual service processor to computer system having existing operating system | |
CN115981776A (zh) | 位于服务器网络接口卡处的基板管理控制器 | |
JP2023544001A (ja) | アクセラレータカードのセキュリティモードの静的構成 | |
US11416446B2 (en) | Systems and methods for remote management of non-standard devices | |
US11625338B1 (en) | Extending supervisory services into trusted cloud operator domains | |
JP2016197360A (ja) | 情報処理装置、情報処理装置の制御プログラム及び情報処理装置の制御方法 | |
US11966750B2 (en) | System-on-chip management controller |