(57)【要約】  ポータブルコンピューティングデバイス(「PCD」)における1つまたは複数の処理構成要素の動作周波数設定を動的に調整するための方法およびシステムの様々な実施形態を開示する。1つのそのような方法は、作業負荷を処理するために、処理構成要素の動作周波数設定を、必要とされる周波数(「F_req」)に調整するための要求を受信することを伴う。処理構成要素の動作能力に関連付けられたファクタ読取りが取られ得る。読取りに基づいて、処理構成要素に関連付けられた性能曲線について問い合わせられ得る。性能曲線は、処理構成要素のための最適動作周波数(「F_opt」)を決定するために使用される。F_optがF_reqと比較され、F_reqがF_opt未満である場合、処理構成要素の動作周波数設定がF_optに設定される。有利には、F_reqと比較して、F_optにおいて、作業負荷処理がより効率的になり得、低電力モードにより早く入ることができる。
2016538637.tif 000002
【特許請求の範囲】
【請求項１】
ポータブルコンピューティングデバイス(「PCD」)における1つまたは複数の処理構成要素の動作周波数設定を動的に調整するための方法であって、
処理構成要素が作業負荷を処理するための必要とされる動作周波数設定(「F_req」)を決定するステップと、
前記処理構成要素の処理能力に関連付けられた1つまたは複数のファクタの読取りを受信するステップと、
前記読取りに基づいて、前記処理構成要素に関連付けられた性能曲線について問い合わせるステップであって、前記性能曲線は、前記処理構成要素のための電力消費と動作周波数との間の関係の表現を備えるステップと、
前記性能曲線から、前記処理構成要素のための最適動作周波数(「F_opt」)を決定するステップであって、前記処理構成要素が前記F_opt周波数において電力を供給されるとき、処理される作業負荷当たりの消費される電力の比が最適化されるステップと、
F_reqをF_optと比較するステップであって、
F_reqがF_opt以上である場合、前記処理構成要素の前記動作周波数設定がF_reqに設定され、
F_reqがF_opt未満である場合、前記処理構成要素の前記動作周波数設定がF_optに設定されるステップと
を含む方法。
【請求項２】
F_reqがF_opt以上であり、F_optが熱管理バジェットに関連付けられた最大周波数(「F_limit」)よりも大きい場合、前記処理構成要素の前記動作周波数設定がF_optに設定される、請求項1に記載の方法。
【請求項３】
前記処理構成要素の前記動作周波数設定をF_optに設定するステップが、平均有効周波数が実質的にF_limitに等しくなるように、パルス幅変調(「PWM」)方式のもとで前記処理構成要素を動作させるステップをさらに含む、請求項2に記載の方法。
【請求項４】
前記PWM方式のデューティサイクルが変調されて、前記処理構成要素への突入電流の総量が最小限に抑えられる、請求項3に記載の方法。
【請求項５】
F_reqが熱管理バジェットに関連付けられた最大周波数(「F_limit」)よりも大きく、F_reqがF_opt未満である場合、前記処理構成要素の前記動作周波数設定がF_optに設定される、請求項1に記載の方法。
【請求項６】
前記処理構成要素の前記動作周波数設定をF_optに設定するステップが、平均有効周波数が実質的にF_limitに等しくなるように、パルス幅変調(「PWM」)方式のもとで前記処理構成要素を動作させるステップをさらに含む、請求項5に記載の方法。
【請求項７】
前記PWM方式のデューティサイクルが変調されて、前記処理構成要素への突入電流の総量が最小限に抑えられる、請求項6に記載の方法。
【請求項８】
ポータブルコンピューティングデバイス(「PCD」)における1つまたは複数の処理構成要素の動作周波数設定を動的に調整するためのコンピュータシステムであって、
処理構成要素が作業負荷を処理するための必要とされる動作周波数設定(「F_req」)を決定すること、
前記処理構成要素の処理能力に関連付けられた1つまたは複数のファクタの読取りを受信すること、
前記読取りに基づいて、前記処理構成要素に関連付けられた性能曲線について問い合わせることであって、前記性能曲線は、前記処理構成要素のための電力消費と動作周波数との間の関係の表現を備えること、
前記性能曲線から、前記処理構成要素のための最適動作周波数(「F_opt」)を決定することであって、前記処理構成要素が前記F_opt周波数において電力を供給されるとき、処理される作業負荷当たりの消費される電力の比が最適化されること、および
F_reqをF_optと比較することであって、
F_reqがF_opt以上である場合、前記処理構成要素の前記動作周波数設定がF_reqに設定され、
F_reqがF_opt未満である場合、前記処理構成要素の前記動作周波数設定がF_optに設定されること
を行うように動作可能な周波数選択(「FS」)モジュール
を備えるコンピュータシステム。
【請求項９】
F_reqがF_opt以上であり、F_optが熱管理バジェットに関連付けられた最大周波数(「F_limit」)よりも大きい場合、前記処理構成要素の前記動作周波数設定がF_optに設定される、請求項8に記載のコンピュータシステム。
【請求項１０】
前記処理構成要素の前記動作周波数設定をF_optに設定することが、平均有効周波数が実質的にF_limitに等しくなるように、パルス幅変調(「PWM」)方式のもとで前記処理構成要素を動作させることをさらに含む、請求項9に記載のコンピュータシステム。
【請求項１１】
前記PWM方式のデューティサイクルが変調されて、前記処理構成要素への突入電流の総量が最小限に抑えられる、請求項10に記載のコンピュータシステム。
【請求項１２】
F_reqが熱管理バジェットに関連付けられた最大周波数(「F_limit」)よりも大きく、F_reqがF_opt未満である場合、前記処理構成要素の前記動作周波数設定がF_optに設定される、請求項8に記載のコンピュータシステム。
【請求項１３】
前記処理構成要素の前記動作周波数設定をF_optに設定することが、平均有効周波数が実質的にF_limitに等しくなるように、パルス幅変調(「PWM」)方式のもとで前記処理構成要素を動作させることをさらに含む、請求項12に記載のコンピュータシステム。
【請求項１４】
前記PWM方式のデューティサイクルが変調されて、前記処理構成要素への突入電流の総量が最小限に抑えられる、請求項13に記載のコンピュータシステム。
【請求項１５】
ポータブルコンピューティングデバイス(「PCD」)における1つまたは複数の処理構成要素の動作周波数設定を動的に調整するためのコンピュータシステムであって、
処理構成要素が作業負荷を処理するための必要とされる動作周波数設定(「F_req」)を決定するための手段と、
前記処理構成要素の処理能力に関連付けられた1つまたは複数のファクタの読取りを受信するための手段と、
前記読取りに基づいて、前記処理構成要素に関連付けられた性能曲線について問い合わせるための手段であって、前記性能曲線は、前記処理構成要素のための電力消費と動作周波数との間の関係の表現を備える手段と、
前記性能曲線から、前記処理構成要素のための最適動作周波数(「F_opt」)を決定するための手段であって、前記処理構成要素が前記F_opt周波数において電力を供給されるとき、処理される作業負荷当たりの消費される電力の比が最適化される手段と、
F_reqをF_optと比較するための手段であって、
F_reqがF_opt以上である場合、前記処理構成要素の前記動作周波数設定がF_reqに設定され、
F_reqがF_opt未満である場合、前記処理構成要素の前記動作周波数設定がF_optに設定される手段と
を備えるコンピュータシステム。
【請求項１６】
F_reqがF_opt以上であり、F_optが熱管理バジェットに関連付けられた最大周波数(「F_limit」)よりも大きい場合、前記処理構成要素の前記動作周波数設定をF_optに設定すること
を行うための手段をさらに備える、請求項15に記載のコンピュータシステム。
【請求項１７】
前記処理構成要素の前記動作周波数設定をF_optに設定するための手段が、平均有効周波数が実質的にF_limitに等しくなるように、パルス幅変調(「PWM」)方式のもとで前記処理構成要素を動作させるための手段をさらに備える、請求項16に記載のコンピュータシステム。
【請求項１８】
F_reqが熱管理バジェットに関連付けられた最大周波数(「F_limit」)よりも大きく、F_reqがF_opt未満である場合、前記処理構成要素の前記動作周波数設定をF_optに設定すること
を行うための手段をさらに備える、請求項15に記載のコンピュータシステム。
【請求項１９】
前記処理構成要素の前記動作周波数設定をF_optに設定するための手段が、平均有効周波数が実質的にF_limitに等しくなるように、パルス幅変調(「PWM」)方式のもとで前記処理構成要素を動作させるための手段をさらに備える、請求項18に記載のコンピュータシステム。
【請求項２０】
前記PWM方式のデューティサイクルが変調されて、前記処理構成要素への突入電流の総量が最小限に抑えられる、請求項19に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムオンチップにおける動的ＤＣＶＳ調整および作業負荷スケジューリングのためのシステムおよび方法に関する。
【背景技術】
【０００２】
ポータブルコンピューティングデバイス(「PCD:portable computing device」)は、個人レベルおよび専門レベルにおいて人々に必要なものになりつつある。これらのデバイスは、セルラー電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、および他のポータブル電子デバイスを含み得る。
【０００３】
ユーザの観点からすれば、小型のフォームファクタはPCDにおける望ましい態様である。しかしながら、小型のフォームファクタは固有の設計課題を伴う。たとえば、PCD内では、典型的には、エンジニアおよび設計者が、幅広い間隔配置または受動的冷却構成要素の包含を通して処理構成要素の熱劣化または故障に対応するための十分な空間がない。したがって、PCD内の処理構成要素は、有害なレベルの熱エネルギーを生じることなく、それらの最大レートの電力周波数で実行することができないことが多い。PCD内で、熱エネルギー発生が、性能を犠牲にして電子機器を弱めることまたはシャットダウンすることを含み得る様々な熱管理技法の適用を通じて、管理されなければならない。
【０００４】
ユーザはまた、自らのPCD内で豊富な電源を望む。しかしながら、制限されたフォームファクタのために、大きい電源を単に含めることは、通常、ユーザの電源の期待に応えるための解決策ではない。したがって、PCD内で電力消費が管理されなければならない。電力消費を最小限に抑えることを求める電力節約方式は、(節電する目的であるか、不要な熱エネルギー発生を回避する目的であるかにかかわらず)最低サービス品質(「QoS」)レベルが満たされるように処理速度が設定されることを規定することが多い。
【０００５】
PCD内では、熱エネルギー発生の軽減とPCDによって提供されるQoSへの影響との間のバランスを取る目的で、熱管理技法が採用される。同様に、電力消費とQoSレベルとの間のバランスを取る目的で、電力節約方式がPCD内で採用される。ヘテロジニアス処理構成要素を有するPCDでは、PCD内の様々な処理構成要素が同等に作られていないので、それらのトレードオフのバランスを取ることによる問題を管理することが難しくなり得る。
【０００６】
たとえば、熱軽減技法または電力節約方式によって処理構成要素に供給される電力周波数は、プロセッサの性能曲線上で最も有効な点を表さないことがある。別の例として、PCDには、所与のコードブロックを処理する能力を有する複数の処理構成要素が存在することがあり、それらの構成要素のそれぞれの静的および動的な動作ファクタに応じて、ある構成要素は、そのコードブロックを処理する際に、別の構成要素よりも有効になる。
【０００７】
したがって、当技術分野において必要とされるものは、継続中の熱軽減または電力節約目標を損なうことなく、PCD内の処理構成要素の電力周波数を、その処理構成要素のための最も有効な作業負荷処理を表す周波数に設定するための方法およびシステムである。さらに、当技術分野において必要とされるものは、継続中の熱軽減または電力節約目標を損なうことなく、プロセッサの性能曲線における最適周波数のリアルタイムまたはほぼリアルタイムの比較分析に基づいて、ヘテロジニアス処理構成要素にわたってPCD内の作業負荷をスケジュールまたは割り振るためのシステムおよび方法である。
【発明の概要】
【課題を解決するための手段】
【０００８】
ポータブルコンピューティングデバイス(「PCD」)における1つまたは複数の処理構成要素の動作周波数設定を動的に調整するための方法およびシステムの様々な実施形態を開示する。PCD内のヘテロジニアスなマルチプロセッサ内の個々の処理構成要素は、各処理構成要素に関連付けられた様々な静的ファクタおよび動的ファクタに応じて、異なる処理効率を示すことがあるので、動的DCVS調整および作業負荷スケジューリング技法は、リアルタイムまたはほぼリアルタイムで性能曲線について問い合わせて、作業負荷を処理するときに電力効率が最適化されるように、処理構成要素のための最適動作周波数を決定する。
【０００９】
1つのそのような方法は、処理構成要素の動作周波数設定を、要求される周波数(「F_req」)に調整するための要求を受信することを伴う。処理構成要素のための動作周波数が調整されることになることを認識すると、処理構成要素の動作に関連付けられた1つまたは複数の静的および/または動的ファクタ(たとえば、電流漏洩、電圧レベル、動作温度、電源電圧マージンなど)の読取りが取られ得る。動作読取りを使用して、処理構成要素に関連付けられた性能曲線について問い合わせられ得る。性能曲線は、所与の動作温度において動作するときの処理構成要素のための電力消費と動作周波数との間の関係の表現を備える。性能曲線は、処理構成要素のための最適動作周波数(「F_opt」)を決定するために使用される。処理構成要素がF_opt周波数において電力を供給されるとき、処理される作業負荷当たりの消費される電力の比が最適化される。F_optがF_reqと比較され、F_reqがF_opt以上である場合、処理構成要素の動作周波数設定がF_reqに設定される。しかしながら、F_reqがF_opt未満である場合、処理構成要素の動作周波数設定がF_optに設定される。有利には、動作周波数がF_reqの代わりにF_optに設定されるとき、作業負荷のための処理時間が短縮され、作業負荷を処理するために消費される電力が、作業負荷のMIPS当たり、最小限に抑えられる。
【００１０】
動的DCVS調整のためのシステムおよび方法のいくつかの実施形態は、処理構成要素が、複数の個々の処理構成要素を備えるマルチコアのヘテロジニアスプロセッサであると想定する。そのようなシナリオでは、複数の個々の処理構成要素の各々のための1つまたは複数の静的および/または動的ファクタ(たとえば、電流漏洩、電圧レベル、動作温度、電源電圧マージンなど)の読取りが取られ得、各々のための性能曲線について問い合わせられ得る。次いで、性能曲線が平均化されて、個々のプロセッサのグループを表す性能曲線の単一のセットが作成され得る。次いで、平均性能曲線から決定された最適電力周波数が、複数の個々の処理構成要素にわたって適用され得る。
【００１１】
さらに、動的DCVS調整のためのシステムおよび方法のいくつかの実施形態は、処理構成要素に供給される電力が、F_opt周波数において、パルス幅変調(「PWM」)電力管理方式によるものであり得ると想定する。有利には、F_opt周波数において、PWM電力管理方式によって処理構成要素に電力を供給することによって、いくつかの実施形態は、処理構成要素がコードブロックを処理中である間の電力消費を最適化することができ、電力崩壊(power collapse)期間が最大化されるので、コードブロックが処理された後、節電を最適化することができる。
【００１２】
加えて、F_opt周波数において、パルス幅変調(「PWM」)電力管理方式によって処理構成要素に電力を供給する、動的DCVS調整のためのシステムおよび方法のいくつかの実施形態は、デューティサイクルにわたって供給される平均動作周波数が、目標とされた周波数またはF_reqに等しくなるように、そのように行うことを想定する。
【００１３】
図面では、別段に規定されていない限り、様々な図の全体を通して、同様の参照番号は同様の部分を指す。「102A」または「102B」などの文字指定を伴う参照番号の場合、文字指定は、同じ図に存在する2つの同様の部分または要素を区別することができる。参照番号がすべての図において同じ参照番号を有するすべての部分を包含することが意図されるとき、参照番号に対する文字指定は省略される場合がある。
【図面の簡単な説明】
【００１４】
【図１Ａ】異なる熱条件のもとで動作する例示的な処理構成要素の一対の性能曲線を示すグラフである。
【図１Ｂ】所与の熱条件において、軽い作業負荷のもとで、最適電力周波数とともに動作する例示的な処理構成要素の一対の性能曲線を示すグラフである。
【図１Ｃ】異なる熱条件、軽い作業負荷のもとで、異なる最適電力周波数とともに動作する例示的な処理構成要素の性能曲線を示すグラフである。
【図１Ｄ】パルス幅変調(「PWM」)電力管理技法のもとで、異なる周波数において動作する例示的な処理構成要素の一対の性能曲線を示すグラフである。
【図２Ａ】所与の熱条件において、熱軽減技法を受けて動作する例示的な処理構成要素の一対の性能曲線を示すグラフである。
【図２Ｂ】パルス幅変調(「PWM」)電力管理技法のもとで、熱軽減技法を受けて、異なる周波数、最小周波数対最適周波数において動作する例示的な処理構成要素の一対の性能曲線を示すグラフである。
【図３】ポータブルコンピューティングデバイス(「PCD」)における動的DCVS調整および作業負荷スケジューリングのためのオンチップシステムの一実施形態を示す機能ブロック図である。
【図４】図3のPCDの例示的な実施形態を示す機能ブロック図である。
【図５】プロセッサ性能曲線の比較分析に基づく、動的DCVS調整および作業負荷スケジューリングをサポートするための、図4のPCDの例示的なソフトウェアアーキテクチャを示す概略図である。
【図６Ａ】処理構成要素に対する電力管理の動的DCVS調整およびパルス幅変調のための方法の一実施形態を示す論理フローチャートである。
【図６Ｂ】処理構成要素に対する電力管理の動的DCVS調整およびパルス幅変調のための方法の一実施形態を示す論理フローチャートである。
【図７】静的および動的な測定から導出された性能曲線に基づく、処理構成要素に対する電力管理の動的DCVS調整およびパルス幅変調のための方法の一実施形態を示す論理フローチャートである。
【図８】動的DCVS調整に関連付けられたプロセッサ性能曲線および最適電力周波数の比較分析に基づく、作業負荷スケジューリングのための方法の例示的な実施形態を示す論理フローチャートである。
【発明を実施するための形態】
【００１５】
「例示的」という言葉は、「一例、事例、または例示として役立つ」ことを意味するように本明細書において使用される。「例示的」として本明細書で説明されるいずれの態様も、排他的であるか、他の態様より好ましいか、または有利であると、必ずしも解釈されるべきでない。
【００１６】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの実行可能なコンテンツを有するファイルも含み得る。加えて、本明細書で言及する「アプリケーション」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなどの本質的に実行可能ではないファイルも含み得る。
【００１７】
本明細書で使用される場合、「構成要素」、「データベース」、「モジュール」、「システム」、「熱エネルギー発生構成要素」、「処理構成要素」、「処理エンジン」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図される。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得る。例として、コンピューティングデバイス上で実行されているアプリケーションとコンピューティングデバイスの両方が、構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在してもよく、構成要素は、1つのコンピュータに局所化されてもよく、および/または、2つ以上のコンピュータ間で分散されてもよい。加えて、これらの構成要素は、様々なデータ構造を記憶した様々なコンピュータ可読媒体から実行することができる。構成要素は、1つまたは複数のデータパケット(たとえば、信号によって、ローカルシステム、分散システム中の別の構成要素と対話する、および/または、インターネットなどのネットワークにわたって他のシステムと対話する、1つの構成要素からのデータ)を有する信号などに従って、ローカルプロセスおよび/またはリモートプロセスによって通信することができる。
【００１８】
本明細書では、「中央処理ユニット(「CPU」)」、「デジタル信号プロセッサ(「DSP」)」、「チップ」、「ビデオコーデック」、「システムバス」、「画像プロセッサ」、および「メディアディスプレイプロセッサ(「MDP」)」という用語は、動的クロックおよび電圧スケーリング(「DCVS」)技法を通して制御可能であり、PCD内に存在し得る、処理構成要素の非限定的な例である。処理構成要素についてのこれらの用語は、別段に規定されているときを除いて、互換的に使用される。その上、本明細書で区別されているように、上記またはそれらの均等物のいずれも、「コア」および「サブコア」と本明細書では全般的に呼ばれる1つまたは複数の別個の処理構成要素からなり得る。
【００１９】
本明細書では、「熱」および「熱エネルギー」という用語は、「温度」の単位で測定され得るエネルギーを発生させ、または散逸する能力を有するデバイスまたは構成要素に関連して使用され得ることが理解されよう。その結果、「温度」という用語は、「熱エネルギー」を発生させるデバイスまたは構成要素の、相対的な暖かさまたは熱の欠如を示すことができる、何らかの基準値に対する任意の測定値を想定することはさらに理解されよう。たとえば、2つの構成要素が「熱」平衡にあるとき、2つの構成要素の「温度」は、同じである。
【００２０】
本明細書では、「作業負荷」、「プロセス負荷」、「プロセス作業負荷」および「コードブロック」という用語は互換的に使用され、全般的に、所与の実施形態における所与の処理構成要素に関連付けられるか、または割り当てられ得る処理負担または処理負担の割合を対象にする。上記に定義されたものに加えて、「処理構成要素」または「熱エネルギー発生構成要素」または「熱アグレッサ」は、限定はしないが、中央処理ユニット、グラフィカル処理ユニット、コア、メインコア、サブコア、処理エリア、ハードウェアエンジンなど、またはポータブルコンピューティングデバイス内の集積回路の内部もしくは外部にある任意の構成要素であり得る。その上、「熱負荷」、「熱分布」、「熱シグネチャ」、「熱処理負荷」などの用語が、処理構成要素上で実行中であり得る作業負荷の負担を示す限り、本開示におけるこれらの「熱」の用語の使用が、処理負荷の分布、作業負荷の負担および電力消費に関連する場合があることは、当業者には認められよう。
【００２１】
本明細書では、「熱軽減技法」、「熱ポリシー」、「熱管理」、および「熱軽減措置」という用語は、互換的に使用される。
【００２２】
「MIPS」という用語が、プロセッサが所与の電力周波数において処理することが可能である百万命令毎秒の数を表すことは、当業者には認識されよう。本明細書では、この用語は、例示的な実施形態におけるプロセッサ性能の相対的なレベルを示すための尺度の一般的な単位として使用され、本開示の範囲内に入る任意の所与の実施形態が任意の特定のドライストーン評価または処理能力を有するプロセッサを含むべきであること、または含むべきではないことを示唆するものと、解釈されることはない。加えて、当業者によって理解されるように、プロセッサのMIPS設定は、プロセッサに供給されている電力周波数と直接的に相関する。
【００２３】
本明細書では、「ポータブルコンピューティングデバイス」(「PCD」)という用語は、バッテリなどの限られた容量の電源で動作する任意のデバイスについて説明するために使用される。何十年もの間バッテリ式PCDが使用されてきたが、第3世代(「3G」)および第4世代(「4G」)ワイヤレス技術の出現とともにもたらされた充電式バッテリの技術的進歩は、複数の機能を有する多数のPCDを可能にした。したがって、PCDは、とりわけ、セルラー電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダ、メディアプレーヤ、上述のデバイスの組合せ、ワイヤレス接続を有するラップトップコンピュータであり得る。
【００２４】
ヘテロジニアス処理構成要素を有するPCDにおけるQoS最適化のために処理性能を管理することが、作業負荷の割振りのために利用可能である個々の処理エンジンの多様な性能特性を活用することによって、達成され得る。ヘテロジニアス処理構成要素に含まれ得る様々な処理エンジンの多様な性能特性に関して、性能の差異を、限定はしないが、異なるレベルのシリコン、設計の変動などを含む、いくつもの理由に帰すことができることは、当業者には認識されよう。その上、任意の所与の処理構成要素に関連付けられる性能特性は、その処理構成要素の動作温度、その処理構成要素に供給される電力レベルなどとの関係で変化する場合があることは、当業者には認識されよう。
【００２５】
たとえば、概して実施能力が低から高まで幅があるいくつかの異なる処理コアを含む場合がある、例示的なヘテロジニアスマルチコアプロセッサについて考える(特に、各々が1つまたは複数のコアを含むいくつかの異なる処理構成要素を含む場合がある、例示的なヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)も考えることができることは、当業者には認識されよう)。当業者に理解されるように、ヘテロジニアスプロセッサ内の低性能から中性能の処理コアは、所与の作業負荷能力において、より低い電力漏洩率を示し、その結果、比較的実施能力の高い処理コアよりも、低い熱エネルギー発生率を示す。より能力の高いコアは、より能力の低いコアよりも、短い期間で所与の数のMIPSを処理することが可能であり得る。同様に、低下している処理速度を有する能力の高いコアは、所与の作業負荷能力において、より低い電力漏洩率を示し、その結果、フルの、抑制されていない能力で処理しているときよりも、低い熱エネルギー発生率を示す。
【００２６】
それでも、コアが動作し得る熱条件に応じて、より低性能のコアは、所与の数のMIPSを処理する際に、(電力消費において)高性能のコアよりも効率的であることも、高性能のコアほど効率的ではないこともある。したがって、ヘテロジニアスプロセッサ内の多様なコアの個々の性能曲線を考慮することによって、動的DCVS調整アルゴリズムを活用して、処理されたMIPS/電力消費の比(電力効率比)が最適化されるように、コアごとに電力周波数を設定することができ、ここで、性能曲線は、所与の数のMIPSを処理するために所与の動作温度において所与のコアによって消費される電力を示す。特に、および当業者には認識されるように、電力効率比は、動作周波数/電力消費として定量化され得る。次いで、電力効率比が比較され、スケジューリング構成要素が作業負荷を、その作業負荷を効率的に処理するために最良に配置されたプロセッサに割り振るようにすることができる。
【００２７】
加えて、動的DCVS調整アルゴリズムのいくつかの実施形態が、プロセッサが電力崩壊状態と、最適電力周波数で実行する処理状態との間で変調するように、プロセッサに対してパルス幅変調(「PWM」)電力管理方式を実装し得ることが想定される。有利には、最適周波数に基づくPWMを含む動的DCVSシステムおよび方法の実施形態では、プロセッサが処理中であるときに電力消費が最適化され、プロセッサが崩壊されるときに節電が最適化される。
【００２８】
特に、このシステムおよび方法の例示的な実施形態は、本明細書で個々の処理構成要素との関連で示され、説明されるが、このシステムおよび方法の実施形態が、複数の処理構成要素(マルチコアCPU内のコアなど)の性能曲線を平均化して、単一の平均処理曲線に達し得ることが想定される。複数の処理構成要素の単一の平均処理曲線に基づいて、最適周波数が決定され、各コアに適用されて、個々のコアに関連付けられた処理効率が最適化されないことがある場合でも、処理構成要素全体にわたる電力密度が最適化されるようになり得る。そのような実施形態は、たとえば、マルチコア処理構成要素上の同期された並列処理作業負荷に関して適用され得る。
【００２９】
動的DCVS方法のためのアプリケーションの非限定的な例として、特定のコードブロックが、例示的なPCD内で中央処理ユニット(「CPU」)またはグラフィカル処理ユニット(「GPU」)のいずれかによって処理され得る。有利には、特定のコードブロックがCPUまたはGPUのうちの1つによって処理されることをあらかじめ決定する代わりに、例示的な実施形態は、コードを処理する必要性が熟したときに、処理構成要素のうちのいずれが、コードブロックを処理するタスクを割り当てられるかを選択することができる。すなわち、コードブロックを効率的に処理するために最も良い状態にあるプロセッサが作業負荷を割り当てられるように、それらの最適周波数で実行するCPUおよびGPUの性能曲線の「スナップショット」が比較され得る。特に、後続の作業負荷の割振りのための後続のプロセッサ選択は、コードブロックがスケジューリング待ち行列から出るときにリアルタイムまたはほぼリアルタイムで行われ得ることが理解されよう。このようにして、周波数選択モジュールは、作業負荷を処理するために最も最適である電力周波数を選択すること、および次いで、作業負荷の割振りの直前に処理コアを選択することによって、ヘテロジニアスプロセッサ内の個々のコアに関連付けられた動作温度を活用して、QoSを最適化することができる。
【００３０】
図1Aは、異なる熱条件のもとで動作する例示的な処理構成要素の一対の性能曲線(コア85℃、コア50℃)を示すグラフ300である。処理構成要素は、ヘテロジニアスマルチコアプロセッサ内のコアであってよく、能力の高いコア、能力が中程度のコア、または能力の低いコアであり得る。より具体的には、当業者であれば認めるように、処理構成要素は、限定はしないが、CPU、GPU、DSP、プログラマブルアレイ、ビデオエンコーダ/デコーダ、システムバス、カメラサブシステム(画像プロセッサ)、MDPなどを含む、所与のコードブロックを処理する能力を有する任意の処理エンジンであり得る。その上、上述のように、例示的な処理エンジンは、CPU、GPUなどの中にあるコアまたはサブコアであり得る。
【００３１】
図1Aの図示からわかるように、3500MIPSの作業負荷において、50℃の環境内で動作する例示的なコアは約620mWの電力(点315)を消費するが、同じ3500MIPSの作業負荷において、動作環境が85℃に達するとき、コアの電力消費はほぼ1000mWの電力(点310)に増加する。同様に、所与の動作温度では、コアの処理効率は作業負荷の増加に伴って低下する。コア50℃の曲線を参照すると、たとえば、作業負荷が3500MIPSから約4300MIPSに増加するとき、電力消費はほぼ1000mW(点305)に増加する。
【００３２】
所与の処理構成要素では、動作温度が上昇するにつれて、電力消費に関する処理構成要素の効率が低下する(すなわち、処理構成要素の動作温度が上がるにつれて、処理構成要素が所与の動作周波数において処理する能力を有するMIPSの数が減少する)ことが、図1Aの図示からわかる。特に、例示的な処理構成要素の動作温度の上昇は、限定はしないが、より高いクロック速度に関連付けられた処理構成要素内の電力漏洩の増加、処理構成要素に隣接した熱アグレッサ、処理構成要素に隣接した誤動作構成要素、周囲環境の変化などを含む、任意の数のファクタまたはファクタの組合せによって引き起こされ得ることは、当業者には認識されよう。その上、処理構成要素上の作業負荷が増加すると、電力消費の増加に関連付けられた電力漏洩率の上昇により、作業負荷割振り時に処理構成要素に関連付けられた動作温度を上昇させ得ることは、当業者には認識されよう。処理構成要素の動作温度が上昇または下降し得る理由に関係なく、一般に、所与の処理構成要素の処理効率は、動作温度の上昇に反比例して下がるということを、図1Aの図示から気付くことが重要である。
【００３３】
次に図1Bを参照すると、所与の熱条件において、軽い作業負荷のもとで、最適電力周波数410とともに動作する例示的な処理構成要素の一対の性能曲線を示すグラフ400が示されている。図1Bの性能曲線対によって表される例示的なプロセッサは、共通のヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)内に含まれ得ることは、当業者には認識されよう。代替的に、性能曲線対400が複数の処理構成要素から導出された平均曲線を表し得ることが想定される。
【００３４】
上の曲線400Aは、所与の温度において動作するときの例示的なプロセッサの性能をプロットする。図1Bの図示においてわかるように、性能曲線400Aのy軸は、例示的な処理構成要素によって消費される総電力を表し、x軸は、プロセッサ動作周波数、すなわち、処理構成要素に供給される電力周波数を表す。例示的な処理構成要素に供給され得る最大電力周波数F_maxは、点415Aによって表され、最小電力周波数F_minは、点405Aによって表される。当業者には理解されるように、F_min 405Aよりも下で、例示的な処理構成要素は、電力が消費されていないように電力崩壊される。
【００３５】
上述のように、プロセッサ動作周波数は、所与のプロセッサによって処理されることが可能なMIPSと相関する。したがって、図1Bの図示の電力曲線400に関連付けられた例示的な処理構成要素では、その処理構成要素が処理することができる莫大な量の作業負荷が、点415において、すなわち、最大レートの処理周波数がその処理構成要素に供給されるとき、最大化される。ただし、特に、点415Aは、曲線400Aに沿った最も電力効率の良い点を表すのではない。このことを念頭に置いて、傾き420、430、および425は、それぞれ、点405A、410A、および415Aの各々に関連付けられた電力消費/動作周波数の比を示す。傾き420、430、および425から、例示的な処理構成要素は、F_opt 410Aにおいて性能曲線400Aに正接する傾き430に沿って最も効率的である。したがって、動的DCVS調整のためのシステムおよび方法は、図1Bの曲線に関連付けられた例示的な処理構成要素に与えられる電力周波数が、F_optに設定されることを規定し、それによって、消費される電力のミリワット(「mW」)当たりのプロセッサによって処理される作業負荷の量を最適化することができる。
【００３６】
点410Aに対応する周波数によって表された電力効率は、相補的な性能曲線400Bにおいて見ることができる。400Bプロットでは、y軸は、プロット400Aに示された傾きのエネルギー効率を表し、x軸は、引き続きプロセッサ動作周波数を表す。傾きが曲線400Aを上昇して様々な点と交差するとき、400Bのプロットは、所与の動作温度について、例示的な処理構成要素が点410Bにおいて、すなわち、それに供給される電力周波数がF_optであるとき、作業負荷を処理する際に最もエネルギー効率が高いことを示す。したがって、動的DCVS調整のためのシステムおよび方法の実施形態は、電源における周波数設定を、所与のプロセッサの動作温度に関連付けられた性能曲線内に含まれたF_optに一致するように調整することを求めることができる。
【００３７】
図1Bのグラフに示されている性能曲線をもとに、図1Cのグラフ500は、異なる熱条件、軽い作業負荷のもとで、異なる最適電力周波数とともに動作する例示的な処理構成要素の性能曲線を示す。グラフ500Aでは、3つの例示的な性能曲線対501、502、および503が一緒にプロットされて示される。点512で、曲線対501、502、および503に関連付けられたコアは電力崩壊され、すなわち、電力がコアによって消費されていない。説明のために、性能曲線501は、85℃の動作温度において実行する能力の高いコアに関連付けられ得、性能曲線502は、50℃の動作温度において実行中であることを除いて、曲線501に関連付けられたコアと同様の特性をもつ別の能力の高いコアに関連付けられ得、性能曲線503は、90℃の比較的冷たい動作温度において実行する能力の低いコアに関連付けられ得る。
【００３８】
性能曲線対を個々に考慮して、軽い作業負荷割振りは、通常、所与のコアについて、F_optを下回る電力周波数が供給されることを規定し得る。たとえば、ユーザに高QoSを提供するために特に高速処理を必要としない、軽い作業負荷は、性能曲線501に関連付けられたコアに割り振られ得、その割振りに応答して、電力管理モジュールは、そのプロセッサに供給される電力周波数がF_req 511Aであることを要求し得る。そのようなシナリオでは、動的DCVS調整方法の一実施形態は、QoSに鑑みて必要であるよりも速く処理されるにもかかわらず、作業負荷がより効率的に処理されるように、電力周波数をF_optまで調整し得る。同様に、軽い作業負荷を性能曲線502に関連付けられたコアに割り振ることを求める電力管理モジュールは、電力周波数が点511Bに設定されることを要求し得る。動的DCVS調整方法の一実施形態は、F_opt 510Bに関連付けられたより効率的な設定のほうを優先して、周波数を点511Bに設定するための要求を無効にし得る。しかしながら、性能曲線503に関連付けられたコアについて、電力管理モジュールは、QoSに過度に影響を及ぼすことなく、軽い作業負荷を処理するために、動作周波数が点511Cに設定されることを要求し得る。そのようなシナリオでは、動的DCVS調整方法は、曲線503に関連付けられたプロセッサが、点510Cによって表された周波数においてより効率的であるとしても、処理周波数が点511Cに設定されることを可能にし得る。
【００３９】
図1Cのグラフ500に示されている性能曲線を続けると、動的DCVS調整方法のいくつかの実施形態は、各適格なコア(たとえば、性能曲線501、502、503に関連付けられたコア)の最適処理周波数510を比較し得る。グラフ500Bからの比較に基づいて、および、各プロセッサがQoSに悪影響を及ぼすことなく、そのF_opt 510において作業負荷を処理し得ると仮定して、動的DCVS調整方法は、性能曲線503とF_opt 510Cとに関連付けられたプロセッサが、コードブロックを効率的に処理するために最良に配置されていると決定し得る。したがって、コードブロックは、曲線対503と、510Cに等しい周波数におけるプロセッサ供給電力とに関連付けられたプロセッサにスケジュールされ得る。
【００４０】
コードブロックが割り振られることになる先のコアを選択する前に、複数の適格な処理コアの性能曲線およびF_opt周波数を比較する、動的DCVS調整方法の一実施形態の例を進めて、望ましいQoSレベル(たとえば、ゲームアプリケーション)を維持するために、高速の処理速度を必要とする作業負荷を検討する。さらに、必要とされる周波数はF_opt 510Cを上回るが、依然としてF_opt 510Aおよび510Bを下回ると仮定する。そのようなシナリオでは、動的DCVS調整方法の一実施形態は、F_opt 510Bが曲線501Bに沿ったいかなる点よりも良いエネルギー効率を提供するので、曲線502に関連付けられたコアを選択し得る。
【００４１】
次々に図1Dを参照すると、パルス幅変調(「PWM」)電力管理技法のもとで、異なる周波数において動作する例示的な処理構成要素の一対の性能曲線を示すグラフ520が示されている。例示のために、動的DCVS調整方法の一実施形態が、作業負荷を図1Cにおける性能曲線501に関連付けられたコアに割り当てたと仮定する。作業負荷が割り当てられたとき、電力を節約するために、電力管理モジュールは、周波数511Aにおいてコアによって処理されるMIPSの数が、満足なQoSを維持するために十分になるので、電力周波数が点511Aに設定されることを要求している場合がある。しかしながら、動的DCVS調整方法は、上記で説明したように、曲線501に関連付けられたコアの電力効率が、F_opt 510Aによって表された周波数においてより良いことを認識し得る。
【００４２】
動的DCVS調整方法およびシステムのいくつかの実施形態が、電力効率をさらに上げるためにPWM技法を採用し得ることが想定される。上記の例を続けると、曲線501に関連付けられたコアが、要求された電力周波数511Aに設定され、PWM技法によって実行された場合、プロセッサは、作業負荷を完了し、時間PC1の間に電力崩壊512する前に、時間量T1の間に電力を消費することになる。しかしながら、動的DCVS調整方法が電力周波数を、要求された511Aではなく最適周波数510Aに設定した場合、作業負荷を処理するために消費されるエネルギーは、MIPS当たりより少なくなり、作業負荷は、より短い期間T2において処理されることになる。加えて、プロセッサが、PC1に対してより長い期間PC2の間に電力崩壊モードにとどまるので、さらなる節電が実現され得る。
【００４３】
図2Aは、所与の熱条件において、熱軽減技法を受けて動作する例示的な処理構成要素の一対の性能曲線を示すグラフ550である。いくつかのシナリオでは、熱軽減モジュールが、所与の処理構成要素に割り振られた電力バジェットに制限を設定し得ることが想定される。そのようなシナリオでは、F_opt 510Dなどの最適周波数は、電力バジェットを超える電力レベルに対応し得る。
【００４４】
動的DCVS調整システムおよび方法は、PWM技法を使用して、処理構成要素をF_opt周波数においてアクティブな持続期間のパルスにおいて動作させ、所与のデューティサイクルにわたって供給される平均電力レベルが電力バジェットに等しくなるようにすることができる。このようにして、プロセッサは、熱軽減電力バジェットを超えないようにしながら、依然として、その最も最適な周波数レベルで実行され得る。F_opt 510Dが、たとえば、電力バジェット560を超える電力レベルに対応するとしても、F_opt 510Dを下回る何かに周波数を制限する電力バジェットのもとで処理されるいかなる作業負荷も、PWM方式ではF_opt 510Dにおいて処理されることになる。
【００４５】
図2Bは、F_opt設定とともにPWM方式を利用する、動的DCVS調整方法の効果を示すグラフ580Aおよび580Bを含む。上記で説明したように、熱軽減モジュールは、所与の処理構成要素について、ある電力バジェットが超えられないことを規定し得る。そのような場合、たとえば、処理構成要素の周波数設定は、それが電力バジェット内である電力レベルと相関するので、F_min 555に設定され得る。有利には、動的DCVS調整システムおよび方法は、PWM方式によって処理構成要素に供給されるF_opt 510D設定のほうを優先して、F_min 555設定を無効にすることができる。580Bグラフを参照すると、F_opt 510Dレベルにおいて電力をパルスすることによって、所与のデューティサイクルにわたって供給される平均周波数がF_min 555と等しいので、熱軽減モジュールによって設定された電力バジェット制約が遵守され得る。
【００４６】
図3は、ポータブルコンピューティングデバイス(「PCD」)100における動的DCVS調整および作業負荷スケジューリングのためのオンチップシステム102の一実施形態を示す機能ブロック図である。図1および図2の図示に対して上記で説明したように、処理構成要素にわたる作業負荷割振りは、個々のコアまたはプロセッサ222、224、226、228に一意に関連付けられた性能曲線および最適周波数設定の比較分析に基づき得る。特に、当業者には認識されるように、処理構成要素110が説明のためにのみヘテロジニアス処理エンジンのグループとして示されており、各々が複数のコアおよび/またはサブコアを含むことも含まないこともある複数のヘテロジニアスコア222、224、226、228または複数のヘテロジニアスプロセッサ222、224、226、228を有する単一の処理構成要素を表し得る。したがって、処理エンジン222、224、226および228を本明細書において「コア」と呼ぶことは、本質的に例示的なものと理解され、本開示の範囲を限定しない。
【００４７】
オンチップシステムは、周波数選択(「FS」)モジュール101およびスケジューラモジュール207と通信しているモニタモジュール114を用いて、コア222、224、226、228に個々に関連付けられている温度センサ157を監視し得る。FSモジュール101は、モニタモジュール114から温度測定値を受信し、測定値を使用して、性能曲線について問い合わせ、最適周波数設定を決定し得る。FSモジュール101によって規定された動的DCVS調整ポリシーは、プロセッサクロック速度を、要求された速度を超えて上げられたレベルに設定し、PWM方式を電源に適用し、作業負荷割振りのためにプロセッサコアを選択することなどを行い得る。特に、動的DCVS調整ポリシーの適用を通して、FSモジュール101は、QoSを犠牲にして過度な電力消費を低減または緩和し得る。
【００４８】
当業者には認識されるように、処理コア222、224、226、228のうちの1つまたは複数の動作温度は、作業負荷が処理されるとき、周囲条件が変化するとき、隣接した熱エネルギー発生器がエネルギーを散逸させるときなどに変動することがある。したがって、様々な処理コア222、224、226、228の動作温度が変動するとき、それらのエンジン222、224、226、228に関連付けられた性能曲線も変動する。コア222、224、226、228の各々に関連付けられた動作温度が変化するとき、モニタモジュール114は変化を認識し、変化を示す温度データをFSモジュール101へ送信する。測定された動作温度の変化は、FSモジュール101が、測定された動作温度に基づいてコア222、224、226、228のうちの1つまたは複数のための性能曲線について問い合わせるために、コア性能(「CP」)データストア24を参照することをトリガし得る。その後、FSモジュール101は、消費される電力のミリワット当たりの作業負荷の最も効率的な処理を実施する周波数において動作中であるように、コア222、224、226、228のうちの1つまたは複数に供給される電力周波数を調整し得る。FSモジュール101はまた、上記の図で示され、説明されたものと同様に、所与のコードブロックを効率的に処理するために比較時に最良に配置されたコア222、224、226、228を選択するために、識別された性能曲線を比較し、F_optを調整し得る。
【００４９】
例示的なFSモジュール101は、様々な多様な処理構成要素222、224、226、228に関連付けられた1つまたは複数の性能曲線の比較分析を活用して、作業負荷を効率的に処理するために最良に配置されているある処理構成要素に作業負荷を割り振るように、スケジューラモジュール207に命令するように構成される。特に、処理構成要素222、224、226、228の動作温度が変化するとき、FSモジュール101によって問い合わせられ、比較される性能曲線もまた変化することは、当業者には認識されよう。したがって、異なる時間に、FSモジュール101は、反復または同様のコードブロックの割振りのために異なる処理エンジン222、224、226、228を選択し得る。このようにして、いくつかの実施形態の利点として、FSモジュール101は、割振り時に利用可能な最も効率的な処理構成要素に作業負荷割当てが割り振られることを保証する。
【００５０】
図4は、熱条件を監視し、性能曲線を比較し、最適電力周波数を設定し、効率的に処理するために最良に配置された処理構成要素に作業負荷をスケジュールするための方法およびシステムを実装するための、ワイヤレス電話の形態のPCD100の例示的で非限定的な態様の機能ブロック図である。図示されるように、PCD100は、互いに結合されたヘテロジニアスマルチコア中央処理ユニット(「CPU」)110およびアナログ信号プロセッサ126を含む、オンチップシステム102を含む。当業者によって理解されるように、CPU110は、第0のコア222、第1のコア224、および第Nのコア230を備え得る。さらに、当業者によって理解されるように、CPU110の代わりにデジタル信号プロセッサ(「DSP」)も採用され得る。その上、ヘテロジニアスマルチコアプロセッサの技術分野で理解されるように、コア222、224、230の各々は、同様の動作条件のもとで異なる効率で作業負荷を処理し得る。
【００５１】
概して、周波数選択モジュール101は、モニタモジュール114から温度データを受信し、温度データを使用して、コア222、224、230に関連付けられた性能曲線について問い合わせ、最適動作周波数を決定し、処理コア性能曲線の比較分析を実施し、スケジューラ207とともに働いて、作業負荷を最も効率的に処理することになるコア222、224、230にコードブロックをスケジュールし得る。
【００５２】
モニタモジュール114は、オンチップシステム102全体を通して分散された複数の動作するセンサ(たとえば、熱センサ157)、およびPCD100のCPU110、ならびにFSモジュール101と通信する。FSモジュール101は、モニタモジュール114とともに働いて、モニタモジュール114によって監視された温度に関係するプロセッサ性能曲線について問い合わせ、曲線を比較し、電力周波数を最も効率的なレベルに設定し、コードブロックを処理する能力を有する利用可能な最も効率的なプロセッサを選択し得る。
【００５３】
図4に示すように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130は、デジタル信号プロセッサ110に結合される。オンチップシステム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に結合され得る。さらに、図4に示すように、デジタルカメラ148が、CPU110に結合され得る。例示的な態様では、デジタルカメラ148は、電荷結合デバイス(「CCD」)カメラまたは相補型金属酸化膜半導体(「CMOS」)カメラである。
【００５５】
図4にさらに示すように、ステレオオーディオコーデック150が、アナログ信号プロセッサ126に結合され得る。さらに、オーディオ増幅器152が、ステレオオーディオコーデック150に結合され得る。例示的な態様では、第1のステレオスピーカ154および第2のステレオスピーカ156が、オーディオ増幅器152に結合される。図4は、マイクロフォン増幅器158もステレオオーディオコーデック150に結合され得ることを示す。加えて、マイクロフォン160が、マイクロフォン増幅器158に結合され得る。特定の態様では、周波数変調(「FM」)ラジオチューナ162が、ステレオオーディオコーデック150に結合され得る。また、FMアンテナ164が、FMラジオチューナ162に結合される。さらに、ステレオヘッドフォン166が、ステレオオーディオコーデック150に結合され得る。
【００５６】
図4は、無線周波数(RF)トランシーバ168がアナログ信号プロセッサ126に結合され得ることをさらに示している。RFスイッチ170が、RFトランシーバ168およびRFアンテナ172に結合される場合がある。図4に示すように、キーパッド174が、アナログ信号プロセッサ126に結合され得る。また、マイクロフォン付きモノヘッドセット176は、アナログ信号プロセッサ126に結合され得る。さらに、バイブレータデバイス178が、アナログ信号プロセッサ126に結合され得る。図4は、たとえばバッテリなどの電源180がオンチップシステム102に結合されることも示す。特定の態様では、電源は、充電式DCバッテリ、または交流(「AC」)電源に接続されたAC-DC変換器から導出されるDC電源を含む。
【００５７】
CPU110は、1つまたは複数の内部のオンチップ熱センサ157A、ならびに、1つまたは複数の外部のオフチップ熱センサ157Bにも結合され得る。オンチップ熱センサ157Aは、縦型PNP構造に基づき、通常は相補型金属酸化膜半導体(「CMOS」)の超大規模集積(「VLSI」)回路に専用の、1つまたは複数の絶対温度比例(「PTAT」)の温度センサを備え得る。オフチップ熱センサ157Bは、1つまたは複数のサーミスタを含み得る。熱センサ157は、アナログデジタル変換器(「ADC」)コントローラ103を用いてデジタル信号に変換される、電圧降下を生じさせ得る。しかしながら、本発明の範囲から逸脱することなく、他のタイプの熱センサ157が採用され得る。
【００５８】
熱センサ157は、ADCコントローラ103によって制御され監視されることに加えて、1つまたは複数のFSモジュール101によっても制御され監視され得る。FSモジュール101は、CPU110によって実行されるソフトウェアを備え得る。しかしながら、本発明の範囲から逸脱することなく、FSモジュール101はまた、ハードウェアおよび/またはファームウェアから形成され得る。FSモジュール101は、プロセッサ性能曲線について問い合わせ、それらの曲線の分析に基づいて、電力周波数を最適レベルに設定し、コードブロックを、作業負荷割振り時にコードを効率的に処理する能力が最も高いプロセッサに割り当てることを担い得る。
【００５９】
図4に戻ると、タッチスクリーンディスプレイ132、ビデオポート138、USBポート142、カメラ148、第1のステレオスピーカ154、第2のステレオスピーカ156、マイクロフォン160、FMアンテナ164、ステレオヘッドフォン166、RFスイッチ170、RFアンテナ172、キーパッド174、モノヘッドセット176、バイブレータ178、熱センサ157B、および電源180は、オンチップシステム102の外部にある。しかしながら、モニタモジュール114はまた、PCD100において動作可能なリソースのリアルタイム管理を助けるために、これらの外部のデバイスのうちの1つまたは複数から、アナログ信号プロセッサ126およびCPU110によって1つまたは複数の指示または信号を受信できることを理解されたい。
【００６０】
特定の態様では、本明細書で説明する方法ステップのうちの1つまたは複数は、1つまたは複数のFSモジュール101を形成する、メモリ112に記憶された実行可能命令およびパラメータによって実施され得る。FSモジュール101を形成するこれらの命令は、本明細書で説明する方法を実施するために、ADCコントローラ103に加えて、CPU110、アナログ信号プロセッサ126、または別のプロセッサによって実行され得る。さらに、プロセッサ110、126、メモリ112、そこに記憶される命令、またはそれらの組合せは、本明細書で説明する方法ステップのうちの1つまたは複数を実施するための手段として働き得る。
【００６１】
図5は、プロセッサ性能曲線の比較分析に基づく、動的DCVS調整および作業負荷スケジューリングをサポートするための、図4のPCDの例示的なソフトウェアアーキテクチャを示す概略図である。任意の数のアルゴリズムが、いくつかの熱条件が存在し、関連する性能曲線が分析されるときに、FSモジュール101によって適用され得る少なくとも1つの動的DCVS調整およびスケジューリングアルゴリズムを形成することができ、またはその一部であり得る。
【００６２】
図5に示すように、CPUまたはデジタル信号プロセッサ110は、バス211を介してメモリ112に結合される。上述のように、CPU110は、N個のコアプロセッサを有するマルチコアヘテロジニアスプロセッサであり得る。すなわち、CPU110は、第0のコア222、第1のコア224、および第Nのコア230を含み得る。当業者には知られているように、第0のコア222、第1のコア224、および第Nのコア230の各々は、専用のアプリケーションまたはプログラムをサポートするのに利用可能であり、ヘテロジニアスコアの一部として、同様の熱的な動作条件のもとで異なるレベルの性能を提供し得る。あるいは、利用可能なヘテロジニアスコアの2つ以上にわたる処理のために、1つまたは複数のアプリケーションまたはプログラムは分散していてよい。
【００６３】
CPU110は、ソフトウェアおよび/またはハードウェアを備え得るFSモジュール101から、コマンドを受信し得る。ソフトウェアとして具現化される場合、FSモジュール101は、CPU110および他のプロセッサによって実行されている他のアプリケーションプログラムにコマンドを出す、CPU110によって実行される命令を備える。
【００６４】
CPU110の第0のコア222、第1のコア224〜第Nのコア230は、単一の集積回路ダイに集積されるか、または、複数回路パッケージにおいて別個のダイ上で集積または結合される場合がある。設計者は、第0のコア222、第1のコア224〜第Nのコア230を、1つまたは複数の共有キャッシュを介して結合することができ、バス、リング、メッシュ、およびクロスバートポロジのようなネットワークトポロジを介して、メッセージまたは命令の伝達を実施することができる。
【００６５】
当技術分野で知られているように、バス211は、1つまたは複数のワイヤード接続またはワイヤレス接続を介した複数の通信経路を含み得る。バス211は、通信を可能にするために、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ、および受信機のような、簡単にするために省略される追加の要素を有してもよい。さらに、バス211は、上述の構成要素の間での適切な通信を可能にするために、アドレス、制御、および/またはデータ接続を含み得る。
【００６６】
図5に示すように、PCD100によって使用される論理がソフトウェアにおいて実施されるとき、開始論理250、管理論理260、周波数選択およびスケジューリングインターフェース論理270、アプリケーションストア280内のアプリケーション、およびファイルシステム290の部分のうちの1つまたは複数が、任意のコンピュータ関連システムまたは方法によって、またはそれと関連して使用するために、任意のコンピュータ可読媒体に記憶され得ることに留意されたい。
【００６７】
本明細書の文脈では、コンピュータ可読媒体は、コンピュータ関連システムまたは方法によって、またはそれと関連して使用するために、コンピュータプログラムおよびデータを含むか、または記憶することができる、電子式、磁気式、光学式、または他の物理デバイスまたは手段である。様々な論理要素およびデータストアは、命令実行システム、装置、またはデバイスから命令を取り出し、命令を実行することができる、コンピュータベースのシステム、プロセッサを含むシステム、または他のシステムなどの、命令実行システム、装置またはデバイスによって、またはそれと関連して使用するために、任意のコンピュータ可読媒体において具現化され得る。本明細書の文脈では、「コンピュータ可読媒体」は、命令実行システム、装置、またはデバイスによって、またはそれと関連して使用するために、プログラムを記憶、通信、伝搬、または移送することができる任意の手段であり得る。
【００６８】
コンピュータ可読媒体は、限定はしないが、たとえば、電子式、磁気式、光学式、電磁式、赤外線式、または半導体の、システム、装置、デバイス、または伝搬媒体であり得る。コンピュータ可読媒体のより具体的な例(非包括的なリスト)を挙げると、以下のもの、すなわち、1つまたは複数のワイヤを有する電気的接続(電子的)、ポータブルコンピュータディスケット(磁気的)、ランダムアクセスメモリ(RAM)(電子的)、読取り専用メモリ(ROM)(電子的)、消去可能プログラマブル読取り専用メモリ(EPROM、EEPROM、またはフラッシュメモリ)(電子的)、光ファイバー(光学的)、およびポータブルコンパクトディスク読取り専用メモリ(CDROM)(光学的)を含むことになる。プログラムは、たとえば、紙または他の媒体の光学的走査を介して電子的に取り込まれ、次いでコンパイルされ、解釈され、またはさもなければ必要な場合に適当な方法で処理され、次いでコンピュータメモリに記憶され得るので、コンピュータ可読媒体が、そこにプログラムが印刷されている紙または別の適当な媒体でさえあり得ることに留意されたい。
【００６９】
開始論理250、管理論理260、ならびに場合によっては周波数選択およびスケジューリングインターフェース論理270のうちの1つまたは複数がハードウェアにおいて実装される代替実施形態では、様々な論理は、それぞれ当技術分野でよく知られている以下の技術、すなわち、データ信号に対する論理機能を実施するための論理ゲートを有する個別の論理回路、適切な組合せ論理ゲートを有する特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)などのうちのいずれか、またはその組合せによって実装され得る。
【００７０】
メモリ112は、フラッシュメモリまたはソリッドステートメモリデバイスなどの不揮発性データ記憶デバイスである。単一のデバイスとして示されるが、メモリ112は、デジタル信号プロセッサ(または、追加のプロセッサコア)に結合される別個のデータストアとともに分散されたメモリデバイスであり得る。
【００７１】
開始論理250は、第0のコア222、第1のコア224〜第Nのコア230のような、利用可能なコアのうちの1つまたは複数の周波数設定および比較分析および選択のために、選択プログラムを選択的に特定し、ロードし、実行するための1つまたは複数の実行可能命令を含む。
【００７２】
管理論理260は、周波数設定および性能曲線分析プログラムを終了し、ならびに、利用可能なコアのうちの1つまたは複数に対する周波数設定、比較分析、選択および作業負荷割振りのためのより適切な交換プログラムを選択的に特定し、ロードし、実行するための1つまたは複数の実行可能命令を含む。管理論理260は、実行時に、またはPCD100が電源を入れられ、デバイスの操作者によって使用されている間に、これらの機能を実施するように構成される。交換プログラムは、組込みファイルシステム290のプログラムストア296において見出され得る。
【００７３】
交換プログラムは、デジタル信号プロセッサ内のコアプロセッサのうちの1つまたは複数によって実行されるときに、FSモジュール101によって提供される1つまたは複数の信号に従って動作し得る。この点について、モジュール114は、FSモジュール101から発せられる制御信号に応答して、イベント、プロセス、アプリケーション、リソース状態の条件、経過時間、温度などの、1つまたは複数のインジケータを提供し得る。
【００７４】
インターフェース論理270は、組込みファイルシステム290に記憶された情報を観察し、構成し、または場合によっては更新するために、外部入力を提示し、管理し、それと対話するための1つまたは複数の実行可能命令を含む。一実施形態では、インターフェース論理270は、USBポート142を介して受信された製造業者の入力とともに動作することができる。これらの入力は、プログラムストア296から削除されるべき、またはプログラムストア296に追加されるべき、1つまたは複数のプログラムを含み得る。あるいは、入力は、プログラムストア296内のプログラムのうちの1つまたは複数に対する編集または変更を含み得る。その上、入力は、開始論理250と管理論理260の一方または両方に対する1つまたは複数の変更、または全交換を特定することができる。
【００７５】
インターフェース論理270により、製造業者が、PCD100の定義された動作条件のもとで、エンドユーザの体験を制御可能に構成および調整することが可能になる。メモリ112がフラッシュメモリであるとき、開始論理250、管理論理260、インターフェース論理270、アプリケーションストア280におけるアプリケーションプログラム、または組込みファイルシステム290における情報のうちの1つまたは複数は、編集され、置き換えられ、または場合によっては修正され得る。いくつかの実施形態では、インターフェース論理270によって、PCD100のエンドユーザまたは操作者は、開始論理250、管理論理260、アプリケーションストア280におけるアプリケーション、および組込みファイルシステム290における情報を検索し、見つけ、修正し、または置き換えることが可能になり得る。操作者は、得られたインターフェースを使用して、PCD100の次の開始時に実装される変更を行うことができる。あるいは、操作者は、得られたインターフェースを使用して、実行時中に実装される変更を行うことができる。
【００７６】
組込みファイルシステム290は、階層的に構成されたコア性能データストア24を含む。これに関して、ファイルシステム290は、様々な動作温度における様々なコア222、224、226、228の性能曲線に関連付けられた情報を記憶するための、全体のファイルシステム容量の中で確保された部分を含み得る。
【００７７】
図6A〜図6Bは、処理構成要素に対する電力管理の動的DCVS調整およびパルス幅変調のための方法600の一実施形態を示す論理フローチャートである。図6の実施形態では、様々な処理コア222、224、226、228の各々のための性能曲線は、監視モジュール114によって収集された実際の性能データに基づいて経験的に決定されてよく、またはいくつかの実施形態では、性能曲線は、各コアの性能スペックによって決まる先験的な曲線であってよい。
【００７８】
いくつかの実施形態では、様々な処理コア222、224、226、228の性能曲線を経験的に決定するために、監視モジュール114は、温度センサ157、ならびにコア222、224、226、228の電力消費を監視するために有用な様々な他の電圧センサまたは電流センサと通信していてよい。そのような実施形態では、モニタモジュール114によって収集されたデータは、FSモジュール101から受け取られた以前の作業負荷割振りデータと結合され、経験的な性能曲線へとコンパイルされ得ることは、当業者には認識されよう。経験的な性能曲線は、CPデータストア24に記憶され、周波数選択および作業負荷スケジューリングアルゴリズムによって後に参照され得る。
【００７９】
ブロック605で開始して、FSモジュール101および/またはモニタモジュール114は、処理構成要素の周波数を、所与の作業負荷を処理するために必要とされるレベルF_reqに設定するための要求を受信または認識し得る。上記で説明したように、F_req周波数設定は、電力管理モジュールが電力消費を最小限に抑えることを求めること、または、熱軽減モジュールが電力バジェットの上限を課すことを求めることによって行われ得る。ブロック610で、FSモジュール101は、たとえば、コア222、224、226、228のうちの1つに関連付けられた動作温度など、処理構成要素の動作温度をモニタモジュール114に要求し、モニタモジュール114から受信し得る。ブロック615で、所与のコアの動作温度が、FSモジュール101によって、適用可能な性能曲線についてCPデータストア24に問い合わせるために使用され得る。
【００８０】
ブロック620で、FSモジュール101は、測定された動作温度で動作するときの所与のコアのための最適周波数設定F_optを決定し得る。判定ブロック625で、F_reqがF_optよりも大きい場合、FSモジュール101は、所与のコアのための電力周波数が、要求される周波数F_reqにおいて設定されることを許可し得る。しかしながら、判定ブロック625で、FSモジュール101によって、F_optがF_reqよりも大きいと決定される場合、プロセスは判定ブロック635へ進む。
【００８１】
判定ブロック635で、FSモジュール101が、熱軽減モジュールによって実装されていた場合があるものなど、上限を課された電力バジェットによって、F_req周波数レベルが規定されていないと決定する場合、「no」分岐の後にブロック655が続き、周波数が最適周波数F_optに設定される。さらに、ブロック655で、このシステムおよび方法のいくつかの実施形態は、F_optレベルにおいてプロセッサコアに供給される電力が、PWM方式によって供給されることを引き起こし得る。有利には、周波数レベルをF_reqではなくF_optにおいて設定することによって、および、PWM方式によって処理構成要素を動作させることによって、このシステムおよび方法の実施形態は、利用可能な最も電力効率の良い方法で作業負荷が処理されることを引き起こし得る。
【００８２】
判定ブロック635に戻ると、所与のプロセッサについて、F_reqが上限を課された電力バジェットによって規定されている場合、「yes」分岐の後にブロック640が続く。ブロック640で、FSモジュール101は、性能曲線から、プロセッサが電力バジェットを超えることなく実行することができる有効電力周波数F_effectを決定し得る。次に、ブロック645で、プロセッサへの供給のための最低の利用可能な電力周波数がF_optに等しいように、F_optよりも下の電力周波数が無効化され得る。ブロック650で、FSモジュール101は、プロセッサのデューティサイクルを、PWM方式によって、F_opt電力周波数と電力崩壊状態との間で変調し得る。このようにして、プロセッサに供給される平均電力周波数は、F_effectと等しくなり得る。次いで、プロセスはブロック605に戻る。
【００８３】
特に、ブロック650および655で、PWM電力管理方式のデューティサイクル期間が静的または動的に最適化されて、総電力レールキャパシタンス(total power rail capacitance)と電圧ステップデルタ(voltage step delta)とに比例する、突入電流が最小限に抑えられ得ることが想定される。デューティサイクルにおけるより長い期間は、より高い突入電流レベルにおいてより安定した性能を提供する、より短い期間と比較して、より安定しない性能を提供するが、比較的小さい突入電流を有し得る(図1Dおよび図2B参照)。
【００８４】
図7は、静的および動的な測定から導出された性能曲線に基づく、処理構成要素に対する電力管理の動的DCVS調整およびパルス幅変調のための方法700の一実施形態を示す論理フローチャートである。図7の実施形態では、様々な処理コア222、224、226、228の各々のための性能曲線は、監視モジュール114によって収集された実際の性能データに基づいて経験的に導出され得る。いくつかの実施形態では、様々な処理コア222、224、226、228の性能曲線を経験的に決定するために、監視モジュール114は、温度センサ157、ならびにコア222、224、226、228の電力消費を監視するために有用な様々な他の電圧センサまたは電流センサと通信していてよい。そのような実施形態では、モニタモジュール114によって収集されたデータは、FSモジュール101から受け取られた以前の作業負荷割振りデータと結合され、経験的な性能曲線へとコンパイルされ得ることは、当業者には認識されよう。経験的な性能曲線は、CPデータストア24に記憶され、周波数選択および作業負荷スケジューリングアルゴリズムによって後に参照され得る。
【００８５】
ブロック705で開始して、FSモジュール101および/またはモニタモジュール114は、処理構成要素の静的ファクタに関連付けられた測定データを受信または認識し得る。ブロック705でモニタモジュール114によって監視された静的ファクタは、PCD100内の様々なハードウェア構成要素から読み取られ得、以下を含むことに限定はしないが、静止電流漏洩(quiescent current leakage)(「IDDQ」)、プロセス変動スケーリング(「PVS:process variation scaling」)設定、速度ビン設定などを含み得る。次に、ブロック710で、モニタモジュール114は、処理構成要素の動的ファクタに関連付けられた測定データを受信または認識し得る。ブロック710でモニタモジュール114によって監視された動的ファクタは、以下を含むことに限定はしないが、処理構成要素の温度および電源電圧マージンを含み得る。
【００８６】
次に、ブロック715で、リアルタイム性能曲線データが、ブロック705および710で測定された静的ファクタおよび動的ファクタから導出され得る。導出された性能曲線から、消費される電力のmW当たりの処理されるMIPSに関して、処理構成要素が最も効率的である最適周波数が決定され得る。その後、ブロック720で、必要とされる周波数および最大周波数が計算され得る。上記で説明したように、必要とされる周波数F_reqは、処理構成要素が所与の作業負荷を処理し、あるQoSレベルを満たすために必要な最小周波数であり得る。同様に、最大周波数F_limitは、熱電力バジェットを超えることなく処理構成要素に供給され得る、最大の持続可能な電力周波数であり得る。
【００８７】
F_opt、F_req、およびF_limitを使用して、動的DCVS調整アルゴリズムは、ブロック725で、次の条件に従って、処理構成要素に供給される電力周波数を設定し得る。
【００８８】
【表１】
2016538637.tif 000003
【００８９】
図8は、動的DCVS調整に関連付けられたプロセッサ性能曲線および最適電力周波数の比較分析に基づく、作業負荷スケジューリングのための方法800の例示的な実施形態を示す論理フローチャートである。ブロック805で開始して、FSモジュール101は、スケジューラ207から作業負荷スケジューリング要求を受信し得る。ブロック810で、FSモジュール101は、モニタモジュール114とともに働いて、作業負荷を処理するために適格な処理構成要素に関連付けられた動作温度データを受信し得る。いくつかの実施形態では、FSモジュールはまた、静的測定データおよび動的測定データを受信して、適格な処理構成要素ごとに性能曲線を導出し、F_optを決定し得る。
【００９０】
ブロック815で、受信されたデータに基づいて、FSモジュール101は、各適格な処理構成要素に関連付けられた性能曲線についてCPストア24に問い合わせ得、または性能曲線を導出し得る。性能曲線から、ブロック820で、適格な処理構成要素ごとに最適電力周波数F_optが決定され得る。その後、ブロック825で、各F_optに関連付けられた電力効率が比較されて、作業負荷を効率的に処理するために最良に配置されたプロセッサが決定され得る。次に、ブロック830で、選択されたプロセッサのための電力周波数が、ブロック820で以前に決定されたそのF_optに設定され得、スケジューラ207が、選択されたプロセッサに作業負荷を割り振るように命令され得る。
【００９１】
特に、いくつかの実施形態は、方法800における1つまたは複数の適格な処理構成要素の各々について、図7の方法700を実施し、次いで、適格な構成要素ごとに決定された電力周波数設定に基づいて、所与の作業負荷を効率的に処理することが最良に可能な構成要素を選択し得ることが想定される。さらに、本明細書で説明する例示的な方法が、ヘテロジニアス処理構成要素またはホモジニアス処理構成要素を有するSoCにおいて適用可能であり得ることは、当業者には認識されよう。特に、異なる静的および/または動的ファクタのもとで動作するホモジニアス処理構成要素は、異なる作業負荷処理効率を示すことがあるので、ある特定のホモジニアス処理構成要素は、別の適格なホモジニアス処理構成要素よりも、所与の作業負荷を効率的に処理することがよりよく可能であり得る。
【００９２】
本発明が説明通りに機能するように、本明細書で説明するプロセスまたはプロセスフローにおけるいくつかのステップが他のステップよりも前に行われるのは当然である。しかしながら、そのような順序またはシーケンスが本発明の機能を変えない場合、本発明は、説明したステップの順序に限定されない。すなわち、いくつかのステップは、本発明の範囲および趣旨から逸脱することなく、他のステップの前に実施されるか、後に実施されるか、または他のステップと並行して(実質的に同時に)実施される場合があることを認識されたい。場合によっては、いくつかのステップは、本発明から逸脱することなく、省略されてもよく、または実施されなくてもよい。さらに、「その後」、「次いで」、「次に」などの言葉は、ステップの順序を限定することを意図していない。これらの言葉は、単に例示的な方法の説明を通して読者を導くために使用される。
【００９３】
さらに、プログラミングにおける当業者は、たとえば、本明細書のフローチャートおよび関連する説明に基づいて、開示する発明を容易に実施するために、コンピュータのコードを書くこと、または適切なハードウェアおよび/もしくは回路を識別することができる。したがって、特定の1組のプログラムコード命令または詳細なハードウェアデバイスの開示は、本発明をどのように製作および使用すべきかについて適切に理解するために必要であるとは見なされない。特許請求されるコンピュータ実施のプロセスの本発明の機能性については、上述の説明において、様々な処理フローを示し得る図面と一緒に、より詳細に説明されている。
【００９４】
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実施され得る。ソフトウェアで実施される場合、機能は、1つまたは複数の命令もしくはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体上で送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を含み得る。
【００９５】
また、任意の接続が適切にコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(「DSL」)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【００９６】
ディスク(disk)およびディスク(disc)は、本明細書において使用されるときに、コンパクトディスク(disc)(「CD」)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(「DVD」)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲の中に含まれるべきである。
【００９７】
したがって、選択された態様について詳細に図示し説明したが、以下の特許請求の範囲によって定義されるように、本発明の趣旨および範囲から逸脱することなく、各態様において様々な置換および改変を実施できることが理解されよう。
【符号の説明】
【００９８】
24  コア性能データストア、CPデータストア、CPストア
100  ポータブルコンピューティングデバイス、PCD
101  周波数選択モジュール、FSモジュール
102  オンチップシステム
103  アナログデジタル変換器コントローラ、ADCコントローラ
110  処理構成要素、ヘテロジニアスマルチコア中央処理ユニット、CPU、デジタル信号プロセッサ
112  メモリ
114  モニタモジュール、モジュール、監視モジュール
126  アナログ信号プロセッサ、プロセッサ
128  ディスプレイコントローラ
130  タッチスクリーンコントローラ
132  タッチスクリーンディスプレイ
134  ビデオデコーダ
136  ビデオ増幅器
138  ビデオポート
140  ユニバーサルシリアルバスコントローラ、USBコントローラ
142  USBポート
146  加入者識別モジュール(「SIM」)カード
148  デジタルカメラ、カメラ
150  ステレオオーディオコーデック
152  オーディオ増幅器
154  第1のステレオスピーカ
156  第2のステレオスピーカ
157  温度センサ、熱センサ
157A  オンチップ熱センサ
157B  オフチップ熱センサ
158  マイクロフォン増幅器
160  マイクロフォン
162  周波数変調ラジオチューナ、FMラジオチューナ
164  FMアンテナ
166  ステレオヘッドフォン
168  無線周波数(RF)トランシーバ、RFトランシーバ
170  RFスイッチ
172  RFアンテナ
174  キーパッド
176  マイクロフォン付きモノヘッドセット、モノヘッドセット
178  バイブレータデバイス、バイブレータ
180  電源
207  スケジューラモジュール、スケジューラ
211  バス
222  コア、プロセッサ、ヘテロジニアスコア、ヘテロジニアスプロセッサ、処理エンジン、処理コア、エンジン、処理構成要素、第0のコア
224  コア、プロセッサ、ヘテロジニアスコア、ヘテロジニアスプロセッサ、処理エンジン、処理コア、エンジン、処理構成要素、第1のコア
226、228  コア、プロセッサ、ヘテロジニアスコア、ヘテロジニアスプロセッサ、処理エンジン、処理コア、エンジン、処理構成要素
230  第Nのコア、コア
250  開始論理
260  管理論理
270  周波数選択およびスケジューリングインターフェース論理、インターフェース論理
280  アプリケーションストア
290  ファイルシステム、組込みファイルシステム
296  プログラムストア
300、500、500A、500B、520、550、580A、580B  グラフ
305、310、315、410B、415、415A、512  点
400  グラフ、性能曲線対、電力曲線
400A  上の曲線、性能曲線、曲線、プロット
400B  相補的な性能曲線
405A  点、F_min
410、510  最適電力周波数
410A  点、F_opt
420、430、425  傾き
501、502、503  性能曲線対、曲線対、性能曲線、曲線
501B  曲線
510、510B、510C、510D  F_opt
510A  F_opt、最適周波数
511A  F_req、周波数、点、要求された電力周波数
510C、511B、511C  点
512  電力崩壊
555  F_min
560  電力バジェット
【図１Ａ】
2016538637.tif 000004
【図１Ｂ】
2016538637.tif 000005
【図１Ｃ】
2016538637.tif 000006
【図１Ｄ】
2016538637.tif 000007
【図２Ａ】
2016538637.tif 000008
【図２Ｂ】
2016538637.tif 000009
【図３】
2016538637.tif 000010
【図４】
2016538637.tif 000011
【図５】
2016538637.tif 000012
【図６Ａ】
2016538637.tif 000013
【図６Ｂ】
2016538637.tif 000014
【図７】
2016538637.tif 000015
【図８】
2016538637.tif 000016
【手続補正書】
【提出日】平成28年5月20日(2016.5.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ポータブルコンピューティングデバイス(「PCD」)における1つまたは複数の処理構成要素の動作周波数設定を動的に調整するための方法であって、
処理構成要素が作業負荷を処理するための必要とされる動作周波数設定(「F_req」)を決定するステップであって、前記必要とされる動作周波数設定は、前記処理構成要素が所与の作業負荷を処理し、あるサービス品質(「QoS」)レベルを満たすために必要な最小周波数であるステップと、
前記処理構成要素の処理能力に関連付けられた1つまたは複数の静的ファクタおよび動的ファクタに関連付けられたデータを受信するステップと、
前記処理構成要素の処理能力に関連付けられた1つまたは複数の静的ファクタおよび動的ファクタに関連付けられた前記受信したデータに基づいて、前記処理構成要素に関連付けられた性能曲線を導出するステップであって、前記性能曲線は、前記処理構成要素のための電力消費と動作周波数との間の関係の表現を備えるステップと、
前記性能曲線から、前記処理構成要素に電力を供給するための最適動作周波数(「F_opt」)を決定するステップであって、前記処理構成要素が前記最適動作周波数F_optにおいて電力を供給されるとき、処理される作業負荷当たりの消費される電力の比が最適化されるステップと、
F_reqをF_optと比較するステップであって、
F_reqがF_opt以上である場合、前記処理構成要素の前記動作周波数設定がF_reqに設定され、
F_reqがF_opt未満である場合、前記処理構成要素の前記動作周波数設定がF_optに設定されるステップと
を含む方法。
【請求項２】
F_reqがF_opt以上であり、F_optが前記処理構成要素に割り振られた熱電力バジェットに関連付けられた最大周波数(「F_limit」)よりも大きい場合、前記処理構成要素の前記動作周波数設定がF_optに設定される、請求項1に記載の方法。
【請求項３】
前記処理構成要素の前記動作周波数設定をF_optに設定するステップが、平均有効周波数が実質的にF_limitに等しくなるように、前記処理構成要素を動作させるステップをさらに含む、請求項2に記載の方法。
【請求項４】
F_reqが前記処理構成要素に割り振られた熱電力バジェットに関連付けられた最大周波数(「F_limit」)よりも大きく、F_reqがF_opt未満である場合、前記処理構成要素の前記動作周波数設定がF_optに設定される、請求項1に記載の方法。
【請求項５】
前記処理構成要素の前記動作周波数設定をF_optに設定するステップが、平均有効周波数が実質的にF_limitに等しくなるように、前記処理構成要素を動作させるステップをさらに含む、請求項4に記載の方法。
【請求項６】
ポータブルコンピューティングデバイス(「PCD」)における1つまたは複数の処理構成要素の動作周波数設定を動的に調整するためのコンピュータシステムであって、
処理構成要素が作業負荷を処理するための必要とされる動作周波数設定(「F_req」)を決定することであって、前記必要とされる動作周波数設定は、前記処理構成要素が所与の作業負荷を処理し、あるサービス品質(「QoS」)レベルを満たすために必要な最小周波数であること、
前記処理構成要素の処理能力に関連付けられた1つまたは複数の静的ファクタおよび動的ファクタに関連付けられたデータを受信すること、
前記処理構成要素の処理能力に関連付けられた1つまたは複数の静的ファクタおよび動的ファクタに関連付けられた前記受信したデータに基づいて、前記処理構成要素に関連付けられた性能曲線を導出することであって、前記性能曲線は、前記処理構成要素のための電力消費と動作周波数との間の関係の表現を備えること、
前記性能曲線から、前記処理構成要素に電力を供給するための最適動作周波数(「F_opt」)を決定することであって、前記処理構成要素が前記最適動作周波数において電力を供給されるとき、処理される作業負荷当たりの消費される電力の比が最適化されること、および
F_reqをF_optと比較することであって、
F_reqがF_opt以上である場合、前記処理構成要素の前記動作周波数設定がF_reqに設定され、
F_reqがF_opt未満である場合、前記処理構成要素の前記動作周波数設定がF_optに設定されること
を行うように動作可能な周波数選択(「FS」)モジュール
を備えるコンピュータシステム。
【請求項７】
F_reqがF_opt以上であり、F_optが前記処理構成要素に割り振られた熱電力バジェットに関連付けられた最大周波数(「F_limit」)よりも大きい場合、前記処理構成要素の前記動作周波数設定がF_optに設定される、請求項6に記載のコンピュータシステム。
【請求項８】
前記処理構成要素の前記動作周波数設定をF_optに設定することが、平均有効周波数が実質的にF_limitに等しくなるように、前記処理構成要素を動作させることをさらに含む、請求項7に記載のコンピュータシステム。
【請求項９】
F_reqが前記処理構成要素に割り振られた熱電力バジェットに関連付けられた最大周波数(「F_limit」)よりも大きく、F_reqがF_opt未満である場合、前記処理構成要素の前記動作周波数設定がF_optに設定される、請求項6に記載のコンピュータシステム。
【請求項１０】
前記処理構成要素の前記動作周波数設定をF_optに設定することが、平均有効周波数が実質的にF_limitに等しくなるように、前記処理構成要素を動作させることをさらに含む、請求項9に記載のコンピュータシステム。
【国際調査報告】
2016538637.tif 000017
2016538637.tif 000018