動的な電圧及び周波数管理
【課題】製造プロセスの全ての受け容れられる変化及び全ての許容動作温度にわたって所与の周波数で正しい動作を保証する供給電圧を決定する。
【解決手段】集積回路は、テストに不合格となるまで、各々、より低い要求供給電圧大きさで集積回路のロジック回路のテストを繰り返すように構成された自己校正ユニットを備えている。テストに合格する最も低い要求供給電圧大きさを使用して、集積回路の要求供給電圧大きさを発生する。集積回路は、集積回路のエリアにわたって物理的に分布されたロジックゲートの直列接続体と、論理的遷移をその直列接続体へ送出し、そしてそれに対応する遷移をその直列接続体の出力において検出するように構成された測定ユニットとを備えている。送出と検出との間の時間量を使用して、集積回路の供給電圧大きさを要求する。
【解決手段】集積回路は、テストに不合格となるまで、各々、より低い要求供給電圧大きさで集積回路のロジック回路のテストを繰り返すように構成された自己校正ユニットを備えている。テストに合格する最も低い要求供給電圧大きさを使用して、集積回路の要求供給電圧大きさを発生する。集積回路は、集積回路のエリアにわたって物理的に分布されたロジックゲートの直列接続体と、論理的遷移をその直列接続体へ送出し、そしてそれに対応する遷移をその直列接続体の出力において検出するように構成された測定ユニットとを備えている。送出と検出との間の時間量を使用して、集積回路の供給電圧大きさを要求する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、集積回路に係り、より詳細には、集積回路の動的な電圧及び周波数管理に係る。
【背景技術】
【0002】
単一の集積回路「チップ」に含まれるトランジスタの数が増加し、又、集積回路の動作周波数が高くなるにつれて、集積回路により消費される電力の管理の重要性が高まり続けている。電力消費を管理しない場合には、集積回路の熱要件を満足するのに(例えば、集積回路を熱限界内に保つために動作中に集積回路を充分に冷却するに必要なコンポーネントを設けるのに)非常にコストがかかるか、又は実現不能なこともある。更に、バッテリ作動装置のようなある用途では、集積回路の電力消費の管理は、受け容れられるバッテリ寿命を与えるための鍵である。
【0003】
集積回路の電力消費は、集積回路に与えられる供給電圧に関係している。例えば、多くのデジタル論理回路は、バイナリ1及びバイナリ0を各々供給電圧及び接地電圧として表す(逆の場合もある)。デジタルロジックが動作中に評価をするときに、信号は、頻繁に一方の電圧から他方の電圧へと完全に遷移する。従って、集積回路で消費される電力は、接地電圧に対する供給電圧の大きさに依存する。供給電圧を下げると、一般的には、電力消費が低くなるが、デジタル回路が動作する速度にも影響が及び、従って、所与の動作周波数(即ち、集積回路のデジタルロジックがクロックされる周波数)において誤った動作を引き起こすことがある。
【0004】
更に、トランジスタの幾何学形状は、サイズが減少し続けているので、トランジスタが電流をアクティブに導通していないときに生じる漏洩電流は、集積回路で消費される電力の大きな部分となる。所与のトランジスタで経験される漏洩電流の量は、一般的に、供給電圧の増加と共に直線的に増加する。更に、(トランジスタ幾何学形状が減少する)各々の新たな半導体製造プロセスノードでは、漏洩電流がアクティブな(ON)電流より増加する。従って、より進歩したプロセスノードが使用されるときには、漏洩電流が益々大きな問題となる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
従って、集積回路の電力消費は、集積回路への供給電圧を下げることによって管理されるが、供給電圧を下げ過ぎると、誤った動作が生じることがある。所与の動作周波数について誤った動作が生じる供給電圧の大きさは、所与の集積回路設計について部品ごとに変化する。例えば、集積回路の製造に使用される集積回路製造プロセス及び集積回路の動作温度の変化は、両方とも、誤った動作が生じる供給電圧の大きさに影響し得る。従って、供給電圧を介して電力消費を管理する試みは、製造プロセスの全ての受け容れられる変化及び全ての許容動作温度にわたって所与の周波数で正しい動作を保証する供給電圧の大きさに限定される。典型的に、所与の周波数での供給電圧は、集積回路の仕様において静的に特定される。
【課題を解決するための手段】
【0006】
一実施形態において、集積回路は、ロジック回路と、このロジック回路に結合されたローカル電力マネージャーと、自己校正ユニットとを備えている。ローカル電力マネージャーは、要求された供給電圧大きさの指示を外部電源へ送信するよう構成される。自己校正ユニットは、ロジック回路においてテストを実行し、テストに不合格になるまで各々より低い要求供給電圧大きさでテストを繰り返すよう構成される。テストに合格する最も低い要求供給電圧大きさを使用して、集積回路を動作するための要求供給電圧大きさを発生する。
【0007】
一実施形態において、方法は、ロジック回路及び自己校正ユニットを含む集積回路に対して、テストが不合格となるまで、各々、より低い要求供給電圧大きさで自己校正ユニットによりロジック回路に対してテストを繰り返すことを含む。更に、この方法は、自己校正ユニットが、テストに合格する最も低い要求供給電圧大きさを決定することを含む。更に、この方法は、自己校正ユニットが、その最も低い要求供給電圧大きさを選択して、集積回路を動作するための要求供給電圧大きさを発生することを含む。
【0008】
一実施形態において、集積回路は、集積回路の動作を実行するロジック回路により占有された集積回路のエリアにわたって物理的に分散されて、直列に接続された複数のロジックゲートと、その直列接続のうちの最初のゲート及びその直列接続のうちの最後のゲートに結合された測定ユニットとを備えている。この測定ユニットは、論理的遷移を最初のゲートへ送出し、そしてそれに対応する遷移が最後のゲートから検出されるまで時間を測定するように構成される。測定された時間を所定の時間と比較して、集積回路の供給電圧を調整する。ある実施形態では、所定の時間は、自己校正手順の間に決定されてもよい。ある実施形態では、所定の時間は、パルスが直列接続の全てのゲートに通過するのに要するクロックサイクルの数として測定されてもよい。
【0009】
ある実施形態では、方法は、集積回路の動作を実行するロジック回路により占有された集積回路のエリアにわたって物理的に分散された複数のゲートの直列接続のうちの最初のゲートへ測定ユニットが論理的遷移を送出し、そしてそれに対応する遷移が最後のゲートから検出されるまでの時間を測定ユニットが測定し、その測定された時間を所定の時間と比較して、集積回路の供給電圧を調整することを含む。
【0010】
以下、添付図面を参照して、本発明を詳細に説明する。
【図面の簡単な説明】
【0011】
【図1】集積回路の一実施形態のブロック図である。
【図2】図1に示す集積回路のテストの一実施形態を示すフローチャートである。
【図3】図1に示す自己校正ユニットの一実施形態の動作を示すフローチャートである。
【図4】集積回路の動作周波数を変更するための図1に示す集積回路の一実施形態の動作を示すフローチャートである。
【図5】一実施形態として種々の事象に応答する自己校正の遂行を示すフローチャートである。
【図6】集積回路の別の実施形態のブロック図である。
【図7】図6に示す集積回路のテストの一実施形態を示すフローチャートである。
【図8】供給電圧を要求するための集積回路の一実施形態の動作を示すフローチャートである。
【図9】集積回路の動作周波数を変更するための図6に示す集積回路の一実施形態の動作を示すフローチャートである。
【図10】図6に示す集積回路のテストの別の実施形態を示すフローチャートである。
【図11】図6に示す速度/温度比較ユニットの一実施形態の動作を示すフローチャートである。
【図12】集積回路をテストする一実施形態に使用される種々の供給電圧及びテスト電圧で動作できる部品の数を表すグラフである。
【図13】集積回路をテストする別の実施形態に使用される種々の供給電圧及びテスト電圧で動作できる部品の数を表すグラフである。
【発明を実施するための形態】
【0012】
本発明は、種々の変更や別の形態を受け容れるが、その特定の実施形態を添付図面に例示して以下に詳細に述べる。しかしながら、添付図面及び詳細な説明は、本発明をここに開示する特定の形態に限定するものではなく、逆に、特許請求の範囲に規定された本発明の精神及び範囲内に入る変更、等効物及び代替え物を全て網羅することを理解されたい。ここに使用する見出しは、編集の目的のために過ぎず、説明の範囲を限定するために使用するのではない。本明細書全体を通して使用される「してもよい(may)」という語は、許すという意味で(即ち、する潜在性を有するという意味で)使用されるもので、強制的な意味で(即ち、しなければならないという意味で)使用されるのではない。同様に、「備える(include)」「備えている(including)」及び「備える(includes)」という語も、「備えている(including)」を意味するが、それに限定されない。
【0013】
種々のユニット、回路又は他のコンポーネントは、1つ又は複数のタスクを遂行するように「構成された(configured to)」ものとして説明される。このような状況において、「構成された」とは、動作中に1つ又は複数のタスクを遂行する「回路を有する」ことを一般的に意味する構造の広い表現である。従って、ユニット/回路/コンポーネントは、そのユニット/回路/コンポーネントが現在オンでなくてもタスクを遂行するように構成することができる。一般的に、「構成された」に対応する構造を形成する回路は、ハードウェア回路、及び/又は動作を具現化するように実行できるプログラムインストラクションを記憶するメモリを含む。メモリは、スタティック又はダイナミックランダムアクセスメモリのような揮発性メモリ、及び/又は光学的又は磁気的ディスク記憶装置、フラッシュメモリ、プログラム可能なリードオンリメモリ、等の不揮発性メモリを含む。同様に、種々のユニット/回路/コンポーネントは、説明の便宜上、1つ又は複数のタスクを遂行するものとして説明する。このような説明は、「構成された」という句を含むものとして解釈されねばならない。1つ以上のタスクを遂行するように構成されたユニット/回路/コンポーネントを表現することは、特に、35U.S.C.§112パラグラフ6、ユニット/回路/コンポーネントに対する解釈、を引用しないことが意図される。
【0014】
図1には、外部電力管理ユニット(PMU)/電源12に結合された集積回路10の一実施形態のブロック図が示されている。ここに示す実施形態では、集積回路10は、ロジック回路14、自己校正ユニット16、ローカル電力マネージャー18(自己校正テーブル20を含む)、及び周波数/電圧(F/V)テーブル22を含む。自己校正ユニット16及びF/Vテーブル22は、ローカル電力マネージャー18に結合され、これは、要求された供給電圧大きさ(VDD要求)の指示をPMU/電源12へ送信するように結合される。PMU/電源12は、要求された大きさの供給電圧(VDD)を集積回路10へ与えるように結合される。集積回路10内に示されたコンポーネントは、単一の半導体基板又はチップに一体化される。
【0015】
一般的に、自己校正ユニット16は、ロジック回路14により実行されるテストを伴う制御回路を含む。テストは、ロジック回路14において既知の「臨界」タイミング経路をエクササイズすることであると意図される。臨界タイミング経路とは、入力遷移からそれに対応する出力遷移までの最高の遅延(他のタイミング経路に比して)を示すことが予想される回路を通る経路であり、従って、ロジック回路14が正しく動作する動作周波数を限定する経路である。テストの性質は、ロジック回路14の定義に基づいて変化する。例えば、ロジック回路14が1つ以上のプロセッサコアを含む場合には、テストは、プロセッサコアにより実行されるべきソフトウェアプログラムを、そのプログラムから予想される結果(例えば、シグネチャー)と共に含む。ロジック回路14が固定機能回路を含む場合には、テストは、入力信号値及び予想される出力信号値を含む。種々の実施形態では、信号値及びプログラムインストラクションが組み合わせて含まれる。
【0016】
自己校正ユニット16内の回路は、ロジック回路14に対するテストを実行するように構成される(例えば、インストラクションを実行のためにプロセッサコアへ供給し、及び/又は入力信号値で信号を駆動する)。又、自己校正ユニット内の回路は、結果を予想値に対してチェックするようにも構成される。自己校正ユニット16は、テストを繰り返し、そして繰り返しに対して誤った結果が検出されるまで、繰り返しにごとにより低い供給電圧の大きさを要求するようにローカル電力マネージャー18と通信するように構成される。正しいテスト結果が検出されるところの最も低い供給電圧大きさが、要求すべき供給電圧大きさとして与えられる(又は要求されるべき大きさに到達するために最も低い供給電圧大きさにある程度の余裕が追加されてもよい)。自己校正ユニット16は、考えられる各動作周波数に対してテストを繰り返してもよいし、或いは集積回路10に対して所与の動作周波数が実際に初めて要求された(例えば、ソフトウェアにより)ときそれに応答してその所与の動作周波数に対してテストを遂行してもよい。
【0017】
自己校正ユニット20を使用することにより、ある実施形態では、より小さな余裕を使用すればよい。というのは、それが配備される特定装置に設置される集積回路10で生じる自己校正(従って、その余裕で考慮されるべきあるファクタ、例えば、電源12の変動、ボード設計、集積回路10のパッケージ、等)が比較的固定されるからである。更に、製造テストにおいて考えられる最も低い供給電圧をテストするのではなくて、そのときにより少ない供給電圧大きさをテストすればよく、従って、ある実施形態では、製造テスト時間を短縮することができる。更に、自己校正ユニット16は、いつでも作動でき、従って、ある実施形態では、集積回路10におけるエージング作用を自動的に調整することができる。
【0018】
1つの実施形態では、ローカル電力マネージャー18は、それにより自己校正ユニット16によって与えられる供給電圧大きさを自己校正テーブル20に記憶する。この自己校正テーブル20は、ランダムアクセスメモリ、クロック型記憶装置、例えば、レジスタ、又は他の揮発性メモリでよい。或いは又、不揮発性メモリ、例えば、プログラム可能なリードオンリメモリ、フラッシュメモリ、等を使用してもよい。その後、所与の動作周波数について自己校正テーブル20のエントリが検出された場合には、そのエントリに記録された供給電圧大きさがローカル電力マネージャー18により要求される。
【0019】
F/Vテーブル22は、集積回路10の各動作周波数及びその周波数に対する対応供給電圧大きさを各々記憶する複数のエントリを含む。動作周波数は、ロジック回路14内のクロック型記憶装置へ供給されるクロックのための周波数である。集積回路10が動作するところの周波数のセットがある(そしてそのセット内の周波数間の切り換えは、例えば、電力管理、熱管理、等を行えるようにするために、集積回路10によってサポートされる。F/Vテーブル22は、集積回路10の製造テスト中に(例えば、ウェハテストのような、集積回路をパッケージングする前に)書き込まれたスタティックテーブルでよい。他の実施形態では、テストは、装置に含ませるために集積回路10を販売する前の時点、又はそのような装置に集積回路10を含ませる前の時点で遂行されてもよい。更に別の実施形態では、F/Vテーブル22は、集積回路10を含む装置を初めて使用する前に遂行される自己校正中に書き込まれてもよい。従って、F/Vテーブル22の各周波数に対して決定される供給電圧大きさは、パッケージの電気特性が電圧の大きさを変化させる場合でも正しい動作を保証し、熱的変動を考慮し(例えば、制御された温度でテストを遂行し、動作温度は、その温度より高くても低くてもよい)、集積回路の予想寿命中のエージング作用を考慮する、等々のために、顕著なガードバンドが関連付けられている。
【0020】
ローカル電力マネージャー18は、外部電源(例えば、PMU/電源12)から供給電圧大きさを要求するように構成された回路を備えている。上述したように、自己校正テーブル20のエントリが所与の動作周波数に対して検出された場合には、ローカル電力マネージャー18は、そのエントリに記録された供給電圧大きさを要求する。自己校正テーブル20にエントリが見つからない場合には、ローカル電力マネージャー18は、所与の動作周波数についてF/Vテーブル22を読み取り、そしてPMU/電源12からその供給電圧大きさを要求する(図1のVDD要求)。この要求は、任意の望ましい形態で表すことができる。例えば、この要求は、複数のビットより成り、種々の供給電圧大きさは、その複数のビットの異なるエンコーディングが各々指定されたサポートされる大きさの範囲内である。
【0021】
ローカル電力マネージャー18は、動作周波数間の切り換えを制御するようにも構成される。例えば、ローカル電力マネージャー18は、新たな動作周波数を選択するためにソフトウェアにより書き込むことのできるレジスタ又は他のファシリティを含む。ローカル電力マネージャー18は、書き込みを検出し、そして現在動作周波数から新たに要求された動作周波数への遷移を管理する。この遷移は、要求された供給電圧を変更し、クロック回路の動作を変更し(例えば、集積回路10のクロックを発生する位相固定ループ(PLL)を再ロックし)、等々を含む。従って、遷移の詳細は、一実施形態では、(例えば、遷移が完了したかどうか調べるためのチェックすら行わずに)単に新たな周波数を要求して継続するソフトウェアから抽出される。
【0022】
F/Vテーブル22は、任意の望ましい形態で書き込むことができる。例えば、テーブルの各エントリは、(例えば、エントリにおいて複数のビットとしてエンコードされた)望ましい電圧大きさのエントリにおける指示)を永久的に記憶するために選択的に飛ばすことのできるヒューズを含む。他の実施形態では、他の不揮発性記憶装置が使用されてもよい。F/Vテーブル22は、集積回路10を含む装置のファームウェアへ更新により書き込まれる不揮発性メモリを含んでもよい。
【0023】
ある実施形態では、自己校正ユニット16により実行されるテストは、プログラム可能であり、更新することができる。このような実施形態は、より多くのデータが利用できるようになったときにテストを変更することができる。例えば、以前に識別された臨界経路以外の経路が、集積回路10を正しく動作する供給電圧を支配し、又はそれに強く影響してもよい。又、テストは、新たに発見された臨界経路を含むように更新されてもよい。更に、テストは、ある実施形態では、テスト中に実行すべきより適切なプログラムを含むように更新されてもよい。
【0024】
ロジック回路14は、一般的に、集積回路10が設計されたところの動作を具現化する回路を含んでもよい。例えば、設計が1つ以上のプロセッサを含む場合には、ロジック回路14は、プロセッサのオペレーション(例えば、インストラクションフェッチ、デコード、実行及び結果の書き込み)を具現化する回路を含む。プロセッサは、種々の実施形態において、汎用プロセッサ及び/又はグラフィックプロセッサを含む。設計が周辺インターフェイスへのブリッジを含む場合には、ロジック回路14は、ブリッジのオペレーションを具現化する回路を含む。設計が、パケットインターフェイス、ネットワークインターフェイス、等の他の通信特徴を含む場合には、ロジック回路14は、それに対応する特徴を具現化する回路を含む。集積回路10は、一般的に、オペレーションのセットを与えるように設計される。一般的に、ロジック回路14は、次のもの、即ち、メモリアレイ、組み合わせロジック、状態マシン、フロップ、レジスタ、他のクロック型記憶装置、カスタムロジック回路、等、の1つ以上の組み合わせを含む。
【0025】
PMU/電源12は、一般に、入力電圧要求により指示された大きさの供給電圧を発生することのできる回路を含む。この回路は、例えば、1つ以上の電圧レギュレータ又は他の電源を含む。又、PMU/電源12は、全体として、(集積回路10を含む)システムのための電力管理回路も含む。
【0026】
前記説明は、供給電圧大きさを要求することについて述べ、そしてPMU/電源12がその要求された大きさの電圧を供給するものであったが、1つの要求/供給電圧しかないことを意味するものではない。ある所与の時間に複数の供給電圧が要求され供給されることがある。例えば、ロジック回路14内の組み合わせロジック回路及びメモリ回路のための個別の供給電圧がある。集積回路10内には、別々にパワーアップ及びパワーダウンされる複数の電圧ドメインがあり、各ドメインは、別々の要求を含む。ローカル電力マネージャー18は、ロジック回路14とは個別に電力供給される。1つ以上の供給電圧のセットが要求され供給されることがある。
【0027】
前記説明では、供給電圧の大きさが要求される、と称され、その要求された大きさの供給電圧が供給される。供給電圧の大きさが基準(例えば、集積回路10の接地点、時々、VSSと称される)に対して測定される。以下の説明の便宜上、電圧は他の電圧より大きいか又は小さいと称される。同様に、ここでは、電圧の測定とも称される。このような場合に、電圧の大きさは、他の電圧より大きい(又は小さい)或いは測定されたとなる。
【0028】
図2を参照すれば、図1に示された集積回路10を、パッケージングの前にテストする一実施形態を示すフローチャートが示されている。図2に示されたブロックは、集積回路10の製造中にテスト装置(例えば、ウェハテスター)において遂行される。
【0029】
テストは、集積回路10が比較的高速であるか、比較的低速であるか、等、を推定するために種々の測定を使用して集積回路10のおおよその特性をテストすることにより開始される(ブロック30)。例えば、一実施形態では、おおよその特性は、集積回路10が静止状態にある間に集積回路10への電流をテストすることを含む(しばしば“Iddq”テストと称される)。高いIddq測定値は、高い漏洩を指示する(例えば、「高速プロセス」)。低いIddq測定値は、低い漏洩を指示する(例えば、「低速」プロセス。Iddqテストは、例えば、供給電圧を集積回路10の最大許容値にセットして遂行される。おおよその特性(及び集積回路10のインスタンスをテストする種々の結果)から、テスト供給電圧の比較的小さなセットが選択される。即ち、同様のおおよその特性を有する以前の部品に対して信頼性ある動作を与える供給電圧に基づいて、テスト電圧の小さなセットが選択される(ブロック32)。例えば、一実施形態では、3つのテスト電圧のセットが選択される。図12は、高速プロセス(図12の左側)から低速プロセス(図12の右側)への部品の分布を表すグラフである。テスト電圧は、一例では、図12に示したように、V1、V2及びV3である。
【0030】
テスト装置は、集積回路10をパワーアップし(例えば、最も高いテスト電圧で)そしてテスト周波数(集積回路10の動作がサポートされる周波数の1つ)をセットする(ブロック34)。テスト装置は、テスト電圧の各セットに対して集積回路10において1つ以上のテストパターンを実行し(ブロック36)、そして全てのテストパターンが合格となった(即ち、各パターンに対して正しい結果が得られた)ところの最も低いテスト電圧を選択する(ブロック38)。テスト周波数がもっとある(例えば、まだテストされていない集積回路10のサポートされた動作周波数がもっとある)場合には(判断ブロック40の「イエス」岐路)、次の周波数が選択されてテストされる(ブロック34、36及び38)。テスト電圧のセットは、各サポートされた動作周波数に対してテストされるべき異なる電圧を含んでもよいし、又は各サポートされた動作周波数に対して少なくとも1つの合格供給電圧が予想されるように選択されてもよい。テスト周波数が尽きると(判断ブロック40の「ノー」岐路)、テスト装置は、周波数及び電圧の大きさをF/Vテーブル22に書き込む(ブロック42)。例えば、サポートされた周波数及びそれに対応する供給電圧大きさを表すために、ヒューズが飛ばされてもよい。
【0031】
テスト電圧の数に制限があるので、テストプロセスは、集積回路10の特定のインスタンスの正しい動作を生じる最も低い供給電圧を識別しないことがある。しかしながら、テスト装置における時間を制限することができ、これは、一般的に重要であると共に、特に、集積回路10が大量に製造されることが予想される場合に重要である。
【0032】
図3は、自己校正を遂行するための自己校正ユニット16(及びローカル電力マネージャー18)の一実施形態の動作を示すブロック図である。自己校正は、以下に詳細に述べるように、種々の時間に遂行される。理解を容易にするためにブロックは特定の順序で示されているが、他の順序が使用されてもよい。ブロックは、自己校正ユニット16及び/又はローカル電力マネージャー18内の組み合わせロジック回路において並列に遂行することができる。ブロック、ブロックの組み合わせ、及び/又は全体としてのフローチャートは、複数のクロックサイクルにわたりパイプライン処理されてもよい。
【0033】
自己校正ユニット16は、自己校正プロセスが遂行されることを指示するためにローカル電力マネージャー18と通信する。或いは又、ローカル電力マネージャー18が自己校正プロセスを開始してもよく、従って、自己校正が処理中であることが分かる。いずれにせよ、ローカル電力マネージャー18は、テスト周波数としてF/Vテーブル22に与えられる供給電圧大きさを要求する(ブロック50)。集積回路10によりサポートされる各動作周波数は、例えば、最も低い周波数で始まるテスト周波数である。ローカル電力マネージャー18は、テスト周波数をセットし(ブロック52)、そして集積回路がそのテスト周波数に対して安定化するのを待機する(例えば、PLLロック時間及び/又はPMU/電源12からの電圧に対する安定化時間)。自己校正ユニット16は、自己校正テストを実行し(ブロック54)、そしてロジック回路14が正しい結果を発生するか(合格であるか)、しないか(不合格であるか)を決定する(判断ブロック56)。テストが合格の場合は(判断ブロック56の「イエス」岐路)、自己校正ユニット16は、ローカル電力マネージャー18に通知し、これは、次に低い供給電圧を要求し(ブロック58)、そして再びテストが遂行される(ブロック54及び56)。テストに対して不合格の結果が検出されるまでテストが繰り返される(ブロック54、56及び58)。不合格が検出された場合には(判断ブロック56の「ノー」岐路)、ローカル電力マネージャー18は、最も低い合格供給電圧の大きさを自己校正テーブル20に記録する(ブロック60)。ある実施形態では、自己校正テーブルに記録されるべき電圧の大きさに到達するために、最も低い合格供給電圧に余裕が追加される。或いは又、供給電圧を要求するときに余裕を追加してもよい。自己校正されるべきテスト周波数がもっとある場合には(判断ブロック62の「イエス」岐路)、自己校正プロセスは、次の周波数のためにブロック50に復帰する。さもなければ(判断ブロック62の「ノー」岐路)、自己校正プロセスは、終了となる。
【0034】
図4は、(例えば、集積回路10で実行されるソフトウェアからの、又は集積回路10を含むシステム内のどこかからの)動作周波数を切り換える要求に応答するローカル電力マネージャー18の一実施形態の動作を示すフローチャートである。理解を容易にするためにブロックが特定の順序で示されているが、他の順序が使用されてもよい。これらブロックは、ローカル電力マネージャー18内の組み合わせロジック回路において並列に実行されてもよい。ブロック、ブロックの組み合わせ、及び/又は全体としてのフローチャートは、複数のクロックサイクルにわたりパイプライン処理されてもよい。
【0035】
ローカル電力マネージャー18は、新たな(要求された)動作周波数に対応するエントリに対して自己校正テーブル20をチェックする(判断ブロック70)。エントリが見つかった場合には(判断ブロック70の「イエス」岐路)、ローカル電力マネージャー18は、自己校正テーブル20に示された大きさの供給電圧を要求する(ブロック72)。ローカル電力マネージャー18は、新たな動作周波数をセットし(ブロック74)、そして任意であるが、具現化に基づいてクロック回路が新たな動作周波数にロックするのを待機する(ブロック76)。他方、要求された周波数に対して自己校正テーブル20にエントリがない場合には(判断ブロック70の「ノー」岐路)、ローカル電力マネージャー18は、その要求された周波数に対して自己校正を実行すべきかどうか決定する(判断ブロック78)。例えば、図3のフローチャートは、唯一のテスト周波数として要求された周波数で遂行されてもよい。周波数切り換え中に自己校正を遂行すべきかどうかに影響するファクタは、ロジック回路14の現在ワークロード、システムの全体的な環境(例えば、温度、残りのバッテリ寿命、等)を含む。例えば、ロジック回路14が複数のプロセッサコアを含み、そしてコアの1つがアイドル状態である場合には、そのアイドルのプロセッサコアにおいて自己校正が実行される。システムがバッテリ電力で動作し、そして残りのバッテリ寿命が短い場合には、自己校正を実行すると、望ましい以上のバッテリ電力を消費することがある。
【0036】
ローカル電力マネージャー18が自己校正を実行すべきと決定した場合には(判断ブロック78の「イエス」岐路)、ローカル電力マネージャー18は、自己校正を遂行するために自己校正ユニット16を呼び出す(ブロック80)。次いで、ローカル電力マネージャー18は、(自己校正の完了後に)自己校正テーブル20に指示された供給電圧を要求し(ブロック72)、新たな動作周波数をセットし(ブロック74)、そして任意であるが、ロックを待機する(ブロック76)。
【0037】
ローカル電力マネージャー18が自己校正を実行すべきでないと決定した場合には(判断ブロック78の「ノー」岐路)、ローカル電力マネージャー18は、F/Vテーブル22を読み取って供給電圧大きさを得、そしてその供給電圧大きさを要求する(ブロック82)。ローカル電力マネージャー18は、新たな周波数をセットし、そして任意であるが、ロックを待機する(ブロック74及び76)。
【0038】
図4の実施形態において、自己校正は、自己校正テーブル20のエントリが見つからないところの要求された動作周波数に応答して遂行されてもよい。この動作に加えて又はそれに代わって、自己校正は、1つ以上の他の時点で呼び出されてもよい(例えば、一実施形態について図5のフローチャートに示すように)。図5に示すフローチャートは、ハードウェアで具現化されてもよいし、ソフトウェアで具現化されてもよいし、及び/又はその組み合わせで具現化されてもよい。
【0039】
集積回路10を含むシステムが(例えば、システムを購入した顧客により)初めてブートされる場合に(判断ブロック90の「イエス」岐路)、集積回路10は、自己校正を実行する(ブロック92)。一般的に、システムをブートすることは、システムをパワーオンしてシステムを初期化し動作を開始することを指す。ブートがシステムの最初のブートであるという決定は、種々の形態でなされる。例えば、システムが初めてブートされるかどうか指示するフラグがシステムの不揮発性メモリに記憶されてもよい。このフラグは、システムにおいてブートコードによりチェックされ、ブートが最初のブートである場合にはブートコードの終わりにフラグの状態を変更し、その後のブートが最初のブートとして検出されないようにしてもよい。例えば、フラグは、最初にクリアなビットで、初めてのブートの後にセットされてもよい(又はその逆でもよい)。ある実施形態では、完全システムリセット(例えば、ユーザが装置への1つ以上の入力をアクチベートすることにより開始されるハードリセット)が「最初のブート」フラグをクリアし、次のブートにおいて自己校正を行わせてもよい。このような動作は、ある実施形態では、装置の機能を改善する。例えば、装置が「凍結」されるか、さもなければ、機能不良であるために、ユーザがハードリセットを開始する場合、エラーが集積回路10の機能不良による(例えば、自己校正の供給電圧大きさが低すぎることによる)ものであれば、自己校正でエラーを軽減することができる。更に、装置がネットワーク(例えば、インターネット)に接続された場合には、装置の製造者から自動的に装置に更新された校正プログラム又は手順をダウンロードすることができる。その更新に応答して自己校正が実行される。
【0040】
それとは別に又はそれに加えて、システムは、所与のワークロードが初めて実行されることを決定し(判断ブロック94の「イエス」岐路)、そしてそれに応答して自己校正を実行する(ブロック92)。所与のワークロードが初めて実行されるという決定は、種々の形態で具現化することができる(例えば、最初のブートに関して上述したのと同様に、不揮発性記憶装置におけるワークロードごとのフラグ)。例えば、ワークロードが著しく変化するシステムにおいて、異なるワークロードの検出を使用してもよい。例えば、システムは、移動電話、音楽プレーヤ、ウェブブラウザとして機能する移動装置であって、種々の他のコンピューティングタスクを遂行してもよい。又、ワークロードは、実質的に異なるもので、集積回路10からの異なる量の遂行を必要としてもよい。従って、各ワークロードを自己校正することで、付加的な電力節約が生じる(例えば、軽いロードは、低い動作温度を生じ、これは、厳しいワークロードで許されるよりも低い供給電圧大きさを許す)。
【0041】
それとは別に又はそれに加えて、システムは、ある量だけエージングしたことを決定し(判断ブロック96の「イエス」岐路)、そしてそれに応答して自己校正を実行する(ブロック92)。集積回路10(及び/又は集積回路10を含む装置)のエージングに応答して自己校正を遂行することで、チッププロセスエージング作用又は他のエージング作用を補償するように集積回路10の要求された供給電圧大きさを調整することができる。この形態では、エージング作用を考慮するために要求された供給電圧大きさに余裕を追加する必要がない(集積回路10がエージングするときに再校正することにより既にそれが考慮されているので)。集積回路10のエージは、種々の形態で測定される。例えば、エージは、カレンダー時間に基づき最初のブートの日付から測定される。又、エージは、最初のブートから動作の時間に関して測定される。又、エージは、必要に応じて、時間又はクロックサイクルに関して測定される。又、他の実施形態では、エージは、製造の日付に対して測定される。いずれのケースでも、複数の異なるエージにおいて(例えば、6か月ごとに一度、年に一度、等)、自己校正が遂行される。更に別のケースでは、システムが動作している間に自己校正を動的に遂行して、温度作用を補償する上で助けとすることができる。自己校正呼び出しの希望のセットを種々の実施形態において具現化することができる。
【0042】
図6は、集積回路10及びPMU/電源12の別の実施形態のブロック図である。図1の実施形態と同様に、図6の集積回路10の実施形態は、ロジック回路14及びローカル電力マネージャー18を備えている。ある実施形態では、自己校正ユニット16及び自己校正テーブル20が含まれるが、他の実施形態は、それらの特徴を含まない。図6の実施形態では、図1のF/Vテーブル22が、ローカル電力マネージャー18に結合されたF/V/Nテーブル102に置き換えられる。このF/V/Nテーブル102は、F/Vテーブル22と同様に、周波数及びそれに対応する供給電圧大きさを記憶するエントリを含む。更に、それらエントリは、以下に詳細に述べる遅延測定値(N)を記憶する。図6の実施形態に更に示すように、集積回路10は、直列接続された測定ユニット100及びロジックゲート104A−104Hを含む。ロジックゲート104Aへの入力は、測定ユニット100に結合され、そしてロジックゲート104Hの出力も、測定ユニット100に結合される。更に、フロップ106は、予想される遅延測定値(N)を記憶し、そしてフロップ108は、カウンタ値(Ctr)を記憶する。両フロップ106及び108は、測定ユニット100に結合される。他の実施形態では、フロップ106及び108は、クロック型の記憶装置である。
【0043】
測定ユニット100は、ゲート104A−104Hの直列接続体を通る論理的遷移の伝播遅延を測定するように構成される。ゲート104A−104Hは、ロジック回路14における種々のロジックゲートと同じ設計を有する。従って、ゲート104A−104Hを通る伝播遅延は、ロジック回路14内のロジックゲートに比例しなければならない。伝播遅延を測定し、そしてそれを所定の遅延と比較することにより、ロジック回路14の動作に対する種々のファクタの作用を考慮することができる。例えば、動作温度、エージング、等の作用は、伝播遅延を測定してそれを所定の量と比較することにより検出することができる。
【0044】
伝播遅延は、望ましい単位(例えば、ナノ秒、クロックサイクル、等)で測定される。一実施形態では、伝播遅延は、ロジック回路14へ供給されるクロックの現在動作周波数においてクロックサイクルに関して測定される。従って、測定ユニット100は、論理的遷移(例えば、0から1又は1から0の遷移)をゲート104A−104Hの直列接続体の入力(即ち、図6のゲート104Aの入力)へ送出し、そしてそれに対応する遷移がその直列接続体の出力(即ち、図6のゲート104Hの出力)に検出されるまでクロックサイクルをカウントする。一実施形態では、2つの論理的遷移(例えば、0から1そして再び0へ戻る)を含むパルスが送信される。フロップ108のカウンタCtrは、論理的遷移が送出されたときにクリアされ、そしてそれに対応する遷移が検出されるまでクロックサイクルごとにインクリメントされる。フロップ106は、供給電圧が現在動作周波数をサポートする遅延を与える場合に発生すると予想される所定のクロックサイクル数(N)を記憶する。測定されたクロックサイクル数が所定数Nより大きい場合には、遅延を減少するために供給電圧が上げられる。測定されたクロックサイクル数が所定数Nより小さい場合には、遅延を増加する(そして電力消費を下げる)ために供給電圧が下げられる。
【0045】
直列接続体におけるゲートの数は、ロジック回路14に供給されるクロックのクロックサイクルにおいて評価するゲート遅延の数より著しく大きい。例えば、直列接続体におけるゲートの数は、クロックサイクルにおけるゲート遅延の数の約100倍である。従って、クロックサイクルにおいて14のゲート遅延が得られる場合には、ゲート104A−104Hの直列接続体に約1400のゲートがある。非常に多数のゲートを使用することで、ロジック回路14に実際に生じる回路遅延に対する測定遅延のマッチングを改善することができる。更に、本実施形態は、クロックサイクルに関して遅延をカウントするので、非常に多数のゲートがあると、クロックサイクルの粒度のために生じる測定エラーを減少することができる。例えば、クロックサイクル内のゲート遅延の数の100倍では、遅延における1つの全クロックサイクルのエラー(考えられる最大エラー)は、測定値の1%に過ぎない。この実施形態では100が使用されるが、他の実施形態は、より大きな数又はより小さな数(例えば、200、500、100、50、等)を使用してもよい。
【0046】
所定数Nは、集積回路の製造テスト中に測定される。所定数Nは、一般的に、ゲートの直列接続体を形成するのに使用されるゲート遅延の数の倍数(例えば、前記例では100)に近いことが予想されるが、その数から若干変化してもよい。一実施形態では、所定数Nは、所与の動作周波数に対する静的な供給電圧大きさと共にF/V/Nテーブル102に記憶される。種々の実施形態において、1つのNがテーブルに記憶されてもよいし、又は動作周波数ごとに1つのNが(その動作周波数に対応するエントリに)あってもよい。
【0047】
ゲート104A−104Hは、ロジック回路14により占有された集積回路10のエリアにわたり物理的に分布されてもよい。従って、集積回路チップの表面エリアにわたって生じるプロセス特性及び/又は動作温度の変化は、伝播遅延で表される。即ち、1つ以上のゲート104A−104Hの各セットは、それらのゲート104A−104Hが配置された物理的エリアに対してローカルの動作温度及び/又はプロセス特性によって影響される。一実施形態では、ゲート104A−104Hは、集積回路10の配線層を切り換えることによりロジック回路14のロジックエラーを修復できるように典型的に集積回路10全体にわたって含まれた「スペアゲート」から選択される。即ち、スペアゲートは、最初はロジック回路14に配線されておらず、使用されない。ロジックのエラーが検出された場合に、スペアゲートをロジック回路14に配線して、正しいロジック機能を発生することができる。正しいロジック機能を発生できる確率を高くするために、スペアゲートには種々の異なるロジックゲートを含ませることができる。従って、未使用のスペアゲートは種々のゲートを有し、それらを一緒に配線して、ロジック回路14と同様のスケールのゲート104A−104Hの直列接続体を形成することができる。スペアゲートからゲート104A−104Hを具現化することにより、集積回路10により消費される半導体エリアにゲート104A−104Hを追加しなくてよい。
【0048】
加えて、ロジックゲート104A−104Hの直列接続体を使用して遅延を感知するのは、主として、デジタル回路である。従って、回路の使用は、ある実施形態では、アナログ回路に比較して、比較的簡単で且つ低電力である。
【0049】
測定ユニット100は、少なくとも、遷移を送出しそして伝播遅延を測定するよう構成された回路を含む。ある実施形態では、測定ユニット100は、測定をいつ行うべきか決定するように構成された回路、及び/又は伝播遅延を予想値と比較するように構成された回路も備えている。或いは又、その決定は、ローカル電力マネージャー18において行われてもよいし、又はソフトウェアで行われてもよい。
【0050】
一般的に、ロジックゲートは、1つ以上の入力を受け取り、それら入力に基づいてロジック機能を遂行して1つ以上の出力を与えるように構成された回路を含む。1つ以上のこのようなゲートが、ゲート104A−104Hの各セットに含まれる。ゲート104A−104Hは、図6では、図面の便宜上、ロジック回路14の周囲付近に現れるが、これらゲートは、一般的に、上述したように、ロジック回路14を通して分散されることに注意されたい。
【0051】
図6の前記説明は、供給電圧大きさを要求することについて述べ、そしてPMU/電源12がその要求された大きさの電圧を供給するというものであったが、この説明は、要求され/供給される電圧が1つしかないことを意味するものではない。所与の時点において複数の供給電圧を要求し供給することができる。例えば、組み合わせロジック回路、及びロジック回路14内のメモリ回路に対して別々の供給電圧がある。集積回路10内には、別々にパワーアップ及びパワーダウンでき、且つ別々の測定ユニット、及びロジックゲートの直列チェーンを有する複数の電圧ドメインがある。このような各ドメインは、個別の要求を含む。ローカル電力マネージャー18は、ロジック回路14から別々に電力供給される。1つ以上の供給電圧のセットが要求され、供給される。更に、ある実施形態では、異なる形式の遅延をモデリングするために、2つ以上のゲートチェーンが電圧ドメイン内で具現化される。例えば、ロジックゲートの遅延及びレジスタファイルの遅延が別々にモデリングされる。
【0052】
図7は、図6に示す集積回路10をパッケージングの前にテストする一実施形態を示すフローチャートである。図7に示されたブロックは、集積回路10の製造中にテスト装置(例えば、ウェハテスター)において遂行される。
【0053】
図2の実施形態と同様に、テストは、Iddqテストのように、集積回路10のおおよその特性をテストすることにより開始され(ブロック30)、そしてテスト電圧のセットが選択される(ブロック32)。テスターは、第1のテスト周波数をセットし(ブロック34)、そして供給電圧としてテスト電圧セットにおける各電圧に対するテストパターンを実行する(ブロック36)。この実施形態では、テストは、測定ユニット100をアクチベートすることを含む。テスト電圧ごとに、テスターは、テスト中に測定ユニット100により測定された遅延のクロックサイクルの数“N”(即ち、カウンタフロップ108の値)を読み取る。テスターは、テスト電圧ごとに測定値Nを記録する(ブロック110)。次いで、テスターは、テストに合格する最小供給電圧大きさ及びそれに対応する“N”を選択する(ブロック112)。
【0054】
テスト周波数がもっとある(例えば、まだテストされていない集積回路10のサポートされた動作周波数がもっとある)場合には(判断ブロック40の「イエス」岐路)、次の周波数が選択されてテストされる(ブロック34、36、110及び112)。テスト電圧のセットは、各サポートされた動作周波数に対してテストされるべき異なる電圧を含んでもよいし、又は各サポートされた動作周波数に対して少なくとも1つの合格供給電圧が予想されるように選択されてもよい。テスト周波数が尽きると(判断ブロック40の「ノー」岐路)、テスト装置は、周波数、電圧の大きさ、及び“N”の値をF/V/Nテーブル102に書き込む(ブロック114)。
【0055】
ある実施形態では、テーブルに書き込まれるべき測定値“N”に余裕が追加される。或いは又、フロップ106に“N”を書き込むためにテーブルから読み取られた“N”に余裕が追加されてもよい。同様に、テーブルに書き込まれる供給電圧大きさに余裕が追加されてもよいし、又はテーブルから大きさを読み取った後にローカル電力マネージャー18に余裕が追加されてもよい。
【0056】
図8は、供給電圧大きさを調整すべきかどうか決定するための図6に示す集積回路10(及びより詳細には、測定ユニット100及びローカル電力マネージャー18)の一実施形態の動作を示すフローチャートである。図8の動作は、集積回路10が動作している間に周期的に遂行される(例えば、一実施形態では、システムの熱慣性に基づいてほぼ10マイクロ秒ないし1ミリ秒に一度)。図8の動作は、ワークロードの変更(例えば、電話から音楽プレーヤ又は移動インターネットアクセス装置へ)の後に遂行される。又、図8の動作は、動作周波数切り換えの一部分として遂行されてもよい。理解を容易にするためにブロックは特定の順序で示されているが、他の順序が使用されてもよい。ブロックは、測定ユニット100/ローカル電力マネージャー18内の組み合わせロジック回路により並列に遂行することができる。ブロック、ブロックの組み合わせ、及び/又は全体としてのフローチャートは、複数のクロックサイクルにわたりパイプライン処理されてもよい。
【0057】
ローカル電力マネージャー18は、測定ユニット100をアクチベートし、このユニットは、ゲート104A−104Hの直列接続体における現在伝播遅延(“N”)を感知する(ブロック120)。ある実施形態では、ローカル電力マネージャー18及び/又は測定ユニット100は、結果をフィルタリングする(ブロック122)。より詳細には、例えば、フィルタリングは、連続する測定と測定との間のNの値の振動を検出することを含む。この振動は、伝播遅延がクロックサイクルの整数に近い(従って、あるときには、M個のクロックサイクルで捕捉され、そして他のときには、M+1個のクロックサイクルで捕捉される)ために発生する。又、この振動は、要求される供給電圧が振動式に増加及び減少されるために発生する。
【0058】
測定値“N”がF/V/Nテーブル102からの“N”より大きいことを測定ユニット100が検出した場合には(判断ブロック124の「イエス」岐路)、ローカル電力マネージャー18は、PMU/電源12へ送られる要求された供給電圧大きさを増加する(ブロック126)。例えば、次に高い供給電圧大きさが要求される。測定値“N”がF/V/Nテーブル102からの“N”より小さいことを測定ユニット100が検出した場合には(判断ブロック128の「イエス」岐路)、ローカル電力マネージャー18は、PMU/電源12へ送られる要求された供給電圧大きさを減少する(ブロック130)。図8の動作は、要求された供給電圧大きさが安定するまで繰り返されるか、又は必要に応じて、次の測定時間に繰り返される。
【0059】
図9は、集積回路10の周波数を切り換える要求に応答する集積回路10(及びより詳細には、ローカル電力マネージャー18及び測定ユニット100)の一実施形態の動作を示すフローチャートである。理解を容易にするためにブロックは特定の順序で示されているが、他の順序が使用されてもよい。ブロックは、測定ユニット100/ローカル電力マネージャー18内の組み合わせロジック回路により並列に遂行することができる。ブロック、ブロックの組み合わせ、及び/又は全体としてのフローチャートは、複数のクロックサイクルにわたりパイプライン処理されてもよい。
【0060】
周波数を切り換える要求が現在動作周波数からの増加である場合には(判断ブロック140の「イエス」岐路)、フロップ106のNの値が新たな(要求された)周波数と古い(現在)周波数との比でスケーリングされる(ブロック142)。例えば、現在周波数が1GHzであり、新たな周波数が1.5GHzである場合には、Nの値は、1.5でスケーリングされる。ローカル電力マネージャー18及び測定ユニット100は、測定ユニット100からの測定値NがスケーリングされたNに一致するまで図8の供給電圧調整プロセスを繰り返す(ブロック144)。ある実施形態では、増加された供給電圧大きさが、新たに切り換えられた周波数をサポートするのに充分であることを確保するために、スケーリングされたNに余裕が追加される。スケーリングされたNに一致すると、ローカル電力マネージャー18は、新たな周波数をセットし(ブロック146)、そしてクロック発生回路が新たな周波数にロックするのを待機する(ブロック148)。新たなNがF/V/Nテーブル102から読み取られ、そしてフロップ106に書き込まれる(ブロック150)。
【0061】
周波数を切り換える要求が現在動作周波数からの減少である場合には(判断ブロック140の「ノー」岐路)、ローカル電力マネージャー18は、Nをスケーリングして供給電圧を調整する(ブロック142及び144)ことなく、新たな周波数をセットする(ブロック146)。供給電圧は、高い現在周波数をサポートするに充分なほど既に高いので、集積回路10は、新たな周波数で正しく動作する。その後の周期的な測定及び調整(例えば、図8)で電圧を下げる。他の実施形態では、Nがスケーリングされ、そして低い新たな周波数に対して電圧が調整され(ブロック142、144)、この場合、供給電圧に対する調整は、減少である。
【0062】
ある実施形態では、供給電圧大きさを調整するプロセス(ブロック144)は、新たな周波数に対してF/V/Nテーブル102(又は自己校正テーブル20)から供給電圧大きさを読み取ることで始まり、そしてテーブルから供給電圧大きさを要求することでプロセスを開始する。
【0063】
次いで、図10は、図6に示す集積回路10をパッケージングの前にテストする別の実施形態を示すフローチャートである。図10に示されたブロックは、集積回路10の製造中にテスト装置(例えば、ウェハテスター)において遂行される。
【0064】
図2の実施形態と同様に、テストは、Iddqテストのように、集積回路10のおおよその特性をテストすることで開始される(ブロック30)。更に、測定ユニット100は、供給電圧をその考えられる最大値(集積回路10の仕様で)にセットした状態でアクチベートされる(ブロック160)。考えられる最大値におけるNの測定値は、集積回路10の「速度」の指示であり、テスト電圧のセットを選択するのに使用される(ブロック162)。この形態において、選択されたテスト電圧は、所与の周波数に対する最適値に近いものであり、これは、短いテスト時間内に微粒度の電圧テストを行って、集積回路10の最適値に近い供給電圧大きさを生じることができる。従って、集積回路10は、供給電圧がテーブル内の電圧にセットされたときには所与の周波数において電力をあまり消費しない(最適に至らないテスト戦略に比して)。更に、比較的小さなセットの電圧を使用してテスト時間を短縮することができる。例えば、図13は、高速プロセス(図13の左側)から低速プロセス(図13の右側)への部品の分布を示すグラフである。最大電圧(最も右側の点線)を使用すると、Nを測定することができる。測定値Nに基づき、予想動作点付近のテスト電圧の小さなセットを選択し、そしてそれらの電圧で集積回路10をテストすることができる(図13の底部の大括弧)。
【0065】
その後、図7の実施形態と同様に、第1のテスト周波数をセットし(ブロック34)、そして供給電圧としてテスト電圧のセットにおける各電圧に対してテストパターンを実行する(ブロック36)。テストは、測定ユニット100をアクチベートすることを含む。テスト電圧ごとに、テスターは、テスト中に測定ユニット100により測定された遅延のクロックサイクル数“N”(即ち、カウンタフロップ108の値)を読み取る。テスターは、テスト電圧ごとに測定値Nを記録する(ブロック110)。次いで、テスターは、テストに合格する最小の供給電圧大きさ及びそれに対応する“N”を選択する(ブロック112)。
【0066】
テスト周波数がもっとある(例えば、まだテストされていない集積回路10のサポートされた動作周波数がもっとある)場合には(判断ブロック40の「イエス」岐路)、次の周波数が選択されてテストされる(ブロック34、36、110及び112)。テスト電圧のセットは、各サポートされた動作周波数に対してテストされるべき異なる電圧を含んでもよいし、又は各サポートされた動作周波数に対して少なくとも1つの合格供給電圧が予想されるように選択されてもよい。テスト周波数が尽きると(判断ブロック40の「ノー」岐路)、テスト装置は、周波数、電圧の大きさ、及び“N”の値をF/V/Nテーブル102に書き込む(ブロック114)。
【0067】
ある実施形態では、テーブルに書き込まれる測定値“N”に余裕が追加される。或いは又、テーブルから読み取られた“N”に余裕を追加して“N”をフロップ106へ書き込んでもよい。同様に、テーブルに書き込まれた供給電圧大きさに余裕が追加されてもよいし、又はテーブルから大きさを読み取った後にローカル電力マネージャー18により余裕が追加されてもよい。
【0068】
次いで、図11は、測定を遂行するための測定ユニット100の一実施形態の動作を示すフローチャートである。測定ユニット100は、例えば、ローカル電力マネージャー18が測定を開始するのに応答して図11に示す動作を遂行する。理解を容易にするためにブロックは特定の順序で示されているが、他の順序が使用されてもよい。ブロックは、測定ユニット100内の組み合わせロジックにより並列に遂行することができる。ブロック、ブロックの組み合わせ、及び/又は全体としてのフローチャートは、複数のクロックサイクルにわたりパイプライン処理されてもよい。
【0069】
測定ユニット100は、フロップ108のカウンタをクリアし(参照番号170)、そしてゲート104A−104Hの直列接続体(又は「チェーン」)へ論理的遷移を送出する(ブロック172)。測定ユニット100がチェーンの出力において対応する論理的遷移をまだ検出しない場合には(判断ブロック174の「ノー」岐路)、測定ユニット100は、カウンタをインクリメントし(ブロック176)、そして遷移を再び検出するために次のクロックサイクルを待機する(ブロック178)。測定ユニット100がそれに対応する遷移を検出する場合には(判断ブロック174の「イエス」岐路)、測定ユニット100は、カウンタをフロップ106のNと比較し、その結果をローカル電力マネージャー18に報告する(ブロック180)。
【0070】
当業者であれば、以上の開示を完全に理解したときに、多数の変更や修正が明らかとなろう。このような変更や修正は、全て、特許請求の範囲に包含されるものとする。
【符号の説明】
【0071】
10:集積回路
12:外部電力管理ユニット(PMU)/電源
14:ロジック回路
16:自己校正ユニット
18:ローカル電力マネージャー
20:自己校正テーブル
22:周波数/電圧(F/V)テーブル
100:測定ユニット
102:F/V/Nテーブル
104A−104H:ロジックゲート
106、108:フロップ
【技術分野】
【0001】
本発明は、集積回路に係り、より詳細には、集積回路の動的な電圧及び周波数管理に係る。
【背景技術】
【0002】
単一の集積回路「チップ」に含まれるトランジスタの数が増加し、又、集積回路の動作周波数が高くなるにつれて、集積回路により消費される電力の管理の重要性が高まり続けている。電力消費を管理しない場合には、集積回路の熱要件を満足するのに(例えば、集積回路を熱限界内に保つために動作中に集積回路を充分に冷却するに必要なコンポーネントを設けるのに)非常にコストがかかるか、又は実現不能なこともある。更に、バッテリ作動装置のようなある用途では、集積回路の電力消費の管理は、受け容れられるバッテリ寿命を与えるための鍵である。
【0003】
集積回路の電力消費は、集積回路に与えられる供給電圧に関係している。例えば、多くのデジタル論理回路は、バイナリ1及びバイナリ0を各々供給電圧及び接地電圧として表す(逆の場合もある)。デジタルロジックが動作中に評価をするときに、信号は、頻繁に一方の電圧から他方の電圧へと完全に遷移する。従って、集積回路で消費される電力は、接地電圧に対する供給電圧の大きさに依存する。供給電圧を下げると、一般的には、電力消費が低くなるが、デジタル回路が動作する速度にも影響が及び、従って、所与の動作周波数(即ち、集積回路のデジタルロジックがクロックされる周波数)において誤った動作を引き起こすことがある。
【0004】
更に、トランジスタの幾何学形状は、サイズが減少し続けているので、トランジスタが電流をアクティブに導通していないときに生じる漏洩電流は、集積回路で消費される電力の大きな部分となる。所与のトランジスタで経験される漏洩電流の量は、一般的に、供給電圧の増加と共に直線的に増加する。更に、(トランジスタ幾何学形状が減少する)各々の新たな半導体製造プロセスノードでは、漏洩電流がアクティブな(ON)電流より増加する。従って、より進歩したプロセスノードが使用されるときには、漏洩電流が益々大きな問題となる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
従って、集積回路の電力消費は、集積回路への供給電圧を下げることによって管理されるが、供給電圧を下げ過ぎると、誤った動作が生じることがある。所与の動作周波数について誤った動作が生じる供給電圧の大きさは、所与の集積回路設計について部品ごとに変化する。例えば、集積回路の製造に使用される集積回路製造プロセス及び集積回路の動作温度の変化は、両方とも、誤った動作が生じる供給電圧の大きさに影響し得る。従って、供給電圧を介して電力消費を管理する試みは、製造プロセスの全ての受け容れられる変化及び全ての許容動作温度にわたって所与の周波数で正しい動作を保証する供給電圧の大きさに限定される。典型的に、所与の周波数での供給電圧は、集積回路の仕様において静的に特定される。
【課題を解決するための手段】
【0006】
一実施形態において、集積回路は、ロジック回路と、このロジック回路に結合されたローカル電力マネージャーと、自己校正ユニットとを備えている。ローカル電力マネージャーは、要求された供給電圧大きさの指示を外部電源へ送信するよう構成される。自己校正ユニットは、ロジック回路においてテストを実行し、テストに不合格になるまで各々より低い要求供給電圧大きさでテストを繰り返すよう構成される。テストに合格する最も低い要求供給電圧大きさを使用して、集積回路を動作するための要求供給電圧大きさを発生する。
【0007】
一実施形態において、方法は、ロジック回路及び自己校正ユニットを含む集積回路に対して、テストが不合格となるまで、各々、より低い要求供給電圧大きさで自己校正ユニットによりロジック回路に対してテストを繰り返すことを含む。更に、この方法は、自己校正ユニットが、テストに合格する最も低い要求供給電圧大きさを決定することを含む。更に、この方法は、自己校正ユニットが、その最も低い要求供給電圧大きさを選択して、集積回路を動作するための要求供給電圧大きさを発生することを含む。
【0008】
一実施形態において、集積回路は、集積回路の動作を実行するロジック回路により占有された集積回路のエリアにわたって物理的に分散されて、直列に接続された複数のロジックゲートと、その直列接続のうちの最初のゲート及びその直列接続のうちの最後のゲートに結合された測定ユニットとを備えている。この測定ユニットは、論理的遷移を最初のゲートへ送出し、そしてそれに対応する遷移が最後のゲートから検出されるまで時間を測定するように構成される。測定された時間を所定の時間と比較して、集積回路の供給電圧を調整する。ある実施形態では、所定の時間は、自己校正手順の間に決定されてもよい。ある実施形態では、所定の時間は、パルスが直列接続の全てのゲートに通過するのに要するクロックサイクルの数として測定されてもよい。
【0009】
ある実施形態では、方法は、集積回路の動作を実行するロジック回路により占有された集積回路のエリアにわたって物理的に分散された複数のゲートの直列接続のうちの最初のゲートへ測定ユニットが論理的遷移を送出し、そしてそれに対応する遷移が最後のゲートから検出されるまでの時間を測定ユニットが測定し、その測定された時間を所定の時間と比較して、集積回路の供給電圧を調整することを含む。
【0010】
以下、添付図面を参照して、本発明を詳細に説明する。
【図面の簡単な説明】
【0011】
【図1】集積回路の一実施形態のブロック図である。
【図2】図1に示す集積回路のテストの一実施形態を示すフローチャートである。
【図3】図1に示す自己校正ユニットの一実施形態の動作を示すフローチャートである。
【図4】集積回路の動作周波数を変更するための図1に示す集積回路の一実施形態の動作を示すフローチャートである。
【図5】一実施形態として種々の事象に応答する自己校正の遂行を示すフローチャートである。
【図6】集積回路の別の実施形態のブロック図である。
【図7】図6に示す集積回路のテストの一実施形態を示すフローチャートである。
【図8】供給電圧を要求するための集積回路の一実施形態の動作を示すフローチャートである。
【図9】集積回路の動作周波数を変更するための図6に示す集積回路の一実施形態の動作を示すフローチャートである。
【図10】図6に示す集積回路のテストの別の実施形態を示すフローチャートである。
【図11】図6に示す速度/温度比較ユニットの一実施形態の動作を示すフローチャートである。
【図12】集積回路をテストする一実施形態に使用される種々の供給電圧及びテスト電圧で動作できる部品の数を表すグラフである。
【図13】集積回路をテストする別の実施形態に使用される種々の供給電圧及びテスト電圧で動作できる部品の数を表すグラフである。
【発明を実施するための形態】
【0012】
本発明は、種々の変更や別の形態を受け容れるが、その特定の実施形態を添付図面に例示して以下に詳細に述べる。しかしながら、添付図面及び詳細な説明は、本発明をここに開示する特定の形態に限定するものではなく、逆に、特許請求の範囲に規定された本発明の精神及び範囲内に入る変更、等効物及び代替え物を全て網羅することを理解されたい。ここに使用する見出しは、編集の目的のために過ぎず、説明の範囲を限定するために使用するのではない。本明細書全体を通して使用される「してもよい(may)」という語は、許すという意味で(即ち、する潜在性を有するという意味で)使用されるもので、強制的な意味で(即ち、しなければならないという意味で)使用されるのではない。同様に、「備える(include)」「備えている(including)」及び「備える(includes)」という語も、「備えている(including)」を意味するが、それに限定されない。
【0013】
種々のユニット、回路又は他のコンポーネントは、1つ又は複数のタスクを遂行するように「構成された(configured to)」ものとして説明される。このような状況において、「構成された」とは、動作中に1つ又は複数のタスクを遂行する「回路を有する」ことを一般的に意味する構造の広い表現である。従って、ユニット/回路/コンポーネントは、そのユニット/回路/コンポーネントが現在オンでなくてもタスクを遂行するように構成することができる。一般的に、「構成された」に対応する構造を形成する回路は、ハードウェア回路、及び/又は動作を具現化するように実行できるプログラムインストラクションを記憶するメモリを含む。メモリは、スタティック又はダイナミックランダムアクセスメモリのような揮発性メモリ、及び/又は光学的又は磁気的ディスク記憶装置、フラッシュメモリ、プログラム可能なリードオンリメモリ、等の不揮発性メモリを含む。同様に、種々のユニット/回路/コンポーネントは、説明の便宜上、1つ又は複数のタスクを遂行するものとして説明する。このような説明は、「構成された」という句を含むものとして解釈されねばならない。1つ以上のタスクを遂行するように構成されたユニット/回路/コンポーネントを表現することは、特に、35U.S.C.§112パラグラフ6、ユニット/回路/コンポーネントに対する解釈、を引用しないことが意図される。
【0014】
図1には、外部電力管理ユニット(PMU)/電源12に結合された集積回路10の一実施形態のブロック図が示されている。ここに示す実施形態では、集積回路10は、ロジック回路14、自己校正ユニット16、ローカル電力マネージャー18(自己校正テーブル20を含む)、及び周波数/電圧(F/V)テーブル22を含む。自己校正ユニット16及びF/Vテーブル22は、ローカル電力マネージャー18に結合され、これは、要求された供給電圧大きさ(VDD要求)の指示をPMU/電源12へ送信するように結合される。PMU/電源12は、要求された大きさの供給電圧(VDD)を集積回路10へ与えるように結合される。集積回路10内に示されたコンポーネントは、単一の半導体基板又はチップに一体化される。
【0015】
一般的に、自己校正ユニット16は、ロジック回路14により実行されるテストを伴う制御回路を含む。テストは、ロジック回路14において既知の「臨界」タイミング経路をエクササイズすることであると意図される。臨界タイミング経路とは、入力遷移からそれに対応する出力遷移までの最高の遅延(他のタイミング経路に比して)を示すことが予想される回路を通る経路であり、従って、ロジック回路14が正しく動作する動作周波数を限定する経路である。テストの性質は、ロジック回路14の定義に基づいて変化する。例えば、ロジック回路14が1つ以上のプロセッサコアを含む場合には、テストは、プロセッサコアにより実行されるべきソフトウェアプログラムを、そのプログラムから予想される結果(例えば、シグネチャー)と共に含む。ロジック回路14が固定機能回路を含む場合には、テストは、入力信号値及び予想される出力信号値を含む。種々の実施形態では、信号値及びプログラムインストラクションが組み合わせて含まれる。
【0016】
自己校正ユニット16内の回路は、ロジック回路14に対するテストを実行するように構成される(例えば、インストラクションを実行のためにプロセッサコアへ供給し、及び/又は入力信号値で信号を駆動する)。又、自己校正ユニット内の回路は、結果を予想値に対してチェックするようにも構成される。自己校正ユニット16は、テストを繰り返し、そして繰り返しに対して誤った結果が検出されるまで、繰り返しにごとにより低い供給電圧の大きさを要求するようにローカル電力マネージャー18と通信するように構成される。正しいテスト結果が検出されるところの最も低い供給電圧大きさが、要求すべき供給電圧大きさとして与えられる(又は要求されるべき大きさに到達するために最も低い供給電圧大きさにある程度の余裕が追加されてもよい)。自己校正ユニット16は、考えられる各動作周波数に対してテストを繰り返してもよいし、或いは集積回路10に対して所与の動作周波数が実際に初めて要求された(例えば、ソフトウェアにより)ときそれに応答してその所与の動作周波数に対してテストを遂行してもよい。
【0017】
自己校正ユニット20を使用することにより、ある実施形態では、より小さな余裕を使用すればよい。というのは、それが配備される特定装置に設置される集積回路10で生じる自己校正(従って、その余裕で考慮されるべきあるファクタ、例えば、電源12の変動、ボード設計、集積回路10のパッケージ、等)が比較的固定されるからである。更に、製造テストにおいて考えられる最も低い供給電圧をテストするのではなくて、そのときにより少ない供給電圧大きさをテストすればよく、従って、ある実施形態では、製造テスト時間を短縮することができる。更に、自己校正ユニット16は、いつでも作動でき、従って、ある実施形態では、集積回路10におけるエージング作用を自動的に調整することができる。
【0018】
1つの実施形態では、ローカル電力マネージャー18は、それにより自己校正ユニット16によって与えられる供給電圧大きさを自己校正テーブル20に記憶する。この自己校正テーブル20は、ランダムアクセスメモリ、クロック型記憶装置、例えば、レジスタ、又は他の揮発性メモリでよい。或いは又、不揮発性メモリ、例えば、プログラム可能なリードオンリメモリ、フラッシュメモリ、等を使用してもよい。その後、所与の動作周波数について自己校正テーブル20のエントリが検出された場合には、そのエントリに記録された供給電圧大きさがローカル電力マネージャー18により要求される。
【0019】
F/Vテーブル22は、集積回路10の各動作周波数及びその周波数に対する対応供給電圧大きさを各々記憶する複数のエントリを含む。動作周波数は、ロジック回路14内のクロック型記憶装置へ供給されるクロックのための周波数である。集積回路10が動作するところの周波数のセットがある(そしてそのセット内の周波数間の切り換えは、例えば、電力管理、熱管理、等を行えるようにするために、集積回路10によってサポートされる。F/Vテーブル22は、集積回路10の製造テスト中に(例えば、ウェハテストのような、集積回路をパッケージングする前に)書き込まれたスタティックテーブルでよい。他の実施形態では、テストは、装置に含ませるために集積回路10を販売する前の時点、又はそのような装置に集積回路10を含ませる前の時点で遂行されてもよい。更に別の実施形態では、F/Vテーブル22は、集積回路10を含む装置を初めて使用する前に遂行される自己校正中に書き込まれてもよい。従って、F/Vテーブル22の各周波数に対して決定される供給電圧大きさは、パッケージの電気特性が電圧の大きさを変化させる場合でも正しい動作を保証し、熱的変動を考慮し(例えば、制御された温度でテストを遂行し、動作温度は、その温度より高くても低くてもよい)、集積回路の予想寿命中のエージング作用を考慮する、等々のために、顕著なガードバンドが関連付けられている。
【0020】
ローカル電力マネージャー18は、外部電源(例えば、PMU/電源12)から供給電圧大きさを要求するように構成された回路を備えている。上述したように、自己校正テーブル20のエントリが所与の動作周波数に対して検出された場合には、ローカル電力マネージャー18は、そのエントリに記録された供給電圧大きさを要求する。自己校正テーブル20にエントリが見つからない場合には、ローカル電力マネージャー18は、所与の動作周波数についてF/Vテーブル22を読み取り、そしてPMU/電源12からその供給電圧大きさを要求する(図1のVDD要求)。この要求は、任意の望ましい形態で表すことができる。例えば、この要求は、複数のビットより成り、種々の供給電圧大きさは、その複数のビットの異なるエンコーディングが各々指定されたサポートされる大きさの範囲内である。
【0021】
ローカル電力マネージャー18は、動作周波数間の切り換えを制御するようにも構成される。例えば、ローカル電力マネージャー18は、新たな動作周波数を選択するためにソフトウェアにより書き込むことのできるレジスタ又は他のファシリティを含む。ローカル電力マネージャー18は、書き込みを検出し、そして現在動作周波数から新たに要求された動作周波数への遷移を管理する。この遷移は、要求された供給電圧を変更し、クロック回路の動作を変更し(例えば、集積回路10のクロックを発生する位相固定ループ(PLL)を再ロックし)、等々を含む。従って、遷移の詳細は、一実施形態では、(例えば、遷移が完了したかどうか調べるためのチェックすら行わずに)単に新たな周波数を要求して継続するソフトウェアから抽出される。
【0022】
F/Vテーブル22は、任意の望ましい形態で書き込むことができる。例えば、テーブルの各エントリは、(例えば、エントリにおいて複数のビットとしてエンコードされた)望ましい電圧大きさのエントリにおける指示)を永久的に記憶するために選択的に飛ばすことのできるヒューズを含む。他の実施形態では、他の不揮発性記憶装置が使用されてもよい。F/Vテーブル22は、集積回路10を含む装置のファームウェアへ更新により書き込まれる不揮発性メモリを含んでもよい。
【0023】
ある実施形態では、自己校正ユニット16により実行されるテストは、プログラム可能であり、更新することができる。このような実施形態は、より多くのデータが利用できるようになったときにテストを変更することができる。例えば、以前に識別された臨界経路以外の経路が、集積回路10を正しく動作する供給電圧を支配し、又はそれに強く影響してもよい。又、テストは、新たに発見された臨界経路を含むように更新されてもよい。更に、テストは、ある実施形態では、テスト中に実行すべきより適切なプログラムを含むように更新されてもよい。
【0024】
ロジック回路14は、一般的に、集積回路10が設計されたところの動作を具現化する回路を含んでもよい。例えば、設計が1つ以上のプロセッサを含む場合には、ロジック回路14は、プロセッサのオペレーション(例えば、インストラクションフェッチ、デコード、実行及び結果の書き込み)を具現化する回路を含む。プロセッサは、種々の実施形態において、汎用プロセッサ及び/又はグラフィックプロセッサを含む。設計が周辺インターフェイスへのブリッジを含む場合には、ロジック回路14は、ブリッジのオペレーションを具現化する回路を含む。設計が、パケットインターフェイス、ネットワークインターフェイス、等の他の通信特徴を含む場合には、ロジック回路14は、それに対応する特徴を具現化する回路を含む。集積回路10は、一般的に、オペレーションのセットを与えるように設計される。一般的に、ロジック回路14は、次のもの、即ち、メモリアレイ、組み合わせロジック、状態マシン、フロップ、レジスタ、他のクロック型記憶装置、カスタムロジック回路、等、の1つ以上の組み合わせを含む。
【0025】
PMU/電源12は、一般に、入力電圧要求により指示された大きさの供給電圧を発生することのできる回路を含む。この回路は、例えば、1つ以上の電圧レギュレータ又は他の電源を含む。又、PMU/電源12は、全体として、(集積回路10を含む)システムのための電力管理回路も含む。
【0026】
前記説明は、供給電圧大きさを要求することについて述べ、そしてPMU/電源12がその要求された大きさの電圧を供給するものであったが、1つの要求/供給電圧しかないことを意味するものではない。ある所与の時間に複数の供給電圧が要求され供給されることがある。例えば、ロジック回路14内の組み合わせロジック回路及びメモリ回路のための個別の供給電圧がある。集積回路10内には、別々にパワーアップ及びパワーダウンされる複数の電圧ドメインがあり、各ドメインは、別々の要求を含む。ローカル電力マネージャー18は、ロジック回路14とは個別に電力供給される。1つ以上の供給電圧のセットが要求され供給されることがある。
【0027】
前記説明では、供給電圧の大きさが要求される、と称され、その要求された大きさの供給電圧が供給される。供給電圧の大きさが基準(例えば、集積回路10の接地点、時々、VSSと称される)に対して測定される。以下の説明の便宜上、電圧は他の電圧より大きいか又は小さいと称される。同様に、ここでは、電圧の測定とも称される。このような場合に、電圧の大きさは、他の電圧より大きい(又は小さい)或いは測定されたとなる。
【0028】
図2を参照すれば、図1に示された集積回路10を、パッケージングの前にテストする一実施形態を示すフローチャートが示されている。図2に示されたブロックは、集積回路10の製造中にテスト装置(例えば、ウェハテスター)において遂行される。
【0029】
テストは、集積回路10が比較的高速であるか、比較的低速であるか、等、を推定するために種々の測定を使用して集積回路10のおおよその特性をテストすることにより開始される(ブロック30)。例えば、一実施形態では、おおよその特性は、集積回路10が静止状態にある間に集積回路10への電流をテストすることを含む(しばしば“Iddq”テストと称される)。高いIddq測定値は、高い漏洩を指示する(例えば、「高速プロセス」)。低いIddq測定値は、低い漏洩を指示する(例えば、「低速」プロセス。Iddqテストは、例えば、供給電圧を集積回路10の最大許容値にセットして遂行される。おおよその特性(及び集積回路10のインスタンスをテストする種々の結果)から、テスト供給電圧の比較的小さなセットが選択される。即ち、同様のおおよその特性を有する以前の部品に対して信頼性ある動作を与える供給電圧に基づいて、テスト電圧の小さなセットが選択される(ブロック32)。例えば、一実施形態では、3つのテスト電圧のセットが選択される。図12は、高速プロセス(図12の左側)から低速プロセス(図12の右側)への部品の分布を表すグラフである。テスト電圧は、一例では、図12に示したように、V1、V2及びV3である。
【0030】
テスト装置は、集積回路10をパワーアップし(例えば、最も高いテスト電圧で)そしてテスト周波数(集積回路10の動作がサポートされる周波数の1つ)をセットする(ブロック34)。テスト装置は、テスト電圧の各セットに対して集積回路10において1つ以上のテストパターンを実行し(ブロック36)、そして全てのテストパターンが合格となった(即ち、各パターンに対して正しい結果が得られた)ところの最も低いテスト電圧を選択する(ブロック38)。テスト周波数がもっとある(例えば、まだテストされていない集積回路10のサポートされた動作周波数がもっとある)場合には(判断ブロック40の「イエス」岐路)、次の周波数が選択されてテストされる(ブロック34、36及び38)。テスト電圧のセットは、各サポートされた動作周波数に対してテストされるべき異なる電圧を含んでもよいし、又は各サポートされた動作周波数に対して少なくとも1つの合格供給電圧が予想されるように選択されてもよい。テスト周波数が尽きると(判断ブロック40の「ノー」岐路)、テスト装置は、周波数及び電圧の大きさをF/Vテーブル22に書き込む(ブロック42)。例えば、サポートされた周波数及びそれに対応する供給電圧大きさを表すために、ヒューズが飛ばされてもよい。
【0031】
テスト電圧の数に制限があるので、テストプロセスは、集積回路10の特定のインスタンスの正しい動作を生じる最も低い供給電圧を識別しないことがある。しかしながら、テスト装置における時間を制限することができ、これは、一般的に重要であると共に、特に、集積回路10が大量に製造されることが予想される場合に重要である。
【0032】
図3は、自己校正を遂行するための自己校正ユニット16(及びローカル電力マネージャー18)の一実施形態の動作を示すブロック図である。自己校正は、以下に詳細に述べるように、種々の時間に遂行される。理解を容易にするためにブロックは特定の順序で示されているが、他の順序が使用されてもよい。ブロックは、自己校正ユニット16及び/又はローカル電力マネージャー18内の組み合わせロジック回路において並列に遂行することができる。ブロック、ブロックの組み合わせ、及び/又は全体としてのフローチャートは、複数のクロックサイクルにわたりパイプライン処理されてもよい。
【0033】
自己校正ユニット16は、自己校正プロセスが遂行されることを指示するためにローカル電力マネージャー18と通信する。或いは又、ローカル電力マネージャー18が自己校正プロセスを開始してもよく、従って、自己校正が処理中であることが分かる。いずれにせよ、ローカル電力マネージャー18は、テスト周波数としてF/Vテーブル22に与えられる供給電圧大きさを要求する(ブロック50)。集積回路10によりサポートされる各動作周波数は、例えば、最も低い周波数で始まるテスト周波数である。ローカル電力マネージャー18は、テスト周波数をセットし(ブロック52)、そして集積回路がそのテスト周波数に対して安定化するのを待機する(例えば、PLLロック時間及び/又はPMU/電源12からの電圧に対する安定化時間)。自己校正ユニット16は、自己校正テストを実行し(ブロック54)、そしてロジック回路14が正しい結果を発生するか(合格であるか)、しないか(不合格であるか)を決定する(判断ブロック56)。テストが合格の場合は(判断ブロック56の「イエス」岐路)、自己校正ユニット16は、ローカル電力マネージャー18に通知し、これは、次に低い供給電圧を要求し(ブロック58)、そして再びテストが遂行される(ブロック54及び56)。テストに対して不合格の結果が検出されるまでテストが繰り返される(ブロック54、56及び58)。不合格が検出された場合には(判断ブロック56の「ノー」岐路)、ローカル電力マネージャー18は、最も低い合格供給電圧の大きさを自己校正テーブル20に記録する(ブロック60)。ある実施形態では、自己校正テーブルに記録されるべき電圧の大きさに到達するために、最も低い合格供給電圧に余裕が追加される。或いは又、供給電圧を要求するときに余裕を追加してもよい。自己校正されるべきテスト周波数がもっとある場合には(判断ブロック62の「イエス」岐路)、自己校正プロセスは、次の周波数のためにブロック50に復帰する。さもなければ(判断ブロック62の「ノー」岐路)、自己校正プロセスは、終了となる。
【0034】
図4は、(例えば、集積回路10で実行されるソフトウェアからの、又は集積回路10を含むシステム内のどこかからの)動作周波数を切り換える要求に応答するローカル電力マネージャー18の一実施形態の動作を示すフローチャートである。理解を容易にするためにブロックが特定の順序で示されているが、他の順序が使用されてもよい。これらブロックは、ローカル電力マネージャー18内の組み合わせロジック回路において並列に実行されてもよい。ブロック、ブロックの組み合わせ、及び/又は全体としてのフローチャートは、複数のクロックサイクルにわたりパイプライン処理されてもよい。
【0035】
ローカル電力マネージャー18は、新たな(要求された)動作周波数に対応するエントリに対して自己校正テーブル20をチェックする(判断ブロック70)。エントリが見つかった場合には(判断ブロック70の「イエス」岐路)、ローカル電力マネージャー18は、自己校正テーブル20に示された大きさの供給電圧を要求する(ブロック72)。ローカル電力マネージャー18は、新たな動作周波数をセットし(ブロック74)、そして任意であるが、具現化に基づいてクロック回路が新たな動作周波数にロックするのを待機する(ブロック76)。他方、要求された周波数に対して自己校正テーブル20にエントリがない場合には(判断ブロック70の「ノー」岐路)、ローカル電力マネージャー18は、その要求された周波数に対して自己校正を実行すべきかどうか決定する(判断ブロック78)。例えば、図3のフローチャートは、唯一のテスト周波数として要求された周波数で遂行されてもよい。周波数切り換え中に自己校正を遂行すべきかどうかに影響するファクタは、ロジック回路14の現在ワークロード、システムの全体的な環境(例えば、温度、残りのバッテリ寿命、等)を含む。例えば、ロジック回路14が複数のプロセッサコアを含み、そしてコアの1つがアイドル状態である場合には、そのアイドルのプロセッサコアにおいて自己校正が実行される。システムがバッテリ電力で動作し、そして残りのバッテリ寿命が短い場合には、自己校正を実行すると、望ましい以上のバッテリ電力を消費することがある。
【0036】
ローカル電力マネージャー18が自己校正を実行すべきと決定した場合には(判断ブロック78の「イエス」岐路)、ローカル電力マネージャー18は、自己校正を遂行するために自己校正ユニット16を呼び出す(ブロック80)。次いで、ローカル電力マネージャー18は、(自己校正の完了後に)自己校正テーブル20に指示された供給電圧を要求し(ブロック72)、新たな動作周波数をセットし(ブロック74)、そして任意であるが、ロックを待機する(ブロック76)。
【0037】
ローカル電力マネージャー18が自己校正を実行すべきでないと決定した場合には(判断ブロック78の「ノー」岐路)、ローカル電力マネージャー18は、F/Vテーブル22を読み取って供給電圧大きさを得、そしてその供給電圧大きさを要求する(ブロック82)。ローカル電力マネージャー18は、新たな周波数をセットし、そして任意であるが、ロックを待機する(ブロック74及び76)。
【0038】
図4の実施形態において、自己校正は、自己校正テーブル20のエントリが見つからないところの要求された動作周波数に応答して遂行されてもよい。この動作に加えて又はそれに代わって、自己校正は、1つ以上の他の時点で呼び出されてもよい(例えば、一実施形態について図5のフローチャートに示すように)。図5に示すフローチャートは、ハードウェアで具現化されてもよいし、ソフトウェアで具現化されてもよいし、及び/又はその組み合わせで具現化されてもよい。
【0039】
集積回路10を含むシステムが(例えば、システムを購入した顧客により)初めてブートされる場合に(判断ブロック90の「イエス」岐路)、集積回路10は、自己校正を実行する(ブロック92)。一般的に、システムをブートすることは、システムをパワーオンしてシステムを初期化し動作を開始することを指す。ブートがシステムの最初のブートであるという決定は、種々の形態でなされる。例えば、システムが初めてブートされるかどうか指示するフラグがシステムの不揮発性メモリに記憶されてもよい。このフラグは、システムにおいてブートコードによりチェックされ、ブートが最初のブートである場合にはブートコードの終わりにフラグの状態を変更し、その後のブートが最初のブートとして検出されないようにしてもよい。例えば、フラグは、最初にクリアなビットで、初めてのブートの後にセットされてもよい(又はその逆でもよい)。ある実施形態では、完全システムリセット(例えば、ユーザが装置への1つ以上の入力をアクチベートすることにより開始されるハードリセット)が「最初のブート」フラグをクリアし、次のブートにおいて自己校正を行わせてもよい。このような動作は、ある実施形態では、装置の機能を改善する。例えば、装置が「凍結」されるか、さもなければ、機能不良であるために、ユーザがハードリセットを開始する場合、エラーが集積回路10の機能不良による(例えば、自己校正の供給電圧大きさが低すぎることによる)ものであれば、自己校正でエラーを軽減することができる。更に、装置がネットワーク(例えば、インターネット)に接続された場合には、装置の製造者から自動的に装置に更新された校正プログラム又は手順をダウンロードすることができる。その更新に応答して自己校正が実行される。
【0040】
それとは別に又はそれに加えて、システムは、所与のワークロードが初めて実行されることを決定し(判断ブロック94の「イエス」岐路)、そしてそれに応答して自己校正を実行する(ブロック92)。所与のワークロードが初めて実行されるという決定は、種々の形態で具現化することができる(例えば、最初のブートに関して上述したのと同様に、不揮発性記憶装置におけるワークロードごとのフラグ)。例えば、ワークロードが著しく変化するシステムにおいて、異なるワークロードの検出を使用してもよい。例えば、システムは、移動電話、音楽プレーヤ、ウェブブラウザとして機能する移動装置であって、種々の他のコンピューティングタスクを遂行してもよい。又、ワークロードは、実質的に異なるもので、集積回路10からの異なる量の遂行を必要としてもよい。従って、各ワークロードを自己校正することで、付加的な電力節約が生じる(例えば、軽いロードは、低い動作温度を生じ、これは、厳しいワークロードで許されるよりも低い供給電圧大きさを許す)。
【0041】
それとは別に又はそれに加えて、システムは、ある量だけエージングしたことを決定し(判断ブロック96の「イエス」岐路)、そしてそれに応答して自己校正を実行する(ブロック92)。集積回路10(及び/又は集積回路10を含む装置)のエージングに応答して自己校正を遂行することで、チッププロセスエージング作用又は他のエージング作用を補償するように集積回路10の要求された供給電圧大きさを調整することができる。この形態では、エージング作用を考慮するために要求された供給電圧大きさに余裕を追加する必要がない(集積回路10がエージングするときに再校正することにより既にそれが考慮されているので)。集積回路10のエージは、種々の形態で測定される。例えば、エージは、カレンダー時間に基づき最初のブートの日付から測定される。又、エージは、最初のブートから動作の時間に関して測定される。又、エージは、必要に応じて、時間又はクロックサイクルに関して測定される。又、他の実施形態では、エージは、製造の日付に対して測定される。いずれのケースでも、複数の異なるエージにおいて(例えば、6か月ごとに一度、年に一度、等)、自己校正が遂行される。更に別のケースでは、システムが動作している間に自己校正を動的に遂行して、温度作用を補償する上で助けとすることができる。自己校正呼び出しの希望のセットを種々の実施形態において具現化することができる。
【0042】
図6は、集積回路10及びPMU/電源12の別の実施形態のブロック図である。図1の実施形態と同様に、図6の集積回路10の実施形態は、ロジック回路14及びローカル電力マネージャー18を備えている。ある実施形態では、自己校正ユニット16及び自己校正テーブル20が含まれるが、他の実施形態は、それらの特徴を含まない。図6の実施形態では、図1のF/Vテーブル22が、ローカル電力マネージャー18に結合されたF/V/Nテーブル102に置き換えられる。このF/V/Nテーブル102は、F/Vテーブル22と同様に、周波数及びそれに対応する供給電圧大きさを記憶するエントリを含む。更に、それらエントリは、以下に詳細に述べる遅延測定値(N)を記憶する。図6の実施形態に更に示すように、集積回路10は、直列接続された測定ユニット100及びロジックゲート104A−104Hを含む。ロジックゲート104Aへの入力は、測定ユニット100に結合され、そしてロジックゲート104Hの出力も、測定ユニット100に結合される。更に、フロップ106は、予想される遅延測定値(N)を記憶し、そしてフロップ108は、カウンタ値(Ctr)を記憶する。両フロップ106及び108は、測定ユニット100に結合される。他の実施形態では、フロップ106及び108は、クロック型の記憶装置である。
【0043】
測定ユニット100は、ゲート104A−104Hの直列接続体を通る論理的遷移の伝播遅延を測定するように構成される。ゲート104A−104Hは、ロジック回路14における種々のロジックゲートと同じ設計を有する。従って、ゲート104A−104Hを通る伝播遅延は、ロジック回路14内のロジックゲートに比例しなければならない。伝播遅延を測定し、そしてそれを所定の遅延と比較することにより、ロジック回路14の動作に対する種々のファクタの作用を考慮することができる。例えば、動作温度、エージング、等の作用は、伝播遅延を測定してそれを所定の量と比較することにより検出することができる。
【0044】
伝播遅延は、望ましい単位(例えば、ナノ秒、クロックサイクル、等)で測定される。一実施形態では、伝播遅延は、ロジック回路14へ供給されるクロックの現在動作周波数においてクロックサイクルに関して測定される。従って、測定ユニット100は、論理的遷移(例えば、0から1又は1から0の遷移)をゲート104A−104Hの直列接続体の入力(即ち、図6のゲート104Aの入力)へ送出し、そしてそれに対応する遷移がその直列接続体の出力(即ち、図6のゲート104Hの出力)に検出されるまでクロックサイクルをカウントする。一実施形態では、2つの論理的遷移(例えば、0から1そして再び0へ戻る)を含むパルスが送信される。フロップ108のカウンタCtrは、論理的遷移が送出されたときにクリアされ、そしてそれに対応する遷移が検出されるまでクロックサイクルごとにインクリメントされる。フロップ106は、供給電圧が現在動作周波数をサポートする遅延を与える場合に発生すると予想される所定のクロックサイクル数(N)を記憶する。測定されたクロックサイクル数が所定数Nより大きい場合には、遅延を減少するために供給電圧が上げられる。測定されたクロックサイクル数が所定数Nより小さい場合には、遅延を増加する(そして電力消費を下げる)ために供給電圧が下げられる。
【0045】
直列接続体におけるゲートの数は、ロジック回路14に供給されるクロックのクロックサイクルにおいて評価するゲート遅延の数より著しく大きい。例えば、直列接続体におけるゲートの数は、クロックサイクルにおけるゲート遅延の数の約100倍である。従って、クロックサイクルにおいて14のゲート遅延が得られる場合には、ゲート104A−104Hの直列接続体に約1400のゲートがある。非常に多数のゲートを使用することで、ロジック回路14に実際に生じる回路遅延に対する測定遅延のマッチングを改善することができる。更に、本実施形態は、クロックサイクルに関して遅延をカウントするので、非常に多数のゲートがあると、クロックサイクルの粒度のために生じる測定エラーを減少することができる。例えば、クロックサイクル内のゲート遅延の数の100倍では、遅延における1つの全クロックサイクルのエラー(考えられる最大エラー)は、測定値の1%に過ぎない。この実施形態では100が使用されるが、他の実施形態は、より大きな数又はより小さな数(例えば、200、500、100、50、等)を使用してもよい。
【0046】
所定数Nは、集積回路の製造テスト中に測定される。所定数Nは、一般的に、ゲートの直列接続体を形成するのに使用されるゲート遅延の数の倍数(例えば、前記例では100)に近いことが予想されるが、その数から若干変化してもよい。一実施形態では、所定数Nは、所与の動作周波数に対する静的な供給電圧大きさと共にF/V/Nテーブル102に記憶される。種々の実施形態において、1つのNがテーブルに記憶されてもよいし、又は動作周波数ごとに1つのNが(その動作周波数に対応するエントリに)あってもよい。
【0047】
ゲート104A−104Hは、ロジック回路14により占有された集積回路10のエリアにわたり物理的に分布されてもよい。従って、集積回路チップの表面エリアにわたって生じるプロセス特性及び/又は動作温度の変化は、伝播遅延で表される。即ち、1つ以上のゲート104A−104Hの各セットは、それらのゲート104A−104Hが配置された物理的エリアに対してローカルの動作温度及び/又はプロセス特性によって影響される。一実施形態では、ゲート104A−104Hは、集積回路10の配線層を切り換えることによりロジック回路14のロジックエラーを修復できるように典型的に集積回路10全体にわたって含まれた「スペアゲート」から選択される。即ち、スペアゲートは、最初はロジック回路14に配線されておらず、使用されない。ロジックのエラーが検出された場合に、スペアゲートをロジック回路14に配線して、正しいロジック機能を発生することができる。正しいロジック機能を発生できる確率を高くするために、スペアゲートには種々の異なるロジックゲートを含ませることができる。従って、未使用のスペアゲートは種々のゲートを有し、それらを一緒に配線して、ロジック回路14と同様のスケールのゲート104A−104Hの直列接続体を形成することができる。スペアゲートからゲート104A−104Hを具現化することにより、集積回路10により消費される半導体エリアにゲート104A−104Hを追加しなくてよい。
【0048】
加えて、ロジックゲート104A−104Hの直列接続体を使用して遅延を感知するのは、主として、デジタル回路である。従って、回路の使用は、ある実施形態では、アナログ回路に比較して、比較的簡単で且つ低電力である。
【0049】
測定ユニット100は、少なくとも、遷移を送出しそして伝播遅延を測定するよう構成された回路を含む。ある実施形態では、測定ユニット100は、測定をいつ行うべきか決定するように構成された回路、及び/又は伝播遅延を予想値と比較するように構成された回路も備えている。或いは又、その決定は、ローカル電力マネージャー18において行われてもよいし、又はソフトウェアで行われてもよい。
【0050】
一般的に、ロジックゲートは、1つ以上の入力を受け取り、それら入力に基づいてロジック機能を遂行して1つ以上の出力を与えるように構成された回路を含む。1つ以上のこのようなゲートが、ゲート104A−104Hの各セットに含まれる。ゲート104A−104Hは、図6では、図面の便宜上、ロジック回路14の周囲付近に現れるが、これらゲートは、一般的に、上述したように、ロジック回路14を通して分散されることに注意されたい。
【0051】
図6の前記説明は、供給電圧大きさを要求することについて述べ、そしてPMU/電源12がその要求された大きさの電圧を供給するというものであったが、この説明は、要求され/供給される電圧が1つしかないことを意味するものではない。所与の時点において複数の供給電圧を要求し供給することができる。例えば、組み合わせロジック回路、及びロジック回路14内のメモリ回路に対して別々の供給電圧がある。集積回路10内には、別々にパワーアップ及びパワーダウンでき、且つ別々の測定ユニット、及びロジックゲートの直列チェーンを有する複数の電圧ドメインがある。このような各ドメインは、個別の要求を含む。ローカル電力マネージャー18は、ロジック回路14から別々に電力供給される。1つ以上の供給電圧のセットが要求され、供給される。更に、ある実施形態では、異なる形式の遅延をモデリングするために、2つ以上のゲートチェーンが電圧ドメイン内で具現化される。例えば、ロジックゲートの遅延及びレジスタファイルの遅延が別々にモデリングされる。
【0052】
図7は、図6に示す集積回路10をパッケージングの前にテストする一実施形態を示すフローチャートである。図7に示されたブロックは、集積回路10の製造中にテスト装置(例えば、ウェハテスター)において遂行される。
【0053】
図2の実施形態と同様に、テストは、Iddqテストのように、集積回路10のおおよその特性をテストすることにより開始され(ブロック30)、そしてテスト電圧のセットが選択される(ブロック32)。テスターは、第1のテスト周波数をセットし(ブロック34)、そして供給電圧としてテスト電圧セットにおける各電圧に対するテストパターンを実行する(ブロック36)。この実施形態では、テストは、測定ユニット100をアクチベートすることを含む。テスト電圧ごとに、テスターは、テスト中に測定ユニット100により測定された遅延のクロックサイクルの数“N”(即ち、カウンタフロップ108の値)を読み取る。テスターは、テスト電圧ごとに測定値Nを記録する(ブロック110)。次いで、テスターは、テストに合格する最小供給電圧大きさ及びそれに対応する“N”を選択する(ブロック112)。
【0054】
テスト周波数がもっとある(例えば、まだテストされていない集積回路10のサポートされた動作周波数がもっとある)場合には(判断ブロック40の「イエス」岐路)、次の周波数が選択されてテストされる(ブロック34、36、110及び112)。テスト電圧のセットは、各サポートされた動作周波数に対してテストされるべき異なる電圧を含んでもよいし、又は各サポートされた動作周波数に対して少なくとも1つの合格供給電圧が予想されるように選択されてもよい。テスト周波数が尽きると(判断ブロック40の「ノー」岐路)、テスト装置は、周波数、電圧の大きさ、及び“N”の値をF/V/Nテーブル102に書き込む(ブロック114)。
【0055】
ある実施形態では、テーブルに書き込まれるべき測定値“N”に余裕が追加される。或いは又、フロップ106に“N”を書き込むためにテーブルから読み取られた“N”に余裕が追加されてもよい。同様に、テーブルに書き込まれる供給電圧大きさに余裕が追加されてもよいし、又はテーブルから大きさを読み取った後にローカル電力マネージャー18に余裕が追加されてもよい。
【0056】
図8は、供給電圧大きさを調整すべきかどうか決定するための図6に示す集積回路10(及びより詳細には、測定ユニット100及びローカル電力マネージャー18)の一実施形態の動作を示すフローチャートである。図8の動作は、集積回路10が動作している間に周期的に遂行される(例えば、一実施形態では、システムの熱慣性に基づいてほぼ10マイクロ秒ないし1ミリ秒に一度)。図8の動作は、ワークロードの変更(例えば、電話から音楽プレーヤ又は移動インターネットアクセス装置へ)の後に遂行される。又、図8の動作は、動作周波数切り換えの一部分として遂行されてもよい。理解を容易にするためにブロックは特定の順序で示されているが、他の順序が使用されてもよい。ブロックは、測定ユニット100/ローカル電力マネージャー18内の組み合わせロジック回路により並列に遂行することができる。ブロック、ブロックの組み合わせ、及び/又は全体としてのフローチャートは、複数のクロックサイクルにわたりパイプライン処理されてもよい。
【0057】
ローカル電力マネージャー18は、測定ユニット100をアクチベートし、このユニットは、ゲート104A−104Hの直列接続体における現在伝播遅延(“N”)を感知する(ブロック120)。ある実施形態では、ローカル電力マネージャー18及び/又は測定ユニット100は、結果をフィルタリングする(ブロック122)。より詳細には、例えば、フィルタリングは、連続する測定と測定との間のNの値の振動を検出することを含む。この振動は、伝播遅延がクロックサイクルの整数に近い(従って、あるときには、M個のクロックサイクルで捕捉され、そして他のときには、M+1個のクロックサイクルで捕捉される)ために発生する。又、この振動は、要求される供給電圧が振動式に増加及び減少されるために発生する。
【0058】
測定値“N”がF/V/Nテーブル102からの“N”より大きいことを測定ユニット100が検出した場合には(判断ブロック124の「イエス」岐路)、ローカル電力マネージャー18は、PMU/電源12へ送られる要求された供給電圧大きさを増加する(ブロック126)。例えば、次に高い供給電圧大きさが要求される。測定値“N”がF/V/Nテーブル102からの“N”より小さいことを測定ユニット100が検出した場合には(判断ブロック128の「イエス」岐路)、ローカル電力マネージャー18は、PMU/電源12へ送られる要求された供給電圧大きさを減少する(ブロック130)。図8の動作は、要求された供給電圧大きさが安定するまで繰り返されるか、又は必要に応じて、次の測定時間に繰り返される。
【0059】
図9は、集積回路10の周波数を切り換える要求に応答する集積回路10(及びより詳細には、ローカル電力マネージャー18及び測定ユニット100)の一実施形態の動作を示すフローチャートである。理解を容易にするためにブロックは特定の順序で示されているが、他の順序が使用されてもよい。ブロックは、測定ユニット100/ローカル電力マネージャー18内の組み合わせロジック回路により並列に遂行することができる。ブロック、ブロックの組み合わせ、及び/又は全体としてのフローチャートは、複数のクロックサイクルにわたりパイプライン処理されてもよい。
【0060】
周波数を切り換える要求が現在動作周波数からの増加である場合には(判断ブロック140の「イエス」岐路)、フロップ106のNの値が新たな(要求された)周波数と古い(現在)周波数との比でスケーリングされる(ブロック142)。例えば、現在周波数が1GHzであり、新たな周波数が1.5GHzである場合には、Nの値は、1.5でスケーリングされる。ローカル電力マネージャー18及び測定ユニット100は、測定ユニット100からの測定値NがスケーリングされたNに一致するまで図8の供給電圧調整プロセスを繰り返す(ブロック144)。ある実施形態では、増加された供給電圧大きさが、新たに切り換えられた周波数をサポートするのに充分であることを確保するために、スケーリングされたNに余裕が追加される。スケーリングされたNに一致すると、ローカル電力マネージャー18は、新たな周波数をセットし(ブロック146)、そしてクロック発生回路が新たな周波数にロックするのを待機する(ブロック148)。新たなNがF/V/Nテーブル102から読み取られ、そしてフロップ106に書き込まれる(ブロック150)。
【0061】
周波数を切り換える要求が現在動作周波数からの減少である場合には(判断ブロック140の「ノー」岐路)、ローカル電力マネージャー18は、Nをスケーリングして供給電圧を調整する(ブロック142及び144)ことなく、新たな周波数をセットする(ブロック146)。供給電圧は、高い現在周波数をサポートするに充分なほど既に高いので、集積回路10は、新たな周波数で正しく動作する。その後の周期的な測定及び調整(例えば、図8)で電圧を下げる。他の実施形態では、Nがスケーリングされ、そして低い新たな周波数に対して電圧が調整され(ブロック142、144)、この場合、供給電圧に対する調整は、減少である。
【0062】
ある実施形態では、供給電圧大きさを調整するプロセス(ブロック144)は、新たな周波数に対してF/V/Nテーブル102(又は自己校正テーブル20)から供給電圧大きさを読み取ることで始まり、そしてテーブルから供給電圧大きさを要求することでプロセスを開始する。
【0063】
次いで、図10は、図6に示す集積回路10をパッケージングの前にテストする別の実施形態を示すフローチャートである。図10に示されたブロックは、集積回路10の製造中にテスト装置(例えば、ウェハテスター)において遂行される。
【0064】
図2の実施形態と同様に、テストは、Iddqテストのように、集積回路10のおおよその特性をテストすることで開始される(ブロック30)。更に、測定ユニット100は、供給電圧をその考えられる最大値(集積回路10の仕様で)にセットした状態でアクチベートされる(ブロック160)。考えられる最大値におけるNの測定値は、集積回路10の「速度」の指示であり、テスト電圧のセットを選択するのに使用される(ブロック162)。この形態において、選択されたテスト電圧は、所与の周波数に対する最適値に近いものであり、これは、短いテスト時間内に微粒度の電圧テストを行って、集積回路10の最適値に近い供給電圧大きさを生じることができる。従って、集積回路10は、供給電圧がテーブル内の電圧にセットされたときには所与の周波数において電力をあまり消費しない(最適に至らないテスト戦略に比して)。更に、比較的小さなセットの電圧を使用してテスト時間を短縮することができる。例えば、図13は、高速プロセス(図13の左側)から低速プロセス(図13の右側)への部品の分布を示すグラフである。最大電圧(最も右側の点線)を使用すると、Nを測定することができる。測定値Nに基づき、予想動作点付近のテスト電圧の小さなセットを選択し、そしてそれらの電圧で集積回路10をテストすることができる(図13の底部の大括弧)。
【0065】
その後、図7の実施形態と同様に、第1のテスト周波数をセットし(ブロック34)、そして供給電圧としてテスト電圧のセットにおける各電圧に対してテストパターンを実行する(ブロック36)。テストは、測定ユニット100をアクチベートすることを含む。テスト電圧ごとに、テスターは、テスト中に測定ユニット100により測定された遅延のクロックサイクル数“N”(即ち、カウンタフロップ108の値)を読み取る。テスターは、テスト電圧ごとに測定値Nを記録する(ブロック110)。次いで、テスターは、テストに合格する最小の供給電圧大きさ及びそれに対応する“N”を選択する(ブロック112)。
【0066】
テスト周波数がもっとある(例えば、まだテストされていない集積回路10のサポートされた動作周波数がもっとある)場合には(判断ブロック40の「イエス」岐路)、次の周波数が選択されてテストされる(ブロック34、36、110及び112)。テスト電圧のセットは、各サポートされた動作周波数に対してテストされるべき異なる電圧を含んでもよいし、又は各サポートされた動作周波数に対して少なくとも1つの合格供給電圧が予想されるように選択されてもよい。テスト周波数が尽きると(判断ブロック40の「ノー」岐路)、テスト装置は、周波数、電圧の大きさ、及び“N”の値をF/V/Nテーブル102に書き込む(ブロック114)。
【0067】
ある実施形態では、テーブルに書き込まれる測定値“N”に余裕が追加される。或いは又、テーブルから読み取られた“N”に余裕を追加して“N”をフロップ106へ書き込んでもよい。同様に、テーブルに書き込まれた供給電圧大きさに余裕が追加されてもよいし、又はテーブルから大きさを読み取った後にローカル電力マネージャー18により余裕が追加されてもよい。
【0068】
次いで、図11は、測定を遂行するための測定ユニット100の一実施形態の動作を示すフローチャートである。測定ユニット100は、例えば、ローカル電力マネージャー18が測定を開始するのに応答して図11に示す動作を遂行する。理解を容易にするためにブロックは特定の順序で示されているが、他の順序が使用されてもよい。ブロックは、測定ユニット100内の組み合わせロジックにより並列に遂行することができる。ブロック、ブロックの組み合わせ、及び/又は全体としてのフローチャートは、複数のクロックサイクルにわたりパイプライン処理されてもよい。
【0069】
測定ユニット100は、フロップ108のカウンタをクリアし(参照番号170)、そしてゲート104A−104Hの直列接続体(又は「チェーン」)へ論理的遷移を送出する(ブロック172)。測定ユニット100がチェーンの出力において対応する論理的遷移をまだ検出しない場合には(判断ブロック174の「ノー」岐路)、測定ユニット100は、カウンタをインクリメントし(ブロック176)、そして遷移を再び検出するために次のクロックサイクルを待機する(ブロック178)。測定ユニット100がそれに対応する遷移を検出する場合には(判断ブロック174の「イエス」岐路)、測定ユニット100は、カウンタをフロップ106のNと比較し、その結果をローカル電力マネージャー18に報告する(ブロック180)。
【0070】
当業者であれば、以上の開示を完全に理解したときに、多数の変更や修正が明らかとなろう。このような変更や修正は、全て、特許請求の範囲に包含されるものとする。
【符号の説明】
【0071】
10:集積回路
12:外部電力管理ユニット(PMU)/電源
14:ロジック回路
16:自己校正ユニット
18:ローカル電力マネージャー
20:自己校正テーブル
22:周波数/電圧(F/V)テーブル
100:測定ユニット
102:F/V/Nテーブル
104A−104H:ロジックゲート
106、108:フロップ
【特許請求の範囲】
【請求項1】
ロジック回路と、
前記ロジック回路に結合され、要求された供給電圧大きさの指示を外部電源へ送信するように構成されたローカル電力マネージャーと、
集積回路内にあり、前記ロジック回路に対してテストを実行するように構成された自己校正ユニットと、
を備え、前記自己校正ユニットは、テストに不合格となるまで、各々、より低い要求供給電圧大きさでテストを繰り返すよう構成され、更に、テストに合格する最も低い要求供給電圧大きさを使用して、集積回路を動作するための要求供給電圧大きさを発生する、集積回路。
【請求項2】
供給電圧大きさの静的なテーブルを更に備え、この静的なテーブルのコンテンツは、前記集積回路の製造テスト中に決定され、更に、前記ローカル電力マネージャーは、前記静的なテーブルから最初の供給電圧大きさを読み取るように構成される、請求項1に記載の集積回路。
【請求項3】
前記集積回路は、複数のクロック周波数で動作することができ、更に、前記自己校正ユニットは、前記複数のクロック周波数の各々に対して、各々、より低い供給電圧大きさでテストを繰り返して、前記複数のクロック周波数の各々に対して最も低い要求供給電圧大きさを決定するように構成される、請求項1に記載の集積回路。
【請求項4】
前記自己校正ユニットは、前記集積回路を含む装置の初期ブートに応答してテストを繰り返すように構成される、請求項1に記載の集積回路。
【請求項5】
前記自己校正ユニットは、テストを繰り返し、そして前記集積回路のエージが特定量を越えるのに応答して最も低い要求供給電圧大きさを決定するように構成された、請求項4に記載の集積回路。
【請求項6】
前記自己校正ユニットは、テストを繰り返し、そして前記ロジック回路が異なるワークロードを実行するのに応答して最も低い要求供給電圧大きさを決定するように構成された、請求項1に記載の集積回路。
【請求項7】
ロジック回路及び自己校正ユニットを含む集積回路に対して、テストが不合格となるまで、各々、より低い要求供給電圧大きさで自己校正ユニットによりロジック回路に対してテストを繰り返す段階と、
前記自己校正ユニットが、テストに合格する最も低い要求供給電圧大きさを決定する段階と、
前記自己校正ユニットが、その最も低い要求供給電圧大きさを選択して、集積回路を動作するための要求供給電圧大きさを発生する段階と、
を備えた方法。
【請求項8】
静的なテーブルから最初の要求供給電圧大きさを読み取る段階を更に備え、この静的なテーブルのコンテンツは、前記集積回路の製造テスト中に決定される、請求項7に記載の方法。
【請求項9】
前記集積回路は、複数のクロック周波数で動作することができ、更に、前記方法は、前記自己校正ユニットが複数のクロック周波数の各々に対して前記繰り返し、決定及び選択の段階を繰り返すことを含む、請求項7に記載の方法。
【請求項10】
前記集積回路を含む装置の初期ブートに応答して遂行される、請求項7に記載の方法。
【請求項11】
前記集積回路のエージが特定量を越えることに応答して遂行される、請求項10に記載の方法。
【請求項12】
前記ロジック回路が異なるワークロードを実行することに応答して遂行される、請求項7に記載の方法。
【請求項1】
ロジック回路と、
前記ロジック回路に結合され、要求された供給電圧大きさの指示を外部電源へ送信するように構成されたローカル電力マネージャーと、
集積回路内にあり、前記ロジック回路に対してテストを実行するように構成された自己校正ユニットと、
を備え、前記自己校正ユニットは、テストに不合格となるまで、各々、より低い要求供給電圧大きさでテストを繰り返すよう構成され、更に、テストに合格する最も低い要求供給電圧大きさを使用して、集積回路を動作するための要求供給電圧大きさを発生する、集積回路。
【請求項2】
供給電圧大きさの静的なテーブルを更に備え、この静的なテーブルのコンテンツは、前記集積回路の製造テスト中に決定され、更に、前記ローカル電力マネージャーは、前記静的なテーブルから最初の供給電圧大きさを読み取るように構成される、請求項1に記載の集積回路。
【請求項3】
前記集積回路は、複数のクロック周波数で動作することができ、更に、前記自己校正ユニットは、前記複数のクロック周波数の各々に対して、各々、より低い供給電圧大きさでテストを繰り返して、前記複数のクロック周波数の各々に対して最も低い要求供給電圧大きさを決定するように構成される、請求項1に記載の集積回路。
【請求項4】
前記自己校正ユニットは、前記集積回路を含む装置の初期ブートに応答してテストを繰り返すように構成される、請求項1に記載の集積回路。
【請求項5】
前記自己校正ユニットは、テストを繰り返し、そして前記集積回路のエージが特定量を越えるのに応答して最も低い要求供給電圧大きさを決定するように構成された、請求項4に記載の集積回路。
【請求項6】
前記自己校正ユニットは、テストを繰り返し、そして前記ロジック回路が異なるワークロードを実行するのに応答して最も低い要求供給電圧大きさを決定するように構成された、請求項1に記載の集積回路。
【請求項7】
ロジック回路及び自己校正ユニットを含む集積回路に対して、テストが不合格となるまで、各々、より低い要求供給電圧大きさで自己校正ユニットによりロジック回路に対してテストを繰り返す段階と、
前記自己校正ユニットが、テストに合格する最も低い要求供給電圧大きさを決定する段階と、
前記自己校正ユニットが、その最も低い要求供給電圧大きさを選択して、集積回路を動作するための要求供給電圧大きさを発生する段階と、
を備えた方法。
【請求項8】
静的なテーブルから最初の要求供給電圧大きさを読み取る段階を更に備え、この静的なテーブルのコンテンツは、前記集積回路の製造テスト中に決定される、請求項7に記載の方法。
【請求項9】
前記集積回路は、複数のクロック周波数で動作することができ、更に、前記方法は、前記自己校正ユニットが複数のクロック周波数の各々に対して前記繰り返し、決定及び選択の段階を繰り返すことを含む、請求項7に記載の方法。
【請求項10】
前記集積回路を含む装置の初期ブートに応答して遂行される、請求項7に記載の方法。
【請求項11】
前記集積回路のエージが特定量を越えることに応答して遂行される、請求項10に記載の方法。
【請求項12】
前記ロジック回路が異なるワークロードを実行することに応答して遂行される、請求項7に記載の方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2013−31207(P2013−31207A)
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願番号】特願2012−200727(P2012−200727)
【出願日】平成24年9月12日(2012.9.12)
【分割の表示】特願2011−548143(P2011−548143)の分割
【原出願日】平成22年1月22日(2010.1.22)
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願日】平成24年9月12日(2012.9.12)
【分割の表示】特願2011−548143(P2011−548143)の分割
【原出願日】平成22年1月22日(2010.1.22)
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】
[ Back to top ]