説明

リアルタイム電力推定のためのチップ活発性のサンプリング

【解決手段】
リアルタイム電力推定のためのシステム及び方法。コアはユニットに分割されてよい。各ユニットは実際の電力消費特性を獲得するためにシミュレーションされる。電力消費がサンプリングされる。ポアソン分布を伴う統計的ランダム処理により近似されるノード容量切り換え挙動をコアが有すると仮定する統計的解析が実行される。統計的解析はサンプリング間隔の間に取り込むサンプル数を決定する。動作周波数、サンプリング間隔、及びサンプル数を用いてサンプリングする信号の数が決定される。ノード容量切り換え挙動と高い相関を有する信号、例えばクロック分配システムの最終段でのクロックイネーブル信号が選択される。調整された値の重みが各サンプリングされた信号に割り当てられる。サンプリングは所定数のクロック周期毎に行われる。有効にされてサンプリングされた信号の重みは再現性のある電力推定値を決定するために合算される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子回路に関し、より詳細には再現性のある正確なリアルタイム電力推定の効果的な方法に関するものである。
【背景技術】
【0002】
最新の集積回路(IC)の電力消費は半導体チップの各世代と共に深刻化する設計問題になってきている。増大したIC電力消費は直接的にシステムの構築価格に影響する。電力消費が増えるのに従って、過剰な熱を除去しICの故障を防ぐために、より大きなファン及びヒートシンクのようなより高価な冷却システムが用いられなければならない。しかし、冷却システムはシステム価格を増大させる。IC電力消散の制約は、可搬型コンピュータ及び携帯型通信装置だけでなく、多重化プロセッサコア、又はコア、及び各コア内での多重化パイプラインを含んでよい高性能なスーパースカラマイクロプロセッサの問題でもある。
【0003】
最新の相補型金属酸化物半導体(CMOS)チップのようなICの電力消費は、式αfCVに比例する。記号αは切り換え因子(switching factor)、即ちクロック周期の間にノードが充電又は放電する確率である。記号fはチップの動作周波数である。記号Cはクロック周期内で充電又は放電される等価容量又は切り換え容量である。記号Vはチップの動作電圧である。チップの電力消費を低減し且つトランジスタ内の静電界を低減しようとして、電源供給電圧Vが減少させられてよい。電源供給電圧の低減はトランジスタを通って流れるであろう電流の量を減少させ従ってトランジスタを通した伝播遅延を増大させるので、電源供給電圧の低減には限界がある。トランジスタをより早い時間でターンオンして性能の維持を支援するためにスレッショルド電圧が低減させられると、トランジスタ漏れ電流が増加する。トランジスタ漏れ電流の増加は電力消費及び論理障害の可能性の両方を増大させる。
【0004】
コアの各世代でデバイス及び金属経路の幾何学的な寸法が減少している。スーパースカラ設計は、多重化されたパイプライン、大規模なキャッシュ、及びより複雑な論理を伴うダイ上の集積回路の密度を増大させる。従って、クロック周期毎に切り換わることのできるノードの数が著しく増える。動作周波数も各世代と共に増大してきている。チップ内の特定のブロック及びユニットについて、不使用の期間にこれらの領域へのクロックを無効にすることによって、切り換え因子αを減少させることができる。従って、ICの各世代と共に動作電圧及び切り換え因子は減少してきているかもしれないが、IC電力消費式における他の項は増大しており、電力消費全体の増加を引き起こしている。この電力消費増大の幾つかの解決法は、マイクロアーキテクチャ及び回路レベルの両方の技術を含む。
【0005】
これらの設計技術はリアルタイムで電力消費を推定する努力に支援されている。例えば、1つ以上のアプリケーションを動作させている間に、コアのリアルタイム電力消費が明らかになっており且つそれが電力マネージャに伝達されていれば、低電力消費期間における性能を高めるために電力マネージャは動作供給電圧、動作周波数又は両方を変更することができ、あるいは高電力消費期間における電力消費を低減することができる。
【0006】
リアルタイム電力推定は特定のクロック周期の間のダイでの切り換え容量を測定するモニタによって達成することができる。ノード容量Cacは、切り換えられた、即ちACの容量と、クロスオーバ電流に起因する実効容量の両方からなる。与えられた部分について、動作が温度限界に到達したときに漏れ電流は固定される。この漏れ値は試験の時の測定に基く融合された(fused-in)電力オフセットにより計上することができる。漏れ電流における温度誘発変化を活用する試みは、以下に説明する再現性の理由により奨励されない。従って、チップ電力の正確なリアルタイムの推定値を得るために必要なのは、デジタル的に設定される動作供給電圧、既知の動作周波数、試験の間に見出される融合された漏れ値、並びに特定のクロック周期内で切り換えられる設計上のノードの数及びそのノード容量Cacの測定である。最後の項Cacは半導体上で測定する単純な値ではない。
【0007】
チップ上モニタを用いて切り換えノード容量Cacを測定することが試みられるかもしれない。モニタはコア内あるいは多重化されたコアを有するプロセッサ内での命令発行率(instruction issue rate)を測定することができる。主要な構成要素、例えば命令発行キュー(queue)、再配列(reorder)バッファ、物理的レジスタファイル、実行ユニット等の挙動、及びそれらそれぞれの相互作用が監視されれば、正確性が高まる。しかし、このタスクを完遂するために何百もの信号をサンプリングすることは、追加的な金属経路、増大した回路、及び付加的な電力消費に関して莫大な経費をもたらす。
【0008】
また、モニタ及びそれに続く電力マネージャ等の応答メカニズムは決定論的(deterministic)であることが必要である。つまり、モニタ及びメカニズムは、部分部分で、システム毎に、そして動作毎に同一の結果あるいは周波数変化を提供することが必要である。この必要性の理由は、製品システムの1つにおいてプロセッサを用いている相手先ブランドによる製造業者(OEMs)が、顧客に対して性能保証する必要があることである。顧客及びOEMsは、ベンチマーク及び性能測定を異なる時間に異なる場所で再現する必要がある。もしこの再現を厳しい許容範囲(例えば±1.5%)内で行うことができなければ、モニタ及び応答メカニズムはターンオフされる必要がある。そうなればモニタ及びメカニズムはダイ上の領域を占有するだけで、性能を改善し電力を節約するたに何ら有用な働きをなさない。
【0009】
温度センサ及び/又は電流計のようなアナログセンサは正確な電力推定を可能にするが、それらは全て環境依存である。製造プロセス、環境温度、電源供給、及び熱除去解決法の品質における変動はアナログセンサの測定値を変化させる。
【発明の概要】
【発明が解決しようとする課題】
【0010】
上述に鑑みて、ICの正確なデジタルリアルタイム電力推定を提供するための有効な方法及びメカニズムが要望されている。
【課題を解決するための手段】
【0011】
正確なリアルタイム電力推定のためのシステム及び方法が検討される。
【0012】
ある実施形態では、機能ブロック、電力モニタ、及び電力マネージャを備えたシステムが提供される。電力マネージャは、電力推定数に応じて、機能ブロック内で電力消費挙動を反転させるために動作電圧及び周波数の調整を機能ブロックに伝達するように構成される。機能ブロックは、所定数のサンプリングされた信号の各々の論理値を記憶し、論理値を電力モニタに伝達するように構成される。電力モニタは、所定数のサンプリングされた信号の各々に対する重み値を記憶し、高論理値の記憶された論理値を有するサンプリングされた信号のみの重み値を合計し、電力推定数を電力マネージャに伝達するように構成され、電力推定数は重み値の合計が形を変えたものである。
【0013】
本発明の他の側面においては、電力推定数に応じて、電力消費挙動を反転させるために動作電圧及び周波数の調整を伝達する方法が提供される。所定数のサンプリングされた信号の各々に対して論理値が記憶されている。また、所定数のサンプリングされた信号の各々に対して重み値が記憶されている。高論理値の記憶された論理値を有するサンプリングされた信号のみの重み値についての積算が続く。電力推定数は重み値の合計が形を変えたものであり、電力マネージャに伝達される。
【0014】
本発明の他の側面においては、機能ブロック及び電力マネージャと通信するように構成されるインタフェースを備えた電力モニタが提供される。重みテーブルは、所定数のサンプリングされた信号の各々に対する重み値を記憶する。重み積算器は、高論理値の記憶された論理値を有するサンプリングされた信号のみの重み値を合計する。チェインコントロールは電力マネージャに電力推定数を伝達し、電力推定数は重み値の合計が形を変えたものである。
【0015】
これらの及び他の実施形態は、以下の説明及び添付の図面を参照することによって理解されるであろう。
【図面の簡単な説明】
【0016】
【図1】図1は電力管理機能を有するIC、例えばコアの実施形態を示す概略的なブロックダイアグラムである。
【0017】
【図2A】図2Aはサンプリング間隔の間にコアで実行されるアプリケーションの実際の電力測定の実施形態を示す概略的なグラフである。
【0018】
【図2B】図2Bはサンプリング間隔の間にコアで実行されるアプリケーションの実際の電力測定のデジタルサンプリングの実施形態を示す概略的なグラフである。
【0019】
【図3】図3は信号をサンプリングしサンプリングされた信号の値をシリアルに出力するための回路の実施形態を示す概略的な回路図である。
【0020】
【図4】図4はサンプリングされた信号情報をユニットから出力するためのタイミングチャートの実施形態を示す概略図である。
【0021】
【図5】図5は電力推定モニタ回路の実施形態を示す概略的なブロックダイアグラムである。
【0022】
【図6】図6はコアの正確なリアルタイム電力推定のための方法の実施形態を示す概略的なブロックダイアグラム又はフローチャートである。
【0023】
【図7】図7はコアの正確なリアルタイム電力推定のために、サンプリングされた信号に割り当てる重み(重み付け値)を決定するための方法の実施形態を示す概略的なブロックダイアグラム又はフローチャートである。
【0024】
本発明は種々の改変及び代替的な形態を許容し得る一方で、特定の実施形態が図面において例示の目的で示されておりここに詳細に説明されている。しかしながら、図面及びそれに対する詳細な説明は、開示されている特定の形態に本発明を限定するよう意図されておらず、むしろ本発明は添付の特許請求の範囲によって画定されるような本発明の精神及び範囲内にある全ての改変、均等なもの及び代替的なものに及ぶものであることが理解されるべきである。
【発明を実施するための形態】
【0025】
以下の説明では、本発明の深い理解を提供するために多くの特定な詳細が示される。しかし、これらの特定の詳細なしに本発明が実施可能であることを当業者は認識すべきである。幾つかの例では、周知の回路、構成、及び技術は本発明を不明瞭にすることを避けるために図示されていない。
【0026】
図1を参照すると、コア電力管理機能100の実施形態が示されている。ここではコア102は任意の集積回路(IC)であってよい。ある実施形態では、コア102はプロセッサコアであってよい。プロセッサコアはチップ上(on-die)の命令及びデータキャッシュを有していてよい。プロセッサコアは単一のパイプライン又は多重化されたパイプラインを有するスーパースケーラ(superscalar)プロセッサであってよい。他の実施形態では、コア102は特定用途向けIC(ASIC)であってよい。コア102を実装するために任意のトランジスタファミリが用いられてよい。例として金属酸化物半導体電界効果トランジスタ(MOSFETs)及びバイポーラ接合トランジスタ(BJTs)が挙げられる。
【0027】
機能ブロック110は論理機能、データ記憶等を実行するように構成されたトランジスタ群を含んでいてよい。電力管理の目的で機能ブロック110はユニット112a〜112dに分けられていてよい。ここで用いられているように、文字が続く参照数字によって参照される要素は集合的にその参照数字だけで参照されることがある。例えばユニット112a〜112dは集合的にユニット112と称されることがある。ある実施形態では、ユニット112は再配列バッファ、メモリ管理ユニット、実行ユニット、又はプロセッサの他の部分等の機能要素に対応していなくてよい。むしろユニット112は、電力管理の目的でサンプリングされることが必要な信号の種類に基いて選択されてよい。例えば、ローカルクロック分配ブロックに送られるクロックイネーブル信号が、サンプリングされるために選ばれた信号であってよい。
【0028】
特定のクロック周期の間にどの信号をサンプリングするかの選択は、その選択が切り換えノード容量Cacの量にいかに良好に関連付けられているかに対応するであろう。サンプル信号選択の更なる説明は後で行われる。選択されたクロックイネーブル信号はフロアプラン内のいくつかの機能ブロックで重複していてよい。従って、例えばユニット112a及び112bを隔てる区域はフロアプラン内の区域に対応していなくてよい。ユニット112は電力を消費するユニットであり、この電力はリアルタイムで測定されることとなる。
【0029】
ある実施形態では、ユニット112からのデータ、例えば所定のサンプリングされた全信号の論理値を収集するために、電力モニタ130が用いられてよい。データ収集の後、電力モニタ130は電力消費推定値を算出することができる。1つのモニタコントロール132が各ユニット112に対応してよい。代替的な実施形態では、モニタコントロール132は2つ以上のユニット112に対してデータを収集し、これらのユニット112での総電力消費推定値を算出してよい。更に他の実施形態では、1つのモニタコントロール132(即ちコントロール132a)は、1つ以上の他のモニタコントロール132(即ちコントロール132b〜132d)からのデータを収集するために、1つ以上の他のモニタコントロール132(即ちコントロール132b〜132d)との信号インタフェースを有していてよい。そして1つ以上のモニタコントロール132に対して電力推定値が算出されてよい。
【0030】
信号サンプル120及びデータ出力122が電力管理を目的として用いられるコントロール及びデータ信号である。電力モニタ130と機能ブロック110の間でのインタフェース信号は、任意の必要な数の信号及び伝送プロトコルを備えていてよい。ある実施形態では、制御信号サンプル120は、選ばれた繰り返し間隔、例えば毎100クロック周期の間に単一のクロック周期に対してのみ有効にされてよい。ある実施形態では、制御信号サンプル120が有効にされた後の所定数のクロック周期の時点で、異なるサンプリングされた信号に対してデータ信号データ出力122が各々クロック周期で論理値を供給し始めてよい。つまり、データ信号データ出力122は、サンプリングされた信号の論理値からなる一連の値を特定の周期でスキャンするために用いられてよい。また、他の実施形態では、各一対のモニタコントロール132及びユニット112の間での信号の信号対が無いこともある。代替的な実施形態では、モニタコントロール132にとってはユニット112に対して聞き取りを行い、ユニット112にとっては出力データを伝達する準備が整ったことをモニタコントロール132に認識させるために、追加的な信号が含まれていてよい。
【0031】
機能ブロック110から受けたデータから正確なリアルタイム電力推定値を一旦電力モニタ130が算出したら、電力モニタ130は目下動作中の単一又は複数のアプリケーションの電力プロファイルを決定する。この決定は電力マネージャ140に伝達される。それによって電力マネージャ140はアプリケーションがスレッショルド限界よりも上(下)であれば電力を減少(増加)する能力を有する。
【0032】
もし大電力のアプリケーション又はウイルスがコア102で実行されていれば、電力マネージャ140は動作電圧、動作周波数、又はその両方に対して調節を行うように構成される回路を備えることとなる。Cacに対して設定された限界を上回る平均電力を伴うアプリケーションに対しては、動作周波数は低減される必要がある。しかし、どのアプリケーションもCac限界を超えて切り換えないことが保証されているので、Cacに対して設定された下限は、高周波数の部分が捨てられることを可能にする。
【0033】
前述したように、コア切り換え電力を推定する1つの方法は、命令発行頻度(instruction issue rate)を測定することである。残念なことに、多くの特殊な動作を有することのあるコアの幾つかの実施形態に対しては、データ幅、性能を高める回路、キャッシュ挙動の不確実性、多くの分岐予測方法の1つ等に起因してクロック周期内で切り換わるノード容量Cacを推定するための簡単な方法はほとんど無い。相関関係の無い少数の信号から正確にCacを推定するために、それらの信号は、適正な電力モデルが設計され且つ広範な一連のアプリケーションが信号電力相関試験のためにそのモデルで実行されるまで、未知のものである。その時には、必要な信号サンプリング回路を必要な場所に追加する試みにより設計を変更しようとしても手遅れである。
【0034】
一方、電力推定に対する顕著な効果を有する設計において、広範な一連の信号をサンプリングすることが可能である。この方法では信号がオーバーサンプリングされてよく、その理由は、多くの信号は相関する傾向にあり、幾つかの信号は電力に対して小さな影響のみを有するところにある。しかし、例えば効果的な実装を伴うことでオーバーサンプリングぎみの設計費用が小さければ、この方法によって正確なCacモニターの信頼性が顕著に高まるであろう。
【0035】
前述したように、Cacに対して重要な影響を有する設計において何百もの信号をサンプリングすることは、配線、回路、及びもしモニタリングが全動作周波数でなされるとすれば電力消費における諸経費に関して多大なる設計費用をもたらすであろう。しかし、電力推定をもたらすCac推定は、ミリ秒の範囲にある熱的時間フレームにおいて応答すれば足りるという事実を利用可能である。この時間フレームは、平均Cacを決定するための何百万周期を用いた推定を可能にする。事実、もし推定及びそれに続く応答が十分迅速に行われ且つアプリケーションが活発に動作している短期間に対して応答していたとすると、応答によってコアが絞られるであろう。次いで性能は不必要に低下させられるかもしれない。それに続く応答及び見込まれる絞込みが基いているところの長期間にわたるアプリケーションの平均電力をモニタリングすることが推定では必要となる。しかし、もしサンプリング間隔が何百万周期に及ぶとすれば、アプリケーションがコードの完全に無関係な部分にまで移動する蓋然性が高いので、サンプルのシグマ即ち標準偏差が著しく増大してしまうであろう。電力モデルデータに基き、サンプルに対する活発性の良好な相関が特定の範囲で見出されるであろう。例えばある実施形態では、典型的なアプリケーションに対して、サンプルに対する活発性の良好な相関は、50Kクロック周期領域にあり、そこではシグマは小さい。
【0036】
数百の既知の信号が最前列でサンプリングされるのに選ばれて且つ信号値がシリアル形式で走査される場合、信号に関連する活発性の単一のサンプルを得るためには数百クロック周期が必要とされる。次いで標準的な統計解析により、サンプルの平均及びシグマが信号の実際の母集団の平均及びシグマに密接に相関する信頼性が達成される(即ち99%)には、これら数百の信号について数サンプルが必要である。
【0037】
アプリケーションのスイッチング挙動がポアソン分布を有する定常ランダム過程(stationary random process)で近似可能であると仮定する。また、中心極限定理(central limit theorem)は、データの大規模な母集団が正規分布で正確に近似可能であることを我々に伝えている。この統計的手法は、母集団の小規模なサンプル、統計的調査数等から世論調査をなすために用いられる手法と類似している。広範な母集団の特性は十分な数のランダムサンプルを取ることで再構築される。決定されるべき2つのパラメータは、必要なサンプルの数とどの信号をサンプリングするかという点とである。
【0038】
必要なサンプル数に対して、ある実施形態では、統計的解析並びにアプリケーションの実際の電力消費及びサンプリングから推定される電力消費の両方の測定を用いて集計表(spreadsheet)が生成されてよい。
【0039】
図2Aはサンプリング間隔の間にコアで実行されるアプリケーションの実際の電力測定200の実施形態を示している。代替的な実施形態では、この電力測定は、コアの1区画、例えばユニット、機能要素等において行われてよい。ある実施形態では、この測定はコアの設計検証段階モデル(pre-silicon model)において実行される電力モデルによって行われてよい。ピーク電力210は、コアの機能障害によって、又はコアにおいて高電力ウイルス、例えばズラスキー(Zuraski)を実行することによって決められてよい。サンプリング間隔の間の消費電力は実際の電力波形220によって示されている。ある実施形態では、サンプリング間隔は何十ミリ秒の範囲にあってよい。
【0040】
最新のプロセッサでは、高電力ウイルスであるズラスキーの低出力化された形態によって熱的設計電力(TDP)が設定されてよい。この低出力化されたあるいは派生したTDPコード及びその対応する電力消費は、取捨(binning)を目的としてコアの動作電圧及び周波数を設定するために用いられてよい。しかし、最新のプロセッサの寿命の大部分において、実行されているアプリケーションはこのTDP値の60%乃至80%を消費するにすぎない。
【0041】
正確なリアルタイムCac推定及びそれに続く電力推定により、実行されるアプリケーションとTDPの間で20%乃至40%のギャップを引き出すことが可能である。このことは、新たなTDPがアプリケーション電力になるTDP低減、あるいはTDPは以前と同じであるがそのTDPが典型的なアプリケーションによって消費される周波数増大のいずれかにギャップを転換することで行うことができる。ウイルスはCac推定に続く電力管理による後続の応答によって絞られるので、TDPはウイルスによっては消費されないであろう。
【0042】
図2Bはあるサンプリング間隔の間にコアで実行されるアプリケーションの実際の電力測定のデジタルサンプリング230の実施形態を示している。サンプリングされたデータ点240は間欠的周期250の各々の間に取られている。図示された実施形態では、サンプリングされたデータ点240aで開始されサンプリングされたデータ点240nで終了するサンプリング間隔の間に全部でNサンプルが取られる。電力推定値のサンプリングの合間での間欠的周期の数の決定は、サンプリングされたデータ点の数Nの値の決定に依存していてよく、間欠的周期の数は所望の正確性及び信頼性に依存する。
【0043】
上述したように、アプリケーションの実際の電力消費及び図2A〜2Bに示されたサンプリングから推定された電力消費の両方の測定値と統計的解析との両方を用いて集計表又は参照テーブル(look-up table)が生成されてよい。
【0044】
例えば、第1の例では、図2Bに示されるようなサンプルのコア全体にわたる平均が図2Aに示されるような実際のアプリケーションの平均のシグマ即ち標準偏差の12%の範囲内になるような95%の信頼性を設計目標が要求してよい。0.12*シグマの項は統計的サンプリングに起因する誤差である。参照テーブル又は集計表を用いて、例えば少なくとも500サンプルがそれらの設計要求を達成するために必要とされることが決定されてよい。電力推定をもたらすCac推定がミリ秒の範囲にある熱的時間フレームに応答することのみが必要とされることを思い出して欲しい。この時間フレームは平均Cacを決定するために何百万の周期を用いた推定を可能にする。サンプリング間隔は25μsであってよい。ある実施形態では、動作周波数は3GHzであってよい。この例では、従ってサンプリングの間の間欠的クロック周期の数は、(3GHz)*(25μs)/500=150クロック周期となろう。ある実施形態では、種々のサンプリングされた信号の値はシリアル形式で走査されてよい。従って、150の信号が単一のクロック周期でサンプリングされて次のサンプリングが実行される前にシリアル的に走査されてよい。
【0045】
この例では、推定シナリオの最悪のケースは±2シグマの切り取られた正規分布を含み、1シグマは範囲の25%である。従って、最悪のケースの誤差は0.12*0.25=3%となる。より典型的な最大シグマ値は概ね10%である。12%シグマの誤差項の場合、統計的サンプリングに起因する誤差が0.12*0.1=1.2%である95%の信頼性を有することができる。
【0046】
第2の例では、図2Bに示されるようなサンプルのコア全体にわたる平均が図2Aに示されるような実際のアプリケーションの平均のシグマ即ち標準偏差の10%の範囲内になるような99%の信頼性を設計目標が要求してよい。0.10*シグマの項は統計的サンプリングに起因する誤差である。参照テーブル又は集計表を用いて、例えば少なくとも650サンプルがそれらの設計要求を達成するために必要とされることが決定されてよい。また、ある実施形態では、コアは10ユニットに分割されてよく、この場合各ユニットは同数の信号をサンプリングする。この分割の理由は以下に簡潔に示されるように正確性を高めるところにある。各ユニットに対して求められる信頼性は高々90%である。信頼性の総和は、0.91/10が0.9895であるから、99%の総信頼性を生じさせる。参照テーブル又は集計表を再び用いて、650サンプル及び90%信頼性に対して、シグマからの偏差がもはや10%ではなく6.5%にまで低減されることを決定可能である。個々のユニットに対してはその正確性が高まるにつれ信頼性レベルは低下したが、コアに対する全体としての信頼性レベルは99%を維持しており、またその正確性は10%から6.5%に改善された。
【0047】
もしこの第2の例が上述の第1の例と同じ25μsのサンプル間隔を有しており且つ動作周波数が3GHzで同じであるとすると、サンプル間の間欠的クロック周期の数は、(3GHz)*(25μs)/650=115クロック周期となろう。ある実施形態では、第1の例のように種々のサンプリングされた信号はシリアル形式で走査されてよい。従って、115の信号が単一のクロック周期で10ユニットのそれぞれからサンプリングされて次のサンプリングが実行される前にシリアル的に走査されてよい。
【0048】
図3を参照すると、信号をサンプリングしサンプリングされた信号の値をシリアルに出力するための回路300の実施形態が示されている。ある実施形態では、クロック周期内でサンプリングするのに選択された信号を捕獲するために、Dフリップフロップ回路320及びマルチプレクサ310が、図示されるようにサンプリングされるべき信号に対してのみ配置されていてよく、それらの信号は信号350として示されている。この追加的な回路は、正確なリアルタイムCac推定のためのサンプリングされたデータを得るのに低い諸経費をもたらす。選択ライン、即ちサンプル120が高論理値として有効になると、信号350がマルチプレクサ310によって選択されてDフリップフロップ320に格納される。
【0049】
信号サンプル120は図1のモニタコントロール132のような制御ブロックから受信されてよい。ある実施形態では、コアのユニットでサンプリングする信号の数は100であってよい。代替的な実施形態では、サンプリングする信号の数は、特定のコア設計に対して正確な電力推定を提供する任意の数であってよい。サンプル120はクロック周期の100周期毎に有効にされてよく、これにより、サンプリングされた信号の捕獲された値がサンプル間でシリアルに出力されることが可能になる。
【0050】
Dフリップフロップ320に供給されるクロック信号Clk330はゲート未処理の(ungated)クロック信号であってよい。信号サンプル120が低論理値として無効になると、マルチプレクサ310は前段のDフリップフロップ320の出力値を伝達する。このように、100個のサンプリングされた信号、即ち信号350のサンプリングクロック周期の間に値がシリアル形式で出力される。モニタコントロール132への経路距離に応じて、インバータバッファがDフリップフロップ320aの後段に配置されていてよい。
【0051】
ある実施形態では、サンプリングのために選択される信号は、クロックゲータイネーブル信号(clock gater enable signal)であってよい。ゲータ回路はクロック信号を生成するクロック分配システムの最終段であってよい。典型的には、ゲータ回路は最新のプロセッサのフロアプランのローカルブロック内にあり、ローカル設計者はブロック内の特定のクロック負荷を駆動するゲータ回路をクロックライブラリから選択する。
【0052】
図3におけるゲータ回路340は、クロック分配システム内の前段からの共通クロック360とイネーブル信号、即ちClkイネーブル362とを受け取る。Clkイネーブル362は、図示された実施形態では、サンプリングされるべき信号であって且つマルチプレクサ310への1つの入力である。ゲータ回路340は他の種類の信号の内の走査入出力信号と結合されていてもよい。
【0053】
統計的解析について上述したように、統計的サンプリングによるCac推定の誤差はおそらく小さい。しかし、サンプリングされた信号活発性(signal activity)のノードスイッチング容量Cacに対する不正確な相関性に起因する誤差があり得る。クロックゲータイネーブル信号Clkイネーブル362は、ローカル設計者が配置するのが比較的に容易である。これらの信号はまた、下流の回路が動作中か否かについて、従って下流のノード容量が切り換え可能か否かについて直接的に決定する。
【0054】
サンプリングされる特定のClkイネーブル362に対して、対応する記憶された高論理値は、少なくとも最小容量に切り換えられていることを意味する。容量の追加量は、そのクロックゲータイネーブル即ちClkイネーブル362の下流の他の信号及び構成により決定される条件によって切り換えられる。Cacがどのように変化するかを種々の方法で決定するゲータクロックイネーブル信号の下流の信号の幾つかの例は、有効ビット、一例としては負荷記憶キュー(load-store queue);オペランドビット幅;及びキャッシュの成功又は失敗(cache hit or miss)である。図3には示されていないが、代替的な実施形態では、これらの信号の幾つか及び他の信号は、クロックゲータイネーブル信号と論理的に組み合わされてよく、この場合、サンプリングされマルチプレクサ310に入力されるべき新たな信号が生成される。この新たな信号は切り換えられた最小容量に付加すべき容量増分を決定してよい。
【0055】
また、クロックゲータイネーブル以外にも、切り換えられた容量を示す有効性(assertion)を有する信号がある。幾つかの例は、バスドライバイネーブル、コンテントアドレッサブルメモリ(content-addressable memories)(CAM)の不一致、及びCAMワード線(WL)ドライバである。これらの信号に対して付加的な切り換えられた容量を決定するのに遷移検出器が必要になることがある。
【0056】
図4は図3の回路300におけるクロック330、サンプル120、及びデータ出力122の信号のためのタイミングチャートの実施形態を示している。クロック330はゲート未処理のクロック信号である。サンプル120が有効になると、サンプリングされた信号即ち信号350がDフリップフロップ320に格納される。サンプル120が無効になると、サンプリング信号即ち信号350はシリアルで連鎖的にラインデータ出力122として出力される。
【0057】
信号のサンプリングが一旦正確に行われたら、この情報は加重平均合計(weighted average sum)を用いてCac推定値に変換される。図5を参照すると、加重平均合計を決定するための回路500の実施形態が示されている。この回路はモニタコントロール132に属していてよい。チェインコントロール(chain control)502はサンプル120を機能ブロック110内のユニットに伝達してよい。また、チェインコントロール502はデータ出力122を受信してよい。サンプル120がデータをサンプリングするために有効にされてから無効にされた後、チェインコントロール502はどの信号、又はシリアル連鎖におけるどのビット位置がその受信中の値を目下有しているかを追跡してよい。ある実施形態では、サンプリングされた信号を区別するためにカウンタが用いられてよい。そのようなカウンタの出力は重みテーブル504に索引付けするために用いられてよい。チェインコントロール502により伝達される値は、重みテーブル504内のビット位置506にエントリーするために比較されてよい。エントリーが索引にヒット又は一致すれば、それに対応して重み508内に記憶されている重みが重み積算器510に伝達される。ここで、受信した重みが予め受信していた重みと合算される。
【0058】
例えば、100の信号がサンプリングされるのに選択されてよい。新たなサンプリング周期が開始されたとして、ラインデータ出力122として受信したその時点での値がこの新たなサンプリング周期の37番目に受信した値であるとする。もしこの37番目のサンプリングされた値が低論理値を有していれば、38番目のサンプリング値が到着するまではそれ以上の動作がなされる必要は無い。もし37番目のサンプリングされた値が高論理値を有していれば、37という値が重みテーブル504に索引付けするために用いられる。37番目のサンプリングされた信号のための対応する重みが重み積算器510に伝達される。この対応する重みは、高論理値を有した既に受信されている36個の値の累積重みに合算される。重み用の値を選択するために用いられる方法を以下簡潔に説明する。
【0059】
図6はコアの正確なリアルタイム電力推定のための方法600の実施形態を示している。方法600は代替的な実施形態を導き出すために当業者によって修正されてよい。また、この実施形態におけるステップはシーケンシャルな順序で示されている。しかし、幾つかのステップは、他の実施形態では、図示されたのと異なる順序で起こってよく、同時に実行されてよく、他のステップと組み合わされてよく、また省略されてよい。図示された実施形態では、半導体チップについてフロアプランが作成され、個々のブロック及びセルはブロック602内のフロアプランに従って配置される。コアはチップ全体あるいはチップの一部であってよい。前述したように、コアはICであってよい。ある実施形態では、コアはプロセッサコアであってよい。他の実施形態では、コアはASIC又は他の半導体チップであってよい。
【0060】
ブロック604でのサンプリングを目的として、コアは複数ユニットに分割されてよい。各ユニットは所定のサンプリングされた信号の値のシリアル連鎖を提供してよい。ブロック606では、サンプリング間隔の間にダイ全体の電力消費を特徴付けるために、広範な一連のアプリケーションにわたり電力モデルがコア上で実行される。ブロック608では、アプリケーションを実行する一方で、コアのノード容量切り換え挙動を特徴付ける、ポアソン分布等を用いた統計的解析によりもたらされる参照テーブルから、サンプリング間隔内で実行されるサンプリングの数が決定されてよい。次いで、動作周波数、サンプル間隔、及び取り込むサンプルの決定された数から、サンプリングする信号の数が決定されてよい。
【0061】
ブロック610では、重み値が各サンプリングされた信号に割り当てられる。この処理の更に詳細な説明は後でなされる。有効にされてサンプリングされた信号の重みの合計は、特定のクロック周期におけるコアの正確なリアルタイム電力推定を決定するために用いられる。その合計は特定のクロック周期におけるノード切り換え容量Cacの推定であり、この合計は参照テーブルに索引付けすることによって電力数(power number)に形を変えられてよい。この参照テーブルは電力モデルがコアで動作させられたときの特徴付け処理によって作成されていてもよい。
【0062】
ブロック612では、サンプリングされた信号の重みの合計から生成されるリアルタイム電力推定値が、所定のアプリケーション一式内の各アプリケーションに対する電力モデルから生成される電力推定値と比較される。もしこれら2つの値の差が予め定められた最低の正確性以下であれば(条件ブロック614)、電力推定回路の設計は完了し、ブロック616においてチップをコア内のモニタコントロールと共にテープアウトしてよい。もし最低の正確性の条件に合わなければ(条件ブロック614)、制御フローはブロック608に戻る。サンプリングの新たな回数とサンプリングすべき信号の新たな数が選択される。
【0063】
図7はコアの正確なリアルタイム電力推定のために、サンプリングされた信号に割り当てられる重み(重み付け値)を決定する方法700を示している。方法700は代替的な実施形態を導き出すために当業者によって修正されてよい。また、この実施形態におけるステップはシーケンシャルな順序で示されている。しかし、幾つかのステップは、他の実施形態では、図示されたのと異なる順序で起こってよく、同時に実行されてよく、他のステップと組み合わされてよく、また省略されてよい。図示された実施形態では、ブロック702において、サンプリング間隔の間におけるダイ全体の電力消費を特徴付けるために、広範な一連のアプリケーションにわたり電力モデルがコア上で実行される。
【0064】
ブロック704では、最初の均等な重み値が各サンプリングされた信号に割り当てられる。この最初の値を決定するために、特定のアプリケーションがコア上で実行され、当該クロック周期において有効にされてサンプリングされた信号の合計が記録される。有効にされてサンプリングされた信号の数が、サンプリング間隔内での各サンプリングされたクロック周期に対して記録される。1つのサンプリング間隔内には何百のサンプリングされたクロック周期があってよい。ブロック702内での電力モデルの実行から見出されたこのサンプリング間隔に対する実際の電力推定が、実際のCac値を決定するために用いられる。この実際のCacはサンプリング間隔にわたって有効にされてサンプリングされた信号の総計によって除される。この除して得られた値が各サンプリングされた信号に割り当てられる均等な最初の重み値であってよい。
【0065】
上述のステップはブロック706においてアプリケーション一式の各アプリケーションに対して実行されてよい。各アプリケーションはそれ自身に生成された最初の均等な重み値をサンプリングされた信号に対して有することとなろう。ブロック708では、これらの値全ての平均がサンプリングされた信号に対して用いられる最初の均等な重み値となってよい。
【0066】
各アプリケーションに対して、最初の重みから算出されたCacは誤差項を有することになろう。ブロック710において全てのアプリケーションに対して総誤差が算出される。ある実施形態では、この総誤差は各アプリケーションに対する誤差の合計であってよい。代替的な実施形態では、この総誤差は各アプリケーションに対する誤差の二乗の合計であってよい。代替的な実施形態では、総誤差を算出するために他の式が用いられてよい。
【0067】
ブロック712では、特定のサンプリングされた信号に対して、その対応する最初の均等な重み値が、総誤差を小さくする方向に増大又は減少させられてよい。もし総誤差が小さくなるのを停止しなかったならば(条件ブロック714)、制御フローはブロック712に戻る。もし総誤差が小さくなるのを停止すれば、ブロック716においてその特定のサンプリングされた信号に対するその時点での重み値が保存される。この値は重みテーブル504等のテーブル内に保存することができる。
【0068】
もしサンプリングされた全ての信号が、見込まれる値変化について調査されていなければ(条件ブロック718)、制御フローはブロック712に戻る。もしサンプリングされた全ての信号が、見込まれる値変化について調査されたならば(条件ブロック718)、ブロック720において、重み値を記憶する1つ以上のテーブルが最後の重み値を有することとなる。
【0069】
上述の実施形態はかなり詳細に説明されてきたが、上述の開示を完全に理解することで多くの変形や修正が当業者には明らかになろう。以下の特許請求の範囲は全てのそのような変形や修正を包含するものとして解釈されることが意図されている。
【産業上の利用可能性】
【0070】
この発明は一般的には電子回路に適用可能である。

