JP5368947B2 - プラットフォームの高速リスタートを可能にする方法およびシステム - Google Patents

プラットフォームの高速リスタートを可能にする方法およびシステム Download PDF

Info

Publication number
JP5368947B2
JP5368947B2 JP2009262302A JP2009262302A JP5368947B2 JP 5368947 B2 JP5368947 B2 JP 5368947B2 JP 2009262302 A JP2009262302 A JP 2009262302A JP 2009262302 A JP2009262302 A JP 2009262302A JP 5368947 B2 JP5368947 B2 JP 5368947B2
Authority
JP
Japan
Prior art keywords
computing platform
platform
bios
loader
restart
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
JP2009262302A
Other languages
English (en)
Other versions
JP2010123125A (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2010123125A publication Critical patent/JP2010123125A/ja
Application granted granted Critical
Publication of JP5368947B2 publication Critical patent/JP5368947B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、プラットフォームに関し、より明確には、しかし排他的ではなく、プラットフォームのリスタート中に、プラットフォームに接続された入力/出力(IO)装置のハードウェアの初期化を最小限にすることにより、プラットフォームの高速リスタートを可能にすることに関する。
プラットフォームの動作中に、プラットフォームが連続的な動作可能時間(アップタイム)または連続的なアクセス可能性を有することは、非常に望ましいことである。プラットフォームが連続的に動作する能力は、エンドユーザにとって重要であり、特に企業にとっては、それが企業経営に影響を及ぼす可能性があるので重要である。プラットフォームの動作可能時間および信頼性はしばしば測定され、「ファイブ・ナインズ」、すなわち、99.999%の可用性と称される。企業において、1年間に51/4分を超えてプラットフォームが利用できないとき、それは、ファイブ・ナインズを満たしているとはいえない。企業が目標とするプラットフォームの販売は、プラットフォームがファイブ・ナインズを満たすような能力を有するか否かによって決定されることが多い。
プラットフォームの動作可能時間に影響を与える要因の1つは、プラットフォームをリスタートまたはリセットする必要性である。プラットフォームがリスタートされるとき、リスタートに要する時間は、動作不能時間(ダウンタイム)とみなされ、そして、それは、プラットフォームの可用性に影響を与える。プラットフォームをリスタートする必要がある無数の理由のうちのいくつかは、新しいOSドライバ、新しいソフトウェア、または新しいソフトウェア・パッチをロードすることによって、プラットフォーム上で走るオペレーティング・システム(OS)を再初期化することを含む。OSは、そのレジストリ・キーを更新するため、またはOS環境をリスタートするために、プラットフォームをリスタートする必要があることを決定する。
しかしながら、いくつかの例では、OSに、そのレジストリ・キーを更新、またはOS環境をリスタートさせるために、プラットフォーム全体をリスタートする必要がない場合がある。例えば、プラットフォームに対してハードウェアの変更がない場合であって、プラットフォームに対してソフトウェアの変更のみ必要な場合は、プラットフォーム全体をリスタートすること、および、全てのハードウェアを再初期化することは必要でない。しかしながら、従来のプラットフォームは、プラットフォームに対してハードウェアの変更がない場合であって、プラットフォームに対してソフトウェアの変更のみ必要な場合でさえ、全プラットフォームのリセットを実行する。
図1Aは、レガシーベースの基本入出力システム(BIOS)をサポートする、従来のプラットフォームの先行技術のリスタート・シーケンス100を示す。時間線105は、リスタート・シーケンス100の時間参照基準を示す。時間0で従来のプラットフォームに電源が投入されたとき、それは早期の初期化を実行するフェーズ110に入る。フェーズ110において、中央処理装置(CPU)に電力が供給され、CPUは、そのリセット・ベクトルに存在するBIOSコードを実行する。BIOSは、パワー・オン・セルフテスト(POST)およびメモリ・テストのようなプラットフォームの基礎的なチェックを実行する。チェックが終了した後、BIOSはハードウェアを初期化する次のフェーズ115を開始する。フェーズ115において、BIOSは、プラットフォームに接続またはプラグインされたIO装置を検出し、ペリフェラル・コンポーネント・インターコネクト(PCI)の列挙(enumeration)、リード・オンリ・メモリ(ROM)の開始オプション、または、IO装置のポーリングのような初期化タスクを実行する。
ハードウェアを初期化するフェーズ115が完了したとき、フェーズ120においてOSが始動される。プラットフォームの動作中に、ソフトウェア起動リセット要求またはウォーム・リセットに遭遇する。フェーズ125は、ウォーム・リセット要求を受け取るプラットフォームを示す。ウォーム・リセット要求を受け取ることによって、プラットフォームは、プラットフォーム全体のリセットを実行し、再び早期初期化のフェーズ130に入り、ハードウェアを初期化するフェーズ135、そしてOSを始動するフェーズ140に入る。
本発明の実施例の特徴および利点は、主題に関する以下の詳細な記述から明らかになるであろう。
従来のプラットフォームのリスタート・シーケンス(先行技術)を示す。 本発明の一実施例に従って、プラットフォームのリスタート・シーケンスを示す。 プラットフォームのブート・フローを示す。 本発明の一実施例に従って、プラットフォームのリスタート・シーケンスを示す。 本発明の一実施例に従って、プラットフォームのリスタートのフローチャートを示す。 本発明の一実施例に従って、プラットフォームのリスタートのフローチャートを示す。 本発明の一実施例に従って、プラットフォームのリスタートのフローチャートを示す。 本発明の一実施例に従って、プラットフォームの高速リスタートを実行するシステムを示す。
本明細書において、本発明の「一実施例」または「ある実施例」とは、本実施例に関して記述された特定の特徴、構造、または特性が、本発明の少なくとも1つの実施例に含まれることを意味する。したがって、本明細書の全体を通して様々な箇所で「一実施例において」という語句が現れるが、必ずしもそれらの全てが同一の実施例に関するものではない。
本発明の実施例によって、プラットフォームは、プラットフォームのリスタート中に、プラットフォームに接続されたIO装置のハードウェア初期化を最小限にすることにより、高速でのリセットおよびリスタートを実行することが可能になる。プラットフォームは、サーバ、デスクトップ・コンピュータ、モバイル・コンピュータ、ワークステーション、あるいは、ウォーム・リセット要求を受け取ってコンピューティング装置をリスタートすることができるあらゆるコンピューティング装置を含むが、これらに制限されることはない。プラットフォームは、ハードディスク・ドライブ、ソリッド・ステート・ドライブ、メモリ・モジュール、プロセッサ、チップセット、ビデオ・ディスプレイ・カード、サウンド・カード、コンパクト・ディスク・ドライブ、フレキシブル・ディスク・ドライブ含むIO装置、あるいは、プラットフォームのための機能を実行する他のIO装置を包含するが、これに制限されない。ウォーム・リセット要求は、プラットフォーム上で走るOSによって、あるいはプラットフォームのローカルまたはリモート・ユーザによって起動された、ソフトウェアにより起動されたリセット要求(SIRR:software initiated reset request)である。プラットフォームのウォーム・リセットの引金となるOS内のイベントとしては、プラットフォームのローカルまたはリモート・ユーザからのリブートまたはリスタート要求、および、OSが新しいソフトウェア・モジュールまたは新しいソフトウェア・パッチをインストールした後のリスタート要求を受け取ることを含むが、これに制限されない。
図1Bは、本発明の一実施例に従って、レガシーベースのBIOSをサポートするプラットフォームのリスタート・シーケンス150を示す。早期初期化のフェーズ160は、図1Aに関して記述されたフェーズ130に類似する。一実施例において、プラットフォームのBIOSは、プラットフォームのウォーム・リセット要求を検出およびトラップするために修正される。フェーズ160は、パワー・オン・セルフテスト(POST)およびメモリ・テストのようなプラットフォームの基礎的なチェックの早期初期化を実行する。チェックを終了した後、修正されたBIOSは、ハードウェアを初期化する次のフェーズ165を開始する。フェーズ165でのハードウェアの初期化は、フェーズ115のハードウェアの初期化に類似する。
他の実施例では、プラットフォームのBIOSは、フェーズ165において、プラットフォームに接続されたいくつかまたは全てのIO装置の元のハードウェア状態を保存するために修正される。IO装置のハードウェア状態は、IO装置のレジスタ設定、およびPCIエニュメレーション中にBIOSによって決定された構成設定を含むが、これに制限されない。
例えば、BIOSがPCI列挙を実行し、プラットフォームに接続されたハードディスク・ドライブを検出した場合、BIOSは、例えば、ハードディスク・ドライブのタイプ、またはそのドライブのモード(マスタまたはスレイブ)のような、ハードディスク・ドライブからの情報を要求する。BIOSは、ハードディスク・ドライブから取得した情報に基づき、最適な転送速度設定を決定する。ハードディスク・ドライブのための最適な設定は、修正BIOSによって保存されるので、ハードディスクのための最適な設定は、プラットフォームのリスタート中に再プログラムすることができる。最適な設定が保存されることによって、BIOSは、ハードディスク・ドライブからの情報を要求する必要性、および、ウォーム・リセット中にプラットフォームがリスタートするたびに最適な設定を決定する必要性がなくなる。
ハードウェアを初期化するフェーズ165が完了した後、フェーズ170においてOSが始動され、フェーズ175において、OSによるウォーム・リセット要求がプラットフォームへ送られる。早期初期化のフェーズ180において、修正BIOSは、ウォーム・リセット要求を検出およびトラップする。ウォーム・リセット要求がトラップされた場合、修正BIOSは、ウォーム・リセット要求をCPUのみ初期化するリセット要求に変換する。ウォーム・リセット要求をCPUのみ初期化するリセット要求に変換することによって、プラットフォーム内のIO装置は、もはや自己初期化を実行するためのリセット要求を受け取らない。図1Aのフェーズ130において実行された全てのBIOSコードは、図1Bのフェーズ180では、CPUによって実行されない。フェーズ180の修正BIOSコードは、CPUの基礎的な初期化を実行し、フェーズ165で保存された元のハードウェア状態を用いてIO装置を再プログラムすることによって、プラットフォーム内のIO装置をそれらの元のハードウェア状態にリストアする。一実施例では、BIOSは、IO装置のレジスタをIO装置の元のハードウェア状態の保存されたレジスタ設定に再プログラムする。
フェーズ180が完了した後、プラットフォームは従来のハードウェアの初期化フェーズ135を回避してフェーズ190に入り、以前にフェーズ170でロードされたOSの同じバージョンを再始動またはリスタートする。時間線105,155は、リスタート・シーケンス150で節約された参照時間を、リスタート・シーケンス100と比較するために示される。図1Bにおいてプラットフォームのリスタートを実行するために必要な時間(フェーズ180およびフェーズ190)は、図1Aにおいてプラットフォームのリスタートを実行するために必要な時間(フェーズ130、フェーズ135、およびフェーズ140)よりも短い。
早期初期化のフェーズ180において実行され、かつ、プラットフォーム内のIO装置が自己初期化を実行する必要性を最小限にするような小さいBIOSコードによって、プラットフォームのリスタートが高速で実行される。図1Bのプラットフォームは、プラットフォームに対してハードウェアの変更がない場合であって、プラットフォームに対してソフトウェアの変更のみ必要な場合は、全部のプラットフォームのリセットを実行しない。むしろ、ウォーム・リセット要求がプラットフォームによって受け取られた場合には、ソフトウェア・イベントがそれ自体を再初期化するために必要なプラットフォームの一部のみがリセットされる。
本発明の一実施例では、プラットフォームのリスタートに関連するプラットフォームのオーバーヘッドが短縮される。プラットフォーム内のハードウェアの初期化を最小にすることは、プラットフォームのオーバーヘッドを短縮するための1つの方法であるが、プラットフォームのオーバーヘッドを短縮する他の方法もまた、プラットフォームを高速でリスタートさせるために用いることができる。プラットフォームがより高速でリスタートすることによって、ソフトウェア・パッチのインストールおよび定期的な保守に関連するプラットフォームのオーバーヘッドがより短縮されるので、その結果、企業において、より多くのプラットフォームが「ファイブナイン」を維持できることが保証される。
図2は、拡張可能なファームウェア・インタフェース(EFI)または一体化されたEFI(UEFI)をサポートするプラットフォームのブート・フロー200を示す。一実施例において、プラットフォーム内のUEFIは、EFI用のIntel(登録商標)プラットフォーム・イノベーション・フレームワーク(以下、「フレームワーク」と称する)に基づいて実行される。ブート・フロー200は、プラットフォームに電源が投入されるフェーズ201、プラットフォームが初期化されるフェーズ202、OSがブートするフェーズ203、ウォーム・リセット要求がOSによって受け取られるフェーズ204を含むが、これに制限されない。プラットフォームがリスタートしたとき、ブート・フロー200はフェーズ201に戻る。
ブート・フロー200の電源投入フェーズ201中で、プラットフォームは、フレームワークのセキュリティ(SEC)フェーズ210に入る。プレベリファイヤ(pre−verifier)212は、電源投入がされていない状態からプラットフォームに電力を供給すること、アクティブ状態からプラットフォームをリスタートすること、様々な例外条件を受け取ることを含む、あらゆるプラットフォームのリスタート・イベントを処理するが、これに制限されない。ブート・フロー200の次のフェーズは、プラットフォーム初期化フェーズ202である。プラットフォーム初期化フェーズ202は、プレEFI初期化(PEI)フェーズ220、およびフレームワークのドライバ実行環境(DXE)フェーズ230を含む。
SECフェーズ210後のPEIフェーズ220は、フレームワーク・アーキテクチャのDXEフェーズ230のために、最低限の先行必要条件に合致するようにプラットフォームを形成する。PEIフェーズ220中に、PEIコア222は、CPU224、チップセット226、およびマザーボード228のような重要なIO装置を初期化する。PEIコア222は、さらに、図2に示されていないプラットフォーム内の他の全ての重要なIO装置を初期化する。PEIフェーズの後、EFIドライバ・ディスパッチャ232は、DXEフェーズ230中に、プラットフォーム内に接続されたIO装置のデバイス・ドライバ、バス・ドライバ、またはシリアル・ドライバ236をロードする。構成プロトコル234も、このフェーズでロードされる。要素244,246は、装置ドライバ236および構成プロトコル246のためのUEFIインタフェースを示す。
DXEフェーズ230の後、ブート装置選択(BDS)フェーズ240に入る。ブート・マネージャ242は、プラットフォーム用のOSをブートするためのマス・ストレージ・ドライブを決定し、さらに、複数のオペレーティング・システムがプラットフォーム内に存在するか、またはインストールされている場合は、プラットフォーム内でどのOSをロードすべきかを決定する。ブート・フロー200は、OSブート・フェーズ203に入り、プラットフォームは、フレームワークの非常駐システム・ロード(TSL)フェーズ250に入る。ブート・マネージャ242は、非常駐OSブート・ローダ256をロードし、また、非常駐OSブート・ローダ256は、非常駐OS環境254を開始する。OS不存在下のアプリケーション252が、非常駐OS環境254によって始動される場合もある。非常駐OSブート・ローダ256が完了した後、最終OSブート・ローダ258が始動する。
一実施例では、ブート・マネージャ242は、最終OSローダのイメージを2度ロードし、キャッシュ内にそのイメージをコピーするために修正される。他の実施例では、ブート・マネージャ242は、最終OSブート・ローダを2度ロードし、メモリベースの不変なソースとしてその最終OSブート・ローダの第1のコピーを保存し、その最終OSブート・ローダのイメージの第2のコピーを始動する。他の実施例では、OSの一部または全部のイメージをリストアさせるために、メモリベースの不変なソースとしてOSの一部または全部のイメージもコピーされる。
最終OSブート・ローダ258が最終OS環境262を起動したとき、プラットフォームはランタイム(RT)フェーズ260に入り、OS存在下のアプリケーション264を実行する。ウォーム・リセット要求が、RTフェーズ中にOSによって受け取られたとき、ブート・フロー200は電源投入フェーズ201に戻ってプラットフォームをリスタートし、再びプラットフォーム初期化フェーズ202およびOSブート・フェーズ203に入る。
図3は、本発明の一実施例に従った、プラットフォームのリスタート・シーケンス300を示す。プラットフォームは、OSからウォーム・リセット要求304を受け取る。一実施例では、ブート・フロー200の後にウォーム・リセット要求304が続く。ウォーム・リセット要求が受け取られたとき、プラットフォームは、電源投入フェーズ301に入る。プレベリファイヤ312は、あらゆるウォーム・リセット要求を検出かつトラップするために修正される。プレベリファイヤ312は、さらに、ウォーム・リセットがトラップされたとき、ウォーム・リセットをCPUのみ初期化するリセット要求に変換するために修正される。
プレベリファイヤ312がウォーム・リセット304を検出したとき、それは、ウォーム・リセット304をトラップし、ウォーム・リセット304をCPUのみ初期化するリセット要求に変換する。プラットフォームは、CPUを初期化し、プレベリファイヤは、プラットフォーム内のIO装置を、それらの元のハードウェア状態にリストアする。一実施例では、プレベリファイヤは、フレームワークのblock_IO.reset関数を呼出し、各IO装置を既知の状態にリストアする。プラットフォーム内のIO装置は、プレベリファイヤ312によって既知のハードウェア状態または元のハードウェア状態にリストアされるので、リスタート・シーケンス300は、プラットフォーム初期化フェーズ302を回避し、PEIフェーズ320およびDXEフェーズ330は実行されない。
CPU324、チップセット326、およびマザーボード328を初期化するためにPEIコア322を実行するステップは実施されず、それらは破線によって表わされる。加えて、EFIドライバ・ディスパッチャ332、デバイス・ドライバ336、および構成プロトコル334は、リロードされず、それらは破線によって表わされる。プレベリファイヤ312は、BDSフェーズ340において、ブート・マネージャ342を呼び出す。一実施例では、ブート・マネージャ342は、BDSフェーズ340中に保存された最終OSブート・ローダ・イメージのコピーを用いて、最終OSブート・ローダ358をリストアする。他の実施例では、ブート・マネージャ342は、さらに、プラットフォームのリスタートを促進させるために、プラットフォームのブート・ディスクから追加のイメージをロードするために修正される。
元のOSローダ・イメージが使用される場合、非常駐OSブート・ローダ356、非常駐OS環境354、およびOS不存在下のアプリケーション352を実行するステップは行なわれず、それらは破線で表わされる。最終OSブート・ローダ358は、BDSフェーズ340中に保存された最終OSブート・ローダ・イメージのコピーを用いて実行され、最終OS環境362およびOS存在下のアプリケーション364は、RTフェーズ360中で実行される。
図4は、本発明の一実施例に従って、プラットフォームのリスタート・シーケンスのフローチャートを示す。ステップ405において、ウォーム・リセット要求は、プラットフォーム上で走るOSによって受け取られる。いくつかの実施例では、プラットフォームをリスタートするためのウォーム・リセット要求は、アプリケーションのインストールによってOS内で引き起こされるか、あるいは、プラットフォームのローカルまたはリモート・ユーザによって引き起こされる。OSは、電源遮断状態へプラットフォームの移行を開始する。いくつかの実施例では、OSは、システム・パワー状態5(S5)へプラットフォームの移行を開始する。
ステップ410において、プラットフォームは、OSのシャットダウンを開始し、そしてOSは、OS内のダーティ・データ(dirty data)を大容量記憶装置へ追い出す。大容量記憶装置には、ハードディスク・ドライブ、高速フラッシュ・ドライブ、ソリッド・ステート・メモリ、ユニバーサル・シリアル・バス(USB)ドライブ、またはプラットフォームのための任意の形式のデータ格納手段が含まれるが、これに制限されない。大容量記憶装置へのライトバックは実行されない。一実施例では、ダーティ・データは、ライトバック(WB)キャッシュへ追い出される。
ステップ410においてダーティ・データが追い出された後、ステップ415において、OSがシャットダウンし、ウォーム・リセットのトリガとなる。一実施例では、ウォーム・リセットは、プラットフォームのウォーム・リセットを実行するために、ポート64hを経由してオンボード・キーボード・コントローラに書き込むことによって引き起こされる。ステップ420において、プラットフォームは、BIOSを通して、カスタム高速リスタート・フローを実行する。一実施例では、図1Bで記述された修正BIOS180によって、カスタム高速リスタート・フロー420が実行される。他の実施例では、カスタム高速リスタート・フロー420は、図3で記述されたプレベリファイヤ312によって実行される。修正BIOS180およびプレベリファイヤ312の両方は、ウォーム・リセット要求を検出およびトラップし、ウォーム・リセットをCPUのみ初期化するリセット要求に変換する。プラットフォームのIO装置は、修正BIOS180またはプレベリファイヤ312によって元のハードウェア状態にリストアされる。
ステップ425において、修正BIOSは、OSをロードするために割込み19h(hex)を送出する。他の実施例では、プレベリファイヤは、元のOSローダ・イメージのコピーを用いてOSブート・ローダをリストアするためにブート・マネージャ342を始動する。ステップ430において、OSブート・ローダは、割込み13h(hex)を送出することによって、高速フラッシュ・ドライブをヒットする。ステップ435において、OSはネイティブ・ドライバを使用してブートされ、ステップ440において、OSのリスタートが完了する。
図5Aは、本発明の一実施例に従った、レガシーベースのBIOSをサポートするプラットフォームまたはフレームワークのリスタート・シーケンスのフローチャートを示す。ステップ502において、プラットフォームは、早期初期化フェーズに入り、プラットフォームのCPUおよびメモリに電源が投入される。CPUは、そのリセット・ベクトルに存在するBIOSコードを実行し、パワー・オン・セルフテスト(POST)およびメモリ・テストのようなプラットフォームの基礎的なチェックを行なう。ステップ504において、フローは、プラットフォームの高速リスタートがサポートされるかどうかをチェックする。「No」の場合、フローは、ステップ508のプラットフォームの通常のハードウェアの初期化へ直行する。通常のハードウェアの初期化中に、プラットフォームに接続またはプラグインされたIO装置を検出し、そして、ペリフェラル・コンポーネント・インターコネクト(PCI)の列挙、オプション・リード・オンリ・メモリ(ROM)の開始、IO装置のポーリングのようなタスクが実行される。「Yes」の場合、そのフローは、ステップ506において、プラットフォームの現在のハードウェア・コンフィギュレーションがプラットフォームの元のハードウェア・コンフィギュレーションと相違するかどうかをチェックする。
ハードウェア・コンフィギュレーションが変更された場合は、フローはステップ508に進み、プラットフォームの通常の初期化が実行される。ハードウェア・コンフィギュレーションが変更されていない場合は、フローはステップ510に進み、ウォーム・リセット要求があるかどうかを検出する。「Yes」の場合、そのフローはステップ5Bに進む。ステップ5Bについては、図5Bで説明する。「No」の場合、そのフローはステップ512に進み、プラットフォームの通常の初期化が実行される。一実施例では、ステップ502,504,506,510は、図1Bに関して記述したような、修正BIOS180によって実行される。他の実施例では、ステップ502,504,506,510は、図3のプレベリファイヤ312によって実行される。通常の初期化のステップ512は、PEIフェーズ320およびDXEフェーズ330中に実行される。ステップ506,508は、ハードウェア変更が検出された場合に、プラットフォームが高速リスタートを行なわないことを示すが、他の実施例では、ハードウェア変更が検出された場合でも、プラットフォームの高速リスタートをサポートすることができるように、フローを修正することが可能である。例えば、フローは、プラットフォーム内に接続された新規のIO装置を検出し、新規のIO装置への通常の初期化を行ない、そして、フローはステップ510へ続く。
ステップ512の後、フローはステップ514へ進み、プラットフォームがレガシーベースのBIOSをサポートするかどうかをチェックする。「Yes」の場合、フローはステップ518に進み、プラットフォームのレガシーベースのBIOSのメモリ領域内のデータをバッファにコピーする。レガシーベースのBIOSメモリ領域のデータには、BIOSデータ領域(BDA)内のデータおよび拡張BIOSデータ領域(EBDA)内のデータが含まれるが、これに制限されることはない。一実施例では、バッファは、OSまたはOSローダに利用不可であるとして、プラットフォームのメモリ・マップ内に示される。他の実施例では、コピーされたデータは、シグネチャで予め決められ、プラットフォームによって発見が可能なようにバッファの特定のメモリ細分性で置かれる。
ステップ514において、プラットフォームが、レガシーベースのBIOSをサポートしない場合、フローはステップ516に進む。ステップ516は、OSローダを2度ロードし、メモリベースの不変なソースとしてOSローダ・イメージの第1のコピーを保存し、OSローダ・イメージの第2のコピーを始動する。他の実施例では、OSの一部または全部のイメージをリストアさせるために、OSの一部のイメージまたは全部のイメージがメモリベースの不変なソースとしてコピーされる。ステップ520において、そのフローは、OSローダがランタイムへの移行を試みているかどうかをチェックする。「No」の場合、そのフローは、ステップ522において、プラットフォームのOSの初期化を継続する。「Yes」の場合、そのフローは、ステップ524において、ブート・サービス・メモリを維持し、プラットフォームのリスタート中、プラットフォームがそのファームウェア・インフラストラクチャを保持する能力を促進させる。
一実施例では、ステップ516,520,522,524は、EFIまたはフレームワークをサポートするプラットフォームのBDSフェーズにおいて、ブート・マネージャ342によって実行される。ブート・マネージャが、フレームワークの関数ExitBootServicesへの呼出しを受け取る場合、ブート・マネージャはブート・サービス・メモリを非構成にしない。ステップ508,518,524から進んで、ステップ526において、OSが始動される。ステップ528においてフローはリセットを受け取り、ステップ502に戻り、プラットフォームの早期初期化を行なう。
図5Bは、ステップ510でウォーム・リセット要求が検出された場合のフローチャートを示す。一実施例では、ステップ552,554,556,558は、図1Bに関して説明された修正BIOS180によって実行される。他の実施例では、ステップ552,554,560,562,564は、図3のプレベリファイヤ312によって実行される。ステップ552において、修正BIOS180またはプレベリファイヤ312は、ウォーム・リセット要求を検出およびトラップする。修正BIOS180またはプレベリファイヤ312は、さらに、ウォーム・リセット要求をCPUのみ初期化する要求に変換する。CPUは、元の状態または既知の状態に初期化される。ステップ554において、フローは、プラットフォームがレガシーベースのBIOSをサポートするかどうかをチェックする。「Yes」の場合、ステップ556において、修正BIOS180は、プラットフォームのCPUをリアル・モードに切り替え、アドバンスト・プログラマブル・インターラプト・コントローラ(APIC)を再プログラムする。修正BIOS180は、ステップ518で元の値のコピーされたデータを使用して、レガシーベースのBIOSメモリ領域をその元の値にリストアする。ステップ558において、修正BIOS18は、割込み19h(hex)を介してブート・ストラップ・ローダを起動し、プラットフォームをリスタートするためにOSを始動する。
プラットフォームが、レガシーベースのBIOSをサポートせず、EFIまたはフレームワークをサポートする場合は、ステップ560において、プレベリファイヤ312が、プラットフォームのCPUをプロテクト・モードへ切り替え、アドバンスト・プログラマブル・インターラプト・コントローラ(APIC)を再プログラムする。ステップ562において、プレベリファイヤ312は、プラットフォーム内のIO装置を、それらの元のハードウェア状態または既知の状態にリストアする。一実施例において、プレベリファイヤ312は、各IO装置を既知の状態または元のハードウェア状態にリセットする、フレームワークのblock_ioリセット関数を呼び出す。block_ioリセット関数は、各IO装置のために実行されるか、または、集合的に全IO装置のために実行される。
ステップ564において、プラットフォームのOSローダは、ステップ516で保存された元のOSローダ・イメージのコピーを用いてリストアされる。OSは、ステップ516で保存されたOSローダ・イメージを用いて始動される。ステップ564では、OSローダ・イメージのみがリストアされるが、他の実施例では、ステップ564で、他のイメージをリストアし、それによってプラットフォームを高速でリスタートさせる。ステップ564または558は、OSを始動するためのステップ568に進み、フローはステップ5Aに戻る。フローチャート5A,5Bは、レガシーベースのBIOSまたはEFIをサポートするプラットフォームのためのリスタート・シーケンスを示すが、これに制限する意図ではない。プラットフォームの高速リスタートを可能にするためにファームウェアをブートする他の形式もまた、本発明の実施例によりサポートされる。
図6は、一実施例に従った、ここに示された方法を実施するためのシステム600のブロック図である。システム600は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ノート型コンピュータ、携帯情報端末(PDA)、サーバ、ワークステーション、携帯電話、モバイル・コンピューティング装置、インターネット・アプライアンス、または他のタイプのコンピューティング装置を含むが、これに制限されない。他の実施例では、ここに示された方法を実施するために使用されるシステム600は、チップ(SOC)システム上のシステムである。
システム600は、メモリ・コントローラ630および入力/出力(I/O)コントローラ640を具備するチップセット635を含む。チップセットは、典型的には、複数の汎用目的および/または特定目的レジスタ、タイマ等と同様に、メモリおよびI/O管理機能を提供するものであり、それらはプロセッサ625によってアクセス可能であるか、または使用される。プロセッサ625は、1またはそれ以上のプロセッサを使用して実施される。
メモリ・コントローラ630は、プロセッサ625が、バス665を経由して、揮発性メモリ610および不揮発性メモリ620を含むメイン・メモリ615にアクセスし、かつ通信することを可能にするような機能を実行する。本発明の一実施例では、修正BIOS180が不揮発性メモリ620内に格納される。本発明の他の実施例では、プリベリファイヤ312が不揮発性メモリ620内に格納される。
揮発性メモリ610は、シンクロナス・ダイナミック・ランダム・アクセス・メモリ(SDRAM)、ダイナミック・ランダム・アクセス・メモリ(DRAM)、RAMBUSダイナミック・ランダム・アクセス・メモリ(RDRAM)、および/または他のタイプのあらゆるランダム・アクセス・メモリ装置を含むが、これに制限されない。不揮発性メモリ620は、フラッシュ・メモリ、リード・オンリ・メモリ(ROM)、電気的に消去可能なプログラマブル・リード・オンリ・メモリ(EEPROM)、および/または他の望ましいタイプのメモリ装置を含むが、これに制限されない。
メモリ615は、プロセッサ625によって実行される情報および命令を格納する。メモリ615は、さらに、プロセッサ625が命令を実行している間に、一時的な変数または他の中間情報を格納する。
システム600は、バス665で結合されたインタフェース回路655を含むが、これに制限されない。インタフェース回路655は、イーサネット(登録商標)インタフェース、ユニバーサル・シリアル・バス(USB)、第3世代の入力/出力インタフェース(3GIO)、および/または任意の適切なタイプのインタフェースを含む任意のタイプの周知のインタフェース規格を使用して実行されるが、これらに制限されることはない。
1またはそれ以上の入力装置645は、インタフェース回路655に接続される。入力装置645によって、ユーザは、データおよびコマンドをプロセッサ625へ入力することが可能になる。例えば、入力装置645は、キーボード、マウス、タッチ・センシティブ・ディスプレイ、トラックパッド、トラックボール、および/または音声認識システムを使用して実行されるが、これに制限されない。
1またはそれ以上の出力装置650は、インタフェース回路655に接続される。例えば、出力装置650は、発光ダイオード・ディスプレイ(LED)、液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイ、プリンタ、および/またはスピーカを使用して実行されるが、これに制限されない。インタフェース回路655は、グラフィックス・ドライバ・カードを含む。
システム600は、さらに、ソフトウェアおよびデータを格納するために、1またはそれ以上の大容量記憶装置660を含む。そのような大容量記憶装置660の例としては、フレキシブル・ディスクおよびドライブ、ハードディスク・ドライブ、高速フラッシュ・ディスク・ドライブ、ソリッド・ステート・ハード・ドライブ、コンパクト・ディスクおよびドライブ、ならびに、デジタル・ビデオ・ディスク(DVD)およびドライブを含むが、これに制限されない。
インタフェース回路655は、ネットワークを介して外部コンピュータとのデータの交換を促進するためのモデムまたはネットワーク・インタフェース・カードのような通信装置を含む。システム600とネットワークとの間の通信リンクは、イーサネット(登録商標)接続、デジタル加入者回線(DSL)、電話回線、携帯電話、同軸ケーブルなどのような任意のタイプのネットワーク接続である。
入力装置645、出力装置650、大容量記憶装置660、および/またはネットワークへのアクセスは、典型的には、従来の方法でI/Oコントローラ640によって制御される。特に、I/Oコントローラ640は、プロセッサ625が、バス665およびインタフェース回路655を介して、入力装置645、出力装置650、大容量記憶装置660、および/またはネットワークと通信できる機能を果たす。
図6に示されたコンポーネントは、システム600内の個別のブロックとして表されるが、これらのブロックのいくつかによって実行される機能は、単一の半導体回路内に集積されてもよく、あるいは2またはそれ以上の別個の集積回路を使用して実行されてもよい。例えば、メモリ・コントローラ630およびI/Oコントローラ640は、チップセット635内の個別のブロックとして表されるが、当業者であれば、メモリ・コントローラ630およびI/Oコントローラ640は、単一の半導体回路内に集積可能であることを容易に理解できるであろう。
開示された主題の実施例が記述されたが、当業者であれば、開示された主題を実行するために、他の多くの方法を互換的に使用することができることを容易に理解するであろう。例えば、フローチャートにおいてブロックを実行する順序は変更可能であり、および/または、記述されたブロック図/フローチャートにおけるブロックのいくつかは、変更し、削除し、または組合わせることも可能である。
以上ように、開示された主題の多様な側面について記述された。説明のために、特定の数、システム、および構成が、主題についての完全な理解を提供するために記述された。しかしながら、本開示の利益を有する当業者にとって、本主題は、特定の詳細事項が無くても実行可能であることは明白である。他の例では、周知の特徴、コンポーネント、あるいはモジュールは、開示された本主題を不明瞭にしないために、省略され、単純化され、結合され、または分割される。
開示された主題の多様な実施例は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せにおいて実行することができ、機能、手続、データ構造、論理、アプリケーション・プログラム、デザイン表現またはデザインのシミュレーション、エミュレーション、および組立てのようなプログラム・コードへの参照によって、またはプログラム・コードと結合して記述され、マシンによってアクセスされると、タスクを実行し、アブストラクト・データ型あるいは下位レベルのハードウェア・コンテキストを定義し、あるいは結果を生みだす。
開示された主題は、実例となる実施例に関して記述されているが、この記述は制限目的であると解釈されることを意図していない。主題の他の実施例と同様に、実例となる実施例の多様な修正も開示された主題の範囲内であると認められることは、開示された主題に関係する当業者には明白である。
200,300 ブート・フロー
201,301 電源投入フェーズ
210,310 セキュリティ(SEC)フェーズ
220,320 プレEFI初期化(PEI)フェーズ
230,330 ドライバ実行環境(DXE)フェーズ
240,340 ブート装置選択(BDS)フェーズ
250,350 非常駐システム・ロード(TSL)フェーズ
260,360 ランタイム(RT)フェーズ
600 システム
610 揮発性メモリ
620 不揮発性メモリ
625 プロセッサ
630 メモリ・コントローラ
645 入力装置
650 出力装置
655 インタフェース回路
660 大容量記憶装置

Claims (29)

  1. コンピューティング・プラットフォームをリスタートする方法において、
    前記コンピューティング・プラットフォームに結合された入力/出力(IO)装置から、前記コンピューティング・プラットフォームによって、前記IO装置に保存された、前記IO装置のハードウェア状態を表す少なくとも1つのレジスタ設定を獲得する段階と、
    前記コンピューティング・プラットフォームによって、前記コンピューティング・プラットフォームの記憶装置内に前記IO装置の少なくとも1つのレジスタ設定を保存する段階であって、前記記憶装置は前記IO装置から分離している、段階と、
    リセット要求を受け取る段階と、
    前記リセット要求が前記コンピューティング・プラットフォームのソフトウェアにより起動されたリセット要求(SIRR)であることを決定する段階と、
    前記リセット要求がSIRRであることの決定に応答して、前記コンピューティング・プラットフォームの前記SIRRをトラップする段階と、
    前記トラップに応答して、前記コンピューティング・プラットフォームに結合された前記IO装置を前記コンピューティング・プラットフォームによって元のハードウェア状態にリストアする段階であって、前記リストアする段階は、前記IO装置の少なくとも1つのレジスタ設定を前記IO装置から以前に獲得された保存済みのレジスタ設定でリストアする、段階と、
    前記リストアに応答して、前記コンピューティング・プラットフォームをリスタートするためにオペレーティング・システム(OS)を始動する段階と、
    から構成されることを特徴とする方法。
  2. 前記SIRRがトラップされたとき、前記SIRRを中央処理装置(CPU)のみ初期化するリセット要求に変換する段階と、
    前記変換に応答して、前記CPUを初期化する段階と、
    をさらに含むことを特徴とする請求項1記載の方法。
  3. 前記コンピューティング・プラットフォームを初期化する段階をさらに含むことを特徴とする請求項1記載の方法。
  4. 前記コンピューティング・プラットフォームを初期化する段階は、前記IO装置の前記元のハードウェア状態の少なくとも1つのレジスタ設定を保存する段階を含むことを特徴とする請求項3記載の方法。
  5. 前記コンピューティング・プラットフォームを初期化する段階は、元のOSローダ・イメージのコピーを保存する段階を含み、前記コンピューティング・プラットフォームの基本入出力システム(BIOS)は、拡張可能なファームウェア・インタフェース(EFI)をサポートすることを特徴とする請求項3記載の方法。
  6. 前記コンピューティング・プラットフォームを初期化する段階は、
    前記コンピューティング・プラットフォームのOSローダがランタイムに移行しようとしていることを決定する段階と、
    前記コンピューティング・プラットフォームの前記リスタート中に、前記コンピューティング・プラットフォームがそのファームウェア・インフラストラクチャを保持する能力を促進させるために、ブート・サービス・メモリを維持する段階であって、前記コンピューティング・プラットフォームの基本入出力システム(BIOS)は、拡張可能なファームウェア・インタフェース(EFI)をサポートする、段階と、
    を含むことを特徴とする請求項3記載の方法。
  7. 前記コンピューティング・プラットフォームを初期化する段階は、前記コンピューティング・プラットフォームのレガシーベースの基本入出力システム(BIOS)のメモリ領域に関連するデータをバッファにコピーする段階を含み、前記バッファは、メモリ・マップ内に、前記OSまたはOSローダが利用不可であるとして表示されることを特徴とする請求項3記載の方法。
  8. 前記レガシーベースのBIOSのメモリ領域に関連する前記データは、BIOSデータ領域(BDA)内のデータまたは拡張されたBDA(EBDA)内のデータであることを特徴とする請求項7記載の方法。
  9. 前記入力/出力(IO)装置をリストアする段階は、前記IO装置の少なくとも1つのレジスタのそれぞれを、前記IO装置の前記元のハードウェア状態の前記保存されたレジスタ設定で再プログラムすることを特徴とする請求項4記載の方法。
  10. 前記元のOSローダ・イメージの前記コピーで、前記コンピューティング・プラットフォームのOSローダをリストアする段階をさらに含むことを特徴とする請求項5記載の方法。
  11. 前記コンピューティング・プラットフォームの前記レガシーベースのBIOSのメモリ領域を、前記コピーされたデータでリストアする段階と、
    前記OSを始動するためにブート・ストラップ・ローダを起動し、前記コンピューティング・プラットフォームをリスタートする段階と、
    をさらに含むことを特徴とする請求項7記載の方法。
  12. コンピュータ読取り可能な媒体において、前記コンピューティング・プラットフォーム内のプロセッサによって前記媒体に格納された命令が実行されたことに応答して、前記プロセッサが前記コンピューティング・プラットフォームをリスタートさせるために、前記コンピューティング・プラットフォームが、
    前記コンピューティング・プラットフォームに結合された入力/出力(IO)装置から、前記IO装置に保存された、前記IO装置のハードウェア状態を表す少なくとも1つのレジスタ設定を獲得し、
    前記コンピューティング・プラットフォームの前記IO装置から分離している記憶装置内に前記IO装置の少なくとも1つのレジスタ設定を保存し、
    リセット要求を受け取り、
    前記リセット要求が前記コンピューティング・プラットフォームのソフトウェアにより起動されたリセット要求(SIRR)であることを決定し、
    前記リセット要求がSIRRであることの決定に応答して、前記コンピューティング・プラットフォームの前記SIRRをトラップし、
    前記IO装置の少なくとも1つのレジスタ設定を前記IO装置から以前に獲得された保存済みのレジスタ設定でリストアすることを通じて、前記トラップに応答して、前記コンピューティング・プラットフォームに結合された前記IO装置を元のハードウェア状態にリストアし、
    前記リストアに応答して、前記コンピューティング・プラットフォームをリスタートするためにオペレーティング・システム(OS)を始動する、
    ことを特徴とするコンピュータ読取り可能な媒体。
  13. 前記コンピューティング・プラットフォームは、前記実行に応答して、
    前記SIRRがトラップされたとき、前記SIRRを、中央処理装置(CPU)のみ初期化するリセット要求に変換し、
    前記変換に応答して、前記CPUを初期化する、
    ために、前記命令はさらに構成されることを特徴とする請求項12記載のコンピュータ読取り可能な媒体。
  14. 前記コンピューティング・プラットフォームを初期化するための命令をさらに構成することを特徴とする請求項12記載のコンピュータ読取り可能な媒体。
  15. 前記命令は、元のOSローダ・イメージのコピーの保存を通じて前記コンピューティング・プラットフォームを初期化するために構成され、前記コンピューティング・プラットフォームの基本入出力システム(BIOS)は、拡張可能なファームウェア・インタフェース(EFI)をサポートすることを特徴とする請求項14記載のコンピュータ読取り可能な媒体。
  16. 前記命令は、
    前記コンピューティング・プラットフォームのOSローダがランタイムに移行しようとしていることの決定、および
    前記コンピューティング・プラットフォームの前記リスタート中に、前記コンピューティング・プラットフォームがそのファームウェア・インフラストラクチャを保持する能力を促進させるために、ブート・サービス・メモリを維持し、前記コンピューティング・プラットフォームの基本入出力システム(BIOS)が拡張可能なファームウェア・インタフェース(EFI)をサポートすることを通じて、
    前記コンピューティング・プラットフォームを初期化するために構成されることを特徴とする請求項14記載のコンピュータ読取り可能な媒体。
  17. 前記命令は、前記コンピューティング・プラットフォームのレガシーベースの基本入出力システム(BIOS)のメモリ領域に関連するデータのバッファへのコピーを通じて前記コンピューティング・プラットフォームを初期化するために構成され、前記バッファは、メモリ・マップ内に、前記OSまたはOSローダが利用不可であるとして表示されることを特徴とする請求項14記載のコンピュータ読取り可能な媒体。
  18. 前記レガシーベースのBIOSのメモリ領域に関連する前記データは、BIOSデータ領域(BDA)内のデータまたは拡張されたBDA(EBDA)内のデータであることを特徴とする請求項17記載のコンピュータ読取り可能な媒体。
  19. 前記命令は、前記実行に応じて、前記コンピューティング・プラットフォームのOSローダを、前記元のOSローダ・イメージの前記コピーでリストアするためにさらに構成されることを特徴とする請求項15記載のコンピュータ読取り可能な媒体。
  20. 前記命令は、前記実行に応じて、
    前記コンピューティング・プラットフォームの前記レガシーベースのBIOSのメモリ領域を、前記コピーされたデータでリストアし、
    前記OSを始動するためにブート・ストラップ・ローダを起動し、前記コンピューティング・プラットフォームをリスタートする、
    ためにさらに構成されることを特徴とする請求項17記載のコンピュータ読取り可能な媒体。
  21. コンピューティング・プラットフォームに結合された入力/出力(IO)装置と、
    前記コンピューティング・プラットフォームに結合されたオペレーティング・システム(OS)と、
    前記IO装置から分離した記憶装置と、
    前記IO装置に結合された基本入出力システム(BIOS)モジュールと、
    から構成され、
    基本入出力システム(BIOS)モジュールは、
    前記IO装置から、前記IO装置に保存された、前記IO装置のハードウェア状態を表す少なくとも1つのレジスタ設定を獲得し、
    前記IO装置の少なくとも1つのレジスタ設定を前記記憶装置内に保存し、
    リセット要求を受け取り、
    前記リセット要求が前記コンピューティング・プラットフォームのソフトウェアにより起動されたリセット要求(SIRR)であることを決定し、
    前記リセット要求がSIRRであることの決定に応答して、前記コンピューティング・プラットフォームの前記SIRRをトラップし、
    前記IO装置の少なくとも1つのレジスタ設定を前記IO装置から以前に獲得された保存済みのレジスタ設定でリストアすることを通じて、前記トラップに応答して、前記IO装置を元のハードウェア状態にリストアし、
    前記リストアに応答して、前記コンピューティング・プラットフォームをリスタートするために前記OSを始動する、
    ことを特徴とするコンピューティング・プラットフォーム。
  22. 前記コンピューティング・プラットフォームに結合された中央処理装置(CPU)をさらに含み、
    前記BIOSモジュールは、
    前記SIRRがトラップされたとき、前記SIRRを、CPUのみ初期化するリセット要求に変換し、
    前記変換に応答して、前記CPUを初期化する、
    ために構成されることを特徴とする請求項21記載のコンピューティング・プラットフォーム。
  23. 前記BIOSモジュールは、前記コンピューティング・プラットフォームを初期化することを特徴とする請求項21記載のコンピューティング・プラットフォーム。
  24. 前記BIOSモジュールは、元のOSローダ・イメージのコピーの保存を通じて前記プラットフォームを初期化するために構成され、前記BIOSモジュールは、拡張可能なファームウェア・インタフェース(EFI)をサポートすることを特徴とする請求項21記載のプラットフォーム。
  25. 前記コンピューティング・プラットフォームを初期化するための前記BIOSモジュールは、
    前記コンピューティング・プラットフォームのOSローダがランタイムに移行しようとしていることを決定し、
    前記コンピューティング・プラットフォームの前記リスタート中に、コンピューティング・プラットフォームがそのファームウェア・インフラストラクチャを保持する能力を促進させるために、ブート・サービス・メモリを維持し、前記BIOSモジュールは、拡張可能なファームウェア・インタフェース(EFI)をサポートする、
    ためにさらに構成されることを特徴とする請求項21記載のコンピューティング・プラットフォーム。
  26. 前記BIOSモジュールは、前記コンピューティング・プラットフォームのレガシーベースの基本入出力システム(BIOS)のメモリ領域に関連するデータのバッファへのコピーを通じて前記コンピューティング・プラットフォームを初期化するために構成され、前記バッファは、メモリ・マップ内に、前記OSまたはOSローダが利用不可であるとして表示されることを特徴とする請求項21記載のコンピューティング・プラットフォーム。
  27. 前記BIOSモジュールの前記レガシーベースのBIOSのメモリ領域に関連する前記データは、BIOSデータ領域(BDA)内のデータまたは拡張されたBDA(EBDA)内のデータであることを特徴とする請求項26記載のコンピューティング・プラットフォーム。
  28. 前記BIOSモジュールは、前記元のOSローダ・イメージの前記コピーで、前記コンピューティング・プラットフォームのOSローダをリストアするためにさらに構成されることを特徴とする請求項24記載のコンピューティング・プラットフォーム。
  29. 前記BIOSモジュールは、
    前記コンピューティング・プラットフォームの前記レガシーベースのBIOSのメモリ領域を、前記コピーされたデータでリストアし、
    前記OSを始動するためにブート・ストラップ・ローダを起動し、前記コンピューティング・プラットフォームをリスタートする、
    ためにさらに構成されることを特徴とする請求項26記載のコンピューティング・プラットフォーム。
JP2009262302A 2008-11-19 2009-11-17 プラットフォームの高速リスタートを可能にする方法およびシステム Expired - Fee Related JP5368947B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/274,276 2008-11-19
US12/274,276 US8296553B2 (en) 2008-11-19 2008-11-19 Method and system to enable fast platform restart

Publications (2)

Publication Number Publication Date
JP2010123125A JP2010123125A (ja) 2010-06-03
JP5368947B2 true JP5368947B2 (ja) 2013-12-18

Family

ID=41716650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009262302A Expired - Fee Related JP5368947B2 (ja) 2008-11-19 2009-11-17 プラットフォームの高速リスタートを可能にする方法およびシステム

Country Status (4)

Country Link
US (1) US8296553B2 (ja)
EP (1) EP2189901B1 (ja)
JP (1) JP5368947B2 (ja)
CN (1) CN101814035B (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8443180B2 (en) * 2009-07-25 2013-05-14 Giga-Byte Technology Co., Ltd. Method for operation system startup
TW201106271A (en) * 2009-08-14 2011-02-16 Insyde Software Corp Method of switching different operating systems in computer
US8743128B2 (en) 2009-09-01 2014-06-03 Blackberry Limited Mobile wireless communications device with reset functions and related methods
US20120042156A1 (en) * 2010-08-16 2012-02-16 Giga-Byte Technology Co., Lti Method of multiple boot manager
US8386618B2 (en) * 2010-09-24 2013-02-26 Intel Corporation System and method for facilitating wireless communication during a pre-boot phase of a computing device
US9032194B2 (en) * 2010-12-06 2015-05-12 Microsoft Technology Licensing, Llc Fast computer startup
US8788798B2 (en) 2010-12-06 2014-07-22 Microsoft Corporation Fast computer startup
US8543849B2 (en) 2010-12-06 2013-09-24 Microsoft Corporation Fast computer startup
JP5712689B2 (ja) * 2011-03-09 2015-05-07 日本電気株式会社 ハードウェア構成縮退時の高速立ち上げ方法、高速立ち上げ装置及び高速立ち上げプログラム
US8572294B2 (en) * 2011-05-17 2013-10-29 Ncr Corporation Device start up system and method
CN102880477B (zh) * 2011-07-14 2016-08-17 联想(北京)有限公司 一种实现计算机启动的方法和计算机
JP5476363B2 (ja) 2011-12-19 2014-04-23 レノボ・シンガポール・プライベート・リミテッド 生体認証装置を利用したコンピュータの起動方法およびコンピュータ
CN103299311B (zh) 2011-12-29 2015-04-29 英特尔公司 用于可信引导优化的方法和设备
US9262178B2 (en) * 2012-01-30 2016-02-16 Intel Corporation Method for reducing platform boot times by providing lazy input/output abstractions
US20130297924A1 (en) * 2012-04-03 2013-11-07 Insyde Software Method of running multiple operating systems on an x86-based computer
CN103377063B (zh) * 2012-04-28 2016-06-22 国际商业机器公司 从遗留操作系统环境恢复到uefi预启动环境的方法和系统
US8856560B2 (en) 2012-04-30 2014-10-07 Hewlett-Packard Development Company, L.P. Settings based on output powered by low power state power rail
US9317689B2 (en) * 2012-06-15 2016-04-19 Visa International Service Association Method and apparatus for secure application execution
EP3097477B1 (en) * 2014-01-22 2019-03-27 Hewlett-Packard Development Company, L.P. System firmware configuration data
GB2527569B (en) 2014-06-26 2016-06-08 Ibm Booting a computer from a user trusted device with an operating system loader stored thereon
US10838737B1 (en) * 2017-08-31 2020-11-17 American Megatrends International, Llc Restoration of memory content to restore machine state
KR20200019444A (ko) * 2018-08-14 2020-02-24 에스케이하이닉스 주식회사 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
CN110956487A (zh) * 2019-10-31 2020-04-03 武汉朝牌工场广告制作有限公司 一种广告标识牌智能管理节能系统
US11640312B2 (en) * 2020-02-27 2023-05-02 Hewlett Packard Enterprise Development Lp System reset using a controller
US20220413991A1 (en) * 2021-06-25 2022-12-29 Microsoft Technology Licensing, Llc Techniques for Improved Statistically Accurate A/B Testing of Software Build Versions
CN113434182A (zh) * 2021-06-29 2021-09-24 深圳忆联信息系统有限公司 固态硬盘固件升级立即生效的实现方法、装置及计算机设备
CN114579195B (zh) * 2022-03-11 2023-08-18 浪潮商用机器有限公司 一种操作系统重启方法、系统及相关组件
CN115952004B (zh) * 2023-02-17 2023-05-26 上海励驰半导体有限公司 资源配置方法、装置、电子设备及存储介质
CN117520253B (zh) * 2024-01-08 2024-04-19 长城信息股份有限公司 一种飞腾平台清除cmos的方法、电子设备及存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5185877A (en) 1987-09-04 1993-02-09 Digital Equipment Corporation Protocol for transfer of DMA data
JPH0798686A (ja) * 1993-09-29 1995-04-11 Toshiba Corp 拡張ボード設定方式
US5999989A (en) * 1997-06-17 1999-12-07 Compaq Computer Corporation Plug-and-play
JP3334602B2 (ja) * 1998-03-27 2002-10-15 日本電気株式会社 Pciデバイスのコンフィギュレーションレジスタの変更・設定方法
KR100283243B1 (ko) 1998-05-11 2001-03-02 구자홍 운영체제의 부팅방법
US6480510B1 (en) * 1998-07-28 2002-11-12 Serconet Ltd. Local area network of serial intelligent cells
US6690677B1 (en) * 1999-07-20 2004-02-10 Serconet Ltd. Network for telephony and data communication
US6842459B1 (en) * 2000-04-19 2005-01-11 Serconet Ltd. Network combining wired and non-wired segments
JP2002082808A (ja) 2000-09-07 2002-03-22 Seiko Epson Corp プログラム制御方法
JP2003084981A (ja) * 2001-09-11 2003-03-20 Seiko Epson Corp 情報処理装置の起動方法
JP2003167649A (ja) * 2001-11-28 2003-06-13 Mitsubishi Electric Corp 情報処理装置
US7254676B2 (en) 2002-11-15 2007-08-07 Intel Corporation Processor cache memory as RAM for execution of boot code
WO2004107168A1 (en) * 2003-06-03 2004-12-09 Koninklijke Philips Electronics N.V. Booting from non-volatile memory
TWI243335B (en) * 2003-09-04 2005-11-11 Htc Corp Booting method for performing warm boot or cold boot when CPU is down, and its computer system
JP2005234872A (ja) 2004-02-19 2005-09-02 Seiko Epson Corp コンピュータ、コンピュータ起動方法、biosプログラムおよび情報記憶媒体
US7310725B2 (en) * 2004-06-30 2007-12-18 Intel Corporation Common platform pre-boot and run-time firmware services
EP1963966A4 (en) * 2005-12-24 2009-12-30 Intel Corp METHOD AND DEVICE FOR EFFICIENT ARRANGING OF PORTABLE EXECUTABLE (PE) PICTURES
JP5076317B2 (ja) * 2005-12-27 2012-11-21 ソニー株式会社 情報処理装置、情報処理方法及びそのプログラム
WO2007110955A1 (ja) * 2006-03-29 2007-10-04 Fujitsu Limited 携帯端末装置、状態監視方法および状態監視プログラム
JP4595937B2 (ja) 2006-12-28 2010-12-08 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム

Also Published As

Publication number Publication date
CN101814035A (zh) 2010-08-25
EP2189901B1 (en) 2019-06-26
CN101814035B (zh) 2013-09-04
US20100125723A1 (en) 2010-05-20
US8296553B2 (en) 2012-10-23
EP2189901A1 (en) 2010-05-26
JP2010123125A (ja) 2010-06-03

Similar Documents

Publication Publication Date Title
JP5368947B2 (ja) プラットフォームの高速リスタートを可能にする方法およびシステム
CN109478135B (zh) 计算机系统和用于重新引导计算机系统的方法
US8327174B2 (en) Loading operating systems using memory segmentation and ACPI based context switch
EP2329365B1 (en) Turbo boot systems and methods
US11169819B2 (en) Information handling system (IHS) and method to proactively restore firmware components to a computer readable storage device of an IHS
US7093116B2 (en) Methods and apparatus to operate in multiple phases of a basic input/output system (BIOS)
US11194588B2 (en) Information handling systems and method to provide secure shared memory access at OS runtime
US9740502B2 (en) Virtual bus device using management engine
WO2019118171A1 (en) Firmware update
JP2007516535A (ja) システム構成の遠隔修正のための方法および装置
US11893379B2 (en) Interface and warm reset path for memory device firmware upgrades
US11334427B2 (en) System and method to reduce address range scrub execution time in non-volatile dual inline memory modules
WO2022135429A1 (zh) 快速启动方法
US20140208089A1 (en) System and Method for Dynamically Changing System Behavior by Modifying Boot Configuration Data and Registry Entries
US20190004818A1 (en) Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof
US11314521B2 (en) System and method for managing component updates
US11030047B2 (en) Information handling system and method to restore system firmware to a selected restore point
US7284084B2 (en) ROM scan memory expander
US10572151B2 (en) System and method to allocate available high bandwidth memory to UEFI pool services
CN113342365A (zh) 操作系统部署方法、装置、设备及计算机可读存储介质
US20220374244A1 (en) Systems and methods to control software version when deploying os application software from the boot firmware
JP2003242026A (ja) 情報処理システムおよびプログラム実行モード制御方法
TWI273477B (en) Operating system compatible processing method of computer platform and device thereof
CN114579195A (zh) 一种操作系统重启方法、系统及相关组件

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120423

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120723

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120726

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130408

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130411

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130507

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130826

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130913

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

LAPS Cancellation because of no payment of annual fees