(57)【要約】【課題】複数サイクルの遅延を持つ同期バスのための自動遅延検出およびレシーバ調整の方法を提供する。【解決手段】同期通信バス・システム用の自動遅延検出および受信者調整方法は、検出段階の間に当該システムのレシーバに対してあるテスト・パターン送信し、当該テスト・パターンを各バス・ラインにおける最も長い遅延時間を確定するのに用い、そして、到来する信号を当該確定された最も長い遅延時間に基づく時間にて受信できるよう各ビット・ライン用のレシーバを調整する。【選択図】図３
2004530203.tif 000002
【特許請求の範囲】
【請求項１】
複数サイクルの遅延を持った同期通信バス・システムのための自動的な遅延検出およびレシーバ調整の方法であって、
（ａ） 遅延検出および校正段階を規定するステップと、
（ｂ） 前記遅延検出および校正段階の間に、各バス・ラインについての予め規定されたバス信号テスト・パターンを送信するステップと、
（ｃ） 前記遅延検出および校正段階の間に、各バス・ラインについての最も長い遅延時間を確定するために、前記予め規定されたバス信号テスト・パターンを用いるステップと、
（ｄ） 到来する信号をステップ（ｃ）での確定に基づく時間にて受信するために、各ビット・ラインについてのレシーバを調整するステップと、
（ｅ） 前記バス・システムを標準の通信モードに置くステップと、
を有する方法。
【請求項２】
送信者サブシステムと受信者サブシステムとを持つ同期通信バス・システムにおいて、遅延を検出し、また、前記受信者サブシステムにおけるすべてのレシーバを調整するための装置であって、
前記バス・システムの各ビットについての最悪時遅延検出回路と、
各ビットの遅延検出回路の出力と各ビットのレシーバ・ラッチに関連したクロック信号との関数として、各ビットにおいて２つのレシーバ経路から１つを選択するように動作する、各ビット用の最悪時遅延検出回路につながる制御回路と、
を有する装置。
【請求項３】
少なくとも２つのビットが、前記同期バス・システムにおける異なったクロック位相を用いるように適合化された最悪時遅延検出回路持つ、請求項２に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にデジタル・システムにおける同期バス・トランザクションに関するものであり、また、より詳しくはインターフェースの遅延がシステムのサイクル・タイムより大きいようなシステムに関するものである。
【背景技術】
【０００２】
同期デジタル・システム、特にコンピュータ・システムにおいては、これらのシステムに必要とされる高いバンド幅を達成するために、同期バスが好まれ、また、サブシステム間でインターフェース・バスとして（普通はチップ−チップ間インターフェースとして）共通に用いられる。  同期バス・トランザクションが正しく機能するために、送信者側（２値線の複数ビット）および受信者側は両者とも、共通クロック発振器からの、また、ことによると、高周波数システム用に両方の側にて位相ロック・ループを介して与えられる、同期クロックのもとに動作しなければならない。  今一つの要件は、同期を維持するために、受信者側はバスのすべての信号ビットを同一クロック・サイクルで捉えなければならないということである。
【０００３】
送信者のフリップフロップまたはラッチから受信者のフリップフロップ（ＦＦ）に至る最悪時の遅延が、（ＦＦのセットアップ時間を考慮に入れないとして）１サイクル・タイム（クロック周期）より小さく、かつ、最善時の遅延がＦＦのホールド・タイムよりも大きい場合、インターフェースをまたがる同期バス・トランザクションは１サイクルの遅延を持つ。  これは最も単純な同期バス・インターフェースである。  しかしながら、最悪時の遅延が１サイクル以上であり、また、バスのビット／ライン間の遅延の差が当該サイクル・タイム以上であるような、高周波同期システムにおいては、同期バス・トランザクションはより一層困難となる。
【０００４】
この同期バス・トランザクション遅延問題は、主に２つのアプローチで対処されてきた。  第１のアプローチは、より小さい遅延を持ったビット・ラインに追加遅延（延長された配線長）を加えることによって同期バスの全ビットに微調整を施すものである。  このアプローチは、インターフェースの物理的な設計要件を厳しくし、システム設計を複雑にする。  即ち、高周波では、このアプローチをもってしても、どのサイクルにおいてデータを捉えるのかを判断するのが依然として困難である。
【０００５】
第２の既知のアプローチは、（「Dynamic Wave-pipelined Interface Apparatus and Methods Therefor」、１９９９年１０月、ＩＢＭ特許ドケットＡＴ９９８２１２ などの） 信号ビットとクロックとの位置揃えをするために各種のソース同期手法を用いるものや、また、（「An Elastic Interface Apparatus and Method Therefor」、１９９９年１０月、ＩＢＭ特許ドケットＡＴ９９８２０８ などの） 受信者側で信号をバッファリングしたり入れ替えたりするものである。
【特許文献１】
「Dynamic Wave-pipelined Interface Apparatus and Methods Therefor」、１９９９年１０月、ＩＢＭ特許ドケットＡＴ９９８２１２
【特許文献２】
「An Elastic Interface Apparatus and Method Therefor」、１９９９年１０月、ＩＢＭ特許ドケットＡＴ９９８２０８
【発明の開示】
【発明が解決しようとする課題】
【０００６】
これらのソース同期インターフェースおよびバッファリングの手法のいくつかは非常に洗練されたものであるが、これらの手法はまた複雑であり、その実現には、本発明の方法およびシステムによるものよりも大規模な回路を要する。
【課題を解決するための手段】
【０００７】
本発明は、複数サイクルの遅延を持つ同期バスのための自動的な遅延検出とレシーバ調整の方法についてのものである。  本発明の主要な応用例は、同期システムにおける集積回路チップ間の信号とデータの転送であるが、本発明の応用例はチップ・インターフェースだけに限定されるものではない。
【０００８】
本方法にて実現されるシステムは、各信号（またはデータ）ビットについての送信者から受信者への遅延が、予測される捕捉サイクル・タイム（必ずしも１サイクルとは限らない）より大きいかどうかを、検出および校正期間の間に判断し、この遅延情報をレシーバ回路に記憶させることができる。  その後、当該遅延情報に基づいた適切なサイクル・タイムで信号を受信するように、当該レシーバは個々に調整される。  故に、本発明において実現される同期インターフェースにより、その特定のバス・インターフェースの遅延限界に基づいて最適化された、当該インターフェースをまたがる最小のサイクル数にて、データを転送することができることになり、これにより可能な最良のバンド幅を達成する。
【０００９】
各レシーバの受信時間（各レシーバ・フリップフロップまたはラッチの捕捉時間）はその送信者から受信者への遅延に基づいて調整されるので、受信するチップの内部ロジックに対し信号の転送を行うレシーバ・フリップフロップの捕捉クロック・エッジの前１サイクル以内に、すべてのデータ・ビットがレシーバのところに到達していなければならないという必要は無い。
【００１０】
同期バス・トランザクション用の自動的遅延検出およびレシーバ調整という本方法は、より高周波での転送を可能とし、また、従来型の同期バス・トランザクションに比べて、バス・ビットの不揃いに対するより大きな許容度を実現している。
【発明を実施するための最良の形態】
【００１１】
図１に示すような、同期バス・インターフェースを持つデジタル・システム１００においては、送信者サブシステム１０２には、チップＡといった１つまたは複数の集積回路チップが含まれ、チップＢといった１つまたは複数のチップを含んだ受信者サブシステム１０４は、共通クロック基準１０６によってクロック同期を維持している。  この共通クロック・ソース１０６は、通常、クロック／水晶発振子の回路またはチップによって提供される。  サブシステム１０２と１０４の両者とも、いくつかのクロック分配手法を使って、また、高周波システムにおいてはほとんどの場合位相ロック・ループ（ＰＬＬ： Phase-Locked Loops）１０８Ａおよび１０８Ｂを用いて、クロック・スキュー（ゆがみ）を最小限に抑えている。  図１ではチップＡ １０２を送信者として、また、チップＢ １０４を受信者として表している。  しかしながら、双方向バス・インターフェースにおいては、図１のチップＡまたはチップＢといったサブシステムは送信者でもあり、受信者でもある。  図１は、チップＡ １０２内の送信者フリップフロップ（ＦＦ）１０４−１から１０４−Ｎ、または、レベル・センシティブ・スキャン・デザイン（ＬＳＳＤ）におけるマスタースレーブ・ラッチ対が、チップＢ １０４内の受信者フリップフロップ（ＦＦ）１０６−１から１０６−Ｎまたはラッチに対して信号を転送する、単方向Ｎビットのバス・インターフェースを表したものである。
【００１２】
送信者から受信者への遅延を確定するには、本発明の原理に従って準備されたシステムは、最初に遅延検出および校正段階を通過する。  この段階において、図２に示すように送信者２０２は一連のテスト・パターンを２〜３千サイクルの間送出する。  最も単純なテスト・パターンは「１０１０１．．．」、即ち図２の校正パターン発生器ロジック２０４にて生成されるトグル（切り替わり）・パターンである。  「１１０１１０．．．」パターンといった他の種々のテスト・パターンは、当該システム用の遅延検出と校正との精度と信頼性とを改善するために用いることができる。  校正パターン生成器２０４のＦＦ ２０８に対するSET（SYNCH）信号２０６は、当該テスト・パターンを図３内の最悪遅延検出ロジック３０６のSELECT信号３５０に同期させる必要があることを表すためのものである。   ２〜３千テスト・サイクル内で最悪時（最長）遅延を決定するために、当該テスト・パターンが受信者側３０４（図３）によって使用される。
【００１３】
図３は、最悪遅延検出ロジック３０６を備えた本発明のレシーバ回路を表したものである。  遅延検出および校正段階の間、バスの各ビット用の最悪遅延検出ロジックからの出力信号WC_OK ３０８が確定される。  もし仮に、遅延検出段階の間に、あるレシーバ・ビットで受信されたテスト・パターンの遅延が目標の捕捉クロック・エッジを越えていた場合は、そのビット用の信号WC_OK ３０８は論理値０にクリアされる。  そうでない場合は、論理値１に留まる。  すべての最悪遅延検出ロジック回路３０５からの出力信号（各WC_OK）は、図３に示すようにクロックおよび信号選択制御ロジック３１０にて用いられ、マルチプレクサ（ＭＵＸ）３１２−１から３１２−Ｎと、レシーバＦＦ２ ３１４−１から３１４−Ｎ用のクロックとの選択を行う。
【００１４】
すべてのWC_OKが論理値１である場合には、図３のクロックおよび信号選択制御ロジック３１０のＮＡＮＤゲート３１６の出力３１８は論理値０となる。  ＦＦ１ ３２０−１から３２０−Ｎの出力の代りに、到来してくるバス信号 BIT[0:N] がＦＦ２ ３１４−１から３１４−Ｎの入力として選択される。  最悪遅延検出ロジック３０６−１から３０６−Ｎ用に使われたのと同一のクロックが、ＦＦ２がバス信号 NIT[0:N] を捉えるためのクロックとして選択される。
【００１５】
もしも最悪遅延検出ロジック３０６の１つまたは複数の出力信号が論理値０であるならば、図３のＮＡＮＤゲート３１６の出力は論理値１にセットされる。  最悪遅延検出ロジックの出力 WC_OK ３０８が論理値１であるバス・ビットは、先行のビットを早く捉えるためにＦＦ１の出力をＦＦ２の入力として選択することになる。  最悪遅延検出ロジックの出力 WC_OK ３０８が論理値０であるバス・ビットは、後のビットを後で捉えるために当該バス・ビットを直接ＦＦ２の入力として選択することになる。  位相反転クロック３４１は、チップ３０４の内部ロジック３６０用だけでなくＦＦ２用のクロックとしても選択される。  これでシステムは通常動作の準備ができる。
【００１６】
システムの遅延検出および校正段階は、当該システムのバス転送のための準備ができる前に一番最初に行われなければならない。  通常、この段階はシステムが最初に電源投入された時に２〜３千サイクル内で遂行される。  システムの通常の動作中はこの遅延検出および校正の処理過程を実行させる必要は無い。
【００１７】
チップ２０２の送信者およびチップ３０４の受信者の両サブシステムを、１８０°位相がずれたクロック（最悪遅延検出ロジック３０６の１つまたは複数の出力信号が論理値０である時の、図３のチップＢ ３６０のＦＦ２および内部ロジックのための位相反転クロック）で動作させることは１つの典型的な実施であるということをここで強調する必要がある。   送信者および受信者の中のチップ内部ロジック・ブロック用に位相のずれたクロックを持つのが不都合かまたは困難であるような複数のサブシステムをもったシステムでは、本発明を実現するのに、図２にある送信者のＦＦ ２１０−１から２１０−Ｎと図３にある受信者のＦＦ ３２０−１から３２０−Ｎとに、最悪遅延検出ロジックの１つまたは複数の出力信号が論理値０である時の図３のＦＦ２ ３１４−１から３１４−Ｎと送信者および受信者の内部ロジック２１２および３６０とを参照して、１８０°位相のずれたクロックに切り替えさせることを必要とする。  このような代替の実施例においては、送信者に非反転クロック３４０または反転クロック３４１をそのドライバＦＦ ３１４−１から３１４−Ｎ用に選択させるために、受信者から送信者への１ビットの指示信号またはそれらの間の他の通信方法が必要である。  送信者のＦＦが１８０°位相のずれたクロックで動作している場合には、送信者の内部ロジック２１２からドライバＦＦへの組合わせロジックの経路がドライバＦＦのセットアップ時間に違反していないことを確認することもまた必要である。  このようなタイミングの問題に対処するための多くの既知の方法が存在する。
【００１８】
本システムの最も一般的な応用は、１．５クロック周期より小さい最悪時遅延のためのものである。  すべてのバス・ビット間のスキューは、従来の同期バス・インターフェースで必要とされる１クロック周期未満ではなく、ほとんど１．５クロック周期であることがあり得る。  必要条件は、最善時遅延が最悪遅延検出ロジックのクロック捕捉エッジ前の１サイクル以内でなければならないこと、および、最悪時遅延が同じクロック・エッジ後０．５サイクルを越えてはならないことである。  本発明のシステム用の今１つの必要条件は、特定の環境（温度、電圧、その他）下におけるあらゆるビット・パターンに対するバス・ビットの最善および最悪時遅延（ある環境条件は最善時の下で、別の環境条件は最悪時の下での遅延）が０．５クロック周期未満でなければならないということである。
【００１９】
最善および最悪時遅延が１／２クロック周期と２クロック周期の間であるようなバス・インターフェースについては、最悪遅延検出ロジックのクロックは、送信者チップのクロックに関して位相が異なっている必要がある。  本発明はまた、バスが前段落に記述されたようなタイミング要件を満足する限り、最悪時遅延が２クロック周期／サイクルであるような場合にも用いることができる。  送信者または受信者サブシステムのクロック周波数はまた、バス・トランザクションの周波数の整数倍または半分とすることもでき、その場合システムは実現に際して若干の修正を必要とする。
【００２０】
本発明およびシステムの１つの変形は、図３における受信者の最悪遅延検出ロジックとＦＦ１ ３２０−１から３２０−Ｎとのためのクロックとして、ドライバ・クロックをバス・ビットと供に送信するというものである。  これを行う利点は、ＦＦ１ ３２０−１から３２０−Ｎがソース同期であり、高周波におけるＰＬＬのジッター（位相のゆらぎ）の問題が少ないということである。  受信されたドライバ・クロックはレシーバ・クロックと既知の位相関係を持っている必要がある。
【００２１】
レシーバＦＦ捕捉時の、より正確な遅延検出とより細かいステップのために、各ビット毎に複数の最悪遅延検出ロジック回路を異なったクロック位相で動作させることもまた可能である。
【００２２】
図４は、図３の最悪遅延検出ロジック３０６の典型的な実施例を表したものである。  「１０１０１．．．」テスト・パターンとテスト・パターンよりは普通は劣悪な実際の信号との間の最悪時遅延の差異を補償するために、クロック周期の何分の１かの単位でバス・ビットを遅延させるための任意選択の遅延素子４０２が付加されている。  図４でＦＦ４ ４０８（スキャン初期化が代替となる）に入るSET信号４０６は、遅延検出および校正段階に先立って出力WC_OK ３０８を論理値１にセットするのに用いられる。  図５が示すように、図４のSELECT信号４１０は、遅延検出のためのＦＦ３ ４１２が交互のサイクルでテスト・パターンをサンプリングできるように「１０１０１．．．」に同期したトグル・パターンである。  図４のCALIBRATE信号４１４は、レシーバ入力が「１０１０１．．．」テスト・パターンである場合にのみ（論理値１に）有効化することができる。  図５が示すように、図４のCALIBRATE信号４１４が論理値１である遅延検出段階の間は、最悪遅延検出ロジックの出力 WC_OK[0]は、最悪時の到来時間がクロックの立ち上がりエッジよりも早いBIT[0]に対して論理値１に留まり、最悪遅延検出ロジックの出力 WC_OK[N]は、最悪時の到来時間がクロックの立ち上がりエッジよりも遅いBIT[N]に対して論理値０に切り替えられる。
【００２３】
図５に示したように、遅延検出段階の間、送信者チップＡ ２０２は「１０１０１．．．」テスト・パターンをすべてのバス・ビットにおいて送信する。  受信者チップＢ ３０４における、BIT[0]用の破線５０１とBIT[N]用の破線５０２の両波形は、可能な最も早いビット到来時間を指し示しており、実線５０１Ａ、５０２Ａは可能な最も遅いビット到来時間を指し示している。  図５は、すべてのバス・ビットの間での最悪時遅延が１．５クロック周期よりも小さい場合を示している。
【００２４】
遅延検出段階における校正の後、早く到来したBIT[0]が（ＦＦ１の出力であるBIT[0].FF1.Qとして示すように）図３のＦＦ１ ３２０−１によって捉えられ、その後、遅く到来したバスのBIT[N]と同期をとるためにＦＦ２ ３１４−１に転送される。  バス・ビットは、図５に示したトグル・パターンに代ってどんなパターンであることも可能である。
【００２５】
当該発明の実施の形態が記述されてきたが、当業者であれば、現在および将来のいずれにおいても、記載された請求項の範囲内に入る各種改良や拡張を行うかもしれないということは理解されることであろう。
【図面の簡単な説明】
【００２６】
【図１】図１は、典型的な同期バス・インターフェースのブロック図を示したものである。
【図２】図２は、本発明の原理に従って配置されたバス・インターフェースの送信者側における遅延検出のための回路を表したものである。
【図３】図３は、当該バス・インターフェースの受信者側における、遅延検出、校正、および通常の動作のための回路を表したものである。
【図４】図４は、本発明に従った、１つのレシーバ・バス・ビット用の、システムの最悪遅延検出ロジックの実施を表したものである。
【図５】図５は、最悪時の遅延が１．５クロック周期より小さい場合の、図２および３のシステムのロジック・タイミングを表したものである。
【符号の説明】
【００２７】
１００ ・・・ デジタル・システム
１０２ ・・・ 送信者サブシステム
１０４ ・・・ 受信者サブシステム
１０４−１ ・・・ 送信者フリップフロップ（ＦＦ）
１０４−２ ・・・ 送信者フリップフロップ（ＦＦ）
１０４−Ｎ ・・・ 送信者フリップフロップ（ＦＦ）
１０６ ・・・ 共通クロック・ソース
１０６−１ ・・・ 受信者フリップフロップ（ＦＦ）
１０６−２ ・・・ 受信者フリップフロップ（ＦＦ）
１０６−Ｎ ・・・ 受信者フリップフロップ（ＦＦ）
１０８Ａ ・・・ 位相ロック・ループ（ＰＬＬ： Phase-Locked Loops）
１０８Ｂ ・・・ 位相ロック・ループ（ＰＬＬ： Phase-Locked Loops）
２０２ ・・・ 送信者チップＡ
２０４ ・・・ 校正パターン発生器ロジック
２０６ ・・・ SET（SYNCH）信号
２０８ ・・・ フリップフロップ（ＦＦ）
２１０−１ ・・・ 送信者フリップフロップ（ＦＦ）
２１０−２ ・・・ 送信者フリップフロップ（ＦＦ）
２１０−Ｎ ・・・ 送信者フリップフロップ（ＦＦ）
２１２ ・・・ 送信者内部ロジック
３０４ ・・・ 受信者チップＢ
３０６ ・・・ 最悪遅延検出ロジック
３０６−１ ・・・ 最悪遅延検出ロジック
３０６−Ｎ ・・・ 最悪遅延検出ロジック
３０８ ・・・ WC_OK信号
３０８−１ ・・・ WC_OK信号
３０８−Ｎ ・・・ WC_OK信号
３１０ ・・・ クロックおよび信号選択制御ロジック
３１２−１ ・・・ マルチプレクサ（ＭＵＸ）
３１２−Ｎ ・・・ マルチプレクサ（ＭＵＸ）
３１４−１ ・・・ レシーバＦＦ２
３１４−Ｎ ・・・ レシーバＦＦ２
３１６ ・・・ ＮＡＮＤゲート
３１８ ・・・ ＮＡＮＤゲート出力
３２０−１ ・・・ ＦＦ１
３２０−Ｎ ・・・ ＦＦ１
３４０ ・・・ 非反転クロック
３４１ ・・・ 反転クロック
３５０−１ ・・・ SELECT信号
３５０−Ｎ ・・・ SELECT信号
３６０ ・・・ 受信者内部ロジック
４０２ ・・・ 遅延素子
４０６ ・・・ SET信号
４０８ ・・・ ＦＦ４
４１０ ・・・ SELECT信号
４１２ ・・・ ＦＦ３
４１４ ・・・ CALIBRATE信号
５０１ ・・・ BIT[0]用の破線
５０１Ａ ・・・ BIT[0]用の実線
５０２ ・・・ BIT[N]用の破線
５０２Ａ ・・・ BIT[0]用の実線
【図１】
2004530203.tif 000003
【図２】
2004530203.tif 000004
【図３】
2004530203.tif 000005
【図４】
2004530203.tif 000006
【図５】
2004530203.tif 000007
【国際公開パンフレット】
2004530203.tif 000008
2004530203.tif 000009
2004530203.tif 000010
2004530203.tif 000011
2004530203.tif 000012
2004530203.tif 000013
2004530203.tif 000014
2004530203.tif 000015
2004530203.tif 000016
2004530203.tif 000017
2004530203.tif 000018
2004530203.tif 000019
2004530203.tif 000020
2004530203.tif 000021
2004530203.tif 000022
【国際公開パンフレット（コレクトバージョン）】
2004530203.tif 000023
2004530203.tif 000024
【国際調査報告】
2004530203.tif 000025
2004530203.tif 000026