(57)【要約】  【課題】  【解決手段】  不揮発性再プログラム可能なメモリデバイスを使用してパーソナルコンピュータシステムを迅速にブートする方法。システムワーキングメモリ、ハードウエアコンフィグレーション、およびシステムが所望の動作状態にあるときにメモリに保存されているその他の情報のコンテンツの圧縮したメモリイメージを不揮発性再プログラム可能なメモリに保存する。リブートするときに、このプロセスが変更されたハードウエアを検出し、継続する前にリブートからそらせて前記ハードウエアを同定する。【選択図】    図１
2008502988.tif 000002
【特許請求の範囲】
【請求項１】
システムワーキングメモリを有するコンピュータシステムをオペレーティングシステムが完全にロードされるレベルへブートする方法であって、前記システムワーキングメモリの所望のコンテンツのメモリイメージを提供するステップと、当該メモリイメージを不揮発性再プログラム可能なメモリ内へロードするステップと、システムをブートする必要があるときに、前記不揮発性再プログラム可能なメモリから前記システムワーキングメモリへメモリイメージをロードするステップを具えるブート方法において、
前記メモリイメージを再ロードするときに、ローダが前記メモリイメージの部分と適合しない前記コンピュータシステム内の変更されたハードウエアを認識して、前記メモリイメージの影響されていない部分を処理する前にこの変更されたハードウエアの初期化処理を行うことを特徴とする方法。
【請求項２】
請求項１に記載の方法において、当該方法が、前記メモリイメージを暗号化し、圧縮して、この暗号化して圧縮したメモリイメージを非揮発性再プログラム可能なメモリ内にロードするステップと、再ロードするときに、前記圧縮したメモリイメージの圧縮を解除して復号し、この圧縮解除したメモリイメージを前記ワーキングメモリへロードするステップとを具えることを特徴とする方法。
【請求項３】
請求項１に記載の方法において、前記システムワーキングメモリの所望のコンテンツのメモリイメージを提供するステップが、前記システムのワーキングメモリのブート後のコンテンツ、ＣＰＵレジスタのコンテンツ、およびその他のチップセットデバイスのコンテンツのメモリイメージを提供するステップを具えることを特徴とする方法。
【請求項４】
請求項１に記載のコンピュータシステムをブートする方法において、前記システムワーキングメモリの所望のコンテンツのメモリイメージを提供するステップが、前記システムワーキングメモリと、最後にコンピュータシステムがシャットダウンする前のその他のハードウエアデバイスのレジスタに保存されている全てのデータのイメージであるメモリイメージを提供するステップを具えることを特徴とする方法。
【請求項５】
請求項４に記載のコンピュータシステムをブートする方法において、前記メモリイメージはバーチャルメモリからのページ、あるいは揮発性ページファイルを具えることを特徴とする方法。
【請求項６】
請求項１に記載の方法において、当該方法が、前記オペレーティングシステムのセットアップ処理を行う間に前記メモリイメージを生成するステップを具えることを特徴とする方法。
【請求項７】
請求項１に記載の方法において、当該方法が、システムのコンフィグレーションの有意な変更に応じて前記メモリイメージを更新するステップを具えることを特徴とする方法。
【請求項８】
請求項７に記載の方法において、前記更新ステップが、全回正常起動時のメモリイメージをアーカイブするステップを具えることを特徴とする方法。
【請求項９】
請求項１に記載の方法において、前記不揮発性再プログラム可能なメモリがフラッシュメモリであって、この方法が、フラッシュファイルシステム及び／又はFlash Translation Layer（FTL）をサポートするように前記オペーレーティングシステムのソースコードを変更するステップを具えることを特徴とする方法。
【請求項１０】
請求項１に記載の方法において、当該方法が、前記不揮発性再プログラム可能なメモリからブートするようにファームウエアを変更するステップを具えることを特徴とする方法。
【請求項１１】
請求項１０に記載の方法において、前記ファームウエアが前記メモリイメージからブートするのにパスワードを要求することを特徴とする方法。
【請求項１２】
請求項１１に記載の方法において、正しいパスワードの供給失敗が、保存されている全メモリイメージを一つ残らず削除することを特徴とする方法。
【請求項１３】
請求項１に記載の方法において、前記メモリイメージが、全システムセッティングと、ログインしたユーザに関するメモリコンテンツを含むイメージであることを特徴とする方法。
【請求項１４】
コンピュータシステムにおいて：
デジタル処理手段と；
前記デジタル処理手段用のワーキングメモリと；
前記システムワーキングメモリおよびその他のメモリ部分の所望のコンテンツのメモリイメージを含む不揮発性再プログラム可能なメモリであって、前記コンピュータシステムをブートするために前記メモリイメージを前記システムワーキングメモリに転送可能であり、前記メモリイメージがハードウエアコンフィグレーションとハードウエアコンテキスト情報を具えることを特徴とする不揮発性再プログラム可能なメモリと；
を具えることを特徴とするコンピュータシステム。
【請求項１５】
請求項１４に記載のコンピュータシステムにおいて、前記コンピュータハードウエアコンフィグレーションが前記メモリイメージ内のコンピュータハードウエアコンフィグレーションから変更されている場合、この変更されたハードウエアに関するイメージ部分はロードされず、変更されたハードウエアが認識されて、前記メモリイメージの残りの部分が処理される前に初期化されることを特徴とするコンピュータシステム。
【請求項１６】
請求項１４に記載のコンピュータシステムにおいて、前記システムが前記メモリイメージの少なくとも一のアーカイブコピーを含むディスクドライブまたはその他のメモリストレージデバイスを具えることを特徴とするコンピュータシステム。
【請求項１７】
請求項１４に記載のコンピュータシステムにおいて、前記メモリイメージは、現存のワーキングメモリ、前記ＣＰＵレジスタ、その他のチップセットレジスタ、及びいずれかの一時的に保存されたメモリページの、所望のブート後のコンテンツのイメージであることを特徴とするコンピュータシステム。
【請求項１８】
請求項１４に記載のコンピュータシステムにおいて、前記メモリイメージが前記コンピュータシステムがシャットダウンする前の前記ワーキングメモリに保存された全データのイメージであることを特徴とするコンピュータシステム。
【請求項１９】
請求項１４に記載のコンピュータシステムにおいて、前記メモリイメージが、前記コンピュータシステムのオペレーティングシステムのセットアッププロセス中に作られたものであることを特徴とするコンピュータシステム。
【請求項２０】
請求項１４に記載のコンピュータシステムにおいて、前記システムがディスクドライブ又は前記メモリイメージの少なくとも一の「前回正常起動時」のコピーを具えるその他のメモリストレージデバイスを具えることを特徴とするコンピュータシステム。
【請求項２１】
請求項１４に記載のコンピュータシステムにおいて、前記不揮発性再プログラム可能なメモリがフラッシュメモリを使用していることを特徴とするコンピュータシステム。
【請求項２２】
システムワーキングメモリを有するコンピュータシステムをシャットダウンする方法において、当該方法が：
前記システムワーキングメモリ、前記ハードウエアのコンフィグレーションとコンテキスト、ＣＰＵレジスタ、チップセットレジスタ、および揮発性ページファイルメモリのコンテンツのメモリイメージを作るステップと；
前記メモリイメージを圧縮した形式で不揮発性再プログラム可能なメモリ内にロードするステップと；
前記コンピュータシステムをシャットダウンするステップと；
を具えることを特徴とする方法。
【請求項２３】
請求項２２に記載の方法において、前記メモリイメージが更に暗号化されていることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の属する技術分野
本発明は、コンピュータシステムまたはその他のデジタル処理装置のブートに関し、特に、デスクトップコンピュータシステムと、モバイルコンピュータデバイスを含むパーソナルコンピュータに関する。
【０００２】
発明の背景
コールドブートまたはハードブートからパーソナルコンピュータが通常稼動する最初のプログラムは、読出専用メモリ（ＲＯＭ）または電気的に消去可能な読出専用メモリ（ＥＥＰＲＯＭ）にロードされたインストラクションセットである。このセットは、システムのハードウエアを初期化させ、機械にハードディスクドライブを起動させてブートストラップローダを見つけるのに必要な情報を含んでいる。
【０００３】
従って、現在では、オペレーションシステムがローカルハードディスクドライブからのブート情報とファイルを、一般にランダムアクセスメモリ（ＲＡＭ）と呼ばれているワーキングメモリまたはシステムメモリにロードする。この情報は、通常、ファイルシステムドライバ、オペレーティングシステムカーネル、および有用な情報に解析しなくてはならないコンフィグレーションおよびデバイス情報、および一般的な表面カスタマイゼーションを含む。
【０００４】
これらのファイルのシーア番号とサイズのために、コンピュータは時にブート、すなわち、使用可能な状態にするのに数分かかることがある。これは、時にエンドユーザを非常に欲求不満にさせる。
【０００５】
パーソナルコンピュータをブートさせるのにかかる時間は、作業者の生産性に大きく影響することがある。パーソナルコンピュータは職場、特にオフィス環境において広く使用されている。大きなオフィスでは、コンピュータのブートを待つのに費やす時間が、多大な非生産時間をもたらすことがある。職員が仕事中ミーティングに持ってゆくモバイル式パーソナルコンピュータを使用している場合は、この問題が大きくなる。更に、単純にコンピュータを使用した結果として生じるオペレーティングシステムのエラーによって、パーソナルコンピュータをリブートしなければならないことは珍しくない。
【０００６】
更に、ある環境では、コンピュータシステムまたはその他のデジタル処理装置の連続的な機能性が、例えば通信システムや生産プロセスの制御において非常に重要である。従って、システムの障害または「クラッシュ」に起因するダウン時間は、最小限に維持されなくてはならない。
【０００７】
電力制御インターフェース（ＡＣＰＩ：Advanced Configuration and Power Interface）の仕様によればブート時間を低減することができるが、この仕様を用いたシステムでも、通常、ユーザがコンピュータを使用できるようになるまでに少なくとも３０秒待つことが必要である。
【０００８】
この仕様を実行するためには、米国特許第６，４４６，２０３号にあるように、ブートしたコンピュータメモリの「イメージ」を提供し、これをハードディスクまたはメモリ内に保存することが知られている。この特許明細書では、更にオペレーティングシステムが十分にブートされて、読み出すディスクの領域を同定することが必要であるが、このイメージに対するセキュリティが提供されていないばかりか、イメージの変更に対する準備も、ワーキングメモリ以外へ保存することについてへの言及もない。
【０００９】
米国特許出願２００２／００７８３３８号は、二次メモリ中にブートイメージを保存するようにしているが、このメモリからのブートが検出されてもセキュリティがなく、又、コンフィグレーションの変更を検出することができない。
【００１０】
米国特許出願２００１／００３９６１２号は、パワーダウン時にメモリにブートイメージを提供するが、イメージのセキュリティに関する準備はないばかりではなく、保存により多くのワーキングメモリを必要とするように見える。
【００１１】
米国特許出願２００２／０１６９９５０号は、最初のブート処理のブートイメージと、中間部分の圧縮ブートイメージを、最初のブートイメージのコピーライトチェックと共に提供しているが、その他の明確なセキュリティあるいはハードウエアチェックはなされていない。
【００１２】
ＷＯ０１／１３２２１は、ＲＯＭを使用して、ユーザプログラムを含むブートイメージを保存しているが、ディスクの圧縮したＯＳを保存するにもかかわらず、明確なセキュリティはない。
【００１３】
米国特許第７１，６７３，４１７号は、ハードディスクに圧縮した状態で保存したブートイメージを提供しているが、コンフィグレーションの変更は更新している。これは、明確なセキュリティや、ハードウエアチェックはない。
【００１４】
従って、電源投入時にブートするイメージを保存するコンピュータに関する更なる問題は、おそらくどこかに確実に保持されているデータを含めて、ブートしたコンピュータのメモリデータの不安定バージョンがコンピュータに保持されていることである。これは、従って、メモリイメージの抽出が通常のブーティング処理に含まれる何らかのセキュリティをバイパスする一手段とすることができる。
【００１５】
更に、コンピュータのスイッチが切れている間にコンピュータのハードウエアが変わることがある。この場合、コンピュータは、ハードウエアが変更されたことを認識して、全ブート用のブートイメージを放棄するか、変更が生じたことを認識できずに、普通にブートしようとする。双方共に、ブート時間に延長が生じる。
【００１６】
発明の目的
本発明の目的は、現存のシステムをブートするのにかかる時間を低減するコンピュータシステムのブート方法及び装置を提供することであり、そのときに、コンピュータメモリ内に保存されているデータに安全な環境を提供することである。
【００１７】
本発明の更なる目的は、コンピュータシステムのコンフィグレーションの変更が可能であるが、この変更によって迅速なブート処理の全体的な放棄を生じさせない手段を提供することである。
【００１８】
本発明のこれらの目的は、少なくとも従来技術の欠点を克服する方法となるか、あるいは公衆に有益な選択を提供するものである。
【００１９】
発明の概要
システムワーキングメモリを有するコンピュータシステムをオペレーティングシステムが完全にロードされるレベルへブートする方法であって、前記システムワーキングメモリの所望のコンテンツのメモリイメージを提供するステップと、当該メモリイメージを不揮発性再プログラム可能なメモリ内へロードするステップとを具え、前記システムをブートする必要があるときに、前記不揮発性再プログラム可能なメモリから前記メモリイメージを前記システムワーキングメモリへロードする、ブート方法において、前記メモリイメージを再ロードするときに、ローダが前記メモリイメージの部分と適合しない前記コンピュータシステム内の変更されたハードウエアを認識して、前記メモリイメージの影響されていない部分を処理する前にこの変更されたハードウエアの初期化処理を行うことを特徴とする。
【００２０】
好ましくは、この方法は、前記メモリイメージを暗号化し、圧縮して、この暗号化して圧縮したメモリイメージを非揮発性再プログラム可能なメモリ内にロードするステップと、再ロードするときに、前記圧縮したメモリイメージの圧縮を解除して復号し、この圧縮解除したメモリイメージを前記ワーキングメモリへロードするステップとを具える。
【００２１】
好ましくは、前記システムワーキングメモリの所望のコンテンツのメモリイメージを提供するステップが、前記システムワーキングメモリのブート後のコンテンツ、ＣＰＵレジスタのコンテンツ、およびその他のチップセットデバイスのコンテンツのメモリイメージを提供するステップを具える。
【００２２】
好ましくは、前記システムワーキングメモリの所望のコンテンツのメモリイメージを提供するステップが、前記システムワーキングメモリと、最後にコンピュータがシャットダウンする前のその他のハードウエアデバイスのレジスタとに保存されている全てのデータのイメージであるメモリイメージを提供するステップを具える。
【００２３】
好ましくは、前記メモリイメージはバーチャルメモリからのページ、あるいは揮発性ページファイルを具える。
【００２４】
好ましくは、前記オペレーティングシステムのセットアップ処理を行う間に前記メモリイメージを生成するステップを具える。
【００２５】
好ましくは、システムのコンフィグレーションの有意な変更に応じて前記メモリイメージを更新するステップを具える。
【００２６】
好ましくは、前記更新ステップが、前回正常起動時のメモリイメージをアーカイブするステップを具える。
【００２７】
好ましくは、前記不揮発性再プログラム可能なメモリがフラッシュメモリであって、この方法が、フラッシュファイルシステム及び／又はFlash Translation Layer（ＦＴＬ）をサポートするように前記オペレーティングシステムのソースコードを変更するステップを具える。
【００２８】
好ましくは、前記不揮発性再プログラム可能なメモリからブートするようにファームウエアまたはＢＩＯＳを変更するステップを具える。
【００２９】
好ましくは、前記ファームウエアは前記メモリイメージからブートするのにパスワードを要求する。
【００３０】
好ましくは、正しいパスワード供給の失敗が、保存されている全メモリイメージを一つ残らず削除する。
【００３１】
好ましくは、前記メモリイメージが、全システムセッティングと、ログインしたユーザに関するメモリコンテンツを含むイメージである。
【００３２】
代替的に、本発明はコンピュータシステムに関し、このシステムが：
デジタル処理手段と；
前記デジタル処理手段用のワーキングメモリと；
前記システムワーキングメモリおよびその他のメモリ部分の所望のコンテンツのメモリイメージを含む不揮発性再プログラム可能なメモリであって、前記コンピュータシステムをブートするために前記メモリイメージを前記システムワーキングメモリに転送可能であり、前記メモリイメージがハードウエアコンフィグレーションとハードウエアコンテキスト情報を具えることを特徴とする不揮発性再プログラム可能なメモリと；
を具える。
【００３３】
好ましくは、前記コンピュータハードウエアコンフィグレーションが前記メモリイメージ内のコンピュータハードウエアコンフィグレーションから変更されている場合、この変更されたハードウエアに関するイメージ部分はロードされず、変更されたハードウエアが認識されて、前記メモリイメージの残りの部分が処理される前に初期化される。
【００３４】
好ましくは、前記システムが前記メモリイメージの少なくとも一のアーカイブコピーを含むディスクドライブまたはその他のメモリストレージデバイスを具える。
【００３５】
好ましくは、前記メモリイメージは、現存のワーキングメモリ、前記ＣＰＵレジスタ、その他のチップセットレジスタ、及びいずれかの一時的に保存されたメモリページの、所望のブート後のコンテンツのイメージである。
【００３６】
好ましくは、前記メモリイメージが前記コンピュータシステムがシャットダウンする前の前記ワーキングメモリに保存された全データのイメージである。
【００３７】
好ましくは、前記メモリイメージが、前記コンピュータシステムのオペレーティングシステムのセットアッププロセス中に作られたものである。
【００３８】
好ましくは、前記システムがディスクドライブ又は前記メモリイメージの少なくとも一の「前回正常起動時」のコピーを具えるその他のメモリストレージデバイスを具える。
【００３９】
好ましくは、前記不揮発性再プログラム可能なメモリがフラッシュメモリを使用している。
【００４０】
代替的に、本発明は、システムワーキングメモリを有するコンピュータシステムをシャットダウンする方法に関し、この方法が：
前記システムワーキングメモリ、前記ハードウエアのコンフィグレーションとコンテキスト、ＣＰＵレジスタ、チップセットレジスタ、および揮発性ページファイルメモリのコンテンツのメモリイメージを作るステップと；
前記メモリイメージを圧縮した形式で不揮発性再プログラム可能なメモリ内にロードするステップと；
前記コンピュータシステムをシャットダウンするステップと；
を具える。
【００４１】
好ましくは、前記メモリイメージが更に暗号化されている。
【００４２】
詳細な説明
以下に述べる例は、パーソナルコンピュータをブートするための本発明の使用、及び、このコンピュータをブーティングするように構成した不揮発性再プログラム可能なメモリを有するパーソナルコンピュータに関する。しかしながら、本発明は、例えば、コンピュータゲーム機、ビジネス機、および通信装置など、使用するにあたってオペレーティングシステムをロードする必要のあるその他のデジタル処理装置にも適用することができる。
【００４３】
図１を参照すると、本発明に係るコンピュータシステム用のブートまたはスタートアッププロセスのフロー図が記載されている。
【００４４】
図１を参照して述べる方法は、「コールド」あるいは「ハード」ブートが実行されていることを仮定している。この方法を「ウォーム」あるいは「ソフト」ブートが実行されている状況にも適用できることは、当業者には自明である。
【００４５】
図１を参照すると、ステップ１において、ユーザは例えばシステムパワーボタンを起動する。これによって、システムに電源が入り、通常の方法で、ファームウエアソフトウエアがブートシーケンスを開始する。従って、ステップ２で、ファームウエアを起動して、その通常のＰＯＳＴ初期設定シーケンスを実行し、二つの事柄のうちの一方を行う。ファームウエアは：ａ）現ブートシーケンスにあるように、オペレーティングシステムブートローダ用のシステムのハードドライブを見る；あるいはｂ）代替的に、ファームウエアがコンピュータシステム内にある不揮発性再プログラム可能なメモリを見る、かのいずれかを行う。ファームウエアが最初にオペレーティングシステムブートローダ用のハードドライブを見る場合でも、以下に更に説明するように、ファームウエア内に保存されているパスワードをユーザが入力するという条件付ではあるが、ブートローダは不揮発性再プログラム可能なメモリからメモリイメージをダウンロードするようにシステムを方向付けている。
【００４６】
不揮発性再プログラム可能なメモリは、コンピュータシステムにアクセス可能であり、例えば、パーソナルコンピュータのマザーボードに設けられている集積回路として設けられている。代替的に、このメモリは、現機械を改良するためのＰＣＩ増設カードとして設けられている。不揮発性再プログラム可能なメモリは、システムにアクセス可能であるという条件を満たしており、そのコンテンツをシステムによって十分に迅速にアクセスできるようにして、本発明のブート方法を価値のあるものにすることが可能である限り、別の方法で提供することもできる。
【００４７】
ステップ３を参照すると、オペレーティングシステムブートローダは、従って非揮発性再プログラム可能なメモリのコンテンツから直接的に、あるいは、システムのハードドライブから、ブート処理を開始する。
【００４８】
非揮発性再プログラム可能なメモリは、システムメモリにロードしたときにコンピュータシステムをユーザが使用可能な状態にする、すなわち、コンピュータシステムをブートするのに十分なＲＡＭコンテンツのメモリイメージを含む。
【００４９】
不揮発性再プログラム可能なメモリ内で捕らえられ、このメモリ内に提供されたメモリイメージは、ユーザの要求に応じて様々な形式を取ることができる。例えば、不揮発性再プログラム可能なメモリは、ポストブートシステムワーキングメモリ（すなわち、ＲＡＭ）コンテンツのメモリイメージを含んでいても良い。
【００５０】
もう一つの代替は、例えば、ＲＡＭに現在保存されているすべてのデータの好ましくは圧縮したメモリイメージと共に不揮発性再プログラム可能なメモリをロードすることである。好ましい形式では、この圧縮したメモリイメージが、現ＡＣＰＩ２．０ａ仕様中のState S4シャットダウン手順と同様の、前回のシャットダウン手順から保存される。これは、ユーザが使用できる状態にある場合のコンピュータ及び／又はコンピュータシステムのオペレーティングシステムセッティングを含み、好ましくは、ユーザに対して、ユーザがシャットダウンを開始したときにあったのと同じまたは略同じ状態にある場合に、ユーザがシステムの使用を再開するように提供されている。
【００５１】
標準ＡＣＰＩ  Ｓ４シャットダウンの詳細は、http://www.acpi.infoのｕｒｌで入手可能な現ＡＣＰＩ仕様、改正２．０から見ることができる。
【００５２】
このメモリイメージは、システムメモリの部分的イメージのみであってもよい。従って、このイメージは、例えばオペレーティングシステムのバルクに関するデータを具え、システムワーキングメモリをつくるあるいは設定するのに必要な残りの情報は、システムのハードディスクなどの別のメモリストレージデバイスからワーキングメモリへロードすることができる。この構成は、例えばコストの制限などで不揮発性再プログラム可能なメモリのサイズを制限する必要がある場合に好ましいが、本発明は、ブート処理を実行するのに係る全時間が、既知のブート処理に比較するとまだ有意に低減されているので、それでも価値がある。
【００５３】
メモリイメージは、オペレーティングシステムのセットアッププロセス間に最初に作ることもでき、あるいは、代替的に、ユーザがコンピュータのコンフィグレーションに有意な変更を行うときに置き換えるようにしても良い。また、メモリイメージは、ユーザがシャットダウンシーケンスを開始するたびに捕捉するようにしても良い。これらのオプションは、図２を参照して更に議論する。
【００５４】
メモリイメージは、好ましくは圧縮されており、圧縮メモリイメージ（ＣＭＩ）を不揮発性再プログラム可能なメモリに保存して、必要なときに不揮発性再プログラム可能なメモリから取り出すようにする。圧縮は、本発明によって提供される低減されたブート時間に有意に圧縮解除プロセスを加えることなく、かなりの量のメモリスペースを節約することができる。オープンソースｚｌｉｂライブラリで入手できるアルゴリズムなどの圧縮アルゴリズムを使用することができる。
【００５５】
圧縮に加えて、メモリイメージをハードドライブと同じ標準に暗号化して、同じデータを担持しているハードドライブが保全されているメモリから情報を回復する試みを防止することができる。
【００５６】
図１において、圧縮メモリイメージの存在が決定される（ステップ６）と、ユーザはＣＭＩファイル間で、複数ファイル（例えば、複数ユーザ用あるいは様々なオペレーティングシステム用）があるかどうかを選択（ステップ７）することが要求され、パスワードを要求される（ステップ８）。間違ったパスワードが入力されると（ステップ９）、ログオンの試みが再度トライされ（ステップ１１）るが、最終的に失敗に終わると（ステップ１２）、コンピュータは圧縮メモリイメージと揮発性ページファイル（ハードディスク上の一時的ストレージ）内のあらゆるデータを削除し（ステップ１３）、シャットダウンされる（ステップ１５）。これらの予防措置は、高速ブートシステムの破壊を困難にする。ＣＭＩが削除されると、次のブートが正常なブートシーケンスとなる（ステップ４−５、３６−３９）。
【００５７】
パスワードが入力され、これが正しい場合は、ブートローダが、圧縮メモリイメージからハードウエアに主な変更がないかどうかをチェックする（ステップ１７）。何も変更がなければ、不揮発性再プログラム可能なメモリ内に配置されたＣＭＩが圧縮解除され、圧縮解除されたＣＭＩからコンピュータシステムセッティングと全メモリコンテンツがＲＡＭ内にロードされて（ステップ２１）、従って、全アプリケーション、サービスおよびデバイスドライバを提供する。
【００５８】
次いで、オペレーティングシステムは、以前に保存した状態から引き継いで、揮発性ページファイルをクリアにして（ステップ２３）、ホットプラグ可能なハードウエアコンフィグレーション内のあらゆる変化をチェックする。何らかの変化が見られた場合は、変更フラッグをＦＡＬＳＥにセットし（ステップ２５）、閉じるときに新たなイメージが作られる。
【００５９】
より迅速なブート処理がこれで完了する。
【００６０】
ハードウエアチェック（ステップ１７）でハードウエアの変更されたコンフィグレーションが見付かった場合、ブートローダは全ての一時データをクリアにするが、メモリイメージをハードウエアの変更がサービスを必要とする時点で処理する（ステップ３０）。次いで変更したデバイスドライバがロードされ（ステップ３１）、適用不可能な部分を飛ばしてメモリイメージの圧縮解除とローディングが再開される（ステップ３２）。このように、ＯＳが例示され、上述したとおり、ＰＣが完全にブートするが、変更フラッグがセットされるので、新しいメモリイメージがシャットダウン時に保存されるであろう。
【００６１】
メモリコンテンツが、サーチされシステムのハードディスクから転送されるのではなく、不揮発性再プログラム可能なメモリからＲＡＭへ非常に迅速にロードされるので、ブート処理に必要な時間が劇的に低減される。
【００６２】
マイクロソフト社のWindows（登録商標）のオペレーティングシステムを用いたパーソナルコンピュータ（ＰＣ）をブートする一例において、ファームウエアがまずブート情報用の不揮発性再プログラム可能なメモリをチェックして、Windowsのブートファイルとカーネルをメモリ内にロードする。レジストリ群がつくられ、ストレージスペースが許す場合は、不揮発性再プログラム可能なメモリに保存され、あるいはレジストリ群がつくられ、現存のシステムを有する場合と同様に、ローカルハードドライブ上に保存される。Windowsがロードされている間に、デバイスドライバが不揮発性再プログラム可能なメモリからＲＡＭへロードされる。サービスとサードパーティスタートアップアプリケーションが、ローカルハードドライブからプリロードされる。典型的なパーソナルコンピュータは、６４メガバイトまたはそれ以上の不揮発性再プログラム可能なメモリチップを機械のマザーボードに加えることによって、このプロセスを実行するよう物理的に変更することができる。ＰＣ上のファームウエアは、フラッシュファイルシステム（ＦＦＳ）とFlash Translation Layer（ＦＴＬ）用の組み込みサポートを用いて不揮発性再プログラム可能なメモリからのブートを可能にするように変更されている。例えばWindows XPなどのMicrosoft Windows（登録商標）は、内部ドライバ（例えば、ＦＡＴ１６／３２、ＮＴＦＳ、ＦＦＳ／ＦＴＬなど）を介して、あるいはサードパーティのドライバを介してＦＦＳ／ＦＴＬをサポートするように変更することができる。ハードウエアのサポートは、増設ＰＣＩベースの製品を介して提供することができる。Windowsのブートファイルとデバイスドライバが、不揮発性再プログラム可能なメモリに加えられ、サードパーティスタートアッププログラムが、ハードドライブのスタートへと物理的に移動する。
【００６３】
Windowsのオペレーティングシステムを用いた別の例では、ファームウエアが不揮発性再プログラム可能なメモリからブートして、メモリイメージをＲＡＭにロードして圧縮解除する。わずかな環境の変化がロードされるか、あるいはメモリイメージがＲＡＭに存在する後のハードドライブの開始から作られる。この変更には、以下のものが含まれる（限定するものではない）：
アプリケーションのインストール
非限界スタートアップアプリケーション
レジストリ群
ページファイル（バーチャルメモリ）
【００６４】
典型的なパーソナルコンピュータで稼動するMicrosoft Windowsオペレーティングシステムへの物理的な変更は、上述の例で引用した変更と似ているが、Windowsのセットアップ中にユーザカスタマイズ圧縮Windowsメモリイメージができて、不揮発性再プログラム可能なメモリ内に保存される。更に、カスタマイズされたセッティングがハードドライブを開始するときに保存される。
【００６５】
図２は、これらのコンピュータの代替のシーケンスを示す図であり、コンポーネントの変更をチェックするファームウエアを使用している。このシーケンスは、チェックを行うオペレーティングシステムを使用するのではなく、ＺＢＩＯＳがハードウエアコンフィグレーションチェックを実行している点のみで図１のものと、異なる。
【００６６】
図３を参照すると、本発明によるコンピュータシステムのシャットダウンプロセスが図式的に記載されている。このプロセスはオペレーティングシステムからのシャットダウンコマンドをユーザが選択するステップ１で開始する。オペレーティングシステムは、シャットダウンプロセスの一部として、ステップ３内の変更フラッグをチェックする。変更フラッグは、有意な変更がコンピュータのコンフィグレーションになされたときにオペレーティングシステムによって設定される。有意な変更には、以下のものが含まれる（限定するものではない）：
ａ）新しいアプリケーションのインストール
ｉ）オペレーティングシステムがブートするとコンポーネントをロードする必要があるアプリケーションのインストール
ｂ）レジストリ群の変更
ｃ）デバイスドライバのアップグレード
ｄ）サービスパック／ホットフィックスのインストール
ｅ）サービス変更
ｆ）ユーザ環境のカスタマイゼーション
（ｉ）デスクトップ
（ii）ウオールペーパ
（iii）テーマ
（iv）サウンド
（ｖ）アイコン
（vi）カラースキーム
【００６７】
従って、ブートアップからの各新しいユーザセッションと共に、変更フラッグが誤りに設定される。次いで、上記に例を挙げた変更のような有意な変更が生じた場合は、フラッグが真に設定される。明確化のために、上記の有意な変更リストは、網羅的なものではない。更に、ユーザは上述のリストからいくつかのアクションを排除することを希望することがある。
【００６８】
図３を参照すると、ステップ５に示すように、変更フラッグが誤りである場合、オペレーティングシステムがオープンファイル、デバイス、およびサービスを全て閉じるが、ステップ１４に示すように、この領域は何も変更されていないので、システムコンフィグレーションデータは保存しない。オペレーティングシステムは、次いで、ステップ１５において、現ＡＣＰＩ  ２．０ａの仕様で、State S5 Shutdownとして実装されている正常なシャットダウンプロセスを続ける。次いで、コンピュータがスイッチを切った状態あるいはリブートする状態になる。
【００６９】
図３のステップ４に示すように変更フラッグがＴＲＵＥであれば、「前回正常起動時」（ＬＫＧ）圧縮メモリイメージが、システムのローカルハードドライブなどの適宜のストレージ手段にアーカイブされる。これは、ステップ６で生じる。
【００７０】
次いで、ステップ７では、アクティブＣＭＩであるシステムを最後にブートするのに使用したＣＭＩが、ここで、ＬＫＧ  ＣＭＩとして使用される。
【００７１】
オペレーティングシステムは次いで、ステップ８を開始する変更したシャットダウン手順を開始する。
【００７２】
ステップ８では、新しい暗号化キーが生成され、新しいＣＭＩに保存される。これに続いてステップ９では、現在のハードウエア情報がこの新しいファイルに書きこまれ、ステップ１０で現在ＲＡＭに保存されている全てのデータが、適宜の圧縮アルゴリズムを用いて圧縮及び暗号化され、保存される。次いで、揮発性ページファイル中のいずれかのページングデータが、ステップ１１において新しいＣＭＩファイルのページングデータサブセクションにロードされ、現ハードウエアコンテキストがステップ１２でロードされる。次いで、このローディングプロセスが完了し、不揮発性ＲＡＭ中の最終ファイルが、ステップ１３において新しいアクティブＣＭＩとしてマークされる。オペレーティングシステムは、次いで、ステップ１５を引用して上述した変更されたシャットダウンプロセスを終了する。
【００７３】
図３に示した方法から、システムをブートするのに使用できる圧縮したメモリイメージのアーカイブが保持されることがわかる。このようにして、ユーザが機械の動作に有害な、すなわち、所望されない有意な変更を行った場合、あるいはシステムが壊れるような場合に、ユーザは常にその機械をリブートすることができる少なくとも一の圧縮メモリイメージを有している。
【００７４】
図４は、同様のシャットダウンシーケンスを示す。これは、ファームウエア制御のコンピュータであり、変更したシャットダウン手順の最初と最後の部分がファームウエア制御下にある。
【００７５】
図５は、典型的な圧縮メモリイメージ（ＣＭＩ）ファイルのレイアウトを示す図であり、ここでは、暗号化キーと認証情報がまず保存されており、次いで、ハードウエアコンフィギュレーション情報、次いで、ＲＡＭコンテント、バーチャルメモリファイル（または揮発性ページコンテンツ）からのページングデータが保存され、最後に、現ハードウエアのハードウエアコンテキストが保存される。圧縮し、暗号化した情報の再ローディングは、最後のシャットダウン以来そのコンフィグレーションになんら変更がなされていない場合、コンピュータをフル稼働状態に戻すのに十分である。
【００７６】
図７は、圧縮したメモリファイルの保存されたページングファイル（揮発性ページファイルあるいはバーチャルメモリファイル）の保存に関する３つの動作を示す。最初に、システムは揮発性ページファイルにあるページを要求し（ステップ１）、これがＣＭＩページングデータから取り出され、ステップ２においてＲＡＭに送られる前に圧縮解除して復号される。ＲＡＭにおいて、ページの寿命が尽きた場合は、より高い優先権を持つページが保存されなくてはならないので、ステップ３および４にあるように、揮発性ページファイルに交換される。次いで、通常の動作にあるように、システムがそのメモリページを再びリクエストしたら、ステップ５および６に示すように、揮発性ページファイルから交換される。
【００７７】
図７を参照すると、本発明にかかるコンピュータシステムの一例のベーシックプロセッサとメモリコンポネントが示されている。この発明が関連する分野における当業者には、メモリデバイスのその他の構成及び通信路は自明である。このシステムは中央処理ユニット（ＣＰＵ）７０１を有し、その中にはコントロールユニット７０２が設けられている。ランダムアクセスメモリ（ＲＡＭ）４０３の形式のワーキングメモリが、不揮発性再プログラム可能なメモリ７０４として設けられている。データバス７０５によって、ＲＡＭ７０３とＣＰＵ７０１の間で、コントロールユニット７０２の制御の下、アドレスデータコントロールバス７０６を介してデータの相互交換が可能である。同様に、データバス７０７によって、不揮発性再プログラム可能なメモリ７０３とＣＰＵとの間で、コントロールユニット４０２の制御の下、アドレスデータコントロールバス７０８を介してデータの相互交換が可能である。従って、バス７０７によって、全メモリコンテンツを具えるＲＡＭ内の情報を不揮発性再プログラム可能なメモリ７０４へ転送することができる。バス７０５と７０７はシステムバスを具えていても良い。更に、ＲＡＭ７０３のコンテンツは、圧縮されて、これによって、圧縮イメージがバス７０７を介して転送され、不揮発性再プログラム可能なメモリ７０４内に保存される。次いで、必要があれば、不揮発性再プログラム可能なメモリ７０４内に保存されているメモリイメージをＲＡＭ７０３に直接転送するようにしても良く、あるいは最初に圧縮して、次いでＲＡＭ７０３にインストールするようにしても良い。
【００７８】
不揮発性再プログラム可能なメモリ７０４は、このメモリが本質的に不揮発性の固体デバイスであり、不揮発性再プログラム可能なメモリのコンテンツが、コンピュータシステムから電力供給がなくなったときに保持されるという利点がある。しかしながら、この分野の当業者には、本明細書中の不揮発性再プログラム可能なメモリにつけた符号が、フラッシュＲＡＭの使用、すなわち、例えばメモリコンテンツを維持するためにバッテリなどの外付け電源を必要とする不揮発性再プログラム可能なメモリの形式を含むことは自明である。
【００７９】
本発明に係る不揮発性再プログラム可能なメモリデバイスは、例えば、システムのマザーボード、あるいは別のボードまたはカード上の集積回路として提供することもできる。特に、所望であれば、不揮発性再プログラム可能なメモリを、SmartMedia またはCompactFlashといった商標で引用されるカードに提供することもできる。
【００８０】
現在入手可能ないくつかの不揮発性再プログラム可能なメモリ製品は、ハードドライブより何桁も早いロード時間を有しており、本発明の方法とシステムが従来技術のシステムと比較してブート時間という意味で有意な利点を提供することがわかる。
【００８１】
別のタイプの不揮発性メモリと、固体ディスクを、Magnetic RAM（ＭＲＡＭ）などのフラッシュメモリと共に、あるいはフラッシュメモリに代えて使用しても良い。これは、フラッシュメモリより読出および書込の両動作において指数関数的に転送速度を速める。ＭＲＡＭは、２００５年に大量生産が見込まれている。
【００８２】
好ましくは、所望のオペレーティングシステム用のセットアップアプリケーションは、更に、ＡＣＰＩ  ２．０ａ仕様（現在、http://www.acpi.infoから入手可）に、State S4システムコンテキストファイルとして現在インプリメントされているような、現在のＲＡＭに保存されている全データの圧縮イメージを含む圧縮メモリイメージ（ＣＭＩ）を生成する。このファイルは、不揮発性再プログラム可能なメモリ内に保存されているが、セットアップアプリケーションは、現ＡＣＰＩ  ２．０ａ仕様におけるState S4システムコンテキストファイル生成用の場合、コンピュータをシャットダウンせず、むしろプログラムされたシャットダウン手順の後に行う。
【００８３】
好ましくは、オペレーティングシステムソースコードが変更されて、Intel社自身のＦＴＬ仕様（http://www.intel.com/design/flcomp/applnots/297816.htm）などのFlash Translation Layer（ＦＴＬ）を介してフラッシュファイルシステム（ＦＦＳ）を内部的に支持する。
【００８４】
圧縮メモリイメージ（ＣＭＩ）は、現ＡＣＰＩ  ２．０ａ仕様におけるState S4シャットダウン手順と同様に、以前のシャットダウン手順の結果ＲＡＭ内に現在保存されている全てのデータの圧縮バージョンを有することが好都合である。
【００８５】
最も好ましい実施例では、前回のＣＭＩをアーカイブしてインストールし、不揮発性再プログラム可能なメモリを「前回正常起動時」ＣＭＩとして使用する。
【００８６】
この明細書中のコンピュータシステムの引用は、一般的にデジタルデータ処理システムを含む。
【００８７】
この明細書の詳細な説明と特許請求の範囲を通して、「具える」の用語と、「具えている」といったその変形は、その他の追加、コンポーネント、完成品全体あるいはステップを排除することを意図するものではない。
【００８８】
産業上の適用可能性
本発明は、コンピュータのコンフィグレーションが前回正常起動時から変化した場合でも、標準的なハードディスクブートより大幅により迅速にコンピュータをブートさせる方法を提供するものであり、これによって、コンピュータがソフトウエアをユーザがそれを有益な動作を実行できる時点へロードするのに無駄に待機するユーザの時間の消費レベルを低減する。さらに、これを安全に行うことができるようにする。
【図面の簡単な説明】
【００８９】
【図１】図１は、オペーティングシステムで駆動するコンピュータ用の本発明に係るコンピュータブートまたはスタートアッププロセスのフロー図である。
【図２】図２は、ファームウエアで駆動するコンピュータ用の本発明に係るコンピュータブートまたはスタートアッププロセスのフロー図である。
【図３】図３は、本発明に係るシャットダウンプロセスのフロー図である。
【図４】図４は、ファームウエアで駆動するコンピュータ用の本発明に係るシャットダウンプロセスのフロー図である。
【図５】図５は、圧縮したメモリイメージファイルのコンテンツを示す図である。
【図６】図６は、様々なメモリ間の、あるいはバーチャルメモリ位置間のページングデータに関連する入れ換え操作のフロー図である。
【図７】図７は、コンピュータ内のデータフローを示す図である。
【図１】
2008502988.tif 000003
【図２】
2008502988.tif 000004
【図３】
2008502988.tif 000005
【図４】
2008502988.tif 000006
【図５】
2008502988.tif 000007
【図６】
2008502988.tif 000008
【図７】
2008502988.tif 000009
【国際調査報告】
2008502988.tif 000010
2008502988.tif 000011