(57)【要約】いくつかの実施形態では、装置は、プロセッサ・コアと、より小さな不揮発性メモリと、前記プロセッサ・コアが使うためのオペレーティング・システム、プログラムおよびデータを保持するためのより大きな不揮発性メモリとを含む。装置はまた、前記プロセッサ・コアのためのシステム・メモリとして作用する揮発性メモリと、電力管理の少なくとも一部の側面を制御する電力管理論理をも含む。電力状態変更コマンドに応答して、システム・コンテキストが前記より小さな不揮発性メモリに記憶され、続いて前記揮発性メモリが電力を失い、レジューム・コマンドに応答して、前記揮発性メモリが電力を受け、前記より小さな不揮発性メモリから前記システム・コンテキストの少なくとも一部分を受け取る。他の実施形態も記述される。
2011508341.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ・コアと；
より小さな不揮発性メモリと；
前記プロセッサ・コアが使うためのオペレーティング・システム、プログラムおよびデータを保持するためのより大きな不揮発性メモリと；
前記プロセッサ・コアのためのシステム・メモリとして作用する揮発性メモリと；
電力管理の少なくとも一部の側面を制御する電力管理論理とを有する装置であって、
電力状態変更コマンドに応答して、システム・コンテキストが前記より小さな不揮発性メモリに記憶され、続いて前記揮発性メモリが電力を失い、レジューム・コマンドに応答して、前記揮発性メモリが電力を受け、前記より小さな不揮発性メモリから前記システム・コンテキストの少なくとも一部分を受け取る、装置。
【請求項２】
前記電力管理論理が、実際にはシステム・コンテキストが前記より小さな不揮発性メモリに記憶され、続いて前記揮発性メモリが電力を失うときに、前記オペレーティング・システムが揮発性メモリへのサスペンド動作を認識するよう動作する、請求項１記載の装置。
【請求項３】
前記システム・コンテキストの前記揮発性メモリから前記より小さな不揮発性メモリへの転送を制御する組み込みプロセッサをさらに有する、請求項１記載の装置。
【請求項４】
前記システム・コンテキストを前記より小さな不揮発性メモリに記憶することが完了する前に前記プロセッサ・コアが電源オフされる、請求項１記載の装置。
【請求項５】
電力状態変更コマンドに応答して、前記システムは最初に、前記システム・コンテキストが前記揮発性メモリに記憶される揮発性メモリへのサスペンド動作を実行し、ある時間内に活動がなければ前記システム・コンテキストが前記より小さな不揮発性メモリに記憶され、当該装置のほとんどすべてのコンポーネントが電源オフされる、請求項１記載の装置。
【請求項６】
前記システム・コンテキストを前記より小さな不揮発性メモリに記憶することが完了する前に前記プロセッサ・コアが電源オフされる、請求項５記載の装置。
【請求項７】
プロセッサの非コア・セクションをさらに有する、請求項１記載の装置であって、前記組み込みプロセッサは、前記システム・コンテキストを前記揮発性メモリから前記より小さな不揮発性メモリへ、前記非コア部を通じて転送する、装置。
【請求項８】
前記電力管理論理の少なくとも一部分が前記プロセッサに含まれる、請求項７記載の装置。
【請求項９】
BIOSをさらに有する請求項１記載の装置であって、前記電力状態変更コマンドに応答して、前記BIOSが、前記システム・コンテキストの前記揮発性メモリから前記より小さな不揮発性メモリへの転送を引き起こし、該転送に続いて、前記BIOSが、揮発性メモリへのサスペンド状態からハイバーネーション状態へのスリープ型レジスタの変化を引き起こす、装置。
【請求項１０】
BIOSをさらに有する請求項９記載の装置であって、前記BIOSは前記スリープ型レジスタのビットに変化を引き起こす、装置。
【請求項１１】
前記電力管理論理がスリープ型レジスタを含み、前記電力状態変更コマンドに応答して、前記スリープ型レジスタは最初に揮発性メモリへのサスペンド動作を表すビットを有しているが前記システム・コンテキストが前記より小さな不揮発性メモリに記憶されたのちに前記スリープ型レジスタはハイバーネーション動作を表すビットを有するよう変更される、請求項１記載の装置。
【請求項１２】
不揮発性メモリ・コントローラを含む組み込みプロセッサと；
電力管理の少なくとも一部の側面を制御する電力管理論理とを有する装置であって、
電力状態変更コマンドに応答して、前記電力管理論理は、他のコンポーネントが電源オフされたあとでも前記組み込みプロセッサが前記不揮発性メモリ・コントローラを通じてシステム・コンテキストが不揮発性メモリに記憶されるようにすることを含むプロセスを開始する、装置。
【請求項１３】
請求項１２記載の装置であって：
プロセッサ・コアと；
前記プロセッサ・コアのためのシステム・メモリとして作用する揮発性メモリと；
前記不揮発性メモリと；
前記プロセッサ・コアが使うためのオペレーティング・システム、プログラムおよびデータを保持するための追加的な、より大きな不揮発性メモリとを有し、
前記他のコンポーネントは、前記プロセッサ・コアおよび前記より大きな不揮発性メモリを含む、装置。
【請求項１４】
BIOSをさらに有する請求項１３記載の装置であって、前記電力状態変更コマンドに応答して、前記BIOSが、前記システム・コンテキストの前記揮発性メモリから前記より小さな不揮発性メモリへの転送を引き起こし、該転送に続いて、前記BIOSが、揮発性メモリへのサスペンド状態からハイバーネーション状態へのスリープ型レジスタの変化を引き起こす、装置。
【請求項１５】
プロセッサの非コア・セクションをさらに有する、請求項１３記載の装置であって、前記組み込みプロセッサは、前記システム・コンテキストを前記揮発性メモリから前記より小さな不揮発性メモリへ、前記非コア部を通じて転送する、装置。
【請求項１６】
電力状態変更コマンドに応答して、前記システムは最初に、前記システム・コンテキストが前記揮発性メモリに記憶される揮発性メモリへのサスペンド動作を実行し、ある時間内に活動がなければ前記システム・コンテキストが前記より小さな不揮発性メモリに記憶され、当該装置のほとんどすべてのコンポーネントが電源オフされる、請求項１２記載の装置。
【請求項１７】
電力状態変更コマンドを受け取る段階と；
実際にはシステム・コンテキストが不揮発性メモリに記憶され、続いて揮発性メモリが電力を失うときに、オペレーティング・システムが前記揮発性メモリへのサスペンド動作を認識するよう動作する段階とを有する方法であって、前記不揮発性メモリは、オペレーティング・システムを記憶するために使われる別の不揮発性メモリより小さな容量をもつ、方法。
【請求項１８】
前記システム・コンテキストの記憶が完了する前にプロセッサ・コアの電源をオフにする段階をさらに有する、請求項１７記載の方法。
【請求項１９】
前記電力状態変更コマンドに応答して、最初に、前記システム・コンテキストが前記揮発性メモリに記憶される揮発性メモリへのサスペンド動作を実行し、ある時間内に活動がなければ前記システム・コンテキストを前記より小さな不揮発性メモリに記憶する、請求項１７記載の方法。
【請求項２０】
レジューム・コマンドに応答して、前記揮発性メモリが電力を受け取り、前記システム・コンテキストの少なくとも一部分を前記より小さな不揮発性メモリから受け取る、請求項１７記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、概括的にはコンピュータ・プラットフォームのハイバーネーションおよびレジュームに関する。
【背景技術】
【０００２】
コンピュータ・システムは典型的にはS3およびS4を含むS状態と称されるある種の低電力状態をもつ。S3は時にスタンバイ、スリープまたはRAMへのサスペンドと称される。状態S3は、オペレーティング・システム（OS）がそのコンテキストを物理的メモリ（動的ランダム・アクセス・メモリ（DRAM））に保存し、システムをサスペンド状態にするスリープ状態である。S3にはいる時点で使われていた開いている文書およびプログラム（アプリケーション）またはそうしたプログラムの少なくとも一部も、サスペンド状態の間、DRAMに保存される。いくつかのチップセット・レジスタの内容もDRAMに書き込まれうる。物理的メモリDRAMは時にメイン・メモリまたはシステム・メモリと呼ばれる。このサスペンド状態の間、DRAMおよびシステムをのちに覚醒させるのに使われる少量の回路を例外として、プラットフォーム・ハードウェアから一切の電力が取り除かれる。S3電力状態は、OSコンテキストおよび以前に使われていたプログラムおよび文書を高速のDRAMメモリに保存し、そこから復元できるため、比較的高速のサスペンドおよびレジューム（覚醒）を提供する。
【０００３】
S4は時にハイバーネーション、安全なスリープまたはディスクへのサスペンドと称される。S4では、OSコンテキストおよび開いている文書およびプログラム（またはその一部）は、高速のDRAMメモリではなくハードディスク・ドライブ（HDD）上に保存される。DRAMに電力を与え続けないので、これはS3状態よりも高度の電力節約を許容する。しかしながら、HDDの低速の読み出しおよび書き込みアクセス時間のため、遅延が長くなる。典型的なS4ハイバーネーションおよびレジューム時間は数十秒のオーダーである。
【０００４】
数十秒は一般にはたいした時間とは思われないかもしれないが、コンピュータがハイバーネーションするまたはハイバーネーションからレジュームするのを待つユーザーにとっては、これは長い時間に思えることもある。さらに、DRAMを動作状態に保つのに必要とされる電力の量は短い時間のためにはそれほどでもないが、より長い時間にわたってはバッテリーの充電状態に対して著しい効果をもつことがある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、S4電力状態で提供されるよりも高速で、S3電力状態よりも電力消費が少ないハイバーネーションおよびレジューム時間を提供する回路および技法が必要とされている。
【課題を解決するための手段】
【０００６】
本発明は、下記に与えられる詳細な記述から、そして本発明の実施形態の付属の図面から、より十全に理解されるであろう。ただし、これらは本発明を記載される特定の実施形態に限定するものと解釈すべきではなく、単に説明および理解のためのものである。
【図面の簡単な説明】
【０００７】
【図１】いくつかの実施形態に基づくコンピュータ・システムのブロック図表現である。
【図２】いくつかの実施形態に基づくモバイル・コンピュータの断面図である。
【図３】いくつかの実施形態に基づく、高速ハイバーネーション経路および高速ハイバーネーション状態からのレジュームの流れ図である。
【図４】いくつかの実施形態に基づくコンピュータ・システムのブロック図表現である。
【図５】いくつかの実施形態に基づくコンピュータ・システムのブロック図表現である。
【図６】いくつかの実施形態に基づくコンピュータ・システムのブロック図表現である。
【図７】いくつかの実施形態に基づくコンピュータ・システムのブロック図表現である。
【発明を実施するための形態】
【０００８】
本発明のいくつかの実施形態は、システム・コンテキストが、別の不揮発性メモリ（大きいほうの不揮発性メモリまたはハードディスク・ドライブ）よりも小さな容量をもつ不揮発性メモリ（小さいほうの不揮発性（non-volatile）メモリすなわちNVRAM）に書き込まれ、前記別の不揮発性メモリは少なくとも一つのオペレーティング・システム、プログラムおよびデータを記憶するために使われる、新しい高速ハイバーネーション・プロセスを許容する回路および技法に関わる。高速ハイバーネーションからのレジュームにおいては、システム・コンテキストは小さいほうの不揮発性メモリから読み込まれ、コンピュータ・システムの動作を復元するために使われる。いくつかの実施形態では、システム・コンテキストは完全にDRAMシステム・メモリから小さいほうの不揮発性メモリに転送され、レジュームの際に小さいほうの不揮発性メモリからDRAMシステム・メモリに完全に転送される。他の実施形態では、システム・コンテキストは部分的にはチップセット・レジスタのような他のメモリから来て、DRAMを通じて間接的に行くのではなくそれらのレジスタに直接的に書き戻されることができる。
【０００９】
いくつかの実施形態では、高速ハイバーネーション・プロセスにおいて、DRAMシステム・メモリから小さいほうの不揮発性メモリへの転送は、プロセッサ・コアならびにハード・ドライブおよび表示画面などの他のシステム・コンポーネントの電源が落とされた後でも起こる。これは、たとえシステム・コンテキストの転送が完了していなくても、コンピュータのユーザーに、コンピュータ・システムが素速くシャットダウンされたとの印象をもたせることを許容する。したがって、諸実施形態は、システム反応性のユーザー知覚を改善する。これは、より大きなユーザー満足を与える。これは、ホスト・システムまたはパーティションがハイバーネーション状態にはいるかシャットダウンする前にプロセッサが全コンテキストをハードディスク・ドライブ（HDD）にコピーする従来技術のS4遷移とは対照的である。
【００１０】
いくつかの実施形態では、高速ハイバーネーション・プロセスは、S3およびS4状態のために設計されているが本高速ハイバーネーション・プロセスのために特に設計されているのではないオペレーティング・システム（OS）で起こりうる。これは、BIOSおよび／または他の機構にRAMへのサスペンド（S3）コマンドに応答させることによって起こりうる。これは、プロセッサをシステム管理モード（SMM:  system  management  mode）にしてDRAMシステム・メモリから小さいほうの不揮発性メモリへの転送を制御し、次いでスリープ型をハイバーネーション状態に変えることによる。これらの実施形態では、本プロセスはいくつかのOSには「透明」であってもよい。
【００１１】
図１を参照すると、システム１２は、プラットフォーム・コントローラ・ハブ（PCH:  platform  controller  hub）１６およびシステム・メモリ（DRAM）２０に結合されたプロセッサ１４を含む。プロセッサ１４は、中央処理ユニット（CPU）２２および非コア部（uncore）２６を含む。非コア部の用語は、制約された定義をもつことは意図されておらず、さまざまなインターフェースおよび制御回路をもつプロセッサの、コアの一部ではない部分を指す一般的な用語である。非コア部２６は、システム・メモリ２０を制御するための統合されたメモリ・コントローラ（integrated  memory  controller）２８を含む。システム・メモリ２０は、システム管理モード（SMM）のための命令を保持する部分３０を含む。SMMは、従来技術のSMM技術または新しいSMM技術または同様の型のモードに従っていてもよい。不揮発性メモリ（NVRAM）３８は高速フラッシュ（Fast  Flash）を含み、コントローラ３４はNANDコントローラである。いくつかの実施形態では、コントローラ３４は後述する組み込みプロセッサであってもよい。ハード・ドライブ４２はPCH  １６に結合され、プロセッサ１４のためのオペレーティング・システム、プログラムおよびデータを保持する。いくつかの実施形態では、ハード・ドライブ４２の内容の一部はシステムの他のコンポーネントによって使用されることができる。NVRAM  ３８はハード・ドライブ４２よりきわめて少ない記憶容量をもつが、ハード・ドライブ４２より高速なアクセスをもつ。したがって、NVRAM  ３８は、より小さな不揮発性メモリと称されてもよく、ハード・ドライブ４２はより大きな不揮発性メモリと称されてもよい。基本入出力システム（BIOS）４８はシステムBIOS命令を提供する。覚醒回路５０は、レジュームできるよう、ハイバーネーションの間、電力を受けていてもよい。いくつかの実施形態では、図１のシステムのコンポーネントは、モバイル・コンピュータでのように、筐体５２内に保持される。
【００１２】
図２は、基部６４および表示画面６８を含むふた６６をもつモバイル・コンピュータ６２を示している。基部６４は図１におけるようなシステムを含む。基部６４は、いつふたが開かれ、閉じられるかを検出するためのスイッチ７０を含む。基部６４はまた、ボタン７２（キーボードにあるようなまたは電源ボタンのような他のボタン）およびカーソル制御デバイス９４をも含む。電力状態変化コマンド（RAMへのサスペンドまたはS3コマンドとも呼ばれる「スタンバイ」コマンド；あるいは他の実施形態では高速ハイバーネーション・コマンドのような）は、実施形態や実施形態の構成に依存して種々の仕方で開始できる。電力状態変更コマンドを開始できる方法の例としては、次のうちの一つまたは複数が含まれる：ふたを閉じる、電源ボタンを押す、別のボタンを押す、プルダウンメニューまたはアイコンのカーソル制御クリックをするまたはその他の方法。システムにハイバーネーションからレジュームさせる覚醒イベント（レジューム・コマンド）は、実施形態や実施形態の構成に依存してやはりさまざまな仕方で開始されることができる。レジューム・コマンドを開始できる方法の例としては、次のうちの一つまたは複数が含まれる：ふたを開ける、電源ボタンを押す、別のボタンを押す、カーソル制御クリックをするまたはその他の方法。実際上は、システムが本質的には完全に電源を落とされるようにすることが望ましいので、レジュームするためにより少数の方法しかないこともありうる。いくつかの実施形態では、レジューム・コマンドを開始するための唯一の方法は電源ボタンを押すことである。
【００１３】
図２を参照すると、電力管理（power  management）ユニット４４は先進構成設定＆電力インターフェース（ACPI:  Advanced  Configuration  &  Power  Interface）ブロック・レジスタを含む。ただし、他の実施形態では、ACPIレジスタは使用されない。2006年10月10日付けの改訂3.0bを含めさまざまなACPI仕様が公開されており、www.acpi.infoでダウンロードできる。また、DRAM内に保持されるソフトウェアACPIテーブルもある。従来技術において知られているように、コンピュータ・システムがオンにされるとき、システムBIOSが実行を開始する。システムBIOSはプラットフォームおよびチップセットに固有のファームウェアであることができ、プラットフォームおよびチップセット固有の情報を（DRAM内の）APCIテーブルを通じて渡す。
【００１４】
ACPIレジスタは、スリープ型（SLP_TYPE）レジスタと呼ばれるレジスタおよびスリープ・イネーブル（SLP_EN）レジスタを含む。スリープ型レジスタ内の01がサスペンドを示し、スリープ型レジスタ内の02がハイバーネーションを示すとしておく。ユーザーがサスペンドを選択するとき、OSはACPIテーブルを探索して、サスペンドとはスリープ型レジスタにビット01が書き込まれていることを意味するとわかる。OSはその値をスリープ型レジスタ内にプログラムする。OSがサスペンドにはいる準備ができると、OSはスリープ・イネーブル・ビット（単数または複数）をセットする。OSがスリープ・イネーブル・ビットをセットしたのち、ハードウェアが引き継ぎ、PCH  １６は後述するようにプラットフォームの電源を落とす。
【００１５】
システムは、ユーザーがRAMへのサスペンド（S3）を選択するときにシステムが実際には高速ハイバーネーションを実行するよう構成されることができる。あるいはまた、高速ハイバーネーションはユーザー用の明示的なオプションであってもよい。以下は、RAMへのサスペンド（S3）およびのちのレジュームが選択されることができるが高速ハイバーネーションおよび高速ハイバーネーションからの後刻のレジュームが実行される技術について述べる。
【００１６】
組み込みプロセッサ３４のような組み込みプロセッサ（EP:  embedded  processor）は、チップセット内の既存の管理可能性エンジン（ME:  Manageability  Engine）であることができ、あるいは物理的なDRAMおよびフラッシュのような何らかの不揮発性メモリへのアクセスをもつプラットフォーム内の他の任意の処理エンジン（ホストCPUの高特権モードを含む）であることができる。EP  ３４はそのコードをフラッシュ・メモリまたは物理的メモリから実行でき、その実行はプロセッサ・コアまたはホスト・プラットフォーム状態とは独立である。これにより、EP  ３４は、ホスト・コアが実行中でないときにプラットフォームのための帯域外（out-of-band）管理可能性機能を実行できる。単にコンピュータ・システムのチップ内に組み込みプロセッサをもつことは新しくはないが、本稿に記載されるように組み込みを使うことは新規であると考えられる。
【００１７】
NVRAM  ３８は外部電力なしでそのコンテキストを維持しうる。フラッシュ技術はこの型のメモリの一例であり、プラットフォームのブートストラップ・コード（BIOS）および構成設定データを記憶するためにほとんどすべてのプラットフォームにおいて使用される。このメモリのサイズは、プラットフォーム・ブートストラップ・コードおよびプラットフォームが電源を受けていないときに記憶されている必要がありうる他の任意の情報のサイズに依存しうる。EP  ３４はそのコードおよびデータを記憶するためにもNVRAMを使ってもよい。NVRAM  ３８は、現在利用可能な技術に基づくまたは将来利用可能となる高速フラッシュに基づく「高速フラッシュ」のようなフラッシュ・メモリを含みうる。NVRAM  ３８は、システム・コンテキストに加えてデータを記憶するために使われてもよい。他のすべてが同等なら、アクセス時間がより高速のNVRAMが好ましい。実施形態によっては、NVRAM  ３８は少なくともDRAMシステム・メモリ２０と同じくらいの容量をもち、実施形態によってはDRAMシステム・メモリ２０よりずっと大きな容量をもつ。
【００１８】
図３は、高速ハイバーネーション経路の流れ図および高速ハイバーネーションからのレジュームの流れ図の例の概観を示している。詳細は異なる実施形態によって異なりうる。図２の例では、ブロック８０はホストOSを表す。ハイバーネーション・データはシステム・メモリDRAM  ２０に書き込まれる（一部は高速ハイバーネーション・コマンドより前に書き込まれ一部はその後に書き込まれてもよい）。高速ハイバーネーション・コマンド（これはS3コマンドと同じであってもよい）より前には、プラットフォーム（ホスト）はS0状態にあり、管理可能性エンジン（ME）（これは組み込みプロセッサ３４であってもよいし、組み込みプロセッサ３４を含んでいてもよい）はM0状態にある。スリープ型レジスタはS4高速（S4  Fast）に設定されているが、これはシステムによってはS3についてと同じでありうる。スリープ・イネーブル・レジスタが1に設定されるとき、ハードウェア割り込みが生成され、組み込みプロセッサ３４に、ハイバーネーション・データをシステム・メモリDRAM  ２０から高速なフラッシュ（fast  flash）NVRAM３８にコピーさせる。その際、プラットフォーム・ホスト状態はS4高速であり、MEは状態M1をもつ。
【００１９】
コピーが完了すると、MEはMオフ状態をもち、覚醒論理８４はオンである。覚醒論理８４は覚醒回路５０であってもよいし、覚醒回路５０を含んでいてもよい。覚醒論理にはさまざまな型がありうる。覚醒回路５０は、物理的な電源ボタン、特定のボタン、カーソル制御デバイス、ユニバーサル・シリアル・バス（USB）デバイス、ふた開検出器または他の何らかのもののうちの一つまたは複数を含んでいてもよい。
【００２０】
すべてのOSハイバーネーション関係コンテキストが高速NVRAMデバイスにコピーされると、EPはシステムDRAMを電源ダウン状態にし、シャットダウンする。この時点で、システムを覚醒させるために必要とされる最小限の回路のみが電力を維持し、システムは完全にハイバーネーション状態にはいったことになる。
【００２１】
レジューム経路の例では、覚醒論理８４が作動されると、組み込みプロセッサ３４はハイバーネーション・データを高速のフラッシュNVRAM  ３８からシステム・メモリDRAM  ２０にコピーする。次いでBIOSがOS覚醒ベクトル（OS  wake  vector）にジャンプする。
【００２２】
いくつかの実施形態では、電源状態変化コマンドに応答して、OSはスリープ型レジスタおよびスリープ・イネーブル・レジスタに書き込みをする。BIOSには別個のポリシーがある。BIOSは、S3コマンドであろうものが高速ハイバーネーション・プロセスを開始する――よってOSがRAMにサスペンドしたいときにプラットフォームは高速ハイバーネーションにはいることをユーザーが選択するセットアップ・オプションを有していてもよい。いくつかの実施形態では、OSは高速ハイバーネーションが起こっていることに気づかず、S3変化が起こっていると認識する。いくつかの実施形態では、BIOSは高速ハイバーネーションを次のように容易にする。OSがスリープ・イネーブル・ビットに書き込みをするときに制御がBIOSに移されるよう、トリガーがセットされる。（いくつかの実施形態では、PCH  １６がハードウェアSMMトリガーをサポートする。）システム管理モード（SMM）は、SMMピンがアクティブ化されるのに応答して、制御をOSから取り上げる。SMMは従来技術のSMMであっても、修正された新たなSMMであってもよい。いくつかの実施形態では、プロセッサ１４はSMMピンを含む――このSMMピンがアサートされるとプロセッサ・コアをSMMモードにはいらせる。プロセッサ・コアは停止し、DRAM  ２０のSMRAMセクション３０にジャンプする。SMRAMセクション３０は、BIOSによって所有されており、その内容をBIOSがブート時にインストールしうる。SMMがアサートされると、CPUはその命令をSMRAM  ３０から取る。SMM命令の終わりには、OSに戻るレジューム・コマンドがあってもよい。
【００２３】
いくつかの実施形態では、DRAM  ２０の内容がNVRAM  ３８に転送されたあとに、スリープ型レジスタはRAMへのサスペンドS3からDISCへのハイバーネーションS4に変更される（たとえば01から02に）。スリープ型レジスタにおける変更後、OSはシステムがS3にあるかのように進行し、BIOSはシステムがハイバーネーション・モードにあるかのように進行する。これは、先に論じたような小さな例外を除いてシステムをシャットダウンさせる。この意味で、いくつかの実施形態では、OSは「だまされ」て、システムが実は高速ハイバーネーション状態にあるときにシステムがS3にあると思い込まされる。これは、ハードウェア・プラットフォームがより深いスリープ状態S4に遷移することを強制するが、OSはプラットフォームがサスペンド状態にあると思っているので、OSがハード・ドライブをコピーすることは強制しない。したがって、シャットダウン・プロセスは、従来技術のS4の場合よりもずっと迅速になる。プロセスは、コンテキストの転送が、システムの残りの部分の多くがシャットダウンしている間またはその後に起こるときには、さらに迅速になる。
【００２４】
いくつかの実施形態についての高速ハイバーネーションにはいることのいくつかの側面は、次のように記述される。ただし、他の実施形態では細部は異なる。
【００２５】
１．OSは、その現在の状態をDRAMの固定した連続的な領域に保存することによって、高速ハイバーネーション遷移を開始する。このハイバーネーション・データ領域は、レジュームの際にシステムを復元するためのハードウェアおよびソフトウェア・コンテキストのほか、OS覚醒ベクトルを含む。
【００２６】
２．OSは、チップセット（PCH  １６）内のSLP_TYPEおよびSLP_ENビットをセットして、チップセット・ハードウェアに対して、ハイバーネーション状態への遷移を望んでいることを示す。
【００２７】
３．SLP_ENビットをセットすることは、EP  ３４へのハードウェア割り込みを引き起こす。EP  ３４は、その割り込みを評価し、システムがハイバーネーション・スリープ状態にはいることを望んでいると判断する。EP  ３４は、プロセッサ・コア２２およびすべてのユーザー可視プラットフォーム・ハードウェアをシャットダウンすることによってプラットフォームの部分的な電源ダウンを開始する。DRAM  ２０だけが電力を受けるままとされる。あるいはまた、これは、若干の遅延（たとえば15分）後にトリガーされることもできることを注意しておく。それにより、システムは短期間のスリープ期間にわたって通常のS3を使い、長いS3期間（たとえば15分）後に初めてハイバーネーション機能をトリガーすることができる。
【００２８】
４．EP  ３４はOSハイバーネーション・データ領域をシステムDRAM  ２０から高速NVRAMメモリ３８にその内部SRAMバッファ８２を介してコピーする（図２に示されている）。
【００２９】
５．EP  ３４は、スリープ状態からの覚醒を許容するために覚醒論理８４を装備させる。
【００３０】
６．EP  ３４は、DRAM  ２０の電力を落とし、自らも電力オフ状態にはいる。
【００３１】
７．この時点で、システムを覚醒させるのに必要とされる最小限のハードウェアを例外として、システム全体が電源を落とされている。
【００３２】
覚醒イベント（レジューム・コマンドの開始）の生起の際、まずEP  ３４が電源オンになり、すぐDRAMシステム・メモリ２０を初期化し、OS  DRAMコンテキストを高速NVRAMデバイス３８から復元することを開始する。いくつかの実施形態では、このDRAMの復元は、プロセッサがシステムBIOSコードを実行し始める前に行われる。BIOSがその通常のハイバーネーション・レジューム経路をたどる間、EP  ３４はOSコンテキストのDRAM  ２０への復元を続け、BIOS  ４８がプロセッサ、チップセットおよび他のプラットフォーム構成要素の初期化を完了する時点までには、EP  ３４はすでにすべてのOSハイバーネーション回復コンテキストをDRAM中に復元することを完了している。BIOS  ４８はその実行を終え、制御をOSハイバーネーション覚醒ベクトルに渡す。OSハイバーネーション覚醒ベクトルは、もともとDRAM内のOSハイバーネーション回復コンテキスト内に埋め込まれたもので、ハイバーネーション・データの残りの部分と一緒にEPによって復元されている。ひとたび制御を得ると、OS覚醒コードはすぐ、DRAM  ２０からの実行を開始し、DRAM内のハイバーネーション回復データを使って残りのOS構成要素を復元する。他の実施形態では、細部は異なる。
【００３３】
いくつかの実施形態では、高速ハイバーネーションからレジュームする際、BIOSはDRAM  ２０を含むシステム・コンポーネントの実行および初期化を開始する。DRAM  ２０は、電源が失われたので初期化されている。NVRAM  ３４も初期化される。ひとたびメモリが初期化されると、NVRAM  ３８の内容の少なくとも一部はDRAM  ２０にコピーされる。ハイバーネーション（S4）フローからサスペンド（S3）フローに、BIOSにおけるソフトウェア切り換えが行われる。するとBIOSはS3覚醒ベクトルにジャンプする。この時点で、OSは、OS  S3覚醒を進めるために必要とするものを得ている。
【００３４】
いくつかの実施形態では、圧縮ハードウェアを追加することによってレジューム・フローをさらに高速化し、暗号化機能を追加することによってセキュリティ機能を追加するために、追加的な処理エージェントがある。
【００３５】
いくつかの実施形態についての高速ハイバーネーションからのレジュームのいくつかの側面は、次のように記述される。ただし、他の実施形態では細部は異なる。
【００３６】
１．ユーザーの動作が、EP  ３４およびプロセッサ１４を覚醒させる覚醒イベントを引き起こす。
【００３７】
２．EP  ３４がシステムが高速ハイバーネーション・イベントから覚醒しつつあることを検出し、よってメモリを初期化し、OSハイバーネーション回復コンテキストをNVRAM  ３８からDRAMメモリ２０にその内部SRAMバッファ８２を介してコピーすることを開始する。
【００３８】
３．CPUはリセットから出てきて、システムBIOSコードを実行することを開始する。BIOSはそのハイバーネーション・レジューム経路を実行し、最終的には制御をDRAM内のOS覚醒ベクトルに渡す。OS覚醒ベクトルはこの時点までにEPによって復元されている。
【００３９】
４．この時点で、制御はDRAM内のOS覚醒ベクトルに行き、OSは、システム・メモリ内のハイバーネーション回復データを使ってその状態の復元を開始する。
【００４０】
NVRAM  ３８への読み出しおよび書き込みアクセス時間は、ハード・ドライブ４２への読み出しおよび書き込みアクセス時間よりずっと高速なので、サスペンドおよびレジューム時間は、本発明の諸実施形態では、従来技術のS4ディスクへのサスペンドおよびレジュームより、ずっと短くなる。
【００４１】
諸実施形態は、ハイバーネーションからレジュームまでの間ほとんど全システムをシャットダウンさせることにより、サスペンドおよびレジュームする際のより迅速な応答時間およびより長いバッテリー寿命の組み合わせを与えることができる。
【００４２】
図４は、図１のシステムと似ているがNVRAMコントローラ（たとえば組み込みプロセッサ）１３４が、PCH  １３２に結合されたプロセッサ１１４の非コア部１２６内にあるシステムを示している。BIOS  １４８はBIOS  ４８と同じであってもよいし、あるいは若干異なっていてもよい。
【００４３】
図５は、PMユニット２４４がPCH  ２３２内ではなくプロセッサ２１４の非コア部２２０内に含まれているほかは図４のシステムと似ているシステムを示している。PCH  ２３２内に別のPMユニットがあってもよい。BIOS  ２４８は、BIOS  ４８と同じであってもよいし、あるいは若干異なっていてもよい。電力管理論理は、プロセッサおよびPCHの組み合わせに含まれていてもよいし、単にどちらか一方に含まれていてもよい。
【００４４】
図６は、図１のシステムと似ているが、二つのプロセッサ３１４−１および３１４−２があり、それぞれが図のようにメモリ２０−１および２０−２（セクション３０−１および３０−２をもつ）に結合されたIMC  ２８−１および２８−２をもつ非コア部３２６−１および３２６−２を含むシステムを示している。プロセッサ３１４−１および３１４−２はPCH  ３１６に結合されている。プロセッサ３１４−１および３１４−２、非コア部３２６−１および３２６−２、コントローラ３３４、PMユニット３４４、BIOS３４８は、プロセッサ１４、非コア部２０、コントローラ３４、PMユニット４４およびBIOS  ４８と同じであってもよいし、あるいは若干異なっていてもよい。
【００４５】
図７は、メモリ・コントローラ４２８がプロセッサ４１４の非コア部４１６内ではなくコントローラ・ハブ４１６内にあるほかは図１のシステムと似ているシステムを示している。メモリ・コントローラ４２８、BIOS  ４４４および電力管理ユニット４４４は、メモリ・コントローラ２８、BIOS  ４８および電力管理ユニット４４４と同じであってもよいし、あるいは若干異なっていてもよい。
【００４６】
図面において、CPUコア２２、メモリ・コントローラ２８、コントローラ３４、メモリ２０およびセクション３０、NVRAM  ３８ならびにハード・ドライブ４２の異なるインスタンスは互いに同じものであっても異なるものであってもよい。
【００４７】
一部の従来技術の通常S4レジューム・プロセスの間、BIOSは、制御をOSローダに渡す前のシステム初期化に、10〜15秒かかることがありうる。いくつかの実施形態では、高速ハイバーネーションにおいて、BIOSは、（CPU  SMMまたはEPを介して）DRAMコンテキストが復元されたらすぐにS4からS3経路に切り替わる。これは、BIOSがより高速の（たとえば数百ミリ秒）S3レジューム経路を取り、迅速にOS覚醒ベクトルにジャンプすることを許容する。他の実施形態では、細部は異なる。
【００４８】
本発明は、いかなる特定のオペレーティング・システムとの使用にも制約されるものではない。いくつかの実施形態は、マイクロソフト・ウィンドウズ（登録商標）、ビスタ、MacOSと使用されうる。
【００４９】
スリープ型レジスタおよびスリープ・イネーブル・レジスタは物理的に別個のレジスタであってもよいし、あるいはより大きなレジスタの下位部分であってもよい。
【００５０】
NVRAM  ３８は、全部が一つの物理的位置にあってもよいし、物理的に異なる位置に分散されていてもよい。
【００５１】
〈追加的な情報および実施形態〉
本稿で言及される「論理」は回路、ソフトウェア、マイクロコードまたはそれらの組み合わせにおいて実装できる。
【００５２】
図面の諸ブロックの形および相対的な大きさは、実際の形および相対的な大きさを示すことは意図していない。実際の実装は、図面に示されていない追加的なコンポーネントおよびコンポーネント間の相互接続を含むことがある。
【００５３】
実施形態は、本発明の実装または例である。明細書における「ある実施形態」「一つの実施形態」「いくつかの実施形態」または「他の実施形態」への言及は、そうした実施形態との関連で記述される特定の特徴、構造または特性が少なくともいくつかの実施形態に含まれるということを意味するのであって、必ずしもすべての実施形態に含まれることを意味するのではない。「ある実施形態」「一つの実施形態」または「いくつかの実施形態」の随所での出現は、必ずしも全部が同じ実施形態を言及しているのではない。
【００５４】
要素「A」が要素「B」に結合されていると言うとき、要素Aは要素Bに直接結合されていてもよいし、あるいはたとえば要素Cを通じて間接的に結合されていてもよい。
【００５５】
明細書または請求項が、コンポーネント、特徴、構造、プロセスまたは特性Aが、コンポーネント、特徴、構造、プロセスまたは特性Bを「引き起こす」と述べるとき、これは、「A」が「B」の少なくとも部分的な原因であるということを意味するが、「B」を引き起こすことに助けとなる少なくとも一つの他のコンポーネント、特徴、構造、プロセスまたは特性があることもありうる。同様に、AがBに応答するということは、それがCにも応答するのではないということを意味するのではない。
【００５６】
明細書がコンポーネント、特徴、構造、プロセスまたは特性が「含まれていてもよい」「含まれうる」または「含まれることができる」と述べるときは、その特定のコンポーネント、特徴、構造、プロセスまたは特性が含まれることは必須ではない。明細書または請求項が要素の単数形に言及するとき、それはその要素が一つしかないということを意味するのではない。
【００５７】
本発明は本稿に記載される個別的な詳細に制約されるものではない。実際、本発明の範囲内で、以上の記述および図面の他のさまざまな変形がなされうる。したがって、本発明の範囲を定義するのは、補正があればそれも含めて、付属の請求項である。
【図１】
2011508341.tif 000003
【図２】
2011508341.tif 000004
【図３】
2011508341.tif 000005
【図４】
2011508341.tif 000006
【図５】
2011508341.tif 000007
【図６】
2011508341.tif 000008
【図７】
2011508341.tif 000009
【国際調査報告】
2011508341.tif 000010
2011508341.tif 000011