(57)【特許請求の範囲】
【請求項１】
オン−チップ処理システム内での適応電圧スケーリングのための方法において、
複数のクリティカルパスのうちから、エミュレーション回路上で分析するクリティカルパスを選択することと、
前記選択されたクリティカルパスに依拠して、前記エミュレーション回路中の１つ以上の遅延バッファを選択して、前記エミュレーション回路中から測定回路に第１の遅延出力を提供させることと、
前記測定回路によって、前記第１の遅延出力と、第２の遅延出力と、第３の遅延出力と、遅延されたクロック信号とに少なくとも部分的に基づいて、前記選択されたワーストケースのクリティカルパスの時間マージンを決定して、前記時間マージンに基づいて、調整信号を発生させることと、
制御回路によって、前記調整信号に応答して、オン−チップ関数動作の間に、電圧をワーストケース最小電圧より高くまたはワーストケース最小電圧に等しくなるように調整することとを含み、
前記選択されたクリティカルパスは、前記オン−チップ処理システム内で、命令パイプラインステージを通して、プログラム実行の間に動作されることになるワーストケースクリティカルパスを表し、
前記第２の遅延出力は、前記第１の遅延出力に、前記測定回路中の第１の遅延エレメントによる遅延を加えたものであり、前記第３の遅延出力は、前記第２の遅延出力に、前記測定回路中の第２の遅延エレメントによる遅延を加えたものであり、
電圧源が、前記選択されたクリティカルパスを持っている電力ドメインに対して電力を供給する方法。
【請求項２】
クリティカルパスの長さにしたがって、前記命令パイプラインステージ中の命令を、複数のタイミングカテゴリに分類することと、
前記プログラム中で使用されるタイミングカテゴリを決定することと
をさらに含む、請求項１記載の方法。
【請求項３】
前記プログラム中で使用される前記タイミングカテゴリのハードウェア決定された利用に基づいて、クリティカルパスが選択される、請求項２記載の方法。
【請求項４】
前記選択されたクリティカルパスの時間マージンを決定することは、前記第１の遅延出力の周期を、前記電力ドメインの動作周波数のクロック周期と比較することをさらに含む、請求項１記載の方法。
【請求項５】
前記時間マージンが、第１の遅延値より長く、または、前記第１の遅延値に等しいが、前記第１の遅延値プラス第２の遅延値より短い場合、前記電圧に対して何の調整も行わないことをさらに含む、請求項４記載の方法。
【請求項６】
前記時間マージンが、前記第１の遅延値プラス前記第２の遅延値より長く、または、前記第１の遅延値プラス前記第２の遅延値に等しい場合、前記電圧をより低い電圧に調整することをさらに含む、請求項５記載の方法。
【請求項７】
前記時間マージンが、前記第１の遅延値より短い場合、前記電圧を増加させることをさらに含む、請求項５記載の方法。
【請求項８】
対応するクリティカルパスの近くに配置されている信号パス中で、同等のコンポーネントを具体化することによって、前記複数のクリティカルパスのうちのそれぞれのクリティカルパスがエミュレートされる、請求項１記載の方法。
【請求項９】
前記エミュレーション回路は、プログラム可能遅延回路である、請求項１記載の方法。
【請求項１０】
コンフィギュレーションビットを、コンフィギュレーションレジスタにロードして、前記クリティカルパスを選択し、前記コンフィギュレーションビットは、前記プログラム可能遅延回路を構成して、前記選択されたクリティカルパスをモデル化することをさらに含む、請求項９記載の方法。
【請求項１１】
適応電圧スケーリング（ＡＶＳ）回路において、
クリティカルパスをエミュレートするプログラム可能タイミングパスエミュレーション回路と、
オン−チップで動作されることになるプログラム中の命令利用に基づいて、複数のクリティカルパスのうちから、前記プログラム可能タイミングパスエミュレーション回路上で分析するクリティカルパスを選択するクリティカルパス選択ロジックと、
前記選択されたクリティカルパスに依拠して、前記プログラム可能タイミングパスエミュレーション回路中の１つ以上の遅延バッファを選択することにより、前記プログラム可能タイミングパスエミュレーション回路を構成して、前記プログラム可能タイミングパスエミュレーション回路から測定回路に第１の遅延出力を提供させるプログラム可能制御ロジックと、
前記第１の遅延出力と、第２の遅延出力と、第３の遅延出力と、遅延されたクロック信号とに少なくとも部分的に基づいて、前記選択されたワーストケースのクリティカルパスの時間マージンを決定して、前記時間マージンに基づいて、調整信号を発生させる前記測定回路と、
前記調整信号に応答して、オン−チップ関数動作の間に、電圧レギュレータの出力電圧をワーストケース最小電圧より高くまたはワーストケース最小電圧に等しくなるように制御する制御回路とを具備し、
前記エミュレートされたクリティカルパスは、プログラム実行の間に動作されることになるワーストケースクリティカルパスを表し、
前記第２の遅延出力は、前記第１の遅延出力に、前記測定回路中の第１の遅延エレメントによる遅延を加えたものであり、前記第３の遅延出力は、前記第２の遅延出力に、前記測定回路中の第２の遅延エレメントによる遅延を加えたものであり、
前記電圧レギュレータは、前記選択されたクリティカルパスを持っている電力ドメインに対して電力を供給する、ＡＶＳ回路。
【請求項１２】
前記プログラム可能タイミングパスエミュレーション回路は、
プログラム選択可能パス遅延回路と、
パス遅延測定を開始させるための始動信号回路と
を備える、請求項１１記載のＡＶＳ回路。
【請求項１３】
前記プログラム選択可能パス遅延回路は、
第１のレイヤ直列チェーン中で、プログラム選択可能第１レイヤタップとともに一緒に結合されて、クリティカルパス中のロジックエレメントをモデル化する、第１のレイヤの遅延エレメントと、
第２のレイヤ直列チェーン中で、プログラム選択可能第２レイヤタップとともに一緒に結合されて、前記ロジックエレメントの間の相互接続ワイヤリングをモデル化する、第２のレイヤの選択可能レジスタキャパシタ（ＲＣ）遅延エレメントと
を備え、
前記第１のレイヤは、前記第１のレイヤ直列チェーンの第１の遅延エレメントにおいて、始動信号を受け取り、選択された第１のレイヤタップから第１のレイヤ出力を発生させ、
前記第１のレイヤ出力は、前記第２のレイヤ直列チェーンの第１のＲＣ遅延エレメントに結合されており、選択された第２のレイヤ選択タップから第２のレイヤ出力を発生させる、請求項１２記載のＡＶＳ回路。
【請求項１４】
前記プログラム可能制御ロジックは、
プログラム制御の下で、コンフィギュレーションビットがロードされるコンフィギュレーションレジスタを備え、
前記コンフィギュレーションビットは、前記プログラム可能タイミングパスエミュレーション回路を構成して、前記少なくとも１つのクリティカルパスをエミュレートする、請求項１１記載のＡＶＳ回路。
【請求項１５】
前記測定回路は、
始動信号回路の出力値を受け取り、クロック信号によってクロックされる際に、第１のフリップフロップ出力に、前記受け取った出力値を転送する第１のフリップフロップと、
前記クリティカルパスエミュレーション回路の出力値を受け取り、前記クロック信号によってクロックされる際に、第２のフリップフロップ出力に、前記受け取った出力値を転送する第２のフリップフロップと、
前記第１のフリップフロップ出力と、前記第２のフリップフロップ出力とを受け取り、電圧を下げるべきか、同じままで保持すべきか、または、上げるべきかを示す調整信号を発生させる結合器と
を備える、請求項１１記載のＡＶＳ回路。
【請求項１６】
オン−チップ処理システム内での適応電圧スケーリングのための方法において、
プログラム可能パス遅延回路中で時間遅延をセットして、オン−チップで実行されることになるプログラムの命令に関係する、パイプランステージ中の１つ以上のオン−チップ回路を通して、命令に対する最も長いクリティカルパスを表すクリティカルパス遅延をエミュレートして、第１の遅延出力を測定回路に提供することと、
前記測定回路によって、前記第１の遅延出力と、第２の遅延出力と、第３の遅延出力と、遅延されたクロック信号とに少なくとも部分的に基づいて、選択されたワーストケースのクリティカルパスの時間マージンを決定して、前記時間マージンに基づいて、調整信号を発生させることと、
制御回路によって、前記調整信号に基づいて、オンチップ関数動作の間に、電圧をワーストケース最小電圧より高くまたはワーストケース最小電圧に等しくなるように調整することと
を含み、
異なるプログラムは、異なる最も長いクリティカルパスを有し、
前記第２の遅延出力は、前記第１の遅延出力に、前記測定回路中の第１の遅延エレメントによる遅延を加えたものであり、前記第３の遅延出力は、前記第２の遅延出力に、前記測定回路中の第２の遅延エレメントによる遅延を加えたものであり、
電圧源が、前記エミュレートされたクリティカルパスを持っている電力ドメインに対して電力を供給する方法。
【請求項１７】
前記オン−チップ処理システムの動作周波数の周期と比較して、前記エミュレートされたクリティカルパス遅延の時間マージンを決定すること
をさらに含む、請求項１６記載の方法。
【請求項１８】
調整信号を、調整要求状態にアサートして、前記時間遅延が、前記クリティカルパス遅延に加えて、過剰な時間マージンを含むことを示すことと、
前記アサートされた調整信号に基づいて、前記電圧を下げることと
をさらに含む、請求項１６記載の方法。
【請求項１９】
調整信号を、非調整状態にセットして、前記時間遅延が、前記クリティカルパス遅延に加えて、セーフ動作時間マージンを含むことを示すことをさらに含む、請求項１６記載の方法。
【請求項２０】
現在使用されている動作電圧より高い動作電圧を要求する命令が検出されるとき、プロセッサ機能停止要求を発生させることと、
前記動作電圧を、より高い動作電圧に調整することと、
前記より高い動作電圧に到達する際に、前記プロセッサ機能停止要求を解除することと
をさらに含む、請求項１６記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的に、集積回路と処理システムにおける電力制御の分野に関連し、より詳細には、命令利用に基づいた、適応電圧スケーリングのための方法と装置に関連する。
【背景技術】
【０００２】
セル電話機、ラップトップコンピュータ、パーソナルデータアシスタント（ＰＤＡ）、または類似物のような、数多くのポータブル製品は、通信およびマルチメディアプログラムのようなプログラムを実行するプロセッサを利用する。このような製品のための処理システムは、命令およびデータを処理するための手続き集合体を含む。このようなポータブル製品、他のパーソナルコンピュータ、および類似物の機能的な複雑さは、高性能プロセッサおよびメモリを要求する。同時に、ポータブル製品は、バッテリの形態での制限されたエネルギー源を有し、バッテリ寿命を延ばすために減少させた電力レベルで、高性能を提供することを要求されることが多い。多くのパーソナルコンピュータはまた、全体のエネルギー消費を減少させるために、低電力ドレインにおける高性能を提供するように開発されている。
【０００３】
手続き集合体内部で、信号パスおよびパイプラインステージは、所望のクロック周波数に対応するワーストケースのクリティカルタイミングパスを満たすように設計されている。メモリエレメント、ロジックゲート、フリップ−フロップ、エレメントを相互接続しているワイヤは、クリティカルパスタイミングにおける遅延をもたらし、クロック周波数に依拠してパイプラインステージにおける関数エレメントの数を制限している。結果として、多くのプロセッサは、異なる複雑さの命令を実行し、製品の機能的要求を満たすために要求されるギガヘルツ（ＧＨｚ）クロック周波数を達成するために、非常に多い数のパイプラインステージを使用する。電力は、周波数、スイッチングキャパシタンス、および供給電圧の２乗の関数であるので、電力を減少させることは、これらの３つの変数のうちの少なくとも１つを減少させることを要求する。ギガヘルツ周波数動作は、製品の機能によって要求されることが多いので、周波数を減少させることは、より要求の厳しくない機能に限られている。スイッチングキャパシタンスは、実現と、デバイスを製造するのに使用される技術プロセスとの関数であり、シリコン中で一度設計が具体化されると、この変数は変更できない。供給電圧を減少させることの１つの結果は、供給電圧が減少されるにしたがって、ロジックとメモリエレメントが低速化され、周波数要求を満たすことの困難性が増すことである。
【０００４】
手続き集合体において、ワーストケースのクリティカルタイミングパスを満たすために、手続き集合体内のすべての信号パスに対するワーストケースのクリティカルタイミングパスが分析され、これらの中で、最も長いパスが、手続き集合体で最も高い可能なクロック周波数を支配するクリティカルタイミングパスになる。このクロック周波数が満たされることを保証するために、供給電圧が、ワーストケース最小電圧より高く、または、ワーストケース最小電圧に等しく指定される。例えば、浮動小数点命令を実行するときに、浮動小数点乗数による信号パスは、手続き集合体中の最も長いクリティカルタイミングパスであってもよい。浮動小数点乗数によるワーストケースのタイミングパスが、所望のクロック周波数を満たすように、電力供給電圧を決定する。
【０００５】
何らかの時間において実行するために、プロセッサの命令セットから、何らかの命令を選択してもよいので、一般的に、手続き集合体は、ワーストケースのタイミングパスに対して準備して動作する。結果として、実行命令が、ワーストケースのタイミングパスより短いクリティカルタイミングパスを有しているときに、電力が浪費される。残念なことに、ギガヘルツプロセッサの命令毎の利用に一致させるために、供給電圧を容易に変更することはできない。可変電圧レギュレータは、供給電圧を調整するために、マイクロ秒、または、ミリ秒を必要とする。
【概要】
【０００６】
本開示は、手続き集合体中での電力要求を減少させることが、ポータブルアプリケーションにとって、また、一般的に、処理システム中での電力使用を減少させるために、重要であることを認識している。異なるソフトウェアアプリケーションが、手続き集合体のワーストケースのクリティカルタイミングパスより短いクリティカルタイミングパスを有する命令セットを使用してもよいこともまた、認識されている。さらに、アプリケーションの性能を満たすのに必要とされるクロック周波数を依然として維持しながら、供給電圧を下げてもよく、このことは、命令セット利用に基づいて、電力ドレインを減少させ、バッテリ寿命を延長させることも認識されている。
【０００７】
このような目的のために、本発明の実施形態は、適応電圧スケーリングのための方法に取り組む。複数のクリティカルパスのうちから、クリティカルパスを選択して、エミュレーションロジック上で分析し、オン−チップ関数動作の間に、選択されたクリティカルパスの属性を決定し、ここで、選択されたクリティカルパスは、プログラム実行の間に動作されることになるワーストケースクリティカルパスを表す。オン−チップ関数動作の間に、属性に応答して電圧が制御され、電圧源が、複数のクリティカルパスに関係する電力ドメインに対して電力を供給する。
【０００８】
別の実施形態は、タイミングパスエミュレーション回路と、プログラム可能制御ロジックと、測定回路とを有する適応電圧スケーリング（ＡＶＳ）回路に取り組む。タイミングパスエミュレーション回路は、クリティカルパスをエミュレートする。プログラム可能制御ロジックは、プログラム可能タイミングパスエミュレーション回路を構成して、オン−チップで動作されることになるプログラム中の命令利用に基づいて、少なくとも１つのクリティカルパスをエミュレートする。エミュレートされたクリティカルパスは、プログラム実行の間に動作されることになるワーストケースクリティカルパスを表す。オン−チップ関数動作の間に、測定回路は、エミュレートされたクリティカルパスの属性を測定し、測定された属性に応答して、電圧レギュレータの出力電圧を制御し、ここで、電圧レギュレータは、複数のクリティカルパスに関係する電力ドメインに対して電力を供給する。
【０００９】
さらなる実施形態は、適応電圧スケーリングのための方法に取り組む。プログラム可能パス遅延回路中で時間遅延をセットして、オン−チップで動作されることになるプログラムに関係する最も長いクリティカルパスを表すクリティカルパス遅延をエミュレートし、ここで、異なるプログラムは、異なる最も長いクリティカルパスを有する。エミュレートされたクリティカルパス遅延の測定に基づいて、オンチップ関数動作の間に、電圧が調整され、エミュレートされたクリティカルパスに関係する電力ドメインに対して、電圧源が電力を供給する。
【００１０】
以下の詳細な説明から、本発明の他の実施形態が、当業者にとって容易に明らかになるだろう。ここで、本発明のさまざまな実施形態を、図解として示し、説明する。理解されることになるように、本発明は、他の、異なる実施形態でも実行可能であり、さまざまな他の観点において、本発明から逸脱することなく、本発明のいくつかの詳細を修正することができる。したがって、図面と詳細な説明は、説明的な性質のものであり、制限的なものではないとして見なされるべきである。
【図面の簡単な説明】
【００１１】
【図１】図１は、ワイヤレス通信システムを図示する。
【図２】図２は、命令利用に基づいて、適応的に電力を節約するための処理システム組織を示す。
【図３】図３は、適応電圧スケーリング（ＡＶＳ）回路の例示的な第１の実施形態である。
【図４】図４は、適応電圧スケーリング（ＡＶＳ）回路の例示的な第２の実施形態である。
【図５】図５は、例示的なプログラム選択可能パス遅延回路を図示する。
【図６Ａ】図６Ａは、図４の第２の実施形態の適応電圧スケーリング回路に含まれる、適応電圧スケーリング結合器の動作のためのタイミング図を図示する。
【図６Ｂ】図６Ｂは、図４の第２の実施形態の適応電圧スケーリング回路に含まれる、適応電圧スケーリング結合器の動作のためのタイミング図を図示する。
【図７】図７は、命令クリティカルパス遅延に関係する時間マージンを決定することによって、命令利用に基づいて、電圧レギュレータを調整するプロセスを示す。
【図８】図８は、適応電圧スケーリング（ＡＶＳ）回路の例示的な第３の実施形態である。
【詳細な説明】
【００１２】
添付の図面に関連して以下で述べる詳細な説明は、本発明のさまざまな例示的な実施形態を説明することを意図しており、本発明が実行されてもよい唯一の実施形態を表すことを意図していない。詳細な説明は、本発明の完全な理解をもたらす目的のために特定の詳細を含む。しかしながら、本発明は、これらの詳細な説明なしで実行されてもよいことを当業者には明らかになるだろう。いくつかの例では、本発明の概念を曖昧にするのを避けるために、よく知られた構造やコンポーネントを、ブロック図の形態で示した。
【００１３】
図１は、その中で、本発明の実施形態が好ましくは用いられてもよい、例示的なワイヤレス通信システム１００を図示する。説明の目的で、図１は、３つのリモートユニット１２０、１３０、および１５０と、２つの基地局１４０とを示した。通常のワイヤレス通信システムは、より多くの数のリモートユニットと基地局とを有していてもよいことが理解されるだろう。リモートユニット１２０、１３０、および１５０は、それぞれ、コンポーネント１２５Ａ、１２５Ｃ、および１２５Ｂによって表現されるような、ハードウェアコンポーネント、ソフトウェアコンポーネント、または、これらの両方を含んでもよく、これらを適応させて、以下に説明するような発明を実現させる。図１は、基地局１４０からリモートユニット１２０、１３０、および１５０に対するフォワードリンク信号１８０と、リモートユニット１２０、１３０、および１５０から基地局１４０に対するリバースリンク信号１９０とを示す。
【００１４】
図１において、リモートユニット１２０を移動体電話機として示し、リモートユニット１３０をポータブルコンピュータとして示し、およびリモートユニット１５０をワイヤレスローカルループシステム中の据置ロケーションリモートユニットとして示した。例として、これらのリモートユニットは、代わりに、セルラ電話機、ページャー、ウォーキートーキー、手持ちパーソナル通信システム（ＰＣＳ）ユニット、パーソナルデータアシスタントのようなポータブルデータユニット、または、メーター読取装置のような据置ロケーションデータユニットであってもよい。図１は、本開示の教示にしたがって、リモートユニットを図示しているが、本開示は、これらの例示的に図示したユニットに制限されていない。本発明の実施形態は、プロセッサと、それを支援する周辺デバイスに対して、電力を供給するために使用されてもよいような、調整可能電圧レギュレータを有している任意のデバイス中で、適切に用いられてもよい。
【００１５】
図２は、命令利用に基づいて、適応的に電力を節約するための処理システム組織２００を示す。システム２００は、チップ２０２と、バッテリまたはバルク供給電圧のようなシステム電源２０４と、可変電圧レギュレータ２０８とを具備する。チップ２０２は、例えば、第１の電力ドメイン２０６と、第２の電力ドメイン２０７とを備える。それぞれの電力ドメインは、システム２００の電力および性能の要求を満たすために、個別の電力制御のために適切にグループ化されたロジックのサブセットを含む。それぞれの電力ドメインは、個別の電圧レギュレータから供給電圧をさらに受信する。例えば、第１の電力ドメイン２０６は、手続き集合体を含んでいてもよく、手続き集合体は、プロセッサ実行パイプライン２１０と、好ましくはＬ１命令キャッシュおよびＬ１データキャッシュを含んでもよいレベル１キャッシュ（Ｌ１キャッシュ）２１２と、ダイレクトメモリアクセス（ＤＭＡ）制御装置２１４と、１つ以上のハードウェア支援２１６と、制御ロジック２１８と、クロック発生ユニット２２０と、適応電圧スケーリング（ＡＶＳ）回路２２２とを備えていてもよい。ＡＶＳ回路２２２は、可変電圧レギュレータ２０８に対して、調整信号２２４を提供するように設計されており、調整信号２２４は、プロセッサ実行パイプライン２１０の命令利用に基づいて、電圧Ｖｄｄ２２６を上げることまたは下げることを要求する。
【００１６】
命令利用は、それらのクリティカルタイミングパスによって、命令をグループ化することによって、カテゴリ化される。例えば、第１のカテゴリの命令は、プロセッサの動作周波数をセットするのに使用される手続き集合体のクリティカルタイミングパスとともに動作してもよい。このようなクリティカルタイミングパスは、一般的に、受入可能な最小動作電圧と、最高予想温度と、ワーストケースの処理特性とを有する手続き集合体のワーストケースの動作条件に関係する。同じワーストケースの動作条件において、第２のカテゴリの命令は、第１のカテゴリの命令のクリティカルタイミングパスより短いクリティカルタイミングパスで動作してもよい。第３のカテゴリの命令は、第２のカテゴリの命令のクリティカルタイミングパスより短い、関係するクリティカルタイミングパスで動作するとして識別されてもよい、等。これによって、複数の個別のカテゴリの命令は、それらのクリティカルタイミングパスにしたがって、識別されてもよい。プログラムの静的分析によって、または、命令利用の動作条件とカテゴリを監視することによって、アクティブな、または、間もなくアクティブになるカテゴリの命令を考えて、電力ドメイン２０６における手続き集合体の供給電圧を調整して、命令のクリティカルタイミングパスが特定の最小クロック周波数を満たすことを確実にしてもよい。例えば、現在の動作条件において、実行中の命令、または、実行されることになる命令が、タイミングマージンを有することを命令利用が示すとき、好ましくは、対応する命令利用に対して適切な電圧レベルにまで、電圧を下げてもよく、これによって、移動体デバイスにおいて、電力が節約され、バッテリ寿命が延長される。
【００１７】
例として、処理システム組織２００において、プロセッサは、整数（Ｉｎｔ）ユニット２２８と、浮動小数点（Ｆｐ）ユニット２３０とを含んでいてもよい。静的タイミング分析によって、浮動小数点命令に対するクリティカルタイミングパスは、例えば、第１の電力ドメイン２０６中のロジックに対するワーストケースのタイミングパスを有している、カテゴリ１の命令としてカテゴリ化されてもよい。さらなる静的タイミング分析によって、整数命令に対するクリティカルタイミングパスは、カテゴリ１の命令よりも短いワーストキャストのタイミングパスを有している、カテゴリ２の命令としてカテゴリ化されてもよい。例えば、従前の浮動小数点命令の実行に基づいて、高レベルにセットされた電圧Ｖｄｄ２２６と、命令利用がカテゴリ２に変更されたという表示とともに、ＡＶＳ回路２２２は、電圧２２６をより低く調整すべきであることを要求する。調整ステップサイズに依拠して、電圧レベルがカテゴリ２の命令に対して適切なものに到達するまで、電圧Ｖｄｄ２２６を、何回も、より低く調整してもよい。
【００１８】
例えば、６５ナノメートル（ｎｍ）技術を使用して、処理システム組織２００を実現してもよく、このような技術において、２−入力ＮＡＮＤゲートは、ワーストケースの動作条件において、４つのロードからの平均ファンアウトを駆動する、７０ピコ秒（ｐｓ）のワーストケース遅延を持っていてもよい。このような遅延は、電圧が下がるごとに、増加するかもしれない。浮動小数点実行ステージに対するクリティカルタイミングパスは、それら自身の遅延、セットアップ、およびホールド要求を持っている、２つのストレージエレメントの間の比較的長いワイヤによって相互接続される１０個の類似したタイプのゲートを持っていてもよく、ワーストケースの動作条件におけるギガヘルツクロック周波数に対して要求される１ナノ秒パイプラインステージ遅延をちょうど満たしてもよい。
【００１９】
比較すると、整数実行ステージに対するクリティカルタイミングパスは、２つのストレージエレメントの間の比較的長いワイヤによって相互接続される５個の類似したタイプのゲートだけを持っていてもよく、ワーストケースの動作条件におけるギガヘルツクロック周波数の１０００ピコ秒より十分に低い、７００ピコ秒のクリティカルタイミングパスを持っていてもよい。結果として、整数タイプ命令を実行するとき、電圧Ｖｄｄ２２６は、適切なように下げられてもよく、最大１０００ピコ秒ステージ遅延まで、整数命令に対するクリティカルタイミングパスを増加させても、依然として、ギガヘルツクロック周波数を満たすが、減少された電力ドレインを有する。ＡＶＳ回路２２２の動作は、プロセッサ実行パイプライン中のステージの数や、または、プロセッサクロック速度に依拠していない。一般的に、動作中であるとして予測されるクリティカルタイミングパスに対応して、所望の周波数に適したように、ＡＶＳシステムをプログラミングすることによって、電圧を上げることができ、または、下げることができる。
【００２０】
可変電圧レギュレータ２０８のような、可変電圧レギュレータは、調整信号２２４のような入力信号によって指定されるような、２５ミリボルト（ｍｖ）のようなさまざまな電圧ステップサイズで動作する。例えば、１０ミリ秒ごとに、または、より長い時間ごとに、それぞれ２５ミリボルトの調整が発生してもよい。選ばれた適応電圧スケーリングに対する方法にしたがって、ハードウェアまたはソフトウェア中で、このような調整時間を考えに入れてもよい。
【００２１】
図３は、適応電圧スケーリング（ＡＶＳ）回路３００の例示的な第１の実施形態である。ＡＶＳ回路３００は、クリティカルパス選択ロジック３０２、プログラム可能命令利用制御回路３０４、および測定ロジック３０６を具備する。クリティカルパス選択ロジック３０２は、例えば、マルチプレクサ３２０に対して、遅延された出力３１４−３１７を提供する、４つのクリティカルパスＡ−Ｄ３０８−３１１を含む。クリティカルパスＡ３０８は、例えば、第１の電力ドメイン２０６におけるワーストケースのタイミングパスであり、また、例えば、浮動小数点命令の実行に関係する。クリティカルパスＢ３０９は、クリティカルパスＡ３０８より短い信号パス遅延を持ち、例えば、整数命令に関係している。クリティカルパスＣ３１０は、クリティカルパスＢ３０９より短い信号パス遅延を持ち、クリティカルパスＤ３１１は、クリティカルパスＣ３１０より短い信号パス遅延を持つ。
【００２２】
マルチプレクサ３２０は、マルチプレクサ３２６からの情報に基づいて、選択ロジック３２４によって発生された選択信号３２２に基づいて、クリティカルパスのうちの１つを選択する。プログラム可能命令利用制御回路３０４は、コンフィギュレーションレジスタ３２８、命令デコーダ３３０、１つ以上のカウンタ３３４を有する制御装置３３２を備える。命令デコーダ３３０は、図２のプロセッサ実行パイプライン２１０によって提供されたもののような、命令ストリーム３３６から受信した命令をデコードする。デコード情報は、制御装置３３２に送られ、ここで、ロードパス３３８を介してコンフィギュレーションレジスタ３２８にロードするのに使用されてもよく、コンパイラ有向フラグのような静的フラグ３４０をセットするのに使用されてもよい。制御装置３３２はまた、デコード情報を使用して、例えば、カウンタ３３４を使用することによって、特定のタイプの命令がデコードされる回数、または、特定のタイプの命令がデコードされる間の時間をカウントし、命令利用を動的に決定することに関係する動的フラグ３４２を決定してもよい。マルチプレクサ３２６は、コンフィギュレーションレジスタ３２８中にロードされた選択ビットに基づいて、静的フラグ３４０または動的フラグ３４２のいずれかを選択する。測定ロジック３０６は、選択されたパスを測定し、図２の可変電圧レギュレータ２０８によって使用される調整信号３４４を生成する。
【００２３】
より詳細には、クリティカルパス３０８−３１１のそれぞれは、それらの関係する信号パス中のコンポーネントを使用するエミュレートされたクリティカルパスであってもよく、これは、それらがエミュレートしているクリティカルパス中で使用される実際のコンポーネントに類似している。さらに、エミュレートされたクリティカルパスのそれぞれは、それらの関係する実際のクリティカルパスに近く隣接して配置されており、エミュレートされたコンポーネントによって経験される実現プロセスと温度状況を、実際のクリティカルパスエレメントが直面する状況に類似したものにしている。選択された実際のクリティカルパスと、それらの関係するエミュレートされたクリティカルパスとは、チップ全体にわたって分散していてもよく、マルチプレクサ３２０と測定ロジック３０６とはまた、チップ全体にわたって適切に分散していてもよく、ここで、依然として単一の調整信号３４４に対して集束している。
【００２４】
静的フラグ３４０は、コンパイラによってセットされてもよく、コンパイラは、それらのタイミングパスによって分類された命令のカテゴリにしたがって、プログラム中の静的命令利用を監視することによって、適応電圧スケーリング（ＡＶＳ）回路に対処する。例えば、ビデオ処理プログラムをコンパイルしているときに、例えば、浮動小数点命令のようなカテゴリ１の命令の非常に制限された利用があることが決定されてもよい。浮動小数点命令の制限された利用に基づいて、コンパイラは、浮動小数点命令をエミュレートすることを選択してもよく、これによって、コンパイルされたビデオ処理プログラムからカテゴリ１の命令を取り除く。このような分析に基づいて、コンパイラは、静的フラグ３４０をセットして、例えば、クリティカルパスＢ３０９の選択を示してもよい。クリティカルパスＢ３０９の測定に基づいて、調整信号３４４は、図２の電圧Ｖｄｄ２２６が下げられることを示してもよい。
【００２５】
マルチプレクサ３２６に動的フラグ３４２を選択させるコンフィギュレーションレジスタセッティングとともに、クリティカルパスＡ−Ｄ ３０８−３１１のうちの１つの選択が、ハードウェア利用情報によって決定される。例えば、命令デコーダ３３０からのデコードされた情報に基づいた、命令ストリーム３３６を監視することによって、制御装置３３２は、一般的にビデオ処理に関係する特定の命令タイプが頻繁に発生しており、最近の何万回の命令の間に、何の浮動小数点命令も発生していないことを決定してもよい。この決定に基づいて、制御装置３３２は、クリティカルパスＢ３０９の選択に適した動的フラグをセットしてもよい。このような選択の後、カテゴリ１の命令が発生した場合、機能停止状況が強制され、調整信号３４４をセットして、カテゴリ１の命令を受け入れることができるように、電圧を上げるべきであることを示す。
【００２６】
図４は、ＡＶＳ回路２２２として適切に用いられてもよい、適応電圧スケーリング（ＡＶＳ）回路４００の例示的な第２の実施形態を示す。ＡＶＳ回路４００は、クリティカルパスモデリング回路４０２と、測定ロジック４０６と、プログラム可能コンフィギュレーションレジスタ４０４とを具備する。クリティカルパスモデリング回路４０２は、フリップ−フロップ４０８と、ＮＡＮＤゲート４１０と、プログラム選択可能パス遅延回路４１２と、クロック基準遅延ユニット４１４とを備える。測定ロジック４０６は、測定フリップ−フロップ（Ｍフリップ−フロップ）４１６−４１９と、第１の遅延エレメントＤ１  ４２０と、第２の遅延エレメントＤ２  ４２２と、ＡＶＳ結合器４２４とを備える。
【００２７】
フリップ−フロップ４０８と、ＮＡＮＤゲート４１０とは、トグルフリップ−フロップ配置を含み、これは、ホールド信号４２８によって保持されず、クロック信号４３０によってクロックされているときに、クロック信号４３０の立ち上りエッジで、Ｑ出力４３２を切り換える。“１”レベルにおけるホールド信号４２８は、測定プロセスをイネーブルする。Ｑ出力４３２は、Ｍフリップ−フロップ４１６のデータ入力に対して、および、プログラム選択可能パス遅延回路４１２に対して結合されている。プログラム選択可能パス遅延回路４１２は、プログラム可能コンフィギュレーションレジスタ４０４からの選択入力４３４に基づいて、クリティカルパス遅延をエミュレートするように構成されている。例えば、プログラム可能遅延期間の後に、Ｑ出力４３２が“１”レベルに上昇するとき、プログラム選択可能パス遅延回路４１２からの第１の遅延出力４３６は、フリップ−フロップ４１７のデータ入力において、および、第１の遅延エレメントＤ１  ４２０に対する入力において受け取られる。第１の遅延エレメントＤ１  ４２０の第２の遅延出力４３８は、フリップ−フロップ４１８のデータ入力に対して、および、第２の遅延エレメントＤ２  ４２２の入力に対して結合されている。第２の遅延エレメントＤ２  ４２２の第３の遅延出力４４０は、フリップ−フロップ４１９に対するデータ入力に対して結合されている。
【００２８】
クロック信号４３０は、それが、“遅延なし”に対してプログラムされているとき、クロック基準遅延ユニット４１４によって遅延されて、プログラム選択可能パス遅延回路４１２の遅延に一致させる。すなわち、プログラム選択可能パス遅延回路４１２のそれぞれ、および、すべてのセクションにおいて、０ステージの遅延しかプログラムされていない場合でさえも、図５のプログラム選択可能パス遅延回路５００に関して、以下でより詳細に説明するように、マルチプレクサを通過するだけで、何らかの遅延があることになるかもしれない。クロック基準遅延ユニット４１４はまた、フリップ−フロップ４０８の起動遅延も含む。次に、遅延されたクロック信号４４２と、第１の遅延出力４３６との間の到着時間デルタは、プログラム選択可能パス遅延回路４１２中のプログラムされた遅延エレメントの遅延、プラス、ラッチの起動遅延を表す。遅延されたクロック信号４４２を使用して、それらのデータ入力値を、対応するＱ出力４４４−４４７に対して転送しているＭフリップ−フロップ４１６−４１９のそれぞれをクロックする。Ｑ出力４４４−４４７は、ＡＶＳ結合器４２４に結合され、ＡＶＳ結合器４２４は、優先度エンコードされたロジックを含み、クリティカルパスが満たされているか否かを決定する。Ｑ出力４３２の立ち上がりエッジからＱ出力４４４−４４７までを測定することによって、クリティカルパスは、１クロック周期おきに測定されている。
【００２９】
例えば、図３のクリティカルパスＢ３０９は、クリティカルパスＢ３０９に関係する適切なコンフィギュレーション入力値をロードすることによって、プログラム選択可能パス遅延回路４１２によってエミュレートされる。この例に関して、図２の、遅延エミュレーションの開始における電圧Ｖｄｄ２２６は、その最高レベルにある。遅延エミュレーションの最後において、Ｑ出力４４４−４４７が“１”レベルにおけるものである場合、次に、Ｑ出力４３２の立ち上がりエッジからＱ出力４４４−４４７の立ち上がりエッジまで測定されるようなクリティカルパスＢ３０９が、Ｄ１  ４２０、プラス、Ｄ２  ４２２のタイミングマージンを有するクロック周波数周期を満たす。この状況において、電圧Ｖｄｄ２２６は、あまりに高すぎるとして考えられ、調整信号４４８が、電圧Ｖｄｄ２２６を下げるべきであることを示すだろう。このように電圧Ｖｄｄ２２６を下げることが発生している一方で、チップ上の他の動作が通常通り継続してもよい。可変電圧レギュレータが新たなより低い電圧レベルに到達するのに必要とされる時間期間の後、モデル化されたクリティカルパスＢ３０９のタイミングは、やり直されてもよい。遅延エミュレーションの最後において、Ｑ出力４４４−４４７が、依然として“１”レベルである場合、電圧は再び下げられるだろう。Ｑ出力４４４−４４６が“１”レベルであり、そして、フリップ−フロップ４１９のＱ出力４４７が、“０”レベルである場合、次に、クリティカルパスＢ３０９は、そのタイミングを、Ｄ１  ４２０のタイミングマージンで行う。この時点において、適切なタイミングマージンが存在するとして考えられてもよく、電圧Ｖｄｄ２２６に対する、何のさらなる調整も行われない。代わりに、プログラム選択可能パス遅延回路４１２が、その遅延セッティング内で、追加のタイミングマージンを含んでいる場合、Ｄ１のタイミングマージンは、依然として過剰であるかもしれず、電圧Ｖｄｄ２２６は、より低い電圧へと調整されてもよい。
【００３０】
Ｄ１  ４２０、プラス、Ｄ２  ４２２の時間マージンでは、Ｄ１のマージンだけが検出されるときに使用されるステップサイズに比較して、より大きいステップサイズで供給電圧を調整してもよい。立ち下がりエッジ信号タイミングに対する立ち下がりエッジもまた、ＡＶＳ回路４００で測定してもよい。Ｍフリップ−フロップ４１６が、遅延エミュレーションが実行されたことの表示として提供され、他の何のＭフリップ−フロップ４１７−４１９も、セットされていない場合、何のタイミングマージンも存在せず、または、エラー状況が発生している。強制調整信号４５０の使用によって、カテゴリ１の命令の使用を要求している割込ルーチンを処理しているときのような、エミュレートされたクリティカルタイミングパスの測定以外の発生しているイベントに基づいて、調整を強制的に発生させてもよいことに留意すべきである。
【００３１】
図５は、プログラム選択可能パス遅延回路４１２として適切に用いられてもよい、例示的なプログラム選択可能パス遅延回路５００である。クリティカルタイミングパスは、静的ロジック回路５０２、動的ロジック回路５０４、メタルレベル２と３（Ｍ２／Ｍ３）回路５０６、メタルレベル４と５（Ｍ４／Ｍ５）回路５０８のような、異なるシリコンレイヤ上の相互接続ワイヤリング遅延のモデルによるパスとして、エミュレートされてもよい。図４を参照すると、プログラム選択可能パス遅延回路４１２は、静的ロジック回路５０２と、動的ロジック回路５０４と、メタルレベルＭ２／Ｍ３回路５０６と、メタルレベルＭ４／Ｍ５回路５０８とを含む。
【００３２】
回路の静的ロジックをエミュレートするために、例えば、２０ピコ秒のような最小の遅延を有する静的ロジックバッファ５１０は、３２バッファの直列チェーン５１２中で再現され、これは、それぞれのバッファ位置においてタップオフされ、３２から１のマルチプレクサ５１４に結合されている。図４のプログラム可能コンフィギュレーションレジスタ４０４は、選択コンフィギュレーションＡ（ｃｏｎｆｉｇＡ）信号５１６を、３２から１のマルチプレクサ５１４に対して結合して、出力５１８上の２０ピコ秒遅延間隔において、２０ピコ秒から、最大６４０ピコ秒までの遅延をプログラム可能に選択する。
【００３３】
回路の動的ロジックをエミュレートするために、例えば、１５ピコ秒の最小遅延を有する動的ロジックバッファ５２０は、８つの動的ロジックバッファ５２２の直列チェーン５１２中で再現され、これは、それぞれの動的バッファ位置においてタップオフされ、８から１のマルチプレクサ５２４に結合されている。プログラム可能コンフィギュレーションレジスタ４０４は、選択コンフィギュレーションＢ（ｃｏｎｆｉｇＢ）信号５２６を、８から１のマルチプレクサ５２４に対して結合して、出力５２８上の１５ピコ秒遅延間隔において、１５ピコ秒から、最大１２０ピコ秒までの遅延をプログラム可能に選択する。
【００３４】
メタルレイヤＭ２／Ｍ３の回路のワイヤ遅延回路をエミュレートするために、ワイヤリングレベルＭ２およびＭ３に対する最小の予測されるワイヤ遅延に一致させるために選ばれた、例えば、８ピコ秒の時間定数遅延を有する、バッファレジスタキャパシタ（ＲＣ）回路５３０が使用される。ＲＣ回路５３０は、例えば、４つのＲＣ回路５３２の直列チェーン中で再現され、これは、それぞれのＲＣ回路位置においてタップオフされ、４から１のマルチプレクサ５３４に結合されている。プログラム可能コンフィギュレーションレジスタ４０４は、選択コンフィギュレーションＣ（ｃｏｎｆｉｇＣ）信号５３６を、４から１のマルチプレクサ５３４に対して結合して、出力５３８上の８ピコ秒間隔において、８ピコ秒から、最大３２ピコ秒までの遅延をプログラム可能に選択する。
【００３５】
メタルレイヤＭ４／Ｍ５の回路のワイヤ遅延回路をエミュレートするために、ワイヤリングレベルＭ４およびＭ５に対する最小の予測されるワイヤ遅延を一致させるのに選ばれた、例えば、９ピコ秒の時間定数遅延を有する、バッファレジスタキャパシタ（ＲＣ）回路５４０が使用される。ＲＣ回路５４０は、例えば、８つのＲＣ回路５４２の直列チェーン中で再現され、これは、それぞれのＲＣ回路位置においてタップオフされ、８から１のマルチプレクサ５４４に結合されている。プログラム可能コンフィギュレーションレジスタ４０４は、選択コンフィギュレーションＤ（ｃｏｎｆｉｇＤ）信号５４６を、８から１のマルチプレクサ５４４に対して結合して、出力５４８上の９ピコ秒間隔において、９ピコ秒から、最大７２ピコ秒までの遅延をプログラム可能に選択する。
【００３６】
プログラム選択可能パス遅延回路４１２は、実現の技術と、エミュレートされるクリティカルタイミングパスに依拠して、より多くの、または、より少ないエミュレートされた関数とともに実現されてもよい。例えば、動的ロジックを使用しない実現と技術では、動的ロジック回路５０４は要求されないだろう。さらなる例において、他のワイヤリングレベルとは異なる遅延モデルを有し、Ｍ６とＭ７レイヤを通る信号に対するタイミング遅延をモデル化するメタルレイヤＭ６／Ｍ７回路を開発することを要求する実現において、２つ以上のワイヤリングメタルレイヤＭ６とＭ７が、使用されてもよい。
【００３７】
図６Ａと６Ｂは、図４の第２の実施形態の適応電圧スケーリング回路に含まれる、適応電圧スケーリング結合器４２４の動作のためのタイミング図６００と６２５を、それぞれ図示する。図６Ａと６Ｂのタイミングイベントと、図４のエレメントとの間の例示的な関係は、図６Ａと６Ｂのタイミングイベントを実行するのに適切に用いられてもよい、ＡＶＳ回路４００からの例示的なエレメントを参照することにより示される。信号遷移が、実現技術において使用されるデバイスのロジックしきい値を横断するとき、タイミングイベントが発生したとして考えられる。
【００３８】
ここで説明する回路は、接地レベルの３０％上、または、供給電圧レベルの３０％における入力信号に応答することが仮定される。例えば、１．０ボルトの供給電圧に対して、“０”値は、０．３ボルトより低いか、または、０．３ボルトに等しい何らかの値であるとして考えられ、また、“１”値は、０．７ボルトより高いか、または、０．７ボルトに等しい何らかの値であるとして考えられるだろう。技術に依拠して、異なる供給電圧を使用してもよく、３０％とは異なる応答許容範囲もまた使用してもよい。タイミング図６００に対して、１ボルトの供給電圧が仮定される。クロック４３０の立ち上りエッジと立ち下がりエッジ４３０、遅延されたクロック４４２、および、他の信号は、電圧、処理技術、および、信号ローディングのような他の要因で、異なっていてもよいことに留意すべきである。この変動は、アナログ回路シミュレーション技術の使用のような、適切な信号分析技術によって、対処されてもよい。
【００３９】
図６Ａ中のタイミングイベント６０２において、クロック４３０の立ち上りエッジは、フリップフロップ４０８のＱ出力４３２が高いレベルに遷移することを引き起こす。タイミングイベント６０４において、クロック４３０の立ち上りエッジは、フリップフロップ４０８のＱ出力４３２が低いレベルに遷移することを引き起こす。Ｑ出力４３２は、プログラム選択可能パス遅延回路４１２を通って流れ、遅延６０８を有する第１の遅延出力４３６を発生させる。第２の遅延出力４３８は、遅延Ｄ１  ６１２に後続し、第３の遅延出力４４０は、遅延Ｄ２  ６１４に後続する。Ｍフリップ−フロップ４１６−４１９は、タイミングイベント６１６において、遅延されたクロック４４２によってクロックされる。この例において、Ｑ出力４４４−４４７は、タイミングイベント６１６において、すべて“１”レベルにおけるものであり、図２の電圧Ｖｄｄ２２６が下げられてもよいことを示す。一度電圧が所望の電圧に下げられると、より低い電圧のために、すべての遅延が増加することになるので、遅延パスは再測定される。アサートされるＭフリップ−フロップ４１６−４１９の数に依拠して、電圧Ｖｄｄに対するさらなる調整が行われてもよい。回路分析技術を使用して、例えば、特定の実現に対するベストケースから、ワーストケースまでのシナリオ内での正しい動作を確実にすることが理解される。
【００４０】
図６Ｂにおいて、電圧Ｖｄｄ２２６は下げられており、エミュレートされたクリティカルタイミングパスの遅延は増加している。Ｑ出力４３２は、プログラム選択可能パス遅延回路４１２を通って流れ、ここでは、遅延６３０を有する第１の遅延出力４３６を発生させる。第２の遅延出力４３８は、遅延Ｄ１  ６３２に後続し、第３の遅延出力４４０は、遅延Ｄ２  ６３４に後続する。Ｍフリップ−フロップ４１６−４１９は、タイミングイベント６３６において、遅延されたクロック４４２によってクロックされる。この例において、タイミングイベント６３６において、３つのＱ出力４４４−４４６が“１”レベルであり、そして、Ｑ出力４４７が、“０”レベルであり、依然として適切なタイミングマージンがあり、電圧Ｖｄｄ２２６の下方向への何のさらなる調整も実行すべきでないことを示している。
【００４１】
図７は、命令クリティカルパス遅延に関係する時間マージンを決定することによって、命令利用に基づいて、電圧レギュレータを調整するプロセス７００を示す。プロセス７００は、選択されたクリティカルパスのために、プログラム可能コンフィギュレーションレジスタにロードすることで、ブロック７０２において開始する。選択されたクリティカルパスは、コンパイルされたプログラム中の命令利用から決定される。ブロック７０４において、選択されたクリティカルタイミングパスの時間遅延が測定される。このような測定は、例えば、Ｍフリップ−フロップ４１６−４１９のステータスをチェックすることによって行われる。Ｍフリップ−フロップ４１６−４１９のチェックは、ＡＶＳ回路３００と４００がクロック周期毎に動作するので、何らかの時間において行われてもよい一方で、他のオンチップ関数動作は、ＡＶＳが特にディセーブルされていない限り、処理されていてもよい。ブロック７０６において、すべての測定フリップ−フロップ（Ｍフリップ−フロップ）がセットされているか否かの決定が行われる。すべてのＭフリップ−フロップがセットされている場合、プロセス７００は、ブロック７０８に進む。ブロック７０８において、時間マージンが要求されるよりも長いために、電圧があまりにも高いと考えられるので、電圧を下げるために、電圧レギュレータに調整信号が送られる。ブロック７０８は、図６Ａのタイミングイベントに相当する。電圧が調整された後で、プロセス７００は、ブロック７０４に戻り、測定を繰り返す。
【００４２】
ブロック７０６に戻って、すべてのＭフリップ−フロップがセットされていない場合、プロセス７００は、ブロック７１０に進む。ブロック７１０において、４個のうち３個のＭフリップ−フロップがセットされているかの決定が行われる。４個のうち３個のＭフリップ−フロップがセットされている場合、プロセス７００は、ブロック７１２に進む。ブロック７１２において、電圧は受入可能であるとして考えられ、何の電圧調整も行われない。ブロック７１２は、図６Ｂのタイミングイベント６３６に相当する。プロセス７００は、ブロック７０４に戻り、測定を繰り返す。
【００４３】
ブロック７１０に戻って、４個のうち３個のＭフリップ−フロップがセットされていない場合、プロセスは、ブロック７１４に進む。ブロック７１４において、１または２個のＭフリップ−フロップがセットされているか否かの決定が行われる。１または２個のＭフリップ−フロップがセットされている場合、プロセスは、ブロック７１６に進む。ブロック７１６において、時間マージンが要求されるより短いために、電圧が低すぎると考えられるので、電圧を上げるために、電圧レギュレータに調整信号が送られる。電圧が調整された後で、プロセス７００は、ブロック７０４に戻り、測定を繰り返す。ブロック７１４に戻って、１または２個のＭフリップ−フロップがセットされていない場合、プロセス７００は、ブロック７１８に進み、ここでは、エラー状況が示される。
【００４４】
図８は、適応電圧スケーリング（ＡＶＳ）回路８００の例示的な第３の実施形態を示す。ＡＶＳ回路８００は、クリティカルパスモデリング回路４０２と、プログラム可能コンフィギュレーションレジスタ４０４と、測定ロジック回路８０６とを具備する。クリティカルパスモデリング回路４０２は、フリップ−フロップ４０８と、ＮＡＮＤゲート４１０と、プログラム選択可能パス遅延回路４１２と、クロック基準遅延ユニット４１４とを備える。測定ロジック８０６は、測定フリップ−フロップ（Ｍフリップ−フロップ）４１６と４１７と、ＡＶＳ結合器８２４とを備える。
【００４５】
フリップ−フロップ４０８と、ＮＡＮＤゲート４１０とは、トグルフリップ−フロップ配置を含み、これは、ホールド信号４２８によって保持されておらず、また、クロック信号４３０によってクロックされているときに、クロック信号４３０のそれぞれの立ち上りエッジで、Ｑ出力４３２を切り換える。“１”レベルにおけるホールド信号４２８は、測定プロセスをイネーブルする。Ｑ出力４３２は、Ｍフリップ−フロップ４１６のデータ入力に対して、および、プログラム選択可能パス遅延回路４１２に対して結合される。プログラム選択可能パス遅延回路４１２は、プログラム可能コンフィギュレーションレジスタ４０４からの選択入力４３４に基づいて、クリティカルパス遅延、プラス、追加的なプログラムされた遅延Ｄ１とＤ２をエミュレートするように構成されている。例えば、指定されたプログラム可能遅延期間の後に、Ｑ出力４３２が“１”レベルに上昇するとき、プログラム選択可能パス遅延回路４１２からの第１の遅延出力４３６は、フリップ−フロップ４１７のデータ入力において受け取られる。クロック基準遅延ユニット４１４によって遅延されるクロック信号４３０は、図２のクロックツリー２３４のような、クロックツリーで発生するもののような、クロック分散の遅延に対処する。遅延されたクロック信号４４２を使用して、Ｍフリップ−フロップ４１６と４１７のそれぞれをクロックし、対応するＱ出力４４４と４４５に対して、それらのデータ入力値を転送する。Ｑ出力４４４と４４５は、ＡＶＳ結合器８２４に結合され、ＡＶＳ結合器８２４は、優先度エンコードされたロジックを含み、クリティカルパスが満たされるが否かを決定する。
【００４６】
例えば、図３のクリティカルパスＢ３０９、プラス、追加的なプログラムされた遅延値Ｄ１、プラス、Ｄ２は、適切なコンフィギュレーション入力値をロードすることによって、プログラム選択可能パス遅延回路４１２によってエミュレートされる。プログラムされた遅延値Ｄ１とＤ２は、クリティカルパスに依拠して、あるいは、チップの動作条件中で発生するプロセスまたは温度の変動に依拠して、変化してもよい。プログラムされた遅延Ｄ１、プラス、Ｄ２によって、延長されたクリティカルパスとともに、２つのフリップ−フロップ、Ｍフリップ−フロップ４１６とＭフリップ−フロップ４１７とを使用して、時間遅延マージンが、電圧を下げ、同じまま保持し、または、上げることができるようなものであるか否かを決定する。
【００４７】
この例に関して、図２の電圧Ｖｄｄ２２６は、その最も高いレベルにある。エミュレーション遅延の最後において、Ｑ出力４４４と４４５が“１”レベルにおけるものである場合、次に、Ｑ出力４３２の立ち上がりエッジからＱ出力４４４と４４５の立ち上がりエッジまで測定されるような、クリティカルパスＢ３０９は、Ｄ１、プラス、Ｄ２のタイミングマージンを有するクロック周波数周期を満たす。この状況において、電圧Ｖｄｄ２２６は、あまりに高すぎるとして考えられ、調整信号８４８が、電圧Ｖｄｄ２２６を下げるべきであることを示すだろう。このように電圧Ｖｄｄ２２６を下げることが発生している一方で、チップ上の他の動作が通常通り継続してもよい。可変電圧レギュレータが新たなより低い電圧レベルに到達するのに要求される時間期間の後、モデル化されたクリティカルパスのタイミングは、やり直されてもよい。Ｑ出力４４４と４４５が、依然として“１”レベルである場合、電圧は再び下げられるだろう。
【００４８】
Ｑ出力４４４と４４５が両方とも“１”レベルでない場合、クリティカルパスＢ３０９の遅延、プラス、プログラムされた遅延、Ｄ１、プラス、Ｄ２が、クロック周波数周期を満たさない。クリティカルパスＢ３０９に対する十分なタイミングマージンが存在するか否かを決定するために、クリティカルパスＢ３０９の遅延、プラス、Ｄ１に対する遅延モデルが、コンフィギュレーションレジスタにロードされ、エミュレートされたパスのタイミングが再びチェックされる。Ｍフリップ−フロップ４１６と４１７との両方がセットされている場合、適切なタイミングマージンが存在しており、電圧Ｖｄｄ２２６に対する、何のさらなる調整も行われない。両方のＭフリップ−フロップがセットされていない場合、クリティカルパスＢ３０９、プラス、プログラムされた遅延値Ｄ１は、そのタイミングを行わず、タイミングマージンが、カテゴリ２の命令に対して、不十分であるかもしれないことを示す。この後者の状況で、調整信号８４８は、電圧Ｖｄｄを上げるべきであることを示すだろう。
【００４９】
ＡＶＳ回路８００で、立ち下りエッジ信号タイミングに対する立ち下がりエッジもまた測定してもよい。調整信号８５０は、測定されている遅延のタイプについての情報を伝達してもよいことに留意すべきである。例えば、単一の調整信号８５０が、“１”レベルにセットされていると、結合器８２４は、Ｑ出力４１７が、“１”にセットされているとして考えることになり、クリティカルパス遅延、プラス、プログラム可能な遅延Ｄ１、プラス、Ｄ２が、過剰な時間マージンを有するタイミングを満たしており、電圧は下げられる。遅延エミュレーションの最後におけるＱ出力４１７が、“０”になるまで、電圧が下げられる。次に、プログラム可能コンフィギュレーションレジスタ４０４は、クリティカルパス遅延、プラス、プログラム可能遅延Ｄ１をロードされ、調整信号８５０が“０”にセットされて、減少された時間マージンを有する第２の測定がテストされていることを示す。“１”のＱ出力４１７と、“０”の調整信号８５０とでは、結合器８２４が、適切なマージンが存在することを示しているとして解釈することになり、電圧レギュレータは調整されない。代わりに、“０”のＱ出力４１７と、同じく“０”の調整信号８５０とでは、結合器は、時間マージンが短すぎることを示しているとして解釈することになり、電圧を上げる必要がある。新しいコンフィギュレーションビットのローディングとともに、新しいクリティカルパスエミュレーション測定に変化する際に、プロセッサの現在の動作条件と、測定されることになる新しく選択されたクリティカルパスとに依拠して、調整信号がセットされてもよい。
【００５０】
さまざまな例示的なロジックブロック、モジュール、回路、エレメント、および／または、ここで説明する実施形態に関連して説明するコンポーネントは、汎用プロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）または他のプログラム可能ロジック構成部品、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェア構成部品、あるいは、ここで説明する機能を実現するように設計されているこれらの任意の組み合わせとともに実現、または、実行してもよい。汎用プロセッサは、マイクロプロセッサであってもよいが、代わりに、プロセッサは、任意の従来のプロセッサ、制御装置、マイクロ制御装置、または、状態機械であってもよい。プロセッサはまた、計算コンポーネントの組み合わせとして、例えば、ＤＳＰとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと連携した１つ以上のマイクロプロセッサ、または、所望のアプリケーションに対して適切な、他の何らかのこのような構成として、実現されてもよい。
【００５１】
ここで開示する実施形態に関連して説明する方法は、ハードウェアで直接、プロセッサによって実行されるソフトウェアモジュールにおいて、または、これら２つの組み合わせにおいて、実現されてもよい。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、または、技術的に知られている、他の任意の形態の記憶媒体中に存在してもよい。記憶媒体は、プロセッサが記憶媒体から情報を読み取ることができるように、また、記憶媒体に対して情報を書き込めるように、プロセッサに結合されていてもよい。代わりに、記憶媒体はプロセッサに統合されていてもよい。
【００５２】
処理システムに対する命令セットアーキテクチャの文脈で、本発明を開示したが、ハードウェア支援コプロセッシングユニット上で実行されるカテゴリの関数にしたがった、電圧の調整のような、幅広くさまざまな実現を用いてもよいことが理解されるだろう。  
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］適応電圧スケーリングのための方法において、
複数のクリティカルパスのうちから、エミュレーションロジック上で分析するクリティカルパスを選択し、前記選択されたクリティカルパスの属性を、オン−チップ関数動作の間に決定することと、
前記属性に応答して、オン−チップ関数動作の間に、電圧を制御することと
を含み、
前記選択されたクリティカルパスは、プログラム実行の間に動作されることになるワーストケースクリティカルパスを表し、
電圧源が、前記複数のクリティカルパスに関係する電力ドメインに対して電力を供給する方法。
［２］クリティカルパスの長さにしたがって、命令を、複数のタイミングカテゴリに分類することと、
前記プログラム中で使用されるタイミングカテゴリを決定することと
をさらに含む、上記［１］の方法。
［３］前記プログラム中で使用される前記タイミングカテゴリの使用頻度に基づいて、クリティカルパスが選択される、上記［２］の方法。
［４］前記選択されたクリティカルパスの時間マージンを、動作周波数の周期と比較して、決定することをさらに含み、前記時間マージンは前記分析の属性である、上記［１］の方法。
［５］前記時間マージンが、第１の遅延値より長く、または、前記第１の遅延値に等しいが、前記第１の遅延値プラス第２の遅延値より短い場合、電圧に対して何の調整も行わないことをさらに含む、上記［４］の方法。
［６］前記時間マージンが、前記第１の遅延値プラス前記第２の遅延値より長く、または、前記第１の遅延値プラス前記第２の遅延値に等しい場合、電圧をより低い電圧に調整することをさらに含む、上記［５］の方法。
［７］前記時間マージンが、前記第１の遅延値より短い場合、電圧を増加させることをさらに含む、上記［５］の方法。
［８］対応するクリティカルパスの近くに配置されている信号パス中で、同等のコンポーネントを具体化することによって、前記複数のクリティカルパスのうちのそれぞれのクリティカルパスがエミュレートされる、上記［１］の方法。
［９］前記エミュレーションロジックは、プログラム可能遅延回路である、上記［１］の方法。
［１０］コンフィギュレーションビットを、コンフィギュレーションレジスタにロードして、前記クリティカルパスを選択し、前記コンフィギュレーションビットは、前記プログラム可能遅延回路を構成して、前記選択されたクリティカルパスをモデル化することをさらに含む、上記［９］の方法。
［１１］適応電圧スケーリング（ＡＶＳ）回路において、
クリティカルパスをエミュレートするプログラム可能タイミングパスエミュレーション回路と、
前記プログラム可能タイミングパスエミュレーション回路を構成して、オン−チップで動作されることになるプログラム中の命令利用に基づいて、少なくとも１つのクリティカルパスをエミュレートするプログラム可能制御ロジックと、
オン−チップ関数動作の間に、前記エミュレートされたクリティカルパスの属性を測定し、前記測定された属性に応答して、電圧レギュレータの出力電圧を制御する測定回路と
を具備し、
前記エミュレートされたクリティカルパスは、プログラム実行の間に動作されることになるワーストケースクリティカルパスを表し、
前記電圧レギュレータは、前記複数のクリティカルパスに関係する電力ドメインに対して電力を供給する、ＡＶＳ回路。
［１２］前記プログラム可能タイミングパスエミュレーション回路は、
プログラム選択可能パス遅延回路と、
パス遅延測定を開始させるための始動信号回路と
を備える、上記［１１］のＡＶＳ回路。
［１３］前記プログラム選択可能パス遅延回路は、
第１のレイヤ直列チェーン中で、プログラム選択可能第１レイヤタップとともに一緒に結合されて、クリティカルパス中のロジックエレメントをモデル化する、第１のレイヤの遅延エレメントと、
第２のレイヤ直列チェーン中で、プログラム選択可能第２レイヤタップとともに一緒に結合されて、前記ロジックエレメントの間の相互接続ワイヤリングをモデル化する、第２のレイヤの選択可能レジスタキャパシタ（ＲＣ）遅延エレメントと
を備え、
前記第１のレイヤは、前記第１のレイヤ直列チェーンの第１の遅延エレメントにおいて、始動信号を受け取り、選択された第１のレイヤタップから第１のレイヤ出力を発生させ、
前記第１のレイヤ出力は、前記第２のレイヤ直列チェーンの第１のＲＣ遅延エレメントに結合されており、選択された第２のレイヤ選択タップから第２のレイヤ出力を発生させる、上記［１２］のＡＶＳ回路。
［１４］前記プログラム可能制御ロジックは、
プログラム制御の下で、コンフィギュレーションビットがロードされるコンフィギュレーションレジスタを備え、
前記コンフィギュレーションビットは、前記プログラム可能タイミングパスエミュレーション回路を構成して、前記少なくとも１つのクリティカルパスをエミュレートする、上記［１１］のＡＶＳ回路。
［１５］前記測定ロジック回路は、
始動タイミングパス信号の出力値を受け取り、クロック信号によってクロックされる際に、第１のフリップフロップ出力に、前記受け取った出力値を転送する第１のフリップフロップと、
前記クリティカルパスエミュレーション回路の出力値を受け取り、クロック信号によってクロックされる際に、第２のフリップフロップ出力に、前記受け取った出力値を転送する第２のフリップフロップと、
前記第１のフリップフロップ出力と、前記第２のフリップフロップ出力とを受け取り、電圧を下げるべきか、同じままで保持すべきか、または、上げるべきかを示す調整信号を発生させる結合器と
を備える、上記［１１］のＡＶＳ回路。
［１６］適応電圧スケーリングのための方法において、
プログラム可能パス遅延回路中で時間遅延をセットして、オン−チップで動作されることになるプログラムに関係する最も長いクリティカルパスを表すクリティカルパス遅延をエミュレートすることと、
前記エミュレートされたクリティカルパス遅延の測定値に基づいて、オンチップ関数動作の間に、電圧を調整することと
を含み、
異なるプログラムは、異なる最も長いクリティカルパスを有し、
電圧源が、前記エミュレートされたクリティカルパスに関係する電力ドメインに対して電力を供給する方法。
［１７］動作周波数の周期と比較して、前記クリティカルパスの時間マージンを決定することと、
前記時間遅延中に、前記時間マージンを含めることと
をさらに含む、上記［１６］の方法。
［１８］調整信号を、調整要求状態にアサートして、前記時間遅延が、前記クリティカルパス遅延プラス過剰な時間マージンを含むことを示すことと、
前記アサートされた調整信号に基づいて、電圧を下げることと
をさらに含む、上記［１６］の方法。
［１９］調整信号を、非調整状態にセットして、前記時間遅延が、前記クリティカルパス遅延プラスセーフ動作時間マージンを含むことを示すことをさらに含む、上記［１６］の方法。
［２０］現在使用されている動作電圧より高い動作電圧を要求する命令が検出されるとき、プロセッサ機能停止要求を発生させることと、
前記動作電圧を、より高い動作電圧に調整することと、
前記より高い動作電圧に到達する際に、前記プロセッサ機能停止要求を解除することと
をさらに含む、上記［１６］の方法。
【図１】
0005535909.tif 000002
【図２】
0005535909.tif 000003
【図３】
0005535909.tif 000004
【図４】
0005535909.tif 000005
【図５】
0005535909.tif 000006
【図６Ａ】
0005535909.tif 000007
【図６Ｂ】
0005535909.tif 000008
【図７】
0005535909.tif 000009
【図８】
0005535909.tif 000010