(57)【要約】【課題】複数の自己調整インタフェース間で同期データ到着を維持しつつ、最小サイクル待ち時間を自動的に得られるようにインタフェースを調整する。【解決手段】独立の自己タイミング調整インタフェース１０８は、データ・ビットをデ・スキューし、それらを最小サイクル範囲で到着させることができる。しかし、全てのインタフェースに同じサイクルで到着しなければ、ＳＭＰデザインは、適切に機能を果たすことができない。本発明は、データがエラスティック・インタフェースに受信される調整パターンを用いて、最も遅いサイクルを決定し、この最も遅いサイクルにマッチングさせるため、全てのインタフェース１０８のターゲット・サイクルを計算する。ターゲット・サイクルは、デザインに反映され、データは、同期的に受信される。また、データが同期的に到着することを確かめるテストが行われる。【選択図】　　　図２
2004007681.tif 000002
【特許請求の範囲】
【請求項１】
複数の自己調整インタフェースを有するデジタル・システムにおけるデータ同期化方法であって、
エラスティック・インタフェースの各バスを介して同期パターンを送るステップと、
最も遅く到着するエラスティック・インタフェース・データを有するエラスティック・インタフェース・バスのターゲット・サイクルを決定するステップと、
このターゲット・サイクルを全ての自己調整インタフェースに与えるステップと、
を含むデータ同期化方法。
【請求項２】
最も早く受信したデータを検出するステップと、前記受信したデータの同期パターンを比較するステップとを更に含む請求項１に記載の方法。
【請求項３】
最も早く受信したデータと最も遅く受信したデータを検出するステップと、前記受信したデータの同期パターンを比較して前記ターゲット・サイクルを決定するステップとを更に含む請求項１に記載の方法。
【請求項４】
最も早く受信したデータと最も遅く受信したデータを検出するステップと、
前記受信したデータの同期パターンを比較して前記ターゲット・サイクルを決定するステップと、受信したデータのパラメータを計算するステップとを更に含み、
前記パラメータを計算するステップは、最も遅く受信したデータに対応するパターンを選択して、更に受信したデータのパラメータを計算し、最も遅く到着するエラスティック・インタフェース・データを有するエラスティック・インタフェース・バスの前記ターゲット・サイクルを決定するステップを含む請求項１に記載の方法。
【請求項５】
エラスティック・インタフェース・ドライバから、複数のインタフェース・レジスタを有するエラスティック・インタフェース・レシーバへ前記同期パターンを送るステップと、
モニタされる全てのインタフェース・レジスタが、第１の値（例えば‘１’）になるのを待つステップと、
モニタされる全てのインタフェース・レジスタが、第２の値（例えば‘０’）になるのを待ち、全ての受信データが、再び第１の値（例えば‘１’）になるときは、リファレンス・カウンタ値が記録され、以前に記録されたリファレンス・カウンタ値の最大値と比較されるように、リファレンス・カウンタをイネーブルするステップと、
を更に含む請求項１に記載の方法。
【請求項６】
新しい最大値が現れる毎に、フリー・ランニング・インタフェース・カウンタ値を、同期化されたターゲット・レジスタに記録する請求項５に記載の方法。
【請求項７】
レシーバ選択が通常動作として決定されると、記録され同期化されたターゲット・レジスタ値を、全てのエラスティック・インタフェース・レシーバのターゲット・サイクル入力にフィードバックする請求項６に記載の方法。
【請求項８】
レシーバ選択が通常動作として決定されると、記録され同期化されたターゲット・レジスタ値を、安定するまで全てのエラスティック・インタフェース・レシーバのターゲット・サイクル入力にフィードバックし、その際に、全てのレシーバ・データ・バスが、検証ウインドウの間に、サイクル毎に一致していることを検証され、その後に同期パターンがオフになり、全ての自己調整インタフェースおよびエラスティック・インタフェースへのこのターゲット・サイクルを、使用できるようにする請求項６に記載の方法。
【請求項９】
複数の自己調整インタフェースを有するデジタル・システムにおけるデータ同期化方法であって、
（ａ）前記自己調整インタフェースのそれぞれに同期パターンを送るステップと、
（ｂ）全ての前記自己調整インタフェースがデータを正しく受信した最も遅いサイクルを決定するステップと、
を含むデータ同期化方法。
【請求項１０】
（ｃ）全ての前記自己調整インタフェースが同じターゲットを得るように、最も遅く到着するインタフェース・サイクルをフィード・バックする追加のステップを含む請求項９に記載の方法。
【請求項１１】
前記最も遅いサイクルを決定するステップは、
（ｂ−１）エラスティック・インタフェース・レシーバを切り換えて、エラスティック・インタフェース・レジスタの１つをモニタするステップと、
（ｂ−２）全てのインタフェースが‘１’を受け取った時を検出するステップと、
（ｂ−３）全てのインタフェースが‘０’に戻った時を検出するステップと、
（ｂ−４）リファレンス・カウンタをイネーブルするステップと、
（ｂ−５）全てのインタフェースが再び‘１’となる時を検出し、前記リファレンス・カウンタに記録するステップと、
（ｂ−６）前記リファレンス・カウンタが新しい最大値になると、インタフェース・フリー・ランニング・カウンタに記録するステップと、
（ｂ−７）前記エラスティック・インタフェース・レシーバを切り換えて、通常動作の下で全ての前記エラスティック・インタフェース・レジスタをモニタするステップと、
（ｂ−８）全ての前記エラスティック・インタフェースのための新しいターゲット・サイクルとして、記録されたインタフェース・フリー・ランニング・カウンタ値をフィードバックするステップと、
を含む請求項９に記載の方法。
【請求項１２】
（ｄ）全てのレシーバ・データ・バスが、検証ウインドウの間にサイクル毎に一致していることを検証する追加のステップを含む請求項９に記載の方法。
【請求項１３】
複数の自己調整インタフェースがあり、同期データの各部分が、異なるエラスティック・インタフェース・バスに送り出され、異なるサイクル待ち時間で到着しても、前記ステップを、全ての受信したデータを同期化するために用いる請求項９に記載の方法。
【請求項１４】
最も早く受信したデータと最も遅く受信したデータを検出するステップと、
前記受信したデータの同期パターンを比較して前記ターゲット・サイクルを決定するステップと、受信したデータのパラメータを計算するステップとを更に含み、
前記パラメータを計算するステップは、最も遅く受信したデータに対応するパターンを選択して、更に受信したデータのパラメータを計算し、最も遅く到着するエラスティック・インタフェース・データを有するエラスティック・インタフェース・バスの前記ターゲット・サイクルを決定し、それによって、システム待ち時間を最小にするために、全てのデータの最も早く到着するサイクルを依然として維持しながら、全てのインタフェースが、最も遅く到着するインタフェース・データ信号に、データをタイミング調整するステップを含む請求項９に記載の方法。
【請求項１５】
前記エラスティック・インタフェースが適切にタイミング調整されていることを確かめるために、前記エラスティック・インタフェースをテストするステップを更に含む請求項９に記載の方法。
【請求項１６】
複数の自己調整インタフェースを有し、各々が、同期化されたイネーブル入力がアクティブのときに同期化された最小ターゲット・サイクルを計算するためのシンクロナイザおよびベリファイヤ回路に接続された出力データ・バスを有するエラスティック・インタフェースと、
受信データ・バスのデータをタイミング調整するターゲット・サイクル・バスへのフィードバック回路と、
計算が完了すると、同期化されたターゲット・サイクルが、前記エラスティック・インタフェースのターゲット・サイクル・バスに戻される間に同期イネーブル信号をディセーブルするスイッチと、
を備えるデジタル・システム・エラスティック・インタフェース装置。
【請求項１７】
アクティブにされて、前記シンクロナイザおよびベリファイヤ回路のベリファイヤ・ロジックをイネーブルする検証イネーブル信号を与え、前記ベリファイヤ・ロジックは、検査して、前記エラスティック・インタフェースの全ての受信データ・バスのサンプルが同期化され、同一サイクルの同一データに全て切り換わることを確かめる請求項１６に記載のデジタル・システム・エラスティック・インタフェース装置。
【請求項１８】
検証イネーブル信号がイネーブルされているサイクルの間に、全ての受信データ・バスのサンプルが一致しないならば、出力エラー信号は、アクティブにされ、検証イネーブル信号が再びアクティブになるまで保持する請求項１７に記載のデジタル・システム・エラスティック・インタフェース装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータおよび他のデジタル・システムに関し、特に、複数の自己調整インタフェースを有するデジタル・システムにおいて、複数データ・バス信号を同じサイクルに自動的に同期化する装置および方法に関する。
【０００２】
【従来の技術】
本出願人は、同期インターフェースに関する、２００２年３月１２日に出願されたＩＢＭ（登録商標）の同時係属の米国特許出願第１０／０９６３８２号“Ｒｅｃｅｉｖｅｒ　Ｄｅｌａｙ　Ｄｅｔｅｃｔｉｏｎ　ａｎｄ　Ｌａｔｅｎｃｙ　Ｍｉｎｉｍｉｚａｔｉｏｎ　ｆｏｒ　ａ　Ｓｏｕｒｃｅ　Ｓｙｎｃｈｒｏｎｏｕｓ　Ｗａｖｅ　Ｐｉｐｅｌｉｎｅｄ　Ｉｎｔｅｒｆａｃｅ”の出願人でもある。この同時係属の出願および本出願は、同一譲受人であるニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレイションによって所有されている。
【０００３】
上記米国出願明細書には、特にＳＭＰ環境のために、複数のエラスティック・インタフェース・バス（ｅｌａｓｔｉｃ　ｉｎｔｅｒｆａｃｅ　ｂｕｓ）を、同じターゲット・サイクルに自動的に同期化する、複数の自己調整インタフェースを有するデジタル・システムのための方法が開示されている。ＳＭＰ環境は、全てのデータが早期に到着する場合に、複数のエラスティック・インタフェース・バスが最小の待ち時間を利用することを可能にする。また、その方法を実施する装置が開示されている。
【０００４】
【発明が解決しようとする課題】
本発明の目的は、複数の自己調整インタフェース間で同期データ到着を維持しながら、最小サイクル待ち時間を自動的に得られるようにインタフェースを調整するデジタル・システムのデータ同期化方法を提供することにある。
【０００５】
【課題を解決するための手段】
本発明は、エラスティック・インタフェースの各バスを介して同期パターンを送るステップと、最も遅く到着するエラスティック・インタフェース・データを有するエラスティック・インタフェース・バスのターゲット・サイクルを決定するステップと、このターゲット・サイクルを全ての自己調整インタフェースに与えるステップとを含む。
【０００６】
これは、自動レシーバ・ターゲット・サイクル計算と最小待ち時間を有する自動タイミング調整エラスティック・インタフェースの使用を可能にし、同期インタフェースをも支援しながら、電圧、温度およびサイクル時間を広範囲にわたって調整する能力を与える。
【０００７】
特に、複数の自己調整インタフェースのためのデジタル・システム方法は、同期データの各部分が、異なるエラスティック・インタフェース・バスに送り出され、異なるサイクル待ち時間で到着しても、全ての受信データを同期化する。
【０００８】
また、最も遅く到着するエラスティック・インタフェース・データ信号を決定する方法、および全てのインタフェースが、システム待ち時間を最小にするために、全てのデータの最も早く到着するサイクルを依然として維持しながら、この最も遅く到着するエラスティック・インタフェース・データ信号に、データをタイミング調整することを可能にするために、対応するターゲット・サイクル・パラメータを計算する方法を開示する。
【０００９】
最後に、インタフェースが適切にタイミング調整されていることを確かめるために、この方法により得られるインタフェースをテストする方法を開示する。
【００１０】
レシーバ・インタフェースは、エラスティック・インタフェースであっても良く、エラスティック・インタフェースでなくても良い。複数のエラスティック・インタフェース・レシーバは、同一チップ上に形成されても良く、複数のチップ上に形成されても良い。アービトレーション・ロジック（ａｒｂｉｔｒａｔｉｏｎ　ｌｏｇｉｃ）は、１個のチップ上に形成されても良く、複数のチップに渡っても良い。
【００１１】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
図１には、エラスティック・インタフェース１０２を含むターゲット・サイクル学習（ｔａｒｇｅｔ　ｃｙｃｌｅ　ｌｅａｒｎｉｎｇ）方法を用いてエラスティック・インタフェースにおける待ち時間を最小にする、学習されたターゲット・サイクル（ｌｅａｒｎｅｄ　ｔａｒｇｅｔ　ｃｙｃｌｅ）を有するエラスティック・インタフェース１０８が示されている。エラスティック・インタフェース１０２は、クロック１０９と、一定値に初期設定されるターゲット・サイクル・バス１０４とを使用し、入力データ・バス１０１をタイミング調整して、タイミング調整された受信データ・バス１０３を得る。このようなタイミング調整は、入力データ・バスをクロッキング（ｃｌｏｃｋｉｎｇ）するための有効なウインドウを配置し、入力データ・バスをデ・スキューし、クロッキングするための有効なウインドウを再配置し、タイミング調整された受信データ・バス１０３を出力に与えることで行う。
【００１２】
さらに、図１は、学習されたターゲット・サイクルを有するエラスティック・インタフェース１０８が、検出回路１０５を含むターゲット・サイクル学習方法を用いて上記米国特許出願“Ｒｅｃｅｉｖｅｒ　Ｄｅｌａｙ　Ｄｅｔｅｃｔｉｏｎ　ａｎｄ　Ｌａｔｅｎｃｙ　Ｍｉｎｉｍｉｚａｔｉｏｎ　ｆｏｒ　ａ　Ｓｏｕｒｃｅ　Ｓｙｎｃｈｒｏｎｏｕｓ　Ｗａｖｅ　Ｐｉｐｅｌｉｎｅｄ　Ｉｎｔｅｒｆａｃｅ”に記述されているエラスティック・インタフェースの変形例を更に含むことを示している。検出回路１０５は、追加マージンを含むあるいは含まない最小ターゲット・サイクル１０６を計算する。この最小ターゲット・サイクル１０６は、フィードバック回路またはプログラミング１０７により、受信データ・バス１０３をタイミング調整するために用いられるターゲット・サイクル・バス１０４にフィードバックされる。
【００１３】
図２および複数の自己調整インタフェースを有するＳＭＰデジタル・システムによれば、ターゲット・サイクル同期化器（シンクロナイザ）およびベリファイヤ２０１に接続された受信データ・バス１０３をそれぞれが有する複数の学習されたエラスティック・インタフェース１０８があることが分かるであろう。ターゲット・サイクル・シンクロナイザおよびベリファイヤ２０１は、同期イネーブル信号２０３がアクティブのとき、同期化されたターゲット・サイクル信号２０２を計算するために用いられる。
【００１４】
計算が完了すると、同期イネーブル信号２０３は、ディセーブルされ、同期化されたターゲット・サイクル信号２０２は、図示しない一般的なマルチプレクサ（ｍｕｘ）を用いて、学習されたエラスティック・インタフェース１０８のターゲット・サイクル・バス１０４に戻される。
【００１５】
検証イネーブル信号２０４は、次に、アクティブにされて、ベリファイヤ・ロジックをイネーブルする。ベリファイヤ・ロジックは、検査して、全ての受信データ・バス１０３が同期化される（すなわち、同一サイクルの同一データに全て切り換えられる）ことを確かめる。検証イネーブル信号２０４がアクティブであるサイクルの間に、全ての受信データ・バス１０３のサンプルが、一致しないならば、出力エラー信号２０５は、アクティブにされ、検証イネーブル信号２０４が再びアクティブになるまで保持する。
【００１６】
シンクロナイザの動作を更に理解するために、図３を参照すべきである。複数の入力データ・バス１０１のそれぞれからのサンプル・ビットが、入力０から入力４で示されている。入力データ・バスのそれぞれが、１サイクル間アップし、７サイクル間ダウンしている周期的パルスまたは信号を有することが分かるであろう。これは同期パターンである。これらの波形の到着時間は、異なるパッケージ待ち時間に依存し、したがって、全て同じではない。実際には、それらは、異なるシステム・サイクルで到着可能なデータ信号である。
【００１７】
複数のエラスティック・インタフェースの各選択された内部エラスティック・インタフェース・レジスタからのサンプル・ビットが、出力０から出力４で示されている。これらのサンプル・ビットが、次のローカル・クロックの後に到着し、少なくとも３サイクルの間（インタフェースのエラスティシティ（ｅｌａｓｔｉｃｉｔｙ）と、クロック位相関係とに依存する）保持することが分かる。
【００１８】
通常、エラスティック・インタフェースについては、入力データ・バス１０１に対して周期的順序で配置されている数個の保持レジスタ（一般には４個）がある（図３も参照）。さらに、エラスティック・インタフェース１０８内にはマルチプレクサ（図示せず）が内蔵されており、このマルチプレクサが、これらのステージング（ｓｔａｇｉｎｇ）レジスタから交互に選択したものが、受信データ・バス１０３として用いられる。
【００１９】
同期ステップの際には、好ましい実施例は、エラスティック・インタフェース１０８のマルチプレクサを固定状態となるようにし、それによって、保持レジスタの１つを受信データバス１０３に接続する。次に、図３に示すように、入力２の波形を出力２の波形と比較すると、入力２の波形が１の値となった後に、出力２の波形がサイクルの先頭でオンになることが分かる。出力２の波形は、保持レジスタが３サイクル間保持することを示している。
【００２０】
好ましい実施例は、これらのレジスタが、エラスティシティ（ｅｌａｓｔｉｃｉｔｙ）数のサイクル間保持するという事実を利用する。したがって、本発明を用いることによって、同期化されたターゲット・サイクル波形が‘１’である最初のサイクルは、同期パターンの周期に基づいて周期的にやってくる同期化されたターゲット・サイクルである。
【００２１】
他のエラスティック・インタフェースについては、通常のシステム動作で、出力を多重化させる（すなわち、特定のステージング・レジスタを選択するために出力マルチプレクサをフリーズさせない）ことを受信データ・バス１０３に許すことは可能である。各インタフェースからの１サイクル・パルスを用いることによって、およびエラスティシティ数のサイクル間保持し、リセットするレジスタを用いることによって、シンクロナイザは、好ましい実施例と同じように用いることができる。同期化されたターゲット・サイクルを得る同様の等価技術が存在する。
【００２２】
エラスティック・インタフェース・シーケンス・カウンタに位相同期化されるフリー・ランニング・カウンタが存在する。同期化されたターゲット・サイクルが発生すると、フリー・ランニング・カウンタは、正確に同期化されたターゲット・サイクル信号２０２を指示する。
【００２３】
図４は、ターゲット・サイクル・シンクロナイザおよびベリファイヤ・ロジックの好ましい実施例を示す。各受信データ・バス１０３からのサンプル・ビットは、ＮＯＲ回路４０１に出力され、全てのサンプル・ビットが０のときにアクティブであるオール‘０’（ａｌｌ　０）信号４０３を得る。各受信データ・バス１０３からのサンプル・ビットは、ＡＮＤ回路４０２に出力され、全てのサンプル・ビットが１のときにアクティブであるオール‘１’（ａｌｌ　１）信号４０４を得る。
【００２４】
シーケンサ制御ロジック４０５は、シンクロナイザ機能を始動させなければならない。シーケンサ制御ロジック４０５は、まず、オール‘１’（ａｌｌ　１）信号４０４をモニタし、次に、オール‘０’（ａｌｌ　０）信号４０３を待ち、オール‘０’（ａｌｌ　０）信号４０３のときに立ち上がり、同期イネーブル信号２０３が立ち下がり、シーケンサ４０５をリセットさせ、インクリメント信号４１２を立ち下げるまでインクリメント信号４１２を保持する。
【００２５】
インクリメント信号４１２は、オール‘１’（ａｌｌ　１）信号４０４の１サイクル立ち上がりをモニタする立ち上がりエッジ検出回路４０６の入力イネーブルに出力される。オール‘１’（ａｌｌ　１）信号４０４が立ち上がるサイクルで、１サイクル・パルスは、比較イネーブル信号４０８に出力される。このパルスは、一般に、ほぼ８サイクル毎に発生し、この時、オール‘１’（ａｌｌ　１）信号４０４は、０から１になる。
【００２６】
インクリメント信号４１２は、また、３ビット・カウンタをリセットする同期イネーブル信号２０３が立ち下がるまで、０から７まで連続してカウントし続ける３ビット・リファレンス・カウンタ４０７の入力インクリメントに出力される。これは、また、同期イネーブル信号２０３が、最初０であったので、カウンタは、インクリメント信号４１２がアクティブになる前に０であったことを意味する。３ビット・リファレンス・カウンタ４０７の出力は、最大値カウンタ回路４０９に接続されるカウント・バス４１１として使用できる。最大値カウンタ回路４０９は、比較イネーブル４０８信号がアクティブであるときは常に、内部に、カウント・バス４１１の最大値と、以前に格納したカウント・バス４１１の最大値を格納する。新しい最大値を検出すると（すなわち、カウント・バス４１１が直前のカウンタ値よりも大きい）、１サイクル・パルスが、新最大値信号４１０に発生し、新最大値信号４１０は、２ビットの同期化されたターゲット・サイクル・レジスタ４１３が、現在のフリー・ランニング・カウント・バス信号４１６を取り込むようにする。前記同期化されたターゲット・サイクル・レジスタ４１３の内容は、ターゲット・サイクル・シンクロナイザおよびベリファイヤ２０１から、同期化されたターゲット・サイクル・バス信号２０２に、出力として与えられる。
【００２７】
また、図４には、ベリファイヤ回路４１４が示されている。ベリファイヤ回路４１４は、簡単な回路を用いて、オール‘０’（ａｌｌ　０）信号４０３とオール‘１’（ａｌｌ　１）信号４０４のいずれかが、検証イネーブル信号２０４がアクティブである間中、オンであることを確かめる。そうでなければ、エラー・ラッチ４１５は、セットされ、保持されて、出力エラー信号２０５がアクティブとなるようにする。インタフェースは、エラー信号２０５が設定されるならば、使用できない。エラー・ラッチ４１５は、ターゲット・サイクル同期または検証手順を繰り返す前にクリアされなければならない。
【００２８】
図５には、シーケンサ制御ロジック４０５の状態遷移図が示されている。状態‘００’は、オール‘１’（ａｌｌ　１）信号４０４がアクティブとなるのを待つために用いられる。オール‘１’（ａｌｌ　１）信号４０４がアクティブとなったときに、状態‘００’は、状態‘０１’に移る。状態‘０１’は、オール‘０’（ａｌｌ　０）信号４０３がアクティブとなるのを待つために用いられる。オール‘０’（ａｌｌ　０）信号４０３がアクティブとなったときに、状態‘０１’は、状態‘１０’に移る。状態‘１０’は、カウンタおよび他のシーケンス制御を開始するインクリメント信号４１２を保持するために用いられる。
【００２９】
図６は、最大値カウンタ回路４０９の構造を示す。カウント・バス４１１のカウンタ値は、比較回路６０２で３ビット最大値カウント・レジスタ６０１の値と比較され、‘新カウント＞旧カウント’信号６０３を生じる。‘新カウント＞旧カウント’信号６０３は、ＡＮＤ回路６０４を用いて、比較イネーブル信号４０８とＡＮＤ演算が行われ、ＡＮＤ回路６０４の出力である新最大値信号４１０は、新しい最大値を示す。新最大値信号４１０は、マルチプレクサ６０５を用いて、３ビット最大値カウント・レジスタ６０１を更新するために用いられる。
【００３０】
図７は、オール‘１’（ａｌｌ　１）信号４０４を用いた立ち上がりエッジ検出回路４０６の構造を示す。入力オール‘１’（ａｌｌ　１）信号４０４は、各サイクル毎に１サイクル・ラッチ７０１に取り込まれる。オール‘１’（ａｌｌ１）信号４０４と、ステージド・インバーテッド・オール‘１’（ｓｔａｇｅｄ　ｉｎｖｅｒｔｅｄ　ａｌｌ　１）信号７０２と、インクリメント信号４１２とのＡＮＤ演算を行うために用いられるＡＮＤ回路７０３があり、シーケンサ４０５が状態‘１０’になった後に、オール‘１’（ａｌｌ　１）信号４０４の立ち上がりエッジが、検出されたかどうかを判別する。前記ＡＮＤ回路７０３の出力は、最大値カウンタ回路４０９によって用いられる比較イネーブル信号４０８を作成するために用いられる。
【００３１】
インタフェースを同期化するために用いられるステップは、次のように要約される。
１．エラスティック・インタフェース・ドライバから、エラスティック・インタフェース・レシーバへ同期パターンを送る。
２．レシーバ選択マルチプレクサを固定状態に設定し、エラスティック・レジスタの１つをモニタする。
３．モニタされる全てのインタフェース・レジスタが、ある値、例えば‘１’になるのを待つ。
４．次に、モニタされる全てのインタフェース・レジスタが、他の値、例えば‘０’になるのを待つ。
５．リファレンス・カウンタが、以下のようにイネーブルされる。
６．全ての受信データが、再び最初の値‘１’になったときは、リファレンス・カウンタ値が記録され、以前に記録されたリファレンス・カウンタ値の最大値と比較される。
７．新しい最大値が現れる毎に（通常、最大値は、初期設定後変わらない）、フリー・ランニング・インタフェース・カウンタ値を、同期化されたターゲット・レジスタに記録する。
８．レシーバ選択マルチプレクサを通常動作に切り換える。
９．記録され同期化された全てのターゲット・レジスタ値を、全てのエラスティック・インタフェース・レシーバのターゲット・サイクル入力にフィードバックする。
１０．安定するまで待つ。
１１．全てのレシーバ・データ・バスが、検証ウインドウの間に、サイクル毎に一致していることを検証されるときには、
１２．同期パターンがオフになり、
１３．エラスティック・インタフェースが、使用できるようになる。
【００３２】
本発明の好ましい実施例を記述したが、当業者が、本発明の要旨を逸脱しない範囲で種々の改良と拡張を行うことができることは理解できるであろう。
【００３３】
まとめとして、本発明の構成に関して以下の事項を開示する。
（１）複数の自己調整インタフェースを有するデジタル・システムにおけるデータ同期化方法であって、
エラスティック・インタフェースの各バスを介して同期パターンを送るステップと、
最も遅く到着するエラスティック・インタフェース・データを有するエラスティック・インタフェース・バスのターゲット・サイクルを決定するステップと、
このターゲット・サイクルを全ての自己調整インタフェースに与えるステップと、
を含むデータ同期化方法。
（２）最も早く受信したデータを検出するステップと、前記受信したデータの同期パターンを比較するステップとを更に含む上記（１）に記載の方法。
（３）最も早く受信したデータと最も遅く受信したデータを検出するステップと、前記受信したデータの同期パターンを比較して前記ターゲット・サイクルを決定するステップとを更に含む上記（１）に記載の方法。
（４）最も早く受信したデータと最も遅く受信したデータを検出するステップと、
前記受信したデータの同期パターンを比較して前記ターゲット・サイクルを決定するステップと、受信したデータのパラメータを計算するステップとを更に含み、
前記パラメータを計算するステップは、最も遅く受信したデータに対応するパターンを選択して、更に受信したデータのパラメータを計算し、最も遅く到着するエラスティック・インタフェース・データを有するエラスティック・インタフェース・バスの前記ターゲット・サイクルを決定するステップを含む上記（１）に記載の方法。
（５）エラスティック・インタフェース・ドライバから、複数のインタフェース・レジスタを有するエラスティック・インタフェース・レシーバへ前記同期パターンを送るステップと、
モニタされる全てのインタフェース・レジスタが、第１の値（例えば‘１’）になるのを待つステップと、
モニタされる全てのインタフェース・レジスタが、第２の値（例えば‘０’）になるのを待ち、全ての受信データが、再び第１の値（例えば‘１’）になるときは、リファレンス・カウンタ値が記録され、以前に記録されたリファレンス・カウンタ値の最大値と比較されるように、リファレンス・カウンタをイネーブルするステップと、
を更に含む上記（１）に記載の方法。
（６）新しい最大値が現れる毎に、フリー・ランニング・インタフェース・カウンタ値を、同期化されたターゲット・レジスタに記録する上記（５）に記載の方法。
（７）レシーバ選択が通常動作として決定されると、記録され同期化されたターゲット・レジスタ値を、全てのエラスティック・インタフェース・レシーバのターゲット・サイクル入力にフィードバックする上記（６）に記載の方法。
（８）レシーバ選択が通常動作として決定されると、記録され同期化されたターゲット・レジスタ値を、安定するまで全てのエラスティック・インタフェース・レシーバのターゲット・サイクル入力にフィードバックし、その際に、全てのレシーバ・データ・バスが、検証ウインドウの間に、サイクル毎に一致していることを検証され、その後に同期パターンがオフになり、全ての自己調整インタフェースおよびエラスティック・インタフェースへのこのターゲット・サイクルを、使用できるようにする上記（６）に記載の方法。
（９）複数の自己調整インタフェースを有するデジタル・システムにおけるデータ同期化方法であって、
（ａ）前記自己調整インタフェースのそれぞれに同期パターンを送るステップと、
（ｂ）全ての前記自己調整インタフェースがデータを正しく受信した最も遅いサイクルを決定するステップと、
を含むデータ同期化方法。
（１０）（ｃ）全ての前記自己調整インタフェースが同じターゲットを得るように、最も遅く到着するインタフェース・サイクルをフィード・バックする追加のステップを含む上記（９）に記載の方法。
（１１）前記最も遅いサイクルを決定するステップは、
（ｂ−１）エラスティック・インタフェース・レシーバを切り換えて、エラスティック・インタフェース・レジスタの１つをモニタするステップと、
（ｂ−２）全てのインタフェースが‘１’を受け取った時を検出するステップと、
（ｂ−３）全てのインタフェースが‘０’に戻った時を検出するステップと、
（ｂ−４）リファレンス・カウンタをイネーブルするステップと、
（ｂ−５）全てのインタフェースが再び‘１’となる時を検出し、前記リファレンス・カウンタに記録するステップと、
（ｂ−６）前記リファレンス・カウンタが新しい最大値になると、インタフェース・フリー・ランニング・カウンタに記録するステップと、
（ｂ−７）前記エラスティック・インタフェース・レシーバを切り換えて、通常動作の下で全ての前記エラスティック・インタフェース・レジスタをモニタするステップと、
（ｂ−８）全ての前記エラスティック・インタフェースのための新しいターゲット・サイクルとして、記録されたインタフェース・フリー・ランニング・カウンタ値をフィードバックするステップと、
を含む上記（９）に記載の方法。
（１２）（ｄ）全てのレシーバ・データ・バスが、検証ウインドウの間にサイクル毎に一致していることを検証する追加のステップを含む上記（９）に記載の方法。
（１３）複数の自己調整インタフェースがあり、同期データの各部分が、異なるエラスティック・インタフェース・バスに送り出され、異なるサイクル待ち時間で到着しても、前記ステップを、全ての受信したデータを同期化するために用いる上記（９）に記載の方法。
（１４）最も早く受信したデータと最も遅く受信したデータを検出するステップと、
前記受信したデータの同期パターンを比較して前記ターゲット・サイクルを決定するステップと、受信したデータのパラメータを計算するステップとを更に含み、
前記パラメータを計算するステップは、最も遅く受信したデータに対応するパターンを選択して、更に受信したデータのパラメータを計算し、最も遅く到着するエラスティック・インタフェース・データを有するエラスティック・インタフェース・バスの前記ターゲット・サイクルを決定し、それによって、システム待ち時間を最小にするために、全てのデータの最も早く到着するサイクルを依然として維持しながら、全てのインタフェースが、最も遅く到着するインタフェース・データ信号に、データをタイミング調整するステップを含む上記（９）に記載の方法。
（１５）前記エラスティック・インタフェースが適切にタイミング調整されていることを確かめるために、前記エラスティック・インタフェースをテストするステップを更に含む上記（９）に記載の方法。
（１６）複数の自己調整インタフェースを有し、各々が、同期化されたイネーブル入力がアクティブのときに同期化された最小ターゲット・サイクルを計算するためのシンクロナイザおよびベリファイヤ回路に接続された出力データ・バスを有するエラスティック・インタフェースと、
受信データ・バスのデータをタイミング調整するターゲット・サイクル・バスへのフィードバック回路と、
計算が完了すると、同期化されたターゲット・サイクルが、前記エラスティック・インタフェースのターゲット・サイクル・バスに戻される間に同期イネーブル信号をディセーブルするスイッチと、
を備えるデジタル・システム・エラスティック・インタフェース装置。
（１７）アクティブにされて、前記シンクロナイザおよびベリファイヤ回路のベリファイヤ・ロジックをイネーブルする検証イネーブル信号を与え、前記ベリファイヤ・ロジックは、検査して、前記エラスティック・インタフェースの全ての受信データ・バスのサンプルが同期化され、同一サイクルの同一データに全て切り換わることを確かめる上記（１６）に記載のデジタル・システム・エラスティック・インタフェース装置。
（１８）検証イネーブル信号がイネーブルされているサイクルの間に、全ての受信データ・バスのサンプルが一致しないならば、出力エラー信号は、アクティブにされ、検証イネーブル信号が再びアクティブになるまで保持する上記（１７）に記載のデジタル・システム・エラスティック・インタフェース装置。
【図面の簡単な説明】
【図１】ターゲット・サイクル学習方法を用いてエラスティック・インタフェースにおける待ち時間を最小にするＩＢＭ（登録商標）の方法に従う学習されたターゲット・サイクル・エラスティック・インタフェースを示す図である。
【図２】複数の受信データ・バスを同期化するターゲット・サイクル・シンクロナイザおよびベリファイヤに接続されるサンプル受信データを有する、学習されたターゲット・サイクル時間を有する複数のエラスティック・インタフェースの好ましい実施例を示す図である。
【図３】ターゲット・サイクル・シンクロナイザおよびベリファイヤ・ロジックの効果を示すタイミング図である。
【図４】ターゲット・サイクル・シンクロナイザおよびベリファイヤ回路の好ましい実施例を示す図である。
【図５】ターゲット・サイクル・シンクロナイザおよびベリファイヤ回路で用いられるシーケンサ制御ロジックの状態遷移を示す図である。
【図６】ターゲット・サイクル・シンクロナイザおよびベリファイヤ回路で用いられる最大値カウンタ回路の構成を示す図である。
【図７】ターゲット・サイクル・シンクロナイザおよびベリファイヤ回路で用いられる立ち上がり検出器の構成を示す図である。
【符号の説明】
１０１　入力データ・バス
１０２　エラスティック・インタフェース
１０３　受信データ・バス
１０４　ターゲット・サイクル・バス
１０５　検出回路
１０６　最小ターゲット・サイクル
１０７　フィードバック回路またはプログラミング
１０８　学習されたターゲット・サイクルを有するエラスティック・インタフェース
１０９　クロック
２０１　ターゲット・サイクル同期化器（シンクロナイザ）およびベリファイヤ
２０２　同期化されたターゲット・サイクル信号
２０３　同期イネーブル信号
２０４　検証イネーブル信号
２０５　エラー信号
４０１　ＮＯＲ回路
４０２，６０４，７０３　ＡＮＤ回路
４０３　オール‘０’（ａｌｌ　０）信号
４０４　オール‘１’（ａｌｌ　１）信号
４０５　シーケンサ制御ロジック
４０６　立ち上がりエッジ検出回路
４０７　３ビット・リファレンス・カウンタ
４０８　比較イネーブル信号
４０９　最大値カウンタ回路
４１０　新最大値信号
４１１　カウント・バス
４１２　インクリメント信号
４１３　同期化されたターゲット・サイクル・レジスタ
４１４　ベリファイヤ回路
４１５　エラー・ラッチ
４１６　フリー・ランニング・カウント・バス信号
６０１　３ビット最大値カウント・レジスタ
６０２　比較回路
６０３　‘新カウント＞旧カウント’信号
６０５　マルチプレクサ
７０１　１サイクル・ラッチ
７０２　ステージド・インバーテッド・オール‘１’信号
【図１】
2004007681.tif 000003
【図２】
2004007681.tif 000004
【図３】
2004007681.tif 000005
【図４】
2004007681.tif 000006
【図５】
2004007681.tif 000007
【図６】
2004007681.tif 000008
【図７】
2004007681.tif 000009