JP4762494B2 - セキュア実行モードを実行可能なcpuおよび高信頼(セキュア)通信路を介して接続されたセキュリティサービスプロセッサを含むコンピュータシステム - Google Patents

セキュア実行モードを実行可能なcpuおよび高信頼(セキュア)通信路を介して接続されたセキュリティサービスプロセッサを含むコンピュータシステム Download PDF

Info

Publication number
JP4762494B2
JP4762494B2 JP2003586729A JP2003586729A JP4762494B2 JP 4762494 B2 JP4762494 B2 JP 4762494B2 JP 2003586729 A JP2003586729 A JP 2003586729A JP 2003586729 A JP2003586729 A JP 2003586729A JP 4762494 B2 JP4762494 B2 JP 4762494B2
Authority
JP
Japan
Prior art keywords
transaction
processor
security
bus
secure
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.)
Expired - Fee Related
Application number
JP2003586729A
Other languages
English (en)
Other versions
JP2005528677A (ja
Inventor
ジェイ. マグラース ケビン
エス. ストロンジン ジェフリー
イー. ガリック デイル
エー. ヒューズ ウィリアム
エス. クリスティー デイビッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2005528677A publication Critical patent/JP2005528677A/ja
Application granted granted Critical
Publication of JP4762494B2 publication Critical patent/JP4762494B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/74Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Description

本発明はコンピュータシステムに関し、さらに詳細には許可されていないアクセスからコンピュータシステムメモリ内に記憶されているデータを保護するためのトラステッド(trusted)実行モードを採用するコンピュータシステムに関する。
現代的なコンピュータシステムは人々の暮らしに革新をもたらしている。特に、x86システムアーキテクチャを採用するマイクロプロセッサを含む、システムプラットホームにおいて特にそれが当てはまる。ユーザによって取り付け可能なサードパーティー製の無数の周辺装置およびアプリケーションに対してx86ベースシステムが開放されていることによって、ハードウェアおよびソフトウェアベンダーの大きな市場が実現され、それは競争、革新、そして進化を育んできた。品質および性能が向上し続ける、デジタルコミュニケーションおよびメディアシステムとして当該プラットホームが幅広く受け入れられていることが、そのような進化の証左である。インターネットと協力して、これらのシステムプラットホームはデジタルコンテンツの大量流通に明確な革新をもたらしており、新聞、リアルタイムの天気予報、世界中のラジオ局、オンラインバンキングおよびショッピング、オーディオおよびビデオエンターテインメントへのオンデマンドのアクセスを可能にしている。
x86プラットホームはオープンアーキテクチャなので、通常デバイスはそのデバイスにアクセスするためにカーネルモードで動作するベンダーから供給されるドライバを有し、ある種のソフトウェアアプリケーションはカーネルモードコンポーネントを含んでいる。従って、オープンアーキテクチャは数々の特長を有しており、あるアプリケーションが他のアプリケーションと偶発的に干渉することに対してすでに大規模な保護(プロテクション)を提供してはいるものの、現在のアーキテクチャとしての保護機構は、この環境において望ましくない不正操作にさらされる可能性がある。
x86アーキテクチャを採用するマイクロプロセッサを含むコンピュータシステムは、互いに干渉する複数のアプリケーションに対する保護のために設計された機能を有する。例えば、x86ベースのオペレーティングシステムは、複数のアプリケーションが互いに分離され、クリティカルなオペレーティングシステムコードおよびデータがアプリケーションから分離される環境を提供するための、x86プロテクトモードアーキテクチャの2つの機能、1)ページ化された仮想メモリ、および2)実行特権(privilege)レベルに依存している。
ページ化された仮想メモリは、オペレーティングシステム(OS)が各アプリケーションに対して分離した仮想アドレス空間を定義して、アドレス変換テーブルのセットを介して物理メモリの個別ページをそれらの仮想アドレス空間のそれぞれに選択的にマッピングすることを可能にしている。これにより、各アプリケーションに対して、他のアプリケーションからはアクセス不可能な、そのコードおよびデータのための物理メモリの私的なセクションを提供する。さらに、この仮想メモリ機構により、OSが物理メモリのページを複数の仮想アドレス空間に選択的にマッピングすること、そして仮想空間内のそのようなページを読み出し専用(リードオンリー)に選択的に指定することを可能になる。この共有マッピング機能はOSカーネルそれ自身のコピーが各アプリケーションアドレス空間に常駐することを可能にし、同様に周辺装置のアクセスポートおよび関連するデバイスドライバルーチンの共有マッピングを可能にする。それによって、ロスの多いアドレス空間の切り替えを必要とせずに、アプリケーションにOSのサービスへの効率的なアクセスを提供する。しかしながら、アドレス空間のOS部分はOSのコードによる変更が可能でなければならないシステムデータ領域を含んでいなければならず、さらにそれはアプリケーションのコードから保護されていなければならない。読み出し専用指定はそのような領域に対して適切な保護を提供することはできない。
さらに、x86アーキテクチャは4つの特権レベル、0から3を定義し、それらはOSによってコード領域に割り当てられ、コードセグメントディスクリプタ内に保存される。一般的に、現在実行しているコードやプロシージャの特権レベルは現行特権レベル(CPL)として記憶される。従って、この特権レベルは通常CPL0からCPL3と呼ばれる。この特権レベルを用いることにより、ある種のシステム資源は適切なレベルで実行されているコードからのみアクセス可能となる。このページ化された仮想メモリアーキテクチャは、仮想メモリのページへのアクセスを特権レベルによって制限できるようにする。4つの特権レベルが定義されているものの、主流となっているオペレーティングシステムにおいては、通常CPL0とCPL3レベルのみが使用されている。その理由は、このページ化された仮想メモリアーキテクチャはCPL1またはCPL2をCPL0と区別しないからである。CPL0は一般的にカーネルモードと呼ばれ、最も高い特権レベルである。一方、CPL3は一般的にユーザモードと呼ばれ、最も低い特権レベルである。OSのコードおよびデータには通常CPL0が割り当てられ、アプリケーションコードおよびデータにはCPL3が割り当てられる。CPL0実行特権は読み出し専用保護をオーバーライド(優先)しない。これら2つの属性は互いに独立している。コードセグメントディスクリプタを用いて、これらの特権を割り当てている。
このメモリ保護に加えて、仮想メモリ動作を制御するものを含む、すべてのプロセッサコントロールレジスタはアーキテクチャ上の定義ではCPL0においてのみアクセス可能である。さらに、一般に、あるセグメントから他のセグメントへ実行を切り替えるためには特別の制御転送命令が必要とされ、それによって特権レベルも切り替えられる。これらの命令はOSが、そのような制御転送の相手(ターゲット)をOSによって制御されるコード中の特別のエントリポイントに限定することを可能にし、そのためアプリケーションは、同時にOSに制御を渡すことなしに特権レベルを変更することはできない。
相互のアドレス空間の分離、およしOSメモリのアプリケーションからの分離は、仮想メモリアドレス変換(トランスレーション)テーブルの内容によって完全に制御可能である。この変換テーブルはあるアプリケーションメモリを他のものから分離する仮想対物理ページマッピングを定義し、さらに共有ライブラリおよびOSを保護する読み出し専用および特権レベル属性を定義する。このテーブルそれ自身はメモリ常駐のデータ構造であって、それらを共有OSメモリ領域にマッピングし、それらに対するアクセスをカーネルモードコードに制限する変換エントリを含む。
上記既存の保護機構はアプリケーションおよびオペレーティングシステムに適切な保護を提供しているように見える。うまく動作しているシステム(例えば、これらの機構の応用をオペレーティングシステムによって修正する、そしてこれらの機構を制御するOSコードの動作を修正する、さらにカーネルモードで動作する他のすべてのコードがこれと干渉しない)においてはそのとおりである。しかしながら、典型的なx86ベースのシステムにおいては、OSベンダーからのみならず、多くの独立したソースから提供された非常に多くのカーネルモードコードが存在し、それが偶発的なものにしろ、そうでないにしろ、そのような干渉が発生しないことを保証できる者は誰もいない。
ユーザが実行している操作タイプおよび実行されているソフトウェアアプリケーションのタイプに応じて、コンピュータシステム内に記憶されている情報または実行されている情報は外部からのアクセスに対して脆弱になりうる。従って、セキュリティ問題を改善し、x86アーキテクチャシステムのそのようなアクセスに対する脆弱性をできる限り小さくすることが望ましい。
発明の概要
セキュア実行モードを実行可能なプロセッサおよびセキュア通信リンクを介して接続されるセキュリティサービスプロセッサを含むコンピュータシステムの様々な実施形態を開示する。一実施形態では、当該コンピュータシステムは、セキュリティ初期化命令(security initialization instruction)を実行することによってセキュア実行モードを初期化するように構成可能なプロセッサを含む。さらに、このプロセッサはセキュア・オペレーティングシステム・コードセグメントを実行することによってセキュア実行モードで動作可能である。さらに、このコンピュータシステムはI/Oリンクを介してプロセッサに結合された入力/出力(I/O)インターフェイスを含む。このI/Oインターフェイスは、セキュリティ初期化命令実行の結果実行されるトランザクションを受信するように構成することができる。このトランザクションはセキュアオペレーティングシステム・コードセグメントの少なくとも一部を含む。さらにこのI/Oインターフェイスはプロセッサがトランザクションのソースかどうかを判定することができる。このコンピュータシステムは、ペリフェラルバスを介してI/Oインターフェイスに結合されたセキュリティサービスプロセッサをさらに含む。このI/Oインターフェイスは、プロセッサがトランザクションのソースであるかどうかの判定に応じて、そのトランザクションをセキュリティサービスプロセッサに伝達するように構成することができる。
特定の一実施態様において、このI/Oインターフェイスはそのプロセッサがトランザクションの唯一のソースではないと判定されると、そのトランザクションのセキュリティサービスプロセッサへの伝達を阻止(ブロック)するように構成される。
他の特定の実施態様において、セキュリティ初期化命令実行の結果として実行されるトランザクションは、スタート(Start)トランザクション、対応するデータ(Data)トランザクションおよび対応するエンド(End)トランザクションである。
さらに他の特定の実施態様においては、スタートトランザクション、データトランザクションおよびエンドトランザクションは、HyperTransport(商標)規格に従ってフォーマットされたパケットである。
本発明は様々な変形および代替の形態をとりうるが、その特定の実施形態を例示のために図面に示し、本明細書において詳細に説明する。しかしながら、特定の実施形態についての本明細書中の説明は、開示された特定の形態に本発明を限定しようとするものではなく、むしろ反対に、添付の特許請求の範囲に規定される本発明の精神および範囲の範疇に入る、すべての変形物、均等物および代替物を含むことを意図している、ことを理解してもらいたい。
<セキュアコンピューティングプラットフォームの概要>
高信頼(Trusted)コンピューティングは、コンピュータシステム(例えば、パーソナルコンピュータ(PC))ユーザに対して、彼らのプライバシーに対する攻撃から保護されながら、電子マネーや映画をダウンロードできるといった新しい活動への参加を可能にしている。高信頼コンピューティング環境の一部となるためにはPCそれ自体がユーザおよび銀行、コンテンツ提供者といった外部組織の両方から信頼されなければならない。高信頼PCを作るのに必要な主要要素には、信頼性の高い実行環境(trusted processing environment)、プラットフォーム依存の秘密化、暗号化処理、セキュアな記憶装置およびセキュリティカーネル(SK)と呼ばれるセキュア・オペレーティングシステム・コードセグメントが含まれる。これらの要素を具体化する構成ブロックについて以下で詳述する。
x86命令を実行するように構成されたプロセッサは一般的に、ページ化された仮想メモリおよび特権実行モードを提供する保護モードなどのアーキテクチャ上の機能と、それらの機能を制御する制御レジスタセットを含んでいる。これらの制御レジスタおよびページテーブルへのアクセスを制御することによって、コンピュータシステム内のプログラムコードおよびデータに対する許可されていないアクセスに対する保護を追加することができる。従って、そのようなプロセッサに対するアーキテクチャ拡張セットを追加し、それに対応するサポートソフトウェアを提供することによって、この保護を提供可能である。プロセッサに対する全体的なセキュリティ強化は、セキュア実行モード(SEM,Secure Execution Mode)と呼ばれる。セキュア実行モード(SEM)はプロセッサに新たに加えられた実行モードであり、外部からの不正操作を受けることなく、セキュリティカーネルが動作する高信頼実行環境を生成するものである。
従って、SEMで動作可能なプロセッサは、SEMによって使用可能にされ、例えば動作時の高信頼実行(TX)モードなどのSEM動作モードをサポートする。以下でさらに説明するように、この高信頼実行モードは、実行されているソフトウェアの種類およびその特権レベルに応じて、ノーマルユーザモードおよびノーマルカーネルモードに加えて、セキュアユーザモードおよびセキュアカーネルモードで動作するSEM実行可能なプロセッサを有する。ハードウェアによるメモリアクセス(例えば、ダイレクトメモリアクセス、DMA)とともに、この環境内で実行されるソフトウェアからのみアクセス可能な保護メモリ領域を作るための機構も提供される。
この新しい高信頼実行環境(TX)は、ユーザ環境とカーネル環境とを分離するために使用される従来のノーマル/保護モード(Ring0/Ring3)機構にいくらか似ている。図1の説明に関連して以下でさらに詳細に説明するように、高信頼/非高信頼モードと、ユーザ/カーネルモードとの組み合わせは四象限モデルを生成する。従って、SEM実行可能なCPUは、上記TXモードを生成し、実行するハードウェア機構を含む。
図1は、セキュア実行モードを実行可能なプロセッサの一実施形態の動作ドメインおよびそれらのドメインで動作するコードの振る舞いを示す。上述のとおり、現行のx86ベースのオペレーティングシステムは一般的に利用可能な4つの特権レベルのうちの2つ(例えば、CPL0およびCPL3)を用いて2つのモード、ノーマルカーネルモードおよびノーマルユーザモードをノーマル実行モードまたは保護ドメイン内に実装する。SEMを使用可能にしたとき、SEM拡張は高信頼実行(TX)モードと呼ばれる新しい実行モードを定義する。既存のノーマル実行モード保護ドメインと組み合わされたとき、TXモードは4つの個別のモードまたは以下に説明するソフトウェア実行ドメインを生成する。例示の実施形態では、これら4つのドメインはノーマルユーザ(NU)ドメイン1010、ノーマルカーネル(NK)ドメイン1020、セキュアユーザ(SU)ドメイン1030およびセキュアカーネル(SK)ドメイン1040からなる。
上記NU1010ドメインは、ノーマルユーザモード(つまり、CPL=3)で動作し、高信頼実行(TX)モードに入っていないプロセッサによって特徴付けられる。NU1010ドメインにおいては、一般的な仮想メモリ設定により、修正されていないアプリケーションの通常動作を許可する。SEMにおいては、しかしながら、そのようなアプリケーションは、SUドメイン1030に常駐するアプリケーションのメモリ、またはSKドメイン1040内のセキュリティカーネル1021を含むメモリにアクセスすることができない。さらに、そのようなアプリケーションは、例えばU/SおよびR/Wページ属性(図示せず)などの既存の保護ロジック機構によって、OSカーネル1023のメモリまたはノーマルカーネルドメイン1020内のデバイスドライバへのアクセスが禁止される。
NKドメイン1020では、SEMによって、修正されていないOSカーネル1023のコンポーネントおよびカーネルモードデバイスドライバの通常の動作が許可される。このドメインで実行されているコードはNUドメイン1010内のオブジェクトにアクセスすることができるが、SEMにおいてはSUドメイン1030またはSKドメイン1040内のオブジェクトへのアクセスは禁止される。さらに、NKドメイン1020は、プロセッサがTXモードではなく、ノーマルカーネルモード(つまり、CPL=0)で動作するという特徴がある。NKドメイン1020においてページングが使用可能になっているとき、しばしばプロセッサはネイティブカーネルモードにおいて動作していると言われる。
SUドメイン1040では、SEMは、ハイセキュリティアプリケーション(HSA)1のような新しいタイプのアプリケーションソフトウェアに対して、例えばその実行を許可する。HSAソフトウェアは、既存のx86ページ保護およびページマッピング機構によってその他すべてのドメイン中のオブジェクトへのアクセスを禁止されうる。さらに、HSAは、オペレーティングシステムカーネル1023およびデバイスドライバ(図2には図示せず)を含む、NUドメイン1010およびNKドメイン1020において実行される任意のコードからの許可されないアクセスから保護される。以下でさらに詳しく説明するように、セキュリティカーネル1021はHSAの仮想アドレス空間を設定し、維持する責任を持つ。さらに、SUドメイン1040はユーザーモード(つまり、CPL=3)のみならずTXモード(セキュアユーザーモードとも呼ばれる)で動作するプロセッサに特徴がある。
SKドメイン1040では、SEMはセキュリティカーネル1021に対してすべてのプラットホームのリソースに対する完全なアクセスを許可することができ、さらにセキュリティカーネル1021に対してそれらのリソースの独占的な制御を与えることもできる。SKドメイン1040はカーネルモード(つまり、CPL=0)およびTXモード(セキュアカーネルモードとも呼ばれる)で動作するプロセッサに特徴がある。
一般的に、セキュリティカーネル1021は高信頼実行(TX)モードで動作するソフトウェアである。一実施形態では、セキュリティカーネル1021はSKドメイン1040で動作する唯一のソフトウェアである。SKドメイン1040では、セキュリティカーネル1021がすべての仮想対物理メモリマッピングを制御することができ、外部装置が物理メモリのどの領域にアクセスできるようにするかを制御することができる。しかしながら、セキュリティカーネル1021は、ノーマルモード仮想メモリマッピング、HSAメモリ初期マッピング、HSAコードおよびデータセクションのロードを含む、OSカーネルのプロセス生成機能に依存している。しかしながら、セキュリティカーネル1021はそのようなマッピングのすべてを監視して、高信頼でない仮想空間に高信頼のメモリが許可なくマッピングされることがないことを保証することができる。従って、セキュリティカーネル1021は、高信頼ではないすべてのメモリ領域を非高信頼として取り扱うことができる。さらに、セキュリティカーネル1021は、セキュリティカーネル1021によって制御されていない動作中のすべてのプログラムコードを非高信頼として取り扱ってもよい。一実施形態において、セキュリティカーネル1021はスタンドアローンのコードセグメントとすることができ、既存のOSに対するパッチであってもよいことに注意してもらいたい。他の実施形態では、セキュリティカーネル1021は与えられたOSの一部のなかのモジュールまたはコードセグメントとすることができる。
SEMの主な機能には、SEMで動作するプロセッサを初期化し、SKの信憑性を検証し、外部アタックから高信頼環境を保護することにより、高信頼環境にシステムを維持することが含まれる。CPU、マイクロプロセッサおよびプロセッサという用語は相互に交換可能に使用できることを注意すべきである。
<セキュア実行モード初期化>
高信頼PCを作成する中枢は独特の、プラットホーム依存の秘密事項である。実際には、この秘密事項は、公開/秘密暗号鍵ペアの秘密鍵であってもよい。この秘密事項はPCが高信頼環境内で動作しているときにのみ使用されなければならず、誰に対しても、つまりどのコードにも開示してはならない。この秘密事項を用いた暗号化動作の結果は開示することができるが、秘密事項それ自体は開示することはできない。これを機能させるために、それを使用する秘密事項および暗号処理装置は入力および出力が制限された密閉箱に配置しなければならない。実用では、密閉箱とはプロセッサ機能と不揮発性の記憶装置とを組み合わせた単一の集積回路(IC)パッケージを意味する。この装置はセキュリティサービスプロセッサ(SSP)と呼ばれる。一実施形態では、少なくとも1つのSSPが必要とされ、プラットホーム初期化プロセスには確実に1つのSSPが寄与する。
アーキテクチャ上は、SSPはプラットホームのどこに配置してもよい。唯一の条件は、スプーフィング不可能(non-spoofable)な高信頼通信路が、SEM実行可能プロセッサとSSPとの間に存在しなければならないことである。ここで、SEM実行可能プロセッサとSSPとの間のスプーフィング不可能(non-spoofable)な通信路とは、SSPが高信頼環境外で実行されるソフトウェアから、またはDMAハードウェアから命令を受信することがない高信頼通信路をいう。このことは特に高信頼環境が初期化されるときに特に複雑になりうる。ここで、SSPがSKの有効性を検証しなければならず、有効化されたSKがその時SEM実行可能なプロセッサ上で実際に動作するコードであることを保証しなければならない。この有効化処理は、SKイメージの暗号化されたハッシュ(hash)の形態をとる。このハッシュは、通常のソフトウェアの実行からは生じることがない形態でSSPに伝達しなければならない。さらに、このSEM実行可能なプロセッサはクリーンな初期状態(そしてSSPがこれを知っていなければならない)からSKの実行を開始しなければならない。これらの要件は通常のソフトウェアには利用不可能なCPUマイクロコードおよびハードウェア機構を使用することによって達成される。特に、セキュリティカーネル初期化(SKINIT:Security Kernel Initialization)命令と呼ばれる新しいセキュリティ初期化命令が、SEM実行可能なプロセッサの初期化、MPシステム内の他のプロセッサが停止していることの検証、予約済みのシステムアドレスを用いてSSPとの通信、SKコードへのジャンプ、のために使用される。一実施形態では、このSKINIT命令は個別に実行される複数のコンポーネント(部品)を持つ単一の命令であることに注意されたい。さらにある実施形態では、この初期化プロセスは2つのステップ、SSPによるサイズの小さいセキュア・ローダー(SL)の有効化ステップ、それに続くより大きなサイズのSKの有効化ステップを含む、ことに注意してもらいたい。
<高信頼性コンピューティングプラットホームを採用したコンピュータシステム>
図2は、高信頼性コンピューティングプラットホームを採用したコンピュータシステムの一実施形態のブロック図である。コンピュータシステム10は、SEMプロセッサ100AおよびSEMプロセッサ100Bと呼ばれるSEMを実行可能な2つのプロセッサを含む。SEMプロセッサ100Aはプロセッサバス105を介してSEMプロセッサ100Bに結合される。さらにコンピュータシステム10は、SEMプロセッサ100AおよびSEMプロセッサ100Bに結合されたシステムメモリ110Bに結合されるシステムメモリ110Aを含む。SEMプロセッサ100Aはシステムバス125を介してI/Oインターフェイス120に結合される。I/Oインターフェイス120はペリフェラルバス145を介して記憶装置140および周辺装置150に結合される。さらにI/Oインターフェイス120はペリフェラルバス135を介してSSP130に結合される。別の実施形態では、ペリフェラルバス135の代わりに、点線で示すようにSSP130をペリフェラルバス145に結合してもよい。ここで2つのSEMプロセッサを示しているものの、他の実施形態では異なる数のSEMプロセッサを用いてもよいことに注意すべきである。さらに、同一の参照番号と一つの参照符号で示す要素は、単にその参照符号だけで参照することもあることに注意してもらいたい。例えば、SEMプロセッサ100Aを、場合によっては、単にSEMプロセッサ100と呼ぶこともある。
例示の実施形態では、SEMプロセッサ100AおよびSEMプロセッサ100Bはそれぞれシステムメモリ110Aおよび110Bに接続するための統合メモリコントローラ(図示せず)を有する。別の実施形態においては、I/Oインターフェイス120は一以上のメモリコントローラおよび一つのホストブリッジを含んでもよい。そのような実施形態では、システムメモリ110はI/Oインターフェイス120に接続される。
SEMプロセッサ100はx86アーキテクチャを採用したプロセッサの一例である。例えば、一実施形態として、SEMプロセッサ100はアドバンスド・マイクロ・ディバイシズ社から提供されるAthlon(商標)プロセッサであってもよい。それとして、SEMプロセッサ100は、システムメモリ110または記憶装置140に記憶されるx86命令を実行するように構成される。この例としての実施形態では、SEMプロセッサ100はセキュリティハードウェア(図示せず)を含み、SEMによって使用可能にされたときに、それは例えば図1の説明との関連において説明した高信頼実行(TX)モードのようなSEM動作モードに対するサポートを提供する。
システムメモリ110はSEMプロセッサ100によって頻繁に使用されるプログラム命令およびデータを記憶するように構成される。典型的なシステム構成では、記憶装置140はそのようなプログラム命令やデータをより永続的に記憶するために用いることができ、SEMプロセッサ100がデータおよびプログラムコードを必要とするときに、システムメモリ110へと転送される。SEM動作モードに対する追加のサポートがセキュリティカーネルによって提供される。それは、SEMプロセッサ100の動作時に、システムメモリ110の外部でOSと連携して実行することができる。さらに、システムメモリ110は高信頼部分と非高信頼部分とに区切ることができる。このセキュリティカーネルはシステムメモリ110の高信頼部分に常駐する。上述のとおり、システムメモリ110には通常ページ化された仮想メモリを使用してアクセスする。そのような構成では、システムメモリ110には、個別のページ単位で、またはひとかたまりのメモリ単位でアクセス可能である。このページ化機能は、一般的にOSのメモリ管理機能によって処理される。
一実施形態では、システムメモリ110はダイナミック・ランダムアクセス・メモリ(DRAM)技術、または利用可能な様々なDRAM技術の一つ、例えばシンクロナスDRAM(SDRAM)に実装される複数のメモリチップを用いて実現可能である。通常、DRAMチップはエッジ部にコネクタを持つ小型の回路基板に取り付けられ、この基板がマザーボード上のソケットコネクタに差し込まれる。この基板の仕様によって、それらはシングルまたはデュアルインライン・メモリモジュール(それぞれSIMM,DIMM)と呼ばれる。システムメモリ110はメモリ拡張を可能にするメモリモジュールを複数バンク含みうる。
上述のように、記憶装置140はプログラムコードおよびデータを記憶することができる。一実施形態では、記憶装置140はハードディスクドライブまたは複数のハードディスクからなるバンクであるが、例えばCD−ROMドライブ、フロッピーディスクドライブまたはテープドライブなどのその他の大量記憶装置を有する他の実施形態も考え得る。
周辺装置150は、例えばモデム、ビデオキャプチャー装置またはその他の汎用入出力装置などのどのような周辺装置であってもよい。別の実施形態では、周辺装置の数は異なっていてもよいことに注意すべきである。
I/Oインターフェイス120は、通常のシステム動作において、異なるペリフェラルバスおよびSEMプロセッサ100A、100Bの間のトランザクションに対して、バス制御および変換機能を提供するように構成可能である。一実施形態では、I/Oインターフェイス120は、ノースブリッジ(Northbridge)に関連する機能を実行することができるバスブリッジ121を有する。例えば、ペリフェラルバス145はPCI(Peripheral Component Interconnect)バスとすることができ、ペリフェラルバス135はLPC(Low Pin Count)バスとすることができる。さらに、バスブリッジ121は、セキュア初期化の際にSEMプロセッサ100とSSP130との間でスプーフィング不可能な通信を可能にするセキュリティ機構(図2には図示せず)を提供するように構成することができる。例えば、バスブリッジ121は、SSPがそれに接続されているかどうか、およびどのバスに接続されているかを判定するように構成可能である。以下でさらに説明するが、バスのタイプに応じて、バスブリッジ121は様々なセキュリティ関連の機能、システムバス125においてSEMプロセッサ100Aから受信したセキュリティ初期化命令をペリフェラルバス135上での伝達に適したフォーマットへの変換などを実行するように構成可能である。例えば、バスブリッジ121はSKINIT関連のメッセージを識別して、それらのメッセージをペリフェラルバス135の特定フォーマットでSSP130に伝送するように構成可能である。さらに、バスブリッジ121は例えばアドレスフィルタリングなどの機構によってSSP130へのピア・トゥー・ピア(peer-to-peer)のトラフィックを遮断(ブロック)するように構成可能である。バスブリッジ121はさらに、SKINIT動作の際に、SSP130のメモリマップドI/Oにアクセスウィンドウを適用するように構成することもできる。
一般的にセキュリティカーネル初期化命令(SKINIT)は、例えばSEMプロセッサ100AおよびSEMプロセッサ100BなどのSEM実行可能プロセッサ上で実行される。上述のとおり、SKINIT命令は個別に実行される複数のコンポーネントを有する単一の命令である。さらに、一実施形態では、SKINIT命令は例えばEAXレジスタの内容のような単一入力オペランドを持ってもよい。一実施形態では、SKINIT命令は初期化、データ転送、そしてジャンプの3つの実行フェーズを含む。
この初期化フェーズの際、SEMプロセッサ100Aの状態はリセットされ、すべてのマイクロコードパッチがクリアされる。さらに、システムメモリ110AにSLイメージがロードされて、DMAアクセスの発生を禁止し、SLイメージが常駐する物理メモリの64Kバイト連続空間に対するアクセスがブロックされる前に、SLイメージを保護する。この64Kバイトの領域はセキュアローダブロック(SLB)と呼ばれる。この64Kバイト空間のベースアドレスはSKINIT命令(例えば、EAXを用いたSKINITへの入力)の1パラメータである。あるHush_Startトランザクションはこのベースアドレスをそのアドレスフィールドの一部として持つ。このようにして、Hush_Startトランザクションを受信するすべてのメモリコントローラはどのメモリ領域を保護するのかを報知される。
データ転送フェーズの際、マイクロコードは、Hash_Start,Hash_DataおよびHash_End命令を実行可能である。一実施形態では、Hash_Startトランザクションは、すべての介在リンクおよびSEMプロセッサ100AとSSP130の間のバス上で送信されるブロードキャストトランザクションである。この例示の実施形態では、Hash_Startは、プロセッサバス105、システムバス125およびペリフェラルバス135上に送信されうる。マルチプロセッサ環境では、SEMプロセッサ100AはSEMプロセッサ100Bからの応答を待つ。SEMプロセッサ100Bはそのメッセージに対して、「APIC初期(init)モードアクティブ」または「APIC初期(init)モード非アクティブ」のいずれかを示すステータスビットとともに応答する。SEMプロセッサ100Bが「APIC初期(init)モードアクティブ」との応答をしなかった場合、SEMプロセッサ100AはHash_Startを終了し、次にHash_Endを実行して、Hash_Data命令を省略する。SEMプロセッサ100Bが「APIC初期(init)モードアクティブ」との応答をしたと仮定すると、このHash_Start命令はSSP130に転送され、後からHash_Data命令が続く。SEMプロセッサ100Aおよび100Bのそれぞれに関連するホストブリッジ/メモリコントローラ(図示せず)はメモリ、I/OおよびDMA排除保護(exclusion protection)を有効にする。
Hash_StartトランザクションがSSP130に送信されると、マイクロコードはHash_Dataトランザクションを実行する。このHash_Dataトランザクションはシステムメモリ110AからSLコードイメージをフェッチし、システムバス125を介してそれをI/Oインターフェイス120に送信する。
Hash_Dataトランザクションおよびその対応データがSSP130に送られると、マイクロコードはHash_Endトランザクションを実行する。Hash_Endトランザクションは、すべての介在リンクおよびSEMプロセッサ100AとSSP130の間のバス上でブロードキャストトランザクションとして送信することができる。
I/Oインターフェイス120は、Hash_StartメッセージとHash_Endメッセージとで囲まれたSLイメージを受信する。このStart/Endウィンドウの外側で受信されたトランザクションは無視される。このデータはSSP130に送信される。バスブリッジ121は、Hash_StartメッセージとHash_Endメッセージとの間のSKINITトランザクションに関連するSSP130のアドレス範囲に対する他のすべてのトランザクションを禁止するように構成可能である。ジャンプフェーズの際、SKINIT命令はSLへのジャンプ(Jump)で終了する。
一実施形態では、SSP130がHash_DataトランザクションおよびHash_Endトランザクションのデータペイロード(つまり、SLイメージ)を受信したとき、それはそのイメージの暗号ハッシュを実行し、その結果を内部記憶値と比較する。合致すれば、SSP130は、SLイメージが有効であるとの内部表示を記憶してそのSLイメージを有効にする。この状態において、SSP130は「武装された(armed)」と呼ばれ、例えばより大きなセキュリティカーネルのハッシュを有効化するなどの後続の動作に参加する準備が完了する。
SSP130がペリフェラルバス145に結合される実施形態では、バスブリッジ121は、ペリフェラルバス145に関する変換およびセキュリティ関連の機能を実行するように構成することができる。
図3は、高信頼コンピューティングプラットホームを採用したコンピュータシステムの他の実施形態のブロック図である。簡略化および明確化のために、図2に示した要素に対応する要素には同じ参照符号を付する。コンピュータシステム20は、SEMプロセッサ100AおよびSEMプロセッサ100Bと呼ばれるSEMを実行可能な2つのプロセッサを含む。SEMプロセッサ100Aは同期(coherent)リンク205を介してSEMプロセッサ100Bに結合される。この同期リンク205は高速ポイント間(point-to-point)リンクを形成することができる。さらにコンピュータシステム20は、SEMプロセッサ100AおよびSEMプロセッサ100Bに結合されたシステムメモリ110Bに結合されるシステムメモリ110Aを含む。SEMプロセッサ100Aは非同期(non-coherent)のI/Oリンク225を介してI/Oインターフェイス220に結合される。この非同期リンク225も高速ポイント間(point-to-point)リンクを形成することができる。I/Oインターフェイス220はペリフェラルバス145を介して記憶装置140および周辺装置150に結合される。さらにI/Oインターフェイス220はペリフェラルバス135を介してSSP130に結合される。別の実施形態では、ペリフェラルバス135の代わりに、点線で示すようにSSP130をペリフェラルバス145に結合してもよい。ここで2つのSEMプロセッサを示しているものの、他の実施形態では異なる数のSEMプロセッサを用いてもよいことに注意すべきである。
例示の実施形態では、SEMプロセッサ100AおよびSEMプロセッサ100Bはそれぞれシステムメモリ110Aおよび110Bに接続するための統合メモリコントローラ(図示せず)を有する。さらに、SEMプロセッサ100Aは、非同期リンク225に接続し、同期リンク205においてSEMプロセッサ100AとSEMプロセッサ100Bとの間でメッセージを伝達するための組込みホストブリッジロジック(図示せず)を含む。ホストブリッジがスタンドアローンである(つまり、ノースブリッジ)、または組み合わせであるような他の実施形態も考え得ることに注意すべきである。
例示の実施形態では、同期リンク205および非同期I/Oリンク225のそれぞれは、単一方向の信号線セットとして実装されている。所与のセットの各信号線はトランザクションを異なった方向に伝達する。同期リンク205は、SEMプロセッサ100Aと100Bとの間の通信においてキャッシュ同期形式で動作可能である。さらに、非同期I/Oリンク225は、I/Oインターフェイス220とSEMプロセッサ100Aのホストブリッジのようなホストブリッジとの間の通信において非同期形式で動作可能である。同期リンクを介した2以上の装置の相互接続は「コヒーレント・ファブリック」と呼ばれる。同様に、非同期リンクを介した2以上の装置の相互接続は「ノンコヒーレント・ファブリック」と呼ばれる。一実施形態では、非同期I/Oリンク225はHyperTransport(商標)技術と互換性を持つ、ことに注意してもらいたい。
一般に、パケットとは2つのノードまたは装置(パケットを送信する発信ノードおよびそのパケットを受信する宛先ノード)間の通信である。発信ノードと宛先ノードは、パケットがその一部を構成するトランザクションのソース(発信元)および目的ノードとは、どちらのノードもソースノードまたは目的ノードとなりうる点において異なる。制御パケットはトランザクションに関する制御情報を運ぶパケットである。ある種の制御パケットはデータパケットが続いていることを特定する。データパケットはトランザクションに対応し、特定した制御パケットに対応するデータを運ぶ。一実施形態では、制御パケットは命令パケット、情報パケットおよび応答パケットを含むことができる。その他のタイプのパケットを含む他の実施形態も考え得ることに注意してもらいたい。
パケットが非同期リンク上または同期リンク上の同期ノード間でアップストリームまたはダウンストリーム方向に伝達されるとき、パケットは1以上のノードを通過する。ここで、「アップストリーム」はI/Oインターフェイス220からSEMプロセッサ110Aのホストブリッジへ向かう方向のパケットトラフィックの流れを指し、「ダウンストリーム」はSEMプロセッサ110AのホストブリッジからI/Oインターフェイス220へ向かう方向のパケットトラフィックの流れを指す。
図2の説明と同様に、図2のSEMプロセッサ100はx86アーキテクチャを採用したプロセッサの一例である。そのために、SEMプロセッサ100は、システムメモリ110または記憶装置140に記憶されるx86命令を実行するように構成されている。例示の実施形態では、SEMプロセッサ100はセキュリティハードウェア(図示せず)を含み、SEMによって使用可能にされたときに、それは例えば上述の高信頼実行(TX)動作モードのようなSEM動作モードに対するサポートを提供する。
以下でさらに詳細に説明するように、HyperTransport(商標)技術を用いたスプーフィング不可能なセキュアな通信路を実現するために、ホストブリッジもセキュリティ関連の機能を実行するように構成される。例えば、SEMプロセッサ100Aのホストブリッジは、I/O空間排除を実行し、SKINIT関連のメッセージサポートを行い、そのダウンストリームバス上にSSP130が常駐しているかどうかの情報を持つことができる。I/O空間排除(space exclusion)とは、ダウンストリームバスからI/O空間に到着するすべてのトランザクションをブロックすることを指す。例えば、アップストリームトランザクションは、アップストリームバスに向かってブリッジを通過することも、ダウンストリームバスを戻ることも許されない。さらに、HyperTransport(商標)40ビット設定アドレスウィンドウ(FD_FE00_0000hからFD_FFFF_FFFFh)に対するすべてのアップストリームアクセスはホストブリッジによってブロックされる。一実施形態では、これらのアクセスはTarget Abort(ターゲットアボート)またはMaster Abort(マスタアボート)のどちらかによって阻止される。
図2の説明との関連ですでに説明したとおり、SEMプロセッサ100A内のホストブリッジはHash_Start,Hash_DataおよびHash_Endトランザクションを送信するように構成可能である。一実施形態では、Hash_StartおよびHash_Endメッセージはブロードキャストパケットであり、一方Hash_Dataトランザクションは非ポスト、サイズ調整されたライト要求パケット(non-posted Sized Write request packet)と、それに続くデータペイロードを含むデータパケットを含んでいる。以下の図6から図8の説明は、例としてのHash_Start,Hash_DataおよびHash_End HyperTransport(商標)パケットについてのものである。これらのトランザクションのための40ビットのアドレスを以下で特定する。一実施形態では、これらのアドレスに対するトランザクションがSKINIT命令の一部としてSEMプロセッサ100Aのみから来ていることを保証するのは、SEMプロセッサ100AのHyperTransport(商標)ホストブリッジの責任である。セキュリティ初期化のためにここで使用される以下のアドレス範囲はHyperTransport(商標)規格では予約済みとされていることに注意する必要がある。
FD_F920_0000h-FD_F923_FFFFh Hash_Start
FD_F924_0000h-FD_F927_FFFFh 予約済み
FD_F928_0000h-FD_F928_0003h Hash_End
FD_F928_0004h-FD_F928_0007h Hash_Data
FD_F928_0008h-FD_F92F_FFFFh 予約済み
システムメモリ110は、図2の説明との関連で上述したシステムメモリ110と実質的に同じように動作する。例えば、図3のシステムメモリ110もSEMプロセッサ100によって頻繁に使用されるプログラム命令およびデータを記憶するように構成される。SEM動作モードに対する追加のサポートがセキュリティカーネルによって提供される。それは、SEMプロセッサ100の動作時に、システムメモリ110の外部でOSと連携して実行することができる。さらに、上述のとおり、システムメモリ110は高信頼部分と非高信頼部分とに区切ることができる。セキュリティカーネルはシステムメモリ110の高信頼部分に常駐する。上述のとおり、システムメモリ110には通常ページ化された仮想メモリを使用してアクセスする。そのような構成では、システムメモリ110には、個別のページ単位で、またはひとかたまりのメモリ単位でアクセス可能である。このページ化機能は、一般的にOSのメモリ管理機能によって処理される。
上述のように、記憶装置140はプログラムコードおよびデータを記憶することができる。一実施形態では、記憶装置140はハードディスクドライブまたは複数のハードディスクからなるバンクであるが、例えばCD−ROMドライブ、フロッピーディスクドライブまたはテープドライブなどのその他の大量記憶装置を有する他の実施形態も考え得る。
周辺装置150は、例えばモデム、ビデオキャプチャー装置またはその他の汎用入出力装置などのどのような周辺装置であってもよい。別の実施形態では、周辺装置の数は異なっていてもよいことに注意すべきである。
一実施形態では、I/Oインターフェイス220はバスブリッジ221を含み、このバスブリッジ221は、NC I/Oリンク225上で伝達される非同期のHyperTransport(商標)トランザクションと、ペリフェラルバス135上で伝達されるトランザクションおよびペリフェラルバス145上で伝達されるトランザクションの両方とをブリッジするように構成されたハードウェア(図3には図示せず)を含む。一実施形態では、ペリフェラルバス135はLPC(Low Pin Count)バスである。さらに、ペリフェラルバス145はPCI(Peripheral Component Interconnect)バスとすることができる。そのような実施形態では、バスブリッジ221は、NC I/Oリンク225上で伝達される非同期のHyperTransport(商標)トランザクションと、LPCバス135上で伝達されるLPCバストランザクションと、PCIバス145上で伝達されるバストランザクションとの間をブリッジするように構成できる。LPCバスが非加算(non-enumerable)である実施形態では、シリアルバスはホストと周辺装置との間で制御、アドレスおよびデータ情報を伝達するために4本の信号線を使用可能であることに注意すべきである。通信対象の情報は、スタート、ストップ(サイクルをアボート)、転送タイプ(メモリ、I/O、DMA)、転送方向(リード/ライト)、アドレス、データ、待ち状態(wait states)、DMAチャネルおよびバスマスタ許可(grant)である。LPCバスに関するさらに詳しい情報については、インテル(登録商標)から提供されるLow Pin Count Interface規格書改訂版1.1を参照してもらいたい。また、PCIバスは一般的にパラレルのマルチプレクスされたアドレスおよびデータバスと特徴付けることができる。さらに、PCIバスに関するさらに詳しい情報については、PCIスペシャルイントレストグループから提供されるPCIローカルバス規格書改訂版2.2を参照してもらいたい。
I/Oインターフェイス220は、通常のシステム動作の際に、バス制御および異なるペリフェラルバス間のトランザクションの変換を行うように構成される。さらに、バスブリッジ221は、セキュア初期化の際に、SEMプロセッサ100とSSP130との間でスプーフィング不可能な通信を実行可能にするセキュリティ機構を含む。例えば、バスブリッジ221はSSPがそれに接続されているか、またどのバスに接続されているかを判定するように構成可能である。さらに、以下で図4および図5の説明に関連して説明するように、バスブリッジ221はセキュリティ初期化トランザクションの変換などのセキュリティに関連する様々な機能を実行するように構成可能である。例えば、バスブリッジ221は、NC I/Oリンク225上で受信したSKINITメッセージを識別して、それらのメッセージを、SSP130の位置に応じて必要ならばLPCバス135またはPCIバス145での伝達に適したフォーマットでSSP130に対して転送する。さらに、バスブリッジ221はSSP130に対するピアトゥーピアのトラフィックをブロックするように構成可能である。さらにバスブリッジ221は、SKINIT動作の際に、SSP130のメモリマッピングされたI/Oにアクセスウィンドウを適用するように構成可能である。
図4および図5の説明との関連において以下でさらに詳しく説明するように、ホストブリッジ221は、SKINITに関連するHyperTransport(商標)メッセージを遮断し、必要ならばそれらのメッセージを、SSP130の位置に応じて、正しいフォーマットで、LPCバス135またはPCIバス145を介してSSP130に伝達するように構成されるロジック(図3には図示せず)を含んでもよい。さらに、バスブリッジ221は、HyperTransport(商標)をSSPフロー制御に提示するように構成されたロジック(図示せず)を含んでもよい。例えば、バスブリッジ221は、サポートされるHyperTransport(商標)データ速度で到着するHash_Dataトランザクションの連続フローを吸い込むこともできるし、またはアップストリームNC I/Oリンク225でフロー制御を呼び出してもよい。
さらにバスブリッジ221はHash_Start, Hash_Endアクセスウィンドウ規則を適用するように構成されるロジック(図3には図示せず)を含んでもよい。特に、アップストリームリンクから受信されるHash_Dataトランザクションを除き、Hash_StartおよびHash_Endの境界間のSSPメモリマッピングされたI/Oアドレスウィンドウに対してはいかなるアクセスも許可されない。これには、SSP130の位置に応じて、LPCバス335またはPCIバス145上のピアトゥーピアのトラフィックも含まれる。
図4は、図3のバスブリッジの一実施形態のブロック図である。図3に示した要素に対応する要素には明確化と簡略化のために同一の参照符号を付する。LPCバスブリッジ321は、NC I/Oリンク225および内部バス421に結合された内部ブリッジユニット401を含む。LPCバスブリッジ321はさらに、内部ブリッジユニット401およびSKINITソースディテクタ450に結合されたSKINITフィルタ405を含む。LPCバスブリッジ321はさらにアドレスマッパ411を含む。アドレスマッパ411は、SKINITフィルタ405に結合されているアドレスフィルタ410に結合されている。LPCバスブリッジ321はさらに制御ロジック416を含み、制御ロジック416は構成ヘッダ標準レジスタ(configuration header standard register)415を制御するために結合される。LPCバスブリッジ321は、内部バス421に結合される内部バスサイクルデコードユニット420をさらに含む。LPCバスブリッジ321はさらに読み出しバッファ425および書き込みバッファ430を含み、それらはどちらも内部バス421に結合されている。LPCバスブリッジ321はさらにHash_x命令変換装置455を含み、それはSKINITソースディテクタ450とLPCバスサイクルエンジン435との間に結合される。さらに、LPCバスブリッジ321は、LPCバス335に結合されたLPCバスドライバ440を含む。
例示の実施形態では、内部バス421はLPCバスブリッジ321内部のトランザクションを伝達するために使用することができる。NC I/Oリンク225で受信されたトランザクションは内部ブリッジユニット401で受信され、内部バスサイクルへ変換される。一実施形態では、内部ブリッジユニット401は、NC I/Oリンク225上でHyperTransport(商標)メッセージを受信し、それらのメッセージを内部バス421上で伝達するためにPCIバスサイクルに変換するように構成可能である。例えば、図6から図8の説明との関連において以下で説明するように、Hash_Start,Hash_EndおよびHash_Dataメッセージなどの HyperTransport(商標)メッセージを送信することができる。
内部ブリッジユニット401がNC I/Oリンク225からトランザクションを受信するとき、SKINITフィルタ415はSKINITトランザクションを識別するように構成することができる。トランザクションがSKINITトランザクションであるとき、それらはSKINITソースディテクタ450に転送される。アドレスマッパ411が受信したアドレスを、以下に示すように対応するLPCバス335のアドレスにマッピングする。アドレスフィルタ410はHyperTransport(商標)メッセージに対応するPCIトランザクションを受信して、もしそれらのトランザクションのアドレスがSSP130の256バイトセキュリティ初期化アドレスウィンドウの範囲内であるときは、範囲内(in-range)信号がアドレスフィルタ410からSKINITソースディテクタ450に供給される。以下でさらに説明するように、アドレスフィルタ410は入力メッセージアドレスを比較するために構造ヘッダ標準レジスタ415を使用する。一実施形態では、構造ヘッダ標準レジスタ415はシステムのブートの際にSSP130のベースアドレスレジスタ(図示せず)の内容によってプログラムされる。このプログラミングは基本入出力システム(BIOS)の助けをかりて実行される。
一実施形態では、SLの有効化およびメモリマッピングされたI/OトランザクションはLPCバスブリッジ321のアドレスマッパ411によって、次のとおりLPCバス335上の4Kバイト固定アドレス範囲内にマッピング可能である。
FED0_0000h-FED0_0003h Hash_End
FED0_0004h-FED0_0007h Hash_Data
FED0_0008h-FED0_000Bh Hash_Start
FED0_000Ch-FED0_00FFh 予約済み
FED0_0100h-FED0_0103h Device_ID-Vendor_ID(デバイスID・ベンダID)レジスタ
FED0_0104h-FED0_0107h Class_Code-Revision_ID(クラスコード・リビジョンID)レジスタ
FED0_0108h-FED0_010Bh Subsystem_ID-Subsystem_Vendor_ID(サブシステムID、サブシステムベンダID)レジスタ
FED0_010Ch-FED0_01FFh 予約済み
FED0_0200h-FED0_0FFFh SSPメモリマッピングされたI/Oウィンドウ
FED0_1000h-FEDF_FFFFh 予約済み
LPCバス335上のトランザクションはバイト読み出しおよび書き込みであることに注意すべきである。従って、NC I/Oリンク225で受信されるすべてのHash_DataDワードトランザクションは対応するバイトトランザクションに変換される。
SKINITソースディテクト450はトランザクションの発信元(ソース)を判定するように構成される。SKINITソースディテクト450がSKINITトランザクションの発信元がホストブリッジでないと判定すると、そのSKINITトランザクションはドロップまたは廃棄される。一実施形態では、ホストブリッジのみが発信元でないSKINITトランザクションを受信すると、それに応答してシステムのリセットが行われる。しかしながら、SKINITソースディテクト450がSKINITトランザクションの発信元がSEMプロセッサ100Aのホストブリッジであると判定し、そのトランザクションのアドレスがセキュリティ初期化ウィンドウの範囲内であると、範囲内信号によって判定したときは、そのSKINITトランザクションはHash_x命令変換装置455によるLPC命令への変換および関連LPCアドレスへのマッピングが許可される。次に、LPCバスサイクルエンジン435は適切なLPCバスサイクルを生成する。次に、LPCバスドライバ440はSSP130への伝達のためにLPCバス335上のバスサイクルを駆動するための適切な信号を生成する。
読み出しバッファ425および書き込みバッファ430はそれぞれの内部バスサイクルに関連するデータを記憶するように構成された記憶装置である。内部バス421上でトランザクションが伝達される際に、内部バスサイクルデコーダ420はトランザクションが読み出しサイクルか、または書き込みサイクルかを判定する。このサイクルに関連するすべてのデータは、LPCバスサイクルを生成するときにLPCバスサイクルエンジン435によって使用するために、適切なバッファに記憶される。
LPCバス335は非可算(non-enumerable)のバスであるため、LPCバスブリッジ321はSSP130に対して構成ヘッダ(configuration header)を供給し、それはSSP130が存在するか否かに応じてソフトウェアから可視的であり、アクセス可能である。一実施形態では、構成ヘッダ標準レジスタ415は標準PCI構成ヘッダと互換性を持つ。システムブートアップの際に、BIOSはLPCバス335上のSSP130の存在をチェックする。SSP130が検出されると、BIOSは制御ロジック416中のビットをセットし、それによって構成ヘッダ415の標準レジスタがソフトウェアから見えるようになるとともに、アクセス可能になる。代替的には、SSP130が組み込まれるときには物理的なジャンパ配線を半田付けして、制御ロジック416がスタートアップ時に読み出してもよい。または、SSPがない場合には、構成ヘッダおよびその標準レジスタ415は、制御ロジック416によってソフトウェアから隠される。さらに、SSP130は、固定されたLPCバスアドレスにマッピングされている読み出し専用レジスタセットを含む。BIOSはこれらのレジスタを読み出し、その値を構成ヘッダ標準レジスタ415の可算レジスタにロードする。一実施形態では、次のSSP読み出し専用レジスタが固定LPCアドレスにマッピングされる。
Figure 0004762494
一実施形態では、LPCバスブリッジ321はSSP130のための割り込み機構をさらに含む。LPCブリッジ321は、構成ヘッダ標準レジスタ415内の構成ヘッダ割り込みレジスタを介してSSP割り込みのためのマッピングを行う。一実施形態では、LPCバスブリッジ321はSSP割り込みのためのマッピングを確定し、それを構成ヘッダにレポートする。代替的には、BIOSが構成ヘッダレジスタをプログラムしてもよい。
従って、上記の説明から、LPCバスブリッジ321は、SEM実行可能なプロセッサ100のホストブリッジを発信元とするSSP130のセキュリティ初期化アドレスウィンドウへのアクセスを許可する一方、SEM実行可能なプロセッサ100のセキュリティ初期化の際に、ピアトゥーピアのアクセスなどの他のアクセスはブロックする。
図4の説明に関連して既に説明したLPCバスブリッジ321の実施形態は特定のブロックに関係する機能を含んでいたが、ここで用いられた特定のブロックは説明目的のためだけのものであり、同様の機能を実行するように構成されたその他のブロックを含む別の実施形態も考えられる。
図5は、図3のブリッジユニットの他の実施形態のブロック図である。明確化および簡略化のために、図2、3に示した要素に対応する要素には同一の参照符号を付する。PCIバスブリッジ421はNC I/Oリンク225と、内部バス521とに結合された内部ブリッジユニット501を含む。PCIバスブリッジ421はさらに内部ブリッジユニット501と、SKINITソースディテクタ550とに結合されたSKINITフィルタ505を含む。PCIバスブリッジ421はさらにアドレスマッパ511を含み、アドレスマッパ511は、SKINITフィルタ505とベースアドレスレジスタ(BAR)シャドウレジスタ515とに結合されたアドレスフィルタ510に結合される。PCIバスブリッジ421はさらに内部バス521に結合された内部バスサイクルデコーダ520を含む。PCIバスブリッジ421はさらに読み出しバッファ525と書き込みバッファ530とを含み、これらは内部バス521に結合される。PCIバスブリッジ421はさらにHash_x命令変換装置555を含み、それはSKINITソースディテクタ550とPCIバスサイクルエンジン535との間に結合される。さらに、PCIバスブリッジ421はPCIバス545に結合されたPCIバスドライバ540を含む。
一実施形態では、BARシャドウレジスタ515はシステムブートアップの際にSSP130のベースアドレスレジスタ(図示せず)の内容でプログラムされる。このプログラミングはBIOSの助けをかりて実行することできる。BARシャドウレジスタ515は、SSP130のBARに合致するように構成されている。制御ロジック516は、SSP130のBARとBARシャドウレジスタ515との間の整合を維持する。一実施形態では、この整合を維持するために、制御ロジック516は、SSP130に対する専用初期化デバイスセレクト(IDSEL)を定義する。SSP130はマザーボードに物理的に取り付けられ、または半田付けされる。このマザーボードにおいて、I/Oインターフェイス520のPCIバスブリッジ421から所定のかつ専用のIDSELを用いてSSP130に配線するように構成することができる。40ビットのセキュリティアドレスをPCIバス545の対応する32ビットアドレス空間にマッピングするために、アドレスマッパ515は可算書き込みが生じているときに制御ロジック516に通知するように構成される。制御ロジック516はSSP130のBARに対する可算書き込みをつかんで(snarf)、そのつかまえた可算書き込みが代わりにBARシャドウレジスタ515に書き込まれるようにする。ここでつかまえる(snarfing)とは特定のトランザクションのためにバスまたはインターフェイスを監視し、もし合致するものを見つけると、そのトランザクションを取り除く、または横取りすることである。
一実施形態では、SL有効化およびメモリマッピングされたI/Oトランザクションは、PCIバスブリッジ421のアドレスマッパ511によって、次のようにPCIバス545のアドレス範囲にマッピングされる。
XXXX_XXX0h-XXXX_XXX3h Hash_End
XXXX_XXX4h-XXXX_XXX7h Hash_Data
XXXX_XXX8h-XXXX_XXXBh Hash_Start
XXXX_X00Ch-XXXX_X1FFh 予約済み
XXXX_X200h-XXXX_XFFFh SSPメモリマッピングされたI/Oウィンドウ
例示の実施形態では、内部バス521はPCIバスブリッジ421内部でトランザクションを伝達するために使用可能である。NC I/Oリンク225で受信されたトランザクションは内部ブリッジユニット501で受信され、内部バスサイクルに変換される。一実施形態では、内部ブリッジユニット501はNC I/Oリンク225でHyperTransport(商標)メッセージを受信し、それらのメッセージを内部バス521での伝送のためにPCIバスサイクルに変換するように構成されている。例えば、図6から図8の説明との関連において以下で説明するように、Hash_Start,Hash_EndおよびHash_Dataメッセージなどの HyperTransport(商標)メッセージを送信することができる。
内部ブリッジユニット501がNC I/Oリンク225からトランザクションを受信するとき、SKINITフィルタ515はSKINITトランザクションを識別するように構成することができる。トランザクションがSKINITトランザクションであるとき、それらはSKINITソースディテクタ550に転送される。アドレスマッパ511が40ビットセキュリティアドレスを、以下に示すように対応するPCIバス545の32ビットアドレス空間にマッピングする。アドレスフィルタ510はHyperTransport(商標)メッセージに対応するPCIトランザクションを受信して、もしそれらのトランザクションのアドレスがSSP130の256バイトセキュリティ初期化アドレスウィンドウ(例えば、Hash_Start, Hash_EndおよびHash_Dataアドレスに対応するメモリマッピングされたI/O空間の最初の3つのDワード)の範囲内であるときは、範囲内(in-range)信号がアドレスフィルタ510からSKINITソースディテクタ550に供給される。
SKINITソースディテクト550はトランザクションの発信元(ソース)を判定するように構成される。SKINITソースディテクト550がSKINITトランザクションの発信元がホストブリッジでないと判定すると、そのSKINITトランザクションはドロップまたは廃棄される。一実施形態では、ホストブリッジのみが発信元でないSKINITトランザクションを受信すると、それに応答してシステムのリセットが行われる。他の実施形態では、PCIバスブリッジ421が、SSP130のセキュリティ初期化アドレスウィンドウへのアクセスを試みたマスタへの後に続く許可(grant)の発行をブロックする。
しかしながら、SKINITソースディテクト550がSKINITトランザクションの発信元がSEMプロセッサ100Aのホストブリッジであると判定し、そのトランザクションのアドレスがセキュリティ初期化ウィンドウの範囲内であると、範囲内信号によって判定したときは、そのSKINITトランザクションはHash_x命令変換装置555によるPCI命令への変換および関連PCIアドレスへのマッピングが許可される。次に、PCIバスサイクルエンジン535は適切なPCIバスサイクルを生成する。次に、PCIバスドライバ540はSSP130への伝達のためにPCIバス545上のバスサイクルを駆動するための適切な信号を生成する。
読み出しバッファ525および書き込みバッファ530はそれぞれの内部バスサイクルに関連するデータを記憶するように構成された記憶装置である。内部バス521上でトランザクションが伝達される際に、内部バスサイクルデコーダ520はトランザクションが読み出しサイクルか、または書き込みサイクルかを判定する。このサイクルに関連するすべてのデータは、PCIバスサイクルを生成するときにPCIバスサイクルエンジン535によって使用するために、適切なバッファに記憶される。
従って、上記の説明から、PCIバスブリッジ421は、SEM実行可能なプロセッサ100のホストブリッジを発信元とするSSP130のセキュリティ初期化アドレスウィンドウへのアクセスを許可する一方、SEM実行可能なプロセッサ100のセキュリティ初期化の際に、ピアトゥーピアのアクセスなどの他のアクセスはブロックする。
図5の説明に関連して既に説明したPCIバスブリッジ421の実施形態は特定のブロックに関係する機能を含んでいたが、ここで用いられた特定のブロックは説明目的のためだけのものであり、同様の機能を実行するように構成されたその他のブロックを含む別の実施形態も考えられる。
<HyperTransport(商標)トランザクションを使用したセキュリティカーネル初期化>
上述のとおり、パケットを、NC I/Oリンク225などのHyperTransport(商標)リンク上をアップストリームにもダウンストリームにも送信することができる。さらにある種のパケットは特定の宛先を持ち、その他のパケットはすべての装置に対してブロードキャストされる。図6から図8に、HyperTransport規格と互換性を持つSKINITトランザクションパケットの例を示す。図6はHash_Startパケットの一例を、図7はHash_Endパケットの一例を、図8はHash_Dataパケットの一例を示す。様々なHyperTransport(商標)パケットフォーマットとともに、リンク構造および信号の仕様についてのさらに詳細な情報は、HyperTransport(商標)技術コンソーシアムから出版されている、HyperTransport(商標)I/Oリンク規格書の最新版に記載されている。
図6に、Hash_Startパケットの一実施形態を示す。Hash_Startパケット600は、ビット0−7からなる複数のフィールド、すなわち1バイトを含む。さらに、このパケットはビット時間0−7を含むので、8バイトのパケットである。Hash_Startパケット600のフォーマットは、ホストブリッジがすべてのダウンストリーム装置との通信ために一般的に用いるブロードキャストメッセージとして定義される。ビット時間0の間、ビット0−5が命令タイプをエンコードするために用いられ、CMD[5:0]とラベリングされる。一方、ビット6−7はシーケンスIDのビット2,3をエンコードするために用いられ、SeqID[3:2]とラベリングされる。例示の実施形態では、CMD[5:0]のエンコードは111010bであり、それは、非ポスト(non-posted)、サイズ調整された(sized)書き込み、ダブルワード、等時性の(isochronous)、非同期(non-coherent)パケットであることを示している。ビット時間1の間、ビット0−4はホストブリッジのユニットID(00000b)をエンコードするために用いられ、UnitID[4:0]とラベリングされる。ビット5−6はシーケンスIDのビット0,1をエンコードするために用いられ、SeqID[1:0]とラベリングされる。ビット7はパスポステッド(pass posted)書き込みビットであって、PassPWとラベリングされる。この実施形態では、PassPWビットは値0bに固定される。ビット時間2の間、すべてのビットは予約済みである。ビット時間3の間、ビット0−1は予約済みである。ビット2−7はアドレスビット2−7をエンコードするために用いられ、それらはAddr[7:2]とラベリングされる。これらのビットはノーチェック(don’t care)ビットである。ビット時間4の間、ビット0−7はアドレスビット8から15をエンコードするために用いられ、それらはAddr[15:8]とラベリングされる。これらのビットはノーチェックビットである。ビット時間5の間、ビット0−1はアドレスビット16,17をエンコードするために用いられ、それらはAddr[17:16]とラベリングされる。これらのビットはノーチェックビットである。ビット2−7はアドレスビット18から23をエンコードするために用いられ、それらはAddr[23:18]とラベリングされる。これらのビットはアドレス値001010bでエンコードされる。ビット時間6の間、ビット0−7はアドレスビット24から31をエンコードするために用いられ、それらはAddr[31:24]とラベリングされる。これらのビットはアドレス値F9hでエンコードされる。ビット時間7の間、ビット0−7はアドレスビット32から39をエンコードするために用いられ、それらはAddr[39:32]とラベリングされる。これらのビットはアドレス値FDhでエンコードされる。これらのアドレスは、図2から図5の上記説明との関連で説明したSSP130の予約済みSKINITアドレス空間に対応する。
図7に、Hash_Endパケットの一実施形態を示す。図6のHash_Startパケット600と同様に、Hash_Endパケット700は、ビット0−7からなる複数のフィールド、すなわち1バイトを含む。さらに、このパケットはビット時間0−7を含むので、8バイトのパケットである。Hash_Endパケット700のフォーマットは、ホストブリッジがすべてのダウンストリーム装置との通信ために一般的に用いるブロードキャストメッセージとして定義される。ビット時間0の間、ビット0−5が命令タイプをエンコードするために用いられ、CMD[5:0]とラベリングされる。一方、ビット6−7はシーケンスIDのビット2,3をエンコードするために用いられ、SeqID[3:2]とラベリングされる。例示の実施形態では、CMD[5:0]のエンコードは111010bであり、それは、非ポスト(non-posted)、サイズ調整された(sized)書き込み、ダブルワード、等時性の(isochronous)、非同期(non-coherent)パケットであることを示している。ビット時間1の間、ビット0−4はホストブリッジのユニットID(00000b)をエンコードするために用いられ、UnitID[4:0]とラベリングされる。ビット5−6はシーケンスIDのビット0,1をエンコードするために用いられ、SeqID[1:0]とラベリングされる。ビット7はパスポステッド(pass posted)書き込みビットであって、PassPWとラベリングされる。この実施形態では、PassPWビットは値0bに固定される。ビット時間2の間、すべてのビットは予約済みである。ビット時間3の間、ビット0−1は予約済みである。ビット2−7はアドレスビット2−7をエンコードするために用いられ、それらはAddr[7:2]とラベリングされる。これらのビットはアドレス値00000bにエンコードされる。ビット時間4の間、ビット0−7はアドレスビット8から15をエンコードするために用いられ、それらはAddr[15:8]とラベリングされる。これらのビットはアドレス値00000bにエンコードされる。ビット時間5の間、ビット0−7はアドレスビット16から23をエンコードするために用いられ、それらはAddr[23:16]とラベリングされる。これらのビットはアドレス値28hでエンコードされる。ビット時間6の間、ビット0−7はアドレスビット24から31をエンコードするために用いられ、それらはAddr[31:24]とラベリングされる。これらのビットはアドレス値F9hでエンコードされる。ビット時間7の間、ビット0−7はアドレスビット32から39をエンコードするために用いられ、それらはAddr[39:32]とラベリングされる。これらのビットはアドレス値FDhでエンコードされる。これらのアドレスは、図2から図5の上記説明との関連で説明したSSP130の予約済みSKINITアドレス空間に対応する。
図8に、Hash_Dataパケットの一実施形態を示す。Hash_Dataパケット800は、ビット0−7からなる複数のフィールド、すなわち1バイトを含む。さらに、このパケットはビット時間0−7を含むので、8バイトのパケットである。Hash_Dataパケット800のフォーマットは、サイズ調整された書き込み要求パケットとして定義される。ビット時間0の間、ビット0−5が命令タイプをエンコードするために用いられ、CMD[5:0]とラベリングされる。一方、ビット6−7はシーケンスIDのビット2,3をエンコードするために用いられ、SeqID[3:2]とラベリングされる。例示の実施形態では、CMD[5:0]のエンコードは0011x0bであり、それは、非ポスト(non-posted)、ダブルワードデータを持つサイズ調整された(sized)書き込み要求、非同期(non-coherent)パケットであることを示している。ビット時間1の間、ビット0−4はホストブリッジのユニットID(00000b)をエンコードするために用いられ、UnitID[4:0]とラベリングされる。ビット5−6はシーケンスIDのビット0,1をエンコードするために用いられ、SeqID[1:0]とラベリングされる。ビット7はパスポステッド(pass posted)書き込みビットであって、PassPWとラベリングされる。この実施形態では、PassPWビットは値0bに固定される。ビット時間2の間、ビット0−4はソースタグ値をエンコードするために用いられ、SrcTag[4:0]とラベリングされる。ビット5は、互換性ビットとして用いられ、値0bに固定されている。ビット6−7はデータマスクまたはデータカウント値のビット0,1をエンコードするために用いられ、Mask/Count[1:0]とラベリングされる。これらのビットは値0xbでエンコードされ、Hash_Dataがトランザクション毎に単一のDワードとして送信され、バイトまたはDワードモードが使用されることを示す。例えば、Dワードモードでは、カウント値=0000b(1Dワード)であり、バイトモードではカウント値=0001b(2Dワード、1データ、1マスク)であり、マスクDワード=000Fhである。ビット時間3の間、ビット0−1はデータマスクまたはデータカウント値のビット2,3をエンコードするために用いられ、Mask/Count[3:2]とラベリングされる。ビット2−7はアドレスビット2−7をエンコードするために用いられ、それらはAddr[7:2]とラベリングされる。これらのビットはアドレス値000001bでエンコードされる。ビット時間4の間、ビット0−7はアドレスビット8から15をエンコードするために用いられ、それらはAddr[15:8]とラベリングされる。これらのビットはアドレス値00hでエンコードされる。ビット時間5の間、ビット0−7はアドレスビット16から23をエンコードするために用いられ、それらはAddr[23:16]とラベリングされる。これらのビットはアドレス値28hでエンコードされる。ビット時間6の間、ビット0−7はアドレスビット24から31をエンコードするために用いられ、それらはAddr[31:24]とラベリングされる。これらのビットはアドレス値F9hでエンコードされる。ビット時間7の間、ビット0−7はアドレスビット32から39をエンコードするために用いられ、それらはAddr[39:32]とラベリングされる。これらのビットはアドレス値FDhでエンコードされる。これらのアドレスは、図2から図5の上記説明との関連で説明したSSP130の予約済みSKINITアドレス空間に対応する。
上記実施形態は、考え得るかぎり詳細に説明しているが、これまでの開示を完全に理解した当業者にとっては様々な変形または変更が可能になることは明らかである。添付の特許請求の範囲はすべてのそのような変形例または変更例を包含するように解釈されることを意図したものである。
産業上の応用
本発明は、一般にコンピュータシステムに応用可能である。
セキュア実行モードを実行可能なプロセッサの一実施形態の動作ドメインとそれらのドメインで動作するコードの振る舞いを示す図。 高信頼コンピューティングプラットホームを採用したコンピュータシステムの一実施形態を示すブロック図。 高信頼コンピューティングプラットホームを採用したコンピュータシステムの別実施形態を示すブロック図。 セキュリティサービスプロセッサに接続するためのI/Oインターフェイスユニットの一実施形態を示すブロック図。 セキュリティサービスプロセッサに接続するためのI/Oインターフェイスユニットの別実施形態を示すブロック図。 HyperTransport(商標)プロトコルでフォーマットされたHash_Startパケットの一実施形態を示す図。 HyperTransport(商標)プロトコルでフォーマットされたHash_Endパケットの一実施形態を示す図。 HyperTransport(商標)プロトコルでフォーマットされたHash_Dataパケットの一実施形態を示す図。