【特許請求の範囲】
【請求項1】
所定数のサンプリングされた信号の各々に対応するデータを伝達するように構成される機能ブロック(110)と、
前記データを受け取るとともに前記所定数のサンプリングされた信号の各々に対する対応する重み値を記憶し、対応する高論理値を有する前記サンプリングされた信号の前記重み値を合計し、前記重み値の合計に基づき電力推定数を決定するように構成される電力モニタ(130)と、
電圧及び周波数の調整を前記機能ブロックに伝達し、前記電力推定数に応じて前記機能ブロック内で電力消費挙動を変更するように構成される電力マネージャ(140)とを備えたシステムであって、
前記重み値は、統計的ランダム処理により近似されるノード容量切り換え挙動を前記機能ブロックが有すると仮定する統計的解析を用いて決定されるシステム。
【請求項2】
前記電力推定数は環境変化とは独立した再現性のある値である、請求項1に記載されたシステム。
【請求項3】
前記統計的ランダム処理はポアソン分布を有している、請求項2に記載されたシステム。
【請求項4】
前記重み値の記憶は予め定められた数のクロック周期毎に1回行われる、請求項2に記載されたシステム。
【請求項5】
サンプリング間隔内の所定数のサンプルは前記統計的解析から決定される、請求項4に記載されたシステム。
【請求項6】
前記所定数のサンプリングされた信号は、動作周波数、前記サンプリング間隔、及び前記所定数のサンプルから決定される、請求項5に記載されたシステム。
【請求項7】
前記所定数のサンプリングされた信号は1つ以上のクロックゲータイネーブル信号からなる、請求項5に記載されたシステム。
【請求項8】
前記機能ブロックは1つ以上のユニットを備え、同じ所定数のサンプル及び同じ所定数のサンプリングされた信号に対して、前記1つ以上のユニットの各々は前記機能ブロックよりも低い信頼性レベル及び高い正確性を備えている、請求項7に記載されたシステム。
【請求項9】
所定数のサンプリングされた信号の各々に対応するデータを機能ブロックから伝達することと、
前記データを電力モニタで受け取るとともに前記所定数のサンプリングされた信号の各々に対する対応する重み値を記憶することと、
対応する高論理値を有する前記サンプリングされた信号の前記重み値を合計することと、
前記重み値の合計に基づき電力推定数を決定することと、
電圧及び周波数の調整を前記機能ブロックに伝達して前記電力推定数に応じて前記機能ブロック内で電力消費挙動を変更することと、を備えた方法であって、
前記重み値は、統計的ランダム処理により近似されるノード容量切り換え挙動を前記機能ブロックが有すると仮定する統計的解析を用いて決定される、方法。
【請求項10】
機能ブロック(110)及び電力マネージャ(140)と通信するように構成されるインタフェースと、
所定数のサンプリングされた信号の各々に対する重み値を記憶するように構成される重みテーブル(504)と、
高論理値を有する前記サンプリングされた信号の前記重み値を合計するように構成される重み積算器(510)と、
前記電力マネージャに電力推定数を伝達するように構成されるチェインコントロール(502)とを備えた電力モニタ(130)であって、
前記重み値は、統計的ランダム処理により近似されるノード容量切り換え挙動を前記機能ブロックが有すると仮定する統計的解析を用いて決定され、
前記電力推定数は、前記重み値の合計から変換されたものである、電力モニタ。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2011−528138(P2011−528138A)
【公表日】平成23年11月10日(2011.11.10)
【国際特許分類】
【出願番号】特願2011−504013(P2011−504013)
【出願日】平成21年4月10日(2009.4.10)
【国際出願番号】PCT/US2009/002268
【国際公開番号】WO2009/126322
【国際公開日】平成21年10月15日(2009.10.15)
【出願人】(591016172)アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド (439)
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
【Fターム(参考)】