(57)【特許請求の範囲】
【請求項１】
基準クロックに基づいてクロック入力信号を受信し、制御信号の調整に従って遅延エッジ信号を出力するように構成された遅延線と、
前記基準クロックの立ち上がりエッジを受信し、トリガに応答して、前記クロック入力信号の単一立ち上がりエッジを前記遅延線に送信し、かつ、前記単一立ち上がりエッジを受信したときを基準として前記基準クロックの周期の所定の単位で遅延された基準エッジ信号の立ち上がりエッジを生成するように構成されたインジェクタと、
前記立ち上がりエッジが前記遅延線を通過したことを判定し、この判定に応答して、前記インジェクタへ第２のトリガを送信して、前記クロック入力信号の次の単一立ち下がりエッジを前記遅延線に送信するように構成されたシンクロナイザと、
前記遅延エッジ信号からの立ち上がりエッジのタイミングを前記基準エッジ信号の立ち上がりエッジのタイミングと比較することによってタイミング差を計算し、前記制御信号を前記遅延線に送信して、前記タイミング差に基づいて前記遅延線の遅延設定を減少または増加させるように構成された電荷ポンプと、を備える、遅延ロックループ。
【請求項２】
前記インジェクタは、前記クロック入力信号の単一立ち下がりエッジを前記遅延線に送信し、前記単一立ち上がりエッジを受信したときを基準として前記基準クロックの周期の所定の単位で遅延された前記基準エッジ信号の立ち下がりエッジを生成するようにさらに構成されており、
前記シンクロナイザは、前記立ち下がりエッジが前記遅延線を通過したことを判定し、この判定に応答して、前記インジェクタへ第３のトリガを送信して、前記クロック入力信号の次の立ち上がりエッジを前記遅延線に送信するようにさらに構成されており、
前記電荷ポンプは、前記遅延エッジ信号からの立ち下がりエッジのタイミングを前記基準エッジ信号の前記立ち下がりエッジのタイミングと比較することによってタイミング差を計算し、前記制御信号を前記遅延線に送信して、前記タイミング差に基づいて前記遅延線の遅延設定を減少または増加させるようにさらに構成されている、請求項１に記載の遅延ロックループ。
【請求項３】
前記シンクロナイザは、セット信号に応答して動作するラッチスイッチをさらに備え、
前記セット信号は、前記基準エッジ信号が立ち上がるのと等しい時点またはその前の時点に立ち上がる前記遅延エッジ信号に応答して生成され、
前記ラッチスイッチは、前記遅延線への前記基準クロックの直接入力を可能にするように、前記インジェクタに送信される制御信号をトリガする、請求項１に記載の遅延ロックループ。
【請求項４】
前記シンクロナイザは、前記遅延線の前記遅延設定が前記基準クロックの約１．０クロック周期である場合に前記ラッチスイッチがトリガするように、前記遅延線のプロセス製作公差に従って前記基準エッジ信号に追加の遅延を提供する複数のインバータをさらに備える、請求項３に記載の遅延ロックループ。
【請求項５】
前記インジェクタは、前記遅延線がクロック入力信号を受信し、かつ、前記次のクロック入力信号を受信する状態にあることを示すクロック伝播入力信号であって、前記インジェクタへのトリガとして前記遅延線のタップを介して送信されるクロック伝播入力信号を受信する、請求項１に記載の遅延ロックループ。
【請求項６】
前記遅延線は、最大遅延で最初に設定され、前記遅延線が前記基準クロックに同期されることを前記シンクロナイザが判定するまで前記遅延を減少する少なくとも１つの制御調整を受信する、請求項１に記載の遅延ロックループ。
【請求項７】
遅延ロックループを設定するための方法であって、
基準クロックの受信したクロック入力信号を用いて、制御信号の調整に従って、遅延線で遅延エッジ信号を生成することと、
トリガに応答して、前記クロック入力信号の単一立ち上がりエッジを前記遅延線に送信することと、
前記単一立ち上がりエッジを受信したときを基準として前記基準クロックの周期の所定の単位で遅延された基準エッジ信号の立ち上がりエッジを生成することと、
前記立ち上がりエッジが前記遅延線を通過したことを判定し、この判定に応答して、前記インジェクタへ第２のトリガを送信して、前記クロック入力信号の次の単一立ち下がりエッジを前記遅延線に送信することと、
前記遅延エッジ信号からの立ち上がりエッジのタイミングを前記基準エッジ信号の立ち上がりエッジのタイミングと比較することによってタイミング差を計算することと、
前記制御信号を前記遅延線に送信して、前記タイミング差に基づいて前記遅延線の遅延設定を減少または増加させることと、を含む、方法。
【請求項８】
前記クロック入力信号の単一立ち下がりエッジを前記遅延線に送信することと、
前記単一立ち上がりエッジを受信したときを基準として前記基準クロック周期の所定の単位で遅延された前記基準エッジ信号の立ち下がりエッジを生成することと、
前記立ち下がりエッジが前記遅延線を通過したことを判定し、この判定に応答して、前記インジェクタへ第３のトリガを送信して、前記クロック入力信号の次の立ち上がりエッジを前記遅延線に送信することと、
前記遅延エッジ信号からの立ち下がりエッジのタイミングを前記基準エッジ信号の前記立ち下がりエッジのタイミングと比較することによって第２の位相差を計算することと、
前記制御信号を前記遅延線に送信して、前記第２の位相差に基づいて前記遅延線の遅延設定を減少または増加させることと、をさらに含む、請求項７に記載の方法。
【請求項９】
セット信号に応答してラッチスイッチを操作すること、をさらに含み、
前記セット信号は、前記遅延エッジ信号に応答して生成され、遅延した逆方向の前記基準エッジ信号に等しい時点またはその前の時点に立ち上がり、
前記ラッチスイッチは、前記遅延線への前記基準クロックの直接入力を可能にするように、前記インジェクタに送信される制御信号をトリガする、請求項７に記載の方法。
【請求項１０】
前記遅延線の前記遅延設定が前記基準クロックの約１．０クロック周期である場合にラッチスイッチがトリガするように、複数のインバータを使用して、前記遅延線のプロセス製作公差に従って前記基準エッジ信号に追加の遅延を提供すること、をさらに含む、請求項７に記載の方法。
【請求項１１】
前記インジェクタは、前記遅延線がクロック入力信号を受信し、かつ、前記次のクロック入力信号を受信する状態にあることを示すクロック伝播入力信号であって、前記インジェクタへのトリガとして前記遅延線のタップを介して送信されるクロック伝播入力信号を受信する、請求項７に記載の方法。
【請求項１２】
最大遅延で前記遅延線を最初に設定することと、前記遅延線が前記基準クロックに同期されることを決定するまで前記遅延を減少する少なくとも１つの制御調整を受信することと、をさらに含む、請求項７に記載の方法。
【請求項１３】
前記基準クロックの１．０クロック周期を超える遅延で前記遅延線を最初に設定することと、前記遅延線が前記基準クロックに同期されることを判定するまで前記遅延を減少する少なくとも１つの制御調整を受信することと、をさらに含む、請求項７に記載の方法。
【請求項１４】
メモリと、
遅延ロックループと、を備えるプロセッサであって、
前記遅延ロックループは、
基準クロックに基づいてクロック入力信号を受信し、制御信号の調整に従って遅延エッジ信号を出力するように構成された遅延線と、
前記基準クロックの立ち上がりエッジを受信し、トリガに応答して、前記クロック入力信号の単一立ち上がりエッジを前記遅延線に送信し、かつ、前記単一立ち上がりエッジを受信したときを基準として前記基準クロックの周期の所定の単位で遅延された基準エッジ信号の立ち上がりエッジを生成するように構成されたインジェクタと、
前記立ち上がりエッジが前記遅延線を通過したことを判定し、この判定に応答して、前記インジェクタへ第２のトリガを送信して、前記クロック入力信号の次の単一立ち下がりエッジを前記遅延線に送信するように構成されたシンクロナイザと、
前記遅延エッジ信号からの立ち上がりエッジのタイミングを前記基準エッジ信号の立ち上がりエッジのタイミングと比較することによってタイミング差を計算し、前記制御信号を前記遅延線に送信して、前記タイミング差に基づいて前記遅延線の遅延設定を減少または増加させるように構成された電荷ポンプと、を備える、
プロセッサ。
【請求項１５】
前記インジェクタは、前記クロック入力信号の単一立ち下がりエッジを前記遅延線に送信し、前記単一立ち上がりエッジを受信したときを基準として前記基準クロックの周期の所定の単位で遅延された前記基準エッジ信号の立ち下がりエッジを生成するようにさらに構成されており、
前記シンクロナイザは、前記立ち下がりエッジが前記遅延線を通過したことを判定し、この判定に応答して、前記インジェクタへ第３のトリガを送信して、前記クロック入力信号の次の立ち上がりエッジを前記遅延線に送信するようにさらに構成されており、
前記電荷ポンプは、前記遅延エッジ信号からの立ち下がりエッジのタイミングを前記基準エッジ信号の前記立ち下がりエッジのタイミングと比較することによってタイミング差を計算し、前記制御信号を前記遅延線に送信して、前記タイミング差に基づいて前記遅延線の遅延設定を減少または増加させるようにさらに構成されている、請求項１４に記載のプロセッサ。
【請求項１６】
前記シンクロナイザは、セット信号に応答して動作するラッチスイッチをさらに備え、
前記セット信号は、前記基準エッジ信号が立ち上がるのと等しい時点またはその前の時点に立ち上がる前記遅延エッジ信号に応答して生成され、
前記ラッチスイッチは、前記遅延線への前記基準クロックの直接入力を可能にするように、前記インジェクタに送信される制御信号をトリガする、請求項１４に記載のプロセッサ。
【請求項１７】
前記シンクロナイザは、前記遅延線の前記遅延設定が前記基準クロックの約１．０クロック周期である場合に前記ラッチスイッチがトリガするように、前記遅延線のプロセス製作公差に従って前記基準エッジ信号に追加の遅延を提供する複数のインバータをさらに備える、請求項１６に記載のプロセッサ。
【請求項１８】
前記インジェクタは、前記遅延線がクロック入力信号を受信し、かつ、前記次のクロック入力信号を受信する状態にあることを示すクロック伝播入力信号であって、前記インジェクタへのトリガとして前記遅延線のタップを介して送信されるクロック伝播入力信号を受信する、請求項１４に記載のプロセッサ。
【請求項１９】
前記遅延線は、最大遅延で最初に設定され、前記遅延線が前記基準クロックに同期されることを前記シンクロナイザが判定するまで前記遅延を減少する少なくとも１つの制御調整を受信する、請求項１４に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１１年１２月３０日に出願された米国特許仮出願第６１／５８１，７４８号および２０１２年６月２１日に出願された米国特許出願第１３／５２９，６７１号の利益を主張し、これらの内容は、参照により、全体が本明細書に記載されているように本明細書に組み込まれる。
【０００２】
本出願は、遅延ロックループをロックすることに関する。
【背景技術】
【０００３】
遅延ロックループ（ＤＬＬ）の主要機能は、時間を、安定した等しい部分に分割する手法を提供することである。これは、可変遅延線を用いて、その遅延を安定した期間（概して入力クロックの位相または周期）にロックすることによって行われる。ＤＬＬの構造により、遅延線を入力クロック基準にロックする際にエイリアシング問題が生じる。一般に、遅延線が、基準期間よりも十分に長い遅延から始動する場合には、遅延線は、基準遅延の２倍に誤ってロックし、または、単純に全体にロックすることが全くできない可能性がある。したがって、ほとんどのＤＬＬは、最小遅延設定から始動し、次いで、遅延線を減速させ、基準周期を一致させるように遅延設定を徐々に延長することによってロックする。
【０００４】
遅延線に対して最初に最小遅延を強制することによって、ＤＬＬの周囲の回路は、遅延線が生成する高速エッジおよびパルスに対応可能であることが必要とされる。これは、ＤＬＬの周囲のサポート回路が、別段必要とされるものよりはるかに速いデータ速度で動作することを必要とし得る。これは概して、遅延線の周期におけるロック中に、かつ、最小遅延から始動する最悪のケースのために過大設計する必要性によって遅延ロックが達成された後であっても、さらに多くの電力をサポート回路に消費させる。最小遅延におけるＤＬＬの動作に対する別の課題は、遅延線への入力が遅延線の処理よりも速く切り替わるときに生じるパルス蒸発である。
【発明の概要】
【課題を解決するための手段】
【０００５】
遅延ロックループ（ＤＬＬ）をロックするための方法および装置が開示される。このＤＬＬは、例えば１ロック周期以上などの最長遅延状態を含む遅延線のあらゆる始動遅延状態から、遅延ロックを達成することができる。インジェクタは、基準クロックの単一エッジのみが遅延線に入ることを可能にし、次に、その出力が、シンクロナイザによって基準クロックに同期される。第１のエッジが遅延線を通過して同期された後、別のエッジが遅延線に入ることを許可される。所望の基準周期へのロックが確立すると、基準クロックの全てのエッジが遅延線に入ることを許可される。
【図面の簡単な説明】
【０００６】
【図１】遅延ロックループ回路の例示的な機能ブロック図を示す図である。
【図２】図１に示される回路要素によって生成された出力信号の立ち上がりエッジおよび立ち下がりエッジの例示的なタイミング図を示す図である。
【図３】部分遅延立ち上がりエッジ伝播を決定するためのタップ遅延線の例示的な機能ブロック図を示す図である。
【図４】図３に示されるタップ遅延線の立ち上がりエッジおよび立ち下がりエッジの例示的なタイミング図を示す図である。
【図５】基準クロックの立ち上がりエッジとの同期を維持するトリガされたシンクロナイザの出力信号を含む遅延ロックループ回路の例示的な機能ブロック図を示す図である。
【図６Ａ】図５に示されるシンクロナイザの立ち上がりエッジおよび立ち下がりエッジの例示的なタイミング図を示す図である。
【図６Ｂ】図５に示されるシンクロナイザの立ち上がりエッジおよび立ち下がりエッジの例示的なタイミング図を示す図である。
【図６Ｃ】図５に示されるシンクロナイザの立ち上がりエッジおよび立ち下がりエッジの例示的なタイミング図を示す図である。
【図７】１つ以上の開示される実施形態が実装され得る例示的なデバイスのブロック図を示す図である。
【発明を実施するための形態】
【０００７】
図１および図２を参照して第１の実施形態が以下に記載される。図１は、クロックパルスの唯一の立ち上がりエッジが遅延線１０１に注入されることを確実にする例示的な遅延ロックループ（ＤＬＬ）回路１００を示す図である。ＤＬＬ回路１００は、インジェクタ１０２と、位相検出器１０３と、電荷ポンプ１０４と、シンクロナイザ１０５とをさらに含む。ＤＬＬ回路１００は、初期の遅延が最大値に設定され得るように動作し、かつ、反復調整によってロックイン値が達成されるまで遅延が減少され得るように動作するように構成されている。これは、初期遅延を最小値に設定する（すなわち、最初にＤＬＬを可能な限り速く動作する）ときに直面する上述の問題を回避する。基準クロック１１１の信号は、ＤＬＬ回路１００に対するクロック入力であり、遅延線１０１が制御信号１１９を使用して適切に調整されたことを位相検出器１０３およびシンクロナイザ１０５によって決定されるまで、インジェクタ１０２によって制御される。インジェクタ１０２は、基準クロック１１１の信号を制御するが、ＤＬＬ回路がクロックイン１１４の信号パルスに対して遅延線１０１の同期を分析するのを待った後、単一立ち上がりエッジまたは単一立ち下がりエッジのみが、クロックイン１１４の信号として遅延線１０１に送信される。遅延線１０１が許容遅延に調整され、適切に同期されると、遅延設定はロックインされてもよく、インジェクタ１０２は、基準クロック１１１の制御を放棄することができ、基準クロック１１１が遅延線１０１を直接駆動することを可能にする。このプロセスは、より詳細に以下に説明される。
【０００８】
図２は、ＤＬＬ回路１００内の様々な入力および出力信号の例示的な信号パルスのタイミング図２００を示す図である。タイミング図２００は、立ち上がりエッジ同期２０１（基準クロック１１１のパルス１〜５の発生で示される）と、立ち下がりエッジ同期２０２（基準クロック１１１のパルス６〜８の発生で示される）とを含み、これは、遅延線１０１に入力されるクロックイン信号１１４に対する単一パルスを指す。
【０００９】
インジェクタ１０２は、基準クロック信号１１１を受信し、クロックイン信号１１４として単一エッジを遅延線１０１に注入する。これは、ＤＬＬ回路１００が、立ち上がりエッジ同期２０１中に、インジェクタ１０２からの基準エッジ１１５として示される対応する立ち上がりエッジを使用して、基準クロック信号１１１と遅延信号遅延エッジ１１６との同期を行うことを可能にする。同様に、立ち下がりエッジ同期２０２の場合には、基準エッジ１１５の立ち下がりエッジおよび遅延エッジ信号１１６の立ち下がりエッジが処理される。位相検出器１０３およびシンクロナイザ１０５は、基準エッジ１１５と遅延エッジ１１６との位相差を決定し、電荷ポンプ１０４は、制御信号１１９を生成して、遅延線１０１内の遅延を調整する。このプロセスは、より詳細に以下に提示される。
【００１０】
基準クロック信号１１１は、入力システムクロック信号であり、そこからＤＬＬ回路１００が単位遅延パルス、または、場合により遅延線内の特定のタップを基準点として使用して部分遅延を生成する。始動ロック信号１１２は、基準クロック１１１のパルス１で示され、シンクロナイザ１０５でＤＬＬ処理を開始する。始動ロック信号１１２は、パルス２中に再帰信号１１３をトリガする。インジェクタ１０２が再帰信号１１３を受信すると、クロックイン信号１１４の立ち上がりエッジは、基準クロック１１１の次の立ち上がりエッジ（パルス３）に際して遅延線１０１に送信される。クロックイン信号１１４の立ち上がりエッジは、基準クロック１１１のパルス３の立ち上がりエッジと同期している。クロックイン信号１１４の立ち上がりエッジは、インジェクタ１０２で、再帰１１３および基準クロック１１１の信号のＡＮＤまたはＮＡＮＤゲートロジックを使用してトリガされ得る。あるいは、クロックイン信号１１４の立ち上がりエッジは、例えば基準クロック１１１のパルス３の立ち下がりエッジなどの基準クロック１１１の立ち下がりエッジによってトリガされ得る。
【００１１】
１．０クロック周期遅延に設計された遅延線１０１の場合、遅延調整を設定するために分析される第１の立ち上がりエッジとして、基準エッジ信号１１５のエッジを設定し、かつ、基準エッジ信号１１５を位相検出器１０３に送信するために、インジェクタ１０２によって、１クロック周期の遅延がクロックイン信号１１４に追加される。遅延線１０１が遅延線１０１の現在の設定に従ってクロックイン信号１１４に遅延を追加した後、温度および電圧変動などの様々な要因によって生じる誤差を含む遅延エッジパルス１１６が生成される。遅延エッジ１１６の立ち上がりエッジは、基準クロック１１１のパルス５中に生じる。
【００１２】
位相検出器１０３は、遅延エッジ信号のパルス１１６を受信し、位相差が決定され得るようにパルス１１６を基準エッジ信号１１５と比較することができる。これを行うために、ＰＤ＿ＵＰ信号１１７は、基準クロック１１１のパルス４の立ち上がりエッジで示されるように、基準エッジ信号１１５を受信する際にトリガされる。遅延エッジパルス１１６は、基準クロックのパルス５の立ち下がりエッジに示されるように、ＰＤ＿ＤＯＷＮパルス１１８をトリガする。したがって、この例のための測定された位相差は、１．５クロック周期（すなわち、５．５〜４．０の差）であろう。図２は、この説明における簡便性および利便性のために０．５クロック周期間隔で生じるパルスで描かれることに留意されたい。実際の遅延エッジ１１６のエッジ（およびその結果として、ＰＤ＿ＤＯＷＮ１１８のエッジ）は、任意の部分遅延値に対して位相検出器１０３で検出可能であろう部分クロック周期分解能で生じてもよい。
【００１３】
基準エッジ信号１１５は、クロックイン１１４のパルスから追加された１クロック周期遅延を有することを想起されたい。これは、位相検出器１０３による位相差計算が正確に１クロック周期の遅延に対処することを可能にする。例えば、遅延が正確に１周期であるとき、基準エッジ１１５および遅延エッジ１１６が同時に生じ、信号ＰＤ＿ＵＰ１１７および信号ＰＤ＿ＤＯＷＮ１１８も生じて、ゼロの位相差をもたらす。したがって、基準エッジ信号１１５は、クロックイン信号１１４にバッファを提供し、クロックパルスの処理および遅延同期の追加制御を可能にする。あるいは、ＤＬＬ回路１００は、基準エッジ信号１１５を省略するために修正されてもよく、代わりにインジェクタ１０２がクロックイン信号１１４を位相検出器１０３に直接送信することを可能にする。
【００１４】
位相検出器１０３が、遅延エッジ１１６の立ち上がりエッジおよび基準エッジ１１５の立ち上がりエッジの両方を検出すると、ＰＤ＿ＵＰ信号１１７およびＰＤ＿ＤＯＷＮ信号１１８は、基準クロック１１１のパルス５中にＰＤリセット２０３によって示されるように、ゼロにリセットすることを許可される。位相検出器１０３のリセットによって、立ち下がりエッジ同期２０２中に次の位相検出を行う状態にある。
【００１５】
電荷ポンプ１０４は、ＰＤ＿ＵＰ信号１１７およびＰＤ＿ＤＯＷＮ信号１１８を受信し、遅延線１０１の誤差としてそれらの間のタイミング差を分析し、制御信号１１９を生成する。制御信号１１９は、出力信号遅延エッジ１１６を減速させるか、または、加速させるかのいずれか（すなわち、クロックイン信号１１４に追加された遅延を延ばすか、または、その遅延を短くする）の遅延線１０１への調整信号である。
【００１６】
また、シンクロナイザ１０５は、位相検出器１０３からＰＤ＿ＵＰ信号１１７およびＰＤ＿ＤＯＷＮ信号１１８を受信する。ＰＤ＿ＵＰ信号１１７およびＰＤ＿ＤＯＷＮ信号１１８の両方を検出すると、シンクロナイザ１０５は、クロックイン信号１１４の立ち上がりエッジ同期が完全に処理されたことを決定する。次に、再帰信号１１３は、基準クロック１１１のパルス５中に示されるようにゼロにリセットされ、次いで、基準クロック１１１のクロックドメインへの再帰信号の非準安定化を可能にする時間周期後に１に設定される。これは、パルス６中の網掛け領域または基準クロック１１１によって示される。再帰信号１１３が１の値まで進むと、クロックイン信号１１４の立ち下がりエッジは、立ち下がりエッジ同期２０２を開始するようにトリガされ得る。
【００１７】
立ち下がりエッジ同期２０２中、インジェクタ１０２は、トリガの再帰信号１１３を受信すると、基準クロック信号１１１の次の立ち上がりエッジを遅延線１０１に通す。これは、基準クロック１１１の次の立ち上がりエッジ（パルス７）で生じる、クロックイン信号１１４の立ち下がりエッジをトリガする。あるいは、クロックイン信号１１４の立ち下がりエッジは、パルス６または７などで基準クロック１１１の立ち下がりエッジにトリガされ得る。クロックイン信号１１４の立ち上がりエッジと同様に、クロックイン信号１１４の立ち下がりエッジは、インジェクタ１０２内の同じＡＮＤまたはＮＡＮＤゲートロジックによって制御され得る。クロックイン信号１１４の第１の立ち上がりエッジが、立ち下がりエッジを送信する前に遅延線１０１から出るのを待つことによって、あまりにも急速に遅延線１０１を動作させることによるクロック信号のパルス蒸発が回避される。遅延エッジ１１６の立ち上がりエッジは、クロックイン１１４の立ち上がりエッジが遅延線１０１に注入され、遅延エッジ１１６の信号パルスを生成するように処理されたことを示す。
【００１８】
クロックイン信号１１４の立ち下がりエッジに続いて、遅延線１０１（１．０クロックパルス遅延としてこの例で示される）に対する標的遅延に等しい遅延後、インジェクタ１０２は、遅延調整を設定するのに分析される第１の立ち下がりエッジとして、基準エッジ信号１１５のパルスの立ち下がりエッジを位相検出器１０３に送信する。遅延線１０１が前述の固有誤差のいずれかとともに遅延線１０１の現在の設定に従ってクロックイン信号１１４に遅延を追加した後、遅延エッジパルス１１６の立ち下がりエッジは、基準クロック１１１のパルス８中に生じるように生成される。位相検出器１０３は、遅延エッジ信号１１６の立ち下がりエッジを受信し、位相差が決定され得るように、この立ち下がりエッジを基準エッジ信号１１５の立ち下がりエッジと比較することができる。これを行うために、パルスＰＤ＿ＵＰ１１７は、基準クロック１１１のパルス８の立ち上がりエッジに示されるように、基準エッジ信号１１５を受信するとトリガされる。遅延エッジパルス１１６は、パルスＰＤ＿ＤＯＷＮ１１８をトリガする。位相検出器１０３が遅延エッジ１１６の立ち上がりエッジおよび基準エッジ１１５の立ち上がりエッジの両方を検出すると、パルスＰＤ＿ＵＰ１１７およびパルスＰＤ＿ＤＯＷＮ１１８は、基準クロック１１１のパルス８中にＰＤリセット２０４によって示されるように、再びゼロにリセットされる。位相検出器１０３のこのリセットによって、次の位相検出を行う状態にある。
【００１９】
図２は、パルスＰＤ＿ＵＰ１１７がパルスＰＤ＿ＤＯＷＮ１１８に先行する例示的なタイミング図を示すことに留意されるべきである。しかしながら、パルスＰＤ＿ＤＯＷＮ１１８がパルスＰＤ＿ＵＰ１１７の前に生じる場合があってもよく、この場合、遅延線１０１が必要以上により速く動作することを示すであろう。このようなシナリオは、制御信号１１９が所望の遅延値制御を飛び越える高値に設定された利得値を有する電荷ポンプ１０４から生じるであろう。約１クロック周期以下の遅延を検出すると、基準クロック１１１は、遅延線１０１内のパルス蒸発を気にせずに遅延線１０１に入ることができる。パルス蒸発は、遅延線１０１が処理することができるより速く遅延線１０１への入力が切り替えるときに生じ得る。例えば、遅延線１０１に対する総合遅延が遅延素子あたり０．２５ＵＩ遅延を付与する２単位間隔（２ＵＩ）である８遅延素子を有する遅延線１０１を考慮されたい。１ＵＩの持続時間を有するパルスは、１／０．２５＝４の遅延素子比率を超えるパルス幅を有し、これは、蒸発しないことが保証される。比率が４から１まで減少すると、パルスは蒸発し、通過しない。例えば、パルス持続時間が０．５ＵＩであると定義される場合、比率は、パルス蒸発に対する閾値にある０．５／０．２５＝２になる。３ＵＩの遅延線の場合、比率は、０．５／（３／８）＝１．３３になり、パルス蒸発は、基準クロック信号が遅延線１０１に直接入ることを許可される場合に生じるであろう。
【００２０】
あるいは、オーバーシュート（すなわち、逆相）を回避するために、電荷ポンプ１０４は、遅延線への調整が漸近的にゼロに近づく（すなわち、０の値に達せず、基準クロックに存在するジッターがある場合を除いて、パルスＰＤ＿ＤＯＷＮ１１８がパルスＰＤ＿ＵＰ１１７の前に生じないであろう）ＰＤ＿ＵＰ１１７とＰＤ＿ＤＯＷＮ１１８との位相検出器１０３での位相差をもたらすように、より低い利得値で設定されてもよい。
【００２１】
インジェクタ１０２は、基準エッジ信号１１５（パルスＰＤ＿ＵＰ１１７として受信された）の完全パルス（すなわち、１つの立ち上がりエッジおよび１つの立ち下がりエッジ）がシンクロナイザ１０５によって検出されるまで、クロックイン信号１１４の別の立ち上がりエッジを遅延線１０１に送信しない。第１のクロックインパルス１１４が遅延線１０１を通過した後まで第２のクロックイン１１４のパルスの注入を遅延することによって、総合遅延に関する曖昧性がなく、このことは、基準クロック１１１の周期の２、３または４倍の誤ったロックを回避する。
【００２２】
立ち上がりエッジ同期２０１および立ち下がりエッジ同期２０２の両方の場合、パルス蒸発が生じないことを確実にして、基準クロック信号１１１が遅延線１０１に対する直接入力になることを可能にするように十分に速い遅延設定に遅延線１０１が調整された検出を示すために、ロック検出信号１２１が生成される。また、ロック検出信号１２１は、インジェクタ１０２に対して一度に１つのエッジを送信させずに、連続的な基準クロック信号１１１が遅延線１０１の直接かつ連続的な入力になり得ることを示す。
【００２３】
シンクロナイザ１０５は、例えば、０ＵＩ以下などの遅延エッジ１１６と基準エッジ１１５との位相差が所定の閾値に達するとロック検出状態を決定する。この閾値は、電荷ポンプ１０４の利得制御が減衰応答で設定される場合に適切であり、このことは、遅延調整が適切な遅延を飛び越えることを可能にする。一方、万が一、閾値のみが近づくが達しない過減衰応答で電荷ポンプ１０４の利得制御が設定される場合には、閾値は、例えば、０．１ＵＩなどの０ＵＩを部分的に超えるべきである。そうでなければ、閾値が０ＵＩに等しく設定される場合に、ロック検出が生じ得ない。
【００２４】
遅延線１０１は、立ち上がりエッジ同期２０１が行われ、かつロック検出信号１２１が検出された後に遅延内にロックすることができ、その時点で、立ち下がりエッジ同期２０２が停止され得る。位相差が１つの立ち上がりエッジ同期２０１および１つの立ち下がりエッジ同期２０２後に許容レベルに達しない場合、ＤＬＬ回路１００は、必要なだけのサイクルのためのプロセスを続ける。ロック検出１２１の信号を検出すると、シンクロナイザ１０５は、非励起され得、遅延線１０１の制御は、位相検出器１０３および電荷ポンプ１０４を使用して続ける。
【００２５】
比例的誤差信号が生成される場合（電荷ポンプ１０４の場合のように）、遅延線１０１が最大遅延からのロックを開始するときに急速収束がさらに生じる。これは、１つの入力エッジが遅延エッジ信号１１６上に現れるまで、制御信号１１９が遅延線１０１内の遅延を連続的に下げるためである。ＰＤ＿ＵＰ１１７またはＰＤ＿ＤＯＷＮ１１８がアサートするとすぐに、アナログの電荷ポンプ１０４は、遅延線１０１上の遅延を修正し始める制御信号１１９を変更する。位相検出器１０３がバングバング型の位相検出器である場合、より長い収束時間が許容される必要があるか、非線形ループ利得が用いられる必要がある。
【００２６】
上述されるように、立ち上がりエッジ同期２０１および立ち下がりエッジ同期２０２を処理することによって、基準クロック１１１に遅延をロックする単一の注入された基準クロック１１１のパルス内で２つの機会がある。あるいは、立ち上がりエッジ同期２０１のみが独占的に、または、立ち下がりエッジ同期２０２が独占的に適用され、いずれにしても、ＤＬＬロックイン周期が倍になるであろう。
【００２７】
図３は、ＤＬＬ回路１００がｎ個の遅延素子３０５を有する遅延線１０１を利用し得る遅延線１０１の代替的配列としての回路３００を示す図であり、各遅延素子３０５は、遅延値Δを有し、総合遅延値ＤＬを生成するように直列に配列される。任意の時点で遅延をタップすることによって、部分遅延が位相検出を加速させるように遅延線１０１から抽出されてもよく、そこで、少なくとも３つの遅延素子３０５によって生成された遅延を待った後、例えば、クロックイン１１１の立ち上がりエッジの注入後、パルス蒸発の危険を冒さずに次のエッジを送信することが安全であることを予め定めてもよい。したがって、所定の数の遅延素子は、パルス蒸発を回避するために最小パルス値に基づいてもよい。この代替的手法は、上記に提示された図１および図２の説明の場合のように、別の立ち上がりエッジまたは立ち下がりエッジを送信する前に遅延線１０１の遅延値ＤＬ全体を待つことを回避する。また、この代替的手法を使用すると、ＤＬＬ回路１００は、立ち上がりエッジ同期２０１のみを使用しながら、遅延線１０１を同期するようにうまく動作することができる。
【００２８】
図３に示されるように、クロック伝播信号３２２は、遅延線１０１のタップとして生成される。遅延素子３０５は、αが１未満であるαＤＬに等しい部分遅延値を有する第１の遅延単位３０６として分割され、第２の遅延単位３０７は、遅延線１０１の総合遅延の残り（すなわち、（ｌ−α）ＤＬ）を生成する。例えば、タップは、第１の遅延単位３０６がｎ／２の遅延素子３０５からなり、かつ、第２の遅延単位３０７がｎ／２の遅延素子３０５（すなわち、α＝１／２）からなるように構成されてもよい。動作中、第１の遅延単位３０６は、インジェクタ１０２からクロックイン１１４の信号を受信し、（α・ＤＬ）に等しい部分遅延を生成する。第２の遅延単位３０７は、出力の遅延エッジ信号１１６でＤＬの総合遅延値に対して、遅延線１０１の総合遅延の残り（すなわち、（ｌ−α）ＤＬ）を生成する。クロック伝播信号３２２のタップは、第１の遅延単位３０６と第２の遅延単位３０７との間である。
【００２９】
図４は、例えば、α＝１／２である回路３００の信号図４００を示す図である。第１のクロックイン１１４の立ち上がりエッジは、基準クロック１１１のパルス２で整列されて示される。クロック伝播信号３２２は、部分遅延α・ＤＬに続いて開始される。基準エッジ１１５のパルスは、図１および図２に関して上述されるように基準クロック１１１の１クロック周期によって遅延される。任意の固有誤差とともに総合遅延ＤＬに続いて、遅延エッジ１１６の立ち上がりエッジが生じ、基準クロック１１１のパルス３中に示される。遅延エッジ１１６のこの第１のパルスの場合、遅延線１０１の遅延は、１．０クロック周期超（すなわち、１．２ＵＩ）で設定され、したがって、パルスＰＤ＿ＵＰ１１７は、パルスＰＤ＿ＤＯＷＮ１１８の前にアサートする。第２のクロックイン１１４が基準クロック１１１のパルス４で注入されると、クロック伝播信号３２２、基準エッジ１１５のパルスは、クロックイン１１４の第１の信号パルスと同様に続く。ここで遅延線１０１の遅延は、パルスＰＤ＿ＵＰ１１７およびパルスＰＤ＿ＤＯＷＮ１１８が結果として整列される１．０ＵＩであるより短い遅延に調整された。
【００３０】
図５は、シンクロナイザ１０５がクロックイン１１４として基準クロック１０１のあらゆるパルスを遅延線１０１に送信し始めるようにインジェクタ１０２をトリガするために連続信号５２３を生成する回路をさらに含むＤＬＬ回路５００を示す。連続信号５２３は、ＰＤ＿ＤＯＷＮ信号１１８がＰＤ＿ＵＰ信号１１７の後に４つ以上ではないインバータの遅延素子５５１の遅延値でアサートするという条件でトリガされ、遅延線が約１．０クロック周期以下の遅延に設定され、かつ、基準クロック１１１のクロック周期を直接許容することができる（すなわち、遅延線が基準クロック１１１の１．０のクロック周期に同期される）ことを示す。シンクロナイザ１０５は、信号ＰＤ＿ＵＰ１１７に遅延を追加する一連のインバータ５５１で配列され、ＰＤ＿ＵＰ１１７の逆遅延パルスである信号ＰＤ＿（￣ＵＰ）５５７を生成する。ＮＡＮＤゲート５５２は、ＰＤ＿ＤＯＷＮ１１８および信号ＰＤ＿（￣ＵＰ）５５７を受信し、連続信号５２３をトリガするためにセット信号５５８をラッチスイッチ５５３に送信する。ラッチスイッチ５５３は、ＰＭＯＳデバイスとしてこの例で示されるが、任意の同等のスイッチングデバイスが代用されてもよい。ラッチスイッチ５５３は、ラッチ５５５を操作する。インバータ５５１によって提供された追加の遅延は、遅延線１０１の遅延が基準クロック１１１の１．０クロック周期をわずかに超えるときにラッチスイッチ５５３が連続信号５２３をアサートすることを可能にし、これは、遅延線１０１の遅延が減少されているときに超えることが確実である。インバータ５５１の数は、遅延線１０１の遅延素子に存在する任意のプロセス製作公差に従って変更することができる。
【００３１】
また、図５は、基準エッジ１１５をＰＤ＿ＵＰ１１７に変換するＤ型フリップフロップ５３１と、遅延エッジ１１６をＰＤ＿ＤＯＷＮ１１８に変換するＤ型フリップフロップ５３２とを含む例示的な位相検出器１０３をより詳細に示す。Ｄ型フリップフロップが示されるが、他の好適なフリップフロップデバイスが代用されてもよい。また、位相検出器１０３は、ＡＮＤゲート５３５の出力をフリップフロップ５３１，５３２のリセットに連結することによって、両パルスを検出する際にＰＤ＿ＵＰ１１７の信号およびＰＤ＿ＤＯＷＮ１１８の信号をリセットするためのＡＮＤゲート５３５を含む。遅延素子５３３，５３４は、ＰＤ＿ＤＯＷＮ１１８に対する最小パルス幅を確実にし、これは、遅延素子５３３，５３４およびフリップフロップ５３１，５３２の遅延値ならびにＡＮＤゲート５３５の遅延に等しい。測定信号１２０は、フリップフロップ５３１，５３２で入力として受信され、位相検出器が遅延エッジ１１６および基準エッジ１１５を検出する状態にある瞬間に従ってインジェクタ１０２によってトリガされる。例えば、測定信号１２０は、インジェクタ１０２に対する便利なトリガとしてクロックイン１１４と同期されてもよい。
【００３２】
図６Ａ〜図６Ｃは、遅延線１０１の様々な遅延設定の図５に示されるシンクロナイザ信号の信号図を示す。図６Ａでは、遅延線１０１の遅延設定は、ロックされたと考慮されない１．０クロック周期を十分に超える（すなわち、ＤＬ＞１．０ＵＩ＋インバータ５５１の遅延）。その結果として、パルスＰＤ＿ＵＰ１１７は、パルスＰＤ＿ＤＯＷＮ１１８を導く。パルスＰＤ＿ＵＰ１１７は、基準エッジ１１５に応答してトリガされ、パルスＰＤ＿ＤＯＷＮ１１８は、遅延エッジ信号１１６に応答してトリガされる。信号ＰＤ＿（￣ＵＰ）５５７は、立ち下がりエッジが生じるように、インバータ５５１の遅延後に応答する。セット信号５５８のパルスは、ＰＤ＿ＤＯＷＮ１１８が高くなる前にＰＤ＿（￣ＵＰ）５５７が低くなるためトリガされない。
【００３３】
図６Ｂでは、基準エッジ１１５および遅延エッジ１１６の両方が基準クロック１１１のパルス２の立ち上がりエッジで生じ、遅延線１０１の設定が正確に１．０クロック周期であることを示し、１．０クロック周期の基準エッジに対する組み込み遅延と適合する。図６Ｂは、ＰＤ＿（￣ＵＰ）５５７が遅延インバータ５５１により立ち下がる前に立ち上がるＰＤ＿ＤＯＷＮ１１８を示しており、セット５５８が高パルスをアサートすることを可能にし、連続信号５２３をアサートさせる。
【００３４】
図６Ｃでは、遅延線１０１の遅延は、１．０クロック周期未満に設定され、パルスＰＤ＿ＤＯＷＮ１１８にパルスＰＤ＿ＵＰ１１７を導かせる。その結果として、セット信号５５８のパルス持続時間は、図６Ｂに示されるよりさらに増加する。図６Ａ〜図６Ｃによって実証されるように、インバータ５５１は、セット信号５５８のパルス持続時間がラッチスイッチ５５３を作動させるのに十分に長いことを確実にし、遅延線が１ＵＩ遅延でロックするのに近いことを検出する。連続信号５２３は、基準クロック１１１の１．０クロック周期未満に達する、インバータ５５１の遅延後および遅延線１０１の遅延前にトリガされる。
【００３５】
要約すれば、ＤＬＬ回路１００は、最大遅延周期を含む任意の遅延線状態から始動することによって、遅延ロックに対する電流消費を減少させることができ、これは、遅延線１０１の始動ロック前に最小遅延まで遅延線１０１を予め調整する必要性を排除する。ＤＬＬ回路１００の実装は、遅延線１０１がロックする前に最大遅延まで設定されることを可能にする。また、そうすることで、ＤＬＬ回路１００は、最悪の場合の最小遅延時間で動作するＤＬＬ内のサポート回路を有する必要性を排除する。ＤＬＬ回路１００は、選択された基準周期以外に誤ってロックすることができない。ＤＬＬ回路１００は、表示をロックする固有ロック検出信号１２１および時間を含む。
【００３６】
図７は、１つ以上の開示される実施形態が実装され得る例示的なデバイス７００のブロック図である。デバイス７００としては、例えば、コンピュータ、ゲーム機、ハンドヘルドデバイス、セットトップボックス、テレビ、携帯電話またはタブレットコンピュータが挙げられ得る。デバイス７００は、プロセッサ７０２と、メモリ７０４と、記憶装置７０６と、１つ以上の入力デバイス７０８と、１つ以上の出力デバイス７１０と、を含む。また、デバイス７００は、入力ドライバ７１２と、出力ドライバ７１４とを任意に含むことができる。デバイス７００は、図７に示されない追加のコンポーネントを含み得ることを理解される。
【００３７】
プロセッサ７０２としては、中央処理装置（ＣＰＵ）、グラフィックス処理ユニット（ＧＰＵ）、同じダイ上に位置するＣＰＵおよびＧＰＵ、または、各プロセッサコアがＣＰＵもしくはＧＰＵであり得る１つ以上のプロセッサコアが挙げられ得る。メモリ７０４は、プロセッサ７０２と同じダイ上に位置されてもよいし、プロセッサ７０２から別々に位置されてもよい。メモリ７０４としては、例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭもしくはキャッシュなどの揮発性または不揮発性メモリが挙げられ得る。ＤＬＬ回路１００は、例えば、バッファリングされた情報フローを制御するために遅延線１０１を使用して、遅延されたクロック信号をメモリ７０４に送信するなどのように、様々なプロセスのタイミングを制御するプロセッサ７０２で実装されてもよい。
【００３８】
記憶装置７０６としては、例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスクもしくはフラッシュドライブなどの固定又はリムーバブル記憶装置が挙げられ得る。入力デバイス７０８としては、キーボード、キーパッド、タッチスクリーン、タッチパッド、検出器、マイクロホン、加速度計、ジャイロスコープ、バイオメトリックスキャナまたはネットワーク接続（例えば、無線ＩＥＥＥ８０２信号の送信および／もしくは受信のための無線ローカルエリアネットワークカード）が挙げられ得る。出力デバイス７１０としては、ディスプレイ、スピーカ、プリンタ、触覚フィードバックデバイス、１つ以上の照明、アンテナ、または、ネットワーク接続（例えば、無線ＩＥＥＥ８０２信号の送信および／もしくは受信のための無線ローカルエリアネットワークカード）が挙げられ得る。
【００３９】
入力ドライバ７１２は、プロセッサ７０２および入力デバイス７０８と通信し、プロセッサ７０２が入力デバイス７０８からの入力を受信することを可能にする。出力ドライバ７１４は、プロセッサ７０２および出力デバイス７１０と通信し、プロセッサ７０２が出力デバイス７１０に出力を送信することを可能にする。入力ドライバ７１２および出力ドライバ７１４は任意のコンポーネントであり、デバイス７００は、入力ドライバ７１２および出力ドライバ７１４が存在しない場合と同じ様式で動作することに留意される。また、プロセッサ７０２で実装されたＤＬＬ回路１００は、プロセッサ７０２と入力ドライバ７１２とのタイミング、入力デバイス７０８、出力ドライバ７１４および／または出力デバイス７１０を制御するために使用されてもよい。
【００４０】
特徴および要素が特定の組み合わせで上述されているが、各特徴もしくは要素は、他の特徴および要素なしに、または、他の特徴および要素の有無にかかわらず様々な組み合わせで単独で使用されてもよい。本明細書に記載される装置は、汎用コンピュータもしくはプロセッサによる実行のためにコンピュータ可読記憶媒体に組み込まれるコンピュータプログラム、ソフトウェアまたはファームウェアを使用することによって製造されてもよい。コンピュータ可読記憶媒体の例としては、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスクおよびリムーバブルディスクなどの磁気媒体、光磁気記憶媒体、ならびに、ＣＤ−ＲＯＭディスクおよびデジタル多用途ディスク（ＤＶＤ）などの光媒体が挙げられる。
【００４１】
本発明の実施形態は、コンピュータ可読記憶媒体に記憶された命令およびデータとして表されてもよい。例えば、本発明の態様は、ハードウェア記述言語（ＨＤＬ）であるＶｅｒｉｌｏｇを使用して実装されてもよい。処理されると、Ｖｅｒｉｌｏｇデータ命令は、半導体製造設備で実装された製造プロセスを行うために使用され得る他の中間データ（例えば、ネットリスト、ＧＤＳデータなど）を生成することができる。製造プロセスは、本発明の様々な態様を具現化する半導体デバイス（例えば、プロセッサ）を製造するように適合されてもよい。
【００４２】
好適なプロセッサとしては、例えば、汎用プロセッサ、専用プロセッサ、従来のプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、複数のマイクロプロセッサ、グラフィックス処理ユニット（ＧＰＵ）、ＤＳＰコア、コントローラ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、任意の他のタイプの集積回路（ＩＣ）および／もしくは状態マシン、または、これらの組み合わせが挙げられる。
【図１】
0005905607.tif 000002
【図２】
0005905607.tif 000003
【図３】
0005905607.tif 000004
【図４】
0005905607.tif 000005
【図５】
0005905607.tif 000006
【図６Ａ】
0005905607.tif 000007
【図６Ｂ】
0005905607.tif 000008
【図６Ｃ】
0005905607.tif 000009
【図７】
0005905607.tif 000010