(57)【特許請求の範囲】
【請求項１】
第１セットのデータ値を記憶するように動作し、該データ値を第１クロックの所定数の周期の間保持する第１記憶デバイスと、
第２セットのデータ値を記憶するように動作し、該データ値を第１クロックの所定数の周期の間保持する第２記憶デバイスと、
前記第１記憶デバイスおよび前記第２記憶デバイスに結合され、前記第１記憶デバイスからの第１データ値および前記第２記憶デバイスからの第２データ値を、少なくとも１つの制御信号に応答して順次出力するように動作する回路であって、第２クロックに応答して前記第１データ値を受領するように動作する入力を有する第１ラッチと、前記第２クロックに応答して前記第２データ値を受領するように動作する入力を有する第２ラッチと、前記第１ラッチの出力に結合された第１入力および前記第２ラッチの出力に結合された第２入力を有し、出力のために、前記第２クロックの周期の所定倍である周期を有する選択制御信号に応答して、前記第１データ値および前記第２データ値のうちの１つを選択するように動作するマルチプレクサとを含む回路と、
前記第１記憶デバイスおよび前記第２記憶デバイスの対応する入力にそれぞれ結合された出力、データ・ストリームを受け取る第１入力、ならびに前記第１記憶デバイスおよび前記第２記憶デバイスのそれぞれの出力に結合された第２入力をそれぞれ有する第１選択回路および第２選択回路とを含み、
前記第１選択回路および前記第２選択回路が、第１ゲート信号および第２ゲート信号に応答して、前記第１入力および前記第２入力のうちの１つの信号を出力するための選択動作を実行するインターフェース装置。
【請求項２】
第１クロックが第１論理レベルの時に入力データを出力の方へ一気に流し、前記第１クロックが前記第１論理レベルから第２論理レベルへ遷移したときに前記入力データをラッチする第１トランスペアレント・ラッチと、
前記第１クロックが前記第２論理レベルの時に入力データを出力の方へ一気に流し、前記第１クロックが前記第２論理レベルから前記第１論理レベルへ遷移したときに前記入力データをラッチする第２トランスペアレント・ラッチと、
前記第１トランスペアレント・ラッチの出力を入力として受け取り、該入力を第２クロックの所定エッジに応答してラッチする第３ラッチと、
前記第２トランスペアレント・ラッチの出力を入力として受け取り、該入力を第２クロックの所定エッジに応答してラッチする第４ラッチと、
前記第３ラッチの出力に結合された第１入力と、前記第４ラッチの出力に結合された第２入力とを有し、出力のために、前記第２クロックの周期の所定倍の周期を有する選択制御信号に応答して、前記第３ラッチの出力及び前記第４ラッチの出力のうちの１つを選択するように動作するマルチプレクサと、
を含むインターフェース装置。
【請求項３】
それぞれが、データ・ストリームを受領するように動作する第１入力と、出力とを有する、複数Ｍ個の第１マルチプレクサと、
それぞれが、対応する第１マルチプレクサの出力に結合された入力を有し、かつ第１出力と、前記対応する第１マルチプレクサの第２入力に結合された第２出力とを有する、複数Ｍ個の第１ラッチと、
それぞれが、前記データ・ストリームを受領するように動作する第１入力と、出力とを有する、複数Ｍ個の第２マルチプレクサと、
それぞれが、ラッチ・ペアを含み、前記ペアのうちの第１のラッチの入力が、対応する第２マルチプレクサの出力に結合され、かつ出力を有し、前記ペアのうちの第２のラッチが、前記ペアの前記第１のラッチの前記出力に結合された入力と、前記対応する第２マルチプレクサの第２入力に結合された出力とを有する、複数Ｍ個の第２ラッチと、
前記第１ラッチのうちの対応する１つの前記第１出力に結合された入力と、第３マルチプレクサの対応する入力に結合された出力とを有する、複数の第３ラッチと、
前記ラッチ・ペアのうちの前記第１のラッチの前記出力に結合された入力と、前記第３マルチプレクサの対応する入力に結合された出力とを有する、複数の第４ラッチとを含み、
前記第３マルチプレクサが、選択制御に応答して、シーケンスのデータ値を出力するように動作し、前記選択制御が複数ｋ個の信号を含み、前記複数ｋ個の信号のうちの第１信号が、第１クロックの周期に等しい半周期を有し、前記第１ラッチおよび前記第２ラッチのそれぞれが、前記第１クロックの周期に等しい半周期を有する第２クロック信号に応答して動作し、かつ前記第３ラッチおよび前記第４ラッチのそれぞれが、前記第１クロックに応答して動作するインターフェース装置。
【請求項４】
第１データ処理装置と、
前記第１データ処理装置に弾性インターフェースを介して結合された第２データ処理装置とを含み、前記弾性インターフェースが、請求項１ないし３のいずれかに記載の装置を含むデータ処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に、データ処理システムに関し、より詳細には、データ処理システム内での動的集積回路チップ、つまりクロック式集積回路チップ間のインターフェースに関する。
【０００２】
【従来の技術】
最新データ処理システムは、システム内の複数のチップとして実現された動的回路、つまりクロック式回路間でのデータの転送を必要とする。例えば、データは、マルチＣＰＵシステム内の中央演算処理装置（ＣＰＵ）間、またはＣＰＵと、メモリ・コントローラおよび外部キャッシュを含み得るメモリ・システムとの間で、転送される必要があり得る。データ転送は、同期しており、データは、所定のシステム周期でチップ上の回路に送達されることが予期されている。ＣＰＵ速度が増加するにつれて、チップ間のインターフェースの速度（バス周期時間）は、そのインターフェース上での待ち時間がシステム・クロック周期を越えるので、制限的な制約となっている。システム同期を維持するため、システム設計者は、データが到着する周期が明確になるように、バスの速度を低下させなければならない。
【０００３】
これは、図１を参照することによってさらによく理解することができ、そこでは、ブロック図の形式で、データ処理システム内の２つの集積回路チップ、チップ１０２とチップ１０４の間にある従来技術のインターフェースが描かれている。チップ１０２および１０４のそれぞれは、位相ロック・ループ、ＰＬＬ１０８に結合された基準クロック１０６を受け取る。ＰＬＬ１０８は、基準クロック１０６にロックされた、ローカル・クロック、すなわちチップ１０２内のクロック１１０およびチップ１０４内のクロック１１１を生成する。基準クロック１０６は、「ゼロ時刻」基準を提供し、ＰＬＬ１０８の乗算に依存して、ローカル・クロック１１０および１１１の複数の周期に対してアサートすることができる。バス・クロック１１３が、基準クロック１０６から、除算器１１２内で、ローカル・クロック１１０を所定の整数Ｎで割ることによって導出される。チップ１０２からチップ１０４に送られるデータは、除算済みローカル・クロック１１１の所定エッジでラッチされて、ドライバ１１８を介してデータ回線１１６上に送り出される。データは、受信器（ＲＸ）１２０で受領されて、チップ１０４内の除算済みローカル・クロック１１０の所定エッジで、宛先ラッチ１２２内に取り込まれる。チップ１０２とチップ１０４の物理的分離のため、このデータは、宛先ラッチ１２２の入力１２４で時間的に遅延して表れる。（ＲＸ１２０の待ち時間への寄与は、通常、データ転送による遅延に比べて小さい。）この時間遅延は、待ち時間と呼ばれ、図２に関連して、さらに詳細に説明する。
【０００４】
同様に、チップ１０４は、データ回線１２６を介して、チップ１０２にデータを送る。チップ１０４から送られるデータは、ローカル・クロック１１１をＮで割る除算器１３０からの出力信号の所定エッジで、ラッチ１２８内でラッチされる。このデータは、ドライバ１３２を介してデータ回線１２６上に送り出されて、受信器１３６を介して宛先ラッチ１３４上で取り込まれる。チップ１０２に対するデータ入力は、やはり、ローカル・クロック１１０をＮで割る除算器１３０の出力の所定エッジで、データ・ラッチ１３４内に取り込まれる。
【０００５】
図２では、従来技術による、図１のインターフェース１００に関する例としてのタイミング図が図示されている。チップ１０２からチップ１０４に送られたデータ１１５が、バス・クロック１１３の立ち上りエッジｔ1で、ラッチ１１４内にラッチされる。バス・クロック１１３は、チップ１０２内の除算器１１２および１３０内で、ローカル・クロック１１０をＮで割ることによって生成される。待ち時間Ｔlの遅延の後、データ１１７が、宛先ラッチ１２２に対する入力で表れ、バス・クロック１２３の立ち上りエッジｔ2でラッチされる。バス・クロック１２３は、チップ１０４内の除算器１１２および１３０内で、ローカル・クロック１１１をＮで割ることによって生成される。したがって、図２による従来技術では、データ１２５は、チップ１０２からのその送出（ｌａｕｎｃｈ）に１バス周期遅れて、チップ１０４上に表れる。図２では、バス・クロック１１３とバス・クロック１２３の間のスキューはゼロである。
【０００６】
図１のインターフェース１００内で、バス・クロック速度が、増加された場合、待ち時間は、１バス・クロック周期を越える可能性がある。したがって、図３に図示する例としてのタイミング図がもたらされ得る。前と同じように、データ１１５は、バス・クロック１１３のエッジｔ1でラッチされている。データ１１７は、バス・クロック１１３およびバス・クロック１２３の周期よりも長い待ち時間Ｔlの後、宛先ラッチ１２２の入力１２４で表れる。データ１１７は、チップ１０４内のバス・クロック１２３のエッジｔ3でラッチされて、チップ１０４上にデータ１２５を提供する。チップ１０２と１０４の間のインターフェース１００が、データ処理システム内のチップ１０２と複数の他のチップの間にある複数のインターフェースのなかで、最も長い待ち時間を有するインターフェースとなっている場合には、図３に図示した２周期の待ち時間は、チップ１０２およびチップ１０４などのチップ間でのデータの伝送および取り込みに関する「目標」周期を表す。目標周期は、データがチップによって予期される所定周期である。より短い待ち時間を有するインターフェースは、同期オペレーションを確実にするため、従来技術により、パディングを行う必要がある可能性がある。このパディングは、インターフェース１００内のより高速のパスが、１バス・クロック周期よりも長く、かつ２バス・クロック周期よりも短い待ち時間を有することを確実にして、これにより、データ同期を維持することができる。
【０００７】
これは、複数のチップ１０１、チップ１０２、１０３、１０４を図示する図４を次に、参照することによって、さらに理解することができる。チップ１０２およびチップ１０４は、長い待ち時間ＴSを有する「低速」パス１５２上で結合されている。チップ１０３は、短い待ち時間ＴFを有する「高速」パス１５４を介して、チップ１０２に結合されている。複数のチップ１０１、チップ１０２〜１０５を結合する「名目」パスは、チップ１０２とチップ１０５の間にあるパス１５６上の待ち時間などの、待ち時間ＴMを有する。
【０００８】
図５のタイミング図は、さらなる詳細を提供する。図５は、図３のものと同様のタイミング図を図示し、そこでは、受領チップへのデータの取り込みに関する目標周期は、２バス周期である。図５では、名目待ち時間ＴMは、１．５バス周期であることが示され、高速パス待ち時間ＴFは、１バス周期よりもわずかに長いことが示され、低速パス待ち時間ＴSは、２バス周期よりもわずかに短いことが示されている。この場合、図４の複数のチップ１０１のそれぞれが、目標周期で、つまりデータ送出に２バス周期遅れて、データを取り込む。
【０００９】
ただし、高速パス待ち時間によって図示される高速パスがより短い場合、データ同期は、失われる。この場合、データは、チップ１０３でのデータ１１７の点線部分によって示される、チップ１０３バス・クロックの遷移ｔ2に先立ってチップ１０３に到着して、１バス周期遅れて、チップ１０３内にラッチされる。これは、チップ１０３内のデータ１２５の点線部分によって示される。同期を復元するため、チップ１０２と１０３の間の高速パス、パス１５４は、  からＴFに高速パスの待ち時間を増加させるパディングを必要とすることになる。したがって、そうした従来技術のインターフェースのタイミングは、特定の動作範囲、特定のインターフェースの長さに適合されており、その設計がそれについて計時され、分析された技術に対してのみ有効である。
【００１０】
同様に、図４のチップのクロック速度を増加させることも、同期が失われることをもたらすことになる。これは、明示的な例を考慮することによって、理解することができる。最初に計られたローカル・クロック周期時間は、１ナノ秒（ｎｓ）周期を有している。バス・クロックは、ローカル・クロックの固定倍の周期を有することになり、これは、２であるとされる。インターフェースの名目待ち時間ＴMを＋／−０．９９ｎｓのタイミング偏差を伴う３ｎｓであるとする、すなわち、最良ケース、つまり高速パスＴFは、２ｎｓであり、最悪ケース、つまり低速パスＴSは、４ｎｓであるとする。データは、２ｎｓより後、かつ４ｎｓより前に到着することになる。したがって、インターフェースは、すべての条件下で動作することになる。すなわち、データは、第１バス周期の後、かつ第２バス周期の前に到着することが保証される。ただし、チップの速度が、０．９ｎｓ周期時間まで増加された場合、バス周期時間は、１．８ｎｓに変更される。より悪いケースの条件下で、データがインターフェースをわたって伝搬するのに十分な時間を保証するためには、データは、２．５バス周期、つまり４．５ｎｓより前に取り込まれてはならない。というのは、２バス周期は、低速パス時間ＴS、つまり４ｎｓよりも短いからである。したがって、１．８ｎｓバス周期を動作させるため、最も高速でデータが到着し得るのは、１．５*１．８＝２．７ｎｓ（１バス周期早く）であり、データが、すべての条件に対して、同じ周期で到着することを確実にする。ただし、前記待ち時間数から、最も早くデータが到着し得るのは、高速パスを介して、３ｎｓ−０．９９ｎｓ＝２．０１ｎｓのＴFである。したがって、１．８ｎｓのバス周期時間での動作は、従来同期設計内では、サポートすることができない。同期で動作するためには、バス対プロセッサ比は、少なくとも３：１にまで低下させて、ローカル・クロック速度の増加を緩和する２．７ｎｓ周期時間（２．７ｎｓ*１．５周期＝４．０５ｎｓおよび２．７ｎｓ*０．５周期＝１．３５ｎｓ）で動作しなければならない。
【００１１】
【発明が解決しようとする課題】
したがって、当分野では、ますます増加するクロック速度を有するデータ処理システム内のチップ間でのデータ転送に対応する装置および方法の必要性が存在する。詳細には、パス待ち時間が、その中で１バス周期を越えて異なるデータ処理システム内のチップ間でのデータ同期を確実にし、また、そこで、設計別のハードウェアパディングの必要がない装置および方法の必要性が存在する。
【００１２】
本発明の目的は、前記の欠点を克服する技法を提供することである。
【００１３】
【課題を解決するための手段】
本発明によれば、インターフェース装置が提供され、前記装置は、
第１セットのデータ値を記憶するように動作する第１記憶デバイスと、
第２セットのデータ値を記憶するように動作する第２記憶デバイスと、
前記第１記憶デバイスおよび前記第２記憶デバイスに結合され、前記第１記憶デバイスから第１データ値を、また前記第２記憶デバイスから第２データ値を少なくとも１つの制御信号に応答して順次、出力するように動作する回路であって、前記第１記憶デバイスおよび前記第２記憶デバイスが、第１クロックの所定数の周期に関するデータ値を保持する回路とを含む。
【００１４】
また、本発明によれば、集積回路デバイスをインターフェースする方法が提供され、前記方法は、
第１セットのデータ値を第１記憶デバイス内に記憶するステップであって、前記第１セットの各データ値が、第１クロックの所定数の周期に対して記憶されるステップと、
第２セットのデータ値を第２セットの記憶デバイス内に記憶するステップであって、前記第２セットの各データ値が、第１クロックの所定数の周期に対して記憶されるステップと、
前記第１記憶デバイスから第１データ値を、また前記第２記憶デバイスから第２データ値を少なくとも１つの制御信号に応答して順次出力するステップとを含む。
【００１５】
以上のことは、下記の本発明の詳細な説明がよりよく理解され得るように、やや広く、本発明の特徴および技術的利点の概要を述べた。本発明のさらなる特徴および利点を下記に説明し、それらは、本発明の請求の対象を成す。
【００１６】
【発明の実施の形態】
本発明は、データ処理システム内の複数のデータ処理チップの間でのデータ同期を実施する弾性インターフェース機構を提供する。データ同期が、物理配線を複雑にして、ハードウェア設計に複雑さを加えるパディングの必要なしに実現される。インターフェースの「弾性」が、システム内でデータ処理チップを結合しているパスの間での物理的違いを引き受ける。受領データを複数の記憶デバイス内に取り込み、ラッチ済みデータを選択的にステアリングすることによって、データ同期が、１バス・クロック周期を越えて異なる待ち時間を有するデータ処理システム内で提供される。同期は、初期化アラインメント手続きを実行することによって、電源投入時、またはリセットの後、動的に確立することができる。このようにして、データの同期は、本発明の原理に従って、ボード設計のタイミング分析および高速パスパディングの必要なしに実現することができる。
【００１７】
下記の説明で、バス・クロック周波数および同期周期、クロック・エッジなどの、様々な特定の詳細を提示して、本発明の十分な理解を提供する。ただし、当分野の技術者には、本発明は、そうした特定の詳細なしに、実行することが可能なことが明白となろう。他の場合、本発明を不必要な詳細で不明瞭にしないように、よく知られた回路が、ブロック図の形式で示されている。
【００１８】
次に、描かれた要素が、そこでは、必ずしも実物大ではなく、また同じ、または同様の要素が、いくつかの図にわたって、同一の参照番号で示されている図６〜１６を参照する。
【００１９】
本発明を実行するための代表的ハードウェア環境が、図６に描かれ、これは、本発明によるデータ処理システム２００の通常のハードウェア構成を示しており、通常のマイクロプロセッサなどの中央演算装置（ＣＰＵ）２１０、およびシステム・バス２１２を介して相互接続された、いくつかの他の装置を有する。データ処理システム２００は、ランダム・アクセス・メモリ（ＲＡＭ）２１４、読取り専用メモリ（ＲＯＭ）２１６、ならびにディスク・ユニット２２０などの周辺デバイスをバス２１２に接続するための入力／出力（Ｉ／Ｏ）アダプタ２１８、キーボード２２４、マウス２２６、および／または、タッチスクリーン・デバイスなどの他のユーザ・インターフェース・デバイス（図示せず）をバス２１２に接続するためのユーザ・インターフェース・アダプタ２２２、データ処理システム２００をデータ処理ネットワークに接続するための通信アダプタ２３４、およびバス２１２を表示装置２３８に接続するための表示アダプタ２３６を含む。ＣＰＵ２１０は、本明細書に図示していない他の回路を含むことができ、これには、マイクロプロセッサ内に一般的に見られる回路、例えば、実行ユニット、バス・インターフェース装置、論理演算装置などが含まれることになる。本発明のインターフェースは、ＣＰＵ２１０内に含まれ得る。さらに、本発明は、ＲＡＭ２１４（これは、本明細書に図示していないメモリ制御回路を含み得る）などの記憶デバイスに組み込むことができる。また、ＣＰＵ２１０は、単一の集積回路上に常駐することも可能である。
【００２０】
次に、本発明によるインターフェース３００が図示されている図７を参照する。インターフェース３００は、チップ３０２およびチップ３０４のそれぞれに組み込まれ、これらのチップは、それぞれのインターフェース３００を介して、互いにデータを通信する。（本発明の実施形態は、チップ間インターフェースの文脈で説明しているが、本発明の原理は、任意ペアのクロック式ラッチの間で実現することができる。）データは、チップ３０２と３０４の間で、バス・クロック３０６および３０８によって決定される速度で転送される。バス・クロック３０６および３０８は、名目上、同一周波数であり、チップ３０２および３０４のそれぞれの中でＰＬＬ３１２に提供される基準クロック３１０から導出される。本発明の一実施形態では、基準クロック３１０は、システム・クロックであり得る。ＰＬＬ３１２のそれぞれは、チップ３０２内のローカル・クロック３１４およびチップ３０４内のローカル・クロック３１６を出力し、これは、基準クロック３１０にその位相がロックされ、基準クロック３１０の周期の事前選択された整数Ｍ倍であり得る。ローカル・クロック３１４は、ドライバ３１８によってバッファされて、チップ３０２からバス・クロック３０６を提供する。同様に、ローカル・クロック３１６は、ドライバ３２０によってバッファされて、チップ３０４からバス・クロック３０８を提供する。
【００２１】
バス・クロックは、チップから通信されるデータとともに提供される。チップ３０２からのデータ３２２は、出力ラッチ３２４内にラッチされて、ドライバ３２６によって駆動され、バッファされる。このデータは、ローカル・クロック３１４の事前選択されたエッジでラッチされる。このデータは、マルチプレクサ（ＭＵＸ）３２８を介して受け取られる。ＭＵＸ３２８は、また、アラインメント手続きに関連して、所定の同期パターンも受け取る。これらを下記に、さらに説明する。
【００２２】
データ３２２は、受信器（ＲＸ）３３０によってバッファされて、弾性インターフェース装置３３２に提供される。データ３２２とともに送られるバス・クロック３０６は、ＲＸ３３４によってバッファされて、その出力が、Ｉ／Ｏクロック３３６を形成し、また、やはり弾性インターフェース装置３３２に提供される。バス・クロック３０８とともに、チップ３０２に送られるチップ３０４からのデータも同様に、チップ３０２内のインターフェース３００によって受け取られ、下記の弾性インターフェース装置３３２の説明は、チップ３０２によるチップ３０４からのデータの受領にも同様によく当てはまることが理解されよう。
【００２３】
目標周期ユニット３３９は、チップ３０４内のローカル・クロック３１６などの、受領チップ内のローカル・クロックによってデータがラッチされる目標周期を設定する。目標周期については、２の弾性値を有する弾性インターフェース装置３３２を図示している図８および９に関連して詳細に説明する。弾性値Ｅを有するインターフェースの場合、目標周期ユニットには、Ｅで割る回路が含まれ得る。さらに、目標周期ユニット３３９は、所定の目標周期値を保持するためのプログラミング・レジスタを含むことが可能であり、この値は、目標プログラム３４１を介してロードすることができる。チップ３０２内の目標周期ユニット３３９にプログラムされた目標周期は、チップ３０４内の目標周期ユニット３３９にプログラムされた目標周期とは異なり得る。目標周期ユニット３３９は、選択制御３４３を出力し、これには、弾性インターフェース装置３３２の実施形態および対応する弾性値Ｅに依存して、複数の信号を含み得る。選択制御３４３は、弾性インターフェース装置３３２の実施形態が図示されている図８〜１６に関連してさらに説明する。
【００２４】
次に、本発明による弾性インターフェース装置３３２の実施形態を図示している図８を参照する。ユニット３３２は、データをＲＸ３３０から受け取る入力４０４を有するＭＵＸ４０２を含む。ＭＵＸ４０２の出力４０６は、ラッチ４０８のデータ（Ｄ）入力に結合されている。ラッチ４０８は、Ｉ／Ｏクロック３３６によって制御される。ラッチ４０８は、そのＤ入力でデータを、クロック３３６の立ち上りエッジでラッチして、クロック３３６の次の立ち上りエッジまで、そのデータを保持する。ラッチ４０８の出力４１０は、ＭＵＸ４０２の第２入力４１２に戻るように結合される。ＭＵＸ４０２は、ゲート４１４に応答して、出力４０６上に出力するために、入力４０４と入力４１２の間で選択をする。
【００２５】
ゲート４１４は、バス・クロック３０６から導出されて、バス・クロック３０６の２倍の周期を有する。ゲート４１４は、遅延ロック・ループ（ＤＬＬ）を使用して、生成することができる。本発明で使用することが可能なＤＬＬの一実施形態は、「Dynamic Wave Pipelined Interface Apparatus and Method Therefor」と題され、参照によって本明細書に組み込まれる、本出願人の同時係属出願で開示されている。ゲート４１４の位相は、下記に説明する初期化アラインメント手続き中に設定され、また、ゲート４１４の動作も、図９に関連して、下記にさらに説明する。
【００２６】
ＲＸ３３０からのデータは、並列に、第２ＭＵＸ４１６の入力４１８にも送り込まれる。ＭＵＸ４１６の出力４２０は、第２ラッチ４２２のＤ入力に結合され、このラッチもまた、Ｉ／Ｏクロック３３６によって制御されて、Ｉ／Ｏクロック３３６の立ち上りエッジでデータをラッチして、このクロックの次の立ち上りエッジまで、そのデータを保持する。ラッチ４２２の出力４２４は、ＭＵＸ４１６の第２入力４２６に結合される。
【００２７】
ＭＵＸ４１６は、ゲート４１４の補数であるゲート４２８に応答して、入力４１８と入力４２６の間で選択する。したがって、ＭＵＸ４０２と４１６のうちの一方が、ＲＸ３３０から受け取られたデータの方を選択しているとき、他方は、その対応するラッチ４０８および４２２のうちの１つの中に保持されたデータの方を選択する。このようにして、ラッチ４０８および４２２のうちの１つの中に前に記憶されているデータ・ビットは、Ｉ／Ｏクロック３３６の追加の周期の間、保持される。
【００２８】
したがって、２つのデータ・ストリームが作成され、そのそれぞれは、Ｉ／Ｏクロック３３６の２周期の間、有効である。ゲート４１４とゲート４２８の間での位相反転のため、２つのデータ・ストリームは、１データ値の時間幅、つまりＩ／Ｏクロック３３６の１周期だけ、互いからオフセットされる。
【００２９】
このことは、図８の弾性インターフェース装置３３２によるタイミング図を図示する図９を参照することによって、さらに理解することができる。前述したとおり、出力ラッチ３２４内に保持されたデータ３２５は、チップ３０２内のローカル・クロック３１４と同期で送出される。データ３２２は、チップ３０４内のＲＸ３３０で受け取られ、図７に関連して前述したとおり、チップ３０２と３０４の間のパスによって表される待ち時間だけ、遅延される。Ｉ／Ｏクロック３３６の立ち上りエッジｔ1で、データ３２２のデータ値「ａ」が、ＭＵＸ４０２の出力４０６を介して、ラッチ４０８によって取り込まれる。ゲート４１４がアサートされる、つまり「オープン」なので、入力４０４でのＲＸ３３０からのデータが、これにより、ＭＵＸ４０２によって出力するために選択される。（ゲートは、対応するＭＵＸが、着信データ・ストリームを受け取る入力の方を選択するとき、オープンであると呼ばれる。これは、図８、９の実施形態での「高い」論理状態に関連付けられるが、オープン・ゲートが、そこで、「低い」論理レベルに対応する代替実施形態も、本発明の趣旨および範囲の中に入ることが理解されよう。
【００３０】
反対に、ゲート４２８は、否定される。これに応答して、ＭＵＸ４１６は、ラッチ４２２内に保持されている前のデータ値を選択し、これは、ＭＵＸ４１６を介してラッチ４２２のＤ入力に戻るように結合される。したがって、ラッチ４２２内に保持されたデータ値は、図８に関連して説明したとおり、ラッチ４０８と４２２の両方に対してクロック信号を提供するＩ／Ｏクロック３３６のさらなる１周期の間、保持される。
【００３１】
Ｉ／Ｏクロック３３６は、図７に示すとおり、バス・クロック３０６から得られる。送出時に、バス・クロック３０６は、図９に図示するとおり、データ有効ウインドウ内で中央そろえされていると想定される。バス・クロック中央そろえは、「Dynamic Wave-Pipelined Interface Apparatus and Method Therefor」と題され、参照によって本明細書に組み込まれる、本出願人の同時係属出願に記載されている。バス・クロック３０６は、データと全く同じように、インターフェース上で遅延を被る。チップ３０４でのバス・クロック３０６の待ち時間は、Ｔlと同等であることが可能であり、これが、Ｉ／Ｏクロック３３６に反映されて、後者のクロックは、これにより、データ３２２に対して中央そろえされる。
【００３２】
ゲート４１４は、ゲート４１４のエッジが、Ｉ／Ｏクロック３３６の立ち下りエッジと位相コヒーレントであるように生成される。Ｉ／Ｏクロック３３６のエッジｔ2で、ゲート４１４が立ち下る（エッジｔ3）。これに応答して、ＭＵＸ４０２は、出力４０６で出力するために、ＭＵＸ４０２の入力４１２に結合された、ラッチ４０８の出力４１０の方を選択する。ゲート４１４が否定されると、ゲート４２８がアサートされて、これにより、ＭＵＸ４１６は、出力４２０上に出力するために、入力４１８上のＲＸ３３０からのデータを選択する。これは、ラッチ４２２のＤ入力に結合される。この時点で、ＲＸ３３０から受け取られたデータは、データ３２２のデータ値「ｂ」に対応する。
【００３３】
Ｉ／Ｏクロック３３６のエッジｔ4で、ラッチ４０８および４２２が、データをそのそれぞれのＤ入力でラッチする。ラッチ４０８内で、これは、前に保持されたデータ３２２の値に対応し、これが、ローカル・クロック３１６のさらなる１周期の間、保持される。ラッチ４２２は、そのＤ入力上データ値ｂを、ＭＵＸ４１６を介して、出力４２４上にラッチする。
【００３４】
Ｉ／Ｏクロック３３６の次の遷移ｔ7で、データ値「ｃ」が取り込まれる。エッジｔ7で、ゲート４１４は、アサートされるので、データ３２２でのデータ値ｃが、ＭＵＸ４０２の出力４０６上に現れる。データ値ｂは、ラッチ４２２内に保持される。というのは、ゲート４２８が、ゲート４１４の補数であるため、否定されるからである。ストリームのデータが、データ３２２上に到着し続けるのにつれて、弾性インターフェース装置３３２は、このようにして、２つのデータ・ストリームを、それぞれ、ラッチ４０８および４２２の出力４１０および４２４で、生成し続ける。この２つのデータ・ストリームは、データ３２２上に到着する入力データ・ストリームの交替する部分を含み、これらは、図９に図示するとおり、ローカル・クロック３１６の２周期の間、有効である。
【００３５】
入力データ・ストリームの構造は、ローカル・クロック３１６と同期で、この２つのデータ・ストリームのうちの１つからの値を交互に選択することによって復元される。ローカル・クロック目標周期が選択される。ローカル・クロック目標周期は、データが、図７、８、９でのローカル・クロック３１６などのローカル・クロックによって宛先ラッチ内に取り込まれる周期である。目標周期は、分析によって決定される。目標周期は、インターフェース上での最悪ケースの待ち時間よりも、時間的に遅れていなければならない。例えば、図９に描いた実施形態では、目標周期は、エッジｔ8に対応して、ローカル・クロック３１６の３周期であるように設定されている。目標周期は、図１での基準クロック１０６に関連して前述したとおり、基準クロック３１０によって決定されたゼロ時刻基準から測定される。図８および９の弾性値２の実施形態では、データ到着は、目標周期よりも、最高で２ローカル・クロック周期も早い可能性がある。そうした実施形態では、図７の目標周期ユニット３３９には、２で割る回路が含まれる。
【００３６】
目標周期が設定されると、ローカル・クロック３１６に応答して、ＭＵＸ４３２を介して、宛先ラッチ４３０内に取り込むためのデータが選択される。ＭＵＸ４３２は、ペアの入力、４３４および４３６を有する。入力４３４は、ラッチ４０８の出力４１０に結合され、また入力４３６は、ラッチ４２２の出力４２４に結合される。ＭＵＸ４３２は、出力するために、選択制御３４３に応答して、ラッチ４０８および４２２の出力によって表される２つのデータ・ストリームのうちの１つを選択する。選択制御３４３が、第１論理状態、図９の実施形態では、「高」を有するとき、ＭＵＸ４３２は、入力４３４にあるデータをラッチ４３０のＤ入力に提供し、また選択制御３４３が、第２所定論理状態、図９の実施形態での「低」を有するとき、ＭＵＸ４３２の入力４３６にあるデータが、ラッチ４３０のＤ入力に提供される。選択制御３４３は、ローカル・クロック３１６の周期の２倍の周期を有し、またローカル・クロック３１６と位相同期しており、これにより、選択制御３４３は、第１論理状態を有して、目標周期に中央そろえされている。したがって、図９では、ローカル・クロック３１６のエッジｔ8で、出力４１０でのデータ値ａは、ＭＵＸ４３２を介して、ラッチ４３０のＤ入力に結合され、またローカル・クロック３１６のエッジｔ8によってラッチされている。ローカル・クロック３１６の次の正のエッジｔ9で、伝送されたデータ・ストリームの次の部分が、宛先ラッチ４３０内にラッチされる。選択制御３４３は、その位相が、１／２周期だけ進んでおり、したがって、第２論理状態を有し、このため、ラッチ４２２の出力４２４は、ＭＵＸ４３２を介して、ラッチ４３２のＤ入力に結合される。エッジｔ9で、ラッチ４２２の出力４２４でのデータ値ｂが、ラッチ４３２内にラッチされて、データ値ｂは、データ出力３３８上に現れる。ローカル・クロック３１６の後続周期で、弾性インターフェース装置３３２は、ラッチ４０８の出力４１０とラッチ４２２の出力４２４の間で交互に選択することによって、データ・ストリーム２２５を復元する。
【００３７】
データが、弾性インターフェース装置３３２を介して伝送され得るには、まず、ゲート４１４（および、それに付随して、その補数のゲート４２８）を初期化しなければならない。このインターフェース上での待ち時間は、１ローカル・クロック周期を越えて異なり得るので、ゲート４１４は、適切な位相で初期化しなければならない。前述したとおり、ゲート４１４の周期は、Ｉ／Ｏクロック３３６、およびローカル・クロック３１６のそれの２倍である。ゲート４１４は、Ｉ／Ｏクロック３３６と位相同期しており、したがって、ゲート４１４の平頂部分が、Ｉ／Ｏクロック３３６の事前選択したエッジ、図９の実施形態での正のエッジに中央そろえされる。
【００３８】
ゲート４１４は、本発明の一実施形態では、電源投入時、またはリセット時に、同期パターンを伝送することによって、初期化することが可能である。再び図７を参照すると、データ処理システムのリセットまたは電源投入に応答して、初期化アラインメント手続き（ＩＡＰ）モード信号３４０がアサートされ、これにより、ＭＵＸ３２８が、出力するために、所定同期パターンを選択する。ＩＡＰモード信号３４０は、本発明の一実施形態では、ＲＯＭ２１６内に含まれるＢＩＯＳ命令に応答して、ＣＰＵ２１０によってアサートされ得る。
【００３９】
図８に図示された弾性インターフェース装置３３２の実施形態では、データは、前述したとおり、同期問題を生むことなく、２周期ウインドウ内で到着することが可能である。図８の弾性インターフェース装置３３２は、２という弾性値を有するものとされる。ＩＡＰで、同期パターンは、弾性デバイスの弾性値に等しい、またはそれより大きい周期Ｐと同期していることが必要とされる。したがって、図９の弾性インターフェース装置３３２の場合、適切な同期パターンは、初期ビットが「１」であり、「１」と「０」が交互になっている複数のビットであろう。２以外の弾性値を有する弾性インターフェースの実施形態を下記に説明し、その同期パターンは、それに応じて変更される。例えば、弾性値Ｎを有する弾性インターフェース（下記に、図１６及び図１７に関連して説明する）の場合、適切なパターンは、初期ビットが「１」であり、その後に、「０」のＮ−１ビットが続き、このパターンが、その後、反復されるものであろう。他のビット・パターンも同様に、使用することが可能である。例えば、前記の例としてのパターンと相補形のビット・パターンも、別法として、使用することができる。
【００４０】
ゲート４１４の位相を設定する上で、同期パターンが送出されている間に、ラッチ４０８の出力４１０を、サンプリングすることが可能である。ゲート４１４は、事前選択した位相で初期化される。弾性値２を有する弾性インターフェース装置３３２のための前述した同期パターンに関して、出力４１０で「１」が検出された場合には、ゲート４１４およびゲート４２８は、適切に位相が合っている。そうでなければ、ゲート４１４および対応するゲート４２８の位相は、Ｉ／Ｏクロック３３６の周期の１／２だけ、ずれているべきである。前述したとおり、ゲート４１４は、ＤＬＬを使用して生成することができ、ＤＬＬの実施形態は、「Dynamic Wave Pipelined Interface Apparatus and Method Therefor」と題され、参照によって本明細書に組み込まれる、本出願人の同時係属の先に言及した出願で開示されている。
【００４１】
弾性インターフェース３００のような、本発明の原理による弾性インターフェースの動作は、次に、図１０及び図１１を参照することによって、さらに理解することができる。図１０及び図１１では、チップ３０２が、図７の場合と同様に、チップ３０４とデータを交換し、さらに、チップ３０６とデータを交換する。チップ３０２は、２つのインターフェース３００を含み、そのうちの１つは、チップ３０２をチップ３０４に、チップ３０４に含まれるインターフェース３００を介して接続し、そのうちの第２のものは、チップ３０２を、やはり本発明の一実施形態によるインターフェース３００を含むチップ３０６に結合する。チップ３０２と３０４を結合するパス５０２は、待ち時間ＴFを有する図４でのパス１５４と同様の、高速パスであることが可能であり、チップ３０２をチップ３０６に結合するパス５０４は、待ち時間ＴSを有する図４でのパス１５２のような、低速パスであることが可能である。従来技術によるインターフェースでは、パス５０２とパス５０４の間の待ち時間差が、バス・クロックの周期を越える場合、パス５０２は、データの同期を維持するため、前述のとおり、パディングを必要とすることになる。ただし、弾性インターフェース装置３３２を組み込んだインターフェース３００は、パス５０２とパス５０４の間の待ち時間の差に対応する。チップ３０４および３０６内の弾性インターフェース装置３３２のそれぞれの中で、前述のとおり、目標周期が同一の周期であるように設定することによって、チップ３０２、３０４、３０６の間のデータ同期が維持される。
【００４２】
本発明の代替の実施形態を実施することが可能である。２という弾性値を有するインターフェース装置３３２の代替実施形態が、図１２に図示されている。図１２に示した弾性インターフェース装置３３２の実施形態は、図８に図示した弾性インターフェース装置３３２の場合と同様に、ラッチ４０８および４２２を駆動するＭＵＸ４０２および４１６を含む。ただし、図１２の弾性インターフェース装置３３２は、図８に示した実施形態でのラッチ４３０に対応するラッチ６３０に加えて、ローカル・クロック３１６によって制御される第２キャプチャ・ラッチ６２８を含む。さらに、図８でのＭＵＸ４３２に対応する出力ＭＵＸ６３２が、図１２での弾性インターフェース装置３３２の実施形態では、キャプチャ・ラッチのダウンストリームに移動されている。
【００４３】
このことは、インターフェースでの待ち時間を短縮する。ラッチ６２８および６３０のＤ入力は、それぞれ、ラッチ４２２および４０８の出力４２４および４１０に結合されている。ラッチ６２８および６３０のＤ入力でのデータは、ローカル・クロック３１６によって、これらのラッチ内に入力される。したがって、データは、ＭＵＸ６３２に先立って、ローカル・クロック３１６で取り込まれる。データ・ストリーム３２２は、出力するために、選択制御３４３の制御下で、ＭＵＸ６３２を介して、ラッチ６２８および６３０の出力６３４および６３６のうちの１つを選択することによって、復元される。これは、図８の実施形態での出力ＭＵＸ４３２の動作に類似するが、選択制御３４３は、図８での選択制御３４３と比較して、１／２周期だけ、その位相がずれている。図１２での弾性インターフェース装置３３２の実施形態では、データは、ローカル・クロック３１６の立ち上りエッジでラッチされる。ただし、当分野の技術者には、代替の実施形態は、他の制御信号の位相が適切に調整されていれば、立ち下りエッジでデータをラッチできることが理解されよう。例えば、ラッチ６２８および６３０が、ローカル・クロック３１６の立ち下りエッジでラッチする実施形態では、選択制御３４３は、その位相が、１／２周期だけ、ずれていることになる。
【００４４】
図１２の弾性インターフェース装置３３２の実施形態の動作は、次に、そのためのタイミング図を図示する図１３を参照することによって、さらに理解することができる。ＭＵＸ４０２および４１６、ラッチ４０８および４２２、ならびにＩ／Ｏクロック３３６およびローカル・クロック３１６は、図８および９での弾性インターフェース装置３３２の実施形態に共通しているので、これらの構造に関連する図１３に図示されたタイミング図の部分は、簡明にするために、再び説明しない。
【００４５】
ラッチ６２８および６３０、ならびにＭＵＸ６３２に関連する、図１３のタイミング図の部分に注目すると、データ値ａが、ローカル・クロック３１６のエッジｔ8'で、ラッチ６３０の出力６３４上にラッチされている。同様に、データ値ｂが、ローカル・クロック３１６のエッジｔ9'で、ラッチ６２８の出力６３６上にラッチされている。そのデータが、目標周期でデータ出力３３８上に現れるためには、選択制御３４３の立ち上りエッジは、目標周期と一致する、ローカル・クロック３１６のエッジｔ9'まで、遅延されなければならない。したがって、データ値ａは、ＭＵＸ６３２からデータ出力３３８上に、選択制御３４３のエッジｔ10で現れる。したがって、選択制御３４３は、ローカル・クロック３１６と位相同期しており、ローカル・クロック３１６の立ち上り遷移の間に中央そろえされた平頂を有している。同様に、データ値ｂは、データ出力３３８上に、選択制御３４３の立ち下りエッジｔ11で現れて、データ・ストリーム３２２は、その後、選択制御３４３の後続の遷移で、継続して復元される。
【００４６】
さらに、他の所定弾性値を有する弾性インターフェース装置３３２の実施形態も、本発明により、実施することができる。これらには、半周期弾性値が含まれ得る。１．５周期の弾性値を有する本発明の一実施形態が、図１４に図示されている。データ３２２が、ラッチ７０２および７０４のＤ入力に結合されている。ラッチ７０２および７０４は、「極性ホールド」、または「フラッシュ」ラッチである。そうしたラッチは、また、「トランスペアレント」ラッチと呼ぶこともできる。ラッチ７０２内のクロック（Ｃ）が、第１所定論理状態または第１所定論理レベルを有するとき、Ｄ入力上のデータが、出力７０６に一気に流れる。第１状態から所定第２論理状態へのクロックの遷移で、ラッチ７０２が、Ｄ入力上のデータをラッチして、出力７０６上のデータは、第２状態から第１状態へのクロックの次の遷移まで保持される。（図１４および１５の実施形態では、第１状態は、「低い」論理レベルに対応し、また第２状態は、それにより、遷移が立ち上りエッジを形成する、「高い」論理レベルに対応する。ただし、相補的論理状態を有する代替の実施形態も、本発明の趣旨および範囲のなかに入ることになる。）ラッチ７０４は、そのクロックＣが、第２論理レベルを有するとき、そのＤ入力上のデータを出力７０８に一気に流す。このデータは、クロックの第２論理レベルから第１論理レベルへの遷移でラッチされて、そのクロックが、第２論理レベルから、図１４および１５の実施形態では「低」である第１論理レベルに遷移するまで保持される。このフラッシュ・スルーは、データが、ラッチがクロックされるまで待つ必要なしに、適切に、入手可能となることを可能にし、これにより、弾性インターフェース装置３３２の「低待ち時間、低弾性値」の実施形態を実施する。
【００４７】
図１４に図示した弾性インターフェース装置３３２の実施形態では、ラッチ７０２および７０４が、Ｉ／Ｏクロック７２６によって制御される。図１４の弾性インターフェース装置３３２は、２倍データ転送速度（ＤＤＲ）デバイスであり、これは、データが、Ｉ／Ｏクロック３３６の各遷移でラッチ７０２および７０４のうちの１つにラッチされて、Ｉ／Ｏクロック３３６の周期が、ローカル・クロック３１４およびローカル・クロック３１６の周期の２倍であるということである。バス・クロック３０６は、幅が２つのローカル・クロック周期であるデータ・ウィンドウ内で中央そろえされている。
【００４８】
図１４の弾性インターフェース装置３３２の実施形態は、図１５に示された対応するタイミング図を参照することによって、さらに理解することができる。データ値ａは、弾性インターフェース装置３３２に到着したとき、「平頂」７５２でＩ／Ｏクロック３３６は低であるため、ラッチ７０２の出力７０６に一気に流れる。言い換えれば、データ値ａは、Ｉ／Ｏクロック７１６のエッジｔ1に先立って、ラッチ７０２の出力７０６上に現れる。
【００４９】
データ値ａは、ローカル・クロック３１６の１／２周期に対応するＩ／Ｏクロック３３６の１／４だけ、遷移ｔ1に先行する。Ｉ／Ｏクロック３３６は、バス・クロックから導出されて、前述したとおり、バス・クロックに対して、送出時に、チップ間のパスの待ち時間だけ、その位相がずれている。さらに、Ｉ／Ｏクロック３３６には、１／４周期位相進みが与えられる。エッジｔ1で、データ値ａがラッチされて、これにより、ローカル・クロック３１６の１周期の間、保持される。
【００５０】
同様に、データ値ｂは、ＲＸ３３０から弾性インターフェース装置３３２に到着したとき、ラッチ７０４の出力７０８に一気に流れる。というのは、Ｉ／Ｏクロック３３６が、平頂７５４で、高だからである。次に、データ値ｂは、Ｉ／Ｏクロック３３６の否のエッジｔ2によって、出力７０８上で保持される。データ値ｂは、ローカル・クロック３１６の１周期の間、保持される。したがって、データ値は、それぞれ、ラッチ７０２および７０４の出力７０６および７０８上に、１．５ローカル・クロック周期の間、現れ、この周期は、図１４の弾性インターフェース装置３３２の実施形態の弾性値である。
【００５１】
データ・ストリーム３２２は、ラッチ７１３および７１２、ならびにＭＵＸ７１４によって、出力３３８で再構成される。出力７０６および７０８によって表される２つのデータ・ストリームは、それぞれ、ローカル・クロック３１６によってラッチ７１３および７１２内にラッチされる。データは、ローカル・クロック３１６の所定エッジ（図１４および１５の実施形態では、正の）でラッチされ、目標周期は、前述のとおり、データ値ａの弾性値の１．５周期内のどこでも起きるように設定することができる。したがって、図１５でのタイミング図によるデータ値ａは、ローカル・クロック３１６のエッジｔ3で、ラッチ７１３内にラッチされて、選択制御３４３に応答して、ＭＵＸ７１４を介してデータ３３８上にスイッチされる。データは、第１所定値を有する選択制御３４３に応答して、ラッチ７１３から選択され、また、選択制御３４３が、第２所定値を有するときに、ラッチ７１２から選択される。図１４、１５の実施形態では、第１値は「高」であり、第２値は「低」であるが、他の所定値も、本発明の趣旨および範囲のなかにあることが、理解されよう。ローカル・クロック３１６のエッジｔ4で、データ値ｂが、ラッチ７１２内にラッチされて、選択制御３４３が第２値を有するのに応答して、データ３３８上にスイッチされる。後続のデータ値が、次に、図１５で図示するとおり、ＭＵＸ７１４を介して、ラッチ７１３および７１２から出力を交互に選択することによって、出力３３８上に、順次、出力される。
【００５２】
さらに、本発明の原理による弾性インターフェースは、拡張可能であり、このため、弾性値は、ステアリング要素および記憶デバイスを追加することによって、増加することができる。Ｎ−１バス・クロック周期の弾性値を有する弾性インターフェースの一実施形態が、図１６及び図１７に図示されている。弾性インターフェース装置３３２が、複数ＮのＭＵＸ８０２を含む。各ＭＵＸ内の第１入力８０４は、ＲＸ３３０からデータ・ストリーム３２２を受け取る。第２入力８０６は、ラッチ８０８〜８１８のなかの対応するものによって出力された信号を受け取る。ラッチ８０８〜８１８のそれぞれは、ラッチ・ペアを含む。ラッチ８０８、８１２、８１６内では、ラッチ・ペアは、マスタ−スレーブ方式で、対のうちの第１のラッチの内部出力が対のうちの第２のラッチの内部入力に結合されている。ラッチ８０８、８１２、８１６は、スレーブ部分からの出力８２０を対応するＭＵＸ８０２の入力８０６に提供する。ラッチ８０８、８１２、８１６のスレーブ部分は、Ｄ入力上のデータをＩ／Ｏクロック３３６の立ち上りエッジでラッチする。ラッチ８０８、８１２、８１６は、対応するＭＵＸ８０２の出力に結合されたそれぞれのＤ入力を有する。ラッチ８１０、８１４、８１８は、ラッチ・ペアのうちの第１のラッチからの出力８２２を対応するＭＵＸ８０２の入力８０６に結合する。ラッチ・ペアのうちの第１のラッチは、トランスペアレントであり、第１入力８２８上のデータは、Ｉ／Ｏクロック３３６の「平頂」で、出力８２２に一気に流れる。ラッチ８１０、８１４、８１８のそれぞれでの入力８２８は、ラッチ・ペアのうちの第２のラッチからの対応する出力８２６に結合される。さらに、ペアの第２のラッチに対する入力８３０は、対応するＭＵＸ８０２の出力に結合される。ラッチ・ペアの第２のラッチもまた、トランスペアレントであり、Ｉ／Ｏクロック３３６の平頂で、データを一気に流す。ラッチ８１０、８１４、８１８を形成するペアの第１のラッチと第２のラッチは、反対の極性を有するＩ／Ｏクロック３３６の平頂で、データを一気に流す。
【００５３】
ＭＵＸ８０２は、対応するゲート信号８３２〜８４２に応答して、入力８０４および８０６上の信号の間で選択する。ゲート信号８３２〜８４２は、図１８に図示するタイミング図に関連して、さらに説明する。
【００５４】
データは、データ・ラッチ８４４を介して、ローカル・クロック内にラッチされ、これらのラッチのそれぞれは、ラッチ８０８〜８１８のうちの対応するものから出力信号を受け取る。データは、ローカル・クロック３１６によって、データ・ラッチ８４４内にラッチされる。ラッチ８０８、８１２、８１６の出力８２４は、対応するデータ・ラッチ８４４のＤ入力に提供される。出力８２４は、ラッチ８０８、８１２、８１６のマスタ部分から得られ、この部分は、前述のとおり、トランスペアレントである。データ・ラッチ８４４のうちの残りのラッチは、そのＤ入力上で、ラッチ８１０、８１４、８１８のうちの対応するものを形成するラッチ・ペアのなかの第２のラッチからの出力８２６から、信号を受け取る。ラッチ・ペアのうちのこの第２のラッチもまた、トランスペアレント・ラッチであり、データは、そのラッチ・ペアのうちの第１のラッチで、データが、そこで、一気に流れるのとは反対の、Ｉ／Ｏクロック３３６の極性で、一気に流れる。
【００５５】
ＭＵＸ８４６は、出力するために、データ・ラッチ８４４内に保持される信号のうちの１つを選択する。データ・ラッチ８４４のそれぞれの出力は、対応する入力、入力８４８〜８５８のうちの１つに結合される。この信号は、ＭＵＸ８４６の出力８６０上のチップ３０２または３０４などの、チップに対して出力される。ＭＵＸ８４６は、選択制御３４３を介して、入力８４８〜８５８のなかから選択する。選択制御３４３は、ｋ個の信号を含み、ここで、２kは、Ｎに等しい。
【００５６】
Ｎの弾性値を有する代替の実施形態を、図１６及び図１７に示される回路を使用して実施することができる。データ・ラッチ８４４のそれぞれのＤ入力をラッチ８０８、８１２、８１６のうちの対応するものの出力８２０、ならびにラッチ８１０、８１４、８１８のうちの対応するものの出力８２６に（図１６及び図１７に示されるように出力８２４および８２２ではなく）結合することによって、Ｎの弾性値が得られる。図１６及び図１７の弾性インターフェース装置３３２の回路は、それ以外は、変更されていない。
【００５７】
次に、図１６及び図１７に図示したインターフェース装置３３２に関するタイミング図を図示する図１８を参照する。データ値ａは、Ｔlのインターフェース待ち時間の後、データ３２２上にデータ・ストリームで到着して、「平頂」８６２によって表される、ＭＵＸ８０２のうちの対応するものに提供されたゲート８３２のアサートに応答して、データ値ａは、対応するＭＵＸ８０２を介して、ラッチ８０８のＤ入力に渡される。Ｉ／Ｏクロック３３６のエッジｔ1で、ラッチ８０８が、データ値ａを保持し、これは、ラッチ８０８の出力８２０上で、ＭＵＸ８０２のうちの対応するものの入力８０６に戻るように結合される。ゲート８３２のエッジｔ2で、対応するＭＵＸ８０２が、入力８０６上の信号の方を選択し、これは、データ値ａを有する。ゲート８３２は、バス・クロック３０６のＮ−１周期の間、否定され、これにより、データ値ａは、ラッチ８０８のＤ入力上に、したがって、ラッチ８０８の出力８２４上に維持される。データ値ａは、Ｉ／Ｏクロック３３６の遷移ｔ3によって、バス・クロック３０６のさらに１周期の間、保持されて、その後、ゲート８３２の遷移ｔ4は、対応するＭＵＸ８０２を切り替えて、データ３２２上のデータ・ストリームの方を選択し、これにより、Ｉ／Ｏクロック３３６のエッジｔ5で、データ３２２内の（Ｎ＋２）番目のデータ値が、Ｉ／Ｏクロック３３６のエッジｔ5上で、ラッチ８０８内にラッチされる。データ値ａは、ローカル・クロック３１６のエッジｔ6で、ラッチ８０８の出力８２４を受け取るデータ・ラッチ８４４内に取り込まれる。データ値ａは、バス・クロック３０６のＮ周期の間、出力８４８上で保持される。
【００５８】
データ３２２内の次のデータ値ｂも同様に、バス・クロック３０６のＮ周期の間、ラッチ８１０に結合されたデータ・ラッチ８４４内に保持される。データ値ｂが、装置３３２に到着したとき、ゲート８３４がアサートされ（「平頂」８６４によって表されている）、対応するＭＵＸ８０２の入力８０４上のデータ３２２の方を選択する。データ値ｂは、ラッチ８１０の入力８３０で現れて、Ｉ／Ｏクロック３３６のエッジｔ7によってラッチされ、これにより、データ値ｂは、ラッチ８１０の出力８２６上に現れる。ラッチ８１０の出力８２６は、ラッチ８１０の入力８２８にフィードバックされる。Ｉ／Ｏクロック３３６は、エッジｔ7の後に否定されるので、ラッチ８１０の出力８２６上のデータ値ｂは、ラッチ８１０の出力８２２にまで達し、そこで、対応するＭＵＸ８０２の入力８０６に戻るように結合される。Ｉ／Ｏクロック３３６のエッジｔ8で、データ値ｂは、ラッチ８１０の出力８２２上で保持される。ゲート８３４のエッジｔ9で、対応するＭＵＸ８０２が、ラッチ８１０の出力８２２上で保持されるデータ値ｂをラッチ８１０の入力８３０に出力するために、スイッチして、入力８０６を選択する。データ値ｂは、この時点で、ラッチ８１０の出力８２６まで達し、そこで、ラッチ８１０の入力８２８に戻るように結合され、データ値ｂは、ゲート信号８３４を受け取る対応するＭＵＸの入力８０６にフィードバックされ続ける。したがって、データ値ｂは、ラッチ８１０内の出力８２６上で、バス・クロック３０６のＮ＋１周期の間、ゲート８３４がエッジｔ10で遷移した後は、１クロック周期の間保持される。
【００５９】
ゲート８３６は、ゲート８３４に対して、Ｉ／Ｏクロック３３６の１周期だけ、その位相が遅延しており、また同様に、各後続ゲート信号８３８〜８４２は、連鎖内の先行するゲート信号に対して、Ｉ／Ｏクロック３３６の１周期だけ、その位相が遅延している。このようにして、各後続ラッチ８０８〜８１８は、データ３２２内の後続データ値を記憶して、そのデータ値をバス・クロック３０６のＮ＋１周期の間、保持する。それぞれのラッチ８０８〜８１０内の各データ値は、次に、ローカル・クロック３１６の各周期ごとに、対応するデータ・ラッチ８４４内にラッチされる。したがって、データ値ｂは、ローカル・クロック３１６のエッジｔ11で、対応するデータ・ラッチ８４４内にラッチされて、出力８５０上に現れ、また同様に、データ値ｃは、ローカル・クロック３１６のエッジｔ12で、そのそれぞれのデータ・ラッチ８４４内に入力されて、出力８５２上に現れる。ラッチ８１８に結合された最後のデータ・ラッチ８４４は、ローカル・クロック３１６のエッジｔ13で、（Ｎ＋１）番目のデータ値をラッチする。
【００６０】
データは、ｋ個の信号を含む選択制御３４３に応答して、ＭＵＸ８４６から出力される。選択制御３４３のｋ個の信号のそれぞれは、周期的である。Ｓ（０）と表される「ゼロ番目」信号は、バス・クロック３０６の周期に等しい半周期を有する。（ｋ−１）番目の信号は、Ｎバス・クロック周期である半周期を有する。Ｓ（０）とＳ（Ｎ）の間のシーケンス内にある各信号は、先行する信号の周期の２倍の周期性を有する。ＭＵＸ８４６内の対応する入力８４８〜８５８上で現れる、データ・ラッチ８４４内に記憶されたデータ値は、選択制御３４３に応答して、順次、データ出力８６０上に出力される。データ値ａは、選択制御３４３内のＳ（Ｎ）のエッジｔ14で、弾性値Ｎ−１を有する目標周期で、出力される。残りのデータ値は、選択制御３４３内のｋ個の信号の周期的遷移に応答して、順次、出力される。選択制御３４３を形成する信号は、立ち上りエッジで位相同期を有するように示してきたが、代替の実施形態では、相補的位相を使用できることが、当分野の技術者によって理解されよう。
【００６１】
図１６、１７及び１８に図示する装置３３２は、図８および９に関連して前述したとおり、ＩＡＰ中に初期化される。適切な初期化パターンは、図１６、１７及び１８に図示する装置３３２の実施形態の弾性値に対応する、Ｎ−１の弾性値を有する実施形態の場合、Ｎ−１の周期性を有することが可能である。Ｎの弾性値を有する代替の実施形態の場合、前述したとおり、同期パターンは、周期性Ｎを有することが可能である。初期化中、「１」の後に複数の「０」が続く同期パターンの場合、選択３４３内の信号が適切に順序付けられているとき、その「１」がラッチ８０８内にサンプリングされることになる。
【００６２】
このようにして、データ処理システム内で、インターフェースを介してデータ同期を維持する機構が提供された。受領データが、複数の記憶デバイス内に取り込まれて、チップ・クロックと同期化された事前選択した目標周期で、受領チップ内に選択的にステアリングされる。初期同期は、ＩＡＰを実行することによって、動的に確立される。本発明の機構は、１バス・クロック周期を越えて異なる待ち時間を有するデータ処理システム内で、データ同期を提供する。
【図面の簡単な説明】
【図１】  従来技術によるチップ・インターフェースを図示する図である。
【図２】  従来技術による図１のチップ・インターフェースの一実施形態に関するタイミング図を概略で示す図である。
【図３】  従来技術による、図１のチップ・インターフェースの別の実施形態に関するタイミング図を示す図である。
【図４】  データ処理システム内の、複数の相互接続されたチップを図示する図である。
【図５】  図４の複数の相互接続されたチップの一実施形態に関するタイミング図を概略で示す図である。
【図６】  本発明を実行するための代表的ハードウェア環境を示すブロック図である。
【図７】  本発明の一実施形態によるチップ・インターフェースを示すブロック図である。
【図８】  本発明の一実施形態による弾性インターフェースを示すブロック図である。
【図９】  図８の本発明の実施形態のタイミング図を概略で示す図である。
【図１０】  本発明によるチップ・インターフェースの代替実施形態を図示する図である。
【図１１】  本発明によるチップ・インターフェースの代替実施形態を図示する図である。
【図１２】  本発明による弾性インターフェースの別の代替実施形態を図示する図である。
【図１３】  図１２の弾性インターフェースの別の代替実施形態を図示する図である。
【図１４】  本発明による弾性実施形態の別の代替実施形態を図示する図である。
【図１５】  図１４の実施形態に関するタイミング図を概略で示す図である。
【図１６】  本発明による弾性インターフェースのさらに別の代替実施形態を示すブロック図である。
【図１７】  本発明による弾性インターフェースのさらに別の代替実施形態を示すブロック図である。
【図１８】  図１６及び図１７の実施形態に関するタイミング図を概略で示す図である。
【図１】
0004384819.tif 000002
【図２】
0004384819.tif 000003
【図３】
0004384819.tif 000004
【図４】
0004384819.tif 000005
【図５】
0004384819.tif 000006
【図６】
0004384819.tif 000007
【図７】
0004384819.tif 000008
【図８】
0004384819.tif 000009
【図９】
0004384819.tif 000010
【図１０】
0004384819.tif 000011
【図１１】
0004384819.tif 000012
【図１２】
0004384819.tif 000013
【図１３】
0004384819.tif 000014
【図１４】
0004384819.tif 000015
【図１５】
0004384819.tif 000016
【図１６】
0004384819.tif 000017
【図１７】
0004384819.tif 000018
【図１８】
0004384819.tif 000019