(57)【要約】  ＳＯＦのようなデータパケットの特定の部分のシリアルデータ経路上での受信時を、パラレルデータ経路を制御するクロックの知識に基づいた当該部分をパラレルデータ経路に出力するとき及び当該部分をパラレルレーンのいずれに出力するかに基づいて決定する、ＳＥＲＤＥＳの部分を形成するようないデシリアライザ。【選択図】図１
2014529245.tif 000002
【特許請求の範囲】
【請求項１】
予め決定された部分を有するデータパケットの受信時点を識別するシステムであって、
シリアルデータ経路からシリアルデータを受信し、第１の周波数を有する第１のクロック信号を前記シリアルデータ経路から取得し、前記第１の周波数を予め決定された整数で除算した第２の周波数を有する第２のクロック信号を取得し、予め決定された数のパラレルデータ経路を有するパラレルデータバスにパラレルデータを出力し、前記パラレルデータは、前記シリアルデータに関連し、前記パラレルデータは、前記第２のクロック信号に従って出力されるデシリアライザと、
前記予め決定された部分の少なくとも一部が出力される前記パラレルデータ経路の一つを識別するように適合した識別器と、
前記パラレルデータ経路のうちの識別した一つのパラレルデータ経路及び前記第２のクロック信号から時点を推定する計時装置と、
を備えるシステム。
【請求項２】
前記パラレルデータ経路からデータを受信するとともに第３のクロック信号に従ってデータを出力する一つ以上の先入先出素子を更に備える請求項１に記載のシステム。
【請求項３】
一つ以上の追加のデシリアライザを更に備え、その各々は、
個別のシリアルデータ経路からシリアルデータを受信し、
予め決定された数のパラレルデータ経路を有する個別のパラレルデータ経路にパラレルデータを出力し、前記パラレルデータは、前記シリアルデータに関連し、前記パラレルデータは、追加のクロック信号に従って出力され、
前記識別器は、前記予め決定された部分の少なくとも一部が出力される前記パラレルデータ経路の一つを識別するように適合され、
前記計時装置は、いずれのパラレルデータが前記パラレルデータ経路のうちの識別した一つのパラレルデータ経路に出力されたかに基づいて、前記パラレルデータ経路のうちの識別した一つのパラレルデータ経路及び前記追加のクロック信号から時点を推定する請求項１又は２に記載のシステム。
【請求項４】
前記識別器は、データパケットの少なくとも予め決定された部分がそれぞれ出力される複数のパラレルデータ経路を識別するように適合され、前記計時装置は、いずれのパラレルデータが前記パラレルデータ経路のうちの識別した一つのパラレルデータ経路に出力されたかに基づいて、前記複数のパラレルデータ経路の各々に対して、前記パラレルデータ経路のうちの識別した一つのパラレルデータ経路及び前記第２のクロック信号から時点を推定する請求項１から３のうちのいずれか一項に記載のシステム。
【請求項５】
入力部及び出力部を有するデコーダを更に備え、前記デコーダは、前記パラレルデータ経路に出力されるデータを受信し、前記データパケットの少なくとも一部を除去し、前記データパケットの残りの部分を前記出力部から出力するように適合される請求項１から４のうちのいずれか一項に記載のシステム。
【請求項６】
予め決定された部分を有するデータパケットの受信時点を識別する方法であって、
シリアルデータ経路からシリアルデータを受信することと、
第１の周波数を有する第１のクロック信号を前記シリアルデータ経路から取得することと、
前記第１の周波数を予め決定された整数で除算した第２の周波数を有する第２のクロック信号を取得することと、
予め決定された数のパラレルデータ経路を有するパラレルデータバスにパラレルデータを出力し、前記パラレルデータは、前記シリアルデータに関連し、前記パラレルデータは、前記第２のクロック信号に従って出力されることと、
前記予め決定された部分の少なくとも一部が出力される前記パラレルデータ経路の一つを識別することと、
前記パラレルデータ経路のうちの識別した一つのパラレルデータ経路及び前記第２のクロック信号から時点を推定することと、
を備える方法。
【請求項７】
前記パラレルデータ経路からデータを受信するとともに第３のクロック信号に従ってデータを出力する一つ以上の先入先出素子を更に備える請求項６に記載の方法。
【請求項８】
一つ以上の追加のシリアルデータ経路から追加のシリアルデータを受信するステップと、
予め決定された数の追加のパラレルデータ経路を有する追加の個別のパラレルデータバスにパラレルデータを出力し、前記追加のパラレルデータは、前記追加のシリアルデータに関連し、前記パラレルデータは、追加のクロック信号に従って出力されるステップと、
前記予め決定された部分の少なくとも一部が出力される前記追加のパラレルデータ経路の一つを識別するステップと、
いずれの前記追加のパラレルデータが前記追加のパラレルデータ経路のうちの識別した一つの追加のパラレルデータ経路に出力されたかに基づいて、前記追加のパラレルデータ経路のうちの識別した一つの追加のパラレルデータ経路及び前記追加のクロック信号から時点を推定するステップと、
を更に備える請求項６又は７に記載の方法。
【請求項９】
前記識別するステップは、開始ヘッダの少なくとも予め決定された部分がそれぞれ出力される複数のパラレルデータ経路を識別し、前記推定するステップは、いずれのパラレルデータが前記パラレルデータ経路のうちの識別した一つのパラレルデータ経路に出力されたかに基づいて、前記複数のパラレルデータ経路の各々に対して、前記パラレルデータ経路のうちの識別した一つのパラレルデータ経路及び前記第２のクロック信号から時点を推定する請求項６から８のうちのいずれか一項に記載の方法。
【請求項１０】
前記パラレルデータ経路に出力されるデータを受信するステップと、前記データパケットの少なくとも一部を除去するステップと、前記データパケットの残りの部分を出力部から出力するステップと、を更に備える請求項６から９のうちのいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データパケットのタイムスタンピングを行い又はデータパケットの受信時点を識別するシステム及び方法に関する。
【背景技術】
【０００２】
通常の通信において、データパケットは、一つ以上のデータ経路又はケーブル上のシリアルデータとして長距離に亘って伝送される。これを図１に示す。そのようなデータを検出するとともに使用又は分析するとき、データは、シリアルリンク１２から検出され、分析回路に要求される周波数を低減するためにパラレルデータに変換されてパラレルデータバス１６に供給される。この変換は、通常、タイムスタンパ１０のシリアライザ／デシリアライザすなわちＳＥＲＤＥＳ１４で実行される。デシリアライザ１４は、リンク１２からクロック信号を取得し、これをバス１６の幅によって分割し、このように減少したクロック信号２４に従ってデータをバス１６に出力し、クロック信号２４も出力される。その後、逆シリアル化(deserialized)データは、あるクロックドメイン（クロック２４）から他のクロックドメイン（クロック２６）にデータを流すことができるようにするために複数の非同期ＦＩＦＯ１８に供給される。ＳＥＲＤＥＳ１４とＦＩＦＯ１８との間には、受信したシリアルデータの符号化を解除するデコーダ２８を設けることができる。この符号化を６４ｂ／６６ｂ符号化又は６ｂ／８ｂ符号化とすることができる。この復号化をクロック２４によって制御することができる。他のクロックドメインがＦＩＦＯ１８の他方の側に存在し、このクロック２６は、ＦＩＦＯ１８からパラレルバス２０までのパラレルデータの読出し及びタイムスタンピングのようなプロセッサ２２におけるその次の任意の処理を制御する。
【０００３】
二つのクロックドメインが存在する理由は、シリアルデータがリンク１２に送られる際の周波数とデータがデータ経路２０の間で更に分析される際の周波数との間にｐｐｍの差(ppm differences)が存在し得るからである。これは、ＦＩＦＯ１８及びＦＩＦＯ１８がオーバーランしないことを保証するデータ／パケット消失ポリシー(data/packet drop policy)によって管理される。典型的には、データパケットを消失(drop)することなくそのような消失を許容するためにアイドルデータ／パケット(idle data/packet)をシリアルデータに導入する。
【０００４】
シリアルリンク１２で受信したデータパケットのタイムスタンピングは、ＦＩＦＯ１８からデータを読み出すパラレルデータ経路２０でフレーム開始信号（ＳＯＦ）を認識した時点を識別することによって第２のクロックドメインで実行される。
【０００５】
全体に亘る伝送帯域幅を増大するために図１に示す複数の配置を並列に設けることができることに留意されたい。この状況において、データパケット又はブロックは、ラウンドロビンの手順(round robin strategy)等を用いてリンク１２に順次供給され、それによって、ＳＯＦは、バス２０のうちの一つに存在する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、このタイムスタンプは、非常に不正確である。第１に、あり得るデータ（例えば、アイドルシンボル）の消失により、もしあればどのくらいの量のパケットが消失したかがわからないために、例えばバス２０上でのＳＯＦの読出し時点からＳＯＦの出力時間を決定することができない。さらに、パラレルバス１６，２０のクロック周波数がバス１２のクロック周波数より（バス幅で除算された分）低くなるので、タイムスタンプの精度も（バス幅を乗算した分）低くなる。このタイムスタンプは、バス２０のどのレーンでＳＯＦが識別されるかに関係なく同一である。
【０００７】
さらに、通常、ＳＥＲＤＥＳ１４、バス１６及びＦＩＦＯ１８は、いわゆるＰＨＹに設けられ、その出力は、望ましくは、例えばＸＡＵＩ規格又はＭＩＩ／ＧＭＩＩ規格に従い、これによって、例えば、バス２０の最初のレーンに設けられるＳＯＦを有するのが望ましく、又は、図１の配置として複数の配置が用いられる場合には、個別のバス２０のデータを調整するために更なる遅延が導入される。この状況において、タイムスタンピングも不確実に増大する。
【課題を解決するための手段】
【０００８】
本発明は、この問題に対する解決及びタイムスタンプの決定を更に正確にすることができる配置に関する。
【０００９】
第１の態様において、本発明は、予め決定された部分を有するデータパケットの受信時点を識別するシステムであって、
シリアルデータ経路からシリアルデータを受信し、第１の周波数を有する第１のクロック信号をシリアルデータ経路から取得し、第１の周波数を予め決定された整数で除算した第２の周波数を有する第２のクロック信号を取得し、予め決定された数のパラレルデータ経路を有するパラレルデータバスにパラレルデータを出力し、パラレルデータは、シリアルデータに関連し、パラレルデータは、第２のクロック信号に従って出力されるデシリアライザと、
予め決定された部分の少なくとも一部が出力されるパラレルデータ経路の一つを識別するように適合した識別器と、
パラレルデータ経路のうちの識別した一つのパラレルデータ経路及び第２のクロック信号から時点を推定する計時装置と、
を備えるシステムに関する。
【００１０】
これに関連して、システムを、単一の回路／チップ／ＦＰＧＡのような単一の素子によって形成することができ、又は、システムを、電気信号、光信号、電磁信号等によって互いに通信を行うように適合した複数の素子によって形成することができる。したがって、個別の素子を、同一のハウジング及び／又は同一のプリント回路基板等において互いに近接して配置することができ、又は、個別のハウジング内、異なる部屋又は異なる建物のように離間して配置することができる。
【００１１】
本システムは、データの受信時点を決定するネットワーク分析器、スイッチ、ルータ等のような大規模システムの一部を形成することができる。この時点を、データパケットの順番を確実に維持するためのような複数の目的に対して用いることができる。
【００１２】
データパケットを、ネットワーク、データケーブル、データバス、トランク等によって送信又は伝送される任意のタイプのデータ単位とすることができる。通常、データパケット／単位は、複数の異なる規格又はＵＤＰパケット及びＴＣＰパケットのようなデータパケットタイプが存在するイーサネット（登録商標）、Ｓｏ−ｎｅｔ（登録商標）、インフィニバンド規格又はファイバーチャネル規格のような一つ以上の規格に適合する。データパケットは、通常、データパケット内の良好に規定された又は既知の位置にそれぞれ配置されるアドレスデータ、ペイロード等のような複数の異なる情報アイテム又はタイプを有する。そのような位置及びタイプは、データパケットタイプごとに異なるが、通常、データパケットタイプ、したがって、その個別のコンテンツの位置を、実際のデータパケットから決定することができ、その後、アドレスデータ及び／又はペイロードのような個別のデータアイテムを、任意のタイプの分析において取得し、変更し、及び／又は、使用することができる。タイプ又は規格を、パケットの特定のデータアイテムがタイプ／規格を識別するときのように、データパケットから直接取得することができ、又は、データパケットのデータアイテムのタイプ及び位置の認識並びにそれに続くそのようなデータをそのような（一つ以上の）位置で見つけることができるデータパケットの（一つ以上の）タイプ又は（一つ以上の）規格の決定に基づくように、データパケットから取得されるデータから取得することができる。
【００１３】
また、エラーチェックを行うために、信号の十分なゼロクロッシングデンシティ(zero crossing density)を与えるように、又は、初期データパケット(initial data packet)を小部分に分割して部分のコンテンツを表現するヘッダとともにネットワーク上で送信するときにわかるように、データパケットを符号化することができ又は符号化される。種々の符号化技術が種々の目的に対して存在する。符号化技術は、マンチェスターコード(Manchester code)のようなコード化、６ｂ／８ｂ符号化、８ｂ／１０ｂ符号化、６４ｂ／６６ｂ符号化、６４ｂ／６７ｂ符号化及び１２８ｂ／１３０ｂ符号化を含み、この場合、例えば、４ビットの元のデータパケットが５ビットのブロックに符号化され、送信された後に元のパケットに復号化される。
【００１４】
明らかに、パケットすなわち単位は、良好に規定された開始ビット／バイトと、良好に規定されたコンテンツすなわち部分と、を有する。しばしば、パケットは、アドレス又は符号化ヘッダのような一つ以上の必要な要素と、ペイロードのような一つ以上の任意の要素と、を有する。
【００１５】
時点を複数の方法で取得又は規定することができ、厳密には、どの時点であるかは、全てのデータパケットが同一の方法で決定された時点を有する限り関連性がない。当然、これをダイナミックにすることもでき、したがって、識別すべき実際の部分を、各パケット、パケットタイプ、プロトコル等に対して個別に規定することができる。
【００１６】
当然、シリアルデータの受信とパラレルデータの出力との間の一つ以上のパイプラインステップ(pipelined step)からのような遅延が存在しうる。この遅延を、時点を決定する際に考慮することができる。
【００１７】
時点を、データパケットの最初（又は最後）のビットがデシリアライザに到達するときの時点とすることができ、又は、時点を、当該時点からオフセットすることができる。時点を、代替的に又は追加的に、データパケットの他の部分がデシリアライザに到達する時点とすることができ、又は、時点を、当該時点からオフセットすることができる。
【００１８】
データパケットの上記部分のいずれかを、時点を取得するために識別及び使用することができる。
【００１９】
これに関連して、シリアルデータは、シリアルケーブル上又は無線でビットごとに送信されるデータである。したがって、シリアルデータの各ビット又はバイトのような各部分は、異なる送信時点及び受信時点を有する。シリアルデータを、コンピュータ、サーバ、ネットワーク素子、スイッチ、ルータ等からのような電気リンク、光リンク又は無線リンクから受信することができる。代わりに、シリアルデータを、任意のタイプの記憶素子、アンテナ又は他の送信機／受信機から受信することができる。
【００２０】
それに対し、パラレルデータは、１を超えるビットを一度に出力する。これを、複数の並列導体、いわゆるデータバスにデータを出力する際に見ることができ、この場合、いわゆるバスの幅に対応する複数のビットが、同一のクロック信号によって同時に出力及び送信される。通常、パラレルデータは、複数の並列導体に出力されるが、光ケーブル、電気ケーブル及び／又は無線によって複数の波長又は周波数のデータを同時に出力することもできる。
【００２１】
クロック信号を、データのゼロポイントクロッシングからのように複数の方法でデータから取得することができる。上述したように、シリアルデータを、タイミングすなわちクロック信号を取得できるように十分な数のゼロポイントクロッシングを有するように適合させることができる。
【００２２】
代わりに、クロック信号を、所望の場合には信号の他の特性から取得することができる。
【００２３】
したがって、第１の周波数を、好適には、数ビットのシリアル信号を送信及び／又は受信する周波数とする。
【００２４】
したがって、デシリアライザは、信号すなわちデータを受信し、データを、予め決定された数のデータ経路すなわち導体を有する並列データバスに供給する。好適には、パラレルデータは、データバスの幅（並列に送信されるビット数、電気データバスの場合の並列な導体の数）によって除算された第１の周波数である周波数で出力される。このようにして、デシリアライザへの帯域幅とデシリアライザからの帯域幅は同一である。
【００２５】
これに関連して、パラレルデータは、受信時と同数のビット／バイトが出力され又は除去されるデータ量若しくは追加されるデータ量が既知であるときにはシリアルデータに関連する。好適には、全体的にデータが除去されない。したがって、ビット／バイトを、データパケット中又はデータパケット間で置換することができるが、置換がなければビット／バイトは消失されない。この置換は、好適には、ビットごと又はバイトごとである。データを消失した場合、この情報を、この情報を考慮するために計時装置に供給することができる。この置換を、不所望なヘッダ又はアイドルパケットのような不所望なパケットの除去とすることができ、これらの部分を、全体に亘るビット／バイト数が同一である限り任意のタイプの情報によって置換することができる。後に更に説明するように、これによって、第２のクロック及びパラレル経路ＩＤから、例えば、シリアルリンクからの同一データの受信時点を決定することができる。
【００２６】
データが除去又は追加される場合、シリアルデータ及び（任意の）追加されたデータ又は減少したシリアルデータがパラレルレーンに送信されるように時点を決定することができる。
【００２７】
上記整数を、１より大きい任意の整数とすることができ、通常、２の倍数：２，４，８，１６，３２，６４，１２８，５１２等である。
【００２８】
好適には、各径路／導体に出力されるデータの周波数が第２の周波数である限り、並列データ経路／導体に出力されるデータを、このデータを異なる時点で出力することができるとしても同時に出力する。
【００２９】
シリアルデータ経路から受信した各データビットについてパラレルデータ経路／導体のいずれに当該ビットを送信するかを決定するために任意の方法又は形式を用いることができるとしても、ラウンドロビン形式を用いるのが好適であり、この場合、連続データビット(consecutive data bit)が連続データ経路／導体(consecutive data paths/conductors)に供給され、ビットが最後の経路／導体に供給されたときに次のビットが最初の経路／導体に供給される。
【００３０】
時点は、レーン／経路／導体のいずれにデータパケットの予め決定された部分が出力されるかに関連する。上述したように、予め決定された部分を、データパケットの任意の部分とすることができる。パラレル経路／導体へのデータの出力は、第２のクロック信号によって同期が取られる。
【００３１】
データパケットの部分の識別は、通常、従来用いられているようなパケットの分析を必要とする。場合によっては、部分は、既知のビット数によって離間され、これによって、分析ではなく簡単な計数又は計算で十分となりうる。
【００３２】
したがって、識別子は、パラレルデータ経路のいずれに予め決定された部分の少なくとも一部が出力されるかを識別するよう適合され、その後、計時装置は、時点を推定するように適合される。
【００３３】
シリアルリンクから受信したビット／バイト数がパラレル経路／バスに出力したビット／バイト数と同一であるとき、及び、パラレル経路のいずれにデータを出力するかを制御する形式が既知であるとき、予め決定された部分を出力するための第２のクロック信号の時点及びそのパラレル経路／導体を、例えば、データパケットの当該部分を受信するための第１のクロック信号の時点を計算するのに用いることができる。
【００３４】
好適な実施の形態において、システムは、パラレルデータ経路からデータを受信するとともに第３のクロック信号に従ってデータを出力する一つ以上の先入先出素子を更に備える。通常、ＦＩＦＯへの帯域幅とＦＩＦＯからの帯域幅は、少なくとも所定の時間に亘って同一である。そうでない場合、ＦＩＦＯがあふれたときにデータを消失するおそれがある。回路のこの位置において、例えばアイドルパケット又は他の余分な情報を消失させるのが一般的である。しかしながら、二つのクロックドメイン（第２のクロック及び第３のクロック）におけるクロックの位相を、そのようなクロックの境界を与えるという全般的な理由のために経時的に変化させることができる。
【００３５】
一実施の形態において、システムは、一つ以上の追加のデシリアライザを更に備え、その各々は、
個別のシリアルデータ経路からシリアルデータを受信し、
予め決定された数のパラレルデータ経路を有する個別のパラレルデータ経路にパラレルデータを出力し、パラレルデータは、シリアルデータに関連し、パラレルデータは、追加のクロック信号に従って出力され、
識別器は、予め決定された部分の少なくとも一部が出力されるパラレルデータ経路の一つを識別するように適合され、
計時装置は、いずれのパラレルデータがパラレルデータ経路のうちの識別した一つのパラレルデータ経路に出力されたかに基づいて、パラレルデータ経路のうちの識別した一つのパラレルデータ経路及び第２のクロック信号から時点を推定する。
【００３６】
したがって、（一つ以上の）追加のデシリアライザを、上述したデシリアライザと同一タイプとすることができるが、（一つ以上の）追加のシリアライザは第１のクロック及び第２のクロックを決定する必要がないので、（一つ以上の）追加のシリアライザを更に簡単にすることができる。第１のシリアル経路及び追加のシリアル経路上で送信されるデータが同一のエンティティによって出力されるときには特に、当該データは、第１のデシリアライザからの第１のクロック及び第２のクロックを（一つ以上の）追加のデシリアライザによって使用できるようにするために同期を取ることができ、この場合、追加のクロック信号は第２のクロック信号となる。この状況でない場合、（一つ以上の）追加のデシリアライザを、第１の周波数を有する個別の第１のクロック信号をシリアルデータ経路から取得するとともに第２の周波数を有する個別の第２のクロック信号としての追加のクロック信号を取得するように適合させることもでき、第２の周波数は、第１の周波数を予め決定された整数で除算したものに関する。
【００３７】
また、同一の識別器及び／又は計時装置を用いることができ、又は、異なるデシリアライザに対して個別の識別器及び／又は計時装置を用いることができる。
【００３８】
同一のエンティティが第１のシリアル経路と（一つ以上の）追加の経路の両方にデータを送信するとき、このエンティティは、単一のシリアル経路に全データパケットを送信することを決定することができる。代わりに、データパケットを、しばしばフリット(flit)と称される小部分に分割することができ、それは、ラウンドロビン形式のような任意の形式に従ってシリアル経路に送信される。したがって、パケットの予め決定された部分を、シリアル経路のいずれかに送信することができ、したがって、デシリアライザのいずれかによって出力することができる。この状況において、システムは、パケットがこのように送信されたことを知り、デシリアライザによる出力に続いて、データパケットを、所望の場合に再構築することができる。
【００３９】
当然、デシリアライザのパラレル出力のバス幅を、最小データパケットサイズより大きくすることができ、したがって、個別のデータパケットの複数の予め決定された部分を同時に出力することができる。従来のシステムにおいて、この状況によって、同一のタイムスタンプを有するデータパケットが生成されることがあった。
【００４０】
本発明の一実施の形態において、識別器は、データパケットの少なくとも予め決定された部分がそれぞれ出力される複数のパラレルデータ経路を好適には同時に識別するように適合され、計時装置は、いずれのパラレルデータがパラレルデータ経路のうちの識別した一つのパラレルデータ経路に出力されたかに基づいて、複数のパラレルデータ経路の各々に対して、パラレルデータ経路のうちの識別した一つのパラレルデータ経路及び第２のクロック信号から時点を推定する。この場合、パラレル経路は当然異なるので、時点も異なり、例えば、シリアル経路の受信の実際の時点が二つのデータパケットに対して異なるので、時点が異なることが望ましい。
【００４１】
当該実施の形態又は他の実施の形態において、システムは、入力部及び出力部を有するデコーダを更に備え、デコーダは、パラレルデータ経路に出力されるデータを受信し、データパケットの少なくとも一部を除去し、データパケットの残りの部分を出力部から出力するように適合される。
【００４２】
上述したように、符号化形式を、エラーチェックの実行又は大きなパケットを等しい大きさのような小部分に分割してリンクに送信することのような複数の目的に対して用いることができる。後者の状況において、小部分に、例えばこの部分がパケットの第１の部分と第２の部分のいずれかであるかを表すヘッダをそれぞれ設けることができる。部分がパケットの第１の部分としてマークされるときには特に、この部分の識別は、このヘッダを識別するだけでよいので特に簡単になる。例えば、６ｂ／８ｂ符号化において、このヘッダは、２ビットのヘッダを有し、そのうちの１ビットは、ヘッダがデータパケットの第１の部分を有する部分のヘッダであることを表す。このビットが出力されるパラレル経路を、識別器によって簡単に識別することができる。
【００４３】
発明の第２の態様は、予め決定された部分を有するデータパケットの受信時点を識別する方法であって、
シリアルデータ経路からシリアルデータを受信することと、
第１の周波数を有する第１のクロック信号をシリアルデータ経路から取得することと、
第１の周波数を予め決定された整数で除算した第２の周波数を有する第２のクロック信号を取得することと、
予め決定された数のパラレルデータ経路を有するパラレルデータバスにパラレルデータを出力し、パラレルデータは、シリアルデータに関連し、パラレルデータは、第２のクロック信号に従って出力されることと、
予め決定された部分の少なくとも一部が出力されるパラレルデータ経路の一つを識別することと、
パラレルデータ経路のうちの識別した一つのパラレルデータ経路及び第２のクロック信号から時点を推定することと、
を備える方法に関する。
【００４４】
上述したように、時点を、グローバルクロック若しくはローカルクロック又は整数区間内の整数に関連させることもでき、この場合、時間は、整数の一つによって識別され、この整数は、クロックのクロック周期の各々に対して変化する（通常は増大するが、ラップアラウンドされる。）
【００４５】
また、予め決定された部分を、パケットの任意の部分とすることができる。通常、予め決定された部分は、関連する全てのパケットが有する部分であり、これによって、識別が更に容易になる。好適には、予め決定された部分は、例えば、データパケットの任意の所望の部分の最初又は最後のビットとすることができる単一ビットである。通常、データパケットは、アドレス等のようなデータパケットの異なる規格部分を規定する一つ以上の規格に従う。
【００４６】
通常、シリアルデータ経路からシリアルデータを受信することは、その時点で１ビットのデータを受信することを意味する。
【００４７】
第１の周波数を有する第１のクロック信号をシリアルデータ経路から取得するステップを、第１のデータの識別されたゼロポイントクロッシングの周波数に基づいて実行することができるが、他の方法も知られている。
【００４８】
データをシリアルリンク上で受信する帯域幅をデシリアライザから出力できるようにすることを保証するために、第２のクロック信号は、好適には、パラレル経路の数すなわちパラレルバスの幅によって第１の周波数を除算したものである。
【００４９】
パラレルデータが出力されるとき、これを、好適には、第２のクロックが変化する度にパラレルデータを全てのパラレル経路に同時に出力するために第２のクロック信号によって制御する。
【００５０】
パラレルデータがシリアルデータに関連するとき、受信するデータの総量は、出力されたデータの量である。データが消失されない限り、データを置換することができる。デシリアライザが記憶部又は記憶部に対するアクセスを有する場合、この帯域幅整合(bandwidth matching)は、短時間に亘って変化することができる。しかしながら、経時的な帯域幅整合が望まれる。
【００５１】
上述したように、シリアルリンク上で受信したビットをパラレル経路のいずれに送信するかを決定するために任意の形式を用いることができる。しかしながら、通常、ラウンドロビン形式が用いられる。
【００５２】
部分又は予め決定された部分を識別するとき、識別器は、パラレル経路からのデータパケットの部分を構築可能であり、予め決定された部分又は部分を識別するためにこれらの部分を分析することができる。データパケットが同一若しくは既知のサイズを有する場合又はデータパケットが同一若しくは既知のサイズに分割された場合のような他の状況において、識別器は、次の部分がある場所を最後の部分の位置から知ることができる。代わりに、この最後の部分を、次の部分がどこにあるかを探すよう識別器を案内するために用いることができる。
【００５３】
典型的には、部分は単一ビットであり、このビットを、パケットヘッダの最初のビットのようなデータパケットの任意のビット又はアドレスのようなデータパケットの一部とすることができる。データパケットが規格に従う状況において、ビット／部分を識別するために規格に従ってその位置を識別するようデータパケットの分析を行うことができる。
【００５４】
識別したパラレルデータ経路を、単一のデータ経路、又は、部分が出力される経路のうちの最初（例えば、最も小さい番号）の経路とすることができる。
【００５５】
一実施の形態において、方法は、パラレルデータ経路からデータを受信するとともに第３のクロック信号に従ってデータを出力する一つ以上の先入先出素子を更に備える。上述したように、個別のクロックドメインの使用は、所定の利点を有し、データを消失し又はこのクロックの境界にアクセスできないおそれがある。
【００５６】
当該実施の形態又は他の実施の形態において、方法は、
一つ以上の追加のシリアルデータ経路から追加のシリアルデータを受信するステップと、
予め決定された数の追加のパラレルデータ経路を有する追加の個別のパラレルデータバスにパラレルデータを出力し、追加のパラレルデータは、追加のシリアルデータに関連するステップと、
を更に備える。
【００５７】
上記状況において、好適にはデータは消失されないが、データを置換することができる。
【００５８】
本実施の形態において、上述した識別するステップ及び推定するステップは、この追加のデータのパラレルデータを考慮することができ、又は、
予め決定された部分の少なくとも一部が出力される追加のパラレルデータ経路の一つを識別するステップ、及び
いずれの追加のパラレルデータが追加のパラレルデータ経路のうちの識別した一つの追加のパラレルデータ経路に出力されたかに基づいて、追加のパラレルデータ経路のうちの識別した一つの追加のパラレルデータ経路及び追加のクロック信号から時点を推定するステップのような個別の識別するステップ及び推定するステップを、上記パラレルデータに加えてこの追加のデータに対して実行することができる。
【００５９】
また、パラレルデータの出力及び識別を、追加のクロック信号である上記第２のクロック信号に基づいて行うことができ、又は、方法は、第１の周波数を有する第１のクロック信号を、追加のシリアルデータ経路から個別に取得する追加のステップと、第１の周波数を予め決定された整数で除算した第２の周波数を有する、追加のクロック信号である第２のクロック信号を、個別に取得する追加のステップと、を備えることができる。シリアルリンク上で送信されるデータが同一エンティティ（コンピュータ、サーバ等）によって出力されるとともに同期が取られるときには、第１の状況が好適である。シリアルリンク上で送信されるデータが個別のエンティティによって出力されるとともに同期が取られないときには、第２の状況が好適である。
【００６０】
この逆シリアル化(de-serialization)については、受信したビットをパラレル経路のいずれに出力するかを決定するために任意の形式を用いることができる。
【００６１】
一実施の形態において、識別するステップは、開始ヘッダの少なくとも予め決定された部分がそれぞれ出力される複数のパラレルデータ経路を識別し、推定するステップは、いずれのパラレルデータがパラレルデータ経路のうちの識別した一つのパラレルデータ経路に出力されたかに基づいて、複数のパラレルデータ経路の各々に対して、パラレルデータ経路のうちの識別した一つのパラレルデータ経路及び第２のクロック信号から時点を推定する。これは、全体に亘るバス幅が最小のデータパケットサイズを超える状況である。
【００６２】
最後の実施の形態において、方法は、パラレルデータ経路に出力されるデータを受信するステップと、データパケットの少なくとも一部を除去するステップと、データパケットの残りの部分を出力部から出力するステップと、を更に備える。これは、上述した符号化されたデータパケットの上記復号化である。
【００６３】
以下、発明の好適な実施の形態を、図面を参照しながら説明する。
【図面の簡単な説明】
【００６４】
【図１】図１は、従来のスタンピング配置を示す。
【図２】図２は、シリアルリンクの時点とパラレルリンクの時点及びレーン番号との間の相間を示す。
【図３】図３は、本発明によるタイムスタンピング配置の第１の実施の形態を示す。
【図４】図４は、複数のシリアルリンクのデータを受信する第２の実施の形態を示す。
【発明を実施するための形態】
【００６５】
図１は上述した。
【００６６】
図３において、図１に関連して上述した複数の同一素子を、タイムスタンパ１０’において使用し又は使用することができる。したがって、データパケット又は他のタイプのデジタルデータが、シリアルリンク１２上で送信され、分析回路に要求される周波数を低減するためにパラレルデータに変換されてパラレルデータバス１６に供給される。この変換は、通常、タイムスタンパ１０’のシリアライザ／デシリアライザすなわちＳＥＲＤＥＳ１４で実行される。デシリアライザ１４は、リンク１２からクロック信号を取得し、これをバス１６の幅によって分割し、このように減少したクロック信号２４に従ってデータをバス１６に出力し、クロック信号２４も出力される。
【００６７】
本実施の形態において、バス１６の情報は、パケットヘッダのようなパケットの予め決定された部分がバス１６のパラレルレーンすなわち導体のいずれに存在するかを識別するタイムスタンピング回路２２’に供給される。
【００６８】
タイムスタンピングがヘッダのようなデータパケットの任意の部分に基づいて実行されることに留意すべきである。したがって、回路２２’は、パケットの最初のビット、最初の部分又は予め決定された部分を探すことができる。
【００６９】
回路２２’がクロック２４によって計時され又は少なくともクロック２４を受信するので、ＳＥＲＤＥＳ１４による受信と回路２２’との間でデータが消失しないときに、例えば、ＳＥＲＤＥＳ１４によるデータパケットのこの部分の受信時を決定又は推定することができる。
【００７０】
通常、ＳＥＲＤＥＳ１４は、受信したデータをラウンドロビン形式でバス１６に出力する。この状況にない場合、回路２２’は、レーン／導体番号及びクロック２４のクロック時間を受信時間（バス１２のクロック時間）に変換できるようにするために、ＳＥＲＤＥＳ１４が受信ビットをバス１６のレーン／導体に出力する順番を望ましく知ることができる。
【００７１】
回路２２’は、クロック２４のクロック時間及びバス１６のレーン／導体番号をバス１２の信号に関連する時間に変換することを目的としている。異なるデータパケットの同一部分が「計時される」とき、関連の受信時点を決定し、それに応じてパケットを処理することができる。
【００７２】
図１に関連して上述したように、逆シリアル化データは、あるクロックドメイン（クロック２４）から他のクロックドメイン（クロック２６）にデータを流すことができるようにするために複数の非同期ＦＩＦＯ１８に供給される。
【００７３】
ＦＩＦＯ１８の前後のような回路２２’の後に、受信したシリアルデータの符号化を解除するデコーダ２８を設けることができる。この符号化を６４ｂ／６６ｂ符号化又は６ｂ／８ｂ符号化とすることができる。この復号化をクロック２４又はクロック２６によって制御することができる。
【００７４】
リンク１２からのデータのＳＥＲＤＥＳ１４による受信と回路２２’との間でデータの消失がないのが望ましいことに留意されたい。明らかに、Ｔの時間差でＳＥＲＤＥＳ１４によりリンクから受信した二つのデータパケット間でデータが消失した場合、パケットを、Ｔより短い時間差で回路２２’により計時することができる。
【００７５】
データを消失させない代わりに、そのような不所望なデータを、各データパケットにおいて及び／又は二つのデータパケット間でＳＥＲＤＥＳ１４によって受信したデータの総量が回路２２’によって受信したデータの総量と同一になるように置換することができる。そのようなデータを、リンク１２上で送信されるアイドルパケット又は６４ｂ／６６ｂ符号化のような符号化形式で用いられるヘッダ、ＶＬＡＮヘッダ等のような追加のヘッダとすることができる。そのようなデータを同数のビット／バイトによって置換することができ、そうでない場合、当該データは、回路２２’に送信するときに保持される。回路２２’は、受信したデータを出力することができ、又は、このデータが出力されるデータバスで用いられる帯域幅を減少するようにそのようなヘッダ、アイドルパケット等が除去された減少したデータを出力することができる。
【００７６】
ある状況において、タイムスタンプに関連する情報を、回路２２’から出力する際にデータパケットに導入することができる。この情報は、アイドルパケットのようなデータパケットの他の部分を置換することができ、又は、この情報を、バス１６に出力される情報／データに加えて設けることができる。
【００７７】
当然、バス１６に送信されるデータパケットを回路２２’を通じて送信する必要はない。データパケットをバス１６から直接受信するために回路２８、ＦＩＦＯ１８及び／又は他の回路を接続することができる。その状況において、回路２２’は、バス１６において又はバス１６の（図示しない）他の出力部からタイムスタンプ情報を出力することができる。
【００７８】
図２は、シリアルリンク１２における時点をクロック２４の時点及びバス１６のレーン番号に相関させる方法を示す。上述したように、クロック信号２４は、リンク１２上のクロックの周波数をバス１６上のレーン数によって除算したものに対応する周波数を有する。図２において、この数は８である。したがって、信号２４の周波数は、リンク１２の周波数を８で除算したものである。明らかに、バス１２上でのビットの受信時点（円）をクロック２４の時点及びバス１６のレーン数に関連させることができ、８ビットがバス１６上において異なるレーンに同時に出力され、これら８ビットを異なる時点でリンク１２から受信する。
【００７９】
図４は、データパケットを複数のリンク１２で受信する実施の形態１０”を示す。リンク１２に送信されるデータパケットを、同一の素子又は異なる素子によって送信することができる。全てのデータパケットをリンク１２の一つのみに送信することができ、又は、データパケットを一方のリンク１２に部分的に送信するとともに他方のリンク１２に部分的に送信し、受信したデータパケットの全てを、両方のＳＥＲＤＥＳ１４によって出力されたデータから構築することができる。これは、システムのこの部分の動作にとって重要でない。
【００８０】
各リンク１２からのデータを、ＳＥＲＤＥＳ１４によって受信して逆シリアル化し、その後、タイムスタンピングのためにパラレルバス１６に出力して回路２２’に供給する。回路２２’を、単一のＳＥＲＤＥＳ１４から出力されるクロック信号２４によって制御することができ、これは、リンク１２から受信したデータが同一の素子から出力されて同期を取りながら送信されるときに典型的なケースとなりうる。代わりに、各回路２２’は、ＳＥＲＤＥＳ１４からクロック２４を受信することができ、ＳＥＲＤＥＳ１４からデータも受信する（図３の斜線）。
【００８１】
当然、全般的な時点を、全てのＳＥＲＤＥＳ１４又は回路２２’に対して設定することができ、この場合、（一つ以上の）クロック２４を、時点を延ばすのに用いることができ、したがって、クロックの位相は互いに異なることができるが、全般的な時点は、少なくともほとんど同一である。
【００８２】
本実施の形態において、全ての受信したパケットは、パケットをどのリンクで受信したかに関係なく、かつ、各パケットがリンク１２の一方のみに送られたか両方に送られたかに関係なくタイムスタンプが刻印される。回路２２’は、データパケットの予め決定された部分を探し、識別されたとき、計時情報を出力する。この情報を、パケットをバス１６の一つに出力したか、パケットを回路２２’の一つに出力したか又はパケットを複数のそのようなバス／回路に出力した後に単一のバス等において構築されるか否かに関係なくパケットに続けることができる。
【００８３】
当然、１個を超えるデータパケットの複数のそのような予め決定された部分を、バス１６で同時に識別することができる。そのような状況において、タイムスタンプ情報が時間信号２４の全般的な時点とバス１６のレーン／導体番号の両方に関連するときには異なる時点が決定されることに留意されたい。
【図１】
2014529245.tif 000003
【図２】
2014529245.tif 000004
【図３】
2014529245.tif 000005
【図４】
2014529245.tif 000006
【国際調査報告】
2014529245.tif 000007
2014529245.tif 000008
2014529245.tif 000009