(57)【特許請求の範囲】
【請求項１】
同期デジタル・システムにおいてクロック信号をデスキューする装置であって、
複数のクロック信号を受け取り、該クロック信号同士の間の位相関係に基づいて出力を生成するように構成された位相検出回路であって、
第１のクロック信号を所定量だけ遅延させる第１の遅延負荷と、
第２のクロック信号を所定量だけ遅延させる第２の遅延負荷と、
前記遅延されたクロック信号の一方と遅延されないクロック信号の一方とを受け取る第１の位相検出器と、
前記遅延されたクロック信号の他方と遅延されないクロック信号の他方とを受け取る第２の位相検出器と、
を備え、該第１、第２の位相検出器が前記遅延されたクロック信号と遅延されていないクロック信号とを比較して前記位相関係を示す出力を生成するよう構成されている位相検出回路と、
複数の遅延回路であって、各遅延回路は複数のクロック信号の対応する一つに結合し、遅延信号に基づいて該複数のクロック信号の１つを調整するためのものである複数の遅延回路と、
前記位相検出回路と前記複数の遅延回路に結合したコントローラとから構成され、前記コントローラは前記位相検出回路からの出力を受けて前記遅延信号を発生し、この遅延信号を前記位相検出回路の出力に基づいて前記複数の遅延回路の１つに送出することを特徴とする装置。
【請求項２】
同期デジタル・システムであって、
周波数を有するシステム・クロックと、
プロセッサとを備え、前記プロセッサは、
前記システム・クロックの周波数を受け取り、一部が該システム・クロックと同期する複数のクロック信号を生成するように構成された生成装置と、
前記複数のクロック信号を受け取り、該クロック信号同士の位相関係に基づいて出力を生成するように構成された位相検出回路であって、
第１のクロック信号を所定量だけ遅延させる第１の遅延負荷と、
第２のクロック信号を所定量だけ遅延させる第２の遅延負荷と、
前記遅延されたクロック信号の一方と遅延されないクロック信号の一方とを受け取る第１の位相検出器と、
前記遅延されたクロック信号の他方と遅延されないクロック信号の他方とを受け取る第２の位相検出器と、
を備え、該第１、第２の位相検出器が前記遅延されたクロック信号と遅延されていないクロック信号とを比較して前記位相関係を示す出力を生成するよう構成されている位相検出回路と、
複数の遅延回路であって、各遅延回路は複数のクロック信号の対応する一つに結合し、遅延信号に基づいて該複数のクロック信号の１つを調整するためのものである複数の遅延回路と、
前記位相検出回路の出力を受信して前記遅延信号を発生し、この遅延信号を前記位相検出回路の出力に基づいて前記複数の遅延回路の１つに送出するコントローラと
を備えることを特徴とする同期デジタル・システム。
【請求項３】
複数のクロック信号を受け取り、該クロック信号同士の間の位相関係に基づいて出力データを生成するように構成した位相検出回路であって、
第１のクロック信号を所定量だけ遅延させる第１の遅延負荷と、
第２のクロック信号を所定量だけ遅延させる第２の遅延負荷と、
前記遅延されたクロック信号の一方と遅延されないクロック信号の一方とを受け取る第１の位相検出器と、
前記遅延されたクロック信号の他方と遅延されないクロック信号の他方とを受け取る第２の位相検出器と、
を備え、該第１、第２の位相検出器が前記遅延されたクロック信号と遅延されていないクロック信号とを比較して前記位相関係を示す出力を生成するよう構成されている位相検出回路と、
各遅延回路が前記複数のクロック信号の対応する一つに結合している、複数の遅延回路にそれぞれ結合した複数のレジスタと、
前記位相検出回路と前記複数のレジスタとに結合しており、前記位相検出回路からの出力データを読み取って前記複数のクロック信号間の遅延を決定し、かつ前記複数のクロック信号間の遅延を選択的に調整するため該複数のレジスタの１つを変更するコントローラとから構成され、
前記遅延回路は前記レジスタに蓄積されている値に基づいて前記複数のクロック信号の１つを調整することを特徴とするクロック信号をデスキューする装置。
【請求項４】
デジタル・システムをデスキューする方法において、この方法は、
遅延回路に接続した複数のクロック信号間の位相関係を決定するステップと、
前記決定された位相関係と前記遅延回路の出力に基づいて、前記複数のクロック信号を同期させるために前記複数のクロック信号の１つを調整するステップとを有しており、さらに、この調整するステップが、
前記位相関係をコントローラに供給し、前記位相関係と前記遅延回路の出力に基づいて、前記コントローラが前記複数のクロック信号のどの信号の調整を必要とするかを決定するステップを含んでおり、
前記位相関係を決定するステップが、
第１のクロック信号を第１の位相検出器に供給することと、
第２のクロック信号を所定量だけ遅延させることと、
該遅延された第２のクロック信号を前記第１の位相検出器に供給することと、
遅延されていない前記第２のクロック信号を第２の位相検出器に供給することと、
前記第１のクロック信号を所定量だけ遅延させることと、
前記遅延された第１のクロック信号を前記第２の位相検出器に供給こととを含み、該第１、第２の位相検出器が、前記第１のクロック信号が第２のクロック信号に先行していること、前記第２のクロック信号が前記第１のクロック信号に先行していること、あるいは前記第１、第２のクロック信号が同期していることのいずれかの位相関係を生成することを含んでおり、さらに、この方法は、
前記調整を必要とすると、前記コントローラによって決定された前記複数のクロック信号の１つに結合している遅延回路にコントローラ信号を送出するステップと、
前記コントローラ信号に基づいて前記複数のクロック信号の１つの信号の遅延を補正するステップとを有していることを特徴としたデジタル・システムをデスキューする方法。
【発明の詳細な説明】
【０００１】
（関連出願の相互参照）
本出願は、本出願と同じ日付に出願され、本出願と同じ譲渡人に譲渡された、発明者Ｘｉａ  ＤａｉおよびＪｏｈｎ  Ｔｈｏｍｐｓｏｎ  Ｏｒｔｏｎによる「Ａｄａｐｔｉｖｅ  Ｆｉｌｔｅｒｉｎｇ  Ｓｃｈｅｍｅ  Ｆｏｒ  Ｓａｍｐｌｉｎｇ  Ｐｈａｓｅ  Ｒｅｌａｔｉｏｎｓ  Ｏｆ  Ｃｌｏｃｋ  Ｎｅｔｗｏｒｋｓ」と題する米国特許出願第 号に関する。
【０００２】
（発明の分野）
本発明は、クロック分配管理分野に関する。詳細には、本発明は、マイクロプロセッサ内のクロック分配線をデジタル的なデスキュー（クロックの立ち上がりのずれを修正する）に関する。
【０００３】
（発明の背景）
初期のマイクロプロセッサ設計は、マイクロプロセッサの中央に配置された単一のクロック分配線またはスパインを使用してマイクロプロセッサ全体にわたってクロック信号を送る。マイクロプロセッサ内の格子状の電力分配によって、ダイを横切って非一様な熱勾配および電圧勾配が形成され、送られたクロック信号にスキューが形成される。いくつかのマイクロプロセッサ設計は、ダイの周辺に沿った２本の分配線を使用してこの効果を低減している。しかし、この方法では、依然としてクロック分配線同士の間にスキューが生じる。マイクロプロセッサ設計のクロック周波数が増加するにつれて、クロック分配回路網内のスキュー管理はますます重要になっていく。クロック・スキューは、マイクロプロセッサ入出力および内部回路タイミングに影響を与える。最大遅延経路で、クロック・スキューは最大動作周波数を制限する。クロック・スキューは、負荷、回路網分布、およびデバイス不一致と、温度勾配および電圧勾配の関数である。
【０００４】
ある従来型のアナログ同期システムでは、中央タップによる一定の遅延が１本の分配線で使用され、それに対して第２の分配線が調整される。このアナログ手法の１つの欠点は、遅延を延長したときにシステムのフィードバック・ループでノイズが生成されることである。
【０００５】
（発明の概要）
マイクロプロセッサ内のクロック分配信号をデジタルにデスキューする装置について説明する。このデジタル・デスキュー回路は、クロック分配線内の遅延線と、位相検出回路と、コントローラとで構成される。位相検出回路は、クロック分配線同士の間の位相関係を決定し、同時にノイズを調整し、コントローラ用の出力を生成する。コントローラは、位相検出情報およびあるビットを遅延シフト・レジスタから取り出し、１本の遅延線に離散的な調整を施す。
【０００６】
本発明の他の特徴および利点は、添付の図面および以下の詳細な説明から明らかになろう。
【０００７】
本発明を限定ではなく例として添付の図面に示す。図中、同じ参照番号は同じ要素を示す。
【０００８】
（詳細な説明）
プリグローバル・マイクロプロセッサ・クロック分配回路網内の遅延線と、位相検出回路と、制御論理とで構成されたデジタル・デスキュー回路について説明する。制御論理は、クロック・スパイン位相関係情報を受け取り、クロック分配回路網内のスキューを補償するように遅延線の遅延を調整する。本発明の実施形態の初期の利点には、実際のクロック回路網構成要素変形形態および相互接続変形形態に基づくスキューの低減が含まれる。１つの所期の利点は、スキューが低減され、同時に、クロック分配回路網のフィードバック・ループが最小限に抑えられることである。
【０００９】
図１は、本発明の実施形態を含むマイクロプロセッサを有するコンピュータ・システムの概略図を示す。コンピュータ・システムは、一実施形態では、電池駆動システムである。他の実施形態では、コンピュータ・システムはＡＣ（「交流」）駆動であってよい。コンピュータ・システムは、ラップトップ・コンピュータ、ノートブック・コンピュータ、デスクトップ・コンピュータ、ワークステーション、メーンフレーム、または任意の他の種類のコンピュータでよい。また、コンピュータ・システムは、プリンタ・システムや携帯電話システムなど任意の種類のデータ処理システムまたは信号処理システムでよい。コンピュータ・システムは一般に、表示装置２と、キーボード６と、メモリ３と、電池４と、クロック９と、クロック・スパイン３０、４０およびフェーズ・ロック・ループ（「ＰＬＬ」）１０を有するマイクロプロセッサ２０とを備える。バス７は、様々な構成要素およびサブシステムを互いに結合する。バス７は、信号線、クロック線、および電源線を備える。
【００１０】
メモリ３は、マイクロプロセッサによって使用される情報を記憶する。メモリ３は、ダイナミック・ランダム・アクセス・メモリ（「ＤＲＡＭ」）、スタティック・ランダム・アクセス・メモリ（「ＳＲＡＭ」）、ハード・ディスク・ドライブ、フロッピィ・ディスク、コンパクト・ディスク読取り専用メモリ装置（「ＣＤ−ＲＯＭ」）、フレッシュ・メモリ、またはその他のメモリ装置を備えることができる。
【００１１】
電池４は、コンピュータ・システムに電力を供給する。通常、コンピュータ・システムは、ＡＣ電力を使用することができるが、電池は、ＡＣ電力の使用が不都合であるか、あるいはＡＣ電力が使用不能であるときに使用される。電池４はリチウム電池でも、ニッカド電池でも、ニッケル・メタル・ハライド電池でも、あるいはその他の電池装置でもよい。電池駆動コンピュータ・システムはエネルギーを節約する必要があるので、通常、このようなシステムは、コンピューティング活動が存在しないときに、マイクロプロセッサを含む様々な構成要素またはサブシステムを待機モードまたは低電力モードにする。低電力モードでは、マイクロプロセッサ２０の一部またはすべてをオフにすることができ、したがって、一方または両方のクロック・スパインがオフになる。このような条件の下では、デスキュー回路も非活動化する必要がある。システムが通常モードに戻ると、デスキュー回路が通常の状態に復元する。本発明の他の実施形態は、システムの電力投入時にクロック分配スパインのデスキューのみを行うように構成することができる。
【００１２】
クロック９は、動作を行うタイミング基準を同期されるコンピュータ・システムに与えるために使用される。クロック９は、水晶発振器、タイマ、マルチバイブレータ、またはその他のタイミング装置でよい。クロック９は、マイクロプロセッサなどのコンピュータ・サブシステムにタイミング信号を与え、このようなサブシステムの動作を同期させる。
【００１３】
マイクロプロセッサ２０は、キーボード６から信号を受け取り、情報を表示装置２に送る。代替実施形態では、マイクロプロセッサ２０はコプロセッサでよい。他の実施形態では、マイクロプロセッサ２０は、マイクロコントローラなど他の種類のプロセッサでよい。マイクロプロセッサ２０は、メモリ３から得た情報を処理し、メモリ３に情報を記憶する。マイクロプロセッサ２０は、コンピュータ・プログラムまたはオペレーティング・システムを復号し実行することができる。
【００１４】
後述の実施形態では、デスキュー回路は、マイクロプロセッサ２０のＰＬＬ１０に結合された２つのクロック分配スパイン、すなわち線３０および４０を備える。ただし、本発明は２つ以上のクロック・スパインまたは単一の分割クロック・スパインを含むことができる。
【００１５】
図２は、本発明の一実施形態を実装したマイクロプロセッサ２０内のデジタル・デスキュー回路のブロック図である。マイクロプロセッサ２０内のＰＬＬは、内部クロックを外部クロックに固定するか、あるいは同期させる働きをする。通常、ＰＬＬによって生成される内部クロックは、周波数合成と呼ばれる周知の方法によって外部クロックよりも高い周波数で動作する。一実施形態では、ＰＬＬ１０は、入力ＸＣＬＫ５を介してＰＬＬに供給されるクロック９と左クロック・スパイン３０を線１５を介して同期させる。
【００１６】
ＰＬＬ１０は、同期クロック信号を遅延線４００ａおよび４００ｂを通して出力し、分配部５０ａおよび５０ｂをバッファする。バッファされた分配部５０ａおよび５０ｂは、クロック回路網のローディング機能または駆動機能を強化する。クロック・スパイン３０および４０は、マイクロプロセッサ２０のＰＬＬ１０によって生成される内部クロック・コア６０を分配するクロック信号線である。図２の位相検出回路１００は、左スパイン・クロック３０と右スパイン・クロック４０との間の位相関係を判定し、コントローラ２００に入力されるバス線１６５および１６６のバイナリ出力を生成する。コントローラ２００はまた、左遅延シフト・レジスタ３００ａおよび右遅延シフト・レジスタ３００ｂの最下位ビット（「ＬＳＢ」）をそれぞれ線ＬＳＢ３１０ＡおよびＬＳＢ３１０Ｂに沿って受け取る。コントローラ２００は、これらの入力を使用して、クロック・スキューを補償するように遅延線４００ａおよび４００ｂに沿った容量負荷を調整する。負荷調整は、コントローラ２００の出力レジスタ・データ３１５Ａおよび出力レジスタ・データ３１５Ｂを介して実行される。レジスタ・データ３１５Ａおよびレジスタ・データ３１５Ｂは、左遅延シフト・レジスタ３００Ａおよび右遅延シフト・レジスタ３００Ｂに記憶されている値を変更する。これらの遅延シフト・レジスタ内の値は、左遅延線４００ａおよび右遅延線４００ｂに対する容量負荷の除去または付加を介して左スパイン・クロック３０および右スパイン・クロック４０を変更するために使用される。
【００１７】
一実施形態では、レジスタ・データ３１５Ａは、左遅延レジスタ３００ＡのＬＳＢに値「１」をシフトし、左遅延線４００ａに容量負荷を付加する。これによって、左クロック・スパイン３０上の遅延が延長する。レジスタ・データ３１５Ａは、左遅延レジスタ３００ＡのＭＳＢに値「０」をシフトし、したがって、左遅延線４００ａに対する容量負荷を低減させる。これによって、左クロック・スパイン３０上の遅延が短縮される。レジスタ・データ３１５Ｂは、右遅延レジスタ３００Ｂに値「１」をシフトし、右遅延線４００ｂに容量負荷を付加し、したがって、右クロック・スパイン４０上の遅延を延長する。レジスタ・データ３１５Ｂは、右遅延レジスタ３００ＢのＭＳＢに値「０」をシフトし、右遅延線４００ｂに対する容量負荷を低減し、したがって、右クロック・スパイン４０上の遅延を短縮する。
【００１８】
図３は位相検出回路１００を示す。位相検出回路１００は、２つの対称位相検出器１６０ａおよび１６０ｂと、２つの遅延負荷１４０ａおよび１４０ｂと、ノイズ・バンド１５０（以下を参照されたい）とを備えている。図２の左スパイン・クロック３０および右スパイン・クロック４０はそれぞれ、位相検出器１６０ａおよび１６０ｂへの入力である。位相検出器１６０ａは、線１６１として示された遅延左スパイン・クロック３０も入力として有する。位相検出器１６０ｂは、線１６２として示された遅延右スパイン・クロック３０も入力として有する。線１６１および１６２上の信号は、それぞれ遅延負荷１４０ａおよび１４０ｂによって制御される調整可能な等しい量だけ遅延される。位相検出器１６０ａでは、左スパイン・クロック３０からの信号が、一定量だけ遅延され、次いで、右クロック・スパイン４０からの遅延されていない信号と比較される。位相検出器１６０ｂでは、右スパイン・クロック４０からの信号が、一定量だけ遅延され、次いで、左クロック・スパイン３０からの遅延されていない信号と比較される。各位相検出器は、遅延されたクロック信号が遅延されていないクロック信号に先行しているかどうかを判定する。
【００１９】
図４ａは、位相検出回路１００の位相検出器１６０ａを示す。位相検出器１６０ａは、４つのＲＳラッチ４７０を直列結合することによって構成される。入力遅延左スパイン・クロック１６１は遅延負荷１４０ａ、インバータ４６０、およびＮＡＮＤ４９６に結合される。入力右スパイン・クロック４０は遅延負荷１６３、インバータ４６２、およびＮＡＮＤ４９６に結合される。インバータ４６０および４６２の出力は第１のＲＳラッチ４７０Ａに出力される。ＮＡＮＤ４９６の出力は遅延論理４３０に結合される。
【００２０】
ＲＳラッチ４７０Ａの一方の出力はインバータ４６４およびＮＡＮＤ４８０を介してＲＳラッチ４７０Ｂに結合され、それに対して、第２の出力はインバータ４６６およびＮＡＮＤ４８２を介してＲＳラッチ４７０Ｂに結合される。ＮＡＮＤゲート４８０および４８２の入力は遅延論理４３０の出力である。同様な結合によって、ＲＳラッチ４７０ＢがＲＳラッチ４７０Ｃに接続され、ＲＳラッチ４７０ＣがＲＳラッチ４７０Ｄに接続される。しかし、ＮＡＮＤゲート４８４および４８６の一方の入力はインバータ４６８の出力に結合され、インバータ４６８の出力は遅延論理４３０の出力に結合される。ＲＳラッチ４７０Ｄの出力および入力１６８（以下を参照されたい）はＮＯＲゲート４９２に結合される。ＮＯＲゲート４９２はバイナリ出力１６５を生成する。
【００２１】
本発明の一実施形態では、７つの遅延負荷タップと１つの固定タップを用いて遅延負荷１４０ａを調整することができる。遅延負荷１４０ａは最初、１つの固定タップに設定され、遅延負荷１６３は、整合させるように設定されたタップなしで使用される。タップ当たり遅延は通常、１５ピコ秒（「ｐｓ」）に設定されるが、設計要件に応じて変更することができる。位相検出器１６０ｂは、上記で位相検出器１６０ａに関して説明したのと同様に動作する。
【００２２】
図４ｂは、クロス結合されたＮＡＮＤゲート４７１および４７２を含むＲＳラッチ４７０を示す。クロス結合されたＮＡＮＤゲート４７１および４７２はＲＳ（リセット・セット）ラッチとして構成される。ラッチ性能に影響を与える因子は準安定性である。２つの信号がほぼ同じ時間にラッチされ、完全ＶＣＣレベルまたは完全ＶＳＳ（グランド）レベルから逸脱した「０」と「１」の間のラッチ出力が得られたときに準安定性が生じる。この条件がラッチ・チェーンに沿って伝搬すると、位相検出器の偽出力状態が得られる。ラッチは、複数のラッチが直列結合されたときに準安定性条件が伝搬する可能性を低減するように設計されパイプライン化される。
【００２３】
従来型の位相検出方式は、アナログ電圧を駆動するパルス幅を使用する。位相検出器１６０ａおよび１６０ｂは、バス線１６５および１６６上でコントローラ２００にバイナリ出力を供給する。信号１６５と信号１６６の可能な出力組合せは、左スパイン・クロック３０と右スパイン・クロック４０との間の遅延を反映する。一実施形態では、出力値「１０」は、右スパイン・クロック４０に先行する左スパイン・クロック３０に対応する。出力値「０１」は、左スパイン・クロック３０に先行する右スパイン・クロック４０に対応する。出力値「００」は、ノイズ・バンド・フィルタ１５０の帯域幅内に残る左スパイン・クロック３０と右スパイン・クロック４０の両方に対応する。出力「１１」は通常、発生しない。位相検出器１６０ａおよび１６０ｂへの遅延入力１６１および１６２によって、１１出力状態が生じることはなくなる（出力１１は、各遅延入力が他の入力に先行すること、すなわち、ＲＳラッチ４７０のクロス結合されたＮＡＮＤゲートの準安定性のために擬似生成されないかぎり通常は生じない矛盾する条件を意味する。
【００２４】
本発明の他の実施形態では、マイクロプロセッサは、すべてのクロック・スパインが使用されるわけではない低電力モードで動作する。このような動作モードでは、デスキュー回路がディスエーブルされ、シフト・レジスタ・ビットが記憶され、位相検出回路１００の出力が、コントローラ２００によって図２の線１６８を介して００状態にされる。これは、通常電力モードに戻る際にデスキュー回路をプリシャットダウン状態に再初期設定するために行われる。
【００２５】
図５Ａは、コントローラ２００の状態図を示す。デスキュー回路の制御は状態マシンによって実行される。この状態マシンは、位相検出回路１００出力１６５および１６６を遅延シフト・レジスタの最下位ビット（「ＬＳＢ」）３１０ａおよび３１０ｂと共に解釈し、次いで遅延線４００ａおよび４００ｂを更新する。クロック・スパイン３０および４０の標本抽出から遅延線４００ａおよび４００ｂの調整までの呼出し時間は、３クロック・サイクルに過ぎない。新しい標本は第５サイクルで得られる。各４サイクル内に、最大で１回のシフト・イベントしか行われない。
【００２６】
更新は、検査ジャンプ（「ＣＨＫＡＮＤＪＭＰ」）状態２２５で開始する。状態２２５で、コントローラは左遅延シフト・レジスタ３００ａまたは右遅延シフト・レジスタ３００ｂをシフト・アップまたはシフト・ダウンする。コントローラは、左クロック・スパイン３０と右クロック・スパイン４０との間の遅延と、ＬＳＢ３１０ａおよびＬＳＢ３１０ｂの値とに基づいてどちらの遅延シフト・レジスタをシフトするかを判定する。前述のように、位相検出出力１６５および１６６は、左スパイン・クロック３０と右スパイン・クロック４０との間の遅延を反映する。たとえば、左クロック・スパイン３０が右クロック・スパイン４０に先行しており、右遅延シフト・レジスタ３００ｂのＬＳＢ３１０ｂが「０」である（現在、右遅延線上に負荷がないことを示す）場合、コントローラは状態２２４に移行し、左遅延シフト・レジスタ３００ａを１ビットだけシフト・アップする。コントローラ２００は、右シフト・レジスタ３００ｂ上に遅延が付加されていないことを検出しているので、左クロック・スパイン３０に遅延を付加している。次に、コントローラはアップバンド・イベント、すなわち状態２１６を検出し、状態２２０を１サイクル保持し、次いでＣＨＫＡＮＤＪＵＭＰ状態２２５に戻る。アップバンド・イベントが起こるのは、一方の遅延線への修正された遅延が有効になる前にクロック・スパインの位相関係が反転するときである。コントローラは、状態２２４でアップバンド・イベントを検出しなかった場合は状態２２２に進み、状態２２２でアップバンド・イベントが検出されない場合は状態２１８に進む。検出された場合は状態２１９に進む。
【００２７】
他の例を挙げると、左クロック・スパイン３０が右クロック・スパイン４０に先行しており、右遅延シフト・レジスタ３００ｂのＬＳＢ３１０ｂが「１」である（現在、遅延線上に負荷があることを示す）場合、コントローラは状態２２３に移行し、右シフト・レジスタ３００ｂのＭＳＢに「０」をシフトし、右シフト・レジスタのＬＳＢから「１」をシフトする。前の例と同様に、コントローラは、状態２２２でシフト・レジスタ・ビットを保持し、状態２１９でアップバンド・イベントを監視する。コントローラ状態２２１、２１７、２１３、および２１１は、右クロック・スパイン４０が左クロック・スパイン３０に先行していることをコントローラ２００が検出したときに、それぞれ状態２２３、２２４、２２２、および２１８について説明したのと同様に動作する。
【００２８】
不正ブロック２１２および２１４は、正常条件下では存在すべきではない状態であり、このとき、コントローラ２００が準安定性のために不可能条件を検出し、ＣＨＫＡＮＤＪＵＭＰ状態２２５にループバックする。
【００２９】
リセット・ブロック２１０は、コントローラが電力投入または電力リセット（「ＰＷＲＲＳＴ」）に入る初期状態である。この初期状態では、シフト・レジスタ３００ａにも、あるいはシフト・レジスタ３００ｂにも遅延は付加されていない。したがって、シフト・レジスタ３００ａとシフト・レジスタ３００ｂは共にすべてのビット位置に「０」を有し、コントローラ２００はシフト・レジスタ３００ａとシフト・レジスタ３００ｂのいずれかにのみ遅延を付加することができる。このため、この後に続く可能な状態は、それぞれ、左シフト・レジスタ３００ａにおいて、「１」が右側の最左ビット３１０ａにシフトされるか、あるいは右シフト・レジスタ３００ｂにおいて、「１」が右側の最左ビットにシフトされることに対応する状態２２４または状態２１７の２つの状態だけである。コントローラ２００は次いで、前述のように進行する。
【００３０】
本発明の一実施形態では、コントローラ２００の状態マシンが、ループ遅延を最小限に抑えるためにインタロックを組み込んでいる。インタロックによって、一方の線への遅延の付加は、他方の線上に遅延が存在するときには妨げられる。調整された遅延線が、前の更新で遅延がなくなるように駆動されており、この遅延をさらに短縮する必要がないことを位相検出回路１００が示している場合にのみ、コントローラは他の遅延線の遅延の延長を開始する。前の例で例示すると、右遅延シフト・レジスタ３００ｂのＬＳＢ３１０ｂが「１」であった場合（現在、遅延線上に負荷が存在する）、右遅延シフト・レジスタ３００ｂは１ビットだけシフト・ダウンされる。したがって、コントローラ２００は、左クロック・スパイン３０に遅延を付加する前に、右クロック・スパイン４０上の遅延を短縮する。遅延シフト・レジスタの両方のＬＳＢに「１」を有するシフト・レジスタ・パターンが検出されると状態２１５に入る。遅延シフト・レジスタの破壊は、準安定イベントによって起こる可能性があり、状態２１５で両方の遅延シフト・レジスタのＬＳＢから１をシフト・アウトすることによって正常状態に補正される。電源ノイズによって誘発されるジッタが電源ノイズの量およびクロック・ループ遅延の長さの関数であるので、インタロック機能により、遅延するクロック・スパインは、クロック・ジッタを最小限に抑えるように最小限の遅延に維持される。
【００３１】
図５ｂは、図５ａの状態図の好ましい一実施形態を実現する論理図を示す。図５ａの状態図の様々な変形形態および変形実施が可能である。図５ｂは、フィードバック経路でメモリ要素５２０に結合された組合せ論理ブロック（ＬＢ）５００および５１０からなる。メモリ要素５２０に記憶されているバイナリ情報は、図５ａに示すコントローラ２００の状態を定義する。
【００３２】
一実施形態では、メモリ要素５２０は、クロス結合されたインバータからなるＲＳフリップ・フロップを含む。代替実施形態では、メモリ要求はたとえば、ロード可能／リセット可能なカウンタ、Ｄフリップフロップ、ＪＫフリップフロップ、またはスタティック参照テーブルを含む。
【００３３】
コントローラ２００は入力１６５、１６６、ＰＷＲＲＳＴ、３１０Ａおよび３１０Ｂを有する。入力１６５および１６６は図３の位相検出回路１００のバイナリ出力である。入力１６５および１６６は、左スパイン・クロック３０が先行しているかどうか、右スパイン・クロック４０が先行しているかどうか、あるいは左スパイン・クロック３０と右スパイン・クロック４０が共に図３のノイズ・バンド・フィルタ１５０の帯域幅内にあるかどうかをコントローラ２００に知らせる。入力ＰＷＲＲＳＴはコントローラ２００に電力投入または電力リセットを知らせる。入力３１０Ａおよび３１０Ｂはそれぞれ、左遅延シフト・レジスタ３００ａのＬＳＢおよび右遅延シフト・レジスタ３００ｂのＬＳＢを表す。これらの入力は、メモリ要素５２０の現在の状態と共に、コントローラ２００のバイナリ出力を決定する。コントローラ２００のバイナリ出力はレジスタ・データ３１５ａおよびレジスタ・データ３１５ｂである。出力レジスタ・データ３１５ａは左遅延シフト・レジスタ３００ａ内の値を変更し、それによって、左クロック・スパイン３０上のクロック遅延が変更される。出力レジスタ・データ３１５Ａは、左遅延シフト・レジスタ３００ａのＬＳＢに値「１」をシフトして遅延を延長するか、あるいは左遅延シフト・レジスタ３００ａのＭＳＢに値「０」をシフトして遅延を短縮するために使用される。出力レジスタ・データ３１５Ｂは右遅延シフト・レジスタ３００ｂ内の値を変更し、それによって、右クロック・スパイン４０上のクロック遅延が変更される。出力レジスタ・データ３１５Ｂは、右遅延シフト・レジスタ３００ｂのＬＳＢに値「１」をシフトして遅延を延長するか、あるいは右遅延シフト・レジスタ３００ｂのＭＳＢに値「０」をシフトして遅延を短縮するために使用される。
【００３４】
したがって、コントローラ２００は、図５ａの状態図に続いて出力レジスタ・データ３１５ａおよび出力レジスタ・データ３１５ｂを変更することによって、右クロック・スパイン４０または左クロック・スパイン３０に離散的な調整を施すことができる。このクロック調整は、位相検出器回路１００の出力と、左遅延シフト・レジスタ３００ａのＬＳＢおよび右遅延シフト・レジスタ３００ｂのＬＳＢに依存する。
【００３５】
図５ａの状態入力はメモリ要素５２０に記憶される。メモリ要素５２０は、入力ＰＷＲＲＳＴに結合されたリセット入力と、状態入力５７０を介してＬＢ５００に結合された４ビット・データ入力と、４ビット・データ出力、すなわち状態出力５５０とを含む。
【００３６】
リセット入力は、アサートされると、状態出力５５０の出力を図５ａの状態２１０ａに対応する「００００」に変更する。リセット入力は、入力ＰＷＲＲＳＴを介してアサートされる。
【００３７】
ＬＢ５００はメモリ要素５２０の現在の状態を変更する。具体的には、現在の状態を変更する場合、ＬＢは入力状態入力５７０を介してメモリ要素５２０に４ビット値をロードする。ローディング値を決定する場合、ＬＢ５００は入力１６５および１６６、状態出力５５０、ならびに入力ＬＳＢ３１０ＡおよびＬＳＢ３１０Ｂを標本抽出する。ＬＢ５００は、これらの入力に応じて、図５ａの状態図の状態遷移に従う。これらの状態遷移は、アップバンド・イベント、不正状態、インタロック、および正常動作の４つの範疇に分類される。
【００３８】
アップバンド・イベントは、１本のクロック線の遅延が生じる前にクロック・スパインの位相関係が逆転するときに起こる。このようなイベント中に、ＬＢ５００は、状態出力５５０が「０１１１」または「１１１０」であるかどうかを判定し、そうである場合、ＬＢ５００は、１サイクルの間保持されメモリ要素５２０に値「１１１１」をロードするする。状態出力５５０が「１１００」または「００１１」である場合、ＬＢ５００は遅延なしにメモリ要素５２０に値「１１１１」をロードする。この状態シフトは、図５ａの状態２１３、２１６、２１７、２１９、２２０、２２２、および２２４に対応する。
【００３９】
不正状態は、準安定性などの異常条件によって起こる。この状態では、状態出力５５０上で値「００１０」および「０１００」が生成される。この状態が起こると、ＬＢ５００はメモリ要素５２０に値「１１１１」をロードする。
【００４０】
ＬＢ５００はインタロック、すなわち静的出力「０１０１」も処理する。インタロックによって、あるクロック線への遅延の付加は、他のクロック線上に遅延が存在するときには妨げられる。特に、コントローラ２００は（ＬＢ５００を介して）、出力信号レジスタ・データ１３５ｂおよびレジスタ・データ３１５ａを確実にインタロックに従わせる。したがって、場合によっては、このような出力は、単に所与のクロック線に遅延を付加するのではなく反対側のクロック線からの遅延を短縮することによってクロック・スキューを補償する。この状態シフトは図５ａの状態２１２、２１４、および２１５に対応する。
【００４１】
正常動作は、前述の遷移を除く、図５ａのすべての状態遷移を含む。正常動作中に、ＬＢ５００は、状態出力５５０の現在の状態に応じてコントローラ２００の次の状態をロードする。ＬＢ５００は、「１１０１」、「１１１０」、「１１００」、「１０００」、「１０１１」、「０１１１」、「００１１」、「０００１」、および「１１１１」の各値のうちの１つをメモリ要素５２０にロードすることができる。この状態シフトは図５Ａの状態２１１、２１３、２１７、２１８、２２１、２２３、２２４、または２２５に対応する。
【００４２】
ＬＢ５１０は、入力状態出力５５０を有し、レジスタ・データ３１５ａおよび３１５ｂを出力する。出力レジスタ・データ３１５ａは、コントローラ２００が左遅延シフト・レジスタ３００ａのＬＳＢに値「１」をシフトするか、それとも左遅延シフト・レジスタ３００ａのＭＳＢに値「０」をシフトするかを決定する。出力レジスタ・データ３１５ｂは、コントローラ２００が右遅延シフト・レジスタ３００ｂのＬＳＢに値「１」をシフトするか、それとも右遅延シフト・レジスタ３００ａのＭＳＢに値「０」をシフトするかを決定する。値「１１０１」、「１０００」、「１０１１」、または「０００１」を有する状態出力５５０は、ＬＢ５２０が信号線レジスタ・データ３１５ａまたは３１５ｂを介してレジスタ・シフトをアサートするかどうかを決定する。この状態シフトは図５ａの状態２１１、２１８、および２２３に対応する。
【００４３】
本発明の他の実施形態では、図３のノイズ・バンド１５０を使用して高周波数ＡＣ電圧ノイズが除去される。これによって、システムが安定化し、クロック・スパイン３０および４０にフェーズ・エラーを付加する可能性がある接続が回避される。ノイズ・バンド１５０は、帯域幅を制御するようにバス線１６５および１６６を介して段階的に調整できる７ビット・シフト・レジスタである。ノイズ・バンド・フィルタ１５０はまず、最小帯域幅から開始する（すべてのシフト・レジスタ・ビットが「０」）。補正が行われる前に左スパイン・クロック３０と右スパイン・クロック４０との間の位相関係が逆転した場合、ノイズ帯域幅は、図６に示すようにレジスタに「１」をシフトすることによって増分され、遅延負荷１４０ａおよび１４０ｂからの遅延負荷タップが位相検出器入力１６１および１６２に付加される。たとえば、あるサイクル中に左スパイン３０が右スパイン４０に先行している場合、クロック回路網にステップ遅延が導入され、左スパイン３０が遅延される。しかし、遅延が行われる前に、右スパイン４０が左スパイン３０に先行していることを位相検出器１６０ａおよび１６０ｂが検出した場合、システムが追従できないほど早いノイズ、および現在のノイズ帯域幅よりも大きなノイズがクロック回路網に存在することを示すアップバンド・イベントが生じする。このような条件の下では、クロック・スパインの遅延は調整されず、ノイズ・フィルタ１５０の帯域幅がバス線１６５および１６６を介して増大する。このノイズ除去方式は、システムが電圧遷移によるクロック分配回路網のスキュー変動のより低速のＡＣ成分を補正できるようにするデジタル信号処理（「ＤＳＰ」）方式と比べて呼出し時間を短縮する。
【００４４】
しかし、ノイズ帯域幅が大きくなればなるほど、スキューも大きくなる。一実施形態では、本発明は図３のアナログ・タイマ１５１を有し、アナログ・タイマ１５１は、わずかなノイズ帯域幅を除去するために約１０マイクロ秒（「ｕｓ」）でタイム・アウトする。このタイマがタイム・アウトすると、アップバンド・イベントは起こらず、ノイズ・バンド・シフト・レジスタが線１５３を介して１だけ減分され、対応するノイズ・バンド遅延１４０ａおよび１４０ｂが１遅延タップだけ短縮する。しかし、アップバンド・イベントが起こった場合、コントローラからノイズ・バンドに送られる信号を使用して、タイマが線１５２を介してリセットされる。
【００４５】
図７は、左遅延線４００ａおよび左シフト・レジスタ３００ａを示す。本発明の一実施形態では、デジタル遅延線は、直列接続された２つのインバータ４０１Ａおよび４０２Ａを備え、各インバータは、パス・ゲート・スイッチを通してインバータの出力に接続された８つの容量負荷４１０ａおよび４２０ａのバンクを有する。容量負荷の付加または除去は、パス・ゲート・スイッチを開閉する遅延シフト・レジスタ３００ａによって制御される。２つのインバータを使用することによって、２つのドライバの間で負荷を分割することができ、非反転遅延も形成される。ＮＭＯＳ４４０負荷とＰＭＯＳ負荷４３０は共に、キャパシタンスの電圧感度を低下させ、かつインバータ４０１ａおよび４０２ａの立上がり遅延および立下り遅延を平衡させるために各容量負荷で使用される。
【００４６】
遅延シフト・レジスタ３００ａは、１７個の離散的単調遅延ステップ（１６個の遅延増分と遅延なし）を可能にする１６個のビット（０ないし１５）を備える。ステップ当たり遅延は名目上、１５ｐｓに設定されるが、設計要件に従って増減することができる。１６個のビットはそれぞれ、１６個の容量負荷のうちの１つに対応する。このように、容量負荷は交互に、２つのインバータ４０１ａ、４０２ａの出力に付加されるか、あるいはこれらの出力から除去される。ビット０ないし１４は、２ビットごとに（３６０ａ）バンク４２０ａ内の８つの容量負荷に対応し、ビット１ないし１５は、２ビットごとに（３５０ａ）バンク４１０ａ内の８つの容量負荷に対応する。コントローラ２００が遅延の調整を要求するたびに、それぞれ、遅延の延長および遅延の短縮に対応してＬＳＢ３１０ａに「１」がシフトされるか、あるいは最上位ビット（「ＭＳＢ」）３２０ａに「０」がシフトされる。これによって、容量負荷バンク４１０ａおよび４２０ａ内の１つの容量負荷がそれぞれ、オンまたはオフに切り替えられる。
【００４７】
たとえば、図８Ａは、ＬＳＢ３１０ａから始まる最初の４ビットのそれぞれに「１」で示される４ビット遅延を含むようにプログラムされたシフト・レジスタ３００ａの現在の状態を示す。右スパイン・クロック４０が左クロック・スパイン３０に先行しており、左遅延シフト・レジスタ３００ａがＬＳＢ３１０ａに「１」を含むとコントローラ２００が判定した場合、コントローラ２００はＭＳＢ３２０ａに「０」をシフトし、それによって、図８Ｂに示すシフト・レジスタ状態が得られる。
【００４８】
図２に示す遅延線４００ｂおよび遅延シフト・レジスタ３００ｂは、上記で遅延線４００ａおよび遅延シフト・レジスタ３００ａについて説明したのと同様に動作する。
【００４９】
上記の明細書では、本発明についてその特定の例示的な実施形態を参照して説明した。しかし、添付の特許請求の範囲の記載された本発明の広い趣旨および範囲から逸脱せずに本発明に様々な修正および変更を加えられることが明白であろう。したがって、明細書および図面は、制限的ではなく例示的なものとみなすべきである。
【図面の簡単な説明】
【図１】  本発明の一実施形態のコンピュータ・システムのブロック図である。
【図２】  クロックを生成するクロック分配回路網とデジタル・デスキュー回路のブロック図である。
【図３】  位相検出回路を示す図である。
【図４Ａ】  位相検出器を示す図である。
【図４Ｂ】  クロス結合ＮＡＮＤゲートを示す図である。
【図５Ａ】  コントローラの状態図である。
【図５Ｂ】  コントローラの論理ブロック図である。
【図６】  ノイズ・バンド・シフト・レジスタを示す図である。
【図７】  遅延線および遅延シフト・レジスタを示す図である。
【図８Ａ】  ４ビット遅延を有する遅延シフト・レジスタを示す図である。
【図８Ｂ】  ３ビット遅延を有する遅延シフト・レジスタを示す図である。
【図１】
0004188556.tif 000002
【図２】
0004188556.tif 000003
【図３】
0004188556.tif 000004
【図４Ａ】
0004188556.tif 000005
【図４Ｂ】
0004188556.tif 000006
【図５Ａ】
0004188556.tif 000007
【図５Ｂ】
0004188556.tif 000008