モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法であって、前記モバイルデバイスでの実行に適した性能スケーリングアルゴリズムのセットを定義するステップと、性能スケーリングアルゴリズムの前記セットのそれぞれのメンバーの各々に適切なパラメータのセットを特定するステップと、パラメータの前記セットを、性能スケーリングアルゴリズムの前記セットの前記それぞれのメンバーと関連付けて、プログラムのセットを定義するステップと、前記モバイルデバイスで実行されるべきタスクのセットに応答して、第1の使用事例を特定するステップと、プログラムの前記セットを前記第1の使用事例に適用して、性能の測定基準と電力の測定基準との関数としてメリット値を生成するステップと、前記第1の使用事例に対する最大のメリット値を特定するステップとを含む、方法。前記最大のメリット値の関数として、前記使用事例に対して実行すべき第1のプログラムをプログラムの前記セットから選択するステップをさらに含む、請求項1に記載の方法。前記第1の使用事例とは異なる後続の使用事例を特定するステップと、プログラムの前記セットを適用し、それぞれの使用事例に対して前記最大のメリット値を特定することを繰り返すステップとをさらに含む、請求項1に記載の方法。各々の使用事例に対する前記最大のメリット値の原因である、プログラムの前記セットのメンバーを示すものを記憶して、性能スケーリングスケジュールを生成するステップと、前記モバイルデバイスに前記性能スケーリングスケジュールを記憶するステップとをさらに含む、請求項3に記載の方法。特定の使用事例が前記モバイルデバイスにおいてアクティブである時を検出するステップと、性能スケーリングアルゴリズムとパラメータのセットとの組合せを、前記モバイルデバイスに対して選択的に適用するステップとをさらに含む、請求項4に記載の方法。前記モバイルデバイスが、携帯電話、ページャ、携帯情報端末、リーダー、衛星電話、ナビゲーションデバイス、またはワイヤレス接続を有するコンピュータのうちの1つを含む、請求項1に記載の方法。モバイルデバイスでの実行を指定された性能スケーリングアルゴリズムのセットの最適な構成を特定するためのシステムであって、不揮発性メモリに通信可能に結合されたプロセッサを含み、前記不揮発性メモリが、性能スケーリングアルゴリズムとパラメータのセットとのそれぞれの組合せによって定義される、プログラムのセットを格納するプログラムストアと、前記モバイルデバイスで実行されるべきタスクのセットに応答する、使用事例のセットを格納する使用事例ストアと、使用事例の前記セットのメンバーの各々について、プログラムの前記セットの各メンバーを前記モバイルデバイスに対して適用した後で生成される、それぞれのメリット値を格納する結果ストアとを含む、システム。前記使用事例ストアに記憶される使用事例の前記セットが、前記モバイルデバイスの販売者によって定義される、請求項7に記載のシステム。前記メリット値が、性能の測定基準と電力の測定基準との関数である、請求項7に記載のシステム。前記使用事例ストアの中の使用事例の前記セットに対するプログラムの前記セットの選択メンバーを、関連付けるように構成される、論理部をさらに含む、請求項7に記載のシステム。モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの最適な構成を特定するためのシステムであって、性能スケーリングアルゴリズムとパラメータのセットとのそれぞれの組合せによって定義される、プログラムのセットを記憶するための手段と、前記モバイルデバイスの動作を制御するための手段であって、前記モバイルデバイスで実行されるべきタスクのセットを含む使用事例のセットを適用する、制御するための手段と、使用事例の前記セットにわたるプログラムの前記セットの動作に応答して、性能の測定基準および電力の測定基準を求めるための手段と、前記性能の測定基準と前記電力の測定基準との関数として、メリット値を生成するための手段と、選択プログラムを特定してそれぞれの使用事例と関連付けて、性能スケーリングスケジュールを生成するための手段と、前記モバイルデバイスに前記性能スケーリングスケジュールを伝えるための手段とを含む、システム。制御するための前記手段が、前記モバイルデバイスで実行されることになる予測されるタスクを時間の百分率として特定する、使用事例のセットを含む、請求項11に記載のシステム。メリット値を生成するための前記手段が、前記性能の測定基準と前記電力の測定基準の積を生成するステップを含む、請求項11に記載のシステム。コンピュータにより実行可能なコンピュータ可読プログラムコードからなるコンピュータプログラムであって、前記コンピュータ可読プログラムコードが、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法を実施するように実行される論理からなり、前記モバイルデバイスでの実行に適した性能スケーリングアルゴリズムのセットを定義するように構成される論理と、性能スケーリングアルゴリズムの前記セットのそれぞれのメンバーの各々に適切なパラメータのセットを特定するように構成される論理と、性能スケーリングアルゴリズムとパラメータの選択セットとの選択された組合せを使って動作するように、試験対象のモバイルデバイスを調整するように構成され、使用事例に従って前記試験対象のモバイルデバイスをさらに調整するように構成される、論理と、前記試験対象のモバイルデバイスの動作に応答して、性能の測定基準および電力の測定基準を求めるように構成される論理と、前記性能の測定基準と前記電力の測定基準との関数として、メリット値を生成するように構成される論理と、最大のメリット値の生成の原因である、性能スケーリングアルゴリズムとパラメータのそれぞれのセットとのそれぞれの組合せを特定して関連付けて、性能スケーリングスケジュール上の点を生成するように構成される論理と、前記モバイルデバイスに前記性能スケーリングスケジュールを伝えるように構成される論理とを含む、コンピュータプログラム。追加の試験事例が存在する時を求めるように構成される論理であって、前記試験事例が、性能スケーリングアルゴリズム、パラメータのそれぞれのセット、およびそれぞれの使用事例の組合せによって定義され、前記論理がさらに、前記試験対象のモバイルデバイスを繰り返し調整して、前記性能の測定基準と前記電力の測定基準とを求め、それぞれのメリット値を生成するように構成される、論理をさらに含む、請求項14に記載のコンピュータプログラム。前記性能スケーリングアルゴリズムが、複数のプロセッサコアの実行の制御に適した負荷平衡アルゴリズムを含む、請求項14に記載のコンピュータプログラム。使用事例の前記セットが、前記モバイルデバイスで実行されることになる予測されるタスクを時間の百分率として特定する、請求項14に記載のコンピュータプログラム。前記メリット値が、前記性能の測定基準と前記電力の測定基準の積を含む、請求項14に記載のコンピュータプログラム。モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法であって、前記モバイルデバイスでの実行に適した性能スケーリングアルゴリズムのセットを記憶するステップと、性能スケーリングアルゴリズムの前記セットのそれぞれのメンバーの各々に適切なパラメータのセットを、性能スケーリングアルゴリズムの前記セットの前記それぞれのメンバーと関連付けて、プログラムのセットを定義するステップと、前記モバイルデバイスで実行されるべきタスクに応答して、使用事例のセットを特定するステップと、各々の使用事例に対する最大のメリット値の原因である、プログラムの前記セットのメンバーを示すものを記憶して、性能スケーリングスケジュールを生成するステップと、前記モバイルデバイスに前記性能スケーリングスケジュールを記憶するステップと、特定の使用事例が前記モバイルデバイスにおいてアクティブである時を検出するステップと、性能スケーリングアルゴリズムとパラメータの前記セットとの組合せを、前記モバイルデバイスに対して選択的に適用するステップとを含む、方法。前記モバイルデバイスが、携帯電話、ページャ、携帯情報端末、リーダー、衛星電話、ナビゲーションデバイス、またはコンピュータのうちの1つを含む、請求項19に記載の方法。モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法は、モバイルデバイスでの実行に適した性能スケーリングアルゴリズムのセットを定義するステップと、性能スケーリングアルゴリズムのセットのそれぞれのメンバーの各々に対して適切な、パラメータのセットを特定するステップと、そのパラメータのセットを性能スケーリングアルゴリズムのセットのそれぞれのメンバーと関連付けて、プログラムのセットを定義するステップと、モバイルデバイスで実行されるべきタスクのセットに応答して、第1の使用事例を特定するステップと、プログラムのセットを第1の使用事例に適用して、性能の測定基準と電力の測定基準との関数としてメリット値を生成するステップと、第1の使用事例に対する最大のメリット値を特定するステップとを含む。性能スケーリングアルゴリズムのセットの構成を最適化するための方法の代替的な実施形態では、方法はさらに、最大のメリット値の関数として、使用事例に対して実行すべき第1のプログラムをプログラムのセットから選択するステップを含む。いくつかの例示的な実施形態では、性能スケーリングアルゴリズムのセットの構成を最適化するための方法は、携帯電話、ページャ、携帯情報端末、リーダー、衛星電話、ナビゲーションデバイス、または、ワイヤレス接続を有するコンピューティングデバイスのうちの1つで実施される。性能スケーリングアルゴリズムのセットの構成を最適化するための方法の代替的な実施形態では、方法はさらに、第1の使用事例とは異なる後続の使用事例を特定するステップと、プログラムのセットを適用してそれぞれの使用事例に対する最大のメリット値を特定するステップを繰り返すステップとを含む。性能スケーリングアルゴリズムのセットの構成を最適化するためのすぐ上に記載された方法の、さらに別の代替的な実施形態では、方法はさらに、各々の使用事例に対する最大のメリット値の原因であるプログラムのセットのメンバーを示すものを記憶して、性能スケーリングスケジュールを生成するステップと、モバイルデバイスに性能スケーリングスケジュールを記憶するステップとを含む。性能スケーリングアルゴリズムのセットの構成を最適化するためのすぐ上に記載された方法の、別の代替的な実施形態では、方法はさらに、ある特定の使用事例がモバイルデバイスにおいてアクティブである時を検出するステップと、性能スケーリングアルゴリズムとパラメータのセットとの組合せを、モバイルデバイスに対して選択的に適用するステップとを含む。別の態様によれば、モバイルデバイスでの実行を指定された性能スケーリングアルゴリズムのセットの最適な構成を特定するためのシステムが、開示される。このシステムは、不揮発性メモリへ通信可能に結合されたプロセッサを含む。不揮発性メモリは、性能スケーリングアルゴリズムとパラメータのセットとのそれぞれの組合せによって定義されるプログラムのセットを格納する、プログラムストアと、モバイルデバイスで実行されるべきタスクのセットに対応する使用事例のセットを格納する、使用事例ストアと、プログラムのセットの各メンバーを、使用事例のセットのメンバーの各々についてモバイルデバイスへ適用した後で生成される、それぞれのメリット値を格納する、結果ストアとを、記憶している。モバイルデバイスでの実行を指定された性能スケーリングアルゴリズムのセットの最適な構成を特定するためのシステムの例示的な実施形態では、使用事例ストアに記憶される使用事例のセットは、モバイルデバイスの販売者によって定義される。モバイルデバイスでの実行を指定された性能スケーリングアルゴリズムのセットの最適な構成を特定するためのシステムの代替的な実施形態では、メリット値は、性能の測定基準と電力の測定基準との関数である。モバイルデバイスでの実行を指定された性能スケーリングアルゴリズムのセットの最適な構成を特定するためのシステムのさらに別の代替的な実施形態では、システムはさらに、使用事例ストアの中の使用事例のセットのために、プログラムのセットの選択メンバーを関連付けるように構成される、論理を含む。さらに、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの最適な構成を特定するシステムは、性能スケーリングアルゴリズムとパラメータのセットとのそれぞれの組合せによって定義される、プログラムのセットを記憶するための機構と、モバイルデバイスの動作を制御するための機構と、モバイルデバイスで実行されるべきタスクのセットを含む使用事例のセットを適用するための機構と、使用事例のセットにわたるプログラムのセットの動作に応答して、性能の測定基準および電力の測定基準を求めるための機構と、性能の測定基準と電力の測定基準との関数としてメリット値を生成するための機構と、選択プログラムを特定してそれぞれの使用事例と関連付けて、性能スケーリングスケジュールを生成するための機構と、性能スケーリングスケジュールをモバイルデバイスに伝えるための機構とを含む。例示的な実施形態では、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの最適な構成を特定するシステムは、モバイルデバイスで実行されることになる予測されるタスクを時間の百分率として特定する、使用事例のセットを含む。別の実施形態では、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの最適な構成を特定するシステムは、性能の測定基準と電力の測定基準の積として生成される、メリット値を含む。さらに別の態様では、コンピュータ可読プログラムコードが具現化されたコンピュータ使用可能媒体を含む、コンピュータプログラム製品が開示される。コンピュータ可読プログラムコードは、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法を、実行して実装するように適合される。コンピュータプログラム製品は、モバイルデバイスでの実行に適した性能スケーリングアルゴリズムのセットを定義するように構成された論理と、性能スケーリングアルゴリズムのセットのそれぞれのメンバーの各々に適切な、パラメータのセットを特定するように構成された論理と、性能スケーリングアルゴリズムとパラメータの選択セットとの選択された組合せを使って動作するように、試験対象のモバイルデバイスを調整するように構成された論理と、使用事例に従って、試験対象のモバイルデバイスをさらに調整するように構成された論理と、試験対象のモバイルデバイスの動作に応じて、性能の測定基準と電力の測定基準とを求めるように構成された論理と、性能の測定基準と電力の測定基準の関数としてメリット値を生成するように構成された論理と、最大のメリット値の生成の原因である、性能スケーリングアルゴリズムとパラメータのそれぞれのセットとのそれぞれの組合せを特定して関連付けて、性能スケーリングスケジュール上の点を生成するように構成された論理と、性能スケーリングスケジュールをモバイルデバイスに伝えるように構成された論理とを含む。代替的な実施形態では、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法を、実行して実装するように適合されるコンピュータプログラム製品はさらに、追加の試験事例がいつ存在するかを判定するように構成される論理を含み、この試験事例は、それぞれの性能スケーリングアルゴリズムと、パラメータのそれぞれのセットと、それぞれの使用事例との組合せによって定義され、上記の論理はさらに、試験対象のモバイルデバイスを繰り返し調整し、性能の測定基準および電力の測定基準を求め、それぞれのメリット値を生成するように構成される。代替的な実施形態では、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法を、実行して実装するように適合されるコンピュータプログラム製品は、複数のプロセッサコアの実行を制御するのに適した、負荷平衡アルゴリズムを含む。別の代替的な実施形態では、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法を、実行して実装するように適合されるコンピュータプログラム製品は、モバイルデバイスで実行されることになる予測されるタスクを時間の百分率として特定する、使用事例のセットを含む。さらに別の代替的な実施形態では、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法を、実行して実装するように適合されるコンピュータプログラム製品は、性能の測定基準と電力の測定基準との積から計算される、メリット値を含む。さらに別の態様によれば、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法が、開示される。方法は、モバイルデバイスでの実行に適した性能スケーリングアルゴリズムのセットを記憶するステップと、性能スケーリングアルゴリズムのセットのそれぞれのメンバーの各々に適切なパラメータのセットを、性能スケーリングアルゴリズムのセットのそれぞれのメンバーと関連付けて、プログラムのセットを定義するステップと、モバイルデバイスで実行されるべきタスクに対応する使用事例のセットを特定するステップと、各々の使用事例に対する最大のメリット値の原因である、プログラムのセットのメンバーを示すものを記憶して、性能スケーリングスケジュールを生成するステップと、モバイルデバイスに性能スケーリングスケジュールを記憶するステップと、ある特定の使用事例がモバイルデバイスにおいてアクティブである時を検出するステップと、性能スケーリングアルゴリズムとパラメータのセットとの組合せを、モバイルデバイスに対して選択的に適用するステップとを含む。いくつかの例示的な実施形態では、性能スケーリングアルゴリズムのセットの構成を最適化するための方法は、携帯電話、ページャ、携帯情報端末、リーダー、衛星電話、ナビゲーションデバイス、または、コンピューティングデバイスのうちの1つで動作可能である。モバイルデバイスで動作するのに適した性能スケーリングアルゴリズムのセットの構成を最適化するためのシステムおよび方法は、以下の図面を参照してさらに理解され得る。図面中の構成要素は必ずしも縮尺通りではなく、代わりに、性能スケーリングアルゴリズムおよびそれぞれのランタイムパラメータを含むプログラムのセットから生成される、定性的な測定結果の原理を明確に示すことが、強調されている。さらに、図では、同様の参照番号は、異なる図全体にわたって対応する部分を示す。例示的なという言葉は、一例、実例または例として働くことを意味するように本明細書で使用される。例示的なものとして本明細書で説明する態様は、必ずしも他の態様よりも好ましい、または有利であると解釈されるわけではない。本明細書では、アプリケーションという用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイルおよびパッチなど、実行可能コンテンツを有するファイルを含むこともある。加えて、本明細書で言及するアプリケーションは、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。本明細書では、モバイルデバイスという用語は、バッテリーなど限られた容量の電源で動作する任意のデバイスを説明するために使用される。バッテリー駆動のモバイルデバイスは数十年にわたって使用されてきたが、第3世代ワイヤレス技術の出現とともにもたらされた、再充電可能なバッテリーの技術的な進歩によって、複数の機能を有する様々なモバイルデバイスが可能になった。したがって、モバイルデバイスは、中でも、携帯電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、上述したデバイスの組合せ、ワイヤレス接続を有するラップトップコンピュータであってよい。マルチコアプロセッサの導入、モバイルデバイスに様々な機能を実装するための専用のハードウェアリソース、および、バッテリー寿命の向上に対する継続的な要求によって、許容可能なエンドユーザ体験を提供しつつ電力消費を低減するように、モバイルデバイスを動的に調整するという課題が、さらに複雑になっている。それに対応して、複数の性能スケーリングアルゴリズムを管理して公開するための、改善されたモバイルデバイスおよび方法が開示される。利用可能な様々なモバイルデバイスの数、デバイスとの通信に使われる様々な通信プロトコルまたは規格、利用可能な様々なタイプのアプリケーション、デバイスの様々な使われ方などから、単一の手法または解決法のいずれも、すべての可能な動作の組合せに対して調整または最適化され得ないということが明らかである。それに対して、モバイルデバイスにおいて性能スケーリングアルゴリズムのセットを提供し実施することが提案される。性能スケーリングアルゴリズムのセットが利用可能であることで、選択された性能スケーリングアルゴリズムが正常に適用された場合に、電力節減の機会が提供されつつ性能に対する影響が最小化される。性能スケーリングアルゴリズムのセットを様々なモバイルデバイスの製造業者に公開することが、さらに提案される。製造業者は、様々な使用状況における所望の性能に基づいて、選択または最適化された性能スケーリング手法をモバイルデバイスに対して提供することに関心があると、考えられる。そうした製造業者により選択または最適化された手法は、開始時に適用され得る。いくつかの状況では、製造業者は、性能スケーリングの選択肢を、それぞれのモバイルデバイスを介して顧客に公開するのを望み得る。そうした状況では、製造業者は、所望の性能および開始時に適用され得るバッテリー寿命をエンドユーザが選択できるようにする、アプリケーションプログラミングインターフェースを提供または修正することができ、または、性能スケーリング手法のランタイム選択およびリアルタイムの交換を実現することができる。これらの代替的なランタイム手法は、モバイルデバイスに対してすべての性能スケーリング手法を完全に無効にすることを含み得る。モバイルデバイスに対する性能スケーリングアルゴリズムを管理して公開するための方法は、ソフトウェアまたはファームウェアとハードウェアとの組合せを介して、一般に実施される。ソフトウェアおよびファームウェアは、モバイルデバイスにおいて動作可能な1つまたは複数のプロセッサに結合された不揮発性メモリ要素に記憶することができる。不揮発性メモリ要素に記憶されるソフトウェアは、適切な命令実行システムに通信され、それによって実行される。モバイルデバイスでのハードウェア実装は、すべて当技術分野でよく知られている以下の技術、すなわち、個別の電子構成要素、データ信号に論理機能を実装するための論理ゲートを有する個別の論理回路、適切な論理ゲートを有する特定用途向け集積回路、プログラマブルゲートアレイ、フィールドプログラマブルゲートアレイなどのうちの任意のもの、またはその組合せを含み得る。図1を参照すると、この図は、ワイヤレス電話の形のモバイルデバイス100の例示的、非限定的な態様の図である。図示のように、モバイルデバイス100は、互いに結合される、デジタルシグナルプロセッサ110およびアナログシグナルプロセッサ126を含む、オンチップシステム102を含む。図1に示されるように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130が、デジタルシグナルプロセッサ110に結合される。オンチップシステム102の外部にあるタッチスクリーンディスプレイ132が、ディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。図1は、ビデオエンコーダ134、たとえば位相反転線エンコーダ、順次式カラーメモリエンコーダ、全国テレビジョン方式委員会エンコーダ、または任意の他のビデオエンコーダが、デジタルシグナルプロセッサ110に結合されることをさらに示している。さらに、ビデオ増幅器136が、ビデオエンコーダ134およびタッチスクリーンディスプレイ132に結合される。ビデオポート138がビデオ増幅器136に結合される。図1に示されるように、ユニバーサルシリアルバスコントローラ140がデジタルシグナルプロセッサ110に結合される。また、USBポート142がUSBコントローラ140に結合される。メモリ112および加入者識別モジュールカード146も、デジタルシグナルプロセッサ110に結合され得る。さらに、図1に示されるように、デジタルカメラ148がデジタルシグナルプロセッサ110に結合され得る。例示的な態様では、デジタルカメラ148は、電荷結合デバイスカメラまたは相補型金属酸化膜半導体カメラである。図1にさらに示されるように、ステレオオーディオコーデック150がアナログシグナルプロセッサ126に結合され得る。その上、オーディオ増幅器152がステレオオーディオコーデック150に結合され得る。例示的な態様では、第1のステレオスピーカー154および第2のステレオスピーカー156がオーディオ増幅器152に結合される。図1は、マイクロフォン増幅器158もステレオオーディオコーデック150に結合され得ることを示している。加えて、マイクロフォン160がマイクロフォン増幅器158に結合され得る。特定の態様では、周波数変調ラジオチューナー162がステレオオーディオコーデック150に結合され得る。また、FMアンテナ164がFMラジオチューナー162に結合される。さらに、ステレオヘッドフォン166がステレオオーディオコーデック150に結合され得る。図1は、高周波トランシーバ168がアナログシグナルプロセッサ126に結合され得ることをさらに示している。RFスイッチ170がRFトランシーバ168およびRFアンテナ172に結合され得る。図1に示されるように、キーパッド174がアナログシグナルプロセッサ126に結合され得る。また、マイクロフォンを備えたモノヘッドセット176がアナログシグナルプロセッサ126に結合され得る。さらに、バイブレータデバイス178がアナログシグナルプロセッサ126に結合され得る。図1は、たとえばバッテリーなどの電源180がオンチップシステム102に結合されることも示している。特定の態様では、電源は、充電式DCバッテリー、または交流電源に接続されたACDC変換器から導かれる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トランシーバ268は、デジタル回路素子を介して実装され、たとえばコアプロセッサ210など、少なくとも1つのプロセッサを含む。このデジタル実装では、RFトランシーバ268は、バス213を介してメモリ112に結合される。当技術分野で知られているように、バス211およびバス213の各々は、1つまたは複数の有線またはワイヤレス接続を介した複数の通信経路を含み得る。バス211およびバス213は、通信を可能にするために、たとえばコントローラ、バッファ、ドライバ、レピータ、および受信機など、追加の要素を有していてもよいが、これについては簡単のために省略する。さらに、バス211およびバス213は、上記の構成要素の間の適切な通信を可能にするために、アドレス、制御、およびまたはデータ接続を含み得る。図2に示されるように、モバイルデバイス100によって使用される論理がソフトウェアで実装されるとき、開始論理250、管理論理260、DVFSインターフェース論理270、アプリケーションストア280内のアプリケーション、およびファイルシステム290の部分のうちの1つまたは複数を、任意のコンピュータ関連のシステムまたは方法によって、またはそれと関連して使用するための、任意のコンピュータ可読媒体に記憶できることに留意されたい。この文書の文脈では、コンピュータ可読媒体は、コンピュータ関連のシステムまたは方法によって、またはそれと関連して使用するための、コンピュータプログラムおよびデータを含むまたは記憶することができる、電子式、磁気式、光学式、または他の物理デバイスまたは手段である。様々な論理素子およびデータストアは、たとえばコンピュータベースのシステム、プロセッサを含むシステム、または命令実行システム、装置、もしくはデバイスから命令をフェッチし、命令を実行することができる他のシステムなど、命令実行システム、装置、またはデバイスによって、またはそれと関連して使用するための、任意のコンピュータ可読媒体に組み込まれ得る。この文書の文脈では、コンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって、またはそれと関連して使用するための、プログラムを記憶、通信、伝搬、またはトランスポートすることができる任意の手段であってよい。コンピュータ可読媒体は、限定はされないがたとえば、電子式、磁気式、光学式、電磁式、赤外線式、または半導体の、システム、装置、デバイス、または伝搬媒体であってよい。コンピュータ可読媒体のより具体的な例には、1つまたは複数のワイヤを有する電気的接続部、ポータブルコンピュータディスケット、ランダムアクセスメモリ、読取り専用メモリ、消去可能プログラマブル読取り専用メモリ、光ファイバー、および携帯式コンパクトディスク読取り専用メモリが含まれよう。プログラムは、たとえば紙または他の媒体の光学走査を介して、電子的に記録され、次いで、コンパイルされ、インタプリタされ、または場合によっては、必要に応じて好適な方法で処理され、次いでコンピュータメモリに記憶され得るので、コンピュータ可読媒体は、プログラムが印刷される紙または別の適切な媒体でさえあり得ることに留意されたい。代替的な実施形態では、開始論理250、管理論理260、および場合によってはDVFSインターフェース論理270のうちの1つまたは複数がハードウェアで実装される場合、様々な論理は、各々当技術分野でよく知られている以下の技術、すなわち、データ信号に論理関数を実装するための論理ゲートを有する個別の論理回路、適切な組合せの論理ゲートを有する特定用途向け集積回路、プログラマブルゲートアレイ、フィールドプログラマブルゲートアレイなどのうちの任意のもの、またはその組合せによって実装することができる。メモリ112は、たとえばフラッシュメモリまたはソリッドステートメモリデバイスなどの不揮発性データ記憶デバイスである。単一のデバイスとして示されているが、メモリ112は、デジタルシグナルプロセッサおよびまたはRFトランシーバ268のコア210に結合された別個のデータストアを有する分散型メモリデバイスでもよい。開始論理250は、第0のコア222、第1のコア224~第Nのコア230など、使用可能なコアのうちの1つまたは複数の性能を管理または制御するために、選択プログラムを選択的に識別し、ロードし、実行するための1つまたは複数の実行可能命令を含む。選択プログラムは、組込みファイルシステム290のプログラムストア296で見つけることができ、性能スケーリングアルゴリズム297とパラメータのセット298との特定の組合せによって定義される。選択プログラムは、デジタルシグナルプロセッサのコアプロセッサのうちの1つまたは複数、およびRFトランシーバ268のコア210によって実行されると、それぞれのプロセッサコアの性能をスケーリングするために、モニタモジュール114によって提供される1つまたは複数の信号に従って動作し得る。この点について、モニタモジュール114は、イベント、プロセス、アプリケーション、リソース状態の条件、経過時間、温度などの1つまたは複数のインジケータを提供することができる。管理論理260は、それぞれのプロセッサコアのうちの1つまたは複数において動作可能な性能スケーリングプログラムを終了し、使用可能なコアのうちの1つまたは複数の性能を管理または制御するためのより適切な交換プログラムを選択的に特定し、ロードし、実行するための1つまたは複数の実行可能命令を含む。管理論理260は、ランタイムにおいて、またはモバイルデバイスが電力供給されデバイスの操作者によって使用されている間に、これらの機能を実行するように構成される。交換プログラムは、組込みファイルシステム290のプログラムストア296で見つけることができ、性能スケーリングアルゴリズム297とパラメータのセット298との特定の組合せによって定義される。交換プログラムは、デジタルシグナルプロセッサのコアプロセッサのうちの1つもしくは複数、またはRFトランシーバ268のコア210によって実行されると、それぞれのプロセッサコアの性能をスケーリングするために、モニタモジュール114によって提供される1つもしくは複数の信号、または様々なプロセッサコアのそれぞれの制御入力で提供される1つもしくは複数の信号に従って動作し得る。この点について、モニタモジュール114は、イベント、プロセス、アプリケーション、リソース状態の条件、経過時間、温度などの1つまたは複数のインジケータを提供することができる。DVFSインターフェース論理またはインターフェース論理270は、組込みファイルシステム290に記憶された情報を観察し、構成し、または場合によっては更新するために、外部入力を提示し、管理し、それと対話するための1つまたは複数の実行可能命令を含む。一実施形態では、インターフェース論理270は、USBポート142を介して受信された製造業者の入力とともに動作することができる。これらの入力は、プログラムストア296から削除されるべき、またはプログラムストア296に追加されるべき、1つまたは複数のプログラムを含み得る。あるいは、入力は、プログラムストア296のプログラムのうちの1つまたは複数に対する編集または変更を含み得る。その上、入力は、開始論理250と管理論理260の一方または両方に対する1つまたは複数の変更、または全交換を特定することができる。例として、入力は、受信信号電力が特定された閾値を下回ると、RFトランシーバ268のすべての性能スケーリングを中断するようモバイルデバイス100に命令する、管理論理260に対する変更を含み得る。さらなる例として、入力は、ビデオコーデック134がアクティブであるとき、所望のプログラムを適用するようモバイルデバイス100に命令する、管理論理260に対する変更を含み得る。インターフェース論理270によって、製造業者は、モバイルデバイス100における定義された動作状態の下で、エンドユーザの体験を制御可能に構成し、調整することができる。メモリ112がフラッシュメモリであるとき、開始論理250、管理論理260、インターフェース論理270、アプリケーションストア280におけるアプリケーションプログラム、または組込みファイルシステム290における情報のうちの1つまたは複数を、編集し、置き換え、または場合によっては修正することができる。いくつかの実施形態では、インターフェース論理270によって、モバイルデバイス100のエンドユーザまたは操作者は、開始論理250、管理論理260、アプリケーションストア280におけるアプリケーション、および組込みファイルシステム290における情報を検索し、位置を特定し、修正し、または置き換えることができる。操作者は、結果として生じるインターフェースを使用して、モバイルデバイス100の次の開始時に実施される、変更を加えることができる。あるいは、操作者は、結果として生じるインターフェースを使用して、ランタイム中に実施される変更を加えることができる。組込みファイルシステム290は、階層的に構成されたDVFSストア292を含む。これに関して、ファイルシステム290は、モバイルデバイス100が用いる様々なパラメータ298および性能スケーリングアルゴリズム297の、構成および管理のための情報を記憶するための、全体のファイルシステム容量の中で確保された部分を含み得る。図2に示されるように、DVFSストア292はコアストア294を含み、コアストア294はプログラムストア296を含み、プログラムストア296は1つまたは複数のDVFSプログラムを含む。各プログラムは、それぞれの性能スケーリングアルゴリズムと、特定のアルゴリズムと関連付けられるパラメータのセットとの組合せとして、定義される。DVFSストア292の階層的な性質のさらなる例として、ファイルのセットのある特定のメンバーは、\startup\core0\algorithm\parametersetというパスによって場所を特定され特定され得る。この例では、プログラムが、パラメータセットに記憶された情報の内容とともに、アルゴリズムによって特定される。たとえば、典型的として知られている従来のDVFSアルゴリズムは、パラメータのサンプルレート、向上のためのサンプル数、低下のためのサンプル数に従って、コア0222に対する性能スケーリングを管理するものと特定され得る。パラメータのサンプルレートは、\startup\core0\classic\SampleRateであり、値は100であり、単位はMHzである。向上のためのサンプル数は、\startup\core0\classic\SamplesToIncreaseであり、値は2であり、整数である。低下のためのサンプル数は、\startup\core0\classic\SamplesToDecreaseであり、値は1であり、整数である。つまり、それぞれのファイル名はパラメータを定義し、パラメータの値はファイルの内容によって特定される。アルゴリズムは、CPUのアイドル割合の周期的なサンプリングによって定義され、下側の閾値および上側の閾値に従って動作する。向上のためのサンプル数の閾値比較器が、2つの連続するサンプルに関して、性能を向上させるべきであることを示す場合、DVFSアルゴリズムは、所定のクロックレベルの調整に従って性能を向上させる。逆に、低下のためのサンプル数の閾値比較器が、1つの連続するサンプルに関して、性能を低下させるべきであることを示す場合、DVFSアルゴリズムは、所定のクロックレベルの調整に従って性能を低下させる。上で説明されたように、プロセッサまたはコアの動作電圧が、クロック周波数の変化とともに変化し得る。あるいは、またはさらに、DVFSストア292は、検索のパスが、その適用に関して最も特異的なものから開始して、適合に関して最も特異的ではないものに向かって進行するように、構成され得る。ある例示的な実施形態では、パラメータは、典型的な性能スケーリングアルゴリズムと関連付けられて、ディレクトリcore0、coreAll、およびdefaultにおいて定義される。たとえば、パス\core0\classic\SampleRateは、コア0で動作する典型的なアルゴリズムにのみ適合する。この最も特異的な適合は、すべての他の適用を無効にする。パス\coreAll\classic\SampleRateは、典型的なアルゴリズムを実行する任意のプロセッサコアに適用する。この適用は、その上の例示的なパスよりも特異的ではないが、典型的なアルゴリズムを実行する任意のプロセッサコアに適用する\default\classic\SampleRateよりも特異的である。このデフォルトの適用は、最も特異的ではなく、他の適切なパスがDVFSストア292に存在しない場合にのみ使われる。見出される第1のパラメータは、使用されたパラメータである。\defaultの位置には、有効なパラメータファイルが常にある。個々のコアのアーキテクチャ、1つまたは複数の共有キャッシュのアーキテクチャ、および、コア間で命令を渡すために使われる機構、さらには、モバイルデバイス100の所望の使用事例は、メモリ112に記憶された様々な性能スケーリングアルゴリズム297の性質を決定づけると予想される。図3は、図1のモバイルデバイス100で動作可能な性能スケーリングアルゴリズムを管理して公開するための方法300の一実施形態を示す流れ図である。方法300はブロック302で開始し、ブロック302において、性能スケーリングアルゴリズムのセットが、モバイルデバイス100中のメモリ112のような不揮発性メモリに与えられる。ブロック304において、パラメータのセットが、性能スケーリングアルゴリズムのセットの各メンバーに対して特定される。その後、ブロック306で示されるように、パラメータのセットは、性能スケーリングアルゴリズムのセットのそれぞれのメンバーと関連付けられて、プログラムのセットを定義する。上で示されるように、このことは、特定の性能スケーリングアルゴリズムが適用され得る様々なパラメータを編成するための、定義された手順を確立することによって、ファイルシステム290のようなファイルシステムにおいて実現され得る。次に、ブロック308に示されるように、特定されたプロセッサコアの性能をスケーリングするための、プログラムのセットの少なくとも1つのメンバーが特定される。ブロック310において、特定されたプロセッサコアと、ブロック308で特定されたプログラムのセットのメンバーとが、互いに関連付けられる。上で示されたように、このことは、特定されたコア識別子の下で、アルゴリズムおよびパラメータを階層的に記憶しまたは場合によっては構成することによって、ファイルシステム290のようなファイルシステムにおいて実現され得る。ブロック312において、プログラムのセットとコアとの関連を公開するインターフェースが、作成される。任意選択のブロック314において、開始時に利用可能なプロセッサに対する性能スケーリングを実施するための、第1のプログラムが実行のために選択される。このことは、それぞれのプロセッサコアの動作を管理するための、適切なDVFSプログラムを特定しようとする試みにおいて、DVFSストア292にまたがる検索手順によって実現され得る。その後、任意選択のブロック316に示されるように、第1のプログラムは、定義された事象、動作条件、特定のハードウェアリソースに対する要求、アプリケーションなどのうちの1つまたは複数が特定されると、ランタイム中に第2のプログラムと交換され得る。図4は、図1のモバイルデバイスで動作可能なコンピュータプログラム製品の一実施形態を示す流れ図である。いくつかの実施形態では、コンピュータプログラム製品は、開始論理250および管理論理260と関連する、上で説明された機能を包含し得る。あるいは、コンピュータプログラム製品はさらに、特定のモバイルデバイス100のDVFSストア292への保存を行うのに適した、インターフェース論理270および情報の態様を含み得る。図4に示されるように、コンピュータプログラム製品の例示的な機能が、流れ図または方法400の形で示されている。方法400はブロック402で開始し、ブロック402において、モバイルデバイス100で動作可能なプロセッサコアの性能をスケーリングするのに適した、プログラムのセットからのあるメンバーが、プログラムを定義するために選択される。ブロック402でさらに示されるように、プログラムのセットは、性能スケーリングアルゴリズムと、そのアルゴリズムを適用されるパラメータのそれぞれのセットとの、それぞれの組合せによって定義される。ブロック404において、選択プログラムが、モバイルデバイス100上のプロセッサコアにロードされ、または場合によっては伝えられる。ブロック404で示されるように、このことは、開始手順に従って実現される。開始手順は、ファームウェア、ソフトウェア、またはオペレーティングシステム自体でさえ可能にされ得ることを、当業者は理解するだろう。選択プログラムがそれぞれのプロセッサコアに伝えられると、選択プログラムを実行して、そのプロセッサコアまたはモバイルデバイス100上で動作可能な他のプロセッサコアの性能を、所望され得るようにスケーリングすることができる。その後、ブロック406で示されるように、モバイルデバイス100の使用を監視して、プログラムのセットからの交換プログラムが選択プログラムを交換すべきであるということを示す状況を特定する。ブロック408において、選択プログラムが、ランタイム中に交換プログラムによって交換される。上で示されたように、交換プログラムによる選択プログラムの交換は、交換プログラムがロードされ実行される前の、選択プログラムの管理された終了によって実現され得る。モバイルデバイス100の例示的な実施形態と、モバイルデバイス100中の組込みファイルシステムが、複数の性能スケーリングアルゴリズムの適用をどのように管理し公開するのに使われ得るかということとを、図1~図4に示される実施形態と関連付けて全般的に説明してきたが、ここで、モバイルデバイスに対する複数の性能スケーリングアルゴリズムと動作のパラメータとの構成を最適化するための、オフライン処理を例示するための追加の実施形態を含む、図5~図8が参照される。これに関して、図5は、図1のモバイルデバイスに対する性能の測定基準の開発を示すプロットである。横軸は、モバイルデバイス100によって毎秒処理される、ビデオ情報のフレームの数を表す。これに関して、横軸は、モバイルデバイス100の実際の性能、すなわち、1秒当たりにレンダリングされるビデオ情報のフレーム数を表す。縦軸は、規格化された性能を表す。したがって、グラフ500は、モバイルデバイス100の性能からの、性能の測定基準の転換または開発を示す。トレース510は、毎秒約26フレーム以下のフレームレートは許容不可能であると考えられ、0という規格化された性能の値が与えられることを示す。対照的に、毎秒約26フレームと毎秒ノミナルで30フレームとの間のフレームレートは許容可能であり、毎秒30フレームのノミナルのフレームレートにおいて、1という規格化された性能の値が与えられる。選択DVFSプログラムと関連する任意の数の要因によって、望ましくない性能レベルなどがもたらされる可能性がある。さらに、トレース510の形状は、一定の電力の節減を実現しつつ、許容可能なレベルの性能を依然として実現し、かつまたは維持するために、モバイルデバイス100上のプロセッサコアおよびまたは専用ビデオコーデックのうちの1つまたは複数へ適用できる、動作電圧および周波数の何らかの範囲が存在することを示す。図5のプロットは、ビデオの再生特徴に対する、1つの性能の測定基準を表すものである。モバイルデバイス100は多数の他のアプリケーションを実行できるので、パラメータが調整され性能スケーリングアルゴリズムが1つまたは複数のプロセッサコアに適用される時に、モバイルデバイス100上の他の特徴またはアプリケーションの相対的な性能を比較して分析するために、任意の数の追加の性能の測定基準が開発され得る。図6Aおよび図6Bは、使用事例の実施形態を示す概略図を含む。第1の例示的な使用事例は、図6Aの表600に示される。使用事例は、モバイルデバイス100において実行することができるタスクのセットを含む。タスクは、ウェブブラウジング、オーディオビデオ再生、オーディオ再生、電子メールアプリケーションの実行、および1つまたは複数の他のアプリケーションの実行を含む。使用事例はさらに、モバイルデバイス100の計画される使用率によって定義される。計画される使用率は、モバイルデバイス100の電源がオンでありバッテリーによって動作している、全体の時間の割合として表される。計画される使用率は、モバイルデバイスの製造業者または販売者によって設定され得る。第2の例示的な使用事例は、図6Bの表650に示される。この第2の使用事例は、第1の使用事例の電子メールアプリケーションの代わりにショートメッセージサービスアプリケーションを含む。モバイルデバイス100で実行されるべきタスクの一覧への変化に加えて、第2の使用事例は、デバイスのエンドユーザが関連するタスクを実行し得る、計画される割合の別個のセットを含む。したがって、モバイルデバイス100に対する性能スケーリングアルゴリズムとパラメータとの利用可能な組合せの1つが、計画される使用事例に対して電力の節減により効果的であるかどうかを特定するのは、些細なことではない。メリットの数値またはメリット値は、可能なパラメータの組合せのM個のセットに対するN個の利用可能な性能スケーリングアルゴリズムの適用を、モバイルデバイス100で実行されるべきタスクの各々に対して比較するための、定量的な測定基準となる。メリット値は、規格化された性能の測定基準と、対応する電力の測定基準との積である。上で示されるように、1つまたは複数の性能の測定基準が、各タスクに対して特定され得る。電力の測定基準は、節減された電力の値または使用された全体の電力を含み得る。モバイルデバイス100によって消費された全体の電力は、静的な要素と動的な要素の両方を有するので、使用された全体の電力は、様々な性能スケーリングアルゴリズムおよびパラメータの相対的な有効性の、より良好なインジケータであり得る。規格化された性能の測定基準と電力の測定基準との関数、すなわちこれらの値の積が、例示的な表610および例示的な表660に示される。表610および表660に示される値は、0から100までの尺度でスケーリングまたは規格化され、性能スケーリングアルゴリズムとパラメータセットとの所与の組合せに対して、0というスケーリングされた値またはメリット値は、最も望ましくない組合せを示し、100というメリット値は、最良の可能な性能および電力節減を表す。表610および表660は、同じ性能スケーリングアルゴリズムを含むが、適用されるパラメータが各々の使用事例に対して異なるので、それぞれの使用事例におけるタスクの各々の対応するメリット値は異なる。例示的な表610の中の情報および例示的な表660の中の情報は依然として、ある特定の性能スケーリングアルゴリズムが使用事例の全体にわたってより良好に動作するかどうかを、簡単には示さない。しかし、以下の式から、システムまたは複合メリット値を求めることができる。ここで、nは使用事例であり、wは重み付け係数であり、重み付け係数は、最も基本的な実施形態では、モバイルデバイス100が1つまたは複数のタスクを実行していると予測される時間の割合であってよい。代替的な実施形態では、重み付け係数は、モバイルデバイス100のための、性能スケーリングアルゴリズムとパラメータセットとの最良の組合せを決定する際の、任意の1つの使用事例の相対的な重要性を示す値であり得る。いくつかの場合には、特定のモバイルデバイス100が、複数のタスクを同時に実行できることに留意されたい。したがって、各々の使用事例に対して、モバイルデバイス100が、特定のアルゴリズムおよびパラメータのセットによって定義される組合せに従って、指定された1つまたは複数のタスクを実行している場合、メリット値は、性能の測定基準と電力の測定基準の積として計算され得る。以下で説明されるように、試験システムは、関心のある任意の数の性能スケーリングアルゴリズムおよびパラメータセットを試して、ある特定の組合せが他の組合せよりも望ましいかどうかを判定することができる。モバイルデバイス100がデバイスの顧客に届けられた後で、同様のデータ収集手順を適用することができる。これによって、モバイルデバイス100の計画された使用率ではなく実際の顧客による使用率に対して、性能スケーリングアルゴリズムの調整と選択を、図6Aおよび図6Bで示されるように行えるようになる。加えて、どの性能スケーリングアルゴリズムおよびパラメータ構成が、ある特定の使用事例に対して最も大きな電力の節減をもたらすかが決定されると、モバイルデバイス100は、その使用事例を検出して、その使用事例がアクティブである時にはその性能スケーリングアルゴリズムおよびパラメータセットを適用するように構成され得る。図7は、試験環境700の一実施形態を示す概略図である。試験環境700は、試験対象のモバイルデバイスと通信リンク740を介して通信可能に結合される、試験システム710を含む。通信リンク740は、有線リンクでもワイヤレスリンクでもよい。示される実施形態における試験システム710は、プロセッサ715、メモリ720、および、ローカルバス712によって互いに結合される入力出力コントローラ730を含む。ローカルバス712は、通信を可能にするために、コントローラ、バッファ、ドライバ、レピータ、および受信機のような、簡単にするために省略される追加の要素を有してもよい。さらに、ローカルバス712は、上述の構成要素の間での適切な通信を可能にするために、アドレス、制御、およびまたはデータ接続を含み得る。プロセッサ715は、メモリ720のような、プロセッサ715によってアクセス可能なメモリに特に記憶される、ソフトウェアを実行するためのハードウェアデバイスである。プロセッサ715は、任意の特注のまたは市販のプロセッサ、中央演算処理装置、試験システム710と関連付けられるいくつかのプロセッサのうちの補助的なプロセッサ、半導体ベースのマイクロプロセッサ、または、命令を実行するための任意のデバイス全般であってよい。入力出力コントローラ730は、試験システム710によって受信される、または試験システム710から伝えられる、すべての情報を管理する。IOコントローラ730は、限定はされないがたとえば、キーボード、マウス、スキャナ、マイクロフォン、およびまたはタッチ感知式ディスプレイなどのようなデバイスを含む、任意の数のIOデバイスの間での情報伝達を管理する。IOデバイスはまた、モデム、高周波トランシーバまたは他のトランシーバ、イーサネットインターフェース、汎用シリアルバスインターフェースなどのうちの1つまたは複数を含む。メモリ720は、揮発性のメモリ素子、スタティックランダムアクセスメモリ、シンクロナスダイナミックランダムアクセスメモリなどのような、ランダムアクセスメモリと、不揮発性のメモリ素子、ハードドライブ、テープ、コンパクトディスク読み取り専用メモリなどとのうちの任意の1つまたは組合せを含み得る。さらに、メモリ720は、電子的な、磁気的な、光学的な、およびまたは他のタイプの記憶媒体を包含し得る。メモリ720は、様々な構成要素が互いに離れて配置されるがプロセッサ715によってアクセスされ得る、分散アーキテクチャを有し得ることに留意されたい。メモリ720の中のソフトウェアは、1つまたは複数の別個のプログラムまたは論理を含んでよく、これらの各々は、様々な定義される機能を実装するための実行可能命令の順序付けられたリストを含む。図7に示される例示的な実施形態では、メモリ720の中のソフトウェアは、試験論理722、制御論理724、メリット論理726、および決定論理728を含む。代替的な実施形態では、試験論理722、制御論理724、メリット論理726、および決定論理728のうちの1つまたは複数は、試験システム710からは離れているがアクセス可能である、1つまたは複数の分散コンピューティングデバイスを介して実施され得る。試験システム710によって使われる論理は、図7に示されるようにソフトウェアで実装されるが、試験論理722、制御論理724、メリット論理726、および決定論理728のうちの1つまたは複数は、任意のコンピュータ関連のシステムまたは方法によって、またはそれと関連して用いるために、任意のコンピュータ可読媒体に記憶され得る。加えて、アルゴリズム723aのような情報を特定する性能スケーリングプログラム、プログラムストア721に記憶されるようなパラメータ723b、使用事例ストア725に記憶されるような使用事例、結果ストア727に記憶されるようなメリット値または他の結果も、コンピュータ可読媒体に記憶され得る。試験論理722は、モバイルデバイス200から定量的な結果を求めるために条件のセットを準備するための、様々なステップおよびまたはタスクを管理するための、実行可能命令を含む。試験論理722は、制御論理724とともに動作して、モバイルデバイス200を構成する。制御論理724は、性能スケーリングアルゴリズムとパラメータのセットとの定義された組合せに従って機能するようにモバイルデバイスを構成する、IOコントローラ730および通信リンク740を介して、命令を送信する。加えて、制御論理724は、これらの同じ要素を介して命令を送信し、使用事例に従って特定された1つまたは複数のタスクを実行するようにモバイルデバイス200を構成する。試験論理722は、任意の数の所望の使用事例、アルゴリズム、およびパラメータを試すように構成される。各々の試験事例に対して、試験システム710は、電力の測定基準および性能の測定基準をモバイルデバイス200から受け取る。メリット論理726は、電力および性能の測定基準を受け取り、各々の試験事例に対して、メリット値またはメリットの数値を計算する。一方、試験論理722は、メリット論理726から結果ストア727へメリット値を送る。結果ストア727は、図6Aおよび図6Bに示される例示的な表のような、表を含み得る。すべての所望の試験事例が完了すると、試験論理722は、各々の使用事例に対する性能スケーリングアルゴリズムとパラメータセットとの最良の組合せを特定するように、決定論理728に指示する。決定論理728は、図6Aに示される例示的な表のような表へ、1つまたは複数のインジケータを追加して、任意の数の形式でモバイルデバイス200へ伝えられ得る性能スケーリングスケジュールを生成することができる。図8は、図1の例示的なモバイルデバイス100のようなモバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法800の、一実施形態を示す流れ図である。方法800はブロック802で開始し、ブロック802において、モバイルデバイス100での実行に適した性能スケーリングアルゴリズムのセットが定義される。ブロック804において、性能スケーリングアルゴリズムのセットの各メンバーに対するパラメータのセットが、特定される。その後、ブロック806で示されるように、パラメータのセットは、アルゴリズムのセットのそれぞれのメンバーと関連付けられて、プログラムのセットを定義する。ブロック808に示されるように、モバイルデバイス100で実行されるように指定されるタスクのセットに応答して、使用事例が特定される。ブロック810において、モバイルデバイスがその使用事例に従って動作している時に、プログラムのセットが繰り返しモバイルデバイスに適用されて、メリット値を生成する。ブロック810でさらに示されるように、メリット値は、現在の使用事例およびプログラムの下でモバイルデバイス100の動作から求められた、性能の測定基準と電力の測定基準との関数である。ブロック812において、複合メリット値が、第1の使用事例において特定されたタスクに対して計算される。ブロック814において、第1のプログラムまたは選択プログラムが、特定された使用事例に対して、モバイルデバイス中の利用可能なプロセッサコアでの実行に最も望ましいものとして特定される。その後、ブロック816で示されるように、試験システム710は、プログラムのセットの適用を繰り返し、追加の使用事例に対する最大のメリット値を特定して、性能スケーリングスケジュールを生成する。性能スケーリングスケジュールは、決定されると、表として伝えられ、または、ファイルシステム290のようなファイルシステムに組み込まれて、モバイルデバイス100上で動作可能なそれぞれのプロセッサコアに対して、特定された使用事例に対して所望され得るように、選択プログラムを適用することができる。本発明が説明通りに機能するように、本明細書で説明した処理または処理の流れの特定のステップが他のステップよりも前に行われるのは当然である。しかしながら、ステップの順番または順序によって本発明の機能が変わることがない場合、本発明は説明したステップの順番に限定されない。つまり、本発明の範囲および趣旨から逸脱することなく、あるステップを他のステップの前に実行しても、後に実行してもよく、または他のステップと並行して実行してもよいことを認識されたい。いくつかの場合には、特定のステップが、本発明から逸脱することなく、省略されてもよく、または実行されなくてもよい。さらに、その後、次いで、次になどの語は、ステップの順番を限定することを意図していない。これらの語は、単に例示的な方法の説明を通じて読者を導くために使用されている。プログラミングの当業者は、過度の困難または実験なく、開示されたプロセスを実施するために、コンピュータコードを書き込み、または適切なハードウェアを特定することが可能である。したがって、実行可能命令または詳細なハードウェアデバイスの特定のセットの開示が、本発明をどのように製作し使用すべきかについて適切に理解するうえで必要であるとはみなされない。特許請求されるモバイルデバイス100およびプロセスの発明性のある機能が、上の説明において、かつ、様々な処理の流れを示し得る各図に関連して、より詳細に説明された。1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装することができる。ソフトウェアで実装される場合、機能は、コンピュータ可読媒体上の1つまたは複数の命令もしくはコードとして記憶されるか、または送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の使用可能な媒体であってよい。限定ではなく、例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CDROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形態で所望のプログラムコードを搬送もしくは記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。また、任意の接続をコンピュータ可読媒体と呼ぶのが妥当である。たとえば、ソフトウェアが同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線、または、赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または、赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義内に含まれる。本明細書で使用する場合、ディスクおよびディスクは、コンパクトディスク、レーザディスク、光ディスク、デジタル多用途ディスク、フレキシブルディスク、およびブルーレイディスクを含み、ディスクは、通常、磁気的にデータを再生し、ディスクは、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。選択された態様について詳細に示し、詳述してきたが、以下の請求項によって定義されるような本発明の範囲から逸脱することなく、本明細書において様々な置換および改変がなされることが理解されよう。