(57)【特許請求の範囲】
【請求項１】
携帯電話機用のシステムであって、
複数のコアと、
各コアに関する漏れ電力を前記コアの生来の漏れ電流および現在の温度に基づいて解析的にモデル化することと、各コアに関する動的な電力を各コアに関する現在の電圧およびクロック周波数に基づいてモデル化することと、前記コアの漏れ電力および前記コアの動的な電力の合計に基づいて各コアに関する総電力消費を決定することと、を行うように構成された解析的コア電力およびサーマルモデラと、
各タスクがアイドルユースケースであるか、または低電力ユースケースであるかどうかに基づいて前記コアに関するタスクをスケジューリングするようにさらに構成された動的なスケジューラと、
を備え、
ここにおいて、前記アイドルユースケースは、ユーザが前記携帯電話機と相互作用しておらず、前記携帯電話機が呼またはテキストを受信していないユースケースであり、前記動的なスケジューラは、前記アイドルユースケースのための最低の漏れ電力を有するコアを選択することと、前記低電力ユースケースのための最低の総電力消費を有するコアを選択することと、を行うように構成される、システム。
【請求項２】
高電力のタスクが実行されるとき、前記動的なスケジューラは、各コアに関する熱パラメータに基づいて前記タスクをスケジューリングするようにさらに構成され、ここにおいて、前記高電力のタスクは、前記アイドルユースケースと前記低電力ユースケースのどちらでもなく、前記動的なスケジューラは、各コアに関する前記熱パラメータに基づいて、各コアが前記高電力のタスクが割り当てられたならば直面するであろう温度上昇を予測することと、どのコアが前記高電力のタスクについて最低の温度上昇を有するかに基づいて、前記高電力のタスクに前記コアのうちの少なくとも１つをスケジューリングすることと、を行うように構成される、請求項１に記載のシステム。
【請求項３】
各コアに関する前記熱パラメータは前記コアの個々の熱伝導率である、請求項２に記載のシステム。
【請求項４】
前記動的なスケジューラは、前記高電力のタスクを、ダイ上の前記複数のコアのうちの、別のコアから最も遠いコアへスケジューリングするようにさらに構成され、前記別のコアは、温度限界に到達したコアである、請求項２に記載のシステム。
【請求項５】
前記動的なスケジューラは、前記高電力のタスクを、ダイ上の熱源からより遠いコアへスケジューリングするようにさらに構成され、前記熱源は、前記ダイ上の、前記複数のコアとは別の回路である、請求項２に記載のシステム。
【請求項６】
前記動的なスケジューラは、各コアの電力レギュレータの効率に基づいて前記コアに関する前記タスクをスケジューリングするようにさらに構成され、ここにおいて、前記動的なスケジューラは、各コアを最小のクロック周波数で動作させることによってシステム電力消費が最小化されるように前記タスクをスケジューリングするように構成され、前記システム電力消費は、各コアに関する総電力消費に、各コアの電力レギュレータからの電力消費を加えたものに等しく、各コアの電力レギュレータからの前記電力消費は、各コアのクロック周波数に基づいて各コアの電力レギュレータの前記効率の関数としてモデル化される、請求項２に記載のシステム。
【請求項７】
複数のコアを有するマルチコアプロセッサと、動的なスケジューラと、を含む携帯電話機のための方法であって、
前記動的なスケジューラが、前記複数のコア内の各コアについて見積もられる漏れ電力を決定することと、ここにおいて、前記決定は、各コアに関する生来の漏れ電流、各コアの温度、および各コアに関する動作電圧に依存する解析モデルに応答し、
前記動的なスケジューラが、各コアに関する動作電圧に基づいて各コアに関する動的な電力消費を決定することと、
前記動的なスケジューラが、前記コアの見積もられる漏れ電力および前記コアの動的な電力消費の合計に基づいて各コアに関する総電力消費を決定することと、
前記動的なスケジューラが、どのコアが最低の見積もられる漏れ電力を有するかに基づいてアイドルユースケースのタスクに前記コアのうちの１つをスケジューリングすることと、ここにおいて、前記アイドルユースケースのタスクは、ユーザが前記携帯電話機と相互作用しておらず、前記携帯電話機が呼またはテキストを受信していないユースケースのタスクであり、
前記動的なスケジューラが、どのコアが最低の総電力消費を有するかに基づいて低電力ユースケースのタスクに前記コアのうちの少なくとも１つをスケジューリングすることと、
前記動的なスケジューラが、各コアに関する熱パラメータに基づいて、各コアが高性能のユースケースのタスクが割り当てられたならば直面するであろう温度上昇を予測し、前記動的なスケジューラが、どのコアが前記高性能のユースケースのタスクについて最低の温度上昇を有するかに基づいて、前記高性能のユースケースのタスクに前記コアのうちの少なくとも１つをスケジューリングすることと、
を備える、方法。
【請求項８】
各コアに関する前記熱パラメータは前記コアの個々の熱勾配であり、前記方法は、前記動的なスケジューラが、どのコアが最低の個々の熱勾配を有するかを決定することをさらに備え、前記高性能のユースケースのタスクに前記コアのうちの前記少なくとも１つを前記スケジューリングすることは、どのコアが前記最低の個々の熱勾配を有するかにさらに基づく、請求項７に記載の方法。
【請求項９】
各コアに関する前記熱パラメータは前記コアの個々の熱伝導率であり、前記方法は、前記動的なスケジューラが、どのコアが最高の個々の熱伝導率を有するかを決定することをさらに備え、前記高性能のユースケースのタスクに前記コアのうちの前記少なくとも１つを前記スケジューリングすることは、どのコアが前記最高の個々の熱伝導率を有するかにさらに基づく、請求項７に記載の方法。
【請求項１０】
前記動的なスケジューラが、各コアに関する電力レギュレータの効率を決定することと、
前記動的なスケジューラが、各コアを最小のクロック周波数で動作させることによってシステム電力消費が最小化されるように、前記高性能のユースケースのタスクをスケジューリングすることと、ここにおいて、前記システム電力消費は、各コアに関する総電力消費に、各コアの電力レギュレータからの電力消費を加えたものに等しく、各コアの電力レギュレータからの前記電力消費は、各コアのクロック周波数に基づいて各コアの電力レギュレータの前記効率の関数としてモデル化される、
をさらに備える、請求項７に記載の方法。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
[0001]本出願は、２０１３年１２月２０日に出願された米国非仮出願第１４／１３７，９１４号に対する優先権を主張し、それは、この全体が参照により本明細書に組み込まれる。
【技術分野】
【０００２】
[0002]本出願は、マルチコアプロセッサのためのタスクの動的なスケジューリングに関する。
【背景技術】
【０００３】
[0003]回路密度が高くなったため、システム・オン・チップ（ＳＯＣ）を形成するためにコンピュータシステムまたは他の電子システムのすべてまたは多くのコンポーネントが単一のチップに統合され得る。回路密度の向上（advances）は、ＳＯＣが回路モジュールまたはハードウェアモジュールの複数の具体化（instantiations）を含むことを可能にする。例えば、スマートフォン用のＳＯＣは、４コアの中央処理ユニット（ＣＰＵ）、４つのハードウェアスレッドを持つデジタル検出プロセッサ（ＤＳＰ）、４つの算術論理ユニット（ＡＬＵ）を含むグラフィック処理ユニット（ＧＰＵ）、複数のワイヤレス・ローカル・エリア・ネットワーク（ＷＬＡＮ）インターフェイス、３つのベクトル処理エンジン（ＶＰＥ）を有するモデム、および複数のＬ２キャッシュ・オンチップ・メモリを含み得る。本明細書において使用されるとき、用語「コア」または「モジュール」は、同じ回路構造のこのような複数の具体化に関して互いに取り替え可能に使用される。
【０００４】
[0004]ＳＯＣは、典型的には、特定のタスクについて同じコアからなるグループから特定のコアを選択するオペレーティングシステムまたは何らかの他のタイプのホスト・ソフトウェア・アプリケーションによって構成される。このような選択を可能にするために、同一または実質的に同一のコアからなるグループからの各々のコアは、典型的には、ハードウェアモジュールの識別（identification）（ＩＤ）またはアドレスとして機能するシリアルナンバーまたは記号（character）に関連付けられる。アドレスは、ダイ（a die）上でのハードウェアコアの地理的なロケーションまたはその製造の順番（あるいは、他のパラメータ）に基づき得る。アドレスを使用し、オペレーティングシステムは、特定のタスクについてこのようなハードウェアモジュールからなるグループから特定のハードウェアモジュールを選択する。理想的には、同一のハードウェアモジュールは、同一の特性（characteristics）および性能を示すはずである。しかしながら、回路密度の向上につれて、ＣＰＵコアなどの同一のモジュールが、それらの性能および特性（properties）においてかなりの差異（variation）を示すことが一般的である。例えば、たとえコアがダイ上で互いに直接隣接している場合でも、ダイそのものが、同一の回路が異なる挙動を示す結果となるような半導体プロセスの差異（semiconductor process variations）を有する。さらに、ダイが、ハードウェアモジュールに関するそれぞれのロケーションに、やはりそれらの性能に影響が及ぶ温度または電圧の差異（temperature or voltage variations）を有し得る。しかしながら、現在のハードウェアコアの選択の仕組みは、これらの個々の特性を考慮していない。
【０００５】
[0005]したがって、性能を向上させ、電力消費を低くするために、ハードウェアコアを賢く（intelligently）選択するプロセッサアーキテクチャについて技術におけるニーズが存在する。
【発明の概要】
【０００６】
[0006]複数のコアに関するタスクをスケジューリングする動的なスケジューラが提供される。動的なスケジューラのコア電力および熱モデル（dynamic scheduler core power and thermal model）は、各コアに関する漏れ電流電力をコアの生来の（native）漏れ電流および現在の温度に基づいて解析的にモデル化するように構成され、各コアに関する動的な電力を各コアに関する現在の電圧およびクロック周波数に基づいてモデル化するようにさらに構成される。動的なスケジューラは、タスクをスケジューリングするために、漏れ電流電力および動的な電力などのコアに関する動作パラメータを使用するスケジューリングアルゴリズムを実行する（implements）。
【０００７】
[0007]動的なスケジューラによって実行されるスケジューリングアルゴリズムはまた、各コアに関する熱勾配（あるいは同等には、その熱伝導率）などの幅広くさまざまな他の動作パラメータを使用し得る。他の動作パラメータは、ダイ上におけるコアのロケーション、各コアに関する最大クロック周波数、および各コアについての関連の電圧レギュレータの効率を含む。コアについてのタスクの動的なスケジューリングに関するコアについてのこれらの動作パラメータおよび他の動作パラメータの好都合な（advantageous）使用が、さらに後述される。
【図面の簡単な説明】
【０００８】
【図１】[0008]図１は、本開示の実施形態による動的な作業負荷スケジューラを備える例示的なマルチコア・プロセッサ・システムのブロック図である。
【図２】[0009]図２は、アイドルユースケースならびに低電力ユースケースに関する作業負荷要求の動的なスケジューリングについてのフロー図である。
【図３】[0010]図３は、高電力ユースケースに関する作業負荷要求の動的なスケジューリングについてのフロー図である。
【図４】[0011]図４は、電圧レギュレータの効率の、それらの出力電流の関数としてのグラフである。
【図５Ａ】[0012]図５Ａは、複数のコアに関するプロセッサクロック周波数の関数としてのプロセッサ電力消費のグラフである。
【図５Ｂ】[0013]図５Ｂは、プロセッサ動作周波数の関数としてのプロセッサ効率のグラフである。
【図６】[0014]図６は、本開示の実施形態による例示的な動的なスケジューリングアルゴリズムのフロー図である。
【０００９】
[0015]本発明の実施形態およびそれらの利点は、以下の詳細な説明を参照することによって、よりよく理解される。図面の１つ以上に示された類似する構成要素を識別するために、類似する参照番号が用いられることが、理解されるべきである。
【発明を実施するための形態】
【００１０】
[0016]複数のハードウェアコアに関するタスクをスケジューリングするための動的なスケジューラを含むマルチプロセッサシステムが提供される。先行技術のスケジューラと異なり、開示される動的なスケジューラは、ハードウェアコアに関する現在の動作パラメータをそれらの生来の動作パラメータに加えて考慮するスケジューリングアルゴリズムを実行する。本明細書において使用されるとき、「生来の（native）」動作パラメータは、製造時に特徴付けられた性能パラメータを指す。これらのパラメータは、静的であり、換言すると、それらは、ハードウェアコアに関する現在の動作パラメータに依存しない。例えば、このような生来のパラメータは、温度および最大動作周波数（Ｆｍａｘ）の関数として漏れ電流を含む。生来のパラメータを使用することは、知られている。例えば、生来の漏れ電流が各々のハードウェアコアについて決定される場合、従来のスケジューラは、単純に低電力のタスクを最低の生来の漏れ電流を有するコアに割り当てることができる。しかしながら、生来の動作パラメータのみに基づくスケジューリングは、最適でない。例えば、上述のように、従来のスケジューラによって、最低の生来の漏れを有するコアに低電力のタスクが割り当てられると仮定する。しかしながら、このコアがちょうどアクティブであった、したがってその温度が高くなっている（あるいは、それがダイにおいて、アクティブであるまたはちょうどアクティブであったカメラまたはグラフィックスプロセッサなどの回路モジュールの近くに位置しており、熱拡散によってコアが熱せられる）場合、このような比較的高温のコアに関する漏れ電流が、残りのコアに関する漏れと比べて、（たとえ見かけ上はこれらのコアの方が生来の漏れ電流が大きくても）実際には大きくなる可能性がある。本明細書に開示の動的なスケジューラに関するスケジューリングアルゴリズムは、現在の動作条件ならびに生来の動作パラメータを考慮し、したがって好都合なことに（advantageously）、動作の性能を高め、電力の消費を少なくする。
【００１１】
[0017]例示的なマルチプロセッサシステム１００が、図１に示されている。システム１００は、システム・オン・チップ（ＳｏＣ）を備え得、あるいは複数のダイを備え得る。動的なスケジューラ１０５が、コア０、コア１、コア２、およびコア３を含む複数のＣＰＵコア１１５に関するタスクをスケジューリングする。しかしながら、他のタイプおよび量のハードウェアコアも、このやり方でスケジューリングされ得ることが、理解されるであろう。以下の説明は、動的なスケジューラ１０５がソフトウェアにて実現されると仮定しているが、動的なスケジューラ１０５が、専用の状態機械または他の適切なハードウェアにて実現されることも可能であることが、理解されるであろう。ソフトウェアに基づく実施形態においては、コア１１５のうちの１つが、動的なスケジューラ１０５を実現するように構成され得る。あるいは、動的なスケジューラ１０５が、現在アクティブである（１つまたは複数の）どのコアも動的なスケジューラ１０５を実現するように、コア１１５にわたって分散され得る。
【００１２】
[0018]動的なスケジューラ１０５は、動的なスケジューラ１０５がコアの生来および現在の動作パラメータに基づいて各コアに関する現在の電力消費および漏れ電流を計算することを可能にする各コア１１５に関する解析的電力およびサーマルモデラ１１０を含む。例えば、各コア１１５は、コアの温度を動的なスケジューラ１０５へ送信するように構成された温度センサ（図示されていない）と関連付けられている。したがって、モデラ１１０は、解析モデルを使用して、コアの生来の漏れ電流を現在の温度の関数としてコアの現在の漏れ電流（Ｉｌｅａｋａｇｅ）へマッピングすることができる。この点に関し、生来の漏れ電流は、基準温度において測定される。解析モデルは、現在の温度と基準温度との間の変化に部分的に基づいて、現在の漏れ電流または予想される漏れ電流を予測する。モデル化された現在の漏れ電流を使用して、モデラ１１０は、各々のコアに関する漏れ電流の電力（Ｐｌｅａｋａｇｅ）を決定するように各々のコアに関する現在の動作電圧Ｖを使用し得る。さらに、動的なスケジューラ１０５は、総電力消費（Ｐｔｏｔａｌ）が計算され、それが現在の漏れ電流（Ｐｌｅａｋａｇｅ）ならびに動的な電力（Ｐｄｙｎａｍｉｃ）の合計に等しくなるように、コア毎の動的な電力消費（Ｐｄｙｎａｍｉｃ）を決定し得る。動的な電力Ｐｄｙｎａｍｉｃは、ｆ＊Ｃ＊Ｖ２に等しく、ここでｆは、コアの現在の動作周波数またはクロックレートであり、Ｃは、コアの動的な静電容量であり、Ｖは、コアの現在の動作電圧である。したがって、コアに関する総電力消費（Ｐｔｏｔａｌ）は、ＰｌｅａｋａｇｅおよびＰｄｙｎａｍｉｃの合計に等しい。一実施形態においては、動的なスケジューラ１０５は、コアについて予測される漏れ電流の解析モデルに基づいてコアに関するタスクをスケジューリングするための手段を備えると考えられ得る。
【００１３】
[0019]解析的コア電力およびモデラ１１０によって用いられる生来の漏れ電流（ＩＤＤＱ）は、基準動作電圧Ｖｒｅｆおよび基準温度Ｔｒｅｆに関して決定され得る。換言すると、生来の漏れ電流ＩＤＤＱは、各々のコアに関する製造時に、基準動作電圧Ｖｒｅｆおよび基準温度Ｔｒｅｆにおいて測定（または、推定）される。さまざまな解析モデルが、解析的コア電力およびサーマルモデラ１１０において使用され得る。例えば、１つの例示的な解析モデルは、現在の漏れ電流Ｉｌｅａｋａｇｅを計算するために、以下の式を使用する。
Ｉｌｅａｋａｇｅ＝ＩＤＤＱ＊ｅｘｐ（ｍ＊（Ｖ−Ｖｒｅｆ）＋ｎ＊（Ｔ−Ｔｒｅｆ））
ここでｎおよびｍは、動作パラメータであり、ｅｘｐは、指数関数である。このように、モデル化された漏れ電流Ｉｌｅａｋａｇｅは、対応するコア１１５の現在の動作パラメータに基づく予測された漏れ電流である。換言すると、所与のコア１１５に関するＩｌｅａｋａｇｅは、このコア１１５が現在のタスクのために選択された場合に直面するとモデラ１１０が予測する漏れ電流である。
【００１４】
[0020]動的なスケジューラ１０５は、所与のタスクに関する最低の電力消費を与えるコア１１５を選択するために、モデラ１１０からのコア１１５に関するモデル化された漏れおよび動的な電力を使用し得るマルチプロセッサ（ＭＰ）のタスクの割り当てまたはスケジューリングのアルゴリズム１２０を実行する。しかしながら、ＭＰのスケジューリングの決定に関しては、電力消費が唯一のファクタではない。別のファクタは、厳しいタスクまたは高電力のタスク（a demanding or high-power task）が実行される時に到達するコア１１５に関する温度限界である。この点に関し、コアの温度限界の問題に対処するためにコアホッピングおよび他のスケジューリング技術を実行することが知られている。しかしながら、ＭＰのスケジューリングのアルゴリズム１２０は、温度限界の回避に関してコア１１５をより賢く選択するために、各々のコア１１５に関する熱勾配を使用し得る。生来の漏れ電流ＩＤＤＱと同様に、各々のコア１１５に関する熱勾配は、製造時に決定され得る。熱勾配は、各コア１１５が所与のタスクについて動作するときに直面する時間の関数としての温度変化である。例えば、各コア１１５に関する熱勾配は、プロセッサがそれらの最大クロック周波数（ｆｍａｘ）で動作されるときに特徴付けられ得る。熱勾配と同等のパラメータが、各コア１１５に関する熱伝導率であり、それは、動作時に熱を逃がす（shed）ために所与のコア１１５に関する能力を指す。種々のコア１１５に関する熱勾配と熱伝導率とが互いに反比例の関係にある（inversely related）ことを、理解できるであろう。換言すると、比較的高い熱勾配を有するコア１１５は、比較的低い熱伝導率を有する。反対に、比較的低い熱勾配を有するコア１１５は、比較的高い熱伝導率を有すると考えられる。熱勾配（または、熱伝導率）に基づいて、モデラ１１０は、所与のコア１１５が現在のタスクが割り当てられたならば直面するであろう温度上昇を予測し得る。このようにして、ＭＰのスケジューリングのアルゴリズム１１０は、所与のタスクについて最低の温度上昇を有するコア１１５を選択し得る。
【００１５】
[0021]動的なスケジューラ１０５は、コア１１５の生来の漏れＩＤＤＱおよび現在の温度に加えて、コア１１５からの幅広くさまざまな動作パラメータを使用し得る。例えば、動的なスケジューラ１０５は、コアに関するプロセスコーナー（それらがスロー、ノミナル、またはファストのどのプロセスに対応するか）に依存し得る。この点に関して、動的なスケジューラ１０５は、プロセスコーナーを含む種々の動作パラメータに応じて、所与のタスクについて１つのコア１１５または複数のコア１１５を選択し得る。例えば、プロセッサ電圧スケーリング（ＰＶＳ）が、各々のコア１１５について相違し得る。例えば、所与のクロック周波数において、或るコア１１５が、同じクロックレートで動作する別のコア１１５と比べてより高い供給電圧を必要とし得る。したがって、動的なスケジューラ１０５は、総電力消費を低減するために、より低い電圧で動作することができるコア１１５を選択し得る。クロック周波数も、動的なクロックおよび電圧のスケーリング（ＤＣＶＳ）の実施において知られているとおりにスケーリングされ得る。この点に関し、最大動作周波数またはクロックレート（Ｆｍａｘ）が、種々のコア１１５について相違し得る。したがって、所与の動作電圧において、或るコア１１５が、より高いＦｍａｘを達成することが可能であり得る。したがって、動的なスケジューラ１０５は、最低の電力消費で最速の性能を達成するために、厳しいタスクまたは高電力のタスクに関するこのようなコア１１５を選択することができる。しかしながら、ＰＶＳ／ＤＣＶＳがコア１１５について独立でないことがあると理解されるであろう。このような実施形態においては、すべてのコア１１５が、そこから選択され得る電圧およびクロックレートの同じセットを有すると考えられる。このような一様なＤＣＶＳの実施形態においてはコアのＦｍａｘおよび動作電圧に関してコア１１５の間の区別が存在しなくてよい。
【００１６】
[0022]コア１１５について動的なスケジューラ１０５が依存し得る他の動作パラメータは、（１つまたは複数の）ダイ上でのコアのロケーション、ならびにこのロケーションの他の熱源に対する関係である。例えば、或るコア１１５が、今まさにその温度限界に到達した（pushed）別のコア１１５から最も遠いロケーションを有し得る。したがって、ビデオ処理などの高電力のタスクをこのような遠方のコア１１５へスケジューリングすることが、有利である。あるいは、或るコア１１５が、ダイ上でモデムプロセッサまたはビデオプロセッサなどの別のアクティブ回路の比較的近くに位置付けられ得る。このようなコア１１５は、この近傍のアクティブ回路からの熱も受け入れなければならない点でより急速にその温度限界に達すると考えられるため、高電力のタスクについて良好な選択ではないと考えられる。したがって、このアクティブ回路からより遠いコア１１５を選択することが、有利である。
【００１７】
[0023]次に、動的なスケジューラ１０５の好都合な特徴をよりよく説明するために、いくつかの例示的なユースケースを議論される。例えば、システム１００がアイドルである場合、動的なスケジューラ１０５は、アイドルのタスクを最低の漏れを有するコアにスケジューリングすることによって電力消費を最小にし得る。結果としてのスケジューリングプロセスが、図２に示されており、そこで、入ってくる作業負荷要求（an incoming workload request）２００が、ステップ２０５においてそれがアイドルユースケースであるか否かを決定するためにテストされる。例えば、携帯電話機の用途においては、ユーザが電話機と相互作用しておらず、いかなる呼またはテキストも受信していない期間が多い。したがって、コア１１５は、このようなアイドルユースケースの間、主としてアイドルである。タスクの要求がアイドルユースケースに対応すると決定される場合、ルックアップテーブル（ＬＵＴ）２４０などのメモリが、コア１１５に関する現在のシステム情報ならびにそれらの動作パラメータおよび特性を記憶し得る。例えば、ＬＵＴ２４０は、モデラ１１０によって決定されるような最低の漏れ電流を有するコア１１５のアイデンティティを記憶し得る。ステップ２０５における決定が肯定的である場合、動的なスケジューラ１０５は、ＬＵＴ２４０によって識別されるとおり、ステップ２１０において最低の漏れ電流を有する利用可能なコア１１５を選択する。次いで、動的なスケジューラ１０５は、このスケジューリングの決定によってステップ２１５においてＬＵＴ２４０を更新し得る。最後に、動的なスケジューラ１０５は、ステップ２２０において、要求された設定で選択されたコア１１５をオンにする。
【００１８】
[0024]ステップ２０５における決定が否定的である場合、入ってくる作業負荷要求２００は、ステップ２２１において決定されるように低電力ユースケースを備え得る。低電力ユースケースの例は、ビデオ再生またはウェブブラウジングなどのタスクを含む。ステップ２２１における決定が肯定的である場合、動的なスケジューラ１０５は、モデラ１１０によって決定されたとおりにＬＵＴ２４０において識別される最低の総電力消費特性の（１つまたは複数の）コアをステップ２２５においてスケジューリングすることによって、総電力消費を最小にし得る。続くステップ２３０において、動的なスケジューラ１０５は、このスケジューリングの決定によってＬＵＴ２４０を更新し得る。最後に、動的なスケジューラ１０５は、ステップ２３５において、要求された設定で選択されたコア１１５をオンにする。
【００１９】
[0025]ステップ２２１における決定が否定的である場合、入ってくる作業負荷要求２００は、図３のステップ３００において決定されるとおり、ビデオゲームのための集中した（intensive）グラフィックス処理（または、同様の高電力モード）などの重い（高性能の）作業負荷のユースケースを備え得る。動的なスケジューラ１０５は、次いで、ステップ３０５において、温度限界を超えることなく所望の性能を提供することができる（１つまたは複数の）コア１１５を選択し得る。例えば、ステップ３０５は、ＬＵＴ２４０において識別されるとおりに最低の温度かつ好都合の（favorable）熱勾配を有する利用可能なコア１１５を選択し得る。続くステップ３１０は、このスケジューリングの決定によってＬＵＴ２４０を更新する。ステップ３１５において、動的なスケジューラ１０５は、要求された設定で選択されたコア１１５をオンにする。選択されたコア１１５が、最終的に、温度限界を超える危険に瀕するように過度に高温になり得ることに留意されたい。したがって、動的なスケジューラ１０５は、ステップ３２５において選択されたコア１１５がその温度限界に近いか否かを決定するためにステップ３２０において選択されたコアの温度を監視し得る。ステップ３２５における決定が否定的である場合、ステップ３２０において監視を続け得る。しかしながら、選択されたコア１１５が温度限界に達しようとしている場合、動的なスケジューラ１０５は、ステップ３０５において自身のスケジューリングの選択を更新する（renews）。次いで、ステップ３１０、３１５、３２０、および３２５は、新たに選択されたコア１１５に関して繰り返され得る。したがって、ステップ３１５は、以前に選択されたコア１１５をオフにすることと、新たな選択によってＬＵＴ２４０を更新することと、をさらに備えることができる。
【００２０】
[0026]動的なスケジューラ１０５による総電力消費の最小化は、各コアに関する電力レギュレータの効率も考慮し得る。この点に関し、マルチプロセッサシステム１００における各コア１１５には、対応する電力レギュレータ（図示されていない）によって電力が供給される。したがって、コア０の電力レギュレータ、コア１の電力レギュレータ、などが存在すると考えられる。あるいは、電力レギュレータが、システム１００内のコアのサブセットによって共有され得る。一実施形態においては、モデラ１１０はまた、各々の電力レギュレータの効率を、対応する（１つまたは複数の）コアに関する現在の総電力消費Ｐｔｏｔａｌに基づいてモデル化する。例えば、モデラ１１０は、コア１１５に関する総電力消費を、コア１１５によってその電力レギュレータから引き出されている（drawn）電流へマッピングし得る。さらに、モデラ１１０は、各々の電力レギュレータについて、それが供給する電流、この動作電圧、このクロック周波数、および他の機能パラメータの関数として、各々の電力レギュレータの効率のモデルを含み得る。このようなレギュレータの効率モデルは、典型的には、何らかの最適電流値にピークを有し、その後に電流がこの最適値から減少または増加するにつれて低下する大まかに釣り鐘状の（bell-shaped）効率曲線を呈する。例えば、図４が、電圧レギュレータ４００および４０５について、出力電流の関数としての効率を示している。両方の電圧レギュレータ４００および４０５の効率は、５００〜１０００ミリアンペアの出力電流の間にピークを有する。したがって、動的なスケジューラ１０５は、その電圧レギュレータの効率が低すぎ得るコア１１５をタスクにスケジューリングすることを避けるためにこの情報を使用することができる。例えば、図５Ａは、比較的高い温度にあるスロープロセスコーナーのコア５００、比較的低い温度にあるスロープロセスコーナーのコア５０５、および比較的低い温度にあるファストプロセスコーナーのコア５１０に関するプロセッサ電力消費を示している。図５Ａに示されているすべての電力消費は、動作周波数（プロセッサのクロックレート）が高くなるにつれて単調に増加している。したがって、これらのコアを可能な限り低い周波数で動作させることにより、コアがこのような周波数において最も少ない量の電力を消費することに鑑みて、最良の効率が生み出されると期待することができる。しかしながら、このような仮定は、各々の電力レギュレータがその関連のコアにその最適な電流の量よりも少ない電流を供給していると考えられるため、関連の電力レギュレータに関する電力効率の急激な低下を無視している。
【００２１】
[0027]したがって、一実施形態において、モデラ１１０は、各々の電力レギュレータからの電力消費（Ｐｒｅｇｕｌａｔｏｒ）を、コアのクロック周波数に基づいて、その効率の関数としてモデル化する。これにより、動的なスケジューラ１０５は、システムレベルの電力消費（Ｐｓｙｓｔｅｍ）が最小化されるようにタスクをコア１１５にスケジューリングし得、ここでＰｓｙｓｔｅｍは、各コアに関するＰｔｏｔａｌに各コア（コアが対応する電力レギュレータを共有している場合には、それらのコアからなるグループ）についての関連のＰｒｅｇｕｌａｔｏｒを加えたものに等しい。図５Ｂが、コア５００、５０５、および５１５に関する動作周波数の関数としてのプロセッサエネルギ効率を示しており、ここでエネルギ効率は、システムレベルの電力消費Ｐｓｙｓｔｅｍを使用して計算されている。各コアのエネルギ効率は、Ｆｍａｘよりも低い動作周波数（Ｆ＿ｏｐｔ）においてピーク効率を有する。したがって、動的なスケジューラ１０５は、コアについてＦ＿ｏｐｔを下回る水準５１５の動作周波数を無効にし得る。
【００２２】
[0028]再び図３を参照すると、動的なスケジューラ１０５は、得られたエネルギ効率によってステップ３０５におけるコア１１５の選択に重みを付けるように構成され得る。例えば、高電力のタスクが、温度限界に達する恐れがほとんどないような比較的短い時間であると予想される場合、コアの選択は、むしろエネルギ効率を最大にすることによって制御され（be governed）得る。タスクタイムが長くなるほど、ステップ３０５は、エネルギ効率と比べて熱のファクタ（最低の温度および温度勾配を有するコア）により大きく重み付けし得る。
【００２３】
[0029]次に、動的なスケジューラ１０５に関する動作の例示的な方法が、図６を参照して述べられる。ステップ６００は、複数のコア内の各コアに関する見積もられる漏れ電流を決定すること、ここにおいて、決定は、各コアに関する生来の漏れ電流と各コアの温度とに依存する解析モデルに応答し、を備える。ステップ６０５は、最低の見積もられる漏れ電流を有するコアを決定するために、見積もられる漏れ電流を比較することを備える。最後に、ステップ６１０は、最低の見積もられる漏れ電流を有するコアをタスクにスケジューリングすることを備える。
【００２４】
[0030]当業者であればこれまでに理解したとおり、目前の特定の用途に応じて、本開示のデバイスの材料、装置、構成、および使用方法に関して、本発明の技術的思想および技術的範囲から離れることなく多数の変更、置換、および変形を作り出すことが可能である。したがって、図示および本明細書において説明された特定の実施形態は、あくまでも本発明のいくつかの例にすぎないため、本開示の技術的範囲は、図示および本明細書において説明された特定の実施形態の技術的範囲に限定されてはならず、むしろ以下に添付される特許請求の範囲およびそれらの機能的な同等物の技術的範囲と完全に等しくあるべきである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
複数のコアと、
各コアに関する漏れ電力を前記コアの生来の漏れ電流および現在の温度に基づいて解析的にモデル化することと、各コアに関する動的な電力を各コアに関する現在の電圧およびクロック周波数に基づいてモデル化することと、を行うように構成された解析的コア電力およびサーマルモデラと、
前記モデル化された漏れ電力および動的な電力に基づいて前記コアに関するタスクをスケジューリングするようにさらに構成された動的なスケジューラと、
を備える、システム。
［Ｃ２］
前記動的なスケジューラは、各コアに関する温度勾配に基づいて前記タスクをスケジューリングするようにさらに構成される、Ｃ１に記載のシステム。
［Ｃ３］
前記動的なスケジューラは、各コアに関する熱伝導率に基づいて前記タスクをスケジューリングするようにさらに構成される、Ｃ１に記載のシステム。
［Ｃ４］
前記動的なスケジューラは、ダイ上における各コアに関するロケーションに基づいて前記タスクをスケジューリングするようにさらに構成される、Ｃ１に記載のシステム。
［Ｃ５］
前記動的なスケジューラは、前記ダイ上における前記コアのロケーションの他の熱源への近接度に基づいて前記タスクをスケジューリングするようにさらに構成される、Ｃ４に記載のシステム。
［Ｃ６］
前記動的なスケジューラは、最近スケジューリングされたコアロケーションに対する前記コアロケーションの近接度に基づいて前記タスクをスケジューリングするようにさらに構成される、Ｃ４に記載のシステム。
［Ｃ７］
前記動的なスケジューラは、各コアの電力レギュレータの効率に基づいて前記コアに関する前記タスクをスケジューリングするようにさらに構成される、Ｃ２に記載のシステム。
［Ｃ８］
前記動的なスケジューラは、各タスクについて予想されるタスクタイム持続時間に基づいて前記タスクをスケジューリングするようにさらに構成される、Ｃ８に記載のシステム。
［Ｃ９］
前記動的なスケジューラは、前記タスクがアイドルユースケース、低電力ユースケース、または高電力ユースケースのいずれであるかに基づいてタスクをスケジューリングするようにさらに構成される、Ｃ１に記載のシステム。
［Ｃ１０］
前記動的なスケジューラは、各コアに関する総電力消費を決定することと、各コアに関する前記総電力消費と各コアの電力レギュレータの効率とに依存するシステム電力消費を決定することと、を行うようにさらに構成され、ここにおいて、前記動的なスケジューラは、前記システム電力消費を最小にするように前記タスクをスケジューリングするようにさらに構成される、Ｃ７に記載のシステム。
［Ｃ１１］
複数のコア内の各コアについて見積もられる漏れ電流を決定することと、ここにおいて、前記決定は、各コアに関する生来の漏れ電流と各コアの温度とに依存する解析モデルに応答し、
最低の見積もられる漏れ電流を有するコアを決定するために、前記見積もられる漏れ電流を比較することと、
前記最低の見積もられる漏れ電流を有する前記コアを第１のタスクにスケジューリングすることと、
を備える、方法。
［Ｃ１２］
前記第１のタスクは、アイドルユースケースであり、前記方法は、
どのコアが最低の動作電圧を有するかを決定することと、
どのコアが最低の見積もられる漏れ電流および最低の動作電圧を有するかに基づいて、低電力ユースケースのタスクに前記コアのうちの少なくとも１つをスケジューリングすることと、
をさらに備える、Ｃ１１に記載の方法。
［Ｃ１３］
どのコアが最低の温度を有するかを決定することと、
どのコアが最低の温度を有するかに基づいて、高性能のユースケースのタスクに前記コアのうちの少なくとも１つをスケジューリングすることと、
をさらに備える、Ｃ１１に記載の方法。
［Ｃ１４］
どのコアが最小の熱勾配を有するかを決定することをさらに備え、前記高性能のユースケースのタスクに前記コアのうちの少なくとも１つをスケジューリングすることは、どのコアが最低の熱勾配を有するかにさらに基づく、Ｃ１３に記載の方法。
［Ｃ１５］
どのコアが最高の熱伝導率を有するかを決定することをさらに備え、前記高性能のユースケースのタスクに前記コアのうちの少なくとも１つをスケジューリングすることは、どのコアが最高の熱伝導率を有するかにさらに基づく、Ｃ１３に記載の方法。
［Ｃ１６］
各コアに関する電力レギュレータの効率を決定することと、
各コアに関する前記電力レギュレータの効率に依存するシステムレベルの効率に基づいて、第２のタスクについてコアを選択することと、
をさらに備える、Ｃ１１に記載の方法。
［Ｃ１７］
複数のコアと、
各コアに関する温度に依存する前記コアについて見積もられる漏れ電流の解析モデルに基づいて前記コアにタスクをスケジューリングするための手段と、ここにおいて、スケジューリングするための前記手段は、アイドルユースケースに対応するタスクについて最低の見積もられる漏れ電流を有するコアを選択するように構成され、
を備える、マルチコアシステム。
［Ｃ１８］
手段は、各コアに関する温度勾配に基づいて前記タスクをスケジューリングするようにさらに構成される、Ｃ１７に記載のシステム。
［Ｃ１９］
前記手段は、ダイ上における各コアに関するロケーションに基づいて前記タスクをスケジューリングするようにさらに構成される、Ｃ１７に記載のシステム。
［Ｃ２０］
前記手段は、前記ダイ上における前記コアのロケーションの他の熱源への近接度に基づいて前記タスクをスケジューリングするようにさらに構成される、Ｃ１９に記載のシステム。
【図１】
0006337121.tif 000002
【図２】
0006337121.tif 000003
【図３】
0006337121.tif 000004
【図４】
0006337121.tif 000005
【図５Ａ】
0006337121.tif 000006
【図５Ｂ】
0006337121.tif 000007
【図６】
0006337121.tif 000008