(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイスであって、
前記コンピューティングデバイスが電源オフコマンドを受信したことに応答して、前記コンピューティングデバイスをスリープ状態にするスリープコマンドを発行し、
前記コンピューティングデバイスのメモリの内容を前記コンピューティングデバイスの不揮発性記憶装置に書き込む、
オペレーティングシステムと、
コントローラであって、電源オフコマンドが前記スリープコマンドをトリガしたものと該コントローラが判断したことに応答して、前記コンピューティングデバイスを電源オフ状態にする前記電源オフコマンドを発行するコントローラと、
を備えてなり、
前記オペレーティングシステムは、更に、
スリープ状態インジケータを第１のレジスタに書き込み、
前記コンピューティングデバイスが前記オペレーティングシステムからスリープコマンドを受信したことに応答してスリープ準備（ＰＴＳ）メソッドを起動するものであり、
前記オペレーティングシステムは、前記コンピューティングデバイスが前記電源オフコマンドを受信したことに応答して前記ＰＴＳメソッドを起動しないものである、コンピューティングデバイス。
【請求項２】
前記電源オフコマンドを実行する電力コントローラを更に備える、請求項１に記載のコンピューティングデバイス。
【請求項３】
前記電力コントローラは、高度設定電力インターフェース（ＡＣＰＩ）を実施する、請求項２に記載のコンピューティングデバイス。
【請求項４】
前記電源オフコマンドは、前記コンピューティングデバイスをシャットダウンするユーザコマンドと、タイムアウトコマンドと、アプリケーションによって実行される電源オフ命令とのうちの少なくとも１つを含む、請求項１に記載のコンピューティングデバイス。
【請求項５】
前記スリープ状態は、ＡＣＰＩ  Ｓ４スリープ状態であり、前記電源オフ状態は、ＡＣＰＩ  Ｓ５電力状態である、請求項１に記載のコンピューティングデバイス。
【請求項６】
前記コントローラは、前記ＰＴＳメソッドが前記オペレーティングシステムによって起動されたか否かを判断するロジックを備え、前記コントローラは、前記ＰＴＳメソッドが起動されないとき、電源オフ状態インジケータを第２のレジスタに書き込む、請求項１に記載のコンピューティングデバイス。
【請求項７】
前記第２のレジスタは、実施されるＡＣＰＩスリープタイプを示すＡＣＰＩスリープタイプレジスタである、請求項６に記載のコンピューティングデバイス。
【請求項８】
前記コントローラは、更に、Ｓ５最大省電力を実施し、前記コンピューティングデバイスのウェイクイベント及び管理サービスがディセーブルされる、請求項１に記載のコンピューティングデバイス。
【請求項９】
コンピューティングデバイス用の電源オフコマンドを検出したことに応答して前記コンピューティングデバイスのオペレーティングシステムから前記コンピューティングデバイスをスリープ状態にするスリープコマンドを発行することと、
前記コンピューティングデバイスのメモリの内容を前記コンピューティングデバイスの不揮発性記憶装置に書き込むことと、
前記メモリの内容を前記不揮発性記憶装置に書き込んだことに応答して、前記コンピューティングデバイス用の前記電源オフコマンドが前記オペレーティングシステムによる前記スリープコマンドをトリガしたものと前記コンピューティングシステムのコントローラが判断したことに応答して、前記コンピューティングデバイスを電源オフ状態にすることと、
を含んでなり、
前記電源オフコマンドが前記スリープコマンドをトリガしたものと前記コンピューティングシステムのコントローラが判断することは、
前記オペレーティングシステムがスリープ準備（ＰＴＳ）メソッドを起動したか否かを判断することと、
前記オペレーティングシステムが前記ＰＴＳメソッドを起動していないとき、電源オフ状態インジケータをスリープタイプレジスタに書き込むこととを含むものである、方法。
【請求項１０】
前記スリープ状態は、高度設定電力インターフェース（ＡＣＰＩ）Ｓ４スリープ状態であり、前記電源オフ状態は、ＡＣＰＩ  Ｓ５電力状態である、請求項９に記載の方法。
【請求項１１】
前記オペレーティングシステムが前記ＰＴＳメソッドを起動したとき、
前記コンピューティングデバイス用のスリープコマンドが前記オペレーティングシステムによる前記スリープコマンドをトリガしたものと判断することと、
スリープ状態インジケータを前記スリープタイプレジスタに書き込むことと、
前記コンピューティングデバイスを前記スリープ状態にすることと、
を更に含む、請求項９に記載の方法。
【請求項１２】
前記スリープタイプレジスタは、電力コントローラによって実行される電力状態を示す前記電力コントローラのＡＣＰＩスリープタイプレジスタである、請求項９に記載の方法。
【請求項１３】
Ｓ５最大省電力を実施することを更に含み、前記コンピューティングデバイスのウェイクイベント及び管理サービスは、前記Ｓ５最大省電力中はディセーブルされる、請求項９に記載の方法。
【請求項１４】
前記コンピューティングデバイスを前記電源オフ状態からウェイクさせることと、
前記不揮発性記憶装置がデータを含むものと判断したことに応答して、前記不揮発性記憶装置の内容をメモリに書き込むことと、
を更に含む、請求項９に記載の方法。
【請求項１５】
前記不揮発性記憶装置がデータを含むものと判断することは、前記オペレーティングシステムが、ＡＣＰＩ電力状態を実施する前にメモリの内容を前記不揮発性記憶装置に記憶するように構成されているか否かを判断することを含む、請求項１４に記載の方法。
【請求項１６】
非一時的コンピュータ可読媒体であって、コンピューティングデバイスのプロセッサによって実行されると、前記プロセッサに、
前記コンピューティングデバイス用の電源オフコマンドを検出したことに応答して、前記コンピューティングデバイスをスリープ状態にするスリープコマンドを発行させ、
前記コンピューティングデバイスのメモリの内容を前記コンピューティングデバイスの不揮発性記憶装置に書き込ませ、
前記メモリの内容を前記不揮発性記憶装置に書き込んだことに応答して、前記コンピューティングデバイス用の前記電源オフコマンドがオペレーティングシステムによる前記スリープコマンドをトリガしたものと前記プロセッサが判断したことに応答して、前記コンピューティングデバイスを電源オフ状態にさせる、
命令を含み、
前記電源オフコマンドが前記スリープコマンドをトリガしたものと前記プロセッサが判断することは、
前記オペレーティングシステムがスリープ準備（ＰＴＳ）メソッドを起動したか否かを判断することと、
前記オペレーティングシステムが前記ＰＴＳメソッドを起動していないとき、電源オフ状態インジケータをスリープタイプレジスタに書き込むこととを含むものである、非一時的コンピュータ可読媒体。
【請求項１７】
高度設定電力インターフェース（ＡＣＰＩ）Ｓ５最大省電力プロセスを実行する、前記プロセッサによって実行可能な命令を更に含み、前記コンピューティングデバイスは、ほぼ０．５Ｗの電力消費に電力低下され、前記コンピューティングデバイスのウェイクイベント及び管理サービスは、前記Ｓ５最大省電力プロセス中はディセーブルされる、請求項１６に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューティングデバイスにおける電力低下状態を実施することに関する。
【背景技術】
【０００２】
技術の進歩は、パーソナルコンピュータ、ラップトップコンピュータ、移動電話、及びタブレットコンピュータ等の、より小型で、より強力なコンピューティングデバイスをもたらしてきた。コンピューティングデバイスのサイズがより小さくなり、計算能力がより強力になるにつれて、バッテリ寿命及び電力消費は、ウェイクアップ中のコンピューティングデバイスの応答性を犠牲にすることなく、検討すべき重要な因子となってきている。一般に、電力供給されないコンピューティングデバイスの構成要素が多いほど、より多くの電力が節約され得、コンピューティングデバイスのバッテリ寿命は延び得る。コンピューティングデバイスは、電力消費を削減するためにスリープモード又は電源オフモードに入ることができる。例えば、ユーザは、コンピューティングデバイスに、スリープモード、スタンバイモード、又はハイバネーションモードに入るように命令することができる。さらに、ユーザは、電源シャットダウンコマンドを選択することができ、これに応答して、コンピューティングデバイスの構成要素は電源オフされる。
【０００３】
以下の詳細な説明は、図面を参照する。
【図面の簡単な説明】
【０００４】
【図１】電源オフ状態を実施するためのコントローラを備えるコンピューティングデバイスの一例示の実施態様のブロック図である。
【図２】電源オフ状態を実施するためのコントローラを備えるコンピューティングデバイスの別の例示の実施態様のブロック図である。
【図３】コンピューティングデバイスにおける電源オフ状態の一例示の実施態様のフローチャートである。
【図４】コンピューティングデバイスにおける電源オフ状態の別の例示の実施態様のフローチャートである。
【図５】電源オフ状態を実施するための命令を用いてコード化された機械可読記憶媒体を備えるコンピューティングデバイスの例示の実施態様のブロック図である。
【発明を実施するための形態】
【０００５】
コンピューティングデバイスは、高度設定電力インターフェース（ＡＣＰＩ）仕様に定義されているように、１つ又は複数の低電力モード（例えば、スリープ状態）で動作することによって電力及びエネルギーの消費を節約し得る。ＡＣＰＩ仕様は、「Ｓ０〜Ｓ５」電力状態を含み得る。Ｓ０は、システムのフル電力状態又は「オン」状態を表す。スリープ状態Ｓ１〜Ｓ４は、省電力が増大していくレベルを表し、状態Ｓ５は、システムがソフトオフ（すなわち、シャットダウン）状態にある最も高い省電力モードである。Ｓ５状態は、例えばユーザからのシャットダウンコマンドによって達成又はトリガされ得る。
【０００６】
Ｓ４状態では、ウェイクアップ中のレイテンシーを削減するために、メモリの内容は、Ｓ４状態に入る前に不揮発性メモリに記憶される。しかしながら、Ｓ４スリープ状態は、Ｓ５状態よりもかなり多くの電力を消費する。その上、幾つかの国、例えば欧州諸国は、システムがオフ状態（例えば、Ｓ５状態）にある間に消費することができる電力量に対して、０．５ワット等の制限を課す規制を実施している。
【０００７】
したがって、以下で詳細に説明するように、様々な例が、電源オフコマンドに応答してスリープ状態コマンドを発行する（例えば、スリープ状態インジケータを書き込む）オペレーティングシステムにおいて電源オフ状態を実施することに関係している。スリープ状態コマンドを発行する前又はスリープ状態インジケータを書き込む前に、オペレーティングシステムは、メインメモリの現在の状態又は内容を不揮発性記憶装置に書き込む。コントローラは、電源オフコマンドがスリープ状態インジケータのレジスタへの書き込みをトリガしたものと判断し得、それに応答して、コントローラは、電源オフ状態インジケータを第２のレジスタに書き込み得る。幾つかのハードウェアの事例では、例えば、第１のレジスタ及び第２のレジスタは同じアドレスにあることに留意すべきである。そのような例では、レジスタの能力は、第２の書き込みの前にスリープ状態遷移を可能にするように再構成される。したがって、メインメモリの内容は、電源オフコマンドを実行する前に記憶される。
【０００８】
コントローラは、オペレーティングシステムによって発行された「シャットダウンＳ４」（すなわち、Ｓ５要求によってトリガされたＳ４状態コマンド）と、真の「ハイバネーションＳ４」（すなわち、Ｓ４要求によってトリガされたＳ４状態コマンド）とを区別するようにも動作可能である。したがって、１つの例では、コントローラは、「シャットダウンＳ４」がオペレーティングシステムによって起動されたとき、Ｓ５シャットダウンを実施するように動作可能である。別の例では、システムは、真の「ハイバネーションＳ４」がオペレーティングシステムによって起動されたとき、Ｓ４スリープ状態を実施することができる。したがって、電力供給オフの前にコンピューティングデバイスの状態を不揮発性記憶デバイスに書き込むことによって、０．５Ｗの電力消費及び低レイテンシーの双方がコンピューティングデバイスによって達成され得る。
【０００９】
以下の説明では、「機械可読記憶媒体」という用語が参照される。「機械可読記憶媒体」という用語は、本明細書において用いられるとき、実行可能な命令又は他のデータを記憶する任意の非一時的な電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、又は他の物理記憶デバイス（例えば、ハードディスクドライブ、ランダムアクセスメモリ、フラッシュメモリ等）を指す。
【００１０】
次に図面を参照すると、図１は、１つの例による電源オフ状態を実施するためのコントローラ１１４を備えるコンピューティングデバイスのブロック図である。コンピューティングデバイス１０２は、例えば、図示するように通信可能に結合されたコントローラ１１４、不揮発性記憶装置１２０、及びオペレーティングシステム１１２を備える。コンピューティングデバイス１０２は、例えば、ノートブックコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピューティングデバイス、移動電話、サーバー、スレートコンピューティングデバイス若しくはタブレットコンピューティングデバイス、ポータブル読み取りデバイス、又は他の任意の処理デバイスであり得る。
【００１１】
コントローラ１１４は、例えば、初期化、入出力（Ｉ／Ｏ）、管理、システムリセット機能、熱管理動作、電力管理動作等のコンピューティングデバイス１０２のための補助機能、並びに当該コンピューティングデバイス１０２内の様々なデバイスを構成及び制御するための補助機能を実行し得る。コントローラ１１４は、当該コントローラ１１４に結合され得る様々な追加の構成要素（例えば、メモリ、キーボード、マウス、バッテリ等）も備え得るシステムオンチップ（ＳｏＣ）の一部であり得る。さらに、コントローラ１１４は、コンピューティングデバイス１０２用の周辺デバイスコントローラ（例えば、キーボードコントローラ）であり得る。その上、コントローラ１１４は、コンピューティングデバイス１０２のメモリに記憶された命令を実行するためのプロセッサを備え得るか又はそのようなプロセッサであり得る。これらの命令は、コンピューティングデバイス１０２に接続された構成要素を制御及び管理するためのものである。
【００１２】
コントローラ１１４は、オペレーティングシステム１１２によるスリープコマンドの発行をトリガした、コンピューティングデバイス１０２において受信されたコマンド（すなわち、ソースコマンド）を識別するロジック１２４を備える。例示すると、コントローラ１１４のロジック１２４は、コンピューティングデバイス１０２において受信されたコマンドが電源オフコマンドであるのか又はスリープコマンドであるのかを判断することができる。例えば、コントローラ１１４は、コンピューティングデバイス１０２の電源ボタンにアクセスしたユーザから受信された電源オフコマンド、アプリケーションから受信された電源オフコマンド、又はコンピューティングデバイス１０２のオペレーティングシステムから受信されたものを検出することができる。電源オフコマンドを検出したことに応答して、コントローラ１１４は、スリープコマンドをオペレーティングシステム１１２に発行することができる。このスリープコマンドは、オペレーティングシステムがＳ３電力状態又はＳ４電力状態に遷移するための命令とすることができる。
【００１３】
コンピューティングデバイス１０２用の電源オフコマンドを受信したことに応答して、コントローラ１１４は、オペレーティングシステム１１２に、コンピューティングデバイスの現在の状態を不揮発性記憶装置１２０に記憶するように命令することができる。オペレーティングシステム１１２は、ＡＣＰＩに準拠したオペレーティングシステムであり得る。このオペレーティングシステムでは、デバイス構成及び電力管理が、オペレーティングシステム１１２によって実行される。オペレーティングシステム１１２は、コンピューティングデバイス１０２のメモリに記憶され得る。スリープコマンドを受信したことに応答して、オペレーティング１１２システムは、コンピューティングデバイスの現在の状態１３０を不揮発性記憶デバイス１２０に書き込むことができる。
【００１４】
コンピューティングデバイス１０２の現在の状態１３０は、コンピューティングデバイス１０２のランダムアクセスメモリに記憶された内容を含むことができる。現在の状態１３０は、メインメモリのオペレーティングシステムのコンテキスト及びアプリケーションの内容を含み得る。不揮発性記憶装置１２０は、コンピューティングデバイス１０２に結合されたハードドライブ又はフラッシュメモリを含むことができる。さらに、現在の状態１３０は、コンピューティングデバイス１０２が電源オフ状態から電源オンになることに応答して復元（又は書き戻し）されるファイル（例えば、ハイバネーションファイル）又はイメージとしてメモリに記憶され得る。
【００１５】
１つの実施形態では、コントローラ１１４は、コンピューティングデバイス１０２がスリープ状態に入るためのフラグ等のインジケータをセットすることもできる。コンピューティングデバイス１０２の状態１３０が不揮発性記憶デバイス１２０に書き込まれることに応答して、コントローラ１１４は、コンピューティングデバイスを電源オフ状態にする電源オフコマンドを発行する。電源オフ状態は、コンピューティングデバイスのＳ５電力状態を含むことができる。別の実施形態では、電源オフ状態は、コンピューティングデバイス１０２の機械的なオフ状態を含むことができる。コンピューティングデバイス１０２が電源オフ状態にある場合、コンピューティングデバイス１０２は、０．５Ｗ以下の電力を消費することができる。
【００１６】
図２は、電源オフ状態を実施するためのコントローラを備えるコンピューティングデバイスの別の例示の実施態様のブロック図である。この例では、コンピューティングデバイス１０２は、図示するように通信可能に結合された、コントローラ１１４、電力コントローラ２１８、不揮発性記憶装置１２０、オペレーティングシステム１１２、第１のレジスタ２１６、及びメモリ２４０を備える。
【００１７】
上記で説明したように、オペレーティングシステム１１２は、コンピューティングデバイス１０２が電源オフするための電源オフコマンド（すなわち、Ｓ５コマンド）を当該コンピューティングデバイス１０２が受信したことに応答して、スリープコマンドを発行する。また、オペレーティングシステム１１２は、メモリ２４０の内容を不揮発性記憶装置１２０に書き込む。ここで、メモリ２４０の内容は、オペレーティングシステムのコンテキスト及びアプリケーションの内容を含む。１つの例では、オペレーティングシステム１１２は、電源オフコマンドを受信したことに応答して、スリープ状態（すなわち、Ｓ４状態）インジケータを第１のレジスタ２１６に書き込むことによって、スリープコマンドを発行する。第１のレジスタ２１６は、スリープコマンドが書き込まれるオペレーティングシステムのコマンドレジスタであり得る。さらに、オペレーティングシステム１１２は、コンピューティングデバイス１１２においてスリープコマンドを受信したことに応答してスリープ準備（ＰＴＳ：prepare-to-sleep）メソッド２２２を起動する。したがって、コントローラ１１４は、ロジック１２４を介して、ＰＴＳメソッド２２２を参照又はポーリングして、コンピューティングデバイス１０２において受信された電源オフコマンド（スリープコマンドではない）がオペレーティングシステム１１２によるスリープコマンドをトリガしたか否かを判断し得る。例えば、コントローラ１１４のロジック１２４は、ＰＴＳメソッド２２２がオペレーティングシステム１１２によって起動されるとき、フラグをセットし得る。ＰＴＳメソッド２２がオペレーティングシステム１１２によってコールされないとき、コントローラ１１４は、例えば、電源オフ状態インジケータ（すなわち、Ｓ５状態）を電力コントローラ２１８の第２のレジスタ２２８に書き込むことによって電源オフコマンドを発行する。
【００１８】
例えば、コンピューティングデバイス１０２がＳ５状態にされているとき、Ｓ５最大省電力メソッド２２４（コントローラ１１４によって実施される）は、１Ｗ未満（ほぼ０．５Ｗ）の電力がコンピューティングデバイス１０２によって消費されるようにハードウェアへの電力をオフにする。１つの実施形態では、Ｓ５電力状態中、コンピューティングデバイス１０２のウェイクイベント（例えば、ウェイクオンＬＡＮ（wake-on-LAN））及び管理サービスはオフにされる。
【００１９】
１つの実施形態では、コンピューティングデバイス１０２は、ＡＣＰＩスリープタイプを実施するＡＣＰＩコントローラ等の電力コントローラ２１８を備えることができる。電力コントローラ２１８は、第２のレジスタ２２８（すなわち、スリープタイプレジスタ）を備える。第２のレジスタ２２８は、電力コントローラ２１８によって実行又は実施される電力状態を示す電力コントローラ２１８のレジスタである。例えば、電源オフ状態インジケータ（例えば、Ｓ５電力状態）が第２のレジスタ１１８に書き込まれる場合、電力コントローラ１１８は、コンピューティングデバイス１０２をＳ５電力状態にする。別の実施形態では、スリープ状態インジケータ（例えば、Ｓ４スリープ状態）が、第２のレジスタ１１８に書き込まれ、電力コントローラ１１８は、コンピューティングデバイス１０２をＳ４スリープ状態にする。
【００２０】
図２は、（オペレーティングシステム１１２の）第１のレジスタ１１６及び（電力コントローラ２１８の）第２のレジスタ２２８を示しているが、一例示の実施形態は、電力コントローラ１１８によって実施されるスリープ状態を記憶する単一のレジスタ（例えば、ＡＣＰＩスリープタイプレジスタ）を備え得ることに留意すべきである。そのような実施形態では、オペレーティングシステム１１２が、電源オフコマンドに応答して、Ｓ４スリープ状態インジケータをスリープタイプレジスタに発行したとき、コントローラ１１４は、スリープ状態インジケータの書き込みをインターセプトし、このスリープ状態インジケータをスリープタイプレジスタ内のＳ５電源オフ状態インジケータに取り替え、それによって、電力コントローラ１１８がスリープ状態の代わりに電源オフ（すなわち、シャットダウン）を実施することを可能にする。
【００２１】
メインメモリの内容（すなわち、コンピューティングデバイス１０２の状態１３０）は、電源オフ状態を実施する前に不揮発性メモリ１２０に書き込まれているので、コンピューティングデバイス１０２は、電源オフ状態から電源が投入されると、以前の状態から迅速に再始動され得る。したがって、開示した実施形態によれば、電力を節約し、バッテリ寿命を延ばし、電源オフモードにおける電力消費に関する規制に準拠すると同時に、コンピューティングデバイス１０２のより迅速な応答性を達成するように、電源オフ状態をコンピューティングデバイス１０２において実施し得る。
【００２２】
図３は、コンピューティングデバイスにおいて電力低下状態を実施するための一例示の方法３００のフローチャートである。方法３００は、以下では、コンピューティングデバイス１０２の構成要素に関して説明されるが、方法３００の実行に好適な他の構成要素が当業者には明らかであろう。加えて、方法３００を実行するための構成要素は、複数のデバイス間に散在させ得る。方法３００は、図５の機械可読記憶媒体５１０等の機械可読記憶媒体上に記憶された実行可能命令の形態、電子回路部の形態、又はそれらを組み合わせたもので実施され得る。
【００２３】
方法３００は、ブロック３１０において開始し、ブロック３２０に進み得る。ブロック３２０において、コンピューティングデバイスのオペレーティングシステムからのスリープコマンドが、コンピューティングデバイス用の電源オフコマンドを検出したことに応答して発行される。このスリープコマンドは、コンピューティングデバイスをスリープ状態にするためのものである。例えば、オペレーティングシステム１１２は、電源オフコマンドがオペレーティングシステムにおいて受信されると、スリープコマンドを発行し得る。電源オフコマンドは、コンピューティングデバイスをシャットダウンするユーザコマンド、タイムアウトコマンド、及びアプリケーションによって実行される電源オフ命令のうちの少なくとも１つを含み得る。オペレーティングシステム１１２は、スリープ状態インジケータを第１のレジスタ２１６に書き込むことによってスリープコマンドを発行し得る。スリープコマンドは、例えばＳ４状態であり得る。
【００２４】
方法３００はブロック３３０に進み得る。ブロック３３０において、コンピューティングデバイスのメモリの内容が、コンピューティングデバイスの不揮発性記憶装置に書き込まれる。例えば、オペレーティングシステム１１２は、コンピューティングデバイス１０２の現在の状態１３０を不揮発性記憶装置１２０（例えば、ハードドライブ）に書き込み得る。現在の状態１３０は、システムハードウェアのコンテキスト、オペレーティングシステムのコンテキストを含み得る。現在の状態１３０は、例えば、ハイバネートファイルとして不揮発性記憶装置１２０に記憶され得る。したがって、システムウェイクアップ時に、このファイルは、不揮発性記憶装置１２０からメインメモリ２４０に書き戻され得、それによって、コンピューティングデバイス１０２及びオペレーティングシステム１１２をリブートすることに関連したレイテンシーが防止される。
【００２５】
方法３００は、次にブロック３４０に進み得る。ブロック３４０において、コンピューティングデバイスは、メモリの内容を不揮発性記憶装置に書き込んだことに応答して電源オフ状態にされる。例えば、コントローラ１１４は、コンピューティングデバイス１０２において受信された電源オフコマンドが、（例えば、メモリの内容をディスクに保存した後に）オペレーティングシステム１１２によるスリープコマンドをトリガしたものと判断し得、続いて、（例えば、電源オフ状態インジケータをスリープタイプレジスタ２２８に書き込むことによって）電源オフコマンドを発行し得る。したがって、電力コントローラ２１８（例えば、ＡＣＰＩコントローラ）は、電源オフコマンドを実行することができる。方法３００は、次にブロック３５０に進み得る。ブロック３５０において、方法３００は停止する。
【００２６】
図４は、コンピューティングデバイスにおいて電源オフ状態を実施するための別の例示の方法４００のフローチャートである。方法４００は、以下では、コンピューティングデバイス１０２の構成要素に関して説明されるが、方法４００の実行に好適な他の構成要素が当業者には明らかであろう。加えて、方法４００を実行するための構成要素は、複数のデバイス間に散在させ得る。方法４００は、図５の機械可読記憶媒体５１０等の機械可読記憶媒体上に記憶された実行可能命令の形態、電子回路部の形態、又はそれらを組み合わせたもので実施され得る。
【００２７】
方法４００は、ブロック４０２において開始し、ブロック４０４に進み得る。ブロック４０４において、第１のレジスタに書き込まれたスリープ状態インジケータが検出される。例えば、コントローラ１１４は、Ｓ４スリープ状態インジケータがオペレーティングシステム１１２によって第１のレジスタ１１６に書き込まれたことを検出し得る。代替的に、コントローラ１１４は、オペレーティングシステム１１２によるスリープタイプレジスタ２２８へのＳ４スリープ状態インジケータの書き込みをインターセプトし得る。
【００２８】
方法４００はブロック４０６に進み得る。ブロック４０６において、スリープ状態インジケータの書き込みをトリガしたコンピューティングデバイスにおけるコマンドが決定又は識別される。スリープ状態インジケータの書き込みをトリガしたコンピューティングデバイスにおけるコマンドを決定することは、ブロック４０８において、ＰＴＳメソッド２２２がコールされたか否かを判断することを含み得る。例えば、コントローラ１１４は、ＰＴＳメソッド２２２がオペレーティングシステム１１２によって起動されたか否かを判断し得る。ここで、ＰＴＳメソッド２２２は、真のＳ４スリープイベントを示す。
【００２９】
ＰＴＳメソッドがコールされていない場合、方法４００はブロック４１０に進み得る。ブロック４１０において、電源オフコマンドがスリープ状態インジケータの書き込みをトリガしたものと判断される。例えば、ＰＴＳメソッド２２がオペレーティングシステム１１２によってコールされず、Ｓ４状態インジケータが第１のレジスタ２１６に書き込まれると、コントローラ１１４は、Ｓ５コマンドがコンピューティングデバイス１０２において受信されたものと（例えば、ロジック１２４を介して）判断する。Ｓ５コマンドは、コンピューティングデバイス１０２をシャットダウンするユーザ要求を含み得る。ここで、そのような要求は、オフボタンを押下すること又はアプリケーションを介してシャットダウン要求を実行することを含む。方法４００は、次にブロック４１２に進み得る。ブロック４１２において、電源オフ状態インジケータが第２のレジスタに書き込まれる。例えば、コントローラ１１４は、スリープタイプレジスタ２２８にＳ５状態インジケータを（すなわち、Ｓ４状態インジケータを書き込む代わりに）書き込み得る。方法４００は、次にブロック４１４に進み得る。ブロック４１４において、コンピューティングデバイスは電源オフ状態にされる。例えば、電力コントローラ２２８は、スリープタイプレジスタ２２８に書き込まれたＳ５電力タイプに基づいて、コンピューティングデバイス１０２をＳ５状態にし得る。
【００３０】
一方、ブロック４０８において判断されているように、ＰＴＳメソッド２２２がコールされた場合、方法４００はブロック４１６に進み得る。ブロック４１６において、スリープコマンドがスリープ状態の書き込みをトリガしたものと判断される。例えば、ＰＴＳメソッド１２２がオペレーティングシステム１１２によってコールされると、コントローラ１１４は、Ｓ４コマンド又はスリープコマンドがコンピューティングデバイス１０２において受信されたものと判断する。Ｓ４コマンドは、コンピューティングデバイス１０２をハイバネートする、ユーザ要求、又はコンピューティングデバイス１０２が或る時間期間アイドル状態であった後の要求を含み得る。方法４００は、次にブロック４１８に進み得る。ブロック４１８において、スリープ状態インジケータが、第２のレジスタに書き込まれる。例えば、コントローラ１１４は、Ｓ４状態を電力コントローラ２１８のスリープタイプレジスタ２２８に書き込み得る。この場合、真のＳ４イベントが発生しているので、コントローラ１１４は、オペレーティングシステム１１２によって書き込まれるスリープタイプを変更しない。方法４００は、次にブロック４２０に進み得る。ブロック４２０おいて、コンピューティングデバイスはスリープ状態にされる。例えば、電力コントローラ２１８は、スリープタイプレジスタ２２８に書き込まれたＳ４スリープタイプに基づいて、コンピューティングデバイス１０２をＳ４スリープ状態にし得る。
【００３１】
方法４００はブロック４２２に進み得る。ブロック４２２において、コンピューティングデバイスは、電源オフ状態又はスリープ状態のいずれかからウェイクアップされる。方法４００はブロック４２４に進み得る。ブロック４２４において、コンピューティングデバイスの状態が、不揮発性記憶装置からメモリに書き込まれる。例えば、コントローラ１１４は、内容データが、メモリ２４０に書き戻されるように不揮発性記憶装置１２０に存在するものと判断し得る。したがって、コンピューティングデバイス１０２の現在の状態１３０は、電源オフ状態又はスリープ状態に入る前に不揮発性記憶装置１２０に書き込まれているので、状態１３０（すなわち、ハードウェアのコンテキスト、オペレーティングシステムのコンテキスト、及びメインメモリの内容）は、メモリ２４０に書き戻され得る。したがって、コンピューティングデバイス１０２は、コンピューティングデバイスの以前のプレ電源オフ状態又はプレスリープ状態からレジュームし得る。方法４００は、次にブロック４２６に進み得る。ブロック４２６において、方法４００は停止する。
【００３２】
方法４００は、オペレーティングシステム１１２のＰＴＳメソッド２２２を利用して、電源オフイベントがスリープ状態インジケータの書き込みをトリガしたか否かを判断することを示すが、スリープ状態インジケータの書き込みをトリガしたイベントを判断する他の方法を実施し得ることに留意すべきである。例えば、コントローラ１１４は、オペレーティングシステムのバージョンを確認し、特定のバージョンのオペレーティングシステムが、デフォルトによって、電源オフイベント及びスリープイベントに応答してスリープ状態インジケータを書き込むものと判断し得る。したがって、コントローラ１１４は、オペレーティングシステム１１２が電源オフイベントに応答してスリープ状態インジケータを書き込んだ時、及びオペレーティングシステム１１２がスリープイベントに応答してスリープ状態インジケータを書き込んだ時を判断することができる。
【００３３】
図５は、電力低下状態を実施するための命令を用いてコード化された機械可読記憶媒体を備えるコンピューティングデバイスのブロック図である。図５の実施形態では、コントローラ１１４は、プロセッサ５２０及び機械可読記憶媒体５１０を備える。
【００３４】
プロセッサ５２０は、マイクロプロセッサ、半導体ベースのマイクロプロセッサ、機械可読記憶媒体５１０に記憶された命令の取り出し及び実行に好適な他のハードウェアデバイス若しくは処理素子、又はそれらの任意の組み合わせであり得る。プロセッサ５２０は、機械可読記憶媒体５１０に記憶された命令をフェッチし、デコードし、実行して、以下で詳細に説明する機能を実施し得る。命令の取り出し及び実行の代わりとして又はこれらに加えて、プロセッサ５１０は、機械可読記憶媒体５１０に記憶された命令５１２、５１４、及び５１６の機能を実行するための複数の電子構成要素を備える少なくとも１つの集積回路（ＩＣ）、他の制御ロジック、他の電子回路、又はそれらの任意の組み合わせを含み得る。さらに、プロセッサ５２０は、チップ上の単一若しくは複数のコア、複数のデバイスにわたる複数のコア、又はそれらの任意の組み合わせを備え得る。
【００３５】
機械可読記憶媒体５１０は、実行可能命令を含むか又は記憶する任意の非一時的な電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、又は他の物理記憶デバイスであり得る。したがって、機械可読記憶媒体５１０は、例えば、ＮＶＲＡＭ、ランダムアクセスメモリ（ＲＡＭ）、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）、記憶ドライブ、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）等であり得る。さらに、機械可読記憶媒体５１０は、非一時的だけでなく、コンピュータ可読とすることができる。以下で詳細に説明するように、機械可読記憶媒体５１０は、コンピューティングデバイス１０２において電力低下状態を実施するための一連の実行可能命令を用いてコード化され得る。これらの実行可能命令は、例えば、電力低下状態を実施する、コンピューティングデバイス１０２のオペレーティングシステムの一部分又はＯＳ上で実行される別個のアプリケーションであり得る。実行可能命令の他の好適なフォーマットは、当業者に明らかであろう。
【００３６】
機械可読記憶媒体５１０は、コンピューティングデバイス用の電源オフコマンドを検出したことに応答して、コンピューティングデバイスをスリープ状態にするスリープコマンドを発行するように構成され得るコマンド発行命令５１２を含み得る。例えば、コマンド発行命令５１２は、コンピューティングデバイス１０２において電源オフコマンドを検出したことに応答して、コンピューティングデバイス１０２をスリープ状態にするスリープ状態コマンドを発行するように構成され得る。電源オフコマンドは、例えば、コンピューティングデバイス１０２をシャットダウンするユーザ要求を含み得る。
【００３７】
機械可読記憶媒体５１０は、コンピューティングデバイスのメモリの内容をコンピューティングデバイスの不揮発性記憶装置に記憶するように構成され得るメモリ内容記憶命令５１４を含み得る。例えば、メモリ内容記憶命令５１４は、メモリ２４０の内容を不揮発性記憶装置１２０に記憶するように構成され得る。メモリ２４０の内容は、コンピューティングデバイスの現在の状態１３０、オペレーティングシステムのコンテキスト、及びハードウェアのコンテキストを含み得る。さらに、内容記憶命令５１４は、記憶された現在の状態１３０をウェイクアップ中に不揮発性記憶装置１２０からメモリ２４０に書き戻すように構成され得る。
【００３８】
機械可読記憶媒体５１０は、メモリの内容を不揮発性記憶装置に書き込んだことに応答して、コンピューティングデバイスを電源オフ状態にするように構成され得る電力制御命令５１６も含み得る。例えば、電力制御命令５１６は、メモリ２４０の内容１３０を不揮発性メモリ１２０に書き込んだことに応答して、コンピューティングデバイスを電源オフ状態にし得る。さらに、電力制御命令５１６は、１Ｗ未満（例えば、０．５Ｗ）の電力がコンピューティングデバイス１０２によって消費されるように、不必要なハードウェアへの電力がオフにされる省電力を実施するように構成され得る。Ｓ５最大省電力中、コンピューティングデバイス１０２のウェイクイベント及び管理サービスはオフにされる。
【００３９】
上記で詳細に説明した実施形態によれば、ウェイクアップ中のコンピューティングデバイスのスリープモード応答性を達成すると同時に、コンピューティングデバイスの電力消費を電源オフモードにおいてほぼ０．５Ｗに削減し得る。
【図１】
0005885881.tif 000002
【図２】
0005885881.tif 000003
【図３】
0005885881.tif 000004
【図４】
0005885881.tif 000005
【図５】
0005885881.tif 000006