(57)【特許請求の範囲】
【請求項１】
半導体基板上のプロセッサ・コアを含むプロセッサと、電力伝導体を介して前記プロセッサに電力を供給する電圧レギュレータ・モジュール（ＶＲＭ）及び前記ＶＲＭに接続された電力コントローラを有する電力システムとを備えるシステムの動作方法であって、
（イ）前記プロセッサの電圧感知出力からの電圧値と、前記ＶＲＭの電流出力から取り出され、前記電力伝導体を介して前記プロセッサに流れる電流値とを前記電力コントローラが受け取り、前記プロセッサの消費電力値を決定するステップと、
（ロ）前記電力コントローラが、前記消費電力値が閾値電力値を超えるか否かを決定するためのテストを行うステップと、
（ハ）前記電力消費値が閾値電力値を超えることに応答して、電力絞りモードをイネーブルし、前記プロセッサに対する電力絞りを行うステップと、
（ニ）前記電力絞りを行うステップの次に、前記プロセッサが前記ＶＲＭから引き出している電力値が、前記閾値電力値よりも少ないか否かのテストを前記電力コントローラが行うステップと、
（ホ）前記プロセッサが前記ＶＲＭから引き出している電力値が、前記閾値電力値よりも少なくないことに応答して、前記電力コントローラが、動的電圧修正モードを行うステップとを上記記載の順序で行い、
前記ステップ（ニ）のテストにおいて、前記プロセッサが前記ＶＲＭから引き出している電力値が、前記閾値電力値よりも少ないことが判明したことに応答して、（ヌ）前記電力コントローラが前記プロセッサに対する電力絞りをディスエーブルするステップを行い、次いで前記ステップ（イ）に戻り、
前記動的電圧修正モードにおいて、
（ヘ）前記プロセッサの電圧感知出力からの電圧値と、前記ＶＲＭの電流出力から取り出され、前記電力伝導体を介して前記プロセッサに流れる電流値とを前記電力コントローラが読取るステップと、
（ト）前記システムが全出力モード又は前記電力絞りモードと、スリープ状態又は休止状態とのうちどちらで動作しているかを前記電力コントローラが調べるステップと、
（チ）前記システムが全出力モード又は前記電力絞りモードで動作していることに応答して、前記プロセッサの電圧感知出力からの電圧値が、前記ＶＲＭが発生する予測電圧値に等しいか否かを前記電力コントローラが調べるステップと、
（リ）前記プロセッサの電圧感知出力からの電圧値が、前記ＶＲＭが発生する予測電圧値に等しくないことに応答して、前記電力コントローラが前記電圧値と前記予測電圧値との間の差に応じた電圧識別値を前記ＶＲＭの電圧識別レジスタに送った後に、前記（ハ）の前記プロセッサに対する電力絞りを行うステップに戻るステップと、
前記（ト）の調べるステップにおいて、前記システムがスリープ状態又は休止状態で動作していることが判明したことに応答して、（ル）前記プロセッサの電圧感知出力からの電圧値が、前記ＶＲＭが発生する予測電圧値に等しいか否かを前記電力コントローラが調べるステップと、
前記プロセッサの電圧感知出力からの電圧値が、前記ＶＲＭが発生する予測電圧値に等しくないことに応答して、（ヲ）前記ＶＲＭから前記プロセッサに供給する電圧値を下げるように、前記電力コントローラが前記電圧識別値を減少した後に、前記（ハ）の前記プロセッサに対する電力絞りを行うステップに戻るステップとを含む動作方法。
【請求項２】
前記ステップ（リ）は、前記電圧値が前記予測電圧値よりも低い場合、前記電圧値を高めるように前記電圧識別値を変更する、請求項１に記載の方法。
【請求項３】
前記ステップ（リ）は、前記電圧値が前記予測電圧値よりも高い場合、前記電圧値を下げるように前記電圧識別値を変更する、請求項１に記載の方法。
【請求項４】
前記ステップ（ハ）は、前記プロセッサ・コアのうちの少なくとも１つの命令をディスパッチする速度を減少させることを含む、請求項１に記載の方法。
【請求項５】
前記ステップ（ハ）は、前記プロセッサ・コアのうちの少なくとも１つをクロック・ゲートすることを含む、請求項１に記載の方法。
【請求項６】
前記プロセッサが前記電力システムから消費する電力値が前記閾値電力値を超えない場合、前記プロセッサが全出力モードで動作するステップを更に含む、請求項１に記載の方法。
【請求項７】
半導体基板上のプロセッサ・コアを含むプロセッサと、電力伝導体を介して前記プロセッサに電力を供給する電圧レギュレータ・モジュール（ＶＲＭ）及び前記ＶＲＭに接続された電力コントローラを有する電力システムとを備えるシステムであって、
前記電力コントローラが、
（イ）前記プロセッサの電圧感知出力からの電圧値と、前記ＶＲＭの電流出力から取り出され、前記電力伝導体を介して前記プロセッサに流れる電流値とを受け取り、前記プロセッサの消費電力値を決定し、
（ロ）前記消費電力値が閾値電力値を超えるか否かを決定するためのテストを行い、
（ハ）前記電力消費値が閾値電力値を超えることに応答して、電力絞りモードをイネーブルし、前記プロセッサに対する電力絞りを行い、
（ニ）前記電力絞りを行うステップの次に、前記プロセッサが前記ＶＲＭから引き出している電力値が、前記閾値電力値よりも少ないか否かのテストを行い、
（ホ）前記プロセッサが前記ＶＲＭから引き出している電力値が、前記閾値電力値よりも少なくないことに応答して、動的電圧修正モードを行い、
前記（ニ）のテストにおいて、前記プロセッサが前記ＶＲＭから引き出している電力値が、前記閾値電力値よりも少ないことが判明したことに応答して、（ヌ）前記プロセッサに対する電力絞りをディスエーブルし、次いで前記（イ）の前記プロセッサの消費電力値を決定する動作に戻り、
前記動的電圧修正モードにおいて、
（ヘ）前記プロセッサの電圧感知出力からの電圧値と、前記ＶＲＭの電流出力から取り出され、前記電力伝導体を介して前記プロセッサに流れる電流値とを読取り、
（ト）前記システムが全出力モード又は前記電力絞りモードと、スリープ状態又は休止状態とのうちどちらで動作しているかを調べ、
（チ）前記システムが全出力モード又は前記電力絞りモードで動作していることに応答して、前記プロセッサの電圧感知出力からの電圧値が、前記ＶＲＭが発生する予測電圧値に等しいか否かを調べ、
（リ）前記プロセッサの電圧感知出力からの電圧値が、前記ＶＲＭが発生する予測電圧値に等しくないことに応答して、前記電圧値と前記予測電圧値との間の差に応じた電圧識別値を前記ＶＲＭの電圧識別レジスタに送った後に、前記（ハ）の前記プロセッサに対する電力絞りを行う動作に戻り、
前記（ト）において、前記システムがスリープ状態又は休止状態で動作していることが判明したことに応答して、（ル）前記プロセッサの電圧感知出力からの電圧値が、前記ＶＲＭが発生する予測電圧値に等しいか否かを調べ、
前記プロセッサの電圧感知出力からの電圧値が、前記ＶＲＭが発生する予測電圧値に等しくないことに応答して、（ヲ）前記ＶＲＭから前記プロセッサに供給する電圧値を下げるように、前記電圧識別値を減少した後に、前記（ハ）の前記プロセッサに対する電力絞りを行う動作に戻る、システム。
【請求項８】
前記（リ）は、前記電圧値が前記予測電圧値よりも低い場合、前記電圧値を高めるように前記電圧識別値を変更する、請求項７に記載のシステム。
【請求項９】
前記ステップ（リ）は、前記電圧値が前記予測電圧値よりも高い場合、前記電圧値を下げるように前記電圧識別値を変更する、請求項７に記載のシステム。
【請求項１０】
前記（ハ）は、前記プロセッサ・コアのうちの少なくとも１つの命令をディスパッチする速度を減少させる、請求項７に記載のシステム。
【請求項１１】
前記（ハ）は、前記プロセッサ・コアのうちの少なくとも１つをクロック・ゲートする、請求項７に記載のシステム。
【請求項１２】
前記プロセッサが前記電力システムから消費する電力値が前記閾値電力値を超えない場合、前記プロセッサが全出力モードで動作する、請求項７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはプロセッサの電源システムに関し、詳しく言えば、プロセッサ・システムが所定の稼動パラメータを超えないようにするために絞り技法を使用するプロセッサの電源システムに関する。
【背景技術】
【０００２】
最新の情報処理システムは、一般に大量の熱を発生するプロセッサを使用する。プロセッサの温度を感知する熱絞り技法が存在する。プロセッサの温度が所定の閾値を超えるとき、システムは、プロセッサのクロック速度を絞って、即ち、減少させることにより、相応にプロセッサの温度を下げさせる。このように、システムは望ましくない過熱を防止する。別の方法として、システムはプロセッサの温度を下げるためにクロック・ゲーティングを使用し得る、即ち、プロセッサのクロックを停止させ得る。
【０００３】
電力消費は、現在のプロセッサ電源システムの設計における制限要因である。システム設計者は、一般に、プロセッサが消費し得る所定の最大電力限度まで供給するようプロセッサの電源システムを設計する。プロセッサ製造の過程で、製造者は、サンプル作業負荷電力時に作動するプロセッサが最大電力制限を超えるかどうかを決定するためのテストを行い得る。製造者は、サンプル作業負荷で作動しているときに最大電力制限を超えるプロセッサを不合格にすることもある。残念ながら、実世界のソフトウェア・アプリケーションを使用する実世界の作業負荷がサンプル作業負荷の電力制限を超えるということがあり得る。この状況に対処するために、システムは人為的な最大電力作業付加制限を使用し得る。しかし、このような人為的な最大電力作業付加制限を使用することは、プロセッサの生産性を下げさせるか、或いはシステムがプロセッサにもっと多くの電力を供給することを必要とすることがある。これらの方法のいずれもシステム・コストを不要に増大させる。
【０００４】
最新の情報処理システム（ＩＨＳ）は、多くの場合、電源がＩＨＳのプロセッサに供給する電圧または電力を制御するために電圧レギュレータ・モジュール（ＶＲＭ）を使用する。ＶＲＭは、一般に、ＶＲＭの出力電圧を制御する電圧ＩＤ（ＶＩＤ）レジスタを含む。ＶＲＭは、ＶＩＤレジスタが貯蔵しているＶＩＤ値に依存した出力電圧をプロセッサに供給し得る。このように、同じＶＲＭモデルが、異なる電圧を必要とする複数のプロセッサの要望を満たし得る。残念ながら、プロセッサおよび電力システムのようなＩＨＳコンポーネントの値または属性は時間の経過と共に変動或いはドリフトし得る。ＩＨＳ製造者がＩＨＳを形成するときに特定の望ましい電圧を出力するようにＶＲＭに指示するＶＩＤ値が将来適正な供給電圧を生じないことがある。これは、時間の経過と共に値を変えるというコンポーネントの傾向のためである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、上記の問題に対処する方法および装置を提供することにある。
【課題を解決するための手段】
【０００６】
従って、１つの実施例では、半導体基板上にプロセッサ回路を含むプロセッサに電力を供給するための方法が開示される。その方法は、プロセッサ回路が複数のコアを含むプロセッサに、電力システムによって電力を供給するステップを含む。その方法は、更に、プロセッサが電力システムから消費する電力が所定の閾値電力を超える場合、電力システムによってプロセッサの少なくとも１つのコアを絞るステップ、従って、プロセッサを電力絞りモードに置くステップも含む。その方法は、更に、プロセッサにおけるプロセッサ回路が電力システムから受ける実出力電圧を電力システムによって決定するステップも含む。その方法は、更に、電力システムの実出力電圧と予測された出力電圧との間の検出された差に応じて、電力システムによって実出力電圧を時間の経過と共に動的に偏向することを含む。
【０００７】
別の実施例では、プロセッサおよび電力システムを含むプロセッサ・システムが開示される。プロセッサは、半導体基板上に置かれた複数のプロセッサ・コアを有するプロセッサ回路を含む。電力システムはプロセッサに接続しており、電力をプロセッサに供給する。電力システムは、プロセッサが所定の閾値電力よりも多い電力を消費した場合、プロセッサの少なくとも１つのコアを絞り、従って、プロセッサを電力絞りモードに置く電力コントローラを含む。電力システムは、更に、プロセッサ回路および電力コントローラに接続したセンサも含む。センサは、プロセッサ回路が電力システムから受ける実出力電圧を感知する。電力システムは、更に、電力コントローラおよびプロセッサに接続した電圧レギュレータも含む。電圧レギュレータは、その電圧レギュレータの実出力電圧と予測出力電圧との間の、電力コントローラが検出した差に応じて、電力コントローラの制御の下に実出力電圧を時間の経過と共に動的に変化させる。
【図面の簡単な説明】
【０００８】
【図１】開示されたプロセッサ・システムのブロック図である。
【図２】開示されたプロセッサ・システムをフル・パワー（全出力）モードおよび絞りモードにおいて動作させるための方法を示すフローチャートである。
【図３】開示されたプロセッサ・システムを動的電圧修正モードで動作させるための方法を示すフローチャートである。
【図４】開示されたプロセッサ・システムのための代表的なロード・ラインである。
【図５】共通の半導体ダイ上にプロセッサおよび電力コントローラの両方を含む開示されたプロセッサ・システムの別の実施例のブロック図である。
【図６】開示されたプロセッサ・システムを使用する情報処理システム（ＩＨＳ）の概略図である。
【発明を実施するための形態】
【実施例】
【０００９】
図１は、電力システム１１０に接続したプロセッサ１０５を含むプロセッサ・システム１００のブロック図を示す。電力システム１１０は、プロセッサ１０５に電力を供給する電圧レギュレータ・モジュール（ＶＲＭ）１１５を含む。電力システム１１０は、プロセッサ１０５およびＶＲＭ１１５の両方に接続した電力コントローラ１２０も含む。１つの実施例では、電力コントローラ１２０は、プロセッサ１０５とは異なる命令設定を実行するマイクロコントローラである。この方法では、電力コントローラ１２０は、プロセッサ１０５とは無関係に動作し得る。ＶＲＭ１１５は、電力コントローラ１２０の制御の下にプロセッサ１０５に電力を供給する。１つの実施例では、ＶＲＭ１１５は、電力伝導体１２５を介してプロセッサ電力入力１０５Ａに複数位相の電力を供給する。
【００１０】
プロセッサ１０５は、多数のプロセッサ・コア１、２、・・・Ｎのようなプロセッサ回路を含む。なお、Ｎはプロセッサ・コアの合計数である。各プロセッサ・コアはそれぞれの命令パイプライン（図示されてない）を含む。各プロセッサ・コアは、コアのパイプラインへの命令のディスパッチ速度を制御するディスパッチ制御回路も含む。例えば、プロセッサ・コア１はディスパッチ制御回路１Ｄを含み、プロセッサ・コア２はディスパッチ制御回路２Ｄを含み、同様に、プロセッサ・コアＮはディスパッチ制御回路ＮＤを含む。プロセッサ・コア１、２、・・・Ｎは、電力コントローラ１２０がそれぞれのプロセッサ・コアの命令ディスパッチ速度を制御することを可能にするように制御バス１３０を介して電力コントローラ１２０に接続している。更に詳しく言えば、ディスパッチ制御回路１Ｄ、２Ｄ、・・・ＮＤの各々は制御バス１３０を介して電力コントローラ１２０に接続している。電力コントローラ１２０は、プロセッサ１０５が消費する瞬間電力を決定し、この電力が所定の閾値電力レベルを超える場合、電力コントローラ１２０は１つまたは複数のディスパッチ制御回路１Ｄ、２Ｄ、・・・ＮＤを、それらのそれぞれのプロセッサ・コア１、２、・・・Ｎが実行のための命令をディスパッチする速度を絞るまたは減じるように指示し得る。このようにディスパッチ速度を絞ることは、絞られたプロセッサ・コアが消費する電力を減らし、従って、プロセッサ１０５が消費する電力全体を減らす。このようにディスパッチ速度を絞ることは、ディスパッチ制御回路によりディスパッチ速度を減少させることのみならず、それぞれのプロセッサ・コアが或る時間量の間命令の実行を停止するようにディスパッチ制御回路によりクロック・ゲートすることも含む。
【００１１】
プロセッサ１０５は、そのプロセッサ１０５と同じ半導体ダイまたは基板１４０上に熱センサ１３５を含む。プロセッサ１０５が現時点で示す温度を電力コントローラ１２０に連続的に知らせるために、Ａ／Ｄコンバータ１４５が熱センサ１３５と電力コントローラの温度入力１２０Ａとの間を結合している。
【００１２】
プロセッサ１０５は、感知電圧Ｖ−ＳＥＮＳＥを供給する電圧感知出力１０５Ｂを含む。この感知電圧は、ＶＲＭ１１５がプロセッサ１０５に電力を供給した結果としてプロセッサ１０５の内部回路が認知している供給電圧に対応する。換言すれば、Ｖ−ＳＥＮＳＥは、ＶＲＭ１１５の供給電圧とプロセッサ１０５との間のＩＲ電圧降下を考慮に入れて、プロセッサ１０５の内部回路がダイ・レベルにおいて認知している電圧である。プロセッサ１０５の電圧感知出力１０５Ｂは、プロセッサ１０５が認知している現在の内部供給電圧、即ち、Ｖ−ＳＥＮＳＥ電圧に関してＶＲＭ１１５に知らせるためにＶＲＭ１１５に接続している。電圧感知出力１０５Ｂと接地との間にはキャパシタ１５０が接続している。電圧感知出力１０５Ｂと電力コントローラ電圧入力１２０Ｂとの間にはＡ／Ｄコンバータ１５５が接続しており、プロセッサ１０５が現在示している瞬間内部供給電圧Ｖ−ＳＥＮＳＥに関して電力コントローラ１２０に知らせる。
【００１３】
ＶＲＭ１１５は電流出力１１５Ａを含み、その電流出力１１５Ａは、電流センサ１６０およびＡ／Ｄコンバータ１６５を介して電力コントローラ１２０の電流入力１２０Ｃ接続している。このように、Ａ／Ｄコンバータ１６５は、プロセッサ１０５がＶＲＭ１１５から電力伝導体１２５を介して流す瞬間電流を電力コントローラ１２０に絶えず知らせる。
【００１４】
従って、Ａ／Ｄコンバータ１４５、１５５、および１６５は、それぞれ、電力コントローラ入力１２０Ａ、１２０Ｂ、および１２０Ｃにプロセッサ・ダイ温度情報、プロセッサ電圧情報、およびプロセッサ電流情報を絶えず供給する。この温度情報、電圧情報、および電流情報は時間の経過と共に変わり得る。電力コントローラ１２０は、種々の時点で電圧情報を電流情報に乗じることによってＶＲＭ１１５からプロセッサ１０５によって引き出された瞬間電力を動的に決定する。１つの実施例では、それらの時点は周期的である。別の実施例では、それらの時点は非周期的または不規則である。プロセッサ１０５が消費する電力が所定の電力レベルを超えているということを電力コントローラ１２０が決定する場合、電力コントローラ１２０は、電力消費を少なくするように数多くの種々のアクションを取り得る。１つの実施例では、電力コントローラ１２０は、１つまたは複数のコア１、２、・・・Ｎに、それぞれのパイプラインにおける命令の実行を減速するように指示し得る。例えば、電力コントローラ１２０は、命令ディスパッチの速度を下げるようにプロセッサ・コア１のディスパッチ制御回路１Ｄに制御信号を送り得る。プロセッサ１０５によって引き出される電力が依然として所定の電力閾値を超えているということを電力コントローラ１２０が決定する場合、電力コントローラ１２０は、他のプロセッサ・コア、例えば、プロセッサ・コア２に、それの命令ディスパッチ速度を下げるように指示し得る。電力コントローラ１２０は、プロセッサ１０５によって引き出される電力を反復的に監視する。一旦、プロセッサ１０５によって引き出される電力が所定の閾値電力よりも下がると、電力コントローラ１２０は、それぞれのコアのディスパッチ・コントローラにそれらのディスパッチ速度を上げるように指示し得る。このように、電力コントローラ１２０は、所定の望ましい電力レベルを超える集中的なプロセッサ活動を生じさせると思われる命令をプロセッサ１０５が実行するとき、プロセッサ１０５により引き出される電力を管理する。
【００１５】
別の実施例では、プロセッサ１０５が引き出す電力が所定の閾値を超えるとき、電力コントローラ１２０は１つまたは複数のプロセッサ・コア１、２、・・・Ｎに、クロック・ゲーティングを開始するように指示し得る。例えば、電力コントローラ１２０は、ディスパッチ制御回路１Ｄにクロック・ゲーティングを開始するよう指示するための信号を、制御バス１３０を介してディスパッチ制御回路１Ｄに送り得る。この場合、ディスパッチ制御回路１Ｄは、クロック信号をプロセッサ・コア１のパイプライン（図示されていない）における１つまたは複数のステージにクロック・ゲートまたはターン・オフする。このアクションは、プロセッサ１０５が引き出す電力を減少させる。プロセッサ１０５が引き出す電力が所定の閾値電力レベルよりも依然として少なくないとき、電力コントローラ１２０は、クロック・ゲートするよう他のプロセッサ・コアに指示する。例えば、電力コントローラ１２０は、クロック・ゲーティングを開始するようプロセッサ・コア２のディスパッチ制御回路２Ｄに指示し得る。この場合、ディスパッチ制御回路２Ｄは、プロセッサ・コア２のパイプラインへの命令の発生を停止させる。これらのクロック・ゲーティング・アクションと結合して、電力コントローラ１２０は、他のプロセッサ・コアに、それぞれのパイプラインへの命令のディスパッチ速度を減少するように指示し、従ってプロセッサ１０５がＶＲＭ１１５から引き出す電力を減少させ得る。一旦、プロセッサ１０５の電力消費が所定の閾値電力レベルよりも少ない値に戻ると、電力コントローラ１２０は、１つまたは複数のプロセッサ・コアに、クロック・ゲーティングをやめるよう、またはそれぞれのディスパッチ速度を増加するよう指示し得る。
【００１６】
システム１００は上記のように電力絞りし得るが、システム１００はプロセッサを熱的に絞ることも可能である。Ａ／Ｄコンバータ１４５は、電力コントローラ１２０の入力１２０Ａに半導体ダイ１４０の瞬間温度を連続的に供給する。プロセッサ１０５の温度が所定の閾値温度を超える場合、電力コントローラ１２０は１つまたは複数のプロセッサ・コア１、２、・・・Ｎに、命令ディスパッチ速度の減少またはクロック・ゲーティングを開始するよう指示し得る。プロセッサ１０５が、それの温度が、最早、所定の閾値温度を超えないよう十分に冷える場合、電力コントローラ１２０は、１つまたは複数のプロセッサ・コアに、命令ディスパッチ速度および／またはクロック・ゲーティングをやめるよう指示し得る。
【００１７】
電力コントローラ１２０が電力絞りまたは熱絞りを開始するとき、この絞りアクションはプロセッサ１０５を、正規の全出力モードから抜け出させ、プロセッサ１０５がＶＲＭ１１５からより少ない電力を引き出す絞りモードに入らせる。電力コントローラ１２０が電力絞りまたは熱絞りを開始しないとき、プロセッサ１０５は正規の全出力（full power）モードで動作する。プロセッサ１０５がスリープ状態または休止状態のような低電力状態に入ることも可能である。
【００１８】
電圧レギュレータ・モジュール（ＶＲＭ）１１５は、電圧識別（ＶＩＤ）レジスタ１７０を含む調整された電源装置である。ＶＲＭ１１５は、可変調整されたＤＣ供給電圧を主出力１１５Ｂにおいて提供する。ＶＲＭ１１５のその出力電圧は、ＶＩＤレジスタ１７０が蓄える特定のＶＩＤ値と共に直接的に変化する。１つの代表的な実施例では、ＶＩＤレジスタ１７０はＶＲＭ出力電圧を決定する５ビットＶＩＤ値を記憶する。特定のアプリケーション次第で、５個以上または５個以下のビットがＶＩＤとして使用可能である。プロセッサ・システム１００の場合、電力コントローラ１２０は、ＶＩＤバス１７５に結合した出力１２０Ｄを含む。ＶＩＤバス１７５が、電力コントローラ１２０をＶＲＭ１１５のＶＩＤレジスタ１７０に接続する。このように、電力コントローラ１２０は、ＶＲＭ１１５が主出力１１５Ｂにおいて発生する出力電圧を制御するＶＩＤ値をＶＩＤレジスタ１７０に供給する。電力コントローラ１２０からの種々のＶＩＤ値が、その結果としてＶＲＭ主出力１１５Ｂにおいて種々の出力電圧値を生じる。
【００１９】
１つの実施例では、電力コントローラ１２０は、ＶＲＭ１１５がプロセッサ１０５に供給する出力電圧の精度を高めるためにＶＩＤバス１７５上のＶＩＤの値を時間の経過と共に動的に調節する。電力コントローラ１２０がプロセッサ１０５を絞りモードに入らせるとき、或いはプロセッサ１０５が全出力モードで動作するとき、これらのいずれの場合においても、電力コントローラ１２０は、ＶＩＤレジスタが指示する電圧に対してより正確に適応するよう、ＶＲＭ１１５がプロセッサ１０５に供給する電圧を増加または減少させることが可能である。電力コントローラ１２０はＡ／Ｄコンバータ１５５からの正確な電圧読取値およびＡ／Ｄコンバータ１６５からの正確な電流読取値をアクセスすることができる。従って、電力コントローラ１２０は、プロセッサ１０５が遭遇しているＶＲＭ１１５の実電圧を正確に測定し、その測定された電流およびロード・ラインに基づいてＶＲＭ１１５の予測電圧を決定することができる。この情報を用いて、電力コントローラ１２０は、回路コンポーネントの性質および時間の経過と共にドリフトするべき合成電圧を是正するようにＶＩＤバス１７５上のＶＩＤを調節する。換言すれば、Ａ／Ｄコンバータ１５５からの実電圧情報およびＡ／Ｄコンバータ１６５からの実電流情報があれば、電力コントローラ１２０は、プロセッサ１０５がダイ・レベルにおいて認知している実電圧を知り、更に、プロセッサ１０５が消費する電力を知る。電力コントローラ１２０は、それがＶＲＭのＶＩＤレジスタ１７０に供給するＶＩＤ値も知る。その結果、プロセッサ１０５が認知している実電圧になる。このＶＩＤ値は、ＶＲＭ１１５が発生する予測された電圧に対応する。電力コントローラ１２０は、設計者が指定した当初予測されたＶＲＭ出力電圧にほぼ等しくなるように或いはより近似するよう、プロセッサ１０５が認知している実電圧を変更するべくＶＩＤ値を時間の経過と共に変える。
【００２０】
１つの方法では、設計者は、ＶＲＭ１１５に対する当初予測された出力電圧を指定し、この当初予測された出力電圧を発生するようＶＲＭ１１５に指示するために電力コントローラ１２０がＶＩＤバス１７５上に発生するＶＩＤ値を設定する。電力コントローラ１２０は、プロセッサ１０５が認知している実電圧を測定するためにＡ／Ｄコンバータ１５５を使用する。プロセッサ１０５が認知している実電圧は、時間の経過と共にドリフトするよう回路コンポーネントの性質およびその結果の電圧のために時間の経過と共に変化し得る。電力コントローラ１２０は、予測された出力電圧およびプロセッサ１０５が認知している実出力電圧を変化させるようにＶＩＤを変動させて時間の経過と共に実出力電圧における変動を補償する。このように、電力コントローラ１２０は、プロセッサ１０５が実際に認知している電圧を、ＶＩＤが指示する電圧に密接に近似させる。
【００２１】
代表的な実施例では、ＶＲＭ１１５は、０.８ボルト乃至１.４ボルトの範囲内で変化し得る出力電圧を出力１１５Ｂにおいて発生する。代表的なＶＲＭ１１５の場合、一旦ＶＲＭ出力電圧が特定のＶＩＤによって設定されると、実出力電圧は、プログラムされた出力電圧の＋または−２０ｍＶの範囲内の精度である。０.８ボルト乃至１.４ボルトの範囲全体において、ＶＩＤは、或る場合には１２.５ｍＶステップで、別の場合には６.２５ｍＶステップで出力電圧を変動するよう変更可能である。特定の実施例に依存して、他の電圧範囲および他の電圧ステップも可能である。製造の直後では、特定のＶＩＤがＶＲＭに発生するように指示する電圧は非常に正確であるかもしれないが、プロセッサ１０５が内部的に認知している実電圧、即ち、Ｖ−ＳＥＮＳＥは、数日、数週、数ヶ月、或いは数年のような時間の経過と共に変動し得るし、ドリフトし得る。開示された方法は、電力コントローラが内部プロセッサ電圧を周期的にまたは不規則に監視すること、およびその電圧が低すぎる場合には１つまたは複数の電圧ステップを加えること、またはその電圧が高すぎる場合には１つまたは複数のステップを減じることを可能にする。このように、電力システム１１０は時間の経過と共にプロセッサ電圧の動的修正を行う。
【００２２】
図２は、上記の絞り方法の１つの実施例を示すフローチャートである。操作は、ブロック２００においてシステム１００が初期化されるときに開始する。更に詳しく言えば、プロセッサ１０５および電力コントローラ１２０は、ブロック２００において各デバイスが種々の命令設定を実行することによって初期化する。ブロック２０５のように、電力コントローラ１２０がＡ／Ｄコンバータ１５５から瞬間電圧Ｖを読取り、更にＡ／Ｄコンバータ１６５から瞬間電流Ｉを読取る。電力コントローラ１２０は、ブロック２１０のように、瞬間電圧を瞬間電流に乗じることによって、プロセッサ１０５が現在消費している瞬間電力を決定する。この時点で、プロセッサ１０５は電力絞りまたは熱絞りのない全出力モードで動作し得る。プロセッサ１０５は、スリープ状態または休止状態のような低電力状態で動作することも可能である。
【００２３】
電力コントローラ１２０は、テスト・ブロック２１５のように、現在の瞬間電力が所定の閾値電力値よりも大きいかどうかを決定するためのテストを行う。例えば、所定の閾値電力値が最大電力−デルタ値（最大電力からデルタ値を減じたもの）に等しいことがあり得る。最大電力は、プロセッサ１０５が安全に動作し得る最高電力レベルを表す電力値である。デルタ値は、絞りが始まるトリガ・ポイントを決定するために選択し得る任意の差分である。現在の瞬間電力が所定の閾値電力値よりも大きくないということをブロック２１５のテストが決定する場合、プロセッサ１０５は絞りモードに入らない。むしろ、これらの環境の下では、システム１００は、図２のブロック２２０のように、図３に示された動的電圧修正（ＤＶＣ）を行う。図３の方法を行った後、プロセス・フローは図２の方法に戻り、ブロック２０５において、電力コントローラ１２０が再び瞬間電圧および電流値を読み取る。電力コントローラ１２０は、再び、ブロック２１０のように、プロセッサ１０５が消費する現在の瞬間電力を決定する。瞬間電力が所定に閾値電力値を超える場合、プロセッサ１０５は、ブロック２２５のように、絞りを可能にすることによって絞りモードに入る。
【００２４】
例えば、プロセッサ１０５は、ブロック２３０のように、そのプロセッサ１０５が現在の瞬間電圧および電流から引き出す現在の瞬間電力を決定することによって電力絞りモードに入り得る。実際には、電力コントローラ１２０は、ブロック２１０が決定した電力を読取り且つ使用し得る。この電力絞りモードでは、電力コントローラ１２０は、プロセッサ１０５が消費する電力が所定の閾値電力値よりも少なくなるまで、電力の量を減らすように作用する。電力消費量を減らすために、電力コントローラ１２０は、ブロック２３５のように、電力絞り行うよう１つまたは複数のプロセッサ・コア１，２、・・・Ｎを選択する。例えば、電力コントローラ１２０は、絞るためのプロセッサ・コア１を選択し得る。電力コントローラ１２０は、そこで、絞り調節ブロック２４０のように、プロセッサ１における命令ディスパッチ速度を減らすようにそのプロセッサ・コアにおけるディスパッチ制御ユニット１Ｄに指示することによってプロセッサ・コア１に関して絞りを調節する。そこで、電力コントローラ１２０は、テスト・ブロック２４５のように、現在プロセッサ１０５が引き出す電力が所定の閾値電力値よりも少ないかどうかを決定するためのテストを行う。プロセッサ１０５が引き出す電力が依然として所定の閾値電力値よりも少なくない場合、電力コントローラ１２０はプロセッサ・コア１を更に攻撃的に絞り得るし、および／または同様に他のプロセッサ・コアを絞り得る。更に、プロセッサ電力消費を減らすために、電力コントローラ１２０は、１つまたは複数のプロセッサ・コアをクロック・ゲートし、従って、それらのコアにおける命令フローを一時的に停止し得る。そのような追加の電力絞り活動の後、電力コントローラ１２０は、再び、判断ブロック２４５のように、プロセッサ１０５によって使用される現在の電力が所定の閾値電力値よりも少ないかどうかを決定するためのテストを行う。その引き出された電力が所定の閾値電力値よりも少ないということを電力コントローラ１２０が知る場合、電力コントローラ１２０はブロック２５０のように絞りをディセーブルし、プロセス・フローは、電圧および電流を読取るためにブロック２０５に戻って継続する。
【００２５】
１つの実施例では、絞りモードにあるとき、電力コントローラ１２０は電力絞りに加えてまたはそれに代わって熱絞りを行い得る。電力コントローラ１２０は、熱センサ１３５およびＡ／Ｄコンバータ１４５が提供するプロセッサ１０５の温度を監視する。換言すると、電力コントローラ１２０は、プロセッサ１０５が現在消費している電力に加えてプロセッサ１０５の温度を読取る。プロセッサ１０５の温度が所定の閾値温度値よりも大きい場合、および／または、プロセッサ１０５が現在消費している電力が所定の閾値電力値よりも大きい場合、電力コントローラ１２０は、絞り調節ブロック２４０に関して上述したように、１つまたは複数のプロセッサ・コア１、２、・・・Ｎの絞りを調節する。そこで、電力コントローラ１２０は、瞬間温度が今や所定の閾値温度値よりも小さいかどうかを決定するためのテストを行い、そして、そのようになった場合、プロセス・フローは絞りディセーブル・ブロック２５０を介して読取りブロック２０５に戻って継続する。
【００２６】
１つの実施例では、電力コントローラ１２０がブロック２４０のように電力絞りを調節し、その結果の瞬間電力が所定の閾値電力値よりも小さくないとき、電力コントローラ１２０は、電力読取りブロック２３０に戻って継続する前に、ブロック２５５のように、図３の動的電圧修正方法を実行する。
【００２７】
図３は、プロセッサの供給電圧における望ましくないドリフトおよび変化を時間の経過と共に修正する動的電圧修正方法の１つの実施例を示すフローチャートである。１つの実施例では、電力コントローラ１２０は、それが図２のフローチャートのＤＶＣ方法の実行ブロック２２０または２５５に認知しているとき、動的電圧修正方法を実行する。図３のフローチャートに説明を戻すと、動的電圧修正方法は開始ブロック３００において始まる。電力コントローラ１２０は、時間の経過と共に動的電圧修正を周期的にまたは不規則に行う。電力コントローラ１２０は、ブロック３０５のように、今やこの修正方法を行うべきときであるかどうかを決定するためのテストを行う。例えば、ブロック３０５は、時間Ｔが現時点でテスト時間に等しいかどうかを決定するテストを行う。時間Ｔがテスト時間に等しくない場合、電力コントローラ１２０は、ブロック３１０のように、時間Ｔをインクリメントし、プロセス・フローは戻りブロック３１５を介して図２の絞り方法のＤＶＣブロック２２０またはＤＶＣブロック２５５に戻る。
【００２８】
電力コントローラ１２０は、ブロック３２５のように、それが動的電圧修正（ＤＶＤ）モード１または動的電圧修正（ＤＶＤ）モード２のどちらに入るべきであるかを決定するテストを行う。電力コントローラ１２０は、システム１００が、現在、全出力モードまたは絞りモードで動作している場合にはＤＶＣモード１を選択する。しかし、電力コントローラ１２０は、プロセッサ１０５が、現在、スリープ状態または休止状態のような非常に低い電力状態で動作している場合にはＤＶＣモード２を選択する。そのようなスリープまたは休止状態では、プロセッサ１０５は、更なる電力節約を行う低電力設定で正しく動作し得るアプリケーション・コードを最早アクティブに実行せず、ユーザまたは他のイベントがシステムを全出力モードまたは絞りモードにウェーク・アップまたは回復するのを待つ。プロセッサ１０５が全出力モードまたは絞りモードにあるとき、それは依然としてアプリケーション・ソフトウェアを実行し得るが、絞りモードにおいてはより遅い速度で実行し得る。しかし、スリープまたは休止状態におけるとき、１つの実施例では、プロセッサ１０５はアプリケーション・プログラム・コードを実行しない。従って、プロセッサ１０５の電流が全出力モード／絞りモードまたは非常に低い電力状態（スリープ状態または休止状態のような）のどちらにあるかに従って、判断ブロック３２５がそれぞれＤＶＣモード１へのパスまたはＤＶＣモード２へのパスのどちらを選択するかが決定される。
【００２９】
プロセッサ１０５が全出力モードまたは絞りモードにある場合、電力コントローラ１２０は、ブロック３３０のように、それがＡ／Ｄコンバータ１５５から読取る実電圧（ＡＶ）を、それがＡ／Ｄコンバータ１５５から読取ることを予測する予測電圧（ＥＶ）と比較する。予測電圧（ＥＶ）は、電力コントローラ１２０がプロセッサ１０５に送るようにＶＲＭ１１５に指示する電圧、即ち、電力コントローラ１２０がＶＲＭ１１５に送るＶＩＤに対応する電圧である。実電圧（ＡＶ）が予測電圧（ＥＶ）に等しいということを判断ブロック３３５が決定する場合、プロセス・フローは、戻りブロック３４０を介して、図２のフローチャートのＤＶＣ方法ブロック２２０またはＤＶＣ方法ブロック２５５に戻る。しかし、実電圧（ＡＶ）が予測電圧（ＥＶ）に等しくないということを判断ブロック３３５が決定する場合、電力コントローラ１２０は、ブロック３４５のように、プロセッサ１０５への電圧が低い量または高い量に対して修正するようにＶＩＤをそれぞれ増加または減少させることよって修正アクションをとる。実際には、電力コントローラ１２０は修正されたＶＩＤをＶＲＭ１１５のＶＩＤレジスタ１７０に書き込むことによってこの修正を行う。ＶＲＭ１１５は可能な電圧調整の粗さを設定する。１つの実施例では、ＶＲＭ１１５は６.２５ｍＶステップまたは１２.５ｍＶステップのようなステップでそれの出力電圧を調整し得る。予測出力電圧のそのような電圧調整が価値あるものであるためには、実出力電圧における電圧ドリフト量が少なくともそのステップ・サイズの半分でなければならない。供給電圧の修正後、電力コントローラ１２０は、ブロック３５０のように、時間Ｔをゼロに設定し、従って、図３の方法が実行する次の時間に、電力コントローラ１２０は、それが再びＤＶＣ方法を行う前に十分な量の時間が経過したかどうかを決定するためのチェックを行うことができる。時間Ｔは、電力コントローラ１２０が図３のＤＶＣ方法を行わない回数を増加させるように継続し、従って、電力コントローラ１２０は時間の経過と共に連続的にＤＶＣテストを行う。そこで、ＤＶＣ方法が完了し、プロセス・フローは、戻りブロック３５５を介して図２のＤＶＣ方法２２０またはＤＶＣ方法２５５を継続する。
【００３０】
プロセッサ１０５がスリープ状態または休止状態のような非常に低い電力状態にあるということをテスト・ブロック３２５が決定する場合、電力コントローラ１２０は、ＶＲＭ１１５がプロセッサ１０５に供給する電圧をより高い効率で減少させるために動的電圧修正モード２に入る。電力コントローラ１２０は、ブロック３７０のように、それがＡ／Ｄコンバータ１５５から読取った実電圧（ＡＶ）を、それがＡ／Ｄコンバータ１５５から読取ることを予測する予測電圧（ＥＶ）と比較する。実電圧（ＡＶ）が予測電圧（ＥＶ）に等しいということをテスト・ブロック３７５が決定する場合、プロセス・フローは戻りブロック３８０を介して図２のＤＶＣ方法ブロック２２０またはＤＶＣ方法ブロック２５５に戻る。しかし、実電圧（ＡＶ）が予測電圧（ＥＶ）に等しくないということを判断ブロック３７５が決定する場合、電力コントローラ１２０は、ブロック３８５のように、ＤＲＭ１１５がプロセッサ１０５に供給する電圧を下げるようにＶＩＤを減少させる。低頻度の動作、および／または、逓減機能を含む電力管理モードでは、システム１００の回路は全出力動作に必要な電圧よりも低い電圧で動作し得る。これは、レジスタ１７０における低いＶＩＤ設定にＶＲＭ１１５をプログラムすることを可能にする。その結果生じる電圧の減少は、システムがサポートする頻度または機能の減少量によっては重要となり得る。１つの実施例では、電圧減少は、１つのＶＩＤステップまたは数百万までの複数のＶＩＤステップであってもよい。電力コントローラ１２０は、修正されたＶＩＤをＶＲＭ１１５のＩＤレジスタ１７０に書込むことによってこの修正を行う。
【００３１】
図４は、ｘ軸において電流示し、ｙ軸においてＶ−ＳＥＮＳＥ電圧を示すＶＲＭ１１５に関するロード・ライン（load line）である。１つの実施例では、ＶＲＭ１１５は、最大電力ポイントにおいて最小の出力電圧まで減衰するロード・ライン・レギュレータ・タイプのＶＲＭである。この構成の利点は、プロセッサ１０５がＶＲＭ１１５に関して突然の電力要求を行う場合、減結合コンデンサ（ＶＲＭ内にあるが図示されてない）が蓄える電圧は、ロード・ラインよりも上であったためにより高くなり、従って、ＶＲＭが反応し得る前に突然の電流要求を供給するために利用し得るより多くの蓄えられたエネルギが存在する。これは、ＶＲＭ電源における減衰の縮小を可能にし、システム１００の他の回路が要求するデカップリングの量を制限することによってコスト削減を可能にする。
【００３２】
設計者が図４におけるようなロード・ラインを有するＶＲＭ１１５を具現化するとき、ＶＲＭ１１５は、ＶＩＤレジスタ１７０のＶＩＤ設定および１１５Ａにおける内部電流の測定に基づいた出力電圧を供給するであろう。図４に示されるように１ミリ・オームのロード・ラインを持つＶＲＭ１１５に対して、１０５Ｂにおける電圧Ｖ−ＳＥＮＳＥは、公差−（アンペアで測定された電流×.００１Ｖ）の場合のＶＩＤ設定電圧に等しい。
【００３３】
理想的なＶＲＭ１１５は、ＥＶ＝（Ｉ×ＬＬ）＋中心のＶＩＤ  のＶ−ＳＥＮＳＥ読取りを行うであろう。この場合、ＥＶはＶＲＭ１１５が提供する予測電圧であり、ＩはＶＲＭ１１５が提供する測定電流であり、ＬＬはボルトで表されたロード・ラインである。Ａ／Ｄコンバータ１６５および１５５からそれぞれ実電流および実電圧を取り出すことによって、ＶＲＭ１１５の実パフォーマンスが測定可能であり、予測された理想値と比較可能である。これらの測定は、プロセッサ１０５が見るＶ−ＳＥＮＳＥ電圧の精度を改良するためにＶＩＤ設定における更なる調節が必要であるかどうかを決定する。
【００３４】
図５は、図１のプロセッサ・システム１００と同様のプロセッサ・システム５００のブロック図であり、図５のプロセッサ・システム５００は、半導体ダイまたは基板５４０が、プロセッサ１０５および電力コントローラ１２０の両方を含む集積回路であるという点を除けば図１のプロセッサ・システム１００と同じである。図５の電力コントローラ１２０は、プロセッサ１０５および電力コントローラ１２０が異なる命令設定のコードを実行するという意味で依然としてプロセッサ１０５から独立している。プロセッサ１０５が部分的にまたは全体的に電源遮断する場合、電力コントローラ１２０は、依然として、電力状態および熱状態を監視するように動作する。電力コントローラ１２０は、Ａ／Ｄコンバータ１４５、１５５、および１６５と共同して、それぞれ、半導体ダイ５４０における熱状態、プロセッサ１０５が内部的に認知している電圧、およびプロセッサ１０５が引き出す電流を正確に測定する。
【００３５】
図６は、開示された電力制御技術を利用したプロセッサ−プロセッサ電力システム１００、５００が使用する情報処理システム（ＩＨＳ）６００を示す。１つの実施例では、プロセッサ−プロセッサ電力システム１００、５００は、異種プロセッサ、即ち、第１命令設定を有する少なくとも１つの汎用プロセッサ・ユニットとその汎用プロセッサとは異なるアーキテクチャおよび命令設定を有する少なくも１つの他のプロセッサ・ユニットとを使用する。例えば、他のプロセッサは、特殊なプロセッサ・ユニットまたは特別目的のプロセッサであってもよい。プロセッサ−プロセッサ電力システム１００または５００は、バス６１５を介してメモリ・システム６１０に接続している。バス６１５は、プロセッサ−プロセッサ電力システム１００、５００をビデオ・グラフィックス・コントローラ６２０にも接続している。ビデオ・グラフィックス・コントローラ６２０には、ディスプレイ６２５が接続している。ＩＨＳ６００に情報の恒久的記憶装置を提供するために、ハード・ディスク・ドライブ、ＣＤドライブ、ＤＶＤドライブ、または他の不揮発性記憶装置のような不揮発性記憶装置６３０がバス６１５に接続している。ＩＨＳ６００のオペレーションを管理するために、メモリ６１０にオペレーティング・システム６３５がロードされる。バス６１５には、キーボードおよびマウス・ポインティング・デバイスのようなＩ／Ｏ装置６４０が接続されている。ＩＨＳ６００への周辺装置およびデバイスの接続を容易にするために、ＵＳＢ、ＩＥＥＥ１３９４バス、ＡＴＡ、ＳＡＴＡ、ＰＣＩ、ＰＣＩＥ、および他のバスのような１つまたは複数の拡張バスがバス６１５に接続している。ＩＨＳ６００が有線によってまたは無線的にネットワークおよび他の情報処理システムに接続することを可能にするために、バス６１５にはネットワーク・アダプタ６５０が接続している。図６は、プロセッサ−プロセッサ電力システム１００、５００を使用するＩＨＳを示すが、そのＩＨＳは多くの形式をとり得る。例えば、ＩＨＳ６００は、デスクトップ、サーバ、ポータブル、ラップトップ、ノートブック、或いは、他のフォーム・ファクタのコンピュータまたはデータ処理システムの形式をとり得る。ＩＨＳ６００は、パーソナル・デジタル・アシスタント（ＰＤＡ）、ゲーム装置、携帯電話機、通信装置、または、プロセッサおよびメモリを含む他の装置のような他のフォーム・ファクタをとり得る。
【００３６】
以上は、プロセッサの電力を節約し、プロセッサの信頼性の高いオペレーションを保証するために複数モードで動作するプロセッサのための電力制御システムを開示した。
【００３７】
本発明の修正および代替実施例は、本発明に関するこの記述からみて当業者には明らかであろう。従って、この記述は、本発明を実行する方法を当業者に教示し、単に例示として解されることを意図している。図示および記述された本発明の形式は本実施例を構成する。当業者は、部品の形状、サイズ、および配列において種々の変更を行い得る。例えば、当業者は、本願において図示および記述された素子に対して同等の素子を代用し得る。更に、当業者は、本発明の説明という便宜を得れば、本発明の範囲を逸脱することなく、本発明の特徴を、他の特徴の利用に無関係に、利用し得る。
【図１】
0005437077.tif 000002
【図２】
0005437077.tif 000003
【図３】
0005437077.tif 000004
【図４】
0005437077.tif 000005
【図５】
0005437077.tif 000006
【図６】
0005437077.tif 000007