説明

周波数および電圧のスケーリング・アーキテクチャ

【課題】マイクロプロセッサを複数のクロック・ドメインに分割し、それらの消費する電力を制御する技術を提供する。
【解決手段】マイクロプロセッサの少なくとも1つのクロック・ドメインの周波数および動作電圧をスケールするための装置および方法である。プロセッサの各クロック・ドメインのクロック信号周波数および動作電圧は、第1および第2時間間隔に対するエネルギー遅延二乗積の比を最小にするクロック信号周波数および動作電圧のペアが選択される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施例は、マイクロプロセッサ・アーキテクチャの分野に関する。より詳しくは、本発明の実施例は、マイクロプロセッサ内の多様な機能ユニットの周波数および動作電圧をスケールするための技術に関する。
【背景技術】
【0002】
マイクロプロセッサの性能への影響を最小限にする一方で、マイクロプロセッサ内での電力の低減を促進するために、プロセッサのクロック周波数を低減させるような先行技術が開発されてきた。これらの先行技術には、プロセッサを多様なクロック・ドメインに分割するアーキテクチャがある。例えば、1つの先行技術は、整数パイプラインのための個別クロック・ドメイン、浮動小数点パイプラインのための個別クロック・ドメイン、およびメモリ・アクセス・ロジックのための個別クロック・ドメインを有する。
【0003】
個々のクロック・ドメインを各パイプラインおよび/またはメモリ・アクセス・クラスタのために使用することにより、各クロック・ドメインを制御するために必要とされる回路の総量が、プロセッサの性能を維持することへの挑戦となる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際公開2004/066092号公報
【特許文献2】国際公開2003/021426号公報
【特許文献3】特開2003−006179号公報
【非特許文献】
【0005】
【非特許文献1】千代延昭宏,“命令の振る舞いを利用した消費電力削減に関する検討”,情報処理学会研究報告,社団法人情報処理学会,2004年7月31日,第2004巻,第80号,p.171
【0006】
実施例および本発明は、添付図面の図中に制限ではなく例示として示され、そこでは、同様の参照番号は同様の要素を示す。
【図面の簡単な説明】
【0007】
【図1】本発明の一実施例に従ったクロックおよび電圧スケーリング・アーキテクチャを示す。
【図2】本発明の一実施例が使用されたフロント・サイド・バス・コンピュータ・システムを示す。
【図3】本発明の一実施例が使用されたポイント・ツー・ポイント・コンピュータ・システムを示す。
【発明を実施するための形態】
【0008】
本発明の実施例は、マイクロプロセッサのための周波数および電圧制御アーキテクチャに関する。より詳しくは、本発明の実施例は、マイクロプロセッサ内の複数のクロック・ドメインにクロックおよび動作電圧を分配し、かつ制御するための技術に関し、それによって、各ドメインの周波数および動作電圧を独立して制御することができる。
【0009】
図1は、本発明の一実施例に従ったクロックおよび電圧のドメイン・アーキテクチャを示す。図1は、3つの基本のクロック・ドメイン、すなわち、トレース・キャッシュ102、分岐予測器103、リネーミング・ユニット104、解読ユニット105、シーケンサ106、フリー・リスト107、リネーミング・テーブル108、およびリオーダ・バッファ(ROB)109を有するフロント・エンド・ドメイン101;メモリ・オーダ・バッファ(MOB)111、第1レベル・キャッシュ112、フィジカル・レジスタ・ファイル113、送出キュー114、バス・インターフェイス116、および実行ユニット115を有するいくつかのバック・エンド・ドメイン110;および、第2レベル・キャッシュ・メモリ119を含むメモリ・ドメインに分割されたプロセッサ・アーキテクチャ100を示す。一実施例において、バス・インターフェイスは、フロント・サイド・バス・インターフェイスであり、一方、他の実施例では、それはポイント・ツー・ポイント・バス・インターフェイスである。
【0010】
フロント・エンド・ドメイン、バック・エンド・ドメイン、およびメモリ・ドメインのそれぞれは、多様なクロック・ドメイン間における情報の交換を同期させるために使用する少なくとも1つの先入れ先出し(FIFO)キュー117を有する。本発明の一実施例において、少なくともいくつかの同期キューは、プロセッサ内で他の機能を提供するキューであるが、他の実施例では、同期キューは、クロック・ドメイン制御アーキテクチャ専用である。クロック・ドメインに加えて、本発明の1つの実施例は、プロセッサを電圧ドメインに分割し、それらは互いに独立して規制することができる。少なくとも1つの実施例では、クロック・ドメインおよび電圧ドメインは同一であり、同じ機能ユニットを含むが、他の実施例では、クロック・ドメインおよび電圧ドメインは同一ではなく、異なる機能ユニットを含む。
【0011】
本発明の一実施例において、多様なクロック・ドメイン内の各クロックは、参照クロックと同期される。しかしながら、他の実施例では、各ドメイン・クロックは、他のドメイン・クロックに対して同期されない。さらに、少なくとも1つの実施例では、バック・エンド・ドメインは、「クロスバ」として知られている信号によって相互に通信する。
【0012】
クロックおよび電圧のドメインの各々を制御するために、本発明の1つの実施例は、ある時間間隔における各ドメインのエネルギーおよび性能を決定することによって、各ドメインのエネルギーと遅延の2乗(「遅延二乗」)との積(以下、「エネルギー遅延二乗積」という。)を最小にすることを試みる。少なくとも1つの実施例において、エネルギーおよび性能は、第1時間間隔中にドメインのエネルギーおよび遅延を計算し、かつ、後続の時間間隔中にドメインのエネルギーおよび遅延を推定することによって、2つの時間間隔において決定される。その後、後続の時間間隔に対する周波数および電圧の対が、第1時間間隔に対するエネルギー遅延二乗積と、後続の時間間隔に対するエネルギー遅延二乗積との間の比を最小にすることによって選択される。
【0013】
例えば、本発明の一実施例では、間隔n+1に対するプロセッサのエネルギー「E」は、次の方程式に従って推定される。
【数1】

