(57)【要約】  スキューのあるマルチレーン通信リンクにおけるタイムスタンプを補正するための方法、非一時的なコンピュータ読取可能媒体（４０４）、および装置（１，１８，４００）を開示する。たとえば、方法では、データパケット、データパケットのためのタイムスタンプ、およびデータパケットを担持するマルチレーン通信リンクのレーン（９９）についてのフィルレベルを受信し、データパケットのための補正済みタイムスタンプを計算し、データパケットのためのタイムスタンプを補正済みタイムスタンプと置換える。
2016517680.tif 000002
【特許請求の範囲】
【請求項１】
マルチレーン通信リンクにおけるタイムスタンプを補正するための方法であって、
データパケット、データパケットのためのタイムスタンプ、およびデータパケットを担持するマルチレーン通信リンクのレーンについてのフィルレベルを受信するステップと、
データパケットのための補正済みタイムスタンプを計算するステップと、
データパケットのためのタイムスタンプを補正済みタイムスタンプと置換えるステップとを含む、方法。
【請求項２】
前記受信するステップ、前記計算するステップおよび前記置換えるステップが、マルチレーン通信リンクにおけるそれぞれのデータパケットを有する複数のレーンのレーン毎に繰返される。請求項１に記載の方法。
【請求項３】
タイムスタンプは、データパケットの開始のタイムスタンプに対応する。請求項１または２に記載の方法。
【請求項４】
タイムスタンプは、直列化／非直列化クロックドメインにおいてクロックサイクル毎にギアボックスの後に取込まれる、請求項１から３のいずれかに記載の方法。
【請求項５】
フィルレベルは、１ビット以上の基準を含む、請求項１から４のいずれかに記載の方法。
【請求項６】
フィルレベルは、第１のクロックドメインにおける読出しポインタと第２のクロックドメインにおける書込みポインタとの時間平均に基づいて、マルチレーン通信リンクにおける複数のレーンのレーン毎に先入れ先出しバッファによって計算される、請求項１から５のいずれかに記載の方法。
【請求項７】
前記計算するステップは、タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルの関数である、請求項１から６のいずれかに記載の方法。
【請求項８】
基準フィルレベルは最小フィルを含む、請求項７に記載の方法。
【請求項９】
基準フィルレベルは最大フィルレベルを含む、請求項７に記載の方法。
【請求項１０】
基準フィルレベルは平均フィルレベルを含む、請求項７に記載の方法。
【請求項１１】
タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルは各々、クロックサイクルの単位に変換される、請求項７から１０のいずれかに記載の方法。
【請求項１２】
タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルは各々、ナノ秒の単位に変換される、請求項７から１１のいずれかに記載の方法。
【請求項１３】
集積回路であって、
入力信号を複数のレーンに分割するためのデマルチプレクサおよびギアボックスモジュールを含み、各々のレーンは少なくとも１つのデータパケットを担持し、前記集積回路はさらに、
少なくとも１つのデータパケットの各々のためのタイムスタンプを取込むためのタイムスタンプ取込みモジュールと、
複数のレーンの各レーンについてのフィルレベルを生成するためのレーンアラインバッファと、
補正論理モジュールとを含み、前記補正論理モジュールは、少なくとも１つのデータパケット、少なくとも１つのデータパケットのためのタイムスタンプ、および、少なくとも１つのデータパケットを担持する複数のレーンの各レーンについてのフィルレベルを受信し、少なくとも１つのデータパケットのための補正済みタイムスタンプを計算し、少なくとも１つのデータパケットのためのタイムスタンプを補正済みタイムスタンプと置換えるためのものである、集積回路。
【請求項１４】
補正論理は、タイムスタンプ、少なくとも１つのデータパケットを担持する複数のレーンのうち或るレーンのフィルレベルおよび基準フィルレベルの関数として、補正済みタイムスタンプを計算する、請求項１３に記載の集積回路。
【請求項１５】
基準フィルレベルは、最少フィルレベルまたは最大フィルレベルまたは平均フィルレベルを含む、請求項１２に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本開示は、概して、スキューのあるマルチレーン通信リンク（たとえば、イーサネット（登録商標）回路）に関し、より特定的には、スキューのあるマルチレーン通信リンクにおけるタイムスタンプ補正のための方法および装置に関する。
【背景技術】
【０００２】
発明の背景
デジタル通信リンクがますます高速になるのにつれて、多くの技術的困難が生じる。通信チャネルの速度を制限する要因の１つとして物理的な電気リンクの特性が挙げられる。この特性は、通常、最新の電気集積回路技術によって所望の総通信速度よりも著しく低くなるように制約されている。したがって、総論理リンク速度をより高速にするためにいくつかの並列物理通信レーンを用いることが一般的である。これはマルチレーン分配（ＭＬＤ：Multi-Lane Distribution）として公知である。
【０００３】
さらに、送信機から受信機への伝達中に個々の高速レーンがさまざまな手段によって損なわれてしまうと、物理通信レーンの数の再組合わせを如何に行い得るかについて問題が生じる。送信前に個々のビットを集合リンクに対応する所定の順序になるよう正確に再度組合せることができるように、さまざまな個々のレーンの到達時間差を補正する必要がある。たとえば、個々のレーン上に到達するビットは、ワイヤまたはプリント回路基板（ＰＣＢ：printed circuit board）トレースの長さが異なっているせいで到達時間が歪んでしまっている可能性がある。タイムスタンプがわずかに異なっていると、場合によっては、スレーブクロックに変化をもたらす可能性がある。
【０００４】
論理レーンがさまざまな異なるタイプの物理レーン、たとえば電気レーンまたは光レーン上で多重化されると、さらなる問題が生じる。論理レーンが或る物理レーンから別の（電気または光）レーンにまで移動すると、その論理レーンの遅延が変化する。なぜなら、論理レーンを担持することになっている物理レーンが遅延することよって論理レーンが制限されてしまうからである。
【発明の概要】
【課題を解決するための手段】
【０００５】
発明の概要
マルチレーン通信リンクにおけるタイムスタンプを補正するための方法が開示される。当該方法の一実施形態はデータパケット、データパケットのためのタイムスタンプ、およびデータパケットを担持するマルチレーン通信リンクのレーンについてのフィルレベルを受信するステップと、データパケットのための補正済みタイムスタンプを計算するステップと、データパケットのためのタイムスタンプを補正済みタイムスタンプと置換えるステップとを含む。
【０００６】
当該方法のさまざまな実施形態においては、受信するステップ、計算するステップおよび置換えるステップは、マルチレーン通信リンクにおけるそれぞれのデータパケットを有する複数のレーンのレーン毎に繰返される。タイムスタンプは、データパケットの開始のタイムスタンプに対応する。タイムスタンプは、直列化／非直列化クロックドメインにおいてクロックサイクル毎にギアボックスモジュールの後に取込まれる。フィルレベルは、１ビット以上の基準を含む。フィルレベルは、第１のクロックドメインにおける読出しポインタと第２のクロックドメインにおける書込みポインタとの時間平均に基づいて、マルチレーン通信リンクにおける複数のレーンのレーン毎に先入れ先出しバッファによって計算される。計算するステップは、タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルの関数である。基準フィルレベルは最小フィルレベルを含む。基準フィルレベルは最大フィルレベルを含む。基準フィルレベルは平均フィルレベルを含む。タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルは各々、クロックサイクルの単位に変換される。タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルは各々、ナノ秒の単位に変換される。
【０００７】
別の実施形態に従うと、集積回路は、入力信号を複数のレーンに分割するためのデマルチプレクサおよびギアボックスモジュールを含む。各々のレーンは少なくとも１つのデータパケットを担持する。集積回路はさらに、少なくとも１つのデータパケットの各々のためのタイムスタンプを取込むためのタイムスタンプ取込みモジュールと、複数のレーンの各レーンについてのフィルレベルを生成するためのレーンアラインバッファと、補正論理モジュールとを含む。補正論理モジュールは、少なくとも１つのデータパケット、少なくとも１つのデータパケットのためのタイムスタンプ、および、少なくとも１つのデータパケットを担持する複数のレーンの各レーンについてのフィルレベルを受信し、少なくとも１つのデータパケットのための補正済みタイムスタンプを計算し、少なくとも１つのデータパケットのためのタイムスタンプを補正済みタイムスタンプと置換えるためのものである。
【０００８】
集積回路のさまざまな実施形態においては、補正論理は、タイムスタンプ、少なくとも１つのデータパケットを担持する複数のレーンのうち或るレーンのフィルレベルおよび基準フィルレベルの関数として、補正済みタイムスタンプを計算する。基準フィルレベルは最小フィルレベルを含む。基準フィルレベルは最大フィルレベルを含む。基準フィルレベルは平均フィルレベルを含む。補正論理モジュールは、タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルをクロックサイクルの単位に変換して、計算を実行する。補正論理モジュールは、タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルをナノ秒の単位に変換して、計算を実行する。
【０００９】
別の実施形態に従うと、複数の命令を格納する非一時的なコンピュータ読取可能媒体が提供される。当該複数の命令は、プロセッサによって実行されると、プロセッサにマルチレーン通信リンクにおけるタイムスタンプを補正するための動作を実行させる。非一時的なコンピュータ読取可能媒体の動作は、データパケット、データパケットのためのタイムスタンプ、およびデータパケットを担持するマルチレーン通信リンクのレーンについてのフィルレベルを受信すること、データパケットのための補正済みタイムスタンプを計算すること、ならびに、データパケットのためのタイムスタンプを補正済みタイムスタンプと置換えることを含む。
【００１０】
図面の簡単な説明
添付の図面は、開示された１つ以上の局面に従った例示的な実施形態を示す。しかしながら、添付の図面は、図示された実施形態に開示内容を限定するよう理解されるべきではなく、説明および理解のみを目的としたものである。
【図面の簡単な説明】
【００１１】
【図１】スキューのあるマルチレーン通信リンクにおけるタイムスタンプを補正するためのブロック回路図の一例を示す図である。
【図２】マルチレーン通信リンクの各レーンについてのフィルレベルを計算するアライメント論理の一例を示す図である。
【図３】スキューのあるマルチレーン通信リンクにおけるタイムスタンプを補正するための方法についての一実施形態の例示的なフローチャートを示す図である。
【図４】この明細書中に記載される機能を実行する際に用いるのに適した汎用コンピュータを示すハイレベルブロック図である。
【発明を実施するための形態】
【００１２】
理解し易くするために、図において共通する同一の要素を指定するために、可能な限り、同一の参照数字を用いた。
【００１３】
図面の詳細な説明
本開示は、スキューのあるマルチレーン通信リンクにおけるタイムスタンプを補正するための方法、非一時的なコンピュータ読取可能媒体および装置を広く開示する。上述のとおり、マルチレーン通信チャネルにおいては、特定のパケットの開始がいずれのレーン上にも生じる可能性がある。各々のレーンには、スキューとして知られるさまざまな遅延が生じ得るので、各々のレーンはわずかに異なるタイムスタンプを呈することとなり、これが、場合によっては、スレーブクロックに変化をもたらす可能性がある。
【００１４】
本開示の一実施形態では、予想される相対遅延を均等にするようなサイズである小型バッファによって各々のレーンにおける相対遅延を説明する。次いで、レーンバッファごとに格納されたデータの相対量はタイムスタンプに加えられる補正を推測するために用いられる。これにより、スレーブクロックの精度が向上する。
【００１５】
図１は、スキューのあるマルチレーン通信リンクにおけるタイムスタンプを補正するためのブロック回路図１００の一例のブロック図を示す。一実施形態においては、ブロック回路図１００は、マルチレーン通信リンクの受信機部を示す。言いかえれば、ブロック回路図１００は、送信部および受信機部を有する、より大きなネットワークの一部であってもよい。一実施形態においては、スキューはシステム全体（たとえば、送信機部および受信機部）に起因し得るものであるが、スキューは受信機部においてしか対処されていない。そのため、本開示の実施形態を説明する目的で受信機部が例示されている。
【００１６】
一実施形態においては、マルチレーン通信リンクはイーサネット（登録商標）回線インターフェイスであってもよい。たとえば、イーサネット回線インターフェイスは４０ギガビットイーサネット（ＧＢＥ：gigabit Ethernet）または１００ＧＢＥであってもよい。ここで１００ＧＢＥを参照しながら本開示を説明するが、本開示がいかなるマルチレーン通信リンクにも適用され得ることに留意されたい。
【００１７】
一実施形態においては、入力１２０は、物理コーディングサブレイヤ（ＰＣＳ：physical coding sub-layer）レーンデマルチプレクサ（ＤＥＭＵＸ：demultiplexer）１０２およびギアボックスモジュール１０４によって受信されてもよい。１００ＧＢＥの場合、入力１２０は、４×２５ＧＢＥレーンにわたってストライプ模様を呈する１０個のレーンを含んでもよい。次いで、デマルチプレクサおよびギアボックスは、各々が５ＧＢＥである２０個の仮想レーンを生成し得る。デマルチプレクサおよびギアボックスは別個のモジュールとして例示的に示されているが、これらの２つのモジュールによって実行される機能または動作は、単一のモジュールに実現することができる。
【００１８】
一実施形態においては、各々のレーンにおける各データパケットのためのタイムスタンプは、タイムスタンプ取込みモジュール１０６におけるギアボックス１０４の後に取込まれてもよい。タイムスタンプは、タイムスタンプ取込みモジュール１０６の「時間入力」信号に従って決定されてもよい。「時間入力」は実時間を表わすクロックであり得る。一実施形態においては、「時間入力」信号は、予め規定されたフィールドにおいて、予め規定されたフォーマット、符号化およびエポックで秒およびナノ秒からなる８０ビット値であってもよい。一実施形態においては、「時間入力」は絶えず変化する。
【００１９】
一実施形態においては、タイムスタンプは、破線１５２によって範囲が定められる直列化／非直列化（ＳｅｒＤｅｓ：serialize/deserialize）クロックのクロックサイクル毎にデマルチプレクサおよびギアボックスの後に、取込まれてもよい。一実施形態においては、これは、以下にさらに詳細に説明するように、補正済みタイムスタンプを計算するために用いられるタイムスタンプである。なお、一貫して同じものが用いられる限り、タイムスタンプを取込むためにいかなる任意のデマルチプレクサおよびギアボックスが用いられてもよいことに留意されたい。
【００２０】
一実施形態においては、時間「ｔ」は、取込みポイントと任意の基準面１５０との間の時間を表わす。一実施形態においては、ＳｅｒＤｅｓからギアボックスまでのデータの転送時間が分かっているので、時間「ｔ」は、タイムスタンプに基準面１５０を参照させるためにタイムスタンプから減じられてもよい。一実施形態においては、レーンの各々のためのタイムスタンプが、通信バス１６０を介し、ライン１３０を通ってコア論理１１０に送信されてもよい。
【００２１】
一実施形態においては、２０個のレーンの各々におけるデータパケットがレーンアラインバッファ１０８に渡される。一実施形態においては、レーンアラインバッファは先入れ先出し（ＦＩＦＯ：first-in-first-out）メモリバッファであってもよい。一実施形態においては、レーンアラインバッファ１０８は、マルチレーン通信リンクの各レーンのためのＦＩＦＯメモリバッファを含む。
【００２２】
一実施形態においては、各々のＦＩＦＯメモリバッファは、計算されるかまたは予め決定されるフィルレベルを有してもよい。フィルレベルは、マルチレーン通信リンク内における他のレーンに対する如何なるスキュー（たとえば時間遅延）をも補償するために用いられる１ビット以上を含んでもよい。一実施形態においては、各々のレーンについてのフィルレベル、基準フィルレベルおよびタイムスタンプを用いて、データパケットのための補正済みタイムスタンプを計算してもよい。
【００２３】
図２は、アライメント論理の一例と、マルチレーン通信リンクの各レーンについてフィルレベルがどのように計算され得るかとを例示する。高レベルでは、異なるクロックドメインＣｌｏｃｋ＿Ｒ２０８およびＣｌｏｃｋ＿Ｃ２２２の上にあり得る、Ｒｅａｄ＿Ｅｎ２２１を生成する読出しポインタとＷｒｉｔｅ＿Ｅｎ２２０を生成する書込みポインタとの時間平均によって、各々のレーンについてのフィルレベルが決定され得る。
【００２４】
図２をより詳細に参照すると、４つのレーン９９の各々は、それ自体の受信ＳｅｒＤｅｓ２００において終端となり、その各々は、Ｃｌｏｃｋ＿Ｒ２０８およびデータ２０７を回復させるための公知の回路や、さらには、各々の直列レーンをｎ個の並列ラインに変換する公知の多重分離回路を含む。例では４つのレーンを示しているが、本開示がレーンの数によって限定されないことが理解されなければならない。以下において説明されるアライメント検出器２０１およびメモリ２０２がレーン毎に繰返されるが、これらが共通のシステムの一部としてソフトウェアで実現され得ることが理解されるだろう。一実施形態においては、メモリ２０２は図１に示されるレーンアラインバッファ１０８と同様である。
【００２５】
データ２０７は、以下の機能のうち少なくとも１つを実行するアライメント検出回路２０１に転送される。以下の機能とは、すなわち、ワード境界を決定する機能、必要に応じてビットを反転させる機能、解読する機能、３２ビット周期冗長検査（ＣＲＣ３２）、同期のために用いられるビットパターンを識別する機能、および、そのビットパターンの存在を表示する機能を含む。いくつかの実施形態においては、解読およびＣＲＣ３２などの機能は、たとえば８０２．３ｂａイーサネットの場合、アライメント検出器においては不要である。いくつかの実施形態においては、ビット同期化ビットパターンを識別するには、インターラーケン（Interlaken）プロトコルの場合には、パターンが２回以上、たとえば４回、検出されることが必要である。同期パターンが確実に検出されたとき、信号２１０「検出済み同期ワード（Synch Word Detected）」には値ＴＲＵＥが割当てられる。インターラーケンプロトコルの場合に少なくとも１回、たとえば４回、検出を行うには、いくつかの実施形態における同期ワードの確実な検出が必要とされる。同期パターンが確実に検出されない場合、検出済み同期ワード信号２１０には値ＦＡＬＳＥが割当てられる。いくつかの実施形態においては、エラーの検出を２回以上、たとえばインターラーケンプロトコルの場合には４回、行った後、同期パターンの検出が不確実になる。
【００２６】
ＴＲＵＥ値を有する信号２１０の条件は、Ｗｒｉｔｅ＿Ｅｎ信号２２０がアサートされた結果、Ｃｌｏｃｋ＿Ｒがデータ２０９をＦＩＦＯメモリ２０２に書込むことを引起こすだろう。いくつかの実施形態においては、同期ワードは、たとえばアライメントパターンなどの他のさまざまな名前で既知であってもよく、または、無名であってもよいが、同じ機能を実行することにより、さまざまなレーン上におけるデータの到達時間のずれを補正する手段を提供し得る。
【００２７】
データは、文字「Ｄ」によって指定される第１のメモリ位置２４０における同期ワードの後における第１の有効データワードから始まって順々に、ＦＩＦＯ２０２に書込まれる。次いで、後続の受信データが、受信されると順次、ＦＩＦＯに書込まれる。この後続の受信データは、データ（Ｄ）または制御情報（Ｃ）などのさまざまな情報を含み得る。
【００２８】
各々のレーンのための受信機は、集められた信号２３０として示される同期ワード信号２１０の検出に対応する出力を各々が備えるアライメント検出回路２０１の複製と、ＦＩＦＯメモリ２０２の複製とを含む。ＴＲＵＥであるすべての検出信号の条件が発生すると、回路２０５はＴＲＵＥ出力信号２２１（たとえば、Ｒｅａｄ＿Ｅｎ信号）を生成する。これは、それぞれの出力論理で４つのＦＩＦＯ回路すべてに同時に提示される。Ｒｅａｄ＿Ｅｎ信号２２１がＴＲＵＥである場合、Ｃｌｏｃｋ＿Ｃ２２２がアクティブになって、ＦＩＦＯ２０２に格納されたのと同じ順序でデータ２２４を読出す。
【００２９】
この手順の後、４つのレーン毎のデータ２２４が、スキューが除去されてしまうように時間内に位置合わせされることが確実にされる。出力回路２０３は、正確な時間にすべてのレーンから並列にデータ２５０を受信する。なぜなら、Ｒｅａｄ＿Ｅｎ２２１が各ＦＩＦＯの出力ポートに分配されるからである。いくつかの実施形態においては、回路２０３は、たとえば、１つ以上のレーン上で障害があった場合には、総数のレーンよりも少ない数のレーンからデータ２５０を受信する。総トラヒックがより少数のレーンによってサポートされ得る場合、回路２０３はまた、総数のレーンよりも少ない数のレーンを読出すようにプログラムされる可能性がある。この場合、未使用のレーンは電力を節約するために遮断される可能性がある。
【００３０】
回路２０３による付加的な処理の後、デスキューされたデータは、ｊ個の物理行から構成されるデータリンク２２５上での後続の処理または送信のために他の回路に利用可能となる。この場合、ｊは少なくとも１である。なお、ＦＩＦＯがオーバーフローしないような速度でデータをＦＩＦＯから読出すことができるのであれば、Ｃｌｏｃｋ＿ＣがＣｌｏｃｋ＿Ｒと同じ周波数でなくてもよいことに留意されたい。したがって、この方法によって、回路の追加なしでもクロックドメイン適合機能が実行され得ることが認められるだろう。ＦＩＦＯ２０２が、読出し前にメモリ位置を使い果たしてしまった場合、オーバーフロー信号２２６がＴＲＵＥの値に設定される。通常の動作条件下では、ｆ（Ｃｌｏｃｋ＿Ｃ）＞＝ｆ（Ｃｌｏｃｋ＿Ｒ）という要件のせいで、オーバーフロー＝ＴＲＵＥとはならないだろう。しかしながら、グリッチまたは他の外部エラーがＦＩＦＯオーバーフローを引起こす場合、この信号は、論理をリセットするかまたはアラームを発生させるなどの補正動作を行うために使用可能となる。
【００３１】
図１を再び参照すると、各レーンについてのフィルレベルが計算または決定されると、各レーンについてのフィルレベルが、通信バス１６０を介し、ライン１３２を通ってコア論理モジュール１１０に送信されてもよい。加えて、データパケットは、通信バス１６０を介し、ライン１３４を通ってコア論理モジュール１１０に送信されてもよい。
【００３２】
一実施形態においては、コア論理モジュール１１０は、物理コーディングサブレイヤ（ＰＣＳ：physical coding sub-layer）デコーダ１１２、メディアアクセスコントローラ（ＭＡＣ：media access controller）１１４、および１５８８論理モジュール１１６を含み得る。一実施形態においては、データパケットは、ＰＣＳデコーダ１１２に供給されて復号されてもよい。一実施形態においては、ＰＣＳデコーダ１１２は、パケットの開始（ＳＯＰ：Start of a Packet）および各々のＳＯＰに関連付けられたレーンを識別し得る。
【００３３】
一実施形態においては、１５８８論理モジュール１１６は、ＳＯＰ、ＰＣＳデコーダ１１２からの、各ＳＯＰに関連付けられたレーン、および、タイムスタンプ取込み１０６からのタイムスタンプを受信し得る。一実施形態においては、１５８８論理モジュール１１６は、ＩＥＥＥ１５８８によって規定されるように特定のタイムスタンプを予期して待っている論理モジュールを含み得る。特に、１５８８論理モジュール１１６は、ＳＯＰに関連付けられたタイムスタンプを予期して待っている可能性がある。
【００３４】
一実施形態においては、１５８８論理モジュール１１６はタイムスタンプをＳＯＰと特定してもよい。ＳＯＰのタイムスタンプは補正済みタイムスタンプを計算するために用いられるタイムスタンプである。１５８８論理モジュール１１６が受信した他のいずれのタイムスタンプも廃棄される。
【００３５】
一実施形態においては、レーンアラインバッファ１３２の各レーンについてのフィルレベルは、処理なしでコア論理モジュール１１０に通される。一実施形態においては、論理バス（ＬＢＵＳ：logic bus）は、出力としてパケットデータ（たとえば、５１２ビット）を受信する。次いで、ＬＢＵＳはこの情報を補正論理モジュール１１８に渡す。補正論理モジュール１１８は、マルチレーン通信リンクにおけるレーンの各々のデータパケットのために補正済みタイムスタンプを計算し得る。補正論理モジュール１１８はまた、１５８８論理モジュールからのＳＯＰの到達時刻についてのタイムスタンプと、レーンアラインバッファ１０８からのレーンの各々と関連付けられるフィルレベルとを受信する。
【００３６】
一実施形態においては、補正論理モジュール１１８は、データパケットのタイムスタンプ（たとえば、ＳＯＰ）、データパケットを担持するレーンについてのフィルレベル、および基準フィルレベルの関数として、補正済みタイムスタンプを計算し得る。一実施形態においては、基準フィルレベルは、最小フィルレベル（たとえば、すべてのレーンのうち最低フィルレベル）、最大フィルレベル（たとえば、すべてのレーンのうち最高フィルレベル）、または、平均フィルレベル（たとえば、レーンの総数によって割られるフィルレベルの合計）であってもよい。
【００３７】
一実施形態においては、レーンのフィルレベルおよび基準フィルレベルは、正の数または負の数であり得る。たとえば、フィルレベルおよび／または基準フィルレベルが正の数または負の数であるかどうかは、レーンのフィルレベルが基準フィルレベルに対して正であるかまたは負であるかどうかに左右され得る。
【００３８】
一実施形態においては、補正論理モジュール１１８は、レーンのフィルレベルおよび基準フィルレベルによってタイムスタンプを調整することにより、補正済みタイムスタンプを計算する。一実施形態においては、以下の式が用いられてもよい。
【００３９】
式（１）：補正済みタイムスタンプ＝タイムスタンプ＋／レーンのフィルレベル＋／−基準フィルレベル
一実施形態においては、補正論理モジュール１１８は、計算に一貫性が得られ得るように、すべての値を共通の単位に変換してもよい。たとえば、レーンのフィルレベルおよび基準フィルレベルは、ビット数であってもよい。補正論理モジュール１１８は、クロックサイクル毎の既知のビット数およびクロックサイクルの周波数に基づいて、フィルレベルおよび基準レベルのビット数をクロックサイクルまたはナノ秒の単位に変換してもよい。たとえば、回路１００が６６ビット／クロックサイクルを読出し、回路１００が１ナノ秒当たり２．１クロックサイクルを有する場合、クロックサイクルまたはナノ秒のいずれかの点から補正済みタイムスタンプが計算され得る。
【００４０】
一実施形態においては、補正済みタイムスタンプが計算されると、レーンの各々におけるデータパケットの各々のためのタイムスタンプが補正済みタイムスタンプと置換えられてもよい。結果として、マルチレーン通信リンクの各々におけるタイムスタンプがスキューに関して補正されるだろう。結果として、スキューによるスレーブクロックの変化に関する上述の問題が、本開示によって解決される可能性がある。
【００４１】
図３は、スキューのあるマルチレーン通信リンクにおけるタイムスタンプを補正するための方法３００のフローチャートを示す。一実施形態においては、当該方法３００は、図４に例示され以下に記載される汎用コンピュータ（もしくは他のいずれかのハードウェア同等装置）によって、または、上述のとおり論理回路もしくはプログラム可能な集積回路として実現される補正論理１１８によって、実行されてもよい。
【００４２】
方法３００はステップ３０２から始まる。ステップ３０４において、方法３００では、データパケット、データパケットのためのタイムスタンプ、およびデータパケットを担持するマルチレーン通信リンクのレーンについてのフィルレベルを受信する。たとえば、補正論理モジュールは、データパケット、データパケットのためのタイムスタンプ、およびデータパケットを担持するマルチレーン通信リンクのレーンについてのフィルレベルを受信してもよい。
【００４３】
一実施形態においては、タイムスタンプは、１５８８論理モジュールによってフィルタリングされてもよく、たとえば、タイムスタンプはパケットの開始（ＳＯＰ）に関連付けられる。他のすべてのタイムスタンプが廃棄されてもよい。
【００４４】
一実施形態においては、補正論理モジュールは、データパケットを担持するマルチレーン通信リンクにおけるすべてのレーンについてのフィルレベルを受信してもよい。すべてのレーンについてのフィルレベルは基準フィルレベルを選択するかまたは計算するのに用いられてもよい。一実施形態においては、基準フィルレベルは、すべてのフィルレベルのうち最小フィルレベル、すべてのフィルレベルのうち最大フィルレベル、またはすべてのフィルレベルのうち平均フィルレベルであってもよい。
【００４５】
ステップ３０６において、方法３００では、データパケットのための補正済みタイムスタンプを計算する。一実施形態においては、補正論理モジュールは、レーンのフィルレベルおよび基準フィルレベルによってタイムスタンプを調整することにより、補正済みタイムスタンプを計算してもよい。一実施形態においては、レーンのフィルレベルおよび基準フィルレベルは、正の数または負の数であってもよい。たとえば、フィルレベルおよび／または基準フィルレベルが正の数または負の数であるかどうかは、レーンのフィルレベルが基準フィルレベルに対して正であるかまたは負であるかどうかに左右され得る。一実施形態においては、式（１）は、補正済みタイムスタンプを計算するために用いられてもよい。
【００４６】
一実施形態においては、補正論理モジュールは、計算に一貫性が得られ得るように、すべての値を共通の単位に変換してもよい。たとえば、レーンのフィルレベルおよび基準フィルレベルはビット数であってもよい。補正論理モジュールは、クロックサイクル毎の既知のビット数およびクロックサイクルの周波数に基づいて、フィルレベルおよび基準レベルのビット数をクロックサイクルまたはナノ秒の単位に変換してもよい。たとえば、回路１００が６６ビット／クロックサイクルを読出し、回路１００が１ナノ秒当たり２．１クロックサイクルを有する場合、補正済みタイムスタンプがクロックサイクルまたはナノ秒のいずれかの点から計算されてもよい。
【００４７】
ステップ３０８において、方法３００では、データパケットのためのタイムスタンプを補正済みタイムスタンプと置換える。たとえば、ＳＯＰについてのタイムスタンプは補正済みタイムスタンプと置換えられてもよい。
【００４８】
ステップ３１０において、方法３００では、タイムスタンプを補正させる必要のあるデータパケットを備えた付加的なレーンがあるかどうかが判断される。ステップ３１０に対する応答が肯定的である場合、当該方法がステップ３０４に戻されて、ステップ３０４、ステップ３０６およびステップ３０８が繰返される。言いかえれば、方法３００は、マルチレーン通信リンクにおけるそれぞれのデータパケットを有する複数のレーンのレーン毎に繰返されてもよい。
【００４９】
たとえば、方法３００がマルチリンク通信パケットのレーン毎に繰返された後、マルチレーン通信リンクの各レーンにおける各ＳＯＰのためのタイムスタンプは、補正済みタイムスタンプと置換えられてもよい。結果として、スレーブクロックの精度が向上する。
【００５０】
ステップ３１０に対する応答が否定的である場合、レーンの各々におけるデータパケットの各々についてのタイムスタンプが補正されている。方法３００がステップ３１２に進められ、そこで終了する。
【００５１】
具体的には規定されていないが、上述される方法３００の１つ以上のステップ、ブロックまたは機能が、特定用途のために必要に応じて記憶するステップ、表示するステップおよび／または出力するステップを含み得ることに留意されたい。言い換えれば、当該方法において説明されるいかなるデータ、記録、フィールドおよび／または中間結果も、特定用途のために必要に応じて別の装置に記憶、表示および／または出力され得る。さらに、判断動作を列挙するかまたは決定を含む図３におけるステップ、ブロックまたは機能は、判断動作の分岐がともに実施されることを必ずしも必要とはしない。言いかえれば、判断動作の分岐のうちの一方は任意のステップと見なすことができる。
【００５２】
図４は、この明細書中に記載される機能を実行する際に用いるのに適した汎用コンピュータのハイレベルブロック図を示す。図４に示されるように、システム４００は、ハードウェアプロセッサ要素４０２（たとえば、ＣＰＵ）、メモリ４０４、たとえば、ランダムアクセスメモリ（ＲＡＭ：random access memory）、および／または読取り専用メモリ（ＲＯＭ：read only memory）、集積回路（ＩＣ：integrated circuit）のスキューを含むマルチレーン通信リンクにおけるタイムスタンプを補正するためのモジュール４０５、たとえば、プログラム可能な集積回路など、ならびに、さまざまな入力／出力装置４０６、たとえば、テープドライブ、フロッピー（登録商標）ドライブ、ハードディスクドライブまたはコンパクトディスクドライブ、受信機、送信機、スピーカ、ディスプレイ、音声合成装置、出力ポートおよびユーザ入力装置（キーボード、キーパッド、マウスなど）を含むが、これらに限定されない記憶装置、を含む。
【００５３】
本開示が、たとえば、特定用途向け集積回路（ＡＳＩＣ：application specific integrated circuit）、ＦＰＧＡなどのプログラム可能な集積回路（ＩＣ：integrated circuit）、汎用コンピュータまたは他のいずれかのハードウェア相当物を用いて、ソフトウェアで、および／またはソフトウェアとハードウェアとを組合せて実現することができることに留意されたい。たとえば、上述の方法に関するコンピュータ読取り可能な命令は、上述の方法のステップまたは機能を実行するようにハードウェアプロセッサを構成するために用いることができる。一実施形態においては、スキューのあるマルチレーン通信リンクにおけるタイムスタンプを補正するためのこのモジュールまたはプロセス４０５、たとえばプログラム可能な集積回路は、メモリ４０４にロードすることができ、ハードウェアプロセッサ４０２によって実行されて、上述のような機能を実現することができる。このため、本開示の（関連するデータ構造を含む）方法３００において上述されるようなＩＣ、たとえばプログラム可能な集積回路、のためにスキューのあるマルチレーン通信リンクにおけるタイムスタンプを補正するためのこのプロセス４０５は、非一時的な（たとえば、有形的または物理的な）コンピュータ読取可能記憶媒体、たとえばＲＡＭメモリ、磁気ドライブもしくは光ドライブ、またはディスケットなどに格納することができる。
【００５４】
本開示の実施形態も、調整可能なＩＣ、たとえばプログラム可能な集積回路、によって全体的または部分的に実現され得る。より具体的には、プログラム可能な集積回路は、さまざまな選択された機能を実現するためにユーザによってプログラムすることができる汎用装置である。プログラム可能な集積回路は、一連の構成可能論理ブロック（ＣＬＢ：configurable logic block）および複数の入出力ブロック（ＩＯＢ：input/output block)を含んでもよい。ＣＬＢは、個々にプログラム可能であり、少数の入力信号でさまざまな論理関数を実行するように構成することができる。ＩＯＢは、プログラム可能な集積回路のＣＬＢから外部ピンにまで出力信号を駆動するように、および／または、外部のプログラム可能な集積回路ピンから入力信号を受信するように、構成することができる。プログラム可能な集積回路はまた、多くの入力信号のより多くの複素関数を生成するために、さまざまなＣＬＢおよびＩＯＢの中から信号を選択的にルーティングするようにプログラムすることができるプログラム可能な相互接続構造を含む。ＣＬＢ、ＩＯＢおよびプログラム可能な相互接続構造は、プログラム可能な集積回路におけるユーザ設計を実現するように構成データによって特定された論理およびルーティング機能を実現するために、ＣＬＢ、ＩＯＢおよび相互接続構造内におけるさまざまなスイッチおよびマルチプレクサを制御する関連するメモリセルに構成データをロードすることによって、プログラムされる。プログラム可能な集積回路はまた、他のプログラム可能およびプログラム不可能なリソースを含んでもよい。このため、図１および図２に関連付けて上述された回路は、図１および図２の回路のうちいずれか１つ以上の回路が有する１つ以上のいずれかの構成要素の同等の論理演算を実行する複数のＣＬＢにおいて実現されてもよい。このため、一実施形態においては、システム４００は、上に開示されるようなさまざまな機能を実行するようにプログラム可能な集積回路を構成するための必要な構成データ／命令を生成するように構成することができる。
【００５５】
上述において、本開示の１つ以上の局面に従って例示的な実施形態を説明しているが、添付の特許請求の範囲およびその同等物によって決定される範囲から逸脱することなく、本開示の１つ以上の局面に従った他の実施形態およびさらなる実施形態が考案され得る。ステップを列挙する請求項は、当該ステップの如何なる順序をも示唆するものではない。商標はそれぞれの商標権所有者の所有物である。
【図１】
2016517680.tif 000003
【図２】
2016517680.tif 000004
【図３】
2016517680.tif 000005
【図４】
2016517680.tif 000006
【手続補正書】
【提出日】平成27年4月8日(2015.4.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のレーンを有するマルチレーン通信リンクにおけるタイムスタンプを補正するための方法であって、
データパケット、データパケットのためのタイムスタンプ、およびデータパケットを担持する複数のレーンのうち或るレーンについてのフィルレベルを受信するステップを含み、フィルレベルは、複数のレーンのうち他のレーンに対する前記或るレーンのスキューを補償するために用いられるビット数を含み、前記方法はさらに、
少なくともタイムスタンプ、フィルレベル、および複数のレーンすべてについてのそれぞれのフィルレベルから得られる基準フィルレベルの関数として、データパケットのための補正済みタイムスタンプを計算するステップと、
データパケットのためのタイムスタンプを補正済みタイムスタンプと置換えるステップとを含む、方法。
【請求項２】
前記受信するステップ、前記計算するステップおよび前記置換えるステップが、それぞれのデータパケットを有する複数のレーンのレーン毎に繰返される。請求項１に記載の方法。
【請求項３】
タイムスタンプは、データパケットの開始のタイムスタンプに対応する。請求項１または２に記載の方法。
【請求項４】
タイムスタンプは、データパケットを含む入力信号を複数のレーンに分割するギアボックスの後に、直列化／非直列化クロックドメインにおいてクロックサイクル毎に取込まれる、請求項１から３のいずれかに記載の方法。
【請求項５】
フィルレベルは、１ビット以上の基準を含む、請求項１から４のいずれかに記載の方法。
【請求項６】
フィルレベルは、第１のクロックドメインにおける読出しポインタと第２のクロックドメインにおける書込みポインタとの時間平均に基づいて、複数のレーンのレーン毎に先入れ先出しバッファによって計算される、請求項１から５のいずれかに記載の方法。
【請求項７】
基準フィルレベルはそれぞれのフィルレベルすべてのうち最小フィルレベルを含む、請求項１に記載の方法。
【請求項８】
基準フィルレベルはそれぞれのフィルレベルすべてのうち最大フィルレベルを含む、請求項１に記載の方法。
【請求項９】
基準フィルレベルはそれぞれのフィルレベルすべてから計算される平均フィルレベルを含む、請求項１に記載の方法。
【請求項１０】
タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルは各々、クロックサイクルの単位に変換される、請求項７から９のいずれかに記載の方法。
【請求項１１】
タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルは各々、ナノ秒の単位に変換される、請求項７から１０のいずれかに記載の方法。
【請求項１２】
集積回路であって、
入力信号を複数のレーンに分割するためのデマルチプレクサおよびギアボックスモジュールを含み、各々のレーンは少なくとも１つのデータパケットを担持し、前記集積回路はさらに、
少なくとも１つのデータパケットの各々のためのタイムスタンプを取込むためのタイムスタンプ取込みモジュールと、
複数のレーンの各レーンについてのフィルレベルを生成するためのレーンアラインバッファとを含み、フィルレベルは、複数のレーンのうち他のレーンに対する複数のレーンの前記各々のレーンのスキューを補償するために用いられるビット数を含み、前記集積回路はさらに、
補正論理モジュールを含み、前記補正論理モジュールは、少なくとも１つのデータパケット、少なくとも１つのデータパケットのためのタイムスタンプ、および、少なくとも１つのデータパケットを担持する複数のレーンの各レーンについてのフィルレベルを受信し、少なくともタイムスタンプ、少なくとも１つのデータパケットを担持する複数のレーンのうち或るレーンのフィルレベル、および複数のレーンすべてについてのそれぞれのフィルレベルから得られる基準フィルレベルの関数として、少なくとも１つのデータパケットのための補正済みタイムスタンプを計算し、少なくとも１つのデータパケットのためのタイムスタンプを補正済みタイムスタンプと置換えるためのものである、集積回路。
【請求項１３】
基準フィルレベルは、最少フィルレベルまたは最大フィルレベルまたは平均フィルレベルを含む、請求項１２に記載の集積回路。
【手続補正書】
【提出日】平成27年11月18日(2015.11.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のレーンを有するマルチレーン通信リンクにおけるタイムスタンプを補正するための方法であって、
データパケット、データパケットのためのタイムスタンプ、およびデータパケットを担持する複数のレーンのうち或るレーンについてのフィルレベルを受信するステップを含み、フィルレベルは、複数のレーンのうち他のレーンに対する前記或るレーンのスキューを補償するために用いられるビット数を含み、前記方法はさらに、
少なくともタイムスタンプ、フィルレベル、および複数のレーンすべてについてのそれぞれのフィルレベルから得られる基準フィルレベルの関数として、データパケットのための補正済みタイムスタンプを計算するステップと、
データパケットのためのタイムスタンプを補正済みタイムスタンプと置換えるステップとを含む、方法。
【請求項２】
前記受信するステップ、前記計算するステップおよび前記置換えるステップが、それぞれのデータパケットを有する複数のレーンのレーン毎に繰返される。請求項１に記載の方法。
【請求項３】
タイムスタンプは、データパケットの開始のタイムスタンプに対応する。請求項１または２に記載の方法。
【請求項４】
タイムスタンプは、データパケットを含む入力信号を複数のレーンに分割するギアボックスの後に、直列化／非直列化クロックドメインにおいてクロックサイクル毎に取込まれる、請求項１から３のいずれかに記載の方法。
【請求項５】
フィルレベルは、１ビット以上の基準を含む、請求項１から４のいずれかに記載の方法。
【請求項６】
フィルレベルは、第１のクロックドメインにおける読出しポインタと第２のクロックドメインにおける書込みポインタとの時間平均に基づいて、複数のレーンのレーン毎に先入れ先出しバッファによって計算される、請求項１から５のいずれかに記載の方法。
【請求項７】
基準フィルレベルはそれぞれのフィルレベルすべてのうち最低フィルレベルを含む、請求項１に記載の方法。
【請求項８】
基準フィルレベルはそれぞれのフィルレベルすべてのうち最高フィルレベルを含む、請求項１に記載の方法。
【請求項９】
基準フィルレベルはそれぞれのフィルレベルすべてから計算される平均フィルレベルを含む、請求項１に記載の方法。
【請求項１０】
タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルは各々、クロックサイクルの単位に変換される、請求項７から９のいずれかに記載の方法。
【請求項１１】
タイムスタンプ、レーンのフィルレベルおよび基準フィルレベルは各々、ナノ秒の単位に変換される、請求項７から９のいずれかに記載の方法。
【請求項１２】
集積回路であって、
入力信号を複数のレーンに分割するためのデマルチプレクサおよびギアボックスモジュールを含み、各々のレーンは少なくとも１つのデータパケットを担持し、前記集積回路はさらに、
少なくとも１つのデータパケットの各々のためのタイムスタンプを取込むためのタイムスタンプ取込みモジュールと、
複数のレーンの各レーンについてのフィルレベルを生成するためのレーンアラインバッファとを含み、フィルレベルは、複数のレーンのうち他のレーンに対する複数のレーンの前記各々のレーンのスキューを補償するために用いられるビット数を含み、前記集積回路はさらに、
補正論理モジュールを含み、前記補正論理モジュールは、少なくとも１つのデータパケット、少なくとも１つのデータパケットのためのタイムスタンプ、および、少なくとも１つのデータパケットを担持する複数のレーンの各レーンについてのフィルレベルを受信し、少なくともタイムスタンプ、少なくとも１つのデータパケットを担持する複数のレーンのうち或るレーンのフィルレベル、および複数のレーンすべてについてのそれぞれのフィルレベルから得られる基準フィルレベルの関数として、少なくとも１つのデータパケットのための補正済みタイムスタンプを計算し、少なくとも１つのデータパケットのためのタイムスタンプを補正済みタイムスタンプと置換えるためのものである、集積回路。
【請求項１３】
基準フィルレベルは、最少フィルレベルまたは最大フィルレベルまたは平均フィルレベルを含む、請求項１２に記載の集積回路。
【国際調査報告】
2016517680.tif 000007
2016517680.tif 000008