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

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

▶ マイクロソフト コーポレーションの特許一覧

<>
  • 特許5647721-適応電力管理 図000002
  • 特許5647721-適応電力管理 図000003
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5647721
(24)【登録日】2014年11月14日
(45)【発行日】2015年1月7日
(54)【発明の名称】適応電力管理
(51)【国際特許分類】
   G06F 1/32 20060101AFI20141211BHJP
   G06F 1/04 20060101ALI20141211BHJP
【FI】
   G06F1/00 332Z
   G06F1/04 301C
【請求項の数】10
【全頁数】14
(21)【出願番号】特願2013-207203(P2013-207203)
(22)【出願日】2013年10月2日
(62)【分割の表示】特願2010-183562(P2010-183562)の分割
【原出願日】2007年3月8日
(65)【公開番号】特開2014-38644(P2014-38644A)
(43)【公開日】2014年2月27日
【審査請求日】2013年10月31日
(31)【優先権主張番号】11/376,922
(32)【優先日】2006年3月16日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】500046438
【氏名又は名称】マイクロソフト コーポレーション
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100075270
【弁理士】
【氏名又は名称】小林 泰
(74)【代理人】
【識別番号】100101373
【弁理士】
【氏名又は名称】竹内 茂雄
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100153028
【弁理士】
【氏名又は名称】上田 忠
(72)【発明者】
【氏名】スタッフルビーム,ケニス・ダブリュー
【審査官】 田川 泰宏
(56)【参考文献】
【文献】 特開2000−214963(JP,A)
【文献】 特開2001−273057(JP,A)
【文献】 米国特許出願公開第2006/0053311(US,A1)
【文献】 米国特許出願公開第2005/0044241(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/32
G06F 1/04
(57)【特許請求の範囲】
【請求項1】
コンピュータ上において電力消費デバイスを管理するオペレーティング・システムを有するコンピュータにおいて、前記コンピュータに利用可能な電力量に基づいて、電力消費を維持するコンピュータ実装方法であって、
(a)前記コンピュータに利用可能な現在の電力量を特定するステップと、
(b)前記コンピュータに利用可能な現在の電力量が、性能低下状態と関連付けられているか否か判定を行うステップと、
(c)前記現在の電力量が性能低下状態と関連付けられている場合、前記コンピュータを前記性能低下状態に移すために、前記電力消費デバイスの構成を変更するステップと、
を備え、
前記コンピュータを前記性能低下状態に移すために、前記電力消費デバイスの構成を変更するステップは、
(c1)前記コンピュータ上で現在アクティブとなっているアプリケーション・プログラムの要件を特定するステップと、
(c2)前記アプリケーション・プログラムの要件を満たすように、前記電力消費デバイスが供給する機構を変更するステップと、
を含む、方法。
【請求項2】
請求項1記載の方法であって、更に、前記現在の電力量が性能低下状態と関連付けられていない場合、前記電力消費デバイスが最大性能レベルで機能することを許可するステップを備えている、方法。
【請求項3】
請求項1記載の方法において、前記オペレーティング・システムは、既存の電力維持方式を実装し、前記コンピュータの非稼動度に基づいて、異なるシステム状態間で前記コンピュータを遷移させ、
前記コンピュータがアクティブ・システム状態にある場合、電力を維持するために前記電力消費デバイスの構成を変更する、方法。
【請求項4】
請求項3記載の方法において、前記既存の電力維持方式は、前記電力消費デバイスと前記オペレーティング・システムとの間における通信をし易くするために、高度構成および電力インターフェース(ACPI)を用いており、
前記コンピュータを前記性能低下状態に移すために、前記電力消費デバイスの構成を変更するステップは、電力消費デバイスをデバイス・スリープ状態に移すために、前記高度構成および電力インターフェースを用いるステップを含む、方法。
【請求項5】
請求項4記載の方法において、前記コンピュータに利用可能な現在の電力量を特定するステップは、前記高度構成および電力インターフェースを用いて入手したデータ構造において調査を行うステップを含む、方法。
【請求項6】
請求項1記載の方法において、前記コンピュータに利用可能な現在の電力量が、性能低下状態と関連付けられているか否か判定を行うステップは、前記コンピュータに利用可能な電力量を表す値と、異なる性能低下状態と関連付けられている閾値との間の比較を行うステップを含む、方法。
【請求項7】
請求項1記載の方法において、前記コンピュータ上で現在アクティブとなっているアプリケーション・プログラムの要件を特定するステップは、異なる利用可能な性能状態における前記アプリケーション・プログラムに対するハードウェア要件を記述するハードウェア要件設定情報を入手するステップを含み、
前記アプリケーション・プログラムの要件を満たすように、前記電力消費デバイスが提供する機構を変更するステップは、前記アプリケーション・プログラムから入手した前記ハードウェア要件設定情報と一致するように、ハードウェア・デバイスの能力を無効にするステップを含む、方法。
【請求項8】
請求項1記載の方法において、前記電力消費デバイスの構成を変更するステップは、現在利用されていない電力消費デバイスが提供する機構を特定し不活性化するステップを含む、方法。
【請求項9】
コンピュータに請求項1〜8の何れか1項に記載のステップを実行させるためのプログラム。
【請求項10】
コンピュータに請求項1〜8の何れか1項に記載のステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【背景技術】
【0001】
市場の要求、環境面の必要性、業務コスト、および限界があるバッテリ寿命のために、コンピュータは、終始一貫した計算サービスを提供しつつも、できるだけ少ないエネルギを用いるようにしなければならなくなっている。コンピュータが消費するエネルギは、常時最大計算パワーを提供する代わりに、必要に応じてサービス毎に十分な計算パワーを提供することによって、一層効率的に管理することができる。ラップトップ、デスクトップ、およびメインフレーム・コンピュータのようなコンピュータ、パーソナル・ディジタル・アシスタント(PDA)、セルラ電話機等は、プログラム命令を電子回路によって実行させることによって、サービスを提供する。これに関して、コンピュータにおける種々のデバイスは、サービスを提供することができるように電力を消費する電子回路を維持する。
【0002】
殆どのコンピュータは、オペレーティング・システムと慣例的に呼ばれているコンピュータ・プログラムを実行し、これがコンピュータの動作を導き、他のプログラムにサービスを提供する。更に具体的には、オペレーティング・システムは、メモリ、大容量メモリ・ストレージ、周辺デバイス等のようなハードウェア・リソースの割り当ておよび使用を制御する。計算機を初期化し動作させるコンピュータ命令は、「カーネル」と呼ばれることが多いオペレーティング・システムのコンポーネントに収容されているのが通例である。コンピュータを起動すると直ちに、カーネルが実行を開始する。カーネルはハードウェアを直接制御し、コンピュータの状態を記述するデータにアクセスすることができるので、カーネルは計算パワーを規制するため、そしてそれ以外ではエネルギ消費を制御するために用いることもできる。
【0003】
従前より、オペレーティング・システムによって設けられる電力管理機構は、実行されている処理量を定量化し、コンピュータの忙/閑に基づいて異なるシステム状態(「S状態」と呼ばれる場合もある)間で遷移することから成る。例えば、あるコンピュータおよびそのオペレーティング・システムは、アクティブ状態(例えば、S0)および種々のシステム・スリープ状態(例えば、S1−S4)を含む異なるシステム状態をサポートする、高度構成および電力インターフェース(「ACPI」)として知られている規格に準拠する。更に、コンピュータがシステム状態間で遷移する場合、コンピュータ上にある電力消費デバイスは、アクティブ状態(例えば、D0)および種々のデバイス・スリープ状態(例えば、D1−D3)を含む、しかるべきデバイス状態(「D状態」とも呼ばれる場合もある)に遷移することができる。これに関して、オペレーティング・システムは個々のデバイスがしかるべきデバイス状態に遷移することができるように、状態対デバイスのマッピングを維持することを責務とするとよい。
【発明の概要】
【発明が解決しようとする課題】
【0004】
一方では、システムおよび関連するデバイスのスリープ状態が連続的に深くなる毎に、アクティブ状態に対して提供される電力節約のレベルが高くなる。他方では、システムおよびデバイスのスリープ状態が高い程、ハードウェアの可用性が低下する。例えば、スリープ状態からアクティブ状態に遷移するためには、ある時間期間即ちレイテンシ・オーバーヘッドが必要となる場合がある。いずれにしても、これらの種類の既存のシステムでは、電力管理の判断は、利用可能な残留電力量を考慮していない。その結果、残留電力量が非常に少なくてもある種のハードウェア・デバイスの電力節約能力が最大限生かされないので、ユーザがコンピュータ上で有意なタスクを実行することができる時間期間は短くなる。
【課題を解決するための手段】
【0005】
概略的に述べると、本発明の実施形態は、コンピュータ上にインストールしたプログラムによる有意なタスクの実行を許容しつつ、コンピュータの電力消費を最小限に抑えることを目的とする。一実施形態によれば、電源から利用可能な現在の電力最大出力に基づいて、電力維持対策を実施する方法を提供する。更に具体的には、この実施形態では、本方法は、電源からコンピュータに利用可能な現在の電力量を特定するステップを含む。次いで、コンピュータに現在利用可能な電力量が性能低下状態に関連付けられているか否かに関して鑑定を行う。現在の電力量が性能低下状態に関連付けられている場合、本方法は一部の電力消費デバイスの構成を変更して、コンピュータをしかるべき性能低下状態にする。
【0006】
この摘要は、以下に詳細な説明において更に説明する概念から選択して、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の鍵となる特徴を特定することを意図するのではなく、特許請求する主題の範囲を決定する際の補助として用いられることも意図していない。
【0007】
以上の態様および本発明の付随する利点の多くは、添付図面と関連付けて以下の詳細な説明を参照することにより、一層良く理解されるにしたがって、一層容易に認められるようになるであろう。
【図面の簡単な説明】
【0008】
図1図1は、本発明の態様を実施するのに適したコンポーネントを有するコンピュータ例のブロック図である。
図2図2は、本発明の一実施形態にしたがって、コンピュータが消費する電力を維持するために性能状態遷移を特定し実行する方法例を示すのに適した電力管理ルーチンの機能流れ図である。
【発明を実施するための形態】
【0009】
これより、コンピュータが実行するプログラム・モジュールのような、コンピュータ実行可能命令に関して、本発明について総合的に説明する。概して述べると、プログラム・モジュールは、ルーチン、プログラム、アプリケーション、ウィジェット、オブジェクト、コンポーネント、データ構造等を含み、特定のタスクを実行するか、または特定の抽象的データ・タイプを実装する。また、本発明は、コンピュータ・ネットワークを通じてリンクされているリモート処理デバイスによってタスクを実行する、分散型計算環境においても実用化することができる。分散型計算環境では、プログラム・モジュールはローカルおよび/またはリモート・コンピュータ記憶媒体に配置することができる。
【0010】
本発明は、主に、利用可能電力量が任意に設定し必要に応じて再構成することができるある閾値量未満になったときに、コンピュータ上においてハードウェア・デバイスが消費する電力を削減するという文脈において説明するが、本発明は他の文脈でも摘要可能であることは、当業者およびその他の者には認められよう。いずれにしても、以下の説明では、最初に、本発明の態様を実施することができるコンピュータの総合的な概要を規定する。次いで、一実施形態にしたがって本発明を実行するルーチンまたは方法について説明する。ここに記載する図示例は、網羅的であることも、本発明を開示した形態そのものに限定することも意図していない。同様に、ここに記載するいずれのステップも、同じ目的を達成するために、他のステップまたはステップの組み合わせと相互交換可能であってもよい。
【0011】
これより図1を参照して、本発明の態様を実施することができるハードウェアおよびソフトウェア・コンポーネント双方を有するコンピュータ100の一例について説明する。尚、コンピュータ100は、種々のデバイスのいずれでもよく、個人計算機、サーバ系計算機、ミニおよびメインフレーム・コンピュータ、ラップトップ、パーソナル・ディジタル・アシスタント(PDA)、または何らかの形式のメモリを有するその他の電子デバイスを含むが、これらには限定されないことは、当業者およびその他の者には認められよう。図示を容易にするため、そして本発明の理解には重要ではないため、図1は、メモリ、キーボード、マウス、プリンタ、またはその他I/Oデバイス、ディスプレイ等のような、多くのコンピュータに典型的なコンポーネントを示していない。しかしながら、図1に示すように、コンピュータ100は、アプリケーション・プログラム102、オペレーティング・システム104、およびハードウェア・プラットフォーム106を含む。この実施形態では、オペレーティング・システム104がドライバ108および電力管理ルーチン110を含む。その上、図1に更に示すように、ハードウェア・プラットフォーム106は、CPU114、電力消費デバイス116、および電源118を含む。
【0012】
例示の目的のため、そして一例としてのみ、図1は、オペレーティング・システム104がアプリケーション・プログラムに代わってハードウェア・リソースへのアクセスを管理するコンピュータ100のコンポーネント・アーキテクチャを示す。これに関して、図1に示すオペレーティング・システム104は、Microsoft(登録商標)オペレーティング・システム、Linux(登録商用)オペレーティング・システム、UNIX(登録商標)オペレーティング・システム等のような、汎用オペレーティング・システムでよい。あるいは、オペレーティング・システム104は、リソース限定計算機のような、特殊ハードウェアに合わせて設計してもよい。この例では、オペレーティング・システム104は、Windows(登録商標)CEオペレーティング・システム、Palm(登録商標)オペレーティング・システム等とすればよい。いずれにしても、コンピュータ100のコンポーネントは積層されており、ハードウェア・プラットフォーム106が下層上にあり、アプリケーション・プログラム102が上層上にある。コンピュータ100の積層は、コンピュータ100の各層が下位層にあるシステムに従属する階層環境に本発明を実施することができることを例示する。更に具体的には、アプリケーション・プログラム102は、ハードウェア・プラットフォーム106のコンポーネントに直接アクセスすることができない。代わりに、アプリケーション・プログラム102は、ハードウェア・プラットフォーム106が提供するサービスを必要とするときには、オペレーティング・システム104に要求を発行する。要求を受け取ると、オペレーティング・システム104は、ドライバ108にアクセスし、ハードウェア・プラットフォーム106のコンポーネントとインターフェースする。例えば、ドライバ108は、オペレーティング・システム104がCPU114および電力消費デバイス116とインターフェースする方法を提供する。
【0013】
一実施形態によれば、本発明は、オペレーティング・システム104の機能性を拡張して、電力リソースを維持する。これに関して、オペレーティング・システム104は、アプリケーション・プログラム102を起動するときまたはその後のある時点において、アプリケーション・プログラム102のハードウェア性能要件を特定するために用いることができる。コンピュータ100から利用可能な電力最大出力が減少するに連れて、オペレーティング・システム102は、所与のシステムおよび/またはデバイス状態内で生ずる可能性がある異なる性能状態間で、ハードウェア・プラットフォーム106を遷移させることができる。一般的に述べると、本発明の態様は、オペレーティング・システム104が、アプリケーション・プログラム102の性能要件をハードウェア・プラットフォーム106の能力と一致させるための仲介物として作用することができるように、オペレーティング・システム104の機能性を拡張する。
【0014】
オペレーティング・システム104がプログラムの実行を管理するために、ハードウェア・プラットフォーム106を記述した情報を入手する。通例、基本入出力システム(「BIOS」)として慣例的に知られているファームウェア・プログラムが、最初にコンピュータ100に電力を供給するときに、ハードウェア・プラットフォーム106を初期化する機能を実行し、その後にBIOSがオペレーティング・システム104を「ブート」する。これに関して、コンピュータ100に電力を投入するとき、コンピュータ100のBIOSは、起動時自己検査(「POST」)と称するハードウェア・チェックを実行して、ハードウェア・プラットフォーム106が存在し現在作動しているか否か判定を行う。次いで、BIOS内にある命令が、「ブート・ローダ」として慣例的に知られているプログラムを直接制御して、オペレーティング・システム104をコンピュータ100のシステム・メモリにロードする。システム・メモリは、慣例的に、ランダム・アクセス・メモリ(「RAM」)のバンクとして実装されている。
【0015】
図1に示すように、コンピュータ100は、電源108を含む。電源108は、コンピュータ100内部にある電子回路に電力を供給することを責務とする。電源108は、コンピュータ100の筐体内に収容されているバッテリでもよい。この場合、ユーザがコンピュータ100と双方向処理を行うと、電力最大出力量が減少し、バッテリを「再充電」するために無停電(uninterruptible)電源を用いない場合、電力が利用できなくなる場合もあり得る。本発明の態様は、特に、コンピュータに電力を供給するためにバッテリを用いるときに非常に適している。しかしながら、電源108は、コンピュータ100に利用可能な電力最大出力が減少しない無停電電源であってもよい。この場合、本発明の態様は、一見無限の電力量が利用可能であるが、電源の消費を維持するために用いることができる。
【0016】
通例、コンピュータ100がブートするとき、1つ以上のドライバ108が、BIOSが供給するデータを読み取り、ハードウェア・プラットフォーム106におけるシステム・デバイスの電力管理能力を発見することができ、あるいはドライバ100またはその他の構成空間情報によってシステム・デバイスから直接電力管理能力を特定することができる。システムの中には、BIOSが供給するデータ、またはオペレーティング・システム104の直接的な判断を、オペレーティング・システム104に含まれる電力規制典拠(authority)に受け渡し、コンピュータ100によって拡大した電力を制御する場合もある。例えば、前述のように、ACPI規格に準拠するオペレーティング・システム104では、電力規制典拠は、コンピュータ100上で実行する処理の量を定量化し、コンピュータ100の忙/閑に基づいて、異なるシステム状態間で遷移させることができる。
【0017】
本発明の態様は、既存の電力規制典拠が異なるシステム状態間で遷移するコンピュータにおいて実施することができる。この実施形態では、コンピュータ100がアクティブ・システム状態(例えば、「S0」)にあるとき、本発明が提供する適応電力管理システムは、コンピュータ100上で実行しているアプリケーション・プログラムの現在の電力最大出力レベルおよび/またはハードウェア性能の必要性に基づいて、特定のハードウェア・デバイスの性能状態を解除(de-feature)および/または低下させることができる。更に具体的には、コンピュータ100に利用可能な電力最大出力が減少するに連れて、ハードウェア・デバイスの機構および/または性能状態を、作動中のシステムまたはデバイスの状態の中で調節して、残存電力容量に見合ったレベルにする。その結果、コンピュータの性能は、ユーザが有意なタスクを実行することを可能にしつつ、利用可能な電力の使用を最大限高めるレベルに設定される。電力規制典拠がアクティブ状態からシステム・スリープ状態に遷移する場合、本発明は追加の処理を実行しない。代わりに、異なるシステム・スリープ状態間で遷移することによって、電力規制典拠は、コンピュータ100上における電力の使用を維持する。別の実施形態では、本発明は、電力規制典拠が電力を維持するために異なるシステム状態間で遷移しないコンピュータ100において実施する。この場合、コンピュータ100上における状態が、利用可能な電力量がある閾値量未満に低下したときのように、電力を維持しなければならなくなったときにはいつでも、ハードウェア・デバイス機構および/または性能状態を、本発明の態様によって調節する。
【0018】
図1に示すように、コンピュータ100は、ハードウェア・プラットフォーム106に含まれるCPU114を含む。尚、CPU114は、プログラム命令の実行をサポートすることによって、コンピュータ100の計算センターとしての役割を果たすことは、当業者およびその他の者には認められよう。これに関して、オペレーティング・システム104は、本発明を実施するプログラム命令を含むプログラム・命令を記憶装置(例えば、ハード・ドライブ)からコンピュータ100のシステム・メモリ(図示せず)にロードさせる。次いで、CPU114は、システム・メモリにロードされた命令を順次「取り出し」そして「実行する」ことによって、プログラムの機能性を実施する。尚、現在入手可能なCPUの一部は、(1)CPU114の電圧/周波数対を調節してエネルギ消費を削減することができる「P−状態」、および(2)所定の割合の時間だけCPU114がアイドルであることを可能にする「C−状態」のような、電力性能低下状態をサポートすることは、当業者およびその他の者には認められよう。以下で更に説明するが、本発明の態様は、コンピュータ100がアクティブ・システム状態にある場合であっても、CPU114に電力削減「P−状態」または「C−状態」に遷移させることができる。
【0019】
図1に示す電力消費デバイス116は、電源118が供給する電気を用いる既存のデバイスまたは今後開発されるデバイスのいずれでもよい。例えば、既存のコンピュータ・システムでは、電力消費デバイス116は、大容量記憶装置(例えば、ハード・ドライブ)、ビデオ・カード、DVD/CD−ROMドライブのような周辺デバイス、ネットワーク・カードおよびアダプタ、動作中に交換可能なデバイス、システム・メモリ(例えば、RAM/ROM)等を含むことができるが、これらに限定されるのではない。概して述べると、本発明の態様は、利用可能な電力を最大限使用するために、CPU114およびその他の電力消費デバイス116の性能レベルを調節することを目的とする。
【0020】
図1に示すように、オペレーティング・システム104は、電力管理ルーチン110を含む。電力管理ルーチン110は、CPU114および電力消費デバイス116の性能レベルを調節し、コンピュータ100が有意なタスクを実行することができる時間期間を最大にする。しかしながら、電力管理ルーチン110の態様については以下で図2を参照して詳細に説明するので、ルーチン110の詳細な説明はここでは行わない。とは言え、概して述べれば、電力管理ルーチン110は、電源118から利用可能な電力最大出力量を監視する。電力最大出力のレベルがある閾値レベル未満に低下した場合、電力管理ルーチン110は、コンピュータ100のある種のハードウェア・デバイスに対して、性能低下状態を特定する。次いで、特定されたハードウェア・デバイスの性能レベルを、特定した性能低下状態に調節する。コンピュータ100に利用可能な電力レベルが降下するに連れて、ハードウェア・デバイスを遷移させる性能低下状態も増々低くなり、ユーザがコンピュータ100上で有意なタスクを実行することができる時間期間を最大にするように設計されている。
【0021】
尚、図1に示すコンピュータ100は、非常に簡略化した例であり、本発明の態様を説明するのに有用なコンポーネントのみを含むことは、当業者およびその他の者には認められよう。実際の実施形態では、コンピュータ100は図1には示されていない追加のコンポーネントを有する。更に、図1に示すコンポーネントのアーキテクチャは、一例と解釈してしかるべきである。何故なら、本発明は、異なるコンポーネント・アーキテクチャを維持するコンピュータにおいても実施可能であることは、当業者およびその他の者には認められるはずであるからである。
【0022】
これより図2を参照して、先に図1を参照して端的に述べた電力管理ルーチン110の一例について、更に詳しく説明する。尚、最新のコンピュータに含まれるハードウェアには、異なる性能レベルで機能するように構成されている場合、および/またはイネーブル/ディスエーブルすることができる機構を有する場合もあることは、当業者およびその他の者には認められよう。例えば、標準化されている「D−状態」を用いて、一部のハードウェア・デバイスについて性能レベルを定義する。従前からの電力管理方式では、デバイスが入ることができる各「D−状態」は、システム状態にマッピングすることができる。電力管理ルーチン110は、異なる性能レベル、例えば、「D−状態」で機能するように構成されているハードウェア・デバイスを用いることができる。しかしながら、従前からの電力管理方式とは異なり、電力管理ルーチン110は、コンピュータに利用可能な電力量に基づいて、アクティブ・デバイス状態「D0」の中で更に電力を維持する性能状態に、デバイスを遷移させることができる。暫定的事項として、電力管理ルーチン110を実行する前に、コンピュータ上に実装されているオペレーティング・システムが自動的にハードウェア・デバイスを入手するまたはこれらに問い合わせて、その電力節約能力を特定することができる。一実施形態によれば、電力管理ルーチン110は、オペレーティング・システムが入手する情報を用いて、プログラムの性能要件を、ハードウェア・デバイスの能力に合わせて、電力を維持する。
【0023】
図2に示すように、電力管理ルーチン110はブロック180において開始し、ここでルーチン110は、アプリケーション・プログラムがシステム・メモリにロードされるまで、アイドル状態のまま留まる。尚、アプリケーション・プログラムを実行することが予定されている場合は、記憶装置(例えば、ハード・ドライブ)上のプログラム・コードを記憶装置からシステム・メモリにロードし、プログラム・コードがCPUに容易にアクセス可能となっていることは、当業者およびその他の者には認められよう。しかしながら、プログラム・コードのシステム・メモリへのロードは、当技術分野では一般に周知である既存のシステムを用いて行われるので、これらのシステムに関するこれ以上の説明は、ここでは記載しない。
【0024】
ブロック190において、電力管理ルーチン110は、ブロック180においてシステム・メモリにロードされたアプリケーション・プログラムに、ハードウェア要件設定情報について問い合わせる。以下で更に詳しく説明するが、電力管理ルーチン110は、ハードウェア・デバイスを、コンピュータに利用可能な電力量に応じて、異なる性能状態に遷移させることができる。更に具体的には、一実施形態によれば、ハードウェア・デバイスは、最大性能状態および4つの性能低下状態を含む、5つの異なる性能状態の1つにすることができる。これら4つの状態の各々では、維持する電力量が徐々に多くなる。アプリケーション・プログラムから入手するハードウェア要件設定情報は、異なる利用可能な性能状態の各々において、アプリケーション・プログラムに対するハードウェア要件を記載する。電力管理ルーチン110は、デバイスが5つの性能状態の内の1つとすることができるシステムについて記載するが、代替実施形態では、特許請求する主題の範囲から逸脱することなく、これよりも多いまたは少ない性能状態を実施することもできる。
【0025】
判断ブロック195において、電力管理ルーチン110は、誘起イベントが発生して、性能状態遷移を実行するか否かに関して判断を行うようになるまで待機する。一例としてに過ぎないが、オペレーティング・システムは、周期的な間隔またはランダムに誘起イベントを発行するように構成することもできる。更に、別の実施形態では、オペレーティング・システムは、残存電力容量がある閾値量未満に低下したときに誘起イベントを発行するように構成されている。以下で更に詳しく説明するが、電力管理ルーチン110は、発生した誘起イベントに応答して性能状態遷移を行うか否か判定を行う。
【0026】
ブロック200において、コンピュータに利用可能な残存電力容量を表す値を、電力管理ルーチン110によって入手する。尚、既存のシステムを用いても、ブロック200において電源から利用可能な残存電力容量を特定できることは当業者およびその他の者には認められよう。例えば、ACPIに準拠したコンピュータは、オペレーティング・システムがハードウェア・プラットフォームとインターフェースしてこの種のデータを入手するために、標準化された方法を用意している。この例では、電力管理ルーチン110は、オペレーティング・システムが維持する表またはその他のデータ構造にアクセスして、このデータを入手する。しかしながら、その他の技法を用いて、ブロック200において残りの電力最大出力を表す値を入手してもよく、ここに示す例は、限定的ではなく例示として解釈してしかるべきことは、当業者およびその他の者には認められよう。
【0027】
ブロック202において、電力管理ルーチン110は、残りの電力最大出力を表す値(ブロック200において入手)を、異なる性能状態と関連付けられた1組の所定値と比較する。概略的に述べると、コンピュータに利用可能な電力最大出力が減少するに連れて、電力管理ルーチン110は何らかのハードウェア・デバイスの性能を低下させる。一実施形態によれば、ブロック202において残りの電力最大出力を表す値を1組の所定値と比較して、コンピュータ上にあるデバイスについて性能状態を特定する。一例に過ぎないが、利用可能な電力最大出力量が最大値の80パーセント(80%)未満である場合、電力管理ルーチン110は1組の電力消費デバイスを性能低下状態に遷移させる。しかしながら、性能低下状態への遷移が発生するときを確定する、ここに記載した値は一例であることは、言うまでもない。
【0028】
判断ブロック204において、電力管理ルーチン110は、電源から利用可能な残存電力容量が80%以上であるか否か判定を行う。前述のように、ブロック202において比較を行い、残存電力容量から、コンピュータ上のデバイスに適した性能状態を特定する。ブロック204において、電力管理ルーチン110は、この比較の結果が、残存電力容量が80%以上であることを示すか否か判定を行う。図2に示すように、残存電力容量が80%以上である場合、電力管理ルーチン110はブロック206に進む。逆に、残存電力容量が最大値の80%未満である場合、電力管理ルーチン110はブロック208に進む。ブロック208については、以下で更に詳しく説明する。
【0029】
ブロック206において、電力管理ルーチン110は、本発明を実施するコンピュータ上のハードウェア・デバイスに、それらの最高性能状態で機能することを許可する。一実施形態では、利用可能な電力最大出力が80%以上である場合、(1)コンピュータ・ディスプレイ・サブシステムがユーザに最も豊富な視覚体験を提供する、(2)メモリ、CPU、ビデオ・カード、大容量ストレージ、ネットワーク・デバイス等のような電力消費デバイスが、それらのイネーブルされた機構の全てを用いて動作することを許可する、そして(3)スクリーン・セーバのようなアプリケーション・プログラムが、ユーザが定めた設定値にしたがって実行することを許可する。次いで、電力管理ルーチン110はブロック223に進む。ブロック223については、以下で更に詳しく説明する。
【0030】
判断ブロック208において、電力管理ルーチン110は、電源から利用可能な残存電力容量が最大値の60%から80%の間であるか否か判定を行う。前述のように、ブロック202において比較を行い、利用可能な電力最大出力量から、コンピュータ上のデバイスに適した性能状態を特定する。図2に示すように、残存電力容量が最大値の60%から80%までの間である場合、電力管理ルーチン110はブロック210に進む。逆に、残存電力容量が最大値の60%未満である場合、電力管理ルーチン110はブロック212に進む。ブロック212については、以下で更に詳しく説明する。
【0031】
図2に更に示すように、ブロック210において、電力管理ルーチン110は、本発明を実施するコンピュータ上のある種の電力消費デバイスを、第1性能低下状態に遷移させる。第1性能低下状態は、利用可能な電力の最大未満の量を考慮しつつ、一定した(robust)ユーザ体験を提供するように設計されている。一実施形態では、利用可能な電力最大出力が最大値の60%から80%までの間であるとき、コンピュータ上のアプリケーション・プログラムによって利用することができるまたはできないディスプレイ・サブシステム(例えば、ビデオ・カード、コンピュータ・ディスプレイ等)から利用可能なある種の高級機構が現在使用されていないのであれば、これらを「削減」(scale back)する。例えば、一実施形態によれば、限定ではないが、外形マッピング(geometry mapping)、64−テクスチュアリング(64-texturing)、128ビット計算、32ビット・カラー表現、3−Dレンダリング・エンジン、および/または多数のGPUのような、ある種のサブシステム機構を、アプリケーション・プログラムが当該機能の最大性能状態を必要としない限り、ブロック210において、次に低い利用可能な性能状態に低下させる。前述のように、現在実行中のアプリケーション・プログラムが利用するハードウェア要件は、プログラムがシステム・メモリにロードされるときに、電力管理ルーチン110によって特定される。ブロック210において、この情報を参照して、第1性能低下状態において「削減」することができるハードウェア機構を特定することができる。更に、ブロック210において、現在実行中のアプリケーション・プログラムの要件による影響を受けない、他の電力維持対策を実施する。例えば、一実施形態では、ブロック210において、ビデオ・サブシステムにおけるディスプレイ・バックライトの明るさを最大値の80%にする。この実施形態では、メモリ、CPU、ネットワーク・デバイス等のようなその他の電力消費デバイスは、最大性能レベルで機能することが許可される。しかしながら、大容量記憶装置(例えば、ハード・ドライブ)は、機構低下状態に移され、この状態では、大容量記憶装置は、用いられていないときには、「スピン・ダウン」することができる。次いで、電力管理ルーチン110はブロック223に進む。ブロック223については、以下で更に詳しく説明する。
【0032】
判断ブロック212において、電力管理ルーチン110は、電源から利用可能な残存電力容量が最大値の40%から60%までの間であるか否か判定を行う。前述のように、ブロック202において比較を行い、利用可能な電力最大出力量から、コンピュータ上のデバイスに適した性能状態を特定する。図2に示すように、残存電力容量が最大値の40%から60%までの間である場合、電力管理ルーチン110はブロック214に進む。逆に、残存電力容量が最大値の40%未満である場合、電力管理ルーチン110はブロック216に進む。ブロック216については、以下で更に詳しく説明する。
【0033】
ブロック214において、電力管理ルーチン110は、本発明を実施するコンピュータ上のハードウェア・デバイスを、第2性能低下状態に遷移させる。一実施形態では、利用可能な電力最大出力が最大値の40%から60%までの間であるとき、ディスプレイ・サブシステム上で利用可能な機構が現在利用されていれる最中であっても、これらを「削減」する。例えば、共通のシステム表示タスクを「2−D」で実行し、計算精度を128ビットから64ビットに調節し、64ビット・テクスチャリングを32ビットに低下させ、カラー表現を32ビットから24ビットに程度を落とし、ディスプレイ・バックライトを最大値の明るさの70%に低下させる。メモリ、CPU、ネットワーク・デバイス等のようなその他のコンピュータ・コンポーネントは、最大性能状態で機能することが許可される。しかしながら、一実施形態では、大容量記憶装置は、次の性能低下状態に移され、この状態では、大容量記憶装置にアクセスするときに、電力制御「スピン・アップ」シーケンスを実行する。
【0034】
第2性能低下状態では、コンピュータ上でアプリケーション・プログラムがアクティブになるときのタイミングが、電力管理の判断に影響を及ぼす場合がある。例えば、一実施形態によれば、コンピュータが第2性能低下状態にある間に新しいアプリケーション・プログラムが実行を開始すると、このアプリケーションには、利用可能なデバイスのみというように、ハードウェア・デバイスが無効になって(de-featured)差し出される。別の一例として、コンピュータ上でアクティブなアプリケーション・プログラムが「スクリーン・セーバ」である場合、ある種の電力消費デバイスを性能低下状態に移す。一実施形態では、「スクリーン・セーバ」がアクティブであるとき、CPUは「P2」および「C1」性能状態に遷移する。次いで、電力管理ルーチン110はブロック223に進む。ブロック223については、以下で更に詳しく説明する。
【0035】
判断ブロック216において、電力管理ルーチン110は、電源から利用可能な残存電力容量が最大値の20%から40%までの間であるか否か判定を行う。前述のように、ブロック202において比較を行い、利用可能な電力最大出力量から、コンピュータ上のデバイスに適した性能状態を特定する。図2に示すように、残存電力容量が最大値の20%から40%までの間である場合、電力管理ルーチン110はブロック218に進む。逆に、残存電力容量が20%未満である場合、電力管理ルーチン110はブロック220に進む。ブロック220については、以下で更に詳しく説明する。
【0036】
ブロック218において、電力管理ルーチン110は、本発明を実施するコンピュータ上のハードウェア・デバイスを第3性能低下状態に遷移させる。利用可能な電源容量が最大値の20%から40%までの間であるとき、本発明を実施するコンピュータ上の電力維持デバイスが備えている機構を低下させて、現在実行中のアプリケーション・プログラムの基本的要件を満たすようにする。
【0037】
一実施形態によれば、電力管理ルーチン110は、ブロック218において現在実行中のアプリケーション・プログラムの基本的要件を満たすように、電力消費デバイス116(図1)の性能レベルを調節する。前述のように、現在実行中のアプリケーション・プログラムが利用するハードウェアの要件は、このプログラムがシステム・メモリにロードされるときに、電力管理ルーチン110によって特定される。ブロック218において、この情報を参照して、現在実行中のアプリケーション・プログラムの基本的要件を特定する。これに関して、アプリケーション・プログラム102はプログラム機能性を実装するために、電力消費デバイスを用いることもできる。しかしながら、アプリケーション・プログラムがそのデバイスの電力消費機構全ては必要としない場合もある。この場合、電力管理ルーチン110は、電力消費デバイスの機構を、アプリケーション・プログラム102の基本的要件に合わせる。例えば、第3性能低下状態に入るとき、電力管理ルーチン110はシステム・データにアクセスして、現在コンピュータ上でアクティブになっているアプリケーション・プログラムの種類を判定することができる。現在実行中のアプリケーション・プログラムには、ある種のグラフィック表現機構を必要とするものがない場合、例えば、ユーザがワード・プロセッシング・プログラム、データベース・アプリケーション等のような、テキスト系プログラムのみを実行しており、洗練されたグラフィクスのゲームを実行していない場合、コンピュータのディスプレイ・サブシステムを「テキストのみ」モードに移す。
【0038】
第3性能低下状態に入ると、性能またはデバイス状態(例えば、「D−状態」を更に削減させる。例えば、一実施形態によれば、システム・メモリを「自己リフレッシュ」モードに移し、電力使用の減少が性能の低下を伴う場合、ネットワーク・デバイスの性能を低下させる。更に、大容量記憶装置に、速度を落として動作するように要求する。例えば、コンピュータのハード・ドライブの動作速度を毎分7200回転から5400回転に低下させることができる。次いで、電力管理ルーチン110はブロック223に進む。ブロック223については、以下で更に詳しく説明する。
【0039】
判断ブロック220において、電力管理ルーチン110は、電源から利用可能な残存電力容量が最大値の20%未満であるか否か判定を行う。前述のように、ブロック202において比較を行い、利用可能な電力最大出力量から、コンピュータ上のハードウェア・デバイスに適した性能レベルを特定する。図2に示すように、残存電力容量が最大値の20%未満である場合、電力管理ルーチン110はブロック222に進む。逆に、残存電力容量が、任意の値に設定することができる危険レベルにある場合、オペレーティング・システムは終了過程(exit strategy)に入る。これは、本発明の範囲を超えている。この場合、電力管理ルーチン110は、ブロック195に戻り、誘起イベントが発生するのを待つ。
【0040】
図2に更に示すように、ブロック222において、電力管理ルーチン110は、本発明を実施するコンピュータ上のハードウェア・デバイスに、第4性能低下状態に遷移させる。第4性能低下状態は、積極的に電力を維持しつつもユーザが有意なタスクを実行することを許容するリソースを供給するように設計されている。一実施形態では、利用可能な電力最大出力量が最大値の20%未満であるとき、ディスプレイ・サブシステム上で利用可能なある種の機構がもはや使えなくなる。例えば、低性能のシステム・メモリを優先して、ビデオ・カードから利用可能な高性能ビデオ・メモリの使用を中断する。更に、一実施形態によれば、ビデオ・カードが用いる「パイプ」即ち通信チャネルの利用可能数を、現在のアプリケーション・プログラムの最小要件をサポートするのに必要な数に削減する。
【0041】
コンピュータが第4性能低下状態にあるとき、ビデオ・サブシステム外部のその他の電力消費デバイスの使用を一緒に更に「削減」するか、または停止する。例えば、一実施形態によれば、現在実行中のアプリケーション・プログラムには関係なく、CPU性能状態を「P0」から「P2」に程度を下げる。また、利用可能なシステム・メモリの量を、現在のアプリケーション・プログラムをサポートするのに必要な最小量に削減する。現在コンピュータに接続されていないネットワーク・デバイスをディスエーブルし、デバイスの検索を行なわなくてもよいようにする。更に、現在利用されていないいずれの電力消費デバイスも、アプリケーション・プログラムまたはユーザが必要としないのであれば、利用可能な最も深いデバイス状態(例えば、「D3」)に遷移させる。USBまたはFireWireドライブのような外部取り付け型の動作中交換可能デバイスは、当該動作可能中交換可能デバイスを必要とすることが指示する割り込みが発生するまで、保留状態に移しておく。次いで、電力管理ルーチン110はブロック223に進む。
【0042】
図2に示すように、判断ブロック223において、電力管理ルーチン110は、ブロック180においてシステム・メモリにロードしたアプリケーション・プログラムが終了したか否か判定を行う。一実施形態によれば、電力管理ルーチン110は、コンピュータ上でアクティブになっているアプリケーション・プログラム毎に、消費電力を規制するために用いられる。アプリケーション・プログラムが停止し、もはやコンピュータ上のプロセスとして表されない場合、電力管理ルーチン110は、停止したプログラムに関しては終了する。この例では、電力管理ルーチン110はブロック224に進み、ここで終了する。逆に、ブロック180においてシステム・メモリにロードしたアプリケーション・プログラムが停止していない場合、電力管理ルーチン110はブロック195に進み、プログラムが停止するまで、ブロック195から222までを繰り返す。
【0043】
以上、図2を参照しながら、電力維持機構の具体的な例、および利用可能な電源に基づいた性能低下状態への遷移について説明したが、この実施形態は限定ではなく一例として解釈してしかるべきである。例えば、以上の説明では、電力管理ルーチン110は、4つの性能低下状態を有すると記載した。しかしながら、他の実施形態では、電力管理ルーチン110は、特許請求する主題の範囲から逸脱することなく、性能低下状態がそれよりも多くてもまたは少なくてもよい。
【0044】
以上例示的な実施形態について図示し説明したが、本発明の主旨および範囲から逸脱することなく、種々の変更が可能であることは認められよう。
独占的所有権即ち特権を主張する発明の実施形態は、特許請求の範囲に定義されている。
図1
図2