Claims (8)

  1. セキュリティ初期化命令を実行することによって、セキュア実行モードを初期化するように構成され、セキュアオペレーティングシステムコードセグメントを実行することによって、前記セキュア実行モードで動作するように構成されたプロセッサ(100)と、
    I/Oリンク(225)を介して前記プロセッサに結合され、前記セキュリティ初期化命令の実行の結果として実行されるトランザクションを受信して、前記トランザクションの発信元が前記プロセッサどうかを判定するように構成された入力/出力(I/O)インターフェイス(120,220)と、
    ペリフェラルバス(135)を介して、前記I/Oインターフェイスに結合されたセキュリティサービスプロセッサ(130)とを備え、
    前記トランザクションは前記セキュアオペレーティングシステムコードセグメントの少なくとも一部を含み、前記I/Oインターフェイスは、前記プロセッサが前記トランザクションの発信元かどうかの判定に応じて、前記セキュリティサービスプロセッサに前記トランザクションを伝達するように構成されており、
    前記セキュリティ初期化命令の実行の結果として実行される前記トランザクションが、Startトランザクション、対応するDataトランザクション、および対応するEndトランザクションを含み、前記Startトランザクションおよび前記Endトランザクションはブロードキャストパケットを含み、前記Dataトランザクションは非ポストサイズ調整されたライト要求パケットとそれに続くデータペイロードを含むデータパケットを含む、コンピュータシステム(20)。
  2. 前記I/Oインターフェイスは、前記プロセッサが前記トランザクションの唯一の発信元ではないとの判定に応答して、前記セキュリティサービスプロセッサへの前記トランザクションをブロックするように構成されている、請求項1記載のコンピュータシステム。
  3. 前記セキュリティサービスプロセッサは、前記プロセッサの前記セキュア実行モードへの前記初期化の際に、前記セキュアオペレーティングシステムコードセグメントの前記少なくとも一部が有効であるかどうかを検証すべく暗号ハッシュを実行し、その結果を前記セキュリティサービスプロセッサの内部記憶値と比較するように構成されている、請求項1記載のコンピュータシステム。
  4. 前記I/Oインターフェイスはさらに、ひとたび前記Startトランザクション受信すると、前記Endトランザクション受信するまでは、前記セキュリティサービスプロセッサへのすべてのピアトゥーピアのトランザクションをブロックするように構成されている、請求項記載のコンピュータシステム。
  5. セキュアオペレーティングシステムコードセグメントを実行することによって、セキュア実行モードで動作するプロセッサ(100)を、前記セキュア実行モードでの動作のために初期化する方法であって、
    前記プロセッサがセキュリティ初期化命令を実行するステップと、
    入力/出力(I/O)インターフェイス(120,220)が、I/Oリンク(225)上で、前記プロセッサから、前記セキュリティ初期化命令の実行の結果として実行されるトランザクションを受信するステップであって、前記トランザクションは前記セキュアオペレーティングシステムコードセグメントの少なくとも一部を含むステップと、
    前記I/Oインターフェイスが、前記プロセッサが前記トランザクションの発信元かどうかの判定するステップと、
    前記I/Oインターフェイスが、前記プロセッサが前記トランザクションの発信元かどうかの判定に応じて、セキュリティサービスプロセッサ(130)に前記トランザクションを伝達するステップとを含み、
    前記セキュリティ初期化命令の実行の結果として実行される前記トランザクションが、Startトランザクション、対応するDataトランザクション、および対応するEndトランザクションを含み、前記Startトランザクションおよび前記Endトランザクションはブロードキャストパケットを含み、前記Dataトランザクションは非ポストサイズ調整されたライト要求パケットとそれに続くデータペイロードを含むデータパケットを含む、方法。
  6. 前記I/Oインターフェイスが、前記プロセッサが前記トランザクションの唯一の発信元ではないとの判定に応答して、前記セキュリティサービスプロセッサへの前記トランザクションをブロックするステップをさらに含む、請求項記載の方法。
  7. 前記セキュリティサービスプロセッサが、前記プロセッサの前記セキュア実行モードへの前記初期化の際に、前記セキュアオペレーティングシステムコードセグメントの前記少なくとも一部が有効であるかどうかを検証すべく暗号ハッシュを実行し、その結果を前記セキュリティサービスプロセッサの内部記憶値と比較するステップをさらに含む、請求項記載の方法。
  8. 前記I/Oインターフェイスが、ひとたび前記Startトランザクション受信すると、前記Endトランザクション受信するまでは、前記セキュリティサービスプロセッサへのすべてのピアトゥーピアのトランザクションをブロックするステップをさらに含む、請求項記載の方法。
