(57)【特許請求の範囲】
【請求項１】
第1の電力モードでコンピューティング・デバイスを動作させることと、
該コンピューティング・デバイスのプロセッサにより、少なくとも1つの非対話式タスクを実行することと、
該コンピューティング・デバイスのプロセッサにより、該コンピューティング・デバイスを第2の電力モードに入れるよう求める要求を検出することであって、該第2の電力モードが該第1の電力モードよりも少ないシステム・リソースを消費することと、
該非対話式タスクの完了又はオーバーライド・トリガー・イベントまで、該コンピューティング・デバイスの該第2の電力モードへの該遷移を遅延することとを備え、
該コンピューティング・デバイスを該第2の電力モードに入れることを遅延することは、該コンピューティング・デバイスを第3の電力モードに入れることを含み、該第3の電力モードが、該第1の電力モードよりも少ないシステム・リソースを消費するが、該第2の電力モードよりも多くのシステム・リソースを消費し、かつ該非対話式タスクの該実行を容易にすることとを備え、
遅延することが、
非対話式タスクの前記実行を完了するために必要なシステム・リソースの量を推定することと、
システム・リソースの該推定量が1つ以上のシステム・リソースしきい値を超過するかどうかを決定することと、
システム・リソースの該推定量が該システム・リソースしきい値(複数可)を超過する場合、前記要求された非対話式タスクの実行を中止して、前記コンピューティング・デバイスを前記第2の電力モードに入れることとを含む、方法。
【請求項２】
前記第1の電力モードが作業電力モードを含み、
前記第2の電力モードが、ランダム・アクセス・メモリ(RAM)電力モードへのサスペンドを含む、請求項1記載の方法。
【請求項３】
前記非対話式タスクが、バックグラウンド・プロセスとして実行されるように構成されたソフトウェア・アップデート・アクティビティを含む、請求項1記載の方法。
【請求項４】
前記コンピューティング・デバイスの前記第2の電力モードへの前記遷移を遅延することが、
該コンピューティング・デバイスによるシステム・リソースの大幅な変化が生じたときを検出することと、
システム・リソースの該大幅な変化がオーバーライド・トリガー・イベントであるかどうかを決定することと、
システム・リソースの該大幅な変化がオーバーライド・トリガー・イベントである場合、該コンピューティング・デバイスを該第2の電力モードに遷移することとを含む、請求項1記載の方法。
【請求項５】
システム・リソースの大幅な変化が、前記コンピューティング・デバイスが第1のネットワークを出て、第2のネットワークに加わることを含む、請求項4記載の方法。
【請求項６】
少なくとも1つの非対話式タスクを実行することは、少なくとも1つの所定のメモリ・ロケーションに値を書き込むことを含み、該書き込まれた値は、非対話式タスクが実行中であること、及び、オーバーライド・トリガー・イベントがないので、該非対話式タスクの実行が完了するまでの低減電力モードへの前記遷移の前記延期が望ましいことを指示する、請求項1記載の方法。
【請求項７】
前記コンピューティング・デバイスの前記第2電力モードへの前記遷移を遅延することが、
非対話式タスクの前記実行を完了するために必要な時間の推定量を決定するためにメモリ・ロケーションを読み込むことと、
該非対話式タスクを完了するために必要な時間の該推定量がしきい値を超過するかどうかを決定することと、
該しきい値が超過される場合、該コンピューティング・デバイスを該第2の電力モードに遷移することと、
該しきい値が超過されない場合、前記要求された非対話式タスクを実行させ、該要求された非対話式タスクの該完了又はオーバーライド・トリガー・イベントまで、該コンピューティング・デバイスの該第2の電力モードへの該遷移を遅延することとを含む、請求項1記載の方法。
【請求項８】
前記コンピューティング・デバイスを第2の電力モードに入れるよう求める要求を検出した後、該コンピューティング・デバイスを前記第1の電力モードに入れるよう求める要求を検出することと、
該コンピューティング・デバイスを該第1の電力モードに入れるよう求める該要求が、前記非対話式タスクの前記完了又はオーバーライド・トリガー・イベントに先立ち生じる場合、該コンピューティング・デバイスを第2の電力モードに入れるよう求める該要求を撤回することとをさらに含む、請求項1記載の方法。
【請求項９】
少なくとも1つの非対話式タスクを実行するように構成されたプロセッサ；及び
装置を、複数の電力モードのうちの1つで動作させること、
該装置を第1の電力モードの動作から第2の電力モードの動作に遷移するよう求める要求を検出することであって、該第2の電力モードが該第1の電力モードよりも少ないシステム・リソースを消費する電力モードを含むこと、
該非対話式タスクの完了又はオーバーライド・トリガー・イベントの発生まで、該装置の該第2の電力モードへの該遷移を延期すること、及び
該装置の該第2の電力モードへの該遷移を延期する間、該装置を第3の電力モードに入れることであって、該第3の電力モードが該第1の電力モードよりも少ないシステム・リソースを消費するが、該第2の電力モードよりも多くのシステム・リソースを消費し、該非対話式タスクの該実行を容易にすること
を行うように構成された電力マネージャ
を備え、
非対話式タスクの前記実行を完了するために必要なシステム・リソースの元の推定量に基づいて、該非対話式タスクの該完了又はオーバーライド・トリガー・イベントの前記発生まで、該装置の前記第2の電力モードへの前記遷移を延期することを決定し、
非対話式タスクの前記実行を完了するために必要なシステム・リソースの更新された推定量を提供し、
システム・リソースの該更新された推定量が1つ以上のシステム・リソースしきい値を超過するかどうかを決定し、
システム・リソースの該更新された推定量が該システム・リソースしきい値(複数可)を超過する場合、該非対話式タスクの該完了又はオーバーライド・トリガー・イベントの該発生まで、該装置の該第2の電力モードへの該遷移を延期するかわりに、該装置を該第2の電力モードに遷移するように構成される、装置。
【請求項１０】
前記プロセッサが、前記非対話式タスクの前記完了が生じるときを前記電力マネージャに指示するように構成される、請求項9記載の装置。
【請求項１１】
電力マネージャが、
システム・リソースの大幅な変化が生じたときを検出し、
システム・リソースの該大幅な変化がオーバーライド・トリガー・イベントであるかどうか決定し、システム・リソースの該大幅な変化がオーバーライド・トリガー・イベントである場合、前記装置を前記第2の電力モードに遷移するように構成される、請求項9記載の装置。
【請求項１２】
システム・リソースの大幅な変化が、前記装置が無線ローカル・エリア・ネットワークを出て、セルラー・データ・ネットワークに加わることを含む、請求項11記載の装置。
【請求項１３】
プロセッサが、
前記装置により含まれるメモリの少なくとも1つの所定のメモリ・ロケーションに値を書き込むように構成され、
該書き込まれた値が、非対話式タスクが実行中であること、及び、オーバーライド・トリガー・イベントがないので、該非対話式タスクの実行が完了するまでの低減電力モードへの前記遷移の前記延期が望ましいことを指示する、請求項9記載の装置。
【請求項１４】
前記電力マネージャが、
非対話式タスクの前記実行を完了するために必要な時間の推定量を決定するために前記装置により含まれるメモリを読み込み、
該非対話式タスクを完了するために必要な時間の該推定量がしきい値を超過するかどうかを決定し、
該しきい値が超過される場合、該装置を前記第2の電力モードに遷移し、
該しきい値が超過されない場合、前記要求された非対話式タスクを実行させ、該要求された非対話式タスクの該完了又はオーバーライド・トリガー・イベントの前記発生まで、該装置の該第2の電力モードへの該遷移を遅延するように構成される、請求項9記載の装置。
【請求項１５】
前記電力マネージャが、
前記第2の電力モードへの前記装置の前記遷移を遅延する間、前記コンピューティング・デバイスを前記第1の電力モードに入れるよう求める要求を検出し、
該コンピューティング・デバイスを該第1の電力モードに入れるよう求める該要求が、前記非対話式タスクの前記完了又はオーバーライド・トリガー・イベントに先立ち生じる場合、該コンピューティング・デバイスを第2の電力モードに入れるよう求める該要求を撤回するように構成される、請求項9記載の装置。
【請求項１６】
実行可能なコードを含むコンピュータ可読媒体であって、実行されるとき、コンピューティング装置に、コンピューティング・デバイスを第1の電力モードで動作させることと、
該コンピューティング・デバイスのプロセッサにより、少なくとも1つの非対話式タスクを実行することと、
該コンピューティング・デバイスを第2の電力モードに入れるよう求める要求を検出することであって、該第2の電力モードが該第1の電力モードよりも少ないシステム・リソースを消費する電力モードを含むことと、
該非対話式タスクの該完了又はオーバーライド・トリガー・イベントまで、該コンピューティング・デバイスの該第2の電力モードへの該遷移を遅延することと、
該装置の該第2の電力モードへの該遷移を延期する間、該装置を第3の電力モードに入れることであって、該第3の電力モードが、該第1の電力モードよりも少ないシステム・リソースを消費するが、該第2の電力モードよりも多くのシステム・リソースを消費し、該非対話式タスクの該実行を容易にすることとを行わせるように構成される実行可能コードを含み、
前記遷移を遅延することが、
非対話式タスクの前記実行を完了するために必要なシステム・リソースの量を推定することと、
システム・リソースの該推定量が1つ以上のシステム・リソースしきい値を超過するかどうかを決定することと、
システム・リソースの該推定量が該システム・リソースしきい値(複数可)を超過する場合、前記要求された非対話式タスクの実行を中止して、前記コンピューティング・デバイスを前記第2の電力モードに入れることとを含む、前記コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
(技術分野)
本明細書は、コンピューティング・デバイスの電源管理に関し、さらに詳細には、コンピューティング・デバイスによって実行されている1つ以上のタスクに基づくコンピューティング・デバイスの電力状態の変化の遅延又は延期に関する。
【背景技術】
【０００２】
(背景)
最新のコンピューティング・デバイス(たとえば、デスクトップ・コンピュータ、ラップトップ、ネットブック、タブレット、スマートフォンなど)は、一般に、複数の電力モード又は電力状態のうちの1つで動作することができる。それらの電力モードは、コンピューティング・デバイスが完全に電力を供給されて作動可能である「作業(working)」電力モードから、デバイスが完全に電源遮断されて作動不可能である「オフ(off)」電力モードまで多岐にわたることがある。従来、この「作業」電力モードは、コンピューティング・デバイスのデフォルトの動作モードである。しかし、それらの2つの電力モード(作業及びオフ)の間に、省電力又は消費電力低減と引き換えに、一部の機能のパフォーマンス特性をトレードオフする電力モードがある。
【０００３】
たとえば、コンピューティング・デバイスの低電力状態は、「スタンバイ(Standby)」、「スリープ(Sleep)」、「サスペンド・トゥーRAM(Suspend to RAM)」、「サスペンド・トゥー・メモリ(Suspend to Memory)」、又は「サスペンド(Suspend)」と呼ばれることがある。ACPI(Advanced Configuration and Power Interface)電力状態S3。そのような低電力状態において、コンピューティング・デバイスの状態を復元するために必要とされるランダム・アクセス・メモリ(「RAM」)への電力供給に加えて、コンピューティング・デバイスは、マシンのすべての不必要な部分への電力を低減又は切断しようと試みる(たとえば、ハードディスク(複数可)が回転を停止する、ディスプレイ・デバイスが暗転又は低電力状態にされる、及び周辺デバイスが電力切断される)。そのような低電力状態は、多くの場合、スタンバイ(Stand By)(Microsoft Windows 95- Server 2003オペレーティング・システムを実行するコンピューティング・デバイスの場合)と呼ばれるか、若しくはスリープ(Sleep)(Appleオペレーティング・システム、又はWindows Vista, Windows 7、Windows Server 2008オペレーティング・システムを実行するコンピューティング・デバイスの場合)、又はサスペンド(Suspend)(Linuxオペレーティング・システムを実行するコンピューティング・デバイスの場合)と呼ばれる。そのような状態において、コンピューティング・デバイスの処理機能は、電源が遮断され、一部の少量の電力が、RAMの内容を保持して、コンピューティング・デバイスの低電力状態から通常の作業又は全電力状態への立ち上げをサポートするために使用される。
【０００４】
コンピューティング・デバイスが、スタンバイ、スリープ、又はサスペンド・トゥーRAM状態に入れられる場合、通常、消費電力は、デバイスが作業又は全電力モードにあるときに消費される合計電力よりも約20%少ない。しかし、電力消費が作業電源モードと比較して大幅に低減される一方で、スリープ電力モードは、作動状態が揮発性メモリから消去されないように、揮発性メモリ(たとえば、RAM)を電力供給又はリフレッシュするため、電力が常時供給されて消費されることを必要とする。
【０００５】
もう1つの例示的な実施態様において、コンピューティング・デバイスの低電力状態は、「ハイバネート(Hibernate)」、「ハイバネーション(Hibernation)」、「セーフ・スリープ(Safe Sleep)」、「サスペンド・トゥー・ディスク(Suspend to Disk)」、「サスペンド・トゥー・ファイル(Suspend to File)」、又はACPI電力状態S4と呼ばれることがある。そのような状態において、コンピューティング・デバイスのRAMの内容は、コンピューティング・デバイスの電源をオフにする前に、ファイルとして、又は別個のパーティションで、ハードディスクのような不揮発性ストレージに書き込まれる。コンピューティング・デバイスは、再始動されるとき、不揮発性メモリに書き込まれているデータを再ロードして、ハイバネーションが呼び出された時点における状態に回復される。ハイバネーションを使用可能にするために、ハードディスクは、RAMの交換不可能な内容すべてを格納するのに十分な空きスペースを有する必要がある。
【０００６】
そのような低電力状態は、多くの場合、ハイバネート(Hibernate)(Microsoft Windows 95 - Server 2003及びWindows 7オペレーティング・システムを実行するコンピューティング・デバイスの場合)、ファスト・スリープ(Fast Sleep)(Microsoft Vistaオペレーティング・システムを実行するコンピューティング・デバイスの場合)、セーフ・スリープ(Safe Sleep)(Appleオペレーティング・システムを実行するコンピューティング・デバイスの場合)、又はサスペンド・トゥー・ディスク(Suspend to Disk)(Linuxオペレーティング・システムを実行するコンピューティング・デバイスの場合)と呼ばれる。コンピューティング・デバイスが、ハイバネート、セーフ・スリープ、又はサスペンド・トゥー・ディスク状態にされている場合、通常、消費電力は、デバイスが電源オフにされているときに消費される合計電力とほとんど変わりない。ハイバネートしてから後に再始動することは通常、終了して、その後起動し、実行していたすべてのプログラムを開始するよりも迅速である。
【発明の概要】
【課題を解決するための手段】
【０００７】
(要旨)
1つの一般的態様によれば、方法は、コンピューティング・デバイスを第1の電力モードで動作させることを含むことができる。方法はまた、コンピューティング・デバイスのプロセッサにより、少なくとも1つの非対話式タスクを実行することを含むことができる。方法はまた、コンピューティング・デバイスのプロセッサにより、コンピューティング・デバイスを第2の電力モードにするよう求める要求を検出することを含むことができ、第2の電力モードは第1の電力モードよりも少ないシステム・リソースを消費する。方法は、非対話式タスクの完了又はオーバーライド・トリガー・イベントまで、コンピューティング・デバイスの第2の電力モードへの遷移を遅延することをさらに含むことができる。
【０００８】
もう1つの一般的態様によれば、装置は、プロセッサ及び電力マネージャを含むことができる。プロセッサは、少なくとも1つの非対話式タスクを実行するものであってもよい。電力マネージャは、装置を複数の電力モードのうちの1つで動作させることと、装置を第1の電力モードの動作から第2の電力モードの動作に遷移するよう求める要求を検出することであって、第2の電力モードが、第1の電力モードよりも少ないシステム・リソースを消費する電力モードを含むことと、非対話式タスクの完了又はオーバーライド・トリガー・イベントの発生まで、装置の第2の電力モードへの遷移を延期することとを行うように構成されてもよい。
【０００９】
もう1つの一般的態様によれば、システム・リソースを管理するためのコンピュータ・プログラム製品は、実行されるとき、コンピューティング装置に、第1の電力モードでコンピューティング・デバイスを動作させるように構成される実行可能コードを含む。コードはまた、デバイスに、少なくとも1つの非対話式タスクをコンピューティング・デバイスのプロセッサにより実行させることができる。コードは、実行されるとき、デバイスに、コンピューティング・デバイスを第2の電力モードに入れるよう求める要求をさらに検出させることができ、第2の電力モードは第1の電力モードよりも少ないシステム・リソースを消費する電力モードを含む。コードはまた、デバイスに、非対話式タスクの完了又はオーバーライド・トリガー・イベントまで、コンピューティング・デバイスの第2の電力モードへの遷移を遅延させることができる。コンピュータ・プログラム製品は、コンピュータ可読媒体で有形に具現されてもよい。
【００１０】
1つ以上の実施態様の詳細は、添付の図面及び後段の説明に示される。その他の特徴は、説明及び図面から、並びに特許請求の範囲から明らかとなろう。
【００１１】
コンピューティング・デバイスのシステム・リソースを管理するためのシステム及び/又は方法は、図面の少なくとも1つに関連して概ね図示及び/又は説明されているが、特許請求の範囲においてさらに完全に示されている。
【図面の簡単な説明】
【００１２】
【図１】開示される主題によるシステムの例示的な実施態様を示すブロック図である。
【００１３】
【図２】開示される主題によるシステムの例示的な実施態様を示す一連の図である。
【００１４】
【図３】開示される主題によるメモリ構造の例示的な実施態様を示す一連の図である。
【００１５】
【図４】開示される主題による技法の例示的な実施態様を示す流れ図である。
【００１６】
【図５】開示される主題によるシステムの装置の例示的な実施態様を示すブロック図である。
【発明を実施するための形態】
【００１７】
さまざまな図面において類似する参照記号は類似する要素を示す。
【００１８】
(詳細な説明)
図1は、開示される主題によるシステム100の例示的な実施態様を示すブロック図である。さまざまな実施態様において、システム100は、ユーザ190により制御又は使用されるクライアント又はコンピューティング・デバイス102を含むことができる。一部の実施態様において、コンピューティング・デバイス102は、デスクトップ・コンピュータ、ラップトップ、タブレット、スマートフォン、専用特殊コンピューティング・デバイス、又は情報を処理するように構成されたその他のデバイスを含むことができる。
【００１９】
一部の実施態様において、コンピューティング・デバイス102は、アプリケーション140又は非対話式タスク144などによって定義されるか又は含まれる命令などの命令を処理又は実行するように構成されたプロセッサ110を含むことができる。コンピューティング・デバイス102は、命令及び/又はデータを格納するように構成された1つ以上のメモリ要素112(たとえば、揮発性メモリ又は不揮発性メモリなど)を含むことができる。さまざまな実施態様において、コンピューティング・デバイス102は、コンピューティング・デバイス102に電力を供給するように構成されたバッテリ116、又はその他の電源供給装置を含むことができる。一部の実施態様において、コンピューティング・デバイス102は、外部電源182から電力を受信するように構成されてもよい。一部の実施態様において、コンピューティング・デバイス102は、情報をユーザ190にグラフィカルに表示するためのモニタ又はディスプレイ120を含むことができる。さまざまな実施態様において、その他のハードウェア・コンポーネント118(たとえば、スピーカ、キーボード、タッチスクリーン、センサなど)は、コンピューティング・デバイス102に含まれてもよい。
【００２０】
また、一部の実施態様において、コンピューティング・デバイス102は、ネットワーキング環境内のコンピューティング・デバイス102の動作を容易にするように構成された1つ以上のネットワーク・インターフェイス114を含むことができる。さまざまな実施態様において、ネットワーク・インターフェイス114は、無線ネットワーク・インターフェイス、有線ネットワーク・インターフェイス、無線ローカル・エリア・ネットワーク(WLAN)インターフェイス(たとえば、米国電気電子学会(IEEE:Institute of Electrical and Electronics Engineers)無線ネットワーク規格802.11b, 802.11g, 802.11nなどに実質的に準拠するインターフェイス)、又はセルラー・ネットワーク・インターフェイス(たとえば、符号分割多元接続(CDMA:Code division multiple access)、2000 Global System for Mobile Communications(GSM)、3rd Generation Partnership Project (3GPP:第3世代移動体通信システム標準化プロジェクト)、Long Term Evolution (LTE:Long Term Evolution)などのセルラー通信規格に実質的に準拠するインターフェイス)、若しくはその他のネットワーク・インターフェイス(たとえば、ブルートゥースなど)を含むことができる。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００２１】
さまざまな実施態様において、コンピューティング・デバイス102は、1つ以上のタスク(たとえば、アプリケーション140、非対話式タスク144など)を実行することができる。一部の実施態様において、これらのタスクの一部は、ユーザ190との対話を伴うことができる。そのような対話式タスクは、アプリケーション140(たとえば、ワードプロセッサ、Webブラウザなど)を含むことができる。逆に、その他のタスクは、ユーザ190対話を伴わなくてもよいか、又は最小のユーザ対話を伴うことができる。これらの非対話式タスク114及び146はまた、「バックグラウンド・タスク」又は「バックグラウンド・プロセス」と呼ばれることもある。一般に、そのような非対話式タスク144は、「舞台裏で」実行し、ユーザ190との対話がたとえあったとしてもほとんど必要とされないタスク又はプロセスである。そのような非対話式タスク144は、ソフトウェアのアップデート、ファイルのダウンロード、ロギング、システム監視、スケジューリングなどのようなタスクを含むことができるが、これらに限定されることはない。
【００２２】
さまざまな実施態様において、タスクは、対話式(フォアグラウンド)と非対話式(バックグラウンド)処理及び状況の間の状態を切り替えることができる。たとえば、アプリケーション140(たとえば、音楽プレイヤー、ダウンロード・プログラムなど)は、対話式モードで開始することができ、バックグラウンドつまり非対話式状態にされてもよく、その時点においてタスクは非対話式タスク144と見なされてもよい。もう1つの実施態様において、非対話式タスク144は、サブシステム124、コンポーネント、又はコンピューティング・デバイス102によって実行されるその他のプロセス(たとえば、アップデート・マネージャ122、オーディオ・マネージャ、ダウンロード・マネージャ、デジタル著作権マネージャ、システム・スケジューラなど)によって開始されてもよい。そのようなものとして、非対話式タスク144は、ユーザ190の知識又は対話がなくても行われ得る。また、非対話式タスク144は、スケジュール、コンピューティング・デバイス102に内部のイベント(たとえば、アプリケーション140からのエラー又はメッセージ、ネットワーク・インターフェイス114のようなハードウェア・コンポーネントからのメッセージなど)、又は外部イベント(たとえば、ソフトウェア・アップデート通知、電源182の除去などのような、外部サーバ184からのメッセージなど)に基づいて開始されてもよい。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００２３】
さまざまな実施態様において、コンピューティング・デバイス102は、1つ以上の電力モード(たとえば、作業電力モード、サスペンド電力モード、(上記で説明されている)ACPI電力モードなど)で動作するように構成されてもよい。そのような実施態様において、コンピューティング・デバイス102は、第1の電力モード(たとえば、作業電力モード)から、第2、第3、又はさらに第4の電力モード(たとえば、サスペンド電力モード、ハイバネーション電力モード、オフ電力モードなど)に遷移するように構成されてもよい。同様に、コンピューティング・デバイス102はまた、第2(又はその他の)電力モードから、第1の電力モード又は別の電力モードに遷移するように構成されてもよい。
【００２４】
そのような実施態様において、コンピューティング・デバイス102に含まれる電力マネージャ130は、2つの電力モードの間を変更するよう(たとえば、作業からサスペンド、オフから作業など)求める要求を(たとえば、ユーザ190、ネットワーク・インターフェイス114又はその他のソースなどから)受信することができる。従来、電力マネージャ130は、実質的に瞬時に、又は意図的な遅延を生じることなく、コンピューティング・デバイス102を要求された電力モードに入れることができる。しかし、示される実施態様において、電力マネージャ130は、1つ以上の遅延条件に基づいて、電力モードの変更を意図的に遅らせることができ、その条件の一部は後段でさらに詳細に説明される。
【００２５】
1つの実施態様において、コンピューティング・デバイス102は、非対話式タスク144を実行することができる。示される実施態様において、非対話式タスク144は、アップデート・マネージャ122によって開始されてもよい。そのような実施態様において、サーバ184は、ソフトウェアの1つ以上の部分(たとえば、アプリケーション140など)がアップデートを必要としていることをアップデート・マネージャ122に通知することができる。次いで、アップデート・マネージャ122は、アップデート・タスク144を開始することができる。このアップデート・タスク144は、ユーザ190による対話がたとえあったとしてもほとんど必要としない非対話式プロセスであってもよい。そのような実施態様において、アップデートは、ユーザ190によって直接認識されることもなく、又はユーザ190の介入も必要とせずに、「バックグラウンド」で行われてもよい。そのような実施態様において、アップデート・タスク144は、サーバ184から1つ以上のファイルをダウンロード又は転送すること(Xfr)186を含むことができる。上記の説明が1つの具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００２６】
もう1つの実施態様において、その他の非対話式タスク146は、コンピューティング・デバイス102によって実行されてもよい。たとえば、1つの実施態様において、アプリケーション140は、ファイル141のアップロード/ダウンロード、ファイル141の作成又は処理(たとえば、ビデオ・エンコーディング、実行可能ファイルへのソースコードのコンパイルなど)、システムプロセス又はその他のアプリケーションの監視などのような、非対話式タスク146を開始することができる。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。さらにもう1つの実施態様において、コンピューティング・デバイス102によって含まれるもう1つのサブシステム124又はオペレーティング・システム142は、非対話式タスク144を開始することができる。さまざまな実施態様において、そのようなサブシステムは、入力デバイス・マネージャ、オーディオ・マネージャ・サブシステム、デジタル著作権マネージャなどを含むことができる。たとえば、オペレーティング・システム142は、メモリ112の使用量を低減するためにガーベッジ・コレクションを開始することができるか、又はオーディオ・マネージャはサーバ184(たとえば、インターネット無線局など)からオーディオ信号をストリーミングすることができる。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００２７】
上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたいが、示される実施態様は、アップデート・マネージャ122によって開始されたアップデート・プロセスの非対話式タスク144の例を使用して説明される。その他の非対話式タスク146がその他の技術により開始されるか又は制御されてもよく、アップデート・ソフトウェア以外のタスクはその他の実施態様に含まれてもよいことを理解されたい。
【００２８】
示される実施態様において、アップデート・マネージャ122は、非対話式タスク144を開始することができる。1つの実施態様において、アップデート・マネージャ122又はオペレーティング・システム142は、非対話式タスク144がコンピューティング・デバイス102によって実行されていることを電力マネージャ130に通知することができる。図3を参照してさらに詳細に説明されるが、図1の示される実施態様において、アップデート・マネージャ122又はその他のコンポーネントは、電力マネージャ130のメモリ部分又はメモリ112の部分に非対話式タスク144が実行されていることを指示するフラグ(たとえば、1ビット値又はマルチビット値) 132を設定することができる。逆に、非対話式タスク144が完了したか、又はもう実行されていない場合、フラグ132はクリアされてもよい。そのような実施態様において、電力マネージャ130は、それぞれのフラグ132に関連付けられているタスクのみに関わることができる。上記の説明が1つの具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００２９】
示される実施態様において、電力マネージャ130は、コンピューティング・デバイス102を低減電力モードにするよう求める要求を検出又は受信することができる。コンピューティング・デバイス102は、すでに、作業電力モードのような第1の電力モードで動作していてもよい。低減電力モードは、第1又は作業電力モードよりも少ないシステム・リソースを消費する電力モード(たとえば、サスペンド電力モード、又はハイバネーション電力モードなど)を含むことができる。
【００３０】
このコンテキストにおいて、「システム・リソース」は、処理リソース(たとえば、プロセッサ110により提供される)、メモリ使用量(メモリ112により提供される)、電力又は電気消費(バッテリ116、又は外部電源182により提供される)、帯域幅使用、帯域幅コスト(たとえば、転送される各メガバイトごとにユーザ190に費用がかかるなど)のようなネットワーク・リソースなどを含む。さまざまな実施態様において、電力マネージャ130は、コンピューティング・デバイス102が消費するか、又は所与の電力モード(たとえば、作業電力モード)で消費する可能性の高いシステム・リソースの量を監視及び/又は予測するように構成されてもよい。また、電力マネージャ130は、コンピューティング・デバイス102のさまざまなシステム・リソースのレベル(たとえば、バッテリ充電レベル、ユーザ190の月間のネットワーク使用限度における残りの帯域幅の量など)を監視するか、又は認識させられてもよい。
【００３１】
示される実施態様において、電力マネージャ130は、非対話式タスク144がコンピューティング・デバイス102によって実行されていることを検出することができる。電力マネージャ130は、非対話式タスク144が完了するまで、コンピューティング・デバイス102を要求された第2の電力モードに遷移することを遅らせることができる。そのような実施態様において、コンピューティング・デバイス102は、非対話式タスク144が完了するまで、第1又は作業電力モードに留まることができる。
【００３２】
一部の実施態様において、非対話式タスク144が完了する前に、電力マネージャ130が、コンピューティング・デバイス102を第2又は低減電力モードに遷移した場合、非対話式タスク144は(全体又は部分的に)失敗することもある。たとえば、アップデート・タスク144がファイルをダウンロードしている(転送186)場合、コンピューティング・デバイス102をサスペンド電力モードに入れることは、ファイルがダウンロードされなくなるか、又は部分的にダウンロードされたバージョンが破損される原因となり得る。そのような実施態様において、コンピューティング・デバイス102が作業電力モードに再び入ると、アップデート・マネージャ122は、ファイル全体が再度転送又はダウンロードされるように要求することができる。そのような実施態様において、サスペンド電力モードの前に、中止又は失敗したアップデート・ファイルを部分的にダウンロードするために使用されたシステム・リソース(たとえば、ネットワーク帯域幅、ユーザ190ネットワーク使用限度など)は、浪費されることになる。失敗したか又は部分的に完了した非対話式タスク144のその他の形式、及びそのような失敗又は部分的完了の結果は、考慮されてもよい。上記の説明が1つの具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００３３】
示される実施態様において、非対話式タスク144が完了するまで、コンピューティング・デバイス102を要求された第2の電力モードに遷移することを遅らせることができる。一部の実施態様において、非対話式タスク144、若しくは非対話式タスク144に関連付けられているコンポーネント、サブシステム、又はプログラムは、非対話式タスク144が完了したときに電力マネージャ130に指示することができる。一部の実施態様において、これは電力マネージャ130にメッセージを送信することを含むことができるか、又は別の実施態様において、電力マネージャ130により定期的に検査されるメモリ・ロケーションに値を書き込むか又はクリアすることを含むことができる。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００３４】
一部の実施態様において、非対話式タスク144の完了は、単に正常な完了とは対照的に、完全又は部分的な失敗に終わることもある。たとえば、非対話式タスク144は、ネットワーク・リソース(たとえば、サーバ184など)からファイルを受信することを含むことができる。転送186中に、ネットワーク・リソース184は、使用不可能になり(サーバ184がクラッシュする、オフラインになるなど)、転送186を終了できないことにより、非対話式タスク144が失敗することもある。そのような実施態様において、電力マネージャ130は、非対話式タスク144が完了したと見なし、次いで要求された第2の電力モードへのコンピューティング・デバイス102の遷移を遅らせることを中断することができる。上記で説明されるように、非対話式タスク144、若しくは非対話式タスク144に関連付けられているコンポーネント、サブシステム、又はプログラムは、たとえば非対話式タスク144がその意図されたタスクを正常に完了できなかった場合であっても、非対話式タスク144が完了したときに電力マネージャ130に指示することができる。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００３５】
1つの実施態様において、電力マネージャ130は、非対話式タスク144が実行されていることを検出し、且つコンピューティング・デバイス102が第1の電力モードと第2の電力モードとの間の遷移を延期又は遅らせるのに十分なシステム・リソースを含むかどうかを決定するように構成されてもよい。そのような実施態様において、電力マネージャ130は、1つ以上のシステム・リソースしきい値又は規則134を含むことができる。1つの簡単な実施態様において、電力マネージャ130は、コンピューティング・デバイス102が外部電源182(たとえば、基本的に無制限の電力など)を使用している場合に第2の電力モードへの遷移が遅延され得るが、コンピューティング・デバイス102がバッテリ116(たとえば、有限量の電力など)を使用している場合には遷移が遅延されないことを指示するしきい値レベル又は規則132を含むことができる。
【００３６】
その他の実施態様において、さらに複雑な規則又はしきい値132が、電力マネージャ130によって採用されてもよい。たとえば、電力マネージャ130は、ネットワーク・インターフェイスがWLAN接続(たとえば、定額制又は無料のネットワーク接続、中帯域幅又はスループット接続など)又はセルラー・ネットワーク接続(たとえば、従量制又は高額ネットワーク接続、低帯域幅又はスループット・ネットワーク接続など)を使用しているかどうかを決定することができる。そのような実施態様において、電力マネージャ130は、提供されるシステム・リソースのタイプ(たとえば、セルラーに対してWLANなど)、及び/又はシステム・リソースの量(たとえば、外部電源184に対するバッテリ116、セルラー帯域幅使用量制限など)、若しくはその他の要因(たとえば、ユーザ190のセルラー帯域幅使用量のような、システム・リソースの予想消費率、セルラー帯域幅使用量制限、及びセルラー帯域幅使用量制限が更新されるまでの時間、低減電力モードが要求されてからの時間など)に基づいてコンピューティング・デバイス102の遷移を遅延するかどうかを決定することができる。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００３７】
一部の実施態様において、電力マネージャ130は、システム・リソースレベルをアクティブに監視して、低減電力モードへの遷移が遅延される期間中にそれらのシステム・リソースレベルをしきい値134と比較することができる。そのような実施態様において、システム・リソースレベルがしきい値レベル134を超過するか又は達する場合、電力マネージャ130は、低減電力モードへの遷移の延期を中止して、その代わりにコンピューティング・デバイス102を、非対話式タスク144が引き続き実行されているかどうかにはかかわりなく低減電力モードに遷移するように構成されてもよい。
【００３８】
さまざまな実施態様において、そのようなイベント(たとえば、システム・リソースしきい値を超過することなど)は、「オーバーライド・トリガー・イベント」という用語を介して一般化されてもよい。このコンテキストにおいて、オーバーライド・トリガー・イベント136は、電力マネージャ130によって監視又は受信される任意のイベントを含むことができ、電力マネージャ130に低減電力モードへの遷移の延期を中止させる。そのようなオーバーライド・トリガー・イベント136は、システム・リソースレベルの変化、第1又は第3の電力モードの要求、システム・エラー(たとえば、バッテリ118の損失/除去、メモリ112のパリティ・エラーなど)、低減電力モード延期のユーザ190開始のオーバーライドなどを含むことができるが、これらに限定されることはない。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００３９】
一部の実施態様において、オーバーライド・トリガー・イベント134を受信又は認識すると、電力マネージャ130は、実質的に瞬時に、又はさらなる異常な遅延を生じることなく、コンピューティング・デバイスを低減電力モードに遷移することができる。たとえば、(たとえば、動作状態、メモリ内容などの)情報を、目標又は新しい電力モードにより指示されたストレージ媒体(たとえば、サスペンド電力モードの場合揮発性メモリ、ハイバネーション電力モードの場合不揮発性メモリなど)に書き込むなど、電力モード間を遷移するプロセスが通常、ある程度時間を要する場合があることを理解されたい。そのような実施態様において、通常の遷移プロセスに含まれる遅延が生じることがある。
【００４０】
しかし、その他の実施態様において、電力マネージャ130は、オーバーライド・トリガー・イベント134へのその反応を、オーバーライド・トリガー・イベント134の1つ以上のタイプをそれぞれのアクションに関連付ける規則のセットに基づかせることができる。たとえば、オーバーライド・トリガー・イベント134がしきい値134を下回るシステム・リソースの減少に起因する場合、電力マネージャ130は、コンピューティング・デバイス102を、上記で説明されるように、低減電力モードにすることができる。
【００４１】
逆に、オーバーライド・トリガー・イベント134が、コンピューティング・デバイスを第1又は作業電力モードにするよう求める要求に起因する場合、電力マネージャ130は、コンピューティング・デバイス102を低減電力モードにするよう求める以前の要求を無視又は撤回し、低減電力モードの延期が、コンピューティング・デバイスが第1又は作業電力モードのために除去されなかったことを意味するならば、コンピューティング・デバイス102を作業電力モードのままにしておくことができる。さらにもう1つの実施態様において、オーバーライド・トリガー・イベント134が、コンピューティング・デバイスを第3又はハイバネーション電力モードにするよう求める要求に起因する場合、電力マネージャ130は、コンピューティング・デバイス102を第2又はサスペンド電力モードにするよう求める以前の要求を無視又は撤回し、その代わりに、コンピューティング・デバイス102を新しく要求された第3又はハイバネーション電力モードにすることを延期することができる。そのような実施態様において、電力マネージャ130は、第3の電力モードへの遷移の延期が生じ得るかどうかを再評価することができる。さまざまな実施態様において、電力マネージャ130は、さまざまな電力モード又は電力モード遷移(たとえば、作業からサスペンド、作業からハイバネーションなど)のためのさまざまなしきい値又は規則セットを含むことができる。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００４２】
図3を参照して以下で説明されるように、電力マネージャ130は、要求された電力モードへの遷移を延期するかどうかについてのその決定を、少なくとも部分的に、非対話式タスク144に関連付けられているコンポーネント、サブシステム、又はプログラムによって提供される情報に基づかせることができる。たとえば、さまざまな実施態様において、アップデート・マネージャ122(又はその他の実施態様においてそれぞれのサブシステム)は、非対話式タスク144が実行されていることだけではなく、その非対話式タスク144の予想される実行に関する情報もまた電力マネージャ130に指示することができる。一部の実施態様において、アップデート・マネージャ122は、非対話式タスク144が完了するのに要する時間(たとえば、秒単位、プロセッサ110クロック・サイクルなど)を電力マネージャ130に指示することができるか、又は非対話式タスク144の実行が消費すると予想される1つ以上のシステム・リソースの量(たとえば、帯域幅のメガバイト単位、プロセッサ110クロック・サイクル、メモリ112使用量など)を指示することができる。さまざまな実施態様において、それらの値は、フラグ又は値132に含まれるか、又はその一部であってもよい。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００４３】
一部の実施態様において、非対話式タスク144に関連付けられているコンポーネント、サブシステム、又はプログラムは、非対話式タスク144に関する推定又は情報が変化する場合、電力マネージャ130を更新することができる。たとえば、1つの実施態様において、非対話式タスク144を完了するための時間の推定は、増加又は減少されてもよい。同様に、非対話式タスク144が完了するために要するシステム・リソースの量の推定は、調整又は更新されてもよい。さまざまな実施態様において、電力マネージャ130はそのような更新を要求することができる。次いで、電力マネージャ130は、更新された情報に基づいて、遷移を延期する決定を再評価することができる。もう1つの実施態様において、非対話式タスク144に関連付けられているコンポーネント、サブシステム、又はプログラムは、非請求方式で更新情報を提供することができる。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００４４】
そのような実施態様において、電力マネージャ130は、指示されたシステム・リソース使用量、完了までの時間、又は非対話式タスク144に関するその他の指示された情報を、上記で説明されるように、1つ以上のしきい値134と比較することができる。たとえば、アップデート・マネージャ122は、更新非対話式タスク144が10分後(たとえば、1GHzのサイクル周波数で6×1012サイクル)に完了すると予想されることを指示することができる。電力マネージャ130は、低減電力モードに遷移するよう求める要求の受信に先立ち、更新非対話式タスク144が8分間実行したこと、したがってさらに2分間の実行が予想されることを決定することができる。次いで、電力マネージャ130は、事前定義済みのしきい値又は規則134の範囲内で、低減電力モードの2分間の延期が許容可能であるかどうかを決定することができる。もう1つの実施態様において、電力マネージャ130は、たとえば平均化プロセスによって、消費される可能性の高いシステム・リソースの量を計算又は推定し、そのシステム・リソース消費量を事前定義済みのしきい値又は規則134と比較することができる。
【００４５】
さらにもう1つの実施態様において、アップデート・マネージャ122は、特定の量のデータ(たとえば、メガバイトで測定される)が更新非対話式タスク144によりダウンロードされると予想されることを指示することができる。ここでもまた、電力マネージャ130は、事前定義済みのしきい値又は規則134の範囲内で、システム・リソースのそのような消費が許容されるかどうかを決定することができる。一部の実施態様において、電力マネージャ130は、決定を指示されたシステム・リソース消費量の最大レベルに基づかせることができる。その他の実施態様において、電力マネージャ130は、その他の因子(たとえば、低減電力モードに入る決定又は要求に先立つシステム・リソース消費量、たとえば110%の固定乗数など)により変更されたシステム・リソース消費量の指示されたレベルに基づいてシステム・リソース消費量の予想されるレベルを調整することができる。一部の実施態様において、指示エージェント(たとえば、アップデート・マネージャ122、オペレーティング・システム142、サブシステム124など)は、システム・リソースが非対話式タスク144によって消費されるとシステム・リソース指示を更新することができる。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００４６】
そのような実施態様において、オーバーライド・トリガー・イベント136は、非対話式タスク144によって消費されるか又は消費されると予想されるシステム・リソース(たとえば、帯域幅、実行時間、電力など)の量がしきい値又は規則134を超過するという電力マネージャ130の決定により作成されるか又は起因してもよい。この決定が行われるのは、第2の電力モードの要求が受信された時点に限定されなくてもよい。そのような決定は、低減電力モードの遷移の延期期間中に生じてもよい。
【００４７】
上記で説明されるように、オーバーライド・トリガー・イベント136の検出は、電力マネージャ130に、要求された低減電力モード(たとえば、サスペンド電力モードなど)へのコンピューティング・デバイス102の遷移を開始させることができる。オーバーライド・トリガー・イベント136が、低減電力モードへの遷移を遅延又は延期するかどうかの決定中に生じる場合、電力マネージャ130は遷移を遅延しないよう決定することができる。上記で説明されるように、さまざまな実施態様において、特定のオーバーライド・トリガー・イベント134の発生(たとえば、第1の電力モードに再度入るよう求める要求)は、電力マネージャ130に、要求された低減電力モードにコンピューティング・デバイス102を遷移する代わりに別のアクション(たとえば、低減電力モードに入るよう求める要求が撤回されるなど)を実行させることができる。
【００４８】
さまざまな実施態様において、電力マネージャ130は、第2又は低減電力モード(たとえば、サスペンド電力モードなど)への遷移が遅延又は延期される期間中に、コンピューティング・デバイス102を第3の電力モードに入れるか又は遷移することができる。そのような実施態様において、第3の電力モード(たとえば、第2の電力モードがサスペンド電力モードなどである場合、このコンテキストにおいて「疑似サスペンド電力モード」と呼ぶ)は、第1の電力モード(たとえば、作業電力モードなど)よりも少ないが、要求された第2の電力モード(たとえば、サスペンド電力モードなど)よりも少ないシステム・リソースを消費する電力モードを含むことができる。
【００４９】
そのような実施態様において、電力マネージャ130は、第2の電力モードへのコンピューティング・デバイス102の転換を要求することにより、ユーザ190がコンピューティング・デバイス102の一部分を使用すること、又はコンピューティング・デバイス102の一部のパフォーマンスを変えることを望んでいないことを暗示することができる。1つの実施態様において、電力マネージャ130は、コンピューティング・デバイス102の一部を第2の電力モードに部分的又は選択的に遷移することができる。第2の電力モード(たとえば、サスペンド電力モード)へのこの部分的又は選択的遷移は、第3の電力モード(たとえば、疑似サスペンド電力モード)と呼ばれてもよい。
【００５０】
さまざまな実施態様において、第3の電力モード及びコンピューティング・デバイス102の一部の第2の電力モードへの選択的又は部分的な移行が事前定義されてもよい。もう1つの実施態様において、コンピューティング・デバイス102の一部の第2の電力モードへの選択的又は部分的な移行は、非対話式タスク144により消費されると予想されるシステム・リソースに基づいて動的に決定されてもよい。
【００５１】
特定の実施態様において、要求された第2の電力モードがサスペンド電力モードである場合、電力マネージャ130は、ユーザ190がコンピューティング・デバイス102との対話をもはや望んでいないことを暗示することができる。そのようなものとして、電力マネージャ130は、コンピューティング・デバイスを第3又は疑似サスペンド電力モードに入れることができ、このモードではディスプレイ120及びオーディオ・サブシステム124などがオフにされるか、又は第2又はサスペンド電力モードと(それらのコンポーネントの)等価の電力モードに入れられる。しかし、プロセッサ110、メモリ112、及び1つ以上のネットワーク・インターフェイス114のような、非対話式タスク144を実行するために必要であるか、又は必要であると予想されるその他のコンポーネントは、第1又は作業電力モードに留まることができる。そのようなものとして、第3又は疑似サスペンド電力モードはコンピューティング・デバイス102の第1の部分(たとえば、プロセッサ110など)が第1又は作業電力モードで動作しており、コンピューティング・デバイス102の第2の部分(たとえば、ディスプレイ120など)が要求された第2又はサスペンド電力モードで動作している電力モードを含むことができる。コンピューティング・デバイス102全体(上記で説明される第1及び第2の部分)の、要求された第2又はサスペンド電力モードへの遷移は、上記で説明されるように、非対話式タスク144又はオーバーライド・トリガー・イベント136の完了まで遅延又は延期されてもよい。上記の説明が1つの具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００５２】
さまざまな実施態様において、1つ以上の非対話式タスク144及び146は、コンピューティング・デバイス102によって実行されてもよい。そのような実施態様において、電力マネージャ130は、第2の電力モードに入るよう求める要求を受信すると、1つ以上の実行中タスク又はプロセスが、第2の電力モードへの遷移の遅延又は延期を生じさせ得るタスク又はプロセスであるかどうかを検出又は決定することができる。上記で説明されるように、1つの実施態様において、この検出はフラグ又はその他の値132によって支援されてもよい。少なくとも1つのタスク(たとえば、タスク144)が遅延を生じる場合、第2の電力モードへの遷移は、上記で説明されるように遅延されてもよい。1つの実施態様において、電力マネージャ130は、第2の電力モードへの遷移に遅延を生じることのないタスク又はプロセス(たとえば、アプリケーション140及びこの例示のタスク146)に、それぞれの実行を中断又は一時停止させることができる。そのような実施態様において、それらの非遅延タスク又はプロセスの実行は、コンピューティング・デバイス102が第2の電力モードに入ったかのような場合と同様の方法で中断又は一時停止されてもよい。
【００５３】
1つの実施態様において、2つ以上の非対話式タスクが電力マネージャ130に第2の電力モードへの遷移を遅延又は延期させることができる。1つの実施態様において、電力マネージャ130は、デバイス102にとって使用可能なシステム・リソースの現行レベルがしきい値134を下回り、オーバーライド・トリガー・イベント136が生成されるまで、すべての遅延を生じる非対話式タスク(たとえば、タスク144及び146)が実行されることを単に許可することができる。次いで、電力マネージャ130は、たとえ非対話式タスク144及び146の1つ以上がその実行を終了していない場合であっても、上記で説明されるように、コンピューティング・デバイス102を要求された第2の電力モードに遷移することができる。逆に、オーバーライド・トリガー・イベント136がまったく生成されない場合があり、また非対話式タスクのすべてが完全に実行される場合があり、その時点において電力マネージャ103は、上記で説明されるように、コンピューティング・デバイス102を要求された第2の電力モードに遷移する。
【００５４】
もう1つの実施態様において、電力マネージャ130は、しきい値又は規則134及びタスクの実行に伴う予想システム・リソース消費量を所与として、すべての、又は選択された少数の遅延非対話式タスク144及び146が実行され得るか、又はまったく実行されないかを決定するように構成されてもよい。電力マネージャ130は、オーバーライド・トリガー・イベント136を生成する前に完了しないと予想される1つ以上のタスクの実行を(たとえば、オペレーティング・システム142へのメッセージを介してなど)中断又は一時停止させるように構成されてもよい。そのような実施態様において、要求された第2の電力モードへのコンピューティング・デバイス102の遷移が遅延される間に、残りの非対話式タスク144は実行されてもよい。
【００５５】
そのような実施態様において、電力マネージャ130は、オーバーライド・トリガー・イベント136(たとえば、実行を続行するにはシステム・リソースが少なすぎる、など)の生成が発生するかどうかを決定するために、それぞれの非対話式タスクに関連付けられている推定又は指示されたシステム・リソース消費量が検査される1つ以上の「what-if(起こり得る事態)」シナリオの結果を計算するように構成されてもよい。そのような実施態様において、電力マネージャ130は、最多数の非対話式タスクがオーバーライド・トリガー・イベント136を生成することなく完了できるようにする非対話式タスクの組み合わせを実行するように選択することができる。しかし、その他の規則及び選択技法が、開示される主題の枠組みの範囲で採用されてもよい。
【００５６】
図2は、開示される主題によるシステムの例示的な実施態様のパフォーマンスを示す一連のタイミング図である。示される実施態様において、システムは、図1のシステム100を含むことができる。その他の実施態様において、コンピューティング・デバイス又はシステムは、その他のコンポーネントを含むことができるが、示されるか又は説明されるタイミング図のうちの1つ以上に従って実行することができる。
【００５７】
タイミング図202は、1つの実施態様において、第2の電力モード(たとえば、サスペンド電力モードなど)へのコンピューティング・デバイスの遷移が、遅延非対話式タスクの完了まで遅延され得ることを示す。示される実施態様において、上記で説明されるように、第1の電力モードは作業電力モードであり、第2の電力モードはサスペンド電力モードであり、第3の電力モードは疑似サスペンド電力モードである。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００５８】
バブル212は、1つの実施態様において、コンピューティング・デバイスが作業又は第1の電力モードで動作していることを示す。バブル214は、1つの実施態様において、コンピューティング・デバイスが引き続き作業電力モード内で動作している間に、非対話式タスク(たとえば、ソフトウェア・アップデートなど)が始動又は開始し得ることを示す。さまざまな実施態様において、アップデート・タスクの作成は、上記で説明されるように、遅延非対話式タスクが実行していることをコンピューティング・デバイスの電力マネージャ・サブシステムに指示することを含むことができる。一部の実施態様において、電力マネージャはまた、上記で説明されるように、アップデート・タスクを完了するために必要なシステム・リソースの量又は時間の推定を、(たとえば、メモリ・ロケーションのエントリなどを介して)受信するか又は利用できるようにすることができる。
【００５９】
バブル216は、1つの実施態様において、コンピューティング・デバイスを第2の電力モード(たとえば、サスペンド電力モード)に遷移するか又は入れるよう求める要求が、行われ得るか又は受信され得ることを示す。たとえば、ユーザは、専用のボタンを押して、ラップトップ・コンピューティング・デバイスのふたを閉じるか、又は特定の期間にわたりデバイスとの対話を行わないことなどにより、サスペンド電力モードへのエントリを要求することができる。コンピューティング・デバイスは、上記で説明されるように、遅延非対話式タスクがデバイスで実行していることを決定又は検出することができる。さまざまな実施態様において、コンピューティング・デバイスは、上記で説明されるように、デバイスのシステム・リソースが、遅延非対話式タスクの完全な実行をサポートするのに十分であるかどうかを決定することができる。
【００６０】
遅延非対話式タスクが実行を終了するまで、要求された第2の電力モードへの遷移が遅延又は延期され得ることをコンピューティング・デバイスが決定する場合、第2の電力モードへの遷移は遅延されてもよい。バブル218は、1つの実施態様において、上記で説明されるように、コンピューティング・デバイスが第3の電力モード(たとえば、疑似サスペンド電力モード)に入り得ることを示す。たとえば、コンピューティング・デバイスのディスプレイ、人間による入力デバイスなどは、電源遮断されるか、又はサスペンド電力モードにおけるコンポーネントの電力状態と実質的に等価の電力モードに入れられてもよい。一方、コンピューティング・デバイスのさまざまな他のコンポーネント(たとえば、プロセッサ、メモリ、ネットワーク・インターフェイスなど)は、上記で説明されるように、作業電力モードにおけるコンポーネントの電力状態と実質的に等価の電力モードに留まることができる。
【００６１】
バブル220は、1つの実施態様において、コンピューティング・デバイス全体の第2又はサスペンド電力モードへの完全な遷移が遅延又は延期されていた比較的イベントのない期間の後、アップデート・タスクが自然にその実行を終了して完了し得ることを示す。バブル222は、1つの実施態様において、上記で説明されるように、コンピューティング・デバイスが第1又は作業電力モードから第2又はサスペンド電力モードへのその遷移を完了し得ることを示す。
【００６２】
タイミング図204は、1つの実施態様において、第2の電力モード(たとえば、サスペンド電力モードなど)へのコンピューティング・デバイスの遷移が、遅延非対話式タスクの実行にもかかわらず遅延されなくてもよいことを示す。示される実施態様において、上記で説明されるように、第1の電力モードは作業電力モードであり、第2の電力モードはサスペンド電力モードであり、第3の電力モードは疑似サスペンド電力モードである。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００６３】
バブル212は、1つの実施態様において、コンピューティング・デバイスが作業又は第1の電力モードで動作していることを示す。バブル214は、1つの実施態様において、コンピューティング・デバイスが引き続き作業電力モード内で動作している間に、非対話式タスク(たとえば、ソフトウェア・アップデートなど)が始動又は開始し得ることを示す。さまざまな実施態様において、アップデート・タスクの作成は、上記で説明されるように、遅延非対話式タスクが実行していることをコンピューティング・デバイスの電力マネージャ・サブシステムに指示することを含むことができる。一部の実施態様において、電力マネージャはまた、上記で説明されるように、アップデート・タスクを完了するために必要なシステム・リソースの量又は時間の推定を、(たとえば、メモリ・ロケーションのエントリなどを介して)受信するか又は利用できるようにすることができる。
【００６４】
バブル216は、1つの実施態様において、コンピューティング・デバイスを第2の電力モード(たとえば、サスペンド電力モード)に遷移するか又は入れるよう求める要求が、行われ得るか又は受信され得ることを示す。たとえば、ユーザは、専用のボタンを押して、ラップトップ・コンピューティング・デバイスのふたを閉じるか、又は特定の期間にわたりデバイスとの対話を行わないことなどにより、サスペンド電力モードへのエントリを要求することができる。コンピューティング・デバイスは、上記で説明されるように、遅延非対話式タスクがデバイスで実行していることを決定又は検出することができる。さまざまな実施態様において、コンピューティング・デバイスは、上記で説明されるように、デバイスのシステム・リソースが、遅延非対話式タスクの完全な実行をサポートするのに十分であるかどうかを決定することができる。
【００６５】
遅延非対話式タスクが実行を終了するまで、要求された第2の電力モードへの遷移が遅延又は延期されないことをコンピューティング・デバイスが決定する場合、第2の電力モードへの遷移は、上記で説明されるように、実質的に即時、又は非対話式アップデート・タスクにかかわりなく生じてもよい。バブル230は、そのような実施態様において、アップデート・タスクが早期に強制終了するか、又はその実行を中止させ得ることを示す。もう1つの実施態様において、アップデート・タスクの実行は、第2又はサスペンド電力モードによって指示されるように一時停止又はサスペンドされてもよい。しかし、示される実施態様において、アップデート・タスクの実行をサスペンドすることは、アップデート・タスクの失敗又は異常終了を生じる原因となる。バブル222は、1つの実施態様において、上記で説明されるように、コンピューティング・デバイスが第1又は作業電力モードから第2又はサスペンド電力モードへのその遷移を完了し得ることを示す。
【００６６】
タイミング図206は、1つの実施態様において、オーバーライド・トリガー・イベントが非対話式タスクの実行により生じた遅延を中止するまで、第2の電力モード(たとえば、サスペンド電力モードなど)へのコンピューティング・デバイスの遷移が遅延され得ることを示す。示される実施態様において、上記で説明されるように、第1の電力モードは作業電力モードであり、第2の電力モードはサスペンド電力モードであり、第3の電力モードは疑似サスペンド電力モードである。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００６７】
バブル212は、1つの実施態様において、コンピューティング・デバイスが作業又は第1の電力モードで動作していることを示す。バブル214は、1つの実施態様において、コンピューティング・デバイスが引き続き作業電力モード内で動作している間に、非対話式タスク(たとえば、ソフトウェア・アップデートなど)が始動又は開始し得ることを示す。さまざまな実施態様において、アップデート・タスクの作成は、上記で説明されるように、遅延非対話式タスクが実行していることをコンピューティング・デバイスの電力マネージャ・サブシステムに指示することを含むことができる。一部の実施態様において、電力マネージャはまた、上記で説明されるように、アップデート・タスクを完了するために必要なシステム・リソースの量又は時間の推定を、(たとえば、メモリ・ロケーションのエントリなどを介して)受信するか又は利用できるようにすることができる。
【００６８】
バブル216は、1つの実施態様において、コンピューティング・デバイスを第2の電力モード(たとえば、サスペンド電力モード)に遷移するか又は入れるよう求める要求が、行われ得るか又は受信され得ることを示す。たとえば、ユーザは、専用のボタンを押して、ラップトップ・コンピューティング・デバイスのふたを閉じるか、又は特定の期間にわたりデバイスとの対話を行わないことなどにより、サスペンド電力モードへのエントリを要求することができる。コンピューティング・デバイスは、上記で説明されるように、遅延非対話式タスクがデバイスで実行していることを決定又は検出することができる。さまざまな実施態様において、コンピューティング・デバイスは、上記で説明されるように、デバイスのシステム・リソースが、遅延非対話式タスクの完全な実行をサポートするのに十分であるかどうかを決定することができる。
【００６９】
遅延非対話式タスクが実行を終了するまで、要求された第2の電力モードへの遷移が遅延又は延期され得ることをコンピューティング・デバイスが決定する場合、第2の電力モードへの遷移は遅延されてもよい。バブル218は、1つの実施態様において、上記で説明されるように、コンピューティング・デバイスが第3の電力モード(たとえば、疑似サスペンド電力モード)に入り得ることを示す。たとえば、コンピューティング・デバイスのディスプレイ、人間による入力デバイスなどは、電源遮断されるか、又はサスペンド電力モードにおけるコンポーネントの電力状態と実質的に等価の電力モードに入れられてもよい。一方、コンピューティング・デバイスのさまざまな他のコンポーネント(たとえば、プロセッサ、メモリ、ネットワーク・インターフェイスなど)は、上記で説明されるように、作業電力モードにおけるコンポーネントの電力状態と実質的に等価の電力状態に留まることができる。
【００７０】
バブル240は、1つの実施態様において、オーバーライド・トリガー・イベントが発生し、コンピューティング・デバイスによって検出され得ることを示す。そのような実施態様において、バブル214において開始されたアップデート・タスクは、引き続き実行してもよい。さまざまな実施態様において、オーバーライド・トリガー・イベントは、上記で説明されるように、システム・リソースの変化(たとえば、WLANへの参加の中止、及びセルラー・データ・ネットワークへの参加の開始など)、しきい値を超過すること(たとえば、しきい値に従って、アップデート・タスクが完了に分数を要し過ぎる、など)、又はその他のトリガー・イベントによって引き起こされてもよい。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００７１】
上記で説明されるように、さまざまな実施態様において、コンピューティング・デバイスがオーバーライド・トリガー・イベントを検出する場合、第2の電力モードへの遷移は、上記で説明されるように、実質的に即時、又は非対話式アップデート・タスクにかかわりなく生じてもよい。バブル230は、そのような実施態様において、アップデート・タスクが早期に強制終了するか、又はその実行を中止させ得ることを示す。もう1つの実施態様において、アップデート・タスクの実行は、第2又はサスペンド電力モードによって指示されるように一時停止又はサスペンドされてもよい。しかし、示される実施態様において、アップデート・タスクの実行をサスペンドすることは、アップデート・タスクの失敗又は異常終了を生じる原因となる。上記の説明が1つの具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。バブル222は、1つの実施態様において、上記で説明されるように、コンピューティング・デバイスが第1又は作業電力モードから第2又はサスペンド電力モードへのその遷移を完了し得ることを示す。
【００７２】
タイミング図208は、1つの実施態様において、オーバーライド・トリガー・イベントが非対話式タスクの実行により生じた遅延を中止するまで、第2の電力モード(たとえば、サスペンド電力モードなど)へのコンピューティング・デバイスの遷移が遅延され得ることを示す。しかし、示される実施態様において、オーバーライド・トリガー・イベントは、要求された第2の電力モードへのコンピューティング・デバイスのエントリ又は遷移を生じさせることはない。示される実施態様において、上記で説明されるように、第1の電力モードは作業電力モードであり、第2の電力モードはサスペンド電力モードであり、第3の電力モードは疑似サスペンド電力モードである。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００７３】
バブル212は、1つの実施態様において、コンピューティング・デバイスが作業又は第1の電力モードで動作していることを示す。バブル214は、1つの実施態様において、コンピューティング・デバイスが引き続き作業電力モード内で動作している間に、非対話式タスク(たとえば、ソフトウェア・アップデートなど)が始動又は開始し得ることを示す。さまざまな実施態様において、アップデート・タスクの作成は、上記で説明されるように、遅延非対話式タスクが実行していることをコンピューティング・デバイスの電力マネージャ・サブシステムに指示することを含むことができる。一部の実施態様において、電力マネージャはまた、上記で説明されるように、アップデート・タスクを完了するために必要なシステム・リソースの量又は時間の推定を、(たとえば、メモリ・ロケーションのエントリなどを介して)受信するか又は利用できるようにすることができる。
【００７４】
バブル216は、1つの実施態様において、コンピューティング・デバイスを第2の電力モード(たとえば、サスペンド電力モード)に遷移するか又は入れるよう求める要求が、行われ得るか又は受信され得ることを示す。たとえば、ユーザは、専用のボタンを押して、ラップトップ・コンピューティング・デバイスのふたを閉じるか、又は特定の期間にわたりデバイスとの対話を行わないことなどにより、サスペンド電力モードへのエントリを要求することができる。コンピューティング・デバイスは、上記で説明されるように、遅延非対話式タスクがデバイスで実行していることを決定又は検出することができる。さまざまな実施態様において、コンピューティング・デバイスは、上記で説明されるように、デバイスのシステム・リソースが、遅延非対話式タスクの完全な実行をサポートするのに十分であるかどうかを決定することができる。
【００７５】
遅延非対話式タスクが実行を終了するまで、要求された第2の電力モードへの遷移が遅延又は延期され得ることをコンピューティング・デバイスが決定する場合、第2の電力モードへの遷移は遅延されてもよい。バブル218は、1つの実施態様において、上記で説明されるように、コンピューティング・デバイスが第3の電力モード(たとえば、疑似サスペンド電力モード)に入り得ることを示す。たとえば、コンピューティング・デバイスのディスプレイ、人間による入力デバイスなどは、電源遮断されるか、又はサスペンド電力モードにおけるコンポーネントの電力状態と実質的に等価の電力モードに入れられてもよい。一方、コンピューティング・デバイスのさまざまな他のコンポーネント(たとえば、プロセッサ、メモリ、ネットワーク・インターフェイスなど)は、上記で説明されるように、作業電力モードにおけるコンポーネントの電力状態と実質的に等価の電力モードに留まることができる。
【００７６】
バブル250は、1つの実施態様において、オーバーライド・トリガー・イベントが発生し、コンピューティング・デバイスによって検出され得ることを示す。そのような実施態様において、バブル214において開始されたアップデート・タスクは、引き続き実行されてもよい。示される実施態様において、オーバーライド・トリガー・イベントは、作業電力モードに再度入るよう求める要求を含むことができる。さまざまな実施態様において、コンピューティング・デバイスが、サスペンド電力モードに遷移しないか、又はサスペンド電力モードに遷移するよう求める要求(バブル216で受信された要求)を撤回する、その他のオーバーライド・トリガー・イベントが発生してもよい。そのようなオーバーライド・トリガー・イベントの例としては、他の電力モードに遷移するよう求める要求、回復不可能なハードウェア障害(たとえば、バッテリの除去又は損失、プロセッサ温度イベントなど)、以前要求された第2の電力モードへの遷移をやめるユーザ開始のコマンドなどを含むことができるが、これらには限定されない。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００７７】
バブル252は、1つの実施態様において、コンピューティング・デバイスが、要求された作業電力モードに遷移し得ることを示す。これは、以前要求されたサスペンド電力モード(バブル216)に決して完全には遷移しないことを含むことができる。一部の実施態様において、コンピューティング・デバイスは、以前要求されたサスペンド電力モードへの遷移が遅延されたので、引き続き作業電力モード内で動作してもよい。そのような実施態様において、コンピューティング・デバイスは、疑似サスペンド電力モードから作業電力モードに遷移しない。
【００７８】
上記で説明されるように、さまざまな実施態様において、コンピューティング・デバイスがオーバーライド・トリガー・イベントを検出する場合、第2の電力モードへの遷移は、上記で説明されるように、実質的に即時、又は非対話式アップデート・タスクにかかわりなく生じてもよい。バブル230は、そのような実施態様において、アップデート・タスクが早期に強制終了するか、又はその実行を中止させ得ることを示す。もう1つの実施態様において、アップデート・タスクの実行は、第2又はサスペンド電力モードによって指示されるように一時停止又はサスペンドされてもよい。しかし、示される実施態様において、アップデート・タスクの実行をサスペンドすることは、アップデート・タスクの失敗又は異常終了を生じる原因となる。上記の説明が1つの具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。バブル222は、1つの実施態様において、上記で説明されるように、コンピューティング・デバイスが第1又は作業電力モードから第2又はサスペンド電力モードへのその遷移を完了し得ることを示す。
【００７９】
バブル220は、1つの実施態様において、(バブル250のトリガー・イベントがアップデート・タスクの実行に実質的に影響を与えていないので)比較的イベントのない期間の後、アップデート・タスクがその実行を終了して完了し得ることを示す。示される実施態様において、アップデート・タスクの実行中に、第2又はサスペンド電力モードへのコンピューティング・デバイスの完全な遷移は最初に遅延又は延期され、次いで、上記で説明されるように、作業電力モードに再度入るよう求める要求により破棄された。
【００８０】
図3は、開示される主題によるメモリ構造の例示的な実施態様を示す一連の図である。さまざまな実施態様において、メモリ構造は、コンピューティング・デバイスのメモリ内に格納されてもよい。もう1つの実施態様において、メモリは、電力マネージャの一部として含まれてもよい。さらにもう1つの実施態様において、メモリ構造は、電力マネージャ及びコンピューティング・デバイスの1つ以上のサブシステム又はコンポーネント(たとえば、アップデート・マネージャ、オペレーティング・システムなど)のいずれにもアクセス可能な所定のメモリ・ロケーションに格納されてもよい。
【００８１】
メモリ構造302は、1つの実施態様において、メモリが、フラグ、又は非対話式タスク・フラグ312を格納するための実質的に1ビットのメモリ・ロケーションを含み得ることを示す。そのような実施態様において、非対話式タスク・フラグ312は、非対話式タスクが実行中であり、上記で説明されるように、可能であれば、低減電力モードへの遷移が遅延されるべきであることを指示することができる。
【００８２】
メモリ構造304は、1つの実施態様において、メモリが、異なる非対話式タスクを表すように各々構成された、複数のフラグ(たとえば、フラグ314、314a、及び314nなど)を含み得ることを示す。一部の実施態様において、各フラグ314、314aなどは、コンピューティング・デバイスのそれぞれのサブシステム又はコンポーネントに関連付けられてもよい。たとえば、アップデート・マネージャはフラグ314に関連付けられてもよく、フラグ314が設定される場合、それはアップデート・タスクが実行中であることを指示する。同様に、フラグ314aは、アプリケーション又はその他の対話式プロセス(たとえば、バックグラウンド・プロセスを介するビデオ・ファイルのエンコード、ソースコードのコンパイル、大容量ファイルのダウンロードなど)により開始された非対話式タスクに関連付けられてもよい。その他のフラグは、オペレーティング・システム、ファイル又はデータ同期プログラム(たとえば、カレンダリング、オフライン電子メール、ファイル同期化など)、オーディオ再生又はストリーミング、若しくはコンピューティング・デバイスのさまざまなアプリケーション、サブシステム、又はコンポーネントなどに関連付けられてもよい。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００８３】
一部の実施態様において、複数のフラグ314は、コンピューティング・デバイスの同じサブシステムに関連付けられてもよい。たとえば、一部の実施態様において、アップデート・マネージャは、2つのフラグ314に関連付けられてもよい。特定の実施態様において、アップデート・マネージャは、オペレーティング・システムに関するアップデートのために第1のフラグに関連付けられてもよく、アップデート・マネージャはまた、その他のソフトウェアファイルのアプリケーションに関するアップデートのために第2のフラグに関連付けられてもよい。上記の説明が1つの具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。さまざまな実施態様において、コンピューティング・デバイスのサブシステムとフラグとの関連付けは、スコアボード・テーブル又はその他の関連するメモリ構造(図示せず)を介して動的に割り振られ、管理されてもよい。
【００８４】
一部の実施態様において、メモリ構造304はまた、メモリ構造304に含まれているフラグ314の数を指示するサイズ又はヘッダ・フィールド313を含むこともできる。もう1つの実施態様において、ヘッダ・フィールド313は、含まれなくてもよいか(たとえば、フラグ314の数が固定され得る)、又は代替的に、終了フィールド(図示せず)がメモリ構造304の終わりを指示するために採用されてもよい。上記の説明がわずかな具体例に過ぎず、開示される主題がこれらに限定されないことを理解されたい。
【００８５】
メモリ構造306は、1つの実施態様において、メモリが、フィールド316に関連付けられている非対話式タスクがその実行を完了すると予想されるときに指示するフィールド又は部分316を含み得ることを示す。上記で説明されるように、フィールド316の値は、たとえば、タスクの最初の実行からの秒数、プロセッサ・サイクルの数、絶対時間(たとえば、午後1:00など)などのようなさまざまな時間値で測定されてもよい。さまざまな実施態様において、メモリ構造306は、それぞれの非対話式タスクに各々関連付けられている、複数のそのようなフィールド316を含むことができる。もう1つの実施態様において、フィールド316は、複数の非対話式タスクにより共有されてもよい。そのような実施態様において、追加の非対話式タスクは、それらの推定完了時間を、フィールド316に格納されている現行値に追加することができる。たとえば、第1のタスクが100プロセッサ・サイクルで完了すると予想される場合、値100がフィールド316に入れられてもよい。第2のタスクは、150プロセッサ・サイクル後に完了すると予想されてもよく、フィールド316の値は250プロセッサ・サイクルに調整されてもよい。さまざまな実施態様において、フィールド316の値は、関連するタスク(複数可)が完了するか、又は実行されると、調整(たとえば、減少など)されてもよい。
【００８６】
メモリ構造308は、1つの実施態様において、メモリが、1つ以上の非対話式タスク又はサブシステムに関連付けられている複数のフィールドを含み得ることを示す。たとえば、フラグ312は、関連する非対話式タスクがコンピューティング・デバイスによって実行中であるか、又は実行されるべきであることを指示することができる。フィールド316は、非対話式タスクを完了するために必要な時間の推定量を指示することができる。フィールド318は、関連する非対話式タスクの実行により消費される1つ以上のシステム・リソースの推定を指示することができる。
【００８７】
一部の実施態様において、複数のフィールド312、316、及び318は、特定の非対話式タスクに関連付けられてもよい。もう1つの実施態様において、複数のフィールド312、316、及び318は、特定のサブシステム(たとえば、アップデート・マネージャなど)に関連付けられてもよく、したがって非対話式タスクのすべてがそのサブシステムによって開始されてもよい。上記で説明されるように、それらの関連付けは、静的で、あらかじめ定められるか、又は動的に割り当てられてもよい。
【００８８】
さまざまな実施態様において、メモリ構造306及び/又は308は、フラグ314のメモリ構造304’の繰り返しと同様に、複数の関連する開始サブシステム又は関連する非対話式タスクにわたり繰り返されるか、又は重複されてもよい。そのような実施態様において、関連付けは動的に割り当てられてもよい。また、そのような実施態様において、追加のメモリ・ロケーション又は要素は、遅延非対話式タスクが作成又は終了される際に、メモリ構造に割り振られてもよい。そのような実施態様において、メモリ構造は、小型メモリ構造(たとえば、フィールド312、316、及び318など)が大型メモリ構造内で繰り返し又は重複される回数を指示するヘッダー又はサイズ・フィールド313を含むことができる。
【００８９】
図4は、開示される主題による技法400の例示的な実施態様を示す流れ図である。さまざまな実施態様において、技法400は、図1又は図5におけるようなシステムにより使用又は形成されてもよい。さらに、技法400の一部は、図2又は図3におけるようなイベント又はメモリ構造を作成するために、システムにより使用又は形成されてもよい。開示される主題が、技法400により示されるアクションの順序又は数に限定されないことを理解されたい。
【００９０】
ブロック402は、1つの実施態様において、上記で説明されるように、コンピューティング・デバイスが第1の電力モードで動作され得ることを示す。さまざまな実施態様において、この第1の電力モードは、上記で説明されるように、作業電力モードを含むことができる。さまざまな実施態様において、このブロックにより示されるアクション(複数可)の1つ以上は、上記で説明されるように、図1又は図5の装置又はシステム、図1の電力マネージャによって実行されてもよい。
【００９１】
ブロック404は、1つの実施態様において、上記で説明されるように、コンピューティング・デバイスが少なくとも1つの非対話式タスク又はバックグラウンド・プロセスを実行し得ることを示す。さまざまな実施態様において、これは、上記で説明されるように、バックグラウンド・プロセスとして実行するように構成されたソフトウェア・アップデートアクティビティを含むことができる。一部の実施態様において、非対話式タスク又はバックグラウンド・プロセスを実行することは、少なくとも1つの所定のメモリ・ロケーションに値を書き込むことを含むことができ、書き込まれた値は、非対話式タスクが実行中であること、及び、オーバーライド・トリガー・イベントがないので、非対話式タスクの実行が完了するまでの低減電力モードへの遷移の延期が望ましいことを指示する。さまざまな実施態様において、このブロックにより示されるアクション(複数可)の1つ以上は、上記で説明されるように、図1又は図5の装置又はシステム、図1のアップデート・マネージャ・サブシステム、オペレーティング・システム、又はアプリケーションによって実行されてもよい。
【００９２】
ブロック406は、1つの実施態様において、上記で説明されるように、コンピューティング・デバイスを第2の電力モードに入れるよう求める要求が検出され得ることを示す。さまざまな実施態様において、この第2の電力モードは、上記で説明されるように、サスペンド電力モードを含むことができる。さまざまな実施態様において、第2の電力モードは、上記で説明されるように、第1の電力モードよりも少ないシステム・リソースを消費してもよい。さまざまな実施態様において、このブロックにより示されるアクション(複数可)の1つ以上は、上記で説明されるように、図1又は図5の装置又はシステム、図1の電力マネージャによって実行されてもよい。
【００９３】
ブロック408は、1つの実施態様において、上記で説明されるように、コンピューティング・デバイスの遷移を遅延又は延期することが望ましいかどうかについて決定が行われ得ることを示す。さまざまな実施態様において、上記で説明されるように、この決定することは、要求された非対話式タスクを完了するために必要なシステム・リソースの量を推定すること、及び推定されたシステム・リソースの量が1つ以上のシステム・リソースしきい値を超過するかどうかを決定することを含むことができる。1つの実施態様において、この決定することは、上記で説明されているように、非対話式タスクの実行が要求又は実行されていることを指示する値がメモリ・ロケーションに格納されているかどうかを決定するためにメモリ・ロケーションを読み込むことを含むことができる。一部の実施態様において、格納されている値は、上記で説明されるように、非対話式タスクの実行を完了するために必要な時間の量の推定を含むことができ、決定することは、非対話式タスクを完了するために必要な時間の量の推定がしきい値を超過するかどうかを決定することを含むことができる。さまざまな実施態様において、このブロックにより示されるアクション(複数可)の1つ以上は、上記で説明されるように、図1又は図5の装置又はシステム、図1の電力マネージャによって実行されてもよい。
【００９４】
ブロック410は、1つの実施態様において、上記で説明されるように、非対話式タスク又はオーバーライド・トリガー・イベントのいずれかが完了するまで、コンピューティング・デバイスの第2の電力モードへの遷移が遅延又は延期され得ることを示す。1つの実施態様において、コンピューティング・デバイスの第2の電力モードへの遷移を遅延することは、上記で説明されるように、非対話式タスクの完了のために推定されたシステム・リソースの量(ブロック408を参照)又は非対話式タスクにより消費されるシステム・リソースの量がシステム・リソースしきい値(複数可)を超過する場合、要求された非対話式タスクの実行を中止すること、及びコンピューティング・デバイスを第2の電力モードに入れることを含むことができる。さまざまな実施態様において、コンピューティング・デバイスの第2の電力モードへの遷移を遅延することは、しきい値が超過される場合にコンピューティング・デバイスを第2の電力モードに遷移することを含むことができる。加えて、システム・リソース又は完了時間に関するしきい値が超過されない場合、要求された非対話式タスクは実行されてもよく、上記で説明されるように、要求された非対話式タスク又はオーバーライド・トリガー・イベントのいずれかが完了するまで、コンピューティング・デバイスの第2の電力モードへの遷移は遅延されてもよい。さまざまな実施態様において、コンピューティング・デバイスの第2の電力モードへの遷移を遅延することは、上記で説明されるように、システム・リソースに大幅な変化が生じたときを検出すること、システム・リソースの大幅な変化がオーバーライド・トリガー・イベントであるかどうかを決定すること、及びオーバーライド・トリガー・イベントが生じた場合、コンピューティング・デバイスを第2の電力モードに遷移することを含むことができる。特定の実施態様において、システム・リソースの大幅な変化は、上記で説明されるように、コンピューティング・デバイスが第1のネットワークを出て、第2のネットワークに加わることを含む。さらにもう1つの実施態様において、コンピューティング・デバイスの第2の電力モードへの遷移を遅延することは、上記で説明されるように、コンピューティング・デバイスを第3の電力モードに入れることを含むことができ、第3の電力モードは、第1の電力モードよりも少ないシステム・リソースを消費するが、第2の電力モードよりも多くのシステム・リソースを消費し、非対話式タスクの実行を容易にする。さまざまな実施態様において、このブロックにより示されるアクション(複数可)の1つ以上は、上記で説明されるように、図1又は図5の装置又はシステム、図1の電力マネージャによって実行されてもよい。
【００９５】
ブロック412は、1つの実施態様において、上記で説明されるように、コンピューティング・デバイスが第2の電力モードに遷移され得るか、又は入れられ得ることを示す。一部の実施態様において、これは、上記で説明されるように、第2の電力モードへの遷移を遅延することが望ましくないために生じてもよい。もう1つの実施態様において、これは、上記で説明されるように、非対話式タスクがその実行を完了したか、又はオーバーライド・トリガー・イベントが発生したために生じてもよい。さまざまな実施態様において、このブロックにより示されるアクション(複数可)の1つ以上は、上記で説明されるように、図1又は図5の装置又はシステム、図1の電力マネージャによって実行されてもよい。
【００９６】
ブロック414は、1つの実施態様において、上記で説明されるように、コンピューティング・デバイスを第1の(又は別の)電力モードに入れるよう求める要求が検出され得ることを示す。そのような実施態様において、この要求は、上記で説明されるように、非対話式タスクの完了に先立って生じてもよい。さまざまな実施態様において、この要求は、上記で説明されるように、オーバーライド・トリガー・イベントと見なされてもよい。さまざまな実施態様において、このブロックにより示されるアクション(複数可)の1つ以上は、上記で説明されるように、図1又は図5の装置又はシステム、図1の電力マネージャによって実行されてもよい。
【００９７】
ブロック416は、1つの実施態様において、上記で説明されるように、コンピューティング・デバイスを第2の電力モードに入れるよう求める要求が撤回又は無視され得ることを示す。さまざまな実施態様において、このブロックにより示されるアクション(複数可)の1つ以上は、上記で説明されるように、図1又は図5の装置又はシステム、図1の電力マネージャによって実行されてもよい。
【００９８】
ブロック418は、1つの実施態様において、上記で説明されるように、コンピューティング・デバイスが第1の電力モードに入れられ得るか、又は遷移され得ることを示す。そのような実施態様において、これが行われ得るのは、たとえば上記で説明されるように、第2の電力モードの延期中にコンピューティング・デバイスが第3の電力モードに入れられた場合のような、コンピューティング・デバイスがまだ第1の電力モードではない場合に限られる。さまざまな実施態様において、このブロックにより示されるアクション(複数可)の1つ以上は、上記で説明されるように、図1又は図5の装置又はシステム、図1の電力マネージャによって実行されてもよい。
【００９９】
図5は、本明細書において説明される技法と共に使用され得る、汎用コンピュータ・デバイス500及び汎用モバイル・コンピュータ・デバイス550の例を示す。コンピューティング・デバイス500は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレード・サーバ、メインフレーム、及びその他の適切なコンピュータのような、さまざまな形態のデジタル・コンピュータを表すことが意図される。コンピューティング・デバイス550は、携帯情報端末、セルラー電話、スマートフォン、及びその他の類似するコンピューティング・デバイスのような、さまざまな形態のモバイル・デバイスを表すことが意図される。本明細書において示されるコンポーネント、それらの接続及び関係、並びにそれらの機能は、例示として示されているに過ぎず、本書において説明及び/又は記載される本発明の実施態様を限定することを意図されていない。
【０１００】
コンピューティング・デバイス500は、プロセッサ502、メモリ504、ストレージ・デバイス506、メモリ504及び高速拡張ポート510への高速インターフェイス508接続、並びに低速バス514及びストレージ・デバイス506に接続する低速インターフェイス512を含む。コンポーネント502、504、506、508、510、及び512の各々は、さまざまなバスを使用して相互接続され、共通のマザーボード上に、又は必要に応じてその他の方法で、搭載されてもよい。プロセッサ502は、高速インターフェイス508に結合されたディスプレイ516のような、外部入出力デバイス上のGUIにグラフィカル情報を表示するための、メモリ504又はストレージ・デバイス506に格納されている命令を含む、コンピューティング・デバイス500内で実行するための命令を処理することができる。その他の実施態様において、複数のプロセッサ及び/又は複数のバスが、必要に応じて、複数のメモリ及びメモリのタイプと共に使用されてもよい。また、複数のコンピューティング・デバイス500は、各々のデバイスが必要な動作の一部を提供するように(たとえば、サーバ・バンク、ブレード・サーバのグループ、又はマルチプロセッサ・システムとして)、接続されてもよい。
【０１０１】
メモリ504は、コンピューティング・デバイス500内に情報を格納する。1つの実施態様において、メモリ504は揮発性メモリ・ユニット(複数可)である。もう1つの実施態様において、メモリ504は不揮発性メモリ・ユニット(複数可)である。メモリ504はまた、磁気又は光ディスクのような、別の形態のコンピュータ可読媒体であってもよい。
【０１０２】
ストレージ・デバイス506は、コンピューティング・デバイス500に大容量ストレージを提供することができる。1つの実施態様において、ストレージ・デバイス506は、フロッピー・ディスク・デバイス、ハードディスク・デバイス、光ディスク・デバイス、又はテープ・デバイス、フラッシュ・メモリ、又はその他の類似するソリッドステート・メモリ・デバイス、若しくはストレージ・エリア・ネットワーク又はその他の構成のデバイスを含むデバイスのアレイのような、コンピュータ可読媒体であってもよいか、又はコンピュータ可読媒体を含むことができる。コンピュータ・プログラム製品は、情報担体において有形に具現されてもよい。コンピュータ・プログラム製品はまた、実行されるとき、上記で説明されるような、1つ以上の方法を実行する命令を含むこともできる。情報担体は、メモリ504、ストレージ・デバイス506、又はプロセッサ502上のメモリのような、コンピュータ又は機械可読の媒体である。
【０１０３】
高速コントローラ508は、コンピューティング・デバイス500の帯域幅集約的な動作を管理し、低速コントローラ512は、あまり帯域幅集約的ではない動作を管理する。そのような機能の割り振りは、例示的なものに過ぎない。1つの実施態様において、高速コントローラ508は、メモリ504、ディスプレイ516(たとえば、グラフィック・プロセッサ又はアクセラレータを通じて)、及びさまざまな拡張カード(図示せず)を受け入れることができる高速拡張ポート510に結合される。その実施態様において、低速コントローラ512は、ストレージ・デバイス506及び低速拡張ポート514に結合される。さまざまな通信ポート(たとえば、USB、ブルートゥース、イーサネット、無線イーサネット)を含むことができる低速拡張ポートは、キーボード、ポインティング・デバイス、スキャナのような1つ以上の入出力デバイス、若しくは、たとえばネットワーク・アダプタを通じてスイッチ又はルータのようなネットワーキング・デバイスに結合されてもよい。
【０１０４】
コンピューティング・デバイス500は、図面に示されるように、多数のさまざまな形態で実施されてもよい。たとえば、コンピューティング・デバイス500は、標準サーバ520として実施されてもよいか、又はそのようなサーバのグループで複数回実施されてもよい。またラック・サーバ・システム524の一部として実施されてもよい。加えて、コンピューティング・デバイス500は、ラップトップ・コンピュータ522のような、パーソナル・コンピュータで実施されてもよい。或いは、コンピューティング・デバイス500からのコンポーネントは、デバイス550のようなモバイル・デバイス(図示せず)のその他のコンポーネントと組み合わされてもよい。そのようなデバイスの各々は、コンピューティング・デバイス500、550の1つ以上を含むことができ、システム全体は、相互に通信する複数のコンピューティング・デバイス500、550で構成されてもよい。
【０１０５】
コンピューティング・デバイス550は、他のコンポーネントの中でも特に、プロセッサ552、メモリ564、ディスプレイ554のような入出力デバイス、通信インターフェイス566、及び送受信機568を含む。デバイス550はまた、追加のストレージを提供するため、マイクロドライブ又はその他のデバイスのようなストレージ・デバイスが設けられてもよい。コンポーネント550、552、564、554、566、及び568の各々は、さまざまなバスを使用して相互接続され、いくつかのコンポーネントは、共通のマザーボード上に、又は必要に応じてその他の方法で、搭載されてもよい。
【０１０６】
プロセッサ552は、メモリ564に格納されている命令を含む、コンピューティング・デバイス550内の命令を実行することができる。プロセッサは、個別及び複数のアナログ及びデジタル・プロセッサを含むチップのチップセットとして実施されてもよい。プロセッサは、たとえば、ユーザインターフェイスの制御、デバイス550により実行されるアプリケーション、デバイス550による無線通信のような、デバイス550のその他のコンポーネントの調整をもたらすことができる。
【０１０７】
プロセッサ552は、ディスプレイ554に結合された制御インターフェイス558及びディスプレイ・インターフェイス556を通じてユーザと通信することができる。ディスプレイ554は、たとえば、TFT LCD(薄膜トランジスタ液晶ディスプレイ:Thin-Film-Transistor Liquid Crystal Display)又はOLED(有機発光ダイオード:Organic Light Emitting Diode)ディスプレイであってもよいか、又はその他の適切なディスプレイ技術であってもよい。ディスプレイ・インターフェイス556は、グラフィカル及びその他の情報をユーザに提示するためにディスプレイ554を駆動する適切な回路を備えることができる。制御インターフェイス558は、ユーザからコマンドを受信して、それらをプロセッサ552への送信のために変換する。加えて、プロセッサ552と通信する外部インターフェイス562は、デバイス550のその他のデバイスとの近隣エリア通信を可能にするように提供される。外部インターフェイス562は、たとえば、一部の実施態様において有線通信、又はその他の実施態様において無線通信のために提供することができ、複数のインターフェイスが使用されてもよい。
【０１０８】
メモリ564は、コンピューティング・デバイス550内に情報を格納する。メモリ564は、コンピュータ可読媒体(複数可)、揮発性メモリ・ユニット(複数可)、又は不揮発性メモリ・ユニット(複数可)のうちの1つ以上として実施されてもよい。拡張メモリ574もまた提供されて、たとえばSIMM(Single In Line Memory Module)カード・インターフェイスを含むことができる拡張インターフェイス572を通じてデバイス550に接続されてもよい。そのような拡張メモリ574は、デバイス550に特別なストレージ・スペースをもたらすことができるか、又はデバイス550のアプリケーション又はその他の情報を格納することもできる。具体的には、拡張メモリ574は、上記で説明されるプロセスを実行又は補足するための命令を含むことができ、安全な情報も含むことができる。従って、たとえば、拡張メモリ574は、デバイス550のセキュリティ・モジュールとして提供されてもよく、デバイス550の安全な使用を可能にする命令でプログラムされてもよい。加えて、安全なアプリケーションは、ハッキング不可能な方法でSIMMカード上に識別情報を置くことなど、追加の情報と共にSIMMカードを介して提供されてもよい。
【０１０９】
メモリは、以下で説明されるように、たとえば、フラッシュ・メモリ及び/又はNVRAMメモリを含むことができる。1つの実施態様において、コンピュータ・プログラム製品は、情報担体において有形に具現されてもよい。コンピュータ・プログラム製品は、実行されるとき、上記で説明されるような、1つ以上の方法を実行する命令を含む。情報担体は、メモリ564、拡張メモリ574、又はプロセッサ552上のメモリのような、たとえば送受信機568又は外部インターフェイス562を介して受信され得るコンピュータ又は機械可読の媒体である。
【０１１０】
デバイス550は、必要に応じてデジタル信号処理回路を含むことができる通信インターフェイス566を通じて無線で通信することができる。通信インターフェイス566は、特に、GSMボイスコール、SMS、EMS、又はMMSメッセージング、CDMA、TDMA、PDC、WCDMA、CDMA2000、又はGPRSのような、さまざまなモード又はプロトコルの下での通信をもたらすことができる。そのような通信は、たとえば、無線周波数送受信機568を通じて行うことができる。加えて、ブルートゥース、WiFi、又はその他のそのような送受信機(図示せず)を使用するなど、狭域通信が行われてもよい。加えて、GPS(全地球測位システム:Global Positioning System)受信機モジュール570は、追加のナビゲーション及びロケーション関連の無線データをデバイス550に提供することができ、このデータは、デバイス550で稼働するアプリケーションにより適切に使用されてもよい。
【０１１１】
デバイス550はまた、ユーザからの口頭の情報を受信して、それを使用可能なデジタル情報に変換することができるオーディオ・コーデック560を使用して、音声で通信することもできる。オーディオ・コーデック560は、同様に、デバイス550のハンドセットのスピーカを通じてなど、ユーザに可聴音を生成することができる。そのような音声は、音声電話コールからの音声を含むことができ、録音済み音声(たとえば、ボイス・メッセージ、音楽ファイルなど)を含むことができ、またデバイス550で動作するアプリケーションにより生成される音声を含むこともできる。
【０１１２】
コンピューティング・デバイス550は、図面に示されるように、多数のさまざまな形態で実施されてもよい。たとえば、コンピューティング・デバイス550は、セルラー電話580として実施されてもよい。また、コンピューティング・デバイス550は、スマートフォン582、携帯情報端末、又はその他の類似するモバイル・デバイスの一部として実施されてもよい。
【０１１３】
本明細書において説明されるシステム及び技法のさまざまな実施態様は、デジタル電子回路、集積回路、専用に設計されたASIC(特殊用途向け集積回路)、コンピュータ・ハードウェア、ファームウェア、及び/又はその組み合わせにおいて実現されてもよい。それらのさまざまな実施態様は、ストレージ・システム、少なくとも1つの入力デバイス、及び少なくとも1つの出力デバイスとの間でデータ及び命令を受信及び送信するために結合された、特殊又は汎用用途であってもよい、少なくとも1つのプログラマブル・プロセッサを含むプログラマブル・システムで実行可能及び/又は解釈可能である1つ以上のコンピュータ・プログラムにおける実施態様を含むことができる。
【０１１４】
それらのコンピュータ・プログラム(プログラム、ソフトウェア、ソフトウェア・アプリケーション、又はコードとしても知られる)は、プログラマブル・プロセッサのための機械命令を含み、高水準プロシージャ型及び/又はオブジェクト指向プログラミング言語、及び/又はアセンブリ/機械言語で実施されてもよい。本明細書において使用されるように「機械可読媒体」、「コンピュータ可読媒体」という用語は、機械命令を機械可読信号として受信する機械可読媒体を含む、プログラマブル・プロセッサに機械命令及び/又はデータを提供するために使用される、任意のコンピュータ・プログラム製品、装置及び/又はデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブル論理デバイス(PLD:Programmable Logic Device))を示す。「機械可読信号」という用語は、機械命令及び/又はデータをプログラマブル・プロセッサに提供するために使用される任意の信号を示す。
【０１１５】
ユーザとの対話を提供するため、本明細書において説明されるシステム及び技法は、情報をユーザに表示するためのディスプレイ・デバイス(たとえば、CRT(陰極線管:cathode ray tube)又はLCD(液晶ディスプレイ:liquid crystal display)モニタ)、並びにユーザが入力をコンピュータに提供することができるキーボード及びポインティング・デバイス(たとえば、マウス又はトラックボール)を有するコンピュータで実施されてもよい。その他の種類のデバイスがユーザとの対話を提供するために使用されてもよく、たとえば、ユーザに提供されるフィードバックは任意の形態の感知フィードバック(たとえば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、ユーザからの入力は、音響、音声、又は触覚入力を含む任意の形態で受信されてもよい。
【０１１６】
コンピューティング・システムは、クライアント及びサーバを含むことができる。クライアント及びサーバは一般に、相互に離れており、通常は通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータで稼働し、相互にクライアント-サーバの関係を有するコンピュータ・プログラムにより生じる。
【０１１７】
いくつかの実施態様が説明された。しかし、本発明の精神及び範囲を逸脱することなくさまざまな変更が行われてもよいことが理解されよう。
【０１１８】
加えて、図面に示される論理フローは、所望の結果を達成するために、示されている特定の順序、又は一連の順序を必要とはしない。加えて、その他のステップが提供されてもよいか、又は説明されているフローからステップが除去されてもよく、説明されているシステムにその他のコンポーネントが追加されてもよいか、又は削除されてもよい。したがって、その他の実施態様は、後段の特許請求の範囲に含まれる。
【図１】
0005647645.tif 000002
【図２】
0005647645.tif 000003
【図３】
0005647645.tif 000004
【図４】
0005647645.tif 000005
【図５】
0005647645.tif 000006