(57)【要約】【課題】  ＶＬＳＩダイの温度を監視してダイに形成された集積回路の動作を調節するための効率的な手段を提供すること。【解決手段】  ＶＬＳＩダイ上の集積回路と、ＶＬＳＩダイに構築された組み込み型マイクロコントローラ(103)とから構成され、マイクロコントローラ(103)がＶＬＳＩ環境を監視制御して集積回路の動作を最適化するように構成される装置。本発明のもう１つの実施形態は集積回路を監視制御する方法に関する。この方法は、組み込み型マイクロコントローラ(103)を集積回路と同じダイ上に設けるステップと、該組み込み型マイクロコントローラ(103)を用いて集積回路のＶＬＳＩ環境を監視制御するステップとを含む。【選択図】図１
2005071364.tif 000002
【特許請求の範囲】
【請求項１】
ＶＬＳＩダイ上の集積回路と、
前記ＶＬＳＩダイ上に構築され、前記ＶＬＳＩ環境を監視制御して前記集積回路の動作を最適化するように構成された、組み込み型マイクロコントローラ(103)と
からなるシステム。
【請求項２】
前記組み込み型マイクロコントローラ(103)は、前記集積回路上の１以上の位置における温度、前記集積回路に供給される電力、前記集積回路の動作クロック周波数、電源電圧、および前記集積回路に供給される電源電流からなるグループの中から選択された１以上のパラメタを監視する、請求項１に記載のシステム。
【請求項３】
前記組み込み型マイクロコントローラ(103)は、前記集積回路上の１以上の位置における温度、集積回路電源、前記集積回路の動作クロック周波数、電源電圧、および前記集積回路に供給される電源電流のうちの少なくとも１つのパラメタを制御する、請求項１に記載のシステム。
【請求項４】
前記集積回路は２以上のプロセッサコア(101,102)を含み、該コアのそれぞれ(101,102)が整数ユニット(104,108)および浮動小数点ユニット(105,110)を有し、
前記マイクロコントローラ(103)は、前記コアのそれぞれ(101,102)において前記整数ユニット(104,108)および前記浮動小数点ユニット(105,110)のそれぞれに設けられた温度センサ(106,107,109,...)を更に含む、請求項１に記載のシステム。
【請求項５】
前記ＶＬＳＩ集積回路ダイ上に構築された組み込み型電流計を更に含み、該電流計が電圧制御発振器を含む、請求項１に記載のシステム。
【請求項６】
集積回路を監視制御する方法であって、
組み込み型マイクロコントローラ(103)を前記集積回路と同じＶＬＳＩダイ上に設けることと、
前記組み込み型マイクロコントローラを用いて前記集積回路のＶＬＳＩ環境を監視制御することと
からなる方法。
【請求項７】
前記集積回路上の１以上の位置における温度、前記集積回路に供給される電力、前記集積回路の動作クロック周波数、電源電圧、および前記集積回路に供給される電源電流からなるグループの中から選択された１以上の集積回路パラメタを前記組み込み型マイクロコントローラ(103)を用いて監視することを更に含む、請求項６に記載の方法。
【請求項８】
前記集積回路上の１以上の位置における温度、集積回路電源、前記集積回路の動作クロック周波数、電源電圧、および前記集積回路に供給される電源電流からなるグループの中から選択された１以上のプロセッサパラメタを前記組み込み型マイクロコントローラ(103)を用いて制御することを更に含む、請求項６に記載の方法。
【請求項９】
前記組み込み型マイクロコントローラ(103)を用いて前記集積回路の位置の温度を監視することと、
前記位置における過剰温度状態に応答して、前記組み込み型マイクロコントローラ(103)を用いて電源電圧を下げることと
を更に含む、請求項６に記載の方法。
【請求項１０】
前記組み込み型マイクロコントローラ(103)を用いて前記集積回路の位置の温度を監視することと、
前記集積回路における過剰温度状態に応答して、前記組み込み型マイクロコントローラ(103)を用いてプロセッサの動作クロック周波数を下げることと
を更に含む、請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロプロセッサの監視制御に関し、詳しくは監視制御用の組み込みマイクロコントローラを備えたＣＰＵに関する。
【０００２】
本願は、２００３年８月２０日に出願した「METHOD AND SYSTEM FOR CALIBRATION OF A VOLTAGE CONTROLLED OSCILLATOR (VCO)」と題する米国特許出願第１０／６４４，５５９号、「SYSTEM AND METHOD FOR MEASURING CURRENT」と題する米国特許出願第１０／６４４，５４２号、および「A METHOD FOR MEASURING INTEGRATED CIRCUIT PROCESSOR POWER DEMAND AND ASSOCIATED SYSTEM」と題する米国特許出願第１０／６４４，３７６号に関連する。
【背景技術】
【０００３】
集積回路マイクロプロセッサまたはＣＰＵは通常、周波数、電力、電圧、電流、および温度といった、ＶＬＳＩ設計にとって極めて重要なパラメタを有する、最悪条件に合わせて設計される。集積回路やＣＰＵの設計の中には、標準的基準の条件を想定していて、ガードバンドを必要とするものがある。こうした設計の場合、ＣＰＵの動作可能条件は、ＣＰＵの設計上の限度に達しないように設定される。たとえば、プロセッサが通常動作条件下で１３０Ｗで動作可能な場合であっても、ガードバンドを設けて１００Ｗで動作させることを仕様とし、そのプロセッサが設計上の限界を超えないようにする場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
設計によっては、プロセッサが特定のエラー状態を監視し、それらのパラメタを越えないように動作するものがある。たとえば、トリップポイントを有する温度測定回路を用いて、熱問題をプロセッサに通知させる場合がある。このような熱監視回路は通常、プロセッサの集積回路上の一箇所しか監視しない。そのため、集積回路の監視されている部分が熱の警告を発していない場合であっても、監視していない部分が設計限界を超えた温度で動作していたり、設計限界を大幅に下回る温度で動作していることがある。この種の熱監視は、効率的でなく、プロセッサを最適な状態で動作させることができない。
【０００５】
他の設計としては、全ての動作条件についてプロセッサの特性を調べ、最悪状態の電力値や周波数値を判定するものがある。そしてプロセッサを、めったに使用されない条件下でしか起こりえないその最悪状態以下に制限する。すなわちガードバンドを設ける。その結果、プロセッサは、通常動作の際に、比較的効率の高い電力値および周波数を使用することができなくなる。
【０００６】
ガードバンドまたは外部監視回路を用いた従来技術による解決策は、プロセッサのＶＬＳＩ環境を制御することができない。離散変数を監視する従来技術による回路は、互いに通信しないので、複数の変数についてＶＬＳＩパラメタを最適化する働きを持たない。さらに、このような離散回路は、動作温度が高いとか、システム電力が高いといった一般的なＣＰＵ問題を補正するために、限られた資源しか提供しない。たとえば、従来技術による解決策では、プロセッサが過度の高温に達したときにその動作を完全に停止させる熱トリップ回路を設ける場合がある。この解決策は、そのような条件下で、速度を緩やかに低下させる速度調節を行なうことができない。
【課題を解決するための手段】
【０００７】
本発明の一実施形態は、ＶＬＳＩダイ上の集積回路と、該ＶＬＳＩダイ上に構築された組み込み型マイクロコントローラとからなり、該マイクロコントローラがＶＬＳＩ環境を監視制御して集積回路の動作を最適化するように構成される。
【０００８】
本発明の他の実施形態は、組み込み型マイクロコントローラを集積回路と同じＶＬＳＩダイ上に設けることと、該組み込み型マイクロコントローラを用いて集積回路のＶＬＳＩ環境を監視制御することとを含む、集積回路を監視制御する方法を含む。
【０００９】
本発明の他の実施形態は、コンピュータ読取可能プログラムコードを内部に組み込んだコンピュータ使用可能媒体を含むコンピュータプログラム製品を含み、該コンピュータ読取可能プログラムコードはＶＬＳＩ集積回路ダイ上にプロセッサと共に構築された組み込み型マイクロコントローラを制御するためのコードを含み、該マイクロコントローラがプロセッサのＶＬＳＩ環境を監視制御する。
【００１０】
本発明のさらに他の実施形態は、組み込み型マイクロコントローラを集積回路と同じＶＬＳＩダイ上に設ける手段と、該組み込み型マイクロコントローラを用いて集積回路のＶＬＳＩ環境を監視制御する手段とを含む、集積回路を監視制御するシステムを含む。
【発明を実施するための最良の形態】
【００１１】
マイクロプロセッサシステムは、大きなＶＬＳＩ  ＣＰＵと同じ集積回路ダイ上に直接構築された組み込み型マイクロコントローラを有する。マイクロコントローラの目的はＶＬＳＩ環境を制御することである。ＶＬＳＩ環境には、電力、温度、電圧、電流、周波数、および冷却用空気などが含まれるが、それらに限定されることはない。ダイ上の組み込み型マイクロコントローラは、センサおよびアクチュエータからなるシステムを用いてＶＬＳＩ環境情報を処理し、最適な動作をする解決策を判定して、その解決策を実現するようにＶＬＳＩ環境を制御することができる。
【００１２】
マイクロコントローラは、以下の機能を実行して集積回路環境を監視制御する。すなわち、電力消費の制御、ダイ上の温度の監視および制限、電圧に基づく周波数の調節、電源電圧の調節、およびダイの電流消費の監視である。システムは、ＶＬＳＩ  ＣＰＵダイ上の組み込み型マイクロコントローラを用いることにより、特定システム環境の文脈で動作している特定のダイについて、多数のパラメタを考慮することができる。一部の実施形態では、マイクロコントローラがＶＬＳＩパラメタを最適化することにより、ＣＰＵを可能な限りその設計パラメタに近い状態で動作させることが可能な環境を作りだす。
【００１３】
たとえば、マイクロコントローラは、電圧および電流を監視し、それらのパラメタを用いてシステム電力を計算することができる。マイクロコントローラは、フィードバック制御システムの一環として、電力消費量を用いて電源電圧を調節し、システムの電力レベルを制御することができる。また、マイクロコントローラは、電力制御ループのフィードバックの安定性を確保するためのデジタルフィルタとして用いることもできる。
【００１４】
マイクロコントローラは、温度を監視し、電力を調節することにより、ダイ上の温度を緩やかに制限することができる。あるいはマイクロコントローラは、ダイの電圧および温度に基づいて周波数を調節することにより、過剰温度状態を防止することができる。マイクロコントローラは、所与の周波数での動作を保証するのに必要なレベルに電圧を調節することができる。
【００１５】
組み込み型マイクロコントローラは、上に挙げた要素をすべて考慮するのと同時に、さらにファームウェアで実施されるＶＬＳＩ最適化アルゴリズムを使用することができる。マイクロコントローラは、ガードバンドの最小化、ＶＬＳＩ環境のリアルタイム制御および調節、マイクロコントローラファームウェアを再プログラミングすることによりバグを修正したり、ソフトウェアを用いたカスタムソリューションを提供するといったアルゴリズム変更の柔軟性、および多数の変数を最適化する能力等の利点を有する。ダイ上のマイクロコントローラを用いることで、大型のＶＬＳＩ  ＣＰＵを特定の動作環境に適応させ、その特定の動作環境を制御することが可能になる。
【００１６】
図１は、本発明の一実施形態による例示的な組み込み型マイクロコントローラを示す。システム１００は、ＣＰＵのＶＬＳＩダイを示す、簡略化した高レベルブロック図である。ＣＰＵは２つのコアプロセッサ１０１および１０２を有し、それらはマイクロコントローラ１０３と同じダイ上に構築される。各コアは、整数ユニットおよび浮動小数点ユニットを有する。整数ユニットおよび浮動小数点ユニットのそれぞれの近くには、温度センサが配置される。コア１０１では、温度センサ１０６が整数ユニット１０４を監視し、温度センサ１０７が浮動小数点ユニット１０５を監視する。コア１０２では、温度センサ１０９が整数ユニット１０８を監視し、温度センサ１１１が浮動小数点ユニット１１０を監視する。
【００１７】
好ましい実施形態では、温度センサは電流源に接続されたダイオードである。ダイオードは温度に反応し、温度変化に応じてダイオードの両端に−１．７ｍＶ／度等の電圧降下を生じるものが望ましい。マイクロコントローラ１０３はダイオード両端の電圧降下を測定し、その電圧情報を用いてＣＰＵコアの温度を計算する。マイクロコントローラは、電流計１１２においてアナログ／デジタル変換器を用いて電圧を測定してもよい。
【００１８】
マイクロコントローラ１０３は、４つの別々の温度センサを用いて、ＣＰＵの異なる箇所の温度を同時に監視することで、動作温度のより正確な測定値を得ることができる。図１のシステムでは、従来技術によるＣＰＵ設計よりも低い９０度くらいのしきい値、すなわち最高温度を用いることができる。マイクロコントローラ１０３は、高温に応答して（すなわち、４つのセンサのいずれかが９０度に近くなると）、ＣＰＵの電力を低減する。マイクロコントローラ１０３は、電圧調節モジュール１１３に命令して、ＣＰＵコア１０１、１０２に供給される電源電圧または電流を減少させることにより、ＣＰＵの電力を低減する。その結果、得られる能力も低下する。電流計１１２を用いて、ＣＰＵに供給される電流および電力を測定することができる。マイクロコントローラ１０３は、ＣＰＵのクロック周波数を下げることにより、ＣＰＵの動作周波数を低下させることもできる。マイクロコントローラ１０３からの命令により、クロックシステム１１４がシステムクロック周波数を低下させる。
【００１９】
一方のコアで高温が検出された場合、それは、そのコアの作業負荷が他方のコアに比べて高いことを意味する。たとえば、コア１０１内のセンサ１０６の温度が最大値に近づく一方、他の温度センサが低レベルのままである場合、それは、コア１０１の整数ユニット１０の作業負荷が高く、整数ユニット１０８の作業負荷が比較的低いことを意味する。マイクロコントローラ１０３は、ＣＰＵのオペレーティングシステムに命令してその作業負荷を再分配させ、整数ユニット１０８が整数ユニット１０４の作業負荷のうちの一部を引き受けるようにし、コア１０１の動作温度を低下させる。
【００２０】
上で例示したように、マイクロコントローラはシステム１００の動作状態を最適化する。マイクロコントローラ１０３は、高温状態にあるコアをシャットダウンするのではなく、温度上昇を監視して、コアの処理能力を緩やかに低下させ、コアの温度をその上限未満に維持する。好ましい実施形態においてマイクロコントローラ１０３は、システム１００の環境を最適化し、１００Ｗ等の指定の電力レベルを維持する。ただし、温度のほうが目標電力の１００Ｗよりも優先的に考慮される。したがって、マイクロコントローラ１０３は、ＣＰＵを１００Ｗで動作させることを許可する設定、つまり一方または両方のコアを過剰温度状態（すなわち９０度を越える温度状態）にする可能性がある設定を拒否することができる。
【００２１】
マイクロコントローラ１０３は、温度、電力その他のパラメタに対してどのように応答するかを決めるためのアルゴリズムを含むファームウェア１１５を有する。ファームウェア１１５は更新したり取り替えたりすることができ、例えばファームウェアにパッチを当てることで、システム１０１の「バグ」を修正したり、ＣＰＵにカスタム環境を与えることができる。たとえば、システム１００は通常、１００Ｗの電力および９０度の最高温度を維持するように動作する。しかしながら、例えば多数のＣＰＵを備えたブレードサーバ等のシステムなど、用途によってはそれらの条件が不適当であることもある。ＣＰＵ等の多数の発熱部品があると、システムを冷却するのが難しい場合がある。ユーザは、更新またはカスタマイズしたファームウェア１１５をマイクロコントローラ１１３に取り付けることにより、システム１００を１００Ｗ未満の電力レベル（例えば５０Ｗなど）で動作するように、あるいは９０度未満の最高温度で動作するように最適化することができる。
【００２２】
ファームウェア１１５によって提供されるソフトウェア設定情報の他に、ヒューズ１１６ａ〜１１６ｃは、マイクロコントローラ１０３に対するハードウェア設定を制御する働きを持つ。マイクロコントローラ１０３は、ヒューズ１１６ａ〜１１６ｃのうちの幾つかで両端に電圧を検出すると、そのようなパラメタに対する最適化制御を行う（または行なわない）。たとえば、温度ヒューズ１１６ａが切れていない場合、マイクロコントローラ１０３はそのライン上に電圧を検出すると、システム１００のプロセッサコア１０１および１０２に対する温度制御を行う。あるいは、マイクロコントローラ１０３は、温度ヒューズ１１６ａの両端に電圧が検出されなければ、システム１００に対する温度制御を行うようにしてもよい。同様に、ヒューズ１１６ｂおよび１１６ｃの両端に現れる電圧はそれぞれ、マイクロコントローラ１０３がシステム１００に対して電力および電圧の制御を行うか否かにそれぞれ影響を与える。他にもヒューズ（図示せず）を設け、マイクロコントローラ１０３に対するハードウェア設定を行なうことで、他のシステムパラメタを制御することができる。
【００２３】
マイクロコントローラ１０４は電流計１１２を用いてＣＰＵの電力を測定する。電流計１１２は高精度の電圧計であってもよい。一実施形態において、電流計１１２は電圧制御発振器を含む場合がある。電流計１１２は、ＣＰＵパッケージの抵抗や、電源グリッドの抵抗等のような寄生抵抗両端の電圧降下を測定することにより、ＣＰＵに流入する電流を計算するのに使用される。あるいはマイクロコントローラ１０３は、所定の抵抗値を使用したり、たとえば較正動作によって寄生抵抗を計算するようにしてもよい。電圧値および抵抗値はＣＰＵの電流および電力の計算に用いられる。ＣＰＵダイ上の電流計を較正する方法およびシステムは、２００３年８月２０日に出願された「A METHOD FOR MEASURING INTEGRATED CIRCUIT PROCESSOR POWER DEMAND AND ASSOCIATED SYSTEM」と題する米国特許出願第１０／６４４，３７６号に開示されている。
【００２４】
マイクロコントローラ１０３は、電源から得られる電圧を調節することにより、システム１００のクロック周波数を調節することができる。クロックシステム１１４から供給されるこのクロック周波数は、その得られるシステム電圧に比例する。マイクロコントローラ１０３は、電源から得られる電圧を低下させる際に、クロックシステム１１４により、クロック信号の周波数を、その得られる電力でまかなうことができる速度まで低下させる。その結果、電力が低減されているときは、コア１０１および１０２が一秒当たりに実行するオペレーションの回数が減り、プロセッサコアの温度が低下することになる。他の実施形態として、マイクロコントローラは、システム電圧または電力を調節することなく、クロック周波数を直接制御してもよい。こうすることで、ＶＬＳＩ環境における電力と周波数の間の関係については最適にならない場合もあるが、場合によってはそれが望ましい場合もある。
【００２５】
マイクロコントローラ１０３は、多数のパラメタを同時に考慮することができ、それらパラメタを用いてＣＰＵの動作を最適化することができる。マイクロコントローラ１０３は、ＣＰＵの現在の動作状態に関する電力、電圧、電流、温度、および周波数などのパラメタを考慮することができる。マイクロコントローラ１０３は、ファームウェア１１５にある最適化アルゴリズムを用いて選択されたパラメタを調節することにより、システム１００の動作を設計上のシステム電力レベルに、またはその付近に維持しつつ、システム１００が過剰温度状態になるのを防止する。
【００２６】
図１に示したシステムは１つのダイ上の２つのプロセッサコアを有するものであったが、当業者であれば、マイクロコントローラ１０３が複数のダイを有するＣＰＵや、１以上のダイ上に３以上のプロセッサコアを有するＣＰＵを制御するのにも、使用できるものであることが分かるであろう。また、マイクロコントローラ１０３は、複数のＣＰＵダイ上のプロセッサコアについて温度と電力を別々に調節するのにも使用することができる。さらに、当業者であれば、本発明がプロセッサやＣＰＵの監視制御に限定されるものでなく、いかなる種類の集積回路の環境の監視制御にも使用できるものであるということが分かるであろう。
【００２７】
図２は、ＣＰＵのＶＬＳＩ環境を監視制御するためのダイ組み込み型マイクロコントローラで使用されるプロセスの一例を示すフロー図である。２０１で、マイクロコントローラは、センサおよび／またはルックアップテーブルを較正する。好ましい実施形態において、マイクロコントローラはその較正をセンサ測定と交互に実施し、較正をその反復処理の一部にすることで、較正プロセスがマイクロコントローラによるＣＰＵ環境の監視制御の動作を妨げないようにする。
【００２８】
２０２で、マイクロコントローラは１以上のセンサを過剰温度状態について監視する。１以上の温度センサが過剰温度状態の存在を示す場合、プロセス２００はブロック２０３へ移り、そこでマイクロコントローラがクロック周波数を減少させ、プロセッサコアの温度を低下させようと試みる。代替の実施形態として、ブロック２０３において、マイクロコントローラはＣＰＵ電圧を低下させてもよい。それによりクロック周波数が減少する。
【００２９】
ブロック２０２で、マイクロコントローラは、現在存在している過剰温度状態を検出する。あるいは、マイクロコントローラは、一連の温度の読取り値を予想される過剰温度条件と比較してもよい。たとえば、一連のサンプルにおける各温度測定値が前の測定値よりも高かった場合、マイクロコントローラは、予想最高温度を防止する対処を行なうことができる。ブロック２０２で、コア温度が許容限界内にあっても過剰温度状態が予測される場合、マイクロコントローラは、温度問題を予測してブロック２０３へ移り、システム周波数を減少させることにより、その過剰温度状態を防止することができる。
【００３０】
ブロック２０２で温度が許容できるものであった場合、または２０３でクロック周波数を下げた後、ブロック２０４で、マイクロコントローラはクロック周波数を測定する。クロック周波数が所望範囲未満であったならば、ブロック２０５で、マイクロコントローラはクロック周波数を増加させる。マイクロコントローラは、前の周波数補正（例えばブロック２０３で行なった補正など）を打ち消してしまうことがないように、ブロック２０５でクロック周波数を増加させる前に行われた現在の温度測定値の補正をすべて考慮する。
【００３１】
ブロック２０４でクロック周波数が許容範囲内にあった場合、またはブロック２０５でクロック周波数を補正した後、ブロック２０６において、マイクロコントローラはＣＰＵの電力レベルを測定する。電力レベルが許容範囲内にあれば、プロセスは２０１から再び開始される。電力レベルが最適範囲よりも低い場合、マイクロコントローラは、ブロック２０７で電力レベルを上げてから、プロセスを繰り返す。ブロック２０６でＣＰＵの電力レベルが最適範囲よりも高い場合、マイクロコントローラは、ブロック２０８で電力を下げてから、プロセスを繰り返す。マイクロコントローラは、ＣＰＵの動作をその設計上の電力レベルに維持しようとする。ただし、ブロック２０２で高温状態が検出された場合、マイクロコントローラは電力レベルを上げることができない場合もある。
【００３２】
ブロック２０６で電力レベルをチェックし、必要に応じてブロック２０７で調節した後、マイクロコントローラはブロック２０１の較正動作に戻り、一連のＣＰＵ環境監視動作を通しでもう一度開始する前に、そこで２回目の較正動作を実施する。
【００３３】
図３は、集積回路を監視制御する方法を示す。この方法は、組み込み型マイクロコントローラを集積回路と同じＶＬＳＩダイ上に設けること（３０１）を含む。この方法は、集積回路のＶＬＳＩ環境を組み込み型マイクロコントローラを用いて監視制御すること（３０２）をさらに含む。
【図面の簡単な説明】
【００３４】
【図１】本発明の一実施形態による組み込み型マイクロコントローラを示す図である。
【図２】集積回路のＶＬＳＩ環境を監視するダイ組み込み型マイクロコントローラで使用されるプロセスの例を示すフロー図である。
【図３】集積回路を監視制御する方法を示すフロー図である。
【符号の説明】
【００３５】
１０１、１０２  ＣＰＵコア
１０３  マイクロコントローラ
１０４、１０８  整数ユニット
１０５、１１０  浮動小数点ユニット
１０６、１０７、１０９、１１１  温度センサ
【図１】
2005071364.tif 000003
【図２】
2005071364.tif 000004
【図３】
2005071364.tif 000005