説明

プロセッサ動作電圧の自動動的制御

【課題】プロセッサシステムは、動作電圧とコア/バス周波数との組み合わせによってはプロセッサの損傷あるいはプロセッサの動作の信頼性低下を引き起こすことを防止する。
【解決手段】1つのプロセッサの動作電圧を動的に調整する一方で、前記プロセッサが前記プロセッサの前記コア/バス周波数比との関係において有害である1つの動作電圧状態に1人のユーザによって置かれることを防止するための手法。より具体的には、プロセッサの動作電圧をプロセッサのバスおよび/あるいはコアクロック周波数の1つの関数として制御するための1つの手法に関する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の複数の実施態様は、複数のマイクロプロセッサおよび複数のマイクロプロセッサシステムに関する。より具体的には、本発明の複数の実施態様は、プロセッサのコア/バス周波数に基づき1つのマイクロプロセッサの動作電圧を動的に制御する方法に関する。
【背景技術】
【0002】
マイクロプロセッサによっては、1つの動作電圧を1つのプロセッサのコアクロック速度に応じて調整できるもの、プロセッサが1つのコンピュータシステム内の他の複数の装置と通信するための外部バス(以降「バス」と呼ぶ)の速度に応じて調整できるもの、または、コアクロックおよびバスクロックの両速度のある数学的組み合わせ(たとえば1つの比あるいは1つの積)に応じて調整できるものもある。一部のコンピュータシステムにおいては、バスは1つの「フロントサイドバス」として公知であるが、他の複数のコンピュータシステムにおいては、たとえば1つのポイントツーポイント相互接続内では、バスは1つの「リンク」として公知である。
【0003】
プロセッサの動作電圧をバスおよび/あるいはコア周波数の1つの関数として調整する従来技術の手法では、動作電圧の設定は、オペレーティングシステムおよび/あるいはベーシック入出力ソフトウェア(BIOS)により、通常、1つのマシン固有レジスタを介して設定されてきた。たとえば、少なくとも1つの従来技術の実装では、複数の許容動作電圧および複数のバス/コア周波数比対を含む1つのテーブルをハードウェアメモリあるいはシステムメモリのどちらかに生成して、このテーブルに従ってプロセッサの電源を調整しなければならない。
【発明の開示】
【発明が解決しようとする課題】
【0004】
これら複数の従来技術の手法では、1人のユーザが動作電圧および/あるいは複数のバスおよび/あるいはコアクロック周波数をそれぞれ個別に変更できるので、動作電圧とコア/バス周波数との組み合わせによってはプロセッサの損傷あるいはプロセッサの動作の信頼性低下を引き起こしうるので都合が悪い。
【課題を解決するための手段】
【0005】
本発明の複数の実施形態は、1つのマイクロプロセッサ内の電源制御に関する。より具体的には、本発明の複数の実施形態は、プロセッサの動作電圧をプロセッサのバスおよび/あるいはコアクロック周波数の1つの関数として制御するための1つの手法に関する。
【0006】
本発明の複数の実施形態は、プロセッサのコアおよび/あるいはバスクロック周波数の1つの変化に応じて、1つのプロセッサの動作電圧の計算及び調整を行う。さらに、本発明の複数の実施形態において、プロセッサの動作電圧を自動的に調整する方法は、コアおよび/あるいはバス周波数の1つの変化に応じてプロセッサが適切な動作電圧を設定できることによるので、ユーザが動作電圧を変更しなくてすむ。本発明の1つの実施形態は、プロセッサのバス/コア周波数比(R)の1つの変化に応じて、1つのプロセッサの動作電圧を計算及び調整する。さらに、少なくとも1つの実施形態は、1つの最小許容動作電圧/R点と1つの最大許容動作電圧/R点との間の1つの曲線から求められた1つの動作電圧値「Vid」に応じて1つのプロセッサの動作電圧を調整する。
【0007】
個々の図面を参照しながら本願明細書で説明するいくつかの実施形態は、1つのプロセッサコア/バス周波数比に応じて1つのプロセッサの1つの動作電圧をどのように変えることができるかを示すが、他の複数の実施形態では、プロセッサのコア周波数だけに応じてプロセッサの動作電圧を変えてもよい。さらに、他の複数の実施形態では、バス周波数に応じてプロセッサの動作電圧を変えてもよく、また他の複数の実施形態では、コアおよびバス周波数の他の何らかの数学的組み合わせ(たとえば積)に応じて動作電圧を変えてもよい。
【発明を実施するための最良の形態】
【0008】
図1は、1つのプロセッサの動作電圧Vidをコア/バス周波数比Rの1つの関数として示す1つのグラフである。本発明の1つの実施形態では、曲線101の勾配およびy軸切片105を求めることによって、1つの所与のR値に対して適切な図1のVidが計算される。y軸切片は、プロセッサの最小許容動作電圧に対応して、さまざまなプロセッサ間で異なりうる。少なくとも1つの実施形態においては、Vid範囲をコア/バス比範囲で割ることによって図1の曲線の勾配を計算する。Vid範囲は、最小許容コア/バス周波数比に対応するプロセッサの最小許容動作電圧と、最大許容コア/バス周波数比110に対応するプロセッサの最大許容電圧範囲との間の差である。
【0009】
図1の曲線の勾配が計算されると、一次方程式Vid=mR+VidMinによって1つの所与のコア/バス周波数比から何れの動作電圧Vidでも計算しうる。式中のmは曲線の勾配であり、Rは1つの特定のコア/バス比に相当するx軸上の一点であり、VidMinは図1のy軸切片に相当するプロセッサの最小許容動作電圧である。
【0010】
1つのコア/バス比Rが与えられると、図1の曲線から何れの動作電圧Vidでも求めうる。1つの実施形態においては、Rに1つの変化があるたびに、プロセッサの動作中にプロセッサをリブートしなくても動作電圧が動的に切り替わる。本発明の1つの実施形態においては、コア/バス周波数比の1つの変化を検出して、図1の曲線に応じて1つの新しいVid値を計算することによって動作電圧の動的切り替えを容易にすることができる。さらに、プロセッサのコア/バス周波数比だけを構成することによってプロセッサにVidを自動的に選択させうるので、従来技術のようにオペレーティングシステムあるいはBIOSがコア/バス周波数比および複数のVid値の両方を1つのマシン固有レジスタに書き込まなくてよい。この方法では、プロセッサの動作電圧の切り替えが動的に行われるばかりでなく、従来技術に比べより安全に行われるが、この理由はプロセッサが複数のユーザによってプロセッサの損傷あるいはプロセッサの動作の信頼性低下を引き起こしうるVid/Rの1つの組み合わせに置かれる可能性がなくなるからである。
【0011】
一般に、最大許容コア/バス周波数比および最小許容コア/バス周波数比は、プロセッサ内に格納されている、対応する1つの二進値を通じて検出できる。さらに、1つのプロセッサが動作する1つのコア/バス周波数比は、1つのマシン固有レジスタ(MSR)などの1つのマシンレジスタ内の1つの対応値を読み取ることによって検出できる。ただし、得られたVidを1つのMSRに書き込まなくてもよく、代わりにプロセッサがVidを自動的に計算し、結果として得られた値を用いてプロセッサの電源制御装置を構成しうるので、ユーザによるVidの直接の変更の危険性および可能性を回避しうる。
【0012】
1つの実施形態においては、プロセッサ内の一般に「マイクロコード」として公知の複数のコンピュータ読み取り可能マイクロアーキテクチャ命令によって、図1の曲線のような1つの曲線に応じて1つの特定のコア/バス周波数比に対応する動作電圧を計算することができる。さらに、他の複数の実施形態においては、プロセッサのロジックによって、あるいはプロセッサのロジックとマイクロコードとの1つの組み合わせによって、複数のVid計算をすることができる。他の複数の実施形態においては、システムのニーズに応じて、マイクロコード以外の他のソフトウェアを用いてこれら複数の計算を実行してもよい。
【0013】
図2は、本発明の1つの実施形態による複数の工程を示す1つのフローチャートである。図2においては、プロセッサの複数の状態遷移を制御するプロセッサのロジックあるいはマイクロコードなどのソフトウェアを用いて、プロセッサの動作電圧およびコア/バス周波数比を変更することができる。たとえば、工程201においては、1つの値を1つのMSRレジスタに書き込むコマンドなどの1つのコマンドの宛先が、プロセッサの動作電圧および/あるいはコア/バス周波数比を制御する1つのマシンレジスタであるかどうかを判定する。そうである場合は、次に工程205において、要求されたコア/バス比がプロセッサの許容範囲内であるかどうかを判定する。そうでない場合は、工程207において、1つの障害条件を通知する。そうである場合は、図1に一例として示したVid/R曲線の勾配を工程210で計算することができ、さらに工程215で要求されたコア/バス比に対応する目標Vidを計算できる。次に工程220において、この目標Vidを使用してプロセッサの可変電源をプログラミングしうる。
【0014】
図3は、本発明の1つの実施形態を使用しうる1つのフロントサイドバス(FSB)コンピュータシステムを示す。プロセッサ305は、レベル1(L1)の1つのキャッシュメモリ310およびメインメモリ315のデータにアクセスする。本発明の他の複数の実施形態においては、このキャッシュメモリは、1つのコンピュータシステムの1つのメモリ階層内のレベル2(L2)の1つのキャッシュメモリあるいは他のメモリでもよい。さらに、実施形態によっては、図3のコンピュータシステムに1つのL1キャッシュと1つのL2キャッシュとを含めてもよく、この場合は、コヒーレンシーデータをL1キャッシュとL2キャッシュとの間で共有するための1つの包含的キャッシュ階層を含む。
【0015】
図3のプロセッサ内に、本発明306の1つの実施形態が示されている。ただし、本発明の他の複数の実施形態は、このシステム内の他の複数の装置内、たとえば1つの個別バスエージェント内、に実装してもよく、あるいはシステム全体のハードウェア、ソフトウェア、またはこれらの組み合わせに分散させてもよい。
【0016】
メインメモリは、動的ランダムアクセスメモリ(DRAM)などの各種メモリソース、1つのハードディスクドライブ(HDD)320、あるいはさまざまな複数の記憶装置および複数の技術を含むネットワークインタフェース330を介してコンピュータシステムから離れた場所にある1つのメモリソースに実装してもよい。キャッシュメモリは、プロセッサ内あるいはプロセッサの近傍、たとえばプロセッサのローカルバス307上に配置してもよい。さらに、キャッシュメモリは、1つの6トランジスタ(6T)セルなど比較的高速な複数のメモリセル、あるいはアクセス速度がほぼ同じかより速い他のメモリセルを含んでもよい。
【0017】
図3のコンピュータシステムは、ポイントツーポイント(PtP)ネットワーク上の各エージェント専用の複数のバス信号を介して通信する、複数のマイクロプロセッサなどの複数のバスエージェントから成る1つのPtPネットワークでもよい。複数の格納動作が複数のバスエージェント間で1つの迅速な方法で行われるように、発明306の少なくとも1つの実施形態は、各バスエージェント内に存在するか、あるいは各バスエージェントに少なくとも対応付けられる。
【0018】
図4は、1つのポイントツーポイント(PtP)構成に構成された1つのコンピュータシステムを示す。特に、図4は、複数のプロセッサ、メモリ、および複数の入出力装置がいくつかのポイントツーポイントインタフェースによって相互接続されている1つのシステムを示す。
【0019】
図4のシステムは、いくつかのプロセッサをさらに含みうるが、明確にする目的で、そのうちの2つのプロセッサ470、480だけが図示されている。複数のプロセッサ470、480は、メモリ22、24と接続するべく、それぞれ1つのローカルメモリコントローラハブ(MCH)472、482を含みうる。複数のプロセッサ470、480は、複数のPtPインタフェース回路478、488を使用して、1つのポイントツーポイント(PtP)インタフェース450経由でデータを交換してもよい。複数のプロセッサ470、480は、複数のポイントツーポイントインタフェース回路476、494、486、498をそれぞれ使用して、個々のPtPインタフェース452、454経由で1つのチップセット490とデータを交換してもよい。チップセット490もまた、1つの高性能グラフィックスインタフェース439経由で1つの高性能グラフィックス回路438とデータを交換してもよい。
【0020】
本発明の少なくとも1つの実施形態は、図4の複数のPtPバスエージェントのそれぞれの内部にある複数のPtPインタフェース回路内に配置してもよい。ただし、本発明の他の複数の実施形態は、図4のシステム内の他の複数の回路、複数の論理演算ユニット、あるいは複数の装置に存在してもよい。さらに、本発明の他の複数の実施形態を、図4に示すいくつかの回路、いくつかの論理演算装置、あるいはいくつかの装置に分散させてもよい。
【0021】
複数の実施例を参照しながら本発明を説明してきたが、この説明は本発明を限定するためのものではない。上記複数の実施例のさまざまな変更、並びに他の複数の実施形態が本発明の精神と範囲に含まれることは、本発明に関係する業界の当業者には明らかであろう。
【図面の簡単な説明】
【0022】
本発明の複数の実施形態を複数の添付図面の複数の図に示すが、これは例示を目的としたものであり、本発明の範囲を限定するものではない。これらの添付図面において同様の参照符号は同様の要素を示す。
【図1】本発明の1つの実施形態による1つのプロセッサの動作電圧を該プロセッサのバス/コア周波数比の1つの関数として示す1つのグラフである。
【図2】本発明の少なくとも1つの実施形態で用いられる複数の工程を示す1つのフローチャートである。
【図3】本発明の少なくとも1つの実施形態を実装しうる1つのフロントサイドバスコンピュータシステムである。
【図4】本発明の1つの実施形態を使用しうる1つのポイントツーポイント(p2p)コンピュータシステムを示す。