【0014】
上記の方程式中、「EFE,n」は時間間隔「n」におけるフロント・エンド・ドメインのエネルギーであり、「En+1」は時間間隔n+1におけるフロント・エンド・ドメインのエネルギーであり、「Vn+1」は時間間隔n+1におけるフロント・エンド・ドメインの動作電圧であり、「V」は時間間隔nにおけるフロント・エンド・ドメインの動作電圧である。
【0015】
フロント・エンド・ドメインの周波数の関数としてのプロセッサの性能は、付与された時間間隔に対するフロント・エンド・ドメインのクロック周波数、命令がフロント・エンドによってフェッチされる速度、およびマイクロオペレーション(解読された命令)が後続のパイプライン・ステージに転送される速度を用いて推定することができる。一実施例において、間隔がn+1のときの性能推定「Tn+1」は、次の方程式に従って推定される。
【数2】

【0016】
上記の方程式において、「p」はn番目の間隔に対するフロント・エンド・キュー内のエントリの平均数であり、「b」は分岐誤予測率である。値「1+b」はフェッチ・キューがロードされる率のインディケータであり、また、「1−p」はキュー内のエントリの平均数のインディケータである。「T」は間隔「n」におけるフロント・エンドの性能であり、「f」は間隔nにおけるフロント・エンド・ドメインの周波数であり、「fn+1」は後続の時間間隔におけるフロント・エンド・ドメインの周波数である。
【0017】
一旦プロセッサのエネルギーおよび性能が上記の方程式に従って計算されると、一実施例において、フロント・エンド・ドメインの周波数および電圧は、各時間間隔nの終わりに、次の時間間隔n+1のために調整することができる。一実施例において、周波数および電圧の選択は、次の比に従って行われる。
【数3】

