(57)【要約】　【課題】　プロセッサの電力使用量を管理する、データ処理システム内の方法、装置、およびコンピュータに実施された命令を提供すること。　【解決手段】　現在のプロセッサ利用状況が現在のプロセッサ・スピードと比較されて、比較を形成する。現在のプロセッサ利用状況より大きい現在のプロセッサ・スピードに応答して現在のプロセッサ・スピードが減少される。この比較において、現在のプロセッサ利用状況より小さいプロセッサ・スピードに応答して現在のプロセッサ・スピードが増加される。この方法で、プロセッサ利用状況を満たすようにプロセッサ・スピードが調整される。したがってより小さいプロセッサ・スピードが必要であるとき、電力使用量を減少させるためにプロセッサ・スピードが減速される。さらに、電力管理は、データ処理システム上で実行中の特定のプログラムに基づくことができる。【選択図】　図３
2004139613.tif 000002
【特許請求の範囲】
【請求項１】
　データ処理システムにおいてプロセッサの電力使用量を管理する方法であって、
　現在のプロセッサ利用状況と現在のプロセッサ・スピードを比較して、比較を形成するステップと、
　前記比較において、前記現在のプロセッサ利用状況より小さいプロセッサ・スピードに応答して、現在のプロセッサ・スピードを増加させるステップとを含む方法。
【請求項２】
　前記比較において、前記現在のプロセッサ利用状況より大きいプロセッサ・スピードに応答して、前記現在のプロセッサ・スピードを減少させるステップをさらに含む、請求項１に記載の方法。
【請求項３】
　前記現在のプロセッサ利用状況をパーセンテージとして判定し、前記現在のプロセッサ・スピードをパーセンテージとして判定するステップをさらに含む、請求項２に記載の方法。
【請求項４】
　前記比較および増加ステップがイベントに応答して実行される、請求項１に記載の方法。
【請求項５】
　前記イベントが定期的なイベントである、請求項４に記載の方法。
【請求項６】
　前記イベントが前記データ処理システム内のプログラムの初期化である、請求項４に記載の方法。
【請求項７】
　前記イベントがアプリケーション内の状態の変化である、請求項１に記載の方法。
【請求項８】
　バスと、
　命令およびデータを格納する、前記バスに接続されたメモリと、
　前記バスに接続されたプロセッサ・ユニットであって、現在のプロセッサ利用状況と現在のプロセッサ・スピードを比較する命令を実行して比較を形成し、前記比較において前記現在のプロセッサ利用状況より小さいプロセッサ・スピードに応答して現在のプロセッサ・スピードを増加させ、前記比較において前記現在のプロセッサ利用状況より大きいプロセッサ・スピードに応答して前記現在のプロセッサ・スピードを減少させるプロセッサ・ユニットとを備えるデータ処理システム。
【請求項９】
　前記データ処理システムが、デスクトップ・コンピュータ、ノートブック・コンピュータ、パーソナル・デジタル・アシスタント、およびパームトップ・コンピュータの１つである、請求項８に記載のデータ処理システム。
【請求項１０】
　プロセッサ電力使用量を管理するデータ処理システムであって、
　現在のプロセッサ利用状況と現在のプロセッサ・スピードを比較して、比較を形成する比較手段と、
　前記比較において現在のプロセッサ利用状況より小さいプロセッサ・スピードに応答して現在のプロセッサ・スピードを増加させる増加手段とを備えるデータ処理システム。
【請求項１１】
　前記比較において前記現在のプロセッサ利用状況より大きいプロセッサ・スピードに応答して前記現在のプロセッサ・スピードを減少させる減少手段をさらに備える、請求項１０に記載のデータ処理システム。
【請求項１２】
　前記現在のプロセッサ利用状況をパーセンテージとして判定し、前記現在のプロセッサ・スピードをパーセンテージとして判定する判定手段をさらに備える、請求項１１に記載のデータ処理システム。
【請求項１３】
　前記比較手段と前記増加手段がイベントに応答して実行される、請求項１０に記載のデータ処理システム。
【請求項１４】
　前記イベントが定期的なイベントである、請求項１３に記載のデータ処理システム。
【請求項１５】
　前記イベントが前記データ処理システム内のプログラムの初期化である、請求項１３に記載のデータ処理システム。
【請求項１６】
　前記イベントがアプリケーション内の状態の変化である、請求項１３に記載のデータ処理システム。
【請求項１７】
　プロセッサ電力使用量を管理するコンピュータ可読媒体内のコンピュータ・プログラム・プロダクトであって、
　現在のプロセッサ利用状況と現在のプロセッサ・スピードを比較して、比較を形成する第１の命令と、
　前記比較において、前記現在のプロセッサ利用状況より小さいプロセッサ・スピードに応答して現在のプロセッサ・スピードを増加させる第２の命令とを備えるコンピュータ・プログラム・プロダクト。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、同じ日付に出願され、同一の譲受人に譲渡され、本明細書に参照として組み込まれる、「COMPUTER POWER MANAGEMENT IN DATA PROCESSING SYSTEM BASED ON REQUIRED BATTERY LIFE」という題名で、シリアル番号０９／５２２１９６、アトニー・ドケット番号ＡＵＳ０００１３６ＵＳ１の特許出願に関係する。
【０００２】
　本発明は、一般に改善されたデータ処理システムに関し、詳細には、データ処理システム内の電力リソースを管理する方法、装置、およびコンピュータにより実施される命令に関する。さらに詳細には、本発明は、プロセッサ利用状況に基づいてデータ処理システム内の電力管理をする方法、装置、およびコンピュータにより実施された命令を提供する。
【背景技術】
【０００３】
　コンピュータは、今日の社会に浸透した。コンピュータは、仕事、学校、および家庭において一般化した。仕事においてコンピュータは、ワード・プロセッシング、スプレッドシート生成、およびプレゼンテーションなど様々な業務のために使用される。ワークステーションおよびパーソナル・コンピュータに加えて、ノートブック・コンピュータ、パームトップ・コンピュータなどのモバイル・コンピュータが、１つの場所から別の場所に移動するユーザに通常使用される。ノートブック・コンピュータは、しばしばデスクトップ・コンピュータの代わりをし、顧客の所在地への旅行などの旅行に、ユーザが仕事を持って行くことを可能にする。ノートブック・コンピュータは、ユーザがオフィスの外部にいる間に、ユーザがオフィスと通信し、文書その他のデータを交換することを可能にする手段としてもまた使用される。
【０００４】
　これらのモバイル・コンピュータは、リチウム電池など有限な電源によって電力供給される。電力管理プログラムおよびシステムにより、ユーザはモバイル・コンピュータにおける電力消費を制御することができるようになる。通常、プロセッサ・スピードが速いほどより多くの電力が消費される。さらに、モバイル・コンピュータ上でより多数のデバイスが活動状態にあるとき、より多くの電力が消費される。
【０００５】
　現在ユーザは、プロセッサに対してより低い性能およびより低い電力使用モードを選択することによって、バッテリ寿命を最適化することができる。本発明は、このアプローチが典型的ユーザのコンピュータ使用の動的本質を考慮していないことを認識する。例えばプログラマは、ソース・ファイルを編集するのに時間を過ごす。その後、そのプログラマがプログラムをコンパイルする。次いで、プログラムの編集およびデバッグが行われる。この段階は通常、対話型デバッグ・プログラムを用いて達成され、ユーザは、コンパイルされたプログラムをデバッグ・プログラムを用いてステップ毎に調査する。
【０００６】
　ソース・ファイルを編集すること、およびプログラムを編集しデバッグすることは、高プロセッサ・スピードなど大量のプロセッサ・リソースを必要としない。文字をタイプ中に、たとえプロセッサがそのプロセッサに対して可能な最低スピードまで遅くなっても、ユーザは性能の劣化を認識しない。
【０００７】
　他方、プログラムをコンパイルすることは、コンピュータ上で文字をタイプすることより大量のプロセッサ・リソースを必要とする。コンパイルされるコードの量次第で、プロセッサ・スピードは、分単位でコンパイル時間に影響する可能性がある。現在利用可能な手法では、ファイルを編集するときに不必要に高スピードでプロセッサを動作させる結果、ユーザは、遅いコンパイル時間とより長いバッテリ寿命対、速いコンパイル時間とより短いバッテリ寿命の間の選択を強いられる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
　したがって、プロセッサ利用状況に基づいてコンピュータ内の電力使用量を管理する改善された方法および装置があれば有利である。
【課題を解決するための手段】
【０００９】
　本発明は、プロセッサの電力使用量を管理する、データ処理システム内の方法、装置、およびコンピュータに実施された命令を提供する。現在のプロセッサ利用状況と現在のプロセッサ・スピードが比較されて、比較が形成される。現在のプロセッサ利用状況より大きい現在のプロセッサ・スピードに応答して、現在のプロセッサ・スピードが減少される。この比較において現在のプロセッサ利用状況より小さいプロセッサ・スピードに応答して現在のプロセッサ・スピードが増加される。この方法では、プロセッサ利用状況を満たすためにプロセッサ・スピードが調整される。したがって、より小さいプロセッサ・スピードが必要であるときには、電力使用量を減少させるためにプロセッサ・スピードが低下される。
【００１０】
　さらに電力管理は、そのデータ処理システム上で実行される特定のプログラムに基づくことができる。データ処理システムにおいてプログラムが識別されて、識別されたプログラムが形成される。この識別されたプログラムは、実行のために初期化されているか、または現在実行されているプログラムでよい。識別されたプログラムに基づいて電力使用量が設定される。電力管理のための特定のプログラムを選択するためにユーザ入力を使用することができる。
【発明を実施するための最良の形態】
【００１１】
　次に図を、特に図１を参照すると、本発明の好ましい実施形態による、中に本発明を実施することができるデータ処理システムの図による表現が示されている。ケース１０２、ディスプレイ１０４、キーボード１０６、記憶装置１０８、およびタッチパッド１１０を含むノートブック・コンピュータ１００が示されている。記憶装置１０８は、フロッピ・ドライブ、ハード・ディスク・ドライブ、および他のタイプの永久／取外し可能記憶媒体を含むことができる。タッチパッド１１０に加えて、またはその代わりに、例えば、ジョイスティック、マウス、タッチ・スクリーン、トラックボール、マイクなど他の入力装置をノートブック・コンピュータ１００に含めることができる。
【００１２】
　描かれた図にはコンピュータが示されているが、デスクトップ・コンピュータ、パームトップ・コンピュータ、パーソナル・デジタル・アシスタント（ＰＤＡ）など他のタイプのデータ処理システムに、本発明の他の実施形態を実施することができる。パームトップ・コンピュータは、一方の手に持ち他方の手で操作することができるほど充分小さいコンピュータである。パームトップは、データ入力アプリケーションのための特別なキーボードまたはキーパッドを有するか、または小さいqwertyキーボードを有することができる。ＰＤＡは、個人情報のためのオーガナイザ（organizer）として機能するハンドヘルド・コンピュータである。これは一般に、少なくとも氏名および住所データベース、to-doリスト、およびノート・テイカ（note taker）を含む。ＰＤＡはペンに基づき、メニュー上の選択肢をたたくため、および印刷された文字を入力するためにスタイラス（stylus）を用いる。このユニットは、ペンでたたかれる小さいオンスクリーン（on-screen）キーボードもまた含むことができる。
【００１３】
　次に図２を参照すると、中に本発明を実施することができるデータ処理システムのブロック図が示されている。データ処理システム２００は、本発明の処理を実施するコードまたは命令を中に配置することができる、図１のノートブック・コンピュータ１００などのコンピュータの一例である。データ処理システム２００は、ＰＣＩ（peripheral component interconnect、周辺コンポーネント相互接続）ローカル・バス・アーキテクチャを用いる。図に示した例はＰＣＩバスを用いているが、ＡＧＰ（Accelerated Graphical Port）およびＩＳＡ（Industry Standard Architecture）など他のバス・アーキテクチャを使用することができる。プロセッサ２０２および主記憶２０４は、ＰＣＩブリッジ２０８を介してＰＣＩローカル・バス２０６に接続される。ＰＣＩブリッジ２０８は、プロセッサ２０２に対する統合メモリ・コントローラおよびキャッシュ・メモリもまた含むことができる。ＰＣＩローカル・バス２０６に対する他の接続は、直接コンポーネント相互接続またはアドイン・ボードを介して行うことができる。図に示された例では、ローカル・エリア・ネットワーク（ＬＡＮ）アタプタ２１０、スモール・コンピュータ・システム・インタフェース（ＳＣＳＩ）ホスト・バス・アタプタ２１２、および拡張バス・インタフェース２１４が、直接コンポーネント接続によってＰＣＩローカル・バス２０６に接続される。対照的にオーディオ・アタプタ２１６、グラフィックス・アタプタ２１８、および電力管理２１９がＰＣＩローカル・バス２０６に接続される。拡張バス・インタフェース２１４は、キーボードとタッチパッド２２０、モデム２２２、および他のメモリ２２４のための接続を提供する。ＳＣＳＩホスト・バス・アタプタ２１２は、ハード・ディスク・ドライブ２２６とＣＤ−ＲＯＭドライブ２２８のための接続を提供する。
【００１４】
　オペレーティング・システムは、プロセッサ２０２上で稼働し、図２のデータ処理システム２００の中の様々なコンポーネントの制御を調整し提供するために用いられる。オペレーティング・システムは、Microsoft Corporationから市販のWindows 2000など市販のオペレーティング・システムでよい。図２のハードウェアが実施例に非常に依存する可能性があることを当業者は理解するであろう。図２に示されたハードウェアに加えて、またはその代わりに、フラッシュＲＯＭ（または等価な不揮発性メモリ）、光ディスク・ドライブなど他の内部ハードウェアまたは周辺装置を使用することができる。また、本発明の処理は、マルチプロセッサ・データ処理システムにも応用することができる。
【００１５】
　さらに他の例として、データ処理システム２００は、オペレーティング・システム・ファイルおよび／またはユーザ生成データを格納する不揮発性メモリを提供するためにＲＯＭおよび／またはフラッシュＲＯＭとともに構成されたＰＤＡ装置でよい。これらの例においてデータ処理システム２００は、バッテリまたは他の携帯電源によって電力供給される。
【００１６】
　図２に示された例および上述の例は、アーキテクチャ上の制限を意味するものではない。例えばデータ処理システム２００は、ＰＤＡの形態を取ることに加えて、ノートブック・コンピュータ、ハンド・ヘルド・コンピュータ、または携帯電話でもよい。
【００１７】
　本発明の処理は、例えば主記憶２０４、メモリ２２４などのメモリ内、または１つまたは複数の周辺装置２２６〜２２８内に配置することができる、コンピュータに実施された命令を用いて、プロセッサ２０２によって実行される。さらに本発明の処理は、電力管理２１９とともに実施することができる。電力管理２１９は、例えばレジスタ、ＢＩＯＳ（Basic Input Output System、基本入出力システム）、およびデータ処理システム２００においてハードウェアに対する電力制御管理を実行するために用いられるテーブルを含むことができる。電力管理機能および処理は、データ処理システム２００上のオペレーティング・システム内に実施することもまたできる。
【００１８】
　本発明は、データ処理システム内のリソースの利用状況に基づいて、データ処理システムを稼働させるのに充分な電力リソースを維持しながら性能を最大化するために、データ処理システム内の電力消費を管理する方法、装置、およびコンピュータに実施された命令を提供する。図に示された例では、データ処理システム内に配置された１つまたは複数のプロセッサに対して、プロセッサ・スピードを基準にしてリソース調整がなされる。本発明の機構によって監視されるリソース使用状況は、データ処理システム内のアプリケーションまたはプログラムの実行または稼働に基づく。
【００１９】
　実施例次第で、本発明の機構は、プロセッサ利用状況に基づいてプロセッサのスピードを自動的に調整することができる。通常ユーザは、データ処理システム上で、プロセッサ集約的なアプリケーションが実行されるときに、プロセッサ・スピードが増加することを希望する。本発明の機構は、より多くのプロセッサ・リソースが消費されているときにプロセッサ・スピードを増加させる。そのアプリケーションが終了するとき、本発明の機構は、データ処理システム内で消費される電力量を減少させるためにプロセッサ・スピードを減少させる。
【００２０】
　あるいは、ユーザは様々なプログラムに対してプロセッサ・スピードを設定することもまたできる。このプロセッサ・スピードの設定は、様々な機構によって達成することができる。例えばユーザは、アプリケーションを表すアイコンをフォルダの中に置くことができる。フォルダ内に配置されたアイコンに関連付けられた各アプリケーションにより、それらのアプリケーションが実行されるときに、データ処理システムがプロセッサ・スピードを予め選択されたあるスピードに設定するようになる。さらにユーザは、アプリケーションに対するアイコンを特定のフォルダ内に置く必要なく、プロセッサ・スピードに関連付けられたアプリケーションを選択することができる。そのようなアプリケーションは、例えばアイコン中のテキストの色の変更、テキストに対するフォント・タイプの変更、またはアイコン自体の外見の何らかの変更など何らかのグラフィカル・インジケータに基づくグラフィカル・ユーザ・インタフェースで識別することができる。さらにプログラムの全セットまたはアプリケーションのサブディレクトリをそのような方法で関連付けることができる。ユーザは、プロセッサ・スピードを選択することによって、１組のアプリケーションに対するスピードを設定することができる。このプロセッサ・スピードは、例えばクロック・スピード、プロセッサのフルスピードに対するパーセンテージなど様々な形態を取ることができる。
【００２１】
　次に図３を参照すると、本発明の好ましい実施形態による、必要とされるバッテリ寿命に基づく電力管理において使用されるコンポーネントの図が示されている。この例では、ユーザは、オペレーティング・システム３０２およびプラットフォーム・ハードウェア３０４と対話するアプリケーション３００を使用することができる。オペレーティング・システム３０２は、カーネル３０６、電力管理（ＰＭ）オペレーティング・システム（ＯＳ）モジュール３０８、デバイス・ドライバ３１０、および電力管理ドライバ３１２を含む。カーネル３０６は、オペレーティング・システム３０２の一部であり、メモリ内に常駐し、基本的サービスを提供する。カーネル３０６は、プラットフォーム・ハードウェア３０４に最も近いオペレーティング・システム３０２の一部であり、ハードウェアを直接またはハードウェアを動かすデバイス・ドライバ３１０など他のソフトウェア層に対するインタフェースを活動化することができる。
【００２２】
　ＰＭ　ＯＳモジュール３０８は、データ処理システムの電力管理において使用する処理を提供する。このモジュールは、例えばプロセッサ・スピード、スリープ時間、および表示強度など様々な電力管理機能をユーザが変更することを可能にするユーザ・インタフェースを提供することができる。さらにＰＭ　ＯＳモジュール３０８は、現在の電力設定および利用可能なバッテリ寿命の表示などの情報をユーザに提供することもまたできる。
【００２３】
　電力管理ドライバ３１２は、電力管理インタフェース３１４と対話して、プラットフォーム・ハードウェア３０４の制御を提供する。電力管理インタフェース３１４は、図２の電力管理２１９として実施することができる。このインタフェースは、いくつかの異なる標準を使用して実施することができる。例えば、このインタフェースは、高度構成および電力インタフェース（Advanced Configuration and Power Interface、ＡＣＰＩ）仕様を用いて実施することができる。この仕様は、コンピュータが、ユーザからアクセスされたときに直ちに立ち上がること、およびそれらのコンピュータが切られた後に、自動化されたタスクを実行するために利用可能のままにすることを可能にするなど様々な電力管理機能を可能にする。この仕様は、コア電力管理機能に対するレジスタ・レベル・インタフェース、および他のシステム固有のハードウェア機能に対する記述的インタフェースを記載する。ＡＣＰＩは、プロセッサ・アーキテクチャおよびオペレーティング・システムから独立した実施を可能にするが、既存の電力管理および構成インタフェースと現在互換である。ＡＣＰＩに対するより多くの情報は、例えば、http://www.teleport.com/〜acpi/にある「Advanced Configuration and Power Interface Specification」において見ることができる。
【００２４】
　図に示された例では、ＰＭ　ＯＳモジュール３０８は、本発明の電力管理機構を実施することができる。あるいは、アプリケーション３００などほかの場所にこの機構を実施することができる。本発明の機構は、ＰＭドライバ３１２およびＰＭインタフェース３１４を介してプラットフォーム・ハードウェア３０４に対する様々な呼び出しにより、プロセッサ利用状況または他の電力使用量を絶えず監視することができる。本発明の機構は、データ処理システム内のリソース利用状況を監視し、例えばプロセッサ、モデムなど様々なデバイスに対する性能を、デバイスの使用状況に応じて調整する。これらの要素に基づいて、本発明の機構は、データ処理システムの構成を調整し、リソース利用状況を満たすためにデータ処理システムの性能が最大化される方法で、データ処理システムが動作することを可能にする。
【００２５】
　例えばプロセッサ利用状況が増加するとき、プロセッサ集約的な動作を必要とするアプリケーションに対する性能を増加させるために、本発明の機構によってプロセッサ・スピードが増加される。これらの動作には、例えばプログラムをコンパイルすること、コンピュータ支援作図操作を実行すること、またはスプレッドシート計算が含まれる。同様にプロセッサ利用状況が減少するとき、電力リソースを保存するために、プロセッサ・スピードが減速される。より遅いスピードは、ユーザ対話または文書に文字をタイプすることなどの動作のために使用することができる。
【００２６】
　この機構は、時間の制約を満たしながら、データ処理システムの性能を最適化するように設定される。図に示された例では、データ処理システムの構成における変更は、例えば表示強度、プロセッサ・スピード、デバイスの活動化、デバイスの非活動化など様々な形態を取ることができる。例えば、アプリケーションによって広く使用されるデバイスが、より長い時間または常に電力供給されたままであるのに対し、アプリケーションによって使用されないデバイスは、直ちにまたはより頻繁に切るかまたは電源を落すことができる。構成におけるこれらの変更は、ＰＭドライバ３１２およびＰＭインタフェース３１４を介してプラットフォーム・ハードウェア３０４に呼び出しを生成するＰＭ　ＯＳモジュール３０８により実施される。
【００２７】
　次に図４に移ると、本発明の好ましい実施形態による、実行中アプリケーションに基づく電力管理のための処理の流れ図が示されている。この処理は、ユーザが、データ処理システム内の電力管理のためにプログラムまたはアプリケーションを選択するときに使用される。
【００２８】
　処理は、アプリケーションを監視することによって開始する。（ステップ４００）。ステップ４００は、イベントに応答して行われる。イベントは、１つまたは複数のクロック・サイクルなど定期的でよい。さらにイベントは、アプリケーションの起動または終了に応答してよい。また、イベントはプロセッサ利用状況の変更を含むことができる。このステップは、データ処理システムにおいて実行中のアプリケーションを監視すること、アプリケーションの起動を監視すること、またはその両方に適用することができる。アプリケーションが検出されると、アプリケーションが識別される（ステップ４０２）。このアプリケーションが選択されたアプリケーションであるかどうかについて判定が行われる（ステップ４０４）。この判定は、様々な機構を用いて行うことができる。例えばこの識別されたアプリケーションを、フラット・ファイル、アレイ、データベースなどデータ構造内に格納されたアプリケーションの識別に対してチェックすることができる。
【００２９】
　このアプリケーションが選択されたアプリケーションである場合、そのアプリケーションに対するプロセッサ・スピードが識別される（ステップ４０６）。このプロセッサ・スピードは、いくつかの様々な方法で識別または選択することができ、例えば、データ構造内のアプリケーションにプロセッサ・スピードを関連付けるか、すべてのアプリケーションにデフォルトまたは事前設定されたプロセッサ・スピードを与えることができる。次いで、より多数のアプリケーションが存在するかどうかについて判定が行われる（ステップ４０８）。より多数のアプリケーションが存在する場合、処理はステップ４０２に戻る。そうでない場合、プロセッサ・スピードは、現在実行中または初期化されたアプリケーションのすべてに対して識別された最速のスピードに設定され（ステップ４１０）その後処理は終了する。プロセッサ・スピードは、いくつかの方法で調整することができる。通常、プロセッサのためのクロックが制御される。Intel Corporationのプロセッサなど現在市販のプロセッサは、プロセッサに対するプロセッサ・クロック論理回路を制御するために使用することができるレジスタまたは他の制御を提供する。さらに詳細は、例えば、「Advanced Configuration and Power Interface Specification」において見ることができる。
【００３０】
　再びステップ４０４を参照すると、アプリケーションが、電力管理が実行される選択されたアプリケーションであると識別されない場合、上術のように、処理はステップ４０８に進む。
【００３１】
　次に図５を参照すると、本発明の好ましい実施形態による、電力管理のためにアプリケーションを選択する処理の流れ図が示されている。図５の処理はこれらの例において、グラフィカル・ユーザ・インタフェースを用いて実施され、ユーザ入力およびユーザに対する情報の表示を容易にする。処理は、電力管理のためのアプリケーションの選択を受け取ることによって開始する（ステップ５００）。このステップは、いくつか様々な機構を用いて達成することができる。例えばユーザがアプリケーションの名前を入力するか、アプリケーションのリストからアプリケーションを選択するか、またはグラフィカル・ユーザ・インタフェース内の選択されたフォルダまたはエリア内にアプリケーションをグラフィック的に置くことによって入力を受け取ることができる。
【００３２】
　次いで処理は、ユーザがプロセッサ・スピードを選択するように促す（ステップ５０２）。プロセッサ・スピードを受け取る（ステップ５０４）。プロセッサ・スピードの受領は、いくつかの様々なユーザ入力機構を用いて達成することができる。例えばユーザは、プロセッサ・スピードを入力するか、いくつかの選択肢からスピードを選択するか、ダイアル、スクロール・バー、ボタンなどグラフィカル制御を用いてスピードを選択することができる。選択されたスピードは、アプリケーションに関連付けられる（ステップ５０６）。この関連付けは、選択されたスピードをアプリケーションの識別とともにデータ構造内に格納することによって達成することができる。次に、アプリケーションに対して電力管理が選択されたという表示と共に、データ構造に対するアイコンが表示され（ステップ５０８）、その後処理は終了する。この表示は、例えば選択されたフォルダ内のアイコンの表示、アイコンと共に表示されたテキストのグラフィカル・フォーマットの変更、電力管理を示すために何らかのグラフィカル識別子を含むようにアイコンを変更するなど様々な形態を取ることができる。
【００３３】
　さらに本発明の機構は、ユーザ入力を必要とすることなく電力管理を提供することができる。次に図６を参照すると、本発明の好ましい実施形態による、プロセッサ利用状況に基づくコンピュータ電力管理を自動的に可能にする処理の流れ図が示されている。図６に示された処理は、例えば定期的なイベント、プロセッサ利用状況の変更を引き起こすイベントなどのイベントに応答して起動される。
【００３４】
　処理は、現在のプロセッサ利用状況をパーセンテージとして判定することによって開始する（ステップ６００）。これらの例において、プロセッサ利用状況は、０パーセントから１００パーセントである。次に、現在のプロセッサ・スピードがプロセッサに対する最低スピードから最高スピードの範囲に対するパーセンテージとして判定される（ステップ６０２）。プロセッサ・スピードは、最低スピードに対して０パーセント、最高スピードに対して１００パーセントが割り当てられる。
【００３５】
　プロセッサ利用状況割合を決定するために、プロセッサ・スピードについて比較が行われる（ステップ６０４）。この比較は、現在のプロセッサ利用状況と現在のプロセッサ・スピードのパーセンテージ間で行われる。図に示された例では、１対１割合が選択される。この例では、処理は１対１割合を維持し、この中ではパーセンテージが同じに保たれる。例えば、プロセッサ利用状況が７５パーセントである場合、プロセッサ・スピードは最大プロセッサ・スピードの７５パーセントとすべきである。もちろんプロセッサ利用状況とプロセッサ・スピードを比較するために多数の異なる割合およびタイプの機構を使用することができる。
【００３６】
　プロセッサ・スピードがプロセッサ利用状況より小さい場合、プロセッサ・スピードは１単位だけ増加され（ステップ６０８）、次いで処理はステップ６００に戻る。これらの例において、「単位」は、特定のプロセッサを調整する際に許される粒度の最小増分である。もちろん実施例次第で、等しいか等しくない他のステップを行うことができる。これら例におけるプロセッサ・スピードは、パーセンテージを指すが、クロック・サイクルなど他の方法で表現することもまたできる。
【００３７】
　他方でプロセッサ・スピードがプロセッサ利用状況より大きい場合、プロセッサ・スピードは１単位だけ減速され（ステップ６０６）、次いで処理はステップ６００に戻る。
【００３８】
　さらに、上述の処理はプロセッサ使用状況におけるスパイクを考慮に入れ、そのようなスパイクがプロセッサ・スピードなどのリソース使用状況の調整に影響するのを防ぐこともまたできる。例えばプログラムをロードすることは、リソースを使用する際にわずかにスパイクを引き起こす可能性がある。プログラム自体は、大量のリソースを使用しないかもしれない。処理は、使用状況における短いスパイクが起こるプログラム・ローディングのような状況を考慮に入れることができ、調整を行う際にそれらのスパイクを無視する。そのような機構は、使用状況における変更が単なるスパイクまたは一時的状況ではないことを確実にするために、リソースを調整する前に遅れ時間を提供するなどの機構を含むことができる。
【００３９】
　したがって本発明は、データ処理システム内の電力管理のための改善された方法、装置、およびコンピュータに実施された命令を提供する。本発明の機構は、電力消費を動的基準で減少させながら、データ処理システムから必要とされる最高量の性能を提供する。図に示された例では、プロセッサのプロセッサ・スピードは、電力消費を減少させながら性能を提供するために調整されるパラメータである。ユーザが電力管理のためのアプリケーションを選択するか、あるいは、本発明の機構がデータ処理システム内のリソース使用状況を監視することができる。ユーザ選択を可能にすると、高プロセッサ・スピードを必要としないプログラムを選択して、これらのプログラムがプロセッサによって実行中にプロセッサ・スピードを減速させることができる。ユーザは、より高いプロセッサ・スピードを必要とするプログラムを選択して、必要なときにより高い性能が提供されるようにすることができる。また、たとえアプリケーションがプロセッサ集約的でなくても、増加したプロセッサ・パワーをアプリケーションに提供する選択を行うこともできる。
【００４０】
　本発明を完全に機能するデータ処理システムの文脈において述べて来たが、本発明の処理をコンピュータ可読媒体の命令の形態および様々な形態で配ることが可能であること、ならびに分配するために実際に用いられる特定タイプの信号保有媒体にかかわらず、本発明が等しく適用されることを当業者なら理解することに留意されたい。コンピュータ可読媒体の例には、フロッピ・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの記録可能タイプ媒体、デジタルおよびアナログ通信接続、例えば高周波および光波伝送などの伝送形態を用いる有線または無線通信接続などの伝送タイプ媒体が含まれる。コンピュータ可読媒体は、特定のデータ処理システムにおける実際の使用のために復号化されるコード化フォーマットの形態を取ることができる。
【００４１】
　本発明の説明は、例示および説明の目的で提示したものであり、本発明を開示された形態に網羅し制限するものではない。多数の修正および変形形態が当業者には明らかであろう。本発明の機構は、データ処理システム内のプロセッサ以外のデバイスの電力管理に応用することができる。例えばこれらのプロセッサは、記憶装置、通信装置など他のデバイスに応用することができる。ハード・ドライブなどの記憶装置では、ハード・ディスク・ドライブの電源が落される前に、ハード・ドライブ・アクセスを必要とするアプリケーションにより、データ処理システムがタイム・アウトをディスエーブルにするか、またはタイム・アウトを増加させるようにすることができる。これらの動作は、ハード・ディスク・ドライブをパワー・アップしなければならないことにより引き起こされる性能ヒットを減少させる役割を果たす。またこの処理は、モニタまたは液晶表示（ＬＣＤ）スクリーンに応用することもできる。ＬＣＤスクリーンでは、電力リソース使用状況を変更するため輝度を調整することができる。本発明の原理、実際の応用を最もよく説明するために、ならびに他の当業者が、意図した特定の使用法に適した様々な修正を伴う様々な実施形態に対して本発明を理解することができるように実施形態を選び述べた。
【００４２】
　まとめとして、本発明の構成に関して以下の事項を開示する。
【００４３】
（１）データ処理システム内の有限な電源を管理するデータ処理システム内の方法であって、
　データ処理システム内のプログラムを識別して識別されたプログラムを形成するステップと、
　識別されたプログラムに基づいて電力使用量を設定するステップとを含む方法。
（２）前記電力使用量がデータ処理システム内のデバイスの電力使用量である、上記（１）に記載の方法。
（３）前記設定ステップが、前記識別されたプログラムに基づいて個々のデバイスを選択的に電源投入および切断するステップを含む、上記（２）に記載の方法。
（４）前記デバイスが、ディスプレイ、モデム、ネットワーク・アタプタ、フロッピ・ディスク・ドライブ、ハード・ディスク・ドライブ、ＣＤ−ＲＯＭドライブの少なくとも１つである、上記（２）に記載の方法。
（５）前記電力使用量がプロセッサ電力使用量である、上記（１）に記載の方法。
（６）前記プロセッサ電力使用量がプロセッサ・スピードに基づき、前記設定ステップがプロセッサ・スピードを設定することを含む、上記（５）に記載の方法。
（７）前記データ処理システム内のプロセッサが第１プロセッサ・スピードを実行し、前記設定ステップが、
　前記識別されたプログラムが前記第１プロセッサ・スピードより速いプロセッサ・スピードを必要とするかどうかを判定するステップと、
　前記識別されたプログラムがより速いプロセッサ・スピードを必要とするという判定に応答して、プロセッサ・スピードを第２プロセッサ・スピードに増加させるステップとを含む、上記（６）に記載の方法。
（８）前記第２プロセッサ・スピードが、前記識別されたプログラムの最適の性能を可能にするスピードである、上記（７）に記載の方法。
（９）前記第２プロセッサ・スピードがユーザ設定プロセッサ・スピードである、上記（７）に記載の方法。
（１０）前記識別および設定ステップが、前記データ処理システム上で実行中の各プログラムに対して実行される、上記（１）に記載の方法。
（１１）前記設定ステップが、前記電力使用量を、最高電力使用量を必要とする特定のプログラムの電力使用量に設定するステップを含む、上記（１０）に記載の方法。
（１２）前記識別ステップが、
　前記プログラムの起動を検出するステップと、
　前記プログラムが１組の予め選択されたプログラムの中にあるかどうかを判定するステップと、
　前記プログラムが前記１組の予め選択されたプログラムの中にあるという判定に応答して、前記プログラムを選択されたプログラムとして識別するステップとを含む、上記（１）に記載の方法。
（１３）前記１組の予め選択されたプログラムが、特定のフォルダの中に配置されたプログラムと識別される、上記（１２）に記載の方法。
（１４）前記１組の予め選択されたプログラムが、前記１組の予め選択されたプログラムのそれぞれに標識を関連付けることによって識別される、上記（１２）に記載の方法。
（１５）前記１組の予め選択されたプログラムがグラフィカル識別子を用いて前記データ処理システム上に表示される、上記（１２）に記載の方法。
（１６）前記有限な電源がバッテリである、上記（１）に記載の方法。
（１７）前記データ処理システムが、マルチプロセッサ・データ処理システムである、上記（１）に記載の方法。
（１８）前記データ処理システムが、デスクトップ・コンピュータ、ラップトップ・コンピュータ、パーソナル・デジタル・アシスタント、およびパームトップ・コンピュータの１つである、上記（１）に記載の方法。
（１９）前記識別および設定ステップが、イベントに応答して実行される、上記（１）に記載の方法。
（２０）前記イベントが定期的なイベントである、上記（１９）に記載の方法。
（２１）データ処理システムにおいてプロセッサの電力使用量を管理する方法であって、
　現在のプロセッサ利用状況と現在のプロセッサ・スピードを比較して、比較を形成するステップと、
　前記比較において、前記現在のプロセッサ利用状況より小さいプロセッサ・スピードに応答して、現在のプロセッサ・スピードを増加させるステップとを含む方法。
（２２）前記比較において、前記現在のプロセッサ利用状況より大きいプロセッサ・スピードに応答して、前記現在のプロセッサ・スピードを減少させるステップをさらに含む、上記（２１）に記載の方法。
（２３）前記現在のプロセッサ利用状況をパーセンテージとして判定し、前記現在のプロセッサ・スピードをパーセンテージとして判定するステップをさらに含む、上記（２２）に記載の方法。
（２４）前記比較および増加ステップがイベントに応答して実行される、上記（２１）に記載の方法。
（２５）前記イベントが定期的なイベントである、上記（２４）に記載の方法。
（２６）前記イベントが前記データ処理システム内のプログラムの初期化である、上記（２４）に記載の方法。
（２７）前記イベントがアプリケーション内の状態の変化である、上記（２１）に記載の方法。
（２８）バスと、
　命令およびデータを格納する、前記バスに接続されたメモリと、
　前記バスに接続されたプロセッサ・ユニットであって、現在のプロセッサ利用状況と現在のプロセッサ・スピードを比較する命令を実行して比較を形成し、前記比較において前記現在のプロセッサ利用状況より小さいプロセッサ・スピードに応答して現在のプロセッサ・スピードを増加させ、前記比較において前記現在のプロセッサ利用状況より大きいプロセッサ・スピードに応答して前記現在のプロセッサ・スピードを減少させるプロセッサ・ユニットとを備えるデータ処理システム。
（２９）前記データ処理システムが、デスクトップ・コンピュータ、ノートブック・コンピュータ、パーソナル・デジタル・アシスタント、およびパームトップ・コンピュータの１つである、上記（２８）に記載のデータ処理システム。
（３０）バスと、
　命令およびデータを格納する、前記バスに接続されたメモリと、
　前記バスに接続されたプロセッサ・ユニットであって、前記データ処理システムにおいてプログラムを識別して識別されたプログラムを形成し、前記識別されたプログラムに基づいて電力使用量を設定する命令を実行するプロセッサ・ユニットとを備えるデータ処理システム。
（３１）前記データ処理システムが、デスクトップ・コンピュータ、ノートブック・コンピュータ、パーソナル・デジタル・アシスタント、およびパームトップ・コンピュータの１つである、上記（３０）に記載のデータ処理システム。
（３２）データ処理システム内の有限な電源を管理するデータ処理システムであって、
　前記データ処理システムにおいてプログラムを識別して、識別されたプログラムを形成する識別手段と、
　前記識別されたプログラムに基づいて電力使用量を設定する設定手段とを備えるデータ処理システム。
（３３）前記電力使用量が前記データ処理システム内のデバイスの電力使用量である、上記（３２）に記載のデータ処理システム。
（３４）前記設定手段が、前記識別されたプログラムに基づいて個々のデバイスを選択的に電源投入および切断する転換手段を備える、上記（３３）に記載のデータ処理システム。
（３５）前記デバイスが、ディスプレイ、モデム、ネットワーク・アタプタ、フロッピ・ディスク・ドライブ、ハード・ディスク・ドライブ、およびＣＤ−ＲＯＭドライブの少なくとも１つである、上記（３３）に記載のデータ処理システム。
（３６）前記電力使用量が、プロセッサの電力使用量である、上記（３２）に記載のデータ処理システム。
（３７）前記プロセッサの電力使用量がプロセッサ・スピードに基づき、前記設定手段が前記プロセッサ・スピードの設定を含む、上記（３６）に記載のデータ処理システム。
（３８）前記データ処理システム内のプロセッサが第１プロセッサ・スピードを実行し、前記設定手段が、
　前記識別されたプログラムが、前記第１プロセッサ・スピードより速いプロセッサ・スピードを必要とするかどうかを判定する判定手段と、
　前記識別されたプログラムが前記より速いプロセッサ・スピードを必要とするという判定に応答して、前記プロセッサ・スピードを第２プロセッサ・スピードに増加させる増加手段とを備える、上記（３７）に記載のデータ処理システム。
（３９）前記第２のプロセッサ・スピードが前記識別されたプログラムの最適な性能を可能にするスピードである、上記（３８）に記載のデータ処理システム。
（４０）前記第２のプロセッサ・スピードがユーザ設定プロセッサ・スピードである、上記（３８）に記載のデータ処理システム。
（４１）前記識別手段および前記設定手段が、前記データ処理システム上で実行中の各プログラムに対して実行される、上記（３２）に記載のデータ処理システム。
（４２）前記設定手段が、前記電力使用量を、最高電力使用量を必要とする特定のプログラムの電力使用量に設定する手段を備える、上記（４１）に記載のデータ処理システム。
（４３）前記識別手段が、
　前記プログラムの起動を検出する検出手段と、
　前記プログラムが１組の予め選択されたプログラムの中にあるかどうかを判定する判定手段と、
　前記プログラムが前記１組の予め選択されたプログラムの中にあるという判定に応答して、前記プログラムを選択されたプログラムとして識別する識別手段とを備える、上記（３２）に記載のデータ処理システム。
（４４）前記１組の予め選択されたプログラムが、特定のフォルダの中に配置されたプログラムと識別される、上記（４３）に記載のデータ処理システム。
（４５）前記１組の予め選択されたプログラムが前記１組の予め選択されたプログラムのそれぞれに標識を関連付けることによって識別される、上記（４３）に記載のデータ処理システム。
（４６）前記１組の予め選択されたプログラムが、グラフィカル識別子を用いて前記データ処理システム上に表示される、上記（４３）に記載のデータ処理システム。
（４７）前記有限な電源がバッテリである、上記（３２）に記載のデータ処理システム。
（４８）前記データ処理システムが、マルチプロセッサ・データ処理システムである、上記（３２）に記載のデータ処理システム。
（４９）前記データ処理システムが、デスクトップ・コンピュータ、ラップトップ・コンピュータ、パーソナル・デジタル・アシスタント、およびパームトップ・コンピュータの１つである、上記（３２）に記載のデータ処理システム。
（５０）前記識別手段および前記設定手段が、イベントに応答して起動される、上記（３２）に記載のデータ処理システム。
（５１）前記イベントが定期的なイベントである、上記（５０）に記載のデータ処理システム。
（５２）プロセッサ電力使用量を管理するデータ処理システムであって、
　現在のプロセッサ利用状況と現在のプロセッサ・スピードを比較して、比較を形成する比較手段と、
　前記比較において現在のプロセッサ利用状況より小さいプロセッサ・スピードに応答して現在のプロセッサ・スピードを増加させる増加手段とを備えるデータ処理システム。
（５３）前記比較において前記現在のプロセッサ利用状況より大きいプロセッサ・スピードに応答して前記現在のプロセッサ・スピードを減少させる減少手段をさらに備える、上記（５２）に記載のデータ処理システム。
（５４）前記現在のプロセッサ利用状況をパーセンテージとして判定し、前記現在のプロセッサ・スピードをパーセンテージとして判定する判定手段をさらに備える、上記（５３）に記載のデータ処理システム。
（５５）前記比較手段と前記増加手段がイベントに応答して実行される、上記（５２）に記載のデータ処理システム。
（５６）前記イベントが定期的なイベントである、上記（５５）に記載のデータ処理システム。
（５７）前記イベントが前記データ処理システム内のプログラムの初期化である、上記（５５）に記載のデータ処理システム。
（５８）前記イベントがアプリケーション内の状態の変化である、上記（５２）に記載のデータ処理システム。
（５９）データ処理システム内の有限な電源を管理するコンピュータ可読媒体内のコンピュータ・プログラム・プロダクトであって、
　前記データ処理システム内のプログラムを識別して、識別されたプログラムを形成する第１の命令と、
　前記識別されたプログラムに基づいて電力使用量を設定する第２の命令とを備えるコンピュータ・プログラム・プロダクト。
（６０）プロセッサ電力使用量を管理するコンピュータ可読媒体内のコンピュータ・プログラム・プロダクトであって、
　現在のプロセッサ利用状況と現在のプロセッサ・スピードを比較して、比較を形成する第１の命令と、
　前記比較において、前記現在のプロセッサ利用状況より小さいプロセッサ・スピードに応答して現在のプロセッサ・スピードを増加させる第２の命令とを備えるコンピュータ・プログラム・プロダクト。
【図面の簡単な説明】
【００４４】
【図１】本発明の好ましい実施形態による、中に本発明を実施することができるデータ処理システムを表す図である。
【図２】中に本発明を実施することができるデータ処理システムを示すブロック図である。
【図３】本発明の好ましい実施形態による、必要とされるバッテリ寿命に基づく電力管理に使用されるコンポーネントの図である。
【図４】本発明の好ましい実施形態による、実行中アプリケーションに基づく電力管理のための処理の流れ図である。
【図５】本発明の好ましい実施形態による、電力管理のためのアプリケーションを選択するための処理の流れ図である
【図６】本発明の好ましい実施形態による、プロセッサ利用状況に基づいてコンピュータ電力管理を自動的に提供するための処理の流れ図である。
【符号の説明】
【００４５】
　３００　アプリケーション
　３０２　オペレーティング・システム
　３０４　プラットフォーム・ハードウェア
　３０６　カーネル
　３０８　ＰＭ　ＯＳモジュール
　３１０　デバイス・ドライバ
　３１２　ＰＭドライバ
　３１４　ＰＭインタフェース
【図１】
2004139613.tif 000003
【図２】
2004139613.tif 000004
【図３】
2004139613.tif 000005
【図４】
2004139613.tif 000006
【図５】
2004139613.tif 000007
【図６】
2004139613.tif 000008