(57)【特許請求の範囲】
【請求項１】
少なくとも1つのプロセッサコアを伴う少なくとも1つのプロセッサを有するモバイルデバイスで動作可能な、性能スケーリングアルゴリズムのセットの構成を最適化するための方法であって、
前記モバイルデバイスでの実行に適した、プロセッサの動作電圧とクロック周波数とのスケーリングアルゴリズムのセットを定義するステップと、
プロセッサの動作電圧とクロック周波数とのスケーリングアルゴリズムの前記セットのそれぞれのメンバーの各々に適切なパラメータのセットを特定するステップと、
パラメータの前記セットを、プロセッサの動作電圧とクロック周波数とのスケーリングアルゴリズムの前記セットの前記それぞれのメンバーと関連付けて、プログラムのセットを定義するステップと、
前記モバイルデバイスで実行されるべきタスクのセットを含む第1の使用事例を特定し、前記第1の使用事例が、前記モバイルデバイスの全体の使用時間の百分率として定義される、ステップと、
プログラムの前記セットを前記第1の使用事例に適用して、前記第1の使用事例における前記プロセッサの性能の測定基準と、前記第1の使用事例における前記モバイルデバイスによる電力使用率を特徴付ける電力の測定基準との関数として、メリット値を生成するステップと、
前記第1の使用事例に対する最大のメリット値を特定し、前記最大のメリット値が、前記第1の使用事例における他の処理速度と電力節減との組合せよりも良好である、前記第1の使用事例における前記プロセッサの処理速度と前記モバイルデバイスによる電力使用率との組合せを特徴付ける、ステップと
を含む、方法。
【請求項２】
前記最大のメリット値の関数として、前記使用事例に対して実行すべき第1のプログラムをプログラムの前記セットから選択するステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
前記第1の使用事例とは異なる後続の使用事例を特定するステップと、
プログラムの前記セットを適用し、それぞれの使用事例に対して前記最大のメリット値を特定することを繰り返すステップと
をさらに含む、請求項1に記載の方法。
【請求項４】
各々の使用事例に対する前記最大のメリット値の原因である、プログラムの前記セットのメンバーを示すものを記憶して、性能スケーリングスケジュールを生成するステップと、
前記モバイルデバイスに前記性能スケーリングスケジュールを記憶するステップと
をさらに含む、請求項3に記載の方法。
【請求項５】
特定の使用事例が前記モバイルデバイスにおいてアクティブである時を検出するステップと、
性能スケーリングアルゴリズムとパラメータのセットとの組合せを、前記モバイルデバイスに対して選択的に適用するステップと
をさらに含む、請求項4に記載の方法。
【請求項６】
前記モバイルデバイスが、
携帯電話、ページャ、携帯情報端末、リーダー、衛星電話、ナビゲーションデバイス、またはワイヤレス接続を有するコンピュータのうちの1つ
を含む、請求項1に記載の方法。
【請求項７】
コンピュータにより実行可能なコンピュータ可読プログラムコードからなるコンピュータプログラムであって、前記コンピュータ可読プログラムコードが、少なくとも1つのプロセッサコアを伴う少なくとも1つのプロセッサを有するモバイルデバイスで動作可能な、性能スケーリングアルゴリズムのセットの構成を最適化するための方法を実施するように実行されるように適合された論理からなり、
前記モバイルデバイスでの実行に適した、プロセッサの動作電圧とクロック周波数とのスケーリングアルゴリズムのセットを定義するように構成される論理と、
プロセッサの動作電圧とクロック周波数とのスケーリングアルゴリズムの前記セットのそれぞれのメンバーの各々に適切なパラメータのセットを特定するように構成される論理と、
プロセッサの動作電圧とクロック周波数とのスケーリングアルゴリズムとパラメータの選択セットとの選択された組合せを使って動作するように、試験対象のモバイルデバイスを調整するように構成され、前記モバイルデバイスで実行されるべきタスクのセットを含む使用事例に従って前記試験対象のモバイルデバイスをさらに調整するように構成され、各々の使用事例が、前記モバイルデバイスの全体の使用時間の百分率として定義される、論理と、
前記使用事例における、前記プロセッサの性能の測定基準と、前記試験対象のモバイルデバイスによる電力使用率を特徴付ける電力の測定基準とを求めるように構成される論理と、
前記性能の測定基準と前記電力の測定基準との関数として、メリット値を生成するように構成される論理と、
最大のメリット値の生成の原因である、プロセッサの動作電圧とクロック周波数とのスケーリングアルゴリズムとパラメータのそれぞれのセットとのそれぞれの組合せを特定して関連付けて、性能スケーリングスケジュール上の点を生成するように構成され、前記最大のメリット値が、前記使用事例における他の処理速度と電力節減との組合せよりも良好である、前記使用事例における前記プロセッサの処理速度と前記モバイルデバイスによる電力使用率との組合せを特徴付ける、論理と、
前記モバイルデバイスに前記性能スケーリングスケジュールを伝えるように構成される論理と
を含む、コンピュータプログラム。
【請求項８】
追加の試験事例が存在する時を求めるように構成される論理であって、前記試験事例が、それぞれの性能スケーリングアルゴリズム、パラメータのそれぞれのセット、およびそれぞれの使用事例の組合せによって定義され、前記論理がさらに、前記試験対象のモバイルデバイスを繰り返し調整して、前記性能の測定基準と前記電力の測定基準とを求め、それぞれのメリット値を生成するように構成される、論理
をさらに含む、請求項7に記載のコンピュータプログラム。
【請求項９】
前記性能スケーリングアルゴリズムが、複数のプロセッサコアの実行の制御に適した負荷平衡アルゴリズムを含む、請求項7に記載のコンピュータプログラム。
【請求項１０】
使用事例の前記セットが、前記モバイルデバイスで実行されることになる予測されるタスクを時間の百分率として特定する、請求項7に記載のコンピュータプログラム。
【請求項１１】
前記メリット値が、前記性能の測定基準と前記電力の測定基準の積を含む、請求項7に記載のコンピュータプログラム。
【請求項１２】
少なくとも1つのプロセッサコアを伴う少なくとも1つのプロセッサを有するモバイルデバイスで動作可能な、性能スケーリングアルゴリズムのセットの構成を最適化するための方法であって、
前記モバイルデバイスでの実行に適した、プロセッサの動作電圧とクロック周波数とのスケーリングアルゴリズムのセットを記憶するステップと、
プロセッサの動作電圧とクロック周波数とのスケーリングアルゴリズムの前記セットのそれぞれのメンバーの各々に適切なパラメータのセットを、プロセッサの動作電圧とクロック周波数とのスケーリングアルゴリズムの前記セットの前記それぞれのメンバーと関連付けて、プログラムのセットを定義するステップと、
前記モバイルデバイスで実行されるべきタスクを含む使用事例のセットを特定し、各々の使用事例が、前記モバイルデバイスの全体の使用時間の百分率として定義される、ステップと、
各々の使用事例に対する最大のメリット値の原因である、プログラムの前記セットのメンバーを示すものを記憶して、性能スケーリングスケジュールを生成し、前記最大のメリット値が、前記使用事例における他の処理速度と電力節減との組合せよりも良好である、前記使用事例における前記プロセッサの処理速度と前記モバイルデバイスによる電力使用率との組合せを特徴付ける、ステップと、
前記モバイルデバイスに前記性能スケーリングスケジュールを記憶するステップと、
特定の使用事例が前記モバイルデバイスにおいてアクティブである時を検出するステップと、
プロセッサの動作電圧とクロック周波数とのスケーリングアルゴリズムとパラメータの前記セットとの組合せを、前記モバイルデバイスに対して選択的に適用するステップと
を含む、方法。
【請求項１３】
前記モバイルデバイスが、
携帯電話、ページャ、携帯情報端末、リーダー、衛星電話、ナビゲーションデバイス、またはコンピュータのうちの1つ
を含む、請求項12に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、性能スケーリングアルゴリズムのセットの構成を最適化するためのシステムおよび方法に関する。
【背景技術】
【０００２】
ワイヤレス通信プロトコルの技術的進歩、エネルギー蓄積密度、プロセッサ性能および効率、ならびにセルラー送信機の密度の増加は、1990年代におけるワイヤレスデジタルネットワークの導入を可能にした。第2世代のモバイルデバイスの使用がさらに普及するにつれて、インターネットへのアクセスを含むデータサービスを求める要求が増大しつつあったことが明白になった。第3世代のワイヤレス通信システムによるデータ送信に、回線交換ではなくパケット交換を導入することで、ストリーミングメディアをモバイルデバイスに配信するために必要なデータ送信レートの向上が可能になった。
【０００３】
今日のデータネットワーク対応のモバイルデバイスは、極めて多くのアプリケーションをエンドユーザに提供するために、高性能のプロセッサを含む。しかしながら、性能に対する要求の結果、それに対応して消費電力が増加する。所与の実装に必要なクロック周波数とトランジスタ数の両方が増加するので、現代のプロセッサの電力損失は急速に増加しつつある。残念ながら、バッテリー技術は、これらのデータネットワーク対応のワイヤレスデバイスのエネルギー要求と足並みを揃えておらず、このことは、アプリケーション性能とバッテリー寿命との間に設計上のトレードオフをもたらす。最大限の性能のためにバッテリー寿命が犠牲になり得ると判断されたときでさえ、熱管理は、手のひらサイズであることが多いハウジング内にある、バッテリーと電子回路の両方に対して問題になり得る。
【０００４】
高性能と低消費電力を実現するプロセッサに対する需要は、プロセッサ設計における動的な電圧および周波数スケーリング(DVFS)の使用につながった。DVFSは、消費電力と性能との間のトレードオフを可能にする。DVFSを利用するように設計されているプロセッサによって、プロセッサのクロック周波数を、電圧の対応する調整によって調整することができる。あらゆる電力節減は実行時間の増加によって相殺され、結果的に総エネルギー消費量を全体としては減少させないので、クロック周波数のみの低減は役立たない。しかしながら、動作電圧を低減すると、それに比例して消費電力が節減される。
【０００５】
DVFS対応のプロセッサの主要な問題は、性能と電力節減との間のバランスをどのように制御するかということである。従来のDVFS制御アルゴリズムは、予測される作業負荷を最終期限まで引き伸ばすのを許容する変更された性能レベルを特定するために、アイドル時間という評価基準を使用する。すなわち、より低い電圧およびより遅いクロック周波数でプロセッサを動作させることによって、アイドル時間が低減する。この手法は連続的な既知の作業負荷には適切であることがあるが、多くのモバイルデバイスアプリケーションは、インタラクティブであり、および/または、不規則なもしくは予測できない要求をプロセッサに課す。したがって、1つのアルゴリズムがすべてのモバイルデバイスアプリケーション、アプリケーションの組合せ、および用途のために最適とは限らないことは明らかである。
【発明の概要】
【課題を解決するための手段】
【０００６】
モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法は、モバイルデバイスでの実行に適した性能スケーリングアルゴリズムのセットを定義するステップと、性能スケーリングアルゴリズムのセットのそれぞれのメンバーの各々に対して適切な、パラメータのセットを特定するステップと、そのパラメータのセットを性能スケーリングアルゴリズムのセットのそれぞれのメンバーと関連付けて、プログラムのセットを定義するステップと、モバイルデバイスで実行されるべきタスクのセットに応答して、第1の使用事例を特定するステップと、プログラムのセットを第1の使用事例に適用して、性能の測定基準と電力の測定基準との関数としてメリット値を生成するステップと、第1の使用事例に対する最大のメリット値を特定するステップとを含む。
【０００７】
性能スケーリングアルゴリズムのセットの構成を最適化するための方法の代替的な実施形態では、方法はさらに、最大のメリット値の関数として、使用事例に対して実行すべき第1のプログラムをプログラムのセットから選択するステップを含む。
【０００８】
いくつかの例示的な実施形態では、性能スケーリングアルゴリズムのセットの構成を最適化するための方法は、携帯電話、ページャ、携帯情報端末、リーダー、衛星電話、ナビゲーションデバイス、または、ワイヤレス接続を有するコンピューティングデバイスのうちの1つで実施される。
【０００９】
性能スケーリングアルゴリズムのセットの構成を最適化するための方法の代替的な実施形態では、方法はさらに、第1の使用事例とは異なる後続の使用事例を特定するステップと、プログラムのセットを適用してそれぞれの使用事例に対する最大のメリット値を特定するステップを繰り返すステップとを含む。
【００１０】
性能スケーリングアルゴリズムのセットの構成を最適化するためのすぐ上に記載された方法の、さらに別の代替的な実施形態では、方法はさらに、各々の使用事例に対する最大のメリット値の原因であるプログラムのセットのメンバーを示すものを記憶して、性能スケーリングスケジュールを生成するステップと、モバイルデバイスに性能スケーリングスケジュールを記憶するステップとを含む。
【００１１】
性能スケーリングアルゴリズムのセットの構成を最適化するためのすぐ上に記載された方法の、別の代替的な実施形態では、方法はさらに、ある特定の使用事例がモバイルデバイスにおいてアクティブである時を検出するステップと、性能スケーリングアルゴリズムとパラメータのセットとの組合せを、モバイルデバイスに対して選択的に適用するステップとを含む。
【００１２】
別の態様によれば、モバイルデバイスでの実行を指定された性能スケーリングアルゴリズムのセットの最適な構成を特定するためのシステムが、開示される。このシステムは、不揮発性メモリへ通信可能に結合されたプロセッサを含む。不揮発性メモリは、性能スケーリングアルゴリズムとパラメータのセットとのそれぞれの組合せによって定義されるプログラムのセットを格納する、プログラムストアと、モバイルデバイスで実行されるべきタスクのセットに対応する使用事例のセットを格納する、使用事例ストアと、プログラムのセットの各メンバーを、使用事例のセットのメンバーの各々についてモバイルデバイスへ適用した後で生成される、それぞれのメリット値を格納する、結果ストアとを、記憶している。
【００１３】
モバイルデバイスでの実行を指定された性能スケーリングアルゴリズムのセットの最適な構成を特定するためのシステムの例示的な実施形態では、使用事例ストアに記憶される使用事例のセットは、モバイルデバイスの販売者によって定義される。
【００１４】
モバイルデバイスでの実行を指定された性能スケーリングアルゴリズムのセットの最適な構成を特定するためのシステムの代替的な実施形態では、メリット値は、性能の測定基準と電力の測定基準との関数である。
【００１５】
モバイルデバイスでの実行を指定された性能スケーリングアルゴリズムのセットの最適な構成を特定するためのシステムのさらに別の代替的な実施形態では、システムはさらに、使用事例ストアの中の使用事例のセットのために、プログラムのセットの選択メンバーを関連付けるように構成される、論理を含む。
【００１６】
さらに、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの最適な構成を特定するシステムは、性能スケーリングアルゴリズムとパラメータのセットとのそれぞれの組合せによって定義される、プログラムのセットを記憶するための機構と、モバイルデバイスの動作を制御するための機構と、モバイルデバイスで実行されるべきタスクのセットを含む使用事例のセットを適用するための機構と、使用事例のセットにわたるプログラムのセットの動作に応答して、性能の測定基準および電力の測定基準を求めるための機構と、性能の測定基準と電力の測定基準との関数としてメリット値を生成するための機構と、選択プログラムを特定してそれぞれの使用事例と関連付けて、性能スケーリングスケジュールを生成するための機構と、性能スケーリングスケジュールをモバイルデバイスに伝えるための機構とを含む。
【００１７】
例示的な実施形態では、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの最適な構成を特定するシステムは、モバイルデバイスで実行されることになる予測されるタスクを時間の百分率として特定する、使用事例のセットを含む。
【００１８】
別の実施形態では、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの最適な構成を特定するシステムは、性能の測定基準と電力の測定基準の積として生成される、メリット値を含む。
【００１９】
さらに別の態様では、コンピュータ可読プログラムコードが具現化されたコンピュータ使用可能媒体を含む、コンピュータプログラム製品が開示される。コンピュータ可読プログラムコードは、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法を、実行して実装するように適合される。コンピュータプログラム製品は、モバイルデバイスでの実行に適した性能スケーリングアルゴリズムのセットを定義するように構成された論理と、性能スケーリングアルゴリズムのセットのそれぞれのメンバーの各々に適切な、パラメータのセットを特定するように構成された論理と、性能スケーリングアルゴリズムとパラメータの選択セットとの選択された組合せを使って動作するように、試験対象のモバイルデバイスを調整するように構成された論理と、使用事例に従って、試験対象のモバイルデバイスをさらに調整するように構成された論理と、試験対象のモバイルデバイスの動作に応じて、性能の測定基準と電力の測定基準とを求めるように構成された論理と、性能の測定基準と電力の測定基準の関数としてメリット値を生成するように構成された論理と、最大のメリット値の生成の原因である、性能スケーリングアルゴリズムとパラメータのそれぞれのセットとのそれぞれの組合せを特定して関連付けて、性能スケーリングスケジュール上の点を生成するように構成された論理と、性能スケーリングスケジュールをモバイルデバイスに伝えるように構成された論理とを含む。
【００２０】
代替的な実施形態では、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法を、実行して実装するように適合されるコンピュータプログラム製品はさらに、追加の試験事例がいつ存在するかを判定するように構成される論理を含み、この試験事例は、それぞれの性能スケーリングアルゴリズムと、パラメータのそれぞれのセットと、それぞれの使用事例との組合せによって定義され、上記の論理はさらに、試験対象のモバイルデバイスを繰り返し調整し、性能の測定基準および電力の測定基準を求め、それぞれのメリット値を生成するように構成される。
【００２１】
代替的な実施形態では、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法を、実行して実装するように適合されるコンピュータプログラム製品は、複数のプロセッサコアの実行を制御するのに適した、負荷平衡アルゴリズムを含む。
【００２２】
別の代替的な実施形態では、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法を、実行して実装するように適合されるコンピュータプログラム製品は、モバイルデバイスで実行されることになる予測されるタスクを時間の百分率として特定する、使用事例のセットを含む。
【００２３】
さらに別の代替的な実施形態では、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法を、実行して実装するように適合されるコンピュータプログラム製品は、性能の測定基準と電力の測定基準との積から計算される、メリット値を含む。
【００２４】
さらに別の態様によれば、モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法が、開示される。方法は、モバイルデバイスでの実行に適した性能スケーリングアルゴリズムのセットを記憶するステップと、性能スケーリングアルゴリズムのセットのそれぞれのメンバーの各々に適切なパラメータのセットを、性能スケーリングアルゴリズムのセットのそれぞれのメンバーと関連付けて、プログラムのセットを定義するステップと、モバイルデバイスで実行されるべきタスクに対応する使用事例のセットを特定するステップと、各々の使用事例に対する最大のメリット値の原因である、プログラムのセットのメンバーを示すものを記憶して、性能スケーリングスケジュールを生成するステップと、モバイルデバイスに性能スケーリングスケジュールを記憶するステップと、ある特定の使用事例がモバイルデバイスにおいてアクティブである時を検出するステップと、性能スケーリングアルゴリズムとパラメータのセットとの組合せを、モバイルデバイスに対して選択的に適用するステップとを含む。
【００２５】
いくつかの例示的な実施形態では、性能スケーリングアルゴリズムのセットの構成を最適化するための方法は、携帯電話、ページャ、携帯情報端末、リーダー、衛星電話、ナビゲーションデバイス、または、コンピューティングデバイスのうちの1つで動作可能である。
【００２６】
モバイルデバイスで動作するのに適した性能スケーリングアルゴリズムのセットの構成を最適化するためのシステムおよび方法は、以下の図面を参照してさらに理解され得る。図面中の構成要素は必ずしも縮尺通りではなく、代わりに、性能スケーリングアルゴリズムおよびそれぞれのランタイムパラメータを含むプログラムのセットから生成される、定性的な測定結果の原理を明確に示すことが、強調されている。さらに、図では、同様の参照番号は、異なる図全体にわたって対応する部分を示す。
【図面の簡単な説明】
【００２７】
【図１】モバイルデバイスの一実施形態を示す概略図である。
【図２】図1のモバイルデバイスの特徴を示す概略図である。
【図３】図1のモバイルデバイスで動作可能な性能スケーリングアルゴリズムを管理して公開するための方法の一実施形態を示す流れ図である。
【図４】図1のモバイルデバイスで動作可能なコンピュータプログラム製品の一実施形態を示す流れ図である。
【図５】図1のモバイルデバイスに対する性能の測定基準のある実施形態を示すプロットである。
【図６Ａ】使用事例の実施形態を示す概略図である。
【図６Ｂ】使用事例の実施形態を示す概略図である。
【図７】試験環境のある実施形態を示す概略図である。
【図８】モバイルデバイスで動作可能な性能スケーリングアルゴリズムのセットの構成を最適化するための方法の一実施形態を示す流れ図である。
【発明を実施するための形態】
【００２８】
「例示的な」という言葉は、「一例、実例または例として働くこと」を意味するように本明細書で使用される。「例示的な」ものとして本明細書で説明する態様は、必ずしも他の態様よりも好ましい、または有利であると解釈されるわけではない。
【００２９】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイルおよびパッチなど、実行可能コンテンツを有するファイルを含むこともある。加えて、本明細書で言及する「アプリケーション」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。
【００３０】
本明細書では、「モバイルデバイス」という用語は、バッテリーなど限られた容量の電源で動作する任意のデバイスを説明するために使用される。バッテリー駆動のモバイルデバイスは数十年にわたって使用されてきたが、第3世代(「3G」)ワイヤレス技術の出現とともにもたらされた、再充電可能なバッテリーの技術的な進歩によって、複数の機能を有する様々なモバイルデバイスが可能になった。したがって、モバイルデバイスは、中でも、携帯電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、上述したデバイスの組合せ、ワイヤレス接続を有するラップトップコンピュータであってよい。
【００３１】
マルチコアプロセッサの導入、モバイルデバイスに様々な機能を実装するための専用のハードウェアリソース、および、バッテリー寿命の向上に対する継続的な要求によって、許容可能なエンドユーザ体験を提供しつつ電力消費を低減するように、モバイルデバイスを動的に調整するという課題が、さらに複雑になっている。それに対応して、複数の性能スケーリングアルゴリズムを管理して公開するための、改善されたモバイルデバイスおよび方法が開示される。利用可能な様々なモバイルデバイスの数、デバイスとの通信に使われる様々な通信プロトコルまたは規格、利用可能な様々なタイプのアプリケーション、デバイスの様々な使われ方などから、単一の手法または解決法のいずれも、すべての可能な動作の組合せに対して調整または最適化され得ないということが明らかである。
【００３２】
それに対して、モバイルデバイスにおいて性能スケーリングアルゴリズムのセットを提供し実施することが提案される。性能スケーリングアルゴリズムのセットが利用可能であることで、選択された性能スケーリングアルゴリズムが正常に適用された場合に、電力節減の機会が提供されつつ性能に対する影響が最小化される。性能スケーリングアルゴリズムのセットを様々なモバイルデバイスの製造業者に公開することが、さらに提案される。製造業者は、様々な使用状況における所望の性能に基づいて、選択または最適化された性能スケーリング手法をモバイルデバイスに対して提供することに関心があると、考えられる。そうした製造業者により選択または最適化された手法は、開始時に適用され得る。いくつかの状況では、製造業者は、性能スケーリングの選択肢を、それぞれのモバイルデバイスを介して顧客に公開するのを望み得る。そうした状況では、製造業者は、所望の性能および開始時に適用され得るバッテリー寿命をエンドユーザが選択できるようにする、アプリケーションプログラミングインターフェースを提供または修正することができ、または、性能スケーリング手法のランタイム選択およびリアルタイムの交換を実現することができる。これらの代替的なランタイム手法は、モバイルデバイスに対してすべての性能スケーリング手法を完全に無効にすることを含み得る。
【００３３】
モバイルデバイスに対する性能スケーリングアルゴリズムを管理して公開するための方法は、ソフトウェアまたはファームウェアとハードウェアとの組合せを介して、一般に実施される。ソフトウェアおよびファームウェアは、モバイルデバイスにおいて動作可能な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トランシーバ268は、デジタル回路素子を介して実装され、たとえばコアプロセッサ210(「コア」と標示される)など、少なくとも1つのプロセッサを含む。このデジタル実装では、RFトランシーバ268は、バス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トランシーバ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アルゴリズムは、パラメータのサンプルレート、向上のためのサンプル数、低下のためのサンプル数に従って、コア0 222に対する性能スケーリングを管理するものと特定され得る。パラメータのサンプルレートは、＼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プログラムと関連する任意の数の要因(たとえば、アルゴリズム、1つまたは複数のパラメータの1つまたは複数の特定の値)によって、望ましくない性能レベルなどがもたらされる可能性がある。さらに、トレース510の形状は、一定の電力の節減を実現しつつ、許容可能なレベルの性能を依然として実現し、かつ/または維持するために、モバイルデバイス100上のプロセッサコアおよび/または専用ビデオコーデックのうちの1つまたは複数へ適用できる、動作電圧および周波数の何らかの範囲が存在することを示す。
【００６２】
図5のプロットは、ビデオの再生特徴に対する、1つの性能の測定基準を表すものである。モバイルデバイス100は多数の他のアプリケーションを実行できるので、パラメータが調整され性能スケーリングアルゴリズムが1つまたは複数のプロセッサコアに適用される時に、モバイルデバイス100上の他の特徴またはアプリケーションの相対的な性能を比較して分析するために、任意の数の追加の性能の測定基準が開発され得る。
【００６３】
図6Aおよび図6Bは、使用事例の実施形態を示す概略図を含む。第1の例示的な使用事例は、図6Aの表600に示される。使用事例は、モバイルデバイス100において実行することができるタスクのセットを含む。タスクは、ウェブブラウジング(すなわち、モバイルデバイス100が、インターネットに結合される送信機の通信範囲内にある間、ブラウザアプリケーションを実行する)、オーディオ/ビデオ再生、オーディオ再生、電子メールアプリケーションの実行、および1つまたは複数の他のアプリケーションの実行を含む。使用事例はさらに、モバイルデバイス100の計画される使用率によって定義される。計画される使用率は、モバイルデバイス100の電源がオンでありバッテリーによって動作している、全体の時間の割合として表される。計画される使用率は、モバイルデバイスの製造業者または販売者によって設定され得る。
【００６４】
第2の例示的な使用事例は、図6Bの表650に示される。この第2の使用事例は、第1の使用事例の電子メールアプリケーションの代わりにショートメッセージサービス(SMS)アプリケーションを含む。モバイルデバイス100で実行されるべきタスクの一覧への変化に加えて、第2の使用事例は、デバイスのエンドユーザが関連するタスクを実行し得る、計画される割合の別個のセットを含む。
【００６５】
したがって、モバイルデバイス100に対する性能スケーリングアルゴリズムとパラメータとの利用可能な組合せの1つが、計画される使用事例に対して電力の節減により効果的であるかどうかを特定するのは、些細なことではない。メリットの数値またはメリット値は、可能なパラメータの組合せのM個のセットに対するN個の利用可能な性能スケーリングアルゴリズムの適用を、モバイルデバイス100で実行されるべきタスクの各々に対して比較するための、定量的な測定基準となる。メリット値は、規格化された性能の測定基準と、対応する電力の測定基準との積である。上で示されるように、1つまたは複数の性能の測定基準が、各タスクに対して特定され得る。
【００６６】
電力の測定基準は、節減された電力の値または使用された全体の電力を含み得る。モバイルデバイス100によって消費された全体の電力は、静的な要素と動的な要素の両方を有するので、使用された全体の電力は、様々な性能スケーリングアルゴリズムおよびパラメータの相対的な有効性の、より良好なインジケータであり得る。規格化された性能の測定基準と電力の測定基準との関数、すなわちこれらの値の積が、例示的な表610(図6A)および例示的な表660(図6B)に示される。表610および表660に示される値は、0から100までの尺度でスケーリングまたは規格化され、性能スケーリングアルゴリズムとパラメータセットとの所与の組合せに対して、0というスケーリングされた値またはメリット値は、最も望ましくない組合せを示し、100というメリット値は、最良の可能な性能および電力節減を表す。表610および表660は、同じ性能スケーリングアルゴリズム(すなわち、アルゴリズムA、アルゴリズムB、およびアルゴリズムN)を含むが、適用されるパラメータが各々の使用事例に対して異なるので、それぞれの使用事例におけるタスクの各々の対応するメリット値は異なる。
【００６７】
例示的な表610の中の情報および例示的な表660の中の情報は依然として、ある特定の性能スケーリングアルゴリズムが使用事例の全体にわたってより良好に動作するかどうかを、簡単には示さない。しかし、以下の式から、システムまたは複合メリット値(CMV)を求めることができる。
【００６８】
【数１】
0005568689.tif 000002
【００６９】
ここで、nは使用事例であり、wは重み付け係数であり、重み付け係数は、最も基本的な実施形態では、モバイルデバイス100が1つまたは複数のタスクを実行していると予測される時間の割合であってよい。代替的な実施形態では、重み付け係数は、モバイルデバイス100のための、性能スケーリングアルゴリズムとパラメータセットとの最良の組合せを決定する際の、任意の1つの使用事例の相対的な重要性を示す値であり得る。いくつかの場合には、特定のモバイルデバイス100が、複数のタスクを同時に実行できることに留意されたい。したがって、各々の使用事例に対して、モバイルデバイス100が、特定のアルゴリズムおよびパラメータのセットによって定義される組合せに従って、指定された1つまたは複数のタスクを実行している場合、メリット値(MV)は、性能の測定基準と電力の測定基準の積として計算され得る。以下で説明されるように、試験システムは、関心のある任意の数の性能スケーリングアルゴリズムおよびパラメータセットを試して、ある特定の組合せが他の組合せよりも望ましいかどうかを判定することができる。
【００７０】
モバイルデバイス100がデバイスの顧客に届けられた後で、同様のデータ収集手順を適用することができる。これによって、モバイルデバイス100の計画された使用率ではなく実際の顧客による使用率に対して、性能スケーリングアルゴリズムの調整と選択を、図6Aおよび図6Bで示されるように行えるようになる。加えて、どの性能スケーリングアルゴリズムおよびパラメータ構成が、ある特定の使用事例に対して最も大きな電力の節減をもたらすかが決定されると、モバイルデバイス100は、その使用事例を検出して、その使用事例がアクティブである時にはその性能スケーリングアルゴリズムおよびパラメータセットを適用するように構成され得る。
【００７１】
図7は、試験環境700の一実施形態を示す概略図である。試験環境700は、試験対象のモバイルデバイス(すなわちモバイルデバイス200)と通信リンク740を介して通信可能に結合される、試験システム710を含む。通信リンク740は、有線リンクでもワイヤレスリンクでもよい。示される実施形態における試験システム710は、プロセッサ715、メモリ720、および、ローカルバス712によって互いに結合される入力/出力コントローラ730を含む。ローカルバス712は、通信を可能にするために、コントローラ、バッファ(キャッシュ)、ドライバ、レピータ、および受信機のような、簡単にするために省略される追加の要素を有してもよい。さらに、ローカルバス712は、上述の構成要素の間での適切な通信を可能にするために、アドレス、制御、および/またはデータ接続を含み得る。
【００７２】
プロセッサ715は、メモリ720のような、プロセッサ715によってアクセス可能なメモリに特に記憶される、ソフトウェア(すなわち、プログラムまたは実行可能命令のセット)を実行するためのハードウェアデバイスである。プロセッサ715は、任意の特注のまたは市販のプロセッサ、中央演算処理装置(CPU)、試験システム710と関連付けられるいくつかのプロセッサのうちの補助的なプロセッサ、半導体ベースのマイクロプロセッサ(マイクロチップまたはチップセットの形態の)、または、命令を実行するための任意のデバイス全般であってよい。
【００７３】
入力/出力(I/O)コントローラ730は、試験システム710によって受信される、または試験システム710から伝えられる、すべての情報を管理する。I/Oコントローラ730は、限定はされないがたとえば、キーボード、マウス、スキャナ、マイクロフォン、および/またはタッチ感知式ディスプレイなどのようなデバイスを含む、任意の数のI/Oデバイスの間での情報伝達を管理する。I/Oデバイスはまた、モデム、高周波(RF)トランシーバまたは他のトランシーバ、イーサネット(登録商標)インターフェース、汎用シリアルバスインターフェースなどのうちの1つまたは複数を含む。
【００７４】
メモリ720は、揮発性のメモリ素子(ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)などのような、ランダムアクセスメモリ(RAM))と、不揮発性のメモリ素子(たとえば、読み取り専用メモリ(ROM)、ハードドライブ、テープ、コンパクトディスク読み取り専用メモリ(CD-ROM)など)とのうちの任意の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は、性能スケーリングアルゴリズムとパラメータのセットとの定義された組合せに従って機能するようにモバイルデバイスを構成する、I/Oコントローラ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、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形態で所望のプログラムコードを搬送もしくは記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。
【００８２】
また、任意の接続をコンピュータ可読媒体と呼ぶのが妥当である。たとえば、ソフトウェアが同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(「DSL」)、または、赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または、赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義内に含まれる。
【００８３】
本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(「CD」)、レーザディスク、光ディスク、デジタル多用途ディスク(「DVD」)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【００８４】
選択された態様について詳細に示し、詳述してきたが、以下の請求項によって定義されるような本発明の範囲から逸脱することなく、本明細書において様々な置換および改変がなされることが理解されよう。
【符号の説明】
【００８５】
110  デジタルシグナルプロセッサ
112  メモリ
114  モニタモジュール
210  コア
250  開始論理
260  管理論理
270 DVFSインターフェース論理
280  アプリケーションストア
290  ファイルシステム
292 DVFSストア
294  コアストア
296  プログラムストア
297  アルゴリズム
298  パラメータ
710  試験システム
715  プロセッサ
720  メモリ
721  プログラムストア
722  試験論理
723a  アルゴリズム
723b  パラメータ
724  制御論理
725  使用事例ストア
726  メリット論理
727  結果ストア
728  決定論理
730  I/Oコントローラ
【図１】
0005568689.tif 000003
【図２】
0005568689.tif 000004
【図３】
0005568689.tif 000005
【図４】
0005568689.tif 000006
【図５】
0005568689.tif 000007
【図６Ａ】
0005568689.tif 000008
【図６Ｂ】
0005568689.tif 000009
【図７】
0005568689.tif 000010
【図８】
0005568689.tif 000011