(57)【特許請求の範囲】
【請求項１】
複数の遅延デバイスであって、各遅延デバイスが、対応する複数のデータ信号および１つのクロック信号のそれぞれを受け取るように動作可能であり、前記各遅延デバイスが、事前に選択可能な遅延時間を有し、前記事前に選択された遅延時間の後に前記複数のデータ信号および前記１つのクロック信号のそれぞれを出力する、複数の遅延デバイスと、
各事前に選択可能な遅延時間をセットするように動作可能な、前記複数の遅延デバイスに結合された回路であって、各事前に選択された遅延時間が、前記出力された前記複数のデータ信号に関連する到着時刻に応答してセットされる、回路と
を含むインターフェース装置。
【請求項２】
各事前に選択可能な遅延時間をセットするように動作可能な前記回路が、
前記データ信号の所定のサブセットを受け取り、データ信号の前記サブセットが第１の所定の組の値を含む時に第１の所定の出力信号値を出力し、データ信号の前記サブセットが第２の所定の組の値を含む時に第２の所定の出力信号値を出力するように動作可能なデータ比較ロジックであって、データ信号の前記サブセットが、前記関連する到着時刻に応答して、前記第１および第２の所定の組の値の１つになる、データ比較ロジックと、
前記第１および第２の所定の出力信号値に応答して前記事前に選択された遅延時間を変更するように動作可能な回路と
を含む、請求項１に記載の装置。
【請求項３】
前記第１の所定の組の値が、各値が同一である値の組を含み、前記第２の所定の組の値が、第１メンバおよび第２メンバが異なる値を有する値の組を含む、請求項３に記載の装置。
【請求項４】
前記事前に選択された遅延時間を変更するように動作可能な前記回路が、
前記第１および第２の出力信号値に応答して前記事前に選択された遅延時間を変更するように動作可能な状態機械
を含む、請求項２に記載の装置。
【請求項５】
前記事前に選択された遅延時間を変更するように動作可能な前記回路が、さらに、
前記状態機械からの方向信号を受け取るように動作可能なカウンタであって、前記カウンタが、前記事前に選択された遅延時間を変更するための遅延時間増分の数を判定するためにカウント信号を出力するように動作可能であり、前記遅延時間増分が、所定の値を有する、カウンタ
を含む、請求項４に記載の装置。
【請求項６】
前記事前に選択された遅延時間を変更するように動作可能な前記回路が、さらに、前記カウント信号を受け取り、前記複数の遅延デバイスのそれぞれに制御信号を出力するように動作可能な遅延制御回路を含み、前記制御信号が、前記事前に選択された遅延時間を変更するように動作可能である、請求項５に記載の装置。
【請求項７】
前記第１および第２の所定の信号に応答して前記事前に選択された遅延時間を変更する前記回路が、
前記比較ロジックに結合された入力を有する記憶装置であって、前記記憶装置の論理状態が、前記第１の所定の信号に応答してセットし、前記第２の所定の信号に応答してリセットするように動作可能である、記憶デバイスと、
所定のカウントの経過の後に前記記憶デバイスをリセットするように動作可能な、前記記憶デバイスに結合されたカウンタと、
前記記憶デバイスの前記論理状態を受け取り、前記論理状態に応答して前記事前に選択された遅延時間を変更するように動作可能な回路と
を含む、請求項２に記載の装置。
【請求項８】
インターフェース内の動的ウェーブパイプライニングの方法であって、
複数のデータ信号および１つのクロック信号のそれぞれを受け取るように各々が動作可能であり、また、事前に遅延時間を選択可能であって前記遅延時間の後に前記複数のデータ信号および前記１つのクロック信号のそれぞれを出力する、複数の遅延デバイスに対して、前記複数の遅延デバイスに結合された回路であって、前記出力された前記複数のデータ信号に関連する到着時刻に応答してセットされる回路によって遅延時間をセットすることによって、前記複数のデータ信号の各データ信号の到着エッジおよび前記クロック信号の位相をセットし、それにより前記複数のデータ信号の最も遅く到着するデータ信号の到着エッジに対応できるようにするステップ
を含む方法。
【請求項９】
前記クロック信号の所定の遷移が、実質的に前記データ信号の有効ウィンドウ内でセンタリングされるようにするために、クロック信号の位相を調整するステップをさらに含む、請求項８に記載の方法。
【請求項１０】
前記複数のデータ信号の到着エッジおよび前記クロック信号の位相をセットする前記ステップが、
前記最も遅く到着するデータ信号を判定するステップであって、クロック信号の所定の遷移を、前記最も遅く到着するデータ信号の到着エッジにセットするステップと、
事前に選択された時間遅延だけ各データ信号を遅延させるステップであって、前記事前に選択された時間遅延が、各到着エッジの対応する到着時刻に応答してセットされる、ステップと
を含む、請求項８または９のいずれか一項に記載の方法。
【請求項１１】
クロック信号の所定の遷移を、前記最も遅く到着するデータ信号の到着エッジにセットする前記ステップが、
前記データ信号を比較し、前記データ信号が第１の所定の組の値を含む時に第１の所定の出力信号値を出力し、データ信号の前記サブセットが第２の所定の組の値を含む時に第２の所定の出力信号値を出力するステップであって、データ信号の前記サブセットが、前記到着時刻に応答して前記第１および第２の所定の組の値の１つになる、ステップと、
前記第１の出力信号値に応答して、所定の遅延時間増分だけ前記クロック信号を遅延させるステップと、
前記比較ステップおよび遅延ステップを繰り返すステップであって、前記繰り返すステップが、前記第２の出力信号値に応答して終了される、ステップと
を含む、請求項１０に記載の方法。
【請求項１２】
事前に選択された時間遅延だけ各データ信号を遅延させる前記ステップが、
前記データ信号を比較し、前記データ信号が第１の所定の組の値を含む時に第１の所定の出力信号値を出力し、データ信号の前記サブセットが第２の所定の組の値を含む時に第２の所定の出力信号値を出力するステップであって、データ信号の前記サブセットが、前記到着時刻に応答して前記第１および第２の所定の組の値の１つになる、ステップと、
前記第１の出力信号値に応答して、所定の遅延時間増分だけ第１データ信号を遅延させるステップと、
前記比較ステップおよび遅延ステップを繰り返すステップであって、前記繰り返すステップが、前記第２の出力信号値に応答して終了される、ステップと
１遅延時間増分だけ前記第１データ信号の遅延を減分するステップと、
次のデータ信号について比較、遅延、繰り返し、および減分の前記ステップを繰り返すステップであって、前記次のデータ信号について繰り返す前記ステップが、前記複数のデータ信号の最後のデータ信号に応答して終了される、ステップと
を含む、請求項１０に記載の方法。
【請求項１３】
各データ信号が、所定のパターンのデータ値を有する、請求項８に記載の方法。
【請求項１４】
前記クロック位相を調整する前記ステップが、
前記データ有効ウィンドウの後ろの側を判定するステップと、
前記データ有効ウィンドウの前の側を判定するステップと、
前記クロックの所定の遷移を、前記前の側および前記後ろの側の平均にセットするステップと
を含む、請求項９に記載の方法。
【請求項１５】
前記後ろの側を判定する前記ステップが、
前記データ信号を比較し、前記データ信号が第１の所定の組の値を含む時に、第１の所定の出力信号値を出力し、データ信号の前記サブセットが第２の所定の組の値を含む時に、第２の所定の出力信号値を出力するステップであって、データ信号の前記サブセットが、前記到着時刻に応答して、前記第１および第２の所定の組の値の１つになる、ステップと、
前記第１の出力信号値に応答して、所定の遅延時間増分だけ前記クロック信号を遅延させるステップと、
前記比較ステップおよび遅延ステップを繰り返すステップであって、前記繰り返すステップが、前記第２の出力信号値に応答して終了される、ステップと、
前記第２の出力信号値に応答して現行遅延時間を表すデータ値を判定するステップであって、前記データ値が、前記後ろの側に対応する前記現行遅延を表す、ステップと
を含む、請求項１４に記載の方法。
【請求項１６】
前記前の側を判定する前記ステップが、
前記データ信号を比較し、前記データ信号が第１の所定の組の値を含む時に第１の所定の出力信号値を出力し、データ信号の前記サブセットが第２の所定の組の値を含む時に第２の所定の出力信号値を出力するステップであって、データ信号の前記サブセットが、前記到着時刻に応答して、前記第１および第２の所定の組の値の１つになる、ステップと、
前記第１の出力信号値に応答して、所定の遅延時間増分だけ前記クロック信号の遅延時間を減分するステップと、
前記比較ステップおよび減分ステップを繰り返すステップであって、前記繰り返すステップが、前記第２の出力信号値に応答して終了される、ステップと、
前記第２の出力信号値に応答して現行遅延時間を表すデータ値を判定するステップであって、前記データ値が、前記前の側に対応する前記現行遅延を表す、ステップと
を含む、請求項１４に記載の方法。
【請求項１７】
前記現行遅延時間を表す前記データ値が、カウントを含む、請求項１５に記載の方法。
【請求項１８】
前記現行遅延時間を表す前記データ値が、カウントを含む、請求項１６に記載の方法。
【請求項１９】
インターフェースを含むデータ処理システムであって、
中央処理装置（ＣＰＵ）と、
前記ＣＰＵから少なくとも１つのデータ信号を受け取るように動作可能な、前記ＣＰＵに結合された受取デバイスであって、前記受取デバイスが、
請求項１ないし７のいずれか一項に記載のインターフェース装置
を含むデータ受取ユニットを含む、受取デバイスと
を含むデータ処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にデータ処理システムに関し、具体的には、データ処理システム内のバス・インターフェースに関する。
【０００２】
【従来の技術】
中央処理装置の速度の向上を反映して、データ処理システムのシステム・クロック速度が高まるにつれて、システム内のバスでの転送の速度を、それ相応に高めなければならなかった。データ処理装置の要素を接続するバスを介するデータの転送は、必ず、要素の物理的分離によって制限される。バスを介してデータを転送するために開発された方法の１つが、前のデータがバスを介して受取り側デバイスに取り込まれる前にバス上でデータ信号を立ち上げるウェーブパイプライニングである。言い換えると、データは、データ処理システム内の要素の間で、バス・インターフェースを介して、基本的に「組立ライン」式にパイプライン化される。「パイプライン」または「組立ライン」が満たされた後に、データは、インターフェースの待ち時間を超える平均速度で配送される。
【０００３】
通常のデータ処理システムでは、データを、１つのソース・デバイスから複数の受取り側デバイスに転送することができる。異なる受取り側デバイスが、異なる電気的長さを有し、したがって異なる待ち時間を有するバス・インターフェースを介してソース・デバイスまたは送出側デバイスに結合される。
【０００４】
さらに、複数のデータ信号を受け取る単一のデバイス内で、各信号が、異なる待ち時間を有する場合がある。変動が、製造公差、設計制限、たとえば線長の変動、および、データ依存ジッタ（シンボル間干渉）、クロック・ジッタ、およびノイズなどの時間依存効果から生じる可能性がある。
【０００５】
さらに、データは、同期式に配送されることが期待される。すなわち、データは、システム・クロックの所定のサイクルに配送されることが期待される。データが、期待より早くまたはそれより遅く配送される場合には、エラーが発生する可能性がある。
【０００６】
ウェーブパイプライン式インターフェースでは、高速パスと低速パスの両方が同等に重要なので、タイミング分析が複雑になる。その間にデータを信頼性のある形でサンプリングすることができる時間間隔であるデータ有効領域は、ソース・デバイスまたは送出側デバイスを１つまたは複数の受取り側デバイスに結合する高速パスと低速パスの間の時間差が増えるにつれて減る。高速パスと低速パスの間の時間差がバス・クロックの周期ほどに大きくなる場合には、同期が失われる。さらに、サンプリング・クロックのスキューによって、データ有効領域がさらに減らされる可能性がある。バス・インターフェース速度が高まるにつれて、高速パスと低速パスの間のより小さいタイミング変動が必要になり、クロック・スキュー制約がより厳しくなる。しかし、クロック・スキューおよびタイミング変動の制御が、データ処理システムのレイアウトによって提示される物理的制約によって制限される可能性がある。したがって、当技術分野には、インターフェースの受信側デバイス端でデータのスキューを除去し、その間にデータを信頼性のある形でサンプリングできる時間を増やす方法および装置の必要が存在する。
【０００７】
【発明が解決しようとする課題】
本発明の目的は、上記の短所を克服する技法を提供することである。
【０００８】
【課題を解決するための手段】
本発明によれば、
複数の遅延デバイスであって、各デバイスが、対応するデータ信号を受け取るように動作可能であり、各遅延デバイスが、事前に選択可能な遅延時間を有し、前記事前に選択された遅延時間の後に前記データ信号を出力する、複数の遅延デバイスと、
各事前に選択可能な遅延時間をセットするように動作可能な、前記複数の遅延デバイスに結合された回路であって、各事前に選択された遅延時間が、各データ信号に関連する到着時刻に応答してセットされる、回路と
を含むインターフェース装置が提供される。
【０００９】
本発明によれば、前記複数のデータ信号の最も遅く到着するデータ信号の到着エッジに対応するために、前記複数のデータ信号の各データ信号の到着エッジをセットするステップを含む、インターフェース内の動的ウェーブパイプライニングの方法も提供される。
【００１０】
前述は、以下の本発明の詳細な説明をよりよく理解できるようにするために、本発明の特徴および技術的長所をおおまかに示したものである。本発明の追加の特徴および長所は、以下で説明され、これによって、本発明の請求の対象が形成される。
【００１１】
【発明の実施の形態】
本発明は、データ・タイミング変動およびクロック・ジッタの軽減を実施するウェーブパイプライン式機構を提供する。初期化手順で、バス上のチップの間のタイミング変動に対するインターフェースの敏感さの対応する減少と共に、データ有効領域のサイズを増やすことができる。受取り側デバイスに入力される複数のデータ信号の間のタイミング変動が、最も早く到着するデータ信号と最も遅く到着するデータ信号を判定し、最も早く到着するデータ信号と最も遅く到着するデータ信号の間の到着時間差によって決定される事前に選択された量だけ最も早く到着するデータ信号を遅延させることによって、減らされる。さらに、送出側デバイスからのバス・クロックのスキューが、除去され、これによって、それから導出されるラッチ・クロックが、実質的にデータ・ウィンドウ内でセンタリングされる。
【００１２】
以下の説明では、本発明の完全な理解をもたらすために、バス・クロック周波数、クロック・エッジなどの多数の具体的な詳細を示す。しかし、本発明をそのような具体的な詳細なしで実践できることは、当業者には明白であろう。他の場合には、本発明を不要な詳細で不明瞭にしないために、周知の回路をブロック図形式で示した。
【００１３】
ここで図１ないし１１を参照するが、図では、図示の要素が、必ずしも原寸通りではなく、類似する要素または同様の要素が、複数の図面を通じて同一の符号によって指定されている。
【００１４】
本発明を実践する代表的なハードウェア環境を、図１に示す。図１には、通常のマイクロプロセッサなどの中央処理装置（ＣＰＵ）１１０およびシステム・バス１１２を介して相互接続された複数の他のユニットを有する、本発明によるデータ・プロセッサ１１３の通常のハードウェア構成が示されている。データ・プロセッサ１１３には、ランダム・アクセス・メモリ（ＲＡＭ）１１４と、読取専用メモリ（ＲＯＭ）１１６と、ディスク装置１２０およびテープ・ドライブ１４０などの周辺装置をバス１１２に接続するための入出力アダプタ１１８と、キーボード１２４、マウス１２６、および／またはタッチ・スクリーン・デバイス（図示せず）などの他のユーザ・インターフェース・デバイスをバス１１２に接続するためのユーザ・インターフェース・アダプタ１２２と、ワークステーション１１３をデータ処理ネットワークに接続するための通信アダプタ１３４と、バス１１２をディスプレイ装置１３８に接続するためのディスプレイ・アダプタ１３６とが含まれる。ＣＰＵ１１０には、図示されていない他の回路を含めることができ、これには、たとえば、実行ユニット、バス・インターフェース・ユニット、算術論理ユニットなどのマイクロプロセッサ内で一般的に見られる回路が含まれる。ＣＰＵ１１０は、単一の集積回路上に存在することもできる。
【００１５】
図２を参照すると、本発明によるウェーブパイプライン式インターフェース２００が示されている。インターフェース２００は、チップ２０２およびチップ２０４のそれぞれに組み込まれ、チップ２０２および２０４は、めいめいのインターフェース２００を介して互いにデータを通信する。本発明の一実施形態では、チップ２０２および２０４を、たとえば、データ・プロセッサ１１３内のＣＰＵ１１０およびＲＡＭ１１４に対応するものとすることができる。データは、バス・クロック２０６および２０８などのバス・クロックによって決定される速度でチップ２０２とチップ２０４の間で転送される。バス・クロック２０６および２０８は、名目上は同一周波数であり、チップ２０２および２０４のそれぞれのＰＬＬ、ＰＬＬ２１２に供給される基準クロック２１０から導出される。本発明の一実施形態では、基準クロック２１０を、システム・クロックとすることができる。ＰＬＬ２１２のそれぞれが、ローカル・クロックすなわち、チップ２０２内のローカル・クロック２１４およびチップ２０４内のローカル・クロック２１６を出力し、ローカル・クロック２１４および２１６は、位相を基準クロック２１０にロックされ、基準クロック２１０の周期の事前に選択された整数Ｍ倍とすることができる。ローカル・クロック２１４は、ドライバ２１８によってバッファリングされて、チップ２０２から出力されるバス・クロック２０６を供給する。同様に、ローカル・クロック２１６は、ドライバ２２０によってバッファリングされて、チップ２０４から出力されるバス・クロック２０８を供給する。
【００１６】
バス・クロックは、チップから通信されるデータ信号と共に供給される。チップ２０２からのデータ２２２が、出力ラッチ２２４にラッチされ、ドライバ２２６によって駆動され、バッファリングされる。データは、ローカル・クロック２１４の事前に選択されたエッジでラッチされる。データは、マルチプレクサ（ＭＵＸ）２２８を介して受け取られる。ＭＵＸ２２８は、初期化整列手順（ＩＡＰ）と関連する所定の同期化パターンも受け取る。これらを、下で詳細に説明する。
【００１７】
データ２２２は、レシーバ（ＲＸ）２３０によってバッファリングされ、データ受取ユニット２３２に供給される。データ２２２と共に送られるバス・クロック２０６は、ＲＸ２３４によってバッファリングされ、その出力が、入出力クロック２３６を形成し、やはりデータ受取ユニット２３２に供給される。バス・クロック２０８と共にチップ２０４からチップ２０２に送られるデータは、同様に、チップ２０２のインターフェース２００によって受け取られ、以下のデータ受取ユニット２３２の説明が、チップ２０４からのチップ２０２によるデータの受取にも同等に適用されることを理解されたい。
【００１８】
図３を参照すると、チップ２０４への入力に到着するデータ２２２のタイミング図が概略的に示されている。タイミングを、データ２２２に関して説明するが、インターフェース２００が両方向であり、同様の図が、チップ２０４からチップ２０２に送られるデータにも同等に適用されることを理解されたい。第１のデータ信号、データ３０２は、チップ２０２とチップ２０４の間のパスの有限伝送時間から生じる公称待ち時間の後に到着する。データ３０２は、図３では、起点時刻Ｔ０に到着するものとして図示されている。第２のデータ信号、データ３０４は、データ信号３０２の待ち時間より長い待ち時間を有し、データ・バス２２２上の複数の遅延データ信号の中から最大遅延としてとられる量Ｔｓだけ起点時刻に対して遅れている。同様に、第３のデータ信号、データ３０６は、公称待ち時間より短い待ち時間を有し、データ３０２より前に到着する。データ３０６は、起点Ｔ０よりＴｆだけ前の到着時刻を有するものとして図示されている。下でデータ受取ユニット２３２の動作を説明するために、Ｔｆは、データ・バス２２２上の複数の早いデータ信号の間からの最も早い到着時刻を表すために取られる。データ・バス２２２上のデータの到着時刻の差を、データ・スキューと称する。データ・スキューは、製造公差と、線長の変動などの設計制限と、たとえばデータ依存ジッタ（シンボル間干渉）、クロック・ジッタ、およびノイズなどの時間依存効果を含む、複数のソースから生じる可能性がある（図３では、概略タイミング図での例示を簡単にするために、起点が、伝送の中央に関して示されている。有効な伝送を、定常状態値の他の所定の比率を用いて指定することができることを、当業者は諒解するであろう）。
【００１９】
データは、入出力クロック２３６のエッジで、チップ２０４などの受取り側デバイスにラッチされる。データ・スキューがない場合、データを、入出力クロック２３６の周期の幅を有するデータ有効ウィンドウ内で取り込むことができる。データ・スキューによって、データ有効ウィンドウの幅Ｔwが、ＴfとＴsの和だけ減る。
【００２０】
データ有効ウィンドウの幅を復元するために、本発明によるインターフェース２００では、図４に示されたデータ受取ユニット２３２に、複数のデータ信号を入力する。データは、レシーバ２３０によってバッファリングされ、遅延線４０６ないし４０８の１つであるプログラマブル遅延線に結合される。プログラマブル遅延線４０６ないし４０８は、遅延線に入力される対応するデータ信号に、事前に選択された量の遅延を与える。図３のデータ３０４に対応する、最も遅く到着するデータ信号を受け取る遅延線は、０遅延についてプログラムされる（すべての回路が最小伝搬時間を有することを理解されたい。０遅延は、さらに、そのような最小伝搬時間に対する相対的なものとして理解される）。したがって、たとえば、図４で、データ４０２が、図３のデータ３０４に対応する場合に、遅延線４０６が、０遅延についてプログラムされる。他のデータ信号を受け取る遅延線は、増加する量の遅延についてプログラムされ、図３のデータ３０６に対応する最も早い到着を有するデータ信号を受け取る遅延線が、最長の遅延についてプログラムされる。したがって、たとえば、図４で、データ４０４が、最も早く到着するデータ信号に対応する場合に、遅延線４０８が、最長の遅延値についてプログラムされる。この形で、チップ２０４に入力されるデータ信号のすべてすなわちデータ４０２ないしデータ４０４が、最も遅く到着するデータ信号に対してスキューを除去される。図４に示された本発明の実施形態を、個々のデータ信号に関して図示し、説明したが、本発明の原理を、データ・バイトまたはデータ信号の他のグループ化などのデータ信号のグループに適用できることを理解されたい。そのような代替実施形態は、本発明の趣旨および範囲に含まれる。
【００２１】
遅延線４０６ないし４０８は、初期化整列手順（ＩＡＰ）を介して、事前に選択された遅延値を有するようにプログラムされる。ＩＡＰは、動的ウェーブパイプライン・インターフェース２００を組み込んだデータ処理システム１００の電源投入時またはリセット時に実行することができる。本発明の一実施形態では、ＩＡＰを、図１のＣＰＵ１１０からの信号によって制御することができる。ＩＡＰでは、所定の同期化（ｓｙｎｃ）パターンが、ＩＡＰモード選択２４０をアサートすることによってデータ・バス２２２を介して送られ、これによって、ＭＵＸ２２８が、所定のｓｙｎｃパターンを出力する。ｓｙｎｃパターンは、データ・バス２２２を構成するすべてのデータ信号上で送られる。
【００２２】
ｓｙｎｃパターンは、遅延線４０６ないし４０８の出力を受け取るラッチ４１２ないし４１４に取り込まれる。ラッチ４１２ないし４１４へのデータ入力は、バス・クロック２０６からバッファ２３４を介して導出される入出力クロック２３６のエッジでラッチされる。入出力クロック２３６は、データ受取ユニット２３２内の遅延線４１０で遅延される。遅延された入出力クロックは、バッファ４１６で電力を再供給され、ラッチ４１２ないし４１４に供給される。
【００２３】
遅延線４１０ならびに遅延線４０６ないし４０８の制御は、状態機械４１８を介する。ＩＡＰ中に、状態機械４１８が、ラッチ４１２ないし４１４でのｓｙｎｃパターンの取込に応答して、遅延線４０６ないし４０８および４１０のそれぞれのプログラマブル遅延を調整する。
【００２４】
出力４２０ないし４２２が、データ比較ロジック４２４の対応する入力に結合される。適当なｓｙｎｃパターンによって、データ・スキューがない同期データ取込の曖昧さのない解決が可能になる。そのようなパターンの１つは、データ値シーケンス「１０００１０００１０００」を構成する。このシーケンスは、周期的であり、４入出力クロック周期の周期性を有し、４クロック周期の弾性を有する弾力的インターフェースと共に使用される。弾力的インターフェースは、関連米国特許出願、表題「An Elastic Interface Apparatus and Method Therefor」の主題である。代替案では、そのようなｓｙｎｃパターンが同期データ取込の曖昧さのない解決を可能にするものであれば、他のｓｙｎｃパターンを実施することができる。たとえば、上のデータ値シーケンスの相補的ｓｙｎｃパターンを、代わりに実施することができる。これから、遅延線４０６ないし４０８および４１０での遅延の選択を、状態機械４１８の動作に関して説明する。
【００２５】
図５を参照すると、状態機械４１８を介して遅延を選択する方法５００が示されている。ステップ５０２で、遅延線４１０内で適当な遅延を選択することによって、入出力クロックを、最後に到着するデータ信号に合わせて調整する。ステップ５０２は、図６および図７に関してさらに説明する。ステップ５０４で、データ信号のスキューを除去するが、これは、図８および図９に関してさらに説明する。ステップ５０８で、入出力クロック・サンプル点を調整する。ステップ５０８は、図１０および図１１に関して下でさらに説明する。
【００２６】
図６を参照すると、入出力クロック遅延ステップ５０２の流れ図が示されている。ステップ５１２で、ＩＡＰが、前に説明したｓｙｎｃパターンの立ち上げと共に開始される。ステップ５１４で、図４の状態機械４１８が、ラッチ４１２ないし４１４にラッチされたｓｙｎｃパターンが、同一のデータ信号、上で説明した例示的ｓｙｎｃパターンでは値「１」に対応するかどうかを判定する。状態機械４１８は、セット・リセット（Ｓ−Ｒ）フリップフロップ４２８の出力４２６がリセットされているかどうかを判定することによって、同一のデータ信号がラッチされたかどうかを判定する。Ｓ−Ｒフリップフロップ４２８の出力４２６は、データ比較ロジック４２４によって制御され、データ比較ロジック４２４は、不一致を検出し、それに応答してその出力４３０をアサートする。データ比較ロジック４２４の入力４２１ないし４２３のそれぞれに同一のデータ信号が現れることに応答して、出力４３０がネゲートされ、これによって、Ｓ−Ｒフリップフロップがリセットされる。データ比較ロジック４２４は、遅延された入出力クロック４１１によってゲーティングされ、これによって、ラッチ４１２ないし４１４へのデータのラッチングに応答して、データ比較ロジック４２４の出力４３０で出力信号が確立される。正論理実施形態に対応するデータ比較ロジック４２４の例示的実施形態では、入力４２１ないし４２３上の信号および遅延されたクロック４１１から導出されるゲートの論理ＮＡＮＤを形成することができる。その代わりに、負論理実施形態に対応する例示的実施形態では、入力４２１ないし４２３および遅延されたクロック４１１の補数から導出されるゲートの論理ＯＲを形成することができる。そのような実施形態は、上で述べた相補的ｓｙｎｃパターンに対応するはずである。
【００２７】
遅延線４０６ないし４０８および４１０の遅延の設定における統計的変動を、遅延された入出力クロック４１１の複数のサイクルにわたってｓｙｎｃパターンをサンプリングすることによって減らすことができる。遅延された入出力クロック４１１によって、カウンタ４３２が増分される。カウンタ４３２は、遅延された入出力クロック４１１のサイクルの所定の数Ｋの後に出力４３４をアサートし、その後、カウンタ４３２は、ロール・オーバーする。カウンタ４３２の出力４３４は、Ｓ−Ｒフリップフロップ４２８のリセット入力４３６に結合され、これによって、出力４２６がリセットされる。その後、次のｓｙｎｃパターン／不一致検出シーケンスを実行することができる。サンプルのいずれかで不一致が検出される場合に、Ｓ−Ｒフリップフロップ４２８がセットされる。
【００２８】
図６に戻って、整数Ｋの値によって決定されるサンプル期間中に、データ比較ロジック４２４の入力４２１ないし４２３のすべてが同一のデータ信号を有する場合に、ステップ５１４から「Ｙｅｓ」経路に従い、方法５００はステップ５０４に進む。この場合、遅延がまだ遅延線４０６ないし４０８で設定されておらず、図７に概略的に示されたタイミングが、典型的である。入出力クロック２３６が、遅延線４１０を介して量Ｔｄだけ遅延されており、エッジｔ１は、時間間隔Ｔｗによって表されるデータ有効ウィンドウ内にある。
【００２９】
当初、遅延時間Ｔｄを０とすることができ、ここで、エッジＴ０が、データ有効ウィンドウの外にあり、エッジＴ０によって、値「１」がラッチ４１２ないし４１４のうちのデータ３０６を受け取る１つにラッチされ、値「０」がデータ３０２および３０４を受け取るラッチにラッチされる。不一致が生じる。その後、データ比較ロジック４２４の出力４３０がアサートされ、Ｓ−Ｒフリップフロップ４２８の出力４２６がセットされる。その結果、図６のステップ５１４で、「Ｎｏ」分岐に進む。ステップ５１６で、状態機械４１８が、遅延線４１０を介する遅延を増やす。
【００３０】
遅延は、状態機械４１８がカウント方向４３８で「Ｕｐ」信号を両方向カウンタ４４０に送ることによって増やされる。カウンタ４４０は、カウンタ４３２が整数Ｋの値によって決定されるカウントの終りに達する時にカウンタ４３２が出力４３４をアサートすることに応答してそのカウントを増分する。両方向カウンタ４４０に含まれるカウントが、遅延制御４４２に供給される。遅延制御４４２は、カウントをデコードし、対応する制御信号４４４を遅延線４１０に供給し、これによって、遅延線４１０が、所定の時間増分だけ遅延時間Ｔｄを増分する（本発明で使用することができるプログラマブル遅延線４１０は、関連米国特許出願、表題「Programmable Delay Locked Loop」の主題である）。その後、入出力遅延ステップ５０２から、ステップ５１４に戻る。
【００３１】
ステップ５１４で、Ｔｄの増分された値が、エッジｔ１をデータ有効ウィンドウ内に置くのに十分である場合に、ステップ５１４から、上で説明したように「Ｙｅｓ」分岐に従う。そうでない場合には、遅延線４１０を介する遅延を、ステップ５１６でもう一度増分し、入出力クロック遅延ステップ５０２は、エッジｔ１がデータ有効ウィンドウ内に入るまでステップ５１４および５１６を介してループする。その後、状態機械４１８が、ステップ５０４に進み、ここでデータのスキューを除去する。
【００３２】
データ・スキュー除去ステップ５０４を、図８に詳細に示す。ステップ５０４では、複数の遅延線４０６ないし４０８をプログラムする。ステップ５１８で、最初のデータ信号に対応する最初の遅延線を、プログラムのために選択する（これは、インデックスｊを、０とすることができる最初の値に初期化することに対応するものとすることができる）。ステップ５２０で、データ比較を行う。ステップ５２０のデータ比較は、図６のステップ５１４のデータ比較と正確に同一の形で実行され、したがって、ここでもう一度詳細に説明することはしない。
【００３３】
データ信号のすべてが同期している場合には、ステップ５２２で、遅延の増分を、ｊ番目のデータ信号に対応するｊ番目の遅延線にセットする。当初は、入出力クロック調整ステップ５０２のゆえに、ステップ５２０で「Ｙｅｓ」の分岐に従うことに留意されたい。ステップ５２２で遅延を増分した後に、データ比較のステップ５２０をもう一度実行する。データ・スキュー除去ステップ５０４は、その後、データ同期が失われるまでステップ５２０および５２２の間でループし、ステップ５２０から「Ｎｏ」分岐に従い、ステップ５２４で、ｊ番目のデータ信号の遅延を、１遅延増分だけ減分する。この形で、ｊ番目のデータ信号を、入出力クロックに対して位相整列することができる。
【００３４】
これは、図７をもう一度参照することによってさらに理解することができる。まず、例として、ステップ５２０および５２２で、ｊ番目のデータ信号が最後に到着するデータ信号、データ３０４であると仮定する。すると、対応する遅延線に遅延の第１増分を追加することによって、データ３０４がシフトされ、その結果、データ３０４のエッジｔ２が、遅延された入出力クロック４１１のエッジｔ１の後に発生するようになる。すると、ステップ５２０で、データ比較が、ステップ５２４への「Ｎｏ」分岐に従い、ステップ５２４で、ステップ５２２で追加された１遅延増分が除去される。したがって、最後に到着するデータ信号に関して、追加の遅延は追加されない。最後に到着するデータ信号は、他のすべてのデータ信号のスキュー除去の基準になるので、これはデータ・スキュー除去ステップ５０４の所望の動作である。
【００３５】
同様に、ここで、やはり例として、最も早く到着するデータ信号、図７のデータ３０６についてステップ５２０および５２２の動作を検討されたい。最も早く到着するデータ信号の場合、そのエッジｔ３が、時間的に、遅延された入出力クロック４１１のエッジｔ１を過ぎてシフトされるまで、遅延の複数の増分が、ステップ５２０および５２２を介する繰り返される反復によって対応するプログラマブル遅延線に追加される。その後、データ３０４に関して前に説明したように、データ比較ステップ５２０でステップ５２４への「Ｎｏ」分岐に従い、ここで、プログラマブル遅延が、１遅延増分だけ減分され、エッジｔ３が、遅延された入出力クロック４１１のエッジｔ１に整列される。
【００３６】
ｊ番目のデータ信号のスキューを除去した後に、ステップ５２６で、データ・スキュー除去ステップ５０４が、すべてのデータ信号遅延をプログラムしたかどうかを判定する。そうでない場合には、スキュー除去ステップ５０４は、ステップ５２７で次の遅延線に進み、ステップ５２０に戻る。すべての遅延線を調整した後に、すべてのデータ信号が、図９のタイミング図に概略的に示されているように遅延された入出力クロック４１１のエッジｔ１と整列され、スキュー除去ステップ５０４は、方法５００のステップ０６に進む。
【００３７】
クロック・サンプル点調整ステップ５０６では、遅延された入出力クロック４１１のエッジｔ１が、データ有効ウィンドウの中央になるように調整することができる。クロック・エッジは、立ち上げ時にセンタリングされている可能性があるが、パス待ち時間の差、ノイズなどに起因してレシーバ側でスキューが生じる可能性がある。サンプル点調整ステップ５０６では、クロック信号のスキューを除去する。図１０を参照すると、ステップ５２８で、データ比較を行う。当初は、データ・スキュー除去ステップ５０６のゆえに、データ比較ステップ５２６は、ステップ５４０へのその「Ｙｅｓ」分岐に従い、ステップ５３０で、遅延線４１０でプログラムされた時間遅延が、１時間遅延増分だけ増分される。その後、クロック・サンプリング点調整ステップ５０６は、ステップ５２８に戻り、データ比較をもう一度行う。入出力クロック調整ステップ５０６は、その後、データ比較ステップ５２８でデータ不一致が生じるまでステップ５２８および５３０を介してループする。このデータ不一致は、示された遅延された入出力クロック４１１の遅延されたクロック・エッジｔ１が、データ有効ウィンドウの後の側ｔｌ（図１１）を超えたことを示す。その後、データ比較ステップ５２８が、「Ｎｏ」分岐に従い、ステップ５３２で、カウンタ４４０のカウントを保管する。
【００３８】
入出力クロック・サンプル調整ステップ５０６は、その後、データ有効ウィンドウの前の側を判定する。遅延線４１０の遅延を、ステップ５３４で、１時間遅延増分だけ減分する。ステップ５３６で、データ比較を行う。ステップ５３４で、エッジがデータ有効ウィンドウ内にシフト・バックされたので、データ比較５３６は、その「Ｙｅｓ」分岐に従い、遅延線４１０にプログラムされる遅延が、１時間遅延増分だけさらに減分される。クロック・サンプル調整ステップ５０６は、その後、データ比較ステップ５３６でデータ比較が不一致を示すまで、ステップ５３６および５３８を介してループする。この不一致は、図１１の遅延された入出力クロック４１１のエッジｔ１が、データ有効ウィンドウの前の側ｔｅより前に達したことを示す。その後、データ比較ステップ５３６は、「Ｎｏ」分岐に従い、ステップ５４０で、カウンタ４４０の前の側のカウントを保管する。
【００３９】
ステップ５４２で、遅延された入出力クロック４１１の位相に、データ有効ウィンドウの前側エッジと後側エッジの平均値をセットする。これは、図１１では、遅延された入出力クロック４１１曲線の実線部分に対応し、エッジ  遅延された入出力クロック・サンプル調整ステップ５０６は、その後、ステップ５０８に進み、方法５００が、ＩＡＰモードを終了する。
【００４０】
本明細書に記載の実施形態で提示された装置および方法は、動的ウェーブパイプライン式インターフェースを提供する。このインターフェースに到着する複数のデータ信号は、互いに関して相対的にスキューを除去され、データ信号の間のトラッキング差、入出力クロックおよびデータ信号の間のパスの差、およびデータ信号間の設計公差、たとえばチップ配線、モジュール配線、およびカード配線について補償される。その結果、データ信号領域の幅が増える。このインターフェースは、さらに、サンプリング・クロックを、実質的にデータ有効ウィンドウの中央のサンプル点にセンタリングし、これによって、入出力クロックおよびデータの間のパス、モジュール配線、およびカード配線の差を、補償することができる。
【図面の簡単な説明】
【図１】  本発明の一実施形態によるデータ処理システムをブロック図形式で示す図である。
【図２】  本発明による動的ウェーブパイプライン式インターフェースの一実施形態をブロック図形式で示す図である。
【図３】  図２のインターフェースの入力タイミング図を概略的に示す図である。
【図４】  本発明の一実施形態によるデータ受取ユニットをブロック図形式で示す図である。
【図５】  本発明の一実施形態による方法を流れ図形式で示す図である。
【図６】  本発明の一実施形態によるクロック調節の方法を流れ図形式で示す図である。
【図７】  図６の方法に対応するタイミング図を概略的に示す図である。
【図８】  本発明の一実施形態によるデータ・スキュー除去の方法を流れ図形式で示す図である。
【図９】  図８の方法に対応するタイミング図を概略的に示す図である。
【図１０】  本発明の一実施形態によるクロック位相調整の方法を流れ図形式で示す図である。
【図１１】  図１０の方法に対応するタイミング図を概略的に示す図である。
【図１】
0003725429.tif 000002
【図２】
0003725429.tif 000003
【図３】
0003725429.tif 000004
【図４】
0003725429.tif 000005
【図５】
0003725429.tif 000006
【図６】
0003725429.tif 000007
【図７】
0003725429.tif 000008
【図８】
0003725429.tif 000009
【図９】
0003725429.tif 000010
【図１０】
0003725429.tif 000011
【図１１】
0003725429.tif 000012