(57)【要約】本発明の一実施例では、クロック発生器から受け取ったクロック信号の電圧及び周波数調整を通じ、グラフィックメモリコントローラハブ（ＧＭＣＨ）の電力消費を制御する機構を用いた集積装置が説明される。ＧＭＣＨは、グラフィックコアと、グラフィックコアに供給されるレンダリングクロック信号の周波数などの処理動作を変更する回路から構成される。本回路は、グラフィックコアのアイドル状態をモニタし、アイドル状態が所定の時間割合を超える場合、レンダリングクロック信号の周波数レベルを低下させるよう構成される。
2005524903.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックコアと、
前記グラフィックコアに供給されるレンダリングクロック信号の周波数を変更し、前記グラフィックコアのアイドル状態をモニタし、前記アイドル状態が所定の時間割合を超える場合、前記レンダリングクロック信号の周波数レベルを低下させる回路とから構成されるグラフィックメモリコントローラハブ。
【請求項２】
請求項１記載のグラフィックメモリコントローラハブであって、
前記回路は、
前記グラフィックコアに接続され、前記レンダリングクロック信号を提供するコア位相同期（ＰＬＬ）回路と、
前記コアＰＬＬ回路の出力を制御する動作制御回路とから構成されることを特徴とするグラフィックメモリコントローラハブ。
【請求項３】
請求項２記載のグラフィックメモリコントローラハブであって、さらに、
前記コアＰＬＬ回路に前記レンダリングクロック信号の生成に利用されるクロック信号を提供する周波数分割回路を有することを特徴とするグラフィックメモリコントローラハブ。
【請求項４】
請求項３記載のグラフィックメモリコントローラハブであって、さらに、
前記グラフィックコアから出力を受け取るよう構成される表示ポートと、
前記表示ポートにクロック信号を提供する位相同期回路とを有することを特徴とするグラフィックメモリコントローラハブ。
【請求項５】
請求項２記載のグラフィックメモリコントローラハブであって、
前記動作制御回路は、
前記グラフィックコアによるデータ処理動作をモニタすることにより、前記グラフィックコアのアイドル状態を決定する動作表示回路と、
前記動作表示回路と前記コアＰＬＬ回路に接続され、前記動作表示回路による決定に応答して、前記レンダリングクロック信号の周波数レベルの調整を合図する状態シーケンサとから構成されることを特徴とするグラフィックメモリコントローラハブ。
【請求項６】
請求項５記載のグラフィックメモリコントローラハブであって、
前記動作表示回路は、
圧縮/解凍ユニット（ＭＰＥＧ＿ＤＯＮＥ）、３次元レンダリングユニット（３Ｄ＿ＤＯＮＥ）、２次元レンダリングユニット（ＢＬＴ＿ＤＯＮＥ）及びハードウェアビンニングユニット（ＨＢ＿ＤＯＮＥ）の少なくとも２つを含む複数のユニットの各々がアイドル状態であるとき、アクティブなＧｌｏｂａｌ  Ｉｄｌｅ（ＧＩＤＬＥ）信号を生成するアイドル状態検出器から構成されることを特徴とするグラフィックメモリコントローラハブ。
【請求項７】
請求項６記載のグラフィックメモリコントローラハブであって、
前記動作表示回路は、さらに、
前記複数のユニットの選択されたユニットが前記アイドル状態検出器に対しアイドル状態に見えるように、前記選択されたユニットに関するビットの設定がマスクとして機能するため、前記複数のユニットの各々に一意的に対応する少なくとも１つのビットを有するレジスタを有することを特徴とするグラフィックメモリコントローラハブ。
【請求項８】
請求項２記載のグラフィックメモリコントローラハブであって、さらに、
前記コアＰＬＬ回路に提供する少なくとも１つのクロック信号を生成するクロック発生器を有し、
前記レンダリングクロック信号は、前記クロック信号に基づくことを特徴とするグラフィックメモリコントローラハブ。
【請求項９】
請求項５記載のグラフィックメモリコントローラハブであって、
前記動作制御回路は、さらに、
前記動作表示回路に接続され、前記グラフィックコアに供給される電圧を調節する電圧調整回路を有することを特徴とするグラフィックメモリコントローラハブ。
【請求項１０】
グラフィックメモリコントローラハブのクロック周波数を内部的に制御する回路であって、
前記グラフィックメモリコントローラハブのアイドル状態をチェックする前、レンダリングクロック信号のサイクル数を設定する第１カウンタと、
前記グラフィックメモリコントローラハブがアイドル状態であるとき、前記レンダリングクロック信号の各サイクルに対しインクリメントされる第２カウンタと、
前記第２カウンタのカウント値と所定の閾値を比較する減算器と、
前記カウント値が前記所定の閾値より大きい場合、前記レンダリングクロック信号の周波数を調整する周波数スイッチユニットとから構成される回路。
【請求項１１】
請求項１０記載の回路であって、
前記第１カウンタは、ダウンカウンタであることを特徴とする回路。
【請求項１２】
請求項１１記載の回路であって、
前記第２カウンタは、アップカウンタであることを特徴とする回路。
【請求項１３】
請求項１０記載の回路であって、さらに、
前記第２カウンタのイネーブル入力に接続されるアイドル状態検出回路を有することを特徴とする回路。
【請求項１４】
請求項１０記載の回路であって、さらに、
前記減算器の入力に接続され、高速周波数閾値と低速周波数閾値の１つを出力するマルチプレクサを有することを特徴とする回路。
【請求項１５】
請求項１４記載の回路であって、
前記マルチプレクサの出力は、該回路の現在状態（ＣＳＴＡＴＥ）により決定されることを特徴とする回路。
【請求項１６】
請求項１０記載の回路であって、
前記減算器の出力は、該回路の所望状態（ＤＳＴＡＴＥ）であることを特徴とする回路。
【請求項１７】
請求項１６記載の回路であって、
前記周波数スイッチユニットは、前記レンダリングクロック信号の周波数レベルを変更する信号を、前記ＣＳＴＡＴＥと前記ＤＳＴＡＴＥの排他的ＯＲ（ＸＯＲ）の結果が前記信号をアサートする場合に受け取ることを特徴とする回路。
【請求項１８】
請求項１７記載の回路であって、
前記周波数スイッチユニットは、グラフィックコアの温度レベルが所定の温度を超える場合、前記レンダリングクロック信号の周波数レベルの変更を回避することを特徴とする回路。
【請求項１９】
請求項１８記載の回路であって、
前記周波数スイッチユニットは、前記グラフィックコアの温度レベルが前記所定の温度を超えたとしても、前記レンダリングクロック信号の周波数レベルを低下させることを特徴とする回路。
【請求項２０】
グラフィックコアと、
前記グラフィックコアの処理動作に関するイベントをモニタし、前記グラフィックコアの処理動作の調整のためのイベントの検出により、前記グラフィックコアに合図する回路とから構成される集積装置。
【請求項２１】
請求項２０記載の集積装置であって、
前記回路によりモニタされるイベントは、前記グラフィックコアによる非データ処理動作によるトータルの実行時間に関するアイドル状態の割合であることを特徴とする集積装置。
【請求項２２】
請求項２１記載の集積装置であって、
前記回路は、
前記グラフィックコアに接続され、前記グラフィックコアにレンダリングクロック信号を提供するクロックソース回路と、
前記アイドル状態が所定の時間割合を超える場合、前記グラフィックコアに供給される前記レンダリングクロック信号の周波数レベルを低下させる動作制御回路とから構成されることを特徴とする集積装置。
【請求項２３】
請求項２２記載の集積装置であって、
前記動作制御回路は、前記アイドル状態の割合が選択された閾値を下回る場合、前記レンダリングクロック信号の周波数レベルを引き上げることを特徴とする集積装置。
【請求項２４】
請求項２０記載の集積装置であって、
前記回路によりモニタされるイベントには、クロックスピードレシオが含まれることを特徴とする集積装置。
【請求項２５】
請求項２０記載の集積装置であって、
前記回路によりモニタされるイベントには、クロックスロットリングパーセントが含まれることを特徴とする集積装置。
【請求項２６】
請求項２０記載の集積装置であって、
前記処理動作は、前記グラフィックコアに印加される電圧レベルであることを特徴とする集積装置。
【請求項２７】
プロセッサと、
前記プロセッサに接続されるグラフィックメモリコントローラハブとから構成される計算装置であって、
前記グラフィックメモリコントローラハブは、
グラフィックコアと、
レンダリングクロック信号の周波数と前記グラフィックコアに供給される電圧を変更し、前記グラフィックコアの測定されたアイドル状態が超過した場合、前記レンダリングクロック信号の周波数レベルを低下させる回路とから構成されることを特徴とする計算装置。
【請求項２８】
請求項２７記載の計算装置であって、
前記グラフィックメモリコントローラハブの回路は、
前記グラフィックコアによるデータ処理動作をモニタすることによりアイドル状態を決定する動作表示回路と、
前記動作表示回路に接続され、前記動作表示回路により決定されたアイドル状態量に基づき、前記レンダリングクロック信号の周波数レベルの調整を合図する状態シーケンサとから構成されることを特徴とする計算装置。
【請求項２９】
請求項２８記載の計算装置であって、
前記動作表示回路は、
圧縮/解凍ユニット（ＭＰＥＧ＿ＤＯＮＥ）、３次元レンダリングユニット（３Ｄ＿ＤＯＮＥ）、２次元レンダリングユニット（ＢＬＴ＿ＤＯＮＥ）及びハードウェアビンニングユニット（ＨＢ＿ＤＯＮＥ）の少なくとも２つを含む複数のユニットの各々がアイドル状態であるとき、アクティブなＧｌｏｂａｌ  Ｉｄｌｅ（ＧＩＤＬＥ）信号を生成するアイドル状態検出器から構成されることを特徴とする計算装置。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［１．技術分野］
本発明の実施例は、電力管理の技術分野に関し、より詳細には、例えば要求やロードなどのイベントに基づくグラフィックコントローラによる電力消費の増減に関する。
［２．一般的背景］
ここ数年の間に、より高い周波数で動作し、追加的及び/または拡張的特徴をサポートする改良されたグラフィックコントローラの開発を引き起こしてきた半導体技術において多くの進展があった。これらの進展はハードウェアメーカーによるより高速かつより高度なグラフィックカード及びコンピュータの設計及び構築を可能にしてきたが、それらはまた電池により電源供給されるラップトップや携帯型コンピュータに不都合をもたらしている。特に、これらの電池により電源供給されるコンピュータは、従来のものより副産物としてより大きな電力の消費とより大きな熱の発散を要する。
【０００２】
例えば、グラフィックメモリコントローラハブの内部において、グラフィックコアは、大きなゲートカウントを有するそれの主要な機能ブロックの１つである。グラフィックメモリコントローラハブによる電力消費は、主としてグラフィックコアに印加される電圧及び周波数と相関する。すなわち、グラフィックコアの電圧が高くなるほど、グラフィックメモリコントローラハブにより消費される電力は増加する。グラフィックコアの利用性はアプリケーションごとに実質的に変化しうるため、最小のグラフィックスを有するアプリケーションを処理するためグラフィックコアに高い電圧と周波数が供給されると、コンピュータは不必要に電力を浪費することになる。このため、ラップトップや携帯型コンピュータの電池寿命が不必要に短くされると共に、これらのコンピュータに不必要な高い温度で動作させることになる。
［詳細な説明］
本発明は、本発明の実施例を示すのに用いられる以下の説明及び添付された図面を参照することにより最も良く理解されるであろう。
【０００３】
一般に、本発明の様々な実施例により、電圧及び周波数調節を通じて電子装置による電力消費を制御する装置及び方法が説明される。一実施例として、この電圧及び周波数制御は、グラフィックメモリコントローラハブ（ＧＭＣＨ）に適用される。
【０００４】
以下の詳細な説明は、大部分は本発明の実施例を包括的に示すブロック図とフローチャートに関して与えられる。この説明の理解を不必要に不明瞭にすることを避けるため、周知の回路あるいはプロセス処理は詳細には説明されない。
【０００５】
本発明の特徴を説明するのにいくつかの用語が使用される。例えば、「計算装置」は、コンピュータ（例えば、デスクトップ、ラップトップ、携帯型、サーバ、メインフレームなど）、セットトップボックス、家電機器（例えば、テレビなど）、ゲーム端末などのグラフィックメモリコントローラハブを有する任意の電子製品であってもよい。
【０００６】
通常、計算装置は、内部論理、すなわち、ハードウェア、ファームウェア、ソフトウェアモジュールあるいはこれらの組み合わせを有する。「ソフトウェアモジュール」は、実行時にある機能を実行する命令シーケンスである。ソフトウェアモジュールの例としては、オペレーティングシステム、アプリケーション、アプレット、あるいはルーチンなどがあげられる。１以上のソフトウェアモジュールが、以下に限定されるものではないが、電子回路、半導体記憶装置、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、消去可能なプログラム可能タイプのＲＯＭ（ＥＰＲＯＭまたはＥＥＰＲＯＭ）、フロッピー（登録商標）ディスケット、コンパクトディスク、光ディスク、ハードディスクなどを含むマシーン読み出し可能な媒体に記憶するようにしてもよい。「論理ハイ（ｌｏｇｉｃ  Ｈｉｇｈ）」や「アサートされる（ａｓｓｅｒｔｅｄ）」（それの任意の時制）などの用語は、信号を一定の電圧以上あるいは以下となる第１状態に配置することを意味する。「論理ロー（ｌｏｇｉｃ  Ｌｏｗ）」や「デアサートされる（ｄｅａｓｓｅｒｔｅｄ）」（それの任意の時制）は、信号を第１状態とは異なる新たな状態には位置することを意味する。
Ｉ．一般的構成
図１を参照するに、計算装置１００内部で用いられる回路の一実施例が示される。計算装置１００は、プロセッサ１１０、クロック発生器１２０、メモリ１３０及びグラフィックメモリコントローラハブ（ＧＭＣＨ）などの集積装置１４０から構成される。ＧＭＣＨ１４０は、それぞれバス１５０と１６０を介してプロセッサ１１０とメモリ１３０に接続される。ＧＭＣＨ１４０は、クロック発生器１２０から基準クロック信号を受け取り、後述される電圧調整器１７０から調節された電圧を受け取る。図示されてはいないが、計算装置１００は、１以上の内部電池あるいはコネクタラインを介して電気ソケットから与えられる交流（ＡＣ）電力により電力供給されるかもしれない。
【０００７】
ここで、プロセッサ１１０は、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、マイクロコントローラなどであってもよい。ＧＭＣＨ１４０は、処理対象となるメモリ１３０に以降において格納される情報、あるいは計算装置１００に付属する表示ユニット１８０上に表示される情報を受信するため、バス１５０（フロントサイドバスなど）を介しプロセッサ１１０に接続される。表示ユニット１８０は、計算装置１００に一体的に備えられた構成要素であってもよいし、あるいは図示されるような独立した計算装置１００の外部の周辺装置であってもよい。
【０００８】
クロック発生器１２０は、計算装置１００の内部に配置される。しかしながら、クロック発生器１２０は計算装置１２０の外部に配置されるということが考えられる。クロック発生器１２０は、プロセッサ１１０に第１クロック（ＨＯＳＴ＿ＣＬＫ）信号を、ＧＭＣＨ１４０に１以上のクロック信号を提供する。例えば、ＨＯＳＴ＿ＣＬＫ信号１９０と補助的クロック（ＣＬＫ２）信号１９５がＧＭＣＨ１４０に供給されてもよい。ここで、ＣＬＫ２信号１９５は、ＨＯＳＴ＿ＣＬＫ信号１９０より低い周波数を有している。一実施例では、ＨＯＳＴ＿ＣＬＫ信号１９０及びＣＬＫ２信号１９５は、それぞれおよそ６６メガヘルツ（６６ＭＨｚ）と４８ＭＨｚの周波数を有するかもしれない。
ＩＩ．グラフィックメモリコントローラハブの実施例
図２を参照するに、コアとなる周波数及び/または電圧利用を制御するため、クロック発生器１２０に合わせて動作するグラフィックメモリコントローラハブ（ＧＭＣＨ）１４０の第１実施例が示される。本実施例では、ＧＭＣＨ１４０は、グラフィックコア２００、１以上のクロックソース２１０と２１５（例えば、位相同期「ＰＬＬ」回路など）、任意的な周波数分割回路２２０、メモリコントローラ２２５、表示ポート及び動作制御回路２３５から構成される。動作制御回路２３５は、状態シーケンサ２４０、動作表示回路、電圧調整制御回路２５０及びコアＰＬＬ回路２５５を有する。
【０００９】
図２に示されるように、グラフィックコア２００は、入力データに対しグラフィック計算を実行し、当該データを表示ポート２３０を介し図１の表示ユニット１８０に出力する。グラフィックコア２００は、図１のクロック発生器１２０から発せられた基準クロック信号を受け取る。本実施例では、ＧＭＣＨ１４０は、ＨＯＳＴ＿ＣＬＫ信号１９０を受け取り、このクロック信号をＰＬＬ回路２１０とおそらく周波数分割回路２２０に与える。ＰＬＬ回路２１０は、ＨＯＳＴ＿ＣＬＫ信号１９０に基づき、メモリクロック（ＭＣＬＫ）信号２６０を生成する。ＨＯＳＴ＿ＣＬＫ信号１９０とは異なり、ＭＣＬＫ信号２６０はプログラム可能である。ＭＣＬＫ信号２６０は、図１のメモリ１３０へのアクセスを制御するメモリコントローラ２２５により利用される。
【００１０】
周波数分割回路２２０は、それが実行されると、ＨＯＳＴ＿ＣＬＫ信号１９０の周波数を調節し、この調節されたクロック信号２６５をコアＰＬＬ回路２５５にわたす。コアＰＬＬ回路２５５は、入力された調節済みクロック信号２６５に基づき、プログラム可能なレンダリングクロック（ＣＲＣＬＫ）信号２７０を生成し、クロック処理のためＣＲＣＬＫ信号２７０をグラフィックコア２００に提供する。
【００１１】
さらに図２を参照するに、本実施例では、動作制御回路２３５は、ＧＭＣＨ１４０によるデータ処理動作をモニタする動作表示回路２４５を有する。このモニタリングは、グラフィックコア２００がアクティブ状態（データ処理）状態であるか、あるいはアイドル状態であるときを検知することにより行われるかもしれない。例えば、グラフィックコア２００がアクティブ状態でデータを処理しているとき、動作表示回路２４５により検知される制御信号（図示せず）がアサートされる（例えば、選択された極性に対して論理ハイとされる）。そうでない場合、制御信号はデアサートされる（選択された極性に対して論理ローとされる）。この制御信号を定期的にサンプリングすることにより、グラフィックコアがアクティブ状態である比率を決定することができる。この比率から、状態シーケンサ２４０は、ＣＲＣＬＫ信号２７０の周波数が適切であるか、あるいは変更の必要があるか決定することができる。
【００１２】
動作制御回路２３５はグラフィックコア２００へのクロック周波数または印加電圧以外の計算装置の処理動作の制御を行うよう構成されてもよいということが考えられる。例として、クロックスピードレシオ、クロックスロットリングパーセント、リフレッシュレート、バックライトの明るさなどがあげられる。しかしながら、例示のため、周波数と調整のみが議論される。
【００１３】
コアＰＬＬ回路２５５は２つの異なるクロック周波数をサポートするのみである場合、状態シーケンサ２４０はより高い周波数のクロック信号（「高速」周波数信号と呼ばれる）を選択するため、アサートされた制御信号２４１をコアＰＬＬ回路２５５に提供する。そうでない場合には、より低い周波数のクロック信号（「低速」周波数信号と呼ばれる）を選択するため、デアサートされた制御信号がコアＰＬＬ回路２５５に提供される。コアＰＬＬ回路２５５が３以上の異なるクロック周波数をサポートする場合、状態シーケンサ２４０はグラフィックコア２００に対する複数のクロック周波数の１つに対応する複数の制御信号を提供するよう調整される。例えば、２つの制御信号（００，０１，１０，１１）が、可変周波数の４つの異なるクロックをサポートするようにしてもよい。
【００１４】
グラフィックコア２００の周波数を変更すると、状態シーケンサ２４０はまた制御信号２４２を電圧調節制御回路２５０に提供し、電圧調節制御回路２５０により、グラフィックコア２００に供給される電圧を調整するため、図１の電圧調節器１７０に信号が送られる。この電圧は、例えば、約１．５ボルトから約０．９ボルトあるいはそれ以下の範囲にあるかもしれない。電圧の調整は周波数の変化に対応し、このような電圧調整は調整されたクロック信号のアンゲート処理（ｕｎｇａｔｉｎｇ）の前に発生するかもしれない。
【００１５】
図３を参照するに、コア周波数及び/または電圧を制御するためクロック発生器１２０と共に動作するグラフィックメモリコントローラハブ（ＧＭＣＨ）１４０の第２実施例が示される。本実施例では、ＧＭＣＨ１４０から、表示ポート２３０に印加されるクロック信号の周波数を調整するＰＬＬ回路２１５が除かれている。しかし、ＧＭＣＨ１４０は、上述のグラフィックコア２００、ＰＬＬ回路２１０、任意的な周波数分割回路２２０、メモリコントローラ２２５、表示ポート２３０及び動作制御回路２３５などのその他の構成要素を備えている。
ＩＩＩ．動作制御回路の実施例
Ａ．動作制御回路の一例となる論理
図４を参照するに、動作制御回路２３５、特に、図２と図３の状態シーケンサ２４０と動作表示回路２４５の一実施例が示される。一般に、このような回路は、アイドル状態検出器３００、アイドル状態モニタ３１０、減算器３５０、選択要素（例えば、マルチプレクサなど）３６０〜３６４、論理ゲート３７０〜３７７及び以下で詳細に説明される周波数スイッチユニット３８０を有する。一般に、周波数スイッチユニット３８０は図２の状態シーケンサとして動作し、当該回路の残りは動作表示回路２４５として動作する。
【００１６】
本発明の一実施例では、電力消費とパフォーマンスとの間のバランスを維持するため、動作制御回路２３５が図１のＧＭＣＨ１４０により用いられるＣＲＣＬＫ信号２７０の周波数スイッチ処理をサポートする。潜在的なパフォーマンス低下を解消するため、アイドル状態モニタ３１０が、図１のＧＭＣＨ１４０のレンダリングエンジンのアイドル状態を測定するよう構成される。
【００１７】
特に、本発明の一実施例では、ＣＲＣＬＫ信号２７０が、アイドル状態の特定の閾値（Ｔｆ２ｓ）が満たされる場合、「高速」周波数（Ｆｆ）から「低速」周波数（Ｆｓ）（Ｆｆ＞Ｆｓ）にスイッチするよう構成される。「高速−低速（Ｆ２Ｓ）状態閾値」と呼ばれるこの閾値は、計算装置のＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）により、あるいはおそらく特定のメモリ位置あるいはレジスタのコンテンツへのアクセスにより、電力アップ中に静的あるいはプログラム可能に設定されてもよい。この閾値は、図４に与えられるようなビット値（例えば、３２ビット値）として表現されてもよい。
【００１８】
ＣＲＣＬＫ信号はまた、動作レベルが「低速−高速（Ｓ２Ｆ）状態閾値」（Ｔｓ２ｆ）と呼ばれる特定の動作閾値を上回るよう引き上げられるとき、低速周波数から高速周波数にスイッチするよう構成される。同様に、Ｓ２Ｆ状態閾値がプリセットされ、ビット値（例えば、３２ビット値）により表現されてもよい。ＣＲＣＬＫ信号周波数のみが、要求に応じて動的に可変であり、その他すべての信号は起動後不変とされる。
【００１９】
測定されたアイドル状態の他に、他の周波数スイッチイベントがスフとウェア制御を通じてトリガーされてもよい。例えば、ＡＣ電力の遮断（例えば、電力ソケットからのそれのＡＣプラグの取り外しによりコネクタラインの切断など）を検出し、ＣＲＣＬＫ信号を電池寿命をより長くするために設定された低速周波数にソフトウェアルーチンによりスイッチさせることが可能である。
【００２０】
同一の負荷の下での不必要なスイッチ処理の繰り返しを低減するため、ヒステリシス（ｈｙｓｔｅｒｅｓｉｓ）の提供が可能である。これを可能にする１つの方法は、高速−低速周波数移行の開始に必要なビジーレベルが、低速−高速周波数移行の開始に要するビジーレベルより実質的に低いということを保証することによる。周波数、システム電力及びヒステリシスの関係は、式（１）により与えられる。
【００２１】
【数１】
2005524903.tif 000003
ただし、Ｔｆ２ｓ＝Ｆ２Ｓ状態閾値、Ｔｓ２ｆ＝Ｓ２Ｆ状態閾値、Ｉｓ＝低速状態インターバル、Ｉｆ＝高速状態インターバル、Ｆｓ＝低速周波数、及びＦｆ＝高速周波数である。
【００２２】
図４に示されるように、動作制御回路２３５の動作は、部分的に各種制御状態信号に基づく。これらの制御状態信号は、以下に限定されるものではないが、ＧＭＣＨの所望状態（ＤＳＴＡＴＥ）、現在状態（ＣＳＴＡＴＥ）、アイドル状態モニタのハードウェアに基づく周波数変更リクエスト（ＨＷ＿ＣＨ＿ＦＲＥＱ）、及び/またはハードウェア、ソフトウェアまたは温度状態の何れかに基づく周波数変更リクエスト（ＣＨ＿ＦＲＥＱ＿ＲＥＱ）を含む。
【００２３】
より詳細には、「ＤＳＴＡＴＥ」は、電子装置の所望の周波数状態レベルを表す。ＤＳＴＡＴＥの値は、おそらく図５Ａに示されるようなＧＭＣＨのメモリ（図示せず）に備えられるＩＳＰ（Ｉｄｌｅ  Ｓｔａｔｕｓ  Ｐａｇｅ）レジスタ３９０のあるビット（例えば、ＩＳＰ［１］）として格納されてもよい。ＩＳＰレジスタは、周波数及び電圧スロットル処理を決定するソフトウェア及びハードウェアに動作及び温度情報を提供する。ここで、本実施例では、ＤＳＴＡＴＥは、ＣＲＣＬＫ信号を「高速」周波数レベルに設定及び維持するためアサートされる（ＤＳＴＡＴＥ＝論理「ハイ」）。ＤＳＴＡＴＥは、ＣＲＣＬＫを「低速」周波数レベルに設定及び維持するためデアサートされる。ＤＳＴＡＴＥはハードウェアまたはソフトウェアの何れかにより決定することができる。
【００２４】
図５ＢのＩＣＳ（Ｉｄｌｅ  Ｃｏｎｔｒｏｌ  ａｎｄ  Ｓｔａｔｕｓ）レジスタ３９５のＥｎａｂｌｅ  Ｈａｒｄｗａｒｅ  Ｔｒａｎｓｉｔｉｏｎビットの設定（ＥＮ＿ＨＷ＿ＴＲＡＮＩＣＳ＝［３０］＝論理「ハイ」）に応答して、ハードウェアにより決定されると、減算器３５０からの出力に関する最上位ビット（ＭＳＢ）はＤＳＴＡＴＥ値に等しくなる。そうでない場合には、ソフトウェアにより決定されると、ＤＳＴＡＴＥはＳＷＲＳＴ２Ｓ（Ｓｏｆｔｗａｒｅ  Ｒｅｓｅｔ−ｔｏ−Ｓｌｏｗ）信号の反転値（例えば、ＩＣＳ［２８］）一般に等しくなる。
【００２５】
本発明の一実施例では、「ＣＳＴＡＴＥ」は、ＣＲＣＬＫ信号の現在状態を表す。ＣＳＴＡＴＥの値は、ＩＳＰレジスタ３９０の１ビット（例えば、ＩＳＰ［０］）として格納されてもよい。「高速」周波数でＣＲＣＬＫ信号を選ぶため、ＣＳＴＡＴＥはアサートされる。「低速」周波数を選ぶため、ＣＳＴＡＴＥはデアサートされる。すべてのドメイン動作がストールされた後、ＤＳＴＡＴＥ値をＣＳＴＡＴＥ値に割り当てることにより、ＣＲＣＬＫの周波数はスイッチされる（例えば、高速から低速に）。
【００２６】
アサートされると、「ＨＷ＿ＣＨ＿ＦＲＥＱ」は、ハードウェアにより決定される周波数変更イベント（「高速」から「低速」へ、あるいは「低速」から「高速」へ）を表す。ＨＷ＿ＣＨ＿ＦＲＥＱは、アイドル状態モニタの動作に基づく。例えば、ＣＲＣＬＫ信号が高速周波数で動作し（ＣＳＴＡＴＥ＝論理「ハイ」）、かつサンプリングされたアイドル状態カウントがＦ２Ｓ状態閾値（Ｔｆ２ｓ）より大きいとき、ＨＷ＿ＣＨ＿ＦＲＥＱはアサートされる（ＨＷ＿ＣＨ＿ＦＲＥＱ＝論理「ハイ」）。ＣＲＣＬＫ信号が低速周波数で動作し（ＣＳＴＡＴＥ＝論理「ロー」）、かつサンプリングされたアイドル状態カウントがＳ２Ｆ状態閾値（Ｔｓ２ｆ）未満であるとき、ＨＷ＿ＣＨ＿ＦＲＥＱはアサートされる。
【００２７】
「ＣＨ＿ＦＲＥＱ＿ＲＥＱ」は、一般にハードウェアまたはソフトウェアにより促されるイベント及び温度の読取りに基づく。ＣＨ＿ＦＲＥＱ＿ＲＥＱがアサートされると、周波数スイッチユニット３８０による周波数変更リクエスト（高速から低速、あるいは低速から高速）を表す。２つの基準に応答して、ＣＨ＿ＦＲＥＱ＿ＲＥＱの値は決定される。第１の基準は、ハードウェアまたはソフトウェアリクエストが供されるか決定する。このような決定は、ＥＮ＿ＨＷ＿ＴＲＡＮの値に基づく（ＥＮ＿ＨＷ＿ＴＲＡＮは、ハードウェアにより決定された周波数変更リクエストが供されるとき、アサートされる）。
【００２８】
第２の基準は、周波数変更リクエストがＩＳＰレジスタ３９０（例えば、ＩＳＰ［９：２］）に格納されているＭＣＨの検知された温度（ＴＲＲ［７：０］）に基づき必要とされるか決定する。本実施例では、ＴＨＥＲＭＡＬＨＯＴパラメータが、この検知された温度が所与の閾値を上回るとき、論理「１」に設定される。しかしながら、検知された温度が所与の閾値を上回ったとしても、ＣＲＣＬＫ信号は依然として「高速」周波数からの変更が可能である。そうでなく、ＣＳＴＡＴＥがデアサートされる場合、周波数レベルを変更しないことを表すＣＨ＿ＦＲＥＱ＿ＲＥＱをデアサートするＳＷＩＴＣＨ＿ＴＯ＿ＳＬＯＷ＿ＩＦ＿ＨＯＴ（例えば、ＩＣ［２９］）とＴＨＥＲＭＡＬＨＯＴパラメータがアサートされる。すなわち、第２の基準は、ＧＭＣＨの検知された温度が設定されている閾値を上回る場合に、低速−高速周波数スイッチの移行を回避するのに利用される。
【００２９】
図４に示されるように、アイドル状態検出器３００は、特定のユニットがアイドル状態であるとき、アクティブなＧＩＤＬＥ（Ｇｌｏｂａｌ  Ｉｄｌｅ）信号３０９を生成する。本実施例では、このようなユニットには、ＭＰＥＧ圧縮/解凍ユニット（アイドル時にはＭＰＥＧ＿ＤＯＮＥ３０２）、３次元レンダリングユニット（アイドル時には３Ｄ＿ＤＯＮＥ３０４）、２次元レンダリングユニットあるいはブリッタ（ｂｌｉｔｔｅｒ）（アイドル時にはＢＬＴ＿ＤＯＮＥ３０６）、及び/またはハードウェアビンニング（ｂｉｎｎｉｎｇ）ユニット（アイドル時にはＨＢ＿ＤＯＮＥ３０８）の１以上を有するようにしてもよい。各「ＤＯＮＥ」信号３０２、３０４、３０６及び/または３０８は、フレキシブルな動作カウントポリシーのテスト及び提供のため、ＩＣＳレジスタ３９５のレジスタビットによりマスクまたはアンマスクすることが可能である。
【００３０】
例えば、図６に示されるように、ＩＣＳレジスタ３９５の４ビット４００〜４０３（ＩＣＳ［１１：８］）は、ＤＯＮＥ信号３０２、３０４、３０６及び３０８に一意的に対応している。従って、ＩＣＳ［１１］の設定は、ＭＰＥＧ＿ＤＯＮＥ信号３０２をマスクするため（例えば、アサートされた論理「ハイ」状態に配置）、第１論理ゲート４１０（例えば、ＯＲゲート）からのアクティブな信号を出力される。同様に、ＩＣＳ［１０：８］の設定は、他の論理ゲート４２０、４３０及び４４０（例えば、ＯＲゲート）からのアクティブ信号により３Ｄ＿ＤＯＮＥ信号３０４、ＢＬＴ＿ＤＯＮＥ信号３０６及びＨＢ＿ＤＯＮＥ信号３０８を同様にマスクする。
【００３１】
図４を再び参照するに、アイドル状態モニタ３１０が、予め設定された時間間隔内でレンダリングエンジンのアイドル状態を決定するよう構成される。このアイドル状態の測定に基づき、アイドル状態モニタ３１０は、ＤＳＴＡＴＥ信号とＣＨ＿ＦＲＥＱ＿ＲＥＱ信号を生成する。ソフトウェアはまた、ＤＳＴＡＴＥとＣＨ＿ＦＲＥＱ＿ＲＥＱ信号を設定することができる。ＧＩＤＬＥ３０９はＣＲＣＬＫ２７０の各サイクルでサンプリングされ、インターバルカウンタ３４０はまたＣＲＣＬＫでカウントを行うため、アイドル状態モニタ３１０はＣＲＣＬＫドメインで実行する。
【００３２】
アイドル状態モニタ３１０は、アイドル状態カウンタ３２０とインターバルカウンタ３４０から構成される。アイドル状態カウンタ３２０は、複数の入力３２１〜３２３を有する。本実施例では、Ｃｌｅａｒ（ＣＬＲ）入力３２１により、アイドル状態カウンタ３２０は電力上昇のリセット信号（ＩＭｒｓｔ）の受信によりリセットされる。Ｃｌｏｃｋ（ＣＬＫ）入力３２３は、アイドル状態カウンタ３２０がＣＲＣＬＫ信号２７０によりクロック付与されるのを可能にする。Ｅｎａｂｌｅ（ＥＮ）入力３２２は、アサートされた信号の受信により、アイドル状態カウンタ３２０にカウントを開始させる。図示されるように、Ｅｎａｂｌｅ入力３２２は、ＧＩＤＬＥ信号３０９と組み合わせ論理ユニット３３０からの出力がアサートされるとき、カウント処理を開始する第１論理ゲート３７０（例えば、ＡＮＤゲート）に接続される。
【００３３】
図示されるように、組み合わせ論理ユニット３３０は、ソフトウェアからＩＣＳレジスタのアイドルモニタイネーブルビットの値を受け取る第１入力と、論理ゲート３７２と３７３（例えば、ＡＮＤゲート３７２とインバータ３７３）に接続される第２入力を有する第２論理ゲート３７１（例えば、ＡＮＤゲート機能）を有する。組み合わせ論理ユニット３３０は、（ｉ）カウントダウンシーケンス中にインターバルカウンタ３４０がゼロをわたさず（インターバルカウンタ３４０の最上位ビット「ＩｎｔＭＳＧ」が「０」にデアサートされる）、（ｉｉ）Ｓｔａｒｔ  Ｃｏｕｎｔ（ＳＴＡＲＴ＿ＣＮＴ）信号がカウントシーケンスを開始するようアサートされた、ことに応答して、アクティブ信号を出力する。
【００３４】
アイドル状態カウンタ３２０はさらに、アイドルカウントをＩＳＰレジスタ３９０に送るための出力３２４を有する。本実施例では、この出力は、ＩＳＰレジスタ３９０の複数ビット（例えば、ＩＳＰ［３０：１０］）に格納されているバイナリ値である。
【００３５】
さらに、インターバルカウンタ３４０は、複数の入力３４１〜３４４を有する。本実施例では、インターバルカウンタ３４０は、Ｃｌｏｃｋ（ＣＬＫ）入力３４１に与えられるＣＲＣＬＫ信号によりクロック付与される。Ｌｏａｄ（ＬＯＡＤ）入力３４２により、インターバルカウンタ３４０は、リセットされると、Ｄａｔａ−Ｉｎ（ＤＩＮ）入力３４３を介し２つの値の１つによりロードされる。１つの値、すなわち、高速状態インターバル（Ｉｆ）３４５または低速状態インターバル（Ｉｓ）３４６の何れかが、ＧＭＣＨのＣＲＣＬＫ信号が動作している現在状態であるＣＳＴＡＴＥ３４７の値に基づき選択要素３６０により出力される。Ｅｎａｂｌｅ（ＥＮ）入力３４４は、アサートされた信号の受信により、インターバルカウンタ３４０にカウントを開始させる。図示されるように、ＥＮ入力３４４は組み合わせ論理ユニット３３０に接続される。
【００３６】
インターバルカウンタ３４０がゼロを通過してカウントすると、出力３４８（例えば、最上位ビットの整数値「ＩｎｔＭＳＢ」）がアサートされる。これにより、アイドル状態カウンタ３２０とインターバルカウンタ３４０は、論理ゲート３７１からの出力が本実施例ではデアサートされるために停止される。その後、アイドル状態カウンタ３２０により生成されたアイドルカウントが、ＣＳＴＡＴＥ３４７の値と共にサンプリングされる。アイドルカウントは、ＣＳＴＡＴＥ３４７により制御される選択要素３６１によって出力されるＳ２Ｆ状態閾値（Ｔｓ２ｆ）３５１またはＦ２Ｓ状態閾値（Ｔｆ２ｓ）の何れかと比較される。
【００３７】
サンプリングされたアイドルカウントが選択された状態閾値以上であり、かつＣＳＴＡＴＥ３４７がアサートされるとき、出力信号（ＭＳＢ）３５３はデアサートされ、論理ゲート３７４（例えば、排他的ＯＲ「ＸＯＲ」ゲート）に送られる。論理ゲート３７４の出力は、ＨＷ＿ＣＨ＿ＦＲＥＱ信号３６５に等しい。すなわち、式（２）に示されるような関係が成り立つ。
【００３８】
【数２】
2005524903.tif 000004
周波数状態がＧＭＣＨのハードウェアにより決定されると、ＥＮ＿ＨＷ＿ＴＲＡＮ（ＩＣＳ［３０］）がアサートされ、減算器３５０からのＭＳＢ３５３が選択要素３６２から出力され、これによりＤＳＴＡＴＥ３９１の値に等しくなる。ＨＷ＿ＣＨ＿ＦＲＥＱ信号３６５は、選択要素３６３を介し選択要素３６４に送られる。
【００３９】
ビット形式による温度としてＩＳＰレジスタ（例えば、ＩＳＰ［９：２］）に格納されているＧＭＣＨの検知された温度がある閾値を超えなければ、ＣＨ＿ＦＲＥＱ＿ＲＥＱ信号３８１がアサートされ、ＣＲＣＬＫ信号が現在「高速」周波数で動作している場合には周波数スイッチユニット３８０に印加される。あるいは、ＣＲＣＬＫ信号が現在「低速」周波数で動作している場合には、ＣＨ＿ＦＲＥＱ＿ＲＥＱ信号３８１はデアサートされる。
【００４０】
検知された温度が所与の閾値を超える場合、ＴＨＥＲＭＡＬＨＯＴ信号がアサートされ、選択要素３６４の制御信号がアサートされる。従って、ＣＲＣＬＫ信号の現在周波数が「低速」周波数レベルにある場合（ＣＳＴＡＴＥ＝論理「ロー」）、ＣＨ＿ＦＲＥＱ＿ＲＥＱ信号はデアサートされる。しかしながら、ＣＲＣＬＫ信号の現在周波数が「高速」周波数レベルにある場合（ＣＳＴＡＴＥ＝論理「ハイ」）、ＣＨ＿ＦＲＥＱ＿ＲＥＱ信号３８１はＣＲＣＬＫ周波数の低下を可能にするためアサートされる。
【００４１】
周波数状態がソフトウェアにより決定される場合、ＥＮ＿ＨＷ＿ＴＲＡＮ（例えば、ＩＣＳ［３０］）はデアサートされ、これによりＳＷＲＳＴ２Ｓの反対の状態が論理ゲート３７５によりＤＳＴＡＴＥ３４９の値を設定することになる。その後、周波数スイッチユニット３８０が、論理ゲート３７６により与えられるようなＳＷＲＳＴ２ＳとＣＳＴＡＴＥのＸＯＲ結果により効果的に設定される。無効を検知する同一の温度が論理ゲート３７７により提供される。
Ｂ．動作制御回路の一例となる動作
図７Ａと図７Ｂを参照するに、図４の動作制御回路の「高速」から「低速」周波数への一般的な周波数スイッチ処理を概観するフローチャートの一実施例が示される。この処理中、アイドル状態カウンタとインターバルカウンタの両方がソフトウェアによるイネーブル状態に応答して初期化される（ブロック５００）。ＣＳＴＡＴＥはアサートされているため、予め設定された第１の期間が電力上昇においてインターバルカウンタにロードされる（ブロック５０５）。この予め設定された第１期間は、例示的な本実施例では、高速状態インターバルに等しい。また、高速−低速閾値が減算器にロードされる（ブロック５１０）。
【００４２】
ＳＴＡＲＴ＿ＣＮＴ信号がアサートされると、アイドル状態カウンタとインターバルカウンタの両方がカウントを開始する（ブロック５１５と５２０）。インターバルカウンタが予め設定された第１期間からカウントダウンされる間、ＣＲＣＬＫ信号のすべてのサイクルに対してＧＩＤＬＥがアサートされる。インターバルカウンタがゼロを過ぎてカウントすると、２つのカウンタを停止させる制御信号がアサートされる（ブロック５２５と５３０）。アイドル状態カウンタの値であるＣＳＴＡＴＥ、ＤＳＴＡＴＥ及びＧＭＣＨの現在温度を特定する温度がサンプリングされる（ブロック５３５）。
【００４３】
ＤＳＴＡＴＥがハードウェアにより決定されると（例えば、ＥＮ＿ＨＷ＿ＴＲＡＮがアサートされる）、ＨＷ＿ＣＨ＿ＦＲＥＱ信号に対して送られた値は、
［外１］
2005524903.tif 000005
に等しい（ブロック５４０と５４５）。従って、ＤＳＴＡＴＥがＣＳＴＡＴＥと異なり、かつＧＭＣＨの検知された温度がある閾値未満である場合、ＧＭＣＨのＣＲＣＬＫ信号にはユーザには見えない周波数スイッチ処理が行われる（ブロック５５０と５６０）。しかしながら、検知された温度が当該閾値より大きい場合、所望の移行がより低い周波数へのものであれば周波数スイッチ処理が行われる（ブロック５５０と５５５）。所望の処理がより高い周波数へのものであれば、周波数スイッチ処理は行われない（ブロック５６０と５６５）。
【００４４】
ＤＳＴＡＴＥがソフトウェアにより決定されると（例えば、ＥＮ＿ＨＷ＿ＴＲＡＮがデアサートされる）、ソフトウェアによる周波数変更信号の値（ＳＷＣＨＦＲＥＱ）は、ブロック５７０に示されるように、式（３）に等しくなる。
【００４５】
【数３】
2005524903.tif 000006
ただし、「＃」は、ＸＯＲ結果の反転を表す。
【００４６】
従って、ＧＭＣＨの検知された温度がある閾値未満である場合、ＧＭＣＨのＣＲＣＬＫ信号にはユーザには見えない周波数スイッチ処理が行われる（ブロック５５５と５７５）。しかしながら、検知された温度が当該閾値より大きい場合、所望の移行がより低い周波数へのものであれば周波数スイッチ処理が行われ、ＳＷＣＨＦＲＥＱがアサートされる（ブロック５８０）。所望の移行がより高い周波数へのものであれば、周波数スイッチ処理は行われない（ブロック５６５）。
ＩＶ．周波数スイッチユニットの一例となる動作
図８を参照するに、周波数スイッチユニットの動作を示すフローチャートの一実施例が示される。周波数スイッチユニットは、ＣＨ＿ＦＲＥＱ＿ＲＥＱ信号と共にＣＳＴＡＴＥとＤＳＴＡＴＥの値をモニタする（ブロック６００）。ＣＨ＿ＦＲＥＱ＿ＲＥＱ信号がアサートされ、かつＤＳＴＡＴＥがＣＳＴＡＴＥと等しくない場合、周波数スイッチユニットがイネーブルとされる（ブロック６０５と６１０）。ＣＨ＿ＦＲＥＱ＿ＲＥＱ信号はアサートされるが、ＤＳＴＡＴＥがＣＳＴＡＴＥに等しい場合、周波数スイッチ処理は最近行われたかもしれず、当該リクエストは無視される。
【００４７】
周波数スイッチユニットがイネーブルとされた後、ペンディングされているコマンドの処理が完了されるまで、レンダリングハードウェアが一時的に処理を継続すると仮定すると、レンダリングハードウェアをアイドル状態にするのを可能にするため特定のハードウェアの処理（例えば、コマンドパーサ（ｃｏｍｍａｎｄ  ｐａｒｓｅｒ）など）を停止することができる（ブロック６１５と６２０）。その後、ＣＲＣＬＫ信号がゲート処理される（ブロック６２５）。
【００４８】
ＣＲＣＬＫ信号がゲート処理された後、ＤＳＴＡＴＥの値をＣＳＴＡＴＥに割り当てることにより、周波数スイッチユニットはＣＳＴＡＴＥの値を更新する（ブロック６３０）。その後、ＣＲＣＬＫ信号はアンゲートされ、特定のハードウェアとレンダリングエンジンが処理を継続する（ブロック６３５と６４０）。これにより、周波数スイッチユニットが起動時に次の周波数変更リクエストに供することが可能となる。もちろん、ＣＲＣＬＫ信号をゲート処理する代わりに、１つのクロック周波数から他のクロック周波数へのスムーズな移行処理が、他の手段（例えば、Ｗａｉｔ状態）により実現されるかもしれない。ＣＲＣＬＫ信号がゲート処理されない場合、ペンディングされているコマンドの完了を待機する必要がないため、周波数スイッチ中もレンダリングが可能である。
【００４９】
図９を参照するに、表示に用いられる周波数及び/または電圧を制御するクロック発生器と共に動作するＧＭＣＨの第３実施例が示される。本実施例では、ＧＭＣＨ１４０は、例えば、グラフィックコア２００とメモリコントローラ２２５に異なる周波数のクロック信号を供給する同期化論理７１０と共に動作する単一のＰＬＬ回路７００を利用する。図示されるように、複数のクロック周波数レベル（ＣＬＫ）が同期化論理７１０によりサポートされる。
【００５０】
同期化論理７１０は、クロックライン上でのＰＬＬ回路のリロック（ｒｅ−ｌｏｃｋ）とクロックグリッチ（ｃｌｏｃｋ  ｇｌｉｔｃｈ）の必要なく進行中の周波数スイッチを可能にする。このような周波数スイッチは、高速周波数（Ｆｆ）を有するクロック信号（ＣＨＣＬＫ）からメモリクロック周波数（ＭＣＬＫ）へのスイッチ、あるいはメモリクロック周波数（ＭＣＬＫ）から低速周波数（Ｆｓ）を有するクロック信号（ＣＬＣＬＫ）へのスイッチにおいて起こる。一般に、同期化論理７１０は、クロスクロック付与された論理間のデータの決定性を有する転送を可能にする連続的なサンプリングスキームを提供する。
【００５１】
より詳細には、図１０に示されるように、一実施例による同期化論理７１０は、同期化制御論理８００と同期的同期化装置８５０から構成される。同期化制御論理８００は、複数のサンプリング回路８１１と８１２及び複数の選択要素８２０（例えば、マルチプレクサ）から構成される。選択要素は、サンプリング回路８１１と８１２にクロス接続されている。同期化装置８５０は、複数のフリップフロップ８６１と８６２及び複数の選択要素８７０〜８７２から構成される。
【００５２】
各サンプリング回路は、送信（ＸＭＩＴ）信号８４０と受信（ＲＣＶ）信号８４１を生成するため、２つの入力信号のエッジをサンプリングする。これは、ＸＭＩＴ信号８４０のアサート部分を計算するため、ＣＨＣＬＫ信号８３０と遅延したＭＣＬＫ信号８３１の両方のライジングエッジをサンプリングする第１サンプリング回路８１１により行われてもよい。ＲＣＶ信号８４１のデアサート部分を計算するため、ＣＨＣＬＫ信号８３０とＭＣＬＫ信号８３１のフォーリングエッジのサンプリングが利用されてもよい。同様に、第２サンプリング回路８１２は、ＭＣＬＫ信号８３１と遅延したＣＬＣＬＫ信号８３２の両方のエッジサンプリングを実行する。
【００５３】
デアサートされたＣＳＴＡＴＥの値に応答して、低速周波数（Ｆｓ）からＭＣＬＫ（Ｆｍ）（ただし、Ｆｍ＞Ｆｓ）に関する中間周波数への移行が行われる。本実施例では、この移行は、グラフィックコア２００をＣＬＣＬＫ８３２と同期化装置８５０のフリップフロップ８６１と８６２によるデータのラッチ処理を制御する同期化制御論理８００によりクロック付与することにより行われてもよい。第１のフリップフロップ８６１はＣＬＣＬＫ８３２によりクロック付与され、第２フリップフロップ８６２はＭＣＬＫ８３１によりクロック付与される。さらに、ＸＭＩＴ信号８４０とＲＣＶ信号８４１の両方により、グラフィックコア２００からメモリコントローラ２２５への選択要素８７０と８７１を介したデータの伝達が制御される。
【００５４】
高速周波数（Ｆｆ）からメモリコントローラ周波数（Ｆｍ）（ただし、Ｆｆ＞Ｆｍ）への移行に対して、当該移行は第１フリップフロップ８６１をＣＨＣＬＫにより、第２フリップフロップ８６２をＭＣＬＫ８３１によりクロック付与することにより行われてもよい。再び、ＸＭＩＴ制御信号８４０とＲＣＶ制御信号８４１が、グラフィックコア２００からメモリコントローラ２２５への選択要素８７０を介したデータの伝達を制御する。バイパス信号８８０は、データの第１フリップフロップ８６１のバイパスを可能にするよう選択要素８７２を制御する。
【００５５】
ＧＭＣＨに対して、複数のクロック領域が使用されている。クロック領域の周波数は、周波数間の良好な比率がなくインタフェースごとに異なる。異なる周波数領域で動作する論理間の決定的な送信を可能にするため、同期化論理７１０が開発されてきた。マルチプレクサがフリップフロップの前に配置される。同期化制御論理は、クロックエッジをサンプリングし、ＣＬＣＬＫとＭＣＬＫまたはＣＨＣＬＫとＭＣＬＫとの間のタイミングマージンに基づき（セットアップ時間を除く）、ＸＭＩＴ及びＲＣＶ信号を生成する。その後、同期化装置８１０がこれら制御信号を利用する。送信が許可されると、ＸＭＩＴ信号はアサートされ、データがマルチプレクサから第２フリップフロップにわたされる。同様のことが受信側についても成り立つ。
【００５６】
図１１を参照するに、ＧＭＣＨによる周波数及び電圧スロットリングを制御する計算装置のマシーン読み出し可能な媒体９００に格納されているソフトウェアモジュールの一実施例が示される。複数のソフトウェアモジュール９０５が、各種イベントに基づき周波数または電圧レベルを変更するよう構成されるかもしれない。
【００５７】
例えば、第１ソフトウェアモジュール９１０が、レンダリングクロック（ＣＲＣＬＫ）の周波数と、動作に基づきグラフィックコアに印加される電圧を増減するようにしてもよい（例えば、レンダリングエンジンのアイドル状態）。第２ソフトウェアモジュール９１５が、電池電力レベルと、計算装置がＡＣ電力コンセントに接続されているかに基づき、周波数と電圧を変更するようにしてもよい。計算装置の１以上の電池に対して計測された電力レベルの低減に応答して、レンダリングクロックの周波数を低下させる。第３ソフトウェアモジュール９２０は、計算装置の収納されている論理内部で測定されるか、あるいは計算装置の特定のハードウェア要素で測定される温度に基づき、周波数と電圧を変更するようにしてもよい。ユーザまたはメーカーの何れかにより設定される所定の温度制限を越える温度の読み取りに応答して、レンダリングクロックの周波数を低下させる。
【００５８】
図１２に示されるように、ＧＭＣＨに印加される周波数と電圧のスロットリングを通じた電力の節約に利用されるソフトウェアモジュール９０５の一例となる一般的な動作が示される。電力節約の選択されたポリシー９５０に基づき、イベント９５５（例えば、アクティブ状態/アイドル状態、電力または温度レベルなど）に応答して、ソフトウェア９０５が、ＧＭＣＨ１４０に印加される周波数及び電圧を変更するよう構成されてもよい。この変更は、「制約条件」９６０（例えば、予め選択された閾値パラメータなど）及び「要求」９６５に基づく。
【００５９】
本発明の一実施例では、計算装置の動作状態、すなわち、プロアクティブ（ｐｒｏａｃｔｉｖｅ）とリアクティブ（ｒｅａｃｔｉｖｅ）の２つの状態を制御するための一般的な２つのタイプのポリシーがある。プロアクティブポリシーは、１つのポリシーを他のものに優先させるものである。例えば、ユーザがパフォーマンスに対して最大電池寿命を優先することを所望する場合、ソフトウェアはＧＭＣＨから信号を受け取ることなく電力をプロアクティブに低下させる（例えば、レンダリングクロックの周波数を低下させるなど）。リアクティブポリシーは、ＡＣコネクタの削除やユーザ先行のバランス処理などのイベントに対する応答に関するものである。
【００６０】
これらのポリシーは、図１３及び図１４に示されるような計算装置により生成されるグラフィックユーザインタフェースを介しユーザにより設定可能である。図１３に示されるように、ユーザは、計算装置が電池により駆動されているか、あるいはＡＣ電力を受け取っているかに基づき、異なるポリシー１０１０を選択することができる。これらのポリシーには、例えば、最大電池寿命１０２０、最大パフォーマンス１０３０あるいは最大電池寿命またはパフォーマンスに傾倒する適用型ポリシーなどが含まれる。図１４に示されるように、グラフィックユーザインタフェース１０５０は、「リアクティブ」ポリシー状態１０６０及び/または「プロアクティブ」ポリシー状態１０７０に従って構成されてもよい。
【００６１】
本発明の一実施例では、適応型ポリシーは、処理された要求と要求のトレンドに基づき動作の移行を行うよう設計される。「要求」とは、イベントの瞬間的測定（例えば、アイドル状態、要求、温度など）と共にトレンド（例えば、１以上の以前のデータサンプルとイベントに付随する現在のデータサンプルの組み合わせなど）や履歴の平均に基づき計算されてもよい。さらに、適応型ポリシーには、移行を行うためのコストの計算（例えば、電力ワットごとに取得される１秒あたりのメガビット数など）が含まれてもよい。
【００６２】
本発明はいくつかの例示的な実施例に関して説明されてきたが、本説明は限定的な意味で解釈されるべきでない。これら例示的実施例の様々な変更と共に本発明の他の実施例が、添付されたクレームの趣旨及び範囲内に属するものとみなされる。
【図面の簡単な説明】
【００６３】
【図１】図１は、計算装置の内部で用いられる一実施例による論理である。
【図２】図２は、コア周波数及び/または電圧を制御するためクロック発生器と共に動作するグラフィックメモリコントローラハブ（ＧＭＣＨ）の第１実施例である。
【図３】図３は、表示に用いられる周波数及び/または電圧を制御するためクロック発生器と共に動作するグラフィックメモリコントローラハブ（ＧＭＣＨ）の第２実施例である。
【図４】図４は、ＧＭＣＨの動作制御回路、特に図２及び図３の状態シーケンサと動作表示回路の一実施例である。
【図５Ａ】図５Ａは、図４の動作制御回路により用いられるＩＳＰ（Ｉｄｌｅ  Ｓｔａｔｕｓ  Ｐａｇｅ）レジスタの一実施例である。
【図５Ｂ】図５Ｂは、図４の動作制御回路により用いられるＩＣＳ（Ｉｄｌｅ  Ｃｏｎｔｒｏｌ  ａｎｄ  Ｓｔａｔｕｓ）レジスタの一実施例である。
【図６】図６は、図４の動作制御回路のアイドル状態検出器の一実施例である。
【図７Ａ】図７Ａは、図４の動作制御回路による「高速」から「低速」への一般的な周波数スイッチ処理を概観するフローチャートの一実施例である。
【図７Ｂ】図７Ｂは、図４の動作制御回路による「高速」から「低速」への一般的な周波数スイッチ処理を概観するフローチャートの一実施例である。
【図８】図８は、図４の動作制御回路の周波数スイッチユニットの動作を示すフローチャートの一実施例である。
【図９】図９は、表示に用いられる周波数及び/または電圧を制御するためクロック発生器と共に動作するグラフィックメモリコントロールハブ（ＧＭＣＨ）の第３実施例である。
【図１０】図１０は、図９の同期化論理の一実施例である。
【図１１】図１１は、ＧＭＣＨによる周波数及び電圧のスロットリングを制御するソフトウェアモジュールの一実施例である。
【図１２】図１２は、図１１のソフトウェアモジュールの一例となる一般的動作の図である。
【図１３】図１３は、計算装置の動作制御を制御するためのプログラムポリシーに対する第１のグラフィックユーザインタフェースの一実施例である。
【図１４】図１４は、計算装置の動作制御を制御するためのプログラムポリシーに対する第２のグラフィックユーザインタフェースの一実施例である。
【図１】
2005524903.tif 000007
【図２】
2005524903.tif 000008
【図３】
2005524903.tif 000009
【図４】
2005524903.tif 000010
【図５Ａ】
2005524903.tif 000011
【図５Ｂ】
2005524903.tif 000012
【図６】
2005524903.tif 000013
【図７Ａ】
2005524903.tif 000014
【図７Ｂ】
2005524903.tif 000015
【図８】
2005524903.tif 000016
【図９】
2005524903.tif 000017
【図１０】
2005524903.tif 000018
【図１１】
2005524903.tif 000019
【図１２】
2005524903.tif 000020
【図１３】
2005524903.tif 000021
【図１４】
2005524903.tif 000022
【国際調査報告】
2005524903.tif 000023
2005524903.tif 000024
2005524903.tif 000025