(57)【特許請求の範囲】
【請求項１】
適応型電圧スケーラ(AVS)であって、
入力信号を受け取り、前記入力信号を機能回路の少なくとも1つの遅延経路に関係する遅延量だけ遅延して遅延出力信号を生成するように構成された少なくとも1つの遅延回路と、
複数の電圧レベルと、対応する組み合わせであって前記機能回路ための複数の動作周波数のうちの1つと前記機能回路ための複数の温度レベルバンドのうちの1つとの組み合わせと、を記憶するように構成されたデータベースに結合され、前記遅延出力信号と目標動作周波数の指示とに応答するAVSモジュールと
を備え、前記AVSモジュールは、前記遅延出力信号内の遅延情報に基づくとともに、前記機能回路のための前記目標動作周波数および前記機能回路の温度レベルに対応する前記データベースに記憶された電圧レベルに加えられた電圧オフセットにさらに基づいて、電圧レベル設定信号を発生するように構成される、適応型電圧スケーラ(AVS)。
【請求項２】
前記AVSモジュールが、前記機能回路のための動作周波数を変更すべきであるとの受け取った指示に応答して、前記電圧レベル設定信号を発生するように構成される、請求項1に記載のAVS。
【請求項３】
前記AVSモジュールが、温度レベル変化に応答して前記電圧レベル設定信号を発生するように構成される、請求項1に記載のAVS。
【請求項４】
前記AVSモジュールが、少なくとも1つの温度センサから温度レベル信号を受け取ることによって温度レベル変化を求めるように構成される、請求項3に記載のAVS。
【請求項５】
前記温度レベル変化が、現在の温度レベルにおける前の温度レベルからの閾値だけの変化と、前の温度レベルからの現在の温度レベルの変化の百分率とからなる群から選択される、請求項3に記載のAVS。
【請求項６】
前記AVSモジュールが、ソフトウェアによって少なくとも部分的に制御可能である、請求項1に記載のAVS。
【請求項７】
前記AVSモジュールが、前記機能回路の動作温度に基づいて、前記データベースに複数の学習した電圧レベルを記憶するようにさらに構成される、請求項1に記載のAVS。
【請求項８】
少なくとも1つの半導体ダイに集積化された、請求項1に記載のAVS。
【請求項９】
前記AVSがそれに統合される、セットトップボックス、娯楽装置、ナビゲーション装置、通信装置、携帯情報端末(PDA)、固定位置データユニット、可動位置データユニット、携帯電話、セルラ電話、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、携帯音楽プレーヤ、ビデオプレーヤ、デジタルビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、および携帯デジタルビデオプレーヤからなる群から選択されたデバイスさらに備えた、請求項1に記載のAVS。
【請求項１０】
適応型電圧スケーラ(AVS)であって、
入力信号を受け取り、前記入力信号を機能回路の少なくとも1つの遅延経路に関係する量だけ遅延して遅延出力信号を生成する遅延手段と、
データベースに結合され、前記遅延出力信号内の遅延情報に基づくとともに、複数の電圧レベルと、対応する組み合わせであって前記機能回路ための複数の動作周波数のうちの1つと前記機能回路ための複数の温度レベルバンドのうちの1つとの組み合わせと、を記憶するように構成された前記データベースに記憶された電圧レベルに加えられた電圧オフセットにさらに基づいて、電圧レベル設定信号を発生するAVS手段と
を備える、適応型電圧スケーラ(AVS)。
【請求項１１】
適応型電圧スケーラ(AVS)であって、
入力信号を受け取り、前記入力信号を機能回路の少なくとも1つの遅延経路に関係する遅延量だけ遅延して遅延出力信号を生成するように構成された少なくとも1つの遅延回路と、
前記遅延出力信号と目標動作周波数の指示とに応答し、複数の電圧レベルと、対応する組み合わせであって前記機能回路ための複数の動作周波数のうちの1つと前記機能回路ための複数の温度レベルバンドのうちの1つとの組み合わせと、を記憶するように構成されたデータベースに結合されたAVSモジュールと
を備え、前記AVSモジュールは、前記遅延出力信号に応答し、前記遅延出力信号内の遅延情報に基づくとともに、前記機能回路のための前記目標動作周波数および前記機能回路の温度レベルに対応する前記データベースに記憶された電圧レベルにさらに基づいて、電圧レベル設定信号を発生するように構成される、適応型電圧スケーラ(AVS)。
【請求項１２】
前記AVSモジュールが、温度センサから前記機能回路の前記温度レベルを受け取るように構成される、請求項11に記載のAVS。
【請求項１３】
前記データベースが、それぞれが動作周波数と温度レベルとの組み合わせに対応する複数の電圧レベルを記憶するように構成される、請求項11に記載のAVS。
【請求項１４】
前記複数の電圧レベルが、前記機能回路の前記動作周波数のそれぞれと、少なくとも1つの温度センサによって生成可能な前記温度レベルのそれぞれとに対応する、請求項13に記載のAVS。
【請求項１５】
前記AVSモジュールが、前記機能回路のための前記目標動作周波数に関連付けられた、前記データベースに記憶された最も高い電圧レベルに基づいて、前記電圧レベル設定信号を発生するように構成される、請求項13に記載のAVS。
【請求項１６】
前記AVSモジュールが、前記データベースに記憶された前記複数の温度レベルバンドを規定する温度レベルを調整するように構成される、請求項11に記載のAVS。
【請求項１７】
前記AVSモジュールが、前記機能回路のための学習した電圧レベルに基づいて、前記データベースに記憶された前記複数の温度レベルバンドを規定する温度レベルを調整するように構成される、請求項16に記載のAVS。
【請求項１８】
前記AVSモジュールが、ソフトウェアによって少なくとも部分的に制御可能である、請求項11に記載のAVS。
【請求項１９】
少なくとも1つの半導体ダイに集積化された、請求項11に記載のAVS。
【請求項２０】
前記AVSがそれに統合される、セットトップボックス、娯楽装置、ナビゲーション装置、通信装置、携帯情報端末(PDA)、固定位置データユニット、可動位置データユニット、携帯電話、セルラ電話、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、携帯音楽プレーヤ、ビデオプレーヤ、デジタルビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、および携帯デジタルビデオプレーヤからなる群から選択されたデバイスさらに備えた、請求項11に記載のAVS。
【請求項２１】
機能回路のための電圧レベルをスケーリングする方法であって、
少なくとも1つの遅延回路において入力信号を受け取るステップと、
前記入力信号を機能回路の少なくとも1つの遅延経路に関係する遅延量だけ遅延して、遅延出力信号を生成するステップと、
目標動作周波数を指示するステップと、
複数の電圧レベルと、対応する組み合わせであって前記機能回路ための複数の動作周波数のうちの1つと前記機能回路ための複数の温度レベルバンドのうちの1つとの組み合わせと、を記憶するように構成されたデータベースに記憶された電圧レベルに加えられた電圧オフセットに基づくとともに、前記遅延出力信号内の遅延情報と、前記機能回路の温度レベルと、前記目標動作周波数の指示とにさらに基づいて、電圧レベル設定信号を発生するステップと
を含む方法。
【請求項２２】
前記機能回路のための前記動作周波数を変更すべきであるとの指示を受け取るステップをさらに含み、前記電圧レベル設定信号は前記受け取った指示に応答して発生される、請求項21に記載の方法。
【請求項２３】
前記電圧レベル設定信号が、少なくとも1つの温度センサからの温度レベル信号に応答して発生される、請求項21に記載の方法。
【請求項２４】
前記遅延出力信号内の前記遅延情報に基づいて、前記データベースに複数の学習した電圧レベルを記憶するステップをさらに含む、請求項21に記載の方法。
【請求項２５】
機能回路のための電圧レベルをスケーリングする方法であって、
少なくとも1つの遅延回路において入力信号を受け取るステップと、
前記入力信号を機能回路の少なくとも1つの遅延経路に関係する遅延量だけ遅延して、遅延出力信号を生成するステップと、
目標動作周波数を指示するステップと、
複数の電圧レベルと、対応する組み合わせであって前記機能回路ための複数の動作周波数のうちの1つと前記機能回路ための複数の温度レベルバンドのうちの1つとの組み合わせと、を記憶するように構成された、データベースに記憶された電圧レベルに基づくとともに、前記遅延出力信号内の遅延情報と、前記機能回路の温度レベルと、前記目標動作周波数の指示とにさらに基づいて、電圧レベル設定信号を発生するステップと、
を含む方法。
【請求項２６】
少なくとも1つの温度センサから前記機能回路の温度レベルを受け取るステップをさらに含む、請求項25に記載の方法。
【請求項２７】
前記データベースに、それぞれが動作周波数と温度レベルとの組み合わせに対応する複数の電圧レベルを記憶するステップをさらに含む、請求項25に記載の方法。
【請求項２８】
前記データベースに、前記機能回路の前記動作周波数のそれぞれと、少なくとも1つの温度センサによって生成可能な前記温度レベルのそれぞれとに対応する複数の電圧レベルを記憶するステップをさらに含む、請求項25に記載の方法。
【請求項２９】
前記電圧レベル設定信号を発生する前記ステップが、前記機能回路のための前記動作周波数に関連付けられた、前記データベースに記憶された最も高い電圧レベルに基づいて、前記電圧レベル設定信号を発生するステップを含む、請求項25に記載の方法。
【請求項３０】
前記データベースに記憶された前記複数の温度レベルバンドを規定する温度レベルを調整するステップをさらに含む、請求項25に記載の方法。
【請求項３１】
前記機能回路のための学習した電圧レベルに基づいて、前記データベースに記憶された前記複数の温度レベルバンドを規定する温度レベルを調整するステップをさらに含む、請求項30に記載の方法。
【請求項３２】
機能回路と、
前記機能回路に結合された適応型電圧スケーラ(AVS)であって、
入力信号を受け取り、前記入力信号を前記機能回路の少なくとも1つの遅延経路に関係する遅延量だけ遅延して、遅延出力信号を生成するように構成された、少なくとも1つの遅延回路と、
複数の電圧レベルと、対応する組み合わせであって前記機能回路ための複数の動作周波数のうちの1つと前記機能回路ための複数の温度レベルバンドのうちの1つとの組み合わせと、を記憶するように構成されたデータベースに結合され、前記遅延出力信号と目標動作周波数の指示とに応答するAVSモジュールと
を備える適応型電圧スケーラ(AVS)と
を備え、前記AVSモジュールは、前記遅延出力信号内の遅延情報に基づくとともに、前記機能回路のための前記目標動作周波数および前記機能回路の温度レベルに対応する前記データベースに記憶された電圧レベルに加えられた電圧オフセットにさらに基づいて、電圧レベル設定信号を発生するように構成される回路。
【請求項３３】
機能回路と、
前記機能回路に結合された適応型電圧スケーラ(AVS)であって、
入力信号を受け取り、前記入力信号を前記機能回路の少なくとも1つの遅延経路に関係する遅延量だけ遅延して、遅延出力信号を生成するように構成された、少なくとも1つの遅延回路と、
前記遅延出力信号と目標動作周波数の指示とに応答し、複数の電圧レベルと、対応する組み合わせであって前記機能回路ための複数の動作周波数のうちの1つと前記機能回路ための複数の温度レベルバンドのうちの1つとの組み合わせと、を記憶するように構成されたデータベースに結合されたAVSモジュールと
を備える適応型電圧スケーラ(AVS)と
を備え、前記AVSモジュールは、前記遅延出力信号に応答し、前記遅延出力信号内の遅延情報に基づくとともに、前記機能回路のための前記目標動作周波数および前記機能回路の温度レベルに対応する前記データベースに記憶された電圧レベルにさらに基づいて、電圧レベル設定信号を発生するように構成される回路。
【請求項３４】
複数の電圧レベルと、対応する組み合わせであって機能回路ための複数の動作周波数のうちの1つと前記機能回路ための複数の温度レベルバンドのうちの1つとの組み合わせと、を記憶するように構成されたデータベースに記憶された電圧レベルに加えられた電圧オフセットに基づくとともに、前記機能回路の温度レベルと、前記機能回路の少なくとも1つの遅延経路に関係する遅延量を表す遅延出力信号内の遅延情報と、目標動作周波数の指示とにさらに基づいて、電圧レベル設定信号を適応型電圧スケーラ(AVS)モジュールに発生させるためのコンピュータ実行可能命令が、その上に記憶されたコンピュータ可読媒体。
【請求項３５】
複数の電圧レベルと、対応する組み合わせであって機能回路ための複数の動作周波数のうちの1つと前記機能回路ための複数の温度レベルバンドのうちの1つとの組み合わせと、を記憶するように構成されたデータベースに記憶された電圧レベルに基づくとともに、前記機能回路の温度レベルと、前記機能回路の少なくとも1つの遅延経路に関係する遅延量を表す遅延出力信号内の遅延情報と、目標動作周波数の指示とにさらに基づいて、電圧レベル設定信号を適応型電圧スケーラ(AVS)モジュールに発生させるためのコンピュータ実行可能命令が、その上に記憶されたコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、参照によりその全体が本明細書に組み込まれている、2009年7月2日に出願した「TEMPERATURE COMPENSATING ADAPTIVE VOLTAGE SCALERS (AVSs), SYSTEMS, AND METHODS」という名称の米国特許仮出願第61/222,752号の優先権を主張するものである。
【０００２】
本開示の技術は、機能回路内の電力消費を最適化するための温度補償適応型電圧スケーラ(Adaptive Voltage Scaler:AVS)システムおよび方法に関する。
【背景技術】
【０００３】
たとえば中央処理装置(CPU)またはデジタル信号プロセッサ(DSP)などの同期デジタル回路は、回路内のロジックのタイミングを協調させるためにクロック信号を必要とする。クロック信号の周波数は、ロジックのスイッチング速度またはレート、したがって回路の性能を制御する。動作周波数と回路に電力供給する電圧レベルとの間には関係がある。動作周波数を増加すると、正しい動作のために回路に電力供給するのに必要な最小電圧レベルが増加する。したがって一般に動作周波数を増加することは、結果として電力消費が大きくなる。電力消費は、電圧レベルを低くすることによって減少させることができる。しかし電圧レベルを減少すると、回路のために可能な最大動作周波数が減少する。電圧レベルは、正しい動作のために回路に必要な最小閾値電圧レベルに達するまで減少させることができる。
【０００４】
一般には動作周波数を最大にすることによって回路の性能を最大にすることが望ましいが、動作周波数を最大にすることが必要ない、または望ましくない場合があり得る。この場合には、電力を節約するように回路に電力供給する電圧レベルを低減することができる。この点に関して、動的電圧スケーラ(Dynamic Voltage Scaler:DVS)を使用することができる。DVSは、所望の動作周波数にて回路のためのクロック信号を生成するようにクロック発生器を制御することができる。DVSは、正しい回路動作を維持しながら電力を節約するように、所与の動作周波数にて電圧を最小電圧レベルに調整することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
他の要因が、所与の動作周波数にて回路に電力供給するのに必要な最小電圧レベルを上昇させ得る。たとえば、同期デジタル回路およびそれらの構成要素を製造するために用いられるナノメートル集積回路(IC)プロセスにおけるばらつきは、遅延変動を生じ得る。動作温度およびトランジスタの経年効果などの環境条件は、伝播遅延に影響を与え得る。電源によって供給される電圧レベルは、電流引き込みの変動により瞬間的に低下する場合があり、それにより性能が瞬間的に低下する。この点に関してDVSは、実際にはワーストケースの遅延シナリオが常には存在しないときに、正しい回路動作を確実にするために、ワーストケースの遅延シナリオに従って回路のための最小電圧レベルを制御するように構成することができる。ワーストケースの遅延シナリオが存在しないときは、電圧レベルは低くすることができ、回路は正しく動作する。所与の時点での、所与の動作周波数に対して回路に電力供給するのに必要な、ワーストケース最小電圧レベルと実際の最小電圧レベルとの間の差は、電圧または電力マージンとして知られている。電圧マージンは、所与の動作周波数にて回路が正しく動作するのに、消費する必要のなかった消費電力を表す。
【課題を解決するための手段】
【０００６】
詳細な説明で開示される実施形態は、適応型電圧スケーラ(AVS)、AVSシステム、および関連する回路および方法を含む。AVSおよびAVSシステム、回路、および方法は、電圧マージンを回避または低減するように目標動作周波数および遅延変動条件に基づいて、機能回路に電力供給する電圧レベルを適応的に調整するように構成される。電圧マージンを回避または低減することにより、機能回路の正しい動作を維持しながら電力を節約することができる。遅延変動には、各AVSおよび機能回路に特有の1つまたは複数の製造ばらつき、および/または環境条件の変動によって引き起こされる動作変動を含むことができる。遅延変動条件は、動作周波数と、機能回路の正しい動作のために必要な最小電圧レベルとの間の関係をシフトし得る。機能回路は、例として同期デジタル回路とすることができる。AVSはまた、機能回路のための動作周波数および電圧レベルを設定するために動的電圧スケーラ(DVS)への追加の電圧スケーラとして含めることができる。
【０００７】
一実施形態では、AVSは、入力信号を受け取るように構成された少なくとも1つの遅延回路を備える。入力信号は、機能回路の少なくとも1つの遅延経路に関係する遅延量だけ遅延されて遅延出力信号を生成する。AVS内に設けられたAVSモジュールは、遅延出力信号に応答する。AVSモジュールはまた、データベース(すなわちAVSデータベース)に結合される。データベースは、電圧マージンを回避または低減するために、機能回路の様々な動作周波数に対する電圧レベルを記憶するように構成することができる。記憶された電圧レベルは、機能回路内の他の遅延変動条件を考慮した、所与の動作周波数にて機能回路を正しく動作させるための電圧レベルに基づく。AVSモジュールは、遅延出力信号内の遅延情報と、機能回路のための目標動作周波数に関連付けられたデータベースに記憶された電圧レベルに加えられた電圧オフセットとに基づいて、電圧レベル設定信号を発生するように構成される。このようにして機能回路は、目標動作周波数に対してデータベースに前に記憶された電圧レベルより増加された電圧レベルにて動作される。データベースに前に記憶された電圧レベルは、機能回路の先の条件下では十分となり得たが、現在の条件下ではもはや十分でない場合があり得る。続いてAVSモジュールは、機能回路の正しい動作を維持しながら、動作時に可能ならば電圧レベルを低くすることができる。AVSモジュールは、機能回路に新しい動作周波数が供給されるべきであるとの指示、または温度レベルの変化に応答して、電圧レベル設定信号を発生することができる。
【０００８】
他の実施形態では、AVSは、入力信号を受け取るように構成された少なくとも1つの遅延回路を備える。入力信号は、機能回路の少なくとも1つの遅延経路に関係する遅延量だけ遅延されて遅延出力信号を生成する。AVS内に設けられたAVSモジュールは、遅延出力信号に応答する。AVSモジュールはまた、データベース(すなわちAVSデータベース)に結合される。データベースは、電圧マージンを回避または低減するために、機能回路内の様々な動作周波数に対する電圧レベルを記憶するように構成することができる。記憶された電圧レベルは、機能回路での他の様々な遅延変動条件を考慮した、所与の動作周波数にて機能回路を正しく動作させるための電圧レベルに基づく。AVSモジュールは、機能回路のための動作周波数および機能回路の温度レベルに関連付けられたデータベース内に記憶された電圧レベルと、遅延出力信号内の遅延情報とに基づいて電圧レベル設定信号を発生するように構成される。AVSモジュールは、温度センサから温度レベルを受け取ることができる。このようにして、機能回路に供給される電圧レベルは、電圧マージンを回避または低減しながら、動作周波数および温度レベルの両方のばらつきが考慮される。
【０００９】
データベースは、電圧レベルの決定を行うためにAVSモジュールによって用いられるパラメータの構成および/または変更を可能にする柔軟性をもたらす。データベースは、記憶された電圧レベルが複数の電源サイクルにわたって保持されるように、不揮発性メモリ内に設けることができる。AVSモジュールは、回路内で実行されるソフトウェアによって部分的にまたは完全に制御可能とすることができる。AVSモジュールは、ソフトウェア命令を実行してデータベースを調べ、電圧レベルの決定を行うソフトウェアベースのモジュールを含むことができる。ソフトウェアベースのモジュールとしてAVSモジュールを設けることにより、AVSの構成における柔軟性を可能にする。たとえば、AVSおよび/または機能回路の製造プロセスのばらつきにより、所与の動作周波数に対する機能回路の正しい動作のための最小電圧レベルがシフトされ得る。AVSモジュールおよび/またはデータベースは、これらのばらつきに基づいて構成または製造後に再構成する必要があり得る。
【００１０】
他の実施形態では、機能回路のための電圧レベルをスケーリングする方法が提供される。方法は、少なくとも1つの遅延回路において入力信号を受け取るステップを含む。方法はさらに、機能回路の少なくとも1つの遅延経路に関係する遅延量だけ入力信号を遅延して遅延出力信号を生成し、機能回路のための動作周波数に関連付けられたデータベースに記憶された電圧レベルに加えられた電圧オフセットと、遅延出力信号内の遅延情報とに基づいて、電圧レベル設定信号を発生するステップを含む。
【００１１】
他の実施形態では、機能回路のための電圧レベルをスケーリングする方法が提供される。方法は、少なくとも1つの遅延回路において入力信号を受け取るステップを含む。方法はさらに、機能回路の少なくとも1つの遅延経路に関係する遅延量だけ入力信号を遅延して遅延出力信号を生成し、機能回路のための動作周波数、および機能回路の温度レベルに関連付けられたデータベースに記憶された電圧レベルと、遅延出力信号内の遅延情報とに基づいて、電圧レベル設定信号を発生するステップを含む。
【００１２】
他の実施形態では、コンピュータ実行可能命令がそれに記憶されたコンピュータ可読媒体が設けられる。命令は、AVSモジュールに、機能回路のための動作周波数に関連付けられたデータベースに記憶された電圧レベルに加えられた電圧オフセットと、機能回路の少なくとも1つの遅延経路に関係する遅延量を表す遅延出力信号内の遅延情報とに基づいて、電圧レベル設定信号を発生させるように用意される。
【００１３】
他の実施形態では、コンピュータ実行可能命令がそれに記憶されたコンピュータ可読媒体が設けられる。命令は、AVSモジュールに、機能回路のための動作周波数、および機能回路の温度レベルに関連付けられたデータベースに記憶された電圧レベルと、機能回路の少なくとも1つの遅延経路に関係する遅延量を表す遅延出力信号内の遅延情報とに基づいて、電圧レベル設定信号を発生させるように用意される。
【図面の簡単な説明】
【００１４】
【図１】例示の適応型電圧スケーラ(AVS)、AVSシステム、および機能回路の概略図である。
【図２】AVSデータベースに記憶された例示のAVS周波数/電圧レベルテーブルである。
【図３】機能回路の動作領域を示す、例示の動作周波数対電圧レベル図である。
【図４】機能回路のための例示の動的電圧スケーラ(DVS)および適応型電圧スケーラ(AVS)領域を示す、例示の動作周波数対電圧レベル図である。
【図５】電圧マージンを回避または低減するように動作周波数に基づいて機能回路の電圧レベルを設定するために、AVSデータベースを利用して、学習した電圧レベルを適応的に記憶し、用いる、例示のプロセスを示すフローチャートである。
【図６】図1のAVSの制御下のクロック発生器によって発生されるクロック信号の、例示の動作周波数タイミング図である。
【図７Ａ】図1のAVSの制御下の電圧レギュレータによって発生される電圧信号の、例示の電圧レベルタイミング図である。
【図７Ｂ】新しい動作周波数が整定するのを待つ必要なしに、AVSによって新しい電圧レベルを設定できなかった場合の電圧信号の、例示の電圧レベルタイミング図である。
【図８】AVSによって調査された動作周波数に対して学習した電圧レベルを記憶するためにAVSデータベースに含むことができる例示のAVS学習値テーブルである。
【図９】例示の温度レベルバンドにわたり、所与の動作周波数での機能回路のための例示の最小電圧レベルを示す、例示の動作温度対電圧レベル図である。
【図１０】動作周波数に対応する機能回路に供給される電圧レベルに、オフセット電圧を加えるための例示のプロセスを示すフローチャートである。
【図１１】機能回路の温度レベルバンドが変化したときの、動作周波数に対応する機能回路に供給される電圧レベルに、オフセット電圧を加えるための例示のプロセスを示すフローチャートである。
【図１２】機能回路のそれぞれの可能な各動作周波数および温度レベルの関数として電圧レベル値を示す、例示のAVS周波数/電圧レベルテーブルである。
【図１３】機能回路の動作周波数および温度レベルバンドの関数として電圧レベル値を示す、例示のAVS周波数/電圧レベルテーブルである。
【図１４】AVSが、機能回路の温度レベルバンドの関数として、動作周波数に対応する新しい電圧レベルを決定し設定する例示のプロセスを示すフローチャートである。
【図１５】AVSが、所与の動作周波数にて、所与の温度レベルバンドに対して、最も高い電圧レベルに対応する機能回路のための新しい電圧レベルを決定し設定する例示のプロセスを示すフローチャートである。
【図１６】動作周波数および調整可能な温度レベルバンドの関数として電圧レベルを示す、別の例示のAVS周波数/電圧レベルテーブルである。
【図１７】機能回路の異なる動作周波数に対応する最小電圧レベルを示す、例示の最小電圧レベル限界テーブルである。
【図１８】別の例示のAVSシステムの概略図である。
【図１９】AVSを使用した例示の中央処理装置(CPU)機能回路および関連するシステムのブロック図である。
【発明を実施するための形態】
【００１５】
次に図面の図を参照して、本開示のいくつかの例示的実施形態について説明する。本明細書では「例示」という語句は、「実施例、事例、または例証として役立つ」ことを意味するために用いられる。本明細書では「例示」として述べられる実施形態は、必ずしも他の実施形態より好ましいまたは有利であると解釈されるものではない。
【００１６】
詳細な説明において開示される実施形態は、適応型電圧スケーラ(AVS)、AVSシステム、および関連する回路、ならびに方法を含む。AVSおよびAVSシステム、回路、ならびに方法は、電圧マージンを回避または低減するために、目標動作周波数および遅延変動条件に基づいて機能回路に電力供給する電圧レベルを適応的に調整するように構成される。電圧マージンを回避または低減することにより、機能回路の正しい動作を維持しながら電力を節約することができる。遅延変動は、各AVSおよび機能回路に特有な1つまたは複数の製造ばらつき、および/または環境条件の変動によって引き起こされる動作変動を含み得る。遅延変動条件は、動作周波数と、機能回路の正しい動作に必要な最小電圧レベルとの間の関係をシフトさせ得る。機能回路は、例として同期デジタル回路とすることができる。AVSはまた、機能回路のための動作周波数および電圧レベルを設定するために動的電圧スケーラ(DVS)への追加の電圧スケーラとして含めることができる。
【００１７】
この点に関して、図1に例示の適応型電圧スケーラ(AVS)システム10が概略的に示される。AVSシステム10は、機能回路15内のロジックのスイッチング速度またはレートを制御するためにクロック発生器14によって発生されるクロック信号12の動作周波数を決定し設定するように構成されたAVS11を含む。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を発生する。
【００２０】
AVS11内には、機能回路15内にもたらされた遅延変動条件に基づいて遅延を生成するために、1つまたは複数の遅延回路25が設けられる。機能回路15内の遅延は、製造プロセスおよび/または動作条件での変動により変化し得る。遅延回路25は、調整ループ24の一部として、クロック発生器14によって発生されたクロック信号12を入力信号として受け取る、遅延線クロックロジック26を含む。遅延線クロックロジック26は、遅延線30へのクロック信号12の遅延を表す出力信号29と、クロック周期遅延34へのクロック信号12の遅延を表す出力信号32とを発生する。遅延線30は、機能回路15内の1つまたは複数の選択された遅延経路に対応するように構成された複数の遅延経路(図示せず)を有する。選択された遅延経路は、動作時の遅延変動条件に基づいて機能回路15内の選択された遅延経路と同じくまたは同様にシミュレーションし調整するように構成された関連する遅延を有する。たとえば遅延経路は、ゲートを主とする、配線を主とする、および/または拡散容量を主とする遅延経路を含むことができ、遅延経路の1つは、機能回路15の現在の動作条件に応じてより大きな遅延を生成することになる。選択された遅延経路はまた、機能回路15の1つまたは複数のクリティカルパスに対応させることができる。遅延線30は、遅延線30の選択された遅延経路を、AVS11に結合された特定の機能回路15に調整できるようにプログラマブルとすることができる。
【００２１】
この実施形態では遅延回路25内の遅延線30は、比較器38に入力される遅延線出力36を発生する。比較器38は、例として比較フリップフロップとすることができる。比較器38は、クロック周期遅延34からクロック周期遅延信号40を受け取るとすぐに遅延出力信号42を発生する。遅延出力信号42は、AVSモジュール28への入力として遅延回路25から受け取られる。遅延出力信号42は、遅延線30内の最も長い遅延経路の選択を表し、したがって機能回路15の遅延またはタイミングマージンを表す。AVSモジュール28は、タイミングマージン情報を用いて、所望の性能レベル、および所望の性能レベルに対応する動作周波数を決定する。AVSモジュール28は、電圧マージンを回避または低減しながら機能回路15の正しい動作を維持するように、所望の性能レベルに対する電圧レベルを決定する。AVSモジュール28は、機能回路15の次の動作周波数を選択する。より具体的にはAVSモジュール28は、動作周波数設定信号16を発生して、次の動作周波数に従ってクロック信号12を変化するように、クロック発生器14を制御する。この実施形態ではAVSモジュール28は、ソフトウェア制御型プロセッサまたはコントローラである。しかしAVSモジュール28はまた、プロセッサまたはソフトウェアを有しないまたは回路内で実行されるソフトウェアによって部分的に制御可能な個別ロジックによって設けることもできる。
【００２２】
AVSモジュール28は、機能回路15に新しい動作周波数が供給されるべきであるとの指示に基づいて、機能回路15に電力供給する新しい電圧レベルを決定する。新しい電圧レベルは、電圧マージンも回避または低減しながら、機能回路15の正しい動作のための動作周波数に対する安全な最小電圧レベルである。AVSモジュール28は、機能回路15での動作周波数と電圧レベルとの間の関係をシフトさせ得る遅延変動条件に基づいて、電圧レベルを調整することができる。本明細書では、新しい動作周波数に対する新しい電圧レベルを決定するAVSモジュール28の実施例を示す様々な実施形態が開示される。AVSモジュール28が新しい動作周波数に対する新しい電圧レベルを決定した後に、AVSモジュール28は、新しい電圧レベルを適用する。AVSモジュール28は、電圧レベル設定信号20を発生して、電圧レギュレータ22に新しい電圧レベルを供給する。電圧レギュレータ22は、機能回路15に電力供給する新しい電圧レベルにて電圧信号18を発生する。クロック信号12、および電圧信号18はまた、調整ループ24の次の反復時にAVS11への入力となって、機能回路15での動作周波数と遅延変動条件とに基づいて機能回路15の電圧レベルの適応制御をもたらす。
【００２３】
任意選択でAVSモジュール28はまた、次の動作周波数に対する電圧レベルをさらに調整するために、AVS11に含まれる温度センサ48から受け取った動作温度レベル信号46を用いることができる。温度レベルは、所与の動作周波数にて機能回路15の正しい動作を維持するための最小電圧レベルをシフトさせ得る。機能回路15のための電圧レベル設定を決定するためにAVS11によって温度レベルを用いることについてのさらなる情報は以下で後に述べる。
【００２４】
前述のようにAVSモジュール28の1つの機能は、所与の新しい、決定された動作周波数に対して機能回路15に電力供給するための新しい電圧レベルを決定する。AVSモジュール28が新しい電圧レベルを決定する一実施例は、図2のAVS周波数/電圧レベルテーブル50に示される。AVS周波数/電圧レベルテーブル50は、データベース44(本明細書では「AVSデータベース44」とも呼ぶ)に記憶することができ、新しい電圧レベルを決定するためにAVSモジュール28によってアクセスすることができる。AVSモジュール28はまた、本明細書で述べるように、AVS周波数/電圧レベルテーブル50内の学習した電圧レベルを更新することができる。AVSモジュール28は、AVS周波数/電圧レベルテーブル50内の電圧レベルにアクセスして次の電圧レベルを決定するようにソフトウェア命令を実行する、ソフトウェア制御型モジュールまたはプロセッサとすることができる。別法としてAVSモジュール28は、AVSモジュール28によって実行されるソフトウェアによって部分的に制御可能とすることができる。AVSモジュール28はまた、ソフトウェア命令を実行して、次の動作周波数および電圧レベルを決定することができる。AVSモジュール28をソフトウェアベースのモジュールとして設けることにより、それに含まれる動作周波数および電圧レベルを決定するためのパラメータおよびアルゴリズム、ならびにAVSデータベース44に記憶された情報を、AVS11および機能回路15が設計および/または製造された後に、容易に構成または再構成することが可能になる。しかしAVSモジュール28はまた、ソフトウェアベースのモジュールまたはデバイスを用いずに電気回路にて設けることもできる。
【００２５】
図2のAVS周波数/電圧レベルテーブル50は、機能回路15の正しい動作を維持しながら電圧マージンを回避または低減するように、様々な所与の動作周波数に対する機能回路15のための安全な予め選択された最小電圧レベルを表す。したがってAVS周波数/電圧レベルテーブル50は、機能回路15に特有のものである。この実施形態ではAVS周波数/電圧レベルテーブル50は、有限個の動作周波数と電圧レベルの対52を含む。たとえば図2に示されるように、動作周波数f1に対する、AVS周波数/電圧レベルテーブル50に記憶された最小電圧レベルは、1.32ボルト(V)である。例として動作周波数f1は、1.0ギガヘルツ(GHz)とすることができる。動作周波数が低くなるにつれて、最小電圧レベルは低くなる。AVS周波数/電圧レベルテーブル50は、AVSデータベース44内に任意の所望の数の動作周波数と電圧レベルの対を含むように設計することができる。この実施形態では、AVS周波数/電圧レベルテーブル50に含まれない動作周波数ポイントに対する電圧レベルは、AVSモジュール28によって補間することができる。直線性を仮定することが望ましくない場合は、AVSモジュール28は、AVS周波数/電圧レベルテーブル50に含まれない動作周波数に対する電圧レベルを、AVS周波数/電圧レベルテーブル50内に含まれる次に高い動作周波数の電圧レベルに設定することができる。
【００２６】
AVS11がリセットされてすぐには、調整ループ24は、AVSモジュール28が電圧レベルを適応的に決定できるように反復されていない。したがって一実施形態では、適応電圧レベルが学習されるまで、AVS周波数/電圧レベルテーブル50はそれに含まれる各動作周波数ポイントに対して既知の安全な電圧レベルを用いて初期化することができる。別法としてAVS周波数/電圧レベルテーブル50は、それに含まれるすべての動作周波数ポイントを初期化されていないものとして始めに記録することができる。AVSモジュール28は、AVS周波数/電圧レベルテーブル50に、それに含まれるそれぞれの新しい動作周波数がAVSモジュール28によって調査され新しい動作周波数に対して新しい電圧レベルが決定されるのに従って、電圧レベルを配置することができる。
【００２７】
図2のAVS周波数/電圧レベルテーブル50は、有限個の動作周波数と電圧レベルの対52を含むが、この表示は単に、機能回路15の動作周波数対電圧レベル特性曲線に沿った点のデジタル記憶に依存するものである。図3には、そこに示される動作周波数対電圧レベル図55内に、機能回路15のための例示の動作周波数、電圧レベル特性曲線54(本明細書では「特性曲線54」とも呼ぶ)の例が示される。特性曲線54は、可能な動作周波数の範囲にわたる所与の動作周波数に対して、機能回路15が必要とする最小電圧レベルを表す。特性曲線54より下のいずれの動作周波数、電圧レベルポイントは、機能回路15に対する無効動作領域56内にある。特性曲線54上またはそれより上のいずれの動作周波数、電圧レベルポイントは、機能回路15に対する有効動作領域58内にある。特性曲線54はまた、動作周波数に関わらず機能回路15を正しく動作させるための最小動作電圧、図2および3の実施例では0.85Vを示すことに留意されたい。
【００２８】
AVS周波数/電圧レベルテーブル50の代替として、動作周波数と電圧レベルの対52は、特性曲線54を近似する、AVSデータベース44またはAVSモジュール28内に用意された多項式によって決定することもできる。特性曲線54はまた、それぞれが特性曲線54における動作周波数の部分領域を表す複数の多項式によって表すこともでき、それにより特性曲線54を表すのに低次の多項式を用いることが可能になる。
【００２９】
動作周波数、電圧レベル特性曲線54は、この実施例での機能回路15の動作周波数に対する理想的な最小電圧レベルを表すが、遅延変動条件は、特性曲線54を理想的条件からシフトさせ得る。遅延変動条件は、機能回路内の所与の遅延経路での遅延を変化させ得る、任意の条件とすることができる。たとえば遅延変動条件は、集積回路(IC)の製造時に結果として生じる個々のIC全体にわたるプロセスばらつきを含むことができる。動作温度およびトランジスタの経年効果などの環境条件も、機能回路15内の伝播遅延に影響を与え得る。電源によって供給される電圧レベルは、電流引き込みの変化により瞬間的に低下する場合があり、それにより機能回路15の性能が瞬間的に低下する。したがって他の実施形態によればAVS11は、機能回路15の正しい動作を維持しながら電圧マージンの回避または低減をさらに適応的に最適化するように追加の利点および性能をもたらすために、いくつかの追加の特徴およびデバイスを含むことができる。次にこれらの追加の特徴およびデバイスの実施形態について述べる。
【００３０】
図4は、図1のAVS11をさらに説明するのを容易にするために、例示の動作周波数対電圧図60を示す。図4に示されるように機能回路15は、2つの動作領域すなわち、有効動作領域62と、無効動作領域64とを有する。機能回路15の1組の特性曲線66は、有効動作領域62内の動作周波数と最小電圧レベル値の対によって形成される直線である。特性曲線66は、有効動作領域62を無効動作領域64から分離する。動作周波数に関わらず機能回路15の正しい動作のための最小電圧レベルが存在し、この実施例では例として、0.85Vと示される。規定された動作周波数より上では、機能回路15を有効動作領域62内に保つために、最小電圧レベルは増加されなければならない。
【００３１】
動的電圧スケーラ(DVS)ライン68は、DVSが機能回路15の電圧レベルを制御するのに用いる場合の、機能回路15の下側動作限界を示す。DVSライン68は、機能回路15でのプロセスおよび動作条件におけるすべての許容し得る変動にわたる、有効動作領域62に対する最小電圧レベルを示す。AVSライン70は、DVSライン68より低い、機能回路15の動作限界を示す。AVSライン70は、機能回路15内の電圧レベルを決定し設定するときに、AVS11が機能回路15におけるプロセスおよび動作条件での遅延変動を考慮に入れることによる電圧マージンの低減を表す。図1のAVS11からの3つの可能な決定を表す2つのAVSライン72、74がある。これは比較器38が、ある程度のビルトインヒステリシスを有し得る比較フリップフロップを含むことによる。3つの可能な決定は以下の通りである。
・「電圧ダウン」条件で、これは現在の電圧レベルが、機能回路15の正しい動作に必要とするより高いことを意味する。
・「変更なし」条件で、これは現在の電圧レベルが、機能回路15の正しい動作のために適切であることを意味する。
・「電圧アップ」条件で、これは現在の電圧レベルが、機能回路15の正しい動作に必要とするより低いことを意味する。
【００３２】
電力消費の観点から機能回路15が動作するのに望ましいポイントは、「変更なし」から「電圧アップ」への動作領域の遷移を規定するAVSライン74である。このAVSライン74上では、有効動作領域62での機能回路15の動作のために可能な最小電圧レベルを示す。しかしAVSライン74上では、得られる電圧マージン許容差はわずかであるか、または得られない。電圧レベルを制御するためにAVSモジュール28によってAVSライン74が用いられたならば、クロック信号12の動作周波数を測定するAVS11に関連するタイミング遅延により、機能回路15の無効な動作を示す「電圧アップ」条件が生じ得る。結果としてある期間の間AVSモジュール28は、無効動作領域64内の電圧レベルを設定し得る。「電圧アップ」条件は、AVS11および機能回路15をリセットさせ得る。したがってAVS11の一実施形態では、所与の動作周波数に対する電圧レベルを決定するのに、AVSライン72が用いられる。AVSライン72は、DVSライン68よりは電圧マージンを低減するが、無効動作領域64で機能回路15を動作させるのを回避するためにAVSライン74よりは電圧マージン許容差を含む。本明細書でさらに述べる実施形態は電圧マージンを、AVSライン72から、AVSライン74上のゼロ電圧マージンまで、または可能な限りゼロ電圧マージン近くまでさらに低減する。
【００３３】
上述のようにAVSモジュール28は、機能回路15のための動作周波数および電圧レベルを決定し設定するように構成される。この点に関して図5は、記憶された、AVSデータベース44に記憶された学習した電圧レベル設定に基づいて、機能回路15のために新しい動作周波数が供給されるべきであるとの指示に応答して、機能回路15のための動作周波数および電圧レベルを適応的に決定し設定するために、AVS11内のAVSモジュール28によって行うことができる1つの例示のプロセスのフローチャートを示す。この実施形態では図5のプロセスは、調整ループ24の一部としてAVSモジュール28によって実行される。AVSモジュール28はまた、以下により詳細に述べるように、機能回路15のために新しい動作周波数が供給されるべきであるとの指示の受け取りには関係しない他の条件に応答して、機能回路15のための動作周波数および電圧レベルを適応的に決定し設定することができる。図5を参照すると、プロセスは、AVSモジュール28が、機能回路15のための動作周波数を変更するべきであるとの指示を受け取ることによって(ブロック76)、開始する(ブロック75)。図1に示すように、この実施形態ではAVSモジュール28は、この指示を作業負荷推定27として受け取る。この実施形態では以下により詳細に述べるように、次にAVSモジュール28は、現在の動作電圧に対する電圧レベルを決定し、新しい動作周波数および電圧レベルを設定する前に、それに従ってAVSデータベース44を更新する(ブロック77)。別法としてAVSモジュール28は、機能回路15のための新しい動作周波数および電圧レベルが設定された後に、AVSデータベース44を実行し更新するように構成することもできる。やはり以下により詳細に述べるようにAVSモジュール28によって、他の特徴および機能を行うことができる。
【００３４】
次いでAVSモジュール28は、新しい動作周波数が現在の動作周波数より大きいかどうかを判定する(ブロック78)。新しい動作周波数が現在の動作周波数より大きくない場合は、AVSモジュール28は機能回路15のための電圧レベルを調整すべきかどうかを判定する必要なく直ちに、新しい動作周波数のための動作周波数設定信号16の設定へ進む(ブロック79)。機能回路15は、現在の電圧レベル設定に対しては、より低い動作周波数で正しく動作することが分かっている。しかし電圧マージンを回避または低減するために、可能であれば現在の電圧レベルを低減することが依然として望ましい。この点に関してAVSモジュール28は、機能回路15のための新しい電圧レベルを決定するために、新しい動作周波数が機能回路15内で整定するのを待つ(ブロック80)。これには数回のクロックサイクルおよび調整ループ24の反復が必要となり得る。
【００３５】
新しい動作周波数が整定した後に、AVSモジュール28は、新しい動作周波数がAVSデータベース44内でAVSモジュール28によって前に調査されているかどうかを判定する(ブロック81)。そうでない場合はAVSモジュール28は、電圧レベルを、新しい動作周波数に対して既知の安全な電圧レベルにプログラムする(ブロック82)。安全な電圧レベルは、DVS設定に基づくことができる。新しい動作周波数がAVSデータベース44内でAVSモジュール28によって前に調査されまたは学習されている場合は(ブロック81)、AVSモジュール28は、AVSデータベース44に記憶された学習した電圧レベルに基づいて、電圧レベル設定信号20を機能回路15のための新しい電圧レベルに設定する(ブロック83)。以下でより詳しく述べるようにAVSモジュール28は、機能回路15の変動および動作条件に基づいて、電圧マージンを回避または低減するために、AVSデータベース44において、調査した動作周波数に対応する、学習した電圧レベルを記憶するように構成される。学習した電圧レベルは、安全な電圧レベルより低くなり得るので、それにより機能回路15によるエネルギー消費が低減される。電圧レベルは、学習した電圧レベルを記憶するためにAVSデータベース44を用いることによって、そうでない場合より機能回路15内で電圧レベルを急速に低下させることができる。これは、以下で述べる図6、および7A〜7Bの実施例によって示される。
【００３６】
図6は、図1のAVS11の制御下でクロック発生器14によって発生される、クロック信号12の例示の動作周波数タイミング図90を示す。図7Aは、やはり図1のAVS11の制御下で電圧レギュレータ22によって発生される、電圧信号18の対応する例示の電圧レベルタイミング図92を示す。図6に示されるようにクロック信号12は、時間t3から時間t4までは、動作周波数f3にある。時間t4にてAVSモジュール28は、クロック発生器14に対する新しい動作周波数をf1に設定する(たとえば図5、ブロック79を参照)。クロック信号12の動作周波数は、時間t4とt5の間でf3からf1へ低下を開始し、時間t5で周波数f1にて安定化する。AVSモジュール28が、新しい動作周波数が機能回路15内で整定したと判定した後に(たとえば図5、ブロック80を参照)、AVSモジュール28はAVSデータベース44を調べる。AVSモジュール28は、AVSデータベース44を調べて、新しい動作周波数f1に対する電圧レベルが前に調査され学習されているかどうかを判定する(たとえば図5、ブロック81を参照)。この実施例ではAVSデータベース44は、新しい動作周波数f1に対する前に調査され学習した電圧レベルを含んでいた(たとえば図5、ブロック83を参照)。したがって図7Aの電圧レベルタイミング図92に示されるように、AVSモジュール28は、新しい動作周波数が整定するのを待つ必要なく、1クロックサイクルで、新しいかつ前に学習した電圧レベルに電圧信号18を発生し設定するように、電圧レベル設定信号20を設定することができた。そうでない場合はAVSモジュール28は、図7Bの電圧レベルタイミング図93に示されるように、1クロックサイクルで、電圧レベル設定信号20を新しい電圧レベルに設定することはできないことになる。プロセスは、開始(ブロック75)に戻って、AVSモジュール28が、機能回路15に新しい動作周波数が供給されるべきであるとの指示を受け取るたびに、ループする形で図5のステップを繰り返すことによって続行する。
【００３７】
新しい動作周波数が現在の動作周波数より高い場合は(ブロック78)、図7Aの電圧レベルタイミング図92の時間t1での例に示されるように、AVSモジュール28は、動作周波数設定信号16を新しい動作周波数に直ちには設定しない。これは図6の動作周波数タイミング図90の時間t1での例によって示される。これはAVSモジュール28は、新しい動作周波数を設定する前に、始めに機能回路15が正しく動作することを確実にするように新しい電圧レベルを決定するからである。この点に関してAVSモジュール28は、新しい動作周波数が、AVSデータベース44内でAVSモジュール28によって前に調査されているかどうかを判定する(ブロック84)。そうでない場合はAVSモジュール28は、新しい動作周波数に対する既知の安全な電圧レベルに、電圧レベルをプログラムする(ブロック85)。安全な電圧レベルは、DVS設定に基づくことができる。新しい動作周波数がAVSデータベース44内でAVSモジュール28によって前に調査されている場合は(ブロック84)、AVSモジュール28は、AVSデータベース44に記憶された学習した電圧レベルに基づいて、電圧レベル設定信号20を機能回路15のための新しい電圧レベルに設定する(ブロック86)。やはりAVSモジュール28は、機能回路15の変動および動作条件に基づいて電圧マージンを回避または低減するために、より急速に電圧レベルを低下させるように、AVSデータベース44に調査した動作周波数に対応する学習した電圧レベルを記憶するように構成される。学習した電圧レベルは、典型的には安全な電圧レベルより低くなり、それにより機能回路15によるエネルギー消費が低減される。その後にAVSモジュール28は、機能回路15内で新しい電圧レベルが整定するのを待つ(ブロック87)(たとえば、t1〜t2)。新しい動作周波数を設定できるようになる前に、AVSモジュール28が新しい電圧レベルが整定するのを待つ間に、追加の周波数マージンが存在し得る。新しい電圧レベルが整定した後にAVSモジュール28は、機能回路15のための新しい動作周波数を、より高い動作周波数に安全に調整することができる(ブロック88)(たとえば、t1〜t2)。プロセスは、スタート(ブロック75)に戻って、AVSモジュール28が、新しい動作周波数が機能回路15に供給されるべきであるとの指示を受け取るたびに、ループする形で図5のステップを繰り返すことによって続行する。
【００３８】
一実施形態ではAVSデータベース44は、所与の1つまたは複数の動作周波数に対して、AVS11によってすでに調査された、学習した最適な電圧レベル設定を記憶するために使用することができる。このようにしてAVSモジュール28は、新しい動作周波数が整定するのを待つ必要なく、前に調査された新しい動作周波数に対する特定の最適な電圧レベル設定に機能回路15を急速に戻すように、電圧レベル設定信号20を発生することができる。AVSモジュール28による新しい動作周波数の設定の時点と、新しい動作周波数の整定との間に存在する追加の電圧マージンは、機能回路15による全電力消費をさらに節約するために回避または低減することができる。
【００３９】
この点に関して図8は、前に調査した動作周波数に対する電圧レベルのAVS11の学習の一部として、AVSデータベース44に記憶し維持することができる、AVS学習値テーブル100の実施例を示す。任意の数の動作周波数を記憶することができる。AVS11内のAVSモジュール28は、前述のようにある電圧レベルが、特定の動作周波数に対して前に調査され学習されているかどうかを判定するために、AVS学習値テーブル100を調べることができる(たとえば、図5、ブロック81および84)。AVSモジュール28は、AVSデータベース44の更新プロセスの一部として、AVS学習値テーブル100を更新することができる(たとえば図5、ブロック77)。
【００４０】
図8に示すように、この実施形態ではAVS学習値テーブル100は、図2のAVS周波数/電圧レベルテーブル50と同様である。しかしこの実施形態ではAVS学習値テーブル100は、動作周波数カラム106内の対応する動作周波数に対する、電圧レベルカラム104に記憶された対応する電圧レベルが、前に調査され学習されたかどうかを示す学習カラム102を含んでいる。所与の動作周波数に対する電圧レベルがすでに学習されている場合は、場合によっては機能回路15内で新しい動作周波数が整定するのを待たなければならないのとは対照的に、AVSモジュール28は単に、AVS学習値テーブル100から学習した電圧レベルを選択すればよい。たとえば学習カラム102は、電圧レベルカラム104に記憶された値がAVSを用いた有効な、前に調査され学習された電圧レベルであるか、または初期のまたは無効なデータを含んでいるかどうかの表示を記憶するように構成することができる。AVSモジュール28は、新しい電圧レベルを設定するときにこの判定を行うために学習カラム102を調査するように構成することができる。学習していないまたは初期の記憶された電圧レベルは、DVSに基づくか、AVS電圧レベルが決定されるまでの初期電圧レベル値に基づくことができる。たとえばこの表示は、図8に示されるような学習ビット108とすることができる。論理「1」は有効なまたは学習値を表すことができ、論理「0」は無効なまたは初期値を表すことができ、逆も同様である。図8に示されるようにAVS学習値テーブル100は、動作周波数f1、f2、およびfNに対する前に学習した電圧レベルを含んでいる。AVS学習値テーブル100は、動作周波数f3に対する学習した電圧レベルは含んでいない。
【００４１】
AVSモジュール28は、AVSデータベース44内のAVS学習値テーブル100を、学習した電圧レベル設定を用いて更新を続けることができる。先に述べたようにAVSモジュール28は、違反することができない機能回路15のためのすべての動作周波数に対する最小電圧レベル設定を用いて構成することができる。この場合はAVSモジュール28は、AVSデータベース44内に、機能回路15のすべての動作周波数に対する最小電圧レベル設定より低い、学習した電圧レベル設定を記憶しないように構成することができる。
【００４２】
この実施例では、図8のAVS学習値テーブル100に記憶されたいくつかの電圧レベルは、図2のAVS周波数/電圧レベルテーブル50内の対応する電圧レベルより低い。これはAVS11が、機能回路15での電圧レベルと動作周波数との間の関係において、AVSモジュール28によって決定された追加の遅延変動を考慮に入れていることによる。AVSモジュール28は始めに、AVSモジュール28が遅延変動条件に基づいて他の電圧レベルを適応的に学習するまで、図2のAVS周波数/電圧レベルテーブル50内の電圧レベルなど、機能回路15のための安全な電圧レベルを用いてAVS学習値テーブル100内に電圧レベルを配置するように構成することができる。電圧レベルが適応的に学習されるときは、AVSモジュール28は、AVS学習値テーブル100内の動作周波数に対応する学習ビット108を、一例として論理「0」(初期または無効を意味する)から論理「1」に変更することができ、逆も同様である。AVS11の目的は機能回路15での動作パラメータおよび遅延条件に基づいて電圧マージンを低減することであるので、典型的には学習した電圧レベルは、電圧レベルにおいて初期電圧レベルより低くなる。
【００４３】
機能回路15のための新しい動作周波数の表示を超えて、新しい電圧レベルが供給されるべきかどうかを判定するようにAVSモジュール28を構成することが望ましい、他の条件および変動が生じ得る。たとえば機能回路15の温度レベルの変化は、機能回路15のための有効動作領域を規定する電圧レベルをシフトし得る。通常は機能回路15は、温度が低くなるほど可能な動作は高速になる。同様に、通常は機能回路15は、温度が高くなるほど可能な動作は遅くなる。これは図9の例示の動作温度対電圧レベル図110に示される。例としてそれに示されるように機能回路15は、動作周波数「f」で、摂氏40度(40℃)の動作温度において、1.2Vの最小電圧レベル設定にて、有効動作領域112内で正しく動作することができる。動作周波数「f」で、摂氏40度(40℃)の動作温度に対して、1.2V未満の電圧レベルでは、機能回路15は無効動作領域114に置かれることになる。しかし動作温度レベルが低くなる場合は、電圧レベル設定は低くすることができ、機能回路15は同じ動作周波数「f」にて有効動作領域112内に留まる。たとえば摂氏20度(20℃)の動作温度レベルでは、電圧レベル設定は1.0Vまで低くすることができる。この実施例では、動作周波数「f」に対して、20℃と40℃の間の動作温度レベルの最小電圧レベルの間には、0.2Vの差がある。前述のAVS11は、必要であれば、電圧マージンを回避または低減しながら、機能回路15の正しい動作を維持するように、電圧レベル設定を変化することによって温度レベル変化に反応することができる(たとえば「電圧アップ」および「電圧ダウン」コマンド)。
【００４４】
例として機能回路15の動作周波数は、図9の例での動作周波数「f」より高いと仮定する。次にAVS11が、動作周波数を「f」に変更するように指示を受け取ったと仮定する。この実施例ではAVSモジュール28は、新しい電圧レベル設定を決定するためにAVSデータベース44を調べることになる。前述のようにこの新しい電圧レベル設定は、新しい動作周波数に対するAVSデータベース44に記憶された、前に学習した電圧レベル設定であり得る。しかし機能回路15を正しく動作させるのに必要な新しい電圧レベル設定は、温度レベルに依存し得る。AVS11内に温度または検出デバイスが設けられていなければ、温度レベルは分からない場合がある。したがって新しい動作周波数「f」に対する前に学習した電圧レベル設定は、前の、機能回路15の現在の温度レベルより低い温度レベルであったということがあり得る。この点に関して、AVS11が前に学習した電圧レベルを用いて新しい電圧レベルを設定する場合は、前の温度レベルおよび現在の温度レベルが分からないので、この電圧レベル設定は、現在の動作温度に対する機能回路15の正しい動作のためには、新しい動作周波数に対しては低すぎる場合がある。
【００４５】
この点に関して図10は、新しい決定された電圧レベルにオフセット電圧を加えるように、AVSモジュール28によって行うことができる例示のプロセスを示すフローチャートである。新しい電圧レベルは、機能回路15に新しい動作周波数を供給するための指示に応答して決定することができる。図11は、機能回路15の温度レベルの検出された変化に応答して、新しい決定された電圧レベルにオフセット電圧を加えるように、AVSモジュール28によって行うことができる例示のプロセスを示すフローチャートである。このようにして、AVSデータベース44に記憶された電圧レベル設定が機能回路15の正しい動作には低すぎる場合に、電圧オフセットが加えられた電圧レベル設定は、機能回路15を安全に動作させるのに十分となり得る。前述のようにAVS11は、機能回路15での電圧マージンを回避または低減するための通常の動作を通じて、可能であれば最終的にはこの新しい電圧レベルを低下させることになる。
【００４６】
図10を参照すると、ここで開示されるプロセスは、この例では図5のブロック83または86で行うことができ、そこでは機能回路15のための新しい電圧レベルが設定される。プロセスが開始し(ブロック120)、AVSモジュール28は、新しい動作周波数に対応する記憶された電圧レベルについてAVSデータベース44を調べる(ブロック122)。次いでAVSモジュール28は、新しい動作周波数に対応するAVSデータベース44に記憶された電圧レベルに、オフセット電圧を加える(ブロック124)。次いでAVSモジュール28は、動作のために機能回路15に新しい電圧レベルを供給するために、電圧レベル設定信号20として電圧オフセットで調整された新しい電圧レベルを設定する(ブロック126)。オフセット電圧は、任意の所望の電圧レベルとすることができる。オフセット電圧は、AVSデータベース44に記憶された固定の電圧オフセットとすることができる。電圧オフセットは、機能回路15での異なる動作温度の間での電圧レベルの予想される変動に基づいて選択することができる。したがってオフセット電圧は、AVSモジュール28と、機能回路15に供給される電圧レベルを制御するように電圧レギュレータ22に供給される電圧レベル設定信号20を制御するのに用いられるAVSモジュール28の構成とによって影響を受け得る。
【００４７】
図11は、温度レベルの変化が生じたときに、動作周波数に対応する新しい電圧レベルにオフセット電圧を加えるための別の例示のプロセスを示すフローチャートである。この実施形態ではAVSモジュール28は、温度変化が生じたときに、新しい動作周波数の表示が供給されたときの反対にまたは追加として、電圧レベル設定信号20にオフセットを加えるように構成される。図11のフローチャートに示されるプロセスは、望むなら調整ループ24の一部としてAVSモジュール28によって行うことができる。機能回路15の温度レベルが変化するときは、AVSデータベース44内の前に記憶されたまたは学習した電圧レベル設定は、機能回路15が正しく動作できるためには不十分となり得る。したがって電圧オフセットを加えることにより、温度が変化したときに機能回路15のために安全な初期の新しい電圧レベルが供給されることを確実にすることができる。次いでAVS11は、可能であれば通常の動作の一部として適応的に電圧レベルを低下させるように動作する。図11に示されるように、プロセスが開始し(ブロック128)、AVSモジュール28は、動作温度レベル信号46を通じて温度センサ48から現在の温度レベルを受け取る(ブロック130)。たとえば温度レベルが、前の動作温度レベルから一定の閾値レベルまたは百分率を超えるだけ変化した場合は、AVSモジュール28は新しい電圧レベルを、電圧オフセットが加えられた現在の電圧レベルに設定して、電圧レベル設定信号20を発生し(ブロック134)、プロセスは完了する(ブロック135)。機能回路15の温度レベルが十分に変化していない場合は、電圧レベル設定信号20に電圧オフセットを加える必要はなく、プロセスは終了する(ブロック135)。
【００４８】
図12は、AVSデータベース44に記憶し、機能回路15のための新しい電圧レベル設定を決定するためにAVSモジュール28によって用いることができる、別の例示のAVS周波数/電圧レベルテーブル136を示す。この実施形態ではAVSモジュール28は、動作周波数の関数としてだけでなく温度レベルの関数としても、AVSデータベース44に学習した電圧レベル設定を記憶するように構成することができる。たとえば温度レベルは、図1のAVS11内に設けられた温度センサ48から、AVSモジュール28に供給することができる。AVSモジュール28が機能回路15のための新しい電圧レベルを設定するときは(たとえば図5のブロック83および86)、AVSモジュール28は、新しい動作周波数と、温度センサ48から受け取った温度レベルとに基づいて、AVS周波数/電圧レベルテーブル136を調べる。AVSモジュール28は、新しい動作周波数(f1、f2、・・・fN)および現在の温度レベルでのAVSデータベース44に記憶された対応する電圧レベルを用いて、機能回路15の新しい電圧レベルを設定するように電圧レベル設定信号20を設定する。この実施例ではAVS周波数/電圧レベルテーブル136は、可能なすべての動作周波数と、温度センサ48の分解能に対する温度レベルとに対して、電圧レベルを記憶するのに十分な記憶域138を含んでいる。この実施例では温度センサ48は、8ビットワード分解能を有して256個までの一意の温度レベルを生じる。したがってこの実施例ではAVS周波数/電圧レベルテーブル136は、各動作周波数に対して256個の電圧レベル項目を含んでいる。
【００４９】
所与の温度および性能レベルの場合に機能回路15に対して、電圧レベル-動作温度特性の不規則性または偏差が存在または発生し得る。各温度レベルに対して電圧レベルが記憶されるときに、変動または不規則性により、所与の動作周波数に対する記憶された電圧レベルが無効となり得る。前述のように、電圧マージンを追加する、電圧レベルオフセットを記憶された電圧レベルに加えることができる。変動または不規則性を考慮に入れるための別の解決策として、それぞれの可能な温度レベルに対してではなく、温度レベル範囲またはバンドに基づいて電圧レベルを記憶することができる。このようにして、記憶された電圧レベルは、特定の温度レベルではなく温度レベルバンドをカバーする。温度レベルバンドに対して記憶された電圧レベルは、すべての電圧レベルに単一の電圧オフセットを適用したならば生じ得る電圧マージンを回避または低減しながら、変動または不規則性を考慮に入れるように選択することができる。個々の温度レベルバンドに対応する電圧レベルには、依然として電圧オフセットを印加することができ、電圧オフセットはより小さくなり得るが、各温度レベルバンドに特有であるのでそれにより場合によってはさらに電圧マージンが低減される。温度レベルバンドに対して電圧レベルを記憶する別の理由は、メモリ要件を低減することである。温度レベルバンドに対する電圧レベルを記憶することにより、AVSデータベース44内にそれぞれの可能な温度レベルに対する電圧レベルを記憶するのに十分なメモリを用意するまたは割り当てるより、必要なメモリを少なくすることができる。
【００５０】
したがって各温度レベルに対する電圧レベルを記憶する代わりとして、温度レベルバンドをAVSデータベース44に記憶することができ、それによって電圧レベルは温度範囲に基づいて動作周波数に対して記憶される。温度レベルバンドにわたって電圧レベルを記憶する一実施例は、図13のAVS周波数/電圧レベルテーブル140に示される。それに示されるように、AVS周波数/電圧レベルテーブル140内に温度レベル142が設けられる。電圧レベルは、温度レベル142および動作周波数144(f1、f2、・・・fN)の関数として、AVS周波数/電圧レベルテーブル140に記憶される。温度レベル142は、温度レベルバンド(B1、B2、B3、B4、・・・BN)を形成する。たとえば温度レベルバンドB1は、摂氏60と80度(60〜80℃)の間の温度レベルである。温度レベルバンドB4は、摂氏0と20度(0〜20℃)の間の温度レベルである。本明細書での実施形態は、図13に示される例示の温度レベルバンドに限定されないことに留意されたい。たとえば機能回路は、例として摂氏85から-30度(-30〜+85℃)の間の動作範囲を有し得る。この実施例では周波数/電圧レベルテーブル140は、この温度範囲をカバーする温度レベルバンドを含むように構成することができる。AVSモジュール28が新しい電圧レベルを設定するときは(たとえば図5のブロック83および86)、AVSモジュール28は、AVS周波数/電圧レベルテーブル140を調べて、新しい動作周波数に基づいて新しい電圧レベルと、現在の動作温度がAVS周波数/電圧レベルテーブル140内のどの温度レベルバンドに含まれるかを決定することができる。AVSモジュール28は、動作周波数と、AVS周波数/電圧レベルテーブル140内で現在の動作温度を含んでいる温度レベルバンドとに基づいて、機能回路15のため新しい電圧レベルを設定する。この点に関し図14は、AVSモジュール28が機能回路15のための新しい電圧レベルを設定するための例示のプロセスを示すフローチャートである。
【００５１】
図14に示されるように、この実施例ではプロセスは、電圧レベル設定タスクの一部としてAVSモジュール28によって実行される(たとえば図5のブロック83および86)。プロセスが開始し(ブロック150)、AVSモジュール28は、温度センサ48から現在の動作温度レベルを求める(ブロック152)。次いでAVSモジュール28は、現在の動作温度に対応する温度レベルバンドにて、新しい動作周波数に対する新しい電圧レベルについてAVSデータベース44を調べる(ブロック154)。たとえばAVSモジュール28は、図13のAVS周波数/電圧レベルテーブル140を調べることができる。AVSモジュール28の構成に応じて、新しい電圧レベルが決定される。
【００５２】
一実施例としてAVSモジュール28は、現在の温度レベルの温度レベルバンドに対応する、AVSデータベース44に記憶された電圧レベルに電圧オフセットを加えることができる(ブロック156)。このようにして、選択された温度レベルバンドに対応するAVSデータベース44に記憶された電圧レベルが機能回路15の現在の動作温度に対して十分な電圧レベルでない場合は、電圧オフセットにより機能回路15のための安全な初期動作電圧レベルを確実にすることができる。別法としてAVSモジュール28は、新しい電圧レベルを、AVS周波数/電圧レベルテーブル140内の、より高い隣接する温度レベルバンドから選択することができる(ブロック158)。隣接する温度レベルバンドの中から新しい電圧レベルを選択することにより、所与の温度および性能レベルに対して、機能回路15に対する電圧レベル-動作温度特性の不規則性または偏差に基づいて新しい電圧レベルを選択することを少なくするまたは回避する助けとなり得る。別の代替としてAVSモジュール28は、AVS周波数/電圧レベルテーブル140内で、現在の温度レベルバンドと、より高いおよびより低い隣接する温度レベルバンドの中から、最も高い電圧レベルを選択することができる(ブロック160)。AVS周波数/電圧レベルテーブル140において、より低い隣接する温度レベルバンドでの電圧レベルは、より高い隣接する温度レベルバンドよりも高くなり得る。AVSモジュール28によって新しい電圧レベルが決定された後に、AVSモジュール28は、電圧レベル設定信号20に新しい電圧レベルを設定し(ブロック162)、プロセスは終了する(ブロック164)。
【００５３】
別法としてAVSモジュール28は、所与の新しい動作周波数に対して、AVS周波数/電圧レベルテーブル140に記憶されたすべての温度レベルバンドに対して最も高い電圧レベルに基づいて、機能回路15のための新しい電圧レベルを選択することができる。この点に関してAVSモジュール28は、図15の例示のフローチャートに示されるプロセスによって、新しい電圧レベル設定を設定することができる(たとえば図5のブロック83および86)。それに示されるように、プロセスが開始し(ブロック166)、AVSモジュール28は、現在の動作温度に関わらず、新しい動作周波数に対してAVSデータベース44に記憶された最も高い電圧レベルを取得する(ブロック168)。次いでAVSモジュール28は、新しい電圧レベルを機能回路15に供給するように、新しい電圧レベルを電圧レベル設定信号20に設定し(ブロック170)、プロセスは終了する(ブロック172)。
【００５４】
AVSモジュール28はまた、図14のAVS周波数/電圧レベルテーブル140内に用意されたような固定の温度レベルバンドの代わりに、AVSデータベース44内のAVS周波数/電圧レベルテーブルの温度レベルバンドを調整するように構成することもできる。一実施例は、図16のAVS周波数/電圧レベルテーブル174に示される。この実施例では、AVS周波数/電圧レベルテーブル174に記憶された温度レベル176は、AVSモジュール28によって変更することができる。AVSモジュール28が、所与の動作周波数に対する電圧レベルを設定および/または低下させるように実行するのに従って(たとえば図5、ブロック77)、AVSモジュール28は、AVS周波数/電圧レベルテーブル174内の温度レベルバンドを更新するように構成することができる。AVSモジュール28が、所与の動作周波数および温度レベル176に対する電圧レベルを決定する場合は、AVSモジュール28は、新しい電圧レベルに対するAVS周波数/電圧レベルテーブル174内の適切な温度レベル176を更新することができる。温度レベル176は時間と共に、温度レベルバンドを規定するように調整されることになる。これらの温度レベルバンドは、十分に正確なものとなることができ、記憶された電圧レベルを調整するために電圧オフセットを与えることは行わなくてもよい。
【００５５】
AVSデータベース44はまた、AVSモジュール28によって設定された電圧レベルが機能回路15の動作のための最小電圧レベルより低くならないことを確実にするために、すべての動作周波数に対して機能回路15のための最小電圧レベルを記憶するように構成することができる。この点に関して図17は、AVSデータベース44に記憶することができる例示の最小電圧レベル限界テーブル190を示す。AVSモジュール28は、電圧レベルが設定される前に、所与の現在の動作周波数に対して、AVSデータベース44内の最小電圧レベル限界テーブル190を調べるように構成することができる。AVSモジュール28によって決定された電圧レベルが、現在の動作周波数に対する最小電圧レベル限界テーブル190内の最小電圧レベルより低い場合は、AVSモジュール28は、電圧レベルを最小電圧レベル限界テーブル190内の電圧レベルに設定する。最小電圧レベル限界テーブル190は、初期にはすべての動作周波数に対して同じ電圧レベル(たとえば0.85V)を含むことができる。しかしAVSモジュール28が、「電圧アップ」条件になるとすぐに所与の動作周波数に対する電圧マージンを加えるように構成された場合は、加えられた電圧マージンを、最小電圧レベル限界テーブル190内の最小電圧レベルに加えることができる。たとえば図17に示されるように、「電圧アップ」条件が動作周波数f3にて受け取られ、前の最小電圧レベルが0.90Vであり、加えられた電圧マージンが0.05Vであった場合は、最小電圧レベル限界テーブル190内の動作周波数f3に対して、0.95Vの最小電圧レベルを記憶することができる。
【００５６】
図18は、別の例示のAVSシステム210である。AVSシステム210は、図1のAVS11と同様なAVS 11'を含む。共通の構成要素は、共通の要素番号でラベルが付けられている。AVS 11'は図1のAVS11と同様に、AVSモジュール28、AVSデータベース44、遅延線クロックロジック26、プログラマブル遅延線30、クロック周期遅延34、比較器38、および温度センサ48を含む。最小電圧レベルを設定するためのAVSの動作は、前述のいずれかの実施形態により動作することができる。しかし図20のAVS 11'はまた、動的電圧スケーラ(DVS)モジュール212、およびDVSテーブル214を含む。図20のAVS 11'は、DVSモジュール212およびDVSテーブル214をすでに含むシステムに、AVSモジュール28およびAVSデータベース44が加えられた、変形または更新された設計であってもよい。DVSモジュール212は、機能回路15に対する作業負荷推定213に従って、電圧レベル設定信号216を電圧レギュレータ22に通信することによって、動的電圧スケーリングを行う。しかしこの実施形態ではまた、機能回路15での遅延変動条件に基づいて電圧レベルを適応的にスケーリングするように、AVSモジュール28が設けられる。DVSモジュール212からAVSモジュール28への指示に応答して、AVSモジュール28はDVSモジュール212に、決定したAVS電圧レベルまたは電圧レベル調整を供給する。AVSモジュール28は、DVSモジュール212からAVSモジュール28に供給された現在の動作周波数および目標動作周波数に基づいてAVSデータベース44を調べる。DVSモジュール212は、動作周波数に対応する電圧レベルを含んだDVSテーブル214に記憶され、AVSモジュール28から戻ってDVSモジュール212に供給された電圧レベルまたはマージンによってさらに調整された、電圧レベルに基づいて、電圧レベル設定信号20を設定するように構成される。DVSモジュール212はまた、動作周波数設定信号218を発生して、機能回路15のスイッチングを制御するためにクロック発生器14によって発生されるクロック信号12の動作周波数を設定する。
【００５７】
AVSモジュール28によって決定される電圧レベルは、AVSモジュール28は適応的にさらに電圧マージンを回避または低減するように構成されるので、理想的にはDVSモジュール212によって決定される電圧レベルと同じまたはそれより低くなるべきである。上述のようにAVSモジュール28は、機能回路15の無効動作領域を見出すように、図18に示されるように遅延線設定信号220を通じて、遅延回路25の遅延線(DL)30での遅延を設定することができる。この実施形態では遅延線設定信号220は、遅延の大きさを制御する32ビット遅延レジスタ222である。この遅延は、線形でもよく線形でなくてもよい。32ビット遅延レジスタ222の値を有する遅延線設定信号220は、上述のように回路とすることができる複数のAVS224 1〜N内の遅延線30に通信される。複数の遅延レジスタ222を設けることができ、それぞれが所与のAVS224内の遅延の大きさを制御する。図に示していないが各AVS224は、図1のAVS11内に設けられたものと同様な遅延線クロックロジック26、遅延線30、比較器38、およびクロック周期遅延34を含む。AVS224は、機能回路15に含まれる様々なタイプの回路内の遅延をシミュレートするための遅延ロジックを含む。任意の所望の数のAVS224を設けることができる。AVS224内のロジックの動作周波数、および電力はまた、それぞれクロック発生器14および電圧レギュレータ22によって発生されるクロック信号12および電圧信号18から供給される。比較器38は、タイミングマージン情報をAVSモジュール28に供給するために遅延出力信号42を通して通信されるタイミングマージン情報を、もう1つの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 DDR2 SDRAMが含まれる。AVSによってその動作周波数および電圧レベルが制御される任意のメモリ回路またはシステムの構成要素は、メモリの技術および/または設計により必要な場合は、メモリが、メモリセルを機能するように保つのに十分な電圧レベルを供給する電圧ドメインによって電力供給される限り、複数の電圧ドメインのうちのいずれの電圧ドメイン内にあってもよい。
【００５９】
本明細書で述べられる設計および方法によるAVSシステムおよびAVSは、半導体ダイ、集積回路、および/または、電子デバイスおよび/またはプロセッサベースのデバイスまたはシステムを含むデバイス内に、含めるまたは統合することができる。このようなデバイスの例には、非限定的に、セットトップボックス、娯楽装置、ナビゲーション装置、通信装置、携帯情報端末(PDA)、固定位置データユニット、可動位置データユニット、携帯電話、セルラ電話、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、携帯音楽プレーヤ、ビデオプレーヤ、デジタルビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、および携帯デジタルビデオプレーヤが含まれる。
【００６０】
図19は、上述のAVS232および関連する回路を用いることができるプロセッサベースのシステム230を示す。プロセッサベースのシステム230は、電子デバイス234内に含めることができる。AVS232は、CPU236内のプロセッサ238に供給されるクロック信号の動作周波数、および電圧信号の電圧レベルを制御するために、CPU236内に含めることができる。CPU236は、プロセッサベースのシステム230に含まれる他のデバイスを相互接続するシステムバス240に結合される。AVS241はまた、システムバス240に結合された図形処理装置(GPU)243内に含めることができる。よく知られているようにCPU236および/またはGPU243は、システムバス240を通してアドレス、制御、およびデータ情報を交換することによって、これらの他のデバイスと通信することができる。これらのデバイスは、任意のタイプのデバイスを含むことができる。図21に示されるように、例としてこれらのデバイスは、システムメモリ242、1つまたは複数の入力装置244、1つまたは複数の出力装置246、ネットワークインターフェース装置248、およびディスプレイコントローラ250を含むことができる。
【００６１】
1つまたは複数の入力装置244は、非限定的に、入力キー、スイッチ、音声プロセッサなどを含む、任意のタイプの入力装置を含むことができる。1つまたは複数の出力装置246は、非限定的に、音声、映像、その他の視覚表示器などを含む、任意のタイプの出力装置を含むことができる。ネットワークインターフェース装置248は、ネットワーク252へのおよびネットワーク252からのデータの交換を可能にするように構成された任意のデバイスとすることができる。ネットワーク252は、非限定的に、有線または無線ネットワーク、プライベートまたは公共ネットワーク、ローカルエリアネットワーク(LAN)、広域ネットワーク(WLAN)、およびインターネットを含む、任意のタイプのネットワークとすることができる。ネットワークインターフェース装置248は、所望の任意のタイプの通信プロトコルをサポートすることができる。
【００６２】
CPU236はまた、システムバス240を通してシステムメモリ242にアクセスすることができる。システムメモリ242は、スタティックメモリおよび/またはダイナミックメモリを含むことができる。システムメモリ242は、CPU236のためのプログラム記憶254およびデータ記憶256を含むことができる。CPU236はまた、システムバス240を通してディスプレイコントローラ250にアクセスし、ディスプレイ258に送られる情報を制御することができる。ディスプレイコントローラ250は、CPU236との通信に応答してディスプレイ258に送られるデータを記憶するための、メモリコントローラ260およびメモリ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)システム
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  動作温度レベル信号
48  温度センサ
【図１】
0005499165.tif 000002
【図２】
0005499165.tif 000003
【図４】
0005499165.tif 000004
【図５】
0005499165.tif 000005
【図６】
0005499165.tif 000006
【図７Ａ】
0005499165.tif 000007
【図７Ｂ】
0005499165.tif 000008
【図８】
0005499165.tif 000009
【図９】
0005499165.tif 000010
【図１０】
0005499165.tif 000011
【図１１】
0005499165.tif 000012
【図１２】
0005499165.tif 000013
【図１３】
0005499165.tif 000014
【図１４】
0005499165.tif 000015
【図１５】
0005499165.tif 000016
【図１６】
0005499165.tif 000017
【図１７】
0005499165.tif 000018
【図１８】
0005499165.tif 000019
【図１９】
0005499165.tif 000020
【図３】
0005499165.tif 000021