JP2013542491A - 性能スケーリングアルゴリズムのセットを公開して管理するためのモバイルデバイスおよび方法 - Google Patents

性能スケーリングアルゴリズムのセットを公開して管理するためのモバイルデバイスおよび方法 Download PDF

Info

Publication number
JP2013542491A
JP2013542491A JP2013529144A JP2013529144A JP2013542491A JP 2013542491 A JP2013542491 A JP 2013542491A JP 2013529144 A JP2013529144 A JP 2013529144A JP 2013529144 A JP2013529144 A JP 2013529144A JP 2013542491 A JP2013542491 A JP 2013542491A
Authority
JP
Japan
Prior art keywords
mobile device
programs
performance
program
performance scaling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013529144A
Other languages
English (en)
Other versions
JP5743245B2 (ja
Inventor
ブライアン・ジェー・ソールスベリー
ノーマン・エス・ガルガッシュ
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2013542491A publication Critical patent/JP2013542491A/ja
Application granted granted Critical
Publication of JP5743245B2 publication Critical patent/JP5743245B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)
  • Telephone Function (AREA)

Abstract

デバイス上で性能スケーリングアルゴリズムのセットを管理して公開するための、モバイルデバイス、方法、およびコンピュータプログラム製品が開示される。モバイルデバイスは、不揮発性メモリへ通信可能に結合されたマルチコアプロセッサを含む。不揮発性メモリは、性能スケーリングアルゴリズムとパラメータのセットとのそれぞれの組合せによって定義される、プログラムのセットと、マルチコアプロセッサによって実行されると、モバイルデバイスの動作の監視と特定されたプロセッサコアの性能のスケーリングとに適した、プログラムのセットの少なくとも1つのメンバーと、プログラムのセットを公開するアプリケーションプログラミングインターフェースとを特定する、開始プログラムとを含む。

Description

本開示は、性能スケーリングアルゴリズムのセットを公開して管理するためのモバイルデバイスおよび方法に関する。
ワイヤレス通信プロトコルの技術的進歩、エネルギー蓄積密度、プロセッサ性能および効率、ならびにセルラー送信機の密度の増加は、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 パラメータ

