(57)【特許請求の範囲】
【請求項１】
アプリケーションプログラムを実行する電気機器において、アプリケーションプログラムを実行するためのリソースの消費電力を制御する電力制御装置であって、
前記アプリケーションプログラムの動作状態を検出する動作状態検出手段と、
前記検出されたアプリケーションプログラムの動作状態において前記リソースが必要とする電力供給率を算出する電力供給率算出手段と、
前記リソースが前記電力供給率算出手段によって算出された電力供給率で動作するように、前記リソースに電力供給率を割り当てる電力供給率割当手段と、
前記アプリケーションプログラムの動作状態に応じて予め設定された前記リソースの電力供給率を記憶する電力供給率記憶手段と、
を備え、
前記電力供給率算出手段は、
前記動作状態検出手段によって検出された動作状態に対応するリソースの電力供給率を前記電力供給率記憶手段から読み出す電力供給率取得手段を含み、
前記電力供給率取得手段によって同一のリソースに対して複数の電力供給率が取得される場合に当該複数の電力供給率を統合する電力供給率統合手段をさらに含み、
同時に複数のアプリケーションプログラムの動作状態を有するリソースも、前記アプリケーションプログラムの個々の動作の実行に対して十分な電力で駆動されることを特徴とする電力制御装置。
【請求項２】
前記電力供給率統合手段は、前記同一のリソースに対して取得された複数の電力供給率の合計値が１００％以下の場合には、当該電力供給率の合計値に統合し、
前記複数の電力供給率の合計値が１００％以上の場合には、１００％に統合し、
リソースの最大能力以上に電力供給されることを防止することを特徴とする請求項１に記載の電力制御装置。
【請求項３】
前記動作状態検出手段は、
前記電気機器にロードされているオペレーションシステムのＡＰＩ層で検出されるＡＰＩ通信情報とカーネル層で検出される動作状態監視情報に基づいて、前記アプリケーションプログラムの動作状態を検出することを特徴とする請求項１に記載の電力制御装置。
【請求項４】
前記電力供給率統合手段は、統合された電力供給率を、前記電気機器にロードされているオペレーションシステムのドライバインターフェース層に供給することを特徴とする請求項１に記載の電力制御装置。
【請求項５】
前記ドライバインターフェース層は、統合された電力供給率を対応するリソースのドライバに供給することを特徴とする請求項４に記載の電力制御装置。
【請求項６】
アプリケーションプログラムを実行する電気機器において、アプリケーションプログラムを実行するためのリソースの消費電力を制御する電力制御方法であって、
前記アプリケーションプログラムの動作状態を検出する動作状態検出ステップと、
前記検出されたアプリケーションプログラムの動作状態において前記リソースが必要とする電力供給率を算出する電力供給率算出ステップと、
前記リソースが前記電力供給率算出ステップによって算出された電力供給率で動作するように、前記リソースに電力供給率を割り当てる電力供給率割当ステップと、
前記アプリケーションプログラムの動作状態に応じて予め設定された前記リソースの電力供給率を記憶する電力供給率記憶ステップと、
を備え、
前記電力供給率算出ステップは、
前記電力供給率記憶ステップで記憶された電力供給率の中から、前記動作状態検出ステップにおいて検出された動作状態に対応するリソースの電力供給率を読み出す電力供給率取得ステップを含み、
前記電力供給率取得ステップによって同一のリソースに対して複数の電力供給率が取得される場合に当該複数の電力供給率を統合する電力供給率統合ステップを含み、
同時に複数のアプリケーションプログラムの動作状態を有するリソースも、前記アプリケーションプログラムの個々の動作の実行に対して十分な電力で駆動されることを特徴とする電力制御方法。
【請求項７】
前記電力供給率統合ステップは、前記同一のリソースに対して取得された複数の電力供給率の合計値が１００％以下の場合には、当該電力供給率の合計値に統合し、
前記複数の電力供給率の合計値が１００％以上の場合には、１００％に統合し、
リソースの最大能力以上に電力供給されることを防止することを特徴とする請求項６に記載の電力制御方法。
【請求項８】
前記動作状態検出ステップは、
前記電気機器にロードされているオペレーションシステムのＡＰＩ層で検出されるＡＰＩ通信情報とカーネル層で検出される動作状態監視情報に基づいて、前記アプリケーションプログラムの動作状態を検出することを特徴とする請求項６に記載の電力制御方法。
【請求項９】
前記電力供給率統合ステップで統合された電力供給率は、前記電気機器にロードされているオペレーションシステムのドライバインターフェース層に供給されることを特徴とする請求項６に記載の電力制御方法。
【請求項１０】
前記ドライバインターフェース層は、統合された電力供給率を対応するリソースのドライバに供給することを特徴とする請求項９に記載の電力制御方法。
【請求項１１】
コンピュータに請求項６から１０までの何れかに記載の電力制御方法を実行させるためのプログラムを記録したコンピュータ読取り可能な記録媒体。
【請求項１２】
前記電力供給率算出手段は、さらに、異なるリソース毎に必要とする電力供給率を算出することによって、
前記リソースは個々に、前記アプリケーションプログラムの動作状態に応じて前記電力供給率が変動することにより、当該アプリケーションプログラムを実行するのに適した電力で駆動されることを特徴とする請求項１に記載の電力制御装置。
【請求項１３】
前記電力供給率算出ステップは、さらに、異なるリソース毎に必要とする電力供給率を算出することによって、
前記リソースは個々に、前記アプリケーションプログラムの動作状態に応じて前記電力供給率が変動することにより、当該アプリケーションプログラムを実行するのに適した電力で駆動されることを特徴とする請求項６に記載の電力制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パーソナルコンピュータ等の情報処理装置において実行中のアプリケーションプログラムの動作状態の変化に応じて、同情報処理装置における消費電力の制御方法に関し、さらに詳述すれば、電池駆動可能な携帯型のパーソナルコンピュータに用いられる電力制御方法およびその装置に関する。
【０００２】
【従来の技術】
従来、電池駆動可能なパーソナルコンピュータにおいて、アプリケーションの動作状態に応じて電力を制御する方法としては、大別して以下に示す４種類の方法が知られている。
【０００３】
第１の方法は、特開平４−１２５７１８号公報に記載の「省電力制御方式」である。同方法においては、アプリケーションプログラムが入力待ち状態かつ入力装置からの入力がない状態が、一定時間継続した時に、ＣＰＵのクロックの供給或いは電力供給を停止する。その結果、消費電力を低減して、電池の稼働時間の延長或いは電池容量の削減を図る。つまり、ＣＰＵへ入力される負荷が少ない或いはない場合には、ＣＰＵを一律に休眠状態にすることによって省電力を図る。
【０００４】
第２の方法は、特開平７−３０２１３８号公報に記載の「電子機器および該機器における電源制御方法」である。同方法においては、先ず、アプリケーションプログラム毎に各デバイスへのアクセス履歴を記録しておく。次に、アクセス履歴の記録に基づいて、当該アプリケーションプログラムがそのデバイスにアクセスする時刻を予想する。そして、予測時刻に基づいて、当該デバイスを省電力モードに移行させる。つまり、デバイスを現時点から予測時刻まで省電力モードに移行させることによって期待できる節約電力量と、予測時刻に通常モードに復帰させるために要する電力量を比較して、消費電力量がより小さくなるようにデバイスの動作モードを制御する。
【０００５】
第３の方法は、特表平８−５０３５６６号公報（対応ＵＳＰａｔ  Ｎｏ．５，３３９，４４５）に記載の「コンピュータ装置の電力消費を自動的に減少させる方法」である。同方法においては、アプリケーションプログラムの動作中に、装置の電力消費機器の電力消費を監視して、装置資源の特性を保持するコンピュータ装置のテーブルに記録する。そして、アプリケーションプログラムが再び作動される時に、必要とされる資源の特性をテーブルから呼び出して、装置の機器に供給する電力を自動的に調節することによって、コンピュータ装置の電力消費を低減する。
【０００６】
また、第４の方法としては、家庭や事務所に供給されているＡＣ電源駆動および電池駆動の両方が可能な情報処理装置に対して、一般的に用いられる電力制御方法がある。同方法においては、情報処理装置が、ＡＣ電源か電池のどちらで駆動されているかを判断する。そして、電池で駆動されている場合には、ユーザが予め設定しておいた電力制御方法で動作させる。この方法では、電池駆動の時にＣＰＵの動作速度やＬＣＤの輝度をユーザが指定した固定値で下げて電力消費量を低減して電池駆動時間を延長する。
【０００７】
しかしながら、近年のＣＰＵの処理速度やハードディスク等の周辺機器の性能の飛躍的な向上に伴うＣＰＵや周辺機器の性能を最大限に利用するアプリケーションプログラムの急速な増加に対しては、上述の従来の電力制御方法では対応できない。そのようなアプリケーションプログラムの代表的な例としては、動画再生、或いは動画録画等の動画像処理を行うアプリケーションソフトウェアや、モデム機能を実現するアプリケーションソフトウェアなどがある。
【０００８】
【発明が解決しようとする課題】
上述の状況下では、上述の第１および第４の電力制御方法のように、ＣＰＵの動作速度や周辺機器の消費電力を固定値になるように一律に下げるという方法で電力制御を行うと、ＣＰＵや周辺機器の性能を最大限に利用する動画像処理アプリケーションプログラム等が動作できないか、或いは十分にその性能を発揮できない。
【０００９】
また、上述の第２および第３の電力制御方法は、アプリケーションプログラムの使用するデバイス毎に電力制御を行うという点で優れている。しかし、アプリケーションプログラムの実行に関して、プログラムの起動時や動画の再生時等のように、ＣＰＵや周辺装置の性能を特に最大限活用する要求がある場合に、その要求の変動に応じてＣＰＵ速度や電力量を変化させるものではない。従って、アプリケーションプログラムの動作内容によって、ハードウェア毎に、そのリソースに要求される負荷が大きく変動する場合には、そのような要求の変動に適切に対応した電力制御は不可能である。よって、第１および第４の電力制御方法と同様に、アプリケーションプログラムが動作できないか、或いは十分にその性能を発揮できない場合がある。
【００１０】
なお、従来の電力制御方法の何れにおいても、アプリケーションプログラムを適正に実行させながら電力制御を行うには、ユーザが電力制御方法を、予め詳細に設定しておくか、常にＣＰＵ速度を十分に大きな値に設定しておく必要がある。電力制御方法の詳細設定を、アプリケーションプログラムを実行中に、逐次、手動で行うことは非常に面倒である。あえて、そのような面倒な詳細設定を行ったとしても、アプリケーションプログラムの実行中に、正しいタイミングで行うことは非常に難しい。また、ＣＰＵ速度を十分に大きな値で固定的に設定しておくと、不必要に電力消費量が増加し、電池駆動時間が減少してしまい、電力制御の本来の目的を達成できない。
【００１１】
なお、上述の従来の電力制御方法においては、電池駆動の情報機器の駆動時間の延長或いは、同一の駆動時間を提供するのに必要な電池のサイズを小さくすることを目的としている。そのため、アプリケーションプログラムの実行時に、ハードウェアの各リソースに供給する電力を如何に低減するかという観点でしか電力制御を考えていない。それゆえ、上述のように、消費電力は低減できるがアプリケーションプログラムを正常に実行できないという問題を有している。
【００１２】
また、現在においては、地球温暖化やエネルギー資源の枯渇が現実に大きな問題になっており、消費電力の低減は、単に電池駆動の情報機器に限定されるものではなく、ＡＣ電源で駆動される電気機器全般にも要求されている技術である。
【００１３】
よって、アプリケーションプログラムの実行に際して、アプリケーションプログラムの実行状態の変化に応じて、ハードウェアの各リソースを適切に駆動させるのに必要な最低電力を供給することが必要とされている。そのことによって、アプリケーションプログラムの実行において、ハードウェアにアプリケーションプログラム実行に必要以上に電力を過剰供給して、その過剰な電力が無駄に消費されることを防止する。その結果、アプリケーションプログラムの実行に対して、電力が無駄なく効率的に利用されると共に、電力消費を低減できる。
【００１４】
本発明は以上の問題を解決するものであり、情報機器に代表される電気機器において、アプリケーションプログラムの実行状態に応じて、各リソースに電力を適正かつ効果的に配分し、電力の過剰供給による無駄な消費を防止し、その結果消費電力を低減する電力制御方法およびその装置を提供することを目的とする。
【００１５】
【課題を解決するための手段および発明の効果】
第１の発明は、アプリケーションプログラムを実行する電気機器において、アプリケーションプログラムを実行するためのリソースの消費電力を制御する電力制御装置であって、
アプリケーションプログラムの動作状態を検出する動作状態検出器と、
検出されたアプリケーションプログラムの動作状態においてリソースが必要とする必要とする電力供給率を算出する電力供給率算出器と、
リソースが電力供給率算出器によって算出された電力供給率で動作するように、リソースに電力供給率を割り当てる電力供給率割当器と、
アプリケーションプログラムの動作状態に応じて予め設定されたリソースの電力供給率を記憶する電力供給率記憶器と、を備え、
電力供給率算出器は、動作状態検出器によって検出された動作状態に対応するリソースの電力供給率を電力供給率記憶器から読み出す電力供給率取得器を含み、
電力供給率取得器によって同一のリソースに対して複数の電力供給率が取得される場合に当該複数の電力供給率を統合する電力供給率統合器をさらに含み、
同時に複数のアプリケーションプログラムの動作状態を有するリソースも、アプリケーションプログラムの個々の動作の実行に対して十分な電力で駆動されることを特徴とする電力制御装置。
【００１６】
上述のように、第１の発明においては、複数のアプリケーションプログラムの同時実行の場合に、アプリケーションプログラムの個々の動作の実行に対して、同一のリソースに同時に必要とされる電力供給率を、システム全体に対する電力供給率に応じて正しく決定できる。
【００２１】
第２の発明は、第１の発明において、電力供給率統合器は、同一のリソースに対して取得された複数の電力供給率の合計値が１００％以下の場合には、電力供給率の合計値に統合し、複数の電力供給率の合計値が１００％以上の場合には、１００％に統合し、リソースの最大能力以上に電力供給されることを防止することを特徴とする。
【００２２】
上述のように、第２の発明においては、リソースの実際の能力に応じてアプリケーションプログラムからの電力供給要求に対して最大限応えることができる。
【００２３】
第３の発明は、第１の発明において、動作状態検出器は、電気機器にロードされているオペレーションシステムのＡＰＩ層で検出されるＡＰＩ通信情報とカーネル層で検出される動作状態監視情報に基づいて、アプリケーションプログラムの動作状態を検出することを特徴とする。
【００２４】
上述のように、第３の発明においては、オペレーションシステムを有するコンピュータシステムに本発明を適用できる。
【００２５】
第４の発明は、第１の発明において、電力供給率統合器は、統合された電力供給率を、電気機器にロードされているオペレーションシステムのドライバインターフェース層に供給することを特徴とする。
【００２６】
上述のように、第４の発明においては、オペレーションシステムを有するコンピュータシステムに本発明を適用できる。
【００２７】
第５の発明は、第４の発明において、ドライバインターフェース層は、統合された電力供給率を対応するリソースのドライバに供給することを特徴とする。
【００２８】
上述のように、第５の発明においては、コンピュータシステムに接続されている任意の周辺機器の電力消費量を制御できる。
【００３０】
第６の発明は、アプリケーションプログラムを実行する電気機器において、アプリケーションプログラムを実行するためのリソースの消費電力を制御する電力制御方法であって、
アプリケーションプログラムの動作状態を検出する動作状態検出ステップと、
検出されたアプリケーションプログラムの動作状態においてリソースが必要とする電力供給率を算出する電力供給率算出ステップと、
電力供給率算出ステップによって算出された電力供給率で動作するように、リソースに電力供給率を割り当てる電力供給率割当ステップと、
アプリケーションプログラムの動作状態に応じて予め設定されたリソースの電力供給率を記憶する電力供給率記憶ステップと、を備え、
電力供給率算出ステップは、電力供給率記憶ステップで記憶された電力供給率の中から、動作状態検出ステップにおいて検出された動作状態に対応するリソースの電力供給率を読み出す電力供給率取得ステップを含み、
電力供給率取得ステップによって同一のリソースに対して複数の電力供給率が取得される場合に当該複数の電力供給率を統合する電力供給率統合ステップを含み、
同時に複数のアプリケーションプログラムの動作状態を有するリソースも、アプリケーションプログラムの個々の動作の実行に対して十分な電力で駆動されることを特徴とする電力制御方法。
【００３１】
上述のように、第６の発明においては、複数のアプリケーションプログラムの同時実行の場合に、アプリケーションプログラムの個々の動作の実行に対して、同一のリソースに同時に必要とされる電力供給率を、システム全体に対する電力供給率に応じて正しく決定できる。
【００３６】
第７の発明は、第６の発明において、電力供給率統合ステップは、同一のリソースに対して取得された複数の電力供給率の合計値が１００％以下の場合には、電力供給率の合計値に統合し、
複数の電力供給率の合計値が１００％以上の場合には、１００％に統合し、
リソースの最大能力以上に電力供給されることを防止することを特徴とする。
【００３７】
上述のように、第７の発明においては、リソースの実際の能力に応じてアプリケーションプログラムからの電力供給要求に対して最大限応えることができる。
【００３８】
第８の発明は、第６の発明において、動作状態検出ステップは、電気機器にロードされているオペレーションシステムのＡＰＩ層で検出されるＡＰＩ通信情報とカーネル層で検出される動作状態監視情報に基づいて、アプリケーションプログラムの動作状態を検出することを特徴とする。
【００３９】
上述のように、第８の発明においては、オペレーションシステムを有するコンピュータシステムに本発明を適用できる。
【００４０】
第９の発明は、第６の発明において、電力供給率統合ステップは、統合された電力供給率は、電気機器にロードされているオペレーションシステムのドライバインターフェース層に供給されることを特徴とする。
【００４１】
上述のように、第９の発明においては、オペレーションシステムを有するコンピュータシステムに本発明を適用できる。
【００４２】
第１０の発明は、第９の発明において、ドライバインターフェース層は、統合された電力供給率を対応するリソースのドライバに供給することを特徴とする。
【００４３】
上述のように、第１０の発明においては、コンピュータシステムに接続されている任意の周辺機器の電力消費量を制御できる。
【００４７】
第１１の発明は、コンピュータに請求項６から１０までの何れかに記載の電力制御方法を実行させるためのプログラムを記録したコンピュータ読取り可能な記録媒体。
【００４９】
第１２の発明は、第１の発明において、電力供給率決定器は、さらに、異なるリソース毎に必要とする電力供給率を決定することによって、リソースは個々に、アプリケーションプログラムの動作状態に応じて電力供給率が変動することにより、アプリケーションプログラムを実行するのに適した電力で駆動されることを特徴とする。
【００５０】
第１３の発明は、第６の発明において、電力供給率算出ステップは、さらに、異なるリソース毎に必要とする電力供給率を算出することによって、
リソースは個々に、アプリケーションプログラムの動作状態に応じて電力供給率が変動することにより、アプリケーションプログラムを実行するのに適した電力で駆動されることを特徴とする。
【００５１】
【発明の実施の形態】
先ず、添付の図１〜図１１を参照して、本発明の第１の実施形態にかかる電力制御装置について説明する。その後、図１２〜図３２を参照して、本発明の第２の実施形態にかかる電力制御装置について説明する。
【００５２】
（第１の実施形態）
図１に、本発明の第１の実施形態にかかる電力制御装置の構造を示す。電力制御装置ＰＣＡ１は、動作状態検出器１０１、電力供給率算出器１０２、電力供給率記憶器１０３、電力供給率割当器１０４、ＣＰＵ１０５、およびＮ個（Ｎは正の整数）の周辺機器１０６＿１〜１０６＿Ｎを含む。
【００５３】
動作状態検出器１０１は、電力制御装置ＰＣＡ１が組み込まれている携帯情報機器を始めとする電気機器において実行されるアプリケーションプログラムの動作状態を検出する。つまり、動作状態検出器１０１は、アプリケーションプログラムが起動されたり、終了されたり、或いはアプリケーションプログラムの動作状態が変化したことを検知する。さらに、動作状態検出器１０１は、検出した動作状態を示す動作状態信号Ｓ１を生成する。
【００５４】
電力供給率算出器１０２は、動作状態検出器１０１から入力される動作状態信号Ｓ１に基づいて、アプリケーションプログラムの動作状態の変化に応じて、電力制御装置ＰＣＡ１が組み込まれている電気機器のハードウェアの各リソースに対する電力供給率を算出する。電力供給率とは、各リソースが持てる能力を完全に発揮して稼働するために必要とされる電力供給量を１００％とした場合に、リソースに実際に提供される電力供給量の割合を％で表示したものを言う。本明細書中においては、リソースとしてハードウエアによって構成されるデバイスが例示されている、ソフトウェアによって構成されるデバイスも含まれることは言うまでもない。
【００５５】
これは、本発明においては、アプリケーションプログラムからの要求を満たすために、リソースを常に１００％稼働させる必要はないと言う点に鑑みての処理である。つまり、リソースに実際に要求される能力は、アプリケーションプログラムの動作状態により異なる。それゆえ、動作状態信号Ｓ１に基づいて、アプリケーションプログラムの動作状態に対応して、各リソースが可能な限り必要十分な能力を発揮できるように、各リソースにする電力供給率を適切に算出するものである。
【００５６】
電力供給率算出器１０２は、動作状態信号Ｓ１で規定される動作状態に対する、各リソースに対する電力供給率が予め一義的に定められている場合は、その規定の供給率を示す電力供給率信号Ｓ４を生成して電力供給率割当器１０４に出力する。一方、動作状態信号Ｓ１で規定される動作状態に対する各リソースの電力供給率が一義的に定められていない場合には、動作状態信号Ｓ１に基づいて、電力供給率問い合わせ信号Ｓ２を生成して、電力供給率記憶器１０３に出力する。
【００５７】
電力供給率記憶器１０３は、電力制御装置ＰＣＡ１が組み込まれる電気機器のリソース毎に適正に予め定められた、アプリケーションプログラムの各動作状態における電力供給率の値を格納している。なお、電力供給率記憶器１０３に格納されている電力供給率の値は必要に応じて変更される。電力供給率記憶器１０３は、自身に格納されている電力供給率の中から電力供給率問い合わせ信号Ｓ２によって表されるアプリケーションプログラムの動作状態に対応する値を選出する。そして、電力供給率記憶器１０３は、選出した値を示す電力供給率信号Ｓ３を生成して、電力供給率算出器１０２に出力する。
【００５８】
電力供給率算出器１０２は、電力供給率記憶器１０３から読み出したアプリケーションプログラムの動作状態毎に、各リソースに設定された複数の電力パラメータを総合して最終の電力パラメータを決定する。さらに、電力供給率算出器１０２はその電力パラメータを電力供給率割当器１０４に設定する。つまり、電力供給率算出器１０２は、個々のリソースに対して予め定められた電力供給率を表す電力供給率信号Ｓ３に基づいて、現在アプリケーションプログラムが稼働するように要求しているリソース全体に関して、個々のリソースに対する電力供給率を再計算する。そして、電力供給率算出器１０２は、再計算値を前述の電力供給率信号Ｓ４として、電力供給率割当器１０４に出力する。
【００５９】
電力供給率割当器１０４は、ＣＰＵ１０５およびＮ個の周辺機器１０６＿１〜１０６＿Ｎに電力負荷に関する設定を行う。つまり、電力供給率割当器１０４は、電力供給率信号Ｓ４に基づいて、稼働が要求されているリソースの個々に対して実際の電力供給率を割り当てる。さらに、電力供給率割当器１０４は、リソースであるＣＰＵ１０５に割り当てられた電力供給率を示す電力供給割当信号Ｓ５を生成して、ＣＰＵ１０５に出力する。同様に、電力供給率割当器１０４は、Ｎ個の周辺機器１０６＿１〜１０６＿Ｎのそれぞれに割り当てられた電力供給率を示す電力供給割当信号Ｓ６＿１〜Ｓ６＿Ｎを生成して出力する。なお、電力供給率とは、リソースが具備する能力を１００％発揮するに必要な供給電力量に対する実際の供給電力量の割合を言う。
【００６０】
なお上述のように、本明細書において、アプリケーションプログラムの動作状態に応じて、必要十分な性能を発揮するようにリソースを稼働させるために必要十分な電力供給率を求める本発明の基本概念について述べた。しかしながら、実際にリソース毎に異なる電力供給率で電力を分配供給するには、現在では巨大な電力分配供給装置が必要である。さらに、電力分配供給装置自身の電力消費量も無視できない。そのため、本実施形態においては、電力供給率の代わりに、各リソースの稼働率を算出する。
【００６１】
稼働率とは、リソースが持てる能力を完全に発揮して稼働している状態を１００％とした場合に、リソースが実際に稼働している割合を％で表示したものを言う。リソースの電力消費量と稼働率と比例関係にある。それゆえ、リソースの稼働率を変化させることによって、そのリソースの消費電力を変化させることができる。ゆえに、リソースの稼働率を調整することで、リソースへの電力供給率を調整するのと同じ効果が得られる。この意味において、稼働率はリソースの電力負荷を決定するパラメータである。
【００６２】
つまり、本実施形態においては、より好ましくは、電力供給率算出器１０２は、動作状態検出器１０１から入力される動作状態信号Ｓ１に基づいて、アプリケーションプログラムの動作状態の変化に対応して、電力制御装置ＰＣＡ１が組み込まれている電気機器のハードウェアの各リソースから必要十分な能力を引き出すのに適正な稼働率を算出する。
【００６３】
電力供給率算出器１０２は、動作状態信号Ｓ１で規定される動作状態における各リソースに対する稼働率が予め一義的に規定されている場合は、その規定の稼働率を示す稼働率信号Ｓ４を生成して電力供給率割当器１０４に出力する。一方、動作状態信号Ｓ１で規定される動作状態に対する各リソースの稼働率が一義的に定められていない場合には、動作状態信号Ｓ１に基づいて、稼働率問い合わせ信号Ｓ２を生成して、電力供給率記憶器１０３に出力する。
【００６４】
電力供給率記憶器１０３は、電力制御装置ＰＣＡ１が組み込まれる電気機器のリソース毎に適正に予め定められたアプリケーションプログラムの各動作状態における電力供給率に対応する稼働率を格納している。なお、電力供給率記憶器１０３に格納されている稼働率の値は、必要に応じて変更される。電力供給率記憶器１０３は、自身に格納されている稼働率の中から、稼働率問い合わせ信号Ｓ２によって表されるアプリケーションプログラムの動作状態に対応する値を選出する。そして、電力供給率記憶器１０３は、選出した値を示す選出稼働率信号Ｓ３を生成して、電力供給率算出器１０２に出力する。
【００６５】
電力供給率算出器１０２は、電力供給率記憶器１０３から読み出したアプリケーションプログラムの動作状態毎に、各リソースに設定された複数の電力パラメータを総合して最終の電力パラメータを決定する。さらに、電力供給率算出器１０２はその電力パラメータを電力供給率割当器１０４に設定する。つまり、電力供給率算出器１０２は、個々のリソースに対して予め定められた稼働率を表す稼働率信号Ｓ３に基づいて、現在アプリケーションプログラムが稼働するように要求しているリソースの全体に関して、個々のリソースの稼働率を再計算する。そして、電力供給率算出器１０２は、再計算値を前述の稼働率信号Ｓ４として、電力供給率割当器１０４に出力する。
【００６６】
電力供給率割当器１０４は、ＣＰＵ１０５およびＮ個の周辺機器１０６＿１〜１０６＿Ｎに電力負荷のパラメータに関する設定を行う。つまり、電力供給率割当器１０４は、稼働率信号Ｓ４に基づいて、稼働が要求されているリソースの個々に対して実際の稼働率を割り当てる。さらに、電力供給率割当器１０４は、リソースであるＣＰＵ１０５に割り当てられた稼働率を示す稼働率割当信号Ｓ５を生成して、ＣＰＵ１０５に出力する。同様に、電力供給率割当器１０４は、Ｎ個の周辺機器１０６＿１〜１０６＿Ｎのそれぞれに割り当てられた稼働率を示す稼働率割当信号Ｓ６＿１〜Ｓ６＿Ｎを生成して出力する。
【００６７】
電力供給率割当器１０４から入力される稼働率割当信号Ｓ５は、ＣＰＵ１０５の動作設定部に入力されて、ＣＰＵ１０５の稼働率が稼働率割当信号Ｓ５に指定された値に設定される。結果、ＣＰＵ１０５は、指定の稼働率で稼働することによって、その電力消費が低減された状態で、アプリケーションプログラムの要求に対して必要十分な能力を提供する。同様に、周辺機器１０６＿１〜１０６＿Ｎの稼働率も、稼働率割当信号Ｓ６＿１〜Ｓ６＿Ｎのそれぞれによって割り当てられた稼働率に設定される。そして、周辺機器１０６＿１〜１０６＿Ｎは割り当てられた稼働率で稼働することにより、その電力消費が低減された状態で、アプリケーションプログラムの要求に対して必要十分な能力を提供する。
【００６８】
図２を参照して、動作状態信号Ｓ１の具体例について説明する。同図において、「動作」と表示されている左端の列は、電力制御装置ＰＣＡ１が組み込まれている電気機器のシステム、オペレーションシステム（ＯＳ）、およびアプリケーションプログラムの動作を区別して表している。「動作」としては、「システム」「アプリケーションプログラム１」「アプリケーションプログラム２」および「アプリケーションプログラム３」に分類されている。
【００６９】
「状態」と表示されている中央の列は、前述の各「動作」における具体的な動作状態を細かく分類表示している。さらに「Ｓ１」と表示されている右端の列は、図１を参照して説明した動作状態信号Ｓ１をさらに細分化した信号を示している。
【００７０】
つまり、システムが稼働している時（図２において、「動作」が「システム」の場合）は、その動作状態は大別して、「システム起動処理開始」、「システム起動処理完了」、「アイドル状態開始」、「アイドル状態終了」、「サスペンドモードに移行」、「サスペンドモードから復帰」、「システム終了処理開始」、および「システム終了処理完了」の８つの状態に分類されている。これら８つの状態をそれぞれ識別するために、動作状態信号Ｓ１のＳ１の後に＿Ｓ１〜＿Ｓ８の接尾辞を付与している。
【００７１】
つまり、システム起動処理開始状態は、動作状態信号Ｓ１＿Ｓ１によって表される。システム起動処理完了状態は動作状態信号Ｓ１＿Ｓ２によって表される。アイドル状態開始状態は、動作状態信号Ｓ１＿Ｓ３によって表される。アイドル状態終了状態は、動作状態信号Ｓ１＿Ｓ４によって表される。サスペンドモードに移行状態は、動作状態信号Ｓ１＿Ｓ５によって表される。サスペンドモードから復帰状態は、動作状態信号Ｓ１＿Ｓ６によって表される。システム終了処理開始状態は、動作状態信号Ｓ１＿Ｓ７によって表される。そして、システム終了処理完了状態、は動作状態信号Ｓ１＿Ｓ８によって表される。
【００７２】
同様に、ビデオの表示録画を実現するアプリケーションプログラム１が稼働している時（図２において、「動作」が「アプリケーションプログラム１」の場合）は、その動作状態は大別して、起動処理開始状態Ｓ１＿Ａ１＿１、起動処理完了状態Ｓ１＿Ａ１＿２、画像表示開始状態Ｓ１＿Ａ１＿３、画像表示終了状態Ｓ１＿Ａ１＿４、録画処理開始状態Ｓ１＿Ａ１＿５、録画処理終了状態Ｓ１＿Ａ１＿６、終了処理開始状態Ｓ１＿Ａ１＿７、および終了処理完了状態Ｓ１＿Ａ１＿８の８つの状態に分類されている。
【００７３】
さらに、同様に、ワードプロセッサを実現するアプリケーションプログラム２が稼働している時（図２において、「動作」が「アプリケーションプログラム２」の場合）は、その動作状態は大別して、起動処理開始状態Ｓ１＿Ａ２＿１、起動処理完了状態Ｓ１＿Ａ２＿２、表示開始状態Ｓ１＿Ａ２＿３、表示終了状態Ｓ１＿Ａ２＿４、入力処理開始（キー入力検知）状態Ｓ１＿Ａ２＿５、入力処理終了（最後のキー入力より所定時間経過）Ｓ１＿Ａ２＿６、文書保存処理開始Ｓ１＿Ａ２＿７、文書保存処理完了Ｓ１＿Ａ２＿８、終了処理開始状態Ｓ１＿Ａ２＿９、および終了処理完了Ｓ１＿Ａ２＿１０の１０の状態で表される。
【００７４】
また、アプリケーションプログラム３が稼働している時（図２において、「動作」が「アプリケーションプログラム３」の場合）は、その動作状態は大別して、起動処理開始状態Ｓ１＿Ａ３＿１、起動処理完了状態Ｓ１＿Ａ３＿２、表示開始状態Ｓ１＿Ａ３＿３、表示終了状態Ｓ１＿Ａ３＿４、終了処理開始状態Ｓ１＿Ａ３＿５、および終了処理完了Ｓ１＿Ａ３＿６の６つの状態で表される。
【００７５】
図３を参照して、電力制御装置ＰＣＡ１を組み込んだ電気機器の動作中に、動作状態検出器１０１によって検出される状態と出力される動作状態信号Ｓ１の内容について具体的に説明する。
【００７６】
先ず、図３に「動作」が「システム」と表示されているシステムの動作状態に関して述べる。システムが起動中とは、動作状態検出器１０１が図２に示した動作状態信号Ｓ１＿Ｓ１を出力した以降、次に動作状態信号Ｓ１＿Ｓ２を出力するまでの間である。システムがアイドル中とは、動作状態信号Ｓ１＿Ｓ３が出力されてから、動作状態信号Ｓ１＿Ｓ４が出力されるまでの間である。サスペンド中とは、動作状態信号Ｓ１＿Ｓ５が出力されてから、動作状態信号Ｓ１＿Ｓ６が出力されるまでの間である。終了処理中とは、動作状態信号Ｓ１＿Ｓ７が出力されてから、動作状態信号Ｓ１＿Ｓ８が出力されるまでの間である。そして、システムの終了とは、動作状態信号Ｓ１＿Ｓ８が出力された後である。
【００７７】
次に、図３に「動作」が「アプリケーションプログラム１」と表示されているアプリケーションプログラム１（ビデオの表示および録画）の動作状態に関して述べる。起動中とは、動作状態検出器１０１が図２に示した動作状態信号Ｓ１＿Ａ１＿１を出力してから、次に動作状態信号Ｓ１＿Ａ１＿２を出力するまでの間である。画像表示中とは、動作状態信号Ｓ１＿Ａ１＿３が出力されてから、動作状態信号Ｓ１＿Ａ１＿４が出力されるまでの間である。録画動作中とは、動作状態信号Ｓ１＿Ａ１＿５が出力されてから、動作状態信号Ｓ１＿Ａ１＿６が出力されるまでの間である。終了処理中とは、動作状態信号Ｓ１＿Ａ１＿７が出力されてから、動作状態信号Ｓ１＿Ａ１＿８が出力されるまでの間である。
【００７８】
さらに、図３に「アプリケーションプログラム２」と表示されているアプリケーションプログラム２（ワードプロセッサ）の動作状態に関して述べる。起動中とは、動作状態検出器１０１が図２に示した動作状態信号Ｓ１＿Ａ２＿１を出力してから、次に動作状態信号Ｓ１＿Ａ２＿２が出力されるまでの間である。表示中とは、動作状態信号Ｓ１＿Ａ２＿３が出力されてから、動作状態信号Ｓ１＿Ａ２＿４が出力されるまでの間である。入力中とは、動作状態信号Ｓ１＿Ａ２＿５が出力されてから、動作状態信号Ｓ１＿Ａ２＿６が出力されるまでの間である。保存中とは、動作状態信号Ｓ１＿Ａ２＿７が出力されてから、動作状態信号Ｓ１＿Ａ２＿８が出力されるまでの間である。終了処理中とは、動作状態信号Ｓ１＿Ａ２＿９が出力されてから、動作状態信号Ｓ１＿Ａ２＿１０が出力されるまでの間である。
【００７９】
そして、図３に「動作」が「アプリケーションプログラム３」と表示されているアプリケーションプログラム３（時計表示）の動作状態に関して述べる。起動中とは、動作状態検出器１０１が図２に示した動作状態信号Ｓ１＿Ａ３＿１を出力してから、次に動作状態信号Ｓ１＿Ａ３＿２を出力するまでの間である。表示中とは、動作状態信号Ｓ１＿Ａ３＿３が出力されてから、動作状態信号Ｓ１＿Ａ３＿４が出力されるまでの間である。終了処理中とは、動作状態信号Ｓ１＿Ａ３＿５が出力されてから、動作状態信号Ｓ１＿Ａ３＿６が出力されるまでの間である。
【００８０】
なお、上述の図２および図３を参照して、図１に示した電力制御装置ＰＣＡ１を組み込んだ電気機器の動作状態と、電力制御装置ＰＣＡ１の動作状態検出について以下に簡単に述べる。動作状態検出器１０１は、アプリケーションプログラム１の起動処理の開始を検知すると、先ず動作状態信号Ｓ１＿Ａ１＿１を電力供給率算出器１０２に出力する。そして、アプリケーションプログラム１の起動処理が完了した時点で、動作状態検出器１０１は動作状態信号Ｓ１＿Ａ１＿２を電力供給率算出器１０２に出力する。図３に示した動作状態の定義に基づいて、電力供給率算出器１０２は、動作状態信号Ｓ１＿Ａ１＿１を受信してから、動作状態信号Ｓ１＿Ａ１＿２までの期間は、アプリケーションプログラム１が「起動中」であると認識する。同様に、アプリケーションプログラム１が「画像表示中」および「録画動作中」および「終了処理中」である状態を認識する。
【００８１】
同様に動作状態信号に基づいて、電力供給率算出器１０２は、アプリケーションプログラム２が「起動中」または「表示中」または「入力中」または「保存中」または「終了処理中」のどの状態かを正確に認識する。アプリケーションプログラム３に関しても同様に、電力供給率算出器１０２は「起動中」または「表示中」または「終了処理中」のどの状態かを認識できる。
【００８２】
次に図４に示すフローチャートを参照して、電力制御装置ＰＣＡ１の動作について説明する。電力制御装置ＰＣＡ１が組み込まれた電気機器に電源が投入されると、電力制御装置ＰＣＡ１はその電力制御動作を開始する。
先ず、ステップ＃１００において、動作状態検出器１０１により、電気機器の動作状態を検出する。そして、図２に例示した状態毎に検出した動作状態を示す動作状態信号Ｓ１を生成して、電力供給率算出器１０２に出力する。そして、処理は、検出した動作状態に応じた電力パラメータを取得するサブルーチンであるステップ＃２００に進む。
【００８３】
ステップ＃２００において、稼働率信号Ｓ３において得られた動作状態信号Ｓ１に基づいて検出された状態における各リソースに対する稼働率が予め一義的に規定されている場合は、規定の稼働率を示す稼働率信号Ｓ４が生成されて電力供給率割当器１０４に出力する。一方、動作状態信号Ｓ１で規定される動作状態に対する各リソースの稼働率が一義的に定められていない場合には、稼働率問い合わせ信号Ｓ２を電力供給率記憶器１０３に出力する。電力供給率記憶器１０３は、稼働率問い合わせ信号Ｓ２によって表されるアプリケーションプログラムの動作状態に対応する値を示す選出稼働率信号Ｓ３を生成して、電力供給率算出器１０２に出力する。そして、処理は、所得された電力パラメータ毎に、各リソースに設定された複数の電力パラメータを総合して、最終の電力パラメータを決定する電力供給率算出サブルーチンであるステップ＃３００に進む。
【００８４】
ステップ＃３００において、電力供給率算出器１０２は、個々のリソースに対して予め定められた稼働率を表す選出稼働率信号Ｓ３に基づいて、現在アプリケーションプログラムが稼働するように要求しているリソースの全体に関して、個々のリソースに割り当てる稼働率を再計算する。そして、電力供給率算出器１０２は、再計算値を前述の稼働率信号Ｓ４として電力供給率割当器１０４に出力する。そして、処理は、電力供給率を割り当てるために、各リソースに再計算された稼働率を割り当てるサブルーチンであるステップ＃４００に進む。
【００８５】
ステップ＃４００において、＃３００で再計算された稼働率を示す稼働率割当信号Ｓ５、およびＳ６＿１〜Ｓ６＿ＮをＣＰＵ１０５およびＮ個の周辺機器１０６＿１〜１０６＿Ｎのそれぞれに対して発送する。ＣＰＵ１０５および周辺機器１０６＿１〜１０６＿Ｎは、それぞれ電力供給率割当器１０４から発送された稼働率割当信号Ｓ５、およびＳ６＿１〜Ｓ６＿Ｎに基づいて、自身の稼働率を設定し直すことにより、それぞれの消費電力量が制御される。そして、処理は、次のステップ＃５００に進む。
【００８６】
ステップ＃５００においては、電力制御装置ＰＣＡ１が組み込まれている電気機器のシステムが終了しているか否かが、前述の動作状態信号Ｓ１に基づいて判断される。Ｎｏの場合は、処理はステップ＃１００に戻り、前述のステップ＃２００、＃４００、および＃５００の処理を繰り返し、ステップ＃５００でＹｅｓと判断された時点で処理を終了する。なお動作状態検出器１０１は、上述のように、ステップ＃１００で電気機器の動作状態を逐次検出して動作状態信号Ｓ１を出力する代わりに、動作状態に変化がある場合にのみ、動作状態信号Ｓ１を出力するようにしても良い。
【００８７】
次に、図５、図６、図７、および図８を参照して、電力供給率記憶器１０３に格納されるシステムおよびアプリケーションプログラム１からアプリケーションプログラム３までのそれぞれの動作状態において、各リソースに対して設定されている電力パラメータである稼働率の一例について説明する。なお、これらの図面中において、稼働率はシステムの状態やアプリケーションプログラムの状態に応じて、リソースであるＣＰＵ（中央演算装置）、ＨＤＤ（ハードディスクドライブ）、ＬＣＤ（液晶教示装置）、メモリ、およびＶＲＣ（録画回路）の各デバイスが、それらに固有に設定されている稼働率（電力パラメータ値）と共に表示されている。なお、図１に示す構成で言えば、ＣＰＵがＣＰＵ１０５に、ＨＤＤ、ＬＣＤ、メモリ、およびＶＲＣが周辺機器１０６＿１〜１０６＿４に対応する。各数値は、％（パーセント）で表示され０から１００までの数値が設定されている。０はそのデバイスの動作を停止させることを意味し、１００はそのデバイスを１００％動作させることを意味する。
【００８８】
図５に、図１に示した電力供給率記憶器１０３に格納されているシステム全体の稼働率（電力パラメータ）の設定値の一例を示す。システム起動中や、アイドル中、サスペンド中、システムの終了処理中、および終了状態の時の稼働率（電力パラメータ）を設定した場合の例が示されている。この例では、起動中には、ＣＰＵ、ＨＤＤおよびメモリの稼働率（電力パラメータ）を１００％とすることにより、システムの高速起動を図っている。一方、ＬＣＤは起動中は高輝度である必要はないので、稼働率を２５％に設定している。
【００８９】
アプリケーションプログラムが何も動作していないアイドル中は、ＣＰＵの稼働率を１０％とし、ＨＤＤの稼働率を０％、すなわち停止状態に設定する。ＬＣＤは、起動時と同様に高輝度である必要はないので、稼働率を２５％に設定する。メモリの稼働率は１００％に設定される。
【００９０】
サスペンド中は、ＣＰＵ、ＨＤＤ、およびＬＣＤの稼働率を０％に設定して、それらを停止状態にする。一方、メモリの稼働率は、１０％に設定して、サスペンド前の情報を保持する。
【００９１】
終了処理中は、ＣＰＵおよびＨＤＤの稼働率を５０％に設定すると共に、ＬＣＤの稼働率を０％に設定する。一方、メモリの稼働率を１００％に設定する。
【００９２】
終了時は、ＣＰＵ、ＨＤＤ、ＬＣＤ、メモリ、およびＶＲＣ）のすべての稼働率を０％に設定する。なお、ＶＲＣは起動中、アイドル中、サスペンド中、および終了処理中も、稼働率は０％に設定される。
【００９３】
次に、図６に、アプリケーションプログラム１の各動作状態に対応して設定された稼働率（電力パラメータ）の割当の一例を示す。本例においては、アプリケーションプログラム１は、例として、ビデオ表示や録画を行う。
【００９４】
ＣＰＵに関しては、起動中および終了処理中の動作には、それほど演算能力を必要とされないため、その稼働率を５０％に設定している。一方、録画中には、かなりの演算能力が必要とされるために、ＣＰＵの稼働率を８０％に設定している。また、単に画像を表示している状態の時には、ＣＰＵの演算能力が必要とされないため、ＣＰＵの稼働率を１０％に設定している。
【００９５】
ＨＤＤに関しては、起動中と終了処理中には、かなりの量のデータを入出力する必要があるので、その稼働率を５０％に設定している。一方、録画動作中には、ＨＤＤは大量のデータを高速度に入出力する必要があるので、その稼働率を１００％に設定している。表示中には、ＨＤＤの稼働率を０％に設定して、ＨＤＤを停止状態にする。
【００９６】
ＬＣＤに関しては、起動中および終了処理中は、中程度の輝度で十分であるためその稼働率を５０％に設定している。そして、画像表示中と録画動作中は輝度を上げて見えやすくするために、ＬＣＤの稼働率を１００％に設定している。
【００９７】
メモリに関しては、すべての動作状態において、稼働率を１００％に設定して、データの高速な入出力に備えている。
【００９８】
ＶＲＣに関しては、録画動作中には１００％の稼働率が、終了動作中に５０％の稼働率が必要と設定している。しかし、その他の状態の時には、稼働率を０％に設定している。
【００９９】
図７に、アプリケーションプログラム２の各動作状態に対応して設定された稼働率（電力パラメータ）の一例を示す。本例においては、アプリケーションプログラム２は、ワードプロセッサである。プログラムの起動中および終了処理中は、図６を参照して説明したのと同様の理由により、ＣＰＵおよびＨＤＤの稼働率は共に５０％に設定されている。さらに、表示中、入力中、および保存中の状態においては、ＣＰＵの稼働率は、それぞれ、１０％、５０％、および５０％に設定されている。一方、ＨＤＤの稼働率は、０％、２０％、および１００％に設定されている。
【０１００】
これらの稼働率は、以下の点を考慮して決められている。つまり、表示中には、ＣＰＵおよびＨＤＤは、図６で示したアイドル時と同様に、それほど能力が必要とされない。また表示中は、ユーザが思考中と見なし、単に画面に文書を表示するためにはＣＰＵパワーをそれほど必要としない。ユーザがキーボード等から入力中は、仮名漢字変換や辞書の読み込みなどのために、ＣＰＵおよびＨＤＤに対して若干のサービスが必要とされる。保存動作に関しては、ＨＤＤにデータを高速に保存する必要がある。
【０１０１】
なお、ＬＣＤ、メモリ、およびＶＲＣの稼働率は、表示中、入力中、保存中、および終了処理中のすべての状態において、それぞれ、５０％、１００％、および０％に固定的に設定されている。つまり、ＬＣＤに関しては、ある程度の輝度があればワードプロセッサとして使用できるという考えである。
【０１０２】
図８に、アプリケーションプログラム３の各動作状態に対応して設定された稼働率（電力パラメータ）の一例を示す。本例においては、アプリケーションプログラム３は、時計表示として動作する。起動中時には、ＣＰＵとＨＤＤのサービスがある程度必要であるので、それぞれの稼働率を１０％と２０％に設定している。表示中はＨＤＤのサービスを必要とせず、ＣＰＵも最低限のサービスで良いので、それぞれ１０％と０％が稼働率して設定されている。また、終了処理中は、ＣＰＵおよびＨＤＤとも、かなりのサービスが必要とされるので、それぞれの稼働率は共に５０％に設定されている。
【０１０３】
一方、ＬＣＤ、メモリ、およびＶＲＣの稼働率は、起動中、表示中、および終了処理中の何れに対しても、それぞれ２５％、１００％、および０％に固定的に設定されている。
【０１０４】
図９を参照して、複数のアプリケーションプログラムが動作している時に図６、図７、および図８に例示したアプリケーションプログラムの動作状態に対応した個々の電力パラメータ（稼働率）からシステム全体としての各デバイス（リソース）の電力パラメータ（稼働率）の値を計算する方法の一例について説明する。ＣＰＵ、ＨＤＤ、メモリ、およびＶＲＣは、動作中のアプリケーションプログラムの動作状態に対応した各電力パラメータ（稼働率）を合計し、その合計値が１００％を超える場合は、システム全体として、各リソース毎の電力パラメータ（稼働率）を１００％に決定する。
【０１０５】
ＬＣＤに関しては、動作中のアプリケーションプログラムの状態に対応した各電力パラメータ（稼働率）のうちの最大値を、システム全体として、ＬＣＤの電力パラメータ（稼働率）とする。
【０１０６】
図１０を参照して、アプリケーションプログラム１が画像表示中で、そして、アプリケーションプログラム２が入力中の場合の電力パラメータ（稼働率）の計算について説明する。なお本例において、先ず、アプリケーションプログラム１が画像表示中の状態であることより、図６の画像表示中の行を選択する。結果、ＣＰＵ、ＨＤＤ、ＬＣＤ、メモリ、およびＶＲＣの稼働率は、それぞれ、１０％、０％、１００％、１００％、および０％に設定されていることが分かる。
【０１０７】
次に、アプリケーションプログラム２が、入力中の状態であることより、図７の入力中の行を選択する。結果、ＣＰＵ、ＨＤＤ、ＬＣＤ、メモリ、およびＶＲＣの稼働率は、それぞれ、５０％、２０％、５０％、１００％、および０％に設定されていることが分かる。このようにして、複数のリソースのそれぞれに対しても、アプリケーションプログラムの動作状態に応じて電力パラメータである稼働率を設定することによって、電気機器のリソースに対して二次元的に電力制御を行うことができる。
【０１０８】
さらに、図９を参照して説明した計算方法に基づいて、各デバイス（リソース）に対するシステム全体としての稼働率（電力パラメータ）を算出する。ＣＰＵの稼働率は１０％に５０％を加えて６０％となる。また、ＨＤＤの稼働率は、０％に２０％を加え２０％となる。ＬＣＤの稼働率は、１００％と５０％のうちの最大値を選択し、１００％となる。メモリの稼働率は、１００％に１００％を加え２００％となり、１００％を超えるため１００％とする。ＶＲＣの稼働率は、０％に０％を加えて、０％となる。結果、システム全体としてのＣＰＵ、ＨＤＤ、ＬＣＤ、メモリ、およびＶＲＣの稼働率は、図１０の最下行に示すように、それぞれ、６０％、２０％、１００％、１００％、および０％に設定される。
【０１０９】
図１１を参照して、アプリケーションプログラム１が録画動作中、アプリケーションプログラム２が表示中、かつアプリケーションプログラム３が表示中の場合のシステム全体としての各デバイス（リソース）の稼働率（電力パラメータ）の計算について説明する。先ず、アプリケーションプログラム１が録画動作中であることより、図６の録画動作中の行を選択する。結果、ＣＰＵ、ＨＤＤ、ＬＣＤ、メモリ、およびＶＲＣの稼働率は、それぞれ、８０％、１００％、１００％、１００％、および１００％に設定されていることが分かる。
【０１１０】
次に、アプリケーションプログラム２が表示中であることより、図７の表示中の行を選択する。結果、ＣＰＵ、ＨＤＤ、ＬＣＤ、メモリ、およびＶＲＣの稼働率は、それぞれ、１０％、０％、５０％、１００％、および０％に設定されていることが分かる。
【０１１１】
さらに、アプリケーションプログラム３が表示中であることより、図８の表示中の行を選択する。結果、ＣＰＵ、ＨＤＤ、ＬＣＤ、メモリ、およびＶＲＣの稼働率は、それぞれ、１０％、０％、２５％、１００％、および０％に設定されていることが分かる。
【０１１２】
図６、図７、および図８の上述の各行において、デバイス（リソース）毎に取得した稼働率（電力パラメータ）に対して、図９を参照して説明した計算方法を適用し、システム全体に対する各デバイスの稼働率を算出する。つまり、ＣＰＵの電力パラメータである稼働率は、８０％に１０％と１０％を加え１００％となる。また、ＨＤＤの稼働率は、１００％に０％と０％を加え１００％となる。ＬＣＤの稼働率は、１００％と５０％と２５％のうちの最大値をとり１００％となる。メモリの稼働率は、１００％に１００％と１００％を足すことにより、１００％以上となるので、１００％に設定される。ＶＲＣの稼働率は、１００％に０％と０％を足すことにより１００％となる。結果、システム全体としてのＣＰＵ、ＨＤＤ、ＬＣＤ、メモリ、およびＶＲＣの稼働率は、図１１の最下行に示すように、すべて１００％に設定される。
【０１１３】
なお、以上の説明では、電力供給率記憶器１０３に記憶する電力パラメータ（稼働率）を各アプリケーションプログラム毎に、図４、図５、および図６に例示したように設定している。しかしながら、同一のアプリケーションプログラムに、電力パラメータ（稼働率）の複数のパターンを用意することにより、同じアプリケーションプログラムでも、用途に応じて異なる電力パラメータ（稼働率）を設定することができる。
【０１１４】
例えば、図７に示したアプリケーションプログラム２によって実現されるワードプロセッサの場合に、文書入力用の電力パラメータ（稼働率）と文書校正用の電力パラメータ（稼働率）の２種類のパターンを用意しておく。そして、アプリケーションプログラムの起動時に、ユーザが２種類のパターンのうちの何れかを選択することにより、さらに木目細やかな電力制御を行うことができる。なお、上述の稼働率は、一例であって、各デバイス毎に調整可能な分解能に応じて、任意の値に設定してよい。
【０１１５】
また、電力パラメータ（稼働率）は、予め電力供給率記憶器１０３に記憶しておく代わりに、ユーザがアプリケーションプログラム毎に、任意に設定しても良いことは言うまでもない。
【０１１６】
（第２の実施形態）
図１２に、本発明の第２の実施形態にかかる電力制御装置の構造を示す。本例における電力制御装置ＰＣＡ２は、図１〜図１１を参照して説明した第１の実施形態にかかる電力制御装置ＰＣＡ１を、パーソナルコンピュータ等に代表されるオペレーションシステムを有する電気機器（図示せず）に適応したものである。電力制御装置ＰＣＡ２は、電力制御装置ＰＣＡ１を構成する動作状態検出器１０１、電力供給率算出器１０２、電力供給率記憶器１０３、および電力供給率割当器１０４を含む。
【０１１７】
なお、電力制御装置ＰＣＡ２において、Ｍ個（Ｍは正の整数）のアプリケーションプログラム１０００＿１からアプリケーションプログラム１０００＿Ｍ）はＯＳ上で動作しているアプリケーションプログラムであり、ＯＳのサービスであるＡＰＩを利用して動作している。なお、同図において、Ｍ個のアプリケーションプログラム１０００＿１〜１０００＿Ｍはそれぞれ、ＡＰＧ１〜ＡＰＧＭとして表現されている。
【０１１８】
本例においては、ＯＳはＡＰＩ層１００５、カーネル層１００６、およびドライバインターフェース層１００７の３階層からなる。ＡＰＩ層１００５は、アプリケーションプログラムとシステムとの間を取り持つインターフェースである。カーネル層１００６は、スケジューリングなどのＯＳの基本制御を行う。ドライバインターフェース層１００７は、各種ドライバとのインターフェースである。
【０１１９】
ドライバインターフェース層１００７の下位には、Ｎ個のデバイスドライバがある。これらＮ個のドライバの一例としては、キーボードドライバ１１００＿１、ビデオ表示・録画ドライバ１１００＿２、サウンドドライバ１１００＿３、３Ｄ機能ドライバ１１００＿４、モデムドライバ１１００＿５、ＩｒＤＡドライバ１１００＿６、ＩＥＥＥ１３９４インターフェースドライバ１１００＿７、ＵＳＢドライバ１１００＿８、およびＣＰＵ動作制御ドライバ１１００＿Ｎがある。
【０１２０】
上述のＮ個のデバイスドライバには、対応するＮ個のデバイスが接続されている。これらＮ個のデバイスには、キーボード１２００＿１、ビデオ表示・録画器（図中では「Ｖ．Ｄ．Ｒ」と略称）１２００＿２、サウンド処理器（図中では「サウンド」と略称）１２００＿３、３Ｄ機能処理器（図中では「３Ｄ−Ｆ」と略称）１２００＿４、モデム１２００＿５、ＩｒＤＡ１２００＿６、ＩＥＥＥ１３９４インターフェース（図中では「ＩＥＥＥ１３９４」と略称）１２００＿７、ＵＳＢ１２００＿８、およびＣＰＵ動作制御器１２００＿Ｎがある。上述のドライバ１１００＿１〜１１００＿Ｎのそれぞれは、対応するデバイス１２００＿１〜１２００＿Ｎの制御を、制御信号ＩＦ＿１〜ＩＦ＿Ｎにより行う。
【０１２１】
ドライバインターフェース層１００７と、ドライバ１１００＿１〜１１００＿Ｎのそれぞれの間では、稼働率設定信号ＳＶ＿１からＳＶ＿Ｎおよびデバイス出力信号ＥＤ＿１〜ＥＤ＿Ｎが交換される。稼働率設定信号ＳＶ＿１〜ＳＶ＿Ｎは、デバイス（リソース）毎の稼働率（電力パラメータ）設定を始めとする各種設定および、データを含む信号である。デバイス出力信号ＥＤ＿１〜ＥＤ＿Ｎは、デバイス１２００＿１〜１２００＿Ｎのそれぞれの動作状態および、それらデバイスから出力されるデータを含む信号である。
【０１２２】
カーネル層１００６は、システム起動時、アイドル時、サスペンド時、およびシステム終了時等の動作状態を示す動作状態監視信号ＭＳ１を生成する。なお、動作状態監視信号ＭＳ１の示す状態については、後ほど図３０を参照して説明する。
【０１２３】
ＡＰＩ層１００５は、アプリケーションプログラム１０００＿１〜１０００＿Ｍのそれぞれに対して、キーボードイベントなどの情報や通信データなどを通知する通知信号ＥＡ＿１〜ＥＡ＿Ｍを出力する。一方、アプリケーションプログラム１０００＿１〜１００＿Ｍのそれぞれは、ＡＰＩ層１００５に対して、システムに接続されているリソースを活用するために出力するアプリケーション信号ＡＰ＿１〜ＡＰ＿Ｍを生成する。
【０１２４】
さらに、ＡＰＩ層１００５は、上述の通知信号ＥＡ＿１〜ＥＡ＿Ｍとアプリケーション信号ＡＰ＿１〜ＡＰ＿Ｍを監視し、アプリケーションプログラム毎の動作状態を検知して、検知した動作状態を通知するＡＰＩ通信情報ＭＳ２を生成する。なお、ＡＰＩ層１００５が検知する動作状態については、後ほど図３１を参照して説明する。
【０１２５】
動作状態検出器１０１は、ＡＰＩ層１００５から入力されるＡＰＩ通信情報ＭＳ２と、カーネル層１００６から入力される動作状態監視信号ＭＳ１とに基づいて動作状態信号Ｓ１信号を生成する。なお、電力供給率割当器１０４は、第１の実施形態にかかる電力制御装置ＰＣＡ１における稼働率割当信号Ｓ５およびＳ６が示す情報を同時に含む稼働率割当信号ＳＶＡ１を生成する。
【０１２６】
ドライバインターフェース層１００７は、電力供給率割当器１０４から入力される稼働率割当信号ＳＶＡ１を、各デバイス（リソース）に対する稼働率を示す上述の稼働率設定信号ＳＶ＿１〜ＳＶ＿Ｎを生成して、対応するドライバ１１００＿１〜１１００＿Ｎに出力する。そして、ドライバ１１００＿１〜１１００＿Ｎは、稼働率設定信号ＳＶ＿１〜ＳＶ＿Ｎに基づいて、制御信号ＩＦ＿１〜ＩＦ＿Ｎを生成して、対応するデバイス１２００＿１〜１２００＿Ｎの稼働率を変更する。
【０１２７】
図３０を参照して、カーネル層１００６が出力する動作状態監視信号ＭＳ１の内容について説明する。カーネル層１００６が、システム起動処理開始を検知した時には、信号ＭＳＳ１が動作状態監視信号ＭＳ１として動作状態検出器１０１に送信される。カーネル層１００６が、システム起動処理完了を検知した時には、信号ＭＳＳ２が動作状態監視信号ＭＳ１として動作状態検出器１０１に送信される。同様に、カーネル層１００６が、アイドル状態開始、アイドル状態終了、サスペンド状態への移行、サスペンド状態からの復帰、システム終了処理開始、およびシステム終了処理完了のそれぞれの状態を検知した時には、それぞれ信号ＭＳＳ４、ＭＳＳ５、ＭＳＳ６、ＭＳＳ７、およびＭＳＳ８が動作状態監視信号ＭＳ１として動作状態検出器１０１に出力される。
【０１２８】
なお、電力制御装置ＰＣＡ２において、動作状態検出器１０１は、カーネル層１００６から受信した動作状態監視信号ＭＳ１とＡＰＩ層１００５から受信したＡＰＩ通信情報ＭＳ２に基づいて、所定の定義に従って、動作状態信号Ｓ１を生成する。なお、この動作状態信号Ｓ１の生成の定義については、後ほど図３２を参照して説明する。
【０１２９】
なお、電力供給率割当器１０４の出力である稼働率割当信号ＳＶＡ１は、電力供給率割当器１０４に設定された各デバイスの電力パラメータ（稼働率）を、ドライバインターフェース層１００７に伝達するものである。伝達された信号は、ドライバインターフェース層１００７により稼働率設定信号ＳＶ＿１〜ＳＶ＿Ｎとして各デバイス１２００＿１〜１２００＿Ｎ用のドライバ１１００＿１から１１００＿Ｎのそれぞれに割り振られる。各ドライバ１１００＿１から１１００＿Ｎは、信号ＩＦ＿１から信号ＩＦ＿Ｎを用いて、デバイス１２００＿１〜１２００＿Ｎの各々に電力パラメータ（稼働率）の設定を行う。
【０１３０】
電力制御装置ＰＣＡ２のＣＰＵ動作設定部１１００＿Ｎは、ＣＰＵ動作制御ドライバ１１００＿Ｎからの信号ＩＦ＿Ｎにより、電力パラメータ（稼働率）を受け取る点が、電力制御装置ＰＣＡ１におけるＣＰＵ１０５と異なる。
【０１３１】
次に、図３１を参照して、ＡＰＩ層１００５が出力するＡＰＩ通信情報ＭＳ２の内容について説明する。ＡＰＩ層１００５がアプリケーションプログラム１０００＿１〜１０００＿ＭとＯＳとの間に交わされる通信（アプリケーション信号ＡＰ＿１〜ＡＰ＿Ｍおよび通知信号ＥＡ＿１からＥＡ＿Ｍ）を監視することによって、検知したアプリケーションプログラム毎の動作状態に対応して、一例として３４種類の信号ＭＳＡ１からＭＳＡ３４が生成される。そしてＡＰＩ層１００５は、これらの信号ＭＳＡ１からＭＳＡ３４のそれぞれを、ＡＰＩ通信情報ＭＳ２として動作状態検出器１０１に出力する。
【０１３２】
つまり、図３１に例示されているように、起動処理開始ＡＰＩの検知に対しては、信号ＭＳＡ１がＡＰＩ通信情報ＭＳ２として出力される。
【０１３３】
起動処理完了ＡＰＩの検知に対しては、信号ＭＳＡ２がＡＰＩ通信情報ＭＳ２として出力される。
【０１３４】
終了処理開始ＡＰＩの検知に対しては、信号ＭＳＡ３がＡＰＩ通信情報ＭＳ２として出力される。
【０１３５】
終了処理完了ＡＰＩの検知に対しては、信号ＭＳＡ４がＡＰＩ通信情報ＭＳ２として出力される。
【０１３６】
表示開始ＡＰＩの検知に対しては、信号ＭＳＡ５がＡＰＩ通信情報ＭＳ２として出力される。
【０１３７】
表示終了ＡＰＩの検知に対しては、信号ＭＳＡ６がＡＰＩ通信情報ＭＳ２として出力される。
【０１３８】
録画処理開始ＡＰＩの検知に対しては、信号ＭＳＡ７がＡＰＩ通信情報ＭＳ２として出力される。
【０１３９】
録画処理終了ＡＰＩの検知に対しては、信号ＭＳＡ８がＡＰＩ通信情報ＭＳ２として出力される。
【０１４０】
キー入力ＡＰＩの検知に対しては、信号ＭＳＡ９がＡＰＩ通信情報ＭＳ２として出力される。
【０１４１】
キー入力ＡＰＩ検知後所定時間経過の検知に対しては、信号ＭＳＡ１０がＡＰＩ通信情報ＭＳ２として出力される。
【０１４２】
保存処理開始ＡＰＩの検知に対しては、信号ＭＳＡ１１がＡＰＩ通信情報ＭＳ２として出力される。
【０１４３】
保存処理完了ＡＰＩの検知に対しては、信号ＭＳＡ１２がＡＰＩ通信情報ＭＳ２として出力される。
【０１４４】
モデムオープンＡＰＩの検知に対しては、信号ＭＳＡ１３がＡＰＩ通信情報ＭＳ２として出力される。
【０１４５】
モデムクローズＡＰＩの検知に対しては、信号ＭＳＡ１４がＡＰＩ通信情報ＭＳ２として出力される。
【０１４６】
モデム通信開始ＡＰＩの検知に対しては、信号ＭＳＡ１５がＡＰＩ通信情報ＭＳ２として出力される。
【０１４７】
モデム通信終了ＡＰＩの検知に対しては、信号ＭＳＡ１６がＡＰＩ通信情報ＭＳ２として出力される。
【０１４８】
ＩｒＤＡオープンＡＰＩの検知に対しては、信号ＭＳＡ１７がＡＰＩ通信情報ＭＳ２として出力される。
【０１４９】
ＩｒＤＡクローズＡＰＩの検知に対しては、信号ＭＳＡ１８がＡＰＩ通信情報ＭＳ２として出力される。
【０１５０】
ＩｒＤＡ通信開始ＡＰＩの検知に対しては、信号ＭＳＡ１９がＡＰＩ通信情報ＭＳ２として出力される。
【０１５１】
ＩｒＤＡ通信終了ＡＰＩの検知に対しては、信号ＭＳＡ２０がＡＰＩ通信情報ＭＳ２として出力される。
【０１５２】
ＩＥＥＥ１３９４インターフェースオープンＡＰＩの検知に対しては、信号ＭＳＡ２１がＡＰＩ通信情報ＭＳ２として出力される。
【０１５３】
ＩＥＥＥ１３９４インターフェースクローズＡＰＩの検知に対しては、信号ＭＳＡ２２がＡＰＩ通信情報ＭＳ２として出力される。
【０１５４】
ＩＥＥＥ１３９４インターフェース通信開始ＡＰＩの検知に対しては、信号ＭＳＡ２３がＡＰＩ通信情報ＭＳ２として出力される。
【０１５５】
ＩＥＥＥ１３９４インターフェース通信終了ＡＰＩの検知に対しては、信号ＭＳＡ２４がＡＰＩ通信情報ＭＳ２として出力される。
【０１５６】
ＵＳＢオープンＡＰＩの検知に対しては、信号ＭＳＡ２５がＡＰＩ通信情報ＭＳ２として出力される。
【０１５７】
ＵＳＢクローズＡＰＩの検知に対しては信号ＭＳＡ２６がＡＰＩ通信情報ＭＳ２として出力される。
【０１５８】
ＵＳＢ通信開始ＡＰＩの検知に対しては、信号ＭＳＡ２７がＡＰＩ通信情報ＭＳ２として出力される。
【０１５９】
ＵＳＢ通信終了ＡＰＩの検知に対しては、信号ＭＳＡ２８がＡＰＩ通信情報ＭＳ２として出力される。
【０１６０】
３Ｄ機能開始ＡＰＩの検知に対しては、信号ＭＳＡ２９がＡＰＩ通信情報ＭＳ２として出力される。
【０１６１】
３Ｄ機能終了ＡＰＩの検知に対しては、信号ＭＳＡ３０がＡＰＩ通信情報ＭＳ２として出力される。
【０１６２】
音声再生開始ＡＰＩの検知に対しては、信号ＭＳＡ３１がＡＰＩ通信情報ＭＳ２として出力される。
【０１６３】
音声再生終了ＡＰＩの検知に対しては、信号ＭＳＡ３２がＡＰＩ通信情報ＭＳ２として出力される。
【０１６４】
ビデオ再生開始ＡＰＩの検知に対しては、信号ＭＳＡ３３がＡＰＩ通信情報ＭＳ２として出力される。
【０１６５】
そして、ビデオ再生終了ＡＰＩの検知に対しては、信号ＭＳＡ３４がＡＰＩ通信情報ＭＳ２として出力される。
【０１６６】
以下に、図１３のフローチャートを参照して、電力制御装置ＰＣＡ２の動作について説明する。電力制御装置ＰＣＡ２が組み込まれている電気機器に電源が投入されて運転が開始される。
【０１６７】
先ず、ステップＳ１において、カーネル層１００６は、システム状態を監視する。そして、ＡＰＩ層１００５は、アプリケーションプログラム１０００＿１〜１０００＿ＭとＯＳとの間に交わされる通信（アプリケーション信号ＡＰ＿１〜ＡＰ＿Ｍおよび通知信号ＥＡ＿１〜ＥＡ＿Ｍ）を監視する。そして、処理は、次のステップＳ３に進む。
【０１６８】
ステップＳ３において、動作状態監視信号ＭＳ１によってシステムの監視情報が、カーネル層１００６から動作状態検出器１０１に入力される。また、各アプリケーションプログラム１０００＿１から１０００＿ＭとＯＳとの間に交わされるＡＰＩ通信情報は、ＡＰＩ通信情報ＭＳ２により、ＡＰＩ層１００５から動作状態検出器１０１に入力される。つまり、図３１を参照して説明した信号ＭＳＡ１〜ＭＳＡ３４のうちで該当するものがＡＰＩ通信情報ＭＳ２として動作状態検出器１０１に伝達される。そして、処理は、次のステップＳ５に進む。
【０１６９】
ステップＳ５において、動作状態検出器１０１が受け取った動作状態監視信号ＭＳ１がシステムに関するものであるか否かが判断される。つまり、動作状態監視信号ＭＳ１がシステムに関するものであると判断される場合には、処理はステップＳ７に進む。一方、システムに関するものではない、つまりアプリケーションプログラムに関すると判断される場合には、処理はステップＳ１５に進む。
【０１７０】
ステップＳ７において、電力供給率記憶器１０３に記憶されているシステム全体の稼働率パラメータを格納したテーブルから該当するシステム状態の時に設定すべき電力パラメータ（稼働率）を読み出す。なお、システム全体の電力パラメータ（稼働率）については、後ほど図１４を参照して説明する。そして、処理は次のステップＳ９に進む。
【０１７１】
ステップＳ９において、電力供給率算出器１０２が電力供給率割当器１０４に設定すべき電力パラメータ（稼働率）を算出する。そして、処理は次のステップＳ１１に進む。
【０１７２】
ステップＳ１１において、電力供給率割当器１０４は、ステップＳ９において算出された電力パラメータ（稼働率）を稼働率割当信号ＳＶＡ１として、ドライバインターフェース層１００７に出力する。そして、ドライバインターフェース層１００７は、稼働率割当信号ＳＶＡ１に基づいて、前述の稼働率設定信号ＳＶ＿１〜ＳＶ＿Ｎを生成して、それぞれ対応するデバイスドライバ１１００＿１〜１１００＿Ｎに出力する。デバイスドライバ１１００＿１〜１１００＿Ｎは、稼働率設定信号ＳＶ＿１〜ＳＶ＿Ｎに基づいて、対応するデバイス１２００＿１〜１２００＿Ｎの稼働率をそれぞれ設定する。そして、処理は次のステップＳ１３に進む。
【０１７３】
ステップＳ１３において、システムが終了しているか否かが判断される。システムが終了していない場合には、Ｎｏと判断されて、処理はステップＳ１に戻る。また、システムが終了している場合は、Ｙｅｓと判断されて、処理が終了する。
【０１７４】
ステップＳ１５において、電力供給率算出器１０２が、電力供給率記憶器１０３に記憶されている稼働率テーブルの中に現在着目しているアプリケーションプログラムに関する固有の電力パラメータ（稼働率）が存在するかどうかが判断される。電力供給率記憶器１０３にアプリケーション固有の電力パラメータ（稼働率）が存在する場合には、Ｙｅｓと判断されて、処理は次のステップＳ１９に進む。アプリケーション固有の電力パラメータが存在しない場合には、Ｎｏと判断されて、処理はステップＳ１７に進む。
【０１７５】
ステップＳ１７において、電力供給率算出器１０２が電力供給率記憶器１０３に格納されているアプリケーションプログラムに固有に設定させた電力パラメータ（稼働率）テーブルを参照して、電力パラメータ（稼働率）を読み出す。なお、本ステップにおいて、参照される電力パラメータ（稼働率）テーブルに関しては、図１５を参照して後ほど説明する。そして、処理はステップＳ９に進む。
【０１７６】
ステップＳ１９においては、電力供給率記憶器１０３に格納されている標準の電力パラメータテーブルを参照して、検知したアプリケーションプログラムの状態に対応した電力パラメータ（稼働率）を取り出す。なお、本ステップで参照される電力パラメータテーブルについては、図１６から図２２を参照して後ほど説明する。そして、処理は上述のステップＳ９に進む。
【０１７７】
以下に、図１４〜図２２を参照して、図１３に示したフローチャートにおいて参照される電力パラメータ（稼働率）のそれぞれについて説明する。
【０１７８】
先ず、図１４に、ステップＳ７において参照されるシステム全体の電力パラメータの例を示す。システム起動中、アイドル中、サスペンド中、終了処理中、および終了状態の時の電力パラメータ（稼働率）が示されている。本例においては、システムの起動中には、ＣＰＵ、ＨＤＤ、およびメモリの電力パラメータ（稼働率）を１００％に設定することにより、システムの高速起動を図っている。また、アプリケーションプログラムが何も動作していないアイドル中に関して、ＣＰＵの稼働率は１０％に設定し、ＨＤＤの稼働率は０％すなわち停止状態に設定している。システムの起動中およびアイドル中には、ＬＣＤは高輝度の必要はないため、稼働率を２５％に設定している。
【０１７９】
サスペンド中には、サスペンドに移行する前の動作状態を保存するために、メモリの稼働率を１０％に設定し、メモリ以外のデバイスの稼働率を０％に設定することによって無駄な電力消費を防止する。
【０１８０】
終了処理中は、ＣＰＵおよびＨＤＤの稼働率を５０％し、ＬＣＤの稼働率は０％に設定し、メモリの稼働率は１００％に設定する。
【０１８１】
終了時には、当然、ＣＰＵ、ＨＤＤ、ＬＣＤ、およびメモリのすべての稼働率を０％に設定する。
【０１８２】
上述のように、固有の電力パラメータが指定されているアプリケーションプログラムが動作している時は、ステップＳ１５において、図１６に示す標準の電力パラメータではなく、図１５に示す固有の電力パラメータが適用される。電力パラメータが指定されていないアプリケーションプログラムが動作している場合は、図１６から図２２に示す標準パラメータが適用される。
【０１８３】
図１５にステップＳ１７において参照される、動作状態検出器１０１で検知したアプリケーションプログラムに対応した固有の電力パラメータの一例が示されている。本例においては、ビデオ画像を表示し録画するアプリケーションプログラム１の、起動中、画像表示中、録画動作中、および終了中の電力パラメータが対象である。録画回路は録画動作中の時のみ稼働率を１００％としており、その他の場合は稼働率を０％に設定する。
【０１８４】
アプリケーションプログラムの起動中は、ＣＰＵ、ＨＤＤ、およびＬＣＤとも、稼働率を５０％に設定する。画像表示中は、ＣＰＵの稼働率は１０％に、ＨＤＤの稼働率は０％に、そしてＬＣＤの稼働率は１００％に、それぞれ設定されている。録画動作中は、ＣＰＵの稼働率は８０％に、ＨＤＤの稼働率は１００％に、そしてＬＣＤの稼働率は１００％に、それぞれ設定されている。なお、終了処理中は、ＣＰＵの稼働率は５０％に、ＨＤＤの稼働率は５０％に、そしてＬＣＤの稼働率は５０％に、それぞれ設定されている。
【０１８５】
図１６〜図２２を参照して、上述のステップＳ１９において参照される電力パラメータテーブルについて、以下に説明する。
図１６に、動作状態検出器１０１で検知したアプリケーションに電力パラメータが特に設定されていない時に適用される標準の電力パラメータの例を示す。電力供給率記憶器１０３に記憶されている、起動中と終了処理中の各電力パラメータを示している。ＣＰＵ、ＨＤＤ、およびＬＣＤに関する電力パラメータ（稼働率）のみを明示しており、その他の電力パラメータ（稼働率）は０％である。なお、本例において、起動中と終了処理中のＣＰＵ、ＨＤＤ、およびＬＣＤの稼働率は５０％に設定されている。
【０１８６】
図１７に、ユーザが行ったキー入力の状態に応じて適用される標準の電力パラメータ（稼働率）の例が示されている。ＣＰＵおよびＨＤＤに関する電力パラメータ（稼働率）のみを明示しており、その他の電力パラメータ（稼働率）は０％である。キー入力待ち状態時には、ＣＰＵの電力パラメータ（稼働率）は３０％、ＨＤＤの稼働率は０％に設定される。ユーザがキー入力を開始した場合には、ＣＰＵおよびＨＤＤの電力パラメータ（稼働率）として、５０％が適用される。また、仮名漢字変換などの変換動作を行う場合には通常、ＨＤＤからの高速な読み込みが必要であるためＨＤＤの稼働率を１００％としているが、ＣＰＵの稼働率は５０％に設定している。
【０１８７】
図１８に、周辺機器がモデムである場合の電力パラメータの例を示す。モデムのオープン・クローズの動作および通信中かどうかは、ＡＰＩ層１００５で監視され、動作状態検出器１０１で検出される。オープンしているが待ち状態の時は、ＣＰＵの動作がほとんど必要ないために、ＣＰＵの稼働率は１０％に設定している。この時モデム自身も待ち状態のため、稼働率を５０％に設定している。
【０１８８】
通信中はＣＰＵをある程度動作させる必要があるため、ＣＰＵの稼働率を５０％に設定する。また、その場合に、モデムは高速に通信させる必要があるため、稼働率を１００％に設定する。一方、クローズ状態の時には、ＣＰＵもモデムも動作させる必要がないため、稼働率を０％に設定している。
【０１８９】
図１９に、ＩｒＤＡ（赤外線通信）デバイスに関する電力パラメータ（稼働率）の例を示す。本例においては、図１８に示すモデムをＩｒＤＡと置き換えた状態で、ＣＰＵとＩｒＤＡの稼働率がそれぞれ設定されている。
【０１９０】
図２０に、ＩＥＥＥ１３９４デバイスに関する電力パラメータを示す。本例においても、図１８に示すモデムをＩＥＥＥ１３９４インターフェースと置き換えた状態で、ＣＰＵとＩＥＥＥ１３９４インターフェースの稼働率がそれぞれ設定されている。
【０１９１】
図２１に、ＵＳＢデバイスに関する電力パラメータの一例を示す。本例においても、図１８に示すモデムをＵＳＢと置き換えた状態で、ＣＰＵとＵＳＢデバイスの稼働率がそれぞれ設定されている。
【０１９２】
図２２に、動作状態検出器１０１で検知されるＡＰＩの使用状態に対応した電力パラメータ（稼働率）の例を示す。本例においては、音声を再生するＡＰＩ、３Ｄ機能を実現するＡＰＩ、およびビデオ再生を行うＡＰＩについて、それらのＡＰＩを使用中に適用される電力パラメータ（稼働率）を定義している。本例においては、ＣＰＵの稼働率は常に１００％に設定されている。
【０１９３】
音声再生のＡＰＩを使用中は、サウンドの稼働率を１００％と定義しており、３Ｄ機能およびＬＣＤは必要がないため、稼働率を０％に設定している。また、３Ｄ機能のＡＰＩを使用中は、３Ｄ機能の稼働率は１００％であり、サウンド機能の稼働率は０％、そしてＬＣＤの稼働率は７０％に設定している。
【０１９４】
ビデオ再生ＡＰＩ使用中はサウンド機能でもデータ処理を行うため、サウンド機能の稼働率を１００％に設定している。３Ｄ機能は、使用しないため稼働率を０％に設定する。一方、ＬＣＤの稼働率は７０％に設定する。
【０１９５】
図２３を参照して、上述のステップＳ９において、電力供給率算出器１０２によって行われる電力パラメータの計算方法の例を示す。動作状態検出器１０１で検知された状態に対応する電力パラメータ（稼働率）が電力供給率記憶器１０３に記憶されており、電力供給率算出器１０２によってシステム全体に対する電力パラメータ（稼働率）に総合される。この具体的な方法は、既に図９を参照して説明した方法と同一であるので、詳しい説明を省く。なお、図２３には、図９に示したリソース（デバイス）に、新たなモデム、ＩｒＤＡ、ＩＥＥＥ１３９４デバイス、ＵＳＢデバイス、音声デバイス、および３Ｄ機能デバイスが追加されている。
【０１９６】
以下に、図２４〜図２９を参照して、電力供給率算出器１０２で行われる電力パラメータの計算について説明する。
【０１９７】
図２４に、アプリケーションプログラムが１つも動作していない時の、ＣＰＵの電力パラメータ（稼働率）の計算例を示す。システムが動作中でアプリケーションプログラムが１つも動作していない時には、図１４に示したシステム全体の電力パラメータ（稼働率）が適用される。つまり、システム状態がアイドル状態であるため、図１４に示した電力パラメータのアイドル状態時の値１０％（稼働率）がＣＰＵの電力パラメータとして設定される。
【０１９８】
図２５に、固有の電力パラメータ（稼働率）が指定されていないアプリケーションプログラム１が１つだけ動作している場合のＣＰＵの電力パラメータの計算例を示す。つまり、アプリケーションプログラムは起動中であるため、図１６に示した起動中のＣＰＵの稼働率５０％が、本例におけるＣＰＵの電力パラメータとして設定される。
【０１９９】
図２６に、固有の電力パラメータが指定されていないアプリケーションプログラム１と、固有の電力パラメータが指定されているアプリケーションプログラム２とが同時に動作している場合のＣＰＵの電力パラメータの計算例を示す。固有の電力パラメータが指定されていないアプリケーションプログラム１はキー入力待ち状態であるため、図１７に示されたパラメータより３０％の稼働率が読み出される。ビデオ表示録画アプリケーションプログラム２は固有の電力パラメータ（稼働率）が予め指定されており、図１５に示す電力パラメータが適用される。
【０２００】
アプリケーションプログラム２は録画動作中のため、８０％の稼働率が図１５から読み出される。これらの電力パラメータ（稼働率）を、図２３に例示した計算方法に従って計算する。つまり、稼働率３０％と稼働率８０％を合計すると、稼働率は１１０％となる。稼働率が１００％を超えるため、図２３に例示した計算方法に従って、ＣＰＵの電力パラメータである稼働率の値は、１００％に設定される。この値がＣＰＵに対する電力パラメータの設定値である。
【０２０１】
図２７に、固有の電力パラメータが指定されていないアプリケーションプログラムが２つ動作している場合の計算例を示す。アプリケーションプログラム１がキー入力待ち状態であり、アプリケーションプログラム２がキー入力中の状態である。キー入力待ち状態のＣＰＵの電力パラメータは、図２６より稼働率３０％が読み出される。キー入力中のアプリケーションについては、図１７に示した電力パラメータが適用される。そして、キー入力中のＣＰＵの電力パラメータとして、稼働率５０％が読み出される。これらに、図２３に示した計算方法を適用すると、稼働率は８０％となる。この稼働率が、ＣＰＵに設定すべき電力パラメータの値となる。
【０２０２】
図２８に、２つのアプリケーションプログラムが動作している時のモデムの電力パラメータの計算例を示す。動作状態検出器１０１は、アプリケーションプログラム２がモデムを使用して通信中であることを検知する。電力供給率算出器１０２は、電力供給率記憶器１０３から図１８に示す通信中のモデムの電力パラメータの値として、稼働率１００％を取得する。一方、アプリケーションプログラム１はモデムを使用していないため、モデムの電力パラメータとして、稼働率０％が取得される。図２３に示したモデムに関する計算方法を適用すると、この場合のモデムの電力パラメータは稼働率１００％となる。
【０２０３】
図２９に、２つのアプリケーションが動作している時のサウンドデバイスの電力パラメータの計算例を示す。動作状態検出器１０１は、アプリケーションプログラム２がサウンド再生中であることを検知する。電力供給率算出器１０２は、対応する電力パラメータを電力供給率記憶器１０３より読み出す。一方、アプリケーションプログラム１は、サウンド再生を行っていないので、電力パラメータとしては稼働率０％が読み出される。これらの値に、図２３に示したサウンドに関する計算方法を適用すると、サウンドの電力パラメータとして稼働率１００％が得られる。
【０２０４】
図２４〜図２９を参照して説明したように得られた各々の電力パラメータ（稼働率）は、電力供給率算出器１０２から電力供給率割当器１０４に渡され、最終的にＣＰＵ動作制御ドライバ１１００＿Ｎやデバイス１２００＿１から１２００＿Ｎのそれぞれが設定される（ステップＳ１１）。また、以上の例では、電力パラメータは、予め電力供給率記憶器１０３に記憶されているものとして説明したが、ユーザがＡＰＩ使用状況に対応した電力パラメータを必要な時に設定できるようにしても良い。
【０２０５】
図３２に、電力制御装置ＰＣＡ２を組み込んだ電気機器の動作中に、動作状態検出器１０１によって検出される状態と出力される動作状態信号Ｓ１の内容を示す。先ず、「動作」が「システム」と表示されているシステムの動作状態に関して述べる。システムが起動中とは、動作状態検出器１０１が図３０に示したＭＳＳ１を出力してから、次に信号ＭＳＳ２が出力されるまでの間である。システムがアイドル中とは、信号ＭＳＳ３が出力されてから、信号ＭＳＳ４が出力されるまでの間である。サスペンド中とは、信号ＭＳＳ５が出力されてから、信号ＭＳＳ６が出力されるまでの間である。終了処理中とは、信号ＭＳＳ７が出力されてから、信号ＭＳＳ８が出力されるまでの間である。終了状態とは、信号ＭＳＳ８が出力された後である。
【０２０６】
次に、「動作」が「標準アプリケーションプログラム」と表示されているアプリケーションプログラムの動作状態に関して述べる。起動中とは、動作状態検出器１０１が図３１に示した信号ＭＳＡ１を出力してから、次に信号ＭＳＡ１が出力されるまでの間である。以下同様に、画像表示中、録画動作中、入力中、待ち状態、保存処理中、モデムオープン状態、モデム通信中、ＩｒＤＡオープン状態、ＩｒＤＡ通信中、ＩＥＥＥ１３９２インターフェースオープン状態、ＩＥＥＥ１３９２インターフェース通信中、ＵＳＢデバイスオープン状態、ＵＳＢデバイス通信中、３Ｄ機能使用中、音声再生中、ビデオ再生中、および終了処理中のそれぞれの期間に対応する信号ＭＳＡが具体的に記載されている。
【０２０７】
さらに、「動作」が「ビデオ表示録画アプリケーションプログラム」と表示されているアプリケーションプログラムの動作状態に関して述べる。起動中とは、動作状態検出器１０１が信号ＭＳＡ１を出力してから、次信号ＭＳＡ２が出力されるまでの間である。画像表示中とは、信号ＭＳＡ５が出力されてから、信号ＭＳＡ６が出力されるまでの間である。録画動作中とは、信号ＭＳＡ７が出力されてから、信号ＭＳＡ８が出力されるまでの間である。終了処理中とは、信号ＭＳＡ３が出力されてから、信号ＭＳＡ４が出力されるまでの間である。
【０２０８】
上述のように、本発明においては、アプリケーションプログラムの実行状態に応じて、各リソースに電力を適正かつ効果的に配分し、電力の過剰供給による無駄な消費を防止しすると共に、消費電力を低減できる。
さらに、本発明によれば、ＣＰＵや周辺機器の性能が必要なアプリケーションプログラムを使用する時に発生する手動による電力制御設定の手間を省くとともに、アプリケーションプログラムが動作していない時の消費電力を最小限に設定できる。
【０２０９】
さらに、アプリケーションプログラムの実行に実際に必要な電力量にて、各リソースを動作させるので、不要な電力消費を防止できる。また、負荷率を一旦設定したリソースの設定可能負荷率が変更、或いは、リソースが別のものに交換された場合、またはアプリケーションプログラムの動作が変更になった場合にも、負荷率を適正な値に設定し直せる。
【０２１０】
なお、アプリケーションプログラムの個々の動作の実行に対して、同一のリソースに同時に必要とされる負荷を、システム全体に対する負荷に応じて正しく決定できる。そして、リソースの実際の能力に応じてアプリケーションプログラムからの負荷要求に対して最大限応えることができる。また、本発明は、オペレーションシステムを有するコンピュータシステムにも適用できる。コンピュータシステムに接続されている任意の周辺機器の電力消費量を制御できる。
【０２１１】
各リソースに備えられた動作制御機能を利用して消費電力を制御できる。また、アプリケーションプログラムの実行に実際に必要な電力量で、各リソースを動作させるので、不要な電力消費を防止できる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態にかかる電力制御装置の構成を示すブロック図である。
【図２】図１に示した動作状態検出器が生成する動作状態信号の詳細例を示す表である。
【図３】図１に示した動作状態検出器によって検出される状態と出力される動作状態信号の詳細例を示す表である。
【図４】図１に示した電力制御装置の動作を表すフローチャートである。
【図５】図１に示した電力供給率記憶器に格納されているシステム全体の電力パラメータの設定値の一例を示す表である。
【図６】アプリケーションプログラム１の各動作状態に対応して設定された電力パラメータの割当の一例を示す表である。
【図７】アプリケーションプログラム２の各動作状態に対応して設定された電力パラメータの一例を表である。
【図８】アプリケーションプログラム３の各動作状態に対応して設定された電力パラメータの一例を示す表である。
【図９】アプリケーションプログラムの動作状態に対応した個々の電力パラメータからシステム全体としての各デバイスの電力パラメータの値を計算する方法の一例を示す表である。
【図１０】２つのアプリケーションプログラムが実行中の電力パラメータの計算を示す表である。
【図１１】３つのアプリケーションプログラムが実行中のシステム全体としての各デバイスの電力パラメータの計算を示す表である。
【図１２】本発明の第２の実施形態にかかる電力制御装置の構成を示すブロック図であり
【図１３】図１２に示した電力制御装置の動作を表すフローチャートである。
【図１４】図１３に示したフローチャートにおいて参照される電力パラメータの例を示す表である。
【図１５】図１３に示したフローチャートにおいて参照される電力パラメータの例を示す表である。
【図１６】図１３に示したフローチャートにおいて参照される電力パラメータの例を示す表である。
【図１７】図１３に示したフローチャートにおいて参照される電力パラメータの例を示す表である。
【図１８】図１３に示したフローチャートにおいて参照される電力パラメータの例を示す表である。
【図１９】図１３に示したフローチャートにおいて参照される電力パラメータの例を示す表である。
【図２０】図１３に示したフローチャートにおいて参照される電力パラメータの例を示す表である。
【図２１】図１３に示したフローチャートにおいて参照される電力パラメータの例を示す表である。
【図２２】図１３に示したフローチャートにおいて参照される電力パラメータの例を示す表である。
【図２３】図１３に示すステップＳ９において、電力供給率算出器によって行われる電力パラメータの計算方法を示す表である。
【図２４】電力供給率算出器で行われる電力パラメータの計算方法を示す表である。
【図２５】電力供給率算出器で行われる電力パラメータの計算方法を示す表である。
【図２６】電力供給率算出器で行われる電力パラメータの計算方法を示す表である。
【図２７】電力供給率算出器で行われる電力パラメータの計算方法を示す表である。
【図２８】電力供給率算出器で行われる電力パラメータの計算方法を示す表である。
【図２９】電力供給率算出器で行われる電力パラメータの計算方法を示す表である。
【図３０】カーネル層が出力する動作状態監視信号の内容を示す表である。
【図３１】ＡＰＩ層が出力するＡＰＩ通信情報の内容を示す表である。
【図３２】図１２に示した電力制御装置を組み込んだ電気機器の動作中に、動作状態検出器によって検出される状態と出力される動作状態信号の内容を示す表である。
【符号の説明】
ＰＣＡ１  電力制御装置
１０１  動作状態検出器
１０２  電力供給率算出器
１０３  電力供給率記憶器
１０４  電力供給率割当器
１０５  ＣＰＵ
１０６＿１〜１０６＿Ｎ  周辺機器
Ｓ１  動作状態信号
Ｓ２  稼働率問い合わせ信号
Ｓ３  選出稼働率信号
Ｓ４  稼働率信号
Ｓ５  稼働率割当信号
Ｓ６＿１〜１０６＿Ｎ  稼働率割当信号
ＰＣＡ２  電力制御装置
１００５  ＡＰＩ層
【図１】
0004338842.tif 000002
【図２】
0004338842.tif 000003
【図３】
0004338842.tif 000004
【図４】
0004338842.tif 000005
【図５】
0004338842.tif 000006
【図６】
0004338842.tif 000007
【図７】
0004338842.tif 000008
【図８】
0004338842.tif 000009
【図９】
0004338842.tif 000010
【図１０】
0004338842.tif 000011
【図１１】
0004338842.tif 000012
【図１２】
0004338842.tif 000013
【図１３】
0004338842.tif 000014
【図１４】
0004338842.tif 000015
【図１５】
0004338842.tif 000016
【図１６】
0004338842.tif 000017
【図１７】
0004338842.tif 000018
【図１８】
0004338842.tif 000019
【図１９】
0004338842.tif 000020
【図２０】
0004338842.tif 000021
【図２１】
0004338842.tif 000022
【図２２】
0004338842.tif 000023
【図２３】
0004338842.tif 000024
【図２４】
0004338842.tif 000025
【図２５】
0004338842.tif 000026
【図２６】
0004338842.tif 000027
【図２７】
0004338842.tif 000028
【図２８】
0004338842.tif 000029
【図２９】
0004338842.tif 000030
【図３０】
0004338842.tif 000031
【図３１】
0004338842.tif 000032
【図３２】
0004338842.tif 000033