(57)【特許請求の範囲】
【請求項１】
適応電圧スケーラ（ＡＶＳ）であって、
入力信号を受信することと、遅延出力信号を生成するために、機能回路の少なくとも１つの遅延経路に関係する遅延量だけ前記入力信号を遅延させることとを行うように構成された少なくとも１つの遅延回路と、
データベースに結合され、前記遅延出力信号に応答するＡＶＳ回路であって、前記機能回路の動作周波数と前記遅延出力信号中の遅延情報とに関連付けられた、前記データベース中の電圧レベルに基づいて電圧レベル設定信号を発生するように構成されたＡＶＳ回路と
を含み、
前記ＡＶＳ回路は、前記機能回路の無効動作領域を探査するために、前記機能回路の増加動作周波数をシミュレートするために前記少なくとも１つの遅延経路の前記遅延を増加させるように構成され、
前記ＡＶＳ回路は、前記増加動作周波数をシミュレートする前に、第１の動作周波数と第１の電圧レベルとを第１の特性曲線に関連付けられた第１のポイントに記録し、
前記ＡＶＳ回路は、前記少なくとも１つの遅延経路の前記遅延の増加に応えて第１の条件が受信された場合に、前記増加動作周波数と現在の電圧レベルとを第２の特性曲線に関連付けられた第２のポイントに記録し、
前記ＡＶＳ回路は、前記第１の特性曲線の傾斜に基づいて、前記第２の特性曲線に関連付けられた第３のポイントを決定する、
適応電圧スケーラ（ＡＶＳ）。
【請求項２】
前記ＡＶＳ回路がソフトウェアによって少なくとも部分的に制御可能である、請求項１に記載のＡＶＳ。
【請求項３】
前記少なくとも１つの遅延経路が少なくとも１つのプログラム可能な遅延経路から構成された、請求項１に記載のＡＶＳ。
【請求項４】
前記データベースが、それぞれが前記機能回路の動作周波数に対応する複数の初期電圧レベルから構成された、請求項１に記載のＡＶＳ。
【請求項５】
前記ＡＶＳ回路が、前記遅延出力信号中の前記遅延情報に基づいて複数の学習電圧レベルを前記データベースに記憶するようにさらに構成された、請求項１に記載のＡＶＳ。
【請求項６】
前記ＡＶＳ回路が、温度センサから受信された動作温度レベルにさらに基づいて前記複数の学習電圧レベルを前記データベースに記憶するようにさらに構成された、請求項５に記載のＡＶＳ。
【請求項７】
前記ＡＶＳ回路は、前記電圧レベルが前記機能回路について前に学習されたかどうかを判断するようにさらに構成された、請求項１に記載のＡＶＳ。
【請求項８】
前記ＡＶＳ回路は、前記電圧レベルが前記機能回路について前に学習されている場合、前記入力信号が安定するのを待つことなしに前記電圧レベル設定信号を発生するようにさらに構成された、請求項１に記載のＡＶＳ。
【請求項９】
前記データベースは、前記電圧レベルが前記機能回路について前記ＡＶＳ回路によって前に学習されたかどうかを示すインジケータを記憶するように構成された、請求項１に記載のＡＶＳ。
【請求項１０】
前記ＡＶＳ回路が、前記機能回路の現在の動作周波数に対する現在の電圧レベルと、前記探査された無効動作領域における前記シミュレートされた増加動作周波数との間の電圧マージン許容差を判断するようにさらに構成された、請求項１に記載のＡＶＳ。
【請求項１１】
前記ＡＶＳ回路が、前記電圧マージン許容差を前記データベースに記憶するように構成された、請求項１０に記載のＡＶＳ。
【請求項１２】
前記ＡＶＳ回路が、前記電圧マージン許容差に基づく新しい電圧レベルを前記データベースに記憶するように構成された、請求項１０に記載のＡＶＳ。
【請求項１３】
前記ＡＶＳ回路が、前記データベース中の少なくとも１つの電圧レベルに、より高い動作周波数に対応する前記データベース中の電圧レベルを格納するようにさらに構成された、請求項１に記載のＡＶＳ。
【請求項１４】
前記ＡＶＳ回路は、前記電圧レベルが前記機能回路を無効動作領域中で動作させた場合、前記電圧レベル設定信号に電圧マージンを追加するようにさらに構成された、請求項１に記載のＡＶＳ。
【請求項１５】
前記ＡＶＳ回路は、前記機能回路を無効動作領域中で動作させた前記電圧レベルに対する、前記データベース中の動作周波数をマークするようにさらに構成された、請求項１に記載のＡＶＳ。
【請求項１６】
前記ＡＶＳ回路が、前記電圧レベル設定信号を最小電圧レベル限界より下の電圧レベルに設定しないようにさらに構成された、請求項１に記載のＡＶＳ。
【請求項１７】
前記データベースが前記機能回路の最小電圧レベル限界を記憶するように構成された、請求項１に記載のＡＶＳ。
【請求項１８】
前記ＡＶＳ回路が、前記機能回路の経年変化インジケータに基づいて前記最小電圧レベル限界に電圧レベル補正を適用するようにさらに構成された、請求項１７に記載のＡＶＳ。
【請求項１９】
前記ＡＶＳ回路が、前記機能回路の経年変化インジケータに基づいて前記電圧レベル設定信号に電圧レベル補正を適用するようにさらに構成された、請求項１に記載のＡＶＳ。
【請求項２０】
前記ＡＶＳ回路が、前記機能回路の経年変化インジケータに基づいて電圧レベル補正を前記データベースに記憶するようにさらに構成された、請求項１に記載のＡＶＳ。
【請求項２１】
少なくとも１つの半導体チップに組み込まれた、請求項１に記載のＡＶＳ。
【請求項２２】
前記ＡＶＳが組み込まれた、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末（ＰＤＡ）、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイル電話、セルラー電話、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、ビデオプレーヤ、デジタルビデオプレーヤ、デジタルビデオディスク（ＤＶＤ）プレーヤ、およびポータブルデジタルビデオプレーヤからなる群から選択されたデバイスをさらに含む、請求項１に記載のＡＶＳ。
【請求項２３】
適応電圧スケーラ（ＡＶＳ）であって、
入力信号を受信することと、遅延出力信号を生成するために、機能回路の少なくとも１つの遅延経路に関係する量だけ前記入力信号を遅延させることとを行うための遅延手段と、
データベースに結合され、前記遅延出力信号に応答するＡＶＳ手段であって、前記機能回路のターゲット動作周波数と前記遅延出力信号中の遅延情報とに関連付けられた、前記データベース中の電圧レベルに基づいて電圧レベル設定信号を発生するためのＡＶＳ手段と
を含み、
前記ＡＶＳ手段は、前記機能回路の無効動作領域を探査するために、前記機能回路の増加動作周波数をシミュレートするために前記少なくとも１つの遅延経路の前記遅延を増加させるように構成され、
前記ＡＶＳ手段は、前記増加動作周波数をシミュレートする前に、第１の動作周波数と第１の電圧レベルとを第１の特性曲線に関連付けられた第１のポイントに記録し、
前記ＡＶＳ手段は、前記少なくとも１つの遅延経路の前記遅延の増加に応えて第１の条件が受信された場合に、前記増加動作周波数と現在の電圧レベルとを第２の特性曲線に関連付けられた第２のポイントに記録し、
前記ＡＶＳ手段は、前記第１の特性曲線の傾斜に基づいて、前記第２の特性曲線に関連付けられた第３のポイントを決定する、
適応電圧スケーラ（ＡＶＳ）。
【請求項２４】
適応電圧スケーラ（ＡＶＳ）であって、
入力信号を受信することと、遅延出力信号を生成するために、機能回路の少なくとも１つの遅延経路に関係する量だけ前記入力信号を遅延させることとを行うように構成された少なくとも１つの遅延回路と、
前記遅延出力信号に応答するＡＶＳ回路であって、
前記機能回路のターゲット動作周波数と前記遅延出力信号中の遅延情報とに基づいて電圧レベル設定信号を発生することと、
前記機能回路の無効動作領域を探査するために、前記機能回路の増加動作周波数をシミュレートするために前記少なくとも１つの遅延経路の前記遅延を増加させることと、
前記増加動作周波数をシミュレートする前に、第１の動作周波数と第１の電圧レベルとを第１の特性曲線に関連付けられた第１のポイントに記録することと、
前記少なくとも１つの遅延経路の前記遅延の増加に応えて第１の条件が受信された場合に、前記増加動作周波数と現在の電圧レベルとを第２の特性曲線に関連付けられた第２のポイントに記録することと、
前記第１の特性曲線の傾斜に基づいて、前記第２の特性曲線に関連付けられた第３のポイントを決定することと、
を行うように構成されたＡＶＳ回路と
を含む、
適応電圧スケーラ（ＡＶＳ）。
【請求項２５】
前記ＡＶＳ回路が、前記機能回路の現在の動作周波数に対する現在の電圧レベルと、前記探査された無効動作領域における前記シミュレートされた増加動作周波数との間の電圧マージン許容差を判断するようにさらに構成された、請求項２４に記載のＡＶＳ。
【請求項２６】
前記ＡＶＳ回路は、前記遅延出力信号に応答するものであって、前記遅延出力信号中の遅延情報と、前記機能回路の経年変化インジケータに基づく電圧レベル補正とに基づいて、電圧レベル設定信号を発生するように構成されたものである、
請求項２４に記載の適応電圧スケーラ（ＡＶＳ）。
【請求項２７】
前記経年変化インジケータが、前記機能回路の電源投入時間から構成された、メモリに記憶されたタイマーから構成された、請求項２６に記載のＡＶＳ。
【請求項２８】
機能回路の電圧レベルをスケーリングする方法であって、
少なくとも１つの遅延回路中で入力信号を受信するステップと、
遅延出力信号を生成するために、機能回路の少なくとも１つの遅延経路に関係する遅延量だけ前記入力信号を遅延させるステップと、
前記機能回路のターゲット動作周波数と前記遅延出力信号中の遅延情報とに関連付けられた、データベース中の電圧レベルに基づいて電圧レベル設定信号を発生するステップと、
前記機能回路の無効動作領域を探査するために、前記機能回路の増加動作周波数をシミュレートするために前記少なくとも１つの遅延経路の前記遅延を増加させるステップと、
前記増加動作周波数をシミュレートする前に、第１の動作周波数と第１の電圧レベルとを第１の特性曲線に関連付けられた第１のポイントに記録するステップと、
前記少なくとも１つの遅延経路の前記遅延の増加に応えて第１の条件が受信された場合に、前記増加動作周波数と現在の電圧レベルとを第２の特性曲線に関連付けられた第２のポイントに記録するステップと、
前記第１の特性曲線の傾斜に基づいて、前記第２の特性曲線に関連付けられた第３のポイントを決定するステップと、
を含む、方法。
【請求項２９】
前記遅延出力信号中の前記遅延情報に基づいて複数の学習電圧レベルを前記データベースに記憶するステップをさらに含む、請求項２８に記載の方法。
【請求項３０】
温度センサから受信された温度レベルにさらに基づいて複数の学習電圧レベルを前記データベースに記憶するステップをさらに含む、請求項２９に記載の方法。
【請求項３１】
前記電圧レベルが前記機能回路について前に学習されたかどうかを判断するステップと、
前記電圧レベルが前記機能回路について前に学習されている場合、前記入力信号が安定するのを待つことなしに前記電圧レベル設定信号を発生するステップと
をさらに含む、請求項２８に記載の方法。
【請求項３２】
前記機能回路の現在の動作周波数に対する現在の電圧レベルと、前記探査された無効動作領域における前記シミュレートされた増加動作周波数との間の電圧マージン許容差を判断するステップをさらに含む、請求項２８に記載の方法。
【請求項３３】
前記データベース中の前記電圧レベルに、前記入力信号の動作周波数よりも低い動作周波数に関連付けられた、より高い電圧レベルを格納するステップをさらに含む、請求項２８に記載の方法。
【請求項３４】
前記電圧レベルが前記機能回路を無効動作領域中で動作させた場合、前記電圧レベル設定信号に電圧マージンを追加するステップをさらに含む、請求項２８に記載の方法。
【請求項３５】
前記電圧レベルが前記機能回路を無効動作領域中で動作させた場合、前記データベース中の前記電圧レベルに電圧マージンを追加するステップをさらに含む、請求項２８に記載の方法。
【請求項３６】
ＡＶＳモジュールに、機能回路のターゲット動作周波数と、前記機能回路の少なくとも１つの遅延経路に関係する遅延量を表す遅延出力信号中の遅延情報とに関連付けられた、データベース中の電圧レベルに基づいて電圧レベル設定信号を発生させ、
前記ＡＶＳモジュールに、前記機能回路の無効動作領域を探査するために、前記機能回路の増加動作周波数をシミュレートするために前記少なくとも１つの遅延経路の前記遅延を増加させ、
前記ＡＶＳモジュールに、前記増加動作周波数をシミュレートする前に、第１の動作周波数と第１の電圧レベルとを第１の特性曲線に関連付けられた第１のポイントに記録させ、
前記ＡＶＳモジュールに、前記少なくとも１つの遅延経路の前記遅延の増加に応えて第１の条件が受信された場合に、前記増加動作周波数と現在の電圧レベルとを第２の特性曲線に関連付けられた第２のポイントに記録させ、
前記ＡＶＳモジュールに、前記第１の特性曲線の傾斜に基づいて、前記第２の特性曲線に関連付けられた第３のポイントを決定させる、
コンピュータ実行可能命令を記憶したコンピュータ可読媒体。
【請求項３７】
前記命令がさらに、前記ＡＶＳモジュールに、前記遅延出力信号中の前記遅延情報に基づいて複数の学習電圧レベルを前記データベースに記憶させる、請求項３６に記載のコンピュータ可読媒体。
【請求項３８】
前記命令がさらに、前記ＡＶＳモジュールに、前記電圧レベルが前記機能回路について前に学習されている場合、前記入力信号が安定するのを待つことなしに前記電圧レベル設定信号を発生させる、請求項３６に記載のコンピュータ可読媒体。
【請求項３９】
前記命令がさらに、前記ＡＶＳモジュールに、前記データベース中の少なくとも１つの電圧レベルへ、より高い動作周波数に対応する前記データベース中の電圧レベルを格納させる、請求項３６に記載のコンピュータ可読媒体。
【請求項４０】
前記命令がさらに、前記ＡＶＳモジュールに、前記電圧レベルが前記機能回路を無効動作領域中で動作させた場合、前記電圧レベル設定信号に電圧マージンを追加させる、請求項３６に記載のコンピュータ可読媒体。
【請求項４１】
前記命令がさらに、前記ＡＶＳモジュールに、前記機能回路の経年変化インジケータに基づいて前記電圧レベル設定信号に電圧レベル補正を適用させる、請求項３６に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、各々の全体が参照により本明細書に組み込まれる、2009年3月30日に出願された米国仮特許出願第61/164,882号および2009年7月2日に出願された米国仮特許出願第61/222,779号の優先権および利益を主張する。
【０００２】
本出願の技術は、所与の動作周波数において回路に電力供給する電圧レベルを制御するための適応電圧スケーラ(AVS)および関係するシステムに関する。
【背景技術】
【０００３】
たとえば中央処理ユニット(CPU)やデジタル信号プロセッサ(DSP)など、同期デジタル回路は、回路中の論理のタイミングを合わせるためにクロック信号を必要とする。クロック信号の周波数は、論理のスイッチング速度またはレート、したがって回路のパフォーマンスを制御する。動作周波数と電圧レベルとの間には関係がある。動作周波数が増加すると、適切な動作のために回路に電力供給するために必要な最小電圧レベルが増加する。したがって、動作周波数が増加すると、概して、電力消費が増える。回路に電力供給する電圧レベルを低下させることによって、電力消費を減少させることができる。しかしながら、電圧レベルが減少すると、回路の可能な最大動作周波数が減少する。適切な動作のために必要な、回路の最小しきい値電圧レベルに達するまで、電圧レベルを減少させることができる。
【０００４】
概して、回路の動作周波数を最大にすることによって回路のパフォーマンスを最大にすることが望まれるが、動作周波数を最大にすることが必要とされないかまたは望まれない場合があり得る。この場合、回路の適切な動作に影響を及ぼすことなしに、電力を節約するために、回路に電力供給する電圧レベルを低減することができる。この点について、ダイナミック電圧スケーラ(DVS)が採用され得る。DVSは、回路の所望の動作周波数を判断し、所望の動作周波数において回路のためのクロック信号を生成するようにクロック発生器を制御することができる。DVSはまた、判断された動作周波数を使用して、回路の最小電圧レベルを判断することができる。DVSは、次いで、所望の最小電圧レベルを生成するように電圧調整器を制御することができる。このようにして、DVSは、適切な回路動作を維持しながら、電力を節約するために、所与の動作周波数において電圧を最小電圧レベルに調整することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
他のファクタが、所与の動作周波数において回路に電力供給するために必要とされる最小電圧レベルを上げ得る。たとえば、同期デジタル回路とそれらの構成要素とを製造するために使用されるナノメートル集積回路(IC)プロセスの変動性は、遅延変動を生じ得る。トランジスタの動作温度や時効効果などの環境条件は、伝搬遅延に影響を及ぼし得る。電圧源によって供給される電圧レベルは、電流ドローの変動により瞬間的に低下し、したがってパフォーマンスを瞬間的に低下させ得る。この点について、DVSは、実際にはワーストケース遅延シナリオが常に存在するわけではないが、適切な回路動作を保証するために、ワーストケース遅延シナリオに従って回路の最小電圧レベルを制御するように構成され得る。ワーストケース遅延シナリオが存在しないとき、電圧レベルは低下することがあり、回路は適切に動作する。特定の時間における、所与の動作周波数に対するワーストケース最小電圧レベルと、回路に電力供給するために必要とされる実際の最小電圧レベルとの差は、電圧または電力マージンとして知られている。電圧マージンは、所与の動作周波数において回路が適切に動作するために、理想的には消費される必要がなかった消費電力を表す。
【課題を解決するための手段】
【０００６】
発明を実施するための形態で開示する実施形態は、適応電圧スケーラ(AVS)、AVSシステム、ならびに関係する回路および方法を含む。AVSおよびAVSシステム、回路、および方法は、電圧マージンを回避または低減するために、機能回路のターゲット動作周波数と遅延変動条件とに基づいて、機能回路に電力供給する電圧レベルを適応的に調整するように構成される。電圧マージンを回避または低減することにより、機能回路の適切な動作を維持しながら電力を節約することができる。遅延変動は、各AVSおよび機能回路に固有の1つまたは複数の製造ばらつき、および/または環境条件の変動によって引き起こされる1つまたは複数の動作変動を含み得る。遅延変動条件は、動作周波数と、機能回路の適切な動作のために必要な最小電圧レベルとの間の関係をシフトし得る。機能回路は、一例として同期デジタル回路であり得る。AVSはまた、機能回路の動作周波数と電圧レベルとを設定するための、ダイナミック電圧スケーラ(DVS)への追加の電圧スケーラとして含まれ得る。
【０００７】
一実施形態では、AVSは、入力信号を受信するように構成された少なくとも1つの遅延回路を含む。AVSは、遅延出力信号を生成するために、機能回路の少なくとも1つの遅延経路に関係する遅延量だけ入力信号を遅延させる。AVSはまた、AVSデータベースに結合されたAVS回路を含む。AVS回路は遅延出力信号に応答する。AVS回路は、機能回路の動作周波数と遅延出力信号中の遅延情報とに関連付けられた、データベース中の電圧レベルに基づいて電圧レベル設定信号を発生するように構成される。AVSデータベースは、電圧マージンを回避または低減するために、機能回路の様々な動作周波数に対する電圧レベルを記憶するように構成され得る。
【０００８】
別の実施形態では、AVSデータベースは、機能回路の所与の動作周波数についてAVSによって前に探査された学習電圧レベル設定を記憶するように構成され得る。このようにして、AVS回路は、機能回路の新しい動作周波数が与えられた後、機能回路中で新しい動作周波数が安定するのを待つ必要なしに、迅速な電圧レベル判断を行うことができる。AVSデータベースは、学習電圧レベルを用いて更新され続けるように構成され得る。AVS回路は、AVSデータベース中の学習電圧レベルを更新し得る。AVSデータベースは、突破してはならない、すべての動作周波数に対する最小電圧レベル設定を用いて構成され得る。この場合、機能回路が適切に動作するための最小電圧レベル設定よりも低い、判断された学習電圧レベルは、電圧レベルを設定するために使用されない。
【０００９】
AVSデータベース中の最小電圧レベル設定は、無効動作領域中で機能回路を動作させる危険を冒すことを回避するために、電圧レベルに許容差電圧マージンを与えるように構成され得る。しかしながら、別の実施形態では、AVS回路は、許容差電圧マージンをさらに回避または低減するために、ランタイム動作中に機能回路の無効動作領域を探査するように構成される。この実施形態では、AVSは、入力信号を受信することと、遅延出力信号を生成するために、機能回路の少なくとも1つの遅延経路に関係する量だけ入力信号を遅延させることとを行うように構成された少なくとも1つの遅延回路を含み得る。AVSはまた、遅延出力信号に応答するAVS回路を含み得る。AVS回路は、機能回路のターゲット動作周波数と遅延出力信号中の遅延情報とに基づいて電圧レベル設定信号を発生するように構成され得る。AVS回路はまた、機能回路の無効動作領域を探査するために、機能回路の増加動作周波数をシミュレートするために少なくとも1つの遅延経路の遅延を増加させるように構成され得る。AVS回路は、許容差電圧マージンをさらに回避または低減するために、無効動作領域への遷移のポイントを使用して、現在の動作周波数に対する修正電圧レベル設定を判断することができる。
【００１０】
別の実施形態では、AVS回路は、所与の動作周波数に対する電圧レベル設定でのAVSデータベースのポピュレーションを加速するように構成され得る。AVS回路が現在の動作周波数に対する電圧レベルを学習すると、AVS回路は、AVSデータベース中のより低い動作周波数に対する電圧レベルを調べる。より低い動作周波数に対する記憶された電圧レベルが現在の動作周波数に対する学習電圧レベルよりも大きい場合、AVS回路は、より低い動作周波数に対する電圧レベルを、AVSデータベース中のより低い学習電圧レベルと置き換えることができる。機能回路は、より低い動作周波数に対する学習電圧レベルにおいて適切に動作することが可能であることが知られている。このようにして、AVSデータベースは、動作中に電圧マージンがより急速に回避または低減されるように、可能な場合、より低い電圧設定で、より急速にポピュレートされる。
【００１１】
別の実施形態では、機能回路の現在の動作温度レベルを与えるために、温度センサがAVSに組み込まれる。機能回路の動作温度は、機能回路の所与の動作周波数に対する最小電圧レベル設定をシフトし得る。AVS回路は、動作温度レベルを使用して、動作温度レベルに応じて電圧レベルをAVSデータベースに記憶し、更新する。AVS回路はまた、温度センサから受信された動作温度レベルを使用して、動作中に、現在の動作周波数と動作温度レベルとに対応する電圧レベルを選択することができる。このようにして、電圧マージンを回避または低減するために、動作温度に基づく、所与の動作周波数に対する電圧レベルのシフトを考慮に入れるとともに、無効動作領域中で機能回路を動作させることを回避することもできる。AVS回路は、動作温度レベルに応じた電圧レベルをAVSデータベースに記憶することができる。たとえば、AVSデータベースは、それぞれが異なる動作温度領域に対応する複数の学習電圧レベル設定テーブルを含み得る。
【００１２】
別の実施形態では、AVSは、電圧レベルが機能回路を無効動作領域中でいつ動作させたかを学習するように構成され得る。この実施形態では、入力信号を受信することと、遅延出力信号を生成するために、機能回路の少なくとも1つの遅延経路に関係する量だけ入力信号を遅延させることとを行うように構成された少なくとも1つの遅延回路を含むAVSが提供され得る。AVSは、遅延出力信号に応答するAVS回路であって、遅延出力信号中の遅延情報に基づいて電圧レベル設定信号を発生するように構成されたAVS回路を含み得る。AVS回路は、電圧レベルが機能回路を無効動作領域中で動作させた場合、電圧レベル設定信号に電圧マージンを追加するようにさらに構成され得る。このようにして、AVS回路は、現在の動作周波数に対する電圧レベル設定を増加させることによって、AVSデータベース中の現在の電圧レベル設定を「バックアウトする」ように構成され得る。
【００１３】
別の実施形態では、AVSは、負バイアス温度不安定性(NBTI)について電圧レベルを補償するように構成され得る。この実施形態では、AVSは、入力信号を受信することと、遅延出力信号を生成するために、機能回路の少なくとも1つの遅延経路に関係する量だけ入力信号を遅延させることとを行うように構成された少なくとも1つの遅延回路を含み得る。AVSはまた、遅延出力信号に応答するAVS回路であって、遅延出力信号中の遅延情報と、機能回路の経年変化インジケータに基づく電圧レベル補正とに基づいて、電圧レベル設定信号を発生するように構成されたAVS回路を含み得る。このようにして、AVSは、動作周波数に対する最小電圧レベルを時間とともに上げることによって、NBTIを補償するように構成され得る。AVSは、AVSデータベース中で最小電圧レベルを時間とともに上げるように構成され得る。いずれかの動作周波数に対する判断された電圧レベルが補償最小電圧レベルより下である場合、AVSは、補償最小電圧レベル設定をエンフォースするように構成され得る。学習電圧レベルは、AVSデータベース中の補償電圧レベルを用いて更新され得る。
【００１４】
別の実施形態では、機能回路に対する電圧レベルをスケーリングする方法が提供される。本方法は、少なくとも1つの遅延回路中で入力信号を受信するステップを含む。本方法は、遅延出力信号を生成するために、機能回路の少なくとも1つの遅延経路に関係する遅延量だけ入力信号を遅延させるステップと、機能回路のターゲット動作周波数と、遅延出力信号中の遅延情報とに関連付けられた、データベース中の電圧レベルに基づいて電圧レベル設定信号を発生するステップとをさらに含む。
【００１５】
別の実施形態では、コンピュータ実行可能命令を記憶したコンピュータ可読媒体が提供される。AVSモジュールに、機能回路のターゲット動作周波数と、機能回路の少なくとも1つの遅延経路に関係する遅延量を表す遅延出力信号中の遅延情報とに関連付けられた、データベース中の電圧レベルに基づいて電圧レベル設定信号を発生させるための命令が提供される。
【図面の簡単な説明】
【００１６】
【図１】例示的な適応電圧スケーラ(AVS)、AVSシステムおよび機能回路の概略図である。
【図２】AVSデータベースに記憶された例示的なAVS周波数/電圧レベルテーブルである。
【図３】機能回路の動作領域を示す例示的な動作周波数対電圧レベル図である。
【図４】電圧マージンを回避または低減するために、動作周波数に基づいて機能回路の電圧レベルを設定するために学習電圧レベルを適応的に記憶し、使用するために、AVSデータベースを利用するための例示的なプロセスを与えるフローチャートである。
【図５】図1中のAVSの制御下でクロック発生器によって発生されるクロック信号の例示的な動作周波数タイミング図である。
【図６Ａ】図1中のAVSの制御下で電圧調整器によって発生される電圧信号の例示的な電圧レベルタイミング図である。
【図６Ｂ】新しい動作周波数が安定するのを待つ必要なしに、AVSによって新しい電圧レベルを設定することができなかった場合の、電圧信号の例示的な電圧レベルタイミング図である。
【図７】探査された動作周波数に対する学習電圧レベルを記憶するためにAVSデータベース中に含まれ得る例示的なAVS学習値テーブルである。
【図８】機能回路の様々な動作領域を示す例示的な動作周波数対電圧レベル図である。
【図９】所与の動作周波数における機能回路の無効動作領域を探査し、そのような探査に基づく修正電圧レベルを記憶するための例示的なプロセスを与えるフローチャートである。
【図１０】機能回路の動作領域を示す例示的な動作周波数対電圧レベル図である。
【図１１】AVSデータベースに記憶された例示的なAVS周波数/電圧レベルテーブルである。
【図１２】AVSデータベースに記憶された例示的な電圧レベル差テーブルである。
【図１３】AVSデータベース中の所与の動作周波数に対する電圧レベルのポピュレーションを加速するための例示的なプロセスを与えるフローチャートである。
【図１４】AVSデータベース中の電圧レベルの加速されたポピュレーションの例である。
【図１５】様々な動作温度についての、AVSデータベースに記憶された例示的なAVS動作周波数/電圧レベルテーブルである。
【図１６】機能回路が無効動作領域に入ったとき、電圧レベルに電圧マージンを追加するための例示的なプロセスを与えるフローチャートである。
【図１７】様々な動作周波数に対応する、AVSデータベースに記憶された例示的な最小電圧レベル限界テーブルである。
【図１８】機能回路の様々な動作領域を示す例示的な動作周波数対電圧図である。
【図１９】負バイアス温度不安定性(NBTI)効果に基づいて、AVSデータベース中の電圧レベルに電圧レベル補正を追加するための例示的なプロセスを与えるフローチャートである。
【図２０】別の例示的なAVSシステムの概略図である。
【図２１】AVSを採用する例示的な中央処理ユニット(CPU)機能回路および関係するシステムのブロック図。
【発明を実施するための形態】
【００１７】
次に図面を参照しながら、本開示のいくつかの例示的な実施形態について説明する。「例示的」という単語は、本明細書では「例、事例、または例示の働きをすること」を意味するために使用する。本明細書で「例示的」と記載されたいかなる実施形態も、必ずしも他の実施形態よりも好ましいまたは有利であると解釈すべきではない。
【００１８】
発明を実施するための形態で開示する実施形態は、適応電圧スケーラ(AVS)、AVSシステム、ならびに関係する回路および方法を含む。AVSおよびAVSシステム、回路、および方法は、電圧マージンを回避または低減するために、機能回路のターゲットまたは所望の動作周波数と遅延変動条件とに基づいて、機能回路に電力供給する電圧レベルを適応的に調整するように構成される。電圧マージンを回避または低減することにより、機能回路の適切な動作を維持しながら電力を節約することができる。遅延変動は、各AVSおよび機能回路に固有の1つまたは複数の製造ばらつき、および/または環境条件の変動によって引き起こされる1つまたは複数の動作変動を含み得る。遅延変動条件は、動作周波数と、機能回路の適切な動作のために必要な最小電圧レベルとの間の関係をシフトし得る。機能回路は、一例として同期デジタル回路であり得る。AVSはまた、機能回路の動作周波数と電圧レベルとを設定するための、ダイナミック電圧スケーラ(DVS)への追加の電圧スケーラとして含まれ得る。
【００１９】
この点について、例示的な適応電圧スケーラ(AVS)システム10を図1に概略的に示す。AVSシステム10は、機能回路15中の論理のスイッチング速度またはレートを制御するための、クロック発生器14によって発生されるクロック信号12の動作周波数を判断し、設定するように構成されたAVS11を含む。機能回路15は、一例として同期デジタル回路であり得る。AVS11は、クロック信号12の動作周波数を制御するために、クロック発生器14への入力としての動作周波数設定信号16を発生する。クロック発生器14は、従来のクロック信号、グリッチフリークロック信号、または他のタイプの所望のクロック信号を与え得る。
【００２０】
AVS11はまた、機能回路15に電力供給するために機能回路15に供給される電圧信号18の電圧レベルを制御する。AVS11は、電圧信号18の電圧レベルを制御するために、電圧調整器22への入力としての電圧レベル設定信号20を発生する。電圧レベルは、AVS11によって判断された動作周波数と遅延変動条件とに基づいて判断される。機能回路15の動作周波数と、適切な動作のために機能回路15に電力供給するための最小電圧レベルとの間には関係がある。動作周波数が増加すると、適切な動作のために機能回路15に電力供給するための最小電圧レベルが増加する。動作周波数が減少すると、少なくとも機能回路15に電力供給するために必要な最小しきい値電圧に達するまで、適切な動作のために機能回路15に電力供給するための最小電圧レベルが減少する。
【００２１】
引き続き図1を参照すると、AVS11は、同調ループ24中で、周期的または非周期的に、経時的に繰り返し、機能回路15の動作周波数と電圧レベルとを適応的に判断する。動作周波数設定信号16は、パフォーマンス能力を超えることなしに、機能回路15のパフォーマンスマージンを回避または低減するように適応的に制御される。電圧レベル設定信号20は、ターゲット動作周波数を維持しながら、機能回路15のための電力を節約するために、電圧マージンを回避または低減するように同じく適応的に制御される。電圧信号18は、AVS11中のAVSモジュール28によって発生された電圧レベル設定信号20に従って電圧調整器22によって生成される。AVSモジュール28は回路である。AVS11は、作業負荷推定値27に応答して動作周波数設定信号16と電圧レベル設定信号20とを発生する。
【００２２】
機能回路15中で与えられる遅延変動条件に基づいて遅延を生成するために、AVS11中に1つまたは複数の遅延回路25が設けられる。機能回路15中での遅延は、製造プロセスおよび/または動作条件の変動により変動し得る。遅延回路25は、同調ループ24の一部としてクロック発生器14によって発生されたクロック信号12を入力信号として受信する遅延線クロック論理26を含む。遅延線クロック論理26は、遅延線30へのクロック信号12の遅延を表す出力信号29と、クロック周期遅延34へのクロック信号12の遅延を表す出力信号32とを発生する。遅延線30は、機能回路15中の1つまたは複数の選択された遅延経路に対応するように構成された複数の遅延経路(図示せず)を有する。選択された遅延経路は、動作中に遅延変動条件に基づいて機能回路15中の選択された遅延経路と同じまたは同様の方法でシミュレートし、調整するように構成された関連する遅延を有する。たとえば、遅延経路は、ゲート支配、配線支配、および/または拡散容量支配の遅延経路を含み得、遅延経路のうちの1つが、機能回路15の現在の動作条件に応じてより大きい遅延を生成する。選択された遅延経路はまた、機能回路15中の1つまたは複数の臨界経路(critical path)に対応し得る。遅延線30は、その中の選択された遅延経路が、AVS11に結合された特定の機能回路15に同調されることを可能にするためにプログラム可能であり得る。
【００２３】
遅延回路25中の遅延線30は、この実施形態では、コンパレータ38に入力される遅延線出力36を発生する。コンパレータ38は、一例として比較フリップフロップであり得る。コンパレータ38は、クロック周期遅延34からのクロック周期遅延信号40を受信すると、遅延出力信号42を発生する。遅延出力信号42は、AVSモジュール28への入力として遅延回路25から受信される。遅延出力信号42は、遅延線30中の最長遅延経路の選択を表し、したがって機能回路15中の遅延またはタイミングマージンを表す。AVSモジュール28は、電圧マージンを回避または低減しながら、機能回路15の適切な動作を維持するために、タイミングマージン情報を使用して、次の動作周波数を推定する。AVSモジュール28は機能回路15の次の動作周波数を選択する。より詳細には、AVSモジュール28は、次の動作周波数に従ってクロック信号12を変更するようにクロック発生器14を制御するために、動作周波数設定信号16を発生する。この実施形態では、AVSモジュール28はソフトウェア制御プロセッサまたはコントローラである。ただし、AVSモジュール28はまた、プロセッサまたはソフトウェアなしにディスクリート論理によって与えられ得るか、あるいは回路中で実行するソフトウェアによって部分的に制御可能であり得る。
【００２４】
AVSモジュール28は、次に、新しい動作周波数要求に基づいて機能回路15に電力供給するための新しい電圧レベルを判断する。新しい電圧レベルは、電圧マージンを回避または低減しながらも機能回路15を適切に動作させるための、動作周波数に対する安全な最小電圧レベルである。AVSモジュール28は、機能回路15中での動作周波数と電圧レベルとの間の関係をシフトし得る遅延変動条件に基づいて電圧レベルを調整し得る。新しい動作周波数に対する新しい電圧レベルを判断するAVSモジュール28の例を示す様々な実施形態を本明細書で開示する。AVSモジュール28は、新しい動作周波数に対する新しい電圧レベルを判断した後、新しい電圧レベルを適用する。AVSモジュール28は、新しい電圧レベルを電圧調整器22に与えるために電圧レベル設定信号20を発生する。電圧調整器22は、機能回路15に電力供給するために新しい電圧レベルで電圧信号18を発生する。クロック信号12および電圧信号18はまた、機能回路15中での動作周波数と遅延変動条件とに基づいて機能回路15の電圧レベルの適応制御を行うために、同調ループ24の次の反復中にAVS11に入力される。
【００２５】
AVSモジュール28は、さらに、場合によってはAVS11中に含まれる温度センサ48から受信される動作温度レベル信号46を使用して、次の動作周波数に対する電圧レベルをさらに調整することができる。温度レベルは、所与の動作周波数における機能回路15の適切な動作を維持するための最小電圧レベルをシフトし得る。次の電圧レベル設定を判断するための、AVS11による動作温度レベルの使用に関する詳細については、本出願中で後で説明する。
【００２６】
上記で説明したように、AVSモジュール28は、所与の新しい、判断された動作周波数に対する、機能回路15に電力供給するための新しい電圧レベルを判断する。新しい電圧レベルを判断するAVSモジュール28の一例を、図2中のAVS周波数/電圧レベルテーブル50において与える。AVS周波数/電圧レベルテーブル50は、AVSデータベース44に記憶され、新しい電圧レベルを判断するためにAVSモジュール28によってアクセスされ得る。AVSモジュール28はまた、本明細書で説明するように、AVS周波数/電圧レベルテーブル50中の学習電圧レベルを更新し得る。AVSモジュール28は、次の電圧レベルを判断するためにAVS周波数/電圧レベルテーブル50中の電圧レベルにアクセスするためのソフトウェア命令を実行するソフトウェア制御モジュールまたはプロセッサであり得る。代替的に、AVSモジュール28は、AVSモジュール28によって実行されるソフトウェアによって部分的に制御可能であり得る。AVSモジュール28はまた、次の動作周波数と電圧レベルとを判断するためのソフトウェア命令を実行し得る。AVSモジュール28をソフトウェアベースのモジュールとして与えることにより、AVS11および機能回路15が設計および/または製造された後、動作周波数および電圧レベルならびにAVSデータベース44に記憶された情報を判断するための、AVSモジュール28に含まれているパラメータおよびアルゴリズムを容易に構成または再構成することが可能になる。しかしながら、ソフトウェアベースのモジュールまたはデバイスを使用せずに電気回路中にAVSモジュール28を設けることもできる。
【００２７】
図2中のAVS周波数/電圧レベルテーブル50は、機能回路15の適切な動作を維持しながら電圧マージンを回避または低減するための、様々な所与の動作周波数に対する機能回路15の安全な、あらかじめ選択された最小電圧レベルを表す。したがって、AVS周波数/電圧レベルテーブル50は機能回路15に固有のものである。この実施形態におけるAVS周波数/電圧レベルテーブル50は、有限数の動作周波数と電圧レベルとのペア52を含んでいる。たとえば、図2に示すように、1.0ギガヘルツ(GHz)の動作周波数に対する、AVS周波数/電圧レベルテーブル50に記憶された最小電圧レベルは、1.32ボルト(V)である。動作周波数が低下するにつれて最小電圧レベルは低下する。AVS周波数/電圧レベルテーブル50は、AVSデータベース44中に所望の任意の数の動作周波数と電圧レベルとのペアを含んでいるように設計され得る。この実施形態では、AVS周波数/電圧レベルテーブル50中に含まれていない動作周波数ポイントに対する電圧レベルをAVSモジュール28によって補間することができる。直線性を仮定することが望まれない場合、AVSモジュール28は、AVS周波数/電圧レベルテーブル50中に含まれていない動作周波数に対する電圧レベルを、AVS周波数/電圧レベルテーブル50中に含まれている次に高い動作周波数の電圧レベルに設定することができる。
【００２８】
AVS11のリセット時に、同調ループ24は、AVSモジュール28が電圧レベルを適応的に判断することができるように、まだ反復していない。したがって、一実施形態では、適応電圧レベルが学習されるまで、AVS周波数/電圧レベルテーブル50中に含まれている各動作周波数ポイントに対する既知の安全な電圧レベルでAVS周波数/電圧レベルテーブル50を初期化することができる。代替的に、AVS周波数/電圧レベルテーブル50は、その中に含まれているすべての動作周波数ポイントを初期化されていないものとして最初に登録することができる。AVSモジュール28は、AVS周波数/電圧レベルテーブル50中に含まれている各新しい動作周波数がAVSモジュール28によって探査され、新しい動作周波数に対する新しい電圧レベルが判断されたとき、AVS周波数/電圧レベルテーブル50中の電圧レベルをポピュレートすることができる。
【００２９】
図2中のAVS周波数/電圧レベルテーブル50は、有限数の動作周波数と電圧レベルとのペア52を含んでいるが、この表現は、機能回路15の動作周波数対電圧レベル特性曲線に沿ったポイントのデジタルストレージの関数にすぎない。例示的な動作周波数の一例である図3に、その中で与えられる動作周波数対電圧レベル図55中に機能回路15の電圧レベル特性曲線54(本明細書では「特性曲線54」とも呼ぶ)が示されている。特性曲線54は、可能な動作周波数の範囲にわたって所与の動作周波数に対して機能回路15によって必要とされる最小電圧レベルを表す。特性曲線54を下回る動作周波数、電圧レベルポイントは機能回路15の無効動作領域56中にある。特性曲線54上またはそれより上の動作周波数、電圧レベルポイントは機能回路15の有効動作領域58中にある。特性曲線54は、図3の例では0.85Vである、動作周波数にかかわらず機能回路15を適切に動作させるための最小動作電圧をも示すことに留意されたい。
【００３０】
AVS周波数/電圧レベルテーブル50の代替として、動作周波数と電圧レベルとのペア52は、特性曲線54を近似する、AVSデータベース44またはAVSモジュール28中で与えられる多項式によって判断され得る。特性曲線54はまた、各々が特性曲線54中の動作周波数の下位範囲を表す複数の多項式によって表され得、これは、低次多項式を使用して特性曲線54を表すことを可能にし得る。
【００３１】
動作周波数、電圧レベル特性曲線54は、この例では、機能回路15の動作周波数に対する理想的な最小電圧レベルを表すが、遅延変動条件が特性曲線54を理想的な条件からシフトし得る。遅延変動条件は、機能回路中の所与の遅延経路中の遅延を変化させ得る条件であり得る。たとえば、遅延変動条件は、集積回路(IC)の製造中に生じる個々のICにわたるプロセス変動を含み得る。トランジスタの動作温度や時効効果などの環境条件も、機能回路15中の伝搬遅延に影響を及ぼし得る。電圧源によって供給される電圧レベルは電流ドローの変動により瞬間的に低下し、したがって機能回路15のパフォーマンスを瞬間的に低下させ得る。したがって、AVS11は、他の実施形態によれば、機能回路15の適切な動作を維持しながら、電圧マージンの回避または低減をさらに適応的に最適化するために、追加の利益およびパフォーマンスを提供するためのいくつかの追加の特徴およびデバイスを含むことができる。次に、これらの追加の特徴およびデバイス実施形態について説明する。
【００３２】
一実施形態では、所与の1つまたは複数の動作周波数についてAVS11によってすでに探査された学習最適電圧レベル設定を記憶するために、AVSデータベース44を利用することができる。このようにして、AVSモジュール28は、新しい動作周波数が安定するのを待つ必要なしに、機能回路15を、前に探査された新しい動作周波数に対する特定の最適電圧レベル設定に迅速に戻すために、電圧レベル設定信号20を発生することができる。機能回路15による総電力消費量をさらに節約するために、AVSモジュール28による新しい動作周波数の設定の時間と新しい動作周波数の安定との間に存在する追加の電圧マージンを回避または低減することができる。
【００３３】
この点について、図4に、AVSデータベース44に記憶された記憶学習電圧レベル設定に基づいて機能回路15の動作周波数と電圧レベルとを適応的に判断し、設定するために、AVS11中のAVSモジュール28によって実行され得る例示的なプロセスのフローチャートを与える。図4中のプロセスは、この実施形態では、同調ループ24の一部としてAVSモジュール28によって実行される。プロセスは、AVSモジュール28が機能回路15の新しい動作周波数要求を受信すること(ブロック60)によって開始する(ブロック59)。AVSモジュール28は、図1に示すように、新しい動作周波数要求を作業負荷推定値27として受信する。この実施形態では、AVSモジュール28は、次に、新しい動作周波数と電圧レベルとを設定する前に、以下でより詳細に説明するように、現在の動作電圧の電圧レベルを判断し、それに応じてAVSデータベース44を更新する(ステップ61)。代替的に、機能回路15の新しい動作周波数と電圧レベルとが設定された後に実行し、AVSデータベース44を更新するようにAVSモジュール28を構成することができる。同じく以下でより詳細に説明するように、他の特徴および機能がAVSモジュール28によって実行され得る。AVSモジュール28は、次いで、新しい動作周波数が現在の動作周波数よりも大きいかどうかを判断する(ブロック62)。新しい動作周波数が現在の動作周波数よりも大きくない場合、AVSモジュール28は、機能回路15の電圧レベルを調整すべきかどうかを判断する必要なしに、新しい動作周波数のための動作周波数設定信号16の設定を直ちに進めることができる(ブロック63)。機能回路15は、現在の電圧レベル設定に対して、より低い動作周波数において適切に動作することが可能であることが知られている。しかしながら、電圧マージンを回避または低減するために、可能な場合、現在の電圧レベルを低減することが依然として望まれる。この点について、AVSモジュール28は、機能回路15の新しい電圧レベルを判断するために、機能回路15中で新しい動作周波数が安定するのを待つ(ブロック64)。これは、いくつかのクロックサイクルと同調ループ24の反復とを必要とし得る。
【００３４】
新しい動作周波数が安定した後、AVSモジュール28は、新しい動作周波数がAVSデータベース44中でAVSモジュール28によって前に探査されたかどうかを判断する(ブロック65)。前に探査されていない場合、AVSモジュール28は、新しい動作周波数に対して電圧レベルを既知の安全な電圧レベルにプログラムする(ブロック66)。安全な電圧レベルはDVS設定に基づき得る。新しい動作周波数がAVSデータベース44中でAVSモジュール28によって前に探査されている場合(ブロック65)、AVSモジュール28は、AVSデータベース44に記憶された学習電圧レベルに基づいて電圧レベル設定信号20を機能回路15の新しい電圧レベルに設定する(ブロック67)。以下でより詳細に説明するように、AVSモジュール28は、機能回路15の変動条件と動作条件とに基づいて電圧マージンを回避または低減するために、探査された動作周波数に対応する学習電圧レベルをAVSデータベース44に記憶するように構成される。学習電圧レベルは、一般に、安全な電圧レベルよりも低くなり、したがって機能回路15によるエネルギー消費を低減する。したがって、AVSデータベース44を使用して学習電圧レベルを記憶することによって、他の場合よりも機能回路15中で電圧レベルをより迅速に低下させることができる。これを、以下で説明する図5および図6において例として示す。
【００３５】
図5は、図1中のAVS11の制御下でクロック発生器14によって発生されるクロック信号12の例示的な動作周波数タイミング図80を示す。図6Aは、同じく図1中のAVS11の制御下で電圧調整器22によって発生される電圧信号18の対応する例示的な電圧レベルタイミング図82を示す。図5に示すように、クロック信号12は、時間t3から時間t4まで動作周波数f3にある。時間t4において、AVSモジュール28はクロック発生器14のための新しい動作周波数をf1に設定する(たとえば、図4、ブロック63参照)。クロック信号12の動作周波数は、時間t4とt5との間にf3からf1へ下がり始め、時間t5において周波数f1で安定化する。AVSモジュール28が、機能回路15中で新しい動作周波数が安定したと判断した後(たとえば、図4、ブロック64参照)、AVSモジュール28はAVSデータベース44を調べる。AVSモジュール28は、AVSデータベース44を調べて、新しい動作周波数f1に対する電圧レベルが前に探査され、学習されたかどうかを判断する(たとえば、図4、ブロック65参照)。この例では、AVSデータベース44は、新しい動作周波数f1に対する、前に探査された学習電圧レベルを含んでいた(たとえば、図4、ブロック67参照)。したがって、図6A中の電圧レベルタイミング図82に示すように、AVSモジュール28は、新しい動作周波数が安定するのを待つ必要なしに、1クロックサイクル中で電圧レベル設定信号20を新しい、前に学習された電圧レベルに設定することができた。さもなければ、AVSモジュール28は、図6Bの電圧レベルタイミング図83に示すように、1クロックサイクル中で電圧レベル設定信号20を新しい電圧レベルに設定することができなかったであろう。プロセスは、AVSモジュール28が新しい動作周波数要求を受信するたびに、開始(ブロック59)に戻ることによって、ループ様式で図4中のステップを繰り返し続ける。
【００３６】
新しい動作周波数が現在の動作周波数よりも大きい場合(ブロック62)、図6Aの電圧レベルタイミング図82中の時間t1において例として示されているように、AVSモジュール28は動作周波数設定信号16を新しい動作周波数に直ちに設定しない。これは、図5の動作周波数タイミング図80中の時間t1において例として示されている。これは、AVSモジュール28が、新しい動作周波数を設定する前に、機能回路15が適切に動作することを保証するために、最初に新しい電圧レベルを判断するからである。この点について、AVSモジュール28は、新しい動作周波数がAVSデータベース44中でAVSモジュール28によって前に探査されたかどうかを判断する(ブロック70)。前に探査されていない場合、AVSモジュール28は、新しい動作周波数に対して電圧レベルを既知の安全な電圧レベルにプログラムする(ブロック71)。安全な電圧レベルはDVS設定に基づき得る。新しい動作周波数がAVSデータベース44中でAVSモジュール28によって前に探査されている場合(ブロック70)、AVSモジュール28は、AVSデータベース44に記憶された学習電圧レベルに基づいて電圧レベル設定信号20を機能回路15の新しい電圧レベルに設定する(ブロック72)。この場合も、AVSモジュール28は、機能回路15の変動条件と動作条件とに基づいて電圧マージンを回避または低減するために、電圧レベルをより迅速に低下させるために、探査された動作周波数に対応する学習電圧レベルをAVSデータベース44に記憶するように構成される。学習電圧レベルは、一般に、安全な電圧レベルよりも低くなり、したがって機能回路15によるエネルギー消費を低減する。その後、AVSモジュール28は、機能回路15中で新しい電圧レベルが安定するのを待つ(ブロック73)(たとえば、t1〜t2)。AVSモジュール28が、新しい動作周波数が設定され得る前に新しい電圧レベルが安定するのを待つ間、追加の周波数マージンが存在し得る。新しい電圧レベルが安定した後、AVSモジュール28は、機能回路15の新しい動作周波数をより高い動作周波数に安全に調整する(ブロック74)(たとえば、t2〜t3)。プロセスは、AVSモジュール28が新しい動作周波数要求を受信するたびに、開始(ブロック59)に戻ることによって、ループ様式で図4中のステップを繰り返し続ける。
【００３７】
図7に、AVS11が前に探査された動作周波数に対する電圧レベルを学習することの一部として、AVSデータベース44に記憶され、維持され得るAVS学習値テーブル90の例を示す。AVS11中のAVSモジュール28は、前に説明したように、AVS学習値テーブル90を調べて、電圧レベルが特定の動作周波数について前に探査され、学習されたかどうかを判断することができる(たとえば、図4、ブロック65およびブロック70参照)。AVSモジュール28は、AVSデータベース44の更新プロセスの一部としてAVS学習値テーブル90を更新し得る(たとえば、図4、ブロック69)。この実施形態では、図7に示すように、AVS学習値テーブル90は、図2中のAVS周波数/電圧レベルテーブル50と同様である。ただし、AVS学習値テーブル90は、電圧レベル列94に記憶された対応する電圧レベルが、動作周波数列96中の対応する動作周波数について前に探査され、学習されたかどうかを示す学習列92を含んでいる。たとえば、学習列92は、電圧レベル列94に記憶された値が、有効な、前に探査された学習電圧レベルであるか、あるいは初期または無効データを含んでいるかについてのインジケータを記憶するように構成され得る。たとえば、インジケータは、図7に示す妥当性ビット98であり得る。論理「1」は有効値を表し得、論理「0」は無効値を表し得、またはその逆である。図7に示すように、400MHzを除く動作周波数の各々は、前に学習された電圧レベルを含んでいる。
【００３８】
AVSモジュール28は、学習電圧レベル設定を用いてAVSデータベース44中のAVS学習値テーブル90を更新し続けることができる。前に説明したように、AVSモジュール28は、突破してはならない、機能回路15のすべての動作周波数に対する最小電圧レベル設定を用いて構成され得る。この場合、AVSモジュール28は、機能回路15のすべての動作周波数に対する最小電圧レベル設定よりも低い学習電圧レベル設定をAVSデータベース44に記憶しないように構成され得る。
【００３９】
この例では、図7のAVS学習値テーブル90に記憶されたいくつかの電圧レベルは、図2中のAVS周波数/電圧レベルテーブル50中の対応する電圧レベルよりも低い。これは、AVS11が、機能回路15中の電圧レベルと動作周波数との間の関係においてAVSモジュール28によって判断された追加の遅延変動を考慮に入れることによるものであり得る。AVSモジュール28は、遅延変動条件に基づいて他の電圧レベルを適応的に学習するまで、AVS学習値テーブル90中の電圧レベルを、図2のAVS周波数/電圧レベルテーブル50中の電圧レベルなど、機能回路の安全な電圧レベルで、最初にポピュレートするように構成され得る。一般に、AVS11の目的は、機能回路15中での動作パラメータと遅延条件とに基づいて電圧マージンを低減することであるので、学習電圧レベルの電圧レベルは初期電圧レベルよりも低くなる。
【００４０】
別の実施形態では、AVS11は、電圧マージンをさらに回避または低減するために、ランタイム中に機能回路15の無効動作領域を探査するように構成される。機能回路15の無効動作領域を探査する実施形態について説明する前に、図8中の例示的な動作周波数対電圧図100について最初に説明する。図8に示すように、機能回路15は、有効動作領域102と無効動作領域104との2つの動作領域を有する。機能回路15の特性曲線106のセットは、有効動作領域102中の動作周波数と最小電圧レベル値とのペアによって形成される線である。特性曲線106は無効動作領域104から有効動作領域102を分離する。動作周波数にかかわらず、機能回路15の適切な動作のための最小電圧レベルがあり、図8中の動作周波数対電圧図100では0.85Vとして例として示されている。定義された動作周波数より上では、有効動作領域102中での機能回路15の適切な動作を維持するために、最小電圧レベルを増加させなければならない。
【００４１】
ダイナミック電圧スケーラ(DVS)線108は、機能回路15中の電圧レベルを制御するためにDVSが採用された場合の、機能回路15の動作の下限を示す。DVS線108は、機能回路15中のプロセスと動作条件とのすべての許容変動にわたる有効動作領域102のための最小電圧レベルを与える。AVS線110は、DVS線108よりも低い、機能回路15の動作の限界を示す。AVS線110は、AVS11が、機能回路15中の電圧レベルを判断し、設定するときに、機能回路15中のプロセスと動作条件との遅延変動を考慮に入れることによる電圧マージンの低減を表す。図8中の動作周波数対電圧レベル図100には、図1中のAVS11からの3つの可能な決定を表す2つのAVS線112、114がある。これは、コンパレータ38が、若干の内蔵ヒステリシスを有し得る比較フリップフロップを含むことによる。3つの可能な決定は次の通りである。
・  現在の電圧レベルが機能回路15の適切な動作のために必要な電圧レベルよりも高いことを意味する「Vdown」条件、
・  現在の電圧レベルが機能回路15の適切な動作のために十分であることを意味する「変更なし」条件、および
・  現在の電圧レベルが機能回路15の適切な動作のために必要な電圧レベルよりも低いことを意味する「Vup」条件。
【００４２】
電力消費の観点から機能回路15を動作させるための望ましいポイントは、「変更なし」から「Vup」までの動作領域からの遷移を定義するAVS線114である。このAVS線114上で、機能回路15の適切な動作を維持するための可能な最小電圧レベルが与えられる。しかしながら、AVS線114上では、電圧マージン許容差はほとんどまたはまったく与えられない。AVS線114がAVSモジュール28によって電圧レベルを制御するために使用された場合、AVS11がクロック信号12の動作周波数を測定することに関連するタイミング遅延により、機能回路15の無効動作を示す「Vup」条件が生じ得る。その結果、AVSモジュール28は、いくつかの時間期間中に無効動作領域104中の電圧レベルを設定し得る。「Vup」条件によりAVS11および機能回路15はリセットされ得る。したがって、AVS11の一実施形態では、AVS線112を使用して、所与の動作周波数に対する電圧レベルを判断する。AVS線112は、DVS線108よりも電圧マージンを低減するが、AVS線114よりも、無効動作領域104中で機能回路15を動作させることを回避するための電圧マージン許容差を含む。本明細書でさらに説明する実施形態は、電圧マージンをAVS線112からAVS線114上の0電圧マージンに、またはできる限り0に近い電圧マージンにさらに低減する。
【００４３】
この点について、AVS11の一実施形態は、一例として、図8中のAVS線112からAVS線114までなど、電圧マージン許容差を低減するために、ランタイム中に機能回路15の無効動作領域を探査するように構成される。無効動作領域を探査することにより、AVSモジュール28は、AVS11の固有の時間測定制約があるとすれば、電圧マージン許容差がさらに低減され得るかどうかを判断することが可能になる。一例として図8を参照すると、この実施形態では、AVSモジュール28は、所望される場合、AVS線112より下、および/またはAVS線112と114との間、あるいは0電圧マージン許容差のためのAVS線114に電圧レベルを設定することが可能であり得る。この点について、図9は、機能回路15の無効動作領域を探査するためにAVSモジュール28によって実行され得る例示的なプロセスを示すフローチャートである。本明細書中で与えられるように、AVSモジュール28は無効動作領域探査テストを周期的に開始する(ブロック120)。AVSモジュール28は、現在の動作周波数と電圧レベルとをAVSデータベース44中に第1のポイントとして記録する(ブロック122)。この第1のポイントは、図10中の例示的な動作周波数対電圧レベル図138に示すAVS線112上にp1と標示されている。図10中の例示的な動作周波数対電圧レベル図138は、図8中の図100と同様であるが、DVS線108はなく、図9中のフローチャートで参照されるいくつかの追加情報が含まれている。
【００４４】
AVSモジュール28は、次に、図1中のAVS11中の遅延線30中の遅延を増加させることによって、無効動作領域104(すなわち、「Vup」条件が生じる)を判断するために、動作周波数の増加をシミュレートする(ブロック124)。AVSモジュール28は、次いで、遅延の増加の結果として遅延出力信号42上で「Vup」条件が戻されるかどうかを判断する(ブロック126)。AVSモジュール28は、「Vup」条件がAVSモジュール28に戻されるまで(ブロック126)、遅延線30中に与えられる遅延量を増分的に増加させ続ける(ブロック128)。「Vup」条件が戻されると、AVSモジュール28は、現在の電圧レベルとシミュレートされた増加動作周波数とをAVSデータベース44中に第2のポイントとして記録し(ブロック130)、これは、図10中のAVS線114上にポイントp2として例として示されている。このAVSテストの目的は、電圧マージンをAVS線114上またはその近くにさらに低減するために、現在の動作周波数において電圧レベルが低減され得るかどうかを判断することであるが、ポイントp2は、AVS線114上のより高いシミュレートされた動作周波数にある。したがって、AVSモジュール28は、AVSデータベース44に記憶された電圧レベルから判断され得るAVS線112の傾きを使用して、AVS線114上の第3のポイントp3を計算する(ブロック132)。AVS線112と114は同じ傾きを有すると仮定され、したがって、ポイントp2における動作周波数とともにAVS線112の傾きを使用することにより、AVSモジュール28は、現在の動作周波数に対する、AVS線114上のポイントp3におけるより低い電圧レベルを判断することができる。
【００４５】
AVSモジュール28は、次いで、新しい動作周波数と電圧レベルポイントp3とをAVSデータベース44に記憶し(ブロック134)、AVSテストは終了する(ブロック136)。たとえば、AVSモジュール28は、現在の動作周波数において新しい電圧レベルを設定するために使用すべきポイントp3を、AVS学習値テーブル90(図7)またはAVS周波数/電圧レベルテーブル50(図2)に記憶することができる。たとえば、図11中の動作周波数対電圧レベルテーブル140に示すように、AVSモジュール28は、AVSデータベース44中の既存のテーブル中の、動作周波数に対する現在の記憶電圧レベル(たとえば、ポイントp1)に新しい電圧レベル(たとえば、ポイントp3)を上書きし得る。別の例として、AVSデータベース44は、現在の電圧レベル(たとえば、ポイントp1)と、このテストによって与えられた、所与の動作周波数に対する低減された電圧レベル(たとえば、ポイントp3)との差を、図12に示す電圧レベル差テーブル142に記憶するように構成され得る。AVSモジュール28は、AVS線112上の判断された電圧レベルがさらに低減され得るかどうかを判断するために、電圧レベル差テーブル142を調べるであろう。
【００４６】
リセット後に、AVSモジュール28は、機能回路15のすべての可能な動作周波数に対する電圧レベルをまだ発見していない。AVSモジュール28は、AVSデータベース44中の各所与の動作周波数が設定されたときにのみ電圧レベルを判断し得る。したがって、AVSモジュール28が前に設定されていない動作周波数を設定したとき、AVSモジュール28は、前に説明したように、その動作周波数に対する、AVSデータベース44に記憶された初期電圧レベルを選択し得る。初期電圧レベル値はAVSモジュール28による適応的学習電圧レベルではないので、新しい動作周波数に対する追加の電圧マージンが存在し得る。しかしながら、AVSモジュール28が所与の動作周波数に対する電圧レベルを学習すると、AVSモジュール28は、AVSデータベース44中の動作周波数に対する電圧レベルのポピュレーションを加速することができる。現在の電圧レベルが発見された電圧レベルよりも高い、より低い動作周波数における、AVSデータベース44中の電圧レベルを自動的に設定するようにAVSモジュール28を構成することができる。これは、機能回路が、より高い動作周波数に対する適応的学習電圧レベルにおいて適切に動作することができることが知られている場合、その電圧レベルは、より低い周波数における動作のためにも十分であるので、可能である。
【００４７】
この点について、図13は、AVSデータベース44中の動作周波数に対する電圧レベルのポピュレーションを加速するためにAVSモジュール28によって実行され得る例示的なプロセスを与えるフローチャートである。プロセスは、新しい動作周波数が設定されたとき、またはその後の任意の時間を含む、任意の時間にAVSモジュール28によって実行され得る。図13に示すように、プロセスは開始し(ブロック150)、AVSモジュール28は、AVSモジュール28によって設定された現在の動作周波数よりも低い動作周波数における、AVSデータベース44に記憶された電圧レベルについてAVSデータベース44を調べる(ブロック152)。より低い動作周波数のいずれかに対する、AVSデータベース44に記憶された電圧レベルが現在の電圧レベルよりも高い場合(ブロック154)、AVSモジュール28は、より低い動作周波数に対する、AVSデータベース44中の電圧レベルを現在の電圧レベルと置き換え(ブロック156)、プロセスは終了する(ブロック158)。他の場合、プロセスは、AVSデータベース44中の、より低い動作周波数に対する電圧レベルを改変することなしに終了する(ブロック158)。このようにして、たとえば初期電圧レベルを含む、AVSデータベース44中の、より低い動作周波数に対する電圧レベルを、機能回路15の適切な動作を維持することが知られている、より低い電圧レベルで急速にポピュレートすることができる。
【００４８】
図14に、電圧レベルの加速されたポピュレーションをさらに示すために、図1のAVSデータベース44に記憶され得る例示的なAVS動作周波数/電圧レベルテーブル160を示す。この例では、AVSモジュール28が、AVS動作周波数/電圧レベルテーブル160中のエントリ162に示すように、1GHzの動作周波数に対して1.0Vの電圧レベルを判断したと仮定する。エントリ164など、AVS動作周波数/電圧レベルテーブル160中のいずれかの初期電圧レベルが1.0Vよりも高い場合、AVSモジュール28は、図14に示すように、エントリ164の電圧レベルを1.0Vと置き換えることができる。この例では、AVSモジュール28がエントリ164の周波数において動作周波数を初めて設定したときに電圧マージンが低減される。
【００４９】
AVS11の別の実施形態は、AVS11への温度センサの組込みを含む。温度センサ48は、図1中のAVS11中の随意の構成要素であるものとして、すでに前に説明した。温度センサ48がAVS11中に含まれる場合、AVSモジュール28は、現在の動作温度に基づく、判断された電圧レベルをAVSデータベース44に記憶することができる。前に説明したように、動作温度レベルは、機能回路15の適切な動作ための電圧レベルをシフトし得る。したがって、動作温度レベルにさらに基づく電圧レベルを記憶することによって、AVSモジュール28は、機能回路15の適切な動作を保証しながら、電圧マージンを回避または低減し得る。この点について、図15は、それぞれが異なる動作温度T0〜TNに対応する複数の例示的なAVS動作周波数/電圧レベルテーブル170である。したがって、AVSモジュール28が、本明細書で開示する実施形態において与えられるように、所与の動作周波数に対する電圧レベルを判断するためにAVSデータベース44を調べるとき、AVSモジュール28は、温度センサ48からの受信された温度レベル信号46から受信された動作温度レベルを使用して、AVSデータベース44中のどのテーブル170を調べるべきかを判断することができる。さらに、AVSモジュール28は、温度センサ48から受信された動作温度レベルを使用して、AVSデータベース44中のどのテーブル170を、本明細書で開示する実施形態による初期、学習、探査、加速電圧レベル、または所望の任意の他の電圧レベルでポピュレートすべきかを判断することができる。AVSモジュール28は、温度センサ48からの受信された温度レベルについて、AVS動作周波数/電圧レベルテーブル170がAVSデータベース44中に与えられていない場合、複数のAVS動作周波数/電圧レベルテーブル170に基づいて電圧レベルを補間または外挿するように構成され得る。いくつかの動作温度は、異なる動作周波数において頻繁には生じないので、動作温度レベルごとに電圧レベルをAVSデータベース44に記憶することにより、AVSデータベース44中の電圧レベルの鮮度を延長することができる。したがって、AVSモジュール28が、ある寿命を超えた電圧レベルエントリを無効にし、および/または初期電圧レベルに戻すことを可能にするために、随意の時間要素をAVSデータベース44に組み込むことができる。
【００５０】
上述の実施形態のいずれかを用いて、AVSモジュール28は「Vup」条件を受信することが可能である。AVSモジュール28および/またはAVSデータベース44中のパラメータおよび/またはアルゴリズムは、機能回路15のすべての動作周波数のすべての遅延変動を完全に考慮することはできない。したがって、別の実施形態では、AVS11は、「Vup」条件が現在の動作周波数において発生された場合、現在の動作周波数に対する前に記憶または学習された電圧レベルを「バックアップする」かまたは「バックアウトする」ように構成される。AVSデータベース44中の電圧レベルの「バックアウト」または「バックアップ」は、「Vup」条件が生じた場合、電圧マージンを増加させるためにAVSデータベース44中の所与の動作周波数に対する電圧レベルを増加させることを含む。「Vup」条件は、機能回路15の有効動作領域が0または正の電圧マージンを必要とする、負の電圧マージンを示す。
【００５１】
この点について、図16は、あまりに低い電圧レベルによって引き起こされたと考えられる偶発的ハードウェアリセットが検出されたとき、電圧マージンを増加させるための例示的なプロセスのフローチャートである。たとえば、リセットまたは障害を生じた低電圧レベルの特性は、検出可能であるキャッシュパリティエラーの発生であり得る。このハードウェアリセットまたは障害は、図1のAVS11中のAVSモジュール28によって受信される「Vup」条件を生じることがあり得る。この場合、そのようなエラーが所与の動作周波数において1回またはそれ以上生じた場合、将来のリセットを回避するために、AVSモジュール28によって動作周波数に対応する電圧レベルを増加させて、電圧マージンを増加させることができる。
【００５２】
この点について、一例として、AVSモジュール28は、図16に示すように、「Vup」条件が受信されたとき(ブロック180)、割込みによって、または他の方法で、例外ハンドラにジャンプするように構成され得る。この例では、AVSモジュール28は、次いで、現在の動作周波数に関連付けられた、AVSデータベース44に記憶された電圧レベルに電圧マージンを追加する(ブロック182)。AVSモジュール28は、電圧調整器22に、機能回路15に与えられた電圧レベルに電圧マージンを追加させるように、電圧レベル設定信号20を設定する(ブロック184)。AVSモジュール28は、次いで、この実施形態では、リセット時およびさらなる動作時にAVSモジュール28が突破してはならない最小電圧レベルとして、現在の動作周波数における新しい電圧レベルをマークし(ブロック186)、プロセスは終了する(ブロック188)。言い換えれば、AVS11中で所与の電圧レベルが「Vup」条件を発生したことが学習されると、AVSモジュール28は、将来、現在の動作周波数に対する電圧レベルを低減しないはずである。代替的に、AVSモジュール28は、将来の通常動作中に、より低い電圧レベルが判断された場合、電圧レベルがAVSデータベース44中で上書きされることを可能にするように構成され得る。
【００５３】
AVSデータベース44は、AVSモジュール28によって設定された電圧レベルが、機能回路15の動作のための最小電圧レベルを下回らないことを保証するために、すべての動作周波数に対する機能回路15の最小電圧レベルを記憶するように構成され得る。この点について、図17に、AVSデータベース44に記憶され得る例示的な最小電圧レベル限界テーブル190を示す。AVSモジュール28は、電圧レベルが設定される前に、所与の現在の動作周波数についてAVSデータベース44中の最小電圧レベル限界テーブル190を調べるように構成され得る。AVSモジュール28によって判断された電圧レベルが、現在の動作周波数に対する、最小電圧レベル限界テーブル190中の最小電圧レベルよりも低い場合、AVSモジュール28は、電圧レベルを最小電圧レベル限界テーブル190中の電圧レベルに設定する。最小電圧レベル限界テーブル90は、すべての動作周波数に対する同じ電圧レベル(たとえば、0.85V)を最初に含み得る。しかしながら、AVSモジュール28が「Vup」条件時に、所与の動作周波数に対して電圧マージンを追加するように構成された場合、追加された電圧マージンは最小電圧レベル限界テーブル190中の最小電圧レベルに追加され得る。たとえば、「Vup」条件が600MHzの動作周波数において受信され、電圧レベルが0.90Vであり、追加された電圧マージンが0.05Vであった場合、図17に示すように、最小電圧レベル限界テーブル190中の600MHzの動作周波数に対して0.95Vの最小電圧レベルが記憶され得る。
【００５４】
別の実施形態では、AVS11は、負バイアス温度不安定性(NBTI)について電圧レベルを補償するように構成され得る。NBTI効果は、一部の半導体デバイスが適切に動作するために必要な最小電圧レベルを時間とともに緩やかに上げる。たとえば、特定の半導体プロセスは、図18中の例示的な動作周波数/電圧レベル図192に示すように、NBTI効果が24カ月の電源投入動作にわたって50mVだけ最小電圧レベルを上げることを特徴とし得る。そこに示されているように、機能回路15の初期最小電圧レベル194は0.85Vである。しかしながら、NBTI効果により、その後の最小電圧レベル196は、時間とともに0.9Vに上がり得る。総電力時間を追跡し、AVSデータベース44に記憶された既知の電圧レベル最小値に補正係数を適用することによって、NBTIを補償するようにAVSモジュール28を構成することができる。補正係数は、たとえば、図17に示す最小電圧レベル限界テーブル190中など、AVSデータベース44中の、機能回路15の絶対最小電圧レベルに適用され得る。代替的に、補正係数は、本明細書で前に説明したテーブルのいずれかを含む、AVSテーブル中の最小電圧レベルに適用され得る。AVSデータベース44に記憶された動作周波数のいずれかに対する電圧レベル設定が最小電圧レベル設定より下である場合、AVSデータベース44中の補償最小電圧レベル設定をエンフォースするようにAVSモジュール28を構成することができる。
【００５５】
この点について、図19は、AVS11がNBTIによる機能回路15の電圧レベルを補償する例示的なプロセスのフローチャートである。本プロセスは、AVSモジュール28が機能回路15の次の動作周波数を判断する、同調ループ24の各反復に対して、またはより少ない頻度で、周期的に実行され得る。本プロセスは、例として、タイマーをポーリングすることかまたは割込みハンドラのいずれかに基づく所定の時間値であり得る、経年変化インジケータにおいて開始され得る。AVSモジュール28は、電源投入時間を追跡するために、リセット時にAVSデータベース44中のタイマーを開始し、維持する(ブロック200)。タイマーは、電力サイクルにわたって維持されるべき、AVSデータベース44中の不揮発性メモリ中に含まれ得る。AVSモジュール28が、経過時間に基づいて、電力レベル補正を適用すべきであると判断すると(ブロック201)、AVSモジュール28は、AVSデータベース44中のタイマー値に基づく総電源投入時間について、電圧レベル補正を適用すべきであると判断する(ブロック202)。電圧レベル補正は、0Vであり得、または0Vよりも大きくなり得る。さらに、電圧レベル補正は、機能回路15の最小電圧レベルのみに対するオフセットであるか、またはAVSデータベース44に記憶されたすべてのAVS電圧レベル設定に対するオフセットであり得る。さらに、上記で前に説明した手段を含む、他の手段によって判断され、AVSデータベース44に記憶された電圧レベル設定を変更または上書きすることなしに、動作中に適用される前に、AVSデータベース44に記憶された電圧レベルを補償するようにAVSモジュール28を構成することもできる。いずれの場合も、AVSデータベース44に電圧レベル補正を適用する(ブロック204)。本プロセスは繰り返す(ブロック200)。
【００５６】
図20に、別の例示的なAVSシステム210を示す。AVSシステム210は、図1中のAVS11と同様であるAVS11'を含む。共通の構成要素は共通の要素番号で標示されている。AVS11'は、図1のAVS11と同様の、AVSモジュール28と、AVSデータベース44と、遅延線クロック論理26と、プログラム可能な遅延線30と、クロック周期遅延34と、コンパレータ38と、温度センサ48とを含む。最小電圧レベルを設定するためのAVS動作は、前に説明した実施形態のいずれかに従って動作し得る。ただし、図20中のAVS11'はまた、ダイナミック電圧スケーラ(DVS)モジュール212と、DVSテーブル214とを含む。図20中のAVS11'は、DVSモジュール212とDVSテーブル214とをすでに含むシステムにAVSモジュール28とAVSデータベース44とが追加された、改変または更新された設計であり得る。DVSモジュール212は、機能回路15の作業負荷推定値213に従って電圧レベル設定信号216を電圧調整器22に通信することによって、ダイナミック電圧スケーリングを実行する。しかしながら、この実施形態では、機能回路15中の遅延変動条件に基づいて電圧レベルを適応的にスケーリングするためにAVSモジュール28も与えられる。AVSモジュール28は、DVSモジュール212によるAVSモジュール28への要求に応答して、判断されたAVS電圧レベルまたは電圧レベル調整をDVSモジュール212に与える。AVSモジュール28は、DVSモジュール212からAVSモジュール28に与えられた現在のターゲット動作周波数に基づいてAVSデータベース44を調べる。DVSモジュール212は、AVSモジュール28からDVSモジュール212に戻された電圧レベルまたはマージンによってさらに調整された、動作周波数に対応する電圧レベルを含んでいているDVSテーブル214に記憶された電圧レベルに基づいて、電圧レベル設定信号20を設定するように構成される。DVSモジュール212はまた、機能回路15のスイッチングを制御するために、クロック発生器14によって発生されたクロック信号12の動作周波数を設定するための動作周波数設定信号218を発生する。
【００５７】
AVSモジュール28は、電圧マージンを適応的にさらに回避または低減するように構成されているので、AVSモジュール28によって判断された電圧レベルは、理想的には、DVSモジュール212によって判断された電圧レベルと同じであるか、またはそれよりも低いはずである。AVSモジュール28は、前に説明したように、機能回路15の無効動作領域を発見するために、図20に示すように遅延線設定信号220によって遅延回路25の遅延線(DL)30中の遅延を設定することができる。この実施形態では、遅延線設定信号220は、遅延量を制御する32ビット遅延レジスタ222である。遅延設定は線形であることも線形でないこともある。32ビット遅延レジスタ222の値をもつ遅延線設定信号220は、前に説明したように、複数のAVS回路224 1〜N中の遅延線30に通信される。各々が所与のAVS回路224中の遅延量を制御する複数の遅延レジスタ222が与えられ得る。図示されていないが、各AVS回路224は、図1のAVS11中に与えられたものと同様の、遅延線クロック論理26と、遅延線30と、コンパレータ38と、クロック周期遅延34とを含む。AVS回路224は、機能回路15中に含まれる様々なタイプの回路中の遅延をシミュレートするための遅延論理を含む。所望の任意の数のAVS回路224を設けることができる。AVS回路224中の論理の動作周波数および電力も、それぞれクロック発生器14および電圧調整器22によって発生されたクロック信号12および電圧信号18から供給される。コンパレータ38は、AVSモジュール28にタイミングマージン情報を与えるために、遅延出力信号42によって通信すべき、別の32ビット遅延レジスタ226中のタイミングマージン情報を与える。タイミング情報は、前に説明したように、次の動作周波数と電圧レベルとを判断するために使用される。
【００５８】
本明細書で説明したAVSシステムおよびAVSおよび関係する方法は、個別ハードウェアで提供され得、またはハードウェア構成要素とソフトウェア構成要素の両方で提供され得る。本明細書で説明したAVSシステムおよびAVSおよび関係する方法は、限定はしないが、同期デジタル回路と、中央処理ユニット(CPU)システムと、メモリ回路またはシステムとを含む、任意の回路またはシステムの動作周波数と電圧レベルとを設定するために使用され得る。メモリ回路またはシステム中で採用される場合、メモリ回路またはシステムは任意のタイプのメモリを採用し得る。例には、限定はしないが、スタティックランダムアクセスメモリ(RAM)(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレート(DDR)SDRAM、ダブルデータレート2(DDR2)SDRAM、ダブルデータレート3(DDR3)SDRAM、モバイルDDR(MDDR)SDRAM、低電力(LP)DDR SDRAM、およびLP DDR2SDRAMがある。動作周波数と電圧レベルとがAVSによって制御されるメモリ回路またはシステムの構成要素のいずれも、メモリの技術および/または設計によって必要とされる場合、メモリセルを機能的に保つために十分な電圧レベルを与える電圧領域によってメモリが電力供給される限り、複数の電圧領域のうちのいずれかの電圧領域にあり得る。
【００５９】
本明細書で説明した設計および方法によるAVSシステムおよびAVSは、電子デバイスおよび/またはプロセッサベースのデバイスまたはシステムを含む、半導体ダイ、集積回路、および/またはデバイス中に含まれ得るか、または組み込まれ得る。そのようなデバイスの例には、限定はしないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイル電話、セルラー電話、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、ビデオプレーヤ、デジタルビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤがある。
【００６０】
図21に、上記で説明したAVS232と関係する回路とを採用し得るプロセッサベースのシステム230を示す。プロセッサベースのシステム230は電子デバイス234中に含まれ得る。AVS232は、CPU236中のプロセッサ238に与えられるクロック信号の動作周波数と電圧信号の電圧レベルとを制御するためにCPU236中に含まれ得る。CPU236はシステムバス240に結合され、システムバス240は、プロセッサベースのシステム230中に含まれる他のデバイスを相互接続する。AVS241はまた、システムバス240に結合されたグラフィックプロセッサユニット(GPU)243中に含まれ得る。よく知られているように、CPU236および/またはGPU243は、システムバス240を介してアドレス、制御、およびデータ情報を交換することによってこれらの他のデバイスと通信することができる。これらのデバイスは任意のタイプのデバイスを含み得る。図21に示すように、これらのデバイスは、例として、システムメモリ242と、1つまたは複数の入力デバイス244と、1つまたは複数の出力デバイス246と、ネットワークインターフェースデバイス248と、ディスプレイコントローラ250とを含み得る。
【００６１】
1つまたは複数の入力デバイス244は、限定はしないが、入力キー、スイッチ、ボイスプロセッサなどを含む、任意のタイプの入力デバイスを含み得る。1つまたは複数の出力デバイス246は、限定はしないが、オーディオインジケータ、ビデオインジケータ、他の視覚インジケータなどを含む、任意のタイプの出力デバイスを含み得る。ネットワークインターフェースデバイス248は、ネットワーク252との間でデータを交換することができるように構成された任意のデバイスであり得る。ネットワーク252は、限定はしないが、ワイヤードまたはワイヤレスネットワーク、プライベートまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、およびインターネットを含む、任意のタイプのネットワークであり得る。ネットワークインターフェースデバイス248は、所望の任意のタイプの通信プロトコルをサポートし得る。
【００６２】
CPU236はまた、システムバス240を介してシステムメモリ242にアクセスし得る。システムメモリ242はスタティックメモリおよび/またはダイナミックメモリを含み得る。システムメモリ242は、CPU236のためのプログラムストア254とデータストア256とを含み得る。CPU236はまた、ディスプレイ258に送信される情報を制御するためにシステムバス240を介してディスプレイコントローラ250にアクセスし得る。ディスプレイコントローラ250は、メモリコントローラ260と、CPU236との通信に応答してディスプレイ258に送信すべきデータを記憶するためのメモリ262とを含み得る。ディスプレイコントローラ250は、ビデオプロセッサ264を介して表示情報をディスプレイ258に通信し、ビデオプロセッサ264は、表示すべき情報をディスプレイ258に好適なフォーマットに処理する。ディスプレイ258は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む、任意のタイプのディスプレイを含み得る。
【００６３】
さらに、本明細書で開示した実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子ハードウェア、メモリまたは別のコンピュータ可読媒体に記憶され、プロセッサまたは他の処理デバイスによって実行される命令、あるいは両方の組合せとして実装され得ることを当業者なら諒解されよう。この互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をどのように実装するかは、特定の適用例、設計選択、および/または全体的なシステムに課せられた設計制約に依存する。当業者なら、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本明細書の範囲からの逸脱を生じるものと解釈すべきではない。
【００６４】
本明細書で開示した実施形態に関して説明した様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明した機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
【００６５】
本明細書で開示した実施形態は、ハードウェアに組み込まれ得、メモリに記憶された命令に組み込まれ得、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態のコンピュータ可読媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はASIC中に常駐し得る。ASICは遠隔局中に常駐し得る。代替として、プロセッサおよび記憶媒体は、遠隔局、基地局、またはサーバ中に個別構成要素として常駐し得る。
【００６６】
また、本明細書の例示的な実施形態のいずれかで説明した動作ステップは、例および説明を与えるために説明したものであることに留意されたい。説明した動作は、図示の順序以外の多数の異なる順序で実行され得る。さらに、単一の動作ステップで説明される動作は、実際はいくつかの異なるステップで実行され得る。さらに、例示的な実施形態で説明した1つまたは複数の動作ステップは組み合わされ得る。フローチャート図に示した動作ステップは、当業者には直ちに明らかになるように、多数の異なる変更が可能であることを理解されたい。また、情報および信号は、多種多様な技術および技法のいずれかを使用して表現され得ることを当業者なら理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【００６７】
本開示の前述の説明は、当業者が本開示を製作または使用できるように提供したものである。本開示の様々な変更は当業者には直ちに明らかになり、本明細書で定義した一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用され得る。したがって、本開示は、本明細書で説明した例および設計に限定されるものではなく、本明細書で開示する原理および新規の特徴に一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００６８】
10  適応電圧スケーラ(AVS)システム
10  AVSシステム
11  AVS
11'  AVS
12  クロック信号
14  クロック発生器
15  機能回路
16  動作周波数設定信号
18  電圧信号
20  電圧レベル設定信号
22  電圧調整器
24  同調ループ
25  遅延回路
26  遅延線クロック論理
27  作業負荷推定値
28  AVSモジュール
29  出力信号
30  遅延線
32  出力信号
34  クロック周期遅延
36  遅延線出力
38  コンパレータ
40  クロック周期遅延信号
42  遅延出力信号
44  AVSデータベース
46  動作温度レベル信号
46  温度レベル信号
48  温度センサ
50  AVS周波数/電圧レベルテーブル
52  動作周波数と電圧レベルとのペア
54  電圧レベル特性曲線
54  特性曲線
55  動作周波数対電圧レベル図
56  無効動作領域
58  有効動作領域
80  動作周波数タイミング図
82  電圧レベルタイミング図
83  電圧レベルタイミング図
90  AVS学習値テーブル
92  学習列
94  電圧レベル列
96  動作周波数列
98  妥当性ビット
100  動作周波数対電圧図
102  有効動作領域
104  無効動作領域
106  特性曲線
108  電圧スケーラ(DVS)線
108  DVS線
110  AVS線
112  AVS線
114  AVS線
138  動作周波数対電圧レベル
140  動作周波数対電圧レベルテーブル
142  電圧レベル差テーブル
160  AVS動作周波数/電圧レベルテーブル
162  エントリ
164  エントリ
170  AVS動作周波数/電圧レベルテーブル
170  テーブル
190  最小電圧レベル限界テーブル
192  動作周波数/電圧レベル図
194  初期最小電圧レベル
196  その後の最小電圧レベル
210  AVSシステム
212  DVSモジュール
213  作業負荷推定値
214  DVSテーブル
216  電圧レベル設定信号
218  動作周波数設定信号
220  遅延線設定信号
222  32ビット遅延レジスタ
222  遅延レジスタ
224  AVS回路
226  32ビット遅延レジスタ
230  システム
232  AVS
234  電子デバイス
236  CPU
238  プロセッサ
240  システムバス
241  AVS
242  システムメモリ
243  電子デバイス
244  入力デバイス
246  出力デバイス
248  ネットワークインターフェースデバイス
250  ディスプレイコントローラ
252  ネットワーク
254  プログラムストア
256  データストア
258  ディスプレイ
260  メモリコントローラ
262  メモリ
264  ビデオプロセッサ
【図１】
0005259877.tif 000002
【図２】
0005259877.tif 000003
【図３】
0005259877.tif 000004
【図４】
0005259877.tif 000005
【図５】
0005259877.tif 000006
【図６Ａ】
0005259877.tif 000007
【図６Ｂ】
0005259877.tif 000008
【図７】
0005259877.tif 000009
【図８】
0005259877.tif 000010
【図９】
0005259877.tif 000011
【図１０】
0005259877.tif 000012
【図１１】
0005259877.tif 000013
【図１２】
0005259877.tif 000014
【図１３】
0005259877.tif 000015
【図１４】
0005259877.tif 000016
【図１５】
0005259877.tif 000017
【図１６】
0005259877.tif 000018
【図１７】
0005259877.tif 000019
【図１８】
0005259877.tif 000020
【図１９】
0005259877.tif 000021
【図２０】
0005259877.tif 000022
【図２１】
0005259877.tif 000023