(57)【要約】コンピュータシステムは、システムメモリＳＭと不揮発性メモリＮＶＭを含んでいる。コンピュータシステムは、クリーンなブートアップ手順の間にシステムメモリに記憶されたシステム状態の少なくとも１部を不揮発性メモリ２０９，３０９にコピーするために構成される。コンピュータシステムのその後の始動の間、システム状態は、不揮発性メモリからシステムメモリ２０５，３０５にコピーされ、大幅な高速のシステム始動が得られる。コンピュータシステムのコンフィギュレーションが変化した場合、完全なブートアップ手順が再び実行され、新たなシステム状態が不揮発性メモリにコピーされ、前に記憶されたシステム状態を上書きする。
2006526831.tif 000002
【特許請求の範囲】
【請求項１】
システムメモリと、
前記システムメモリによりアクセス可能な不揮発性メモリとを有するコンピュータシステムであって、
当該コンピュータシステムは、第一のブートアップ手順の間に前記システムメモリに記憶されているシステム状態の少なくとも一部を前記不揮発性メモリにコピーするために構成される、
ことを特徴とするコンピュータシステム。
【請求項２】
当該コンピュータシステムの第二のブートアップ手順の間に当該システムメモリに前記不揮発性メモリに記憶されているシステム状態をコピーするために更に構成される、
請求項１記載のコンピュータシステム。
【請求項３】
当該コンピュータシステムのコンフィギュレーションが変化したかに依存して、前記第一のブートアップ手順又は第二のブートアップ手順のいずれかを実行するために更に構成される、
請求項２記載のコンピュータシステム。
【請求項４】
当該コンピュータシステムのコンフィギュレーションが変化したかを示す専用のレジスタフラグを更に含む、
請求項３記載のコンピュータシステム。
【請求項５】
前記不揮発性メモリは、ＭＲＡＭ（Magnetic  Random  Access  Memory）を有する、
ことを特徴とする請求項１記載のコンピュータシステム。
【請求項６】
第一のブートアップ手順を含む、コンピュータシステムをブートする方法であって、
前記コンピュータシステムは、システムメモリと、前記システムメモリによりアクセス可能な不揮発性メモリとを有し、
前記第一のブートアップ手順は、
ブートデバイスに記憶されているブートシーケンスを実行するステップと、
前記ブートシーケンスの実行の間に前記システムメモリに記憶されているシステム状態の少なくとも１部を前記不揮発性のメモリにコピーするステップと、
を含むことを特徴とする方法。
【請求項７】
当該方法は第二のブートアップ手順を更に含み、前記第二のブートアップ手順は、前記不揮発性メモリに記憶されるシステム状態を前記システムメモリにコピーするステップを含む、
ことを特徴とする請求項６記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムのブートに関する。
【背景技術】
【０００２】
パーソナルコンピュータのようなコンピュータシステムは、コンピュータオペレーティングシステムがロードされる初期化手順を利用することがある。一般に、コンピュータシステム用のオペレーティングシステムは、磁気ハードディスクドライブのような不揮発性の記憶媒体に記憶される。しかし、コンピュータシステムのプロセッサは、いわゆるシステムメモリからの命令を実行し、このシステムメモリは、ＤＲＡＭのようなアドレス指定可能なメモリである。このアドレス指定可能なメモリを初期化するため、少量の不揮発性のブートアップメモリが専用のメモリに典型的に提供される。専用のメモリは、プログラム、いわゆる基本的な入力／出力（ＢＩＯＳ）プログラムを含んでおり、ハードディスクドライブからオペレーティングシステムの幾つかの最初の部分を読出し、システムメモリにロードするために使用される。このオペレーティングシステムの一部は、次いで、オペレーティングシステムの残りの部分をロード及び初期化する役割を果たす。このプロセスは、一般にオペレィングシステムの「ブート」と呼ばれる。コンピュータがそれ自身を初期化又は「ブート」した後、通常はデフォルト状態にあり、ユーザが幾つかのプログラム又はプロセスを初期化する準備ができる。通常、コンピュータシステムは、ユーザの過去の操作に関わらず、各初期化の後に同じ状態にある。コンピュータシステムがオンにされたときに実行されるブートアップ手順は、通常はコールドブートと呼ばれ、{Ctrl}＋{Alt}＋{Delete}又は類似を使用して実行されるブートアップ手順はワームブートと呼ばれる。ブートアップ手順は、システムメモリにオペレーティングシステムファイルをコピーするのを含み、ブート装置に記憶されたブートシーケンスの実行を典型的に必要とするので、時間のかかる手順である。結果として、コンピュータシステムのユーザは、彼がコンピュータシステムを使用するのを実際に開始する前に、装置をスイッチオンした後の幾らかの時間を待つ必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、コンピュータシステムをブートアップするために必要とされる時間を大きく低減する、改善されたブートアップ手順をもつコンピュータシステムを提供することにある。
【課題を解決するための手段】
【０００４】
上記目的は、システムメモリと不揮発性メモリを有するコンピュータシステムにより達成され、不揮発性メモリは、システムメモリによりアクセス可能である。コンピュータシステムは、最初のブートアップ手順の間にシステムメモリに記憶されるシステム状態の少なくとも１部を不揮発性メモリにコピーするために構成される。コンピュータシステムをブートするとき、最初のブートアップ手順から生じるシステム状態のコピーは、不揮発性メモリに記憶される。このシステム状態のコピーは、コンピュータシステムがブートアップ手順の結果として得られた状態を直接定義するためにスイッチオンされる次の時間で使用することができる。ブートデバイスに記憶されるブートシーケンスの実行は、システムメモリへのオペレーティングシステムファイルのコピーと同様に必要とされない。ブートアップ手順の間の全ての処理の大部分が除かれ、ブートアップ手順を実行するために必要とされる時間を大きく低減する。さらに、不揮発性メモリに記憶されるシステム状態は、クリーンであって、たとえばブート後のシステムの使用の間に導入される誤りを持たない良好に定義されたシステム状態となる。
【０００５】
US6,449,683B1は、プロセッサに結合された不揮発性のランダムアクセスメモリを含むコンピュータシステムを記載している。低電力モードに入るためのコマンドの受信又は生成に応じて、プロセッサは、システム装置の動作状態を記憶するためにメモリにスペースを割り当てる。デバイスの状態がメモリにひとたび記憶されると、次いで、プロセッサは、コンピュータシステムに低電力モードに入ることを指示するコマンド信号をアサートする。
【０００６】
US6,393,584は、プロセッサ及びハードディスクドライブを含むコンピュータシステムを記載している。「スリープ」モードに入るためのコマンドの受信又は生成に応じて、コンピュータシステムの動作状態を記憶するスリープファイルがハードディスクドライブで作成される。動作状態が記憶されたとき、コンピュータシステムから電力が除かれる。起動に応じて、コンピュータシステムのオペレーティングシステムがロードされ、動作状態は、ハードディスクドライブにスリープファイルから回復される。動作状態の回復の後、コンピュータシステムは、スリープ状態を発動する前と同じ状態になる。
【０００７】
US6,098,158は、プロセッサ、ＲＡＭストレージ及びシステムメモリを含むコンピュータシステムを開示している。特定のソフトウェアアプリケーションがいわゆる高速のブートアップ手順を始める場合がある。高速ブートアップ手順を実行したとき、ブートイメージがＲＡＭストレージで保存される。１以上のブートイメージがアプリケーションを初期化することに関連して記憶される場合がある。時間的に後の瞬間で、ブートイメージをシステムメモリに取り戻すことができる。停電又は他のシステムの故障又は中断のような所与の発生に応じて、コンピュータシステムは、ブートイメージから所与の実行状態に回復される。
【０００８】
しかし、これらの文献のいずれも、コンピュータシステムの高速なコールドブートを可能にするため、不揮発性メモリで良好に定義されたシステム状態の少なくとも１部を保存する原理を開示していない。US6,449,683B1及びUS6,393,584B1は、低電力モードから回復したときに完全なシステム状態を回復することに焦点を当てており、US6,098,158は、エラーから回復するとき、すなわち高速コールドブートよりはむしろ高速ワームブートで完全なシステム状態を回復することに焦点を当てている。
【０００９】
本発明の更なる実施の形態は、従属の請求項で記載されている、本発明によれば、コンピュータシステムをブートするための方法も同様に特許請求される。
【発明を実施するための最良の形態】
【００１０】
図１を参照して、概念的なブロック図は、パーソナルコンピュータの形態でのコンピュータシステムを例示しており、このコンピュータシステムは、中央処理ユニットＣＰＵ、ハードディスクドライブＨＤＤ、システムメモリＳＭ、不揮発性メモリＮＶＭ、システムバスＳＢ、ビデオコントローラＶＣ、ディスプレイ装置ＤＤ、キーボードコントローラＫＣ、キーボードＫＢ及びリードオンリメモリＲＯＭを有している。システムバスＳＢは、カップリング１を介して中央処理ユニットＣＰＵに結合され、カップリング３を介してハードディスクドライブＨＤＤに結合され、カップリング５を介してビデオコントローラＶＣに結合され、カップリング７を介してキーボードコントローラＫＣに結合され、及びカップリング１７を介してリードオンリメモリＲＯＭに結合されている。中央処理ユニットＣＰＵは、カップリング９を介してシステムメモリＳＭに結合され、システムメモリＳＭは、カップリング１５を介して不揮発性メモリＮＶＭに結合されている。ビデオコントローラＶＣは、カップリング１１を介してディスプレイ装置ＤＤに結合されている。キーボードコントローラＫＣ、中央処理ユニットＣＰＵ、ハードディスクドライブＨＤＤ、リードオンリメモリＲＯＭ及びビデオコントローラＶＣは、システムバスＳＢを介して結合されている。代替的な実施の形態では、不揮発性メモリＮＶＭは、システムバスＳＢに直接結合されており、中央処理装置ＣＰＵを介してシステムメモリＳＭと通信する。コンピュータシステムは、プログラム又はプログラムモジュールのような、予め記録された命令のセットを実行可能であって、これにより、コンピュータシステムは、予め決定されたやり方で振舞う。プログラムモジュールは、ルーチン、特定のタスクを実行するか、又は特定の抽象的なデータタイプを実現するプログラム、オブジェクト、コンポーネント、データ構造等を含んでいる場合がある。
【００１１】
他の実施の形態では、コンピュータシステムは、たとえば、フロプティカルディスクドライブ、プリンタ、マウス、ＣＤ−ＲＯＭプレーヤ、及びＤＶＤプレーヤを含む、異なる装置を有している場合がある。
【００１２】
図１に係るコンピュータシステムがオンにされたとき、コンピュータシステムは、始動するために何を実行すべきかをパーソナルコンピュータに即座に伝えるべき命令を発見する必要がある。発見したこれらの命令は、いわゆるＢＩＯＳ（Basic  Input  Output  System）プログラムにある。ＢＩＯＳプログラムは、リードオンリメモリＲＯＭに記憶されており、たとえば、それがまるでリードオンリメモリであるかのように使用されるフラッシュメモリである。ＢＩＯＳプログラムを実行するため、ＢＩＯＳプログラムは、リードオンリメモリＲＯＭからシステムバスＳＢを介してシステムメモリＳＭにはじめにロードされる。図２は、本発明に係るコンピュータシステムをブートするための一般的なステップを示すフローチャートである。図２を参照して、コンピュータシステムがオンにされたとき、ステップ２０１で、オペレーティングシステムローダが始動される。次のステップ２０３では、コンピュータシステムのコンフィギュレーション（configuration）が変化されたかが確認される。システムコンフィギュレーションが変化した場合、ステップ２０７で、通常のブートアップ手順が続く。ステップ２０９で、ブートアップ手順の間のシステムメモリＳＭに記憶されるシステム状態の少なくとも１部は、システムメモリＳＭから不揮発性メモリＮＶＭにコピーされる。システムコンフィギュレーションが変化していない場合、第二のブートアップ手順が続く。ステップ２０５では、不揮発性メモリＮＶＭに記憶されたシステム状態がシステムメモリＳＭにコピーされる。ステップ２０５と並行して、図２では図示されていないが、残りの初期化手順が実行される場合がある。第二のブートアップ手順により、システムコンフィギュレーションが変化しない場合にコンピュータシステムの非常に高速なブートアップが可能となる。これは、このブートアップ手順が通常のブートアップ手順の結果のメモリ−メモリ間のコピーを含んでいるからである。さらに、第二のブートアップ手順は、使用されているプラットフォーム及びオペレーティングシステムの両者に独立である。また、繰り返される冬眠よりも安定かつ信頼性が高い。これは、クリーンなブートアップ手順の後に得られるシステム状態が不揮発性メモリＮＶＭに記憶され、冬眠のケースで、システム状態がブートアップ後のコンピュータシステムの使用の間に導入されるエラーを含まないことを保証することができないからである。
【００１３】
好ましくは、不揮発性メモリＮＶＭは、ＭＲＡＭ（Magnetic  Random  Access  Memory）を有する。ＭＲＡＭにより、高速なメモリアクセスが可能となり、中央処理装置ＣＰＵは、高速で不揮発性メモリＮＶＭからシステム状態を検索することができ、ブートアップ手順の間にコンピュータシステムの性能が向上される。
【００１４】
好適な実施の形態では、本発明に係るコンピュータシステムは、ブートアップデートフラグ（ＢＵＦ）を含んでおり、マザーボードのチップセット上の専用レジスタとして実現することができる。不揮発性メモリＮＶＭに記憶されたシステム状態が更新されない、すなわちコンピュータシステムの現在のコンフィギュレーションを反映しない可能性があるときにＢＵＦが設定される。たとえば、コンピュータシステムのケーシングが開いた場合、ハードウェアコンフィギュレーションが変化する可能性がある。ケーシングが開いたことは、物理的なスイッチにより検出され、ＢＵＦが設定される。他の例は、ＢＵＦを設定する専用のドライバにより検出される、コンピュータシステムのオペレーティングシステムが更新される場合であるか、又は、コンピュータシステムが接続されるネットワークの設定における変化の場合である。更に別の例は、ＢＵＦがコンピュータシステムの個別のボタンにより手動的に設定することができることである。はじめに、すなわち最初にコンピュータシステムに電源が投入され、ＢＵＦが設定される。代替的な実施の形態では、システムコンフィギュレーションにおける変化が発生したかを確認するルーチンが実現される。このルーチンは、ＢＵＦと結合される場合がある。そのケースでは、ルーチンがシステムコンフィギュレーションにおける変化を検出した場合にＢＵＦが設定される。図３は、図１に係るコンピュータシステムをブートするための方法を示すフローチャートである。図３を参照して、電力がオンにされたとき、ステップ３０１において、ＢＩＯＳプログラムがシステムメモリＳＭにロードされた後にＢＩＯＳプログラムが始動される。ＢＩＯＳプログラムの始動は、ハードウェアの初期化と同様にパワーオンセルフテスト（POST:  Power-On  Self  Test）の実行を含む場合がある。ステップ３０３は、ＢＩＯＳプログラムにより実行され、ＢＵＦが設定されたかを確認する。ＢＵＦが設定された場合、通常のブートアップ手順が実行される。ステップ３１７では、ブートデバイスが初期化され、図１に示されるコンピュータシステムについて、ハードディスクドライブＨＤＤがブートデバイスである。マスターブートレコード（ＭＢＲ）は、ステップ３１９で、ハードディスクドライブから読み出される。ステップ３２１は、マスターブートレコードのアクティブなパーティションを読み取る。ステップ３２３では、ファイルシステムがマウントされる。ステップ３２５は、ブートデバイスからオペレーティングシステム（ＯＳ）ローダを読み取る。ステップ３２７では、オペレーティングシステムは、システムメモリＳＭにロードされる。システムメモリＳＭのコピー、すなわちシステム状態のコピーがつくられ、ステップ３２９で不揮発性メモリＮＶＭに記憶される。ステップ３３１は、ＢＵＦの値をリセットする。ステップ３０７は、コンピュータシステムが使用の準備ができたことを示している。ＢＵＦが設定されていない場合、第二のブートアップ手順が続く。ステップ３０５では、不揮発性メモリＮＭＶに記憶されるシステム状態は、システムメモリＳＭにコピーされる。ステップ３０５に並行して、ハードディスクドライブＨＤＤの形式でのブートデバイスは、ステップ３０９で初期化される。マスターブートレコード（ＭＢＲ）は、ステップ３１１でハードディスクドライブＨＤＤから読み出される。ステップ３１３は、マスターブートレコードのアクティブパーティションを読み出す。ステップ３１５では、ファイルシステムがマウントされる。ステップ３０５及び３１５を終了した後、コンピュータシステムは、システム３０７で使用の準備ができる。コンピュータシステムがステップ３０５を実行した後の選択された時間インターバルで応答しない場合、エラーが生じている場合があり、コンピュータシステムのオペレーティングシステムがコールドブートを強制する。この実施の形態で記載される通常のブートアップ手順の間に実行されるステップは、ブートアップ手順で典型的に行われるステップである。他の実施の形態では、コンピュータシステム、ＢＩＯＳプログラム及びハードウェアの製造業者にどのデバイスが存在するかに依存して異なるステップが実行される場合がある。
【００１５】
ステップ３２９で不揮発性メモリにコピーされるシステム状態は、システムメモリＳＭに記憶されるような状態である。システムメモリＳＭの一部ではないバッファ、レジスタ又はキャッシュのようなコンピュータシステムにおける全ての他の不揮発性メモリが通常のブートアップ手順の後に空であることが仮定される。空ではない場合、これらバッファ、レジスタ又はキャッシュは、ステップ３２９で不揮発性メモリＮＶＭにシステムメモリＳＭに記憶されたシステム状態をコピーする前に、図３に示されないがフラッシュされる、すなわちリセットされる必要がある。このようにして、ステップ３２９を実行した後に不揮発性メモリＮＶＭの内容がコンピュータシステムの状態の完全な表現であることが保証される。
【００１６】
本実施の形態では、ステップ３２９は、ブートアップ手順の完了後にシステムメモリＳＭに記憶される全てのシステム状態を不揮発性メモリＮＶＭにコピーする。他の実施の形態では、システムメモリＳＭで占有されるメモリ量がシステム状態の記憶のために不揮発性メモリで確保されるスペースを近似するとすぐ、ステップ３２９を始動するドライバを使用することで、システム状態の一部のみが不揮発性メモリにコピーされる。代替的に、不揮発性メモリＮＶＭにシステム状態の一部をコピーすることは、専用のボタンを押すユーザにより始動するか、たとえばユーザがログインする必要がある瞬間といったブートアップ手順における良好に定義されたポイントで始動することができる。ブートアップ手順における所定のポイントまでに得られたシステム状態の一部のみが不揮発性メモリＮＶＭに記憶されるケースでは、ステップ３０５を実行した後に、かかるポイントから前方に実行されていないブートアップ手順の一部が実行される必要がある。
【００１７】
更に別の実施の形態では、ステップ３２９で不揮発性メモリＮＶＭに保存されるシステム状態の量は、同じコンピュータシステムで作業する複数のユーザのケースで、ユーザに依存するようにされる。たとえば、最も頻度の高いユーザについて、最も頻度の低いユーザと比較されたときに大量のシステム状態が保存され、最初のユーザグループが比較的高速のブートアップ手順を有することが可能となる。
【００１８】
幾つかの実施の形態では、異なるタイプのオペレーティングシステム、又は幾つかの例のオペレーティングシステムについてステップ３１７〜３３１を繰り返すことで、複数の異なるシステム状態が不揮発性メモリＮＶＭに保存される。結果として、ユーザは、コンピュータシステムのコールドブートの必要なしに、２以上のオペレーティングシステムの間で切り替える場合がある。
【００１９】
異なる実施の形態では、コンピュータシステムは、ハンドヘルド装置、マイクロプロセッサシステム、マイクロプロセッサベース又はプログラマブル家電製品、ネットワークＰＣ、マイクロコンピュータ、メインフレームコンピュータ等のような他のシステムコンフィギュレーションを有する場合がある。
【００２０】
上述された実施の形態は、本発明を限定するよりはむしろ例示するものであって、当業者であれば、特許請求の範囲から逸脱することなしに多くの代替的な実施の形態を設計することができる。請求項では、括弧の間に配置される参照符号は、請求項を限定するとして解釈されるべきではない。単語「有する“comprising”」は、請求項で列挙された以外のエレメント又はステップの存在を排除しない。エレメントに先行する単語“ａ”又は“ａｎ”は、複数のかかるエレメントの存在を排除しない。幾つかの手段を列挙している装置の請求項では、これらの手段の幾つかが同一のハードウェアで実施することができる。所定の手段が相互に異なる従属の請求項で引用される事実は、これらの手段の組み合わせを使用することができないことを示すものではない。
【図面の簡単な説明】
【００２１】
【図１】本発明に係るコンピュータシステムを示す概念図である。
【図２】本発明に係るコンピュータシステムをブートするための一般的なステップを示すフローチャートである。
【図３】図１に従うコンピュータシステムをブートするためのステップを示すフローチャートである。
【図１】
2006526831.tif 000003
【図２】
2006526831.tif 000004
【図３】
2006526831.tif 000005
【国際調査報告】
2006526831.tif 000006
2006526831.tif 000007
2006526831.tif 000008