【0018】
間隔n+1のために選択される周波数および電圧は、上記の比を最小にするものである。2またはそれ以上の対が同一の値Rになると判明した場合、一実施例では、その後、最小の周波数を有する対が選択される。その後、フロント・エンド・ドメインの周波数および動作電圧は、間隔n+1に対して適切な値に設定され、そのプロセスは次の間隔のために繰り返される。
【0019】
各バック・エンド周波数および動作電圧は、各バック・エンド・ドメインの動作電圧および周波数の関数としてプロセッサのエネルギーおよび性能を推定し、かつ、エネルギー性能積の間の比を最小にする周波数および動作電圧を間隔n+1と間隔nとの間で選択することによって、フロント・エンドと同様の方法で推定される。一実施例において、プロセッサのエネルギー「E」は、バック・エンド・ドメインのエネルギー「EBE,n」の関数として、次の方程式に従って推定される。
【数4】

【0020】
各バック・エンド・ドメインの周波数の関数としてのプロセッサの性能は、次の方程式に従って各間隔n+1において計算することができる。
【数5】

【0021】
上記の方程式において、mは、間隔nに対してコミットされたマイクロ・オペレーションの数で分割された第2レベルのキャッシュ・ミスの数であり、Lq,nは、実行ユニットを含む全てのバック・エンド・ドメインのための全てのマイクロ・オペレーション送出キューの平均利用率である。一旦、プロセッサのエネルギーおよび性能が上記の方程式に従って計算されると、一実施例では、バック・エンド・ドメイン周波数および電圧は、各時間間隔の終わりに、次の時間間隔n+1のために調整することができる。一実施例において、周波数および電圧の選択は、次の比率に従って行われる。
【数6】

