以下、添付する図面を参照して本発明の実施例について説明する。上述の通り、複数のスイッチをそれぞれ通過したセグメントデータの遅延量の揺らぎは、遅延量の揺らぎを吸収するバッファを設けることにより吸収することができる。このような遅延量の揺らぎを吸収する処理について以下に説明する。
図2は、複数のスイッチを備えるフレーム伝送装置の第1例の概略構成図である。フレーム伝送装置1は、受信したフレームを複数のセグメントデータに分割し、複数のスイッチによって、元のフレームの宛先に応じて各セグメントデータをそれぞれスイッチングする。
参照符号2は制御部を示し、参照符号10−1〜10−n及び30−1〜30−nはインタフェースカードを示し、参照符号20はスイッチカードを示す。参照符号11−1〜11−nはフレーム分割部を示し、参照符号12−1〜12−n及び31−1〜31−nはスイッチインタフェース(SW−IF)を示し、参照符号32−1〜32−nはフレーム組立部を示し、参照符号21−1〜21−mはスイッチを示す。
フレーム伝送装置1は、制御部2と、n個のインタフェースカード10−1〜10−n(以下、インタフェースカード10と総称することがある)と、スイッチカード20と、n個のインタフェースカード30−1〜30−n(以下、インタフェースカード30と総称することがある)を備える。
インタフェースカード10−1〜10−nは、それぞれ、フレーム分割部11−1〜11−n(以下、フレーム分割部11と総称することがある)と、スイッチインタフェース12−1〜12−n(以下、スイッチインタフェース12と総称することがある)を備える。またインタフェースカード30−1〜30−nは、それぞれ、スイッチインタフェース31−1〜31−n(以下、スイッチインタフェース31と総称することがある)と、フレーム組立部32−1〜32−n(以下、フレーム組立部32と総称することがある)を備える。スイッチカード20は、m個のスイッチ21−1〜21−m(以下、スイッチ21と総称することがある)を備える。
なお、インタフェースカード10−1及び30−1は一体のカードとして構成されてもよい。インタフェースカード10−2及び30−2、…インタフェースカード10−n及び30−nについても同様である。このとき、スイッチインタフェース12−1及び31−1は同じユニットに搭載されてよい。例えば、スイッチインタフェース12−1及び31−1は同じ回路チップに搭載されてよい。スイッチインタフェース12−2及び31−2、…12−n及び31−nについても同様である。
また、フレーム伝送装置1は、スイッチカード20が複数のスイッチ21を備える態様で、複数のスイッチ21を備えていてもよく、単一のスイッチ21を備えるスイッチカード20を複数個備える態様で、複数のスイッチ21を備えていてもよい。
フレーム分割部11は、受信されたフレームを複数のセグメントデータへ分割する。フレーム伝送装置1によりスイッチングされるフレームは、例えば、時分割多重通信において、所定のタイムスロット上において固定された伝送レートで伝送される同期フレームであってよい。このような同期フレームとして、例えばOTN(Optical Transport Network)で転送されるODU(Optical Data Unit)フレームがある。受信フレームが上記のような同期フレームであるとき、フレームをセグメントデータへ分割するフレーム分割部11の機能は、例えば、受信信号から同期フレームをデマッピングするフレーマに搭載されてよい。
スイッチインタフェース12は、セグメントデータにヘッダ情報を付加する。ヘッダ情報は、分割前のフレームの宛先に応じて定まる転送先のインタフェースカード30の指定情報を含む。スイッチインタフェース12は、例えば、制御部2によって予め設定された設定情報に従い、分割前のフレームの宛先に応じて、転送先のインタフェースカード30を指定する指定情報を生成してよい。
スイッチインタフェース12は、ヘッダ情報を付したセグメントデータを、スイッチ21−1〜21−mへ分配する。参照符号s11〜s1m、s21〜s2m及びsn1〜snmは、スイッチインタフェース12からスイッチ21へセグメントデータを伝送する信号線である。以下の説明では、これらの信号線の各々を「レーン」と記すことがある。レーンsijは、スイッチインタフェース12−iからスイッチ21−jへセグメントデータを伝送するレーンである(記号i及びjは添字である)。
なお、1つのスイッチインタフェース12からスイッチ21へ接続されるレーン数は、スイッチ21の総数より多くてもよい。すなわち、1つのスイッチインタフェース12から1つのスイッチ21へセグメントデータを送信するために、複数本のレーンを使用してもよい。
スイッチ21は、セグメントデータに付加されたヘッダ情報に基づいてセグメントデータをスイッチングする。すなわち、スイッチ21は、ヘッダ情報にて指定される転送先のインタフェースカード30へセグメントデータを転送する。
スイッチインタフェース31は、受信したセグメントデータのヘッダ情報の終端処理を行う。参照符号r11〜rm1、r12〜rm2及びr1n〜rmnは、スイッチ21からスイッチインタフェース31へセグメントデータを伝送する信号線である。信号線rijは、スイッチ21−iからスイッチインタフェース31−jへセグメントデータを伝送する信号線である(記号i及びjは添字である)。
上述の遅延の揺らぎのため、スイッチインタフェース31は、元のセグメントデータの順序通りに、各セグメントデータを受信できるとは限らない。このためスイッチインタフェース31は、元のセグメントデータの順序でフレーム組立部32へセグメントデータを出力するように、セグメントデータの出力順序を並べ替えるリオーダ処理を行う。各スイッチインタフェース31−1〜31−nは、リオーダ処理の間、セグメントデータを格納するためのリオーダバッファ33−1〜33−nをそれぞれ備える。以下、リオーダバッファ33−1〜33−nをリオーダバッファ33と総称することがある。
フレーム組立部32は、セグメントデータをフレームへ組み立てる。組み立てられたフレームは次の伝送装置へ向けて送信される。受信フレームが上記の同期フレームであるとき、セグメントデータをフレームへ組み立てるフレーム組立部32の機能は、例えば、同期フレームを送信信号へマッピングするフレーマに搭載されてよい。
図3の(A)〜図3の(F)は、セグメントデータの遅延量の揺らぎの説明図である。図3の(A)は、フレーム分割部11へ入力されるフレームのタイムチャートを示し、図3の(B)はスイッチインタフェース12から出力されるセグメントデータのタイムチャートを示す。
図3の(C)は、スイッチインタフェース31へ入力されるセグメントデータのタイムチャートを示し、図3の(D)はリオーダバッファ33におけるセグメントデータの占有状態のタイムチャートを示す。
図3の(E)は、スイッチインタフェース31からフレーム組立部32へ出力されるセグメントデータのタイムチャートを示し、図3の(F)はフレーム組立部32から出力されるフレームのタイムチャートを示す。
図3の(A)において、斜線でハッチングされた領域は、フレーム分割部11へ入力されるフレームそれ自身を示す。部分a〜eは、フレーム分割部11によりフレームが分割されたときに、それぞれ1つのセグメントデータとなる部分を示す。
図3の(B)の各矩形は、スイッチインタフェース12から出力されるそれぞれのセグメントデータを示す。矩形内の数字は、分割元のフレームから各セグメントデータを切り出した順序を示し、小さな数字のセグメントデータほど、分割元のフレームのより先頭に近い箇所から切り出されたことを示す。他の図面においても、セグメントデータの表記に関し、同様の表記法を用いる。図3の(B)に示す通り、スイッチインタフェース12は、分割元のフレームから切り出す順番と同じ順序で、一定周期で各セグメントデータをスイッチ21へ送信する。
図3の(C)の各矩形は、スイッチインタフェース12から送信され、スイッチインタフェース31にて受信された図3の(B)のセグメントデータを示す。一点鎖線の矢印40は、スイッチインタフェース12からスイッチインタフェース31までセグメントデータが伝送されるために最低限必要な固定遅延量を示す。破線の矢印41a〜41cは、個々のセグメントデータついて発生するスイッチインタフェース12からスイッチインタフェース31までの伝送遅延の揺らぎ量を示す。
二点鎖線の矢印42は、フレーム伝送装置1について見込まれる、スイッチインタフェース12からスイッチインタフェース31までの伝送遅延の最大揺らぎ量を示す。ここに「最大揺らぎ量」とは、フレーム伝送装置1について見込まれる、スイッチインタフェース12からスイッチインタフェース31までの伝送遅延の最大値から、上記の固定遅延量を差し引いた値を意味する。他の図面においても、遅延量の表記に関して同様の表記法を用いる。
図3の(C)の例では、第1番目のセグメントデータには、固定遅延量40+揺らぎ量41aの遅延が生じている。第2番目のセグメントデータには、固定遅延量40+揺らぎ量41bの遅延が生じている。第3番目のセグメントデータには、固定遅延量40+最大揺らぎ量42の遅延が生じている。第4番目のセグメントデータには、固定遅延量40の遅延が生じている。第5番目のセグメントデータには、固定遅延量40+揺らぎ量41cの遅延が生じている。
図3の(D)の各矩形は、リオーダバッファ33に格納されるセグメントデータを示す。図3の(C)に示すように第3番目のセグメントデータに最大揺らぎ量42の遅延が発生し、スイッチインタフェース31への到着が遅れている。図3の(D)の参照符号44は、第3番目のセグメントデータの到着の遅れによりリオーダバッファ33が空になる状態、すなわちバッファアンダーフローが生じた状態を示す。
図3の(E)の各矩形は、スイッチインタフェース31からフレーム組立部32へ出力されるセグメントデータを示す。スイッチインタフェース31は、スイッチインタフェース12が出力する速度と同じ速度で、周期的にセグメントデータを出力する。図3の(D)において生じたアンダーフロー44のため、スイッチインタフェース31は、第3番目のセグメントデータを出力する本来の出力タイミングt1に第3番目のセグメントデータを出力することができず、その次の出力タイミングt2において第3番目のセグメントデータを出力する。
図3の(F)において、斜線でハッチングされた領域は、フレーム組立部32から出力されるフレームそれ自身を示す。部分a〜eは、組み立て後のフレームに占める、第1番目〜第5番目のセグメントデータに対応する部分を示す。領域45は、第3番目のセグメントデータの到着の遅れにより生じる、組み立て後のフレームの空き部分を示す。
固定された伝送レートで信号を伝送する方式には、伝送されるフレームに上述の部分45のような空き部分を規格上認めないものがある。このような伝送方式で伝送されるフレームには、例えばOTNフレームがある。このような規格の伝送方式でフレーム中の空きが生じると、フレームの同期が外れるエラーが発生したと判断されることがある。
各セグメントデータは、スイッチインタフェース12から一定周期で出力される。また、どのセグメントデータについても、スイッチインタフェース31へ到達するまでの生じる伝送遅延の最大値は、固定遅延量40に最大揺らぎ量42を加えた程度であると見込まれる。したがって、スイッチインタフェース12からセグメントデータが送信され始めた際における、リオーダバッファ33からの読み出し開始時期を適切に設定すれば、バッファアンダーフローを防止することができる。
アンダーフローが防止できるリオーダバッファ33からのセグメントデータを読み出し方法として、次の2つの方法が考えられる。第1の読み出し方法では、先頭セグメントの受信時刻から最大揺らぎ量が経過した後、セグメントデータの送信周期と同じ周期でリオーダバッファ33からセグメントデータを読み出す。ここで先頭セグメントとは、リオーダバッファ33が空になった後に受信されるセグメントデータのうち最初にスイッチ21へ送信されたセグメントデータである。
各セグメントデータの遅延量の揺らぎは、最大揺らぎ量よりも小さいことが見込まれる。上述のように読み出しタイミングを定めることにより、各セグメントデータは、それぞれについて見込まれる最大揺らぎ量が経過した後にリオーダバッファ33から読み出されることになるので、リオーダバッファ33のアンダーフローが防止できる。
図4の(A)〜図4の(E)は、第1の読み出し方法により生じるリオーダバッファ33の滞在時間の説明図である。図4の(A)は、スイッチインタフェース12から出力されるセグメントデータのタイムチャートを示し、図4の(B)はスイッチインタフェース31へ入力されるセグメントデータのタイムチャートの第1例を示す。図4の(C)は、図4の(B)のセグメントデータを受信したスイッチインタフェース31からフレーム組立部32へ出力されるセグメントデータのタイムチャートを示す。
図4の(D)はスイッチインタフェース31へ入力されるセグメントデータのタイムチャートの第2例を示す。図4の(E)は、図4の(D)のセグメントデータを受信したスイッチインタフェース31からフレーム組立部32へ出力されるセグメントデータのタイムチャートを示す。
第1の読み出し方法では、各セグメントデータの読み出しタイミングは、先頭セグメントがスイッチインタフェース31に到着した時間によって定まる。従って、図4の(B)に示すように時刻t1にて先頭セグメントとしての第1番目のセグメントデータが到着すると、スイッチインタフェース31は、時刻t1から最大揺らぎ量42が経過した時刻t2において、セグメントデータの出力を開始する。この様子を図4の(C)に示す。
図4の(B)に示す遅延量の例と図4の(D)に示す遅延量の例とを比較する。図4の(B)に示す第1番目のセグメントデータには、最小限の固定遅延量40の遅延しか生じていないのに対し、図4の(B)に示す第1番目のセグメントデータには、固定遅延量40+最大揺らぎ量42の遅延が生じている。
この結果、図4の(C)及び図4の(E)に示すそれぞれの場合のスイッチインタフェース31の出力を比較すると、図4の(E)の出力タイミングは、図4の(C)の出力タイミングに比べて、最大揺らぎ量42に相当する期間46の分だけ遅れることになる。すなわち第1の読み出し方法によれば、先頭セグメントの遅延量の変動に応じて、各セグメントデータがリオーダバッファ33を通過するのに要する期間が変動する。このため、先頭セグメントの遅延量によっては、各セグメントデータがリオーダバッファ33に滞在する時間が増大してしまうこともある。
例えば、OTNフレームを伝送する伝送装置については、伝送装置に許容される遅延時間が規格によって定められている。したがってリオーダバッファ33に滞在する時間が増大すると、伝送装置の設計条件がより厳しくなるという問題がある。
第2の読み出し方法では、リオーダバッファ33に蓄積されるデータ量が所定の蓄積量に至ったら、セグメントデータの送信周期と同じ周期でリオーダバッファ33からセグメントデータを読み出す。所定の蓄積量は、最大揺らぎ量42に相当する期間内にリオーダバッファ33から読み出されるデータ量に応じて定められる。
図5の(A)〜図5の(D)は、第2の読み出し方法により生じるバッファ33の滞在時間の説明図である。図5の(A)は、スイッチインタフェース12から出力されるセグメントデータのタイムチャートを示し、図5の(B)はスイッチインタフェース31へ入力されるセグメントデータのタイムチャートを示す。
図5の(C)は、セグメントデータが蓄積されるリオーダバッファ33の状態を示し、図5の(D)は、図5の(B)のセグメントデータを受信したスイッチインタフェース31からフレーム組立部32へ出力されるセグメントデータのタイムチャートを示す。
図5の(C)の参照符号47は、最大揺らぎ量42に相当する期間内にリオーダバッファ33から読み出されるデータ量を示す。第2の読み出し方法の場合、スイッチインタフェース31は、時刻t1にて所定の蓄積量47がリオーダバッファ33に蓄積されるに至ってから、セグメントデータの出力を開始する。この様子を図5の(C)及び図5の(D)に示す。
図5の(B)に示す遅延量の例の場合、第1番目〜第5番目のセグメントデータの全てにおいて固定遅延量40+最大揺らぎ量42の遅延が生じている。このように、所定の蓄積量47がリオーダバッファ33に蓄積されるまでの間に受信されるセグメントデータの遅延量が大きいと、第2の読み出し方法によってもリオーダバッファ33の滞在時間が増大してしまうことになる。
図6の(A)〜図6の(C)は、実施例としてのセグメントデータの読み出し方法の説明図である。図6の(A)は、スイッチインタフェース12から出力されるセグメントデータのタイムチャートを示し、図6の(B)はスイッチインタフェース31へ入力されるセグメントデータのタイムチャートを示す。図6の(C)は、図6の(B)のセグメントデータを受信したスイッチインタフェース31からフレーム組立部32へ出力されるセグメントデータのタイムチャートを示す。
実施例に係る読み出し方法によれば、スイッチインタフェース31は、スイッチインタフェース12が先頭セグメントをスイッチ21へ送信した時期に応じて、各セグメントデータをそれぞれリオーダバッファ33から読み出す時期を決定する。例えば、図6の(A)〜図6の(C)において先頭セグメントが第1番目のセグメントデータであるとする。図6の(C)に示す例では、スイッチインタフェース31は、スイッチインタフェース12が第1番目のセグメントデータをスイッチ21へ送信してから、固定遅延量40+最大揺らぎ量42に相当する期間が経過してからセグメントデータの読み出しを開始する。
実施例に係る読み出し方法によれば、セグメントデータがスイッチインタフェース31に到着する時期が基準とならない。このため、例えば第1番目のセグメントデータが遅延しても、第1の読み出し方法のようにリオーダバッファ33の滞在時間が増大してしまう問題は生じない。同様に、第2の読み出し方法において生じるリオーダバッファ33の滞在時間の増大と同じ問題も生じない。
以下、図7の(A)〜図7の(D)及び図8の(A)〜(E)を参照して、実施例に係る読み出し方法と第1及び第2の読み出し方法との間のバッファ33の滞在時間の差を説明する。以下の説明において、第1番目のセグメントデータを先頭セグメントとする。また、以下の例において、実施例に係る読み出し方法を実施するスイッチインタフェース31は、スイッチインタフェース12が先頭セグメントを送信してから、固定遅延量40+最大揺らぎ量42に相当する期間が経過してからセグメントデータの読み出しを開始する。
図7の(A)〜図7の(D)は、実施例に係る読み出し方法と第1の読み出し方法との間のリオーダバッファ33の滞在時間の差を説明する図である。図7の(A)は、スイッチインタフェース12から出力されるセグメントデータのタイムチャートを示し、図7の(B)はスイッチインタフェース31へ入力されるセグメントデータのタイムチャートを示す。
図7の(C)は、図7の(B)のセグメントデータを受信したリオーダバッファ33から第1の読み出し方法によって読み出され、フレーム組立部32へ出力されるセグメントデータのタイムチャートを示す。
図7の(D)は、図7の(B)のセグメントデータを受信したリオーダバッファ33から実施例に係る読み出し方法によって読み出され、フレーム組立部32へ出力されるセグメントデータのタイムチャートを示す。
図7の(B)に示すように、先頭セグメントには、固定遅延量40+最大揺らぎ量42の遅延が生じている。このため第1の読み出し方法によれば、図7の(C)に示すように、先頭セグメントがスイッチ21へ送信されてから固定遅延量40+2×(最大揺らぎ量42)が経過した時刻t1において、セグメントデータの読み出しが開始される。
実施例に係る読み出し方法によれば、図7の(D)に示すように、先頭セグメントがスイッチ21へ送信されてから固定遅延量40+最大揺らぎ量42が経過した時刻t2においてセグメントデータの読み出しが開始される。したがって、実施例に係る読み出し方法によれば、第1の読み出し方法と比べて最大揺らぎ量42に相当する期間48の分だけ早く各セグメントデータが読み出され、その分リオーダバッファ33での滞在時間が短縮されることになる。
図8の(A)〜図8の(E)は、実施例に係る読み出し方法と第2の読み出し方法との間のリオーダバッファ33の滞在時間の差を説明する図である。図8の(A)は、スイッチインタフェース12から出力されるセグメントデータのタイムチャートを示し、図8の(B)はスイッチインタフェース31へ入力されるセグメントデータのタイムチャートを示す。
図8の(C)は、セグメントデータが蓄積されるリオーダバッファ33の状態を示す。図8の(D)は、図8の(B)のセグメントデータを受信したリオーダバッファ33から第2の読み出し方法によって読み出され、フレーム組立部32へ出力されるセグメントデータのタイムチャートを示す。
図8の(D)は、図8の(B)のセグメントデータを受信したリオーダバッファ33から実施例に係る読み出し方法によって読み出され、フレーム組立部32へ出力されるセグメントデータのタイムチャートを示す。
図8の(B)に示すように、第1番目〜第5番目のセグメントデータの全てにおいて固定遅延量40+最大揺らぎ量42の遅延が生じている。第2の読み出し方法によれば、先頭セグメントがスイッチ21へ送信されてから固定遅延量40+最大揺らぎ量42の期間が経過した後、さらに所定の蓄積量47のデータがリオーダバッファ33に蓄積された時刻t1にて、セグメントデータの読み出しが開始される。
実施例に係る読み出し方法によれば、図8の(E)に示すように、先頭セグメントがスイッチ21へ送信されてから固定遅延量40+最大揺らぎ量42が経過した時刻t2においてセグメントデータの読み出しが開始される。したがって、実施例に係る読み出し方法によれば、所定の蓄積量47のデータがリオーダバッファ33に蓄積されるまでの期間49の分だけ早く各セグメントデータが読み出され、その分リオーダバッファ33での滞在時間が短縮されることになる。
以下、上述の実施例に係る読み出し方法を実行する信号処理回路について説明する。図9は、本実施例に係る信号処理回路の第1例の概略構成図である。参照符号50は信号処理回路を示し、参照符号51は先頭検出部を示し、参照符号52は送信時期取得部を示し、参照符号53は読出時期制御部を示す。
信号処理回路50は、先頭検出部51と、送信時期取得部52と、読出時期制御部53とを備える。例えば、信号処理回路50は、インタフェースカード30や、スイッチインタフェース31に設けられ、リオーダバッファ33からセグメントデータを読み出す処理を制御する回路であってよい。
先頭検出部51は、スイッチ21からスイッチインタフェース31が受信したセグメントデータの中から先頭セグメントを検出する。上述の通り先頭セグメントとは、リオーダバッファ33が空になった後に受信されるセグメントデータのうち最初にスイッチ21へ送信されたセグメントデータである。
例えば、送信側のスイッチインタフェース12は、セグメントデータに付加されるヘッダ情報に、それぞれのセグメントデータの送信順序を表すシリアルナンバーを含めてもよい。例えば、先頭検出部51は、ヘッダ情報に含まれるシリアルナンバーに基づいて、受信したセグメントデータの中から先頭セグメントを検出してよい。
例えば、送信側のスイッチインタフェース12は、ヘッダ情報に、それぞれのセグメントデータをスイッチ21へ送信する時期を表す送信時期情報を含めてもよい。例えば、先頭検出部51は、ヘッダ情報に含まれる送信時期情報に基づいて、受信したセグメントデータの中から先頭セグメントを検出してよい。
送信時期取得部52は、セグメントデータの読出時期を取得する。例えば送信時期取得部52は、セグメントデータに付加されたヘッダ情報に含まれる送信時期情報に基づいて、セグメントデータの読出時期を取得してよい。
読出時期制御部53は、先頭セグメントについて送信時期取得部52が取得した送信時期に応じて、リオーダバッファ33からセグメントデータを読み出す読出時期を決定する。例えば、読出時期制御部53は、先頭セグメントの送信時期から所定期間が経過したとき、先頭セグメントの読出時期が到来したと判定する。その後、読出時期制御部53は、一定期間が経過する度に、後続の各セグメントデータの読出時期が到来したとそれぞれ判定する。読出時期制御部53は、読み出し時期を指示するタイミング指示信号を出力する。
図10は、図9の信号処理回路50により実行されるセグメントデータの読み出し処理の説明図である。なお別の実施の態様においては、下記のオペレーションAA〜ACの各オペレーションはステップであってもよい。
オペレーションAAにおいて先頭検出部51は、スイッチ21からスイッチインタフェース31が受信したセグメントデータの中から先頭セグメントを検出する。オペレーションABにおいて送信時期取得部52は、先頭セグメントの読出時期を取得する。なお、オペレーションAAとABはどちらが先に実行されてもよい。例えば、先頭検出部51は、各セグメントデータについて送信時期取得部52が取得した送信時期に基づいて、先頭セグメントを検出してもよい。
オペレーションACにおいて読出時期制御部53は、先頭セグメントについて送信時期取得部52により取得された送信時期に応じて、リオーダバッファ33からセグメントデータを読み出す読出時期を決定する。読出時期制御部53は、読み出し時期を指示するタイミング指示信号を出力する。
本実施例によれば、先頭セグメントの送信時期を基準にして、リオーダバッファ33に格納されたセグメントデータを読み出すタイミングが決定される。このため、セグメントデータの遅延の揺らぎの影響を受けずに、読み出しタイミングを決定することができる。したがって、セグメントデータの遅延の揺らぎ量に応じて、リオーダバッファ33の滞在時間が延びるといった現象を防止することができるため、リオーダバッファ33の滞在時間が低減される。
また、セグメントデータの送信時期を基準にしてセグメントデータの読み出しタイミングを決定する他の方法として、各セグメントデータの送信時期を基準にして、それぞれのセグメントデータの読み出しタイミングを決定してもよい。しかしこの方法は、リオーダバッファ33に格納されている各々のセグメントデータについて送信時期と現時点とを比較する必要があるため、信号処理回路50の処理の増加を招く。
一方で、上記の本実施例によれば、読出時期制御部53は、例えば先頭セグメントの送信時期に応じて先頭セグメントの読出時期が到来したと判定し、その後、一定期間が経過する度に後続の各セグメントデータの読出時期が到来したと判定する。この判定方法によれば、信号処理回路50は、先頭セグメントが検出された後は送信時期と現時点との比較を省略することができるため、信号処理回路50の処理を低減することができる。
図11は、本実施例に係る信号処理回路の第2例の概略構成図である。図9に示す構成要素と同様の構成要素には図9で使用した参照符号と同じ参照符号を付し、同一の機能については説明を省略する。
信号処理回路50は、第1状態と第2状態との間を遷移するステートマシン54を備える。ステートマシン54は、リオーダバッファ33へのセグメントデータの格納状態を示すバッファ状態信号を受信し、リオーダバッファ33が空になったときに第1状態から第2状態へ遷移する。またステートマシン54は、先頭セグメントをリオーダバッファ33から読み出す時期が到来したときに第2状態から第1状態へ遷移する。
すなわち第1状態は、先頭セグメントの読み出しが開始され、リオーダバッファ33が空になるまで、先頭セグメントに続く後続のセグメントデータの読み出しが継続している状態である。第2状態は、リオーダバッファ33が空である状態から、まだ先頭セグメントが検出されず先頭セグメントの読み出しが開始されていない状態である。
先頭検出部51は、ステートマシン54が第2状態にある期間、スイッチ21から受信されるセグメントデータの中から先頭セグメントを検出する検出処理を実行する。
図12は、図9の信号処理回路50により実行されるセグメントデータの読み出し処理の説明図である。なお別の実施の態様においては、下記のオペレーションBA〜BIの各オペレーションはステップであってもよい。
オペレーションBAにおいてスイッチインタフェース31は、スイッチ21を経由してスイッチインタフェース12から送信されたセグメントデータを受信する。オペレーションBBにおいて先頭検出部51は、ステートマシン54が第2状態にあるか否かを判定する。ステートマシン54が第2状態にある場合(オペレーションBB:Y)、処理はオペレーションBCへ移行する。ステートマシン54が第2状態にない場合(オペレーションBB:N)、処理はオペレーションBHへ移行する。
オペレーションBCにおいて先頭検出部51は、オペレーションBAで受信したセグメントデータが、リオーダバッファ33が空の状態の時から今までに受信されたセグメントデータのうち、最も早くスイッチインタフェース12から送信されたものであるか否かを判定する。先頭検出部51は、セグメントデータのヘッダ情報に含まれるシリアルナンバーに基づいて、オペレーションBCの判定を行ってもよい。また、先頭検出部51は、セグメントデータのヘッダ情報に含まれる送信時期情報に基づいて、オペレーションBCの判定を行ってもよい。
受信したセグメントデータが最も早く送信されたものであるとき(オペレーションBC:Y)、オペレーションBDにおいて先頭検出部51は、オペレーションBAで受信したセグメントデータを仮先頭セグメントとして決定する。その後処理はオペレーションBEへ移行する。
受信したセグメントデータが最も早く送信されたものでないとき(オペレーションBC:N)、先頭検出部51は、オペレーションBDを実行せずに処理をオペレーションBEへ進める。すなわち先頭検出部51は、リオーダバッファ33が空の状態の時から今までの間に先に実行されたオペレーションBDにて決定された仮先頭セグメントを、そのまま仮先頭セグメントとする。
オペレーションBEにおいて送信時期取得部52は、送信側のスイッチインタフェース12が仮先頭セグメントをスイッチ21へ送信した送信時期を取得する。送信時期取得部52は、受信した全てのセグメントデータについて送信時期を取得してもよい。この場合、オペレーションBEはオペレーションBCやBDの前に行ってもよい。
オペレーションBFにおいて先頭検出部51は、仮先頭セグメントの送信時期から所定期間Tが経過したか否かを判定する。仮先頭セグメントの送信時期から所定期間が経過したとき(オペレーションBF:Y)、処理はオペレーションBGへ移行する。仮先頭セグメントの送信時期から所定期間が経過していないとき(オペレーションBF:N)、処理はオペレーションBAへ戻る。
オペレーションBGにおいて先頭検出部51は、仮先頭セグメントを先頭セグメントとして検出する。読出時期制御部53は、先頭検出部51により先頭セグメントが検出されたとき、リオーダバッファ33からセグメントデータを読み出す読出開始時期が到来したと判定する。読出時期制御部53は、読み出し時期を指示するタイミング指示信号を出力する。また、ステートマシン54は第2状態から第1状態へ遷移する。その後、処理は終了する。
オペレーションBHにおいてステートマシン54は、バッファ状態信号に基づいて、リオーダバッファ33が空になったか否かを判定する。リオーダバッファ33が空であるとき(オペレーションBH:Y)、オペレーションBIにおいてステートマシン54は第1状態から第2状態へ遷移する。その後、処理はオペレーションBAに戻る。リオーダバッファ33が空でないとき(オペレーションBH:N)、処理はオペレーションBAに戻る。
本実施例の信号処理回路50は、リオーダバッファ33が空であるとき、その後に受信が始まるセグメントデータを、リオーダバッファ33から読み出し始める開始時期を決定する処理を始める。この処理を行うとき信号処理回路50は、先頭セグメントを検出し、先頭セグメントの送信時期に応じて各セグメントデータの読み出し開始時期を決定する。
本実施例によれば、信号処理回路50は、ステートマシン54を用いることにより、リオーダバッファ33が空であった状態から未だに先頭セグメントが検出されていないことを記憶することができる。このため先頭検出部51は、ステートマシン54の状態を参照して先頭セグメントの検出処理を行うべきか否かの判断を行うことができる。
図13は、複数のスイッチを備えるフレーム伝送装置の第2例の概略構成図である。図2に示す構成要素と同様の構成要素には図2で使用した参照符号と同じ参照符号を付し、同一の機能については説明を省略する。本例のフレーム伝送装置1は、光伝送網上で伝送されるOTNフレームのスイッチングを行う伝送装置である。但し、以下に説明する本実施例に係るスイッチインタフェース12及び31は、OTNフレームのスイッチングを行うフレーム伝送装置だけでなく、他の伝送方式により伝送されるフレームのスイッチングするフレーム伝送装置にも適用可能である。
参照符号13−1〜13−nは光受信モジュール(SFP/XFP)を示し(光受信モジュール13と総称することがある)、参照符号14−1〜14−nはフレーマを示す(フレーマ14と総称することがある)。参照符号34−1〜34−nはフレーマを示し(フレーマ34と総称することがある)、参照符号35−1〜35−nは、光送信モジュール(SFP/XFP)を示し(光送信モジュール35と総称することがある)。参照符号3はタイミングパルス生成部を示す。
インタフェースカード10−1〜10−nは、それぞれ光受信モジュール13−1〜13−nと、フレーマ14−1〜14−nと、スイッチインタフェース12−1〜12−nを備える。またインタフェースカード30−1〜30−nは、それぞれ、スイッチインタフェース31−1〜31−nと、フレーマ34−1〜34−nと、光送信モジュール35−1〜35−nを備える。
なお、インタフェースカード10−i及び30−iは(iは1、2〜nの値の添字である)、一体のカードとして構成されてもよい。このとき、スイッチインタフェース12−i及び31−iは同じユニットに搭載されてよい。例えば、スイッチインタフェース12−i及び31−iは同じ回路チップに搭載されてよい。
光受信モジュール13は、光伝送網を経由して伝送されたOTNフレームの受信処理を行う。フレーマ14は、光受信モジュール13により受信された受信信号からOTNフレームをデマッピングし、さらにOTNフレームを複数のセグメントデータへ分割する。フレーマ14は、複数のセグメントデータをスイッチインタフェース12へ出力する。
フレーマ34は、スイッチインタフェース31から出力されたセグメントデータを受信し、セグメントデータを組み立ててOTNフレームを構築する。光送信モジュール35は、フレーマ34が構築したOTNフレームを光伝送網へ送信する。タイミングパルス生成部3は、一定の周期でパルスが発生するタイミングパルス信号を、スイッチインタフェース12及び31へ供給する。
なお、インタフェースカード10及びスイッチインタフェース12は、スイッチ21へセグメントデータを入力する入口に位置するため、それぞれイングレス側のインタフェースカード及びスイッチインタフェースと記載することがある。インタフェースカード30及びスイッチインタフェース31は、スイッチ21からセグメントデータが出力される出口に位置するため、それぞれイーグレス側のインタフェースカード及びスイッチインタフェースと記載することがある。
図14は、イングレス側のスイッチインタフェース12−1の概略構成図である。他のインタフェースカード12−2〜12−nも同様の構成を有する。参照符号60はタイムスタンプカウンタを示し、参照符号61はスイッチセグメント生成部を示し、参照符号62はシリアルナンバーレジスタを示し、参照符号63はセグメント分配部を示す。
スイッチインタフェース12−1は、タイムスタンプカウンタ60と、シリアルナンバーレジスタ61と、スイッチセグメント生成部62と、セグメント分配部63とを備える。
タイムスタンプカウンタ60は、タイミングパルス生成部3から供給されるタイミングパルス信号を受信し、受信したタイミングを初期値としてカウント動作を行う。タイミングパルス信号は一定周期でパルスを含むので、カウント値は時期を指示する情報として使用することができる。タイミングパルス生成部3から供給されるタイミングパルス信号に含まれるパルスにより初期化されたカウンタのカウント値を、以下「タイムスタンプ」と記載することがある。
スイッチセグメント生成部61は、フレーマ14がOTNフレームを分割して生成したセグメントデータであるODUセグメントを受信する。スイッチセグメント生成部61は、ODUセグメントに所定のヘッダ情報を付加することによりスイッチセグメントを形成し、セグメント分配部63へ出力する。
ヘッダ情報は、例えば、セグメントデータの転送元であるスイッチインタフェース12−1の識別子や、分割前のODUフレームの宛先に応じて定まる転送先のインタフェースカード30の識別子を含む。スイッチセグメント生成部61は、例えば、制御部2によって予め設定された設定情報に従って、転送先のインタフェースカード30を決定してよい。
スイッチセグメント生成部61は、タイムスタンプカウンタ60から出力されているタイムスタンプを、ヘッダ情報に含める。またスイッチセグメント生成部61は、各ODUセグメントのシリアルナンバーをヘッダ情報に含める。
シリアルナンバーレジスタ62は、各ODUセグメントへ割り当てるシリアルナンバーを管理する。スイッチインタフェース12−1が受信するODUセグメントが異なる複数のチャネル上を流れる信号であるとき、スイッチインタフェース12−1は、チャネル毎にシリアルナンバーレジスタ62を備えてよい。これによってシリアルナンバーをチャネル毎に管理することができる。セグメント分配部63は、スイッチセグメント生成部61から受信したスイッチセグメントを、複数のスイッチ21−1〜21−mへ分配する。
図15の(A)〜図15の(G)は、イングレス側のスイッチインタフェース12−1におけるセグメントデータの処理の説明図である。図15の(A)は、スイッチセグメント生成部61へ入力されるODUセグメントのタイムチャートを示し、図15の(B)は、タイムスタンプカウンタ60から出力されるタイムスタンプのタイムチャートを示す。
図15の(C)は、シリアルナンバーレジスタ62に保持されるシリアルナンバーのタイムチャートを示し、図15の(D)は、スイッチセグメント生成部61から出力されるスイッチセグメントのタイムチャートを示す。図15の(E)〜図15の(G)は、それぞれレーンs11〜s13へ出力されるスイッチセグメントのタイムチャートを示す。なお、図15の(D)において、記号「TS」はタイムスタンプを意味し、記号「SN」はシリアルナンバーを示す。
タイムスタンプカウンタ60から出力されるタイムスタンプの値は一定周期で1ずつ増加する。図15の(B)のタイムチャートにおいて、タイムスタンプの値は「t」から「t+16」まで順次増加する。図15の(A)に示すとおり、スイッチセグメント生成部61は、3つのODUフレームを、それぞれタイムスタンプの値が「t+1」、「t+7」及び「t+13」である時点で受信する。
スイッチセグメント生成部61は、タイムスタンプの値が「t+1」である時点で受信されたODUフレームに、その時点のタイムスタンプ「t+1」及びその時点のシリアルナンバー「0」を含むヘッダ情報を付加することによりスイッチセグメントを形成する。この様子を図15の(D)に示す。その後、スイッチセグメント生成部61は、シリアルナンバーレジスタ62に保持されるシリアルナンバーの値を1つ増加させる。この結果、シリアルナンバーの値は「0」から「1」へ増加する。
スイッチセグメント生成部61は、タイムスタンプの値が「t+7」である時点で受信されたODUフレームに、その時点のタイムスタンプ「t+7」及びその時点のシリアルナンバー「1」を含むヘッダ情報を付加する。その後、スイッチセグメント生成部61は、シリアルナンバーレジスタ62に保持されるシリアルナンバーの値を1つ増加させる。この結果、シリアルナンバーの値は「1」から「2」へ増加する。
スイッチセグメント生成部61は、タイムスタンプの値が「t+13」である時点で受信されたODUフレームに、その時点のタイムスタンプ「t+13」及びその時点のシリアルナンバー「2」を含むヘッダ情報を付加する。その後、スイッチセグメント生成部61は、シリアルナンバーレジスタ62に保持されるシリアルナンバーの値を1つ増加させる。この結果、シリアルナンバーの値は「2」から「3」へ増加する。
図15の(E)〜図15の(G)に示すように、セグメント分配部63は、シリアルナンバーがそれぞれ「0」、「1」及び「2」であるスイッチセグメントを、それぞれレーンs11〜s13へ分配する。
図16は、イ−グレス側のスイッチインタフェース31−1の第1例の概略構成図である。他のインタフェースカード31−2〜31−nも同様の構成を有する。参照符号70はCPUレジスタを示し、参照符号71はセグメント多重化部を示し、参照符号72は書込制御部を示し、参照符号74はバッファ管理部を示し、参照符号75はタイムスタンプカウンタを示す。参照符号76はタイムスタンプ同期管理部を示し、参照符号77は読出要求信号生成部を示し、参照符号78は読出制御部を示し、参照符号33−1はリオーダバッファを示す。
スイッチインタフェース31−1は、CPUレジスタ70と、セグメント多重化部71と、書込制御部72と、バッファ管理部74と、タイムスタンプカウンタ75と、を備える。また、スイッチインタフェース31−1は、タイムスタンプ同期管理部76と、読出要求信号生成部77と、読出制御部78と、リオーダバッファ33−1とを備える。
セグメント多重化部71は、複数のレーンr11〜rm1を経由して複数のスイッチ21−1〜21−mから受信したスイッチセグメントを多重化して、書込制御部72へ出力される。図17の(A)〜図17の(D)は、セグメント多重化部71における処理の説明図である。
図17の(A)、図17の(B)及び図17の(C)は、それぞれ、レーンr11、r21及びrm1を介してセグメント多重化部71にて受信されるスイッチセグメントのタイムチャートを示す。図17の(D)は、図17の(A)〜図17の(C)において受信され、セグメント多重化部71により多重化されたスイッチセグメントのタイムチャートを示す。図17の(A)〜図17の(D)において記号「SN」はシリアルナンバーを示す。
図17の(A)〜図17の(C)に示すように、時刻t1にてシリアルナンバー「n+1」のスイッチセグメントがレーンrm1を経由して受信され、その後時刻t2にてシリアルナンバー「n+2」のスイッチセグメントがレーンr21を経由して受信される。時刻t3にてシリアルナンバー「n」のスイッチセグメントがレーンr11を経由して受信され、その後時刻t4にてシリアルナンバー「n+5」のスイッチセグメントがレーンrm1を経由して受信される。その後時刻t5にてシリアルナンバー「n+8」のスイッチセグメントがレーンr11を経由して受信される。
このように、スイッチ21の通過に要する遅延の揺らぎのため、セグメント多重化部71に到着する順序が、スイッチセグメントのシリアルナンバーの順序と食い違うことがある。この結果、図17の(D)に示す通り、多重化されたスイッチセグメントは、シリアルナンバーの順序通りに並んでセグメント多重化部71から出力されるとは限らない。
図16を参照する。書込制御部72は、セグメント多重化部71から出力されるスイッチセグメントを終端し、ODUセグメント(以下、単に「セグメントデータ」と印す)を、リオーダバッファ33−1に格納する。
図18は、リオーダバッファ33−1の実現例の説明図である。本例では、ヘッダ情報に含めるシリアルナンバーのビット幅を14ビットとし、リオーダバッファ33−1への入力データ幅、すなわち1つのアドレスに格納可能なビット数を256ビットとする。また、セグメントデータのサイズを256バイトとし、発生が見込まれる最大の揺らぎ量を128セグメントとして、最大格納可能セグメント数を256個とする。
参照符号80にて示される列は、リオーダバッファ33−1のメモリアドレスの下位第4〜11ビットの値を示し、参照符号81にて示される列は、リオーダバッファ33−1のメモリアドレスの下位4ビットの値を示す。
例えば参照符号83は、下位第4〜11ビットの値が「254」でありかつ下位4ビットの値が「0」〜「7」である、256ビット×8個=256バイトの記憶領域を示す。また、参照符号84は、下位第4〜11ビットの値が「2」でありかつ下位4ビットの値が「0」〜「7」である256バイトの記憶領域を示す。
書込制御部72は、ヘッダ情報に含まれるシリアルナンバーの下位8ビットを、このセグメントデータを格納するアドレスの下位第4〜11ビットとして使用する。書込制御部72は、アドレスの下位4ビットを「0」〜「7」まで順次インクリメントしながら、256バイトのセグメントデータを8つの256ビットの記憶領域に格納する。
図16を参照する。書込制御部72は、各スイッチセグメントのヘッダ情報から、スイッチセグメントのシリアルナンバーと、スイッチインタフェース12から送信される際に付せられたタイムスタンプを取得する。書込制御部72は、シリアルナンバーとタイムスタンプをバッファ管理部74へ出力する。書込制御部72は、特許請求の範囲の送信時期所得部の一例として挙げられる。
バッファ管理部74は、書込制御部72からシリアルナンバーとタイムスタンプを受信することにより、リオーダバッファ33−1へ格納されるセグメントデータの増分を検出する。またバッファ管理部74は、リオーダバッファ33−1からのセグメントデータの読み出しを通知する信号を後述の読出制御部78から受信し、リオーダバッファ33−1へ格納されるセグメントデータの減少分を検出する。このようにリオーダバッファ33−1へ格納されるセグメントデータの増加及び減少を検出することにより、バッファ管理部74は、リオーダバッファ33−1へ蓄積されるセグメントデータの蓄積量を監視する。
バッファ管理部74は、リオーダバッファ33−1内のセグメントデータの蓄積量を示すバッファ状態信号と、書込制御部72から受信したシリアルナンバー及びタイムスタンプをタイムスタンプ同期管理部76へ出力する。
タイムスタンプカウンタ75は、タイミングパルス生成部3から供給されるタイミングパルス信号を受信し、受信したタイミングを初期値としてカウント動作を行う。これによりタイムスタンプカウンタ75がカウントするカウント値の初期値は、イングレス側のスイッチインタフェース12に設けられたタイムスタンプカウンタ60がカウントするカウント値の初期値と一致する。このためタイムスタンプカウンタ75及びタイムスタンプカウンタ60がカウントするカウント値は同じ値のタイムスタンプとなる。タイムスタンプカウンタ75は、カウント値をタイムスタンプ同期管理部76へ出力する。タイムスタンプカウンタ75によりカウントされるタイミングパルス信号のカウント値を、以下単に「カウント値」と記載することがある。
タイムスタンプ同期管理部76は、受信したセグメントデータのシリアルナンバー、タイムスタンプ及びバッファ状態信号をバッファ管理部74から受信し、タイムスタンプカウンタ75からカウント値を受信する。また、タイムスタンプ同期管理部76は、CPUレジスタ70から下記のオフセット指示情報を読み込む。タイムスタンプ同期管理部76は、シリアルナンバー、タイムスタンプ、バッファ状態信号、カウント値及びオフセット指示情報に基づいて、「RO状態」及び「TS状態」の2つの状態のいずれかを示す状態信号を出力する。
「RO状態」とは、先頭セグメントの読み出しが開始され、リオーダバッファ33−1が空になるまで、先頭セグメントに続く後続のセグメントデータの読み出しが継続している状態である。「TS状態」とは、リオーダバッファ33−1が空である状態から、まだ先頭セグメントが検出されず先頭セグメントの読み出しが開始されていない状態である。
後述するようにタイムスタンプ同期管理部76は、「RO状態」及び「TS状態」の間を遷移する状態を記憶するステートマシンを備えている。なお「RO状態」及び「TS状態」は、それぞれ特許請求の範囲の「第1状態」及び「第2状態」の一例として挙げられる。タイムスタンプ同期管理部76は、状態信号を読出要求信号生成部77へ出力する。
また、タイムスタンプ同期管理部76は、上述のステートマシンの状態が「TS状態」であるとき、先頭セグメントの検出処理を実行する。先頭セグメントが検出されたとき、タイムスタンプ同期管理部76は、この先頭セグメントのシリアルナンバーを、読出要求信号生成部77へ出力する。タイムスタンプ同期管理部76は、特許請求の範囲の先頭検出部及び読出時期制御部の一例として挙げられる。タイムスタンプ同期管理部76が行う処理内容は後述する。
読出要求信号生成部77は、CPUレジスタ70から読み出し間隔情報を読み込む。読出要求信号生成部77は、状態信号が示す値が「TS状態」から「RO状態」へ変わったとき、先頭セグメントをリオーダバッファ33−1から読み出すための読出要求信号を生成する。また読出要求信号生成部77は、先頭セグメントに続く後続のセグメントデータをそれぞれ読み出すための読出要求信号を、読み出し間隔情報が示す間隔毎に生成する。読出要求信号生成部77は、読出要求信号を読出制御部78へ出力する。
読出制御部78は、読出要求信号生成部77から受信する読出要求信号に従って読み出し制御信号を出力することにより、リオーダバッファ33−1からセグメントデータを読み出す。読出制御部78は、読み出したセグメントデータをフレーマ34−1へ一定間隔で出力する。
CPUレジスタ70は、上述のオフセット指示情報及び読出間隔情報などの設定値を保持する。CPUレジスタ70は、インタフェースカード30−1に設けられた所定のプロセッサによりアクセス可能なアクセスバスに接続されており、上述の設定値はこのプロセッサによって変更することができる。
図19は、タイムスタンプ同期管理部76の概略構成図である。参照符号90はシリアルナンバー判定部を示し、参照符号91はタイムスタンプ情報保持部を示し、参照符号92は加算回路を示し、参照符号93は比較部を示す。参照符号94はステートマシンを示し、参照符号95は揺らぎ監視部を示し、参照符号96は比較部を示し、参照符号97はシリアルナンバーレジスタを示し、参照符号98はタイムスタンプレジスタを示す。図19において、記号「TS」はタイムスタンプを意味し、記号「SN」はシリアルナンバーを示す。
タイムスタンプ同期管理部76は、シリアルナンバー判定部90と、タイムスタンプ情報保持部91と、加算回路92と、比較部93と、ステートマシン94を備える。ステートマシン94は、「RO状態」及び「TS状態」の間を遷移する状態を記憶する。ステートマシン94の状態が「TS状態」にあるとき、シリアルナンバー判定部90は、受信したセグメントデータのシリアルナンバーを、バッファ管理部74から受信する。
シリアルナンバー判定部90は、揺らぎ監視部95と、比較部96と、シリアルナンバーレジスタ97を備える。揺らぎ監視部95は、受信したシリアルナンバーとシリアルナンバーレジスタ97の値との差が、所定の許容範囲である揺らぎ範囲内にあるか否かを判定する。
受信したシリアルナンバーとシリアルナンバーレジスタ97との差が揺らぎ範囲内にあるとき、比較部96は、受信したシリアルナンバーとシリアルナンバーレジスタ97に記憶されているシリアルナンバーとを比較する。
受信したシリアルナンバーがシリアルナンバーレジスタ97に記憶されているシリアルナンバーよりも小さいとき、比較部96は、受信したシリアルナンバーをシリアルナンバーレジスタ97に記憶する。すなわち受信したシリアルナンバーの順位がシリアルナンバーレジスタ97に記憶されているシリアルナンバーの順位より早いとき、比較部96は、受信したシリアルナンバーをシリアルナンバーレジスタ97に記憶する。
但し、スイッチインタフェース30−1が起動後に初めてシリアルナンバーを受信したとき、又はステートマシン94の状態が「TS状態」に遷移後に初めてシリアルナンバーを受信したとき、このシリアルナンバーがシリアルナンバーレジスタ97に記憶される。したがって、シリアルナンバーレジスタ97には、リオーダバッファ33−1が空の状態の時から今までに受信されたセグメントデータのうち、最も早くスイッチインタフェース12から送信されたセグメントデータのシリアルナンバーが記憶される。以下の説明において、シリアルナンバーレジスタ97に記憶されるシリアルナンバーのセグメントデータを、「仮先頭セグメント」と記載することがある。
またシリアルナンバー判定部90は、シリアルナンバーレジスタ97に記憶されている仮先頭セグメントのシリアルナンバーを読出要求信号生成部77へ出力する。
比較部96による比較結果はタイムスタンプ情報保持部91へ出力される。タイムスタンプ情報保持部98は、バッファ管理部74から出力されるタイムスタンプを受信する。タイムスタンプ情報保持部98は、タイムスタンプを記憶するためのタイムスタンプレジスタ98を備える。
タイムスタンプ情報保持部91は、シリアルナンバーレジスタ97の値が更新されたとき、更新後のシリアルナンバーを有するセグメントデータのタイムスタンプによって、タイムスタンプレジスタ98の値を更新する。この結果、タイムスタンプレジスタ98には、仮先頭セグメントのタイムスタンプが記憶される。
加算回路92は、タイムスタンプレジスタ98に記憶されたタイムスタンプに、CPUレジスタ70から読み込んだオフセット指示情報の値を加算する。加算回路92から出力されるタイムスタンプは、オフセット指示情報の値に対応する遅延時間分だけ仮先頭セグメントのタイムスタンプよりも遅い時期を示す。
オフセット指示情報の値は、例えば、上述の固定遅延量40と最大揺らぎ量42とを加えた期間の間にタイムスタンプカウンタ75がカウントする数以上の値であってよい。このようにオフセット指示情報を設定することにより、加算回路92から出力されるタイムスタンプは、仮先頭セグメントがスイッチ21へ送信された送信時期よりも、(固定遅延量40+最大揺らぎ量42)分だけ遅れた時期を示す。
比較部93は、タイムスタンプカウンタ75から出力される現在時点を示すカウント値と、加算回路92から出力されるタイムスタンプとを比較する。比較部93によって、仮先頭セグメントがスイッチ21へ送信された送信時期から、オフセット指示情報の値に対応する遅延時間が経過したか否かを判定することができる。
加算回路92から出力されるタイムスタンプがタイムスタンプカウンタ75から出力されるカウント値と等しいとき、ステートマシン94は、「TS状態」から「RO状態」へ遷移する。
図20は、ステートマシン94の状態遷移図である。加算回路92の出力とタイムスタンプカウンタ75の出力が等しいということは、仮先頭セグメントがスイッチ21へ送信された送信時期から(固定遅延+最大揺らぎ量)分の期間が経過したことを意味する。したがって、これより以降は仮先頭セグメントより早く送信されたセグメントデータが到着する見込みはないため、仮先頭セグメントは先頭セグメントであると判定される。したがってステートマシン94は、先頭セグメントが検出されたと判定して、「RO状態」へ遷移する。
ステートマシン94は、バッファ管理部74からバッファ状態信号を受信する。リオーダバッファ33−1が空になったときステートマシン94は、「RO状態」から「TS状態」へ遷移する。ステートマシン94は、「RO状態」及び「TS状態」のうち現在の状態を示す状態信号を読出要求信号生成部77へ出力する。
なお、スイッチインタフェース12−1が受信するODUセグメントが異なる複数のチャネル上を流れる信号であるとき、チャネル毎にセグメントデータをリオーダバッファ33に格納してよい。チャネル毎にセグメントデータをリオーダバッファ33に格納するためのスイッチインタフェースの構成例を図21及び図22に示す。
図21は、イ−グレス側のスイッチインタフェースの第2例の概略構成図であり、図22は、セグメントデータ・リオーダ部100−1〜100−kの概略構成図である。スイッチインタフェース31は、複数のチャネルのセグメントデータのリオーダリングをそれぞれ行う複数のセグメントデータ・リオーダ部100−1〜100−kを備える(総称してセグメントデータ・リオーダ部100と記載することがある)。
各セグメントデータ・リオーダ部100は、図16を参照して説明した書込制御部72と、バッファ管理部74と、タイムスタンプ同期管理部76と、読出要求信号生成部77と、読出制御部78と、リオーダバッファ33をそれぞれ備える。スイッチインタフェース31−1は、更に、チャネル分配部101とチャネル多重化部102を備える。
チャネル分配部101は、セグメント多重部71から出力されるスイッチセグメントを、チャネル毎に、各セグメントデータ・リオーダ部100へ分配する。チャネル多重化部102は、各セグメントデータ・リオーダ部100から出力されるセグメントデータを、多重化してフレーマ34−1へ出力する。
図23は、タイムスタンプ同期管理部76による先頭セグメントの検出処理の説明図である。なお別の実施の態様においては、下記のオペレーションCA〜CGの各オペレーションはステップであってもよい。また、図23において、記号「TS」はタイムスタンプを意味し、記号「SN」はシリアルナンバーを示す。
オペレーションCAにおいてセグメント多重化部71は、到着したスイッチセグメントを受信する。セグメント多重化部71は、スイッチセグメントを書込制御部72に出力する。
次のオペレーションCBと、オペレーションCC〜CGとは同時に実行されてもよい。また、オペレーションCBとオペレーションCC〜CGとは、どちらか一方を先に実行して他方を後に実行してもよい。オペレーションCBにおいてセグメント多重化部71は、受信したスイッチセグメントに含まれるセグメントデータをリオーダバッファ33へ書き込む。
オペレーションCCにおいてタイムスタンプ同期管理部76のシリアルナンバー判定部90は、ステートマシン94の状態が「TS状態」であるか否かを判定する。ステートマシン94の状態が「TS状態」であるとき(オペレーションCC:Y)、処理はオペレーションCDへ移行する。ステートマシン94の状態が「TS状態」でないとき(オペレーションCC:N)、タイムスタンプ同期管理部76は処理を終了する。
オペレーションCDにおいてシリアルナンバー判定部90は、到着したスイッチセグメントのヘッダに格納されていたシリアルナンバーを、バッファ管理部74から受信する。シリアルナンバー判定部90は、到着したスイッチセグメントが、スイッチインタフェース30−1が起動後に初めて、又はステートマシン94の状態が「TS状態」に遷移後に初めて受信したスイッチセグメントであるか否かを判定する。到着したスイッチセグメントが初めて受信したスイッチセグメントでないとき(オペレーションCD:N)、処理はオペレーションCEへ移行する。到着したスイッチセグメントが初めて受信したスイッチセグメントであるとき(オペレーションCD:Y)、処理はオペレーションCGへ移行する。
オペレーションCEにおいて揺らぎ監視部95は、受信したシリアルナンバーとシリアルナンバーレジスタ97の値との差が、所定の揺らぎ範囲内にあるか否かを判定する。受信したシリアルナンバーとシリアルナンバーレジスタ97の値との差が揺らぎ範囲にあるとき(オペレーションCE:Y)、処理はオペレーションCFへ移行する。受信したシリアルナンバーとシリアルナンバーレジスタ97の値との差が揺らぎ範囲にないとき(オペレーションCE:N)、タイムスタンプ同期管理部76は、ステートマシン94並びにレジスタ97及び98の状態を起動開始直後の状態へ戻し、処理を終了する。揺らぎ監視部95の処理により、不用意なシリアルナンバーが到着したことを検出して、フレーム伝送装置1の異常動作を検出することが可能となる。
オペレーションCFにおいて比較部96は、受信したシリアルナンバーとシリアルナンバーレジスタ97の値とを比較する。受信したシリアルナンバーがシリアルナンバーレジスタ97の値よりも小さいとき(オペレーションCF:Y)、処理はオペレーションADCGへ移行する。受信したシリアルナンバーがシリアルナンバーレジスタ97の値よりも小さくないとき(オペレーションCF:N)、タイムスタンプ同期管理部76は処理を終了する。
オペレーションCGにおいて比較部96は、受信したシリアルナンバーを仮先頭セグメントのシリアルナンバーとして、シリアルナンバーレジスタ97に記憶する。また、タイムスタンプ情報保持部91は、更新後の仮先頭セグメントのタイムスタンプによって、タイムスタンプレジスタ98の値を更新する。
なお、オペレーションCEにおける揺らぎ監視部95による判定は必ずしも必須ではなく、オペレーションCE及び揺らぎ監視部95を省略してもよい。また、オペレーションCEにおける揺らぎ監視部95による判定及び/又はオペレーションCFにおける比較部96の判定において、シリアルナンバーではなくタイムスタンプを用いてもよい。タイムスタンプを用いる場合、シリアルナンバーレジスタ97を省略してもよい。
図24は、ステートマシン94の状態の変更処理の説明図である。なお別の実施の態様においては、下記のオペレーションDA〜DFの各オペレーションはステップであってもよい。また、図24において、記号「TSレジスタ」はタイムスタンプレジスタを意味する。
オペレーションDAにおいてタイムスタンプカウンタ75は、タイミングパルス生成部3からのタイミングパルスを受信し、カウント値を初期値に更新する。
オペレーションDBにおいてステートマシン94は、TS状態にあるか否かを判定する。ステートマシン94の状態が「TS状態」であるとき(オペレーションDB:Y)、処理はオペレーションDCへ移行する。ステートマシン94の状態が「TS状態」でないとき(オペレーションDB:N)、処理はオペレーションDEへ移行する。
オペレーションDCにおいて比較部93は、タイムスタンプレジスタ98に記憶されるタイムスタンプの値及びオフセット指示情報の値を加算する加算回路92の出力と、タイムスタンプカウンタ75から出力されるカウント値とを比較する。加算回路92の出力とカウント値が等しいとき(オペレーションDC:Y)、処理はオペレーションDDへ移行する。加算回路92の出力とカウント値が等しくないとき(オペレーションDC:N)、処理は終了する。オペレーションDDにおいてステートマシン94は、「TS状態」から「RO状態」へ遷移する。
オペレーションDEにおいてステートマシン94は、リオーダバッファ33−1が空であるか否かを判定する。リオーダバッファ33−1が空であるとき(オペレーションDE:Y)、処理はオペレーションDFへ移行する。リオーダバッファ33−1が空でないとき(オペレーションDE:N)、処理は終了する。オペレーションDFにおいてステートマシン94は、「RO状態」から「TS状態」へ遷移する。
図25は、読出要求信号生成部77の処理の説明図である。なお別の実施の態様においては、下記のオペレーションEA〜EEの各オペレーションはステップであってもよい。
オペレーションEAにおいて読出要求信号生成部77は、ステートマシン94の状態を状態信号が示す値が「RO状態」であるか否かを判定する。ステートマシン94が「RO状態」であるとき(オペレーションEA:Y)、処理はオペレーションEBへ移行する。ステートマシン94が「RO状態」でないとき(オペレーションEA:N)、オペレーションEAが繰り返される。
オペレーションEBにおいて読出要求信号生成部77は、一定間隔でカウント値がインクリメントされるシェーピング用カウンタの値を参照する。読出要求信号生成部77は、シェーピング用カウンタの値が満了したか否か、すなわちシェーピング用カウンタの値が所定の閾値へ到達したか否かを判定する。この閾値の値はCPUレジスタ70に読み出し間隔情報として設定されている。
シェーピング用カウンタの値が満了したとき(オペレーションEB:Y)、処理はオペレーションECへ移行する。シェーピング用カウンタの値が満了していないとき(オペレーションEB:N)、処理はオペレーションEAへ戻る。
オペレーションECにおいて読出要求信号生成部77は、読出対象のシリアルナンバーを読み出すための読出要求信号を出力する。ステートマシン94の状態が「TS状態」から「RO状態」へ遷移した直後のとき、読出要求信号生成部77は、シリアルナンバー判定部90から出力される先頭セグメントのシリアルナンバーを、読出対象のシリアルナンバーとして出力する。
オペレーションEDにおいて読出要求信号生成部77は、読出対象のシリアルナンバーの値を1つ増加させる。オペレーションEEにおいて読出要求信号生成部77は、シェーピング用カウンタの値をリセットする。
図26の(A)〜図26の(H)は、実施例に係るセグメントデータの読み出し方法の説明図である。図26の(A)は、イングレス側のタイムスタンプカウンタ60によりカウントされるカウント値のタイムチャートを示し、図26の(B)はスイッチインタフェース12から出力されるスイッチセグメントのタイムチャートを示す。
図26の(C)はスイッチインタフェース31へ入力されるスイッチセグメントのタイムチャートを示し、図26の(D)はシリアルナンバーレジスタ97の値のタイムチャートを示し、図26の(E)はタイムスタンプレジスタ98の値のタイムチャートを示す。
図26の(F)はタイムスタンプレジスタ98の値にオフセット指示情報の値を加えた値のタイムチャートを示し、図26の(G)はイーグレス側のタイムスタンプカウンタ75から出力されるカウント値のタイムチャートを示す。図26の(H)は読出制御部78から出力されるセグメントデータのタイムチャートを示す。
図26の(B)に示す各矩形はスイッチセグメントを示し、矩形内の数字はそれぞれのスイッチセグメントのシリアルナンバーを示す。シリアルナンバー「1」のスイッチセグメントを先頭セグメントとし、時刻t1及びt2においてそれぞれ、シリアルナンバー「1」及び「2」のスイッチセグメントがスイッチインタフェース12からスイッチ21へ送信される場合を考える。
図26の(A)に示すように、時刻t1及びt2におけるタイムスタンプカウンタ60のカウントされるカウント値は、それぞれ「a」及び「b」であるので、これらシリアルナンバー「1」及び「2」のスイッチセグメントのヘッダ情報には、値「a」及び「b」のタイムスタンプが格納される。
図26の(C)に示すようにシリアルナンバー「1」及び「2」のスイッチセグメントは、それぞれ時刻t4及びt3においてスイッチインタフェース31で受信される。図26の(D)に示すようにシリアルナンバーレジスタ97には、時刻t3にて値「2」が入力され、時刻t4にてシリアルナンバーレジスタ97の値は「1」へ更新される。
また、図26の(E)に示すようにタイムスタンプレジスタ98には、時刻t3にて値「b」が入力され、時刻t4にてタイムスタンプレジスタ98の値は「a」へ更新される。
いま、固定遅延量40に最大揺らぎ量42を加えた期間が、「a」と「d」の差分に相当し、且つ「a」から「e」までに送信されたスイッチセグメントのタイムスタンプカウンタ60の値がそれぞれ等間隔であると仮定し、オフセット指示情報の値が「d−a」である場合を考える。図26の(F)に示すようにタイムスタンプレジスタ98の値にオフセット指示情報の値を加えた値は、時刻t3では値「b」より「d−a」(=「e−b」)分進んだ値「e−b」+「b」より「e」となり、時刻t4にて値は「d−a」+「a」より「d」となる。
このため、先頭セグメントが送信された時刻t1から、(固定遅延量40+最大揺らぎ量42)分の期間を経過した時刻t5にて、タイムスタンプレジスタ98の値にオフセット指示情報の値を加えた値と、タイムスタンプカウンタ75のカウント値とが一致する。この様子を図26の(F)及び図26の(G)に示す。
読出要求信号生成部77は、時刻t5から、読み出し間隔情報にて指示された間隔T毎に読出要求信号を発生させる。この結果、図26の(H)に示すように時刻t5から、セグメントデータの出力が開始される。
本実施例によれば、リオーダバッファ33−1に滞在するセグメントデータの滞在時間が低減される。フレーム伝送装置1がOTNフレームのスイッチングを行う伝送装置である場合には、許容遅延時間が規格によって定められているため、リオーダバッファ33−1における滞在時間の短縮により、フレーム伝送装置1の設計がより容易になる。
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
フレームを分割した複数のセグメントデータを前記フレームの宛先へそれぞれスイッチングする複数のスイッチから受信した前記セグメントデータを格納するバッファから、前記セグメントデータを読み出す処理を制御する信号処理回路であって、
前記バッファが空になった後に受信されるセグメントデータのうち最初に前記スイッチへ送信されたセグメントデータである先頭セグメントを検出する先頭検出部と、
前記先頭セグメントが前記スイッチへ送信された送信時期を取得する送信時期所得部と、
前記送信時期に応じて、前記セグメントデータを前記バッファから読み出す読出時期を決定する読出時期制御部と、
を備える信号処理回路。
(付記2)
前記読出時期制御部は、前記先頭セグメントの送信時期から所定期間が経過したとき、前記先頭セグメントの読出時期が到来したと判定する付記1に記載の信号処理回路。
(付記3)
前記読出時期制御部は、前記先頭セグメントの送信時期から所定期間が経過した後、一定期間が経過する度に各前記セグメントデータの読出時期が到来したと判定する付記1又は2に記載の信号処理回路。
(付記4)
前記先頭検出部は、前記セグメントデータに付加されるヘッダ情報に含まれる前記セグメントデータの送信順序情報に基づいて、前記バッファに格納される前記セグメントデータのうち送信順序が最も早いものを前記先頭セグメントとして検出する付記1〜3のいずれか一項に記載の信号処理回路。
(付記5)
前記先頭検出部は、前記セグメントデータに付加されるヘッダ情報に含まれる前記セグメントデータの送信時期情報に基づいて、前記バッファに格納される前記セグメントデータのうち、前記スイッチへ送信された送信時期が最も古いものを前記先頭セグメントとして検出する付記1〜3のいずれか一項に記載の信号処理回路。
(付記6)
第1状態と第2状態との間を遷移するステートマシンを備え、
前記ステートマシンは、前記バッファが空になったときに前記第1状態から前記第2状態へ遷移し、かつ前記先頭セグメントの読出時期が到来したときに前記第2状態から前記第1状態へ遷移する付記2又は3に記載の信号処理回路。
(付記7)
付記1〜6のいずれか一項に記載の前記信号処理回路と、
前記スイッチから前記セグメントデータを受信する受信部と、
前記バッファと、
を備えるスイッチインタフェースユニット。
(付記8)
付記7に記載のインタフェースユニットとしての第1インタフェースユニットと、
前記複数のスイッチと、
第2インタフェースユニットと、を備え、前記第2インタフェースユニットは、
フレームを受信するフレーム受信部と、
受信した前記フレームを複数の前記セグメントデータへ分割するフレーム分割部と、
前記複数のセグメントデータを前記複数のスイッチへ分配する分配部と、を有するフレーム伝送装置。
(付記9)
フレームを分割した複数のセグメントデータを前記フレームの宛先へそれぞれスイッチングする複数のスイッチから受信した前記セグメントデータを格納するバッファから、前記セグメントデータを読み出す方法であって、
前記バッファが空になった後に受信されるセグメントデータのうち最初に前記スイッチへ送信されたセグメントデータである先頭セグメントを検出し、
前記先頭セグメントが前記スイッチへ送信された送信時期を取得し、
前記送信時期に応じて、前記セグメントデータを前記バッファから読み出す読出時期を決定する、セグメントデータの読み出し方法。