【特許請求の範囲】
【請求項1】
1つの装置であって、1つのプロセッサの動作電圧を前記プロセッサのコアおよび/あるいはバスのクロック周波数の1つの変化に応じて調整する第2の手段であって、前記動作電圧が1人のユーザによって前記コアおよび/あるいはバスのクロック周波数とは無関係に調整されることを防止する第2の手段を含む装置。
【請求項2】
請求項1の装置であって、前記プロセッサのコアクロックを設定する1つの周波数と、前記プロセッサに結合された前記バスを設定する1つの周波数との間の1つの比(コア/バス比)を求める1つの第1の手段をさらに含む装置。
【請求項3】
請求項2の装置であって、前記第2の手段が、前記コア/バス比を1つの変数とする1つの一次方程式に従って前記動作電圧を調整する装置。
【請求項4】
請求項3の装置であって、前記一次方程式の1つの勾配が前記プロセッサの1つの最大および最小許容動作電圧および前記プロセッサの1つの最大および最小許容コア/バス比の間の前記差の1つの比に依存する装置。
【請求項5】
請求項1の装置であって、前記第2の手段が前記プロセッサの前記動作電圧を自動的に複数回調整し、前記プロセッサをリブートしなくても前記プロセッサが各動作電圧で機能できる装置。
【請求項6】
請求項5の装置であって、前記第2の手段が前記プロセッサ内に格納され、1人のユーザが利用できない複数のマイクロアーキテクチャ命令を含み、前記複数のマイクロアーキテクチャ命令が前記プロセッサによって実行されると、前記第1の手段によって求められた前記コア/バス比に応じて前記プロセッサの動作電圧が調整される装置。
【請求項7】
請求項4の装置であって、前記第2の手段が、前記一次方程式を実装するためのプロセッサロジックを含む装置。
【請求項8】
請求項4の装置であって、前記一次方程式を実装するために、前記第2の手段が複数のコンピュータ読み取り可能マイクロアーキテクチャ命令とプロセッサロジックとの1つの組み合わせを含む装置。
【請求項9】
1つの方法であって、
1つのプロセッサのコアクロック周波数と、前記プロセッサが1つのコンピュータシステム内の他の複数のエージェントとの通信に使用する1つのバスの1つの周波数との間の1つの比(コア/バス比)の1つの変化を検出する工程と、
前記コア/バス比の前記変化の検出に応じて、前記コア/バス比を1つの変数とする1つの一次方程式に従って前記プロセッサの動作電圧を動的に調整する工程と、を含む方法。
【請求項10】
請求項9の方法であって、前記検出工程が、前記コア/バス比を制御するための1つのマシンレジスタに書き込まれる1つのコマンドを解釈する工程を含む方法。
【請求項11】
請求項10の方法であって、前記検出工程が、前記変更後のコア/バス比が前記プロセッサの1つの許容範囲内にあるかどうかを識別する工程を含む方法。
【請求項12】
請求項11の方法であって、前記変更後のコア/バス比が前記プロセッサの1つの許容範囲内にあり、前記コマンドが前記コア/バス比を制御するための1つのマシンレジスタに書き込まれた場合は、前記プロセッサの1つの最大および最小許容動作電圧および前記プロセッサの1つの最大および最小許容コア/バス比の間の前記差に応じて前記一次方程式の前記勾配を計算する方法。
【請求項13】
請求項12の方法であって、前記電源が1人のユーザによって前記コアあるいはバスのクロック周波数とは無関係に調整されないように、1つの値を前記プロセッサの電源にプログラミングすることによって前記プロセッサの動作電圧を調整する方法。
【請求項14】
請求項13の方法であって、前記プロセッサの電源を、前記プロセッサをリブートしなくても前記プロセッサが動作できる1つの許容範囲内の複数の動作電圧間で調整する方法。
【請求項15】
請求項14の方法であって、複数のマイクロアーキテクチャ命令を前記プロセッサ内で実行することによって、前記一次方程式を実装する方法。
【請求項16】
請求項14の方法であって、プロセッサの論理回路を介して前記一次方程式を実装する方法。
【請求項17】
請求項14の方法であって、プロセッサロジックと前記プロセッサ内の複数のマイクロアーキテクチャ命令との1つの組み合わせによって前記一次方程式を実装する方法。
【請求項18】
1つのシステムであって、
複数の装置間で情報を伝達するための1つのバスと、
前記バスに結合された1つのプロセッサであって、前記プロセッサが機能する前記電圧(動作電圧)を、前記プロセッサのコア周波数と前記バス周波数との前記比(コア/バス比)の1つの変化に応じて、前記プロセッサをリブートせずに動的に切り替え、前記コア/バス周波数と動作電圧との組み合わせが1人のユーザによって前記プロセッサを損傷しうる組み合わせにされることを防止するためのロジックを含むプロセッサと、を含むシステム。
【請求項19】
請求項18のシステムであって、1つの電圧識別値(Vid)を前記プロセッサに結合された1つの可変電源にプログラミングすることによって前記動作電圧を調整するシステム。
【請求項20】
請求項19のシステムであって、前記Vidが前記コア/バス比の1つの線形関数であるシステム。
【請求項21】
請求項20のシステムであって、前記線形関数を実行するためにプロセッサのマイクロコードを用いるシステム。
【請求項22】
請求項20のシステムであって、前記線形関数を実行するためにプロセッサのロジックを用いるシステム。
【請求項23】
請求項21のシステムであって、前記線形関数に対応する1つの曲線の前記勾配が前記プロセッサの1つの最大および最小許容動作電圧および前記プロセッサの1つの最大および最小許容コア/バス比の間の前記差の1つの比に依存するシステム。
【請求項24】
請求項23のシステムであって、前記バスに結合された複数の命令を格納するための1つのメモリと前記バスに結合された1つのオーディオ装置とをさらに含むシステム。
【請求項25】
1つのプロセッサであって、
前記プロセッサのコアクロックを設定する1つの周波数と、前記プロセッサに結合された1つのバスを設定する1つの周波数との間の比(コア/バス比)を求めるための第1のロジックと、
前記第1のロジックによって求められた前記コア/バス比に応じて前記プロセッサの動作電圧を調整し、前記プロセッサの動作電圧が1人のユーザによって調整されることを防止するための第2のロジックと、を含むプロセッサ。
【請求項26】
請求項25のプロセッサであって、ユーザが利用可能な1つのマシンレジスタを使わずに、前記プロセッサの電源を構成することによって前記第2のロジックが前記動作電圧を調整するプロセッサ。
【請求項27】
請求項25のプロセッサであって、前記コア/バス比を1つの変数とする1つの一次方程式に従って前記第2のロジックが前記動作電圧を調整するプロセッサ。
【請求項28】
請求項27のプロセッサであって、前記一次方程式の1つの勾配が前記プロセッサの1つの最大および最小許容動作電圧および前記プロセッサの1つの最大および最小許容コア/バス比の間の前記差の1つの比に依存するプロセッサ。
【請求項29】
請求項25のプロセッサであって、前記プロセッサの前記動作電圧が前記第2のロジックによって複数回調整され、リブートなしに各動作電圧で機能可能なプロセッサ。
【請求項30】
請求項29のプロセッサであって、前記第2のロジックが前記プロセッサ内に格納されている、1人のユーザが利用できない複数のマイクロアーキテクチャ命令を実行し、前記第2のロジックによって前記複数のマイクロアーキテクチャ命令が実行されると、前記第1のロジックによって求められた前記コア/バス比に応じて前記プロセッサの動作電圧が調整されるプロセッサ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2013−101677(P2013−101677A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【外国語出願】
【出願番号】特願2013−13535(P2013−13535)
【出願日】平成25年1月28日(2013.1.28)
【分割の表示】特願2011−254063(P2011−254063)の分割
【原出願日】平成17年10月5日(2005.10.5)
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】