【0022】
間隔n+1に対して選択される周波数および電圧は、上記の比を最小にするものである。2またはそれ以上の対が同一の値Rになることが判明した場合、一実施例では最小の周波数を有する対が選択される。その後、バック・エンド・ドメインの周波数および動作電圧は、間隔n+1に対して適切な値に設定され、そのプロセスは次の間隔に対して繰り返される。
【0023】
図2は、本発明の一実施例が用いられたフロント・サイド・バス(FSB)コンピュータ・システムを示す。プロセッサ205は、レベル1(L1)キャッシュ・メモリ210およびメイン・メモリ215からのデータにアクセスする。本発明の他の実施例では、キャッシュ・メモリは、レベル2(L2)キャッシュまたはコンピュータ・システムのメモリの階層内の他のメモリであってもよい。さらに、いくつかの実施例では、図2のコンピュータ・システムは、L1キャッシュおよびL2キャッシュの両方を含み、それらは、コヒーレンシ・データがL1キャッシュとL2キャッシュとの間で共有される包括的なキャッシュ階層を含む。
【0024】
本発明の1つの実施例206が、図2のプロセッサ内に示される。しかしながら、本発明の他の実施例は、個別のバス・エージェントとしてシステム内の他の装置内で実行されてもよく、あるいは、ハードウェアまたはソフトウェア、またはそれらの組合せでシステムにわたっ分配されてもよい。
【0025】
メイン・メモリは、ダイナミック・ランダム・アクセス・メモリ(DRAM)、ハード・ディスク・ドライブ(HDD)220、または、多様な格納装置および技術を含むネットワーク・インターフェイス230を介してコンピュータ・システムから遠隔に位置するメモリ・ソースのような多様なメモリ・ソース内で実行される。キャッシュ・メモリは、プロセッサ内、またはプロセッサのローカル・バス207上のようなプロセッサのすぐ近くにある。さらに、キャッシュ・メモリは、シックス・トランジスタ(6T)セルのような比較的高速のメモリ・セル、またはアクセス速度がほぼ同じか、より速い他のメモリ・セルを含んでもよい。
【0026】
図2のコンピュータ・システムは、マイクロプロセッサのようなバス・エージェントのポイント・ツー・ポイント(PtP)ネットワークであり、それは、PtPネットワーク上の各エージェントに専用のバス信号によって通信する。それとともに、あるいは少なくともそれと関連して、各バス・エージェントは、少なくとも本発明の1つの実施例206であり、格納動作はバス・エージェント間の迅速な方法で促進することができる。
【0027】
図3は、ポイント・ツー・ポイント(PtP)構成内に配置されたコンピュータ・システムを示す。特に、図3は、プロセッサ、メモリ、および入力/出力装置が、複数のポイント・ツー・ポイント・インターフェイスによって相互接続されたシステムを示す。
【0028】
図3のシステムは、さらに、いくつかのプロセッサを含むが、明瞭化のためにプロセッサ370,380の2つのみが示される。プロセッサ370,380は、それぞれ、メモリ22,24に接続するためのローカル・メモリ・コントローラ・ハブ(MCH)372,382を含む。プロセッサ370,380は、PtPインターフェイス回路378,388を使用して、ポイント・ツー・ポイント(PtP)インターフェイス350を介してデータを交換する。プロセッサ370,380は、それぞれ、ポイント・ツー・ポイント・インターフェイス回路376,394,386,398を使用して、個々のPtPインターフェイス352,354を介してチップセット390とデータを交換する。チップセット390は、さらに、高性能グラフィックス・インターフェイス339を介して高性能グラフィックス回路338とデータを交換する。
【0029】
本発明の少なくとも1つの実施例は、図3のPtPバス・エージェントの各々内のPtPインターフェイス回路内に配置される。しかしながら、本発明の他の実施例は、図3のシステム内の他の回路、論理ユニット、または装置内に存在してもよい。さらに、本発明の他の実施例は、いくつかの回路、論理ユニット、または図3に図示された装置の全体にわたって分配されてもよい。
【0030】
本発明は、例示としての実施例に関して記述されたが、これらの記述は、制限的な意味に解することを意図していない。他の実施例と同様に、本実施例の多様な修正は、本発明に関連する当業者にとって明らかであるが、本発明の精神および範囲内であると認められる。
【符号の説明】
【0031】
100 プロセッサ・アーキテクチャ
101 フロント・エンド・ドメイン
102 トレース・キャッシュ
103 分岐予測器
104 リネーミング・ユニット
105 解読ユニット
106 シーケンサ
107 フリー・リスト
108 リネーミング・テーブル
109 オーダ・バッファ(ROB)
110 バック・エンド・ドメイン
111 メモリ・オーダ・バッファ(MOB)
112 第1レベル・キャッシュ
113 フィジカル・レジスタ・ファイル
116 送出キュー114、バス・インターフェイス
115 実行ユニット
119 第2レベル・キャッシュ・メモリ
205 プロセッサ
207 ローカル・バス
210 レベル1(L1)キャッシュ・メモリ
215 メイン・メモリ

