(58)【調査した分野】(Int.Cl.,DB名)
複数のアプリケーションをサポートするように構成され、各アプリケーションが、1つまたは複数のタスクを実施することによって実行される、モバイル通信端末において、
(a)アプリケーションからのスケジューリング要求に応答して、前記タスクのうちの少なくとも1つの要求された実行時間における、電力供給状態の表示を獲得するステップと、
(b)電力供給の健全性状態値に基づき、前記要求された実行時間における、前記タスクによるエネルギー使用の速度の予測を獲得するステップであって、前記健全性状態値は、過去の放電率、放電−充電サイクル及び前記電力供給に係る動作温度のうちの1つに関連するパラメータに基いて予測され且つ更新される、ステップと、
(c)前記タスクについてのスケジューリング決定を行うステップであって、前記スケジューリング決定が、前記タスクについての2つ以上の代替処理からなるグループから選択を行うことを含み、前記選択が、前記実行時間中の電力供給状態を前記タスクによるエネルギー使用の前記予測速度に関連付ける基準に従って行われる、ステップと
を含む方法。
少なくともステップ(b)および(c)が使用可能である第1のモードにおいて、または前記ステップが使用不可であり、スケジューリング決定が前記基準を参照することなく行われる第2のモードにおいて、前記モバイル端末が起動するように構成可能であり、
少なくとも前記ステップ(b)および(c)が、前記第1のモードにおける起動のための前記モバイル端末の前記構成の結果として実行される、
請求項1に記載の方法。
前記モバイル端末内の既存のタスクおよびプロセスによるエネルギー消費の合計速度を少なくとも一度推定するステップをさらに含み、前記スケジューリング決定が少なくとも1つの合計速度の前記推定値に部分的に基づく、請求項1に記載の方法。
前記タスクについての代替処理からなる前記グループが、前記タスクをスケジュールすること、前記タスクをスケジューリング待ち行列から排除すること、および前記タスクを一時中止することを含む、請求項1に記載の方法。
前記タスクについての代替処理からなる前記グループが、前記タスクを実施するための2つ以上の可能なモードを含み、それぞれのモードが、少なくともいくつかの条件下において、エネルギー使用の異なる速度を有する、請求項1に記載の方法。
少なくとも1つのスケジューリング決定が、代替処理からなる前記グループから選択を行うステップの前に、スケジューリングのためのアドミッションを前記タスクに与えるかどうかを決定するステップをさらに含み、
前記アドミッション決定が、前記タスクの前記要求された実行時間における、電力供給状態の前記表示に依存する、
請求項1に記載の方法。
前記第1のモジュール、前記第2のモジュール、および前記タスク・スケジューリング・モジュールが使用可能である第1のモードにおいて、または少なくとも前記第2のモジュールが使用不可であり、スケジューリング決定が前記基準を参照することなく行われる第2のモードにおいて、前記モバイル端末が起動するように構成可能である、
請求項8に記載のモバイル通信端末。
前記タスクを前記タスク・スケジューリング・モジュールに転送するかどうかを決定するように構成されたタスク・アドミッション・モジュールであって、前記転送決定がバッテリ状態の前記表示に依存する、タスク・アドミッション・モジュールをさらに備える、請求項8に記載のモバイル通信端末。
【発明を実施するための形態】
【0024】
いくつかのモバイル端末は、例えば、ハードウェアおよびモバイル端末のオペレーティング・システム(OS)に重要情報を提供する「スマート」バッテリ、輝度が調節可能なディスプレイ、ならびにエネルギー節約機能を有するワイヤレス送受信機など、エネルギー節約機能を有する知られたハードウェア・コンポーネントを含む。これらのコンポーネントは、一般に、モバイル端末のOSによって制御され、これらのコンポーネントのいくつかは、ユーザまたはユーザ・アプリケーションから利用可能にされる。
【0025】
OSベースの電力管理アーキテクチャの主な目的は、エネルギーを効率的に使用し、バッテリの有用な寿命を延長し、再充電間のデバイス使用時間を引き延ばす戦略を実施することである。
【0026】
効果的なモバイル端末電力管理にとって最も重要な要件の1つは、バッテリの実際の状態を認識することである。モバイル端末は、一般に、再充電可能なバッテリからなるパックを備える。システムと、電力管理チップと、システムの残りの部分との間の通信を円滑化するための、知られたメカニズムが存在する。例えば、スマート・バッテリ・システム(SBS)規格に規定された、スマート・バス・インタフェースの利点のおかげで、SBS規格は、定常状態のバッテリ・パラメータを正確に測定するための規格として受け入れられた。
【0027】
スマート・バッテリ・モニタリング・システムは、スマート・バッテリと、システム管理バス・インタフェースと、スマート充電器とを含む。「スマート・バッテリ」という用語は、再充電可能なバッテリからなるパックのうち、例えば、独自仕様のバッテリ・モデルを使用して、バッテリ・パラメータを収集、計算、予測し、計算されたパラメータを、ソフトウェア制御を介して、ホスト・システムに提供するマイクロチップ回路を備えるもののことを指している。スマート・バッテリは、充電器およびホスト・システムとSMBusを介して通信するためのビルトイン・インタフェースを有する。
【0028】
SMBusは、スマート・バッテリと、ホスト・システムと、スマート充電器との間で情報を交換するための、2線通信インタフェース仕様である。
【0029】
スマート充電器は、スマート・バッテリと通信して、充電時間に関してより正確な制御を行うのに必要なバッテリの現在の充電ステータスを取得する。スマート・バッテリは、一般に、バッテリ状態を記述するいくつかのパラメータ、特に充電状態(SoC:state of charge)パラメータおよび健全性状態(SoH:state of health)パラメータを提供する。SoCは、バッテリの総容量に対するパーセンテージとして測定される、バッテリの現在の充電レベルである。SoHは、同じタイプの新品のバッテリと比較して、規定された出力電力を供給するバッテリの能力を測定したものである。
【0030】
SMBusインタフェース機能を呼び出すことによって、ホスト・システムは、バッテリのモデル、タイプ、SoC、SoH、温度、ならびに充電/放電サイクルの回数、バッテリのエイジ(age)、空になるまでの時間、および充電までの時間などの他の使用統計を獲得することができる。SMBusを介して獲得したデータは、ホスト・システムにおける電力管理アプリケーションを開発するために使用することができる。
【0031】
SMBusインタフェースは、本発明との関連で有用であり得る様々な可能なインタフェースの1つであることに留意されたい。
【0032】
モバイル・オペレーティング・システムにおける電力管理は、OSサイドのコンポーネントと、任意選択的に、ユーザ・サイドのアドオン・アプリケーションとから成る。カーネル・サイドにおいて電力管理を実施する場合、一般に、インタフェースを使用して、バッテリ充電ステータスと、他のバッテリ関連パラメータとを読み取り、または測定し、一般に、ビルトイン機能を使用して、様々なハードウェア・サブシステム・コンポーネントへの電力供給を制御する。
【0033】
プロセッサを制御することに加えて、オペレーティング・システムは、液晶ディスプレイ(LCD)、キーボード、ディスク・ドライブ、メモリ・モジュール、通信モジュール、センサ、カメラ、およびオーディオ・デバイスなど、様々なハードウェア・サブシステムに供給される電力も制御する。バッテリ・ステータスをモニタリングするため、オペレーティング・システムは、バッテリ・モデルおよび放電プロファイルを実施することができ、SMBusインタフェースを利用して、バッテリ・パラメータを読み取ることができる。
【0034】
一般に、ビルトインOSサイド電力管理機能は、ハンドルを提供し、このハンドルを介して、デバイス・ドライバおよびアプリケーションは、バッテリのステータスが変化したときに通知を受ける。バッテリ・ステータス通知に加えて、デバイス・ドライバは、様々な電力保存モード(例えば、オフ、アイドル、スリープ、低電力、またはアクティブ・モード)にいつ切り換えるべきかを決定するための、タイマを設定することができる。
【0035】
ユーザ・サイドでは、ユーザが使用中の他のアプリケーションによって、およびハードウェア・サブシステム・コンポーネントによって使用される電力をユーザにコントロールさせるために、高水準アドオン・アプリケーションを配備することができる。そのようなアドオン・アプリケーションのいくつかによって提供される制御は、完全に手動であるが、他のアドオン・アプリケーションは、ユーザ定義のプロファイルにおいて規定された偶発事の発生時に、アプリケーションをオンまたはオフにすることができる、プロファイル・ベースのスケジューリングを提供する。電力消費を感知できるように、アプリケーション・プロファイルを定義することによって、ユーザは、電力消費に対するいくつかの自動制御を間接的に提供することができる。
【0036】
ここで説明する原理は、それらを組み合わせて、スマート電力管理と呼ばれる手法をもたらすことができる。スマート電力管理は、電力モニタリング活動とタスク・スケジューリング活動とを少なくともモバイル端末において統合した、電力認識タスク管理方式である。いくつかの実施では、スマート電力管理は、やはり電力モニタリング活動とタスク・スケジューリング活動とをネットワーク・ノードにおいて統合した、総合的なネットワーク・ワイドな方式とすることができる。そのような方式は、既存の電力管理方式に取って代わることができ、または代替として、モバイル・オペレーティング・システムにおける電力管理を拡張するための補助的な手法として実施することができる。
【0037】
発明者らの手法の利点の1つは、それが、厳しいデッドラインを有するリアルタイム・アプリケーションに限定される必要がないことである。少なくともいくつかの電力管理方式では、スマートフォン・タスクは周期的なものでも、定期的な間隔で到着するものでもないため、これは大きな制約であった。さらに、マルチタスキング・スマートフォンは、様々なタイプのアプリケーションをホストできるので、タスクは、予測不能な到着時間を有することがあり、いくつかのアプリケーションでは、セッションがどれだけ長く持続するのかを予測するのが困難なことがある。例えば、ユーザがインターネットを介してビデオ・ゲームで遊んでいる場合、またはライブ・ストリーミング番組を見始めた場合、セッションは、予測不能な持続時間にわたって引き延ばされることがある。
【0038】
発明者らの手法の別の利点は、コンピューティング・リソースを最適化するために使用する場合、それが、バッテリ電力だけを唯一の制約として使用するように限定される必要がないことである。実際、スマートフォンにおけるタスク・スケジューリングでは、バッテリ電力ばかりでなく、無線リソース(利用可能な帯域幅)およびジョブの重要度などの他の制約も考慮するのが望ましい。スマートフォンは、緊急通話などの生命に係わるアプリケーション、およびバンキング取引などのサービスをサポートすることが期待されていることにも留意されたい。したがって、モバイル端末内のタスク・スケジューラは、好ましくは、これらの制約を考慮する。
【0039】
モバイル・ハンドセットでは、無線リンク(無線モデム)のハードウェア・コンポーネントは、一般に、他のハードウェア・コンポーネントよりもはるかに大量の電力を消費する。信頼できるリンクを維持するのに費やされる電力の量は、さらにハンドセットのロケーションによって影響される。例えば、基地局塔(cell tower)から遠く離れたハンドセットは、一般に、基地局塔のすぐ近くにいるハンドセットよりも高い送信電力を使用しなければならない。さらに、ローミング・ゾーンにいるハンドセットは、リンクを確立しようと試みて、頻繁に信号をサーチすることがあり、これによって、電力が急速に枯渇し得る。したがって、ハンドセットのロケーションは、アプリケーションが消費し得る電力の量に、したがって、それらのタスクの電力認識スケジューリングに影響することができる。したがって、ハンドセットのロケーションを考慮できるスケジューリング・アルゴリズムを提供するのが有利である。
【0040】
スケジューリング・アルゴリズムの別の有利な機能は、異なる種類の電源間の切り換えに適合できる能力である。従来は、バッテリなどの消耗し得る電源を使用していること、またはそうではなく、例えば、充電器もしくは壁のコンセントなど、消耗しない電源を使用していることのどちらかを仮定するのが一般的である。しかし、実際には、モバイル端末は、バッテリと充電器または壁のコンセントとの間で頻繁に切り換えられる。タスク・スケジューリング・アルゴリズムが、電源間の切り換えを認識し、スケジューリング戦略をしかるべく適合させることが望ましい。この点に関して、マイクロ発電機および太陽電池などの新しいタイプの電源は、例えば、重要度が高い通話をかろうじて行える電力を提供できるので、そのような電源の使用が、電力認識方式で有利に管理されることは注目に値する。
【0041】
スケジューリング・アルゴリズムの別の有利な機能は、各タスクが一定の事前に分かっている量の電流を消費するという典型的な仮定から解放されることである。少なくともいくつかのケースでは、タスクの持続時間が予測できないので、タスクが消費する全電流を予測することは実現可能でないことがある。
【0042】
典型的なモバイル・オペレーティング・システムは、様々なハードウェア・サブシステムに供給される電力を、デバイス・ドライバを介して、選択的に制御することが可能である。タスクが、ハードウェア・システムのすべてを、すべての時間にわたって使用することはまれであるので、タスクの全実行の間の異なるポイントにおいて、消費される実際の電力が再計算されれば、有利である。したがって、タスク・スケジューリング・アルゴリズムは、有利には、各スケジューリング・フェーズ中の電力消費を再計算することによって、電力消費の変動性を考慮する。
【0043】
したがって、例示的な電力認識管理方式は、モバイル端末において、アプリケーションの電力需要に従ってアプリケーションを管理する電力認識タスク・マネージャを使用する。好ましい実施形態では、この例示的な方式は、重要度が高いサービスの利用可能性を保証するために、電力保存も実施し、すなわち、指定された量の放電容量については、重要度の高くないアプリケーションによる使用を差し控える。ネットワーク・ベースおよびアプリケーション・ベースの電力管理を使用して、モバイル端末における電力消費の低減を支援することができる。残存放電容量が低下している場合に、重要度の高くないシステム・タスクの実行を延期するためにさえも、同様の原理を使用することができる。この点に関して、オペレーティング・システムは、あるシステム・タスクを、すなわち、その操作がプロセッサに限定されるタスクを「重要度が高い」として扱うことができることが理解されよう。しかし、改めて述べ直さない限り、以下の説明において言及される「重要度」は、ユーザ・アプリケーションに適用され、システム・タスクには適用されない。
【0044】
図1は、例示的な電力認識管理方式の一実施形態が実施された、ワイヤレス通信システム100の概略図である。図では、モバイル端末内ばかりでなく、他のネットワーク・ノードにも、電力認識要素が含まれている。モバイル端末の外部での電力認識要素の使用は、本発明の必須要素と見なすべきではないが、本発明のいくつかの実施形態では、それが有利である。
図1には、限定を目的としてではなく、発明者らの手法の広範性および柔軟性を示すために、そのような要素が含まれている。
【0045】
図に示されるように、モバイル端末110は、バッテリ電力供給120と、端末ベースの電力マネージャ(TPM)130と、送受信機ユニット140とを含む。アクセス・ノード150は、ネットワーク・ベースの電力マネージャ(NPM)160と、送受信機ユニット170とを含む。ネットワーク内の別の場所では、アプリケーション・サーバ180が、アプリケーション・ベースの電力マネージャ(APM)190を含む。アプリケーション・サーバ180は、一般に、ワイヤレス・ネットワークの外部に存在するが、ワイヤレス・ネットワークと通信する。NPMは、ネットワーク・ワイドな電力認識スケジューリング活動をサポートするために、モバイル端末内のTPMと協力して働くことができる。APMは、モバイル端末のバッテリ電力が低下していることが示された場合、通常はモバイル端末内で実行されるアプリケーション処理のいくつかを引き受けることができる。そのような戦略は、例えば、非常に計算集約的なアプリケーションに関して、特に有益なことがある。そのようなケースでは、計算負荷をネットワーク・エンティティに移すことによって節約されるエネルギーは、モバイル端末とネットワーク・エンティティの間の通信において費やされる追加のエネルギーを、相当なゆとりをもって超えることができる。
【0046】
以下において分かるように、モバイル端末内の例示的なTPMモジュールは、実際の電力供給能力を推定するために、電力認識モニタリング・モジュールを含む。TPMモジュールは、電力認識タスク・スケジューラも含み、電力認識タスク・スケジューラは、各タスクに必要な電力消費を推定し、その後、各タスクをスケジュール、モニタリング、一時中止、または終了することによって、各タスクを処理する。例示的なTPMモジュールの詳細なアーキテクチャが、
図2の概略ブロック図に示されている。
【0047】
図2に示されるTPMモジュールなどのTPMモジュールは、有利には、モバイル端末のオペレーティング・システムの部分をなす。
図2のTPMモジュールは、図では電力認識タスク管理システムとして識別され、以下のコンポーネントを含む。
【0048】
バッテリ電力モニタ210は、与えられたタスクを実行するのに必要と推定される電力を供給するバッテリ205の能力を、バッテリの現在の健全性状態(SoH)とバッテリの充電レベルとに基づいて計算する。モニタ210は、有利には、スマート電力モニタであり、バッテリ205は、有利には、(図に示されるような)スマート・バッテリである。
【0049】
アプリケーション・プロファイラ220は、各アプリケーションについての、または少なくとも、アプリケーションのカテゴリについてのプロファイルを含む。アプリケーション・プロファイル内のデータとして、例えば、アプリケーションのタイプ、アプリケーションのプライオリティ・クラス、アプリケーションの一般的な実行時間、アプリケーションの使用履歴、およびアプリケーションの長期使用パターンを挙げることができる。プライオリティ・クラスは、例えば、「重要度が高い」または「重要度が高くない」のような、ユーザ固有の分類とすることができる。他のプライオリティ分類は、アプリケーションの相対的な重要性に依存した2つ以上の異なるレベルからなる階層を定義することができる。
【0050】
分かるように、利用可能な電力が低下している場合の、動作の選択基準は、「重要度が高くない」タスクおよびアプリケーションよりも、「重要度が高い」タスクおよびアプリケーションに対して寛容とすることができる。同様に、アプリケーション・プロファイルは、少なくともいくつかの電力認識選択基準を無効にする、ユーザ設定の指示を含むことができる。
【0051】
通信リソース・モニタ230は、通信リンク・ステータスおよび関連するメトリックをモニタリングする。
【0052】
電力認識タスク・モニタ240は、実行時間の長いアプリケーションをモニタリングする。タスク・モニタ240は、実行時間の長いアプリケーションによる電力使用量の測定値を更新し、(以下で説明する)電力認識タスク・スケジューラが使用する様々な閾値パラメータを計算する。タスク・モニタ240は、アプリケーションおよびそれらの使用パターンについての統計も収集する。
【0053】
電力認識タスク・スケジューラ250は、タスクをスケジュールする。各タスクは、タスクを完了するのに必要と推定される電力、タスクのプロファイル、ならびに通信リソースおよび他の必要なリソースの利用可能性に基づいてスケジュールされる。
【0054】
5つのコンポーネント210〜250は、例えば、モバイル・オペレーティング・システム内のソフトウェア・モジュールとして動作する。電力認識タスク・モジュールおよび電力認識タスク・スケジューラは、既存のタスク・スケジューリング・モジュールに対する機能増強として、または追加のスケジューリング・モジュールとして、実施することができる。
【0055】
バッテリ電力モニタは、例えば、スマート・バッテリからの入力を受け取り、それを処理することによって、スマート・バッテリAPIを利用する、追加のソフトウェア・モジュールとして実施することができる。スマート・バッテリが存在しない場合、有利には、このモジュールの部分として、適切なバッテリ・モデルが実施される。
【0056】
通信リソース・モニタ・モジュールは、ソフトウェア・モジュールとして実施することができる。このモジュールは、信号強度、チャネル品質、および帯域幅などの入力を取得するために、通信ハードウェアと対話しなければならないことがある。このモジュールは、ワイヤレス・ネットワーク・カバレージ・エリアを決定するために使用できるロケーション情報を取得するために、GPS受信機または他のソフトウェア・モジュールと対話することができる。
【0057】
アプリケーション・プロファイラ・モジュールは、それ自体のアプリケーション・プロファイル・データベースを有するソフトウェア・モジュールとして実施することができる。
【0058】
ここで説明した様々なソフトウェア・モジュールはすべて、例えば、モバイル端末の計算上の心臓部を形成する中央デジタル・プロセッサにおいて、または中央プロセッサと連携して動作する補助プロセッサにおいて実行することができる。デジタル・メモリ・デバイスは、以下で説明するように、ソフトウェア・モジュールによって必要とされるデータを記憶するために使用することができる。
【0059】
モニタリング・コンポーネント210〜240は、1つまたは複数の独立したシステムとして実行することができる。そのため、モニタリング・コンポーネントは、バックグランドで実行される。モニタリング・コンポーネントは、定期的に、関連するパラメータを獲得し、スケジューラ250がアクセスでき、電力認識モジュールが動作するときに使用されるそれぞれのパラメータに関連付けられた、メモリ・ロケーションにパラメータを書き込む。
【0060】
5つのコンポーネント210〜250は、以下でより詳細に説明される。
【0061】
バッテリ電力モニタは、モバイル端末のバッテリ・ステータスを追跡し、バッテリ寿命を最大化するのに役立つ。バッテリの寿命の最大化は、モバイル・ハンドセットの重要な設計基準である。すなわち、バッテリは、個々の放電サイクル中に、非線形の挙動を示す。非線形の挙動は、バッテリのライフサイクル全体にわたって、蓄電効率においても観察される。バッテリは、非可逆的な物理変化および化学変化のため、後のほうの各充電サイクル後になるほど、安定した放電を行わなくなる傾向がある。
【0062】
満足のゆくユーザ・エクスペリエンスを提供するには、ユーザ・アプリケーションおよびサービスをスケジュールするときに、モバイル・オペレーティング・システムがバッテリの非線形挙動を考慮するのが望ましい。個々のアプリケーション(およびサービス)の開始時間および実行時間は、事前に決定することは不可能なことが多いので、タスク・スケジューリング・アルゴリズムが少なくともバッテリ・ステータスを考慮することが有利である。スマートフォンは、デスクトップ・コンピュータのマルチタスキング環境に類似した、真のマルチタスキング環境をしばしばサポートするので、スマートフォンにおけるスケジューリング問題は、はるかに複雑である。
【0063】
電力認識アプリケーションおよびサービスはどれも、バッテリ電力ステータスに関して最適化されることが望ましいので、バッテリの非線形挙動は、それらの設計にも影響する。
【0064】
図3は、モバイル端末内で使用される典型的なバッテリの放電パターンの概略的な形状を示す、仮想バッテリについての時間に対するバッテリ容量をプロットした図である。垂直軸は、最初に取得可能であった使用可能電荷量に対するパーセンテージとして、利用するために取得可能なバッテリの残存電荷量を表す。これは、バッテリの健全性状態(SoH)の一側面である。また、プロットには、残存容量の20%レベルのところに引かれた水平線と、残存容量の10%レベルのところに引かれた第2の水平線とが示されている。バッテリ消耗閾値を表すさらなる水平線も、例えば、残存容量の3%のところなど、非常に低いレベルに示されている。参照番号1から10は、放電パターンにとって重要な意味をもつ様々なイベントを示している。
【0065】
図3を参照すると、完全に充電されたバッテリは、イベント1においてアプリケーションが終了するまで、開始時間から実行されるアプリケーションに起因する典型的な放電を経験する。
【0066】
非アクティブ状態がある期間続いた後、第2のアプリケーション、おそらくはビデオ・アプリケーションが、イベント2において開始する。3で示されたイベントを通過して延びる破線は、電力認識タスク・マネージャによって決定される、タスクを完了するのに必要とされる電力の推定値を表している。スケジューラは、この例では、予想最大期間の後でさえも、十分な電力が存在するので、スケジューリングのためのアドミッションをタスクに与えられると判定する。第2のアプリケーションは、イベント3において終了するまで実行される。
【0067】
さらなる非アクティブ状態がある程度続いた後、第3のアプリケーションが、イベント4において開始する。最初に、電力認識タスク・スケジューラは、やはり十分な電力が存在すると判定し、したがって、タスクをスケジュールすることができる。しかし、スマート電力モニタは、チャネル状態の悪化が原因で、電力消費がはるかに高いことを、直ちに発見する。例えば、モバイル端末は、依然として十分な帯域幅が利用可能であるが、一方ではかなり大量の電力が費やされる、部分的な電波の影(partial radio shadow)内に移動することがある。
【0068】
イベント5において、電力消費の速度が速くなったので、電力認識タスク・スケジューラは、アプリケーションを終了または一時中止するようユーザに警告するメッセージを発行する。
【0069】
イベント5とイベント6の間では、電力消費がより低いアプリケーションが、アドミッションを与えられ、実行を許可され、その後、イベント6からイベント7までは、非アクティブ状態の期間が続く。イベント7までに、残存容量が20%の閾値よりも低下する。以下で説明するように、スケジューリングのためのアドミッションが選択されたアプリケーションだけに与えられる領域を示すために、そのような閾値を使用することができる。例として、非常に僅かなエネルギーしか消費しないアプリケーション、および重要度が中間のアプリケーションを挙げることができる。図に示されるように、イベント7において、あるアプリケーションが、アドミッションを与えられるが、その理由は、そのアプリケーションが、非常に短い予想持続時間を有し、そのため、バッテリを枯渇させることなく、タスクを最後まで実行できると予想されるからである。短い非アクティブ状態が続いた後、イベント8において、持続時間が短い別のタスクが、アドミッションを与えられ、イベント9まで実行される。
【0070】
この点に関して、非アクティブ状態の期間中であっても、ユーザ端末のスイッチがオンである場合は、ある程度の電力が失われることに留意されたい。非アクティブ状態中は、一般に、バッテリが完全に充電されているときに、最も多くの電力が失われる。バッテリが低下している場合、少なくともいくつかのケースでは、エネルギーを保存するために、電力を消費するバックグランド・タスクのいくつかを、またシステム・タスクであってもそのいくつかを終了させるのが有利なことがある。そのようなプロセスを少なくとも部分的に管理するために、電力認識モジュールを使用することができる。
【0071】
イベント9の後しばらくして、非アクティブ状態の期間中に、残存容量が10%閾値よりも低下する。この閾値を下回ると、重要度が高いアプリケーションだけが実行を許可される。イベント10において、そのようなアプリケーションが開始する。任意選択的に、新しいアプリケーションは、拒否することができ、バッテリ消耗閾値を下回った場合、アクティブな重要度が高いアプリケーションは、穏やかに終了させることができる。
【0072】
バッテリの非線形特性および放電プロファイルの形状を考慮した、知られたバッテリ・モデリング・アルゴリズムが存在する。そのようなアルゴリズムは、バッテリの挙動をシミュレートするために、電気化学的プロセスの解析的モデルまたは詳細な物理的モデルを使用することができる。いくつかの知られたアルゴリズムは、回復挿入期間(recovery insertion period)、負荷プロファイル、予測不能なユーザ実施停止期間(unpredictable user−enforced rest period)、再充電持続時間、およびタスク粒度などの、さらなる発見的手法を使用して、バッテリ・サイクルを調整する。
【0073】
図には、利用可能な電力の20%および10%に相当する例示的な閾値において、タスクに適用される選択基準が示されている。実際、異なるタスク、アプリケーション、またはタスクもしくはアプリケーションのクラスに対して、異なる閾値を定めることができる。加えて、ユーザは、電力が低下していることによって促された場合、またはより早い時期に、無効化フラグを設定することができる。以下で述べるように、電力認識機能が使用不可にされたモードでモバイル端末が起動するように、無効化を設定することさえできる。「使用不可」とは、電力認識機能が有効ではない、または起動されない、任意の状態を意味する。他の様々な中間的な設定も、もちろん可能であり、排除されていない。
【0074】
無効化フラグは、利用可能な電力レベルに係わらず、無効化フラグが適用されたタスクが、実行のためにスケジュールされるようにすることができる。代替として、無効化フラグは、スケジューリングが、電力低下閾値に依存することを許すことができるが、タスクの予想電力消費についてのいかなる考慮からもスケジューリング判断を切り離すことができる。
【0075】
利用可能な電力に基づいた選択基準は、新たに到着したタスクと、アドミッションを与えられ、処理ループの2回目以降の反復において処理できるタスクとの両方に適用できることに留意されたい。したがって、進行中のタスクは、関連する選択基準が満たされなくなったときはいつでも、終了することができる。
【0076】
図4は、一実施形態による、モバイル端末内の電力システムの機能ブロック図である。図に示されるように、スマート電力モニタ・モジュール410は、スマート・バッテリ430のSMBusバッテリAPI420とインタフェースを取る、高水準アプリケーション・プログラミング・インタフェース(API)レイヤである。モジュール410は、以下のものを含む情報を抽出する。
【0077】
バッテリ・タイプおよびモデル、これは、電力制御アルゴリズムを特定のバッテリ・モデルに微調整するために有益である。
【0078】
電源、これは、電力をバッテリから直接的に引き出すか、それとも充電器、変圧器、壁のコンセント、またはユニバーサル・シリアル・バス(USB)などの別の電源から引き出すかを識別する。
【0079】
ステータス情報、これは、例えば、限定することなく、充電レベル、バッテリの健全性状態、および電力供給時間を含むことができる。これらのパラメータについては以下で説明する。
【0080】
使用パラメータ、これは、バッテリのエイジ、現時点までの充電サイクルの累積回数などである。
【0081】
ステータス情報の特定の例には、以下のものがある。
【0082】
充電レベル、すなわち、充電状態(SoC)、これは、バッテリの現在の充電レベルを示す。充電レベルは、一般に、ミリアンペア−時(mA−h)、ミリワット−時(mW−h)、またはその等価単位で表され、それとともに、例えば、mAまたはmWで表される一定の放電率が仮定される。
【0084】
電力供給時間、これは、バッテリが与えられた率でどれだけ長く電流および/または電力を供給するかを示す。電力供給時間は、例えば、分で表すことができる。
【0085】
スマート電力モニタ・モジュールは、高水準プログラミング言語インタフェースとして(例えば、CまたはJavaで)実施することができ、おそらくはハードウェア・モジュールの助けを借りて、パラメータ値への必要なアクセスを提供する。
【0086】
モバイル端末のバッテリが、SMBusインタフェースを有さない場合、SoC、SoH、およびバッテリ関連のパラメータの計算は、バッテリ・モデルおよび推定器の助けを借りて達成することができる。さらに、いくつかのスマート・バッテリは、すべてのSMBus機能をサポートしないことがある。したがって、SMBusインタフェースが存在しない場合、電力認識タスク・スケジューリング・アルゴリズムをサポートするために、適切なバッテリ・モデルの実施が必要とされる。しかし、バッテリ・モデルは、必ずしもモバイル端末内で実施されるわけではないことに留意されたい。バッテリ・モデルは、ネットワーク内の別の場所で実施することができ、モバイル端末は、ワイヤレス通信によって、それを容易に入手することができる。
【0087】
バッテリ・モデルが含まれる場合、スマート電力モニタは、バッテリ・タイプ、バッテリのエイジ、再充電された回数、および他のパラメータなどの情報を記憶するためのデータベースも含む。推定器は、入手可能な情報を入力として取得し、任意のバッテリ充電状態におけるバッテリの能力を決定する。したがって、例えば、推定器は、残存電力の推定値とともに、健全性状態パラメータを計算することができる。
【0088】
バッテリは、限られた容量を有し、非線形のシステム・ダイナミクスを示す。したがって、バッテリが、必要な期間にわたって、与えられたアプリケーションにとって十分な負荷電流を供給できるかどうかを予測することは、簡単な問題ではない。バッテリ容量の有益な推定値を提供できるようにするには、SoC値ばかりでなく、SoH値も入手可能にすることが非常に望ましい。
【0089】
SoCは、測定された値であり、バッテリのSMBusから直接的に、またはバッテリ・モデルを使用することによって、獲得することができる。スマート・バッテリ・インタフェースが存在しない場合、SoC値は、例えば、2ステップのプロセスによって獲得することができる。最初に、電圧、電流、および温度などの関連するパラメータが測定される。次に、収集されたパラメータから、履歴データから、および先に確立されたモデルから、SoC値が推論される。
【0090】
しかし、SoCだけに依存するのは不都合である。すなわち、バッテリのSoC測定値は、バッテリの総充電量を示すときにだけ有益であり、バッテリに使用可能なエネルギーがどれだけ残っているかは明らかにしない。言い換えると、SoC値は、必要とされる負荷をバッテリがどれだけ長くサポートするかを反映していない。
【0091】
しかし、SoHは、直接的な測定によっては入手できず、それが理由で、特定のバッテリ技術に関するモデルを使用して、予測しなければならない。長年にわたって、いくつかの異なるモデルが、提案され、バッテリのSoHを正確に予測し、バッテリのSoCを決定するために、広範に研究されてきた。これらのモデルは、放電率、充電−放電サイクルの履歴、および動作温度などの様々な要因によって、その値が影響されるパラメータに基づいている。これらのモデルは、大きく4つのカテゴリに分類することができる。
【0092】
物理的モデルは、バッテリに生じる物理的なプロセスをシミュレートする。
【0093】
経験的モデルは、実験データに一致するように等式を作成するためのパラメータに一致する。
【0094】
抽象的モデルは、電気回路、離散時間等価物、および確率的プロセスとして、バッテリを表す。
【0095】
混合モデルは、経験的パラメータを使用することによって、物理的プロセスを単純化しようと試みる。
【0096】
物理的モデルは、最も高い精度を提供するが、物理的モデリングは、計算集約的であり、モバイル・ハンドセット内で実施するのは困難である。経験的モデルは、計算的には単純であり得るが、やはり十分な精度を欠いていることがある。したがって、発明者らが現在信じるところでは、解析的モデルが、モバイル・ハンドセット内での実施に最も適している。述べたように、計算能力にあまり制約がない、ネットワークの他の部分には、より計算集約的なモデルを配備して、役立てることができる。
【0097】
この点に関して有益なことがある1つの解析的モデルは、動力学的バッテリ・モデル(KiBaM:kinetic battery model)である。そのようなモデルは、例えば、モバイル・オペレーティング・システム内で実施することができる。このモデルを使用して、関連する電力パラメータを推定することができ、ソフトウェア・モジュールを用いてハンドセット・バッテリに関する履歴データを収集することによって、実施されるモデルの精度をさらに向上させることができる。ハンドセット固有のバッテリ・データを使用することによって、モデル・パラメータを再校正して、精度を向上させることが可能である。
【0098】
より単純に、バッテリ・モデルは、関連するタイプのバッテリについての、様々なエイジおよび放電サイクルの様々なポイントにおける、平均的な予想状態を特徴付けるデータからなる表とすることができる。計算タイプまたは純粋に表形式タイプの有益なバッテリ・モデルは、ローカルのデジタル・メモリに、またはリモートのデジタル・メモリにさえ記憶することができる。
【0099】
バッテリ・モデルは、測定からもたらされ、例えば、スマート電力モニタによって提供されるデータを使用して、時々更新することができる。例えば、計算型のバッテリ・モデルのパラメータは、モデルの予測を実際に測定されたバッテリ挙動と再び一致させるために、上で述べたように、時々修正することができる。
【0100】
アプリケーション・プロファイラは、アプリケーションを特徴付ける様々なパラメータのためのローカル記憶を提供する。アプリケーション・プロファイラおよびその環境の機能ブロック図が、
図5に提供されている。図に示されるように、アプリケーション・プロファイラ510は、ローカル・データベース520を使用する。データベースは、アプリケーションについての以下の情報を含む。
【0101】
アプリケーション・プロファイルは、アプリケーションのタイプ、(例えば、アプリケーションの重要度が高いかどうかを含む)アプリケーションの相対プライオリティ・レベル、どのハードウェア・サブシステムおよびリソースがアプリケーションを実行するのに必要か、予想実行時間および(必要な場合は)必要な帯域幅の初期推定値、ならびにベンダまたはデベロッパによって供給されるアプリケーションの実行プロファイルを示す。
【0102】
アプリケーション・プロファイルは、アプリケーション電力閾値(APT)も含むことができ、APTは、与えられたアプリケーションを開始してから完了するまでに必要とされる推定電力に、重要度が高いアプリケーションのために必要とされる最小電力を加えたものとして定義される。以下で詳細に説明されるように、APTは、タスク・アドミッション・コントロールおよびタスク・スケジューリングにおいて使用することができる。APTおよび他の閾値は、電力認識タスク・モニタによって提供され、更新される。それらは、アプリケーション・プロファイル・データベースに記憶することができ、電力認識タスク・スケジューラが直接的にアクセス可能なメモリにそれらをコピーすることによって、利用可能にすることができる。
【0103】
アプリケーションのそれぞれのプライオリティ・レベルも、プライオリティ・クラスを定義することによって、アプリケーション・プロファイル内で指定することができ、各プライオリティ・クラスは、1つまたは複数のアプリケーションを含む。各プライオリティ・レベルは、残存バッテリ充電量に対する異なる要件に関連付けることができ、プライオリティ・レベルを下回ると、そのプライオリティ・レベルのアプリケーションは、一時中止または終了させられる。したがって、相対プライオリティ・レベルは(個々のアプリケーションのものか、それともプライオリティ・クラスのものかに係わらず)、例えば、同時に実行中のタスクの集団が、残存バッテリ充電量の争奪を開始した場合、残存バッテリ充電量が低下していくにつれて、プライオリティが最低のアプリケーションが最初に脱落するという効果を有することができる。
【0104】
重要度が高いとされたアプリケーションに関して、それらのタスクには、バッテリの残存放電容量に係わらず、それらの実行が許可されるように、選択プロセスを無効化することを許可することができる。したがって、例えば、残存有効充電量が、初期容量の20%などの閾値よりも低下した場合、または残存充電量が、次に予想されるバッテリの再充電の前に、そのような閾値よりも低下すると予測される場合、モバイル端末は、重要度が高いタスクだけが実行を許可されるモードに入ることができる。任意選択的に、例えば、初期容量の1%から5%に設定された、非常に低い閾値を、バッテリ消耗閾値として指定することができる。バッテリは、この閾値よりも低下すると、消耗し切るまで間近であると見なされる。したがって、アプリケーションは、それが重要度の高いアプリケーションであっても、スケジューリングのためのアドミッションを与えられず、重要度が高いアクティブなアプリケーションは、穏やかに終了させられる。消耗閾値に到達すると、OSは、すべての重要度が高いアプリケーションがまもなく停止することをユーザに知らせるために、聴覚的または視覚的な警告を発することができる。
【0105】
アプリケーション使用統計は、アプリケーションの現在の状態、総実行時間、完了までの残り時間、使用パターン、および履歴データを含む。
【0106】
アプリケーション固有のハードウェア使用プロファイルは、アプリケーションを実行するのに必要とされるハードウェア・サブシステムのタイプを識別する。例えば、プロファイルは、プロセッサのタイプおよびスピード、メモリおよびストレージのタイプおよびサイズ、ディスプレイのサイズおよびタイプを含むことができる。このプロファイルは、センサ、カメラ、キーパッドの存在および活動を示すことができる。このプロファイルは、送受信機および電力増幅を記述する情報を含むことができる。
【0107】
データベースも、APIを提供し、このAPIを介して、電力認識タスク・モニタは、各アプリケーションについて、必要とされる総電力および実行時間の推定値を獲得することができる。アプリケーション・プロファイル・データベースは、電力認識タスク・モニタおよび電力認識タスク・スケジューラに主要パラメータを提供する。
【0108】
このAPIは、例えば、データベースから情報を取り出すために、アプリケーションおよびオペレーティング・システム・モジュールが起動できる、1組のすぐに使える高水準機能を含むことができる。これによって、個々のアプリケーションが、データベースに直接的にクエリを発行するための追加コードを追加する必要がなくなるので、この機能を含むことは有利である。
【0109】
通信リソース・モニタは、ワイヤレス・リンクのチャネル品質を測定するのに使用されるモジュールである。このモジュールは、ここでは
図2を参照して説明され、
図2では、機能要素230によって表される。チャネル品質の測定値は、通信閾値パラメータを設定するための基礎として使用される。したがって、例えば、電力モニタは、例えば、アップリンクおよびダウンリンク帯域幅、信号対干渉および雑音比(SINR)、ならびにロケーションの観点から見たチャネル品質を測定するために、通信リソース・モニタを定期的に起動することができる。ロケーション情報は、モバイル端末と最も近い基地局塔(または最も近いアクセス・ポイント・ノード)の間の距離を推定するために、また現在のロケーションが貧弱な電波しか受信できない(または電波が届かない)エリア内にあるかどうかを判定するために、使用することができる。
【0110】
モバイル端末のロケーションは、例えば、組み込まれたGPSを使用して、または基地局塔からのネットワーク・ベースの測定によって、獲得することができる。電力認識タスク・モニタは、必要とされる送信電力レベルを設定するために、ロケーション情報を使用する。モバイル端末が、電波が届かないエリアに所在している場合、電力認識タスク・モニタは、ネットワーク接続のサーチをどれだけの頻度で試みるべきかを決定するために、ロケーション情報を使用することができる。例えば、モバイル端末の行先ロケーションが予測できるような、ユーザの移動状況についての適切なモデルが提供される場合、モバイル端末の速度についての知識をそのロケーションとともに使用することによって、そのような決定の改善を可能にすることができる。
【0111】
電力認識タスク・モニタも、
図2をさらに参照して、より容易に理解され、
図2では、このモジュールは、機能要素240として示されている。
図2を参照すると、電力認識タスク・モニタは、電力認識タスク・スケジューラへの入力として必要とされる様々なパラメータを推定するために使用される。電力認識タスク・モニタは、電力閾値および通信閾値パラメータ、ならびにアプリケーション・プロファイルを更新するために、定期的に実行される。パラメータ推定値を作成するため、電力認識タスク・モニタは、アプリケーション・プロファイル・データベースから情報を獲得し、スマート電力モニタおよび通信リソース・モニタを起動する。
【0112】
電力認識タスク・モニタは、タスクが実行されてきた期間、タスクによってすでに使用された電力量、タスクを完了するのに必要とされる電力、およびアプリケーション使用統計を含む情報を用いて、アプリケーション・プロファイル・データベースも更新する。電力認識タスク・モニタは、電力消散関数からも情報を収集することができる。例えば、電力認識タスク・モニタは、測定値を獲得し、その測定値を使用して、プロセッサ活動のレベル、ディスプレイ使用の量、および他のハードウェア・コンポーネントの使用量を記述するパラメータ値を設定することができる。この情報は、数ある理由のなかでも特に、これらの使用レベルが予測と一致しているかどうかをチェックするために、またアプリケーション・プロファイルを更新するために有益である。この情報は、例えば、電力消費が予想よりもはるかに高い場合、およびバッテリ状態がアプリケーションのさらなる実行をサポートしない場合にアクションを取るためにも、使用することができる。
【0113】
アプリケーションを最後まで実行するのに必要とされる電力量を、実行時間中に推定するための様々な方法が存在する。例えば、知られたフレームワーク、すなわち、エネルギー認識アプリケーションをそのなかで開発できる、プログラミング・インタフェースを提供するプログラミング環境が存在する。そのようなプログラミング・インタフェースを通して、ユーザは、異なる実行経路を識別し、各経路に関連付けられたエネルギー消費を計算し、それぞれのエネルギー消費に従って実行経路を選択することができることがある。(平均)エネルギー消費の初期推定のため、テスト中に識別されたアプリケーションの実行プロファイルを使用することができる。しかし、総実行時間が容易に推定できない対話型ビデオ・ゲームおよび他のアプリケーションに関しては、そのような手法は、限定的にしか役立たないことがあることが理解されよう。
【0114】
この点に関して有益な別の推定技法が、ポータブル・ワイヤレス・デバイス上で実行されるアプリケーションのエネルギー・コストを推定するために提案されている。そのような手法によれば、デバイスは、通信コンポーネントと計算コンポーネントとに分割される。各コンポーネントは、エネルギー・コストを計算する目的で、有限状態機械としてモデル化される。このモデルの下では、各状態は、平均電流使用量と、実行の持続時間とを有する。アプリケーションの総エネルギー・コストは、すべての状態遷移と、そのそれぞれの推定エネルギー使用量とを組み合わせることによって計算される。アプリケーション・デベロッパは、そのようなモデルを使用して、アプリケーションによって消費される総エネルギーの推定値を提供することができる。
【0115】
電力認識タスク・モニタの実行をあまりにも頻繁に許可した場合、プロセッサの過剰利用の危険を招くことがあることに留意されたい。したがって、電力認識タスク・スケジューラほど頻繁には電力認識タスク・モニタが実行されないように、電力認識タスク・モニタを制限するのが有利であり得る。例えば、電力認識タスク・モニタは、最後の更新以来の実行であるタスクに対してだけ、アプリケーション・プロファイル・パラメータを更新するように、設定することができる。電力認識タスク・モニタは、スマート電力モニタと通信リソース・モニタとを異なる間隔で起動するように、さらに設定することができる。電力認識タスク・モニタは、タスクの初期アドミッションを決定するため、および長期実行タスクを制御するために電力認識タスク・スケジューラが使用する閾値設定を、スケジューラに提供することができる。
【0116】
電力認識タスク・モニタは、アプリケーションを実行するためにプロセッサ能力が必要とされる場合に、プロセッサ能力が悪影響を受けないような、より低いプライオリティで実行することもできる。
【0117】
モバイル端末の全般的な電力消費を追跡するため、タスク・モニタは、バッテリ状態、プロセッサ活動、メモリ活動、および最後のモニタリング・フェーズ以降に送受信されたデータの量などの、電力関連パラメータを読み取り、それらのパラメータを、電力認識タスク・スケジューラがアクセス可能なメモリ・ロケーションに書き込む。タスク・モニタは、タスクにアドミッションを与えるかどうか、またはタスクを継続するかどうかを迅速に評価するのに有益な形式に、関連するパラメータを整えることもできる。すなわち、タスクにアドミッションを与えるかどうか決定するたびに、長々とした評価プロセスに依存するのは不利である。代わりに、モバイル端末の現在の状態、アプリケーションの現在の状態、およびアクティブ・タスクの電力消費を反映したパラメータが容易に提供される場合、それらに基づいて、迅速な決定を行うことができるのが好ましい。
【0118】
図2の機能ブロック240に対応する、例示的な電力認識タスク・モニタのフロー図が、
図6に示されている。
図6と
図2を一緒に読めば、以下の説明を理解する助けになる。電力認識タスク・スケジューラは、スケジュールされるのを待っている1組のタスクを取得し、そのような各タスクについて、タスクを実行のためにスケジュールするか、タスクを拒否するか、それともタスクを一時中止するかを決定するために電力認識タスク・スケジューラが使用するパラメータを獲得する。図においてブロックによって示される各処理ステップは、
図2に示されるアクティブ・タスクの待ち行列から獲得した、アドミッションを与えられたタスクのバッチに対して実施される。電力認識タスク・モニタは、例示的な実施では、システム・デーモンなどの、常時実行バックグランド・プロセスとして実行される。モニタリングされるタスクは、新規タスクと、別の処理ラウンドのために電力認識タスク管理システムに戻ってきたタスクの両方を含む。
【0119】
初期化601は、モバイル端末の電源がオンになったとき、またはシステム機能を復元する必要がある他のときに行われる。初期化中、アプリケーションおよび/またはタスクの各々について、初期閾値および無効化フラグなどのフラグが設定される。少なくともいくつかの実施では、(例えば、ブロック602において)電力充電器がオンであると判定されて、消耗しない電源を現在使用中であることが示された場合、または電力認識機能が使用不可であるモードでの動作をユーザが望む場合、すべてのタスクについて無効化フラグを設定するのが有利なことがある。少なくともいくつかの実施では、すべてのタスクについて無効化フラグを設定すると、すべてのスケジューリング決定は、予想エネルギー使用量を残存バッテリ容量と比較せずに、またはそのような比較とは係わりなく、行われるようになる。
【0120】
したがって、いくつかの実施は、従来モードで起動するか、それとも電力認識モードで起動するかの選択をユーザに提供することができる。ユーザが従来モードを指定した場合、OSは、例えば、スケジューリングが電力認識スケジューリング決定に基づかないように、すべての無効化フラグを立てることができる。対照的に、電力認識モードが指定された場合、OSは、電力認識タスク・スケジューラおよび他の電力認識モジュールを使用可能にすることができる。
【0121】
充電器がオンではない場合(例えば、オフまたは接続されていない場合)、ブロック603において、タスク・モニタは、バッテリ電力モニタ210から、SoC、SoH、および他のバッテリ情報を獲得する。ブロック604において、タスク・モニタは、各タスクについて、電力使用量パラメータを決定する。バッテリの残存放電容量が低下している場合、与えられたタスクが相対的に大量の電力を使用すると予想されることを示す電力使用量パラメータは、そのタスクを直ちに終了するための根拠を提供することができることに留意されたい。
【0122】
ブロック604の後、タスク・モニタは、ブロック605に進み、ブロック605において、更新された通信リソース・パラメータが、通信リソース・モニタ230から獲得される。同様に、ブロック602において、充電器がオンであると判定された場合も、タスク・モニタは、ブロック605に進む。
【0123】
ブロック606において、タスク・モニタは、モバイル端末の動作に影響する様々なリソースに関する更新されたパラメータを獲得する。これらには、例えば、入出力(I/O)リソースおよび電力使用量に影響する他の要因を示すパラメータを含むことができる。
【0124】
ブロック607において、タスク・モニタは、電力認識選択基準に適用するために使用される閾値を更新し、例えば、あるタスクまたはタスクもしくはアプリケーションのクラスについて選択基準が無効化されるべきことを示すためのフラグを更新する。この点に関して、バッテリ状態、与えられたタスクの予想エネルギー使用量、およびいずれかの無効化フラグの存在を示す相対的に少数のパラメータを電力認識タスク・スケジューラに提供することによって、タスク・モニタは、スケジューラが、単純な閾値比較に基づいて、非常に迅速な決定を行うことを可能にすることに留意されたい。
【0125】
ブロック608において、タスク・モニタは、更新されたアプリケーション・プロファイル・パラメータをアプリケーション・プロファイラ220から獲得する。
【0126】
ブロック605〜608によってそれぞれ表される更新動作の各々は、それに関連するパラメータを異なる頻度で更新することができる。例えば、それぞれの更新動作の各々は、更新動作をトリガし、図に示される制御ループ602〜609を指定された回数だけ反復した後でリセットされる、カウンタに関連付けることができる。そのような指定された反復回数は、固定することができ、または例えば、適応的アルゴリズムによって設定される動的な値とすることができる。
【0127】
ブロック605から608について示された特定の順序は、説明的なものにすぎず、限定的なものではないことに留意されたい。他の可能な配列も可能であることは、当業者には明らかである。
【0128】
ブロック609は、様々なパラメータの更新頻度を制御するために制御することができる待ち時間を表している。各実施は、有利には、高い計算負荷をもたらす高い更新頻度と、エネルギー使用量の不正確な制御をもたらし得る低い更新頻度との間の適切なトレードオフを確立する。この点に関して、タスク・スケジューラは、一般に、1または数ミリ秒の範囲内のサイクル時間で動作するが、電力認識タスク・モニタは、一般に、例えば、数秒または数十秒もしくはさらに長いことさえある範囲内にあり得る、はるかに長いサイクル時間で動作することに留意されたい。
【0129】
今から、電力認識タスク・スケジューラについてより詳細に説明する。
図2に250として示される電力認識タスク・スケジューラは、アプリケーション・プロファイル、チャネル品質、予想タスク持続時間、および他の要因を考慮して、タスクを完了するのに必要とされるリソースを決定し、バッテリ寿命に対する影響を予想する。モバイル端末内の電力認識タスク・スケジューラは、緊急通話、健康モニタリング、認証、ならびに支払いおよびバンキング・アプリケーションなどの、重要度が高いサービスのために電力を保存することができる。
【0130】
以下の説明から明らかなように、電力認識タスク・スケジューラは、一般に、タスクを完了するのに必要とされる総エネルギーの推定値に基づいて、スケジューリング決定を行う。しかし、総エネルギー要件の明示的な推定値は、例えば、エネルギー消費の速度が予想タスク持続時間とともに考慮される場合には、計算する必要がないことがある。したがって、エネルギー消費速度が、例えば、1つまたは複数の閾値と比較されることがあり、それらの閾値は、タスク持続時間などの他の変数に依存することができる。
【0131】
消費速度および総消費の推定値は、限定することなく、ピーク値、平均値、および確率的推定値を含む、様々な種類の推定値とすることができることに留意されたい。
【0132】
電力認識タスク・スケジューラは、残存バッテリ電力が閾値よりも低下している場合には、少なくともいくつかのアプリケーションに対してアドミッションを拒否することによって、電力保存を実施することができる。代わりに、またはそれに加えて、電力認識タスク・スケジューラは、次に再充電が行われると予想される時間よりも前に、残存バッテリ電力が閾値よりも低下することが予想される場合には、そのようなアドミッションを拒否することによって、電力保存を実施することができる。この点に関して、再充電の間の予想時間は、例えば、12時間など、デフォルト値に事前に設定しておくことができ、または適応的に、ユーザが設定もしくは決定することができる。
【0133】
したがって、例えば、残存バッテリ電力が20%を下回っている場合、長いビデオ送信は拒否されることがあり、残存バッテリ電力が10%よりも低下している場合、必須ではないアプリケーションは拒否されることがあり、残存バッテリ電力が5%よりも低下している場合、通常の音声通話は拒否されることがある。
【0134】
電力認識タスク・スケジューラは、モバイル端末内の他のモジュールによって提供される情報ばかりでなく、ワイヤレス・ネットワーク内のエンティティによって提供される情報も利用することができる。例えば、ネットワーク内の1つまたは複数のサーバは、モバイル端末のバッテリ電力についての情報と、アプリケーション・プロファイルとを、電力認識タスク・スケジューラに提供することができる。(特に、ネットワーク内のそのようなサーバにおいて、バッテリ・モデルを実施することができる)。そのようにして、ネットワークは、電力集約的なアプリケーションをいつ、どのようにサポートすべきかについての決定を助けることができる。ネットワークは、モバイル端末にロケーション・ベースのカバレージ情報も提供することができる。例えば、ネットワークは、ユーザが現在、(例えば、ビルディングまたは地下道のせいで)電波の影内にいることを認識できることがある。適切な移動状況モデルが提供される場合、例えば、ネットワークは、モバイル端末が現在の経路を進み続ければ、まもなく電波状態がより良好なエリアに入ることをモバイル端末にアドバイスできることがある。
【0135】
そのような情報に基づいて、モバイル端末およびネットワークは、通信戦略を調整して、通信およびモバイル端末内での処理のために必要とされる電力を低減することができる。
【0136】
調整を行うことができる1つの通信戦略は、媒体の選択である。例えば、フル・ビデオ送信を行う代わりに、オーディオだけを送信するように、選択を行うことができる。別の調整可能な戦略は、例えば、オーディオまたはビデオ信号の品質の選択である。別の調整可能な戦略は、送信のタイミングである。現在のワイヤレス・チャネル品質が貧弱である場合、チャネル品質が改善するまで、アップリンク送信を遅らせることによって、電力を保存することができる。
【0137】
送信を遅らせる戦略は、少なくとも2つの面において、電力を保存することができる。チャネル状態が良好である場合は、許容可能なスループットを得るのに、より僅かな送信電力およびより僅かな処理電力を必要とするだけでよく、良好なチャネル状態の下では、アップリンク無線リソースの獲得を繰り返し試みることによるモバイル端末のバッテリの消耗をより僅かに抑えることができる。
【0138】
電力認識タスク・スケジューラは、いくつかの現在のモバイル端末において実施されているタイプの低水準電力管理制御機能に対するより良好な制御を可能にする機能も含むことができる。そのような制御機能の例は、ディスプレイを低電力モードに切り換える減光機能、および端末の非アクティブ・コンポーネントをオフに切り換えることができ、送信機および受信機などの他のコンポーネントを断続的なスリープ・モードに入れることができる、電力節約機能である。また別の制御機能は、プロセッサ自体の動的電圧スケーリングとすることができる。
【0139】
特定のアプリケーションを完了するのに十分な容量が残っているかどうかの判定は、問題のアプリケーションの推定電力要件および持続時間ばかりでなく、既存のタスクおよびプロセスのエネルギー消費の合計速度にも基づくことができることに留意されたい。そのような判定は、タスクのスケジューリング決定ばかりでなく、スケジューリングを求めるタスクのアドミッションにも影響することがある。
【0140】
電力要件に関して、先の説明において、アプリケーション電力閾値(APT)を、与えられたアプリケーションを開始してから完了するまでに必要とされる推定電力に、重要度が高いアプリケーションのために必要とされる最小電力を加えたものと定義したことが思い出されよう。これは、重要度が高いアプリケーションを実行するために保存しておく電力量を指定することを可能にする。
【0141】
APTは、バッテリの利用可能な電力のパーセンテージとして定義することもできる。アプリケーションおよびサービスの異なるクラスのために、異なる値のAPTを設定することができる。したがって、異なる相対プライオリティを有するアプリケーションには、差別的な扱いを与えることができ、例えば、バッテリが低下はしているが、深刻なほど低下していない場合、プライオリティが高いアプリケーションは、スケジュールすることができるが、プライオリティが低いアプリケーションは、拒否されることがある。タスクが拒否(または一時中止)される場合、オペレーティング・システムは、特別なソフトウェア・トラップを実行して、ユーザに向けた対応するメッセージを生成し、その後、タスクをスケジューラから取り除く。
【0142】
新しいタスクの場合、APTは、アプリケーション全体を完了するのに必要とされる推定電力に、重要度が高いアプリケーションのために必要とされる最小電力を加えたものである。対照的に、戻ってきたタスクの場合、APTは、アプリケーションの残りの部分を完了するのに必要とされる推定電力に、重要度が高いアプリケーションのために必要とされる最小電力と、アドミッションを得た他のアプリケーションの予想電力消散とを加えたものである。タスクがスケジュールされて、実行される場合、タスクは、最後まで実行されて、システムから出てゆくか、またはスケジューリングの次のサイクルに入るために戻ってくる。電力認識タスク・スケジューラの実際の実施は、様々な判断材料のなかでも特に、特定のホスト・オペレーティング・システムの特性によって決定付けられ得ることに留意されたい。
【0143】
スケジューラは、例えば、バッテリ電力が最小閾値を下回っているため、または通信リソースが必要な閾値を下回っているために、タスクを実行するのは賢明ではないと判断した場合、警告メッセージをユーザに送ることができる。その場合、ユーザは、スケジューラの電力認識部をバイパスして、モバイル端末に強制的にタスクを実行させる決定を行ってもよい。
【0144】
図7は、電力認識タスク・スケジューラを実施するための1つの可能なアーキテクチャの機能ブロック図を提供している。
図7は、以下でより詳細に説明される。一方、
図8Aは、
図7と併せて読めば、非常に容易に理解される。
【0145】
ここで
図8Aを参照すると、
図8Aには、タスクの電力閾値に基づいたスケジューリングまたはアドミッション決定を図説する、高水準フロー図が示されている。これは、電力認識タスク・スケジューラばかりでなく、アドミッション・モジュールでも実施できる1つの機能である。上で述べたように、電力閾値は、一般にタスクに適用することができ、アプリケーションもしくはタスクのクラスが異なれば、異なることができ、または個々のアプリケーションもしくはタスクに対して特別に設定することができる。電力閾値を実施する1つの利益は、そのような実施によって、重要度が高いと指定されたタスクのために電力を保存しておくことができることである。したがって、重要度が高いタスクは、いかなる閾値も課されることなく、アドミッションを得て、実行することができ、または例えば、非常に低い閾値の支配を受けることができ、バッテリの完全な消耗が差し迫っている場合にのみ拒否される。
【0146】
図に見られるように、ブロック801において、到着タスク待ち行列730または準備完了待ち行列740などの待ち行列から、タスクが選択され、これらの待ち行列は、ともに
図7に示されており、以下で説明される。ブロック802において、アドミッション・モジュールまたはスケジューリング・モジュールは、利用可能なバッテリ電力が適用可能な閾値よりも大きいかどうかを判定する。利用可能な電力が十分ある場合、ブロック803によって示されるように、タスクは、実行のためにアドミッションを与えられ、またはスケジュールされる。電力が十分ではない場合、アドミッション・モジュールは、タスクを拒否し、あるいはブロック804に示されるように、スケジューリング・モジュールは、警告を発し、またはタスクを一時中止もしくは拒否する。
【0147】
図8Bは、例示的なプロセス制御ブロック810についてのフォーマット図である。当業者によく知られているように、プロセス制御ブロックは、タスク・スケジューリングのためにオペレーティング・システムが必要とするタスク固有の情報を、オペレーティング・システムに提供する。プロセス制御ブロックは、それぞれ
図9Aおよび
図9Bに関連させて以下で説明される、アドミッション・モジュールおよび電力認識スケジューリング・モジュールにおいて処理される情報の基本単位である。
【0148】
図8Bのプロセス制御ブロックは、より従来的なプロセス制御ブロックと比べると、電力関連のデータ・フィールドを含むように修正されている。すなわち、図に示される電力制御ブロックは、識別子、状態、プライオリティ、プログラム・カウンタ、メモリ・ポインタ、コンテキスト・データ、I/Oステータス情報、およびアカウンティング情報などの、従来のプロセス要素を含む。しかし、電力制御ブロックは、電力関連フラグおよび電力関連情報などの、追加的なプロセス要素も含む。電力関連フラグは、例えば、上で説明した無効化フラグを含むことができる。電力関連情報は、上で説明した電力閾値の他、例えば、
図2の電力認識タスク・モニタ240によって提供されるような、他のアプリケーション・プロファイル・パラメータも含むことができる。
【0149】
ここで
図9Aおよび
図9Bを参照すると、
図9Aおよび
図9Bは、説明的な電力認識タスク・スケジューリング・サブシステム内における機能の動作を説明するフロー図である。スケジューリング・サブシステムは、その動作が
図9Aによって説明される、アドミッション・モジュールと、その動作が
図9Bによって説明される、電力認識スケジューリング・モジュールとを含む。
図9Aおよび
図9Bは、
図7のブロック図と併せることで最も良く理解され、
図7では、電力認識タスク・スケジューリング・サブシステム700は、電力認識アドミッション・モジュール710と、電力認識タスク・スケジューラ720とを含むものとして示されている。今度は、そのタスク・スケジューラが、タスク選択器750と、電力認識スケジューリング・モジュール760とを含む。
図7のさらなる詳細が以下で説明される。
【0150】
ここで
図9Aを参照すると、最初に、アドミッション・モジュールは、
図7の到着タスク待ち行列730などの待ち行列から、タスクを選択する(920)。アドミッション・モジュールは、タスクが電力関連の判定ポイントをバイパスすることを許可されていることを示す、タスク・バイパス・フラグ(TBF)が設定されているかどうかをチェックする(921)。TBFは、例えば、システム・タスクおよび他の指定されたタスクのために、事前に設定できるフラグである。この点に関して、ここで言及される様々なフラグは、個々の2値パラメータとして扱うことができ、またはまとめて、1つまたは複数の多値パラメータにすることができる
【0151】
TBFが設定されている場合、アドミッション・モジュールは、モバイル端末におけるリソースおよび通信リソースなど、タスクを実行するために必要とされるすべてのリソースが利用可能であるかどうかをチェックする(922)。利用可能である場合、タスクには、アドミッションが与えられる(923)。利用可能でない場合、タスクは、拒否される(929)。
【0152】
判定ポイント921に戻ると、電力関連の判定ポイントをバイパスするためのフラグがタスクに立てられていない場合、アドミッション・モジュールは、タスクのプライオリティまたは重要度をチェックする(924)。プライオリティまたは重要度レベルが、電力関連の判定ポイントをバイパスするのに十分な高さを有する場合、アドミッション・モジュールは、判定ポイント922のリソース・チェックに進む。十分な高さを有さない場合、アドミッション・モジュールは、ユーザ無効化フラグ(UOF)が設定されているかどうかをチェックする(925)。一般に、以下で説明するように、電力認識タスク・スケジューラが発した警告に応答して、ユーザがUOFを設定する。
【0153】
UOFが設定されている場合、アドミッション・モジュールは、判定ポイント922に進む。設定されていない場合、アドミッション・モジュールは、バッテリが選択基準のすべてを満たすのに十分な残存放電容量を有するかどうかを、電力閾値に基づいてチェックする(926)。十分な残存放電容量を有する場合、アドミッション・モジュールは、判定ポイント922に進む。十分な残存放電容量を有さない場合、アドミッション・モジュールは、要求無効化(RQO)フラグが設定されているかどうかをチェックする(927)。RQOが設定されている場合(例えば、RQO=1などの2進値を有する場合)、ユーザは、タスクがアドミッションを得た後で、ユーザが電力認識タスク・スケジューラによる警告を受けたときに、UOFを手動で設定することによって、タスクを強制的に実行することを許可される。RQOが設定されている場合、アドミッション・モジュールは、判定ポイント922に進む。設定されていない場合、タスクは、拒否される(929)。
【0154】
ここで
図9Bを参照すると、最初に、
図7のスケジューラ720などのスケジューラは、準備完了待ち行列740などの待ち行列から、アドミッションを得たタスクを選択する。
図7に示されるように、これは、タスク選択器750の助けを借りて行うことができる。スケジューラは、TBFが設定されているかどうかを、すなわち、電力関連の判定ポイントをバイパスするためのフラグがタスクに立てられているかどうかをチェックする(931)。フラグが立てられている場合、スケジューラは、タスクを実行するのに必要とされるすべてのリソースが利用可能であるかどうかをチェックする(932)。利用可能である場合、タスクは、実行のためにスケジュールされ、実行される(938)。利用可能でない場合、スケジューラは、以下で説明する、判定ポイント936に進む。判定ポイント936の可能な結果は、タスクの拒否もしくは一時中止、またはユーザ向けの警告の発行であることを、ここで述べておく。警告939Cの結果は、以下でより詳細に説明される。
【0155】
判定ポイント931に戻ると、TBFが設定されていない、すなわち、電力関連の判定ポイントをバイパスするためのフラグがタスクに立てられていないとスケジューラが判定した場合、スケジューラは、判定ポイント933に進み、そこで、スケジューラは、タスクのプライオリティまたは重要度をチェックする。プライオリティまたは重要度レベルが、電力関連の判定ポイントをバイパスするのに十分な高さを有する場合、スケジューラは、判定ポイント932のリソース・チェックに進む。十分な高さを有さない場合、スケジューラは、ユーザ設定の無効化フラグUOFが設定されているかどうかをチェックする(934)。設定されている場合、スケジューラは、判定ポイント932に進む。設定されていない場合、スケジューラは、バッテリが選択基準のすべてを満たすのに十分な残存放電容量を有するかどうかを、電力閾値に基づいてチェックする(935)。十分な残存放電容量を有する場合、スケジューラは、判定ポイント932に進む。十分な残存放電容量を有さない場合、スケジューラは、判定ポイント936に進む。
【0156】
上で述べたように、スケジューラは、判定ポイント935からばかりでなく、判定ポイント932からも判定ポイント936に入ることができる。判定ポイント936に到達すると、スケジューラは、RQOが設定されているかどうかをチェックする。RQOが設定されている場合、スケジューラは、低電力警告をユーザに発することができ、ユーザがタスクの強制的な実行を望む意思を示した場合、UOFの設定をもたらす(すなわち、UOF=1と設定する)手動入力をユーザから受け取ることができる。図には明示的に示されていないが、タスクがまもなく一時中止または拒否される場合にも、もちろん、警告を発することができる。
【0157】
したがって、RQOが設定されている場合、スケジューラは、939Cにおいて、警告を発する。図には明示的に示されていないが、スケジューラは、
図9Aのアドミッション・モジュールのための待ち行列にもタスクを入れる。アドミッション処理の次のサイクルにおいて、またタスク・モニタが、RQOのユーザ設定値を含むフラグ値を報告した後で、アドミッション・モジュールは、判定ポイント927において、上で説明したような結果を有する、RQOの読み取りを行う。
【0158】
RQOが設定されていない場合、スケジューラは、タスクを一時中止できるかどうかを判定するチェックを行う(937)。一時中止できる場合、スケジューラは、939Bにおいて、タスクを一時中止させる。一時中止できない場合、スケジューラは、939Aにおいて、タスクを拒否する。この点に関して、一時中止されたタスクは、別のスケジューリングを試みるための待ち行列に自動的に戻ることができるが、拒否されたタスクは、待ち行列から永久に除かれたままであることに留意されたい。例えば、(例えば、定期的なチェックの結果として、電力モニタによって示されるような)利用可能な電力および他の条件が、選択基準を満たすレベルに戻った場合、一時中止されたタスクは、すでにタイムアウトしていなければ、自動的に再起動することができる。
【0159】
スケジューラによって処理されるタスクには、新たにアドミッションを得たタスクと、さらなるラウンドの処理のために戻ってきたタスクとが含まれることにも留意されたい。電力認識スケジューリング決定における考慮対象になり得るようにするための、準備完了待ち行列からの各タスクの選択は、例えば、従来のスケジューリング・アルゴリズムの機能を使用して行うことができる。
【0160】
マルチタスキング・モバイル・オペレーティング・システムにおいて、電力認識タスク・スケジューリングをどのように実施できるかについてのさらなる詳細を今から提供する。
【0161】
マルチタスキング・モバイル・オペレーティング・システムにおける電力認識タスク・スケジューラの1つの例示的なアーキテクチャが、
図7の機能ブロック図に示されている。示されたアーキテクチャでは、電力認識タスク・スケジューリング・サブシステム700は、電力認識タスク・アドミッション・モジュール710と、電力認識タスク・スケジューラ720とを含む。スケジューラ機能ブロック720は、
図2のスケジューラ機能ブロック250に対応する。
【0162】
電力認識タスク・アドミッション・モジュールは、ゲートキーパとしての役割を果たし、すなわち、それは、事実上、アプリケーションの重要度および電力要件に基づいて、アプリケーションにアドミッションを与える長期スケジューラである。このモジュールは、ユーザによって、またはオペレーティング・システムによって、新しいタスクが開始されるときは常に起動される。このモジュールは、先に説明したような電力消費基準を含む、様々な基準を使用することによって、どのタスクに実行のアドミッションを与えるかを決定する。入力に2つ以上の新しいタスクが同時に到着した場合、タスク・アドミッション・モジュールは、例えば、単純な先入れ先出し(FIFO)方式を利用して、アドミッション決定のために、タスクを選択することができる。到着待ち行列730からの到着タスクに実行のアドミッションを与える場合、到着タスクは、電力認識タスク・スケジューラ720によるさらなるスケジューリングのために、準備完了待ち行列740に入れられる。
【0163】
例示的な電力認識タスク・スケジューラは、従来タイプのタスク選択器750を含み、それに電力認識スケジューリング・モジュール760が追加される。モジュール760は、準備完了待ち行列内にあるタスクにプロセッサ時間を効果的に割り当てることを目的とした、短期タスク・スケジューリングを提供する。準備完了待ち行列内のタスクは、新たにアドミッションを得たタスクばかりでなく、入出力(I/O)操作後に先のスケジュール・サイクルから戻ってきたタスク、クリティカル・セクションからのタスク、メイン・メモリにスワップ・インされたタスク、または割り込みからのタスクも含む。
【0164】
この点に関して、「クリティカル・セクション」とは、共有メモリ・エリア、共用ファイル、共通変数、または他の何らかの共有リソースにアクセスする、プログラムのセグメントのことである。1つのタスクがクリティカル・セクションで実行されている場合、通常、他のタスクは、クリティカル・セクションでの実行を許可されない。したがって、オペレーティング・システムは、与えられた時間において、ただ1つのタスクだけがクリティカル・セクションにアクセスできるようにする、ゲートキーパとしての役割を果たす。
【0165】
「スワッピング」は、メイン・メモリが限られた利用可能空間しか有さない場合に、オペレーティング・システム(OS)が実行できる操作である。したがって、OSは、新たに到着したプロセスのための場所を空けるために、既存の(しかし実行されていない)プロセスをメイン・メモリからスワップ・アウトして、ハードディスクなどの2次記憶に、または拡張低速RAMメモリに移すことができる。スワップ・インは、OSが、スワップ・アウトされたプロセスを、実行のさらなるラウンドのためにメモリに取り込むときに起こる。
【0166】
タスク選択は、到着順サービス(FIFS:first−in−first−served)最短ジョブ順(SJF:shortest job first)、最短残り時間順(shortest−remaining time−first)(すなわち、SRTF、これはプリエンプティブなSJFアルゴリズムの変形である)、ラウンド・ロビン、プライオリティ・ベース、マルチレベル待ち行列、マルチレベル・フィードバック待ち行列、または任意の専用のアルゴリズムなど、様々な知られたアルゴリズムのいずれかを使用して、達成することができる。いくつかのオペレーティング・システムは、これらのアルゴリズムの組み合わせを利用する。
【0167】
電力認識スケジューリング・モジュールが、実行のためにタスクをスケジュールすることに決定した場合、タスクは、ディスパッチャ770に渡される。ディスパッチャの役割は、カンタム(quantum)またはタイム・スライスと呼ばれる持続時間の間、選択されたタスクにプロセッサの制御を提供することである。マルチタスキング・オペレーティング・システムにおけるプロセッサのタイム・カンタムは、通常は、10ミリ秒(10ms)の倍数に設定される。例えば、Linuxオペレーティング・システムのタイム・カンタムは、10msから200msまで変動する。このカンタムの間に、タスクは、最後まで実行されるか、さもなければ、待ち状態に遷移してから、準備完了待ち行列に再び戻る。
【0168】
タスク選択プロセスの最後に、電力認識タスク選択器750は、現在選択されているタスクが長時間実行されているかどうかをチェックする。この持続時間は、例えば、アプリケーションがタスク・スケジューラ720を何巡したかを示す回数によって指定することができる。実行持続時間のそのようなチェックは、例えば、バッテリの消耗率を、与えられたアプリケーションばかりでなく、実行中の他のすべてのタスクも考慮して考えるのが望ましい場合に、有利なことがある。総消耗率が相対的に高くなった場合、与えられたアプリケーションに実行の継続を許可すべきかどうかを再評価するのが望ましいことがある。そのような再評価は、与えられたアプリケーションのプライオリティ・レベルを考慮して、また実行中のことがある他のアプリケーションのプライオリティ・レベルを考慮して、行うことができる。
【0169】
図7に示されるように、電力認識タスク・スケジューラ720は、従来のタスク・スケジューラの機能に、本明細書で説明される新しい電力認識機能を統合する。他の実施では、従来のタスク・スケジューラと電力認識タスク・スケジューラは、例えば、並列的または直列的に配置された、異なるエンティティとして動作することができる。
【0170】
(図示されていない)1つの可能な並列構成では、準備完了待ち行列740およびディスパッチャ770は、従来のスケジューラと電力認識スケジューラの両方にサービスし、タスク選択器750は、異なるクラスのタスクを異なるスケジューラに送るために使用される。例えば、タスク選択器は、OSタスクを従来のスケジューラに送り、ユーザ・タスクを電力認識スケジューラに送ることができる。あるいは、それぞれのスケジューラは各々、独自の準備完了待ち行列およびタスク選択器を有することができる。
【0171】
(図示されていない)1つの可能な直列構成では、電力認識タスク・スケジューラが、列内の第1のスケジューラであり、その後に、従来のタスク・スケジューラが続く。電力認識スケジューラは、例えば、ユーザ・タスクに対してだけ動作し、OSタスクについては、後続する従来のスケジューラに渡すだけである。従来のスケジューラは、電力認識スケジューラによって一時中止または拒否されたタスクに対しては動作せず、それらを(例えば、従来のスケジューラのコンポーネントとして組み込むことができる)後続するディスパッチャに渡すだけである。対照的に、それに関して警告が発せられたタスクは、従来のスケジューラによって処理される。代替的な構成では、電力認識タスク・スケジューラは、列内の第2のスケジューラとすることができ、その前に、従来のタスク・スケジューラが存在する。
【0172】
実行のためにタスクをスケジュールすべきかどうかの判断は、アプリケーション・タイプによって識別されるようなタスクの重要度、タスクの実行時間、タスクを完了するのに必要とされる電力量、およびそのタスクについての通信閾値に基づいている。例えば、実行時間を予測するのが困難な場合、電力消費の速度も重要なことがある。さらなる実行のためにタスクをスケジュールできない場合、OSは、タスクが一時中止または拒否されたことをユーザに警告することができる。OSは、ユーザが、例えば、先に述べたような無効化フラグを設定することによって、電力認識スケジューリング決定を無効化できるようにすることができる。
【0173】
プロセッサは、一般に、数ミリ秒おきにタスクを切り換えるので、電力認識タスク・スケジューラは、1秒当たり数百回も、戻ってきたタスクに対する複雑な再評価を行うよう求められることがあり、それより多いことさえあり得る。したがって、そのような再評価における時間および電力の過度な消費を避けるため、電力認識タスク・スケジューラをできるだけ高い効率で動作させることが望ましい。電力認識タスク・スケジューラの効率は、スケジューラがそれによって決定を行うプロセスが、電力認識タスク・モニタによってすでに計算されている閾値との僅か数個の比較演算に限定されれば、維持することができる。この点に関して、バッテリ充電レベルが非常に低下しており、重要度が高いアプリケーションしか許可されない場合、必須ではないタスク・モニタリングおよびスケジューリング機能は、有利なように、低減させること、またはオフに切り換えることさえできることに留意されたい。
【0174】
図7をさらに参照すると、プロセッサ780におけるタスク処理は、様々な結果を有することができることが分かる。タスクが完了した場合、図に示されるように、タスクは処理ループから出てゆく。当技術分野においてよく知られているように、タスクは、完了に到ることなく、その最大割り当て処理時間に達した場合、タイムアウトすることができる。そのような場合、示されるように、タスクは、一般に、処理ループの最初に戻る。いくつかのタスクは、さらなる処理のために必要な条件が満たされたことを知らせるトリガを受け取るまで、待ち状態に入る必要があることがある。
【0175】
複数の待ち行列を確立することができ、各待ち行列は、その待ち行列に特有のイベントを待っているタスクを表す。イベントが発生した場合、その待ち行列内で待っているタスクは、準備完了待ち行列に戻ることができる。図には、「イベント1...nを待つ」という文言が添えられた1つの代表的な待ち行列が示されており、実際には、n個もの別個の待ち行列が存在し得ることを示している。言い換えると、図に示された待ち行列は、第iの待ち行列であり、ここで、i=1,...,nである。トリガリング・イベントは、例えば、ディスプレイの起動、またはワイヤレス接続の確立とすることができる。
【0176】
今から、本明細書で説明した原理を含む、2つの具体的な使用事例を見てゆく。第1の事例は、重要度が高いアプリケーションを保護し、第2の事例は、変動するネットワーク状態が存在する場合に、ネットワーク接続性を保護する。
【0177】
使用事例1:重要度が高い端末中心サービス。アプリケーションは、ユーザによって、もしくはサービス・プロバイダによって、高重要度と指定することができ、または例えば、重要度が高いアプリケーションとして政府の指定を受けることがある。モバイル端末を使用して、認証およびセキュリティを含む重要度が高いアプリケーションを実行することが、ますます増えていくと予想される。例えば、拡張911サービスは、政府に義務付けられた緊急サービスであり、このサービスを使用できるように電力を確実に保存しておくことは、非常に重要な要件であり得る。さらなる例では、今や、専用のバイオメトリック・センサが、認証目的で、ある種のハンドセットに組み込まれており、将来的には、そのような認証関連のセンサは、ハンドセットの標準コンポーネントになると予想される。
【0178】
上では、アプリケーション電力閾値(APT)を、与えられたアプリケーションを開始してから完了するまでに必要とされる推定電力に、重要度が高いアプリケーションのために必要とされる最小電力を加えたものとして定義した。その目的は、重要度が高いアプリケーションを実行するために保存しておく電力量を指定することである。
【0179】
ここでは、とりわけ、拡張911サービスとバイオメトリック・センサに依存する認証機能とを含む重要度が高い機能のために、モバイル端末を信頼して利用可能であるように、モバイル端末のバッテリ容量の一部を保存するように、TPMモジュールを構成できることについてさらに言及する。TPMモジュールは、例えば、指定された閾値を超えた場合に、必須ではないアプリケーションをブロックまたは一時中止することによって、そのような電力保存を達成することができる。そのようなブロックまたは一時中止は、一般に、先に説明したAPTに基づいたアドミッション制御に追加される。
【0180】
望ましくは、TPMモジュールの機能の一部は、重要度が高いトランザクションのために必要とされるすべてのコンポーネントが、必要とされる場合には利用可能であり、完全に動作可能であることを保証することである。したがって、例えば、TPMは、必要な場合には、ディスプレイ制御などの電力節約機能を無効化できるべきである。
【0181】
使用事例2:重要度が高くないネットワーク中心アプリケーション。モバイル端末のユーザは、例えば、ポッドキャスト(podcast)を聴くこと、または他の何らかの目的でネットワーク中心サーバからコンテンツをダウンロードすることを望むことがある。加えて、モバイル端末自体が、例えば、ローカル情報、マップ、広告、またはソフトウェア・パッチを更新するために、コンテンツをダウンロードすることを決定することがある。コンテンツのいくつかは、時間クリティカルであることがあり、他のコンテンツは、時間クリティカルではないことがある。
【0182】
ユーザが移動している場合、受信品質が著しく変化する可能性は高い。例えば、モバイル端末は、受信品質が高いエリアから品質が貧弱なエリアに、およびそれとは逆に移動することがあり、受信品質の持続的な変動を引き起こす。1つの結果は、アプリケーションが頻繁な機能停止または不良受信期間を経験することであり得る。
【0183】
貧弱な受信に起因する高いエラー率は、一般に、通信リンクをタイムアウトさせる。しかし、モバイル端末、ネットワーク、およびアプリケーション・サーバにおいて電力認識タスク・マネージャを使用することによって、そのようなタイムアウトの発生を回避できる、または少なくとも低減できる代替策を提供することができる。
【0184】
すなわち、貧弱なチャネル品質に起因するタイムアウトは、例えば、TCP/IPレイヤに関して、よく知られているように、一般に、より低位のプロトコル・レイヤにおいて宣言される。しかし、(より高位の)アプリケーション・レイヤでは、ネットワークおよびモバイル端末は、タイムアウトの頻度を低減する方法で、貧弱なチャネル状態に適応することができる。例えば、アプリケーションは、そのデータ交換速度を低減することができ、または他の何らかの戦略を変更することができる。有効であるために、そのような適応的手法は、モバイル端末、ネットワーク・レベル、およびアプリケーション・サーバにおける電力認識タスク・マネージャ間での協力を必要とする。
【0185】
説明的なシナリオでは、電力認識タスク・モニタが、現在のチャネル状態に従って、タスク関連のパラメータを設定し、電力認識タスク・スケジューラが、リソースの利用可能性に基づいて、タスクを一時中止し、再開する。例えば、電力認識タスク・モニタは、タスクのプライオリティを変更して、タスクが断続的に一時中止されるようにすること、またはタスクがより低頻度の間隔でスケジュールされるようにすることができる。そのような方法では、タスクに関連するスループットを、貧弱な受信の期間中は低下させることができ、そのような期間中のタイムアウトをより僅かにする。
【0186】
特に、受信品質が良好である期間中は、高速でダウンロードを実行し、受信品質が貧弱な期間中は、アプリケーションの電力消費を最小化するために、通信モジュールを半スリープ・モードに入れることが可能なことがある。
【0187】
チャネル品質を評価するための様々な方策が知られている。これらには、スループット、信号対干渉および雑音比(SINR)、フレーム誤り率、および送信電力レベルの測定が含まれる。