(57)【要約】指定された電圧レンジで装置に電力を伝送するためのシステムが開示される。本システムは、該装置に電力を伝送するための電力伝送回路網を含んでおり、応答関数により特徴付けられる。電流計算ユニットは、連続するクロックサイクルについて装置で得られた一連の電流の振幅を表す値を記憶し、これらの値を電流−電圧計算ユニットに供給する。この電流−電圧計算ユニットは、応答関数から導出された係数に従って電流の振幅をフィルタリングし、該装置で見られる電圧の推定値を供給する。該装置の動作は、この推定された電圧が指定されたレンジ外にある場合に調節される。
2006504151.tif 000002
【特許請求の範囲】
【請求項１】
応答関数により特徴付けられ、指定された電圧レンジで電力を供給する電力伝送回路網と、
該回路網から電力を得る装置とを備え、
該装置は、
連続するクロックサイクルで該装置により得られる一連の電流の振幅を表す値を記憶する第一のシフトレジスタと、
該電力伝送回路網の該応答関数を反映するために重み付けされる入力を有し、該一連の電流の振幅の値に関する積和を演算して該装置に供給される電圧を推定する加算器と、
を含むシステム。
【請求項２】
該装置は、該推定された電圧を電圧閾値と比較する電圧比較器をさらに備える、
請求項１記載のシステム。
【請求項３】
該推定された電圧が該電圧閾値に到達するのに応じて該装置の動作を調節するスロットルユニットをさらに備える、
請求項２記載のシステム。
【請求項４】
該装置はプロセッサであり、該プロセッサは、
命令を処理する１以上のユニットを含む実行パイプラインと、
該実行パイプラインに命令を伝達する取出しユニットと、
現在実行している命令によるユニットの使用に応答して、該１以上のユニットへの電力の伝送を制御するクロックゲーティングユニットと、
をさらに備える請求項３記載のシステム。
【請求項５】
該スロットルユニットは、該推定された電圧が高い方の電圧閾値を超えるのに応答して、該クロックゲーティングユニットが該１以上のユニットへの電力をゲートオフするのを防止する、
請求項４記載のシステム。
【請求項６】
該スロットルユニットは、該推定された電圧が低い方の閾値を下回るのに応答して、低減されたレートで該実行パイプラインに命令を伝達するように該取出しユニットに指示する、
請求項４記載のシステム。
【請求項７】
該電力伝送回路網の応答関数は、ｎ個の応答関数の振幅により表され、該加算器の重み付けされた入力は、該ｎ個の応答関数の振幅に比例して重み付けされるｎ個の入力を備える、
請求項１記載のシステム。
【請求項８】
該電力伝送回路網の応答関数は、一組の再帰係数により表され、該加算器の重み付けされた入力は、該再帰係数に比例して重み付けされる、
請求項１記載のシステム。
【請求項９】
該装置は、該加算器により供給された一連の推定された電圧を追跡し、該一連の推定された電圧を該加算器の選択された入力にフィードバックする第二のシフトレジスタをさらに備える、
請求項８記載のシステム。
【請求項１０】
該再帰係数は、一組の電流係数と一組の電圧係数を含む、
請求項９記載のシステム。
【請求項１１】
該加算器の入力は、第一のシフトレジスタの出力に接続される第一の組の入力と第二のシフトレジスタの出力に接続される第二の組の入力とを含み、該第一の組の入力は、電流係数に比例して重み付けされ、該第二の組の入力は、電圧係数に比例して重み付けされる、
請求項１記載のシステム。
【請求項１２】
応答関数により特徴付けられ、指定された電圧レンジで電力を供給する電力伝送回路網と、
命令を実行し、実行する命令に応答して該回路網から電力を得るプロセッサコアと、
該プロセッサコアで見られる電圧を推定するためのモニタユニットとを備え、
該モニタユニットは、
連続するクロックサイクルで該プロセッサコアにより得られた一連の電流値を追跡する電流計算ユニットと、
該プロセッサコアで見られる推定される電圧を供給するために、該応答関数に従って該一連の電流値をフィルタリングする電流−電圧計算ユニットと、
を含むシステム。
【請求項１３】
該モニタユニットは、
該推定された電圧が指定されたレンジ内にあるかを判定する閾値コンパレータと、
該推定された電圧が該指定されたレンジ内にないことに応答して該プロセッサコアの動作を調節するスロットルユニットと、
をさらに備える請求項１２記載のシステム。
【請求項１４】
該プロセッサコアは、１以上の命令に応答して選択的にアクチベートされる複数のパイプラインユニットを含み、該複数のパイプラインユニットのそれぞれは、該パイプラインユニットが所与のクロックサイクルでアクチベートされた場合に、該パイプラインユニットに電流信号を供給するための関連するゲートユニットを有する、
請求項１３記載のシステム。
【請求項１５】
該電流計算ユニットは、一連のクロックサイクルの間の電流値を記憶する一連の入力を有するシフトレジスタを含み、記憶された電流値は、該一連のクロックサイクルのそれぞれで該パイプラインに供給される電流信号の総和を表す、
請求項１４記載のシステム。
【請求項１６】
該電流計算ユニットは、ｍ回のインターバルで該プロセッサコアにより得られる電流振幅を推定するための加算器と、推定された電流振幅を記憶するｍエントリのシフトレジスタを含む、
請求項１２記載のシステム。
【請求項１７】
該電流−電圧計算ユニットは、ｍ入力を有する加算器を含み、それぞれの入力は、電力伝送回路網の応答関数に従って重み付けされ、該加算器は、該第一のシフトレジスタにより供給されたｍ個の電流振幅の積和として、該プロセッサコアで見られる電圧を推定する、
請求項１６記載のシステム。
【請求項１８】
該応答関数は、該電力伝送回路網のインパルス関数であり、該加算器のｍ入力は、ｍ回のインターバルでの該インパルス関数の振幅に比例して重み付けされる、
請求項１７記載のシステム。
【請求項１９】
該加算器により供給される一連のｐ個の推定された電圧を記憶し、ｐ個の推定された電圧を該加算器の入力にフィードバックする第二のシフトレジスタをさらに備える、
請求項１７記載のシステム。
【請求項２０】
該ｍエントリのシフトレジスタに接続される該加算器の入力は、該電力伝送回路網の応答関数から導出された第一の組の再帰係数に比例して重み付けされ、該ｐエントリのシフトレジスタに接続される該加算器の入力は、該応答関数から導出された第二の組の再帰係数に比例して重み付けされる、
請求項１９記載のシステム。
【請求項２１】
ｎ回の連続するインターバルで電流の振幅を表す値を記憶するためのｎエントリを有するシフトレジスタと、
それぞれのウェイトユニットが該シフトレジスタの対応する入力からの電流振幅の値をスケーリングするｎ個のウェイトユニットと、
推定された電圧を供給するために該ウェイトユニットからのスケーリングされた電流振幅を合計する加算器と、
を備える装置。
【請求項２２】
クロック信号に応答して、１以上の回路からの電流振幅を合計し、合計を該シフトレジスタの第一の入力に供給する第二の加算器をさらに備える、
請求項２１記載の装置。
【請求項２３】
該ウェイトユニットのそれぞれは、装置が動作するシステムの応答関数を表す値を記憶する、
請求項２２記載の装置。
【請求項２４】
該ｎ入力の加算器は、ｐ個の更なる入力を含み、該装置は、ｎ＋ｐ入力の加算器により供給された一連の推定された電圧を記憶し、該推定された電圧を該加算器のｐ個の重み付けされた入力にフィードバックするｐ個のエントリを有する第二のシフトレジスタをさらに備える、
請求項２３記載の装置。
【請求項２５】
該加算器の更なるｎ個の入力とｐ個の入力は、該応答関数から導出された電流及び電圧の再帰係数に従って重み付けされる、
請求項２３記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電源装置に関し、より詳細には、電源電圧が集積回路の電流需要に応答して変化するレートをモデリングするためのメカニズムに関する。
【背景技術】
【０００２】
過去２５年にわたり、マイクロプロセッサのような集積回路による電力消費量は１ワット以下から１００ワットを超えるまでに増加している。大幅な電力の増加は、トランジスタのスケーリングを原因としており、このスケーリングにより、非常に高い周波数で動作する、チップ上の更に多くのトランジスタが製造されている。従来、取り扱い可能なレベルまで電力を低減するための電圧スケーリングが使用されている。電源電圧が１ボルトに近づくにつれて、更なる大幅な電圧低減により、更なる電力の低減が提供される可能性がない。以下の記載は、マイクロプロセッサに焦点を当てるものであるが、高周波で動作し、かつ変動する作業負荷を受ける集積回路は、同様の問題を受けることが認識される。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
１００Ｗを消費するマイクロプロセッサは、電源装置、電圧レギュレータ、及び、結果として生じる熱を消散可能なサーマルソリューション（パッケージ、ヒートシンク及びファン）と同様に、１００Ｗを供給可能な電力分散回路網を必要とする。かかるコンポーネントは高価であり、トランジスタの寸法が縮小するにつれて、より高い電力レベルにスケーリングすることは期待できない。
【０００４】
絶対的な電力レベルに加えて、電力レベルの変動も問題である。特に、電力レベルの急激な変化に関連する電流変動により、ある装置で見られる電圧が規定されたレンジ外に変化する。１．０Ｖで動作する仮定した１００Ｗのマイクロプロセッサは、１００Ａを得る。適切な回路動作を保証するため、電圧レギュレータ及び電力分散回路網は、±５％の範囲に電源電圧を維持しなければならない。このことは、マイクロプロセッサ（又は該マイクロプロセッサが実行するソフトウェア）が何であるかに関らず、わずか１００ｍＶのピーク  トゥ  ピークのリップルしか許容することができないことを意味している。理想的な電力分散回路網は、マイクロプロセッサの電源電流が数ナノ秒の範囲で急速に変化する場合であっても、１００ｍＶの範囲内での電源電圧を維持するため、十分なキャパシタンスを有し、かつ十分に小さなインダクタンス及びレジスタンスを有している。この後者の問題は、インダクタンスの定義Ｖ＝Ｌ・ｄｉ／ｄｔからｄｉ／ｄｔ問題と呼ばれる。Ｖは、電流変化ｄｉ／ｄｔを受けるときの、値Ｌのインダクタ間の電圧である。実際の電力分散回路は、現在のところ、これらの理想的な特性を提供していない。
【０００５】
電圧レベルに対するｄｉ／ｄｔの影響を緩和することは、クロックゲーティング機能のような節電機能がマイクロプロセッサ設計で開発されるときには、益々困難になる。たとえば、浮動小数点実行ユニットのようなパワーハングリーユニットには、該ユニットがアクティブ状態にあるときにクロックをオンにし、該ユニットが非アクティブ状態にあるときにクロックをオフにする回路が設けられる場合がある。クロックゲーティング機能は、極端に微細な粒度で、ユニットずつ、及びパイプステージずつ実現される場合があり、非常に多くのクロックゲート信号が生じる。この機能により、非アクティブ状態にあるユニットでの電力消費量が最小化されるが、実行されているソフトウェアに依存する全体の電力レベルでの大幅な変動が生じることになる。
【０００６】
本発明は、電力伝送回路網に関連するこれらの問題及び他の問題に対処するものである。
【発明を実施するための最良の形態】
【０００７】
本発明は、以下の添付図面を参照して理解される。この添付図面では、同じ構成要素は同じ参照符号で示されている。これらの図面は、本発明の選択された実施の形態を例示するために提供されるものであって、本発明の範囲を限定することを意図していない。
【０００８】
ＳｉｍｐｌｅＳｃａｌａｒ又はＳＭＴＳＩＭのようなマイクロアーキテクチャ  シミュレータは、マイクロプロセッサのパイプラインを通した命令のフローをシミュレートするアーキテクチャ  シミュレータと同様に、マイクロプロセッサのパイプライン及びコントロールロジックのモデルを含んでいる。このシミュレータは、所与のベンチマークを実行するためにどの位多くのクロックが要求されるかを決定し、パイプラインのストール、キャッシュミス、誤推定されたブランチ等のようなイベントに関する統計量を生成する。かかるシミュレータは公知であり、文献で広範囲に議論されている。たとえば、Ｄ．  Ｂｕｒｇｅｒ及びＴ．  Ｍ．  Ａｕｓｔｉｎ“Ｔｈｅ  ＳｉｍｐｌｅＳｃａｌａｒ  Ｔｏｏｌｓｅｔ，  Ｖｅｒｓｉｏｎ２．０”，  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｎｅｗｓ，  Ｖｏｌｅ２５，  Ｎｏ．３  Ｊｅｎｅ  １９９７，  ｐａｇｅ１３−２５，  又はＤ．  Ｍ．  Ｔｕｌｌｓｅｎ，  “Ｓｉｍｕｌａｔｉｏｎ  ａｎｄ  Ｍｏｄｅｌｉｎｇ  ｏｆ  ａ  Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｍｕｌｔｉｔｈｒｅａｄｉｎｇ  Ｐｒｏｃｅｓｓｏｒ”，  ２２ｎｄ  Ａｎｎｕａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｇｒｏｕｐ  Ｃｏｎｆｅｒｅｎｃｅ，  Ｄｅｃｅｍｂｅｒ１９９６を参照されたい。
【０００９】
これらのシミュレータ及び他のシミュレータは、クロックゲーティング機能の影響を含めて、電力消費量を推定するために増大される場合がある。たとえば、それぞれのクロックインターバルで、シミュレータは、どのユニット及びパイプステージがアクティブ状態にあるか判定する場合がある。このシミュレータは、オン及びオフのそれぞれのユニット／パイプステージのアクティブ状態での電力とアイドル状態の電力を加えることで、クロックの間の全体の電力消費量を計算することができる。それぞれのブロックのアクティブ状態の電力とアイドル状態の電力は、低レベル回路のシミュレーション、回路設計者により提供される推定値、実際の回路に基づく測定値等に基づいている場合がある。
【００１０】
本発明の１実施の形態によれば、プロセッサに伝送される電源電圧は、電力分散回路網の適切な応答関数と組み合わせてプロセッサの該分散回路網の電気モデルを使用して、パワーシミュレータの出力からモデリングされる。
【００１１】
図１は、高性能マイクロプロセッサ向けの電力分散回路網１００の電気モデルを示している。このモデルは、パッケージ及び電圧レギュレータのそれぞれにおけるダイ上に、デカップリングキャパシタ１１０（ａ）〜１１０（ｃ）を含んでいる。また、パッケージ、ソケット、プリント回路ボード、及び電圧レギュレータ内の素子に関連する寄生のインダクタンス１２０（ａ）〜１２０（ｄ）及び抵抗１３０（ａ）〜１３０（ｄ）が示されている。マイクロプロセッサは、可変電流シンク１４０としてモデリングされ、電圧レギュレータの残りの要素は、理想的な電圧源１５０としてモデリングされる。構成要素の値は、モデリングされる特定のシステムにおける構成要素の代表値として選択されている。かかるモデルの構築は、Ｄ．  Ｊ．  Ｈｅｒｒｅｌｌ，  Ｂ．  Ｂｅｋｅｒによる“Ｍｏｄｅｌｉｎｇ  ｏｆ  Ｐｏｗｅｒ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｓｙｓｔｅｍｓ  ｆｏｒ  Ｈｉｇｈ−Ｐｅｒｆｏｒｍａｎｃｅ  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒｓ”，  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎ  ｏｎ  Ａｄｖａｎｃｅｄ  Ｐａｃｋａｇｉｎｇ，  Ｖｏ．２２，  Ｉｓｓｕｅ３，  Ａｕｇｕｓｔ  １９９９，  ｐｐ．２４０−２４８で議論されている。
【００１２】
図２は、２５Ａの電流ステップ（図示せず）の印加に対する電力分散回路網１００のシミュレートされた応答を表している。２５Ａの保持された電流増加が電力分散回路１００に印加され、マイクロプロセッサにより受ける電源電圧の応答（ステップ応答２１０）がモデリングされる。ステップ応答２１０は、たとえば、Ｓｐｉｃｅ（登録商標）又はこれに匹敵するシミュレーションをネットワーク１００で実行することで決定される場合がある。
【００１３】
図２における水平軸は、一連の時間インターバルに分割される。このインターバルは、たとえば、電力分散回路網１００により駆動されるプロセッサのクロックサイクルに対応している場合がある。開示されるシミュレーションについて、それぞれのインターバルは、３．３ギガヘルツでクロックされるプロセッサの応答を表すため、０．３ナノ秒（“ｎｓ”）のクロックサイクルに対応している。ステップ応答２１０は、電力分散回路１００のインダクタンスとキャパシタンスのため、降下して“上昇している”。このステップ応答２１０は、電流ステップの開始後の約３０クロックで局所的な最小値２００に到達する。モデリングされたインターバルを通して、ステップ応答２１０において、２つの指数的に減衰する正弦波信号を認識することができる。高周波成分は、局所的な最小値２２０について寄与している。この寄与は、オンチップ  コンポーネント１１０（ａ）等に関連するＲＬＣ共振による場合がある。低周波成分は、第二の局所的な最小値２５０に寄与している。この寄与は、パッケージング及び／又はコネクタコンポーネント１１０（ｂ），１２０（ａ），１３０（ａ）等に関連するＲＬＣ共振による場合がある。更に低い周波数成分は、電源のコンポーネントに関連するものであり、モデリングされたインターバルが拡張される場合にはその寄与が明らかになる場合がある。
【００１４】
また、図２には、インパルス応答２３０が示されている。ここで、インパルス応答２３０は、０．３ナノ秒の期間の２５Ａの単一パルスに対する電力分散回路網１００の応答を表している。インパルス応答２３０は、ステップ応答２１０の一階微分に比例している。このインパルス応答２３０は、ステップ応答２１０の隣接サンプル間の差を取ることで、ステップ応答２１０から計算される場合がある。代替的に、このステップ応答２３０は、２５Ａの振幅を有する０．３ナノ秒のパルスに対する回路網１００の応答をモデリングすることで直接計算される場合がある。
【００１５】
ステップ応答２１０及びインパルス応答２３０は、電気的な刺激に対する電力伝送回路網の振る舞いを特徴付けるために使用される応答関数の例である。
【００１６】
本発明の１実施の形態は、時間を通したその可変の動作機能として、あるプロセッサで見られる電圧を決定するためのメカニズムを提供するものである。この動作は、電流波形又は離散的な電流パルスとして表される場合がある。これらの波形は、電力消費の影響をモデリングするために拡張されているＳｉｍｐｌｅＳｃａｌａｒ  ＳＭＴＳＩＭのようなシミュレータにより提供される場合がある。以下に更に詳細に説明されるように、この動作は、動作しているプロセッサにより提供される場合もある。後者のケースでは、電流の一階微分（ｄｉ／ｄｔ）による誘導電圧の変化を緩和するためのメカニズムが提供される。
【００１７】
開示されるメカニズムは、大まかな近似によれば、電力分散回路網１００が線形回路網であるという考察に部分的に依存している。線形システムは、以下の２つの特性により特徴付けされる。１）システムの入力を所定量だけスケーリングすることで（電流ステップ又はパルス振幅）、出力を比例してスケーリングすることができる。２）２つの入力の線形結合をシステムに印加することで、それぞれの入力に応答してシステムで生じる出力の線形結合を個々に取ること（重合せ）と同じ出力を生じる。スケーリング特性は、ｆ（ｃ＊ｘ）＝ｃ＊ｆ（ｘ）として数学的に表される場合がある。ここで、ｃは定数である。たとえば、図２における入力電流ステップの振幅を２倍の５０Ａにすることで、局所的な最小値２２０の深さは、近似的に２倍になる。重合せは、ｆ（ｘ＋ｙ）＝ｆ（ｘ）＋ｆ（ｙ）として数学的に表される場合がある。図２の例では、このことは、第一及び第二の電流インパルスに対する分散回路１００の応答は、第一の電流インパルスの印加と第二の電流インパルスの印加の間の遅延を表すインターバルに従い、第一の電流インパルスに対する分散回路網１００の応答と第二の電流インパルスに対する分散回路網１００の応答とを合計することで適度に近似されることを意味している。
【００１８】
図３は、集積回路の動作プロファイルに対する電力分散回路網の電圧応答を推定するための本発明に係る方法３００に関する１実施の形態を表すフローチャートである。本発明によれば、システムの動作プロファイルはステップ３１０で決定される。この動作プロファイルは、先に説明したように電流波形、電流パルス系列、又はこれらに匹敵するシミュレータ出力である場合がある。プロセッサがシミュレートされる場合、この動作プロファイルは、所与の時間を通した特定のコード系列に応答して、シミュレータ出力として処理される場合がある。たとえば、一連のクロックサイクル（「インターバル」）に関してプロセッサのアクティブ状態のユニット及び非アクティブ状態のユニットにより得られる電流を表す電流パルス系列（クロック当たり１パルス）は、先に説明されたようなやり方で計算される場合がある。実際のプロセッサについて、この動作プロファイルは、たとえば、クロック毎に、その電流消費をモニタすることで提供される場合がある。プロセッサの動作プロファイルを表している電流波形は、電流パルス系列に分解される場合がある。いずれのケースにおいても、ステップ３２０で、選択されたインターバルでの動作プロファイルは、あるサイズ（電流パルスの振幅）及びオフセット（基準時間に関するインターバル時間）により特徴付けされる。マイクロプロセッサにとって、この選択されたインターバルは、１以上のクロックインターバルに対応する場合がある。以下の説明では、選択されたインターバルでの動作プロファイルをパルスと呼ぶ。
【００１９】
ステップ３３０で、たとえば、マイクロプロセッサといったデバイスを含んでいるターゲットとなる電力分散回路網のインパルス応答が決定される。本方法３００の１実施の形態では、指定されたサイズ及び期間を有する電流ステップをターゲットとなる回路網に印加することがシミュレートされ、このシミュレートされた電圧応答から、インパルス応答が決定される場合がある。代替的に、選択されたクロックインターバルに対応する期間を有する電流インパルスに対する電力伝送回路網の応答は、直接シミュレートされる場合がある。実際のシステムを利用可能である場合、インパルス応答を直接測定することが可能な場合がある。
【００２０】
次いで、ステップ３４０で、動作プロファイルの電流パルスは、電力回路網のインパルス応答及びフィルタ技術を使用して、電力回路網の電圧応答に変換される。適切なフィルタ技術は、たとえば、畳み込みである有限インパルス応答（ＦＩＲ）フィルタ、及び無限インパルス応答（ＩＩＲ）フィルタを含んでいる。
【００２１】
１実施の形態について、ＦＩＲフィルタは、その振幅及びオフセットに従い、それぞれの電流パルスをスケーリングしてシフトし、対応するスケーリングされてシフトされたインパルス応答を供給する。次いで、所与のインターバルにおける応答を生成するそれぞれのパルスについてスケーリング／シフトされたインパルス応答は、該インターバルにおける電力回路網の電圧応答を供給するために合計される。その期間を通したパルス系列に対するスケーリング／シフトされた回路網の応答は、動作パルスと回路網の応答関数との畳み込みを表している。
【００２２】
別の実施の形態では、インパルス応答を複製するＩＩＲフィルタの係数が決定される。この係数は、装置で見られる電圧のプロファイルを示すために電流パルスに印加され、再帰的に、該電流パルスから決定された前の電圧に印加される。
【００２３】
図４は、図３と共に説明されるＦＩＲ方法に関する概念図である。説明される例では、動作プロファイル４００は、振幅Ａ１，Ａ２，Ａ３のそれぞれを有する電流パルス４１０，４２０，４３０を備えている。電流パルス４１０，４２０，４３０は、たとえば、連続するクロックサイクルでコード系列を実行するプロセッサにより得られる電流を表している場合がある。電流パルス４１０，４２０，４３０は、オフセット時間Ｔ０，Ｔ１，Ｔ２，．．．で開始される。
【００２４】
説明のために、特定の電流の振幅の基本インパルス応答４９０は、８つのインターバル（ｔ０〜ｔ７）を通したインパルス応答系列の振幅Ｒ０〜Ｒ７として表される。インパルス応答４４０，４５０及び４６０は、振幅（Ａ１，Ａ２，Ａ３，．．．）によるスケーリング、及びパルス４１０，４２０及び４３０のオフセット（Ｔ０，Ｔ１，Ｔ２，．．．）によるシフトに従う基本のインパルス応答４９０（インパルス応答の振幅Ｒ０〜Ｒ８）を表している。ここで、Ｒｉｊは、インパルス応答４９０の振幅Ｒｊが、電流パルスの振幅Ａｉによりスケーリングされたものを表している。基本インパルス応答４９０により特徴付けされた電力伝送回路網が線形であり、Ｒ１０＝ｃ・Ａ１・Ｒ０，Ｒ３２＝ｃ・Ａ３・Ｒ２、及びＲｉｊ＝ｃ・Ａｉ・Ｒｊ（スケーリング）であると仮定する。インパルス応答４４０，４５０，４６０をシフトすることで、それらの元の電流パルス４１０，４２０，４３０のそれぞれが始まる異なる時間が反映される。開示される例では、Ｔ０は、基準時間として扱われる。電圧波形４７０は、対応するインターバルｔ０，ｔ１，ｔ２，．．．におけるインパルス応答４４０，４５０及び４６０の合計を表している（重合せ）。
【００２５】
たとえば、電圧パルスＶ０は、時間インターバルｔ０（Ｒ１０）でのインパルス応答４４０の振幅を表している。電圧応答Ｖ１は、時間インターバルｔ０におけるインパルス応答の振幅Ｒ１１及びＲ２０の合計を表し、電圧応答Ｖ２は、時間インターバルｔ２におけるインパルス応答の振幅Ｒ１２，Ｒ２１及びＲ３１の合計を表している。オフセットＴ１及びＴ２により示されるシフトにより、インパルス応答４４０の振幅Ｒ１０〜Ｒ１８の振幅に関して、インパルス応答４５０，４６０のそれぞれの振幅Ｒ２０〜Ｒ２８，及びＲ３０〜Ｒ３８が配列されている。
【００２６】
一般に、インターバルｔｎでの電圧は、該ｔｎで非ゼロの振幅を有する全ての電流パルスのインパルス応答の振幅の総和である。図４に示されるように、電流パルスがある時間Ｔｋで始まる場合、インターバルｔｎでのパルスに対する電流パルスの寄与は、ｃ・Ａｋ・Ｒｎ−ｋに比例する。ここで、Ｒｎ−ｋは、インターバルｎ−ｋにおけるインパルス応答４９０の振幅である。ここで、差は、基準時間Ｔ０に関する電流パルスの開始時間に反映される。
【００２７】
図５及び図６には、本発明に係るマイクロプロセッサの電流シミュレーション、及び該電流シミュレーションから導出される電圧応答がそれぞれ示されている。図５は、Ｓａｎｔａ  Ｃｌａｒａ  ＣａｌｉｆｏｒｎｉａにあるＩｎｔｅｌ（登録商標）社のＩｔａｎｉｕｍプロセッサにより消費される電力のシミュレーションを表している。このプロセッサは、Ａｐａｃｈｅ  ｗｅｂサーバの一部を実行し、２０００クロックサイクルのｇｚｉｐファイル圧縮プログラムを実行してシミュレートされる。電流曲線５１０は、異なるプログラム実行フェーズを示しており、それぞれのフェーズは、たとえば、１サイクル当たりの命令数（ＩＰＣ：  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｐｅｒ  Ｃｙｃｌｅ）といった効率、及び電流レベルにより特徴付けされている。一般に、非常に多くの命令を並列に実行するクロックサイクル（高いＩＰＣ）は、対応する高い電流消費により示されている。これは、より多くのプロセッサのユニットがオンになるためである。逆に、より少ない命令を並列に実行するクロックサイクル（低いＩＰＣ）では、殆どのユニットをアクティブ状態にせず、電流消費は相応して低い。シミュレートされたインターバルにわたり、プロセッサの供給電流は、２５Ａから７２Ａに変動する。
【００２８】
フェーズ５２０，５３０，５４０は、より高い電力レベルとより低い電力レベルの間で電流レベルが急速かつ再現可能に発振しており、コードループに関連している。コードループは、より多くのＩＰＣレベル及びより少ないＩＰＣレベルで、同じ命令を繰返し実行する。これらのフェーズは、フェーズ５２４，５３４，５４４でインタリーブされており、これらのフェーズ５２４，５３４，５４４では、ループ動作は殆ど見ることができず、よりランダムに電流レベルが変動する。フェーズ５２４，５３４，５４４におけるピーク  トゥ  ピークの電流変動は、ループフェーズ５２０，５３０，５４０に関連するピーク  トゥ  ピークの電流変動よりも著しく大きい。
【００２９】
クロックサイクル１２００の周辺から始めて、コードセクションがほんの僅かな短いループセグメントを含む拡張されたインターバルが存在する。この領域では、電流消費は、広くかつ予想不可能に変動する。
【００３０】
図６は、図５で反映されるプロセッサの電流消費に対応する電源電圧の変動６１０に関する本発明に係るシミュレーションを表している。電圧曲線６１０は、図５の曲線５１０で示されるイベントを近似的に反映している。たとえば、フェーズ６２０，６３０，６４０は、ループフェーズ５２０，５３０，５４０のそれぞれに対応しており、これらのフェーズでは、ピーク  トゥ  ピークの電流が規則的に変動している。モデリングされたコード系列及びプロセッサについて、ループフェーズは、比較的高いＩＰＣ及び高い電流消費により特徴付けられる。供給電圧レベルは、プロセッサによる増加された電流消費を反映して、フェーズ６２０，６３０，６４０で降下する。クロックサイクル９００以下の電圧変動は、比較的穏やかである。しかし、クロックサイクル１１５２を超えて、電力消費はより不安定であり、電圧スウィングが著しく大きい。これらの電圧変動は、なお、プロセッサにとって許容可能な範囲内に含まれており、Ａｐａｃｈｅ／ｇｚｉｐ作業負荷は、悪いケースのｄｉ／ｄｔパターンを表していない。
【００３１】
曲線６１０で明らかな電圧変動は、プロセッサの動作にとって深刻な結果を有している。たとえば、プロセッサを構成するロジック回路は、信頼性高く動作するため、所定の範囲内の電源電圧を必要とする。この範囲外の電圧の往復により、プロセッサにおける計算誤差及び致命的な回路故障を招く。図６に示されるようなシミュレーションにより、プロセッサ設計者は、プロセッサ電圧の様々な電力／パフォーマンスのトレードオフに関する影響を調べることができる。以下により詳細に説明されるように、電圧の往復の範囲を制限するために、実際のシステムの電圧プロファイルに関するリアルタイムの判定が使用される場合がある。
【００３２】
マイクロプロセッサの電力伝送システムは、一般に、実行する可能性のある最悪のケースのソフトウェアのために設計されている。この最悪のケースのソフトウェアは、通常、極端に高いＩＰＣを有するプログラム、又は（最大のｄｉ／ｄｔについて）極端に高いＩＰＣと極端に低いＩＰＣの間で急速に変わるプログラムである。かかるプログラムは、パワーウィルスと呼ばれる、これは、このプログラムが一般のアプリケーションソフトウェア以上に電力伝送システムに負荷を与えるためである。クロックゲーティング機能により、最悪のケースでの電力消費よりはむしろ典型的な電力消費のために設計されているプロセッサは、特定の電力閾値に到達した場合に、そのパフォーマンスを調節することができる。しかし、このクロックゲーティング機能は、電圧へのｄｉ／ｄｔの作用を拡大する。
【００３３】
先に説明された方法により、ダイ上の電力計算、並びにプロセッサ及び他の命令実行装置のためのレギュレーションハードウェアの開発が可能となる。プロセッサの電圧が所定のコード系列によりどのように影響される場合があるかに対する洞察を提供することに加えて、これらのシミュレーションにより、様々なｄｉ／ｄｔ緩和策をプレシリコンステージで試験することができる。先に説明されたシミュレーションからの洞察の利益は、ｄｉ／ｄｔ制御を実現するプロセッサ設計を引用することで理解される。１つのかかる実施の形態は、以下に更に詳細に説明される。
【００３４】
図７は、コンピュータシステム７００に関する１実施の形態のブロック図であり、ここでは、ｄｉ／ｄｔ制御が実現される。例を通して、コンピュータシステム７００は、プロセッサ７１０、メインメモリ７４０、不揮発性メモリ７５０、各種周辺装置７６０、システムロジック７７０、及び電源７８０を含んでいる。システムロジック７７０は、プロセッサ７１０、メインメモリ７４０、不揮発性メモリ７５０及び周辺装置７６０の間でのデータ転送を制御する。電源７８０は、プロセッサ７１０におけるロジックデバイスのために基準電圧で電力を供給する。コンピュータシステム７００は、本発明に関する各種機能を例示するために提供されている。図示されている特定のシステム構成は、本発明を実現するために必ずしも必要なものではない。たとえば、システム７００は、多数のプロセッサ７１０、又は他の命令実行装置を含んでいる場合があり、図示される各種コンポーネントは、全体として結合されるか、又は部分的に除かれる場合がある。パーソナルデジタルアシスタント（ＰＤＡ）、スマートフォン等のようなシステムは、開示される実施の形態で示されていないデバイス及びコネクションを含んでいる場合がある。
【００３５】
プロセッサ７１０は、多数のユニット７２４を含んでおり、これらユニットは、命令実行パイプライン７２０を形成している。命令は、メインメモリ７４０、不揮発性メモリ７５０又は他の記憶装置（図示せず）からプロセッサ７１０に供給される場合がある。プロセッサ７１０により消費される電流の量は、パイプライン７２０における命令（又はそのラック）により各種ユニット７２４で生成された動作レベルで決定される。電流制御ユニット（ＣＣＵ）７３０は、処理された命令に応答して選択されたユニット７２４による電流の使用をモニタし、これに応じてプロセッサ７１０の動作レベルを調節する。システム７００は、１つのＣＣＵ７０３を含んで示されている。他の実施の形態は、多数のＣＣＵ７３０を使用する場合があり、それぞれは、１以上のユニット７２４についてｄｉ／ｄｔをローカルに制御する。
【００３６】
命令がパイプライン７２０に入力したとき、この命令は、該命令を実現する１以上の動作を実行することを各種ユニット７２４に指示する。たとえば、浮動小数点積和演算命令（ＦＭＡＣ）により、指示されたリソースにおいて以下の動作が行われる。浮動小数点レジスタファイルは、３つのオペランドを読み出す。ＦＭＡＣ実行ユニットは、該オペランドのうちの２つを乗算し、この乗算結果を第三の演算に加える。エクセプションユニットは、エラーについて該乗算結果及び加算結果をチェックし、リタイヤメントユニットは、エラーが検出されない場合に、該結果を浮動小数点レジスタファイルに書き込む。特定のプロセッサの実現に依存して、これらのリソース又はそれらのコンポーネントは、１以上のユニット７２４にグループ分けされる場合があり、命令がパイプラインに入力されたときにオン又はオフとなる。
【００３７】
それぞれのユニット７２４は、命令によりアクチベートされたとき、所定量の電流を得る。コンピュータシステム７００のため、電源７８０は、指定された範囲で基準となる電圧レベルを維持しつつ電流を供給する。１以上のユニット７２４のアクチベーション又はデアクチベーションがプロセッサ７１０により要求される電流の大幅な変化をトリガする場合、ＣＣＵ７３０は、この変化を緩和するために応答する。１実施の形態のＣＣＵ７３０は、プロセッサ７１０により使用された基準電圧へのｄｉ／ｄｔ作用を緩和するために、先に説明されたシミュレーションで例示された振る舞いを利用する。
【００３８】
選択されたユニット７２４’のアクチベートされた状態／デアクチベートされた状態は、所与のクロックサイクルでプロセッサ７１０により消費される電流の推定値を供給するためにモニタされる。選択されたユニット７２４’は、アクティブ状態のときに大きな電流を得る場合がある。これは、これらのユニットが、アクティブ状態と非アクティブ状態の間でスイッチされるとき、ｄｉ／ｄｔにおける突然の変化を生じる可能性があるためである。ＣＣＵ７３０は、選択された期間を通して結果的に生じる電流又は電圧レベルを推定するために、連続したクロックサイクルに関して１以上の選択されたユニット７２４’の状態をモニタする。この推定されるレベルは、プロセッサの動作レベルを調節すべきかを判定するために１以上の閾値と比較される。たとえば、推定された電圧レベルが第一の閾値以下である場合、パイプライン７２０を通る命令のフローが低減される場合がある。推定された電圧レベルが第二の閾値よりも大きい場合、さもなければデアクチベートされる場合があるユニット７２４’をアクチベートされたままにし、電圧レベルの上昇を低減することができる。
【００３９】
１実施の形態のＣＣＵ７３０は、ｎ回の連続するクロックサイクル（サンプル周期）に関して、選択されたユニット７２４’のアクティブ状態／非アクティブ状態（たとえば、動作状態＝１／０）を追跡することで、プロセッサで見られる電圧レベルを推定する。この追跡される状態は、以下に説明されるように、プロセッサ７１０の動作波形すなわちプロファイルを表すために重み付けされる場合がある。このプロファイルを構成する電流パルスは、システム７００の電力伝送回路網に適したインパルス応答を使用して分析され、該プロセッサで見られる電圧のプロファイルを供給する場合がある。この電圧が指定されたレンジ外にある場合、ＣＣＵ７３０は、予想される変化を相殺するため、プロセッサ７１０の動作レベルを変更する場合がある。
【００４０】
１実施の形態のＣＣＵ７３０について、ｎ個の電流パルスのそれぞれの振幅を表す値は、一連の記憶場所に記憶される場合がある。それぞれのエントリで多ビットの振幅値を記憶可能なシフトレジスタがこの目的のために使用される場合がある。以下に更に詳細に説明されるように、エントリ数は、プロセッサで見られる電圧が決定される精度、及び使用されるフィルタアルゴリズムにより部分的に決定される。振幅値が存在するエントリは、サンプリング窓の開始からの対応する電流パルスのずれを表している。
【００４１】
プロセッサで見られる電圧は、周期的に、たとえばそれぞれのクロックサイクルに関して、シフトレジスタのエントリに記憶された電流の振幅（Ａｉ）から推定される。１実施の形態のＣＣＵ７３０では、電流の振幅は、連続するクロックサイクルに関して、エントリ０からエントリｎ−１（Ｅ０〜Ｅｎ−１）にシフトレジスタを通して順次に入力される。したがって、シフトレジスタの内容は、ｎのクロックサイクルの窓を通して装置の動作レベルのプロファイルに関するスナップショットを供給する。所与の時間で、最も新しい電流パルスの振幅はエントリ０（Ｅ０）にあり、この電流パルスの振幅は、エントリ０（Ｅ０）に記憶される振幅値、及び最初のインターバル（Ｒ０）における回路網のインパルス応答に比例した量だけプロセッサで見られる電圧に寄与する。同様に、次に新しいパルスはエントリ１（Ｅ１）にあり、この電流パルスの振幅のプロセッサで見られる電圧への寄与は、エントリ１（Ｅ１）に記憶される振幅値、及び第二のインターバル（Ｒ１）における回路網のインパルス応答に比例する。
【００４２】
一般に、特定の時間での電圧応答は、以下のように推定される。
【００４３】
【数１】
2006504151.tif 000003
すなわち、それぞれのクロックサイクルに関し、対応するインターバルにおけるインパルス応答の振幅により供給される重みを用いて、最後のｎクロックサイクルの電流振幅の積和が演算される。
【００４４】
シフトレジスタは、図４と共に説明されたインパルス応答に関するオフセットを提供するために電流パルスの振幅をシフトする。したがって、このシフトレジスタの内容は、スライディングウィンドウを提供し、このウィンドウを通して、プロセッサで見られる電圧レベルの実行プロファイルを推定することができる。要するに、この実施の形態のＣＣＵ７３０は、測定された動作プロファイルをその電力伝送回路網のインパルス応答と畳み込みし、プロセッサで見られる電圧レベルにおける変化を推定する。畳み込みは、有限インパルス応答（ＦＩＲ）アルゴリズムに関する例である。以下に説明されるように、無限インパルス応答（ＩＩＲ）アルゴリズムに基づいた電流制御回路が実現される場合もある。
【００４５】
ＣＣＵ７３０を使用したシステムの１実施の形態では、パイプライン制御回路（図８Ａ）は、電圧レベルが許容レンジ外にある場合に、電圧レベルの推定される変化を相殺するためにパイプライン動作を調節する。コンピュータシステム７００の容量性、誘導性及び抵抗性の特性を反映するために設計されたコンポーネントにより、図２の電源回路網に類似した電源回路網を使用して、インパルス応答がモデリングされる場合がある。代替的に、実際のシステムのインパルス応答が測定される場合がある。
【００４６】
図８Ａは、ＣＣＵ７３０の１実施の形態に係る、パイプライン７２０の選択されたユニット７２４’とＣＣＵ７３０のインタラクションを表すブロック図である。開示される実施の形態に関するＣＣＵ７３０は、ゲートユニット８１０（１）〜８１０（ｎ）（一般にゲートユニット８１０）、モニタユニット８２０、及びスロットル回路８３０を含んでいる。それぞれのゲートユニット８１０は、パイプライン７２０において関連するユニット７２４’への電力伝送を制御する。たとえば、ゲートユニット８１０は、クロックゲーティング回路である場合がある。このクロックゲーティング回路は、ユニット７２４’が動作するパイプステージに現在ある命令を実現するためにユニット７２４’のサービスが使用されているか否かに従って、ユニット７２４’へのクロック信号を結合又は分離する。
また、図８Ａに示されるのはパイプライン制御回路８５０であり、このパイプライン制御回路８５０は、現在実行されている命令についてどのユニット７２４’がアクティブ状態にあるかをゲートユニット８１０に指示する。
【００４７】
開示される実施の形態のＣＣＵ７３０では、ゲートユニット８１０は、その関連するユニットがアクティブ状態であるかを示すため、モニタ回路８２０に信号を供給する。この信号は、ユニット７２４’の動作状態を示し、このユニット７２４’が「オン」になったときにアサート（ａｓｓｅｒｔｅｄ）され、「オフ」になったときにデ  アサート（ｄｅａｓｓｅｒｔｅｄ）される。典型的なプロセッサは、１０〜２０のユニット７２４’への電力伝送を制御するために、１０〜２０のゲートユニット８１０を含んでいる。全てのユニットは、電流変化についてモニタされる場合があり、ユニットのサブセットがモニタされる場合がある。たとえば、大量の電流を消費する、たとえば７２４’のユニットのみがモニタされる場合がある。先に述べたように、多数のＣＣＵ７３０が使用されて、多数のユニット又はユニットのグループがモニタされる場合がある。
【００４８】
モニタ回路８２０は、サンプリングウィンドウを通して、ゲートユニット８１０からの信号を収集し、この収集された信号に基づいてプロセッサ７１０で受ける電圧を推定する。開示される実施の形態のモニタ回路８２０は、電流計算ユニット（ＩＣＵ）８１２、電流−電圧計算ユニット（ＩＶＣＵ）８１４、及び閾値比較ユニット（ＴＣＵ）８１６を含んでいる。以下に更に詳細に説明されるように、ＩＣＵ８１２は、連続するクロックサイクルで消費される電流の推定値を供給する。ＩＶＣＵ８１４は、たとえば、プロセッサ７１０である装置で見られる電圧の推定値を生成するため、推定された電流値にフィルタアルゴリズムを適用する。ＴＣＵ８１６は、この推定された電圧値を１以上の閾値と比較し、スロットル回路８３０は、比較により指示された場合は、プロセッサ７１０の動作レベルを調節する。
【００４９】
開示される実施の形態のＣＣＵ７３０では、ＩＣＵ８１２は、ウェイトユニット８１４（１）〜８１４（ｎ）（一般にウェイトユニット８１４）及び加算器８２２を含んでいる。存在するとき、それぞれのウェイトユニット８１４は、その関連するユニット７２４’のゲーティング回路８１０により示される動作状態がそれぞれ非アクティブ状態にあるか、アクティブ状態にあるかに従い第一又は第二の値を加算器８２２に供給する。この第一の値は、アクチベートされていない場合にユニット７２４’で得られる電流を表しており、第二の値は、アクチベートされたときにユニット７２４’で得られる電流を表している。加算器８２２は、ウェイトユニット８１４により供給される値を合計し、この合計値をプロセッサ７１０のモニタされるユニット７２４’により連続するクロックサイクルのそれぞれで得られる電流パルスの推定値として出力する。ＣＣＵ７３０が単一のユニット７２４’を制御する場合には、加算器８２２、及び可能であればウェイトユニット８１４を除くことができる。また、モニタされるユニット７２４’で得られる電流が大まかに匹敵するものであれば、ウェイトユニット８１４を除くことができる。
【００５０】
ＩＶＣＵ８１４は、フィルタアルゴリズムをＩＣＵ８１２により供給される電流パルスに適用し、プロセッサ７１０で受ける電圧の推定値を生成し、ＴＣＵ８１６は、推定された電圧と１以上の閾値と比較する。
【００５１】
１実施の形態のモニタ回路８２０では、低い方の電圧閾値よりも低い推定された電圧値は、電力伝送回路網が供給することができる電流よりも更に多くの電流をプロセッサ７１０が得る場合があること示している。これらの状況の下では、スロットル回路８３０は、さもなければアクチベートされる幾つかのユニットをデアクチベートする場合がある。たとえば、スロットル回路８３０は、プロセッサ７１０における取出し（ｆｅｔｃｈ）ユニット（図示せず）に対して、パイプライン７２０に演算を実行させない（ＮＯＰ：  ｎｏ−ｏｐｅｒａｔｉｏｎ）場合がある。ＮＯＰは、ユニットがあってもアクチベーションを必要としない本質的に空白の命令である。これらの状況下では、パフォーマンスが低下する。これは、ＮＯＰ（生産性のない命令）がパイプライン７２０を通過する間に、生産性のある命令が遅延されるためである。また、ＮＯＰがあるとしてもユニットをアクチベートしないため、電力消費も低減される。
【００５２】
他方で、推定された電圧は、プロセッサ７１０が利用中であって、ほとんどのユニットがアクチベートされていないとき、高い方の電圧閾値を超える場合がある。このケースでは、スロットル回路８３０は、たとえば、パイプライン７２０に現在ある命令により、さもなければ使用されていないユニット７２４’をアクチベートする、たとえば、該ユニット７２４’に駆動電流を供給する場合がある。たとえば、スロットル回路８３０は、使用されていないユニット７２４’にクロック信号を伝送し続け、対応する命令がない場合にもかかわらず、それらの回路を充電及び放電させる場合がある。これにより、現在実行されている命令により必要とされる時間を通してプロセッサ７１０により消散された電力が増加する。しかし、プロセッサのパフォーマンスには直接の影響はない。
【００５３】
図８Ｂは、先に説明された積和演算の電圧推定アルゴリズム（ＦＩＲ）を実現するために適したＩＶＣＵ８１に関する実施の形態のブロック図である。実施の形態のＴＣＵ８１６もまた示されている。開示される実施の形態のＩＶＣＵ８１４は、ｎ個のエントリをもつシフトレジスタ８２４を含んでおり、加算器８２６は、その入力信号をｎ個のウェイトユニット８５０（０）〜８５０（ｎ−１）（一般にウェイトユニット８５０）を通して受ける。シフトレジスタ８２４は、そのエントリにおいてｎ回の連続するクロックサイクルの電流の振幅（Ａ０，．．．，Ａｎ−１）を記憶する。ウェイトユニット８５０（０）〜８５０（ｎ−１）は、関心のある電力伝送システムのインパルス応答の対応するインターバルの振幅に比例して、シフトレジスタ８２４からのそれぞれの入力（Ａ０，．．．，Ａｎ−１）をスケーリングする。開示される実施の形態の加算器８４０は、式１の積和演算を実現する。すなわち、加算器８４０は、ｎの動作状態を電源７８０及びプロセッサ７１０を含んでいる電力伝送回路網のインパルス応答と効果的に畳み込みを行う。
【００５４】
加算器８４０の出力は、プロセッサ７１０の電流動作レベルに対する電源回路網７８４の推定される電圧応答を表している。図８Ｂでは、高い方の閾値及び低い方の閾値のそれぞれとの比較のために、閾値コンパレータ８１６のコンパレータ８６０（ａ）及び８６０（ｂ）にＶＥが供給される。コンパレータ８６０（ｂ）は、ＶＥが低い方の閾値よりも下回ったかを判定し、電流消費がある場合には電流消費を低減するようにスロットル回路８３０に指示する。電流消費は、クロックを直接遮断することで低減される場合があり、命令取出し又は発生レート（ｉｓｓｕｅ  ｒａｔｅ）を低減し、又は幾つかの他の電流節約手順をトリガすることができる。
【００５５】
コンパレータ８６０（ａ）は、ＶＥが高い方の電圧閾値を越えたかを判定し、電流の消費を増加するように（又は、少なくともその電流レベルで維持するように）スロットル回路に指示する。たとえば、スロットル回路は、さもなければクロックされるユニットを強制的にゲートオフすることで、電流の消費量を増加するか、又は、クロックゲーティング機能が更なるユニットを遮断することを防止することで電力を維持する場合がある。
【００５６】
高い方の閾値と低い方の閾値の間で、装置、たとえばプロセッサ７１０は、正常に実行することが許容される。電圧計算、閾値比較、及び（必要であれば）電流調整は、必要とされる制御の粒状度、計算リソース及び他の要素に依存して、クロック毎に、又はｍクロック毎に実行される場合がある。適切なレートでＶＥを推定するために必要とされる計算リソースがプロセッサのダイに収容できることを仮定して、電源電圧のリアルタイム制御がイネーブルにされる。
【００５７】
図８Ｃは、ＩＩＲすなわち再帰型フィルタを実現するのに適したＩＶＣＵ８１４に関する実施の形態のブロック図である。ＩＩＲフィルタは、新たなフィルタ出力（たとえば、電流電圧推定値）を決定するための入力信号（たとえば、ＩＣＵ８１６からの電流）に加えて、予め計算されたフィルタ出力（たとえば、加算器８４０からの前の電圧推定値）を使用する。ＩＩＲフィルタは、たとえば、Ｓｔｅｖｅｎ  Ｗ．  Ｓｍｉｔｈ，  “Ｔｈｅ  Ｓｃｉｅｎｔｉｓｔｓ  ａｎｄ  Ｅｎｇｉｎｅｅｒｓ  Ｇｕｉｄｅ  ｔｏ  Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ”  Ｃａｌｉｆｏｒｎｉａ  Ｔｅｃｈｎｉｃａｌ  Ｐｕｂｌｉｓｈｉｎｇ  ＩＳＢＮ  ０−９６６１７６／３−３  （１９９７）で更に詳細に説明されている。一般に、ＩＩＲすなわち再帰型フィルタは、入力信号と前に計算された出力との線形結合から出力を決定する。後者は、再帰要素を与える。ＩＩＲフィルタ関数は、以下のように表される場合がある。
【００５８】
【数２】
2006504151.tif 000004
ここで、ａ０〜ａＰは、ｐ個の電流の振幅Ａｉに適用される係数を表しており、ｂ０〜ｂＰは、ｍ個の前の電圧推定値Ｖｉに適用される係数を表している。一般に、最後のｐ番目の電流値が追跡される場合、ｐ−１番目の推定された電圧が追跡のために利用可能であり、ｍ＝ｐ−１である。係数｛ａｉ｝及び｛ｂｉ｝は、電力伝送回路網のインパルス応答又はステップ応答（図２）へのカーブフィッティングにより決定される場合がある。
【００５９】
開示される実施の形態のＩＶＣＵ８１４’は、ｐエントリのシフトレジスタ８２４、加算器８２６及びウェイトユニット８５０（１）〜８５０（ｐ）に加えて、第二のシフトレジスタ８２８及びウェイトユニット８５４（１）〜８５４（ｐ−１）を含んでいる。シフトレジスタ８２４は、一連のｐ個の電流振幅値を記憶し、シフトレジスタ８２８は、一連の先行するｐ−１個の推定された電圧を記憶する。後者は、ＩＶＣＵ８１４の再帰入力を供給するために加算器８２６にフィードバックされる。
【００６０】
ＩＶＣＵ８１４’は、ステップ関数２１０又はインパルス応答２３０が１つの減衰する正弦波の寄与により支配される場合に、プロセッサ７１０で受ける電圧の推定値を供給するために、電流信号をフィルタリングするのに適している。電力伝送回路網の応答に対する複数の減衰する正弦波の寄与がある場合に電圧推定値を生成するために、複数のＩＶＣＵ８１４が使用される場合がある。それぞれの正弦波の寄与は、それ自身の係数のセット｛ａｉ｝及び｛ｂｉ｝により特徴付けられる。図８Ｄは、ＩＶＣＵ８１４’’を示しており、ここでは、ｋ個のフィルタの結果が並列に結合され、プロセッサ７１０で受ける電圧の推定値が供給される。図８Ｅは、ＩＶＣＵ８１４’’’を示しており、ここでは、ｋ個のフィルタの結果が直列に結合され、プロセッサ７１０で受ける電圧の推定値が供給される。いずれの構成であっても、複数の共振ソースに関するＩＩＲフィルタの結果を結合するために使用される場合がある。
【００６１】
図８Ａに示されるように、ＣＣＵ７３０は、フィードバックループを含んでいる。これは、ユニット７２４’を強制的にオン又はオフにする動作によって、計算された供給電流及び電圧に影響を及ぼすためである。これらは、ＣＣＵ７３０の後続する振る舞いに順次影響を及ぼす。ＩＩＲフィルタ（図８Ｃ〜図８Ｅ）にとって、再帰成分は、ＩＶＣＵ８２４内での更なるフィードバックループを提供する。
【００６２】
図９及び図１０には、ＣＣＵ７３０の電流及び電源電圧への影響に関するフィードバックがそれぞれ示されている。図５及び図６を比較して、ＣＣＵ７３０により供給されるｄｉ／ｄｔ制御は、最大電流レベルと最小電流レベルの両者に対して、鋭い１クロックのスパイクを導入している。このスパイクは、予め決定されたレンジ外にある計算された電圧に応答してＣＣＵ７３０が強制的にクロックをオン又はオフにした結果である。このスパイクにもかかわらず、電源電圧におけるピーク  トゥ  ピークの変動は、制御されないケースよりも小さい。これは、ＣＣＵ７３０は、その設計により、電源分散回路網におけるＲＬＣ共振回路の励磁を防止するために電流を規制するためである。
【００６３】
図９及び図１０の結果は、３００クロックサイクル以上にわたって広がるフルレンジのインパルス応答２３０（図２）に適用されるＦＩＲアルゴリズムを使用してシミュレーションされる。ＣＣＵ７３０にとって、このことは、シフトレジスタ８２４、ウェイト８５０及び加算器８２６を相応したサイズ（ｎ＞３００）で使用することになる。今日の高性能プロセッサで利用可能な回路密度であっても、１クロックサイクル又は数クロックサイクルにおいて、３００クロックのインターバルにわたってインパルス応答を電流パルスと畳み込み可能なモニタ回路８２０を実現することは実用的ではない。
【００６４】
このシミュレーション結果は、有効な結果を提供するために図２の３００クロックサイクルのインターバルが必ずしも必要ではないことを示している。たとえば、図２において、インパルス応答２３０の最も大きな変動、たとえば局所的な最大値２４０は、電流パルスの開始後の約２５クロックサイクルで生じている。このことは、ＣＣＵ７３０が電流パルスとインパルス応答を更に短いインターバルにわたって畳み込みを行い、電力伝送回路網の電圧応答に対する適度な近似を与えることを示している。以下に更に詳細に説明されるように、モニタ回路８２６は、２５又は３０といった小さなｎで実現される場合がある。
【００６５】
本発明の１実施の形態では、パフォーマンスと電圧の安定性の間のトレードオフを異なる畳み込みのインターバルについてシミュレーションすることができる。ＣＣＵ７３０がｄｉ／ｄｔを緩和する動作をトリガする電圧閾値を変更することで、異なるパフォーマンスのレベルが試験される場合がある。たとえば、ＣＣＵ７３０が、たとえばＮＯＰの注入といった動作を低減する動作を開始する低い方の電圧閾値を低く場合、プロセッサ７１０は、より大きな電圧変動にその回路をさらすが、より広い電圧レンジにわたってフルパフォーマンスでの動作を継続する。ＣＣＵ７３０が、該動作を低減する動作を開始する低い方の電圧閾値を上げることは、プロセッサ７１０がフルパフォーマンスで動作することが許容される電圧レンジを狭くする。全体として、パフォーマンスは低減されるが、プロセッサ７１０は、より安定した供給電圧を受ける。
【００６６】
図１１は、３つの異なるインターバルについて、システム７００の電力伝送回路網のピーク  トゥ  ピークの電圧変動−パフォーマンスに関するシミュレーションを表している。図１１から明らかなように、２５のクロックサイクルのインターバル（曲線１１１０）、４３のクロックサイクルのインターバル（曲線１１２０）及び３５０のクロックサイクルのインターバル（曲線１１３０）のシミュレーションにより生成された結果には殆ど差がない。それぞれの例では、５％以下のパフォーマンスの低下で、ピーク  トゥ  ピークの電圧変動が約１ｍＶに制限される場合がある。
【００６７】
図１２は、３つの異なる畳み込みのインターバルについて、システム７００の電力伝送回路網のピーク  トゥ  ピークの電圧変動−消散電力に関するシミュレーションを表している。これらの結果は、３つのインターバルについて匹敵している。実際のｄｉ／ｄｔ制御を提供するためには、２５のインターバルで十分である。
【００６８】
ＣＣＵ７３０の遅延は、ｄｉ／ｄｔのスウィングに関連する電圧変動の制御の効率に重要な影響を有する。たとえば、図２から明らかなように、ステップ応答２１０及びインパルス応答２３０のそれぞれにおける大きな電圧変動は、電流が変化する最初の数インターバル内で生じている。結果的に、たとえば、１又は２サイクルといった低い遅延に応答するために、有効なＣＣＵ７３０が設計される。図１３及び図１４は、１〜４クロックサイクルの遅延を有するＣＣＵのパフォーマンス及び電力へのピーク  トゥ  ピークの電圧変動の依存性を表している。これらの図から明らかなように、ｄｉ／ｄｔ制御の多くの利益が２クロックサイクル以上の遅延では消えている。
【００６９】
開示される実施の形態のＣＣＵ７３０では、遅延の主な原因は、ＩＣＵ８１２及びＩＶＣＵ８１４である。ＦＩＲベースのフィルタについて先に説明したように、モニタされたインターバルのサイズを低減することは役に立つ。この点に関して、ＩＩＲベースのフィルタは、所与の遅延について良好な結果を提供する可能性がある。たとえば、装置で見られる電圧の適度な推定値は、二次のＩＩＲフィルタを使用して得られることをシミュレーションが示している。二次のフィルタは、３つの電流係数（ａ０，ａ１，ａ２）及び２つの電圧係数（ｂ０，ｂ１）のみを使用する。これは、ＦＩＲフィルタ８１４’により使用される２５の係数に勝るものである。
【００７０】
遅延を低減するために他の方策が適用される場合もある。たとえば、実行パイプラインにおいて後ろのブロックの電流消費は、前のステージで予め計算される。必要であれば、２つの計算を先のステージで実行し、関連するユニットがアクティブ状態であるか非アクティブ状態であるかに従って一方の計算が後に選択される。さらに、開示される実施の形態のモニタ回路８２０では、インパルス応答の最初の要素のみが１サイクル遅延で計算される必要がある。第二の要素は２サイクルをとり、第三の要素は、３サイクルをとる等とする場合がある。
【００７１】
また、遅延の制約は、たとえばプロセッサである１つの集約されたＣＣＵが、分散／ローカルなやり方でｄｉ／ｄｔを制御するのと同じ利益を提供しないことを示している。たとえば、ローカルのＣＣＵは、その割り当てられたユニットにおける電流変動に高速に応答するために該ローカルのＣＣＵがその動作を制御するユニットに沿って構築することができる。集約化されたＣＣＵは、チップにわたり分散されたユニットからのデータを待つ必要がある。ローカルのＣＣＵがプロセッサ内の異なるパイプラインに接続される場合、パイプライン間でやり取りされるデータが失われないことを保証するために、パイプライン間の幾つかの通信が必要となる。たとえば、そのＣＣＵにより瞬間的に停止される他方のパイプラインに向けられた一方のパイプラインからデータをバッファリングするために、パイプライン間に問合せが追加される場合がある。
【００７２】
以上により、電力伝送回路網における装置により受ける電圧をシミュレーションするためのメカニズムが提供された。このメカニズムは、この電圧におけるｄｉ／ｄｔにより誘導される変動を緩和するための各種方策に関する効力を調べるために使用される。本発明の１実施の形態では、インパルス応答は、電力伝送回路網について決定され、該回路網により電力供給される装置の動作プロファイルが動作中にモニタされる。次いで、この動作プロファイルは、インパルス応答と畳み込みされ、該装置での電圧に関するプロファイルを提供する。
【００７３】
この実施の形態及び他の実施の形態は、本発明の様々な機能を例示するために提供されたが、クロックゲーティング機能を利用し、他の理由のためにｄｉ／ｄｔ変動を受けるコンピュータ及び他のプロセッサベースのシステムのような電子システムをモデリングすることに有効な場合がある。当業者及びこの開示の利益を有するものであれば、特許請求の範囲の精神及び範囲に含まれる、開示される実施の形態の変更及び変形を認識されるであろう。
【図面の簡単な説明】
【００７４】
【図１】プロセッサとの使用に適した電力分散回路網を表す電気モデルに関する回路図である。
【図２】図１の電力分散回路網のステップ応答及びインパルス応答を表す図である。
【図３】集積回路における電圧変動をシミュレートするための本発明に係る方法に関する１実施の形態を表すフローチャートである。
【図４】図３で示される方法に関する概念図である。
【図５】約２０００クロックサイクルにわたりコードブロックを実行するプロセッサのためのパワーシミュレータの出力を表す図である。
【図６】本発明に係るシミュレータを使用して決定される、同じインターバルにわたり図５でシミュレートされたプロセッサの電源電圧を表す図である。
【図７】ｄｉ／ｄｔ制御メカニズムを採用したコンピュータシステムに関する１実施の形態を表すブロック図である。
【図８Ａ】本発明に係るｄｉ／ｄｔコントローラに関する１実施の形態のブロック図である。
【図８Ｂ】図８Ａの電圧−電圧計算ユニットに関する実施の形態のブロック図である。
【図８Ｃ】図８Ａの電圧−電圧計算ユニットに関する実施の形態のブロック図である。
【図８Ｄ】図８Ａの電圧−電圧計算ユニットに関する実施の形態のブロック図である。
【図８Ｅ】図８Ａの電圧−電圧計算ユニットに関する実施の形態のブロック図である。
【図９】図８Ａの電流制御ユニットの制御下で動作する図７のプロセッサの出力電力のシミュレーションを表す図である。
【図１０】同じインターバルにわたり図８Ａでシミュレートされたプロセッサの電源電圧の変動を表す図である。
【図１１】トランケートされたコンボリューションのインターバルを使用して決定されたときの、電源電圧の変動−電力に関するシミュレーションを表す図である。
【図１２】トランケートされたコンボリューションのインターバルを使用して決定されたときの、電源電圧の変動−パフォーマンスに関するシミュレーションを表す図である。
【図１】
2006504151.tif 000005
【図２】
2006504151.tif 000006
【図３】
2006504151.tif 000007
【図４】
2006504151.tif 000008
【図５】
2006504151.tif 000009
【図６】
2006504151.tif 000010
【図７】
2006504151.tif 000011
【図８Ａ】
2006504151.tif 000012
【図８Ｂ】
2006504151.tif 000013
【図８Ｃ】
2006504151.tif 000014
【図８Ｄ】
2006504151.tif 000015
【図８Ｅ】
2006504151.tif 000016
【図９】
2006504151.tif 000017
【図１０】
2006504151.tif 000018
【図１１】
2006504151.tif 000019
【図１２】
2006504151.tif 000020
【国際調査報告】
2006504151.tif 000021
2006504151.tif 000022
2006504151.tif 000023