(57)【要約】  デバイス上で性能スケーリングアルゴリズムのセットを管理して公開するための、モバイルデバイス、方法、およびコンピュータプログラム製品が開示される。モバイルデバイスは、不揮発性メモリへ通信可能に結合されたマルチコアプロセッサを含む。不揮発性メモリは、性能スケーリングアルゴリズムとパラメータのセットとのそれぞれの組合せによって定義される、プログラムのセットと、マルチコアプロセッサによって実行されると、モバイルデバイスの動作の監視と特定されたプロセッサコアの性能のスケーリングとに適した、プログラムのセットの少なくとも1つのメンバーと、プログラムのセットを公開するアプリケーションプログラミングインターフェースとを特定する、開始プログラムとを含む。
2013542491.tif 000002
【特許請求の範囲】
【請求項１】
モバイルデバイス上で性能スケーリングアルゴリズムのセットを管理して公開するための方法であって、
性能スケーリングアルゴリズムのセットを前記モバイルデバイス内の不揮発性メモリに提供するステップと、
性能スケーリングアルゴリズムの前記セットのそれぞれのメンバーの各々に適したパラメータのセットを特定するステップと、
パラメータの前記セットを、前記不揮発性メモリ中の性能スケーリングアルゴリズムの前記セットの前記それぞれのメンバーと関連付けて、プログラムのセットを定義するステップと、
特定されたプロセッサコアの性能をスケーリングするのに適した、プログラムの前記セットの少なくとも1つのメンバーを特定するステップと、
プログラムの前記セットの前記少なくとも1つのメンバーを、前記不揮発性メモリ中の前記特定されたプロセッサコアと関連付けるステップと、
プログラムの前記セットを公開するインターフェースを作成するステップと
を含む、方法。
【請求項２】
性能スケーリングアルゴリズムのセットを提供するステップが、前記モバイルデバイスに対する性能の影響を最小にしながら、電力節減アルゴリズムを提供するステップを含む、請求項1に記載の方法。
【請求項３】
開始時に実行すべき第1のプログラムを、プログラムの前記セットから選択するステップ
をさらに含む、請求項1に記載の方法。
【請求項４】
定義された事象を特定すると、前記第1のプログラムを第2のプログラムによって交換するステップ
をさらに含む、請求項3に記載の方法。
【請求項５】
前記モバイルデバイスが、
携帯電話、ページャ、携帯情報端末、リーダー、衛星電話、ナビゲーションデバイス、またはワイヤレス接続を有するコンピュータのうちの1つ
を含む、請求項1に記載の方法。
【請求項６】
前記インターフェースが、前記モバイルデバイスの製造業者によってアクセス可能である、請求項1に記載の方法。
【請求項７】
前記インターフェースが、前記モバイルデバイスの操作者によってアクセス可能である、請求項6に記載の方法。
【請求項８】
プログラムの前記セットを階層的な順序で構成するステップ
をさらに含む、請求項1に記載の方法。
【請求項９】
前記階層的な順序が、最も詳細なメンバーから最も詳細ではないメンバーへと構造化される、請求項8に記載の方法。
【請求項１０】
不揮発性メモリに通信可能に結合されたマルチコアプロセッサを含むモバイルデバイスであって、前記不揮発性メモリが、
性能スケーリングアルゴリズムとパラメータのセットとのそれぞれの組合せによって定義される、プログラムのセットと、
前記マルチコアプロセッサによって実行されると、前記モバイルデバイスの動作の監視と、特定されたプロセッサコアの性能のスケーリングとに適切な、プログラムの前記セットの少なくとも1つのメンバーを特定する、開始プログラムと、
プログラムの前記セットを公開するアプリケーションプログラミングインターフェースと
を含む、モバイルデバイス。
【請求項１１】
性能スケーリングアルゴリズムの前記セットが、負荷平衡アルゴリズムを含む、請求項10に記載のモバイルデバイス。
【請求項１２】
前記プロセッサによって実行されると、ある事象の発生を検出し、前記事象に応答して、プログラムの前記セットの前記少なくとも1つのメンバーを置き換えるべきプログラムの前記セットの第2のメンバーを特定し、前記第2のメンバーを実行のために前記特定されたプロセッサコアへロードし、プログラムの前記セットの前記第2のメンバーを実行するように、前記特定されたプロセッサコアに指示する、管理アプリケーション
をさらに含む、請求項10に記載のモバイルデバイス。
【請求項１３】
前記アプリケーションプログラミングインターフェースが、前記モバイルデバイスの製造業者によってアクセス可能である、請求項10に記載のモバイルデバイス。
【請求項１４】
前記アプリケーションプログラミングインターフェースが、前記モバイルデバイスの操作者によってアクセス可能である、請求項10に記載のモバイルデバイス。
【請求項１５】
前記不揮発性メモリが、プログラムの前記セットを階層的な順序で記憶する、請求項10に記載のモバイルデバイス。
【請求項１６】
前記階層的な順序が、最も詳細なメンバーから最も詳細ではないメンバーへと構造化される、請求項15に記載のモバイルデバイス。
【請求項１７】
モバイルデバイス上で動作可能な性能スケーリングアルゴリズムのセットを管理するモバイルデバイスであって、
性能スケーリングアルゴリズムのセットを、パラメータのそれぞれのセットと関連付けて記憶し、プログラムのセットを定義し、プログラムの前記セットの少なくとも1つのメンバーが、特定されたプロセッサコアの性能をスケーリングするのに適切であり、前記関連付けて記憶するための手段が、前記モバイルデバイス上で利用可能なプロセッサコアでの実行に適切なプログラムの前記セットのメンバーを特定するための、それぞれのインジケータを含む、手段と、
プログラムの前記セットを公開するための手段と
を含む、モバイルデバイス。
【請求項１８】
性能スケーリングアルゴリズムの前記セットが、負荷平衡アルゴリズムを含む、請求項17に記載のモバイルデバイス。
【請求項１９】
ある事象の発生を検出するための手段と、
前記事象に応答してプログラムの前記セットの前記少なくとも1つのメンバーを置き換えるべき、プログラムの前記セットの第2のメンバーを特定するための手段と、
前記第2のメンバーをロードして実行するための手段と
をさらに含む、請求項17に記載のモバイルデバイス。
【請求項２０】
公開するための前記手段が、プログラムの前記セットを前記モバイルデバイスの製造業者に公開する、請求項17に記載のモバイルデバイス。
【請求項２１】
公開するための前記手段が、プログラムの前記セットを前記モバイルデバイスの操作者に公開する、請求項17に記載のモバイルデバイス。
【請求項２２】
関連付けて記憶するための前記手段が、プログラムの前記セットを階層的な順序で構成する、請求項17に記載のモバイルデバイス。
【請求項２３】
前記階層的な順序が、最も詳細なメンバーから最も詳細ではないメンバーへと構造化される、請求項22に記載のモバイルデバイス。
【請求項２４】
コンピュータにより実行可能なコンピュータ可読プログラムコードからなるコンピュータプログラムであって、前記コンピュータ可読プログラムコードが、モバイルデバイス上で性能スケーリングアルゴリズムのセットを管理するための方法を実施するように実行されるように適合され、前記方法が、
前記モバイルデバイス上で動作可能な、プロセッサコアの性能をスケーリングするのに適切なメンバーをプログラムのセットから選択し、選択プログラムを定義し、プログラムの前記セットが、性能スケーリングアルゴリズムとパラメータのそれぞれのセットとのそれぞれの組合せによって定義される、ステップと、
開始手順に応答して、前記モバイルデバイス上で動作可能なプロセッサに前記選択プログラムをロードするステップと、
前記モバイルデバイスの使用を監視して、プログラムの前記セットからの交換プログラムによって前記選択プログラムを交換すべきであるということを示す状況を特定するステップと、
ランタイム中に、前記交換プログラムによって前記選択プログラムを交換するステップと
を含む、コンピュータプログラム。
【請求項２５】
メンバーを選択するステップが、階層的に構成されたファイルシステムを検索するステップを含む、請求項24に記載のコンピュータプログラム。
【請求項２６】
前記モバイルデバイスの使用を監視するステップが、アクティブなプロセスのリストを維持するステップを含む、請求項24に記載のコンピュータプログラム。
【請求項２７】
前記モバイルデバイスの使用を監視するステップが、アクティブなリソースのリストを維持するステップを含む、請求項24に記載のコンピュータプログラム。
【請求項２８】
前記モバイルデバイスの使用を監視するステップが、操作者のインターフェースから入力を受け取るステップを含む、請求項24に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、性能スケーリングアルゴリズムのセットを公開して管理するためのモバイルデバイスおよび方法に関する。
【背景技術】
【０００２】
ワイヤレス通信プロトコルの技術的進歩、エネルギー蓄積密度、プロセッサ性能および効率、ならびにセルラー送信機の密度の増加は、1990年代におけるワイヤレスデジタルネットワークの導入を可能にした。第2世代のモバイルデバイスの使用がさらに普及するにつれて、インターネットへのアクセスを含むデータサービスを求める要求が増大しつつあったことが明白になった。第3世代のワイヤレス通信システムによるデータ送信に、回線交換ではなくパケット交換を導入することで、ストリーミングメディアをモバイルデバイスに配信するために必要なデータ送信レートの向上が可能になった。
【０００３】
今日のデータネットワーク対応のモバイルデバイスは、極めて多くのアプリケーションをエンドユーザに提供するために、高性能のプロセッサを含む。しかしながら、性能に対する要求の結果、それに対応して消費電力が増加する。所与の実装に必要なクロック周波数とトランジスタ数の両方が増加するので、現代のプロセッサの電力損失は急速に増加しつつある。残念ながら、バッテリー技術は、これらのデータネットワーク対応のワイヤレスデバイスのエネルギー要求と足並みを揃えておらず、このことは、アプリケーション性能とバッテリー駆動時間との間に設計上のトレードオフをもたらす。最大限の性能のためにバッテリー駆動時間が犠牲になり得ると判断されたときでさえ、熱管理は、手のひらサイズであることが多いハウジング内にある、バッテリーと電子回路の両方に対して問題になり得る。
【０００４】
高性能と低消費電力を実現するプロセッサに対する需要は、プロセッサ設計における動的な電圧および周波数スケーリング(DVFS)の使用につながった。DVFSは、消費電力と性能との間のトレードオフを可能にする。DVFSを利用するように設計されているプロセッサによって、プロセッサのクロック周波数を、電圧の対応する調整によって調整することができる。何らかの電力節減は実行時間の増加によって相殺され、結果的に総エネルギー消費量を全体としては減少させないので、クロック周波数のみの低減は役立たない。しかしながら、動作電圧を低減すると、それに比例して消費電力が節減される。
【０００５】
DVFS対応のプロセッサの主要な問題は、性能と電力節減との間のバランスをどのように制御するかということである。従来のDVFS制御アルゴリズムは、予測される作業負荷を最終期限まで引き伸ばすのを許容する変更された性能レベルを特定するために、アイドル時間という評価基準を使用する。すなわち、より低い電圧およびより遅いクロック周波数でプロセッサを動作させることによって、アイドル時間が低減する。この手法は連続的な既知の作業負荷には適していることがあるが、多くのモバイルデバイスアプリケーションは、インタラクティブであり、および/または、不規則なもしくは予測できない要求をプロセッサに課す。したがって、1つのアルゴリズムがすべてのモバイルデバイスアプリケーション、アプリケーションの組合せ、および用途のために最適とは限らないことは明らかである。
【発明の概要】
【課題を解決するための手段】
【０００６】
モバイルデバイス上で性能スケーリングアルゴリズムのセットを管理して公開するための方法は、モバイルデバイス内の不揮発性メモリに性能スケーリングアルゴリズムのセットを提供するステップと、性能スケーリングアルゴリズムのセットのそれぞれのメンバーの各々に適切な、パラメータのセットを特定するステップと、パラメータのセットを、不揮発性メモリ中の性能スケーリングアルゴリズムのセットのそれぞれのメンバーと関連付けて、プログラムのセットを定義するステップと、特定されたプロセッサコアの性能をスケーリングするのに適切な、プログラムのセットの少なくとも1つのメンバーを特定するステップと、プログラムのセットの少なくとも1つのメンバーを、不揮発性メモリ中の特定されたプロセッサコアと関連付けるステップと、プログラムのセットを公開するインターフェースを作成するステップとを含む。
【０００７】
モバイルデバイス上で性能スケーリングアルゴリズムのセットを管理して公開するための方法の代替的な実施形態は、モバイルデバイス内の不揮発性メモリに性能スケーリングアルゴリズムのセットを提供し、性能スケーリングアルゴリズムのセットのそれぞれのメンバーの各々に適切なパラメータのセットを特定するモバイルデバイスに対する、性能の影響を最小にしながら、電力節減アルゴリズムを提供するステップを含む、ステップと、パラメータのセットを、不揮発性メモリ中の性能スケーリングアルゴリズムのセットのそれぞれのメンバーと関連付けて、プログラムのセットを定義するステップと、特定されたプロセッサコアの性能をスケーリングするのに適切な、プログラムのセットの少なくとも1つのメンバーを特定するステップと、プログラムのセットの少なくとも1つのメンバーを、不揮発性メモリ中の特定されたプロセッサコアと関連付けるステップと、プログラムのセットを公開するインターフェースを作成するステップとを含む。
【０００８】
モバイルデバイス上で性能スケーリングアルゴリズムのセットを管理して公開するための方法のさらに別の代替的な実施形態は、モバイルデバイス内の不揮発性メモリに性能スケーリングアルゴリズムのセットを提供するステップと、性能スケーリングアルゴリズムのセットのそれぞれのメンバーの各々に適切な、パラメータのセットを特定するステップと、パラメータのセットを、不揮発性メモリ中の性能スケーリングアルゴリズムのセットのそれぞれのメンバーと関連付けて、プログラムのセットを定義するステップと、特定されたプロセッサコアの性能をスケーリングするのに適切な、プログラムのセットの少なくとも1つのメンバーを特定するステップと、プログラムのセットの少なくとも1つのメンバーを、不揮発性メモリ中の特定されたプロセッサコアと関連付けるステップと、プログラムのセットを公開するインターフェースを作成するステップと、開始時に実行すべき第1のプログラムを、プログラムのセットから選択するステップとを含む。
【０００９】
モバイルデバイス上で性能スケーリングアルゴリズムのセットを管理して公開するための方法のさらに別の代替的な実施形態は、モバイルデバイス内の不揮発性メモリに性能スケーリングアルゴリズムのセットを提供するステップと、性能スケーリングアルゴリズムのセットのそれぞれのメンバーの各々に適切な、パラメータのセットを特定するステップと、パラメータのセットを、不揮発性メモリ中の性能スケーリングアルゴリズムのセットのそれぞれのメンバーと関連付けて、プログラムのセットを定義するステップと、特定されたプロセッサコアの性能をスケーリングするのに適切な、プログラムのセットの少なくとも1つのメンバーを特定するステップと、プログラムのセットの少なくとも1つのメンバーを、不揮発性メモリ中の特定されたプロセッサコアと関連付けるステップと、プログラムのセットを公開するインターフェースを作成するステップと、開始時に実行すべき第1のプログラムを、プログラムのセットから選択するステップと、定義された事象が特定されると、第1のプログラムを第2のプログラムによって交換するステップとを含む。
【００１０】
モバイルデバイス上で性能スケーリングアルゴリズムのセットを管理して公開するための方法の別の態様によれば、方法はさらに、階層的な順序でプログラムのセットを構成するステップを含む。いくつかの実施形態では、階層的な順序は、最も詳細なメンバーから最も詳細ではないメンバーへと構造化される。
【００１１】
モバイルデバイス上で性能スケーリングアルゴリズムのセットを管理して公開するための様々な方法のある態様によれば、インターフェースが、モバイルデバイスの製造業者と操作者の一者または複数によってアクセス可能である。
【００１２】
別の態様によれば、モバイルデバイスが開示される。モバイルデバイスは、不揮発性メモリへ通信可能に結合されたマルチコアプロセッサを含む。不揮発性メモリは、性能スケーリングアルゴリズムとパラメータのセットとのそれぞれの組合せによって定義されるプログラムのセットと、マルチコアプロセッサによって実行されると、モバイルデバイスの動作の監視と、特定されたプロセッサコアの性能のスケーリングとに適した、プログラムのセットの少なくとも1つのメンバーを特定する、開始プログラムと、プログラムのセットを公開するアプリケーションプログラミングインターフェースとを記憶している。
【００１３】
いくつかの例示的な実施形態では、モバイルデバイスは、携帯電話、ページャ、携帯情報端末、リーダー、衛星電話、ナビゲーションデバイス、またはワイヤレス接続を有するコンピューティングデバイスのうちの1つである。
【００１４】
ある例示的な実施形態では、モバイルデバイスは、複数のプロセッサコアにわたって負荷を平衡させる、性能スケーリングアルゴリズムを含む。
【００１５】
ある代替的な実施形態では、モバイルデバイスはさらに、プロセッサによって実行されると、ある事象の発生を検出し、その事象に応答してプログラムのセットの少なくとも1つのメンバーを置き換えるべきプログラムのセットの第2のメンバーを特定し、第2のメンバーを実行のために特定のプロセッサコアにロードし、プログラムのセットの第2のメンバーを実行するように特定されたプロセッサコアを指示する、管理アプリケーションを含む。
【００１６】
モバイルデバイスの別の態様によれば、アプリケーションプログラミングインターフェースは、モバイルデバイスの製造業者および操作者の一者または複数によってアクセス可能である。
【００１７】
モバイルデバイスのさらに別の態様によれば、不揮発性メモリは、プログラムのセットを階層的な順序で記憶する。いくつかの実施形態では、階層的な順序は、最も詳細なメンバーから最も詳細ではないメンバーへと構造化される。
【００１８】
その上、モバイルデバイス上で動作可能な性能スケーリングアルゴリズムのセットを管理するモバイルデバイスは、性能スケーリングアルゴリズムのセットをパラメータのそれぞれのセットと関連付けて記憶し、プログラムのセットを定義するための機構であって、プログラムのセットの少なくとも1つのメンバーが、特定されたプロセッサコアの性能をスケーリングするのに適した、機構と、モバイルデバイス上で利用可能なプロセッサコアでの実行に適したプログラムのセットのメンバーを特定するための、それぞれのインジケータを含む、関連付けて記憶するための機構と、プログラムのセットを公開するための機構とを含む。
【００１９】
性能スケーリングアルゴリズムのセットを管理するモバイルデバイスの別の態様によれば、性能スケーリングアルゴリズムの1つまたは複数は、負荷平衡アルゴリズムを含む。
【００２０】
性能スケーリングアルゴリズムのセットを管理するモバイルデバイスのさらに別の態様によれば、モバイルデバイスはさらに、ある事象の発生を検出するための1つまたは複数の機構と、その事象に応答してプログラムのセットの少なくとも1つのメンバーを置き換えるべきプログラムのセットの第2のメンバーを特定するための1つまたは複数の機構と、第2のメンバーをロードして実行するための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トランシーバ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とパラメータのセット298との特定の組合せによって定義される。選択プログラムは、デジタルシグナルプロセッサのコアプロセッサのうちの1つまたは複数、およびRFトランシーバ168のコア210によって実行されると、それぞれのプロセッサコアの性能をスケーリングするために、モニタモジュール114によって提供される1つまたは複数の信号に従って動作し得る。この点について、モニタモジュール114は、イベント、プロセス、アプリケーション、リソース状態の条件、経過時間、温度などのうちの1つまたは複数のインジケータを提供することができる。
【００５２】
管理論理260は、それぞれのプロセッサコアのうちの1つまたは複数において動作可能な性能スケーリングプログラムを終了し、利用可能なコアのうちの1つまたは複数の性能を管理または制御するためのより適切な交換プログラムを選択的に特定し、ロードし、実行するための1つまたは複数の実行可能命令を含む。管理論理260は、ランタイム時に、またはモバイルデバイスが電力供給されデバイスのオペレータによって使用されている間に、これらの機能を実行するように構成される。交換プログラムは、組込みファイルシステム290のプログラムストア296で見つけることができ、性能スケーリングアルゴリズム297とパラメータのセット298との特定の組合せによって定義される。交換プログラムは、デジタルシグナルプロセッサのコアプロセッサのうちの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の次の開始時に実施される、変更を加えることができる。あるいは、操作者は、結果として生じるインターフェースを使用して、ランタイム中に実施される変更を加えることができる。
【００５５】
組込みファイルシステム290は、階層的に構成されたDVFSストア292を含む。これに関して、ファイルシステム290は、モバイルデバイス100が用いる様々なパラメータ298および性能スケーリングアルゴリズム297の、構成および管理のための情報を格納するための、全体のファイルシステム容量の中で確保された部分を含み得る。図2に示されるように、DVFSストア292はコアストア294を含み、コアストア294はプログラムストア296を含み、プログラムストア296は1つまたは複数のDVFSプログラムを含む。各プログラムは、それぞれの性能スケーリングアルゴリズムと、特定のアルゴリズムと関連付けられるパラメータのセットとの組合せとして、定義される。DVFSストア292の階層的な性質のさらなる例として、ファイルのセットのある特定のメンバーは、\startup\core0\algorithm\parametersetというパスによって位置を定められ特定され得る。この例では、プログラムが、パラメータセットに格納された情報の内容と組み合わせて、アルゴリズムによって特定される。たとえば、「典型的」として知られている従来のDVFSアルゴリズムは、パラメータのサンプルレート、向上のためのサンプル数(「up」と示されている)、低下のためのサンプル数(「down」と示されている)に従って、コア1 222に対する性能スケーリングを管理するものと特定され得る。パラメータのサンプルレートは、\startup\core0\classic\samplerateであり、値は100であり、単位はMHzである。向上のためのサンプル数は、\startup\core0\classic\upであり、値は2であり、整数である。低下のためのサンプル数は、\startup\core0\classic\downであり、値は1であり、整数である。つまり、それぞれのファイル名はパラメータを定義し、パラメータの値はファイルの内容によって特定される。アルゴリズムは、CPUのアイドル割合の周期的なサンプリングによって定義され、下側の閾値(%アイドル)および上側の閾値(%アイドル)に従って動作する。向上のためのサンプル数の閾値比較器が、2つの連続するサンプルに関して、性能を向上させるべきであることを示す場合、DVFSアルゴリズムは、所定のクロックレベルの調整に従って性能を向上させる。逆に、低下のためのサンプル数の閾値比較器が、1つの連続するサンプルに関して、性能を低下させるべきであることを示す場合、DVFSアルゴリズムは、所定のクロックレベル(すなわち周波数)の調整に従って性能を低下させる。上で説明されたように、プロセッサまたはコアの動作電圧が、クロック周波数の変化とともに変化し得る。
【００５６】
あるいは、またはさらに、DVFSストア292は、最初に遭遇する情報が最も詳細になるような手順で、オペレーティングシステムがその中に記憶された情報に遭遇するように構成されてよく、他のプログラムが、モバイルデバイス100上のそれぞれのプロセッサコアの性能をスケーリングするのに適切であると、検索中に特定されなければ、最後に遭遇する情報が、デフォルトとして適用される。たとえば、パラメータは、ディレクトリ/core0、/coreall、および/defaultにおいて定義され得る。パスは、各パラメータについてその順序で検索される。見出される第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およびプロセスの発明性のある機能が、上の説明において、かつ、様々な処理の流れを示し得る各図に関連して、より詳細に説明された。
【００６４】
加えて、プログラミングの当業者は、たとえば、本明細書の流れ図および関連する説明に基づいて、開示される発明を実施するために、容易に、コンピュータコードを書き込み、または適切なハードウェアおよび/もしくは回路を特定することができる。
【００６５】
したがって、特定のプログラムコード命令のセットまたは詳細なハードウェアデバイスの開示が、本発明をどのように製作し使用すべきかについて適切に理解するうえで必要であるとはみなされない。コンピュータによって実施される特許請求される処理の発明性のある機能が、上の説明において、かつ、様々な処理の流れを示し得る各図に関連して、より詳細に説明された。
【００６６】
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  パラメータ
【図１】
2013542491.tif 000003
【図２】
2013542491.tif 000004
【図３】
2013542491.tif 000005
【図４】
2013542491.tif 000006
【手続補正書】
【提出日】平成25年4月5日(2013.4.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
モバイルデバイス上でスケーリングアルゴリズムのセットを管理して公開するための方法であって、
スケーリングアルゴリズムのセットを前記モバイルデバイス内の不揮発性メモリに提供するステップと、
スケーリングアルゴリズムの前記セットのそれぞれのメンバーの各々に適したパラメータのセットを特定するステップと、
パラメータの前記セットを、前記不揮発性メモリ中のスケーリングアルゴリズムの前記セットの前記それぞれのメンバーと関連付けて、プログラムのセットを定義するステップと、
前記モバイルデバイス中のプロセッサコアのセットの中から特定されたプロセッサコアの制御入力をスケーリングするのに適した、プログラムの前記セットの少なくとも1つのメンバーを特定するステップと、
プログラムの前記セットの前記少なくとも1つのメンバーを、前記不揮発性メモリ中の前記特定されたプロセッサコアと関連付けるステップと、
プログラムの前記セットを公開するインターフェースを作成するステップであって、前記インターフェースが、前記モバイルデバイスの定義された動作条件において、調整を可能にする入力に応答する、ステップと
を含む、方法。
【請求項２】
スケーリングアルゴリズムのセットを提供するステップが、前記モバイルデバイスに対する性能の影響を最小にするように構成される電力節減アルゴリズムを提供するステップを含む、請求項1に記載の方法。
【請求項３】
開始時に実行すべき第1のプログラムを、プログラムの前記セットから選択するステップ
をさらに含む、請求項1に記載の方法。
【請求項４】
定義された事象を特定すると、前記第1のプログラムを第2のプログラムによって交換するステップ
をさらに含む、請求項3に記載の方法。
【請求項５】
前記モバイルデバイスが、
携帯電話、ページャ、携帯情報端末、リーダー、衛星電話、ナビゲーションデバイス、またはワイヤレス接続を有するコンピュータのうちの1つ
を含む、請求項1に記載の方法。
【請求項６】
前記インターフェースが、前記モバイルデバイスの製造業者によってアクセス可能である、請求項1に記載の方法。
【請求項７】
前記インターフェースが、前記モバイルデバイスの操作者によってアクセス可能である、請求項6に記載の方法。
【請求項８】
プログラムの前記セットを階層的な順序で構成するステップ
をさらに含む、請求項1に記載の方法。
【請求項９】
前記階層的な順序が、最も詳細なメンバーから最も詳細ではないメンバーへと構造化される、請求項8に記載の方法。
【請求項１０】
不揮発性メモリに通信可能に結合されたマルチコアプロセッサを含むモバイルデバイスであって、前記不揮発性メモリが、
スケーリングアルゴリズムとパラメータのセットとのそれぞれの組合せによって定義される、プログラムのセットと、
前記マルチコアプロセッサによって実行されると、前記モバイルデバイスの動作の監視と、特定されたプロセッサコアの制御入力のスケーリングとに適切な、前記モバイルデバイスの開始時に実行するための、プログラムの前記セットの少なくとも1つのメンバーを選択する、開始プログラムと、
プログラムの前記セットを公開し、前記モバイルデバイスの定義された動作条件において、調整を可能にする入力に応答する、アプリケーションプログラミングインターフェースと
を含む、モバイルデバイス。
【請求項１１】
性能スケーリングアルゴリズムの前記セットが、負荷平衡アルゴリズムを含む、請求項10に記載のモバイルデバイス。
【請求項１２】
前記プロセッサによって実行されると、ある事象の発生を検出し、前記事象に応答して、プログラムの前記セットの前記少なくとも1つのメンバーを置き換えるべきプログラムの前記セットの第2のメンバーを特定し、前記第2のメンバーを実行のために前記特定されたプロセッサコアへロードし、プログラムの前記セットの前記第2のメンバーを実行するように、前記特定されたプロセッサコアに指示する、管理アプリケーション
をさらに含む、請求項10に記載のモバイルデバイス。
【請求項１３】
前記アプリケーションプログラミングインターフェースが、前記モバイルデバイスの製造業者によってアクセス可能である、請求項10に記載のモバイルデバイス。
【請求項１４】
前記アプリケーションプログラミングインターフェースが、前記モバイルデバイスの操作者によってアクセス可能である、請求項10に記載のモバイルデバイス。
【請求項１５】
前記不揮発性メモリが、プログラムの前記セットを階層的な順序で記憶する、請求項10に記載のモバイルデバイス。
【請求項１６】
前記階層的な順序が、最も詳細なメンバーから最も詳細ではないメンバーへと構造化される、請求項15に記載のモバイルデバイス。
【請求項１７】
モバイルデバイス上で動作可能なスケーリングアルゴリズムのセットを管理するモバイルデバイスであって、
スケーリングアルゴリズムのセットを、パラメータのそれぞれのセットとともに記憶して、プログラムのセットを定義し、プログラムの前記セットの少なくとも1つのメンバーが、特定されたプロセッサコアの制御入力をスケーリングするのに適切であり、前記記憶するための手段が、前記モバイルデバイス上で利用可能なプロセッサコアでの実行に適切なプログラムの前記セットのメンバーを特定するための、それぞれのインジケータを含む、手段と、
プログラムの前記セットを公開し、前記モバイルデバイスの定義された動作条件において、調整を可能にする入力に応答する、手段と
を含む、モバイルデバイス。
【請求項１８】
性能スケーリングアルゴリズムの前記セットが、負荷平衡アルゴリズムを含む、請求項17に記載のモバイルデバイス。
【請求項１９】
ある事象の発生を検出するための手段と、
前記事象に応答してプログラムの前記セットの前記少なくとも1つのメンバーを置き換えるべき、プログラムの前記セットの第2のメンバーを特定するための手段と、
前記第2のメンバーをロードして実行するための手段と
をさらに含む、請求項17に記載のモバイルデバイス。
【請求項２０】
公開するための前記手段が、プログラムの前記セットを前記モバイルデバイスの製造業者に公開する、請求項17に記載のモバイルデバイス。
【請求項２１】
公開するための前記手段が、プログラムの前記セットを前記モバイルデバイスの操作者に公開する、請求項17に記載のモバイルデバイス。
【請求項２２】
関連付けて記憶するための前記手段が、プログラムの前記セットを階層的な順序で構成する、請求項17に記載のモバイルデバイス。
【請求項２３】
前記階層的な順序が、最も詳細なメンバーから最も詳細ではないメンバーへと構造化される、請求項22に記載のモバイルデバイス。
【請求項２４】
コンピュータにより実行可能なコンピュータ可読プログラムコードからなるコンピュータプログラムであって、前記コンピュータ可読プログラムコードが、モバイルデバイス上でスケーリングアルゴリズムのセットを管理するための方法を実施するように実行されるように適合され、前記方法が、
インターフェースを提供するステップと、
前記インターフェースを使って、前記モバイルデバイス上で動作可能な、プロセッサコアの制御入力をスケーリングするのに適切なメンバーをプログラムのセットから選択し、選択プログラムを定義し、プログラムの前記セットが、スケーリングアルゴリズムとパラメータのそれぞれのセットとのそれぞれの組合せによって定義される、ステップと、
開始手順に応答して、前記モバイルデバイス上で動作可能なプロセッサに前記選択プログラムをロードするステップと、
前記モバイルデバイスの使用を監視して、プログラムの前記セットからの交換プログラムによって前記選択プログラムを交換すべきであるということを示す状況を特定するステップと、
ランタイム中に、前記交換プログラムによって前記選択プログラムを交換するステップと
を含む、コンピュータプログラム。
【請求項２５】
メンバーを選択するステップが、階層的に構成されたファイルシステムを検索するステップを含む、請求項24に記載のコンピュータプログラム。
【請求項２６】
前記モバイルデバイスの使用を監視するステップが、アクティブなプロセスのリストを維持するステップを含む、請求項24に記載のコンピュータプログラム。
【請求項２７】
前記モバイルデバイスの使用を監視するステップが、アクティブなリソースのリストを維持するステップを含む、請求項24に記載のコンピュータプログラム。
【請求項２８】
前記モバイルデバイスの使用を監視するステップが、操作者のインターフェースから入力を受け取るステップを含む、請求項24に記載のコンピュータプログラム。
【国際調査報告】
2013542491.tif 000007
2013542491.tif 000008
2013542491.tif 000009
2013542491.tif 000010
2013542491.tif 000011