以下の実施の形態においては、便宜上その必要があるときは、複数の実施例またはセクションに分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
さらに、以下の実施の説明において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の説明において、構成要素の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するものを含む。このことは、上記数値および範囲についても同様である。
各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実効することによりソフトウェアで実現してもよい。以下、本発明の実施例を図面に基づいて詳細に説明する。なお、実施例を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
[全体構成]
図1は、本実施例における、データ伝送システム(通信システム)の構成例を模式的に示す。データ伝送システムは、送信装置1と受信装置2とを含む。L本(Lは1以上の整数)の伝送レーンからなる伝送路が送信装置1と受信装置2を接続し、送信装置1からの信号は、当該伝送路を介して受信装置2に伝送される。以下の説明において、1本の伝送レーン、1本の入力レーン及び1本の送信レーンは、それぞれ、シリアルデータを伝送する物理伝送線である。送信装置1及び受信装置2は、それぞれ、データ伝送装置である。
送信装置1は、n個(nは2以上の整数)の入力インタフェース(IF)からの入力信号を多重化し、伝送路(L本の伝送レーン)を介して、受信装置2に送信する。受信装置2は、送信装置1から受信した多重化信号を分離し、n個の出力IFに出力する。
図1において、送信装置1は、n個のレート検出部10−1〜10−n、仮想レーン化部20、マルチプレクサ(Mux)30、符号化部40を含む。受信装置2は、復号化部50、デマルチプレクサ(Demux)60、物理リンク化部70、n個のレート再生部80−1から80−nを含む。
[送信装置の全体構成]
送信装置1は、n個の入力IFからの入力データ(データフレーム)を受信する。入力データは、受信装置2に送信すべきデータ(データフレーム)である。n個のIFの入力レーン数は同一でもよいし、全てのIFの入力レーン数が異なっていてもよい。一部のIFの入力レーン数のみが異なっていてもよい。
図1の例において、IF1は、a0本(a0は1以上の整数)の入力レーンTxP1_1〜TxP1_a0を有し、IFnは、x0本(x0は1以上の整数)の入力レーンTxPn_1〜TxPn_x0を有する。
n個のIF1〜IFnから入力されるデータ信号は、IF間で互いに異なる周波数の信号でもよいし、全てのIFの信号が同じ周波数の信号でもよい。一部のIFのみが、他のIFと異なる周波数を有してもよい。
異なる周波数の信号は、例えば、異なる周波数誤差を有するクロック信号により生成されたデジタル信号、異なるジッタ特性を有するクロック信号により生成されたデジタル信号、異なるビットレートのデジタル信号、異なるプロトコルのデジタル信号などを含む。
n個のIF1〜IFnからのデータ信号は、それぞれ対応するレート検出部10−1〜10−nに入力する。レート検出部10−1〜10−nは、同期して、データ信号を仮想レーン化部20に出力する。後述するように、レート検出部10−1〜10−nは、IF1〜IFnから受信した有効データ(有効ビット)に加え、無効データ(無効ビット)を仮想レーン化部20に送信する。無効データは、入力IFからの有効データと異なり、レート検出部10−1〜10−nで追加されるデータである。以下において、有効データと無効データをユーザデータと呼ぶ。
レート検出部10−1〜10−nは、それぞれ、対応する複数の伝送レーン(レート検出部の出力レーン)により、仮想レーン化部20に接続する。レート検出部10−1〜10−nは、それぞれ、対応する複数の伝送レーンから選択した一部又は全ての伝送レーンにより、同期データ信号を仮想レーン化部20に送信する。以下において、レート検出部10−1〜10−nがデータ伝送に使用するために選択したレーンを使用レーンと呼び、使用されないレーンを不使用レーンと呼ぶ。使用レーンが伝送するデータは、IFからの有効データ及びレート検出部で追加される無効データを含む。
レート検出部10−1〜10−nと仮想レーン化部20との間の伝送レーン数は、レート検出部間で同一又は異なる。一部のレート検出部の伝送レーン数のみが、異なっていてもよい。レート検出部10−1〜10−nのそれぞれの出力レーン数は、入力レーン数よりも多い。図1の例において、レート検出部10−1は、a1本の出力レーンを有し、レート検出部10−nは、x1本の出力レーンを有する。レート検出部10−1〜10−n及び仮想レーン化部20の間の伝送レーンの総数は、y本である。
データユニット生成部である仮想レーン化部20は、レート検出部10−1〜10−nから各使用レーンを介して受信したビット列、を含む所定サイズのデータユニットを生成する。仮想レーン化部20は、各データユニットに、ヘッダやマーカを含む管理データを挿入する。本明細書において、このデータユニット化を仮想レーン化と呼ぶ。以下に説明する例において、仮想レーン化部20は、1つの使用レーンから受信した所定ビット数のデータブロックを1つのデータフレームに含める。1つのデータブロックが複数使用レーンのデータを含んでもよい。
仮想レーン化部20は、生成したデータユニットを、マルチプレクサ30に送信する。仮想レーン化部20は、m本(mは2以上の整数)の伝送レーンを介して、m個のデータユニットを、同期して、マルチプレクサ30に送信する。本例において、mは使用レーン数と一致する。mは使用レーン数より多い又は少なくともよい。例えば、仮想レーン化部20は、1本の使用レーンのユーザデータを複数本の伝送レーンを使用して送信してもよいし、複数本の使用レーンのユーザデータを1本の伝送レーンを使用して送信してもよい。
マルチプレクサ30は、仮想レーン化部20から受信したデータユニットを多重化し、L本(m>L)の伝送レーンを介して、符号化部40に送信する。符号化部40は受信したデータの符号化処理を行い、L本の伝送レーンに出力する。なお、符号化部40による符号化は、規格等で決められた規則に基づく必要はなく、符号化方法は限定されず、公知の技術を符号化部40に適用することができる。
[受信装置の全体構成]
受信装置2は、L本の伝送レーンを介して、送信装置1からのデータを受信する。受信データは、復号化部50に入力される。復号化部50では、送信装置1の符号化部40により符号化されたデータを復号化する。なお、符号化と同様、復号化の方法は、特に限定されない。
デマルチプレクサ60は、復号化部50から送信されたデータから、m本の伝送レーンにデータユニットを分散して、物理リンク化部70へ送信する。デマルチプレクサ60は、送信装置1のマルチプレクサ30と同じルールに従って、逆の処理を行う。
物理リンク化部70は、送信装置1の仮想レーン化部20で生成されたデータユニットに挿入されている管理データに従って、受信したデータユニットから、管理データ以外のユーザデータブロックを取得する。物理リンク化部70は、各ユーザデータブロックを、y本の伝送レーンを介して、レート再生部80−1〜80−nにおける対応するレート再生部に送信する。このデータユニットの解除を物理リンク化と呼び、物理リンク化部70は、データユニット解除部である。具体的には、物理リンク化部70は、y本の伝送レーンからm本の使用レーンを選択し、使用レーンを介してm個のユーザデータブロックを同期して送信する。
例えば、各データユニットの管理データは、対応する伝送レーンを示す情報を含む。物理リンク化部70は、当該情報を参照して、当該ユーザデータブロックを出力する伝送レーン(使用レーン)を決定する。
物理リンク化部70は、y本の伝送レーンを介して、レート再生部80−1〜80−nに、同期してデータを送信する。レート再生部80−1〜80−nは、それぞれ、受信したデータを、出力IFr1〜IFrnに送信する。
レート再生部80−1〜80−nは、それぞれ、レート検出部10−1〜10−nに対応し、レート検出部10−1〜10−nからのデータを出力IFr1〜IFrnに送信する。また、IFr1〜IFrnは、それぞれ、IF1〜IFnに対応し、対応するIFは同一のプロトコルに従う。例えば、IF1からのデータは、レート検出部10−1及びレート再生部80−1を介して、IFr1から出力される。
レート検出部の入力レーン数と対応するレート再生部の出力レーン数とは、一致する。レート検出部の出力レーン数と対応するレート再生部の入力レーン数とは、一致する。レート再生部80−1〜80−nは、対応する入力IF1〜IFnの伝送データレートを推定するレート推定部である。レート検出部における入力レートは、推定された伝送データレートに応じて、レート再生部の出力において再生される。
例えば、レート検出部10−1の入力レーン数とレート再生部80−1の出力レーン数は共にa0であり、レート検出部10−1の出力レーン数とレート再生部80−1の入力レーン数は共にa1である。IF1における伝送データレートが、IFr1において再生される。
[送信装置の詳細構成及び動作]
図2は、本実施例の送信装置1におけるレート検出部10−1の構成を模式的に示している。他のレート検出部も、同様の構成を有する。ただし、入力レーン数及び出力レーン数は、各レート検出部に依存する。
レート検出部10−1は、IF1の伝送データレートを検出する。レート検出部10−1は、a0本の入力レーン(TxP1_1〜TxP1_a0)のそれぞれに対応する、レーンレート検出部100−1〜100−a0を含む。レーンレート検出部100−1〜100−a0には、それぞれ、シリアルデータが入力される。
レーンレート検出部100−1は、シリアル/パラレル(S/P)変換部110−1、FIFO(First in First out)部120−1、アドレス管理部130−1、速度測定部140−1、レーン幅変換部150−1を含む。他のレーンレート検出部も同様の構成を有する。例えば、レーンレート検出部100−a0は、シリアル/パラレル(S/P)変換部110−a0、FIFO部120−a0、アドレス管理部130−a0、速度測定部140−a0、レーン幅変換部150−a0を含む。
シリアル/パラレル変換部110−1は、入力レーンTxP1_1からのシリアルデータをパラレルデータに変換し、FIFO部120−1へ出力する。例えば、シリアル/パラレル変換部110−1は、入力された32のシリアルビットから、32パラレルビットを生成し、出力する。
FIFO部120−1は、FIFO内コントローラとFIFOメモリを含む。FIFO内コントローラ(FIFO部120−1)は、書き込み基準クロックに同期して、シリアル/パラレル変換部110−1からのパラレルデータをFIFOメモリに書き込む(格納する)。
FIFO内コントローラは、読み出し基準クロックに同期して、FIFOメモリからデータを読み出し、レーン幅変換部150−1に出力する。本例において、FIFO内コントローラは、FIFOメモリに格納されているパラレルデータを、パラレル/パラレル変換して、出力する。例えば、FIFO内コントローラは、FIFOメモリに格納されている2つの32パラレルビットから64ビットパラレルビットを生成し、出力する。
FIFO内コントローラは、FIFOメモリからデータを読みだす時に、FIFOメモリの残データ量をチェックする。FIFOメモリが格納するユーザデータの残データ量が、所定の低閾値以下(0でもよい)である場合、FIFO内コントローラは、FIFOメモリがアンダーフロー状態であることを、アドレス管理部130−1へ通知する。
一方、FIFOメモリが格納するユーザデータの残データ量が、上記低閾値より大きい所定の高閾値以上である場合、FIFO内コントローラは、FIFOメモリがオーバーフロー状態であることをアドレス管理部130−1へ通知する。
アドレス管理部130−1は、上記異常状態の通知を保存する。アドレス管理部130−1は、管理者からの要求に応じて又は自発的に、上記異常状態を管理者に通知してもよい。
FIFO内コントローラは、さらに、FIFOメモリの残データ量に基づいて、FIFOメモリからの読み出しサイクル(読み出し周波数)を制御する。これにより、迅速かつ適切に読み出し周波数を制御できる。本例において、FIFOメモリへの書き込みサイクル(書き込み周波数)は一定である。また、IF1における全てのレーンレート検出部100−1〜100−a0のFIFOメモリ書き込みサイクルは、同一である。
FIFO内コントローラは、FIFOメモリからデータを読み出す時に、FIFOメモリの残データ量をチェックする。残データ量が所定の中心範囲内にある場合、FIFO内コントローラは、現在の読み出しサイクル(例えば6読み出し基準クロックサイクル)で、FIFOメモリからデータを読み出し、出力する。中心範囲内は、FIFOメモリ容量の中心値を含み、所定の第1閾値と、第1閾値より大きい所定の第2閾値の間の範囲である。
残データ量が第1閾値より少ない場合、FIFO内コントローラは、FIFOからの読み出しサイクルを、現在の値よりも長くする(読み出し周波数を低くする)。例えば、FIFO内コントローラは、8読み出し基準クロックサイクルに1回、FIFOメモリからデータを読み出し、出力する。
残データ量が第2閾値より多い場合、FIFO内コントローラは、FIFOからの読み出しサイクルを、現在の値よりも短くする(読み出し周波数を高く)。例えば、FIFO内コントローラは、4読み出し基準クロックサイクルに1回、FIFOメモリからデータを読み出し、出力する。
FIFO内コントローラは、上述のように、FIFOメモリの残データ量に応じて、読み出しサイクルを調整する。FIFO内コントローラは、より多くの閾値を使用して、データ残量のメモリ中心値からの差分の増加に応じて、サイクルの変化量を大きくしてもよい。
読み出しサイクルの制御は、アドレス管理部130−1が行ってもよい。いずれの構成においても、アドレス管理部130−1とFIFO内コントローラとは、FIFO部120−1のコントローラを構成する。
アドレス管理部130−1は、FIFO部120−1における現在の残データ量とFIFOメモリからの読み出しサイクルの現在の値をFIFO内コントローラから取得し、管理する。アドレス管理部130−1は、残データ量が所定の中心範囲にある場合、当該残データ量のときの読み出しサイクルの値を、速度測定部140―1へ通知する。
速度測定部140―1は、取得した読み出しサイクルの値(1サイクルに含まれる読み出し基準クロックサイクル数)に応じて、IF1の速度(伝送データレートと同義)を判定する。速度測定部140―1は、読み出しサイクルの値と速度とを対応づける情報を予め有している。
例えば、速度測定部140―1は、取得した読み出しサイクルの値に基づき、IF1の速度が高速、中速、低速のいずれであるか判定する。中心範囲にあるFIFO部120−1の読み出し周波数(読み出しサイクル)は、IF1の伝送データレートを反映しており、この値からIF1の伝送データレートを検出することができる。
速度測定部140―1は、判定した速度に応じて、レーン幅変換部150−1からのデータの伝送に使用するレーンの数(使用レーン数)を決定する。例えば、速度測定部140―1は、速度が中速であれば使用レーン数を2と決定し、速度が低速であれば使用レーン数を1と決定し、速度が高速であれば使用レーン数を3と決定する。速度測定部140―1は、決定した使用レーン数をレーン幅変換部150−1に通知する。
このように、変化するFIFOの動作サイクルとFIFOメモリの残データ量を参照することで、IFの速度(伝送データレート)を測定(推定)することができる。また、速度に応じて使用レーン数を決定することで、生成される無効データを低減できる。なお、使用レーン数は一定でもよい。
レーン幅変換部150−1は、FIFO部120−1からのデータを、所定のサイクルでチェックする。レーン幅変換部150−1は、例えば、FIFO部120−1の読み出し基準クロックサイクルで、FIFO部120−1からのデータの有無をチェックする。FIFO部120−1からデータが出力されている場合、レーン幅変換部150−1は、FIFO部120−1からのデータを受信し、取り込む。一定の読み出し基準クロックに従ってFIFO部120−1の読み出し周波数を制御することで、レーン幅変換部150−1の入力周波数を一定にすることができる。
FIFO部120−1からデータが出力されていない場合、レーン幅変換部150−1は、無効データを生成する。上述のように、FIFO部120−1から送信されたデータは、IF1からの有効データである。例えば、上述のようにレーン幅変換部150−1が64ビットパラレルデータをFIFO部120−1から受信する場合、レーン幅変換部150−1は、64ビットの無効データを生成する。
レート検出部10−1〜10−nはビット列を処理し、その処理は、入力IF1〜IFnのプロトコルにおけるデータフレームの構成に依存しない。また、レート検出部10−1〜10−nは、有効データに対して無効データを追加することで、入力IF1〜IFnのプロトコルにおける伝送データレートの相違を吸収する。レート検出部10−1〜10−nは、無効データを追加することで、有効データを、同一の伝送データレートの伝送路を介して、仮想レーン化部20に送信することができる。
レーン幅変換部150−1は、受信した有効データ及び生成した無効データから、データ取得(有効データの受信及び無効データの生成)の時系列において、データブロックを生成する。1つのデータブロックは、有効データビット又は無効データビットのみからなる。無効データブロックは、規定のビットパターンを有する。
レーン幅変換部150−1は、所定のサイクルで、使用レーンのそれぞれに、データブロック(シリアルビット列)を出力する。例えば、データブロックのサイズは64ビットであり、各使用レーンは、64ビットブロックをシリアル伝送する。他の例において、データブロックのサイズは、FIFO部120−1のパラレルデータのサイズの整数倍又は整数分の1でもよい。
本例において、全てのレーン幅変換部150−1〜150−a0の出力及び入力(無効データの生成を含む)のサイクルは同一(周波数が同一で同期)である。つまり、レーン幅変換部150−1〜150−a0のFIFO部からのデータ出力チェックのタイミングと、仮想レーン化部20へのデータ出力のタイミングは一致する。これは、他のレート検出部10−2〜10−nにおけるレーン幅変換部について同様である。また、全てのレート検出部10−1〜10−nのレーン幅変換部の出力及び入力(無効データの生成を含む)のサイクルは同一である。
レーンレート検出部100−1〜100−a0は、それぞれ、独自にFIFO部120−1〜120−a0を制御するが、結果的に、全レーンレート検出部100−1〜100−a1のFIFO部120−1〜120−a0が同様に動作する。上記例は、各レーンレート検出部が独自にFIFO部及びレーン幅変換部を制御するが、1つのアドレス管理部及び1つの速度測定部が、1つのFIFO部からのデータを参照して、全てのレーンレート検出部の動作を、同様に(同一制御データで)制御してもよい。
図3は、仮想レーン化部20の構成例を模式的に示すブロック図である。図3に示す仮想レーン化部20は、セレクタ200、ユニット化部250−1〜250−mを含む。図3は、使用レーンに対応するユニット化部250−1〜250−mのみを示しており、その中で、ユニット化部250−1及び250−mのみを具体的に示している。
ユニット化部250−1は、ヘッダ付与部210−1、スクランブラ部220−1、マーカ挿入部230−1を含む。他のユニット化部も同様の構成を有する。例えば、ユニット化部250−mは、ヘッダ付与部210−m、スクランブラ部220―m、マーカ挿入部230−mを含む。
セレクタ200は、レート検出部10−1〜10−nからの伝送レーンから、使用レーンを選択して、使用レーンから受信したデータブロックを、それぞれ、ユニット化部250−1〜250−mに転送する。上述のように、使用レーン数はmである。
ユニット化部250−1〜250−mは、予め決められている方法により、受信したデータを含むデータユニットを生成する。ユニット化部250−1〜250−mは、マルチプレクサ30へ、生成したデータユニットを出力する。仮想レーン化部20により、L本の伝送レーンからなる伝送路でのデータ伝送に適したデータユニットを生成できる。
本例において、1つのデータユニットは、レーン幅変換部からの1以上のデータブロックを含む。以下において、1つのデータユニットは、1つのデータブロック(上記例において64ビットデータブロック)と管理データとからなる。
1つのデータユニットが、上記データブロックよりも小さいサイズのユーザデータのみを含んでもよいし、異なる使用レーンからのデータブロックを含んでもよい。データユニットに含まれる管理情報は、収容しているデータブロックのレーンを示す情報を含む。使用するユニット化部の数は、使用レーン数と一致していなくてよい。
ヘッダ付与部210−1は、データユニットの始まりを検出するヘッダを付与する。スクランブラ部220−1は、DCバランスやランレングスを保証するスクランブル処理を、ユーザデータブロックに対して行う。マーカ挿入部230−1は、Ethernetなどで使用するマーカを挿入する。ヘッダ及びマーかは、データユニットの管理データである。他のユニット化部も同様の処理を行う。
本例は、入力IFのプロトコルや伝送データレートに関係なく、仮想レーン化部20の処理を決めることができ、仮想レーン化部20は、異なるデータレートの送信データに対して同一の処理を行うことができる。なお、データユニットの生成方法は規格等で決められたものである必要はなく、特に限定されない。
[受信装置の詳細構成及び動作]
以下において、受信装置2の構成及び動作を説明する。図4は、受信装置2の物理リンク化部70の構成例を模式的に示すブロック図である。図4に示す物理リンク化部70は、ヘッダ同期部700−1〜700−m、マーカ同期部710−1〜710−m、レーンデスキュー&レーンリオーダ部720、デスクランブラ部730−1〜730−m、セレクタ740を含む。
物理リンク化部70は、m本の伝送レーンを介して、デマルチプレクサ60から、データユニットを受信する。上述のように、mは送信装置1における使用レーン数であり、可変数である。物理リンク化部70は、送信装置1の仮想レーン化部20にて生成されたデータユニットから、ユーザデータを取得する。
具体的には、ヘッダ同期部700−1〜700−mは、データユニットに含まれるヘッダを検出し、ヘッダの同期をとり、マーカ同期部710−1〜710−mに、データユニットを出力する。マーカ同期部710−1〜710−mは、データユニットに含まれマーカを検出し、マーカの同期をとり、レーンデスキュー&レーンリオーダ部720にデータユニットを出力する。
レーンデスキュー&レーンリオーダ部720は、同期したマーカを用いたレーン間のスキュー(遅延)を補正し、遅延差をなくす。さらに、レーンデスキュー&レーンリオーダ部720は、ヘッダ又はマーカを参照し、各データユニットの伝送レーンを決定する。上述のように、ヘッダ又はマーカは、当該データユニットのデータブロックの伝送レーン(レーン幅変換部からの使用レーン)を示す情報を含む。
レーンデスキュー&レーンリオーダ部720は、データユニットからデータブロック(ユーザデータ)を抽出し、それらデータブロックの使用レーンが対応するデスクランブラ部730−1〜730−mに出力する。デスクランブラ部730−1〜730−mからのデータは、それぞれ、物理リンク化部70からの対応付けられた出力レーンから出力される。
デスクランブラ部730−1〜730−mは、送信装置1でスクランブル処理されたデータブロックを復元し、セレクタ740へ出力する。セレクタ740は、全ての入力レーンから、データが出力されているm本の入力レーン(デスクランブラ部730−1〜730−mからのデータ)を選択し、m本の入力レーンに対応するそれぞれの出力レーンから、受信したデータブロックを出力する。なお、他の機能ブロック、例えば、セレクタ740がデータブロックの出力レーンを決定し、データユニットから管理データを除去してもよい。
図5は、受信装置2のレート再生部80−1の構成例を模式的に示すブロック図である。他のレート再生部も同様の構成を有する。図5に示すレート再生部80−1は、レーンレート再生部860−1〜860−a0及びPLL制御部850を含む。
レーンレート再生部860−1は、レーン幅変換部800−1、FIFO部810−1、アドレス管理部820−1、ビット幅変換部830−1、パラレル/シリアル(P/S)変換部840−1を含む。ビット幅変換部830−1により、レーンレート再生部860−1は、様々な構成(例えばFIFO部の様々なビット幅)のレーンレート検出部からの信号を処理することができる。例えば、レーンレート再生部のFIFO部の入力ビット幅及び出力ビット幅が、レーンレート検出部のFIFO部の出力ビット幅及び入力ビット幅と一致する場合、ビット幅変換部830−1は省略されることもある。
他のレーンレート再生部も同様の構成を有する。例えば、レーンレート再生部860−a0は、レーン幅変換部800−a0、FIFO部810−a0、アドレス管理部820−a0、ビット幅変換部830−a0、パラレル/シリアル(P/S)変換部840−a0を含む。
レート再生部80−1〜80−nは、y本の伝送レーンのうち、接続されている対応伝送レーンを介して、データブロックを受信する。例えば、レート再生部80−1の対応レーンの数はa1本であり、レート再生部80−nの対応レーンの数はx1本である。さらに、レート再生部80−1〜80−nは、対応する伝送レーンの内、使用レーンのみから
データ(データブロック)を受信する。
以下において、レート再生部80−1の動作を説明する。他のレート再生部の動作も同様である。レーン幅変換部800−1は、物理リンク化部70から、対応する伝送レーンを解して、データ受信する。上述のように、a1本の伝送レーンの内、送信装置1で選択された使用レーンに対応するレーンから、それぞれ、データブロックを受信する。
レーン幅変換部800−1は、受信したデータブロックから、有効データブロックを選択し、有効データブロックを時系列で並べる。無効データブロックは固有のパターンを有しており、レーン幅変換部800−1は、データブロックのパターンを参照して、有効データを選択することができる。
また、データブロックの時系列と入力伝送レーンとの関係(規則)は予め定められており、送信装置1におけるレーン幅変換部150−1と受信装置2のレーン幅変換部800−1とは、その規則を共有している。
レーン幅変換部800−1は、有効データを、その時系列に従って、FIFO部810−1に出力する。レーン幅変換部800−1とFIFO部810−1との間の伝送レーン数は、例えば、64本である。これは、送信装置1におけるFIFO部とレーン幅変換部との間の伝送レーン数に一致する。これらは異なる値であってもよい。
FIFO部810−1は、書き込み基準クロックに同期して、レーン幅変換部800−1からデータを受信する。以下の説明する例において、書き込みサイクルは、一定である。また、全てのレーンレート再生部860−1〜860−a0で書き込み基準クロックは共通であり、書き込みサイクルは同一である。一例において、全てのレート再生部80−1〜80−nにおいて、FIFO部の書き込み基準クロックは共通であり、書き込みサイクルは同一である。
FIFO部810−1では、レーン幅変換部800−1より受信したデータを、FIFOメモリに格納する。FIFO内コントローラは、FIFOメモリに格納されているデータを、PLL制御部850で生成されたクロック信号に同期して読み出し、ビット幅変換部830−1に送信する。本例において、FIFO部810−1の入力パラレルビット数と出力パラレルビット数は同一である。これらは異なっていてもよい。
FIFO内コントローラは、FIFOメモリからデータを読みだす時に、FIFOメモリの残データ量をチェックし、アドレス管理部820−1へ通知する。
アドレス管理部820−1は、FIFOメモリの残データ量に基づいて、FIFO部810−1の読み出し周波数を制御する。読み出しサイクルに含まれるクロック信号サイクル数は一定であり、アドレス管理部820−1は、PLL制御部850からのクロック信号の周波数を制御することで、読み出し周波数を制御する。この点は、後述する。
アドレス管理部820−1は、PLL制御部850へ指示して、クロック信号周波数を変更する。PLL制御部850は、アドレス管理部820−1から受信した情報に従って、読み出し周波数を決めるクロック信号を生成し、FIFO部810−1に供給する。PLL制御部850は、レーンレート再生部860−1〜860−a0のそれぞれに、独自のクロック信号(読み出し周波数信号)を送信するが、結果的に、それらクロック信号の周波数は一致する。
また、アドレス管理部820−1は、FIFO部810−1へのライトサイクルに基づき、ビット幅変換部830−1における出力ビット幅を決定し、ビット幅変換部830−1へ通知する。この点は後述する。
ビット幅変換部830−1は、指定されたビット幅に入力データのビット幅を変換し、パラレル/シリアル変換部840−1に送信する。パラレル/シリアル変換部840−1は、受信したパラレルデータをシリアルデータに変換し、出力レーンRxP1_1に出力する。
次に、図6及び図7を用いて、FIFO部からの読み出し周波数の制御方法、具体的には、FIFO部からの読み出しにおけるクロック周波数の制御方法を説明する。図6は、レーンレート再生部860−1の読み出し周波数制御のフローチャートである。他のレーンレート再生部860−1も同様のフローチャートに沿って動作する。
図7は、読み出し周波数の制御において基準となる、FIFO残データ量とクロック周波数調整量との関係を示す。図7において。閾値T1〜T6は、FIFOメモリの残データ量の閾値である。T1<T3<T5<T6<T4<T2の関係がある。各閾値は、いずれか1つの範囲に含まれる。閾値T1よりも小さい範囲を、アンダーフロー(UF)範囲と呼び、閾値T2よりも大きい範囲を、オーバーフロー(OF)範囲と呼ぶ。
閾値T1〜T3の間の範囲を、アンダーフロー側の粗調整範囲と呼ぶ。閾値T3〜T5の間の範囲を、アンダーフロー側の微調整範囲と呼ぶ。中心値を含む閾値T5〜T6の間の範囲を、無調整範囲と呼ぶ。閾値T6〜T4の間の範囲を、オーバーフロー側の微調整範囲と呼ぶ。閾値T4〜T2の間の範囲を、オーバーフロー側の粗調整範囲と呼ぶ。
残データ量が、アンダーフロー範囲に含まれる場合、アドレス管理部820−1は、クロック周波数を変更せず、FIFO部810−1からの読み出しを停止する。残データ量が、アンダーフロー側粗調整範囲に含まれる場合、アドレス管理部820−1は、予め定められている量だけ、クロック周波数を低くする。
残データ量がアンダーフロー側微調整範囲に含まれる場合、アドレス管理部820−1は、予め定められている量だけ、クロック周波数を低くする。この変更量は、アンダーフロー側粗調整範囲の変更量よりも少ない。これにより、残データ量の基準値からの乖離量に応じて、適切にクロック周波数(読み出し周波数)を制御し、より早く無調整範囲に含めることができる。
残データ量が無調整範囲に含まれる場合、アドレス管理部820−1は、クロック周波数を変更することなく、現在の周波数を維持する。残データ量がオーバーフロー側微調整範囲に含まれる場合、アドレス管理部820−1は、予め定められている量だけ、クロック周波数を高くする。
残データ量が、オーバーフロー側粗調整範囲に含まれる場合、アドレス管理部820−1は、予め定められている量だけ、クロック周波数を高くする。この変更量は、オーバーフロー側微調整範囲の変更量よりも多い。残データ量が、オーバーフロー範囲に含まれる場合、アドレス管理部820−1は、クロック周波数を変更せず、FIFO部810−1への書き込みを停止する。
図6を参照して、アドレス管理部820−1によるFIFO制御を説明する。FIFO部810−1及びアドレス管理部820−1は、FIFO部の読み出し周波数で、図6のフローチャートの処理を繰り返す。
アドレス管理部820−1は、FIFO部810−1からの読み出し時(読み出し停止中は読み出すべき時)に、現在のFIFOメモリの残データ量を示す値を、FIFO部810−1から取得する(S101)。アドレス管理部820−1は、残データ量が、図7を示した範囲の内のいずれの範囲に含まれるか判定する。
残データ量が、アンダーフロー範囲(<T1)又はオーバーフロー範囲(>T2)に含まれる場合(S102:YES)、アドレス管理部820−1は、FIFO部810−1に、読み出し又は書き込みの停止を指示する(S103)。アドレス管理部820−1は、クロック周波数を変更せず維持する(S104)。
残データ量が、アンダーフロー範囲又はオーバーフロー範囲に含まれない場合(S102:NO)、アドレス管理部820−1は、FIFO部810−1の読み出し又は書き込みが停止中であるか判定する(S115)。FIFO部810−1の読み出し又は書き込みを開始する(S116)。
残データ量が、アンダーフロー側粗調整範囲(T1〜T3)又はオーバーフロー側粗調整範囲(T4〜T2)に含まれる場合(S102:NO、S105:YES)、アドレス管理部820−1は、クロック周波数を大きく低下又は増加させる(S106)。
残データ量が、アンダーフロー側微調整範囲(T3〜T5)又はオーバーフロー側微調整範囲(T6〜T4)に含まれる場合(S105:NO、S107:YES)、アドレス管理部820−1は、クロック周波数を小さく低下又は増加させる(S108)。残データ量が、無調整範囲(T5〜T6)に含まれる場合(S107:NO)、アドレス管理部820−1は、当該クロック周波数がIF1(IFr1)に対応した適切なクロック周波数であると判定し、クロック周波数を変更せず維持する(S104)。
残データ量が無調整範囲に含まれる場合、FIFO部810−1への有効データの伝送データレートと、FIFO部810−1からの伝送データレートがバランスしており、読み出し周波数は、IF1の伝送データレートを反映した値である。
なお、上記残データ量が含まれる範囲の判定を、FIFO部810−1のFIFO内コントローラが実行してもよい。アドレス管理部820−1は、判定結果をFIFO部810−1から取得して、PLL制御部850を制御する。
次に、図8と図9を用いて、レート再生部80−1による、IF1の伝送データレート(IFr1の伝送データレートと同一)の再生処理(推定処理)を説明する。他のレート再生部も同様の処理を行う。また、以下に説明する処理は、レート再生部80−1における各レーンレート再生部が行う。各レーンレート再生部による伝送データレート推定値は一致する。以下では、レーンレート再生部860−1の処理を説明する。
図8は、レーンレート再生部860−1が行う処理の流れを示すフローチャート、図9は、FIFO部810−1における、ライトサイクルとIFr1(IF1)の伝送データレートとの関係を示す図である。
ライトサイクルは、FIFO部の書き込み基準クロックの周波数、FIFO部への書き込みのビット幅、そしてFIFO部に書き込むデータの伝送データレート、で決まる値である。例えば、基準クロック周波数が176.5625MHz、ビット幅が96bitの場合、ライトサイクルは、((176.5625×96=16.95Gbps)/伝送データレート[Gbps])と定義される。
ライトサイクルは、ある伝送データレート[Gbps]で伝送されているデータをFIFO部に書き込む場合に、1回のFIFO部への書き込みのために必要となる、基準クロックのサイクル数を示す。ライトサイクル数、FIFO部への書き込み基準クロックの周波数、及びFIFO部への書き込みのビット幅から、FIFO部への入力データの伝送データレートが算出される。
例えば、基準クロック周波数が176.5625MHz、ビット幅が96bit、伝送データレートが1.0625Gbpsの場合、ライトサイクル数は15.95回である。この例において、FIFO部への100回の書き込みの間の基準クロックサイクル数をカウントすると、1595回である。
伝送データレートが高速であれば、FIFO部に1回に書き込むためのビット数を短い時間長で受信することができるため、ライトサイクル数(前回書き込みから今回書き込みまでの基準クロックのサイクル数)は小さくなる。本例は、FIFO部のライトサイクル数をカウントして、有効データつまりIF1の伝送データレートを判定する。これにより、迅速かつ適切に伝送データレートを推定することができる。
本例は、図9に示す情報に従って伝送データレートを判定する。レーンレート再生部860−1は、100回のFIFO書き込みにおけるライトサイクル数をカウント(測定)する。レーンレート再生部860−1は、カウントしたライトサイクル数と、レート境界値カラムの値を比較し、カウント数がいずれの範囲に含まれるか判定する。
図9の例において、2つの隣接するレート境界値ペアが、それぞれ、範囲を規定する。例えば、クロックカウント数が136以上163未満の範囲に含まれる場合、レーンレート再生部860−1は、伝送データレートは10.51875であると判定する。クロックカウント数が163以上167未満の範囲に含まれる場合、レーンレート再生部860−1は、伝送データレートは10.3125であると判定する。クロックカウント数が136未満又は1792以上である場合、レーンレート再生部860−1は、状態が異常であると判定する。
図8のフローチャートを参照して、伝送データレートの判定方法を説明する。レーンレート再生部860−1は、FIFO部810−1への100回のデータ書き込み毎に、図8のフローチャートの処理を行う。FIFO部810−1のFIFO内コントローラは、FIFOメモリへの所定回数(図9の例において100回)の書き込み間において書き込み基準クロックのサイクル数をカウントし、カウントした数値をアドレス管理部820−1に送信する(S201)。
アドレス管理部820−1は、FIFO内コントローラから受信したカウント数と、予め有するレート境界値(図9を参照)を比較して、所定回数のFIFO部810へのデータ書き込みのライトサイクルが、いずれの範囲に含まれるかを決定する(S202)。
カウント値が、高速又は低速の異常状態を示す範囲に含まれる場合(S203:YES)、アドレス管理部820−1は、設定されている伝送データレートを変更することなく(S204)、異常状態の検出の履歴を保存する。アドレス管理部820−1は、管理者からの要求又は自発的に管理者に異常状態を通知してもよい。
カウント数が異常状態を示す範囲外である場合(S203:NO)、アドレス管理部820−1は、カウント数が含まれる範囲に対応する伝送データレートを決定する(S205)。図9を参照して説明したように、アドレス管理部820−1は、カウント数が含まれる範囲と伝送データレートとを対応付ける情報を予め有している。
アドレス管理部820−1は、カウント数が示す伝送データレートが、現在設定されている伝送データレートから変化しているか判定する(S206)。アドレス管理部820−1はメモリを含み、当該メモリに過去の測定により設定されている伝送データレートが格納されている。アドレス管理部820−1は、メモリ内の伝送データレートの値と、今回測定した伝送データレートの値を比較する。
伝送データレートが変化していない場合(S206:NO)、アドレス管理部820−1は、メモリに格納されている伝送データレートを維持する(S204)。伝送データレートが変化している場合(S206:YES)、アドレス管理部820−1は、メモリに格納されている伝送データレートの値を変更する(S207)。
アドレス管理部820−1は、新たな伝送データレートの値を、ビット幅変換部830−1に通知する(S208)。ビット幅変換部830−1は、伝送データレートとビット幅とを関連付ける情報を予め有している。ビット幅変換部830−1は、通知された伝送データレートに対応するビット幅に、受信したデータのビット幅を変換する。例えば、より高い伝送データレートに対してより大きいビット幅が対応付けられ、パラレル/シリアル変換部840−1からの出力データレートは、入力ビット幅が大きくなると増加する。
ビット幅変換部830−1からパラレル/シリアル変換部840−1を介して送信されるデータの伝送データレートは、送信装置1におけるIF1からレート検出部10−1への入力の伝送データレートに一致し、送信装置1における対応する入力IF1の伝送データレートが再生される。
さらに、アドレス管理部820−1は、新たな伝送データレートの値を、IFr1のトランシーバに通知する。トランシーバは、伝送レーンRxP1_1〜RxP1_a0の先に接続されており、通知された伝送データレートでデータを伝送する。
なお、1つのアドレス管理部が1つのFIFO部からのデータを参照して、全てのレーンレート再生部のFIFO部及びビット幅変換部を制御してもよい。各レーンレート再生部のアドレス管理部が、そのレーンレート再生部のビット幅変換部を制御し、一つのアドレス管理部のみが、トランシーバに推定した伝送データレートを通知してもよい。
本実施例のデータ伝送方法およびデータ伝送装置を用いることで、プロトコルや伝送データレートが異なる複数のインタフェースからの送信データを、多重化・分離化をすることができる。また、本例のデータ伝送装置は単一の回路で実現することができるので、小型かつ低遅延な、マルチレートに対応した大容量データ伝送装置を実現することができる。
上述のように、送信装置は、複数のインタフェースからの送信データを多重化し、管理情報を挿入してデータをユニット化(仮想レーン化)し、高速な伝送路に出力する。受信装置は、高速な伝送路から受信した多重化データを分離し、FIFOメモリにデータを格納する。受信装置は、FIFOメモリの残データ量に基づいてFIFOメモリからの読み出し用のクロック信号をPLL制御部で再生する。各インタフェースの周波数情報を取り出し、当該周波数と同一の周波数を有する。
このように、本実施例の送信装置及び受信装置の内部動作は、伝送するデータの内容とプロトコルに、影響を受けることがない。本実施例は、異なるプロトコルの信号が入力された場合でも処理時間を保証することができ、伝送時間の低遅延化を実現することができる。
実施例2によるデータ伝送システムを、図10〜図12を用いて説明する。以下において、実施例1との相違点を主に説明する。まず、図10及び図11を参照して、FIFO部からの読み出しにおけるクロック周波数の制御方法を説明する。
図11は、読み出し周波数の制御において基準となる、FIFOメモリのアンダーフロー/オーバーフローの検出間隔とクロック周波数調整量との関係を示す。本例では、FIFO内コントローラが、アンダーフロー/オーバーフローを検出し、それをアドレス管理部130に通知する。
FIFO内コントローラは、残データ量が予め定められた第1閾値以下である場合に、アンダーフローが発生していると判定する。また、FIFO内コントローラは、残データ量が第1閾値よりも大きい予め定められた閾値以上である場合にオーバーフローが発生していると判定する。
図11において。閾値T1、T3、T5は、アンダーフローの検出間隔の閾値であり、閾値T6、T4、T2はオーバーフロー検出間隔の閾値である。T1<T3<T5の関係が成立し、T6>T4>T2の関係が成立する。各閾値はいずれかの範囲に含まれる。
閾値T1よりも小さい範囲を、アンダーフロー(UF)異常範囲と呼び、閾値T2よりも小さい範囲を、オーバーフロー(OF)異常範囲と呼ぶ。閾値T1〜T3の間の範囲を、アンダーフロー側の粗調整範囲と呼ぶ。閾値T3〜T5の間の範囲を、アンダーフロー側の微調整範囲と呼ぶ。閾値T5より大きい範囲及び閾値T6より大きい範囲を、無調整範囲と呼ぶ。閾値T4〜T6の間の範囲を、オーバーフロー側の微調整範囲と呼ぶ。閾値T2〜T4の間の範囲を、オーバーフロー側の粗調整範囲と呼ぶ。
アンダーフローの検出間隔が、アンダーフロー異常範囲に含まれる場合、アドレス管理部820−1は、クロック周波数を変更せず、FIFO部810−1からの読み出しを停止する。アンダーフローの検出間隔が、アンダーフロー側粗調整範囲に含まれる場合、アドレス管理部820−1は、予め定められている量だけ、クロック周波数を低くする。
アンダーフローの検出間隔がアンダーフロー側微調整範囲に含まれる場合、アドレス管理部820−1は、予め定められている量だけ、クロック周波数を低くする。この変更量は、アンダーフロー側粗調整範囲の変更量よりも少ない。アンダーフローの検出間隔が無調整範囲に含まれる場合、アドレス管理部820−1は、クロック周波数を変更することなく、現在の周波数を維持する。
オーバーフロー検出間隔が無調整範囲に含まれる場合、アドレス管理部820−1は、クロック周波数を変更することなく、現在の周波数を維持する。オーバーフロー検出間隔がオーバーフロー側微調整範囲に含まれる場合、アドレス管理部820−1は、予め定められている量だけ、クロック周波数を高くする。
オーバーフロー検出間隔が、オーバーフロー側粗調整範囲に含まれる場合、アドレス管理部820−1は、予め定められている量だけ、クロック周波数を高くする。この変更量は、オーバーフロー側微調整範囲の変更量よりも多い。オーバーフロー検出間隔が、オーバーフロー異常範囲に含まれる場合、アドレス管理部820−1は、クロック周波数を変更せず、FIFO部810−1への書き込みを停止する。
図10は、レーンレート再生部860−1の読み出し周波数制御のフローチャートである。他のレーンレート再生部860−2〜860−a0も同様のフローチャートに沿って動作する。図10を参照して、アドレス管理部820−1によるFIFO制御処理を説明する。
アドレス管理部820−1は、アンダーフロー又はオーバーフローの検出の通知を、FIFO部810−1から取得する(S301)。アドレス管理部820−1は、アンダーフロー又はオーバーフローの前回の検出からの検出間隔が、図11を示した範囲の内のいずれの範囲に含まれるか判定する。アンダーフロー及びオーバーフローのそれぞれの検出間隔は、個別に測定される。判定は、検出間隔の移動平均など、複数の検出間隔の値から得られる値を使用してもよい。
検出間隔が、アンダーフロー異常範囲(<T1)又はオーバーフロー異常範囲(<T2)に含まれる場合(S302:YES)、アドレス管理部820−1は、FIFO部810−1に、読み出し又は書き込みの停止を指示する(S303)。アドレス管理部820−1は、クロック周波数を変更せず維持する(S304)。
検出間隔が、アンダーフロー異常範囲又はオーバーフロー異常範囲に含まれない場合(S302:NO)、アドレス管理部820−1は、FIFO部810−1の読み出し又は書き込みが停止中であるか判定する(S315)。FIFO部810−1の読み出し又は書き込みを開始する(S316)。
検出間隔が、アンダーフロー側粗調整範囲(T1〜T3)又はオーバーフロー側粗調整範囲(T2〜T4)に含まれる場合(S302:NO、S305:YES)、アドレス管理部820−1は、クロック周波数を大きく低下又は増加させる(S306)。
検出間隔が、アンダーフロー側微調整範囲(T3〜T5)又はオーバーフロー側微調整範囲(T6〜T4)に含まれる場合(S305:NO、S307:YES)、アドレス管理部820−1は、クロック周波数を小さく低下又は増加させる(S308)。検出間隔が、無調整範囲(>T5又は>T6)に含まれる場合(S307:NO)、アドレス管理部820−1は、クロック周波数を変更せず維持する(S304)。
検出間隔が無調整範囲に含まれる場合、FIFO部810−1への有効データの伝送データレートと、FIFO部810−1からの伝送データレートがバランスしており、読み出し周波数は、IF1の伝送データレートを反映した値である。
なお、上記検出間隔が含まれる範囲の判定を、FIFO部810−1のFIFO内コントローラが実行してもよい。アドレス管理部820−1は、判定結果をFIFO部810−1から取得して、PLL制御部850を制御する。
次に、図12のフローチャートを参照して、伝送データレートの判定方法を説明する。例えば、レーンレート再生部860−1は、図10、11を参照して説明したFIFO制御を開始する前に、本フローチャートの処理を行う。レーンレート再生部860−1は、FIFO部810−1におけるアンダーフロー/オーバーフローの検出間隔に基づいて、伝送データレートを判定する。検出間隔の測定方法は、図10、11を参照して説明した読み出し周波数の制御と同様である。UF/OF検出の閾値は、読み出し周波数の制御と同一でも異なっていてもよい。
アドレス管理部820−1は、アンダーフロー又はオーバーフローの検出の通知を、FIFO部810−1から取得する(S401)。アドレス管理部820−1は、アンダーフロー又はオーバーフローの測定された検出間隔が含まれる範囲を決定する(S402)。アドレス管理部820−1は、アンダーフロー及びオーバーフローのそれぞれについて、検出間隔の複数の範囲を定義する閾値を予め有している。
検出間隔が閾値よりも小さく、アンダーフロー異常範囲又はオーバーフロー異常範囲に含まれる場合(S403:YES)、アドレス管理部820−1は、設定されている伝送データレートを変更することなく(S404)、異常状態の検出の履歴を保存する。アドレス管理部820−1は、管理者からの要求又は自発的に管理者に異常状態を通知してもよい。
検出間隔が異常状態を示す範囲外である場合(S403:NO)、アドレス管理部820−1は、検出間隔が含まれる範囲に対応する伝送データレートを決定する(S405)。アドレス管理部820−1は、アンダーフロー及びオーバーフローのそれぞれについて検出間隔が含まれる範囲と伝送データレートとを対応付ける情報を予め有している。この点は、実施例1がライトサイクルを使用して伝送データレートを判定する方法と同様である。
より短いアンダーフロー検出間隔(の範囲)に対してより小さい伝送データレートが対応付けられ、より短いオーバーフロー検出間隔(の範囲)に対してより大きい伝送データレートが対応付けられている。
アドレス管理部820−1は、検出間隔が示す伝送データレートが、現在設定されている伝送データレートから変化しているか判定する(S406)。アドレス管理部820−1はメモリを含み、当該メモリに過去の測定により設定されている伝送データレートが格納されている。アドレス管理部820−1は、メモリ内の伝送データレートの値と、今回測定した伝送データレートの値を比較する。以下のステップS407〜S409は、実施例1における図8のフローチャートのステップS207〜S209と同様である。
以上説明した実施例2によるデータ伝送システムによれば、実施例1と同様の効果に加え、FIFO部のオーバーフロー/アンダーフローにより、受信装置のFIFO部を制御し、伝送データレートを判定することができる。
なお、レート再生部は、FIFO部の読み出し周波数を実施例1の方法に従って制御し、伝送データレートを実施例2の方法に従って再生してもよい。レート再生部は、読み出し周波数を実施例2の方法に従って制御し、伝送データレートを実施例1の方法に従って再生してもよい。