(57)【要約】  コンピューティング・デバイスは、デバイス上の全ての電力リソースに対するアクセスを制御するリソース・マネージャを含むように構成される。リソース・マネージャは、リソース利用を要求したコンポーネントをカウントすることにより未使用のデバイスを検出し、未使用のリソースをダウンさせる。また、複数の電力レベルを提供するリソースについては、必要以上に高いレベルで動作しないように保証する。
2009505193.tif 000002
【特許請求の範囲】
【請求項１】
第１のコンポーネントを用いた、コンピューティング・デバイス上の共有電力リソースを管理する方法であって、前記共有電力リソースへのアクセスが必要な全ての更なるコンポーネントは、前記第１のコンポーネントへ要求を行うことによってのみ該アクセスを行うことができることを特徴とする方法。
【請求項２】
ａ．前記共有電力リソースは、オフ状態とオン状態とを有し、
ｂ．前記第１のコンポーネントは、前記更なるコンポーネントが前記共有電力リソースへのアクセスを要求する度にインクリメントされ、かつ、前記更なるコンポーネントが前記共有電力リソースを解放する度にデクリメントされる利用量カウンタを提供し、
ｃ．前記共有電力リソースは、前記利用量カウンタが０からインクリメントされた場合に前記オン状態となり、前記利用量カウンタが０へデクリメントされた場合に前記オフ状態となる
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記第１のコンポーネントは、前記更なるコンポーネントによりなされた前記共有電力リソースへのアクセスの要求を、該要求の実行により前記電力リソースが最大許容負荷を超えることとなる場合に拒絶することを特徴とする請求項２に記載の方法。
【請求項４】
ａ．前記共有電力リソースは、オフ状態と、複数の電力出力レベルをサポートするオン状態とを有し、
ｂ．前記第１のコンポーネントは、前記リソースのその時点の出力レベルと、前記更なるソフトウェア・コンポーネントによりその時点で要求されている出力レベルとを監視し、
ｃ．更なるソフトウェア・コンポーネントによりなされた前記出力レベルを増加させる要求が、前記電力リソースの最大許容負荷を超えない範囲で実行され、
ｄ．更なるソフトウェア・コンポーネントによりなされた前記出力レベルを減少させる要求が、該コンポーネントがその時点の出力レベルを要求しており、かつ、他のコンポーネントがその時点の出力レベルを要求していない場合を除いて拒絶され、前記出力レベルが減少される場合は、いずれかのソフトウェア・コンポーネントにより要求された次に高いレベルにまで該電力レベルが下げられる
ことを特徴とする請求項１又は請求項２に記載の方法。
【請求項５】
前記更なるコンポーネントにより前記第１のコンポーネントに対してなされた前記電力リソースの要求は直ちに満たされ、該要求の実行スレッドは、前記更なるコンポーネントを前記要求が満たされるのに十分な時間においてサスペンドするか、スリープ状態におくことを含む、ことを特徴とする請求項１乃至４のいずれか１項に記載の方法。
【請求項６】
個別の実行スレッドが、前記共有電力リソースに対する要求を行うために生成されることを特徴とする請求項５に記載の方法。
【請求項７】
請求項１乃至６のいずれか１項に記載の方法に従って動作するコンピューティング・デバイス。
【請求項８】
コンピューティング・デバイス請求項１乃至６のいずれか１項に記載の方法に従って動作させるためのオペレーティング・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューティング・デバイスにおける電力制御の改善された方法に関する。また、コンピューティング・デバイスにおけるマルチレベル共有リソースの設定を含む電力制御方法に関する。
【背景技術】
【０００２】
コンピューティング・デバイスとの語には、デスクトップコンピュータ、ラップトップコンピュータ、ＰＤＡ、携帯電話、スマートフォン、デジタルカメラ、デジタル音楽プレーヤが含まれるが、これらに限定されるものではない。コンピューティング・デバイスにはまた、多くの他の工業的、家庭的な電子機器とともに、上述の１つ以上のクラスのデバイスの機能を集約した集約型のデバイスも含まれる。
【０００３】
これらのデバイスの多くは、モバイルタイプでバッテリ動作するものであって、デバイスにおける電力リソース及び電力消費の適切な管理は、電力浪費を防止し、ユーザが１セットのバッテリ或いは１回の充電動作から合理的で相当の電力利用ができるようにするために、大変に重要である。
【０００４】
コンピューティング・デバイスにおける電力リソースは、オン、オフが即座に切り替わる単純なバッテリ・リソースから、異なる電圧レベルの設定が可能か、或いは、状態を遷移させるのに一定時間を必要とするリソースまで、様々なものが存在する。
【０００５】
移動体コンピューティング・デバイスの電力の制約を克服するには、以下のような数多くの方法がある。
【０００６】
・容量の大きなバッテリを製造し、利用する。
・特定のタスクの実行のための電力消費をより少なくするコンポーネントを製造し、利用する。例えば、携帯音楽デバイスには、所定の音量をユーザに提供するのにラウドスピーカーと比べてより要求電力の少ないヘッドセットを与えることができる。
・特定のタスクやアプリケーションについてコンポーネントによる電力消費を減少させる。例えば、携帯音楽デバイスのユーザは、ヘッドセットへの信号出力レベルを電力消費を抑制するために下げることができる。別の例では、移動体電話機は、基地局との通信に必要な最低レベルにまで送信電力を下げることができる。
【０００７】
移動体コンピューティング・デバイスの設計における近年のイノベーションは、特に携帯電話について、クロック周波数、可変電圧、切換可能な電力レールなど、数多くのソフトウェア的に定義可能な共有電力リソースを定義している。しかしながら、コンピューティング・デバイス内の共有電力リソースは、数多くのレベルにおいて動作可能であるという事実については、いままで電力を効率的に管理するためには考慮されてこなかった。そこで、これらのマルチレベル共有電力リソースのインテリジェントな管理が求められている。それらは共有されており、また、特定のアプリケーションのために蓄えられているためでもないので、この制御は、デバイス内のハードウェアとソフトウェアを全体的に制御するオペレーティング・システム（ＯＳ）の一部として扱うのが最も相応しい。
【０００８】
本発明は、共有リソースがハードウェアやソフトウェアコンポーネントの最大の動的電力要求を満たすために必要とされる最小レベルにおいて動作することにより、マルチレベル供給電力リソースを利用する電力制御方法を記載する。
【０００９】
本発明の第１の側面によれば、第１のコンポーネントを用いた、コンピューティング・デバイスの共有電力リソースを管理する方法が提供される。電力リソースへのアクセスが必要な全ての更なるコンポーネントは、第１のコンポーネントへ要求を行うことによってのみ該アクセスを行うことができる。
【００１０】
本発明の第２の側面によれば、第１の側面の方法に対応して動作するように構成されたコンピューティング・デバイスが提供される。
【００１１】
本発明の第３の側面によれば、コンピューティング・デバイスを第１の側面の方法に対応して動作させるためのオペレーティング・システムが提供される。
【発明を実施するための最良の形態】
【００１２】
図１を参照して、本発明の実施形態を一例として説明する。
【００１３】
ソフトウェアは、互いに独立したハードウェア・コンポーネントに割り当てられている大半の電力リソースを制御することができる。該ハードウェア・コンポーネントには、中央演算部（ＣＰＵ）及びその周辺コンポーネントが含まれる。ハードウェア・コンポーネント間で共有されても良い他の電力リソースは、その利用量を監視することで制御される。
【００１４】
制御可能な電力リソースは、デバイスのいくつかの機能的ハードウェアエリアをまたいで拡散しても良い。しかしながら、大抵の場合、電力リソースの制御は、単一のソフトウェアコンポーネントに集約することができ、これを本実施形態ではリソース・マネージャと呼ぶことにする。このリソース・マネージャは、全てのリソースを概念提示を行うと共にインタフェースする。
【００１５】
ここでの最大の関心事は、共有電力リソースの管理である。ここでは、２つの主たる制御モデルが想定される。
【００１６】
［共有バイナリ・リソース］
これらのリソースは、オン、或いは、オフされる。このモデルの典型的な実装では、ゼロに設定される利用量カウンタが管理対象のリソースと関連づけられる。Ｕｓｅ（）関数は、電力リソースが利用中であることを示す。ハードウェアドライバはリソースが必要な場合にこの関数を呼び出す。この関数は、利用量カウンタをインクリメントする。もし、カウンタ値が０から１に変化すると、リソースはオンになる。Ｒｅｌｅｓｅ（）関数は、電力リソースが利用中でないことを示す。ハードウェアドライバは、この関数をリソースが必要なくなった場合に呼び出す。この関数は、利用量カウンタをデクリメントする。もし、カウンタ値が１から０になると、リソースはオフされる。
【００１７】
この制御モデルは、他の機能を追加しても良い。利用量カウンタの現在値を取得する機能は、有益な追加である。リソースのステータス（オン、オフ）を示すだけでなく、利用量カウンタの値を知ることは、いくつかのリソースには許容できる最大負荷があるために非常に重要である。リソースの利用量カウンタにより示された累積負荷が最大値に一致する場合、利用量カウンタを増加させる試みは全て失敗に終わるように構成される。
【００１８】
［マルチレベル・リソース］
これらのリソースはオン／オフすることができるが、共有することもできる。よって、従前の制御モデルは、このようなリソースに対しては適切であるとはいえない。というのも、ユーザは、特定のリソースをオン／オフするよりも、むしろリソースのレベルを増減したがるかも知れないからである。よって、典型的な実装では、リソースのその時点でのレベルと、リソースを消費する各ハードウェアドライバの要求とを共に継続的に監視しておく必要がある。もし、ハードウェア・ドライバがリソースの利用量レベルの増加を要求した場合、該要求によりリソースに許容される最大レベルを超えることにならない限りは、当該要求は許容される。
【００１９】
もし、ハードウェア・ドライバがレベルを下げることを要求する場合、該ドライバがリソースに既に要求されている最高レベルの現在唯一の保有者でない限りは、該要求は拒絶される。当該要求は許可される場合であっても、既に要求されている次の最高レベルにまで下げられるだけである。最大蓄積負荷に関する上記の考慮については、同様に適用される。しかしながら、マルチレベル・リソースの場合、最大許容負荷がリソース利用量のレベル毎に異なっていても良い。
【００２０】
上記の制御モデルは、図１から理解されるものである。
【００２１】
電力リソースの第３のタイプは、瞬時に変更できないタイプのものである。例えば、変更後に安定化期間を必要とするものがある。そのようなリソースには、多少異なる方法で対処しなければならない。即ち、リソースの変更を要求するハードウェア・ドライバは、処理の前にリソースが安定するために待機しなければならない。しかし、ビジーな待機ループは非常に煩わしいものなので（目的もなく電力を消費し、実時間処理の妨げとなるため）、ドライバスレッドは、リソースが安定化するのに十分な期間においてスリープ状態となり、リソース状態を検証できるように構成することが好ましい。この制御モデルも同様に図１から理解される。
【００２２】
デバイス・ドライバが同一スレッドを共有するソフトウェア・アーキテクチャは、リソースが安定化するまで待機するための一定時間のスリープが、スリープ期間において同様にホールドアップしている他のデバイス・ドライバに不利に作用しえることを認識するかも知れない。もしこのような事態が発生すると、リソースの変更を要求しようとするデバイス・ドライバについて続々とスレッドが発生してしまう。このスレッドは他のドライバのパフォーマンスに影響を与えることなくスリープすることができ、リソースが最終的に安定化した際には、ウェイク・アップしてメイン・ドライバー・スレッドにコールバックすることができる。
【００２３】
オペレーティング・システムは本来マルチスレッドであり、本発明は、電力リソースにアクセスするハードウェア・ドライバ用のコードが、ドライバの一貫性を保証するためにカーネルにロックすることで、同様に振る舞えるようにする。これは、異なるスレッドからアクセスが行われる場合に、共有リソースについて支配的に行われることが好ましい。もし、割込サービス・ルーチンがリソースをリードしたり、変更したりできる場合、割込はどのアクセスポイント周辺においても無効化されるべきである。
【００２４】
端的には、以上によりコンピューティング・デバイスは、デバイス上の全ての電力リソースへのアクセスを制御するリソース・マネージャを含むように構成される。リソース・マネージャは、リソース利用を要求したコンポーネントをカウントすることにより未使用のデバイスを検出し、未使用のリソースをダウンさせる。また、複数の電力レベルを提供するリソースについては、必要以上に高いレベルで動作しないように保証する。
【００２５】
本発明は、電力リソースの浪費を排除することにより、コンピューティング・デバイスを動作させるための既知の方法と比べて、大きな利益を提供するものであり、バッテリ動作のコンピューティング・デバイスの、単一のバッテリ・セットや１回のバッテリ充電による動作時間を改善することができる。本発明をコンセントから電源を取るタイプのコンピューティング・デバイスに適用した場合であっても電源消費を削減することができるので、環境上の利益を提供することができる。
【００２６】
本発明を特定の実施形態と関連して説明したが、特許請求の範囲において定義される本発明の範囲から逸脱することなく、修正を行ってもよいことは理解されるであろう。
【図面の簡単な説明】
【００２７】
【図１】本発明に対応するリソースの共有方法を示すフローチャートである。
【図１】
2009505193.tif 000003
【国際調査報告】
2009505193.tif 000004
2009505193.tif 000005
2009505193.tif 000006