(57)【要約】チップセットなどのシステムのスロットル設定を得るための方法および装置が提供される。第１のバンド幅がシステムの第１の区域（またはインターフェース）に適用でき、第１の区域の温度が、熱センサを使用することにより感知できる。この第１の区域を通って通過するバンド幅は、感知された温度に基づいて増加したり減少したりして、理想的なまたは最適化された設定を得ることができる。
2004533042.tif 000002
【特許請求の範囲】
【請求項１】
システムのスロットル設定を得る方法であって、
第１のバンド幅を前記システムの第１の区域に与えること、
前記システムの前記第１の区域で温度を感知すること、
前記第１の区域の少なくとも感知された温度に基づいて第１のスロットル設定を得ることを含む方法。
【請求項２】
前記第１のスロットル設定が、前記第１の区域の前記感知された温度が所定の温度より低い場合に、前記システムの前記第１の区域に与えられた前記第１のバンド幅を増加させることによって得られる請求項１に記載の方法。
【請求項３】
前記第１のスロットル設定が、前記第１の区域の前記感知された温度が所定の温度より高い場合に、前記第１の区域に与えられた前記第１のバンド幅を減少することによって得られる請求項１に記載の方法。
【請求項４】
前記システムがチップセットを備え、前記第１の区域が前記チップセットのインターフェースを有する請求項１に記載の方法。
【請求項５】
前記第１のスロットル設定が、閉ループ・フィードバック制御システムを使用することによって得られる請求項１に記載の方法。
【請求項６】
前記閉ループ・フィードバック制御システムが、熱センサ・フィードバックおよび利用フィードバックの１つを有する請求項５に記載の方法。
【請求項７】
前記第１のスロットル設定が、前記感知された温度が所望の温度から離れている大きさに基づいて得られる請求項１に記載の方法。
【請求項８】
前記第１のスロットル設定が、前記システムの前記第１の区域に与えられた前記第１のバンド幅に基づいて得られる請求項１に記載の方法。
【請求項９】
前記第１のスロットル設定を得ることが、前記感知された温度の所望の温度との差を検出してエラーを判断すること、前記エラーに基づいて前記第１の区域に与えられた前記第１のバンド幅を調整することを含む請求項１に記載の方法。
【請求項１０】
第２のバンド幅を前記システムの第２の区域に与えること、
前記システムの前記第２の区域で温度を感知すること、
前記第２の区域の少なくとも感知された温度に基づいて第２のスロットル設定を得ることをさらに含む請求項１に記載の方法。
【請求項１１】
前記第１のスロットル設定が、第３のバンド幅を前記システムの前記第１の区域に与えること、第４のバンド幅を前記システムの前記第２の区域に与えること、前記第１の区域で前記感知された温度と所定の温度とを比較することによって得られる請求項１０に記載の方法。
【請求項１２】
前記第２のスロットル設定が、第３のバンド幅を前記システムの前記第１の区域に与えること、第４のバンド幅を前記システムの前記第２の区域に与えること、前記第２の区域で前記感知された温度と所定の温度とを比較することによって得られる請求項１０に記載の方法。
【請求項１３】
システムのスロットル設定を得るための装置であって、
前記システムの第１の区域内に設けるべき第１の熱センサと、
前記システムに結合し、第１のバンド幅を前記システムの前記第１の区域に与えるためのバンド幅生成デバイスと、
前記第１の熱センサにおよび前記バンド幅生成デバイスに結合し、かつ前記第１の熱センサの少なくとも感知された温度に基づいて前記システムの第１のスロットル設定を得るための監視システムとを備えた装置。
【請求項１４】
前記システムがチップセットを備え、前記第１の区域が前記チップセットのインターフェースを有する請求項１３に記載の装置。
【請求項１５】
前記監視システムが、前記バンド幅生成デバイスが前記第１のバンド幅を前記第１の区域に適用している間、前記第１の熱センサの感知された温度を監視する請求項１３に記載の装置。
【請求項１６】
前記監視システムが、前記感知された温度が所定の温度より低い場合に、前記バンド幅生成デバイスの前記第１のバンド幅を増加させる請求項１５に記載の装置。
【請求項１７】
前記監視システムが、前記感知された温度が所定の温度より高い場合に、前記バンド幅生成デバイスの前記第１のバンド幅を減少させる請求項１５に記載の装置。
【請求項１８】
前記第１のスロットル設定が、閉ループ・フィードバック制御システムを使用して得られる請求項１３に記載の装置。
【請求項１９】
前記閉ループ・フィードバック制御システムが、熱センサ・フィードバックおよび利用フィードバックの１つを有する請求項１８に記載の装置。
【請求項２０】
前記第１のスロットル設定が、前記感知された温度が所望の温度から離れている大きさに基づいて得られる請求項１３に記載の装置。
【請求項２１】
前記第１のスロットル設定が、前記システムの前記第１の区域に与えられた前記第１のバンド幅に基づいて得られる請求項１３に記載の装置。
【請求項２２】
前記監視システムが、前記第１の熱センサの感知された温度の所望の温度との差を検出し、エラー信号を出すためのエラー検出メカニズムと、前記エラー信号に基づいて前記バンド幅生成デバイスによって与えられた前記第１のバンド幅を調整するためのフィードバック・メカニズムとを有する請求項１３に記載の装置。
【請求項２３】
前記システムの第２の区域内に設けるべき第２の熱センサをさらに備え、前記バンド幅生成デバイスが、第２のバンド幅を前記システムの前記第２の区域に与える請求項１３に記載の装置。
【請求項２４】
前記監視システムが、前記第２の熱センサに結合し、前記第２の熱センサの少なくとも感知された温度に基づいて第２のスロットル設定を得る請求項２３に記載の装置。
【請求項２５】
システムのスロットル設定を得る方法を実施するための機械によって実行可能な命令のプログラムを包含する、機械によって読取り可能なプログラム記憶デバイスであって、前記方法が、
バンド幅を前記システムの区域に与えること、
前記システムの前記区域で温度を感知すること、
前記区域の少なくとも感知された温度に基づいてスロットル設定を得ることを含むプログラム記憶デバイス。
【請求項２６】
前記スロットル設定が、前記区域の前記感知された温度が所定の温度より低い場合に、前記システムの前記区域に与えられた前記バンド幅を増加することによって得られる請求項２５に記載のプログラム記憶デバイス。
【請求項２７】
前記スロットル設定が、前記区域の前記感知された温度が所定の温度より高い場合に、前記区域に与えられた前記バンド幅を減少することによって得られる請求項２５に記載のプログラム記憶デバイス。
【請求項２８】
前記スロットル設定を得ることが、前記感知された温度の所望の温度との差を検出してエラーを判断すること、前記エラーに基づいて前記区域に与えられた前記バンド幅を調整することを含む請求項２５に記載のプログラム記憶デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、チップセットのためのスロットル設定を対象とする。より詳細には、本発明は、検出された温度に基づいてスロットル設定を最適化することを対象とする。
【背景技術】
【０００２】
チップセットは、チップセットの外部の構成要素と結合するためのインターフェースを有する。チップセットはまた、各論理構成要素間に内部インターフェースも有する。動作中、これらのインターフェースは、バンド幅が各インターフェースを通り信号線に沿って通るため熱を生成する。温度がチップセットの動作中に問題を引き起こすレベルにまで上昇することがある。より多くの電流がインターフェースを通って伝わると、チップセットの構成要素およびインターフェースに影響を及ぼす可能性のある、より多くの熱が生成される可能性がある。
【０００３】
ヒート・シンク、空気流、またはヒート・シンクと空気流の組合せを熱対策として使用して、チップセットのシリコンがその接合温度仕様を超えないようにすることができる。より最近のチップセットには、クロック周波数／デューティサイクルを低下させることにより、かつ／または最大持続可能バンド幅を制限することにより、最大持続可能電力を制限するためのメカニズム（すなわちスロットリング）が含まれることがある。分析および推定から、現実的なアプリケーションでは電力消費の高いバンド幅を持続できないことがあることが示されている。スロットル値は固定値であり、それにより、推測される悪い状況で現実的なアプリケーション(worse-case-realistic-application)では生成できる可能性のあるバンド幅を達成できるが、人工的に作られた悪意のあるアプリケーション(artificaially crafted malicious application)ではより高いバンド幅を持続できないことがある。これらの熱対策は、悪い状況で現実的なアプリケーションの電力が最高の達成可能な電力に近く、ほぼ最大のバンド幅を消費する時には、もはや十分ではないことがある。したがって、このような極端な熱状況を決して経験することのない環境においてさえも、最も極端な場合をカバーする１組の固定スロットル値が部品の性能を明らかに損なうことがある。
【発明を実施するための最良の形態】
【０００４】
本発明は、すべて本発明の開示の一部を形成する実施形態の例についての以下の詳細な説明および特許請求の範囲を添付図面と合わせて読むことにより自明となろう。上記および以下に記載し例示する開示は、本発明の実施形態の例を開示することを主眼とする。これらは単に例示であり、本発明はそれらに限定されるものではないことを理解されたい。
【０００５】
以下は、図面の簡単な記述であり、図面内の同様の参照番号は同様の要素を表す。
【０００６】
以下の説明において、図面中の異なる図内の同様の参照番号および文字は、同一の、対応する、または同様の構成要素を表すために使用される。さらに以下の詳細な説明において、サイズ／モデル／値／範囲の例が示してあるが、本発明はそれらに限定されるものではない。さらに、クロックおよびタイミング信号の図は基準として示したものではない。本発明の意味が不明確になることを回避するために、かつこのようなブロック図の配置の実装形態についての特定事項が、本発明が実施されるプラットフォームに大きく依存することがあるという観点から、配置をブロック図の形式で示してある。つまり、このような特定事項は当業者の理解の範囲内に含まれるべきものである。特定の詳細事項（たとえば、回路、流れ図）は、本発明の実施形態の例を記述するために記載してあるが、これらの特定の詳細事項の変形形態があるか否かに係わらず、本発明を実践できることは当業者には自明であろう。最後に、ハードワイヤード回路およびソフトウェア命令の異なる組合せを使用して、本発明による実施形態を実現できることも自明であろう。
【０００７】
さらに、本明細書において、「一実施形態」、「実施形態」、「実施形態の例」などについて言及している場合、それらが、それらの実施形態と合わせて記述する特定の特徴、構造、特性が、本発明による少なくとも１つの実施形態内に含まれることを意味するものである。本明細書のさまざまな箇所におけるこのような表現は、必ずしもすべて同じ実施形態を指すものではない。さらに、いずれかの実施形態と合わせて、特定の特徴、構造、特性が記述されている場合、他の実施形態に合わせてこのような特徴、構造、特性を実施することは、当業者の理解の範囲内である。
【０００８】
図１は、コンピュータ・システム・プラットフォームの一例を示す図である。図１に示されるように、コンピュータ・システム１００は、プロセッサ・サブシステム１１０と、フロント・サイド・バス１０によりプロセッサ・サブシステム１１０に結合されたメモリ・サブシステム１２０と、グラフィックス・バス３０によりメモリ・サブシステム１２０に結合されたグラフィックス１３０と、異なるバンド幅および動作速度の周辺装置相互接続（ＰＣＩ）バス６０および７０などの周辺バスをインターフェースに提供するためにハブ・リンク４０および５０によりメモリ・サブシステム１２０に結合された１つまたは複数のホスト・チップセット１４０〜１５０と、フラッシュ・メモリ１６０と、英数字キーボードのオペレーションを制御するためのキーボード・コントローラなどの複数のＩ／Ｏデバイス１８０をインターフェースに提供するためにロー・ピン・カウント（ＬＰＣ）バスによりチップセット１５０に結合されたスーパーＩ／Ｏ１７０と、マウス、トラック・ボール、タッチ・パッド、ジョイスティックなどのカーソル制御デバイスと、磁気テープ、ハード・ディスク・ドライブ（ＨＤＤ）、フロッピ・ディスク・ドライブ（ＦＤＤ）などの大容量記憶デバイスと、プリンタ、スキャナ、ディスプレイ・デバイスへのシリアルおよびパラレル・ポートとを有することができる。複数のＩ／Ｏデバイス１９０を、非レガシＰＣＩバス６０に沿って設けることができる。コンピュータ・システム１００は、異なる方式で構成でき、あるいは図１に示されたもののいくつかまたはそれらとは異なる構成要素を用いることもできる。
【０００９】
プロセッサ・サブシステム１１０は、複数のホスト・プロセッサとキャッシュ・サブシステム１１２とを備える。メモリ・サブシステム１２０は、フロント・サイド・バス１０（すなわち、ホストまたはプロセッサ・バス）によりホスト・プロセッサに結合されたメモリ・コントローラ・ハブ（ＭＣＨ）１２２と、メモリ・バス２０によりＭＣＨ１２２に結合された少なくとも１つのメモリ要素１２４とを備える。メモリ要素１２４は、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、読取り専用メモリ（ＲＯＭ）、ビデオ・ランダム・アクセス・メモリ（ＶＲＡＭ）などである。メモリ要素１２４は、ホスト・プロセッサによって使用される情報および命令を格納する。グラフィックス１３０は、グラフィックス・バス３０によりメモリ・サブシステム１２０のメイン・コントローラ・ハブ１２２に結合でき、たとえば、グラフィックス・コントローラ、ローカル・メモリ、ディスプレイ・デバイス（たとえば、陰極線管、液晶ディスプレイ、フラット・パネル・ディスプレイなど）を備えることができる。
【００１０】
ホスト・チップセット１４０および１５０は、たとえば、Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ製のＰＩＩＸ４（登録商標）チップやＰＩＩＸ６（登録商標）チップなどのＰＣＩチップの形式の周辺装置相互接続（ＰＣＩ）ブリッジ（たとえば、ホスト、ＰＣＩ−ＰＣＩ、または標準拡張ブリッジ）である。具体的には、チップセット１４０および１５０は、周辺装置相互接続（ＰＣＩ）６４ビット・ハブ（Ｐ６４Ｈ）１４０および入出力コントローラ・ハブ（ＩＣＨ）１５０に対応する。Ｐ６４Ｈ  １４０およびＩＣＨ  １５０は、たとえばそれぞれ、１６ビットおよび８ビットのハブ・リンク４０および５０によりメモリ・サブシステム１２０のＭＣＨ１２２に結合され、フロント・サイド・バス１０と、異なるバンド幅および動作速度のＰＣＩバスなどの周辺バス６０および７０との間のインターフェースとして動作できる。ＰＣＩバスは、新しいビデオ、ネットワーキング、またはディスク記憶装置の機能を用いたアドオン配置（たとえば拡張カード）のために、１９９８年１２月１８日にＰＣＩ分科会（ＳＩＧ）によって規定された「ＰＣＩローカル・バス改訂仕様２．２」の最新バージョンに記述されている自動構成可能性および多重化アドレス、制御およびデータ・ラインを備えた高性能の３２または６４ビットの同期バスである。たとえば、６４ビットおよび６６ＭＨｚのＰＣＩバス６０は、Ｐ６４Ｈ  ４０に接続できる。同様に、３２ビットおよび３３ＭＨｚのＰＣＩバス７０は、ＩＣＨ  １５０に接続できる。業界標準アーキテクチャ（ＩＳＡ）や拡張業界標準アーキテクチャ（ＥＩＳＡ）バスなどの他のタイプのバス・アーキテクチャも利用できる。
【００１１】
Ｐ６４Ｈ  １４０およびＩＣＨ  １５０をメモリ・サブシステム１２０のＭＣＨ  １２２に結合するハブ・リンク４０および５０は、異なるバンド幅および動作速度の一次ＰＣＩバスである。Ｐ６４Ｈ  １４０およびＩＣＨ  １５０をＩ／Ｏデバイスに接続する周辺バス６０および７０は、異なるバンド幅および動作速度の二次ＰＣＩバスである。Ｐ６４Ｈ  １４０およびＩＣＨ  １５０は、１９９８年１２月１８日にＰＣＩ分科会（ＳＩＧ）によって規定された「ＰＣＩローカル・バス仕様改訂第２．２版」および１９９７年６月３０日にＰＣＩ分科会（ＳＩＧ）によって規定された「ＰＣＩバス電力インターフェース（ＡＣＰＩ）および電力管理インターフェース仕様改訂第１．１版」に準拠するよう設計されたＰＣＩ−ＰＣＩブリッジに対応する。
【００１２】
図２は、本発明による実施形態の例を示すブロック図である。他の実施形態および構成も、本発明の範囲内に含まれる。具体的には、図２は、図１の実施形態に示されたプラットフォームと同様のコンピュータ・システム２００を示す図である。しかし、例示を容易にするために、図２にはコンピュータ・システム２００のいくつかの構成要素のみが示してある。コンピュータ・システム２００は、たとえばメモリ制御ハブまたは組み込まれたグラフィックス・メモリ制御ハブであるチップセット２１０を備えている。本発明による実施形態はチップセットに限定されるものではない。つまり、チップセット２１０に対応するブロックは、論理構成要素を含む任意のタイプのシステムである。
【００１３】
チップセット２１０は第１の信号線２１１により第１の構成要素２１２に結合されている。チップセット２１０は、第２の信号線２１３により第２の構成要素２１４に結合されている。さらに、チップセット２１０は、信号線２１５により第３の構成要素２１６に結合されている。例示を容易にするために、３つの外部構成要素のみを示してあるが、本発明はこの数の構成要素またはこれらの接続に限定されるものではない。周知のように、インターフェース・デバイス（またはメカニズム）をチップセット２１０（またはチップセット２１０の外部）に設けて、チップセット２１０と信号線２１１、２１３、２１５のそれぞれの間にインターフェースとすることができる。チップセット２１０は、チップセット２１０内の論理構成要素間に内部インターフェース・デバイス（または構成要素やメカニズム）を備えることができる。しかし、例示を容易にするために、本発明による実施形態は、図２に示されるものなどの外部構成要素にチップセット２１０を結合するインターフェースについて記述する。
【００１４】
チップセット２１０は、システム・メモリ・コントローラ、ローカル・メモリ・コントローラ、組み込まれたグラフィックス・コントローラなどの機能ユニットを含むメモリ制御ハブである。機能ユニットのスロットル制御のためにまたはこれらのユニットのインターフェース上にメカニズムを設けることができる。
【００１５】
本発明による実施形態は、チップセット２１０に結合するための試験装置３１０を備えることができる。試験装置３１０は、以下に記述するバンド幅生成制御デバイス３１２とプロセッサ・デバイス３１４とを備えることができる。バンド幅生成制御デバイス３１２およびプロセッサ・デバイス３１４は２つのボックスで示してあるが、これらのボックスの機能はプロセッサ・デバイス３１４などの単一の機能ユニットによって実現できる。本発明による実施形態はまた、チップセット２１０の第１の区域内の第１の熱センサ３０２と、チップセット２１０の第２の区域内の第２の熱センサ３０４と、チップセット２１０の第３の区域内の第３の熱センサ３０６とを備えている。チップセット２１０の第１、第２、第３の区域は、チップセット２１０と、それぞれ、信号線２１１、２１３、２１５との間のインターフェースの場所に対応している。熱センサ３０２、３０４、３０６のそれぞれが、信号線または同様のタイプの通信メカニズムにより試験装置３１０に結合されている。例示を容易にするために、試験装置３１０と第１の熱センサ３０２の間に結合された１本の信号線、すなわち信号線３２０のみが示してある。
【００１６】
第１の熱センサ３０２は、トリップ・ポイント基準を選択するためのディジタル／アナログ・コンバータ（ＤＡＣ）を備えた温度センサ（すなわち、熱ダイオード）である。本発明による実施形態が、以下に記述するさまざまなメカニズムおよび方法を提供するための試験装置３１０内にロードできる（ソフトウェア・プログラム、ルーチンおよび／またはユーティリティを格納するためのディスケットや同様のタイプのデバイスなどの）プログラマブル記憶デバイスを備えることができる。これには、チップセット２１０のさまざまなインターフェースの電力プロファイリングを含む。ソフトウェアは、たとえばＷｉｎｄｏｗｓ（登録商標）環境内で動作することが可能であろう。情報を入力し情報を受信するために、グラフィカル・ユーザ・インターフェース（ＧＵＩ）を試験装置３１０に設けることができる。ユーザは、ゼロからシステムの較正最大値まで任意のカスタム読取および／または書込バンド幅（ＭＢ／ｓ）を選択するオプションを持っている。ソフトウェア・ユーティリティは、バンド幅飽和ストレス・テスト・ルーチン／プログラムと、チップセット／製品／プラットフォームの温度レスポンスを監視し記録するためのルーチン／プログラムと、最適設定を分析し計算するためのルーチン／プログラムと、テスト・ツールを実行し結果をコンパイルするためのルーチン／プログラムとを有している。バンド幅飽和ストレス・テスト・ルーチン／プログラムは、プロセッサ・サブシステム１１０とチップセット２１０の間、チップセット２１０とメモリ・バスの間、チップセット２１０内、チップセット２１０と周辺装置の間などのプラットフォーム内でさまざまなインターフェースを実行するために、バンド幅飽和レベルの入力をとりその結果を記録することができる。
【００１７】
本発明による実施形態によれば、ソフトウェア管理ツールが、安全な温度動作状況を確保しチップセット２１０の性能を最適化する最適チップセットバンド幅スロットル設定を判断することを支援している。ユーティリティは、たとえばチップセット２１０のセンサ温度を監視しながら、メイン・メモリ・バスに対するプロセッサ・ユニットにストレスをかける自動サーマル・プロファイリング・テストを開始できる。ユーティリティは、システム設計者によって確立できる所望の目標センサ温度を維持するために許容しうるメイン・メモリ転送速度またはバンド幅（ＭＢ／秒）に対する最大プロセッサ・ユニットを判断する。テスト結果に基づき、ユーティリティは、ＢＩＯＳエンジニアがチップセット・スロットル・レジスタ内にプログラミングするために使用できる推奨スロットル設定を提供する。
【００１８】
バンド幅生成制御デバイス３１２は、チップセット２１０の第１の区域に与えられたバンド幅を制御する。より詳細には、バンド幅生成制御デバイス３１２は、プロセッサ・デバイス３１４と合わせて動作して、チップセット２１０の第１の区域内に置かれたインターフェースを通って流れるバンド幅の量を生成できる。実際のバンド幅は、試験デバイス３１０の外部のバンド幅生成メカニズムによって出すことができる。バンド幅生成制御デバイス３１２は、このメカニズムを制御し、さまざまなタイプのバンド幅がチップセット２１０の第１の区域を通って通過できるようにする。同様に、バンド幅生成制御デバイス３１２は、プロセッサ・デバイス３１４と合わせて動作して、チップセット２１０の第２の区域を通って通過するバンド幅およびチップセット２１０の第３の区域を通って通過するバンド幅を制御する。チップセット２１０の区域のそれぞれを通って通過するバンド幅は、互いに異なる場合も同様の場合もある。さらに、バンド幅は、同時にまたは異なる時間にチップセット２１０の区域のそれぞれを通って通過する。
【００１９】
試験装置３１０は、第１の熱センサ３０２を使用してチップセット２１０の第１の区域の感知された温度を判断する。同様に、試験装置３１０は、第２の熱センサ３０４を使用してチップセット２１０の第２の区域の感知された温度を判断し、第３の熱センサ３０６を使用してチップセット２１０の第３の区域の感知された温度を判断する。以下に記述するように、試験装置３１０は、感知された温度を監視し、感知された温度に基づいてチップセット２１０の各区域に与えられたバンド幅を適宜調整する（増加させるまたは減少させる）ことができる。試験装置３１０は、感知された温度を監視し、（チップセットの最大温度または最大接合温度などの）所定の温度に対する感知された温度に基づいて、各区域のそれぞれを通って通過するバンド幅のための理想的なまたは最適化されたスロットル設定を判断する。各区域のそれぞれに対して感知された温度の監視は、最適化されたスロットル設定を得るために個々に行うことができる。他方、監視は、区域のそれぞれについて同時に行うこともできる。試験装置３１０は、感知された温度を監視し、区域のそれぞれがその各区域のための所定の温度より低い温度を有するようにスロットル設定を適宜調整できる。監視した後、試験装置３１０は、その時間に各区域のそれぞれを通って通過するバンド幅に基づいて最適化されたスロットル設定を判断する。ソフトウェア・アプリケーションは、ＢＩＯＳエンジニアによって提供され、その後各スロットル・レジスタをプログラミングするために使用できる推奨スロットル設定を判断する。したがって、最適化されたスロットル設定は、動作中、将来の参照用にチップセット２１０の各レジスタまたは制御プログラム内にプログラミングされる。この手順は、各プラットフォームにおいてチップセット２１０の初期オペレーションの前に実施できる。その後、スロットル設定は、チップセット２１０上の区域のそれぞれを通って通過する理想的なバンド幅に基づいて最適化されたままにしておくことができる。
【００２０】
試験装置３１０は、バンド幅が第１の区域を通って通過する間、第１の熱センサ３０２の感知された温度を監視する監視システムを備えることができる。監視システムは他のシステムと協働して、感知された温度が所定の温度より低い場合にはバンド幅を増加させ、感知された温度が所定の温度より高い場合にはバンド幅を減少させることができる。以下に記述するように、監視システムは、感知された温度の理想的な温度との差を検出し、エラー信号を出すためのエラー検出メカニズムを有することができる。試験装置３１０内のフィードバック・メカニズムが、エラー信号の大きさに基づいてバンド幅を調整できる。
【００２１】
アルゴリズムは、電力ユーティリティ・アプリケーションを実行しながらオンダイ(on-die)熱センサからのフィードバックを監視する。この方法は、電力プロファイリング・ユーティリティおよびグラフィックス・ストレス・ソフトウェアを使用して、最大バンド幅（すなわち、電力レベル）を判断し、それらを最大許容ダイ温度に関係づける。ストレス・ユーティリティを使用して最大ダイ温度に到達すると、スロットル・レジスタ設定が推奨され表示される。
【００２２】
次に、本発明による実施形態をより具体的かつ詳細に記述する。これらは単に実施形態の例であり、他の実施形態も本発明の範囲内に含まれる。
【００２３】
電力プロファイリング・ソフトウェアを使用して、チップセット２１０のさまざまな機能インターフェースのために高い電力条件を生み出すことができる。この電力プロファイリング・ソフトウェアを使用することにより、試験装置３１０は、ストレス状況下においても検出されたダイ温度に基づいてスロットル設定を判断できる。ストレス・アプリケーションが、熱定数を計算するために、有限時間間隔（またはサンプリング期間）にわたってダイ温度の変更を測定できる。熱時定数は、スロットリングがダイ・レベル電力密度およびローカル・ダイ温度監視にリアルタイムで応答する、オンダイ熱センサ（すなわち、第１の熱センサ３０２）のダイナミック・フィードバック・モードで使用できる。グラフィカル・ユーザ・インターフェース（ＧＵＩ）を、情報を入力し情報を受信するために試験装置３１０に設けることができる。
【００２４】
次に、本発明による実施形態を、図３〜５に示された流れ図について記述する。これらの流れ図は単に例であり、他の実施形態、流れ図、動作も本発明の範囲内に含まれる。つまり、これらの流れ図は本発明を限定するものではない。さらに、これらの流れ図は、プロセッサ・ユニットとローカル・メモリ、システム・メモリとグラフィックス・コントローラの間のインターフェースに関する。これらは単に例であり、他のインターフェースおよび相互接続も本発明の範囲内に含まれる。
【００２５】
図３では、ストレス・アプリケーション・テストが、プロセッサ・ユニットからメイン・メモリに実行される。ストレス・アプリケーションは、スロットルされていない環境内でバンド幅を（低バンド幅から最大バンド幅まで）繰り返すアルゴリズムを有する。このアルゴリズムは、最大温度目標ポイントに対応する最大バンド幅状況を計算するために熱センサを使用してダイ温度を監視しながら作業量を１ステップずつ進める。この実施形態では、低レベルのグラフィックス・アプリケーション（グラフィックス・コントローラからグラフィックス・コントローラに、かつ／またはグラフィックス・コントローラからローカル・メモリになど）も動作していることがある。グラフィックス・アプリケーションは、メモリバンド幅に対して追加プロセッサ・ユニットを消費しない持続可能な高バンド幅作業量を生成することができる。さらに、いったん最大ダイ温度に対するバンド幅の相関が発見されると、推奨スロットル・パーセンテージ値（または実際のバンド幅）を、チップセット２１０内にプログラミングされるべき実際のメモリ書込スロットル・レジスタ値とともに、試験装置３１０上に表示できる。
【００２６】
より詳細には、図３は、所与の目標温度がブロック４０２で実現されることを示す流れ図４００である。ブロック４０４では、ストレス・アプリケーションは、グラフィックス・コントローラからグラフィックス・コントローラまでかつ／またはグラフィックス・コントローラからローカル・メモリまでなどの他のアプリケーションも実行している間に、システム・メモリ・インターフェースへのプロセッサ・ユニット上で実施できる。バンド幅は、たとえば所定の温度よりやや低い（または同じ）温度を得るまで、ある時間にわたって増加または減少できる。各データは、全テスト時間にわたって記録できる。このデータは、たとえば、達成された最大読取／書込バンド幅（ブロック４０６）と、熱センサのある時間にわたっての温度（ブロック４０８）およびテストの持続時間と、総テスト時間と、熱感知時間（ブロック４１０）とを有する。ブロック４１２では、結果は記録されたデータから計算され、目標温度は最大バンド幅に関係づける。ブロック４１４では、スロットル・パーセンテージおよび／またはスロットル値を、試験装置３１０上に表示（または出力）する。図３の流れ図によって示された方法は、プロセッサ・ユニットの区域およびシステム・メモリ・インターフェース内の温度を監視して、感知された温度および所定の最大温度を使用して適切なスロットル・パーセンテージを判断する。
【００２７】
図４は、グラフィックス・ストレス・アプリケーションを実行するための流れ図５００である。ストレス・アプリケーションは、グラフィックス・インターフェースに対するグラフィックス、ローカル・メモリ・インターフェースに対するグラフィックス、および／またはローカル・メモリ・インターフェースに対するプロセッサ・ユニット上で実施できる。一度に１つのストレス・アプリケーション・テストを実行するか、または熱センサ温度をサンプリングしながら、複数のアプリケーション・テストを同時に実行することができる。この実施形態では、ＳＤＲＡＭストレス・アプリケーションに対するプロセッサ・ユニットも動作していることがある。最大温度を、最大グラフィカルバンド幅に相関づけて、スロットル・レジスタを判断する。より具体的には、図４は、（図３から）以前に得られた目標温度よりまたはユーザによる再入力により目標温度（ブロック５０２）を得ることを示す図である。ブロック５０４では、ストレス・アプリケーション・テストは、グラフィックス・インターフェースに対するグラフィックス、ローカル・メモリ・インターフェースに対するグラフィックス、ローカル・メモリ・インターフェースに対するプロセッサ・ユニット上で実行できる。上記に示したようにこの実施形態では、システム・メモリに対するプロセッサも動作している。図３の実施形態と同様の方式で、試験装置３１０は、たとえば所定の温度より低い感知された温度を維持するバンド幅を判断するために、各インターフェースのそれぞれを通って与えられるバンド幅を適宜調整できる。各データは、全テスト時間にわたって記録できる。これには、最大スループットおよび最大フィル・レート（ブロック５０５）と、達成された最大読取／書込バンド幅（ブロック５０６）と、ある時間にわたる温度などの熱センサ読取り（ブロック５０８）およびテストの持続時間と、総テスト時間と、熱ソーク時間（ブロック５１０）とを含むことができる。結果は記録されたデータ（ブロック５１２）から計算でき、目標温度は最大バンド幅に関係づけることができる。ブロック５１４では、スロットル設定および／またはスロットル値などの関係づけられた出力を表示する。
【００２８】
図５は、各インターフェースのそれぞれが最大バンド幅を通過する場合の異なるスロットル設定の検証に関係する流れ図６００である。つまり、図５の方法は、以前に得られたスロットル値をテストして、複数のインターフェースがそこを通過する理想的なバンド幅を有する場合に、それらが適切であるかどうかを判断する。より詳細には、ブロック６０２で（図４および５から）以前に判断されたスロットル値を得る。ブロック６０４では、目標温度を設定する。温度は、以前に入力された温度から得ることができ、あるいは再び入力することもできる。ブロック６０６では、ストレス・アプリケーションは、グラフィックス・インターフェースに対するグラフィックス、ローカル・メモリ・インターフェースに対するグラフィックス、ローカル・メモリ・インターフェースに対するプロセッサ上で実施できる。ブロック６０８では、試験装置３１０は、熱センサの感知された温度に基づいて目標温度を超えたかどうかを判断する。目標温度を超えていた場合は、ローカル・メモリ・スロットルに対するグラフィックスが高すぎる（ブロック６１０）。温度を超えていなかった場合は、ブロック６１２で、ストレス・アプリケーションをシステム・メモリ・インターフェースに対するプロセッサに適用できる。ブロック６１４では、試験装置３１０は、このインターフェースの感知された温度が所望の目標を超えるかどうかを判断する。感知された温度が目標を超えた場合はシステム・メモリ・スロットルが高すぎる。感知された温度が目標を超えななかった場合は、ストレス・アプリケーションが、ローカル・メモリ・インターフェースおよびシステム・メモリ・インターフェースに対するグラフィックス（ブロック６１８）上で同時に起きる。これらのインターフェースで感知された温度が所望の目標温度を超えた場合は、グラフィックスおよびシステム・メモリ・スロットルは高すぎると判断される（ブロック６２２）。他方、感知された温度が所望の目標温度を超えなかった場合は、システム・ファームウェアおよびドライバ・ソフトウェアのためのレジスタ値と定数が計算される。ブロック６１０、６１６、６２２のいずれかで、スロットルが高すぎると判断された場合は、これらのスロットル値が判断され（ブロック６３０）、警告メッセージを試験装置３１０上に表示する（ブロック６３２）。このような状況において、図５のブロック６０２とブロック６０４の間のポイントＡに戻ることにより、プロセスを繰り返す。
【００２９】
したがって、本発明による実施形態では、外部パッケージ熱電対と比べて、ダイ温度フィードバックのためのオンダイ熱ダイオード温度センサを利用している。ダイオード・センサは、ローカル・ダイ温度の正確な表示をし、ダイ温度変化に本質的により応答性がある。このタイプのフィードバックは、電力密度に対する瞬時応答のためにソフトウェアによって使用される。
【００３０】
さらに、そのソフトウェアは、最小の顧客入力または指示で、試験装置３１０上にグラフィカル・ユーザ・インターフェース（ＧＵＩ）を利用できる。電力アプリケーションを実行しスロットル設定を判断するこの方法は、特定のシステム環境のために最適化されカストマイズされたスロットル・ソリューションおよび熱管理を顧客に提供できる。
【００３１】
次に、スロットリングのさまざまな実施形態について記述する。インターフェース・スロットリングは、待ち状態の変数を機能ユニットの外部および／または内部インターフェース内に挿入することを伴う。インターフェースをスロットルすることは、１００％最大可能スループットのパーセンテージで表現できる。たとえば、図６は、１００％スロットルと５０％スロットルの両方についてのクロックおよびデータを示すタイミング図である。両タイミング図は、同じクロック周波数およびデューティ・サイクルを有する。５０％スロットルは待ち状態の交代時間を含む。
【００３２】
クロック・スロットリングは、電力の低下をもたらすためのクロック周波数またはデューティ・サイクルの変更を伴うことがある。アグレッシブなクロックゲート技術の使用が組み込まれたコントローラ内の機能ユニットに適用された場合には、クロック・スロットリングは余り有効でないことがある。クロック周波数制御および他の技術によりチップ全体に影響がもたらされる恐れがあり、それに対して、消費電力（および生成された熱）の大部分は、ある機能ユニットまたはそれらのユニット内の（Ｉ／Ｏバッファなどの）インターフェースからだけである。消費電力のほとんどが、システム・メモリ・コントローラやローカル・メモリ・コントローラなどの特定のユニット・インターフェースのＩ／０バッファに集中し、内部クロック・ツリーにはますます関係しない可能性がある。
【００３３】
本発明による実施形態では、電力管理制御、すなわち（固定モデルに対応する）固定モードおよび（ダイナミック・モデルに対応する）ダイナミック・モードの複数の方法が実現できる。
【００３４】
固定モデルにおいては、スロットル・パーセンテージ量に対する固定トリップポイントが、事前設定されたポイントを超えることが自動スロットリングに影響を及ぼすことがある。インターフェースのそれぞれのためのスロットル・パーセンテージが事前設定され、スロットルが事前設定されたトリップポイントを超えると直ちに効力を発する。スロットルは、トリップポイントより下がった時に除去される。このモデルにおいては、事前設定されたカタストロフィックな（より良くない場合の）トリップポイントを超えることにより、熱機械故障を防ぐことに役立つシステム・シャットダウンが起きる。事前設定値を、インターフェース・レジスタ・ビットを通じてロックし、後のトリップポイント／スロットルの変化を防ぐことができる。このモデルにおいては、チップセットは、最悪のシナリオに対して保護できる安全な量にスロットルできる。性能は、スロットルされていない状況からスロットルされた状況まで大きく変動する。
【００３５】
他方、ダイナミック・モードまたはモデルにおいては、スロットルのダイナミック制御およびスロットル量は温度に基づく。このモードはまた、固定モードと同様に、事前設定されたトリップポイントとレジスタ・ビットとを有する。ダイナミック・モードおいては、ホット・トリップ事象を交差することにより、ソフトウェア（またはアルゴリズム）が反応性のある熱制御モードに入る。ソフトウェア（またはアルゴリズム）が、スロットリング性能をダイナミックに調整して、熱制約条件に一致させる。システムは、コンピュータ・システムの残りの部分のためのバンド幅を保存するために必要なだけをスロットルするだけである。
【００３６】
図７は、固定モード（または固定モデル）のスロットリングを示す図である。このグラフでは、ＴTRIPは所望の温度を表し、ライン７０２は、熱センサ３０２などのセンサの感知された温度を表す。曲線７０４は、１００％最大可能スループットのパーセンテージで示されたスロットリング量を表す。水平軸は、センサのサンプリング時間などの時間を表す。
【００３７】
図８は、スロットリング性能をダイナミックに調整して、熱制約条件に一致させることができるダイナミック・モードのスロットリングを示す図である。このグラフにおいては、ＴTRIPは所望の温度を表し、ライン７０６は熱センサ３０２などのセンサの感知された温度を表す。曲線７０８は、１００％最大可能スループットのパーセンテージで示されたスロットリング量を表す。水平軸は、センサのサンプリング時間などの時間を表す。ダイナミック・モードにおいては、エラー量を使用して、どの程度のスロットルを与えるべきかを判断できる。
【００３８】
ダイナミック・モードは、以下の利点を有する。ダイナミック・モードは、オーバシュートおよびリンギングが少ないので、より素早く定常状態になる。このことは、図８で、スロットルされた場合には性能の揺れの範囲がより狭いことによって示されている。まだいくらかのオーバシュートを有すると考えれば、オーバシュートを少なくすることにより必要なだけ性能を低下できる。さらに、ダイナミック・モードは、どのユニットがストレス状態にあるかを示すために、たとえば性能カウンタおよびバンド幅トリップに依拠することにより、スロットリングを必要とする区域（すなわち、利用フィードバック）のみをスロットルする。１つのユニットの利用が残りのユニットの利用と大きく異なっていた場合は、その１つを他の大部分のユニットに釣り合うようにスロットルすることができる。すべてのユニットの利用がほぼ等しい場合は、すべてを等しい量でスロットルできる。このことを利用フィードバックと呼ぶことがある。
【００３９】
図８はさらに、センサの感知された温度と所望の温度（ＴＴＲＩＰ）の間の差に対応するＥＲＲＯＲ量を示す図である。このＥＲＲＯＲ量を試験装置３１０内のフィードバック信号として使用して、スロットリング量を制御できる。ＥＲＲＯＲが大きい場合は、大きいスロットル量を与えるる。しかし、ＥＲＲＯＲが小さい場合は、より小さいスロットル量を与える。言い換えれば、ダイナミック・モードにおいては、スロットリングの量は、エラーの大きさに基づくことができる。したがって、本発明による実施形態では、ＥＲＲＯＲを利用してどの程度感知された温度がターゲット温度から離れているかを判断でき、ＥＲＲＯＲを利用してどの方向にスロットルが変更している（すなわち、スロットルが減少しているまたはスロットルが増加している）かを判断できる。スロットリングの感度およびスロットリングの量はこのエラー量による。したがって、ダイナミック・モードは、閉ループ・フィードバック制御システムをとして機能する。
【００４０】
図９は、本発明の実施形態の例に従って、閉ループ・フィードバック制御システムとして動作する組み込まれたチップセットを示す図である。他の実施形態および構成も、本発明の範囲内に含まれる。示してあるように、熱センサ・フィードバックおよび利用フィードバックを、チップセットからフィードバックし、モデル（すなわち所望の値）に対して比較して、スロットル値をダイナミックに調整するために使用できるエラー信号を出すことができる。この図では、熱センサおよび利用は、チップセットからのフィードバック信号として使用される。結果として得られたエラー信号は、どのようにスロットリングが動作に影響をもたらすかを示す。エラーを使用して、チップセットのスロットルを制御して、目標内に保つことができる。ソフトウェアを使用して、閉ループ・フィードバック制御システムをアルゴリズムとして実施できる。
【００４１】
少なくとも１つの実施形態では、周期的に（すなわちサンプリング時間で）、アルゴリズムが新しい温度ＴNを読み取り、格納することができる。アルゴリズムはさらに、ターゲット温度ＴTからの距離を計算し、温度の傾きを（ＴN−ＴN−1）として計算できる。アルゴリズムは、知られている熱方程式（ＡＣＰＩ）を使用して、スロットルを調整できる。この方程式は、↑Ｐ（％）＝＿ＴＣ１＊（ＴN−ＴN−1）＋＿ＴＣ２＊（ＴN−ＴT）である。熱定数＿ＴＣ１および＿ＴＣ２は、その応答を特徴づけるプラットフォームのプロファイリングから導出されていることがある。
【００４２】
フィルタリングは、性能カウンタ、チップセット観測アーキテクチャ（ＯＡ）カウンタ、メモリバンド幅カウンタ、他の利用／需用検出メカニズムを使用することによって達成できる。本装置は、他より著しくアクティブなインターフェースがあるかどうかを判断できる。このような場合には、問題を引き起こしているそのインターフェースのスロットルのみをスロットルできる。さらに、ＴN＃（ＴT−ＴHYST）およびすべてのスロットルが１００％となった後に初めて、スロットリングを解放できる。
【００４３】
したがって、電力管理制御は、オンダイ熱センサおよび制御論理を使用して、組み込まれたチップセットの熱管理に影響をもたらす閉ループ・フィードバック制御システムに影響を及ぼす。このことにより、組み込まれたチップセットが（多くの独立／従属機能ユニットとともに）推奨動作温度を超えないようにすることができる。このことにより、組み込まれたチップセットを熱限度内に維持しながら最大性能が実現される。バンド幅利用と需用についての組み合わされたフィードバック情報は、どの機能ユニットが熱状況の直接の原因となっているかを判断できる。
【００４４】
上述の方法は、試験装置３１０または他のデバイス内に設けられたソフトウェア（またはソフトウェア・ルーチン）内で実現できる。メカニズム、アルゴリズムおよび／またはルーチンも、（コンピュータ・システムなどの）機械によって読取り可能な（たとえばディスクなどの）プログラム記憶デバイス上に設けることができ、方法、アルゴリズムおよび／またはルーチンを実施するための機械によって実行可能な命令のプログラムを有することができる。
【００４５】
実施形態の例についての説明は以上である。本発明についてそのいくつかの実施形態の例を参照しながら記述してきたが、本発明の原理の趣旨および範囲内に含まれる他の多くの修正形態および実施形態が当業者によって考案できることを理解されたい。より具体的には、本発明の趣旨から逸脱することなく、上記の開示、図面および頭記の特許請求の範囲内において、構成要素および／またはそれらの組合せの配置について、合理的な変形形態および修正形態が可能である。構成要素および／または配置についての変形形態および修正形態に加えて、代替形態の使用も、当業者には自明であろう。
【図面の簡単な説明】
【００４６】
【図１】コンピュータ・システム・プラットフォームの一例を示す図である。
【図２】本発明による実施形態の例を示すブロック図である。
【図３】本発明による実施形態の例を示す流れ図である。
【図４】本発明による実施形態の例を示す流れ図である。
【図５】本発明による実施形態の例を示す流れ図である。
【図６】１００％および５０％のスロットリングを示すタイミング図である。
【図７】固定スロットリングを示すタイミング図である。
【図８】本発明による実施形態の例によるダイナミック・スロットリングを示すタイミング図である。
【図９】本発明による実施形態の例に従って閉ループ・フィードバック制御システムとして動作する組み込まれたチップセットを示すブロック図である。
【図１】
2004533042.tif 000003
【図２】
2004533042.tif 000004
【図３】
2004533042.tif 000005
【図４】
2004533042.tif 000006
【図５】
2004533042.tif 000007
【図６】
2004533042.tif 000008
【図７】
2004533042.tif 000009
【図８】
2004533042.tif 000010
【図９】
2004533042.tif 000011
【国際公開パンフレット】
2004533042.tif 000012
2004533042.tif 000013
2004533042.tif 000014
2004533042.tif 000015
2004533042.tif 000016
2004533042.tif 000017
2004533042.tif 000018
2004533042.tif 000019
2004533042.tif 000020
2004533042.tif 000021
2004533042.tif 000022
2004533042.tif 000023
2004533042.tif 000024
2004533042.tif 000025
2004533042.tif 000026
2004533042.tif 000027
2004533042.tif 000028
2004533042.tif 000029
2004533042.tif 000030
2004533042.tif 000031
2004533042.tif 000032
2004533042.tif 000033
2004533042.tif 000034
2004533042.tif 000035
2004533042.tif 000036
2004533042.tif 000037
2004533042.tif 000038
2004533042.tif 000039
2004533042.tif 000040
【国際公開パンフレット（コレクトバージョン）】
2004533042.tif 000041
2004533042.tif 000042
【国際調査報告】
2004533042.tif 000043
2004533042.tif 000044