(57)【特許請求の範囲】
【請求項１】
ロジック回路と、
前記ロジック回路に結合され、要求された供給電圧大きさの指示を外部電源へ送信するように構成されたローカル電力マネージャーと、
集積回路内にあり、前記ロジック回路に対してテストを実行するように構成された自己校正ユニットと、
を備え、前記自己校正ユニットは、前記ロジック回路が所与のワークロードを初めて実行することに応答して、テストに不合格となるまで、各々、より低い要求供給電圧大きさでテストを繰り返すよう構成され、更に、テストに合格する最も低い要求供給電圧大きさを使用して、集積回路を動作するための要求供給電圧大きさを発生する、集積回路。
【請求項２】
供給電圧大きさの静的なテーブルを更に備え、この静的なテーブルのコンテンツは、前記集積回路の製造テスト中に決定され、更に、前記ローカル電力マネージャーは、前記静的なテーブルから最初の供給電圧大きさを読み取るように構成される、請求項１に記載の集積回路。
【請求項３】
前記集積回路は、複数のクロック周波数で動作することができ、更に、前記自己校正ユニットは、前記複数のクロック周波数の各々に対して、各々、より低い供給電圧大きさでテストを繰り返して、前記複数のクロック周波数の各々に対して最も低い要求供給電圧大きさを決定するように構成される、請求項１に記載の集積回路。
【請求項４】
前記自己校正ユニットは、前記集積回路を含む装置の初期ブートに応答してテストを繰り返すように構成される、請求項１に記載の集積回路。
【請求項５】
前記自己校正ユニットは、テストを繰り返し、そして前記集積回路のエージが特定量を越えるのに応答して最も低い要求供給電圧大きさを決定するように構成された、請求項４に記載の集積回路。
【請求項６】
前記自己校正ユニットは、テストを繰り返し、そして前記ロジック回路が異なるワークロードを実行するのに応答して最も低い要求供給電圧大きさを決定するように構成された、請求項１に記載の集積回路。
【請求項７】
ワークロードごと該ワークロードが初めて実行されたか否かを示すフラグを記憶する不揮発性記憶装置を備える、請求項１に記載の集積回路。
【請求項８】
ロジック回路及び自己校正ユニットを含む集積回路に対して、前記ロジック回路が所与のワークロードを初めて実行することに応答して、テストが不合格となるまで、各々、より低い要求供給電圧大きさで自己校正ユニットによりロジック回路に対してテストを繰り返す段階と、
前記自己校正ユニットが、テストに合格する最も低い要求供給電圧大きさを決定する段階と、
前記自己校正ユニットが、その最も低い要求供給電圧大きさを選択して、集積回路を動作するための要求供給電圧大きさを発生する段階と、
を備えた方法。
【請求項９】
静的なテーブルから最初の要求供給電圧大きさを読み取る段階を更に備え、この静的なテーブルのコンテンツは、前記集積回路の製造テスト中に決定される、請求項８に記載の方法。
【請求項１０】
前記集積回路は、複数のクロック周波数で動作することができ、更に、前記方法は、前記自己校正ユニットが複数のクロック周波数の各々に対して前記繰り返し、決定及び選択の段階を繰り返すことを含む、請求項８に記載の方法。
【請求項１１】
前記集積回路を含む装置の初期ブートに応答して遂行される、請求項８に記載の方法。
【請求項１２】
前記集積回路のエージが特定量を越えることに応答して遂行される、請求項１１に記載の方法。
【請求項１３】
前記ロジック回路が異なるワークロードを実行することに応答して遂行される、請求項８に記載の方法。
【請求項１４】
前記ロジック回路が所与のワークロードを初めて実行することに応答することが、不揮発装置記憶装置におけるワークロードごとのフラグに基づく、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路に係り、より詳細には、集積回路の動的な電圧及び周波数管理に係る。
【背景技術】
【０００２】
単一の集積回路「チップ」に含まれるトランジスタの数が増加し、又、集積回路の動作周波数が高くなるにつれて、集積回路により消費される電力の管理の重要性が高まり続けている。電力消費を管理しない場合には、集積回路の熱要件を満足するのに（例えば、集積回路を熱限界内に保つために動作中に集積回路を充分に冷却するに必要なコンポーネントを設けるのに）非常にコストがかかるか、又は実現不能なこともある。更に、バッテリ作動装置のようなある用途では、集積回路の電力消費の管理は、受け容れられるバッテリ寿命を与えるための鍵である。
【０００３】
集積回路の電力消費は、集積回路に与えられる供給電圧に関係している。例えば、多くのデジタル論理回路は、バイナリ１及びバイナリ０を各々供給電圧及び接地電圧として表す（逆の場合もある）。デジタルロジックが動作中に評価をするときに、信号は、頻繁に一方の電圧から他方の電圧へと完全に遷移する。従って、集積回路で消費される電力は、接地電圧に対する供給電圧の大きさに依存する。供給電圧を下げると、一般的には、電力消費が低くなるが、デジタル回路が動作する速度にも影響が及び、従って、所与の動作周波数（即ち、集積回路のデジタルロジックがクロックされる周波数）において誤った動作を引き起こすことがある。
【０００４】
更に、トランジスタの幾何学形状は、サイズが減少し続けているので、トランジスタが電流をアクティブに導通していないときに生じる漏洩電流は、集積回路で消費される電力の大きな部分となる。所与のトランジスタで経験される漏洩電流の量は、一般的に、供給電圧の増加と共に直線的に増加する。更に、（トランジスタ幾何学形状が減少する）各々の新たな半導体製造プロセスノードでは、漏洩電流がアクティブな（ＯＮ）電流より増加する。従って、より進歩したプロセスノードが使用されるときには、漏洩電流が益々大きな問題となる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従って、集積回路の電力消費は、集積回路への供給電圧を下げることによって管理されるが、供給電圧を下げ過ぎると、誤った動作が生じることがある。所与の動作周波数について誤った動作が生じる供給電圧の大きさは、所与の集積回路設計について部品ごとに変化する。例えば、集積回路の製造に使用される集積回路製造プロセス及び集積回路の動作温度の変化は、両方とも、誤った動作が生じる供給電圧の大きさに影響し得る。従って、供給電圧を介して電力消費を管理する試みは、製造プロセスの全ての受け容れられる変化及び全ての許容動作温度にわたって所与の周波数で正しい動作を保証する供給電圧の大きさに限定される。典型的に、所与の周波数での供給電圧は、集積回路の仕様において静的に特定される。
【課題を解決するための手段】
【０００６】
一実施形態において、集積回路は、ロジック回路と、このロジック回路に結合されたローカル電力マネージャーと、自己校正ユニットとを備えている。ローカル電力マネージャーは、要求された供給電圧大きさの指示を外部電源へ送信するよう構成される。自己校正ユニットは、ロジック回路においてテストを実行し、テストに不合格になるまで各々より低い要求供給電圧大きさでテストを繰り返すよう構成される。テストに合格する最も低い要求供給電圧大きさを使用して、集積回路を動作するための要求供給電圧大きさを発生する。
【０００７】
一実施形態において、方法は、ロジック回路及び自己校正ユニットを含む集積回路に対して、テストが不合格となるまで、各々、より低い要求供給電圧大きさで自己校正ユニットによりロジック回路に対してテストを繰り返すことを含む。更に、この方法は、自己校正ユニットが、テストに合格する最も低い要求供給電圧大きさを決定することを含む。更に、この方法は、自己校正ユニットが、その最も低い要求供給電圧大きさを選択して、集積回路を動作するための要求供給電圧大きさを発生することを含む。
【０００８】
一実施形態において、集積回路は、集積回路の動作を実行するロジック回路により占有された集積回路のエリアにわたって物理的に分散されて、直列に接続された複数のロジックゲートと、その直列接続のうちの最初のゲート及びその直列接続のうちの最後のゲートに結合された測定ユニットとを備えている。この測定ユニットは、論理的遷移を最初のゲートへ送出し、そしてそれに対応する遷移が最後のゲートから検出されるまで時間を測定するように構成される。測定された時間を所定の時間と比較して、集積回路の供給電圧を調整する。ある実施形態では、所定の時間は、自己校正手順の間に決定されてもよい。ある実施形態では、所定の時間は、パルスが直列接続の全てのゲートに通過するのに要するクロックサイクルの数として測定されてもよい。
【０００９】
ある実施形態では、方法は、集積回路の動作を実行するロジック回路により占有された集積回路のエリアにわたって物理的に分散された複数のゲートの直列接続のうちの最初のゲートへ測定ユニットが論理的遷移を送出し、そしてそれに対応する遷移が最後のゲートから検出されるまでの時間を測定ユニットが測定し、その測定された時間を所定の時間と比較して、集積回路の供給電圧を調整することを含む。
【００１０】
以下、添付図面を参照して、本発明を詳細に説明する。
【図面の簡単な説明】
【００１１】
【図１】集積回路の一実施形態のブロック図である。
【図２】図１に示す集積回路のテストの一実施形態を示すフローチャートである。
【図３】図１に示す自己校正ユニットの一実施形態の動作を示すフローチャートである。
【図４】集積回路の動作周波数を変更するための図１に示す集積回路の一実施形態の動作を示すフローチャートである。
【図５】一実施形態として種々の事象に応答する自己校正の遂行を示すフローチャートである。
【図６】集積回路の別の実施形態のブロック図である。
【図７】図６に示す集積回路のテストの一実施形態を示すフローチャートである。
【図８】供給電圧を要求するための集積回路の一実施形態の動作を示すフローチャートである。
【図９】集積回路の動作周波数を変更するための図６に示す集積回路の一実施形態の動作を示すフローチャートである。
【図１０】図６に示す集積回路のテストの別の実施形態を示すフローチャートである。
【図１１】図６に示す速度／温度比較ユニットの一実施形態の動作を示すフローチャートである。
【図１２】集積回路をテストする一実施形態に使用される種々の供給電圧及びテスト電圧で動作できる部品の数を表すグラフである。
【図１３】集積回路をテストする別の実施形態に使用される種々の供給電圧及びテスト電圧で動作できる部品の数を表すグラフである。
【発明を実施するための形態】
【００１２】
本発明は、種々の変更や別の形態を受け容れるが、その特定の実施形態を添付図面に例示して以下に詳細に述べる。しかしながら、添付図面及び詳細な説明は、本発明をここに開示する特定の形態に限定するものではなく、逆に、特許請求の範囲に規定された本発明の精神及び範囲内に入る変更、等効物及び代替え物を全て網羅することを理解されたい。ここに使用する見出しは、編集の目的のために過ぎず、説明の範囲を限定するために使用するのではない。本明細書全体を通して使用される「してもよい(may)」という語は、許すという意味で（即ち、する潜在性を有するという意味で）使用されるもので、強制的な意味で（即ち、しなければならないという意味で）使用されるのではない。同様に、「備える(include)」「備えている(including)」及び「備える(includes)」という語も、「備えている(including)」を意味するが、それに限定されない。
【００１３】
種々のユニット、回路又は他のコンポーネントは、１つ又は複数のタスクを遂行するように「構成された(configured to)」ものとして説明される。このような状況において、「構成された」とは、動作中に１つ又は複数のタスクを遂行する「回路を有する」ことを一般的に意味する構造の広い表現である。従って、ユニット／回路／コンポーネントは、そのユニット／回路／コンポーネントが現在オンでなくてもタスクを遂行するように構成することができる。一般的に、「構成された」に対応する構造を形成する回路は、ハードウェア回路、及び／又は動作を具現化するように実行できるプログラムインストラクションを記憶するメモリを含む。メモリは、スタティック又はダイナミックランダムアクセスメモリのような揮発性メモリ、及び／又は光学的又は磁気的ディスク記憶装置、フラッシュメモリ、プログラム可能なリードオンリメモリ、等の不揮発性メモリを含む。同様に、種々のユニット／回路／コンポーネントは、説明の便宜上、１つ又は複数のタスクを遂行するものとして説明する。このような説明は、「構成された」という句を含むものとして解釈されねばならない。１つ以上のタスクを遂行するように構成されたユニット／回路／コンポーネントを表現することは、特に、３５Ｕ.Ｓ.Ｃ.§１１２パラグラフ６、ユニット／回路／コンポーネントに対する解釈、を引用しないことが意図される。
【００１４】
図１には、外部電力管理ユニット（ＰＭＵ）／電源１２に結合された集積回路１０の一実施形態のブロック図が示されている。ここに示す実施形態では、集積回路１０は、ロジック回路１４、自己校正ユニット１６、ローカル電力マネージャー１８（自己校正テーブル２０を含む）、及び周波数／電圧（Ｆ／Ｖ）テーブル２２を含む。自己校正ユニット１６及びＦ／Ｖテーブル２２は、ローカル電力マネージャー１８に結合され、これは、要求された供給電圧大きさ（ＶDD要求）の指示をＰＭＵ／電源１２へ送信するように結合される。ＰＭＵ／電源１２は、要求された大きさの供給電圧（ＶDD）を集積回路１０へ与えるように結合される。集積回路１０内に示されたコンポーネントは、単一の半導体基板又はチップに一体化される。
【００１５】
一般的に、自己校正ユニット１６は、ロジック回路１４により実行されるテストを伴う制御回路を含む。テストは、ロジック回路１４において既知の「臨界」タイミング経路をエクササイズすることであると意図される。臨界タイミング経路とは、入力遷移からそれに対応する出力遷移までの最高の遅延（他のタイミング経路に比して）を示すことが予想される回路を通る経路であり、従って、ロジック回路１４が正しく動作する動作周波数を限定する経路である。テストの性質は、ロジック回路１４の定義に基づいて変化する。例えば、ロジック回路１４が１つ以上のプロセッサコアを含む場合には、テストは、プロセッサコアにより実行されるべきソフトウェアプログラムを、そのプログラムから予想される結果（例えば、シグネチャー）と共に含む。ロジック回路１４が固定機能回路を含む場合には、テストは、入力信号値及び予想される出力信号値を含む。種々の実施形態では、信号値及びプログラムインストラクションが組み合わせて含まれる。
【００１６】
自己校正ユニット１６内の回路は、ロジック回路１４に対するテストを実行するように構成される（例えば、インストラクションを実行のためにプロセッサコアへ供給し、及び／又は入力信号値で信号を駆動する）。又、自己校正ユニット内の回路は、結果を予想値に対してチェックするようにも構成される。自己校正ユニット１６は、テストを繰り返し、そして繰り返しに対して誤った結果が検出されるまで、繰り返しにごとにより低い供給電圧の大きさを要求するようにローカル電力マネージャー１８と通信するように構成される。正しいテスト結果が検出されるところの最も低い供給電圧大きさが、要求すべき供給電圧大きさとして与えられる（又は要求されるべき大きさに到達するために最も低い供給電圧大きさにある程度の余裕が追加されてもよい）。自己校正ユニット１６は、考えられる各動作周波数に対してテストを繰り返してもよいし、或いは集積回路１０に対して所与の動作周波数が実際に初めて要求された（例えば、ソフトウェアにより）ときそれに応答してその所与の動作周波数に対してテストを遂行してもよい。
【００１７】
自己校正ユニット２０を使用することにより、ある実施形態では、より小さな余裕を使用すればよい。というのは、それが配備される特定装置に設置される集積回路１０で生じる自己校正（従って、その余裕で考慮されるべきあるファクタ、例えば、電源１２の変動、ボード設計、集積回路１０のパッケージ、等）が比較的固定されるからである。更に、製造テストにおいて考えられる最も低い供給電圧をテストするのではなくて、そのときにより少ない供給電圧大きさをテストすればよく、従って、ある実施形態では、製造テスト時間を短縮することができる。更に、自己校正ユニット１６は、いつでも作動でき、従って、ある実施形態では、集積回路１０におけるエージング作用を自動的に調整することができる。
【００１８】
１つの実施形態では、ローカル電力マネージャー１８は、それにより自己校正ユニット１６によって与えられる供給電圧大きさを自己校正テーブル２０に記憶する。この自己校正テーブル２０は、ランダムアクセスメモリ、クロック型記憶装置、例えば、レジスタ、又は他の揮発性メモリでよい。或いは又、不揮発性メモリ、例えば、プログラム可能なリードオンリメモリ、フラッシュメモリ、等を使用してもよい。その後、所与の動作周波数について自己校正テーブル２０のエントリが検出された場合には、そのエントリに記録された供給電圧大きさがローカル電力マネージャー１８により要求される。
【００１９】
Ｆ／Ｖテーブル２２は、集積回路１０の各動作周波数及びその周波数に対する対応供給電圧大きさを各々記憶する複数のエントリを含む。動作周波数は、ロジック回路１４内のクロック型記憶装置へ供給されるクロックのための周波数である。集積回路１０が動作するところの周波数のセットがある（そしてそのセット内の周波数間の切り換えは、例えば、電力管理、熱管理、等を行えるようにするために、集積回路１０によってサポートされる。Ｆ／Ｖテーブル２２は、集積回路１０の製造テスト中に（例えば、ウェハテストのような、集積回路をパッケージングする前に）書き込まれたスタティックテーブルでよい。他の実施形態では、テストは、装置に含ませるために集積回路１０を販売する前の時点、又はそのような装置に集積回路１０を含ませる前の時点で遂行されてもよい。更に別の実施形態では、Ｆ／Ｖテーブル２２は、集積回路１０を含む装置を初めて使用する前に遂行される自己校正中に書き込まれてもよい。従って、Ｆ／Ｖテーブル２２の各周波数に対して決定される供給電圧大きさは、パッケージの電気特性が電圧の大きさを変化させる場合でも正しい動作を保証し、熱的変動を考慮し（例えば、制御された温度でテストを遂行し、動作温度は、その温度より高くても低くてもよい）、集積回路の予想寿命中のエージング作用を考慮する、等々のために、顕著なガードバンドが関連付けられている。
【００２０】
ローカル電力マネージャー１８は、外部電源（例えば、ＰＭＵ／電源１２）から供給電圧大きさを要求するように構成された回路を備えている。上述したように、自己校正テーブル２０のエントリが所与の動作周波数に対して検出された場合には、ローカル電力マネージャー１８は、そのエントリに記録された供給電圧大きさを要求する。自己校正テーブル２０にエントリが見つからない場合には、ローカル電力マネージャー１８は、所与の動作周波数についてＦ／Ｖテーブル２２を読み取り、そしてＰＭＵ／電源１２からその供給電圧大きさを要求する（図１のＶDD要求）。この要求は、任意の望ましい形態で表すことができる。例えば、この要求は、複数のビットより成り、種々の供給電圧大きさは、その複数のビットの異なるエンコーディングが各々指定されたサポートされる大きさの範囲内である。
【００２１】
ローカル電力マネージャー１８は、動作周波数間の切り換えを制御するようにも構成される。例えば、ローカル電力マネージャー１８は、新たな動作周波数を選択するためにソフトウェアにより書き込むことのできるレジスタ又は他のファシリティを含む。ローカル電力マネージャー１８は、書き込みを検出し、そして現在動作周波数から新たに要求された動作周波数への遷移を管理する。この遷移は、要求された供給電圧を変更し、クロック回路の動作を変更し（例えば、集積回路１０のクロックを発生する位相固定ループ（ＰＬＬ）を再ロックし）、等々を含む。従って、遷移の詳細は、一実施形態では、（例えば、遷移が完了したかどうか調べるためのチェックすら行わずに）単に新たな周波数を要求して継続するソフトウェアから抽出される。
【００２２】
Ｆ／Ｖテーブル２２は、任意の望ましい形態で書き込むことができる。例えば、テーブルの各エントリは、（例えば、エントリにおいて複数のビットとしてエンコードされた）望ましい電圧大きさのエントリにおける指示）を永久的に記憶するために選択的に飛ばすことのできるヒューズを含む。他の実施形態では、他の不揮発性記憶装置が使用されてもよい。Ｆ／Ｖテーブル２２は、集積回路１０を含む装置のファームウェアへ更新により書き込まれる不揮発性メモリを含んでもよい。
【００２３】
ある実施形態では、自己校正ユニット１６により実行されるテストは、プログラム可能であり、更新することができる。このような実施形態は、より多くのデータが利用できるようになったときにテストを変更することができる。例えば、以前に識別された臨界経路以外の経路が、集積回路１０を正しく動作する供給電圧を支配し、又はそれに強く影響してもよい。又、テストは、新たに発見された臨界経路を含むように更新されてもよい。更に、テストは、ある実施形態では、テスト中に実行すべきより適切なプログラムを含むように更新されてもよい。
【００２４】
ロジック回路１４は、一般的に、集積回路１０が設計されたところの動作を具現化する回路を含んでもよい。例えば、設計が１つ以上のプロセッサを含む場合には、ロジック回路１４は、プロセッサのオペレーション（例えば、インストラクションフェッチ、デコード、実行及び結果の書き込み）を具現化する回路を含む。プロセッサは、種々の実施形態において、汎用プロセッサ及び／又はグラフィックプロセッサを含む。設計が周辺インターフェイスへのブリッジを含む場合には、ロジック回路１４は、ブリッジのオペレーションを具現化する回路を含む。設計が、パケットインターフェイス、ネットワークインターフェイス、等の他の通信特徴を含む場合には、ロジック回路１４は、それに対応する特徴を具現化する回路を含む。集積回路１０は、一般的に、オペレーションのセットを与えるように設計される。一般的に、ロジック回路１４は、次のもの、即ち、メモリアレイ、組み合わせロジック、状態マシン、フロップ、レジスタ、他のクロック型記憶装置、カスタムロジック回路、等、の１つ以上の組み合わせを含む。
【００２５】
ＰＭＵ／電源１２は、一般に、入力電圧要求により指示された大きさの供給電圧を発生することのできる回路を含む。この回路は、例えば、１つ以上の電圧レギュレータ又は他の電源を含む。又、ＰＭＵ／電源１２は、全体として、（集積回路１０を含む）システムのための電力管理回路も含む。
【００２６】
前記説明は、供給電圧大きさを要求することについて述べ、そしてＰＭＵ／電源１２がその要求された大きさの電圧を供給するものであったが、１つの要求／供給電圧しかないことを意味するものではない。ある所与の時間に複数の供給電圧が要求され供給されることがある。例えば、ロジック回路１４内の組み合わせロジック回路及びメモリ回路のための個別の供給電圧がある。集積回路１０内には、別々にパワーアップ及びパワーダウンされる複数の電圧ドメインがあり、各ドメインは、別々の要求を含む。ローカル電力マネージャー１８は、ロジック回路１４とは個別に電力供給される。１つ以上の供給電圧のセットが要求され供給されることがある。
【００２７】
前記説明では、供給電圧の大きさが要求される、と称され、その要求された大きさの供給電圧が供給される。供給電圧の大きさが基準（例えば、集積回路１０の接地点、時々、ＶSSと称される）に対して測定される。以下の説明の便宜上、電圧は他の電圧より大きいか又は小さいと称される。同様に、ここでは、電圧の測定とも称される。このような場合に、電圧の大きさは、他の電圧より大きい（又は小さい）或いは測定されたとなる。
【００２８】
図２を参照すれば、図１に示された集積回路１０を、パッケージングの前にテストする一実施形態を示すフローチャートが示されている。図２に示されたブロックは、集積回路１０の製造中にテスト装置（例えば、ウェハテスター）において遂行される。
【００２９】
テストは、集積回路１０が比較的高速であるか、比較的低速であるか、等、を推定するために種々の測定を使用して集積回路１０のおおよその特性をテストすることにより開始される（ブロック３０）。例えば、一実施形態では、おおよその特性は、集積回路１０が静止状態にある間に集積回路１０への電流をテストすることを含む（しばしば“Ｉddq”テストと称される）。高いＩddq測定値は、高い漏洩を指示する（例えば、「高速プロセス」）。低いＩddq測定値は、低い漏洩を指示する（例えば、「低速」プロセス。Ｉddqテストは、例えば、供給電圧を集積回路１０の最大許容値にセットして遂行される。おおよその特性（及び集積回路１０のインスタンスをテストする種々の結果）から、テスト供給電圧の比較的小さなセットが選択される。即ち、同様のおおよその特性を有する以前の部品に対して信頼性ある動作を与える供給電圧に基づいて、テスト電圧の小さなセットが選択される（ブロック３２）。例えば、一実施形態では、３つのテスト電圧のセットが選択される。図１２は、高速プロセス（図１２の左側）から低速プロセス（図１２の右側）への部品の分布を表すグラフである。テスト電圧は、一例では、図１２に示したように、Ｖ1、Ｖ2及びＶ3である。
【００３０】
テスト装置は、集積回路１０をパワーアップし（例えば、最も高いテスト電圧で）そしてテスト周波数（集積回路１０の動作がサポートされる周波数の１つ）をセットする（ブロック３４）。テスト装置は、テスト電圧の各セットに対して集積回路１０において１つ以上のテストパターンを実行し（ブロック３６）、そして全てのテストパターンが合格となった（即ち、各パターンに対して正しい結果が得られた）ところの最も低いテスト電圧を選択する（ブロック３８）。テスト周波数がもっとある（例えば、まだテストされていない集積回路１０のサポートされた動作周波数がもっとある）場合には（判断ブロック４０の「イエス」岐路）、次の周波数が選択されてテストされる（ブロック３４、３６及び３８）。テスト電圧のセットは、各サポートされた動作周波数に対してテストされるべき異なる電圧を含んでもよいし、又は各サポートされた動作周波数に対して少なくとも１つの合格供給電圧が予想されるように選択されてもよい。テスト周波数が尽きると（判断ブロック４０の「ノー」岐路）、テスト装置は、周波数及び電圧の大きさをＦ／Ｖテーブル２２に書き込む（ブロック４２）。例えば、サポートされた周波数及びそれに対応する供給電圧大きさを表すために、ヒューズが飛ばされてもよい。
【００３１】
テスト電圧の数に制限があるので、テストプロセスは、集積回路１０の特定のインスタンスの正しい動作を生じる最も低い供給電圧を識別しないことがある。しかしながら、テスト装置における時間を制限することができ、これは、一般的に重要であると共に、特に、集積回路１０が大量に製造されることが予想される場合に重要である。
【００３２】
図３は、自己校正を遂行するための自己校正ユニット１６（及びローカル電力マネージャー１８）の一実施形態の動作を示すブロック図である。自己校正は、以下に詳細に述べるように、種々の時間に遂行される。理解を容易にするためにブロックは特定の順序で示されているが、他の順序が使用されてもよい。ブロックは、自己校正ユニット１６及び／又はローカル電力マネージャー１８内の組み合わせロジック回路において並列に遂行することができる。ブロック、ブロックの組み合わせ、及び／又は全体としてのフローチャートは、複数のクロックサイクルにわたりパイプライン処理されてもよい。
【００３３】
自己校正ユニット１６は、自己校正プロセスが遂行されることを指示するためにローカル電力マネージャー１８と通信する。或いは又、ローカル電力マネージャー１８が自己校正プロセスを開始してもよく、従って、自己校正が処理中であることが分かる。いずれにせよ、ローカル電力マネージャー１８は、テスト周波数としてＦ／Ｖテーブル２２に与えられる供給電圧大きさを要求する（ブロック５０）。集積回路１０によりサポートされる各動作周波数は、例えば、最も低い周波数で始まるテスト周波数である。ローカル電力マネージャー１８は、テスト周波数をセットし（ブロック５２）、そして集積回路がそのテスト周波数に対して安定化するのを待機する（例えば、ＰＬＬロック時間及び／又はＰＭＵ／電源１２からの電圧に対する安定化時間）。自己校正ユニット１６は、自己校正テストを実行し（ブロック５４）、そしてロジック回路１４が正しい結果を発生するか（合格であるか）、しないか（不合格であるか）を決定する（判断ブロック５６）。テストが合格の場合は（判断ブロック５６の「イエス」岐路）、自己校正ユニット１６は、ローカル電力マネージャー１８に通知し、これは、次に低い供給電圧を要求し（ブロック５８）、そして再びテストが遂行される（ブロック５４及び５６）。テストに対して不合格の結果が検出されるまでテストが繰り返される（ブロック５４、５６及び５８）。不合格が検出された場合には（判断ブロック５６の「ノー」岐路）、ローカル電力マネージャー１８は、最も低い合格供給電圧の大きさを自己校正テーブル２０に記録する（ブロック６０）。ある実施形態では、自己校正テーブルに記録されるべき電圧の大きさに到達するために、最も低い合格供給電圧に余裕が追加される。或いは又、供給電圧を要求するときに余裕を追加してもよい。自己校正されるべきテスト周波数がもっとある場合には（判断ブロック６２の「イエス」岐路）、自己校正プロセスは、次の周波数のためにブロック５０に復帰する。さもなければ（判断ブロック６２の「ノー」岐路）、自己校正プロセスは、終了となる。
【００３４】
図４は、（例えば、集積回路１０で実行されるソフトウェアからの、又は集積回路１０を含むシステム内のどこかからの）動作周波数を切り換える要求に応答するローカル電力マネージャー１８の一実施形態の動作を示すフローチャートである。理解を容易にするためにブロックが特定の順序で示されているが、他の順序が使用されてもよい。これらブロックは、ローカル電力マネージャー１８内の組み合わせロジック回路において並列に実行されてもよい。ブロック、ブロックの組み合わせ、及び／又は全体としてのフローチャートは、複数のクロックサイクルにわたりパイプライン処理されてもよい。
【００３５】
ローカル電力マネージャー１８は、新たな（要求された）動作周波数に対応するエントリに対して自己校正テーブル２０をチェックする（判断ブロック７０）。エントリが見つかった場合には（判断ブロック７０の「イエス」岐路）、ローカル電力マネージャー１８は、自己校正テーブル２０に示された大きさの供給電圧を要求する（ブロック７２）。ローカル電力マネージャー１８は、新たな動作周波数をセットし（ブロック７４）、そして任意であるが、具現化に基づいてクロック回路が新たな動作周波数にロックするのを待機する（ブロック７６）。他方、要求された周波数に対して自己校正テーブル２０にエントリがない場合には（判断ブロック７０の「ノー」岐路）、ローカル電力マネージャー１８は、その要求された周波数に対して自己校正を実行すべきかどうか決定する（判断ブロック７８）。例えば、図３のフローチャートは、唯一のテスト周波数として要求された周波数で遂行されてもよい。周波数切り換え中に自己校正を遂行すべきかどうかに影響するファクタは、ロジック回路１４の現在ワークロード、システムの全体的な環境（例えば、温度、残りのバッテリ寿命、等）を含む。例えば、ロジック回路１４が複数のプロセッサコアを含み、そしてコアの１つがアイドル状態である場合には、そのアイドルのプロセッサコアにおいて自己校正が実行される。システムがバッテリ電力で動作し、そして残りのバッテリ寿命が短い場合には、自己校正を実行すると、望ましい以上のバッテリ電力を消費することがある。
【００３６】
ローカル電力マネージャー１８が自己校正を実行すべきと決定した場合には（判断ブロック７８の「イエス」岐路）、ローカル電力マネージャー１８は、自己校正を遂行するために自己校正ユニット１６を呼び出す（ブロック８０）。次いで、ローカル電力マネージャー１８は、（自己校正の完了後に）自己校正テーブル２０に指示された供給電圧を要求し（ブロック７２）、新たな動作周波数をセットし（ブロック７４）、そして任意であるが、ロックを待機する（ブロック７６）。
【００３７】
ローカル電力マネージャー１８が自己校正を実行すべきでないと決定した場合には（判断ブロック７８の「ノー」岐路）、ローカル電力マネージャー１８は、Ｆ／Ｖテーブル２２を読み取って供給電圧大きさを得、そしてその供給電圧大きさを要求する（ブロック８２）。ローカル電力マネージャー１８は、新たな周波数をセットし、そして任意であるが、ロックを待機する（ブロック７４及び７６）。
【００３８】
図４の実施形態において、自己校正は、自己校正テーブル２０のエントリが見つからないところの要求された動作周波数に応答して遂行されてもよい。この動作に加えて又はそれに代わって、自己校正は、１つ以上の他の時点で呼び出されてもよい（例えば、一実施形態について図５のフローチャートに示すように）。図５に示すフローチャートは、ハードウェアで具現化されてもよいし、ソフトウェアで具現化されてもよいし、及び／又はその組み合わせで具現化されてもよい。
【００３９】
集積回路１０を含むシステムが（例えば、システムを購入した顧客により）初めてブートされる場合に（判断ブロック９０の「イエス」岐路）、集積回路１０は、自己校正を実行する（ブロック９２）。一般的に、システムをブートすることは、システムをパワーオンしてシステムを初期化し動作を開始することを指す。ブートがシステムの最初のブートであるという決定は、種々の形態でなされる。例えば、システムが初めてブートされるかどうか指示するフラグがシステムの不揮発性メモリに記憶されてもよい。このフラグは、システムにおいてブートコードによりチェックされ、ブートが最初のブートである場合にはブートコードの終わりにフラグの状態を変更し、その後のブートが最初のブートとして検出されないようにしてもよい。例えば、フラグは、最初にクリアなビットで、初めてのブートの後にセットされてもよい（又はその逆でもよい）。ある実施形態では、完全システムリセット（例えば、ユーザが装置への１つ以上の入力をアクチベートすることにより開始されるハードリセット）が「最初のブート」フラグをクリアし、次のブートにおいて自己校正を行わせてもよい。このような動作は、ある実施形態では、装置の機能を改善する。例えば、装置が「凍結」されるか、さもなければ、機能不良であるために、ユーザがハードリセットを開始する場合、エラーが集積回路１０の機能不良による（例えば、自己校正の供給電圧大きさが低すぎることによる）ものであれば、自己校正でエラーを軽減することができる。更に、装置がネットワーク（例えば、インターネット）に接続された場合には、装置の製造者から自動的に装置に更新された校正プログラム又は手順をダウンロードすることができる。その更新に応答して自己校正が実行される。
【００４０】
それとは別に又はそれに加えて、システムは、所与のワークロードが初めて実行されることを決定し（判断ブロック９４の「イエス」岐路）、そしてそれに応答して自己校正を実行する（ブロック９２）。所与のワークロードが初めて実行されるという決定は、種々の形態で具現化することができる（例えば、最初のブートに関して上述したのと同様に、不揮発性記憶装置におけるワークロードごとのフラグ）。例えば、ワークロードが著しく変化するシステムにおいて、異なるワークロードの検出を使用してもよい。例えば、システムは、移動電話、音楽プレーヤ、ウェブブラウザとして機能する移動装置であって、種々の他のコンピューティングタスクを遂行してもよい。又、ワークロードは、実質的に異なるもので、集積回路１０からの異なる量の遂行を必要としてもよい。従って、各ワークロードを自己校正することで、付加的な電力節約が生じる（例えば、軽いロードは、低い動作温度を生じ、これは、厳しいワークロードで許されるよりも低い供給電圧大きさを許す）。
【００４１】
それとは別に又はそれに加えて、システムは、ある量だけエージングしたことを決定し（判断ブロック９６の「イエス」岐路）、そしてそれに応答して自己校正を実行する（ブロック９２）。集積回路１０（及び／又は集積回路１０を含む装置）のエージングに応答して自己校正を遂行することで、チッププロセスエージング作用又は他のエージング作用を補償するように集積回路１０の要求された供給電圧大きさを調整することができる。この形態では、エージング作用を考慮するために要求された供給電圧大きさに余裕を追加する必要がない（集積回路１０がエージングするときに再校正することにより既にそれが考慮されているので）。集積回路１０のエージは、種々の形態で測定される。例えば、エージは、カレンダー時間に基づき最初のブートの日付から測定される。又、エージは、最初のブートから動作の時間に関して測定される。又、エージは、必要に応じて、時間又はクロックサイクルに関して測定される。又、他の実施形態では、エージは、製造の日付に対して測定される。いずれのケースでも、複数の異なるエージにおいて（例えば、６か月ごとに一度、年に一度、等）、自己校正が遂行される。更に別のケースでは、システムが動作している間に自己校正を動的に遂行して、温度作用を補償する上で助けとすることができる。自己校正呼び出しの希望のセットを種々の実施形態において具現化することができる。
【００４２】
図６は、集積回路１０及びＰＭＵ／電源１２の別の実施形態のブロック図である。図１の実施形態と同様に、図６の集積回路１０の実施形態は、ロジック回路１４及びローカル電力マネージャー１８を備えている。ある実施形態では、自己校正ユニット１６及び自己校正テーブル２０が含まれるが、他の実施形態は、それらの特徴を含まない。図６の実施形態では、図１のＦ／Ｖテーブル２２が、ローカル電力マネージャー１８に結合されたＦ／Ｖ／Ｎテーブル１０２に置き換えられる。このＦ／Ｖ／Ｎテーブル１０２は、Ｆ／Ｖテーブル２２と同様に、周波数及びそれに対応する供給電圧大きさを記憶するエントリを含む。更に、それらエントリは、以下に詳細に述べる遅延測定値（Ｎ）を記憶する。図６の実施形態に更に示すように、集積回路１０は、直列接続された測定ユニット１００及びロジックゲート１０４Ａ−１０４Ｈを含む。ロジックゲート１０４Ａへの入力は、測定ユニット１００に結合され、そしてロジックゲート１０４Ｈの出力も、測定ユニット１００に結合される。更に、フロップ１０６は、予想される遅延測定値（Ｎ）を記憶し、そしてフロップ１０８は、カウンタ値（Ｃｔｒ）を記憶する。両フロップ１０６及び１０８は、測定ユニット１００に結合される。他の実施形態では、フロップ１０６及び１０８は、クロック型の記憶装置である。
【００４３】
測定ユニット１００は、ゲート１０４Ａ−１０４Ｈの直列接続体を通る論理的遷移の伝播遅延を測定するように構成される。ゲート１０４Ａ−１０４Ｈは、ロジック回路１４における種々のロジックゲートと同じ設計を有する。従って、ゲート１０４Ａ−１０４Ｈを通る伝播遅延は、ロジック回路１４内のロジックゲートに比例しなければならない。伝播遅延を測定し、そしてそれを所定の遅延と比較することにより、ロジック回路１４の動作に対する種々のファクタの作用を考慮することができる。例えば、動作温度、エージング、等の作用は、伝播遅延を測定してそれを所定の量と比較することにより検出することができる。
【００４４】
伝播遅延は、望ましい単位（例えば、ナノ秒、クロックサイクル、等）で測定される。一実施形態では、伝播遅延は、ロジック回路１４へ供給されるクロックの現在動作周波数においてクロックサイクルに関して測定される。従って、測定ユニット１００は、論理的遷移（例えば、０から１又は１から０の遷移）をゲート１０４Ａ−１０４Ｈの直列接続体の入力（即ち、図６のゲート１０４Ａの入力）へ送出し、そしてそれに対応する遷移がその直列接続体の出力（即ち、図６のゲート１０４Ｈの出力）に検出されるまでクロックサイクルをカウントする。一実施形態では、２つの論理的遷移（例えば、０から１そして再び０へ戻る）を含むパルスが送信される。フロップ１０８のカウンタＣｔｒは、論理的遷移が送出されたときにクリアされ、そしてそれに対応する遷移が検出されるまでクロックサイクルごとにインクリメントされる。フロップ１０６は、供給電圧が現在動作周波数をサポートする遅延を与える場合に発生すると予想される所定のクロックサイクル数（Ｎ）を記憶する。測定されたクロックサイクル数が所定数Ｎより大きい場合には、遅延を減少するために供給電圧が上げられる。測定されたクロックサイクル数が所定数Ｎより小さい場合には、遅延を増加する（そして電力消費を下げる）ために供給電圧が下げられる。
【００４５】
直列接続体におけるゲートの数は、ロジック回路１４に供給されるクロックのクロックサイクルにおいて評価するゲート遅延の数より著しく大きい。例えば、直列接続体におけるゲートの数は、クロックサイクルにおけるゲート遅延の数の約１００倍である。従って、クロックサイクルにおいて１４のゲート遅延が得られる場合には、ゲート１０４Ａ−１０４Ｈの直列接続体に約１４００のゲートがある。非常に多数のゲートを使用することで、ロジック回路１４に実際に生じる回路遅延に対する測定遅延のマッチングを改善することができる。更に、本実施形態は、クロックサイクルに関して遅延をカウントするので、非常に多数のゲートがあると、クロックサイクルの粒度のために生じる測定エラーを減少することができる。例えば、クロックサイクル内のゲート遅延の数の１００倍では、遅延における１つの全クロックサイクルのエラー（考えられる最大エラー）は、測定値の１％に過ぎない。この実施形態では１００が使用されるが、他の実施形態は、より大きな数又はより小さな数（例えば、２００、５００、１００、５０、等）を使用してもよい。
【００４６】
所定数Ｎは、集積回路の製造テスト中に測定される。所定数Ｎは、一般的に、ゲートの直列接続体を形成するのに使用されるゲート遅延の数の倍数（例えば、前記例では１００）に近いことが予想されるが、その数から若干変化してもよい。一実施形態では、所定数Ｎは、所与の動作周波数に対する静的な供給電圧大きさと共にＦ／Ｖ／Ｎテーブル１０２に記憶される。種々の実施形態において、１つのＮがテーブルに記憶されてもよいし、又は動作周波数ごとに１つのＮが（その動作周波数に対応するエントリに）あってもよい。
【００４７】
ゲート１０４Ａ−１０４Ｈは、ロジック回路１４により占有された集積回路１０のエリアにわたり物理的に分布されてもよい。従って、集積回路チップの表面エリアにわたって生じるプロセス特性及び／又は動作温度の変化は、伝播遅延で表される。即ち、１つ以上のゲート１０４Ａ−１０４Ｈの各セットは、それらのゲート１０４Ａ−１０４Ｈが配置された物理的エリアに対してローカルの動作温度及び／又はプロセス特性によって影響される。一実施形態では、ゲート１０４Ａ−１０４Ｈは、集積回路１０の配線層を切り換えることによりロジック回路１４のロジックエラーを修復できるように典型的に集積回路１０全体にわたって含まれた「スペアゲート」から選択される。即ち、スペアゲートは、最初はロジック回路１４に配線されておらず、使用されない。ロジックのエラーが検出された場合に、スペアゲートをロジック回路１４に配線して、正しいロジック機能を発生することができる。正しいロジック機能を発生できる確率を高くするために、スペアゲートには種々の異なるロジックゲートを含ませることができる。従って、未使用のスペアゲートは種々のゲートを有し、それらを一緒に配線して、ロジック回路１４と同様のスケールのゲート１０４Ａ−１０４Ｈの直列接続体を形成することができる。スペアゲートからゲート１０４Ａ−１０４Ｈを具現化することにより、集積回路１０により消費される半導体エリアにゲート１０４Ａ−１０４Ｈを追加しなくてよい。
【００４８】
加えて、ロジックゲート１０４Ａ−１０４Ｈの直列接続体を使用して遅延を感知するのは、主として、デジタル回路である。従って、回路の使用は、ある実施形態では、アナログ回路に比較して、比較的簡単で且つ低電力である。
【００４９】
測定ユニット１００は、少なくとも、遷移を送出しそして伝播遅延を測定するよう構成された回路を含む。ある実施形態では、測定ユニット１００は、測定をいつ行うべきか決定するように構成された回路、及び／又は伝播遅延を予想値と比較するように構成された回路も備えている。或いは又、その決定は、ローカル電力マネージャー１８において行われてもよいし、又はソフトウェアで行われてもよい。
【００５０】
一般的に、ロジックゲートは、１つ以上の入力を受け取り、それら入力に基づいてロジック機能を遂行して１つ以上の出力を与えるように構成された回路を含む。１つ以上のこのようなゲートが、ゲート１０４Ａ−１０４Ｈの各セットに含まれる。ゲート１０４Ａ−１０４Ｈは、図６では、図面の便宜上、ロジック回路１４の周囲付近に現れるが、これらゲートは、一般的に、上述したように、ロジック回路１４を通して分散されることに注意されたい。
【００５１】
図６の前記説明は、供給電圧大きさを要求することについて述べ、そしてＰＭＵ／電源１２がその要求された大きさの電圧を供給するというものであったが、この説明は、要求され／供給される電圧が１つしかないことを意味するものではない。所与の時点において複数の供給電圧を要求し供給することができる。例えば、組み合わせロジック回路、及びロジック回路１４内のメモリ回路に対して別々の供給電圧がある。集積回路１０内には、別々にパワーアップ及びパワーダウンでき、且つ別々の測定ユニット、及びロジックゲートの直列チェーンを有する複数の電圧ドメインがある。このような各ドメインは、個別の要求を含む。ローカル電力マネージャー１８は、ロジック回路１４から別々に電力供給される。１つ以上の供給電圧のセットが要求され、供給される。更に、ある実施形態では、異なる形式の遅延をモデリングするために、２つ以上のゲートチェーンが電圧ドメイン内で具現化される。例えば、ロジックゲートの遅延及びレジスタファイルの遅延が別々にモデリングされる。
【００５２】
図７は、図６に示す集積回路１０をパッケージングの前にテストする一実施形態を示すフローチャートである。図７に示されたブロックは、集積回路１０の製造中にテスト装置（例えば、ウェハテスター）において遂行される。
【００５３】
図２の実施形態と同様に、テストは、Ｉddqテストのように、集積回路１０のおおよその特性をテストすることにより開始され（ブロック３０）、そしてテスト電圧のセットが選択される（ブロック３２）。テスターは、第１のテスト周波数をセットし（ブロック３４）、そして供給電圧としてテスト電圧セットにおける各電圧に対するテストパターンを実行する（ブロック３６）。この実施形態では、テストは、測定ユニット１００をアクチベートすることを含む。テスト電圧ごとに、テスターは、テスト中に測定ユニット１００により測定された遅延のクロックサイクルの数“Ｎ”（即ち、カウンタフロップ１０８の値）を読み取る。テスターは、テスト電圧ごとに測定値Ｎを記録する（ブロック１１０）。次いで、テスターは、テストに合格する最小供給電圧大きさ及びそれに対応する“Ｎ”を選択する（ブロック１１２）。
【００５４】
テスト周波数がもっとある（例えば、まだテストされていない集積回路１０のサポートされた動作周波数がもっとある）場合には（判断ブロック４０の「イエス」岐路）、次の周波数が選択されてテストされる（ブロック３４、３６、１１０及び１１２）。テスト電圧のセットは、各サポートされた動作周波数に対してテストされるべき異なる電圧を含んでもよいし、又は各サポートされた動作周波数に対して少なくとも１つの合格供給電圧が予想されるように選択されてもよい。テスト周波数が尽きると（判断ブロック４０の「ノー」岐路）、テスト装置は、周波数、電圧の大きさ、及び“Ｎ”の値をＦ／Ｖ／Ｎテーブル１０２に書き込む（ブロック１１４）。
【００５５】
ある実施形態では、テーブルに書き込まれるべき測定値“Ｎ”に余裕が追加される。或いは又、フロップ１０６に“Ｎ”を書き込むためにテーブルから読み取られた“Ｎ”に余裕が追加されてもよい。同様に、テーブルに書き込まれる供給電圧大きさに余裕が追加されてもよいし、又はテーブルから大きさを読み取った後にローカル電力マネージャー１８に余裕が追加されてもよい。
【００５６】
図８は、供給電圧大きさを調整すべきかどうか決定するための図６に示す集積回路１０（及びより詳細には、測定ユニット１００及びローカル電力マネージャー１８）の一実施形態の動作を示すフローチャートである。図８の動作は、集積回路１０が動作している間に周期的に遂行される（例えば、一実施形態では、システムの熱慣性に基づいてほぼ１０マイクロ秒ないし１ミリ秒に一度）。図８の動作は、ワークロードの変更（例えば、電話から音楽プレーヤ又は移動インターネットアクセス装置へ）の後に遂行される。又、図８の動作は、動作周波数切り換えの一部分として遂行されてもよい。理解を容易にするためにブロックは特定の順序で示されているが、他の順序が使用されてもよい。ブロックは、測定ユニット１００／ローカル電力マネージャー１８内の組み合わせロジック回路により並列に遂行することができる。ブロック、ブロックの組み合わせ、及び／又は全体としてのフローチャートは、複数のクロックサイクルにわたりパイプライン処理されてもよい。
【００５７】
ローカル電力マネージャー１８は、測定ユニット１００をアクチベートし、このユニットは、ゲート１０４Ａ−１０４Ｈの直列接続体における現在伝播遅延（“Ｎ”）を感知する（ブロック１２０）。ある実施形態では、ローカル電力マネージャー１８及び／又は測定ユニット１００は、結果をフィルタリングする（ブロック１２２）。より詳細には、例えば、フィルタリングは、連続する測定と測定との間のＮの値の振動を検出することを含む。この振動は、伝播遅延がクロックサイクルの整数に近い（従って、あるときには、Ｍ個のクロックサイクルで捕捉され、そして他のときには、Ｍ＋１個のクロックサイクルで捕捉される）ために発生する。又、この振動は、要求される供給電圧が振動式に増加及び減少されるために発生する。
【００５８】
測定値“Ｎ”がＦ／Ｖ／Ｎテーブル１０２からの“Ｎ”より大きいことを測定ユニット１００が検出した場合には（判断ブロック１２４の「イエス」岐路）、ローカル電力マネージャー１８は、ＰＭＵ／電源１２へ送られる要求された供給電圧大きさを増加する（ブロック１２６）。例えば、次に高い供給電圧大きさが要求される。測定値“Ｎ”がＦ／Ｖ／Ｎテーブル１０２からの“Ｎ”より小さいことを測定ユニット１００が検出した場合には（判断ブロック１２８の「イエス」岐路）、ローカル電力マネージャー１８は、ＰＭＵ／電源１２へ送られる要求された供給電圧大きさを減少する（ブロック１３０）。図８の動作は、要求された供給電圧大きさが安定するまで繰り返されるか、又は必要に応じて、次の測定時間に繰り返される。
【００５９】
図９は、集積回路１０の周波数を切り換える要求に応答する集積回路１０（及びより詳細には、ローカル電力マネージャー１８及び測定ユニット１００）の一実施形態の動作を示すフローチャートである。理解を容易にするためにブロックは特定の順序で示されているが、他の順序が使用されてもよい。ブロックは、測定ユニット１００／ローカル電力マネージャー１８内の組み合わせロジック回路により並列に遂行することができる。ブロック、ブロックの組み合わせ、及び／又は全体としてのフローチャートは、複数のクロックサイクルにわたりパイプライン処理されてもよい。
【００６０】
周波数を切り換える要求が現在動作周波数からの増加である場合には（判断ブロック１４０の「イエス」岐路）、フロップ１０６のＮの値が新たな（要求された）周波数と古い（現在）周波数との比でスケーリングされる（ブロック１４２）。例えば、現在周波数が１ＧＨｚであり、新たな周波数が１．５ＧＨｚである場合には、Ｎの値は、１．５でスケーリングされる。ローカル電力マネージャー１８及び測定ユニット１００は、測定ユニット１００からの測定値ＮがスケーリングされたＮに一致するまで図８の供給電圧調整プロセスを繰り返す（ブロック１４４）。ある実施形態では、増加された供給電圧大きさが、新たに切り換えられた周波数をサポートするのに充分であることを確保するために、スケーリングされたＮに余裕が追加される。スケーリングされたＮに一致すると、ローカル電力マネージャー１８は、新たな周波数をセットし（ブロック１４６）、そしてクロック発生回路が新たな周波数にロックするのを待機する（ブロック１４８）。新たなＮがＦ／Ｖ／Ｎテーブル１０２から読み取られ、そしてフロップ１０６に書き込まれる（ブロック１５０）。
【００６１】
周波数を切り換える要求が現在動作周波数からの減少である場合には（判断ブロック１４０の「ノー」岐路）、ローカル電力マネージャー１８は、Ｎをスケーリングして供給電圧を調整する（ブロック１４２及び１４４）ことなく、新たな周波数をセットする（ブロック１４６）。供給電圧は、高い現在周波数をサポートするに充分なほど既に高いので、集積回路１０は、新たな周波数で正しく動作する。その後の周期的な測定及び調整（例えば、図８）で電圧を下げる。他の実施形態では、Ｎがスケーリングされ、そして低い新たな周波数に対して電圧が調整され（ブロック１４２、１４４）、この場合、供給電圧に対する調整は、減少である。
【００６２】
ある実施形態では、供給電圧大きさを調整するプロセス（ブロック１４４）は、新たな周波数に対してＦ／Ｖ／Ｎテーブル１０２（又は自己校正テーブル２０）から供給電圧大きさを読み取ることで始まり、そしてテーブルから供給電圧大きさを要求することでプロセスを開始する。
【００６３】
次いで、図１０は、図６に示す集積回路１０をパッケージングの前にテストする別の実施形態を示すフローチャートである。図１０に示されたブロックは、集積回路１０の製造中にテスト装置（例えば、ウェハテスター）において遂行される。
【００６４】
図２の実施形態と同様に、テストは、Ｉddqテストのように、集積回路１０のおおよその特性をテストすることで開始される（ブロック３０）。更に、測定ユニット１００は、供給電圧をその考えられる最大値（集積回路１０の仕様で）にセットした状態でアクチベートされる（ブロック１６０）。考えられる最大値におけるＮの測定値は、集積回路１０の「速度」の指示であり、テスト電圧のセットを選択するのに使用される（ブロック１６２）。この形態において、選択されたテスト電圧は、所与の周波数に対する最適値に近いものであり、これは、短いテスト時間内に微粒度の電圧テストを行って、集積回路１０の最適値に近い供給電圧大きさを生じることができる。従って、集積回路１０は、供給電圧がテーブル内の電圧にセットされたときには所与の周波数において電力をあまり消費しない（最適に至らないテスト戦略に比して）。更に、比較的小さなセットの電圧を使用してテスト時間を短縮することができる。例えば、図１３は、高速プロセス（図１３の左側）から低速プロセス（図１３の右側）への部品の分布を示すグラフである。最大電圧（最も右側の点線）を使用すると、Ｎを測定することができる。測定値Ｎに基づき、予想動作点付近のテスト電圧の小さなセットを選択し、そしてそれらの電圧で集積回路１０をテストすることができる（図１３の底部の大括弧）。
【００６５】
その後、図７の実施形態と同様に、第１のテスト周波数をセットし（ブロック３４）、そして供給電圧としてテスト電圧のセットにおける各電圧に対してテストパターンを実行する（ブロック３６）。テストは、測定ユニット１００をアクチベートすることを含む。テスト電圧ごとに、テスターは、テスト中に測定ユニット１００により測定された遅延のクロックサイクル数“Ｎ”（即ち、カウンタフロップ１０８の値）を読み取る。テスターは、テスト電圧ごとに測定値Ｎを記録する（ブロック１１０）。次いで、テスターは、テストに合格する最小の供給電圧大きさ及びそれに対応する“Ｎ”を選択する（ブロック１１２）。
【００６６】
テスト周波数がもっとある（例えば、まだテストされていない集積回路１０のサポートされた動作周波数がもっとある）場合には（判断ブロック４０の「イエス」岐路）、次の周波数が選択されてテストされる（ブロック３４、３６、１１０及び１１２）。テスト電圧のセットは、各サポートされた動作周波数に対してテストされるべき異なる電圧を含んでもよいし、又は各サポートされた動作周波数に対して少なくとも１つの合格供給電圧が予想されるように選択されてもよい。テスト周波数が尽きると（判断ブロック４０の「ノー」岐路）、テスト装置は、周波数、電圧の大きさ、及び“Ｎ”の値をＦ／Ｖ／Ｎテーブル１０２に書き込む（ブロック１１４）。
【００６７】
ある実施形態では、テーブルに書き込まれる測定値“Ｎ”に余裕が追加される。或いは又、テーブルから読み取られた“Ｎ”に余裕を追加して“Ｎ”をフロップ１０６へ書き込んでもよい。同様に、テーブルに書き込まれた供給電圧大きさに余裕が追加されてもよいし、又はテーブルから大きさを読み取った後にローカル電力マネージャー１８により余裕が追加されてもよい。
【００６８】
次いで、図１１は、測定を遂行するための測定ユニット１００の一実施形態の動作を示すフローチャートである。測定ユニット１００は、例えば、ローカル電力マネージャー１８が測定を開始するのに応答して図１１に示す動作を遂行する。理解を容易にするためにブロックは特定の順序で示されているが、他の順序が使用されてもよい。ブロックは、測定ユニット１００内の組み合わせロジックにより並列に遂行することができる。ブロック、ブロックの組み合わせ、及び／又は全体としてのフローチャートは、複数のクロックサイクルにわたりパイプライン処理されてもよい。
【００６９】
測定ユニット１００は、フロップ１０８のカウンタをクリアし（参照番号１７０）、そしてゲート１０４Ａ−１０４Ｈの直列接続体（又は「チェーン」）へ論理的遷移を送出する（ブロック１７２）。測定ユニット１００がチェーンの出力において対応する論理的遷移をまだ検出しない場合には（判断ブロック１７４の「ノー」岐路）、測定ユニット１００は、カウンタをインクリメントし（ブロック１７６）、そして遷移を再び検出するために次のクロックサイクルを待機する（ブロック１７８）。測定ユニット１００がそれに対応する遷移を検出する場合には（判断ブロック１７４の「イエス」岐路）、測定ユニット１００は、カウンタをフロップ１０６のＮと比較し、その結果をローカル電力マネージャー１８に報告する（ブロック１８０）。
【００７０】
当業者であれば、以上の開示を完全に理解したときに、多数の変更や修正が明らかとなろう。このような変更や修正は、全て、特許請求の範囲に包含されるものとする。
【符号の説明】
【００７１】
１０：集積回路
１２：外部電力管理ユニット（ＰＭＵ）／電源
１４：ロジック回路
１６：自己校正ユニット
１８：ローカル電力マネージャー
２０：自己校正テーブル
２２：周波数／電圧（Ｆ／Ｖ）テーブル
１００：測定ユニット
１０２：Ｆ／Ｖ／Ｎテーブル
１０４Ａ−１０４Ｈ：ロジックゲート
１０６、１０８：フロップ
【図１】
0005499123.tif 000002
【図２】
0005499123.tif 000003
【図３】
0005499123.tif 000004
【図４】
0005499123.tif 000005
【図５】
0005499123.tif 000006
【図６】
0005499123.tif 000007
【図７】
0005499123.tif 000008
【図８】
0005499123.tif 000009
【図９】
0005499123.tif 000010
【図１０】
0005499123.tif 000011
【図１１】
0005499123.tif 000012
【図１２】
0005499123.tif 000013
【図１３】
0005499123.tif 000014