Claims (28)

  1. モバイルデバイス上で性能スケーリングアルゴリズムのセットを管理して公開するための方法であって、
    性能スケーリングアルゴリズムのセットを前記モバイルデバイス内の不揮発性メモリに提供するステップと、
    性能スケーリングアルゴリズムの前記セットのそれぞれのメンバーの各々に適したパラメータのセットを特定するステップと、
    パラメータの前記セットを、前記不揮発性メモリ中の性能スケーリングアルゴリズムの前記セットの前記それぞれのメンバーと関連付けて、プログラムのセットを定義するステップと、
    特定されたプロセッサコアの性能をスケーリングするのに適した、プログラムの前記セットの少なくとも1つのメンバーを特定するステップと、
    プログラムの前記セットの前記少なくとも1つのメンバーを、前記不揮発性メモリ中の前記特定されたプロセッサコアと関連付けるステップと、
    プログラムの前記セットを公開するインターフェースを作成するステップと
    を含む、方法。
  2. 性能スケーリングアルゴリズムのセットを提供するステップが、前記モバイルデバイスに対する性能の影響を最小にしながら、電力節減アルゴリズムを提供するステップを含む、請求項1に記載の方法。
  3. 開始時に実行すべき第1のプログラムを、プログラムの前記セットから選択するステップ
    をさらに含む、請求項1に記載の方法。
  4. 定義された事象を特定すると、前記第1のプログラムを第2のプログラムによって交換するステップ
    をさらに含む、請求項3に記載の方法。
  5. 前記モバイルデバイスが、
    携帯電話、ページャ、携帯情報端末、リーダー、衛星電話、ナビゲーションデバイス、またはワイヤレス接続を有するコンピュータのうちの1つ
    を含む、請求項1に記載の方法。
  6. 前記インターフェースが、前記モバイルデバイスの製造業者によってアクセス可能である、請求項1に記載の方法。
  7. 前記インターフェースが、前記モバイルデバイスの操作者によってアクセス可能である、請求項6に記載の方法。
  8. プログラムの前記セットを階層的な順序で構成するステップ
    をさらに含む、請求項1に記載の方法。
  9. 前記階層的な順序が、最も詳細なメンバーから最も詳細ではないメンバーへと構造化される、請求項8に記載の方法。
  10. 不揮発性メモリに通信可能に結合されたマルチコアプロセッサを含むモバイルデバイスであって、前記不揮発性メモリが、
    性能スケーリングアルゴリズムとパラメータのセットとのそれぞれの組合せによって定義される、プログラムのセットと、
    前記マルチコアプロセッサによって実行されると、前記モバイルデバイスの動作の監視と、特定されたプロセッサコアの性能のスケーリングとに適切な、プログラムの前記セットの少なくとも1つのメンバーを特定する、開始プログラムと、
    プログラムの前記セットを公開するアプリケーションプログラミングインターフェースと
    を含む、モバイルデバイス。
  11. 性能スケーリングアルゴリズムの前記セットが、負荷平衡アルゴリズムを含む、請求項10に記載のモバイルデバイス。
  12. 前記プロセッサによって実行されると、ある事象の発生を検出し、前記事象に応答して、プログラムの前記セットの前記少なくとも1つのメンバーを置き換えるべきプログラムの前記セットの第2のメンバーを特定し、前記第2のメンバーを実行のために前記特定されたプロセッサコアへロードし、プログラムの前記セットの前記第2のメンバーを実行するように、前記特定されたプロセッサコアに指示する、管理アプリケーション
    をさらに含む、請求項10に記載のモバイルデバイス。
  13. 前記アプリケーションプログラミングインターフェースが、前記モバイルデバイスの製造業者によってアクセス可能である、請求項10に記載のモバイルデバイス。
  14. 前記アプリケーションプログラミングインターフェースが、前記モバイルデバイスの操作者によってアクセス可能である、請求項10に記載のモバイルデバイス。
  15. 前記不揮発性メモリが、プログラムの前記セットを階層的な順序で記憶する、請求項10に記載のモバイルデバイス。
  16. 前記階層的な順序が、最も詳細なメンバーから最も詳細ではないメンバーへと構造化される、請求項15に記載のモバイルデバイス。
  17. モバイルデバイス上で動作可能な性能スケーリングアルゴリズムのセットを管理するモバイルデバイスであって、
    性能スケーリングアルゴリズムのセットを、パラメータのそれぞれのセットと関連付けて記憶し、プログラムのセットを定義し、プログラムの前記セットの少なくとも1つのメンバーが、特定されたプロセッサコアの性能をスケーリングするのに適切であり、前記関連付けて記憶するための手段が、前記モバイルデバイス上で利用可能なプロセッサコアでの実行に適切なプログラムの前記セットのメンバーを特定するための、それぞれのインジケータを含む、手段と、
    プログラムの前記セットを公開するための手段と
    を含む、モバイルデバイス。
  18. 性能スケーリングアルゴリズムの前記セットが、負荷平衡アルゴリズムを含む、請求項17に記載のモバイルデバイス。
  19. ある事象の発生を検出するための手段と、
    前記事象に応答してプログラムの前記セットの前記少なくとも1つのメンバーを置き換えるべき、プログラムの前記セットの第2のメンバーを特定するための手段と、
    前記第2のメンバーをロードして実行するための手段と
    をさらに含む、請求項17に記載のモバイルデバイス。
  20. 公開するための前記手段が、プログラムの前記セットを前記モバイルデバイスの製造業者に公開する、請求項17に記載のモバイルデバイス。
  21. 公開するための前記手段が、プログラムの前記セットを前記モバイルデバイスの操作者に公開する、請求項17に記載のモバイルデバイス。
  22. 関連付けて記憶するための前記手段が、プログラムの前記セットを階層的な順序で構成する、請求項17に記載のモバイルデバイス。
  23. 前記階層的な順序が、最も詳細なメンバーから最も詳細ではないメンバーへと構造化される、請求項22に記載のモバイルデバイス。
  24. コンピュータにより実行可能なコンピュータ可読プログラムコードからなるコンピュータプログラムであって、前記コンピュータ可読プログラムコードが、モバイルデバイス上で性能スケーリングアルゴリズムのセットを管理するための方法を実施するように実行されるように適合され、前記方法が、
    前記モバイルデバイス上で動作可能な、プロセッサコアの性能をスケーリングするのに適切なメンバーをプログラムのセットから選択し、選択プログラムを定義し、プログラムの前記セットが、性能スケーリングアルゴリズムとパラメータのそれぞれのセットとのそれぞれの組合せによって定義される、ステップと、
    開始手順に応答して、前記モバイルデバイス上で動作可能なプロセッサに前記選択プログラムをロードするステップと、
    前記モバイルデバイスの使用を監視して、プログラムの前記セットからの交換プログラムによって前記選択プログラムを交換すべきであるということを示す状況を特定するステップと、
    ランタイム中に、前記交換プログラムによって前記選択プログラムを交換するステップと
    を含む、コンピュータプログラム。
  25. メンバーを選択するステップが、階層的に構成されたファイルシステムを検索するステップを含む、請求項24に記載のコンピュータプログラム。
  26. 前記モバイルデバイスの使用を監視するステップが、アクティブなプロセスのリストを維持するステップを含む、請求項24に記載のコンピュータプログラム。
  27. 前記モバイルデバイスの使用を監視するステップが、アクティブなリソースのリストを維持するステップを含む、請求項24に記載のコンピュータプログラム。
  28. 前記モバイルデバイスの使用を監視するステップが、操作者のインターフェースから入力を受け取るステップを含む、請求項24に記載のコンピュータプログラム。
