(57)【要約】ソースクロックドメインから非同期の受信クロックドメインにデータを伝送する方法及び装置がもたらされる。ソースクロックドメインにおいて位置されている第一の処理回路は、書き込みアドレス情報を前記データに結びつけ、クロック生成器が、ソースクロックに同期してソースクロックドメインにおいて送信クロック信号を生成する。第一の処理回路は更に、前記クロック信号及び結びつけられた書き込みアドレス情報を備えるデータを受信クロックドメインにおける第二の処理回路に送信する。受信クロックドメインにおいて、第二の処理回路は、結びつけられた書き込みアドレス情報に対応する記憶要素を示すアドレスにおいてデータを書き込む。第二の処理回路は、前記データを、ソースクロックドメインからの書き込みイネーブル信号に応答して伴う送信クロック信号に同期して記憶要素にクロック入力すると共に、前記データを、受信ドメインクロックに同期して記憶要素から読み出す。
2005507608.tif 000002
【特許請求の範囲】
【請求項１】
ソースクロックドメインから受信クロックドメインにデータを伝送し、前記ソース及び受信クロックドメインが非同期ソース及び受信クロックを各々使用する方法であって、
書き込みアドレス情報を前記ソースクロックドメインにおけるデータに結びつけるステップと、
前記ソースクロックドメインにおいて、前記ソースクロックに同期する送信クロック信号を生成するステップと、
前記送信クロック信号及び前記結びつけられた書き込みアドレス情報を備える前記データを前記受信クロックドメインに送信するステップと、
記憶要素を示すアドレスにおいて前記データを書き込み、前記示されたアドレスは前記結びつけられた書き込みアドレス情報に対応し、前記記憶要素は前記受信クロックドメインにおいて位置され、前記データは前記送信クロック信号に同期して前記記憶要素にクロック入力されるステップと、
前記受信クロックに同期して前記記憶要素から前記データを読み出すステップと
を有する方法。
【請求項２】
前記受信クロックが前記ソースクロックよりも低い周波数で動作する請求項１に記載の方法。
【請求項３】
前記送信クロック信号に同期するデータ制御信号を前記ソースクロックドメインから前記データ記憶要素に通信するステップと、
前記データ制御信号に応答して前記データ記憶要素における前記データを受信するステップと
を更に含む請求項１に記載の方法。
【請求項４】
前記データ制御信号が書き込みイネーブル信号である請求項３に記載の方法。
【請求項５】
前記送信クロック信号が、反転ソースクロック信号である請求項１に記載の方法。
【請求項６】
前記ソースクロックドメインにおいてパイプラインレジスタで前記データを取り込むステップを更に含む請求項１に記載の方法。
【請求項７】
前記受信クロックが、前記ソースクロックよりも高い周波数で動作する請求項６に記載の方法。
【請求項８】
前記データはＮビット幅であり、前記記憶要素はＭの位置深さであり、前記結びつけられた書き込みアドレス情報を備える前記データは、最大で
【数１】
2005507608.tif 000009
の電気信号パスを使用して通信され、Ｍは２のべき乗である請求項１に記載の方法。
【請求項９】
前記データはＮビット幅であり、前記記憶要素はＭの位置深さであり、前記結びつけられた書き込みアドレス情報を備える前記データは、最大で
【数２】
2005507608.tif 000010
の電気信号パスを使用して通信され、Ｍは２のべき乗でない請求項１に記載の方法。
【請求項１０】
ソースクロックドメインから受信クロックドメインにデータを伝送し、前記ソース及び受信クロックドメインが非同期ソース及び受信クロックを各々使用する回路装置であって、
書き込みアドレス情報を前記ソースクロックドメインにおけるデータに結びつけるための手段と、
前記ソースクロックドメインにおいて、前記ソースクロックに同期する送信クロック信号を生成するための手段と、
前記送信クロック信号及び前記結びつけられた書き込みアドレス情報を備える前記データを前記受信クロックドメインに送信するための手段と、
記憶要素を示すアドレスにおいて前記データを書き込み、前記示されたアドレスは前記結びつけられた書き込みアドレス情報に対応し、前記記憶要素は前記受信クロックドメインにおいて位置され、前記データは前記送信クロック信号に同期して前記記憶要素にクロック入力されるための手段と、
前記受信クロックに同期して前記記憶要素から前記データを読み出すための手段と
を有する回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本デバイスは、概してデータ通信、更に特にはクロックドメイン境界部間でデータを転送するための装置及び方法に関する。
【背景技術】
【０００２】
より複雑な回路に対して増大される需要は、シリコンウエハの小さな領域上における大規模集積回路の製作を通じて実現されている重要な成果をもたらしてきた。当該複雑な回路は、データのシーケンスで動作すると共にそのデータを更なる処理のために伝送する、機能定義されたブロック（ｆｕｎｃｔｉｏｎａｌｌｙ−ｄｅｆｉｎｅｄ  ｂｌｏｃｋ）としてしばしば設計される。当該機能定義されたブロックからのこの通信は、個々の集積回路（又は“チップ”）間、同一チップ内、及びより離れて位置されている通信回路装置とシステムとの間で少量又は多量のデータで伝送され得る。構成にかかわらず、前記通信は通常、データの完全性（ｄａｔａ  ｉｎｔｅｇｒｉｔｙ）が維持されることと、チップセット設計が、実現スペース及び可能な動作電力に関する実際的な制限に敏感であることとを保証するために、密に制御されたインタフェイス（ｃｌｏｓｅｌｙ−ｃｏｎｔｒｏｌｌｅｄ  ｉｎｔｅｒｆａｃｅ）を必要とする。
【０００３】
増大される回路の複雑さに伴い、データが回路ブロック間で伝送される速度を増加させることに対する相応の需要がもたらされている。当該高速通信用途の多くは、複数のデータビットがパラレル通信パスを介して同時に送信されるパラレルデータ相互接続送信（ｐａｒａｌｌｅｌ  ｄａｔａ  ｉｎｔｅｒｃｏｎｎｅｃｔ  ｔｒａｎｓｍｉｓｓｉｏｎ）を使用して実現され得る。当該“パラレルバス（ｐａｒａｌｌｅｌ  ｂｕｓｓｉｎｇ）”は、高いデータレートのデータ伝送を実現するためによく受け入れられる手法である。
【０００４】
通常のシステムは、例えばケーブル及び他の相互接続部の形態で、及び／又はチップ上の内部バスを介して、パラレルデータバスにインタフェイスすると共にパラレルデータバスを介して通信する複数のモジュール（すなわち一つ又はそれより多くの共同で機能するチップ（ｃｏｏｐｅｒａｔｉｖｅｌｙ−ｆｕｎｃｔｉｏｎｉｎｇ  ｃｈｉｐ））を含み得る。送信モジュールは、送信モジュール上のクロックに同期してバスを介してデータを送信する。この態様において、パラレル信号線における遷移（ｔｒａｎｓｉｔｉｏｎ）により、送信モジュールは互いに、及び／又は送信モジュールにおけるクロックに同期した関係となる。パラレルデータ相互接続部の他端部において、受信モジュールはパラレルデータバス上のデータを受信する。当該システムにおいて、受信信号（及び適用可能な場合、受信クロック）は、適切なデータ再生をもたらすために、特定の位相関係を有するべきである。
【０００５】
今日の多くの集積回路（ＩＣ）は、一つより多くのクロックドメインを含んでおり、それ故にデータ送信モジュールは第一のクロック周波数で、ある一つのクロックドメインにおいて動作し得る一方、データ受信モジュールは、異なる（及びおそらくは非同期の）第二のクロック周波数で他のクロックドメインにおいて動作している。クロックドメイン間のインタフェイスは、クロックドメイン境界部（ｃｌｏｃｋ  ｄｏｍａｉｎ  ｂｏｕｎｄａｒｙ）又は情報が前記境界部を交差するクロックドメイン交差部（ｃｌｏｃｋ  ｄｏｍａｉｎ  ｃｒｏｓｓｉｎｇ）である。クロック信号パスの距離は通常、許容限度内にクロック信号“スキュー（ｓｋｅｗ）”効果を限定するように制限される。それ故にクロックドメインは概してＩＣの密集した起伏のある領域（ｃｏｍｐａｃｔ  ｇｅｏｇｒａｐｈｉｃａｌ  ｒｅｇｉｏｎ）と互いに関係している。
【０００６】
送信及び受信モジュールが異なるクロックドメインにもたらされている場合、データがある一つのクロックドメインに送信される瞬間のレートは、データが他のドメインにおいて使用（すなわち消費）される瞬間のレートと一致していない。データレートの差に対処するために、従来からクロックドメイン間で別個のバッファリングデバイス（ｂｕｆｆｅｒｉｎｇ  ｄｅｖｉｃｅ）が使用されている。データはソースドメイン（すなわち書き込み）クロック（ｓｏｕｒｃｅ  ｄｏｍａｉｎ  ｃｌｏｃｋ）によってバッファリングデバイスにクロック入力され、受信ドメイン（すなわち読み出し）クロックによってバッファデバイスからクロック出力される。
【０００７】
従来のバッファデバイスは、データ、アドレス、及び書き込みイネーブル（ｗｒｉｔｅ−ｅｎａｂｌｅ）入力が、書き込みクロックに対して、ある一定のセットアップ及びホールドタイミングの要求仕様に合っていることを必要とし、記憶要素は、必要とされるタイミング関係を保持するために、書き込みクロックドメインの近くに位置されることが必要とされる。同時に、従来のバッファデバイスからの出力（読み出し）データは通常、読み出しアドレスが変更された後、あるゼロでない遅延と共に有効（ｖａｌｉｄ）となる。読み出しクロック周波数が極端に低くない場合、読み出しアドレスカウンタが、バッファデバイスの内部の多重化機能部（ｍｕｌｔｉｐｌｅｘｉｎｇ  ｆｕｎｃｔｉｏｎ）の近くに位置されるべきである。それ故にバッファデバイスは同時に、データの完全性を保証するために読み出しクロックドメインの近くに位置されなければならない。通常、バッファデバイスはクロックドメイン境界部の非常に近いところに物理的に位置されるので、何れのクロックドメインも拡張（ｅｘｔｅｎｄ）され過ぎることはない。バッファデバイスをクロックドメインのうちの一つに位置させることは、バッファデバイスに達するようにクロック信号を他のクロックドメインから“外部（ｆｏｒｅｉｇｎ）”クロックドメインに拡張することを必要としている。この実施により、拡張され過ぎたクロック信号に対するスキューの問題が増大させされる。
【０００８】
スキューは、何れかの二つの信号の間の遅延期間又はオフセット期間（ｔｉｍｅ  ｄｅｌａｙ  ｏｒ  ｏｆｆｓｅｔ）である。出力先（ｄｅｓｔｉｎａｔｉｏｎ）における、アドレス／データ信号とクロック信号との間、及び送信データ信号自身の間の、予想される量のスキュー期間がしばしばもたらされる。スキューは、例えばパラレル相互接続部の信号線の容量性及び誘導性の負荷によってもたらされる伝送遅延と、入力／出力ドライバソース（ｄｒｉｖｅｒ  ｓｏｕｒｃｅ）における変動と、符号間干渉（ｉｎｔｅｒｓｙｍｂｏｌ  ｉｎｔｅｒｆｅｒｅｎｃｅ）と、伝送線のインピダンス及び長さにおける変動とを含む複数の現象によってもたらされ得る。どの現象がスキューをもたらすかにかかわらず、その現象により、通信されるデータ及び、多くの用途において、全通信システムに対して深刻な完全性の問題がもたらされる。
【０００９】
複数のクロックドメインを使用して集積回路を実現することは様々な理由により好ましい。従って、クロックドメイン間のパラレルバスを介するデータ通信を改善することにより、より実用的且つ高速なパラレルバス用途が可能となる。これにより今度は、スキューをもたらす現象（ｓｋｅｗ−ｃａｕｓｉｎｇ  ｐｈｅｎｏｍｅｎａ）が存在する状態でデータの完全性が保持される一方で、高速回路に対する需要が直接満たされ得る。本発明の様々な態様は、上記の欠点に対処すると共に、更に他の用途に対しても有用な通信装置及び方法をもたらす。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、ソースクロックドメインから、ソースクロックドメインと異なる周波数で動作する受信クロックドメインにデータを伝送するための回路及び方法に向けられる。本発明は、複数の実現例及び用途において例示され、そのうちのいくつかが以下にまとめられている。
【課題を解決するための手段】
【００１１】
本発明の実施例によれば、ソースクロックドメインから非同期の受信クロックドメインにデータを伝送するための方法がもたらされる。ソースクロックドメインにおいて、書き込みアドレス情報が前記データに結びつけられる。クロック生成器（ｃｌｏｃｋ  ｇｅｎｅｒａｔｏｒ）は、ソースクロックドメインクロックに同期して送信クロック信号を生成させる。データ及び結びつけられた書き込みアドレス情報は、送信クロック信号と共に、受信クロックドメインに送信される。受信クロックドメインにおいて、データは、結びつけられた書き込みアドレス情報に対応する記憶要素を示すアドレスに書き込まれる。前記データは、伴う送信クロック信号に同期して記憶要素にクロック入力される。しかしながら、前記データは、受信クロックドメインに同期して記憶要素から読み出される。
【００１２】
本発明の一つの態様によれば、受信クロックドメインクロックは、ソースクロックドメインクロックよりも遅い周波数で動作する。本発明の他の態様によれば、データ制御信号は、ソースクロックドメインからデータ記憶要素に通信され、前記データは、データ制御信号に応答して記憶要素に受信される。
【００１３】
本発明の他の実施例によれば、ソースクロックドメインから非同期受信クロックドメインにデータを伝送するための回路装置がもたらされる。クロック生成器は、ソースクロックに同期してソースクロックドメインにおいて送信クロック信号を生成させる。ソースクロックドメインにおいて位置されている第一の処理回路は、書き込みアドレス情報を前記データに結びつける。第一の処理回路は更に、送信クロック信号及び結びつけられた書き込みアドレス情報を備えるデータを受信クロックドメインに送信する。受信クロックドメインにおいて位置されている第二の処理回路は、ここでも結びつけられた書き込みアドレス情報に対応する受信クロックドメインにおいて位置される記憶要素を示すアドレスにおいてデータを書き込む。第二の処理回路は更に、前記データを、伴う送信クロック信号に同期して記憶要素にクロック入力すると共に、前記データを、受信クロックドメインに同期して記憶要素から読み出す。
【００１４】
本発明の他の態様によれば、第一の処理回路は更に、データ制御信号を、ソースクロックドメインから受信クロックドメインにおける記憶要素に送信し、前記記憶要素は、データ制御信号に応答して前記データを受信する。
【００１５】
上記の概略は、本発明の全ての実現例又は各々示されている実施例を記載することを意図するものではない。以下の図面及び詳細な説明は、更に特定してこれらの実施例を例示する。
【００１６】
本発明は、添付図面に関連して以下の本発明の様々な実施例の詳細な記載を考慮して更に完全に理解され得る。
【００１７】
本発明は、様々な変形例及び代わりの形態に修正可能であるが、そのうちの特定の例が図面における例によって示されており、詳細に記載されるであろう。しかしながら本発明が、記載の特定の実施例に限定されるものではないことは理解されるべきである。逆に本発明は、従属請求項によって規定される本発明の範囲内の全ての変形例、等価な例、及び代わりの例をカバーするものである。
【発明を実施するための最良の形態】
【００１８】
本発明は、様々な異なる形式の電子回路に適用可能と考えられ、複数のクロックドメイン及びそれらの間のパラレルデータ通信で実現される集積回路に関連する使用に特に適していることが分かっている。本発明は必ずしも当該デバイスに限定されないが、本発明の様々な態様の評価は、本願を使用する、様々な例の議論を通じて最もよくもたらされる。
【００１９】
本発明の一般的な実施例によれば、ソースクロックドメイン内の回路からもたらされるデータは、データバッファ装置を通じて受信クロックドメイン内の回路に送信される。前記データは、ソースクロックドメインのソースクロック（書き込みクロック）に同期してバッファ装置に書き込まれ、受信クロックドメインの受信クロック（読み出しクロック）に同期してバッファ機能部から読み出される。バッファ装置は、クロックドメイン境界部に物理的に位置される必要がない。効率的なことに、本発明のデータバッファ装置は二つの部分に分割され、書き込みクロック（“書き込み側（ｔｈｅ  ｗｒｉｔｅ  ｓｉｄｅ）”）に同期されなければならない全ての回路は書き込み（すなわちソース）クロックドメインに位置され、読み出しクロック（“読み出し側（ｔｈｅ  ｒｅａｄ  ｓｉｄｅ）”）に同期されなければならない全ての回路は読み出し（すなわち受信）クロックドメインに位置される。バッファ装置のメモリ素子は、実質的に受信クロックドメイン内に含まれている。書き込みクロックは、メモリ素子に直接接続されず、従って受信クロックドメインに拡張されすぎる必要がない。
【００２０】
バッファ装置の書き込み側は、例えばパイプラインレジスタ（ｐｉｐｅｌｉｎｅ  ｒｅｇｉｓｔｅｒ）において、書き込まれるべきデータを受信し、書き込みアドレスカウンタを保持する。書き込みアドレス情報は、前記データに結びつけられると共に、ソース同期手法（ｓｏｕｒｃｅ−ｓｙｎｃｈｒｏｎｏｕｓ  ａｐｐｒｏａｃｈ）を使用して、メモリ素子に送信される。前記手法によって、クロックする信号は前記データ（及び結びつけられた書き込みアドレス情報）と共に送信される。長いデータ送信距離に渡ってソースクロックを拡張するのではなく、ソース同期送信クロック信号（ｓｏｕｒｃｅ−ｓｙｎｃｈｒｏｎｏｕｓ  ｔｒａｎｓｍｉｔ  ｃｌｏｃｋ  ｓｉｇｎａｌ）を使用することにより、バッファ機能部の記憶部にデータを書き込むために使用されるクロックする信号と、ソースクロックドメインの平衡（ｂａｌａｎｃｅ）を介したクロックする信号との間のスキュー問題が解消される。殊更ソースクロックドメインからの書き込み動作と、受信クロックドメインへの読み出し動作とは非同期であるため、メモリ素子書き込みクロックとメモリ素子読み出しクロックとの間のスキューは本発明において問題とならない。送信クロック信号とそれに伴うデータ／アドレス情報との間のクロック信号スキューしか残されず、当該スキューは、データ／アドレス情報がソースクロックドメインから受信クロックドメインにおけるメモリ素子への物理距離をトラバースする（渡る）（ｔｒａｖｅｒｓｅ）ために必要とされる期間は、ソース同期クロックが同じ物理距離を渡るために必要とされる期間にほぼ等しいことを保証することによって制御され得る。
【００２１】
本発明の他の実施例において、複数のクロックドメイン及びそれらの間のパラレルデータ通信部を有する集積回路が実現されている。前記集積回路は、各々のクロックドメインの間のデータ通信部にインタフェイスするバッファ装置を含んでいる。２クロックディセクト（分離）バッファ装置（ｔｗｏ−ｃｌｏｃｋ  ｄｉｓｓｅｃｔｅｄ  ｂｕｆｆｅｒｉｎｇ  ａｒｒａｎｇｅｍａｎｔ）は、ソースクロックドメインに位置される第一の処理回路と、受信クロックドメインに位置される第二の処理回路とを含んでいる。ソース及び受信クロックドメインはそれぞれ、ドメイン間で同期していないソース及び受信クロックを使用する。本発明の一つの態様によれば、受信クロックはソースクロックよりも遅い周波数で動作するので、データはバッファ装置内に周期的に蓄積される傾向にある。クロック生成回路は、ソースクロックに同期している送信クロック信号を生成させる。
【００２２】
第一の処理回路は、ソースクロックドメインの回路からもたらされるデータを、ここでもソースクロックドメインにおいて位置される書き込みポインタデバイス（ｗｒｉｔｅ  ｐｏｉｎｔｅｒ  ｄｅｖｉｃｅ）からの書き込みアドレス情報に結びつけ、それから結びつけられた書き込みアドレス情報を備えるデータを第二の処理回路に送信する。送信クロック信号も、前記データ及び結びつけられた書き込みアドレス情報と共に、ソースクロックドメインから受信クロックドメインに送信される。
【００２３】
本発明の一つの態様によれば、データ制御信号（例えば書き込みイネーブル信号）が、ソースクロックドメインから受信クロックドメインに更に送信される。第二の処理回路は、データ制御信号に応答して記憶要素を示すアドレスにおいて前記データを書き込み、前記示されたアドレスは、結びつけられた書き込みアドレス情報に対応している。前記データは、伴う送信クロック信号に同期して第二の処理回路によって記憶要素にクロック入力され、続いて受信クロックドメインに同期して記憶要素から読み出される。
【００２４】
本発明の一つの態様によれば、ソース同期書き込みコマンドが、クロックドメイン境界部の間で、ともすれば比較的長い物理距離（例えば少なくともクロックドメインのうちの一つの内部にもたらされている信号によってトラバースされる距離よりも長いオーダの長さ）に渡って送信される。クロックドメイン境界部を交差する電気信号パスの数は、データビットの数（すなわちＦＩＦＯの幅）と、アドレスビットの数の２倍の数と、クロック及びデータ制御信号の二つと、それぞれのカウンタの各々に対する、満杯（ｆｕｌｌ）と空（ｅｍｐｔｙ）との間で差分演算（ｄｉｆｆｅｒｅｎｔｉａｔｅ）する一つのビットとを足し合わせた数にほぼ等しくなる。必要とされる電気信号パスの数量は、バッファ機能部の記憶要素の深さに依存している。記憶要素の深さが２のべき乗である場合、“循環（繰り返し）”グレイコードアドレス方式（“ｃｉｒｃｕｌａｒ”  Ｇｒａｙ  ｃｏｄｅ  ａｄｄｒｅｓｓ  ｓｃｈｅｍｅ）が効率よく使用され得る。グレイコード化された書き込みカウンタ（Ｇｒａｙ  ｃｏｄｅｄ  ｗｒｉｔｅ  ｃｏｕｎｔｅｒ）及び読み出しカウンタ（Ｇｒａｙ  ｃｏｄｅｄ  ｒｅａｄ  ｃｏｕｎｔｅｒ）は、記憶要素内における各々の機能部に対して現アドレスを追跡（ｔｒａｃｋ）するために使用される。前記境界部を交差するために必要とされる電気信号パスの最大数量は、
【数３】
2005507608.tif 000003
個の電気信号パスと表され得る。ここで、Ｎはデータビットの数（すなわち記憶要素の幅）であり、Ｍは記憶要素内の位置（ｌｏｃａｔｉｏｎ）の数（すなわち記憶要素の深さ）であり、Ｍは２のべき乗であると共にグレイコードアドレッシング方式が使用され、四つの更なるビットはそれぞれ、クロック信号、データ制御信号、満杯／空書き込みカウンタ差分演算器（ディファレンシエータ）（ｆｕｌｌ／ｅｍｐｔｙ  ｗｒｉｔｅ−ｃｏｕｎｔｅｒ  ｄｉｆｆｅｒｅｎｔｉａｔｏｒ）、及び満杯／空読み出しカウンタ差分演算器（ｆｕｌｌ／ｅｍｐｔｙ  ｒｅａｄ−ｃｏｕｎｔｅｒ  ｄｉｆｆｅｒｅｎｔｉａｔｏｒ）に対するものである。例えば、バッファが３２ビット幅及び３２の位置深さである場合、クロックドメイン境界部を交差する電気信号パスの数量は、
【数４】
2005507608.tif 000004
となる。ここで
【数５】
2005507608.tif 000005
は、全てのビットをアドレッシングすることを可能にするために切り上げ値（ｒｏｕｎｄ−ｕｐ  ｖａｌｕｅ）を示す。
【００２５】
記憶要素の深さが２のべき乗でない場合（すなわち、グレイコードアドレス数列がアドレス“ｇａｐｓ”を有する場合）、読み出し及び書き込みポインタに対するグレイコード値は記憶要素アドレスとして使用されるのにあまり適さず、グレイコードポインタは、書き込みアドレス情報に加えて、及び書き込みアドレス情報から別個に送信されなければならない。グレイコードポインタ情報は、アドレスビットの更なるセットに対処するのに必要な量によって電気信号パスの数を増加させる。記憶要素の深さが２のべき乗でない場合、前記境界部を交差するために必要とされる電気信号パスの最大量は、
【数６】
2005507608.tif 000006
電気信号パスと表され得る。ここでＮはデータビットの数であり、Ｍは記憶要素の深さであり、Ｍは２のべき乗でないと共に他の四つのビットは上記信号化のためのものである。図１は、複数のクロックドメイン、すなわちクロックドメインＡ  １１０、クロックドメインＢ  １２０、及びクロックドメインＣ  １３０をそれぞれ有する本発明の集積回路チップ１００を示している。クロックドメイン境界部ＡＢ  １１５は、クロックドメインＡとＢとの間に位置され、クロックドメイン境界部ＢＣ  １２５は、クロックドメインＢとＣとの間に位置され、クロックドメイン境界部ＡＣ  １３５は、クロックドメインＡとＣとの間に位置される。データフロー矢印の各グループによって示されているように、双方向（ｔｗｏ−ｗａｙ）パラレルデータ通信は、クロックドメイン境界部の各々をトラバースする。例えば、矢印１４０はパラレルデータ及びアドレス情報を示し、矢印１４２はクロック信号を示し、矢印１４４はデータ制御信号を示す。
【００２６】
各クロックドメインは、クロックドメインに渡って単一のクロック周波数を利用し得るか、又は代わりに、複数の同期クロック信号を含み得る。例えば、クロックドメインＡは、二つのクロック周波数、すなわちクロックＡ１  １５０及びクロックＡ２    １６０を含む。各クロックドメインは、他のクロックドメインから独立にクロックされ、各クロックドメインに対するクロック信号は、他のクロックドメインのクロック信号に同期されなくてもよい。更に、各クロックドメインは、他のクロックドメインにもたらされていない固有の周波数（ｕｎｉｑｕｅ  ｆｒｅｑｕｅｎｃｙ）を有するクロック信号を含み得る。クロックドメイン境界部ＡＢの間のデータ通信は、クロックドメインＡ内で、クロックＡ１により動作させられている回路に向けられる。クロックドメイン境界部ＡＣの間のデータ通信は、クロックドメインＡ内で、クロックＡ２により動作させられている回路に向けられる。
【００２７】
クロックドメイン境界部の間で自身からデータが流れ出すクロックドメインはソースクロックドメインと称され、クロックドメイン境界部の間で自身にデータが流れ込むクロックドメインは受信クロックドメインと称される。例えば図１において、データは、矢印１２２によって示されているようにクロックドメインＢ（すなわちソースクロックドメイン）からもたらされ、ソースクロックドメインにおいて第一の処理回路１２４によって受信される。データは、矢印１４０によって示されているようにクロックドメイン境界部ＡＢ  １１５の間で第二の処理回路１１２に流れ、その後第二の処理回路１１２から、矢印１１４によって示されているようにクロックドメインＡに位置される回路に流れる。実現態様に依存して、データは、図１に更に示されているようにクロックドメイン境界部ＡＢの間、及び随意的に他のクロックドメイン境界部の間で一方向又は双方向で流れる。
【００２８】
図２は、本発明の一つの実施例のブロック図２００であり、ソースクロックドメイン２２０に位置される第一の処理回路２２４を示している。第二の処理回路２１２は受信クロックドメイン２１０に位置される。クロックドメイン境界部２１５は、ソースクロックドメインと受信クロックドメインとの間に位置される。ソースクロックドメインは、ソースクロック信号（又は書き込みクロック“ｃｌｋｗ”）をソースクロック端子２７０にもたらし、第一の処理回路はソースクロックに同期して動作する。受信クロックドメインは、受信クロック信号（又は読み出しクロック“ｃｌｋｒ”）を受信クロック端子２８０にもたらし、第二の処理回路は受信クロックに同期して動作する。
【００２９】
第一の処理回路は、ソース同期送信論理部（ｓｏｕｒｃｅ−ｓｙｎｃｈｒｏｎｏｕｓ  ｔｒａｎｓｍｉｔ  ｌｏｇｉｃ  ｐｏｒｔｉｏｎ）２２６と、書き込みカウンタ及び書き込み同期フラグ論理部（ｗｒｉｔｅ−ｓｙｎｃｈｒｏｎｏｕｓ  ｆｌａｇ  ｌｏｇｉｃ  ｐｏｒｔｉｏｎ）２２８とを含んでいる。送信論理２２６は、データ入力信号パス２２２を介して受信クロックドメインに通信されるべきデータを受信し、書き込みアドレス（“ｗａｄｄｒ”）信号パス２２１を介して書き込みアドレス情報を受信すると共に、書き込みイネーブル（“ｗｅｎａｂｌｅ”）信号パス２２３を介してデータ制御（例えば書き込みイネーブル）信号を受信する。第一の処理回路は、前記データを関連する書き込みアドレス情報に結びつけると共にパラレル通信チャネルを通じて、結びつけられた書き込みアドレス情報を備えるデータを第二の処理回路に送信する。記憶要素の深さが２のべき乗でない場合、前記データはデータ信号パス（“ｓｓ＿ｄａｔａ”）２４０Ｄを介して送信され、前記結びつけられた書き込みアドレス情報はアドレス信号パス（“ｓｓ＿ａｄｄｒ”）２４０Ａを介して送信される。図２に示されているように、第一の処理ユニットは、ソースクロックドメイン内の回路からソースクロック及び他の情報信号を受信し、ソースクロックドメインにおける回路に対してフラグ及び他の制御信号を生成する。
【００３０】
第一の処理回路は、ソースクロックに同期してソース同期送信クロック信号を生成する。ソース同期送信クロック信号は、クロック信号パス（“ｓｓ＿ｃｌｋ”）２４２を介して第二の処理回路に通信される。送信論理部２２６は更に、データ制御信号パス（“ｓｓ＿ｗｅｎａｂｌｅ”）２４４を介して第二の処理回路にデータ制御信号を送信する。
【００３１】
第二の処理回路は、記憶要素２９０と、読み出しカウンタ及び読み出し同期フラグ論理部分２９２とを有している。本発明の一つの態様によれば、記憶要素はＦＩＦＯメモリ装置であり、前記ＦＩＦＯは準拠メモリ（ｃｏｍｐｌｉｅｄ  ｍｅｍｏｒｙ）を介して実現される。ＦＩＦＯ２９０は、代わりに、ラッチから構成されるレジスタファイル（ｒｅｇｉｓｔｅｒ  ｆｉｌｅ）を介して実現されるか、フリップフロップの構成体を通じて実現されるか、又は他のデータ記憶構造体（ｄａｔａ  ｓｔｏｒａｇｅ  ｓｔｒｕｃｔｕｒｅ）として実現される。必要ならば第一の処理回路と第二の処理回路との間で、グレイコード書き込みポインタ信号はグレイコード書き込みポインタ信号パス（“Ｇｒａｙ＿Ｗｒ＿Ｐｔｒ”）を介して通信され、グレイコード読み出しポインタ信号はグレイコード読み出しポインタ信号パス（“Ｇｒａｙ＿Ｒｄ＿Ｐｔｒ”）を介して通信される。
【００３２】
第二の処理回路は、上記の信号パスを通じて、送信クロック信号、データ制御信号、及び結びつけられた書き込みアドレス情報を備えるデータを受信する。第二の処理ユニットは、図２に示されている受信クロックドメイン内の回路から受信クロック及び他の信号を受信する。前記データは、前記結びつけられた書き込みアドレス情報に対応するアドレスにおいて記憶要素２９０に書き込まれ、前記データは、伴う送信クロック信号に同期して記憶要素にクロック入力（クロックイン）（ｃｌｏｃｋ−ｉｎ）される。従来から知られているように、書き込み動作は、伴うデータ制御（例えば書き込みイネーブル）信号に応答する。
【００３３】
読み出しカウンタ及び読み出し同期フラグ論理部２９２は、読み出し信号（“ｒｄ”）と、オプションの制御及びフラグ情報とを受信し、適切なフラグ信号を生成し、記憶要素を指定する読み出しアドレス（“ｒａｄｄｒ”）信号を保持する。当該記憶要素によりデータが記憶部２９０から読み出される。オプションのレジスタ２１６を通って、受信クロックに同期して記憶要素２９０からデータ出力（“ｄｏ”）信号パス２１４にデータがクロックされる。
【００３４】
図３Ａは、本発明の一つの実施例３００の回路図である。第一の処理回路のドライバ論理回路部３２４はソースクロックドメインに位置され、データ、アドレス、及び制御情報をそれぞれのパイプラインレジスタで”取り込む（ｃａｐｔｕｒｅ）”。ドライバ論理回路３２４は、ソースクロック信号パス３７０を介してソースクロック信号（ソースクロック又は“ｃｌｋ”）を受信する。示されているように、ドライバ回路３２４のフリップフロップの各々はソースクロックによってクロックされる。データはデータ信号パス３２２を介してドライバ回路によって受信され、データフリップフロップ３２７を通じてソース同期データ信号パス（“ｓｓ＿ｄａｔａ”）３４０Ｄにクロックされる。書き込みアドレス情報は書き込みアドレス信号パス３２１を介してドライバ回路によって受信され、アドレスフリップフロップ３２５を通じてソース同期アドレス信号パス（“ｓｓ＿ａｄｄｒ”）３４０Ａにクロックされる。データ制御（例えば書き込みイネーブル）信号（“ｗｅ＿ｎ”）はデータ制御信号パス３２３を介してドライバ回路によって受信され、データ制御フリップフロップ３２９を通じてソース同期データ制御信号パス（“ｓｓ＿ｗｅ＿ｎ”）３４４にクロックされる。送信クロック生成回路３３１は、ソースクロックに同期して送信クロック信号を、ソース同期送信クロック信号パス（“ｓｓ＿ｃｌｋ”）３４２上に生成する。送信クロックは基本的に反転ソースクロック（ｉｎｖｅｒｔｅｄ  ｓｏｕｒｃｅ  ｃｌｏｃｋ）であるが、通常インバータによって生成されない。しかしながら代わりに、送信クロック生成回路３３１に対して開示されている技術と同様の技術が使用される。これにより、ソースクロック信号に対して送信クロックにおけるある一定の重要な位相遅延（ｐｈａｓｅ  ｄｅｌａｙ）ももたらされる。
【００３５】
データ、アドレス、及びデータ制御信号は、書き込みクロックを使用してサンプリングされ、ソース同期インタフェイスを介して送信される。図３Ｂは、上記のように、図３Ａのドライバ論理回路３２４によって生成される代表的な信号の一つの実施例を示すタイミング図である。信号３７０’は、ソースクロック信号パス３７０上のソースクロック信号を代表する。信号３４２’は、ソース同期送信クロック信号パス（“ｓｓ＿ｃｌｋ”）３４２上の送信ソースクロック信号を代表する。信号３４０’は、データ制御信号パス（“ｓｓ＿ｗｅ＿ｎ”）３４４に対応すると共に、ソース同期データ及びアドレス信号パス，（“ｓｓ＿ｄａｔａ”）３４０Ｄ及び（“ｓｓ＿ａｄｄｒ”）３４０Ａ上のデータ及びアドレス信号にもそれぞれ対応する信号を代表する。
【００３６】
図３Ａを再び参照して、第二の処理ユニットの受信論理回路部３１２は、送信データ、アドレス、データ制御、及び送信クロック信号を、それらがクロックドメイン  境界部３１５を通過した後にそれぞれ受信する。受信器回路３１２のフリップフロップの各々は、示されているように、ソース同期送信クロックによってクロックされる。送信クロックは第二の処理回路のＦＩＦＯ記憶要素（図示略）もクロックする。データはソース同期データ信号パス（“ｓｓ＿ｄａｔａ”）３４０Ｄを介して受信回路によって受信され、受信データフリップフロップ３９５を通じてＦＩＦＯ記憶要素にクロックされる。書き込みアドレス情報はソース同期アドレス信号パス（“ｓｓ＿ａｄｄｒ”）３４０Ａを介して受信回路によって受信され、受信アドレスフリップフロップ３９７を通じてＦＩＦＯにクロックされる。データ制御（例えば書き込みイネーブル）信号はソース同期データ制御信号パス（“ｓｓ＿ｗｅ＿ｎ”）３４４を介して受信回路によって受信され、受信データ制御フリップフロップ３９９を通じてＦＩＦＯにクロックされる。ＦＩＦＯ記憶要素の平衡化及びその制御は、当該データ記憶デバイスに対してよく知られている設計の実施から理解され得る。
【００３７】
本発明の他の実施例は、データがクロックドメイン境界部の間で書き込まれない期間の間の電力の多大な低減に向けられる。データがクロックドメイン境界部の間で書き込まれないとき、図３Ａの送信クロック信号３４２は生成される必要がなく、不活性ＦＩＦＯデータ記憶回路は送信クロック信号によってトリガ／ドライブされる必要がない。このクロックディスエーブル（クロック不活性化）（ｃｌｏｃｋ−ｄｉｓａｂｌｅ）特性は、例えば、送信クロック生成回路３３１の上部フリップフロップのデータ入力部（Ｄ−ｉｎｐｕｔ）におけるインバータを、データ制御信号パス３２３に接続される第二の入力部を有する排他的否定論理和（Ｅｘｃｌｕｓｉｖｅ  ＮＯＲ（ＸＮＯＲ））ゲートで置換することによって実現され得る。この態様において、ＦＩＦＯへの書き込みがなされるまで送信クロック信号３４２は自動的に停止される。更なる利点は、クロックドメインを相互接続する本来的に長いバス線に関する電力の低減にある。当該バス線は比較的高い容量を示すため、送信クロック信号をディスエーブルすることは通常もたらされるドライブ電流を低減する。
【００３８】
本発明は、いくつかの特定の実施例を参照して記載される一方、当業者はそれに対して多くの変形例が可能であることを認識するであろう。例えば、本発明の方法は、書き込みクロッキング信号（ｗｒｉｔｅ  ｃｌｏｃｋｉｎｇ  ｓｉｇｎａｌ）をバッファに拡張する際にスキューが問題となる場合、バッファ入力レートと異なるバッファ出力レートを有するリモート情報バッファリング装置（ｒｅｍｏｔｅ  ｉｎｆｏｒｍａｔｉｏｎ  ｂｕｆｆｅｒｉｎｇ  ａｒｒａｎｇｅｍｅｎｔ）に適用可能である。これら及び他の変形例及び／又は更なる例が、従属請求項において示される、本発明の範囲を逸脱することなく、もたらされ得る。
【００３９】
本発明の実施例は、
ソースクロックドメインから受信クロックドメインにデータを伝送するための回路装置であって、前記ソース及び受信クロックドメインが非同期ソース及び受信クロックを各々使用し、前記手段が、
前記ソースクロックドメインにおいて、前記ソースクロックに同期する送信クロック信号を生成する第一のクロック生成器と、
書き込みアドレス情報を前記ソースクロックドメインにおけるデータに結びつけると共に、送信クロック信号及び結びつけられた書き込みアドレス情報を備えるデータを受信クロックドメインに送信する第一の処理回路と、
記憶要素を示すアドレスにおいてデータを書き込み、前記示されたアドレスは前記結びつけられた書き込みアドレス情報に対応し、前記記憶要素は受信クロックドメインにおいて位置され、前記データは前記送信クロック信号に同期して前記記憶要素にクロック入力される、受信クロックドメインにおける第二の処理回路と、
前記データを、受信クロックに同期して記憶要素から更に読み出す第二の処理回路とを有する装置である。
【００４０】
前記回路装置において、第一の処理回路は更に、データ制御信号を、ソースクロックドメインから受信クロックドメインにおける記憶要素に送信し、前記記憶要素は、データ制御信号に応答して前記データを受信する。
【００４１】
前記回路装置は更に、結びつけられた書き込みアドレス情報を備えるデータを通信するために第一の処理回路と第二の処理回路との間に結びつけられる、最大で
【数７】
2005507608.tif 000007
の電気信号パスを有する。ここで前記データはＮビット幅であり、前記記憶要素はＭの位置深さであり、Ｍは２のべき乗である。
【００４２】
前記回路装置は更に、結びつけられた書き込みアドレス情報を備えるデータを通信するために第一の処理回路と第二の処理回路との間に結びつけられる、最大で
【数８】
2005507608.tif 000008
の電気信号パスを有する。ここで前記データはＮビット幅であり、前記記憶要素はＭの位置深さであり、Ｍは２のべき乗ではない。
【００４３】
前記回路装置は更に、第一の処理回路が前記結びつけられた書き込みアドレス情報を備えるデータを送信していない期間の間、送信クロック信号をディスエーブルする回路を有する。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施例による、複数のクロックドメインを有する集積回路を示すブロック図である。
【図２】本発明の実施例による、２クロック分離ＦＩＦＯ（ｔｗｏ−ｃｌｏｃｋ  ｄｉｓｓｅｃｔｅｄ  ＦＩＦＯ）に対するブロック図である。
【図３Ａ】本発明の実施例による、ソース同期ドライバ及び受信器論理回路に対する概略的なブロック図である。
【図３Ｂ】本発明の実施例による、ドライバ論理回路に対するタイミング図である。
【図１】
2005507608.tif 000011
【図２】
2005507608.tif 000012
【図３Ａ】
2005507608.tif 000013
【国際公開パンフレット】
2005507608.tif 000014
2005507608.tif 000015
2005507608.tif 000016
2005507608.tif 000017
2005507608.tif 000018
2005507608.tif 000019
2005507608.tif 000020
2005507608.tif 000021
2005507608.tif 000022
2005507608.tif 000023
2005507608.tif 000024
2005507608.tif 000025
2005507608.tif 000026
2005507608.tif 000027
2005507608.tif 000028
2005507608.tif 000029
2005507608.tif 000030
2005507608.tif 000031
【国際公開パンフレット（コレクトバージョン）】
2005507608.tif 000032
【国際調査報告】
2005507608.tif 000033
2005507608.tif 000034