(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイスの消費電力を低減するための方法であって、
前記コンピューティングデバイスが、第１のハードウェアコンポーネントのための第１のオペレーションを実行すること、を検出するステップと、
前記コンピューティングデバイスが、一定期間の最中に、第２のハードウェアコンポーネントのための第２のオペレーションを実行しないこと、を判断するステップと、
前記第１のオペレーションに対応するオペレーションデータを、不揮発性ストレージデバイスから前記コンピューティングデバイスのプロセッサキャッシュの中へロードするステップと、
前記第１のオペレーションは、揮発性ストレージデバイスからのメモリデータをリクエストしないこと、を検出するステップと、
前記揮発性ストレージデバイスを含む少なくとも一つのストレージデバイスから電力供給を取り除くステップと、
前記揮発性ストレージデバイスから電気供給を取り除く一方で、前記プロセッサキャッシュを介して前記第１のオペレーションを実行するステップと、
を含む、方法。
【請求項２】
前記方法は、さらに、
前記揮発性ストレージデバイスから電力供給を取り除く以前に、メモリデータを前記揮発性ストレージデバイスから前記不揮発性ストレージデバイスへ転送するステップ、
を含む、請求項１に記載の方法。
【請求項３】
前記第１のオペレーションは、オーディオファイル再生またはビデオ再生のうち一つを含む、
請求項１に記載の方法。
【請求項４】
前記揮発性ストレージデバイスから電力供給を取り除くことは、前記揮発性ストレージデバイスのリフレッシュレートを低減することを含む、
請求項１乃至３いずれか一項に記載の方法。
【請求項５】
前記方法は、さらに、
前記コンピューティングデバイスが、一定期間の最中に、第２のハードウェアコンポーネントのための第２のオペレーションを実行すること、を検出するステップと、
前記揮発性ストレージデバイスに対して電力供給を提供するステップと、
前記メモリデータを前記不揮発性ストレージデバイスから前記揮発性ストレージデバイスの中へロードするステップと、
を含む、請求項１乃至３いずれか一項に記載の方法。
【請求項６】
前記第１のオペレーションは、
バックアップオペレーションを実行するリクエストを検出するステップと、
リクエストされたデータを前記不揮発性ストレージデバイスからバックアップデバイスへ送付するステップと、
を含む、請求項１乃至３いずれか一項に記載の方法。
【請求項７】
前記方法は、さらに、
前記第１のオペレーションがセンサハブに対応していること、を検出するステップと、
前記センサハブに対する電力供給のフローを停止するステップと、
を含む、請求項１に記載の方法。
【請求項８】
前記少なくとも一つのストレージデバイスは、前記不揮発性ストレージデバイスを含む、
請求項１に記載の方法。
【請求項９】
消費電力を低減するためのシステムであって、
処理ロジックの実行可能なインストラクションを保管するための不揮発性ストレージデバイスと、
前記処理ロジックの実行可能なインストラクションのコピーを保管するための揮発性ストレージデバイスと、
前記処理ロジックの実行可能なインストラクションのコピーを保管するためのキャッシュと、
前記処理ロジックと、を含み、
前記処理ロジックは、
前記システムが、第１のハードウェアコンポーネントのための第１のオペレーションを実行すること、を検出し、
前記システムが、一定期間の最中に、第２のハードウェアコンポーネントのための第２のオペレーションを実行しないこと、を判断し、
前記第１のオペレーションに対応するオペレーションデータを、前記不揮発性ストレージデバイスから前記システムの前記キャッシュの中へロードし、
前記第１のオペレーションは、前記揮発性ストレージデバイスからのメモリデータをリクエストしないこと、を検出し、
前記揮発性ストレージデバイスを含む少なくとも一つのストレージデバイスに対する電力供給を取り除き、かつ、
前記揮発性ストレージデバイスから電気供給を取り除く一方で、前記キャッシュを介して前記第１のオペレーションを実行する、
システム。
【請求項１０】
前記処理ロジックは、さらに、
前記揮発性ストレージデバイスから電力供給を取り除く以前に、メモリデータを前記揮発性ストレージデバイスから前記不揮発性ストレージデバイスの中に保管する、
請求項９に記載のシステム。
【請求項１１】
前記第１のオペレーションは、オーディオファイル再生またはビデオ再生のうち一つを含む、
請求項９に記載のシステム。
【請求項１２】
前記少なくとも一つのストレージデバイスは、前記不揮発性ストレージデバイスを含む、
請求項９乃至１１いずれか一項に記載のシステム。
【請求項１３】
前記処理ロジックは、さらに、
前記システムが、一定期間の最中に、第２のハードウェアコンポーネントのための第２のオペレーションを実行すること、を検出し、
前記揮発性ストレージデバイスに対して電力供給を提供し、かつ、
前記メモリデータを前記不揮発性ストレージデバイスから前記揮発性ストレージデバイスの中へロードする、
請求項９乃至１１いずれか一項に記載のシステム。
【請求項１４】
前記処理ロジックは、さらに、
バックアップオペレーションを実行するリクエストを検出し、かつ、
リクエストされたデータを前記不揮発性ストレージデバイスからバックアップデバイスへ送付する、
請求項９乃至１１いずれか一項に記載のシステム。
【請求項１５】
前記処理ロジックは、さらに、
前記第１のオペレーションがセンサハブに対応していること、を検出し、かつ、
前記センサハブに対する電力供給のフローを停止する、
請求項９に記載のシステム。
【請求項１６】
複数のインストラクションを含むコンピュータプログラムであって、コンピューティングデバイス上で実行されると、前記コンピューティングデバイスは、
前記コンピューティングデバイスが、第１のハードウェアコンポーネントのための第１のオペレーションを実行すること、を検出し、
前記コンピューティングデバイスが、一定期間の最中に、第２のハードウェアコンポーネントのための第２のオペレーションを実行しないこと、を判断し、
前記第１のオペレーションに対応するオペレーションデータを、不揮発性ストレージデバイスから前記コンピューティングデバイスのキャッシュの中へロードし、
前記第１のオペレーションは、揮発性ストレージデバイスからのメモリデータをリクエストしないこと、を検出し、
前記揮発性ストレージデバイスを含む少なくとも一つのストレージデバイスから電力供給を取り除き、かつ、
前記揮発性ストレージデバイスから電気供給を取り除く一方で、前記キャッシュを介して前記第１のオペレーションを実行する、
コンピュータプログラム。
【請求項１７】
前記少なくとも一つのストレージデバイスは、前記不揮発性ストレージデバイスを含む、
請求項１６に記載のコンピュータプログラム。
【請求項１８】
前記コンピューティングデバイスは、さらに、
前記コンピューティングデバイスが、一定期間の最中に、第２のハードウェアコンポーネントのための第２のオペレーションを実行すること、を検出し、
前記揮発性ストレージデバイスに対して電力供給を提供し、かつ、
前記メモリデータを前記不揮発性ストレージデバイスから前記揮発性ストレージデバイスの中へロードする、
請求項１６または１７に記載のコンピュータプログラム。
【請求項１９】
前記コンピューティングデバイスは、さらに、
バックアップオペレーションを実行するリクエストを検出し、かつ、
リクエストされたデータを前記不揮発性ストレージデバイスからバックアップデバイスへ送付する、
請求項１６または１７に記載のコンピュータプログラム。
【請求項２０】
前記コンピューティングデバイスは、さらに、
前記第１のオペレーションがセンサハブに対応していること、を検出し、かつ、
前記センサハブに対する電力供給のフローを停止する、
請求項１６に記載のコンピュータプログラム。
【請求項２１】
消費電力を低減するための装置であって、
処理ロジックの実行可能なインストラクションを保管するためのキャッシュと、
前記処理ロジックと、を含み、
前記処理ロジックは、
前記装置が、第１のハードウェアコンポーネントのための第１のオペレーションを実行すること、を検出し、
前記装置が、一定期間の最中に、第２のハードウェアコンポーネントのための第２のオペレーションを実行しないこと、を判断し、
前記第１のオペレーションに対応するオペレーションデータを、不揮発性ストレージデバイスから前記装置の前記キャッシュの中へロードし、
前記第１のオペレーションは、揮発性ストレージデバイスからのメモリデータをリクエストしないこと、を検出し、
前記揮発性ストレージデバイスを含む少なくとも一つのストレージデバイスに対する電力供給を取り除き、かつ、
前記揮発性ストレージデバイスから電気供給を取り除く一方で、前記キャッシュを介して前記第１のオペレーションを実行する、
装置。
【請求項２２】
前記少なくとも一つのストレージデバイスは、前記不揮発性ストレージデバイスを含む、
請求項２１に記載の装置。
【請求項２３】
請求項１６乃至２０いずれか一項に記載のコンピュータプログラムを記憶した、
コンピュータで読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明開示は、一般的に、コンピューティングデバイスにおける消費電力の低減に関する。そして、より特定的には、排他的ではなく、コンピューティングデバイスの消費電力を低減することに関する。
【背景技術】
【０００２】
現代のコンピューティングデバイスの複雑性が継続して増加するのにつれて、コンピューティングデバイスは、インストラクションを実行するために追加的な電力を消費している。いくつかの実施例において、コンピューティングデバイスは、コンピューティングデバイスの中に含まれているハードウェアコンポーネントの数量が増えていることに対して、インストラクションを実行するために追加的な電力を消費し得る。コンピューティングデバイスは、また、多重のオペレーションを並行して実行してよく、それがコンピューティングデバイスの消費電力を増加させ得る。従って、多くのコンピューティングデバイスは、一つの期間内にあらゆる適切な数量のコンポーネントに対するオペレーションを実行するために、大量の電力を消費し得るものである。
【０００３】
本出願は、米国特許非仮出願第１４／０４０２８４号、ドケット番号Ｐ５７９０６で２０１３年９月２７日に出願されたもの、について優先権を主張するものである。その明細書の全体は、全ての目的のために、ここにおいて、その全体が参照として包含されている。
【図面の簡単な説明】
【０００４】
以降の詳細な説明は、添付の図面を参照することによってより良く理解され得る。図面は、開示される技術的事項の数多くの特徴に係る特定の実施例を含んでいる。
【図１】図１は、ハードウェアコンポーネントに対して電力供給をオフすることによって消費電力を低減することができるコンピューティングシステムの一つの実施例に係るブロックダイヤグラムである。
【図２】図２は、ハードウェアコンポーネントに対して電力供給をオフすることによって消費電力を低減するための一つの実施例の方法に係るプロセスフロー図である。
【図３】図３は、ハードウェアコンポーネントに対する電力供給を回復させるための一つの実施例の方法に係るプロセスフロー図である。
【図４】図４は、メモリデバイスなしでオペレーションすることによって消費電力を低減することができるコンピューティングデバイスの一つの実施例に係るブロックダイヤグラムである。
【図５】図５は、ハードウェアコンポーネントに対して電力供給をオフすることによって消費電力を低減することができる、有形で、非一時的なコンピュータで読取り可能な媒体の一つの実施例を示すブロックダイヤグラムである。
【発明を実施するための形態】
【０００５】
ここにおいて説明される技術的事項に係る実施例に従って、コンピューティングデバイスは、特には、揮発性メモリデバイスに対する電力供給を取り除く一方で、直接的にストレージデバイスからのデータにアクセスすることによって消費電力を低減することができる。いくつかの実施例において、コンピューティングデバイスは、プロセッサキャッシュからオペレーションを実行する一方で、揮発性メモリデバイスに対する消費電力を低減することができる。揮発性メモリは、ここにおいて言及されるように、電力なしでは永続的にデータを保管することができないあらゆる適切なメモリデバイスを含んでよい。例えば、揮発性メモリは、あらゆる適切なタイプのランダムアクセスメモリ（ここにおいてＲＡＭとしても参照されるもの）を含んでよい、ダイナミックＲＡＭといったもの、などである。いくつかの実施例において、コンピューティングデバイスは、プロセッサが一定期間についてオーディオオペレーションを実行することを検出したことに応じて、揮発性メモリデバイスに対する電力供給の提供を停止することができる。いくつかの実施例において、コンピューティングデバイスは、オーディオオペレーションのためデータを直接的にプロセッサに対して送付することができ、かつ、プロセッサは、オーディオデバイスに対して直接的にデータを送信することができる。
【０００６】
開示される技術的事項に係る「一つの実施例」または「実施例」に対するこの明細書における言及は、実施例に関して説明される所定の特徴、構成、または、特性が、開示される技術的実行の少なくとも一つの実施例に含まれることを意味するものである。従って、「一つの実施例において」というフレーズが明細書の全体に渡って現れ得るが、そのフレーズは、必ずしも同一の実施例を参照しなくてよい。
【０００７】
図１は、ハードウェアコンポーネントに対して電力供給をオフすることによって消費電力を低減することができるコンピューティングシステムの一つの実施例に係るブロックダイヤグラムである。コンピューティングデバイス１００は、例えば、コンピューティングフォン、ラップトップコンピュータ、デスクトップコンピュータ、または、タブレットコンピュータ、などであってよい。コンピューティングデバイス１００は、保管されたインストラクションを実行するように適合されたプロセッサ１０２を含んでよい。プロセッサ１０２によって実行可能なインストラクションまたはインストラクションのコピーを保管するメモリデバイス（ここにおいて揮発性ストレージデバイスまたは揮発性メモリデバイスとしても参照されるもの）も同様である。プロセッサ１０２は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスタ、または、あらゆる数の他のコンフィグレーションであってよい。いくつかの実施例において、プロセッサ１０２は、メモリデバイス１０４からインストラクションまたはインストラクションのコピーを受け取り、そして、プロセッサキャッシュ（ここにおいてキャッシュとしても参照されるもの）の中にそのインストラクションまたはインストラクションのコピーを保管することができる。メモリデバイス１０４は、ランダムアクセスメモリ、読出し専用メモリ、フラッシュメモリ、または、あらゆる他の適切なメモリシステムを含んでよい。いくつかの実施例において、メモリデバイス１０４は、揮発性メモリデバイスであってよい。プロセッサ１０２によって実行されるインストラクションは、コンピューティングデバイスの消費電力を低減することができる方法を実施するために使用され得る。
【０００８】
プロセッサ１０２は、システム相互接続１０８（例えば、ＰＣＩ（Ｒ）、ＰＣＩ−Ｅｘｐｒｅｓｓ（Ｒ）、等）を通じて、入力／出力（Ｉ／Ｏ）デバイスインターフェイス１０に対して接続され得る。コンピューティングデバイス１００を一つまたはそれ以上のＩ／Ｏデバイス１１２に対して接続するように適合されたものである。Ｉ／Ｏデバイス１１２は、例えば、キーボードとポインティングデバイスを含んでよい。ここで、ポインティングデバイスは、タッチパッドまたはタッチスクリーン、などを含んでよい。
【０００９】
プロセッサ１０２は、また、システム相互接続１０８を通じて、コンピューティングデバイス１００をディスプレイデバイス１１６に対して接続するように適合されたディスプレイインターフェイス１１４に対しても接続され得る。ディスプレイデバイス１１６は、コンピューティングデバイス１００のビルトインコンポーネントであるディスプレイスクリーンを含んでよい。ディスプレイデバイス１１６は、また、コンピュータモニタ、テレビジョン、または、プロジェクタ、なども含んでよい。コンピューティングデバイス１００に対して外部接続されるものである。加えて、ネットワークインターフェイスコントローラ（ここにおいてＮＩＣとしても参照されるもの）１１８は、システム相互接続１０８を通じて、コンピューティングデバイス１００をネットワーク（図示なし）に対して接続するように適合されてよい。ネットワーク（図示なし）は、セルラーネットワーク、ラジオネットワーク、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、または、インターネット、などであってよい。
【００１０】
プロセッサ１０２は、また、システム相互接続１０８を通じて、あらゆる適切な数量のセンサ１２２を含んでいるセンサハブ（ｓｅｎｓｏｒ  ｈｕｂ）１２０に対してもリンクされ得る。例えば、センサ１２２は、加速度計、磁力計、ジャイロスコープ、近傍センサ、および、ＧＰＳセンサ、などを含んでよい。いくつかの実施例において、センサ１２２は、コンピューティングデバイス１００の環境に関する種々の測定を検出することができる。コンピューティングデバイス１００の位置、または、コンピューティングデバイス１００が移動中であるか、といったものである。
【００１１】
プロセッサ１０２は、また、システム相互接続１０８を通じて、マルチメディアロジック１２４に対してもリンクされ得る。いくつかの実施例において、マルチメディアロジック１２４は、オーディオ及び/又はビデオ出力を生成することができる。例えば、マルチメディアロジック１２４は、プロセッサ１０２からオーディオまたはビデオ出力に関するデータを受け取ってよく、そして、マルチメディアロジック１２４は、オーディオまたはビデオが再生できるようにデータを処理することができる。
【００１２】
プロセッサ１０２は、また、システム相互接続１０８を通じて、ストレージデバイス（ここにおいて不揮発性ストレージデバイスとしても参照されるもの）１２６に対してもリンクされ得る。ハードドライブ、光ドライブ、ＵＳＢフラッシュメモリ、ドライブのアレイ、または、これらのあらゆる組み合せ、を含み得るものである。ストレージデバイス１２６は、電力削減モジュール１２８を含んでよい。いくつかの実施例において、電力削減モジュール１２８は、システム相互接続１０８を通じて、プロセッサ１０２に対して送信されるデータをモニタすることができる。電力削減モジュール１２８が、第１のハードウェアデバイスのための第１のオペレーションがプロセッサ１０２に対して送信されたと判断する場合に、電力削減モジュール１２８は、メモリデバイス１０４、などといった、第２のハードウェアコンポーネントに対して電力供給をオフすべきことを示してよい。例えば、電力削減モジュール１２８は、一定期間にわたりプロセッサ１０２に対して送信されたデータがマルチメディアロジック１２４によって実行されるべきオペレーションに関するものであることを検出することができる。電力削減モジュール１２８は、また、一定期間にわたりプロセッサ１０２に対して送信されたデータがマルチメディアロジック１２４以外のハードウェアコンポーネントによって実行されるべきオペレーションに関するものではないことも検出することができる。いくつかの実施例において、電力削減モジュール１２８は、メモリデバイス１０４の電力供給をオフまたはリフレッシュレートを低減することができる。電力削減モジュール１２８は、ダイレクトメモリアクセスチャンネル１３０又はあらゆる他の適切なダイレクト入力／出力相互接続を通じて、マルチメディアロジック１２４によって実行されるべきオペレーションに関するデータをプロセッサキャッシュ１０６に対して直接的に送信し得る。いくつかの実施例において、プロセッサキャッシュ１０６は、また、ダイレクトメモリアクセスチャンネル１３２又はあらゆる他の適切なダイレクト入力／出力相互接続を通じて、マルチメディアロジック１２４に対して直接的にデータを送信し得る。
【００１３】
いくつかの実施例において、電力削減モジュール１２８は、また、メモリデバイス１０４に対する電力供給のフローを停止する以前に、メモリデバイス１０４の中のデータを送信してもよい。例えば、電力削減モジュール１２８は、メモリデバイス１０４が揮発性メモリデバイスであることを検出し得る。電力削減モジュール１２８は、メモリデバイス１０４の電力供給をオフまたはリフレッシュレートを変更する以前に、メモリデバイス１０４からのデータ（ここにおいてメモリデータとしても参照されるもの）をストレージデバイス１２６に対して転送し得る。電力削減モジュール１２８は、また、プロセッサ１０２が追加のオペレーションを実行することを電力削減モジュール１２８が一旦検出すると、メモリデータを、ストレージデバイス１２６からメモリデバイス１０４に対して転送してもよい。例えば、電力削減モジュール１２８は、プロセッサ１０２が、ディスプレイインターフェイス１１４、など、といったマルチメディアロジック１２４以外のハードウェアコンポーネントに関する追加のオペレーションを実行することを検出し得る。いくつかの実施例において、電力削減モジュール１２８は、また、プロセッサがマルチメディアロジック１２４といったハードウェアコンポーネントのためのオペレーションを実行するのを検出したことに応じて、センサハブ１２０とセンサ１２２に対する電力供給もオフし得る。
【００１４】
図１のブロックダイヤグラムは、コンピューティングデバイス１００が図１に示される全てのコンポーネントを含むことを示すように意図されたものではないことが理解されるべきである。むしろ、コンピューティングデバイス１００は、より少ないもの、または、図１に示されていない追加のコンポーネント（例えば、追加のメモリコンポーネント、エンベッドされたコントローラ、追加のモジュール、追加のネットワークインターフェイス、デジタル信号プロセッサ、等）を含むことができる。さらに、電力削減モジュール１２８のあらゆる機能性は、ハードウェア及び/又はプロセッサ１０２において、部分的に、または、全体的に実施されてよい。例えば、機能性は、特定用途向け集積回路を用いて、Ｉ／Ｏデバイス１１２において実施されるロジックにおいて、または、エンベッドされたコントローラにおいて実施されるロジック、などで実施され得る。いくつかの実施例においては、プロセッサ１０２が電力削減モジュール１２８のインストラクションを実行する際に、電力削減モジュール１２８のインストラクションが送信され、メモリデバイス１０４及び/又はプロセッサキャッシュ１０６の中に保管され得る。いくつかの実施例において、電力削減モジュール１２８の機能性は、処理ロジック（ｐｒｏｃｅｓｓｉｎｇ  ｌｏｇｉｃ）を用いて実施され得る。ここで、処理ロジックは、ここにおいて参照されるように、あらゆる適切なハードウェア（例えば、プロセッサ、など）、ソフトウェア（例えば、アプリケーション、など）、ファームウェア、または、ハードウェア、ソフトウェア、およびファームウェアのあらゆる適切な組み合わせを含み得る。
【００１５】
図２は、ハードウェアコンポーネントに対して電力供給をオフすることによって消費電力を低減するための一つの実施例の方法に係るプロセスフロー図である。方法２００は、図１のコンピューティングデバイス１００といった、あらゆる適切なコンピューティングデバイスを用いて実施され得る。
【００１６】
ブロック２０２において、電力削減モジュール１２８は、コンピューティングデバイスが第１のハードウェアコンポーネントのための第１のオペレーションを実行することを検出することができる。いくつかの実施例において、電力削減モジュール１２８は、プロセッサから追加のコンポーネントに対して送信されたデータをモニタすることができる。追加コンポーネントは、オーディオデバイス、ストレージデバイス、メモリデバイス、または、追加のハードウェアコンポーネント、といったものである。いくつかの実施例において、電力削減モジュール１２８は、コンピューティングデバイスのプロセッサキャッシュの中に保管されたデータをモニタすることができる。プロセッサキャッシュは、プロセッサが実行するあらゆる数量のインストラクションに関するあらゆる適切な量のデータを含んでよい。いくつかの実施例において、電力削減モジュール１２８は、プロセッサキャッシュの中に保管されたデータまたはプロセッサに対して送付されたデータが、第１のオペレーションに対応することを検出することができる。第１のオペレーションは、マルチメディアデータを処理すること、および、マルチメディアデータから結果として生じるビデオ及び/又はオーディオ出力を生成することを含んでよい。例えば、第１のオペレーションは、オーディオファイル再生またはビデオ再生を含んでよい。
【００１７】
ブロック２０４において、電力削減モジュール１２８は、一定期間の最中にコンピューティングデバイスが第２のハードウェアコンポーネントのための第２のオペレーションを実行しないと判断することができる。いくつかの実施例において、電力削減モジュール１２８は、第１のオペレーション以外のオペレーションに対応するデータがプロセッサキャッシュの中に保管されていないこと、または、プロセッサキャッシュに送付されてきていないことを検出することができる。いくつかの実施例において、電力削減モジュール１２８は、また、一式のオペレーションがプロセッサキャッシュの中に保管されていること、および、その一式のオペレーションは共通のハードウェアコンポーネントを含んでいることも判断することができる。例えば、オーディオフィードバックに関する一式のオペレーションは、オーディオロジック、またはマルチメディアロジックを含んでよい。いくつかの実施例において、電力削減モジュール１２８は、第２のハードウェアコンポーネントのための第２のオペレーションが既定の期間内にプロセッサによって実行されるべきでないことを判断し得る。いくつかの実施例において、既定の期間は、ストレージデバイス、または、あらゆる他の適切な不揮発性メモリデバイス、などにおいて保管された、あらゆる適切な数であってよい。
【００１８】
電力削減モジュール１２８が、コンピューティングデバイスが一定期間内に第２のハードウェアコンポーネントのための第２のオペレーションを実行すると判断した場合に、プロセスフローは、ブロック２０２に戻る。電力削減モジュール１２８が、コンピューティングデバイスが一定期間内に第２のハードウェアコンポーネントのための第２のオペレーションを実行しないと判断した場合に、プロセスフローは、ブロック２０６において継続する。
【００１９】
ブロック２０６において、電力削減モジュール１２８は、オペレーションに対応するオペレーションデータを、不揮発性ストレージデバイス、など、といったストレージデバイスから、プロセッサキャッシュの中へロードすることができる。オペレーションデータは、ここにおいて参照されるように、オペレーションの実行に関するあらゆる適切な量のデータを含んでよい。例えば、オペレーションデータは、オーディオ再生オペレーションのためのオーディオファイルに関するデータを含んでよい。いくつかの実施例において、電力削減モジュール１２８は、第１のオペレーションに対応するあらゆる適切な量のオペレーションデータをプロセッサキャッシュの中へロードすることができる。いくつかの実施例において、プロセッサは、揮発性メモリデバイスにアクセスすることなしに、プロセッサキャッシュから第１のオペレーションを実行し得る。プロセッサは、オペレーションデータをリクエストし、かつ、ストレージデバイス又はあらゆる他の適切な不揮発性メモリデバイスから直接的に第１のオペレーションに関するオペレーションデータを受け取ることができる。
【００２０】
ブロック２０８において、電力削減モジュール１２８は、第１のオペレーションがメモリデバイスからのメモリデータをリクエストしないことを検出することができる。いくつかの実施例において、電力削減モジュール１２８は、プロセッサキャッシュの中に保管されたデータに対するリクエストをモニタすることができる。例えば、電力削減モジュール１２８は、プロセッサキャッシュの中に保管されたインストラクションはストレージデバイスからのデータをリクエストし得るが、インストラクションはメモリデバイスからのデータをリクエストしなくてよいことを判断し得る。
【００２１】
ブロック２１０において、電力削減モジュール１２８は、少なくとも一つのストレージデバイスから電力供給を取り除くことができる。いくつかの実施例において、少なくとも一つのストレージデバイスは、メモリデバイス、不揮発性ストレージデバイス、または、これらのあらゆる組み合せ、を含み得る。いくつかの実施例において、電力削減モジュール１２８は、揮発性メモリデバイスから電力供給を取り除く以前に、揮発性メモリデバイスからのデータ（ここにおいてメモリデータとしても参照されるもの）をストレージデバイスの中に保管することができる。いくつかの実施例において、電力削減モジュール１２８は、また、プロセッサと揮発性メモリデバイスとの間、または、メモリコントローラと揮発性メモリデバイスとの間のシステム相互接続を通じて、データの送信を停止することもできる。いくつかの実施例において、電力削減モジュール１２８は、また、消費電力を低減するために、揮発性メモリデバイスのリフレッシュレートを低減するようにメモリコントローラに対して示すこともできる。
【００２２】
図２のプロセスフロー図は、方法２００のオペレーションが、ある特定の順序において実行されるべきであること、または、方法２００の全てのオペレーションがあらゆる場合において含まれるべきであることを示すように意図されたものではない。加えて、方法２００は、あらゆる適切な数の追加オペレーションを含んでよい。例えば、方法２００は、バックアップオペレーションを実行するリクエストを検出し、かつ、ストレージデバイスからバックアップデバイスへリクエストされたデータを送付する電力削減モジュール１２８を含み得る。いくつかの実施例において、電力削減モジュール１２８は、揮発性メモリデバイスから電力供給を取り除き、かつ、バックアップオペレーションを実行している一方で、ストレージデバイスからプロセッサキャッシュへ直接的にデータを送付することができる。さらに、いくつかの実施例において、電力削減モジュール１２８は、ネットワークインターフェイスカードからプロセッサキャッシュへ送信されたデータを検出し、かつ、ネットワークインターフェイスカードから送信されたデータがメモリデバイスの中に保管されたメモリデータをリクエストしないことを判断することができる。電力削減モジュール１２８は、また、メモリデバイスに対する電力供給を取り除くこともできる。加えて、電力削減モジュール１２８は、プロセッサキャッシュの中に保管されている圧縮されたデータを検出し、かつ、デジタル信号プロセッサまたはプロセッサが、その圧縮されたデータを復元して、復元されたデータをハードウェアコンポーネントへ送付するように判断することができる。
【００２３】
図３は、ハードウェアコンポーネントに対する電力供給を回復させるための一つの実施例の方法に係るプロセスフロー図である。方法３００は、図１のコンピューティングデバイス１００といった、あらゆる適切なコンピューティングデバイスを用いて実施され得るものである。
【００２４】
ブロック３０２において、電力削減モジュール１２８は、一定期間の最中に、第１のハードウェアデバイスのための第１のオペレーションと第２のハードウェアデバイスのための第２のオペレーションを実行することを検出することができる。いくつかの実施例において、電力削減モジュール１２８は、プロセッサキャッシュの中に保管されたインストラクションをモニタ、または、システム相互接続を介してプロセッサキャッシュに対して送信されるインストラクションをモニタすることができる。
【００２５】
ブロック３０４において、電力削減モジュール１２８は、揮発性メモリデバイスに対して電力を供給することができる。いくつかの実施例において、揮発性メモリデバイスに対して電力を供給することにより、第２のオペレーションを実行することができる。例えば、電力削減モジュール１２８は、第２のオペレーションが、揮発性メモリデバイスの中に保管されたデータに対するリクエストを含んでいると判断し得る。電力削減モジュール１２８は、揮発性メモリデバイスが以前に保管されたデータにアクセスして提供できるように、揮発性メモリデバイスに対して電力を供給することができる。
【００２６】
ブロック３６において、電力削減モジュール１２８は、メモリデータをストレージデバイスから揮発性メモリデバイスの中へとロードすることができる。いくつかの実施例において、メモリデータは、揮発性メモリデバイスの中に以前に保管されたデータに対応することができる。例えば、メモリデータは、揮発性メモリデバイスから電力供給が取り除かれる以前の揮発性メモリデバイスの状態に対応するあらゆる適切な量のデータを含んでよい。
【００２７】
図３プロセスフロー図は、方法３００のオペレーションがある特定の順序において実行されるべきであること、または、方法３００の全てのオペレーションがあらゆる場合において含まれるべきであることを示すように意図されたものではない。加えて、方法３００は、あらゆる適切な数の追加オペレーションを含んでよい。
【００２８】
図４は、メモリデバイスなしでオペレーションすることによって消費電力を低減することができるコンピューティングデバイスの一つの実施例に係るブロックダイヤグラムである。コンピューティングデバイス４００は、ストレージデバイス４０２、プロセッサ４０４、オーディオデバイス４０６、およびメモリデバイス４０８を含み得る。上述のように、プロセッサ４０４が、一定期間の最中に、オーディオデバイス４０８、などといった、ハードウェアコンポーネントのためのインストラクションを実行する場合に、メモリデバイス４０８は、電力供給を受け取らなくてよい。いくつかの実施例において、プロセッサ４０４は、プロセッサ４０４が実行するあらゆる適切な数量のインストラクションを保管することができるプロセッサキャッシュ４１０をモニタすることによって、メモリデバイス４０８が電力供給を受け取らなくてよいことを判断し得る。いくつかの実施例において、プロセッサ４０４は、メモリデバイス４０８が電力供給を受け取らないことを示す、プロセッサキャッシュ４１０におけるインストラクションを検出することができる。例えば、プロセッサ４０４は、一定期間の最中に実行されるべきインストラクションがオーディオデバイス４０６といったハードウェアコンポーネントのためのオペレーションに関するものであることを検出し得る。
【００２９】
いくつかの実施例において、プロセッサ４０４は、ストレージデバイス４０２から直接的に受け取ったインストラクションをプロセッサキャッシュ４１０から実行し得る（丸１によって示されるように）。いくつかの実施例において、プロセッサ４０４は、オーディオ出力を生成するインストラクションを実行し、そして、オーディオデバイス４０６に対してデータを直接的に送付することができる（丸２によって示されるように）。プロセッサ４０４は、また、オーディオデバイス４０６が実行しなくてよい第２のオペレーションに対応する、プロセッサキャッシュ４１０の中のインストラクションを検出してもよい。プロセッサ４０４は、メモリデバイス４０８に対する電力供給を回復し得る。いくつかの実施例において、プロセッサ４０４は、また、ストレージデバイス４０２からメモリデバイス４０８へデータ転送を開始してもよい。
【００３０】
図４のブロックダイヤグラムは、コンピューティングデバイス４００が、図４において示される全てのコンポーネントを含むことを示すように意図されたものではないことが理解されるべきである。むしろ、コンピューティングデバイス４００は、より少ないもの、または、図４に示されていない追加のコンポーネント（例えば、追加のメモリコンポーネント、エンベッドされたコントローラ、追加のモジュール、追加のネットワークインターフェイス、等）を含むことができる。さらに、プロセッサ４０４のあらゆる機能性は、追加のハードウェアにおいて、部分的に、または、全体的に実施されてよい。例えば、機能性は、特定用途向け集積回路を用いて、ストレージデバイス４０２において実施されるロジックにおいて、または、エンベッドされたコントローラにおいて実施されるロジック、などで実施され得る。
【００３１】
図５は、ハードウェアコンポーネントに対して電力供給をオフすることによってコンピューティングデバイスの消費電力を低減することができる、有形で、非一時的なコンピュータで読取り可能な媒体の一つの実施例を示すブロックダイヤグラムである。有形で、非一時的なコンピュータで読取り可能な媒体５００は、コンピュータ相互接続５０４上でプログラム５０２によってアクセスされ得る。さらに、有形で、非一時的なコンピュータで読取り可能な媒体５００は、現方法のオペレーションを実行するようにプロセッサ５０２に指示するコードを含み得る。
【００３２】
ここにおいて説明される種々のソフトウェアコンポーネントは、図５に示されるように、有形で、非一時的なコンピュータで読取り可能な媒体５００において保管されてよい。例えば、電力削減モジュール５０６は、揮発性メモリデバイスに対する電力供給を停止することによってコンピューティングデバイスの消費電力を低減するようにプロセッサ５０２に指示するように適合され得る。例えば、電力削減モジュール５０６は、プロセッサ５０２が、一定期間の最中に、第１のハードウェアデバイスのための第１のオペレーションを実行することを検出し、そして、揮発性メモリデバイスに対する電力供給をオフする一方で、ストレージデバイスから第１のオペレーションに関するデータを取り出すことができる。特定のアプリケーションに応じて、図５に示されていないあらゆる数量の追加のソフトウェアコンポーネントが、有形で、非一時的なコンピュータで読取り可能な媒体５００の中に含まれ得ることが理解されるべきである。
【００３３】
実施例１
コンピューティングデバイスの消費電力を低減する方法が、ここにおいて説明される。本方法は、前記コンピューティングデバイスが第１のハードウェアコンポーネントのための第１のオペレーションを実行することを検出するステップと、前記コンピューティングデバイスが一定期間の最中に第２のハードウェアコンポーネントのための第２のオペレーションを実行しないと判断するステップとを含む。本方法は、また、前記第１のオペレーションに対応するオペレーションデータを不揮発性ストレージデバイスからプロセッサキャッシュの中へロードするステップと、前記第１のオペレーションが揮発性ストレージデバイスからのメモリデータをリクエストしないことを検出するステップとを含んでもよい。さらに、本方法は、少なくとも一つのストレージデバイスから電力供給を取り除くステップを含む。
【００３４】
いくつかの実施例において、本方法は、また、前記揮発性ストレージデバイスから電力供給を取り除く以前に、メモリデータを前記揮発性ストレージデバイスから前記不揮発性ストレージデバイスへ転送するステップを含んでもよい。いくつかの実施例において、前記第１のオペレーションは、オーディオファイル再生またはビデオ再生のうち一つを含む。さらに、本方法は、前記揮発性ストレージデバイスのリフレッシュレートを低減することを含み得る。加えて、本方法は、また、前記コンピューティングデバイスが一定期間の最中に第２のハードウェアコンポーネントのための第２のオペレーションを実行することを検出するステップ、前記揮発性ストレージデバイスに対して電力供給を提供するステップ、および、前記メモリデータを前記不揮発性ストレージデバイスから前記揮発性ストレージデバイスの中へロードするステップを含んでもよい。
【００３５】
実施例２
消費電力を低減するためのシステムも、また、ここにおいて説明される。いくつかの実施例において、本システムは、処理ロジックの実行可能なインストラクションを保管するための不揮発性ストレージデバイスと、前記処理ロジックの実行可能なインストラクションのコピーを保管するための揮発性ストレージデバイスと、前記処理ロジックの実行可能なインストラクションのコピーを保管するためのキャッシュと、前記処理ロジックを含む。いくつかの実施例において、前記処理ロジックは、前記システムが第１のハードウェアコンポーネントのための第１のオペレーションを実行することを検出し、前記システムが一定期間の最中に第２のハードウェアコンポーネントのための第２のオペレーションを実行しないと判断する。前記処理ロジックは、また、前記第１のオペレーションに対応するオペレーションデータを前記不揮発性ストレージデバイスから前記キャッシュの中へロードしてもよい。さらに、前記処理ロジックは、前記第１のオペレーションが前記揮発性ストレージデバイスからのメモリデータをリクエストしないことを検出し、かつ、少なくとも一つのストレージデバイスに対する電力供給を取り除くことができる。
【００３６】
いくつかの実施例において、前記処理ロジックは、前記揮発性ストレージデバイスから電力供給を取り除く以前に、メモリデータを前記揮発性ストレージデバイスから前記不揮発性ストレージデバイスの中に保管することができる。前記処理ロジックは、また、バックアップオペレーションを実行するリクエストを検出し、かつ、リクエストされたデータを前記不揮発性ストレージデバイスからバックアップデバイスへ送付することもできる。加えて、前記処理ロジックは、前記第１のオペレーションがハードウェアコンポーネントに対応していることを検出し、かつ、前記ハードウェアコンポーネントに対する電力供給のフローを停止し得る。
【００３７】
実施例３
消費電力を低減することができる複数のインストラクションを含む非一時的なコンピュータで読取り可能な媒体も、また、ここにおいて説明される。いくつかの実施例において、前記インストラクションが、コンピューティングデバイス上で実行されることに応じて、前記コンピューティングデバイスは、前記コンピューティングデバイスが第１のハードウェアコンポーネントのための第１のオペレーションを実行することを検出し、前記コンピューティングデバイスが一定期間の最中に第２のハードウェアコンポーネントのための第２のオペレーションを実行しないと判断する。前記インストラクションにより、前記コンピューティングデバイスは、また、前記第１のオペレーションに対応するオペレーションデータをストレージデバイスからプロセッサキャッシュの中へロードし、かつ、少なくとも一つのストレージデバイスから電力供給を取り除く。
【００３８】
いくつかの実施例において、前記インストラクションにより、前記コンピューティングデバイスは、前記コンピューティングデバイスが一定期間の最中に第２のハードウェアコンポーネントのための第２のオペレーションを実行することを検出し、前記揮発性ストレージデバイスに対して電力供給を提供し、かつ、前記メモリデータを前記不揮発性ストレージデバイスから前記揮発性ストレージデバイスの中へロードする。いくつかの実施例において、複数のインストラクションにより、前記コンピューティングデバイスは、また、バックアップオペレーションを実行するリクエストを検出し、かつ、リクエストされたデータを前記ストレージデバイスからバックアップデバイスへ送付する。さらに、前記インストラクションにより、前記コンピューティングデバイスは、前記第１のオペレーションがハードウェアコンポーネントに対応していることを検出し、かつ、前記ハードウェアコンポーネントに対する電力供給のフローを停止することができる。いくつかの実施例において、前記ハードウェアコンポーネントはセンサハブである。
【００３９】
実施例４
消費電力を低減するための装置も、また、ここにおいて説明される。本装置は、処理ロジックの実行可能なインストラクションを保管するためのキャッシュと、前記処理ロジックとを含む。前記処理ロジックは、前記装置が第１のハードウェアコンポーネントのための第１のオペレーションを実行することを検出し、前記装置が一定期間の最中に第２のハードウェアコンポーネントのための第２のオペレーションを実行しないと判断することができる。本装置は、また、前記第１のオペレーションに対応するオペレーションデータを不揮発性ストレージデバイスから前記キャッシュの中へロードし、かつ、前記第１のオペレーションが揮発性ストレージデバイスからのメモリデータをリクエストしないことを検出することもできる。さらに、本装置は、少なくとも一つのストレージデバイスに対する電力供給を取り除くことができる。いくつかの実施例において、前記少なくとも一つのストレージデバイスは、前記不揮発性ストレージデバイス、前記揮発性ストレージデバイス、または、これらのあらゆる組み合せ、を含む。
【００４０】
開示される技術的事項に係る一つの実施例が図１−５におけるブロックダイヤグラムおよびフロー図を参照して説明されているが、当業者であれば、開示される技術的事項を実施する多くの他の方法が代替的に使用され得ることを容易に正しく理解するだろう。例えば、フロー図におけるブロックの実行順序は変更されてよく、及び/又は、ブロック／フロー図におけるいくつかのブロックが変更され、削除され、または、結合されてよい。
【００４１】
上記の説明においては、開示される技術的事項に係る種々の態様が説明されてきた。説明目的のために、本技術的事項の完全な理解を提供するように、特定の数、システム、および構成が明らかにされた。しかしながら、この開示の利益を有する当業者にとっては、特定の詳細が無くても本技術的事項が実施され得ることが明らかである。他のインスタンスにおいては、開示される技術的事項を不明確にしないように、よく知られた機能、コンポーネント、またはモジュールは、省略され、簡素化され、結合され、または、分離される。
【００４２】
開示される技術的事項に係る種々の実施例は、ハードウェア、ソフトウェア、または、これらの組み合わせにおいて実施されてよく、そして、プログラムコードを参照して、又は、共に説明されてよい。プログラムコードは、インストラクション、ファンクション、プロシージャ、データ構造、ロジック、アプリケーションプログラム、デザインプレゼンテーション、または、デザインのシミュレーション、エミュレーション、およびファブリケーション（ｆａｂｒｉｃａｔｉｏｎ）のためのフォーマット、といったものであり、マシンによってアクセスされると、結果としてマシンに、タスクの実行、抽象データタイプ又はローレベルハードウェアコンテクスト（ｃｏｎｔｅｘｔ）の定義、または、結果の生成をさせるものである。
【００４３】
プログラムコードは、デザインされたハードウェアの期待される実行の方法のモデルを本質的に提供する、ハードウェア記述言語または別の機能記述言語を使用して表現され得る。プログラムコードは、アセンブラ又は機械語またはハードウェア定義言語、もしくは、コンパイル及び/又はインタープリートされ得るデータであってよい。さらに、ソフトウェアの分野では一般的な従来技術であって、アクションを起こしたり又は結果を生じさせる一つの形態あるいは別の形態におけるものである。そうした表現は、プロセッサにアクションを実行または結果を生成させる処理システムによるプロセッサコードの実行について述べる単なる省略形である。
【００４４】
プログラムコードは、例えば、揮発性及び/又は不揮発性メモリの中に保管されてよい。ストレージデバイス、及び/又は、関連のマシンで読取り可能またはマシンでアクセス可能な媒体といったものであり、半導体メモリ、ハードディスク、フロッピー（登録商標）ディスク、光ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、デジタル多目的ディスク（ＤＶＤ）、等を含んでいる。ストレージを保存しているマシンでアクセス可能な生物学的状態といったエキゾチックな媒体も同様である。マシンで読取り可能な媒体は、アンテナ、光ファイバー、通信インターフェイス、等といった、マシンによって読取り可能な形態における情報を保管、送信、または、受信するためのあらゆる有形のメカニズムを含んでよい。プログラムコードは、パケット、シリアルデータ、パラレルデータ、等の形態において送信されてよく、そして、圧縮または暗号化されたフォーマットにおいて使用されてよい。
【００４５】
プログラムコードは、プログラム可能なマシン上で実行されるプログラムにおいて実装されてよい。モバイル又は据置き型コンピュータ、パーソナルデジタルアシスタント、セットトップボックス、携帯電話とページャー、および他の電子デバイス、といったものであり、それぞれが、プロセッサ、プロセッサによって読出し可能な揮発性及び/又は不揮発性メモリ、少なくとも一つの入力デバイス及び/又は一つまたはそれ以上の出力デバイスを含んでいる。説明される実施例を実行するため、そして、出力情報を生成するために、プログラムコードは、入力デバイスを使用して入力されたデータに対して適用され得る。出力情報は、一つまたはそれ以上の出力デバイスに対し適用され得る。当業者であれば、開示される技術的事項の実施例が、種々のコンピュータシステムコンフィグレーションを用いて実施され得ることを正しく理解し得る。マルチプロセッサまたはマルチコアプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ、を含むものであり、仮想的にあらゆるデバイスの中にエンベッドされ得るパーベイシブ（ｐｅｒｖａｓｉｖｅ）又はミニチュアのコンピュータまたはプロセッサ、も同様である。開示される技術的事項の実施例は、また、通信ネットワークを通じてリンクされたリモートの処理デバイスによってタスクが実行され得る、分散コンピューティング環境においても実施され得る。
【００４６】
オペレーションは、シーケンシャルなプロセスとして記述されてよいが、いくつかのオペレーションは、実際には、パラレル、同時、及び/又は、分散環境において、および、シングルまたはマルチプロセッサマシンによるアクセスのためにローカル及び/又はリモートに保管されたプログラムコードを用いて、実行されてよい。加えて、いくつかの実施例において、オペレーションの順序は、開示される技術的事項の精神から逸脱することなく再構成され得る。プログラムコードは、エンベッドされたコントローラにより、または、共に使用されてよい。
【００４７】
開示される技術的事項が説明的な実施例に関して記述されてきたが、この記述は、限定する意味において理解されるように意図されたものではない。説明的な実施例の種々の変更、技術的事項の他の実施例も同様に、開示される技術的事項が属する分野の当業者にとって明らかであるものは、開示される技術的事項の範囲内にあるものとみなされる。
【図１】
0006312837.tif 000002
【図２】
0006312837.tif 000003
【図３】
0006312837.tif 000004
【図４】
0006312837.tif 000005
【図５】
0006312837.tif 000006