JP2001265715A - 2つの非同期クロック・ドメイン境界にわたる処理量を維持するためのパイプライン処理の同期装置 - Google Patents
2つの非同期クロック・ドメイン境界にわたる処理量を維持するためのパイプライン処理の同期装置Info
- Publication number
- JP2001265715A JP2001265715A JP2001034039A JP2001034039A JP2001265715A JP 2001265715 A JP2001265715 A JP 2001265715A JP 2001034039 A JP2001034039 A JP 2001034039A JP 2001034039 A JP2001034039 A JP 2001034039A JP 2001265715 A JP2001265715 A JP 2001265715A
- Authority
- JP
- Japan
- Prior art keywords
- domain
- clock
- signal
- data
- synchronizer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/10—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Information Transfer Systems (AREA)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
- Communication Control (AREA)
Abstract
(57)【要約】
【課題】 クロック速度の異なるデバイス間で同期をと
ってデータ転送を可能にする同期装置を提供する。 【解決手段】 2つのクロックの間でデータのパイプラ
イン処理を行う。複数の各同期装置ステージはデータ・
レジスタ601−605と同期回路611−615を含
む。同期回路は第1のクロックの書き込み要求信号と第
2のクロック信号とを同期させる。書込みポインタ62
5により、1つの同期装置ステージは第1のクロックの
書き込み要求信号を受けてデータを書き込み、書込みポ
インタを増分して次の同期装置ステージを表示する。読
取りポインタ635により、出力が第2のクロック信号
と同期すると表示された読取りステージは対応するデー
タ・レジスタからデータを取り出し、読取りポインタを
増分して次の同期装置ステージを表示する。複数の第1
のドメイン書き込み要求信号は、対応する同期装置ステ
ージの中で第2のクロック信号と、同時に種々の同期状
態にある。
ってデータ転送を可能にする同期装置を提供する。 【解決手段】 2つのクロックの間でデータのパイプラ
イン処理を行う。複数の各同期装置ステージはデータ・
レジスタ601−605と同期回路611−615を含
む。同期回路は第1のクロックの書き込み要求信号と第
2のクロック信号とを同期させる。書込みポインタ62
5により、1つの同期装置ステージは第1のクロックの
書き込み要求信号を受けてデータを書き込み、書込みポ
インタを増分して次の同期装置ステージを表示する。読
取りポインタ635により、出力が第2のクロック信号
と同期すると表示された読取りステージは対応するデー
タ・レジスタからデータを取り出し、読取りポインタを
増分して次の同期装置ステージを表示する。複数の第1
のドメイン書き込み要求信号は、対応する同期装置ステ
ージの中で第2のクロック信号と、同時に種々の同期状
態にある。
Description
【0001】
【発明の属する技術分野】本発明の技術分野はディジタ
ル・デバイス機能ブロックについてであり、一般にマイ
クロプロセッサ設計の領域に用いられ、より特定する
と、ディジタル・シグナル・プロセッサ・デバイスの領
域に用いられる。
ル・デバイス機能ブロックについてであり、一般にマイ
クロプロセッサ設計の領域に用いられ、より特定する
と、ディジタル・シグナル・プロセッサ・デバイスの領
域に用いられる。
【0002】
【従来の技術】本発明は、英国特許出願番号第9909
19.6号、「ハブおよびポート構造を持つ転送コント
ローラ」、1999年4月16日出願、に用いられる。
ハブとポートを持つ転送コントローラは、複雑なディジ
タル・システムにおけるデータ転送方法を大幅に改善し
たものである。この転送コントローラにより、かかるシ
ステムの周辺でのポート・インターフェースを均一に実
現することができる。かかるポートの一部は遅くてデー
タ処理量が比較的小さく、また一部は比較的速くて中央
プロセッサ・ユニットの処理量と速度を有する。デバイ
スのかかる2つの部分は2つの異なるクロック信号で駆
動されることが多い。第1のクロック信号はコアまたは
主プロセッサ・クロックと呼ばれる高い周波数を持つ。
第2のクロック信号では周辺デバイス・クロックと呼ば
れる。
19.6号、「ハブおよびポート構造を持つ転送コント
ローラ」、1999年4月16日出願、に用いられる。
ハブとポートを持つ転送コントローラは、複雑なディジ
タル・システムにおけるデータ転送方法を大幅に改善し
たものである。この転送コントローラにより、かかるシ
ステムの周辺でのポート・インターフェースを均一に実
現することができる。かかるポートの一部は遅くてデー
タ処理量が比較的小さく、また一部は比較的速くて中央
プロセッサ・ユニットの処理量と速度を有する。デバイ
スのかかる2つの部分は2つの異なるクロック信号で駆
動されることが多い。第1のクロック信号はコアまたは
主プロセッサ・クロックと呼ばれる高い周波数を持つ。
第2のクロック信号では周辺デバイス・クロックと呼ば
れる。
【0003】
【発明が解決しようとする課題】高速のコア・デバイス
が比較的低速の周辺デバイスとインターフェースするた
めには、外部ポート・インターフェースで同期をとる必
要がある。要求や、データや、任意のマルチビット量を
同期させるための従来の一般的な方法では、情報をレジ
スタに書き込んだ後で1つの信号を他のドメインに同期
させてデータが有効且つ安定であることを示し、これに
よりデータを他のクロック・ドメインに読み取ることが
できる。データの全てのビットを個別に同期させると、
データが信頼できなくなることがあるので望ましくな
い。同期装置がデータをサンプリングする時点でデータ
を同期装置に与えた場合、あるデータはこのサイクルで
サンプリングされ、あるデータは1サイクル後にサンプ
リングされることがある。任意の一般的なクロック周波
数関係を用いることが可能なときは、双方向に同期させ
ることも必要である。
が比較的低速の周辺デバイスとインターフェースするた
めには、外部ポート・インターフェースで同期をとる必
要がある。要求や、データや、任意のマルチビット量を
同期させるための従来の一般的な方法では、情報をレジ
スタに書き込んだ後で1つの信号を他のドメインに同期
させてデータが有効且つ安定であることを示し、これに
よりデータを他のクロック・ドメインに読み取ることが
できる。データの全てのビットを個別に同期させると、
データが信頼できなくなることがあるので望ましくな
い。同期装置がデータをサンプリングする時点でデータ
を同期装置に与えた場合、あるデータはこのサイクルで
サンプリングされ、あるデータは1サイクル後にサンプ
リングされることがある。任意の一般的なクロック周波
数関係を用いることが可能なときは、双方向に同期させ
ることも必要である。
【0004】
【課題を解決するための手段】本発明は、第1のクロッ
ク・ドメインと、前記第1のクロック・ドメインに同期
する第2のクロック・ドメインとの間の同期をとるため
のデータ同期装置である。本発明は、デバイスの別の部
分で2つのクロックを用いる任意のディジタル・デバイ
スに一般に適用することができる。特に相対高速部と相
対低速部との間にデータを転送するのに有用である。通
常は、高速部はプロセッサ・コアであり、相対低速部は
入出力(I/O)デバイスである。
ク・ドメインと、前記第1のクロック・ドメインに同期
する第2のクロック・ドメインとの間の同期をとるため
のデータ同期装置である。本発明は、デバイスの別の部
分で2つのクロックを用いる任意のディジタル・デバイ
スに一般に適用することができる。特に相対高速部と相
対低速部との間にデータを転送するのに有用である。通
常は、高速部はプロセッサ・コアであり、相対低速部は
入出力(I/O)デバイスである。
【0005】本発明は、非同期クロック信号を持つ2つ
のクロック・ドメインの間でデータのパイプライン処理
を行うことを可能にする。本発明は浅い循環先入れ先出
し(FIFO)メモリ要素を用い、全ての語はパイプラ
イン処理された同期制御信号の管理の下に所定のステー
ジの間で授受される。本発明は複数の同期装置ステージ
を含む。各同期装置ステージはデータ・レジスタと同期
回路を含む。同期回路は第1のドメインの書込み要求信
号を受け、この第1のドメインの書込み要求信号に応じ
且つ第2のクロック信号と同期する第2のドメインの読
取り可能信号を出す。書込みポインタは、同期装置ステ
ージの中の1つを書込みステージとする表示を記憶す
る。この書込みポインタの表示により、第1のドメイン
の書込み要求信号を受けると、表示された書込み同期装
置ステージは第1のドメインのデータを対応するデータ
・レジスタに書き込む。次に書込みポインタを増分し
て、循環シーケンスの中の次の同期装置ステージを表示
する。
のクロック・ドメインの間でデータのパイプライン処理
を行うことを可能にする。本発明は浅い循環先入れ先出
し(FIFO)メモリ要素を用い、全ての語はパイプラ
イン処理された同期制御信号の管理の下に所定のステー
ジの間で授受される。本発明は複数の同期装置ステージ
を含む。各同期装置ステージはデータ・レジスタと同期
回路を含む。同期回路は第1のドメインの書込み要求信
号を受け、この第1のドメインの書込み要求信号に応じ
且つ第2のクロック信号と同期する第2のドメインの読
取り可能信号を出す。書込みポインタは、同期装置ステ
ージの中の1つを書込みステージとする表示を記憶す
る。この書込みポインタの表示により、第1のドメイン
の書込み要求信号を受けると、表示された書込み同期装
置ステージは第1のドメインのデータを対応するデータ
・レジスタに書き込む。次に書込みポインタを増分し
て、循環シーケンスの中の次の同期装置ステージを表示
する。
【0006】読取りポインタは同期装置ステージの中の
1つを読取りステージとする表示を記憶する。読取りポ
インタの表示により、第2のクロック信号と同期する対
応する第2のドメイン読取り可能信号が出力されると、
表示された読取りステージは対応するデータ・レジスタ
から第2のドメインのデータを呼び出す。次に読取りポ
インタを増分して、循環シーケンスの中の次の同期装置
ステージを表示する。マルチプレクサは、読取りポイン
タが示すデータ・レジスタからの出力データを選択す
る。このように、複数の第1のドメインの書き込み要求
信号は、同期装置ステージの中の対応するステージで第
2のクロック信号と同期する種々の状態に同時になる。
1つを読取りステージとする表示を記憶する。読取りポ
インタの表示により、第2のクロック信号と同期する対
応する第2のドメイン読取り可能信号が出力されると、
表示された読取りステージは対応するデータ・レジスタ
から第2のドメインのデータを呼び出す。次に読取りポ
インタを増分して、循環シーケンスの中の次の同期装置
ステージを表示する。マルチプレクサは、読取りポイン
タが示すデータ・レジスタからの出力データを選択す
る。このように、複数の第1のドメインの書き込み要求
信号は、同期装置ステージの中の対応するステージで第
2のクロック信号と同期する種々の状態に同時になる。
【0007】
【発明の実施の形態】本発明は、転送コントローラ・ハ
ブとその外部ポートとの間で、ハブからポートに送られ
る要求/書込みデータ信号と、ポートからハブに送られ
るデータ読取り信号を授受することを可能にする方法を
提供する。どちらの場合も、ハブ・クロックとポート・
クロックとの間の周波数関係を完全に任意にする方法が
不可欠である。通常の動作では、これらの2つのクロッ
クの間の周波数関係には少なくとも多少の制限があるの
が普通である。しかし本発明を用いると、アプリケーシ
ョンで必要であれば任意の大きさだけポートを遅らせる
ことができる。また、ハブは非常に低周波で動作するが
一方で通常の速度で動作するポートに接続する、という
回路内エミュレーションが可能になる。
ブとその外部ポートとの間で、ハブからポートに送られ
る要求/書込みデータ信号と、ポートからハブに送られ
るデータ読取り信号を授受することを可能にする方法を
提供する。どちらの場合も、ハブ・クロックとポート・
クロックとの間の周波数関係を完全に任意にする方法が
不可欠である。通常の動作では、これらの2つのクロッ
クの間の周波数関係には少なくとも多少の制限があるの
が普通である。しかし本発明を用いると、アプリケーシ
ョンで必要であれば任意の大きさだけポートを遅らせる
ことができる。また、ハブは非常に低周波で動作するが
一方で通常の速度で動作するポートに接続する、という
回路内エミュレーションが可能になる。
【0008】ハブおよびポート構造を持つ転送コントロ
ーラの開発に共通する設計思想を適用して、本発明はハ
ブの帯域幅が決して浪費されないようにすることを目指
す。このために重要なのは、要求待ち行列をポートから
出すときは非常に遅いが、ポートに入れるときは可能な
最大ハブ速度で行うことができることである。このよう
にプロセスの初めには要求の初期バーストを生成し、そ
の後で通常ポートが要求を処理する速度で要求を生成す
る。これにより、他の優先度の低い要求のハブの帯域幅
を動作期間中のできるだけ早い時期に利用可能にするこ
とができる。重要な結果は、ハブはサイクル毎に1つの
速度で要求を生成し、これをポートに転送する同期装置
を用いることによりこれらの読取り/書込み命令を許容
できる速度で放送するという要求を十分満たすことがで
きる、ということである。
ーラの開発に共通する設計思想を適用して、本発明はハ
ブの帯域幅が決して浪費されないようにすることを目指
す。このために重要なのは、要求待ち行列をポートから
出すときは非常に遅いが、ポートに入れるときは可能な
最大ハブ速度で行うことができることである。このよう
にプロセスの初めには要求の初期バーストを生成し、そ
の後で通常ポートが要求を処理する速度で要求を生成す
る。これにより、他の優先度の低い要求のハブの帯域幅
を動作期間中のできるだけ早い時期に利用可能にするこ
とができる。重要な結果は、ハブはサイクル毎に1つの
速度で要求を生成し、これをポートに転送する同期装置
を用いることによりこれらの読取り/書込み命令を許容
できる速度で放送するという要求を十分満たすことがで
きる、ということである。
【0009】図1は、ハブとポートを持つ転送コントロ
ーラの主な機能のブロック図を示す。ハブとポートを持
つ転送コントローラは基本的にデータ転送コントローラ
であって、要求待ち行列マネージャ100をそのフロン
トエンド部に備えて転送要求パケットの形のデータを受
け、優先度を決め、送出する。要求待ち行列マネージャ
100はハブ・ユニット110内でチャンネル・レジス
タ120に接続する。チャンネル・レジスタ120はデ
ータ転送要求パケットを受けて、まずデータの優先度を
決め、それぞれが優先度レベルを表すNチャンネルの中
の1つにパケットを割り当てる。これらのチャンネル・
レジスタは、原始(読取り)動作と宛先(書込み)動作
のためのアドレス計算ユニットとして、原始制御パイプ
ライン130と宛先制御パイプライン140とにインタ
ーフェースする。
ーラの主な機能のブロック図を示す。ハブとポートを持
つ転送コントローラは基本的にデータ転送コントローラ
であって、要求待ち行列マネージャ100をそのフロン
トエンド部に備えて転送要求パケットの形のデータを受
け、優先度を決め、送出する。要求待ち行列マネージャ
100はハブ・ユニット110内でチャンネル・レジス
タ120に接続する。チャンネル・レジスタ120はデ
ータ転送要求パケットを受けて、まずデータの優先度を
決め、それぞれが優先度レベルを表すNチャンネルの中
の1つにパケットを割り当てる。これらのチャンネル・
レジスタは、原始(読取り)動作と宛先(書込み)動作
のためのアドレス計算ユニットとして、原始制御パイプ
ライン130と宛先制御パイプライン140とにインタ
ーフェースする。
【0010】これらのパイプラインからの出力はM個の
ポートに放送される。かかる6個のポート150から1
55を図1に示す。これらは、主プロセッサ・クロック
周波数か、またはそれより低い外部デバイス・クロック
周波数でクロックされる。1つのポート(例えばポート
153の宛先書込みアドレスを有するポート150)か
ら読み取られたデータは、経路選択ユニット160を通
してハブ宛先制御パイプライン140に返される。
ポートに放送される。かかる6個のポート150から1
55を図1に示す。これらは、主プロセッサ・クロック
周波数か、またはそれより低い外部デバイス・クロック
周波数でクロックされる。1つのポート(例えばポート
153の宛先書込みアドレスを有するポート150)か
ら読み取られたデータは、経路選択ユニット160を通
してハブ宛先制御パイプライン140に返される。
【0011】各ポートは2つのセクションに分割され
る。アプリケーション専用の設計はアプリケーション・
ユニットすなわちAUと呼ばれる。これはホスト・ポー
ト・インターフェース(HPI)または外部メモリー・
インターフェース(EMIF)である。アプリケーショ
ン・ユニットとハブとの間は、ハブ・インターフェース
・ユニットすなわちHIUと呼ばれるモジュールであ
る。
る。アプリケーション専用の設計はアプリケーション・
ユニットすなわちAUと呼ばれる。これはホスト・ポー
ト・インターフェース(HPI)または外部メモリー・
インターフェース(EMIF)である。アプリケーショ
ン・ユニットとハブとの間は、ハブ・インターフェース
・ユニットすなわちHIUと呼ばれるモジュールであ
る。
【0012】ハブ・インターフェース・ユニットは複数
の機能を行う。ハブ・インターフェース・ユニットはデ
ータの読取りおよび書込みをある程度緩衝して書込み駆
動処理を支援する。ハブ・インターフェース・ユニット
は転送コントローラの原始制御パイプライン130と宛
先制御パイプライン140からの読取りおよび書込み命
令の優先度を決め、ポートからは両アクセス方式を統合
した単一インターフェースに見えるようにする。ハブ・
インターフェース・ユニットの最後の機能は、外部ポー
ト・インターフェース・クロック・ドメインとコア・プ
ロセッサ・クロック・ドメインとを切り離すことであ
る。
の機能を行う。ハブ・インターフェース・ユニットはデ
ータの読取りおよび書込みをある程度緩衝して書込み駆
動処理を支援する。ハブ・インターフェース・ユニット
は転送コントローラの原始制御パイプライン130と宛
先制御パイプライン140からの読取りおよび書込み命
令の優先度を決め、ポートからは両アクセス方式を統合
した単一インターフェースに見えるようにする。ハブ・
インターフェース・ユニットの最後の機能は、外部ポー
ト・インターフェース・クロック・ドメインとコア・プ
ロセッサ・クロック・ドメインとを切り離すことであ
る。
【0013】図2は、同期装置200を持つハブ・イン
ターフェース・ユニットの高レベルのブロック図を示
す。これは、ポインタ625および635と、FIFO
レジスタ・ステージ601から605と、アプリケーシ
ョン・ユニット208とのそのインターフェースを含
む。ハブ・インターフェース・ユニットの主な機能ブロ
ックは、ハブ・インターフェース・ユニット制御論理2
07と、ハブ・インターフェース・ユニット読取り待ち
行列205と、ハブ・インターフェース・ユニット書き
込み要求待ち行列206と、ハブ・インターフェース・
ユニット読取り応答待ち行列203を含む。原始制御パ
イプライン入力649と宛先制御パイプライン入力65
9は、ハブ・ユニット110からハブ・インターフェー
ス・ユニットの読取り待ち行列205と書き込み要求待
ち行列206にそれぞれ送られる。ハブ・インターフェ
ース・ユニット制御論理207は、命令やアドレスや書
込みデータを含むこれらの語を処理する。ハブ・インタ
ーフェース・ユニットは、同期装置220に送られる例
えば書込み要求信号321などの命令信号を生成する。
またハブ・インターフェース・ユニットは、書込みデー
タ660と共にアプリケーション・ユニットに送られる
例えば非空(not-empty)信号332などの状態信号を生
成する。読取り動作では、アプリケーション・ユニット
はそのデータ690をハブ・インターフェース・ユニッ
トに送る。
ターフェース・ユニットの高レベルのブロック図を示
す。これは、ポインタ625および635と、FIFO
レジスタ・ステージ601から605と、アプリケーシ
ョン・ユニット208とのそのインターフェースを含
む。ハブ・インターフェース・ユニットの主な機能ブロ
ックは、ハブ・インターフェース・ユニット制御論理2
07と、ハブ・インターフェース・ユニット読取り待ち
行列205と、ハブ・インターフェース・ユニット書き
込み要求待ち行列206と、ハブ・インターフェース・
ユニット読取り応答待ち行列203を含む。原始制御パ
イプライン入力649と宛先制御パイプライン入力65
9は、ハブ・ユニット110からハブ・インターフェー
ス・ユニットの読取り待ち行列205と書き込み要求待
ち行列206にそれぞれ送られる。ハブ・インターフェ
ース・ユニット制御論理207は、命令やアドレスや書
込みデータを含むこれらの語を処理する。ハブ・インタ
ーフェース・ユニットは、同期装置220に送られる例
えば書込み要求信号321などの命令信号を生成する。
またハブ・インターフェース・ユニットは、書込みデー
タ660と共にアプリケーション・ユニットに送られる
例えば非空(not-empty)信号332などの状態信号を生
成する。読取り動作では、アプリケーション・ユニット
はそのデータ690をハブ・インターフェース・ユニッ
トに送る。
【0014】ハブ・インターフェース・ユニットのかか
る主な機能ブロックは、宛先制御パイプライン140か
ら来るデータ650を、ハブ・インターフェース・ユニ
ットFIFOレジスタ・ステージ601から605を通
して、書込みデータ660を経てアプリケーション・ユ
ニット208に送る。同様に、アプリケーション・ユニ
ット208から返る読取りデータ690を、ハブ・イン
ターフェース・ユニットFIFOレジスタ・ステージ6
01から605を通して、読取りデータ680としてハ
ブ・インターフェース・ユニット読取り応答待ち行列2
03に入れる。次にこれを読取りデータ679として経
路選択ユニットに送る。図6に示す論理の2つの場合
(後で説明する)は図2のFIFOレジスタ・ステージ
601から605に含まれるということに注意していた
だきたい。第1の場合は、ハブ・インターフェース・ユ
ニットからアプリケーション・ユニットに書込みデータ
650および書込みデータ660としてデータを送る。
第2の場合は、アプリケーション・ユニットからハブ・
インターフェース・ユニットに読取りデータ690およ
び読取りデータ680としてデータを返す。
る主な機能ブロックは、宛先制御パイプライン140か
ら来るデータ650を、ハブ・インターフェース・ユニ
ットFIFOレジスタ・ステージ601から605を通
して、書込みデータ660を経てアプリケーション・ユ
ニット208に送る。同様に、アプリケーション・ユニ
ット208から返る読取りデータ690を、ハブ・イン
ターフェース・ユニットFIFOレジスタ・ステージ6
01から605を通して、読取りデータ680としてハ
ブ・インターフェース・ユニット読取り応答待ち行列2
03に入れる。次にこれを読取りデータ679として経
路選択ユニットに送る。図6に示す論理の2つの場合
(後で説明する)は図2のFIFOレジスタ・ステージ
601から605に含まれるということに注意していた
だきたい。第1の場合は、ハブ・インターフェース・ユ
ニットからアプリケーション・ユニットに書込みデータ
650および書込みデータ660としてデータを送る。
第2の場合は、アプリケーション・ユニットからハブ・
インターフェース・ユニットに読取りデータ690およ
び読取りデータ680としてデータを返す。
【0015】本発明の好ましい実施の態様では、ハブ・
インターフェース・ユニットはクロック・ドメインa
(主プロセッサ・クロック)内で動作する。アプリケー
ション・ユニットはクロック・ドメインB(アプリケー
ション・ユニット・クロック)内で動作する。通常、ク
ロックaはクロックBより周波数が高いが、必ずしもそ
うでないこともある。いずれにしても、かかる2つの機
能ユニットが2つの別のクロック・ドメイン内で正しく
動作するためには同期装置ブロック202が必要であ
る。この同期が本発明の主題である。
インターフェース・ユニットはクロック・ドメインa
(主プロセッサ・クロック)内で動作する。アプリケー
ション・ユニットはクロック・ドメインB(アプリケー
ション・ユニット・クロック)内で動作する。通常、ク
ロックaはクロックBより周波数が高いが、必ずしもそ
うでないこともある。いずれにしても、かかる2つの機
能ユニットが2つの別のクロック・ドメイン内で正しく
動作するためには同期装置ブロック202が必要であ
る。この同期が本発明の主題である。
【0016】同期遅れについて以下のことを考える。ク
ロック・ドメインa内の信号はドメインB内の2個のフ
リップフロップを通すことによりクロック・ドメインB
と同期させることができる、ということに注意していた
だきたい。これについては後で図4を参照して更に説明
する。2つのドメインの間の位相関係に従って、ドメイ
ンa信号をドメインB内で認識するには、1つのBクロ
ック・サイクルより大きく2つのBクロック・サイクル
より小さい端数のクロックだけかかる。更に、ドメイン
a信号はドメインaフリップフロップの出力でなければ
ならない。これが組合せ論理の出力の場合は、評価中の
信号の移行状態がドメインB内にサンプリングされて信
号の有効な状態と解釈される可能性がある。
ロック・ドメインa内の信号はドメインB内の2個のフ
リップフロップを通すことによりクロック・ドメインB
と同期させることができる、ということに注意していた
だきたい。これについては後で図4を参照して更に説明
する。2つのドメインの間の位相関係に従って、ドメイ
ンa信号をドメインB内で認識するには、1つのBクロ
ック・サイクルより大きく2つのBクロック・サイクル
より小さい端数のクロックだけかかる。更に、ドメイン
a信号はドメインaフリップフロップの出力でなければ
ならない。これが組合せ論理の出力の場合は、評価中の
信号の移行状態がドメインB内にサンプリングされて信
号の有効な状態と解釈される可能性がある。
【0017】ドメインa信号は、ドメインBのクロック
・エッジで捕らえられるのに十分な時間有効でなければ
ならない。したがって信号がドメインの間を通るには一
般に3フリップフロップ、最悪の場合は1つのaクロッ
ク・サイクルと2つのBクロック・サイクルを加算した
時間かかる。この必要な時間をTとする。同期させるド
メインa内の事象の時間間隔がTよりある程度長い場合
は、簡単な入力可能および出力可能制御を持つ一般的な
FIFOを用いればよい。
・エッジで捕らえられるのに十分な時間有効でなければ
ならない。したがって信号がドメインの間を通るには一
般に3フリップフロップ、最悪の場合は1つのaクロッ
ク・サイクルと2つのBクロック・サイクルを加算した
時間かかる。この必要な時間をTとする。同期させるド
メインa内の事象の時間間隔がTよりある程度長い場合
は、簡単な入力可能および出力可能制御を持つ一般的な
FIFOを用いればよい。
【0018】Tに制限を設けない更に一般的な方法は、
本発明の循環FIFOを用いる方法である。同期装置の
タスクの基本的な動作は次の通りである。ドメインaは
ドメインBに転送可能なデータを有することを知らせ
る。ドメインBはこのデータを受けたことをドメインa
に回答する。これによりドメインaは別のデータを送る
ことができる。
本発明の循環FIFOを用いる方法である。同期装置の
タスクの基本的な動作は次の通りである。ドメインaは
ドメインBに転送可能なデータを有することを知らせ
る。ドメインBはこのデータを受けたことをドメインa
に回答する。これによりドメインaは別のデータを送る
ことができる。
【0019】図3は、同期したクロックと制御を付随す
るFIFOステージに与え、かかる双方向同期装置の1
ステージの構成を示す。双方向同期装置の各ステージ
に、後で示すFIFOステージが付随する。図3の下側
の部分はドメインaを含む。ドメインa書き込みクロッ
ク320により、付随するFIFOステージの入力にデ
ータを書込む。図3の上側はドメインBを含む。ドメイ
ンB読取りクロック330により、付随するFIFOス
テージの出力からデータを読み取る。
るFIFOステージに与え、かかる双方向同期装置の1
ステージの構成を示す。双方向同期装置の各ステージ
に、後で示すFIFOステージが付随する。図3の下側
の部分はドメインaを含む。ドメインa書き込みクロッ
ク320により、付随するFIFOステージの入力にデ
ータを書込む。図3の上側はドメインBを含む。ドメイ
ンB読取りクロック330により、付随するFIFOス
テージの出力からデータを読み取る。
【0020】書き込み要求信号321が活動状態になる
と、同期装置データパスFIFOレジスタ・ステージ6
01から605への書込みを要求する。フル信号322
が活動状態になった場合はこの書込み要求は拒否され
る。FIFOは一杯で、直ちに書込み動作を行うことは
できない。同様に、読取り要求信号331が活動状態に
なると、同期装置データパスFIFOレジスタ・ステー
ジ601から605からの読取りを要求する。非空信号
332が活動状態になった場合にこの読取り要求は受け
付けられる。非空信号332は、別の有効な読取りデー
タがFIFO内にあることを示す。
と、同期装置データパスFIFOレジスタ・ステージ6
01から605への書込みを要求する。フル信号322
が活動状態になった場合はこの書込み要求は拒否され
る。FIFOは一杯で、直ちに書込み動作を行うことは
できない。同様に、読取り要求信号331が活動状態に
なると、同期装置データパスFIFOレジスタ・ステー
ジ601から605からの読取りを要求する。非空信号
332が活動状態になった場合にこの読取り要求は受け
付けられる。非空信号332は、別の有効な読取りデー
タがFIFO内にあることを示す。
【0021】図4は、図3の同期論理ブロック302お
よび312の詳細を示す。同期論理ブロック302で
は、ドメインB読取りクロック330が2個のフリップ
フロップ401および402に与えられる。フリップフ
ロップ401および402は前にこのFIFOステージ
でデータを入力したためにハイ状態にあると仮定する。
次のドメインB読取りクロック330に同期してフリッ
プフロップ401および402はクリアされる。
よび312の詳細を示す。同期論理ブロック302で
は、ドメインB読取りクロック330が2個のフリップ
フロップ401および402に与えられる。フリップフ
ロップ401および402は前にこのFIFOステージ
でデータを入力したためにハイ状態にあると仮定する。
次のドメインB読取りクロック330に同期してフリッ
プフロップ401および402はクリアされる。
【0022】図3に戻って、非同期エッジ検出器301
が新しい書込み入力信号を検出するとその出力はハイに
なる。したがって同期論理ブロック302の入力は再び
ハイになる。このため、フリップフロップ401および
402は更に2つのドメインB読取りクロック信号33
0の後でハイになる。その結果、書込み入力信号がドメ
インaで起動すると、同期論理ブロック302は活動状
態になって、ドメインBの読取り動作に同期する。
が新しい書込み入力信号を検出するとその出力はハイに
なる。したがって同期論理ブロック302の入力は再び
ハイになる。このため、フリップフロップ401および
402は更に2つのドメインB読取りクロック信号33
0の後でハイになる。その結果、書込み入力信号がドメ
インaで起動すると、同期論理ブロック302は活動状
態になって、ドメインBの読取り動作に同期する。
【0023】図4は、ドメインaの同期論理ブロック3
12の詳細を示す。同期論理ブロック312では、書込
みクロック320が2個のフリップフロップ411およ
び412に与えられる。フリップフロップ411および
412は前にこのFIFOステージでデータを読み取っ
たためにハイ状態にあると仮定する。次のドメインaク
ロック信号320に同期してフリップフロップ411お
よび412はクリアされる。
12の詳細を示す。同期論理ブロック312では、書込
みクロック320が2個のフリップフロップ411およ
び412に与えられる。フリップフロップ411および
412は前にこのFIFOステージでデータを読み取っ
たためにハイ状態にあると仮定する。次のドメインaク
ロック信号320に同期してフリップフロップ411お
よび412はクリアされる。
【0024】図3に戻って、非同期エッジ検出器311
が新しい読取り入力信号を検出するとその出力はハイに
なる。したがって同期論理ブロック312の入力は再び
ハイになる。このため、フリップフロップ411および
412は更に2つのドメインa書込みクロック信号32
0の後でハイになる。その結果、読取り入力信号がドメ
インBで起動すると、同期論理ブロック312は活動状
態になってドメインaの書込み動作に同期する。
が新しい読取り入力信号を検出するとその出力はハイに
なる。したがって同期論理ブロック312の入力は再び
ハイになる。このため、フリップフロップ411および
412は更に2つのドメインa書込みクロック信号32
0の後でハイになる。その結果、読取り入力信号がドメ
インBで起動すると、同期論理ブロック312は活動状
態になってドメインaの書込み動作に同期する。
【0025】図5は、図3に示した非同期エッジ検出器
301および311の詳細を示す。図5のドメインBの
非同期エッジ検出器301では、ドメインB読取りクロ
ック330が2個のフリップフロップ501および50
2に与えられる。これらのフリップフロップへの同期ブ
ロック・クリア信号352は同期しており、アクティブ
・ハイである。次に入力信号371がハイで、且つ同期
ブロック・クリア信号352とフリップフロップ501
および502の各D入力544および545との間にイ
ンバータ542があると、フリップフロップ501およ
び502のQ出力はドメインB読取りクロック330の
立上がりエッジで共にローになる。各フリップフロップ
501および502のアクティブ・ローのセット入力5
46および548は非同期である。かかるセット入力5
46および548がローになると、フリップフロップ5
01および502の各Q出力550および351はハイ
になる。
301および311の詳細を示す。図5のドメインBの
非同期エッジ検出器301では、ドメインB読取りクロ
ック330が2個のフリップフロップ501および50
2に与えられる。これらのフリップフロップへの同期ブ
ロック・クリア信号352は同期しており、アクティブ
・ハイである。次に入力信号371がハイで、且つ同期
ブロック・クリア信号352とフリップフロップ501
および502の各D入力544および545との間にイ
ンバータ542があると、フリップフロップ501およ
び502のQ出力はドメインB読取りクロック330の
立上がりエッジで共にローになる。各フリップフロップ
501および502のアクティブ・ローのセット入力5
46および548は非同期である。かかるセット入力5
46および548がローになると、フリップフロップ5
01および502の各Q出力550および351はハイ
になる。
【0026】非同期エッジ検出器301は次のシーケン
スを行う。同期論理ブロック302からの同期ブロック
・クリア信号352がハイになると、インバータ542
を介して入力544および545はローになる。ドメイ
ンB読取りクロック信号330の正のエッジが1つ来る
と、フリップフロップ501および502のQ出力は共
にローになる。次に入力信号371が数ナノ秒程度の短
時間ローになると、フリップフロップ501は非同期で
直ちにハイにセットされる。入力信号371がハイ状態
に戻ると、フリップフロップ502は非同期でハイにセ
ットされる。フリップフロップ502がハイになるとい
うことは、入力信号371は今はハイであり前はローで
あったことを示す。このようにして非同期エッジ検出器
301は立上がりエッジを検出する。
スを行う。同期論理ブロック302からの同期ブロック
・クリア信号352がハイになると、インバータ542
を介して入力544および545はローになる。ドメイ
ンB読取りクロック信号330の正のエッジが1つ来る
と、フリップフロップ501および502のQ出力は共
にローになる。次に入力信号371が数ナノ秒程度の短
時間ローになると、フリップフロップ501は非同期で
直ちにハイにセットされる。入力信号371がハイ状態
に戻ると、フリップフロップ502は非同期でハイにセ
ットされる。フリップフロップ502がハイになるとい
うことは、入力信号371は今はハイであり前はローで
あったことを示す。このようにして非同期エッジ検出器
301は立上がりエッジを検出する。
【0027】同様に、ドメインaの非同期エッジ検出器
311では、ドメインa書込みクロック320が2個の
フリップフロップ511および512に与えられる。こ
れらのフリップフロップへの同期ブロック・クリア信号
362は同期しており、アクティブ・ハイである。次に
入力信号381がハイで、且つ同期ブロック・クリア信
号362とフリップフロップ511および512の各D
入力544および545との間にインバータ542があ
ると、フリップフロップ511および512のQ出力は
ドメインa書込みクロック320の立上がりエッジで共
にローになる。各フリップフロップ511および512
のアクティブ・ローのセット入力546および548は
非同期である。かかるセット入力546および548が
ローになると、フリップフロップ511および512の
各Q出力560および361はハイになる。
311では、ドメインa書込みクロック320が2個の
フリップフロップ511および512に与えられる。こ
れらのフリップフロップへの同期ブロック・クリア信号
362は同期しており、アクティブ・ハイである。次に
入力信号381がハイで、且つ同期ブロック・クリア信
号362とフリップフロップ511および512の各D
入力544および545との間にインバータ542があ
ると、フリップフロップ511および512のQ出力は
ドメインa書込みクロック320の立上がりエッジで共
にローになる。各フリップフロップ511および512
のアクティブ・ローのセット入力546および548は
非同期である。かかるセット入力546および548が
ローになると、フリップフロップ511および512の
各Q出力560および361はハイになる。
【0028】非同期エッジ検出器311は次のシーケン
スを行う。同期論理ブロック312からの同期ブロック
・クリア信号362がハイになると、インバータ542
を介して入力544および545はローになる。ドメイ
ンa書込みクロック信号320の正のエッジが1つ来る
と、フリップフロップ511および512のQ出力は共
にローになる。次に入力信号381が数ナノ秒程度の短
時間ローになると、フリップフロップ511は非同期で
直ちにハイにセットされる。入力信号381がハイ状態
に戻ると、フリップフロップ512は非同期でハイにセ
ットされる。フリップフロップ512がハイになるとい
うことは、入力信号381は今はハイであり前はローで
あったことを示す。このようにして非同期エッジ検出器
311は立上がりエッジを検出する。
スを行う。同期論理ブロック312からの同期ブロック
・クリア信号362がハイになると、インバータ542
を介して入力544および545はローになる。ドメイ
ンa書込みクロック信号320の正のエッジが1つ来る
と、フリップフロップ511および512のQ出力は共
にローになる。次に入力信号381が数ナノ秒程度の短
時間ローになると、フリップフロップ511は非同期で
直ちにハイにセットされる。入力信号381がハイ状態
に戻ると、フリップフロップ512は非同期でハイにセ
ットされる。フリップフロップ512がハイになるとい
うことは、入力信号381は今はハイであり前はローで
あったことを示す。このようにして非同期エッジ検出器
311は立上がりエッジを検出する。
【0029】図6は、図2の同期装置/ポインタFIF
O202のFIFOレジスタステージ601から605
と、マルチステージ双方向同期装置611から615
と、書込みポインタ/デコーダ625と、読込みポイン
タ/デコーダ635を示す。FIFOレジスタ・ステー
ジの番号は601、602、603、604、605で
ある。双方向同期装置ブロック611、612、61
3、614、615は図3、4、5で説明した全ての論
理を含む。読取り要求信号331、非空信号332、書
込み要求信号321、フル信号322は制御情報を双方
向に伝え、これらの信号の状態と書込みおよび読取りポ
インタに従って、個別のFIFOステージでのデータの
書込みまたはFIFOからのデータの読取りを制御す
る。
O202のFIFOレジスタステージ601から605
と、マルチステージ双方向同期装置611から615
と、書込みポインタ/デコーダ625と、読込みポイン
タ/デコーダ635を示す。FIFOレジスタ・ステー
ジの番号は601、602、603、604、605で
ある。双方向同期装置ブロック611、612、61
3、614、615は図3、4、5で説明した全ての論
理を含む。読取り要求信号331、非空信号332、書
込み要求信号321、フル信号322は制御情報を双方
向に伝え、これらの信号の状態と書込みおよび読取りポ
インタに従って、個別のFIFOステージでのデータの
書込みまたはFIFOからのデータの読取りを制御す
る。
【0030】書込みはステージ601からステージ60
5に昇順に進んだ後、601から再開する。このように
FIFO書込みポインタ/デコーダ625は循環FIF
O動作を指示する。同様に、読取りはステージ601か
らステージ605に昇順に進んだ後、601から再開す
る。このようにFIFO読取りポインタ/デコーダ63
5も循環FIFO読取り動作を指示する。
5に昇順に進んだ後、601から再開する。このように
FIFO書込みポインタ/デコーダ625は循環FIF
O動作を指示する。同様に、読取りはステージ601か
らステージ605に昇順に進んだ後、601から再開す
る。このようにFIFO読取りポインタ/デコーダ63
5も循環FIFO読取り動作を指示する。
【0031】同期装置の動作により、書込みを行うのは
そのステージに活動状態の書込み可能信号624入力を
受けたレジスタ・ステージだけである。また活動状態の
ステージは空でなければならない。すなわち、前に入力
がなかったか、または対応するフル・ビット信号626
が示すようにそのステージの最後のエントリはすでに読
み取られている。書込みデータ650は全てのレジスタ
・ステージに並列に与えられるが、書込み可能信号62
4により書き込むよう選択されるレジスタ・ステージは
1つだけである。同様に、同期装置の動作により、読取
りを行うのはそのステージに活動状態の読取り可能信号
634入力を受けたレジスタ・ステージだけである。活
動状態のレジスタ・ステージはすでにエントリを受けて
いる。読取りポインタに対応するマルチプレクサ選択信
号637により、マルチプレクサ685から出力する読
取りデータ680が選択される。
そのステージに活動状態の書込み可能信号624入力を
受けたレジスタ・ステージだけである。また活動状態の
ステージは空でなければならない。すなわち、前に入力
がなかったか、または対応するフル・ビット信号626
が示すようにそのステージの最後のエントリはすでに読
み取られている。書込みデータ650は全てのレジスタ
・ステージに並列に与えられるが、書込み可能信号62
4により書き込むよう選択されるレジスタ・ステージは
1つだけである。同様に、同期装置の動作により、読取
りを行うのはそのステージに活動状態の読取り可能信号
634入力を受けたレジスタ・ステージだけである。活
動状態のレジスタ・ステージはすでにエントリを受けて
いる。読取りポインタに対応するマルチプレクサ選択信
号637により、マルチプレクサ685から出力する読
取りデータ680が選択される。
【0032】図6に示す論理の2つの場合は図2の各F
IFOレジスタ・ステージ601から605の中に含ま
れるということに注意していただきたい。第1の場合で
は、書込みデータはハブ・インターフェース・ユニット
から書込みデータ650と書込みデータ660を介して
アプリケーション・ユニットに送られる。第2の場合で
は、読取りデータはアプリケーション・ユニットから読
取りデータ690と読取りデータ680を介してハブ・
インターフェース・ユニットに返される。
IFOレジスタ・ステージ601から605の中に含ま
れるということに注意していただきたい。第1の場合で
は、書込みデータはハブ・インターフェース・ユニット
から書込みデータ650と書込みデータ660を介して
アプリケーション・ユニットに送られる。第2の場合で
は、読取りデータはアプリケーション・ユニットから読
取りデータ690と読取りデータ680を介してハブ・
インターフェース・ユニットに返される。
【0033】図7は、同期装置の動作の原理を流れ図の
形で示す。ハブ・インターフェースからアプリケーショ
ン・ユニットへの書き込み動作は次の通りである。書込
み要求信号321は、ドメインa書込みクロック信号3
20のアクティブ・エッジで(ブロック701)活動状
態になる(ブロック702)。ドメインa書込みクロッ
クと書込み要求信号を用いて、データをFIFOレジス
タ・ステージ601から605に書き込む(ブロック7
03)。これは1サイクルの間有効である。書込みポイ
ンタ625を増分する(ブロック704)。これにより
セット/リセット・ラッチ313をセットして、レジス
ターが一杯であることをフル信号322を介して示す
(ブロック705)。
形で示す。ハブ・インターフェースからアプリケーショ
ン・ユニットへの書き込み動作は次の通りである。書込
み要求信号321は、ドメインa書込みクロック信号3
20のアクティブ・エッジで(ブロック701)活動状
態になる(ブロック702)。ドメインa書込みクロッ
クと書込み要求信号を用いて、データをFIFOレジス
タ・ステージ601から605に書き込む(ブロック7
03)。これは1サイクルの間有効である。書込みポイ
ンタ625を増分する(ブロック704)。これにより
セット/リセット・ラッチ313をセットして、レジス
ターが一杯であることをフル信号322を介して示す
(ブロック705)。
【0034】フル信号322の立上がりエッジを非同期
エッジ検出器301が捕らえる(ブロック706)。非
同期エッジ検出器301の出力を同期論理ブロック30
2に送る(ブロック707)。同期論理ブロック302
の出力がドメインB内のセット/リセット・ラッチ30
3をセットして、レジスタが一杯であることを非空信号
を介して示す(ブロック708)。同期論理ブロック3
02の出力は非同期エッジ検出器301と同期論理ブロ
ック302をリセットする(ブロック709)。これに
より同期装置の出力は1サイクルの間だけハイになる。
エッジ検出器301が捕らえる(ブロック706)。非
同期エッジ検出器301の出力を同期論理ブロック30
2に送る(ブロック707)。同期論理ブロック302
の出力がドメインB内のセット/リセット・ラッチ30
3をセットして、レジスタが一杯であることを非空信号
を介して示す(ブロック708)。同期論理ブロック3
02の出力は非同期エッジ検出器301と同期論理ブロ
ック302をリセットする(ブロック709)。これに
より同期装置の出力は1サイクルの間だけハイになる。
【0035】図8は、逆方向の全く同じ過程を示す。図
8はアプリケーション・ユニットからハブ・インターフ
ェース・ユニットへの読取り動作を示す。読取り要求信
号331はドメインB読取りクロック信号330のアク
ティブ・エッジで(ブロック801)活動状態になる
(ブロック802)。ドメインB読取りクロック330
と読取り要求信号を用いて、データをFIFOレジスタ
・ステージ601から605に読み取る(ブロック80
3)。これは1サイクルの間有効である。読取りポイン
タ635を増分する(ブロック804)。これによりセ
ット/リセット・ラッチ303をリセットして、レジス
タが一杯であることを非空信号332を介して示す(ブ
ロック805)。
8はアプリケーション・ユニットからハブ・インターフ
ェース・ユニットへの読取り動作を示す。読取り要求信
号331はドメインB読取りクロック信号330のアク
ティブ・エッジで(ブロック801)活動状態になる
(ブロック802)。ドメインB読取りクロック330
と読取り要求信号を用いて、データをFIFOレジスタ
・ステージ601から605に読み取る(ブロック80
3)。これは1サイクルの間有効である。読取りポイン
タ635を増分する(ブロック804)。これによりセ
ット/リセット・ラッチ303をリセットして、レジス
タが一杯であることを非空信号332を介して示す(ブ
ロック805)。
【0036】インバータ334から与えられた非空信号
332の立下がりエッジを非同期エッジ検出器311が
捕らえる(ブロック806)。非同期エッジ検出器31
1の出力を同期論理ブロック312に送る(ブロック8
07)。同期論理ブロック312の出力はドメインa内
のセット/リセット・ラッチ313をクリアして、レジ
スタが一杯でないことをフル信号322により示す(ブ
ロック808)。同期論理ブロック322の出力は非同
期エッジ検出器311と同期論理ブロック322をリセ
ットする(ブロック809)。これにより同期装置の出
力は1サイクルの間だけハイになる。
332の立下がりエッジを非同期エッジ検出器311が
捕らえる(ブロック806)。非同期エッジ検出器31
1の出力を同期論理ブロック312に送る(ブロック8
07)。同期論理ブロック312の出力はドメインa内
のセット/リセット・ラッチ313をクリアして、レジ
スタが一杯でないことをフル信号322により示す(ブ
ロック808)。同期論理ブロック322の出力は非同
期エッジ検出器311と同期論理ブロック322をリセ
ットする(ブロック809)。これにより同期装置の出
力は1サイクルの間だけハイになる。
【0037】別の実施の態様では、図に示すセット/リ
セット・ラッチ303および313の代わりに、D入力
を制御する論理内にセットおよびクリア項を考慮した、
トリガされたフリップフロップを用いることができる。
セット・ラッチ303および313の代わりに、D入力
を制御する論理内にセットおよびクリア項を考慮した、
トリガされたフリップフロップを用いることができる。
【0038】本発明の新規性は、各ステージが双方向同
期装置とその関連するFIFOレジスタ・ステージを有
する図6の内容を何度も繰り返すことにある。これは同
期過程をパイプライン処理することにより、複数の信号
を種々の同期のステージにすることができる。したがっ
て、同期遅れがこれよりはるかに大きい場合でも、新し
いデータをサイクル毎に同期させることができる。書込
みポインタ625と読取りポインタ635は、任意の所
定のサイクルでどのレジスタ/同期装置の組合わせを用
いるかを決定するのに用いられる。これらは、最大番号
のレジスタ/同期装置の組合わせにアクセスした後でゼ
ロに返る増分器そのものとして用いられる。書込みポイ
ンタ625は、エントリを書き込む度にドメインa内で
増分する。したがって次のサイクルで、次のエントリの
ための一杯ラッチの値により、次のエントリを書き込む
ことができるかどうか決まる。同様に、読取りポインタ
635はエントリを取り出す度にドメインB内で増分す
る。これは全体的に循環FIFOと見ることができる。
期装置とその関連するFIFOレジスタ・ステージを有
する図6の内容を何度も繰り返すことにある。これは同
期過程をパイプライン処理することにより、複数の信号
を種々の同期のステージにすることができる。したがっ
て、同期遅れがこれよりはるかに大きい場合でも、新し
いデータをサイクル毎に同期させることができる。書込
みポインタ625と読取りポインタ635は、任意の所
定のサイクルでどのレジスタ/同期装置の組合わせを用
いるかを決定するのに用いられる。これらは、最大番号
のレジスタ/同期装置の組合わせにアクセスした後でゼ
ロに返る増分器そのものとして用いられる。書込みポイ
ンタ625は、エントリを書き込む度にドメインa内で
増分する。したがって次のサイクルで、次のエントリの
ための一杯ラッチの値により、次のエントリを書き込む
ことができるかどうか決まる。同様に、読取りポインタ
635はエントリを取り出す度にドメインB内で増分す
る。これは全体的に循環FIFOと見ることができる。
【0039】FIFO内の必要なエントリの数は多くの
要因によって決まる。クロックの関係に全く制限がない
場合は、必要なエントリの数を決定する条件は従属ドメ
イン(この場合はドメインB)が主ドメイン(この場合
はドメインa)と同じ周波数で動作しているときであ
る。ドメインaがサイクル毎に新しいエントリを書き込
むことができ、且つドメインBがサイクル毎に新しいエ
ントリを読み込むことができる場合は、エントリの数は
ドメインa内のセット/リセット・ラッチ313をセッ
トしたときから次にそれをクリアするまでに要する最大
時間で決まる。
要因によって決まる。クロックの関係に全く制限がない
場合は、必要なエントリの数を決定する条件は従属ドメ
イン(この場合はドメインB)が主ドメイン(この場合
はドメインa)と同じ周波数で動作しているときであ
る。ドメインaがサイクル毎に新しいエントリを書き込
むことができ、且つドメインBがサイクル毎に新しいエ
ントリを読み込むことができる場合は、エントリの数は
ドメインa内のセット/リセット・ラッチ313をセッ
トしたときから次にそれをクリアするまでに要する最大
時間で決まる。
【0040】これがNドメインaサイクルの場合は、ド
メインaが新しいエントリをサイクル毎に無期限に書き
込むことを可能にするためには、FIFO内に少なくと
もNエントリが存在しなければならない。Nより少ない
と、書込みポインタがあるエントリに回ってきたとき、
そのエントリは前に書き込んだ後でまだ空であるとマー
クされていないのでドメインaは停止しなければならな
いことを意味する。一般に一巡時間はドメインaとドメ
インBのサイクルの混合から成り、切り上げてドメイン
aサイクルの次の整数にしなければならない。
メインaが新しいエントリをサイクル毎に無期限に書き
込むことを可能にするためには、FIFO内に少なくと
もNエントリが存在しなければならない。Nより少ない
と、書込みポインタがあるエントリに回ってきたとき、
そのエントリは前に書き込んだ後でまだ空であるとマー
クされていないのでドメインaは停止しなければならな
いことを意味する。一般に一巡時間はドメインaとドメ
インBのサイクルの混合から成り、切り上げてドメイン
aサイクルの次の整数にしなければならない。
【0041】アプリケーションの要求によっては必要な
エントリの数は上に述べた数より少ない場合がある。例
えば、ドメインBが常にドメインaより遅い場合、また
はドメインBがサイクル毎にエントリを読み取ることが
できない場合は、エントリが少なくてもシステムの性能
に影響を与えない。同期装置の深さがより大きい場合で
も、ドメインaはとにかく停止しなければならない。
エントリの数は上に述べた数より少ない場合がある。例
えば、ドメインBが常にドメインaより遅い場合、また
はドメインBがサイクル毎にエントリを読み取ることが
できない場合は、エントリが少なくてもシステムの性能
に影響を与えない。同期装置の深さがより大きい場合で
も、ドメインaはとにかく停止しなければならない。
【0042】別のアプリケーションは、ネットワーク装
置におけるドリブルダウン・バッファとの置換である。
この場合は、ある最長時間の間データがサイクル毎に到
着し、その次に休止が来る。その一例はイーサネット
(登録商標)・フレームの後にインターフレーム・ギャ
ップが来る場合である。この場合はドメインaとBは一
般に同じ公称周波数を有するが、許される許容差(例え
ば1%の偏差)は小さい。ドメインBがドメインaより
遅い場合は、1フレームの継続時間中にFIFOは一杯
になる。この場合は、最悪の場合の許容差を持つ最大サ
イズのフレームが終わるまでにFIFOが完全に一杯に
ならないように、エントリの数を十分大きくしなければ
ならない。この場合はフレームの間のギャップを用いて
バランスを回復する。実際に、ドメインB内のギャップ
はドメイン内のギャップよりやや小さい。
置におけるドリブルダウン・バッファとの置換である。
この場合は、ある最長時間の間データがサイクル毎に到
着し、その次に休止が来る。その一例はイーサネット
(登録商標)・フレームの後にインターフレーム・ギャ
ップが来る場合である。この場合はドメインaとBは一
般に同じ公称周波数を有するが、許される許容差(例え
ば1%の偏差)は小さい。ドメインBがドメインaより
遅い場合は、1フレームの継続時間中にFIFOは一杯
になる。この場合は、最悪の場合の許容差を持つ最大サ
イズのフレームが終わるまでにFIFOが完全に一杯に
ならないように、エントリの数を十分大きくしなければ
ならない。この場合はフレームの間のギャップを用いて
バランスを回復する。実際に、ドメインB内のギャップ
はドメイン内のギャップよりやや小さい。
【0043】以上の説明に関して更に以下の項を開示す
る。 (1) 第1のクロック・ドメイン内の信号と、前記第
1のクロック・ドメインと非同期の第2のクロック・ド
メイン内の信号とを同期させる装置であって、複数の同
期装置ステージであって、それぞれが前記第1のクロッ
ク・ドメインの第1のクロック信号を受ける第1のクロ
ック入力と、前記第2のクロック・ドメインの第2のク
ロック信号を受ける第2のクロック入力と、前記第1の
クロック信号と同期する第1のドメイン入力信号を受け
る第1のドメイン入力と、前記第1のドメイン入力信号
に応じ且つ第2のクロック信号と同期する第2のドメイ
ン出力信号を出す第2のドメイン出力とを有する、複数
の同期装置ステージと、書込みポインタであって、前記
複数の同期装置ステージの中の1つが書込みステージで
あるという表示をその中に記憶し、前記書込みポインタ
により前記複数の同期装置ステージの中の前記1つは第
1のドメイン入力信号を受けると前記第1のドメイン入
力信号を入力し、次に前記書込みステージの前記記憶さ
れた表示を増分して前記複数の同期装置ステージの循環
シーケンス内の次の同期装置ステージを表示する、書込
みポインタと、読取りポインタであって、前記複数の同
期装置ステージの中の1つが読取りステージであるとい
う表示をその中に記憶し、前記読取りポインタにより前
記同期装置ステージの中の前記1つは前記第2のクロッ
ク信号と同期すると前記第2のドメイン出力を出力し、
次に前記読取りステージの前記記憶された表示を増分し
て前記複数の同期装置ステージの前記循環シーケンス内
の前記次の同期装置ステージを表示する、読取りポイン
タと、を備え、複数の第1のドメイン入力信号は前記同
期ステージの対応する1つの中の前記第2のクロック信
号と、同時に種々の同期状態にある、信号の同期をとる
装置。
る。 (1) 第1のクロック・ドメイン内の信号と、前記第
1のクロック・ドメインと非同期の第2のクロック・ド
メイン内の信号とを同期させる装置であって、複数の同
期装置ステージであって、それぞれが前記第1のクロッ
ク・ドメインの第1のクロック信号を受ける第1のクロ
ック入力と、前記第2のクロック・ドメインの第2のク
ロック信号を受ける第2のクロック入力と、前記第1の
クロック信号と同期する第1のドメイン入力信号を受け
る第1のドメイン入力と、前記第1のドメイン入力信号
に応じ且つ第2のクロック信号と同期する第2のドメイ
ン出力信号を出す第2のドメイン出力とを有する、複数
の同期装置ステージと、書込みポインタであって、前記
複数の同期装置ステージの中の1つが書込みステージで
あるという表示をその中に記憶し、前記書込みポインタ
により前記複数の同期装置ステージの中の前記1つは第
1のドメイン入力信号を受けると前記第1のドメイン入
力信号を入力し、次に前記書込みステージの前記記憶さ
れた表示を増分して前記複数の同期装置ステージの循環
シーケンス内の次の同期装置ステージを表示する、書込
みポインタと、読取りポインタであって、前記複数の同
期装置ステージの中の1つが読取りステージであるとい
う表示をその中に記憶し、前記読取りポインタにより前
記同期装置ステージの中の前記1つは前記第2のクロッ
ク信号と同期すると前記第2のドメイン出力を出力し、
次に前記読取りステージの前記記憶された表示を増分し
て前記複数の同期装置ステージの前記循環シーケンス内
の前記次の同期装置ステージを表示する、読取りポイン
タと、を備え、複数の第1のドメイン入力信号は前記同
期ステージの対応する1つの中の前記第2のクロック信
号と、同時に種々の同期状態にある、信号の同期をとる
装置。
【0044】(2) 第1のクロック・ドメインから、
前記第1のクロック・ドメインと非同期の第2のクロッ
ク・ドメインにデータを転送するデータ転送装置であっ
て、複数の同期装置ステージであって、それぞれが前記
第1のクロック・ドメインの第1のクロック信号を受け
る第1のクロック入力と、前記第2のクロック・ドメイ
ンの第2のクロック信号を受ける第2のクロック入力を
含み、各同期装置ステージは、データ・レジスタであっ
て、前記第1のクロック信号と同期する第1のクロック
・ドメイン・データを受けて前記第1のクロック・ドメ
イン・データをその中に記憶するデータ入力と、前記第
2のクロック信号と同期してその中からデータを取り出
すデータ出力とを有する、データ・レジスタと、同期回
路であって、前記第1のクロック信号と同期する第1の
ドメイン書込み要求信号を受ける第1のドメイン入力
と、前記第1のドメイン書込み要求信号に応じ且つ第2
のクロック信号と同期する第2のドメイン読取り可能信
号を出す第2のドメイン出力とを有する、同期回路と、
を有する、複数の同期装置ステージと、書込みポインタ
であって、前記複数の同期装置ステージの中の1つが書
込みステージであるという表示をその中に記憶し、前記
書込みポインタにより前記複数の同期装置ステージの中
の前記1つは前記第1のドメイン書込み要求信号を受け
ると第1のドメインデータを前記データ記憶装置に書き
込み、次に前記書込みステージの前記記憶された表示を
増分して前記複数の同期装置ステージの循環シーケンス
内の次の同期装置ステージを表示する、書込みポインタ
と、読取りポインタであって、前記複数の同期装置ステ
ージの中の1つが読取りステージであるという表示をそ
の中に記憶し、前記読取りポインタにより前記同期装置
の前記1つは、前記第2のクロック信号と同期して対応
する第2のドメイン読取り可能信号を出力すると前記第
2のドメイン・データを前記データ記憶装置から取り出
し、次に前記読取りステージの前記記憶された表示を増
分して前記複数の同期装置ステージの前記循環シーケン
ス内の前記次の同期装置ステージを表示する、読取りポ
インタと、マルチプレクサであって、前記読取りポイン
タに接続し、それぞれが前記複数の同期装置ステージの
中の対応する1つの前記データ出力に接続する複数の入
力とデータ出力とを有し、前記読取りポインタの前記記
憶された表示に対応する前記複数の入力の中の1つから
のデータを前記データ出力で選択する、マルチプレクサ
と、を備え、複数の第1のドメイン書込み要求信号は前
記同期ステージの対応する1つの中の前記第2のクロッ
ク信号と、同時に種々の同期状態にある、データ転送装
置。
前記第1のクロック・ドメインと非同期の第2のクロッ
ク・ドメインにデータを転送するデータ転送装置であっ
て、複数の同期装置ステージであって、それぞれが前記
第1のクロック・ドメインの第1のクロック信号を受け
る第1のクロック入力と、前記第2のクロック・ドメイ
ンの第2のクロック信号を受ける第2のクロック入力を
含み、各同期装置ステージは、データ・レジスタであっ
て、前記第1のクロック信号と同期する第1のクロック
・ドメイン・データを受けて前記第1のクロック・ドメ
イン・データをその中に記憶するデータ入力と、前記第
2のクロック信号と同期してその中からデータを取り出
すデータ出力とを有する、データ・レジスタと、同期回
路であって、前記第1のクロック信号と同期する第1の
ドメイン書込み要求信号を受ける第1のドメイン入力
と、前記第1のドメイン書込み要求信号に応じ且つ第2
のクロック信号と同期する第2のドメイン読取り可能信
号を出す第2のドメイン出力とを有する、同期回路と、
を有する、複数の同期装置ステージと、書込みポインタ
であって、前記複数の同期装置ステージの中の1つが書
込みステージであるという表示をその中に記憶し、前記
書込みポインタにより前記複数の同期装置ステージの中
の前記1つは前記第1のドメイン書込み要求信号を受け
ると第1のドメインデータを前記データ記憶装置に書き
込み、次に前記書込みステージの前記記憶された表示を
増分して前記複数の同期装置ステージの循環シーケンス
内の次の同期装置ステージを表示する、書込みポインタ
と、読取りポインタであって、前記複数の同期装置ステ
ージの中の1つが読取りステージであるという表示をそ
の中に記憶し、前記読取りポインタにより前記同期装置
の前記1つは、前記第2のクロック信号と同期して対応
する第2のドメイン読取り可能信号を出力すると前記第
2のドメイン・データを前記データ記憶装置から取り出
し、次に前記読取りステージの前記記憶された表示を増
分して前記複数の同期装置ステージの前記循環シーケン
ス内の前記次の同期装置ステージを表示する、読取りポ
インタと、マルチプレクサであって、前記読取りポイン
タに接続し、それぞれが前記複数の同期装置ステージの
中の対応する1つの前記データ出力に接続する複数の入
力とデータ出力とを有し、前記読取りポインタの前記記
憶された表示に対応する前記複数の入力の中の1つから
のデータを前記データ出力で選択する、マルチプレクサ
と、を備え、複数の第1のドメイン書込み要求信号は前
記同期ステージの対応する1つの中の前記第2のクロッ
ク信号と、同時に種々の同期状態にある、データ転送装
置。
【0045】(3) 前記各同期装置ステージの前記同
期回路は、前記第1のドメイン書込み要求信号を受ける
セット入力と、リセット入力と、書込み要求信号を受け
るとセットされる出力とを有する、フル信号セット/リ
セット・フリップフロップと、セット入力と、前記第2
ドメイン読取り要求信号を受けるリセット入力と、読取
り要求信号を受けるとリセットされる出力とを有する、
非空信号セット/リセット・フリップフロップと、前記
非空セット/リセット・フリップフロップの前記出力に
接続する入力と出力とを有する、インバータと、前記イ
ンバータの前記出力に接続する入力と、前記第1のクロ
ック信号を受けるクロック入力と、クリア入力と、前記
入力が所定の論理状態移行を行ったことを示すエッジ検
出信号を生成する出力とを有する、第1の非同期エッジ
検出器と、第1の同期論理ブロックであって、前記第1
の非同期エッジ検出器の前記出力に接続する入力と、前
記第1のクロック信号を受けるクロック入力と、クリア
入力と、出力であって前記クリア入力と、前記フル信号
セット/リセット・フリップフロップの前記リセット入
力と、前記第1の非同期エッジ検出器の前記クリア入力
とに接続して、前記第1の非同期エッジ検出器からの入
力を検出すると前記第1のクロック信号と同期する信号
を生成する出力と、を有する、第1の同期論理ブロック
と、前記フル信号セット/リセット・フリップフロップ
の前記出力に接続する入力と、前記第2のクロック信号
を受けるクロック入力と、クリア入力と、前記入力が所
定の論理状態移行を行ったことを示すエッジ検出信号を
生成する出力と、を有する、第2の非同期エッジ検出器
と、第2の同期論理ブロックであって、前記第2の非同
期エッジ検出器の前記出力に接続する入力と、前記第2
のクロック信号を受けるクロック入力と、クリア入力
と、出力であって前記クリア入力と、前記非空信号セッ
ト/リセット・フリップフロップの前記セット入力と、
前記第2の非同期エッジ検出器の前記クリア入力とに接
続し、前記第1の非同期エッジ検出器からの入力を検出
すると前記第1のクロック信号と同期する信号を生成す
る出力と、を有する、第2の同期論理ブロックと、を含
む、(2)に記載のデータ転送装置。
期回路は、前記第1のドメイン書込み要求信号を受ける
セット入力と、リセット入力と、書込み要求信号を受け
るとセットされる出力とを有する、フル信号セット/リ
セット・フリップフロップと、セット入力と、前記第2
ドメイン読取り要求信号を受けるリセット入力と、読取
り要求信号を受けるとリセットされる出力とを有する、
非空信号セット/リセット・フリップフロップと、前記
非空セット/リセット・フリップフロップの前記出力に
接続する入力と出力とを有する、インバータと、前記イ
ンバータの前記出力に接続する入力と、前記第1のクロ
ック信号を受けるクロック入力と、クリア入力と、前記
入力が所定の論理状態移行を行ったことを示すエッジ検
出信号を生成する出力とを有する、第1の非同期エッジ
検出器と、第1の同期論理ブロックであって、前記第1
の非同期エッジ検出器の前記出力に接続する入力と、前
記第1のクロック信号を受けるクロック入力と、クリア
入力と、出力であって前記クリア入力と、前記フル信号
セット/リセット・フリップフロップの前記リセット入
力と、前記第1の非同期エッジ検出器の前記クリア入力
とに接続して、前記第1の非同期エッジ検出器からの入
力を検出すると前記第1のクロック信号と同期する信号
を生成する出力と、を有する、第1の同期論理ブロック
と、前記フル信号セット/リセット・フリップフロップ
の前記出力に接続する入力と、前記第2のクロック信号
を受けるクロック入力と、クリア入力と、前記入力が所
定の論理状態移行を行ったことを示すエッジ検出信号を
生成する出力と、を有する、第2の非同期エッジ検出器
と、第2の同期論理ブロックであって、前記第2の非同
期エッジ検出器の前記出力に接続する入力と、前記第2
のクロック信号を受けるクロック入力と、クリア入力
と、出力であって前記クリア入力と、前記非空信号セッ
ト/リセット・フリップフロップの前記セット入力と、
前記第2の非同期エッジ検出器の前記クリア入力とに接
続し、前記第1の非同期エッジ検出器からの入力を検出
すると前記第1のクロック信号と同期する信号を生成す
る出力と、を有する、第2の同期論理ブロックと、を含
む、(2)に記載のデータ転送装置。
【0046】(4) 前記第1および第2の非同期エッ
ジ検出器はそれぞれ、前記非同期エッジ検出器の前記入
力に接続する逆セット入力と、前記対応するクロック信
号を受けるクロック入力と、D入力と、出力とを有す
る、第1のDフリップフロップと、前記非同期エッジ検
出器の前記入力に接続する第1の入力と、前記第1のD
フリップフロップの前記出力に接続する第2の入力と、
第3の入力と、出力とを有する、NANDゲートと、前
記NANDゲートの前記入力に接続する逆セット入力
と、前記対応するクロック信号を受けるクロック入力
と、D入力と、前記非同期エッジ検出器の前記出力に接
続する出力とを有する、第2のDフリップフロップと、
前記第2のDフリップフロップの前記出力に接続する入
力と、前記第1のDフリップフロップの前記D入力に接
続する出力と、前記NANDゲートの前記第3の入力
と、前記第2のDフリップフロップの前記D入力とを有
する、インバータと、を含む、(3)に記載のデータ転
送装置。
ジ検出器はそれぞれ、前記非同期エッジ検出器の前記入
力に接続する逆セット入力と、前記対応するクロック信
号を受けるクロック入力と、D入力と、出力とを有す
る、第1のDフリップフロップと、前記非同期エッジ検
出器の前記入力に接続する第1の入力と、前記第1のD
フリップフロップの前記出力に接続する第2の入力と、
第3の入力と、出力とを有する、NANDゲートと、前
記NANDゲートの前記入力に接続する逆セット入力
と、前記対応するクロック信号を受けるクロック入力
と、D入力と、前記非同期エッジ検出器の前記出力に接
続する出力とを有する、第2のDフリップフロップと、
前記第2のDフリップフロップの前記出力に接続する入
力と、前記第1のDフリップフロップの前記D入力に接
続する出力と、前記NANDゲートの前記第3の入力
と、前記第2のDフリップフロップの前記D入力とを有
する、インバータと、を含む、(3)に記載のデータ転
送装置。
【0047】(5) 前記第1および第2の非同期論理
ブロックはそれぞれ、前記同期論理ブロックの前記入力
に接続する非反転入力と、反転入力と、出力とを有す
る、第1のNANDゲートと、前記対応するクロック信
号を受けるクロック入力と、前記第1のNANDゲート
の前記出力に接続するD入力と、出力とを有する、第1
のDフリップフロップと、前記第1のDフリップフロッ
プの前記出力に接続する非点反転入力と、反転入力と、
出力とを有する、第2のNANDゲートと、前記対応す
るクロック信号を受けるクロック入力と、前記第2のN
ANDゲートの前記出力に接続するD入力と、前記第1
のNANDゲートの前記反転入力と、前記第2のNAN
Dゲートの前記反転入力と、前記同期論理ブロックの前
記出力に接続する出力とを有する、第2のDフリップフ
ロップと、を含む、(3)に記載のデータ転送装置。
ブロックはそれぞれ、前記同期論理ブロックの前記入力
に接続する非反転入力と、反転入力と、出力とを有す
る、第1のNANDゲートと、前記対応するクロック信
号を受けるクロック入力と、前記第1のNANDゲート
の前記出力に接続するD入力と、出力とを有する、第1
のDフリップフロップと、前記第1のDフリップフロッ
プの前記出力に接続する非点反転入力と、反転入力と、
出力とを有する、第2のNANDゲートと、前記対応す
るクロック信号を受けるクロック入力と、前記第2のN
ANDゲートの前記出力に接続するD入力と、前記第1
のNANDゲートの前記反転入力と、前記第2のNAN
Dゲートの前記反転入力と、前記同期論理ブロックの前
記出力に接続する出力とを有する、第2のDフリップフ
ロップと、を含む、(3)に記載のデータ転送装置。
【0048】(6) 本発明は、第1のクロック・ドメ
インと、第1のクロック・ドメインと非同期の第2のク
ロック・ドメインとの間の同期のためのデータ同期装置
である。本発明は2つのクロック・ドメインの間のデー
タのパイプライン処理を行う。複数の同期装置ステージ
はそれぞれデータ・レジスタ(601、602、60
3、604、605)と同期回路(611、612、6
13、614、615)を含む。同期回路は第1のドメ
インの書き込み要求信号と第2のクロック信号とを同期
させる。書込みポインタ(625)により、1つの同期
装置ステージは第1のドメインの書き込み要求信号(3
21)を受けて第1のドメイン・データを書き込むこと
ができる。次に書込みポインタを増分して、循環シーケ
ンス内の次の同期装置ステージを表示する。読取りポイ
ンタ(635)により、出力が第2のクロック信号と同
期すると、表示された読取りステージは対応するデータ
・レジスタからデータを取り出すことができる。次に読
取りポインタを増分して、循環シーケンス内の次の同期
装置ステージを表示する。複数の第1のドメイン書き込
み要求信号は、同期装置ステージに対応する1つの中で
第2のクロック信号と、同時に種々の同期状態にある。
インと、第1のクロック・ドメインと非同期の第2のク
ロック・ドメインとの間の同期のためのデータ同期装置
である。本発明は2つのクロック・ドメインの間のデー
タのパイプライン処理を行う。複数の同期装置ステージ
はそれぞれデータ・レジスタ(601、602、60
3、604、605)と同期回路(611、612、6
13、614、615)を含む。同期回路は第1のドメ
インの書き込み要求信号と第2のクロック信号とを同期
させる。書込みポインタ(625)により、1つの同期
装置ステージは第1のドメインの書き込み要求信号(3
21)を受けて第1のドメイン・データを書き込むこと
ができる。次に書込みポインタを増分して、循環シーケ
ンス内の次の同期装置ステージを表示する。読取りポイ
ンタ(635)により、出力が第2のクロック信号と同
期すると、表示された読取りステージは対応するデータ
・レジスタからデータを取り出すことができる。次に読
取りポインタを増分して、循環シーケンス内の次の同期
装置ステージを表示する。複数の第1のドメイン書き込
み要求信号は、同期装置ステージに対応する1つの中で
第2のクロック信号と、同時に種々の同期状態にある。
本発明の種々の態様を以下の図に示す。
【図1】本発明が適用可能な、ハブおよびポート構造を
持つ転送コントローラの基本的な主機能のブロック図。
持つ転送コントローラの基本的な主機能のブロック図。
【図2】ポートの1つに同期装置とアプリケーション・
ユニットを持つハブ・インターフェースの基本的な接
続。
ユニットを持つハブ・インターフェースの基本的な接
続。
【図3】本発明の双方向同期装置の1ステージの機能的
ビルディング・ブロックの接続。
ビルディング・ブロックの接続。
【図4】図3の同期装置論理ブロックのゲート・レベル
の論理図。
の論理図。
【図5】図3の非同期エッジ検出器ブロックのゲート・
レベルの論理図。
レベルの論理図。
【図6】双方向同期装置ステージと、FIFOデータパ
ス・レジスタと、ポインタ/デコーダ論理と、マルチス
テージ・パイプライン処理同期装置内のクロックおよび
制御信号の流れとを示す、本発明のマルチステージ・パ
イプライン処理同期装置の機能ブロック図。
ス・レジスタと、ポインタ/デコーダ論理と、マルチス
テージ・パイプライン処理同期装置内のクロックおよび
制御信号の流れとを示す、本発明のマルチステージ・パ
イプライン処理同期装置の機能ブロック図。
【図7】書込み動作の完了後に同期読取りを行う、書込
みサイクルに重点を置いた本発明のマルチステージ・パ
イプライン処理同期装置の原理を示す流れ図。
みサイクルに重点を置いた本発明のマルチステージ・パ
イプライン処理同期装置の原理を示す流れ図。
【図8】読取り動作の完了後に同期書込みを行う、読取
りサイクルに重点を置いた本発明のマルチステージ・パ
イプライン処理同期装置の原理を示す流れ図。
りサイクルに重点を置いた本発明のマルチステージ・パ
イプライン処理同期装置の原理を示す流れ図。
601-605 データ・レジスタ 611-615 同期回路 625 書込みポインタ 635 読取りポインタ
フロントページの続き (72)発明者 イーアン ロバートソン イギリス国 ベドフォードシャー、グラン ジ レーン、20
Claims (1)
- 【請求項1】 第1のクロック・ドメイン内の信号を、
前記第1のクロック・ドメインと非同期の第2のクロッ
ク・ドメイン内の信号に同期させる装置であって、 複数の同期装置ステージを有し、それぞれの前記同期ス
テージが前記第1のクロック・ドメインの第1のクロッ
ク信号を受ける第1のクロック入力と、前記第2のクロ
ック・ドメインの第2のクロック信号を受ける第2のク
ロック入力と、前記第1のクロック信号と同期する第1
のドメイン入力信号を受ける第1のドメイン入力と、前
記第1のドメイン入力信号に応じ且つ第2のクロック信
号と同期する第2のドメイン出力信号を出力する第2の
ドメイン出力とを有し、 書込みポインタを有し、前記複数の同期装置ステージの
中の1つが書込みステージであるという表示を前記書込
みポインタに記憶し、前記書込みポインタにより前記複
数の同期装置ステージの中の前記1つは第1のドメイン
入力信号を受けると前記第1のドメイン入力信号を入力
し、次に前記書込みステージの前記記憶された表示を増
分して前記複数の同期装置ステージの循環シーケンス内
の次の同期装置ステージを表示し、 読取りポインタを有し、前記複数の同期装置ステージの
中の1つが読取りステージであるという表示を前記読取
りポインタに記憶し、前記読取りポインタにより前記同
期装置ステージの中の前記1つは前記第2のクロック信
号と同期すると前記第2のドメイン出力を出力し、次に
前記読取りステージの前記記憶された表示を増分して前
記複数の同期装置ステージの前記循環シーケンス内の前
記次の同期装置ステージを表示する、ことを備え、 複数の第1のドメイン入力信号は前記同期ステージの対
応する1つの中の前記第2のクロック信号と、同時に種
々の同期状態にあるように、信号の同期をとる装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP00301293A EP1124179B1 (en) | 2000-02-09 | 2000-02-09 | An apparatus for signal synchronization between two clock domains |
EP00301293.7 | 2000-02-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001265715A true JP2001265715A (ja) | 2001-09-28 |
Family
ID=8172719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001034039A Abandoned JP2001265715A (ja) | 2000-02-09 | 2001-02-09 | 2つの非同期クロック・ドメイン境界にわたる処理量を維持するためのパイプライン処理の同期装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6493818B2 (ja) |
EP (1) | EP1124179B1 (ja) |
JP (1) | JP2001265715A (ja) |
AT (1) | ATE376211T1 (ja) |
DE (1) | DE60036777T2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003203046A (ja) * | 2001-10-23 | 2003-07-18 | Koninkl Philips Electronics Nv | 回路構成 |
JP2007108966A (ja) * | 2005-10-13 | 2007-04-26 | Nec Corp | 半導体ディジタル回路、fifoバッファ回路及びそれらに用いるデータ受け渡し方法 |
US7242737B2 (en) | 2003-07-09 | 2007-07-10 | International Business Machines Corporation | System and method for data phase realignment |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040057548A1 (en) * | 1994-03-18 | 2004-03-25 | Silicon Integrated System Corp. | Quasi-synchronous multi-stage event synchronization apparatus |
EP1124179B1 (en) * | 2000-02-09 | 2007-10-17 | Texas Instruments Incorporated | An apparatus for signal synchronization between two clock domains |
US7027447B2 (en) * | 2000-02-29 | 2006-04-11 | Texas Instruments Incorporated | Communications interface between clock domains with minimal latency |
EP1276028A1 (en) * | 2001-07-09 | 2003-01-15 | Telefonaktiebolaget L M Ericsson (Publ) | Status indication detection device and method |
US7352836B1 (en) | 2001-08-22 | 2008-04-01 | Nortel Networks Limited | System and method of cross-clock domain rate matching |
US7161999B2 (en) * | 2002-01-02 | 2007-01-09 | Intel Corporation | Synchronizing data or signal transfer across clocked logic domains |
US6922112B2 (en) * | 2002-06-25 | 2005-07-26 | Intel Corporation | Clock signal generation and distribution via ring oscillators |
US7149916B1 (en) * | 2003-03-17 | 2006-12-12 | Network Equipment Technologies, Inc. | Method for time-domain synchronization across a bit-sliced data path design |
US20040193931A1 (en) * | 2003-03-26 | 2004-09-30 | Akkerman Ryan L. | System and method for transferring data from a first clock domain to a second clock domain |
US7035983B1 (en) * | 2003-04-25 | 2006-04-25 | Advanced Micro Devices, Inc. | System and method for facilitating communication across an asynchronous clock boundary |
CN100559356C (zh) * | 2003-05-09 | 2009-11-11 | 皇家飞利浦电子股份有限公司 | 跨不同时钟域的数据信号传输方法 |
US7822105B2 (en) * | 2003-09-02 | 2010-10-26 | Sirf Technology, Inc. | Cross-correlation removal of carrier wave jamming signals |
WO2005047923A2 (en) | 2003-09-02 | 2005-05-26 | Sirf Technology, Inc. | Signal processing system for satellite positioning signals |
EP1726113A1 (en) | 2004-03-01 | 2006-11-29 | Koninklijke Philips Electronics N.V. | Circuit comprising mutually asynchronous circuit modules |
EP1601131B1 (en) * | 2004-05-24 | 2007-07-11 | STMicroelectronics Limited | Asynchronous multi-clock system |
MY137746A (en) * | 2004-12-06 | 2009-03-31 | Intel Corp | System, apparatus, and method to increase information transfer across clock domains |
WO2008001285A1 (en) * | 2006-06-30 | 2008-01-03 | Nxp B.V. | Asynchronous data fifo that provides uninterrupted data flow |
JP4758311B2 (ja) * | 2006-09-14 | 2011-08-24 | Okiセミコンダクタ株式会社 | 非同期データ保持回路 |
KR100888597B1 (ko) * | 2006-09-20 | 2009-03-16 | 삼성전자주식회사 | 메모리 인터페이스 제어 장치 및 제어 방법 |
US8131967B2 (en) * | 2007-01-11 | 2012-03-06 | International Business Machines Corporation | Asynchronous data interface |
US7966435B2 (en) * | 2007-01-11 | 2011-06-21 | International Business Machines Corporation | Integrated circuit design structure for an asychronous data interface |
US20080170649A1 (en) * | 2007-01-11 | 2008-07-17 | Harper Marcellus C | Programmable Synchronizer/Terminator Method and Apparatus |
WO2008129364A1 (en) * | 2007-04-23 | 2008-10-30 | Nokia Corporation | Transferring data between asynchronous clock domains |
US7934113B2 (en) * | 2007-05-21 | 2011-04-26 | Texas Instruments Incorporated | Self-clearing asynchronous interrupt edge detect latching register |
US7945875B2 (en) * | 2007-06-14 | 2011-05-17 | Texas Instruments Incorporated | Methodology for hierarchy separation at asynchronous clock domain boundaries for multi-voltage optimization using design compiler |
US7958285B1 (en) * | 2007-07-12 | 2011-06-07 | Oracle America, Inc. | System and method to facilitate deterministic testing of data transfers between independent clock domains on a chip |
ITMI20072450A1 (it) | 2007-12-31 | 2009-07-01 | St Microelectronics Srl | Sistema di comunicazione tra un primo ed un secondo dispositivo sincroni temporalmente non correlati. |
US8151075B2 (en) * | 2010-01-22 | 2012-04-03 | Freescale Semiconductor, Inc. | Multiple access type memory and method of operation |
US8868852B2 (en) * | 2010-07-07 | 2014-10-21 | Marvell World Trade Ltd. | Interface management control systems and methods for non-volatile semiconductor memory |
US9141538B2 (en) | 2010-07-07 | 2015-09-22 | Marvell World Trade Ltd. | Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive |
US9135168B2 (en) | 2010-07-07 | 2015-09-15 | Marvell World Trade Ltd. | Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error |
KR101849702B1 (ko) | 2011-07-25 | 2018-04-17 | 삼성전자주식회사 | 외부 인트린직 인터페이스 |
WO2013100976A1 (en) * | 2011-12-28 | 2013-07-04 | Intel Corporation | Data transfer between asynchronous clock domains |
GB2503472A (en) * | 2012-06-27 | 2014-01-01 | Nordic Semiconductor Asa | Data transfer between clock domains following clock transition in destination domain |
GB2505002B (en) * | 2012-08-17 | 2014-09-24 | Broadcom Corp | Method and apparatus for transferring data from a first domain to a second domain |
CN105610532B (zh) * | 2014-11-11 | 2019-05-24 | 中兴通讯股份有限公司 | 信号的传输处理方法及装置、设备 |
US9680459B2 (en) * | 2014-12-11 | 2017-06-13 | Intel Corporation | Edge-aware synchronization of a data signal |
CN111262655B (zh) * | 2020-01-15 | 2023-05-12 | 江苏方天电力技术有限公司 | 基于异步时钟的fpga万兆以太网数据高速发送方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3213345C2 (de) * | 1982-04-08 | 1984-11-22 | Siemens Ag, 1000 Berlin Und 8000 Muenchen | Datenübertragungseinrichtung zwischen zwei asynchron gesteuerten Datenverarbeitungssystemen |
US4873703A (en) * | 1985-09-27 | 1989-10-10 | Hewlett-Packard Company | Synchronizing system |
US4805198A (en) * | 1987-05-19 | 1989-02-14 | Crystal Semiconductor Corporation | Clock multiplier/jitter attenuator |
US6128715A (en) * | 1997-05-30 | 2000-10-03 | 3Com Corporation | Asynchronous transmit packet buffer |
EP1124179B1 (en) * | 2000-02-09 | 2007-10-17 | Texas Instruments Incorporated | An apparatus for signal synchronization between two clock domains |
-
2000
- 2000-02-09 EP EP00301293A patent/EP1124179B1/en not_active Expired - Lifetime
- 2000-02-09 AT AT00301293T patent/ATE376211T1/de not_active IP Right Cessation
- 2000-02-09 DE DE60036777T patent/DE60036777T2/de not_active Expired - Lifetime
- 2000-12-08 US US09/733,590 patent/US6493818B2/en not_active Expired - Lifetime
-
2001
- 2001-02-09 JP JP2001034039A patent/JP2001265715A/ja not_active Abandoned
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003203046A (ja) * | 2001-10-23 | 2003-07-18 | Koninkl Philips Electronics Nv | 回路構成 |
US7242737B2 (en) | 2003-07-09 | 2007-07-10 | International Business Machines Corporation | System and method for data phase realignment |
JP2007108966A (ja) * | 2005-10-13 | 2007-04-26 | Nec Corp | 半導体ディジタル回路、fifoバッファ回路及びそれらに用いるデータ受け渡し方法 |
Also Published As
Publication number | Publication date |
---|---|
DE60036777D1 (de) | 2007-11-29 |
EP1124179A1 (en) | 2001-08-16 |
DE60036777T2 (de) | 2008-07-24 |
ATE376211T1 (de) | 2007-11-15 |
EP1124179B1 (en) | 2007-10-17 |
US6493818B2 (en) | 2002-12-10 |
US20010042219A1 (en) | 2001-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001265715A (ja) | 2つの非同期クロック・ドメイン境界にわたる処理量を維持するためのパイプライン処理の同期装置 | |
US5487092A (en) | System for high-speed synchronization across clock domains | |
US6725388B1 (en) | Method and system for performing link synchronization between two clock domains by inserting command signals into a data stream transmitted between the two clock domains | |
US4945548A (en) | Method and apparatus for detecting impending overflow and/or underrun of elasticity buffer | |
JP4520742B2 (ja) | 非同期及び同期領域間の変換を促進する手法 | |
US6687255B1 (en) | Data communication circuit having FIFO buffer with frame-in-FIFO generator | |
JPS62146035A (ja) | デ−タ・シンクロナイザ | |
JP6293322B2 (ja) | 時間分割多重化された多重ポートメモリ | |
KR100965356B1 (ko) | 레이턴시에 둔감한 fifo 시그널링 프로토콜 | |
US7197582B2 (en) | Low latency FIFO circuit for mixed clock systems | |
US6751235B1 (en) | Communication link synchronization method | |
JPH076130A (ja) | Fifoのデータ速度適合のための方法ならびにその装置 | |
US6092128A (en) | Ethernet repeater that couples an input data stream to multiple output data streams of differing rates and provides access to a shared bus by a number of inputs and outputs | |
US6118835A (en) | Apparatus and method of synchronizing two logic blocks operating at different rates | |
US5692137A (en) | Master oriented bus bridge | |
US6088744A (en) | Multiport data buffer having multi level caching wherein each data port has a FIFO buffer coupled thereto | |
US6286072B1 (en) | System and method for synchronizing data communication between asynchronous buses | |
US7027542B1 (en) | Apparatus and method for providing data transfer between two digital circuits with different clock domains and for solving metastability problems | |
US6578118B1 (en) | Method and logic for storing and extracting in-band multicast port information stored along with the data in a single memory without memory read cycle overhead | |
Mekie et al. | Interface design for rationally clocked GALS systems | |
US7191162B2 (en) | FIFO interface for flag-initiated DMA frame synchro-burst operation | |
US6581144B1 (en) | Method and logic for initializing the forward-pointer memory during normal operation of the device as a background process | |
US7934057B1 (en) | Logic for implementing a dual clock domain read access with predictable timing for bi-directional inputs/outputs | |
US6016521A (en) | Communication control device | |
US6282149B1 (en) | Circuit and method for synchronized data banking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080212 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20090929 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090929 |