JP2003586729A 2002-04-18 2003-04-18 セキュア実行モードを実行可能なcpuおよび高信頼(セキュア)通信路を介して接続されたセキュリティサービスプロセッサを含むコンピュータシステム Expired - Fee Related JP4762494B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US37357102P 2002-04-18 2002-04-18
US60/373,571 2002-04-18
PCT/US2003/012659 WO2003090052A2 (en) 2002-04-18 2003-04-18 A computer system including a secure execution mode - capable cpu and a security services processor connected via a secure communication path

Publications (2)

Publication Number Publication Date
JP2005528677A JP2005528677A (ja) 2005-09-22
JP4762494B2 true JP4762494B2 (ja) 2011-08-31

Family

ID=29251047

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003586729A Expired - Fee Related JP4762494B2 (ja) 2002-04-18 2003-04-18 セキュア実行モードを実行可能なcpuおよび高信頼(セキュア)通信路を介して接続されたセキュリティサービスプロセッサを含むコンピュータシステム

Country Status (8)

Country Link
US (3) US7496966B1 (ja)
EP (1) EP1495394B1 (ja)
JP (1) JP4762494B2 (ja)
KR (1) KR100921779B1 (ja)
CN (1) CN100339780C (ja)
AU (1) AU2003231070A1 (ja)
DE (1) DE60322366D1 (ja)
WO (1) WO2003090052A2 (ja)