【特許請求の範囲】
【請求項1】
プロセッサにおいて、
第1クロック信号周波数および第1動作電圧を有する第1クロック・ドメインと、
第2クロック信号周波数および第2動作電圧を有する第2クロック・ドメインと、
第3クロック信号周波数および第3動作電圧を有する第3クロック・ドメインと、から構成され、
前記プロセッサは、前記第1および第2クロック・ドメインのクロック信号周波数および動作電圧をエネルギー遅延二乗積の比を最小にすることに従って制御し、前記比の分母は、第1時間間隔に対する前記エネルギー遅延二乗積であり、前記比の分子は、第2時間間隔に対する前記エネルギー遅延二乗積であり、前記第1時間間隔は前記第2時間間隔に先行しており、前記比が前記第1クロック信号周波数および前記第1動作電圧の複数のペアに対して同じである場合、最小の第1クロック信号周波数を有するペアを選択する、
ことを特徴とするプロセッサ。
【請求項2】
前記第1クロック・ドメインは、命令デコーダ、リネーミング・ユニット、シーケンサ、リオーダ・バッファ、および分岐予測ユニットを含むことを特徴とする請求項1記載のプロセッサ。
【請求項3】
前記第2クロック・ドメインは、実行ユニット、レジスタ・ファイル、および送出キューを含むことを特徴とする請求項1記載のプロセッサ。
【請求項4】
前記第3クロック・ドメインは、第2レベル・キャッシュ・メモリを含むことを特徴とする請求項1記載のプロセッサ。
【請求項5】
各クロック・ドメインは、前記クロック・ドメイン間の動作を同期させるための先入れ先出しキューを含むことを特徴とする請求項1記載のプロセッサ。
【請求項6】
第4および第5動作電圧を有する第4および第5クロック・ドメインをさらに含み、前記第2、第4、および第5のクロック・ドメインは、クロスバを介して相互間で情報を通信することができることを特徴とする請求項1記載のプロセッサ。
【請求項7】
前記第4または第5クロック・ドメインは、第1レベル・キャッシュ・メモリおよびメモリ・オーダ・バッファを含むことを特徴とする請求項6記載のプロセッサ。
【請求項8】
プロセッサによって実行される方法において、
第1時間間隔に対して前記プロセッサのクロック・ドメインのエネルギーおよび遅延を決定する段階と、
第2時間間隔に対して前記プロセッサのクロック・ドメインのエネルギーおよび遅延を決定する段階であって、前記第2時間間隔は、前記第1時間間隔よりも後である、段階と、
前記プロセッサのロジックの第1グループにおける動作電圧およびクロック信号周波数を調整し、前記第2時間間隔に対するエネルギー遅延二乗積と、前記第1時間間隔に対するエネルギー遅延二乗積との比を最小にし、前記第1時間間隔に対する前記エネルギー遅延二乗積は計算され、かつ前記第2時間間隔に対する前記エネルギー遅延二乗積は推定され、前記比が前記クロック信号周波数および前記動作電圧の複数のペアに対して同じである場合、最小のクロック信号周波数を有するペアが選択される段階と、
から構成されることを特徴とする方法。
【請求項9】
前記プロセッサのロジックの前記第1グループは、前記プロセッサ内の複数のクロック・ドメインの1つであることを特徴とする請求項8記載の方法。
【請求項10】
前記第1および第2時間間隔に対するエネルギーおよび遅延を決定する前記段階、および、動作電圧およびクロック信号周波数を調整する前記段階は、互いに独立して、前記複数のクロック・ドメインのそれぞれのために実行されることを特徴とする請求項9記載の方法。
【請求項11】
前記複数のクロック・ドメインは、参照クロック信号に依存することを特徴とする請求項10記載の方法。
【請求項12】
前記複数のクロック・ドメインは、少なくとも一部が、前記複数のクロック・ドメインに対応する複数の先入れ先出し(FIFO)キューを介して同期されることを特徴とする請求項11記載の方法。
【請求項13】
前記複数のクロック・ドメインは、フロント・エンド・ドメイン、バック・エンド・ドメイン、および第2レベル・キャッシュ・メモリ・ドメインを含むことを特徴とする請求項12記載の方法。
【請求項14】
前記フロント・エンド・ドメインは、命令デコーダ、リネーミング・ユニット、シーケンサ、リオーダ・バッファ、および分岐予測ユニットを含むことを特徴とする請求項13記載の方法。
【請求項15】
前記バック・エンド・ドメインは、実行ユニット、レジスタ・ファイル、および送出キューを含むことを特徴とする請求項13記載の方法。
【請求項16】
前記バック・エンド・ドメインは、メモリ・オーダ・バッファおよび第1レベル・キャッシュ・メモリを含むことを特徴とする請求項13記載の方法。
【請求項17】
複数の命令を格納するためのメモリと、
複数の独立したクロック周波数および独立した動作電圧を有する複数のクロック・ドメインを含むプロセッサであって、第1時間間隔に対応するエネルギー遅延二乗積と、第2時間間隔に対応するエネルギー遅延二乗積との比が前記複数のクロック・ドメインのそれぞれに対して最小になるように、前記複数の独立したクロック周波数および独立した動作電圧を調整し、前記第1時間間隔に対する前記エネルギー遅延二乗積は計算され、かつ前記第2時間間隔に対する前記エネルギー遅延二乗積は推定され、かつ前記比が前記独立したクロック信号周波数および前記独立した動作電圧の複数のペアに対して同じである場合、最小の独立したクロック信号周波数を有するペアを選択する、プロセッサと、
から構成されることを特徴とするシステム。
【請求項18】
前記複数のクロック・ドメインは、複数のプロセッサ・パイプライン・ステージ内で複数の関数を実行するための複数の機能ユニットを含むことを特徴とする請求項17記載のシステム。
【請求項19】
前記複数のクロック・ドメインは、フロント・エンド・ドメインを含み、前記フロント・エンド・ドメインは、命令デコーダを含むことを特徴とする請求項18記載のシステム。
【請求項20】
前記複数のクロック・ドメインは、バック・エンド・ドメインを含み、前記バック・エンド・ドメインは、前記複数の命令を実行するための実行ユニットを含むことを特徴とする請求項19記載のシステム。
【請求項21】
前記複数のクロック・ドメインは、メモリ・ドメインを含み、前記メモリ・ドメインは、第2レベル・キャッシュ・メモリを含むことを特徴とする請求項20記載のシステム。
【請求項22】
前記複数のクロック・ドメインは、バック・エンド・ドメインを含み、前記バック・エンド・ドメインは、メモリ・オーダリング・バッファおよび第1レベル・キャッシュ・メモリを含むことを特徴とする請求項19記載のシステム。
【請求項23】
前記複数のクロック・ドメインのそれぞれは、前記対応するドメインが前記データ上で動作することができるまで、前記複数の命令に関連する格納データを一時的に格納するための少なくとも1つの先入れ先出しキューを含むことを特徴とする請求項22記載のシステム。
【請求項24】
前記バック・エンド・ドメインは、前記複数の命令を実行するための複数の実行ユニット、および、それを通って前記複数の実行ユニット間で情報を通信するための複数のクロスバを含むことを特徴とする請求項23記載のシステム。
【請求項25】
命令のセットがその上に格納された機械読取り可能な媒体であって、それがマシンによって実行されたとき、前記マシンは、
第1時間間隔に対するプロセッサのクロック・ドメインのエネルギーおよび遅延を決定する段階と、
第2時間間隔に対する前記プロセッサのクロック・ドメインのエネルギーおよび遅延を決定する段階であって、前記第2時間間隔は、前記第1時間間隔より後である、段階と、
前記プロセッサのロジックの第1グループにおける動作電圧およびクロック信号周波数を調整し、その結果、前記第2時間間隔に対するエネルギー遅延二乗積と、前記第1時間間隔に対するエネルギー遅延二乗積との比が最小にされ、前記比が前記クロック信号周波数および前記動作電圧の複数のペアに対して同じである場合、最小のクロック信号周波数を有するペアが選択される段階と、
を含む方法を実行することを特徴とする機械読取り可能な媒体。
【請求項26】
前記第2時間間隔に対する前記エネルギーと遅延との積と、前記第1時間間隔に対する前記エネルギーと遅延との積の比が最小にされることを特徴とする請求項25記載の機械読取り可能な媒体。
【請求項27】
前記プロセッサのロジックの第1グループは、前記プロセッサ内の複数のクロック・ドメインの1つであることを特徴とする請求項26記載の機械読取り可能な媒体。
【請求項28】
前記第1および第2時間間隔に対するエネルギーおよび遅延を決定する前記段階、および、動作電圧およびクロック信号周波数を調整する前記段階は、相互に独立して前記複数のクロック・ドメインのそれぞれに対して実行されることを特徴とする請求項27記載の機械読取り可能な媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2012−9061(P2012−9061A)
【公開日】平成24年1月12日(2012.1.12)
【国際特許分類】
【出願番号】特願2011−188311(P2011−188311)
【出願日】平成23年8月31日(2011.8.31)
【分割の表示】特願2007−533796(P2007−533796)の分割
【原出願日】平成17年11月14日(2005.11.14)
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】