(57)【要約】  プロセッサといったスロットリングされる装置の上側および下側動作点を動的に熱管理するシステムおよび方法である。一実施形態では、プロセッサの温度は閾値より下であると判断され、上側動作点と下側動作点は互いに向けて動かされる。【選択図】  なし
2008541269.tif 000002
【特許請求の範囲】
【請求項１】
一の上側動作点および一の下側動作点を有する一のプロセッサの一の温度が一の閾値より下であることを判断する工程と、
前記判断に応答して、前記上側動作点および前記下側動作点を互いに向けて動かす工程と、
を含む方法。
【請求項２】
前記プロセッサの一の熱状態の一の安定性を確認する工程と、
前記上側動作点を前記プロセッサに適用する工程と、
をさらに含む請求項１に記載の方法。
【請求項３】
前記確認する工程は、前記プロセッサが、前記上側動作点および前記下側動作点を使用してスロットリングを成功した回数を追跡する工程を含む請求項２に記載の方法。
【請求項４】
前記動かす工程は、
前記上側動作点と前記下側動作点との間の一の平均を計算する工程と、
前記平均に基づいて前記下側動作点に対し一のより大きい値を選択する工程と、
前記平均に基づいて前記上側動作点に対し一のより小さい値を選択する工程と、
を含む請求項２に記載の方法。
【請求項５】
一のタイマ割り込みを検出する工程と、
前記上側動作点および前記下側動作点を保存する工程と、
一の増加された上側動作点を得るために前記上側動作点に対し一のより大きい値を選択する工程と、
前記増加された上側動作点を前記プロセッサに適用する工程と、
をさらに含む請求項２に記載の方法。
【請求項６】
一の熱割り込みを検出する工程と、
一の第１の下側動作点を得るために一の最近の不成功の動作点に基づいて前記下側動作点に対し一のより大きい値を選択する工程と、
前記第１の下側動作点を前記プロセッサに適用する工程と、
前記プロセッサに適用される前記第１の下側動作点に応答して一定時間の間待機する工程と、
をさらに含む請求項５に記載の方法。
【請求項７】
前記一定時間の経過後に、前記温度が前記閾値より下ではないことを判断する工程と、
前記第１の下側動作点に基づいて前記最近の不成功の動作点を更新する工程と、
一の第２の下側動作点を得るために前記第１の下側動作点に対し一のより小さい値を選択する工程と、
前記第２の下側動作点を前記プロセッサに適用する工程と、
前記プロセッサに適用される前記第２の下側動作点に応答して前記一定時間の間待機する工程と、
をさらに含む請求項６に記載の方法。
【請求項８】
各動作点を動かす工程は、一の関連付けられる周波数および電圧設定を有する一のビンを選択する工程を含む請求項１に記載の方法。
【請求項９】
一のプロセッサの一の温度が一の閾値より下であることを判断する一の熱管理制御器を含み、
前記プロセッサは、一の上側動作点および一の下側動作点を有し、
前記熱管理制御器は、前記温度は前記閾値より下であるという判断に応答して、前記上側動作点および前記下側動作点を互いに向けて動かす、装置。
【請求項１０】
前記熱管理制御器は、前記プロセッサの一の熱状態の一の安定性を確認する高温から低温状態への論理を含み、
前記装置はさらに、前記上側動作点を前記プロセッサに適用する一の動作点制御器を含む請求項９に記載の装置。
【請求項１１】
前記高温から低温状態への論理は、前記プロセッサが、前記上側動作点および前記下側動作点を使用してスロットリングを成功した回数を追跡することによって前記安定性を確認する請求項１０に記載の装置。
【請求項１２】
前記高温から低温状態への論理は、前記上側動作点および前記下側動作点の間の一の平均を計算し、前記平均に基づいて前記下側動作点に対し一のより大きい値を選択し、また、前記平均に基づいて前記上側動作点に対し一のより小さい値を選択することにより前記上側動作点および前記下側動作点を動かす、請求項１０に記載の装置。
【請求項１３】
前記熱管理制御器は、一のタイマ割り込みを検出し、前記上側動作点および前記下側動作点を保存し、一の増加された動作点を得るために前記上側動作点に対し一のより大きい値を選択する低温から低温状態への論理を含み、
前記動作点制御器は、前記増加された上側動作点を前記プロセッサに適用する請求項１０に記載の装置。
【請求項１４】
前記熱管理制御器は、一の熱割り込みを検出し、一の第１の下側動作点を得るために一の最近の成功の動作点に基づいて前記下側動作点に対し一のより大きい値を選択する低温から高温状態への論理を含み、
前記動作点制御器は、前記第１の下側動作点を前記プロセッサに適用し、
前記熱管理制御器は、前記プロセッサに適用される前記第１の下側動作点に応答して一定時間の間待機する請求項１１に記載の装置。
【請求項１５】
前記熱管理制御器は、前記一定時間が経過後に、前記温度が前記閾値より下ではないことを判断し、
前記熱管理制御器は、前記第１の下側動作点に基づいて前記最近の不成功の動作点を更新し、一の第２の下側動作点を得るために前記第１の下側動作点に対し一のより小さい値を選択する高温から高温状態への論理を有し、
前記動作点制御器は、前記第２の下側動作点を前記プロセッサに適用し、
前記熱管理制御器は、前記プロセッサに適用される前記第２の下側動作点に応答して前記一定時間の間待機する請求項１４に記載の装置。
【請求項１６】
前記熱管理制御器は、一の関連付けられる周波数および電圧設定を有する一のビンを選択することによって各動作点を動かす請求項９に記載の装置。
【請求項１７】
一のメモリと、
前記メモリに結合される一のプロセッサと、
を含み、
前記プロセッサは、前記メモリに結合される一のメモリコントローラハブ、一の上側動作点、一の下側動作点、および前記プロセッサの一の温度は一の閾値より下であることを判断する一の熱管理制御器を有し、
前記熱管理制御器は、前記温度が前記閾値より下であることに応答して前記上側動作点および前記下側動作点を互いに向けて動かす、システム。
【請求項１８】
前記熱管理制御器は、前記プロセッサの一の熱状態の一の安定性を確認する高温から低温状態への論理を含み、
前記プロセッサはさらに、前記上側動作点を前記プロセッサに適用する一の動作点制御器を含む請求項１７に記載のシステム。
【請求項１９】
前記高温から低温状態への論理は、前記プロセッサが、前記上側動作点および前記下側動作点を使用してスロットリングを成功した回数を追跡することによって前記安定性を確認する請求項１８に記載のシステム。
【請求項２０】
前記高温から低温状態への論理は、前記上側動作点および前記下側動作点の間の一の平均を計算し、前記平均に基づいて前記下側動作点に対し一のより大きい値を選択し、また、前記平均に基づいて前記上側動作点に対し一のより小さい値を選択することにより前記上側動作点および前記下側動作点を動かす、請求項１８に記載のシステム。
【請求項２１】
前記熱管理制御器は、一のタイマ割り込みを検出し、前記上側動作点および前記下側動作点を保存し、一の増加された動作点を得るために前記上側動作点に対し一のより大きい値を選択する低温から低温状態への論理を含み、
前記動作点制御器は、前記増加された上側動作点を前記プロセッサに適用する請求項１８に記載のシステム。
【請求項２２】
前記熱管理制御器は、一の熱割り込みを検出し、一の第１の下側動作点を得るために一の最近の成功の動作点に基づいて前記下側動作点に対し一のより大きい値を選択する低温から高温状態への論理を含み、
前記動作点制御器は、前記第１の下側動作点を前記プロセッサに適用し、
前記熱管理制御器は、前記プロセッサに適用される前記第１の下側動作点に応答して一定時間の間待機する請求項２１に記載のシステム。
【請求項２３】
前記熱管理制御器は、前記一定時間が経過後に、前記温度が前記閾値より下ではないことを判断し、
前記熱管理制御器は、前記第１の下側動作点に基づいて前記最近の不成功の動作点を更新し、一の第２の下側動作点を得るために前記第１の下側動作点に対し一のより小さい値を選択する高温から高温状態への論理を有し、
前記動作点制御器は、前記第２の下側動作点を前記プロセッサに適用し、
前記熱管理制御器は、前記プロセッサに適用される前記第２の下側動作点に応答して前記一定時間の間待機する請求項２２に記載のシステム。
【請求項２４】
複数の命令の一の格納セットを含む機械可読媒体であって、
前記複数の命令の格納セットは、一の機械により実行されると前記機械に一の方法を実行させ、
前記方法は、
一の上側動作点および一の下側動作点を有する一のプロセッサの一の温度が一の閾値より下であることを判断する工程と、
前記判断に応答して、前記上側動作点および前記下側動作点を互いに向けて動かす工程と、
を含む媒体。
【請求項２５】
前記複数の命令は実行されるとさらに、
前記プロセッサの一の熱状態の一の安定性を確認し、
前記上側動作点を前記プロセッサに適用する、請求項２４に記載される媒体。
【請求項２６】
前記複数の命令は実行されるとさらに、
一のタイマ割り込みを検出し、
前記上側動作点および前記下側動作点を保存し、
一の増加された上側動作点を得るために前記上側動作点に対し一のより大きい値を選択し、
前記増加された上側動作点を前記プロセッサに適用する、請求項２５に記載の媒体。
【請求項２７】
前記複数の命令は実行されるとさらに、
一の熱割り込みを検出し、
一の第１の下側動作点を得るために一の最近の不成功の動作点に基づいて前記下側動作点に対して一のより大きい値を選択し、
前記第１の下側動作点を前記プロセッサに適用し、
前記プロセッサに適用される前記第１の下側動作点に応答して一定時間の間待機する、請求項２６に記載の媒体。
【請求項２８】
前記複数の命令は実行されるとさらに、
前記一定時間の経過後に、前記温度が前記閾値より下ではないことを判断し、
前記第１の下側動作点に基づいて前記最近の不成功の動作点を更新し、
一の第２の下側動作点を得るために前記第１の下側動作点に対し一のより小さい値を選択し、
前記第２の下側動作点を前記プロセッサに適用し、
前記プロセッサに適用される前記第２の下側動作点に応答して前記一定時間の間待機する、請求項２７に記載の媒体。
【請求項２９】
一の上側周波数設定および一の下側周波数設定を有する一のプロセッサの一の温度が一の閾値より下であることを判断する工程と、
前記プロセッサの一の熱状態の一の安定性を確認する工程と、
前記上側周波数設定と前記下側周波数設定との間の一の平均を計算する工程と、
前記平均に基づいて前記下側周波数設定に対し一のより大きい値を選択する工程と、
前記平均に基づいて前記上側周波数設定に対し一のより小さい値を選択する工程と、
前記上側周波数設定を前記プロセッサに適用する工程と、
一のタイマ割り込みを検出する工程と、
前記上側周波数設定および前記下側周波数設定を保存する工程と、
一の増加された上側周波数設定を得るために前記上側周波数設定に対し一のより大きい値を選択する工程と、
前記増加された上側周波数設定を前記プロセッサに適用する工程と、
を含む方法。
【請求項３０】
前記確認する工程は、前記プロセッサが、前記上側周波数設定および前記下側周波数設定を使用してスロットリングを成功した回数を追跡する工程を含む請求項２９に記載の方法。
【請求項３１】
各周波数設定は一の対応する電圧設定を有する請求項２６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の１つ以上の実施形態は一般的に、熱管理に関する。特に、特定の実施形態は、熱管理制御器により選択される動作点間の範囲を縮小することに関する。
【背景技術】
【０００２】
コンピュータシステムの人気は成長し続け、より複雑な処理アーキテクチャに対する要望は新しい水準に達している。その結果、現代の作業負荷およびマイクロプロセッサはかつて経験したよりも多くの電力を消費し且つ多くの熱を発生させうる。現実には、発生された熱は性能を制限してしまう場合があり、また、相対的に高価である熱解決策を必要とする。この問題に対処すべくソフトウェアに基づく熱管理解決策が開発されているが、これらの解決策のうち一部は複雑な変数のモニタリングを必要とし、相対的に高い計算コストをもたらしうる。さらに、ソフトウェアに基づく解決策の反応時間は、特定の緊急状況には許容不可である場合がある。
【０００３】
その一方で、ハードウェアに基づく熱管理解決策は、より迅速に反応し、同時に少量の入力データでも好適な性能に十分である。たとえば、特定のアプローチは、電力消費および発熱を制限するために温度が相対的に高い場合は、プロセッサ周波数を低周波数に落とす（スロットルする）。温度が低下すると、動作周波数は切り替えられて最大周波数に戻されうる。したがって、このような解決策は、相対的に限定された量のデータ（すなわち、温度は所与の閾値より上か下か）に基づいてスロットル判断を行いうる。
【０００４】
ユーセージモデルがあまり熱的に制限されない（たとえば、最適スロットル周波数は、最大周波数より数パーセントだけ低い）場合、使用されない潜在能力のリスクはむしろ低い。しかし、非常に熱的に制限されるシステムでは、このようなアプローチは、互いから離れている２つの周波数間で交互に入れ替わることによる性能損失の高すぎるリスクを招きうる。マイクロプロセッサはより一層熱的に制限されてきているので、この問題は重要性を増しうる。
【０００５】
本発明の実施形態の様々な利点は、以下の明細書および請求項を読むことによって、また、以下の図面を参照することによって当業者には明らかとなろう。
【発明を実施するための最良の形態】
【０００６】
以下の説明において、説明目的で、多数の特定の詳細を記載し、それにより、本発明の実施形態の完全な理解を提供する。しかし、当業者には、本発明の実施形態は、これらの特定の詳細がなくても実施しうることは明らかであろう。また、ある場合には、特定の装置構造および方法は、本発明の実施形態を曖昧にしないよう説明が省かれている。以下の説明および図面は、本発明の実施形態を説明し、本発明の実施形態を限定すると解釈すべきではない。
【０００７】
以下の詳細な説明の一部は、コンピュータメモリにおけるデータビットまたはバイナリデジタル信号への演算のアルゴリズムおよび象徴的表現の観点から提示している。これらのアルゴリズム説明および表現は、データ処理技術における当業者の作業の実体を他の当業者に伝達するようデータ処理技術における当業者により使用される技術でありうる。さらに、「第１の」および「第２の」などの用語の使用は、時間的発生順の関係を必ずしも示さず、説明を容易にするためだけに使用される。
【０００８】
異なるように具体的に述べられない限り、以下の説明から明らかであるように、「処理する」、「演算する」、「計算する」、「判断する」などの用語を使用する明細書の説明全体において、これらの用語は、コンピュータシステムのレジスタおよび／またはメモリにおける電子といった物理量により表現されるデータを、コンピュータシステムのメモリ、レジスタ、または他のそのような情報ストレージ、伝送または表示装置における物理量として同様に表現される別のデータとなるよう操作および／または変換するコンピュータまたはコンピュータシステム、或いは同様の電子演算装置の動作および／または処理を意味することを理解するものとする。
【０００９】
図１は、熱管理制御器１２および動作点制御器１４を有するプロセッサ１０を示す。プロセッサ１０は、縮小命令セットコンピュータ（ＲＩＳＣ）、パイプラインプロセッサ、複合命令セットコンピュータ（ＣＩＳＣ）などを含みうる。したがって、図示するプロセッサ１０は、プログラムコード／命令を実行でき、且つ、命令フェッチユニット、命令デコーダ、実行ユニットなど（図示せず）も含むことができる。さらに、プロセッサ１０は、相補型金属酸化膜半導体（ＣＭＯＳ）技術といったハードウェア技術、コントローラファームウェア、マイクロコード、ソフトウェア技術、および任意のこれらの組み合わせを使用して実施されうる。
【００１０】
図示する例では、プロセッサ１０は、上側動作点１６および下側動作点１８を有し、各動作点１６、１８は、関連付けられる周波数および／または電圧設定を有するビン２０に対応しうる。特定の実施形態は、周波数／電圧ペアを含むビンの選択に関して説明するが、本発明の実施形態は、それに限定されない。実際に、本願に説明する原理は、動作点が任意の値をとることができる「ビンなし」アプローチ、動作点として他のパラメータが使用される非周波数／電圧アプローチ、および、温度、電力消費、および／または性能が関心問題である任意の他の環境に適用可能である。
【００１１】
周波数および電圧の設定は、適切な電圧−周波数テーブル（図示せず）において管理されうる。ここから、動作点制御器１４は、設定をプロセッサ１０に適用することができる。したがって、プロセッサ１０は低点と高点との間で交互に切り替えるので、下側動作点１８は、電力消費および／または温度を下げるためにプロセッサ１０を「絞る（スロットル）」し、上側動作点１６は、プロセッサ１０の温度が容認可能なレベルにある場合によりよい性能を実現するよう使用されうる。
【００１２】
説明する動作点１６、１８のそれぞれは、状況に応じて異なる周波数／電圧値を指す、選択する、および／または含むことによって効果的に上下に調節可能である。たとえば、プロセッサ１０の温度は、温度閾値より下であると判断されると、動作点１６、１８は、高周波数と低周波数間の範囲を縮小するために互いに向かって動かされえ、それにより、時間に依存する近最適周波数に収束する。有限ビンアプローチの場合、上側動作点および下側動作点は、実際に、隣接する周波数のペアに収束しうる。これは、収束すべき単一の周波数がない場合があるからである。それでもなお、このような「収束」アプローチは、非常に熱的に制限されるユーセージモデルには非常に有利であり、したがって、大幅なスロットルを経験することができる。このアプローチはさらに、一般的に固定の上側周波数を維持する従来のアプローチからの顕著な発展を表す。
【００１３】
図２を参照するに、システムの高温状態２４および低温状態２６は、プロセッサ１０（図１）の温度がそれぞれ温度閾値より上および上であることに対応する状態マシン２２を示す。図示する例では、４つの可能な呼び出しスキームを区別することができ、各呼び出しスキームは、現在の呼び出しと前回の呼び出しにより表されることができる。具体的には、低温−低温呼び出し２８は、タイマ割り込みにより開始可能である。これは、プロセッサは十分な時間の間低温状態にあり、上側動作点を、切り替えペナルティを実質的に心配することなく上げうることを示しうる。図示する例では、低温−高温呼び出し３０は、温度センサにより開始可能である。このような呼び出しは、プロセッサは幾らかの時間の間低温であったが、現在は再び高温であることを意味しうる。このような場合、下側動作点の好適な値が計算され、プロセッサはこの計算された値にスロットルダウンされることができる。
【００１４】
高温−低温呼び出し３４は、下側動作点の新しい値が、熱割り込み後に温度を温度閾値より下に下げることに成功した場合に発生する。この状況は、通常のシステム挙動に対応することができ、また、一部の「安定」状態を表しうる。この状態では、熱管理制御器１２（図１）は、上側動作点および下側動作点を、上述したように互いに向けて動かすことを試みうる。このような技法は、平均周波数をほぼそのままにしうるが、電圧も減少可能であるので、電力消費量を実質的に減少する。高温−高温呼び出し３２は、下側動作点の新しい値が、熱割り込み後に温度を温度閾値より下に維持するには依然として高すぎる場合に発生しうる。このような場合、下側動作点はさらに下げられ、また、処理は、温度が閾値より下に下がるまで繰り返されることが可能である。
【００１５】
図３は、熱管理制御器１２を実施する１つのアプローチをより詳細に示す。具体的には、図示する熱管理制御器１２は、高温から低温状態への論理３６、低温から低温状態への論理３８、低温から高温状態への論理４０、および高温から高温状態への論理４２を含む。図示する熱管理制御器１２はさらに、上側点調節モジュール４４、下側点調節モジュール４３、熱感知モジュール４６、およびタイマ４８を含む。タイマ４８は、時間か、または、より複雑な解決策ではイベント／性能モニタ統計値に基づきうる。さらに熱感知モジュール４６は、熱、または、イベント／性能モニタに基づきうる。低温から低温状態への論理３８は、プロセッサが特定の時間量（たとえば、２０ミリ秒）の間低温であることを示しうるタイマ割り込み５０を検出し、上側動作点および下側動作点を保存し、上側動作点を上げるよう上側調節モジュール４４を使用することができる。低温から高温状態への論理４０は、熱感知モジュール４６からの熱割り込み５２を検出し、最近に成功した動作点に基づいて下側動作点を上げうる。この技法は、所与の熱制限内にシステムを維持することが依然として可能な最高可能動作点を見つけるために使用することができる。
【００１６】
高温から高温状態への論理４２は、温度が、温度閾値より下ではないと判断されると呼び出しされうる。この判断は、プロセッサに下側動作点を適用した後にヒステリシスに基づいた一定時間（たとえば、１ミリ秒）が経過すると行うことができる。一実施形態では、高温から高温状態への論理４２は、現在の下側動作点に基づいて最近の不成功の動作点を更新し、下側動作点をさらに下げる。図示する高温から低温状態への論理３６は、プロセッサの温度が温度閾値より下に下がると呼び出し可能であり、また、プロセッサの熱状態の安定性の確認を与え、プロセッサが安定している場合には上側動作点と下側動作点を互いに向けて動かしうる。プロセッサの安定性は、現在の上側動作点および下側動作点を使用して成功したプロセッサのスロットリング回数を追跡することにより確認することができる。この回数が特定の閾値（たとえば、２回のスロットリング）を越えると、プロセッサは上側動作点と下側動作点との間の範囲を狭くすることを試みるのに十分に安定しているとみなすことができる。１つのアプローチでは、動作点は、２つの点の間の平均を計算し、下側動作点を平均に向けて上げ（すなわち、より大きい値を選択する）、上側動作点を平均に向けて下げる（すなわち、より小さい値を選択する）ことによって互いに向けて動かされうる。また、さらに打ち切り誤差を回避するために、下側動作点が上側動作点を越えないよう制約を課すことができる。
【００１７】
図４を参照するに、プロセッサ１０および熱管理制御器１２を有するシステム９４を示す。図示するプロセッサ１０は、ノースブリッジとも知られるメモリコントローラハブ（ＭＣＨ）１００に、システム９４内のすべてのコンポーネントを相互接続するフロントサイドバスまたはポイントツーポイントファブリックといったバス１０２を介して通信する。ＭＣＨ１００は、メモリバス１０６を介してシステムのランダムアクセスメモリ（ＲＡＭ）１０４に通信可能である。ＲＡＭ１０４は、高速スタティックＲＡＭ（ＳＲＡＭ）、低速ダイナミックＲＡＭ（ＤＲＡＭ）などを含みうる。ＤＲＡＭモジュールはさらに、シングルインラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）、スモールアウトラインＤＩＭＭ（ＳＯＤＩＭＭ）などに組み込まれうる。ＭＣＨ１００はさらに、外部ビデオ表示ユニット（図示せず）とインタフェースするための高度グラフィクスポート（ＡＧＰ）１１０にグラフィクスバス１０８を介して通信しうる。図示するＭＣＨ１００は、サウスブリッジとも知られるＩ／Ｏコントローラハブ（ＩＣＨ）１１２に、周辺コンポーネント相互接続（ＰＣＩ）バス１１４を介して通信する。プロセッサ１０はさらに、ＩＣＨ１１２を通じてネットワークポート１１８を介してネットワーク１１６に動作可能に接続されうる。ＩＣＨはさらに、ストレージ１２０に結合されうる。ストレージ１２０は、読出し専用メモリ（ＲＯＭ）１２２、ＲＡＭ１２４、プログラマブルＲＯＭ（ＰＲＯＭ）１２６、フラッシュメモリなどを含みうる。図８は、メモリコントローラ１０１がプロセッサ１１および熱管理制御器１２と同じダイ上に含まれる代替のシステム９５を示す。
【００１８】
図５は、上側動作点および下側動作点を有するシステム、プロセッサ、または他のデバイスの熱管理方法５４を示す。図示する方法５４は、低温状態システムの単一の「同期」シーケンスである。したがって、システムが低温状態にあるときに、熱割り込みまたはタイマ割り込みのいずれかが、図示するシーケンスをトリガしうる。最終的には、システムは、低温状態に戻ることができ、処理は繰り返されうる。図示する方法５４は、たとえば、ハードウェア、マイクロコード、または、（たとえば、マルチプロセッシングユニットおよび／または他の好適な機械）機械によって実行されると機械に本発明の実施形態による方法および／または演算を実行させる１つの命令または命令のセットを格納しうる任意の機械可読媒体または製品を使用して実施されうる。このような機械は、たとえば、任意の好適な処理プラットフォーム、コンピュータプラットフォーム、コンピュータ装置、処理装置、コンピュータシステム、処理システム、コンピュータ、プロセッサなどを含み、ハードウェアおよび／またはソフトウェアの任意の好適な組み合わせを使用して実施されうる。機械可読媒体または製品は、たとえば、任意の好適なタイプのメモリユニット、メモリ装置、メモリ製品、メモリ媒体、ストレージ装置、ストレージ製品、ストレージ媒体、および／またはストレージユニット、たとえば、メモリ、取り外し可能または取り外し不可媒体、消去可能または消去不可媒体、書込み可能または書き換え可能媒体、デジタルまたはアナログ媒体、ハードディスク、フロッピー（登録商標）ディスク、読出し専用メモリコンパクトディスク（ＣＤ−ＲＯＭ）、書込み可能コンパクトディスク（ＣＤ−Ｒ）、書き換え可能コンパクトディスク（ＣＤ−ＲＷ）、光学ディスク、磁気ディスク、様々なタイプのデジタルバーサタイルディスク（ＤＶＤ）、テープ、カセットなどを含みうる。命令は、任意の好適なタイプのコード、たとえば、ソースコード、コンパイルされたコード、解釈されたコード、実行可能コード、スタティックコード、ダイナミックコードなどを含みうえ、また、Ｃ、Ｃ＋＋、Ｊａｖａ（登録商標）、ＢＡＳＩＣ、Ｐａｓｃａｌ、Ｆｏｒｔｒａｎ、Ｃｏｂｏｌ、アセンブリ言語、機械語などといった任意の好適なハイレベル、ローレベル、オブジェクト指向、ビジュアル、コンパイル、および／または解釈されたプログラミング言語を用いて実施されうる。
【００１９】
周波数を計算する、および／または、ビンを選択するためのアルゴリズムは、周波数境界制御アルゴリズム（ＦＢＣＡ）として、また、ＦＢＣＡ用のユニット、タイマ、および熱センサを含みうる関連付けられる制御メカニズムは、周波数境界制御メカニズム（ＦＢＣＭ）として考えることができる。低温−低温呼び出し２８（図２）および高温−低温呼び出し３４（図２）により対処されるアルゴリズムの分岐は、「ＦＢＣＡ−低温」と呼び、低温−高温呼び出し３０（図２）および高温−低温呼び出し３２（図２）により対処されるアルゴリズムの分岐は、「ＦＢＣＡ−高温」と呼びうる。
【００２０】
図示する例では、処理工程５６において、熱割り込みが検出される。この熱割り込みは、熱センサ／モジュールによりトリガされうる。このような割り込みが低温状態において検出されると、プロセッサは、低温状態から高温状態に移行しており、スロットルされる必要がありうる。したがって、工程５８において、熱割り込みに応答して、低温−高温呼び出しが行われ、工程６０において、ＦＢＣＡ−高温分岐が呼び出しされる。一般的に、ＦＢＣＡ−高温分岐は、電圧−周波数テーブルにおける下側周波数（たとえば、「ｆｌｏｗ」）、および下側電圧（たとえば、「Ｖｌｏｗ」）に対して対応するエントリ／ビン（たとえば、「ｎ」）を計算することができる。計算された下側動作点は、工程６２において、プロセッサに適用される。この工程は、その下側動作点に依存して、完了するのに一定量の時間（たとえば、「ｔ」）がかかる。工程６４では、ｗａｉｔ＿ｔｉｍｅ＝１ミリ秒−ｔとして待機時間を定義し、工程６６では、定義された時間の間待機する。工程６８において、プロセッサの温度が、温度閾値（たとえば、「Ｔｍａｘ」）より下に下がったか否かが判断される。下がっていないと判断されると、工程７０において高温−高温呼び出しが行われる。この場合、ＦＢＣＡ−高温分岐が再び呼び出しされ、下側動作点が再び計算される。
【００２１】
温度が閾値より下に下がっている場合、工程７２において高温−低温呼び出しが行われる。したがって、工程７４では、上側周波数（たとえば、「ｆｈｉｇｈ」）に対して対応するエントリｎを計算するＦＢＣＡ−低温分岐が呼び出しされる。下側周波数もこの工程の間に計算されうる。工程７６において、プロセッサの電圧（たとえば、「Ｖ」）は、上側電圧（たとえば、「Ｖｈｉｇｈ」）に増加され、また、周波数は、上側周波数に増加されうる。工程７８において、低温状態においてタイマ割り込みが検出されると、上側動作点が再計算される低温−低温呼び出し７３を実行するようＦＢＣＡ−低温分岐が再び呼び出される。
【００２２】
図６を参照するに、ＦＢＣＡ−低温分岐に対する１つのアプローチの詳細８０を示す。一般的に、図示する「ｌｏｗ」および「ｈｉｇｈ」変数は、それぞれ、ｆｌｏｗおよびｆｈｉｇｈ（および対応する電圧ＶｌｏｗおよびＶｈｉｇｈ）に対して最近にプローブされたビンに対応する。「ｐｒｅｖ＿ｓｔａｔｅ」変数は、ＦＢＣＡに対する前の呼び出しをもたらした状況を反映し、以下の３つの値のうちの１つを取りうる。すなわち、前の呼び出しは、温度が温度閾値より下に下がることによって開始されたことを意味するＣＯＬＤ、前の呼び出しは、温度が初めて閾値以上となることによって開始されたことを意味するＨＯＴ、および、温度が閾値より高いことによる一連の少なくとも２つの呼び出しがあったことを意味するＤＯＵＢＬＥ＿ＨＯＴである。「ｂａｄ」変数は、ｆｌｏｗに対する最近の不成功のプローブされたビンを示しうる（収束後、ｂａｄは、ｆｌｏｗに対応するビンより上の１つのビンであるべきである）。図示する「ｍｏｄｅ」変数は、高いビンまたは低いビンでの最近の演算の状態を反映し、以下の３つの値のうち１つを取りうる。すなわち、最近の演算は確認されたことを意味するＮＯＲＭＡＬ、最近の演算はｈｉｇｈとｌｏｗを互いに向けて動かしたことを意味するＡＶＥＲＡＧＩＮＧ、高いビンは人為的に増加されたことを意味するＴＥＳＴ＿ＵＰである。「ｎ＿ｓｕｃｃｅｓｓｆｕｌ＿ｔｈｒｏｔｔｌｉｎｇｓ」変数は、システムが、ｈｉｇｈまたはｌｏｗの最後の変更から高温状態と低温状態との間で交互に切り替えられた回数を測定する。「ｓａｖ＿ｌｏｗ」および「ｓａｖ＿ｈｉｇｈ」変数は、低温−低温呼び出しにおけるｌｏｗおよびｈｉｇｈの値を保存するよう使用される。
【００２３】
したがって、高温−低温呼び出しでは、工程８２では、上側動作点および下側動作点は、互いから十分に離れていることを確認し、また、プロセッサの熱状態の安定性を確認することが分かる。前述したように、安定性は、現在の上側動作点および下側動作点を使用して成功したプロセッサのスロットリング回数を追跡することにより確認することができる。工程８４では、上側動作点と下側動作点の間の（切り捨て）平均が計算され、工程８６では、下側動作点を平均に向けて上げ、上側動作点を平均に向けて下げる。図示する例では、ｌｏｗは厳密にｈｉｇｈより下に維持される。工程８６では、２つの動作点を互いに向けて動かすことにより、上側動作点と下側動作点との間での移行回数および移行に対するペナルティが減少される。このようなアプローチはさらに、プロセッサの性能が、特に、熱的に制限される環境において、より予測可能であるので、ユーザの経験を高めることができる。
【００２４】
低温−低温呼び出しにおいて、工程８８では、上側動作点および下側動作点を保存し、工程９０では、ｎｂｉｎｓに向けて中間まで移動することによって上側動作点を上げる。ｎｂｉｎｓは、ビン２０の最大数（図１、「ＯｐＰｔ＿Ｎ」）である。したがって、演算（ｈｉｇｈ＋ｎｂｉｎｓ＋１）／２は、Ｎより大きい結果は生成しない。この点に関して、本願に説明する除算演算は、整数演算であることが可能である（すなわち、結果は、切り捨て可能である）ことに留意されたい。ここでも上側動作点を動かすことができることによって、従来のアプローチに対し実質的な利点を有することを可能にする。これは、上側動作点は、システムの可変動作条件に対して調整可能だからである。この場合、プロセッサは、有意の時間の間低温状態にあると分かっているので、上側動作点を上げることができる。工程９２では、下側動作点の上方境界（すなわち、ｂａｄ変数）を更新し、工程９３では、カウンタをリセットする。
【００２５】
図７は、ＦＢＣＡ−高温分岐に対する１つのアプローチの詳細を示す。具体的に、図示する低温−高温呼び出しでは、工程１２８において、最近の不成功の動作点に基づいて下側動作点を上げる。具体的に、ｌｏｗはｂａｄに向けて中間まで動かされうる。高温−高温呼び出しでは、工程１３０において最近の不成功の動作点を更新する。前の動作は、低温−低温モードにおいて上方境界を人為的に上げること（すなわち、Ｍｏｄｅ＝＝ＴＥＳＴ＿ＵＰ）であったと判断されると、設定は正しくないと結論され、工程１３２において古い設定が回復される。Ｍｏｄｅ＝＝ＴＥＳＴ＿ＵＰではなかった場合、工程１３４において、下側動作点を下げる。
【００２６】
したがって、本願に説明する技法は、上側動作点および下側動作点の両方を動的に適応することによって、同様の入力データを使用する既存のスロットル技法から現在得られるよりも良好な性能を高温用途に対して可能にする。上のアプローチは、電圧および周波数といった動作点は、スロットルに関連付けられるペナルティを回避するよう中間レベルに設定可能であるので、従来のアプローチよりもより効率よいことが可能である。
【００２７】
当業者は、上述の説明から本発明の実施形態の広い技法は様々な形式で実施可能であることを認識可能である。したがって、本発明の実施形態は、その特定の例に関連して説明したが、本発明の実施形態の真の範囲は、この特定の例に限定されるべきではない。これは、当業者には、図面、明細書、および請求項を研究した後、他の変形が明らかとなるからである。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施形態によるプロセッサの一例を示すブロック図である。
【００２９】
【図２】本発明の一実施形態による状態マシンの一例を示す図である。
【００３０】
【図３】本発明の一実施形態による熱管理制御器の一例を示す図である。
【００３１】
【図４】本発明の一実施形態によるシステムの一例を示す図である。
【００３２】
【図５】本発明の一実施形態による熱管理方法の一例を示すフローチャートである。
【００３３】
【図６】本発明の一実施形態による低温状態制御処理の一例を示すフローチャートである。
【００３４】
【図７】本発明の一実施形態による高温状態制御処理の一例を示すフローチャートである。
【００３５】
【図８】本発明の代替実施形態によるシステムの一例を示す図である。
【図１】
2008541269.tif 000003
【図２】
2008541269.tif 000004
【図３】
2008541269.tif 000005
【図４】
2008541269.tif 000006
【図５】
2008541269.tif 000007
【図６】
2008541269.tif 000008
【図７】
2008541269.tif 000009
【図８】
2008541269.tif 000010
【国際調査報告】
2008541269.tif 000011
2008541269.tif 000012