(58)【調査した分野】(Int.Cl.,DB名)
処理されるべき作業負荷を受け取るステップと、前記処理コアを前記第2のアイドル状態からアクティブ状態に移行させるステップとをさらに含む、請求項1に記載の方法。
前記ポータブルコンピューティングデバイスは、セルラー電話、衛星電話、携帯情報端末、スマートフォン、ナビゲーションデバイス、タブレット、スマートブック、メディアプレーヤ、およびラップトップコンピュータのうちの少なくとも1つを含む、請求項1に記載の方法。
【発明を実施するための形態】
【0010】
「例示的」という用語は、本明細書では「一例、事例、または実例として役立つ」ことを意味するように使用される。「例示的」として本明細書で説明されるいずれの態様も、排他的であるか、他の態様より好ましいか、または有利であると、必ずしも解釈されるべきでない。
【0011】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能な内容物を有するファイルを含むこともできる。さらに、本明細書において参照される「アプリケーション」は、また、公開されることが必要な場合がある文書またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能でないファイルを含む場合もある。
【0012】
本明細書において用いられるとき、「構成要素」、「データベース」、「モジュール」、「システム」、「熱エネルギー発生構成要素」、「処理構成要素」、「処理エンジン」、「アプリケーションプロセッサ」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピュータ関連エンティティを指すことを意図しており、機能を提供し、かつ本明細書において説明されるプロセスまたはプロセスフローにおける特定のステップを実行するための例示的な手段を表す。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピュータとすることができる。例示として、コンピューティングデバイス上で実行されるアプリケーションと、コンピューティングデバイスの両方を構成要素とすることができる。1つまたは複数の構成要素は、プロセス内および/または実行のスレッド内に存在している場合があり、構成要素は、1つのコンピュータに局在する場合があり、および/または、2つ以上のコンピュータ間で分散される場合がある。さらに、これらの構成要素は、そこに記憶される種々のデータ構造を有する種々のコンピュータ可読媒体から実行することができる。構成要素は、1つまたは複数のデータパケット(たとえば、ローカルシステム内、分散システム内の別の構成要素とやりとりし、および/または、信号によって他のシステムとインターネットなどのネットワークにわたってやりとりする、1つの構成要素からのデータ)を有する信号などに従って、ローカルおよび/またはリモートプロセスを介して通信することができる。
【0013】
本明細書では、「中央処理装置」(「CPU」)、デジタルシグナルプロセッサ(「DSP」)、「チップ」、および「チップセット」という用語は、PCD中に存在する場合がある処理構成要素の非限定的な例であり、別段に規定されている場合を除き、互換的に使用される。さらに、本明細書において区別されるように、CPU、DSP、またはチップもしくはチップセットは、本明細書において一般に「コア」と呼ばれる1つまたは複数の別個の処理構成要素から構成することができる。
【0014】
本明細書では、「熱」および「熱エネルギー」という用語は、「温度」の単位で測定することができるエネルギーを生成または散逸させることが可能なデバイスまたは構成要素に関連付けて使用される場合があることは理解されよう。その結果、「温度」という用語は、「熱エネルギー」を生成するデバイスまたは構成要素の、相対的な暖かさまたは熱の欠如を示すことができる、何らかの基準値に対する任意の測定値を想定することはさらに理解されよう。たとえば、2つの構成要素が「熱」平衡にあるとき、2つの構成要素の「温度」は、同じである。
【0015】
本明細書では、「作業負荷」、「処理負荷」および「処理作業負荷」という用語は互換的に使用され、全般的に、所与の実施形態において所与の処理構成要素に関連付けられるか、または割り当てられる場合がある処理負担または処理負担のパーセンテージに向けられる。同様に、「バースト負荷」という用語は、待ち行列に入れられた他の作業負荷より高い優先順位付けを必要とし、それゆえ、ユーザ体感を最適化するために直ちに処理されるべきである作業負荷を示すために用いられる。バースト負荷はさらに、直ちに処理する必要があるだけでなく、相対的に高い処理容量を必要する相対的に大きな作業負荷を表す場合がある。
【0016】
上記で定義されるものに加えて、「処理構成要素」は、限定はしないが、中央処理装置、グラフィカル処理ユニット、コア、メインコア、サブコア、処理エリア、ハードウェアエンジンなど、またはポータブルコンピューティングデバイス内の集積回路内または外にある任意の構成要素とすることができる。さらに、「熱負荷」、「熱分布」、「熱シグネチャ」、「熱処理負荷」などの用語が処理構成要素上で実行される場合がある作業負荷の負担を示す限り、本開示におけるこれらの「熱」の用語の使用が、処理負荷の分布、作業負荷の負担および電力消費量に関連する場合があることは、当業者は認識するだろう。
【0017】
本明細書では、「熱軽減技法」、「熱ポリシー」、「熱管理」、および「熱軽減措置」という用語は、互換的に使用される。
【0018】
本明細書では、「ポータブルコンピューティングデバイス」(「PCD」)という用語は、電池などの限られた容量の電源で動作する任意のデバイスを説明するために使用される。電池で動作するPCDは、数十年にわたって使われてきたが、第3世代(「3G」)および第4世代(「4G」)のワイヤレス技術の出現に結び付けられる、充電式電池における技術的進歩により、多数の機能を有する数多くのPCDが可能になった。したがって、PCDは、数ある中でも、携帯電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、タブレット、スマートブックまたはリーダ、メディアプレーヤ、上述のデバイスの組合せ、ワイヤレス接続を有するラップトップコンピュータとすることができる。
【0019】
本明細書では、「待ち時間」という用語は一般に、所与の処理構成要素が、バースト作業負荷のような作業負荷を処理するために、特定のアイドル状態からアクティブ状態に移行するのに要する時間を参照するために用いられる。複数のアイドル状態が、所与の例示的なコアのために利用可能な場合があり、アイドル状態ごとのコアの待ち時間および漏洩電力に基づいて互いに区別することができる。一般的に言うと、特定のアイドル状態に関連付けられる待ち時間が長いほど、漏洩率が低い(すなわち、電力消費量が少ない)。したがって、当業者は理解するように、長い待ち時間に関連付けられるアイドル状態は、より良好な電力節約をもたらすことができ、対照的に、高い漏洩率に関連付けられるアイドル状態は、PCD内のさらなる処理能力が必要とされるときに、より良好なQoSをもたらすことができる。
【0020】
例示的な実施形態を説明する便宜上、本明細書は3つのアイドル状態、すなわち、「割込み待ち」(「WFI」)アイドル状態、保持アイドル状態および電力急減アイドル状態を説明する。そうではあっても、システムおよび方法の実施形態は、3つのアイドル状態だけに、またはアイドル状態の任意の特定の組合せに限定されない。当業者には理解されるように、任意の数のアイドル状態がPCDにおいて利用可能であり、利用される場合があり、そのような各状態が様々な待ち時間レベルおよび電力節約レベルを提供する。有利には、アイドル状態最適化のためのシステムおよび方法の実施形態は、QoSおよびユーザ体感を最適化するために、利用可能なアイドル状態に関連付けられる異なる待ち時間および電力節約を認識し、かつこれらの相違を利用する。QoSおよびユーザ体感は、個々のコアの種々のアイドル状態への戦略的な割り当てと、アイドル状態とアクティブ処理状態との間の移行との両方を通して、種々の実施形態によって最適化される。アイドル状態およびアクティブ状態への割り当ておよびその間の移行は、電力節約目標(すなわち、熱軽減目標)と、QoS/ユーザ体感目標(すなわち、作業負荷、特にバースト負荷の効率的な処理)とのバランスをとるときに、特定のPCDの全電力バジェットを考慮するアイドル状態最適化アルゴリズムを適用することを通して決定される。
【0021】
特に、処理コアがWFIアイドル状態に入ったとき、そのプロセッサクロックは、割込みまたはデバッグイベントが発生するまで、停止するか、または「ゲートオフ」される。その場合に、コアはもはや、作業負荷を処理するためのアクティブ状態にはなく(それゆえ、電力消費量を節約し)、割込み(バースト負荷を処理するためなど)が検出された場合、いつでもアクティブ状態に迅速に戻ることができる状態のままである。WFIアイドル状態にあるときに、コアが作業負荷を処理するための電力を消費しない場合であっても、コアに電圧が印加され続けており、無視できないほどの電流が必然的に、漏れ電流の形で、コアの電源レール上に残っている。とりわけ、漏れ電流は、コアの温度(すなわち、接合温度)と直接相関がある可能性があり、それゆえ、コアの温度の測定値を用いて、現在の電力消費率を計算できる(コアがなり得る場合があるアイドル状態に関係なく)ことは、当業者は認識されよう。
【0022】
保持アイドル状態は、保持状態にある処理コアが、クロックゲーティングされているという点で、WFIアイドル状態に類似である。とは言っても、さらに、保持状態にあるとき、処理コアに供給される電力電圧も低減される。WFI状態より優れた保持状態の利点は、保持状態に関連付けられる漏れ電流が少なく、それゆえ、WFI状態より、保持状態における電力節約が改善されることである。しかしながら、とりわけ、プロセッサが保持アイドル状態からアクティブ状態に戻るための待ち時間は、WFI状態からの移行に比較して長くなる。
【0023】
第3の例示的なアイドル状態は電力急減アイドル状態である。保持アイドル状態と比較して、電力急減アイドル状態に入る処理コアは完全にクロック供給され、その電源レールから全電力が除去される。結果として、電力急減アイドル状態に関連付けられる電力節約は、WFI状態および保持状態より改善される。しかしながら、電力急減アイドル状態に関連付けられる待ち時間は、アクティブ状態に戻るためにコアがウォームブートシーケンスを通らなければならないので、3つのすべての例示的な状態の持続時間の中で最も長い。
【0024】
再び、例示的な処理構成要素が利用可能な場合がある上記の3つのアイドル状態の全般的な説明と、それらアイドル状態を参照することは、例示のためにのみ提供されており、本システムおよび方法の実施形態が3つのアイドル状態に対してのみ適用可能であることを意味したり、示唆したりするつもりはない。本システムおよび方法の実施形態によって、任意の数のアイドル状態が利用される場合があることが考えられる。いくつかのアイドル状態は、プロセッサをクロックゲーティングし、および/またはソフトウェアによってその電力供給を低減することができるが、他のアイドル状態はハードウェアによってそうすることができる。同様に、処理構成要素へのクロックゲーティングおよび電力低減に加えて、いくつかのアイドル状態はさらに、メモリ、ドライバ、バスハードウェアなどをオフに切り替えることができる。しかしながら、一般的に、電力を保存するために所与のアイドル状態において講じられる措置が極端であるほど、そのアイドル状態にあるプロセッサがアクティブ処理状態に戻るのに要する時間が長くなる。
【0025】
とりわけ、所与の温度および所与のアイドル状態において動作しているときに、すべての処理コアが同等の電力節約および待ち時間を示すことになるとは限らないと考えられる。当業者は理解するように、同じアイドル状態にあり、同じ動作温度にあるときの種々の処理コアの性能特性は、限定はしないが、異なるシリコンレベル、設計変更などを含む、任意の数の理由によって異なる場合がある。さらに、任意の所与の処理コアに関連付けられる性能特性は、処理コアの動作温度、アイドル状態に従ってその処理構成要素に供給される電力などとの関係で変化する場合があることを、当業者は認識されよう。
【0026】
たとえば、概して実行能力が低から高まで幅があるいくつかの異なる処理コアを含む場合がある例示的なヘテロジニアスマルチコアプロセッサについて考える(特に、各々が1つまたは複数のコアを含むいくつかの異なる処理構成要素を含む場合がある例示的なヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)も考えることができることを当業者は認識されよう)。当業者によって理解されるように、ヘテロジニアスプロセッサ内の低容量から中容量の処理コアは、所与のアイドル状態において、より低い電力漏洩率を示し、その結果、相対的に高い実行容量を有し、同じアイドル状態にある処理コアよりも、低い熱エネルギー発生率を示す。これらの理由から、大容量のコアはバースト負荷を処理するのに最も望ましい場合があるが、低容量のコアは、低い漏洩率によって全電力バジェットが超えられないので、特定のシナリオにおいてWFIアイドル状態に指定するのにより望ましい場合がある。
【0027】
図1は、所与のアイドル状態および接合温度の場合の、PCDの所与のクアドコアチップセット内の例示的なコア0、1、2および3に関連付けられる待ち時間および漏洩率を示すグラフである。とりわけ、本明細書では、種々の実施形態の特定の特徴および態様がクアドコアチップセットに関して説明されるが、それらの実施形態が任意のマルチコアまたはシングルコアチップにおいて適用できることは当業者には認識されよう。
【0028】
例示では、所与の接合温度およびアイドル状態の場合に、各コアは、待ち時間および電力消費量に関して特有の性能特性を示す。コア0は、相対的に速くアクティブ処理状態に戻ることができるが(コア0待ち時間)、相対的に高い漏洩電力レベルも有する(コア0漏洩)。コア1はコア0および3よりアクティブ処理状態に戻るのに相対的に時間がかかることになるが、コア2ほど遅くはない。コア1のIDDq評価(コア1漏洩)によれば、漏洩率に関してコアのうち2番目に高い効率である。
【0029】
有利には、待ち時間および零入力漏洩率がコア間で異なることは、種々のアイドル状態に移行するのに最も適した処理構成要素を選択するために、アイドル状態選択(「ISS」)モジュールによって利用することができ、それにより、バースト負荷を処理するための待ち時間を無用に長くすることなく、PCD内の電力消費量が管理される。たとえば、
図1のグラフにおいて表される所与のアイドル状態がWFIアイドル状態であり、コア3が現在、電力急減アイドル状態にある場合には、バースト負荷が処理を必要とする場合にコア3の待ち時間が最小化されるように、ISSモジュールは、コア3を電力急減アイドル状態からWFIアイドル状態に移行することを選択することができる。その例をさらに進めると、コア3を電力急減状態からWFIアイドル状態に移行するという選択を行う際に、ISSは、コア3に関連付けられる漏洩率増加がPCDの全電力バジェットに影響を及ぼすことを認識することができる。それでも、突然の通告においてその処理容量が必要とされる場合には、コア3をWFIアイドル状態にすることによって表される消費電力量増加より、その待ち時間を短縮するという利点が勝る場合がある。このようにして、全電力バジェットを超えることなく、待ち時間において評価される場合があるようなユーザ体感が最適化されるように、ISSモジュールは、作業負荷を能動的に処理するために使用されないコア(コア3だけでない)ごとにアイドル状態を効率的に選択するように働く。
【0030】
図2は、ヘテロジニアスマルチコアPCD100におけるアイドル状態選択および最適化のためのオンチップシステム102の一実施形態を示す機能ブロック図である。先に説明されたように、アイドル状態最適化のためのシステムおよび方法の実施形態は、1つまたは複数の処理コアを有する任意のSoCにおいて用いられる場合があり、コアはヘテロジニアスであっても、なくてもよいと考えられる。しかしながら、種々の動作温度において、そして異なるアイドル状態内でのコアの種々の性能特性が、PCDの全電力バジェットを管理することを考慮して待ち時間を最小化する際に、大きな自由度を提示することができるので、本システムおよび方法の実施形態は、ヘテロジニアスマルチコアPCDにおいて特に有用な場合があるとさらに考えられる。このために、本明細書における例示的な実施形態は、ヘテロジニアスマルチコアPCDとの関連において主に説明されるが、アイドル状態最適化システムおよび方法の実施形態が、ヘテロジニアスマルチコア処理構成要素を含むPCDに限定されないことを、当業者は認識されよう。
【0031】
図2の例示を参照すると、アイドル状態選択(「ISS」)モジュール101は、ヘテロジニアスマルチコアプロセッサ110と、モニタモジュール114と、スケジューラ207と、アイドル状態ルックアップテーブル(「LUT」)24と通信する。動作時に、モニタモジュール114は、数ある中でも、コア222、224、226および228のそれぞれに関連付けられる接合温度をモニタするためにそれぞれ位置付けられる場合がある温度センサ157を監視している。監視された温度は、コアの動作温度と見なすことができ、先に説明されたように、コア222、224、226および228のそれぞれによって消費されている電力に相関がある。
【0032】
ISSモジュール101は、温度センサ157によって測定されたような温度をモニタモジュール114を介して受信し、その温度と、各コアの現在の状態(アクティブ状態であるか、アイドル状態であるか)とに基づいて、LUT24に問い合わせる。コアごとに、その温度および特定の状態に応じて、ISSモジュール101は、
図1に示されるグラフに類似のデータを問い合わせることができる。また、所与のコアの場合に、ISSモジュール101は、その現在の動作状態以外の動作状態に移行する場合には、コアの性能特性を判断するために、LUT24に問い合わせることができる。ISSモジュール101は、コア222、224、226および228のいずれかがアクティブ動作状態にあることを通して、現在利用できない処理容量を必要とする場合がある待ち行列内の作業負荷を特定または判断するために、スケジューラ207とさらに通信することができる。
【0033】
種々の問い合わせおよび監視されたデータから、ISSモジュール101は、すべてのコア222、224、226および228の現在の電力消費量を計算することができ、それをPCD100に関連付けられる全電力バジェットと比較することができる。全電力バジェットが超えられる(または全電力バジェットに関連付けられる閾値が超えられる)場合には、ISSモジュール101は、移行に関連付けられる電力節約が、移行したコアがアクティブコアとしてオンラインに戻るように求められた場合に追加される待ち時間に関してトレードオフとなることを認識して、コア222、224、226および228のうちの1つまたは複数をアクティブ状態からアイドル状態に、またはアイドル状態から異なるアイドル状態に移行することを選ぶことができる。しかしながら、全電力バジェットに余裕(headroom)がある場合には、ISSモジュール101は、アクティブ状態に、または短い待ち時間に関連付けられるアイドル状態に移行するために、コア222、224、226および228のうちの1つまたは複数を選択することができる。その際に、ISSモジュール101は、突然の作業負荷増加(または、待ち行列内の次回の作業負荷増加)に迅速に対処するために、移行したコアが必要とされる場合には、「直ちに応じられる」アイドル状態への移行(保持アイドル状態からWFIアイドル状態への移行など)に関連付けられる電力消費量の増加より、待ち時間の短縮が優先されることになると認識することができる。
【0034】
1つの状態から別の状態に移行するためにISSモジュール101によってコア222、224、226および228を選択することに関して、その選択は、PCD100の全電力バジェットと、移行から生じることが見込まれる電力消費量レベルとの比較に基づくことができると考えられる。その比較を行うために、ISSモジュール101は、その現在の動作温度において、複数のアイドル状態に関連して、所与のコアの場合にLUT24に記憶された動作特性を比較することができる。また同様に、コアの消費電力量がその動作温度に相関があることを認識すると、ISSモジュール101は、異なる動作状態にあるときに所与の動作温度において所与のコアに関連付けられる電力消費量レベルを比較して、所与のコアが1つの動作状態から別の動作状態に(たとえば、電力急減アイドル状態からWFIアイドル状態に)移行する場合に、PCD100の全電力消費量に及ぼし得る影響を判断することができる。
【0035】
とりわけ、
図2の例示は、コアが1つの動作状態から別の動作状態に移行した場合に、待ち時間および電力消費量に及ぼし得る影響を判断するためにLUT24に問い合わせるアイドル状態最適化システムおよび方法の一実施形態を表すが、他の実施形態は、LUT24を使用しない場合もあり、代替形態では、影響を計算するために数学関数を使用する場合もあると考えられる。所与の動作状態にあるときにコアの電力消費量は、コアの測定された動作温度から求めることができるので、本システムおよび方法の実施形態は、待ち時間および消費電力量に及ぼし得る影響を簡単に計算できることを、当業者は認識されよう。
【0036】
とりわけ、LUT24の内容は、当業者によって理解されるベンチテストおよびプラットフォーム特性に従って、コア222、224、226および228のそれぞれに関して実験的に収集することができる。本質的に、動作温度および動作状態の組合せごとに、待ち時間およびIDDq漏洩率を含む性能特性は、「工場において」処理構成要素222、224、226および228ごとに測定し、LUT24に記憶する(または関数を生成するために用いる)ことができる。そのデータから、ISSモジュール101は、PCD100またはチップ102の全電力バジェットを超えることなく、待ち時間を最短にするように、コア222、224、226および228のうちのどのコアを1つの動作状態から別の動作状態に移行させることができるかを判断することができる。LUT24が、特定の実施形態に応じて、ハードウェア内に存在する場合があり、および/またはソフトウェアの形をとる場合があることは、当業者には理解されよう。さらに、当業者によって理解されるように、ハードウェアにおけるLUT24は、シリコン内に融合することができ、ソフトウェアの形のLUT24は、ファームウェアに記憶することができる。
【0037】
図3は、アイドル状態最適化のための方法およびシステムを実施するためのワイヤレス電話の形のPCD100の例示的な非限定的態様の機能ブロック図である。図示されるように、PCD100は、互いに結合されたヘテロジニアスマルチコア中央処理装置(「CPU」)110およびアナログシグナルプロセッサ126を含むオンチップシステム102を含む。当業者によって理解されるように、CPU110は、第0のコア222、第1のコア224、および第Nのコア230を備えることができる。さらに、当業者によって理解されるように、CPU110の代わりにデジタルシグナルプロセッサ(「DSP」)を利用することもできる。さらに、ヘテロジニアスマルチコアプロセッサの技術分野において理解されるように、各コア222、224、230は、異なる最大電圧周波数において作業負荷を処理すること、所与の温度および動作状態において異なるIDDq漏洩率を示すこと、所与のアイドル動作状態からアクティブ状態に移行するために異なる待ち時間を有することなどができる。
【0038】
一般に、ISSモジュール101は、チップ102の全電力バジェットを順守しながら、作業負荷を処理するためにオンラインに戻るための待ち時間が最小化されるように、アイドル状態間でコアを移行させることを含む、アイドル状態最適化ポリシーを監視し、適用する責任を担うことができる。アイドル状態最適化ポリシーの適用は、PCD100が、熱条件および/または熱負荷を管理するのを助け、たとえば、処理するためにバースト負荷がスケジュールされるときなどに、さらなる処理容量を利用可能にする際に無用な待ち時間を回避するのを助けることができる。ISSモジュール101は、モニタモジュール114から温度データと、他の条件インジケータとを受信し、そのデータを用いて、コア222、224、230のうちの1つまたは複数を異なる動作状態に移行させることから生じる場合がある待ち時間および消費電力量への影響を判断することができる。このようにして、ISSモジュール101は、バースト作業負荷に迅速に対応するように1つまたは複数のコアを位置付けることによってユーザ体感を最適化することができ、1つまたは複数のコアを高い消費電力量の動作状態(アクティブ状態など)にしておく必要はない。
【0039】
モニタモジュール114は、オンチップシステム102全体を通して分散された複数の動作するセンサ(たとえば、熱センサ157)および構成要素、およびPCD100のCPU110、ならびにISSモジュール101と通信する。とりわけ、モニタモジュール114は、限定はしないが、電源188、タッチスクリーン132、RFスイッチ170などのオフチップ構成要素と通信し、および/または監視することもできる。ISSモジュール101は、1つまたは複数の処理構成要素のアイドル状態を最適化するための機会を与えるPCD内の条件を特定するように、モニタモジュール114と協働することができる。
【0040】
図3に示すように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130は、CPU110に結合される。オンチップシステム102の外部にあるタッチスクリーンディスプレイ132は、ディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。PCD100はさらに、ビデオデコーダ134、たとえば位相反転線(「PAL」)デコーダ、順次式カラーメモリ(「SECAM」)デコーダ、全国テレビジョン方式委員会(「NTSC」)デコーダ、または任意の他のタイプのビデオデコーダ134を含むことができる。ビデオデコーダ134は、マルチコア中央処理装置(「CPU」)110に結合される。ビデオ増幅器136がビデオデコーダ134およびタッチスクリーンディスプレイ132に結合される。ビデオポート138がビデオ増幅器136に結合される。
図4に示されるように、ユニバーサルシリアルバス(「USB」)コントローラ140が、CPU110に結合される。また、USBポート142が、USBコントローラ140に結合される。メモリ112および加入者識別モジュール(「SIM」)カード146も、CPU110に結合される場合がある。さらに、
図3に示されるように、デジタルカメラ148が、CPU110に結合される場合がある。例示的な態様では、デジタルカメラ148は、電荷結合デバイス(「CCD」)カメラまたは相補型金属酸化膜半導体(「CMOS」)カメラである。
【0041】
図3にさらに示されるように、ステレオオーディオコーデック150が、アナログシグナルプロセッサ126に結合される場合がある。さらに、オーディオ増幅器152が、ステレオオーディオコーデック150に結合される場合がある。例示的な態様では、第1のステレオスピーカ154および第2のステレオスピーカ156が、オーディオ増幅器152に結合される。
図3は、マイクロフォン増幅器158もステレオオーディオコーデック150に結合される場合があることを示す。さらに、マイクロフォン160が、マイクロフォン増幅器158に結合される場合がある。特定の態様では、周波数変調(「FM」)ラジオチューナ162が、ステレオオーディオコーデック150に結合される場合がある。また、FMアンテナ164が、FMラジオチューナ162に結合される。さらに、ステレオヘッドフォン166が、ステレオオーディオコーデック150に結合される場合がある。
【0042】
図3は、無線周波数(「RF:radio frequency」)トランシーバ168がアナログシグナルプロセッサ126に結合される場合があることをさらに示す。RFスイッチ170は、RFトランシーバ168およびRFアンテナ172に結合される場合がある。
図3に示されるように、キーパッド174が、アナログシグナルプロセッサ126に結合される場合がある。また、マイクロフォン付きモノヘッドセット176が、アナログシグナルプロセッサ126に結合される場合がある。さらに、バイブレータデバイス178が、アナログシグナルプロセッサ126に結合される場合がある。
図3は、たとえば電池などの電源188が、電力管理集積回路(「PMIC」)180を介してオンチップシステム102に結合されることも示す。特定の態様では、電源188は、充電式DCバッテリー、または交流(「AC」)電力源に接続されたAC-DC変換器から導出されたDC電源を含む。
【0043】
CPU110はまた、1つまたは複数の内部のオンチップ熱センサ157Aおよび157B、ならびに1つまたは複数の外部のオフチップ熱センサ157Cに結合される場合がある。オンチップ熱センサ157A、157Bは、垂直PNP構造に基づいており、通常は相補型金属酸化膜半導体(「CMOS」)超大規模集積(「VLSI」:very large-scale integration)回路専用である1つまたは複数の絶対温度比例(「PTAT」:proportional to absolute temperature)温度センサを備えることができる。オフチップ熱センサ157Cは、1つまたは複数のサーミスタを備えることができる。熱センサ157は電圧降下を引き起こすことができ、その電圧降下は、アナログデジタル変換器(「ADC」)コントローラ(図示せず)でデジタル信号に変換される。しかしながら、本発明の範囲から逸脱することなく、他の種類の熱センサ157が利用されてもよい。
【0044】
熱センサ157は、ADCコントローラによって制御され、監視されるのに加えて、1つまたは複数のISSモジュール101および/またはモニタモジュール114によっても制御され、監視される場合がある。ISSモジュール101および/またはモニタモジュール114は、CPU110によって実行されるソフトウェアを備えることができる。しかしながら、本発明の範囲から逸脱することなく、ISSモジュール101および/またはモニタモジュール114はまた、ハードウェアおよび/またはファームウェアから形成される場合もある。ISSモジュール101は、PCD100が、高いレベルの機能容易性を維持しながら、危機的な温度を回避するのを助けることができるアイドル状態最適化ポリシーを監視し、適用する責任を担うことができる。
【0045】
図3に戻ると、タッチスクリーンディスプレイ132、ビデオポート138、USBポート142、カメラ148、第1のステレオスピーカ154、第2のステレオスピーカ156、マイクロフォン160、FMアンテナ164、ステレオヘッドフォン166、RFスイッチ170、RFアンテナ172、キーパッド174、モノヘッドセット176、バイブレータ178、熱センサ157C、PMIC180および電源188は、オンチップシステム102の外部にある。しかしながら、モニタモジュール114はまた、PCD100において動作可能なリソースのリアルタイム管理を助けるために、これらの外部のデバイスのうちの1つまたは複数から、アナログシグナルプロセッサ126およびCPU110によって1つまたは複数の指示または信号を受信できることを理解されたい。
【0046】
ある特定の態様では、本明細書において説明される方法ステップのうちの1つまたは複数は、1つまたは複数のISSモジュール101を形成するメモリ112に記憶された実行可能命令およびパラメータによって実施することができる。ISSモジュール101を形成するこれらの命令は、本明細書において説明される方法を実行するために、ADCコントローラ103に加えて、CPU110、アナログシグナルプロセッサ126、GPU182、または別のプロセッサによって実行することができる。さらに、プロセッサ110、126、メモリ112、そこに記憶される命令、またはそれらの組合せが、本明細書において説明される方法ステップのうちの1つまたは複数を実行するための手段としての役割を果たすことができる。
【0047】
図4は、アイドル状態最適化技法をサポートするための
図3のPCDの例示的なソフトウェアアーキテクチャ200を示す概略図である。1つまたは複数のコアの温度条件、待ち時間値および漏洩率によって正当化されるとき、任意の数のアルゴリズムが、ISSモジュール101によって適用される場合があるアイドル状態最適化方法を形成することができる、またはその一部となることができる。
【0048】
図4に示されたように、CPUまたはデジタルシグナルプロセッサ110は、バス211を介してメモリ112に結合される。先に言及されたように、CPU110は、N個のコアプロセッサを有するマルチコアヘテロジニアスプロセッサとすることができる。すなわち、CPU110は、第0のコア222、第1のコア224、および第Nのコア230を含む。当業者には知られているように、第0のコア222、第1のコア224、および第Nのコア230はそれぞれ、専用のアプリケーションまたはプログラムをサポートするのに利用可能であり、ヘテロジニアスコアの一部として、その動作状態に応じて、異なる待ち時間レベルおよび異なるIDDq電流漏洩レベルを示すことができる。代替的には、利用可能なヘテロジニアスコアの2つ以上のコアにわたる処理のために、1つまたは複数のアプリケーションまたはプログラムは分散させることができる。
【0049】
CPU110は、ソフトウェアおよび/またはハードウェアを備えることができるISSモジュール101から、コマンドを受信することができる。ソフトウェアとして具現される場合、ISSモジュール101はCPU110によって実行される命令を含み、CPU110は、CPU110および他のプロセッサによって実行されている他のアプリケーションプログラムにコマンドを発行する。
【0050】
CPU110の第0のコア222、第1のコア224〜第Nのコア230は、単一の集積回路ダイに集積されるか、または、複数回路パッケージにおいて別個のダイ上で集積または結合される場合がある。設計者は、第0のコア222、第1のコア224〜第Nのコア230を、1つまたは複数の共有キャッシュを介して結合することができ、バス、リング、メッシュ、およびクロスバートポロジのようなネットワークトポロジを介して、メッセージまたは命令の伝達を実施することができる。
【0051】
当技術分野で知られているように、バス211は、1つまたは複数の有線接続またはワイヤレス接続を介して複数の通信経路を含むことができる。バス211は、通信を可能にするために、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ、および受信機のような、簡単にするために省略される追加の要素を有する場合もある。さらに、バス211は、上述の構成要素の間での適切な通信を可能にするために、アドレス、制御、および/またはデータ接続を含むことができる。
【0052】
図4において示されるように、PCD100によって使用される論理がソフトウェアにおいて実施されるとき、開始論理250、管理論理260、アイドル状態最適化インターフェース論理270、アプリケーション記憶装置280内のアプリケーション、およびファイルシステム290の部分のうちの1つまたは複数が、任意のコンピュータ関連システムまたは方法によって、またはそれと関連して使用するために、任意のコンピュータ可読媒体に記憶される場合があることに留意されたい。
【0053】
本文書の文脈において、コンピュータ可読媒体は、コンピュータ関連のシステムまたは方法によって、またはそれと関連して使用するために、コンピュータプログラムおよびデータを格納または記憶することができる電子、磁気、光学または他の物理デバイスまたは手段である。種々の論理要素およびデータ記憶装置は、命令実行システム、装置、またはデバイスから命令を取り出し、命令を実行することができる、コンピュータベースのシステム、プロセッサを含むシステム、または他のシステムなどの、命令実行システム、装置またはデバイスによる使用、またはそれらと関係した使用のために、任意のコンピュータ可読媒体において具現することができる。本文書の文脈において、「コンピュータ可読媒体」は、命令実行システム、装置、またはデバイスによる使用、またはそれらと関係した使用のために、プログラムを記憶、通信、伝搬、または転送することができる任意の手段とすることができる。
【0054】
コンピュータ可読媒体は、たとえば、限定はしないが、電子、磁気、光学、電磁、赤外線、または半導体のシステム、装置、デバイス、または伝搬媒体とすることができる。コンピュータ可読媒体のより具体的な例(非包括的なリスト)を挙げると、以下のもの、すなわち、1つまたは複数のワイヤを有する電気的接続(電子的)、ポータブルコンピュータディスケット(磁気的)、ランダムアクセスメモリ(RAM)(電子的)、リードオンリーメモリ(ROM)(電子的)、消去可能プログラム可能リードオンリーメモリ(EPROM、EEPROM、またはフラッシュメモリ)(電子的)、光ファイバ(光学的)、およびポータブルコンパクトディスクリードオンリーメモリ(CDROM)(光学的)を含むことになる。プログラムは、たとえば、紙または他の媒体の光学的走査を用いて電子的に取り込み、その後、コンパイルし、解釈し、または必要なら別のやり方で適切に処理し、その後、コンピュータメモリに記憶することができるので、コンピュータ可読媒体は、そこにプログラムが印刷されている紙または別の適当な媒体とすることもできることに留意されたい。
【0055】
開始論理250、管理論理260、および場合によってはアイドル状態最適化インターフェース論理270のうちの1つまたは複数がハードウェアにおいて実現される代替の実施形態では、種々の論理は、それぞれ当技術分野でよく知られている以下の技術、すなわち、データ信号に対する論理機能を実施するための論理ゲートを有する個別の論理回路、適切な組合せ論理ゲートを有する特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)などのうちのいずれか、またはその組合せによって実現することができる。
【0056】
メモリ112は、フラッシュメモリまたはソリッドステートメモリデバイスなどの不揮発性データ記憶デバイスである。単一のデバイスとして示されるが、メモリ112は、デジタルシグナルプロセッサ110(または、さらなるプロセッサコア)に結合される別々のデータ記憶装置を用いる分散メモリデバイスとすることができる。
【0057】
開始論理250は、異なる動作状態に移行するために、第0のコア222、第1のコア224〜第Nのコア230のような利用可能なコアの動作状態を判断し、そのうちの1つまたは複数を選択するための選択プログラムを選択的に特定し、ロードし、実行するための1つまたは複数の実行可能命令を含む。管理論理260は、アイドル状態最適化プロセッサを終了し、より適した代替プログラムを選択的に特定し、ロードし、実行するための1つまたは複数の実行可能命令を含む。管理論理260は、実行時間に、またはPCD100が電源を入れられ、デバイスの操作者によって使用されている間に、これらの機能を実行するように構成される。代替プログラムは、組込みファイルシステム290のプログラム記憶装置296において見つけることができる。
【0058】
代替プログラムは、デジタルシグナルプロセッサのコアプロセッサのうちの1つまたは複数よって実行されるときに、ISSモジュール101および/またはモニタモジュール114によって提供される1つまたは複数の信号に従って動作することができる。これに関連して、モジュール114は、ISSモジュール101から生じる制御信号に応答して、接合温度の1つまたは複数のインジケータを与えることができる。
【0059】
インターフェース論理270は、組込みファイルシステム290に記憶された情報を観察し、構成し、またはそうでなければ更新するために、外部入力を提示し、外部入力を管理し、外部入力と相互にやりとりするための1つまたは複数の実行可能命令を含む。一実施形態では、インターフェース論理270は、USBポート142を介して受信された製造業者入力とともに動作することができる。これらの入力は、プログラム記憶装置296から削除されるか、またはプログラム記憶装置296に加えられることになる1つまたは複数のプログラムを含むことができる。代替的には、入力は、プログラム記憶装置296内のプログラムのうちの1つまたは複数への編集または変更を含むことができる。さらに、入力は、開始論理250および管理論理260の一方または両方に対する1つまたは複数の変更、または全体的な代替を特定することができる。一例として、入力は、PCD100の皮膚温度が特定の閾値を下回るときに全電力バジェットの増加を認識するようにISSモジュール101に指示する管理論理260への変更を含むことができる。
【0060】
インターフェース論理270により、製造業者が、PCD100の規定された動作条件下で、エンドユーザの体感を制御可能に構成および調整できるようになる。メモリ112がフラッシュメモリであるとき、開始論理250、管理論理260、インターフェース論理270、アプリケーション記憶装置280内のアプリケーションプログラム、または組込みファイルシステム290内の情報のうちの1つまたは複数は、編集できるか、代替できるか、または別のやり方で変更できる。いくつかの実施形態では、インターフェース論理270によって、エンドユーザまたはPCD100の操作者が、開始論理250、管理論理260、アプリケーション記憶装置280内のアプリケーション、および組込みファイルシステム290内の情報を検索、場所特定、変更または代替できるようになる場合がある。操作者は、結果として構成されたインターフェースを用いて、PCD100の次の開始時に実施されることになる変更を加えることができる。代替的には、操作者は、結果として構成されたインターフェースを用いて、実行時間中に実施される変更を加えることができる。
【0061】
組込みファイルシステム290は、階層的に構成されたアイドル状態ルックアップテーブル24を含む。これに関連して、ファイルシステム290は、特定の動作温度において、特定の動作状態(保持アイドル状態またはWFIアイドル状態など)に従って動作するときに、種々のコア222、224、226、228の性能特性に関連付けられる情報を記憶するための、全ファイルシステム容量のうちの予約部分を含むことができる。
【0062】
図5は、
図3のPCD100におけるアイドル状態最適化のための方法500の一実施形態を示す論理流れ図である。
図5の実施形態において、ISSモジュール101は、PCD100、チップ102、プロセッサ110などに関連付けられる全電力バジェットを認識している。当業者によって理解されるように、電力バジェットは目標電力消費量レベルを表しており、理想的には、コア222、224、226、228の総電力消費量によって超えられない。とりわけ、1つの動作状態から別の動作状態に(たとえば、電力急減状態からWFI状態に)移行するためにコア222、224、226、228のうちの1つまたは複数を選択することによって、ISSモジュール101は、コア222、224、226、228の全電力消費量と、アイドル状態にあるコア222、224、226、228のうちの1つまたは複数が作業負荷を処理するために必要とされる場合に受けることになる待ち時間とに直接影響を及ぼすことができる。それゆえ、方法500のブロック505において、最大電力バジェットが求められる。
【0063】
ブロック510において、コア222、224、226、228の接合温度(すなわち、動作温度)に関連付けられる温度が、モニタモジュール114によって監視され、ISSモジュール101に与えられる。ブロック515において、監視された温度を用いて、LUT24に問い合わせる。上記のように、LUT24は、コアが特定の温度において、かつ特定の動作モードにおいて動作しているときに、コアの機能特性を表す、コア222、224、226、228ごとのデータを含むことができる。問い合わせから、コアごとの電力漏洩レベルを求めることができる。たとえば、少しだけ
図1に戻ると、コアがテーブルによって表される動作状態にあり、そして動作温度にある場合に、コア0、1、2および3のいずれかのための漏洩率を求めることができる。また、先に説明されたように、特定の実施形態では、LUT24に問い合わせる代わりに、その動作温度に基づいてコアの電力消費量レベルを簡単に計算する機能を使用することも考えられる。
【0064】
ブロック520において、すべてのコア222、224、226、228のアクティブ漏洩率が加算され、電力バジェットと比較される。判断ブロック525において、アクティブ漏洩率の総計が、ブロック505において求められた電力バジェットにほぼ一致するか、または超える場合には、「ノー」分岐に従ってブロック510に戻り、方法500はここから継続する。しかしながら、判断ブロック525において、アクティブ漏洩率の総計が電力バジェットより相対的に低い場合には、方法500は「イエス」分岐に従い、ブロック530に進むことができる。
【0065】
方法500がブロック530に進んだ場合には、ISSモジュール101は、電力バジェットを超えることなく待ち時間値が短縮されるように、コア222、224、226、228のうちの1つまたは複数のコアの動作状態を調整する機会を得ることができる。その場合に、ブロック530において、コア222、224、226、228ごとのアクティブ設定を判断する。アクティブ設定は、限定はしないが、現在の動作状態(すなわち、コアがアクティブであるか、アイドル状態にあるか)と、動作温度とを含むことができる。ブロック530において判断された現在の設定から、ISSモジュール101は、異なる動作状態に移行するのに相応しい1つまたは複数のコアを特定することができる。一例として、ISSモジュール101は、コア222が作業負荷をアクティブに処理しているが、コア224および226は電力急減アイドル状態にあり、コア228は保持アイドル状態にあると判断することができる。そのようなシナリオにおいて、ISSモジュール101は、コア224、226および228がすべて、異なるアイドル状態に移行するのに相応しいと結論を出すことができる。
【0066】
方法500に戻ると、ブロック535において、ISSモジュール101は、相応しいコアごとにLUT24に問い合わせ(または相応しい各コアに関連付けられる関数を使用し)、相応しいコアのうちの1つまたは複数が異なる動作状態に移行する場合に実現することができる電力消費量および待ち時間への影響を判断する。ブロック540において、ISSモジュール101は、移行の種々の組合せの場合の電力消費量レベルを総計することができる。ISSモジュール101が、コア224および226は電力急減アイドル状態にあり、コア228は保持アイドル状態にあると判断する先に与えられた例に戻って参照すると、移行の組合せは、コア226を電力急減にしたまま、コア224を保持状態に、コア228をWFI状態に移行することを含むことができる。とりわけ、移行を行うことによって、コア224および228がバースト負荷をいつでも処理することができるアクティブ状態に移行するのに要する待ち時間を改善することができる。
【0067】
種々の組合せの場合に、アイドル状態移行から生じる場合がある電力消費量に及ぼし得る影響が、判断ブロック545において電力バジェットと比較される。特定された移行組合せのすべての総計が電力バジェットを超える場合には、任意のコアが短縮された待ち時間に関連付けられるアイドル状態に移行するだけの十分な余裕が電力バジェット内に存在しない場合があるので、「ノー」分岐に従ってブロック510に戻る。判断ブロック545に関して、方法500は、最適な移行組合せが特定されるまで、種々の組合せの中を「ループ」できることが考えられる。また、組合せが単一の処理コアのみのための動作状態の移行を含む場合があること、または複数のコアのための移行を含む場合があることも考えられる。
【0068】
方法500に戻ると、判断ブロック545において、特定の組合せのコア移行のための電力消費量レベルの予想される総計が、電力バジェット未満であると判断される場合には、「イエス」分岐に従ってブロック550に進み、ISSモジュール101は、特定されたアイドル状態移行を実施する。このようにして、ISSモジュール101は、PCD100の電力消費量および熱エネルギーレベルに過度に影響を及ぼすことなく、作業負荷を処理するためにアイドルコアをオンラインにするのに必要とされる待ち時間が最小化されるように、1つまたは複数のコア222、224、226、228のアイドル状態を最適化することができる。有利には、その際に、ISSモジュール101は、作業負荷処理要求に迅速に対応するように種々のコアの状態を位置付けることによって、ユーザ体感を最適化する。
【0069】
本発明が上記のように機能するために、本明細書において説明されるプロセスまたは処理フローにおける特定のステップが必然的に他のステップに先行する。しかしながら、そのような順序またはシーケンスが本発明の機能性を変更しない場合には、本発明は、記載されるステップの順序に限定されない。すなわち、本発明の範囲および趣旨から逸脱することなく、いくつかのステップが、他のステップの前、後、またはそれと並列に(実質的に同時に)実行できることを認識されたい。場合によっては、本発明から逸脱することなく、いくつかのステップが省略されてもよく、または実行されなくてもよい。さらに、「それ以降」、「その後」、「次に」などの語は、ステップの順序を制限することを意図しない。これらの語は単に、例示的な方法の説明を理解できるように読者を導くために使用される。
【0070】
さらに、プログラミングに関する当業者は、たとえば、本明細書の流れ図および関連する説明に基づいて、開示される発明を難なく実施するために、コンピュータのコードを書くこと、または適切なハードウェアおよび/または回路を特定することができる。したがって、特定の1組のプログラムコード命令または詳細なハードウェアデバイスの開示は、本発明の作製方法および使用方法を十分に理解するのに必要であるとは見なされない。特許請求されるコンピュータ実施プロセスの本発明の機能性は、種々のプロセスフローを例示する場合がある図面とともに、上述の説明において、より詳細に説明されている。
【0071】
1つまたは複数の例示的な態様では、上記の機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実施することができる。ソフトウェアにおいて実施される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶することができるか、またはコンピュータ可読媒体上に送信することができる。コンピュータ可読媒体は、コンピュータ記憶媒体と、コンピュータプログラムの1つの場所から別の場所への転送を容易する任意の媒体を含む通信媒体との両方を含む。記憶媒体は、コンピュータによってアクセスすることができる任意の利用可能な媒体とすることができる。例であって、限定はしないが、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形態で所望のプログラムコードを搬送または記憶するために使用することができ、コンピュータによってアクセスすることができる任意の他の媒体を含むことができる。
【0072】
また、任意の接続が正当にコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア線、デジタル加入者線(DSL)、または、赤外線、無線、およびマイクロ波のようなワイヤレス技術を使用してウェブサイト、サーバ、または他の遠隔ソースから送信される場合には、同軸ケーブル、光ファイバケーブル、ツイストペア線、DSL、または、赤外線、無線、およびマイクロ波のようなワイヤレス技術は、媒体の規定に含まれる。
【0073】
ディスク(diskおよびdisc)は、本明細書において使用されるときに、コンパクトディスク(disc)(「CD」)、レーザディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(「DVD」)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、diskは通常、データを磁気的に再生し、一方、discは、レーザを用いてデータを光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲の中に含まれるべきである。
【0074】
したがって、選ばれた態様が図示され、詳細に説明されてきたが、以下の特許請求の範囲によって定められるような、本発明の趣旨および範囲から逸脱することなく、本発明において種々の代替および改変を行うことができることは理解されよう。