(57)【特許請求の範囲】
【請求項１】
複数のプロセッサ・コアと、
前記複数のプロセッサ・コアに結合され、前記プロセッサ・コアのそれぞれの動作状態及び各プロセッサ・コアと他の各プロセッサ・コアとの相対的な物理的近接性に依存する前記複数のプロセッサ・コアのそれぞれに関するそれぞれのサーマル電力リミットを選択することによって前記プロセッサ・コアのパフォーマンスを独立して制御するように構成される、電力管理ユニットと、を備え、
前記電力管理ユニットが、所与のプロセッサ・コアがそれぞれのサーマル電力リミットを超えて動作していることを前記電力管理ユニットが検出することに応答して、前記所与のプロセッサ・コアのパフォーマンスを低減させるように構成される、システム。
【請求項２】
前記電力管理ユニットが、前記プロセッサ・コアの動作状態を付加的なプロセッサ・コアがアクティブになるであろう新しい動作状態に変化させることへの要求に応答して、前記複数のプロセッサ・コアのそれぞれに関する現在のサーマル電力リミットよりも低い値を有する新しいサーマル電力リミットを選択し、且つ現在のサーマル電力リミットを前記新しいサーマル電力リミットに変化させるように構成される、請求項１に記載のシステム。
【請求項３】
前記電力管理ユニットが、前記プロセッサ・コアの動作状態をより少数のプロセッサ・コアがアクティブになるであろう新しい動作状態に変化させることへの要求に応答して、前記複数のプロセッサ・コアのそれぞれに関する現在のサーマル電力リミットよりも高い値を有する新しいサーマル電力リミットを選択し、且つ所定の時間量だけ待機した後で現在のサーマル電力リミットを前記新しいサーマル電力リミットに変化させるように構成される、請求項１に記載のシステム。
【請求項４】
前記プロセッサ・コアのうちの所与の１つで実行するオペレーティング・システムが、前記新しい動作状態への変化を要求するように構成される、請求項２に記載のシステム。
【請求項５】
前記複数のプロセッサ・コアが複数の動作状態で動作するように構成され、所与の動作状態が、前記複数のプロセッサ・コアのそれぞれのパフォーマンス状態と電力状態との組合せに対応する、請求項１に記載のシステム。
【請求項６】
前記電力管理ユニットに結合され、アクティブ動作状態及び非アクティブ動作状態で動作するように構成されるグラフィックス処理装置をさらに備え、
前記電力管理ユニットが、前記グラフィックス処理装置が非アクティブ状態に移行することに応答して、複数のプロセッサ・コアのそれぞれに関する現在のサーマル電力リミットよりも大きい値を有する新しいサーマル電力リミットを選択し、且つ現在のサーマル電力リミットを前記新しいサーマル電力リミットに変化させるように構成される、請求項１に記載のシステム。
【請求項７】
前記電力管理ユニットが、前記グラフィックス処理装置がアクティブ状態に移行することに応答して、前記複数のプロセッサ・コアのそれぞれに関する現在のサーマル電力リミットよりも小さい値を有する新しいサーマル電力リミットを選択し、且つ現在のサーマル電力リミットを前記新しいサーマル電力リミットに変化させるように構成される、請求項６に記載のシステム。
【請求項８】
前記電力管理ユニットがさらに、外部周囲温度に依存する前記複数のプロセッサ・コアのそれぞれに関するそれぞれのサーマル電力リミットを選択するように構成され、
前記電力管理ユニットが、前記外部周囲温度が所定の温度よりも低いことを検出することに応答して、前記複数のプロセッサ・コアのそれぞれに関する現在のサーマル電力リミットよりも大きい値を有する新しいサーマル電力リミットを選択し、且つ現在のサーマル電力リミットを前記新しいサーマル電力リミットに変化させるように構成される、請求項１に記載のシステム。
【請求項９】
電力管理ユニットが、プロセッサ・コアのそれぞれの動作状態及び各プロセッサ・コアと他の各プロセッサ・コアとの相対的な物理的近接性に依存する複数のプロセッサ・コアのそれぞれに関するそれぞれのサーマル電力リミットを選択することによって、複数のプロセッサ・コアのパフォーマンスを独立して制御すること、を含み、
所与のプロセッサ・コアがそれぞれのサーマル電力リミットを超えて動作していることを前記電力管理ユニットが検出することに応答して、前記電力管理ユニットが前記所与のプロセッサ・コアのパフォーマンスを低減させる、方法。
【請求項１０】
各動作状態に関して、前記電力管理ユニットがそれぞれのサーマル電力リミットを選択する、請求項９に記載の方法。
【請求項１１】
前記電力管理ユニットが、前記プロセッサ・コアの動作状態を付加的なプロセッサ・コアがアクティブになるであろう新しい動作状態に変化させることへの要求に応答して、前記複数のプロセッサ・コアのそれぞれに関する現在のサーマル電力リミットよりも低い値を有する新しいサーマル電力リミットを選択し、現在のサーマル電力リミットを前記新しいサーマル電力リミットに変化させる、請求項９に記載の方法。
【請求項１２】
前記電力管理ユニットが、前記プロセッサ・コアの動作状態をより少数のプロセッサ・コアがアクティブになるであろう新しい動作状態に変化させることへの要求に応答して、前記複数のプロセッサ・コアのそれぞれに関する現在のサーマル電力リミットよりも高い値を有する新しいサーマル電力リミットを選択し、所定の時間量だけ待機した後で現在のサーマル電力リミットを前記新しいサーマル電力リミットに変化させることをさらに含む、請求項９に記載の方法。
【請求項１３】
前記複数のプロセッサ・コアを複数の動作状態で動作させることをさらに含み、所与の動作状態が、前記複数のプロセッサ・コアのそれぞれのパフォーマンス状態と電力状態との組合せに対応する、請求項９に記載の方法。
【請求項１４】
グラフィックス処理装置がアクティブ動作状態及び非アクティブ動作状態で動作することをさらに含み、
前記電力管理ユニットが、前記グラフィックス処理装置が非アクティブ状態に移行することに応答して、前記複数のプロセッサ・コアのそれぞれに関する現在のサーマル電力リミットよりも大きい値を有する新しいサーマル電力リミットを選択し、現在のサーマル電力リミットを前記新しいサーマル電力リミットに変化させる、請求項９に記載の方法。
【請求項１５】
前記電力管理ユニットが、前記グラフィックス処理装置がアクティブ状態に移行することに応答して、前記複数のプロセッサ・コアのそれぞれに関する現在のサーマル電力リミットよりも小さい値を有する新しいサーマル電力リミットを選択し、現在のサーマル電力リミットを前記新しいサーマル電力リミットに変化させることをさらに含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、集積回路に関し、より詳細には、動作中の集積回路上のコンポーネントの電力管理に関する。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
多くの現代のプロセッサは、多大な電力を消費しかねず、そうする際にかなりの量の熱を発生させる場合がある。放っておけば、この熱は、プロセッサへの破局的な損傷を引き起こす可能性がある。したがって、プロセッサが消費する電力、したがって発熱を制限するために電力管理システムが開発されている。多くの電力管理システムでは、チップ全体にわたる熱設計電力（ＴＤＰ）が、通常、第一メトリックであり、これは電力を制御し且つサーマルリミットを超えないことを保証するのに用いられる。典型的に、サーマルリミットに達する場合又はサーマルパワーが特定の閾値に達する場合、電力管理システムは、パフォーマンスを低減させることでプロセッサを抑制する可能性がある。逆に、所与のアプリケーションを走らせながら電力消費を正確に測定することができ、且つ使用電力がプラットフォームのＴＤＰ容量よりも少ない場合、動作電圧、動作周波数、又はこの両方を増加させることでＴＤＰにおける利用可能な余裕をプロセッサが消費できるようにすることによって、パフォーマンスが高められる場合がある。しかしながら、従来の熱測定機構の能力は、多くの場合、決して容認できる粒度及び繰り返し性を有さないため、個々のコンポーネントのサーマルリミット及び／又は電力リミットに基づいてアクティビティを変調することが難しくなる。
【課題を解決するための手段】
【０００３】
処理ノードの電力消費を制御するための機構の種々の実施形態が開示される。集積回路デバイス上の電力消費の制御は、これまでそぐわない努力であった。しかしながら、デジタル電力推定技術の出現で、コンポーネント当たりのベースで推定される電力の粒度及び精度が顕著に改善された。したがって、例えば、処理ノードにおける種々のプロセッサ・コア及び他のコンポーネントによる消費電力を監視すること、及び各コンポーネントの動作状態をトラッキングすることによって、処理ノード内の電力管理ユニットは、例えば、動作状態、外部周囲温度、及び各コンポーネントと他の各コンポーネントとの物理的近接性に基づいて各コンポーネントに関する熱設計電力リミットを動的に操作することによって、所与のコア又は他のコンポーネントによるパフォーマンス、したがって消費電力を制御するように構成されてもよい。
【０００４】
一実施形態では、システムは、複数のプロセッサ・コアと電力管理ユニットとを含む。電力管理ユニットは、プロセッサ・コアのそれぞれの動作状態及び各プロセッサ・コアと他の各プロセッサ・コアとの相対的な物理的近接性に依存する複数のプロセッサ・コアのそれぞれに関するそれぞれのサーマル電力リミットを選択することによってプロセッサ・コアのパフォーマンスを独立して制御するように構成されてもよい。所与のプロセッサ・コアがそれぞれのサーマル電力リミットを超えて動作していることを電力管理ユニットが検出することに応答して、電力管理ユニットは、所与のプロセッサ・コアのパフォーマンスを低減させ、これによりそのコアによる消費電力を低減させてもよい。
【０００５】
１つの具体的な実装では、プロセッサ・コアの動作状態を付加的なプロセッサ・コアがアクティブになるであろう新しい動作状態に変化させることへの要求に応答して、電力管理ユニットは、プロセッサ・コアのそれぞれに関する現在のサーマル電力リミットよりも低い値を有する新しいサーマル電力リミットを選択し、且つ現在のサーマル電力リミットを新しいサーマル電力リミットに変化させるように構成される。
【０００６】
別の具体的な実装では、プロセッサ・コアの動作状態をより少数のプロセッサ・コアがアクティブになるであろう新しい動作状態に変化させることへの要求に応答して、電力管理ユニットは、プロセッサ・コアのそれぞれに関する現在のサーマル電力リミットよりも高い値を有する新しいサーマル電力リミットを選択し、且つ所定の時間量だけ待機した後で現在のサーマル電力リミットを新しいサーマル電力リミットに変化させるように構成される。
【図面の簡単な説明】
【０００７】
【図１】デジタル電力モニタをもつプロセッサ・コアを有する処理ノードの一実施形態のブロック図である。
【図２】図１の処理ノードの一実施形態のコンポーネントレイアウトを示すアーキテクチャ図である。
【図３Ａ】図１の処理ノードの一実施形態に関する例示的な電力密度乗数の値を示す表である。
【図３Ｂ】図１の処理ノードの別の実施形態に関する例示的な電力密度乗数の値を示す表である。
【図４】図１の処理ノードの実施形態を示す一実施形態の作動態様を説明する流れ図である。
【図５】図１の処理ノードを代表するデータベースを含む、コンピュータがアクセス可能な記憶媒体のブロック図である。
【発明を実施するための形態】
【０００８】
具体的な実施形態が単なる例として図面に示され、本明細書で詳細に説明されることになる。しかしながら、図面及び詳細な説明は、特定の特徴に関して単一の実施形態だけが説明される場合であっても、請求項を開示される特定の実施形態に限定することを意図されないことを理解されたい。これに対して、その意図は、この開示の利益を有する当業者には明らかとなるであろうすべての修正、均等物、及び代替物を網羅するものである。本開示で提供される特徴の例は、他に記載のない限り制限となるのではなく例証となることを意図される。
【０００９】
本出願の全体を通して用いられる場合の「してもよい、場合がある（ｍａｙ）」という言葉は、義務的な意味（すなわち、ねばならないを意味する）ではなく、許容的な意味（すなわち、可能性を有するという意味）で用いられる。同様に、「含む（ｉｎｃｌｕｄｅ、ｉｎｃｌｕｄｉｎｇ、及びｉｎｃｌｕｄｅｓ）」という言葉は、含んでいるが限定はされないことを意味する。
【００１０】
種々のユニット、回路、又は他のコンポーネントは、１つ又は複数のタスクを行う「ように構成されるものとして記述される場合がある。このような文脈では、「ように構成される」は、動作中に１つ又は複数のタスクを行う「回路を有する」ことを一般に意味する構造の広い記述である。したがって、ユニット／回路／コンポーネントは、ユニット／回路／コンポーネントが現在オンではないときでさえもタスクを行うように構成することができる。一般に、「ように構成される」に対応する構造をなす回路は、ハードウェア回路を含んでもよい。同様に、種々のユニット／回路／コンポーネントは、説明の便宜上、１つ又は複数のタスクを行うものとして説明される場合がある。こうした説明は、「ように構成される」というフレーズを含むものとして解釈されるべきである。１つ又は複数のタスクを行うように構成されるユニット／回路／コンポーネントの記述は、そのユニット／回路／コンポーネントに関する解釈に３５Ｕ．Ｓ．Ｃ．§１１２、パラグラフ６を行使しないことを明確に意図される。
【００１１】
ここで図１に移ると、処理ノードの一実施形態の簡略化したブロック図が示される。例証される実施形態では、処理ノード１２は、ノードコントローラ２０に結合されるプロセッサ・コア１５Ａ〜１５Ｂを含み、ノードコントローラ２０はヒューズ６０及び環境ユニット７０に結合される。ノードコントローラ２０はまた、グラフィックス・プロセッサ・ユニット（ＧＰＵ）４０に結合される。一実施形態では、ノード１２は、図１でその中に示される回路を備える単一の集積回路チップであってもよい。すなわち、ノード１２は、チップマルチプロセッサ（ＣＭＰ）であってもよい。他の実施形態は、ノード１２を所望に応じて２つ以上の別個の集積回路として実装してもよい。あらゆるレベルの集積コンポーネント又は個別コンポーネントが用いられてもよい。参照番号として数字と文字を有するコンポーネントは、適宜数字だけで言及される場合があることに留意されたい。プロセッサ・コア１５Ａ〜１５Ｂは、任意のタイプの処理要素であってもよく、互いに同一でなくても又は類似さえしていなくてもよい。例えば、プロセッサ・コア１５Ａ又は１５Ｂは、中央処理装置（ＣＰＵ）コア、グラフィックス処理装置（ＧＰＵ）コア、デジタル信号処理（ＤＳＰ）コア、アプリケーション・プロセッサ（ＡＰ）コア、又は任意の他のコアであってもよい。さらに、プロセッサ・コア１５Ａ及び１５Ｂは、その任意の組合せであってもよい。
【００１２】
ノード１２のような処理ノードは、種々の実施形態において任意の数のプロセッサ・コアを含んでもよいことにも留意されたい。プロセッサノード１２は、簡単にするためにここでは省略されている多くの他のコンポーネントを含んでもよいことにさらに留意されたい。例えば、種々の実施形態では、処理ノード１２は、他のノード及びＩ／Ｏデバイスと通信するための集積メモリコントローラ及び種々の通信インターフェースを含んでもよい。
【００１３】
一実施形態では、ノードコントローラ２０は、プロセッサ・コア１５Ａ及び１５Ｂを互いに、他のノードに、及びシステムメモリ（図示せず）に相互接続するための種々の相互接続回路（図示せず）を含んでもよい。図のように、ノードコントローラ２０は、各プロセッサ・コア１５による消費電力量、したがって発熱量を制御するように構成されてもよい電力管理ユニット２１を含む。電力管理ユニット２１は、周波数識別信号及び電圧識別信号（両方とも図示せず）を用いて、各コアに関する動作周波数、及び／又は、各コア及び／又はノードに関する電源電圧を制御するように構成されてもよい。さらに、以下でさらに説明するように、一実施形態では、電力管理ユニット２１は、各コアによる消費電力、したがってプロセッサ・コア１５内の電力モニタ１７によって提供される電力推定に基づいて、並びにプロセッサ・コア１５のそれぞれ及びＧＰＵ４０の動作状態に基づいて動作点を制御するように構成されてもよい。電力管理ユニット２１は、図１ではノードコントローラ２０の一部として示されることに留意されたい。一実施形態では、図１に示されたノードコントローラ２０の電力管理ユニット２１の機能は、処理ノード１２のノースブリッジの一部であってもよい。しかしながら、他の実施形態では、ノードコントローラ２０の電力管理ユニット２１の機能は、処理ノード１２内の別個の組込みマイクロコントローラユニット（図示せず）の一部であってもよいことが考慮される。
【００１４】
一般に、プロセッサ・コア（例えば、１５Ａ〜１５Ｄ）は、所与の命令セット・アーキテクチャで定義される命令を実行するように設計される回路を含んでもよい。すなわち、プロセッサ・コア回路は、命令セット・アーキテクチャで定義される命令の結果をフェッチする、デコードする、実行する、及び保存するように構成されてもよい。例えば、一実施形態では、プロセッサ・コア１５Ａ〜１５Ｄは、ｘ８６アーキテクチャを実装してもよい。プロセッサ・コア１５Ａ〜１５Ｄは、スーパーパイプライン型、スーパースカラー、又はこの組合せを含む任意の所望の構成を備えてもよい。他の構成は、スカラー、パイプライン型、非パイプライン型などを含んでもよい。種々の実施形態は、順番通りでない投機的実行又は順番に従った実行を採用してもよい。
【００１５】
図示された実施形態では、プロセッサ・コア１５Ａは電力モニタ１７Ａを含む。同様に、プロセッサ・コア１５Ｂは電力モニタ１７Ｂを含み、プロセッサ・コア１５Ｃ及び１５Ｄはそれぞれの電力モニタ１７Ｃ及び１７Ｄを含む。一実施形態では、電力モニタ１７のそれぞれは、一実施形態では各プロセッサ・コア１５内のデジタル信号アクティビティを考慮に入れるデジタル技術を用いて、それぞれの各プロセッサ・コア１５による消費電力を判定するように構成されてもよい。より詳細には、電力モニタ１７は、電力管理ユニット２１に、消費電力に対応するエネルギー値を提供してもよい。
【００１６】
さらに、電力モニタ１７によって提供されたエネルギー値に応答して、電力管理ユニット２１は、処理ノード１２のサーマルバジェット内に収めながらパフォーマンスを最適化する目的でプロセッサ・コア１５のうちの１つ又は複数の周波数を増加又は減少させ、コアの動作電圧を増加又は減少させ、又はコアの作動状態及びパフォーマンスを他の方法で制御してもよい。
【００１７】
処理ノード１２は、幾つかの動作状態のうちの１つで動作してもよい。より詳細には、アドバンスド・コンフィグレーション・アンド・パワー・インターフェース（ＡＣＰＩ）仕様は、コンピューティング・プラットフォーム、プロセッサ、及びデバイスに関する多数の動作状態を定義する。Ｃ状態（例えば、Ｃ０、Ｃ１、Ｃ２、Ｃ３など）と呼ばれるプロセッサの電力状態は、処理ノード１２が動作中であるか、若しくは１つ又は複数の休止状態又はスリープ状態にあるかを決定する。Ｃ０状態は動作中状態であり、一方、Ｃ１は休止状態であり、Ｃ３はスリープ状態である。Ｐ状態（例えば、Ｐ０、Ｐ１、Ｐ２、…Ｐｎなど）と呼ばれるプロセッサのパフォーマンス状態は、処理ノード１２が動作する周波数と電圧との組合せの所定のセットである。Ｃ１、Ｃ２などのような他のＡＣＰＩで定義される電力状態とは異なり、プロセッサは、実際には命令をすべてＰ状態で実行しており、これはＣ０のサブ状態である。Ｐ０は、最大パフォーマンス／最高電力消費状態として定義され、一方、Ｐ１〜Ｐｎはより低パフォーマンスの状態であり、したがって典型的には各状態に関するより低い電圧／周波数の組合せを有する。
【００１８】
典型的に、処理ノード１２をより高い周波数で動作させることは、より高いパフォーマンスを可能にするが、より高い周波数での動作を達成するには動作電圧を同様により高くする必要があり、これは処理ノード１２により多くの電力を消費させる。一実施形態では、例えば、電力管理ユニット２１内の１つ又は複数の処理ノード動作状態レジスタ２４を用いて電力とパフォーマンスとの間のトレードオフを行うために、オペレーティング・システム又は任意の他のハイレベルＳＷ又はファームウェアが、作動中のパフォーマンス状態を動的に変化させることができる。
【００１９】
シリコンのような半導体材料は一般に良好な熱伝導体であり、集積回路ダイ上の各コンポーネント（例えば、プロセッサ・コア１５Ａ）の温度は、その近隣の電力消費によって影響される。具体的には、決して最大限にアクティブではない近隣を有するダイ上のコンポーネントは、より多くの電力を消費することを許され、これによりそれらが他の方法では単一のワーストケースの電力リミットを有することになるパフォーマンスよりも増加したパフォーマンスを提供する。
【００２０】
図２を参照すると、図１の処理ノードの一実施形態の例示的なコンポーネントのレイアウトを描くアーキテクチャ図が示されている。より詳細には、より冷たいコンポーネントは、各コンポーネントと他の各コンポーネントとの相対的近接性、冷却ソリューションなどのような因子に応じて、より温かいコンポーネントへの熱シンクのように作用する場合がある。したがって、図２に示すように、作動コンポーネントを隣側に有する非作動コンポーネントは、コンポーネントが対角線状に配置される場合よりも良好な熱シンクである場合がある。例えば、コア０だけが作動可能である場合、コア２及びコア１は、コアの配置に起因してコア３よりも良好な熱シンクを提供する可能性がある。したがって、各コンポーネントに関するサーマル電力リミット又はＴＤＰリミット（前述のように限界を超える場合にアクティビティを調整するのに用いられる）を確立する際に、電力消費、所与のコンポーネントの近隣の動作状態、及びコンポーネントの動作状態の種々の組合せの熱伝達特徴に関する情報が用いられてもよい。種々の実施形態では、熱的特徴は、デバイスの特徴付け中に、並びにデバイスのモデリング及びシミュレーションを通じて得られてもよい。
【００２１】
この情報は、任意の数の電力密度乗数（ＰＤＭ）をもたらすために用いることができる。電力密度乗数は、コンポーネントに関する最低電力リミットに適用されてもよい乗数であり、この場合、この最低電力リミットは伝統的なワーストケース分析によって判定され、この場合、集積回路ダイ上のすべてのコンポーネントは十分にアクティブ（例えば、Ｃ０状態）であり、これは上記で説明された因子に依存するリミットを増加させる可能性がある。より詳細には、一実施形態では、電力管理ユニット２１は、異なるコンポーネントの作動状態とＰＤＭ又は新しいＴＤＰコアリミットのいずれかとを含む１つ又は複数のテーブルを維持してもよい。一実施形態では、Ｎ個のプロセッサ・コアが存在する場合（この場合、Ｎは任意の数であってもよい）、Ｎ個のＴＤＰコアリミット値が存在する可能性があり、この場合、各ＴＤＰコアリミット値は、プロセッサ・コア１５の動作状態の特定の組合せに関する電力レベルに対応する。別の実施形態では、そのサーマルマスに起因して、さらなるＴＤＰコアリミット値を提供するのに作動状態のＧＰＵ４０が用いられてもよい。したがって、こうした実施形態では、Ｎ個のコアが存在する場合、２ＮのＴＤＰコアリミット値が存在する場合がある。例示的なＰＤＭテーブルが図３Ａ及び図３Ｂに示される。
【００２２】
図３Ａに移ると、図１の処理ノードの一実施形態に関する例示的なＰＤＭテーブル３３０が示されている。テーブル３３０では、ＧＰＵ４０は、アクティブであると考えられ、その十分な定格負荷電流に引き上げられる。したがって、ＧＰＵ４０はプロセッサ・コアのいずれかへの熱シンクとして考えられなくてもよい。テーブル３３０に列挙されたＰＤＭは、表の小見出しである外部周囲温度１及び外部周囲温度２で表される２つの異なる外部周囲温度を考慮に入れている。テーブル３３０の行は、異なる数のコアがアクティブである（例えば、Ｃ０状態にある）ときのＴＤＰコアリミット値に対応するエントリを含む。より詳細には、第１行は４つのコアがアクティブであるときのＴＤＰコアリミット値に対応し、行２は３つのコアがアクティブであるときのＴＤＰコアリミット値に対応し、行３は２つのコアがアクティブであるときのＴＤＰコアリミット値に対応し、行４は１つのコアがアクティブであるときのＴＤＰコアリミット値に対応する。
【００２３】
外部周囲温度１という見出しの列を参照すると、４つのコアがアクティブであるとき、ＰＤＭは１．００であり、１コア当たりの最大電力は６．２Ｗである。この特定のＴＤＰコアリミット値は、デフォルト又は「ヒューズ」値を表し、これはワーストケースの作動状態を表す場合がある。したがって、各コアは、電力管理ユニット２１が発熱を減らすアクションをとる必要があるよりも前に６．２Ｗまで消費してもよい。しかしながら、行３では、２つのコアがアクティブであり、したがってＰＤＭは１．５である。これは、１コアあたり９．３Ｗの新しいＴＤＰコアリミットに対応する。より多くのコアが非アクティブ状態に入る際に、各状態に関するＰＤＭはより大きい数となり、これによりその作動状態に関するＴＤＰコアリミットが増加する可能性がある。外部周囲温度２という見出しの列に類似した状況が存在し、これは、この例では温度１よりも低い温度である。より詳細には、周囲温度がより低いので、プロセッサ・コア１２に関する冷却ソリューションは、より多くの発生した熱を消散させることができるはずであり、したがって、各コアはより多くの電力を消費できるはずである。したがって、外部周囲温度２に関連したＰＤＭ値（したがってＴＤＰコアリミット値）は、各動作状態に関するより高い周囲温度列の値よりも高い。
【００２４】
図３Ｂを参照すると、図１の処理ノードの別の実施形態に関する例示的なＰＤＭテーブル３８０が示される。幾つかの実施形態では、ＧＰＵ４０は、プロセッサ・コア１５と類似した１つ又は複数の非アクティブ状態又は低電力状態におかれる場合がある。したがって、図３Ｂのテーブル３８０は、ＧＰＵ４０が「パワーゲーティングされる」すなわち非アクティブ状態又はアクティブ状態のいずれかにおかれる場合がある１つのこうした実施形態を表す。テーブル３８０では、ＧＰＵ４０は、非アクティブ状態にあると考えられ、したがって、低電力を消費すると考えられ、プロセッサ・コア１５のうちの１つ又は複数への熱シンクでとなる場合がある。したがって、コアの動作状態のそれぞれ（例えば、４つのアクティブコア、３つのアクティブコアなど）に関して、ＰＤＭ値、ひいてはＴＤＰコアリミット値は、図３Ａのテーブル３３０に示された値よりも高い。例えば、外部周囲温度１という見出しの下で、４つのコアがアクティブであるとき、ＰＤＭは１．００ではなく１．３である。したがって、この場合のＴＤＰコアリミットは、ＧＰＵ４０がアクティブであるときの６．２Ｗに比べて８．０６Ｗである。
【００２５】
図３Ａ及び図３Ｂに示された表は、単に例示的な表であるように意図され、説明する目的のためのものであることに留意されたい。さらに、２つの周囲温度に関して与えられる値が存在するが、他の実施形態では任意の数の温度のグループ分けが維持されてもよいことが考慮される。同様に、他の実施形態では、所望に応じてＴＤＰコアリミット値におけるより細かい又はより粗い粒度を提供するために任意の数の動作状態が用いられてもよい。例えば、アクティブ及び非アクティブの代わりに、各プロセッサ・コア１５のＣ０状態の下に入る可能性がある、任意の数のパフォーマンス状態に関する動作状態が存在してもよい。同様に、他の実施形態では、様々な数のＧＰＵ動作状態に関するより多くのテーブル及び／又はエントリが存在してもよい。したがって、ＴＤＰコアリミット値の数は、テーブル３３０及び３８０に示された数よりも大きくてもよいし又は小さくてもよい。
【００２６】
図４では、図１の処理ノードの作動態様を説明する流れ図が示される。ここで図１、図３Ａ、図３Ｂ、及び図４をまとめて参照し、図４のブロック４０１で始めると、一実施形態では、電力管理ユニット２１は、システムヒューズ６０からプロセッサ・コア１５に関するデフォルトの又はヒューズＴＤＰコアリミット値及び／又はデフォルトＰＤＭ値を受信する。デフォルト値は、ワーストケースリミットであってもよく、デフォルト動作状態は、すべてのコアがアクティブ（例えば、Ｃ０）であってもよい。電力管理ユニット２１はまた、環境パラメータユニット７０から外部周囲温度に対応する信号を受信してもよい。電力管理ユニット２１は、各コアに関するＴＤＰコアリミット値及び動作状態をレジスタ２４内に格納する。処理ノード１２は、次いで、ＯＳ要件及びアプリケーション要件に従って動作してもよい（ブロック４０３）。処理ノード１２の作動中に、一実施形態では、電力管理ユニット２１は、プロセッサ・コア１５のそれぞれによる消費電力を各コアに関するＴＤＰコアリミット値と比較してもよい。所与のコアがＴＤＰコアリミットを超えて動作中であることを電力管理ユニット２１が検出する場合、電力管理ユニット２１は、処理ノード１２による発熱を減らすために該プロセッサ・コア１５のパフォーマンスを低減させてもよい。
【００２７】
一実施形態では、電力管理ユニット２１は、ＯＳから動作状態要求を受信してもよい。これらの要求は、電力管理ユニット２１によって維持される動作状態情報に対する読出し要求であってもよく、又は要求は、プロセッサ・コア１５のうちの１つ又は複数に関する動作状態を変化させるための書込み要求であってもよい。他の実施形態では、要求は、熱設定点又は電力設定点を超えることに応答して電力管理ユニット２１の内部のソースから来てもよい。この例では、要求は、動作状態を変化させることへの書込み要求である。動作状態変化要求（ブロック４０５）に応答して、電力管理ユニット２１は、例えば、ストレージ２３内のテーブル３３０又は３８０のような１つ又は複数のルックアップテーブルにおけるＰＤＭ又はＴＤＰコアリミットの参照を行ってもよい（ブロック４０７）。より詳細には、上記で説明されたように、電力管理ユニット２１は、各プロセッサ・コア１５の動作状態、ＧＰＵ４０の動作状態、外部周囲温度などに基づいて、テーブル中のどのエントリを用いるかを決定してもよい。
【００２８】
電力管理ユニット２１が新しいＴＤＰコアリミット値を選択すると、電力管理ユニット２１は、動作状態変化要求の結果としてより多数の又はより少数のプロセッサ・コアがアクティブになることを決定してもよい。動作状態変化要求がより少数のプロセッサ・コア１５をアクティブにして結果的により少ない発熱を生じる場合（ブロック４０９）、電力管理ユニット２１は、影響されるプロセッサ・コア１５の動作状態（周波数及び／又は電圧）を変化させることによって要求を実施してもよい。電力管理ユニット２１は、各プロセッサ・コア１５に関するより高いＰＤＭ値、したがってより高いＴＤＰコアリミット値を選択し、プロセッサ・コア１５が非アクティブとなって依然としてアクティブである周囲のプロセッサ・コア１５への熱シンクとなるのに十分なだけ冷えることを可能にするために所定の時間量だけ待機する（ブロック４１１）。
【００２９】
電力管理ユニット２１は、新しいより高いＴＤＰコアリミット値をレジスタ２４に格納し、これにより、現在のＴＤＰコアリミット値を新しいＴＤＰコアリミット値に置き換える（ブロック４１３）。新しいＴＤＰコアリミット値が格納されると、電力管理ユニット２１は、新しいＴＤＰコアリミット値を発効させてもよい。処理ノード１２は、次いで、ＯＳ要件及びアプリケーション要件に従って動作してもよい（ブロック４０３）。一実施形態では、新しいＴＤＰコアリミット値は、プロセッサ・コア１５のパフォーマンス（例えば、電圧及び／又は周波数）を変調するために電力管理ユニット２１によって用いられてもよい。
【００３０】
ブロック４０９に戻って参照すると、動作状態変化要求がより多くのプロセッサ・コア１５をアクティブにして結果的により多くの発熱を生じる場合、電力管理ユニット２１は、各プロセッサ・コア１５に関するより低いＰＤＭ値、ひいてはより低いＴＤＰコアリミット値を、待機せずに選択し及び格納してもよい。電力管理ユニット２１は、ストレージ２３にアクセスして新しいＴＤＰコアリミット値を取得し、新しいＴＤＰコアリミット値をレジスタ２４に格納し、これにより、新しいＴＤＰコアリミット値を発効させる（ブロック４１５）。処理ノード１２は、次いで、ＯＳ要件及びアプリケーション要件に従って動作してもよい（ブロック４０３）。
【００３１】
図５に移ると、図１の処理ノード１２を代表するデータベース５０５を含むコンピュータがアクセス可能な記憶媒体５００のブロック図が示される。一般的に言えば、コンピュータがアクセス可能な記憶媒体５００は、コンピュータに命令及び／又はデータを提供するために使用中にコンピュータがアクセス可能な任意の一時的でない記憶媒体を含んでもよい。例えば、コンピュータがアクセス可能な記憶媒体５００は、磁気媒体又は光学媒体、例えば、ディスク（固定又はリムーバブル）、テープ、ＣＤ−ＲＯＭ、又はＤＶＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、又はブルーレイのような記憶媒体を含んでもよい。記憶媒体は、揮発性又は不揮発性メモリ媒体、例えば、ＲＡＭ（例えば、シンクロナスダイナミックＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３など）ＳＤＲＡＭ、ローパワーＤＤＲ（ＬＰＤＤＲ２など）ＳＤＲＡＭ、ラムバスＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）など）、ＲＯＭ、フラッシュメモリ、ユニバーサル・シリアル・バス（ＵＳＢ）インターフェースなどのような周辺インターフェースを介してアクセス可能な不揮発性メモリ（例えばフラッシュメモリ）をさらに含んでもよい。記憶媒体は、微小電気機械システム（ＭＥＭＳ）、並びにネットワーク及び／又は無線リンクのような通信媒体を介してアクセス可能な記憶媒体を含んでもよい。
【００３２】
一般に、コンピュータがアクセス可能な記憶媒体５００上におかれる処理ノード１２のデータベース５０５は、処理ノード１２を備えるハードウェアを製作するためにプログラムが直接的に又は間接的に読み出す及び使用することができるデータベース又は他のデータ構造であってもよい。例えば、データベース５０５は、Ｖｅｒｉｌｏｇ又はＶＨＤＬのような高レベル設計言語（ＨＤＬ）におけるハードウェア機能の動作レベル記述又はレジスタ転送レベル（ＲＴＬ）記述であってもよい。記述は、合成ライブラリからのゲートのリストを含むネットリストをもたらすために記述を合成する場合がある合成ツールによって読み出されてもよい。ネットリストは一組のゲートを備え、これはまた、処理ノード１２を含むハードウェアの機能を表す。ネットリストは、次いで、マスクに適用されるべき幾何学的形状を記述するデータセットをもたらすために配置され及びルート決定されてもよい。マスクは、次いで、処理ノード１２に対応する１つ又は複数の半導体回路をもたらすために種々の半導体製作ステップで用いられてもよい。代替的に、コンピュータがアクセス可能な記憶媒体４００上のデータベース５０５は、所望に応じてネットリスト（合成ライブラリ有り又は合成ライブラリ無し）又はデータセットであってもよい。
【００３３】
コンピュータがアクセス可能な記憶媒体５００は処理ノード１２の表現を伝えるが、他の実施形態は、所望に応じて処理ノード１２の任意の部分の表現を伝えてもよい。
【００３４】
上記の実施形態はかなり詳細に説明されているが、上記の開示が十分に理解されれば当業者には多くの代替及び修正が明らかとなるであろう。以下の請求項はすべてのこうした代替及び修正を包含するように解釈されることが意図される。
【図１】
0005427981.tif 000002
【図２】
0005427981.tif 000003
【図３Ａ】
0005427981.tif 000004
【図３Ｂ】
0005427981.tif 000005
【図４】
0005427981.tif 000006
【図５】
0005427981.tif 000007