JP2008544623A - クロック・ドメインを使ったデータ送信の方法および装置 - Google Patents
クロック・ドメインを使ったデータ送信の方法および装置 Download PDFInfo
- Publication number
- JP2008544623A JP2008544623A JP2008516472A JP2008516472A JP2008544623A JP 2008544623 A JP2008544623 A JP 2008544623A JP 2008516472 A JP2008516472 A JP 2008516472A JP 2008516472 A JP2008516472 A JP 2008516472A JP 2008544623 A JP2008544623 A JP 2008544623A
- Authority
- JP
- Japan
- Prior art keywords
- data
- transmitter
- receiver
- type data
- unit
- 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.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/02—Speed or phase control by the received code signals, the signals containing no special synchronisation information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/04—Speed or phase control by synchronisation signals
- H04L7/041—Speed or phase control by synchronisation signals using special codes as synchronising signal
- H04L2007/045—Fill bit or bits, idle words
Abstract
送信機からデータを受信するための受信機(RCV)が、前記送信機のクロックと同期したデータレートで動作し、データを受信するための入力(RI)を有する第一のクロック・ドメインを有する。前記データは、第一種データ、第二種データおよび制御データを含む。当該受信機はさらに、前記送信機からは独立したクロックレートで動作する第二のクロック・ドメインと、前記第一のクロック・ドメインから前記第二のクロック・ドメインへデータを移すためのクロック・ドメイン横断ユニットをもつ。当該受信機はさらに、前記クロック・ドメイン横断ユニットによって第二のクロック・ドメインに変換された受信データの単位数を数えるスロット・カウンタと、第一種データおよび第二種データの存在を示す制御データを識別するための第一の識別ユニット(PRIM)と、当該受信機のスロット・カウンタが更新されるか否かを示す制御データを識別するための第二の識別ユニット(PAUSE)とを含む。当該受信機は、スロット・カウンタの値を示す指標を通信するための出力(RO)を有する。当該受信機は、第一種データおよび制御データを送信するためのユニット(M1、HEAD、TRAIL、PAUSE、PRIMARY、SECONADARY)と、第一種データの送信された量を数えるカウンタ(slot)と、第一種データの受信された量の指標を得る入力(TI)とを有する送信機と協働する。前記送信機はさらに、第一種データの送信量と第一種データの受信量との差を計算するための設備(S2)を有し、データを送信するための前記ユニットは、この計算の結果(ns)によって制御される。
Description
本発明は送信機に関する。
本発明はさらに送信方法に関する。
本発明はさらに受信機に関する。
本発明はさらに受信方法に関する。
本発明はさらにデータ・ハンドリング・ユニットに関する。
本発明はさらにネットワークに関する。
本発明はさらに移動デバイス(mobile device)に関する。
配線中心の(interconnect centric)アプローチは、新しいシステムを迅速に開発する強力な方法を提供する。そのようなアプローチでは、システムは複数のノードとして開発される。データ・ハンドリング・ユニット(data handling unit)とも記されるノードは、記憶ユニット、専用プロセッサ、汎用プロセッサなどの機能ユニットと、ルータおよびスイッチといったデータ・ルーティング・ユニットとを有する。機能ユニットは、データ・ルーティング・ユニットによって形成されるネットワーク内に配置される。そのようなネットワークは、チップ上のネットワーク、さまざまな集積回路を結合するネットワークまたはさまざまなコンピュータを結合するネットワークでありうることを注意しておく。ノードの通信プロトコルが標準化される傾向があること、ネットワーク様アーキテクチャが簡単に新しいノードをもって拡張できることは、設計を容易にする事実である。費用および性能の理由から、ノード間のリンクはシリアルであり、低振れ幅(low-swing)の差動式信号伝達を使用し、高周波数(1GHz以上)で走る。こうしたスピードでは、単一クロックで複数チップ・システムを走らせることは可能ではない。この理由で、各チップはローカルなクロックを有する。クロックは互いに同じ名目周波数を持てるという事実にもかかわらず、実際上は既知の公差の範囲内の変動が生じる。そうした変動は、水晶発振器の不完全および局所的な温度差によって引き起こされる。他のシステムでは、さまざまなノードが意図的に異なるクロックレートを有することもある。それでもデータ転送は、データを発生するノード(送信機)によって駆動されるクロックに同期している。クロックは第二のシリアルな線対で送られるか(発信元同期型データ送信)、あるいはクロックはたとえばPCI Expressでのような8b10bエンコードを使ってデータ線に埋め込まれる。データは、宛先ノード(受信機)において、該データと一緒に送られた送信機のクロックを使ってサンプリングされる。既知のクロック・ドメイン横断(clock-domain crossing)技法の一つを使って、データは受信機のクロック・ドメインに移される。保証されたパフォーマンスを提供するシステムを実装するときは、システム中の資源の使用を精密に制御しなければならない。これを達成する、コスト効率のよい一つの方法は、スロットからなるフレームであって、スループット保証通信のためにスロットがリザーブされるものを定義することである。保証されたスループットが要求されるデータは、以下では第一種データとも記される。さまざまな機能の制御のために使われるデータは、制御データと記される。そのようなシステムは、すべてのデバイスおよびスイッチにおいてフレームが同期されていることを要求する。
複数のノードが独立したクロックを有しているという事実にもかかわらずノード間でフレームの送信を同期させることが本発明の目的である。
本発明によれば、この目的は、請求項1記載の受信機により達成される。
本発明によれば、この目的は、請求項9記載の受信方法により達成される。
本発明によれば、この目的は、請求項10記載の送信機により達成される。
本発明によれば、この目的は、請求項11記載の送信方法により達成される。
ある実際的な実施形態では、請求項1に基づく受信機および請求項9に基づく送信機は、請求項15記載のネットワークにおいて組み合わされてもよい。複数のデータ・ハンドリング・ユニットが請求項16記載のネットワークにおいて組み合わされてもよい。
本発明によれば、一方で、受信機は送信機に、該受信機が受け取り、自らのクロック・ドメインに変換した第一種データに関するスロット数を通信する。送信機はこの情報を使って、受信機が遅れているか進んでいるかを判定する。受信機が遅れていると判定すれば、送信機は第一種データの送信を中断し、このことを受信機に一時停止シンボルの送信によって合図する。一時停止シンボルは、ある特定の形の制御データである。この方法では、送信機と受信機は互いに同期される。
実際上は、ノードは、図8に概略的に示されるように受信機および送信機の両方を含む。両者はカウンタnsを共有する。送信機は、自らがスピードを落とすことを合図するためのデータをそのすべての隣接ノードに送る。受信機は、隣接ノードのクロックによって駆動されて走るノード部分である。標準的なクロック・ドメイン横断(たとえば2つのフリップフロップまたは一つのFIFO)を使うと、受信されるデータは、送信機を含むノードのクロック・ドメインにおいて転送される。結果として、送信機は一時停止を受信機に合図せず、一時停止メッセージをその隣接ノードに送る。目標は、ノードと隣接ノードを同期させることである。データ・ハンドリング・ユニットのネットワークにおいて、各対のノードを相互同期させることは、ネットワークのグローバルな同期につながり、第一種データのグローバルなスケジューリングを許容する。
本発明のこれらの側面およびその他の側面について図面を参照しつつより詳細に述べる。
図1は、本発明が適用されうるデータ処理システム(data processing system)を概略的に示している。図示したデータ処理システムはさまざまな機能ユニットを有するカメラであり、該機能ユニットはモデム1、通信アクセラレータ2、第一および第二の汎用処理エンジン3、6、メディア・アクセラレータ4、カメラ8、ディスプレイ9および大容量記憶ユニット5、10および補助デバイス7といったものである。機能ユニットはスイッチS1、S2、S3、S4によるネットワークにおいて結合されている。さまざまな機能ユニットおよびスイッチはそれぞれ独自のクロックで動作する。それらのクロックはほぼ同じスピードを有していてもよいが、クロックの厳密な同期を与えることはできない。アイソクロナス・データのような保証されるデータを送信するときは、送信がネットワークにおいてグローバルに同期されていることが不可欠である。本発明は、この条件が満たされることを保証する通信方式を提供する。
図2は、二つのノード間のデータ転送の方式を概略的に示している。図示した方式では、データ送信のために利用可能な時間は時間スロット(SL: time-slot)に細分され、時間スロットは四角で示されている。各時間スロットは、データの1パケットの転送のために利用可能である。一部の時間スロットは、保証されたスループットを要求するデータのためにリザーブされている。そのようなデータはここでは第一種データ(primary data)と記され、アイソクロナス・データなどである。この例では、これらの時間スロットは領域ISLによって示される。その他の時間スロットは前もってリザーブされておらず、ランタイムで他のデータによる使用のために認められることができる。該他のデータは第二種データ(secondary data)とも記される。二つ以上のデータ発信元が同じリンクに沿ってデータを転送しようとする場合には、ラウンド・ロビン(round robin)、優先度スケジューリング(priority scheduling)などといったそれ自身としては既知の調停(arbitration)機構がデータ・パケットを選択するために使用されてもよい。残りのデータは、バルク・データ(BD: bulk data)として、あるいはばらばらなデータの塊(chunk)として転送されることができる。図2で見て取れるように、スロットのリザーブは、ある固定数のスロット後に反復される。この固定数のスロットはここではフレームと記される。今の場合、1フレームは128スロットを含んでいるが、どんな数でも適用できる。ここで、第一のフレームFR1はt=0に始まり、第二のフレームはt=128に始まる。ここで、時間の単位は1スロットの継続時間である。
ある実際的な実施形態では、1パケットはたとえば131バイトを含み、1スロットは約1μsの継続時間を有する。これは、1Gbpsのデータ伝送レートに対応する。1フレームが128スロットを含む今の例では、フレーム繰り返しレートは8kHzである。
図3は、データ・パケットの例をより詳細に示している。図示したデータ・パケットはヘッダH、ペイロードPLおよびトレーラTを有している。図示した実施形態では、ヘッダH、ペイロードPLおよびトレーラTはそれぞれ2バイト、128バイトおよび1バイトを有する。図3の下部により詳細に示されるように、ヘッダHは、パケットの残りの部分について次の情報を含んでいる。
型指標T1、T2。これら2ビットは以下の型(type)をエンコードする:
空。パケットの空型は、リンクはアクティブだが送信されるパケットはデータを含んでいないことを示す
アイソクロナス。保証されたスループットを要求するストリームのあらかじめスケジューリングされるパッケージを示す。この型のデータは第一種データと示される
最善努力(Best_effort)または第二種データ。その送信はランタイムでスケジューリングされる
エスケープ:エスケープ型は、ヘッダの残りの部分の異なるフォーマットを許容する。これはさまざまな制御機能のために有用でありうる。たとえば、データが通信されるリンクをアクティブ化する、該リンクを非アクティブ化する、エラーを示すなどのためである。
空。パケットの空型は、リンクはアクティブだが送信されるパケットはデータを含んでいないことを示す
アイソクロナス。保証されたスループットを要求するストリームのあらかじめスケジューリングされるパッケージを示す。この型のデータは第一種データと示される
最善努力(Best_effort)または第二種データ。その送信はランタイムでスケジューリングされる
エスケープ:エスケープ型は、ヘッダの残りの部分の異なるフォーマットを許容する。これはさまざまな制御機能のために有用でありうる。たとえば、データが通信されるリンクをアクティブ化する、該リンクを非アクティブ化する、エラーを示すなどのためである。
フロー制御ビットF1、……、F5は、パケットの受信機にクレジット数を示すはたらきをする。この数は、バッファ・オーバーフローが生じるまでに受け容れられることのできるパケットの数を示す。
修復不能なエラーの場合、パケットはエラー・フラグEがセットされて返されてもよい。応答して、返されたパケットを受け取るデバイスは再送信を実行する。
パケット中で使用されるバイト数はビットL1、……、L7によって示される。
BEパケットのシーケンスにおける最終パケットはEoPフラグによって示される。
パケットのトレーラは好ましくは、誤り訂正/検出コードのために使用される。
代替的なデータ・フォーマットが図3Aに示されている。このフォーマットでは、用意される異なるパケット型の数がより多くなっており、たとえばフロー制御およびエラー情報が、ペイロードと一緒に送られるのではなく、別個のメッセージとして送られる。
多くなった型は型ビットT1、T2、T3でエンコードされる。さまざまな型はたとえば:
ISOC アイソクロナス・データ
BE制御データ たとえばデバイスの設定を制御するための、ボリューム・コントロール、コントラスト・コントロールなどのデータで、通例単一パケットのみを含む
BEバルク 複数パケットを含む最善努力データ
ESCシンボル これは通常型または緊急(urgent)型でありうる。
ISOC アイソクロナス・データ
BE制御データ たとえばデバイスの設定を制御するための、ボリューム・コントロール、コントラスト・コントロールなどのデータで、通例単一パケットのみを含む
BEバルク 複数パケットを含む最善努力データ
ESCシンボル これは通常型または緊急(urgent)型でありうる。
ヘッダはさらにデータ中に、発信元および宛先を示すためのデータを含んでいてもよい。アイソクロナスについては、この情報はスロット・テーブルにおいてエンコードされてもよい。
図3Bは、エスケープ・シンボルのフォーマットをより詳細に示している。型ビットT1、T2、T3がエスケープ・シンボルが存在することを示す一方、ビットE1、……、E5はエスケープ・シンボルの性質を指定する。エスケープ・シンボルは通常型または緊急型でありうる。
通常のエスケープ・シンボルの例は、フロー制御(flow control)に使われるESC_FCである。この場合、ペイロードP1、……、P8は受信機にクレジット数、すなわちエスケープ・シンボルの送信機が受け容れる用意のあるデータ単位の数を示す。
パニック(panic)型のエスケープ・シンボルは緊急性をもって扱われるべきである。そうしたエスケープ・シンボルはたとえば
ESC_ERROR:受信されたパッケージが修復不能なエラーを有しており、再送信されるべきであることを示す
ESC_SYNCの場合、ペイロードはスロット数を含む
ESC_PAUSEは、受信機が送信機についていくことを許容するために、送信機が一時的に第一種データの送信を停止することを示すために使われる。
ESC_ERROR:受信されたパッケージが修復不能なエラーを有しており、再送信されるべきであることを示す
ESC_SYNCの場合、ペイロードはスロット数を含む
ESC_PAUSEは、受信機が送信機についていくことを許容するために、送信機が一時的に第一種データの送信を停止することを示すために使われる。
他のデータの場合と同様、ESCシンボルは誤り検査および訂正のためのトレーラを含む。
パケットを扱うとき、好ましくは次の優先度が与えられるべきである:
1(最高の優先度) パニックESCシンボル。ERROR、SYNCおよびPAUSEなど。
2 アイソクロナス・データ・トラフィック
3 通常のESCシンボル:FLOW_CTRL
4 BE制御
5(最低の優先度) BEバルク
図4のAはデータ受信方法を概略的に示しており、図4のBはデータ送信方法を概略的に示している。送信機によって実行されるステップは、T1、……、T8によって示される。受信機によって実行されるステップはR1、……、R7によって示される。
開始後の送信機ステップT1では、スロット・カウンタslotおよび差分指標nsがいずれも0に初期化される。
ステップT2では、接続されているどのノードについてデータが利用可能であるかが判別される。その後、それらのノードをつなぐリンクがアクティブ化される。
ステップT3では、データが利用可能でないノードにつながるリンクがスリープ・モードにされる。
あるいはまた、電力の制約のない環境、たとえばコンセントから電源供給を受ける装置では、すべてのリンクが常時アクティブなままにされてもよい。
ステップT4では、利用可能なデータがパケットの形でその宛先に送信される。この実施例では、パケットは第一種データをペイロードとして含み、制御データをヘッダおよび/またはトレーラの形で含む。ヘッダ中の制御データは、そのあとにペイロードの形の第一種データが続くかどうかを示す。さらに、制御データはペイロードの長さを示してもよい。
ステップT5では、スロット・カウンタがインクリメントされる。これは、送信された第一種データの単位の数を表す。該カウンタをインクリメントするステップは、第一種データを送信するステップの前に実行されてもよい。
ステップT6では、差分指標nsの値が0より大きいかどうかが検証される。nsの値は、送信された第一種データの単位の数slotから受信された第一種データの単位の数rcv_slotを引いたものである。
ステップT7では、一時停止シンボルが送信される。その後、差分指標nsが1減らされる。一時停止シンボルは、第一種データがないことを受信ノード(受信機)に示す、制御データを形成する。この実施形態では、一時停止シンボルは第一種データのパケットの代わりになる。他の実施形態では、異なる粒度が選択されてもよい。たとえば、一時停止シンボルが第一種データの単一バイトの代わりになる、あるいは一時停止シンボルがいくつかのパケットの代わりになる、などである。
受信機の動作についてこれから図4のAを参照しつつ説明する。ステップR1では、受信機はアクティブ・パワー・モードにはいる。アクティブ・パワー・モードは、送信機からの特別な制御語によって、あるいはデータ処理システムの電源投入によって開始されうる。ステップR2では、受信機は、送信機によって送信される第一種データの次の単位のスロット数を示す制御語を受信する。受信機は、このデータを使ってスロット・カウンタを初期化する。ステップR3では、受信機は制御データの次の単位を受信する。ステップR4では、受信機は、この制御データがあとに第一種データが続くかどうかを示すものなのか、それとも一時停止シンボルなのかを判別する。後者の場合、受信機はステップR3で次のデータ単位を待つ。制御データのその単位があとに第一種データのペイロードが続くことを示す場合、受信機はステップR5で受領を確認し(confirm)、ステップR6でそのスロット・カウンタをインクリメントし、ペイロードの形で第一種データを、そして最終的にはさらにトレーラの形で制御データを受信する。確認し、インクリメントし、受信する前記のステップは、いかなる順序で実行されてもよく、並列に実行されてもよい。ステップR5、R6およびR7ののち、受信機はステップR3に進む。
スロット・カウンタrcv_slotは、空型のパケットまたは第二種(最善努力)データを含むパケットの受領に際してもインクリメントされる。しかしながら、rcv_slotがインクリメントされない第二種データのボーナス・パケットが、一時停止シンボルのすぐあとに送信されてもよい。
代替的に、空パケットまたはBEパケットの前に付けられるとrcv_slotカウンタのインクリメントを抑制する、たとえばESC_STOP_SLOTと示される別個のエスケープ・シンボルを使ってもよい。
ステップT8での確認の受領に際し、送信機は第一種データの送信されたスロット数slotと第一種データの受信されたスロット数rcv_slotとの間の差分
d=slot−rcv_slot
を計算する。
d=slot−rcv_slot
を計算する。
カウンタslotおよびrcv_slotはラップアラウンド・カウンタであり、比較的小さな最大値を有することができる。実際的な実施形態ではたとえば128である。緊密なフレーム同期のため、両カウンタ間の差は小さな値、たとえば1または2に限られるので、エイリアシングは回避される。
ある代替的な実施形態は受信スロット数rcv_slotのためのカウンタは格納せず、上記の差を直接格納し、更新する。この代替的な実施形態では、リンクがアクティブ化されるときは、語は隣接ノード(neighbour)のスロット位置(rcv_slot)と一緒に受信される。
結果として、dはslot−rcv_slotで初期化される。この後は、dは、そのノードのslotがインクリメントされるときにインクリメントされ、スロットslotのためのデータが隣接ノード(neighbour)から受信されるときにデクリメントされる。
単一の受信機だけの場合、差分指標nsはこの差に等しい。
しかしながら、複数の受信機の場合、送信機は最も遅い受信機に合わせる必要がある。その場合、差分指標は
ns=max(ns,d)
として計算される。
ns=max(ns,d)
として計算される。
図5は、送信機と受信機の間の対話を時間の関数として概略的に示している。この例では、受信機が送信機よりも遅いクロックを有していると想定されている。本発明を解説する目的のため、クロック・スピードのこの差は図では大幅に誇張されている。実際上は、クロック・スピードの差はたとえば0.1%のオーダーである。
t0において送信機はヘッダ、ペイロードおよびトレーラを含む第一のパケットを送る。ペイロードは第一種データを含み、ヘッダおよびトレーラは制御データを含む。t1において、受信機はヘッダを認識しており、メッセージannounce_rcv_slot〔スロット受信アナウンス〕を送る。このメッセージがデータのパケットの送信機によって受信されたのち、カウンタrcv_slotがt1aにおいてインクリメントされる。すぐ差分指標nsが再計算され、その値から1を引いたものが得られる。t1bにおいて、送信機はパケットの送信を完了しており、スロット・カウンタslotを増加させる。さらに、差分指標nsが再計算され、再び値0を得る。ここで、送信機はステップT6でnsの値を検証し、新しいパケットが送信されることができると判断する。受信モジュールはt2においてヘッダを認識し、メッセージannounce_rcv_slotを送る。t2aでのこのメッセージの受領に際して、送信モジュールはカウンタrcv_slotをインクリメントし、nsの値を再計算し、その値−1が得られる。t2bにおいて、送信機はパケットの送信を完了しており、カウンタslotをインクリメントし、nsの値を再計算し、これは再び0になる。この値が再び0なので、送信機がステップT6を実行するとき、送信機は次のパケットを送ることに決める。t3では、受信機はこのパケットのヘッダを受信し、処理してしまっており、メッセージannounce_rcv_slotを送信する。t3aにおいて、送信機はこのメッセージを受信しており、カウンタrcv_slotをインクリメントする。しかしながら、送信機のクロック・スピードのほうが速いため、送信機はこの時点より前にそのパケットの送信をt3bですでに終えており、そのスロット・カウンタをt3aより前に増加させている。その結果、送信機がステップT6を実行する時点では、送信機は差分指標が0よりも大きいことを見出す。その結果、パケットを送信する代わりに、送信機は今、一時停止シンボルPSを送信する。一時停止シンボルの送信後、送信機はペイロードおよびトレーラを送ることを控えて、受信機が以前のパケットを処理する時間を持てるようにする。t3cにおいて、一時停止シンボルに続く時間スロットが完了した後、送信機は差分指標nsを1または0デクリメントし、その後、次のパケットを送信する。送信機が第一種データを送るのを控える一時停止シンボル後の期間の間、送信機は一時停止シンボルの送信を続ける。代替的には、送信機は低電力モードに入ってもよい。さらに別の実施形態では、送信機は第二種データ、たとえば最善努力データを送信してもよい。ここに示される実施形態では、一時停止シンボルは、受信機が第一種データの1パケットの送信を控えることを示す。別の実施形態では、送信機は1パケットより長い期間にわたって第一種データの送信を中断してもよい。その場合、継続時間は所定の長さ、たとえば固定したパケット数の長さを有していてもよい。あるいはまた、一時停止シンボルは、第一種データの送信が中断される期間の長さの指示を含んでいてもよい。
受信機が一時停止シンボルを受信したとき、受信機は送信機が第一種データを送信するのを控えることを「認識する」。その結果、受信機は「アナウンス受信スロット(announce_rcvslot)」を通信することを控える。
中断された第一種データ・ストリームのため、受信機は今や、t3cにおいて送信機が送信した次のデータ・パケットの処理をすぐ開始できる。その時点から、上記手順は繰り返しになる。t6bでは、受信機の遅延が再びインクリメントされ、差分指標が0より大きくなるまでになる。そして送信機は再び一時停止シンボルを送信する。
図6は、本発明に基づく送信機TRMの実施形態を概略的に示している。コントローラCTRLは、複数のデータ源のうちの一つを選択して出力のためのデータを与えるマルチプレクサM1を制御する。この場合、データ源HEADが含まれており、これがデータ・パケットのヘッダを与える。実際上は、最善努力データまたはアイソクロナス・データなどデータの種類に依存して、さまざまなヘッダが使用されうる。ペイロードの長さについての情報を含んでいてもよい。第二のデータ源TRAILはトレーラを与え、これはたとえば誤り訂正符号を含んでいてもよい。第三のデータ源は、送信機が第一種データの送信を中断することを示す一時停止(PAUSE)シンボルを与える。第四のデータ源PRIMARYは第一種データを与える。第五のデータ源SECONDARYは第二種データを与える。その他さまざまなデータ源が選択のために存在しうる。たとえばさまざまな制御シンボルを提供するため、たとえばデータが通信されるリンクをアクティブ化するため、あるいは該リンクを非アクティブ化するため、あるいはエラーを示すためである。
送信機は、受信機に選択されたデータを与えるための出力TOを有する。送信機はさらに、受信されたスロットのアナウンスされた数を受信するための入力TIを有する。
第一種データを送信する過程で、コントローラは差分指標nsの値を観察している。差分指標は、一時停止シンボルが送信されるとき、および送信されたスロット数slotまたは受信機がアナウンスする受信されたスロット数が更新されるときは、信号DECでデクリメントされる。その目的に向け、差分指標は最大値関数モジュールMAXを介して減算器S2に結合されている。該モジュールMAXは、減算器S2に結合された第一の入力とは別に、差分指標レジスタに結合された第二の入力を有する。減算器は、送信された第一種データ単位(スロット)の実際の数と、受信機が受信したとアナウンスした第一種データ単位の数rcv_slotとの間の差を計算する。この実施形態は、送信機が最も遅いクロックをもつ受信機に合わせることができるという利点を有する。
図7は、本発明に基づく受信機の実施形態を概略的に示している。受信機RCVは、送信機TRMから、送信機のクロックに対応するデータレートでデータのストリームを受信するための入力RIを有する。受信機はさらに、受信しているデータが第一種データのパケットのヘッダであるかどうかを判定する第一の比較器PRIMを有している。そうである場合、受信機はメッセージannounce_rcvslotを送信機に送信する。受信機はさらに、一時停止シンボルを受信したかどうかを認識するための第二の比較器PAUSEを有する。この比較器は、バッファBUFを入力Iに結合するゲートGTを制御する。一時停止シンボルが認識された場合、1データ・パケットに対応する時間の長さの間、バッファの充填が中断されるよう、ゲートが閉じられる。そうでない場合、ゲートGTは開かれ、バッファは送信機のクロックCLTのスピードで充填されることができる。図示した実施形態では、クロックCLTは別個の接続を介して提供される。別の実施形態では、クロックはデータ・ストリーム中に埋め込まれる。バッファは、受信機のクロックレートCLRでデータ処理ユニット(DPU:data processing unit)によって読み出される。一時停止シンボルが認識されたときにバッファの充填を中断する代わりに、すべてのデータがバッファ内にロードされてもよい。その場合、バッファから読まれる現在位置を示す読み出しポインタが、パケットのサイズに対応する数だけ位置を進められてもよい。あるいはまた、一時停止シンボルは、スキップされうるバッファ中の位置の数を示す情報を含んでいてもよい。
図8は、一対のノードを概略的に示している。第一のノードN1は送信機TR1と受信機RC1の組み合わせを含んでおり、第二のノードN2は送信機TR2と受信機RC2の組み合わせを含んでいる。
上述した実施形態が、本発明を限定するのではなく解説するものであること、当業者は付属の請求項の範囲から外れることなく多くの代替的な実施形態を設計できるであろうことを注意しておくべきであろう。請求項において、括弧内に参照符号があったとしてもその請求項を限定するものと解釈してはならない。「有する」の語は請求項において挙げられているもの以外の要素またはステップの存在を排除しない。要素の単数形の表現はそのような要素の複数の存在を排除しない。いくつかの手段を列挙している装置請求項においては、それらの手段のいくつかが同一のハードウェア項目によって具現されてもよい。ある種の施策が互いに異なる従属請求項において言及されているというだけの事実がそれらの施策の組み合わせが有利に使用できないことを示すものではない。
Claims (17)
- 送信機からデータを受信するための受信機であって、
前記送信機のクロックと同期したデータレートで動作し、第一種データ、第二種データおよび制御データを含むデータを受信するための入力を有する第一のクロック・ドメインと、
前記送信機からは独立したクロックレートで動作する第二のクロック・ドメインと、
前記第一のクロック・ドメインから前記第二のクロック・ドメインへデータを移すためのクロック・ドメイン横断ユニットと、
前記クロック・ドメイン横断ユニットによって第二のクロック・ドメインに変換された受信データの単位数を数えるスロット・カウンタと、
第一種データおよび第二種データの存在を示す制御データを識別するための第一の識別ユニットと、
当該受信機のスロット・カウンタが更新されるか否かを示す制御データを識別するための第二の識別ユニットと、
スロット・カウンタの値を示す指標を通信するための出力とを有する受信機。 - 前記クロック・ドメイン横断ユニットがバッファを有しており、前記第二の識別ユニットが、第一種データの不在を検出した場合にデータが前記バッファにはいるのを防止する、請求項1記載の受信機。
- 前記第二の識別ユニットが、当該受信機内のスロット情報が更新されることを防止する、請求項1記載の受信機。
- 前記クロック・ドメイン横断ユニットが、バッファを有しており、すべてのデータは前記バッファに入れられ、前記バッファから第一種データを選択するデータ処理ユニット(DPU)を有している、請求項1記載の受信機。
- エスケープ・シンボルによって運ばれる値で初期化されるカウンタを有する、請求項1記載の受信機。
- カウンタ初期化のための前記エスケープ・シンボルが、リンク・アクティブ化の際に転送される、請求項5記載の受信機。
- 受信された第一種データおよび第二種データの数を数えるためのカウンタを有しており、数えた数を前記送信機に通信する、請求項1記載の受信機。
- 第一種または第二種データ単位の受信の生起を通信する、請求項1記載の受信機。
- 送信機からデータを受信する方法であって、
A.データ語を受信するステップと、
B.前記データ語を識別するステップと、
C.前記データ語が第一種データの不在を示す制御語である場合、ステップAから続けるステップと、
D.そうでない場合に、隣接ノード(neighbour)の送信機によって決定されるクロックで語のパケットを受信するステップと、
F.前記パケットの少なくとも一部が読まれたときに、前記パケットの受信の指標を前記送信機に通信するステップと、
G.ステップAから続けるステップとを有する方法。 - 第一種データおよび制御データを送信するためのユニットと、
第一種データの送信された量を数えるカウンタと、
第一種データの受信された量の指標を得る入力と、
第一種データの前記送信された量と第一種データの前記受信された量との間の差を計算する設備とを有する送信機であって、
データを送信するための前記ユニットが、この計算の結果によって制御される送信機。 - ネットワークにおいて送信機から受信機に第一種データを送信する方法であって、
第一種データの単位を送信するステップと、
第一種データの単位の送信数を数えるステップと、
受信ノードによって受信された第一種データの単位の数の指標を受信するステップと、
前記送信数と前記受信数との間の差を決定するステップと、
第一種データの単位の受信数が第一種データの単位の送信数より少ない場合、第一種データが存在しないことを示す制御データを送信するステップとを有する方法。 - 前記送信機が前記送信数と前記受信数との間の差が減って0になるまで前記制御データの送信を続ける、請求項11記載の方法。
- 前記送信機が、第一種データが存在しないことを示す前記制御データの送信後、送信を一時的に停止する、請求項11記載の方法。
- 前記送信機が、第一種データが存在しないことを示す前記制御データの送信後、第二種データの単位を送信する、請求項11記載の方法。
- 請求項1記載の受信機および請求項10記載の送信機の組み合わせを有する、データ・ハンドリング・ユニット。
- 請求項15記載のデータ・ハンドリング・ユニットを複数有するネットワーク。
- 請求項16記載のネットワークを含む移動電子デバイス。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP05105166 | 2005-06-13 | ||
PCT/IB2006/051856 WO2006134537A1 (en) | 2005-06-13 | 2006-06-12 | Methods and receives of data transmission using clock domains |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008544623A true JP2008544623A (ja) | 2008-12-04 |
Family
ID=37074244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008516472A Withdrawn JP2008544623A (ja) | 2005-06-13 | 2006-06-12 | クロック・ドメインを使ったデータ送信の方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20080205567A1 (ja) |
EP (1) | EP1894337A1 (ja) |
JP (1) | JP2008544623A (ja) |
CN (1) | CN101199156A (ja) |
WO (1) | WO2006134537A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2503473A (en) * | 2012-06-27 | 2014-01-01 | Nordic Semiconductor Asa | Data transfer from lower frequency clock domain to higher frequency clock domain |
FR3036241B1 (fr) * | 2015-05-12 | 2017-06-02 | Peugeot Citroen Automobiles Sa | Procede et dispositif de controle de la transmission de trames dans un reseau video bidirectionnel |
CN108958701A (zh) * | 2017-05-22 | 2018-12-07 | 深圳市中兴微电子技术有限公司 | 一种数据传输控制方法、装置及存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5894567A (en) * | 1995-09-29 | 1999-04-13 | Intel Corporation | Mechanism for enabling multi-bit counter values to reliably cross between clocking domains |
US5918020A (en) * | 1997-02-28 | 1999-06-29 | International Business Machines Corporation | Data processing system and method for pacing information transfers in a communications network |
US6768742B1 (en) * | 1999-10-08 | 2004-07-27 | Advanced Micro Devices, Inc. | On-chip local area network |
US6594329B1 (en) * | 1999-11-01 | 2003-07-15 | Intel Corporation | Elastic buffer |
US7500004B1 (en) * | 1999-12-29 | 2009-03-03 | Gregg Homer | System for tracking files transmitted over the internet |
US6813275B1 (en) * | 2000-04-21 | 2004-11-02 | Hewlett-Packard Development Company, L.P. | Method and apparatus for preventing underflow and overflow across an asynchronous channel |
IL136775A0 (en) * | 2000-06-14 | 2001-06-14 | Surf Comm Solutions Ltd | Modem relay over packet based network |
GB2362777B (en) * | 2000-05-25 | 2002-05-08 | 3Com Corp | System for detection of asynchronous packet rates and maintenance of maximum theoretical packet rate |
AU2001284877A1 (en) * | 2000-08-15 | 2002-02-25 | University Of Maryland, College Park | Method, system, and computer program product for positioning and synchronizing wireless communications nodes |
KR100750036B1 (ko) * | 2001-08-24 | 2007-08-16 | 인텔 코오퍼레이션 | 플로우 제어를 구현하는 범용 입출력 아키텍쳐, 프로토콜및 관련 방법 |
US7362772B1 (en) * | 2002-12-13 | 2008-04-22 | Nvidia Corporation | Network processing pipeline chipset for routing and host packet processing |
US7272672B1 (en) * | 2003-04-01 | 2007-09-18 | Extreme Networks, Inc. | High speed bus with flow control and extended burst enhancements between sender and receiver wherein counter is maintained at sender for free buffer space available |
WO2005008978A1 (ja) * | 2003-07-18 | 2005-01-27 | Fujitsu Limited | 送信主導型フロー制御装置 |
JP4063205B2 (ja) * | 2003-11-20 | 2008-03-19 | セイコーエプソン株式会社 | 画像データ圧縮装置及びエンコーダ |
-
2006
- 2006-06-12 US US11/917,083 patent/US20080205567A1/en not_active Abandoned
- 2006-06-12 EP EP06756108A patent/EP1894337A1/en not_active Withdrawn
- 2006-06-12 JP JP2008516472A patent/JP2008544623A/ja not_active Withdrawn
- 2006-06-12 CN CNA200680021110XA patent/CN101199156A/zh active Pending
- 2006-06-12 WO PCT/IB2006/051856 patent/WO2006134537A1/en not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
US20080205567A1 (en) | 2008-08-28 |
WO2006134537A1 (en) | 2006-12-21 |
EP1894337A1 (en) | 2008-03-05 |
CN101199156A (zh) | 2008-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0525985B1 (en) | High speed duplex data link interface | |
US6161138A (en) | Media access control for isochronous data packets in carrier sensing multiple access systems | |
US6765923B1 (en) | Early arbitration on a full duplex bus | |
RU2596582C2 (ru) | Способ и устройство для адаптируемой к размерам памяти последовательной передачи данных | |
JP5563165B2 (ja) | 切り替え可能なデータレートによる直列データ伝送のための方法及び装置 | |
US20070127521A1 (en) | Interface between network data bus application and avionics data bus | |
JP2009506682A (ja) | ギガビット/10ギガビット・イーサネット(登録商標)・システムにおける明示的フロー制御 | |
US8111623B2 (en) | Node, method and system for control of communication including a buffer | |
KR19990067626A (ko) | 패킷송수신장치및패킷수신장치 | |
US6339584B1 (en) | Media access control for isochronous data packets in carrier sensing multiple access systems | |
KR100478112B1 (ko) | 패킷 제어 시스템 및 통신 방법 | |
CN108599908B (zh) | 通信系统和半导体设备 | |
JP2008544623A (ja) | クロック・ドメインを使ったデータ送信の方法および装置 | |
US6580711B1 (en) | Serial interface circuit and signal processing method of the same | |
JP4686740B2 (ja) | 電子装置、フレーム同期の方法、および移動体装置 | |
Hartwich et al. | Introducing can xl into can networks | |
JP2969559B2 (ja) | データ転送フロー制御方式 | |
KR20020021270A (ko) | 이동통신용 보드의 데이터 복구 방법 및 장치 | |
JP2000183939A (ja) | データ転送装置 | |
JP2006109314A (ja) | 送信装置、受信装置、およびデータ送受信システム | |
JPS5997248A (ja) | コミユニケ−シヨン方式 | |
JPH06338892A (ja) | ループネットワーク |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090611 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20100219 |