JP2013529144A 2010-09-16 2011-07-08 性能スケーリングアルゴリズムのセットを公開して管理するためのモバイルデバイスおよび方法 Active JP5743245B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/883,426 US8510740B2 (en) 2010-09-16 2010-09-16 System and method of performing dynamic voltage and frequency scaling operations on a mobile device
US12/883,426 2010-09-16
PCT/US2011/043285 WO2012036777A1 (en) 2010-09-16 2011-07-08 A mobile device and method for exposing and managing a set of performance scaling algorithms

Publications (2)

Publication Number Publication Date
JP2013542491A true JP2013542491A (ja) 2013-11-21
JP5743245B2 JP5743245B2 (ja) 2015-07-01

Family

ID=44534613

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013529144A Active JP5743245B2 (ja) 2010-09-16 2011-07-08 性能スケーリングアルゴリズムのセットを公開して管理するためのモバイルデバイスおよび方法

Country Status (6)

Country Link
US (1) US8510740B2 (ja)
EP (1) EP2616899A1 (ja)
JP (1) JP5743245B2 (ja)
KR (1) KR101461459B1 (ja)
CN (1) CN103154853B (ja)
WO (1) WO2012036777A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8671413B2 (en) * 2010-01-11 2014-03-11 Qualcomm Incorporated System and method of dynamic clock and voltage scaling for workload based power management of a wireless mobile device
US10169484B2 (en) * 2010-09-23 2019-01-01 Fisher-Rosemount Systems, Inc. Methods and apparatus to manage process control search results
US20120240125A1 (en) * 2011-03-18 2012-09-20 Qnx Software Systems Co System Resource Management In An Electronic Device
KR101991682B1 (ko) * 2012-08-29 2019-06-21 삼성전자 주식회사 Dvfs 제어 방법 및 이를 이용한 시스템-온 칩
US9513688B2 (en) 2013-03-16 2016-12-06 Intel Corporation Measurement of performance scalability in a microprocessor
US9304573B2 (en) * 2013-06-21 2016-04-05 Apple Inc. Dynamic voltage and frequency management based on active processors
JP6175980B2 (ja) * 2013-08-23 2017-08-09 富士通株式会社 Cpuの制御方法、制御プログラム、情報処理装置
WO2015112140A1 (en) * 2014-01-22 2015-07-30 Empire Technology Development, Llc Detection of malware through voltage measurements of field programmable gate array
US9606605B2 (en) 2014-03-07 2017-03-28 Apple Inc. Dynamic voltage margin recovery
US10228751B2 (en) 2014-08-06 2019-03-12 Apple Inc. Low power mode
US9647489B2 (en) 2014-08-26 2017-05-09 Apple Inc. Brownout avoidance
US9665161B2 (en) * 2014-08-27 2017-05-30 Mediatek Inc. Method and computer-readable medium for dynamically managing power of multi-core processor
KR102239356B1 (ko) 2015-02-17 2021-04-13 삼성전자주식회사 클록 제어 유닛 또는 전원 제어 유닛을 포함하는 저장 장치와 메모리 시스템, 그리고 그것의 동작 방법
KR102316441B1 (ko) 2015-04-14 2021-10-25 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US20170147355A1 (en) * 2015-11-24 2017-05-25 Le Holdings (Beijing) Co., Ltd. Method and system for accelerating intelligent terminal boot speed
JP2018106591A (ja) * 2016-12-28 2018-07-05 ルネサスエレクトロニクス株式会社 半導体装置、動作制御方法、及びプログラム
US10817307B1 (en) * 2017-12-20 2020-10-27 Apple Inc. API behavior modification based on power source health
US11363133B1 (en) 2017-12-20 2022-06-14 Apple Inc. Battery health-based power management
US10595191B1 (en) 2018-12-06 2020-03-17 At&T Intellectual Property I, L.P. Mobility management enhancer

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366351A (ja) * 2001-06-06 2002-12-20 Nec Corp スーパースカラ・プロセッサ
JP2004164643A (ja) * 2002-11-12 2004-06-10 Arm Ltd データ処理システムにおける実行レベル設定
JP2004164642A (ja) * 2002-11-12 2004-06-10 Arm Ltd データ処理システムにおけるピーク・レベル選択
US20070245163A1 (en) * 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems
JP2008287592A (ja) * 2007-05-18 2008-11-27 Handotai Rikougaku Kenkyu Center:Kk マルチプロセッサ制御装置とその制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681336B1 (en) 1999-06-18 2004-01-20 Kabushiki Kaisha Toshiba System and method for implementing a user specified processing speed in a computer system and for overriding the user specified processing speed during a startup and shutdown process
US7082521B1 (en) 2000-08-24 2006-07-25 Veritas Operating Corporation User interface for dynamic computing environment using allocateable resources
US8041436B2 (en) 2002-04-18 2011-10-18 Cleveland State University Scaling and parameterizing a controller
US7100056B2 (en) 2002-08-12 2006-08-29 Hewlett-Packard Development Company, L.P. System and method for managing processor voltage in a multi-processor computer system for optimized performance
US7050798B2 (en) 2002-12-16 2006-05-23 Microsoft Corporation Input device with user-balanced performance and power consumption
US6711447B1 (en) 2003-01-22 2004-03-23 Intel Corporation Modulating CPU frequency and voltage in a multi-core CPU architecture
US7093147B2 (en) * 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
WO2007066058A1 (en) 2005-12-06 2007-06-14 Arm Limited Energy management
US8381215B2 (en) 2007-09-27 2013-02-19 Oracle America, Inc. Method and system for power-management aware dispatcher
US8010815B2 (en) 2008-05-01 2011-08-30 International Business Machines Corporation Computational device power-savings

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366351A (ja) * 2001-06-06 2002-12-20 Nec Corp スーパースカラ・プロセッサ
JP2004164643A (ja) * 2002-11-12 2004-06-10 Arm Ltd データ処理システムにおける実行レベル設定
JP2004164642A (ja) * 2002-11-12 2004-06-10 Arm Ltd データ処理システムにおけるピーク・レベル選択
US20070245163A1 (en) * 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems
JP2008287592A (ja) * 2007-05-18 2008-11-27 Handotai Rikougaku Kenkyu Center:Kk マルチプロセッサ制御装置とその制御方法

