(57)【要約】  ポータブルコンピューティングデバイス("PCD")のコア電圧レベルを最適化するとともに個々のサブコンポーネントの周波数性能を向上させるための方法およびシステムが開示される。複数のサブシステムに対する複数の電圧値が決定される。少なくとも1つのサブシステムが、多重化サブシステムである。次に、電圧値の低減されたセットが、複数の電圧値に基づいて計算され、共有電力領域に対して最適化された電圧レベルが決定される。共有電力領域は、その後、最適化された電圧レベルに設定される。複数の処理エンジンを動作させているとき、最適化された電圧レベルが、少なくとも1つの多重化サブシステムの要求電圧レベルを超えるように決定される場合、複数の処理エンジンのサブセットが識別されて、多重化システムの作業負荷が、複数の処理エンジン全体よりも効率のよい電力消費レベルで処理されてもよい。
2017527888.tif 000002
【特許請求の範囲】
【請求項１】
ポータブルコンピューティングデバイスのコア電圧レベルを最適化するとともに個々のサブシステムの周波数性能を向上させるための方法であって、
前記ポータブルコンピューティングデバイス内の複数のサブシステムに対して、複数の電圧値を決定するステップであって、少なくとも1つのサブシステムが、複数の処理エンジンを備える多重化サブシステムである、ステップと、
電圧値の低減されたセットを前記複数の電圧値に基づいて計算するステップと、
前記ポータブルコンピューティングデバイス内の共有電力領域に対して最適化された電圧レベルを、電圧値の前記低減されたセットから決定するステップと、
前記共有電力領域を前記最適化された電圧レベルに設定するステップと、
前記複数の処理エンジンを動作させているとき、前記最適化された電圧レベルが、前記少なくとも1つの多重化サブシステムの要求電圧レベルを超えていることを決定するステップと、
前記複数の処理エンジンのサブセットを識別するステップと、
前記少なくとも1つの多重化サブシステムの作業負荷を、処理エンジンの前記サブセットを用いて処理するステップと
を備える方法。
【請求項２】
サブシステムの動作周波数を前記最適化された電圧レベルに基づいて最適化するステップをさらに備える、請求項1に記載の方法。
【請求項３】
少なくとも1つのサブシステムは、カメラ、ディスプレイ、通信バス、ビデオコーダ、ビデオデコーダ、および信号プロセッサのうちの1つを備える、請求項1に記載の方法。
【請求項４】
サブシステムのリーク電力を、温度および前記最適化された電圧レベルのうちの少なくとも1つに基づいて推定するステップをさらに備える、請求項1に記載の方法。
【請求項５】
サブシステムの現在の作業負荷を決定するステップをさらに備える、請求項1に記載の方法。
【請求項６】
前記現在の作業負荷を処理することに対応する最適な電力消失継続時間を決定するステップをさらに備える、請求項5に記載の方法。
【請求項７】
利用可能な理想的な動作周波数を、前記最適な電力消失継続時間に基づいて決定するステップをさらに備える、請求項1に記載の方法。
【請求項８】
現在の作業負荷を完了するための少なくとも2つの異なる電圧値を用いて計算を実行するステップをさらに備える、請求項1に記載の方法。
【請求項９】
前記異なる電圧値に対応するリーク電力を計算するステップをさらに備える、請求項8に記載の方法。
【請求項１０】
前記ポータブルコンピューティングデバイスは、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレスの接続またはリンクを用いるハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項1に記載の方法。
【請求項１１】
ポータブルコンピューティングデバイスのコア電圧レベルを最適化するとともに前記ポータブルコンピューティングデバイス内の個々のサブシステムの周波数性能を向上させるためのコンピュータシステムであって、
前記ポータブルコンピューティングデバイス内の複数のサブシステムに対して、複数の電圧値を決定し、少なくとも1つのサブシステムが、複数の処理エンジンを備える多重化サブシステムであり、
電圧値の低減されたセットを前記複数の電圧値に基づいて計算し、
前記ポータブルコンピューティングデバイス内の共有電力領域に対して最適化された電圧レベルを、電圧値の前記低減されたセットから決定し、
前記共有電力領域を前記最適化された電圧レベルに設定し、
前記複数の処理エンジンを動作させているとき、前記最適化された電圧レベルが、前記少なくとも1つの多重化サブシステムの要求電圧レベルを超えていることを決定し、
前記複数の処理エンジンのサブセットを識別し、
前記少なくとも1つの多重化サブシステムの作業負荷を、処理エンジンの前記サブセットを用いて処理する
ために動作可能なプロセッサを備えるコンピュータシステム。
【請求項１２】
前記プロセッサは、サブシステムの動作周波数を前記最適化された電圧レベルに基づいて最適化するためにさらに動作可能である、請求項11に記載のシステム。
【請求項１３】
少なくとも1つのサブシステムは、カメラ、ディスプレイ、通信バス、ビデオコーダ、ビデオデコーダ、および信号プロセッサのうちの1つを備える、請求項11に記載のシステム。
【請求項１４】
前記プロセッサは、サブシステムのリーク電力を、温度および前記最適化された電圧レベルのうちの少なくとも1つに基づいて推定するためにさらに動作可能である、請求項11に記載のシステム。
【請求項１５】
前記プロセッサは、サブシステムの現在の作業負荷を決定するためにさらに動作可能である、請求項11に記載のシステム。
【請求項１６】
前記プロセッサは、前記現在の作業負荷を処理することに対応する最適な電力消失継続時間を決定するためにさらに動作可能である、請求項15に記載のシステム。
【請求項１７】
前記プロセッサは、利用可能な理想的な動作周波数を、前記最適な電力消失継続時間に基づいて決定するためにさらに動作可能である、請求項11に記載のシステム。
【請求項１８】
前記プロセッサは、現在の作業負荷を完了するための少なくとも2つの異なる電圧値を用いて計算を実行するためにさらに動作可能である、請求項11に記載のシステム。
【請求項１９】
前記プロセッサは、前記異なる電圧値に対応するリーク電力を計算するためにさらに動作可能である、請求項18に記載のシステム。
【請求項２０】
前記ポータブルコンピューティングデバイスは、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレスの接続またはリンクを用いるハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項11に記載のシステム。
【請求項２１】
ポータブルコンピューティングデバイスのコア電圧レベルを最適化するとともに前記ポータブルコンピューティングデバイス内の個々のサブコンポーネントの周波数性能を向上させるためのコンピュータシステムであって、
前記ポータブルコンピューティングデバイス内の複数のサブシステムに対して、複数の電圧値を決定するための手段であって、少なくとも1つのサブシステムが、複数の処理エンジンを備える多重化サブシステムである、手段と、
電圧値の低減されたセットを前記複数の電圧値に基づいて計算するための手段と、
前記ポータブルコンピューティングデバイス内の共有電力領域に対して最適化された電圧レベルを、電圧値の前記低減されたセットから決定するための手段と、
前記共有電力領域を前記最適化された電圧レベルに設定するための手段と、
前記複数の処理エンジンを動作させているとき、前記最適化された電圧レベルが、前記少なくとも1つの多重化サブシステムの要求電圧レベルを超えていることを決定するための手段と、
前記複数の処理エンジンのサブセットを識別するための手段と、
前記少なくとも1つの多重化サブシステムの作業負荷を、処理エンジンの前記サブセットを用いて処理するための手段と
を備えるコンピュータシステム。
【請求項２２】
サブシステムの動作周波数を前記最適化された電圧レベルに基づいて最適化するための手段をさらに備える、請求項21に記載のシステム。
【請求項２３】
少なくとも1つのサブシステムは、カメラ、ディスプレイ、通信バス、ビデオコーダ、ビデオデコーダ、および信号プロセッサのうちの1つを備える、請求項21に記載のシステム。
【請求項２４】
サブシステムのリーク電力を、温度および前記最適化された電圧レベルのうちの少なくとも1つに基づいて推定するための手段をさらに備える、請求項21に記載のシステム。
【請求項２５】
サブシステムの現在の作業負荷を決定するための手段をさらに備える、請求項21に記載のシステム。
【請求項２６】
コンピュータ可読プログラムコードを記憶したコンピュータ可読記録媒体であって、前記コンピュータ可読プログラムコードが、ポータブルコンピューティングデバイスのコア電圧レベルを最適化するとともに前記ポータブルコンピューティングデバイス内の個々のサブコンポーネントの周波数性能を向上させるための方法を実施するために実行されるように適合され、前記方法は、
前記ポータブルコンピューティングデバイス内の複数のサブシステムに対して、複数の電圧値を決定するステップであって、少なくとも1つのサブシステムが、複数の処理エンジンを備える多重化サブシステムである、ステップと、
電圧値の低減されたセットを前記複数の電圧値に基づいて計算するステップと、
前記ポータブルコンピューティングデバイス内の共有電力領域に対して最適化された電圧レベルを、電圧値の前記低減されたセットから決定するステップと、
前記共有電力領域を前記最適化された電圧レベルに設定するステップと、
前記複数の処理エンジンを動作させているとき、前記最適化された電圧レベルが、前記少なくとも1つの多重化サブシステムの要求電圧レベルを超えていることを決定するステップと、
前記複数の処理エンジンのサブセットを識別するステップと、
前記少なくとも1つの多重化サブシステムの作業負荷を、処理エンジンの前記サブセットを用いて処理するステップと
を備えるコンピュータ可読記録媒体。
【請求項２７】
前記方法を実施する前記コンピュータ可読プログラムコードは、サブシステムの動作周波数を前記最適化された電圧レベルに基づいて最適化するステップをさらに備える、請求項26に記載のコンピュータ可読記録媒体。
【請求項２８】
少なくとも1つのサブシステムは、カメラ、ディスプレイ、通信バス、ビデオコーダ、ビデオデコーダ、および信号プロセッサのうちの1つを備える、請求項26に記載のコンピュータ可読記録媒体。
【請求項２９】
前記方法を実施する前記コンピュータ可読プログラムコードは、サブシステムのリーク電力を、温度および前記最適化された電圧レベルのうちの少なくとも1つに基づいて推定するステップをさらに備える、請求項26に記載のコンピュータ可読記録媒体。
【請求項３０】
前記方法を実施する前記コンピュータ可読プログラムコードは、サブシステムの現在の作業負荷を決定するステップをさらに備える、請求項26に記載のコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願に関する陳述
本出願は、2013年11月21日に出願された、"METHOD AND SYSTEM FOR OPTIMIZING A CORE VOLTAGE LEVEL OF A PCD AND ENHANCING FREQUENCY PERFORMANCE OF INDIVIDUAL SUBCOMPONENTS IN ORDER TO REDUCE POWER CONSUMPTION WITHIN THE PCD"という表題の、第61/907,382号が割り当てられた米国特許仮出願の、米国特許法第119条(e)に基づく優先権を主張し、上記の出願の内容全体が参照により本明細書に組み込まれる。本出願は、2014年2月22日に出願された、"METHOD AND SYSTEM FOR OPTIMIZING A CORE VOLTAGE LEVEL AND ENHANCING FREQUENCY PERFORMANCE OF INDIVIDUAL SUBCOMPONENTS FOR REDUCING POWER CONSUMPTION WITHIN A PCD"という表題の、米国特許非仮出願第14/187,270号にも関する。
【背景技術】
【０００２】
ポータブルコンピューティングデバイス("PCD(portable computing device)")は、個人レベルおよび職業レベルにおいて人々に必要なものになりつつある。これらのデバイスは、セルラー電話、携帯情報端末("PDA")、ポータブルゲーム機、パームトップコンピュータ、および他のポータブル電子デバイスを含んでもよい。
【０００３】
PCDが人々にとって必要なものになりつつあるため、再充電期間の間にPCDを動作させるためのエネルギーが十分である点での最適性能は、ユーザの観点からの重要なファクタである場合がある。バッテリー電力でPCDを動作させるための十分なエネルギーは、しばしば、デバイスの電力消費によって規定される。バッテリー電源式PCD内のカメラやモバイルディスプレイなどの、PCDの各サブコンポーネントは、根本的に電力を消費し、PCDの全体的な電力消費および性能の一因となる。
【０００４】
従来のPCDに伴う1つの問題は、最大作業負荷(workload)を有するPCDのサブコンポーネントによって望まれる最大電圧が、PCD全体およびその他のサブコンポーネントの電圧レベルを決定することである。このことは、最大作業負荷を有する単一のコンポーネントによって要求されるより高い電圧を必要としなかったサブコンポーネントにおいて、電流リークの増大をもたらす。
【０００５】
たとえば、イメージプロセッサのようなPCDのサブコンポーネントを考えると、その作業負荷におけるスパイクのために電圧の増大を必要とする。一方、モバイルディスプレイ用ディスプレイプロセッサ、内部回路バス、およびビデオエンコーダなどの、PCDの他のサブコンポーネントは、それらの電圧の増大を必要としない場合がある。大きな作業負荷を有しないこれらの他のサブコンポーネントにとっての電圧の増大は、大きな作業負荷を伴うイメージプロセッサと比較して、PCDにとってこれらの小さい作業負荷のコンポーネントからの著しい電流リーク、したがって、これらの小さい作業負荷のコンポーネントからの著しい電力損失をもたらす。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
したがって、当技術分野において必要とされるものは、PCD内の電力消費を低減するために、個々のサブコンポーネントの周波数性能を向上させながらPCDのコア電圧レベルを最適化するための方法およびシステムである。さらに、当技術分野において必要とされるものは、PCDのコア電圧レベルが多重化サブコンポーネントによって必要とされるよりも高いときに、そのようなサブコンポーネントにおけるコアの選択および周波数を最適化するための方法およびシステムである。
【課題を解決するための手段】
【０００７】
ポータブルコンピューティングデバイス("PCD")のコア電圧レベルを最適化するとともに個々のサブシステムの周波数性能を向上させるための方法およびシステムが開示される。例示的な実施形態では、ポータブルコンピューティングデバイス内の複数のサブシステムに対する複数の電圧値が決定される。少なくとも1つのサブシステムが、複数の処理エンジンを備える多重化サブシステムである。次に、電圧値の低減されたセットが、複数の電圧値に基づいて計算され、ポータブルコンピューティングデバイス内の共有電力領域に対して最適化された電圧レベルが、電圧値の低減されたセットから決定される。共有電力領域は、その後、最適化された電圧レベルに設定される。複数の処理エンジンを動作させているとき、最適化された電圧レベルが、少なくとも1つの多重化サブシステムの要求電圧レベルを超えるように決定される場合、複数の処理エンジンのサブセットが識別されて、多重化システムの作業負荷が、複数の処理エンジン全体よりも効率のよい電力消費レベルで処理されてもよい。
【０００８】
PCDの各サブシステムは、イメージプロセッサ、ディスプレイ、通信バス、ビデオコーダ、ビデオデコーダ、信号プロセッサのうちの少なくとも1つを備えてもよい。周波数性能エンハンサはまた、サブシステムのリーク電力を、温度および最適化された電圧レベルのうちの少なくとも1つに基づいて推定してもよい。周波数性能エンハンサはまた、以下のもの、すなわち、サブシステムの現在の作業負荷、現在の作業負荷を処理するために必要とされる最小動作周波数、最適化された電圧レベルに基づいて利用可能な理想的な動作周波数、および最適化された電圧レベルに基づいて利用可能な最大動作周波数のうちのいずれか1つを計算してもよい。
【０００９】
図において、別段に規定されていない限り、同様の参照番号は、様々な図の全体を通して同様の部分を指す。"102A"または"102B"などの文字指定を伴う参照番号について、文字指定は、同じ図に存在する2つの同様の部分または要素を区別する場合がある。参照番号がすべての図において同じ参照番号を有するすべての部分を包含することが意図されるとき、参照番号に対する文字指定は省略される場合がある。
【図面の簡単な説明】
【００１０】
【図１Ａ】ポータブルコンピューティングデバイス("PCD")の一実施形態を示す機能ブロック図である。
【図１Ｂ】モバイルフォンなどのポータブルコンピューティングデバイスの例示的な実施形態の正面図である。
【図２Ａ】PCD内の電力消費を低減するために、PCDのコア電圧レベルを最適化するとともに個々のサブシステムの周波数性能を向上させるための例示的なシステムを示す機能ブロック図である。
【図２Ｂ】図2Aのシステムの多重化サブシステムにおける最適な処理エンジン組合せおよび周波数設定を選択するためのシステムを示す、機能ブロック図である。
【図３Ａ】PCD内の電力消費を低減するために、PCDのコア電圧レベルを最適化するとともに個々のサブシステムの周波数性能を向上させるための方法を示す論理フローチャートである。
【図３Ｂ】サブシステムの動作周波数を最適化し、多重化サブシステムにおける最適なコア組合せを選択し、PCD内のサブシステムの電力消失継続時間を最適化するための、図3Aの方法のサブメソッドまたはルーチンを示す論理フローチャートである。
【図４】それぞれの周波数性能エンハンサモジュールによる電力消失継続時間の計算に有用な2つのグラフの例である。
【発明を実施するための形態】
【００１１】
「例示的」という言葉は、本明細書において「一例、事例、または実例として役立つ」ことを意味するように使用される。「例示的」として本明細書で説明するいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきではない。
【００１２】
本明細書において、「アプリケーション」という用語はまた、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含む場合がある。さらに、本明細書において参照される「アプリケーション」はまた、オープンされることが必要な場合があるドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルも含む場合がある。
【００１３】
「コンテンツ」という用語はまた、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含む場合がある。加えて、本明細書で参照される「コンテンツ」はまた、オープンされることが必要な場合があるドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能でないファイルを含む場合がある。
【００１４】
本説明において使用されるときに、「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピュータ関連のエンティティを指すことを意図している。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよい。例として、コンピューティングデバイス上で実行されているアプリケーションとコンピューティングデバイスの両方は、構成要素であってもよい。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在してもよく、構成要素は、1つのコンピュータに局在してもよく、および/または、2つ以上のコンピュータ間に分散されてもよい。加えて、これらの構成要素は、様々なデータ構造を記憶した様々なコンピュータ可読媒体から実行されてもよい。構成要素は、1つまたは複数のデータパケット(たとえば、信号を用いて、ローカルシステム内、分散システム内の別の構成要素と対話し、および/または、インターネットなどのネットワークにわたって他のシステムと対話する1つの構成要素からのデータ)を有する信号に従うなどして、ローカルプロセスおよび/またはリモートプロセスを用いて通信してもよい。
【００１５】
本明細書では、「プロセッサ」、「処理エンジン」、「コア」などという用語は、作業負荷を処理するために電力を消費するコンポーネントを指すために、互換的に使用される。したがって、「多重化」システムまたはサブシステムまたはサブコンポーネントに言及する場合、サブシステムが2つ以上の処理エンジンを収容していることを意味するものと理解される。想定される多重化サブシステムの非限定的な表が次に続く。
【００１６】
【表１】
2017527888.tif 000003
【００１７】
本明細書では、カメラまたはカメラサブシステムに言及する場合、ビデオ処理要素を包含してもよいイメージプロセッサを想定するものと理解される。このようにして、カメラまたはカメラサブシステムという用語を使用しても、より広範な定義の、センサを含むカメラまたはカメラサブシステムに適用できるように、解決策の範囲は限定されない。
【００１８】
本明細書では、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」という用語は、互換的に使用される。第3世代("3G")および第4世代("4G")のワイヤレス技術の出現とともに、利用可能な帯域幅が拡大されたので、より多くの様々なワイヤレス機能を備えたよりポータブルなコンピューティングデバイスが利用可能になっている。
【００１９】
本明細書では、「ポータブルコンピューティングデバイス」("PCD")という用語は、バッテリーなどの限られた容量の電源で動作する任意のデバイスを説明するために使用される。何十年もの間バッテリー式のPCDが使用されてきたが、第3世代("3G")ワイヤレス技術の出現とともにもたらされた充電式バッテリーの技術的進歩は、複数の機能を有する多数のPCDを可能にした。したがって、PCDは、とりわけ、セルラー電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、上述したデバイスの組合せ、およびワイヤレス接続を有するラップトップコンピュータであってもよい。
【００２０】
図1Aを参照すると、この図は、PCD100内の電力消費を低減するために、PCD100のコア電圧レベルを最適化し、PCD100の最適化されたコア電圧レベルに基づいて、多重化サブシステムにおける最適なコア組合せを選択し、個々のサブシステムの周波数性能を向上させるための方法およびシステムを実施するための、ワイヤレス電話の形態でのPCD100の例示的で非限定的な態様の機能ブロック図である。図示のように、PCD100は、互いに結合されたマルチコア中央処理装置("CPU")110およびアナログ信号プロセッサ126を含むオンチップシステム102を含む。当業者によって理解されるように、CPU110は、第0のコア222、第1のコア224、および第Nのコア230を備えてもよい。当業者によって理解されるように、CPU110の代わりに、デジタル信号プロセッサ("DSP")も利用されてもよい。その上、当業者によって理解されるように、第0のコア222、第1のコア224、および第Nのコア230のいずれか1つまたはすべては、イメージングプロセッサでもよく、モバイルディスプレイプロセッサでもよい。
【００２１】
CPU110はまた、1つまたは複数の内部のオンチップ熱センサ157A〜B、ならびに1つまたは複数の外部のオフチップ熱センサ157Cに結合されてもよい。オンチップ熱センサ157A〜Bは、縦型PNP構造に基づき、通常は相補型金属酸化膜半導体("CMOS")の超大規模集積("VLSI")回路に専用の、1つまたは複数の絶対温度比例(「PTAT」)の温度センサを備えてもよい。オフチップ熱センサ157Cは、1つまたは複数のサーミスタを備えてもよい。熱センサ157は、アナログデジタルコンバータ("ADC")(図示せず)を用いてデジタル信号に変換される、電圧降下(および/または、電流)を発生させる場合がある。しかしながら、本発明の範囲から逸脱することなく、他のタイプの熱センサ157が利用されてもよい。
【００２２】
図1AのPCD100は、CPU110に結合され、および/またはCPU110上で動作している拡張型電圧アグリゲータ103を含んでもよい。拡張型電圧アグリゲータ103は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せを備えてもよい。電圧オプティマイザ101は、拡張型電圧アグリゲータ103に結合/論理的に結合されてもよい。拡張型電圧アグリゲータ103と同様に、電圧オプティマイザ101は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せを備えてもよい。
【００２３】
拡張型電圧アグリゲータ103は、チップ102の上およびチップ102の外の様々なサブコンポーネントからの、電圧「投票(vote)」の収集を担当してもよい。電圧「投票」を総計した後、拡張型電圧アグリゲータ103は、電圧「投票」を絞り込みまたは改善してもよく、その出力を電圧オプティマイザ101へ送信してもよい。電圧オプティマイザは、PCD100にとっての最適なコア電圧レベルを決定し、この最適なコア電圧レベルを電力管理集積回路("PMIC")107へ送信する。拡張型電圧アグリゲータ103および電圧オプティマイザ101のさらなる詳細は、図2に関して以下でより詳細に説明される。
【００２４】
周波数性能エンハンサモジュール203は、カメラサブシステム148、モバイルディスプレイ128、130などの各サブシステムの中に存在してもよく、PCD100の実際および現在の電圧レベルを監視してもよい。各周波数性能エンハンサモジュール203は、以下に記載されるように、そのそれぞれのサブシステムの動作周波数を調整してもよい。さらに、多重化サブシステム、すなわち、2つ以上の利用可能な作業負荷処理エンジンまたは「コア」を有するサブシステムに関連付けられている、各周波数性能エンハンサモジュール203は、以下で説明されるように、作業負荷を処理するのに最適な処理エンジンの組合せを決定してもよい。
【００２５】
特定の態様では、本明細書で説明される方法ステップのうちの1つまたは複数は、拡張型電圧アグリゲータ103、電圧オプティマイザ101、および周波数性能エンハンサモジュール203のソフトウェア実施形態を形成する場合がある、メモリ112に記憶された実行可能な命令およびパラメータによって実施されてもよい。拡張型電圧アグリゲータおよび電圧オプティマイザモジュール101、103ならびに周波数性能エンハンサモジュール203を形成するこれらの命令は、CPU110、アナログ信号プロセッサ126、または任意の他のプロセッサによって実行されてもよい。さらに、プロセッサ110、126、メモリ112、そこに記憶された命令、またはそれらの組合せは、本明細書で説明される方法ステップのうちの1つまたは複数を実行するための手段として働く場合がある。
【００２６】
PMIC107は、チップ102上に存在する様々なハードウェアコンポーネントへの電力の分配を担当してもよい。PMICは、電源180に結合される。電源180は、バッテリーを備えてもよく、オンチップシステム102に結合されてもよい。特定の態様では、電源は、充電式直流("DC")バッテリー、またはAC電源に接続された交流("AC")-DC変換器から導かれるDC電源を含んでもよい。
【００２７】
図1Aに示すように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130は、マルチコアプロセッサ110に結合される。オンチップシステム102の外部にあるタッチスクリーンディスプレイ132は、ディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。
【００２８】
図1Aは、ビデオデコーダ134を含むポータブルコンピューティングデバイス(PCD)の一実施形態を示す概略図である。ビデオデコーダ134は、マルチコア中央処理装置("CPU")110に結合される。ビデオ増幅器136は、ビデオデコーダ134およびタッチスクリーンディスプレイ132に結合される。ビデオポート138は、ビデオ増幅器136に結合される。図1Aに示すように、ユニバーサルシリアルバス("USB")コントローラ140は、CPU110に結合される。同様に、USBポート142は、USBコントローラ140に結合される。メモリ112および加入者識別モジュール(SIM)カード146も、CPU110に結合されてもよい。
【００２９】
さらに、図1Aに示すように、デジタルカメラまたはカメラサブシステム148が、CPU110に結合されてもよい。例示的な態様では、デジタルカメラ/カメラサブシステム148は、電荷結合デバイス("CCD")カメラまたは相補型金属酸化膜半導体("CMOS")カメラである。
【００３０】
図1Aにさらに示すように、ステレオオーディオコーデック150は、アナログ信号プロセッサ126に結合されてもよい。その上、オーディオ増幅器152が、ステレオオーディオコーデック150に結合されてもよい。例示的な態様では、第1のステレオスピーカ154および第2のステレオスピーカ156が、オーディオ増幅器152に結合される。図1Aは、マイクロフォン増幅器158も、ステレオオーディオコーデック150に結合される場合があることを示す。加えて、マイクロフォン160が、マイクロフォン増幅器158に結合されてもよい。
【００３１】
特定の態様では、周波数変調("FM")ラジオチューナ162が、ステレオオーディオコーデック150に結合されてもよい。同様に、FMアンテナ164が、FMラジオチューナ162に結合される。さらに、ステレオヘッドフォン166が、ステレオオーディオコーデック150に結合されてもよい。
【００３２】
図1Aは、無線周波数("RF")トランシーバ168が、アナログ信号プロセッサ126に結合される場合があることをさらに示す。RFスイッチ170が、RFトランシーバ168およびRFアンテナ172に結合されてもよい。図1Aに示すように、キーパッド174が、アナログ信号プロセッサ126に結合されてもよい。同様に、マイクロフォン付きモノヘッドセット176が、アナログ信号プロセッサ126に結合されてもよい。さらに、バイブレータデバイス178が、アナログ信号プロセッサ126に結合されてもよい。
【００３３】
図1Aに示すように、タッチスクリーンディスプレイ132、ビデオポート138、USBポート142、カメラ148、第1のステレオスピーカ154、第2のステレオスピーカ156、マイクロフォン160、FMアンテナ164、ステレオヘッドフォン166、RFスイッチ170、RFアンテナ172、キーパッド174、モノヘッドセット176、バイブレータ178、熱センサ157B、および電源180は、オンチップシステム102の外部にある。
【００３４】
ここで図1Bを参照すると、この図は、モバイルフォンなどのポータブルコンピューティングデバイス("PCD")100の1つの例示的な実施形態の正面図である。PCD100は、大きなタッチスクリーン132をその中央部分に、およびより小さいキーパッド/ボタン174をデバイス100のより低い第1の端部の近くに有する。「前方/ユーザ」向きカメラ148が、デバイス100の上部の第2の端部の近くに位置する場合がある。タッチスクリーンタイプのモバイルフォン100が示されたが、固定位置に配置される場合があるか、またはデバイス100に対して内向き(隠れた位置に)および外向き(目に見える/使用できる位置に)スライド可能な場合がある専用のキーボードを有するモバイルフォン100などの、他のモバイルフォンタイプが可能であり本開示の範囲内である。
【００３５】
図2Aは、PCD100内の電力消費を低減するために、PCD100のコア電圧レベルを最適化するとともに個々のサブコンポーネント(すなわち、カメラサブシステム148、モバイルディスプレイ128、130、ビデオコーデック134など)の周波数性能を向上させるための、例示的なシステム104を示す機能ブロック図である。システム104は、たとえば、(1つまたは複数のイメージングプロセッサを備えてもよい)カメラサブシステム("CAMSS")148、(1つまたは複数のディスプレイプロセッサを備えてもよい)モバイルディスプレイ("MDP")128、130、システム通信バス220、ビデオコーデック134、およびモバイルデバイス100内の他のサブシステムN(すなわち、それだけには限らないが、アナログ信号プロセッサ126など)を備えてもよい。とりわけ、サブシステムのうちのいずれか1つまたは複数は、複数の処理エンジンを収容する多重化サブシステムであり得ることが想定される。たとえば、CAMSS148は、複数のイメージプロセッサを備えてもよい(図2B参照)。
【００３６】
N個のサブシステムを通してこれらのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)の各々は、(論理的および/または直接的に)拡張型電圧アグリゲータ103に結合される。上述されたように、サブシステムのうちのいずれか1つまたは複数は、サブシステム内で複数の処理コンポーネントが作業負荷の処理に利用できるように、多重化され得ることが想定される。拡張型電圧アグリゲータ103は、(論理的および/または直接的に)電圧オプティマイザ101に結合される。
【００３７】
電圧オプティマイザ101は、コア電圧プラン201に概ね対応する出力として最適電圧レベル215を提供する。コア電圧プラン201は、低いレベルが低い電圧を備え高いレベルが高い電圧を備える第1のレベル(レベル1)、第2のレベル(レベル2)、第3のレベル(レベル3)、および第4のレベル(レベル4)などの複数の電圧レベルを備えてもよい。たとえば、当業者によって理解されるように、第4のレベル(レベル4)は、モバイルデバイス100にとっての「ターボ」動作モードを詳細に追跡してもよい。電圧レベルの数および大きさは、当業者によって理解されるように、増大または低減されてもよく、本開示の範囲内である。コア電圧プラン201に関するこれらの個々の電圧レベルは、電圧オプティマイザ101によって生成される最適化された電圧レベル215に基づいて選択されてもよい。
【００３８】
サブシステムの各々--通常はそれぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)内のCPUは、拡張型電圧アグリゲータ103へ送信される複数の電圧投票205を生成してもよい。電圧投票205は、要求電圧レベル(V_req)、最適電圧レベル(V_opt)、および最大電圧レベル(V_limit)を備えてもよい。最大電圧レベル(V_limit)は、サブシステムの現在の電力配分または電圧制約のもとで利用可能な最大電圧を備えてもよい。要求電圧レベル(V_req)は、特定のサブシステムをその現在の作業負荷に対して最小周波数レベルで動作させるために必要とされる最小電圧を備えてもよい。いくつかの例示的な実施形態では、最大電圧レベル(V_limit)は、各サブシステムによって選択/変更/投票されるものとして容認されない場合があることに留意されたい。
【００３９】
一方、最適電圧レベル(V_opt)は、サブシステムの現在の温度およびその対応するリーク電流に基づいて、最もエネルギー効率のよい周波数に対する電圧レベルを備えてもよい。当業者によって理解されるように、リーク電流は、一般に、休止(Q)状態(回路/チップがスイッチングされず、入力が静的な値において保持されるとき)で測定された供給電流("Idd")、したがってその省略形("IDDQ")を備える。最適電圧レベル(V_opt)を決定するために、各サブシステムは、各システム内に記憶された電力モデル207または各サブシステムに記憶されたルックアップテーブル(図示せず)のいずれかを利用してもよい。各電力モデル207またはルックアップテーブルは、リーク電流値("IDDQ")、温度値、周波数値、および出力電力推定値を備えてもよい。その上、多重化サブシステムの場合、電力モデル207またはルックアップテーブルはさらに、利用可能な処理エンジンの様々な組合せに対するIDDQ値、温度値、周波数値、および出力電力推定値を備えてもよい。各サブシステムは、その最適電圧レベル(V_opt)を決定するために、その電力モデル207またはルックアップテーブルを検討する。また、図2Bに関して以下で説明されるように、多重化サブシステムも、投票の前にかつ/または電圧オプティマイザ101によって推進されるコア電圧選択に応答して、最適な処理コア組合せを決定するために、その電力モデル207またはルックアップテーブルを検討してもよい。
【００４０】
各サブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)がその3つの電圧投票205を決定すると、それぞれが、その3つの別個の投票を拡張型電圧アグリゲータ103へ送信する。とりわけ、いくつかの実施形態では、多重化サブシステムから発出する3つの電圧投票205は、多重化サブシステムによって識別される処理コアの、ある特定の最適な組合せに関連し得ることが想定される。拡張型電圧アグリゲータ103は、単一の要求コア電圧レベル(CX V_req)、単一の最適コア電圧レベル(CX V_opt)、および単一の最大コア電圧レベル(CX V_limit)を備える3つのコア("CX")電圧投票の単一のセット210が電圧オプティマイザ101へ通信されるように、投票205を集約または総計する。
【００４１】
要求コア電圧レベル(CX V_req)を決定するために、拡張型電圧アグリゲータ103は、この値を以下の式に従って決定する。
【００４２】
CX V_req = max(V_req1, V_req2, …, V_req(n)) [式1]
【００４３】
ここで、拡張型電圧アグリゲータ103は、すべての利用可能なサブシステムコア電圧レベル(V_req)の最大値を取る。
【００４４】
同様に、最大コア電圧レベル(CX V_limit)を決定するために、拡張型電圧アグリゲータ103は、この値を以下の式に従って決定する。
【００４５】
CX V_limit = min(V_limit1, V_limit2, …, V_limit(n)) [式2]
【００４６】
ここで、拡張型電圧アグリゲータ103は、すべての利用可能なサブシステム最大電圧レベル(V_limit)の最小値を取る。
【００４７】
最適コア電圧レベル(CX V_opt)を決定するために、拡張型電圧アグリゲータ103は、この値を以下の式に従って決定する。
【００４８】
CX V_opt = function(V_opt1, V_opt2, …, V_opt(n)) [式3]
【００４９】
ここで、この値は、利用可能なサブシステム最適電圧レベル(V_opt)のすべてを組み込む関数から導出される。この関数は、各サブシステムの電力消費を重み値として用いた重み付き平均値、または最小MSE(平均二乗誤差)を有する値を備えてもよい。しかしながら、当業者によって理解されるように、他の関数が使用されてもよい。
【００５０】
3つのコア("CX")電圧投票の単一のセット210を受信した後、電圧オプティマイザ101は、単一のセット210を単一の最適化されたコア電圧(V_opt prime')215に絞り込む。電圧オプティマイザ101は、要求コア電圧レベル(CX V_req)および最大コア電圧レベル(CX V_limit)によって定義される範囲内である最適なコア電圧レベル(CX V_opt)に最も近い電圧を決定することによって、電圧投票の単一のセット210をコア電圧(V_opt prime')に絞り込む。
【００５１】
電圧オプティマイザ101は、次いで、単一の最適化されたコア電圧(V_opt prime')215をコア電圧プランセレクタモジュール201へ送信する。コア電圧プランセレクタモジュール201は、(V_opt prime')215に最も近い電圧プランの所定の電圧レベルのうちの1つを選択する。コア電圧プランセレクタモジュール201によるこの選択結果は、PCD100全体、またはPCD100内の共有電力領域のためのコア電圧220となり、電力管理集積回路(PMIC)107へ通信される。
【００５２】
いくつかの例示的な実施形態では、いくつかの異なる共有「電圧領域」または「電力領域」が、PCD100内に共存してもよい。これは、PCD100の中のいくつかのサブシステムが、互いに対して相異なり無関係となる電圧レベルで動作してもよく、複数の電圧オプティマイザ101がPCD100内に存在してもよいように、サブコンポーネントの各セットに対して電圧オプティマイザが存在してもよいことを意味する。
【００５３】
コア電圧プランセレクタモジュール201が、このモジュール201が任意であることを示すために、破線を用いて示されている。いくつかの例示的な実施形態では、コア電圧プランセレクタモジュール201の機能/動作は、電圧オプティマイザ101によって実行されてもよく、したがって、当業者によって理解されるように、コア電圧プランセレクタモジュール201は省かれてもよい。
【００５４】
コア電圧220が確立されると、カメラサブシステム148、モバイルディスプレイ128、130などの各サブシステムの中に存在してもよい周波数性能エンハンサモジュール203は、監視ライン225(単に概念的/論理的な線であり、PCD100内の物理的な線ではない)によって示されるようなPCD100の実際および現在の電圧レベルを監視してもよい。各周波数性能エンハンサモジュール203は、概念的な監視ライン225によって示されるようなPCD100の現在の電圧レベルまたは電力領域を監視することと平行して、そのサブシステムの温度を熱センサ157を用いて監視してもよい。
【００５５】
各周波数性能エンハンサモジュール203は、次いで、それぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)の監視された電圧および現在の温度に基づいて、そのサブシステムのリーク電力を推定してもよい。リーク電力がそれぞれのサブシステムに対して推定されると、周波数性能エンハンサモジュール203は、測定されている現在の電圧レベルにおけるエネルギー効率を最大にするために、サブシステムの動作周波数または実際の周波数(F_act)ならびにサブシステムの電力消失継続時間を、この推定されたリーク電力に基づいて最適化してもよい。多重化サブシステムでは、周波数性能エンハンサモジュール203は、F_actおよび電力消失継続時間を、F_actおよびコア電圧220において、作業負荷を処理するのに最も効率のよい電力消費を行う処理エンジンの組合せに基づいて選択してもよい。
【００５６】
サブシステムが、そのすべての利用可能な処理エンジンを動作させていようと、その利用可能な処理エンジンの組合せだけを動作させていようと、サブシステムにおける最適化された動作周波数または実際の周波数(F_act)は、通常、所与のまたは現在のコア電圧レベル220において最もエネルギー効率のよい動作周波数である。周波数性能エンハンサモジュール203は、最も効率のよいF_actを決定するためのテーブルにアクセスしてもよい。特定のサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)に対する所与の電圧レベルにおいて利用可能な周波数を列挙している以下のTable 1(表1)を参照する。この例示的なTable 1(表2)では、提示された値は、自由に使える単一の処理エンジンを有するモバイルディスプレイプロセッサ128サブシステム(すなわち、例示的なMDP128は多重化されていない)についての値である。各サブシステムは、当業者によって理解されるように、それ自体のテーブル/エントリを有することになる。周波数性能エンハンサモジュール203は、それぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)に対するそれぞれのテーブルに列挙された、現在の電圧レベルにおいてサブシステムに対して利用可能な周波数および処理エンジン組合せを使用する計算を実行してもよい。
【００５７】
【表２】
2017527888.tif 000004
【００５８】
たとえば、周波数性能エンハンサモジュール203は、PCD100の特定のサブシステムのための動作周波数を、ステップアップまたはステップダウンしてもよい。加えて、多重化サブシステムでは、周波数性能エンハンサモジュール203は、アクティブな、かつ作業負荷を処理している処理エンジンの組合せを調整してもよい。動作周波数および/またはアクティブな処理エンジンの組合せでのそのような調整は、当業者によって理解されるように、PCD100の個々のサブシステムによって消費されるリーク電力を最小限に抑える場合がある。
【００５９】
サブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)の動作周波数または実際の周波数(F_act)を最適化するために、それぞれのサブシステムの周波数性能エンハンサモジュール203は、共有電力領域の上でのさらなる電圧マージンを利用し、アイドル時間の間のリークを最小限に抑えるために、サブシステムがPMIC107からの所与の電圧レベル220で動作することができる最大の可能な周波数と、電力消失の最長の継続時間とを見つけてもよい。最大の可能な周波数は、次いで、最適化された動作周波数または実際の周波数(F_act)として設定されてもよい。
【００６０】
最大の可能な周波数(F_act)を見つけるために、周波数性能エンハンサモジュール203は、以下の例示的なサブシステム周波数パラメータ209、すなわち、(a)サブシステムのための現在の作業負荷(workload)、(b)(サブシステムが多重化されている場合に)利用可能な処理エンジンの複数の組合せによって現在の作業負荷を処理するために必要とされる最小動作周波数(F_req)、(c)(サブシステムが多重化されている場合に)利用可能な処理エンジンの複数の組合せについての、コア電圧範囲内で利用可能な最もエネルギー効率のよい(理想的な)動作周波数(F_opt)、および(d)所与の電力配分および/または電圧制限のもとで利用可能な最大動作周波数(F_limit)のうちの任意のものを評価してもよい。
【００６１】
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によって、アクティブな(実行)時間を最小限に抑えるためにそのそれぞれのサブシステムの現在の電圧レベルにおいて可能な最大周波数に設定されてもよい。
【００６２】
図2Bは、図2Aのシステムの多重化サブシステムにおける最適な処理エンジン組合せおよび周波数設定を選択するためのシステムを示す、機能ブロック図である。上述されたように、図2Bの例の例示的な共有電力領域の中に示される、多重化CAMSS148、コーデック134、および「他の」機能ブロックなどの、電力領域の中の様々なサブシステムは、それらの好ましい電圧レベルに投票した可能性がある。図2Bの例におけるCAMSS148は、多重化されているので、その処理エンジン(すなわちイメージプロセッサ0、1、2、および3)のサブセットに基づく好ましい電圧レベルに投票した可能性がある。すなわち、多重化CAMSS148は、投票を行うように求められると、その動作温度、作業負荷、サービス品質("QoS")期待値、および他のファクタを考慮して、その最も効率のよい処理モードが、たとえば、イメージプロセッサ0、イメージプロセッサ1、およびイメージプロセッサ3が、(イメージプロセッサ2が必要とされず、したがって電力消失されるかまたはアイドル状態に遷移した状態で)ある特定の周波数および電圧レベルで稼働することであると決定した可能性がある。その結果、CAMSS148からの投票は、そのような決定によって決まる最適な電圧を含んでいた可能性がある。
【００６３】
しかしながら、上述されたように、共有電力領域に最終的に供給される電圧レベル220は、図2Bの例におけるCAMSS148によって投票されたものと同じ電圧にならないことがある。そのような状況では、多重化CAMSS148において実行されている特定の処理エンジンおよび周波数が、最も電力効率のよい組合せにはならないことがある。
【００６４】
たとえば、CAMSS148がその投票を行い、投票の時点でアクティブに供給されていた電圧レベルに基づいて、そのイメージプロセッサ4つすべてを、所与の周波数で動作させていたと考えられたい。さらに、「勝利を獲得した」投票により、共有電力領域に供給される電圧レベル220が決まり、それが、CAMSS148が4つのイメージプロセッサすべてを動作させているときにCAMSS148によって必要とされる最適電圧レベルを超えていたと考えられたい。そのようなシナリオでは、多重化CAMSS148は、それがアクティブに動作させている処理エンジンの数を調整しない場合、効率が悪くなることがある。すなわち、4つのイメージプロセッサすべてを、新たに高められた電圧レベル220で引き続き動作させることによって、CAMSS148は、新たに高められた電圧レベル220によって推進される、高められた動作条件を活かし損なうことがある。CAMSS148が調整しなかった場合、結果として、コア利用の効率が悪くなり、動的電力消費がより高くなることがある。
【００６５】
有利には、本解決策の実施形態は、図2Bの例における例示的な多重化CAMSS148などの多重化サブシステムが、それがアクティブに動作させているコアに供給される周波数を調整することに加えて、そのようなコアの数を修正することも可能にし、それにより、共有電力領域に供給される電圧レベル220が、必要とされるよりも高いときでさえ、その作業負荷に対して電力消費が最適化される。上述されたように、電圧レベル220に応答してコアの最適な組合せおよび最適周波数を決定するために、CAMSS148に関連付けられている周波数性能エンハンサ203Aは、温度読取値などの様々な入力を考慮し、次いで、ルックアップテーブルまたは電力モデルを調べてもよい。その後、イメージプロセッサの識別された組合せが、残りの必要とされないイメージプロセッサが電力消失されるかまたは省電力モードに遷移した状態で、アクティブにされ、電圧レベル220が最適周波数において送達されてもよい。このようにして、多重化サブシステムは、それが関連付けられている共有電力領域に従って高電圧レベルが送達されると、その電力消費を最適化してもよい。
【００６６】
ここで図3Aを参照すると、この図は、PCD100内の電力消費を低減するために、PCD100のコア電圧レベルを最適化するとともにPCD100内の個々のサブシステムの周波数性能を向上させるための方法300を示す論理フローチャートである。ブロック305は、方法300の最初のステップである。ブロック305において、PCD100内の各サブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)は、静的な情報を決定してもよい。そのような静的な情報は、それを含むことに限定はしないが、それぞれのサブシステム内で利用可能な処理エンジンの数、それぞれのサブシステム内のリーク電流(IDDQ)の現在のレベルなどを含んでもよい。
【００６７】
次に、ブロック310において、各サブシステム--通常はそれぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)内のCPUは、PCD100内の動的な情報を評価してもよい。そのような動的な情報は、限定はしないが、各サブシステムの現在の温度および各サブシステムの現在の作業負荷を含んでもよい。
【００６８】
ブロック315において、各サブシステム--通常はそれぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)内のCPUは、図2Aおよび図2Bに関して上述された電圧投票205に相当する複数の電圧値を計算してもよい。詳細には、各サブシステムは、要求電圧レベル(V_req)、最適電圧レベル(V_opt)、および最大電圧レベル(V_limit)を備える少なくとも3つの異なる電圧値を計算してもよい。多重化サブシステムの場合、電圧投票205は、利用可能な処理エンジンのサブセットに基づいてもよい。
【００６９】
次に、ブロック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を集約または総計する。
【００７０】
その後、ブロック325において、電圧オプティマイザ101は、PCD100にわたる例示的な共有電力領域にとってエネルギー効率のよい電圧レベルである、図2Aに関して上述されたような単一の最適化されたコア電圧(V_opt prime')215を決定してもよい。次に、決定ブロック327において、電圧オプティマイザ101は、現在の電圧レベルがブロック325において計算された単一のコア電圧(V_opt prime')よりも高いかどうかを決定する。決定ブロック327への照会が否定である場合、"NO"分岐はブロック330に進む。
【００７１】
決定ブロック327への照会が肯定である場合、"YES"分岐はルーチンブロック329に進む。ルーチンまたはサブメソッドブロック329において、各サブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)の動作周波数は、次いで、周波数性能エンハンサ203を用いて最適化されてもよい。さらに、このルーチンブロック329において、各周波数性能エンハンサ203はまた、そのそれぞれのサブシステムにとっての処理コア組合せ(多重化サブシステムに関連付けられている場合)、および電力消失継続時間を、最適化された周波数に従って最適化してもよい。動作周波数、処理エンジン組合せおよび電力消失継続時間のこの最適化は、PCD100内の各サブシステムに対してリーク電力を最小限に抑える場合がある。ルーチンブロック329のさらなる詳細は、図3Bに関して以下で説明される。このルーチンブロック329により、周波数は、ステップ330における電圧変更の前にステップ325において決定された電圧にとって最適化された値に調整されることが可能である。
【００７２】
ブロック330において、電圧オプティマイザ101は、最適化されたコア電圧(V_opt prime')215をコア電圧プランセレクタモジュール201へ通信してもよい。コア電圧プランセレクタモジュール201は、次いで、最適化されたコア電圧(V_opt prime')215に対応する複数の所定の電圧レベル(すなわち、レベル1、レベル2、レベル3、レベル4など)のうちの1つから選択してもよい。上述のように、代替として、コア電圧プランセレクタモジュール201が設けられていない場合、電圧オプティマイザ101がコア電圧プランセレクタモジュール201の代わりに電圧レベルを選択してもよい。選択された電圧レベルは、PCD100全体またはPCD100内のある特定の電力領域のための、共有電力領域の電圧レベルとなる。
【００７３】
共有電力領域の電圧レベルがブロック330において設定された後、次いで、ルーチンまたはサブメソッドブロック335において、各サブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)の動作周波数は、次いで、電圧が上昇している場合のみ周波数性能エンハンサ203を用いて最適化されてもよい。言い換えれば、決定ブロック327が肯定であり"YES"分岐に進んだ場合、周波数の最適化がすでにルーチンブロック329において実行されたことになるので、このルーチンブロック335は省かれてもよい。さらに、このルーチンブロック335において、各周波数性能エンハンサ203はまた、そのそれぞれのサブシステムにとっての電力消失継続時間を、最適化された周波数と、サブシステムが多重化されている場合には最適化された処理エンジン組合せとに従って、最適化してもよい。動作周波数、処理エンジン組合せおよび電力消失継続時間のこの最適化は、PCD100内の各サブシステムにとってのリーク電力を最小限に抑える場合がある。
【００７４】
図2Aおよび図2Bに関して上述されたように、PCD100の各サブシステムは、ハードウェア、ソフトウェア、および/またはそれらの組合せを備えてもよい周波数性能エンハンサ203が設けられてもよい。それぞれのサブシステムの各周波数性能エンハンサ203は、その動作周波数を最適化し、処理エンジンの組合せを選択し、かつ/またはその最適な電力消失継続時間を計算するために、いくらかの異なる計算を実行してもよい。このルーチンブロック335のさらなる詳細は、図3Bに関して以下で説明される。
【００７５】
ルーチンブロック335の後、ブロック340において、各サブシステムは、所定の継続時間にわたってそのそれぞれの作業負荷を処理し続ける。その後、決定ブロック345において、各サブシステム--通常はそれぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)内のCPUは、次いで、作業負荷の変更がPCD100内の共有電力領域にとって最適な動作周波数および最適な電圧がいくらであるかに影響を及ぼす場合があるので、その作業負荷が変更されたかどうかを決定してもよい。
【００７６】
決定ブロック345への照会が否定である場合、"NO"分岐はブロック340へ戻る。決定ブロック345への照会が肯定である場合、"YES"分岐はブロック310へ進む。
【００７７】
ここで図3B、サブシステムの動作周波数を最適化し、多重化サブシステムにおける処理エンジン組合せを決定し、PCD100内のサブシステムの電力消失継続時間を最適化するための、図3Aの方法300のサブメソッドまたはルーチン329、335を参照する。ブロック350は、サブメソッドまたはルーチン335の最初のブロックである。ブロック350において、それぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)の各周波数性能エンハンサ203は、熱センサ157によって測定されるその現在の温度、ブロック330において確立された現在の電圧、およびアクティブな処理エンジンの数に基づいて、そのリーク電力を推定してもよい。
【００７８】
次に、決定ブロック355において、各周波数性能エンハンサ203は、そのそれぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)に関するそのリーク電力の推定値が、設定されたまたは所定のしきい値よりも大きいかどうかを判定してもよい。リーク電力のこの設定されたまたは所定のしきい値は、PCD100の製造業者によって望まれるように静的に設定または動的に設定されてもよい。
【００７９】
決定ブロック355への照会が否定である場合、"NO"分岐に進み、サブメソッド335は、図3Aのブロック329または340のいずれかに戻る。決定ブロック355への照会が肯定である場合、"YES"分岐はブロック360に進む。
【００８０】
ブロック360において、各それぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)の周波数性能エンハンサ203は、それぞれのサブシステムの現在の作業負荷を決定してもよい。次に、決定ブロック363において、サブメソッドは、周波数性能エンハンサ203が関連付けられている特定のサブシステムが、多重化サブシステムであるかどうかを決定する。サブシステムが、多重化されていない、すなわち、その作業負荷のための単一の処理エンジンしか有していない場合、"NO"分岐はブロック365に進む。そうでない場合、"YES"分岐はブロック375に進む。
【００８１】
ブロック365において、それぞれのサブシステムの周波数性能エンハンサモジュール203は、共有電力領域の上でのさらなる電圧マージンを利用し、アイドル時間の間のリークを最小限に抑えるために、サブシステムがPMIC107からの所与の電圧レベルで動作してもよい最大の可能な周波数と、電力消失の最長の継続時間とを見つけてもよい。ブロック365のさらなる詳細は、図4に関して以下で説明される。ブロック370において、最大の可能な周波数は、次いで、周波数性能エンハンサモジュール203によって、この電力消失継続時間に基づいて最適化された動作周波数または実際の周波数(F_act)として設定されてもよい。方法は、次いで、図3Aのブロック329または340のいずれかに戻る。
【００８２】
決定ブロック363に戻ると、特定のサブシステムが多重化されている場合、"YES"分岐はブロック375に進む。ブロック375において、多重化サブシステムの周波数性能エンハンサモジュール203は、共有電力領域の上でのさらなる電圧マージンを利用し、アイドル時間の間のリークを最小限に抑えるために、サブシステムの利用可能な処理エンジンのサブセットがPMIC107からの所与の電圧レベルで動作してもよい最大の可能な周波数と、電力消失の最長の継続時間とを見つけてもよい。ブロック375のさらなる詳細は、図4に関して以下で説明される。ブロック380において、この電力消失継続時間に基づいて、最大の可能な周波数が次いで、周波数性能エンハンサモジュール203によって、最適化された動作周波数または実際の周波数(F_act)として設定されるとともに、アクティブな処理エンジンの最適な組合せが設定されてもよい。方法は、次いで、図3Aのブロック330または340のいずれかに戻る。
【００８３】
1つの例示的な実施形態では、ブロック365、375における電力消失継続時間の計算に加えて、ブロック365、375において周波数性能エンハンサモジュール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など)の現在の電圧レベルにおいて可能な最大周波数に設定するとともに、多重化サブシステムにおいて利用可能な処理コンポーネントのすべてまたはサブセットを許可してもよい。
【００８４】
ここで図4を参照すると、この図は、単一の利用可能な処理コンポーネントを有するサブシステムに関連付けられているそれぞれの周波数性能エンハンサモジュール203による、電力消失継続時間またはアイドル状態継続時間の計算に有用な2つのグラフ365A〜Bの例である。とりわけ、図4の例は、単一の利用可能な処理コンポーネントを有するサブシステムの文脈内で説明されているが、多重化システムにおいて利用可能な処理エンジンの複数の組合せに対して、それぞれの周波数性能エンハンサモジュール203によって類似の計算が行われてもよいことが、当業者には明らかであろう。したがって、多重化サブシステムに関連付けられている周波数性能エンハンサモジュール203は、多重化サブシステムがすべての利用可能な処理エンジンを動作させているときに多重化サブシステムにとって最適となり得るものを超す電力レベルを供給する共有電力領域内で、作業負荷を処理するのに最適な処理エンジンの組合せを識別してもよい。
【００８５】
上述のように、図3Bのブロック365において、それぞれのサブシステムの周波数性能エンハンサモジュール203は、共有電力領域の上でのさらなる電圧マージンを利用し、アイドル時間の間のリークを最小限に抑えるために、サブシステムがPMIC107からの所与の電圧レベルで動作することができる最大の可能な周波数と、電力消失の最長の継続時間とを見つけてもよい。
【００８６】
それぞれのサブシステム(CAMSS148、MDP128、130、バス220、コーデック134など)にとって最大の可能な周波数を見つけるために、周波数性能エンハンサモジュール203は、図4に示すように電力値を時間上にプロットすることによって、アクティブな動的電力および失われるリーク電力を評価してもよい。第1の電力消失継続時間の計算プロット365Aは、サブシステムに関する作業負荷時間を追跡するX軸410Aに対してプロットされたサブシステムの電力を追跡するY軸405Aを有するグラフを備えてもよい。たとえば、サブシステムがコーデック134を備える場合、作業負荷および作業負荷終了時間はビデオデータのためのビデオフレーム継続時間を追跡してもよい。
【００８７】
電力消失継続時間またはアイドル状態継続時間の第1のグラフ365において、コーデックサブシステム134のコア電圧は、コーデックサブシステム134によって拡張型電圧アグリゲータ103に提起された電圧投票に等しく設定されてもよい。この電圧設定は、第1の継続時間を有するアクティブな動的電力消費425A、および第1の継続時間を有するリーク電力損失420Aをもたらす。電圧設定はまた、第1の継続時間を有する消失した電力状態またはアイドル電力状態367Aをもたらし、第1の継続時間の間、電力消費は、サブシステムが電力消失されている場合の事実上「0」の消失リーク415となるか、またはサブシステムがアイドル状態に遷移する場合の低アイドルリーク416となり得る。
【００８８】
システム104全体のコア電圧値(CX_voltage)220がコーデックサブシステム134などのサブシステムの電圧投票よりも大きい場合、周波数性能エンハンサモジュール203は、サブシステム134のリーク電力損失420Bを低減し、消失した電力状態367Bを増大させるために、より高い周波数を用いて試みてもよい。サブシステム134に対する電圧のそのような増大は、サブシステム134がより高い周波数で動作し、その作業負荷をより迅速に終わらせることを可能にする場合がある。次に、図4に示すように、消失した電力状態367Bの継続時間が増大する。これは、サブシステム134の電圧と動作周波数の両方が増大するとき、第1のグラフ365Aに示す同じ作業負荷が、第2のグラフ365Bに示されるようなより少ない時間の量で完了される場合があることを意味する。図示されない別の例示的な実施形態によれば、電圧オプティマイザ101および/または電圧アグリゲータは、V_req(これを動作させる際に必須であり、そのためこの電圧を必要とする)での投票のみを受信してもよく、V_optまたはV_limitのいずれかを受信しなくてもよい。
【００８９】
本発明が説明されたように機能するために、本明細書において説明されるプロセスまたはプロセスフローにおけるいくつかのステップが他のステップに先行するのは当然である。しかしながら、そのような順序またはシーケンスが本発明の機能を変更しない場合には、本発明は、説明されたステップの順序に限定されない。すなわち、本発明の範囲および趣旨から逸脱することなく、いくつかのステップは、他のステップの前に実行されるか、後に実行されるか、または他のステップと並行して(実質的に同時に)実行される場合があることを認識されたい。場合によっては、本発明から逸脱することなく、いくつかのステップは、省略されてもよく、または実行されなくてもよい。さらに、「その後」、「次いで」、「次に」などの言葉は、ステップの順序を限定するものではない。これらの言葉は単に、例示的な方法の説明を理解できるように読者を導くために使用される。
【００９０】
さらに、プログラミングに関する当業者は、たとえば、本明細書におけるフローチャートおよび関連する説明に基づいて、難なく、開示される発明を実施するコンピュータのコードを書くことができるか、または実施するのに適したハードウェアおよび/もしくは回路を特定することができる。
【００９１】
したがって、プログラムコード命令または詳細なハードウェアデバイスの特定のセットの開示は、本発明をどのように製作および使用するのかを十分に理解するために必要であるとは見なされない。特許請求されるコンピュータ実施プロセスの発明性のある機能は、上記の説明において、かつ様々なプロセスフローを示す場合がある図面とともに、より詳細に説明される。
【００９２】
1つまたは複数の例示的な態様では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。ソフトウェアにおいて実施される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されてもよく、またはコンピュータ可読媒体上で送信されてもよい。
【００９３】
本明細書の文脈では、コンピュータ可読媒体は、コンピュータ関連のシステムもしくは方法によって、またはそれと関連して使用するために、コンピュータプログラムおよびデータを格納または記憶してもよい、電子式、磁気式、光学式、もしくは他の物理デバイスまたは手段である。様々な論理素子およびデータストアは、コンピュータベースのシステム、プロセッサを含むシステム、または命令実行システム、装置、もしくはデバイスから命令をフェッチし、命令を実行することができる他のシステムなどの、命令実行システム、装置、もしくはデバイスによって、またはそれと関連して使用するために、任意のコンピュータ可読媒体に組み込まれてもよい。本明細書の文脈では、「コンピュータ可読媒体」は、命令実行システム、装置、もしくはデバイスによって、またはそれと関連して使用するためのプログラムを記憶、通信、伝搬、または伝送する場合がある任意の手段を含んでもよい。
【００９４】
コンピュータ可読媒体は、たとえば、限定はしないが、電子、磁気、光学、電磁、赤外線、または半導体のシステム、装置、デバイス、または伝搬媒体であることができる。コンピュータ可読媒体のより具体的な例(非包括的なリスト)は、以下のもの、すなわち、1つまたは複数のワイヤを有する電気的接続(電子的)、ポータブルコンピュータディスケット(磁気的)、ランダムアクセスメモリ(RAM)(電子的)、リードオンリーメモリ(ROM)(電子的)、消去可能プログラム可能リードオンリーメモリ(EPROM、EEPROM、またはフラッシュメモリ)(電子的)、光ファイバ(光学的)、およびポータブルコンパクトディスクリードオンリーメモリ(CDROM)(光学的)を含むことになる。プログラムは、たとえば、紙または他の媒体の光学的走査を用いて電子的に取り込まれ、次いで、コンパイルされ、解釈され、または必要なら別のやり方で適切に処理され、次いで、コンピュータメモリに記憶されることが可能であるので、コンピュータ可読媒体は、そこにプログラムが印刷された紙または別の適当な媒体でさえあってよいことに留意されたい。
【００９５】
コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされてもよい任意の利用可能な媒体であってもよい。限定ではなく例として、そのようなコンピュータ可読媒体は、任意の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使用されてもよく、コンピュータによってアクセスされてもよい任意の他の媒体を含んでもよい。
【００９６】
同様に、任意の接続が、適切にコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線("DSL")、または、赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または、赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【００９７】
ディスク(disk)およびディスク(disc)は、本明細書において使用されるとき、コンパクトディスク(disc)("CD")、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)("DVD")、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記のものの組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【００９８】
したがって、選択された態様が詳細に図示および説明されているが、以下の特許請求の範囲によって定義されるような本発明の趣旨および範囲から逸脱することなく、各態様において様々な置換および改変が行われてもよいことが理解されよう。
【符号の説明】
【００９９】
100  ポータブルコンピューティングデバイス
101  電圧オプティマイザ
102  オンチップシステム
103  拡張型電圧アグリゲータ
104  システム
107  電力管理集積回路、PMIC
110  マルチコア中央処理装置
112  メモリ
126  アナログ信号プロセッサ
128  ディスプレイコントローラ、モバイルディスプレイ、モバイルディスプレイプロセッサ、MDP
130  タッチスクリーンコントローラ、モバイルディスプレイ、MDP
132  タッチスクリーンディスプレイ
134  ビデオデコーダ、ビデオコーデック
136  ビデオ増幅器
138  ビデオポート
140  ユニバーサルシリアルバスコントローラ
142  USBポート
146  加入者識別モジュールカード
148  カメラサブシステム、多重化CAMSS
150  ステレオオーディオコーデック
152  オーディオ増幅器
154  第1のステレオスピーカ
156  第2のステレオスピーカ
157  熱センサ
158  マイクロフォン増幅器
160  マイクロフォン
162  周波数変調ラジオチューナ
164  FMアンテナ
166  ステレオヘッドフォン
168  無線周波数トランシーバ
170  RFスイッチ
172  RFアンテナ
174  キーパッド
176  マイクロフォン付きモノヘッドセット
178  バイブレータデバイス
180  電源
201  コア電圧プランセレクタモジュール
203  周波数性能エンハンサモジュール
203A  周波数性能エンハンサ
205  電圧投票
207  電力モデル
209  サブシステム周波数パラメータ
215  最適化された電圧レベル
220  システム通信バス、コア電圧、コア電圧レベル
220  コア電圧
222  第0のコア
224  第1のコア
230  第Nのコア
367A  消失した電力状態またはアイドル電力状態
415  消失リーク
416  低アイドルリーク
N  他のサブシステム
【図１Ａ】
2017527888.tif 000005
【図１Ｂ】
2017527888.tif 000006
【図２Ａ】
2017527888.tif 000007
【図２Ｂ】
2017527888.tif 000008
【図３Ａ】
2017527888.tif 000009
【図３Ｂ】
2017527888.tif 000010
【図４】
2017527888.tif 000011
【手続補正書】
【提出日】平成29年1月24日(2017.1.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ポータブルコンピューティングデバイスの個々のサブシステムによる電力使用を最適化するための方法であって、
前記ポータブルコンピューティングデバイス内の複数のサブシステムの各々に対して、電圧値投票を決定するステップであって、
前記複数のサブシステムの各々は、共有電力領域に関連付けられており、それにより、前記複数のサブシステムの各々に、前記共有電力領域によって規定される電圧レベルが供給され、
前記電圧値投票は、要求電圧レベル、最適電圧レベル、および最大電圧レベルを備え、
前記複数のサブシステムのうちの少なくとも1つは、複数の処理エンジンを備える多重化サブシステムである、ステップと、
電圧値の低減されたセットを計算するステップであって、電圧値の前記低減されたセットは、前記電圧値投票から導出され、前記電圧値投票によって示されるすべての要求電圧レベルのうちの最大値である単一の要求電圧レベルと、前記電圧値投票によって示されるすべての最大電圧レベルのうちの最小値である単一の最大電圧レベルと、前記単一の要求電圧レベルおよび前記単一の最大電圧レベルによって定義される範囲内である単一の最適電圧レベルとからなる、ステップと、
前記共有電力領域に対して最適化された電圧レベルを、電圧値の前記低減されたセットから決定するステップと、
前記最適化された電圧レベルが前記共有電力領域の現在の電圧レベルよりも高い場合、前記共有電力領域を前記最適化された電圧レベルに設定するステップと、
前記最適化された電圧レベルが、前記少なくとも1つの多重化サブシステムに関連する前記電圧値投票によって示される要求電圧レベルを超えていることを決定するステップと、
前記最適化された電圧レベルが、前記少なくとも1つの多重化サブシステムに関連する前記電圧値投票によって示される前記要求電圧レベルを超えているとの決定に応答して、前記少なくとも1つの多重化サブシステム内に備えられた前記複数の処理エンジンのサブセットを識別するステップと、
前記少なくとも1つの多重化サブシステムに割り振られた作業負荷を、処理エンジンの前記サブセットを用いて処理するステップと
を備える方法。
【請求項２】
前記作業負荷を、処理エンジンの前記サブセットを用いて処理するステップは、前記多重化サブシステムに供給される電力周波数レベルを前記最適化された電圧レベルに基づいて最適化するステップを備える、請求項1に記載の方法。
【請求項３】
少なくとも1つのサブシステムは、カメラ、ディスプレイ、通信バス、ビデオコーダ、ビデオデコーダ、および信号プロセッサのうちの1つを備える、請求項1に記載の方法。
【請求項４】
サブシステムのリーク電力を、温度および前記最適化された電圧レベルのうちの少なくとも1つに基づいて推定するステップをさらに備える、請求項1に記載の方法。
【請求項５】
前記作業負荷を、処理エンジンの前記サブセットを用いて処理するステップは、処理エンジンの前記サブセットの中にない1つまたは複数の処理エンジンを、電力消失された状態に遷移させるステップをさらに備える、請求項1に記載の方法。
【請求項６】
処理エンジンの前記サブセットの中にない前記1つまたは複数の処理エンジンにとっての最適な電力消失継続時間を決定するステップをさらに備える、請求項5に記載の方法。
【請求項７】
前記ポータブルコンピューティングデバイスは、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレスの接続またはリンクを用いるハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項1に記載の方法。
【請求項８】
ポータブルコンピューティングデバイスの個々のサブシステムによる電力使用を最適化するためのコンピュータシステムであって、
前記ポータブルコンピューティングデバイス内の複数のサブシステムの各々に対して、電圧値投票を決定し、
前記複数のサブシステムの各々は、共有電力領域に関連付けられており、それにより、前記複数のサブシステムの各々に、前記共有電力領域によって規定される電圧レベルが供給され、
前記電圧値投票は、要求電圧レベル、最適電圧レベル、および最大電圧レベルを備え、
前記複数のサブシステムのうちの少なくとも1つは、複数の処理エンジンを備える多重化サブシステムであり、
電圧値の低減されたセットを計算し、電圧値の前記低減されたセットは、前記電圧値投票から導出され、前記電圧値投票によって示されるすべての要求電圧レベルのうちの最大値である単一の要求電圧レベルと、前記電圧値投票によって示されるすべての最大電圧レベルのうちの最小値である単一の最大電圧レベルと、前記単一の要求電圧レベルおよび前記単一の最大電圧レベルによって定義される範囲内である単一の最適電圧レベルとからなり、
前記共有電力領域に対して最適化された電圧レベルを、電圧値の前記低減されたセットから決定し、
前記最適化された電圧レベルが前記共有電力領域の現在の電圧レベルよりも高い場合、前記共有電力領域を前記最適化された電圧レベルに設定し、
前記最適化された電圧レベルが、前記少なくとも1つの多重化サブシステムに関連する前記電圧値投票によって示される要求電圧レベルを超えていることを決定し、
前記最適化された電圧レベルが、前記少なくとも1つの多重化サブシステムに関連する前記電圧値投票によって示される前記要求電圧レベルを超えているとの決定に応答して、前記少なくとも1つの多重化サブシステム内に備えられた前記複数の処理エンジンのサブセットを識別し、
前記少なくとも1つの多重化サブシステムに割り振られた作業負荷を、処理エンジンの前記サブセットを用いて処理する
ために動作可能なプロセッサを備えるコンピュータシステム。
【請求項９】
前記作業負荷を、処理エンジンの前記サブセットを用いて処理することは、前記多重化サブシステムに供給される電力周波数レベルを前記最適化された電圧レベルに基づいて最適化することを備える、請求項8に記載のシステム。
【請求項１０】
少なくとも1つのサブシステムは、カメラ、ディスプレイ、通信バス、ビデオコーダ、ビデオデコーダ、および信号プロセッサのうちの1つを備える、請求項8に記載のシステム。
【請求項１１】
前記プロセッサは、サブシステムのリーク電力を、温度および前記最適化された電圧レベルのうちの少なくとも1つに基づいて推定するためにさらに動作可能である、請求項8に記載のシステム。
【請求項１２】
前記作業負荷を、処理エンジンの前記サブセットを用いて処理することは、処理エンジンの前記サブセットの中にない1つまたは複数の処理エンジンを、電力消失された状態に遷移させることをさらに備える、請求項8に記載のシステム。
【請求項１３】
前記プロセッサは、処理エンジンの前記サブセットの中にない前記1つまたは複数の処理エンジンにとっての最適な電力消失継続時間を決定するためにさらに動作可能である、請求項12に記載のシステム。
【請求項１４】
前記ポータブルコンピューティングデバイスは、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレスの接続またはリンクを用いるハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項8に記載のシステム。
【請求項１５】
コンピュータ可読プログラムコードを記憶したコンピュータ可読記録媒体であって、前記コンピュータ可読プログラムコードが、ポータブルコンピューティングデバイスの個々のサブシステムによる電力使用を最適化するための方法を実施するために実行されるように適合され、前記方法は、
前記ポータブルコンピューティングデバイス内の複数のサブシステムの各々に対して、電圧値投票を決定するステップであって、
前記複数のサブシステムの各々は、共有電力領域に関連付けられており、それにより、前記複数のサブシステムの各々に、前記共有電力領域によって規定される電圧レベルが供給され、
前記電圧値投票は、要求電圧レベル、最適電圧レベル、および最大電圧レベルを備え、
前記複数のサブシステムのうちの少なくとも1つは、複数の処理エンジンを備える多重化サブシステムである、ステップと、
電圧値の低減されたセットを計算するステップであって、電圧値の前記低減されたセットは、前記電圧値投票から導出され、前記電圧値投票によって示されるすべての要求電圧レベルのうちの最大値である単一の要求電圧レベルと、前記電圧値投票によって示されるすべての最大電圧レベルのうちの最小値である単一の最大電圧レベルと、前記単一の要求電圧レベルおよび前記単一の最大電圧レベルによって定義される範囲内である単一の最適電圧レベルとからなる、ステップと、
前記共有電力領域に対して最適化された電圧レベルを、電圧値の前記低減されたセットから決定するステップと、
前記最適化された電圧レベルが前記共有電力領域の現在の電圧レベルよりも高い場合、前記共有電力領域を前記最適化された電圧レベルに設定するステップと、
前記最適化された電圧レベルが、前記少なくとも1つの多重化サブシステムに関連する前記電圧値投票によって示される要求電圧レベルを超えていることを決定するステップと、
前記最適化された電圧レベルが、前記少なくとも1つの多重化サブシステムに関連する前記電圧値投票によって示される前記要求電圧レベルを超えているとの決定に応答して、前記少なくとも1つの多重化サブシステム内に備えられた前記複数の処理エンジンのサブセットを識別するステップと、
前記少なくとも1つの多重化サブシステムに割り振られた作業負荷を、処理エンジンの前記サブセットを用いて処理するステップと
を備えるコンピュータ可読記録媒体。
【請求項１６】
前記作業負荷を、処理エンジンの前記サブセットを用いて処理するステップは、前記多重化サブシステムに供給される電力周波数レベルを前記最適化された電圧レベルに基づいて最適化するステップを備える、請求項15に記載のコンピュータ可読記録媒体。
【請求項１７】
少なくとも1つのサブシステムは、カメラ、ディスプレイ、通信バス、ビデオコーダ、ビデオデコーダ、および信号プロセッサのうちの1つを備える、請求項15に記載のコンピュータ可読記録媒体。
【請求項１８】
前記方法を実施する前記コンピュータ可読プログラムコードは、サブシステムのリーク電力を、温度および前記最適化された電圧レベルのうちの少なくとも1つに基づいて推定するステップをさらに備える、請求項15に記載のコンピュータ可読記録媒体。
【手続補正書】
【提出日】平成29年8月10日(2017.8.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ポータブルコンピューティングデバイスの個々のサブシステムによる電力使用を最適化するための方法であって、
前記ポータブルコンピューティングデバイス内の複数のサブシステムに対して、複数の投票された電圧値を決定するステップであって、前記複数のサブシステムの各々は、共有電力領域に関連付けられており、それにより、前記複数のサブシステムの各々に、前記共有電力領域によって規定される同じ電圧レベルが供給され、前記複数のサブシステムのうちの少なくとも1つは、複数の処理エンジンを備える多重化サブシステムである、ステップと、
前記複数の投票された電圧値に基づいて電圧値の低減されたセットを決定するステップであって、電圧値の前記低減されたセットは、3つの電圧レベルを含む、ステップと、
エネルギー効率電圧レベルを、前記3つの電圧レベルを含む電圧値の前記低減されたセットから計算するステップと、
現在の電圧レベルが前記エネルギー効率電圧レベルを超えていることを決定するステップと、
以下の
各サブシステムが前記エネルギー効率電圧レベルを超えている前記現在の電圧レベルで動作している間、前記エネルギー効率電圧レベルに基づいて各サブシステムに対して、エネルギー効率動作周波数と電力消失継続時間とを決定するステップと、
各サブシステムが前記エネルギー効率電圧レベルを超えている前記現在の電圧レベルで動作している間、各サブシステムをそのエネルギー効率動作周波数に設定するステップと、
前記複数の処理エンジンから、アクティブな処理エンジンのサブセットを識別するステップと、
前記共有電力領域を前記エネルギー効率電圧レベルに設定するステップと、
前記多重化サブシステムに割り振られた作業負荷を、前記エネルギー効率電圧レベルでアクティブな処理エンジンの前記サブセットを用いて処理するステップであって、前記作業負荷をアクティブな処理エンジンの前記サブセットを用いて処理することが、前記多重化サブシステムの電力使用効率を増大させる、ステップと
を順に実行することと
を備える方法。
【請求項２】
少なくとも1つのサブシステムは、カメラ、ディスプレイ、通信バス、ビデオコーダ、ビデオデコーダ、および信号プロセッサのうちの1つを備える、請求項1に記載の方法。
【請求項３】
サブシステムのリーク電力を、温度および前記エネルギー効率電圧レベルのうちの少なくとも1つに基づいて推定するステップをさらに備える、請求項1に記載の方法。
【請求項４】
前記作業負荷を、アクティブな処理エンジンの前記サブセットを用いて処理するステップは、アクティブな処理エンジンの前記サブセットの中にない1つまたは複数の処理エンジンを、電力消失された状態に遷移させるステップをさらに備える、請求項1に記載の方法。
【請求項５】
アクティブな処理エンジンの前記サブセットの中にない前記1つまたは複数の処理エンジンにとっての最適な電力消失継続時間を決定するステップをさらに備える、請求項4に記載の方法。
【請求項６】
前記ポータブルコンピューティングデバイスは、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレスの接続またはリンクを用いるハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項1に記載の方法。
【請求項７】
ポータブルコンピューティングデバイスの個々のサブシステムによる電力使用を最適化するためのコンピュータシステムであって、
前記ポータブルコンピューティングデバイス内の複数のサブシステムに対して、複数の投票された電圧値を決定することであって、前記複数のサブシステムの各々は、共有電力領域に関連付けられており、それにより、前記複数のサブシステムの各々に、前記共有電力領域によって規定される同じ電圧レベルが供給され、前記複数のサブシステムのうちの少なくとも1つは、複数の処理エンジンを備える多重化サブシステムである、決定することと、
前記複数の投票された電圧値に基づいて電圧値の低減されたセットを決定することであって、電圧値の前記低減されたセットは、3つの電圧レベルを含む、決定することと、
エネルギー効率電圧レベルを、前記3つの電圧レベルを含む電圧値の前記低減されたセットから計算することと、
現在の電圧レベルが前記エネルギー効率電圧レベルを超えていることを決定することと、
以下の
各サブシステムが前記エネルギー効率電圧レベルを超えている前記現在の電圧レベルで動作している間、前記エネルギー効率電圧レベルに基づいて各サブシステムに対して、エネルギー効率動作周波数と電力消失継続時間とを決定することと、
各サブシステムが前記エネルギー効率電圧レベルを超えている前記現在の電圧レベルで動作している間、各サブシステムをそのエネルギー効率動作周波数に設定することと、
前記複数の処理エンジンから、アクティブな処理エンジンのサブセットを識別することと、
前記共有電力領域を前記エネルギー効率電圧レベルに設定することと、
前記多重化サブシステムに割り振られた作業負荷を、前記エネルギー効率電圧レベルでアクティブな処理エンジンの前記サブセットを用いて処理することであって、前記作業負荷をアクティブな処理エンジンの前記サブセットを用いて処理することが、前記多重化サブシステムの電力使用効率を増大させる、処理することと
を順に実行することと
のために動作可能なプロセッサを備えるコンピュータシステム。
【請求項８】
少なくとも1つのサブシステムは、カメラ、ディスプレイ、通信バス、ビデオコーダ、ビデオデコーダ、および信号プロセッサのうちの1つを備える、請求項7に記載のシステム。
【請求項９】
前記プロセッサは、サブシステムのリーク電力を、温度および前記エネルギー効率電圧レベルのうちの少なくとも1つに基づいて推定するためにさらに動作可能である、請求項7に記載のシステム。
【請求項１０】
前記作業負荷を、アクティブな処理エンジンの前記サブセットを用いて処理することは、アクティブな処理エンジンの前記サブセットの中にない1つまたは複数の処理エンジンを、電力消失された状態に遷移させることをさらに備える、請求項7に記載のシステム。
【請求項１１】
前記プロセッサは、アクティブな処理エンジンの前記サブセットの中にない前記1つまたは複数の処理エンジンにとっての最適な電力消失継続時間を決定するためにさらに動作可能である、請求項10に記載のシステム。
【請求項１２】
前記ポータブルコンピューティングデバイスは、モバイル電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレスの接続またはリンクを用いるハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項7に記載のシステム。
【請求項１３】
ポータブルコンピューティングデバイスの個々のサブシステムによる電力使用を最適化するためのコンピュータシステムであって、
前記ポータブルコンピューティングデバイス内の複数のサブシステムに対して、複数の投票された電圧値を決定する手段であって、前記複数のサブシステムの各々は、共有電力領域に関連付けられており、それにより、前記複数のサブシステムの各々に、前記共有電力領域によって規定される同じ電圧レベルが供給され、前記複数のサブシステムのうちの少なくとも1つは、複数の処理エンジンを備える多重化サブシステムである、手段と、
前記複数の投票された電圧値に基づいて電圧値の低減されたセットを決定する手段であって、電圧値の前記低減されたセットは、3つの電圧レベルを含む、手段と、
エネルギー効率電圧レベルを、前記3つの電圧レベルを含む電圧値の前記低減されたセットから計算する手段と、
現在の電圧レベルが前記エネルギー効率電圧レベルを超えていることを決定する手段と、
各サブシステムが前記エネルギー効率電圧レベルを超えている前記現在の電圧レベルで動作している間、前記エネルギー効率電圧レベルに基づいて各サブシステムに対して、エネルギー効率動作周波数と電力消失継続時間とを決定する手段と、
各サブシステムが前記エネルギー効率電圧レベルを超えている前記現在の電圧レベルで動作している間、各サブシステムをそのエネルギー効率動作周波数に設定する手段と、
前記複数の処理エンジンから、アクティブな処理エンジンのサブセットを識別する手段と、
前記共有電力領域を前記エネルギー効率電圧レベルに設定する手段と、
前記多重化サブシステムに割り振られた作業負荷を、前記エネルギー効率電圧レベルでアクティブな処理エンジンの前記サブセットを用いて処理する手段であって、前記作業負荷をアクティブな処理エンジンの前記サブセットを用いて処理することが、前記多重化サブシステムの電力使用効率を増大させる、手段と
を備えるシステム。
【請求項１４】
少なくとも1つのサブシステムは、カメラ、ディスプレイ、通信バス、ビデオコーダ、ビデオデコーダ、および信号プロセッサのうちの1つを備える、請求項13に記載のシステム。
【請求項１５】
サブシステムのリーク電力を、温度および前記エネルギー効率電圧レベルのうちの少なくとも1つに基づいて推定する手段をさらに備える、請求項13に記載のシステム。
【請求項１６】
前記作業負荷を、アクティブな処理エンジンの前記サブセットを用いて処理することは、アクティブな処理エンジンの前記サブセットの中にない1つまたは複数の処理エンジンを、電力消失された状態に遷移させることをさらに備える、請求項13に記載のシステム。
【請求項１７】
コンピュータ可読プログラムコードを記憶したコンピュータ可読記録媒体であって、前記コンピュータ可読プログラムコードが、ポータブルコンピューティングデバイスの個々のサブシステムによる電力使用を最適化するための方法を実施するために実行されるように適合され、前記方法は、
前記ポータブルコンピューティングデバイス内の複数のサブシステムに対して、複数の投票された電圧値を決定するステップであって、前記複数のサブシステムの各々は、共有電力領域に関連付けられており、それにより、前記複数のサブシステムの各々に、前記共有電力領域によって規定される電圧レベルが供給され、前記複数のサブシステムのうちの少なくとも1つは、複数の処理エンジンを備える多重化サブシステムである、ステップと、
前記複数の投票された電圧値に基づいて電圧値の低減されたセットを決定するステップであって、電圧値の前記低減されたセットは、3つの電圧レベルを含む、ステップと、
エネルギー効率電圧レベルを、前記3つの電圧レベルを含む電圧値の前記低減されたセットから計算するステップと、
現在の電圧レベルが前記エネルギー効率電圧レベルを超えていることを決定するステップと、
以下の
各サブシステムが前記エネルギー効率電圧レベルを超えている前記現在の電圧レベルで動作している間、前記エネルギー効率電圧レベルに基づいて各サブシステムに対して、エネルギー効率動作周波数と電力消失継続時間とを決定するステップと、
各サブシステムが前記エネルギー効率電圧レベルを超えている前記現在の電圧レベルで動作している間、各サブシステムをそのエネルギー効率動作周波数に設定するステップと、
前記複数の処理エンジンから、アクティブな処理エンジンのサブセットを識別するステップと、
前記共有電力領域を前記エネルギー効率電圧レベルに設定するステップと、
前記多重化サブシステムに割り振られた作業負荷を、前記エネルギー効率電圧レベルでアクティブな処理エンジンの前記サブセットを用いて処理するステップであって、前記作業負荷をアクティブな処理エンジンの前記サブセットを用いて処理することが、前記多重化サブシステムの電力使用効率を増大させる、ステップと
を順に実行することと
を備えるコンピュータ可読記録媒体。
【請求項１８】
少なくとも1つのサブシステムは、カメラ、ディスプレイ、通信バス、ビデオコーダ、ビデオデコーダ、および信号プロセッサのうちの1つを備える、請求項17に記載のコンピュータ可読記録媒体。
【請求項１９】
前記方法を実施する前記コンピュータ可読プログラムコードは、サブシステムのリーク電力を、温度および前記エネルギー効率電圧レベルのうちの少なくとも1つに基づいて推定するステップをさらに備える、請求項17に記載のコンピュータ可読記録媒体。
【請求項２０】
前記作業負荷を、アクティブな処理エンジンの前記サブセットを用いて処理するステップは、アクティブな処理エンジンの前記サブセットの中にない1つまたは複数の処理エンジンを、電力消失された状態に遷移させるステップをさらに備える、請求項17に記載のコンピュータ可読記録媒体。
【国際調査報告】
2017527888.tif 000012
2017527888.tif 000013
2017527888.tif 000014