(57)【要約】【課題】全体として消費電力を最小限に抑えつつ、システムのスループットを向上させた電力制御装置および電力制御方法を提供する。【解決手段】タスクの状態および実行優先度を管理するための情報を含むタスクリスト１０３と、タスクが使用するデバイスを管理するための情報を含むデバイス管理テーブル１０６とを保持する記憶部と、タスクリスト１０３を参照し、タスクの実行順序およびタスクの状態の遷移をリストとして管理するタスク管理部１０４と、タスクリスト１０３と、デバイス管理テーブルとを参照する第１の処理部と、第１の処理部の参照結果に基づいて、デバイスへのクロックの供給開始あるいは供給停止の要求をする第２の処理部を有するクロック供給判断部１０５と、クロック供給判断部１０５の要求に基づいて、デバイスへのクロックの供給あるいは停止を制御するクロック制御部１０７とを備えることを特徴とする。【選択図】図１
2008139913.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置における消費電力を制御する電力制御装置であって、
待ち状態、実行可能状態、および実行状態を含むタスクのそれぞれの状態および実行優先度を管理するための情報を含むタスクリストと、タスクが使用するデバイスを管理するための情報を含むデバイス管理テーブルとを保持する記憶手段と、
前記タスクリストを参照し、タスクの実行順序およびタスクの状態の遷移をリストとして管理するタスク管理手段と、
前記タスクリストと、前記デバイス管理テーブルとを参照する第１の処理部と、
前記第１の処理部の参照結果に基づいて、デバイスへのクロックの供給開始あるいは供給停止を判断し、デバイスへのクロックの供給開始あるいは供給停止の要求をする第２の処理部を有するクロック供給判断手段と、
前記クロック供給判断手段の要求に基づいて、デバイスへのクロックの供給あるいは停止を制御するクロック制御手段と
を備える
ことを特徴とする電力制御装置。
【請求項２】
前記第２の処理部は、前記第１の処理部の参照結果に基づいて、実行可能状態のタスクが使用するデバイスへのクロック制御の要求を前記クロック制御手段に対して行う
ことを特徴とする請求項１に記載の電力制御装置。
【請求項３】
前記第２の処理部は、前記第１の処理部の参照結果に基づいて、実行状態のタスクと、実行可能状態のタスクとを除く状態のタスクが使用するデバイスへのクロック供給停止の判断をし、当該デバイスへのクロック供給停止の要求を前記クロック制御手段に対して行い、
前記クロック制御手段は、前記クロック供給判断手段における前記第２の処理部の要求により、当該デバイスへのクロック供給を停止する
ことを特徴とする請求項１に記載の電力制御装置。
【請求項４】
前記第２の処理部は、前記第１の処理部の参照結果に基づいて、実行可能状態のタスクの中で実行優先度の最も高いタスクが使用するデバイスへのクロック供給開始を判断し、当該デバイスへのクロック供給開始の要求を前記クロック制御手段に対して行う
ことを特徴とする請求項１に記載の電力制御装置。
【請求項５】
前記第２の処理部は、前記第１の処理部の参照結果に基づいて、実行可能状態のタスクの中で実行優先度の最も高いタスクを除く全てのタスクが使用するデバイスへのクロック供給停止を判断し、当該デバイスへのクロック供給停止の要求を前記クロック制御手段に対して行う
ことを特徴とする請求項１に記載の電力制御装置。
【請求項６】
前記第２の処理部は、前記第１の処理部の参照結果に基づいて、実行可能状態のすべてのタスクが使用するデバイスへのクロック供給開始を判断し、当該デバイスへのクロック供給開始の要求を前記クロック制御手段に行う
ことを特徴とする請求項１に記載の電力制御装置。
【請求項７】
前記タスク管理手段は、さらに、タスクの実行がされるまでの時間を管理し、
前記デバイス管理テーブルは、さらに、タスクが使用するデバイスがクロック供給開始から動作可能となるまでの動作可能待ち時間の情報を含み、
前記第１の処理部は、前記タスク管理手段のタスクの実行がされるまでの時間と、前記デバイス管理テーブルの動作可能待ち時間とを参照し、実行可能状態で実行優先度の高いタスクが使用するデバイスの動作可能待ち時間と、当該タスクの実行がされるまでの時間を比較し、
前記第２の処理部は、当該タスクの実行がされるまでの時間より当該デバイスの動作可能待ち時間が大きい場合、当該デバイスへのクロックの供給開始を判断し、当該デバイスへのクロックの供給開始の要求を前記クロック制御手段に対して行う
ことを特徴とする請求項１に記載の電力制御装置。
【請求項８】
前記デバイス管理テーブルは、さらに、タスクが使用するデバイスがクロック供給開始から動作可能となるまでの動作可能待ち時間の情報を含み、
前記第１の処理部は、前記デバイス管理テーブルの動作可能待ち時間を参照し、
実行可能状態に遷移したタスクの中で最も優先度が高いタスクを除く全てのタスクに対し、前記タスクが使用するデバイスの動作可能待ち時間と、予め設定された閾値とを比較し、
前記第２の処理部は、前記タスクが使用するデバイスの動作可能待ち時間が予め設定された閾値を超える場合、当該デバイスへのクロック供給開始を判断し、当該デバイスへのクロック供給開始の要求を前記クロック制御手段に対して行う
ことを特徴とする請求項１に記載の電力制御装置。
【請求項９】
前記電力制御装置は、さらに、前記クロック供給判断手段の要求により、タスクの実行優先度を変更し、前記タスク管理手段に対し、タスクの切り替えの要求を行う実行優先度変更手段を備え、
前記第２の処理部は、前記第１の処理の参照結果に基づき、実行可能状態に遷移したタスクの中で最も優先度が高い第１のタスクが使用する第１のデバイスと、前記第１のタスクの次に優先度が高い第２のタスクが使用する第２のデバイスとへのクロック供給開始を判断し、当該デバイスへのクロック供給開始の要求を前記クロック制御手段に対して行い、
さらに、前記クロック供給判断手段は、前記第２の処理の判断結果に基づき、前記第２のタスクと、実行可能状態に遷移したタスクの中で前記第２のタスクの次に優先度が高い第３のタスクとの実行優先度の変更の要求を実行優先度変更手段に対して行う第３の処理部を含む
ことを特徴とする請求項１に記載の電力制御装置。
【請求項１０】
前記デバイス管理テーブルは、さらに、タスクが使用するデバイスが動作準備状態、動作可能状態、停止状態のいずれかであるかの情報を含み、
前記第３の処理部は、さらに、実行優先度を変更された前記第２のタスクが使用するデバイスの状態を前記デバイス管理テーブルに参照し、
実行優先度を変更された前記第２のタスクが使用するデバイスが動作可能状態である場合、変更された前記第２および第３のタスクの実行優先度を元に戻す要求を前記実行優先度変更手段に対して行う
ことを特徴とする請求項９に記載の電力制御装置。
【請求項１１】
前記デバイス管理テーブルは、さらに、タスクが使用するデバイスが動作準備状態、動作可能状態、停止状態のいずれかであるかの情報を含み、
前記第１の処理部は、前記デバイス管理テーブルのデバイスの状態の情報を参照し、複数のタスクが同一のデバイスを使用するかどうかを判断し、
前記第２の処理部は、複数のタスクが同一のデバイスを使用すると前記第１の処理部が判断する場合、タスクが使用するデバイスの中で停止状態のデバイスへのクロック供給開始の要求を前記クロック制御手段に対して行う
ことを特徴とする請求項１に記載の電力制御装置。
【請求項１２】
前記第１の処理部は、第４のタスクが使用する第４のデバイスの中のいずれかを前記第４のタスク以外の第５タスクが使用するかどうかを参照し、
前記第２の処理部は、第４のタスクが使用する第４のデバイスの中のいずれかを前記第４のタスク以外の第５タスクが使用することを前記第１の処理部が参照した場合、
前記第４のデバイスのクロック供給の停止要求を行わない判断をし、前記第４のデバイスのクロック供給の停止要求を前記クロック制御手段に対して行わない
ことを特徴とする請求項１に記載の電力制御装置。
【請求項１３】
前記第２の処理部は、実行可能状態のタスクが使用するデバイスのクロック供給開始の要求と、実行状態および実行可能状態のタスクを除く状態のタスクが使用するデバイスへのクロック供給停止の要求とを  前記クロック制御手段に対して行う
ことを特徴とする請求項１に記載の電力制御装置。
【請求項１４】
第３の処理部は、さらに、前記第２のタスクと、実行可能状態に遷移したタスクの中で前記第２のタスクの次に優先度が高い第３のタスクの実行優先度を変更する
ことを特徴とする請求項９に記載の電力制御装置。
【請求項１５】
情報処理装置における消費電力を制御する方法であって、
待ち状態、実行可能状態、および実行状態を含むタスクのそれぞれの状態および実行優先度を管理するための情報を含むタスクリストと、タスクが使用するデバイスを管理するための情報を含むデバイス管理テーブルとを保持する記憶ステップと、
前記タスクリストを参照し、タスクの実行順序およびタスクの状態の遷移をリストとして管理するタスク管理ステップと、
前記タスクリストと、前記デバイス管理テーブルとを参照する第１の処理ステップと、
前記第１の処理ステップの参照結果に基づいて、デバイスへのクロックの供給開始あるいは供給停止を判断し、デバイスへのクロックの供給開始あるいは供給停止の要求をする第２の処理ステップを有するクロック供給判断ステップと、
前記クロック供給判断ステップの要求に基づいて、デバイスへのクロックの供給あるいは停止を制御するクロック制御ステップと
を含むことを特徴とする電力制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置の電力制御機能に関し、特に実使用状態における電力消費を削減する電力制御装置および電力制御方法に関する。
【背景技術】
【０００２】
従来、電池駆動の携帯電話や携帯型デジタルビデオカメラ等の情報処理装置において、電力消費を削減する方法として様々なものが提案されている（例えば、特許文献１参照）。
【０００３】
上記特許文献１記載の電力消費を削減する方法では、情報処理装置において一連の処理を実現するデバイス群を論理的な資源と見なして使用状態を管理する。あるタスクが必要とするデバイスの使用が開始される際に、関連するデバイスへの電力の供給が停止されている場合は、関連するデバイスへ電力供給が開始される。関連するデバイスの使用が終了して他のタスクによりそのデバイスが使用されていない場合は、そのデバイスへの電力の供給が停止される。これによって、その情報処理装置は、ユーザが実際に使用している状態（以下、実使用状態と記載。）において、電力消費を削減する電力制御方法を実現している。
【特許文献１】特開２００２−９１６３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載された電力消費を削減する方法では、電力またはクロックの供給が停止しているデバイスに対し、あるタスクによってそのデバイスの使用が開始された時に、電力またはクロックの供給が開始されることになり、デバイスが実際に使用可能になるまでの待ち時間が発生してしまう問題があった。つまり、複数のタスクがリアルタイムに動作しているシステムにおいて、あるタスク（以下、タスクＡと呼ぶ。）が実行状態に遷移し、タスクＡの中の処理でデバイスの動作が必要になった際に、はじめて、そのデバイスに電力またはクロックの供給を開始することになるため、そのデバイスが実際に使用可能になるまでの待ち時間がタスクＡに発生してしまう。そして、デバイスが実際に使用できるのを待っているタスクＡだけでなく、実行可能状態にありながら、タスクＡの処理完了を待っている状態である他のタスクにも待ち時間が発生してしまいシステム全体の処理が中断してしまう。
【０００５】
ここで、上述の動作について図を用いて説明する。図１１は、従来の複数のタスクに対するオペレーションシステムの動作結果を示す図である。ここで、オペレーションシステムは、複数のタスクを並行して実行できるマルチタスク機能をもっているとする。また、タスク１、タスク２およびタスク３の複数のタスクがあり、この順番でタスクが実行されるとする。また、それぞれのタスクが必要とし、使用するデバイスをそれぞれデバイス１、デバイス２およびデバイス３とする。
【０００６】
まず、図１１に示すように、タスク１が実行されデバイス１が動作している。このとき、タスク２およびタスク３は実行可能状態であり、実行状態へ遷移するのを待っている状態である。
【０００７】
次に、タスク１の処理が終了し、実行可能状態であるタスク２が実行状態に遷移する。そして、タスク２が実行状態に遷移後に、タスク２の処理の中で必要となるデバイス２にクロックの供給を開始する。そして、デバイス２が実際に使用できるようになるのを待って動作を実行する。このとき、タスク３はタスク２の処理が終了するまで実行可能状態のままであり、実行状態へ遷移するのを待っている状態である。
【０００８】
次に、タスク２の処理が終了し、実行可能状態であるタスク３が実行状態に遷移する。そして、タスク３が実行状態に遷移後に、タスク３の処理の中で必要となるデバイス３にクロックの供給を開始する。そして、デバイス３が実際に使用できるようになるのを待って動作を実行する。
【０００９】
以上のように、タスクが実行状態になってからデバイスが実際に使用可能になるまでの待ち時間が発生することにより、システム全体の処理が中断し、スループットの低下を招いてしまう。
【００１０】
そこで、本発明は、このような問題点を鑑みてなされたものであり、あるタスクによって使用されるデバイスが実際に使用開始されるまでの余分な待ち時間を削減することで、全体として消費電力を最小限に抑えつつも、システムのスループットを向上させた電力制御装置および電力制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明の電力制御装置は情報処理装置における消費電力を制御する電力制御装置であって、待ち状態、実行可能状態、および実行状態を含むタスクのそれぞれの状態および実行優先度を管理するための情報を含むタスクリストと、タスクが使用するデバイスを管理するための情報を含むデバイス管理テーブルとを保持する記憶手段と、前記タスクリストを参照し、タスクの実行順序およびタスクの状態の遷移をリストとして管理するタスク管理手段と、前記タスクリストと、前記デバイス管理テーブルとを参照する第１の処理部と、前記第１の処理部の参照結果に基づいて、デバイスへのクロックの供給開始あるいは供給停止を判断し、デバイスへのクロックの供給開始あるいは供給停止の要求をする第２の処理部を有するクロック供給判断手段と、前記クロック供給判断手段の要求に基づいて、デバイスへのクロックの供給あるいは停止を制御するクロック制御手段とを備えることを特徴とする。
【００１２】
この構成により、例えば、タスクが使用するデバイスに対して、タスクが実行状態になる前にクロックの供給を開始することができるため、実行状態になってからクロックの供給を開始するのに比べて、処理待ち時間を削減することができる。クロックの供給の停止の場合も同様に、タスクが使用するデバイスに対して、タスクが待ち状態になる前にクロックの供給を停止することができるため、待ち状態になってからクロックの供給を停止するのに比べて、消費電力を削減することができる。それにより、全体として消費電力を最小限に抑えつつも、システムのスループットを向上させた電力制御装置を実現することができる。
【００１３】
また、前記第２の処理部は、前記第１の処理部の参照結果に基づいて、実行可能状態のタスクが使用するデバイスへのクロック制御の要求を前記クロック制御手段に対して行ってもよい。
【００１４】
これにより、タスクが使用するデバイスに対して、タスクが実行状態になる前にクロックの供給を開始することができるため、実行状態になってからクロックの供給を開始するのに比べて、処理待ち時間を削減することができる。
【００１５】
また、前記第２の処理部は、前記第１の処理部の参照結果に基づいて、実行状態のタスクと、実行可能状態のタスクとを除く状態のタスクが使用するデバイスへのクロック供給停止の判断をし、当該デバイスへのクロック供給停止の要求を前記クロック制御手段に対して行い、前記クロック制御手段は、前記クロック供給判断手段における前記第２の処理部の要求により、当該デバイスへのクロック供給を停止してもよい。
【００１６】
これにより、例えば、タスクが使用するデバイスに対して、タスクが待ち状態になる前にクロックの供給を停止することができるため、待ち状態になってからクロックの供給を停止するのに比べて、消費電力を削減することができる。それにより、全体として消費電力を最小限に抑えつつも、システムのスループットを向上させた電力制御方法を実現することができる。
【００１７】
また、前記第２の処理部は、前記第１の処理部の参照結果に基づいて、実行可能状態のタスクの中で実行優先度の最も高いタスクが使用するデバイスへのクロック供給開始を判断し、当該デバイスへのクロック供給開始の要求を前記クロック制御手段に対して行って
もよい。
【００１８】
これにより、最も優先度の高いタスクのデバイスへ先にクロック供給の開始ができるので、事前にクロックを供給するデバイスの数を最小限にすることで、更なる節電効果を得ることができる。
【００１９】
また、前記第２の処理部は、前記第１の処理部の参照結果に基づいて、実行可能状態のタスクの中で実行優先度の最も高いタスクを除く全てのタスクが使用するデバイスへのクロック供給停止を判断し、当該デバイスへのクロック供給停止の要求を前記クロック制御手段に対して行ってもよい。
【００２０】
これにより、最も優先度の高いタスクのデバイスのみにクロック供給の開始ができるので、タスクの優先度が低く使用していない場合あるいは使用待機状態であるデバイスへもクロックの供給をしている場合に比べて消費電力を削減することができる。それにより、全体として消費電力を最小限に抑えつつも、システムのスループットを向上させた電力制御方法を実現することができる。
【００２１】
また、前記第２の処理部は、前記第１の処理部の参照結果に基づいて、実行可能状態のすべてのタスクが使用するデバイスへのクロック供給開始を判断し、当該デバイスへのクロック供給開始の要求を前記クロック制御手段に行ってもよい。
【００２２】
これにより、例えば、タスクが使用するデバイスに対して、タスクが実行状態になる前にクロックの供給を開始することができるため、実行状態になってからクロックの供給を開始するのに比べて、処理待ち時間を削減することができる。
【００２３】
また、前記タスク管理手段は、さらに、タスクの実行がされるまでの時間を管理し、前記デバイス管理テーブルは、さらに、タスクが使用するデバイスがクロック供給開始から動作可能となるまでの動作可能待ち時間の情報を含み、前記第１の処理部は、前記タスク管理手段のタスクの実行がされるまでの時間と、前記デバイス管理テーブルの動作可能待ち時間とを参照し、実行可能状態で実行優先度の高いタスクが使用するデバイスの動作可能待ち時間と、当該タスクの実行がされるまでの時間を比較し、前記第２の処理部は、当該タスクの実行がされるまでの時間より当該デバイスの動作可能待ち時間が大きい場合、当該デバイスへのクロックの供給開始を判断し、当該デバイスへのクロックの供給開始の要求を前記クロック制御手段に対して行ってもよい。
【００２４】
これにより、実行可能状態で実行優先度の高いタスクのタスク実行までの時間とそのタスクが使用するデバイスが動作して実際に使用可能になるまでの待ち時間を参照した上で、事前にデバイスへクロックの供給をすることで、実行優先度の高いタスクが実行状態になったときにはデバイスを使用することができるので、実際にタスクが実行状態になってからデバイスが動作可能になるのを待つこともなくなり、不要な処理待ち時間を削減することができる。
【００２５】
また、前記デバイス管理テーブルは、さらに、タスクが使用するデバイスがクロック供給開始から動作可能となるまでの動作可能待ち時間の情報を含み、前記第１の処理部は、前記デバイス管理テーブルの動作可能待ち時間を参照し、実行可能状態に遷移したタスクの中で最も優先度が高いタスクを除く全てのタスクに対し、前記タスクが使用するデバイスの動作可能待ち時間と、予め設定された閾値とを比較し、前記第２の処理部は、前記タスクが使用するデバイスの動作可能待ち時間が予め設定された閾値を超える場合、当該デバイスへのクロック供給開始を判断し、当該デバイスへのクロック供給開始の要求を前記クロック制御手段に対して行ってもよい。
【００２６】
これにより、実行可能状態で実行優先度の高いタスク以外のタスクが使用するデバイスが動作して実際に使用可能になるまでの待ち時間と、予め定めた閾値とを参照した上で、事前にデバイスへクロックの供給をすることで、実行優先度の高いタスク以外のタスクも実行状態になったときには遅延無くデバイスを使用することができるので、処理待ち時間を削減することができる。
【００２７】
また、前記電力制御装置は、さらに、前記クロック供給判断手段の要求により、タスクの実行優先度を変更し、前記タスク管理手段に対し、タスクの切り替えの要求を行う実行優先度変更手段を備え、前記第２の処理部は、前記第１の処理の参照結果に基づき、実行可能状態に遷移したタスクの中で最も優先度が高い第１のタスクが使用する第１のデバイスと、前記第１のタスクの次に優先度が高い第２のタスクが使用する第２のデバイスとへのクロック供給開始を判断し、当該デバイスへのクロック供給開始の要求を前記クロック制御手段に対して行い、さらに、前記クロック供給判断手段は、前記第２の処理の判断結果に基づき、前記第２のタスクと、実行可能状態に遷移したタスクの中で前記第２のタスクの次に優先度が高い第３のタスクとの実行優先度の変更の要求を実行優先度変更手段に対して行う第３の処理部を含んでもよい。
【００２８】
これにより、タスクでの実行優先度を変更することで、処理待ち時間の最も少なくなるようにタスクを実行することができる。
【００２９】
また、前記デバイス管理テーブルは、さらに、タスクが使用するデバイスが動作準備状態、動作可能状態、停止状態のいずれかであるかの情報を含み、前記第３の処理部は、さらに、実行優先度を変更された前記第２のタスクが使用するデバイスの状態を前記デバイス管理テーブルに参照し、実行優先度を変更された前記第２のタスクが使用するデバイスが動作可能状態である場合、変更された前記第２および第３のタスクの実行優先度を元に戻す要求を前記実行優先度変更手段に対して行ってもよい。
【００３０】
これにより、実行優先度を変更されたタスクの実行優先度を再度元に戻す変更をすることができるので、処理待ち時間の最も少なくなるようにタスクを実行しつつも、当初予定していたとおりのタスク順序にて実行することができる。
【００３１】
また、前記デバイス管理テーブルは、さらに、タスクが使用するデバイスが動作準備状態、動作可能状態、停止状態のいずれかであるかの情報を含み、前記第１の処理部は、前記デバイス管理テーブルのデバイスの状態の情報を参照し、複数のタスクが同一のデバイスを使用するかどうかを判断し、前記第２の処理部は、複数のタスクが同一のデバイスを使用すると前記第１の処理部が判断する場合、タスクが使用するデバイスの中で停止状態のデバイスへのクロック供給開始の要求を前記クロック制御手段に対して行ってもよい。
【００３２】
これにより、実行優先度に関係なく、複数のタスクが使用するデバイスに対してクロック供給を行うことができる。それにより、例えば、複数のタスクの最先に実行状態になった時に、デバイスの動作可能待ちがあり、処理待ち時間の間に次に最先である複数のタスクが実行状態になったとしても同一のデバイスを使用するので、そのデバイスの動作可能待ちまでの処理待ち時間が生じることもなく、最先のタスクが実行状態に遷移した際に、遅延すること無くデバイスを使用することができるので、不要な処理待ち時間を削減することができる。
【００３３】
また、前記第１の処理部は、第４のタスクが使用する第４のデバイスの中のいずれかを前記第４のタスク以外の第５タスクが使用するかどうかを参照し、前記第２の処理部は、第４のタスクが使用する第４のデバイスの中のいずれかを前記第４のタスク以外の第５タスクが使用することを前記第１の処理部が参照した場合、前記第４のデバイスのクロック供給の停止要求を行わない判断をし、前記第４のデバイスのクロック供給の停止要求を前記クロック制御手段に対して行わなくもよい。
【００３４】
これにより、タスクが現在使用しているデバイスを、他のタスクが後にデバイスを使用する場合にクロック供給の停止を行わない。それにより、同一デバイスに対してタスクが切り替わるごとに供給の開始および停止をする必要がなくなり、不要な処理待ち時間を削減することができる。
【００３５】
また、前記第２の処理部は、実行可能状態のタスクが使用するデバイスのクロック供給開始の要求と、実行状態および実行可能状態のタスクを除く状態のタスクが使用するデバイスへのクロック供給停止の要求とを  前記クロック制御手段に対して行ってもよい。
【００３６】
これにより、実行状態のタスクと、実行状態へ遷移を待つ実行可能状態のタスクとを除く全てのタスクが使用するデバイスに対してクロックの供給を停止することができる。それにより、全体として消費電力を最小限に抑えつつも、システムのスループットを向上させた電力制御方法を実現することができる。
【００３７】
また、第３の処理部は、さらに、前記第２のタスクと、実行可能状態に遷移したタスクの中で前記第２のタスクの次に優先度が高い第３のタスクの実行優先度を変更してもよい。
【００３８】
これにより、タスクでの実行優先度を変更することで、処理待ち時間の最も少なくなるようにタスクを実行することができる。
【００３９】
なお、本発明は、装置として実現できるだけでなく、その装置を構成する処理手段をステップとする方法として実現したり、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらのプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
【発明の効果】
【００４０】
本発明によれば、あるタスクによって使用されるデバイスに対して、事前にクロックの供給を開始することができる。それにより、あるタスクによって使用されるデバイスが実際に使用開始されるまでの余分な待ち時間を削減することができるので、全体として消費電力を最小限に抑えつつも、システムのスループットを向上させた電力制御装置および電力制御方法が実現できる。携帯電話やデジタルビデオカメラなど省電力化かつスループットの向上を要求されるポータブル機器が普及しつつある今日における本発明の実用的価値は極めて高い。
【発明を実施するための最良の形態】
【００４１】
（実施の形態１）
以下、本発明の実施の形態１における電力制御装置について、図面を用いて説明する。
【００４２】
図１は、本発明の実施の形態１における電力制御装置のソフトウェア構成を示すブロック図である。この電力制御装置は、情報処理装置における消費電力を制御する電力制御装置であって、ユーザの求めるジョブを動作するために必要な共通機能を持つオペレーティングシステム１００を有し、複数からなるタスク１０１（１０１−１〜１０１−３）と、複数からなるデバイス１０２（１０２−１〜１０２−３）と、タスクリスト１０３と、タスク管理部１０４と、クロック供給判断部１０５と、デバイス管理テーブル１０６と、クロック制御部１０７とから構成される。
【００４３】
なお、この電力装置は典型的にはＣＰＵ、ＲＯＭ、ＲＡＭのドライブ、Ｉ／Ｏポート等を備える一般的な情報処理装置で実行されるソフトウェアとして実現されるが、専用の電子回路等のハードウェアで実現されても良い。
【００４４】
オペレーティングシステム１００は、複数のタスク１０１を並行して実行できるマルチタスク機能をもつ。
【００４５】
タスク１０１は、例えば、映像や音声データをＭＰＥＧ２等のフォーマットに多重化する機能を実現したり、ＭＰＥＧ２等のデータをＤＶＤやＨＤＤ等の蓄積媒体に記録する機能を複数のタスク１０１で実現したりするなど、ユーザの求めるジョブを実現するためにオペレーションシステム１００上で動作するプログラムであり、複数からなる。また、複数からなるタスク１０１はそれぞれ、必要となるデバイス１０２を制御しながら、ユーザが求めるジョブを実現する。
【００４６】
ここで、図２は、本発明の実施の形態１におけるタスクの遷移状態を示す図である。タスク１０１には、図２に示されるように、処理実行中である実行状態と、優先度の高いタスク１０１が実行中であるため実行できないが、実行する条件が整っており、いつでも処理実行が開始できる状態である実行可能状態と、実行できる条件が整わないため実行できない状態である待ち状態との少なくとも３つの状態がある。
【００４７】
タスクリスト１０３は、タスク１０１の状態およびタスク１０１の中でどのタスク１０１を優先的に実行するかを示す実行優先度を管理するためのテーブルであり、メモリ等の記憶装置手段に保持される。
【００４８】
タスク管理部１０４は、タスクリスト１０３におけるタスク１０１の状態の情報を参照し、実行可能状態にあるタスク１０１とタスクリスト１０３で参照した実行優先度とを関連させたリストを、実行状態に遷移する順番を示す実行待ちリストとして管理する。そして、実行待ちリストにしたがって、実行可能状態にあるタスク１０１を実行状態への遷移や、実行状態にあるタスク１０１を待ち状態あるいは実行可能状態への遷移を実行する。
【００４９】
デバイス管理テーブル１０６は、各々のタスク１０１がどのデバイス１０２を使用するかを管理するためのテーブルであり、メモリ等の記憶装置手段に保持される。
【００５０】
クロック供給判断部１０５は、請求項１におけるタスクリストと、前記デバイス管理テーブルとを参照する第１の処理部と、前記第１の処理部の参照結果に基づいて、デバイスへのクロックの供給開始あるいは供給停止を判断し、デバイスへのクロックの供給開始あるいは供給停止の要求をする第２の処理部を有するクロック供給判断部であり、本実施の形態では、タスク管理部１０４を監視し、実行可能状態に遷移したタスク１０１がどのデバイス１０２を使用しているかをデバイス管理テーブル１０６から検知し、該当するデバイス１０２に対するクロック供給開始の要求をクロック制御部１０７に対して行う。
【００５１】
クロック制御部１０７は、請求項１の前記クロック供給判断手段の要求に基づいて、デバイスへのクロックの供給あるいは停止を制御するクロック制御部であり、本実施の形態では、クロック供給判断部１０５の要求にしたがい、該当する各々のデバイス１０２に対して、クロック供給の開始または停止を行う。
【００５２】
ここで、タスク１０１とタスクリスト１０３とタスク管理部１０４とクロック供給判断部１０５との関係について一例を挙げて説明する。図１において、例えば、タスク１０１−１とタスク１０１−２とタスク１０１−３とは並行して動作し、タスク１０１の実行優先度はタスク１０１−１が最も高いものとし、タスク１０１−２、タスク１０１−３の順の優先度とする。また、各タスク（タスク１０１−１とタスク１０１−２とタスク１０１−３）は互いに相関関係がない、つまり独立してタスクの実行が行えるとする。
【００５３】
そして、タスク１０１−１、タスク１０１−２および、タスク１０１−３の状態が待ち状態から実行可能状態に遷移した場合には、まず、タスク管理部１０４は、タスクリスト１０３のタスク１０１−１、タスク１０１−２およびタスク１０１−３の実行優先度を参照する。次に、タスク管理部１０４は、管理しているタスク１０１の実行待ちリストをタスク１０１の実行優先度にしたがい、タスク１０１−１、タスク１０１−２およびタスク１０１−３の実行優先度順になるように、実行待ちリストを更新する。次に、タスク管理部１０４は、実行待ちリストが更新されたことをクロック供給判断部１０５に伝える。
【００５４】
次に、本発明の実施の形態１におけるタスク１０１が実行可能状態に遷移したあとタスク１０１が使用するデバイス１０２に対してクロックの供給を開始するまでのクロック供給判断部１０５の動作について図を用いて説明する。
【００５５】
図３はクロック供給判断部１０５のクロック供給の開始要求までの動作の流れを示したフローチャートである。
【００５６】
図４は、デバイス管理テーブル１０６の一例を示した図である。
【００５７】
図３において、クロック供給判断部１０５は、まず、タスク管理部１０４が管理する実行待ちリストに登録されている全てのタスク、例えば、タスク１０１−１とタスク１０１−２とタスク１０１−３とを確認する（Ｓ２０１）。
【００５８】
次に、クロック供給判断部１０５は、確認したタスクのそれぞれがどのデバイス１０２を使用するのかをデバイス管理テーブル１０６に確認する（Ｓ２０２）。デバイス管理テーブル１０６は、図４に示すように、各々のタスク１０１が、複数のデバイス１０２のうちどのデバイス１０２を使用するかの情報を含んでいる。例えば、タスク１０１−１がデバイス１０２−１、タスク１０１−２がデバイス１０２−２、タスク１０１−３がデバイス１０２−３を使用する情報を含んでいる。
【００５９】
次に、クロック供給判断部１０５は、タスク管理部１０４が管理する実行待ちリストに登録されている全てのタスクについて再度、確認する（Ｓ２０３）。実行待ちリストが更新されるなど最初に確認したタスクに変化があった場合には（Ｓ２０３のＮＯの場合）、確認したタスクのそれぞれがどのデバイス１０２を使用するのかをデバイス管理テーブル１０６に再度確認する。
【００６０】
実行待ちリストが最初に確認した全てのタスクと比べて変化がない場合には（Ｓ２０３のＹＥＳの場合）、クロック供給判断部１０５は、クロック制御部１０７に対して、該当するデバイス、例えばデバイス１０２−１とデバイス１０２−２とデバイス１０２−３とへのクロック供給を開始する要求を行う（Ｓ２０４）。
【００６１】
そして、クロック制御部１０７は、クロック供給判断部１０５の要求に従い、例えば、デバイス１０２−１とデバイス１０２−２とデバイス１０２−３となど、デバイスへのクロック供給を開始する。
【００６２】
したがって、タスク１０１が実行可能状態に遷移したタイミングで、タスク１０１が使用するデバイス１０２に対してクロックの供給を開始することができる。
【００６３】
なお、デバイス管理テーブル１０６は、さらに、タスク１０１（１０１−１〜１０１−３）が使用するデバイスが動作準備状態、動作可能状態、停止状態のいずれかであるかの情報を含んでもよく、クロック供給判断部１０５は、デバイス管理テーブル１０６からデバイス、例えば、デバイス１０２−２の状態の情報を参照し、かつ、複数のタスク１０１、例えば、１０１−２と１０１−３とが同一のデバイス１０２−２を使用するかどうかをタスク管理部１０４から判断し、複数のタスク１０１−２と１０１−３とが同一のデバイス１０２−２を使用すると判断する場合、タスク１０１−１が使用していないので停止状態のデバイス１０２−２へのクロック供給開始の要求をクロック制御部１０７に対して行ってもよい。
【００６４】
それにより、実行優先度に関係なく、複数のタスクが使用するデバイスに対してクロック供給を行うことができる。例えば、複数のタスクの最先に実行状態になった時に、デバイスの動作可能待ちがあり、処理待ち時間の間に次に最先である複数のタスクが実行状態になったとしても同一のデバイスを使用するので、そのデバイスの動作可能待ちまでの他のタスクに処理待ち時間が生じてしまうこともなく、最先のタスクが実行状態に遷移した際に、遅延すること無くデバイスを使用することができるので、不要な処理待ち時間を削減することができる。
【００６５】
図５は、本発明の実施の形態１におけるマルチタスクオペレーションシステムの動作結果を示す図である。ここで、例えば、タスク１０１−１、タスク１０１−２およびタスク１０１−３の複数のタスクがあり、この順番でタスクが実行されるとする。また、それぞれのタスク１０１−１、１０１−２および１０１−３が必要とし、使用するデバイスをそれぞれデバイス１０２−１、デバイス１０２−２およびデバイス１０２−３とする。
【００６６】
図５に示すように、まず、タスク１０１−１が実行されデバイス１０２−１が動作している。このとき、タスク１０１−２およびタスク１０１−３は実行可能状態であり、実行状態へ遷移するのを待っている状態である。
【００６７】
次に、タスク１０１−１の処理が終了し、実行可能状態であるタスク１０１−２が実行状態に遷移する。このとき、クロック供給判断部１０５は、タスク１０１−２が実際に実行状態に遷移する前に、タスク１０１−２の処理で必要となるデバイス１０２−２にクロックの供給を開始する。そして、タスク１０１−１の処理が終了し、実行可能状態であるタスク１０１−２が実行状態に遷移したときには、デバイス１０２−２が実際に使用できる準備ができているので、時間の遅延なくデバイス１０２−２の動作の実行を開始することができる。このとき、タスク１０１−３はタスク１０１−２の処理が終了するまで実行可能状態のままであり、実行状態へ遷移するのを待っている状態である。
【００６８】
次に、タスク１０１−２の処理が終了し、実行可能状態であるタスク１０１−３が実行状態に遷移する。このとき、クロック供給判断部１０５は、タスク１０１−３が実際に実行状態に遷移する前に、タスク１０１−３の処理で必要となるデバイス１０２−３にクロックの供給を開始する。そして、タスク１０１−２の処理が終了し、実行可能状態であるタスク１０１−３が実行状態に遷移したとき、デバイス１０２−３が実際に使用できる準備ができているので、時間の遅延なくデバイス１０２−３の動作の実行を開始することができる。
【００６９】
このように、クロック供給判断部１０５により、タスク１０１が使用するデバイス１０２に対し、タスクが実行状態になる前にクロックの供給を開始できるため、実行状態になってからクロックの供給を開始する従来の動作結果と比較すると、デバイス１０２に対するクロックの供給開始から動作可能となるまでの待ち時間を削減することができる。
【００７０】
次に、タスク１０１が使用するデバイス１０２へのクロック供給を停止する場合について説明する。
【００７１】
図６は本発明の実施の形態１におけるデバイス１０２へのクロック供給を停止する際のクロック供給判断部１０５のクロック供給の停止要求までの動作の流れを示したフローチャートである。
【００７２】
図６において、クロック供給判断部１０５は、まず、タスク管理部１０４の実行待ちリストにしたがい実行可能状態にあるタスク１０１を実行状態への遷移や、実行状態にあるタスク１０１を待ち状態あるいは実行可能状態への遷移を実行するタスク遷移情報を参照する（Ｓ４０１）。
【００７３】
次に、実行状態であったタスク１０１が図２で示すどの状態に遷移するかを確認する（Ｓ４０２）。
【００７４】
次に、実行状態にあるタスク１０１が実行状態と実行状態への遷移を待つ実行可能状態とを除くいずれかの状態に遷移する場合には、すなわち、待ち状態へ遷移する場合あるいは実行状態から実行可能状態へ遷移する場合には（Ｓ４０３の「実行状態および実行可能状態以外の状態」の場合）、クロック供給判断部１０５は、タスク１０１がどのデバイス１０２を使用するのかについてデバイス管理テーブル１０６を確認する（Ｓ４０４）。なお、実行状態にあるタスク１０１が実行状態のままである場合もしくは、実行状態に遷移をまっている実行可能状態である場合には（Ｓ４０３の「実行状態および実行可能状態」の場合）、クロック供給判断部１０５は、クロック供給条件の変更の必要がないと判断し、クロック供給停止の要求は行わない。
【００７５】
そして、デバイス管理テーブル１０６を確認し、タスク１０１が使用しているデバイス１０２を他のタスク１０１は使用しない場合（Ｓ４０５の「しない」場合）、クロック供給判断部１０５は、クロック制御部１０７に対して、デバイス１０２のクロック供給を停止する要求を行う（Ｓ４０７）。
【００７６】
また、デバイス管理テーブル１０６を確認し、タスク１０１が使用しているデバイス１０２が他のタスク１０１に使用されることを確認した場合（Ｓ４０５の「する」の場合）、該当する他のタスク１０１の状態を確認する（Ｓ４０６）。そして、該当する他のタスクが実行状態または実行状態への遷移をまつ実行可能状態であった場合には（Ｓ４０６の「実行状態および実行可能状態」の場合）、クロック供給停止の要求を行わない。該等する他のタスクが実行状態にあるタスク１０１が実行状態と実行状態を待つ実行可能状態とを除くいずれかの状態に遷移する場合には、すなわち、待ち状態への遷移する場合あるいは実行状態から実行可能状態へと遷移する場合には（Ｓ４０６の「実行状態および実行可能状態以外の状態」の場合）、クロック制御部１０７に対して、デバイス１０２のクロック供給を停止する要求を行う（Ｓ４０７）。
【００７７】
以上より、実施の形態１によれば、タスク１０１が使用するデバイス１０２に対して、タスク１０１が待ち状態になる前にクロックの供給を停止することができるため、待ち状態になってからクロックの供給を停止するのに比べて、消費電力を削減することができる。
【００７８】
なお、実行状態のタスク１０１と、実行状態へ遷移を待つ実行可能状態のタスク１０１とを除く全てのタスク１０１が使用するデバイス１０２に対してクロックの供給を停止してもよい。
【００７９】
また、タスク１０１が使用しているデバイス１０２を、他のタスクが後にデバイスを使用する場合にクロック供給の停止を行わないとしてもよい。その場合には、同一デバイスに対してタスクが切り替わるごとに供給の開始および停止をする必要がなくなり、不要な処理待ち時間を削減することができる。
【００８０】
また、前述の例では、実行待ちリストに登録された全てのタスク１０１、すなわち、実行可能状態であるタスク１０１が使用するデバイス１０２に対してクロックの供給を開始する場合を説明したが、実行待ちリストに登録されたタスク１０１の中で、最も実行優先度が高いタスク１０１が使用するデバイス１０２に対してのみクロックの供給を開始してもよい。
【００８１】
ここで、本発明の実施の形態１における変形例として、タスク１０１が実行可能状態に遷移したあとタスク１０１が使用するデバイス１０２に対して実行待ちリストに登録されたタスク１０１の中で、最も実行優先度が高いタスク１０１が使用するデバイス１０２に対してのみクロックの供給を開始するまでのクロック供給判断部１０５の動作について図を用いて説明する。
【００８２】
図７は、本実施の形態１の変形例におけるクロック供給判断部１０５のクロック供給の開始要求までの動作の流れを示したフローチャート図である。
【００８３】
図７において、クロック供給判断部１０５は、まず、タスク管理部１０４が管理する実行待ちリストに登録されている全てのタスクの中で最も優先度の高いタスクを確認する（Ｓ５０１）。
【００８４】
次に、確認した最も優先度の高いタスクがどのデバイス１０２を使用するのかをデバイス管理テーブル１０６に確認する（Ｓ５０２）。
【００８５】
次に、クロック供給判断部１０５は、該当するデバイス１０２へのクロック供給を開始する要求を行う（Ｓ５０３）。
【００８６】
そして、クロック制御部１０７は、クロック供給判断部１０５の要求に従い、該等するデバイス１０２へクロック供給を開始する。
【００８７】
以上より、タスク１０１が実行可能状態に遷移したタイミングで、タスク１０１が使用するデバイス１０２に対して、実行待ちリストに登録されたタスク１０１の中で、最も実行優先度が高いタスク１０１が使用するデバイス１０２に対してのみクロックの供給を開始できる。それにより、事前にクロックを供給するデバイス１０２の数を最小限にすることで、更なる節電効果を得ることができる。したがって、システムのスループットを落とさずに余分な電力消費を抑えることができるので、情報処理装置全体の消費電力を最小限に抑えることができる。
【００８８】
（実施の形態２）
次に、本発明の実施の形態２における電力制御装置について、図面を用いて説明する。
【００８９】
図８は本発明の実施の形態２における電力制御装置のソフトウェア構成を示すブロック図である。この電力制御装置は、情報処理装置における消費電力を制御する電力制御装置であって、ユーザの求めるジョブを動作するために必要な共通機能を持つオペレーティングシステム１００を有し、複数からなるタスク１０１（１０１−１〜１０１−３）と、複数からなるデバイス１０２（１０２−１〜１０２−３）と、タスクリスト１０３と、タスク管理部１０４と、クロック供給判断部１０５と、デバイス管理テーブル１０６と、クロック制御部１０７と、実行優先度変更部１０８とから構成される。
【００９０】
オペレーションシステム１００は、複数のタスク１０１を並行して実行できるマルチタスク機能をもつ。
【００９１】
なお、この電力装置は典型的にはＣＰＵ、ＲＯＭ、ＲＡＭのドライブ、Ｉ／Ｏポート等を備える一般的な情報処理装置で実行されるソフトウェアとして実現されるが、専用の電子回路等のハードウェアで実現されても良い。
【００９２】
タスク１０１は、例えば、映像や音声データをＭＰＥＧ２等のフォーマットに多重化する機能を実現したり、ＭＰＥＧ２等のデータをＤＶＤやＨＤＤ等の蓄積媒体に記録する機能を複数のタスク１０１で実現したりするなど、ユーザの求めるジョブを実現するためにオペレーションシステム１００上で動作するプログラムであり、複数からなる。また、複数からなるタスク１０１はそれぞれ、必要となるデバイス１０２を制御しながら、ユーザが求めるジョブを実現する。
【００９３】
タスクリスト１０３は、タスク１０１の状態およびタスク１０１の中でどのタスク１０１を優先的に実行するかを示す実行優先度を管理するためのテーブルであり、メモリ等の記憶装置手段に保持される。
【００９４】
タスク管理部１０４は、タスクリスト１０３におけるタスク１０１の状態の情報を参照し、実行可能状態にあるタスク１０１とタスクリスト１０３で参照した実行優先度とを関連させたリストを、実行状態に遷移する順番を示す実行待ちリストとして管理する。そして、実行待ちリストにしたがって、実行可能状態にあるタスク１０１を実行状態への遷移や、実行状態にあるタスク１０１を待ち状態あるいは実行可能状態へ遷移を実行したりする。また、タスク管理部１０４は、タスクの実行がされるまでの時間を管理する。
【００９５】
デバイス管理テーブル１０６は、各々のタスク１０１がどのデバイス１０２を使用するかを管理するためのテーブルであり、メモリ等の記憶装置手段に保持される。
【００９６】
また、デバイス管理テーブル１０６は、タスク１０１が使用するデバイス１０２がクロック供給を開始してから動作可能となるまでのクロック制御時間を管理するための情報も含む。
【００９７】
クロック供給判断部１０５は、請求項１におけるタスクリストと、前記デバイス管理テーブルとを参照する第１の処理部と、前記第１の処理部の参照結果に基づいて、デバイスへのクロックの供給開始あるいは供給停止を判断し、デバイスへのクロックの供給開始あるいは供給停止の要求をする第２の処理部を有するクロック供給判断部であり、本実施の形態では、タスク管理部１０４を監視し、実行可能状態に遷移したタスク１０１がどのデバイス１０２を使用しているかをデバイス管理テーブル１０６から検知し、該当するデバイス１０２に対するクロック供給開始の要求をクロック制御部１０７に対して行う。
【００９８】
クロック制御部１０７は、請求項１の前記クロック供給判断手段の要求に基づいて、デバイスへのクロックの供給あるいは停止を制御するクロック制御部であり、本実施の形態では、クロック制御手段クロック供給判断部１０５の要求にしたがい、該当する各々のデバイス１０２に対して、クロック供給の開始または停止を行う。
【００９９】
実行優先度変更部１０８は、クロック供給判断部１０５の要求にしたがって、タスク管理部１０４で管理しているタスク１０１の実行順序を変更する。
【０１００】
ここで、タスク１０１とタスクリスト１０３とタスク管理部１０４とクロック供給判断部１０５との関係について一例を挙げて説明する。図８において、例えば、タスク１０１−１とタスク１０１−２とタスク１０１−３とは並行して動作し、タスク１０１の実行優先度はタスク１０１−１が最も高いものとし、以下タスク１０１−２、タスク１０１−３の順の優先度する。また、各タスク（タスク１０１−１とタスク１０１−２とタスク１０１−３）は互いに相関関係がない、つまり独立してタスクの実行が行えるとする。
【０１０１】
タスク１０１−１、タスク１０１−２およびタスク１０１−３の状態が待ち状態から実行可能状態に遷移した場合には、まず、タスク管理部１０４は、タスクリスト１０３のタスク１０１−１と、タスク１０１−２およびタスク１０１−３の実行優先度を参照する。次に、タスク管理部１０４は、管理しているタスク１０１の実行待ちリストをタスク１０１の実行優先度にしたがい、タスク１０１−１、タスク１０１−２およびタスク１０１−３の実行優先度順になるよう、実行待ちリストを更新する。次に、タスク管理部１０４は、実行待ちリストが更新されたことをクロック供給判断部１０５に伝える。
【０１０２】
次に、本発明の実施の形態２におけるタスク１０１が実行可能状態に遷移したあとタスク１０１が使用するデバイス１０２に対してクロックの供給を開始するまでのクロック供給判断部１０５の動作および実行優先度変更部１０８の動作について図を用いて説明する。
【０１０３】
図９は、本実施の形態２におけるクロック供給判断部１０５のクロック供給の開始要求までの動作の流れを示したフローチャートである。
【０１０４】
図１０は、本実施の形態２におけるデバイス管理テーブル１０６が管理するデバイス管理テーブルの一例を示した図である。
【０１０５】
図９において、クロック供給判断部１０５は、まず、実行待ちリストに登録されている全てのタスク１０１、例えば、タスク１０１−１とタスク１０１−２とタスク１０１−３を確認する（Ｓ９０１）。
【０１０６】
次に、クロック供給判断部１０５は、確認した全てのタスクの中で最も優先度の高いタスクを確認し、確認した最も優先度の高いタスクがどのデバイス１０２を使用するのかをデバイス管理テーブル１０６に確認し、該等するデバイス１０２のクロック供給を開始してから動作可能となるまでのクロック制御時間を確認する（Ｓ９０２）。デバイス管理テーブル１０６には、図１０に示すように、各々のタスク１０１が、複数のデバイス１０２のうち、どのデバイス１０２を使用するかの情報を含んでいる。また、デバイス管理テーブル１０６は、タスク１０１が使用するデバイス１０２がクロック供給を開始してから動作可能となるまでのクロック制御時間を管理するための情報を含んでいる。
【０１０７】
次に、クロック供給判断部１０５は、デバイス管理テーブル１０６の情報を参照し、実行可能状態に遷移したタスク１０１の中で最も優先度の高いタスク、たとえば、タスク１０１−１が使用するデバイス、例えばデバイス１０２−１のクロック制御時間と、予め定めた閾となる時間を比較する（Ｓ９０３）。
【０１０８】
最も優先度の高いタスク１０１−１が使用するデバイス１０２−１のクロック制御時間が予め定めた閾となる時間を越えない場合（Ｓ９０４のＹＥＳの場合）、クロック供給判断部１０５は、クロック制御部１０７に対して、最も優先度の高いタスク１０１−１が使用するデバイス１０２−１へのクロック供給を開始する要求を行う（Ｓ９０５）。
【０１０９】
最も優先度の高いタスク１０１−１が使用するデバイス１０２−１のクロック制御時間が予め定めた閾となる時間を越える場合（Ｓ９０４のＮＯの場合）、クロック供給判断部１０５は、最も優先度の高いタスク１０１−１の次に実行優先度の高いタスク、例えば、タスク１０１−２が使用するデバイス、例えばタスク１０１−２のクロック制御時間を確認する（Ｓ９０６）。
【０１１０】
次に、クロック供給判断部１０５は、次に優先度の高いタスク１０１−２が使用するデバイス１０２−２のクロック制御時間と予め定めた閾となる時間を比較する（Ｓ９０７）。
【０１１１】
ここで、次に優先度の高いタスク１０１−２が使用するデバイス１０２−２のクロック制御時間が予め定めた閾となる時間を越える場合（Ｓ９０８のＮＯの場合）、クロック供給判断部１０５は、次に優先度の高いタスク１０１−２の次に実行優先度の高いタスク、例えば、タスク１０１−３が使用するデバイス、例えばタスク１０１−３のクロック制御時間を確認し、上述のＳ９０６とＳ９０７の動作を繰り返す。
【０１１２】
次に優先度の高いタスク１０１−２が使用するデバイス１０２−２のクロック制御時間が予め定めた閾となる時間を越えない場合（Ｓ９０８のＹＥＳの場合）、クロック供給判断部１０５は、クロック制御部１０７に対して、最も優先度の高いタスク１０１−１が使用するデバイス１０２−１に加え、次に優先度の高いタスク１０１−２が使用するデバイス１０２−２へのクロック供給を開始する要求を行う（Ｓ９０９）。ここで、本発明の実施の形態２では、閾となる時間を例えば、５０ｍｓとしている。
【０１１３】
さらに、クロック供給判断部１０５は、実行優先度変更部１０８に対し、最も優先度の高いタスク１０１−１と、次に優先度の高いタスク１０１−２の実行順序を変更する要求を行う（Ｓ９１０）。
【０１１４】
そして、実行優先度変更部１０８は、クロック供給判断部１０５の実行優先度変更要求に従い、実行待ちリストの最も優先度の高いタスク１０１−１と次に優先度の高いタスク１０１−２の実行順序を変更する。
【０１１５】
以上の処理により、実行可能状態の中で最も優先度が高いタスク１０１−１が使用するデバイス１０２−１のクロック制御時間が予め定めた閾となる時間を越える場合に、最も優先度が高いタスク１０１−１の次に優先度の高いタスク１０１−２が使用するデバイス１０２−２にもクロックを供給することが可能となり、該当するタスク１０１すなわち、タスク１０１−１およびタスク１０１−２の実行順序を変更することで、最も優先度の高いタスク１０１−１のデバイス１０２−１のクロック制御中も他のタスク１０１の動作をすることが可能となる。
【０１１６】
このように、本発明の実施の形態２によれば、実行優先度変更部１０８により、最も優先度が高いタスク１０１−１が使用するデバイス１０２−１のクロック制御時間が予め定めた閾となる時間を越える場合に、次に優先度の高いタスク１０１−２が使用するデバイス１０２−２にもクロックを供給し、該当するタスク１０１すなわち１０１−１および１０１−２の実行順序を変更することができる。
【０１１７】
それにより、該当するデバイス１０２のクロック制御時間が予め定めた閾となる時間を越える場合は、他のタスク１０１を先に実行することができる。その結果、余分な待ち時間を削減することができるので、システムのスループットを落とさずに情報処理装置全体の消費電力を最小限に抑えることができる。
【０１１８】
なお、このとき、クロック供給判断部１０５は、上述と同様の処理で、次に優先度の高いタスク１０１−２と、実行可能状態に遷移したタスクの中でタスク１０１−２のさらに次に優先度が高い１０１−３との実行優先度の変更の要求を実行優先度変更部１０８に対して行ってもよく、タスクでの実行優先度を自由に変更することで、処理待ち時間の最も少なくなるようにタスクを実行することができる。
【０１１９】
また、上述では、優先度の高いタスク１０１−１が使用するデバイス１０２−１のクロック制御時間と予め定めた閾となる時間を比較する場合について説明したが、タスク管理部１０４が管理するタスク１０１の実行がされるまでの時間と、デバイス管理テーブル１０６の動作可能待ち時間の情報とを参照して比較しても良い。その際には、クロック供給判断部１０５は、実行可能状態で実行優先度の高いタスク１０１−１が使用するデバイス１０２−１の動作可能待ち時間と、当該タスクの実行がされるまでの時間を比較し、タスク１０１−１の実行がされるまでの時間よりデバイス１０２−１の動作可能待ち時間が大きい場合、デバイス１０２−１へのクロックの供給開始を判断し、デバイス１０２−１へのクロックの供給開始の要求をクロック制御部１０７に対して行う。その場合には、実行可能状態で実行優先度の高いタスクのタスク実行までの時間とそのタスクが使用するデバイスが動作して実際に使用可能になるまでの待ち時間を参照した上で、事前にデバイスへクロックの供給をすることで、実行優先度の高いタスクが実行状態になったときにはデバイスを使用することができるので、実際にタスクが実行状態になってからデバイスが動作可能になるのを待つこともなくなり、不要な処理待ち時間を削減することができる。
【０１２０】
また、さらに、クロック供給判断部１０５は、実行優先度を変更されたタスク１０１（例えば、タスク１０１−１とする）が使用するデバイス１０２−１の状態をデバイス管理テーブル１０６に参照し、実行優先度を変更されたタスク１０１−１が使用するデバイス１０２−１が動作可能状態である場合、変更されたタスク１０１−１の実行優先度を元に戻す要求を前記実行優先度変更部１０８に対して行っても良い。その場合には、処理待ち時間の最も少なくなるようにタスク１０１を実行しつつ、当初予定していたとおりのタスク１０１の順序にて実行することができる。
【０１２１】
また、本発明の実施の形態１の変形例で述べたクロック供給判断部１０５と、実行優先度変更部１０８とを組み合わせることにより、タスク１０１が使用するデバイス１０２に対し事前にクロックの供給を開始できるだけでなく、必要最小限のデバイス１０２にのみクロックの供給を行うことができる。
【０１２２】
以上、本発明の電力制御装置について、実施の形態に基づいて、説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、ことなる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【０１２３】
また、上述の本発明の実施の形態では、電力制御装置および電力制御方法として、クロック供給の制御について説明したが、それに限定されず、電力の供給の制御でも良い。
【産業上の利用可能性】
【０１２４】
本発明は、電力制御装置および電力制御方法として、省電化かつスループットの向上が求められる複数のタスクがリアルタイムに動作するシステムにおいて利用でき、特に携帯電話やデジタルビデオカメラなどの電池駆動で動作するポータブル機器等に利用することができる。
【図面の簡単な説明】
【０１２５】
【図１】本発明の実施の形態１における電力制御装置のソフトウェア構成を示すブロック図である。
【図２】本発明の実施の形態１におけるタスクの遷移状態を示す図である。
【図３】本発明の実施の形態１におけるクロック供給判断部のクロック供給の開始要求までの動作の流れを示したフローチャートである。
【図４】本発明の実施の形態１におけるデバイス管理テーブルが管理するデバイス管理テーブルの一例を示した図である。
【図５】本発明の実施の形態１におけるマルチタスクオペレーションシステムの動作結果を示す図である。
【図６】本発明の実施の形態１におけるクロック供給判断部のクロック供給停止要求までの動作の流れを示したフローチャート図である。
【図７】本発明の実施の形態１の変形例におけるクロック供給判断部のクロック供給の開始要求までの動作の流れを示したフローチャート図である。
【図８】本発明の実施の形態２における電力制御装置のソフトウェア構成を示すブロック図である。
【図９】本発明の実施の形態２におけるクロック供給判断部のクロック供給の開始要求までの動作の流れを示したフローチャートである。
【図１０】本発明の実施の形態２におけるデバイス管理テーブルが管理するデバイス管理テーブルの一例を示した図である。
【図１１】従来のオペレーションシステムの動作結果を示す図である。
【符号の説明】
【０１２６】
１０１−１、１０１−２、１０１−３  タスク
１０２−１、１０２−２、１０２−３  デバイス
１０３  タスクリスト
１０４  タスク管理部
１０５  クロック供給判断部
１０６  デバイス管理テーブル
１０７  クロック制御部
１０８  実行優先度変更部
【図１】
2008139913.tif 000003
【図２】
2008139913.tif 000004
【図３】
2008139913.tif 000005
【図４】
2008139913.tif 000006
【図５】
2008139913.tif 000007
【図６】
2008139913.tif 000008
【図７】
2008139913.tif 000009
【図８】
2008139913.tif 000010
【図９】
2008139913.tif 000011
【図１０】
2008139913.tif 000012
【図１１】
2008139913.tif 000013