Also Published As

Publication number Publication date
KR101461459B1 (ko) 2014-11-13
US20120072919A1 (en) 2012-03-22
US8510740B2 (en) 2013-08-13
CN103154853B (zh) 2016-08-10
CN103154853A (zh) 2013-06-12
WO2012036777A1 (en) 2012-03-22
EP2616899A1 (en) 2013-07-24
JP5743245B2 (ja) 2015-07-01
KR20130044374A (ko) 2013-05-02

Similar Documents

Publication Publication Date Title
JP5743245B2 (ja) 性能スケーリングアルゴリズムのセットを公開して管理するためのモバイルデバイスおよび方法
JP5568689B2 (ja) 性能スケーリングアルゴリズムのセットの構成を最適化するためのシステムおよび方法
JP5734505B2 (ja) ポータブルコンピューティングデバイスのマルチコアプロセッサにおける複数のコアへの電力を動的に制御するための方法およびシステム
KR101799253B1 (ko) 다중 클러스터 이종 프로세서 아키텍처에서 동적 캐시 확장을 제공하기 위한 시스템 및 방법
JP6591971B2 (ja) チップ上のマルチプロセッサシステムにおけるアイドル状態最適化のためのシステムおよび方法
US8689037B2 (en) System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
US10064141B2 (en) Core frequency/count decision-based thermal mitigation optimization for a multi-core integrated circuit
KR20120101712A (ko) 멀티코어 중앙 프로세싱 유닛에서의 복수의 코어들을 온도에 기초하여 동적으로 제어하는 시스템 및 방법
JP5649254B2 (ja) ポータブルコンピューティングデバイスのプロセッサがスリープ状態に迅速に入りスリープ状態から迅速に出るための方法およびシステム
KR20120086378A (ko) 보장된 정상 상태 데드라인을 가진 중앙 처리 장치 전력을 제어하는 시스템 및 방법
JP2013543698A (ja) モバイルデバイスにおける作業負荷予測子の有効性を測定するためのシステムおよび方法
CN117539614A (zh) 资源调度方法和电子设备
JP5460883B2 (ja) ワークロードの要求に基づいて動的なクロックおよび電圧切替えアルゴリズムを調整するシステムおよび方法
CN116027880B (zh) 资源调度方法和电子设备
CN112860352A (zh) 一种应用程序的加载方法、装置、存储介质及终端
CN116028005B (zh) 音频会话获取方法、装置、设备和存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150330

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150423

R150 Certificate of patent or registration of utility model

Ref document number: 5743245

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250