(57)【要約】【課題】プラットフォームのリスタート中に、プラットフォームのＩＯ装置のハードウェア初期化を最小限にすることにより、プラットフォームの高速リセットあるいはリスタートを実行する方法およびシステムを提供する。【解決手段】プラットフォームの基本入出力システム（ＢＩＯＳ）は、ソフトウェア起動リセット・リクエスト（ＳＩＲＲ）あるいはウォーム・リセットをトラップする。ＢＩＯＳは、プラットフォームに結合された入出力（ＩＯ）装置を元のハードウェア状態にリストアし、ＳＩＲＲがトラップされた場合にプラットフォームの全面的な初期化を回避する。プラットフォームのリスタートは、プラットフォームの全面的な初期化を最小限にするにつれて、高速な方法で実行される。【選択図】図２
2010123125.tif 000002
【特許請求の範囲】
【請求項１】
プラットフォームをリスタートする方法において、
前記プラットフォームのソフトウェアにより起動されたリセット要求（ＳＩＲＲ）をトラップする段階と、
前記トラップに応答して、前記プラットフォームに結合された入力／出力（ＩＯ）装置を、元のハードウェア状態にリストアする段階と、
前記リストアに応答して、前記プラットフォームをリスタートするためにオペレーティング・システム（ＯＳ）を始動する段階と、
から構成されることを特徴とする方法。
【請求項２】
前記ＳＩＲＲがトラップされたとき、前記ＳＩＲＲを中央処理装置（ＣＰＵ）のみ初期化するリセット要求に変換する段階と、
前記変換に応答して、前記ＣＰＵを初期化する段階と、
をさらに含むことを特徴とする請求項１記載の方法。
【請求項３】
前記プラットフォームを初期化する段階をさらに含むことを特徴とする請求項１記載の方法。
【請求項４】
前記プラットフォームを初期化する段階は、前記ＩＯ装置の前記元のハードウェア状態の少なくとも１つのレジスタ設定を保存する段階を含むことを特徴とする請求項３記載の方法。
【請求項５】
前記プラットフォームを初期化する段階は、元のＯＳローダ・イメージのコピーを保存する段階を含み、前記プラットフォームの基本入出力システム（ＢＩＯＳ）は、拡張可能なファームウェア・インタフェース（ＥＦＩ）をサポートすることを特徴とする請求項３記載の方法。
【請求項６】
前記プラットフォームを初期化する段階は、
前記プラットフォームのＯＳローダがランタイムに移行しようとしていることを決定する段階と、
前記プラットフォームの前記リスタート中に、プラットフォームがそのファームウェア・インフラストラクチャを保持する能力を促進させるために、ブート・サービス・メモリを維持する段階であって、前記プラットフォームの基本入出力システム（ＢＩＯＳ）は、拡張可能なファームウェア・インタフェース（ＥＦＩ）をサポートする、段階と、
を含むことを特徴とする請求項３記載の方法。
【請求項７】
前記プラットフォームを初期化する段階は、前記プラットフォームのレガシーベースの基本入出力システム（ＢＩＯＳ）のメモリ領域に関連するデータをバッファにコピーする段階を含み、前記バッファは、メモリ・マップ内に、前記ＯＳまたはＯＳローダが利用不可であるとして表示されることを特徴とする請求項３記載の方法。
【請求項８】
前記レガシーベースのＢＩＯＳのメモリ領域に関連する前記データは、ＢＩＯＳデータ領域（ＢＤＡ）内のデータまたは拡張されたＢＤＡ（ＥＢＤＡ）内のデータであることを特徴とする請求項７記載の方法。
【請求項９】
前記入力／出力（ＩＯ）装置をリストアする段階は、前記ＩＯ装置の少なくとも１つのレジスタのそれぞれを、前記ＩＯ装置の前記元のハードウェア状態の前記保存されたレジスタ設定で再プログラムすることを特徴とする請求項４記載の方法。
【請求項１０】
前記元のＯＳローダ・イメージの前記コピーで、前記プラットフォームのＯＳローダをリストアする段階をさらに含むことを特徴とする請求項５記載の方法。
【請求項１１】
前記プラットフォームの前記レガシーベースのＢＩＯＳのメモリ領域を、前記コピーされたデータでリストアする段階と、
前記ＯＳを始動するためにブート・ストラップ・ローダを起動し、前記プラットフォームをリスタートする段階と、
をさらに含むことを特徴とする請求項７記載の方法。
【請求項１２】
コンピュータ読取り可能な媒体において、前記媒体に格納された命令が実行されたとき、プラットフォームをリスタートさせるために、プロセッサは、
前記プラットフォームのソフトウェアにより起動されたリセット要求（ＳＩＲＲ）をトラップする段階と、
前記トラップに応答して、前記プラットフォームに結合された入力／出力（ＩＯ）装置を、元のハードウェア状態にリストアする段階と、
前記リストアに応答して、前記プラットフォームをリスタートするためにオペレーティング・システム（ＯＳ）を始動する段階と、
を実行することを特徴とする媒体。
【請求項１３】
前記ＳＩＲＲがトラップされたとき、前記ＳＩＲＲを、中央処理装置（ＣＰＵ）のみ初期化するリセット要求に変換する段階と、
前記変換に応答して、前記ＣＰＵを初期化する段階と、
をさらに含むことを特徴とする請求項１２記載の媒体。
【請求項１４】
前記プラットフォームを初期化する段階をさらに含むことを特徴とする請求項１２記載の媒体。
【請求項１５】
前記プラットフォームを初期化する段階は、前記ＩＯ装置の前記元のハードウェア状態の少なくとも１つのレジスタ設定を保存する段階を含むことを特徴とする請求項１４記載の媒体。
【請求項１６】
前記プラットフォームを初期化する段階は、元のＯＳローダ・イメージのコピーを保存する段階を含み、前記プラットフォームの基本入出力システム（ＢＩＯＳ）は、拡張可能なファームウェア・インタフェース（ＥＦＩ）をサポートすることを特徴とする請求項１４記載の媒体。
【請求項１７】
前記プラットフォームを初期化する段階は、
前記プラットフォームのＯＳローダがランタイムに移行しようとしていることを決定する段階と、
前記プラットフォームの前記リスタート中に、プラットフォームがそのファームウェア・インフラストラクチャを保持する能力を促進させるために、ブート・サービス・メモリを維持する段階であって、前記プラットフォームの基本入出力システム（ＢＩＯＳ）は、拡張可能なファームウェア・インタフェース（ＥＦＩ）をサポートする、段階と、
を含むことを特徴とする請求項１４記載の媒体。
【請求項１８】
前記プラットフォームを初期化する段階は、前記プラットフォームのレガシーベースの基本入出力システム（ＢＩＯＳ）のメモリ領域に関連するデータをバッファにコピーする段階を含み、前記バッファは、メモリ・マップ内に、前記ＯＳまたはＯＳローダが利用不可であるとして表示されることを特徴とする請求項１４記載の媒体。
【請求項１９】
前記レガシーベースのＢＩＯＳのメモリ領域に関連する前記データは、ＢＩＯＳデータ領域（ＢＤＡ）内のデータまたは拡張されたＢＤＡ（ＥＢＤＡ）内のデータであることを特徴とする請求項１８記載の媒体。
【請求項２０】
前記入力／出力（ＩＯ）装置をリストアする段階は、前記ＩＯ装置の少なくとも１つのレジスタのそれぞれを、前記ＩＯ装置の前記元のハードウェア状態の前記保存されたレジスタの設定で再プログラムすることを特徴とする請求項１５記載の媒体。
【請求項２１】
前記プラットフォームのＯＳローダを、前記元のＯＳローダ・イメージの前記コピーでリストアする段階をさらに含むことを特徴とする請求項１６記載の媒体。
【請求項２２】
前記プラットフォームの前記レガシーベースのＢＩＯＳのメモリ領域を、前記コピーされたデータでリストアする段階と、
前記ＯＳを始動するためにブート・ストラップ・ローダを起動し、前記プラットフォームをリスタートする段階と、
をさらに含むことを特徴とする請求項１８記載の媒体。
【請求項２３】
プラットフォームに結合された入力／出力（ＩＯ）装置と、
前記プラットフォームに結合されたオペレーティング・システム（ＯＳ）と、
前記ＩＯ装置に結合された基本入出力システム（ＢＩＯＳ）モジュールと、
から構成され、
基本入出力システム（ＢＩＯＳ）モジュールは、
前記ＯＳのソフトウェアにより起動されたリセット要求（ＳＩＲＲ）をトラップし、
前記トラップに応答して、前記ＩＯ装置を元のハードウェア状態にリストアし、
前記リストアに応答して、前記プラットフォームをリスタートするために前記ＯＳを始動する、
ことを特徴とするプラットフォーム。
【請求項２４】
前記プラットフォームに結合された中央処理装置（ＣＰＵ）をさらに含み、  
前記ＢＩＯＳモジュールは、
前記ＳＩＲＲがトラップされたとき、前記ＳＩＲＲを、ＣＰＵのみ初期化するリセット要求に変換し、
前記変換に応答して、前記ＣＰＵを初期化する、
ことを特徴とする請求項２３記載のプラットフォーム。
【請求項２５】
前記ＢＩＯＳモジュールは、前記プラットフォームを初期化することを特徴とする請求項２３記載のプラットフォーム。
【請求項２６】
前記プラットフォームを初期化する前記ＢＩＯＳモジュールは、前記ＩＯ装置の前記元のハードウェア状態の少なくとも１つのレジスタ設定を保存することを特徴とする請求項２３記載のプラットフォーム。
【請求項２７】
前記プラットフォームを初期化する前記ＢＩＯＳモジュールは、元のＯＳローダ・イメージのコピーを保存する段階を含み、前記ＢＩＯＳモジュールは、拡張可能なファームウェア・インタフェース（ＥＦＩ）をサポートすることを特徴とする請求項２３記載のプラットフォーム。
【請求項２８】
前記プラットフォームを初期化するための前記ＢＩＯＳモジュールは、
前記プラットフォームのＯＳローダがランタイムに移行しようとしていることを決定し、
前記プラットフォームの前記リスタート中に、プラットフォームがそのファームウェア・インフラストラクチャを保持する能力を促進させるために、ブート・サービス・メモリを維持し、前記ＢＩＯＳモジュールは、拡張可能なファームウェア・インタフェース（ＥＦＩ）をサポートする、
ことを特徴とする請求項２３記載のプラットフォーム。
【請求項２９】
前記プラットフォームを初期化するための前記ＢＩＯＳモジュールは、前記プラットフォームのレガシーベースの基本入出力システム（ＢＩＯＳ）のメモリ領域に関連するデータをバッファにコピーし、前記バッファは、メモリ・マップ内に、前記ＯＳまたはＯＳローダが利用不可であるとして表示されることを特徴とする請求項２３記載のプラットフォーム。
【請求項３０】
前記ＢＩＯＳモジュールの前記レガシーベースのＢＩＯＳのメモリ領域に関連する前記データは、ＢＩＯＳデータ領域（ＢＤＡ）内のデータまたは拡張されたＢＤＡ（ＥＢＤＡ）内のデータであることを特徴とする請求項２９記載のプラットフォーム。
【請求項３１】
前記ＩＯ装置をリストアするための前記ＢＩＯＳモジュールは、前記ＩＯ装置の少なくとも１つのレジスタのそれぞれを、前記ＩＯ装置の前記元のハードウェア状態の前記保存されたレジスタ設定で再プログラムすることを特徴とする請求項２３記載のプラットフォーム。
【請求項３２】
前記ＢＩＯＳモジュールは、さらに、前記元のＯＳローダ・イメージの前記コピーで、前記プラットフォームのＯＳローダをリストアすることを特徴とする請求項２７記載のプラットフォーム。
【請求項３３】
前記ＢＩＯＳモジュールは、さらに、
前記プラットフォームの前記レガシーベースのＢＩＯＳのメモリ領域を、前記コピーされたデータでリストアし、
前記ＯＳを始動するためにブート・ストラップ・ローダを起動し、前記プラットフォームをリスタートする、
ことを特徴とする請求項２９記載のプラットフォーム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プラットフォームに関し、より明確には、しかし排他的ではなく、プラットフォームのリスタート中に、プラットフォームに接続された入力／出力（ＩＯ）装置のハードウェアの初期化を最小限にすることにより、プラットフォームの高速リスタートを可能にすることに関する。
【背景技術】
【０００２】
プラットフォームの動作中に、プラットフォームが連続的な動作可能時間（アップタイム）または連続的なアクセス可能性を有することは、非常に望ましいことである。プラットフォームが連続的に動作する能力は、エンドユーザにとって重要であり、特に企業にとっては、それが企業経営に影響を及ぼす可能性があるので重要である。プラットフォームの動作可能時間および信頼性はしばしば測定され、「ファイブ・ナインズ」、すなわち、９９．９９９％の可用性と称される。企業において、１年間に５1/4分を超えてプラットフォームが利用できないとき、それは、ファイブ・ナインズを満たしているとはいえない。企業が目標とするプラットフォームの販売は、プラットフォームがファイブ・ナインズを満たすような能力を有するか否かによって決定されることが多い。
【０００３】
プラットフォームの動作可能時間に影響を与える要因の１つは、プラットフォームをリスタートまたはリセットする必要性である。プラットフォームがリスタートされるとき、リスタートに要する時間は、動作不能時間（ダウンタイム）とみなされ、そして、それは、プラットフォームの可用性に影響を与える。プラットフォームをリスタートする必要がある無数の理由のうちのいくつかは、新しいＯＳドライバ、新しいソフトウェア、または新しいソフトウェア・パッチをロードすることによって、プラットフォーム上で走るオペレーティング・システム（ＯＳ）を再初期化することを含む。ＯＳは、そのレジストリ・キーを更新するため、またはＯＳ環境をリスタートするために、プラットフォームをリスタートする必要があることを決定する。
【０００４】
しかしながら、いくつかの例では、ＯＳに、そのレジストリ・キーを更新、またはＯＳ環境をリスタートさせるために、プラットフォーム全体をリスタートする必要がない場合がある。例えば、プラットフォームに対してハードウェアの変更がない場合であって、プラットフォームに対してソフトウェアの変更のみ必要な場合は、プラットフォーム全体をリスタートすること、および、全てのハードウェアを再初期化することは必要でない。しかしながら、従来のプラットフォームは、プラットフォームに対してハードウェアの変更がない場合であって、プラットフォームに対してソフトウェアの変更のみ必要な場合でさえ、全プラットフォームのリセットを実行する。
【０００５】
図１Ａは、レガシーベースの基本入出力システム（ＢＩＯＳ）をサポートする、従来のプラットフォームの先行技術のリスタート・シーケンス１００を示す。時間線１０５は、リスタート・シーケンス１００の時間参照基準を示す。時間０で従来のプラットフォームに電源が投入されたとき、それは早期の初期化を実行するフェーズ１１０に入る。フェーズ１１０において、中央処理装置（ＣＰＵ）に電力が供給され、ＣＰＵは、そのリセット・ベクトルに存在するＢＩＯＳコードを実行する。ＢＩＯＳは、パワー・オン・セルフテスト（ＰＯＳＴ）およびメモリ・テストのようなプラットフォームの基礎的なチェックを実行する。チェックが終了した後、ＢＩＯＳはハードウェアを初期化する次のフェーズ１１５を開始する。フェーズ１１５において、ＢＩＯＳは、プラットフォームに接続またはプラグインされたＩＯ装置を検出し、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）の列挙（ｅｎｕｍｅｒａｔｉｏｎ）、リード・オンリ・メモリ（ＲＯＭ）の開始オプション、または、ＩＯ装置のポーリングのような初期化タスクを実行する。
【０００６】
ハードウェアを初期化するフェーズ１１５が完了したとき、フェーズ１２０においてＯＳが始動される。プラットフォームの動作中に、ソフトウェア起動リセット要求またはウォーム・リセットに遭遇する。フェーズ１２５は、ウォーム・リセット要求を受け取るプラットフォームを示す。ウォーム・リセット要求を受け取ることによって、プラットフォームは、プラットフォーム全体のリセットを実行し、再び早期初期化のフェーズ１３０に入り、ハードウェアを初期化するフェーズ１３５、そしてＯＳを始動するフェーズ１４０に入る。
【図面の簡単な説明】
【０００７】
本発明の実施例の特徴および利点は、主題に関する以下の詳細な記述から明らかになるであろう。
【図１Ａ】従来のプラットフォームのリスタート・シーケンス（先行技術）を示す。
【図１Ｂ】本発明の一実施例に従って、プラットフォームのリスタート・シーケンスを示す。
【図２】プラットフォームのブート・フローを示す。
【図３】本発明の一実施例に従って、プラットフォームのリスタート・シーケンスを示す。
【図４】本発明の一実施例に従って、プラットフォームのリスタートのフローチャートを示す。
【図５Ａ】本発明の一実施例に従って、プラットフォームのリスタートのフローチャートを示す。
【図５Ｂ】本発明の一実施例に従って、プラットフォームのリスタートのフローチャートを示す。
【図６】本発明の一実施例に従って、プラットフォームの高速リスタートを実行するシステムを示す。
【発明を実施するための形態】
【０００８】
本明細書において、本発明の「一実施例」または「ある実施例」とは、本実施例に関して記述された特定の特徴、構造、または特性が、本発明の少なくとも１つの実施例に含まれることを意味する。したがって、本明細書の全体を通して様々な箇所で「一実施例において」という語句が現れるが、必ずしもそれらの全てが同一の実施例に関するものではない。
【０００９】
本発明の実施例によって、プラットフォームは、プラットフォームのリスタート中に、プラットフォームに接続されたＩＯ装置のハードウェア初期化を最小限にすることにより、高速でのリセットおよびリスタートを実行することが可能になる。プラットフォームは、サーバ、デスクトップ・コンピュータ、モバイル・コンピュータ、ワークステーション、あるいは、ウォーム・リセット要求を受け取ってコンピューティング装置をリスタートすることができるあらゆるコンピューティング装置を含むが、これらに制限されることはない。プラットフォームは、ハードディスク・ドライブ、ソリッド・ステート・ドライブ、メモリ・モジュール、プロセッサ、チップセット、ビデオ・ディスプレイ・カード、サウンド・カード、コンパクト・ディスク・ドライブ、フレキシブル・ディスク・ドライブ含むＩＯ装置、あるいは、プラットフォームのための機能を実行する他のＩＯ装置を包含するが、これに制限されない。ウォーム・リセット要求は、プラットフォーム上で走るＯＳによって、あるいはプラットフォームのローカルまたはリモート・ユーザによって起動された、ソフトウェアにより起動されたリセット要求（ＳＩＲＲ：ｓｏｆｔｗａｒｅ  ｉｎｉｔｉａｔｅｄ  ｒｅｓｅｔ  ｒｅｑｕｅｓｔ）である。プラットフォームのウォーム・リセットの引金となるＯＳ内のイベントとしては、プラットフォームのローカルまたはリモート・ユーザからのリブートまたはリスタート要求、および、ＯＳが新しいソフトウェア・モジュールまたは新しいソフトウェア・パッチをインストールした後のリスタート要求を受け取ることを含むが、これに制限されない。
【００１０】
図１Ｂは、本発明の一実施例に従って、レガシーベースのＢＩＯＳをサポートするプラットフォームのリスタート・シーケンス１５０を示す。早期初期化のフェーズ１６０は、図１Ａに関して記述されたフェーズ１３０に類似する。一実施例において、プラットフォームのＢＩＯＳは、プラットフォームのウォーム・リセット要求を検出およびトラップするために修正される。フェーズ１６０は、パワー・オン・セルフテスト（ＰＯＳＴ）およびメモリ・テストのようなプラットフォームの基礎的なチェックの早期初期化を実行する。チェックを終了した後、修正されたＢＩＯＳは、ハードウェアを初期化する次のフェーズ１６５を開始する。フェーズ１６５でのハードウェアの初期化は、フェーズ１１５のハードウェアの初期化に類似する。
【００１１】
他の実施例では、プラットフォームのＢＩＯＳは、フェーズ１６５において、プラットフォームに接続されたいくつかまたは全てのＩＯ装置の元のハードウェア状態を保存するために修正される。ＩＯ装置のハードウェア状態は、ＩＯ装置のレジスタ設定、およびＰＣＩエニュメレーション中にＢＩＯＳによって決定された構成設定を含むが、これに制限されない。
【００１２】
例えば、ＢＩＯＳがＰＣＩ列挙を実行し、プラットフォームに接続されたハードディスク・ドライブを検出した場合、ＢＩＯＳは、例えば、ハードディスク・ドライブのタイプ、またはそのドライブのモード（マスタまたはスレイブ）のような、ハードディスク・ドライブからの情報を要求する。ＢＩＯＳは、ハードディスク・ドライブから取得した情報に基づき、最適な転送速度設定を決定する。ハードディスク・ドライブのための最適な設定は、修正ＢＩＯＳによって保存されるので、ハードディスクのための最適な設定は、プラットフォームのリスタート中に再プログラムすることができる。最適な設定が保存されることによって、ＢＩＯＳは、ハードディスク・ドライブからの情報を要求する必要性、および、ウォーム・リセット中にプラットフォームがリスタートするたびに最適な設定を決定する必要性がなくなる。
【００１３】
ハードウェアを初期化するフェーズ１６５が完了した後、フェーズ１７０においてＯＳが始動され、フェーズ１７５において、ＯＳによるウォーム・リセット要求がプラットフォームへ送られる。早期初期化のフェーズ１８０において、修正ＢＩＯＳは、ウォーム・リセット要求を検出およびトラップする。ウォーム・リセット要求がトラップされた場合、修正ＢＩＯＳは、ウォーム・リセット要求をＣＰＵのみ初期化するリセット要求に変換する。ウォーム・リセット要求をＣＰＵのみ初期化するリセット要求に変換することによって、プラットフォーム内のＩＯ装置は、もはや自己初期化を実行するためのリセット要求を受け取らない。図１Ａのフェーズ１３０において実行された全てのＢＩＯＳコードは、図１Ｂのフェーズ１８０では、ＣＰＵによって実行されない。フェーズ１８０の修正ＢＩＯＳコードは、ＣＰＵの基礎的な初期化を実行し、フェーズ１６５で保存された元のハードウェア状態を用いてＩＯ装置を再プログラムすることによって、プラットフォーム内のＩＯ装置をそれらの元のハードウェア状態にリストアする。一実施例では、ＢＩＯＳは、ＩＯ装置のレジスタをＩＯ装置の元のハードウェア状態の保存されたレジスタ設定に再プログラムする。
【００１４】
フェーズ１８０が完了した後、プラットフォームは従来のハードウェアの初期化フェーズ１３５を回避してフェーズ１９０に入り、以前にフェーズ１７０でロードされたＯＳの同じバージョンを再始動またはリスタートする。時間線１０５，１５５は、リスタート・シーケンス１５０で節約された参照時間を、リスタート・シーケンス１００と比較するために示される。図１Ｂにおいてプラットフォームのリスタートを実行するために必要な時間（フェーズ１８０およびフェーズ１９０）は、図１Ａにおいてプラットフォームのリスタートを実行するために必要な時間（フェーズ１３０、フェーズ１３５、およびフェーズ１４０）よりも短い。
【００１５】
早期初期化のフェーズ１８０において実行され、かつ、プラットフォーム内のＩＯ装置が自己初期化を実行する必要性を最小限にするような小さいＢＩＯＳコードによって、プラットフォームのリスタートが高速で実行される。図１Ｂのプラットフォームは、プラットフォームに対してハードウェアの変更がない場合であって、プラットフォームに対してソフトウェアの変更のみ必要な場合は、全部のプラットフォームのリセットを実行しない。むしろ、ウォーム・リセット要求がプラットフォームによって受け取られた場合には、ソフトウェア・イベントがそれ自体を再初期化するために必要なプラットフォームの一部のみがリセットされる。
【００１６】
本発明の一実施例では、プラットフォームのリスタートに関連するプラットフォームのオーバーヘッドが短縮される。プラットフォーム内のハードウェアの初期化を最小にすることは、プラットフォームのオーバーヘッドを短縮するための１つの方法であるが、プラットフォームのオーバーヘッドを短縮する他の方法もまた、プラットフォームを高速でリスタートさせるために用いることができる。プラットフォームがより高速でリスタートすることによって、ソフトウェア・パッチのインストールおよび定期的な保守に関連するプラットフォームのオーバーヘッドがより短縮されるので、その結果、企業において、より多くのプラットフォームが「ファイブナイン」を維持できることが保証される。
【００１７】
図２は、拡張可能なファームウェア・インタフェース（ＥＦＩ）または一体化されたＥＦＩ（ＵＥＦＩ）をサポートするプラットフォームのブート・フロー２００を示す。一実施例において、プラットフォーム内のＵＥＦＩは、ＥＦＩ用のＩｎｔｅｌ（登録商標）プラットフォーム・イノベーション・フレームワーク（以下、「フレームワーク」と称する）に基づいて実行される。ブート・フロー２００は、プラットフォームに電源が投入されるフェーズ２０１、プラットフォームが初期化されるフェーズ２０２、ＯＳがブートするフェーズ２０３、ウォーム・リセット要求がＯＳによって受け取られるフェーズ２０４を含むが、これに制限されない。プラットフォームがリスタートしたとき、ブート・フロー２００はフェーズ２０１に戻る。
【００１８】
ブート・フロー２００の電源投入フェーズ２０１中で、プラットフォームは、フレームワークのセキュリティ（ＳＥＣ）フェーズ２１０に入る。プレベリファイヤ（ｐｒｅ−ｖｅｒｉｆｉｅｒ）２１２は、電源投入がされていない状態からプラットフォームに電力を供給すること、アクティブ状態からプラットフォームをリスタートすること、様々な例外条件を受け取ることを含む、あらゆるプラットフォームのリスタート・イベントを処理するが、これに制限されない。ブート・フロー２００の次のフェーズは、プラットフォーム初期化フェーズ２０２である。プラットフォーム初期化フェーズ２０２は、プレＥＦＩ初期化（ＰＥＩ）フェーズ２２０、およびフレームワークのドライバ実行環境（ＤＸＥ）フェーズ２３０を含む。
【００１９】
ＳＥＣフェーズ２１０後のＰＥＩフェーズ２２０は、フレームワーク・アーキテクチャのＤＸＥフェーズ２３０のために、最低限の先行必要条件に合致するようにプラットフォームを形成する。ＰＥＩフェーズ２２０中に、ＰＥＩコア２２２は、ＣＰＵ２２４、チップセット２２６、およびマザーボード２２８のような重要なＩＯ装置を初期化する。ＰＥＩコア２２２は、さらに、図２に示されていないプラットフォーム内の他の全ての重要なＩＯ装置を初期化する。ＰＥＩフェーズの後、ＥＦＩドライバ・ディスパッチャ２３２は、ＤＸＥフェーズ２３０中に、プラットフォーム内に接続されたＩＯ装置のデバイス・ドライバ、バス・ドライバ、またはシリアル・ドライバ２３６をロードする。構成プロトコル２３４も、このフェーズでロードされる。要素２４４，２４６は、装置ドライバ２３６および構成プロトコル２４６のためのＵＥＦＩインタフェースを示す。
【００２０】
ＤＸＥフェーズ２３０の後、ブート装置選択（ＢＤＳ）フェーズ２４０に入る。ブート・マネージャ２４２は、プラットフォーム用のＯＳをブートするためのマス・ストレージ・ドライブを決定し、さらに、複数のオペレーティング・システムがプラットフォーム内に存在するか、またはインストールされている場合は、プラットフォーム内でどのＯＳをロードすべきかを決定する。ブート・フロー２００は、ＯＳブート・フェーズ２０３に入り、プラットフォームは、フレームワークの非常駐システム・ロード（ＴＳＬ）フェーズ２５０に入る。ブート・マネージャ２４２は、非常駐ＯＳブート・ローダ２５６をロードし、また、非常駐ＯＳブート・ローダ２５６は、非常駐ＯＳ環境２５４を開始する。ＯＳ不存在下のアプリケーション２５２が、非常駐ＯＳ環境２５４によって始動される場合もある。非常駐ＯＳブート・ローダ２５６が完了した後、最終ＯＳブート・ローダ２５８が始動する。
【００２１】
一実施例では、ブート・マネージャ２４２は、最終ＯＳローダのイメージを２度ロードし、キャッシュ内にそのイメージをコピーするために修正される。他の実施例では、ブート・マネージャ２４２は、最終ＯＳブート・ローダを２度ロードし、メモリベースの不変なソースとしてその最終ＯＳブート・ローダの第１のコピーを保存し、その最終ＯＳブート・ローダのイメージの第２のコピーを始動する。他の実施例では、ＯＳの一部または全部のイメージをリストアさせるために、メモリベースの不変なソースとしてＯＳの一部または全部のイメージもコピーされる。
【００２２】
最終ＯＳブート・ローダ２５８が最終ＯＳ環境２６２を起動したとき、プラットフォームはランタイム（ＲＴ）フェーズ２６０に入り、ＯＳ存在下のアプリケーション２６４を実行する。ウォーム・リセット要求が、ＲＴフェーズ中にＯＳによって受け取られたとき、ブート・フロー２００は電源投入フェーズ２０１に戻ってプラットフォームをリスタートし、再びプラットフォーム初期化フェーズ２０２およびＯＳブート・フェーズ２０３に入る。
【００２３】
図３は、本発明の一実施例に従った、プラットフォームのリスタート・シーケンス３００を示す。プラットフォームは、ＯＳからウォーム・リセット要求３０４を受け取る。一実施例では、ブート・フロー２００の後にウォーム・リセット要求３０４が続く。ウォーム・リセット要求が受け取られたとき、プラットフォームは、電源投入フェーズ３０１に入る。プレベリファイヤ３１２は、あらゆるウォーム・リセット要求を検出かつトラップするために修正される。プレベリファイヤ３１２は、さらに、ウォーム・リセットがトラップされたとき、ウォーム・リセットをＣＰＵのみ初期化するリセット要求に変換するために修正される。
【００２４】
プレベリファイヤ３１２がウォーム・リセット３０４を検出したとき、それは、ウォーム・リセット３０４をトラップし、ウォーム・リセット３０４をＣＰＵのみ初期化するリセット要求に変換する。プラットフォームは、ＣＰＵを初期化し、プレベリファイヤは、プラットフォーム内のＩＯ装置を、それらの元のハードウェア状態にリストアする。一実施例では、プレベリファイヤは、フレームワークのｂｌｏｃｋ＿ＩＯ．ｒｅｓｅｔ関数を呼出し、各ＩＯ装置を既知の状態にリストアする。プラットフォーム内のＩＯ装置は、プレベリファイヤ３１２によって既知のハードウェア状態または元のハードウェア状態にリストアされるので、リスタート・シーケンス３００は、プラットフォーム初期化フェーズ３０２を回避し、ＰＥＩフェーズ３２０およびＤＸＥフェーズ３３０は実行されない。
【００２５】
ＣＰＵ３２４、チップセット３２６、およびマザーボード３２８を初期化するためにＰＥＩコア３２２を実行するステップは実施されず、それらは破線によって表わされる。加えて、ＥＦＩドライバ・ディスパッチャ３３２、デバイス・ドライバ３３６、および構成プロトコル３３４は、リロードされず、それらは破線によって表わされる。プレベリファイヤ３１２は、ＢＤＳフェーズ３４０において、ブート・マネージャ３４２を呼び出す。一実施例では、ブート・マネージャ３４２は、ＢＤＳフェーズ３４０中に保存された最終ＯＳブート・ローダ・イメージのコピーを用いて、最終ＯＳブート・ローダ３５８をリストアする。他の実施例では、ブート・マネージャ３４２は、さらに、プラットフォームのリスタートを促進させるために、プラットフォームのブート・ディスクから追加のイメージをロードするために修正される。
【００２６】
元のＯＳローダ・イメージが使用される場合、非常駐ＯＳブート・ローダ３５６、非常駐ＯＳ環境３５４、およびＯＳ不存在下のアプリケーション３５２を実行するステップは行なわれず、それらは破線で表わされる。最終ＯＳブート・ローダ３５８は、ＢＤＳフェーズ３４０中に保存された最終ＯＳブート・ローダ・イメージのコピーを用いて実行され、最終ＯＳ環境３６２およびＯＳ存在下のアプリケーション３６４は、ＲＴフェーズ３６０中で実行される。
【００２７】
図４は、本発明の一実施例に従って、プラットフォームのリスタート・シーケンスのフローチャートを示す。ステップ４０５において、ウォーム・リセット要求は、プラットフォーム上で走るＯＳによって受け取られる。いくつかの実施例では、プラットフォームをリスタートするためのウォーム・リセット要求は、アプリケーションのインストールによってＯＳ内で引き起こされるか、あるいは、プラットフォームのローカルまたはリモート・ユーザによって引き起こされる。ＯＳは、電源遮断状態へプラットフォームの移行を開始する。いくつかの実施例では、ＯＳは、システム・パワー状態５（Ｓ５）へプラットフォームの移行を開始する。
【００２８】
ステップ４１０において、プラットフォームは、ＯＳのシャットダウンを開始し、そしてＯＳは、ＯＳ内のダーティ・データ（ｄｉｒｔｙ  ｄａｔａ）を大容量記憶装置へ追い出す。大容量記憶装置には、ハードディスク・ドライブ、高速フラッシュ・ドライブ、ソリッド・ステート・メモリ、ユニバーサル・シリアル・バス（ＵＳＢ）ドライブ、またはプラットフォームのための任意の形式のデータ格納手段が含まれるが、これに制限されない。大容量記憶装置へのライトバックは実行されない。一実施例では、ダーティ・データは、ライトバック（ＷＢ）キャッシュへ追い出される。
【００２９】
ステップ４１０においてダーティ・データが追い出された後、ステップ４１５において、ＯＳがシャットダウンし、ウォーム・リセットのトリガとなる。一実施例では、ウォーム・リセットは、プラットフォームのウォーム・リセットを実行するために、ポート６４ｈを経由してオンボード・キーボード・コントローラに書き込むことによって引き起こされる。ステップ４２０において、プラットフォームは、ＢＩＯＳを通して、カスタム高速リスタート・フローを実行する。一実施例では、図１Ｂで記述された修正ＢＩＯＳ１８０によって、カスタム高速リスタート・フロー４２０が実行される。他の実施例では、カスタム高速リスタート・フロー４２０は、図３で記述されたプレベリファイヤ３１２によって実行される。修正ＢＩＯＳ１８０およびプレベリファイヤ３１２の両方は、ウォーム・リセット要求を検出およびトラップし、ウォーム・リセットをＣＰＵのみ初期化するリセット要求に変換する。プラットフォームのＩＯ装置は、修正ＢＩＯＳ１８０またはプレベリファイヤ３１２によって元のハードウェア状態にリストアされる。
【００３０】
ステップ４２５において、修正ＢＩＯＳは、ＯＳをロードするために割込み１９ｈ（ｈｅｘ）を送出する。他の実施例では、プレベリファイヤは、元のＯＳローダ・イメージのコピーを用いてＯＳブート・ローダをリストアするためにブート・マネージャ３４２を始動する。ステップ４３０において、ＯＳブート・ローダは、割込み１３ｈ（ｈｅｘ）を送出することによって、高速フラッシュ・ドライブをヒットする。ステップ４３５において、ＯＳはネイティブ・ドライバを使用してブートされ、ステップ４４０において、ＯＳのリスタートが完了する。
【００３１】
図５Ａは、本発明の一実施例に従った、レガシーベースのＢＩＯＳをサポートするプラットフォームまたはフレームワークのリスタート・シーケンスのフローチャートを示す。ステップ５０２において、プラットフォームは、早期初期化フェーズに入り、プラットフォームのＣＰＵおよびメモリに電源が投入される。ＣＰＵは、そのリセット・ベクトルに存在するＢＩＯＳコードを実行し、パワー・オン・セルフテスト（ＰＯＳＴ）およびメモリ・テストのようなプラットフォームの基礎的なチェックを行なう。ステップ５０４において、フローは、プラットフォームの高速リスタートがサポートされるかどうかをチェックする。「Ｎｏ」の場合、フローは、ステップ５０８のプラットフォームの通常のハードウェアの初期化へ直行する。通常のハードウェアの初期化中に、プラットフォームに接続またはプラグインされたＩＯ装置を検出し、そして、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）の列挙、オプション・リード・オンリ・メモリ（ＲＯＭ）の開始、ＩＯ装置のポーリングのようなタスクが実行される。「Ｙｅｓ」の場合、そのフローは、ステップ５０６において、プラットフォームの現在のハードウェア・コンフィギュレーションがプラットフォームの元のハードウェア・コンフィギュレーションと相違するかどうかをチェックする。
【００３２】
ハードウェア・コンフィギュレーションが変更された場合は、フローはステップ５０８に進み、プラットフォームの通常の初期化が実行される。ハードウェア・コンフィギュレーションが変更されていない場合は、フローはステップ５１０に進み、ウォーム・リセット要求があるかどうかを検出する。「Ｙｅｓ」の場合、そのフローはステップ５Ｂに進む。ステップ５Ｂについては、図５Ｂで説明する。「Ｎｏ」の場合、そのフローはステップ５１２に進み、プラットフォームの通常の初期化が実行される。一実施例では、ステップ５０２，５０４，５０６，５１０は、図１Ｂに関して記述したような、修正ＢＩＯＳ１８０によって実行される。他の実施例では、ステップ５０２，５０４，５０６，５１０は、図３のプレベリファイヤ３１２によって実行される。通常の初期化のステップ５１２は、ＰＥＩフェーズ３２０およびＤＸＥフェーズ３３０中に実行される。ステップ５０６，５０８は、ハードウェア変更が検出された場合に、プラットフォームが高速リスタートを行なわないことを示すが、他の実施例では、ハードウェア変更が検出された場合でも、プラットフォームの高速リスタートをサポートすることができるように、フローを修正することが可能である。例えば、フローは、プラットフォーム内に接続された新規のＩＯ装置を検出し、新規のＩＯ装置への通常の初期化を行ない、そして、フローはステップ５１０へ続く。
【００３３】
ステップ５１２の後、フローはステップ５１４へ進み、プラットフォームがレガシーベースのＢＩＯＳをサポートするかどうかをチェックする。「Ｙｅｓ」の場合、フローはステップ５１８に進み、プラットフォームのレガシーベースのＢＩＯＳのメモリ領域内のデータをバッファにコピーする。レガシーベースのＢＩＯＳメモリ領域のデータには、ＢＩＯＳデータ領域（ＢＤＡ）内のデータおよび拡張ＢＩＯＳデータ領域（ＥＢＤＡ）内のデータが含まれるが、これに制限されることはない。一実施例では、バッファは、ＯＳまたはＯＳローダに利用不可であるとして、プラットフォームのメモリ・マップ内に示される。他の実施例では、コピーされたデータは、シグネチャで予め決められ、プラットフォームによって発見が可能なようにバッファの特定のメモリ細分性で置かれる。
【００３４】
ステップ５１４において、プラットフォームが、レガシーベースのＢＩＯＳをサポートしない場合、フローはステップ５１６に進む。ステップ５１６は、ＯＳローダを２度ロードし、メモリベースの不変なソースとしてＯＳローダ・イメージの第１のコピーを保存し、ＯＳローダ・イメージの第２のコピーを始動する。他の実施例では、ＯＳの一部または全部のイメージをリストアさせるために、ＯＳの一部のイメージまたは全部のイメージがメモリベースの不変なソースとしてコピーされる。ステップ５２０において、そのフローは、ＯＳローダがランタイムへの移行を試みているかどうかをチェックする。「Ｎｏ」の場合、そのフローは、ステップ５２２において、プラットフォームのＯＳの初期化を継続する。「Ｙｅｓ」の場合、そのフローは、ステップ５２４において、ブート・サービス・メモリを維持し、プラットフォームのリスタート中、プラットフォームがそのファームウェア・インフラストラクチャを保持する能力を促進させる。
【００３５】
一実施例では、ステップ５１６，５２０，５２２，５２４は、ＥＦＩまたはフレームワークをサポートするプラットフォームのＢＤＳフェーズにおいて、ブート・マネージャ３４２によって実行される。ブート・マネージャが、フレームワークの関数ＥｘｉｔＢｏｏｔＳｅｒｖｉｃｅｓへの呼出しを受け取る場合、ブート・マネージャはブート・サービス・メモリを非構成にしない。ステップ５０８，５１８，５２４から進んで、ステップ５２６において、ＯＳが始動される。ステップ５２８においてフローはリセットを受け取り、ステップ５０２に戻り、プラットフォームの早期初期化を行なう。
【００３６】
図５Ｂは、ステップ５１０でウォーム・リセット要求が検出された場合のフローチャートを示す。一実施例では、ステップ５５２，５５４，５５６，５５８は、図１Ｂに関して説明された修正ＢＩＯＳ１８０によって実行される。他の実施例では、ステップ５５２，５５４，５６０，５６２，５６４は、図３のプレベリファイヤ３１２によって実行される。ステップ５５２において、修正ＢＩＯＳ１８０またはプレベリファイヤ３１２は、ウォーム・リセット要求を検出およびトラップする。修正ＢＩＯＳ１８０またはプレベリファイヤ３１２は、さらに、ウォーム・リセット要求をＣＰＵのみ初期化する要求に変換する。ＣＰＵは、元の状態または既知の状態に初期化される。ステップ５５４において、フローは、プラットフォームがレガシーベースのＢＩＯＳをサポートするかどうかをチェックする。「Ｙｅｓ」の場合、ステップ５５６において、修正ＢＩＯＳ１８０は、プラットフォームのＣＰＵをリアル・モードに切り替え、アドバンスト・プログラマブル・インターラプト・コントローラ（ＡＰＩＣ）を再プログラムする。修正ＢＩＯＳ１８０は、ステップ５１８で元の値のコピーされたデータを使用して、レガシーベースのＢＩＯＳメモリ領域をその元の値にリストアする。ステップ５５８において、修正ＢＩＯＳ１８は、割込み１９ｈ（ｈｅｘ）を介してブート・ストラップ・ローダを起動し、プラットフォームをリスタートするためにＯＳを始動する。
【００３７】
プラットフォームが、レガシーベースのＢＩＯＳをサポートせず、ＥＦＩまたはフレームワークをサポートする場合は、ステップ５６０において、プレベリファイヤ３１２が、プラットフォームのＣＰＵをプロテクト・モードへ切り替え、アドバンスト・プログラマブル・インターラプト・コントローラ（ＡＰＩＣ）を再プログラムする。ステップ５６２において、プレベリファイヤ３１２は、プラットフォーム内のＩＯ装置を、それらの元のハードウェア状態または既知の状態にリストアする。一実施例において、プレベリファイヤ３１２は、各ＩＯ装置を既知の状態または元のハードウェア状態にリセットする、フレームワークのｂｌｏｃｋ＿ｉｏリセット関数を呼び出す。ｂｌｏｃｋ＿ｉｏリセット関数は、各ＩＯ装置のために実行されるか、または、集合的に全ＩＯ装置のために実行される。
【００３８】
ステップ５６４において、プラットフォームのＯＳローダは、ステップ５１６で保存された元のＯＳローダ・イメージのコピーを用いてリストアされる。ＯＳは、ステップ５１６で保存されたＯＳローダ・イメージを用いて始動される。ステップ５６４では、ＯＳローダ・イメージのみがリストアされるが、他の実施例では、ステップ５６４で、他のイメージをリストアし、それによってプラットフォームを高速でリスタートさせる。ステップ５６４または５５８は、ＯＳを始動するためのステップ５６８に進み、フローはステップ５Ａに戻る。フローチャート５Ａ，５Ｂは、レガシーベースのＢＩＯＳまたはＥＦＩをサポートするプラットフォームのためのリスタート・シーケンスを示すが、これに制限する意図ではない。プラットフォームの高速リスタートを可能にするためにファームウェアをブートする他の形式もまた、本発明の実施例によりサポートされる。
【００３９】
図６は、一実施例に従った、ここに示された方法を実施するためのシステム６００のブロック図である。システム６００は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ノート型コンピュータ、携帯情報端末（ＰＤＡ）、サーバ、ワークステーション、携帯電話、モバイル・コンピューティング装置、インターネット・アプライアンス、または他のタイプのコンピューティング装置を含むが、これに制限されない。他の実施例では、ここに示された方法を実施するために使用されるシステム６００は、チップ（ＳＯＣ）システム上のシステムである。
【００４０】
システム６００は、メモリ・コントローラ６３０および入力／出力（Ｉ／Ｏ）コントローラ６４０を具備するチップセット６３５を含む。チップセットは、典型的には、複数の汎用目的および／または特定目的レジスタ、タイマ等と同様に、メモリおよびＩ／Ｏ管理機能を提供するものであり、それらはプロセッサ６２５によってアクセス可能であるか、または使用される。プロセッサ６２５は、１またはそれ以上のプロセッサを使用して実施される。
【００４１】
メモリ・コントローラ６３０は、プロセッサ６２５が、バス６６５を経由して、揮発性メモリ６１０および不揮発性メモリ６２０を含むメイン・メモリ６１５にアクセスし、かつ通信することを可能にするような機能を実行する。本発明の一実施例では、修正ＢＩＯＳ１８０が不揮発性メモリ６２０内に格納される。本発明の他の実施例では、プリベリファイヤ３１２が不揮発性メモリ６２０内に格納される。
【００４２】
揮発性メモリ６１０は、シンクロナス・ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、ＲＡＭＢＵＳダイナミック・ランダム・アクセス・メモリ（ＲＤＲＡＭ）、および／または他のタイプのあらゆるランダム・アクセス・メモリ装置を含むが、これに制限されない。不揮発性メモリ６２０は、フラッシュ・メモリ、リード・オンリ・メモリ（ＲＯＭ）、電気的に消去可能なプログラマブル・リード・オンリ・メモリ（ＥＥＰＲＯＭ）、および／または他の望ましいタイプのメモリ装置を含むが、これに制限されない。
【００４３】
メモリ６１５は、プロセッサ６２５によって実行される情報および命令を格納する。メモリ６１５は、さらに、プロセッサ６２５が命令を実行している間に、一時的な変数または他の中間情報を格納する。
【００４４】
システム６００は、バス６６５で結合されたインタフェース回路６５５を含むが、これに制限されない。インタフェース回路６５５は、イーサネット（登録商標）インタフェース、ユニバーサル・シリアル・バス（ＵＳＢ）、第３世代の入力／出力インタフェース（３ＧＩＯ）、および／または任意の適切なタイプのインタフェースを含む任意のタイプの周知のインタフェース規格を使用して実行されるが、これらに制限されることはない。
【００４５】
１またはそれ以上の入力装置６４５は、インタフェース回路６５５に接続される。入力装置６４５によって、ユーザは、データおよびコマンドをプロセッサ６２５へ入力することが可能になる。例えば、入力装置６４５は、キーボード、マウス、タッチ・センシティブ・ディスプレイ、トラックパッド、トラックボール、および／または音声認識システムを使用して実行されるが、これに制限されない。
【００４６】
１またはそれ以上の出力装置６５０は、インタフェース回路６５５に接続される。例えば、出力装置６５０は、発光ダイオード・ディスプレイ（ＬＥＤ）、液晶ディスプレイ（ＬＣＤ）、陰極線管（ＣＲＴ）ディスプレイ、プリンタ、および／またはスピーカを使用して実行されるが、これに制限されない。インタフェース回路６５５は、グラフィックス・ドライバ・カードを含む。
【００４７】
システム６００は、さらに、ソフトウェアおよびデータを格納するために、１またはそれ以上の大容量記憶装置６６０を含む。そのような大容量記憶装置６６０の例としては、フレキシブル・ディスクおよびドライブ、ハードディスク・ドライブ、高速フラッシュ・ディスク・ドライブ、ソリッド・ステート・ハード・ドライブ、コンパクト・ディスクおよびドライブ、ならびに、デジタル・ビデオ・ディスク（ＤＶＤ）およびドライブを含むが、これに制限されない。
【００４８】
インタフェース回路６５５は、ネットワークを介して外部コンピュータとのデータの交換を促進するためのモデムまたはネットワーク・インタフェース・カードのような通信装置を含む。システム６００とネットワークとの間の通信リンクは、イーサネット（登録商標）接続、デジタル加入者回線（ＤＳＬ）、電話回線、携帯電話、同軸ケーブルなどのような任意のタイプのネットワーク接続である。
【００４９】
入力装置６４５、出力装置６５０、大容量記憶装置６６０、および／またはネットワークへのアクセスは、典型的には、従来の方法でＩ／Ｏコントローラ６４０によって制御される。特に、Ｉ／Ｏコントローラ６４０は、プロセッサ６２５が、バス６６５およびインタフェース回路６５５を介して、入力装置６４５、出力装置６５０、大容量記憶装置６６０、および／またはネットワークと通信できる機能を果たす。
【００５０】
図６に示されたコンポーネントは、システム６００内の個別のブロックとして表されるが、これらのブロックのいくつかによって実行される機能は、単一の半導体回路内に集積されてもよく、あるいは２またはそれ以上の別個の集積回路を使用して実行されてもよい。例えば、メモリ・コントローラ６３０およびＩ／Ｏコントローラ６４０は、チップセット６３５内の個別のブロックとして表されるが、当業者であれば、メモリ・コントローラ６３０およびＩ／Ｏコントローラ６４０は、単一の半導体回路内に集積可能であることを容易に理解できるであろう。
【００５１】
開示された主題の実施例が記述されたが、当業者であれば、開示された主題を実行するために、他の多くの方法を互換的に使用することができることを容易に理解するであろう。例えば、フローチャートにおいてブロックを実行する順序は変更可能であり、および／または、記述されたブロック図／フローチャートにおけるブロックのいくつかは、変更し、削除し、または組合わせることも可能である。
【００５２】
以上ように、開示された主題の多様な側面について記述された。説明のために、特定の数、システム、および構成が、主題についての完全な理解を提供するために記述された。しかしながら、本開示の利益を有する当業者にとって、本主題は、特定の詳細事項が無くても実行可能であることは明白である。他の例では、周知の特徴、コンポーネント、あるいはモジュールは、開示された本主題を不明瞭にしないために、省略され、単純化され、結合され、または分割される。
【００５３】
開示された主題の多様な実施例は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せにおいて実行することができ、機能、手続、データ構造、論理、アプリケーション・プログラム、デザイン表現またはデザインのシミュレーション、エミュレーション、および組立てのようなプログラム・コードへの参照によって、またはプログラム・コードと結合して記述され、マシンによってアクセスされると、タスクを実行し、アブストラクト・データ型あるいは下位レベルのハードウェア・コンテキストを定義し、あるいは結果を生みだす。
【００５４】
開示された主題は、実例となる実施例に関して記述されているが、この記述は制限目的であると解釈されることを意図していない。主題の他の実施例と同様に、実例となる実施例の多様な修正も開示された主題の範囲内であると認められることは、開示された主題に関係する当業者には明白である。
【符号の説明】
【００５５】
２００，３００  ブート・フロー
２０１，３０１  電源投入フェーズ
２１０，３１０  セキュリティ（ＳＥＣ）フェーズ
２２０，３２０  プレＥＦＩ初期化（ＰＥＩ）フェーズ
２３０，３３０  ドライバ実行環境（ＤＸＥ）フェーズ
２４０，３４０  ブート装置選択（ＢＤＳ）フェーズ
２５０，３５０  非常駐システム・ロード（ＴＳＬ）フェーズ
２６０，３６０  ランタイム（ＲＴ）フェーズ
６００  システム
６１０  揮発性メモリ
６２０  不揮発性メモリ
６２５  プロセッサ
６３０  メモリ・コントローラ
６４５  入力装置
６５０  出力装置
６５５  インタフェース回路
６６０  大容量記憶装置
【図１Ａ】
2010123125.tif 000003
【図１Ｂ】
2010123125.tif 000004
【図２】
2010123125.tif 000005
【図３】
2010123125.tif 000006
【図４】
2010123125.tif 000007
【図５Ａ】
2010123125.tif 000008
【図５Ｂ】
2010123125.tif 000009
【図６】
2010123125.tif 000010
【外国語明細書】
2010123125000001.pdf