"プロセッサにおいて、第1クロック信号周波数および第1動作電圧を有する第1クロックドメインと、第2クロック信号周波数および第2動作電圧を有する第2クロックドメインと、第3クロック信号周波数および第3動作電圧を有する第3クロックドメインと、から構成され、前記プロセッサは、前記第1および第2クロックドメインのクロック信号周波数および動作電圧をエネルギー遅延二乗積の比を最小にすることに従って制御し、前記比の分母は、第1時間間隔に対する前記エネルギー遅延二乗積であり、前記比の分子は、第2時間間隔に対する前記エネルギー遅延二乗積であり、前記第1時間間隔は前記第2時間間隔に先行しており、前記比が前記第1クロック信号周波数および前記第1動作電圧の複数のペアに対して同じである場合、最小の第1クロック信号周波数を有するペアを選択する、ことを特徴とするプロセッサ。前記第1クロックドメインは、命令デコーダ、リネーミングユニット、シーケンサ、リオーダバッファ、および分岐予測ユニットを含むことを特徴とする請求項1記載のプロセッサ。前記第2クロックドメインは、実行ユニット、レジスタファイル、および送出キューを含むことを特徴とする請求項1記載のプロセッサ。前記第3クロックドメインは、第2レベルキャッシュメモリを含むことを特徴とする請求項1記載のプロセッサ。各クロックドメインは、前記クロックドメイン間の動作を同期させるための先入れ先出しキューを含むことを特徴とする請求項1記載のプロセッサ。第4および第5動作電圧を有する第4および第5クロックドメインをさらに含み、前記第2、第4、および第5のクロックドメインは、クロスバを介して相互間で情報を通信することができることを特徴とする請求項1記載のプロセッサ。前記第4または第5クロックドメインは、第1レベルキャッシュメモリおよびメモリオーダバッファを含むことを特徴とする請求項6記載のプロセッサ。プロセッサによって実行される方法において、第1時間間隔に対して前記プロセッサのクロックドメインのエネルギーおよび遅延を決定する段階と、第2時間間隔に対して前記プロセッサのクロックドメインのエネルギーおよび遅延を決定する段階であって、前記第2時間間隔は、前記第1時間間隔よりも後である、段階と、前記プロセッサのロジックの第1グループにおける動作電圧およびクロック信号周波数を調整し、前記第2時間間隔に対するエネルギー遅延二乗積と、前記第1時間間隔に対するエネルギー遅延二乗積との比を最小にし、前記第1時間間隔に対する前記エネルギー遅延二乗積は計算され、かつ前記第2時間間隔に対する前記エネルギー遅延二乗積は推定され、前記比が前記クロック信号周波数および前記動作電圧の複数のペアに対して同じである場合、最小のクロック信号周波数を有するペアが選択される段階と、から構成されることを特徴とする方法。前記プロセッサのロジックの前記第1グループは、前記プロセッサ内の複数のクロックドメインの1つであることを特徴とする請求項8記載の方法。前記第1および第2時間間隔に対するエネルギーおよび遅延を決定する前記段階、および、動作電圧およびクロック信号周波数を調整する前記段階は、互いに独立して、前記複数のクロックドメインのそれぞれのために実行されることを特徴とする請求項9記載の方法。前記複数のクロックドメインは、参照クロック信号に依存することを特徴とする請求項10記載の方法。前記複数のクロックドメインは、少なくとも一部が、前記複数のクロックドメインに対応する複数の先入れ先出しFIFOキューを介して同期されることを特徴とする請求項11記載の方法。前記複数のクロックドメインは、フロントエンドドメイン、バックエンドドメイン、および第2レベルキャッシュメモリドメインを含むことを特徴とする請求項12記載の方法。前記フロントエンドドメインは、命令デコーダ、リネーミングユニット、シーケンサ、リオーダバッファ、および分岐予測ユニットを含むことを特徴とする請求項13記載の方法。前記バックエンドドメインは、実行ユニット、レジスタファイル、および送出キューを含むことを特徴とする請求項13記載の方法。前記バックエンドドメインは、メモリオーダバッファおよび第1レベルキャッシュメモリを含むことを特徴とする請求項13記載の方法。複数の命令を格納するためのメモリと、複数の独立したクロック周波数および独立した動作電圧を有する複数のクロックドメインを含むプロセッサであって、第1時間間隔に対応するエネルギー遅延二乗積と、第2時間間隔に対応するエネルギー遅延二乗積との比が前記複数のクロックドメインのそれぞれに対して最小になるように、前記複数の独立したクロック周波数および独立した動作電圧を調整し、前記第1時間間隔に対する前記エネルギー遅延二乗積は計算され、かつ前記第2時間間隔に対する前記エネルギー遅延二乗積は推定され、かつ前記比が前記独立したクロック信号周波数および前記独立した動作電圧の複数のペアに対して同じである場合、最小の独立したクロック信号周波数を有するペアを選択する、プロセッサと、から構成されることを特徴とするシステム。前記複数のクロックドメインは、複数のプロセッサパイプラインステージ内で複数の関数を実行するための複数の機能ユニットを含むことを特徴とする請求項17記載のシステム。前記複数のクロックドメインは、フロントエンドドメインを含み、前記フロントエンドドメインは、命令デコーダを含むことを特徴とする請求項18記載のシステム。前記複数のクロックドメインは、バックエンドドメインを含み、前記バックエンドドメインは、前記複数の命令を実行するための実行ユニットを含むことを特徴とする請求項19記載のシステム。前記複数のクロックドメインは、メモリドメインを含み、前記メモリドメインは、第2レベルキャッシュメモリを含むことを特徴とする請求項20記載のシステム。前記複数のクロックドメインは、バックエンドドメインを含み、前記バックエンドドメインは、メモリオーダリングバッファおよび第1レベルキャッシュメモリを含むことを特徴とする請求項19記載のシステム。前記複数のクロックドメインのそれぞれは、前記対応するドメインが前記データ上で動作することができるまで、前記複数の命令に関連する格納データを一時的に格納するための少なくとも1つの先入れ先出しキューを含むことを特徴とする請求項22記載のシステム。前記バックエンドドメインは、前記複数の命令を実行するための複数の実行ユニット、および、それを通って前記複数の実行ユニット間で情報を通信するための複数のクロスバを含むことを特徴とする請求項23記載のシステム。命令のセットがその上に格納された機械読取り可能な媒体であって、それがマシンによって実行されたとき、前記マシンは、第1時間間隔に対するプロセッサのクロックドメインのエネルギーおよび遅延を決定する段階と、第2時間間隔に対する前記プロセッサのクロックドメインのエネルギーおよび遅延を決定する段階であって、前記第2時間間隔は、前記第1時間間隔より後である、段階と、前記プロセッサのロジックの第1グループにおける動作電圧およびクロック信号周波数を調整し、その結果、前記第2時間間隔に対するエネルギー遅延二乗積と、前記第1時間間隔に対するエネルギー遅延二乗積との比が最小にされ、前記比が前記クロック信号周波数および前記動作電圧の複数のペアに対して同じである場合、最小のクロック信号周波数を有するペアが選択される段階と、を含む方法を実行することを特徴とする機械読取り可能な媒体。前記第2時間間隔に対する前記エネルギーと遅延との積と、前記第1時間間隔に対する前記エネルギーと遅延との積の比が最小にされることを特徴とする請求項25記載の機械読取り可能な媒体。前記プロセッサのロジックの第1グループは、前記プロセッサ内の複数のクロックドメインの1つであることを特徴とする請求項26記載の機械読取り可能な媒体。前記第1および第2時間間隔に対するエネルギーおよび遅延を決定する前記段階、および、動作電圧およびクロック信号周波数を調整する前記段階は、相互に独立して前記複数のクロックドメインのそれぞれに対して実行されることを特徴とする請求項27記載の機械読取り可能な媒体。本発明の実施例は、マイクロプロセッサのための周波数および電圧制御アーキテクチャに関する。より詳しくは、本発明の実施例は、マイクロプロセッサ内の複数のクロックドメインにクロックおよび動作電圧を分配し、かつ制御するための技術に関し、それによって、各ドメインの周波数および動作電圧を独立して制御することができる。図1は、本発明の一実施例に従ったクロックおよび電圧のドメインアーキテクチャを示す。図1は、3つの基本のクロックドメイン、すなわち、トレースキャッシュ102、分岐予測器103、リネーミングユニット104、解読ユニット105、シーケンサ106、フリーリスト107、リネーミングテーブル108、およびリオーダバッファROB109を有するフロントエンドドメイン101;メモリオーダバッファMOB111、第1レベルキャッシュ112、フィジカルレジスタファイル113、送出キュー114、バスインターフェイス116、および実行ユニット115を有するいくつかのバックエンドドメイン110;および、第2レベルキャッシュメモリ119を含むメモリドメインに分割されたプロセッサアーキテクチャ100を示す。一実施例において、バスインターフェイスは、フロントサイドバスインターフェイスであり、一方、他の実施例では、それはポイントツーポイントバスインターフェイスである。フロントエンドドメイン、バックエンドドメイン、およびメモリドメインのそれぞれは、多様なクロックドメイン間における情報の交換を同期させるために使用する少なくとも1つの先入れ先出しFIFOキュー117を有する。本発明の一実施例において、少なくともいくつかの同期キューは、プロセッサ内で他の機能を提供するキューであるが、他の実施例では、同期キューは、クロックドメイン制御アーキテクチャ専用である。クロックドメインに加えて、本発明の1つの実施例は、プロセッサを電圧ドメインに分割し、それらは互いに独立して規制することができる。少なくとも1つの実施例では、クロックドメインおよび電圧ドメインは同一であり、同じ機能ユニットを含むが、他の実施例では、クロックドメインおよび電圧ドメインは同一ではなく、異なる機能ユニットを含む。本発明の一実施例において、多様なクロックドメイン内の各クロックは、参照クロックと同期される。しかしながら、他の実施例では、各ドメインクロックは、他のドメインクロックに対して同期されない。さらに、少なくとも1つの実施例では、バックエンドドメインは、クロスバとして知られている信号によって相互に通信する。クロックおよび電圧のドメインの各々を制御するために、本発明の1つの実施例は、ある時間間隔における各ドメインのエネルギーおよび性能を決定することによって、各ドメインのエネルギーと遅延の2乗遅延二乗との積以下、エネルギー遅延二乗積という。を最小にすることを試みる。少なくとも1つの実施例において、エネルギーおよび性能は、第1時間間隔中にドメインのエネルギーおよび遅延を計算し、かつ、後続の時間間隔中にドメインのエネルギーおよび遅延を推定することによって、2つの時間間隔において決定される。その後、後続の時間間隔に対する周波数および電圧の対が、第1時間間隔に対するエネルギー遅延二乗積と、後続の時間間隔に対するエネルギー遅延二乗積との間の比を最小にすることによって選択される。例えば、本発明の一実施例では、間隔n1に対するプロセッサのエネルギーEは、次の方程式に従って推定される。上記の方程式中、EFE,nは時間間隔nにおけるフロントエンドドメインのエネルギーであり、En1は時間間隔n1におけるフロントエンドドメインのエネルギーであり、Vn1は時間間隔n1におけるフロントエンドドメインの動作電圧であり、Vnは時間間隔nにおけるフロントエンドドメインの動作電圧である。フロントエンドドメインの周波数の関数としてのプロセッサの性能は、付与された時間間隔に対するフロントエンドドメインのクロック周波数、命令がフロントエンドによってフェッチされる速度、およびマイクロオペレーション解読された命令が後続のパイプラインステージに転送される速度を用いて推定することができる。一実施例において、間隔がn1のときの性能推定Tn1は、次の方程式に従って推定される。上記の方程式において、pnはn番目の間隔に対するフロントエンドキュー内のエントリの平均数であり、bは分岐誤予測率である。値1bはフェッチキューがロードされる率のインディケータであり、また、1-pnはキュー内のエントリの平均数のインディケータである。Tnは間隔nにおけるフロントエンドの性能であり、fnは間隔nにおけるフロントエンドドメインの周波数であり、fn1は後続の時間間隔におけるフロントエンドドメインの周波数である。一旦プロセッサのエネルギーおよび性能が上記の方程式に従って計算されると、一実施例において、フロントエンドドメインの周波数および電圧は、各時間間隔nの終わりに、次の時間間隔n1のために調整することができる。一実施例において、周波数および電圧の選択は、次の比に従って行われる。間隔n1のために選択される周波数および電圧は、上記の比を最小にするものである。2またはそれ以上の対が同一の値Rになると判明した場合、一実施例では、その後、最小の周波数を有する対が選択される。その後、フロントエンドドメインの周波数および動作電圧は、間隔n1に対して適切な値に設定され、そのプロセスは次の間隔のために繰り返される。各バックエンド周波数および動作電圧は、各バックエンドドメインの動作電圧および周波数の関数としてプロセッサのエネルギーおよび性能を推定し、かつ、エネルギー性能積の間の比を最小にする周波数および動作電圧を間隔n1と間隔nとの間で選択することによって、フロントエンドと同様の方法で推定される。一実施例において、プロセッサのエネルギーEnは、バックエンドドメインのエネルギーEBE,nの関数として、次の方程式に従って推定される。各バックエンドドメインの周波数の関数としてのプロセッサの性能は、次の方程式に従って各間隔n1において計算することができる。上記の方程式において、mnは、間隔nに対してコミットされたマイクロオペレーションの数で分割された第2レベルのキャッシュミスの数であり、Lq,nは、実行ユニットを含む全てのバックエンドドメインのための全てのマイクロオペレーション送出キューの平均利用率である。一旦、プロセッサのエネルギーおよび性能が上記の方程式に従って計算されると、一実施例では、バックエンドドメイン周波数および電圧は、各時間間隔の終わりに、次の時間間隔n1のために調整することができる。一実施例において、周波数および電圧の選択は、次の比率に従って行われる。間隔n1に対して選択される周波数および電圧は、上記の比を最小にするものである。2またはそれ以上の対が同一の値Rになることが判明した場合、一実施例では最小の周波数を有する対が選択される。その後、バックエンドドメインの周波数および動作電圧は、間隔n1に対して適切な値に設定され、そのプロセスは次の間隔に対して繰り返される。図2は、本発明の一実施例が用いられたフロントサイドバスFSBコンピュータシステムを示す。プロセッサ205は、レベル1L1キャッシュメモリ210およびメインメモリ215からのデータにアクセスする。本発明の他の実施例では、キャッシュメモリは、レベル2L2キャッシュまたはコンピュータシステムのメモリの階層内の他のメモリであってもよい。さらに、いくつかの実施例では、図2のコンピュータシステムは、L1キャッシュおよびL2キャッシュの両方を含み、それらは、コヒーレンシデータがL1キャッシュとL2キャッシュとの間で共有される包括的なキャッシュ階層を含む。本発明の1つの実施例206が、図2のプロセッサ内に示される。しかしながら、本発明の他の実施例は、個別のバスエージェントとしてシステム内の他の装置内で実行されてもよく、あるいは、ハードウェアまたはソフトウェア、またはそれらの組合せでシステムにわたっ分配されてもよい。メインメモリは、ダイナミックランダムアクセスメモリDRAM、ハードディスクドライブHDD220、または、多様な格納装置および技術を含むネットワークインターフェイス230を介してコンピュータシステムから遠隔に位置するメモリソースのような多様なメモリソース内で実行される。キャッシュメモリは、プロセッサ内、またはプロセッサのローカルバス207上のようなプロセッサのすぐ近くにある。さらに、キャッシュメモリは、シックストランジスタ6Tセルのような比較的高速のメモリセル、またはアクセス速度がほぼ同じか、より速い他のメモリセルを含んでもよい。図2のコンピュータシステムは、マイクロプロセッサのようなバスエージェントのポイントツーポイントPtPネットワークであり、それは、PtPネットワーク上の各エージェントに専用のバス信号によって通信する。それとともに、あるいは少なくともそれと関連して、各バスエージェントは、少なくとも本発明の1つの実施例206であり、格納動作はバスエージェント間の迅速な方法で促進することができる。図3は、ポイントツーポイントPtP構成内に配置されたコンピュータシステムを示す。特に、図3は、プロセッサ、メモリ、および入力/出力装置が、複数のポイントツーポイントインターフェイスによって相互接続されたシステムを示す。図3のシステムは、さらに、いくつかのプロセッサを含むが、明瞭化のためにプロセッサ370,380の2つのみが示される。プロセッサ370,380は、それぞれ、メモリ22,24に接続するためのローカルメモリコントローラハブMCH372,382を含む。プロセッサ370,380は、PtPインターフェイス回路378,388を使用して、ポイントツーポイントPtPインターフェイス350を介してデータを交換する。プロセッサ370,380は、それぞれ、ポイントツーポイントインターフェイス回路376,394,386,398を使用して、個々のPtPインターフェイス352,354を介してチップセット390とデータを交換する。チップセット390は、さらに、高性能グラフィックスインターフェイス339を介して高性能グラフィックス回路338とデータを交換する。本発明の少なくとも1つの実施例は、図3のPtPバスエージェントの各々内のPtPインターフェイス回路内に配置される。しかしながら、本発明の他の実施例は、図3のシステム内の他の回路、論理ユニット、または装置内に存在してもよい。さらに、本発明の他の実施例は、いくつかの回路、論理ユニット、または図3に図示された装置の全体にわたって分配されてもよい。本発明は、例示としての実施例に関して記述されたが、これらの記述は、制限的な意味に解することを意図していない。他の実施例と同様に、本実施例の多様な修正は、本発明に関連する当業者にとって明らかであるが、本発明の精神および範囲内であると認められる。"