特許第5705996号(P5705996)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インテル・コーポレーションの特許一覧

特許5705996プラットフォームのレジューム時間を改善する方法および装置
<>
  • 特許5705996-プラットフォームのレジューム時間を改善する方法および装置 図000002
  • 特許5705996-プラットフォームのレジューム時間を改善する方法および装置 図000003
  • 特許5705996-プラットフォームのレジューム時間を改善する方法および装置 図000004
  • 特許5705996-プラットフォームのレジューム時間を改善する方法および装置 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5705996
(24)【登録日】2015年3月6日
(45)【発行日】2015年4月22日
(54)【発明の名称】プラットフォームのレジューム時間を改善する方法および装置
(51)【国際特許分類】
   G06F 1/30 20060101AFI20150402BHJP
   G06F 1/00 20060101ALI20150402BHJP
【FI】
   G06F1/00 341M
   G06F1/00 370D
【請求項の数】26
【全頁数】16
(21)【出願番号】特願2013-542027(P2013-542027)
(86)(22)【出願日】2011年11月16日
(65)【公表番号】特表2013-546087(P2013-546087A)
(43)【公表日】2013年12月26日
(86)【国際出願番号】US2011061049
(87)【国際公開番号】WO2012087457
(87)【国際公開日】20120628
【審査請求日】2013年5月29日
(31)【優先権主張番号】12/976,514
(32)【優先日】2010年12月22日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】ロスマン、マイケル、エー.
(72)【発明者】
【氏名】サクシクマー、パルサミー
(72)【発明者】
【氏名】ジマー、ビンセント、ジェイ.
(72)【発明者】
【氏名】ブルス、マリク
(72)【発明者】
【氏名】スワンソン、ロバート、シー.
【審査官】 田川 泰宏
(56)【参考文献】
【文献】 特開2001−022464(JP,A)
【文献】 特開2010−055184(JP,A)
【文献】 特表2005−527906(JP,A)
【文献】 Advanced Configuration and Power Interface Specification 4.0a [online],2010年 4月 5日,P.486-491,[検索日2014.02.13],インターネット,〈URL:http://www.acpi.info/DOWNLOADS/ACPIspec40a.pdf〉
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/30
G06F 1/00
(57)【特許請求の範囲】
【請求項1】
プラットフォームのコンテキストをハイバネーションファイルに保存する段階と、
前記プラットフォームの動作条件に基づいて、前記ハイバネーションファイルを圧縮および復元するための第1のオーバーヘッド時間を決定する段階と、
前記ハイバネーションファイルを不揮発性メモリに対して読み書きするための第2のオーバーヘッド時間を決定する段階と、
前記第1のオーバーヘッド時間が前記第2のオーバーヘッド時間よりも長いと判断することに応じて、前記ハイバネーションファイルを前記不揮発性メモリに書き込む段階と
を備える方法。
【請求項2】
前記プラットフォームを非アクティブ状態に切り替えるよう求める指示を受信する段階と、
前記非アクティブ状態が前記プラットフォームのコンテキストの保存を要求しているか否かを判断する段階と、
をさらに備え、
前記プラットフォームの前記コンテキストを前記ハイバネーションファイルに保存する段階は、
前記非アクティブ状態が前記プラットフォームの前記コンテキストの保存を要求していると判断することに応じて、前記プラットフォームの前記コンテキストを前記ハイバネーションファイルに保存する段階を有する請求項1に記載の方法。
【請求項3】
前記プラットフォームの動作条件に基づいて、前記第1のオーバーヘッド時間を決定する段階は、前記ハイバネーションファイルが圧縮される時点の前記プラットフォームの動作条件に基づいて、前記第1のオーバーヘッド時間を決定する段階を含む請求項1または2に記載の方法。
【請求項4】
前記プラットフォームの前記コンテキストは、キャッシュメモリ状態情報、プロセッサ状態情報、メモリ状態情報、レジスタファイル状態情報、および、デバイス状態情報のうち1以上を含む請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記プラットフォームは、アドバンスド・コンフィグレーション・アンド・パワー・インターフェース(ACPI)仕様に準拠している請求項2に記載の方法。
【請求項6】
前記非アクティブ状態は、システム3(S3)スリープ状態またはS4スリープ状態である請求項5に記載の方法。
【請求項7】
前記不揮発性メモリは、NANDフラッシュソリッドステートドライブ(SSD)、NORフラッシュSSD、ダイナミックランダムアクセスメモリ(DRAM)ベースSSD、相変化メモリ(PCM)SSDのうち1つを含む
請求項1から6のいずれか一項に記載の方法。
【請求項8】
1以上のキャッシュメモリを有するプロセッサと、
前記プロセッサに結合されているメインメモリと、
前記プロセッサに結合されている不揮発性メモリと、
ロジックと
を備える装置であって、
前記ロジックは、
前記装置のシステムコンテキストの保存を求める状態移行要求を受信し、
前記装置の前記システムコンテキストを保存し、
保存された前記システムコンテキストを圧縮および復元する場合について決定された第1の入出力(I/O)スループットと、前記保存されたシステムコンテキストを前記不揮発性メモリに対して読み書きする場合について決定された第2のI/Oスループットとを比較し、
決定された前記第1のI/Oスループットが決定された前記第2のI/Oスループットよりも高いという比較の結果に応じて、前記保存されたシステムコンテキストを前記不揮発性メモリに格納する装置。
【請求項9】
前記ロジックはさらに、決定された前記第2のI/Oスループットが決定された前記第1のI/Oスループットよりも高いという比較の結果に応じて、前記保存されたシステムコンテキストを圧縮して、圧縮された前記システムコンテキストを前記不揮発性メモリに格納する請求項8に記載の装置。
【請求項10】
前記ロジックが前記状態移行要求を受信することは、
スリープイネーブル(SLP_EN)ビットがアクティブ化されていると判断することと、
前記装置の前記システムコンテキストの保存を要求するスリープ状態を示すようにスリープタイプ(SLP_TYPx)ビットが設定されていると判断することと
を含む請求項8または9に記載の装置。
【請求項11】
前記装置の前記システムコンテキストは、前記1以上のキャッシュメモリのそれぞれの状態情報、前記プロセッサの状態情報、前記メインメモリの状態情報、および、前記装置に結合されている1以上のデバイスの状態情報のうち1以上を含む請求項8から10のうちいずれか一項に記載の装置。
【請求項12】
前記保存されたシステムコンテキストを圧縮および復元する場合について決定された第1の入出力(I/O)スループットは、前記保存されたシステムコンテキストが圧縮される時点の前記装置の動作条件に基づいて決定される請求項8から11のいずれか一項に記載の装置。
【請求項13】
前記不揮発性メモリは、NANDフラッシュソリッドステートドライブ(SSD)、NORフラッシュSSD、ダイナミックランダムアクセスメモリ(DRAM)ベースSSD、相変化メモリ(PCM)SSDのうち1つを含む請求項8から12のうちいずれか一項に記載の装置。
【請求項14】
プラットフォームに、
前記プラットフォームのコンテキストをハイバネーションファイルに保存する手順と、
前記プラットフォームの動作条件に基づいて、前記ハイバネーションファイルを圧縮および復元するための第1のオーバーヘッド時間を決定する手順と、
前記ハイバネーションファイルを不揮発性メモリに対して読み書きするための第2のオーバーヘッド時間を決定する手順と、
前記第1のオーバーヘッド時間が前記第2のオーバーヘッド時間よりも長いと判断することに応じて、前記ハイバネーションファイルを前記不揮発性メモリに書き込む手順と
を実行させるプログラム。
【請求項15】
前記プラットフォームにさらに、
前記プラットフォームを非アクティブ状態に切り替えるよう求める指示を受信する手順と、
前記非アクティブ状態が前記プラットフォームのコンテキストの保存を要求しているか否かを判断する手順と、
を実行させ、
前記プラットフォームの前記コンテキストを前記ハイバネーションファイルに保存する手順は、
前記非アクティブ状態が前記プラットフォームの前記コンテキストの保存を要求していると判断することに応じて、前記プラットフォームの前記コンテキストを前記ハイバネーションファイルに保存する手順を有する
請求項14に記載のプログラム。
【請求項16】
前記プラットフォームにさらに、前記第2のオーバーヘッド時間が前記第1のオーバーヘッド時間より長いと判断することに応じて、前記ハイバネーションファイルを圧縮して、圧縮した前記ハイバネーションファイルを前記不揮発性メモリに書き込む手順を実行させる請求項14または15に記載のプログラム。
【請求項17】
前記プラットフォームの前記コンテキストは、キャッシュメモリ状態情報、プロセッサ状態情報、メモリ状態情報、レジスタファイル状態情報、および、デバイス状態情報のうち1以上を含む請求項14から16のいずれか一項に記載のプログラム。
【請求項18】
前記プラットフォームは、アドバンスド・コンフィグレーション・アンド・パワー・インターフェース(ACPI)仕様に準拠している請求項15に記載のプログラム。
【請求項19】
前記非アクティブ状態は、システム3(S3)スリープ状態またはS4スリープ状態である請求項18に記載のプログラム。
【請求項20】
前記プラットフォームの動作条件に基づいて、前記第1のオーバーヘッド時間を決定する手順は、前記ハイバネーションファイルが圧縮される時点の前記プラットフォームの動作条件に基づいて、前記第1のオーバーヘッド時間を決定する手順を含む請求項14から19のいずれか一項に記載のプログラム。
【請求項21】
プラットフォームのコンテキストをハイバネーションファイルに保存する段階と、
前記プラットフォームの動作条件に基づいて、前記ハイバネーションファイルを圧縮するための第1のオーバーヘッド時間を決定する段階と、
前記ハイバネーションファイルを不揮発性メモリに対して書き込みするための第2のオーバーヘッド時間を決定する段階と、
前記第1のオーバーヘッド時間が前記第2のオーバーヘッド時間よりも長いと判断することに応じて、前記ハイバネーションファイルを前記不揮発性メモリに書き込む段階と
を備える方法。
【請求項22】
前記プラットフォームを非アクティブ状態に切り替えるよう求める指示を受信する段階と、
前記非アクティブ状態が前記プラットフォームのコンテキストの保存を要求しているか否かを判断する段階と、
をさらに備え、
前記プラットフォームの前記コンテキストを前記ハイバネーションファイルに保存する段階は、
前記非アクティブ状態が前記プラットフォームの前記コンテキストの保存を要求していると判断することに応じて、前記プラットフォームの前記コンテキストを前記ハイバネーションファイルに保存する段階を有する請求項21に記載の方法。
【請求項23】
1以上のキャッシュメモリを有するプロセッサと、
前記プロセッサに結合されているメインメモリと、
前記プロセッサに結合されている不揮発性メモリと、
ロジックと
を備える装置であって、
前記ロジックは、
前記装置のシステムコンテキストの保存を求める状態移行要求を受信し、
前記装置の前記システムコンテキストを保存し、
保存された前記システムコンテキストを圧縮する場合について決定された第1の入出力(I/O)スループットと、前記保存されたシステムコンテキストを前記不揮発性メモリに対して書き込みする場合について決定された第2のI/Oスループットとを比較し、
決定された前記第1のI/Oスループットが決定された前記第2のI/Oスループットよりも高いという比較の結果に応じて、前記保存されたシステムコンテキストを前記不揮発性メモリに格納する装置。
【請求項24】
前記ロジックはさらに、決定された前記第2のI/Oスループットが決定された前記第1のI/Oスループットよりも高いという比較の結果に応じて、前記保存されたシステムコンテキストを圧縮して、圧縮された前記システムコンテキストを前記不揮発性メモリに格納する請求項23に記載の装置。
【請求項25】
プラットフォームに、
前記プラットフォームのコンテキストをハイバネーションファイルに保存する手順と、
前記プラットフォームの動作条件に基づいて、前記ハイバネーションファイルを圧縮するための第1のオーバーヘッド時間を決定する手順と、
前記ハイバネーションファイルを不揮発性メモリに対して書き込みするための第2のオーバーヘッド時間を決定する手順と、
前記第1のオーバーヘッド時間が前記第2のオーバーヘッド時間よりも長いと判断することに応じて、前記ハイバネーションファイルを前記不揮発性メモリに書き込む手順と
を実行させるプログラム。
【請求項26】
前記プラットフォームの前記コンテキストは、キャッシュメモリ状態情報、プロセッサ状態情報、メモリ状態情報、レジスタファイル状態情報、および、デバイス状態情報のうち1以上を含む請求項25に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プラットフォームに関する。具体的には、これに限定されるものではないが、プラットフォームのレジューム時間を改善するための方法および装置に関する。
【背景技術】
【0002】
大容量格納デバイスに関して技術革新が進むにつれ、入出力(I/O)データレートは高速化の一途をたどっている。高速I/Oデータレートによって、プラットフォームは、ブートアップ時間およびレジューム時間を短縮することが可能となる。
【0003】
プラットフォームに含まれるコンポーネントのうちこのような高速I/Oデータレートに対応できないものがあれば、プラットフォームの性能のボトルネックとなる可能性がある。
【図面の簡単な説明】
【0004】
本発明の実施形態の特徴および利点は、以下に記載する主題の詳細な説明から明らかになるであろう。図面は以下の通りである。
図1】本発明の一実施形態に係るプラットフォームの電力状態を説明するための図である。
図2】本発明の一実施形態に係るデータアクセスレートを示す表である。
図3】本発明の一実施形態に係るアルゴリズムを説明するためのフローチャートである。
図4】本発明の一実施形態に係るシステムを示す図である。
【発明を実施するための形態】
【0005】
本明細書で説明する本発明の実施形態は、添付図面において本発明を制限するものではなく一例として図示されている。図示を簡潔かつ分かりやすいものとするべく、図中に図示した構成要素は必ずしも実寸に即したものではない。例えば、一部の構成要素の寸法は、分かりやすいように、他の構成要素に比べて強調している場合がある。さらに、適切と考えられる場合には、同様または対応する構成要素を示すべく、同じ参照番号を複数の図面にわたって繰り返し利用する。明細書中において本発明の「一実施形態」または「ある実施形態」という場合、当該実施形態に関連付けて説明している特定の特徴、構造または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。このため、明細書中に「一実施形態において」という表現が繰り返し用いられても、必ずしも全てが同じ実施形態を意味するものではない。
【0006】
本発明の実施形態は、プラットフォームのレジューム時間を改善する方法および装置を提供する。本発明の一実施形態において、プラットフォームのコンテキストは、プラットフォームが非アクティブ状態に移行する前に、保存される。プラットフォームは、アクティブ状態に戻ると、保存されたコンテキストを読み出して、非アクティブ状態に移行する前の元の状態にプラットフォームを復元する。本発明の一実施形態によると、プラットフォームは、プラットフォームの動作条件に基づいて、不揮発性メモリにコンテキストを格納する前に、保存するコンテキストを圧縮するか否かを判断する。これによって、プラットフォームは、プラットフォームのレジューム時間を高速化することができる最適な方法を選択することができるようになる。
【0007】
プラットフォームとは、これらに限定されないが、デスクトップコンピュータ、ラップトップコンピュータ、ネットブック、タブレットコンピュータ、ノートブックコンピュータ、携帯情報端末(PDA)、サーバ、ワークステーション、セルラー式電話、モバイルコンピューティングデバイス、インターネットアプライアンス、または、任意のその他の種類のコンピューティングデバイスを含む。プラットフォームのコンテキストとは、これらに限定されないが、キャッシュメモリ状態情報、プロセッサ状態情報、メモリ状態情報、レジスタファイル状態情報、デバイス状態情報、および、プラットフォームの非アクティブ状態からレジュームした後に復元する必要がある任意のその他の情報を含む。
【0008】
図1は、本発明の一実施形態に係るプラットフォームの電力状態を説明するための概略図100である。本発明の一実施形態によると、プラットフォームは、プラットフォームのさまざまな利用シナリオに対応するべく、複数の異なる電力消費レベルが定義されている。プラットフォームは、プラットフォームのコンポーネントが全て、完全に動作可能な状態であるアクティブ状態100が定義されている。本発明の一実施形態によると、アクティブ状態100は、電力を節約する必要が全くない利用シナリオを意味する。
【0009】
例えば、プラットフォームが電池から電力供給を受けている場合、プラットフォームは、アクティブ状態100から低電力状態120へと移行することによって電力消費レベルを低くすることができる。本発明の一実施形態によると、低電力状態120では、プラットフォームの1以上のコンポーネントがディセーブルされて、プラットフォームの消費電力を低減している。本発明の別の実施形態によると、プラットフォームの1以上のコンポーネントは、低電力要件で動作している。例えば、本発明の一実施形態によると、プラットフォームのプロセッサは、低電力状態120において、アクティブ状態110の場合よりも遅いクロック周波数で動作している。これによって、プラットフォームの消費電力が低減され得る。
【0010】
本発明の一実施形態によると、プラットフォームは、アクティブ状態110から非アクティブ状態130へ移行する。非アクティブ状態110とは、これらに限定されないが、スリープ状態、スタンドバイ状態、ハイバーネート状態等を含む。本発明の一実施形態によると、非アクティブ状態130は、プラットフォームの所望のモードを示す複数の状態が定義されている。例えば、本発明の一実施形態によると、プラットフォームは、アドバンスド・コンフィグレーション・アンド・パワー・インターフェース(ACPI)仕様(ACPI仕様、「アドバンスド・コンフィグレーション・アンド・パワー・インターフェース仕様」、改訂版4.0a、2010年4月5日公開)に準拠している。本発明の一実施形態において、プラットフォームがACPI仕様に準拠している場合、非アクティブ状態110は、システム1−4(S1−S4)のスリープ状態を意味する。
【0011】
本発明の一実施形態によると、非アクティブ状態130がプラットフォームのコンテキストの保存を要求する場合、プラットフォームは、プラットフォームのコンテキストをハイバネーションファイルに保存する。本発明の一実施形態によると、プラットフォームは、ハイバネーションファイルを不揮発性メモリに格納して、プラットフォームのレジューム時間を低減する最適な方法を選択するロジックを備える。プラットフォームは、プラットフォームの動作条件に基づいて、ハイバネーションファイルを圧縮および復元するための第1のオーバーヘッド時間を決定する。プラットフォームは、不揮発性メモリに対してハイバネーションファイルを読み書きするための第2のオーバーヘッド時間を決定する。プラットフォームは、第1のオーバーヘッド時間を第2のオーバーヘッド時間と比較して、ハイバネーションファイルを不揮発性メモリに書き込む前に圧縮すべきか否かを判断する。
【0012】
第1のオーバーヘッド時間が第2のオーバーヘッド時間よりも長い場合、つまり、不揮発性メモリに対してハイバネーションファイルを読み書きする方が早い場合、プラットフォームはハイバネーションファイルに圧縮を実行せず、ハイバネーションファイルを不揮発性メモリに複製または格納する。第2のオーバーヘッド時間が第1のオーバーヘッド時間よりも長い場合、つまり、不揮発性メモリに対してハイバネーションファイルを読み書きする方が遅い場合、プラットフォームはハイバネーションファイルのサイズを小さくするべく圧縮処理を実行して、圧縮されたハイバネーションファイルを不揮発性メモリに複製または格納する。
【0013】
本発明の一実施形態によると、プラットフォームのロジックは、非アクティブ状態130に移行するよう求める要求を受信すると常に、プラットフォームで実行されるファームウェアとして実装される。本発明の別の実施形態によると、プラットフォームのロジックは、ベーシックI/Oシステム(BIOS)ファームウェアとして実装される。当業者であれば、プラットフォームのロジックは本発明の実施に影響を与えることなくプラットフォームの任意のコンポーネントに設け得ることに容易に想到するであろう。
【0014】
プラットフォームの電力状態の概略図100は本発明を限定することを意図してはおらず、本発明の実施に影響を与えることなく、プラットフォームの電力状態を増減することができる。
【0015】
図2は、本発明の一実施形態に係るデータアクセスレートを示す表である。図2は、プラットフォームの動作条件を変化させて圧縮および復元した同一データペイロードの一例を示す図である。当該ペイロードは、本発明の一実施形態において、ハイバネーションファイルを表す。
【0016】
例えば、本発明の一実施形態において、プラットフォームのオペレーティングシステムがアイドルモードである場合、つまり、プラットフォームのリソースを利用しているアプリケーションが非常に少数かまたは全く無い場合、プラットフォームが3072メガバイト(MB)のデータペイロードを圧縮するためには8.883秒必要である。圧縮されたデータペイロードは、プラットフォームの動作条件が同じである場合、3.382秒で復元され得る。図2はさらに、プラットフォームのオペレーティングシステムの負荷が軽い場合、中程度である場合、重い場合に必要な圧縮時間および復元時間をそれぞれ図示している。
【0017】
同じ3072MBのデータペイロードをダイナミックランダムアクセスメモリ(DRAM)をベースとするソリッドステートドライブ等の不揮発性メモリに対して読み書きするために必要な時間は、9.332秒である。プラットフォームのオペレーティングシステムの負荷が軽い、中程度、および、重い場合に、不揮発性メモリに対するペイロードの書き込み時間は、ペイロードを圧縮するために必要な圧縮時間よりも高速である。これらのプラットフォームの動作条件では、プラットフォームの性能は、ペイロードの圧縮を実行することなくペイロードを直接不揮発性メモリに書き込むことによって、改善され得る。
【0018】
プラットフォームのオペレーティングシステムの負荷が重い場合には、不揮発性メモリからのペイロードの読み出し時間は、ペイロードを復元するために必要な復元時間よりも高速である。このプラットフォームの動作条件では、プラットフォームの性能は、ペイロードの復元を実行することなくペイロードを不揮発性メモリから直接読み出すことによって、改善され得る。
【0019】
本発明の一実施形態によると、プラットフォームは、現在の動作条件での圧縮時間および復元時間と、不揮発性メモリの書込データレートおよび読出データレートとを比較することによって、ハイバネーションファイルを不揮発性メモリに書き込む前に圧縮すべきか否かを判断する。本発明の別の実施形態では、プラットフォームは、現在の動作条件での圧縮時間と不揮発性メモリの書込データレートとを比較することによって、ハイバネーションファイルを不揮発性メモリに書き込む前に圧縮すべきか否かを判断する。本発明のさらに別の実施形態では、プラットフォームは、現在の動作条件での復元時間と不揮発性メモリの読出データレートとを比較することによって、ハイバネーションファイルを不揮発性メモリに書き込む前に圧縮すべきか否かを判断する。
【0020】
当業者であれば、本発明の実施に影響を与えることなく、不揮発性メモリに書き込む前にハイバネーションファイルを圧縮すべきか否かを判断する方法として他の方法も利用可能であることに想到するであろう。図2は、比較対象として時間測定結果を用いたが、これに限定されることを意味するものではない。本発明の別の実施形態では、比較対象の測定値としてI/Oスループット(MB/s)を利用する。当業者であれば、不揮発性メモリに書き込む前にハイバネーションファイルを圧縮すべきか否かを判断する方法としてプラットフォームの他のパラメータも利用できることに想到するであろう。これらの他のパラメータは、本発明の実施に影響を与えることなく利用することが可能であり、本明細書では説明を省略する。
【0021】
図3は、本発明の一実施形態に係るアルゴリズムを説明するためのフローチャート300である。ステップ305において、フロー300は、非アクティブ状態移行要求を受信したか否かを確認する。受信していない場合、フロー300はステップ305に戻る。本発明の一実施形態において、プラットフォームがACPI仕様に準拠している場合、ステップ305はスリープイネーブル(SLP_EN)ビットがアサートされているか否かを確認する。SLP_ENビットは、プラットフォームがS1からS4のスリープ状態のうちいずれか1つに移行するように要求されていることを示す。
【0022】
受信している場合、フロー300はステップ310に進み、所望の非アクティブ状態ではプラットフォームのコンテキストの保存を必要としているか否かを確認する。本発明の一実施形態によると、プラットフォームがACPI仕様に準拠している場合、ステップ310は、スリープタイプx(SLP_TYPx)ビットの設定内容を確認する。SLP_TYPxビットは、所望の種類のスリープ状態、つまり、プラットフォームのS1スリープ状態か、S2スリープ状態か、S3スリープ状態か、または、S4スリープ状態かを示す。本発明の一実施形態によると、所望の非アクティブ状態がS3スリープ状態またはS4スリープ状態と設定されている場合、プラットフォームのコンテキストの保存が要求される。当業者であれば、本発明の一実施形態において、プラットフォームの他のシステム状態でもプラットフォームのコンテキストの保存を必要とし、こういった他のシステム状態はステップ310において確認し得ることに容易に想到するであろう。
【0023】
ステップ310において所望の非アクティブ状態がプラットフォームのコンテキストの保存を必要としないと判断される場合、フロー300はステップ305に戻る。ステップ310において所望の非アクティブ状態がプラットフォームのコンテキストの保存を必要とすると判断される場合、フロー300はステップ320に進む。ステップ320において、フロー320は、非アクティブ状態の要件に基づき、要求されたプラットフォームのコンテキストを保存する。例えば、本発明の一実施形態によると、プラットフォームがACPI仕様に準拠しており、所望のスリープ状態がS4スリープ状態に設定されている場合、当業者であれば、ACPI仕様に基づき、保存する必要があるプラットフォームの情報が何であるかを容易に理解するであろう。本発明の一実施形態において、プラットフォームのオペレーティングシステムの要求に応じて、要求されたコンテキストをハイバネーションファイルまたは任意のその他の適切なフォーマットに保存する。
【0024】
ステップ330において、フロー300は、保存されたコンテキストを圧縮および復元するために必要な第1のオーバーヘッドを決定する。本発明の一実施形態によると、ステップ330は、ハイバネーションファイルを圧縮および復元するために必要な第1のオーバーヘッドを決定する。ステップ340において、フロー300は、不揮発性メモリまたはストレージデバイスに対して、保存されたコンテキストを読み書きするために必要な第2のオーバーヘッドを決定する。
【0025】
第1および第2のオーバーヘッドは、これらに限定されないが、時間、毎秒メガバイトを単位とするI/Oスループット、および、任意のその他の適切な単位等の単位で測定される。本発明の一実施形態によると、ステップ330およびステップ340は、保存されたコンテキストの圧縮および書込のオーバーヘッドのみを測定する。本発明の別の実施形態によると、ステップ330および340は、保存されたコンテキストの復元および読出のオーバーヘッドのみを測定する。本発明のさらに別の実施形態によると、ステップ340は、不揮発性メモリを初期化する場合に、プラットフォームのブートアップ時に1回のみ実行される。
【0026】
ステップ350において、フロー300は、第1のオーバーヘッドが第2のオーバーヘッドよりも長いか否かを確認する。第1のオーバーヘッドの方が長い場合、つまり、保存したコンテキストを不揮発性メモリに対して読み書きする方が早い場合、フロー300はステップ360に進み、保存したコンテキストを不揮発性メモリに格納して、フロー300は終了する。第1のオーバーヘッドの方が短い場合、つまり、保存したコンテキストを不揮発性メモリに対して読み書きする方が遅い場合、フロー300はステップ370に進む。ステップ370において、フロー300は、保存されたコンテキストを圧縮して、圧縮したコンテキストを不揮発性メモリに格納して、フロー300は終了する。
【0027】
図4は、本発明の一実施形態に係るシステムを示す図である。システム400とは、これらに限定されないが、デスクトップコンピュータ、ラップトップコンピュータ、ネットブック、ノートブックコンピュータ、携帯情報端末(PDA)、サーバ、ワークステーション、セルラー式電話、モバイルコンピューティングデバイス、インターネットアプライアンス、または、任意のその他の種類のコンピューティングデバイスを含む。別の実施形態では、本明細書で開示している方法を実装するシステム400は、システムオンチップ(SOC)システムであってよい。
【0028】
プロセッサ410は、システム400の命令を実行するプロセッシングコア412を備える。プロセッシングコア412とは、これらに限定されないが、命令をフェッチするプリフェッチロジック、命令を復号する復号ロジック、命令を実行する実行ロジック等を含む。プロセッサ410は、システム400のデータおよび/または命令をキャッシュするキャッシュメモリ416を有する。本発明の別の実施形態によると、キャッシュメモリ416とは、これらに限定されないが、レベル1、レベル2およびレベル3のキャッシュメモリまたはプロセッサ410内のキャッシュメモリの任意のその他の構成を含む。
【0029】
メモリコントロールハブ(MCH)414は、揮発性メモリ432および/または不揮発性メモリ434を含むメモリ430との間でアクセスおよび通信をプロセッサ410が実行できるようにする機能を持つ。揮発性メモリ432とは、これらに限定されないが、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)、ダイナミックランダムアクセスメモリ(DRAM)、RAMBUSダイナミックランダムアクセスメモリ(RDRAM)、および/または、任意のその他の種類のランダムアクセスメモリデバイスを含む。不揮発性メモリ434とは、これらに限定されないが、NANDフラッシュメモリ、NORフラッシュメモリ、相変化メモリ(PCM)、リードオンリーメモリ(ROM)、電気的消去可能プログラム可能リードオンリーメモリ(EEPROM)、または、任意のその他の種類の不揮発性メモリデバイスを含む。
【0030】
メモリ430は、情報およびプロセッサ410が実行すべき命令を格納している。メモリ430はさらに、一時的な変数またはその他の中間情報を、プロセッサ410が命令を実行している間、格納するとしてよい。チップセット420は、ポイント・ツー・ポイント(PtP)インターフェース417および422を介して、プロセッサ410と接続されている。チップセット420によって、プロセッサ410はシステム400内の他のモジュールと接続可能になる。本発明の一実施形態によると、インターフェース417および422は、Intel(登録商標)社のQuickPathインターコネクト(QPI)等のPtP通信プロトコルに応じて動作する。チップセット420は、これらに限定されないが、液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイ、または、任意のその他の形態の視覚表示デバイスを含む表示デバイス440に、インターフェース424を介して接続されている。
【0031】
また、チップセット420は、インターフェース426を介して、1以上のバス450および460に接続され、バス450および460は、さまざまなモジュール474、480、482、484および486を相互接続している。バス450および460は、バス速度または通信プロトコルが不一致の場合、バスブリッジ472を介して相互接続されるとしてよい。チップセット420は、これらに限定されないが、不揮発性メモリ480、大容量格納デバイス482、キーボード/マウス484、および、ネットワークインターフェース486に結合されている。不揮発性メモリ480とは、これらに限定されないが、NANDフラッシュソリッドステートドライブ(SSD)、NORフラッシュSSD、ダイナミックランダムアクセスメモリ(DRAM)ベースのSSD、相変化メモリ(PCM)SSD等を含む。
【0032】
大容量格納デバイス482とは、これらに限定されないが、ソリッドステートドライブ、ハードディスクドライブ、ユニバーサルシリアルバスフラッシュメモリドライブ、または、任意のその他の形態のコンピュータデータ格納媒体を含む。ネットワークインターフェース486は、これらに限定されないが、イーサネット(登録商標)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、ペリフェラルコンポーネントインターコネクト(PCI)エクスプレスインターフェース、無線インターフェースおよび/または任意のその他の適切な種類のインターフェースを含む任意の種類の公知のネットワークインターフェース規格を用いて実現される。無線インターフェースは、これらに限定されないが、IEEE802.11規格および関連する規格、HomePlug AV(HPAV)、超広帯域(UWB)、Bluetooth(登録商標)、WiMAX、または、任意の形態の無線通信プロトコルに応じて動作する。
【0033】
図4に示すモジュールはシステム400内の複数の別箇のブロックとして図示しているが、これらのブロックの一部が実行する機能は、一の半導体回路内に集積化されるとしてもよいし、または、2以上の別箇の集積回路を用いて実現するとしてもよい。例えば、キャッシュメモリ416がプロセッサ410内の一の独立したブロックとして図示されているが、キャッシュメモリ416をプロセッサコア412内に組み込むことも可能である。システム400は、本発明の別の実施形態では、複数のプロセッサ/プロッセッシングコアを備えるとしてよい。本発明の一実施形態によると、システム400の保存されたコンテキストまたは圧縮されたコンテキストは、不揮発性メモリ434、大容量格納デバイス482、および、不揮発性メモリ480に格納することができる。
【0034】
開示した主題の実施形態例を説明しているが、当業者であれば、開示した主題を実現する方法として上記以外にも多くの方法が利用され得ることに容易に想到するであろう。前述の説明では、開示した主題のさまざまな側面を説明した。説明のために、具体的な数、システムおよび構成を記載して主題を深く理解していただけるようにした。しかし、本開示を参照すれば、記載した具体的且つ詳細な内容を利用しなくても主題を実施し得ることは当業者には明らかである。また、公知の特徴、コンポーネントまたはモジュールは、開示した主題をあいまいにしないよう、省略、簡略化、統合または分割した。
【0035】
「〜ように動作可能」という表現は、本明細書で用いられる場合、デバイス、システム、プロトコル等が、電力供給がオフの状態である時には、所望の機能を実行するように動作することが可能な状態であるか、または、そのように動作するように調整されていることを意味する。開示した主題のさまざまな実施形態は、ハードウェア、ファームウェア、ソフトウェアまたはこれらの組み合わせで実現するとしてよい。開示した主題のさまざまな実施形態はまた、マシンがアクセスすると当該マシンがタスクを実行し、抽象データ型または低レベルハードウェアコンテキストを定義するか、結果を生成する命令、関数、プロシージャ、データ構造、ロジック、アプリケーションプログラム、設計表現またはシミュレーションフォーマット、エミュレーション、および、設計の製造等のプログラムコードを参照しつつ、または、これらと組み合わせて、説明しているとしてよい。
【0036】
図示した技術は、汎用コンピュータまたはコンピューティングデバイス等の1以上のコンピューティングデバイスで格納および実行されるコードおよびデータを用いて実現することができる。このようなコンピューティングデバイスは、機械可読格納媒体(例えば、磁気ディスク、光ディスク、ランダムアクセスメモリ、リードオンリーメモリ、フラッシュメモリデバイス、相変化メモリ)、および、機械可読通信媒体(例えば、電気信号、光信号、音信号またはその他の形態の伝搬信号、例えば、搬送波、赤外信号、デジタル信号等)等の機械可読媒体を用いて、コードおよびデータの格納および通信(内部で、そして、ネットワークを介して他のコンピューティングデバイスとの間で)を実行する。
【0037】
実施形態例を参照しつつ開示した主題を説明したが、本明細書は限定的な意味で解釈されるべきではない。開示した主題が関連する技術分野の当業者には明らかであるが、実施形態例のさまざまな変形例は、主題の他の実施形態と同様に、開示した主題の範囲内に含まれるものとする。
[項目1]
プラットフォームのコンテキストをハイバネーションファイルに保存する段階と、
前記プラットフォームの動作条件に基づいて、前記ハイバネーションファイルを圧縮および復元するための第1のオーバーヘッド時間を決定する段階と、
前記ハイバネーションファイルを不揮発性メモリに対して読み書きするための第2のオーバーヘッド時間を決定する段階と、
前記第1のオーバーヘッド時間が前記第2のオーバーヘッド時間よりも長いと判断することに応じて、前記ハイバネーションファイルを前記不揮発性メモリに書き込む段階とを備える方法。
[項目2]
前記プラットフォームを非アクティブ状態に切り替えるよう求める指示を受信する段階と、
前記非アクティブ状態が前記プラットフォームのコンテキストの保存を要求しているか否かを判断する段階と、をさらに備え、
前記プラットフォームの前記コンテキストを前記ハイバネーションファイルに保存する段階は、
前記非アクティブ状態が前記プラットフォームの前記コンテキストの保存を要求していると判断することに応じて、前記プラットフォームの前記コンテキストを前記ハイバネーションファイルに保存する段階を有する項目1に記載の方法。
[項目3]
前記第2のオーバーヘッド時間が前記第1のオーバーヘッド時間より長いと判断することに応じて、前記ハイバネーションファイルを圧縮して、圧縮した前記ハイバネーションファイルを前記不揮発性メモリに書き込む段階をさらに備える項目1または2に記載の方法。
[項目4]
前記プラットフォームの前記コンテキストは、キャッシュメモリ状態情報、プロセッサ状態情報、メモリ状態情報、レジスタファイル状態情報、および、デバイス状態情報のうち1以上を含む項目1から3のいずれか一項に記載の方法。
[項目5]
前記プラットフォームは、アドバンスド・コンフィグレーション・アンド・パワー・インターフェース(ACPI)仕様に準拠している項目2から4のいずれか一項に記載の方法。
[項目6]
前記非アクティブ状態は、システム3(S3)スリープ状態またはS4スリープ状態である項目5に記載の方法。
[項目7]
前記不揮発性メモリは、NANDフラッシュソリッドステートドライブ(SSD)、NORフラッシュSSD、ダイナミックランダムアクセスメモリ(DRAM)ベースSSD、相変化メモリ(PCM)SSDのうち1つを含む項目1から6のいずれか一項に記載の方法。
[項目8]
1以上のキャッシュメモリを有するプロセッサと、
前記プロセッサに結合されているメインメモリと、
前記プロセッサに結合されている不揮発性メモリと、
ロジックとを備える装置であって、
前記ロジックは、
前記装置のシステムコンテキストの保存を求める状態移行要求を受信し、
前記装置の前記システムコンテキストを保存し、
保存された前記システムコンテキストを圧縮および復元する場合について決定された第1の入出力(I/O)スループットと、前記保存されたシステムコンテキストを前記不揮発性メモリに対して読み書きする場合について決定された第2のI/Oスループットとを比較する装置。
[項目9]
前記ロジックはさらに、前記第1のI/Oスループットが前記第2のI/Oスループットよりも高いという比較の結果に応じて、前記保存されたシステムコンテキストを前記不揮発性メモリに格納する項目8に記載の装置。
[項目10]
前記ロジックはさらに、前記第2のI/Oスループットが前記第1のI/Oスループットよりも長いという比較の結果に応じて、前記保存されたシステムコンテキストを圧縮して、圧縮された前記システムコンテキストを前記不揮発性メモリに格納する項目8または9に記載の装置。
[項目11]
前記ロジックが前記状態移行要求を受信することは、
スリープイネーブル(SLP_EN)ビットがアクティブ化されていると判断することと、
前記装置の前記システムコンテキストの保存を要求するスリープ状態を示すようにスリープタイプ(SLP_TYPx)ビットが設定されていると判断することとを含む項目8から10のうちいずれか一項に記載の装置。
[項目12]
前記装置の前記システムコンテキストは、前記1以上のキャッシュメモリのそれぞれの状態情報、前記プロセッサの状態情報、前記メインメモリの状態情報、および、前記装置に結合されている1以上のデバイスの状態情報のうち1以上を含む項目8から11のうちいずれか一項に記載の装置。
[項目13]
前記装置は、アドバンスド・コンフィグレーション・アンド・パワー・インターフェース(ACPI)仕様に準拠している項目8から12のいずれか一項に記載の装置。
[項目14]
前記不揮発性メモリは、NANDフラッシュソリッドステートドライブ(SSD)、NORフラッシュSSD、ダイナミックランダムアクセスメモリ(DRAM)ベースSSD、相変化メモリ(PCM)SSDのうち1つを含む項目8から13のうちいずれか一項に記載の装置。
[項目15]
プラットフォームに、
前記プラットフォームのコンテキストをハイバネーションファイルに保存する手順と、
前記プラットフォームの動作条件に基づいて、前記ハイバネーションファイルを圧縮および復元するための第1のオーバーヘッド時間を決定する手順と、
前記ハイバネーションファイルを不揮発性メモリに対して読み書きするための第2のオーバーヘッド時間を決定する手順と、
前記第1のオーバーヘッド時間が前記第2のオーバーヘッド時間よりも長いと判断することに応じて、前記ハイバネーションファイルを前記不揮発性メモリに書き込む手順とを実行させるプログラム。
[項目16]
前記プラットフォームにさらに、
前記プラットフォームを非アクティブ状態に切り替えるよう求める指示を受信する手順と、
前記非アクティブ状態が前記プラットフォームのコンテキストの保存を要求しているか否かを判断する手順と、を実行させ、
前記プラットフォームの前記コンテキストを前記ハイバネーションファイルに保存する手順は、
前記非アクティブ状態が前記プラットフォームの前記コンテキストの保存を要求していると判断することに応じて、前記プラットフォームの前記コンテキストを前記ハイバネーションファイルに保存する手順を有する項目15に記載のプログラム。
[項目17]
前記プラットフォームにさらに、前記第2のオーバーヘッド時間が前記第1のオーバーヘッド時間より長いと判断することに応じて、前記ハイバネーションファイルを圧縮して、圧縮した前記ハイバネーションファイルを前記不揮発性メモリに書き込む手順を実行させる項目15または16に記載のプログラム。
[項目18]
前記プラットフォームの前記コンテキストは、キャッシュメモリ状態情報、プロセッサ状態情報、メモリ状態情報、レジスタファイル状態情報、および、デバイス状態情報のうち1以上を含む項目15から17のいずれか一項に記載のプログラム。
[項目19]
前記プラットフォームは、アドバンスド・コンフィグレーション・アンド・パワー・インターフェース(ACPI)仕様に準拠している項目16から18のいずれか一項に記載のプログラム。
[項目20]
前記非アクティブ状態は、システム3(S3)スリープ状態またはS4スリープ状態である項目19に記載のプログラム。
[項目21]
前記不揮発性メモリは、NANDフラッシュソリッドステートドライブ(SSD)、NORフラッシュSSD、ダイナミックランダムアクセスメモリ(DRAM)ベースSSD、相変化メモリ(PCM)SSDのうち1つを含む項目15から20のいずれか一項に記載のプログラム。
図1
図2
図3
図4