(57)【特許請求の範囲】
【請求項１】
システムであって、
回路に供給された供給電圧における電圧ドループをモニタするように、および、前記モニタされた電圧ドループがドループ閾値以上である場合に前記回路のために電圧ドループ緩和を行うように構成された電圧ドループ緩和回路と、
ある時間の持続期間内に前記電圧ドループ緩和回路が前記電圧ドループ緩和を行うクロックサイクルの数を追跡するように、クロックサイクルの前記数と第１の閾値数とを比較するように、およびクロックサイクルの前記数が前記第１の閾値数を下回る場合に前記ドループ閾値と前記供給電圧との両方を減少させるように構成されたパフォーマンスモニタと
を備える、システム。
【請求項２】
前記電圧ドループ緩和回路は、
低減された周波数クロック信号を作成するために入力クロック信号の周波数を低減すること、および、前記低減された周波数クロック信号を前記回路に出力することによって、電圧ドループ緩和を行い、
前記電圧ドループ緩和が行われていないときに前記入力クロック信号を前記回路にわたす
ように構成される、請求項１に記載のシステム。
【請求項３】
クロックサイクルの前記数は、前記入力クロック信号のクロックサイクルの数、または前記低減された周波数クロック信号のサイクルの数である、請求項２に記載のシステム。
【請求項４】
前記電圧ドループ緩和回路は、
低減された周波数クロック信号を作成するために入力クロック信号の周波数を低減すること、および、前記低減された周波数クロック信号を前記回路に出力することによって、電圧ドループ緩和を行うことと、
前記電圧ドループ緩和が行われていないときに前記入力クロック信号を前記回路にわたすことと、
前記ドループ閾値が減少した場合に前記入力クロック信号の周波数を増加させることと
を行うように構成される、請求項１に記載のシステム。
【請求項５】
前記パフォーマンスモニタは、クロックサイクルの前記数と第２の閾値数とを比較するように、および、クロックサイクルの前記数が前記第２の閾値数を上回る場合に前記ドループ閾値を増加させるように構成される、請求項１に記載のシステム。
【請求項６】
前記電圧ドループ緩和回路は、
データ信号を出力するように構成された駆動回路と、
受け取りフリップフロップと、
前記駆動回路と前記受け取りフリップフロップとの間の遅延パスと、ここにおいて、前記遅延パスは、調節可能な遅延デバイスを含み、前記データ信号は、前記遅延パスを介して前記駆動回路から前記受け取りフリップフロップに伝搬し、前記受け取りフリップフロップは、入力クロック信号のアクティブなエッジにおいて前記データ信号の論理値をラッチするように構成され、
前記ラッチされた論理値に基づいて前記受け取りフリップフロップにおけるタイミングエラーを検出するように、および前記タイミングエラーが検出された場合に電圧ドループ緩和をトリガするように構成されたエラー検出回路と、
を備え、
前記パフォーマンスモニタは、前記調節可能な遅延デバイスの遅延設定を調整することによって、前記ドループ閾値を減少させるように構成される、
請求項１に記載のシステム。
【請求項７】
前記調節可能な遅延デバイスは、
複数の遅延パスであって、前記複数の遅延パスの各々が、前記供給電圧によって電力供給される異なる数のバッファを含む、複数の遅延パスと、
遅延選択信号に従って、前記複数の遅延パスのうちの１つを選択するように構成されたマルチプレクサと、ここにおいて、前記パフォーマンスモニタは、前記遅延選択信号を調整することによって、前記調節可能な遅延デバイスの前記遅延設定を調整するように構成される、
を備える、請求項６に記載のシステム。
【請求項８】
ドループ閾値を調整するための方法であって、
回路に供給された供給電圧における電圧ドループをモニタすることと、
前記モニタされた電圧ドループが前記ドループ閾値以上である場合に前記回路のために電圧ドループ緩和を行うことと、
ある時間の持続期間内に前記電圧ドループ緩和が行われるクロックサイクルの数を追跡することと、
クロックサイクルの前記数と第１の閾値数とを比較することと、
クロックサイクルの前記数が前記第１の閾値数を下回る場合に前記ドループ閾値と前記供給電圧との両方を減少させることと
を備える、方法。
【請求項９】
電圧ドループ緩和を行うことは、低減された周波数クロック信号を作成するために入力クロック信号の周波数を低減すること、および、前記低減された周波数クロック信号を前記回路に出力することを備え、前記方法は、前記電圧ドループ緩和が行われていないときに前記入力クロック信号を前記回路にわたすことをさらに備える、請求項８に記載の方法。
【請求項１０】
クロックサイクルの前記数は、前記入力クロック信号のクロックサイクルの数、または前記低減された周波数クロック信号のサイクルの数である、請求項９に記載の方法。
【請求項１１】
電圧ドループ緩和を行うことは、低減された周波数クロック信号を作成するために入力クロック信号の周波数を低減すること、および前記低減された周波数クロック信号を前記回路に出力することを備え、前記方法は、前記電圧ドループ緩和が行われていないときに前記入力クロック信号を前記回路にわたすこと、および、前記ドループ閾値が減少した場合に前記入力クロック信号の周波数を増加させることをさらに備える、請求項８に記載の方法。
【請求項１２】
クロックサイクルの前記数と第２の閾値数とを比較すること、および、クロックサイクルの前記数が前記第２の閾値数を上回る場合に前記ドループ閾値を増加させることをさらに備える、請求項８に記載の方法。
【請求項１３】
電圧ドループをモニタすることは、前記電圧ドループによって引き起こされる遅延パスにおけるタイミングエラーを検出することを備え、前記遅延パスは、調節可能な遅延デバイスを含み、前記モニタされた電圧ドループが前記ドループ閾値以上である場合に前記回路のために電圧ドループ緩和を行うことは、前記タイミングエラーが検出された場合に前記回路のために電圧ドループ緩和を行うことを備え、前記ドループ閾値を減少させることは、前記調節可能な遅延デバイスの遅延設定を調整することを備える、請求項８に記載の方法。
【請求項１４】
システムであって、
回路に供給された供給電圧における電圧ドループをモニタするように、および、前記モニタされた電圧ドループがドループ閾値以上である場合に前記回路のために電圧ドループ緩和を行うように構成された電圧ドループ緩和回路と、
ある時間の持続期間内に前記電圧ドループ緩和回路が前記電圧ドループ緩和を行う回数を追跡するように、前記時間の持続期間内に前記電圧ドループ緩和回路が前記電圧ドループ緩和を行う前記回数と、第１の閾値数とを比較するように、および前記時間の持続期間内に前記電圧ドループ緩和回路が前記電圧ドループ緩和を行う前記回数が、前記第１の閾値数を下回る場合に前記ドループ閾値と前記供給電圧との両方を減少させるように構成されたパフォーマンスモニタと
を備える、システム。
【請求項１５】
前記電圧ドループ緩和回路は、
低減された周波数クロック信号を作成するために入力クロック信号の周波数を低減すること、および、前記低減された周波数クロック信号を前記回路に出力することによって、電圧ドループ緩和を行うことと、
前記電圧ドループ緩和が行われていないときに前記入力クロック信号を前記回路にわたすことと、
前記ドループ閾値が減少した場合に前記入力クロック信号の周波数を増加させることと
を行うように構成される、請求項１４に記載のシステム。
【請求項１６】
前記パフォーマンスモニタは、前記時間の持続期間内に前記電圧ドループ緩和回路が前記電圧ドループ緩和を行う前記回数と、第２の閾値数とを比較するように、および、前記時間の持続期間内に前記電圧ドループ緩和回路が前記電圧ドループ緩和を行う前記回数が前記第２の閾値数を上回る場合に前記ドループ閾値を増加させるように構成される、請求項１４に記載のシステム。
【請求項１７】
前記電圧ドループ緩和回路は、
データ信号を出力するように構成された駆動回路と、
受け取りフリップフロップと、
前記駆動回路と前記受け取りフリップフロップとの間の遅延パスと、ここにおいて、前記遅延パスは、調節可能な遅延デバイスを含み、前記データ信号は、前記遅延パスを介して前記駆動回路から前記受け取りフリップフロップに伝搬し、前記受け取りフリップフロップは、入力クロック信号のアクティブなエッジにおいて前記データ信号の論理値をラッチするように構成され、
前記ラッチされた論理値に基づいて前記受け取りフリップフロップにおけるタイミングエラーを検出するように、および前記タイミングエラーが検出された場合に電圧ドループ緩和をトリガするように構成されたエラー検出回路と、
を備え、
前記パフォーマンスモニタは、前記調節可能な遅延デバイスの遅延設定を調整することによって、前記ドループ閾値を調整するように構成される、
請求項１４に記載のシステム。
【請求項１８】
前記調節可能な遅延デバイスは、
複数の遅延パスであって、前記複数の遅延パスの各々が、前記供給電圧によって電力供給される異なる数のバッファを含む、複数の遅延パスと、
遅延選択信号に従って、前記複数の遅延パスのうちの１つを選択するように構成されたマルチプレクサと、ここにおいて、前記パフォーマンスモニタは、前記遅延選択信号を調整することによって、前記調節可能な遅延デバイスの前記遅延設定を調整するように構成される、
を備える、請求項１７に記載のシステム。
【請求項１９】
ドループ閾値を調整するための方法であって、
回路に供給された供給電圧における電圧ドループをモニタすることと、
前記モニタされた電圧ドループが前記ドループ閾値以上である場合に前記回路のために電圧ドループ緩和を行うことと、
前記電圧ドループ緩和がある時間の持続期間内に行われる回数を追跡することと、
前記時間の持続期間内に前記電圧ドループ緩和が行われる前記回数と、第１の閾値数とを比較することと、
前記時間の持続期間内に前記電圧ドループ緩和が行われる前記回数が前記第１の閾値数と前記供給電圧とを下回る場合に前記ドループ閾値と前記供給電圧との両方を減少させることと
を備える、方法。
【請求項２０】
電圧ドループ緩和を行うことは、低減された周波数クロック信号を作成するために入力クロック信号の周波数を低減すること、および前記低減された周波数クロック信号を前記回路に出力することを備え、前記方法は、前記電圧ドループ緩和が行われていないときに前記入力クロック信号を前記回路にわたすこと、および、前記ドループ閾値が減少した場合に前記入力クロック信号の周波数を増加させることをさらに備える、請求項１９に記載の方法。
【請求項２１】
前記電圧ドループ緩和が前記時間の持続期間内に行われる前記回数と、第２の閾値数とを比較すること、および前記電圧ドループ緩和が前記時間の持続期間内に行われる前記回数が前記第２の閾値数を上回る場合に前記ドループ閾値を増加させることをさらに備える、請求項１９に記載の方法。
【請求項２２】
電圧ドループをモニタすることは、前記電圧ドループによって引き起こされる遅延パスにおけるタイミングエラーを検出することを備え、前記遅延パスは調節可能な遅延デバイスを含み、前記モニタされた電圧ドループが前記ドループ閾値以上である場合に前記回路のために電圧ドループ緩和を行うことは、前記タイミングエラーが検出された場合に前記回路のために電圧ドループ緩和を行うことを備え、前記ドループ閾値を減少させることは、前記調節可能な遅延デバイスの遅延設定を調整することを備える、請求項１９に記載の方法。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
[0001]  本願は、２０１６年１２月２８日付で米国特許商標庁に出願された非仮出願第１５／３９３，１０７号に対する優先権およびその利益を主張し、その全内容が、参照により本明細書に組み込まれている。
【技術分野】
【０００２】
[0002]  本開示の態様は、一般に、電圧ドループ(voltage droop)に関し、より具体的には、電圧ドループ緩和に関する。
【背景技術】
【０００３】
[0003]  チップ上の回路（例えば、プロセッサ）は、電力分配ネットワーク（ＰＤＮ：power distribution network）を介して電源から電力を受け取る。回路の活動における急な変化は、ＰＤＮ中に多大な過渡電流（current transients）をもたらし得る。その多大な過渡電流は、供給電圧におけるドループを引き起こす。回路の適正動作に必要とされる最小供給電圧を下回って供給電圧を降下させるほど電圧ドループの大きさが大きい場合、回路は誤動作する可能性がある（例えば、その回路のクリティカルパスにおいてタイミング違反が発生し得る）。
【発明の概要】
【０００４】
[0004]  下記は、１つまたは複数の実施形態の基本的な理解を提供するために、そのような実施形態の簡略化された概要を表す。この概要は全ての予期される態様の広範囲に及ぶ概観ではなく、また全ての実施形態のキーとなるまたは不可欠な要素を識別することも、任意または全ての実施形態の範囲を描写することも意図するものではない。その唯一の目的は、後で提示するより詳細な説明の導入として、１つまたは複数の態様のいくつかの概念を簡略化された形で提示することである。
【０００５】
[0005]  第１の態様はシステムに関する。このシステムは、回路に供給された供給電圧における電圧ドループをモニタするように、および、モニタされた電圧ドループがドループ閾値以上である場合に回路のために電圧ドループ緩和を行うように構成された電圧ドループ緩和回路を含む。システムはまた、ある時間の持続期間内に（within a time duration）電圧ドループ緩和回路が電圧ドループ緩和を行うクロックサイクルの数を追跡するように、および、クロックサイクルの数に基づいてドループ閾値を調整するように構成されたパフォーマンスモニタを含む。
【０００６】
[0006]  第２の態様はドループ閾値を調整するための方法に関する。この方法は、回路に供給された供給電圧における電圧ドループをモニタすること、および、モニタされた電圧ドループがドループ閾値以上である場合に回路のために電圧ドループ緩和を行うことを含む。方法はまた、ある時間の持続期間内に電圧ドループ緩和が行われるクロックサイクルの数を追跡すること、および、クロックサイクルの数に基づいてドループ閾値を調整することを含む。
【０００７】
[0007]  第３の態様はシステムに関する。このシステムは、回路に供給された供給電圧における電圧ドループをモニタするように、および、モニタされた電圧ドループがドループ閾値以上である場合に回路のために電圧ドループ緩和を行うように構成された電圧ドループ緩和回路を含む。システムはまた、ある時間の持続期間内に電圧ドループ緩和回路が電圧ドループ緩和を行う回数を追跡するように、および、時間の持続期間内に電圧ドループ緩和回路が電圧ドループ緩和を行う回数に基づいてドループ閾値を調整するように構成されたパフォーマンスモニタを含む。
【０００８】
[0008]  第４の態様は方法に関する。この方法は、回路に供給された供給電圧における電圧ドループをモニタすること、および、モニタされた電圧ドループがドループ閾値以上である場合に回路のために電圧ドループ緩和を行うことを含む。方法はまた、電圧ドループ緩和がある時間の持続期間内に行われる回数を追跡することと、電圧ドループ緩和が時間の持続期間内に行われる回数に基づいて、ドループ閾値を調整することと、を含む。
【０００９】
[0009]  前述の目的および関連する目的の達成のために、１つまたは複数の実施形態が下記に十分に説明され、また特許請求の範囲において具体的に示される特徴を含む。以下の記述および添付の図面は、１つまたは複数の実施形態のある特定の実例となる態様を詳細に示す。しかしながら、これらの態様は、様々な態様の原理が用いられ得る様々な方法のうちのごく一部を示すものにすぎず、本説明は、全てのこのような態様およびそれらの同等物を含むことを意図する。
【図面の簡単な説明】
【００１０】
【図１】電力分配ネットワーク（ＰＤＮ）を介して電源から供給電圧を受け取る回路の例を示す。
【図２】供給電圧における電圧ドループの例を示す。
【図３】最悪のケースの電圧ドループ（worst-case voltage droop）の原因となる供給電圧に組み込まれたガードバンドの例を示す。
【図４】本開示のある特定の態様に従った電圧ドループ緩和回路の例を示す。
【図５】本開示のある特定の態様に従った、電圧ドループ緩和回路を使用することによって提供されたガードバンドの低減の例を示す。
【図６】本開示のある特定の態様に従った、パフォーマンスモニタの別の例を示す。
【図７Ａ】本開示のある特定の態様に従った、ドループ閾値を調整するための例示的な方法を示すフローチャートである。
【図７Ｂ】本開示のある特定の態様に従った、ドループ閾値を調整するための別の例示的な方法を示すフローチャートである。
【図８】本開示のある特定の態様に従った、供給電圧およびガードバンドがドループ閾値における調整を用いて調整される例を示す。
【図９Ａ】本開示のある特定の態様に従った、ドループ閾値を調整するためのさらに別の例示的な方法を示すフローチャートである。
【図９Ｂ】本開示のある特定の態様に従った、ドループ閾値を調整するためのまた別の例示的な方法を示すフローチャートである。
【図１０】本開示のある特定の態様に従った、クロックレデューサの例示的な具体例を示す。
【図１１】本開示のある特定の態様に従った、クロックディバイダの例示的な具体例を示す。
【図１２】本開示のある特定の態様に従った、電圧ベースのドループモニタの例示的な具体例を示す。
【図１３】本開示のある特定の態様に従った、クロック分配パス上の遅延デバイスの例を示す。
【図１４】本開示のある特定の態様に従った、タイミングベースのドループモニタの例示的な具体例を示す。
【図１５】本開示のある特定の態様に従った、調節可能な遅延デバイスの例を示す。
【図１６】本開示の態様に従った、ドループ閾値を調整するための例示的な方法を示すフローチャートである。
【図１７】本開示の態様に従ったドループ閾値を調整するための別の例示的な方法を示すフローチャートである。
【発明の詳細な説明】
【００１１】
[0029]  添付の図面に関連して以下に示す詳細な説明は、様々な構成の説明を含むものであり、本明細書で説明する概念が実施され得る唯一の構成を表すことを意図するものではない。詳細な説明は、様々な概念の完全な理解を提供するための具体的な詳細を含む。しかしながら、これらの概念はこれらの具体的な詳細なしに実施され得ることが当業者には明らかであろう。いくつかの例では、そのような概念を不明瞭にしないように、よく知られている構造および構成要素をブロック図の形式で示している。
【００１２】
[0030]  図１は、電力分配ネットワーク（ＰＤＮ）１１５を介して電源１２０から電力を受け取る回路１１０（例えば、プロセッサ）の例を示す。電源１２０は、供給電圧ＶＤＤを生成するように構成された電力管理集積回路（ＰＭＩＣ）を含み得、それは、ＰＤＮ１１５を介して回路１１０に供給される。これに関して、ＰＭＩＣは、（例えば、バッテリ、または別のソースからの）入力電圧を供給電圧ＶＤＤに変換するように構成される、電圧レギュレータ（スイッチングレギュレータ）を含み得る。回路１１０は、回路１１０のタイミング動作（timing operations）のためのクロック信号（「ＣＬＫ」と表記され得る）を受け取る。通常、回路１１０は、ある特定のクロック周波数において適正に動作するための最小供給電圧を要求する。例えば、回路１１０は、回路１１０におけるクリティカルパスが適正動作のためのある特定のタイミング要件（例えば、セットアップ時間）を満たすために、最小供給電圧を要求し得る。
【００１３】
[0031]  回路１１０（例えば、プロセッサ）の活動における急な変化は、ＰＤＮ１１５に多大な過渡電流をもたらし得る。その多大な過渡電流は、供給電圧ＶＤＤにおけるドループを引き起こす。これは、電源１２０（例えば、ＰＭＩＣ）が、ＰＤＮ１１５におけるインダクタンスのために多大な過渡電流に即座に応答できないためである。結果として、過渡電流はＰＤＮ １１５におけるキャパシタ（例えば、デカプリングキャパシタ）および／またはＰＤＮ １１５に結合された他の回路におけるキャパシタを放電し、供給電圧ＶＤＤにおけるドループを引き起こす。
【００１４】
[0032]  これに関して、図２は、多大な過渡電流によって引き起こされる供給電圧ＶＤＤにおけるドループ２１０の例を示す。回路１１０の適正動作に必要とされる最小供給電圧を下回って供給電圧ＶＤＤを降下させるほど電圧ドループの大きさが大きい場合、回路１１０は誤動作する可能性がある（例えば、回路１１０のクリティカルパスにおいてタイミング違反が発生し得る）。
【００１５】
[0033]  これを解消するために、ガードバンド（電圧マージン）が通常、供給電圧ＶＤＤに組み込まれている。ガードバンドは、電圧ドループに適応させるために、最小電圧を上回って供給電圧ＶＤＤが増加する量である。図３は、約１００ｍＶのガードバンドを有する供給電圧ＶＤＤの例を示す。図３において、電圧波形３１０は、所望された供給電圧レベル（ターゲット供給電圧とも呼ばれる）についての供給電圧の変動を示し、線３２０は、ターゲットクロック周波数における回路１１０の適正動作に必要とされる最小電圧（「ＶＭＩＮ」と表記される）を示す。この例において、ガードバンドは、供給電圧ＶＤＤが最悪のケースの電圧ドループに関して最小電圧ＶＭＩＮを下回って下がらないよう、最悪のケースの電圧ドループに基づいている。このアプローチの欠点は、ガードバンドを追加するために供給電圧ＶＤＤを増加させることが必要であることであり、それは、回路１１０の電力消費を増加させる。
【００１６】
[0034]  ガードバンドは、電圧ドループ緩和を使用して低減され得る。これに関して、図４は、電圧ドループ緩和回路４１０の例を示す。電圧ドループ緩和回路４１０は、電圧ドループモニタ４２０およびクロックレデューサ４３０を含む。電圧ドループモニタ４１０は、以下でさらに説明されるように、電圧ドループについて供給電圧ＶＤＤをモニタするように構成され得る。クロックレデューサ４３０は、クロックソース４５０から入力クロック信号（「ＣＬＫ＿ＩＮ」と表記される）を受け取り、回路１１０のタイミング動作のために回路１１０に出力クロック信号（「ＣＬＫ＿ＯＵＴ」と呼ばれる）を出力する。クロックレデューサ４３０は、電圧ドループモニタ４２０の制御下で２つのモードのうちの１つで動作するように構成される。第１のモードにおいて、クロックレデューサ４３０は、入力クロック信号ＣＬＫ＿ＩＮを出力クロック信号ＣＬＫ＿ＯＵＴとして回路１１０にわたすように構成される。第２のモードにおいて、クロックレデューサ４３０は、低減された周波数クロック信号を作成するために入力クロック信号ＣＬＫ＿ＩＮの周波数を低減し、低減された周波数クロック信号を出力クロック信号ＣＬＫ＿ＯＵＴとして回路１１０に出力するように構成される。
【００１７】
[0035]  この例において、電圧ドループモニタ４２０は、供給電圧における電圧ドループをモニタし、モニタされた電圧ドループとドループ閾値とを比較する。電圧ドループは、供給電圧がターゲット供給電圧（すなわち、ドループのない供給電圧）を下回って降下する量であり得る。例えば、ターゲット供給電圧が９００ｍＶであり、供給電圧が８７０ｍＶまで降下する場合、電圧ドループは約３０ｍＶである。
【００１８】
[0036]  電圧ドループがドループ閾値（例えば、５０ｍＶ）を下回った場合、電圧ドループモニタ４２０は、ドループに反応しない（does not respond）。このケースにおいて、クロックレデューサ４３０は、第１のモードで動作し、入力クロック信号ＣＬＫ＿ＩＮを出力クロック信号ＣＬＫ＿ＯＵＴとして回路１１０にわたす。回路１１０（例えば、プロセッサ）は、ターゲットクロック周波数（例えば、２ＧＨｚ）におよび、それは、入力クロック信号ＣＬＫ＿ＩＮの周波数に対応する。
【００１９】
[0037]  モニタされた電圧ドループがドループ閾値以上である場合、電圧ドループモニタ４２０は、クロックレデューサ４３０に第２のモードで動作するように指示し、ここで、クロックレデューサ４３０は、入力クロック信号ＣＬＫ＿ＩＮの周波数を低減し、結果として生じる低減された周波数クロック信号を回路１１０に出力する。例えば、クロックレデューサ４３０は、クロック周波数を５０％まで低減し得る（例えば、クロック周波数を２ＧＨｚから１ＧＨｚに低減する）。クロック周波数における低減は、電圧ドループが回路１１０を誤動作させることを防ぐ（例えば、回路１１０のクリティカルパスにおけるタイミング違反を防ぐ）。これは、回路１１０のクリティカルパスを求めるタイミング要求が、低減されたクロック周波数において緩和される（relaxed）ためであり、低減されたクロック周波数において回路１１０が大きい電圧ドループを許容することを可能にする。
【００２０】
[0038]  供給電圧がドループ（モニタされた電圧ドループがドループ閾値を下回って降下する）から回復したとき、電圧ドループモニタ４２０は、クロックレデューサ４３０に第１のモードにおけるもとの動作に切り替えるよう指示し得、ここで、クロックレデューサ４３０は、入力クロック信号ＣＬＫ＿ＩＮを回路１１０にわたす。これは、もとのターゲットクロック周波数（すなわち、入力クロック信号ＣＬＫ＿ＩＮの周波数）へ回路１１０におけるクロック周波数を復元する。
【００２１】
[0039]  電圧ドループ緩和回路４１０は、ガードバンドが低減されることを可能にし、従って、電力消費を低減するために、供給電圧ＶＤＤを低減することを可能にする。これは、供給電圧がターゲットクロック周波数（例えば、２ＧＨｚ）において適正動作のために必要とされる最小電圧を下回って降下する（drops below）前に、電圧ドループ緩和回路４１０がドループ緩和を開始（トリガ）する（すなわち、回路１１０におけるクロック周波数を低減する）ためである。結果として、ガードバンドは、もはや供給電圧が最小電圧を横断することを常に避けるほど十分大きいものである必要はない。
【００２２】
[0040]  これに関して、図５は、ガードバンドが５０ｍＶに低減される例を示す。この例では、２つの最小電圧ＶＭＩＮ＿１およびＶＭＩＮ＿２が存在する。第１の最小電圧ＶＭＩＮ＿１は、ターゲットクロック周波数（例えば、２ＧＨｚ）において回路１１０が適正に動作するために必要とされる最小電圧である。第１の最小電圧ＶＭＩＮ＿１は、図３に示される最小電圧ＶＭＩＮと同じである。第２の最小電圧ＶＭＩＮ＿２は、低減されたクロック周波数（例えば、１ＧＨｚ）において回路１１０が適正に動作するために必要とされる最小電圧である。図５に示されるように、第２の最小電圧ＶＭＩＮ＿２は、第１の最小電圧ＶＭＩＮ＿１よりも低い。この例において、ドループ閾値は、供給電圧が第１の最小電圧ＶＭＩＮ＿１まで降下したとき、電圧ドループ緩和回路４１０がドループ緩和を開始（トリガ）するように設定され得る。このケースにおいて、電圧ドループ緩和回路４１０は、供給電圧が第１の最小電圧ＶＭＩＮ＿１を横断する度に、ドループ緩和を開始する。図５で示される例において、供給電圧５１０は、図５に示される時間の期間中に、第１の最小電圧ＶＭＩＮ＿１を数回横断しており、従って、図５に示される時間の期間中、電圧ドループ緩和を数回行う。
【００２３】
[0041]  電力とパフォーマンスとの間にトレードオフが存在する。ドループ閾値を低減することは、ターゲットクロック周波数に関する最小電圧のより近くに供給電圧が移動することを可能にし、ゆえに、供給電圧が低減される。供給電圧の低減は、電力消費を低減する。
【００２４】
[0042]  しかしながら、ドループ閾値を低減することは、電圧ドループ緩和回路４１０に、より小さい電圧ドループに関するドループ緩和を開始させ、従って、より高い頻度で（頻繁に）ドループ緩和を開始させる。このことが有する問題は、回路１１０におけるクロック周波数の低減のためにドループ緩和が行われるたびに、回路１１０のパフォーマンスが低減されることである。
【００２５】
[0043]  従って、ドループ閾値を電力とパフォーマンスとの間に最適なトレードオフを提供する値に設定することが望ましいであろう。例えば、最適ドループ閾値は、その時間のある特定割合（例えば、その時間の０．１パーセント）行なわれる電圧ドループ緩和をもたらすドループ閾値として定義され得る。
【００２６】
[0044]  現在のシステムにおいて、ドループ閾値は、回路１１０の動作中、静的（固定）である。このことが有する問題は、供給電圧における電圧ドループの大きさおよび／または周波数が、回路１１０（例えば、プロセッサ）の異なる作業負荷に関して変化し得ることである。結果として、１つの作業負荷に関して最適なドループ閾値は、通常、別の作業負荷に関して最適なものではない。通常、ドループ閾値は、回路１１０の最悪のケースの作業負荷に基づいて設定される。よって、ドループ閾値は通常、回路１１０の最も大きい作業負荷に関して最適なものではない。
【００２７】
[0045]  本開示の実施形態は、以下でさらに説明されるように、回路１１０（例えば、プロセッサ）の作業負荷における変化にドループ閾値を動的に調整する（適応させる）パフォーマンスモニタを提供することによって、上記の問題を解消する。
【００２８】
[0046]  図６は、以下でさらに説明されるように、電圧ドループモニタ４２０によって、使用されるドループ閾値を動的に調整するように構成されたパフォーマンスモニタ６２０の例を示す。
【００２９】
[0047]  電圧ドループモニタ４２０は、供給電圧において電圧ドループをモニタし、モニタされた電圧ドループとドループ閾値とを比較する。モニタされた電圧ドループがドループ閾値を下回った場合、電圧ドループモニタ４２０は、ドループに反応しない。このケースにおいて、クロックレデューサ４３０は、第１のモードで動作し、ここで、クロックレデューサ４３０は、入力クロック信号ＣＬＫ＿ＩＮを回路１１０にわたす。モニタされた電圧ドループがドループ閾値以上である場合、電圧ドループモニタ４２０は、クロックレデューサ４３０に第２のモードで動作するように指示し、上述されるように回路１１０におけるクロック周波数を低減する。以下でさらに説明されるように、電圧ドループモニタ４２０は、電圧ベースのドループ検出またはタイミングベースのドループ検出を使用して電圧ドループを検出し得る。
【００３０】
[0048]  パフォーマンスモニタ６２０は、ドループ緩和が行われる（すなわち、クロック周波数が低減される）入力クロック信号ＣＬＫ＿ＩＮのクロックサイクルの数（期間）を追跡する。例えば、電圧ドループモニタ４２０は、クロックレデューサ４３０に第１のモードで動作するように指示するために第１の論理値（例えば、ゼロ）をクロックレデューサ４３０に出力し、クロックレデューサ４３０に第２のモードで動作するように指示するために第２の論理値（例えば、１）をクロックレデューサ４３０に出力し得る。この例において、パフォーマンスモニタ６２０は、電圧ドループモニタ４２０が第２の論理値（例えば、１）をクロックレデューサ４３０に出力するクロックサイクルの数を追跡することによって、ドループ緩和が行われるクロックサイクルの数を追跡し得る。
【００３１】
[0049]  一例において、パフォーマンスモニタ６２０は、ドループ緩和が時間の持続期間（タイムウィンドウ）内に行われるクロックサイクルの数を追跡し得る。ドループ緩和が時間の持続期間内に二回以上行われると仮定すると、ドループ緩和が通常行われるクロックサイクルは、不連続的なクロックサイクルを含むことが認識されるべきである。パフォーマンスモニタ６２０は、ドループ緩和が行われるクロックサイクルごと（例えば、電圧ドループモニタ４２０が第２の論理値をクロックレデューサ４３０に出力する各クロックサイクル）のカウンタのカウント値を増分することによって、ドループ緩和が行われるクロックサイクルの数を追跡し得る。この例において、パフォーマンスモニタ６２０は、周期的にカウンタを（例えば、その時間の持続期間の最後に）リセットし得る。パフォーマンスモニタはまた、ドループ閾値が変化したとき、カウンタをリセットし得る。
【００３２】
[0050]  パフォーマンスモニタ６２０は次いで、ドループ緩和が行われるクロックサイクルの数に基づいてドループ閾値が調整される必要があるか否かを決定し得る。例えば、ドループ緩和が行われるクロックサイクルの数が少ない（例えば、第１の閾値数に等しいまたはそれを下回る（equal to or below））場合、パフォーマンスモニタ６２０は、ドループ閾値が低減されることができると決定し得る。このケースにおいて、パフォーマンスモニタ６２０は、ドループ閾値を（例えば、予め定められたステップによって）減少させる。パフォーマンスモニタ６２０はまた、電源１２０（例えばＰＭＩＣ）に供給電圧ＶＤＤを低減するように指示し得、それは、電力削減およびガードバンドを低減する。
【００３３】
[0051]  ドループ緩和が行われるクロックサイクルの数が多い（例えば、第２の閾値数に等しいまたはそれを上回る（equal to or above））場合、パフォーマンスモニタ６２０は、ドループ閾値が低すぎる（例えば、ドループ緩和があまりにも高い頻度で行われ（頻繁であり）、回路１１０のパフォーマンスに悪影響を与える）ことを決定し得る。このケースにおいて、パフォーマンスモニタ６２０は、ドループ閾値を（例えば、予め定められたステップによって）増加させる。パフォーマンスモニタ６２０はまた、電源１２０に供給電圧ＶＤＤを増加させるよう指示し得、それは、ガードバンドを増加させる。
【００３４】
[0052]  ドループ緩和が行われるクロックサイクルの数がある特定の範囲内（例えば、第１の閾値数と第２の閾値数との間）にある場合、パフォーマンスモニタ６２０は、現在のドループ閾値をそのままにし得る。
【００３５】
[0053]  パフォーマンスモニタ６２０は、回路１１０（例えば、プロセッサ）の作業負荷における変化に応答して、ドループ閾値を動的に調整する。これは、ドループ緩和が行われるクロックサイクルの数が多くなる（例えば、第２の閾値数に等しいまたはそれを上回る）ように、作業負荷における変化が電圧ドループの大きさおよび／または周波数を増加させるとき、パフォーマンスモニタ６２０がドループ閾値を増加させるためである。ドループ緩和が行われるクロックサイクルの数が少なくなる（例えば、第１の閾値数に等しいまたはそれを下回る）ように、作業負荷における変化が電圧ドループの大きさおよび／または周波数を減少させるとき、パフォーマンスモニタ６２０は、ドループ閾値を減少させる。
【００３６】
[0054]  上記の例において、パフォーマンスモニタ６２０は、ドループ緩和が行われる入力クロック信号ＣＬＫ＿ＩＮのサイクルの数を追跡する。しかしながら、本開示はこの例に限定されるものではないことが認識されるべきである。例えば、パフォーマンスモニタ６２０は、ドループ緩和が行われる低減された周波数クロック信号のクロックサイクルの数を追跡するか、またはドループ緩和が行われる別のクロック信号のクロックサイクルの数を追跡し得る。
【００３７】
[0055]  別の例において、パフォーマンスモニタ６２０は、ドループ緩和がある時間の持続期間に行われる（トリガされるまたは開始される）回数を追跡し得る。この例において、パフォーマンスモニタ６２０は、ドループ緩和が行われるたびにカウンタのカウント値を増分する（例えば、ドループモニタ４２０の出力のたびに、第１の論理値から第２の論理値に切り替える）ことによって、ドループ緩和が行われる回数を追跡し得る。この例において、パフォーマンスモニタ６２０は、ドループ緩和が行われる回数が少ない（例えば、第１の閾値数に等しいまたはそれを下回る）場合にドループ閾値を減少させ、ドループ緩和が行われる回数が多い（例えば、第２の閾値数に等しいまたはそれを上回る）場合にドループ閾値を増加させ得る。この例における第１および第２の閾値数は、前の例における第１および第２の閾値数とは異なり得、ここで、ドループ緩和が行われるクロックサイクルの数は、追跡される。パフォーマンスモニタ６２０は、ドループ緩和が行われる回数がある特定の範囲内（例えば、第１の閾値数と第２の閾値数との間）にある場合、ドループ閾値をそのままにし得る。
【００３８】
[0056]  電源１２０は、供給電圧ＶＤＤを複数の異なる供給電圧レベルのうちの任意の１つに設定するように構成された電力管理集積回路（ＰＭＩＣ）を含み得る。この例において、パフォーマンスモニタ６２０は、電源１２０に指示（例えば、リクエスト）を送って供給電圧ＶＤＤの供給電圧レベルを現在の供給電圧レベルよりも高い複数の供給電圧レベルのうちの１つに設定することによって供給電圧ＶＤＤを増加させ得る。パフォーマンスモニタ６２０は、電源１２０に指示（例えば、リクエスト）を送って供給電圧ＶＤＤの供給電圧レベルを現在の供給電圧レベルよりも低い複数の供給電圧レベルのうちの１つに設定することによって供給電圧ＶＤＤを減少させ得る。
【００３９】
[0057]  図７Ａは、ある特定の態様に従った、ドループ閾値を調整するための方法７００を図示するフローチャートである。方法７００は、パフォーマンスモニタ６２０によって行われ得る。
【００４０】
[0058]  ステップ７１０において、パフォーマンスモニタ６２０は、ある時間の持続期間内にドループ緩和が行われるクロックサイクルの数を追跡する。クロックサイクルは、入力クロック信号ＣＬＫ＿ＩＮのクロックサイクル、低減された周波数クロック信号のクロックサイクル、または別のクロック信号のクロックサイクルであり得る。
【００４１】
[0059]  ステップ７２０において、パフォーマンスモニタ６２０は、クロックサイクルの数が第１の閾値数に等しいまたはそれを下回るか否かを決定する。クロックサイクルの数が第１の閾値数に等しいまたはそれを下回る場合、パフォーマンスモニタ６２０はステップ７２５においてドループ閾値を減少させて供給電圧ＶＤＤを減少させる。
【００４２】
[0060]  ステップ７３０において、パフォーマンスモニタ６２０は、クロックサイクルの数が第２の閾値数に等しいまたはそれを上回るか否かを決定する。第２の閾値数は、第１の閾値数よりも大きい可能性がある。クロックサイクルの数が第２の閾値数に等しいまたはそれを上回る場合、パフォーマンスモニタ６２０はステップ７３５においてドループ閾値を増加させて供給電圧ＶＤＤを増加させる。
【００４３】
[0061]  ステップ７４０において、パフォーマンスモニタ６２０は、ステップ７２０と７３０の条件のいずれも満たされない（すなわち、クロックサイクルの数が第１の閾値数と第２の閾値数との間にある）場合、ドループ閾値および供給電圧をそのままにし得る。パフォーマンスモニタ６２０が図７Ａに示される例示的な順序でそれらステップを行うことを限定されるものではなく、異なる順序でそれらステップを行い得ることが認識されるべきである。
【００４４】
[0062]  図７Ｂは、ある特定の態様に従った、ドループ閾値を調整するための方法７５０を図示するフローチャートである。方法７５０は、パフォーマンスモニタ６２０によって行われ得る。
【００４５】
[0063]  ステップ７６０おいて、パフォーマンスモニタ６２０は、ある時間の持続期間内にドループ緩和が行われるクロックサイクルの回数を追跡する。例えば、パフォーマンスモニタ６２０は、ドループ緩和がトリガされるたびにカウンタを増分することによって、ドループ緩和が行われる回数を追跡し得る。
【００４６】
[0064]  ステップ７７０において、パフォーマンスモニタ６２０は、ドループ緩和が行われる回数が第１の閾値数に等しいまたはそれを下回るか否かを決定する。ドループ緩和が行われる回数が第１の閾値数に等しいまたはそれを下回る場合、パフォーマンスモニタ６２０は、ステップ７７５において、ドループ閾値を減少させ、供給電圧ＶＤＤを減少させる。
【００４７】
[0065]  ステップ７８０において、パフォーマンスモニタ６２０は、ドループ緩和が行われる回数が第２の閾値数に等しいまたはそれを上回るか否かを決定する。第２の閾値数は、第１の閾値数よりも大きい可能性がある。ドループ緩和が行われる回数が第２の閾値数に等しいまたはそれを上回る場合、パフォーマンスモニタ６２０は、ステップ７８５において、ドループ閾値を増加させ、供給電圧ＶＤＤを増加させる。
【００４８】
[0066]  ステップ７９０において、パフォーマンスモニタ６２０は、ステップ７７０および７８０における条件のいずれも満たされない（すなわち、ドループ緩和が行われる回数が第１の閾値数と第２の閾値数との間にある）場合、ドループ閾値および供給電圧をそのままにし得る。パフォーマンスモニタ６２０が図７Ｂに示される例示的な順序でそれらステップを行うことを限定されるものではなく、異なる順序でそれらステップを行い得ることが認識されるべきである。
【００４９】
[0067]  図８は、本願の態様に従って、ドループ閾値が調整される例を示す。この例においてドループ閾値が調整されるたび、パフォーマンスモニタ６２０はまた、供給電圧ＶＤＤを調整する。例えば、ｔ１の時点において、パフォーマンスモニタ６２０は、ドループ閾値を減少させ、供給電圧ＶＤＤを減少させる。ガードバンドは、５０ｍＶから３５ｍＶに減少する。ｔ２の時点において、パフォーマンスモニタ６２０は、ドループ閾値を増加させ、供給電圧ＶＤＤを増加させる。ガードバンドは、１５ｍＶから２５ｍＶに増加する。
【００５０】
[0068]  上記の例において、ドループ閾値が減少されたとき、パフォーマンスモニタ６２０は供給電圧ＶＤＤもまた減少させ、ドループ閾値が増加したとき、パフォーマンスモニタ６２０は供給電圧ＶＤＤもまた増加させる。
【００５１】
[0069]  別の例において、ドループ閾値が減少されたとき、パフォーマンスモニタ６２０は、供給電圧ＶＤＤをそのままにし得、入力クロック信号ＣＬＫ＿ＩＮの周波数（すなわち、ターゲットクロック周波数）を代わりに増加させる。入力クロック信号ＣＬＫ＿ＩＮの周波数を増加させることは、適正動作中、回路１１０（例えば、プロセッサ）のパフォーマンスを増加させる。入力クロック信号ＣＬＫ＿ＩＮの周波数を増加させることはまた、回路１１０の動作中に必要とされる最小電圧（例えば、タイミング要件を満たすために回路１１０のクリティカルパスに必要とされる最小電圧）を増加することによって、ガードバンドを低減し得る。
【００５２】
[0070]  この例において、ドループ閾値が増加したとき、パフォーマンスモニタ６２０は、供給電圧ＶＤＤをそのままにし得、入力クロック信号ＣＬＫ＿ＩＮの周波数（すなわち、ターゲットクロック周波数）を代わりに減少させる。入力クロック信号ＣＬＫ＿ＩＮの周波数を減少させることは、回路１１０の動作に必要とされる最小電圧（例えば、タイミング要件を満たすために回路１１０でのクリティカルパスに必要とされる最小電圧）を減少させることによって、ガードバンドを増加させる。これは、入力クロック信号ＣＬＫ＿ＩＮの周波数における減少が回路１１０のクリティカルパスのタイミング要件を緩和させるためである。
【００５３】
[0071]  クロックソース４５０は、（例えば、１つまたは複数の位相ロックループ（ＰＬＬ）を使用して）基準クロック周波数とは異なる複数のクロック周波数のうちの任意の１つを生成するように構成され得る。この例において、パフォーマンスモニタ６２０は、クロックソース４５０に指示（例えば、リクエスト）を送って入力クロック信号ＣＬＫ＿ＩＮのクロック周波数を現在のクロック周波数よりも高い複数のクロック周波数のうちの１つに設定することによって入力クロック信号ＣＬＫ＿ＩＮの周波数を増加させ得る。パフォーマンスモニタ６２０は、クロックソース４５０に指示（例えば、リクエスト）を送って入力クロック信号ＣＬＫ＿ＩＮのクロック周波数を現在のクロック周波数よりも低い複数のクロック周波数のうちの１つに設定することによって入力クロック信号ＣＬＫ＿ＩＮのクロック周波数を減少させ得る。
【００５４】
[0072]  図９Ａは、ある特定の態様に従った、ドループ閾値を調整するための方法９００を図示するフローチャートである。方法９００は、パフォーマンスモニタ６２０によって行われ得る。
【００５５】
[0073]  ステップ９１０おいて、パフォーマンスモニタ６２０は、ある時間の持続期間内にドループ緩和が行われるクロックサイクルの数を追跡する。ステップ９１０は、図７Ａを参照して上述されるステップ７１０と同じであり得る。
【００５６】
[0074]  ステップ９２０において、パフォーマンスモニタ６２０は、クロックサイクルの数が第１の閾値数に等しいまたはそれを下回るか否かを決定する。クロックサイクルの数が第１の閾値数に等しいまたはそれを下回る場合、パフォーマンスモニタ６２０は、ステップ９２５において、ドループ閾値を減少させ、入力クロック信号ＣＬＫ＿ＩＮの周波数を増加させる（ターゲットクロック周波数を増加させる）。
【００５７】
[0075]  ステップ９３０において、パフォーマンスモニタ６２０は、クロックサイクルの数が第２の閾値数に等しいまたはそれを上回るか否かを決定する。第２の閾値数は、第１の閾値数よりも大きい可能性がある。クロックサイクルの数が第２の閾値数に等しいまたはそれを上回る場合、パフォーマンスモニタ６２０はステップ９３５においてドループ閾値を増加させ、入力クロック信号ＣＬＫ＿ＩＮの周波数を減少させる（ターゲットクロック周波数を減少させる）。
【００５８】
[0076]  ステップ９４０において、パフォーマンスモニタ６２０は、ステップ９２０と９３０の条件のいずれも満たされない（すなわち、クロックサイクルの数が第１の閾値数と第２の閾値数との間にある）場合、ドループ閾値およびクロック周波数をそのままにし得る。パフォーマンスモニタ６２０が図９Ａに示される例示的な順序でそれらステップを行うことを限定されるものではなく、異なる順序でそれらステップを行い得ることが認識されるべきである。
【００５９】
[0077]  図９Ｂは、ある特定の態様に従った、ドループ閾値を調整するための方法９５０を図示するフローチャートである。方法９５０は、パフォーマンスモニタ６２０によって行われ得る。
【００６０】
[0078]  ステップ９６０おいて、パフォーマンスモニタ６２０は、ある時間の持続期間内にドループ緩和が行われるクロックサイクルの回数を追跡する。ステップ９６０は、図７Ｂを参照して上述されるステップ７６０と同じであり得る。
【００６１】
[0079]  ステップ９７０において、パフォーマンスモニタ６２０は、ドループ緩和が行われる回数が第１の閾値数に等しいまたはそれを下回るか否かを決定する。ドループ緩和が行われる回数が第１の閾値数に等しいまたはそれを下回る場合、パフォーマンスモニタ６２０は、ステップ９７５において、ドループ閾値を減少させ、入力クロック信号ＣＬＫ＿ＩＮの周波数を増加させる（ターゲットクロック周波数を増加させる）。
【００６２】
[0080]  ステップ９８０において、パフォーマンスモニタ６２０は、ドループ緩和が行われる回数が第２の閾値数に等しいまたはそれを上回るか否かを決定する。第２の閾値数は、第１の閾値数よりも大きい可能性がある。ドループ緩和が行われる回数が第２の閾値数に等しいまたはそれを上回る場合、パフォーマンスモニタ６２０は、ステップ９８５において、ドループ閾値を増加させ、入力クロック信号ＣＬＫ＿ＩＮの周波数を減少させる（ターゲットクロック周波数を減少させる）。
【００６３】
[0081]  ステップ９９０において、パフォーマンスモニタ６２０は、ステップ９７０と９８０の条件のいずれも満たされない（すなわち、ドループ緩和が行われる回数が第１の閾値数と第２の閾値数との間にある）場合、ドループ閾値およびクロック周波数をそのままにし得る。パフォーマンスモニタ６２０が図９Ｂに示される例示的な順序でそれらステップを行うことを限定されるものではなく、異なる順序でそれらステップを行い得ることが認識されるべきである。
【００６４】
[0082]  本開示が上述された例に限定されないことが認識されるべきである。例えば、ドループ閾値が減少されたとき、パフォーマンスモニタ６２０は、供給電圧ＶＤＤを減少させ、入力クロック信号ＣＬＫ＿ＩＮの周波数を増加させ得る。ドループ閾値が増加されたとき、パフォーマンスモニタ６２０は、供給電圧ＶＤＤを増加させ、入力クロック信号ＣＬＫ＿ＩＮの周波数を減少させ得る。
【００６５】
[0083]  一例において、回路１１０のための最大供給電圧レベルが存在し得る。最大供給電圧レベルは、電源および／またはパフォーマンスモニタが供給電圧ＶＤＤを設定するように構成される最大供給電圧レベルであり得る。この例において、ドループ閾値が増加されたとき、パフォーマンスモニタ６２０は、現在の供給電圧レベルが最大供給電圧レベルであるか否かに依存して、入力クロック信号ＣＬＫ＿ＩＮの周波数を減少させるか、または供給電圧ＶＤＤを増加させるかのいずれかを行い得る。現在の供給電圧レベルが最大供給電圧レベルを下回る場合、パフォーマンスモニタ６２０は、供給電圧ＶＤＤを増加させる。現在の供給電圧レベルがすでに最大供給電圧レベルである場合、パフォーマンスモニタ６２０は、入力クロック信号ＣＬＫ＿ＩＮの周波数を減少させる。
【００６６】
[0084]  別の例では、回路１１０のための最小供給電圧レベルが存在し得る。最小供給電圧レベルは、電源および／またはパフォーマンスモニタが供給電圧ＶＤＤを設定するように構成される最小供給電圧レベルであり得る。この例では、ドループ閾値が減少されたとき、パフォーマンスモニタ６２０は、現在の供給電圧レベルが最小供給電圧レベルであるか否かに依存して、入力クロック信号ＣＬＫ＿ＩＮのクロック周波数を増加させるか、または供給電圧ＶＤＤを減少させるかのいずれかを行い得る。現在の供給電圧レベルが最小供給電圧レベルを上回る場合、パフォーマンスモニタ６２０は、供給電圧ＶＤＤを減少させる。現在の供給電圧レベルがすでに最小供給電圧レベルである場合、パフォーマンスモニタ６２０は、入力クロック信号ＣＬＫ＿ＩＮの周波数を増加させる。
【００６７】
[0085]  別の例では、回路１１０のための最小クロック周波数が存在し得る。最小クロック周波数は、入力クロック信号のためにクロックソースおよび／またはパフォーマンスモニタが設定されるように構成される最小クロック周波数であり得る。この例では、ドループ閾値が増加されたとき、パフォーマンスモニタ６２０は、入力クロック信号ＣＬＫ＿ＩＮの周波数が最小クロック周波数であるか否かに依存して、入力クロック信号ＣＬＫ＿ＩＮの周波数を減少させるか、または供給電圧ＶＤＤを増加させるかのいずれかを行い得る。入力クロック信号ＣＬＫ＿ＩＮのクロック周波数が最小クロック周波数を上回る場合、パフォーマンスモニタ６２０は、入力クロック信号ＣＬＫ＿ＩＮの周波数を減少させる。入力クロック信号ＣＬＫ＿ＩＮのクロック周波数が既に最小クロック周波数である場合、パフォーマンスモニタは、供給電圧を増加させる。
【００６８】
[0086]  別の例では、回路１１０のための最大クロック周波数が存在し得る。最大クロック周波数は、入力クロック信号のためにクロックソースおよび／またはパフォーマンスモニタが設定されるように構成される最大クロック周波数であり得る。この例において、ドループ閾値が減少したとき、パフォーマンスモニタ６２０は、入力クロック信号ＣＬＫ＿ＩＮの周波数が最大クロック周波数であるか否かに依存して、入力クロック信号ＣＬＫ＿ＩＮの周波数を増加させるか、または供給電圧ＶＤＤを減少させるかのいずれかを行い得る。入力クロック信号ＣＬＫ＿ＩＮのクロック周波数が最大クロック周波数を下回る場合、パフォーマンスモニタ６２０は、入力クロック信号ＣＬＫ＿ＩＮの周波数を増加させる。入力クロック信号ＣＬＫ＿ＩＮのクロック周波数が既に最大クロック周波数である場合、パフォーマンスモニタは、供給電圧を増加させる。
【００６９】
[0087]  図１０は、本開示のある特定の態様に従った、クロックレデューサ４３０の例示的な具体例を示す。この例において、クロックレデューサ４３０は、制御ユニット１０１０、マルチプレクサ１０２０、およびクロックディバイダ１０３０を含む。クロックディバイダ１０３０は、入力クロック信号ＣＬＫ＿ＩＮを受け取り、低減された周波数クロック信号を生成するために入力クロック信号ＣＬＫ＿ＩＮの周波数を低減するように構成され得る。マルチプレクサ１０２０は、入力クロック信号ＣＬＫ＿ＩＮを受信するように構成された第１の入力１０２２、クロックディバイダ１０３０からの低減された周波数クロック信号を受け取るように構成された第２の入力１０２４、および回路１１０に出力クロック信号ＣＬＫ＿ＯＵＴを出力するように構成された出力１０２６を有する。マルチプレクサ１０２０は、入力クロック信号ＣＬＫ＿ＩＮと低減された周波数クロック信号とのうちの１つを選択するように、および制御ユニット１０１０の制御下で、入力クロック信号ＣＬＫ＿ＩＮと低減された周波数クロック信号のうちの選択された１つを回路１１０に出力するように構成される。制御ユニット１０１０は、以下でさらに説明されるように、電圧ドループモニタ４２０から信号を受け取るように、およびその信号に基づいてクロックディバイダ１０３０およびマルチプレクサ１０２０の動作を制御するように構成される。
【００７０】
[0088]  動作において、電圧ドループモニタ４２０は、第１のモードでクロックレデューサ４３０を動作させるよう制御ユニット１０１０に指示するために、制御ユニット１０１０に第１の論理値（例えば、ゼロ）を出力し、第２のモードでクロックレデューサ４３０を動作させるよう制御ユニット１０１０に指示するために、制御ユニット１０１０に第２の論理値（例えば、１）を出力し得る。
【００７１】
[0089]  制御ユニット１０１０が第１の論理値を受け取ったとき、制御ユニット１０１０は、入力クロック信号ＣＬＫ＿ＩＮを選択するようマルチプレクサ１０２０に指示するマルチプレクサ１０２６への選択信号（「Ｓｅｌ」と表記される）を送る。このケースではマルチプレクサ１０２０は、回路１１０に入力クロック信号ＣＬＫ＿ＩＮをわたす。この時間中、クロックディバイダ１０３０は、電力を節約するためにディセーブルされ得る。
【００７２】
[0090]  電圧ドループモニタ４２０からの信号がドループ緩和をトリガするために第１の論理値から第２の論理値に変化したとき、制御ユニット１０１０は、クロックディバイダ１０３０をイネーブルし、第１の入力１０２２から第２の入力１０２４にマルチプレクサ１０２０を切り替える。制御ユニット１０１０は、入力クロック信号ＣＬＫ＿ＩＮおよび低減された周波数クロック信号がマルチプレクサ１０２０の出力における不具合を避けるために論理的ロー（logically low）であるとき、切り替えが発生するように、入力クロック信号ＣＬＫ＿ＩＮから低減された周波数クロック信号への切り替えの時間を決め（time）得る。
【００７３】
[0091]  電圧ドループモニタ４２０からの信号が第２の論理値からもとの第１の論理値へと変化したとき、制御ユニットは、もとの入力クロック信号ＣＬＫ＿ＩＮに切り替わる。制御ユニット１０１０は、低減された周波数クロック信号および入力クロック信号ＣＬＫ＿ＩＮがマルチプレクサ１０２０の出力における不具合を避けるために論理的ローであるとき、切り替えが発生するように、低減された周波数クロック信号からもとの入力クロック信号ＣＬＫへの切り替えの時間を決め得る。その切り替えの後、制御ユニット１０１０は、クロックディバイダ１０３０をディセーブルし得る。
【００７４】
[0092]  図１１は、本開示のある特定の態様に従った、クロックディバイダ１０３０の例示的な具体例を示す。この例において、クロックディバイダ１０３０は、クロック信号ＣＬＫ＿ＩＮの周波数を２で除算する（すなわち、クロック信号ＣＬＫ＿ＩＮの周波数を５０％低減する）ように構成される。クロックディバイダ１０３０は、フリップフロップ１１１０、インバータ１１３０、およびＡＮＤゲート１１２０を含む。ＡＮＤゲート１１２０は、第１の入力１１２２、制御ユニット１０１０からイネーブル信号（「Ｅｎ＿ｃ」と表記される）を受け取る第２の入力１１２４、および出力１１２６を有する。フリップフロップ１１１０は、ＡＮＤゲートの出力１１２６に結合されたデータ入力１１１２、入力クロック信号ＣＬＫ＿ＩＮを受け取るクロック入力１１１４、および低減された周波数クロック信号を出力する出力１１１６（「ＣＬＫ＿ｄｉｖ」と表記される）を有する。フリップフロップ１１１０は、入力クロック信号ＣＬＫ＿ＩＮの各立ち上がりエッジ上の入力１１１２において論理値をラッチし、入力クロック信号ＣＬＫ＿ＩＮの１期間（サイクル）に関するラッチされた論理値を出力するように構成される。ＡＮＤゲート１１２０の第１の入力１１２２は、インバータ１１３０を介してフリップフロップ１１１０の出力１１１６に結合される。
【００７５】
[0093]  動作において、制御ユニット１０１０は、イネーブル信号Ｅｎ＿ｃの論理値をゼロにすることによって、クロックディバイダ１０３０をディセーブルする。これは、ＡＮＤゲート１１２０に、ゼロの論理値をフリップフロップ１１１０に出力させ、よって、フリップフロップ１１１０に、ゼロの論理値を出力させる。従って、制御ユニット１０１０がクロックディバイダ１０３０をディセーブルするとき、クロックディバイダ１０３０の出力を論理的ローのままにする。
【００７６】
[0094]  制御ユニット１０１０は、イネーブル信号Ｅｎ＿ｃの論理値を１にすることによって、クロックディバイダ１０３０をイネーブルする。これは、フリップフロップ１１１０の出力に、入力クロック信号ＣＬＫ＿ＩＮの各立ち上がりエッジにおける論理状態を切り替えることを行わせる。結果として、（低減された周波数クロック信号ＣＬＫ＿ｄｉｖを出力する）フリップフロップ１１１０の出力は、入力クロック信号ＣＬＫ＿ＩＮの周波数の半分で論理状態を切り替える。よって、低減された周波数クロック信号ＣＬＫ＿ｄｉｖは、入力クロック信号ＣＬＫ＿ＩＮのクロック周波数の半分であるクロック周波数を有する。
【００７７】
[0095]  図１２は、本開示のある特定の態様に従った、電圧ドループモニタ４２０が電圧ベースのドループ検出を使用する例を示す。この例において、電圧ドループモニタ４２０は、電圧検出器１２１０およびモニタユニット１２２０を含む。電圧検出器１２１０は、供給電圧ＶＤＤの電圧レベルを測定し、測定された電圧レベルをモニタユニット１２２０に出力するように構成される。
【００７８】
[0096]  モニタユニット１２２０は、測定された電圧レベルを閾値電圧レベルと比較し、ここで、ドループ閾値が供給電圧ＶＤＤのターゲット電圧レベル（すなわち、ドループを有さない電圧レベル）と閾値電圧レベルとの間の差分の大きさに対応する。例えば、ターゲット電圧レベルが９００ｍＶであり、閾値電圧レベルが８５０ｍＶである場合、ドループ閾値は、約５０ｍＶである。
【００７９】
[0097]  測定された電圧レベルが閾値電圧レベルを上回る場合、モニタユニット１２２０は影響を受けない。これは、供給電圧における電圧ドループの大きさがドループ閾値を下回るときに発生する。測定された電圧レベルが閾値電圧レベルに等しいまたはそれを下回る場合、モニタユニット１２２０は、ドループ緩和をトリガする（例えば、第２のモードにおいてクロックレデューサ４３０を動作させるために、第２の論理値をクロックレデューサ４２０に出力する）。これは、電圧ドループの大きさがドループ閾値以上であるときに発生する。
【００８０】
[0098]  この例において、パフォーマンスモニタ６２０は、閾値電圧レベルを増加させること、供給電圧ＶＤＤを減少させること、または両方によって、ドループ閾値を減少させ得る。パフォーマンスモニタ６２０は、供給電圧ＶＤＤの供給電圧レベルを現在の電圧レベルよりも低い電圧レベルに設定するよう、電源１２０への指示を送ることによって、供給電圧ＶＤＤを減少させ得る。この例では、パフォーマンスモニタ６２０がドループ閾値を減少させたとき、パフォーマンスモニタ６２０は、ドループ閾値と同じ量または異なる量によって、供給電圧を減少させ得る。
【００８１】
[0099]  この例において、パフォーマンスモニタ６２０は、閾値電圧レベルを減少させること、供給電圧ＶＤＤを増加させること、または両方によって、ドループ閾値を増加させ得る。パフォーマンスモニタ６２０は、供給電圧ＶＤＤの供給電圧レベルを現在の電圧レベルよりも高い電圧レベルに設定するよう、電源１２０への指示を送ることによって、供給電圧ＶＤＤを増加させ得る。この例において、パフォーマンスモニタ６２０がドループ閾値を増加させたとき、パフォーマンスモニタ６２０は、ドループ閾値と同じ量または異なる量によって、供給電圧を増加させ得る。
【００８２】
[0100]  図１３は、入力クロック信号ＣＬＫ＿ＩＮがクロック遅延デバイス１３１０を介してクロックレデューサ４３０に送られる例を示す。以下でさらに説明されるように、クロック遅延デバイス１３１０は、電圧ドループイベントに応答するために、より多くの時間を電圧ドループモニタ４２０に提供するようにクロックデータ補償効果（clock-data compensation effect）を利用する。クロック遅延デバイス１３１０は、クロックソース４５０とクロックレデューサ４３０との間のクロックパスに沿った複数のバッファ１３２０−１から１３２０−ｎ（すなわち、インバータ）を含む。各バッファは、入力クロック信号ＣＬＫ＿ＩＮに時間遅延を追加する。よって、クロック遅延デバイス１３１０は、バッファ１３２０−１から１３２０−ｎの遅延の合計にほぼ等しい遅延によって、入力クロック信号ＣＬＫ＿ＩＮを遅延させる。バッファ１３２０−１から１３２０−ｎの各々は、供給電圧ＶＤＤによって電力供給される。結果として、バッファ１３２０−１から１３２０−ｎの遅延は、供給電圧ＶＤＤにおける電圧ドループの影響を受ける。
【００８３】
[0101]  供給電圧ＶＤＤにおいて電圧ドループが発生したとき、クロック遅延デバイス１３１０におけるバッファ１３２０−１から１３２０の遅延が増加する。これは、クロック遅延デバイス１３１０の出力におけるクロック期間を引き延ばし（stretch）、電圧ドループによって引き起こされる回路１１０中のクリティカルパスの遅延における増加を補償する。この事象は、クロックデータ補償効果として知られる。この効果は、一時的である（例えば、いくつかのクロックサイクルに関して続く）。一時的である一方、回路１１０のクリティカルパス遅延の効率減少を延期することによって、電圧ドループが回路１１０におけるタイミングエラーを引き起こす前に、クロックデータ補償効果は、電圧ドループに応答するためのより多くの時間を電圧ドループモニタ４２０に提供する。ある特定の態様において、クロック遅延デバイス１３１０は、入力クロック信号ＣＬＫ＿ＩＮの遅延を調整するために、調節可能な遅延を有する遅延デバイスを用いて実現され得る。
【００８４】
[0102]  図１４は、本開示のある特定の態様に従った、電圧ドループモニタ４２０がタイミングベースのドループ検出を使用する例を示す。この例において、電圧ドループモニタ４２０は、駆動回路１４１０、調節可能な遅延デバイス１４２２、受け取りフリップフロップ１４５０、１４５５、および１４６０、並びにエラー検出回路１４２０を含む。電圧ドループモニタ４２０はまた、ＡＮＤゲート１４３０、第１の微調節可能な遅延デバイス１４３５（first fine tunable delay device 1435）、ＯＲゲート１４４０、並びに、第２の微調節可能な遅延デバイス１４４５を有し得る。
【００８５】
[0103]  駆動回路１４１０は、イネーブル信号（「Ｅｎ＿ｍ」と表記される）および入力クロック信号ＣＬＫ＿ＩＮを受け取る。遅延デバイス１３１０がクロックレデューサ４３０への入力クロック信号ＣＬＫ＿ＩＮを遅延させる例に関して、図１４に示される入力クロック信号ＣＬＫ＿ＩＮは、遅延デバイス１３１０をバイパスし得る。駆動回路１４１０は、クロック信号ＣＬＫ＿ＩＮの各立ち上がりエッジにおいて論理状態を切り替える（トグルする）データ信号（「ｄｉｎ」と表記される）を出力するように構成される。
【００８６】
[0104]  図１４中の例において、駆動回路１４１０は、駆動フリップフロップ１４１５、インバータ１４１８、およびＡＮＤゲート１４１２を含む。ＡＮＤゲート１４１２は、インバータ１４１８を介して駆動フリップフロップ１４１５の出力に結合される１つの入力、イネーブル信号Ｅｎ＿ｍに結合される別の入力、および駆動フリップフロップ１４１５のデータ入力に結合される出力を有する。駆動フリップフロップ１４１５のクロック入力は、入力クロック信号ＣＬＫ＿ＩＮによって駆動される。
【００８７】
[0105]  動作において、駆動回路１４１０は、イネーブル信号Ｅｎ＿ｍが１であるときに、イネーブルされる。このケースにおいて、駆動回路１４１０は、入力クロック信号ＣＬＫ＿ＩＮの各立ち上がりエッジにおいて、論理状態を切り替える（トグルする）データ信号ｄｉｎを出力する。駆動回路１４１０は、イネーブル信号Ｅｎ＿ｍがゼロであるときに、ディセーブルされる。このケースにおいて、駆動回路１４１０の出力は、論理的ローを維持する。
【００８８】
[0106]  駆動回路１４１０の出力は、高速パス１４２７を介して（チェックフリップフロップとも呼ばれる）受け取りフリップフロップ１４５０のデータ入力に結合され、それは、調節可能な遅延デバイス１４２２よりもさらに短い遅延を有する。高速パス１４２７の短い遅延は、大きい電圧ドループが存在したとしても、チェックフリップフロップ１４５０におけるセットアップ時間を満たすのに十分早いチェックフリップフロップ１４５０にデータ信号ｄｉｎが到達することを保証する。以下でさらに説明されるように、チェックフリップフロップ１４５０の出力は、電圧ドループによってタイミングエラーを検出するために、エラー検出回路１４２０によって使用される。
【００８９】
[0107]  駆動回路１４１０の出力はまた、調節可能な遅延デバイス１４２２、ＡＮＤゲート１４３０、および第１の調整可能な遅延デバイス１４３５を含む第１の遅延パスを介して、受け取りフリップフロップ１４５５（立ち上がりフリップフロップとも呼ばれる）のデータ入力に結合される。ＡＮＤゲート１４３０は、図１４に示されるように、高速パス１４２７に結合された第１の入力と、調節可能な遅延デバイス１４２２の出力に結合される第２の入力とを有する。第１の調節可能なデバイス１４３５は、ＡＮＤゲート１４３０の出力と立ち上がりフリップフロップ１４５５のデータ入力との間に結合される。
【００９０】
[0108]  駆動回路１４１０の出力はまた、調節可能な遅延デバイス１４２２、ＯＲゲート１４４０、および第２の調節可能な遅延デバイス１４４５を含む第２の遅延パスを介して、受け取りフリップフロップ１４６０（立ち下がりフリップフロップとも呼ばれる）のデータ入力に結合される。ＯＲゲート１４４０は、図１４に示されるように、高速パス１４２７に結合された第１の入力と、調節可能な遅延デバイス１４２２の出力に結合された第２の入力とを有する。第２の微調節可能な遅延デバイス１４４５は、ＯＲゲート１４４０の出力と立ち下がりフリップフロップ１４６０のデータ入力との間で結合される。
【００９１】
[0109]  受け取りフリップフロップ１４５０、１４５５、および１４６０の各々のクロック入力は、クロック信号ＣＬＫ＿ＩＮによって駆動される。一例において、受け取りフリップフロップの各々は、クロック信号ＣＬＫ＿ＩＮの各アクティブなエッジ上のそれぞれのデータ入力において論理値をラッチ（キャプチャ）するように構成される。各アクティブなエッジは、受け取りフリップフロップがポジティブエッジトリガされた場合、クロック信号ＣＬＫ＿ＩＮの立ち上がりエッジであり得る。別の例において、各アクティブなエッジは、受け取りフリップフロップがネガティブエッジトリガされた場合にクロック信号ＣＬＫ＿ＩＮの立ち下がりエッジであり得る。この例において、駆動回路１４１０は、クロック信号ＣＬＫ＿ＩＮの立ち上がりエッジの代わりに、クロック信号ＣＬＫ＿ＩＮの立ち下がりエッジにおいてデータ信号を切り替える（トグルする）ように構成され得る。
【００９２】
[0110]  エラー検出回路１４２０は、受け取りフリップフロップ１４５０、１４５５、および１４６０の出力に結合される。以下でさらに説明されるように、エラー検出回路１４２０は、第１の遅延パスにおけるタイミングエラーおよび／または電圧ドループによる第２の遅延パスにおけるタイミングエラーを検出するために、受け取りフリップフロップ１４５０、１４５５、および１４６０の出力において論理値を検査する。
【００９３】
[0111]  以下でさらに説明されるように、調節可能な遅延デバイス１４２２の時間遅延は、第１および第２の遅延パスのためのタイミングマージンを決定する。タイミングマージンは、データ信号ｄｉｎが立ち上がりフリップフロップ１４５５および立ち下がりフリップフロップ４６０においてタイミング要件（例えば、セットアップ時間）を満たす時間の量に対応する。調節可能なデバイス１４２２の時間遅延が短くなるほど、タイミングマージンはより大きくなり、調節可能なデバイス１４２２の時間遅延が長くなるほど、タイミングマージンはより小さくなる。よって、タイミングマージンは、以下でさらに説明されるように、調節可能な遅延デバイス１４２２の時間遅延を調整する（調節する）ことによって調整され得る。
【００９４】
[0112]  本開示のある特定の態様に従って、タイミングベースのドループモニタの動作がこれから説明される。
【００９５】
[0113]  データ信号ｄｉｎの立ち上がりエッジに関して、データ信号ｄｉｎは、高速パス１４２７を介して駆動回路１４１０からチェックフリップフロップ１４５０のデータ入力に瞬時に伝搬する。データ信号ｄｉｎはまた、高速パス１４２７を介して立ち下がりフリップフロップ１４６０、ＯＲゲート１４４０、および第２の微調節可能な遅延デバイス１４４５のデータ入力に瞬時に伝搬する。これは、ＯＲゲート１４４０が、第２の微調節可能な遅延デバイス１４４５を介して立ち下がりフリップフロップ１４６０のデータ入力に、高速パス１４２７上のデータ信号ｄｉｎの立ち上がりエッジをわたすためである。よって、データ信号ｄｉｎの立ち上がりエッジは、立ち下がりフリップフロップ１４６０のための調節可能な遅延デバイス１４２２をバイパスする。結果として、チェックフリップフロップ１４５０と立ち下がりフリップフロップの両方が、クロック信号ＣＬＫ＿ＩＮの次の立ち上がりエッジ上の１の論理値を正しくラッチする。立ち下がりフリップフロップ１４６０によってラッチされた１の論理値は、以下でさらに説明されるように、後続のクロックサイクルのために立ち下がりフリップフロップ１４６０をセットアップする。
【００９６】
[0114]  データ信号ｄｉｎの立ち上がりエッジに関して、データ信号ｄｉｎは、調節可能な遅延デバイス１４２２、ＡＮＤゲート１４３０、および第２の調節可能な遅延デバイス１４３５を含む第１の遅延パスを通じて、立ち上がりフリップフロップ１４５５のデータ入力に伝搬する。これは、ＡＮＤゲート１４３０が立ち上がりフリップフロップ１４５５から高速パス１４２７上の立ち上がりエッジをブロックするためである。立ち上がりフリップフロップ１４５５は、立ち上がりフリップフロップ１４５５におけるセットアップ時間を満たす時間までにデータ信号ｄｉｎの立ち上がりエッジが立ち上がりフリップフロップ１４５５のデータ入力に到達する場合、クロック信号ＣＬＫ＿ＩＮの次の立ち上がりエッジ上の１の論理値を正確にラッチする。
【００９７】
[0115]  エラー検出回路１４２０は次いで、データ信号ｄｉｎの立ち上がりエッジに関してタイミングが満たされるか否かを決定するために、チェックフリップフロップ１４５０の出力を立ち上がりフリップフロップ１４５５の出力と比較する。両方の出力が同じ（論理１）である場合、エラー検出回路１４２０は、タイミングが満たされていると決定する。出力が異なる場合、以下でさらに説明されるように、エラー検出回路１４２０は、（例えば、電圧ドループのために）タイミングが満たされていないと決定する。
【００９８】
[0116]  データ信号ｄｉｎの立ち下がりエッジに関して、データ信号ｄｉｎは、高速パス１４２７を介して駆動回路１４１０からチェックフリップフロップ１４５０のデータ入力に瞬時に伝搬する。データ信号ｄｉｎはまた、高速パス１４２７を介して立ち上がりフリップフロップ１４５５、ＡＮＤゲート１４３０、および第１の微調節可能な遅延デバイス１４３５のデータ入力に瞬時に伝搬する。これは、ＡＮＤゲート１４３０の出力が高速パス１４２７上のデータ信号ｄｉｎの立ち下がりエッジに下降する（fall）ためである。よって、データ信号ｄｉｎの立ち下がりエッジは、立ち上がりフリップフロップ１４５５のための調節可能な遅延デバイス１４２２をバイパスする。結果として、チェックフリップフロップ１４５０と立ち上がりフリップフロップ１４５５の両方が、クロック信号ＣＬＫ＿ＩＮの次の立ち上がりエッジ上のゼロの論理値を正しくラッチする。立ち上がりフリップフロップ１４５５によってラッチされたゼロの論理値は、後続のクロックサイクルのための立ち上がりフリップフロップをセットアップする。
【００９９】
[0117]  データ信号ｄｉｎの立ち下がりエッジに関して、データ信号ｄｉｎは、調節可能な遅延デバイス１４２２、ＯＲゲート１４４０、および第２の調節可能な遅延デバイス１４４５を含む第２の遅延パスを通じて、立ち下がりフリップフロップ１４６０のデータ入力に伝搬する。これは、ＯＲゲート１４４０の出力が調節可能な遅延デバイス１４２２の出力からデータ信号ｄｉｎの立ち下がりエッジを受け取るまで、ＯＲゲート１４４０の出力が下がらないためである。立ち下がりフリップフロップ１４６０は、立ち下がりフリップフロップ１４６０におけるセットアップ時間を満たす時間までに、データ信号ｄｉｎの立ち下がりエッジが立ち下がりフリップフロップ１４６０のデータ入力に到達する場合、クロック信号ＣＬＫ＿ＩＮの次の立ち上がりエッジ上のゼロの論理値を正確にラッチする。
【０１００】
[0118]  エラー検出回路１４２０は次いで、データ信号ｄｉｎの立ち上がりエッジに関してタイミングが満たされるか否かを決定するために、チェックフリップフロップ１４５０の出力を立ち下がりフリップフロップ１４６０の出力と比較する。両方の出力が同じ（論理ゼロ）である場合、エラー検出回路１４２０は、タイミングが満たされていることを決定する。出力が異なる場合、エラー検出回路１４２０は、（例えば、電圧ドループのために）タイミングが満たされていないと決定する。
【０１０１】
[0119]  ある特定の態様において、調節可能な遅延デバイス１４２２の遅延時間は、ターゲット供給電圧レベルにおいて、第１および第２の遅延パスのために特定のタイミングマージンを提供するように設定され得る。調節可能な遅延デバイス１４２２が両方の遅延パスに共通であるため、タイミングマージンは、両方の遅延パスに共通である。調節可能な遅延デバイス１４２２は、電圧ドループのために供給電圧レベルが減少するとき、バッファの遅延が増加するように、供給電圧ＶＤＤによって電力供給される複数のバッファを含む。結果として、調節可能な遅延デバイス１４２２の遅延は、（回路１１０における遅延パスと同様に）供給電圧において電圧ドループの影響を受ける。一般に、調節可能な遅延デバイス１４２２の遅延は、電圧ドループのために供給電圧レベルが減少するときに増加する。電圧ドループの大きさが十分に大きい場合、第１の遅延パスおよび／または第２の遅延パスは、もはやタイミングを満たさない地点に到達する。エラー検出回路１４２０は、チェックフリップフロップ１４５０の出力と立ち上がりフリップフロップ１４５５の出力との間の差、および／または、チェックフリップフロップ１４５０の出力と立ち下がりフリップフロップ１４６０の出力との間の差を検出することによって、これを検出する。これが発生したとき、エラー検出回路１４２０は、以下でさらに説明されるように、ドループ緩和をトリガするためにエラー信号を出力する。
【０１０２】
[0120]  タイミングマージンは、タイミングエラーを引き起こすために必要とされる電圧ドループの電圧緩和の大きさを決定する。タイミングマージンが大きいほど、タイミングエラーを引き起こすために必要とされる電圧の大きさが大きくなり、タイミングマージンが小さいほど、タイミングエラーを引き起こすために必要とされる電圧ドループの大きさが小さくなる。上述されるように、タイミングマージンは、調節可能な遅延デバイス１４２２の遅延を調整する（調節する）ことによって調整され、ここで、遅延を増加させることは、タイミングマージンを減少させ、遅延を減少させることは、タイミングマージンを増加させる。よって、タイミングエラーを引き起こすために必要とされる電圧ドループの大きさは、調節可能な遅延デバイス１４２２の遅延を調整することによって、調整され得る。遅延が短いほど、タイミングエラーを引き起こすために必要とされる電圧ドループの大きさが大きくなり、遅延が長いほど、タイミングエラーを引き起こすために必要とされる電圧ドループの大きさが小さくなる。
【０１０３】
[0121]  この例において、電圧ドループモニタのドループ閾値は、タイミングエラーを引き起こすために必要とされる電圧ドループの大きさとして定義され得る。よって、エラー検出回路１４２０は、供給電圧における電圧ドループがドループ閾値以上であるときに、エラー信号を出力する。
【０１０４】
[0122]  この例において、ドループ閾値は、調節可能な遅延デバイス１４２２の遅延を調整する（調節する）ことによって、調整され得る。遅延が短いほど、タイミングエラーを引き起こすために必要とされる電圧ドループの大きさは大きくなり（ゆえに、ドループ閾値がより大きくなる）、遅延が長いほど、タイミングエラーを引き起こすために必要とされる電圧ドループの大きさは小さくなる（ゆえに、ドループ閾値がより小さくなる）。よって、この例において、パフォーマンスモニタ６２０は、調節可能な遅延デバイス１４２２の遅延設定を減少させることによって、ドループ閾値を増加させ、調節可能な遅延デバイス１４２２の遅延設定を増加させることによってドループ閾値を減少させ得る。
【０１０５】
[0123]  上述されるように、エラー検出回路１４２０は、ドループ緩和をトリガするためにエラー信号を出力する。これに関して、クロックレデューサ４３０は、エラー信号を受け取るために、エラー検出回路１４２０の出力に結合され得る。クロックレデューサ４３０は、クロックレデューサ４３０がエラー検出回路１４２０からエラー信号を受け取ったとき、第２のモードで動作する（すなわち、回路１１０におけるクロック周波数を低減する）ように構成され得る。クロックレデューサ４３０は、エラー信号が受け取られなかったとき、第１のモードで動作する（すなわち、入力クロック信号ＣＬＫ＿ＩＮを回路１１０にわたす）ように構成され得る。例えば、エラー信号は、１の論理値を有し得る。この例において、クロックレデューサ４３０は、エラー検出回路１４２０の出力がゼロからタイミングエラーを示す１に切り替わったとき、第１のモードから第２のモードに切り替わる。上述されるように、クロックレデューサ４３０へのクロック信号ＣＬＫ＿ＩＮは、電圧ドループモニタ４２０がクロックデータ補償効果を利用することによるドループに応答するためにより多くの時間を与えるように、遅延デバイス１３１０によって遅延され得る。
【０１０６】
[0124]  図１４における例において、エラー検出回路１４２０は、第１のＸＯＲゲート１４７０、第２のＸＯＲゲート１４７２、およびＯＲゲート１４７５を含む。第１のＸＯＲゲート１４７０は、チェックフリップフロップ１４５０の出力に結合された第１の入力と、立ち上がりフリップフロップ１４５５の出力に結合された第２の入力とを有する。第２のＸＯＲゲート１４７２は、チェックフリップフロップ１４５０の出力に結合された第１の入力と、立ち下がりフリップフロップ１４６０の出力に結合された第２の入力とを有する。ＯＲゲート１４７５は、第１のＸＯＲゲート１４７０の出力に結合された第１の入力と、第２のＸＯＲゲート１４７２の出力に結合された第２の入力とを有する。ＯＲゲート１４７５は、チェックフリップフロップ１４５０と立ち上がりフリップフロップ１４５５との出力が異なるとき、チェックフリップフロップ１４５０と立ち下がりフリップフロップ１４６０との出力が異なるとき、または両方で、論理１を出力する。結果として、ＯＲゲート１４７５は、タイミングエラーが存在するときに、論理１を出力する。よって、この例において、エラー信号は、１の論理値を有する。
【０１０７】
[0125]  エラー検出回路１４２０はまた、エラーフリップフロップ１４８０、ＯＲゲート１４８２、およびマルチプレクサ１４８５を含む。マルチプレクサ１４８５は、ＯＲゲート１４７５の出力に結合された第１の入力と、ＯＲゲート１４８２に結合された第２の入力とを有する。マルチプレクサ１４８５の出力は、上述されるエラー検出を出力する。
【０１０８】
[0126]  エラーフリップフロップ１４８０は、ＯＲゲート１４７５の出力に結合されたデータ入力と、クロック信号ＣＬＫ＿ＩＮによって駆動されるクロック入力とを有する。ＯＲゲート１４８２は、ＯＲゲート１４７５の出力に結合された第１の入力と、エラーフリップフロップ１４８０の出力に結合された第２の入力とを有する。よって、ＯＲゲート１４８２は、ＯＲゲート１４７５の現在の出力値が１であるか、（フリップフロップ１４８０によってラッチされた）前のクロックにおけるＯＲゲート１４７５の出力値が１であるか、または両方である場合、エラーを示す論理１を出力する。
【０１０９】
[0127]  マルチプレクサ１４８５は、エラーモード選択信号（「ｅｒｒｏｒ＿ｓｅｌ」と表記される）に従って、ＯＲゲート１４７５の出力またはＯＲゲート１４８２の出力を選択するように構成される。よって、エラー検出回路１４２０は、マルチプレクサ１４８５によって選択された出力に基づいて２つのモードのうちの１つにおいて動作できる。第１のモードにおいて、マルチプレクサ１４８５は、ＯＲゲート１４７５の出力を選択する。このモードにおいて、エラー検出回路１４２０は、ＯＲゲート１４７５によって出力された現在のエラー信号（current error signal）を出力する。第２のモードにおいて、マルチプレクサ１４８５は、ＯＲゲート１４８２の出力を選択する。このモードにおいて、エラー検出回路１４２０は、エラー信号の現在の論理値のＯＲと、エラーフリップフロップ１４８０によってラッチされたエラー信号の前の論理値とを出力する。
【０１１０】
[0128]  図１５は、本願のある特定の態様に従った、調節可能な遅延回路１４２２の例示的な具体例を示す。この例において、調節可能な遅延回路１４２２は、２つの遅延パス１５２０および１５３０を含み、第１のマルチプレクサ１５４０は、パス選択信号（「ｐａｔｈ＿ｓｅｌ」と表記される）に従って、遅延パスのうちの１つを選択するように構成される。パス１５２０は複数のバッファを含み、パス１５３０はバッファと相互接続遅延コンポーネントとの組み合わせを含む。バッファは、図１５に示されるように、供給電圧ＶＤＤによって電力供給される。
【０１１１】
[0129]  調節可能な遅延回路１４２２はまた、直列に結合された複数のバッファ１５５０−１〜１５５０−ｎからなる遅延チェーンと、第２のマルチプレクサ１５６０とを含む。各バッファは、インバータのペアによって実現され得る。第２のマルチプレクサ１５６０は、複数の入力を有し、ここで、各入力は、図１５に示されるような、遅延チェーン上の異なる地点（タップ）に結合される。結果として、第２のマルチプレクサ１５６０の入力の各々は、遅延チェーンにおいて、異なる数のバッファ１５５０−１〜１５５０−ｎ、ゆえに異なる遅延パスに結合される。この例において、マルチプレクサ１５６０は、時間遅延選択信号（「ｔｄ１」と表記される）に従って、遅延パス（ゆえに、対応する時間遅延）のうちの１つを選択し、調節可能な遅延デバイス１４２２の出力として選択された遅延パスにおいて信号を出力する。よって、調節可能な遅延デバイス１４２２の遅延は、時間遅延選択信号ｔｄ１を使用して、第２のマルチプレクサ１５６０によって選択された遅延パスを制御することによって調整される。これに関して、時間遅延選択信号ｔｄ１は、マルチビット遅延設定であり得、ここで、それらビットの値は、第２のマルチプレクサ１５６０によって選択された遅延パス、ゆえに調節可能な遅延デバイス１４２２の遅延特定をする。
【０１１２】
[0130]  図１５に示されるように、遅延チェーンにおける複数のバッファ１５５０−１〜１５５０−ｎは、供給電圧ＶＤＤによって電力供給される。よって、バッファ１５５０−１〜１５５０−ｎの遅延は、供給電圧におけるドループの影響を受ける。一般に、バッファの遅延は、電圧ドループの大きさが増加するときに増加する。
【０１１３】
[0131]  図１４を参照すると、調節可能な遅延デバイス１４２２の遅延設定は、上述される時間遅延選択信号ｔｄ１を使用して調整される。よって、この例において、パフォーマンスモニタ６２０は、時間遅延選択信号ｔｄ１を使用して、調節可能な遅延デバイス１４２２の遅延設定を調整することによって、ドループ閾値を調整し得る。例えば、パフォーマンスモニタ６２０は、調節可能な遅延デバイス１４２２の遅延設定を増加させることによってドループ閾値を減少させ得、それは、第１のおよび第２の遅延パスのタイミングマージンを低減させる。この例において、パフォーマンスモニタ６２０は、第２のマルチプレクサ１５６０により多くの数のバッファを有する遅延パスを選択させるために、時間遅延選択信号を調整すること（例えば、選択信号の１つまたは複数のビットを変更すること）によって、遅延設定を増加させ得る。別の例において、パフォーマンスモニタ６２０は、調節可能な遅延デバイス１４２２の遅延設定を減少させることによってドループ閾値を増加させ得、それは、第１および第２の遅延パスのタイミングマージンを増加させる。この例において、パフォーマンスモニタ６２０は、第２のマルチプレクサ１５６０により少ないバッファを用いて遅延パスを選択させるために、時間選択信号を調整すること（例えば、選択信号の複数のビットのうちの１つを変更すること）によって遅延設定を減少させ得る。
【０１１４】
[0132]  第１の微調節可能な遅延デバイス１４３５は、時間遅延選択信号ｔｄ２に従って、第１の遅延パスの遅延を微調節するように構成される。これに関して、第１の微調節可能な遅延デバイス１４３５は、より小さい遅延増分において、および調節可能な遅延デバイス１４２２よりも小さい範囲にわたって、第１の遅延パスの遅延の微調節を可能にする。例えば、第１の微調節可能な遅延デバイス１４３５の全体の調節可能な範囲はほぼ、調節可能な遅延デバイス１４２２におけるバッファのうちの１つの遅延にわたり得る。
【０１１５】
[0133]  第２の微調節可能な遅延デバイス１４４５は、時間遅延選択信号ｔｄ３に従って、第２の遅延パスの遅延を微調節するように構成される。これに関して、第２の微調節可能な遅延デバイス１４４５は、より小さい遅延増分において、および調節可能な遅延デバイス１４２２よりも小さい範囲にわたって、第２の遅延パスの遅延の微調節を可能にする。第１および第２の微調節可能な遅延デバイスは、第１の遅延パスおよび第２の遅延パスの遅延が、立ち上がりおよび立ち下がりセットアップ時間におけるわずかな差の原因となるわずかな範囲にわたって単独で調節されることを可能にする。
【０１１６】
[0134]  ある特定の態様では、入力クロック信号ＣＬＫ＿ＩＮの最初の供給電圧および／または最初の周波数において、電圧ドループモニタ４２０のための最初のタイミングマージン（ゆえに、ドループ閾値）を設定するために、電圧ドループモニタ４２０において自動較正プロシージャが行われ得る。自動較正プロシージャは、電圧ドループ緩和回路４１０が較正中にドループ緩和を行うことができない可能性があるため、較正中にセーフモードで回路１１０を動作させること（例えば、低減されたクロック周波数において回路１１０を動作させること）を含み得る。自動較正プロシージャはまた、ほぼゼロのタイミングマージンをもたらす遅延デバイス１４２２、１４３５、および１４４５の遅延設定を発見することを含み得る。これは、エラー検出回路１４２０の出力において、エラーのない信号をもたらす最も高い遅延設定を発見するために、エラー検出回路１４２０の出力を観測する一方、遅延デバイス１４２２、１４３５、および１４４５の遅延設定を調整する（調節する）ことによって、達成され得る。ゼロのタイミングマージンに対応する遅延設定が決定した後、所望された最初のタイミングマージンに対応する時間遅延によって調節可能な遅延デバイス１４２２の遅延設定を減少させることによって、所望された最初タイミングマージンが電圧ドループモニタに追加される。最初のタイミングマージン（ゆえに、最初のドループ閾値）が設定された後、パフォーマンスモニタ６２０は、上述されるように、動作中、タイミングマージン（ゆえに、ドループ閾値）への調整を行い得る。自動較正プロシージャにおけるさらなる詳細が、２０１６年８月９日に出された「Automatic Calibration Circuits for Operational Calibration of Critical-Path Time Delays in Adaptive Clock Distribution Systems, and Related Methods and Systems」と題された米国特許出願第９，４１３，３４４号において見ることができ、その明細書全体が、参照により本明細書に組み込まれている。
【０１１７】
[0135]  図１６は、ある特定の態様に従った、ドループ閾値を調整するための方法１６００を図示するフローチャートである。方法１６００は、電圧ドループ緩和回路４１０とパフォーマンスモニタ６２０とによって行われ得る。
【０１１８】
[0136]  ステップ１６１０において、回路に供給された供給電圧における電圧ドループがモニタされる。電圧ドループは、電圧ベースのドループモニタリングまたはタイミングベースのドループモニタリングを使用して、モニタされ得る。
【０１１９】
[0137]  ステップ１６２０において、電圧ドループ緩和は、モニタされた電圧ドループがドループ閾値以上である場合に回路のために行われる。電圧ドループ緩和は、回路のクロック周波数を低減することを含み得る。ドループ閾値は、電圧ベースのドループモニタリングのための電圧閾値レベルを設定することによって、またはタイミングベースのドループモニタリングのために遅延パスにおいて調節可能な遅延デバイスの遅延をモニタリングすることによって、設定され得る。
【０１２０】
[0138]  ステップ１６３０において、ある時間の持続期間内に電圧ドループ緩和が行われるクロックサイクルの数が追跡される。例えば、ドループ緩和が行われる各クロックサイクルのためのカウンタのカウント値を増分することによって、クロックサイクルの数が追跡され得る。
【０１２１】
[0139]  ステップ１６４０において、ドループ閾値は、クロックサイクルの数に基づいて調整される。例えば、ドループ閾値は、クロックサイクルの数が第１の閾値を下回る場合に減少され、クロックサイクルの数が第２の閾値を上回る場合に増加される。
【０１２２】
[0140]  図１７は、ある特定の態様に従った、ドループ閾値を調整するための方法１７００を図示するフローチャートである。方法１７００は、電圧ドループ緩和回路４１０とパフォーマンスモニタ６２０とによって行われ得る。
【０１２３】
[0141]  ステップ１７１０において、回路に供給された供給電圧における電圧ドループがモニタされる。電圧ドループは、電圧ベースのドループモニタリングまたはタイミングベースのドループモニタリングを使用して、モニタされ得る。
【０１２４】
[0142]  ステップ１７２０は、電圧ドループ緩和は、モニタされた電圧ドループがドループ閾値以上である場合に回路のために行われる。電圧ドループ緩和は、回路のクロック周波数を低減することを含み得る。ドループ閾値は、電圧ベースのドループモニタリングのための電圧閾値レベルを設定することによって、またはタイミングベースのドループモニタリングのために遅延パスにおいて調節可能な遅延デバイスの遅延をモニタリングすることによって、設定され得る。
【０１２５】
[0143]  ステップ１７３０において、電圧ドループ緩和がある時間の持続期間内に行われる回数が追跡される。電圧ドループが行われる回数は、例えば、電圧ドループ緩和がトリガされるたびのカウンタのカウント値を増分することによって、追跡され得る。
【０１２６】
[0144]  ステップ１７４０において、ドループ閾値は、電圧ドループ緩和が時間の持続期間内に行われる回数に基づいて調整される。例えば、ドループ閾値は、時間の持続期間内に電圧ドループ緩和が行われる回数が第１の閾値を下回る場合に減少され、時間の持続期間内に電圧ドループ緩和が行われる回数が第２の閾値を上回る場合に増加される。
【０１２７】
[0145]  上述されたパフォーマンスモニタ６２０および電圧ドループモニタ４２０は、本明細書で説明されている機能を行うように設計された、汎用プロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または他のプログラマブル論理デバイス、ディスクリートハードウェアコンポーネント（例えば、論理ゲート）、またはこれらの任意の組合せを用いて実現され得る。プロセッサは、機能を行うためのコードを備えるソフトウェアを実行することによって本明細書で説明されている機能を行い得る。ソフトウェアは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、光ディスク、および／または磁気ディスクのような、コンピュータ可読記憶媒体上に記憶され得る。
【０１２８】
[0146]  本開示の先の説明は、いかなる当業者も本開示を作成または使用できるように提供したものである。本開示への様々な修正は当業者には容易に明らかであり、本明細書で定義した一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適され得る。よって、本開示は、本明細書において説明される例に限定されることが意図されるものではなく、本明細書に開示される原理および新規の特徴と一致する最も広い範囲が付与されるべきものである。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
システムであって、
回路に供給された供給電圧における電圧ドループをモニタするように、および、前記モニタされた電圧ドループがドループ閾値以上である場合に前記回路のために電圧ドループ緩和を行うように構成された電圧ドループ緩和回路と、
ある時間の持続期間内に前記電圧ドループ緩和回路が前記電圧ドループ緩和を行うクロックサイクルの数を追跡するように、および、クロックサイクルの前記数に基づいて前記ドループ閾値を調整するように構成されたパフォーマンスモニタと
を備える、システム。
［Ｃ２］
前記電圧ドループ緩和回路は、
低減された周波数クロック信号を作成するために入力クロック信号の周波数を低減すること、および、前記低減された周波数クロック信号を前記回路に出力することによって、電圧ドループ緩和を行い、
前記電圧ドループ緩和が行われていないときに前記入力クロック信号を前記回路にわたす
ように構成される、Ｃ１に記載のシステム。
［Ｃ３］
クロックサイクルの前記数は、前記入力クロック信号のクロックサイクルの数、または前記低減された周波数クロック信号のサイクルの数である、Ｃ２に記載のシステム。
［Ｃ４］
前記パフォーマンスモニタは、クロックサイクルの前記数と第１の閾値数とを比較すること、およびクロックサイクルの前記数が前記第１の閾値数を下回る場合に前記ドループ閾値を減少させることによって、クロックサイクルの前記数に基づいて前記ドループ閾値を調整するように構成される、Ｃ１に記載のシステム。
［Ｃ５］
前記パフォーマンスモニタは、前記ドループ閾値が減少した場合に前記供給電圧を減少させるように構成される、Ｃ４に記載のシステム。
［Ｃ６］
前記電圧ドループ緩和回路は、
低減された周波数クロック信号を作成するために入力クロック信号の周波数を低減すること、および前記低減された周波数クロック信号を前記回路に出力することによって、電圧ドループ緩和を行うことと、
前記電圧ドループ緩和が行われていないときに前記入力クロック信号を前記回路にわたすことと、
前記ドループ閾値が減少した場合に前記入力クロック信号の周波数を増加させることと
を行うように構成される、Ｃ４に記載のシステム。
［Ｃ７］
前記パフォーマンスモニタは、クロックサイクルの前記数と第２の閾値数とを比較すること、および、クロックサイクルの前記数が前記第２の閾値数を上回る場合に前記ドループ閾値を増加させることによって、クロックサイクルの前記数に基づいて前記ドループ閾値を調整するように構成される、Ｃ４に記載のシステム。
［Ｃ８］
前記電圧ドループ緩和回路は、
データ信号を出力するように構成された駆動回路と、
受け取りフリップフロップと、
前記駆動回路と前記受け取りフリップフロップとの間の遅延パスと、ここにおいて、前記遅延パスは、調節可能な遅延デバイスを含み、前記データ信号は、前記遅延パスを介して前記駆動回路から前記受け取りフリップフロップに伝搬し、前記受け取りフリップフロップは、入力クロック信号のアクティブなエッジにおいて前記データ信号の論理値をラッチするように構成され、
前記ラッチされた論理値に基づいて前記受け取りフリップフロップにおけるタイミングエラーを検出するように、および前記タイミングエラーが検出された場合に電圧ドループ緩和をトリガするように構成されたエラー検出回路と、
を備え、
前記パフォーマンスモニタは、前記調節可能な遅延デバイスの遅延設定を調整することによって、前記ドループ閾値を調整するように構成される、
Ｃ１に記載のシステム。
［Ｃ９］
前記調節可能な遅延デバイスは、
複数の遅延パスであって、前記複数の遅延パスの各々が、前記供給電圧によって電力供給される異なる数のバッファを含む、複数の遅延パスと、
遅延選択信号に従って、前記複数の遅延パスのうちの１つを選択するように構成されたマルチプレクサと、ここにおいて、前記パフォーマンスモニタは、前記遅延選択信号を調整することによって、前記調節可能な遅延デバイスの前記遅延設定を調整するように構成される、
を備える、Ｃ８に記載のシステム。
［Ｃ１０］
ドループ閾値を調整するための方法であって、
回路に供給された供給電圧における電圧ドループをモニタすることと、
前記モニタされた電圧ドループが前記ドループ閾値以上である場合に前記回路のために電圧ドループ緩和を行うことと、
ある時間の持続期間内に前記電圧ドループ緩和が行われるクロックサイクルの数を追跡することと、
クロックサイクルの前記数に基づいて前記ドループ閾値を調整することと
を備える、方法。
［Ｃ１１］
電圧ドループ緩和を行うことは、低減された周波数クロック信号を作成するために入力クロック信号の周波数を低減すること、および、前記低減された周波数クロック信号を前記回路に出力することを備え、前記方法は、前記電圧ドループ緩和が行われていないときに前記入力クロック信号を前記回路にわたすことをさらに備える、Ｃ１０に記載の方法。
［Ｃ１２］
クロックサイクルの前記数は、前記入力クロック信号のクロックサイクルの数、または前記低減された周波数クロック信号のサイクルの数である、Ｃ１１に記載の方法。
［Ｃ１３］
クロックサイクルの前記数に基づいて前記ドループ閾値を調整することは、クロックサイクルの前記数と第１の閾値数とを比較すること、およびクロックサイクルの前記数が前記第１の閾値数を下回る場合に前記ドループ閾値を減少させることを備える、Ｃ１０に記載の方法。
［Ｃ１４］
前記ドループ閾値が減少した場合に前記供給電圧を減少させることをさらに備える、Ｃ１３に記載の方法。
［Ｃ１５］
電圧ドループ緩和を行うことは、低減された周波数クロック信号を作成するために入力クロック信号の周波数を低減すること、および前記低減された周波数クロック信号を前記回路に出力することを備え、前記方法は、前記電圧ドループ緩和が行われていないときに前記入力クロック信号を前記回路にわたすこと、および、前記ドループ閾値が減少した場合に前記入力クロック信号の周波数を増加させることをさらに備える、Ｃ１３に記載の方法。
［Ｃ１６］
クロックサイクルの前記数に基づいて前記ドループ閾値を調整することは、クロックサイクルの前記数と第２の閾値数とを比較すること、および、クロックサイクルの前記数が前記第２の閾値数を上回る場合に前記ドループ閾値を増加させることをさらに備える、Ｃ１３に記載の方法。
［Ｃ１７］
電圧ドループをモニタすることは、前記電圧ドループによって引き起こされる遅延パスにおけるタイミングエラーを検出することを備え、前記遅延パスは、調節可能な遅延デバイスを含み、前記モニタされた電圧ドループが前記ドループ閾値以上である場合に前記回路のために電圧ドループ緩和を行うことは、前記タイミングエラーが検出された場合に前記回路のために電圧ドループ緩和を行うことを備え、前記ドループ閾値を調整することは、前記調節可能な遅延デバイスの遅延設定を調整することを備える、Ｃ１０に記載の方法。
［Ｃ１８］
システムであって、
回路に供給された供給電圧における電圧ドループをモニタするように、および、前記モニタされた電圧ドループがドループ閾値以上である場合に前記回路のために電圧ドループ緩和を行うように構成された電圧ドループ緩和回路と、
ある時間の持続期間内に前記電圧ドループ緩和回路が前記電圧ドループ緩和を行う回数を追跡するように、および、前記時間の持続期間内に前記電圧ドループ緩和回路が前記電圧ドループ緩和を行う前記回数に基づいて前記ドループ閾値を調整するように構成されたパフォーマンスモニタと
を備える、システム。
［Ｃ１９］
前記パフォーマンスモニタは、前記時間の持続期間内に前記電圧ドループ緩和回路が前記電圧ドループ緩和を行う前記回数と、第１の閾値数とを比較すること、および、前記時間の持続期間内に前記電圧ドループ緩和回路が前記電圧ドループ緩和を行う前記回数が前記第１の閾値を下回る場合に前記ドループ閾値を減少させることによって、前記時間の持続期間内に前記電圧ドループ緩和回路が前記電圧ドループ緩和を行う前記回数に基づいて前記ドループ閾値を調整するように構成される、Ｃ１８に記載のシステム。
［Ｃ２０］
前記パフォーマンスモニタは、前記ドループ閾値が減少した場合に前記供給電圧を減少させるように構成される、Ｃ１９に記載のシステム。
［Ｃ２１］
前記電圧ドループ緩和回路は、
低減された周波数クロック信号を作成するために入力クロック信号の周波数を低減することによって、および前記低減された周波数クロック信号を前記回路に出力することによって、電圧ドループ緩和を行うことと、
前記電圧ドループ緩和が行われていないときに前記入力クロック信号を前記回路にわたすことと、
前記ドループ閾値が減少した場合に前記入力クロック信号の周波数を増加させることと
を行うように構成される、Ｃ１９に記載のシステム。
［Ｃ２２］
前記パフォーマンスモニタは、前記時間の持続期間内に前記電圧ドループ緩和回路が前記電圧ドループ緩和を行う前記回数と、第２の閾値数とを比較すること、および、前記時間の持続期間内に前記電圧ドループ緩和回路が前記電圧ドループ緩和を行う前記回数が前記第２の閾値数を上回る場合に前記ドループ閾値を増加させることによって、前記時間の持続期間内に前記電圧ドループ緩和回路が前記電圧ドループ緩和を行う前記回数に基づいて前記ドループ閾値を調整するように構成される、Ｃ１９に記載のシステム。
［Ｃ２３］
前記電圧ドループ緩和回路は、
データ信号を出力するように構成された駆動回路と、
受け取りフリップフロップと、
前記駆動回路と前記受け取りフリップフロップとの間の遅延パスと、ここにおいて、前記遅延パスは、調節可能な遅延デバイスを含み、前記データ信号は、前記遅延パスを介して前記駆動回路から前記受け取りフリップフロップに伝搬し、前記受け取りフリップフロップは、入力クロック信号のアクティブなエッジにおいて前記データ信号の論理値をラッチするように構成され、
前記ラッチされた論理値に基づいて前記受け取りフリップフロップにおけるタイミングエラーを検出するように、および前記タイミングエラーが検出された場合に電圧ドループ緩和をトリガするように構成されたエラー検出回路と、
を備え、
前記パフォーマンスモニタは、前記調節可能な遅延デバイスの遅延設定を調整することによって、前記ドループ閾値を調整するように構成される、
Ｃ１８に記載のシステム。
［Ｃ２４］
前記調節可能な遅延デバイスは、
複数の遅延パスであって、前記複数の遅延パスの各々が、前記供給電圧によって電力供給される異なる数のバッファを含む、複数の遅延パスと、
遅延選択信号に従って、前記複数の遅延パスのうちの１つを選択するように構成されたマルチプレクサと、ここにおいて、前記パフォーマンスモニタは、前記遅延選択信号を調整することによって、前記調節可能な遅延デバイスの前記遅延設定を調整するように構成される、
を備える、Ｃ２３に記載のシステム。
［Ｃ２５］
ドループ閾値を調整するための方法であって、
回路に供給された供給電圧における電圧ドループをモニタすることと、
前記モニタされた電圧ドループが前記ドループ閾値以上である場合に前記回路のために電圧ドループ緩和を行うことと、
前記電圧ドループ緩和がある時間の持続期間内に行われる回数を追跡することと、
前記電圧ドループ緩和が前記時間の持続期間内に行われる前記回数に基づいて、前記ドループ閾値を調整することと
を備える、方法。
［Ｃ２６］
前記電圧ドループ緩和が前記時間の持続期間内に行われる前記回数に基づいて、前記ドループ閾値を調整することは、前記電圧ドループ緩和が前記時間の持続期間内に行われる前記回数と、第１の閾値数とを比較すること、および前記電圧ドループ緩和が前記時間の持続期間内に行われる前記回数が前記第１の閾値数を下回る場合に前記ドループ閾値を減少させることを備える、Ｃ２５に記載の方法。
［Ｃ２７］
前記ドループ閾値が減少した場合に前記供給電圧を減少させることをさらに備える、Ｃ２６に記載の方法。
［Ｃ２８］
電圧ドループ緩和を行うことは、低減された周波数クロック信号を作成するために入力クロック信号の周波数を低減すること、および前記低減された周波数クロック信号を前記回路に出力することを備え、前記方法は、前記電圧ドループ緩和が行われていないときに前記入力クロック信号を前記回路にわたすこと、および、前記ドループ閾値が減少した場合に前記入力クロック信号の周波数を増加させることをさらに備える、Ｃ２６に記載の方法。
［Ｃ２９］
前記電圧ドループ緩和が前記時間の持続期間内に行われる前記回数に基づいて、前記ドループ閾値を調整することは、前記電圧ドループ緩和が前記時間の持続期間内に行われる前記回数と、第２の閾値数とを比較すること、および前記電圧ドループ緩和が前記時間の持続期間内に行われる前記回数が前記第２の閾値数を上回る場合に前記ドループ閾値を増加させることをさらに備える、Ｃ２５に記載の方法。
［Ｃ３０］
電圧ドループをモニタすることは、前記電圧ドループによって引き起こされる遅延パスにおけるタイミングエラーを検出することを備え、前記遅延パスは調節可能な遅延デバイスを含み、前記モニタされた電圧ドループが前記ドループ閾値以上である場合に前記回路のために電圧ドループ緩和を行うことは、前記タイミングエラーが検出された場合に前記回路のために電圧ドループ緩和を行うことを備え、前記ドループ閾値を調整することは、前記調節可能な遅延デバイスの遅延設定を調整することを備える、Ｃ２５に記載の方法。
【要約】ある特定の態様において、システムは、回路に供給された供給電圧における電圧ドループをモニタするように、および、モニタされた電圧ドループがドループ閾値以上である場合に回路のために電圧ドループ緩和を行うように構成された電圧ドループ緩和回路を備える。一態様において、システムはまた、ある時間の持続期間内に電圧ドループ緩和回路が電圧ドループ緩和を行うクロックサイクルの数を追跡するように、および、クロックサイクルの数に基づいてドループ閾値を調整するように構成されたパフォーマンスモニタを含む。別の態様において、システムはまた、ある時間の持続期間内に電圧ドループ緩和回路が電圧ドループ緩和を行う回数を追跡するように、および、時間の持続期間内に電圧ドループ緩和回路が電圧ドループ緩和を行う回数に基づいてドループ閾値を調整するように構成されたパフォーマンスモニタを含む。
【選択図】図６【図１】
0006648344.tif 000002
【図２】
0006648344.tif 000003
【図３】
0006648344.tif 000004
【図４】
0006648344.tif 000005
【図５】
0006648344.tif 000006
【図６】
0006648344.tif 000007
【図７Ａ】
0006648344.tif 000008
【図７Ｂ】
0006648344.tif 000009
【図８】
0006648344.tif 000010
【図９Ａ】
0006648344.tif 000011
【図９Ｂ】
0006648344.tif 000012
【図１０】
0006648344.tif 000013
【図１１】
0006648344.tif 000014
【図１２】
0006648344.tif 000015
【図１３】
0006648344.tif 000016
【図１４】
0006648344.tif 000017
【図１５】
0006648344.tif 000018
【図１６】
0006648344.tif 000019
【図１７】
0006648344.tif 000020