以下、本発明の実施の形態について添付図面を参照しながら詳細に説明する。
図3は、本発明によるデスタッフ回路の一実施形態の構成を示すブロックである。
図3において、本実施形態のデスタッフ回路は、スタッフ移動部10、データ回転部30およびバッファ部50を備える。
スタッフ移動部10は、複数のレーンに割り当てられた並列データ信号が入力され、各レーンにおけるスタッフの位置情報を基に入力データ中の無効データを同じ列内で移動させて片側に集める。データ回転部30は、スタッフ移動部10から出力される並列データ信号の列ごとのスタッフ数を検出し、該検出結果に応じて各列のデータを一方向に回転操作する。バッファ部50は、データ回転部30から出力される並列データ信号の有効データを先入れ先出し(FIFO)方式で記憶して出力する。
以下では、上記デスタッフ回路の各部の具体的な構成について、OTN(Optical Transport Network)やSONET/SDH(Synchronous Optical NETwork / Synchronous Digital Hierarchy)等の規格に対応してデスタッフ処理がバイト単位で行われる場合の例を挙げて詳しく説明する。ただし、本発明がバイト単位のデスタッフ処理に限定されることを意味するものではなく、デスタッフ処理がビット単位で行われる場合にも本発明は有効である。
図4は、上記スタッフ移動部10の具体的な構成の一例を示す回路図である。
図4において、スタッフ移動部10は、例えば、32ビットの並列データ信号をバイト単位で4つのレーンに割り当てた各データ信号DT1,DT2,DT3,DT4、および、該各データ信号DT1〜DT4にそれぞれ対応したスタッフ信号STF1,STF2,STF3,STF4が与えられる第1シフトブロック11と、該第1シフトブロック11に直列に接続された第2シフトブロック12と、を有する。なお、第1および第2シフトブロック11,12は同一の回路構成であるため、図4には第1シフトブロック11内の回路構成のみを示し、第2シフトブロック12内の回路構成の図示は省略している。
上記データ信号DT1〜DT4は、図示しない送信側でのスタッフ処理により無効データがバイト単位で挿入された信号である。また、上記スタッフ信号STF1〜STF4は、対応するデータ信号DT1〜DT4のスタッフ位置に関する情報を示す1ビットの信号である。ここでは、スタッフ信号STF1〜STF4のビット値が「1」のとき、対応するデータ信号DT1〜DT4のバイトがスタッフ位置に該当する無効データであることを示し、ビット値が「0」のとき、対応するデータ信号DT1〜DT4のバイトがスタッフ位置には該当しない有効データであることを示すものとする。
第1シフトブロック11は、例えば、4個の2入力1出力(2×1)セレクタ21,22,23,24およびフリップフロップ(FF)25を組み合わせた前段部分と、2個の2入力1出力セレクタ26,27およびフリップフロップ(FF)28を組み合わせた後段部分とから構成される。
セレクタ21は、2つの入力端子のうちの一方の入力端子に対して、4つのデータ信号DT1〜DT4のうちの第1レーンに該当するデータ信号DT1およびそれに対応するスタッフ信号STF1を一緒にした9ビットの信号(以下、DT1+STF1信号と表記する)が入力される。また、セレクタ21は、2つの入力端子のうちの他方の入力端子に対して、4つのデータ信号DT1〜DT4のうちの第2レーンに該当するデータ信号DT2およびそれに対応するスタッフ信号STF2を一緒にした9ビットの信号(以下、DT2+STF2信号と表記する)が入力される。上記セレクタ21は、制御端子に入力されるスタッフ信号STF1のビット値が「0」、すなわち、データ信号DT1のバイトが有効データである場合、一方の入力端子に入力されるDT1+STF1信号を選択して出力端子から出力する。また、セレクタ21は、スタッフ信号STF1のビット値が「1」、すなわち、データ信号DT1のバイトが無効データである場合、他方の入力端子に与えられるDT2+STF2信号を選択して出力端子から出力する。
セレクタ22は、2つの入力端子のうちの一方の入力端子に対してDT2+STF2信号が入力され、他方の入力端子に対してDT1+STF1信号が入力される。このセレクタ22は、制御端子に入力されるスタッフ信号STF1のビット値が「0」の場合、一方の入力端子に入力されるDT2+STF2信号を選択して出力端子から出力し、スタッフ信号STF1のビット値が「1」の場合には、他方の入力端子に与えられるDT1+STF1信号を選択して出力端子から出力する。
セレクタ23は、2つの入力端子のうちの一方の入力端子に対して、4つのデータ信号DT1〜DT4のうちの第3レーンに該当するデータ信号DT3およびそれに対応するスタッフ信号STF3を一緒にした9ビットの信号(以下、DT3+STF3信号と表記する)が入力される。また、セレクタ23は、2つの入力端子のうちの他方の入力端子に対して、4つのデータ信号DT1〜DT4のうちの第4レーンに該当するデータ信号DT4およびそれに対応するスタッフ信号STF4を一緒にした9ビットの信号(以下、DT4+STF4信号と表記する)が入力される。上記セレクタ23は、制御端子に入力されるスタッフ信号STF3のビット値が「0」、すなわち、データ信号DT3のバイトが有効データである場合、一方の入力端子に入力されるDT3+STF3信号を選択して出力端子から出力する。また、セレクタ23は、スタッフ信号STF3のビット値が「1」、すなわち、データ信号DT3のバイトが無効データである場合、他方の入力端子に与えられるDT4+STF4信号を選択して出力端子から出力する。
セレクタ24は、2つの入力端子のうちの一方の入力端子に対してDT4+STF4信号が入力され、他方の入力端子に対してDT3+STF3信号が入力される。このセレクタ24は、制御端子に入力されるスタッフ信号STF3のビット値が「0」の場合、一方の入力端子に入力されるDT4+STF4信号を選択して出力端子から出力し、スタッフ信号STF3のビット値が「1」の場合には、他方の入力端子に与えられるDT3+STF3信号を選択して出力端子から出力する。
フリップフロップ25は、各セレクタ21〜24からそれぞれ出力される信号をラッチして第1シフトブロック11の後段部分に伝える。なお、上記各セレクタ21〜24およびフリップフロップ25の内部における処理は、バイト単位のデータ信号と1ビットのスタッフ信号を合わせた9ビットごとに行われる。
セレクタ26は、2つの入力端子のうちの一方の入力端子に対して、前段部分のセレクタ22からフリップフロップ25を介して伝えられる、データ信号DT2’およびそれに対応したスタッフ信号STF2’を一緒にした9ビットの信号(以下、DT2’+STF2’信号と表記する)が入力される。また、セレクタ26は、2つの入力端子のうちの他方の入力端子に対して、前段部分のセレクタ23からフリップフロップ25を介して伝えられる、データ信号DT3’およびそれに対応したスタッフ信号STF3’を一緒にした9ビットの信号(以下、DT3’+STF3’信号と表記する)が入力される。上記セレクタ26の制御端子には、DT2’+STF2’信号から取り出したスタッフ信号STF2’が与えられる。セレクタ26は、スタッフ信号STF2’のビット値が「0」、すなわち、データ信号DT2’のバイトが有効データである場合、一方の入力端子に入力されるDT2’+STF2’信号を選択して出力端子から出力する。また、セレクタ26は、スタッフ信号STF2’のビット値が「1」、すなわち、データ信号DT2’のバイトが無効データである場合、他方の入力端子に与えられるDT3’+STF3’信号を選択して出力端子から出力する。
セレクタ27は、2つの入力端子のうちの一方の入力端子に対してDT3’+STF3’信号が入力され、他方の入力端子に対してDT2’+STF2’信号が入力される。このセレクタ27は、制御端子に与えられるスタッフ信号STF2’のビット値が「0」の場合、一方の入力端子に入力されるDT3’+STF3’信号を選択して出力端子から出力し、スタッフ信号STF2’のビット値が「1」の場合には、他方の入力端子に与えられるDT2’+STF2’信号を選択して出力端子から出力する。
フリップフロップ28は、前段部分のセレクタ21,24からフリップフロップ25を介して伝えられるDT1’+STF1’信号およびDT4’+STF4’信号と、各セレクタ26,27から出力される信号とをそれぞれラッチして第2シフトブロック12に伝える。なお、上記各セレクタ26,27およびフリップフロップ28の内部における処理についても、バイト単位のデータ信号と1ビットのスタッフ信号を合わせた9ビットごとに行われる。
第2シフトブロック12は、上記第1シフトブロック11と同一の回路構成であり、該第2シフトブロック12は、後段部分のフリップフロップ28から、第1レーンの出力信号として、データ信号DT1aおよびそれに対応したスタッフ信号STF1aを一緒にしたDT1a+STF1a信号を出力し、第2レーンの出力信号として、データ信号DT2aおよびそれに対応したスタッフ信号STF2aを一緒にしたDT2a+STF2a信号を出力し、第3レーンの出力信号として、データ信号DT3aおよびそれに対応したスタッフ信号STF3aを一緒にしたDT3a+STF3a信号を出力し、第4レーンの出力信号として、データ信号DT4aおよびそれに対応したスタッフ信号STF4aを一緒にしたDT4a+STF4a信号を出力する。
図5は、上記図3に示したデータ回転部30の具体的な構成の一例を示す回路図である。
図5において、データ回転部30は、例えば、4個の2入力1出力(2×1)セレクタ31A,32A,33A,34Aおよびフリップフロップ(FF)35Aを組み合わせた第1回転ブロック30Aと、4個の2入力1出力(2×1)セレクタ31B,32B,33B,34Bおよびフリップフロップ(FF)35Bを組み合わせた第2回転ブロック30Bと、4個の2入力1出力(2×1)セレクタ31C,32C,33C,34Cおよびフリップフロップ(FF)35Cを組み合わせた第3回転ブロック30Cと、を備える。また、データ回転部30は、スタッフ移動部10からの出力信号に含まれるデータ信号DT1a〜DT4aにおける各列のスタッフ数を検出するための加算回路41およびフリップフロップ42と、該スタッフ数の検出結果に応じて各段のセレクタ31A〜34A,31B〜34B,31C〜34Cを制御するためのデコーダ43およびフリップフロップ44B,44C1,44C2と、を備える。
第1回転ブロック30Aのセレクタ31Aは、2つの入力端子のうちの一方の入力端子に対して、スタッフ移動部10から出力されるDT1a+STF1a信号が入力され、他方の入力端子に対して、スタッフ移動部10から出力されるDT2a+STF2a信号が入力される。このセレクタ31Aの制御端子には、後述するデコーダ43から出力される制御信号SC1が与えられる。セレクタ31Aは、制御信号SC1のビット値が「0」の場合、一方の入力端子に入力されるDT1a+STF1a信号を選択して出力端子から出力し、制御信号SC1のビット値が「1」の場合には、他方の入力端子に与えられるDT2a+STF2a信号を選択して出力端子から出力する。
セレクタ32Aは、2つの入力端子のうちの一方の入力端子に対して、スタッフ移動部10から出力されるDT2a+STF2a信号が入力され、他方の入力端子に対して、スタッフ移動部10から出力されるDT3a+STF3a信号が入力される。このセレクタ32Aは、制御端子に与えられる制御信号SC1のビット値が「0」の場合、一方の入力端子に入力されるDT2a+STF2a信号を選択して出力端子から出力し、制御信号SC1のビット値が「1」の場合には、他方の入力端子に与えられるDT3a+STF3a信号を選択して出力端子から出力する。
セレクタ33Aは、2つの入力端子のうちの一方の入力端子に対して、スタッフ移動部10から出力されるDT3a+STF3a信号が入力され、他方の入力端子に対して、スタッフ移動部10から出力されるDT4a+STF4a信号が入力される。このセレクタ33Aは、制御端子に与えられる制御信号SC1のビット値が「0」の場合、一方の入力端子に入力されるDT3a+STF3a信号を選択して出力端子から出力し、制御信号SC1のビット値が「1」の場合には、他方の入力端子に与えられるDT4a+STF4a信号を選択して出力端子から出力する。
セレクタ34Aは、2つの入力端子のうちの一方の入力端子に対して、スタッフ移動部10から出力されるDT4a+STF4a信号が入力され、他方の入力端子に対して、スタッフ移動部10から出力されるDT1a+STF1a信号が入力される。このセレクタ34Aは、制御端子に与えられる制御信号SC1のビット値が「0」の場合、一方の入力端子に入力されるDT4a+STF4a信号を選択して出力端子から出力し、制御信号SC1のビット値が「1」の場合には、他方の入力端子に与えられるDT1a+STF1a信号を選択して出力端子から出力する。
フリップフロップ35Aは、各セレクタ31A〜34Aからそれぞれ出力される信号をラッチして第2回転ブロック30Bに伝える。なお、上記各セレクタ31A〜34Aおよびフリップフロップ35Aの内部における処理は、バイト単位のデータ信号と1ビットのスタッフ信号を合わせた9ビットごとに行われる。
第2回転ブロック30Bの各セレクタ31B〜34Bおよびフリップフロップ35B、並びに、第3回転ブロック30Cの各セレクタ31C〜34Cおよびフリップフロップ35Cも、上記第1回転ブロック30Aの各セレクタ31A〜34Aおよびフリップフロップ35Aと同様な構成であり、第2回転ブロック30Bの各セレクタ31B〜34Bは、デコーダ43からフリップフロップ44Bを介して各々の制御端子に与えられる制御信号SC2のビット値に従って動作する。また、第3回転ブロック30Cの各セレクタ31C〜34Cは、デコーダ43からフリップフロップ44C1,44C2を介して各々の制御端子に与えられる制御信号SC3のビット値に従って動作する。第3回転ブロック30Cのフリップフロップ35Cは、第1レーンの出力信号として、データ信号DT1bおよびそれに対応したスタッフ信号STF1bを一緒にしたDT1b+STF1b信号を出力し、第2レーンの出力信号として、データ信号DT2bおよびそれに対応したスタッフ信号STF2bを一緒にしたDT2b+STF2b信号を出力する。また、第3回転ブロック30Cのフリップフロップ35Cは、第3レーンの出力信号として、データ信号DT3bおよびそれに対応したスタッフ信号STF3bを一緒にしたDT3b+STF3b信号を出力し、第4レーンの出力信号として、データ信号DT4bおよびそれに対応したスタッフ信号STF4bを一緒にしたDT4b+STF4b信号を出力する。
加算回路41は、スタッフ移動部10からの各出力信号よりそれぞれ取り出したスタッフ信号STF1a〜STF4aと、後段のフリップフロップ42の出力信号とが入力され、該各入力信号が示すビット値を、データ信号DT1a〜DT4aに同期したクロック信号のタイミングに合わせて加算し、該加算値を示す2ビットの信号ADDをフリップフロップ42に出力する。フリップフロップ42は、加算回路41の出力信号ADDをラッチし、加算回路41における前回の加算値を示す2ビットの信号Cをデコーダ43および加算回路41に出力する。上記加算回路41およびフリップフロップ42の組み合わせにより、データ回転部30への入力データに含まれるスタッフの現在までの合計個数が加算回路41で求められ、該合計個数を0〜3個の巡回カウント値として示す信号ADDがフリップフロップ42を介してデコーダ43に伝えられる。
デコーダ43は、フリップフロップ42の出力信号Cが示すカウント値に応じて、第1〜第3回転ブロック30A〜30Cにおけるデータの回転操作をそれぞれ制御する信号SC1〜SC3を生成する。該各制御信号SC1〜SC3の値は、ここでは、C=0のときSC1=SC2=SC3=0、C=1のときSC1=1およびSC2=SC3=0、C=2のときSC1=SC2=1およびSC3=0、C=3のときSC1=SC2=SC3=1に設定される。上記デコーダ43で生成される制御信号SC1は、第1回転ブロック30Aの各セレクタ31A〜34Aの制御端子にそれぞれ与えられる。制御信号SC2は、1つのフリップフロップ44Bを介して、第2回転ブロック30Bの各セレクタ31B〜34Bの制御端子にそれぞれ与えられる。制御信号SC3は、2つのフリップフロップ44C1,44C2を介して、第3回転ブロック30Cの各セレクタ31C〜34Cの制御端子にそれぞれ与えられる。
図6は、上記図3に示したバッファ部50の具体的な構成の一例を示す回路図である。
図6において、バッファ部50は、例えば、4個のエラスティック型のFIFO51〜54と、該FIFO51〜54へのデータの書き込みを制御する制御回路55〜58とを有する。
FIFO51〜54は、それぞれ、データ回転部30の出力信号より取り出したデータ信号DT1b〜DT4bが入力され、該データ信号DT1b〜DT4bに同期した書き込みクロック信号CLK−Wに従ってデータの書き込みを行うと共に、該書き込みクロック信号CLK−Wより周波数の低い読み出しクロック信号CLK−Rに従ってデータの読み出しを行う。
制御回路55〜58は、それぞれ、データ回転部30の出力信号より取り出したスタッフ信号STF1b〜STF4bに応じて、FIFO51〜54へのデータの書き込みを制御するイネーブル信号EN1〜NE4を生成する。イネーブル信号EN1〜NE4は、FIFO51〜54に対してスタッフ位置に該当する無効データが入力される時にローレベルとなり、FIFO51〜54へのデータの書き込みを無効にする。
次に、本実施形態のデスタッフ回路の動作について説明する。
上記のような構成のデスタッフ回路では、上述の図2に示した従来のデスタッフ回路におけるマトリックススイッチに相当する機能を実現するために、まずスタッフ移動部10において、スタッフ信号STF1〜STF4を基に、データ信号DT1〜DT4に挿入されている無効データを同じ列内で下方へ移動させる下詰め処理が行われた後に、データ回転部30において、スタッフ移動部10から出力されるデータ信号DT1a〜DT4aの列ごとのスタッフ数が検出され、該検出結果に応じて各列のデータが一方向に回転操作される。そして、バッファ部50において、データ回転部30から出力されるデータ信号DT1b〜DT4bが、従来のデスタッフ回路の場合と同様にしてFIFO51〜54に記憶されることで、無効データを除去して有効データのみを抽出したデータ信号DT1out〜DT4outがFIFO51〜54から出力される。
ここで、上記のようなデスタッフ回路の各部における処理の詳細について具体的な一例を挙げて説明する。
スタッフ移動部10における処理は、例えば図7の左上に示すようなデータ信号DT1〜DT4からなる並列データがスタッフ移動部10に入力される場合を想定すると、該入力データの第1列目#1の4バイトは、データ信号DT1,DT2,DT4に対応するバイトが有効データD1,D2,D3、データ信号DT3に対応するバイトがスタッフ位置に該当する無効データS1となっているので、この第3レーンの無効データS1を下方に移動して下詰めする処理がスタッフ移動部10により実行される。なお、以下の説明では、第1列目#1の4バイトの配置を第1レーンから順に(D1,D2,S1,D3)と表記することにし、他の列の4バイトの配置についても同様とする。
具体的に、スタッフ移動部10に入力された第1列目#1の4バイトは、図7の2段目に示すように、第1シフトブロック11の前段部分におけるセレクタ21〜24(図4)にそれぞれ入力される。このとき、データ信号DT1に対応するスタッフ信号STF1のビット値は、データ信号DT1のバイトがスタッフ位置には該当しないことを示す「0」となり、データ信号DT3に対応するスタッフ信号STF3のビット値は、データ信号DT3のバイトがスタッフ位置に該当することを示す「1」となる。このため、セレクタ21ではDT1+STF1信号が選択され、セレクタ22ではDT2+STF2信号が選択され、セレクタ23ではDT4+STF4信号が選択され、セレクタ24ではDT3+STF3信号が選択される。これにより、第3レーンの無効データS1と第4レーンの有効データD3が入れ替わり(図7)、フリップフロップ25から出力されるデータ信号DT1’〜DT4’における第1列目#1の4バイトの配置は(D1,D2,D3,S1)となる。
上記フリップフロップ25の出力信号は、第1シフトブロック11の後段部分(図4)に送られ、第2レーンのDT2’+STF2’信号および第3レーンのDT3’+STF3’信号がセレクタ26,27に入力され、第1レーンのDT1’+STF1’信号および第4レーンのDT4’+STF4’信号がフリップフロップ28に入力される。このとき、データ信号DT2’に対応するスタッフ信号STF2’のビット値は、データ信号DT2’のバイトがスタッフ位置には該当しないことを示す「0」となるため、セレクタ26ではDT2’+STF2’信号が選択され、セレクタ27ではDT3’+STF3’信号が選択される。よって、第1シフトブロック11の後段部分でのデータの入れ替わりはなく(図7)、フリップフロップ28の出力信号における第1列目#1の4バイトの配置は(D1,D2,D3,S1)が維持される。
続いて、上記フリップフロップ28の出力信号は、第1シフトブロック11と同じ回路構成の第2シフトブロック12に送られる。第2シフトブロック12では、第1列目#1の無効バイトS1が第1シフトブロック11の処理により既に第4レーンに移動して下詰めされた状態にあるので、前段部分および後段部分でのデータの入れ替えは行われない。よって、第2シフトブロック12のフリップフロップ28の出力信号における第1列目#1の4バイトの配置も(D1,D2,D3,S1)が維持される。
また、スタッフ移動部10に入力されるデータ信号DT1〜DT4における第2列目#2の4バイトについては、データ信号DT1,DT3,DT4に対応するバイトが有効データD4,D5,D6、データ信号DT2に対応するバイトがスタッフ位置に該当する無効データS2となっているので、この第2レーンの無効データS2を下方に移動して下詰めする処理がスタッフ移動部10により実行される。
具体的には、図7の3段目に示すように、上記第2列目#2の4バイトが第1シフトブロック11の前段部分におけるセレクタ21〜24(図4)にそれぞれ入力される。このとき、データ信号DT1,DT3に対応するスタッフ信号STF1,STF3の各ビット値は「0」となるため、セレクタ21ではDT1+STF1信号が選択され、セレクタ22ではDT2+STF2信号が選択され、セレクタ23ではDT3+STF3信号が選択され、セレクタ24ではDT4+STF4信号が選択される。よって、第1シフトブロック11の前段部分でのデータの入れ替わりはなく(図7)、フリップフロップ25の出力信号における第2列目#2の4バイトの配置は(D4,S2,D5,D6)となる。
上記フリップフロップ25の出力信号は、第1シフトブロック11の後段部分(図4)に送られ、このときのデータ信号DT2’に対応するスタッフ信号STF2’のビット値が「1」となるため、セレクタ26ではDT3’+STF3’信号が選択され、セレクタ27ではDT2’+STF2’信号が選択される。これにより、第2レーンの無効データS2と第3レーンの有効データD5が入れ替わり(図7)、フリップフロップ28の出力信号における第2列目#2の4バイトの配置は(D4,D5,S2,D6)となる。
続いて、上記フリップフロップ28の出力信号は、第2シフトブロック12の前段部分に送られる。このとき、第1レーンのデータ信号に対応するスタッフ信号のビット値は「0」となり、第3レーンのデータ信号に対応するスタッフ信号のビット値は「1」となる。このため、第3レーンの無効データS2と第4レーンの有効データD6が入れ替わり、第2シフトブロック12のフリップフロップ25の出力信号における第2列目#2の4バイトの配置は(D4,D5,D6,S2)となる。このフリップフロップ25の出力信号は、第2シフトブロック12の後段部分に送られる。後段部分では、第2列目#2の無効バイトS2が前段部分の処理により既に第4レーンに移動して下詰めされた状態にあるので、データの入れ替えは行われない。よって、第2シフトブロック12のフリップフロップ28の出力信号における第2列目#2の4バイトの配置は(D4,D5,D6,S2)が維持される。
さらに、スタッフ移動部10に入力されるデータ信号DT1〜DT4における第3列目#3の4バイトについては、データ信号DT1,DT2に対応するバイトがスタッフ位置に該当する無効データS3,S4、データ信号DT3,DT4に対応するバイトが有効データD7,D8となっているので、上記第1および第2レーンの無効データS3,S4を下方に移動して下詰めする処理がスタッフ移動部10により実行される。
具体的には、図7の4段目に示すように、上記第3列目#3の4バイトが第1シフトブロック11の前段部分におけるセレクタ21〜24(図4)にそれぞれ入力される。このとき、データ信号DT1に対応するスタッフ信号STF1のビット値は「1」となり、データ信号DT3に対応するスタッフ信号STF3のビット値は「0」となる。このため、セレクタ21ではDT2+STF2信号が選択され、セレクタ22ではDT1+STF1信号が選択され、セレクタ23ではDT3+STF3信号が選択され、セレクタ24ではDT4+STF4信号が選択される。これにより、第1レーンの無効データS3と第2レーンの無効データS4が入れ替わり(図7)、フリップフロップ25から出力されるデータ信号DT1’〜DT4’における第3列目#3の4バイトの配置は(S4,S3,D7,D8)となる。
上記フリップフロップ25の出力信号は、第1シフトブロック11の後段部分(図4)に送られ、このときのデータ信号DT2’に対応するスタッフ信号STF2’のビット値が「1」となるため、セレクタ26ではDT3’+STF3’信号が選択され、セレクタ27ではDT2’+STF2’信号が選択される。これにより、第2レーンの無効データS3と第3レーンの有効データD7が入れ替わり(図7)、フリップフロップ28の出力信号における第3列目#3の4バイトの配置は(S4,D7,S3,D8)となる。
続いて、上記フリップフロップ28の出力信号は、第2シフトブロック12の前段部分に送られる。このとき、第1および第3レーンの各データ信号に対応するスタッフ信号の各ビット値は両方とも「1」となる。このため、第1レーンの無効データS4と第2レーンの有効データD7が入れ替わると共に、第3レーンの無効データS3と第4レーンの有効データD8が入れ替わる。これにより、第2シフトブロック12のフリップフロップ25の出力信号における第3列目#3の4バイトの配置は(D7,S4,D8,S3)となる。
上記第2シフトブロック12のフリップフロップ25の出力信号は、第2シフトブロック12の後段部分に送られ、このときの第2レーンのデータ信号に対応するスタッフ信号のビット値が「1」となるため、第2レーンの無効データS4と第3レーンの有効データD8が入れ替わる。これにより、第2シフトブロック12のフリップフロップ28の出力信号における第3列目#3の4バイトの配置は(D7,D8,S4,S3)となり、無効データS3およびS4が第4および第3レーンに移動して下詰めされた状態となる。なお、下詰めされた状態において、無効データS3,S4の順番が逆転しているが、後述するように無効データはバッファ部50で除去されることになるので問題はない。
上記のようにスタッフ移動部10では、入力されるデータ信号DT1〜DT4の各列の4バイトが、第1および第2シフトブロック11,12を順に通過することにより、任意の位置に挿入されている無効バイトが同じ列内の下方に集められて、図7の右上に示すように各列の無効データS1〜S4を下詰めしたデータ信号DT1a〜DT4aが生成されるようになる。そして、該データ信号DT1a〜DT4aは、各々に対応したスタッフ信号STF1a〜STF4aと一緒にデータ回転部30に送られる。
データ回転部30における処理は、図8の上部に示すように、データ回転部30に入力されるデータ信号DT1a〜DT4aの各列に含まれるスタッフの個数を時間の経過とともに検出してその累積数を0〜3の巡回カウント値で表し、該カウント値に応じて第1〜第3回転ブロック30A〜30Cの各セレクタ31A〜34A,31B〜34B,31C〜34Cを制御することで各列のデータを一方向に回転操作する。
ここで、スタッフ移動部10から出力されたデータ信号DT1a〜DT4aの第1列目#1の4バイトがデータ回転部30の第1回転ブロック30Aに入力される時間を基準(t=0)とし、続く第2列目#2の4バイトが第1回転ブロック30Aに入力される時間をt=1とし、以降、各列の4バイトが第1回転ブロック30Aに順次入力される時間をt=2,3,…として、時間tの経過とともにデータ回転部30の処理を追うことにする。
まず、t=0においては、図8の2段目に示すように、データ回転部30の第1回転ブロック30Aに入力される第1列目#1の4バイトは、第4レーンに無効データS1を含んでいるので、データ回転部30の加算回路41(図5)に入力される、スタッフ信号STF1aのビット値A1が「0」、スタッフ信号STF2aのビット値A2が「0」、スタッフ信号STF3aのビット値A3が「0」、スタッフ信号STF4aのビット値A4が「1」となる。この段階では、加算回路41の後段のフリップフロップ42の出力信号Cが示すカウント値は初期値の「0」となるので、加算回路41における加算値は「1」となる。したがって、加算回路41の出力信号ADDは、0〜3の巡回カウント値として「1」を示す。
また、デコーダ43は、フリップフロップ42の出力信号Cが初期値の状態にあるので、制御信号SC1〜S3の初期値としてSC1=SC2=SC3=0を出力する。この制御信号SC1は、第1回転ブロック30Aの各セレクタ31A〜34Aの制御端子に直接与えられる。このため、セレクタ31AではDT1a+STF1a信号が選択され、セレクタ32AではDT2a+STF2a信号が選択され、セレクタ33AではDT3a+STF3a信号が選択され、セレクタ34AではDT4a+STF4a信号が選択される。これにより、第1列目#1の4バイトは、回転操作されることなく(D1,D2,D3,S1)の配置のまま、フリップフロップ35Aにラッチされる。なお、t=0の段階ではフリップフロップ35Aの有効な出力はない。また、制御信号SC2,SC3は、フリップフロップ44B,44C1にラッチされる。
次のt=1においては、図8の3段目に示すように、データ回転部30の第1回転ブロック30Aに入力される第2列目#2の4バイトは、第4レーンに無効データS2を含んでいるので、加算回路41に入力されるスタッフ信号STF1a〜STF4aの各ビット値は、A1=0,A2=0,A3=0,A4=1となる。また、加算回路41の後段のフリップフロップ42の出力信号Cは、前回のt=0におけるカウント値である「1」を示す。このため、加算回路41における加算値はA1〜A4およびCの各ビット値を加算した「2」となる。したがって、加算回路41の出力信号ADDは、巡回カウント値として「2」を示す。
また、デコーダ43から出力される制御信号SC1〜SC3は、フリップフロップ42の出力信号Cが示すカウント値が「1」であるので、SC1=1,SC2=0,SC3=0となる。この制御信号SC1により、第1回転ブロック30Aのセレクタ31AではDT2a+STF2a信号が選択され、セレクタ32AではDT3a+STF3a信号が選択され、セレクタ33AではDT4a+STF4a信号が選択され、セレクタ34AではDT1a+STF1a信号が選択される。これにより、第2列目#2の4バイトが上方に一レーン分だけ回転操作され、各セレクタ31A〜34Aから出力される第2列目#2の4バイトの配置は(D5,D6,S2,D4)となる。なお、フリップフロップ35Aの出力信号は、前回のt=0のときにラッチした第1列目#1の4バイトの配置(D1,D2,D3,S1)を示す。
さらに、第2回転ブロック30Bの各セレクタ31B〜34Bの制御端子には、フリップフロップ44Bの出力信号、すなわち、前回のt=0における制御信号SC2=0が与えられる。このため、セレクタ31Bでは第1レーン側の入力信号が選択され、セレクタ32Bでは第2レーン側の入力信号が選択され、セレクタ33Bでは第3レーン側の入力信号が選択され、セレクタ34Bでは第4レーン側の入力信号が選択される。これにより、第1回転ブロック30Aから出力されるデータ信号(第1列目#1の4バイト)は、回転操作されることなく(D1,D2,D3,S1)の配置のまま、フリップフロップ35Bにラッチされる。なお、t=1の段階ではフリップフロップ35Bの有効な出力はない。また、フリップフロップ44C1から44C2に対して、前回のt=0における制御信号SC3=0が出力される。
次のt=2においては、図8の4段目に示すように、データ回転部30の第1回転ブロック30Aに入力される第3列目#3の4バイトは、第3および第4レーンに無効データS4,S3を含んでいるので、加算回路41に入力されるスタッフ信号STF1a〜STF4aの各ビット値は、A1=0,A2=0,A3=1,A4=1となる。また、加算回路41の後段のフリップフロップ42の出力信号Cは、前回のt=1におけるカウント値である「2」を示す。このため、加算回路41における加算値はA1〜A4およびCの各ビット値を加算した「4」となる。したがって、加算回路41の出力信号ADDは、巡回カウント値として「0」を示す。
また、デコーダ43から出力される制御信号SC1〜SC3は、フリップフロップ42の出力信号Cが示すカウント値が「2」であるのでSC1=1,SC2=1,SC3=0となる。この制御信号SC1により、第1回転ブロック30Aでは、前述したt=1の場合と同様にして、第3列目#3の4バイトが上方に一レーン分だけ回転操作され、各セレクタ31A〜34Aから出力される第3列目#3の4バイトの配置は(D8,S4,S3,D7)となる。なお、フリップフロップ35Aの出力信号は、前回のt=1のときにラッチした第2列目#2の4バイトの配置(D5,D6,S2,D4)を示す。
さらに、第2回転ブロック30Bの各セレクタ31B〜34Bの制御端子には、フリップフロップ44Bの出力信号、すなわち、前回のt=1における制御信号SC2=0が与えられる。このため、セレクタ31Bでは第1レーン側の入力信号が選択され、セレクタ32Bでは第2レーン側の入力信号が選択され、セレクタ33Bでは第3レーン側の入力信号が選択され、セレクタ34Bでは第4レーン側の入力信号が選択される。これにより、第1回転ブロック30Aから出力されるデータ信号(第2列目#2の4バイト)は、回転操作されることなく(D5,D6,S2,D4)の配置のまま、フリップフロップ35Bにラッチされる。なお、フリップフロップ35Bの出力信号は、前回のt=1のときにラッチした第1列目#1の4バイトの配置(D1,D2,D3,S1)を示す。
加えて、第3回転ブロック30Cの各セレクタ31C〜34Cの制御端子には、フリップフロップ44C2の出力信号、すなわち、前々回のt=0における制御信号SC3=0が与えられる。このため、セレクタ31Cでは第1レーン側の入力信号が選択され、セレクタ32Cでは第2レーン側の入力信号が選択され、セレクタ33Cでは第3レーン側の入力信号が選択され、セレクタ34Cでは第4レーン側の入力信号が選択される。これにより、第2回転ブロック30Bから出力されるデータ信号(第1列目#1の4バイト)は、回転操作されることなく(D1,D2,D3,S1)の配置のまま、フリップフロップ35Cにラッチされる。なお、t=2の段階ではフリップフロップ35Cの有効な出力はない。
次のt=3においては、図8の5段目に示すように、データ回転部30の第1回転ブロック30Aに入力される第4列目の4バイトは無効データを含んでいないので、加算回路41に入力されるスタッフ信号STF1a〜STF4aの各ビット値は、A1=0,A2=0,A3=0,A4=0となる。また、加算回路41の後段のフリップフロップ42の出力信号Cは、前回のt=2におけるカウント値である「0」を示す。このため、加算回路41における加算値はA1〜A4およびCの各ビット値を加算した「0」となる。したがって、加算回路41の出力信号ADDは、巡回カウント値として「0」を示す。
また、デコーダ43から出力される制御信号SC1〜SC3は、フリップフロップ42の出力信号Cが示すカウント値が「0」であるのでSC1=0,SC2=0,SC3=0となる。この制御信号SC1により、第1回転ブロック30Aでは、前述したt=0の場合と同様にして、第4列目の4バイトが回転操作されることなく(D9,Da,Db,Dc)の配置のまま、フリップフロップ35Aにラッチされる。なお、フリップフロップ35Aの出力信号は、前回のt=2のときにラッチした第3列目#3の4バイトの配置(D8,S4,S3,D7)を示す。
さらに、第2回転ブロック30Bの各セレクタ31B〜34Bの制御端子には、フリップフロップ44Bの出力信号、すなわち、前回のt=2における制御信号SC2=1が与えられる。このため、セレクタ31Bでは第2レーン側の入力信号が選択され、セレクタ32Bでは第3レーン側の入力信号が選択され、セレクタ33Bでは第4レーン側の入力信号が選択され、セレクタ34Bでは第1レーン側の入力信号が選択される。これにより、第1回転ブロック30Aから出力されるデータ信号(第3列目#3の4バイト)は、上方に一レーン分だけ回転操作され、各セレクタ31B〜34Bから出力される第3列目#3の4バイトの配置は(S4,S3,D7,D8)となる。なお、フリップフロップ35Bの出力信号は、前回のt=2のときにラッチした第2列目#2の4バイトの配置(D5,D6,S2,D4)を示す。
加えて、第3回転ブロック30Cの各セレクタ31C〜34Cの制御端子には、フリップフロップ44C2の出力信号、すなわち、前々回のt=1における制御信号SC3=0が与えられる。これにより、第3回転ブロック30Cでは、前述したt=2の場合と同様にして、第2回転ブロック30Bから出力されるデータ信号(第2列目#2の4バイト)が回転操作されることなく(D5,D6,S2,D4)の配置のまま、フリップフロップ35Cにラッチされる。なお、フリップフロップ35Cの出力信号は、前回のt=2のときにラッチした第1列目#1の4バイトの配置(D1,D2,D3,S1)を示し、該出力信号がバッファ部50に送られる。
次のt=4以降においては、上記のようにデータ回転部30から出力される第1列目#1の4バイトがバッファ部50に入力されることになるので、図9の1段目に示すようにデータ回転部30だけでなくバッファ部50における処理も含めて、第1列目#1の4バイトから第3列目#3の4バイトまでの各状態を中心に説明を行うことにする。
t=4では、第1列目#1の4バイトが、(D1,D2,D3,S1)の配置でバッファ部50の各FIFO51〜54(図6)に入力される。このとき、第4レーンに対応する制御回路58では、FIFO54への入力データがスタッフ位置に該当することを示すスタッフ信号STF4bを受けて、FIFO54に出力するイネーブル信号EN4がローレベルにされ、FIFO54におけるデータの書き込みが無効にされる。これにより、有効データD1〜D3のみがFIFO51〜53にそれぞれ書き込まれ、無効データS1は除去される。なお、図9の1段目においてFIFO51〜54の右側に示したP1〜P4は、各FIFO51〜54内における有効データの先頭の位置が何列目にあるかを表している。
第2列目#2の4バイトについては、前回のt=3のときにデータ回転部30の第3回転ブロック30Cのフリップフロップ35Cにラッチされた配置(D5,D6,S2,D4)が、該フリップフロップ35Cの出力信号となって、バッファ部50に送られる。
また、第3列目#3の4バイトについては、第2回転ブロック30Bのフリップフロップ35Bの出力信号が(S4,S3,D7,D8)の配置を示すことになり、該出力信号が第3回転ブロック30Cの各セレクタ31C〜34Cに入力される。このとき、各セレクタ31C〜34Cの制御端子には、フリップフロップ44C2の出力信号、すなわち、前々回のt=2における制御信号SC3=0が与えられる。これにより、第3列目#3の4バイトは、第3回転ブロック30Cで回転操作されることなく(S4,S3,D7,D8)の配置のまま、フリップフロップ35Cにラッチされる。なお、第4列目の4バイト以降については、これまで説明してきた第1〜第3列目の場合と同様にして考えることができるので、説明を省略する。
次のt=5においては、図9の2段目に示すように、第2列目#2の4バイトが、(D5,D6,S2,D4)の配置でバッファ部50の各FIFO51〜54に入力される。このとき、第3レーンに対応する制御回路57では、FIFO53への入力データがスタッフ位置に該当することを示すスタッフ信号STF3bを受けて、FIFO53に出力するイネーブル信号EN3がローレベルにされ、FIFO53におけるデータの書き込みが無効にされる。これにより、有効データD5,D6,D4がFIFO51,52,54にそれぞれ書き込まれ、無効データS2は除去される。前回のt=4においてFIFO51,52に書き込まれた有効データD1,D2は、有効データD5,D6が書き込まれることにより、FIFO51,52内での位置が右方にシフトする。各FIFO51〜54内における有効データの先頭の位置は、P1=P2=2、P3=P4=1となる。
第3列目#3の4バイトについては、前回のt=4のときにデータ回転部30の第3回転ブロック30Cのフリップフロップ35Cにラッチされた配置(S4,S3,D7,D8)が、該フリップフロップ35Cの出力信号となって、バッファ部50に送られる。
次のt=6においては、図9の3段目に示すように、第3列目#3の4バイトが、(S4,S3,D7,D8)の配置でバッファ部50の各FIFO51〜54に入力される。このとき、第1および第2レーンに対応する制御回路55,56では、FIFO51,52への入力データがスタッフ位置に該当することを示すスタッフ信号STF1b,STF2bを受けて、FIFO51,52に出力するイネーブル信号EN1,EN2がローレベルにされ、FIFO51,52におけるデータの書き込みが無効にされる。これにより、有効データD7,D8がFIFO53,54にそれぞれ書き込まれ、無効データS3,S4は除去される。前回のt=5までにFIFO53,54に書き込まれた有効データD3,D4は、有効データD7,D8が書き込まれることにより、FIFO53,54内での位置が右方にシフトする。各FIFO51〜54内における有効データの先頭の位置は、P1=P2=P3=P4=2となる。
次のt=7においては、図9の4段目に示すように、第4列目の4バイトが、(D9,Da,Db,Dc)の配置でバッファ部50の各FIFO51〜54に入力され、いずれのバイトもスタッフ位置には該当していないので、各FIFO51〜54にそれぞれ書き込まれる。前回のt=6までに各FIFO51〜54に書き込まれた有効データD1〜D8は、有効データD9,Da〜Dcが書き込まれることにより、FIFO51〜54内での位置が右方にシフトする。各FIFO51〜54内における有効データの先頭の位置は、P1=P2=P3=P4=3となる。そして、各FIFO51〜54内の先頭に位置する有効データD1〜D4が、読み出しクロック信号CLK−Rのタイミングに合わせて読み出される。次のt=8以降も上記と同様の処理が繰り返されることにより、デスタッフ処理されたデータ信号DT1out〜DT4outがバッファ部50から出力されるようになる。
上記のように本実施形態のデスタッフ回路によれば、複数のセレクタおよびフリップフロップを組み合わせた単純な論理回路を多段に接続して構成したスタッフ移動部10およびデータ回転部30において、デスタッフ回路への入力データをパイプライン処理することにより、従来のデスタッフ回路におけるマトリックススイッチに相当する機能を実現可能にしたので、入力データの任意の位置に挿入された無効データを高速に除去することができる。したがって、より高速な信号に対応したデスタッフ回路を容易に提供することが可能である。
なお、上記の実施形態では32ビットの並列データ信号がデスタッフ回路に入力され、4バイトごとにデスタッフ処理を行う場合の構成例について説明したが、本発明は任意のバイト数(若しくはビット数)ごとにデスタッフ処理を行う場合に応用することが可能である。
図10は、16ビットの並列データ信号を2バイトごとにデスタッフ処理する場合に対応した構成例を示している。この場合、スタッフ移動部10は、上述した実施形態の第1シフトブロック11における2つのセレクタ21,22およびフリップフロップ25の組み合わせにより無効データの下詰め処理を実現することが可能である。また、データ回転部30は、上述した実施形態の第1回転ブロック30Aにおける2つのセレクタ31A,32Aおよびフリップフロップ35Aの組み合わせを用い、加算回路41およびフリップフロップ42によりスタッフの個数を0,1の巡回カウント値として検出することにより、該カウント値に応じて各列のデータの回転操作を実現することができる。さらに、バッファ部50は、上述した実施形態における2つのFIFO51,52および制御回路55,56の組み合わせにより無効データを除去して有効データのみを抽出する処理を実現することが可能である。上記データ回転部30に関しては、Nを2以上の正数として、Nバイトごとにデスタッフ処理を行う場合、スタッフの個数を0からN−1までの巡回カウント値として検出し、N−1段のパイプライン処理によりデータの回転操作が行われるようにデータ回転部30を構成すればよいことになる。
また、上述の図5に示したデータ回転部30に関連した応用例として、4バイトごとにデスタッフ処理を行う場合において、各列に含まれるスタッフの個数が最高で1個、すなわち、連続する4バイト中に挿入されるスタッフが1個以下となるマッピング仕様が適用されている場合、図11に示すように加算回路41の前段にOR回路45を挿入して、処理の高速化を図るようにしてもよい。この応用例では、スタッフ信号STF1a〜STF4aの各ビット値の論理和がOR回路45で演算された後に、その論理和の演算値(1ビット)とフリップフロップ42から出力される前回の演算値(2ビット)とが加算回路41で加算されることにより、スタッフの現在までの個数がカウントされる。一般に、加算回路は、加算する入力数が増加すると動作速度の低下を招くことが知られている。このため、図11の回路構成では、加算回路41の入力をOR回路45から出力される1ビットの信号と、フリップフロップ42から出力される2ビットの信号に絞り込むことで、加算回路41の動作の高速化を図っている。このようなOR回路45を利用した加算回路41の高速化は、Nバイトごとにデスタッフ処理を行う場合において、連続するMバイト中に挿入されるスタッフが1個以下となるマッピング仕様に対し有効である。つまり、データ回転部30がデータの回転操作をNバイトごとに行う構成で、M≧Nの関係が成り立つ場合、上記図11と同様な回路構成を適用することができる。また、M<Nの関係が成り立つ場合には、Mバイトごとにスタッフ信号の論理和を演算して1ビットの個数情報を生成した後に、該個数情報を加算回路41に与えるようにすることで、論理和の演算を行わない構成(図5)の場合に比べて、加算回路41の処理の高速化が可能である。
次に、上述したようなデスタッフ回路を用いた伝送装置について説明する。
図12は、上記伝送装置の一実施形態の構成、および該伝送装置を適用したネットワーク全体の構成を示すブロックである。
図12の上部に示す送信側の伝送装置70は、外部より入力されるクライアント信号(非同期信号)を速度の異なるネットワーク(同期網)に送るために、クライアント信号のスタッフ処理およびマッピング処理を行うものである。また、図12の下部に示す受信側の伝送装置90は、上述した実施形態のデスタッフ回路を用いて構成されており、ネットワークを伝送された信号のデマッピング処理およびデスタッフ処理を行ってクライアント信号を再生成するものである。なお、ここでは信号伝送が一方向に行われるネットワークの構成例を示すが、送信側および受信側の関係を逆にした伝送装置を別途設けるか、或いは、送受を一体化した伝送装置をネットワークの両端に設けることで、双方向の信号伝送に対応することも可能である。
送信側の伝送装置70は、例えば、固有処理回路71、スタッフ回路72、マッピング回路73および送信制御回路74を備える。
固有処理回路71は、クライアント信号に依存するプロトコルなどを処理する回路であって、必要に応じてデータの加工を行う。
スタッフ回路72は、固有処理回路71で処理されたクライアント信号が入力され、該クライアント信号の情報量に応じて、送信制御回路74から指示されるスタッフ位置に無効データを挿入するか、または、クライアント信号の有効データを配置することにより、クライアント信号の速度(クロック周波数)とネットワーク上での信号速度(クロック周波数)との調整を行う。
図13は、上記スタッフ回路72の具体的な構成例を示す回路図である。この図13のスタッフ回路72には、固有処理回路71から出力される32ビットの並列データ信号をバイト単位で4つのレーンに割り当てたデータ信号DT1s〜DT4sが入力されると共に、該各データ信号DT1s〜DT4sに対応したスタッフ位置を示すスタッフ信号STF1s〜STF4sが送信制御回路74から与えられる。このスタッフ回路72は、4段のシフトブロック80A〜80Dを組み合わせた構成になっている。
第1シフトブロック80Aは、4個の2入力1出力セレクタ81A〜84Aおよびフリップフロップ85Aを有する。セレクタ81Aは、一方の入力端子にデータ信号DT1sが入力され、他方の入力端子に無効データSi(例えば、ビット値が「00000000」のデータ)が入力される。セレクタ82Aは、一方の入力端子にデータ信号DT2sが入力され、他方の入力端子にデータ信号DT1sが入力される。セレクタ83Aは、一方の入力端子にデータ信号DT3sが入力され、他方の入力端子にデータ信号DT2sが入力される。セレクタ84Aは、一方の入力端子にデータ信号DT4sが入力され、他方の入力端子にデータ信号DT3sが入力される。各セレクタ81A〜84Aの制御端子には、スタッフ信号STF1sが与えられる。この第1シフトブロック80Aは、スタッフ信号STF1sのビット値が「0」の場合、データ信号DT1s〜DT4sをそのままフリップフロップ85Aを介して第2シフトブロック80Bに送る。一方、スタッフ信号STF1sのビット値が「1」の場合、セレクタ81Aで無効データSiを選択し、該無効データSiおよび1レーンずつ下方にシフトさせたデータ信号DT1s〜DT3sをフリップフロップ85Aを介して第2シフトブロック80Bに送る。
第2シフトブロック80Bは、3個の2入力1出力セレクタ82B〜84Bおよびフリップフロップ85Bを有する。セレクタ82Bは、前段のフリップフロップ85Aの第2レーンに対応した出力信号が一方の入力端子に入力され、無効データSiが他方の入力端子に入力される。セレクタ83Bは、フリップフロップ85Aの第3レーンに対応した出力信号が一方の入力端子に入力され、フリップフロップ85Aの第2レーンに対応した出力信号が他方の入力端子に入力される。セレクタ84Bは、フリップフロップ85Aの第4レーンに対応した出力信号が一方の入力端子に入力され、フリップフロップ85Aの第3レーンに対応した出力信号が他方の入力端子に入力される。各セレクタ82B〜84Bの制御端子には、スタッフ信号STF2sが1個のフリップフロップ86Bを介して与えられる。この第2シフトブロック80Bは、スタッフ信号STF2sのビット値が「0」の場合、フリップフロップ85Aからの各レーンに対応した出力信号をそのままフリップフロップ85Bを介して第3シフトブロック80Cに送る。一方、スタッフ信号STF2sのビット値が「1」の場合、セレクタ82Bで無効データSiを選択し、該無効データSiおよびフリップフロップ85Aの第2および第3レーンに対応した各出力信号を1レーンずつ下方にシフトさせた信号をフリップフロップ85Bを介して第3シフトブロック80Cに送る。
第3シフトブロック80Cは、2個の2入力1出力セレクタ83C,84Cおよびフリップフロップ85Cを有する。セレクタ83Cは、前段のフリップフロップ85Bの第3レーンに対応した出力信号が一方の入力端子に入力され、無効データSiが他方の入力端子に入力される。セレクタ84Cは、フリップフロップ85Bの第4レーンに対応した出力信号が一方の入力端子に入力され、フリップフロップ85Bの第3レーンに対応した出力信号が他方の入力端子に入力される。各セレクタ83C,84Cの制御端子には、スタッフ信号STF3sが2個のフリップフロップ86C1,86C2を介して与えられる。この第3シフトブロック80Cは、スタッフ信号STF3sのビット値が「0」の場合、フリップフロップ85Bからの各レーンに対応した出力信号をそのままフリップフロップ85Cを介して第4シフトブロック80Dに送る。一方、スタッフ信号STF3sのビット値が「1」の場合、セレクタ83Cで無効データSiを選択し、該無効データSiおよびフリップフロップ85Bの第3レーンに対応した出力信号を1レーン下方にシフトさせた信号をフリップフロップ85Cを介して第4シフトブロック80Dに送る。
第4シフトブロック80Dは、2入力1出力セレクタ84Dを有する。セレクタ84Dは、前段のフリップフロップ85Cの第4レーンに対応した出力信号が一方の入力端子に入力され、無効データSiが他方の入力端子に入力され、スタッフ信号STF4sが3個のフリップフロップ86D1〜86D3を介して制御端子に与えられる。この第4シフトブロック80Dは、スタッフ信号STF4sのビット値が「0」の場合、フリップフロップ85Cからの各レーンに対応した出力信号をそのまま後段のマッピング回路73(図12)に送る。一方、スタッフ信号STF4sのビット値が「1」の場合、セレクタ84Dで無効データSiを選択してマッピング回路73に送る。
上記図13に示したスタッフ回路72は、複数のセレクタおよびフリップフロップを組み合わせた単純な論理回路の多段構成になっており、回路構成の複雑なマトリクススイッチを用いていないので、スタッフ処理を高速に行うことが可能である。
マッピング回路73は、スタッフ回路72で処理されたデータ信号DT1s’〜DT4s’が入力され、送信制御回路74から指示されるマッピング情報に従って、所要のフレームのオーバーヘッド部分に必要な情報を書き込み、ネットワーク側へ転送可能な形式にデータを加工する。
送信制御回路74は、予め定められたマッピング仕様に基づいて、無効データを挿入するスタッフ位置をスタッフ回路72に指示する信号を生成すると共に、オーバーヘッドの挿入タイミングなどの情報をマッピング回路73に指示する信号を生成する。
上記のような送信側の伝送装置70では、クライアント信号のスタッフ処理およびマッピング処理が行われることにより、例えば図12の中央部分に示すようなオーバーヘッド(OH)部分とペイロード部分とからなる所要のフレームフォーマットの信号が生成され、該信号がネットワーク転送に必要なメディアを用いて物理的に伝送され、対向する受信側の伝送装置90まで送られる。上記信号のペイロード部分は、図12中に「S」で示した無効データと、「D」で示した有効データとを含んでおり、無効バイトの挿入位置を示すスタッフ情報が対向する伝送装置70,90の間で共有される。
受信側の伝送装置90は、例えば、デマッピング回路91、上述の図3〜図6に示したようなデスタッフ回路92、固有処理回路93および受信制御回路94を備える。
デマッピング回路91は、ネットワークを伝送された信号を受信し、受信制御回路94から指示されるマッピング情報に従って、受信信号のオーバーヘッド部分を抽出して情報を読み取り、該オーバーヘッド情報に基づいて受信信号のデマッピング処理を行う。
デスタッフ回路92は、デマッピング回路91で処理された信号が、上述の図4に示したスタッフ移動部10に入力されるデータ信号DT1〜DT4として与えられると共に、受信制御回路94から出力されるスタッフ位置を示す信号が、上記データ信号DT1〜DT4にそれぞれ対応したスタッフ信号STF1〜STF4として与えられる。このデスタッフ回路92では、上述の実施形態で説明したように、受信信号に含まれる無効データを除去して有効データのみを抽出するデスタッフ処理が行われる。
固有処理回路93は、デスタッフ回路92で処理された信号について、クライアント信号に対応したプロトコルなどに変換する処理を行う。
受信制御回路94は、予め定められたマッピング仕様に基づいて、オーバーヘッドの抽出タイミングなどの情報をデマッピング回路91に指示する信号を生成すると共に、受信信号のスタッフ位置をデスタッフ回路92に指示する信号を生成する。なお、ここではマッピング仕様を基にスタッフ位置が決められるようにしたが、受信信号のオーバーヘッド情報を基にスタッフ位置を計算するようにしてもよい。
上記のような受信側の伝送装置90によれば、ネットワークを伝送された信号をデマッピングした後に、上述の実施形態の場合と同様にして受信信号の任意の位置に挿入された無効データを高速に除去することができるので、より高速なクライアント信号を確実に再生成することが可能である。
以上の各実施形態に関して、さらに以下の付記を開示する。
(付記1) 入力データを並列処理することにより、該入力データのスタッフ位置に挿入された無効データを除去して有効データを抽出するデスタッフ回路であって、
複数のレーンに割り当てられた複数のデータ信号、および、該各データ信号におけるスタッフ位置を示す複数のスタッフ信号が入力され、該各スタッフ信号に基づいて、前記各データ信号のスタッフ位置に挿入された無効データを同じ列内で移動させて片側に集めるスタッフ移動部と、
前記スタッフ移動部から出力される各レーンのデータ信号、および、該各データ信号にそれぞれ対応したスタッフ信号が入力され、該各スタッフ信号に基づいて前記各データ信号の列ごとのスタッフの個数を検出し、該検出結果に応じて前記各データ信号の各列のデータを一方向に回転操作するデータ回転部と、
前記データ回転部から出力される各レーンのデータ信号に含まれる有効データを先入れ先出し方式で記憶して出力するバッファ部と、
を備えたことを特徴とするデスタッフ回路。
(付記2) 付記1に記載のデスタッフ回路であって、
前記スタッフ移動部は、2入力1出力セレクタおよびフリップフロップを含む論理回路により構成される少なくとも1つのシフトブロックを有することを特徴とするデスタッフ回路。
(付記3) 付記1または2に記載のデスタッフ回路であって、
前記データ回転部は、Nを2以上の正数として、前記スタッフ移動部から出力されるN個のレーンのデータ信号について、前記スタッフの個数を0からN−1までの巡回カウント値として検出し、該巡回カウント値に応じて、2入力1出力セレクタおよびフリップフロップを含む論理回路により構成されるN−1段の回転ブロックを用いたパイプライン処理によりデータの回転操作を行うことを特徴とするデスタッフ回路。
(付記4) 付記3に記載のデスタッフ回路であって、
前記データ回転部は、前記N個のレーンのデータ信号にそれぞれ対応したスタッフ信号が入力される加算回路と、該加算回路の出力信号をラッチするフリップフロップとを組み合わせ、前記加算回路において、前記各スタッフ信号のビット値および前記フリップフロップの出力信号のビット値を加算し、該加算値を0からN−1までの巡回カウント値とすることにより、前記スタッフの個数を検出することを特徴とするデスタッフ回路。
(付記5) 付記4に記載のデスタッフ回路であって、
前記データ回転部は、前記N個のレーンのデータ信号の各列に含まれるスタッフの個数が最高で1個である場合に、前記加算回路の前段にOR回路を設け、該OR回路が、前記各スタッフ信号のビット値の論理和を演算し、前記加算回路が、前記OR回路の演算値および前記フリップフロップの出力信号のビット値を加算することを特徴とするデスタッフ回路。
(付記6) 付記1〜5のいずれか1つに記載のデスタッフ回路であって、
前記スタッフ移動部は、同期網を伝送された信号が前記複数のデータ信号として入力され、
前記バッファ部は、前記同期網の信号速度よりも遅い非同期信号を出力することを特徴とするデスタッフ回路。
(付記7) 付記1〜6のいずれか1つに記載のデスタッフ回路を備えたことを特徴とする伝送装置。
(付記8) 付記7に記載の伝送装置であって、
ネットワークを伝送された信号をデマッピング処理して前記デスタッフ回路に出力するデマッピング回路と、
前記デスタッフ回路から出力される信号を処理してクライアント信号を生成する固有処理回路と、
予め定められたマッピング仕様に基づいて、前記デスタッフ回路および前記デマッピング回路を制御する受信制御回路と、を備えたことを特徴とする伝送装置。
(付記9) 付記8に記載の伝送装置であって、
入力されるクライアント信号を処理する送信側の固有処理回路と、
前記送信側の固有処理回路で処理されたクライアント信号の情報量に応じて、予め定められたスタッフ位置に無効データを挿入することにより、前記クライアント信号の速度と前記ネットワーク上での信号速度との調整を行うスタッフ回路と、
前記スタッフ回路で処理された信号をマッピング処理して前記ネットワークに送信するマッピング回路と、
前記マッピング仕様に基づいて、前記スタッフ回路および前記マッピング回路を制御する送信制御回路と、を備えたことを特徴とする伝送装置。