(57)【特許請求の範囲】
【請求項１】
ポータブルコンピューティングデバイス(PCD)の電力領域における電力消費を管理するための方法であって、
ピーク動的電力しきい値を初期レベルに設定するステップであって、ピーク動的電力しきい値は、作業負荷処理のためにシステムオンチップ(SoC)の電力領域に供給される電力の割振りを決定する、ステップと、
前記SoCの1つまたは複数の処理構成要素の温度を監視するステップと、
前記1つまたは複数の処理構成要素に供給される電圧レベルを監視するステップと、
前記SoCの前記1つまたは複数の処理構成要素に割り振られてもよい電力の残りの量を表す前記ピーク動的電力しきい値の利用可能なレベルを計算するステップであって、前記利用可能なレベルが、前記1つまたは複数の処理構成要素と関連する、前記監視される温度および電圧レベルから計算されるリーク電力レベルに基づくものである、計算するステップと、
前記ピーク動的電力しきい値の前記利用可能なレベルが前記ピーク動的電力しきい値の前記初期レベルとは異なると決定するステップと、
前記ピーク動的電力しきい値を前記利用可能なレベルに調整するステップと、
前記調整されたピーク動的電力しきい値に基づいて、前記SoCの前記処理構成要素のうちの1つまたは複数の中の1つまたは複数の機能ブロックのためにスロットリングレベルへの調整をトリガするステップと
を含む、方法。
【請求項２】
前記電力領域への実際の電力供給レベルを示す1つまたは複数の電力レベルパラメータを監視するステップをさらに含み、
前記ピーク動的電力しきい値の利用可能なレベルを計算するステップが、前記計算を前記電力領域への前記実際の電力供給レベルに基づかせるステップをさらに含む、
請求項1に記載の方法。
【請求項３】
前記1つまたは複数の電力レベルパラメータが、スイッチングモード電源装置への入力電圧、電源タイプ、アクティブなスイッチングモード電源装置の数、スイッチングモード電源装置の出力電圧、電力管理集積回路に関連する温度、およびそれらの組合せからなるグループから選択される、請求項2に記載の方法。
【請求項４】
前記1つまたは複数の処理構成要素が、グラフィカル処理装置(GPU)、カメラサブシステム、中央処理装置(CPU)、モデム、またはそれらの組合せからなるグループから選択される、請求項1に記載の方法。
【請求項５】
スロットリングレベルへの前記調整が、動作周波数を低減させるステップ、または実行スループットを低減させるステップのうちの一方を含む、請求項1に記載の方法。
【請求項６】
スロットリングレベルへの前記調整が、動作周波数を増加させるステップ、または実行スループットを増加させるステップのうちの一方を含む、請求項1に記載の方法。
【請求項７】
スロットリングレベルへの前記調整が、動作周波数および前記電力領域に供給される電圧を低減させるステップをさらに含む、請求項1に記載の方法。
【請求項８】
前記処理構成要素のうちの1つまたは複数の中の1つまたは複数の機能ブロックのために前記スロットリングレベルへの調整をトリガするステップが、前記1つまたは複数の機能ブロックの設定をルックアップテーブルから決定するステップを含む、請求項1に記載の方法。
【請求項９】
ポータブルコンピューティングデバイス(PCD)の電力領域における電力消費を管理するためのコンピュータシステムであって、
ピーク動的電力しきい値を初期レベルに設定するための手段であって、ピーク動的電力しきい値は、作業負荷処理のためにシステムオンチップ(SoC)の電力領域に供給される電力の割振りを決定する、手段と、
前記SoCの1つまたは複数の処理構成要素の温度を監視するための手段と、
前記1つまたは複数の処理構成要素に供給される電圧レベルを監視するための手段と、
前記SoCの前記1つまたは複数の処理構成要素に割り振られてもよい電力の残りの量を表す前記ピーク動的電力しきい値の利用可能なレベルを計算するための手段であって、前記利用可能なレベルが、前記1つまたは複数の処理構成要素と関連する、前記監視される温度および電圧レベルから計算されるリーク電力レベルに基づくものである、計算するための手段と、
前記ピーク動的電力しきい値の前記利用可能なレベルが前記ピーク動的電力しきい値の前記初期レベルとは異なると決定するための手段と、
前記ピーク動的電力しきい値を前記利用可能なレベルに調整するための手段と、
前記調整されたピーク動的電力しきい値に基づいて、前記SoCの前記処理構成要素のうちの1つまたは複数の中の1つまたは複数の機能ブロックのためにスロットリングレベルへの調整をトリガするための手段とを備える、コンピュータシステム。
【請求項１０】
前記電力領域への実際の電力供給レベルを示す1つまたは複数の電力レベルパラメータを監視するための手段をさらに備え、
前記ピーク動的電力しきい値の利用可能なレベルを計算することが、前記計算を前記電力領域への前記実際の電力供給レベルに基づかせることをさらに含む、
請求項9に記載のコンピュータシステム。
【請求項１１】
前記1つまたは複数の電力レベルパラメータが、スイッチングモード電源装置への入力電圧、電源タイプ、アクティブなスイッチングモード電源装置の数、スイッチングモード電源装置の出力電圧、電力管理集積回路に関連する温度、およびそれらの組合せからなるグループから選択される、請求項10に記載のコンピュータシステム。
【請求項１２】
スロットリングレベルへの前記調整が、動作周波数を低減させること、または実行スループットを低減させることのうちの一方を含む、請求項9に記載のコンピュータシステム。
【請求項１３】
スロットリングレベルへの前記調整が、動作周波数を増加させること、または実行スループットを増加させることのうちの一方を含む、請求項9に記載のコンピュータシステム。
【請求項１４】
スロットリングレベルへの前記調整が、動作周波数および前記電力領域に供給される電圧を低減させることをさらに含む、請求項9に記載のコンピュータシステム。
【請求項１５】
ポータブルコンピューティングデバイス内のプロセッサに請求項１から8のいずれか一項に記載の方法を実行させるように動作可能なコンピュータ可読プログラマブル記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
ポータブルコンピューティングデバイスにおけるピーク動的電力管理のためのシステムおよび方法に関する。
【背景技術】
【０００２】
ポータブルコンピューティングデバイス(「PCD」)は、個人レベルおよび専門レベルにおいて人々に必要なものになりつつある強力なデバイスである。PCDの例には、携帯電話、携帯情報端末(「PDA」)、ポータブルゲームコンソール、パームトップコンピュータ、および他のポータブル電子デバイスが含まれる場合がある。ユーザがPCDにますます依存するようになるにつれて、より多くの、およびより良い機能についての要求が増加している。同時に、ユーザは、より多くの、およびより良い機能の追加のために、サービス品質(「QoS」)および全体的なユーザエクスペリエンスが損なわれないことも期待している。
【０００３】
一般的に、PCDにより多くのより優れた機能を設けることは、より大きく、よりロバストな電力管理集積回路(「PMIC」)、および/またはより多くのmA-Hrのバッテリー容量を出力することができるより大きいバッテリーを使用するように、設計者を駆り立てる。バッテリーおよびPMICは、PCDにおける電力消費の「最悪状況」のシナリオに合わせた大きさにされてもよい。しかしながら、PCD設計においては、より大きいバッテリーまたはよりロバストなPMICを搭載することをしばしば不可能にする、より小さいフォームファクタを好む傾向がある。さらに、利用可能なバッテリー技術のmA-Hr密度は停滞しているので、所与のサイズでより高い電力密度のバッテリーを搭載することは、もはや追加の機能をサポートするための解決にはならない。そうではなく、PMICおよびバッテリーを大型にすることなく、今日のPCDにおける追加の機能に対応するためには、限られた量の利用可能な電力供給は、それが効率的に活用され、ユーザエクスペリエンスが最適化されるように管理されなければならない。
【０００４】
処理構成要素など、一般的なシステムオンチップ(「SoC」)上の電力消費構成要素は、PMICによって供給され、電圧調節器によって調節される母線(power rail)から電力を得る。処理構成要素が、電圧調節器の電流しきい値を超えさせる電力供給の増加を要求する場合、電流しきい値を超えることを回避するためのアクションがとられなければならない。たとえば、性能低下および/または完全なデバイス故障を回避するために、電力供給の電流を好適なレベルまで下げようとして、1つまたは複数の処理構成要素の作業負荷および/またはクロック周波数設定値は、低減されてもよい。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
リーク電流がSoC上の処理構成要素の温度の関数であり、動的電流が処理構成要素によって処理される作業負荷の関数である場合、電流しきい値は、リーク電流と、SoCによって消費される動的電流の和によって決定されるので、電力低減措置は、動的電流消費への電力供給の割振りを最適化することによって回避される可能性がある。したがって、当技術分野では、実際のリーク電力消費を顧慮して動的電力バジェットしきい値を調整するシステムおよび方法の必要がある。さらに、当技術分野では、ピーク電流しきい値を超えることなく、ユーザエクスペリエンスが最適化されるように、PMICからの電流供給を管理するシステムおよび方法の必要がある。
【課題を解決するための手段】
【０００６】
ピーク動的電力しきい値を動的に調整するための方法およびシステムの様々な実施形態を開示する。有利には、ピーク動的電力管理のためのソリューションの実施形態は、リアルタイムのリーク電流レベルの推定値および/またはシステムオンチップ(「SoC」)の電力領域への実際の電力供給レベルに基づいて、ピーク動的電力しきい値を最適化する。このようにして、ソリューションの実施形態は、電力領域の総電力消費量(リーク電力消費量+動的電力消費量)が電力供給容量を超える危険を冒すことなく、利用可能な電力供給の最大量が、作業負荷を処理するための動的電力消費に割り振られることを保証する。
【０００７】
ポータブルコンピューティングデバイス(「PCD」)の電力領域における電力消費を管理するための例示的な方法は、ピーク動的電力しきい値を初期レベルに設定することから始める。ピーク動的電力しきい値は、作業負荷処理のためにSoCの電力領域に供給される電力の割振りを決定する。電力領域は、当業者によって理解されるように、電力を消費する1つまたは複数の処理構成要素を含む場合がある。例示的な方法は、次いで、1つまたは複数の処理構成要素の動作温度、ならびに1つまたは複数の処理構成要素に供給される電圧レベルを監視する。監視される動作温度および有効電圧レベルを用いて、本方法は次いで、監視される温度および1つまたは複数の処理構成要素と関連する電圧レベルから計算される推定リーク電力レベルに基づいて、ピーク動的電力しきい値の最適なレベルを計算してもよい。特に、いくつかの実施形態では、実際の電力供給レベルを示すパラメータを監視し、さらに、最適なピーク動的電力しきい値の計算において実際の電力供給レベルを考慮してもよい。ピーク動的電力しきい値の最適なレベルが計算されると、最適なレベルはしきい値の設定レベルと比較されてもよく、異なる場合、ピーク動的電力しきい値は、最適なレベルに調整されてもよい。調整されたしきい値は、次いで、処理構成要素のうちの1つまたは複数のためのスロットリングレベルへの調整をトリガするために使用されてもよい。
【０００８】
図面では、特に明記しない限り、様々な図を通じて、同様の参照番号は、同様の部分を参照している。「102A」または「102B」などの文字指定を伴う参照番号について、文字指定は、同じ図内に存在する2つの同様の部分または要素を区別することができる。参照番号の文字指定は、参照番号が、すべての図において同じ参照番号を有するすべての部分を包含することが意図される場合には、省略されることがある。さらに、文字指定としての小文字「n」の使用は、同じ参照番号を有する任意の数の部品が、ソリューションの所与の実施形態内に含まれる場合があることを示すように意図されている。たとえそうであっても、文字指定としての小文字「n」がないことは、ソリューションの実施形態が任意の特定の数の所与の部品に限定されることを示唆すると解釈されることはない。
【図面の簡単な説明】
【０００９】
【図１】リーク電流消費量および動的電流消費量から生じるシステムオンチップ(「SoC」)による総電流消費量を示すグラフである。
【図２】最悪状況の動的電力消費レベルと最悪状況のリーク電力消費レベルの和が最大電力供給を超えるシステムオンチップ(「SoC」)におけるピーク動的電力(「PDP」)管理方法のいくつかの利点を示すグラフである。
【図３】ポータブルコンピューティングデバイス(「PCD」)におけるシステムオンチップ(「SoC」)に対するピーク動的電力(「PDP」)管理のためのシステムの例示的な実施形態を示す機能ブロック図である。
【図４】図3の例示的なピーク動的電力(「PDP」)管理システムによって使用される場合があるピーク動的電力ルックアップテーブルの例示的な態様を示す図である。
【図５】図3の例示的なピーク動的電力(「PDP」)管理システムのいくつかの態様についてさらなる詳細を示す機能ブロック図である。
【図６】ポータブルコンピューティングデバイス(「PCD」)におけるシステムオンチップ(「SoC」)に対するピーク動的電力(「PDP」)管理のための方法を示す論理フローチャートである。
【図７】ピーク動的電力(「PDP」)管理のための方法およびシステムを実施するための、ワイヤレス電話の形態のポータブルコンピューティングデバイス(「PCD」)の例示的、非限定的な態様の機能ブロック図である。
【図８】ピーク動的電力管理技法と関連するアルゴリズムの適用をサポートするための、図7のポータブルコンピューティングデバイス(「PCD」)の例示的なソフトウェアアーキテクチャを示す概略図である。
【発明を実施するための形態】
【００１０】
「例示的」という語は、本明細書では「例、事例、または例示としての役割を果たすこと」を意味するために使用される。「例示的」として本明細書で説明されるいずれの態様も、排他的であるか、他の態様より好ましいか、または有利であると、必ずしも解釈されるべきでない。
【００１１】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチのような実行可能コンテンツを有するファイルもまた含む場合がある。さらに、本明細書において言及する「アプリケーション」は、開かれる必要のある場合がある文書、またはアクセスされる必要のある他のデータファイルなど、本質的に実行可能ではないファイルもまた含む場合がある。
【００１２】
本明細書で使用される、「構成要素」、「データベース」、「モジュール」、「システム」、「処理構成要素」、「推定器」、「計算機」、「リミッタ」、「調節器」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかであるコンピュータ関連のエンティティを指すものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであってよい。例として、コンピューティングデバイスで実行中のアプリケーションとコンピューティングデバイスの両方が、構成要素であってもよい。1つまたは複数の構成要素は、プロセスおよび/またはスレッド内に存在してもよく、構成要素は、1つのコンピュータ上に局在化される、および/または2つ以上のコンピュータ間で分散されてもよい。さらに、これらの構成要素は、様々なデータ構造を記憶した様々なコンピュータ可読媒体から実行されてもよい。構成要素は、1つまたは複数のデータパケット(たとえば、ローカルシステム、分散システム内の別の構成要素と、および/またはインターネットなどのネットワークにわたって他のシステムと信号により対話する、1つの構成要素からのデータ)を有する信号に従って、ローカルプロセスおよび/またはリモートプロセスによって通信してもよい。
【００１３】
本明細書では、「中央処理装置(「CPU」)」、「デジタル信号プロセッサ(「DSP」)」、および「チップ」という用語は互換的に使用される。さらに、CPU、DSP、またはチップは、一般的に本明細書では「コア」と呼ばれる1つまたは複数の別個の処理構成要素から構成される場合がある。
【００１４】
本明細書では、「作業負荷」、「プロセス負荷」および「プロセス作業負荷」という用語は互換的に使用され、一般に、所与の実施形態の所与の処理構成要素または機能ブロックに関連付けられた処理負担または処理負担の割合を対象にする。上記に定義されたものに加えて、「処理構成要素」または「機能ブロック」は、作業負荷を処理するために電力を消費し、限定はしないが、中央処理装置、グラフィカル処理装置、コア、メインコア、サブコア、処理エリア、ハードウェアエンジン、モデム、カメラサブシステムなど、またはポータブルコンピューティングデバイス内の集積回路の内部もしくは外部にある任意の構成要素であってもよい。
【００１５】
本明細書では、「ピーク電流管理」、「電流管理」、「ピーク電力管理」「電力管理」などの用語は、一般的に、PMICから供給され、SoCに供給される電力の使用を最適化するための措置および/または技法を指す。様々な実施形態の利点は、電流供給が、電圧調節器と関連するピーク電流しきい値を突破することなく、ユーザエクスペリエンスを最適化するために、およびより高いレベルのサービス品質を提供するために、ピーク電力管理技法によって管理され得ることである。
【００１６】
本明細書では、「ポータブルコンピューティングデバイス」(「PCD」)という用語は、バッテリーなどの限られた容量の電源で動作するように構成された任意のデバイスを説明するために使用される。電池で動作するPCDは数十年にわたって使われてきたが、第3世代(「3G」)および第4世代(「4G」)のワイヤレス技術の出現に結び付けられる、充電式電池における技術的進歩により、多数の機能を有する数多くのPCDが可能になった。したがって、PCDは、とりわけ、携帯電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックすなわちリーダ、メディアプレーヤ、上述のデバイスの組合せ、ワイヤレス接続を有するラップトップコンピュータ、ノートブックコンピュータ、ウルトラブックコンピュータ、タブレットパーソナルコンピュータ(「PC」)であってもよい。
【００１７】
一般的に本明細書ではピーク動的電力(「PDP」)管理モジュールなどと呼ぶ例示的な方法およびシステムは、PCDにおける電力供給を監視し、分析し、管理しようと努める。PDPモジュールは、場合によってはモニタモジュールと連動して、電力供給レベル、電圧レベル、およびリーク電流レベルのリアルタイムの評価を顧慮して、ピーク動的電流バジェットを監視し、管理しようと努める。そうする際に、PDPモジュールは、作業負荷処理のためにSoC上の処理構成要素への電力供給割振りを最大にしてもよい。PDPモジュールはまた、総電流需要が調整され、ピーク電流レベルが動的電流バジェット内に維持されるように、クロック周波数または1つもしくは複数の処理構成要素への電圧レベルを変更するために、動的制御および電圧スケーリング(「DCVS」)システムとともに動作してもよい。いくつかの実施形態では、PDPモジュールが、DCVSモジュールによって制御される処理構成要素の動作温度に部分的に基づいて、DCVSモジュールへの入力を決定する場合があることが想定される。
【００１８】
PDPソリューションは、推定シリコーンリーク変化および電力供給容量変化に基づいてピーク動的電力制限および/または動作周波数制限を動的に調整するように動作する、ハードウェア方式もしくはソフトウェア方式のいずれか、またはそれらの組合せであってもよい。そうする際に、PDPソリューションは、消費される総電力が電力供給容量を超えないことを保証しながら、作業負荷処理のために割り振られる電力の量を最大にする。
【００１９】
図1は、リーク電流消費量および動的電流消費量から生じるシステムオンチップ(「SoC」)による総電流消費量を示すグラフ97を示している。グラフ97でわかるように、SoC上の1つまたは複数の機能ブロックによって消費される総電流レベルは、リーク電流消費量と動的電流消費量の和である。当業者は理解するように、リーク電流は、機能ブロックの温度の関数であり、熱エネルギーの発生および/または散逸とともに温度が上がるまたは下がるにつれて緩やかに変化する場合がある。対照的に、動的電力は、機能ブロックによって処理されている作業負荷の関数である。所与の機能ブロックの作業負荷が増えるにつれて、機能ブロックによって消費される動的電流の量もまた増えるはずである。同様に、作業負荷が減るにつれて、その作業負荷を処理している機能ブロックによって消費される動的電力は減る。結果として、短期の作業負荷がSoC上の様々な機能ブロックによって処理されるとき、消費される動的電力の量は、「スパイク」を起こしやすい。
【００２０】
多くのPCDでは、利用可能な電力容量は、極めて短いピーク電力需要のために設計される。グラフ97において、x軸は時間を表し、y軸は(電流消費量のアンペアとして示される)電力消費量を表す。斜線付きパターンで示したグラフ97の下側部分は、シリコンリーク電力に起因する全体的な電力消費量の部分を示す。斜線付きパターンの上方、および総電流トレースの下方に示したグラフ97の上側部分は、動的リークに起因する全体的な電力消費量の部分、すなわち、機能ブロックのクロック制御および周波数設定による総電力消費量を示す。
【００２１】
特に、消費されるリーク電力は、機能ブロックの周波数/クロック制御とは無関係である。リーク電力消費量は、緩やかに変化するが、動的電力消費量は、作業負荷の変化に基づいて急速に変化する。例示的なグラフ97でさらにわかるように、総電流需要は、管理されない場合、(図1のグラフ97では12Aとして示す)最大電流供給を上回るレベルでピークに達する場合がある。
【００２２】
図2は、最悪状況の動的電力消費レベルと最悪状況のリーク電力消費レベルの和が最大電力供給を超えるシステムオンチップ(「SoC」)におけるピーク動的電力(「PDP」)管理方法のいくつかの利点を示す図98を示している。図98の左側に、最大電力供給容量が、上側の水平な点線205Uと、下側の水平な点線205Lとの間のスパンによって表される。当業者によって理解されるように、SoC上の機能ブロックによる電力の需要は、最大電力供給容量内にとどまるように管理されなければならない。
【００２３】
ブロック210および215は、それぞれ、例示的なSoCに対しての、動的電力消費およびリーク電力消費の最悪状況のシナリオを表す。特に、最悪状況の動的電力とリーク電力の和は、最大電力供給容量を超える。したがって、例示的なSoCのPDC設計者は、需要が最大電力供給量を超えないように、SoC上の電力需要を管理しなければならない。
【００２４】
ブロック220および225は、例示的なSoCの総電力需要が最大電力供給を超えないことを保証するための電力管理技法を表す。ブロック220および225によって表される技法については、最悪状況のリーク電力消費225は、電力供給の残り(最大電力供給および最悪状況のリーク電力消費225における差)を動的電力消費に割り振るための最大利用可能電力供給としたまま、仮定される。結果として、ピーク動的電力しきい値は、たとえ実際の最大電力供給が増加しても、および/または実際のリーク電力消費が最悪状況225よりも少なくても、ブロック220によって表される量に制限される。ピーク動的電力しきい値は、いくつかの適用例では過度に制限される場合があるので、ブロック220および225によって表される技法は、利用可能な電力の割振りを最適化せず、したがって(たとえば、処理性能またはスループットに関して測定される)QoSを不必要に悪化させる場合がある。
【００２５】
ブロック230および235もまた、例示的なSoCの総電力需要が最大電力供給を超えないことを保証するための電力測定技法を表す。ブロック230および235によって表される技法については、最悪状況の動的電力消費230は、電力供給の残り(最大電力供給および最悪状況の動的電力消費230における差)をリーク電力消費に割り振るための最大利用可能電力供給としたまま、仮定される。結果として、ピークリーク電力しきい値は、実際の最大電力供給が増えた場合でも、および/または実際の動的電力消費が最悪状況230よりも少ない場合でも、ブロック235によって表される量に制限される。ピークリーク電力しきい値は、いくつかの適用例では過度に制限される場合があるので、ブロック230および235によって表される技法は、リーク電力消費を減らそうとして熱緩和技法の適用を不必要にトリガし、そうする際に、(たとえば、処理性能またはスループットに関して測定される)QoSを不必要に悪化させる場合がある。
【００２６】
ブロック240および245は、本明細書で提案するソリューションによるピーク動的電力(「PDP」)管理のための例示的な方法の適用を表す。ブロック240とブロック245の関係からわかるように、PDP管理ソリューションは、リーク電力消費を顧慮してピーク動的電力しきい値を変えることによって、動的電力消費に割り振られる電力の量を最適化するために機能する。加えて、PDP管理ソリューションのいくつかの実施形態は、利用可能な電力供給の実際の量の変化を考慮に入れる場合もある。特に、リーク電力消費245が、図2の説明図で245Aから245nまで下方に向かうにつれて、動的電力消費240に割り振られる電力供給の量は、240Aから240nまで上方に向かう。このようにして、PDP管理方法が、利用可能な電力供給の最大量が動的電力に割り振られることを保証し、それによって作業負荷を処理し、(たとえば、処理性能またはスループットに関して測定される)高いQoSレベルを維持する能力を最適化してもよい。
【００２７】
図3は、ポータブルコンピューティングデバイス(「PCD」)100におけるシステムオンチップ(「SoC」)102に対するピーク動的電力(「PDP」)管理のためのシステム99Aの例示的な実施形態を示す機能ブロック図である。図3の例示的な説明図でわかるように、電力管理集積回路(「PMIC」)180は、SoC102内に存在する1つまたは複数の例示的な処理構成要素または機能ブロックの各々に電力を供給するように構成される。図示のように、電力は、(バッテリーまたはAC電源などの)電源装置188から調達され、PMIC180によって電圧調節器189を通し、母線190のいくつかの専用セット(図3には1セットしか示していない)を介してSoC102に分配される。特に、((図5に示し、以下で説明する)CPU110またはGPU182の場合にそうなり得るように機能ブロック1のコア0、1、2、および3の各々は、当業者によって理解されるように、それ独自の専用母線190を有してもよい。さらに、処理構成要素内部の任意のコア、サブコア、サブユニットなどは、相補的な構成要素と共通の母線を共有するか、または専用母線190を有してもよく、それゆえ、図3に示された特定のアーキテクチャは本来例示的であり、本開示の範囲を限定しないことを、当業者は認識されよう。
【００２８】
図3の説明図に戻ると、1つまたは複数の温度センサー157Aが、様々な機能ブロックと関連する(接合部温度などの)動作温度を感知し、モニタモジュール114に対して、それらの温度を示す信号を生成するように構成される。モニタモジュール114は、温度信号を監視し、それらをピーク動的電力(「PDP」)モジュール101に提供してもよく、PDPモジュール101は、ルックアップテーブル24を照会するために温度読取値を使用し、機能ブロックの各々に関連する有効リーク電流を決定してもよい。特に、ソリューションのいくつかの実施形態は、母線190を監視しようとして電流センサーを使用する場合があることが想定される。電流センサーは、限定はしないが、母線190を通って流れる電流によって発生する電磁場を測定するためのホール効果型、母線190内の抵抗の両端で測定される電圧低下から電流を計算するための分流抵抗器電流測定型、または当業者に知られている任意のタイプであってもよい。したがって、システムおよび方法の一実施形態において使用される場合があるセンサー157の特定の設計、タイプ、または構成は、それ自体新規である場合があるが、システムおよび方法は、センサー157のいかなる特定のタイプにも限定されない。本質的に、センサー157は、タイプまたは位置にかかわらず、1つまたは複数の機能ブロックに関連するリーク電流消費、および/または電圧調節器189を介してPMIC180に関連する電力供給レベルを推定するためのソリューションの所与の実施形態によって使用される場合がある。
【００２９】
上記で説明したように、モニタモジュール114は、機能ブロックの実際の、ほぼリアルタイムのリーク電力消費、およびPMIC180からの実際の、ほぼリアルタイムの電力供給レベルを示すためにセンサー157によって生成された信号を監視し、受け取ってもよい。特に、モニタモジュール114、およびPDPモジュール101は、SoC102上に存在するように図3の説明図に示しているが、いずれかまたは両方が、ある特定の実施形態ではチップ102を離れて存在する場合があることを、当業者は認識されよう。さらに、PCD100のいくつかの実施形態では、モニタモジュール114および/またはいくつかのセンサー157は、PMIC180に含まれる場合があることを、当業者は認識されよう。
【００３０】
当業者が認識するように、PDPモジュール101および/またはモニタモジュール114の実施形態は、割込みサービスルーチンによって処理されるハードウェアおよび/またはソフトウェアの割込みを含んでもよい。すなわち、実施形態に応じて、PDPモジュール101および/またはモニタモジュール114は、割込みコントローラ回路などの制御出力を有する個別のシステムとしてハードウェアに実装されるか、メモリサブシステムに統合されたファームウェアなどのソフトウェアに実装されてもよい。
【００３１】
図3の説明図に戻ると、モニタモジュール114は、様々な母線に関連付けられた能動構成要素のリーク電力消費レベルを追跡するために、1つまたは複数の温度センサー157Aからの信号を監視する。温度センサー157Aに加えて、モニタモジュール114は、実際の提供される電力供給レベルを決定するために役立つパラメータを認識するために、PMIC180に関連するセンサー157B(図示せず)もまた監視する。モニタモジュール114は、その後、SoC102上に存在している機能ブロックの有効リーク電力消費およびPMIC180から利用可能な実際の電力供給レベルを示す、監視されるデータを中継するためにPDPモジュール101と通信してもよい。有利には、PDPモジュール101は、様々な機能ブロックによる動的電力消費に割り振るための実際の利用可能な電力供給を決定し、次いでその決定に基づいてピーク動的電流しきい値を調整するために、監視されるデータを使用してもよい。調整されたピーク動的電流しきい値は、処理構成要素の動的制御および電圧スケーリングの当業者によって理解されるように、機能ブロックを最適な作業負荷処理レベルにスロットリングするように、動的制御および電圧スケーリング(DCVS)モジュール26をトリガするために使用されてもよい。DCVSモジュール26によるスロットリング調整の適用を通して、PDPモジュール101は、機能ブロックの電流消費を動的で最適化されたピーク電流しきい値の下に維持することによってユーザエクスペリエンスを効果的に最適化してもよい。
【００３２】
図4は、図3の例示的なピーク動的電力(「PDP」)管理システム99Aによって使用される場合があるピーク動的電力ルックアップテーブル24の例示的な態様を示す。図3に関して説明し、図4の上部で繰り返すように、PDPモジュール101は、モニタモジュール114から入力を受け取り、入力は、有効リーク電力消費および動的電力割振りを含むリアルタイムの動的電力バジェットを決定するために使用されてもよい。動的電力割振りを使用して、PDPモジュール101は、様々な機能ブロックのための作業負荷容量が最適化され得るように、ピーク電流しきい値を調整してもよい。
【００３３】
実際のリーク電力レベルの推定から導出される動的電力バジェット計算を使用して、PDPモジュール101は、様々な機能ブロックのしきい値設定を決定するためにルックアップテーブル24を照会してもよい。図5は、図3の例示的なピーク動的電力(「PDP」)管理システム99のいくつかの態様についてさらなる詳細を示す機能ブロック図である。図4および図5を参照して、例示的なテーブルに対して、PDPモジュール101は、GPU182のピーク電力しきい値は4Wと5Wの間であると決定したと仮定する(特に、いくつかの実施形態では、ピーク電流しきい値は一定の範囲内であると決定される場合もあり、当業者には理解されるように、電力および電流への言及は、本明細書で説明するソリューションのコンテキスト内で互換性のあるものであってもよい)。テーブルを使用して、PDPモジュール101は、作業負荷処理レベルを最適化するために(たとえば、シェーダプロセッサ、テクスチャプロセッサなどの)GPU182の様々な機能ブロックを設定してもよい。たとえば、PDPモジュール101は、機能ブロック#1が10フレーム毎秒の作業負荷処理レベルに設定されるようにし、機能ブロック#2が20フレーム毎秒に設定されるようにするなどであってもよい。別の例では、PDPモジュール101は、機能ブロック#1がCPU110に関連するコアであった場合、機能ブロック#1が100万命令毎秒(「MIPS」)に基づく作業負荷処理レベルに設定されるようにしてもよい。
【００３４】
図5の説明図は、システム99の3つの主要な構成要素、PMIC180、PDPモジュール101、および電力領域(たとえば、GPU182)を含む。上記で説明したように、PMIC180は、SoC102上に存在する電力領域に電力を供給する。また、PDPモジュール101は、作業負荷処理のために電力領域に割り振られる電力の量を最適化する(すなわち、動的電力バジェットを最適化する)ために、その電力供給のピーク電流しきい値を調整する。
【００３５】
図5に示すように、(バッテリー188Aまたはバッテリー188Bとして示す)電源は、当業者によって理解されるように、バッテリー188AまたはACアダプタ188Bの形態であってもよい。PMIC180は、SMPS189AおよびSMPS189として示す1つまたは複数のスイッチングモード電源装置(電圧調節器)を介してSoC102上の電力領域に電力を供給する。特に、スイッチングモード電源装置(「SMPS」)189を介して電力領域に供給される電力は、限定はしないが、SMPS入力電圧、電源タイプ、電力領域に割り振られるSMPSの数、PMIC180の温度、様々なSMPSの出力電圧などを含む、任意の数のファクタに応じて変わる場合がある。したがって、PMIC180は、モニタモジュール114(図示せず)とともに機能する電力供給能力推定器181を含んでもよく、または、ファクタを監視し、ファクタ読取値に基づいて電力領域への実際の電力供給レベルを推定するためにそれ独自のモニタモジュールを含む。
【００３６】
電力供給能力推定器181は、PMIC180から出てPDPモジュール101に向かう最大電力供給レベル(または、場合によっては、最大電流レベル)を示してもよい。
【００３７】
引き続き図5に関して、最大電力供給レベルは、動的電力バジェット計算機184に示される。動的電力バジェット計算機184はまた、リーク電力推定器185から、有効リーク電力レベル推定値を受け取ってもよく、リーク電力推定器185は、DCVSモジュール26からの有効電圧入力、温度センサー157Cからの温度入力、およびeFuse186からの照会されたIDDQ仕様リークに基づいて、有効リーク電力レベルを推定していてもよい。eFuse186は、当業者によって理解されるように、ROM112に存在してもよい。さらに、当業者によって理解されるように、温度読取値および電圧レベルは、予想IDDQリーク電流レベル[Ileakage = IDDQ*(em*(V-Vref)+n*(Tj-Tref))]を決定するために使用されてもよい。
【００３８】
動的電力バジェット計算機184に戻ると、動的電力バジェット計算機184は、動的電力消費に割り振られてもよい実際の電力供給の量[Imax-P_leakage = P_remain]を計算してもよい。動的電力割振りは、次いで、動作周波数リミッタ183およびピーク電力需要(「PPD」)しきい値コントローラ179に提供され、PPDしきい値コントローラ179が、その作業負荷利用を統制するために電力領域の性能調節器187によって利用されるPPDしきい値設定を調整してもよい。
【００３９】
動作周波数リミッタ183は、推定される実際の電力供給レベルに基づいて最大周波数およびビンステップアップリミット(step up limit)を調整し、ちょうどそれだけをDCVSモジュール26に示してもよい。DCVSモジュール26は、電力領域の周波数を変調してもよい。さらに、電力領域の作業負荷の量が、PPDしきい値コントローラ179によって設定された動的電力バジェットを超える場合には、周波数に加えて電圧を下げるために、DCVSモジュール26にトリガ信号が戻されてもよい。そうする際に、電力領域は、大幅に減少した周波数のためにより低い電圧で動作することができてもよい。
【００４０】
図6は、ポータブルコンピューティングデバイス(「PCD」)100におけるシステムオンチップ(「SoC」)102に対するピーク動的電力(「PDP」)管理のための方法600を示す論理フローチャートである。方法600は、ブロック605において、最初の動的電力バジェットしきい値(「ST」)の設定とともに始まる。動的電力バジェットしきい値は、限定はしないが、ワットまたはアンペアなど、電力消費量を示す電気測定値の任意の単位に関連するものであってもよい。また、動的電力バジェットしきい値は、単一の機能ブロックまたは機能ブロックの組合せを含む、SoC102上の電力領域に関連するものであってもよい。作業負荷を処理するために電力領域に提供される電力の量は、動的電力バジェットしきい値によって規定され、しきい値を超える場合、1つまたは複数の機能ブロックの周波数設定および/または電圧設定を下に調整するために、DCVSモジュール26がトリガされ得るようにする。
【００４１】
ブロック610において、動的電力バジェットしきい値が設定されると、モニタモジュール114および/またはPDPモジュール101は、電力供給レベルインジケータ、電力領域と関連する動作温度、電力領域に供給される電圧などを監視してもよい。次に、ブロック615において、電力供給レベルインジケータに基づいて、PDPモジュール101は、PMIC180から電力領域に提供されている実際の電力供給レベルを決定してもよい。ブロック620において、電力領域の動作温度に基づいて、PDPモジュール101は、機能ブロックのリーク電流により電力領域によって消費されている電力の量を推定してもよい。実際の電力供給レベルおよび推定されるリーク電流消費量に基づいて、ブロック625において、PDPモジュール101は、動的電力消費に割り振られてもよい電力供給の残りの量、すなわち、作業負荷を処理するために使用されてもよい電力を決定してもよい。残りの電力バジェットを使用して、最適な動的電力バジェットしきい値(「OT」)が決定されてもよい。
【００４２】
OTが決定されると、決定ブロック630において、PDPモジュール101はOTを、以前に設定された動的電力バジェットしきい値STと比較してもよい。STとOTとの間に著しい差がない場合、「no」分岐をたどってブロック610に戻り、様々なパラメータはさらに監視されてもよい。しかしながら、OTがSTとは異なる場合、「yes」分岐をたどってブロック635に向かい、動的電力バジェットしきい値は計算されたOTに変更されてもよい。方法600は、次いで、ブロック640に進み、DCVSモジュール26は、新しいOT電力バジェットしきい値に基づいて1つまたは複数の機能ブロックに対して周波数および/または電圧設定を変更してもよい。電力供給レベルが変わる、および/または電力領域のリーク電流消費量が変わる場合は、その後計算されるOTごとにOTが変更され得るように、方法600は戻って、繰り返す。このようにして、ピーク動的電力管理方法は、所与の時点で最大利用可能電力供給ヘッドルームが作業負荷処理に割り振られ、それによって、PCD100のユーザによって体験される(たとえば、処理性能またはスループットに関して測定される)QoSを最適化することを保証してもよい。
【００４３】
図7は、ピーク動的電力(「PDP」)管理のための方法およびシステムを実施するための、ワイヤレス電話の形態のポータブルコンピューティングデバイス(「PCD」)100の例示的、非限定的な態様の機能ブロック図である。図示のように、PCD100は、互いに結合されたマルチコア中央処理装置(「CPU」)110とアナログ信号プロセッサ126とを含むSoC102を含む。当業者によって理解されるように、CPU110は、第0のコア222、第1のコア224、および第Nのコア230を備えてもよい。さらに、当業者によって理解されるように、CPU110の代わりに、デジタル信号プロセッサ(「DSP」)が採用されてもよい。
【００４４】
一般に、ピーク動的電力(「PDP」)モジュール101は、モニタモジュール114と連動して、リーク電流消費レベル、電力供給レベルを監視することと、最適な動的電流バジェットを決定することと、PCD100がその電力消費を最適化し、高いレベルの機能を維持するのを助けるために、ピーク電流管理技法を適用することとを担ってもよい。さらに、PDPモジュール101は、ピーク動的電流しきい値への適切な調整を決定するとき、電力領域内の1つまたは複数の処理構成要素または機能ブロックの動作温度を考慮してもよい。
【００４５】
モニタモジュール114は、オンチップシステム102全体に分散する複数の稼働中のセンサー157および/またはPMIC180、PCD100のCPU110、ならびにPDPモジュール101と通信する。いくつかの実施形態では、モニタモジュール114は、コア222、224、230に一意に関連付けられた電流消費率について、電力センサー157Bを監視し、PDPモジュール101および/またはデータベース(メモリ112に存在してもよい)に電力消費データを送信することもある。PDPモジュール101は、電圧調節器189を通る電力のピーク電流しきい値が最適なレベルに調整されるように、SoC102上に存在する処理構成要素に対する利用可能な動的電流バジェットを決定するために、モニタモジュール114とともに動作してもよい。
【００４６】
図7に示すように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130は、デジタル信号プロセッサ110に結合される。オンチップシステム102の外部にあるタッチスクリーンディスプレイ132は、ディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。PDPモジュール101は、たとえば、コア222、224、230用の温度および電圧レベルを監視し、DCVSモジュール26とともに動作して、作業負荷処理のためにコアによって消費される電力を管理してもよい。
【００４７】
PCD100は、ビデオエンコーダ134、たとえば、位相反転線(「PAL」)エンコーダ、順次式カラーメモリ(「SECAM」)エンコーダ、全国テレビジョン方式委員会(「NTSC」)エンコーダ、または任意の他のタイプのビデオエンコーダ134をさらに含んでもよい。ビデオエンコーダ134は、マルチコア中央処理装置(「CPU」)110に結合される。ビデオ増幅器136が、ビデオエンコーダ134およびタッチスクリーンディスプレイ132に結合される。ビデオポート138が、ビデオ増幅器136に結合される。図3に示すように、ユニバーサルシリアルバス(「USB」)コントローラ140が、CPU110に結合される。また、USBポート142が、USBコントローラ140に結合される。メモリ112および加入者識別モジュール(SIM)カード146も、CPU110に結合されてもよい。さらに、図7に示すように、デジタルカメラ148が、CPU110に結合されてもよい。例示的な態様では、デジタルカメラ148は、電荷結合デバイス(「CCD」)カメラまたは相補型金属酸化膜半導体(「CMOS」)カメラである。
【００４８】
図7にさらに示すように、ステレオオーディオコーデック150が、アナログ信号プロセッサ126に結合されてもよい。さらに、オーディオ増幅器152が、ステレオオーディオコーデック150に結合されてもよい。例示的な態様では、第1のステレオスピーカ154および第2のステレオスピーカ156が、オーディオ増幅器152に結合される。図7は、マイクロフォン増幅器158もステレオオーディオコーデック150に結合されてもよいことを示す。加えて、マイクロフォン160が、マイクロフォン増幅器158に結合されてもよい。特定の態様では、周波数変調(「FM」)ラジオチューナ162が、ステレオオーディオコーデック150に結合されてもよい。また、FMアンテナ164が、FMラジオチューナ162に結合される。さらに、ステレオヘッドフォン166が、ステレオオーディオコーデック150に結合されてもよい。
【００４９】
図7は、無線周波数(「RF」)トランシーバ168がアナログ信号プロセッサ126に結合されてもよいことをさらに示している。RFスイッチ170が、RFトランシーバ168およびRFアンテナ172に結合されてもよい。図7に示すように、キーパッド174が、アナログ信号プロセッサ126に結合されてもよい。また、マイクロフォン付きモノヘッドセット176が、アナログ信号プロセッサ126に結合されてもよい。さらに、バイブレータデバイス178が、アナログ信号プロセッサ126に結合されてもよい。図7はまた、電源装置188、たとえばバッテリーが、PMIC180を通してオンチップシステム102に結合されることを示す。特定の態様では、電源装置188は、充電式DCバッテリー、または交流(「AC」)電源に接続されたAC-DC変換器から導かれるDC電源装置を含む。PMIC180からの電力は、電圧調節器189を介してチップ102に提供される。
【００５０】
CPU110はまた、1つまたは複数の内部のオンチップ熱センサー157A、ならびに、1つまたは複数の外部のオフチップ熱センサー157Cに結合されてもよい。オンチップ熱センサー157Aは、垂直のPNP構造に基づく、通常は相補型金属酸化膜半導体(「CMOS」)超大規模集積(「VLSI」)回路に専用の、1つまたは複数の絶対温度に比例する(「PTAT」)温度センサーを備えることができる。オフチップ熱センサー157Cは、1つまたは複数のサーミスタを備えることができる。熱センサー157Cは、アナログデジタル変換器(「ADC」)コントローラ103でデジタル信号に変換される電圧降下を生じさせる場合がある。しかしながら、本発明の範囲から逸脱することなく、他のタイプの熱センサー157A、157Cを用いることができる。
【００５１】
PDPモジュール101は、CPU110によって実行されるソフトウェアを含んでもよい。しかしながら、本発明の範囲から逸脱することなく、PDPモジュール101はまた、ハードウェアおよび/またはファームウェアから形成されてもよい。
【００５２】
タッチスクリーンディスプレイ132、ビデオポート138、USBポート142、カメラ148、第1のステレオスピーカ154、第2のステレオスピーカ156、マイクロフォン160、FMアンテナ164、ステレオヘッドフォン166、RFスイッチ170、RFアンテナ172、キーパッド174、モノヘッドセット176、バイブレータ178、電源装置188、PMIC180、および熱センサー157Cは、オンチップシステム102の外部にある。しかしながら、モニタモジュール114は、PCD100上で動作可能なリソースのリアルタイム管理を支援するために、アナログ信号プロセッサ126およびCPU110によって、これらの外部デバイスのうちの1つまたは複数から1つまたは複数の指示または信号を受け取ることもできることを理解されたい。
【００５３】
特定の態様では、本明細書で説明する方法ステップのうちの1つまたは複数は、1つまたは複数のPDPモジュール101を形成する、メモリ112に記憶された実行可能命令およびパラメータによって実施されてもよい。PDPモジュール101を形成するこれらの命令は、本明細書で説明する方法を実施するために、ADCコントローラ103に加えて、CPU110、アナログ信号プロセッサ126、または別のプロセッサによって実行されてもよい。さらに、プロセッサ110、126、メモリ112、そこに記憶された命令、またはそれらの組合せは、本明細書で説明する方法ステップのうちの1つまたは複数を実施するための手段として機能してもよい。
【００５４】
図8は、ピーク動的電力管理技法と関連するアルゴリズムの適用をサポートするための、図7のポータブルコンピューティングデバイス(「PCD」)100の例示的なソフトウェアアーキテクチャを示す概略図である。ある電力供給バジェットが決定され、所与の電力領域においてある動作温度が認識されるとき、任意の数のアルゴリズムが、PDPモジュール101によって適用され得る少なくとも1つのピーク動的電力管理技法を形成してもよい、またはその一部であってもよい。
【００５５】
図8に示すように、CPUまたはデジタル信号プロセッサ110は、バス211を介してメモリ112に結合される。上述のように、CPU110は、「n」個のコアプロセッサを有するマルチコアプロセッサである。すなわち、CPU110は、第1のコア222、第2のコア224、および第Nのコア230を含む。当業者には知られているように、第1のコア222、第2のコア224、および第Nのコア230の各々は、専用のアプリケーションまたはプログラムをサポートするために利用可能である。あるいは、1つまたは複数のアプリケーションまたはプログラムは、2つ以上の利用可能なコアにわたる処理のために分散される場合がある。
【００５６】
CPU110は、ソフトウェアおよび/またはハードウェアを備えることができるPDPモジュール101から、コマンドを受け取ることができる。ソフトウェアとして具現化される場合、PDPモジュール101は、CPU110および他のプロセッサによって実行されている他のアプリケーションプログラムにコマンドを発行するCPU110によって実行される命令を含む。たとえば、PDPモジュール101は、SoC102によるリーク電力消費量があるレベルに維持されるように、あるアクティブなアプリケーションプログラムを停止させるようCPU110に命令することができる。
【００５７】
CPU110の第1のコア222、第2のコア224〜第Nのコア230は、単一の集積回路ダイに集積されてもよく、または、複数回路のパッケージにおいて別個のダイに集積もしくは結合されてもよい。設計者は、第1のコア222、第2のコア224〜第Nのコア230を、1つまたは複数の共有キャッシュを介して結合してもよく、バス、リング、メッシュ、およびクロスバートポロジなどのネットワークトポロジを介して、メッセージまたは命令の伝達を実施してもよい。
【００５８】
当技術分野で知られているように、バス211は、1つまたは複数のワイヤード接続またはワイヤレス接続を介した複数の通信経路を含んでもよい。バス211は、簡単にするために省略しているが、通信を可能にするために、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ、および受信機などの、追加の要素を有してもよい。さらに、バス211は、上述の構成要素の間での適切な通信を可能にするために、アドレス、制御、および/またはデータ接続を含んでもよい。
【００５９】
図8に示すように、PCD100によって使用される論理がソフトウェアにおいて実施されるとき、起動ロジック250、管理ロジック260、ピーク動的電力管理インターフェースロジック270、アプリケーションストア280内のアプリケーション、およびファイルシステム290の一部のうちの1つまたは複数が、任意のコンピュータ関連システムまたは方法によって、またはそれと関連して使用するために、任意のコンピュータ可読デバイスまたは媒体に記憶される場合があることに留意されたい。
【００６０】
本明細書の文脈では、コンピュータ可読媒体は、コンピュータ関連のシステムもしくは方法によって、またはそれと関連して使用するために、コンピュータプログラムおよびデータを格納または記憶してもよい、電子式、磁気式、光学式、もしくは他の物理デバイスまたは手段である。様々な論理素子およびデータストアは、コンピュータベースのシステム、プロセッサを含むシステム、または、命令実行システム、装置、もしくはデバイスから命令をフェッチし、命令を実行することができる他のシステムなどの、命令実行システム、装置、もしくはデバイスによって、またはそれと関連して使用するために、任意のコンピュータ可読媒体で具現化することができる。本明細書の文脈では、「コンピュータ可読媒体」は、命令実行システム、装置、もしくはデバイスによって、またはそれと関連して使用するために、プログラムを記憶、通信、伝搬、または搬送することができる任意の手段であってもよい。
【００６１】
コンピュータ可読媒体は、限定はしないがたとえば、電子式、磁気式、光学式、電磁式、赤外線式、または半導体のシステム、装置、デバイス、または伝搬媒体であってもよい。コンピュータ可読媒体のより具体的な例(非包括的なリスト)は、以下のもの、すなわち、1つまたは複数のワイヤを有する電気的接続(電子的)、ポータブルコンピュータディスケット(磁気的)、ランダムアクセスメモリ(RAM)(電子的)、読取り専用メモリ(ROM)(電子的)、消去可能プログラマブル読取り専用メモリ(EPROM、EEPROM、またはフラッシュメモリ)(電子的)、光ファイバー(光学的)、およびポータブルコンパクトディスク読取り専用メモリ(CDROM)(光学的)を含むことになる。プログラムは、たとえば紙または他の媒体の光学走査を介して電子的に取り込まれ、次いで、コンパイルされ、解釈され、または場合によっては、必要に応じて適切な方法で処理され、次いでコンピュータメモリに記憶され得るので、コンピュータ可読媒体は、プログラムが印刷される紙または別の適切な媒体でさえあり得ることに留意されたい。
【００６２】
起動ロジック250、管理ロジック260、および場合によってはピーク動的電力インターフェースロジック270のうちの1つまたは複数がハードウェアにおいて実装される代替実施形態では、様々な論理は、それぞれ当技術分野でよく知られている以下の技術、すなわち、データ信号に論理関数を実行するための論理ゲートを有する個別の論理回路、適切な組合せ論理ゲートを有する特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)などのうちのいずれか、またはそれらの組合せで実装されてもよい。
【００６３】
メモリ112は、フラッシュメモリまたはソリッドステートメモリデバイスなどの不揮発性データ記憶デバイスである。単一のデバイスとして示されるが、メモリ112は、別個のデータストアがデジタル信号プロセッサ(または、追加のプロセッサコア)に結合された分散メモリデバイスであってもよい。
【００６４】
ユーザエクスペリエンスおよび(たとえば、処理性能またはスループットに関して測定される)QoSを最適化するためにピーク動的電力消費量を管理するための例示的な一実施形態では、起動ロジック250は、ピーク動的電力管理のための選択プログラムを選択的に識別し、ロードし、実行するための1つまたは複数の実行可能命令を含む。選択プログラムは、組込みファイルシステム290のプログラムストア296内で見つけることができ、性能スケーリングアルゴリズム297とパラメータのセット298との特定の組合せによって定義される。選択プログラムは、CPU110内のコアプロセッサのうちの1つまたは複数によって実行されると、1つまたは複数のPDPモジュール101およびDCVSモジュール26によって提供される制御信号とともに、モニタモジュール114によって提供される1つまたは複数の信号に従って、動的ピーク電流しきい値を顧慮して最適なレベルに、SoC102による動的電流消費量を維持しようとして、それぞれのプロセッサコアの性能をスケーリングする、または一時停止するように動作することができる。
【００６５】
管理ロジック260は、それぞれのプロセッサコアのうちの1つまたは複数上のピーク動的電力管理プログラムを終了し、ならびに、計算された電流バジェットに基づいて、利用可能なコアのうちの1つまたは複数の電力使用量を管理または制御するためのより適切な交換プログラムを選択的に識別し、ロードし、実行するための、1つまたは複数の実行可能命令を含む。管理ロジック260は、実行時に、またはPCD100が電力供給されデバイスの操作者によって使用されている間に、これらの機能を実行するように構成される。組込みファイルシステム290のプログラムストア296において、交換プログラムが見つけられてもよい。
【００６６】
交換プログラムは、デジタル信号プロセッサ内のコアプロセッサのうちの1つまたは複数によって実行されると、モニタモジュール114によって提供される1つもしくは複数の信号、または様々なプロセッサコアのそれぞれの制御入力で提供される1つもしくは複数の信号に従って、それぞれのプロセッサコアの性能をスケーリングまたは一時停止するように動作することができる。この点について、モニタモジュール114は、PDPモジュール101から発信する制御信号に応答して、イベント、プロセス、アプリケーション、リソース状態の条件、経過時間、温度、電流リークなどの、1つまたは複数のインジケータを提供することができる。
【００６７】
インターフェースロジック270は、組込みファイルシステム290に記憶された情報を観察する、構成する、または場合によっては更新するために、外部入力を提示し、外部入力を管理し、外部入力と相互にやりとりするための1つまたは複数の実行可能命令を含む。一実施形態では、インターフェースロジック270は、USBポート142を介して受け取られる製造業者入力と連動して動作してもよい。これらの入力は、プログラムストア296から削除されるか、またはプログラムストア296に加えられることになる1つまたは複数のプログラムを含むことができる。代替的には、入力は、プログラムストア296内のプログラムのうちの1つまたは複数への編集または変更を含むことができる。さらに、入力は、起動ロジック250および管理ロジック260の一方または両方に対する1つまたは複数の変更、または全体的な交換を特定することができる。例として、入力は、計算された動的電力バジェットがある値を下回るとき、所望のスロットリングアルゴリズムを適用するようPCD100に命令する、管理ロジック260への変更を含んでもよい。
【００６８】
インターフェースロジック270により、製造業者が、PCD100の定義された動作状態の下で、エンドユーザの体験を制御可能に設定し、調整することが可能になる。メモリ112がフラッシュメモリであるとき、起動ロジック250、管理ロジック260、インターフェースロジック270、アプリケーションストア280中のアプリケーションプログラム、または組込みファイルシステム290中の情報のうちの1つまたは複数は、編集され、交換され、または場合によっては変更されてもよい。いくつかの実施形態では、インターフェースロジック270によって、PCD100のエンドユーザまたは操作者は、起動ロジック250、管理ロジック260、アプリケーションストア280中のアプリケーション、データベース中のデータ、および組込みファイルシステム290中の情報を検索、場所特定、変更、または交換することが可能であってもよい。操作者は、結果として構成されたインターフェースを用いて、PCD100の次の起動時に実施されることになる変更を加えることができる。代替的には、操作者は、結果として構成されたインターフェースを用いて、実行時間中に実施される変更を加えることができる。
【００６９】
組込みファイルシステム290は、階層的に構成されたピーク動的電力管理ストア292を含む。この点について、ファイルシステム290は、PCD100が使用する様々なパラメータ298およびピーク動的電力管理アルゴリズム297の構成および管理のための情報を格納するための、その全ファイルシステム容量の確保された部分を含むことができる。
【００７０】
本発明が説明したように機能するために、本明細書で説明したプロセスまたはプロセスフローにおけるいくつかのステップが、他のステップに先行するのは当然である。しかしながら、そのような順序またはシーケンスが本発明の機能を変えない場合、本発明は、説明したステップの順序に限定されない。すなわち、本発明の範囲および趣旨から逸脱することなく、いくつかのステップは、他のステップの前に実行されるか、後に実行されるか、または他のステップと並行して(実質的に同時に)実行されてもよいことを認識されたい。場合によっては、本発明から逸脱することなく、いくつかのステップが省略されてもよく、または実行されなくてもよい。さらに、「それ以降」、「次いで」、「次に」、「後に」などの語は、ステップの順序を制限することは意図していない。これらの語は単に、例示的な方法の説明を通して読者を導くために使用される。
【００７１】
さらに、プログラミングに関する当業者は、たとえば、本明細書におけるフローチャートおよび関連する説明に基づいて、難なく、開示した発明を実装するコンピュータコードを書くことができるか、または実装するのに適したハードウェアおよび/もしくは回路を特定することができる。したがって、特定の1つのセットのプログラムコード命令または詳細なハードウェアデバイスの開示は、本発明の作製方法および使用方法を十分に理解するのに必要であるとは見なされない。特許請求されるコンピュータ実装プロセスの本発明の機能は、上述の説明において、また様々なプロセスフローを例示する場合がある図面と併せて、より詳細に説明されている。
【００７２】
1つまたは複数の例示的な態様では、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。ソフトウェアに実装される場合、機能は、1つもしくは複数の命令もしくはコードとして、コンピュータ可読媒体上に記憶される場合もあり、またはコンピュータ可読媒体上に送信される場合もある。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体との両方を含む。記憶媒体は、コンピュータによってアクセスされる場合がある任意の利用可能な媒体であってもよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または命令またはデータ構造の形で所望のプログラムコードを搬送または記憶するために使用することができ、コンピュータによってアクセスすることができる任意の他の媒体を含んでもよい。
【００７３】
また、いかなる接続も、厳密にはコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【００７４】
ディスク(disk)およびディスク(disc)は、本明細書で使用するときに、コンパクトディスク(disc)(「CD」)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(「DVD」)、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生するが、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲に含まれるべきである。
【００７５】
したがって、選択された態様について図示し詳細に説明したが、以下の特許請求の範囲によって規定されるように、本発明の趣旨および範囲から逸脱することなく、態様において種々の置換および改変が行われる場合があることは理解されよう。
【符号の説明】
【００７６】
26  動的制御および電圧スケーリング(DCVS)モジュール
99  ピーク動的電力(PDP)管理システム
100  ポータブルコンピューティングデバイス(PCD)
101  PDPモジュール
102  システムオンチップ(SoC)
103  アナログデジタル変換器(ADC)コントローラ
110  中央処理装置(CPU)
112  メモリ
114  モニタモジュール
128  ディスプレイコントローラ
130  タッチスクリーンコントローラ
132  タッチスクリーンディスプレイ
134  ビデオエンコーダ
136  ビデオ増幅器
138  ビデオポート
140  USBコントローラ
142  USBポート
146  加入者識別モジュール(SIM)カード
148  デジタルカメラ
150  ステレオオーディオコーデック
152  オーディオ増幅器
154  ステレオスピーカ
156  ステレオスピーカ
157  センサー
157A  オンチップ熱センサー
157B  電力センサー
157C  オフチップ熱センサー
158  マイクロフォン増幅器
160  マイクロフォン
162  周波数変調(FM)ラジオチューナ
164  FMアンテナ
166  ステレオヘッドフォン
168  RFトランシーバ
170  RFスイッチ
172  RFアンテナ
174  キーパッド
176  モノヘッドセット
178  バイブレータ
179  ピーク電力需要(PPD)しきい値コントローラ
180  PMIC
181  電力供給能力推定器
182  GPU
183  動作周波数リミッタ
184  動的電力バジェット計算機
185  リーク電力推定器
186  eFuse
187  性能調節器
188  電源装置
188A  バッテリー
188B  ACアダプタ
189  スイッチングモード電源装置(SMPS)、電圧調節器
211  バス
222  コア
224  コア
230  コア
250  起動ロジック
260  管理ロジック
270  インターフェースロジック
280  アプリケーションストア
290  組込みファイルシステム
292  ピーク動的電力管理ストア
296  プログラムストア
297  アルゴリズム
298  パラメータ
【図１】
0006693958.tif 000002
【図２】
0006693958.tif 000003
【図３】
0006693958.tif 000004
【図４】
0006693958.tif 000005
【図５】
0006693958.tif 000006
【図６】
0006693958.tif 000007
【図７】
0006693958.tif 000008
【図８】
0006693958.tif 000009