(57)【要約】集積回路およびプロセッサの複数のロジックコア（１２０）は、それぞれ独立した周波数および電圧で動作するように構成される。加えて、ロジックコアとインターフェースをとるように構成されたコモンブリッジ（１１０）などの他の構成要素は、ロジックコアが動作する電圧および周波数とは独立した電圧および周波数で動作するように構成される。ロジックコアの動作周波数及び／又は電圧は、電力管理および温度制御を含む様々な理由から、独立して調整することができる。コントローラとロジックコアとの間のインターフェースにおいてのロジック回路は、一電圧及び／又は周波数から別の電圧及び／又は周波数にロジック信号を変換し、ブリッジとロジックコアとの通信を、これらの２つが異なる電圧及び／又は周波数で動作しているときに、可能にするようにする。
2009522688.tif 000002
【特許請求の範囲】
【請求項１】
複数のロジックコア（１２０）を含み、前記複数のロジックコアのうちの少なくとも１つは、前記複数のロジックコアのうちの別のロジックコアが動作する電圧レベルから独立した電圧レベルで動作するように構成されており、さらに、前記ロジックコアの少なくとも１つは、前記複数のロジックコアのうちの別のロジックコアが動作する周波数から独立した周波数で動作するように構成されており、かつ、
コモンインターフェースユニット（１１０）を含み、前記コモンインターフェースユニットは、前記複数のロジックコアと、前記集積回路の外部の１以上の構成要素との間にインターフェースをとるように構成されており、動作において、前記コモンインターフェースユニットは、異なる電圧レベルで動作している複数のロジックコアのうちの１つ、および、異なる周波数で動作しているロジックコアのうちの１つと通信するように構成される、集積回路（１００）。
【請求項２】
前記集積回路に対する現在の動作温度が特定の温度よりも高いとの判断を受けて、前記複数のロジックコアのうちの少なくとも１つに対する現在の動作電圧レベルを調整するように構成された電力管理ロジックをさらに含む、請求項１記載の集積回路。
【請求項３】
前記集積回路に対する現在の動作温度が特定の温度よりも高いとの判断を受けて、前記電力管理ロジックは、前記コモンインターフェースユニットに対する動作電圧を、調整電圧に調整するようにさらに構成されており、前記調整電圧は前記コモンインターフェースユニットに対する現在の動作電圧よりも低い、請求項２記載の集積回路。
【請求項４】
前記電力管理ロジックはさらに、前記集積回路に対する現在の動作温度が、前記集積回路に対する特定の温度よりも高いとの判断を受けて、前記複数のロジックコアのうちの少なくとも１つに対する動作周波数を調整するように構成される、請求項２記載の集積回路。
【請求項５】
前記電力管理ロジックはさらに、前記コモンインターフェースユニットに対する動作周波数を調整周波数に調整するように構成され、前記調整周波数は、前記複数のロジックコアのうちの少なくとも１つの調整動作周波数に等しいか、それよりも大きい、請求項４記載の集積回路。
【請求項６】
前記集積回路の現在の動作温度が前記集積回路の特定の温度よりも高いとの判断を受けて、前記複数のロジックコアのうちの少なくとも１つの動作周波数を調整するように構成される、請求項１記載の集積回路。
【請求項７】
前記複数のロジックコアのうちの少なくとも１つと、前記コモンインターフェースユニットとの間のインターフェースに配置される電圧変換ロジックをさらに含み、前記電圧変換は、前記コモンインターフェースユニットが動作している電圧レベルから、前記ロジックコアのうちの少なくとも１つが動作している電圧レベルに通信信号を変換するように構成される、請求項１記載の集積回路。
【請求項８】
前記集積回路の現在の動作温度が、前記集積回路の特定の温度よりも低いとの判断を受けて、前記複数のロジックコアのうちの少なくとも１つの動作周波数を上げるように構成される、請求項１記載の集積回路。
【請求項９】
複数のロジックコア（１２０）を含む集積回路（１００）に対する現在の動作温度が、特定の温度よりも高いことを判断するステップを含み、前記ロジックコアの各々は、別の前記ロジックコアが動作する電圧から独立した電圧で動作するように構成され、前記ロジックの各々は、別の前記ロジックコアが動作する周波数から独立した周波数で動作するように構成されており、さらに、
前記判断ステップを受けて、前記複数のロジックコアのうちの少なくとも１つに対して、低動作電圧か低動作周波数を供給するステップを含み、前記低動作電圧は、前記複数のロジックコアのうちの少なくとも１つに対する現在の動作電圧よりも低く、前記低動作周波数は、前記複数のロジックコアのうちの少なくとも１つに対する現在の動作周波数よりも低い、方法。
【請求項１０】
プロセッサと、前記プロセッサに結合されるメモリと、を含み、さらに、前記プロセッサは、
プログラム命令を実行するように構成された複数のプロセッサコア（１２０）を含み、前記複数のプロセッサコアの各々が、前記複数のプロセッサのうちの別のプロセッサが動作しているそれぞれの電圧から独立した電圧で動作し、さらに、前記複数のプロセッサコアの各々が、前記複数のプロセッサコアのうちの別のプロセッサコアが動作している周波数から独立した周波数で動作するように構成されており、
前記プロセッサコアの各々に結合されるコモンインターフェースユニット（１１０）を含み、
前記コモンインターフェースユニットは、前記プロセッサコアの各々ならびに前記プロセッサ外部の１以上の構成要素とインターフェースをとるように構成されており、
前記コモンインターフェースユニットは、前記複数のプロセッサコアのうちの任意のプロセッサコアが動作している電圧から独立した電圧で動作するように構成されており、さらに、
前記コモンインターフェースユニットは、前記複数のロジックコアのうちの任意のロジックコアが動作している周波数から独立した周波数で動作するように構成されている、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は集積回路の分野に関し、より詳細には、独立周波数及び／又は電圧で動作する集積回路の素子間の動作ならびに通信の技術分野に関する。
【背景技術】
【０００２】
典型的に、マイクロプロセッサなどの集積回路に対する動作電圧は、マザーボード上の、ＩＣの外部に配置される回路によって調整される。その理由の１つとして、キャパシタンスを大きくする必要があり、これによりＩＣ上では非常の多くのスペースを消費してしまうことが挙げられ。電圧レギュレータの出力電圧レベルにおける電力は、複数の実装ピンを通じてＩＣのプロセッサコアを含む内部回路に供給される。このようにする１つの理由に、いずれの所与のピン及び／又はピンにつながるトレースに対しても現在の処理要件を減らすようにすることが挙げられる。概して、供給ラインは、コアならびに他の素子が共通の電圧レベルで動作することができるように、内部接続される。
【０００３】
典型的に、複合ロジックコア設計にすることで、ある特定の時点において、特に高クロック周波数において、ＩＣ内で大量の熱が生成される。システムの冷却メカニズムとともにＩＣをパッケージするにあたって、ＩＣは、熱生成がもっとも顕著な部位において、その最大動作温度を超えることなく動作するように、その最大周波数が決定される。ＩＣメーカは、特定のデバイスに対して、正確かつ信頼性をもって機能が継続される最大実装温度を特定する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
マイクロプロセッサなどの複合ＩＣは高額になりがちなので、一般に、そのような回路を過熱による損傷から保護することが望ましい。多くの場合、温度センサは、複合ＩＣを含むシステム内の様々な場所に設けられて、その場所での周囲温度を測定するようにする。マザーボードに半田付けするか、マザーボードのソケットにはめ込み、かつ、チップにヒートシンク及び／又は他の冷却装置を直接的に取り付けるといった、システムに複合ＩＣを組み入れるために一般に使用される方法に起因して、温度センサーは、一般に、ＩＣ自体とは別の一に設けられる。したがって、ＩＣパッケージの温度は一般的に、ＩＣ表面から離れたある地点で現実の温度測定値から予測する必要がある。この予測を行うにあたって従来のアルゴリズムが用いられた場合、その結果得られるケース温度予測は、ＩＣの現実の温度を著しく越えたものになる場合がある。
【０００５】
典型的なシステムであれば、システム全体に、または少なくともＩＣに対する電力を制御するようにＩＣの予測されたパッケージ温度が用いられる。例えば、温度センサの出力は、「トリップポイント」値と比較され、この値に達すると、システムの電源をシャットダウンさせる信号が生成される。そのようなシステムは、確かにＩＣを保護することができるが、多くの場合ユーザは、シャットダウンの可能性について事前に警告されず、さらに、長時間持続的記憶装置に保存せずに膨大な量のデータを入力してしまった場合には、不都合なものとなる。さらに、上述のように、このメカニズムは、チップの現実の温度の従来の手法による予測に基づいて起動することから、そのような全てのシャットダウンが必ずしも必要とされるわけではない。
【０００６】
ユーザのデータ損失率を低下させるように、システムは、シャットダウン温度よりも幾分か低い温度でトリガするように構成された第２トリップポイント回路を用いてもよい。そのようなシステムでは、この低温回路は、ユーザにシステムのシャットダウンが差し迫っていることと、保護されていないデータを保護するように、ユーザが適切なアクションを取る必要があること、とを知らせるアクションを開始するように用いられる。このような方法は、ユーザのデータを保護するのに役立つものの、温度がこれらトリップポイント間の範囲に入り、かつシャットダウンポイントには実際に到達することがない場合には、非常に厄介なものとなってしまう。いずれの場合においても、一旦シャットダウンリミットに到達してしまうと、ユーザは、システムが十分に冷却され、再起動されるまで、システムを使うことができない。
【課題を解決するための手段】
【０００７】
本発明の一実施形態によれば、プロセッサまたは他の集積回路は、複数のロジックコアを含み、その各々は他のロジックコアから独立した周波数ならびに電圧で動作するように構成される。換言すれば、プロセッサの各ロジックコアは、プロセッサの他のロジックコアもまた同じ電圧及び／又は周波数でも動作しているかどうかに関わらず、特定の電圧ならびに周波数で動作するように構成される。そのようなマルチコア集積回路のロジックコアの動作電圧ならびに周波数は、電力管理ならびに温度管理を含む様々な理由により調整される。例えば、プロセッサの１以上のコアは、ある特定の状況において電力を節約するように、低周波数及び／又は電圧で動作するように調整される。
さらに、プロセッサの１以上のロジックコアは、かなり熱い状態で動作しているプロセッサを（従来技術で一般的に行われるように）ただシャットダウンするのではなく、プロセッサがあまり熱を生成せず、許容できる動作温度にまで下げることができるように、低周波数及び／又は電圧で動作するように調整される。例えば、プロセッサまたは他の集積回路は、所定の最大動作温度を有しており、この温度を超えると、プロセッサのパフォーマンスは不安定となるか、プロセッサに損傷が生じるおそれがある。プロセッサの現在の温度が、そのような最大動作温度であるか、この最大動作温度を超えているか又は近い温度であると判定された場合、プロセッサまたは他の集積回路の１以上のロジックコアは、プロセッサの動作温度を低くするように、低周波数及び／又は電圧で動作するように調整される。
【０００８】
加えて、プロセッサまたは他の集積回路はさらに、ブリッジング、ルーティングまたはプロセッサのロジックコアと通信するかインターフェースをとる他のコモンロジック回路を含んでもよい。例えば、ノースブリッジは多くのプロセッサの共通構成要素であり、さらに、集積回路の複数のロジックコアから、他のサブシステム、構成要素、または、集積回路外部の周辺装置との通信ならびに送信を行うように、別々のインターフェースを含んでもよい。１つのプロセッサの複数のコアが独立した周波数ならびに電圧で動作するように構成されているとき、そのようなコモンブリッジロジックは、別の電圧レベル及び／又はクロック周波数を用いて各ロジックコアと通信するように構成される。したがって、コモンブリッジが用いる電圧ならびに周波数は、マルチコア集積回路のロジックコアの動作特性（つまり、電圧ならびに周波数）の変更の一環として調整される。加えて、コモンブリッジロジックは、ロジックコアの現在の動作電圧ならびに周波数から独立した電圧ならびに周波数で動作するように構成される。換言すれば、コモンブリッジロジックは、個々のロジックコアが現在動作している任意の特定の電圧または周波数とは異なる周波数ならびに電圧で動作するように構成される。
【０００９】
ある実施形態では、マイクロプロセッサなどの集積回路は、プロセッサの現在の動作温度を判断する及び／又は報告するように構成された温度センサを含む。ある実施形態では、集積回路は、複数の温度センサ、例えば、ロジックコアの各々に対して１つのセンサ、を含み、プロセッサの様々な領域に対して、個別の、または局所化した動作温度を供給するようにする。例えば、一実施形態では、複数のロジックコアうちの特定の１つのロジックコアの動作電圧及び／又は周波数を低下させ、プロセッサ上で「ホットスポット」と判断された場所の温度を、プロセッサの様々な領域（例えば、個々のロジックコア）に対する温度測定値に基づいて下げるようにしてもよい。しかし、他の実施形態では、集積回路全体において、１つの動作温度しか測定されないが、他の態様では、プロセッサの様々な領域の個々の温度測定値が平均化されるか合計されて、プロセッサの１つの、全体の動作温度が決定される。
【００１０】
ある実施形態では、プロセッサの全ロジックコアの動作電圧及び／又は周波数は、プロセッサの動作温度を下げるように、または、プロセッサの全体の電力消費を削減するように、同時に下げることができる。別の実施形態では、個々のロジックコアの動作電圧及び／又は周波数を低下させてもよい。例えば、最適な動作温度よりも高い動作温度がプロセッサに対して検出されれば、低電圧及び／又は周波数で動作するように、動作複数のロジックコアのうちの１つだけを調整して、プロセッサの全体の動作温度を低下させるようにしてもよい。そのような例において、１つのロジックコアの動作電圧及び／又は周波数を低下させてもプロセッサの全体の動作温度が十分に下がらなければ、さらなるロジックコアの動作電圧及び／又は周波数を低下させて、プロセッサの動作電圧をさらに下げるようにしてもよい。
【００１１】
別の例では、集積回路が、望ましいとされる電力消費量以上を消費していれば、プロセッサコアの１つの動作電圧または周波数を低下させて、プロセッサの全体の電力消費を下げるようにする。必要に応じて（または、所望により）、ロジックコアの他の動作電圧及び／又は周波数も、同時に、または続いて下げられ、全体の電力消費をさらに下げるようにする。ある実施形態では、調整を行うロジックコアの選択、または、複数のロジックコアの動作電圧及び／又は周波数を低下させる順番はランダムに選択されてよい。しかし、他の実施形態では、低電圧及び／又は周波数で動作するように調整されるロジックコアは、ロジックコアの使用目的やプロセッサ内のロジックコアの位置など、他の要因に基づいて選択されてもよい。
【００１２】
ロジックコアの動作周波数は、そのロジックコアの動作電圧に関連しているので、動作温度を下げるなど、ロジックコアの動作電圧が調整されるときは、ロジックコアの動作周波数も調整される。例えば、ロジックコアの動作電圧が、現在の動作周波数と適合しないレベルにまで下げる場合、それに応じてロジックコアの動作周波数もさらに下げられる。
【００１３】
加えて、ある実施形態では、動作電圧及び／又は周波数が、集積回路の１つ以上のロジックコアに対して調整されるときに、コモンブリッジ、インターフェース、または、プロセッサのロジックコアとインターフェースをとる他の構成要素の動作周波数及び／又は電圧もさらに調整される。例えば、コモンブリッジがロジックコントローラの各々とインターフェースをとれば、ロジックコアのうちの１つの動作電圧及び／又は周波数が変更されるときに、コモンブリッジに対する周波数及び／又は電圧、あるいは、コモンブリッジの一部だけが調整される。ある実施形態では、ノースブリッジなどの１つのコモンブリッジは、プロセッサまたは他の集積回路の複数のロジックコアとインターフェースをとるように構成され、さらに、コモンブリッジの動作電圧及び／又は周波数は、インターフェースをとる構成要素の各々の動作電圧及び／又は周波数に適合可能となるように調整される。
【００１４】
例えば、一実施形態では、コモンブリッジは、複数のポートやインターフェースを含み、その各々は、プロセッサの複数のロジックコアのうちの別の１つと通信しており、ポートの各々の動作周波数及び／又は電圧は、特定のポートが通信するそれぞれのロジックコアの動作電圧及び／又は周波数と互換性をとることができるように、調整される。別の実施形態では、コモンブリッジの、１つの全体の動作電圧及び／又は周波数は、プロセッサの全ロジックコアの動作電圧及び／又は周波数と互換性をとることができるように、調整される。
例えば、コントローラの動作周波数は、プロセッサの全ロジックコアの現在の動作周波数よりも高くなるように調整される。ある実施形態では、コントローラの動作周波数は、１以上のロジックコアの動作周波数の整数の倍数となるように調整される。別の実施形態では、コントローラの動作周波数は、ロジックコアの動作周波数よりも高くなるように調整される。その周波数は、ロジックコアの動作周波数の整数の倍数でなくてもよい。
【００１５】
ある実施形態では、マルチコアプロセッサはさらに、コモンブリッジとロジックコアとが異なる電圧及び／又は周波数で動作しているときに、コモンブリッジと１以上のロジックコアとの間でデータ変換を行うように、及び／又は、それらの間で通信する信号を制御するように構成される回路を含む。例えば、プロセッサは、プロセッサのコモンブリッジとロジックコアとの間の１以上の通信信号や配線に使用される電圧レベルを調整するように構成される電圧変換回路を含む。加えて、ある実施形態では、プロセッサは、異なる周波数で動作するコモンブリッジとロジックコアとの間で通信するデータを変換するように構成される回路を含む。さらに別の実施形態では、コモンブリッジインターフェースとロジックコア間の通信時に使用されるロジカルプロトコルは、周波数の差を、よって、コモンブリッジインターフェースとロジックコア間の通信に対するクロックタイミングの差を考慮に入れる、あるいは予め算入されるように設計及び／又は構成される。
【００１６】
ある実施形態では、複数のロジックコアを含むマルチコアプロセッサまたは他のマルチコア集積回路を含むシステムは、各々、互いから独立した電圧で動作するように構成されており、さらに、ある範囲の電圧をプロセッサのロジックコアに供給するように構成された１以上の電圧レギュレータを含む。一実施形態では、そのようなシステムは、プロセッサの各ロジックコアに対して個々の電圧レギュレータを含む。しかし、他の実施形態では、システムは、ある範囲の電圧をプロセッサに送るように構成された１つの電圧レギュレータしか含まないが、該システムはさらに、電圧レギュレータからの１つの電圧信号を分ける及び／又は分割し、さらに、個々の電圧信号（各々は異なる電圧であってよい）をプロセッサコアの別々のロジックコアに送るように構成された回路を含む。
ある実施形態では、電圧レギュレータならびに任意の電圧信号分割ならびに電圧変換回路はプロセッサに内蔵されていてもよいし、プロセッサの一部であることができる。一方、他の実施形態では、電圧レギュレータならびに任意の付随の信号分割または変換回路はプロセッサの外部にあってもよい。さらに他の実施形態では、（複数の）電圧レギュレータは、プロセッサの外部にあってもよく、一方、一部または全ての任意の付随の信号分割または変換回路は、プロセッサの一部であってもよい。
同様に、互いから独立した周波数で動作するように構成された複数のロジックコアを含むマルチコア集積回路を含むシステムはさらに、ある範囲のクロック信号や周波数信号を、プロセッサに対して、プロセッサの一部として、または、プロセッサの外部として供給するように構成された１以上のクロック信号生成器を含む。上述のように、各種の実施形態によれば、電圧レギュレータおよび任意の付随の信号分割または調整回路と同様に、クロック生成器および付随の信号分割または変換回路は、プロセッサの一部であってもよく、プロセッサの外部にあってもよく、あるいはプロセッサの内部と外部との組合せにおいて設けられてよい。
【００１７】
ある実施形態では、ロジックコアの動作電圧及び／又は周波数を制御するように構成されたロジック回路やファームウェア及び／又は通信コントローラは、プロセッサに内蔵されてもよい。別の実施形態では、そのような回路やファームウェアはプロセッサの外部にあってもよいが、プロセッサ中の各種の構成要素、例えば、ロジックコア及び／又は通信コントローラなど、とインターフェースをとるように構成される。
【発明を実施するための最良の形態】
【００１８】
本発明は、様々な改良を行い、また、他の形態で実施することができるが、ここに説明されている特定の実施例は、例示として示されたものであり、以下にその詳細を記載する。しかし当然のことながら、ここに示した特定の実施例は、本発明を開示されている特定の形態に限定するものではなく、むしろ本発明は添付の請求項によって規定されている発明の範疇に属する全ての改良、等価物、及び変形例をカバーするものである。本明細書中に使用されている見出しは、分類のみを意図しており、本明細書または特許請求の範囲を限定するものではない。さらに、本願にわたり「し得る、してもよい」との用語は許容の意味（すなわち、可能性があること、できること）に用いられ、義務的な意味（すなわち必須）の意味には用いられていない点に留意されたい。「含む、備える」との用語ならびにその派生語は、「含むがこれに限定されない」ことを意味する。「接続されている」との用語は、「直接的または間接的に接続されている」ことを意味し、「結合されている」との用語は、「直接的または間接的に結合されている」ことを意味する。
プロセッサまたは他の集積回路は、独立した電圧レベルならびに周波数で動作するように構成された複数のロジックコアを含む。加えて、プロセッサまたは集積回路は、１以上のロジックコアを含むプロセッサの各種構成要素と通信するように構成されたコモンブリッジまたはインターフェースユニットを含む。そのようなコモンブリッジユニット、インターフェースユニット、または、独立した電圧及び／又は周波数で動作するロジックコアと通信するように構成された他の構成要素はさらに、メモリ、追加の通信バス、及び／又は他の周辺装置などの、プロセッサ外部の構成要素と通信するように構成されている。各々が複数の、（動作電圧および周波数について）独立に制御可能なロジックコアを含む１以上のマルチコアプロセッサを備えたシステムは、電力管理のために、１以上のロジックコアの動作電圧及び／又は周波数を自動調整するように、または、システムの動作温度を制御するように構成される。
【００１９】
例えば、図１は、本実施形態によるマルチコア集積回路１００を含むシステムを示すブロック図である。上述のように、集積回路は、各々が独立した電圧および周波数で動作するように構成されるロジックコア１２０Ａおよび１２０Ｂなどの複数のロジックコアを含む。換言すれば、各ロジックコアは、ロジックコア１２０Ｂなどの他のロジックコアが動作する電圧及び／又は周波数から独立した電圧及び／又は周波数で動作する。図１は２つのロジックコアを含む集積回路１００を示しているが、他の実施形態では、追加のロジックコアを含む集積回路またはマルチコアプロセッサを含んでもよい。ある実施形態では、集積回路１００は、マルチコアプロセッサを表し、ロジックコア１２０Ａおよび１２０Ｂは、集積回路１００に送られる命令を実行するプロセッサコアを表しうる。概して、本文に記載するシステム、方法ならびに技術は、独立した電圧及び／又は周波数で動作するように構成された任意の数のロジックコアを含むシステムまたはデバイスに適用される。例えば、ある実施形態によれば、ある１つのプロセッサは、相互から独立した周波数と電圧とで動作するように構成された、複数のロジックコア、またはプロセッサコアを含みうる。他の実施形態では、ある１つの集積回路は、２以上のロジックコアを含み、この各々は、別のロジックコアまたは他の構成要素が動作している周波数または電圧から独立した周波数および電圧で動作するように構成される。
【００２０】
さらに、図１に示しているように、マルチコア集積回路またはプロセッサは、コモンブリッジロジック１１０などのコモンブリッジまたはインターフェースユニットを含む。これらはロジックコアに加えて、他の素子や、集積回路１００の内部あるいは外部の周辺装置、例えば、バス１５０、周辺装置１６０、及び／又はメモリサブシステム１７０などと通信を行うように構成される。ある実施形態では、コモンブリッジロジック１１０は、ロジックコア１２０Ａおよび１２０Ｂが動作している電圧または周波数とは違う、独立した電圧または周波数で動作するように構成されてもよい。ある実施形態では、コモンブリッジロジック１１０が動作する電圧および周波数は、ロジックコア１２０Ａおよび１２０Ｂが動作する電圧及び／又は周波数に関連するか、依存する。例えば、ある実施形態では、コモンブリッジロジック１１０は常に、ロジックコア１２０Ａおよび１２０Ｂのいずれかが現在のところ動作している最高の周波数と少なくとも同程度に高いか、場合によってはそれよりも高い周波数で動作する。ロジックコアが動作する周波数は、一般的にはロジックコアが動作する電圧レベルに関連するので、ある実施形態では、ロジックコア１２０Ａおよび１２０Ｂが動作する周波数は、それらロジックコアが動作する電圧に左右される。
【００２１】
さらに、ある実施形態では、１以上のマルチコア集積回路を含むシステムはさらに、電圧レギュレータ１３０などの１以上の電圧レギュレータを含んでもよい。これは、ある範囲の電圧を集積回路に供給するように構成されており、ある実施形態では、独立した電圧を集積回路の各ロジックコアに供給するように構成される。さらに、ある実施形態では、電圧レギュレータ１３０はさらに、ある範囲の電圧をコモンブリッジロジック１１０に供給する。同様に、１以上のマルチコア集積回路を含むシステムはさらに、周波数レギュレータ１４０などの１以上の周波数レギュレータを含んでもよい。これは、ロジックコア１２０Ａおよび１２０Ｂなどのロジックコアにクロック周波数信号を供給するように構成される。ある実施形態では、周波数レギュレータ１４０はさらに、クロック周波数信号をコモンブリッジロジック１１０に供給するように構成される。周波数レギュレータ１４０は参照クロック信号を生成するように、発振器またはフェーズロックループ（ＰＬＬ）などの任意の様々なクロックソースを含む。さらに、ある実施形態では、周波数レギュレータ１４０は、クロックツリーまたはクロック信号を複数の個々の信号に分けるか分割するように構成された他の回路を含み、さらに、周波数の異なる、複数の独立したクロック信号を供給するように複数のクロックソースを含みうる。
【００２２】
ある実施形態では、コモンブリッジ、インターフェースユニット、またはノースブリッジ(Northbridge)などの他のコモンブリッジロジックは、別々の電圧レギュレータ及び／又は周波数生成器によって制御されうる。ある実施形態では、複数のロジックコアとインターフェースをとるコモンブリッジを、ロジックコアの各々から独立した電圧及び／又は周波数で動作可能とすることで、このコモンブリッジをロジックコアよりも高い電圧および周波数で動作させながら、コアを低電圧ならびに周波数で動作させることができ、これにより、コモンブリッジにおけるボトルネックの可能性を最小限に抑えることができる。コモンブリッジをより高い周波数で動作可能とすることで、コモンブリッジのメインの動作周波数のディバイダである周波数で通信することにより、このコモンブリッジを各コアと、該コアのそれぞれの周波数で通信させることもでき、コモンブリッジに複数の周波数を供給しないでも済むようにする。
【００２３】
ある実施形態では、周波数レギュレータ１４０は、１以上の電圧をコモンブリッジ１１０に供給するように構成される。例えば、コモンブリッジロジック１１０は、集積回路１００のロジックコア１２０の各々とインターフェースをとるように構成されており、したがって、電圧レギュレータ１３０などから１以上の電圧が供給される。同様に、ある実施形態では、周波数レギュレータ１４０は、１以上の周波数またはクロック信号をコモンブリッジロジック１１０に供給するように構成される。コモンブリッジロジック１１０は、ロジックコアと同じロジックレベル及び／又はクロックタイミングを用いてロジックコアとインターフェースをとるように構成されており、従って、コモンブリッジロジック１１０は、各それぞれのロジックコアの個々の電圧およびクロックタイミングを用いて各ロジックコアと通信するように、複数の電圧及び／又は周波数が供給される。
【００２４】
別法として、ある実施形態では、コモンブリッジロジック１１０は、電圧及び／又は周波数信号を１つしか受信しないように構成される。このような実施形態では、コモンブリッジロジック１１０は、ロジックコアがコモンブリッジロジック１１０とは違う電圧レベルまたは周波数で動作していても、個々のロジックコアとインターフェースをとるように構成される。例えば、コモンブリッジロジック１１０は、ロジックコア１２０Ａの電圧と少なくとも同程度に高い電圧が供給され、また同様に、ロジックコアＡの現在の動作周波数と少なくとも同程度に速い周波数またはクロック信号が供給され、コモンブリッジロジック１１０間のインターフェースは、異なるロジックレベル間及び／又はコモンブリッジロジック１１０とロジックコア１２０Ａ間の異なる周波数間の通信、例えば、１以上の制御線上の信号、を変換するように構成されうる。
【００２５】
一実施形態では、各ロジックコア１２０およびコモンブリッジロジック１１０は、相互から独立したそれぞれの供給電圧ならびにクロックを受信する。例えば、多数の異なる電圧が生成され、及び／又は調整されて、各種の接続を介して集積回路１００に入力される。別法として、１つの電圧が集積回路１００に入力され、所要の電圧を生成するように内部で変更される。同様に、周波数の異なる複数のクロック信号が、外部か内部のいずれかに生成されて、個々のロジックコア１２０及び／又はコモンブリッジロジック１１０に結合される。一実施形態では、１つの周波数におけるクロック信号は、ロジックコア１２０に結合され、各コアは、この信号から生じる特定の内部動作周波数を生成する。
【００２６】
上記に、マルチコアプロセッサのマルチロジックコアの動作電圧及び／又は周波数を独立に制御することについて述べているが、ある実施形態によれば、動作電圧及び／又は周波数を独立に制御する、本文に記載したシステム、方法および技術は、独立した動作電圧及び／又は周波数で動作するように構成された複数領域またはセクションを含む、いずれの集積回路または構成要素に適用することができる。例えば、コントローラ、ブリッジ、または、複数のコンポーネントとインターフェースをとるか通信するように構成されている他の構成要素は、これらのインターフェースの周波数及び／又は電圧を独立して制御するように構成される。さらに、本文に記載されている方法、技術およびシステムは、１つの集積回路の異なる部分において、または、インターフェース構成要素群であっても、回路または構成要素群に対する動作温度の変更を受けて、動作電圧及び／又は周波数を独立に制御するように適用してもよい。
【００２７】
図２Ａに、マルチコア集積回路１００を含むシステムの一実施形態を表すブロック図を示す。図２Ａに示す実施形態では、電力管理ロジック２００は、動作電圧及び／又は動作周波数などの、集積回路１００の複数のロジックコア１２０の各々の動作特性を制御するように構成される。例えば、図２Ａは、ノート型パソコン、携帯端末、あるいはＰＤＡなど、電力管理ロジック２００を含む、バッテリ式のコンピュータデバイスの回路の一部を表しうる。このような例では、電力管理ロジック２００は、集積回路１００の全体の電力消費を調節するように、集積回路１００の複数のロジックコア１２０のうちの１つ以上の動作電圧及び／又は周波数などの動作特性を調節するように構成されうる。例えば、一実施形態では、電力管理ロジック２００は、システムがバッテリで動作しているときに１以上のロジックコア１２０の動作特性を下げるように構成され、さらに、システムがバッテリで動作していないときに１以上のロジックコア１２０の動作特性を上げるように構成される。換言すれば、システムがバッテリで動作している場合、電力管理ロジック２００は、集積回路１００の全体の電力消費を削減するように、集積回路１００の１以上のロジックコアに対する動作周波数及び／又は電圧を低レベルに調整するように構成される。一実施形態では、電力管理ロジック２００は、マルチコアプロセッサまたは他のマルチコア集積回路の動作周波数及び／又は電圧を調整するように構成されており、これは、ノート型パソコンのディスプレイの輝度を落としたり、無線通信インターフェースおよびＣＤＲＯＭまたはＤＶＤドライブをシャットダウンするなどの、他のシステムレベルを省電力化する方法および技術の一部とされる。
【００２８】
ある実施形態では、電力管理ロジック２００は、全体の電力消費またはシステムの特定の性質に応じて、１つのロジックコアの動作特性を、別のロジックコアの動作特性よりも低いレベルに調整するように構成される。さらに、ある実施形態では、電力管理ロジック２００は、コモンブリッジロジック１１０に供給される電圧及び／又は周波数を調整するように構成される。一実施形態では、電力管理ロジック２００は、ロジックコアの動作電圧及び／又は周波数にあわせて、コモンブリッジロジック１１０に供給される電圧及び／又は周波数を調整する。しかし、一実施形態では、電力管理ロジック２００は、コモンブリッジロジック１１０に、ロジックコアよりも高い電圧及び／又は周波数を供給するように構成される。例えば、一実施形態では、ロジックコア１２０Ａおよび１２０Ｂはコモンブリッジロジック１１０よりも大量の電力を消費する一方で、コモンブリッジロジック１１０は、いずれの個々のロジックコア以上に全体のパフォーマンスに対するボトルネックとなるおそれがある（コモンブリッジロジック１１０は、複数のロジックコアおよび、他の素子、インターフェースおよびコンポーネントとインターフェースをとり、通信するからである）。
このような例において、電力管理ロジック２２０は、コモンブリッジロジック１１０により高い電圧ならびに周波数を供給し、コモンブリッジロジック１１０のいずれの潜在的なボトルネックを減らすように構成されており、これにより、全体の電力消費を減らすように、個々のロジックコア１２０により低い電圧ならびに周波数を供給しながら、全体的に高性能を維持することができる。一実施形態では、ロジックコア１２０は、電力管理ロジック２００からの要求を受けて、その動作周波数を変更するように構成される。
【００２９】
例えば、電力管理ロジック２００は、ロジックコア１２０Ａがシステムオペレーションの特定モードに対してロジックコア１２０Ａに割当てられている電力以上の電力を消費していることを判断する。この判断を受けて、電力管理ロジック２００は、動作周波数を変更するようにロジックコア１２０Ａに対して要求を出す。一実施形態では、ロジックコアは、周波数レギュレータ１４０などによって供給される、外部に送られるクロック信号に固定されたフェイズロックループ（ＰＬＬ）を使用して、内部クロックを生成する。ロジックコアの内部動作周波数は、ＰＬＬのコンフィグレーションパラメータによって決定されたように、複数の外部クロック信号の周波数であってもよい。ＰＬＬコンフィグレーションパラメータは、１以上の制御レジスタに書き込みを行うことで変更することができ、ロジックコアの内部動作周波数を設定することができる。ある実施形態では、集積回路１００の各ロジックコアは、対応の一連の制御レジスタを含み、これを通じてそのＰＬＬコンフィグレーションパラメータが設定される。したがって、ある実施形態では、電力管理ロジック２００は、１以上のロジックコア１２０の動作周波数を調整するように、集積回路１００の１以上の制御レジスタに書き込みを行う。
【００３０】
図２Ａに例示しているように、電力管理ロジック２００は、ロジックコア１２０及び／又はコモンブリッジロジック１１０に対する動作電圧ならびに周波数を調整するように、電圧レギュレータ１３０および周波数レギュレータ１４０に結合されているか、あるいはインターフェースをとる。したがって、ロジックコア１２０Ａの動作特性を調整するときに、電力管理ロジック２００は、例えば１以上の制御信号を介して電圧レギュレータ１３０と通信し、ロジックコア１２０Ａに特定の電圧を供給するよう、電圧レギュレータ１３０に命令を出すように構成される。同様に、電力管理ロジック２００は、周波数レギュレータ１４０と通信し、ロジックコア１２０Ａに特定の周波数またはクロック信号を供給するよう、周波数レギュレータに命令を出すように構成される。
【００３１】
ある実施形態では、各ロジックコア１２０及び／又はコモンブリッジロジック１１０に対する電力は、集積回路１００内の他のロジックコアに電力を供給する回路から分離された回路を介して供給される。このコンフィグレーションでは、各ロジックコア１２０及び／又はコモンブリッジロジック１１０は、他のロジックコアが動作する電圧レベルとは異なる、独立した電圧レベルで動作する。電圧レギュレータ１３０などの１以上の電圧レギュレータは、各ロジックコア１２０及び／又はコモンブリッジロジック１１０に電圧を異なるレベルで供給するように構成される。ＩＣ１００の一部に電力を供給している各電圧レギュレータは、１以上の電圧レベルで電力の出力要求を受信し、さらに、そのような要求を受けて電圧の出力レベルを調整するように構成される。一実施形態では、ロジックコア１２０は、そのような要求を出すように構成されてもよい。例えば、電力管理ロジック２００は、１以上のロジックコア１２０に供給される電圧レベルを変更するように電圧レギュレータ１３０に要求するように構成されてもよい。電力管理ロジック２００は、電圧レギュレータ１３０のコンフィグレーションレジスタに格納されたデータにアクセスすることにより、ロジックコア１２０の現在の出力電圧レベルを判断するように構成されてもよい。別法として、他の実施形態では、ある特定の温度で動作中であることを検出するコアは、電力を供給している電圧レギュレータに、供給電圧レベルの変更を行うよう、要求することができる。
【００３２】
ロジックコア１２０（または、コモンブリッジロジック１１０）の動作特性を調整するときに、電力管理ロジック２００は、新たなターゲット電圧を決定するように構成される。例えば、集積回路１００の全体の電力消費を削減するように、電力管理ロジック２００は、ロジックコア１２０Ａ及び／又はロジックコア１２０Ｂに対して新たな動作電圧を決定することができる。上述のように、ロジックコアの動作周波数は最小動作電圧に左右されることから、電力管理ロジック２００は、ロジックコアの現在の動作周波数が実現できるか、望ましいか、あるいは、新たな動作電圧と互換性をとることができるかどうかを判断するように構成される。ロジックコア１２０Ａの現在の動作周波数が、ロジックコア１２０Ａの新たな動作周波数と互換性をとらなければ、または実現可能でなければ、電力管理ロジック２００は、新たな電圧を考慮に入れて、つまり予め算入したうえで、新たな動作周波数を決定するように構成される。例えば、電力管理ロジックは、ロジックコアの動作特性を調整するときに、互換性のある、または望ましい動作電圧ペア表にアクセスするように構成してもよい。
【００３３】
同様に、電力管理ロジック２００は、ロジックコアの動作特性を調整するときに、まずロジックコアの新たな動作周波数を判断するように構成されてもよい。したがって、ある実施形態では、電力管理ロジック２００は、ロジックコア１２０Ａの新たな所望の動作周波数を判断し、次に、その所望の周波数がロジックコア１２０Ａの現在の動作電圧と互換性があるか、または実現可能かどうかを判断するように構成される。例えば、電力管理ロジック２００は、例えば、集積回路１００を含むシステムがもはやバッテリで動作していないという判断を受けて、ロジックコア１２０Ａの動作周波数を増加してもよい。ロジックコア１２０Ａの所望の動作周波数がロジックコア１２０Ａの現在の動作電圧と互換性がない場合、電力管理ロジック２００は、所望の動作周波数と互換性のあるコア１２０Ａの新たな動作電圧を判断するように構成される。別法として、一実施形態によれば、電力管理ロジック２００は、ロジックコア１２０Ａの現在の動作周波数と互換性のある、異なる所望の周波数を選択するように構成される。
【００３４】
ロジックコアの動作特性の調整において、電力管理ロジック２００は、コモンブリッジロジック１１０に供給される周波数及び／又は電圧を調整するときに、新たな周波数ならびに電圧が相互に確実に互換性をとることができるように構成される。上述のように、各種実施形態によれば、コモンブリッジロジック１１０は、１以上の電圧ならびに１以上の周波数が供給される。上述のように、コモンブリッジロジック１１０は、各ロジックコアの動作特性に応じて、各ロジックコアに異なる電圧及び／又は周波数を用いることで各ロジックコア１２０と通信するかインターフェースをとるように構成される。したがって、ある実施形態では、電力管理ロジック２００は、コモンブリッジロジック１１０に複数の独立した電圧レベルを供給するよう、電圧レギュレータ１３０に命令するように構成してもよい。ある実施形態では、電力管理ロジック２００は、コモンブリッジロジック１１０に供給される各電圧信号の電圧レベルを選択するように構成される。しかし、他の実施形態では、電力管理ロジック２００は、個々のロジックコアに供給される電圧を制御し、コモンブリッジロジック１１０に依存して、電圧レギュレータ１３０と適合するように、各ロジックコアとの通信に必要な適切な電圧を受信するようにしてもよい。同様に、ある実施形態では、電力管理ロジック２００は、周波数レギュレータ１４０によってコモンブリッジロジックに供給される個々のクロック信号の周波数を制御するように構成される。その一方、他の形態では、コモンブリッジロジック１１０は、各ロジックコアと通信するために、及び、適切な周波数において１つ以上のクロック信号を受信するよう周波数レギュレータ１４０と適合するために、必要とされる特定の周波数を判断するよう構成される。従って、各種実施形態によれば、コモンブリッジロジック１１０に供給される電圧ならびに周波数の制御に求められるロジックの各種部分は、電力管理２００、電圧レギュレータ１３０、周波数レギュレータ１４０及び／又はコモンブリッジロジック１１０に内蔵されていてもよい。
【００３５】
図２Ｂに、複数のロジックコアの各々の動作特性（つまり、動作電圧ならびに周波数）が温度制御ロジックによって制御されるマルチコア集積回路の一実施形態を示す。ある実施形態では、集積回路１００は、集積回路１００の動作温度を測定するように構成された、温度センサ２２０などの１以上の温度センサを含む。例えば、ある実施形態では、温度センサ２２０は熱ダイオードであってもよい。一実施形態では、温度センサ２２０は、通常動作においてほとんどの熱を生成する集積回路１００の素子に近接した集積回路１００のダイに組み入れられる。別の実施形態では、複数の温度センサ２２０は、対応のロジックコア近くの集積回路１００に組み入れられる。別法として、他の形態では、温度センサ２２０は、集積回路１００には組み入れられないが、集積回路１００の動作温度を測定するように、集積回路１００の近くに、または回路１００に隣接して、または回路１００に結合されてもよい。そのような動作温度の測定値は、以下に詳述しているように、コアの動作周波数ならびに電圧に対する調整を要求するために用いられる。
【００３６】
一実施形態では、温度センサ２２０は、全体の集積回路１００の、全体の動作温度を測定するように構成され、一方で他の形態では、温度センサ２２０は、ロジックコア１２０Ａまたはロジックコア１２０Ｂの局所的動作温度といった、集積回路１００の一部の、局所的動作温度を測定するように構成される。ある実施形態では、温度センサ２２０は、関連するＩＣ素子の最も熱い温度を表示し、他の実施形態では、温度センサ２２０は、素子の平均温度を表示する。さらに別の実施形態では、集積回路１１０は、１つ以上の温度センサ２２０を含み、各々は、集積回路１００の個々のエリアまたは領域の局所的動作温度を測定するように構成される。従って、ある実施形態では、個々の温度は、集積回路１００の各ロジックコアに対応して測定される。しかし、他の実施形態では、集積回路１００は温度センサ２２０を含まないものの、その集積回路１００をその一部に含むシステムにおいては、その集積回路１００の外部に集積回路１００の動作温度を測定あるいは判断するよう構成された熱センサを含む。
【００３７】
一実施形態では、ロジックコア１２０などの、ＩＣ構成要素の動作電圧及び／又は周波数は、該構成要素の動作温度の変更を受けて生成される。例えば、温度制御ロジック２１０は、集積回路１００の現在の動作温度を読出し、１以上のロジックコア２１０の現在の動作電圧及び／又は周波数の変更を要求するように構成される。ロジックコア１２０、コモンブリッジロジック１１０、及び／又はＩＣに含まれるその他の構成要素は、対応づけられた温度センサ２２０を備えてもよい。一実施形態では、温度センサ２２０は、特定の温度の検出を受けて信号を制御するか割り込みを行う。他の実施形態では、温度センサ２２０は、対応付けられた構成要素の温度を連続的に表示する。温度センサ、および、動作温度や周囲温度を測定するように構成された他のデバイスに加えて、このようなデバイスとインターフェースを行って温度の読出し、収集、記録または測定する方法および技術は、当該技術において十分理解されるものであるので、本明細書には詳細に記載しない。ある実施形態では、集積回路１００の動作温度は、集積回路１００に対して最大温度以上の、望ましい、あるいは特定の動作温度であり、これを越えると、不正確で予測不能な、または信用できない動作が発生するおそれがある。
【００３８】
例えば、ＩＣメーカは、ＩＣが不定期間、正確に機能するように温度範囲を特定する。この温度範囲は、最大温度を含み、最大温度を下回れば、正確な機能は保証されず、デバイスへの損傷が生じるおそれがある。本文に記載しているように、ＩＣの動作温度を下げる１つの方法としては、デバイスに含まれる構成要素の動作周波数及び／又は電圧を下げることが挙げられる。ある実施形態では、温度制御ロジック２１０は、集積回路１００の動作上のインテグリティを保護するように形成される。したがって、ある実施形態では、ロジック回路、ファームウェア、及び／又はソフトウェアは、温度制御ロジック２１０のように、集積回路１００に内蔵されていても集積回路の外部にあっても、集積回路１００の動作温度を監視するように構成される。各種実施形態では、温度制御ロジック２１０は、ハードウェア、ソフトウェア、ファームウェアまたはその組合せにおいて実装されてもよい。温度制御ロジック２１０は、集積回路１００、または集積回路１００の個々のロジックコア１２０が最大温度以上の、安全で望ましい温度で、あるいは特定の動作温度で動作しているという検出を受けて、集積回路１１０の１以上のロジックコアの動作周波数及び／又は電圧を自動的に下げるように構成される。ある実施形態では、温度制御ロジック２１０は、集積回路１００またはロジックコア１２０Ａおよび１２０Ｂなどの、集積回路１００の１以上のロジックコアの現在の動作温度を判断するように、温度センサ２２０にアクセスする、温度センサ２２０とインターフェースをとる、あるいは、温度センサ２２０と通信するように構成されてもよい。
【００３９】
様々な実施形態によれば、集積回路１００の動作温度が高すぎると温度制御ロジック２１０が判断すれば、温度制御ロジック２１０は、ロジックコア１２０Ａまたはロジックコア１２０Ｂまたはその両方といった、集積回路１００の１以上のロジックコアの動作電圧及び／又は周波数を自動調整するように構成される。例えば、集積回路１００が特定の動作温度以上の温度で動作しているとの判断後、温度制御ロジック２１０は、集積回路１１０の動作温度を下げるように、より低い電圧及び／又は周波数で動作するようにロジックコア１２０を構成してもよい。上述の電力管理ロジック２００と同じく、温度制御ロジック２１０は、ある実施形態では、ロジックコア１２０Ａおよび１２０Ｂに供給される電圧および周波数の調整を行うように、電圧レギュレータ１３０および周波数レギュレータ１４０と通信するかインターフェースをとるように構成されてもよい。
【００４０】
ある実施形態では、温度制御ロジック２１０は、集積回路１００の全ロジックコアの動作周波数及び／又は電圧を同時に低下させる。しかし、ある実施形態では、温度制御ロジック２１０はまず、ロジックコア１２０Ａなどの単一のロジックコアに対する動作電圧及び／又は周波数を低下させるが、１つのロジックコアの動作電圧及び／又は周波数だけを低下させた後に、集積回路１００の動作温度が十分に低下しなければ、ロジックコア１２０Ｂなどの追加のロジックコアの動作電圧及び／又は周波数を下げてもよい。したがって、温度制御ロジック２１０は、連続的または周期的に、集積回路１００の動作温度を監視し、集積回路１００の１以上のロジックコアの動作電圧及び／又は周波数を低下させるなどの動作特性を低下させることにおいて、集積回路１００の動作温度が十分に低くなるかどうかを判断するように構成される。本文に用いられる“動作特性”なる用語は、本文においては、動作電圧か動作周波数、あるいはその両方を示すように用いられている点に留意されたい。
【００４１】
ある実施形態によれば、集積回路１００の１以上のロジックコア１２０の動作特性を低下させた後、温度制御ロジック２１０は、集積回路１００に対する動作温度が未だ高すぎると判断すれば、温度制御ロジックは、集積回路１００の１以上のロジックコアに対する動作特性をさらに低下させるように構成される。例えば、温度制御ロジック２１０はまず、ロジックコア１２０Ａの動作特性を低下させ、ロジックコア１２０Ａに対する動作特性を低下させた後、集積回路１００の動作温度が十分に低くなっていないと判断すれば、続いてロジックコア１２０Ｂの動作特性を低下させる。別法として、ある実施形態では、集積回路１００の動作温度が、ロジックコア１２０Ａならびに１２０Ｂの両方の動作特性を低下させた後に十分に低くなければ、温度制御ロジック２１０は、ロジックコア１２０Ａか１２０Ｂのいずれかに対して、またはその両方に対して、さらに動作特性を低下させる。したがって、ある実施形態では、温度制御ロジック２１０は、集積回路１００が所望の動作温度または最適な動作温度となるまで、複数のステップまたは段階においてマルチコアプロセッサの１以上のロジックコアの動作特性を低下するように構成される。
【００４２】
図２Ｃに関し、一実施形態では、温度センサ２２０は、集積回路１００内のレジスタのプロセッサ１００に対する現在の動作温度を周期的に記録するように構成され、温度制御ソフトウェア２４０は、プロセッサ１００の現在の動作温度を判断するように、このレジスタにアクセスするように構成される。ある実施形態では、（複数の）温度センサ２２０は、各々がＩＣ１００の複数のロジックまたはプロセッサコアの異なる１つに対する動作温度に対応する複数の温度測定値を、ＩＣ内部または外部の複数のレジスタ又はその他のデータ記録部を用いて記録するように構成される。ある実施形態では、温度制御ソフトウェア２４０、温度制御ロジック２１０、および電力管理ロジック２００は全て、ハードウェア、ファームウェア、ソフトウェアまたはその組合せにおいて実装される１つのロジックセットの一部であり、ロジックコア１２０およびコモンブリッジロジック１１０などの集積回路１００の各種部分の動作周波数及び／又は電圧を監視し調整するように構成される。
【００４３】
上記の議論は動作温度を下げるように、または電力管理を理由として、１以上のロジックコアの動作特性を低下させることに関するものであるが、１以上のプロセッサコアの動作特性はその他の理由により、個々に調整することができる。例えば、ある実施形態では、個々のロジックコアの動作電圧及び／又は周波数は、該ロジックコアが特定の電圧または速度で特定のデバイスとのインターフェースを行うことができるように、マルチコアプロセッサのいずれの他のロジックコアから独立して調節することができ、一方で、同じプロセッサの別のロジックコアは異なる電圧及び／又は周波数で動作可能である。概して、本文に記載したデバイス、方法および技術は、様々な理由によりマルチコア環境のロジックコアの動作特性を独立して調整するために用いることができる。上述のように、ある実施形態では、集積回路１００のロジックコア１２０Ａおよび１２０Ｂなどのマルチコア集積回路の複数のロジックコアは、コモンブリッジロジック１１０と通信するかインターフェースをとる。図３は、トランスレーションロジックおよび通信プロトコルロジックを用いてロジックコア１２０Ａおよび１２０Ｂがコモンブリッジロジック１１０と通信する集積回路の一実施形態を示したブロック図である。上述のように、マルチコア集積回路の各ロジックコアは他のロジックコアから独立した電圧及び／又は周波数で動作するように構成されていることから、コモンブリッジロジック１１０は個々の電圧及び／又は周波数で各ロジックコアと通信するように構成される。したがって、コモンブリッジロジック１１０は、独立した電圧ならびに周波数で違うロジックコアと通信するように、通信プロトコルロジック３２０Ａおよび３２０Ｂなどの複数の一連の通信プロトコルロジック３２０を含んでもよい。ある実施形態では、通信プロトコルロジック３２０によって実装される特定のロジックプロトコルは、ロジックコアの動作周波数とコモンブリッジロジック１１０の動作周波数及び／又は通信プロトコルロジック３２０Ａの動作周波数間の差により、ロジックコアとの通信におけるクロックタイミングの差を説明するように構成される。例えば、ロジックコア１２０Ａが、通信プロトコルロジック３２０Ａ及び／又はコモンブリッジロジック１１０が動作している周波数よりも遅い周波数で動作していることを条件として、あるいは、動作している場合には、通信プロトコルロジック３２０Ａは、ロジックコア１２０Ａからの通信信号を予測するときに、長期遅延を予測するように構成される。
【００４４】
さらに、ある実施形態では、集積回路１００はロジックコア１２０とコモンブリッジロジック１１０との間のインターフェースにトランスレーションロジック３００を含んでもよい。ある実施形態では、そのようなトランスレーションロジックは、ロジックコア１２０とコモンブリッジロジック１１０の差動電圧間の電圧ロジックレベルを変換するように構成される。例えば、ロジックコア１２０Ａが一電圧で動作しており、一方でコモンブリッジロジック１１０及び／又は通信プロトコルロジック３２０Ａが違う電圧で動作していれば、トランスレーションロジック３００Ａはこの２つのロジックレベル間のインターフェース信号を変換するように構成される。同様に、トランスレーションロジック３００Ｂは、ロジックコア１２０Ｂと通信プロトコルロジック３２０Ｂとが異なる電圧で動作していれば／動作している場合に、通信プロトコルロジック３２０Ｂとロジックコア１２０Ｂ間の信号のロジックレベルを変換するように構成されうる。ある実施形態では、トランスレーションロジック３００は、コモンブリッジロジック１１０およびロジックコア１２０の動作周波数間の差を説明するように、コモンブリッジロジック１１０およびロジックコア１２０間のインターフェース信号を適用する、調整する、または変換するように構成される。ある実施形態では、通信プロトコルロジック３２０Ａは、他のコモンブリッジロジック１１０が動作する周波数から独立した周波数で動作するように構成される。
【００４５】
図４は、一実施形態による１以上のロジックコアを独立に電力管理する方法の一実施形態を例示したフローチャートである。上述したように、複数のロジックコアの動作電圧および周波数などの動作特性は、各種の理由により独立に制御することができる。複数のロジックコアを含むシステムは、ある１つのロジックコアに対する動作周波数を変更する必要があることを検出する（ブロック４００）。例えば、一実施形態では、電力管理ロジック２００は、低電力状態を検出し、マルチコアプロセッサの１以上のロジックコアの動作周波数を下げて、システムの全体の電力消費を削減するようにしている。別の実施形態では、マルチコアプロセッサを含むシステムは、バッテリで動作しており、電力管理ロジック２００は、システムがバッテリで動作するときを検出し、１以上のロジックコアの動作周波数を調整するように構成される。さらに、電力管理ロジック２００は、システムがバッテリからコンセントからの電源に変わるときを検出し、システムがもはやバッテリで動作していないことを利用するように、１以上のロジックコアの動作周波数を高周波数に調整するように構成される。
【００４６】
さらに、ある実施形態では、システムは１以上のロジックコアの動作温度を調整するように構成される温度制御ロジック２１０を含む。例えば、温度制御ロジック２１０は、マルチコアプロセッサ及び／又はマルチコアプロセッサの個々のロジックコアの動作温度を監視するように構成される。上述のように、マルチコア集積回路は、温度センサ２２０を備えており、このセンサを介して、温度制御ロジック２１０は動作温度を監視する。上述のように、個々のロジックコアまたは集積回路全体のいずれかの動作温度が、望ましい、最大の、または安全な動作温度を越えれば、温度制御ロジック２１０は、システムの全体の動作温度を下げるように、マルチコア集積回路の１以上のロジックコアの動作周波数を低下させるように構成される。さらに、ある実施形態では、温度制御ロジック２１０は、動作温度が特定の動作温度を下回るとの判断を受けて、１以上のロジックコアに対する動作周波数を上げるように構成される。したがって、ある実施形態では、ロジックコアの動作周波数は、低周波数に調整され、一方で、他の実施形態では、ロジックコアは高周波数で動作するように調整される。ある実施形態では、温度制御ロジック２１０は、ロジックコアの動作周波数がすでに下げられていれば、ロジックコアの動作周波数を上げるように構成される。
【００４７】
例えば、ロジックコア１２０Ａの動作周波数は、システムの起動において、まず特定の最大の動作周波数に設定され、温度制御ロジック２１０は、ロジックコア１２０Ａの動作周波数が最初の周波数から下げられていれば、ロジックコア１２０Ａの動作周波数だけを上げる。同様に、ロジックコアの動作周波数を上げるときに、電力管理ロジック２００及び／又は温度制御ロジック２１０は、システムの現在の電力消費及び／又は動作温度により、ロジックコアが特定の最大動作周波数よりも高い周波数で動作可能とされるかどうかにかかわらず、動作周波数だけを、特定の最大周波数に上げるように構成される。しかし、他の形態では、温度制御ロジック２１０は、ロジックコアの動作周波数を、該ロジックの動作周波数及び／又は電圧がすでに下げられているかどうかにかかわらず、上げるように構成される。したがって、一実施形態では、ロジックコアの動作周波数を上げた後であっても、ロジックコアが依然として最大動作温度かそれ以下で動作することを示すほど、ロジックコアの動作温度が低ければ、温度制御ロジック２１０は、ロジックコアの動作周波数を、特定の最大周波数よりも高くするように構成される。従って、ある実施形態では、温度制御ロジック２１０は、プロセッサが十分に低い動作温度で動作していれば、プロセッサの動作周波数を特定の最大周波数よりも高くする。
【００４８】
上述のように、ロジックコアの動作周波数を上げるときに、温度制御ロジック２１０もまたロジックコアの動作電圧を上げ、高動作周波数をサポートするようにする。したがって、電力管理ロジック２００は、ロジックコアに対する新たな周波数を決定する（ブロック４１０）。電力管理ロジック２００は、ハードウェア、ファームウェア、ソフトウェアまたはこの組合せにおいて実装されうるものであり、ロジックコアに対する新たな動作周波数を、例えば標準のアルゴリズムに基づいて、または各種の動作周波数を含むルックアップテーブルから決定する。ロジックコアの新たな動作周波数を決定後に、電力管理ロジック２００は、この新たな周波数が現在の動作電圧と互換性があるかどうかを示す（判断ブロック４２０）。例えば、新たな周波数が現在の動作周波数よりも高ければ、ロジックコアの現在の電圧は新たな周波数をサポートすることができないおそれがある。新たな周波数が現在の動作電圧との互換性がないと、電力管理ロジック２００は、この新たな周波数と互換性のある新たな電圧を決定する（ブロック４３０）。各種の実施形態によれば、新たな周波数を決定するときに、電力管理ロジック２００は、互換性のある電圧ならびに周波数ペアのルックアップテーブルやアルゴリズムなどの様々な方法を用いて、新たな動作電圧を決定する。新たな周波数と互換性のある新たな動作電圧を決定した後、電力管理ロジック４４０は、この新たな動作電圧をロジックコアの動作電圧として設定する（ブロック４４０）。
【００４９】
この新たな周波数がロジックコアの現在の動作電圧と互換性があれば、または、ロジックコアの動作電圧を、新たな周波数と互換性のある電圧に調整した後、電力管理ロジック２００は、この新たな周波数をロジックコアの動作周波数として設定する（ブロック４５０）。ある実施形態では、電力管理ロジック２００は、必要に応じて、動作周波数を設定する前に、新たな動作電圧を設定してもよい。しかし、他の実施形態では、電力管理ロジック２００は、新たな動作電圧と新たな動作周波数とを同時に設定し、あるいは、ある実施形態では、新たな動作周波数を、新たな動作電圧の設定前に設定してもよい。
【００５０】
上述のように、ある実施形態では、ロジックコアは、ロジックコアの新たな周波数とは異なる周波数で動作している、ノースブリッジなどのコモンブリッジロジック１１０と通信するように構成される。したがって、ある実施形態では、電力管理ロジック２００は、ロジックコアとコモンブリッジロジックとの通信を維持するように、このようなコモンブリッジロジック１１０を、ロジックコアの新たな動作周波数に対して調整するように構成される。例えば、一実施形態では、電力管理ロジック２００は、ロジックコアの新たな動作周波数で動作するようにコモンブリッジロジック１１０を調整するように構成される。しかし、他の実施形態では、電力管理ロジック２００は、ロジックコアの新たな動作周波数と互換性のある周波数で動作するようにコモンブリッジロジックを調整する。例えば、コモンブリッジロジック１１０は、ロジックコアに対する新たな動作周波数よりも高い動作周波数で動作するように調整される。さらに、コモンブリッジロジックは通信プロトコルロジック３２０を含む。これは、コモンブリッジロジックの高動作周波数の、分割もしくは下げた周波数を用いてロジックコアと通信するように構成されたものである。
【００５１】
他の実施形態では、通信プロトコルロジック３２０は、ロジックコアとコモンブリッジロジックとの間の各通信または信号のタイミングが、通信プロトコルロジックがロジックコアとコモンブリッジロジックの動作周波数の差が予め考慮されたものとなることが確実となるように構成される。従って、各種の実施形態によれば、電力管理ロジック２００は、任意の様々な方法において、例えば、コモンブリッジロジックの全体の動作周波数を調整することによって、コモンブリッジロジックの動作周波数とロジックコアの動作周波数との差を説明するように、通信プロトコルロジックを調整することによって、または、これら両方を組み合わせて実行することによって、ロジックコアの新たな動作周波数を受けてコモンブリッジロジック１１０を調整するように構成される。ロジックコアに対する新たな動作周波数を受けてコモンブリッジロジック１１０を調整するときに、電力管理ロジック２００は、コモンブリッジロジック１１０が通信している他のロジックコアの動作周波数も予め算入する。加えて、電力管理ロジック２００はさらに、コモンブリッジロジック１１０の動作電圧を、コモンブリッジ１１０の新たな動作電圧と互換性をとるように調整するか、ロジックコアに対して新たな動作電圧を設定したことを受けて、コモンブリッジロジック１１０の動作電圧を調整する。図４は主にロジックコアの動作周波数ならびに電圧を制御する管理ロジックについて説明しているが、ある実施形態では、温度制御ロジックはさらに、ロジックコアに対する動作周波数ならびに電圧の制御も行う点に留意されたい。
【００５２】
加えて、ある実施形態では、図４に関連して上述した各ステップは、その順序を変えることもでき、または上述のステップよりも少ないステップ数で実行してもよい。図４は、ロジックコアの動作周波数を調整する方法についてのフローチャートを示しているが、図５はロジックコアの動作電圧を調整する方法の一実施形態のフローチャートを示す。したがって、システムは、１以上のロジックコアの動作電圧を変更する必要性を検出する（ブロック５００）。図４に関して上述したように、システムは、電力消費と、システムの使用を監視し調整するように構成される電力管理ロジック２００を含む。したがって、ある実施形態では、電力管理ロジック２００は、マルチコア集積回路１００のロジックコア１２０などの１以上のロジックコアの動作電圧を決定する。例えば、電力管理ロジック２００は、システムがバッテリで動作していることを判断し、ロジックコアの１以上の動作電圧を下げて、システムの全体の電力消費を減らすようにする。別法として、電力管理ロジック２００は、システムがもはやバッテリで実行していないことの検出を受けて、１以上のロジックコアの動作電圧を上げるように構成される。加えて、ある実施形態では、電力管理ロジック２００は、バッテリの残量予測に応じて各ステップでロジックコアの動作電圧を減らすように構成される。
【００５３】
別法として、各種の実施形態によれば、温度制御ロジック２１０は、１以上のロジックコア１２０の動作電圧を、システム、マルチコア集積回路、または個々のロジックコアの動作温度に基づいて変更する。例えば、上述のように、温度制御ロジック２１０は、温度センサ２２０などを介して、集積回路の動作温度が好ましい、最大の、または安全な動作温度よりも高いことを検出し、これに応答して、集積回路１１０の１以上のロジックコア１２０の動作電圧を低下させる。加えて、温度制御ロジック２１０は、ロジックコア１２０、集積回路１００、またはシステム全体の動作温度が特定の動作温度よりも十分に低いという検出を受けて、１以上のロジックコア１２０の動作温度を上げるように構成される。換言すれば、現在の動作温度と特定の最大動作温度との間に十分な差があることを温度制御ロジック２１０が判断すれば、温度制御ロジック２１０は、１以上のロジックコアに対する現在の動作電圧を上げる。ある実施形態では、温度制御ロジック２１０は、ある１つのロジックコアに対する動作温度が他のロジックコアの動作温度よりも低ければ、このロジックコアに対する動作電圧を上げるように構成される。
【００５４】
ある実施形態では、温度制御ロジック２１０は、ある１つのロジックコアに対する動作電圧がすでに下げられていれば、該ロジックコアの動作電圧を上げるように構成される。例えば、ロジックコア１２０Ａの動作電圧はまず、システムの起動において、最大動作電圧を設定し、温度制御ロジック２１０は、ロジックコア１２０Ａの動作電圧が、当初の最大電圧から下げられていれば、ロジックコア１２０Ａの動作電圧だけを上げる。同様に、ロジックコアの動作電圧を上げるときに、電力管理ロジック２００及び／又は温度制御ロジック２１０は、システムの現在の電力消費及び／又は動作温度が、ロジックコアに、特定の最大動作電圧よりも高い電圧で動作させることを可能にするかどうかにかかわらず、特定の動作電圧にまで動作電圧だけを上げるように構成される。しかし、他の実施形態では、温度制御ロジック２１０は、ロジックコアの動作電圧を、該ロジックコアの動作特性がすでに下げられているかどうかにかかわらず、上げるように構成される。ある実施形態では、温度制御ロジック１２０は、ロジックコアに対する動作電圧を、特定の最大動作電圧よりも高くするように構成される。例えば、集積回路のロジックコアが、特定の最大動作電圧で動作しながら特定の最大動作温度以下の動作温度で動作していれば、温度制御ロジック２１０は、ロジックコアに対する動作電圧を特定の最大動作電圧よりも高くするように構成される。
【００５５】
したがって、１以上のロジックコアの動作電圧を変更する必要性を検出後、電力管理ロジック２００または温度制御ロジック２１０は、ロジックコアに対する新たな動作電圧を決定するように構成される（ブロック５１０）。ある実施形態では、新たな動作電圧は、現在の動作温度、現在の電力の利用可能性、または現在の電力消費などの、システムの現在の動作状況に基づいて新たな動作電圧を決定するように設計された電圧決定アルゴリズムを介して決定される。別法として、ある実施形態においては、ロジックコアに対する新たな動作電圧は、動作電圧の固定テーブルに基づいて決定される。ある実施形態では、新たな動作電圧は、現在の動作周波数を維持するように選択され、他の形態では、新たな電圧は現在の動作周波数に関係なく選択される。１以上のロジックコアの新たな動作電圧を決定後、電力管理ロジック２００または温度制御ロジック２１０は、新たな電圧をロジックコアの動作電圧として設定する（ブロック５２０）。１以上のロジックコアの新たな動作電圧を設定するときに、ある実施形態では、電力管理ロジック２００（または、温度制御ロジック２１０）は、各ロジックコアの動作電圧を別々に決定して調整する。しかし、他の実施形態では、ロジックコアは全て同じ、新たな電圧を用いるように設定される。
【００５６】
ある実施形態では、電力管理ロジック２００または温度制御ロジック２１０は、ロジックコアに対する現在の動作周波数が、新たな動作電圧と互換性を取れるかどうか判断する（ブロック５３０）。したがって、ある実施形態では、新たな動作周波数が決定され、動作電圧はこの新たな周波数に基づいて調整される。一方で他の形態では、新たな動作電圧が決定されて、それに応じて動作周波数が調整される。従って、ロジックコアに対する現在の動作周波数が新たな電圧と互換性をとれなければ、新たな動作電圧と互換性のとれる新たな周波数が決定される（または、選択される）（ブロック５４０）。例えば、一実施形態では、電力管理ロジック２００は、１つまたは複数のロジックコアの動作電圧を下げて、電力消費を減らすようにし、さらに、動作周波数も下げて、新たな動作電圧と互換性をとるようにする。同様に、他の実施形態では、温度制御ロジック２１０は、動作温度を下げるように、１つのロジックコアまたは複数のロジックコアに対する動作電圧を下げ、さらにそれに応じて動作周波数も下げる。加えて、電力管理ロジック２００は、システムがバッテリからコンセントからの電源に切替えられるときなど、電力の利用可能性の増加を利用するように、ロジックコアに対する動作電圧を増加させるように構成され、さらに、動作周波数を、新たな、高い動作電圧と互換性のとれる高周波数に増加させる。同様に、温度制御ロジック２１０は、動作温度が特定の最大動作温度よりも低いことの判断を受けて、ロジックコアの動作電圧を調整するときなど、新たな、高い動作電圧を利用するように、ロジックコアに対する新たな動作周波数を設定する。
【００５７】
新たな動作電圧と互換性のとれる新たな周波数を決定後、電力管理ロジック２００（または、温度制御ロジック２１０）は、ロジックコアに対する動作周波数として新たな周波数を設定する（ブロック５５０）。上述のように、図４に関連して、新たな動作電圧は、ある実施形態では、新たな動作周波数の設定前に設定され、一方で他の実施形態では、新たな動作電圧と新たな動作周波数とは同時に設定される。さらに別の実施形態では、新たな動作周波数は新たな動作電圧の設定前に設定される。すでに述べたように、新たな動作電圧及び／又は周波数を設定するときに、ロジックコア及び／又は全体の集積回路は、新旧の動作特性間の転移期間においては動作しない。したがって、ある実施形態では、ロジックコアは、新たな動作特性に変更する前に、全ての現在の動作の現在の状態をセーブするように構成される。他の実施形態では、ロジックコアは、いずれの現在の状態をセーブせずに、場合によっては短期の転移期間後に、新たな動作特性で処理を再開するだけである。
【００５８】
上述のように、ある実施形態ではさらに、コモンブリッジロジック１１０は、ロジックコアの新たな動作電圧及び／又は周波数に応じて動作するように調整される（ブロック５６０）。例えば、コモンブリッジロジック１１０は、ロジックコアの新たな動作特性（電圧ならびに周波数）と互換性のある新たな電圧及び／又は周波数で動作するように調整される。別法として、ロジックコア１２０とコモンブリッジロジック１１０とのインターフェースに位置する電圧トランスレーションロジックは、コモンブリッジロジック１１０とロジックコアの電圧レベル間を正確に変換するように調整される。同様に、ある実施形態では、コモンブリッジロジック１１０におけるコモンプロトコルロジック３２０Ａなどのプロトコルロジックは、あるロジックコアと通信するときに、このロジックコアの動作特性に対応するように調整される。このような調整は、例えば、コモンブリッジロジックとロジックコアとの間の通信プロトコルで用いられるタイミングが、この２つの動作周波数間の差を吸収する、あるいは動作周波数間の差に対応したものとなるのに適したものとなることが確実となるようにすることでなされる。
【００５９】
上述の図４および図５は、マルチコア集積回路の１以上のロジックコアの動作特性に対して調整を行う方法を例示したものであるが、図６は、複数のステップまたは段階で１以上のロジックコアの動作特性を減らす方法の一実施形態を示したフローチャートである。例えば、一実施形態では、温度制御ロジック２１０などの温度制御ロジックは、集積回路１００の動作温度を監視するように構成されており、また、集積回路１００の現在の動作温度が特定の動作温度よりも高いことを判断する（ブロック６００）。別法として、ある実施形態においては、温度制御ロジック２１０は、例えば、温度センサ２２０を介して取得した現在の動作温度を、最大の安全な動作温度（この温度を越えると、集積回路１００は確実に動作せず、損傷を受けるおそれがある）と比較しうる。上述のように、ある実施形態では、温度制御ロジック２１０は集積回路１００の１つの動作温度を監視し、一方で他の実施形態では、温度制御ロジック２１０は、集積回路１００の個々のロジックコアまたは領域に対応する複数の、個々の動作温度を監視する。
【００６０】
（集積回路全体もしくは１以上の個々のロジックコアの）動作温度が高すぎると判断した後、温度制御ロジック２１０は、集積回路１００の１以上のロジックコア１２０の動作周波数及び／又は電圧を下げる（ブロック６１０）。上述のように、図４ならびに５に関して、温度制御ロジック２１０はまず、新たな動作周波数を決定し、次に、それに応じて動作電圧を調整する。または、他の態様では、他の実施形態では、温度制御ロジック２１０はまず新たな動作電圧を決定し、次に、動作周波数を調整する。ある実施形態では、温度制御ロジック２１０は、集積回路１００の全体の動作温度を下げるように、複数のロジックコアの動作周波数を下げる。しかし、他の実施形態では、温度制御ロジック２１０は、集積回路１００の全体の動作温度を下げようとするときに、まず、単一のロジックコアの動作周波数及び／又は電圧を下げるように構成される。
【００６１】
集積回路１００の１以上のロジックコア１２０の動作特性（つまり、電圧及び／又は周波数）を下げた後、温度制御ロジック２１０は、下げられた動作特性を受けて、動作温度が確実に下げられるように構成される。したがって、温度制御ロジック２１０は、例えば温度センサ２２０を介して、集積回路１００、または１以上の個々のロジックコアの動作温度が依然として高すぎるかどうかを判断するように動作温度の監視を行う（ブロック６２０）。換言すれば、１以上のロジックコア１２０の動作特性の初期調整後、温度制御ロジック２１０は、動作温度が特定の最大動作温度よりも低いレベルにまで下げられたことを確認する。ある実施形態では、温度制御ロジック２１０は、動作温度が十分に下げられたかどうかを判断する前に、１以上のロジックコアの動作特性を調整後、一定期間待ち、動作温度を定着させるように構成されうる。
【００６２】
集積回路の１以上のロジックコアの動作特性を下げた後、集積回路、または１以上のロジックコアの動作温度が十分に低くならなければ、温度制御ロジック２１０は、ロジックコアに対する動作周波数及び／又は電圧をさらに低下させる（ブロック（６３０）。例えば、温度制御ロジック２１０はまず、複数のロジックコア１２０の動作特性（つまり、周波数及び／又は電圧）をある程度下げ、続いて、ロジックコアの動作特性をさらに下げる（ブロック６４０）。例えば、一実施形態では、温度制御ロジック２１０はまず、複数のロジックコア１２０の動作周波数を半分にまで下げるが、集積回路１００の動作温度が特定の最大動作温度よりも高い状態にあれば、この動作周波数をさらに下げる（例えば、元の値の４分の１まで下げる）。同様に、温度制御ロジック２１０はまず、動作電圧を半分にまで下げ、次いで、動作電圧をさらに下げる。別の実施形態では、温度制御ロジック２１０は、集積回路１００の全体の動作温度を下げるように、まず、ロジックコア１２０Ａなどの１つのロジックコアに対する動作特性を下げる。集積回路１００の動作温度が十分に下がらなければ（例えば、特定の最大値よりも低いレベルにまで）、次に温度制御ロジック２１０は、集積回路の１以上のさらなるロジックコアの動作特性を下げる。ある実施形態では、１つのロジックコアの動作周波数及び／又は電圧は、ある最小レベルに到達するまで、様々な段階を通じて下げられ、次に、１以上の他のロジックコアの動作周波数及び／又は電圧は、集積回路１００の動作温度が特定の最大動作温度かそれ以下になるまで、これらの同様の段階を通じて調整される。別法として、ある実施形態において、複数のロジックコア１２０の動作周波数および電圧は、集積回路１００の動作温度が十分に下げられるまで、様々なレベルや段階を通じて、同時に（つまり、並行して）下げられる。
【００６３】
ある実施形態では、温度制御ロジック２１０は、集積回路１００のどのくらいの温度に基づいて、どれくらいの数のロジックコアの動作特性を低下する必要があるのかを判断するように構成される。したがって、集積回路１００の現在の動作温度が特定の最大動作温度に十分に近いか、特定の最大動作温度よりも高ければ、温度制御ロジック２１０は、集積回路１００の複数の（または全ての）ロジックコアの動作特性を調整する。しかし、集積回路１００の現在の動作温度が特定の最大動作温度に達するか、特定の最大動作温度であれば、温度制御ロジック２１０は、集積回路１００のごくわずかのロジックコアまたは１つのロジックコアの動作特性だけを調整する。したがって、温度制御ロジック２１０は、様々な実施形態において、各種の方法に従って、複数のステップか段階でロジックコアの動作特性を低下させる。ある実施形態では、温度制御ロジック２１０は、複数のロジックコアに対する動作電圧を様々な周波数及び／又は電圧と並行して下げ、一方で別の実施形態では、温度制御ロジック２１０は、個々のロジックコアの動作特性を独立に、かつ順番に下げる。
【００６４】
図６に示す方法は、温度制御目的で１以上のロジックコアの動作特性を下げることに関して説明しているが、他の形態では、ロジックコアに対する動作特性は、電力管理の理由から調整される。したがって、ある実施形態によれば、電力管理ロジック２００は、集積回路１００の全体の電力消費を削減するように、複数のステップまたは段階において１以上のロジックコア１２０の動作特性を下げるように構成される。温度制御に関連して上述した方法と同様に、電力管理ロジック２００はまず、１つのロジックコアの動作特性を下げ、集積回路１００の電力消費の監視を続け、その後、更なるロジックコアの動作特性を下げて、集積回路１００の電力消費をさらに削減するようにする。さらに、ある実施形態では、電力制御（管理？）ロジック２００は、複数のロジックコア１２０の動作特性を同時に下げて、次に、必要に応じて、または所望に応じて、同じロジックコアの動作特性をさらに下げるように構成される。
【００６５】
図７は、マルチコア集積回路の１以上のロジックコアの周波数及び／又は電圧を上昇させる方法の一実施形態を示したフローチャートである。各種の実施形態によれば、集積回路の１以上のロジックコア１２０の動作特性、例えば、電力管理や温度制御などを低下させた後、この動作特性は、より優れた電力の利用可能性を受けて、あるいは、現在の動作温度と特定の最大動作温度との差を利用するように、上げられる。したがって、ある実施形態では、温度制御ロジック２１０は、集積回路１００の動作温度が、特定の最大動作温度よりも高いか、ある範囲内であるという検出を受けて、１以上のロジックコア１２０の動作周波数及び／または電圧を低下させる（ブロック７００）。続いて、温度制御ロジック２００は、集積回路１００に対する動作温度を監視し続けるステップの一環として、集積回路１００に対する動作温度が特定の最大温度よりも低いかどうかを判断する（ブロック７１０）。１以上のロジックコアの動作特性を初期段階で、または、何度も調整後、集積回路１００に対する現在の動作温度が特定の最大動作温度の範囲内であれば（デシジョンブロックにおいてＮｏを選択する場合）、温度制御ロジック２１０は、通常の処理を継続する（ブロック７５０）。これには、集積回路１００の動作温度の監視を継続することが含まれる。
【００６６】
しかし、現在の動作温度が特定の最大動作温度よりも十分に低ければ、温度制御ロジック２１０は、（動作電圧がすでに低下されている）１以上のロジックコアの動作周波数及び／又は電圧を上昇させる（ブロック７２０）。さらに、ある実施形態では、温度制御ロジック２１０は、各ロジックコアの動作温度を個々に監視し続け、さらに、個々の動作温度の測定値に基づいて、各ロジックコアの動作特性を個別に調整するように構成される。したがって、ある実施形態では、温度制御ロジック２１０は、かなり熱い状態で動作している、１つのロジックコアに対する動作電圧及び／又は周波数を低下させ、一方で、動作温度の低い別のロジックコアの動作電圧及び／又は周波数を上昇させる。
【００６７】
ロジックコアの１以上の動作周波数または電圧を上昇させた後、温度制御ロジック２１０はさらに、ロジックコアの新たな動作特性と互換性をとるように、コモンブリッジロジック１１０を調整する（ブロック７３０）。例えば、コモンブリッジロジック１１０は、ロジックコアの新たな動作周波数と少なくとも同程度に高いか、場合によっては該動作周波数よりも高い周波数で動作するように調整される。加えて、コモンブリッジロジック１１０の通信プロトコルロジックは、ロジックコアの新たな動作周波数を予め算入するように調整される。さらに、ロジックコア１２０とコモンブリッジロジック１１０との間の電圧トランスレーションロジック３００は、コモンブリッジロジック１１０の電圧レベルとロジックコア１２０の新たな動作電圧との間で適切に変換するように調整される。
【００６８】
図７が示すフローチャートは、温度制御について説明したものであるが、ある実施形態では、同様の方法を電力管理に用いてもよい。例えば、電力管理ロジック２００は、例えば、システムがバッテリに切替えられるのを受けて、及び／又は、一般的な電力節約法や技術の一環として、１以上のロジックコアに対する動作特性を下げ、集積回路１００の全体の電力消費を削減するようにする。次に、電力管理ロジック２００は、集積回路１００の電力消費の監視を続け、さらに、例えば、システムが依然としてバッテリで動作しているかどうかなど、集積回路１００に対する電力の利用可能性を監視し、現在の電力の利用可能性を利用するために、ロジックコアの動作特性を上げるかどうかの判断を行う。例えば、システムがバッテリで動作していることを受けて１以上のロジックコアの動作周波数及び／又は電圧を下げた後、電力管理ロジック２００は、該システムがもはやバッテリで動作せずに、コンセントからの電源で動作していることを検出し、これを受けて、電力消費の削減はもはや必要とされないことから、ロジックコアの動作周波数及び／又は電圧を上昇させる。
【００６９】
図８に、バスブリッジ４０２を介して各種のシステム構成要素に結合されたマイクロプロセッサ１００を含むコンピュータシステム１０００の一実施形態のブロック図を示す。本文に記載されているように、各種の実施形態によれば、マイクロプロセッサ１１００は、複数のロジックコアを含み、その各々は、他のコアが動作しうる電圧及び／又は周波数とは別の電圧及び／又は周波数で動作するように構成されうる。ある実施形態では、上述のように、プロセッサ１１００は、集積回路１００、１以上のロジックコア１２０、コモンブリッジロジック１１０、及び／又は１以上の温度センサ２２０を含む。加えて、本文に記載されているように、システム１０００は、電力管理ロジック２００、温度制御ロジック２１０、及び／又は温度制御ソフトウェア２４０を含み、これらのいずれも、ロジックコア１２０に対する動作周波数及び／又は電圧、および場合によってはコモンブリッジロジック１１０を制御あるいは調整するように構成される。
【００７０】
加えて、システム１０００の他の構成要素は、独立した周波数及び／又は電圧で動作するように構成される複数のロジックコアを含む。例えば、本文に記載されているように、グラフィックスコントローラ１１０８は、１以上のマルチコア集積回路を含み、そのような集積回路内の各ロジックコアは、独立した周波数及び／又は電圧で動作するように構成される。同様に、本文に記載されているように、セカンダリバス１１１６、またはＰＣＩデバイス１１１２またはＩＳＡ１１１８のいずれも、独立した周波数及び／又は電圧で動作するように構成されたマルチコア集積回路または他の構成要素をさらに含む。上述のコンピュータシステム１０００及び／又は集積回路１００は、パソコンシステム、デスクトップコンピュータ、ラップトップまたはノート型パソコン、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、コンシューマデバイス、アプリケーションサーバ、記憶装置、スイッチ、モデム、ルータなどの周辺装置、あるいは、一般的に任意の種類のコンピューティングデバイスを含む、任意の様々な種類のデバイスの一部であってもよいが、これらに制限されることはない。
【００７１】
図示しているシステムでは、メインメモリ１１０４がメモリバス１１０６を通じてバスブリッジ１１０２に結合され、グラフィックスコントローラ１１０８がＡＧＰバス１１１０を通じてバスブリッジ１１０２に結合される。しかし、コンピュータシステムのほかの実施形態が可能であり、考察される。ＰＣＩデバイス１１１２Ａ〜１１１２Ｂなどの複数のＰＣＩデバイスがＰＣＩバス１１１４を通じてバス・ブリッジ１１１４に結合される。セカンダリバス・ブリッジ１１１６がさらにＥＩＳＡ／ＩＳＡバス１１２０を通じて１以上のＥＩＳＡまたはＩＳＡデバイス１１１８への電気的インタフェースとなる。図８に示す例では、一実施形態によれば、マイクロプロセッサ１１００は、ＣＰＵバス１１２４を通じてバス・ブリッジ１１０２に結合され、さらに、任意のＬ２キャッシュ１１２８にも結合される。ある実施形態では、マイクロプロセッサ１１００は、一体化されたＬ１キャッシュ（図示せず）を含んでもよい。本文に記載しているように、ある実施形態では、メインメモリ１１０４はロジックコア１２０及び／又はコモンブリッジロジック１１０の動作周波数及び／又は電圧を独立に制御すべく実装されるように構成されたプログラム命令を含む。
【００７２】
バスブリッジ１１０２は、マイクロプロセッサ１１００、メインメモリ１１０４、グラフィックコントローラ１１０８およびＰＣＩバス１１１４に接続されたデバイスの間のインターフェイスを提供している。バスブリッジ１１０２に接続されたデバイスのうちの１つから動作が受信されると、バスブリッジ１１０２は、この動作のターゲット（例えば、特定のデバイスか、ターゲットがＰＣＩバス５１４に接続している場合はＰＣＩバス１１１４）を識別する。バスブリッジ１１０２は、この動作をターゲットデバイスに転送する。バスブリッジ１１０２は一般に、動作を、ソースのデバイスまたはバスが使用しているプロトコルから、ターゲットのデバイスまたはバスが使用しているプロトコルに変換する。セカンダリバスブリッジ１１１６は、ＰＣＩバス１１１４に対するインターフェイスをＩＳＡ／ＥＩＳＡバスに提供すると共に、必要に応じて追加の機能も有している。セカンダリバスブリッジ１１１６の外側に設けたか、ブリッジ１１１６に搭載した入出力コントローラ（図示せず）をコンピュータシステム１１００に設けて、キーボードおよびマウス１１２２、ならびに様々なシリアルポートおよびパラレルポートをサポートしてもよい。さらに、別の実施形態においては、マイクロプロセッサ１１００とバスブリッジ１１０２との間にあるＣＰＵバス１１２４に、外部キャッシュユニット（図示せず）を結合してもよい。別法として、外部キャッシュをバスブリッジ１１０２に結合してもよく、この外部キャッシュのためのキャッシュ制御ロジックをバスブリッジ１１０２に搭載してもよい。Ｌ２キャッシュ１１２８は、マイクロプロセッサ１１００のバックサイドコンフィグレーションとして図示されている。Ｌ２キャッシュ１１２８は、プロセッサ１００から独立していても、プロセッサ１１００にカートリッジ（例えば、スロット１またはスロットＡ）と統合されていても、マイクロプロセッサ１１００と共に半導体基板に搭載されていてもよいという点に留意されたい。メインメモリ１１０４は、アプリケーションプログラムのストア先であると共に、マイクロプロセッサ１１００の主な実行元のメモリである。適切なメインメモリ１１０４は、ＤＲＡＭ（ダイナミックランダムアクセスメモリ）を有する。例えば、複数バンク構成のＳＤＲＡＭ（シンクロナスＤＲＡＭ）またはラムバスＤＲＡＭ（ＲＤＲＡＭ）が適切である。
【００７３】
ＰＣＩデバイス１１１２Ａ〜１１１２Ｂの例に、ネットワークインタフェースカード、ビデオアクセラレータ、オーディオカード、ハードディスクもしくはフロッピーディスクドライブまたはドライブコントローラ、ＳＣＳＩ（Small Computer Systems Interface）アダプタ、およびテレフォニーカードなどの様々な周辺機器がある。同様に、ＩＳＡデバイス１１１８の例には、モデム、サウンドカード等の様々なタイプの周辺機器のほか、種々のデータ取得カード（ＧＰＩＢインタフェースカードまたはフィールドバスインタフェースカード等）などがある。グラフィックコントローラ１１０８は、ディスプレイ１１２６への文字および画像の表示を制御するために設けられる。
【００７４】
グラフィックコントローラ１１０８は、メインメモリ１１０４の内外へ効果的に移動できる３次元データ構造をレンダリングする、当該技術分野では一般的に知られた代表的なグラフィックアクセラレータを具体化していてもよい。したがって、グラフィックコントローラ１１０８は、バスブリッジ１１０２内のターゲットインタフェースへのアクセスを要求すると共に受取り、これによりメインメモリ１１０４へのアクセスを取得可能であるという点で、ＡＧＰバス１１１０のマスタでありうる。専用のグラフィックバスによって、メインメモリ１１０４から高速にデータを取得することが可能となる。グラフィックコントローラ１１０８は、特定のオペレーションのために、ＡＧＰバス１１１０上でＰＣＩプロトコルトランザクションを生成するようにさらに構成される。
【００７５】
このため、バスブリッジ１１０２のＡＧＰインタフェースは、ＡＧＰプロトコルのトランザクションと、ＰＣＩプロトコルのターゲットトランザクションおよびイニシエータトランザクションとの両方をサポートする機能を備える。ディスプレイ１１２６は、画像または文字を表現可能な任意の電子ディスプレイである。適切なディスプレイ１１２６には、陰極線管（「ＣＲＴ」）ディスプレイや液晶ディスプレイ（「ＬＣＤ」）などがある。上記の説明においてＡＧＰバス、ＰＣＩバス、およびＩＳＡバスまたはＥＩＳＡバスを例として採り上げたが、必要に応じて任意のバスアーキテクチャを代用してもよいという点に留意されたい。さらに、コンピュータシステム１０００は、追加のマイクロプロセッサ（例えば、コンピュータシステム１０００の任意の構成要素として示したマイクロプロセッサ１１００ａなど）を備えたマルチプロセッシングコンピュータシステムであってもよいという点に留意されたい。マイクロプロセッサ１１００ａはマイクロプロセッサ１１００と類似のものであってもよい。より詳細には、一実施形態では、マイクロプロセッサ１１００ａは、プロセッサ１１００と全く同一であってもよい。マイクロプロセッサ１１００ａは、独立したバスを介してバスブリッジ１１０２に結合されていても、マイクロプロセッサ１１００との間でＣＰＵバス１１２４を共用してもよい。さらに、マイクロプロセッサ１１００ａは、Ｌ２キャッシュ１１２８と類似した任意のＬ２キャッシュ１１２８ａと結合されてもよい。
【００７６】
本明細書中で使用されるように、「クロックサイクル」または「サイクル」との用語は、命令処理パイプラインの各種ステージがタスクを完了する時間間隔を指す。クロックサイクルを定義しているクロック信号に従って、命令および計算値がメモリ素子（レジスタまたはアレイなど）によって取得される。例えば、メモリ素子が、クロック信号の立ち上がりまたは立ち下がりに従って値を取得し得る。上記の開示を完全に理解できれば、当業者にとって数多くの変形例および変更例が明らかとなるであろう。添付の特許請求の範囲は、このような変形例および変更例を全て包含するものと解釈されることが意図される。
【産業上の利用可能性】
【００７７】
本発明は、一般に、マイクロプロセッサの分野に適用可能である。
【図面の簡単な説明】
【００７８】
【図１】一実施形態による独立した電圧及び／又は周波数で動作するように構成された複数のロジックコアを含む集積回路のブロック図。
【図２Ａ】複数のロジックコアの各々に対する動作電圧及び／又は周波数が電力管理ロジックによって制御される、マルチコア集積回路の一実施形態のブロック図。
【図２Ｂ】一実施形態によるマルチコア集積回路のロジックコアに対する動作電圧及び／又は周波数を調整するように構成された温度制御ロジックのブロック図。
【図２Ｃ】一実施形態によるマルチコア集積回路のロジックコアに対する動作電圧及び／又は周波数を調整するように構成された温度制御ソフトウェアのブロック図。
【図３】一実施形態による電圧及び／又は周波数変換ロジックを含むマルチコア集積回路のブロック図。
【図４】一実施形態によるマルチコア集積回路のロジックコアに対する動作周波数を独立に調整する方法の一実施形態のフローチャート。
【図５】マルチコア集積回路のロジックコアに対する動作電圧を独立に調整する方法の一実施形態のフローチャート。
【図６】集積回路のロジックコアに対する動作電圧及び／又は周波数を独立して調整することによって、マルチコア集積回路の動作電圧を下げる方法の一実施形態のフローチャート。
【図７】集積回路のロジックコアに対する動作電圧及び／又は周波数を独立して調整することによって、マルチコア集積回路の動作電圧を上げる方法の一実施形態のフローチャート。
【図８】マルチコア集積回路のロジックコアの動作特性を独立に調整することができるコンピュータシステムの一実施形態のブロック図。
【図１】
2009522688.tif 000003
【図２Ａ】
2009522688.tif 000004
【図２Ｂ】
2009522688.tif 000005
【図２Ｃ】
2009522688.tif 000006
【図３】
2009522688.tif 000007
【図４】
2009522688.tif 000008
【図５】
2009522688.tif 000009
【図６】
2009522688.tif 000010
【図７】
2009522688.tif 000011
【図８】
2009522688.tif 000012
【国際調査報告】
2009522688.tif 000013
2009522688.tif 000014
2009522688.tif 000015