拡張可能ファームウェアインタフェースシステムEFIシステムが実装されている場合に、非タグ付きメモリにあるオペレーティングシステムと同じアクセスレベルを有するEFIランタイムコードおよびデータを含むオブジェクトと、前記オブジェクトに対する複数のオブジェクト記述子とを、格納している前記EFIランタイムコードおよびデータに前記オペレーティングシステム内の非ファームウェアエージェントがアクセスすることを阻止できるタグ付きメモリに格納する工程と、前記非ファームウェアエージェントが、前記オブジェクトが格納されている前記タグ付きメモリにアクセスを試みている場合に、前記非ファームウェアエージェントがアクセスを試みている前記オブジェクトに関連づけられた前記複数のオブジェクト記述子が含む、前記タグ付きメモリへのアクセス権に関連する情報に基づいて、前記非ファームウェアエージェントが前記タグ付きメモリにアクセスできるか否かを判断する工程とを備え、前記判断する工程において、前記非ファームウェアエージェントが前記タグ付きメモリにアクセス可能と判断された場合には、前記非ファームウェアエージェントからのアクセスオペレーションを処理し、前記判断する工程において、前記非ファームウェアエージェントが前記タグ付きメモリにアクセス可能ではないと判断された場合には、前記非ファームウェアエージェントからの前記タグ付きメモリへのアクセスを阻止する方法。前記非ファームウェアエージェントは、誤ったコーラーおよび悪意のあるコーラーのうちの1つを含む請求項1に記載の方法。前記複数のオブジェクト記述子のそれぞれは、前記タグ付きメモリへのアクセス権を示す情報を含む請求項1または2に記載の方法。前記タグ付きメモリは、前記複数のオブジェクト記述子であるか否かを示すタグを含む請求項1から3のいずれか一項に記載の方法。前記非ファームウェアエージェントが前記タグ付きメモリにアクセスを試みている場合に、前記タグ付きメモリへのアクセス権違反があると、インタラプトを生成する工程をさらに備える請求項1から4のいずれか一項に記載の方法。前記複数のオブジェクト記述子を前記タグ付きメモリに格納する工程の前に、タグ付きメモリが利用可能であるか否かを判断する工程と、前記タグ付きメモリが利用可能である場合に、前記EFIシステムが実装されているか否かを判断する工程とをさらに備え、前記タグ付きメモリにアクセスできるか否かを判断する工程の前に、1つ以上の呼び出しポイントを非タグ付きメモリから前記タグ付きメモリに供給する工程をさらに備え、前記複数のオブジェクト記述子は、前記タグ付きメモリへのポインタを含む請求項1から5のいずれか一項に記載の方法。複数のオブジェクト記述子を含み、システムボードに結合されるタグ付きメモリと、ハードウェア論理と、を含むシステムであって、前記ハードウェア論理は、非タグ付きメモリにあるオペレーティングシステムと同じアクセスレベルを有するEFIランタイムコードおよびデータを含むオブジェクトと、前記オブジェクトに対する複数のオブジェクト記述子とを、格納している前記EFIランタイムコードおよびデータに前記オペレーティングシステム内の非ファームウェアエージェントがアクセスすることを阻止できるタグ付きメモリに格納し、前記非ファームウェアエージェントが、前記オブジェクトが格納されている前記タグ付きメモリにアクセスを試みている場合に、前記非ファームウェアエージェントがアクセスを試みている前記オブジェクトに関連づけられた前記複数のオブジェクト記述子が含む、前記タグ付きメモリへのアクセス権に関連する情報に基づいて、前記非ファームウェアエージェントが前記タグ付きメモリにアクセスできるか否かを判断し、前記非ファームウェアエージェントが前記タグ付きメモリにアクセス可能と判断した場合には、前記非ファームウェアエージェントからのアクセスオペレーションを処理し、前記非ファームウェアエージェントが前記タグ付きメモリにアクセス可能ではないと判断した場合には、前記非ファームウェアエージェントからの前記タグ付きメモリへのアクセスを阻止するシステム。前記非ファームウェアエージェントは、誤ったコーラーおよび悪意のあるコーラーのうちの1つを含む請求項7に記載のシステム。前記複数のオブジェクト記述子のそれぞれは、前記タグ付きメモリへのアクセス権を示す情報を含む請求項7または8に記載のシステム。前記タグ付きメモリは、前記複数のオブジェクト記述子であるか否かを示すタグを含む請求項7から9のいずれか一項に記載のシステム。前記ハードウェア論理は、前記非ファームウェアエージェントが前記タグ付きメモリにアクセスを試みている場合に、前記タグ付きメモリへのアクセス権違反があると、インタラプトを生成する請求項7から10のいずれか一項に記載のシステム。前記ハードウェア論理は、前記タグ付きメモリが利用可能であるか否かを判断し、前記タグ付きメモリが利用可能である場合に、EFIシステムが実装されているか否かを判断し、1つ以上の呼び出しポイントを非タグ付きメモリからタグ付きメモリに供給し、前記複数のオブジェクト記述子は、前記タグ付きメモリへのポインタを含む請求項7から11のいずれか一項に記載のシステム。複数の命令が格納される機械可読媒体であって、前記複数の命令は実行されると前記機械に、拡張可能ファームウェアインタフェースシステムEFIシステムが実装されている場合に、非タグ付きメモリにあるオペレーティングシステムと同じアクセスレベルを有するEFIランタイムコードおよびデータを含むオブジェクトと、前記オブジェクトに対する複数のオブジェクト記述子とを、格納している前記EFIランタイムコードおよびデータに前記オペレーティングシステム内の非ファームウェアエージェントがアクセスすることを阻止できるタグ付きメモリに格納するオペレーションと、前記非ファームウェアエージェントが、前記オブジェクトが格納されている前記タグ付きメモリにアクセスを試みている場合に、前記非ファームウェアエージェントがアクセスを試みている前記タグ付きメモリに関連づけられた前記複数のオブジェクト記述子が含む、前記タグ付きメモリへのアクセス権に関連する情報に基づいて、前記非ファームウェアエージェントが前記タグ付きメモリにアクセスできるか否かを判断するオペレーションとを行わせ、前記判断するオペレーションにおいて、前記非ファームウェアエージェントが前記タグ付きメモリにアクセス可能と判断された場合には、前記非ファームウェアエージェントからのアクセスオペレーションを処理させ、前記判断するオペレーションにおいて、前記非ファームウェアエージェントが前記タグ付きメモリにアクセス可能ではないと判断された場合には、前記非ファームウェアエージェントからの前記タグ付きメモリへのアクセスを阻止させる機械可読媒体。前記非ファームウェアエージェントは、誤ったコーラーおよび悪意のあるコーラーのうちの1つを含む請求項13に記載の機械可読媒体。前記複数のオブジェクト記述子のそれぞれは、前記タグ付きメモリへのアクセス権を示す情報を含む請求項13または14に記載の機械可読媒体。前記タグ付きメモリは、前記複数のオブジェクト記述子であるか否かを示すタグを含む請求項13から15のいずれか一項に記載の機械可読媒体。前記非ファームウェアエージェントがアクセスを試みている場合に前記タグ付きメモリへのアクセス権違反があると、インタラプトを生成するオペレーションをさらに行わせる請求項13から16のいずれか一項に記載の機械可読媒体。前記複数のオブジェクト記述子を前記タグ付きメモリに格納するオペレーションの前に、タグ付きメモリが利用可能であるか否かを判断するオペレーションと、前記タグ付きメモリが利用可能である場合に、前記EFIシステムが実装されているか否かを判断するオペレーションとをさらに行わせ、前記タグ付きメモリにアクセスできるか否かを判断するオペレーションの前に、1つ以上の呼び出しポイントを非タグ付きメモリから前記タグ付きメモリに供給するオペレーションをさらに行わせ、前記複数のオブジェクト記述子は、前記タグ付きメモリへのポインタを含む請求項13から17のいずれか一項に記載の機械可読媒体。同様の参照番号は対応する部分を示す図面を参照する。以下の説明において、本願の一部を形成し、且つ、幾つかの実施形態を説明する添付図面を参照する。他の実施形態を使用してもよく、また構造的および動作的な変更を加えてもよい。図2は、特定の実施形態によるコンピュータデバイス200の細部を示す。コンピュータデバイス200例、ホストコンピュータは、1つ以上の中央演算処理ユニットCPU204すなわち、プロセッサ、揮発性メモリ206、不揮発性ストレージ208例、磁気ディスクドライブ、光ディスクドライブ、テープドライブなど、および1つ以上のネットワークアダプタ240を含む。1つ以上のネットワークアダプタ240は、通信路270例、ネットワークに結合されるとも言える。メモリ206は、OSカーネル212を含むオペレーティングシステム210を格納する。メモリ206はさらに、EFIランタイムコンポーネント230を格納する。特定の実施形態では、EFIランタイムコンポーネント230は、ファームウェアとして実装される。特定の他の実施形態では、EFIランタイムコンポーネント230は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの一部の組み合わせとして実施されうる。メモリ206の一部は、タグ付きメモリ232である。タグ付きメモリ232は、プレOSファームウェアによりポピュレートされ、EFIランタイムドライバのタイプであるドライバイメージを含むメモリとして説明しうる。タグ付きメモリ232は、オブジェクト記述子233を含む。オブジェクト記述子233は、オペレーション例、非ファームウェアエージェントがタグ付きメモリにアクセスすることを阻止するを実行することのできるスマートメモリとして説明しうる。メモリ206の一部は非タグ付きメモリ例、オペレーティングシステム210およびOSカーネル212は非タグ付きメモリ内にあるである。メモリ206はさらに、キャッシュアズRAMCacheasRAM234を含む。1つ以上のドライバ220例、ストレージドライバまたはネットワークドライバと、1つ以上のアプリケーションプログラム224がメモリ206に格納されてもよく、また、ネットワーク270を介してリモートコンピュータデバイス例、ホストコンピュータまたはストレージシステムに対してパケットを伝送または取り出しすることができる。コンピュータデバイス200は、メインフレーム、サーバー、パーソナルコンピュータ、ワークステーション、ラップトップ、ハンドヘルドコンピュータ、電話機デバイス、ネットワークアプライアンス、仮想化デバイス、ストレージコントローラなどといった任意の好適なコンピュータデバイスを含みうる。任意の好適なCPU204およびオペレーティングシステム210を使用しうる。メモリ206内のプログラムおよびデータは、メモリ管理オペレーションの一部としてストレージ208内にスワップされうる。ネットワーク270は、たとえば、ストレージエリアネットワークSAN、ローカルエリアネットワークLAN、広域ネットワークWAN、インターネット、およびイントラネットなどといった任意のタイプのネットワークでありうる。各ネットワークアダプタ240は、ネットワークアダプタ240のハードウェアとして実装される様々なコンポーネントを含む。各ネットワークアダプタ240は、ネットワーク270を介してデータパケットを送受信することができる。各ドライバ220は、メモリ206内で実行し、また、各ネットワークアダプタ240と通信し、オペレーティングシステム210と各ネットワークアダプタ240との間をインタフェースするためのネットワークアダプタ240固有コマンドを含む。各ネットワークアダプタ240またはドライバ220は、伝送制御プロトコルTCPおよび/またはインターネットプロトコルIP、インターネットスモールコンピュータシステムインタフェースiSCSIIETFRFC2347、2003年2月、ファイバーチャネル米国規格協会ANSIX3.269-199X、改訂012版、2995年12月4月、または任意の他の好適なトランスポート層プロトコルといった、トランスポート層内にラップされるパケットに含まれるメッセージコンテンツを処理するトランスポートプロトコル層といった、パケットを処理する論理を実装する。ストレージ208は、内部ストレージデバイス、または、付属或いはネットワークアクセス可能なストレージを含みうる。ストレージ208内のプログラムは、メモリ206内にロードされ、CPU204により実行されうる。入力装置250は、CPU204にユーザ入力を供給するよう使用され、キーボード、マウス、ペン-スタイラス、マイクロホン、タッチディスプレイスクリーン、または任意の好適な作動または入力メカニズムを含みうる。出力装置252は、ディスプレイモニタ、プリンタ、ストレージなどのように、CPU204、または他のコンポーネントから転送された情報をレンダリングすることができる。様々な構造および/またはバッファ図示せずは、メモリ206内に存在するか、または、特定の実施形態では、メモリ206とは別個のストレージユニット内に位置付けられうる。特定の実施形態では、EFIランタイムコンポーネント230と、オブジェクト記述子233を有するタグ付きメモリ232は、コンピュータデバイス200のシステムボード上の集積回路コンポーネントとして実施されうる。したがって、EFIランタイムコンポーネント230と、オブジェクト記述子233を有するタグ付きメモリ232は、システムボードに結合されるとも言える。代替実施形態では、EFIランタイムコンポーネント230と、オブジェクト記述子233を有するタグ付きメモリ232は、コンピュータシステム200のシステムボード上の拡張カードスロットに挿入されうる拡張カード上の集積回路コンポーネントとして実施されうる。したがって、EFIランタイムコンポーネント230と、オブジェクト記述子233を有するタグ付きメモリ232は、拡張ボードに結合されるとも言える。図3は、特定の実施形態による、EFIランタイムドライバイメージが保護される方法を示す。図3では、オペレーティングシステム210は、リング0310のアクセスレベルを含む。オペレーティングシステムOSカーネル320、ハードウェアアブストラクションレイヤ322すなわち、HAL.DLL、およびサービス呼び出し324は、リング0310のアクセスレベルを有する。さらに、タグ付きメモリ326内の実行可能な拡張可能ファームウェアインタフェースEFIランタイムドライバイメージEFIランタイムコードおよびデータを含むは、オペレーティングシステム300の最も特権のあるオペレーティングモードであるリング0において、ともに置かれる。特に、プラットフォームファームウェア350は、EFIランタイムドライバ3360、EFIランタイムドライバ2362、EFIランタイムドライバ3364を含む。EFIラインタイムドライバ360、362、および364のイメージは、タグ付きメモリ326内の実行可能なEFIランタイムドライバイメージに、ともに置かれるすなわち、コピーされる。ハードウェアデバイス370からのデータ380も、タグ付きメモリ326内の実行可能なEFIランタイムドライバイメージに、ともに置かれるすなわち、コピーされる。図3では、EFIランタイムドライバイメージがリング0310のアクセスレベルにあるタグ付きメモリ326に格納されているので、OSカーネル320における誤ったまたは悪意のあるコンポーネント例、オペレーティングシステムにおけるバグは、EFIランタイムドライバ360、362、364、または、タグ付きメモリ326内の実行可能なEFIランタイムドライバイメージ内の他のコードおよびデータを破損することはできない。しかし、OSカーネル320からのEFIランタイムコードの有効な起動が行われうる。したがって、図3は、実施形態が、EFIランタイムコードおよびデータを破損しないよう保護する方法を示す。図4-7は、特定の実施形態による新たなCPU機能を示す。図4は、特定の実施形態によるタグ付きメモリの使用の一例を示す。凡例490は、サンプルタグとその意味を示す。4つのタグを示すが、他のタグも実施形態の範囲内である。中央演算処理ユニットCPU400は、制御ユニット410と、算術論理演算ユニットALU412を含む。特殊レジスタ420は、オブジェクト記述子であることを示すタグ423を有するスタック記述子レジスタ422と、スタックポインタSPレジスタ424と、オブジェクト記述子であることを示すタグ427を有するデータ記述子レジスタ426と、オブジェクト記述子であることを示すタグ429を有するコード記述子レジスタ428と、命令ポインタ430を含む。汎用レジスタ440は、オブジェクト記述子であることを示すタグ443を有するオブジェクト記述子442と、初期化されていないレジスタまたはメモリワードであることを示すタグ445を有する非初期化要素444と、初期化されたレジスタまたはメモリワードであることを示すタグ447を有するデータ446を含む。メモリ470は、スタック472、データ474、およびコード476を含む。メモリ470はさらにタグ480を含む。タグ480は、特殊レジスタ420および汎用レジスタ440に関連付けられるタグに対応する。図5は、特定の実施形態によるオブジェクト記述子500とタグ付きメモリ570を示す。オブジェクト記述子500は、タグ付きメモリ570内、任意のCPUのレジスタ上、および仮想メモリVM内のどこにおかれてもよい。オブジェクト記述子500は、タグ510例、タグビットを含み、アクセス権512、オブジェクトサイズ514、およびメモリ570へのポインタ516を供給することにより、1つのオブジェクトの記述をメモリに入れる。タグ510は、記述子500がオブジェクト記述子であることを示す。オブジェクト記述子500は、任意のサイズチェックなしのVMのページごとのコントロールに比べて高級言語セマンティクスに近い、読み出しR、書き込みW、実行Xに対しファイングレインアクセスコントロールを供給する。特定の実施形態では、トラステッドコンピューティングベースTCBハードウェアおよびソフトウェアコンポーネントの両方を有するだけが、オブジェクト記述子500の内容を初期化し、変更しうる。トラステッドコンピューティングベースは、信頼されるべき最小量のコードとして説明しうる例、これらの初期のオブジェクト記述子を設定する場合、TCBは初期化ブートファームウェアを含みうる。アプリケーションは、たとえば、ロード、ストア、ジャンプ、および呼び出しなどのためにそのアプリケーションが利用可能なオブジェクト記述子を介してメモリ570に直接的および間接的にアクセスしうる。特定の実施形態においてハードウェアは各アクセスを制御し、アクセス権またはオブジェクトサイズ違反がある場合にはインタラプトを生成する。図6は、特定の実施形態による、メモリ570内に格納されるEFIイメージ600を示す。特定の実施形態では、EFIイメージは、ポータブルエグゼクタブルおよびオブジェクトの共通ファイル形式PortableExecutableandCommonObjectFileFormat:PE/COFF実行ファイルである。様々なオブジェクト記述子をEFIイメージの様々な部分に割り当てしうる。一例として、EFIイメージ600は、プレOS、EFIのブートサービスフェーズの間に起動され、OSカーネル212と同格に存在し続けるRuntimeServicesefi実行ファイルでありうる。図7は、特定の実施形態によるタグ付きメモリの使用のもう1つの例を示す。図7では、中央演算処理ユニットCPU700は、制御ユニット710と、算術論理演算ユニットALU712を含む。汎用レジスタ740は、オブジェクト記述子であることを示すタグ743を有するオブジェクト記述子742と、初期化されていないレジスタまたはメモリワードであることを示すタグ745を有する非初期化要素744と、初期化されたレジスタまたはメモリワードであることを示すタグ747を有するデータ746を含む。メモリ770は、コード、データ、オブジェクト記述子、および非初期化部分を含む。メモリ770はさらに、タグ780を含む。図8は、特定の実施形態による、EFIランタイムコードおよびデータを保護するようEFIランタイムコンポーネント230により実行される論理を示す。制御は、工程800において、例、電源スイッチがオンの状態であったためシステムが再起動することにより開始する。システムとは、コンピューティングプラットフォームを指す。工程802では、システムは初期化される。工程804では、EFIランタイムコンポーネント230は、タグ付きメモリ232が利用可能であるか否かを判断する。利用可能である場合は、処理は工程806に進み、利用可能ではない場合は、処理は工程812に進む。工程806では、EFIランタイムコンポーネント230は、EFIシステムが実装されているか否かを判断する。実装されている場合は、処理は工程808に進み、実装されていない場合は、処理は工程812に進む。工程808では、EFIランタイムコンポーネント230は、EFIランタイムコードおよびデータに対するオブジェクト記述子を割り当てる。各オブジェクト記述子は、それがオブジェクト記述子であることを示すタグを含む。工程808の処理には、EFIランタイムコンポーネント230が各レジスタを初期化して、そのレジスタが初期化されたか、初期化されていないかを示すか、またはオブジェクト記述子を格納するタグを含むことが含まれる。工程810では、EFIランタイムコンポーネント230は、ランタイム時に使用するために、非タグ付きメモリからの1つ以上の呼び出しポイントをタグ付きメモリに供給する。たとえば、図3では、ハードウェアアブストラクションレイヤ322は、非タグ付きメモリ内にあるが、実行可能EFIランタイムドライバイメージ326は、タグ付きメモリ内にあるので、サービス呼び出し324は、非タグ付きメモリからタグ付きメモリへの呼び出しポイントとして説明しうる。呼び出しポイントは、EFIランタイムサービス呼び出しといったようにパブリックに記述される関数呼び出しとして説明しうる。工程812では、EFIランタイムコンポーネント230は、プレオペレーティングシステム処理またはブートシステム処理を完了する。したがって、工程800-812は、ブートフェーズを表し、一方、工程814-822は、ランタイムフェーズを表す。工程814では、1つ以上のオブジェクト記述子233は、非ファームウェアエージェントがタグ付きメモリ232へのアクセスを試みているか否かを判断する。非ファームウェアエージェントは、プラットフォームファームウェア/プラットフォームROMからロードされていないコードとして説明しうる。非ファームウェアエージェントは、以下に限定されないが、OSエグゼクティブまたはカーネルモードドライバ/サービスの一コンポーネントを含みうる。非ファームウェアエージェントがタグ付きメモリ232へのアクセスを試みている場合は、処理は工程816に進む。非ファームウェアエージェントがタグ付きメモリ232へのアクセスを試みていない場合は、処理は工程822に進む。工程816では、1つ以上のオブジェクト記述子233が、アクセスされるタグ付きメモリ232に関連付けられるオブジェクト記述子内のアクセス権に基づいて非ファームウェアエージェントがタグ付きメモリ232にアクセスすることができるか否かを判断するすなわち、タグ付きメモリ232が、EFIランタイムドライバイメージの正当なメモリロケーションであるか否かを判断する。アクセスすることができる場合は、処理は工程818に進み、アクセスすることができない場合は、処理は工程820に進む。工程818では、EFIランタイムコンポーネント230は、タグ付きメモリ232に対する非ファームウェアエージェントからのアクセスオペレーションを処理し、結果を受信し、また、その結果を戻す。特定の実施形態では、これは、EFIランタイムコンポーネント230と非タグ付きOSカーネル212間の仲介として動作するスタブすなわち、EFIランタイムコンポーネント230の一部であるEFIランタイムコードの特定の非タグ付き部分があるを介して発生する。工程820では、1つ以上のオブジェクト記述子233は、誤ったまたは悪意のある呼び出しをするコーラーcallerでありうる非ファームウェアエージェントによるタグ付きメモリ232へのアクセスを阻止する。工程822では、処理は続けられ、非ファームウェアがEFIランタイムタグ付きメモリ232へのアクセスを試みようとする場合に、処理を工程814に戻す。図9は、特定の実施形態による、EFIコンポーネントを保護する方法の一例を示す。この例では、悪意のあるドライバ3を含むスモールコンピュータシステムインタフェースSCSIカード900が、コンピュータシステムに差し込まれる可能性がある。図9の例では、EFIを実装するフレームワークは、2つの主なフェーズを含む。1つは、プレEFI初期化PEIフェーズであり、もう1つはドライバ実行環境DXEフェーズである。プレEFI初期化フェーズは、複数のPEIモジュールA、B、およびCにより行われる。ドライバ実行環境フェーズは、複数のドライバ、すなわち、DXEドライバ1およびDXEドライバ2により行われる。メモリ910のプラットフォーム初期化部は、PEIモジュールおよびDXEドライバとは別個にタグ付きメモリ内に格納されるEFIコアフレームワークを含む。EFIコアフレームワークは、EFIフレームワーク、DXEフレームワーク、およびPEIフレームワークを含む。図10は、特定の実施形態による、PEI、DXE、およびEFI実行のフェーズ1000を示す。実施形態では、PEIフレームワーク、DXEフレームワーク、およびEFIフレームワークは、タグ付きメモリ内に置かれ、一方、PEIモジュール、DXEドライバ、およびEFIアプリケーションおよびライブラリは、非タグ付き通常メモリ内に置かれる。特定の実施形態では、信頼され、TCBの一部であるプラットフォームファームウェアからのコードは、EFIランタイムタグ付きメモリ内に入れられる。これは、システムボードベンダからのコードが、第三者のアダプタカードなどからロードされるドライバから分離されることを可能にする。この同様の分離は、EFIランタイムコードがシステムボードから分離され、続けて起動される任意のEFI認識オペレーティングシステムから分離されることが可能であるようランタイムにおいても存在する。したがって、実施形態は、相手先ブランド製造者OEMといったシステムボードを供給する当事者が、ボード上のROMに入れられて出荷される当事者のコードが他のプレOSコードまたはOSにより破損/影響を受けないことを確実にすることができる。したがって、図9および10は、実施形態を、オペレーティングシステムの起動の前にファームウェアコンポーネントのフローに適用しうる方法を示す。図9では、ROM内にコアフレームワークを有し、これは、次にEFIランタイムタグ付きメモリにロードされる。図10では、フローの下半分は、タグ付き及び保護されたプレOSフレームワークコードを示す。図11は、特定の実施例による、プレブートのためのタグ付きメモリの使用を示す。制御は、システムがリセットされる工程1100において開始する。ここでは、オペレーティングモードはフラットモードすなわち、0-4GBマッピングのためのデータ/コードセットを有する保護モードに設定され、制御は、PEIフレームワークを開始するよう渡される。工程1102では、マシーンコードが実行されてキャッシュアズRAM234が有効にされる。工程1104では、一時的なページ表がキャッシュアズRAM内に作成される。工程1106では、PEIコアと、PEITCBの一部であり、タグ付きメモリ内にある、認証の実行を支援する任意のPEIモジュールPEIコンポーネントは、各PEIモジュールを試験し、また、デジタル署名により各PEIモジュールを認証する。工程1108では、PEIコンポーネントは、デジタル署名が有効なデジタル署名であるか否かを判断する。有効なデジタル署名である場合は、処理は工程1110に進み、有効なデジタル署名ではない場合は、処理は工程1112に進む。工程1110では、PEIコンポーネントは、各PEIモジュールに対してタグ付きメモリを割り当てする。工程1112では、PEIコンポーネントは、各PEIモジュールイメージハンドラを安全ではないとマークする。工程1114では、各PEIモジュールは、メインメモリを初期化するよう実行される。図12は、特定の実施例によるプレブート処理の論理を示す。特定の実施形態では、1つ以上のDXEドライバは、EFIランタイムドライバとしてロードされうる。したがって、DXEにおける認証/タグ付けは、OSの存在する実施形態をもたらす。工程1200では、DXEコア/ファウンデーションと、DXETCBの一部であり、タグ付きメモリ内にある任意のDXE認証ドライバDXEコンポーネントは、各DXEドライバを試験し、また、デジタル署名により各DXEドライバを認証する。工程1202では、DXEコンポーネントは、デジタル署名が有効なデジタル署名であるか否かを判断する。有効なデジタル署名である場合は、処理は工程1204に進み、有効なデジタル署名ではない場合は、処理は工程1206に進む。工程1204では、DXEコンポーネントは、各DXEドライバに対してタグ付きメモリを割り当てする。工程1206では、DXEコンポーネントは、DXEドライバイメージハンドラを安全ではないとマークする。工程1208では、オペレーティングシステムブート処理が続行する。実施形態は、プレブートおよびランタイムの両方で高いインテグリティのファームウェアを供給する。実施形態は、コードおよびデータを、同一の特権レベルで動作する他のコードから分離させるよう機能capabilitiesまたはタグ付きメモリを使用する。実施形態は、ROMからロードされたメモリ内イメージのインテグリティを保つのに役立つ。実施形態は、相手先ブランド製造者OEMのブートサービスコードが、誤ったプレOSアプリケーションおよびOSローダにより破損されないようにすることを可能にする。本質的に異なる要素が同じロケーションにあることは、いずれは信用および信頼性の問題につながる。特定の実施形態では、オブジェクト記述子を設定するために、図8の工程800-810の論理は、ブートフローの非常に初期、好適には、SECまたはPEIフェーズといった測定のための信頼のコアルートCoreRootofTrustforMeasurement:CRTMにおいて実行される。CRTMは、トラステッドプラットフォームモジュールTPMを開始し、トラステッドコンピューティングプラットフォームのためのトラステッドビルディングブロックTBBの一部であるコードとして説明しうる。SECは、次のように説明しうる。すなわち、システム再起動時に実行され、保護モード/キャッシュアズRAM初期化を行う非常に初期のコードとして説明しうる。EFIプレブートコアおよびランタイムを対象とするオブジェクト記述子が信頼できないコードにより不安定にされないことを確実にするようフラッシュブロックロックを使用してもよい。つまり、フラッシュメモリは、TCBが制御を他のエージェントに送るときにフラッシュは読み出し専用にされるすなわち、誰もフラッシュのコンテンツを改ざんすることができないことを確実にするようNORフラッシュのハードウェア機能を使用してロックされる。あるいは、ファームウェアに保存されたメモリ、または、初期ブートファームウェアにより供給される他の読み出し専用リソースを使用してもよい。上述したいずれの場合においても、EFIファームウェアは、オブジェクト記述子のストレージのためにファームウェアにより使用されるメモリを、オペレーティングシステムにメモリマップをリポートするよう基本入力/出力システムBIOSでのInt15hE820呼び出し詳細設定と電力のインタフェースAdvancedConfigurationandPowerInterfaceACPI仕様、改訂3.0、2004年9月2日を有するACPIメモリマップと、オペレーティングシステムが不注意にまたは悪意を持ってストアを破損することを回避するためのGetMemoryMap呼び出しを有するEFIメモリマップの両方においてファームウェア予約済みfirmwarereservedとしてマークをつける。実施形態は、プラットフォーム展開のブートサービス、プレブートフェーズの間に使用することができる。特に、信用できない、おそらく誤ったオプションROMと、プレブートアプリケーションがありえ、これらに対してプラットフォームファームウェアは保護される。オプションROMは、ホストバスアダプタHBA上のBIOS拡張またはEFIドライバすなわち、システムに差し込まれるカードとして説明しうる。それにより、独立ハードウェアベンダは、システムのブートに役立つよう使用することのできるHBAとともにコードを発送しうる。プラットフォームファームウェア/EFIはドライバをロードし、ドライバがドライバサービスをインストールすることを許可する。HBA上のドライバは、場合により信頼できない第三者からくるので、タグ付きメモリ分離を使用して、低インテグリティドライバがプレOSTCBを不安定にさせないようにすることが重要である。実施形態は、拡張性ファームウェアインタフェースフレームワークまたはフレームワーク標準に準拠して構築される任意の他のファームウェアのためにインテル登録商標プラットフォームイノベーションフレームワークのブートサービスPEIおよびDXEファウンデーションを強化する。さらに、実施形態は、以下に限定されないが、符号付フラッシュアップデート、未知のソースからのコードを実行する前のSMRAMおよびフラッシュのロック、信頼のおけるコードが起動の前にプラットフォーム権限者/所有者に既知のソースにより署名されていることの確認、トラステッドプラットフォームモジュールTPMを有するコンポーネント/トラステッドブートの測定、および任意の設定更新または変更の前のオペレータの認証を含むファームウェアデプロイメントにおける他のプラクティスとともに使用してもよい。タグ付きメモリは、独立して使用しても、または、ロバストで高いインテグリティのプラットフォームファームウェア構成の1つ以上のこれらの他のアスペクトを補完するよう使用してもよい。実施形態は、OSデータ構造を保護するよう設計されるタグ付きメモリを供給する。さらに、実施形態は、プレOSおよびランタイムファームウェア/OSランタイム分離を取り扱う。実施形態は、オペレーティングシステムにおける安全なファイルシステムまたは安全なiノードといったオペレーティングシステムコンポーネントにおける保護および分離を与える。実施形態は、この機能をプラットフォームファームウェアに活用することを可能にする。実施形態は、読み出し-書き込みデータおよびメモリ内のコードを保護するのに有用である。実施形態は、機能が、下位互換性があるように追加されることを可能にする。したがって、業界標準ファームウェアであるブートサービスおよびランタイムはともに、業界標準ファームウェアがタグ付きメモリを使用することによって有利となるよう再コンパイルされうる。実施形態は、コードのタイプ-セーフティは、分離に使用され、ソフトウェア要素はリング保護を必要としない管理ランタイム環境MRTE ́sへの適用性によりタイプ-セーフなCPUを供給する。分離のための、ソフトウェアおよび高度に定型化されたソフトウェアインタフェースに対してリング保護がないことは、EFIおよびフレームワークに基づく仕様を含む統一EFIフォーラム下の技術にも適用することができる。つまり、現在、UEFIでは、ドライバとコアプラットフォームファームウェアとは分離されない。これは、インテグリティに関する問題がある。なぜなら、システムボード上のプラットフォームファームウェアは、HBAまたはディスクからロードされたファームウェアよりも信頼され、かつ、より高いインテグリティを有するべきだからである。ハードウェア分離は、このインテグリティを保証するために必要である。OSランタイムにおいて、ページ表および他の保護ハードウェアは、OSカーネルが所有する。したがって、プラットフォームファームウェアランタイムによる使用にとっておかれる新しいタグ付きハードウェアは、より高いインテグリティEFIランタイムコードが悪意のあるまたは誤ったOSランタイムコードにより破損されないことを確実にするよう使用される。実施形態は、タグメモリ以外のリング0のコロケーションが適宜続行することを可能にする。実施形態では、リング0OSローダでさえもEFIコアを破損することができない。ランタイム時、EFIファームウェアは、ファームウェアランタイムコードおよびデータの保護をOSカーネルに委任する。実施形態では、EFIファームウェアランタイムは、プレOS処理において委任される適切なオブジェクト記述子を介して保護されることが可能である。実施形態は、EFIランタイムのタグ付きメモリの変形が、OSと共存し、OEMに対して多くのシナリオを実行することを可能にする。これらのシナリオは、今日、コードインテグリティを妥協することなくSMMにおいて実施される。実施形態は、ルートキット/OSカーネルモードマルウェアからEFIランタイムを保護する。信用とは、信頼性、安全性、機密性、インテグリティ、および可用性を含むものとする。安全性は、機密性、インテグリティ、および可用性を含むものとする。実施形態は、インテグリティに関して取り組む。したがって、信用および安全性の両方に関して取り組む。実施形態は、企業に適用することができる。企業は、マーケットセグメント例、コンピュータを購入して使用するビジネスとして説明しうる。マーケットセグメントは、信用および安全性の信頼性のアスペクトによってホームユーザとは区別される。実施形態は、メニーコアおよびマルチコアプロセッサに基づいたプラットフォームが、プラットフォームファームウェアから高インテグリティコードフローを展開する方法を有することを確実にするよう使用されうる。実施形態は、現在のソフトウェアエコシステムに影響を与えることなく悪いオプションROM、ルートキット、カーネルに対する防護を供給するために、OSコンポーネント分離のためのハードウェア機能を使用する。つまり、プラットフォームファームウェアは、これらのタグを使用しうるが、OSカーネルは、実施形態と動作するよう再コンパイル/更新される必要はない。新規のシステムボードおよびファームウェアは、旧型のOSカーネル例、Windows登録商標XPまたはWindows登録商標サーバー2003オペレーティングシステムとともに動作することができる。実施形態は、旧型および新型のオペレーティングシステムに対してファームウェア分離を供給する。これは、OEMにとっては好都合である。なぜなら各システムボードは一般的にさまざまな新旧型のオペレーティングシステムロードをサポートするからである。Intel登録商標は、米国および/または諸外国におけるインテル社の登録商標またはコモンローマークである。Windows登録商標およびVista登録商標は、米国および/または諸外国におけるマイクロソフト社の登録商標またはコモンローマークである。[追加の実施形態の詳細]上述したオペレーションは、ソフトウェア、ファームウェア、ハードウェア、あるいはそれらの任意の組み合わせを生成するよう標準プログラミングおよび/またはエンジニアリング技法を使用する、方法、装置、または、製品として実施されうる。上述したオペレーションは、コンピュータ可読媒体内に維持されるコードとして実施されうる。プロセッサは、コンピュータ可読媒体からコードを読み出ししかつ実行しうる。コンピュータ可読媒体は、磁気記憶媒体例、ハードディスクドライブ、フロッピー登録商標ディスク、テープなど、光学記憶装置CD-ROM、DVD、光ディスクなど、揮発性および不揮発性メモリ装置例、EEPROM、ROM、PROM、RAM、DRAM、SRAM、フラッシュメモリ、ファームウェア、プログラマブル論理などといった媒体を含みうる。上述したオペレーションを実施するコードは、さらにハードウェア論理例、集積回路チップ、プログラマブルゲートアレイPGA、特殊用途向け集積回路ASICなどに実施されうる。さらに、上述したオペレーションを実施するコードは、伝送信号で実施されうる。伝送信号は、空間、または、光ファイバ、銅線などといった伝送媒体を通り伝播しうる。その中にコードまたは論理が符号化される伝送信号はさらに、無線信号、衛星伝送、無線波、赤外線信号、ブルートゥース登録商標などを含みうる。その中にコードまたは論理が符号化される伝送信号は、送信局により送信され、受信局により受信されることが可能であり、伝送信号内に符号化されるコードまたは論理は、受信および送信局または装置において、ハードウェアまたはコンピュータ可読媒体において復号化され格納されうる。機械可読媒体は、その中にコードが実装されうるコンピュータ可読媒体、ハードウェア論理、および/または伝送信号を含む。上述したオペレーションの実施形態を実施するコードがその中に符号化された装置は、コンピュータ可読媒体またはハードウェア論理を含みうる。当然ながら、当業者は、本発明の範囲から逸脱することなく多くの変更をこの構成に加え、また、製品は当該技術において周知である情報担持媒体を含みうることを認識するであろう。図8、11、および12に示すオペレーションは、特定の順序で発生する特定のイベントを示す。代替実施形態では、特定のオペレーションは、異なる順序で、変更されて、または削除されて行われうる。さらに、オペレーションが上述した論理に追加され、依然として上述した実施形態と一致しうる。さらに、本願に説明したオペレーションは、逐次的に発生しても、または、特定のオペレーションは、並列で処理されてもよい。さらに、オペレーションは、単一の処理ユニットまたは分散型処理ユニットによって処理されうる。上述したさまざまな実施形態は、例示および説明のために提示された。これは、網羅的でも限定的でもない。多くの変更および変形が上述の技術の教示内容を鑑みて可能である。