セグメントデータ処理回路、インタフェースユニット、フレーム伝送装置及びセグメントデータの分配方法
【課題】フレームを複数のセグメントデータへ分割し、各セグメントデータを複数のスイッチによりスイッチングするとき、スイッチの通過に要するセグメントデータの遅延量のバラツキを低減する。
【解決手段】セグメントデータ処理回路12は、各セグメントデータがそれぞれ属するグループ毎に複数のスイッチ間の優先度を記憶する優先度記憶部110−1〜110−mと、受信したセグメントデータが属するグループを識別するグループ識別部41と、セグメントデータのグループについて記憶される優先度が所定条件以上のスイッチを、セグメントデータの分配先として選択するスイッチ選択部114と、選択されたスイッチのセグメントデータのグループについて記憶された優先度を下げる優先度制御部111を備える。
【解決手段】セグメントデータ処理回路12は、各セグメントデータがそれぞれ属するグループ毎に複数のスイッチ間の優先度を記憶する優先度記憶部110−1〜110−mと、受信したセグメントデータが属するグループを識別するグループ識別部41と、セグメントデータのグループについて記憶される優先度が所定条件以上のスイッチを、セグメントデータの分配先として選択するスイッチ選択部114と、選択されたスイッチのセグメントデータのグループについて記憶された優先度を下げる優先度制御部111を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フレームデータのスイッチングに関する。
【背景技術】
【0002】
受信したパケットデータ(以下、単に「パケット」と記す)を複数のセグメントデータに分割し、元のパケットの宛先に応じて各セグメントデータをそれぞれ複数のスイッチでスイッチングするパケット中継装置が提案されている。
【0003】
図1は、複数のスイッチを備えるパケット中継装置の概略構成図である。参照符号200はパケット中継装置を示し、参照符号210−1〜210−n及び230−1〜230−nはインタフェース(IF)カードを示し、参照符号220はスイッチカードを示す。参照符号211−1〜211−nは受信部を示し、参照符号212−1〜212−nはセグメントデータ分割部を示し、参照符号221−1〜221−mはスイッチを示す。参照符号231−1〜231−nはパケット組立部を示し、232−1〜232−nは送信部を示す。
【0004】
パケット中継装置200は、n個のインタフェースカード210−1〜210−nと、n個のインタフェースカード230−1〜230−nと、スイッチカード220を備える。各インタフェースカード210−1〜210−nでは、それぞれ、受信部211−1〜211−nがパケットを受信し、セグメントデータ分割部212−1〜212−nがパケットを複数のセグメントデータへ分割する。セグメントデータ分割部212−1〜212−nは、各セグメントデータを、スイッチカード220が備えるm個のスイッチ221−1〜221−mへ分配する。
【0005】
各スイッチ221−1〜221−mは、インタフェースカード230−1〜230−nのうち、元のパケットの宛先アドレスに応じて定まるいずれかのインタフェースカードへ、セグメントデータを転送するスイッチング処理を行う。
【0006】
セグメントデータを受信したインタフェースカード230−1〜230−nでは、パケット組立部231−1〜231−nがセグメントデータをパケットへ組み立てる。送信部232−1〜232−nはパケットを送信する。
【0007】
なお、受信したパケットの優先度に関する判定を行い、引続いてその後、判定された優先度に応じてパケットの制御処理を行うパケット通信制御方法が提案されている。この方法では、パケットの制御処理に引き続き、パケットが出力バッファに一時蓄積され、パケットの高優先度の順に、かつ、蓄積された順に送信される。
【0008】
また、入力回線から受信した可変長パケットを各入力回線インタフェースで固定長のセルに変換し、スイッチ部においてセル単位でスイッチングし、上記スイッチ部からの出力セルを各出力回線インタフェースで元の可変長パケットに変換して出力回線に送出するパケットスイッチが提案されている。このパケットスイッチは、各入力回線インタフェースに、固定長セルを出力回線毎に優先度別にキューイングし、各キューの蓄積セルを優先度に応じて選択的に出力するための制御手段を有する。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2008−160570号公報
【特許文献2】特開2001−69166号公報
【特許文献3】特開2000−151633号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
フレームデータ(以下、単に「フレーム」と記す)やパケットをセグメントデータへ分割して複数のスイッチによりスイッチングすると、スイッチの通過に要する時間がセグメントデータの間で相違することがある。この場合、宛先のインタフェースカードへセグメントデータが到着するまでの遅延量がセグメントデータ間で相違する。
【0011】
本件開示の装置及び方法は、フレームを複数のセグメントデータへ分割し、各セグメントデータを複数のスイッチによりスイッチングするとき、スイッチの通過に要するセグメントデータの遅延量のバラツキを低減することを目的とする。
【課題を解決するための手段】
【0012】
実施例の一形態によれば、フレームを分割した複数のセグメントデータをフレームの宛先へそれぞれスイッチングする複数のスイッチへ、複数のセグメントデータをそれぞれ分配するセグメントデータ処理回路が与えられる。このセグメントデータ処理回路は、セグメントデータがそれぞれ属するグループ毎に複数のスイッチ間の優先度を記憶する優先度記憶部と、受信したセグメントデータが属するグループを識別するグループ識別部と、セグメントデータのグループについて記憶される優先度が所定条件以上のスイッチを、セグメントデータの分配先として選択するスイッチ選択部と、選択されたスイッチのセグメントデータのグループについて記憶された優先度を下げる優先度制御部を備える。
【発明の効果】
【0013】
本件開示の装置及び方法によれば、スイッチの通過に要するセグメントデータの遅延量の、セグメントデータ間におけるバラツキが低減される。
【図面の簡単な説明】
【0014】
【図1】複数のスイッチを備えるパケット中継装置の概略構成図である。
【図2】複数のスイッチを備えるフレーム伝送装置の概略構成図である。
【図3】スイッチインタフェースの概略構成図である。
【図4】セグメント分配処理制御部の概略構成図である。
【図5】セグメントデータの分配方法の説明図である。
【図6】セグメントデータの分配状態を説明するタイムチャート(その1)である。
【図7】セグメントデータの分配状態を説明するタイムチャート(その2)である。
【図8】(A)及び(B)はセグメントデータの分配処理の説明図(その1)及び(その2)である。
【図9】(A)及び(B)はセグメントデータの分配処理の説明図(その3)及び(その4)である。
【図10】(A)及び(B)はセグメントデータの分配処理の説明図(その5)及び(その6)である。
【図11】(A)及び(B)はセグメントデータの分配処理の説明図(その7)及び(その8)である。
【図12】(A)及び(B)はセグメントデータの分配処理の説明図(その9)及び(その10)である。
【図13】(A)及び(B)はセグメントデータの分配処理の説明図(その11)及び(その12)である。
【図14】本実施例に係るスイッチインタフェースの概略構成図である。
【図15】本実施例に係るセグメント分配処理部の第1例の概略構成図である。
【図16】レーン決定部の概略構成図である。
【図17】本実施例に係るセグメントデータの分配方法の説明図(その1)である。
【図18】本実施例に係るセグメントデータの分配方法の説明図(その2)である。
【図19】本実施例に係るセグメントデータの分配状態を説明するタイムチャート(その1)である。
【図20】本実施例に係るセグメントデータの分配状態を説明するタイムチャート(その2)である。
【図21】図4のセグメント分配処理制御部によるセグメントデータの分配状態のシミュレーション結果である。
【図22】図4のセグメント分配処理制御部によるセグメントデータの遅延時間のバラツキのシミュレーション結果である。
【図23】図15のセグメント分配処理制御部によるセグメントデータの分配状態のシミュレーション結果である。
【図24】図15のセグメント分配処理制御部によるセグメントデータの遅延時間のバラツキのシミュレーション結果である。
【図25】本実施例に係るセグメント分配処理制御部の第2例の概略構成図である。
【発明を実施するための形態】
【0015】
上述の通り、フレームをセグメントデータへ分割して複数のスイッチによりスイッチングすると、宛先のインタフェースカードへセグメントデータが到着するまでの遅延量がセグメントデータ間で相違する。
【0016】
そこで、複数のスイッチ間の順序を予め定め、この順序に従ってセグメントデータを順次分配することによって、各スイッチに均等にセグメントデータを分配し、遅延量の相違を低減することが考えられる。このような分配方法を実施するフレーム伝送装置を図2に示す。
【0017】
図2は、複数のスイッチを備えるフレーム伝送装置の概略構成図である。フレーム伝送装置1は、受信したフレームを複数のセグメントデータに分割し、複数のスイッチによって、元のフレームの宛先に応じて各セグメントデータをそれぞれスイッチングする。
【0018】
参照符号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はスイッチを示す。
【0019】
フレーム伝送装置1は、制御部2と、n個のインタフェースカード10−1〜10−n(以下、インタフェースカード10と総称することがある)と、スイッチカード20と、n個のインタフェースカード30−1〜30−n(以下、インタフェースカード30と総称することがある)を備える。
【0020】
インタフェースカード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と総称することがある)を備える。
【0021】
なお、インタフェースカード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についても同様である。
【0022】
フレーム分割部11は、受信されたフレームを複数のセグメントデータへ分割する。フレーム伝送装置1によりスイッチングされるフレームは、例えば、時分割多重通信において、所定のタイムスロット上において固定された伝送レートで伝送される同期フレームであってよい。このような同期フレームとして、例えばOTN(Optical Transport Network)で転送されるODU(Optical Data Unit)フレームがある。受信フレームが上記のような同期フレームであるとき、フレームをセグメントデータへ分割するフレーム分割部11の機能は、例えば、受信信号から同期フレームをデマッピングするフレーマに搭載されてよい。
【0023】
スイッチインタフェース12は、セグメントデータにヘッダ情報を付加する。ヘッダ情報は、分割前のフレームの宛先に応じて定まる転送先のインタフェースカード30の指定情報を含む。スイッチインタフェース12は、例えば、制御部2によって予め設定された設定情報に従い、分割前のフレームの宛先に応じて、転送先のインタフェースカード30を指定する指定情報を生成してよい。
【0024】
スイッチインタフェース12は、ヘッダ情報を付したセグメントデータを、スイッチ21−1〜21−mへ分配する。参照符号s11〜s1m、s21〜s2m及びsn1〜snmは、スイッチインタフェース12からスイッチ21へセグメントデータを伝送する信号線である。以下の説明では、これらの信号線の各々を「レーン」と記すことがある。レーンsijは、スイッチインタフェース12−iからスイッチ21−jへセグメントデータを伝送するレーンである(記号i及びjは添え字である)。
【0025】
なお、1つのスイッチインタフェース12からスイッチ21へ接続されるレーン数は、スイッチ21の総数より多くてもよい。すなわち、1つのスイッチインタフェース12から1つのスイッチ21へセグメントデータを送信するために、複数本のレーンを使用してもよい。
【0026】
スイッチ21は、セグメントデータに付加されたヘッダ情報に基づいてセグメントデータをスイッチングする。すなわち、スイッチ21は、ヘッダ情報にて指定される転送先のインタフェースカード30へセグメントデータを転送する。
【0027】
スイッチインタフェース31は、受信したセグメントデータのヘッダ情報の終端処理を行う。参照符号r11〜rm1、r12〜rm2及びr1n〜rmnは、スイッチ21からスイッチインタフェース31へセグメントデータを伝送する信号線である。信号線rijは、スイッチ21−iからスイッチインタフェース31−jへセグメントデータを伝送する信号線である(記号i及びjは添え字である)。
【0028】
フレーム組立部32は、セグメントデータをフレームへ組み立てる。組み立てられたフレームは次の伝送装置へ向けて送信される。受信フレームが上記の同期フレームであるとき、セグメントデータをフレームへ組み立てるフレーム組立部32の機能は、例えば、同期フレームを送信信号へマッピングするフレーマに搭載されてよい。
【0029】
フレームから分割された各セグメントデータは、複数のグループのうちのいずれかに属するようにグループ分けされていることがある。例えばセグメントデータは、分割前のフレームによって情報が伝送されるチャネル毎にグループ分けされていてよい。この場合、複数のチャネルが、上記複数のグループの一例として挙げられる。
【0030】
以下の説明では、各セグメントデータが属するグループを「チャネル」と記載することがある。スイッチインタフェース12は、制御部2によって予め設定された設定情報に従って定めた、各セグメントデータが属するチャネルの指定情報をヘッダ情報に含める。ただし、セグメントデータをグループ分けする基準は、上記チャネルに限定されるものではなく、他の基準が採用されてもよい。
【0031】
図3は、スイッチインタフェース12−iの概略構成図である。iは1〜nのいずれかの値を持つ添え字である。参照符号40はFiFo(先入れ先出し:First In First Out)メモリを示し、参照符号41はチャネル識別部を示し、参照符号42は、セグメント分配処理制御部を示し、参照符号43はフリップフロップを示す。参照符号44−1〜44−mはFiFoメモリを示す(以下、総称してFiFoメモリ44と記載することがある)。スイッチインタフェース12−iは、FiFoメモリ40と、チャネル識別部41と、セグメント分配処理制御部42と、フリップフロップ43と、FiFoメモリ44を備える。
【0032】
FiFoメモリ40には、フレーム分割部11から出力されたセグメントデータが格納される。チャネル識別部41は、セグメントデータ開始信号SOS(Start Of Segment)のタイミングを基準にしてセグメントデータのヘッダ情報を読み取り、各セグメントデータのチャネルを識別する。セグメントデータ開始信号SOSは、各セグメントデータをFiFoメモリ40から読み出す処理の開始を指示する信号である。チャネル識別部41は、各セグメントデータのチャネルを示すチャネル信号s−CH−Numを、セグメント分配処理制御部42へ出力する。
【0033】
セグメント分配処理制御部42は、セグメントデータ開始信号SOSと、チャネル信号s−CH−Numと、FiFoメモリ44−1〜44−mからのバックプレッシャ信号BP[1:m]を入力する。バックプレッシャ信号BP[1:m]は、FiFoメモリ44−1〜44−mへの書き込みの禁止及び許可をそれぞれ示すバックプレッシャ信号BP[1]〜BP[m]の集合であってよい。
【0034】
セグメント分配処理制御部42は、セグメントデータ開始信号SOSと、チャネル信号s−CH−Numと、バックプレッシャ信号BP[1:m]と、予め設定された設定情報に基づく設定信号に応じて、セグメントデータを出力すべきレーンを、レーンsi1〜simのいずれかから選択する。セグメント分配処理制御部42によって、セグメントデータの分配先の各レーンを決定することにより、セグメントデータを分配するスイッチ21が決定される。
【0035】
セグメント分配処理制御部42は、選択したレーンへ送信するセグメントデータを格納するFiFoへの書き込みを指示する書込指示信号en[1:m]を出力する。書込指示信号en[1:m]は、FiFoメモリ44−1〜44−mへの書き込みをそれぞれ指示する書込指示信号en[1]〜en[m]の集合であってよい。
【0036】
フリップフロップ43は、セグメント分配処理制御部42による書込指示信号en[1:m]の生成処理の間、セグメントデータを保持する。
【0037】
FiFoメモリ44−1〜44−mは、それぞれ書込指示信号en[1]〜en[m]によってセグメントデータの書き込みが指示されたとき、フリップフロップ43から出力されるセグメントデータを格納する。FiFoメモリ44−1〜44−mは、格納したセグメントデータを、各レーンsi1〜simを経由してスイッチ21−1〜21−mへそれぞれ送信する。
【0038】
図4は、セグメント分配処理制御部42の概略構成図である。参照符号51−1〜51−kはレーン番号保持部を示し、参照符号52はレーン番号管理部を示し、参照符号53はレーン決定部を示す。セグメント分配処理制御部42は、レーン番号保持部51−1〜51−kと、レーン番号管理部52と、レーン決定部53を備える。
【0039】
レーン番号保持部51−1〜51−kは、k個のチャネルCH1〜CHkのそれぞれについて、各チャネルにぞれぞれ属するセグメントデータを出力すべきレーンの候補のレーン番号を保持する。レーン番号保持部51−1〜51−kのことを総称してレーン番号保持部51と記すことがある。
【0040】
レーン番号管理部52は、チャネル信号s−CH−Numが示すチャネルについてレーン番号を保持するレーン番号保持部51から、保持されているレーン番号を読み出す。信号CH1−ST、CH2−ST、CH3−ST…CHk−STは、それぞれレーン番号保持部51−1、51−2、51−3…51−kに保持されているレーン番号を指示する信号である。レーン番号管理部52は、読み出したレーン番号を示す信号STをレーン決定部へ出力する。
【0041】
レーン番号管理部52は、チャネル信号s−CH−Numが示すチャネルのセグメントデータを、次回出力すべきレーンのレーン番号を示すNEXT−VAL信号と、NEXT−VAL信号が設定されたことを示すNEXT−EN信号を、レーン決定部52から受信する。
【0042】
レーン番号管理部52は、レーン番号保持部51へNEXT−VAL信号を出力する。またレーン番号管理部52は、NEXT−VAL信号の値の書き込みを指示する書込指示信号を、チャネル信号s−CH−Numが示すチャネルのレーン番号保持部51へ出力する。信号CH1−EN、CH2−EN、CH3−EN…CHk−ENは、それぞれ、レーン番号保持部51−1、51−2、51−3…51−kへ、NEXT−VAL信号の値の書き込みを指示する書込指示信号である。
【0043】
レーン決定部53は、予め設定されている設定情報に基づく設定信号Load Share EN[1:m]と、バックプレッシャ信号BP[1:m]に基づいて、信号STにて指示されるレーンへ出力できるか否かを判定する。設定信号Load Share EN[1:m]は、各レーンsi1〜simのそれぞれについて使用可否を指定する信号である。
【0044】
レーン決定部53は、信号STが示すレーン番号から順に、バックプレッシャ信号BP[1:m]によって書き込み禁止されておらず、かつ設定信号Load Share EN[1:m]によって使用可能に設定されているレーンを検索する。レーンを検索する順序は、例えばレーン番号の降順や昇順といった予め設定された順序である。
【0045】
検索中に、レーン番号の範囲の一方の端まで判定し終わった場合には、レーン決定部53は、レーン番号の範囲の他方の端からまた検索を始め、信号STが示すレーンの1つ前の順序の番号まで検索したら検索を終了する。以下の説明では、レーン決定部53は、レーン番号の昇順でレーンの検索を行う。
【0046】
レーン決定部53は、バックプレッシャ信号で書き込み禁止されておらず、かつ設定信号によって使用可能に設定されるレーンを発見したとき、このレーンへ送信するセグメントデータを格納するFiFoへの書き込みを指示する信号en[1:m]を出力する。またレーン決定部53は、上記予め設定された順序において、発見されたレーンのレーン番号の次の順序のレーン番号を指示するNEXT−VAL信号を、レーン番号管理部52へ出力する。
【0047】
図5は、図4のセグメント分配処理制御部42により制御されるセグメントデータの分配方法の説明図である。別な実施の態様においては、下記のアクティビティAA〜AFの各アクティビティはステップであってもよい。また、符号ForkとJoinとの間にある並列する複数のアクティビティの列は、どれを先に実行してもよく、また同時に実行してもよい。
【0048】
アクティビティAAにおいては、チャネル識別部41は、入力されたセグメントデータが属するチャネルを識別し、チャネル信号s−CH−Numを、セグメント分配処理制御部42へ出力する。
【0049】
アクティビティABにおいてセグメント分配処理制御部42のレーン番号管理部52は、チャネル信号s−CH−Numに指示されるチャネルについてレーン番号保持部51に保持されたレーン番号を読み出す。セグメント分配処理制御部42は読み出したレーン番号を指示する信号STをレーン決定部53へ出力する。
【0050】
アクティビティACにおいてレーン決定部53は、信号STが示すレーン番号から順に、アクティブ状態にあるレーンを検索する。図4に示すレーン決定部53の説明において、アクティブ状態にあるレーンとは、現在、セグメントデータを送信できる状態にあるレーンをいう。レーン決定部53は、バックプレッシャ信号BP[1:m]によって書き込み禁止されておらず、かつ設定信号Load Share EN[1:m]によって使用可能に設定されているレーンを、アクティブ状態にあるレーンと判定する。
【0051】
アクティビティADにおいてレーン決定部53は、アクティブ状態にあるレーンを決定すると、このレーンへ送信するセグメントデータを格納するFiFoへの書き込みを指示する信号en[1:m]を出力する。
【0052】
アクティビティAEにおいてレーン決定部53は、アクティビティADで決定されたレーンの次のレーン番号を指示するNEXT−VAL信号を、レーン番号管理部52へ出力する。レーン番号管理部52は、チャネル信号s−CH−Numに指示されるチャネルについてレーン番号を保持するレーン番号保持部51に、NEXT−VAL信号の値を書き込む。
【0053】
信号en[1:m]により書き込みを指示されたFIFOには、アクティビティAFにおいてセグメントデータを格納する。
【0054】
図6及び図7は、セグメント分配処理制御部42により分配されるセグメントデータの分配状態を説明するタイムチャートである。図6は、図示された時刻t4より前の状態の説明に使用され、図7は、図示された時刻t4以降の状態の説明に使用される。
【0055】
本例では、インタフェースカード10の数が4個であり、インタフェースカード30の数が4個である場合を想定する。また本例では、スイッチ21の数は4個であり、1つのスイッチインタフェース12からスイッチ21へ接続されるレーン数は4本であり、セグメントデータが4つのチャネルにグループ化されている場合を想定する。また、本例では、設定信号Load Share EN[1:4]が、4本のレーン全てについて使用できると指定していると想定する。
【0056】
信号Aは、入力されたセグメントデータを示す。各矩形内の説明「CHx(y)」は、それぞれ矩形で示される個々のセグメントデータが、チャネルCHxに属する第y番目のセグメントデータであることを示す(記号x及びyを添え字である)。また無地、梨地ハッチング、横線ハッチング及び斜め線ハッチングの矩形は、このセグメントデータが、それぞれインタフェース30−1、30−2、30−3及び30−4へ転送されるセグメントであることを示す。
【0057】
信号B〜Eは、それぞれレーン番号保持部51−1〜51−4に保持されるレーン番号を示す。時刻t1では、レーン番号保持部51−1〜51−4に、レーン番号「1」が格納されていると想定する。信号F〜Iは、各FiFoメモリ44−1〜44−4への書き込みをそれぞれ指示する書込指示信号en[1]〜en[4]を示す。チャートJ〜Mは、セグメントデータによる各FiFoメモリ44−1〜44−4の使用状態を示す。
【0058】
例えば、時刻t1において、チャネルCH1の1番目のセグメントデータの処理が行われる。チャネルCH1についてセグメントデータを送信するレーンの候補を保持するレーン番号保持部51−1には、レーン番号「1」が格納されている。
【0059】
レーン決定部53は、レーン番号保持部51−1から読み出されたレーン番号「1」から昇順に、バックプレッシャ信号BP[1:4]によって禁止されていないレーン番号を検索する。時刻t1では、FiFoメモリ44−1〜44−4には他のセグメントデータが格納されておらず、バックプレッシャ信号BP[1]は、FiFoメモリ44−1への書き込みを許可する。
【0060】
このため、レーン決定部53は、セグメントデータを送信するレーンとしてレーン「1」を決定する。レーン決定部53は、FiFoメモリ44−1へのセグメントデータの書き込みを指示する書込指示信号en[1]の値を、「書き込みしない」ことを示す「0」から「書き込みを行う」ことを示す「1」へ変更する。
【0061】
この結果、チャネルCH1の1番目のセグメントデータは、FiFoメモリ44−1へ書き込まれる。セグメントデータがあるFiFoメモリ44へ格納されている間、バックプレッシャ信号BP[1:4]は、このFiFoへの書き込みを禁止する。
【0062】
説明の簡単のため、便宜上、以下の説明において、FiFoへの書き込みを禁止するバックプレッシャ信号BP[1:4]は、FiFoメモリ44に未送信のセグメントデータが1個でも格納されている場合に生成される。但し、バックプレッシャ信号BP[1:4]の生成条件は、この条件に限定されるものではなく、例えば、2個以上である所定個の未送信のセグメントデータが格納されているときに生成されてもよい。
【0063】
また、レーン番号保持部51−1の値は、セグメントデータが送信されるレーン番号「1」の次の番号である「2」に更新される。
【0064】
また、例えば時刻t2において、チャネルCH3の1番目のセグメントデータの処理が行われる。チャネルCH3についてセグメントデータを送信するレーンの候補を保持するレーン番号保持部51−3には、レーン番号「1」が格納されている。
【0065】
レーン決定部53は、レーン番号保持部51−3から読み出されたレーン番号「1」から昇順に、バックプレッシャ信号BP[1:4]によって禁止されていないレーン番号を検索する。時刻t2では、FiFoメモリ44−1及び44−2に他のセグメントデータが格納されており、バックプレッシャ信号BP[1]及びBP[2]により、FiFoメモリ44−1及び44−2への書き込みが禁止される。
【0066】
このためレーン決定部53は、レーン「1」及びレーン「2」をスキップして、セグメントデータを送信するレーンとしてレーン「3」を決定する。レーン決定部53は、FiFoメモリ44−3へのセグメントデータの書き込みを指示する書込指示信号en[3]の値を、「0」から「1」へ変更する。
【0067】
この結果、チャネルCH3の1番目のセグメントデータは、FiFoメモリ44−3へ書き込まれる。レーン番号保持部51−3の値は、セグメントデータが送信されるレーン番号「3」の次の番号である「4」に更新される。
【0068】
また例えば時刻t3において、チャネルCH3の2番目のセグメントデータの処理が行われる。チャネルCH3についてセグメントデータを送信するレーンの候補を保持するレーン番号保持部51−3には、レーン番号「4」が格納されている。
【0069】
レーン決定部53は、レーン番号「4」から昇順に、バックプレッシャ信号BP[1:4]によって禁止されていないレーン番号を検索する。時刻t3では、FiFoメモリ44−4に格納されたチャネルCH4の1番目のセグメントデータの送信が完了しており、FiFoメモリ44−4が空になる。
【0070】
このためレーン決定部53は、セグメントデータを送信するレーンとしてレーン「4」を決定する。レーン決定部53は、書込指示信号en[4]の値を、「0」から「1」へ変更する。この結果、チャネルCH3の2番目のセグメントデータは、FiFoメモリ44−4へ書き込まれる。レーン番号保持部51−3の値は、セグメントデータが送信されるレーン番号「4」の次の番号である「1」に更新される。
【0071】
また例えば時刻t5において、チャネルCH3の3番目のセグメントデータの処理が行われる。チャネルCH3についてセグメントデータを送信するレーンの候補を保持するレーン番号保持部51−3には、レーン番号「1」が格納されている。
【0072】
レーン決定部53は、レーン番号「1」から昇順に、バックプレッシャ信号BP[1:4]によって禁止されていないレーン番号を検索する。時刻t5では、FiFoメモリ44−1、44−3及び44−4には他のセグメントが格納されている。
【0073】
このためレーン決定部53は、レーン「1」をスキップして、セグメントデータを送信するレーンとしてレーン「2」を決定する。レーン決定部53は、書込指示信号en[2]の値を、「0」から「1」へ変更する。この結果、チャネルCH3の3番目のセグメントデータは、FiFoメモリ44−2へ書き込まれる。レーン番号保持部51−3の値は、セグメントデータが送信されるレーン番号「2」の次の番号である「3」に更新される。
【0074】
また例えば時刻t6において、チャネルCH3の4番目のセグメントデータの処理が行われる。チャネルCH3についてセグメントデータを送信するレーンの候補を保持するレーン番号保持部51−3には、レーン番号「3」が格納されている。
【0075】
レーン決定部53は、レーン番号「3」から昇順に、バックプレッシャ信号BP[1:m]によって禁止されていないレーン番号を検索する。時刻t6では、FiFoメモリ44−3が空いている。
【0076】
このためレーン決定部53は、セグメントデータを送信するレーンとしてレーン「3」を決定する。レーン決定部53は、書込指示信号en[3]の値を、「0」から「1」へ変更する。この結果、チャネルCH3の4番目のセグメントデータは、FiFoメモリ44−3へ書き込まれる。レーン番号保持部51−3の値は、セグメントデータが送信されるレーン番号「3」の次の番号である「4」に更新される。
【0077】
図6及び図7に示す順序で処理されるチャネルCH1の第2〜5番目のセグメントデータ、並びにチャネルCH2及びCH4の第1〜4番目のセグメントデータも、同様に分配する。この結果、FiFoメモリ44−1〜44−4がそれぞれ設けられる4つのレーンs1〜s4に分配される各チャネルCH1〜CH4毎のセグメントデータ数は以下の通りとなる。
【0078】
レーンs1に分配されるCH1〜CH4のセグメントデータの数は、それぞれ2個、1個、0個及び1個である。レーンs2に分配されるCH1〜CH4のセグメントデータの数は、それぞれ1個、2個、1個及び0個である。レーンs3に分配されるCH1〜CH4のセグメントデータの数は、それぞれ1個、1個、2個及び0個である。レーンs4に分配されるCH1〜CH4のセグメントデータの数は、それぞれ1個、0個、1個及び2個である。
【0079】
このように、図4のセグメント分配処理制御部42によるセグメントデータの分配方法によれば、各レーンに分配される各チャネルCH1〜CH4毎のセグメントデータ数が、各レーンによって偏ることになる。このセグメントデータの分配数の偏りによって、以下の説明のとおり、同一チャネル内のセグメントデータ同士の間における、スイッチカード20の通過に要する遅延時間のバラツキが生じることがある。
【0080】
図8の(A)、図8の(B)、図9の(A)、図9の(B)、図10の(A)、図10の(B)、図11の(A)、図11の(B)、図12の(A)、図12の(B)、図13の(A)及び図13の(B)は、セグメントデータの分配処理の説明図である。これらの図は、図6及び図7による説明と同じ前提でセグメントデータを処理した場合に、各セグメントデータが通過する経路を示す。
【0081】
図8の(A)、図8の(B)、図9の(A)及び図9の(B)は、スイッチインタフェース12−1〜12−4における各セグメントデータの分配状態を示す。各矩形が1つのセグメントデータを示し、矩形内の数字は、個々のセグメントデータが、各チャネルCHの何番目のセグメントデータであることを示す。
【0082】
また無地、梨地ハッチング、横線ハッチング及び斜め線ハッチングの矩形は、このセグメントデータが、それぞれインタフェース30−1、30−2、30−3及び30−4へ転送されるセグメントであることを示す。また実線、破線、一点鎖線及び二点鎖線の矩形は、このセグメントデータが、それぞれインタフェース10−1、10−2、10−3及び10−4から送信されるセグメントであることを示す。
【0083】
説明の簡単のため、各セグメントデータが属するチャネルに関する表記を、これらの図から省略した。各セグメントデータの順序は図6及び図7に示す順序と同じ順序であり、各セグメントデータが属するチャネルは、図6及び図7を参照して説明した各セグメントデータと同様である。セグメントデータに関する上記の表記法は、図10の(A)、図10の(B)、図11の(A)、図11の(B)、図12の(A)、図12の(B)、図13の(A)及び図13の(B)においても同様である。
【0084】
図面の理解の容易のため、便宜上、図8の(A)〜図13の(B)による下記の説明では、送信インタフェースカード10と受信インタフェースカード30の組み合わせが同じセグメントデータは、同じチャネルに属するセグメントデータとして説明を行う。すなわち、矩形の線パターン及びハッチングパターンの組み合わせが同じセグメントデータが、同じチャネルに属するとして以下の説明を行う。
【0085】
また、図8の(A)〜図13の(B)の各図において、図面の右側にあるセグメントデータほど、より早い時期に処理、送受信、各FiFoやバッファに格納されるセグメントデータを示す。図面の左側にあるセグメントデータほど、遅い時期に処理、送受信又は格納されるセグメントデータを示す。
【0086】
各スイッチインタフェース12−1〜12−4は、図6及び図7に示す順序と同じ順序でセグメントデータ列60〜63を処理し、各セグメントデータは、各スイッチインタフェース12の各FiFoメモリ44−1〜44−4へ分配される。各FiFoメモリ44−1〜44−4へ分配されるセグメントデータのチャネル、宛先インタフェースカード30及び順番は、図6及び図7を参照して説明したものと同様である。
【0087】
図10の(A)、図10の(B)、図11の(A)及び図11の(B)は、スイッチ21−1〜21−4において、スイッチング後に出力バッファ22−1〜22−4に格納されるセグメントデータの順序を示す。参照符号22−1〜22−4は、それぞれスイッチインタフェース31−1〜31−4へ出力するセグメントデータを格納する出力バッファである。
【0088】
参照符号64は、スイッチ21−1の出力バッファ22−1へ格納されるセグメントデータ列を示し、参照符号65は、スイッチ21−1の出力バッファ22−2へ格納されるセグメントデータ列を示す。参照符号66は、スイッチ21−1の出力バッファ22−4へ格納されるセグメントデータ列を示す。
【0089】
参照符号67は、スイッチ21−2の出力バッファ22−1へ格納されるセグメントデータ列を示し、参照符号68は、スイッチ21−2の出力バッファ22−2へ格納されるセグメントデータ列を示す。参照符号69は、スイッチ21−2の出力バッファ22−3へ格納されるセグメントデータ列を示す。
【0090】
参照符号70は、スイッチ21−3の出力バッファ22−1へ格納されるセグメントデータ列を示し、参照符号71は、スイッチ21−3の出力バッファ22−2へ格納されるセグメントデータ列を示す。参照符号72は、スイッチ21−3の出力バッファ22−3へ格納されるセグメントデータ列を示す。
【0091】
参照符号73は、スイッチ21−4の出力バッファ22−1へ格納されるセグメントデータ列を示し、参照符号74は、スイッチ21−4の出力バッファ22−3へ格納されるセグメントデータ列を示す。参照符号75は、スイッチ21−4の出力バッファ22−4へ格納されるセグメントデータ列を示す。
【0092】
各レーンに分配される各チャネル毎のセグメントデータ数が各レーンによって偏ると、、各スイッチを経由するチャネル毎のセグメントデータの数が偏る。また、同じチャネルのセグメントデータは、同じインタフェースカード30へ送信される。したがって、チャネル毎のセグメントデータの数の偏りによって、出力バッファ22−1〜22−4に格納されるセグメントデータ数に偏りが生じる。図10の(A)〜図11の(B)の例では、スイッチ21−1のバッファ22−1、スイッチ21−2のバッファ22−2、スイッチ21−3のバッファ22−3、スイッチ21−4のバッファ22−4にデータが集中している。一方で、スイッチ21−1のバッファ22−3、スイッチ21−2のバッファ22−4、スイッチ21−3のバッファ22−4、スイッチ21−4のバッファ22−2に格納されるデータは少ない。
【0093】
図12の(A)、図12の(B)、図13の(A)及び図13の(B)は、スイッチインタフェース31−1〜31−4へ到着する各セグメントデータの到着順序を示す。参照符号76は、スイッチ21−1からスイッチインタフェース31−1へ到着するセグメントデータ列を示し、参照符号77は、スイッチ21−2からスイッチインタフェース31−1へ到着するセグメントデータ列を示す。参照符号78は、スイッチ21−3からスイッチインタフェース31−1へ到着するセグメントデータ列を示し、参照符号79は、スイッチ21−4からスイッチインタフェース31−1へ到着するセグメントデータ列を示す。
【0094】
参照符号80は、スイッチ21−1からスイッチインタフェース31−2へ到着するセグメントデータ列を示し、参照符号81は、スイッチ21−2からスイッチインタフェース31−2へ到着するセグメントデータ列を示す。参照符号82は、スイッチ21−3からスイッチインタフェース31−2へ到着するセグメントデータ列を示す。
【0095】
参照符号83は、スイッチ21−2からスイッチインタフェース31−3へ到着するセグメントデータ列を示し、参照符号84は、スイッチ21−3からスイッチインタフェース31−3へ到着するセグメントデータ列を示す。参照符号85は、スイッチ21−4からスイッチインタフェース31−3へ到着するセグメントデータ列を示す。
【0096】
参照符号86は、スイッチ21−1からスイッチインタフェース31−4へ到着するセグメントデータ列を示し、参照符号87は、スイッチ21−4からスイッチインタフェース31−4へ到着するセグメントデータ列を示す。
【0097】
図10の(B)に示すとおり、スイッチインタフェース31−2へ送信される4番目のセグメントデータは、セグメントデータの通過量が多い出力バッファ22−2を通過する。このため図12の(B)に示す通り、スイッチインタフェース31−2へ到着する時刻が、他の順番1〜3のセグメントデータよりも遅延量が大きくなる。
【0098】
また、図11の(A)に示すとおり、スイッチインタフェース31−3へ送信される4番目のセグメントデータは、セグメントデータの通過量が多い出力バッファ22−3を通過する。このため図13の(A)に示す通り、スイッチインタフェース31−3へ到着する時刻が、他の順番1〜3のセグメントデータよりも遅延量が大きくなる。
【0099】
また、図11の(B)に示すとおり、スイッチインタフェース31−4へ送信される3番目のセグメントデータは、セグメントデータの通過量が多い出力バッファ22−4を通過する。このため図13の(B)に示す通り、スイッチインタフェース31−4へ到着する時刻が、他の順番1及び2のセグメントデータよりも遅延量が大きくなる。
【0100】
上記の分配方法では、複数のスイッチ間の順序を予め定め、この順序にしたがって、前回セグメントデータを分配した次の順位のスイッチを、セグメントデータを分配すべきスイッチとして選択する。もし、選択されたスイッチへセグメントデータを分配できないときは、選択されたスイッチをスキップし、次の順位のスイッチをセグメントデータを分配すべきスイッチとして選択する。このような方法によって、上記の分配方法は、各スイッチに均等にセグメントデータを分配することを意図する。
【0101】
しかしながら、この方法によれば、各セグメントデータが複数のグループにグループ分けされている場合には、仮にグループ毎に上記分配方法を実施したとしても、上述のように、各グループのセグメントデータが各スイッチに均等に分配されない。図6及び図7の説明のように、実際には、他のグループのセグメントデータの処理に起因してスイッチの選択順番のスキップが生じるからである。図8の(A)〜図13の(B)にて説明したように、チャネル毎の分配先スイッチの不均等に起因して、同一グループ内のセグメントデータ同士の間において、スイッチカード20内での滞留時間のバラツキが生じる。このため、同一グループ内のセグメントデータ同士の間において、インタフェースカード30へ到着するまでの遅延時間にバラツキが生じる。
【0102】
図2を参照する。インタフェースカード30へ到着するセグメントデータの遅延量にバラツキがあると、遅延の大きさによっては、フレーム組立部32がフレームを組み立てる際にセグメントデータのアンダーフローが生じる恐れがある。例えば、時分割多重通信で固定レートで伝送される同期フレームには、フレームの空きが許されないものがある。このような同期フレームには上述のODUフレームがある。
【0103】
以下に説明する本件開示の装置及び方法は、同一グループ内のセグメントデータ同士の分配先スイッチの不均等を低減する。図14は、本実施例に係るスイッチインタフェースの概略構成図である。スイッチインタフェース12−i(iは1〜nのいずれかの値である添え字である)は、図2に示すフレーム伝送装置1のインタフェースカード10−iに設けられる。
【0104】
参照符号40はFiFoメモリを示し、参照符号41はチャネル識別部を示し、参照符号42は、セグメント分配処理制御部を示し、参照符号43はフリップフロップを示し、参照符号100はセグメント分配部を示す。参照符号44−1〜44−mはFiFoメモリを示す。スイッチインタフェース12−iは、FiFoメモリ40と、チャネル識別部41と、セグメント分配処理制御部42と、フリップフロップ43と、セグメント分配部100を備える。FiFoメモリ40、チャネル識別部41及びフリップフロップ43の動作は、図3を参照して説明したそれぞれの動作と同様である。
【0105】
セグメント分配処理制御部42は、セグメントデータ開始信号SOSと、チャネル信号s−CH−Numと、バックプレッシャ信号BP[1:m]を入力する。バックプレッシャ信号BP[1:m]は、各レーンsi1〜simへのセグメントデータの分配の禁止及び許可をそれぞれ示すバックプレッシャ信号BP[1]〜BP[m]の集合であってよい。
【0106】
セグメント分配処理制御部42は、セグメントデータ開始信号SOSと、チャネル信号s−CH−Numと、バックプレッシャ信号BP[1:m]と、予め設定された設定情報に基づく設定信号に応じて、セグメントデータを出力すべきレーンを、レーンsi1〜simのいずれかから選択する。セグメント分配処理制御部42によって、セグメントデータの分配先の各レーンを決定することにより、セグメントデータを分配するスイッチ21が決定される。セグメント分配処理制御部42は、セグメントデータを分配するレーンを指示する指示信号en[1:m]を、セグメント分配部100へ出力する。
【0107】
セグメント分配部100は、セグメント分配処理制御部42から出力される指示信号en[1:m]により指定されるレーンへ、フリップフロップ43から読み出したセグメントデータを出力する。
【0108】
例えば、セグメント分配部100は、FiFoメモリ44−1〜44−mを備えていてよい。このとき、指示信号en[1:m]は、FiFoメモリ44−1〜44−mへの書き込みをそれぞれ指示する書込指示信号en[1]〜en[m]の集合であってよい。この場合、上記バックプレッシャ信号BP[1:m]は、FiFoメモリ44−1〜44−mへの書き込みの禁止及び許可をそれぞれ示すバックプレッシャ信号BP[1]〜BP[m]の集合であってよい。
【0109】
FiFoメモリ44−1〜44−mは、それぞれ書込指示信号en[1]〜en[m]によってセグメントデータの書き込みが指示されたとき、セグメントデータを格納する。FiFoメモリ44−1〜44−mは、格納したセグメントデータを、各レーンsi1〜simを経由してスイッチ21−1〜21−mへそれぞれ送信する。
【0110】
図15は、本実施例に係るセグメント分配処理部の第1例の概略構成図である。参照符号101−1〜101−kはアクティブレーン判定部を示し、参照符号102−1〜102−kはレーン決定部を示し、参照符号103は指示信号生成部を示す。
【0111】
セグメント分配処理部42は、アクティブレーン判定部101−1〜101−k(以下、アクティブレーン判定部101と総称することがある)と、レーン決定部102−1〜102−k(以下、レーン決定部102と総称することがある)と、指示信号生成部103を備える。アクティブレーン判定部101及びレーン決定部102は、セグメントデータが属するk個のチャネルCH1〜CHk毎に、セグメント分配処理部42に設けられている。
【0112】
アクティブレーン判定部101は、レーンsi1〜simのいずれのレーンがアクティブ状態にあるか否かを判定する。実施例に関する以下の説明において、アクティブ状態のレーンとは、送信対象のセグメントデータを送信できるレーンをいう。
【0113】
アクティブレーン判定部101は、バックプレッシャ信号BP[1:m]によって分配を禁止されておらず、かつ設定信号Load Share EN[1:m]によって使用可能に設定されているレーンを、アクティブ状態のレーンと判定する。設定信号Load Share EN[1:m]は、予め設定されている設定情報に基づき、各レーンsi1〜simのそれぞれについて使用可否を指定する信号である。
【0114】
各アクティブレーン判定部101−1〜101−kは、アクティブ状態のレーンを指示するアクティブレーン指示信号CH1−Active[1:m]〜CHk−Active[1:m]を出力する。アクティブレーン指示信号CHj−Active[1:m]は(記号jは添え字である)、レーンsi1〜sim毎に、各レーンを経由するセグメントデータの送信の可否をそれぞれ指示する各信号の集合であってよい。
【0115】
各チャネルCH1〜CHk用のレーン決定部102−1〜102−kは、アクティブレーン指示信号CH1−Active[1:m]〜CHk−Active[1:m]をそれぞれ受信する。チャネル信号s−CH−Numによって示されるチャネルがCHxであるとき(記号xは添え字である)、レーン決定部102−xがアクティブ状態となる。レーン決定部102−xは、アクティブ状態にあるレーンの中からセグメントデータを送出するレーンを選択する。レーン決定部102−xは、セグメントデータを送出するレーンを示すレーン番号指示信号CHx−STを出力する。
【0116】
指示信号生成部103は、チャネル信号s−CH−Numが示すチャネルCHxのレーン決定部102−xから出力されるレーン番号指示信号CHx−STを入力する。指示信号生成部103は、レーン番号指示信号CHx−STにより指示されるレーンを指示する指示信号en[1:m]を生成する。
【0117】
図16は、レーン決定部102−1の概略構成図である。他のレーン決定部102−2〜102−kも同様の構成を有する。参照符号110−1〜110−mはレーン番号保持部を示し、参照符号111はフリップフロップを示し、参照符号112はアクティブレーン指示信号保持部を示し、参照符号113はレーン選択部を示し、参照符号114は優先度制御部を示す。
【0118】
レーン決定部102−1は、レーン番号保持部110−1〜110−m(以下、総称してレーン番号保持部110と記すことがある)と、フリップフロップ111と、アクティブレーン指示信号保持部112と、レーン選択部113と、優先度制御部114を備える。
【0119】
レーン番号保持部110−1〜110−mは、それぞれ、m個の各レーンsi1〜simのいずれかのレーン番号を保持する。各レーン番号保持部110−1〜110−mが保持するレーン番号は、それぞれ、スイッチインタフェース12によりセグメントデータを分配される優先順位がそれぞれ第1位〜第m位であるレーンのレーン番号である。すなわち、レーン番号保持部110−1に保持されるレーンの優先順位は第1位で優先度が最も高く、レーン番号保持部110−mに保持されるレーンの優先順位は第m位で優先度が最も低い。
【0120】
各レーン番号保持部110−1〜110−mは、それぞれが保持しているレーン番号を示す信号DT[1]〜DT[m]をレーン選択部113及び優先度制御部114へ出力する。
【0121】
フリップフロップ111は、クロック信号の立ち上がりによってラッチしたセグメントデータ開始信号SOSの値を、次のクロック信号の立ち上がりまで保持する。フリップフロップ111により保持された信号SOSがセグメントデータの開始を示すとき、アクティブレーン指示信号保持部112は、現在入力されているアクティブレーン指示信号CH1−Active[1:m]をラッチする。アクティブレーン指示信号保持部112によりラッチされているアクティブレーン指示信号をLatch−Active[1:m]と記す。
【0122】
チャネル信号s−CH−Numによってレーン決定部102−1がアクティブ状態になったとき、レーン選択部113は、信号Latch−Active[1:m]によりアクティブ状態にあると指示されるレーンの中のいずれかのレーンを選択する。このときレーン選択部113は、アクティブ状態にあるレーンのうち、レーン番号保持部110に保持される優先順位が所定条件以上のレーンのいずれかを選択する。
【0123】
例えば、レーン選択部113は、アクティブ状態にあるレーンのうち、最も優先順位が高いレーンを選択する。他の実施例では、レーン選択部113は、アクティブ状態にあるレーンのうち2番目や3番目の順位のレーンを選択してもよい。さらに他の実施例では、レーン選択部113は、アクティブ状態にあるレーンのうち、優先順位が所定順位よりも高い複数のレーンを選び、この中から他の基準によっていずれかのレーンを選択してもよい。以下に説明する例では、便宜上、レーン選択部113は、アクティブ状態にあるレーンのうち、最も優先順位が高いレーンを選択する。
【0124】
レーン選択部113は、選択したレーンのレーン番号を示すレーン番号指示信号CH1−STを指示信号生成部103へ出力する。レーン選択部113は、レーン番号指示信号CH1−STを出力したとき、入れ替えトリガ信号を優先度制御部114に出力する。
【0125】
優先度制御部114は、入れ替えトリガ信号を受信したとき、レーン番号指示信号CH1−STで指示したレーンの優先順位を下げるように、レーン番号保持部110−1〜110−mによって保持される優先順位を変更する。このとき、優先度制御部114は、レーン番号指示信号CH1−STで指示したレーンよりも高い優先順位のレーンの優先順位が維持されるように、優先順位を変更する。また、優先度制御部114は、レーン番号指示信号CH1−STで指示したレーンよりも低い優先順位のレーンの優先順位を繰り上げる。
【0126】
以下に説明する例では、便宜上、優先度制御部114は、レーン番号指示信号CH1−STで指示したレーンの優先順位が最低になるように優先順位を変更する。しかし、本件開示の装置及び方法はこのような例に限定されるものではない。レーン番号指示信号CH1−STで指示したレーンの優先順位が下がることにより、後述する本件開示の装置及び方法の効果が生じる。
【0127】
優先度制御部114は、新規レーン番号信号NL[1]〜NL[m]及びレーン番号書き込み信号EN[1]〜EN[m]を、各レーン番号保持部110−1〜110−mへ出力する。新規レーン番号信号NL[1]〜NL[m]は、優先順位の変更後に各レーン番号保持部110−1〜110−mへそれぞれ書き込むべき、新たなレーン番号を指示する。レーン番号書き込み信号EN[1]〜EN[m]は、各レーン番号保持部110−1〜110−mへ、新規レーン番号信号NL[1]〜NL[m]の値の書き込みを指示する信号である。
【0128】
図17及び図18は、本実施例に係るセグメントデータの分配方法の説明図である。別な実施の態様においては、下記のアクティビティBA〜BB及びCA〜CFの各アクティビティはステップであってもよい。また、符号ForkとJoinとの間にある並列する複数のアクティビティの列は、どれを先に実行してもよく、また同時に実行してもよい。
【0129】
図17は、各アクティブレーン判定部101−1〜101−kによる、アクティブレーン指示信号CH1−Active[1:m]〜CHk−Active[1:m]の生成処理を示す。いま、記号xをk個のチャネルCH1〜CHkのいずれかを指定する添え字(x=1〜k)とする。
【0130】
アクティビティBAにおいてアクティブレーン判定部101−xは、バックプレッシャ信号BP[1:m]及び、予め設定されている設定情報に基づく設定信号Load Share EN[1:m]を監視する。
【0131】
アクティビティBBにおいてアクティブレーン判定部101−xは、バックプレッシャ信号BP[1:m]及び設定信号Load Share EN[1:m]に基づいて、レーンsi1〜simのいずれのレーンがアクティブ状態にあるかを判定する。アクティブレーン判定部101−xは、アクティブ状態のレーンを指示するアクティブレーン指示信号CHx−Active[1:m]を生成し、レーン決定部102−xへ出力する。
【0132】
続いて図18を参照する。アクティビティCAにおいてチャネル識別部41は、入力されたセグメントデータが属するチャネルを識別し、チャネル信号s−CH−Numを、セグメント分配処理制御部42へ出力する。チャネル識別部41により識別されたチャネルをCHxと示す。記号xは、チャネルCH1〜CHkのいずれかを指定する添え字である。
【0133】
アクティビティCBにおいて、チャネル信号s−CH−Numによって示されるチャネルがCHxのために設けられたレーン決定部102−xがアクティブ状態となる。アクティビティCCにおいてレーン決定部102−xのレーン選択部113は、アクティブレーン指示信号CHx−Active[1:m]によってアクティブ状態であると示されるレーンのうち、最も優先順位が高いレーンを選択する。レーン選択部113は、選択したレーンのレーン番号を示すレーン番号指示信号CHx−STを指示信号生成部103へ出力する。
【0134】
アクティビティCDにおいて指示信号生成部103は、レーン番号指示信号CHx−STにより指示されるレーンを指示する指示信号en[1:m]を生成する。アクティビティCEにおいてセグメント分配部100は、指示信号en[1:m]により指定されるレーンへ、セグメントデータを出力する。
【0135】
アクティビティCFにおいて優先度制御部114は、アクティビティCCにおいて選択したレーンの優先順位を下げるように、レーン番号保持部110−1〜110−mによって保持される優先順位を変更する。このとき優先度制御部114は、アクティビティCCにおいて選択したレーンの優先順位が最低になるように優先順位を変更してよい。
【0136】
図19及び図20は、本実施例に係るセグメントデータの分配状態を説明するタイムチャートである。図19は、図示された時刻t4より前の状態の説明に使用され、図20は、図示された時刻t4以降の状態の説明に使用される。
【0137】
図6及び図7における説明と同様に、インタフェースカード10の数が4個であり、インタフェースカード30の数が4個である場合を想定する。また、スイッチ21の数は4個であり、1つのスイッチインタフェース12からスイッチ21へ接続されるレーンは4本のレーンsi1〜si4であり、セグメントデータが4つのチャネルにグループ化されている場合を想定する。また、設定信号Load Share EN[1:4]が、4本のレーンsi1〜si4全てについて使用できると指定していると想定する。
【0138】
信号Aは、入力されたセグメントデータを示す。セグメントデータを示す矩形の表記法は、図6及び図7と同様である。信号Bは、チャネルCH1について設けられたレーン決定部102−1のレーン番号保持部110−1〜110−4にそれぞれ保持されるレーン番号を示す。より上位の段から順にレーン番号保持部110−1〜110−4に保持されるレーン番号が表される。すなわち、より上位の段にあるレーンほどセグメントデータを分配する優先順位が高い。
【0139】
信号C〜Eも同様に、チャネルCH2〜4について設けられたレーン決定部102−2〜102−4のレーン番号保持部110−1〜110−4にそれぞれ保持されるレーン番号を示す。時刻t1では、いずれのチャネルCH1〜CH4についても、レーン番号保持部110−1〜110−4にはそれぞれレーン番号「1」〜「4」が格納されていると想定する。
【0140】
信号F〜Iは、セグメントデータを分配するレーンを指示する指示信号en[1]〜en[4]を示す。チャートJ〜Mは、セグメントデータによる各レーンsi1〜simの使用状態を示す。
【0141】
図14において例示するように、セグメント分配部100がFiFoメモリ44−1〜44−mを備えるとき、信号F〜Iは、各FiFoメモリ44−1〜44−4への書き込みをそれぞれ指示する書込指示信号en[1]〜en[4]であってよい。このとき、チャートJ〜Mは、セグメントデータによる各FiFoメモリ44−1〜44−4の使用状態を示す。
【0142】
例えば、時刻t1において、チャネルCH1の1番目のセグメントデータの処理が行われる。チャネルCH1についてレーンの優先順位を保持するレーン番号保持部110には、レーン番号「1」、「2」、「3」、「4」の順番の優先度が格納されている。
【0143】
レーン選択部113は、アクティブ状態にあるレーンのうち、レーン番号保持部110に保持される優先順位が最も高いレーンを選択する。時刻t1では、レーンsi1〜si4はまだ他のセグメントデータに使用されていないため、全てのレーンがアクティブ状態にある。
【0144】
このため、レーン選択部113は、セグメントデータを送信するレーンとしてレーン「1」を決定する。指示信号生成部103は、レーンsi1へのセグメントデータの分配を指示する指示信号en[1]の値を、「分配しない」ことを示す「0」から「分配する」ことを示す「1」へ変更する。
【0145】
この結果、チャネルCH1の1番目のセグメントデータはsi1へ分配される。セグメントデータがレーンsi1を使用する間、バックプレッシャ信号BP[1:4]は、このレーンへのセグメントデータの分配を禁止する。
【0146】
説明の簡単のため、便宜上、以下の説明において、あるレーンへのセグメントデータの分配を禁止するバックプレッシャ信号BP[1:4]は、このレーンへ分配され未だスイッチ21への送信処理が完了していないセグメントデータが1個あれば生成される。例えば、セグメント分配部100がFiFoメモリ44を備える場合は、あるFiFoメモリ44に未送信のセグメントデータが1個でも格納されていれば、このFiFoメモリ44への書き込みを禁止するバックプレッシャ信号BPが生成される。
【0147】
しかし、バックプレッシャ信号BP[1:4]の生成条件は、この条件に限定されるものではなく、例えば、スイッチ21への送信処理が完了していないセグメントデータが2個以上である所定個になったとき、バックプレッシャ信号BP[1:m]を生成してよい。例えば、2個以上である所定個の未送信のセグメントデータがあるFiFoメモリ44に格納されている場合に、このFiFoメモリ44への書き込みを禁止するバックプレッシャ信号BPが生成されてもよい。
【0148】
優先度制御部114は、レーン番号「1」の優先順位が最低になるように、レーン番号保持部110に格納される優先順位を変更する。また優先度制御部114は、他のレーン番号の優先順位を繰り上げる。この結果、レーン番号保持部110に格納される各レーンの優先順位は、レーン番号「2」、「3」、「4」、「1」の順で高い優先順位となる。
【0149】
また、例えば時刻t2において、チャネルCH3の1番目のセグメントデータの処理が行われる。チャネルCH3についてレーンの優先順位を保持するレーン番号保持部110には、レーン番号「1」、「2」、「3」、「4」の順番の優先度が格納されている。
【0150】
レーン選択部113は、アクティブ状態にあるレーンのうち、レーン番号保持部110に保持される優先順位が最も高いレーンを選択する。時刻t2では、レーンsi1及びsi2が他のセグメントデータに使用されているため、バックプレッシャ信号BP[1]及びBP[2]により、レーンsi1及びsi2への分配が禁止される。
【0151】
このため、レーン選択部113は、セグメントデータを送信するレーンとしてレーン「3」を決定する。指示信号生成部103は、レーンsi3へのセグメントデータの分配を指示する指示信号en[3]の値を、「分配しない」ことを示す「0」から「分配する」ことを示す「1」へ変更する。
【0152】
この結果、チャネルCH3の1番目のセグメントデータはsi3へ分配される。優先度制御部114は、レーン番号「3」の優先順位が最低になるように、レーン番号保持部110に格納される優先順位を変更する。また優先度制御部114は、他のレーン番号の優先順位を繰り上げる。この結果、レーン番号保持部110に格納される各レーンの優先順位は、レーン番号「1」、「2」、「4」、「3」の順で高い優先順位となる。
【0153】
また、例えば時刻t3において、チャネルCH3の2番目のセグメントデータの処理が行われる。レーン番号保持部110には、レーン番号「1」、「2」、「4」、「3」の順番の優先度が格納されている。時刻t3では、レーンsi1が他のセグメントデータに使用されているため、レーンsi1への分配が禁止される。
【0154】
このため、レーン選択部113は、セグメントデータを送信するレーンとしてレーン「2」を決定する。指示信号生成部103は、指示信号en[2]の値を、「分配しない」ことを示す「0」から「分配する」ことを示す「1」へ変更する。
【0155】
この結果、チャネルCH3の2番目のセグメントデータはsi2へ分配される。優先度制御部114は、レーン番号「2」の優先順位が最低になるように、レーン番号保持部110に格納される優先順位を変更し、また他のレーン番号の優先順位を繰り上げる。この結果、レーン番号保持部110に格納される各レーンの優先順位は、レーン番号「1」、「4」、「3」、「2」の順で高い優先順位となる。
【0156】
また、例えば時刻t5において、チャネルCH3の3番目のセグメントデータの処理が行われる。レーン番号保持部110には、レーン番号「1」、「4」、「3」、「2」の順番の優先度が格納されている。時刻t5では、レーンsi1〜si3が他のセグメントデータに使用されているため、レーンsi1〜si3への分配が禁止される。
【0157】
このため、レーン選択部113は、セグメントデータを送信するレーンとしてレーン「4」を決定する。指示信号生成部103は、指示信号en[4]の値を、「分配しない」ことを示す「0」から「分配する」ことを示す「1」へ変更する。
【0158】
この結果、チャネルCH3の3番目のセグメントデータはsi4へ分配される。優先度制御部114は、レーン番号「4」の優先順位が最低になるように、レーン番号保持部110に格納される優先順位を変更し、また他のレーン番号の優先順位を繰り上げる。この結果、レーン番号保持部110に格納される各レーンの優先順位は、レーン番号「1」、「3」、「2」、「4」の順で高い優先順位となる。
【0159】
また、例えば時刻t6において、チャネルCH3の4番目のセグメントデータの処理が行われる。レーン番号保持部110には、レーン番号「1」、「3」、「2」、「4」の順番の優先度が格納されている。時刻t6では、レーンsi4が他のセグメントデータに使用されているため、レーンsi4への分配が禁止される。
【0160】
このため、レーン選択部113は、セグメントデータを送信するレーンとしてレーン「1」を決定する。指示信号生成部103は、指示信号en[1]の値を、「分配しない」ことを示す「0」から「分配する」ことを示す「1」へ変更する。
【0161】
この結果、チャネルCH3の4番目のセグメントデータはsi1へ分配される。優先度制御部114は、レーン番号「1」の優先順位が最低になるように、レーン番号保持部110に格納される優先順位を変更し、また他のレーン番号の優先順位を繰り上げる。この結果、レーン番号保持部110に格納される各レーンの優先順位は、レーン番号「3」、「2」、「4」、「1」の順で高い優先順位となる。
【0162】
図19及び図20に示す順序で処理されるチャネルCH1の第2〜5番目のセグメントデータ、並びにチャネルCH2及びCH4の第1〜4番目のセグメントデータも、同様に分配する。この結果、レーンsi1〜si4へ分配される各チャネルCH1〜CH4毎のセグメントデータ数は以下の通りとなる。
【0163】
レーンsi1に分配されるCH1〜CH4のセグメントデータの数は、全て1個である。レーンsi2に分配されるCH1〜CH4のセグメントデータの数は、全て1個である。レーンsi3に分配されるCH1〜CH4のセグメントデータの数は、それぞれ2個、1個、1個及び0個である。レーンsi4に分配されるCH1〜CH4のセグメントデータの数は、全て1個である。
【0164】
このように、本実施例による図15のセグメント分配処理制御部42によるセグメントデータの分配方法によれば、図4のセグメント分配処理制御部42の場合と比べて、各レーンに分配されるチャネル毎のセグメントデータ数の偏りが低減される。
【0165】
このため、本実施例によれば、上記偏りに起因して発生していた、同一チャネル内のセグメントデータ同士の間におけるスイッチ21の滞留時間のバラツキが低減される。この結果、同一チャネル内のセグメントデータ同士の間におけるインタフェースカード30へ到着するまでの遅延時間のバラツキが低減される。
【0166】
図21及び22は、図4のセグメント分配処理制御部によるセグメントデータの分配状態及び遅延時間のバラツキのシミュレーション結果である。また、図23及び図24は、図15のセグメント分配処理制御部によるセグメントデータの分配状態及び遅延時間のバラツキのシミュレーション結果である。
【0167】
このシミュレーションでは、1つのスイッチインタフェース12からスイッチ21へ接続されるレーン数は8本であり、セグメントデータが8つのチャネルにグループ化されている場合を想定した。各チャネルのトラヒック量、セグメントデータ長、各FiFoメモリ44−1〜FiFoメモリ44−8がバックプレッシャ信号を出力する条件は、どちらの場合も同じである。
【0168】
図21及び図23において、8つの各プロットは、8つのチャンネルch0〜ch7に属するセグメントデータが、レーン1〜8へそれぞれ分配された数を示す。図21及び図23を比較すると明らかなように、図4のセグメント分配処理制御部に比べて、図15のセグメント分配処理制御部によるシミュレーション結果の方が、各レーンに分配されるチャネル毎の分配数の偏りが低減されている。
【0169】
図22及び図24において、3つの各プロットは、各セグメントデータに生じた遅延時間の最大値、最小値及び平均値を示す。図22と図24との間において、縦軸の同じ指標値は同じ遅延量を示す。図22及び図24を比較すると明らかなように、図15のセグメント分配処理制御部によるシミュレーション結果の方が、遅延量の最大値が低減され、遅延量のバラツキが低減されていることが分かる。
【0170】
図25は、本実施例に係るセグメント分配処理制御部の第2例の概略構成図である。図15に示す構成要素と同様の構成要素には、図15で使用した参照符号と同じ参照符号を付する。本例のセグメント分配処理制御部42のアクティブレーン判定部101−1〜101−kは、予め設定されている設定情報として、設定信号CH1−Lane−eN[1:m]〜CHk−Lane−eN[1:m]を入力する。設定信号CH1−Lane−eN[1:m]〜CHk−Lane−eN[1:m]を総称して設定信号CH−Lane−eN[1:m]と記載することがある。
【0171】
設定信号CH−Lane−eN[1:m]は、使用可能なレーンをチャネル毎に指定する信号である。アクティブレーン判定部101は、バックプレッシャ信号BP[1:m]が分配を禁止しておらず、かつ設定信号Load Share EN[1:m]及びCH−Lane−eN[1:m]の双方が使用可と設定するレーンを、アクティブ状態のレーンと判定する。
【0172】
本実施例によれば、セグメントデータを分配できるレーンを、チャネル毎に指定することが可能となる。この結果、各チャネルのセグメントデータがそれぞれ使用するレーンを分離することが可能となる。
【0173】
図10の(B)の参照符号68に示す様な、出力バッファ22−2におけるセグメントの輻輳は、複数のチャネルのセグメントデータが同じスイッチ21の同じ出力バッファ22−2に格納されることによっても発生する。本実施例によれば、各チャネルのセグメントデータがそれぞれ使用するレーン、すなわちスイッチ21を分離することが可能となるため、スイッチ21の出力バッファ22−1〜22−4における輻輳が低減される。これによって、スイッチ21における滞在時間のバラツキが低減される。
【0174】
なお、使用するスイッチ21を、インタフェースカード10によって分離するように設定信号CH−Lane−eN[1:m]の値を設定してもよい。
【0175】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
【0176】
(付記1)
フレームを分割した複数のセグメントデータを前記フレームの宛先へそれぞれスイッチングする複数のスイッチへ、前記複数のセグメントデータをそれぞれ分配するセグメントデータ処理回路であって、
前記セグメントデータがそれぞれ属するグループ毎に前記複数のスイッチ間の優先度を記憶する優先度記憶部と、
受信した前記セグメントデータが属するグループを識別するグループ識別部と、
前記セグメントデータのグループについて記憶される優先度が所定条件以上のスイッチを、前記セグメントデータの分配先として選択するスイッチ選択部と、
選択された前記スイッチの前記セグメントデータのグループについて記憶された優先度を下げる優先度制御部と、
を備えるセグメントデータ処理回路。
【0177】
(付記2)
前記優先度制御部は、選択された前記スイッチの前記セグメントデータのグループについて記憶された優先度を最低の優先度にする付記1に記載のセグメントデータ処理回路。
【0178】
(付記3)
前記セグメントデータを分配できるスイッチを前記グループ毎に指定する指定信号に従って、前記セグメントデータを分配できる前記スイッチを判定する分配先スイッチ判定部を備え、
前記スイッチ選択部は、前記セグメントデータの分配先として選択するスイッチを、前記セグメントデータを分配できるスイッチから選択する付記1又は2に記載のセグメントデータ処理回路。
【0179】
(付記4)
前記フレームは、時分割多重通信において伝送される同期フレームである付記1〜3のいずれか一項に記載のセグメントデータ処理回路。
【0180】
(付記5)
付記1〜4のいずれか一項に記載のセグメントデータ処理回路と、
前記フレームを受信する受信部と、
受信された前記フレームを分割して前記複数のセグメントデータを生成するフレーム分割部と、を備え、
前記セグメントデータ処理回路は、前記フレーム分割部により生成された前記複数のセグメントデータのそれぞれをスイッチングさせるスイッチを選択するインタフェースユニット。
【0181】
(付記6)
付記4に記載のインタフェースユニットとしての第1インタフェースユニットと、
前記複数のスイッチと、
第2インタフェースユニットと、を備え、
前記第2インタフェースユニットは、前記スイッチから受信した前記セグメントデータをフレームに組み立てるフレーム組立部と、組み立てた前記フレームを送信する送信部と、を有するフレーム伝送装置。
【0182】
(付記7)
フレームを分割した複数のセグメントデータを前記フレームの宛先へそれぞれスイッチングする複数のスイッチへ、前記複数のセグメントデータをそれぞれ分配するセグメントデータの分配方法であって、
前記セグメントデータがそれぞれ属するグループ毎に前記複数のスイッチ間の優先度を所定の優先度記憶部に記憶し、
受信した前記セグメントデータが属するグループを識別し、
前記セグメントデータのグループについて記憶される優先度が所定条件以上のスイッチを、前記セグメントデータの分配先として選択し、
選択された前記スイッチの前記セグメントデータのグループについて記憶された優先度を下げる、セグメントデータの分配方法。
【符号の説明】
【0183】
1 フレーム伝送装置
10、10−1〜10−n、30、30−1〜30−n インタフェースカード
12、12−1〜12−n スイッチインタフェース
20 スイッチカード
21、21−1〜21−m スイッチ
41 チャネル識別部
110−1〜110−m レーン番号保持部
113 レーン選択部
114 優先度制御部
【技術分野】
【0001】
本発明は、フレームデータのスイッチングに関する。
【背景技術】
【0002】
受信したパケットデータ(以下、単に「パケット」と記す)を複数のセグメントデータに分割し、元のパケットの宛先に応じて各セグメントデータをそれぞれ複数のスイッチでスイッチングするパケット中継装置が提案されている。
【0003】
図1は、複数のスイッチを備えるパケット中継装置の概略構成図である。参照符号200はパケット中継装置を示し、参照符号210−1〜210−n及び230−1〜230−nはインタフェース(IF)カードを示し、参照符号220はスイッチカードを示す。参照符号211−1〜211−nは受信部を示し、参照符号212−1〜212−nはセグメントデータ分割部を示し、参照符号221−1〜221−mはスイッチを示す。参照符号231−1〜231−nはパケット組立部を示し、232−1〜232−nは送信部を示す。
【0004】
パケット中継装置200は、n個のインタフェースカード210−1〜210−nと、n個のインタフェースカード230−1〜230−nと、スイッチカード220を備える。各インタフェースカード210−1〜210−nでは、それぞれ、受信部211−1〜211−nがパケットを受信し、セグメントデータ分割部212−1〜212−nがパケットを複数のセグメントデータへ分割する。セグメントデータ分割部212−1〜212−nは、各セグメントデータを、スイッチカード220が備えるm個のスイッチ221−1〜221−mへ分配する。
【0005】
各スイッチ221−1〜221−mは、インタフェースカード230−1〜230−nのうち、元のパケットの宛先アドレスに応じて定まるいずれかのインタフェースカードへ、セグメントデータを転送するスイッチング処理を行う。
【0006】
セグメントデータを受信したインタフェースカード230−1〜230−nでは、パケット組立部231−1〜231−nがセグメントデータをパケットへ組み立てる。送信部232−1〜232−nはパケットを送信する。
【0007】
なお、受信したパケットの優先度に関する判定を行い、引続いてその後、判定された優先度に応じてパケットの制御処理を行うパケット通信制御方法が提案されている。この方法では、パケットの制御処理に引き続き、パケットが出力バッファに一時蓄積され、パケットの高優先度の順に、かつ、蓄積された順に送信される。
【0008】
また、入力回線から受信した可変長パケットを各入力回線インタフェースで固定長のセルに変換し、スイッチ部においてセル単位でスイッチングし、上記スイッチ部からの出力セルを各出力回線インタフェースで元の可変長パケットに変換して出力回線に送出するパケットスイッチが提案されている。このパケットスイッチは、各入力回線インタフェースに、固定長セルを出力回線毎に優先度別にキューイングし、各キューの蓄積セルを優先度に応じて選択的に出力するための制御手段を有する。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2008−160570号公報
【特許文献2】特開2001−69166号公報
【特許文献3】特開2000−151633号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
フレームデータ(以下、単に「フレーム」と記す)やパケットをセグメントデータへ分割して複数のスイッチによりスイッチングすると、スイッチの通過に要する時間がセグメントデータの間で相違することがある。この場合、宛先のインタフェースカードへセグメントデータが到着するまでの遅延量がセグメントデータ間で相違する。
【0011】
本件開示の装置及び方法は、フレームを複数のセグメントデータへ分割し、各セグメントデータを複数のスイッチによりスイッチングするとき、スイッチの通過に要するセグメントデータの遅延量のバラツキを低減することを目的とする。
【課題を解決するための手段】
【0012】
実施例の一形態によれば、フレームを分割した複数のセグメントデータをフレームの宛先へそれぞれスイッチングする複数のスイッチへ、複数のセグメントデータをそれぞれ分配するセグメントデータ処理回路が与えられる。このセグメントデータ処理回路は、セグメントデータがそれぞれ属するグループ毎に複数のスイッチ間の優先度を記憶する優先度記憶部と、受信したセグメントデータが属するグループを識別するグループ識別部と、セグメントデータのグループについて記憶される優先度が所定条件以上のスイッチを、セグメントデータの分配先として選択するスイッチ選択部と、選択されたスイッチのセグメントデータのグループについて記憶された優先度を下げる優先度制御部を備える。
【発明の効果】
【0013】
本件開示の装置及び方法によれば、スイッチの通過に要するセグメントデータの遅延量の、セグメントデータ間におけるバラツキが低減される。
【図面の簡単な説明】
【0014】
【図1】複数のスイッチを備えるパケット中継装置の概略構成図である。
【図2】複数のスイッチを備えるフレーム伝送装置の概略構成図である。
【図3】スイッチインタフェースの概略構成図である。
【図4】セグメント分配処理制御部の概略構成図である。
【図5】セグメントデータの分配方法の説明図である。
【図6】セグメントデータの分配状態を説明するタイムチャート(その1)である。
【図7】セグメントデータの分配状態を説明するタイムチャート(その2)である。
【図8】(A)及び(B)はセグメントデータの分配処理の説明図(その1)及び(その2)である。
【図9】(A)及び(B)はセグメントデータの分配処理の説明図(その3)及び(その4)である。
【図10】(A)及び(B)はセグメントデータの分配処理の説明図(その5)及び(その6)である。
【図11】(A)及び(B)はセグメントデータの分配処理の説明図(その7)及び(その8)である。
【図12】(A)及び(B)はセグメントデータの分配処理の説明図(その9)及び(その10)である。
【図13】(A)及び(B)はセグメントデータの分配処理の説明図(その11)及び(その12)である。
【図14】本実施例に係るスイッチインタフェースの概略構成図である。
【図15】本実施例に係るセグメント分配処理部の第1例の概略構成図である。
【図16】レーン決定部の概略構成図である。
【図17】本実施例に係るセグメントデータの分配方法の説明図(その1)である。
【図18】本実施例に係るセグメントデータの分配方法の説明図(その2)である。
【図19】本実施例に係るセグメントデータの分配状態を説明するタイムチャート(その1)である。
【図20】本実施例に係るセグメントデータの分配状態を説明するタイムチャート(その2)である。
【図21】図4のセグメント分配処理制御部によるセグメントデータの分配状態のシミュレーション結果である。
【図22】図4のセグメント分配処理制御部によるセグメントデータの遅延時間のバラツキのシミュレーション結果である。
【図23】図15のセグメント分配処理制御部によるセグメントデータの分配状態のシミュレーション結果である。
【図24】図15のセグメント分配処理制御部によるセグメントデータの遅延時間のバラツキのシミュレーション結果である。
【図25】本実施例に係るセグメント分配処理制御部の第2例の概略構成図である。
【発明を実施するための形態】
【0015】
上述の通り、フレームをセグメントデータへ分割して複数のスイッチによりスイッチングすると、宛先のインタフェースカードへセグメントデータが到着するまでの遅延量がセグメントデータ間で相違する。
【0016】
そこで、複数のスイッチ間の順序を予め定め、この順序に従ってセグメントデータを順次分配することによって、各スイッチに均等にセグメントデータを分配し、遅延量の相違を低減することが考えられる。このような分配方法を実施するフレーム伝送装置を図2に示す。
【0017】
図2は、複数のスイッチを備えるフレーム伝送装置の概略構成図である。フレーム伝送装置1は、受信したフレームを複数のセグメントデータに分割し、複数のスイッチによって、元のフレームの宛先に応じて各セグメントデータをそれぞれスイッチングする。
【0018】
参照符号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はスイッチを示す。
【0019】
フレーム伝送装置1は、制御部2と、n個のインタフェースカード10−1〜10−n(以下、インタフェースカード10と総称することがある)と、スイッチカード20と、n個のインタフェースカード30−1〜30−n(以下、インタフェースカード30と総称することがある)を備える。
【0020】
インタフェースカード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と総称することがある)を備える。
【0021】
なお、インタフェースカード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についても同様である。
【0022】
フレーム分割部11は、受信されたフレームを複数のセグメントデータへ分割する。フレーム伝送装置1によりスイッチングされるフレームは、例えば、時分割多重通信において、所定のタイムスロット上において固定された伝送レートで伝送される同期フレームであってよい。このような同期フレームとして、例えばOTN(Optical Transport Network)で転送されるODU(Optical Data Unit)フレームがある。受信フレームが上記のような同期フレームであるとき、フレームをセグメントデータへ分割するフレーム分割部11の機能は、例えば、受信信号から同期フレームをデマッピングするフレーマに搭載されてよい。
【0023】
スイッチインタフェース12は、セグメントデータにヘッダ情報を付加する。ヘッダ情報は、分割前のフレームの宛先に応じて定まる転送先のインタフェースカード30の指定情報を含む。スイッチインタフェース12は、例えば、制御部2によって予め設定された設定情報に従い、分割前のフレームの宛先に応じて、転送先のインタフェースカード30を指定する指定情報を生成してよい。
【0024】
スイッチインタフェース12は、ヘッダ情報を付したセグメントデータを、スイッチ21−1〜21−mへ分配する。参照符号s11〜s1m、s21〜s2m及びsn1〜snmは、スイッチインタフェース12からスイッチ21へセグメントデータを伝送する信号線である。以下の説明では、これらの信号線の各々を「レーン」と記すことがある。レーンsijは、スイッチインタフェース12−iからスイッチ21−jへセグメントデータを伝送するレーンである(記号i及びjは添え字である)。
【0025】
なお、1つのスイッチインタフェース12からスイッチ21へ接続されるレーン数は、スイッチ21の総数より多くてもよい。すなわち、1つのスイッチインタフェース12から1つのスイッチ21へセグメントデータを送信するために、複数本のレーンを使用してもよい。
【0026】
スイッチ21は、セグメントデータに付加されたヘッダ情報に基づいてセグメントデータをスイッチングする。すなわち、スイッチ21は、ヘッダ情報にて指定される転送先のインタフェースカード30へセグメントデータを転送する。
【0027】
スイッチインタフェース31は、受信したセグメントデータのヘッダ情報の終端処理を行う。参照符号r11〜rm1、r12〜rm2及びr1n〜rmnは、スイッチ21からスイッチインタフェース31へセグメントデータを伝送する信号線である。信号線rijは、スイッチ21−iからスイッチインタフェース31−jへセグメントデータを伝送する信号線である(記号i及びjは添え字である)。
【0028】
フレーム組立部32は、セグメントデータをフレームへ組み立てる。組み立てられたフレームは次の伝送装置へ向けて送信される。受信フレームが上記の同期フレームであるとき、セグメントデータをフレームへ組み立てるフレーム組立部32の機能は、例えば、同期フレームを送信信号へマッピングするフレーマに搭載されてよい。
【0029】
フレームから分割された各セグメントデータは、複数のグループのうちのいずれかに属するようにグループ分けされていることがある。例えばセグメントデータは、分割前のフレームによって情報が伝送されるチャネル毎にグループ分けされていてよい。この場合、複数のチャネルが、上記複数のグループの一例として挙げられる。
【0030】
以下の説明では、各セグメントデータが属するグループを「チャネル」と記載することがある。スイッチインタフェース12は、制御部2によって予め設定された設定情報に従って定めた、各セグメントデータが属するチャネルの指定情報をヘッダ情報に含める。ただし、セグメントデータをグループ分けする基準は、上記チャネルに限定されるものではなく、他の基準が採用されてもよい。
【0031】
図3は、スイッチインタフェース12−iの概略構成図である。iは1〜nのいずれかの値を持つ添え字である。参照符号40はFiFo(先入れ先出し:First In First Out)メモリを示し、参照符号41はチャネル識別部を示し、参照符号42は、セグメント分配処理制御部を示し、参照符号43はフリップフロップを示す。参照符号44−1〜44−mはFiFoメモリを示す(以下、総称してFiFoメモリ44と記載することがある)。スイッチインタフェース12−iは、FiFoメモリ40と、チャネル識別部41と、セグメント分配処理制御部42と、フリップフロップ43と、FiFoメモリ44を備える。
【0032】
FiFoメモリ40には、フレーム分割部11から出力されたセグメントデータが格納される。チャネル識別部41は、セグメントデータ開始信号SOS(Start Of Segment)のタイミングを基準にしてセグメントデータのヘッダ情報を読み取り、各セグメントデータのチャネルを識別する。セグメントデータ開始信号SOSは、各セグメントデータをFiFoメモリ40から読み出す処理の開始を指示する信号である。チャネル識別部41は、各セグメントデータのチャネルを示すチャネル信号s−CH−Numを、セグメント分配処理制御部42へ出力する。
【0033】
セグメント分配処理制御部42は、セグメントデータ開始信号SOSと、チャネル信号s−CH−Numと、FiFoメモリ44−1〜44−mからのバックプレッシャ信号BP[1:m]を入力する。バックプレッシャ信号BP[1:m]は、FiFoメモリ44−1〜44−mへの書き込みの禁止及び許可をそれぞれ示すバックプレッシャ信号BP[1]〜BP[m]の集合であってよい。
【0034】
セグメント分配処理制御部42は、セグメントデータ開始信号SOSと、チャネル信号s−CH−Numと、バックプレッシャ信号BP[1:m]と、予め設定された設定情報に基づく設定信号に応じて、セグメントデータを出力すべきレーンを、レーンsi1〜simのいずれかから選択する。セグメント分配処理制御部42によって、セグメントデータの分配先の各レーンを決定することにより、セグメントデータを分配するスイッチ21が決定される。
【0035】
セグメント分配処理制御部42は、選択したレーンへ送信するセグメントデータを格納するFiFoへの書き込みを指示する書込指示信号en[1:m]を出力する。書込指示信号en[1:m]は、FiFoメモリ44−1〜44−mへの書き込みをそれぞれ指示する書込指示信号en[1]〜en[m]の集合であってよい。
【0036】
フリップフロップ43は、セグメント分配処理制御部42による書込指示信号en[1:m]の生成処理の間、セグメントデータを保持する。
【0037】
FiFoメモリ44−1〜44−mは、それぞれ書込指示信号en[1]〜en[m]によってセグメントデータの書き込みが指示されたとき、フリップフロップ43から出力されるセグメントデータを格納する。FiFoメモリ44−1〜44−mは、格納したセグメントデータを、各レーンsi1〜simを経由してスイッチ21−1〜21−mへそれぞれ送信する。
【0038】
図4は、セグメント分配処理制御部42の概略構成図である。参照符号51−1〜51−kはレーン番号保持部を示し、参照符号52はレーン番号管理部を示し、参照符号53はレーン決定部を示す。セグメント分配処理制御部42は、レーン番号保持部51−1〜51−kと、レーン番号管理部52と、レーン決定部53を備える。
【0039】
レーン番号保持部51−1〜51−kは、k個のチャネルCH1〜CHkのそれぞれについて、各チャネルにぞれぞれ属するセグメントデータを出力すべきレーンの候補のレーン番号を保持する。レーン番号保持部51−1〜51−kのことを総称してレーン番号保持部51と記すことがある。
【0040】
レーン番号管理部52は、チャネル信号s−CH−Numが示すチャネルについてレーン番号を保持するレーン番号保持部51から、保持されているレーン番号を読み出す。信号CH1−ST、CH2−ST、CH3−ST…CHk−STは、それぞれレーン番号保持部51−1、51−2、51−3…51−kに保持されているレーン番号を指示する信号である。レーン番号管理部52は、読み出したレーン番号を示す信号STをレーン決定部へ出力する。
【0041】
レーン番号管理部52は、チャネル信号s−CH−Numが示すチャネルのセグメントデータを、次回出力すべきレーンのレーン番号を示すNEXT−VAL信号と、NEXT−VAL信号が設定されたことを示すNEXT−EN信号を、レーン決定部52から受信する。
【0042】
レーン番号管理部52は、レーン番号保持部51へNEXT−VAL信号を出力する。またレーン番号管理部52は、NEXT−VAL信号の値の書き込みを指示する書込指示信号を、チャネル信号s−CH−Numが示すチャネルのレーン番号保持部51へ出力する。信号CH1−EN、CH2−EN、CH3−EN…CHk−ENは、それぞれ、レーン番号保持部51−1、51−2、51−3…51−kへ、NEXT−VAL信号の値の書き込みを指示する書込指示信号である。
【0043】
レーン決定部53は、予め設定されている設定情報に基づく設定信号Load Share EN[1:m]と、バックプレッシャ信号BP[1:m]に基づいて、信号STにて指示されるレーンへ出力できるか否かを判定する。設定信号Load Share EN[1:m]は、各レーンsi1〜simのそれぞれについて使用可否を指定する信号である。
【0044】
レーン決定部53は、信号STが示すレーン番号から順に、バックプレッシャ信号BP[1:m]によって書き込み禁止されておらず、かつ設定信号Load Share EN[1:m]によって使用可能に設定されているレーンを検索する。レーンを検索する順序は、例えばレーン番号の降順や昇順といった予め設定された順序である。
【0045】
検索中に、レーン番号の範囲の一方の端まで判定し終わった場合には、レーン決定部53は、レーン番号の範囲の他方の端からまた検索を始め、信号STが示すレーンの1つ前の順序の番号まで検索したら検索を終了する。以下の説明では、レーン決定部53は、レーン番号の昇順でレーンの検索を行う。
【0046】
レーン決定部53は、バックプレッシャ信号で書き込み禁止されておらず、かつ設定信号によって使用可能に設定されるレーンを発見したとき、このレーンへ送信するセグメントデータを格納するFiFoへの書き込みを指示する信号en[1:m]を出力する。またレーン決定部53は、上記予め設定された順序において、発見されたレーンのレーン番号の次の順序のレーン番号を指示するNEXT−VAL信号を、レーン番号管理部52へ出力する。
【0047】
図5は、図4のセグメント分配処理制御部42により制御されるセグメントデータの分配方法の説明図である。別な実施の態様においては、下記のアクティビティAA〜AFの各アクティビティはステップであってもよい。また、符号ForkとJoinとの間にある並列する複数のアクティビティの列は、どれを先に実行してもよく、また同時に実行してもよい。
【0048】
アクティビティAAにおいては、チャネル識別部41は、入力されたセグメントデータが属するチャネルを識別し、チャネル信号s−CH−Numを、セグメント分配処理制御部42へ出力する。
【0049】
アクティビティABにおいてセグメント分配処理制御部42のレーン番号管理部52は、チャネル信号s−CH−Numに指示されるチャネルについてレーン番号保持部51に保持されたレーン番号を読み出す。セグメント分配処理制御部42は読み出したレーン番号を指示する信号STをレーン決定部53へ出力する。
【0050】
アクティビティACにおいてレーン決定部53は、信号STが示すレーン番号から順に、アクティブ状態にあるレーンを検索する。図4に示すレーン決定部53の説明において、アクティブ状態にあるレーンとは、現在、セグメントデータを送信できる状態にあるレーンをいう。レーン決定部53は、バックプレッシャ信号BP[1:m]によって書き込み禁止されておらず、かつ設定信号Load Share EN[1:m]によって使用可能に設定されているレーンを、アクティブ状態にあるレーンと判定する。
【0051】
アクティビティADにおいてレーン決定部53は、アクティブ状態にあるレーンを決定すると、このレーンへ送信するセグメントデータを格納するFiFoへの書き込みを指示する信号en[1:m]を出力する。
【0052】
アクティビティAEにおいてレーン決定部53は、アクティビティADで決定されたレーンの次のレーン番号を指示するNEXT−VAL信号を、レーン番号管理部52へ出力する。レーン番号管理部52は、チャネル信号s−CH−Numに指示されるチャネルについてレーン番号を保持するレーン番号保持部51に、NEXT−VAL信号の値を書き込む。
【0053】
信号en[1:m]により書き込みを指示されたFIFOには、アクティビティAFにおいてセグメントデータを格納する。
【0054】
図6及び図7は、セグメント分配処理制御部42により分配されるセグメントデータの分配状態を説明するタイムチャートである。図6は、図示された時刻t4より前の状態の説明に使用され、図7は、図示された時刻t4以降の状態の説明に使用される。
【0055】
本例では、インタフェースカード10の数が4個であり、インタフェースカード30の数が4個である場合を想定する。また本例では、スイッチ21の数は4個であり、1つのスイッチインタフェース12からスイッチ21へ接続されるレーン数は4本であり、セグメントデータが4つのチャネルにグループ化されている場合を想定する。また、本例では、設定信号Load Share EN[1:4]が、4本のレーン全てについて使用できると指定していると想定する。
【0056】
信号Aは、入力されたセグメントデータを示す。各矩形内の説明「CHx(y)」は、それぞれ矩形で示される個々のセグメントデータが、チャネルCHxに属する第y番目のセグメントデータであることを示す(記号x及びyを添え字である)。また無地、梨地ハッチング、横線ハッチング及び斜め線ハッチングの矩形は、このセグメントデータが、それぞれインタフェース30−1、30−2、30−3及び30−4へ転送されるセグメントであることを示す。
【0057】
信号B〜Eは、それぞれレーン番号保持部51−1〜51−4に保持されるレーン番号を示す。時刻t1では、レーン番号保持部51−1〜51−4に、レーン番号「1」が格納されていると想定する。信号F〜Iは、各FiFoメモリ44−1〜44−4への書き込みをそれぞれ指示する書込指示信号en[1]〜en[4]を示す。チャートJ〜Mは、セグメントデータによる各FiFoメモリ44−1〜44−4の使用状態を示す。
【0058】
例えば、時刻t1において、チャネルCH1の1番目のセグメントデータの処理が行われる。チャネルCH1についてセグメントデータを送信するレーンの候補を保持するレーン番号保持部51−1には、レーン番号「1」が格納されている。
【0059】
レーン決定部53は、レーン番号保持部51−1から読み出されたレーン番号「1」から昇順に、バックプレッシャ信号BP[1:4]によって禁止されていないレーン番号を検索する。時刻t1では、FiFoメモリ44−1〜44−4には他のセグメントデータが格納されておらず、バックプレッシャ信号BP[1]は、FiFoメモリ44−1への書き込みを許可する。
【0060】
このため、レーン決定部53は、セグメントデータを送信するレーンとしてレーン「1」を決定する。レーン決定部53は、FiFoメモリ44−1へのセグメントデータの書き込みを指示する書込指示信号en[1]の値を、「書き込みしない」ことを示す「0」から「書き込みを行う」ことを示す「1」へ変更する。
【0061】
この結果、チャネルCH1の1番目のセグメントデータは、FiFoメモリ44−1へ書き込まれる。セグメントデータがあるFiFoメモリ44へ格納されている間、バックプレッシャ信号BP[1:4]は、このFiFoへの書き込みを禁止する。
【0062】
説明の簡単のため、便宜上、以下の説明において、FiFoへの書き込みを禁止するバックプレッシャ信号BP[1:4]は、FiFoメモリ44に未送信のセグメントデータが1個でも格納されている場合に生成される。但し、バックプレッシャ信号BP[1:4]の生成条件は、この条件に限定されるものではなく、例えば、2個以上である所定個の未送信のセグメントデータが格納されているときに生成されてもよい。
【0063】
また、レーン番号保持部51−1の値は、セグメントデータが送信されるレーン番号「1」の次の番号である「2」に更新される。
【0064】
また、例えば時刻t2において、チャネルCH3の1番目のセグメントデータの処理が行われる。チャネルCH3についてセグメントデータを送信するレーンの候補を保持するレーン番号保持部51−3には、レーン番号「1」が格納されている。
【0065】
レーン決定部53は、レーン番号保持部51−3から読み出されたレーン番号「1」から昇順に、バックプレッシャ信号BP[1:4]によって禁止されていないレーン番号を検索する。時刻t2では、FiFoメモリ44−1及び44−2に他のセグメントデータが格納されており、バックプレッシャ信号BP[1]及びBP[2]により、FiFoメモリ44−1及び44−2への書き込みが禁止される。
【0066】
このためレーン決定部53は、レーン「1」及びレーン「2」をスキップして、セグメントデータを送信するレーンとしてレーン「3」を決定する。レーン決定部53は、FiFoメモリ44−3へのセグメントデータの書き込みを指示する書込指示信号en[3]の値を、「0」から「1」へ変更する。
【0067】
この結果、チャネルCH3の1番目のセグメントデータは、FiFoメモリ44−3へ書き込まれる。レーン番号保持部51−3の値は、セグメントデータが送信されるレーン番号「3」の次の番号である「4」に更新される。
【0068】
また例えば時刻t3において、チャネルCH3の2番目のセグメントデータの処理が行われる。チャネルCH3についてセグメントデータを送信するレーンの候補を保持するレーン番号保持部51−3には、レーン番号「4」が格納されている。
【0069】
レーン決定部53は、レーン番号「4」から昇順に、バックプレッシャ信号BP[1:4]によって禁止されていないレーン番号を検索する。時刻t3では、FiFoメモリ44−4に格納されたチャネルCH4の1番目のセグメントデータの送信が完了しており、FiFoメモリ44−4が空になる。
【0070】
このためレーン決定部53は、セグメントデータを送信するレーンとしてレーン「4」を決定する。レーン決定部53は、書込指示信号en[4]の値を、「0」から「1」へ変更する。この結果、チャネルCH3の2番目のセグメントデータは、FiFoメモリ44−4へ書き込まれる。レーン番号保持部51−3の値は、セグメントデータが送信されるレーン番号「4」の次の番号である「1」に更新される。
【0071】
また例えば時刻t5において、チャネルCH3の3番目のセグメントデータの処理が行われる。チャネルCH3についてセグメントデータを送信するレーンの候補を保持するレーン番号保持部51−3には、レーン番号「1」が格納されている。
【0072】
レーン決定部53は、レーン番号「1」から昇順に、バックプレッシャ信号BP[1:4]によって禁止されていないレーン番号を検索する。時刻t5では、FiFoメモリ44−1、44−3及び44−4には他のセグメントが格納されている。
【0073】
このためレーン決定部53は、レーン「1」をスキップして、セグメントデータを送信するレーンとしてレーン「2」を決定する。レーン決定部53は、書込指示信号en[2]の値を、「0」から「1」へ変更する。この結果、チャネルCH3の3番目のセグメントデータは、FiFoメモリ44−2へ書き込まれる。レーン番号保持部51−3の値は、セグメントデータが送信されるレーン番号「2」の次の番号である「3」に更新される。
【0074】
また例えば時刻t6において、チャネルCH3の4番目のセグメントデータの処理が行われる。チャネルCH3についてセグメントデータを送信するレーンの候補を保持するレーン番号保持部51−3には、レーン番号「3」が格納されている。
【0075】
レーン決定部53は、レーン番号「3」から昇順に、バックプレッシャ信号BP[1:m]によって禁止されていないレーン番号を検索する。時刻t6では、FiFoメモリ44−3が空いている。
【0076】
このためレーン決定部53は、セグメントデータを送信するレーンとしてレーン「3」を決定する。レーン決定部53は、書込指示信号en[3]の値を、「0」から「1」へ変更する。この結果、チャネルCH3の4番目のセグメントデータは、FiFoメモリ44−3へ書き込まれる。レーン番号保持部51−3の値は、セグメントデータが送信されるレーン番号「3」の次の番号である「4」に更新される。
【0077】
図6及び図7に示す順序で処理されるチャネルCH1の第2〜5番目のセグメントデータ、並びにチャネルCH2及びCH4の第1〜4番目のセグメントデータも、同様に分配する。この結果、FiFoメモリ44−1〜44−4がそれぞれ設けられる4つのレーンs1〜s4に分配される各チャネルCH1〜CH4毎のセグメントデータ数は以下の通りとなる。
【0078】
レーンs1に分配されるCH1〜CH4のセグメントデータの数は、それぞれ2個、1個、0個及び1個である。レーンs2に分配されるCH1〜CH4のセグメントデータの数は、それぞれ1個、2個、1個及び0個である。レーンs3に分配されるCH1〜CH4のセグメントデータの数は、それぞれ1個、1個、2個及び0個である。レーンs4に分配されるCH1〜CH4のセグメントデータの数は、それぞれ1個、0個、1個及び2個である。
【0079】
このように、図4のセグメント分配処理制御部42によるセグメントデータの分配方法によれば、各レーンに分配される各チャネルCH1〜CH4毎のセグメントデータ数が、各レーンによって偏ることになる。このセグメントデータの分配数の偏りによって、以下の説明のとおり、同一チャネル内のセグメントデータ同士の間における、スイッチカード20の通過に要する遅延時間のバラツキが生じることがある。
【0080】
図8の(A)、図8の(B)、図9の(A)、図9の(B)、図10の(A)、図10の(B)、図11の(A)、図11の(B)、図12の(A)、図12の(B)、図13の(A)及び図13の(B)は、セグメントデータの分配処理の説明図である。これらの図は、図6及び図7による説明と同じ前提でセグメントデータを処理した場合に、各セグメントデータが通過する経路を示す。
【0081】
図8の(A)、図8の(B)、図9の(A)及び図9の(B)は、スイッチインタフェース12−1〜12−4における各セグメントデータの分配状態を示す。各矩形が1つのセグメントデータを示し、矩形内の数字は、個々のセグメントデータが、各チャネルCHの何番目のセグメントデータであることを示す。
【0082】
また無地、梨地ハッチング、横線ハッチング及び斜め線ハッチングの矩形は、このセグメントデータが、それぞれインタフェース30−1、30−2、30−3及び30−4へ転送されるセグメントであることを示す。また実線、破線、一点鎖線及び二点鎖線の矩形は、このセグメントデータが、それぞれインタフェース10−1、10−2、10−3及び10−4から送信されるセグメントであることを示す。
【0083】
説明の簡単のため、各セグメントデータが属するチャネルに関する表記を、これらの図から省略した。各セグメントデータの順序は図6及び図7に示す順序と同じ順序であり、各セグメントデータが属するチャネルは、図6及び図7を参照して説明した各セグメントデータと同様である。セグメントデータに関する上記の表記法は、図10の(A)、図10の(B)、図11の(A)、図11の(B)、図12の(A)、図12の(B)、図13の(A)及び図13の(B)においても同様である。
【0084】
図面の理解の容易のため、便宜上、図8の(A)〜図13の(B)による下記の説明では、送信インタフェースカード10と受信インタフェースカード30の組み合わせが同じセグメントデータは、同じチャネルに属するセグメントデータとして説明を行う。すなわち、矩形の線パターン及びハッチングパターンの組み合わせが同じセグメントデータが、同じチャネルに属するとして以下の説明を行う。
【0085】
また、図8の(A)〜図13の(B)の各図において、図面の右側にあるセグメントデータほど、より早い時期に処理、送受信、各FiFoやバッファに格納されるセグメントデータを示す。図面の左側にあるセグメントデータほど、遅い時期に処理、送受信又は格納されるセグメントデータを示す。
【0086】
各スイッチインタフェース12−1〜12−4は、図6及び図7に示す順序と同じ順序でセグメントデータ列60〜63を処理し、各セグメントデータは、各スイッチインタフェース12の各FiFoメモリ44−1〜44−4へ分配される。各FiFoメモリ44−1〜44−4へ分配されるセグメントデータのチャネル、宛先インタフェースカード30及び順番は、図6及び図7を参照して説明したものと同様である。
【0087】
図10の(A)、図10の(B)、図11の(A)及び図11の(B)は、スイッチ21−1〜21−4において、スイッチング後に出力バッファ22−1〜22−4に格納されるセグメントデータの順序を示す。参照符号22−1〜22−4は、それぞれスイッチインタフェース31−1〜31−4へ出力するセグメントデータを格納する出力バッファである。
【0088】
参照符号64は、スイッチ21−1の出力バッファ22−1へ格納されるセグメントデータ列を示し、参照符号65は、スイッチ21−1の出力バッファ22−2へ格納されるセグメントデータ列を示す。参照符号66は、スイッチ21−1の出力バッファ22−4へ格納されるセグメントデータ列を示す。
【0089】
参照符号67は、スイッチ21−2の出力バッファ22−1へ格納されるセグメントデータ列を示し、参照符号68は、スイッチ21−2の出力バッファ22−2へ格納されるセグメントデータ列を示す。参照符号69は、スイッチ21−2の出力バッファ22−3へ格納されるセグメントデータ列を示す。
【0090】
参照符号70は、スイッチ21−3の出力バッファ22−1へ格納されるセグメントデータ列を示し、参照符号71は、スイッチ21−3の出力バッファ22−2へ格納されるセグメントデータ列を示す。参照符号72は、スイッチ21−3の出力バッファ22−3へ格納されるセグメントデータ列を示す。
【0091】
参照符号73は、スイッチ21−4の出力バッファ22−1へ格納されるセグメントデータ列を示し、参照符号74は、スイッチ21−4の出力バッファ22−3へ格納されるセグメントデータ列を示す。参照符号75は、スイッチ21−4の出力バッファ22−4へ格納されるセグメントデータ列を示す。
【0092】
各レーンに分配される各チャネル毎のセグメントデータ数が各レーンによって偏ると、、各スイッチを経由するチャネル毎のセグメントデータの数が偏る。また、同じチャネルのセグメントデータは、同じインタフェースカード30へ送信される。したがって、チャネル毎のセグメントデータの数の偏りによって、出力バッファ22−1〜22−4に格納されるセグメントデータ数に偏りが生じる。図10の(A)〜図11の(B)の例では、スイッチ21−1のバッファ22−1、スイッチ21−2のバッファ22−2、スイッチ21−3のバッファ22−3、スイッチ21−4のバッファ22−4にデータが集中している。一方で、スイッチ21−1のバッファ22−3、スイッチ21−2のバッファ22−4、スイッチ21−3のバッファ22−4、スイッチ21−4のバッファ22−2に格納されるデータは少ない。
【0093】
図12の(A)、図12の(B)、図13の(A)及び図13の(B)は、スイッチインタフェース31−1〜31−4へ到着する各セグメントデータの到着順序を示す。参照符号76は、スイッチ21−1からスイッチインタフェース31−1へ到着するセグメントデータ列を示し、参照符号77は、スイッチ21−2からスイッチインタフェース31−1へ到着するセグメントデータ列を示す。参照符号78は、スイッチ21−3からスイッチインタフェース31−1へ到着するセグメントデータ列を示し、参照符号79は、スイッチ21−4からスイッチインタフェース31−1へ到着するセグメントデータ列を示す。
【0094】
参照符号80は、スイッチ21−1からスイッチインタフェース31−2へ到着するセグメントデータ列を示し、参照符号81は、スイッチ21−2からスイッチインタフェース31−2へ到着するセグメントデータ列を示す。参照符号82は、スイッチ21−3からスイッチインタフェース31−2へ到着するセグメントデータ列を示す。
【0095】
参照符号83は、スイッチ21−2からスイッチインタフェース31−3へ到着するセグメントデータ列を示し、参照符号84は、スイッチ21−3からスイッチインタフェース31−3へ到着するセグメントデータ列を示す。参照符号85は、スイッチ21−4からスイッチインタフェース31−3へ到着するセグメントデータ列を示す。
【0096】
参照符号86は、スイッチ21−1からスイッチインタフェース31−4へ到着するセグメントデータ列を示し、参照符号87は、スイッチ21−4からスイッチインタフェース31−4へ到着するセグメントデータ列を示す。
【0097】
図10の(B)に示すとおり、スイッチインタフェース31−2へ送信される4番目のセグメントデータは、セグメントデータの通過量が多い出力バッファ22−2を通過する。このため図12の(B)に示す通り、スイッチインタフェース31−2へ到着する時刻が、他の順番1〜3のセグメントデータよりも遅延量が大きくなる。
【0098】
また、図11の(A)に示すとおり、スイッチインタフェース31−3へ送信される4番目のセグメントデータは、セグメントデータの通過量が多い出力バッファ22−3を通過する。このため図13の(A)に示す通り、スイッチインタフェース31−3へ到着する時刻が、他の順番1〜3のセグメントデータよりも遅延量が大きくなる。
【0099】
また、図11の(B)に示すとおり、スイッチインタフェース31−4へ送信される3番目のセグメントデータは、セグメントデータの通過量が多い出力バッファ22−4を通過する。このため図13の(B)に示す通り、スイッチインタフェース31−4へ到着する時刻が、他の順番1及び2のセグメントデータよりも遅延量が大きくなる。
【0100】
上記の分配方法では、複数のスイッチ間の順序を予め定め、この順序にしたがって、前回セグメントデータを分配した次の順位のスイッチを、セグメントデータを分配すべきスイッチとして選択する。もし、選択されたスイッチへセグメントデータを分配できないときは、選択されたスイッチをスキップし、次の順位のスイッチをセグメントデータを分配すべきスイッチとして選択する。このような方法によって、上記の分配方法は、各スイッチに均等にセグメントデータを分配することを意図する。
【0101】
しかしながら、この方法によれば、各セグメントデータが複数のグループにグループ分けされている場合には、仮にグループ毎に上記分配方法を実施したとしても、上述のように、各グループのセグメントデータが各スイッチに均等に分配されない。図6及び図7の説明のように、実際には、他のグループのセグメントデータの処理に起因してスイッチの選択順番のスキップが生じるからである。図8の(A)〜図13の(B)にて説明したように、チャネル毎の分配先スイッチの不均等に起因して、同一グループ内のセグメントデータ同士の間において、スイッチカード20内での滞留時間のバラツキが生じる。このため、同一グループ内のセグメントデータ同士の間において、インタフェースカード30へ到着するまでの遅延時間にバラツキが生じる。
【0102】
図2を参照する。インタフェースカード30へ到着するセグメントデータの遅延量にバラツキがあると、遅延の大きさによっては、フレーム組立部32がフレームを組み立てる際にセグメントデータのアンダーフローが生じる恐れがある。例えば、時分割多重通信で固定レートで伝送される同期フレームには、フレームの空きが許されないものがある。このような同期フレームには上述のODUフレームがある。
【0103】
以下に説明する本件開示の装置及び方法は、同一グループ内のセグメントデータ同士の分配先スイッチの不均等を低減する。図14は、本実施例に係るスイッチインタフェースの概略構成図である。スイッチインタフェース12−i(iは1〜nのいずれかの値である添え字である)は、図2に示すフレーム伝送装置1のインタフェースカード10−iに設けられる。
【0104】
参照符号40はFiFoメモリを示し、参照符号41はチャネル識別部を示し、参照符号42は、セグメント分配処理制御部を示し、参照符号43はフリップフロップを示し、参照符号100はセグメント分配部を示す。参照符号44−1〜44−mはFiFoメモリを示す。スイッチインタフェース12−iは、FiFoメモリ40と、チャネル識別部41と、セグメント分配処理制御部42と、フリップフロップ43と、セグメント分配部100を備える。FiFoメモリ40、チャネル識別部41及びフリップフロップ43の動作は、図3を参照して説明したそれぞれの動作と同様である。
【0105】
セグメント分配処理制御部42は、セグメントデータ開始信号SOSと、チャネル信号s−CH−Numと、バックプレッシャ信号BP[1:m]を入力する。バックプレッシャ信号BP[1:m]は、各レーンsi1〜simへのセグメントデータの分配の禁止及び許可をそれぞれ示すバックプレッシャ信号BP[1]〜BP[m]の集合であってよい。
【0106】
セグメント分配処理制御部42は、セグメントデータ開始信号SOSと、チャネル信号s−CH−Numと、バックプレッシャ信号BP[1:m]と、予め設定された設定情報に基づく設定信号に応じて、セグメントデータを出力すべきレーンを、レーンsi1〜simのいずれかから選択する。セグメント分配処理制御部42によって、セグメントデータの分配先の各レーンを決定することにより、セグメントデータを分配するスイッチ21が決定される。セグメント分配処理制御部42は、セグメントデータを分配するレーンを指示する指示信号en[1:m]を、セグメント分配部100へ出力する。
【0107】
セグメント分配部100は、セグメント分配処理制御部42から出力される指示信号en[1:m]により指定されるレーンへ、フリップフロップ43から読み出したセグメントデータを出力する。
【0108】
例えば、セグメント分配部100は、FiFoメモリ44−1〜44−mを備えていてよい。このとき、指示信号en[1:m]は、FiFoメモリ44−1〜44−mへの書き込みをそれぞれ指示する書込指示信号en[1]〜en[m]の集合であってよい。この場合、上記バックプレッシャ信号BP[1:m]は、FiFoメモリ44−1〜44−mへの書き込みの禁止及び許可をそれぞれ示すバックプレッシャ信号BP[1]〜BP[m]の集合であってよい。
【0109】
FiFoメモリ44−1〜44−mは、それぞれ書込指示信号en[1]〜en[m]によってセグメントデータの書き込みが指示されたとき、セグメントデータを格納する。FiFoメモリ44−1〜44−mは、格納したセグメントデータを、各レーンsi1〜simを経由してスイッチ21−1〜21−mへそれぞれ送信する。
【0110】
図15は、本実施例に係るセグメント分配処理部の第1例の概略構成図である。参照符号101−1〜101−kはアクティブレーン判定部を示し、参照符号102−1〜102−kはレーン決定部を示し、参照符号103は指示信号生成部を示す。
【0111】
セグメント分配処理部42は、アクティブレーン判定部101−1〜101−k(以下、アクティブレーン判定部101と総称することがある)と、レーン決定部102−1〜102−k(以下、レーン決定部102と総称することがある)と、指示信号生成部103を備える。アクティブレーン判定部101及びレーン決定部102は、セグメントデータが属するk個のチャネルCH1〜CHk毎に、セグメント分配処理部42に設けられている。
【0112】
アクティブレーン判定部101は、レーンsi1〜simのいずれのレーンがアクティブ状態にあるか否かを判定する。実施例に関する以下の説明において、アクティブ状態のレーンとは、送信対象のセグメントデータを送信できるレーンをいう。
【0113】
アクティブレーン判定部101は、バックプレッシャ信号BP[1:m]によって分配を禁止されておらず、かつ設定信号Load Share EN[1:m]によって使用可能に設定されているレーンを、アクティブ状態のレーンと判定する。設定信号Load Share EN[1:m]は、予め設定されている設定情報に基づき、各レーンsi1〜simのそれぞれについて使用可否を指定する信号である。
【0114】
各アクティブレーン判定部101−1〜101−kは、アクティブ状態のレーンを指示するアクティブレーン指示信号CH1−Active[1:m]〜CHk−Active[1:m]を出力する。アクティブレーン指示信号CHj−Active[1:m]は(記号jは添え字である)、レーンsi1〜sim毎に、各レーンを経由するセグメントデータの送信の可否をそれぞれ指示する各信号の集合であってよい。
【0115】
各チャネルCH1〜CHk用のレーン決定部102−1〜102−kは、アクティブレーン指示信号CH1−Active[1:m]〜CHk−Active[1:m]をそれぞれ受信する。チャネル信号s−CH−Numによって示されるチャネルがCHxであるとき(記号xは添え字である)、レーン決定部102−xがアクティブ状態となる。レーン決定部102−xは、アクティブ状態にあるレーンの中からセグメントデータを送出するレーンを選択する。レーン決定部102−xは、セグメントデータを送出するレーンを示すレーン番号指示信号CHx−STを出力する。
【0116】
指示信号生成部103は、チャネル信号s−CH−Numが示すチャネルCHxのレーン決定部102−xから出力されるレーン番号指示信号CHx−STを入力する。指示信号生成部103は、レーン番号指示信号CHx−STにより指示されるレーンを指示する指示信号en[1:m]を生成する。
【0117】
図16は、レーン決定部102−1の概略構成図である。他のレーン決定部102−2〜102−kも同様の構成を有する。参照符号110−1〜110−mはレーン番号保持部を示し、参照符号111はフリップフロップを示し、参照符号112はアクティブレーン指示信号保持部を示し、参照符号113はレーン選択部を示し、参照符号114は優先度制御部を示す。
【0118】
レーン決定部102−1は、レーン番号保持部110−1〜110−m(以下、総称してレーン番号保持部110と記すことがある)と、フリップフロップ111と、アクティブレーン指示信号保持部112と、レーン選択部113と、優先度制御部114を備える。
【0119】
レーン番号保持部110−1〜110−mは、それぞれ、m個の各レーンsi1〜simのいずれかのレーン番号を保持する。各レーン番号保持部110−1〜110−mが保持するレーン番号は、それぞれ、スイッチインタフェース12によりセグメントデータを分配される優先順位がそれぞれ第1位〜第m位であるレーンのレーン番号である。すなわち、レーン番号保持部110−1に保持されるレーンの優先順位は第1位で優先度が最も高く、レーン番号保持部110−mに保持されるレーンの優先順位は第m位で優先度が最も低い。
【0120】
各レーン番号保持部110−1〜110−mは、それぞれが保持しているレーン番号を示す信号DT[1]〜DT[m]をレーン選択部113及び優先度制御部114へ出力する。
【0121】
フリップフロップ111は、クロック信号の立ち上がりによってラッチしたセグメントデータ開始信号SOSの値を、次のクロック信号の立ち上がりまで保持する。フリップフロップ111により保持された信号SOSがセグメントデータの開始を示すとき、アクティブレーン指示信号保持部112は、現在入力されているアクティブレーン指示信号CH1−Active[1:m]をラッチする。アクティブレーン指示信号保持部112によりラッチされているアクティブレーン指示信号をLatch−Active[1:m]と記す。
【0122】
チャネル信号s−CH−Numによってレーン決定部102−1がアクティブ状態になったとき、レーン選択部113は、信号Latch−Active[1:m]によりアクティブ状態にあると指示されるレーンの中のいずれかのレーンを選択する。このときレーン選択部113は、アクティブ状態にあるレーンのうち、レーン番号保持部110に保持される優先順位が所定条件以上のレーンのいずれかを選択する。
【0123】
例えば、レーン選択部113は、アクティブ状態にあるレーンのうち、最も優先順位が高いレーンを選択する。他の実施例では、レーン選択部113は、アクティブ状態にあるレーンのうち2番目や3番目の順位のレーンを選択してもよい。さらに他の実施例では、レーン選択部113は、アクティブ状態にあるレーンのうち、優先順位が所定順位よりも高い複数のレーンを選び、この中から他の基準によっていずれかのレーンを選択してもよい。以下に説明する例では、便宜上、レーン選択部113は、アクティブ状態にあるレーンのうち、最も優先順位が高いレーンを選択する。
【0124】
レーン選択部113は、選択したレーンのレーン番号を示すレーン番号指示信号CH1−STを指示信号生成部103へ出力する。レーン選択部113は、レーン番号指示信号CH1−STを出力したとき、入れ替えトリガ信号を優先度制御部114に出力する。
【0125】
優先度制御部114は、入れ替えトリガ信号を受信したとき、レーン番号指示信号CH1−STで指示したレーンの優先順位を下げるように、レーン番号保持部110−1〜110−mによって保持される優先順位を変更する。このとき、優先度制御部114は、レーン番号指示信号CH1−STで指示したレーンよりも高い優先順位のレーンの優先順位が維持されるように、優先順位を変更する。また、優先度制御部114は、レーン番号指示信号CH1−STで指示したレーンよりも低い優先順位のレーンの優先順位を繰り上げる。
【0126】
以下に説明する例では、便宜上、優先度制御部114は、レーン番号指示信号CH1−STで指示したレーンの優先順位が最低になるように優先順位を変更する。しかし、本件開示の装置及び方法はこのような例に限定されるものではない。レーン番号指示信号CH1−STで指示したレーンの優先順位が下がることにより、後述する本件開示の装置及び方法の効果が生じる。
【0127】
優先度制御部114は、新規レーン番号信号NL[1]〜NL[m]及びレーン番号書き込み信号EN[1]〜EN[m]を、各レーン番号保持部110−1〜110−mへ出力する。新規レーン番号信号NL[1]〜NL[m]は、優先順位の変更後に各レーン番号保持部110−1〜110−mへそれぞれ書き込むべき、新たなレーン番号を指示する。レーン番号書き込み信号EN[1]〜EN[m]は、各レーン番号保持部110−1〜110−mへ、新規レーン番号信号NL[1]〜NL[m]の値の書き込みを指示する信号である。
【0128】
図17及び図18は、本実施例に係るセグメントデータの分配方法の説明図である。別な実施の態様においては、下記のアクティビティBA〜BB及びCA〜CFの各アクティビティはステップであってもよい。また、符号ForkとJoinとの間にある並列する複数のアクティビティの列は、どれを先に実行してもよく、また同時に実行してもよい。
【0129】
図17は、各アクティブレーン判定部101−1〜101−kによる、アクティブレーン指示信号CH1−Active[1:m]〜CHk−Active[1:m]の生成処理を示す。いま、記号xをk個のチャネルCH1〜CHkのいずれかを指定する添え字(x=1〜k)とする。
【0130】
アクティビティBAにおいてアクティブレーン判定部101−xは、バックプレッシャ信号BP[1:m]及び、予め設定されている設定情報に基づく設定信号Load Share EN[1:m]を監視する。
【0131】
アクティビティBBにおいてアクティブレーン判定部101−xは、バックプレッシャ信号BP[1:m]及び設定信号Load Share EN[1:m]に基づいて、レーンsi1〜simのいずれのレーンがアクティブ状態にあるかを判定する。アクティブレーン判定部101−xは、アクティブ状態のレーンを指示するアクティブレーン指示信号CHx−Active[1:m]を生成し、レーン決定部102−xへ出力する。
【0132】
続いて図18を参照する。アクティビティCAにおいてチャネル識別部41は、入力されたセグメントデータが属するチャネルを識別し、チャネル信号s−CH−Numを、セグメント分配処理制御部42へ出力する。チャネル識別部41により識別されたチャネルをCHxと示す。記号xは、チャネルCH1〜CHkのいずれかを指定する添え字である。
【0133】
アクティビティCBにおいて、チャネル信号s−CH−Numによって示されるチャネルがCHxのために設けられたレーン決定部102−xがアクティブ状態となる。アクティビティCCにおいてレーン決定部102−xのレーン選択部113は、アクティブレーン指示信号CHx−Active[1:m]によってアクティブ状態であると示されるレーンのうち、最も優先順位が高いレーンを選択する。レーン選択部113は、選択したレーンのレーン番号を示すレーン番号指示信号CHx−STを指示信号生成部103へ出力する。
【0134】
アクティビティCDにおいて指示信号生成部103は、レーン番号指示信号CHx−STにより指示されるレーンを指示する指示信号en[1:m]を生成する。アクティビティCEにおいてセグメント分配部100は、指示信号en[1:m]により指定されるレーンへ、セグメントデータを出力する。
【0135】
アクティビティCFにおいて優先度制御部114は、アクティビティCCにおいて選択したレーンの優先順位を下げるように、レーン番号保持部110−1〜110−mによって保持される優先順位を変更する。このとき優先度制御部114は、アクティビティCCにおいて選択したレーンの優先順位が最低になるように優先順位を変更してよい。
【0136】
図19及び図20は、本実施例に係るセグメントデータの分配状態を説明するタイムチャートである。図19は、図示された時刻t4より前の状態の説明に使用され、図20は、図示された時刻t4以降の状態の説明に使用される。
【0137】
図6及び図7における説明と同様に、インタフェースカード10の数が4個であり、インタフェースカード30の数が4個である場合を想定する。また、スイッチ21の数は4個であり、1つのスイッチインタフェース12からスイッチ21へ接続されるレーンは4本のレーンsi1〜si4であり、セグメントデータが4つのチャネルにグループ化されている場合を想定する。また、設定信号Load Share EN[1:4]が、4本のレーンsi1〜si4全てについて使用できると指定していると想定する。
【0138】
信号Aは、入力されたセグメントデータを示す。セグメントデータを示す矩形の表記法は、図6及び図7と同様である。信号Bは、チャネルCH1について設けられたレーン決定部102−1のレーン番号保持部110−1〜110−4にそれぞれ保持されるレーン番号を示す。より上位の段から順にレーン番号保持部110−1〜110−4に保持されるレーン番号が表される。すなわち、より上位の段にあるレーンほどセグメントデータを分配する優先順位が高い。
【0139】
信号C〜Eも同様に、チャネルCH2〜4について設けられたレーン決定部102−2〜102−4のレーン番号保持部110−1〜110−4にそれぞれ保持されるレーン番号を示す。時刻t1では、いずれのチャネルCH1〜CH4についても、レーン番号保持部110−1〜110−4にはそれぞれレーン番号「1」〜「4」が格納されていると想定する。
【0140】
信号F〜Iは、セグメントデータを分配するレーンを指示する指示信号en[1]〜en[4]を示す。チャートJ〜Mは、セグメントデータによる各レーンsi1〜simの使用状態を示す。
【0141】
図14において例示するように、セグメント分配部100がFiFoメモリ44−1〜44−mを備えるとき、信号F〜Iは、各FiFoメモリ44−1〜44−4への書き込みをそれぞれ指示する書込指示信号en[1]〜en[4]であってよい。このとき、チャートJ〜Mは、セグメントデータによる各FiFoメモリ44−1〜44−4の使用状態を示す。
【0142】
例えば、時刻t1において、チャネルCH1の1番目のセグメントデータの処理が行われる。チャネルCH1についてレーンの優先順位を保持するレーン番号保持部110には、レーン番号「1」、「2」、「3」、「4」の順番の優先度が格納されている。
【0143】
レーン選択部113は、アクティブ状態にあるレーンのうち、レーン番号保持部110に保持される優先順位が最も高いレーンを選択する。時刻t1では、レーンsi1〜si4はまだ他のセグメントデータに使用されていないため、全てのレーンがアクティブ状態にある。
【0144】
このため、レーン選択部113は、セグメントデータを送信するレーンとしてレーン「1」を決定する。指示信号生成部103は、レーンsi1へのセグメントデータの分配を指示する指示信号en[1]の値を、「分配しない」ことを示す「0」から「分配する」ことを示す「1」へ変更する。
【0145】
この結果、チャネルCH1の1番目のセグメントデータはsi1へ分配される。セグメントデータがレーンsi1を使用する間、バックプレッシャ信号BP[1:4]は、このレーンへのセグメントデータの分配を禁止する。
【0146】
説明の簡単のため、便宜上、以下の説明において、あるレーンへのセグメントデータの分配を禁止するバックプレッシャ信号BP[1:4]は、このレーンへ分配され未だスイッチ21への送信処理が完了していないセグメントデータが1個あれば生成される。例えば、セグメント分配部100がFiFoメモリ44を備える場合は、あるFiFoメモリ44に未送信のセグメントデータが1個でも格納されていれば、このFiFoメモリ44への書き込みを禁止するバックプレッシャ信号BPが生成される。
【0147】
しかし、バックプレッシャ信号BP[1:4]の生成条件は、この条件に限定されるものではなく、例えば、スイッチ21への送信処理が完了していないセグメントデータが2個以上である所定個になったとき、バックプレッシャ信号BP[1:m]を生成してよい。例えば、2個以上である所定個の未送信のセグメントデータがあるFiFoメモリ44に格納されている場合に、このFiFoメモリ44への書き込みを禁止するバックプレッシャ信号BPが生成されてもよい。
【0148】
優先度制御部114は、レーン番号「1」の優先順位が最低になるように、レーン番号保持部110に格納される優先順位を変更する。また優先度制御部114は、他のレーン番号の優先順位を繰り上げる。この結果、レーン番号保持部110に格納される各レーンの優先順位は、レーン番号「2」、「3」、「4」、「1」の順で高い優先順位となる。
【0149】
また、例えば時刻t2において、チャネルCH3の1番目のセグメントデータの処理が行われる。チャネルCH3についてレーンの優先順位を保持するレーン番号保持部110には、レーン番号「1」、「2」、「3」、「4」の順番の優先度が格納されている。
【0150】
レーン選択部113は、アクティブ状態にあるレーンのうち、レーン番号保持部110に保持される優先順位が最も高いレーンを選択する。時刻t2では、レーンsi1及びsi2が他のセグメントデータに使用されているため、バックプレッシャ信号BP[1]及びBP[2]により、レーンsi1及びsi2への分配が禁止される。
【0151】
このため、レーン選択部113は、セグメントデータを送信するレーンとしてレーン「3」を決定する。指示信号生成部103は、レーンsi3へのセグメントデータの分配を指示する指示信号en[3]の値を、「分配しない」ことを示す「0」から「分配する」ことを示す「1」へ変更する。
【0152】
この結果、チャネルCH3の1番目のセグメントデータはsi3へ分配される。優先度制御部114は、レーン番号「3」の優先順位が最低になるように、レーン番号保持部110に格納される優先順位を変更する。また優先度制御部114は、他のレーン番号の優先順位を繰り上げる。この結果、レーン番号保持部110に格納される各レーンの優先順位は、レーン番号「1」、「2」、「4」、「3」の順で高い優先順位となる。
【0153】
また、例えば時刻t3において、チャネルCH3の2番目のセグメントデータの処理が行われる。レーン番号保持部110には、レーン番号「1」、「2」、「4」、「3」の順番の優先度が格納されている。時刻t3では、レーンsi1が他のセグメントデータに使用されているため、レーンsi1への分配が禁止される。
【0154】
このため、レーン選択部113は、セグメントデータを送信するレーンとしてレーン「2」を決定する。指示信号生成部103は、指示信号en[2]の値を、「分配しない」ことを示す「0」から「分配する」ことを示す「1」へ変更する。
【0155】
この結果、チャネルCH3の2番目のセグメントデータはsi2へ分配される。優先度制御部114は、レーン番号「2」の優先順位が最低になるように、レーン番号保持部110に格納される優先順位を変更し、また他のレーン番号の優先順位を繰り上げる。この結果、レーン番号保持部110に格納される各レーンの優先順位は、レーン番号「1」、「4」、「3」、「2」の順で高い優先順位となる。
【0156】
また、例えば時刻t5において、チャネルCH3の3番目のセグメントデータの処理が行われる。レーン番号保持部110には、レーン番号「1」、「4」、「3」、「2」の順番の優先度が格納されている。時刻t5では、レーンsi1〜si3が他のセグメントデータに使用されているため、レーンsi1〜si3への分配が禁止される。
【0157】
このため、レーン選択部113は、セグメントデータを送信するレーンとしてレーン「4」を決定する。指示信号生成部103は、指示信号en[4]の値を、「分配しない」ことを示す「0」から「分配する」ことを示す「1」へ変更する。
【0158】
この結果、チャネルCH3の3番目のセグメントデータはsi4へ分配される。優先度制御部114は、レーン番号「4」の優先順位が最低になるように、レーン番号保持部110に格納される優先順位を変更し、また他のレーン番号の優先順位を繰り上げる。この結果、レーン番号保持部110に格納される各レーンの優先順位は、レーン番号「1」、「3」、「2」、「4」の順で高い優先順位となる。
【0159】
また、例えば時刻t6において、チャネルCH3の4番目のセグメントデータの処理が行われる。レーン番号保持部110には、レーン番号「1」、「3」、「2」、「4」の順番の優先度が格納されている。時刻t6では、レーンsi4が他のセグメントデータに使用されているため、レーンsi4への分配が禁止される。
【0160】
このため、レーン選択部113は、セグメントデータを送信するレーンとしてレーン「1」を決定する。指示信号生成部103は、指示信号en[1]の値を、「分配しない」ことを示す「0」から「分配する」ことを示す「1」へ変更する。
【0161】
この結果、チャネルCH3の4番目のセグメントデータはsi1へ分配される。優先度制御部114は、レーン番号「1」の優先順位が最低になるように、レーン番号保持部110に格納される優先順位を変更し、また他のレーン番号の優先順位を繰り上げる。この結果、レーン番号保持部110に格納される各レーンの優先順位は、レーン番号「3」、「2」、「4」、「1」の順で高い優先順位となる。
【0162】
図19及び図20に示す順序で処理されるチャネルCH1の第2〜5番目のセグメントデータ、並びにチャネルCH2及びCH4の第1〜4番目のセグメントデータも、同様に分配する。この結果、レーンsi1〜si4へ分配される各チャネルCH1〜CH4毎のセグメントデータ数は以下の通りとなる。
【0163】
レーンsi1に分配されるCH1〜CH4のセグメントデータの数は、全て1個である。レーンsi2に分配されるCH1〜CH4のセグメントデータの数は、全て1個である。レーンsi3に分配されるCH1〜CH4のセグメントデータの数は、それぞれ2個、1個、1個及び0個である。レーンsi4に分配されるCH1〜CH4のセグメントデータの数は、全て1個である。
【0164】
このように、本実施例による図15のセグメント分配処理制御部42によるセグメントデータの分配方法によれば、図4のセグメント分配処理制御部42の場合と比べて、各レーンに分配されるチャネル毎のセグメントデータ数の偏りが低減される。
【0165】
このため、本実施例によれば、上記偏りに起因して発生していた、同一チャネル内のセグメントデータ同士の間におけるスイッチ21の滞留時間のバラツキが低減される。この結果、同一チャネル内のセグメントデータ同士の間におけるインタフェースカード30へ到着するまでの遅延時間のバラツキが低減される。
【0166】
図21及び22は、図4のセグメント分配処理制御部によるセグメントデータの分配状態及び遅延時間のバラツキのシミュレーション結果である。また、図23及び図24は、図15のセグメント分配処理制御部によるセグメントデータの分配状態及び遅延時間のバラツキのシミュレーション結果である。
【0167】
このシミュレーションでは、1つのスイッチインタフェース12からスイッチ21へ接続されるレーン数は8本であり、セグメントデータが8つのチャネルにグループ化されている場合を想定した。各チャネルのトラヒック量、セグメントデータ長、各FiFoメモリ44−1〜FiFoメモリ44−8がバックプレッシャ信号を出力する条件は、どちらの場合も同じである。
【0168】
図21及び図23において、8つの各プロットは、8つのチャンネルch0〜ch7に属するセグメントデータが、レーン1〜8へそれぞれ分配された数を示す。図21及び図23を比較すると明らかなように、図4のセグメント分配処理制御部に比べて、図15のセグメント分配処理制御部によるシミュレーション結果の方が、各レーンに分配されるチャネル毎の分配数の偏りが低減されている。
【0169】
図22及び図24において、3つの各プロットは、各セグメントデータに生じた遅延時間の最大値、最小値及び平均値を示す。図22と図24との間において、縦軸の同じ指標値は同じ遅延量を示す。図22及び図24を比較すると明らかなように、図15のセグメント分配処理制御部によるシミュレーション結果の方が、遅延量の最大値が低減され、遅延量のバラツキが低減されていることが分かる。
【0170】
図25は、本実施例に係るセグメント分配処理制御部の第2例の概略構成図である。図15に示す構成要素と同様の構成要素には、図15で使用した参照符号と同じ参照符号を付する。本例のセグメント分配処理制御部42のアクティブレーン判定部101−1〜101−kは、予め設定されている設定情報として、設定信号CH1−Lane−eN[1:m]〜CHk−Lane−eN[1:m]を入力する。設定信号CH1−Lane−eN[1:m]〜CHk−Lane−eN[1:m]を総称して設定信号CH−Lane−eN[1:m]と記載することがある。
【0171】
設定信号CH−Lane−eN[1:m]は、使用可能なレーンをチャネル毎に指定する信号である。アクティブレーン判定部101は、バックプレッシャ信号BP[1:m]が分配を禁止しておらず、かつ設定信号Load Share EN[1:m]及びCH−Lane−eN[1:m]の双方が使用可と設定するレーンを、アクティブ状態のレーンと判定する。
【0172】
本実施例によれば、セグメントデータを分配できるレーンを、チャネル毎に指定することが可能となる。この結果、各チャネルのセグメントデータがそれぞれ使用するレーンを分離することが可能となる。
【0173】
図10の(B)の参照符号68に示す様な、出力バッファ22−2におけるセグメントの輻輳は、複数のチャネルのセグメントデータが同じスイッチ21の同じ出力バッファ22−2に格納されることによっても発生する。本実施例によれば、各チャネルのセグメントデータがそれぞれ使用するレーン、すなわちスイッチ21を分離することが可能となるため、スイッチ21の出力バッファ22−1〜22−4における輻輳が低減される。これによって、スイッチ21における滞在時間のバラツキが低減される。
【0174】
なお、使用するスイッチ21を、インタフェースカード10によって分離するように設定信号CH−Lane−eN[1:m]の値を設定してもよい。
【0175】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
【0176】
(付記1)
フレームを分割した複数のセグメントデータを前記フレームの宛先へそれぞれスイッチングする複数のスイッチへ、前記複数のセグメントデータをそれぞれ分配するセグメントデータ処理回路であって、
前記セグメントデータがそれぞれ属するグループ毎に前記複数のスイッチ間の優先度を記憶する優先度記憶部と、
受信した前記セグメントデータが属するグループを識別するグループ識別部と、
前記セグメントデータのグループについて記憶される優先度が所定条件以上のスイッチを、前記セグメントデータの分配先として選択するスイッチ選択部と、
選択された前記スイッチの前記セグメントデータのグループについて記憶された優先度を下げる優先度制御部と、
を備えるセグメントデータ処理回路。
【0177】
(付記2)
前記優先度制御部は、選択された前記スイッチの前記セグメントデータのグループについて記憶された優先度を最低の優先度にする付記1に記載のセグメントデータ処理回路。
【0178】
(付記3)
前記セグメントデータを分配できるスイッチを前記グループ毎に指定する指定信号に従って、前記セグメントデータを分配できる前記スイッチを判定する分配先スイッチ判定部を備え、
前記スイッチ選択部は、前記セグメントデータの分配先として選択するスイッチを、前記セグメントデータを分配できるスイッチから選択する付記1又は2に記載のセグメントデータ処理回路。
【0179】
(付記4)
前記フレームは、時分割多重通信において伝送される同期フレームである付記1〜3のいずれか一項に記載のセグメントデータ処理回路。
【0180】
(付記5)
付記1〜4のいずれか一項に記載のセグメントデータ処理回路と、
前記フレームを受信する受信部と、
受信された前記フレームを分割して前記複数のセグメントデータを生成するフレーム分割部と、を備え、
前記セグメントデータ処理回路は、前記フレーム分割部により生成された前記複数のセグメントデータのそれぞれをスイッチングさせるスイッチを選択するインタフェースユニット。
【0181】
(付記6)
付記4に記載のインタフェースユニットとしての第1インタフェースユニットと、
前記複数のスイッチと、
第2インタフェースユニットと、を備え、
前記第2インタフェースユニットは、前記スイッチから受信した前記セグメントデータをフレームに組み立てるフレーム組立部と、組み立てた前記フレームを送信する送信部と、を有するフレーム伝送装置。
【0182】
(付記7)
フレームを分割した複数のセグメントデータを前記フレームの宛先へそれぞれスイッチングする複数のスイッチへ、前記複数のセグメントデータをそれぞれ分配するセグメントデータの分配方法であって、
前記セグメントデータがそれぞれ属するグループ毎に前記複数のスイッチ間の優先度を所定の優先度記憶部に記憶し、
受信した前記セグメントデータが属するグループを識別し、
前記セグメントデータのグループについて記憶される優先度が所定条件以上のスイッチを、前記セグメントデータの分配先として選択し、
選択された前記スイッチの前記セグメントデータのグループについて記憶された優先度を下げる、セグメントデータの分配方法。
【符号の説明】
【0183】
1 フレーム伝送装置
10、10−1〜10−n、30、30−1〜30−n インタフェースカード
12、12−1〜12−n スイッチインタフェース
20 スイッチカード
21、21−1〜21−m スイッチ
41 チャネル識別部
110−1〜110−m レーン番号保持部
113 レーン選択部
114 優先度制御部
【特許請求の範囲】
【請求項1】
フレームを分割した複数のセグメントデータを前記フレームの宛先へそれぞれスイッチングする複数のスイッチへ、前記複数のセグメントデータをそれぞれ分配するセグメントデータ処理回路であって、
前記セグメントデータがそれぞれ属するグループ毎に前記複数のスイッチ間の優先度を記憶する優先度記憶部と、
受信した前記セグメントデータが属するグループを識別するグループ識別部と、
前記セグメントデータのグループについて記憶される優先度が所定条件以上のスイッチを、前記セグメントデータの分配先として選択するスイッチ選択部と、
選択された前記スイッチの前記セグメントデータのグループについて記憶された優先度を下げる優先度制御部と、
を備えるセグメントデータ処理回路。
【請求項2】
前記優先度制御部は、選択された前記スイッチの前記セグメントデータのグループについて記憶された優先度を最低の優先度にする請求項1に記載のセグメントデータ処理回路。
【請求項3】
前記セグメントデータを分配できるスイッチを前記グループ毎に指定する指定信号に従って、前記セグメントデータを分配できる前記スイッチを判定する分配先スイッチ判定部を備え、
前記スイッチ選択部は、前記セグメントデータの分配先として選択するスイッチを、前記セグメントデータを分配できるスイッチから選択する請求項1又は2に記載のセグメントデータ処理回路。
【請求項4】
請求項1〜3のいずれか一項に記載のセグメントデータ処理回路と、
前記フレームを受信する受信部と、
受信された前記フレームを分割して前記複数のセグメントデータを生成するフレーム分割部と、を備え、
前記セグメントデータ処理回路は、前記フレーム分割部により生成された前記複数のセグメントデータのそれぞれをスイッチングさせるスイッチを選択するインタフェースユニット。
【請求項5】
請求項3に記載のインタフェースユニットとしての第1インタフェースユニットと、
前記複数のスイッチと、
第2インタフェースユニットと、を備え、
前記第2インタフェースユニットは、前記スイッチから受信した前記セグメントデータをフレームに組み立てるフレーム組立部と、組み立てた前記フレームを送信する送信部と、を有するフレーム伝送装置。
【請求項6】
フレームを分割した複数のセグメントデータを前記フレームの宛先へそれぞれスイッチングする複数のスイッチへ、前記複数のセグメントデータをそれぞれ分配するセグメントデータの分配方法であって、
前記セグメントデータがそれぞれ属するグループ毎に前記複数のスイッチ間の優先度を所定の優先度記憶部に記憶し、
受信した前記セグメントデータが属するグループを識別し、
前記セグメントデータのグループについて記憶される優先度が所定条件以上のスイッチを、前記セグメントデータの分配先として選択し、
選択された前記スイッチの前記セグメントデータのグループについて記憶された優先度を下げる、セグメントデータの分配方法。
【請求項1】
フレームを分割した複数のセグメントデータを前記フレームの宛先へそれぞれスイッチングする複数のスイッチへ、前記複数のセグメントデータをそれぞれ分配するセグメントデータ処理回路であって、
前記セグメントデータがそれぞれ属するグループ毎に前記複数のスイッチ間の優先度を記憶する優先度記憶部と、
受信した前記セグメントデータが属するグループを識別するグループ識別部と、
前記セグメントデータのグループについて記憶される優先度が所定条件以上のスイッチを、前記セグメントデータの分配先として選択するスイッチ選択部と、
選択された前記スイッチの前記セグメントデータのグループについて記憶された優先度を下げる優先度制御部と、
を備えるセグメントデータ処理回路。
【請求項2】
前記優先度制御部は、選択された前記スイッチの前記セグメントデータのグループについて記憶された優先度を最低の優先度にする請求項1に記載のセグメントデータ処理回路。
【請求項3】
前記セグメントデータを分配できるスイッチを前記グループ毎に指定する指定信号に従って、前記セグメントデータを分配できる前記スイッチを判定する分配先スイッチ判定部を備え、
前記スイッチ選択部は、前記セグメントデータの分配先として選択するスイッチを、前記セグメントデータを分配できるスイッチから選択する請求項1又は2に記載のセグメントデータ処理回路。
【請求項4】
請求項1〜3のいずれか一項に記載のセグメントデータ処理回路と、
前記フレームを受信する受信部と、
受信された前記フレームを分割して前記複数のセグメントデータを生成するフレーム分割部と、を備え、
前記セグメントデータ処理回路は、前記フレーム分割部により生成された前記複数のセグメントデータのそれぞれをスイッチングさせるスイッチを選択するインタフェースユニット。
【請求項5】
請求項3に記載のインタフェースユニットとしての第1インタフェースユニットと、
前記複数のスイッチと、
第2インタフェースユニットと、を備え、
前記第2インタフェースユニットは、前記スイッチから受信した前記セグメントデータをフレームに組み立てるフレーム組立部と、組み立てた前記フレームを送信する送信部と、を有するフレーム伝送装置。
【請求項6】
フレームを分割した複数のセグメントデータを前記フレームの宛先へそれぞれスイッチングする複数のスイッチへ、前記複数のセグメントデータをそれぞれ分配するセグメントデータの分配方法であって、
前記セグメントデータがそれぞれ属するグループ毎に前記複数のスイッチ間の優先度を所定の優先度記憶部に記憶し、
受信した前記セグメントデータが属するグループを識別し、
前記セグメントデータのグループについて記憶される優先度が所定条件以上のスイッチを、前記セグメントデータの分配先として選択し、
選択された前記スイッチの前記セグメントデータのグループについて記憶された優先度を下げる、セグメントデータの分配方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【公開番号】特開2011−49966(P2011−49966A)
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願番号】特願2009−198242(P2009−198242)
【出願日】平成21年8月28日(2009.8.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願日】平成21年8月28日(2009.8.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]