説明

ダイナミック電圧スケーリングシステム

【課題】ダイナミック電圧スケーリング(DVS)システムの最適化方法。
【解決手段】マイクロプロセッサーコア内で生じる活動情報およびクリティカルパス遅延情報を検出するための監視ブロックと、監視ブロックから活動情報およびクリティカルパス遅延情報を読み、活動情報およびクリティカルパス遅延情報を処理し、活動情報とクリティカルパス遅延情報を処理した結果に従ってマイクロプロセッサーコアに供給される電圧を調節する制御ブロックを備えたダイナミック電圧スケーリングシステム。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、一般に電力の分野に関し、特に電子部品の電力消費の分野に関する。
【背景技術】
【0002】
内部電源からの引き出しを最小限にすることは、例えば、パーソナルデジタルアシスタンス(PDAs)、携帯電話装置、パーソナルラップトップコンピューター等のような電子装置が、 外部電源につながれていない拡張された期間動作することを可能にする。
【0003】
電力消費を低減するための1つの方法論は、そのような装置内のマイクロプロセッサーコアが常にピーク性能レベルで動作する必要が無いことを前提とする。より低いレベルの性能が許容されているなら、マイクロプロセッサーコアのクロック周波数は低下してもよい。それに相当するものとして、そのクロック周波数をサポートするためのコアに対する最小電源電圧も低下してもよい。従って、ダイナミック電圧スケーリング(DVS)は、コアにかかる計算負荷が変化するときはいつでも、マイクロプロセッサーに供給される電圧を調節するように設計された方法論である。
【0004】
いくつかの過去のDVSシステムは、コアのクリティカルパスの重複に基づいていた。
【0005】
デジタル信号処理システムにおいて、用語「クリティカルパス」は、任意の2つの記憶素子または任意の2つの遅延素子の間の最長のパスを指す。組合せ論理回路において、クリティカルパスは入力と出力との間の最大遅延である。
【0006】
過去のDVSシステムの1つの例では、フィードバックループ内で構成された自励発振器を用いてクリティカルパスをモデル化する。電源電圧は自励発振器に供給される。自励発振器は動作周波数に容易に変換されてもよいクロック信号を出力する。動作周波数は所望の周波数と比較されて誤差値を発生してもよい。次に、誤差値を用いてキャパシタへの電荷の転送を決定する。キャパシタは新しい電源電圧を発生するために使用される。新しい電源電圧は自励発振器にフィードバックしてループをクローズしてもよい。従って、新しいクロック周波数が要求される場合は常に、電源電圧は調節されてもよい。リニアレギュレータとバックコンバータのような代替部品は所望の結果を達成するために、自励発振器と共に使用されてもよい。
【0007】
しかしながら、DVSシステムは、実際のクリティカルパス自体の測定ではなく、クリティカルパスモデルの測定に依存するので上述したDVSシステムは最適ではない。
【発明の概要】
【0008】
上述した必要性に対処するための方法と装置がここに提示される。ここに提示される新しいDVSシステムは、重複モデルの測定値を取得することよりもむしろ、クリティカルパスの生データ測定値を取得することにより電源電圧調節の精度を増加させる。1つの観点において、マイクロプロセッサーコア内で生じる活動情報およびクリティカルパス遅延情報を検出するための監視ブロックと、監視ブロックから活動情報およびクリティカルパス遅延情報を読み、活動情報およびクリティカルパス遅延情報を処理し、活動情報とクリティカルパス遅延情報を処理した結果に従ってマイクロプロセッサーコアに供給される電圧を調節する制御ブロックを備えたダイナミック電圧スケーリングシステムが提供される。
【0009】
他の観点において、端末レジスタ入力信号、端末レジスタ出力信号および制御信号を受信するように構成された埋め込み遅延チェッカー(EDC)セルが提供される。EDCは、複数の遅延素子と、複数の遅延素子に接続されたマルチプレクサであって、前記マルチプレクサは、制御値に従って端末レジスタ入力信号のパス内に配置するために遅延素子のサブセットを選択するように構成される、マルチプレクサと、マルチプレクサの出力を記憶するためのレジスタと、マルチプレクサの記憶された出力と端末レジスタ出力信号との間の論理差を検出するように構成された論理素子とを備える。
【0010】
他の観点において、処理コアの電圧をダイナミックにスケーリングするための方法が提供される。この方法は、処理コア内の活動を直接検知することと、処理コアのクリティカルパスに関連する遅延情報を決定することと、検知された活動と遅延情報を用いて処理コアの電圧をスケーリングすることとを備える。
【0011】
他の観点において、処理コアの電圧をダイナミックにスケーリングする装置が提供される。この装置は、処理コア内の活動を直接検知する手段と、処理コアのクリティカルパスに関連する遅延情報を決定する手段と、検知された活動および遅延情報を用いて処理コアの電圧をスケーリングする手段とを備える。
【図面の簡単な説明】
【0012】
【図1】図1は、埋め込み遅延チェック(EDC)セルおよびスレーブリング発振器(SRO)セルを用いたダイナミックスケーリング(DVS)システムのブロック図である。
【図2】図2はクリティカルパスモニター(CPM)ブロックのブロック図である。
【図3】図3は、EDCセル用の可能な構造のブロック図である。
【図4A】図4Aは、コアに供給された電圧を調節するためにダイナミック電圧スケーリングコントローラー(DVSC)ブロックにより使用されるヒステリシスチャートの一例である。
【図4B】図4Bは電圧対周波数のプロットである。この場合しきい値曲線は、処理コアが与えられた周波数で動作することができる最小電源電圧を表す。
【図5】図5は、SROセルのための可能な構造のブロック図である。
【発明を実施するための形態】
【0013】
ダイナミック電圧スケーリング(DVS)システムを実施するための種々の方法と装置はここに提示される。一実施形態において、埋込み遅延チェッカー(EDC)セルを用いてマイクロプロセッサーコア内の実施の活動とクリティカルパスの遅延を測定する。クリティカルパスの遅延は、コアに対する電圧をダイナミックに変更するための基礎である。
【0014】
他の実施形態において、スレーブリング発振器(SRO)セルは、マイクロプロセッサーコアに隣接して配置され、EDCセルと共に使用されてDVSシステムに冗長度を与える。
【0015】
図1は、EDCセルおよびSROセルを使用してもよいDVSシステムの一実施形態の機能ブロック図である。DVSシステム100は、クリティカルパスモニター(CPM)ブロック110、ダイナミック電圧スケーリングコントローラー(DVSC)ブロック120、電圧レギュレーターブロック130を備える。CPMブロック110は、マイクロプロセッサーコア140内の活動を捕獲し処理するためのものである。DVSCブロック120は、CPM110の出力を読んで処理し、コアに対する電圧を調節するためのものである。また、DVSCブロック120は、CPM部品内のパラメーターを検知し、システム内にヒステリシスを形成するために、それに応じてパラメーターを調整してもよい。電圧レギュレーターブロック130は、DVSCブロック120からの指示に従って、段階的にコアに電圧を供給するためのものである。
【0016】
図2は、マイクロプロセッサーコア140内に位置するEDCセル200a−200d、マイクロプロセッサーコアに隣接して位置するSROセル210a、210b、コア140内に位置するSROセル210c、クリティカルパス活動(CPA)レジスタ220およびパス/フェイルレジスタ220を含むCPMブロック110のブロック図である。実例の容易さの目的のために、4つ(4)のみのEDCセル、3つ(3)のみのSROセル、および1つ(1)のみの結合されたCPAおよびパス/フェイルレジスタがこのCPMブロック説明図に記載されている。当業者は、さまざまな数のそのようなセルが必要以上の実験なしに実施されてもよいことを理解するであろう。
【0017】
一般に、EDCセル200は、マイクロプロセッサーコア内の活動とクリティカルパスの遅延を直接検知するためのものである。活動情報は、遅延情報を制限するためにDVSシステム100により使用される。遅延情報は同様にコアに対する電源電圧を上げるかまたは下げるかどうかを決定するために使用される。EDCセル200は、クリティカルパスの端末レジスタに入力する入力信号を受信するように、また端末レジスタを出る出力信号を受信するように位置する。「端末レジスタ」は、コアクロックに対する信号パスの終端点である。最適な性能のために、EDCセル200は、ルーチン遅延を最小にするためにクリティカルパス領域付近に位置しなければならない。あるいは、EDCセル200は、EDCセル200がクリティカルパス領域から離れて位置するならルーチン遅延を補償するように設計してもよい。CPAレジスタ220は、パスの以前の論理状態をパスの現在の論理状態と比較することによりクリティカルパス上の活動を決定する。ここに使用されるように、「活動」は、1から0または0から1への論理的変化である。
【0018】
図3は、EDCセル200の内部構造のブロック図である。さまざまな遅延素子310a−310dが信号CP_Dのパスに選択的に追加される。信号CP_Dはまた端末レジスタ300に入力する入力信号である。信号CP_Dのパスに配置される遅延素子の数は制御信号DLYにより調節される。制御信号DLYはDVSCブロック120(図示せず)に由来する。制御信号DLYはマルチプレクサ320で受信される。マルチプレクサ320は、信号CP_Dのパス内に存在するであろう様々な遅延素子310a−310dを選択するように構成される。マルチプレクサ320の出力は、EDCレジスタ330に記憶される。XORゲート340は、EDCレジスタ330の内容と端末レジスタ300の内容との間の論理差を決定するために使用されてもよい。端末レジスタ300の内容は信号CP_Qにより運ばれる。従って、XORゲート340によるパス/フェイルビットDC_PF出力は、端末レジスタ300の出力CP_QとEDCレジスタ330の出力との間に論理差が存在するときのみアクティブである。
【0019】
信号CP_QおよびDC_PFはEDCセル200の外部であってDVSCブロック(図示せず)に運ばれる。DVSCブロックは、これらの信号内に含まれる情報を解釈し、コアに供給される電圧を制御し、EDCセル200内のパラメーターを制御する。
【0020】
上記記載において固有であるEDCセルの暗黙の機能性がある。機能は、炭鉱中のカナリアのそれである。EDCセルは、各EDCセル内の合計遅延が各EDCセルにより監視されるクリティカルパスより大きいことを保証するように設計してもよい。従って、コアに対する電圧が極端に低いなら、EDCは、クリティカルパスの最小動作電圧に到達する前に最初にフェイルするであろう。すなわち、パス/フェイルビットDC_PFは、クリティカルパス領域の最小動作電圧に到達する前に変化するであろう。
【0021】
EDCセル内で遅延を制御すること
実施形態の1つの観点において、DVSCブロックは、システムヒステリシスのための境界領域に従ってEDCセル内の遅延を増加させるまたは減少させる。一般観念は、EDCセル内の遅延量は、回路活動が生じた後でDC_PFビットからの特定の応答を導き出すために調節されるということである。記憶されたCP_Qビットと現在のCP_Qビットにより示されるように、回路活動は、以前の論理状態と現在の論理状態との間の比較により示される。EDCセルの可変の性質により、システムは、DC_PFビットから特定の応答を導き出すために通常動作の過程においてEDCセル内の遅延素子の数を調節してもよい。従って、遅延素子の数は、各検知されたクリティカルパスのための動作しきい値を決定するために、DVSCにより増加または減少するように調節してもよい。従って図4に一例として提示されるようなヒステリシスチャートを形成し、異なる境界領域内にイベントが生じるときはいつもコアに供給される電圧を上げるかまたは下げるかどうかを決定するために使用することができる。
【0022】
図4は異なる電圧の場合に時間に対するクリティカルパス回路遅延をプロットする。しきい値DLYMおよびDLYHは、EDCセルへのDLY入力に割り当てられた値を表し、コア内の変化する条件に応答してダイナミックに変化される。マージン遅延線とも呼ばれるDLYMしきい値は、測定されたクリティカルパスの前にEDCセルが失敗することを強要するためにシステムが課するマージンを表す。ヒステリシス遅延線とも呼ばれるDLYHしきい値は、コアの電源電圧に影響を及ぼすことなく遅延量が変動してもよいより低いレンジを表す。
【0023】
追加された遅延が非常に高いまたは非常に低いという決定はシステムにより使用され電圧を増加するかまたは減少するかを決定してもよい。DLYMしきい値より上の領域では、コアに対する電圧は上げなければならない。DLYMしきい値とDLYHしきい値の間の領域において、電圧は変わらないように許容されている。DLYHしきい値より下の領域では、電圧は低下してもよい。
【0024】
上記の実施形態の他の観点において、DVSCブロックは、CP_QビットとEDCレジスタの出力との間の論理差の存在に従ってマイクロプロセッサーコアに供給される電圧を増加または減少させる。CP_Qビットと、EDCレジスタの出力との間に論理差が存在するときDC_PFビットはアクティブになる。図3の実施形態は、論理差の存在を決定するためのXORゲートを有するように図解されるが、過度の実験なしに同じ目的のために他のロジックを使用してもよい。
【0025】
回路活動の過程においてDC_PFビットがアクティブになり、追加された遅延の数がマージン遅延線に近づくなら、DVSCブロックは、これらの条件を、コアに供給された電圧を上げなければならないことを意味するものとして解釈してもよい。反対に、回路活動の過程においてDC_PFビットが非アクティブのままであり、追加された遅延の数がヒステリシス遅延線に近づくなら、DVSCブロックこれらの条件を、コアに供給される電圧を低下させなければならないことを意味するものとして解釈してもよい。
【0026】
従って、マイクロプロセッサーコアの直接測定とEDCセル内の遅延の試験を用いてコアに供給される電圧をダイナミックに調節してもよい。
【0027】
粒度
実施形態の他の観点において、EDCセルは、EDCセルの検知レンジを増加するために異なるサイズの多数の遅延を用いて設計してもよい。例えば、値Tがコアの最もクリティカルなパスの遅延であり、コアの最もクリティカルなパスの遅延がコアの最大動作周波数を決定するなら、EDCコア内の各個々の遅延素子は、所望の粒度を生成するために値Tのパーセンテージとして選択してもよい。例えば、各遅延素子は、より微細な粒度に対してTの5%である遅延サイズを備えてもよいし、または遅延素子は、より粗い粒度の場合Tの10%である遅延サイズを備えてもよい。別の例において、各遅延素子は、それぞれEDCセル内の異なる遅延サイズを含んでもよい。
【0028】
遅延サイズはシステム制約または好みに従って設定してもよい。1つのシステム制約は、コアに対する供給電圧は、電圧対周波数のプロット上の所定のしきい値曲線以下に決して低下しないということである。そのような曲線は、典型的にshmooプロットと呼ばれる。図4Bに図解されたshmooプロットにおいて、しきい値曲線は、コアが与えられた周波数で動作することができる最小電源電圧を示す。文字指示「P」を含んでいる領域はパス領域を示す。そこでは電源電圧は失敗の恐れなしに変更されてもよい。文字指示「P」のない領域は不良領域を示す。そこではマイクロプロセッサーコアは適切に作動しない。
【0029】
EDCセルに関連して、しきい値電圧レベルは、所望の動作電圧とエラーのための所定量のマージンを備えなければならない。ここに使用されるように、所望の動作電圧は、最もクリティカルパスに失敗を生ぜずにコアに供給されてもよい最も低い可能電圧である。
【0030】
DVSシステム内の冗長度
コアに活動があるとき、EDCセルは使用できるが、コアに活動がないときEDCセルは使用できない。従って、EDCセルに加えてまたはEDCセルの代わりに、スレーブリング発振器(SRO)セルもDVSシステムにより使用し電源電圧を調節してもよい。上述したように、他のDVSシステムは、電圧を動作周波数に変換するためにフィードバックループにおいて自励リング発振器を使用する。従って、自励リング発振器は、従来技術において使用され、クリティカルパス領域の電圧を複製する。ここに記述されたリング発振器は、クリティカルパス領域のクロック速度の複製のために使用される。次に、それはマイクロプロセッサーコア内の非活動期間に電源電圧を調節するために使用される。
【0031】
図5はSROセル210のブロック図である。SROセルは、クロック信号DVS_CLKを受信する。クロック信号DVS_CLKは、クリティカルパスのレプリカント(replicant)510の出力と一緒にSROレジスタ500に入力される。レプリカント510は、マルチプレクサ530に接続された遅延素子520a−520dを備える。マルチプレクサ530の出力は、レプリカント510からSROレジスタ500への入力である。また、マルチプレクサ530の出力は、EDCセル540への入力でもある。RROレジスタ500の出力は、自己反転遅延素子520aおよびEDCセル540に接続される。DVSCブロック(図示せず)からの制御線はマルチプレクサ530に入力され、与えられた動作に対して遅延素子の数を調節するために使用される。実例を容易にするために、マルチプレクサ530の出力は、RO_Dと呼ばれ、SROレジスタ500の出力は、RO_Qと呼ばれる。SROレジスタ500から遅延素子520a−520dを通り、マルチプレクサ530を通り、SROレジスタ500に戻るパスは、リング発振器構成を作成することに留意する必要がある。
【0032】
しかしながら、図5において上述したリング発振器構成は、SROレジスタに接続されているので、自由振動は無い。リング発振器は、レジスタに供給されるクロック信号DVS_CLKに対して「スレーブ」となる。リング発振器に自己反転遅延素子があるので、クロックサイクル毎にSROレジスタにおいて代替地が受信されなければならない。値が替わらないなら、クロック信号DVS_CLKは、リング発振器のオープンループ応答RO_Dよりも高速に走っている。
【0033】
一実施形態において、EDCセルは、マイクロプロセッサーコアの全体にわたって戦略的に配置される。SROセルは、コアの熱特性がどのように回路パス遅延の性能に影響を及ぼすかを決定するためにマイクロプロセッサーコアに隣接して配置してもよい。また、SROセルはマイクロプロセッサーコア内に配置してもよい。EDCセルは、コア内に活動があるときのみ動作するので、コアが非アクティブのとき冗長システムとしてSROセルを用いてもよい。このようにして、DVSCは、コアが非アクティブであってもコアに対する電圧を制御してもよい。
【0034】
ここに開示されている実施形態に関連して説明された多様な例示的な論理ブロック、モジュール及び回路は、汎用プロセッサー、デジタル信号プロセッサー(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他のプログラマブルロジックデバイス、離散ゲートまたはトランジスタ論理、離散ハードウェア構成要素、あるいはここに説明される機能を実行するように設計されたその任意の組み合わせをもって実現または実行されてよい。汎用プロセッサーは、マイクロプロセッサーであってよいが、代替策ではプロセッサーは、任意の従来のプロセッサー、コントローラー、マイクロコントローラーまたは状態機械であってよい。プロセッサーは、例えばDSPとマイクロプロセッサーの組み合わせ、複数のマイクロプロセッサー、DSPコアと連動する1台または複数台のマイクロプロセッサー、あるいは任意の他のこのような構成など計算装置の組み合わせとして実現されてもよい。ここに開示された実施形態に関連して説明された方法またはアルゴリズムのステップは、ハードウェア内、プロセッサーによって実行されるソフトウェアモジュール内、あるいは2つの組み合わせの中で直接的に具現化されてよい。ソフトウェアモジュールはRAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取り外し可能ディスク、CD-ROM、または技術的に既知である任意の他の形式の記憶媒体に常駐してよい。例示的な記憶媒体は、プロセッサーが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサーに結合される。代替策では、記憶媒体はプロセッサーに一体化してよい。プロセッサー及び記憶媒体はASICに常駐してよい。ASICはユーザー端末内に常駐してもよい。代替策では、プロセッサー及び記憶媒体はユーザー端末内に別々の構成要素として常駐してよい。
【0035】
開示された実施形態の上述の記載は、当業者がこの発明を製作しまたは使用することが可能に提供される。これらの実施形態への様々な変更は当業者に容易に明白になるであろう。そして、ここに定義された総括的な原理は、この発明の精神から逸脱することなく他の実施形態に適用されてもよい。従って、この発明はここに示された実施形態に限定することを意図したものではなく、ここに開示された原理および新規な特徴と一致するもっとも広い範囲が許容されるべきである。

【特許請求の範囲】
【請求項1】
マイクロプロセッサーコア内で生じる活動情報およびクリティカルパス遅延情報を検知するための監視ブロックと、
前記監視ブロックから前記活動情報およびクリティカルパス遅延情報を読み、前記活動情報および前記クリティカルパス遅延情報を処理し、前記活動情報と前記クリティカルパス遅延情報の処理結果に従って、前記マイクロプロセッサーコアに供給される電圧を調節する制御ブロックと、
を備えたダイナミック電圧スケーリングシステム。
【請求項2】
前記監視ブロックは少なくとも1つの埋め込み遅延チェッカー(EDC)セルを備えた請求項1のダイナミック電圧スケーリングシステム。
【請求項3】
前記監視ブロックはさらに、前記少なくとも1つのEDCセルの出力を記憶するための少なくとも1つのレジスタを備えた請求項2のダイナミック電圧スケーリングシステム。
【請求項4】
端末レジスタ入力信号、端末レジスタ出力信号および制御信号を受信するように構成された埋め込み遅延チェッカー(EDC)セルにおいて、
複数の遅延素子と、
複数の遅延素子に接続されたマルチプレクサであって、前記制御値に従って前記端末レジスタ入力信号のパス内に配置するために遅延素子のサブセットを選択するように構成されたマルチプレクサと、
前記マルチプレクサの出力を記憶するためのレジスタと、
前記マルチプレクサの記憶された出力と前記端末レジスタ出力信号との間の論理差を検出するように構成された論理素子と、
を備えた埋め込み遅延チェッカー(EDC)セル。
【請求項5】
前記監視ブロックはさらに少なくとも1つのスレーブリング発振器(SRO)セルを備えた、請求項3のダイナミック電圧スケーリングシステム。
【請求項6】
前記SROセルは、
自己反転遅延素子と、
少なくとも1つの非反転遅延素子であって前記少なくとも1つの非遅延素子の各々は他の1つの遅延素子の出力を受信するように構成される少なくとも1つの非反転遅延素子と、
前記遅延素子の各々の出力に接続されたマルチプレクサと、
前記マルチプレクサの出力とクロック信号を受信するように構成されたレジスタであって、前記レジスタの出力は、前記自己反転遅延素子に入力される、レジスタと、
を備えた、請求項5のダイナミック電圧スケーリングシステム。
【請求項7】
処理コアの電圧をダイナミックにスケーリングするための方法において、
前記処理コア内の活動を直接検知することと、
前記処理コアのクリティカルパスに関連する遅延情報を決定することと、
前記検知された活動および前記遅延情報を用いて前記処理コアの電圧をスケーリングすることと、
を備えた方法。
【請求項8】
前記クリティカルパスに関連する前記遅延情報を調節することと、
前記検知された活動とオリジナル遅延情報と共に前記調節された遅延情報を用いて前記処理コアの電圧をスケーリングすることと、
をさらに備えた、請求項9の方法。
【請求項9】
処理コアの電圧をダイナミックにスケーリングするための装置において、
前記処理コア内で活動を直接検知する手段と、
前記処理コアのクリティカルパスに関連する遅延情報を決定する手段と、
前記検知された活動と前記遅延情報を用いて前記処理コアの電圧をスケーリングする手段と、
を備えた装置。
【請求項10】
前記クリティカルパスに関連する前記遅延情報を調節する手段と、
前記検知された活動とオリジナル遅延情報と共に前記調節された遅延情報を用いて前記処理コアの電圧をスケーリングする手段と、
をさらに備えた、請求項9の装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate


【公開番号】特開2010−160800(P2010−160800A)
【公開日】平成22年7月22日(2010.7.22)
【国際特許分類】
【外国語出願】
【出願番号】特願2010−23992(P2010−23992)
【出願日】平成22年2月5日(2010.2.5)
【分割の表示】特願2007−511686(P2007−511686)の分割
【原出願日】平成17年5月5日(2005.5.5)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】