特許第6337121号(P6337121)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ クゥアルコム・インコーポレイテッドの特許一覧

<>
  • 特許6337121-マルチコアの動的な作業負荷管理 図000002
  • 特許6337121-マルチコアの動的な作業負荷管理 図000003
  • 特許6337121-マルチコアの動的な作業負荷管理 図000004
  • 特許6337121-マルチコアの動的な作業負荷管理 図000005
  • 特許6337121-マルチコアの動的な作業負荷管理 図000006
  • 特許6337121-マルチコアの動的な作業負荷管理 図000007
  • 特許6337121-マルチコアの動的な作業負荷管理 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6337121
(24)【登録日】2018年5月11日
(45)【発行日】2018年6月6日
(54)【発明の名称】マルチコアの動的な作業負荷管理
(51)【国際特許分類】
   G06F 9/48 20060101AFI20180528BHJP
   G06F 1/32 20060101ALI20180528BHJP
【FI】
   G06F9/46 452Z
   G06F1/32 Z
【請求項の数】10
【全頁数】14
(21)【出願番号】特願2016-540484(P2016-540484)
(86)(22)【出願日】2014年12月15日
(65)【公表番号】特表2017-503261(P2017-503261A)
(43)【公表日】2017年1月26日
(86)【国際出願番号】US2014070279
(87)【国際公開番号】WO2015095016
(87)【国際公開日】20150625
【審査請求日】2017年8月3日
(31)【優先権主張番号】14/137,914
(32)【優先日】2013年12月20日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100112807
【弁理士】
【氏名又は名称】岡田 貴志
(72)【発明者】
【氏名】サハ、ジュヒ
(72)【発明者】
【氏名】パク、ヘ・ジュン
(72)【発明者】
【氏名】トゥ、アレックス・クアン−シュアン
(72)【発明者】
【氏名】モリソン、トーマス・アンドリュー
(72)【発明者】
【氏名】シュエ、タオ
(72)【発明者】
【氏名】アルトン、ロナルド・フランク
【審査官】 井上 宏一
(56)【参考文献】
【文献】 特開2013−214313(JP,A)
【文献】 特開2012−216232(JP,A)
【文献】 特開2012−138020(JP,A)
【文献】 特開2006− 11548(JP,A)
【文献】 特開2004−240669(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/46 −9/54
G06F 1/32
(57)【特許請求の範囲】
【請求項1】
携帯電話機用のシステムであって、
複数のコアと、
各コアに関する漏れ電力を前記コアの生来の漏れ電流および現在の温度に基づいて解析的にモデル化することと、各コアに関する動的な電力を各コアに関する現在の電圧およびクロック周波数に基づいてモデル化することと、前記コアの漏れ電力および前記コアの動的な電力の合計に基づいて各コアに関する総電力消費を決定することと、を行うように構成された解析的コア電力およびサーマルモデラと、
各タスクがアイドルユースケースであるか、または低電力ユースケースであるかどうかに基づいて前記コアに関するタスクをスケジューリングするようにさらに構成された動的なスケジューラと、
を備え、
ここにおいて、前記アイドルユースケースは、ユーザが前記携帯電話機と相互作用しておらず、前記携帯電話機が呼またはテキストを受信していないユースケースであり、前記動的なスケジューラは、前記アイドルユースケースのための最低の漏れ電力を有するコアを選択することと、前記低電力ユースケースのための最低の総電力消費を有するコアを選択することと、を行うように構成される、システム。
【請求項2】
高電力のタスクが実行されるとき、前記動的なスケジューラは、各コアに関する熱パラメータに基づいて前記タスクをスケジューリングするようにさらに構成され、ここにおいて、前記高電力のタスクは、前記アイドルユースケースと前記低電力ユースケースのどちらでもなく、前記動的なスケジューラは、各コアに関する前記熱パラメータに基づいて、各コアが前記高電力のタスクが割り当てられたならば直面するであろう温度上昇を予測することと、どのコアが前記高電力のタスクについて最低の温度上昇を有するかに基づいて、前記高電力のタスクに前記コアのうちの少なくとも1つをスケジューリングすることと、を行うように構成される、請求項1に記載のシステム。
【請求項3】
各コアに関する前記熱パラメータは前記コアの個々の熱伝導率である、請求項2に記載のシステム。
【請求項4】
前記動的なスケジューラは、前記高電力のタスクをダイ上の前記複数のコアのうちの、別のコアから最も遠いコアへスケジューリングするようにさらに構成され、前記別のコアは、温度限界に到達したコアである、請求項2に記載のシステム。
【請求項5】
前記動的なスケジューラは、前記高電力のタスクをダイ上の熱源からより遠いコアへスケジューリングするようにさらに構成され、前記熱源は、前記ダイ上の、前記複数のコアとは別の回路である、請求項2に記載のシステム。
【請求項6】
前記動的なスケジューラは、各コアの電力レギュレータの効率に基づいて前記コアに関する前記タスクをスケジューリングするようにさらに構成され、ここにおいて、前記動的なスケジューラは、各コアを最小のクロック周波数で動作させることによってシステム電力消費が最小化されるように前記タスクをスケジューリングするように構成され、前記システム電力消費は、各コアに関する総電力消費に、各コアの電力レギュレータからの電力消費を加えたものに等しく、各コアの電力レギュレータからの前記電力消費は、各コアのクロック周波数に基づいて各コアの電力レギュレータの前記効率の関数としてモデル化される、請求項2に記載のシステム。
【請求項7】
複数のコアを有するマルチコアプロセッサと、動的なスケジューラと、を含む携帯電話機のための方法であって、
前記動的なスケジューラが、前記複数のコア内の各コアについて見積もられる漏れ電力を決定することと、ここにおいて、前記決定は、各コアに関する生来の漏れ電流、各コアの温度、および各コアに関する動作電圧に依存する解析モデルに応答し、
前記動的なスケジューラが、各コアに関する動作電圧に基づいて各コアに関する動的な電力消費を決定することと、
前記動的なスケジューラが、前記コアの見積もられる漏れ電力および前記コアの動的な電力消費の合計に基づいて各コアに関する総電力消費を決定することと、
前記動的なスケジューラが、どのコアが最低の見積もられる漏れ電力を有するかに基づいてアイドルユースケースのタスクに前記コアのうちの1つをスケジューリングすることと、ここにおいて、前記アイドルユースケースのタスクは、ユーザが前記携帯電話機と相互作用しておらず、前記携帯電話機が呼またはテキストを受信していないユースケースのタスクであり、
前記動的なスケジューラが、どのコアが最低の総電力消費を有するかに基づいて低電力ユースケースのタスクに前記コアのうちの少なくとも1つをスケジューリングすることと、
前記動的なスケジューラが、各コアに関する熱パラメータに基づいて、各コアが高性能のユースケースのタスクが割り当てられたならば直面するであろう温度上昇を予測し、前記動的なスケジューラが、どのコアが前記高性能のユースケースのタスクについて最低の温度上昇を有するかに基づいて、前記高性能のユースケースのタスクに前記コアのうちの少なくとも1つをスケジューリングすることと、
を備える、方法。
【請求項8】
各コアに関する前記熱パラメータは前記コアの個々の熱勾配であり、前記方法は、前記動的なスケジューラが、どのコアが最低の個々の熱勾配を有するかを決定することをさらに備え、前記高性能のユースケースのタスクに前記コアのうちの前記少なくとも1つを前記スケジューリングすることは、どのコアが前記最低の個々の熱勾配を有するかにさらに基づく、請求項に記載の方法。
【請求項9】
各コアに関する前記熱パラメータは前記コアの個々の熱伝導率であり、前記方法は、前記動的なスケジューラが、どのコアが最高の個々の熱伝導率を有するかを決定することをさらに備え、前記高性能のユースケースのタスクに前記コアのうちの前記少なくとも1つを前記スケジューリングすることは、どのコアが前記最高の個々の熱伝導率を有するかにさらに基づく、請求項に記載の方法。
【請求項10】
前記動的なスケジューラが、各コアに関する電力レギュレータの効率を決定することと、
前記動的なスケジューラが、各コアを最小のクロック周波数で動作させることによってシステム電力消費が最小化されるように、前記高性能のユースケースのタスクをスケジューリングすることと、ここにおいて、前記システム電力消費は、各コアに関する総電力消費に、各コアの電力レギュレータからの電力消費を加えたものに等しく、各コアの電力レギュレータからの前記電力消費は、各コアのクロック周波数に基づいて各コアの電力レギュレータの前記効率の関数としてモデル化される
をさらに備える、請求項に記載の方法。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
[0001]本出願は、2013年12月20日に出願された米国非仮出願第14/137,914号に対する優先権を主張し、それは、この全体が参照により本明細書に組み込まれる。
【技術分野】
【0002】
[0002]本出願は、マルチコアプロセッサのためのタスクの動的なスケジューリングに関する。
【背景技術】
【0003】
[0003]回路密度が高くなったため、システム・オン・チップ(SOC)を形成するためにコンピュータシステムまたは他の電子システムのすべてまたは多くのコンポーネントが単一のチップに統合され得る。回路密度の向上(advances)は、SOCが回路モジュールまたはハードウェアモジュールの複数の具体化(instantiations)を含むことを可能にする。例えば、スマートフォン用のSOCは、4コアの中央処理ユニット(CPU)、4つのハードウェアスレッドを持つデジタル検出プロセッサ(DSP)、4つの算術論理ユニット(ALU)を含むグラフィック処理ユニット(GPU)、複数のワイヤレス・ローカル・エリア・ネットワーク(WLAN)インターフェイス、3つのベクトル処理エンジン(VPE)を有するモデム、および複数のL2キャッシュ・オンチップ・メモリを含み得る。本明細書において使用されるとき、用語「コア」または「モジュール」は、同じ回路構造のこのような複数の具体化に関して互いに取り替え可能に使用される。
【0004】
[0004]SOCは、典型的には、特定のタスクについて同じコアからなるグループから特定のコアを選択するオペレーティングシステムまたは何らかの他のタイプのホスト・ソフトウェア・アプリケーションによって構成される。このような選択を可能にするために、同一または実質的に同一のコアからなるグループからの各々のコアは、典型的には、ハードウェアモジュールの識別(identification)(ID)またはアドレスとして機能するシリアルナンバーまたは記号(character)に関連付けられる。アドレスは、ダイ(a die)上でのハードウェアコアの地理的なロケーションまたはその製造の順番(あるいは、他のパラメータ)に基づき得る。アドレスを使用し、オペレーティングシステムは、特定のタスクについてこのようなハードウェアモジュールからなるグループから特定のハードウェアモジュールを選択する。理想的には、同一のハードウェアモジュールは、同一の特性(characteristics)および性能を示すはずである。しかしながら、回路密度の向上につれて、CPUコアなどの同一のモジュールが、それらの性能および特性(properties)においてかなりの差異(variation)を示すことが一般的である。例えば、たとえコアがダイ上で互いに直接隣接している場合でも、ダイそのものが、同一の回路が異なる挙動を示す結果となるような半導体プロセスの差異(semiconductor process variations)を有する。さらに、ダイが、ハードウェアモジュールに関するそれぞれのロケーションに、やはりそれらの性能に影響が及ぶ温度または電圧の差異(temperature or voltage variations)を有し得る。しかしながら、現在のハードウェアコアの選択の仕組みは、これらの個々の特性を考慮していない。
【0005】
[0005]したがって、性能を向上させ、電力消費を低くするために、ハードウェアコアを賢く(intelligently)選択するプロセッサアーキテクチャについて技術におけるニーズが存在する。
【発明の概要】
【0006】
[0006]複数のコアに関するタスクをスケジューリングする動的なスケジューラが提供される。動的なスケジューラのコア電力および熱モデル(dynamic scheduler core power and thermal model)は、各コアに関する漏れ電流電力をコアの生来の(native)漏れ電流および現在の温度に基づいて解析的にモデル化するように構成され、各コアに関する動的な電力を各コアに関する現在の電圧およびクロック周波数に基づいてモデル化するようにさらに構成される。動的なスケジューラは、タスクをスケジューリングするために、漏れ電流電力および動的な電力などのコアに関する動作パラメータを使用するスケジューリングアルゴリズムを実行する(implements)。
【0007】
[0007]動的なスケジューラによって実行されるスケジューリングアルゴリズムはまた、各コアに関する熱勾配(あるいは同等には、その熱伝導率)などの幅広くさまざまな他の動作パラメータを使用し得る。他の動作パラメータは、ダイ上におけるコアのロケーション、各コアに関する最大クロック周波数、および各コアについての関連の電圧レギュレータの効率を含む。コアについてのタスクの動的なスケジューリングに関するコアについてのこれらの動作パラメータおよび他の動作パラメータの好都合な(advantageous)使用が、さらに後述される。
【図面の簡単な説明】
【0008】
図1】[0008]図1は、本開示の実施形態による動的な作業負荷スケジューラを備える例示的なマルチコア・プロセッサ・システムのブロック図である。
図2】[0009]図2は、アイドルユースケースならびに低電力ユースケースに関する作業負荷要求の動的なスケジューリングについてのフロー図である。
図3】[0010]図3は、高電力ユースケースに関する作業負荷要求の動的なスケジューリングについてのフロー図である。
図4】[0011]図4は、電圧レギュレータの効率の、それらの出力電流の関数としてのグラフである。
図5A】[0012]図5Aは、複数のコアに関するプロセッサクロック周波数の関数としてのプロセッサ電力消費のグラフである。
図5B】[0013]図5Bは、プロセッサ動作周波数の関数としてのプロセッサ効率のグラフである。
図6】[0014]図6は、本開示の実施形態による例示的な動的なスケジューリングアルゴリズムのフロー図である。
【0009】
[0015]本発明の実施形態およびそれらの利点は、以下の詳細な説明を参照することによって、よりよく理解される。図面の1つ以上に示された類似する構成要素を識別するために、類似する参照番号が用いられることが、理解されるべきである。
【発明を実施するための形態】
【0010】
[0016]複数のハードウェアコアに関するタスクをスケジューリングするための動的なスケジューラを含むマルチプロセッサシステムが提供される。先行技術のスケジューラと異なり、開示される動的なスケジューラは、ハードウェアコアに関する現在の動作パラメータをそれらの生来の動作パラメータに加えて考慮するスケジューリングアルゴリズムを実行する。本明細書において使用されるとき、「生来の(native)」動作パラメータは、製造時に特徴付けられた性能パラメータを指す。これらのパラメータは、静的であり、換言すると、それらは、ハードウェアコアに関する現在の動作パラメータに依存しない。例えば、このような生来のパラメータは、温度および最大動作周波数(Fmax)の関数として漏れ電流を含む。生来のパラメータを使用することは、知られている。例えば、生来の漏れ電流が各々のハードウェアコアについて決定される場合、従来のスケジューラは、単純に低電力のタスクを最低の生来の漏れ電流を有するコアに割り当てることができる。しかしながら、生来の動作パラメータのみに基づくスケジューリングは、最適でない。例えば、上述のように、従来のスケジューラによって、最低の生来の漏れを有するコアに低電力のタスクが割り当てられると仮定する。しかしながら、このコアがちょうどアクティブであった、したがってその温度が高くなっている(あるいは、それがダイにおいて、アクティブであるまたはちょうどアクティブであったカメラまたはグラフィックスプロセッサなどの回路モジュールの近くに位置しており、熱拡散によってコアが熱せられる)場合、このような比較的高温のコアに関する漏れ電流が、残りのコアに関する漏れと比べて、(たとえ見かけ上はこれらのコアの方が生来の漏れ電流が大きくても)実際には大きくなる可能性がある。本明細書に開示の動的なスケジューラに関するスケジューリングアルゴリズムは、現在の動作条件ならびに生来の動作パラメータを考慮し、したがって好都合なことに(advantageously)、動作の性能を高め、電力の消費を少なくする。
【0011】
[0017]例示的なマルチプロセッサシステム100が、図1に示されている。システム100は、システム・オン・チップ(SoC)を備え得、あるいは複数のダイを備え得る。動的なスケジューラ105が、コア0、コア1、コア2、およびコア3を含む複数のCPUコア115に関するタスクをスケジューリングする。しかしながら、他のタイプおよび量のハードウェアコアも、このやり方でスケジューリングされ得ることが、理解されるであろう。以下の説明は、動的なスケジューラ105がソフトウェアにて実現されると仮定しているが、動的なスケジューラ105が、専用の状態機械または他の適切なハードウェアにて実現されることも可能であることが、理解されるであろう。ソフトウェアに基づく実施形態においては、コア115のうちの1つが、動的なスケジューラ105を実現するように構成され得る。あるいは、動的なスケジューラ105が、現在アクティブである(1つまたは複数の)どのコアも動的なスケジューラ105を実現するように、コア115にわたって分散され得る。
【0012】
[0018]動的なスケジューラ105は、動的なスケジューラ105がコアの生来および現在の動作パラメータに基づいて各コアに関する現在の電力消費および漏れ電流を計算することを可能にする各コア115に関する解析的電力およびサーマルモデラ110を含む。例えば、各コア115は、コアの温度を動的なスケジューラ105へ送信するように構成された温度センサ(図示されていない)と関連付けられている。したがって、モデラ110は、解析モデルを使用して、コアの生来の漏れ電流を現在の温度の関数としてコアの現在の漏れ電流(Ileakage)へマッピングすることができる。この点に関し、生来の漏れ電流は、基準温度において測定される。解析モデルは、現在の温度と基準温度との間の変化に部分的に基づいて、現在の漏れ電流または予想される漏れ電流を予測する。モデル化された現在の漏れ電流を使用して、モデラ110は、各々のコアに関する漏れ電流の電力(Pleakage)を決定するように各々のコアに関する現在の動作電圧Vを使用し得る。さらに、動的なスケジューラ105は、総電力消費(Ptotal)が計算され、それが現在の漏れ電流(Pleakage)ならびに動的な電力(Pdynamic)の合計に等しくなるように、コア毎の動的な電力消費(Pdynamic)を決定し得る。動的な電力Pdynamicは、f*C*Vに等しく、ここでfは、コアの現在の動作周波数またはクロックレートであり、Cは、コアの動的な静電容量であり、Vは、コアの現在の動作電圧である。したがって、コアに関する総電力消費(Ptotal)は、PleakageおよびPdynamicの合計に等しい。一実施形態においては、動的なスケジューラ105は、コアについて予測される漏れ電流の解析モデルに基づいてコアに関するタスクをスケジューリングするための手段を備えると考えられ得る。
【0013】
[0019]解析的コア電力およびモデラ110によって用いられる生来の漏れ電流(IDDQ)は、基準動作電圧Vrefおよび基準温度Trefに関して決定され得る。換言すると、生来の漏れ電流IDDQは、各々のコアに関する製造時に、基準動作電圧Vrefおよび基準温度Trefにおいて測定(または、推定)される。さまざまな解析モデルが、解析的コア電力およびサーマルモデラ110において使用され得る。例えば、1つの例示的な解析モデルは、現在の漏れ電流Ileakageを計算するために、以下の式を使用する。
leakage=IDDQ*exp(m*(V−Vref)+n*(T−Tref))
ここでnおよびmは、動作パラメータであり、expは、指数関数である。このように、モデル化された漏れ電流Ileakageは、対応するコア115の現在の動作パラメータに基づく予測された漏れ電流である。換言すると、所与のコア115に関するIleakageは、このコア115が現在のタスクのために選択された場合に直面するとモデラ110が予測する漏れ電流である。
【0014】
[0020]動的なスケジューラ105は、所与のタスクに関する最低の電力消費を与えるコア115を選択するために、モデラ110からのコア115に関するモデル化された漏れおよび動的な電力を使用し得るマルチプロセッサ(MP)のタスクの割り当てまたはスケジューリングのアルゴリズム120を実行する。しかしながら、MPのスケジューリングの決定に関しては、電力消費が唯一のファクタではない。別のファクタは、厳しいタスクまたは高電力のタスク(a demanding or high-power task)が実行される時に到達するコア115に関する温度限界である。この点に関し、コアの温度限界の問題に対処するためにコアホッピングおよび他のスケジューリング技術を実行することが知られている。しかしながら、MPのスケジューリングのアルゴリズム120は、温度限界の回避に関してコア115をより賢く選択するために、各々のコア115に関する熱勾配を使用し得る。生来の漏れ電流IDDQと同様に、各々のコア115に関する熱勾配は、製造時に決定され得る。熱勾配は、各コア115が所与のタスクについて動作するときに直面する時間の関数としての温度変化である。例えば、各コア115に関する熱勾配は、プロセッサがそれらの最大クロック周波数(fmax)で動作されるときに特徴付けられ得る。熱勾配と同等のパラメータが、各コア115に関する熱伝導率であり、それは、動作時に熱を逃がす(shed)ために所与のコア115に関する能力を指す。種々のコア115に関する熱勾配と熱伝導率とが互いに反比例の関係にある(inversely related)ことを、理解できるであろう。換言すると、比較的高い熱勾配を有するコア115は、比較的低い熱伝導率を有する。反対に、比較的低い熱勾配を有するコア115は、比較的高い熱伝導率を有すると考えられる。熱勾配(または、熱伝導率)に基づいて、モデラ110は、所与のコア115が現在のタスクが割り当てられたならば直面するであろう温度上昇を予測し得る。このようにして、MPのスケジューリングのアルゴリズム110は、所与のタスクについて最低の温度上昇を有するコア115を選択し得る。
【0015】
[0021]動的なスケジューラ105は、コア115の生来の漏れIDDQおよび現在の温度に加えて、コア115からの幅広くさまざまな動作パラメータを使用し得る。例えば、動的なスケジューラ105は、コアに関するプロセスコーナー(それらがスロー、ノミナル、またはファストのどのプロセスに対応するか)に依存し得る。この点に関して、動的なスケジューラ105は、プロセスコーナーを含む種々の動作パラメータに応じて、所与のタスクについて1つのコア115または複数のコア115を選択し得る。例えば、プロセッサ電圧スケーリング(PVS)が、各々のコア115について相違し得る。例えば、所与のクロック周波数において、或るコア115が、同じクロックレートで動作する別のコア115と比べてより高い供給電圧を必要とし得る。したがって、動的なスケジューラ105は、総電力消費を低減するために、より低い電圧で動作することができるコア115を選択し得る。クロック周波数も、動的なクロックおよび電圧のスケーリング(DCVS)の実施において知られているとおりにスケーリングされ得る。この点に関し、最大動作周波数またはクロックレート(Fmax)が、種々のコア115について相違し得る。したがって、所与の動作電圧において、或るコア115が、より高いFmaxを達成することが可能であり得る。したがって、動的なスケジューラ105は、最低の電力消費で最速の性能を達成するために、厳しいタスクまたは高電力のタスクに関するこのようなコア115を選択することができる。しかしながら、PVS/DCVSがコア115について独立でないことがあると理解されるであろう。このような実施形態においては、すべてのコア115が、そこから選択され得る電圧およびクロックレートの同じセットを有すると考えられる。このような一様なDCVSの実施形態においてはコアのFmaxおよび動作電圧に関してコア115の間の区別が存在しなくてよい。
【0016】
[0022]コア115について動的なスケジューラ105が依存し得る他の動作パラメータは、(1つまたは複数の)ダイ上でのコアのロケーション、ならびにこのロケーションの他の熱源に対する関係である。例えば、或るコア115が、今まさにその温度限界に到達した(pushed)別のコア115から最も遠いロケーションを有し得る。したがって、ビデオ処理などの高電力のタスクをこのような遠方のコア115へスケジューリングすることが、有利である。あるいは、或るコア115が、ダイ上でモデムプロセッサまたはビデオプロセッサなどの別のアクティブ回路の比較的近くに位置付けられ得る。このようなコア115は、この近傍のアクティブ回路からの熱も受け入れなければならない点でより急速にその温度限界に達すると考えられるため、高電力のタスクについて良好な選択ではないと考えられる。したがって、このアクティブ回路からより遠いコア115を選択することが、有利である。
【0017】
[0023]次に、動的なスケジューラ105の好都合な特徴をよりよく説明するために、いくつかの例示的なユースケースを議論される。例えば、システム100がアイドルである場合、動的なスケジューラ105は、アイドルのタスクを最低の漏れを有するコアにスケジューリングすることによって電力消費を最小にし得る。結果としてのスケジューリングプロセスが、図2に示されており、そこで、入ってくる作業負荷要求(an incoming workload request)200が、ステップ205においてそれがアイドルユースケースであるか否かを決定するためにテストされる。例えば、携帯電話機の用途においては、ユーザが電話機と相互作用しておらず、いかなる呼またはテキストも受信していない期間が多い。したがって、コア115は、このようなアイドルユースケースの間、主としてアイドルである。タスクの要求がアイドルユースケースに対応すると決定される場合、ルックアップテーブル(LUT)240などのメモリが、コア115に関する現在のシステム情報ならびにそれらの動作パラメータおよび特性を記憶し得る。例えば、LUT240は、モデラ110によって決定されるような最低の漏れ電流を有するコア115のアイデンティティを記憶し得る。ステップ205における決定が肯定的である場合、動的なスケジューラ105は、LUT240によって識別されるとおり、ステップ210において最低の漏れ電流を有する利用可能なコア115を選択する。次いで、動的なスケジューラ105は、このスケジューリングの決定によってステップ215においてLUT240を更新し得る。最後に、動的なスケジューラ105は、ステップ220において、要求された設定で選択されたコア115をオンにする。
【0018】
[0024]ステップ205における決定が否定的である場合、入ってくる作業負荷要求200は、ステップ221において決定されるように低電力ユースケースを備え得る。低電力ユースケースの例は、ビデオ再生またはウェブブラウジングなどのタスクを含む。ステップ221における決定が肯定的である場合、動的なスケジューラ105は、モデラ110によって決定されたとおりにLUT240において識別される最低の総電力消費特性の(1つまたは複数の)コアをステップ225においてスケジューリングすることによって、総電力消費を最小にし得る。続くステップ230において、動的なスケジューラ105は、このスケジューリングの決定によってLUT240を更新し得る。最後に、動的なスケジューラ105は、ステップ235において、要求された設定で選択されたコア115をオンにする。
【0019】
[0025]ステップ221における決定が否定的である場合、入ってくる作業負荷要求200は、図3のステップ300において決定されるとおり、ビデオゲームのための集中した(intensive)グラフィックス処理(または、同様の高電力モード)などの重い(高性能の)作業負荷のユースケースを備え得る。動的なスケジューラ105は、次いで、ステップ305において、温度限界を超えることなく所望の性能を提供することができる(1つまたは複数の)コア115を選択し得る。例えば、ステップ305は、LUT240において識別されるとおりに最低の温度かつ好都合の(favorable)熱勾配を有する利用可能なコア115を選択し得る。続くステップ310は、このスケジューリングの決定によってLUT240を更新する。ステップ315において、動的なスケジューラ105は、要求された設定で選択されたコア115をオンにする。選択されたコア115が、最終的に、温度限界を超える危険に瀕するように過度に高温になり得ることに留意されたい。したがって、動的なスケジューラ105は、ステップ325において選択されたコア115がその温度限界に近いか否かを決定するためにステップ320において選択されたコアの温度を監視し得る。ステップ325における決定が否定的である場合、ステップ320において監視を続け得る。しかしながら、選択されたコア115が温度限界に達しようとしている場合、動的なスケジューラ105は、ステップ305において自身のスケジューリングの選択を更新する(renews)。次いで、ステップ310、315、320、および325は、新たに選択されたコア115に関して繰り返され得る。したがって、ステップ315は、以前に選択されたコア115をオフにすることと、新たな選択によってLUT240を更新することと、をさらに備えることができる。
【0020】
[0026]動的なスケジューラ105による総電力消費の最小化は、各コアに関する電力レギュレータの効率も考慮し得る。この点に関し、マルチプロセッサシステム100における各コア115には、対応する電力レギュレータ(図示されていない)によって電力が供給される。したがって、コア0の電力レギュレータ、コア1の電力レギュレータ、などが存在すると考えられる。あるいは、電力レギュレータが、システム100内のコアのサブセットによって共有され得る。一実施形態においては、モデラ110はまた、各々の電力レギュレータの効率を、対応する(1つまたは複数の)コアに関する現在の総電力消費Ptotalに基づいてモデル化する。例えば、モデラ110は、コア115に関する総電力消費を、コア115によってその電力レギュレータから引き出されている(drawn)電流へマッピングし得る。さらに、モデラ110は、各々の電力レギュレータについて、それが供給する電流、この動作電圧、このクロック周波数、および他の機能パラメータの関数として、各々の電力レギュレータの効率のモデルを含み得る。このようなレギュレータの効率モデルは、典型的には、何らかの最適電流値にピークを有し、その後に電流がこの最適値から減少または増加するにつれて低下する大まかに釣り鐘状の(bell-shaped)効率曲線を呈する。例えば、図4が、電圧レギュレータ400および405について、出力電流の関数としての効率を示している。両方の電圧レギュレータ400および405の効率は、500〜1000ミリアンペアの出力電流の間にピークを有する。したがって、動的なスケジューラ105は、その電圧レギュレータの効率が低すぎ得るコア115をタスクにスケジューリングすることを避けるためにこの情報を使用することができる。例えば、図5Aは、比較的高い温度にあるスロープロセスコーナーのコア500、比較的低い温度にあるスロープロセスコーナーのコア505、および比較的低い温度にあるファストプロセスコーナーのコア510に関するプロセッサ電力消費を示している。図5Aに示されているすべての電力消費は、動作周波数(プロセッサのクロックレート)が高くなるにつれて単調に増加している。したがって、これらのコアを可能な限り低い周波数で動作させることにより、コアがこのような周波数において最も少ない量の電力を消費することに鑑みて、最良の効率が生み出されると期待することができる。しかしながら、このような仮定は、各々の電力レギュレータがその関連のコアにその最適な電流の量よりも少ない電流を供給していると考えられるため、関連の電力レギュレータに関する電力効率の急激な低下を無視している。
【0021】
[0027]したがって、一実施形態において、モデラ110は、各々の電力レギュレータからの電力消費(Pregulator)を、コアのクロック周波数に基づいて、その効率の関数としてモデル化する。これにより、動的なスケジューラ105は、システムレベルの電力消費(Psystem)が最小化されるようにタスクをコア115にスケジューリングし得、ここでPsystemは、各コアに関するPtotalに各コア(コアが対応する電力レギュレータを共有している場合には、それらのコアからなるグループ)についての関連のPregulatorを加えたものに等しい。図5Bが、コア500、505、および515に関する動作周波数の関数としてのプロセッサエネルギ効率を示しており、ここでエネルギ効率は、システムレベルの電力消費Psystemを使用して計算されている。各コアのエネルギ効率は、Fmaxよりも低い動作周波数(F_opt)においてピーク効率を有する。したがって、動的なスケジューラ105は、コアについてF_optを下回る水準515の動作周波数を無効にし得る。
【0022】
[0028]再び図3を参照すると、動的なスケジューラ105は、得られたエネルギ効率によってステップ305におけるコア115の選択に重みを付けるように構成され得る。例えば、高電力のタスクが、温度限界に達する恐れがほとんどないような比較的短い時間であると予想される場合、コアの選択は、むしろエネルギ効率を最大にすることによって制御され(be governed)得る。タスクタイムが長くなるほど、ステップ305は、エネルギ効率と比べて熱のファクタ(最低の温度および温度勾配を有するコア)により大きく重み付けし得る。
【0023】
[0029]次に、動的なスケジューラ105に関する動作の例示的な方法が、図6を参照して述べられる。ステップ600は、複数のコア内の各コアに関する見積もられる漏れ電流を決定すること、ここにおいて、決定は、各コアに関する生来の漏れ電流と各コアの温度とに依存する解析モデルに応答し、を備える。ステップ605は、最低の見積もられる漏れ電流を有するコアを決定するために、見積もられる漏れ電流を比較することを備える。最後に、ステップ610は、最低の見積もられる漏れ電流を有するコアをタスクにスケジューリングすることを備える。
【0024】
[0030]当業者であればこれまでに理解したとおり、目前の特定の用途に応じて、本開示のデバイスの材料、装置、構成、および使用方法に関して、本発明の技術的思想および技術的範囲から離れることなく多数の変更、置換、および変形を作り出すことが可能である。したがって、図示および本明細書において説明された特定の実施形態は、あくまでも本発明のいくつかの例にすぎないため、本開示の技術的範囲は、図示および本明細書において説明された特定の実施形態の技術的範囲に限定されてはならず、むしろ以下に添付される特許請求の範囲およびそれらの機能的な同等物の技術的範囲と完全に等しくあるべきである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
複数のコアと、
各コアに関する漏れ電力を前記コアの生来の漏れ電流および現在の温度に基づいて解析的にモデル化することと、各コアに関する動的な電力を各コアに関する現在の電圧およびクロック周波数に基づいてモデル化することと、を行うように構成された解析的コア電力およびサーマルモデラと、
前記モデル化された漏れ電力および動的な電力に基づいて前記コアに関するタスクをスケジューリングするようにさらに構成された動的なスケジューラと、
を備える、システム。
[C2]
前記動的なスケジューラは、各コアに関する温度勾配に基づいて前記タスクをスケジューリングするようにさらに構成される、C1に記載のシステム。
[C3]
前記動的なスケジューラは、各コアに関する熱伝導率に基づいて前記タスクをスケジューリングするようにさらに構成される、C1に記載のシステム。
[C4]
前記動的なスケジューラは、ダイ上における各コアに関するロケーションに基づいて前記タスクをスケジューリングするようにさらに構成される、C1に記載のシステム。
[C5]
前記動的なスケジューラは、前記ダイ上における前記コアのロケーションの他の熱源への近接度に基づいて前記タスクをスケジューリングするようにさらに構成される、C4に記載のシステム。
[C6]
前記動的なスケジューラは、最近スケジューリングされたコアロケーションに対する前記コアロケーションの近接度に基づいて前記タスクをスケジューリングするようにさらに構成される、C4に記載のシステム。
[C7]
前記動的なスケジューラは、各コアの電力レギュレータの効率に基づいて前記コアに関する前記タスクをスケジューリングするようにさらに構成される、C2に記載のシステム。
[C8]
前記動的なスケジューラは、各タスクについて予想されるタスクタイム持続時間に基づいて前記タスクをスケジューリングするようにさらに構成される、C8に記載のシステム。
[C9]
前記動的なスケジューラは、前記タスクがアイドルユースケース、低電力ユースケース、または高電力ユースケースのいずれであるかに基づいてタスクをスケジューリングするようにさらに構成される、C1に記載のシステム。
[C10]
前記動的なスケジューラは、各コアに関する総電力消費を決定することと、各コアに関する前記総電力消費と各コアの電力レギュレータの効率とに依存するシステム電力消費を決定することと、を行うようにさらに構成され、ここにおいて、前記動的なスケジューラは、前記システム電力消費を最小にするように前記タスクをスケジューリングするようにさらに構成される、C7に記載のシステム。
[C11]
複数のコア内の各コアについて見積もられる漏れ電流を決定することと、ここにおいて、前記決定は、各コアに関する生来の漏れ電流と各コアの温度とに依存する解析モデルに応答し、
最低の見積もられる漏れ電流を有するコアを決定するために、前記見積もられる漏れ電流を比較することと、
前記最低の見積もられる漏れ電流を有する前記コアを第1のタスクにスケジューリングすることと、
を備える、方法。
[C12]
前記第1のタスクは、アイドルユースケースであり、前記方法は、
どのコアが最低の動作電圧を有するかを決定することと、
どのコアが最低の見積もられる漏れ電流および最低の動作電圧を有するかに基づいて、低電力ユースケースのタスクに前記コアのうちの少なくとも1つをスケジューリングすることと、
をさらに備える、C11に記載の方法。
[C13]
どのコアが最低の温度を有するかを決定することと、
どのコアが最低の温度を有するかに基づいて、高性能のユースケースのタスクに前記コアのうちの少なくとも1つをスケジューリングすることと、
をさらに備える、C11に記載の方法。
[C14]
どのコアが最小の熱勾配を有するかを決定することをさらに備え、前記高性能のユースケースのタスクに前記コアのうちの少なくとも1つをスケジューリングすることは、どのコアが最低の熱勾配を有するかにさらに基づく、C13に記載の方法。
[C15]
どのコアが最高の熱伝導率を有するかを決定することをさらに備え、前記高性能のユースケースのタスクに前記コアのうちの少なくとも1つをスケジューリングすることは、どのコアが最高の熱伝導率を有するかにさらに基づく、C13に記載の方法。
[C16]
各コアに関する電力レギュレータの効率を決定することと、
各コアに関する前記電力レギュレータの効率に依存するシステムレベルの効率に基づいて、第2のタスクについてコアを選択することと、
をさらに備える、C11に記載の方法。
[C17]
複数のコアと、
各コアに関する温度に依存する前記コアについて見積もられる漏れ電流の解析モデルに基づいて前記コアにタスクをスケジューリングするための手段と、ここにおいて、スケジューリングするための前記手段は、アイドルユースケースに対応するタスクについて最低の見積もられる漏れ電流を有するコアを選択するように構成され、
を備える、マルチコアシステム。
[C18]
手段は、各コアに関する温度勾配に基づいて前記タスクをスケジューリングするようにさらに構成される、C17に記載のシステム。
[C19]
前記手段は、ダイ上における各コアに関するロケーションに基づいて前記タスクをスケジューリングするようにさらに構成される、C17に記載のシステム。
[C20]
前記手段は、前記ダイ上における前記コアのロケーションの他の熱源への近接度に基づいて前記タスクをスケジューリングするようにさらに構成される、C19に記載のシステム。
図1
図2
図3
図4
図5A
図5B
図6