JP6149150B2 - スキューのあるマルチレーン通信リンクにおけるタイムスタンプ補正 - Google Patents

スキューのあるマルチレーン通信リンクにおけるタイムスタンプ補正 Download PDF

Info

Publication number
JP6149150B2
JP6149150B2 JP2016504323A JP2016504323A JP6149150B2 JP 6149150 B2 JP6149150 B2 JP 6149150B2 JP 2016504323 A JP2016504323 A JP 2016504323A JP 2016504323 A JP2016504323 A JP 2016504323A JP 6149150 B2 JP6149150 B2 JP 6149150B2
Authority
JP
Japan
Prior art keywords
fill level
lane
lanes
data packet
time stamp
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.)
Active
Application number
JP2016504323A
Other languages
English (en)
Other versions
JP2016517680A5 (ja
JP2016517680A (ja
Inventor
グレシャム,ポール
コッペン,ジェーソン
シムーン,レン
マイヤー,ロルフ
ボシ,バーナード
クォン,デビッド
ガストリン,マーク・エイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xilinx Inc filed Critical Xilinx Inc
Publication of JP2016517680A publication Critical patent/JP2016517680A/ja
Publication of JP2016517680A5 publication Critical patent/JP2016517680A5/ja
Application granted granted Critical
Publication of JP6149150B2 publication Critical patent/JP6149150B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0685Clock or time synchronisation in a node; Intranode synchronisation
    • H04J3/0697Synchronisation in a packet node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/41Flow control; Congestion control by acting on aggregated flows or links

Description

発明の分野
本開示は、概して、スキューのあるマルチレーン通信リンク(たとえば、イーサネット(登録商標)回路)に関し、より特定的には、スキューのあるマルチレーン通信リンクにおけるタイムスタンプ補正のための方法および装置に関する。
発明の背景
デジタル通信リンクがますます高速になるのにつれて、多くの技術的困難が生じる。通信チャネルの速度を制限する要因の1つとして物理的な電気リンクの特性が挙げられる。この特性は、通常、最新の電気集積回路技術によって所望の総通信速度よりも著しく低くなるように制約されている。したがって、総論理リンク速度をより高速にするためにいくつかの並列物理通信レーンを用いることが一般的である。これはマルチレーン分配(MLD:Multi-Lane Distribution)として公知である。
さらに、送信機から受信機への伝達中に個々の高速レーンがさまざまな手段によって損なわれてしまうと、物理通信レーンの数の再組合わせを如何に行い得るかについて問題が生じる。送信前に個々のビットを集合リンクに対応する所定の順序になるよう正確に再度組合せることができるように、さまざまな個々のレーンの到達時間差を補正する必要がある。たとえば、個々のレーン上に到達するビットは、ワイヤまたはプリント回路基板(PCB:printed circuit board)トレースの長さが異なっているせいで到達時間が歪んでしまっている可能性がある。タイムスタンプがわずかに異なっていると、場合によっては、スレーブクロックに変化をもたらす可能性がある。
論理レーンがさまざまな異なるタイプの物理レーン、たとえば電気レーンまたは光レーン上で多重化されると、さらなる問題が生じる。論理レーンが或る物理レーンから別の(電気または光)レーンにまで移動すると、その論理レーンの遅延が変化する。なぜなら、論理レーンを担持することになっている物理レーンが遅延することよって論理レーンが制限されてしまうからである。
発明の概要
マルチレーン通信リンクにおけるタイムスタンプを補正するための方法が開示される。当該方法の一実施形態はデータパケット、データパケットのためのタイムスタンプ、およびデータパケットを担持するマルチレーン通信リンクのレーンについてのフィルレベルを受信するステップと、データパケットのための補正済みタイムスタンプを計算するステップと、データパケットのためのタイムスタンプを補正済みタイムスタンプと置換えるステップとを含む。
当該方法のさまざまな実施形態においては、受信するステップ、計算するステップおよび置換えるステップは、マルチレーン通信リンクにおけるそれぞれのデータパケットを有する複数のレーンのレーン毎に繰返される。タイムスタンプは、データパケットの開始のタイムスタンプに対応する。タイムスタンプは、直列化/非直列化クロックドメインにおいてクロックサイクル毎にギアボックスモジュールの後に取込まれる。フィルレベルは、1ビット以上の基準を含む。フィルレベルは、第1のクロックドメインにおける読出しポインタと第2のクロックドメインにおける書込みポインタとの時間平均に基づいて、マルチレーン通信リンクにおける複数のレーンのレーン毎に先入れ先出しバッファによって計算される。計算するステップは、タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルの関数である。基準フィルレベルは最小フィルレベルを含む。基準フィルレベルは最大フィルレベルを含む。基準フィルレベルは平均フィルレベルを含む。タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルは各々、クロックサイクルの単位に変換される。タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルは各々、ナノ秒の単位に変換される。
別の実施形態に従うと、集積回路は、入力信号を複数のレーンに分割するためのデマルチプレクサおよびギアボックスモジュールを含む。各々のレーンは少なくとも1つのデータパケットを担持する。集積回路はさらに、少なくとも1つのデータパケットの各々のためのタイムスタンプを取込むためのタイムスタンプ取込みモジュールと、複数のレーンの各レーンについてのフィルレベルを生成するためのレーンアラインバッファと、補正論理モジュールとを含む。補正論理モジュールは、少なくとも1つのデータパケット、少なくとも1つのデータパケットのためのタイムスタンプ、および、少なくとも1つのデータパケットを担持する複数のレーンの各レーンについてのフィルレベルを受信し、少なくとも1つのデータパケットのための補正済みタイムスタンプを計算し、少なくとも1つのデータパケットのためのタイムスタンプを補正済みタイムスタンプと置換えるためのものである。
集積回路のさまざまな実施形態においては、補正論理は、タイムスタンプ、少なくとも1つのデータパケットを担持する複数のレーンのうち或るレーンのフィルレベルおよび基準フィルレベルの関数として、補正済みタイムスタンプを計算する。基準フィルレベルは最小フィルレベルを含む。基準フィルレベルは最大フィルレベルを含む。基準フィルレベルは平均フィルレベルを含む。補正論理モジュールは、タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルをクロックサイクルの単位に変換して、計算を実行する。補正論理モジュールは、タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルをナノ秒の単位に変換して、計算を実行する。
別の実施形態に従うと、複数の命令を格納する非一時的なコンピュータ読取可能媒体が提供される。当該複数の命令は、プロセッサによって実行されると、プロセッサにマルチレーン通信リンクにおけるタイムスタンプを補正するための動作を実行させる。非一時的なコンピュータ読取可能媒体の動作は、データパケット、データパケットのためのタイムスタンプ、およびデータパケットを担持するマルチレーン通信リンクのレーンについてのフィルレベルを受信すること、データパケットのための補正済みタイムスタンプを計算すること、ならびに、データパケットのためのタイムスタンプを補正済みタイムスタンプと置換えることを含む。
図面の簡単な説明
添付の図面は、開示された1つ以上の局面に従った例示的な実施形態を示す。しかしながら、添付の図面は、図示された実施形態に開示内容を限定するよう理解されるべきではなく、説明および理解のみを目的としたものである。
スキューのあるマルチレーン通信リンクにおけるタイムスタンプを補正するためのブロック回路図の一例を示す図である。 マルチレーン通信リンクの各レーンについてのフィルレベルを計算するアライメント論理の一例を示す図である。 スキューのあるマルチレーン通信リンクにおけるタイムスタンプを補正するための方法についての一実施形態の例示的なフローチャートを示す図である。 この明細書中に記載される機能を実行する際に用いるのに適した汎用コンピュータを示すハイレベルブロック図である。
理解し易くするために、図において共通する同一の要素を指定するために、可能な限り、同一の参照数字を用いた。
図面の詳細な説明
本開示は、スキューのあるマルチレーン通信リンクにおけるタイムスタンプを補正するための方法、非一時的なコンピュータ読取可能媒体および装置を広く開示する。上述のとおり、マルチレーン通信チャネルにおいては、特定のパケットの開始がいずれのレーン上にも生じる可能性がある。各々のレーンには、スキューとして知られるさまざまな遅延が生じ得るので、各々のレーンはわずかに異なるタイムスタンプを呈することとなり、これが、場合によっては、スレーブクロックに変化をもたらす可能性がある。
本開示の一実施形態では、予想される相対遅延を均等にするようなサイズである小型バッファによって各々のレーンにおける相対遅延を説明する。次いで、レーンバッファごとに格納されたデータの相対量はタイムスタンプに加えられる補正を推測するために用いられる。これにより、スレーブクロックの精度が向上する。
図1は、スキューのあるマルチレーン通信リンクにおけるタイムスタンプを補正するためのブロック回路図100の一例のブロック図を示す。一実施形態においては、ブロック回路図100は、マルチレーン通信リンクの受信機部を示す。言いかえれば、ブロック回路図100は、送信部および受信機部を有する、より大きなネットワークの一部であってもよい。一実施形態においては、スキューはシステム全体(たとえば、送信機部および受信機部)に起因し得るものであるが、スキューは受信機部においてしか対処されていない。そのため、本開示の実施形態を説明する目的で受信機部が例示されている。
一実施形態においては、マルチレーン通信リンクはイーサネット(登録商標)回線インターフェイスであってもよい。たとえば、イーサネット回線インターフェイスは40ギガビットイーサネット(GBE:gigabit Ethernet)または100GBEであってもよい。ここで100GBEを参照しながら本開示を説明するが、本開示がいかなるマルチレーン通信リンクにも適用され得ることに留意されたい。
一実施形態においては、入力120は、物理コーディングサブレイヤ(PCS:physical coding sub-layer)レーンデマルチプレクサ(DEMUX:demultiplexer)102およびギアボックスモジュール104によって受信されてもよい。100GBEの場合、入力120は、4×25GBEレーンにわたってストライプ模様を呈する10個のレーンを含んでもよい。次いで、デマルチプレクサおよびギアボックスは、各々が5GBEである20個の仮想レーンを生成し得る。デマルチプレクサおよびギアボックスは別個のモジュールとして例示的に示されているが、これらの2つのモジュールによって実行される機能または動作は、単一のモジュールに実現することができる。
一実施形態においては、各々のレーンにおける各データパケットのためのタイムスタンプは、タイムスタンプ取込みモジュール106におけるギアボックス104の後に取込まれてもよい。タイムスタンプは、タイムスタンプ取込みモジュール106の「時間入力」信号に従って決定されてもよい。「時間入力」は実時間を表わすクロックであり得る。一実施形態においては、「時間入力」信号は、予め規定されたフィールドにおいて、予め規定されたフォーマット、符号化およびエポックで秒およびナノ秒からなる80ビット値であってもよい。一実施形態においては、「時間入力」は絶えず変化する。
一実施形態においては、タイムスタンプは、破線152によって範囲が定められる直列化/非直列化(SerDes:serialize/deserialize)クロックのクロックサイクル毎にデマルチプレクサおよびギアボックスの後に、取込まれてもよい。一実施形態においては、これは、以下にさらに詳細に説明するように、補正済みタイムスタンプを計算するために用いられるタイムスタンプである。なお、一貫して同じものが用いられる限り、タイムスタンプを取込むためにいかなる任意のデマルチプレクサおよびギアボックスが用いられてもよいことに留意されたい。
一実施形態においては、時間「t」は、取込みポイントと任意の基準面150との間の時間を表わす。一実施形態においては、SerDesからギアボックスまでのデータの転送時間が分かっているので、時間「t」は、タイムスタンプに基準面150を参照させるためにタイムスタンプから減じられてもよい。一実施形態においては、レーンの各々のためのタイムスタンプが、通信バス160を介し、ライン130を通ってコア論理110に送信されてもよい。
一実施形態においては、20個のレーンの各々におけるデータパケットがレーンアラインバッファ108に渡される。一実施形態においては、レーンアラインバッファは先入れ先出し(FIFO:first-in-first-out)メモリバッファであってもよい。一実施形態においては、レーンアラインバッファ108は、マルチレーン通信リンクの各レーンのためのFIFOメモリバッファを含む。
一実施形態においては、各々のFIFOメモリバッファは、計算されるかまたは予め決定されるフィルレベルを有してもよい。フィルレベルは、マルチレーン通信リンク内における他のレーンに対する如何なるスキュー(たとえば時間遅延)をも補償するために用いられる1ビット以上を含んでもよい。一実施形態においては、各々のレーンについてのフィルレベル、基準フィルレベルおよびタイムスタンプを用いて、データパケットのための補正済みタイムスタンプを計算してもよい。
図2は、アライメント論理の一例と、マルチレーン通信リンクの各レーンについてフィルレベルがどのように計算され得るかとを例示する。高レベルでは、異なるクロックドメインClock_R208およびClock_C222の上にあり得る、Read_En221を生成する読出しポインタとWrite_En220を生成する書込みポインタとの時間平均によって、各々のレーンについてのフィルレベルが決定され得る。
図2をより詳細に参照すると、4つのレーン99の各々は、それ自体の受信SerDes200において終端となり、その各々は、Clock_R208およびデータ207を回復させるための公知の回路や、さらには、各々の直列レーンをn個の並列ラインに変換する公知の多重分離回路を含む。例では4つのレーンを示しているが、本開示がレーンの数によって限定されないことが理解されなければならない。以下において説明されるアライメント検出器201およびメモリ202がレーン毎に繰返されるが、これらが共通のシステムの一部としてソフトウェアで実現され得ることが理解されるだろう。一実施形態においては、メモリ202は図1に示されるレーンアラインバッファ108と同様である。
データ207は、以下の機能のうち少なくとも1つを実行するアライメント検出回路201に転送される。以下の機能とは、すなわち、ワード境界を決定する機能、必要に応じてビットを反転させる機能、解読する機能、32ビット周期冗長検査(CRC32)、同期のために用いられるビットパターンを識別する機能、および、そのビットパターンの存在を表示する機能を含む。いくつかの実施形態においては、解読およびCRC32などの機能は、たとえば802.3baイーサネットの場合、アライメント検出器においては不要である。いくつかの実施形態においては、ビット同期化ビットパターンを識別するには、インターラーケン(Interlaken)プロトコルの場合には、パターンが2回以上、たとえば4回、検出されることが必要である。同期パターンが確実に検出されたとき、信号210「検出済み同期ワード(Synch Word Detected)」には値TRUEが割当てられる。インターラーケンプロトコルの場合に少なくとも1回、たとえば4回、検出を行うには、いくつかの実施形態における同期ワードの確実な検出が必要とされる。同期パターンが確実に検出されない場合、検出済み同期ワード信号210には値FALSEが割当てられる。いくつかの実施形態においては、エラーの検出を2回以上、たとえばインターラーケンプロトコルの場合には4回、行った後、同期パターンの検出が不確実になる。
TRUE値を有する信号210の条件は、Write_En信号220がアサートされた結果、Clock_Rがデータ209をFIFOメモリ202に書込むことを引起こすだろう。いくつかの実施形態においては、同期ワードは、たとえばアライメントパターンなどの他のさまざまな名前で既知であってもよく、または、無名であってもよいが、同じ機能を実行することにより、さまざまなレーン上におけるデータの到達時間のずれを補正する手段を提供し得る。
データは、文字「D」によって指定される第1のメモリ位置240における同期ワードの後における第1の有効データワードから始まって順々に、FIFO202に書込まれる。次いで、後続の受信データが、受信されると順次、FIFOに書込まれる。この後続の受信データは、データ(D)または制御情報(C)などのさまざまな情報を含み得る。
各々のレーンのための受信機は、集められた信号230として示される同期ワード信号210の検出に対応する出力を各々が備えるアライメント検出回路201の複製と、FIFOメモリ202の複製とを含む。TRUEであるすべての検出信号の条件が発生すると、回路205はTRUE出力信号221(たとえば、Read_En信号)を生成する。これは、それぞれの出力論理で4つのFIFO回路すべてに同時に提示される。Read_En信号221がTRUEである場合、Clock_C222がアクティブになって、FIFO202に格納されたのと同じ順序でデータ224を読出す。
この手順の後、4つのレーン毎のデータ224が、スキューが除去されてしまうように時間内に位置合わせされることが確実にされる。出力回路203は、正確な時間にすべてのレーンから並列にデータ250を受信する。なぜなら、Read_En221が各FIFOの出力ポートに分配されるからである。いくつかの実施形態においては、回路203は、たとえば、1つ以上のレーン上で障害があった場合には、総数のレーンよりも少ない数のレーンからデータ250を受信する。総トラヒックがより少数のレーンによってサポートされ得る場合、回路203はまた、総数のレーンよりも少ない数のレーンを読出すようにプログラムされる可能性がある。この場合、未使用のレーンは電力を節約するために遮断される可能性がある。
回路203による付加的な処理の後、デスキューされたデータは、j個の物理行から構成されるデータリンク225上での後続の処理または送信のために他の回路に利用可能となる。この場合、jは少なくとも1である。なお、FIFOがオーバーフローしないような速度でデータをFIFOから読出すことができるのであれば、Clock_CがClock_Rと同じ周波数でなくてもよいことに留意されたい。したがって、この方法によって、回路の追加なしでもクロックドメイン適合機能が実行され得ることが認められるだろう。FIFO202が、読出し前にメモリ位置を使い果たしてしまった場合、オーバーフロー信号226がTRUEの値に設定される。通常の動作条件下では、f(Clock_C)>=f(Clock_R)という要件のせいで、オーバーフロー=TRUEとはならないだろう。しかしながら、グリッチまたは他の外部エラーがFIFOオーバーフローを引起こす場合、この信号は、論理をリセットするかまたはアラームを発生させるなどの補正動作を行うために使用可能となる。
図1を再び参照すると、各レーンについてのフィルレベルが計算または決定されると、各レーンについてのフィルレベルが、通信バス160を介し、ライン132を通ってコア論理モジュール110に送信されてもよい。加えて、データパケットは、通信バス160を介し、ライン134を通ってコア論理モジュール110に送信されてもよい。
一実施形態においては、コア論理モジュール110は、物理コーディングサブレイヤ(PCS:physical coding sub-layer)デコーダ112、メディアアクセスコントローラ(MAC:media access controller)114、および1588論理モジュール116を含み得る。一実施形態においては、データパケットは、PCSデコーダ112に供給されて復号されてもよい。一実施形態においては、PCSデコーダ112は、パケットの開始(SOP:Start of a Packet)および各々のSOPに関連付けられたレーンを識別し得る。
一実施形態においては、1588論理モジュール116は、SOP、PCSデコーダ112からの、各SOPに関連付けられたレーン、および、タイムスタンプ取込み106からのタイムスタンプを受信し得る。一実施形態においては、1588論理モジュール116は、IEEE1588によって規定されるように特定のタイムスタンプを予期して待っている論理モジュールを含み得る。特に、1588論理モジュール116は、SOPに関連付けられたタイムスタンプを予期して待っている可能性がある。
一実施形態においては、1588論理モジュール116はタイムスタンプをSOPと特定してもよい。SOPのタイムスタンプは補正済みタイムスタンプを計算するために用いられるタイムスタンプである。1588論理モジュール116が受信した他のいずれのタイムスタンプも廃棄される。
一実施形態においては、レーンアラインバッファ132の各レーンについてのフィルレベルは、処理なしでコア論理モジュール110に通される。一実施形態においては、論理バス(LBUS:logic bus)は、出力としてパケットデータ(たとえば、512ビット)を受信する。次いで、LBUSはこの情報を補正論理モジュール118に渡す。補正論理モジュール118は、マルチレーン通信リンクにおけるレーンの各々のデータパケットのために補正済みタイムスタンプを計算し得る。補正論理モジュール118はまた、1588論理モジュールからのSOPの到達時刻についてのタイムスタンプと、レーンアラインバッファ108からのレーンの各々と関連付けられるフィルレベルとを受信する。
一実施形態においては、補正論理モジュール118は、データパケットのタイムスタンプ(たとえば、SOP)、データパケットを担持するレーンについてのフィルレベル、および基準フィルレベルの関数として、補正済みタイムスタンプを計算し得る。一実施形態においては、基準フィルレベルは、最小フィルレベル(たとえば、すべてのレーンのうち最低フィルレベル)、最大フィルレベル(たとえば、すべてのレーンのうち最高フィルレベル)、または、平均フィルレベル(たとえば、レーンの総数によって割られるフィルレベルの合計)であってもよい。
一実施形態においては、レーンのフィルレベルおよび基準フィルレベルは、正の数または負の数であり得る。たとえば、フィルレベルおよび/または基準フィルレベルが正の数または負の数であるかどうかは、レーンのフィルレベルが基準フィルレベルに対して正であるかまたは負であるかどうかに左右され得る。
一実施形態においては、補正論理モジュール118は、レーンのフィルレベルおよび基準フィルレベルによってタイムスタンプを調整することにより、補正済みタイムスタンプを計算する。一実施形態においては、以下の式が用いられてもよい。
式(1):補正済みタイムスタンプ=タイムスタンプ+/−レーンのフィルレベル+/−基準フィルレベル
一実施形態においては、補正論理モジュール118は、計算に一貫性が得られ得るように、すべての値を共通の単位に変換してもよい。たとえば、レーンのフィルレベルおよび基準フィルレベルは、ビット数であってもよい。補正論理モジュール118は、クロックサイクル毎の既知のビット数およびクロックサイクルの周波数に基づいて、フィルレベルおよび基準レベルのビット数をクロックサイクルまたはナノ秒の単位に変換してもよい。たとえば、回路100が66ビット/クロックサイクルを読出し、回路100が1ナノ秒当たり2.1クロックサイクルを有する場合、クロックサイクルまたはナノ秒のいずれかの点から補正済みタイムスタンプが計算され得る。
一実施形態においては、補正済みタイムスタンプが計算されると、レーンの各々におけるデータパケットの各々のためのタイムスタンプが補正済みタイムスタンプと置換えられてもよい。結果として、マルチレーン通信リンクの各々におけるタイムスタンプがスキューに関して補正されるだろう。結果として、スキューによるスレーブクロックの変化に関する上述の問題が、本開示によって解決される可能性がある。
図3は、スキューのあるマルチレーン通信リンクにおけるタイムスタンプを補正するための方法300のフローチャートを示す。一実施形態においては、当該方法300は、図4に例示され以下に記載される汎用コンピュータ(もしくは他のいずれかのハードウェア同等装置)によって、または、上述のとおり論理回路もしくはプログラム可能な集積回路として実現される補正論理118によって、実行されてもよい。
方法300はステップ302から始まる。ステップ304において、方法300では、データパケット、データパケットのためのタイムスタンプ、およびデータパケットを担持するマルチレーン通信リンクのレーンについてのフィルレベルを受信する。たとえば、補正論理モジュールは、データパケット、データパケットのためのタイムスタンプ、およびデータパケットを担持するマルチレーン通信リンクのレーンについてのフィルレベルを受信してもよい。
一実施形態においては、タイムスタンプは、1588論理モジュールによってフィルタリングされてもよく、たとえば、タイムスタンプはパケットの開始(SOP)に関連付けられる。他のすべてのタイムスタンプが廃棄されてもよい。
一実施形態においては、補正論理モジュールは、データパケットを担持するマルチレーン通信リンクにおけるすべてのレーンについてのフィルレベルを受信してもよい。すべてのレーンについてのフィルレベルは基準フィルレベルを選択するかまたは計算するのに用いられてもよい。一実施形態においては、基準フィルレベルは、すべてのフィルレベルのうち最小フィルレベル、すべてのフィルレベルのうち最大フィルレベル、またはすべてのフィルレベルのうち平均フィルレベルであってもよい。
ステップ306において、方法300では、データパケットのための補正済みタイムスタンプを計算する。一実施形態においては、補正論理モジュールは、レーンのフィルレベルおよび基準フィルレベルによってタイムスタンプを調整することにより、補正済みタイムスタンプを計算してもよい。一実施形態においては、レーンのフィルレベルおよび基準フィルレベルは、正の数または負の数であってもよい。たとえば、フィルレベルおよび/または基準フィルレベルが正の数または負の数であるかどうかは、レーンのフィルレベルが基準フィルレベルに対して正であるかまたは負であるかどうかに左右され得る。一実施形態においては、式(1)は、補正済みタイムスタンプを計算するために用いられてもよい。
一実施形態においては、補正論理モジュールは、計算に一貫性が得られ得るように、すべての値を共通の単位に変換してもよい。たとえば、レーンのフィルレベルおよび基準フィルレベルはビット数であってもよい。補正論理モジュールは、クロックサイクル毎の既知のビット数およびクロックサイクルの周波数に基づいて、フィルレベルおよび基準レベルのビット数をクロックサイクルまたはナノ秒の単位に変換してもよい。たとえば、回路100が66ビット/クロックサイクルを読出し、回路100が1ナノ秒当たり2.1クロックサイクルを有する場合、補正済みタイムスタンプがクロックサイクルまたはナノ秒のいずれかの点から計算されてもよい。
ステップ308において、方法300では、データパケットのためのタイムスタンプを補正済みタイムスタンプと置換える。たとえば、SOPについてのタイムスタンプは補正済みタイムスタンプと置換えられてもよい。
ステップ310において、方法300では、タイムスタンプを補正させる必要のあるデータパケットを備えた付加的なレーンがあるかどうかが判断される。ステップ310に対する応答が肯定的である場合、当該方法がステップ304に戻されて、ステップ304、ステップ306およびステップ308が繰返される。言いかえれば、方法300は、マルチレーン通信リンクにおけるそれぞれのデータパケットを有する複数のレーンのレーン毎に繰返されてもよい。
たとえば、方法300がマルチリンク通信パケットのレーン毎に繰返された後、マルチレーン通信リンクの各レーンにおける各SOPのためのタイムスタンプは、補正済みタイムスタンプと置換えられてもよい。結果として、スレーブクロックの精度が向上する。
ステップ310に対する応答が否定的である場合、レーンの各々におけるデータパケットの各々についてのタイムスタンプが補正されている。方法300がステップ312に進められ、そこで終了する。
具体的には規定されていないが、上述される方法300の1つ以上のステップ、ブロックまたは機能が、特定用途のために必要に応じて記憶するステップ、表示するステップおよび/または出力するステップを含み得ることに留意されたい。言い換えれば、当該方法において説明されるいかなるデータ、記録、フィールドおよび/または中間結果も、特定用途のために必要に応じて別の装置に記憶、表示および/または出力され得る。さらに、判断動作を列挙するかまたは決定を含む図3におけるステップ、ブロックまたは機能は、判断動作の分岐がともに実施されることを必ずしも必要とはしない。言いかえれば、判断動作の分岐のうちの一方は任意のステップと見なすことができる。
図4は、この明細書中に記載される機能を実行する際に用いるのに適した汎用コンピュータのハイレベルブロック図を示す。図4に示されるように、システム400は、ハードウェアプロセッサ要素402(たとえば、CPU)、メモリ404、たとえば、ランダムアクセスメモリ(RAM:random access memory)、および/または読取り専用メモリ(ROM:read only memory)、集積回路(IC:integrated circuit)のスキューを含むマルチレーン通信リンクにおけるタイムスタンプを補正するためのモジュール405、たとえば、プログラム可能な集積回路など、ならびに、さまざまな入力/出力装置406、たとえば、テープドライブ、フロッピー(登録商標)ドライブ、ハードディスクドライブまたはコンパクトディスクドライブ、受信機、送信機、スピーカ、ディスプレイ、音声合成装置、出力ポートおよびユーザ入力装置(キーボード、キーパッド、マウスなど)を含むが、これらに限定されない記憶装置、を含む。
本開示が、たとえば、特定用途向け集積回路(ASIC:application specific integrated circuit)、FPGAなどのプログラム可能な集積回路(IC:integrated circuit)、汎用コンピュータまたは他のいずれかのハードウェア相当物を用いて、ソフトウェアで、および/またはソフトウェアとハードウェアとを組合せて実現することができることに留意されたい。たとえば、上述の方法に関するコンピュータ読取り可能な命令は、上述の方法のステップまたは機能を実行するようにハードウェアプロセッサを構成するために用いることができる。一実施形態においては、スキューのあるマルチレーン通信リンクにおけるタイムスタンプを補正するためのこのモジュールまたはプロセス405、たとえばプログラム可能な集積回路は、メモリ404にロードすることができ、ハードウェアプロセッサ402によって実行されて、上述のような機能を実現することができる。このため、本開示の(関連するデータ構造を含む)方法300において上述されるようなIC、たとえばプログラム可能な集積回路、のためにスキューのあるマルチレーン通信リンクにおけるタイムスタンプを補正するためのこのプロセス405は、非一時的な(たとえば、有形的または物理的な)コンピュータ読取可能記憶媒体、たとえばRAMメモリ、磁気ドライブもしくは光ドライブ、またはディスケットなどに格納することができる。
本開示の実施形態も、調整可能なIC、たとえばプログラム可能な集積回路、によって全体的または部分的に実現され得る。より具体的には、プログラム可能な集積回路は、さまざまな選択された機能を実現するためにユーザによってプログラムすることができる汎用装置である。プログラム可能な集積回路は、一連の構成可能論理ブロック(CLB:configurable logic block)および複数の入出力ブロック(IOB:input/output block)を含んでもよい。CLBは、個々にプログラム可能であり、少数の入力信号でさまざまな論理関数を実行するように構成することができる。IOBは、プログラム可能な集積回路のCLBから外部ピンにまで出力信号を駆動するように、および/または、外部のプログラム可能な集積回路ピンから入力信号を受信するように、構成することができる。プログラム可能な集積回路はまた、多くの入力信号のより多くの複素関数を生成するために、さまざまなCLBおよびIOBの中から信号を選択的にルーティングするようにプログラムすることができるプログラム可能な相互接続構造を含む。CLB、IOBおよびプログラム可能な相互接続構造は、プログラム可能な集積回路におけるユーザ設計を実現するように構成データによって特定された論理およびルーティング機能を実現するために、CLB、IOBおよび相互接続構造内におけるさまざまなスイッチおよびマルチプレクサを制御する関連するメモリセルに構成データをロードすることによって、プログラムされる。プログラム可能な集積回路はまた、他のプログラム可能およびプログラム不可能なリソースを含んでもよい。このため、図1および図2に関連付けて上述された回路は、図1および図2の回路のうちいずれか1つ以上の回路が有する1つ以上のいずれかの構成要素の同等の論理演算を実行する複数のCLBにおいて実現されてもよい。このため、一実施形態においては、システム400は、上に開示されるようなさまざまな機能を実行するようにプログラム可能な集積回路を構成するための必要な構成データ/命令を生成するように構成することができる。
上述において、本開示の1つ以上の局面に従って例示的な実施形態を説明しているが、添付の特許請求の範囲およびその同等物によって決定される範囲から逸脱することなく、本開示の1つ以上の局面に従った他の実施形態およびさらなる実施形態が考案され得る。ステップを列挙する請求項は、当該ステップの如何なる順序をも示唆するものではない。商標はそれぞれの商標権所有者の所有物である。

Claims (13)

  1. 複数のレーンを有するマルチレーン通信リンクにおけるタイムスタンプを補正するための方法であって、
    データパケット、データパケットのためのタイムスタンプ、およびデータパケットを担持する複数のレーンのうち或るレーンについてのフィルレベルを受信するステップを含み、フィルレベルは、複数のレーンのうち他のレーンに対する前記或るレーンのスキューを補償するために用いられるビット数を含み、前記方法はさらに、
    少なくともタイムスタンプ、フィルレベル、および複数のレーンすべてについてのそれぞれのフィルレベルから得られる基準フィルレベルの関数として、データパケットのための補正済みタイムスタンプを計算するステップと、
    データパケットのためのタイムスタンプを補正済みタイムスタンプと置換えるステップとを含む、方法。
  2. 前記受信するステップ、前記計算するステップおよび前記置換えるステップが、それぞれのデータパケットを有する複数のレーンのレーン毎に繰返される請求項1に記載の方法。
  3. タイムスタンプは、データパケットの開始のタイムスタンプに対応する請求項1または2に記載の方法。
  4. タイムスタンプは、データパケットを含む入力信号を複数のレーンに分割するギアボックスの後に、直列化/非直列化クロックドメインにおいてクロックサイクル毎に取込まれる、請求項1から3のいずれかに記載の方法。
  5. フィルレベルは、1ビット以上の基準を含む、請求項1から4のいずれかに記載の方法。
  6. フィルレベルは、第1のクロックドメインにおける読出しポインタと第2のクロックドメインにおける書込みポインタとの時間平均に基づいて、複数のレーンのレーン毎に先入れ先出しバッファによって計算される、請求項1から5のいずれかに記載の方法。
  7. 基準フィルレベルはそれぞれのフィルレベルすべてのうち最低フィルレベルを含む、請求項1に記載の方法。
  8. 基準フィルレベルはそれぞれのフィルレベルすべてのうち最高フィルレベルを含む、請求項1に記載の方法。
  9. 基準フィルレベルはそれぞれのフィルレベルすべてから計算される平均フィルレベルを含む、請求項1に記載の方法。
  10. タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルは各々、クロックサイクルの単位に変換される、請求項7から9のいずれかに記載の方法。
  11. タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルは各々、ナノ秒の単位に変換される、請求項7から9のいずれかに記載の方法。
  12. 集積回路であって、
    入力信号を複数のレーンに分割するためのデマルチプレクサおよびギアボックスモジュールを含み、各々のレーンは少なくとも1つのデータパケットを担持し、前記集積回路はさらに、
    少なくとも1つのデータパケットの各々のためのタイムスタンプを取込むためのタイムスタンプ取込みモジュールと、
    複数のレーンの各レーンについてのフィルレベルを生成するためのレーンアラインバッファとを含み、フィルレベルは、複数のレーンのうち他のレーンに対する複数のレーンの前記各々のレーンのスキューを補償するために用いられるビット数を含み、前記集積回路はさらに、
    補正論理モジュールを含み、前記補正論理モジュールは、少なくとも1つのデータパケット、少なくとも1つのデータパケットのためのタイムスタンプ、および、少なくとも1つのデータパケットを担持する複数のレーンの各レーンについてのフィルレベルを受信し、少なくともタイムスタンプ、少なくとも1つのデータパケットを担持する複数のレーンのうち或るレーンのフィルレベル、および複数のレーンすべてについてのそれぞれのフィルレベルから得られる基準フィルレベルの関数として、少なくとも1つのデータパケットのための補正済みタイムスタンプを計算し、少なくとも1つのデータパケットのためのタイムスタンプを補正済みタイムスタンプと置換えるためのものである、集積回路。
  13. 基準フィルレベルは、最少フィルレベルまたは最大フィルレベルまたは平均フィルレベルを含む、請求項12に記載の集積回路。
JP2016504323A 2013-03-18 2014-03-17 スキューのあるマルチレーン通信リンクにおけるタイムスタンプ補正 Active JP6149150B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/846,683 US9167058B2 (en) 2013-03-18 2013-03-18 Timestamp correction in a multi-lane communication link with skew
US13/846,683 2013-03-18
PCT/US2014/030774 WO2014153298A2 (en) 2013-03-18 2014-03-17 Timestamp correction in a multi-lane communication link with skew

Publications (3)

Publication Number Publication Date
JP2016517680A JP2016517680A (ja) 2016-06-16
JP2016517680A5 JP2016517680A5 (ja) 2017-06-08
JP6149150B2 true JP6149150B2 (ja) 2017-06-14

Family

ID=50694016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016504323A Active JP6149150B2 (ja) 2013-03-18 2014-03-17 スキューのあるマルチレーン通信リンクにおけるタイムスタンプ補正

Country Status (6)

Country Link
US (1) US9167058B2 (ja)
EP (1) EP2976866B1 (ja)
JP (1) JP6149150B2 (ja)
KR (1) KR102091302B1 (ja)
CN (1) CN105379220B (ja)
WO (1) WO2014153298A2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9619478B1 (en) * 2013-12-18 2017-04-11 EMC IP Holding Company LLC Method and system for compressing logs
CN106126466B (zh) * 2016-06-27 2019-10-11 哈尔滨明快机电科技有限公司 一种并行数据变串行数据的传输方法
CN108880723B (zh) * 2017-05-16 2020-12-11 深圳市中兴软件有限责任公司 一种时钟同步的方法和装置
AU2017437863B2 (en) 2017-10-30 2023-04-06 Huawei Technologies Co., Ltd. Clock synchronization method and apparatus
US11153191B2 (en) 2018-01-19 2021-10-19 Intel Corporation Technologies for timestamping with error correction
US10686581B2 (en) * 2018-02-20 2020-06-16 Keysight Technologies, Inc. Methods, systems, and computer readable media for transmit timestamp autocalibration
US10291247B1 (en) 2018-03-07 2019-05-14 Xilinx, Inc. Chopping switch time-skew calibration in time-interleaved analog-to-digital converters
CN111355549B (zh) * 2018-12-21 2023-05-02 深圳市中兴微电子技术有限公司 一种数据保护方法及装置
US10956124B2 (en) * 2019-03-18 2021-03-23 Viavi Solutions Inc. Slip detection on multi-lane serial datalinks
US11265096B2 (en) 2019-05-13 2022-03-01 Intel Corporation High accuracy time stamping for multi-lane ports
US11140097B2 (en) * 2019-10-09 2021-10-05 Arista Networks, Inc. Cross point switch of network device for reordering lanes of network interfaces
US11637645B1 (en) 2020-09-18 2023-04-25 Xilinx, Inc. Method for time stamping with increased accuracy
US20220006607A1 (en) * 2020-12-26 2022-01-06 Intel Corporation Timestamp alignment for multiple nodes

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040213155A1 (en) * 2001-03-29 2004-10-28 Mitel Semiconductor V.N. Inc. Multi-processor data traffic shaping and forwarding
US7668243B2 (en) 2004-05-18 2010-02-23 Texas Instruments Incorporated Audio and video clock synchronization in a wireless network
US8194662B2 (en) * 2006-06-08 2012-06-05 Ilnickl Slawomir K Inspection of data
JP5230367B2 (ja) 2008-06-03 2013-07-10 日本電信電話株式会社 パラレル光伝送装置及び方法
US8135105B2 (en) * 2008-06-17 2012-03-13 Integraded Device Technologies, Inc. Circuit for correcting an output clock frequency in a receiving device
JP5203153B2 (ja) 2008-11-28 2013-06-05 日本電信電話株式会社 パラレル伝送方法及びパラレル伝送装置
CN101888292B (zh) * 2009-05-13 2014-07-16 中兴通讯股份有限公司 基于包交换的时钟同步方法及装置
US9065736B2 (en) * 2009-06-08 2015-06-23 Broadcom Corporation Method and system for compensated time stamping for time-sensitive network communications
JP5544896B2 (ja) * 2010-01-22 2014-07-09 富士通株式会社 受信回路、情報処理装置、およびバッファ制御方法
JP5525942B2 (ja) * 2010-07-06 2014-06-18 アンリツ株式会社 先頭レーン検出回路及び方法並びにデスキュー回路及び方法
US20120030438A1 (en) * 2010-07-29 2012-02-02 Sarance Technologies Inc. Method and Apparatus for Performing Skew Removal in the Receiver of a Multi-Lane Communication Link
CN104380632B (zh) * 2012-06-26 2018-04-24 马维尔国际贸易有限公司 用于精确加时间戳的方法和装置
US8971352B2 (en) * 2012-09-28 2015-03-03 Thomas Jost High accuracy 1588 timestamping over high speed multi lane distribution physical code sublayers

Also Published As

Publication number Publication date
US9167058B2 (en) 2015-10-20
KR102091302B1 (ko) 2020-03-19
EP2976866B1 (en) 2017-05-03
JP2016517680A (ja) 2016-06-16
WO2014153298A3 (en) 2014-12-04
EP2976866A2 (en) 2016-01-27
US20140269769A1 (en) 2014-09-18
CN105379220B (zh) 2017-12-01
WO2014153298A2 (en) 2014-09-25
CN105379220A (zh) 2016-03-02
KR20150133220A (ko) 2015-11-27

Similar Documents

Publication Publication Date Title
JP6149150B2 (ja) スキューのあるマルチレーン通信リンクにおけるタイムスタンプ補正
EP3739775A1 (en) High accuracy time stamping for multi-lane ports
US7054331B1 (en) Multi-lane receiver de-skewing
US9602271B2 (en) Sub-nanosecond distributed clock synchronization using alignment marker in ethernet IEEE 1588 protocol
US7434192B2 (en) Techniques for optimizing design of a hard intellectual property block for data transmission
US6757348B1 (en) High-speed coordinated multi-channel elastic buffer
TWI723006B (zh) 使用經校準、單一時脈來源同步串列器-解串列器協定之高速資料傳輸
US9268888B1 (en) Latency computation circuitry
KR101229840B1 (ko) 수신 회로, 정보 처리 장치 및 버퍼 제어 방법
JP2016517680A5 (ja)
US20120030438A1 (en) Method and Apparatus for Performing Skew Removal in the Receiver of a Multi-Lane Communication Link
JP6261822B2 (ja) 時刻同期装置及び時刻同期システム及び時刻同期方法
JP2013034133A (ja) 送信装置、送受信システムおよび制御方法
US20120317380A1 (en) Device and method for a half-rate clock elasticity fifo
US9111042B1 (en) 1588 deterministic latency with gearbox
JP2008172657A (ja) 受信装置
US11178055B2 (en) Methods and apparatus for providing deterministic latency for communications interfaces
CN114884605A (zh) 基于fpga实现网络节点时间同步的方法
US8405533B2 (en) Providing a feedback loop in a low latency serial interconnect architecture
US20070255867A1 (en) Early HSS Rx Data Sampling
CN114138054A (zh) 一种时间戳获取方法、装置、电子设备及存储介质
Popa The Read-Out Controller (ROC)
JP5742461B2 (ja) 信号伝送装置
WO2024086657A1 (en) Low latency pcie retimer with skew correction
CA2712865A1 (en) Channel skew identification and notification

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170124

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170124

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170124

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170214

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20170419

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170522

R150 Certificate of patent or registration of utility model

Ref document number: 6149150

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250