Families Citing this family (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7334123B2 (en) * 2003-05-02 2008-02-19 Advanced Micro Devices, Inc. Computer system including a bus bridge for connection to a security services processor
US20040226015A1 (en) * 2003-05-09 2004-11-11 Leonard Ozgur C. Multi-level computing resource scheduling control for operating system partitions
US20040226017A1 (en) * 2003-05-09 2004-11-11 Leonard Ozgur C. Mechanism for associating resource pools with operating system partitions
US7461080B1 (en) 2003-05-09 2008-12-02 Sun Microsystems, Inc. System logging within operating system partitions using log device nodes that are access points to a log driver
US7389512B2 (en) * 2003-05-09 2008-06-17 Sun Microsystems, Inc. Interprocess communication within operating system partitions
US8892878B2 (en) * 2003-05-09 2014-11-18 Oracle America, Inc. Fine-grained privileges in operating system partitions
US7437556B2 (en) * 2003-05-09 2008-10-14 Sun Microsystems, Inc. Global visibility controls for operating system partitions
US8171252B2 (en) * 2004-04-09 2012-05-01 Proton World International N.V. Sharing of non-divisible files
WO2005106678A1 (en) * 2004-04-30 2005-11-10 Research In Motion Limited System and method of operation control on an electronic device
EP1619572A1 (en) * 2004-07-23 2006-01-25 Texas Instruments Incorporated System and method of identifying and preventing security violations within a computing system
US8145816B2 (en) 2004-09-15 2012-03-27 Intel Corporation System and method for deadlock free bus protection of resources during search execution
US7502928B2 (en) * 2004-11-12 2009-03-10 Sony Computer Entertainment Inc. Methods and apparatus for secure data processing and transmission
US8181182B1 (en) 2004-11-16 2012-05-15 Oracle America, Inc. Resource allocation brokering in nested containers
US7457960B2 (en) * 2004-11-30 2008-11-25 Analog Devices, Inc. Programmable processor supporting secure mode
US20060136338A1 (en) * 2004-12-16 2006-06-22 Intel Corporation Techniques for filtering attempts to access component core logic
US7979702B2 (en) * 2004-12-29 2011-07-12 Intel Corporation Protecting privacy of networked devices containing management subsystems
US8799428B2 (en) * 2004-12-30 2014-08-05 Intel Corporation Automated provisioning of new networked devices
JP2006203564A (ja) * 2005-01-20 2006-08-03 Nara Institute Of Science & Technology マイクロプロセッサ、ノード端末、コンピュータシステム及びプログラム実行証明方法
US7917753B2 (en) * 2005-05-16 2011-03-29 Texas Instruments Incorporated Transferring control between programs of different security levels
US8806224B2 (en) * 2005-06-28 2014-08-12 Intel Corporation Low cost trusted platform
US20070067826A1 (en) * 2005-09-19 2007-03-22 Texas Instruments Incorporated Method and system for preventing unsecure memory accesses
CN101283332A (zh) * 2005-10-04 2008-10-08 日本电气株式会社 信息处理装置、信息处理方法及程序
US8112798B2 (en) * 2005-11-09 2012-02-07 Microsoft Corporation Hardware-aided software code measurement
US7616218B1 (en) * 2005-12-05 2009-11-10 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives
US8959339B2 (en) * 2005-12-23 2015-02-17 Texas Instruments Incorporated Method and system for preventing unauthorized processor mode switches
US7882227B2 (en) 2006-02-23 2011-02-01 Oracle America, Inc. Mechanism for implementing file access control across a network using labeled containers
US7885975B2 (en) 2006-02-23 2011-02-08 Oracle America, Inc. Mechanism for implementing file access control using labeled containers
US8938473B2 (en) 2006-02-23 2015-01-20 Oracle America, Inc. Secure windowing for labeled containers
US20070234330A1 (en) * 2006-03-01 2007-10-04 Microsoft Corporation Prevention of executable code modification
US8938554B2 (en) * 2006-03-02 2015-01-20 Oracle America, Inc. Mechanism for enabling a network address to be shared by multiple labeled containers
EP1845470B1 (en) * 2006-04-13 2016-11-09 STMicroelectronics (Research & Development) Limited Multiple purpose integrated circuit
US7925815B1 (en) * 2006-06-29 2011-04-12 David Dunn Modifications to increase computer system security
US8661265B1 (en) 2006-06-29 2014-02-25 David Dunn Processor modifications to increase computer system security
US8543792B1 (en) 2006-09-19 2013-09-24 Nvidia Corporation Memory access techniques including coalesing page table entries
US8347064B1 (en) 2006-09-19 2013-01-01 Nvidia Corporation Memory access techniques in an aperture mapped memory space
US8601223B1 (en) 2006-09-19 2013-12-03 Nvidia Corporation Techniques for servicing fetch requests utilizing coalesing page table entries
US8352709B1 (en) 2006-09-19 2013-01-08 Nvidia Corporation Direct memory access techniques that include caching segmentation data
US8700883B1 (en) 2006-10-24 2014-04-15 Nvidia Corporation Memory access techniques providing for override of a page table
US8707011B1 (en) 2006-10-24 2014-04-22 Nvidia Corporation Memory access techniques utilizing a set-associative translation lookaside buffer
US8504794B1 (en) 2006-11-01 2013-08-06 Nvidia Corporation Override system and method for memory access management
US8706975B1 (en) 2006-11-01 2014-04-22 Nvidia Corporation Memory access management block bind system and method
US8607008B1 (en) 2006-11-01 2013-12-10 Nvidia Corporation System and method for independent invalidation on a per engine basis
US8347065B1 (en) * 2006-11-01 2013-01-01 Glasco David B System and method for concurrently managing memory access requests
US8533425B1 (en) 2006-11-01 2013-09-10 Nvidia Corporation Age based miss replay system and method
US8700865B1 (en) 2006-11-02 2014-04-15 Nvidia Corporation Compressed data access system and method
JP5161791B2 (ja) * 2006-12-22 2013-03-13 パナソニック株式会社 情報処理装置、集積回路、方法、およびプログラム
US7610426B1 (en) * 2006-12-22 2009-10-27 Dunn David A System management mode code modifications to increase computer system security
US7949834B2 (en) * 2007-01-24 2011-05-24 Qualcomm Incorporated Method and apparatus for setting cache policies in a processor
US8677457B2 (en) * 2007-02-09 2014-03-18 Marvell World Trade Ltd. Security for codes running in non-trusted domains in a processor core
US8276201B2 (en) * 2007-03-22 2012-09-25 International Business Machines Corporation Integrity protection in data processing systems
CN100464339C (zh) * 2007-04-25 2009-02-25 深圳兆日技术有限公司 一种多兼容性可信计算系统及方法
US20080282341A1 (en) * 2007-05-09 2008-11-13 Sony Computer Entertainment Inc. Methods and apparatus for random number generation in a multiprocessor system
US8001390B2 (en) * 2007-05-09 2011-08-16 Sony Computer Entertainment Inc. Methods and apparatus for secure programming and storage of data using a multiprocessor in a trusted mode
US8726041B2 (en) * 2007-05-09 2014-05-13 Sony Corporation Methods and apparatus for generating a random number in one or more isolated processors
US20090144332A1 (en) * 2007-11-29 2009-06-04 Wallace Paul Montgomery Sideband access based method and apparatus for determining software integrity
US8250354B2 (en) * 2007-11-29 2012-08-21 GlobalFoundries, Inc. Method and apparatus for making a processor sideband interface adhere to secure mode restrictions
US8117642B2 (en) * 2008-03-21 2012-02-14 Freescale Semiconductor, Inc. Computing device with entry authentication into trusted execution environment and method therefor
US7831816B2 (en) * 2008-05-30 2010-11-09 Globalfoundries Inc. Non-destructive sideband reading of processor state information
CN102077204B (zh) * 2008-06-24 2013-06-12 纳格拉影像股份有限公司 安全内存管理系统和方法
US8954696B2 (en) 2008-06-24 2015-02-10 Nagravision S.A. Secure memory management system and method
US8151077B1 (en) * 2008-06-30 2012-04-03 Emc Corporation Application aware cache management
JP5228938B2 (ja) 2009-01-21 2013-07-03 ソニー株式会社 アクセスキー生成装置および情報処理装置
US8151027B2 (en) * 2009-04-08 2012-04-03 Intel Corporation System management mode inter-processor interrupt redirection
EP2433238B1 (en) * 2009-05-18 2015-10-07 Hewlett-Packard Development Company, L.P. Systems and methods of determining a trust level from system management mode
US8972746B2 (en) * 2010-12-17 2015-03-03 Intel Corporation Technique for supporting multiple secure enclaves
KR101734199B1 (ko) * 2010-12-29 2017-05-24 삼성전자주식회사 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법
US10496824B2 (en) 2011-06-24 2019-12-03 Microsoft Licensing Technology, LLC Trusted language runtime on a mobile platform
US8707289B2 (en) * 2011-07-20 2014-04-22 Google Inc. Multiple application versions
US8631212B2 (en) * 2011-09-25 2014-01-14 Advanced Micro Devices, Inc. Input/output memory management unit with protection mode for preventing memory access by I/O devices
US8973144B2 (en) * 2011-10-13 2015-03-03 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US9069586B2 (en) 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US9448867B2 (en) 2011-12-31 2016-09-20 Intel Corporation Processor that detects when system management mode attempts to reach program code outside of protected space
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
KR101373542B1 (ko) * 2012-08-06 2014-03-12 (주)소만사 가상화 기반 논리적 망 분리 기법을 이용한 개인정보 보호 시스템
US9043632B2 (en) 2012-09-25 2015-05-26 Apple Inc. Security enclave processor power control
US8775757B2 (en) 2012-09-25 2014-07-08 Apple Inc. Trust zone support in system on a chip having security enclave processor
US8873747B2 (en) 2012-09-25 2014-10-28 Apple Inc. Key management using security enclave processor
US9047471B2 (en) 2012-09-25 2015-06-02 Apple Inc. Security enclave processor boot control
US8832465B2 (en) 2012-09-25 2014-09-09 Apple Inc. Security enclave processor for a system on a chip
US9558006B2 (en) * 2012-12-20 2017-01-31 Intel Corporation Continuous automatic tuning of code regions
US20140189310A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Fault detection in instruction translations
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
US9411600B2 (en) * 2013-12-08 2016-08-09 Intel Corporation Instructions and logic to provide memory access key protection functionality
US9772953B2 (en) 2014-02-03 2017-09-26 Samsung Electronics Co., Ltd. Methods and apparatus for protecting operating system data
US8756417B1 (en) 2014-02-04 2014-06-17 Sypris Electronics, Llc Multi-level assurance trusted computing platform
GB2522906B (en) * 2014-02-10 2021-07-14 Advanced Risc Mach Ltd Region identifying operation for identifying a region of a memory attribute unit corresponding to a target memory address
US10152331B2 (en) 2014-05-16 2018-12-11 Wind River Systems, Inc. Method and system for enforcing kernel mode access protection
CN104021104B (zh) * 2014-06-12 2017-11-07 国家电网公司 一种基于双总线结构的协同系统及其通信方法
US9720868B2 (en) * 2014-07-07 2017-08-01 Xilinx, Inc. Bridging inter-bus communications
US10101936B2 (en) 2014-07-28 2018-10-16 Hewlett Packard Enterprise Development Lp Memory access control
US10191680B2 (en) * 2014-07-28 2019-01-29 Hewlett Packard Enterprise Development Lp Memory access control
US9547778B1 (en) 2014-09-26 2017-01-17 Apple Inc. Secure public key acceleration
US10140457B2 (en) * 2015-07-31 2018-11-27 Intel Corporation Secure input/output device management
US10102391B2 (en) 2015-08-07 2018-10-16 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US9767320B2 (en) * 2015-08-07 2017-09-19 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US20170060783A1 (en) * 2015-09-01 2017-03-02 Mediatek Inc. Apparatus for performing secure memory allocation control in an electronic device, and associated method
US10628192B2 (en) * 2015-12-24 2020-04-21 Intel Corporation Scalable techniques for data transfer between virtual machines
CN108292339B (zh) 2016-01-26 2022-02-11 惠普发展公司,有限责任合伙企业 系统管理模式特权架构
US10572687B2 (en) * 2016-04-18 2020-02-25 America as represented by the Secretary of the Army Computer security framework and hardware level computer security in an operating system friendly microprocessor architecture
US10277561B2 (en) 2016-07-22 2019-04-30 International Business Machines Corporation Database management system shared ledger support
US10382436B2 (en) * 2016-11-22 2019-08-13 Daniel Chien Network security based on device identifiers and network addresses
US10360353B2 (en) * 2017-02-08 2019-07-23 International Business Machines Corporation Execution control of computer software instructions
US20180365425A1 (en) * 2017-06-15 2018-12-20 Qualcomm Incorporated Systems and methods for securely booting a system on chip via a virtual collated internal memory pool
EP3506143B1 (en) * 2017-12-27 2024-02-14 Siemens Aktiengesellschaft Interface for a hardware security module
US11188622B2 (en) 2018-09-28 2021-11-30 Daniel Chien Systems and methods for computer security
US11544069B2 (en) * 2018-10-25 2023-01-03 Micron Technology, Inc. Universal pointers for data exchange in a computer system having independent processors
US11741196B2 (en) 2018-11-15 2023-08-29 The Research Foundation For The State University Of New York Detecting and preventing exploits of software vulnerability using instruction tags
US10826912B2 (en) 2018-12-14 2020-11-03 Daniel Chien Timestamp-based authentication
US10848489B2 (en) 2018-12-14 2020-11-24 Daniel Chien Timestamp-based authentication with redirection
US11251942B2 (en) 2019-01-09 2022-02-15 Alibaba Group Holding Limited Secure communication channel between encryption/decryption component and trusted execution environment
GB2591978B (en) * 2019-10-07 2023-06-21 Siemens Ind Software Inc Message Monitoring
US11677754B2 (en) 2019-12-09 2023-06-13 Daniel Chien Access control systems and methods
US11509463B2 (en) 2020-05-31 2022-11-22 Daniel Chien Timestamp-based shared key generation
US11438145B2 (en) 2020-05-31 2022-09-06 Daniel Chien Shared key generation based on dual clocks

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271254A (ja) * 2002-03-08 2003-09-26 Internatl Business Mach Corp <Ibm> 認証システム、ファームウェア装置、電気機器、及び認証方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4858138A (en) * 1986-09-02 1989-08-15 Pitney Bowes, Inc. Secure vault having electronic indicia for a value printing system
US5615263A (en) * 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5784592A (en) * 1995-09-11 1998-07-21 Advanced Micro Devices, Inc. Computer system which includes a local expansion bus and a dedicated real-time bus for increased multimedia performance
US5692211A (en) * 1995-09-11 1997-11-25 Advanced Micro Devices, Inc. Computer system and method having a dedicated multimedia engine and including separate command and data paths
US5758177A (en) * 1995-09-11 1998-05-26 Advanced Microsystems, Inc. Computer system having separate digital and analog system chips for improved performance
US5873127A (en) * 1996-05-03 1999-02-16 Digital Equipment Corporation Universal PTE backlinks for page table accesses
US5860144A (en) * 1996-08-09 1999-01-12 Oracle Corporation Addressing method and system for providing access of a very large size physical memory buffer to a number of processes
US5987582A (en) * 1996-09-30 1999-11-16 Cirrus Logic, Inc. Method of obtaining a buffer contiguous memory and building a page table that is accessible by a peripheral graphics device
US5937063A (en) * 1996-09-30 1999-08-10 Intel Corporation Secure boot
GB9626241D0 (en) 1996-12-18 1997-02-05 Ncr Int Inc Secure data processing method and system
US6073226A (en) * 1997-03-19 2000-06-06 Microsoft Corporation System and method for minimizing page tables in virtual memory systems
JP3293760B2 (ja) * 1997-05-27 2002-06-17 株式会社エヌイーシー情報システムズ 改ざん検知機能付きコンピュータシステム
US5987604A (en) 1997-10-07 1999-11-16 Phoenix Technologies, Ltd. Method and apparatus for providing execution of system management mode services in virtual mode
US6735696B1 (en) * 1998-08-14 2004-05-11 Intel Corporation Digital content protection using a secure booting method and apparatus
US6330670B1 (en) * 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US7225333B2 (en) * 1999-03-27 2007-05-29 Microsoft Corporation Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
AU7735600A (en) * 1999-10-01 2001-05-10 Infraworks Corporation Port blocking method and system
US6477612B1 (en) * 2000-02-08 2002-11-05 Microsoft Corporation Providing access to physical memory allocated to a process by selectively mapping pages of the physical memory with virtual memory allocated to the process
US6507904B1 (en) * 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US7039801B2 (en) 2000-06-30 2006-05-02 Microsoft Corporation System and method for integrating secure and non-secure software objects
US6938164B1 (en) 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US20020066039A1 (en) * 2000-11-30 2002-05-30 Dent Paul W. Anti-spoofing password protection
US6854046B1 (en) 2001-08-03 2005-02-08 Tensilica, Inc. Configurable memory management unit
US7272832B2 (en) * 2001-10-25 2007-09-18 Hewlett-Packard Development Company, L.P. Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
US7003607B1 (en) * 2002-03-20 2006-02-21 Advanced Micro Devices, Inc. Managing a controller embedded in a bridge
US7069442B2 (en) * 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US6986006B2 (en) 2002-04-17 2006-01-10 Microsoft Corporation Page granular curtained memory via mapping control
US7058768B2 (en) 2002-04-17 2006-06-06 Microsoft Corporation Memory isolation through address translation data edit control

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271254A (ja) * 2002-03-08 2003-09-26 Internatl Business Mach Corp <Ibm> 認証システム、ファームウェア装置、電気機器、及び認証方法

Also Published As

Publication number Publication date
AU2003231070A1 (en) 2003-11-03
CN1647011A (zh) 2005-07-27
CN100339780C (zh) 2007-09-26
JP2005528677A (ja) 2005-09-22
KR20040099459A (ko) 2004-11-26
KR100921779B1 (ko) 2009-10-15
US7401358B1 (en) 2008-07-15
DE60322366D1 (de) 2008-09-04
WO2003090052A3 (en) 2004-08-12
WO2003090052A2 (en) 2003-10-30
EP1495394B1 (en) 2008-07-23
US7496966B1 (en) 2009-02-24
EP1495394A2 (en) 2005-01-12
US7603550B2 (en) 2009-10-13
US20040210760A1 (en) 2004-10-21

Similar Documents

Publication Publication Date Title
JP4762494B2 (ja) セキュア実行モードを実行可能なcpuおよび高信頼(セキュア)通信路を介して接続されたセキュリティサービスプロセッサを含むコンピュータシステム
US7334123B2 (en) Computer system including a bus bridge for connection to a security services processor
US7603551B2 (en) Initialization of a computer system including a secure execution mode-capable processor
JP4564756B2 (ja) セキュア実行モードで動作し得るプロセッサを含むコンピュータシステムの初期化方法
US7130951B1 (en) Method for selectively disabling interrupts on a secure execution mode-capable processor
US7210009B2 (en) Computer system employing a trusted execution environment including a memory controller configured to clear memory
US9934139B2 (en) Virtualization in a multi-host environment
US7165135B1 (en) Method and apparatus for controlling interrupts in a secure execution mode-capable processor
US7640543B2 (en) Memory isolation and virtualization among virtual machines
US8850098B2 (en) Direct memory access (DMA) address translation between peer input/output (I/O) devices
US7146477B1 (en) Mechanism for selectively blocking peripheral device accesses to system memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090818

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091118

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091126

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091218

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100118

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100421

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20100902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110210

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110218

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110310

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110408

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110511

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110608

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees