(57)【要約】  モバイルデバイスにおいて動作可能な作業負荷予測子の有効性を測定するためのシステムおよび方法が開示される。負荷マネージャは、作業負荷予測子、センサ、誤差生成器、およびコントローラを含む。作業負荷予測子は、モバイルデバイスにおいて動作可能なプロセッサコアにおける作業負荷の推定量を生成する。センサは、プロセッサコアにおける実際の作業負荷の測度を生成する。誤差生成器は、プロセッサコアにおける作業負荷の推定量および実際の作業負荷の測度を受信し、誤差信号を生成する。コントローラは、誤差信号を受信し、経時的な誤差信号の関数として、作業負荷予測子の有効性を決定する。
2013543698.tif 000002
【特許請求の範囲】
【請求項１】
モバイルデバイスにおいて作業負荷予測子の有効性を測定するための方法であって、
前記モバイルデバイスにおける前記作業負荷のリアルタイムの測度を生成するステップと、
作業負荷予測子を使用して、前記モバイルデバイスにおける前記作業負荷の推定量を生成するステップと、
前記モバイルデバイスにおける前記作業負荷の前記リアルタイムの測度を前記作業負荷の推定量と比較して、誤差信号を生成するステップと、
経時的に前記誤差信号を記録するステップと、
前記作業負荷予測子の前記有効性の測度として前記誤差信号の関数を生成するステップと
を含む方法。
【請求項２】
前記誤差信号の関数を使用するステップが、選択された期間にわたって前記誤差信号の2乗の積分を計算するステップを含む、請求項1に記載の方法。
【請求項３】
前記誤差信号に応答して、少なくとも1つのパラメータを調整するコントローラに前記誤差信号を適用するステップ
をさらに含む請求項1に記載の方法。
【請求項４】
前記誤差信号をアクティブな性能スケーリングアルゴリズムと少なくとも1つのパラメータとの組合せに関連付けるステップ
をさらに含む請求項1に記載の方法。
【請求項５】
前記誤差信号の相互相関の測度を使用して、前記モバイルデバイスの現在の動作状態が既知の使用事例に類似しているかどうかを決定するステップ
をさらに含む請求項1に記載の方法。
【請求項６】
前記モバイルデバイスがそのように構成されているとき、性能スケーリングアルゴリズムと1つまたは複数のパラメータとの組合せを適用するステップ
をさらに含む請求項5に記載の方法。
【請求項７】
前記モバイルデバイスが、
携帯電話、ページャ、携帯情報端末、リーダー、衛星電話、ナビゲーションデバイス、またはワイヤレス接続を有するコンピュータのうちの1つ
を含む、請求項1に記載の方法。
【請求項８】
モバイルデバイスにおいて実行するための負荷マネージャであって、
前記モバイルデバイスにおいて動作可能なプロセッサコアにおける前記作業負荷の推定量を生成するように構成された作業負荷予測子と、
前記モバイルデバイスにおいて動作可能な前記プロセッサコアにおける前記作業負荷の測度を生成するように構成されたセンサと、
前記作業負荷の前記推定量および前記作業負荷の前記測度を受信し、誤差信号を生成するように構成された誤差生成器と、
前記誤差信号を受信し、前記プロセッサコアの動作を調整するように構成されたコントローラと
を含む負荷マネージャ。
【請求項９】
前記作業負荷予測子が性能スケーリングアルゴリズムに応答する、請求項8に記載の負荷マネージャ。
【請求項１０】
前記誤差信号の2乗の大きさを使用して、前記作業負荷を予測するために前記作業負荷予測子の精度を決定する、請求項8に記載の負荷マネージャ。
【請求項１１】
前記誤差信号に応答する時間シーケンスストア
をさらに含む請求項8に記載の負荷マネージャ。
【請求項１２】
前記時間シーケンスストアに結合された相互相関器であり、前記モバイルデバイスの識別された使用に関連付けられた誤差信号に対する前記誤差信号の類似性の測度を生成するように構成された相互相関器
をさらに含む請求項11に記載の負荷マネージャ。
【請求項１３】
モバイルデバイスにおける負荷を管理するためのシステムであって、
前記モバイルデバイスにおいて動作可能なプロセッサコアの作業負荷を測定するための手段と、
前記モバイルデバイスにおいて動作可能な前記プロセッサコアの前記作業負荷の推定量を生成するための手段と、
前記作業負荷および前記作業負荷の前記推定量に応答する誤差信号を生成するための手段と、
経時的に前記誤差信号を格納するための手段と、
経時的に格納された誤差信号を前記モバイルデバイスの使用の現在の状態に関連付けるための手段と、
経時的に前記格納された誤差信号に応答して前記モバイルデバイスを選択的に調整するための手段と
を含むシステム。
【請求項１４】
前記作業負荷の推定量を生成するための前記手段が作業負荷予測子を含む、請求項13に記載のシステム。
【請求項１５】
選択的に調整するための前記手段が、相互相関器および検出器に応答する、請求項13に記載のシステム。
【請求項１６】
コンピュータ可読プログラムコードからなるコンピュータプログラムであって、前記コンピュータ可読プログラムコードが、モバイルデバイスにおいて動作可能な作業負荷予測子の有効性を識別するための方法を実施するために実行されるようになされており、
前記モバイルデバイスにおける前記作業負荷のリアルタイムの測度を生成するように構成された論理と、
前記モバイルデバイスにおける前記作業負荷の推定量を生成するように構成された論理と、
前記モバイルデバイスにおける前記作業負荷の前記リアルタイムの測度を前記作業負荷の前記推定量と比較して、誤差信号を生成するように構成された論理と、
経時的に前記誤差信号を記録するように構成された論理と、
前記誤差信号の関数を計算するように構成された論理と、
前記誤差信号の前記関数に応答して前記作業負荷予測子の前記有効性を決定するように構成された論理と
を実行するように構成されたコンピュータプログラム。
【請求項１７】
前記誤差信号に応答して少なくとも1つのパラメータを調整するように構成された論理
をさらに含む請求項16に記載のコンピュータプログラム。
【請求項１８】
前記誤差信号を性能スケーリングアルゴリズムと少なくとも1つのパラメータとの組合せに関連付けるように構成された論理
をさらに含む請求項16に記載のコンピュータプログラム。
【請求項１９】
前記モバイルデバイスの現在の動作状態が、性能スケーリングアルゴリズムと1つまたは複数のパラメータとの適切な組合せが定義されている既知の使用事例に類似しているかどうかを決定するために、相互相関の測度を生成するように構成された論理
をさらに含む、請求項16に記載のコンピュータプログラム。
【請求項２０】
性能スケーリングアルゴリズムと1つまたは複数のパラメータとの最も類似した組合せの指示を格納するように構成された論理と、
前記モバイルデバイスがそのように構成されているとき、前記組合せを適用するように構成された論理と
をさらに含む、請求項19に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、モバイルデバイスにおける作業負荷予測子の有効性を測定するためのシステムおよび方法を提供することに関する。
【背景技術】
【０００２】
ワイヤレス通信プロトコルの技術的進歩、エネルギー蓄積密度、プロセッサ性能および効率、ならびにセルラー送信機の密度の増加は、1990年代におけるワイヤレスデジタルネットワークの導入を可能にした。第2世代のモバイルデバイスの使用がさらに普及するにつれて、インターネットへのアクセスを含むデータサービスを求める要求が増大しつつあったことが明白になった。第3世代のワイヤレス通信システムによるデータ送信のための回線交換ではなくパケット交換の導入は、ストリーミングメディアをモバイルデバイスに配信するために必要なデータ送信レートの増加を可能にした。
【０００３】
今日のデータネットワーク対応のモバイルデバイスは、極めて多くのアプリケーションをエンドユーザに提供するために、高性能のプロセッサを含む。しかしながら、性能を求める要求の結果、それに対応して消費電力が増加する。所与の実装に必要なクロック周波数とトランジスタ数の両方が増加するので、現代のプロセッサの電力損失は急速に増加しつつある。残念ながら、バッテリー技術は、これらのデータネットワーク対応のワイヤレスデバイスのエネルギー要求と足並みを揃えておらず、このことは、アプリケーション性能とバッテリー寿命との間の設計トレードオフをもたらす。最大限の性能のためにバッテリー寿命が犠牲になり得ると判断されたときでさえ、熱管理は、しばしば手のサイズのハウジング内のバッテリーと電子回路の両方の問題になり得る。
【０００４】
高性能および低消費電力を提供するプロセッサを求める要求は、プロセッサ設計における動的電圧および周波数スケーリング(DVFS)の使用につながった。DVFSは、消費電力と性能との間のトレードオフを可能にする。DVFSを利用するように設計されているプロセッサによって、プロセッサのクロック周波数を電圧の対応する調整で調整することができる。任意の節電は実行時間の増加によって相殺され、結果的に総エネルギー消費量の純減少にならないため、クロック周波数のみの低減は役立たない。しかしながら、動作電圧の低減は、消費電力の比例的な節約になる。
【０００５】
DVFS対応のプロセッサの主要な問題は、性能と節電との間のバランスをどのように制御するかということである。従来のDVFS制御アルゴリズムは、予測される作業負荷を最終期限まで引き伸ばすことができる変更された性能レベルを識別するために、ある程度のアイドル時間を使用する。すなわち、より低い電圧およびより遅いクロック周波数でプロセッサを動作させることによって、アイドル時間が低減する。この手法は連続的なわかっている作業負荷には適しているが、多くのモバイルデバイスアプリケーションは、インタラクティブであり、および/または不規則なまたは予測できない要求をプロセッサに課す。したがって、1つのアルゴリズムがすべてのモバイルデバイスアプリケーション、アプリケーションの組合せ、および用途のために最適であるというわけではないことは明らかである。
【発明の概要】
【課題を解決するための手段】
【０００６】
モバイルデバイスにおいて動作可能な作業負荷予測子の有効性を測定するための方法は、モバイルデバイスにおける実際の作業負荷のリアルタイムの測度を生成するステップと、作業負荷予測子を使用して、モバイルデバイスにおける作業負荷の推定量を生成するステップと、作業負荷のリアルタイムの測度を作業負荷の推定量と比較して、誤差信号を生成するステップと、経時的に誤差信号を記録するステップと、作業負荷予測子の有効性の測度として誤差信号の関数を生成するステップとを含む。
【０００７】
作業負荷予測子の有効性を測定するための方法の代替実施形態では、この方法は、誤差信号に応答して少なくとも1つのパラメータを調整するコントローラに誤差信号を適用するステップをさらに含む。
【０００８】
いくつかの例示的な実施形態では、作業負荷予測子の有効性を測定するための方法は、携帯電話、ページャ、携帯情報端末、リーダー、衛星電話、ナビゲーションデバイス、またはワイヤレス接続を有するコンピューティングデバイスのうちの1つで実施される。
【０００９】
作業負荷予測子の有効性を測定するための方法のいくつかの他の例示的な実施形態では、この方法は、選択された期間にわたる誤差信号の2乗の積分を計算するステップをさらに含む。
【００１０】
作業負荷予測子の有効性を測定するための方法のさらに別の実施形態では、この方法は、誤差信号をアクティブな性能スケーリングアルゴリズム(performance scaling algorithm)と少なくとも1つのパラメータとの組合せと関連付けるステップをさらに含む。
【００１１】
作業負荷予測子の有効性を測定するための方法の別の代替実施形態では、この方法は、誤差信号の相互相関の測度を使用して、モバイルデバイスの現在の動作状態が既知の使用事例に類似しているかどうかを決定するステップと、モバイルデバイスがそのように構成されているとき、性能スケーリングアルゴリズムと1つまたは複数のパラメータとの適切な組合せを適用するステップとをさらに含む。
【００１２】
別の態様によれば、モバイルデバイスにおける実行のための負荷マネージャ(load manager)が開示される。負荷マネージャは、作業負荷予測子、少なくとも1つのセンサ、誤差生成器、およびコントローラを含む。作業負荷予測子は、モバイルデバイスにおいて動作可能なプロセッサコアにおける作業負荷の推定量を生成する。1つまたは複数のセンサは、モバイルデバイスにおいて動作可能なプロセッサコアにおける実際の作業負荷の1つまたは複数の測度を生成する。誤差生成器は、作業負荷の推定量および実際の作業負荷の測度を受信し、誤差信号を生成する。コントローラは、誤差信号を受信し、プロセッサコアの動作を調整する。
【００１３】
負荷マネージャの例示的な一実施形態では、作業負荷予測子は、性能スケーリングアルゴリズムに応答する。
【００１４】
負荷マネージャの別の例示的な実施形態では、誤差信号の2乗の大きさを使用して、実際の作業負荷を予測するために作業負荷予測子の精度を決定する。
【００１５】
負荷マネージャの代替実施形態では、経時的に誤差信号を記録するために、時間シーケンスストアが含まれる。負荷マネージャのこの代替実施形態は、時間シーケンスストアに結合された1つまたは複数の相互相関器をさらに含むことができる。1つまたは複数の相互相関器は、モバイルデバイスの識別された使用に関連付けられた誤差信号に対するリアルタイムの誤差信号の類似性のそれぞれの測度を生成する。
【００１６】
さらに、モバイルデバイスにおける作業負荷を管理するためのシステムは、モバイルデバイスにおいて動作可能なプロセッサコアの実際の作業負荷を測定するための機構と、モバイルデバイスにおいて動作可能なプロセッサコアの作業負荷の推定量を生成するための機構と、経時的に誤差信号を生成するための機構と、経時的に誤差信号を格納するための機構と、経時的に格納された誤差信号をモバイルデバイスの使用の現在の状態に関連付けるための機構と、経時的に格納された誤差信号に応答してモバイルデバイスを選択的に調整するための機構とを含む。
【００１７】
モバイルデバイスにおける作業負荷を管理するためのシステムの一実施形態では、モバイルデバイスにおいて動作可能なプロセッサコアの作業負荷の推定量を生成するための機構は、作業負荷予測子を含む。
【００１８】
モバイルデバイスにおける作業負荷を管理するためのシステムの別の実施形態では、誤差信号に応答してモバイルデバイスを選択的に調整するための機構は、相互相関器および検出器を含む。
【００１９】
その上、さらに別の代替実施形態では、実行されると、モバイルデバイスにおいて動作可能な作業負荷予測子の有効性を識別するための方法を実施する実行可能命令を含むコンピュータプログラム製品が開示される。コンピュータプログラム製品は、モバイルデバイスにおける実際の作業負荷のリアルタイムの測度を生成するように構成された論理と、モバイルデバイスにおける作業負荷の推定量を生成するように構成された論理と、作業負荷のリアルタイムの測度を作業負荷の推定量と比較して、誤差信号を生成するように構成された論理と、経時的に誤差信号を記録するように構成された論理と、誤差信号の関数を計算するように構成された論理と、誤差信号の関数に応答して作業負荷予測子の有効性を決定するように構成された論理とを含む。
【００２０】
コンピュータプログラム製品の代替実施形態では、コンピュータプログラム製品は、誤差信号に応答して少なくとも1つのパラメータを調整するように構成された論理をさらに含む。
【００２１】
コンピュータプログラム製品の別の代替実施形態では、コンピュータプログラム製品は、誤差信号を性能スケーリングアルゴリズムと少なくとも1つのパラメータとの組合せに関連付けるように構成された論理をさらに含む。
【００２２】
コンピュータプログラム製品のさらに別の代替実施形態では、コンピュータプログラム製品は、所望の目的を達成するために性能スケーリングアルゴリズムと1つまたは複数のパラメータとの適切な組合せが識別された既知の使用事例にモバイルデバイスの現在の動作状態が類似しているかどうかを決定するために、相互相関の測度を生成するように構成された論理をさらに含む。
【００２３】
コンピュータプログラム製品のさらに別の代替実施形態では、コンピュータプログラム製品は、性能スケーリングアルゴリズムと1つまたは複数のパラメータとの最も類似した組合せの指示を格納するように構成された論理と、モバイルデバイスがそのように構成されているとき、組合せを適用するように構成された論理とをさらに含む。
【００２４】
モバイルデバイスにおいて動作可能な作業負荷予測子の有効性を測定するためのシステムおよび方法は、以下の図を参照すると、より良く理解することができる。図中の構成要素は、必ずしも一定の縮尺とは限らず、代わりに、作業負荷を測定する原理を明確に示すこと、作業負荷予測子で作業負荷を推定すること、実際の作業負荷および作業負荷の推定量の関数として、誤差信号を生成すること、ならびに作業負荷予測子の有効性の測度として誤差信号の関数を使用することに強調が置かれる。さらに、図では、同様の参照番号は、異なる図全体にわたって対応する部分を示す。
【図面の簡単な説明】
【００２５】
【図１】モバイルデバイスの一実施形態を示す概略図である。
【図２】図1のモバイルデバイスの特徴を示す概略図である。
【図３Ａ】使用事例の実施形態を示す概略図である。
【図３Ｂ】使用事例の実施形態を示す概略図である。
【図４】図1のモバイルデバイスによって実施することができる作業負荷を管理するためのシステムの一実施形態を示す概略図である。
【図５】図4のモバイルデバイスにおいて動作可能な作業負荷予測子の有効性を決定するための方法の一実施形態を示すフロー図である。
【図６】図4のモバイルデバイスにおいて実行することができる方法の代替実施形態を示すフロー図である。
【図７】図4のモバイルデバイスにおいて実行することができる方法の別の代替実施形態を示すフロー図である。
【図８】図4のモバイルデバイスにおける作業負荷を管理するための方法を示すフロー図である。
【図９】図1のモバイルデバイスにおいて動作する作業負荷予測子の有効性を測定するためのシステムの代替実施形態を示す概略図である。
【発明を実施するための形態】
【００２６】
「例示的な」という言葉は、「一例、実例または例として」を意味するように本明細書で使用される。「例示的な」ものとして本明細書で説明する態様は、必ずしも他の態様よりも好ましい、または有利であると解釈されるわけではない。
【００２７】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイルおよびパッチなど、実行可能コンテンツを有するファイルを含み得る。加えて、本明細書で言及する「アプリケーション」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルと対話することもできる。
【００２８】
本明細書では、「モバイルデバイス」という用語は、バッテリーなど限られた容量の電源上で動作する任意のデバイスを説明するために使用される。何十年もの間電池式モバイルデバイスが使用されていたが、第3および第4世代(「3Gおよび4G」)ワイヤレス技術の出現に結合された充電式バッテリーの技術的進歩は、複数の機能を有する多数のモバイルデバイスを可能にした。したがって、モバイルデバイスは、中でも、携帯電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、上述したデバイスの組合せ、ワイヤレス接続を有するラップトップコンピュータとすることができる。
【００２９】
モバイルデバイスにおける様々な機能、ならびに満足なエンドユーザ経験を確実にしながらバッテリー寿命の改良に対する継続的な欲求を実現するためのマルチコアプロセッサおよび専用のハードウェアリソースの導入は、これらのしばしば矛盾する目的に対処するように、モバイルデバイスを動的に調整するタスクをさらに複雑にした。
【００３０】
上記で説明したように、従来のDVFS制御アルゴリズムは、予測される作業負荷を最終期限まで引き伸ばすことができる変更された性能レベルを識別するために、アイドル時間の測度を使用する。すなわち、より低い電圧およびより遅いクロック周波数でプロセッサを動作させることによって、アイドル時間が低減する。この手法は連続的なわかっている作業負荷には適し得るが、多くのモバイルデバイスアプリケーションは、インタラクティブであり、および/または不規則なまたは予測できない要求をプロセッサに課す。その上、使用可能ないくつかの様々なモバイルデバイス、デバイスと通信するために使用される様々な通信プロトコルまたは標準、使用可能な異なるタイプのアプリケーション、デバイスが使用される様々な方法などによって、可能性があるすべての操作の組合せについて、単一の手法またはソリューションを調整または最適化することができないことが明らかになる。したがって、1つのアルゴリズムがすべてのモバイルデバイスアプリケーション、アプリケーションの組合せ、および用途のために最適または適切であるというわけではないことは明らかである。
【００３１】
応答して、作業負荷予測子の有効性を決定するための改良されたモバイルデバイスおよび方法が開示される。作業負荷予測子の出力を使用して、作業負荷予測子の性能を評価することができる。モバイルデバイスの様々な使用に関するデータが使用可能であるとき、作業負荷予測子の出力を使用して、モバイルデバイスのリアルタイムの使用を識別することができる。さらに、複数の方法でモバイルデバイスを調整するために、作業負荷検出器の出力をコントローラに転送することができる。たとえば、作業負荷予測子の出力を、たとえばモバイルデバイスにおいて動作可能な性能スケーリングアルゴリズムなど、選択されたアルゴリズムに適用すべき1組の動作パラメータを選択するコントローラに適用することができる。別の例では、作業負荷予測子の出力から生成された誤差信号は、以前格納された誤差信号に対するリアルタイムの誤差信号の類似性の測度を提供する相互相関器に適用される。誤差信号がいくつかのレベルの確実性に一致し、以前格納された誤差信号がモバイルデバイスにおける既知の使用事例に関連付けられていることを相互相関器が示すとき、コントローラは、モバイルデバイスにおいて使用可能な複数の処理コアにわたって作業負荷を管理するように、性能スケーリングアルゴリズムとパラメータセットとの以前最適化された組合せを選択することができる。
【００３２】
モバイルデバイスにおいて動作可能な作業負荷予測子の有効性を測定するためのシステムおよび方法は、一般に、ソフトウェアまたはファームウェアとハードウェアとの組合せを介して実施される。ソフトウェアおよびファームウェアは、モバイルデバイスにおいて動作可能な1つまたは複数のプロセッサに結合された不揮発性メモリ要素に格納することができる。不揮発性メモリ要素に格納されるソフトウェアは、適切な命令実行システム(マイクロプロセッサ)に通信され、それによって実行される。モバイルデバイス上のハードウェア実装は、すべて当技術分野でよく知られている以下の技術、個別の電子構成要素、データ信号に論理関数を実装するための論理ゲートを有する個別の論理回路、適切な論理ゲートを有する特定用途向け集積回路、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)などのうちの任意のもの、またはその組合せを含むことができる。
【００３３】
図1を参照すると、この図は、ワイヤレス電話の形のモバイルデバイス100の例示的、非限定的な態様の図である。図示のように、モバイルデバイス100は、互いに結合される、デジタルシグナルプロセッサ110およびアナログシグナルプロセッサ126を含む、オンチップシステム102を含む。図1に示されるように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130が、デジタルシグナルプロセッサ110に結合される。オンチップシステム102の外部にあるタッチスクリーンディスプレイ132が、ディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。
【００３４】
図1は、ビデオエンコーダ134、たとえば位相反転線(「PAL」)エンコーダ、順次式カラーメモリ(「SECAM」)エンコーダ、全国テレビジョン方式委員会(「NTSC」)エンコーダ、または任意の他のビデオエンコーダが、デジタルシグナルプロセッサ110に結合されることをさらに示している。さらに、ビデオ増幅器136は、ビデオエンコーダ134およびタッチスクリーンディスプレイ132に結合される。ビデオポート138がビデオ増幅器136に結合される。図1に示されるように、ユニバーサルシリアルバス(「USB」)コントローラ140がデジタルシグナルプロセッサ110に結合される。また、USBポート142がUSBコントローラ140に結合される。メモリ112および加入者識別モジュール(SIM)カード146も、デジタルシグナルプロセッサ110に結合され得る。さらに、図1に示されるように、デジタルカメラ148がデジタルシグナルプロセッサ110に結合され得る。例示的な態様では、デジタルカメラ148は、電荷結合デバイス(「CCD」)カメラまたは相補型金属酸化膜半導体(「CMOS」)カメラである。
【００３５】
図1にさらに示されるように、ステレオオーディオコーデック150がアナログシグナルプロセッサ126に結合され得る。その上、オーディオ増幅器152がステレオオーディオコーデック150に結合され得る。例示的な態様では、第1のステレオスピーカー154および第2のステレオスピーカー156がオーディオ増幅器152に結合される。図1は、マイクロフォン増幅器158もステレオオーディオコーデック150に結合され得ることを示している。加えて、マイクロフォン160がマイクロフォン増幅器158に結合され得る。特定の態様では、周波数変調(「FM」)ラジオチューナー162がステレオオーディオコーデック150に結合され得る。また、FMアンテナ164がFMラジオチューナー162に結合される。さらに、ステレオヘッドフォン166がステレオオーディオコーデック150に結合され得る。
【００３６】
図1は、高周波(「RF」)トランシーバ168がアナログシグナルプロセッサ126に結合され得ることをさらに示している。RFスイッチ170がRFトランシーバ168およびRFアンテナ172に結合され得る。図1に示されるように、キーパッド174がアナログシグナルプロセッサ126に結合され得る。また、マイクロフォンを備えたモノヘッドセット176がアナログシグナルプロセッサ126に結合され得る。さらに、バイブレータデバイス178がアナログシグナルプロセッサ126に結合され得る。図1は、たとえばバッテリーなどの電源180がオンチップシステム102に結合され得ることも示している。特定の態様では、電源は、充電式DCバッテリー、または交流(「AC」)電源に接続されたAC-DC変成器から導かれるDC電源を含む。
【００３７】
図1は、モバイルデバイス100がモニタモジュール114を含み得ることも示している。モニタモジュール114は、オンチップシステム102の全体にわたって分散される複数の動作可能なセンサ、およびモバイルデバイス100のデジタルシグナルプロセッサ110と通信する。図1に示されるように、タッチスクリーンディスプレイ132、ビデオポート138、USBポート142、カメラ148、第1のステレオスピーカー154、第2のステレオスピーカー156、マイクロフォン160、FMアンテナ164、ステレオヘッドフォン166、RFスイッチ170、RFアンテナ172、キーパッド174、モノヘッドセット176、バイブレータ178および電源180は、オンチップシステム322の外部にある。しかしながら、モニタモジュール114は、モバイルデバイス100において動作可能なリソースのリアルタイムの管理を援助するために、アナログシグナルプロセッサ126およびデジタルシグナルプロセッサ110によってこれらの外部デバイスのうちの1つまたは複数から1つまたは複数の指示または信号を受信することもできることを理解されたい。
【００３８】
特定の態様において、本明細書で説明する方法ステップのうちの1つまたは複数は、メモリ112に格納された実行可能命令およびパラメータによって実施され得る。これらの命令は、デジタルシグナルプロセッサ110、アナログシグナルプロセッサ126、または別のプロセッサにより実行され、本明細書で説明される方法を実行することができる。さらに、プロセッサ110、126、メモリ112、メモリ112に格納される命令、またはこれらの組合せは、本明細書で説明された方法のステップの1つまたは複数を実行するための手段として動作し得る。
【００３９】
図2は、図1のモバイルデバイス100の特徴を示す概略図である。図2に示されるように、デジタルシグナルプロセッサ110は、バス211を介してメモリ112に結合される。デジタルシグナルプロセッサ110は、N個のコアプロセッサを有するマルチコアプロセッサである。すなわち、デジタルシグナルプロセッサ110は、第1のコア222、第2のコア224、および第Nのコア230を含む。知られているように、第1のコア222、第2のコア224、および第Nのコア230の各々は、専用のアプリケーションまたはプログラムをサポートするために使用可能である。代わりに、2つ以上の使用可能なコアにわたる処理のために、1つまたは複数のアプリケーションまたはプログラムを分散することができる。
【００４０】
第1のコア222、第2のコア224〜第Nのコア230は、単一の集積回路ダイに集積することができ、または、多重回路パッケージにおける個別のダイに集積または結合され得る。設計者は、第1のコア222、第2のコア224〜第Nのコア230を、1つまたは複数の共有キャッシュを介して結合することができ、たとえばバス、リング、メッシュ、およびクロスバートポロジなどのネットワークトポロジを介してメッセージまたは命令パッシングを実施することができる。
【００４１】
図示の実施形態では、RFトランシーバ168は、デジタル回路素子を介して実装され、たとえばコアプロセッサ210(「コア」と標示される)など、少なくとも1つのプロセッサを含む。このデジタル実装では、RFトランシーバ168は、バス213を介してメモリ112に結合される。
【００４２】
当技術分野で知られているように、バス211およびバス213の各々は、1つまたは複数のワイヤードまたはワイヤレス接続を介した複数の通信経路を含むことができる。バス211およびバス213は、通信を可能にするために、たとえばコントローラ、バッファ(キャッシュ)、ドライバ、中継器、および受信機など、追加の要素を有していてもよいが、これについては簡単のために省略する。さらに、バス211およびバス213は、上記の構成要素の中の適切な通信を可能にするために、アドレス、制御、および/またはデータ接続を含むことができる。
【００４３】
図2に示されるように、モバイルデバイス100によって使用される論理がソフトウェアにおいて実施されるとき、開始論理250、管理論理260、DVFSインターフェース論理270、アプリケーションストア280内のアプリケーション、およびファイルシステム290の部分のうちの1つまたは複数を、任意のコンピュータ関連のシステムまたは方法によって、またはそれと関連して使用するための任意のコンピュータ可読媒体に格納することができることに留意されたい。
【００４４】
この文書の文脈では、コンピュータ可読媒体は、コンピュータ関連のシステムまたは方法によって、またはそれと関連して使用するためのコンピュータプログラムおよびデータを含むまたは格納することができる電子式、磁気式、光学式、または他の物理デバイスまたは手段である。様々な論理素子およびデータストアは、たとえばコンピュータベースのシステム、プロセッサを含むシステム、または命令実行システム、装置、もしくはデバイスから命令をフェッチし、命令を実行することができる他のシステムなど、命令実行システム、装置、またはデバイスによって、またはそれと関連して使用するための任意のコンピュータ可読媒体に組み込まれ得る。この文書の文脈では、「コンピュータ可読媒体」は、命令実行システム、装置、またはデバイスによって、またはそれと関連して使用するためのプログラムを格納、通信、伝搬、またはトランスポートすることができる任意の手段とすることができる。
【００４５】
コンピュータ可読媒体は、たとえば電子式、磁気式、光学式、電磁式、赤外線式、または半導体のシステム、装置、デバイス、または伝搬媒体であってもよいがそれらに限らない。コンピュータ可読媒体のより具体的な例(非網羅的なリスト)には、1つまたは複数のワイヤを有する電気的接続部(電子)、ポータブルコンピュータディスケット(磁気)、ランダムアクセスメモリ(RAM)(電子)、読取り専用メモリ(ROM)(電子)、消去可能プログラマブル読取り専用メモリ(EPROM、EEPROM、またはフラッシュメモリ)(電子)、光ファイバー(光学)、および携帯式コンパクトディスク読取り専用メモリ(CD-ROM)(光学)が含まれよう。プログラムは、たとえば紙または他の媒体の光学走査を介して、電子的に捕捉し、次いで、コンパイルし、インタプリタし、または場合によっては、必要に応じて好適な方法で処理し、次いでコンピュータメモリに格納することができるので、コンピュータ可読媒体は、プログラムが印刷される紙または別の適切な媒体とすることさえできることに留意されたい。
【００４６】
代替実施形態では、開始論理250、管理論理260、およびおそらくDVFSインターフェース論理270のうちの1つまたは複数がハードウェアにおいて実施される場合、様々な論理は、各々当技術分野でよく知られている以下の技術、データ信号に論理関数を実装するための論理ゲートを有する個別の論理回路、適切な組合せの論理ゲートを有する特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)などのうちの任意のもの、またはその組合せによって実施することができる。
【００４７】
メモリ112は、たとえばフラッシュメモリまたは固体メモリデバイスなどの不揮発性データ記憶デバイスである。単一のデバイスとして示されているが、メモリ112は、デジタルシグナルプロセッサおよび/またはRFトランシーバ168のコア210(または追加プロセッサコア)に結合された個別のデータストアを有する分散型メモリデバイスでもよい。
【００４８】
開始論理250は、第1のコア222、第2のコア224〜第Nのコア230など、使用可能なコアのうちの1つまたは複数の性能を管理または制御するために、選択されたプログラムを選択的に識別し、ロードし、実行するための1つまたは複数の実行可能命令を含む。選択されたプログラムは、組込みファイルシステム290のプログラムストア296で見つけることができ、性能スケーリングアルゴリズム297と1組のパラメータ298との特定の組合せによって定義される。選択されたプログラムは、デジタルシグナルプロセッサのコアプロセッサのうちの1つまたは複数、およびRFトランシーバ168のコア210によって実行されると、それぞれのプロセッサコアの性能をスケール変更するために、モニタモジュール114によって提供される1つまたは複数の信号に従って動作し得る。この点について、モニタモジュール114は、イベント、プロセス、アプリケーション、リソースステータス状態、経過時間、温度などの1つまたは複数のインジケータを提供することができる。
【００４９】
管理論理260は、それぞれのプロセッサコアのうちの1つまたは複数において動作可能な性能スケーリングプログラムを終了し、使用可能なコアのうちの1つまたは複数の性能を管理または制御するためのより適切な交換プログラムを選択的に識別し、ロードし、実行するための1つまたは複数の実行可能命令を含む。管理論理260は、実行時に、またはモバイルデバイスが電力供給され、デバイスのオペレータによって使用されている間に、これらの機能を実行するように構成される。交換プログラムは、組込みファイルシステム290のプログラムストア296で見つけることができ、性能スケーリングアルゴリズム297と1組のパラメータ298との特定の組合せによって定義される。図2に示されるように、プログラムストア296を、コアストア294およびDVFSストア292内に階層的に配置することができる。交換プログラムは、デジタルシグナルプロセッサのコアプロセッサのうちの1つもしくは複数、またはRFトランシーバ168のコア210によって実行されると、それぞれのプロセッサコアの性能をスケール変更するために、モニタモジュール114によって提供される1つもしくは複数の信号、または様々なプロセッサコアのそれぞれの制御入力で提供される1つもしくは複数の信号に従って動作し得る。この点について、モニタモジュール114は、イベント、プロセス、アプリケーション、リソースステータス状態、経過時間、温度などの1つまたは複数のインジケータを提供することができる。
【００５０】
DVFSインターフェース論理またはインターフェース論理270は、組込みファイルシステム290に格納された情報を観察し、構成し、または場合によっては更新するために、外部入力を提示し、管理し、それと対話するための1つまたは複数の実行可能命令を含む。一実施形態では、インターフェース論理270は、USBポート142を介して受信された製造業者の入力とともに動作することができる。これらの入力は、プログラムストア296から削除される、またはプログラムストア296に追加される1つまたは複数のプログラムを含み得る。代わりに、入力は、プログラムストア296のプログラムのうちの1つまたは複数に対する編集または変更を含むことができる。その上、入力は、開始論理250と管理論理260の一方または両方に対する1つまたは複数の変更、または全交換を識別することができる。例として、入力は、受信信号電力が識別された閾値を下回ると、RFトランシーバ168のすべての性能スケーリングを一時停止するようモバイルデバイス100に命令する管理論理260に対する変更を含むことができる。さらなる例として、入力は、ビデオコーデック134がアクティブであるとき、所望のプログラムを適用するようモバイルデバイス100に命令する管理論理260に対する変更を含み得る。
【００５１】
インターフェース論理270によって、製造業者は、モバイルデバイス100における定義された動作状態でエンドユーザの経験を制御可能に構成し、調整することができる。メモリ112がフラッシュメモリであるとき、開始論理250、管理論理260、インターフェース論理270、アプリケーションストア280におけるアプリケーションプログラム、または組込みファイルシステム290における情報のうちの1つまたは複数を、編集し、置き換え、または場合によっては修正することができる。いくつかの実施形態では、インターフェース論理270によって、モバイルデバイス100のエンドユーザまたはオペレータは、開始論理250、管理論理260、アプリケーションストア280におけるアプリケーション、および組込みファイルシステム290における情報を検索し、位置を特定し、修正し、または置き換えることができる。オペレータは、結果として生じるインターフェースを使用して、モバイルデバイス100の次の開始時に実施される変更を加えることができる。代わりに、オペレータは、結果として生じるインターフェースを使用して、実行時中に実施される変更を加えることができる。
【００５２】
図3Aおよび図3Bは、使用事例の実施形態を示す概略図を含む。第1の例示的な使用事例は、図3Aの表300に示される。使用事例は、モバイルデバイス100において実行することができる1組のタスクを含む。タスクは、ウェブブラウジング(すなわち、モバイルデバイス100がインターネットに結合される送信機の通信レンジ内にある間、ブラウザアプリケーションを実行する)、オーディオ/ビデオ再生、オーディオ再生、電子メールアプリケーションの実行、および1つまたは複数の他のアプリケーションの実行を含む。第2の例示的な使用事例は、図3Bの表350に示される。この第2の使用事例は、第1の使用事例の電子メールアプリケーションの代わりにショートメッセージサービス(SMS)アプリケーションを含む。
【００５３】
1つまたは複数の使用事例がモバイルデバイス100の処理リソースにおける識別可能な作業負荷を示し得ることが可能である。モバイルデバイス100における作業負荷を識別することができる場合、性能を確実にし、バッテリー電力を節約し、または性能と消費電力との間の所望のトレードオフを達成するように設計された、特定の性能スケーリングアルゴリズムと対応するパラメータを適用するように、望まれるようにモバイルデバイス100における動作状態を調整するために、適切に構成された作業負荷マネージャを適用することができる。
【００５４】
作業負荷予測子の有効性または精度の測度は、たとえばモバイルデバイス100における作業負荷を識別するために使用することができる負荷マネージャなど、制御システムへの入力を提供する。有効にされると、負荷マネージャは、モバイルデバイス100上の現在の負荷を識別するためにリアルタイムで動作し、いくつかの状況では、モバイルデバイス100における1つまたは複数の動作パラメータを調整することによって識別された作業負荷に反応する。オペレータ経験と消費電力との間の所望のバランスを達成することがわかっている複数の性能スケーリングアルゴリズムを含むモバイルデバイス100では、識別された作業負荷の識別を使用して、モバイルデバイス100において、選択された性能スケーリングアルゴリズムと1つまたは複数のパラメータとの適切な組合せを選択し、適用することができる。
【００５５】
図4は、図1のモバイルデバイス100の現在の使用のために、負荷マネージャ415に関連付けられた作業負荷予測子420の有効性を測定するためのシステム400の一実施形態を示す概略図である。システム400は、モバイルデバイス100において動作可能なDSP410の処理コアにおける作業負荷を正確に識別するために、作業負荷予測子の有効性のリアルタイムの定量分析を提供する。
【００５６】
図4に示されるように、システムは、モバイルデバイス100における現在の動作状態の1つまたは複数の指示を受信するためにセンサ405に結合されるデジタルシグナルプロセッサ410を含む。さらに、センサ405に結合されるように、デジタルシグナルプロセッサ410は、バス111を介してメモリ要素112、および検出器480に結合される。上記のように、メモリ要素112は、所望の機能を実行するための複数のプログラムまたは実行可能ステートメント(すなわち、論理)の組で構成することができる。そのような機能は、それぞれの識別された使用事例のための1つまたは複数の以前記録された誤差信号に対するリアルタイムの誤差信号の類似性を定量化するために、1つまたは複数の相互相関器を介した比較のために、経時的に誤差信号を格納するステップを含むことができる。
【００５７】
上記で示唆したように、負荷マネージャ415は、誤差信号に応答してモバイルデバイス100において望まれるように1つまたは複数の動作パラメータを調整するように構成することができる。同じく上記で示唆したように、以前記録された誤差信号が識別された使用事例に関連付けられており、リアルタイムの誤差信号が以前記録された誤差信号に近似する場合、負荷マネージャ415は、以前最適化された1組のパラメータおよび/または性能スケーリングアルゴリズムと1組のパラメータとの組合せをモバイルデバイス100において適用することができる。
【００５８】
センサ405または1組のセンサ(図示せず)は、モバイルデバイス100が現在どのように構成されているかの多数の指示を提供することができる。そのような指示は、たとえば電圧、電流、温度など物理パラメータの測度を提供するように構成された物理デバイスによって提供することができ、あるいは、たとえばソフトウェアスタックの場合、1つもしくは複数のレジスタまたは他の記憶ロケーションの内容を表すことができる。その上、センサ405は、モバイルデバイス100における様々なリソースの動作状態に基づいて、1つまたは複数の追加のインジケータを提供することができる。センサ405は、デジタルシグナルプロセッサ410の外部にあるものとして示されているが、デジタルシグナルプロセッサ410は、プロセッサコア222における1つまたは複数の状態を測定するセンサ223、プロセッサコア224における1つまたは複数の状態を測定するセンサ225、およびプロセッサコア230の1つまたは複数の状態を測定するセンサ231など追加のセンサを含むことができることを理解されたい。図4に示されるように、センサ223、センサ225、およびセンサ231は、負荷マネージャ415にモバイルデバイス100における実際の作業負荷を示す実際の測度を提供する。センサ405、センサ223、センサ225、およびセンサ231のうちの1つまたは複数。
【００５９】
しかしながら、センサ405または追加のセンサは、モバイルデバイス100のまわりに配置され、構成され、または分散され、デジタルシグナルプロセッサ410は、N個のコアプロセッサを有するマルチコアプロセッサである。すなわち、デジタルシグナルプロセッサ410は、第1のコア222、第2のコア224、および第Nのコア230を含む。知られているように、第1のコア222、第2のコア224、および第Nのコア230の各々は、専用のアプリケーションまたはプログラムをサポートするために使用可能である。代わりに、2つ以上の使用可能なコアにわたる処理のために、1つまたは複数のアプリケーションまたはプログラムを分散することができる。
【００６０】
第1のコア222、第2のコア224〜第Nのコア230は、単一の集積回路ダイに集積することができ、または、多重回路パッケージにおける個別のダイに集積または結合され得る。設計者は、第1のコア222、第2のコア224〜第Nのコア230を、1つまたは複数の共有キャッシュを介して結合することができ、たとえばバス、リング、メッシュ、およびクロスバートポロジなどのネットワークトポロジを介してメッセージまたは命令パッシングを実施することができる。
【００６１】
負荷マネージャ415は、作業負荷予測子420、誤差生成器430、およびコントローラ440を含む。随意の実施形態では、負荷マネージャ415は、コアのうちの1つまたは複数にわたってDVFS方式を適用するために、1組の性能スケーリングアルゴリズムおよびパラメータの組を含むこともできる。作業負荷予測子420は、1つまたは複数の入力を受信し、1つまたは複数の出力で予測された作業負荷の指示を生成する。第1の出力は、予測された作業負荷の指示(すなわち、時間変動信号)をコントローラ440に結合する。第2の出力は、誤差生成器430の負の入力に予測された作業負荷を表す信号を結合する。誤差生成器430は、誤差生成器430の正の入力で、センサ223、センサ225、またはセンサ231からモバイルデバイス100における作業負荷の実際の測度を受信する。応答して、誤差生成器430は、誤差信号(すなわち、測定されたまたは実際の作業負荷と予測された作業負荷との差)を接続435上でコントローラ440、1つまたは複数の相互相関器(たとえば、相互相関器450、相互相関器452、および相互相関器458)、およびメモリ112内の時間シーケンスストア460に通信する。
【００６２】
代替実施形態では、2つ以上の作業負荷予測子を、負荷マネージャとともに実装することができる。たとえば、第1の作業負荷予測子が、使用事例XおよびYはよく予測するが、使用事例Zは予測しないことがあり得る。使用事例Zがモバイルデバイス100にとって重要な使用事例に関連付けられている、または場合によってはそれを定義するとき、第1の作業負荷予測子とは異なる、使用事例Zを正確に予測することができる第2の作業負荷予測子は負荷マネージャにとって役立つであろう。
【００６３】
コントローラ440は、コア222、コア224、およびコア230に適用されているパラメータのうちの1つまたは複数を選択的に調整するための1つまたは複数の制御入力を生成する論理を含む。コントローラ440は、選択されたコアプロセッサの周波数および電圧を調整するために適用されている選択されたDCVSアルゴリズム297とともに適用されるようにパラメータセットを選択的に調整するための1つまたは複数の制御入力を生成する論理をさらに含むことができる。後で説明するように、論理は、センサ405、センサ223、センサ225、センサ231からの入力、接続435上の誤差信号またはその関数、および/またはN個の相互相関器からの結果に応答し得る。センサ405、センサ223、センサ225、センサ231、および場合によっては追加のセンサは、アイドル状態のプロセッサなど、ソフトウェアが生成した測度を提供することができ、または電圧、電流、温度など直接的または間接的な測度の指示を提供することができる。
【００６４】
N個の相互相関器の各々は、既知の使用状態のモバイルデバイス100の動作によって生成された誤差値の時間シーケンスへのアクセスを含み得る、または時間シーケンスにアクセスするであろう。いくつかの実施形態では、識別された使用事例のためのモバイルデバイス100における所望のレベルの性能を維持しながら、節電時に最も効率的なものと以前識別された性能スケーリングアルゴリズムとパラメータセットとの最適化された組合せが既知の使用状態に関連付けられる。メモリ112は、モバイルデバイス100における性能スケーリングアルゴリズムとパラメータセットとの使用可能な組合せの各々について、誤差シーケンスを保持するための時間シーケンスストア460を含む。代わりに、N個の相互相関器の各々は、それぞれの誤差シーケンスを格納するための内部バッファを有することができる。代替実施形態(図示せず)では、ニューラルネットワークを、N個の相互相関器と取り替えることができる。ニューラルネットワークは、他の相互相関の技法を使用して現在の使用事例を識別する。
【００６５】
N個の相互相関器の各々は、作業負荷予測子によって生成された誤差履歴が既知の信号に対してどれくらい良好かというそれぞれの測度を生成する。相互相関器のそれぞれの出力は、リアルタイムの誤差信号と最も一致する相互相関器を選択または識別するように構成された検出器480に通信される。たとえば、検出器480は、出力が-1と1との間で変化するとき、1に最も近い正規化された出力を有する相互相関器を識別する回路素子および/または論理を含むことができる。相互相関は、2つの系列が相関している程度を推定する標準的な方法である。2つの時間変動信号の相互相関分析を実行するためのシステムおよび方法は、よく知られており、本発明の理解のために本明細書で詳述する必要はない。
【００６６】
N個の相互相関器からの結果の比較は、以前から知られているどの使用事例がモバイルデバイス100の現在の動作状態または使用のための最良適合の一致であるかについて識別する。したがって、モバイルデバイス100は、未知の構成または使用事例で現在動作しており、性能スケーリングアルゴリズムとパラメータセットとの有効な組合せを依然として選択し、適用して、依然として所望のレベルの性能を維持しながら、電力を節約することができる。検出器480は、制御信号を負荷マネージャ415内のコントローラ440に通信する。コントローラ440は、これらのリソースの動作を管理するために、様々なコアに制御入力を転送する。さらに、コントローラ440は、性能スケーリングアルゴリズム297および適切なパラメータセット298を選択し、適用し、必要に応じて、モバイルデバイス100における処理リソースの動作を調整するように構成される。
【００６７】
図5は、図4のモバイルデバイスにおいて動作可能な作業負荷予測子の有効性を決定するための方法500の一実施形態を示すフロー図である。一般に、使用事例のための作業負荷予測子の有効性または精度は、使用事例全体にわたる、または所望の期間の間の誤差信号の平方和として決定される。任意の特定の瞬間の誤差信号は負または正であり得るので、誤差項は、2乗される。
【００６８】
方法500は、ブロック502から開始し、ここでモバイルデバイス100における作業負荷のリアルタイムの測度が生成される。そのような測度は、毎秒処理されるいくつかの命令、ワット当たり処理される命令、または任意の数の代替の性能測度を含み得る。ブロック504で、モバイルデバイス100は、作業負荷予測子を使用して、モバイルデバイス100における作業負荷の推定量を生成する。その後、ブロック506で、モバイルデバイス100は、作業負荷のリアルタイムの測度を作業負荷の推定量と比較して、誤差信号を生成する。ブロック508に示されるように、誤差信号は、経時的に記録される。その後、ブロック510で、作業負荷予測子の有効性または精度の測度として誤差信号の関数が生成される。
【００６９】
いくつかの実施形態では、作業負荷予測子の有効性の測度として誤差の平方和が計算され、転送される。したがって、誤差の平方和の値が小さければ小さいほど、現在の使用事例のためのモバイルデバイス100における測定された作業負荷の予測において、作業負荷予測子はより正確になる。
【００７０】
図6は、図4のモバイルデバイスにおいて実行することができる方法600の代替実施形態を示すフロー図である。方法600は、ブロック602から開始し、ここでモバイルデバイス100における実際の作業負荷のリアルタイムの測度が生成される。そのような測度は、毎秒処理されるいくつかの命令、消費される電力のワット当たり処理される命令、または任意の数の代替の性能測度を含み得る。ブロック604で、モバイルデバイス100は、作業負荷予測子を使用して、モバイルデバイス100における作業負荷の推定量を生成する。その後、ブロック606で、モバイルデバイス100は、作業負荷のリアルタイムの測度を作業負荷の推定量と比較して、誤差信号を生成する。図4に示された実施形態では、負荷マネージャ415は、実際のまたは測定された作業負荷と予測された作業負荷との差を計算する。ブロック608に示されるように、誤差信号の2乗が計算される。その後、ブロック610で、誤差信号の2乗の大きさに応答してモバイルデバイス100を調整するコントローラに、誤差項の2乗が転送される。いくつかの実施形態(図示せず)では、誤差信号の2乗は、負荷マネージャの安定を維持するためにコントローラによって低域フィルタ処理される、または場合によっては処理され得る。
【００７１】
図7は、図4のモバイルデバイスにおいて実行することができる方法700の代替実施形態を示すフロー図である。方法700は、ブロック702から開始し、ここでモバイルデバイス100における実際の作業負荷のリアルタイムの測度が生成される。そのような測度は、毎秒処理されるいくつかの命令、消費される電力のワット当たり処理される命令、または任意の数の代替の性能測度を含み得る。ブロック704で、モバイルデバイス100は、作業負荷予測子を使用して、モバイルデバイス100における作業負荷の推定量を生成する。その後、ブロック706で、モバイルデバイス100は、作業負荷のリアルタイムの測度を作業負荷の推定量と比較して、誤差信号を生成する。図4に示された実施形態では、負荷マネージャ415は、実際のまたは測定された作業負荷と予測された作業負荷との差を計算する。ブロック708に示されるように、誤差信号は、経時的に記録される。その後、ブロック710で、モバイルデバイス100における作業負荷を予測するための作業負荷予測子の精度の測度として誤差信号の関数が生成される。ブロック712で、経時的に記録される誤差信号が使用事例に関連付けられる。使用事例のために最適化された性能スケーリングアルゴリズムと1組のパラメータとの組合せに使用事例が前もって関連付けられているとき、負荷マネージャ415は、モバイルデバイス100の動作を調整するために、性能スケーリングアルゴリズムおよびパラメータセットを制御可能に選択し、適用することができる。
【００７２】
図8は、図4のモバイルデバイスにおける作業負荷を管理するための方法を示すフロー図である。方法800は、ブロック802から開始し、ここでモバイルデバイス100における実際の作業負荷のリアルタイムの測度が生成される。そのような測度は、毎秒処理されるいくつかの命令、消費される電力のワット当たり処理される命令、または任意の数の代替の性能測度を含み得る。ブロック804で、モバイルデバイス100は、作業負荷予測子を使用して、モバイルデバイス100における作業負荷の推定量を生成する。その後、ブロック806で、モバイルデバイス100は、作業負荷のリアルタイムの測度を作業負荷の推定量と比較して、誤差信号を生成する。図4に示された実施形態では、負荷マネージャ415は、実際のまたは測定された作業負荷と予測された作業負荷との差を計算する。
【００７３】
ブロック808に示されるように、誤差信号は、経時的に記録される。その後、ブロック810で、モバイルデバイス100における作業負荷を予測するための作業負荷予測子の精度の測度として誤差信号の関数が生成される。ブロック812で、現在の使用事例が既知の使用事例に類似しているかどうかを決定するために、リアルタイムの誤差信号の相互相関の測度が以前記録された誤差信号と比較される。誤差信号が既知の使用事例に類似していることを相互相関の測度が示し、使用事例が性能スケーリングアルゴリズムとパラメータセットとの最適化された組合せに関連付けられているとき、ブロック814に示されるように、組合せは、適切に構成された負荷マネージャ415によって選択的に適用され得る。
【００７４】
図9は、図1のモバイルデバイス100において動作する作業負荷予測子の有効性を測定するためのシステムの代替実施形態を示す概略図である。コンピュータプログラム製品は、図5〜図8に示される方法に関連して上述した機能を含むことができる。論理モジュール、またはコンピュータプログラム製品における、もしくはモバイルデバイス100のメモリ112内の格納に適した実行可能命令の集合は、図9に示す様々な論理モジュールにわたって分散される。システム900は、一般に、図2に関連して上述したシステム200と同様の方法で構成される。図9に示されるように、システム900は、モバイルデバイス100における作業負荷予測子の有効性を定量化するために、オンラインまたはオンデバイスシステムを実装するための追加のソフトウェアまたは論理モジュールを含む。オンラインシステムは、作業負荷論理910によって提供される測定された作業負荷と作業負荷推定量論理920によって決定される作業負荷の推定量との間の差を評価する誤差生成論理930を含み、作業負荷有効性論理970および時間シーケンスストア460に転送する。
【００７５】
上記のように、制御論理950は、作業負荷有効性論理970によって決定される作業負荷予測子の有効性または精度の測度を受信し、それをモバイルデバイスにおける動作パラメータに対する所望の補正を決定するための1つまたは複数の機能に適用することができる。これは、モバイルデバイス100における1つまたは複数の動作パラメータを調整するためのコントローラに通信される作業負荷予測子出力の適用の一例である。上述のように、作業負荷有効性論理970は、所望の期間にわたる誤差信号の大きさの平方和を計算することができる。誤差信号の大きさの平方和がゼロに近ければ近いほど、モバイルデバイス100における作業負荷の予測において、作業負荷予測子はより有効または正確になる。
【００７６】
個別のプログラムまたはモジュールとして記載しているが、作業負荷論理910、作業負荷推定量論理920、誤差生成論理930、相互相関論理940、制御論理950、時間シーケンス管理論理960、および作業負荷有効性論理970の各々は、互いに、および/またはメモリ112内、もしくはデジタルシグナルプロセッサ110によってアクセス可能な他のデータストアに格納された以前もたらされた論理モジュールと結合することができる。
【００７７】
モバイルデバイス100は、エンドユーザが実際にデバイスをどのように使用しているかの知識ベースを開発するために、所望の時間長の間、誤差項を監視するように構成することができる。システム900は、誤差項の時間シーケンスとの一致のための相互関係技法を使用して、モバイルデバイス100に格納された性能スケーリングアルゴリズムとパラメータセットとの使用可能な組合せのうちどの組合せがデバイスの現在の使用では電力を節約するのに最も適切かについて決定する。誤差項は、作業負荷予測子によって供給されるシステム入力の結果として生成される予測された作業負荷およびデバイスにおける作業負荷の実際の測度の関数であるので、誤差項の大きさは、デバイスにおける将来の作業負荷を予測するための作業負荷予測子の有効性の定量的測度である。したがって、経時的な誤差信号の2乗の積分がゼロに近づくにつれて、デバイスにおける将来の使用/イベントの予測において、作業負荷予測子はより正確になる。
【００７８】
たとえば、作業負荷論理910は、モバイルデバイス100における作業負荷のリアルタイムの測度を生成するための1つまたは複数の実行可能命令を含む。測定された作業負荷は、通常、モバイルデバイス100における当該の選択されたプロセッサコアに関連付けられるであろう。しかしながら、作業負荷論理910は、単一のプロセッサコアにおける作業負荷を測定することに限定されない。一般に、作業負荷論理910は、モバイルデバイス100における現在の作業負荷を決定するために、デジタルシグナルプロセッサ110を介してモニタモジュール114と、または、モバイルデバイス100における1つもしくは複数のセンサと連動して機能する。上記で説明したように、センサは、電流、電圧、温度などを測定する両方の物理センサでもよく、または、たとえばバッファもしくはソフトウェアスタックの内容を監視することによって、ソフトウェアで使用可能にされ得る。
【００７９】
作業負荷推定量論理920は、モバイルデバイス100における作業負荷の推定量を生成するためのアルゴリズムを適用する。推定された作業負荷および測定された作業負荷は、測定された作業負荷および推定された作業負荷の関数として、誤差信号を生成する誤差生成論理930に転送される。図9に示されるように、測定された作業負荷または推定された作業負荷のうちの1つを、デジタル的に反転し(すなわち、-1を掛ける)、残りの信号に追加することができる。代わりに、測定された作業負荷および推定された作業負荷のうちの1つを他方の信号から減算して、誤差信号を生成することができる。さらに、同じく上記で説明したように、誤差信号を2乗して、選択された期間にわたって評価することができる。
【００８０】
時間シーケンス管理論理960は、経時的に誤差信号を記録するために、時間シーケンスストア460と連動して機能する。わかっているとき、制御入力の現在の組、またはモバイルデバイス100の現在のステータスを識別する他のデータが識別され、その指示が格納された時間シーケンスに関連付けられる。
【００８１】
制御論理950は、オンラインシステムを有効にする様々な論理モジュールを初期化する、ロードする、または場合によっては管理するための1つまたは複数の実行可能命令を含む。たとえば、制御論理950は、パラメータセット298内のパラメータのうちの1つまたは複数および/または選択されたコアプロセッサの周波数および電圧を調整するために適用されている性能スケーリングアルゴリズム297を選択的に調整するための1つまたは複数の制御入力を生成する。制御論理950は、モニタモジュール114からの入力、誤差生成論理930によって生成された誤差信号の2乗の大きさ、および/または相互相関論理940からの結果もしくは相関器結果ストア470から取り出された結果に応答し得る。
【００８２】
相互相関論理940は、リアルタイムの誤差追跡と以前格納された誤差追跡との間の最適な一致を定量的に決定するために2つの時間シーケンスの相互相関分析を実行するための1つまたは複数の実行可能命令を含む。相互相関論理940からの結果は、制御論理950および/または相互相関論理940による後の検索および分析のために、相関器結果ストア470に格納することができる。このようにして、制御論理950は、誤差信号を評価することによってモバイルデバイスにおける現在の動作状態を特徴づける任意の数のインジケータを格納することができる。リアルタイムの誤差項について比較的近い一致が識別され、比較的近い一致が使用可能な性能スケーリングアルゴリズムとパラメータセットとの最も有効な組合せに関連付けられているとき、制御論理950は、誤差信号によって識別された動作状態を識別する、または組合せと関連付けることができる。その後、誤差信号およびおそらく1つまたは複数の追加インジケータによって識別されるのと同じまたは類似の方法で、モバイルデバイスのオペレータがデバイスを使用するたびに、制御論理950は、モバイルデバイス100における電力を節約するために、使用可能な性能スケーリングアルゴリズムとパラメータセットとの最も有効な組合せを適用することができる。その上、所望の性能レベルを維持しながら、モバイルデバイスが使用可能な最も効率的なモードで操作していることのリアルタイムの検証を提供するために、誤差信号を生成し、監視することができる。
【００８３】
モバイルデバイス100によって使用される論理がソフトウェアにおいて実施されるとき、図9に示されるように、作業負荷論理910、作業負荷推定量論理920、誤差生成論理930、相互相関論理940、制御論理950、時間シーケンス管理論理960、および作業負荷有効性論理970のうちの1つまたは複数を、任意のコンピュータ関連のシステムまたは方法によって、またはそれと関連して使用するための任意のコンピュータ可読媒体に格納することができることに留意されたい。
【００８４】
代替実施形態では、作業負荷論理910、作業負荷推定量論理920、誤差生成論理930、相互相関論理940、制御論理950、時間シーケンス管理論理960、および作業負荷有効性論理970のうちの1つまたは複数がハードウェアにおいて実施される場合、様々な機能は、各々当技術分野でよく知られている以下の技術、データ信号に論理関数を実装するための論理ゲートを有する個別の論理回路、適切な組合せの論理ゲートを有する特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)などのうちの任意のもの、またはその組合せによって実施することができる。
【００８５】
本発明が説明通りに機能するために、本明細書で説明した処理または処理の流れの特定のステップが他のステップよりも前に行われるのは当然である。しかしながら、ステップの順番または順序によって本発明の機能が変わることがない場合、本発明は説明したステップの順序に限定されない。つまり、本発明の範囲および趣旨から逸脱することなく、あるステップを他のステップの前に実行しても、後に実行してもよく、あるいは各ステップを並行して(実質的に同時に)実行してもよいことを認識されたい。いくつかの場合には、特定のステップが、本発明から逸脱することなく、省略されてもよく、または実行されなくてもよい。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの語は、単に例示的な方法の説明を通じて読者を導くために使用されている。
【００８６】
プログラミングの当業者は、過度の困難または実験なく、開示されたプロセスを実施するために、コンピュータコードを書き込む、または適切なハードウェアを識別することが可能である。したがって、特定の1組の実行可能命令または詳細なハードウェアデバイスの開示が、本発明をどのように製作し使用すべきかについて適切に理解するうえで必要であるとはみなされない。特許請求されるモバイルデバイス100およびプロセスの発明性のある機能について、上の説明において、かつ、様々な処理の流れを示し得る各図に関連してより詳細に説明した。
【００８７】
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装することができる。ソフトウェアで実装される場合、機能は、1つまたは複数の命令もしくはコードとしてコンピュータ可読媒体上に格納されるか、またはコンピュータ可読媒体上で送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の使用可能な媒体とすることができる。限定ではなく、例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形態で所望のプログラムコードを搬送もしくは格納するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。
【００８８】
また、任意の接続をコンピュータ可読媒体と呼ぶのが妥当である。たとえば、ソフトウェアが同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(「DSL」)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義内に含まれる。
【００８９】
本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(「CD」)、レーザディスク、光ディスク、デジタル多用途ディスク(「DVD」)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【００９０】
選択された態様について詳細に示し、詳述してきたが、以下の請求項によって定義されるような本発明の範囲から逸脱することなく、本明細書において様々な置換および改変がなされることが理解されよう。
【符号の説明】
【００９１】
100  モバイルデバイス
102  オンチップシステム
110  デジタルシグナルプロセッサ
112  メモリ
114  モニタモジュール
126  アナログシグナルプロセッサ
128  ディスプレイコントローラ
130  タッチスクリーンコントローラ
132  タッチスクリーンディスプレイ
134  ビデオエンコーダ
136  ビデオ増幅器
138  ビデオポート
140  ユニバーサルシリアルバス(「USB」)コントローラ
142  USBポート
146  加入者識別モジュール(SIM)カード
148  デジタルカメラ
150  ステレオオーディオコーデック
152  オーディオ増幅器
154  第1のステレオスピーカー
156  第2のステレオスピーカー
158  マイクロフォン増幅器
160  マイクロフォン
162  周波数変調(「FM」)ラジオチューナー
164  FMアンテナ
166  ステレオヘッドフォン
168  高周波(「RF」)トランシーバ
170  RFスイッチ
172  RFアンテナ
174  キーパッド
176  モノヘッドセット
178  バイブレータデバイス
180  電源
211  バス
213  バス
222  第1のコア
223  センサ
224  第2のコア
230  第Nのコア
231  センサ
250  開始論理
260  管理論理
270  DVFSインターフェース論理
280  アプリケーションストア
290  ファイルシステム
292  DVFSストア
294  コアストア
296  プログラムストア
297  性能スケーリングアルゴリズム
298  1組のパラメータ
322  オンチップシステム
400  システム
405  センサ
410  デジタルシグナルプロセッサ
415  負荷マネージャ
420  作業負荷予測子
430  誤差生成器
435  接続
440  コントローラ
450  相互相関器
452  相互相関器
458  相互相関器
460  時間シーケンスストア
470  相関器結果ストア
480  検出器
900  システム
910  作業負荷論理
920  作業負荷推定量論理
930  誤差生成論理
940  相互関係論理
950  制御論理
960  時間シーケンス管理論理
970  作業負荷有効性論理
【図１】
2013543698.tif 000003
【図２】
2013543698.tif 000004
【図３Ａ】
2013543698.tif 000005
【図３Ｂ】
2013543698.tif 000006
【図４】
2013543698.tif 000007
【図５】
2013543698.tif 000008
【図６】
2013543698.tif 000009
【図７】
2013543698.tif 000010
【図８】
2013543698.tif 000011
【図９】
2013543698.tif 000012
【国際調査報告】
2013543698.tif 000013
2013543698.tif 000014
2013543698.tif 000015