(57)【要約】処理ノードのノード当たりの熱制御のための装置および方法が開示される。本装置は、複数の処理ノードと、第１の検出温度が第１の温度閾値よりも高いとの指示を受信することに応じて、複数の処理ノードのうち少なくとも１つの処理ノードに対して第１の周波数限界を設定するように構成された電力管理ユニットとを含む。第１の検出温度は、複数の処理ノードのうち前記１つの処理ノードに関連している。電力管理ユニットは、第２の温度が第２の温度閾値よりも高いとの指示を受信することに応じて、複数の処理ノードの各々に対して第２の周波数限界を設定するように構成されている。【選択図】図２
2013546070.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理ノードと、
第１の検出温度が第１の温度閾値よりも高いとの指示を受信したことに応じて、前記複数の処理ノードのうち他の処理ノードとは独立の１つの処理ノードに対して第１の周波数限界を設定するように構成された電力管理ユニットとを備え、
前記第１の検出温度は、前記複数の処理ノードのうち前記１つの処理ノードと関連しており、
前記電力管理ユニットは、第２の温度が第２の温度閾値よりも高いとの指示を受信したことに応じて、前記複数の処理ノードの各々に対して第２の周波数限界を設定するように構成されている、システム。
【請求項２】
前記複数の処理ノードの各々は、複数の動作点のうち１つの動作点で動作するように構成されており、前記複数の動作点の各々は、クロック周波数および供給電圧を有しており、前記電力管理ユニットは、第１の温度閾値以上である第１の検出温度の指示を受信したことに応じて、前記複数の処理ノードのうち前記１つの処理ノードに対して第１の動作点限界を設定するよう構成されており、さらに、第２の温度が第２の温度閾値以上であるとの指示を受信したことに応じて、前記複数の処理ノードの各々に対して第２の動作点限界を設定するように構成されている、請求項１に記載のシステム。
【請求項３】
前記第１の動作点限界は、最大動作周波数よりも低い第１のクロック周波数を有する動作点と、最大供給電圧よりも低い第１の供給電圧とを有している、請求項２に記載のシステム。
【請求項４】
前記第２の動作点限界は、前記第１のクロック周波数よりも低い第２のクロック周波数を有する動作点と、前記第１の供給電圧よりも低い第２の供給電圧とを有している、請求項３に記載のシステム。
【請求項５】
前記第２の温度は、前記第１の温度よりも高い、請求項１に記載のシステム。
【請求項６】
前記第１の温度閾値は、ローカル電力限界に基づいており、前記第２の温度閾値は、グローバル電力限界に基づいており、前記ローカル電力限界は可変であり、前記グローバル電力限界は固定されている、請求項１に記載のシステム。
【請求項７】
前記電力管理ユニットは、前記複数の処理ノードのうち少なくとも１つの処理ノードのローカル電力限界が、前記複数の処理ノードのうち他の処理ノードのローカル電力限界よりも大きい場合には、前記複数の処理ノードのうち前記少なくとも１つの処理ノードのオーバークロックを引き起こすように構成されている、請求項６に記載のシステム。
【請求項８】
前記電力管理ユニットは、前記複数の処理ノードのうち１つ以上の追加的な処理ノードの動作点に基づいて、前記複数の処理ノードのうち所与の処理ノードに対して前記ローカル電力限界を設定するように構成されている、請求項６に記載のシステム。
【請求項９】
前記電力管理ユニットは、前記複数の処理ノードのうち待機状態の１つ以上の追加的な処理ノードに応じて、前記複数の処理ノードのうち前記所与の処理ノードに対して前記ローカル電力限界を上昇させるように構成されている、請求項８に記載のシステム。
【請求項１０】
前記グローバル電力限界は、特定の周囲温度値に基づいている、請求項６に記載のシステム。
【請求項１１】
前記複数の処理ノードのうち１つ以上の処理ノードはプロセッサコアであり、前記処理ノードのうち少なくとも１つの処理ノードはグラフィック処理ユニット（ＧＰＵ）である、請求項１に記載のシステム。
【請求項１２】
前記電力管理ユニットは、前記複数の処理ノードの各々に対して、互いに独立した個別の動作点を設定するように構成されている、請求項１に記載のシステム。
【請求項１３】
第１の検出温度が第１の温度閾値よりも高いとの指示を受信することに応じて、前記複数の処理ノードのうち１つの処理の処理ノードに対して、複数の処理ノードのうち他の処理ノードの周波数から独立した第１の周波数限界を設定するステップであって、前記第１の検出温度は前記複数の処理ノードのうち前記１つの処理ノードと関連しているステップと、
第２の検出温度が第２の温度閾値よりも高いとの指示を受信することに応じて、前記複数の処理ノードの各々に対して第２の周波数限界を設定するステップと、
を含む、方法。
【請求項１４】
前記複数の処理ノードの各々を複数の動作点のうち１つの動作点で動作させるステップであって、前記複数の動作点の各々は、クロック周波数および供給電圧を有しているステップと、
前記第１の検出温度が前記第１の温度閾値以上であるとの前記指示を受信することに応じて、前記複数の処理ノードのうち前記１つの処理ノードに対して第１の動作点限界を設定するステップと、
前記第２の検出温度が前記第２の温度閾値以上であるとの前記指示を受信することに応じて、前記複数の処理ノードの各々に対して第２の動作点限界を設定するステップと、
をさらに含む、請求項１３に記載の方法。
【請求項１５】
前記第１の動作点限界は、最大動作周波数よりも低い第１のクロック周波数を有する動作点と、最大供給電圧よりも低い第１の供給電圧とを有している、請求項１４に記載の方法。
【請求項１６】
前記第２の動作点限界は、前記第１のクロック周波数よりも低い第２のクロック周波数を有する動作点と、前記第１の供給電圧よりも低い第２の供給電圧とを有している、請求項１５に記載の方法。
【請求項１７】
前記第２の温度は、前記第１の温度よりも高い、請求項１３に記載の方法。
【請求項１８】
前記第１の温度閾値は、ローカル電力限界に基づいており、前記第２の温度閾値は、グローバル電力限界に基づいており、前記ローカル電力限界は可変であり、前記グローバル電力限界は固定されている、請求項１３に記載の方法。
【請求項１９】
前記複数の処理ノードのうち少なくとも１つの処理ノードのローカルＴＤＰ限界が、前記複数の処理ノードのうち他の処理ノードのＴＤＰ限界よりも大きい場合に、前記複数の処理ノードのうち前記少なくとも１つの処理ノードをオーバークロックさせるステップをさらに含む、請求項１８に記載の方法。
【請求項２０】
前記複数の処理ノードのうち１つ以上の追加的な処理ノードの動作点に基づいて、前記複数の処理ノードのうち所与の処理ノードに対して前記ローカル電力限界を設定するステップをさらに含む、請求項１８に記載の方法。
【請求項２１】
前記複数の処理ノードのうち待機状態の１つ以上の追加的な処理ノードに応じて、前記複数の処理ノードのうち前記所与の処理ノードに対して、前記ローカル電力限界を上昇させるステップをさらに含む、請求項２０に記載の方法。
【請求項２２】
前記グローバル電力限界は、特定の周囲温度値に基づいている、請求項１８に記載の方法。
【請求項２３】
前記処理ノードのうち１つ以上の処理ノードはプロセッサコアであり、前記処理ノードのうち少なくとも１つの処理ノードはグラフィック処理ユニットである、請求項１３に記載の方法。
【請求項２４】
前記複数の処理ノードの各々に対して、互いに独立した個別の動作点を設定するステップをさらに含む、請求項１３に記載の方法。
【請求項２５】
コンピュータシステム上で実行可能なプログラムにより処理されるデータ構造を記憶するコンピュータ可読媒体であって、前記データ構造を処理する前記プログラムは、前記データ構造により記述された回路網を含む集積回路を製造する工程の一部を実行し、
前記データ構造で記述された前記回路網は、
複数の処理ノードと、
第１の検出温度が第１の温度閾値よりも高いとの指示を受信したことに応じて、前記複数の処理ノードのうち他の処理ノードから独立の１つの処理ノードに対して第１の周波数限界を設定するように構成された電力管理ユニットとを備え、
前記第１の検出温度は、前記複数の処理ノードのうち前記１つの処理ノードと関連しており、
前記電力管理ユニットは、第２の温度が第２の温度閾値よりも高いとの指示を受信したことに応じて、前記複数の処理ノードの各々に対して第２の周波数限界を設定するように構成されている、
コンピュータ可読媒体。
【請求項２６】
前記データ構造に記述された前記複数の処理ノードの各々は、複数の動作点のうち１つの動作点で動作するように構成されており、前記複数の動作点の各々は、クロック周波数および供給電圧を有している、請求項２５に記載のコンピュータ可読媒体。
【請求項２７】
第１の動作点限界は前記第１の周波数限界を有しており、前記第１の周波数限界での前記クロック周波数は、特定の最大動作周波数よりも低く、前記第１の動作点限界は、最大供給電圧よりも低い第１の供給電圧をさらに有しており、第２の動作点限界は、前記第１のクロック周波数よりも低い第２のクロック周波数を有する動作点と、前記第１の供給電圧よりも低い第２の供給電圧とを有している、請求項２６に記載のコンピュータ可読媒体。
【請求項２８】
前記データ構造に記述された前記電力管理ユニットは、前記複数の処理ノードのうち待機状態の１つ以上の追加的な処理ノードに応じて、前記複数の処理ノードのうち所与の処理ノードに対してローカル電力限界を上昇させるように構成されており、さらに、前記複数の処理ノードのうち選択された処理ノードのローカル電力限界が、前記複数の処理ノードのうち他の処理ノードのローカル電力限界よりも大きい場合には、前記複数の処理ノードのうち前記選択された処理ノードにオーバークロックを引き起こすように構成されている、請求項２５に記載のコンピュータ可読媒体。
【請求項２９】
前記データ構造に記述された前記処理ノードのうち１つ以上の処理ノードはプロセッサコアであり、前記データ構造に記述された前記処理ノードのうち少なくとも１つの処理ノードはグラフィック処理ユニット（ＧＰＵ）である、請求項２５に記載のコンピュータ可読媒体。
【請求項３０】
前記データ構造は、
ＨＤＬ（高水準設計言語）データ、
ＲＴＬ（レジスタ転送レベル）データ、
グラフィックデータシステム（ＧＤＳ）ＩＩデータ、
のうち１つ以上の種類のデータを含む、請求項２５に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は集積回路に関し、より具体的には、集積回路の熱制御に関する。
【背景技術】
【０００２】
プロセッサまたは他の種類の集積回路（ＩＣ）を設計する際、多くの要因を考慮しなければならない。典型的には、性能などの要因が、消費電力などの他の要因と均衡している。多くのＩＣの設計に影響を与える別の要因は、熱出力である。多くのＩＣは、動作中に相当量の熱を発生させることがある。放置していると、ＩＣの動作中に発生した熱は、損傷または完全な故障を引き起こす可能性がある。
【０００３】
熱に関連した損傷を防止するために、多くのＩＣは、何らかの形態の熱制御装置を使用する。様々な実施形態では、ＩＣ内の熱制御装置は、様々な位置における１つ以上の温度センサおよび制御ユニットを含む場合がある。制御ユニットは、様々なセンサから温度指標を受信してもよく、これらの指標を１つ以上の温度閾値と比較してもよい。温度センサのうちの１つから報告される温度が閾値を超える場合、ＩＣの動作は縮小し、さらなる温度上昇を防止することができる。ＩＣの性能の縮小は、ＩＣに提供される供給電圧の低減、クロック周波数の低減、その両方、または他の何らかの方法（例えば、ＩＣの作業負荷の低減、制限、あるいは再割り当て）により、達成されてもよい。ＩＣは、温度が閾値未満に低下するまで、またその後さらにしばらくの間は、低減された性能の状態で保持される。
【０００４】
性能を低減する温度閾値は、ＩＣ自体の特定の最高温度を超過せずに、ＩＣ（またはその冷却システム）により消費され得る電力量として定義され得る、熱設計電力（ＴＤＰ）として知られるパラメータに基づく。ＴＤＰは、特定の周囲温度に基づき設定されてもよい。例えば、ＩＣのＴＤＰは、３５℃の周囲温度用に指定することが可能である。すなわち、電力消費は、３５℃の周囲温度（例えば、室温）で（特定の最高ＩＣ温度によって決められたように）過熱を引き起こす量まで可能である。したがって、最高温度は、ＴＤＰがこれ以上消散することができないＩＣダイ上での温度として指定される場合がある。電力消費、およびこのような性能は、この温度に到達した場合に、このように低減される。
【発明の概要】
【０００５】
処理ノードのノード当たりの熱制御のための装置および方法が開示されている。一実施形態では、システムは、複数の処理ノードを含む。本システムは、第１の検出温度が第１の温度閾値以上であるとの指示を受信することに応じて、複数の処理ノードのうち少なくとも１つの処理ノードに対して第１の周波数限界を設定するように構成された電力管理ユニットをさらに含む。第１の温度閾値は、複数の処理ノードのうち前記少なくとも１つの処理ノードと関連している。電力管理ユニットは、さらに、第２の温度が第２の温度閾値よりも高いとの指示を受信することに応じて、複数の処理ノードの各々に対して第２の周波数限界を設定するように構成されている。
【０００６】
一実施形態では、処理ノードのノード当たりの熱制御方法は、第１の検出温度が第１の温度閾値以上であるとの指示を受信することに応じて、複数の処理ノードのうち少なくとも１つの処理ノードに対して第１の周波数限界を設定するステップであって、第１の検出温度は、複数の処理ノードのうち前記少なくとも１つの処理ノードと関連しているステップを含む。本方法は、第２の温度が第２の温度閾値よりも高いとの指示を受信することに応じて、複数の処理ノードの各々に対して第２の周波数限界を設定するステップをさらに含む。
【０００７】
本発明の他の態様は、以下の詳細な説明を熟読し、添付図面を参照すれば、明らかになるであろう。
【図面の簡単な説明】
【０００８】
【図１】チップ（ＳＯＣ）上の集積回路（ＩＣ）システムの一実施形態の構成図である。
【図２】熱制御ユニットを含むマルチコアプロセッサの一実施形態の構成図である。
【図３Ａ】マルチコアプロセッサの一実施形態の第１の状況における、熱設計電力の割り当てを示す構成図である。
【図３Ｂ】マルチコアプロセッサの一実施形態の第２の状況における、熱設計電力の割り当てを示す構成図である。
【図３Ｃ】マルチコアプロセッサの一実施形態の第３の状況における、熱設計電力の割り当てを示す構成図である。
【図３Ｄ】マルチコアプロセッサの一実施形態の第４の状況における、熱設計電力の割り当てを示す構成図である。
【図３Ｅ】マルチコアプロセッサの一実施形態の第４の状況における、熱設計電力の割り当てを示す構成図である。
【図３Ｆ】マルチコアプロセッサの一実施形態の第５の状況における、熱設計電力の割り当てを示す構成図である。
【図４】マルチコアプロセッサの一実施形態の２つの異なるシナリオにおいて使用することが可能な最大コア電力を示すグラフである。
【図５】個々のコアの熱設計電力（ＴＤＰ）に基づく、プロセッサコアの性能をブーストする方法の一実施形態のフロー図である。
【図６】ノード当たりの熱制御およびグローバル熱制御の両方を使用する方法の、一実施形態のフロー図である。
【図７】電力管理ユニットを含む回路網の実施形態を記述するデータ構造を含む、コンピュータ可読媒体の一実施形態の構成図である。
【０００９】
本発明は、様々な変形および代替形態の影響を受けるが、その具体的な実施形態を図面により例示し、かつ本明細書中に詳細に記載する。しかしながら、本明細書の図面および説明は、開示された特定の形態に本発明を制限することを意図するものではなく、むしろ、本発明は、添付の請求項で規定される通り、本発明の趣旨および範囲内における、すべての変形例、等価例、および代替例を含むものであると理解されるべきである。
【発明を実施するための形態】
【００１０】
ここで、マルチコアプロセッサのノード当たりの熱制御（ＰＮＴＣ）の方法および装置を詳細に説明する。この説明は、複数のプロセッサコア（グラフィック処理ユニットを含んでもよい）を有するプロセッサを対象とするが、本明細書において説明される様々な方法および装置の実施形態は、複合機能ユニットを有する任意の集積回路（ＩＣ）に対して、より幅広く適用されてもよい。したがって、本明細書における様々な方法および装置の実施形態の説明は、例示を意図するものではあるが、限定するものではない。本開示の目的として、処理ノードは、汎用コンピュータプロセッサのプロセッサコア、グラフィック処理ユニットまたは他の種類の処理回路網などの、処理を行う任意の種類の機能ユニットとしても定義されてもよい。さらに、本明細書に説明される方法および装置は、複数の異なる種類の処理ノードを同じＩＣダイ上に有するＩＣに適用されてもよい。
【００１１】
ＰＮＴＣの使用により、グローバルに適用されるハードウェア熱制御（ＨＴＣ）の毒点滴な使用よりも、プロセッサまたは他のＩＣのワット当たりの性能を、より向上することができる場合がある。例えば、プロセッサは、３５℃の周囲温度を基に、ＩＣ全体用にグローバル熱設計電力（ＴＤＰ）限界を有するように設計される場合がある。すなわち、ダイ上の温度が所定の温度閾値に到達したときに、ＴＤＰ限界に到達する場合がある。より優れた性能は、例えば２８℃という周囲温度に基づきＴＤＰ限界を使用し、プロセッサを動作することで得ることができる。これは、低い周囲温度での周囲空気が、３５℃という、より高い周囲温度のときと比べて、より高い割合で熱を消散するので、プロセッサが、２８℃の周囲温度で所定の温度閾値に到達するためには、より高いクロック周波数および／または動作電圧で動作しなければならないという事実によるものである。したがって、ローカル（局所的）な（例えば、コア当たりの）ＴＤＰ限界は、より低い周囲温度の状況に基づき設定されてもよい。さらに、ローカルＴＤＰ限界は、動作中に変化してもよい。例えば、起動中のプロセッサコアのローカルＴＤＰ限界は、１つ以上の他のプロセッサコアが未起動状態にあるときに、上昇するようにしてもよい。本開示の目的として、グローバル（大域的）なＴＤＰ限界は、ＩＣが格付けされる電力消散最大量として、ＩＣ全体に適用される限界として、定義されてもよい。グローバルＴＤＰ限界は、所与のＩＣ設計に対して固定されてもよい。ローカルＴＤＰ限界は、プロセッサコア、グラフィック処理ユニットまたは相当量の熱を発生し得る任意の他の機能ユニットを含む、コアまたは処理ノード当たりの方式で処理ノード／コアに適用されるＴＤＰ限界と定義されてもよい。さらに、所与の処理ノード用のローカルＴＤＰ限界は、他の処理ノードの状態に基づき変更してもよい。
【００１２】
本開示の目的のための動作点は、クロック周波数として定義されてもよく、動作電圧（例えば、機能ユニットに提供される供給電圧）を含んでもよい。所与の機能ユニットの動作点を上昇することは、そのユニットに提供されるクロック信号の周波数を上昇することとして定義されてもよく、かつその動作電圧の上昇を含んでもよい。同様に、所与の機能ユニットの動作点を低減することは、クロック周波数を低減することと定義されてもよく、かつ供給電圧を低減させることを含んでもよい。動作点を制限することは、クロック周波数および／または供給電圧を、特定の状況（ただし、必ずしも全ての状況の最大限界ではない）用の特定の最大値に制限することとして定義されてもよい。このように、動作点が特定の処理ノード用に制限されているとき、現在の状況用の特定値まで、クロック周波数および動作電圧で動作してもよいし、特定値未満のクロック周波数および動作電圧の値で動作してもよい。
【００１３】
ＰＮＴＣを使用すると、グローバルＴＤＰ限界に到達しているときに、閾値温度が、決定用に使用される温度閾値よりもわずかに低く設定されてもよい。例えば、グローバルＴＤＰ限界の閾値温度が１００℃の場合、ローカルＴＤＰ限界に到達するときの決定用の温度閾値は、９６℃である。プロセッサコアのそれぞれの温度は監視されてもよく、所与のコアの温度がこの限界に到達する場合、所与のコアは、第１の量によりスロットル制御されてもよい。例えば、Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ  （ＡＣＰＩ）規格に適合する実施形態では、コアは、Ｐ０状態のクロック周波数の９０％までスロットル制御される（例えば、Ｐ０状態のクロックが２．０ＧＨｚのとき、コアは１．８ＧＨｚにスロットル制御される）。クロック周波数のスロットル制御に加えて、少なくとも所与のコア用には、相当する動作電圧低減も行ってよい（例えば、Ｐ０状態で動作する場合、電圧を１．１ボルトから１．０ボルトに低減する）。いくつかの実施形態では、他の実施形態が可能であり、企図されるが、他のプロセッサコアの動作点がこの動作点に制限されてもよく、この場合には、動作点は、他のコア用に変更されない。ローカル温度閾値に到達する１つのコアに応じて、全てのコアの動作点が制限される実施形態では、他のコアが、例えばＰ０状態または一般に高動作点で動作している場合にも、スロットル制御されてもよい。さらに、いくつかの実施形態では、プロセッサコアは、分離した、単独の電圧面に結合されてもよく、したがって、それらの動作電圧は、他のプロセッサコアから独立して制御されてもよい。他の実施形態では、プロセッサコアは、最高のローカルＴＤＰ限界を有するプロセッサコアに対する動作点に基づき設定されている動作電圧と、電圧面を共有してもよい。
【００１４】
所与のコアの温度がスロットル制御後に上昇する場合、グローバルスロットル制御（ＨＴＣ）が起こることがあり、全てのプロセッサコアが第２の動作点限界にスロットル制御される。より詳細には、これは、プロセッサのＩＣダイ上のいずれかの点における温度が、グローバルＴＤＰ限界に相当するグローバル閾値温度に到達するときに発生することがある。これが発生すると、全てのプロセッサコアのクロック周波数は、スロットル制御を介して大幅な低減を受け、動作電圧もまた相応に低減される。例えば、ＡＣＰＩに準拠した一実施形態では、プロセッサコアはスロットル制御され、そのクロック周波数をＰ３状態の１．０ＧＨｚ（本実施形態におけるＰ０状態のクロック周波数が２．０ＧＨｚの場合）に制限されることがある。同様に、動作電圧は、全てのコア用に制限されるように、低減され得る。
【００１５】
所与のプロセッサコアのローカルＴＤＰ限界は、可変であってもよく、他のプロセッサコアの状態により増減し得る。例えば、クアッドコアプロセッサでは、２つのコアがパワーゲート（例えば、パワーダウン）されるとき、第３のコアはスリープ状態にあるが、他のコアは、このコアにより発生する一部の熱を消散することがあるため、残りのコアのＴＤＰ限界が上昇する場合がある。コアのローカルＴＤＰ限界は、より低い周囲温度（例えば、グローバルなＴＤＰ限界用の３５℃に対し２８℃）に基づいてもよいため、オーバークロック（すなわち、相当するクロック信号を指定された周波数よりも高い周波数で運転すること）を可能にするほどに上昇する場合がある。例えば、Ｐ０状態のクロック周波数が２．０ＧＨｚ（したがって、最大特定クロック周波数）の場合におけるＡＣＰＩに準拠した一実施形態では、高いローカルＴＤＰ限界を持つコアは、２．０ＧＨｚよりも高い周波数（例えば、３．６ＧＨｚで）にクロックされる。このことは、とりわけ計算限定された、いくつかの処理作業負荷のより優れた性能につながる。計算限定された作業負荷とは、計算集約的な処理作業負荷として定義されてもよく、（ある場合は）メインメモリへの低頻度のアクセスで定義され得る。しかしながら、高ローカルＴＤＰ限界によって所与のプロセッサコアのオーバークロックが可能であっても、全ての場合において必要的に実行されるわけではないことに注意されたい。例えば、プロセッサの作業負荷がメモリ限定である場合（すなわち、頻繁にメモリへのアクセスが行われており、対応するパイプラインの停止を引き起こす場合）、オーバークロックは、典型的にはいかなる性能の向上も提供しない。したがって、高ローカルＴＤＰ限界を有するプロセッサコアは、メモリ限定の作業負荷を処理する場合には、より低いクロック周波数で動作し得る。
【００１６】
（電力管理ユニット付きのプロセッサ）
図１は、メモリに結合した集積回路（ＩＣ）の一実施形態の構成図である。ディスプレイ３およびディスプレイメモリ３００に加えて、ＩＣ２およびメモリ６は、本例において少なくともコンピュータシステム１０の一部を形成する。記載の実施形態では、ＩＣ２は、多数の処理ノード１１（例えば１１−１、１１−２など）を有するプロセッサである。本明細書に記載される方法は、分離した、単独のＩＣダイ上に（シングルコアまたはマルチコアでもよい）マルチプロセッサを実装する多数のプロセッサコンピュータシステムなど、他の配置に適用されてもよいことに注意されたい。マルチコアの実施形態では、処理ノード１１は互いに類似（すなわち、同質のマルチコア）してもよい。または、１つ以上の処理ノード１１は、他方とは異なって（すなわち、異質のマルチコアであって）もよい。
【００１７】
処理ノード１１は、それぞれ１つ以上の実行ユニット、キャッシュメモリ、スケジューラおよび分岐予測回路などを含んでもよい。さらに、処理ノード１１のそれぞれは、メモリ６へのアクセス要求をアサートする（有効にする）ように構成されており、コンピュータシステム１０のメインメモリとして機能することができる。上記の要求は、読出し要求および／または書込み要求を含んでもよく、ノースブリッジ１２により、各プロセッサコア１１から初期に受信することができる。メモリ６へのアクセス要求は、実施形態に記載のメモリコントローラ１８を介して経由してもよい。
【００１８】
各プロセッサコア１１は、記載の実施形態のノースブリッジ１２に結合されている。ノースブリッジ１２は、メモリおよび様々な周辺機器へのインターフェースを含む処理ノード１１のそれぞれに対して、多種多様なインターフェース機能を提供してもよい。ノースブリッジ１２は、処理ノード１１のそれぞれに結合されていることに加えて、入力／出力（Ｉ／Ｏ）インターフェース１３、グラフィック処理ユニット（ＧＰＵ）１４、メモリコントローラ１８、位相同期回路（ＰＬＬ）４および電圧調整器５に結合されている。追加機能ユニットもまた、いくつかの実施形態に含まれてもよい。ノースブリッジ１２は、コンピュータシステム１０内の活動の通信ハブとして機能してもよく、処理ノード１１、メモリ６（メモリコントローラ１８経由）、ディスプレイ３（ＧＰＵ１４経由）および様々な周辺装置（Ｉ／Ｏインターフェース１３経由）の間の通信の経路設定および調整をする。
【００１９】
Ｉ／Ｏインターフェース１３は、コンピュータシステム１０のサウスブリッジデバイスとしても機能してもよい。多数の異なる種類の周辺バスがＩ／Ｏインターフェース１３と結合されてもよい。この特別な例では、バスの種類は、周辺装置相互接続（ＰＣＩ）バス、ＰＣＩ−Ｅｘｔｅｎｄｅｄ（ＰＣＩ−Ｘ）、ＰＣＩＥ（ＰＣＩ  Ｅｘｐｒｅｓｓ）バス、ギガビットイーサネット（登録商標）（ＧＢＥ）バスおよびユニバーサルシリアルバス（ＵＳＢ）を含む。しかしながら、これらのバスの種類は典型例であり、多くの他のバスの種類は、Ｉ／Ｏインターフェース１３に結合されてもよい。周辺デバイスは、周辺バスのいくつかまたは全てに結合することができる。このような周辺デバイスは、キーボード、マウス、プリンター、スキャナー、ジョイスティック若しくは他の種類のゲームコントローラと、メディア記録デバイスと、外部記憶デバイスと、ネットワークインターフェースカードなどとを含む（がこれらに限定されない）。対応する周辺バスを経由してＩ／Ｏユニット１３に結合され得る周辺デバイスの少なくともいくつかは、ダイレクトメモリアクセス（ＤＭＡ）を用いて、メモリアクセス要求をアサートすることが可能である。これらの要求（読出しおよび書込み要求を含んでもよい）は、Ｉ／Ｏインターフェース１３を経由してノースブリッジ１２へ搬送されてもよく、またはメモリコントローラ１８へ経路設定されてもよい。
【００２０】
ＧＰＵ１４は、コンピュータシステム１０のビデオ処理機能を行ってもよい。ＧＰＵ１４により行われるビデオ処理機能は、基本的なビデオレンダリング、ならびに３−Ｄグラフィックおよび他の種類の複雑なグラフィック機能を含んでもよい。ＧＰＵ１４により処理されるビデオ情報は、ディスプレイ３の表示用の出力でもよく、これは多数の異なる種類の表示ユニットのうちの１つであってもよい。ディスプレイ３は、フラットパネル液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）ディスプレイ、プラズマディスプレイ、陰曲線管（ＣＲＴ）ディスプレイまたは任意の他の適切な種類として実装されてもよい。
【００２１】
記載の実施形態では、ＧＰＵ１４は、表示処理用のデータを保管するディスプレイバッファを含んでもよい。表示処理用のデータは、メモリコントローラ１８およびノースブリッジ１２を経由して、メモリ６から読み出されてもよい。したがって、ＧＰＵ１４は、フレーム更新およびディスプレイバッファを充填するために、メモリ６のダイレクトメモリアクセス（ＤＭＡ）用に構成されてもよい。
【００２２】
記載の実施形態では、ノースブリッジ１２は、以下により詳細に説明される通り、各活動レベルまたは作業負荷に基づき、処理ノード１１のそれぞれの電力消費を管理するように構成された、電力管理ユニット２０を含む。さらに、マルチコア（またはマルチプロセッサ）の実施形態では、電力管理ユニット２０は、個々の処理ノード１１の動作点を、互いに独立して設定してもよい。したがって、第１のプロセッサコア１１は、第１の動作点で動作してもよく、第２のプロセッサコア１１は、第１とは異なる第２の動作点で動作してもよい。ＧＰＵ１４は、相当量の電力を消費（かつ相当量の熱を発生）するので、その各動作点は、処理ノード１１の動作点と同様の方法で、電力管理ユニット２０により制御することもできる。したがって、ローカルＴＤＰ限界の設定と、処理ノード１１のうちの所与の１つの動作点の管理とを対象とする以下の説明は、ＧＰＵ１４にも適用することができる。
【００２３】
記載の実施形態における電力管理ユニット２０は、熱制御ユニット２１も含む。電力管理ユニット２０による動作点の設定は、熱制御ユニット２１により行われる動作に基づき、少なくとも一部が行われる。一実施形態では、熱制御ユニット２１は、ＩＣ２がグローバルＴＤＰ電力限界（以下、グローバル電力限界と称する）内で動作しているかどうかを決定するために、処理ノード１１のそれぞれ（および以下に説明される、グラフィック処理ユニット１４）から受信する温度情報を監視してもよい。さらに、熱制御ユニット２１は、処理コア１１のそれぞれの、ローカルＴＤＰ限界（以下、ローカル電力限界と称する）を、設定および変更してもよい。例えば、４つの処理ノード１１を有する実施形態の場合、すべての４つの処理ノード１１が起動中で作業負荷を処理している場合には、それらの各ローカル電力限界を同じ値に設定することが可能である。しかしながら、２つの処理ノード１１が起動中であるが、その他の２つが待機状態にある場合には、起動中のノードのローカル電力限界は、待機ノードのローカル電力限界が対応して低減する場合があるのとともに、上昇する場合がある。これらの両方および他の場合において、処理ノード１１のローカル電力限界は、グローバル電力限界を超過しないようにされてもよい。
【００２４】
熱制御ユニット２１は、処理ノード１１のそれぞれから温度情報を受信してもよい。受信した温度情報は、処理ノード１１がそれぞれのローカル電力限界内で動作しているかを判定するために使用されてもよい。例えば、熱制御ユニット２１は、所与のプロセッサコア１１から報告された温度を、現行のローカル電力限界に基づく温度閾値と比較してもよい。温度が閾値温度以上の場合、電力管理ユニット２０は、報告したプロセッサコア１１の制限的なスロットル制御を行うことで応答してもよい。制限的なスロットル制御は、報告したプロセッサコア１１用の動作クロック周波数のわずかな低減を含み、かつ、制限的な電圧低減をも含むことができる。そのプロセッサコア１１の動作点は、少なくとも温度が閾値未満に低下するまで、その後しばらく制限されてもよい。動作点限界を削除する前に、さらなる熱の消散を可能にするよう、温度に対して追加の時間を設けることができる。
【００２５】
いくつかの実施形態では、動作点の制限は、ノード当たりを基として行われており、温度が閾値を超過するプロセッサコア１１にのみ適用する。他の実施形態では、すべての処理ノード１１は、温度閾値を超過した処理コア１１と同じ動作点に制限されてもよい。動作点は、処理ノード１１に提供されるクロック信号の周期を制限することによって、制限されてもよい。動作点のさらなる制限は、処理ノード１１に提供される動作電圧を制限することによって達成されてもよい。
【００２６】
熱制御ユニット２１は、ＩＣ２全体がグローバル電力限界内で動作しているかどうかを判定するように構成されてもよい。熱制御ユニット２１は、処理ノード１１から温度情報を受信することに加えて、他の機能装置のそれぞれおよび他の実施形態に表れ得る他の機能ユニットから、同等の情報を受信してもよい。任意の機能ユニット（またはＩＣ２上のいかなる点）から読み出した温度が第２の温度閾値を超過する場合、電力管理ユニット２０は、ＩＣ２をグローバルスロットル制御することによって応答してもよい。グローバルスロットル制御は、処理ノード１１のそれぞれへのクロック周波数の大幅な低減により定義されてもよく、ＩＣ２の他の機能ユニットに適用されてもよい。さらに、処理コア１１のそれぞれの動作電圧も大幅に低減される場合がある。グローバルスロットル制御の後のすべての処理ノード１１の動作点は、少なくとも熱制御ユニット２１に報告されるすべての温度が第２の閾値未満になるまで制限されてもよく、その後ＩＣ２のさらなる冷却を可能にするように、一定期間制限されてもよい。
【００２７】
記載の実施形態では、ＩＣ２は、システムのクロック信号を受信するように結合された位相同期回路（ＰＬＬ）４を含む。ＰＬＬ４は、対応するクロック信号を、処理ノード１１のそれぞれおよびＧＰＵ１４に分配してもよい。本実施形態では、処理ノード１１のそれぞれおよびＧＰＵ１４により受信されるクロック信号は、互いに独立している。さらに、本実施形態のＰＬＬ４は、互いに独立的で、処理ノード１１のそれぞれに提供されるクロック信号の周波数を、個別に制御および変更するように構成されている。ＰＬＬ４は、処理ノード１１とは独立して、ＧＰＵ１４に提供されるクロック信号の周波数を制御および変更してもよい。以下の詳細にさらに説明される通り、処理ノード１１のうち所与のいずれか１つにより受信されるクロック信号の周波数は、可変のローカル電力限界、処理ノード１１から報告された温度値および処理ノード１１に課せられる性能要求に従い増減されてもよい。クロック信号がＰＬＬ４から出力され得る様々な周波数は、それぞれの処理ノード１１の異なる動作点に対応してもよい。したがって、処理ノード１１の特定の１つの動作点の変更は、処理ノード１１のそれぞれが受信したクロック信号の周波数を変更することによって、実施されてもよい。
【００２８】
１つ以上の処理ノード１１の各動作点の変更の場合は、１つ以上の各クロック周波数の変更を含み、電力管理ユニット２０は、ＰＬＬ４に提供されるデジタル信号ＳｅｔＦ［Ｍ：０］の状態を変更してもよい。このデジタル信号のセットは、ＰＬＬ４に結合される各機能ユニットのクロック周波数の設定用の情報を含んでもよい。これらの信号内の変更に応答し、ＰＬＬ４は、影響を受ける機能ユニットのクロック周波数を変更してもよい。
【００２９】
記載の実施形態では、ＩＣ２も電圧調整器５を含むことができる。他の実施形態では、電圧調整器５は、ＩＣ２から分離して実装されてもよい。電圧調整器５は、処理ノード１１のそれぞれに動作電圧（または供給電圧）を供給してもよい。いくつかの実施形態では、電圧調整器５は、特定の動作点に従い、可変する動作電圧を供給してもよい（例えば、より優れた性能のために動作電圧を上昇させ、より節電するために動作電圧を低減するなど）。いくつかの実施形態では、処理ノード１１のそれぞれは、電圧面を共有してもよい。したがって、上記実施形態の各プロセッサコア１１は、他の処理ノード１１と同じ電圧で動作する。別の実施形態では、電圧面は共有されず、したがって、各プロセッサコア１１への供給電圧は、他の処理ノード１１への供給電圧とは独立して設定および調整されてもよい。このように、動作電圧の調整を含む動作点の調整は、非共有電圧面を有する実施形態における他の処理ノード１１とは独立的に、各プロセッサコア１１に選択的に適用されてもよい。動作点の変更が１つ以上の処理ノード１１用の動作電圧の変更を含む場合には、電力管理ユニット２０は、電圧調整器５に提供されるデジタル信号ＳｅｔＶ［Ｍ：０］の状態を変更してもよい。電圧調整器５は、信号ＳｅｔＶ［Ｍ：０］の変更に応じて、処理ノード１１のうち影響されたものに提供される動作電圧を調整してもよい。ＧＰＵ１４は、いくつかの実施形態では、１つ以上の処理ノード１１と電圧面を共有してもよく、一方で他のノードにおいては独自の電圧面を有し、その供給電圧も適宜調整させてもよい。
【００３０】
上述したように、各処理ノード１１の動作点は、報告された温度、可変のローカル電力限界および固定のグローバル電力限界に基づいて、設定または制限されてもよい。また、各処理ノード１１の動作点も、各活動レベル（例えば、処理作業負荷）に従って設定されてもよい。記載の実施形態では、電力管理ユニット２０は、各処理ノード１１の活動レベルを指示する情報を受信してもよく、ローカルおよびグローバル電力限界内で動作点を適宜設定してもよい。電力管理ユニット２０は、作業負荷の特定の種類に基づき、所与の処理ノードの動作点を設定してもよい。一般的に言うと、計算限定作業負荷を実行するプロセッサコア１１は、より高い動作点に設定されてもよいし、あるいはメモリ限定作業負荷を実行するときは、より低い動作点に設定されてもよい。計算限定またはメモリ限定のいずれでもない作業負荷には、プロセッサコア１１が中間動作点に設定されてもよい。作業負荷の活動レベルおよび種類は、１秒当たりの完了命令、メモリアクセス要求、キャッシュヒット／ミス、パイプライン停止、分岐誤予測、発行された命令および実行された命令などの、様々なメトリクスに基づき、電力管理ユニット２０により判定されてもよい。
【００３１】
先述の通り、プロセッサコア１１の動作点は、少なくともクロック周波数により定義されてもよく、また動作電圧によって定義されてもよい。一般的に言えば、「より高い」動作点への変更は、影響を受けるプロセッサコア１１のクロック周波数を上昇させることにより定義されてもよい。より高い動作点への変更は、その動作電圧を上昇させることを含んでもよい。同様に、「より低い」動作点への変更は、影響を受けるプロセッサコア１１のクロック周波数を低減することにより定義されてもよい。影響を受けるプロセッサコア１１に供給される動作電圧の低減は、より低い動作点への変更の定義内に含まれてもよい。
【００３２】
一実施形態では、動作点は、アドバンスト・コンフィギュレーション・アンド・パワー・インターフェース（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）（ＡＣＰＩ）規格の性能状態（以下「Ｐ−ｓｔａｔｅ」という）に対応してもよい。下記表１は、ＡＣＰＩ基準を使用して実装される一実施形態のＰ−ｓｔａｔｅを記載する。
【表１】
2013546070.tif 000003
【００３３】
上記の表１に記載されたＰ−ｓｔａｔｅは、ＡＣＰＩ準拠のプロセッサが、Ｃ０として知られる非待機状態で動作するときに適用されてもよい。上記の表１に対応する実施形態では、Ｐ−ｓｔａｔｅのＰ０は、２ＧＨｚのクロック周波数および１．１ボルトの動作電圧を有する、最高の動作点である。一実施形態における電力管理ユニット２０は、電流のローカル電力限界により許可されるときには、高い活動レベルに応じて、Ｐ０のＰ−ｓｔａｔｅでプロセッサコア１１を動作させてもよい。Ｐ０のＰ−ｓｔａｔｅでの動作は、計算限定の作業負荷の処理に使用されてもよい。計算限定作業負荷は、時間依存的および計算集中的であり、（あったとしても）わずかなメモリアクセスしか必要としない。より低電力消費に対応する待機状態により早く戻ることも可能にする一方で、最大性能を維持するために可能な限り短時間で作業負荷を実行することが望ましい場合がある。したがって、高い活動レベルを有する計算限定作業負荷は、より早く完了することが可能なＰ０のＰ−ｓｔａｔｅで実行されてもよい。
【００３４】
Ｐ４のＰ−ｓｔａｔｅは、この特定の実施形態における最低動作点であり、８００ＭＨｚのクロック周波数および０．８Ｖの動作電圧を有する。電力管理ユニット２０は、より高いＰ−ｓｔａｔｅが現行のローカル電力限界内に収まったとしても、低活動レベルに応じて、Ｐ４のＰ−ｓｔａｔｅで、プロセッサコア１１を動作させる場合がある。Ｐ４のＰ−ｓｔａｔｅは、メモリ限定作業負荷および時間依存的（または周波数依存的）ではない他のタスクとともに使用されてもよい。メモリ限定作業負荷は、システムメモリへの頻繁なアクセスを含むものである。メモリアクセスには、（メモリにアクセスしない命令の実行時間と比較して）長い待機時間が関与するため、メモリ限定作業負荷のクロック周波数の低減は、性能への最小限の影響しか与えずに、システムのワット当たりの性能のメトリックを向上させ得る節電を伴うことがある。
【００３５】
検出された活動レベルが、低活動閾値よりも高く、かつ高活動閾値よりも低い場合には、対応するプロセッサコア１１の動作は、特定の実施形態に応じ、かつこれらのＰ−ｓｔａｔｅの動作が現行のローカル電力限界内に収まるという条件で、ＯＳ、他のソフトウェア、ファームウェア、および／またはその他のハードウェアの指示のもと、Ｐ１、Ｐ２、Ｐ３のＰ−ｓｔａｔｅのうち何れか１つに設定されてもよい。
【００３６】
表１に記載のＰ−ｓｔａｔｅは、動作点の一式の例示であることに注意されたい。異なるクロック周波数および動作電圧を有する動作点を使用する実施形態が可能であり、企図される。さらに、上述の通り、いくつかの実施形態は、処理ノード１１に共有する電圧面を使用してもよく、ひいてはそれらの各動作点は、クロック周波数を基に定義されてもよい。いくつかの実施形態では、処理ノードのそれぞれの動作電圧は固定のままでもよいが、他の実施形態では、動作電圧は同時にすべての処理ノード１１用に調整されてもよい。表１のＰ−ｓｔａｔｅとして記載された動作点は、非ＡＣＰＩの実施形態とともに使用されてもよいことにも注意されたい。
【００３７】
さらに、ＡＣＰＩの実施形態においても、上記の動作点は、ＰＮＴＣが使用されるときに全て包含することはできない。より具体的には、場合によっては、Ｐ０状態を超える性能ブーストは、処理作業負荷に適切なとき、および現行のローカル電力限界により許可されたときに、所与のプロセッサコア１１に適用されてもよい。例えば、処理ノード１１のうち所与の１つが計算限定作業負荷を実行しているが、残りの処理ノード１１が待機状態にある状況を考慮する。そのような場合、待機している処理ノードのローカル電力限界は低減される場合があるが、起動中のプロセッサコア１１のローカル電力限界は上昇する場合がある。ローカル電力限界の上昇は、起動中のプロセッサコア１１のオーバークロックを引き起こし得る。したがって、起動中のプロセッサコア１１は、本例においては計算限定作業負荷を実行しているので、そのプロセッサコア１１に提供されるクロック信号の周波数は、Ｐ０状態の値より大きい値まで上昇する場合がある。この結果、計算限定作業負荷のより早い実行が可能となり、周囲温度が十分低い場合には、グローバル電力限界内にＩＣ２を留まらせることができる間に計算限定作業負荷を実行し得る。さらに、周囲温度がローカル電力限界の基となる値よりも低い場合には、起動中のプロセッサコア１１のオーバークロックにより、スロットル制御の可能性なしに、計算限定作業負荷のより速い実行が可能となる。この種の決定論的な性能は、低周囲温度環境において、より優れたワット当たりの性能に繋がり得る。
【００３８】
（グローバルおよびローカル熱設計電力（ＴＤＰ））
図２は、熱制御ユニットを含むマルチコアプロセッサの一実施形態の構成図である。より詳細には、図２は、様々な処理ノード１１、ＧＰＵ１４および熱制御ユニット２１の間の機能的関係を示している。図２は、（個別的に可変であってもよいし、機能ユニットに適用されてもよい）ローカル電力限界および（ＩＣ全体として固定および適用されてもよい）グローバル電力限界に基づくシステム応答の相違を示すグラフも含む。
【００３９】
記載の実施形態では、ＩＣ２は、電力管理ユニット２０の熱制御ユニット２１にそれぞれ結合される４つの処理コア１１（すなわち、コア１１−１から１１−４まで）およびＧＰＵ１４を含む。処理コア１１およびＧＰＵ１４のそれぞれは、ＩＣ２のダイの領域の特定の一部分を占有してもよい。さらに、記載の実施形態における処理コア１１およびＧＰＵ１４のそれぞれは、１つ以上のセンサ１９を含み、そのそれぞれが各ユニット内の温度を感知するように構成されている。いくつかの実施形態では、各機能ユニットが実装されるＩＣダイの全体の領域を通した様々な位置に、センサ１９の複数のインスタンスが配置されてもよい。いくつかの実施形態では、各センサ１９は、それぞれが感知した温度を報告するように、熱制御ユニット２１に結合されてもよい。他の実施形態では、各機能ユニットは、その機能ユニットの最高測定温度のみを報告するように構成されてもよい。
【００４０】
センサ１９は、様々な方法で実装されてもよい。一実施形態では、センサ１９は、リング発振器を基にした温度センサとして実装されてもよい。上記温度のリング発振器は、温度上昇に伴う周波数の上昇あるいは低下を伴って、特定の周波数を有する信号を出力してもよい。計測温度に比例する電圧または電流を出力する温度センサもまた可能であり、企図される。別の実施形態では、温度値は、実行されたコードストリームまたは動作中に発生する信号などの、他の情報から外挿することも可能である。
【００４１】
熱制御ユニット２１は、図２の構成図に付随のグラフで示す通り、機能ユニットのそれぞれから受信した温度を、第１の温度閾値および第２の温度閾値と比較してもよい。第１の温度閾値は、ノードごとの方式（ＰＮＴＣ）での熱制御を行う際に使用されてもよく、一方で第２の温度閾値は、グローバル方式（ＨＴＣ）で熱制御を行う際に使用されてもよい。記載の実施形態では、第１の温度閾値は、第２の温度閾値よりも低い。第１および第２の温度閾値の値の例は、それぞれ９６℃および１００℃である。さらに、第１の温度閾値は、第１の周囲温度（例えば、２８℃）および最大ローカル電力限界に基づいてもよい。第２の温度閾値は、第２の周囲温度（例えば、３５℃）およびグローバル電力限界に基づいてもよい。第１の温度閾値より高い温度の読出しは、報告する処理コア１１がそのローカル電力限界を超過していることを指示してもよい。第２の温度閾値より高い温度の読出しは、ＩＣ２が全体としてそのグローバル電力限界を超過していることを指示してもよい。
【００４２】
記載の実施形態では、プロセッサコア１１のうち所与の１つが第１の閾値温度以上の温度を報告する場合には、報告するプロセッサコア１１がスロットル制御され得る。より具体的には、報告するプロセッサコア１１のクロック周波数は、その温度が第１の温度閾値以上であると決定する熱制御ユニット２１に応じて、指定レベルまで低減され得る。ＡＣＰＩ準拠の一実施形態では、少なくとも報告するプロセッサコア１１のクロック周波数は、Ｐ０状態の周波数の９０％に低減する場合がある。さらに、報告するプロセッサコア１１のクロック周波数は、少なくとも報告される温度が第１の閾値未満に低下するまでは、この動作点に制限されてもよく、さらなる冷却を可能にするように、さらなる時間、当該動作点に留まってもよい。
【００４３】
いくつかの実施形態では、他の起動中のプロセッサコア１１は、第１の温度閾値以上の温度を報告する１つのプロセッサコア１１に応じて、Ｐ０状態の周波数の９０％の動作点に制限されてもよい。１つの特定のプロセッサコア１１が第１の温度閾値以上の温度を報告するときに、他の起動中のプロセッサコア１１が動作点に制限されない、という実施形態も可能であり、企図される。
【００４４】
記載の実施形態では、熱制御ユニット２１が、第２の温度閾値以上の報告された温度値を任意のプロセッサコアから受信する場合には、電力管理ユニット２０は、全ての起動中のプロセッサコア１１を、グローバルにスロットル制御することによって応答してもよい。ＡＣＰＩ準拠の一実施形態では、添付のグラフに図示される通り、起動中のプロセッサコア１１のクロック周波数は、Ｐ０状態の周波数の５０％までスロットル制御される場合がある。Ｐ０状態の５０％未満のクロック周波数ですでに動作している、起動中のプロセッサコア１１は、以前の通り動作を続けてもよい。しかしながら、全てのプロセッサコア１１は、クロック周波数がＰ０状態の５０％以下の動作点に制限されてもよい。
【００４５】
報告される温度の合致または当該温度の第２の温度閾値の超過に応じたクロック周波数の制限に加えて、プロセッサコア１１のそれぞれの動作電圧も制限され得る。表１を再度参照すると、Ｐ０状態の周波数の５０％のクロック周波数は、その特定の実施形態では、Ｐ３状態に相当する。表１のＰ３状態での動作電圧は０．８５ボルト（Ｐ０状態で１．１ボルト）である。したがって、分割電圧面の実施形態（すなわち、各プロセッサコア１１が独自の電圧面を有する実施形態）では、Ｐ３状態の電圧を超える電圧で動作する任意のプロセッサコア１１に対する動作電圧は、報告される温度の読出しが第２の温度閾値以上であることを決定する熱制御ユニット２１に応じて、０．８５ボルトに低減されてもよい。共有電圧面の実施形態（すなわち、全てのプロセッサコア１１が同じ電圧面を共有する実施形態）では、全てのプロセッサコア１１の動作電圧は、Ｐ３状態の電圧に設定されてもよい。同様の動作電圧の調整は、それらの実施形態がＡＣＰＩ準拠であるか否かにかかわらず、またプロセッサコア１１が共有電圧面あるいは分離した電圧面を使用するか否かにかかわらず、他の実施形態において行われてもよい。
【００４６】
本明細書に記載の通り、スロットル制御行為およびプロセッサコア１１で行われる動作点の制限もＧＰＵ１４に適用されることに、再度留意されたい。
【００４７】
（ノード当たりの熱制御を使用するローカルＴＤＰ分配）
図３Ａ〜３Ｆは、ＰＮＴＣを使用するプロセッサの実施形態における、様々な状況の熱設計電力の割り当てを示す構成図である。より詳細には、図３Ａ〜３Ｆは、コアのそれぞれが起動状態または待機状態などの多数の様々な状態の１つにあるときに、様々なプロセッサコア１１へのローカル電力限界分配を示している。プロセッサコア１１のうち所与の１つの待機は、クロックゲート状態（すなわち、クロック信号によりコアに加えられたままの電力が抑制される状態）、およびパワーゲート状態（すなわち、クロック信号がコアに提供されず、電力がそこから削除されている状態）を含んでもよいことに留意されたい。
【００４８】
図３Ａ〜３Ｆの例は、ＧＰＵ１４に割り当てられるローカル電力限界を含まないことに留意されたい。しかしながら、図３Ａ〜３Ｆは、説明を目的として提示されており、様々な実施形態では、ＧＰＵ１４などのＧＰＵ用ローカル電力限界は、本明細書に記載の同様の原理を使用して、割り当てまたは変更が可能であることに留意されたい。
【００４９】
図３Ａでは、全てのプロセッサコア１１は、起動中であって、作業負荷の処理を実行している。記載の実施形態では、グローバル電力限界は４０ワットである。本実施形態の４つのプロセッサコア１１のそれぞれが起動中であるため、熱制御ユニット２１は、それぞれのコア１１に１０ワットのローカル電力限界を割り当てることができ、これにより、ローカル電力限界を均等に分配することができる。記載の実施形態が、上記の表１に提示される数値と一致するＡＣＰＩ準拠の実施形態である場合には、最高３．２ＧＨｚまでの断続的な向上が許可される場合があるが、プロセッサコア１１の何れかの最大クロック周波数を２．０ＧＨｚとすることができる。ローカル電力限界値に基づく周囲温度として、２８℃という例示的数値を使用したとき、プロセッサコア１１のそれぞれは、周囲温度が２８℃より低い環境において、決定論的に、反復可能な方法により、３．２ＧＨｚという断続的なブーストに伴い、２．０ＧＨｚで動作してもよい。周囲温度が２８℃より高い場合、（図２に関連して記載される通り）何らかのスロットル制御が起こる可能性はあるが、図３Ａに記載の構成は許可され得る。
【００５０】
図３Ｂでは、プロセッサコア１１のうち２つは待機状態であるが、他の２つは起動中である。本例における待機状態のプロセッサコアは、クロックゲートされている（すなわち、これらのコアへのクロック信号が抑制されている）が、パワーゲートされていない。したがって、起動中のコアのローカル電力限界を、それぞれ１５ワットに設定することができる。２つの起動中のプロセッサコア１１の１５ワットのローカル電力限界は、これらコアのオーバークロックを介して、性能ブーストを可能にし得る。この特定の例では、２つの起動中のプロセッサコア１１のそれぞれは、３．２ＧＨｚまでのクロック周波数で動作されてもよい。低周囲温度（例えば、本明細書で説明される例示的な実施形態における２８℃未満）では、２つの起動中のコアの動作は、ローカルまたはグローバル電力限界を超過するため、スロットル制御の必要なく達成される場合がある。より高い周囲温度の実施形態（例えば、例示的な実施形態での２８℃以上）では、３．２ＧＨｚで起動中のプロセッサコア１１の１つまたは両方の動作は、スロットル制御をもたらす可能性がある。
【００５１】
起動中のプロセッサコア１１に対して性能ブーストが可能なときでも、実際の動作のクロック周波数は、その処理作業負荷による場合があることに留意されたい。例えば、図３Ｂの例における起動中のプロセッサコアの処理作業負荷が計算限定型である場合、クロック周波数は３．２ＧＨｚに上昇されてもよい。しかしながら、図３Ｂの例における起動中のプロセッサコア１１の処理作業負荷が、メモリ限定型である（よって、コアのクロック周波数に感応しない）場合、この状況でクロック周波数を上昇することは、いかなる適切な性能向上をもたらすことがないであろうから、コアは非常に低いクロック周波数として動作する場合がある。
【００５２】
クロックゲートされたプロセッサコアに関しては、これらコアの一方または両方を起動状態にするような事象が発生する場合、これらのそれぞれの５ワットのローカル電力限界は、電力のマージンを提供する場合がある。さらに、２つの待機状態のプロセッサコア１１は、２つの起動中のコアに関して、熱シンクとしての機能を果たす場合がある。いくつかの実施形態では、ローカル電力限界の様々なプロセッサコア１１への割り当ては、コアが実装されるＩＣダイ上の配置の形状によることもある。例えば、起動中のコアが待機状態のコアに物理的に隣接して位置する場合、そのローカル電力限界は、別の起動中のコアに物理的に隣接して位置する場合よりも、大きくなることがある。
【００５３】
図３Ｃの例では、プロセッサコア１１のうち３つが待機（クロックゲートされた）状態であるが、プロセッサコア１１のうち１つは起動中である。この場合、起動中のプロセッサコア１１は、１９ワットのローカル電力限界が割り当てられてもよく、かつ３．６ＧＨｚまでの周波数にオーバークロックされてもよい。３．６ＧＨｚのクロック周波数では、起動中のプロセッサコア１１は、指定値（例えば、上記に記載の２８℃の値）未満の周囲温度では、その割り当てられたローカル電力限界内で動作することができる。指定値を超えると、３．６ＧＨｚのクロック周波数での動作は、起動中のプロセッサコア１１の何らかのスロットル制御をもたらす場合がある。
【００５４】
図３Ｄは、２つのプロセッサコア１１が待機状態であるが他の２つが起動中である、図３Ｂと類似した状況を示している。起動中のプロセッサコア１１には、１３ワットのローカル電力限界がそれぞれ割り当てられてもよい。起動中のプロセッサコア１１は、図３Ｂの例における３．２ＧＨｚの最大クロック周波数と比較し、本例においては、３．４ＧＨｚまでのクロック周波数で動作されてもよい。
【００５５】
図３Ｂの例と比較して、本例におけるローカル電力限界間の差は、多数の異なる要因の１つ以上の結果となる可能性がある。１つの上記要因は、プロセッサコア１１が実装されるＩＣダイ上の配置形状である。例えば、図３Ｂに示す例では、２つの起動中のプロセッサコア１１は、待機状態のプロセッサコア１１にそれぞれ物理的に隣接することができるが、互い隣接することができない。反対に、図３Ｄの例における２つの起動中のプロセッサコア１１は、互いに物理的に隣接してもよい。したがって、図３Ｂの例では、起動中のプロセッサコア１１により発生する熱は、図３Ｄの例よりも簡単に消散し得る。
【００５６】
図３Ｄの例における起動中のプロセッサコア１１の、図３Ｂの例と比較してより低いローカル電力限界は、起動中のコア１１のそれぞれに対して、より精密な熱制御を提供し得る。このように、高周囲温度の環境における動作の場合には、図３Ｂに関連したより低いローカル電力限界により、熱制御ユニット２１は、起動中のコア１１に対して、（図２に関連して、上記に説明の通り）より早いＰＮＴＣスロットル制御を行い得る。これにより、（図２に関連し、上記にまた説明の通り）グローバル（ＨＴＣ）スロットル制御が必要となる可能性を少なくし得る。
【００５７】
図３Ｅの例では、２つのプロセッサコア１１がパワーゲート（すなわち、パワーダウン）され、別のプロセッサコア１１が待機状態（クロックゲート）であるが、１つのプロセッサコア１１は起動中である。起動中のプロセッサコア１１は、３．９ＧＨｚの最大クロック周波数で、２６ワットのローカル電力限界を割り当てられてもよい。この場合、最大電力消費は合計３５．６ワットとなり、これは４０ワットのグローバル電力限界よりも低いことに留意されたい。この差は、ウェイクアップ事象（ｗａｋｅ−ｕｐ  ｅｖｅｎｔ）により、待機状態またはパワーゲートされたプロセッサコアのうち１つが起動状態に入る場合に、保護バンドを提供し得る。
【００５８】
図３Ｆでは、２つのプロセッサコア１１がパワーゲートされているが、残りの２つは起動中である。この場合、起動中のプロセッサコア１１は、３．８ＧＨｚの最大クロック周波数で、１７ワットのローカル電力限界をそれぞれ割り当てられる。この場合、最大電力消費は合計３４．６ワットとなり、これもまたグローバル電力限界の４０ワット未満である。図３Ｅの例と同様に、割り当てられるローカル電力限界の総量とグローバル電力限界との間の差は、ウェイクアップ事象により、待機状態またはパワーゲートされるプロセッサコアが起動状態に入る場合に、保護バンドを可能にし得る。
【００５９】
図４は、マルチコアプロセッサの一実施形態の２つの異なるシナリオの下で使用され得る最大コア電力を示したグラフである。より具体的には、図４は、グローバルＨＴＣのみを使用した実施形態に対して、ＰＮＴＣを用いて達成可能な最大コア電力使用における差を図示する。グラフの左側には、ＰＮＴＣ用に構成された実施形態の最大コア電力が図示される。グラフの右側には、ＨＴＣのみ用に構成された実施形態の最大コア電力が図示される。ＰＮＴＣを使用するプロセッサコアに適用されるローカル電力限界は、グローバル電力限界用よりも低い周囲温度に基づいているため、ＰＮＴＣの実施形態では、コア単位で追加電力が消費される場合がある。これにより、プロセッサコアの性能ブーストが、利用可能な余分な電力を使用し得る。上記に説明の通り、この性能ブーストは、その最高指定動作点の最大周波数（例えば、表１に例示のＡＣＰＩ準拠の実施形態において指定される最大周波数よりも高い値）を超えて、コアのクロック周波数を上昇させることで達成されてもよい。そのような方法でクロック周波数を上昇させることは、オーバークロックとして知られる。所与のプロセッサコアの作業負荷の要求が、上記周波数の上昇がオーバークロックに比例することを正当化する場合には、プロセッサコアは、グローバルに適用されるＨＴＣのみに依存する実施形態において達成可能な他の方法よりも早く、作業負荷を実行し得る。
【００６０】
（方法の実施形態）
図５および６は、ＰＮＴＣ用に構成されるマルチコアプロセッサで使用し得る様々な方法の実施形態を示している。図５は、ＰＮＴＣのプロセッサの実施形態において、ローカル電力限界に基づくプロセッサコアの性能をブーストする方法の一実施形態のフロー図を示す。図６は、マルチコアプロセッサにおいて、ＰＮＴＣおよびグローバルＨＴＣの両方を使用する方法の一実施形態のフロー図を示す。
【００６１】
図５の方法５００は、１つ以上の未起動のプロセッサコアを、低減電力状態に配置する（ブロック５０２）ことから始まる。低減電力状態とは、クロックゲートされた状態またはパワーゲートされた状態であってよい。クロックゲートされた状態では、動作電圧が提供され続けるが、低減電力状態に配置されるコアへのクロック信号の提供が抑制され得る。パワーゲートされた状態では、クロック信号および動作電圧が、低減電力状態に配置されるコアに提供されない。未起動のプロセッサコアを低減電力状態に配置することに加えて、それらのローカル電力限界も低減し得る（ブロック５０４）。
【００６２】
起動を維持する１つ以上のプロセッサコアは、上昇したローカル電力限界でそれぞれ動作を続けることが可能である（ブロック５０６）。残りの起動中のプロセッサコアのローカル電力限界は、低減電力状態に配置されるコアのローカル電力限界の低減に応じて、上昇されてもよい。起動中のコアの性能要求が上昇しない場合、または比較的に低い場合（ブロック５０８、いいえ）には、コアは、現行の動作点で動作を続けることができる。しかしながら、残りの起動中のコアの性能要求が上昇する場合、または比較的に高い場合（ブロック５０８、はい）には、ローカル電力限界の上昇により、動作点を最大の性能に上昇させ得る。記載の実施形態においては、このことは、高いまたは上昇した性能要求を有する起動中のコアをオーバークロックすることによって、達成し得る（ブロック５１０）。オーバークロックは、計算限定作業負荷、より一般には、性能がコアのクロック周波数に影響する作業負荷にて行われてもよい。
【００６３】
オーバークロックは、２つの状況において、起動中のプロセッサコアに対して継続し得る。第１の状況は、そのコアに報告される最高温度がＰＮＴＣに使用される第１の温度閾値（例えば、上記図２のグラフを参照）より低いまま維持するという状況である。温度が第１の閾値より低いままであり（ブロック５１２、いいえ）、プロセッサの作業負荷の性能要求が、より高い動作点を正当化するにあたり十分高いままである場合（ブロック５１４、はい）、オーバークロックが継続し得る（ブロック５１０）。オーバークロックするプロセッサコアから報告される温度が第１の閾値以上の場合（ブロック５１２、はい）、あるいは作業負荷要求が、オーバークロックが性能利得を提供しない点まで低減する場合（ブロック５１４、いいえ）、オーバークロックが停止する（ブロック５１６）。第１の温度閾値の超過のためにオーバークロックが停止する場合（ブロック５１２、はい）、報告するコアのスロットル制御（図１および２に関連し、上記に記載の通り）が行われ得る。ＡＣＰＩ準拠の一実施形態では、このスロットル制御は、報告するコアの動作点を、Ｐ０状態の９０％のクロック周波数を有する点まで制限し得る。
【００６４】
図５のフロー図は、関連する方法の単一の反復処理を示す。しかしながら、本方法は、ＰＮＴＣが使用されるプロセッサの動作中に、必要に応じて何回でも反復されてもよいことに留意されたい。
【００６５】
図６は、同一のプロセッサ上での、ＰＮＴＣおよびＨＴＣの両方の使用を示すフロー図である。記載の実施形態では、方法６００は、多数のプロセッサコアのそれぞれに報告された温度を監視することから開始する（ブロック６０２）。報告される温度の監視は、これらの値を、例えば図２のグラフに記載された第１および第２の閾値と比較することを含んでもよい。ＩＣダイ上の報告される温度が、第１および第２の閾値のいずれよりも低い場合（ブロック６０４、いいえ）、温度読出しに応じて、スロットル制御または他の電力低減行為が行われない（ブロック６１６）。しかしながら、低減された作業負荷要求に応じて、様々なプロセッサコアの各動作点の低減が発生する可能性があることに留意されたい。そのような動作点の低減は、性能要求が低減されるプロセッサコアのクロックゲートおよびパワーゲートを含み得る。
【００６６】
所与のコアから報告される温度が、第１の温度閾値以上であるが（ブロック６０４、はい）、どのコアの温度も第２の温度閾値以上であることを報告していない場合（ブロック６０６、いいえ）、所与のコアがスロットル制御され、動作点（例えば、Ｐ−ｓｔａｔｅ）が制限され得る（ブロック６０８）。制限される動作点（例えば、Ｐ−ｓｔａｔｅ）は、ノード当たりを基にした熱制御（ＰＮＴＣ）を行うために使用されてもよい。一方、第２の温度閾値は、大域を基にした熱制御（ＨＴＣ）を行うために使用されてもよい。
【００６７】
いくつかの実施形態では、動作点は報告するコアにのみ制限されている。他の実施形態では、全てのコアが、報告するコアと同様の方法で、動作点に制限されてもよい。さらに、いくつかの実施形態では、動作点の部分的な制限を可能にしてもよい。例えば、電圧面がすべてのコア内で共有されている実施形態では、全てのコアの動作電圧は、指定値（例えば、図１のＰ０状態の動作電圧の９０％）に制限されてもよいが、一方で、報告しないコアのクロック周波数が制限されない。
【００６８】
報告される温度の何れかが第２の温度閾値以上の場合（ブロック６０６、はい）、コア動作点のグローバルなスロットル制御および制限が行われ得る（ブロック６１０）。再び図２および表１の例を参照すると、一実施形態では、全てのコアの動作点は、Ｐ０状態のクロック周波数の５０％、すなわちＰ３状態に対応する動作点に制限される場合がある。動作電圧は、同様に、Ｐ３状態で指定された電圧に制限される。Ｐ３状態により指定されるクロック周波数より高いクロック周波数で動作するプロセッサコアは、報告される温度が第２の温度閾値以上であることに応じて、スロットル制御されてもよい。Ｐ３状態のクロック周波数および動作電圧以下で動作しているプロセッサコアは、全てのコアの動作点が制限されたままでいる一方で、これらのコアは、Ｐ３状態より高い動作点へ上昇することにより、上昇される作業負荷要求に応答しない場合があるが、各動作点で動作を継続する場合がある。
【００６９】
（ＰＮＴＣを用いる）１つのプロセッサコアまたは（グローバルに適用されるＨＴＣを用いる）全てのプロセッサコアの動作点を低減した後、温度の監視が継続されてもよい。報告される温度が第１および第２の温度閾値未満でない場合（ブロック６１２、いいえ）、動作点の制限が継続し得る（ブロック６１４）。全ての温度が限界内にある場合（ブロック６１２、はい）、プロセッサコアは、指定された最大の状態より低い状態に動作点を制限することなく、各性能要求および各ローカル電力限界に基づき、動作し得る。
【００７０】
しかしながら、第１および第２の温度閾値のうち何れかの閾値以上の温度の報告に応じて、スロットル制御行為に続いて、ＩＣのさらなる冷却を可能にするように、動作点の制限がその後しばらく継続する可能性があることに留意されたい。したがって、第３の温度閾値を使用する実施形態が企図される。この実施形態では、第３の温度閾値は、第１および第２の温度閾値の何れかよりも低い。ＰＮＴＣおよびＨＴＣの何れかを用いる動作点の低減に続いて、１つ以上の処理コアは、１つ以上の報告される温度が第３の温度閾値未満に低下するまで、制限され続け得る。例えば、第１の温度閾値を超過する温度の報告に応じて、単一のコアが、ＰＮＴＣを使用して動作点でスロットル制御および／または制限する場合、そのコアは、報告される最高温度が第３の温度閾値未満に低下するまで、動作点を制限され続け得る。
【００７１】
（コンピュータアクセス可能記憶媒体）
次に図７を参照すると、システム１０を代表するデータベース７０５を含むコンピュータアクセス可能記憶媒体７００の構成図が示されている。一般的に言うと、コンピュータアクセス可能記憶媒体４００は、コンピュータへ命令および／またはデータを提供するための使用中に、当該コンピュータによってアクセス可能な任意の非一時的な記憶媒体を含んでもよい。コンピュータアクセス可能記憶媒体４００は、例えば、（固定式または分離可能な）ディスク、テープ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ若しくはＢｌｕ−Ｒａｙなどの磁気媒体若しくは光学式媒体などの記憶媒体を含んでもよい。記憶媒体は、ＲＡＭ（例えば、同期式動的ＲＡＭ（ＳＤＲＡＭ）、倍データレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３など）ＳＤＲＡＭ、低消費電力ＤＤＲ（ＬＰＤＤＲ２など）ＳＤＲＡＭ、ラムバスＤＲＡＭ（ＲＤＲＡＭ）、静的ＲＡＭ（ＳＲＡＭ）など）、ＲＯＭ、フラッシュメモリ、ユニバーサルシリアルバス（ＵＳＢ）インターフェースなどの周辺インターフェースを経由しアクセス可能な不揮発性メモリ（例えば、フラッシュメモリ）などの、揮発性または不揮発性記憶媒体をさらに含んでもよい。記憶媒体は、微小電気機械システム（ＭＥＭＳ）と、ネットワークおよび／または無線接続などの通信媒体を経由しアクセス可能な記憶媒体とを含んでもよい。
【００７２】
一般に、コンピュータアクセス可能記憶媒体７００で搬送される、システム１０を代表するデータ７０５は、プログラムにより読み出すことができるとともに、直接的または間接的に、システム１０を備えるハードウェアを製造するために用いることができるデータベースまたは他のデータ構造であってもよい。例えば、データベース７０５は、ＶｅｒｉｌｏｇまたはＶＨＤＬなどの高レベル設計言語（ＨＤＬ）における、ハードウェア機能の動作レベル記述あるいはレジスタ転送レベル（ＲＴＬ）記述であってもよい。この記述は、合成ライブラリからのゲートのリストを備えるネットリストを生産する記述を合成し得る合成ツールにより読み出されてもよい。ネットリストは、システム１０を備えるハードウェアの機能を表現する１式のゲートを備える。次いで、ネットリストは、マスクに適用される幾何学的形状を記載するデータ一式を生産するように、配置および経路設定してもよい。マスクはその後様々な半導体製造過程で使用され、システム１０に対応する半導体回路または回路を生産する。代替として、コンピュータアクセス可能記憶媒体７００上のデータベース７０５は、（合成ライブラリ有り、または無しの）ネットリスト若しくは所望によりデータ一式、またはグラフィックデータシステム（ＧＤＳ）ＩＩのデータであってもよい。
【００７３】
コンピュータアクセス可能記憶媒体７００は、システム１０の表現を搬送するが、他の実施形態では、所望により、ＩＣ２、エージェントの任意の一式（例えば、処理コア１１、Ｉ／Ｏインターフェース１３、電力管理ユニット２０など）またはエージェントの一部分（例えば、熱制御ユニット２１など）を含む、システム１０の任意の一部分の表現を搬送する場合がある。
【００７４】
本発明は、特定の実施形態を参照して記述されてきたが、実施形態は例示的であり、発明の範囲がそのように限定されるものではないこと理解されたい。記述の実施形態へのいかなる変更、修正、追加、および改善も可能である。これらの変更、修正、追加、および改善は、以下の請求項において詳細に記載されている通り、本発明の範囲内に該当する。
【図１】
2013546070.tif 000004
【図２】
2013546070.tif 000005
【図３Ａ】
2013546070.tif 000006
【図３Ｂ】
2013546070.tif 000007
【図３Ｃ】
2013546070.tif 000008
【図３Ｄ】
2013546070.tif 000009
【図３Ｅ】
2013546070.tif 000010
【図３Ｆ】
2013546070.tif 000011
【図４】
2013546070.tif 000012
【図５】
2013546070.tif 000013
【図６】
2013546070.tif 000014
【図７】
2013546070.tif 000015
【手続補正書】
【提出日】平成25年6月28日(2013.6.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の処理ノードと、
第１の検出温度が第１の温度閾値よりも高いとの指示を受信することに応じて、前記複数の処理ノードのうち他の処理ノードとは独立の１つの処理ノードに対して第１の周波数限界を設定するように構成された電力管理ユニットとを備え、
前記第１の検出温度は、前記複数の処理ノードのうち前記１つの処理ノードと関連しており、
前記電力管理ユニットは、第２の温度が第２の温度閾値よりも高いとの指示を受信することに応じて、前記複数の処理ノードの各々に対して第２の周波数限界を設定するように構成されている、システム。
【請求項２】
前記複数の処理ノードの各々は、複数の動作点のうち１つの動作点で動作するように構成されており、前記複数の動作点の各々は、クロック周波数および供給電圧を有しており、前記電力管理ユニットは、第１の検出温度が第１の温度閾値以上であるとの指示を受信することに応じて、前記複数の処理ノードのうち前記１つの処理ノードに対して第１の動作点限界を設定するよう構成されており、さらに、第２の温度が第２の温度閾値以上であるとの指示を受信することに応じて、前記複数の処理ノードの各々に対して第２の動作点限界を設定するように構成されている、請求項１のシステム。
【請求項３】
前記第１の動作点限界は、最大動作周波数よりも低い第１のクロック周波数を有する動作点と、最大供給電圧よりも低い第１の供給電圧とを有している、請求項２のシステム。
【請求項４】
前記第２の動作点限界は、前記第１のクロック周波数よりも低い第２のクロック周波数を有する動作点と、前記第１の供給電圧よりも低い第２の供給電圧とを有している、請求項３のシステム。
【請求項５】
前記第２の温度は、前記第１の温度よりも高い、請求項１のシステム。
【請求項６】
前記第１の温度閾値は、ローカル電力限界に基づいており、前記第２の温度閾値は、グローバル電力限界に基づいており、前記ローカル電力限界は可変であり、前記グローバル電力限界は固定されている、請求項１のシステム。
【請求項７】
前記電力管理ユニットは、前記複数の処理ノードのうち少なくとも１つの処理ノードのローカル電力限界が、前記複数の処理ノードのうち他の処理ノードのローカル電力限界よりも大きい場合に、前記複数の処理ノードのうち前記少なくとも１つの処理ノードのオーバークロックを引き起こすように構成されている、請求項６のシステム。
【請求項８】
前記電力管理ユニットは、前記複数の処理ノードのうち１つ以上の追加的な処理ノードの動作点に基づいて、前記複数の処理ノードのうち所与の処理ノードに対して前記ローカル電力限界を設定するように構成されている、請求項６のシステム。
【請求項９】
前記電力管理ユニットは、前記複数の処理ノードのうち待機状態の１つ以上の追加的な処理ノードに応じて、前記複数の処理ノードのうち前記所与の処理ノードに対して前記ローカル電力限界を上昇させるように構成されている、請求項８のシステム。
【請求項１０】
前記グローバル電力限界は、特定の周囲温度値に基づいている、請求項６のシステム。
【請求項１１】
前記処理ノードのうち１つ以上の処理ノードはプロセッサコアであり、前記処理ノードのうち少なくとも１つの処理ノードはグラフィック処理ユニットである、請求項１のシステム。
【請求項１２】
前記電力管理ユニットは、前記複数の処理ノードの各々に対して、互いに独立した個別の動作点を設定するように構成されている、請求項１のシステム。
【請求項１３】
第１の検出温度が第１の温度閾値よりも高いとの指示を受信することに応じて、前記複数の処理ノードのうち１つの処理の処理ノードに対して、複数の処理ノードのうち他の処理ノードの周波数とは独立の第１の周波数限界を設定するステップであって、前記第１の検出温度は前記複数の処理ノードのうち前記１つの処理ノードと関連しているステップと、
第２の検出温度が第２の温度閾値よりも高いとの指示を受信することに応じて、前記複数の処理ノードの各々に対して第２の周波数限界を設定するステップと、
を含む、方法。
【請求項１４】
コンピュータシステム上で実行可能なプログラムにより処理されるデータ構造を記憶するコンピュータ可読媒体であって、前記データ構造を処理する前記プログラムは、前記データ構造により記述された回路網を含む集積回路を製造する工程の一部を実行し、
前記データ構造で記述された前記回路網は、
複数の処理ノードと、
第１の検出温度が第１の温度閾値よりも高いとの指示を受信することに応じて、前記複数の処理ノードのうち他の処理ノードから独立の１つの処理ノードに対して第１の周波数限界を設定するように構成された電力管理ユニットとを備え、
前記第１の検出温度は、前記複数の処理ノードのうち前記１つの処理ノードと関連しており、
前記電力管理ユニットは、第２の温度が第２の温度閾値よりも高いとの指示を受信することに応じて、前記複数の処理ノードの各々に対して第２の周波数限界を設定するように構成されている、
コンピュータ可読媒体。
【請求項１５】
前記データ構造に記述された前記複数の処理ノードの各々は、複数の動作点のうち１つの動作点で動作するように構成されており、第１の動作点限界は前記第１の周波数限界を有しており、前記第１の周波数限界での前記クロック周波数は、特定の最大動作周波数よりも低く、前記第１の動作点限界は、最大供給電圧よりも低い第１の供給電圧をさらに有しており、第２の動作点限界は、前記第１のクロック周波数よりも低い第２のクロック周波数を有する動作点と、前記第１の供給電圧よりも低い第２の供給電圧とを有している、請求項１４のコンピュータ可読媒体。
【請求項１６】
前記データ構造に記述された前記電力管理ユニットは、前記複数の処理ノードのうち待機状態の１つ以上の追加的な処理ノードに応じて、前記複数の処理ノードのうち所与の処理ノードに対してローカル電力限界を上昇させるように構成されており、さらに、前記複数の処理ノードのうち選択された処理ノードのローカル電力限界が、前記複数の処理ノードのうち他の処理ノードのローカル電力限界よりも大きい場合には、前記複数の処理ノードのうち前記選択された処理ノードにオーバークロックを引き起こすように構成されている、請求項１４のコンピュータ可読媒体。
【国際調査報告】
2013546070.tif 000016
2013546070.tif 000017
2013546070.tif 000018