(57)【特許請求の範囲】
【請求項１】
ソフトウエアプログラムを実行するための情報処理手段と、
前記ソフトウエアプログラムによって要求されたトラステッド・プラットフォーム・モジュール（ＴＰＭ）命令（ＴＰＭ命令）を受信し、少なくともＴＰＭネットワークパケットを生成することによって、管理ファームウエアを用いて前記ＴＰＭ命令を処理するための管理エンジン手段と、
前記ソフトウエアプログラムによって要求された前記ＴＰＭ命令を、メモリマップド入出力（ＭＭＩＯ）トラップに傍受し、前記ＴＰＭ命令を前記管理エンジン手段に転送するメモリコントローラと、
前記ＴＰＭネットワークパケットを、処理させるべく、外部のリモートＴＰＭに送信するネットワーク・インタフェースと、
を備える装置。
【請求項２】
ディセーブル状態のローカルのＴＰＭをさらに備え、
前記ディセーブル状態のローカルのＴＰＭは、イネーブル状態の場合には、前記ＴＰＭ命令を処理する、
請求項１に記載の装置。
【請求項３】
前記ネットワーク・インタフェースは、無線ローカルエリア・ネットワーク（ＷＬＡＮ）接続である、
請求項１又は２に記載の装置。
【請求項４】
前記ネットワーク・インタフェースは、有線接続である、
請求項１又は２に記載の装置。
【請求項５】
前記管理エンジンは、ベースボード管理コントローラ（ＢＭＣ）である、
請求項１から４までの何れか一項に記載の装置。
【請求項６】
前記ソフトウエアプログラムによって要求された前記ＴＰＭ命令は、メモリマップド入出力（ＭＭＩＯ）の０ｘＦＥＤ４００００から０ｘＦＥＤ４ＦＦＦＦまでの範囲のアドレスに対応するレジスタにアクセスするよう試みられる、
請求項１から５までの何れか一項に記載の装置。
【請求項７】
ソフトウエアプログラムを実行するための情報処理手段と、
前記ソフトウエアプログラムによって要求されたトラステッド・プラットフォーム・モジュール（ＴＰＭ）命令（ＴＰＭ命令）を受信し、少なくともＴＰＭネットワークパケットを生成することによって、管理ファームウエアを用いて前記ＴＰＭ命令を処理するための管理エンジン手段と、
前記ソフトウエアプログラムによって要求された前記ＴＰＭ命令を、メモリマップド入出力（ＭＭＩＯ）トラップに傍受し、前記ＴＰＭ命令を前記管理エンジン手段に転送するメモリコントローラと、
前記ＴＰＭネットワークパケットを、処理させるべく、外部のリモートＴＰＭに送信するネットワーク・インタフェースと、
前記ネットワーク・インタフェースと結合された管理コンソールと、
を有するプラットフォームを備え、
前記管理コンソールは、
受信したＴＰＭネットワークパケットを格納するパケット記憶部と、
前記受信したＴＰＭネットワークパケットに関する情報を格納するルーティング情報記憶部と、
前記受信したＴＰＭネットワークパケットをルーティングするルーティングロジックと、
を有し、
前記受信したＴＰＭネットワークパケットに関する情報は、前記ＴＰＭネットワークパケットの転送先に関する情報を含む、
システム。
【請求項８】
前記管理コンソールは、
前記受信したＴＰＭネットワークパケットを処理するローカルのＴＰＭをさらに有し、
処理された前記受信したＴＰＭネットワークパケットに関連する応答を、前記プラットフォームに送信する、
請求項７に記載のシステム。
【請求項９】
前記管理コンソールと結合され、前記管理コンソールによって受信されたＴＰＭネットワークパケットを処理するＴＰＭサーバをさらに備え、
前記ＴＰＭサーバは、処理された前記受信したＴＰＭネットワークパケットに関連する応答を、前記管理コンソールに送信する、
請求項７または８に記載のシステム。
【請求項１０】
前記管理コンソールは、前記受信したパケットからアドレス情報を取り除き、前記ＴＰＭネットワークパケットを前記ＴＰＭサーバに転送する前に新たなアドレス情報を追加する、
請求項９に記載のシステム。
【請求項１１】
ディセーブル状態のローカルのＴＰＭをさらに備え、
前記ディセーブル状態のローカルのＴＰＭは、イネーブル状態の場合には、前記ＴＰＭ命令を処理する、
請求項７から１０までの何れか一項に記載のシステム。
【請求項１２】
前記管理エンジンは、ベースボード管理コントローラ（ＢＭＣ）である、
請求項７から１１までの何れか一項に記載のシステム。
【請求項１３】
プラットフォームのメモリコントローラによって、メモリマップド入出力（ＭＭＩＯ）トラップが発生した場合に、ローカルのトラステッド・プラットフォーム・モジュール（ＴＰＭ）が、前記プラットフォーム上で動作するソフトウエアプログラムからのＴＰＭ命令要求を処理することができないと判断する段階と、
前記ＴＰＭ命令要求を、管理エンジンに転送する段階と、
前記プラットフォームの前記管理エンジンにおいて、前記ＴＰＭ命令要求を受信する段階と、
前記ＴＰＭ命令要求を、前記プラットフォームの外部のＴＰＭに送信可能にするべく、前記ＴＰＭ命令要求をパケット化する段階と、
パケット化された前記ＴＰＭ命令要求を処理すべく、パケット化された前記ＴＰＭ命令要求を、前記プラットフォームの外部のＴＰＭを認識している外部エンティティに送信する段階と、
パケット化された前記ＴＰＭ命令要求に関連する情報を、応答と関連付けて格納する段階と、
を有する方法。
【請求項１４】
パケット化された前記ＴＰＭ命令要求に対する応答を受信する段階と、
前記応答を、パケット化された前記ＴＰＭ命令要求に関連付ける段階と、
前記応答を、前記要求を発行した前記ソフトウエアプログラムに転送する段階と、
をさらに有する、
請求項１３に記載の方法。
【請求項１５】
パケット化された前記ＴＰＭ命令要求に関連する前記情報は、
パケット化された前記ＴＰＭ命令要求の複製と、
パケット化された前記ＴＰＭ命令要求の送信先となるエンティティの識別情報と、
前記要求を発行したソフトウエアプログラムの識別情報と、
を含む、
請求項１３または１４に記載の方法。
【請求項１６】
パケット化された前記ＴＰＭ命令要求に関連する前記情報は、
パケット化された前記ＴＰＭ命令要求の識別情報と、
パケット化された前記ＴＰＭ命令要求の送信先となるエンティティの識別情報と、
前記要求を発行したソフトウエアプログラムの識別情報と、
を含む、
請求項１３から１５までの何れか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書の開示は、広く、情報処理の分野に関連する。特に、保護された（secured）情報処理に関連する。
【背景技術】
【０００２】
ローカルまたはリモートのマイクロコンピュータ上で実行される金融および個人に関するトランザクションの増加に伴い、「信頼できる（trusted）」または「保護された（secured）」マイクロプロセッサ環境の設立が勢いづいている。これらの環境が解決しようとする課題は、プライバシーの喪失、または、データの破損(corrupted)もしくは悪用(abused)に関する課題である。ユーザは、自己の個人的なデータが公になることを望まない。ユーザは、また、不正なトランザクション（inappropriate transaction）において、自己のデータが改ざんまたは使用されることを望まない。これらの例には、医療記録の意図しない公開、または、オンラインの銀行もしくはその他の保管場所（depository）から貨幣資産（funds）を電子的に盗まれること（electronic theft）が含まれる。同様に、コンテンツプロバイダは、デジタルコンテンツ（例えば、音楽その他の音声信号、映像信号、または、広くその他のタイプのデータ）が、許可なく複製されないように、保護しようとする。
【０００３】
そのような信頼できるマイクロプロセッサ・システムの構成要素の１つは、ＴＣＧのＴＰＭ規格第１．２版（TCG TPM Specification, Version 1.2）に開示されているような、トラステッド・プラットフォーム・モジュール（ＴＰＭ）であってよい。
【図面の簡単な説明】
【０００４】
添付の図面の形態において、本発明の一例が説明される。本発明は、添付の図面の形態に限定されない。
【０００５】
【図１】信頼できるコンピューティング（trusted computing）を実現するためのシステムの一例を示す。
【図２】コンピュータが、ＴＰＭ命令を利用したパケット（TPM command based packet）を生成する方法の実施形態の一例を示す。
【図３】マネージメント・コンソールによって、ＴＰＭネットワークの着信パケット（incoming TPM network packet）を処理する方法の実施形態の一例を示す。
【図４】ＴＰＭサーバによって、ＴＰＭネットワークの転送パケット（forwarded TPM network packet）を処理する方法の実施形態の一例を示す。
【図５】マネージメント・コンソールによって、応答パケット（response packet）を処理する方法の実施形態の一例を示す。
【図６】コンピュータに、レスポンスＴＰＭパケットの処理を要求する方法の実施形態の一例を示す。
【図７】一実施形態に係るシステムのブロック図を示す。
【図８】一実施形態に係るシステムのブロック図を示す。
【図９】一実施形態に係るシステムのブロック図を示す。
【発明を実施するための形態】
【０００６】
以下の記載において、信頼できる実行（trusted execution）技術について説明する。以下の記載において、本発明の実施形態についてより完全な理解を提供する目的で、ロジックの実装、ソフトウエア・モジュールの割り当て、動作の詳細といった、多数の具体的詳細が説明される。しかしながら、そのような具体的詳細に関する記載がなくとも、本発明の実施形態を実施できることは、当業者にとって当然である。他の例では、本発明の実施形態が曖昧になることを防止する目的で、制御構造、ゲート・レベル回路（gate level circuit）およびソフトウエアの完全な命令シーケンスの詳細については示していない。本明細書の記載に接した当業者であれば、過度の実験を実施することなく、適切な機能を実現することができるであろう。
【０００７】
情報処理システムは、中央演算処理装置（ＣＰＵ）、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリー・メモリ（ＲＯＭ）などのハードウエア資源を有してよい。処理システムは、基本入出力システム（ＢＩＯＳ）、仮想マシンモニタ（ＶＭＭ）および１以上のオペレーティング・システム（ＯＳ）などのソフトウエア資源を有してよい。コンピュータシステムが起動または再起動された場合、コンピュータシステムは、ＢＩＯＳを読み込み、その後、ＶＭＭを読み込んでよい。ＶＭＭは、ホストＯＳの上層で動作してもよく、ＶＭＭは、事実上ホストＯＳとして機能するコントローラを有するハイパーバイザとして実現されてもよい。ＶＭＭは、１以上の仮想マシン（ＶＭ）を作成してよい。ＶＭは、異なるゲストＯＳ、または、同一のゲストＯＳの異なるインスタンスを起動してよい。仮想化に適した処理システムのある特定の態様（aspect）を管理する設備をＶＭＭに提供するゲストＯＳは、サービスＯＳと呼ばれる場合がある。このようにして、ＶＭＭは、多数のＯＳおよびアプリケーションが、異なるパーティションの中で動作することを可能にする。
【０００８】
情報処理システム中のＣＰＵは、仮想化のためのハードウエアサポート（例えば、命令およびデータ構造）を提供してよい。異なるタイプのプロセッサは、異なる仮想化サポート機能を提供してよい。処理システムは、インテル社により開発されたラ・グランデ・テクノロジ（ＬＴ）、または、インテル（登録商標）社のトラステッド・エクゼキューション・テクノロジ（ＴＸＴ）と呼ばれる機能を含んでもよい。ＬＴ／インテル（登録商標）ＴＸＴ機能は、ＶＭＭの保護された計測（measurement）および起動（launching）を提供する。異なるタイプのプロセッサは、ＶＭＭの保護された計測および起動を提供する異なる機能を提供する。
【０００９】
図１は、信頼できるコンピューティング（trusted computing）を実現するシステムの一例を示す。図示された例において、このシステムは、３つの主要な構成要素を備える。すなわち、コンピュータ（信頼できるプラットフォーム）１０１（例えば、デスクトップ、ラップトップ、ネットブックなど）と、管理コンソール（ＭＧＭＴコンソール）１２３と、ＴＰＭサーバ１２５とを備える。しかしながら、いくつかの実施形態において、これらの構成要素の１以上が併合されてよい（例えば、ＴＰＭサーバ１２５と管理コンソール１２３とが１つのエンティティであってよい。）。他の実施形態において、これらの構成要素およびそれらの従属要素（sub-component）は、付加的なエンティティに散在する。
【００１０】
コンピュータ１０１は、命令を処理することで、ソフトウエアプログラムを実行する少なくとも１つのＣＰＵコア１０３を有する。上記の命令は、ＴＰＭを用いて信頼できる実行を引き起こすような命令を含む。いくつかの実施形態において、ＣＰＵコア１０３は、プラットフォーム１０１のソフトウエアの少なくとも一部のハッシュ値を生成する命令を実行する。上記のソフトウエアには、オペレーティング・システム、アプリケーションおよび仮想マシンが含まれる。ハッシュ値は、利用可能であればローカル（locally）のＴＰＭ１２１に格納される。または、ローカルのＴＰＭ１２１が利用可能でなければ、外部の（externally）ＴＰＭ１２１に格納される。
【００１１】
ＣＰＵコア１０３は、メモリコントローラ１０５に結合される。いくつかの実施形態において、メモリコントローラ１０５は、ＣＰＵコア１０３と同一のダイの上に配される（統合メモリコントローラ）。他の実施形態において、メモリコントローラは、ＣＰＵコア１０３を覆うダイの外側に配される（例えば、ノースブリッジに配される。）。
【００１２】
メモリコントローラ１０５は、また、管理エンジン（ＭＥ）１０７を有する。ＭＥ１０７は、ＭＥファームウエア１１５を実行する、マイクロコントローラまたはその他のプロセッサである。一実施形態において、ＭＥ１０７は、ベースボード管理コントローラ（ＢＭＣ）である。ＭＥ１０７は、通常は補助電源で動作し、全てではないかもしれないが、大部分の電力状態において利用できる。他の実施形態において、マイクロコントローラＭＥが、ＢＭＣと一緒に用いられる。
【００１３】
ＭＥファームウエア１１５は、フラッシュメモリ１１１に格納される。ＭＥ１０７、ＭＥファームウエア１１５およびＭＥデータ記憶部１１７を介して、コンピュータ１０１のリモート・アウトオブバンド（ＯＯＢ）管理が利用できる。例えば、リモートアプリケーションが、プラットフォームのセットアップおよび設定を実行してよい。一実施形態において、コア１０３を有するＣＰＵは、結合されたチップセットがＭＥ１０７の機能（ＴＰＭコマンドの転送のような保護された計算機能等）を利用することができるか否かを示す（複数の）レジスタを有する。ＭＥファームウエア１１５は、ＭＥ１０７上で実行され、実行中にデータを記憶する目的で、ＣＰＵ１０３に結合されたＲＡＭの一部を使用してよい。ＭＥファームウエア１１５は、後で詳しく述べられるように、ローカルにＴＰＭ１２１がない場合に、要求を処理する段階と、ＴＰＭ要求（ＭＥデータ記憶部１１７またはその他の記憶装置との間でのＴＰＭ要求に関する情報の読み書き）のストレージ管理者として機能する段階と、（リースが取得された場合、リースの期間が満了した場合など）ネットワーク・インタフェース１１９中の専用のフィルタを用いて、ＯＳのＤＨＣＰリースを追跡する段階と、ネットワーク・インタフェース１１９と情報をやり取りして、接続を維持または獲得する段階と、チップセットの電力状態を読み取る段階と、読み取った電力状態を利用する段階のうちの、１以上の段階を実行する。読み取った電力状態を利用する段階において、シャットダウンまたは電源投入の時期を決定する（いくつかの実施形態においては、ＭＥ１０７およびＭＥデータ記憶部１１７のようなその他の構成要素の電源を制御する。）、ＭＥデータ記憶部１１７またはその他の不揮発性メモリ（例えば、ウイルス防止保護バージョン）に、ソフトウエアのバージョン番号を格納する、侵入してくる脅威を率先して妨害する（システム防御）、特定の（desired）ソフトウエア・エージェント（例えば、ウイルス防止）が起動していることを検証する、ソフトウエア・エージェントが起動していない場合に管理コンソールに警告する、主電源がシャットダウンしている場合でもプラットフォームの資産（asset）を見つけ出す、および／または、ＭＥ１０７を用いて典型的なＴＰＭプロセスによってＴＰＭ命令をローカルのＴＰＭ１２１に送ることに、読み取られた電力状態が利用される。
【００１４】
ＭＥデータ記憶部１１７は、ＯＥＭが設定可能なパラメータ（OEM-configurable parameter）、ならびに／または、セットアップおよび設定パラメータ（setup and configuration parameter）、例えば、パスワード、ネットワーク設定、証明書、アクセス制御リスト（ＡＣＬ）などを含む。ＭＥデータ記憶部１１７は、また、その他の設定情報、例えば、アラートのリスト、システム防衛ポリシー、起動時にＢＩＯＳ１１３によって取得されたハードウエア設定などを含んでもよい。ＢＩＯＳ１１３は、起動環境の計測（ＭＬＥ）に利用されうる、保護された起動プロシージャーを格納する。
【００１５】
メモリコントローラ１０５は、入出力制御ハブ（ＩＣＨ）または周辺機器制御ハブ（ＰＣＨ）１０９に結合される。ＩＣＨ／ＰＣＨ１０９は、キーボード、ＰＣＩ装置、ＰＣＩエクスプレス装置などの入出力装置と結合する。通常、ＩＣＨと結合される装置の１つは、無線接続（例えば、ＷＬＡＮ）または有線接続（例えば、イーサネット（登録商標））のようなネットワーク・インタフェース１１９である。
【００１６】
いくつかの実施形態において、ＭＥが補助電源で動作することができることに加えて、ＢＩＯＳ１１３、ＭＥファームウエア１１５、ＭＥデータ記憶部１１７、ＴＰＭ１２１および／またはネットワーク接続部１１９もまた、補助電源で動作してもよい。また、ＩＣＨ／ＰＣＨ１０９の一部または全部も、補助電源で動作してもよい。
【００１７】
加えて、ＴＰＭ１２１は、コンピュータ１０１に含まれてもよい。一実施形態において、ＴＰＭ１２１は、トラステッドコンピューティング団体（ＴＣＧ）によって、ＴＣＧのＴＰＭ規格バージョン１．２として定義されている。ＴＰＭ１２１は、暗号鍵と、ソフトウエアおよびポリシーのハッシュ値とを格納する。ＴＰＭ１２１は、計測値（メジャーメント）のリポジトリと、その計測値を利用する仕組みとを提供する。システムは、現在のプラットフォームの設定の報告と、慎重に扱うべき（sensitive）情報の長期間にわたる保護との両方に、メジャーメントを利用する。ＴＰＭ１２１は、プラットフォーム設定レジスタ（ＰＣＲ）にメジャーメントを格納する。ＰＣＲは、決まった大きさのスペースに、数に制限なく、メジャーメントを記憶することができる記憶領域を提供する。ＰＣＲは、暗号学的ハッシュに固有の特性によって、この機能を提供する。外部エンティティは、ＰＣＲレジスタに直接書き込むことはない。外部エンティティは、ＰＣＲコンテンツを「拡張」する。拡張操作は、ＰＣＲの現在の値を取得し、新しい値を追加し、当該合計値に暗号学的ハッシュを実行する。ハッシュの結果が、ＰＣＲの新しい値となる。暗号学的ハッシュの特性の１つに、順序に依存すること（order dependent）がある。これは、ＡＢの順にハッシュした場合と、ＢＡの順にハッシュした場合とでは、異なる結果が生成されることを意味する。この順序付け特性（ordering property）により、ＰＣＲコンテンツは、メジャーメントの順序を示すことができる。
【００１８】
以前に示唆されているように、ＴＰＭ１２１は、ハードウエア擬似乱数生成器に加えて、暗号鍵の保護された生成およびそれらの使用の制限のための設備を提供する。それは、リモート認証、シールされたストレージ（sealed storage）などの機能も含む。ＴＰＭ１２１は、また、ハードウエア・デバイスの認証に用いられてもよい。それぞれのＴＰＭ１２１は、それが製造されたときに焼き付けられた、固有で秘密のＲＳＡ鍵を有するので、プラットフォームを認証することができる。例えば、ＴＰＭ１２１は、ＴＰＭ１２１へのアクセスを求めているシステムが、期待されたシステムであることの検証に用いられる。
【００１９】
コンピュータ１０１のその他の構成要素は、図示されていない。例えば、コンピュータ１０１は、メモリコントローラに結合されたランダム・アクセス・メモリ（ＲＡＭ）、グラフィックプロセッサ、大容量の不揮発性ストレージ（機械的ストレージまたは半導体ストレージ）などを備えてよい。いくつかの実施形態において、大容量の不揮発性ストレージ（または、その他の不揮発性ストレージ）は、起動制御ポリシーを保持する。起動制御ポリシーは、信頼できるプラットフォームの要素を定義する。これらのポリシーは、例えば、ＯＥＭまたはＶＡＲによって書き込まれ、保護領域に存在する。これらのポリシーのハッシュ値は、ＴＰＭ１２１に格納され、システムの起動中に検証される。
【００２０】
通常、トラステッド・エクゼキューションをサポートするコンピュータは、ＴＰＭデコード空間と呼ばれる、ローカルのＴＰＭ１２１のために設けられたアドレス空間の一部分を有する。例えば、いくつかの実施形態において、このアドレス空間は、メモリマップドＩ／Ｏ（ＭＭＩＯ）の0xFED40000から0xFED4FFFFまで（0xFED4FFFFを含む。）の範囲に存在してよい。通常、この範囲への全てのアクセスは、ＴＰＭ１２１に転送される。コンピュータ１０１上で動作するホストのソフトウエアは、ＴＣＧ（トラステッドコンピューティング団体）の規格（standard）に定められた形式に従って、命令を形成する。この範囲に位置づけられた（located）レジスタに、読み取りおよび書き込み命令を発行することで、命令が実行される。基本的に、ソフトウエアは、命令のパッケージを用意して、この範囲のペイロード・レジスタに書き込み、コマンド・レジスタに値を書き込む。例えば、ドライバが、標準のＴＰＭメモリアドレス（例えば、0xFED4XXXX）に、命令を書き込み、命令はＭＭＩＯトラップによって取り込まれ、その後、ＴＰＭ１２１に送られる。
【００２１】
あいにく、ＴＰＭ１２１のようなローカルのＴＰＭを使用することには、不利益もある。潜在的な不利益の一つとして、以下の事態が発生して、ＴＰＭ１２１を利用する何らかのプログラムによって暗号化されたデータが、アクセス不能または回復不能になるかもしれないことが挙げられる。（ａ）ＴＰＭに関連するパスワードが失われて、暗号化されたデータがアクセス不能になる。（ｂ）暗号化されたデータを格納するドライブの故障、および／または、（ｃ）プラットフォームが機能しなくなり、移行不可な鍵に関連する何らかのデータが失われる。また、ＴＰＭ１２１の所有が移転された場合に、ＴＰＭ１２１は、暗号化されたデータをアクセスすることが意図されていなかった人々に開示してしまうかもしれない。
【００２２】
オプションのローカルのＴＰＭ１２１を有しないプラットフォーム、または、ローカルのＴＰＭ１２１を使用しないことを選択したプラットフォームのいずれかにおいては、管理コンソール１２３および／またはＴＰＭサーバ１２５が、ローカルのＴＰＭ１２１の代わりに用いられる。通常、管理コンソール１２３は、プラットフォーム１０１を遠隔管理する管理者（administrator）に使用され、サーバのようなリモート・コンピュータであってよい。いくつかの実施形態において、これは、インテル（登録商標）社のアクティブ・マネジメント・テクノロジ（ＡＭＴ）を利用して実現される。また、管理コンソール１２３は、潜在的に「リモート」なＴＰＭ（potential "remote" TPM）として動作する場合、プラットフォームからのＴＰＭネットワークパケット要求を格納するパケット記憶部１２９と、その要求を発行したコンピュータ１０１に関する情報およびその要求を処理すべく選択されたＴＰＭサーバ１２５に関する情報を格納するルーティング情報記憶部１３１とを有してよい。例えば、ルーティング情報記憶部１３１に格納されているレコードは、パケットの記憶場所、要求の時刻、パケットが受信された時刻、パケットが処理された（ＴＰＭサーバに送信した、または、内部で処理した）時刻、（パケットが送信された場合には）パケットの送信先のＴＰＭサーバの識別情報、および／または、要求を出したプラットフォーム（requesting platform）の識別情報に関するフィールドのうちの１以上を含んでよい。いくつかの実施形態において、管理コンソール１２３は、ＴＰＭ１３３を有する。管理コンソールは、ＴＰＭネットワークパケットを適切なＴＰＭ（ローカルまたは別のサーバ）に送り、要求を出したプラットフォームに戻すルーティングロジック（ハードウエア、ソフトウエアまたはファームウエア）を有する。通常、ネットワーク・インタフェース１１９と管理コンソール１２３との間の通信チャネルは、ＳＳＬ／ＩＰＳＥＣまたはその他の保護プロトコルによって保護される。加えて、通信チャネルは、（データセンターに応じて）ＴＣＰ／ＩＰを用いて、または、ネイティブにイーサネット（登録商標）を介してルーティングされてもよい図示されていないが、管理コンソール１２３およびＴＰＭサーバ１２５は、ネットワーク・インタフェース、（単数または複数の）ＣＰＵコアなどを有してもよい。管理コンソール１２３は、ＴＰＭサーバ１２５およびプラットフォーム１０１の１つもしくは両方からの情報を、管理者がリモートで設定または受信するための機能を有してもよい。
【００２３】
ＴＰＭサーバ１２５は、管理コンソール１２３に結合され、管理コンソール１２３によって転送された要求を処理する少なくとも１つのＴＰＭ１２７を有する。いくつかの実施形態において、コンピュータ１０１は、管理コンソール１２３の介在なしに、ＴＰＭサーバ１２５との間で情報をやり取りする。管理コンソール１２３と情報をやり取りすることができる２以上のＴＰＭサーバ１２５が存在してもよい。同様に、コンピュータ１０１が、１以上の管理コンソール１２３との間で情報をやり取りしてもよい。図示されていないが、管理コンソール１２３およびＴＰＭサーバ１２５は、ネットワーク・インタフェース、（単一または複数の）ＣＰＵコアなどを有してもよい。
【００２４】
上記の事項を実現する処理システムは、システム管理を支援する組込み情報技術（ＥＩＴ）を有する。例えば、ＥＩＴプラットフォームは、インテル社のＴＸＴを用いたベリファイドブート（verified boot）およびＴＰＭの機能をサポートしてよい。また、プラットフォーム中の仮想マシン（ＶＭ）は、ＴＰＭのコア機能を利用してよい。そのようなＶＭは、例えば、マイクロソフト（登録商標）社のウインドウズ・ビスタ（商標）のようなユーザＯＳを実行してよい。しかしながら、従来のプラットフォームでは、ＴＰＭのセキュリティ保証を維持しながら、ハードウエアのＴＰＭを、複数のＶＭの間で共有することができない場合がある。
【００２５】
図２は、コンピュータ１０１のようなコンピュータが、ＴＰＭ命令を利用したパケットを生成する方法の実施形態の一例を示す。２０１において、コンピュータ上で動作するソフトウエアによって、ＴＰＭデコード空間にアクセスするための要求が生成される。この要求は、ＴＰＭ命令の形式であってよい。
【００２６】
２０３において、利用可能なローカルのＴＰＭがあるかどうかの決定がなされる。図１のＴＰＭ１２１のようなローカルのＴＰＭの利用可能性は、いくつかの異なった方法によって判別することができるいくつかの実施形態において、ローカルのＴＰＭは、起動（boot）時にプラットフォームに登録される。この場合において、プラットフォームは、プラットフォームに利用可能なローカルのＴＰＭが存在すること（そして、おそらくはＢＩＯＳ中で動作するようセットアップされていること）を判別している。他の実施形態において、ローカルのＴＰＭは、起動（boot）後に開始（start）され、ＯＳに登録される。他の実施形態において、ローカルのＴＰＭの利用可能性は、何らかの起動処理を経なければならないプラットフォームがなくても、ＭＥにアクセスすることができる不揮発性メモリ（例えば、ＢＩＯＳ）に格納される。例えば、ローカルのＴＰＭの存在が判別されて、適切な構成要素（例えば、ＭＥ１０７、ＭＥファームウエア１１５、ＭＥデータ１１７、ＴＰＭ１２１など）の電源が（少なくとも部分的に）オンになる。ローカルのＴＰＭを使用することができる場合には、次に、２０５において、ＴＰＭ要求がローカルのＴＰＭに送信されて処理される。この場合には、要求は、通常通りに処理される。
【００２７】
ローカルのＴＰＭを使用することができない場合には、２０７において、ＭＥが要求を受信する。例えば、ＭＥ１０７が、ＣＰＵコア１０７からの要求を受信する。いくつかの実施形態において、メモリコントローラ１０５は、要求を傍受して、当該要求をＭＥ１０７に送信する。例えば、メモリコントローラ１０５が0xFED40001に関するアクセス要求を受信した場合、メモリコントローラ１０５は、当該要求をローカルのＴＰＭ１２１に送信する代わりに、当該要求をＭＭＩＯトラップ上のＭＥ１０７に転送する。このような場合には、通常はローカルのＴＰＭ１２１と関連付けられるであろう記憶場所（location）が、ＴＰＭ１２１ではなくて、ＭＥ１０７と関連付けられる。他の実施形態において、ＭＥ１０７自身が、この傍受を実施する。
【００２８】
要求を受けて、ＭＥファームウエアは、２０９において、少なくとも内部のルーティング情報（どのＣＰＵコア、ソケットなどが当該要求を発行したのか）を格納する。この情報は、ＭＥデータ記憶部１１７に格納されてもよい。ＭＥファームウエアは、加えて、当該要求自体またはパケット化された当該要求（packetized version）（詳細は以下に述べる。）を格納してよい。例えば、ＴＰＭ命令要求、パケット化されたＴＰＭ命令要求、当該要求の時刻、パケット化された要求が送信された時刻、パケット化された要求の送信先の識別記号（アドレスまたは名称）、要求の発行元の識別記号（例えば、ソフトウエアプログラム、コア、ソケットなど）、および／または、当該要求の識別記号の１以上が格納されてよい。
【００２９】
２１１において、ＴＰＭ命令に基づいて、ネットワークパケットが生成される。例えば、ＭＥ１０７がＭＥファームウエア１１５を実行して、ＴＰＭ命令を生成する。いくつかの実施形態において、このパケットは、ＴＣＰ／ＩＰペイロードの一部を少なくとも構成するＴＰＭ命令を含むＴＣＰ／ＩＰパケットであってよい。ＴＰＭサーバの識別子が判明しているのであれば、ペイロード情報は、さらにＴＰＭサーバの識別子を含んでよい。ローカルネットワークにおいて、それは、ＴＣＰ／ＩＰパケットではないかもしれない。
【００３０】
２１３において、ＭＥが、コンピュータのネットワーク・インタフェースの１つに、この生成されたパケットを転送する。例えば、ＭＥファームウエア１１５を利用するＭＥ１０７は、ＮＩＣ、ＷＬＡＮなどに、ＴＰＭネットワークパケットを転送する。上述の通り、ネットワーク・インタフェースは、ＴＰＭネットワークパケットをどこに送信すべきか（管理コンソールまたはＴＰＭサーバのアドレス）を判別する必要がある。いくつかの実施形態において、この情報は、例えば起動前のプロビジョニング処理の間にセットアップされる。例えば、プロビジョニング処理中に、コンピュータが、リモート設定（remote configuration）を可能にするように設定される。これにより、プラットフォーム上でいかなるソフトウエアでも実行できるように設定しておく必要性がなくなる。これらのパラメータは、通常、リモート設定の下で、管理者によってセットアップされる。
【００３１】
次に、２１５において、ネットワーク・インタフェースが、処理中に利用可能な実装（implementation）に応じて、管理コンソールまたはＴＰＭサーバの何れかに、ＴＰＭネットワークパケットを転送する。その結果、元の（original）ＴＰＭ命令が「仮想化」され、異なる場所（location）で処理される。
【００３２】
図３は、マネージメント・コンソールによって、ＴＰＭネットワークの着信パケットを処理する方法の実施形態の一例を示す。３０１において、管理コンソールが、何らかのプラットフォームから、処理されるべきＴＰＭネットワークパケットを受信する。例えば、管理コンソール１２３は、ネットワーク・インタフェース１１９を介して、プラットフォーム１０１からのＴＰＭネットワークパケットを受信する。
【００３３】
次に、３０３において、管理コンソールが、管理コンソールが当該ＴＰＭネットワークパケットを処理することができるか否かを判断する。例えば、ＴＰＭネットワークパケットを少なくとも部分的にデコードして、当該パケットがＴＰＭコマンドを含むか否かを判断した後、管理コンソール１２３は、当該要求を処理するローカルのＴＰＭ１３３の有無を判断する。管理コンソールは、（単一または複数の）ＴＰＭが、当該要求を処理するための処理能力（bandwidth）を有するか否かを判断してもよい。いくつかの実施形態において、管理コンソールは、管理コンソールのパケット記憶部に当該パケットを一時的に格納して、当該パケットを処理する前に、管理コンソールのルーティング情報記憶部に、ＴＰＭネットワークパケットに関するエントリを作成する。当該要求を処理することができる場合、３０５において、管理コンソールが、ＴＰＭネットワークパケットの当該命令を処理して、当該要求を発行したプラットフォームに応答を返信する。
【００３４】
管理コンソールが当該パケットを処理することができない場合（利用可能なローカルのＴＰＭがない場合）、次に、３０７において、管理コンソールが、（例えば、記憶部１２９に）ＴＰＭネットワークパケットを格納して、それに関連するルーティング情報記憶部（例えば、記憶部１３１）に、ＴＰＭネットワークパケットに関するエントリを作成する。例えば、ＴＰＭネットワークパケットがパケット記憶部１２９に格納され、当該ＴＰＭネットワークパケットの送信元、転送先などを詳述するエントリが作成されるであろう。上記において、ＴＰＭネットワークパケットが格納される場合について説明されているけれども、いくつかの実施形態において、パケットの一部だけ、例えば、ＴＰＭコマンドが、格納される。
【００３５】
３０９において、管理コンソールが、適切なＴＰＭサーバにＴＰＭネットワークパケットを転送する。管理コンソールは、送信しているネットワーク・インタフェースのＭＡＣアドレス、および／または、ネットワーク管理者によって設定されたその他の静的情報に基づいて、対象のＴＰＭサーバの場所を用いて設定されてよい。いくつかの実施形態において、ＴＰＭネットワークパケットを転送するときに、以前のルーティング情報（例えば、ＴＣＰ／ＴＰ）が奪取され、要求を処理すべく選択されたＴＰＭサーバに関連する新しいルーティング情報に置き換えられる。また、いくつかの実施形態において、転送されたパケットと元の（original）パケットとを関連付ける識別子が、当該転送されたパケットに取り付けられる。さらに、管理コンソールの識別子が、当該転送されたパケットに含まれてもよい。例えば、パケット記憶部１２９における当該パケットの記憶場所（location）が、当該転送されたパケットに含まれる。この情報は、管理コンソール１２３が、当該転送されたパケットに対するＴＰＭサーバ１２５からの応答を関連付けるのに役立つ。
【００３６】
図４は、ＴＰＭサーバによって、ＴＰＭネットワークの転送パケットを処理する方法の実施形態の一例を示す。４０１において、ＴＰＭサーバが、管理コンソールから、ＴＰＭネットワークパケットを受信する。例えば、ＴＰＭサーバ１２５が、管理コンソール１２３から、ＴＰＭネットワークパケットを受信する。ここで、当該ＴＰＭネットワークパケットの送信元は、プラットフォーム１０１である。
【００３７】
次に、４０３において、ＴＰＭサーバが、ＴＰＭネットワークパケットからのＴＰＭ命令を処理する（実行する）。ＴＰＭサーバは、要求を発行したプラットフォームにとって、まるでそれがローカルにあるかのように、同様に、ＴＰＭ命令を処理する。ＴＰＭ命令に、それに関連付けられた応答（リターンデータ、ステータスなど）が含まれる場合、４０５において、ＴＰＭサーバが、応答をパケット化して、それを管理サーバに送信する。いくつかの実施形態において、応答パケットは、元の要求に関連付けられた識別子を含む。例えば、転送されたパケットが１以上の識別子を含む場合、これらの識別子が送り返される。いくつかの実施形態において、応答パケットは、元の要求を発行したコンピュータを識別する。
【００３８】
図５は、マネージメント・コンソールによって、応答パケットを処理する方法の実施形態の一例を示す。５０１において、管理コンソールが、ＴＰＭサーバからのＴＰＭネットワークパケットに対する応答を受信する。例えば、管理コンソール１２３は、管理コンソール１２３がＴＰＭサーバ１２５に転送したＴＰＭネットワークパケットに対する応答を受信する。
【００３９】
５０３において、管理コンソールが、元のパケットに関連するルーティング情報を読み取る。いくつかの実施形態において、元のパケットも、読み取られる。ＴＰＭサーバからの応答には、送信先アドレスとして、要求の送信元アドレス（source address）が付与される。５０５において、管理コンソールが、適切な要求を出したプラットフォームに、当該応答を転送する。
【００４０】
図６は、コンピュータに、レスポンスＴＰＭパケットの処理を要求する方法の実施形態の一例を示す。６０１において、要求を出したプラットフォームが、ＴＰＭ応答（TPM response）を受信する。例えば、ネットワーク・インタフェース１１９が、ＴＰＭ応答パケットを受信する。６０３において、ネットワーク・インタフェースは、ＭＥファームウエアに、この応答を転送する。
【００４１】
６０５において、（内部のルーティング情報があれば、）ＭＥファームウエアが内部のルーティング情報を読み出して、発行された要求に対する応答を関連付けた後、内部ペイロードとして当該応答を転送する。例えば、ＭＥファームウエア１１５は、要求を発行したＣＰＵコア１０３の識別情報を読み出して、それをコアに送信する。関連付けは、１以上の保存された情報に基づいて実施される。１以上の保存された情報としては、例えば、要求それ自体、要求の発行元の識別情報、要求の識別情報などがある。コア（またはソフトウエア）のプロスペクティブ（prospective）から、上記の応答は、ＴＰＭのデコード範囲への読み出し／書き込みに対する応答として現れるだろう。元の要求を発行したソフトウエアは、また、それゆえに、応答を受信するだろう。遅延時間がなければ、ソフトウエアは、ＴＰＭ実装の背後で動作する細部に気づかない。いくつかの実施形態において、元の要求もまた、読み取られる。
【００４２】
上記の記載の大部分において、要求を出したコンピュータとＴＰＭサーバとの間の仲介手段として管理コンソールを利用していたけれども、いくつかの実施形態において、当該コンピュータのアドレスが分かっている場合（例えば、アドレスが転送されたパケットの中に含まれている場合）には、ＴＰＭサーバが、要求を出したコンピュータに、直接、応答を返信する。
【００４３】
これは、多くの利点を有する。そのような利点の１つとして、ＴＰＭの設定ミスによりプラットフォームが見当たらなくなった場合に、復帰（recover）できることが挙げられる。プラットフォーム上で動作しているソフトウエアが、設定ミスをした、または、ＴＰＭを不良もしくは無効な状態にした場合、プラットフォームをシャットダウンして、ＴＰＭを復帰させて、その後、プラットフォームを再起動させることができる。ＴＰＭを復帰させることができない場合、別のＴＰＭをアクティブにし、セットアップしてよい。また、管理コンソールは、新しいＴＰＭに要求をリダイレクトするようにプログラムされてよい。
【００４４】
管理コンソールおよび関連するソフトウエアは、ＴＰＭを使用しているプラットフォームから独立して、ＴＰＭ上で実行されてよい。加えて、他の管理／維持アクティビティが、オフラインのＴＰＭ上で実行されてよい。
【００４５】
別の利点として、本来の（primary）ＴＰＭとともに、バックアップのＴＰＭを利用することができることが挙げられる。  主となる（main）ＴＰＭ（例えば、ローカルのＴＰＭまたは本来のＴＰＭサーバ）をオフラインにする必要がある場合、管理コンソールは、メンテナンスによって主となるＴＰＭがシャットダウンしている間、バックアップのＴＰＭに、要求をリダイレクトするようにプログラムされてよい。
【００４６】
加えて、プラットフォームの場所（location）に関係なく、ＴＰＭに格納されたポリシーまたはデータを利用することができる。例えば、ＶＭポリシーの何れかがＴＰＭに格納されており、ＶＭを新しいノードに移動する場合、ＴＰＭがプラットフォームから分離されているので、ＶＭＭ／ハイパーバイザは、ポリシーに、即時にアクセスすることができる。
【００４７】
次に、図７を参照する。図７は、本発明の一実施形態に係るシステム７００のブロック図を示す。システム７００は、１以上の処理要素７１０と、処理要素７１５とを有する。処理要素７１０および処理要素７１５は、画像メモリ制御ハブ（ＧＭＣＨ）７２０と結合される。図７において、追加の処理要素７１５は破線で記載され、オプションであることが示されている。
【００４８】
それぞれの処理要素は、シングルコアであってもよく、そうではなく、複数のコアを有してもよい。  処理要素は、処理コアに加えて、その他のオンダイ（on-die）の要素を、オプションとして有してもよい。オンダイ（on-die）の要素としては、統合メモリコントローラ、および／または、統合Ｉ／Ｏ制御ロジックを例示することができる。また、少なくとも１つの実施形態において、処理要素の（単数または複数の）コアはマルチスレッド化されていてもよく、処理要素は、その中に、コアごとに２以上のハードウエアのスレッドコンテキスト（hardware thread context ）を有してよい。
【００４９】
図７は、ＧＭＣＨ７２０がメモリ７４０に結合されてもよく、例えば、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）であってもよいことを示す。少なくとも１つの実施形態に関して、ＤＲＡＭは、不揮発性キャッシュと関連してよい。
【００５０】
ＧＭＣＨ７２０は、チップセットまたはチップセットの一部であってよい。ＧＭＣＨ７２０は、プロセッサ７１０およびプロセッサ７１５と、プロセッサ７１０およびプロセッサ７１５の間のコントロール・インタラクションと、メモリと、情報をやり取りしてよい。ＧＭＣＨ７２０は、プロセッサ７１０およびプロセッサ７１５とシステム７００の他の要素との間の加速バス・インタフェース（accelerated bus interface）の役割を果たしてもよい。少なくとも１つの実施形態に関して、ＧＭＣＨ７２０は、フロントサイド・バス（ＦＳＢ）７９５のようなマルチドロップバスを介して、プロセッサ７１０およびプロセッサ７１５との間で情報をやり取りしてよい。
【００５１】
さらに、ＧＭＣＨ７２０は、表示装置７４０（例えば、フラットパネル・ディスプレー）と結合される。ＧＭＣＨ７２０は、統合グラフィックアクセラレータを有してよい。ＧＭＣＨ７２０は、さらに、入出力（Ｉ／Ｏ）コントローラハブ（ＩＣＨ）７５０と結合されてよい。ＩＣＨ７５０は、システム７００と様々な周辺機器とを結合するのに用いられる。図７の実施形態の例には、外部グラフィックス装置７６０が示されている。外部グラフィックス装置７６０は、他の周辺装置７７０と一緒にＩＣＨ７５０に結合される、個別の（discrete）グラフィックス装置であってよい。
【００５２】
あるいは、システム７００の中に、追加の、または、異なる処理要素が存在してもよい。例えば、（単数または複数の）追加的な処理要素７１５は、プロセッサ７１０と同様の（単数または複数の）追加的なプロセッサ、プロセッサ７１０とは異機種（heterogeneous）もしくは非対称（asymmetric）の（単数または複数の）追加的なプロセッサ、アクセラレータ（例えば、グラフィックスアクセラレータ、デジタル・シグナル・プロセッサ（ＤＳＰ）ユニット）、フィールド・プログラマブル・ゲート・アレイ、または、他のいかなる処理要素を含んでもよい。物理リソース７１０と物理リソース７１５との間には、アーキテクチャ、マイクロアーキテクチャ、熱、電力消費特性などを含む多様な実際の測定基準の観点から、様々な相違点が存在し得る。これらの相違点は、処理要素７１０および処理要素７１５の間の非対称性（asymmetry）および不均質性（heterogeneity）として、現れる。少なくとも１つの実施形態に関して、様々な処理要素７１０および処理要素７１５が、同一のダイ・パッケージの中に存在してよい。
【００５３】
次に、図８を参照する。図８は、本発明の一実施形態に係る第２のシステム８００のブロック図を示す。図８に示されるように、マルチプロセッサ・システム８００は、二地点間（point-to-point）相互接続のシステムであり、二地点間相互接続８５０を介して結合された、第１の処理要素８７０および第２の処理要素８８０を有する。図８に示されるように、処理要素８７０および処理要素８８０のそれぞれは、第１のプロセッサコアおよび第２のプロセッサコア（すなわち、プロセッサコア８７４ａおよびプロセッサコア８７４ｂと、プロセッサコア８８４ａおよびプロセッサコア８８４ｂ）を含むマルチコア・プロセッサであってよい。
【００５４】
あるいは、１以上の処理要素８７０および処理要素８８０は、プロセッサ以外の要素であってよく、例えば、アクセラレータまたはフィールド・プログラマブル・ゲート・アレイであってよい。
【００５５】
処理要素８７０および処理要素８８０という２つの処理要素しか図示されていないけれども、本発明の範囲がそれらに限定されないことは明らかである。他の実施形態において、ある特定のプロセッサの中に、１以上の追加的な処理要素が存在してもよい。
【００５６】
第１の処理要素８７０は、メモリコントローラハブ（ＭＣＨ）８７２と、二地点間（Ｐ−Ｐ）インタフェース８７６と、Ｐ−Ｐインタフェース８７８とをさらに有してよい。同様に、第２の処理要素８８０は、ＭＣＨ８８２と、Ｐ−Ｐインタフェース８８６と、Ｐ−Ｐインタフェース８８８とを有してよい。プロセッサ８７０およびプロセッサ８８０は、二地点間（ＰｔＰ）インタフェース回路８７８およびＰｔＰインタフェース回路８８８を利用して、ＰｔＰインタフェース８５０を介してデータを交換してよい。図８に示されるように、ＭＣＨ８７２およびＭＣＨ８８２は、プロセッサをそれぞれのメモリ、すなわち、メモリ８３２およびメモリ８３４に結合する。メモリ８３２およびメモリ８３４は、それぞれのプロセッサにローカルに取り付けられたメインメモリの一部であってよい。
【００５７】
プロセッサ８７０およびプロセッサ８８０は、二地点間インタフェース回路８７６、二地点間インタフェース回路８９４、二地点間インタフェース回路８８６および二地点間インタフェース回路８９８を用いて、個別のＰｔＰインタフェース８５２およびＰｔＰインタフェース８５４を介して、チップセット８９０との間でお互いにデータをやり取りしてよい。チップセット８９０は、高性能なグラフィックス・インタフェース８３９を介して、高性能なグラフィックス回路８３８とデータをやり取りしてよい。発明の実施形態は、任意の数のプロセッサコアを含む任意のプロセッサの中にあってもよく、図８のＰｔＰバス・エージェントのそれぞれの中にあってもよい。一実施形態において、何らかのプロセッサコアが、ローカルキャッシュメモリ（図示されていない。）を含んでもよく、または別の方法で、ローカルキャッシュメモリ（図示されていない。）に関連してもよい。また、両方のプロセッサとｐ２ｐ相互接続を介して接続され、両方のプロセッサの外側にあるいずれかのプロセッサの中に、共有キャッシュ（図示されていない。）が含まれていてもよい。これにより、両方のプロセッサの1つのプロセッサが省電力モードになった場合に、いずれか一方の、または、両方のプロセッサのローカルキャッシュ情報を、共有キャッシュに格納することができる。
【００５８】
第１の処理要素８７０および第２の処理要素８８０は、それぞれ、Ｐ−Ｐ相互接続８７６、Ｐ−Ｐ相互接続８８６およびＰ−Ｐ相互接続８８４を介して、チップセット８９０と結合されてよい。図８に示されるように、チップセット８９０は、Ｐ−Ｐインタフェース８９４およびＰ−Ｐインタフェース８９８を有する。さらに、チップセット８９０は、チップセット８９０と高性能グラフィックスエンジン８３８とを結合するインタフェース８９２を有する。一実施形態において、バス８３９を用いて、グラフィックスエンジン８３８とチップセット８９０とが結合されてよい。また、二地点間相互接続８３９が、これらの要素を結合してもよい。
【００５９】
同様に、チップセット８９０は、インタフェース８９６を介して、第１のバス８１６と結合されてよい。本発明の範囲はこれに限定されるものではないが、一実施形態において、第１のバス８１６は、周辺要素相互接続（ＰＣＩ）バス、ＰＣＩエクスプレス・バスまたは別の第３世代Ｉ／Ｏ相互接続バスであってよい。
【００６０】
図８に示されるように、第１のバス８１６と第２のバス８２０とを結合するバスブリッジ８１８に加えて、様々なＩ／Ｏ装置８１４が、第１のバス８１６と結合されてよい。一実施形態において、第２のバス８２０は、ピン数の少ない（ＬＰＣ）バスであってよい。例えば、キーボード／マウス８２２、通信装置８２６およびデータ記憶ユニット８２８を含む様々な装置が、第２のバス８２０と結合されてよい。データ記憶ユニット８２８は、例えば、ディスクドライブまたはその他の大容量記憶装置であり、一実施形態において、コード８３０を格納してよい。さらに、オーディオＩ／Ｏ８２４が、第２のバス８２０に結合されてもよい。他のアーキテクチャもよいことに留意されたい。例えば、図８の二地点間アーキテクチャの代わりに、システムは、マルチドロップバスまたは同様の他のアーキテクチャを実装してもよい。
【００６１】
次に、図９を参照する。図８は、本発明の一実施形態に係る第３のシステム９００のブロック図を示す。図８および図９中の類似の要素には、類似する参照番号を付している。図９の他の特徴が不明瞭になることを抑制する目的で、図８のいくつかの特徴が、図９から削除されている。
【００６２】
図９に示すように、処理要素８７０および処理要素８８０は、それぞれ、統合メモリと、Ｉ／Ｏ制御ロジック（ＣＬ）８７２またはＩ／Ｏ制御ロジック８８２とを有してよい。少なくとも１つの実施形態に関して、ＣＬ８７２およびＣＬ８８２は、図７および図８に関連して説明されたようなメモリコントローラハブ・ロジック（ＭＣＨ）を有してよい。加えて、ＣＬ８７２およびＣＬ８８２は、Ｉ／Ｏ制御ロジックを有してもよい。図９に示すように、メモリ８３２およびメモリ８３４が、ＣＬ８７２およびＣＬ８８２に結合されるだけでなく、Ｉ／Ｏ装置９１４もまた、ＣＬ８７２およびＣＬ８８２に結合されてよい。レガシーＩ／Ｏ装置９１５は、チップセット８９０に結合される。
【００６３】
本明細書に開示されたメカニズムの実施形態は、ハードウエア、ソフトウエア、ファームウエアまたはそれらの組み合わせによって実現されてよい。本発明の実施形態は、プログラマブル・システム上で動作するコンピュータプログラムとして実現されてもよい。プログラマブル・システムは、少なくとも１つのプロセッサと、データ記憶システム（揮発性、不揮発性メモリ、および／または、記憶要素）と、少なくとも１つの入力装置と、少なくとも１つの出力装置とを有してよい。
【００６４】
図８に記載されたコード８３０のようなプログラムコードは、実行されると、本明細書に開示された機能を実行するためのデータを入力して、出力情報を生成してよい。それに応じて、本発明の実施形態には、本発明の実施形態に係る演算を実行するための命令を含む機械可読記憶媒体（machine-readable media）、または、ＨＤＬのような、構造物、回路、装置、プロセッサ、および／または、本明細書に記載されたシステムの特徴を定義する設計データを含む機械可読記憶媒体も含まれる。そのような実施形態は、プログラム製品と呼ばれる場合がある。
【００６５】
そのような機械可読記憶媒体は、これに限定されるものではないが、機械または装置によって製造または形成された粒子の有形配置を含んでよい。機械可読記憶媒体は、ハードディスクのような記憶媒体を含んでもよく、フロッピィーディスク（登録商標）、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、書換可能なコンパクトディスク（ＤＣＤ−ＲＷ）、光磁気ディスクのような他のいかなるタイプのディスクを含んでもよく、読み込み専用メモリ（ＲＯＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）のようなランダム・アクセス・メモリ（ＲＡＭ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、消去・プログラム可能型読み取り専用メモリ（ＥＰＲＯＭ）、フラッシュメモリ、電気的消去・プログラム可能型読み取り専用メモリ（ＥＥＰＲＯＭ）のような半導体装置を含んでもよく、磁気カードもしくは光学カード、または、電子的な命令を格納するのに適した媒体であれば、他のいかなるタイプの媒体であってもよい。
【００６６】
出力情報は、公知の方法で、１以上の出力装置に適用されてよい。出力情報を１以上の出力装置に適用する目的で、処理システムは、例えば、デジタル・シグナル・プロセッサ（ＤＳＰ）、マイクロコンピュータ、特定用途向け集積回路（ＡＳＩＣ）またはマイクロプロセッサのようなプロセッサを有する何らかのシステムを備えてよい。
【００６７】
プログラムは、高次の手続き型プログラミング言語またはオブジェクト指向型プログラミング言語を用いて実装され、処理システムと情報をやり取りしてよい。プログラムは、必要であれば、アッセンブリー言語または機械語を用いて実装されてもよい。つまり、本明細書に記載されたメカニズムは、特定のプログラミング言語の範囲に限定されるものではない。ともかく、言語は、コンパイラ型言語またはインタープリタ型言語であってよい。
【００６８】
少なくとも１つの実施形態の１以上の特徴は、機械可読媒体に格納された、典型的なデータ（representative data）によって実現されてよい。典型的なデータは、プロセッサの内部の様々なロジックの典型となるものであり、機械によって読み込まれると、機械に本明細書に記載された技術を実行させるためのロジックを生成させる。そのような表現（representation）は、「ＩＰコア」として知られており、有形の機械可読媒体に格納され、実際にロジックまたはプロセッサを作成する製造機械にロードすべく、様々な消費者または製造設備に提供されてよい。
【００６９】
以上の記載は、本発明の好ましい実施形態を例示することを目的としている。以上の説明から、特に、成長が早く、更なる進歩を予見することが容易でない技術領域においては、当業者によって、本発明の原理を逸脱することなく、添付の特許請求の範囲に記載された事項およびその均等物の範囲内で、本発明の配置（arrangement）および細部が修正されうることは明らかである。
【図１】
0005503594.tif 000002
【図２】
0005503594.tif 000003
【図３】
0005503594.tif 000004
【図４】
0005503594.tif 000005
【図５】
0005503594.tif 000006
【図６】
0005503594.tif 000007
【図７】
0005503594.tif 000008
【図８】
0005503594.tif 000009
【図９】
0005503594.tif 000010