(57)【要約】異なるクロック周波数を有するクロック動作デバイスの間でデータを転送するパイプライン同期デバイスである。このパイプライン同期デバイスは、前記外部デバイスの１つとデータを交換するためのマウストラップ・バッファを備え、このマウストラップ・バッファは外部デバイスとのデータ交換を調整する信号出力を有する。パイプライン同期デバイスは、信号出力の変化を外部デバイスのクロックと同期させるように構成された同期装置をさらに備える。
2006522378.tif 000002
【特許請求の範囲】
【請求項１】
異なるクロック周波数を有するクロック動作外部デバイス間でデータを転送するパイプライン同期デバイスであって、
前記外部デバイスの１つとデータを交換するマウストラップ・バッファであって、前記外部デバイスとの前記データ交換を調整する信号出力を有するマウストラップ・バッファを備え、
同期装置（Ｓ１、Ｓ２）が、信号出力の変化を前記外部デバイスのクロックと同期させるように構成されていることを特徴とするパイプライン同期デバイス。
【請求項２】
前記同期装置（Ｓ１）が、前記信号出力の変化を前記外部デバイスのクロックのハイ位相またはロー位相と同期させるように構成されている、請求項１に記載のパイプライン同期デバイス。
【請求項３】
前記同期装置（Ｓ１）が、前記外部デバイスのクロックがハイかローかのどちらかになるまで、前記信号出力の変化の転送を遅延させるように構成されている、請求項２に記載のパイプライン同期デバイス。
【請求項４】
前記同期装置（Ｓ１）が、前記信号出力を受け取るための同期入力と、前記受け取られた信号出力を前記外部デバイスに出力するための同期出力と、前記受け取られた信号出力を前記外部デバイスに出力することを可能にするための制御入力（ｅ）とを有する同期ラッチを備える、請求項３に記載のパイプライン同期デバイス。
【請求項５】
前記同期装置（Ｓ１）が、２つの入力および１つの出力を有するＥＸＮＯＲゲートを備えており、前記ＥＸＮＯＲゲートの入力が、前記同期ラッチの同期入力および出力に接続されており、さらに前記同期装置（Ｓ１）が、前記ＥＸＮＯＲゲートの出力に接続された入力（ｄ）と、前記外部デバイスのクロックに接続された入力と、前記同期ラッチの前記制御入力（ｅ）に接続された出力とを有する待ち素子を備える、請求項４に記載のパイプライン同期デバイス。
【請求項６】
前記待ち素子は、前記外部デバイスのクロックがハイである場合に前記入力（ｄ）のローからハイへの変化だけを出力し、かつ前記外部デバイスのクロックの状態に無関係に前記入力（ｄ）のハイからローへの変化を出力するように構成されている、請求項５に記載のパイプライン同期デバイス。
【請求項７】
前記待ち素子が、インバータと、前記インバータで反転された反転クロック信号を受け取るための入力、前記ＥＸＮＯＲゲートの出力を受け取るための入力（ｄ）、および前記入力（ｄ）を伝える出力を有するアービタとを備える、請求項６に記載のパイプライン同期デバイス。
【請求項８】
前記同期装置（Ｓ２）が、前記信号出力の変化を前記外部デバイスのクロックの立ち上がりエッジおよび／または立ち下がりエッジと同期させるように構成されている、請求項１に記載のパイプライン同期デバイス。
【請求項９】
前記同期装置（Ｓ２）が請求項３に記載の２つの同期装置（Ｓ１）を備え、この２つの同期装置は、前記外部デバイスのクロックがハイかローかのどちらかになるまで前記信号出力の変化の転送を遅延させるように構成され、前記２つの同期装置（Ｓ１）のうちの第１のものが第１のマウストラップ・バッファの信号出力の変化を前記外部デバイスに転送するように構成され、さらに、前記２つの同期装置（Ｓ１）のうちの第２のものが前記外部デバイスの反転されたクロックを受け取りかつ第２のマウストラップの信号出力を前記第１のマウストラップ・バッファに転送するように構成されている、請求項８に記載のパイプライン同期デバイス。
【請求項１０】
前記同期装置（Ｓ２）が、請求項６に記載の２つの待ち素子を有するエッジ同期装置を備え、この各々の待ち素子は、受け取られたクロックがハイである場合は前記入力（ｄ）のローからハイへの変化だけを出力し、かつ受け取られたクロックの状態に無関係に前記入力（ｄ）のハイからローへの変化を出力するように構成されており、前記２つの待ち素子の第１のものは前記外部デバイスのクロックを受け取りかつそれの入力（ａｒ）の変化を前記外部デバイスに出力するように構成され、そして前記２つの待ち素子の第２のものは前記外部デバイスから反転されたクロックを受け取りかつそれの入力（ｄ）の変化を前記第１の待ち素子の前記入力（ａｒ）に出力するように構成されている、請求項８に記載のパイプライン同期デバイス。
【請求項１１】
前記同期装置（Ｓ２）が、前記信号出力を受け取るための同期入力と、前記受け取られた信号出力を前記外部デバイスに出力するための同期出力と、前記受け取られた信号出力を前記外部デバイスに出力することを可能にする制御入力（ｅ）とを有する同期ラッチを備える、請求項１０に記載のパイプライン同期デバイス。
【請求項１２】
前記同期装置（Ｓ２）が、２つの入力および１つの出力を有するＥＸＮＯＲゲートを備え、前記ＥＸＮＯＲゲートの入力が前記同期ラッチの同期入力および出力に接続されており、さらに前記同期装置が、前記ＥＸＮＯＲゲートの出力に接続された入力（ｄ）と、前記外部デバイスのクロックに接続された入力と、前記同期ラッチの前記制御入力（ｅ）に接続された出力とを有するエッジ同期装置を備える、請求項１１に記載のパイプライン同期デバイス。
【請求項１３】
前記マウストラップ・バッファが、前記外部デバイスからデータを受け取るように構成され、さらに前記マウストラップ・バッファが、データの受領を前記外部デバイスに通知するための信号出力を有する、請求項１に記載のパイプライン同期デバイス。
【請求項１４】
前記マウストラップ・バッファが、前記外部デバイスにデータを転送するように構成され、さらに前記マウストラップ・バッファが、データの転送を前記外部デバイスに要求するための信号出力を有する、請求項１に記載のパイプライン同期デバイス。
【請求項１５】
前記マウストラップ・バッファが、前記マウストラップ・バッファからの読出し要求信号および読出しアクノリッジ信号を受け取るＥＸＯＲゲートを備え、ラッチがデータの受領および転送を可能にしかつ不能にするための制御入力（ｅ）を有し、前記同期装置は、前記ＥＸＯＲゲートの出力を前記外部デバイスのクロックと同期させ、かつ前記同期された出力を前記ラッチの前記制御入力（ｅ）に供給するように構成されている、請求項１３に記載のパイプライン同期デバイス。
【請求項１６】
前記同期装置が、前記ＥＸＯＲゲートの出力の変化を前記外部デバイスのクロックの立ち上がりエッジおよび／または立ち下がりエッジと同期させるように構成されている、請求項１５に記載のパイプライン同期デバイス。
【請求項１７】
異なるクロック周波数を有するクロック動作デバイスの間でデータを転送する方法であって、
前記外部デバイスの１つとデータを交換するためにマウストラップ・バッファを使用するステップを備え、前記マウストラップ・バッファが前記外部デバイスとの前記データ交換を調整する出力信号を有し、
前記出力信号の変化を前記外部デバイスのクロックと同期させるステップを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なるクロック周波数を有するクロック動作デバイス間でデータを転送するためのパイプライン同期デバイスに関する。
【背景技術】
【０００２】
将来の発展は広域クロック動作ＶＬＳＩ回路の役割を根底から揺るがしている。ＶＬＳＩは、非常に大規模な集積化［Very Large Scale Integration］を意味する。ＶＬＳＩ回路は、１０万個から１００万個のトランジスタをチップ上に有している。広域クロッキングは、回路のすべての素子が同じクロック周波数で駆動されることを意味する。システム・オン・チップ設計の傾向は、結局、異なるクロック周波数で駆動される数個のモジュールを含んだチップにつながる。将来の技術では、高速で低スキューのクロック信号を分配することはますます困難になる。スキューは、クロック信号のタイミングまたは位相の変化を意味し、これは、信号がモジュールまで伝わるのにかかる時間の結果である。したがって、将来のチップは、幾つかの局所クロック動作サブモジュールを含むようになり、このサブモジュールが互いに通信する。このシステムは、ＧＡＬＳ（広域非同期、局所同期―Globally Asynchronous, Locally Synchronous―）システムと呼ばれる。２種類のシステムは、同期サブモジュールが通信する方法に依存して区別することができる。
【０００３】
クロック同期システムでは、サブモジュールはいわゆる曖昧［plausible―もっともらしい／信頼できそうな―］クロックを有し、この曖昧クロックは、止めることができるリング発振器である。安全な通信は、クロックを同期させることで得られる。
【０００４】
データ同期システムでは、サブモジュールは自走［free running―自由継続の―］クロックを有し、一方のクロックから他方のクロックに通信されるデータは、同期をとられる。そのようなデータ同期システムは、非同期回路およびシステムにおける先進研究に関する国際シンポジウム会議録、１９９４年１１月、８７〜９６ページに記載のＪ・Ｎ・シーゾビック（J. N. Seizovic）のパイプライン同期から知られている。パイプライン同期バッファは、３つの部分からなる。すなわち、書込み部分、中間部分および読出し部分である。書込み部分は、入力動作を書込みクロックと同期させ、一方で、読出し部分は出力動作を読出しクロックと同期させる。中間部分は非同期バッファであり、この非同期バッファは２つの同期部分を減結合する役をしている。３つの部分すべての設計は、リプル・バッファ（非同期バッファ）に基づいている。リプル・バッファから同期バッファへの変換は、Ｊ・Ｎ・シーゾビックによる「パイプライン同期」に示されている。この変換は２つの隣り合うセルの間に、ハンドシェイクをクロック位相と同期させる素子を挿入することに基づいている。基本的な待ち素子（ｗａｉｔ４と呼ばれる）は、追加の信号クロックがハイになるまで４位相ハンドシェイクの完成を遅延させる。ハンドシェイクが始まったとき信号クロックはローになることができるので、矛盾が生じることがあり、この素子の設計においていわゆるアービタが必要であることを暗示している。基本アービタ（相互排除要素とも呼ばれる）は２つの入力要求信号および２つの出力アクノリッジ［acknowledge―承認・肯定応答・答礼―］信号を有する。アクノリッジ信号は、対応する要求信号がハイになるとき、ハイになり、そして、対応する要求信号がローになるとき、ローになる。しかし、１つの制限がある。すなわち、アクノリッジ信号のうちのせいぜい１つがハイになることができる。アクノリッジの一方がハイであり、かつ他方の要求信号がハイになる場合に、アービタは、アクノリッジ信号がローになるまで、他方の要求信号を無視する。両方の要求信号が同時にハイになるとき、アービタはどのアクノリッジ信号が最初にハイになるべきであるかを決定しなければならない。この決定をするとき、アービタは限られていない時間の間ずっと準安定状態のままであることができる。
【０００５】
図６は、基本アービタに基づいたｗａｉｔ４素子の設計を示す。ｗａｉｔ４素子は、基本アービタ６０およびインバータ６５からなる。反転クロック信号が基本アービタ６０に入力される。反転クロック信号に対応する基本アービタのアクノリッジ信号は、ｗａｉｔ４素子で使用されない。反転クロック信号がハイであり、かつ、対応する出力信号がハイであるときはいつでも、図６の要求信号ｄに対応するアクノリッジ信号ｅは、要求信号ｄに関係なく、ローである。反転クロック信号がローである場合、すなわち、クロック信号がハイである場合に、アクノリッジ信号ｅは、ローからハイになることができるだけである。クロックがハイ位相中に、信号ｄの立ち上がりエッジが転送されるだけである。信号ｄの立ち下がりエッジは、直ちに信号ｅに変えられる。
【０００６】
図１は従来のマウストラップ・バッファの設計を示し、このマウストラップ・バッファは、隣り合うセル間の通信のために２位相単一線路ハンドシェイク信号方式を使用するリプル・バッファである。各セルは、２つの信号出力すなわち読出し要求信号（Ｒｒｅｑ）および書込みアクノリッジ信号（Ｗａｃｋ）を有する。マウストラップ・バッファは、２つの信号入力すなわち書込み要求入力（Ｗｒｅｑ）および読出しアクノリッジ入力（Ｒａｃｋ）を有する。読出し要求出力および読出しアクノリッジ入力は、ＥＸＮＯＲゲートに接続される。ＥＸＮＯＲゲートの出力は、マウストラップ・バッファのレジスタを制御する。信号ｅｎがハイの場合、バッファ中のすべてのラッチは透過的である。このことは、ラッチの出力が入力に等しいことを意味する。この状態で、データは、マウストラップ・バッファに書き込むことができる。信号ｅｎがローになると、マウストラップ・バッファのラッチは不透明になっている。バッファが不透明である限り、データをバッファに転送することができない。２位相の位相ハンドシェイク・プロトコルでの通信は、ただ２つのハンドシェイク事象［events］からなっている。すなわち、最初に、送信側が、いわゆる要求信号の遷移によって、新しいデータを出すことを示す。それから、受信側が、アクノリッジ信号の遷移によって、データを受け取ったことを示す。要求信号の変化およびアクノリッジ信号の変化がそれぞれの事象を示すことを確認することが重要である。要求信号およびアクノリッジ信号の遷移は、信号の立ち上がりエッジ遷移か立ち下がりエッジ遷移かのどちらかである可能性がある。各２位相通信は、したがって、ハンドシェイク信号を反転する。これは、信号が変化しないままになっている４位相ハンドシェイク通信と異なっている。４位相ハンドシェイクは、常に、両方の信号がローの状態で始まる。２位相ハンドシェイクは、両方の信号が等しい状態（ハイかローかのどちらか）で始まる。マウストラップ・バッファでは、要求信号はデータ項目（満杯バケット―full bucket―）を伝えるために使用され、アクノリッジ信号は満杯バッファを空にするために使用される（空バケット―empty buckets―を返す）。データ項目（満杯バケット）の引渡しは、要求信号を介して行なわれるが、一方で、アクノリッジ信号は空バケットを戻すために使用される。データがマウストラップ・バッファに書き込まれたとき、書込みアクノリッジ信号は書込み要求信号に等しくされる。それによって、空バケットは前のマウストラップ・バッファに戻され、満杯バケットは後のマウストラップ・バッファに転送される。
【０００７】
マウストラップ・バッファは、ＧＡＬＳシステムのパイプライン同期にとって非常に魅力あるものとなるいくつかの特性を有する。
【０００８】
多くのＧＡＬＳ（広域非同期、局所同期）システムにおいては、クロックはまた距離を意味し、この場合、伝送遅延が重要である。この理由のために、２位相プロトコルは４位相プロトコルよりも魅力がある。マウストラップ・バッファは高速であり、このことは、マウストラップ・バッファによって同期バッファの高いクロック速度が可能になることを意味する。さらに、特定のクロック周波数に関して、より高速なバッファは、準安定状態に対処するのにより多くの時間を有し、結果として同期不良の可能性がより小さくなる。空マウストラップ・バッファは、１セル当たりわずか１ラッチ遅延の待ち時間を有する。
【０００９】
図２は、非同期（自動タイミング）パイプラインを形成するために、２個のマウストラップ・セルＭＳ１およびＭＳ２が互いにどのように接続されるかを示す。マウストラップ１の読出しアクノリッジ入力は、マウストラップ２の書込みアクノリッジ出力に接続される。マウストラップ１の読出し要求出力はマウストラップ２の書込み要求入力に等しい。マウストラップ１の読出しデータ出力はマウストラップ２の書込みデータ入力に等しい。ハンドシェイク信号は非同期に変化する（設定および保持要求を満たすことができない）可能性があるので、そのようなバッファは、クロック領域の橋渡しをするために使用することはできない。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
したがって、本発明の目的は、高速かつ確実に動作するパイプライン同期デバイスを提供することである。
【課題を解決するための手段】
【００１１】
この目的は、異なるクロック周波数を有するクロック動作外部デバイス間でデータを転送するパイプライン同期デバイスによって達成される。このパイプライン同期デバイスは外部クロック・デバイスの１つとデータを交換するためのマウストラップ・バッファを備える。マウストラップ・デバイスは、外部デバイスからのデータを読出すか、または混合するか、または外部デバイスにデータを書き込むかをすることができる。マウストラップ・バッファは、外部デバイスとのデータ交換を調停するための信号出力を有する。信号出力は、データをマウストラップ・バッファに書き込む外部デバイスへの書込みアクノリッジ信号か、または外部デバイスにデータを転送するための読出し要求信号かのどちらかである可能性がある。同期装置は、信号出力の変化を外部デバイスのクロックと同期させるように構成される。信号出力の変化は、立ち上がりエッジ信号か立ち下がりエッジ信号かのどちらかである。マウストラップ・バッファはリプル・バッファである。信号出力は非同期で変化することができる。したがって、マウストラップ・バッファは、内部クロック動作デバイスと通信することができない。同期装置によって、マウストラップ・バッファの信号出力は、生じる外部デバイスの設定および保持要求に対処することができる。このようにして、マウストラップ・バッファは、パイプライン同期で使用することができる。
【００１２】
同期装置は、変化する信号出力を外部デバイスのクロックのハイ位相またはロー位相と同期させるように構成することができる。言い換えれば、外部デバイスのクロックがハイかローかのどちらかである場合に、信号出力の立ち上がりエッジまたは立ち下がりエッジが転送されるだけである。このために、同期装置は、外部デバイスのクロックがハイかローかのどちらかになるまで信号出力の変化の転送を遅延させる。クロックがハイかローかのどちらかで始まる場合、すなわち信号出力の変化が生じるとき、同期装置は転送を遅延させない。このようにして、外部デバイスの設定および保持要求を満たすことができる。
【００１３】
好ましくは、同期装置は、同期ラッチを備える。同期ラッチは、信号出力を受け取るための同期入力を有する。さらに、ラッチは、受け取られた信号出力を外部デバイスに出力するための同期出力、およびこの受け取られた信号出力を外部デバイスに出力することを可能にする制御入力を備える。制御入力がハイであるとき、ラッチは透過的になり、ラッチへの信号入力はラッチからの信号出力に等しくなる。同期ラッチは、制御入力がラッチを可能にするまで、信号出力の変化の転送を遅延させるために使用される。
【００１４】
制御入力を外部デバイスのクロック位相と同期させることは、次のやり方で達成することができる。すなわち、同期装置は、さらに、ＥＸＮＯＲゲートを備える。ＥＸＮＯＲゲートは２つの入力および１つの出力を有する。ＥＸＮＯＲゲートの入力は、同期ラッチの同期入力および出力に接続される。マウストラップ・バッファの信号出力に変化が起きない場合、ＥＸＮＯＲゲートの入力と出力とは等しい。その結果、ＥＸＮＯＲゲートは閉じられる。すなわち、ＥＸＮＯＲゲートの出力はローである。マウストラップ・バッファの信号出力が変化すると、同期ラッチの入力と出力とは異なる。その結果、ＥＸＮＯＲゲートは開く。すなわち、ＥＸＮＯＲゲートの出力はハイである。さらに、同期装置は待ち素子を備え、この待ち素子はＥＸＮＯＲゲートの出力および外部デバイスのクロックに接続されている。待ち素子の出力は、同期ラッチの制御入力に接続されている。待ち素子は、同期ラッチの制御入力を外部デバイスのクロックの位相と同期させる。好ましくは、待ち素子は、外部デバイスのクロックがハイである場合、入力のローからハイへの変化だけを出力するように構成される。外部デバイスのクロックがローである場合、たとえ待ち素子の入力がハイでも待ち素子の出力はローの状態のままである。入力がハイである場合は、クロックの状態に無関係に、待ち素子の出力はハイの状態のままである。入力のハイからローへの変化は、外部デバイスのクロックの状態に無関係に、直ちに出力される。したがって、クロックがハイである場合、ＥＸＮＯＲゲートのハイ出力は制御入力に転送されるだけである。その後、ＥＸＮＯＲゲートがハイである限り、制御入力はハイの状態のままである。同期ラッチの同期入力と同期出力とが等しい場合、ＥＸＮＯＲゲートは、ローである。ハイ制御入力は、同期入力と同期出力とを等しくする。
【００１５】
好ましくは、待ち素子はインバータおよびアービタを備える。アービタは２つの入力および２つの出力を有する。一般に、アービタの出力信号は、対応する入力信号がハイになる場合、ハイになり、また対応する入力信号がローになる場合、出力信号はローになる。しかし、出力信号のせいぜい１つがハイであることができるという制限のために、この規則に例外がある。入力信号の一方がハイであり、他方の入力信号がハイになる場合、アービタは他方の入力信号を無視する。このことは、出力信号が変化していないことを意味する。他方の入力信号に対応する出力信号は、ローの状態のままである。アービタの入力の１つは、外部デバイスの反転されたクロック信号を受け取る。インバータは、クロック信号を反転する。アービタの他方の入力は、ＥＸＮＯＲゲートの出力を受け取るように構成される。ＥＸＮＯＲゲート入力に対応するアービタの出力は、入力を伝えるために使用される。アービタの他方の出力は、待ち素子に関した機能を有しない。外部デバイスのクロック信号がローである場合、アービタの対応する入力はハイである。
【００１６】
前に述べた本発明の実施は、位相同期に関連している。このことは、信号出力の変化は外部デバイスのクロックのハイ位相またはロー位相と同期をとられることを意味する。好ましくは、同期装置は、外部デバイスのクロックの立ち上がりエッジおよび／または立ち下がりエッジと信号出力の変化を同期させるように構成することができる。エッジ同期装置は、２位相同期装置を使用することで実施することができ、この２位相同期装置は、各々、外部デバイスのクロックがハイかローかのどちらかになるまで信号出力の変化の転送を遅延させるように構成される。２つのマウストラップ・バッファが備えられる。第１のマウストラップ・バッファは外部デバイスに接続され、第２のマウストラップ・バッファは第１のマウストラップ・バッファに接続される。２つの同期装置のうちの第１の同期装置は、外部デバイスへの第１のマウストラップ・バッファの信号出力を、外部クロックの立ち上がり位相［up phase］またはロー位相と同期させる。第２の同期装置は、第１のマウストラップ・バッファへの第２のマウストラップの信号出力を外部クロックの他方の位相と同期させる。第１のマウストラップ・バッファへの信号入力は、例えば、外部クロックのロー位相と同期をとられる。第１のマウストラップ・バッファの信号出力は応答して生成される。一般に信号出力は、外部クロックのロー位相中に第１の同期装置に伝えられる。第１の同期装置は、第１のマウストラップ・バッファへの信号出力の転送を外部クロックがハイになるまで遅延させる。この例では、第１のマウストラップ・バッファの信号出力は、外部クロックの立ち上がりエッジと同期をとられる。
【００１７】
ラッチ同期装置は、また、２つの待ち素子を使用して実現することができる。２つの待ち素子の各々は、入力の変化を外部クロックの位相と同期させる。両方の待ち素子は、２つの入力を有する。一方の入力は外部クロックを受け取るためであり、もう一方の入力は伝送すべき信号を受け取るためのものである。受け取られたクロック信号がハイの場合、入力信号の変化が伝えられるだけである。そのような待ち素子の出力はいったんハイになると、受け取られたクロックの状態に関係なく、入力信号がハイからローに変化するまでハイの状態のままである。２つの待ち素子は互いに接続される。第１の待ち素子は、外部デバイスに信号を出力し、第２の待ち素子はマウストラップ・バッファから信号出力を受け取る。第２の待ち素子は、外部デバイスから反転されたクロックを受け取るが、第１の待ち素子は外部デバイスのクロックを受け取る。第２の待ち素子は、外部クロックのロー位相中だけに、信号出力のローからハイへの変化を第１の待ち素子に伝える。第１の待ち素子は、外部クロックのハイ位相中だけに、第２の待ち素子の出力の変化だけを伝える。したがって、信号出力は、外部クロックの立ち上がりエッジと同期をとられる。待ち素子は、入力のハイからローへの変化を外部クロック位相と同期させないので、同期は、信号出力の立ち上がりエッジに対して起こるだけである。
【００１８】
信号出力の立ち上がりエッジと立ち下がりエッジとの両方を外部クロック・エッジと同期させるために、さらに他の素子が必要になる。このために、同期装置は、同期入力および同期出力を有する同期ラッチを備える。同期入力は、マウストラップ・バッファの信号出力を受け取る。同期出力は、外部デバイスに接続される。同期ラッチは、さらに、制御入力を有する。同期ラッチの制御入力がハイである場合、同期ラッチの同期入力と同期出力の間の変化が、外部デバイスに伝えられるだけである。制御入力がハイである場合、ラッチの同期出力は同期入力と等しくなる。同期ラッチの同期入力および同期出力は両方とも、排他的ＮＯＲゲートの入力に接続される。同期入力と同期出力とが等しい限り、ＥＸＮＯＲゲートの出力はローである。同期入力と同期出力とが異なる場合、ＥＸＮＯＲゲートの出力はハイである。ハイのＥＸＮＯＲゲート出力は、同期ラッチに与えられる信号入力の変化を示す。ＥＸＮＯＲゲートの出力は、ラッチを制御するために使用される。ＥＸＮＯＲゲートの出力が外部デバイスのクロック・エッジと同期をとられる場合、そのとき転送が可能になり、信号出力の変化はクロックのエッジと同期をとられる
【発明を実施するための最良の形態】
【００１９】
本発明の実施形態は添付の図面に関連して以下で説明する。
【００２０】
図３に示す第１の実施形態によるパイプライン同期デバイスの書込み部分は、マウストラップ・バッファ（ＭＴ）および同期装置（Ｓ）を備える。マウストラップ・バッファＭＴおよび同期装置Ｓは書込みデバイスＷＤに接続されている。書込みデバイスは、同期装置Ｓに出力される内部クロックＣＬＫを有する。同期装置Ｓは、マウストラップ・バッファＭＴの書込みアクノリッジ信号Ｗａｃｋを書込みデバイスＷＤのクロックＣＬＫと同期させる。図３のマウストラップ・バッファは、図１に示す従来のマウストラップ・バッファに対応する。データＷｄａｔがマウストラップ・バッファＭＴに書き込まれた場合、書込みアクノリッジ信号Ｗａｃｋは、ハイからローに、またはローからハイに変化する。同時に、マウストラップ・バッファＭＴは不透明にされる。このことは、それ以上のデータをマウストラップ・バッファＭＴに書き込むことができないことを意味する。マウストラップ・バッファＭＴは、読出し要求信号Ｒｒｅｑを変化させる。この信号変化は、マウストラップ・バッファＭＴからデータを読み出すことができることを示す。同期装置Ｓは、書込みアクノリッジ信号の変化の書込みデバイスＷＤへの転送を遅延させる。書込みアクノリッジ信号Ｗａｃｋの変化は、立ち上がりエッジ遷移と立ち下がりエッジ遷移との両方からなることができる。マウストラップ・バッファＭＴは２位相プロトコルに従って動作するので、書込みアクノリッジプロトコルの立ち上がりエッジ遷移と立ち下がりエッジ遷移との両方が、バッファが書込みデータＷｄａｔを受け取ったことを示すことができる。それによって、書込みアクノリッジ信号がもう一度変化するまで、追加のデータをマウストラップ・バッファＭＴに書き込むことができないということを、書込みデバイスは知らされる。書込みアクノリッジ信号は、書込みデバイスの内部クロックと同期して受け取られなければならないので、書込みデバイスはマウストラップ・バッファＭＴの信号出力を処理することができる。
【００２１】
図４は、第１の実施形態に従ったパイプライン同期デバイスの読出し部分を示す。図４のマウストラップ・バッファＭＴは読出しデバイスＲＤに接続され、この読出しデバイスＲＤはマウストラップ・バッファからデータＲｄａｔを読み出す。読出しデバイスＲＤに対するマウストラップ・バッファＭＴの信号伝達は、読出しデバイスＲＤのクロックＣＬＫと同期をとられなければならない。このために、図３の同期装置Ｓに対応する同期装置Ｓは、マウストラップ・バッファＭＴの読出し要求出力と読出しデバイスＲＤの読出し要求入力との間に挿入される。読出しデバイスＲＤの内部クロックは、同期装置Ｓに入力される。同期装置Ｓは、読出し要求信号Ｒｒｅｑの変化の読出しデバイスＲＤへの転送を遅延させる。したがって、読出し要求信号の変化は、読出しデバイスの内部クロックＣＬＫと同期をとられる。
【００２２】
図５は、第１の実施形態による図３および４で使用された同期装置を示す。図５の同期装置Ｓは、入力ＳＩおよび出力ＳＯを有するラッチＬを備える。図５の同期入力ＳＩは、図３の書込みアクノリッジ信号Ｗａｃｋおよび図４の読出し要求信号Ｒｒｅｑに対応している。図５の同期出力ＳＯは、図３の書込みデバイスＷＤおよび図４の読出しデバイスＲＤについての同期装置の出力に対応している。ラッチＬへの制御入力Ｅがハイである場合には、ラッチＬの同期出力ＳＯは、ラッチの同期入力ＳＩに等しくなる。図３および４のマウストラップ・バッファＭＴの信号出力の変化は、ラッチＬの同期入力ＳＩおよび同期出力ＳＯの変化に対応する。この信号出力遷移の転送は、待ち素子ｗａｉｔ４によって、書込みデバイスＷＤまたは読出しデバイスＲＤのクロックＣＬＫと同期をとられる。ｗａｉｔ４素子は、ラッチＬの制御入力を外部クロックＣＬＫと同期させる。入力ＳＩおよび出力ＳＯに接続されたＥＸＮＯＲゲート５０のために、入力ＳＩと出力ＳＯとが異なる場合、待ち素子の入力ｄはハイであり、また入力ＳＩと出力ＳＯとが等しい場合、ローである。信号ｄのローからハイへの変化は、マウストラップ・バッファＭＴの信号出力の変化を示す。ｗａｉｔ４素子は、信号ｄの立ち上がりエッジをクロックＣＬＫがハイになるまで遅延させる。したがって、ラッチＬの制御入力Ｄは、クロックＣＬＫのハイ位相中に、ローからハイに変化するだけであるかもしれない。その結果、図３および４の信号出力の立ち上がりエッジまたは立ち下がりエッジは、書込みデバイスＷＤまたは読出しデバイスＲＤの対応するクロックＣＬＫのハイ位相と同期をとられる。
【００２３】
図６は、図５のｗａｉｔ４素子の設計を示す。ｗａｉｔ４素子は、アービタ６０およびインバータ６５を備える。インバータ６５は、外部デバイスＷＤまたはＲＤのクロック信号ＣＬＫを反転する。アービタ６０は２つの出力を有する。この２つの出力のうちの１つだけが、待ち素子で使用される。アービタ６０の出力ｅは、アービタ６０の入力に対応する出力である。このことは、反転クロック信号に対応するアービタ６０の第２の出力がハイでなければ、信号ｅは常に信号ｄに等しいことを意味する。
【００２４】
図７は、本発明の第２の実施形態で使用される２位相エッジ同期装置を示す。図７の同期装置は、図５のｗａｉｔ４素子が４位相立ち上がりエッジ素子ＵＥ４に取り替えられるという１つの例外を除いて、図５に示す同期装置と同じ設計である。４位相立ち上がり位相立ち上がりエッジ素子ＵＥ４は、入力信号ｄの立ち上がりエッジ遷移の遷移を外部クロックＣＬＫの立ち上がりエッジと同期させるように設計されている。ＵＥ４素子のまわりの素子は、４位相立ち上がりエッジ素子ＵＥ４を同期装置に変換する責任があり、この同期装置は信号の立ち上がりエッジと立ち下がりエッジとの両方をクロックＣＬＫの立ち上がりエッジ遷移と同期させる。入力信号ＳＩおよび出力信号ＳＯが互いに等しい限り、ＥＸＮＯＲゲート５０はロー出力を有する。どんなやり方でもＳＩとＳＯとが異なる場合、ＥＸＮＯＲゲート５０はハイ出力を有する。信号ＳＩの立ち下がりエッジ遷移および信号ＳＩの立ち上がりエッジ遷移は、両方ともＥＸＮＯＲゲート５０のハイ出力をもたらす。ＥＸＮＯＲゲートは、立ち上がりエッジ遷移と立ち下がりエッジ遷移を識別しない。したがって、信号ＳＩに立ち上がりエッジ遷移または立ち下がりエッジ遷移が起こるといつでも、立ち上がりエッジ遷移と立ち下がりエッジ遷移との両方は、ＥＸＮＯＲゲート５０から立ち上がりエッジ信号ｄを受け取る素子ＵＥ４によって同期をとられる。立ち上がりエッジ信号ｄは、ＵＥ４素子によって、クロックＣＬＫの立ち上がりエッジと同期をとられる。同期をとられた信号は、ラッチＬの制御入力ｅに出力され、そして今度はこの制御入力ｅが、出力信号ＳＯを入力信号ＳＩに等しくする。それによって、入力信号の変化は、クロックＣＬＫの立ち上がりエッジと同期して転送される。
【００２５】
図８は図７に示す同期装置で使用することができる４位相立ち上がりエッジ素子ＵＥ４の設計を示す。素子ＵＥ４は、２個のｗａｉｔ４素子を互いに接続して組み立てられる。第１のｗａｉｔ４素子は、同期させるべき信号ｄを受け取る。第２のｗａｉｔ４素子は、第１のｗａｉｔ４素子の出力ａｒを受け取る。インバータ８０は、外部クロック信号ＣＬＫを反転させる。反転されたクロックは第１のｗａｉｔ４素子に入力される。第２のｗａｉｔ４素子は、クロック信号ＣＬＫを受け取る。信号入力ｄの立ち上がりエッジは、クロックＣＬＫのロー位相中に、すなわち第１のｗａｉｔ４素子のクロック入力がハイであるとき、転送されるだけである。この場合、第２のｗａｉｔ４素子に入力される信号ａｒはハイであるが、第２の待ち素子のクロック入力はローである。クロックＣＬＫがローからハイになるまで、出力信号ｅはローの状態のままである。第１のｗａｉｔ４素子の出力ａｒは、入力ｄがハイである限り、クロックＣＬＫの変化の影響を受けない。したがって、信号ｄの立ち上がりエッジは、クロックＣＬＫの立ち上がりエッジと同期をとられる。立ち下がりクロック・エッジで、インバータ８０の遅延は、第１のｗａｉｔ４素子が開く前に、第２のｗａｉｔ４素子を責任を持って閉じる。
【００２６】
図９は、本発明の第２の実施形態に従ったマウストラップ・バッファの設計を示す。図７に示すマウストラップ・バッファは、図１に示す従来のマウストラップ・バッファが所有するすべての素子を有している。図１および７の同一参照符号は、同じ特徴を示す。その上、図７のマウストラップ・バッファは同期装置（ｓ）を備える。同期装置（ｓ）は、マウストラップ・バッファのＥＸＮＯＲゲートから出力された信号ｄを外部書込みデバイス（図示しない）のクロックと同期させる。この目的のために、同期装置（ｓ）は、書込みデバイスのクロック（ＣＬＫ）を受け取る。マウストラップ・バッファの設計は、書込みデバイスへの信号出力（Ｗａｃｋ）が書込みデバイスのクロック（ＣＬＫ）と同期をとられるようなものである。信号出力の同期は、マウストラップ・バッファに一体化した。
【００２７】
バッファの設計は、ラッチ（Ｌ）の制御入力（ｅ）が空バケットの到着（ラッチが透過的になる）で始まる４位相ハンドシェイク・プロトコルを実行することを活用する。したがって、マウストラップ・セルのラッチ制御に４位相同期装置を組み込んで、空バケットの到着の同期をとることができる。位相同期装置の設計は、エッジ同期装置の設計よりも遥かに簡単である。したがって、同期オーバヘッドが減少する。しかし、セルは空バケットの到着を同期させるだけであるので、それはバッファの書込み部分で使用できるだけである。その結果として、書込み部分の性能が改善される。一般に、マウストラップ・バッファの書込み部分は、読出し部分よりも遅くなる。マウストラップからのデータ項目（満杯バケット）の引渡しは、要求信号を介して行なわれるが、一方で、アクノリッジ信号は空バケットを戻すために使用される。データ項目を引き渡す速度は、ラッチの遅延で制限される。空バケットを引き渡す速度は、ＥＸＮＯＲゲートおよびラッチの遅延で制限される。したがって、バッファが全速度で動作するときは、空バケットの引渡しがネックである。同期素子をマウストラップ・バッファに一体化することによって、書込み部分は読出し部分とほぼ同じ性能を示す。
【００２８】
ラッチ・イネーブル制御回路に一体化されるようなＵＥ４素子は、Ｒａｃｋの到着をＣｌｋと同期させる。この後で、ラッチは透過的になり、信号Ｗａｃｋは信号Ｗｒｅｑに直接に追随する。信号Ｗｒｅｑは、Ｃｌｋで駆動される同期ドメインから生じ、したがってこのＣｌｋと同期しているので、信号ＷａｃｋもまたＣｌｋと同期している。ある点ではこの同期中に、ＷａｃｋはＷｒｅｑに結合的に依存し、ただ単にこの信号の遅延されたものである。クロック動作ドメインでは、このことは、ＷａｃｋからＷｒｅｑへの経路にクロック動作レジスタを想定して、次のクロック・サイクルのＷｒｅｑの新しい値を計算する。
【００２９】
図１０ａは、本発明に従ったパイプライン同期デバイスの書込み部分の設計を示す。書込み部分は、書込みデバイス（図示しない）からデータを受け取るパイプラインの部分である。書込み部分は、図２に示す２個のマウストラップを備える非同期パイプラインに非常に符合している。図１０ａの第１のマウストラップＭＴ１は、書込みデバイスＷＤ（図示しない）に接続されている。書込みデバイスへの接続は、図３に示す同じやり方で行なわれる。第１のマウストラップＭＴ１の書込みアクノリッジ信号は、同期装置を介して書込みデバイスに供給される。第１のｗａｉｔ２同期装置が使用され、このｗａｉｔ２同期装置は、マウストラップＭＴ１のＷａｃｋ信号の立ち上がり遷移および立ち下がり遷移をハイ・クロック位相と同期させる。第２のｗａｉｔ２素子は、第１のマウストラップ・バッファＭＴ１と第２のマウストラップ・バッファＭＴ２との間に設けられる。マウストラップ２からの書込みアクノリッジ信号は、反転クロック信号と同期をとられる。このことは、クロックがローである場合、マウストラップＭＴ２からの書込みアクノリッジ信号の変化はマウストラップＭＴ１にだけ転送されることを意味する。書込みアクノリッジ信号は、空バケットをマウストラップからマウストラップに引き渡す責任がある。第２のマウストラップＭＴ２から第１のマウストラップＭＴ１への書込みアクノリッジ信号の立ち上がりエッジまたは立ち下がりエッジは、外部クロックＣＬＫのロー位相中に伝えられる。その結果、第１のマウストラップ・バッファＭＴ１は空にされ、書込みデバイスへの第１のマウストラップの書込みアクノリッジ信号の状態が変化する。この変化が外部クロックのロー位相中に起こると、ｗａｉｔ２素子が信号Ｗａｃｋを書込みデバイスＷＤに送るために、信号は送られない。クロックがハイになるまで、すなわちクロックの立ち上がり遷移中、転送は遅延される。図１０ａに示される設計は、本発明に従ったパイプライン同期デバイスの書込み部分の立ち上がり同期回路である。
【００３０】
図１０ｂは、本発明に従ったパイプライン同期デバイスの読出し部分の対応する設計を示す。この実施形態は、Ｒｒｅｑ信号をＲｃｌｋと同期させるが、１つの不都合がある。ＲｒｅｑはＲｃｌｋのハイ期間と同期をとられるだけであるので、同期ドメイン（正エッジでトリガされると想定する）は、実際は、Ｒｄａｔで到着する新しいデータについて余りにも遅く知らされる。したがって、次のＲｃｌｋエッジでその新しいデータを吸収するために、同期ドメインに１クロック・サイクルを与えなければならない。このように、Ｒｒｅｑに対するＲａｃｋの依存性のため、クロック遅延（例えば、フリップ・フロップ）が必要となり、これによって、スループット（同期ドメインから見たとき）が５０％だけ減少する。したがって、好ましい実施形態は、Ｒｒｅｑ信号がＲｃｌｋと直接に同期をとられないで、むしろＲｒｅｑの先駆けがＲｃｌｋと直接に同期をとられるものである。このことは、図１１に示すように、同期待ち素子を単一マウストラップ段だけ左にシフトさせることで得られる。
【００３１】
図１１は、本発明の他の実施形態を示し、２個の待ち素子が隣り合うマウストラップの間に連続して挿入されている。待ち素子は、両方とも、外部クロック信号を受け取り、前記待ち素子のうちの１つはインバータを備え、このインバータは、受け取ったクロック信号を反転する。図１１に示す回路と図１０ｂに示す回路との差は、パイプライン中の待ち素子の位置である。図１０ｂにおいて、待ち素子の１つは、パイプラインと外部読出しデバイスとの境界面に位置している。図１１に示すパイプラインではそうではない。図１１に示す回路は、図１０ｂの回路の好ましい代替であり、読出し同期に使用されることになる。
【図面の簡単な説明】
【００３２】
【図１】最新技術に従ったマウストラップ・バッファを示す図である。
【図２】互いに接続された最新技術に従った２個のマウストラップ・バッファを示す図である。
【図３】本発明の第１の実施形態に従ったパイプライン同期デバイスの書込み部分を示す図である。
【図４】本発明の第１の実施形態に従ったパイプライン同期デバイスの読出し部分を示す図である。
【図５】本発明の第１の実施形態の同期装置を示す図である。
【図６】第１の実施形態の同期装置の待ち素子を示す図である。
【図７】本発明の第２の実施形態の同期装置を示す図である。
【図８】図７の同期装置で使用される４位相立ち上がりエッジ素子（ＵＥ４）を示す図である。
【図９】本発明の第２の実施形態に従ったパイプライン同期デバイスのマウストラップ・バッファを示す図である。
【図１０ａ】本発明の第３の実施形態に従ったパイプライン同期デバイスの書込み部分を示す図である。
【図１０ｂ】本発明の第３の実施形態に従ったパイプライン同期デバイスの読出し部分を示す図である。
【図１１】本発明の第４の実施形態に従ったパイプライン同期デバイスを示す図である。
【図１】
2006522378.tif 000003
【図２】
2006522378.tif 000004
【図３】
2006522378.tif 000005
【図４】
2006522378.tif 000006
【図５】
2006522378.tif 000007
【図６】
2006522378.tif 000008
【図７】
2006522378.tif 000009
【図８】
2006522378.tif 000010
【図９】
2006522378.tif 000011
2006522378.tif 000012
2006522378.tif 000013
【図１１】
2006522378.tif 000014
【国際調査報告】
2006522378.tif 000015
2006522378.tif 000016
2006522378.tif 000017