(54)【発明の名称】PCD内の電力消費を低減するためにコア電圧レベルを最適化するとともに個々のサブコンポーネントの周波数性能を向上させるための方法およびシステム
(58)【調査した分野】(Int.Cl.,DB名)
ポータブルコンピューティングデバイスのコア電圧レベルを最適化するとともに個々のサブコンポーネントの性能を向上させるための方法であって、前記個々のサブコンポーネントのうちの少なくとも1つの作業負荷が変更されたときに前記ポータブルコンピューティングデバイスのプロセッサによって実行され、
前記ポータブルコンピューティングデバイス内の複数のサブコンポーネントに対して、複数の電圧値のセットを決定するステップであって、前記複数の電圧値のセットのそれぞれは、要求電圧レベルと最適電圧レベルと最大電圧レベルとを備える、ステップと、
前記複数の電圧値のセットに基づいて電圧値の縮小されたセットを計算するステップと、
前記電圧値の縮小されたセットから前記ポータブルコンピューティングデバイスの最適化されたコア電圧レベルを決定するステップと、
前記最適化されたコア電圧レベルに基づいてサブコンポーネントの動作周波数を最適化するステップと
を備える、方法。
少なくとも1つのサブコンポーネントは、カメラ、ディスプレイ、通信バス、ビデオコーダ、ビデオデコーダ、および信号プロセッサのうちの1つを備える、請求項1に記載の方法。
前記ポータブルコンピューティングデバイスは、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレスの接続またはリンクを用いるハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項1に記載の方法。
ポータブルコンピューティングデバイス内の個々のサブコンポーネントのうちの少なくとも1つの作業負荷が変更されたときに前記ポータブルコンピューティングデバイスのコア電圧レベルを最適化するとともに前記個々のサブコンポーネントの性能を向上させるためのコンピュータシステムであって、
前記ポータブルコンピューティングデバイス内の複数のサブコンポーネントに対して複数の電圧値のセットを決定するための手段であって、前記複数の電圧値のセットのそれぞれは、要求電圧レベルと最適電圧レベルと最大電圧レベルとを備える、手段と、
前記複数の電圧値のセットに基づいて電圧値の縮小されたセットを計算するための手段と、
前記電圧値の縮小されたセットから前記ポータブルコンピューティングデバイスの最適化されたコア電圧レベルを決定するための手段と、
前記最適化されたコア電圧レベルに基づいてサブコンポーネントの動作周波数を最適化するための手段と
を備える、コンピュータシステム。
少なくとも1つのサブコンポーネントは、カメラ、ディスプレイ、通信バス、ビデオコーダ、ビデオデコーダ、および信号プロセッサのうちの1つを備える、請求項10に記載のシステム。
コンピュータ可読プログラムコードを含むコンピュータプログラムであって、前記コンピュータ可読プログラムコードは、請求項1〜9のいずれか一項に記載の方法を実施するように実行されるように適合される、コンピュータプログラム。
【発明を実施するための形態】
【0011】
「例示的」という言葉は、本明細書において「一例、事例、または実例として役立つ」ことを意味するように使用される。「例示的」として本明細書で説明するいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきではない。
【0012】
本明細書において、「アプリケーション」という用語はまた、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含む場合がある。さらに、本明細書において参照される「アプリケーション」はまた、オープンされることが必要な場合があるドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルも含む場合がある。
【0013】
「コンテンツ」という用語はまた、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含む場合がある。加えて、本明細書で参照される「コンテンツ」はまた、オープンされることが必要な場合があるドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能でないファイルを含む場合がある。
【0014】
本説明において使用されるときに、「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピュータ関連のエンティティを指すことを意図している。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよい。例として、コンピューティングデバイス上で実行されているアプリケーションとコンピューティングデバイスの両方は、構成要素であってもよい。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在してもよく、構成要素は、1つのコンピュータに局在してもよく、および/または、2つ以上のコンピュータ間に分散されてもよい。加えて、これらの構成要素は、様々なデータ構造を記憶した様々なコンピュータ可読媒体から実行されてもよい。構成要素は、1つまたは複数のデータパケット(たとえば、信号を用いて、ローカルシステム内、分散システム内の別の構成要素と対話し、および/または、インターネットなどのネットワークにわたって他のシステムと対話する1つの構成要素からのデータ)を有する信号に従うなどして、ローカルプロセスおよび/またはリモートプロセスを用いて通信してもよい。
【0015】
本明細書では、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」という用語は、互換的に使用される。第3世代(“3G”)および第4世代(“4G”)のワイヤレス技術の出現とともに、利用可能な帯域幅が拡大されたので、より多くの様々なワイヤレス機能を備えたよりポータブルなコンピューティングデバイスが利用可能になっている。
【0016】
本明細書では、「ポータブルコンピューティングデバイス」(“PCD”)という用語は、バッテリーなどの限られた容量の電源で動作する任意のデバイスを説明するために使用される。何十年もの間バッテリー式のPCDが使用されてきたが、第3世代(“3G”)ワイヤレス技術の出現とともにもたらされた充電式バッテリーの技術的進歩は、複数の機能を有する多数のPCDを可能にした。したがって、PCDは、とりわけ、セルラー電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、上述したデバイスの組合せ、およびワイヤレス接続を有するラップトップコンピュータであってもよい。
【0017】
図1Aを参照すると、この図は、PCD100内の電力消費を低減するために、PCD100のコア電圧レベルを最適化するとともに個々のサブコンポーネントの周波数性能を向上させるための方法およびシステムを実施するための、ワイヤレス電話の形態でのPCD100の例示的で非限定的な態様の機能ブロック図である。図示のように、PCD100は、互いに結合されたマルチコア中央処理装置(“CPU”)110およびアナログ信号プロセッサ126を含むオンチップシステム102を含む。当業者によって理解されるように、CPU110は、第0のコア222、第1のコア224、および第Nのコア230を備えてもよい。当業者によって理解されるように、CPU110の代わりに、デジタル信号プロセッサ(“DSP”)も利用されてもよい。
【0018】
CPU110はまた、1つまたは複数の内部のオンチップ熱センサ157A〜B、ならびに1つまたは複数の外部のオフチップ熱センサ157Cに結合されてもよい。オンチップ熱センサ157A〜Bは、縦型PNP構造に基づき、通常は相補型金属酸化膜半導体(“CMOS”)の超大規模集積(“VLSI”)回路に専用の、1つまたは複数の絶対温度比例(「PTAT」)の温度センサを備えてもよい。オフチップ熱センサ157Cは、1つまたは複数のサーミスタを備えてもよい。熱センサ157は、アナログデジタルコンバータ(“ADC”)(図示せず)を用いてデジタル信号に変換される、電圧降下(および/または、電流)を発生させる場合がある。しかしながら、本発明の範囲から逸脱することなく、他のタイプの熱センサ157が利用されてもよい。
【0019】
図1AのPCD100は、CPU110に結合され、および/またはCPU110上で動作している拡張型電圧アグリゲータ103を含んでもよい。拡張型電圧アグリゲータ103は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せを備えてもよい。電圧オプティマイザ101は、拡張型電圧アグリゲータ103に結合/論理的に結合されてもよい。拡張型電圧アグリゲータ103と同様に、電圧オプティマイザ101は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せを備えてもよい。
【0020】
拡張型電圧アグリゲータ103は、チップ102の上およびチップ102の外の様々なサブコンポーネントからの、電圧「投票(vote)」の収集を担当してもよい。電圧「投票」を総計した後、拡張型電圧アグリゲータ103は、電圧「投票」を絞り込みまたは改善してもよく、その出力を電圧オプティマイザ101へ送信してもよい。電圧オプティマイザは、PCD100にとっての最適なコア電圧レベルを決定し、この最適なコア電圧レベルを電力管理集積回路(“PMIC”)107へ送信する。拡張型電圧アグリゲータ103および電圧オプティマイザ101のさらなる詳細は、
図2に関して以下でより詳細に説明される。
【0021】
周波数性能エンハンサモジュール203は、カメラサブシステム148、モバイルディスプレイ128、130などの各サブシステムの中に存在してもよく、PCD100の実際および現在の電圧レベルを監視してもよい。各周波数性能エンハンサモジュール203は、以下に記載されるように、そのそれぞれのサブシステムの動作周波数を調整してもよい。
【0022】
特定の態様では、本明細書で説明される方法ステップのうちの1つまたは複数は、拡張型電圧アグリゲータ103、電圧オプティマイザ101、および周波数性能エンハンサモジュール203のソフトウェア実施形態を形成する場合がある、メモリ112に記憶された実行可能な命令およびパラメータによって実施されてもよい。拡張型電圧アグリゲータおよび電圧オプティマイザモジュール101、103ならびに周波数性能エンハンサモジュール203を形成するこれらの命令は、CPU110、アナログ信号プロセッサ126、または任意の他のプロセッサによって実行されてもよい。さらに、プロセッサ110、126、メモリ112、そこに記憶された命令、またはそれらの組合せは、本明細書で説明される方法ステップのうちの1つまたは複数を実行するための手段として働く場合がある。
【0023】
PMIC107は、チップ102上に存在する様々なハードウェアコンポーネントへの電力の分配を担当してもよい。PMICは、電源180に結合される。電源180は、バッテリーを備えてもよく、オンチップシステム102に結合されてもよい。特定の態様では、電源は、充電式直流(“DC”)バッテリー、またはAC電源に接続された交流(“AC”)-DC変換器から導かれるDC電源を含んでもよい。
【0024】
図1Aに示すように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130は、マルチコアプロセッサ110に結合される。オンチップシステム102の外部にあるタッチスクリーンディスプレイ132は、ディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。
【0025】
図1Aは、ビデオデコーダ134を含むポータブルコンピューティングデバイス(PCD)の一実施形態を示す概略図である。ビデオデコーダ134は、マルチコア中央処理装置(“CPU”)110に結合される。ビデオ増幅器136は、ビデオデコーダ134およびタッチスクリーンディスプレイ132に結合される。ビデオポート138は、ビデオ増幅器136に結合される。
図1Aに示すように、ユニバーサルシリアルバス(“USB”)コントローラ140は、CPU110に結合される。同様に、USBポート142は、USBコントローラ140に結合される。メモリ112および加入者識別モジュール(SIM)カード146も、CPU110に結合されてもよい。
【0026】
さらに、
図1Aに示すように、デジタルカメラまたはカメラサブシステム148が、CPU110に結合されてもよい。例示的な態様では、デジタルカメラ/カメラサブシステム148は、電荷結合デバイス(“CCD”)カメラまたは相補型金属酸化膜半導体(“CMOS”)カメラである。
【0027】
図1Aにさらに示すように、ステレオオーディオコーデック150は、アナログ信号プロセッサ126に結合されてもよい。その上、オーディオ増幅器152が、ステレオオーディオコーデック150に結合されてもよい。例示的な態様では、第1のステレオスピーカ154および第2のステレオスピーカ156が、オーディオ増幅器152に結合される。
図1Aは、マイクロフォン増幅器158も、ステレオオーディオコーデック150に結合される場合があることを示す。加えて、マイクロフォン160が、マイクロフォン増幅器158に結合されてもよい。
【0028】
特定の態様では、周波数変調(“FM”)ラジオチューナ162が、ステレオオーディオコーデック150に結合されてもよい。同様に、FMアンテナ164が、FMラジオチューナ162に結合される。さらに、ステレオヘッドフォン166が、ステレオオーディオコーデック150に結合されてもよい。
【0029】
図1Aは、無線周波数(“RF”)トランシーバ168が、アナログ信号プロセッサ126に結合される場合があることをさらに示す。RFスイッチ170が、RFトランシーバ168およびRFアンテナ172に結合されてもよい。
図1Aに示すように、キーパッド174が、アナログ信号プロセッサ126に結合されてもよい。同様に、マイクロフォン付きモノヘッドセット176が、アナログ信号プロセッサ126に結合されてもよい。さらに、バイブレータデバイス178が、アナログ信号プロセッサ126に結合されてもよい。
【0030】
図1Aに示すように、タッチスクリーンディスプレイ132、ビデオポート138、USBポート142、カメラ148、第1のステレオスピーカ154、第2のステレオスピーカ156、マイクロフォン160、FMアンテナ164、ステレオヘッドフォン166、RFスイッチ170、RFアンテナ172、キーパッド174、モノヘッドセット176、バイブレータ178、熱センサ157B、および電源180は、オンチップシステム102の外部にある。
【0031】
ここで
図1Bを参照すると、この図は、モバイルフォンなどのポータブルコンピューティングデバイス(“PCD”)100の1つの例示的な実施形態の正面図である。PCD100は、大きなタッチスクリーン132をその中央部分に、およびより小さいキーパッド/ボタン174をデバイス100のより低い第1の端部の近くに有する。「前方/ユーザ」向きカメラ148が、デバイス100の上部の第2の端部の近くに位置する場合がある。タッチスクリーンタイプのモバイルフォン100が示されたが、固定位置に配置される場合があるか、またはデバイス100に対して内向き(隠れた位置に)および外向き(目に見える/使用できる位置に)スライド可能な場合がある専用のキーボードを有するモバイルフォン100などの、他のモバイルフォンタイプが可能であり本開示の範囲内である。
【0032】
図2は、PCD100内の電力消費を低減するために、PCD100のコア電圧レベルを最適化するとともに個々のサブコンポーネント(すなわち、カメラサブシステム148、モバイルディスプレイ128、130、ビデオコーデック134など)の周波数性能を向上させるための、例示的なシステム104を示す機能ブロック図である。システム104は、カメラサブシステム(“CAMSS”)148、モバイルディスプレイ(“MDP”)128、130、システム通信バス220、ビデオコーデック134、およびモバイルデバイス100内の他のサブシステムN(すなわち、それだけには限らないが、アナログ信号プロセッサ126など)を備えてもよい。
【0033】
N個のサブシステムを通してこれらのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)の各々は、(論理的および/または直接的に)拡張型電圧アグリゲータ103に結合される。拡張型電圧アグリゲータ103は、(論理的および/または直接的に)電圧オプティマイザ101に結合される。
【0034】
電圧オプティマイザ101は、コア電圧プラン201に概ね対応する出力として最適電圧レベル215を提供する。コア電圧プラン201は、低いレベルが低い電圧を備え高いレベルが高い電圧を備える第1のレベル(レベル1)、第2のレベル(レベル2)、第3のレベル(レベル3)、および第4のレベル(レベル4)などの複数の電圧レベルを備えてもよい。たとえば、当業者によって理解されるように、第4のレベル(レベル4)は、モバイルデバイス100にとっての「ターボ」動作モードを詳細に追跡してもよい。電圧レベルの数および大きさは、当業者によって理解されるように、増大または低減されてもよく、本開示の範囲内である。コア電圧プラン201に関するこれらの個々の電圧レベルは、電圧オプティマイザ101によって生成される最適化された電圧レベル215に基づいて選択されてもよい。
【0035】
サブシステムの各々--通常はそれぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)内のCPUは、拡張型電圧アグリゲータ103へ送信される複数の電圧投票205を生成してもよい。電圧投票205は、要求電圧レベル(V_req)、最適電圧レベル(V_opt)、および最大電圧レベル(V_limit)を備えてもよい。最大電圧レベル(V_limit)は、サブシステムの現在の電力配分または電圧制約のもとで利用可能な最大電圧を備えてもよい。要求電圧レベル(V_req)は、特定のサブシステムをその現在の作業負荷に対して最小周波数レベルで動作させるために必要とされる最小電圧を備えてもよい。いくつかの例示的な実施形態では、最大電圧レベル(V_limit)は、各サブシステムによって選択/変更/投票されるものとして容認されない場合があることに留意されたい。
【0036】
一方、最適電圧レベル(V_opt)は、サブシステムの現在の温度およびその対応するリーク電流に基づいて、最もエネルギー効率のよい周波数に対する電圧レベルを備えてもよい。当業者によって理解されるように、リーク電流は、一般に、休止(Q)状態(回路/チップがスイッチングされず、入力が静的な値において保持されるとき)で測定された供給電流(“Idd”)、したがってその省略形(“IDDQ”)を備える。最適電圧レベル(V_opt)を決定するために、各サブシステムは、各システム内に記憶された電力モデル207または各サブシステムに記憶されたルックアップテーブル(図示せず)のいずれかを利用してもよい。各電力モデル207またはルックアップテーブルは、リーク電流値(“IDDQ”)、温度値、周波数値、および出力電力推定値を備えてもよい。各サブシステムは、その最適電圧レベル(V_opt)を決定するために、その電力モデル207またはルックアップテーブルを検討する。
【0037】
各サブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)がその3つの電圧投票205を決定すると、それぞれが、その3つの別個の投票を拡張型電圧アグリゲータ103へ送信する。拡張型電圧アグリゲータ103は、単一の要求コア電圧レベル(CX V_req)、単一の最適コア電圧レベル(CX V_opt)、および単一の最大コア電圧レベル(CX V_limit)を備える3つのコア(“CX”)電圧投票の単一のセット210が電圧オプティマイザ101へ通信されるように、投票205を集約または総計する。
【0038】
要求コア電圧レベル(CX V_req)を決定するために、拡張型電圧アグリゲータ103は、この値を以下の式に従って決定する。
【0039】
CX V_req = max(V_req1, V_req2, …, V_req(n)) [式1]
【0040】
ここで、拡張型電圧アグリゲータ103は、すべての利用可能なサブシステムコア電圧レベル(V_req)の最大値を取る。
【0041】
同様に、最大コア電圧レベル(CX V_limit)を決定するために、拡張型電圧アグリゲータ103は、この値を以下の式に従って決定する。
【0042】
CX V_limit = min(V_limit1, V_limit2, …, V_limit(n)) [式2]
【0043】
ここで、拡張型電圧アグリゲータ103は、すべての利用可能なサブシステム最大電圧レベル(V_limit)の最小値を取る。
【0044】
最適コア電圧レベル(CX V_opt)を決定するために、拡張型電圧アグリゲータ103は、この値を以下の式に従って決定する。
【0045】
CX V_opt = function(V_opt1, V_opt2, …, V_opt(n)) [式3]
【0046】
ここで、この値は、利用可能なサブシステム最適電圧レベル(V_opt)のすべてを組み込む関数から導出される。この関数は、各サブシステムの電力消費を重み値として用いた重み付き平均値、または最小MSE(平均二乗誤差)を有する値を備えてもよい。しかしながら、当業者によって理解されるように、他の関数が使用されてもよい。
【0047】
3つのコア(“CX”)電圧投票の単一のセット210を受信した後、電圧オプティマイザ101は、単一のセット210を単一の最適化されたコア電圧(V_opt prime')215に絞り込む。電圧オプティマイザ101は、要求コア電圧レベル(CX V_req)および最大コア電圧レベル(CX V_limit)によって定義される範囲内である最適なコア電圧レベル(CX V_opt)に最も近い電圧を決定することによって、電圧投票の単一のセット210をコア電圧(V_opt prime')に絞り込む。
【0048】
電圧オプティマイザ101は、次いで、単一の最適化されたコア電圧(V_opt prime')215をコア電圧プランセレクタモジュール201へ送信する。コア電圧プランセレクタモジュール201は、(V_opt prime')215に最も近い電圧プランの所定の電圧レベルのうちの1つを選択する。コア電圧プランセレクタモジュール201による選択結果は、PCD100全体のためのコア電圧220となり、電力管理集積回路(PMIC)107へ通信される。
【0049】
いくつかの例示的な実施形態では、いくつかの異なる電圧領域が、PCD100内に共存してもよい。これは、PCD100の中のいくつかのサブコンポーネントが、互いに対して相異なり無関係となる電圧レベルで動作してもよく、複数の電圧オプティマイザ101がPCD100内に存在してもよいように、サブコンポーネントの各セットに対して電圧オプティマイザが存在してもよいことを意味する。
【0050】
コア電圧プランセレクタモジュール201が、このモジュール201が任意であることを示すために、破線を用いて示されている。いくつかの例示的な実施形態では、コア電圧プランセレクタモジュール201の機能/動作は、電圧オプティマイザ101によって実行されてもよく、したがって、当業者によって理解されるように、コア電圧プランセレクタモジュール201は省かれてもよい。
【0051】
コア電圧220が確立されると、カメラサブシステム148、モバイルディスプレイ128、130などの各サブシステムの中に存在してもよい周波数性能エンハンサモジュール203は、監視ライン225(単に概念的/論理的な線であり、PCD100内の物理的な線ではない)によって示されるようなPCD100の実際および現在の電圧レベルを監視してもよい。各周波数性能エンハンサモジュール203は、概念的な監視ライン225によって示されるようなPCD100の現在の電圧レベルを監視することと平行して、そのサブシステムの温度を熱センサ157を用いて監視してもよい。
【0052】
各周波数性能エンハンサモジュール203は、次いで、それぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)の監視された電圧および現在の温度に基づいて、そのサブシステムのリーク電力を推定してもよい。リーク電力がそれぞれのサブシステムに対して推定されると、周波数性能エンハンサモジュール203は、測定されている現在の電圧レベルにおけるエネルギー効率を最大にするために、サブシステムの動作周波数または実際の周波数(F_act)ならびにサブシステムの電力消失継続時間を、この推定されたリーク電力に基づいて最適化してもよい。最適化された動作周波数または実際の周波数(F_act)は、通常、所与のまたは現在のコア電圧レベルにおいて最もエネルギー効率のよい動作周波数である。周波数性能エンハンサモジュール203は、最も効率のよいF_actを決定するためのテーブルにアクセスしてもよい。特定のサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)に対する所与の電圧レベルにおいて利用可能な周波数を列挙している以下のTable 1(表1)を参照する。この例示的なTable 1(表1)では、提示された値はモバイルディスプレイプロセッサ128サブシステムについての値である。各サブシステムは、当業者によって理解されるように、それ自体のテーブル/エントリを有することになる。周波数性能エンハンサモジュール203は、それぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)に対するそれぞれのテーブルに列挙された、現在の電圧レベルにおいてサブシステムに対して利用可能な周波数を使用する計算を実行してもよい。
【表1】
【0053】
たとえば、周波数性能エンハンサモデル203は、PCD100の特定のサブシステムのための動作周波数を、ステップアップまたはステップダウンしてもよい。動作周波数でのそのような調整は、当業者によって理解されるように、PCD100の個々のサブシステムによって消費されるリーク電力を最小限に抑える場合がある。
【0054】
サブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)の動作周波数または実際の周波数(F_act)を最適化するために、それぞれのサブシステムの周波数性能エンハンサモジュール203は、共有電力領域の上でのさらなる電圧マージンを利用し、アイドル時間の間のリークを最小限に抑えるために、サブシステムがPMIC107からの所与の電圧レベルで動作することができる最大の可能な周波数と、電力消失の最長の継続時間とを見つけてもよい。最大の可能な周波数は、次いで、最適化された動作周波数または実際の周波数(F_act)として設定されてもよい。
【0055】
最大の可能な周波数(F_act)を見つけるために、周波数性能エンハンサモジュール203は、以下の例示的なサブシステム周波数パラメータ209、すなわち、(a)サブシステムのための現在の作業負荷(workload)、(b)現在の作業負荷を処理するために必要とされる最小動作周波数(F_req)、(c)コア電圧範囲内で利用可能な最もエネルギー効率のよい(理想的な)動作周波数(F_opt)、および(d)所与の電力配分および/または電圧制限のもとで利用可能な最大動作周波数(F_limit)のうちの任意のものを評価してもよい。
【0056】
1つの例示的な実施形態では、各周波数性能エンハンサモジュール203は、F_req、F_opt、およびF_limitを評価してもよい。エンハンサモジュール203は、F_req値よりも大きいF_actを設定してもよい。F_actは、通常、サブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)からのF_limit値よりも小さくあるべきである。その範囲内で、F_actは、周波数性能エンハンサモジュール203によって、アクティブな(実行)時間を最小限に抑えるためにそのそれぞれのサブシステムの現在の電圧レベルにおいて可能な最大周波数に設定されてもよい。
【0057】
ここで
図3Aを参照すると、この図は、PCD100内の電力消費を低減するために、PCD100のコア電圧レベルを最適化するとともにPCD100内の個々のサブシステムの周波数性能を向上させるための方法300を示す論理フローチャートである。ブロック305は、方法300の最初のステップである。ブロック305において、PCD100内の各サブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)は、静的な情報を決定してもよい。そのような静的な情報は、それぞれのサブシステム内のリーク電流(IDDQ)の現在のレベルを含んでもよい。
【0058】
次に、ブロック310において、各サブシステム--通常はそれぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)内のCPUは、PCD100内の動的な情報を評価してもよい。そのような動的な情報は、限定はしないが、各サブシステムの現在の温度および各サブシステムの現在の作業負荷を含んでもよい。
【0059】
ブロック315において、各サブシステム--通常はそれぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)内のCPUは、
図2に関して上述された電圧投票205に相当する複数の電圧値を計算してもよい。詳細には、各サブシステムは、要求電圧レベル(V_req)、最適電圧レベル(V_opt)、および最大電圧レベル(V_limit)を備える少なくとも3つの異なる電圧値を計算してもよい。
【0060】
次に、ブロック320において、拡張型電圧アグリゲータ103は、複数の電圧投票205をPCD100内のサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)の各々から受信する。
図2に関して上述されたように、拡張型電圧アグリゲータ103は、単一の要求コア電圧レベル(CX V_req)、単一の最適コア電圧レベル(CX V_opt)、および単一の最大コア電圧レベル(CX V_limit)を備える3つのコア(“CX”)電圧投票の単一のセット210が電圧オプティマイザ101へ通信されるように、電圧投票205を集約または総計する。
【0061】
その後、ブロック325において、電圧オプティマイザ101は、PCD100にわたる共有電力領域にとってエネルギー効率のよい電圧レベルである、
図2に関して上述されたような単一の最適化されたコア電圧(V_opt prime')215を決定してもよい。次に、決定ブロック327において、電圧オプティマイザ101は、現在の電圧レベルがブロック325において計算された単一のコア電圧(V_opt prime')よりも高いかどうかを決定する。決定ブロック327への照会が否定である場合、“NO”分岐はブロック330に進む。
【0062】
決定ブロック327への照会が肯定である場合、“YES”分岐はルーチンブロック329に進む。ルーチンまたはサブメソッドブロック329において、各サブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)の動作周波数は、次いで、周波数性能エンハンサ203を用いて最適化されてもよい。さらに、このルーチンブロック329において、各周波数性能エンハンサ203はまた、そのそれぞれのサブシステムにとっての電力消失継続時間を、最適化された周波数に従って最適化してもよい。動作周波数および電力消失継続時間のこの最適化は、PCD100内の各サブシステムに対してリーク電力を最小限に抑える場合がある。ルーチンブロック329のさらなる詳細は、
図3Bに関して以下で説明される。このルーチンブロック329により、周波数は、ステップ330における電圧変更の前にステップ325において決定された電圧にとって最適化された値に調整されることが可能である。
【0063】
ブロック330において、電圧オプティマイザ101は、最適化されたコア電圧(V_opt prime')215をコア電圧プランセレクタモジュール201へ通信してもよい。コア電圧プランセレクタモジュール201は、次いで、最適化されたコア電圧(V_opt prime')215に対応する複数の所定の電圧レベル(すなわち、レベル1、レベル2、レベル3、レベル4など)のうちの1つから選択してもよい。上述のように、代替として、コア電圧プランセレクタモジュール201が設けられていない場合、電圧オプティマイザ101がコア電圧プランセレクタモジュール201の代わりに電圧レベルを選択してもよい。選択された電圧レベルは、PCD100全体のための共有電力領域の電圧レベルとなる。
【0064】
共有電力領域の電圧レベルがブロック330において設定された後、次いで、ルーチンまたはサブメソッドブロック335において、各サブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)の動作周波数は、次いで、電圧が上昇している場合のみ周波数性能エンハンサ203を用いて最適化されてもよい。言い換えれば、決定ブロック327が否定であり“NO”分岐に進んだ場合、周波数の最適化がすでにルーチンブロック329において実行されたことになるので、このルーチンブロック335は省かれてもよい。さらに、このルーチンブロック335において、各周波数性能エンハンサ203はまた、そのそれぞれのサブシステムにとっての電力消失継続時間を、最適化された周波数に従って最適化してもよい。動作周波数および電力消失継続時間のこの最適化は、PCD100内の各サブシステムにとってのリーク電力を最小限に抑える場合がある。
【0065】
図2に関して上述されたように、PCD100の各サブシステムは、ハードウェア、ソフトウェア、および/またはそれらの組合せを備えてもよい周波数性能エンハンサ203が設けられてもよい。それぞれのサブシステムの各周波数性能エンハンサ203は、その動作周波数を最適化し、その最適な電力消失継続時間を計算するために、いくらかの異なる計算を実行してもよい。このルーチンブロック335のさらなる詳細は、
図3Bに関して以下で説明される。
【0066】
ルーチンブロック335の後、ブロック340において、各サブシステムは、所定の継続時間にわたってそのそれぞれの作業負荷を処理し続ける。その後、決定ブロック345において、各サブシステム--通常はそれぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)内のCPUは、次いで、作業負荷の変更がPCD100内の共有電力領域にとって最適な動作周波数および最適な電圧がいくらであるかに影響を及ぼす場合があるので、その作業負荷が変更されたかどうかを決定してもよい。
【0067】
決定ブロック345への照会が否定である場合、“NO”分岐はブロック340へ戻る。決定ブロック345への照会が肯定である場合、“YES”分岐はブロック310へ進む。
【0068】
ここで
図3B、サブシステムの動作周波数を最適化するとともにPCD100内のサブシステムの電力消失継続時間を最適化するための、
図3Aの方法300のサブメソッドまたはルーチン229、335を参照する。ブロック350は、サブメソッドまたはルーチン335の最初のブロックである。ブロック350において、それぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)の各周波数性能エンハンサ203は、熱センサ157によって測定されるその現在の温度、およびブロック330において確立された現在の電圧に基づいて、そのリーク電力を推定してもよい。
【0069】
次に、決定ブロック355において、各周波数性能エンハンサ203は、そのそれぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)に関するそのリーク電力の推定値が、設定されたまたは所定のしきい値よりも大きいかどうかを判定してもよい。リーク電力のこの設定されたまたは所定のしきい値は、PCD100の製造業者によって望まれるように静的に設定または動的に設定されてもよい。
【0070】
決定ブロック355への照会が否定である場合、“NO”分岐に進み、サブメソッド335は、
図3Aのブロック329または340のいずれかに戻る。決定ブロック355への照会が肯定である場合、“YES”分岐はブロック360に進む。
【0071】
ブロック360において、各それぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)の周波数性能エンハンサ203は、それぞれのサブシステムの現在の作業負荷を決定してもよい。次に、ブロック365において、それぞれのサブシステムの周波数性能エンハンサモジュール203は、共有電力領域の上でのさらなる電圧マージンを利用し、アイドル時間の間のリークを最小限に抑えるために、サブシステムがPMIC107からの所与の電圧レベルで動作してもよい最大の可能な周波数と、電力消失の最長の継続時間とを見つけてもよい。ブロック365のさらなる詳細は、
図4に関して以下で説明される。ブロック370において、最大の可能な周波数は、次いで、周波数性能エンハンサモジュール203によって、この電力消失継続時間に基づいて最適化された動作周波数または実際の周波数(F_act)として設定されてもよい。方法は、次いで、
図3Aのブロック329または340のいずれかに戻る。
【0072】
1つの例示的な実施形態では、ブロック365における電力消失継続時間の計算に加えて、ブロック365において周波数性能エンハンサモジュール203は、各サブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)によって計算されたF_req、F_opt、およびF_limitを評価してもよい。上述されたように、周波数性能エンハンサモジュール203は、最も効率のよいF_actを決定するためのテーブルにアクセスしてもよい。特定のサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)に対する所与の電圧レベルにおいて利用可能な周波数を列挙している上記のTable 1(表1)を参照する。この例示的なTable 1(表1)では、提示された値はモバイルディスプレイプロセッサ128サブシステムについての値である。F_actは、エンハンサモジュール203によって、F_req値よりも大きく設定されてもよい。周波数性能エンハンサモジュール203は、通常、F_req値を他のサブシステムからのF_limit値よりも小さく設定する。その範囲内で、エンハンサモジュールは、F_actを、アクティブな(実行)時間を最小限に抑えるためにそのそれぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)の現在の電圧レベルにおいて可能な最大周波数に設定してもよい。
【0073】
ここで
図4を参照すると、この図は、それぞれの周波数性能エンハンサモジュール203による電力消失継続時間の計算に有用な2つのグラフ365A〜Bの例である。上述のように、
図3Bのブロック365において、それぞれのサブシステムの周波数性能エンハンサモジュール203は、共有電力領域の上でのさらなる電圧マージンを利用し、アイドル時間の間のリークを最小限に抑えるために、サブシステムがPMIC107からの所与の電圧レベルで動作することができる最大の可能な周波数と、電力消失の最長の継続時間とを見つけてもよい。
【0074】
それぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)にとって最大の可能な周波数を見つけるために、周波数性能エンハンサモジュール203は、
図4に示すように電力値を時間上にプロットすることによって、アクティブな動的電力および失われるリーク電力を評価してもよい。第1の電力消失継続時間の計算プロット365Aは、サブシステムに関する作業負荷時間を追跡するX軸410Aに対してプロットされたサブシステムの電力を追跡するY軸405Aを有するグラフを備えてもよい。たとえば、サブシステムがコーデック134を備える場合、作業負荷および作業負荷終了時間はビデオデータのためのビデオフレーム継続時間を追跡してもよい。
【0075】
電力消失継続時間の第1のグラフ365において、コーデックサブシステム134のコア電圧は、コーデックサブシステム134によって拡張型電圧アグリゲータ103に提起された電圧投票に等しく設定されてもよい。この電圧設定は、第1の継続時間を有するアクティブな動的電力消費425A、および第1の継続時間を有するリーク電力損失420Aをもたらす。電圧設定はまた、第1の継続時間を有する消失した電力状態367Aをもたらす。
【0076】
システム104全体のコア電圧値(CX_voltage)220がコーデックサブシステム134などのサブシステムの電圧投票よりも大きい場合、周波数性能エンハンサモジュール203は、サブシステム134のリーク電力損失420Bを低減し、消失した電力状態367Bを増大させるために、より高い周波数を用いて試みてもよい。サブシステム134に対する電圧のそのような増大は、サブシステム134がより高い周波数で動作することを可能にするとともに、サブシステム134がその作業負荷をより迅速に終わらせることを可能にする場合があり、このことは、
図4に示すような消失した電力状態367Bの継続時間を増大させる。これは、サブシステム134の電圧と動作周波数の両方が増大するとき、第1のグラフ365Aに示す同じ作業負荷が、第2のグラフ365Bに示されるようなより少ない時間の量で完了される場合があることを意味する。図示されない別の例示的な実施形態によれば、電圧オプティマイザ101および/または電圧アグリゲータは、V_req(これを動作させる際に必須であり、そのためこの電圧を必要とする)での投票のみを受信してもよく、V_optまたはV_limitのいずれかを受信しなくてもよい。
【0077】
本発明が説明されたように機能するために、本明細書において説明されるプロセスまたはプロセスフローにおけるいくつかのステップが他のステップに先行するのは当然である。しかしながら、そのような順序またはシーケンスが本発明の機能を変更しない場合には、本発明は、説明されたステップの順序に限定されない。すなわち、本発明の範囲および趣旨から逸脱することなく、いくつかのステップは、他のステップの前に実行されるか、後に実行されるか、または他のステップと並行して(実質的に同時に)実行される場合があることを認識されたい。場合によっては、本発明から逸脱することなく、いくつかのステップは、省略されてもよく、または実行されなくてもよい。さらに、「その後」、「次いで」、「次に」などの言葉は、ステップの順序を限定するものではない。これらの言葉は単に、例示的な方法の説明を理解できるように読者を導くために使用される。
【0078】
さらに、プログラミングに関する当業者は、たとえば、本明細書におけるフローチャートおよび関連する説明に基づいて、難なく、開示される発明を実施するコンピュータのコードを書くことができるか、または実施するのに適したハードウェアおよび/もしくは回路を特定することができる。
【0079】
したがって、プログラムコード命令または詳細なハードウェアデバイスの特定のセットの開示は、本発明をどのように製作および使用するのかを十分に理解するために必要であるとは見なされない。特許請求されるコンピュータ実施プロセスの発明性のある機能は、上記の説明において、かつ様々なプロセスフローを示す場合がある図面とともに、より詳細に説明される。
【0080】
1つまたは複数の例示的な態様では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。ソフトウェアにおいて実施される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されてもよく、またはコンピュータ可読媒体上で送信されてもよい。
【0081】
本明細書の文脈では、コンピュータ可読媒体は、コンピュータ関連のシステムもしくは方法によって、またはそれと関連して使用するために、コンピュータプログラムおよびデータを格納または記憶してもよい、電子式、磁気式、光学式、もしくは他の物理デバイスまたは手段である。様々な論理素子およびデータストアは、コンピュータベースのシステム、プロセッサを含むシステム、または命令実行システム、装置、もしくはデバイスから命令をフェッチし、命令を実行することができる他のシステムなどの、命令実行システム、装置、もしくはデバイスによって、またはそれと関連して使用するために、任意のコンピュータ可読媒体に組み込まれてもよい。本明細書の文脈では、「コンピュータ可読媒体」は、命令実行システム、装置、もしくはデバイスによって、またはそれと関連して使用するためのプログラムを記憶、通信、伝搬、または伝送する場合がある任意の手段を含んでもよい。
【0082】
コンピュータ可読媒体は、たとえば、限定はしないが、電子、磁気、光学、電磁、赤外線、または半導体のシステム、装置、デバイス、または伝搬媒体であることができる。コンピュータ可読媒体のより具体的な例(非包括的なリスト)は、以下のもの、すなわち、1つまたは複数のワイヤを有する電気的接続(電子的)、ポータブルコンピュータディスケット(磁気的)、ランダムアクセスメモリ(RAM)(電子的)、リードオンリーメモリ(ROM)(電子的)、消去可能プログラム可能リードオンリーメモリ(EPROM、EEPROM、またはフラッシュメモリ)(電子的)、光ファイバ(光学的)、およびポータブルコンパクトディスクリードオンリーメモリ(CDROM)(光学的)を含むことになる。プログラムは、たとえば、紙または他の媒体の光学的走査を用いて電子的に取り込まれ、次いで、コンパイルされ、解釈され、または必要なら別のやり方で適切に処理され、次いで、コンピュータメモリに記憶されることが可能であるので、コンピュータ可読媒体は、そこにプログラムが印刷された紙または別の適当な媒体でさえあってよいことに留意されたい。
【0083】
コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされてもよい任意の利用可能な媒体であってもよい。限定ではなく例として、そのようなコンピュータ可読媒体は、任意の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使用されてもよく、コンピュータによってアクセスされてもよい任意の他の媒体を含んでもよい。
【0084】
同様に、任意の接続が、適切にコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(“DSL”)、または、赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または、赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【0085】
ディスク(disk)およびディスク(disc)は、本明細書において使用されるとき、コンパクトディスク(disc)(“CD”)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(“DVD”)、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記のものの組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0086】
したがって、選択された態様が詳細に図示および説明されているが、以下の特許請求の範囲によって定義されるような本発明の趣旨および範囲から逸脱することなく、各態様において様々な置換および改変が行われてもよいことが理解されよう。