リングバッファの使用方法およびスイッチング装置
【課題】パケットの再組立を従来よりも高速に行うことができるようにする。
【解決手段】リングバッファを複数のセクションに区切っておき、連続する2つ以上のセクションを監視区間Taとして定め、送られてきたセグメントSMを所定のセクションに格納し、パケットPTの再組立に必要なセグメントSMが監視区間Taに格納されているか否かを監視し、パケットPTの再組立に必要なセグメントSMが監視区間Taに揃ったらそれらを呼び出してパケットPTの再組立を行い、セグメントSMを格納したセクションが監視区間Taよりも後ろである場合に、監視区間Taの最後尾がこのセクションになるように監視区間Taを移動させる。
【解決手段】リングバッファを複数のセクションに区切っておき、連続する2つ以上のセクションを監視区間Taとして定め、送られてきたセグメントSMを所定のセクションに格納し、パケットPTの再組立に必要なセグメントSMが監視区間Taに格納されているか否かを監視し、パケットPTの再組立に必要なセグメントSMが監視区間Taに揃ったらそれらを呼び出してパケットPTの再組立を行い、セグメントSMを格納したセクションが監視区間Taよりも後ろである場合に、監視区間Taの最後尾がこのセクションになるように監視区間Taを移動させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、リングバッファの使用方法およびこれを適用したスイッチング装置に関する。
【背景技術】
【0002】
図11は従来のスイッチングノードの機能の例を説明するための図、図12は従来のスイッチングノード9の構成およびパケットの取扱いの例を示す図である。
【0003】
従来、パケット交換網において、通信の対象のデータは、次のようにしてやりとりされている。
【0004】
送信側の装置は、データを複数のパケットに分割し、受信側の装置を宛先として指定してパケット交換網に送出する。すると、各パケットは、様々なスイッチングノードによって中継され、受信側の装置に届けられる。受信側の装置は、各パケットを組み立てて元のデータに戻す。
【0005】
スイッチングノードは、上記の1組の装置同士やり取りされるパケットだけでなく、それ以外の組の装置間でやり取りされるパケットをも中継する。したがって、スイッチングノードは、図11に示すように、様々なサイズのパケットを中継する。
【0006】
パケットの中継をより高速に行うために、図12に示すようなスイッチングノード9が提案されている。
【0007】
スイッチングノード9には、複数のスイッチファブリック(Switch Fabric)92が設けられている。入力トラフィック制御部(Ingress TM)91は、入力されたパケットPTを、サイズがほぼ均一な複数のセグメントSMに分割し、これらのセグメントSMを複数のスイッチファブリック92にほぼ均一に振り分ける。各スイッチファブリック92は、自らに振り分けられたセグメントSMを、中継先のノードに接続されている出力トラフィック制御部(Egress TM)93にスイッチングする。そして、出力トラフィック制御部93は、スイッチファブリック92から送られてきたセグメントSMを組み立てることによってパケットPTを再生成し、中継先のノードに送信する。
【0008】
このように様々なサイズのパケットPTをほぼ均一なセグメントSMに分割し複数のスイッチファブリック92にほぼ均一に振り分けてスイッチングすれば、パケットPTをセグメントSMに分割せずにスイッチングする場合よりも、アイドリングの時間を少なくしてスイッチファブリック92を稼動させることができる。よって、パケットPTの中継を高速に行うことができる。
【0009】
そのほか、特許文献1には、交換装置におけるバッファの管理の方法が開示されている。特許文献2には、セルが通信帯域の申告値通りに送られてきているか否かを監視する方法が開示されている。
【特許文献1】特開平10−98475号公報
【特許文献2】特開平7−273771号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
図12で説明した、パケットPTをほぼ均一なセグメントSMに分割し複数のスイッチファブリック92にほぼ均一に振り分ける方法を適用しつつ、さらに高速にスイッチングを行うためには、パケットPTの再組立を高速に行えばよい。
【0011】
本発明は、このような課題に鑑み、パケットの再組立を従来よりも高速に行うことができるようにすることを、目的とする。
【課題を解決するための手段】
【0012】
本発明の一実施形態に係るバッファの使用方法は、複数の分割データに分割されたデータの組立を行う際に使用するバッファを、複数のセクションに区切っておき、前記セクションのうちの連続する2つ以上を監視区間として定める。送られてきた前記分割データを前記セクションのうちの所定のセクションに格納する。前記分割データを格納した前記所定のセクションが前記監視区間よりも後ろである場合に、当該監視区間の最後尾が当該所定のセクションになるように当該監視区間を移動させる。格納および移動の処理と並行してまたは前後して、前記データの組立に必要な複数の分割データが前記監視区間に格納されているか否かを監視し、前記データの組立に必要な前記複数の分割データが前記監視区間に揃ったら、当該データの組立を行うために前記バッファから当該複数の分割データを呼び出す。
【0013】
本発明の他の実施形態に係るバッファの使用方法は、複数の分割データに分割されたデータの組立を行う際に使用するバッファを、複数のセクションに区切っておき、前記セクションのうちの2つ以上を監視区間として定める。前記セクションのうちの2つ以上を含みかつ前記監視区間の所定の部分を含む区間を受入区間として定め、送られてきた前記分割データを格納すべき前記セクションを決定し、決定した前記セクションが前記受入区間に該当する場合は送られてきた前記分割データを当該セクションに格納し、該当しない場合は当該分割データを破棄し、前記分割データを格納した前記所定のセクションが前記監視区間よりも後ろである場合に、当該監視区間の最後尾が当該所定のセクションになるように当該監視区間を移動させ、前記監視区間の移動に合わせて前記受入区間を移動させる。これらの処理と並行してまたは前後して、前記データの組立に必要な前記分割データが前記監視区間に格納されているか否かを監視し、前記データの組立に必要な前記分割データが前記監視区間に揃ったら、当該データの組立を行うために当該分割データを呼び出す。
【0014】
本発明の一実施形態に係るスイッチング装置は、複数のパケット受信手段と、複数のパケット分割手段と、複数の分割データ中継手段と、バッファを有する複数のパケット転送手段と、を有するスイッチング装置であって、前記パケット受信手段は、スイッチングの対象のパケットを受信し、前記パケット分割手段は、前記パケット受信手段によって受信された前記パケットを複数の分割データに分割し、当該各パケットを複数の前記分割データ中継手段に振り分け、前記分割データ中継手段は、前記パケット分割手段から振り分けられた前記分割データを、当該分割データの基の前記パケットの次の送り先のノードと通信を行う前記パケット転送手段に中継し、前記パケット転送手段は、前記バッファを、複数のセクションに区切り、前記セクションのうちの連続する2つ以上を監視区間として定め、前記分割データ中継手段から中継されてきた前記分割データを前記セクションのうちの所定のセクションに格納し、前記パケットの組立に必要な前記分割データが前記監視区間に格納されているか否かを監視し、前記パケットの組立に必要な前記分割データが前記監視区間に揃ったら、当該分割データを呼び出して当該パケットの組立を行い、組立がなされた当該パケットを前記ノードに転送し、前記分割データを格納した前記所定のセクションが前記監視区間よりも後ろである場合は、当該監視区間の最後尾が当該所定のセクションになるように当該監視区間を移動させる。
【0015】
本発明の他の実施形態に係るスイッチング装置は、複数のパケット受信手段と、複数のパケット分割手段と、複数の分割データ中継手段と、バッファを有する複数のパケット転送手段と、を有するスイッチング装置であって、前記パケット受信手段は、スイッチングの対象のパケットを受信し、前記パケット分割手段は、前記パケット受信手段によって受信された前記パケットを複数の分割データに分割し、当該各パケットを複数の前記分割データ中継手段に振り分け、前記分割データ中継手段は、前記パケット分割手段から振り分けられた前記分割データを、当該分割データの基の前記パケットの次の送り先であるノードと通信を行う前記パケット転送手段に中継し、前記パケット転送手段は、前記バッファを、複数のセクションに区切っておき、前記セクションのうちの2つ以上を監視区間として定め、前記セクションのうちの2つ以上を含みかつ前記監視区間の所定の部分を含む区間を受入区間として定め、前記分割データ中継手段から中継されてきた前記分割データを格納すべき前記セクションを決定し、決定した前記セクションが前記受入区間に該当する場合は前記分割データ中継手段から中継されてきた前記分割データを当該セクションに格納し、該当しない場合は当該分割データを破棄し、前記分割データを格納した前記所定のセクションが前記監視区間よりも後ろである場合は、当該監視区間の最後尾が当該所定のセクションになるように当該監視区間を移動させ、前記監視区間の移動に合わせて前記受入区間を移動させ、前記パケットの組立に必要な前記分割データが前記監視区間に格納されているか否かを監視し、前記パケットの組立に必要な前記分割データが前記監視区間に揃ったら、当該パケットの組立を行うために当該分割データを呼び出して当該パケットの組立を行い、組立がなされた当該パケットを前記ノードに転送する。
【発明の効果】
【0016】
本発明によると、パケットの再組立を従来よりも高速に行うことができる。
【発明を実施するための最良の形態】
【0017】
図1はスイッチングノード5の全体的な構成の例を示す図、図2はパケットPTおよびセグメントSMの構成の例を示す図、図3は出力トラフィック制御部53の構成の例を示す図、図4は第一回路グループ1の構成の例を示す図、図5はセグメントSMの構成の例を示す図、図6は8nバイト並替部1Cの例を示す図、図7はセグメントSUkからセグメントSVkへの変換の手順を説明するための図である。
【0018】
本発明の一実施形態に係るスイッチングノード5は、パケットをスイッチングする装置である。スイッチングノード5の全体的な構成は、前に図12で説明した従来のスイッチングノード9の全体的な構成と同じであり、図1に示すように、複数の入力トラフィック制御部51、複数のスイッチファブリック52、および複数の出力トラフィック制御部53などからなる。
【0019】
入力トラフィック制御部51は、入力トラフィック制御部91と同様に機能する。つまり、他のノードから送信されてきたパケットPTを、図2(a)に示すように、所定のサイズの複数のセグメントSMに分割する。また、各セグメントSMには、セグメントヘッダShが付される。
【0020】
分割された各セグメントSMには、パケットPTのペイロードPdの一部分が含まれる。以下、この一部分を「ペイロードSd」と記載する。さらに、先頭のセグメントSMには、パケットPTのパケットヘッダPhが含まれる。
【0021】
ただし、パケットPTが所定のサイズ以内である場合は、図2(b)に示すように、そのパケットPTが分割されずに1つのセグメントSMになることがある。
【0022】
なお、ネットワーク技術の分野においては、「セグメント」は、LAN(Local Area Network)つまりリピータで区切られた範囲のネットワークを意味することがあるが、本実施形態では、パケットPTが適宜分割された個々のデータを意味する。
【0023】
セグメントSMのセグメントヘッダShには、少なくとも次の(A−1)〜(A−4)のような属性の情報が含まれている。
(A−1) セグメントタイプ(Segment Type):そのセグメントSMの種類を示す情報であり、具体的には、図2(a)のセグメントSMaのような先頭のセグメントであるか、セグメントSMbのような中間のセグメントであるか、セグメントSMcのような末尾のセグメントであるか、または図2(b)のセグメントSMのような分割されなかったセグメントであるか、を示す。
(A−2) セグメントシーケンシャルナンバ(Sequential Number of Segment):そのセグメントSMが先頭から何番目のセグメントであるかを示す。
(A−3) セグメント長(Segment Length):そのセグメントSMのビット長(サイズ)を示す。
(A−4) インバウンドカードナンバ(Inbound Card Number)およびポートナンバ(10G Port Number):そのセグメントSMが入力されたインバウンドカードの番号およびポートの番号を示す。これらの番号は、出力トラフィック制御部53において、2つのセグメントSMの元のパケットPTが同一か否かを判別するために用いられる。
【0024】
セグメントSMは、入力トラフィック制御部51によっていずれかのスイッチファブリック52に振り分けられる。
【0025】
スイッチファブリック52も、従来のスイッチファブリック92と同様に機能する。つまり、入力トラフィック制御部51から送られてきたセグメントSMを、その基であるパケットPTの次の送り先であるノードと通信を行う出力トラフィック制御部53に転送する。
【0026】
出力トラフィック制御部53も、従来の出力トラフィック制御部93と基本的に同様に機能する。ただし、出力トラフィック制御部53と出力トラフィック制御部93とは、次の点で相違する。
(B−1) 従来のスイッチングノード9の出力トラフィック制御部93はソフトウェア制御によってセグメントSMからパケットPTへの再組立てを行っているが、スイッチングノード5の出力トラフィック制御部53はソフトウェア制御によらずハードウェアのみによって再組立てを行う。
(B−2) 出力トラフィック制御部53はリングバッファの新たな使用方法を採用している。
【0027】
出力トラフィック制御部53を構成する回路のモジュールは、図3に示すように、主に第一回路グループ1、第二回路グループ2、および第三回路グループ3にグループ化される。さらに、出力トラフィック制御部53には、DRAM41、リオーダバッファ42A、トップシーケンシャルナンバ管理メモリ42B、タイマ縮退値管理メモリ42C、および未送信シーケンシャルナンバ管理メモリ42Dなどの記憶手段が設けられている。
【0028】
第一回路グループ1は、図4に示すように、セグメントパケットヘッダ抽出部1A、セグメントヘッダ削除部1B、8nバイト並替部1C、セグメントCRC生成部1D、DRAM−REQ生成部1E、ACK受信FiFoバッファ1F、ヘッダ情報変換部1G、待合せFiFoバッファ1H、および待合せ処理部1Jなどの回路のモジュールによって構成される。
【0029】
以下、ある1つのセグメントSMkが第一回路グループ1に入力された場合を例に、第一回路グループ1の各部の動作を説明する。
【0030】
セグメントパケットヘッダ抽出部1Aは、セグメントSMkの中からセグメントヘッダShを抽出する。セグメントSMkが先頭のセグメントまたは非分割のセグメントである場合は、パケットヘッダPhをも抽出する。
【0031】
セグメントパケットヘッダ抽出部1Aには、セグメントSMkのほか、セグメントの先頭(SoS:Start Of Segment))のタイミングを示す信号、セグメントの末尾(EoS:End Of Segment)のタイミングを示す信号、およびエラー(ERR)を示す信号が入力される。セグメントパケットヘッダ抽出部1Aは、これらの信号に基づいてセグメントヘッダShのみを抽出しまたはセグメントヘッダShおよびパケットヘッダPhの両方を抽出する。
【0032】
セグメントヘッダ削除部1Bは、セグメントSMkからセグメントヘッダShを削除する処理を行う。セグメントヘッダShを削除することによって、セグメントSMkの一部が欠落する。例えば、第一回路グループ1の基本処理単位が16ビットであり、セグメントヘッダShのサイズ(ビット長)が15バイト以下である場合は、図5に示すように、セグメントSMkの先頭の16ビットデータのうちの数ビットが欠落する。以下、セグメントヘッダShが削除されたセグメントSMkを「セグメントSUk」と記載する。
【0033】
8nバイト並替部1Cは、図6のように多数のフリップフロップによって構成されている。8nバイト並替部1Cによると、図7に示すように、セグメントSUkの中のN番目のバイトデータ(16ビットデータ)のうちの13〜16番目のビットデータを、(N+1)番目の1〜12番目のビットデータと組み合わせ(図7(b))、前者と後者との位置を入れ替えることによって(図7(c))、セグメントSUkを整える。以下、8nバイト並替部1Cによって整えられたセグメントSUkを「セグメントSVk」と記載する。
【0034】
セグメントCRC生成部1Dは、セグメントSVkのCRC(Cyclic Redundancy Check)用のデータ(以下、「検査用データKD」と記載する。)を生成する。DRAM−REQ生成部1Eは、セグメントSVkの書込みの要求および書込みの番地を示すデータKYを生成する。
【0035】
そして、セグメントSVk、検査用データKD、および書込要求データKYがDRAM41のコントローラに出力され、セグメントSVおよび検査用データKDが書込要求データKYに基づいてDRAM41に書き込まれる。
【0036】
ACK受信FiFoバッファ1Fは、DRAM41へのセグメントSVkの書込みの完了を示すデータ(以下、「ACKデータAD」と記載する。)をDRAM41のコントローラから取得し、これを一時的に記憶する。ACK受信FiFoバッファ1Fは、FiFo(First-in First-out)の方式を採用している。
【0037】
ヘッダ情報変換部1Gは、後に順次説明する第二回路グループ2における処理のために必要な情報のみが示されるように、セグメントSMkのセグメントヘッダShの変換を行う。セグメントSMkにパケットヘッダPhが含まれる場合は、これについても同様に、必要な情報のみが示されるように変換の処理を行う。つまり、セグメントヘッダShおよびパケットヘッダPhに含まれる情報の選別を行う。以下、変換の処理がなされたセグメントヘッダShおよびパケットヘッダPhをそれぞれ「セグメントヘッダSj」および「パケットヘッダPj」と記載する。
【0038】
さらに、ヘッダ情報変換部1Gは、DRAM−REQ生成部1EがDRAM41のコントローラに対して指定した番地つまりセグメントSUkが書き込まれた番地(以下、「ライトポインタWP」と記載する。)を取得する。
【0039】
そして、ヘッダ情報変換部1Gは、セグメントSMk(SUk)のセグメントヘッダSj、パケットヘッダPj、およびライトポインタWPを待合せFiFoバッファ1Hに一時的に記憶させる。待合せFiFoバッファ1Hは、FiFoの方式を採用している。
【0040】
待合せ処理部1Jは、ACK受信FiFoバッファ1FからACKデータADがFiFo方式で出力されるごとに、待合せFiFoバッファ1Hに記憶されているセグメントヘッダSj、パケットヘッダPj、およびライトポインタWPをFiFo方式で第二回路グループ2に対して出力する。これにより、セグメントSUkがDRAM41に書き込まれた後のタイミングで、セグメントヘッダSj、パケットヘッダPj、およびライトポインタWPを第二回路グループ2に対して出力することができる。以下、これらのセグメントヘッダSj、パケットヘッダPj、およびライトポインタWPによって構成されるデータを「セグメント属性データSZ」と記載する。
【0041】
セグメントSMk以外のセグメントSMも、同様に、第一回路グループ1によって処理される。そして、各セグメントSMのセグメント属性データSZが生成される。
【0042】
図8は第二回路グループ2の構成の例を示す図、図9はリオーダ処理部2Aの構成の例を示す図、図10はリオーダバッファ42Aの構成および監視区間Taおよび受入区間Tbの移動を説明するための図である。
【0043】
図8に示すように、図3の第二回路グループ2は、リオーダ処理部2A、巡回処理部2B、リアセンブル処理部2C、および転送処理部2Dなどによって構成される。
【0044】
リオーダ処理部2Aは、図9に示すように、タイマTG部2A1、管理テーブル読出演算部2A2、受入可否判定部2A3、リオーダバッファ書込部2A4、および管理テーブル更新部2A5などによって構成される。
【0045】
タイマTG部2A1は、各部位から条件信号を取得し、それに基づいて各部位に対して処理のタイミングの信号を送出する。例えば、第一回路グループ1の待合せ処理部1Jから待合せ処理の完了の信号を取得すると、セグメント属性データSZの読出しの要求の信号を第一回路グループ1の読出し待合せ処理部1Jに対して送出する。
【0046】
管理テーブル読出演算部2A2は、リオーダ処理部2Aの各部における処理に必要なデータを各バッファまたは各メモリから読み出す。
【0047】
受入可否判定部2A3は、第一回路グループ1から送出されてきたセグメント属性データSZを受け入れることが可能であるか否かを判定する。例えば、そのセグメント属性データSZの元のセグメントSMにエラーが含まれる旨の信号が入力された場合は、受け入れないと判定する。そのような信号が入力されていない場合は、受け入れると判定する。
【0048】
リオーダバッファ書込部2A4は、第一回路グループ1から送出されてきたセグメント属性データSZを受入可能であると受入可否判定部2A3によって判別された場合に、そのセグメント属性データSZをリオーダバッファ42Aに書き込む。リオーダバッファ42Aは、図10に示すようなリングバッファである。
【0049】
セグメント属性データSZがリオーダバッファ42Aのどの位置に書き込まれるかは、そのセグメント属性データSZを構成するセグメントヘッダSjに示されるセグメントシーケンシャルナンバおよびポート番号などによって一意に決まる。
【0050】
具体的には、リオーダバッファ書込部2A4は、同一のパケットPTから分割された各セグメントSMのセグメント属性データSZ同士が隣り合い、かつ、セグメントシーケンシャルナンバの順に並ぶように、セグメント属性データSZをリオーダバッファ42Aに書き込む。どのセグメント属性データSZ同士が同一のパケットPTから分割されたセグメントSMに対応するものであるかは、それぞれのセグメント属性データSZのポート番号によって検知することができる。
【0051】
リオーダバッファ42Aは、複数のセクションに分かれている。1つのセクションに1つのセグメント属性データSZが記憶される。また、リオーダバッファ42Aには、連続する複数のセクションからなる2つの区間、監視区間Taおよび受入区間Tbが定義されている。
【0052】
監視区間Taは、後述する組立の処理の際に使用するセグメント属性データSZの書込みを監視する区間である。
【0053】
受入区間Tbは、第一回路グループ1から送られてきたセグメント属性データSZを受け入れる区間を示す。つまり、リオーダバッファ書込部2A4は、送られてきたセグメント属性データSZを書き込むべき位置が受入区間Tbの外である場合は、そのセグメント属性データSZを、リオーダバッファ42Aに書き込むことなく廃棄する。
【0054】
監視区間Taおよび受入区間Tbは、長さは不変であるが位置が可変である。監視区間Taおよび受入区間Tbの先頭の位置は同じであるが、監視区間Taのほうが受入区間Tbよりも長い。ここで、監視区間Taおよび受入区間Tbの位置の変更について説明する。
【0055】
図10(a)において、監視区間Taの最後尾のセクションには、「#1−2」のセグメント属性データSZが格納されている。
【0056】
次に、例えば、図10(b)に示すように、このセグメント属性データSZよりも前のセクションに別のセグメント属性データSZ(「#1−1」のセグメント属性データSZ)が格納された場合は、監視区間Taおよび受入区間Tbの位置の変更は行わない。
【0057】
一方、例えば、図10(c)に示すように、このセグメント属性データSZよりも後ろのセクションに別のセグメント属性データSZ(「#1−3」のセグメント属性データSZ)が格納された場合は、監視区間Taの最後尾が当該別のセグメント属性データSZのセクションになるように、監視区間Taの位置を変更する。これに合わせて、受入区間Tbも変更する。
【0058】
なお、図3のトップシーケンシャルナンバ管理メモリ42Bには、先頭のセグメントSMのセグメントシーケンシャルナンバが記憶される。したがって、セグメントSMが先頭のセグメントまたは非分割のセグメントであれば、セグメントSMのセグメントヘッダShに示されるセグメントシーケンシャルナンバが記憶される。先頭のセグメントでも非分割のセグメントでもなければ、同じパケットPTから分割された他のセグメントSMのうちの先頭のセグメントSMのセグメントヘッダShに示されるセグメントシーケンシャルナンバが記憶される。
【0059】
タイマ縮退値管理メモリ42Cは、セグメントSMが第一回路グループ1から第二回路グループ2に入力された時刻を記憶する。
【0060】
未送信シーケンシャルナンバ管理メモリ42Dは、次のノードに未だ送信(中継)していないパケットPTのセグメントSMのセグメントシーケンシャルナンバを記憶する。
【0061】
トップシーケンシャルナンバ管理メモリ42B、タイマ縮退値管理メモリ42C、および未送信シーケンシャルナンバ管理メモリ42Dに記憶されたデータは、後述する各部の処理において適宜参照される。
【0062】
図9に戻って、管理テーブル更新部2A5は、セグメント属性データSZの受入が可能であるか否かが受入可否判定部2A3によって判定されるごとに、適宜、各バッファまたは各メモリに設けられているテーブルの更新を行う。
【0063】
巡回処理部2Bは、同一のパケットPTから分割されたすべてのセグメントSMのセグメント属性データSZがリオーダバッファ42Aの監視区間Taに書き込まれたか否かを、監視区間Taを巡回的に監視する。
【0064】
リアセンブル処理部2Cは、同一のパケットPTから分割されたすべてのセグメントSMのセグメント属性データSZをリオーダバッファ42Aから呼び出し、セグメントシーケンシャルナンバ順に並べることによって、パケットの再組立を行う。ただし、セグメント属性データSZにはペイロードが含まれていないので、この段階では、このパケットには、ペイロードが含まれない。以下、リアセンブル処理部2Cによって組み立てられたパケットをパケットPSと記載する。
【0065】
転送処理部2Dは、リアセンブル処理部2Cによって組み立てられたパケットPSを第三回路グループ3に転送(送出)する。
【0066】
第三回路グループ3は、パケットPSに、DRAM41に記憶されているペイロードPdを加えることによって、パケットPTを再生成する。ペイロードPdがDRAM41のどの番地に記憶されているのかは、セグメント属性データSZのライトポインタWPに示されている。そして、このパケットPTは、次のスイッチングノードなどに送信される。
【0067】
本実施形態によると、リングバッファであるリオーダバッファ42Aに監視区間Taを定め、パケットPTの再組立に必要なデータ(セグメント属性データSZ)が揃ったか否かの監視を監視区間Taに対して行った。よって、監視に係る時間を短縮し再組立を高速に行うことができる。
【0068】
しかも、新たなセグメント属性データSZが監視区間Taの最後尾よりも前に格納されたときには監視区間Taを移動させず、最後尾よりも後ろに格納されたときに、最後尾がその格納場所(セクション)になるように監視区間Taを移動させた。これにより、監視を一層効率的に行うことができる。
【0069】
さらに、受入区間Tbを定め、受入区間Tb外のセグメント属性データSZを破棄した。これにより、遅延して届いたセグメント属性データSZを上手く破棄することができる。
【0070】
本実施形態では、図10で説明した通り、受入区間Tbには監視区間Taの全部分が含まれていたが一部分のみが含まれるようにしてもよい。例えば、監視区間Taの先頭から所定の個数のセクションは、受入区間Tbに含めないようにしてもよい。この場合は、受入区間Tbよりも監視区間Taのほうが長くてもよい。ただし、受入区間Tbの最後尾は監視区間Taの最後尾よりも後ろであることが望ましい。
【0071】
その他、スイッチングノード5の全体または各部の構成、処理内容、処理順序、データベースの構成などは、本発明の趣旨に沿って適宜変更することができる。
【図面の簡単な説明】
【0072】
【図1】スイッチングノードの全体的な構成の例を示す図である。
【図2】パケットおよびセグメントの構成の例を示す図である。
【図3】出力トラフィック制御部の構成の例を示す図である。
【図4】第一回路グループの構成の例を示す図である。
【図5】セグメントの構成の例を示す図である。
【図6】8nバイト並替部の例を示す図である。
【図7】セグメントSUkからセグメントSVkへの変換の手順を説明するための図である。
【図8】第二回路グループの構成の例を示す図である。
【図9】リオーダ処理部の構成の例を示す図である。
【図10】リオーダバッファの構成および監視区間および受入区間の移動を説明するための図である。
【図11】従来のスイッチングノードの機能の例を説明するための図である。
【図12】従来のスイッチングノードの構成およびパケットの取扱いの例を示す図である。
【符号の説明】
【0073】
5 スイッチングノード
51 入力トラフィック制御部
52 スイッチファブリック
53 出力トラフィック制御部
2A3 受入可否判定部
2A4 リオーダバッファ書込部
42A リオーダバッファ
【技術分野】
【0001】
本発明は、リングバッファの使用方法およびこれを適用したスイッチング装置に関する。
【背景技術】
【0002】
図11は従来のスイッチングノードの機能の例を説明するための図、図12は従来のスイッチングノード9の構成およびパケットの取扱いの例を示す図である。
【0003】
従来、パケット交換網において、通信の対象のデータは、次のようにしてやりとりされている。
【0004】
送信側の装置は、データを複数のパケットに分割し、受信側の装置を宛先として指定してパケット交換網に送出する。すると、各パケットは、様々なスイッチングノードによって中継され、受信側の装置に届けられる。受信側の装置は、各パケットを組み立てて元のデータに戻す。
【0005】
スイッチングノードは、上記の1組の装置同士やり取りされるパケットだけでなく、それ以外の組の装置間でやり取りされるパケットをも中継する。したがって、スイッチングノードは、図11に示すように、様々なサイズのパケットを中継する。
【0006】
パケットの中継をより高速に行うために、図12に示すようなスイッチングノード9が提案されている。
【0007】
スイッチングノード9には、複数のスイッチファブリック(Switch Fabric)92が設けられている。入力トラフィック制御部(Ingress TM)91は、入力されたパケットPTを、サイズがほぼ均一な複数のセグメントSMに分割し、これらのセグメントSMを複数のスイッチファブリック92にほぼ均一に振り分ける。各スイッチファブリック92は、自らに振り分けられたセグメントSMを、中継先のノードに接続されている出力トラフィック制御部(Egress TM)93にスイッチングする。そして、出力トラフィック制御部93は、スイッチファブリック92から送られてきたセグメントSMを組み立てることによってパケットPTを再生成し、中継先のノードに送信する。
【0008】
このように様々なサイズのパケットPTをほぼ均一なセグメントSMに分割し複数のスイッチファブリック92にほぼ均一に振り分けてスイッチングすれば、パケットPTをセグメントSMに分割せずにスイッチングする場合よりも、アイドリングの時間を少なくしてスイッチファブリック92を稼動させることができる。よって、パケットPTの中継を高速に行うことができる。
【0009】
そのほか、特許文献1には、交換装置におけるバッファの管理の方法が開示されている。特許文献2には、セルが通信帯域の申告値通りに送られてきているか否かを監視する方法が開示されている。
【特許文献1】特開平10−98475号公報
【特許文献2】特開平7−273771号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
図12で説明した、パケットPTをほぼ均一なセグメントSMに分割し複数のスイッチファブリック92にほぼ均一に振り分ける方法を適用しつつ、さらに高速にスイッチングを行うためには、パケットPTの再組立を高速に行えばよい。
【0011】
本発明は、このような課題に鑑み、パケットの再組立を従来よりも高速に行うことができるようにすることを、目的とする。
【課題を解決するための手段】
【0012】
本発明の一実施形態に係るバッファの使用方法は、複数の分割データに分割されたデータの組立を行う際に使用するバッファを、複数のセクションに区切っておき、前記セクションのうちの連続する2つ以上を監視区間として定める。送られてきた前記分割データを前記セクションのうちの所定のセクションに格納する。前記分割データを格納した前記所定のセクションが前記監視区間よりも後ろである場合に、当該監視区間の最後尾が当該所定のセクションになるように当該監視区間を移動させる。格納および移動の処理と並行してまたは前後して、前記データの組立に必要な複数の分割データが前記監視区間に格納されているか否かを監視し、前記データの組立に必要な前記複数の分割データが前記監視区間に揃ったら、当該データの組立を行うために前記バッファから当該複数の分割データを呼び出す。
【0013】
本発明の他の実施形態に係るバッファの使用方法は、複数の分割データに分割されたデータの組立を行う際に使用するバッファを、複数のセクションに区切っておき、前記セクションのうちの2つ以上を監視区間として定める。前記セクションのうちの2つ以上を含みかつ前記監視区間の所定の部分を含む区間を受入区間として定め、送られてきた前記分割データを格納すべき前記セクションを決定し、決定した前記セクションが前記受入区間に該当する場合は送られてきた前記分割データを当該セクションに格納し、該当しない場合は当該分割データを破棄し、前記分割データを格納した前記所定のセクションが前記監視区間よりも後ろである場合に、当該監視区間の最後尾が当該所定のセクションになるように当該監視区間を移動させ、前記監視区間の移動に合わせて前記受入区間を移動させる。これらの処理と並行してまたは前後して、前記データの組立に必要な前記分割データが前記監視区間に格納されているか否かを監視し、前記データの組立に必要な前記分割データが前記監視区間に揃ったら、当該データの組立を行うために当該分割データを呼び出す。
【0014】
本発明の一実施形態に係るスイッチング装置は、複数のパケット受信手段と、複数のパケット分割手段と、複数の分割データ中継手段と、バッファを有する複数のパケット転送手段と、を有するスイッチング装置であって、前記パケット受信手段は、スイッチングの対象のパケットを受信し、前記パケット分割手段は、前記パケット受信手段によって受信された前記パケットを複数の分割データに分割し、当該各パケットを複数の前記分割データ中継手段に振り分け、前記分割データ中継手段は、前記パケット分割手段から振り分けられた前記分割データを、当該分割データの基の前記パケットの次の送り先のノードと通信を行う前記パケット転送手段に中継し、前記パケット転送手段は、前記バッファを、複数のセクションに区切り、前記セクションのうちの連続する2つ以上を監視区間として定め、前記分割データ中継手段から中継されてきた前記分割データを前記セクションのうちの所定のセクションに格納し、前記パケットの組立に必要な前記分割データが前記監視区間に格納されているか否かを監視し、前記パケットの組立に必要な前記分割データが前記監視区間に揃ったら、当該分割データを呼び出して当該パケットの組立を行い、組立がなされた当該パケットを前記ノードに転送し、前記分割データを格納した前記所定のセクションが前記監視区間よりも後ろである場合は、当該監視区間の最後尾が当該所定のセクションになるように当該監視区間を移動させる。
【0015】
本発明の他の実施形態に係るスイッチング装置は、複数のパケット受信手段と、複数のパケット分割手段と、複数の分割データ中継手段と、バッファを有する複数のパケット転送手段と、を有するスイッチング装置であって、前記パケット受信手段は、スイッチングの対象のパケットを受信し、前記パケット分割手段は、前記パケット受信手段によって受信された前記パケットを複数の分割データに分割し、当該各パケットを複数の前記分割データ中継手段に振り分け、前記分割データ中継手段は、前記パケット分割手段から振り分けられた前記分割データを、当該分割データの基の前記パケットの次の送り先であるノードと通信を行う前記パケット転送手段に中継し、前記パケット転送手段は、前記バッファを、複数のセクションに区切っておき、前記セクションのうちの2つ以上を監視区間として定め、前記セクションのうちの2つ以上を含みかつ前記監視区間の所定の部分を含む区間を受入区間として定め、前記分割データ中継手段から中継されてきた前記分割データを格納すべき前記セクションを決定し、決定した前記セクションが前記受入区間に該当する場合は前記分割データ中継手段から中継されてきた前記分割データを当該セクションに格納し、該当しない場合は当該分割データを破棄し、前記分割データを格納した前記所定のセクションが前記監視区間よりも後ろである場合は、当該監視区間の最後尾が当該所定のセクションになるように当該監視区間を移動させ、前記監視区間の移動に合わせて前記受入区間を移動させ、前記パケットの組立に必要な前記分割データが前記監視区間に格納されているか否かを監視し、前記パケットの組立に必要な前記分割データが前記監視区間に揃ったら、当該パケットの組立を行うために当該分割データを呼び出して当該パケットの組立を行い、組立がなされた当該パケットを前記ノードに転送する。
【発明の効果】
【0016】
本発明によると、パケットの再組立を従来よりも高速に行うことができる。
【発明を実施するための最良の形態】
【0017】
図1はスイッチングノード5の全体的な構成の例を示す図、図2はパケットPTおよびセグメントSMの構成の例を示す図、図3は出力トラフィック制御部53の構成の例を示す図、図4は第一回路グループ1の構成の例を示す図、図5はセグメントSMの構成の例を示す図、図6は8nバイト並替部1Cの例を示す図、図7はセグメントSUkからセグメントSVkへの変換の手順を説明するための図である。
【0018】
本発明の一実施形態に係るスイッチングノード5は、パケットをスイッチングする装置である。スイッチングノード5の全体的な構成は、前に図12で説明した従来のスイッチングノード9の全体的な構成と同じであり、図1に示すように、複数の入力トラフィック制御部51、複数のスイッチファブリック52、および複数の出力トラフィック制御部53などからなる。
【0019】
入力トラフィック制御部51は、入力トラフィック制御部91と同様に機能する。つまり、他のノードから送信されてきたパケットPTを、図2(a)に示すように、所定のサイズの複数のセグメントSMに分割する。また、各セグメントSMには、セグメントヘッダShが付される。
【0020】
分割された各セグメントSMには、パケットPTのペイロードPdの一部分が含まれる。以下、この一部分を「ペイロードSd」と記載する。さらに、先頭のセグメントSMには、パケットPTのパケットヘッダPhが含まれる。
【0021】
ただし、パケットPTが所定のサイズ以内である場合は、図2(b)に示すように、そのパケットPTが分割されずに1つのセグメントSMになることがある。
【0022】
なお、ネットワーク技術の分野においては、「セグメント」は、LAN(Local Area Network)つまりリピータで区切られた範囲のネットワークを意味することがあるが、本実施形態では、パケットPTが適宜分割された個々のデータを意味する。
【0023】
セグメントSMのセグメントヘッダShには、少なくとも次の(A−1)〜(A−4)のような属性の情報が含まれている。
(A−1) セグメントタイプ(Segment Type):そのセグメントSMの種類を示す情報であり、具体的には、図2(a)のセグメントSMaのような先頭のセグメントであるか、セグメントSMbのような中間のセグメントであるか、セグメントSMcのような末尾のセグメントであるか、または図2(b)のセグメントSMのような分割されなかったセグメントであるか、を示す。
(A−2) セグメントシーケンシャルナンバ(Sequential Number of Segment):そのセグメントSMが先頭から何番目のセグメントであるかを示す。
(A−3) セグメント長(Segment Length):そのセグメントSMのビット長(サイズ)を示す。
(A−4) インバウンドカードナンバ(Inbound Card Number)およびポートナンバ(10G Port Number):そのセグメントSMが入力されたインバウンドカードの番号およびポートの番号を示す。これらの番号は、出力トラフィック制御部53において、2つのセグメントSMの元のパケットPTが同一か否かを判別するために用いられる。
【0024】
セグメントSMは、入力トラフィック制御部51によっていずれかのスイッチファブリック52に振り分けられる。
【0025】
スイッチファブリック52も、従来のスイッチファブリック92と同様に機能する。つまり、入力トラフィック制御部51から送られてきたセグメントSMを、その基であるパケットPTの次の送り先であるノードと通信を行う出力トラフィック制御部53に転送する。
【0026】
出力トラフィック制御部53も、従来の出力トラフィック制御部93と基本的に同様に機能する。ただし、出力トラフィック制御部53と出力トラフィック制御部93とは、次の点で相違する。
(B−1) 従来のスイッチングノード9の出力トラフィック制御部93はソフトウェア制御によってセグメントSMからパケットPTへの再組立てを行っているが、スイッチングノード5の出力トラフィック制御部53はソフトウェア制御によらずハードウェアのみによって再組立てを行う。
(B−2) 出力トラフィック制御部53はリングバッファの新たな使用方法を採用している。
【0027】
出力トラフィック制御部53を構成する回路のモジュールは、図3に示すように、主に第一回路グループ1、第二回路グループ2、および第三回路グループ3にグループ化される。さらに、出力トラフィック制御部53には、DRAM41、リオーダバッファ42A、トップシーケンシャルナンバ管理メモリ42B、タイマ縮退値管理メモリ42C、および未送信シーケンシャルナンバ管理メモリ42Dなどの記憶手段が設けられている。
【0028】
第一回路グループ1は、図4に示すように、セグメントパケットヘッダ抽出部1A、セグメントヘッダ削除部1B、8nバイト並替部1C、セグメントCRC生成部1D、DRAM−REQ生成部1E、ACK受信FiFoバッファ1F、ヘッダ情報変換部1G、待合せFiFoバッファ1H、および待合せ処理部1Jなどの回路のモジュールによって構成される。
【0029】
以下、ある1つのセグメントSMkが第一回路グループ1に入力された場合を例に、第一回路グループ1の各部の動作を説明する。
【0030】
セグメントパケットヘッダ抽出部1Aは、セグメントSMkの中からセグメントヘッダShを抽出する。セグメントSMkが先頭のセグメントまたは非分割のセグメントである場合は、パケットヘッダPhをも抽出する。
【0031】
セグメントパケットヘッダ抽出部1Aには、セグメントSMkのほか、セグメントの先頭(SoS:Start Of Segment))のタイミングを示す信号、セグメントの末尾(EoS:End Of Segment)のタイミングを示す信号、およびエラー(ERR)を示す信号が入力される。セグメントパケットヘッダ抽出部1Aは、これらの信号に基づいてセグメントヘッダShのみを抽出しまたはセグメントヘッダShおよびパケットヘッダPhの両方を抽出する。
【0032】
セグメントヘッダ削除部1Bは、セグメントSMkからセグメントヘッダShを削除する処理を行う。セグメントヘッダShを削除することによって、セグメントSMkの一部が欠落する。例えば、第一回路グループ1の基本処理単位が16ビットであり、セグメントヘッダShのサイズ(ビット長)が15バイト以下である場合は、図5に示すように、セグメントSMkの先頭の16ビットデータのうちの数ビットが欠落する。以下、セグメントヘッダShが削除されたセグメントSMkを「セグメントSUk」と記載する。
【0033】
8nバイト並替部1Cは、図6のように多数のフリップフロップによって構成されている。8nバイト並替部1Cによると、図7に示すように、セグメントSUkの中のN番目のバイトデータ(16ビットデータ)のうちの13〜16番目のビットデータを、(N+1)番目の1〜12番目のビットデータと組み合わせ(図7(b))、前者と後者との位置を入れ替えることによって(図7(c))、セグメントSUkを整える。以下、8nバイト並替部1Cによって整えられたセグメントSUkを「セグメントSVk」と記載する。
【0034】
セグメントCRC生成部1Dは、セグメントSVkのCRC(Cyclic Redundancy Check)用のデータ(以下、「検査用データKD」と記載する。)を生成する。DRAM−REQ生成部1Eは、セグメントSVkの書込みの要求および書込みの番地を示すデータKYを生成する。
【0035】
そして、セグメントSVk、検査用データKD、および書込要求データKYがDRAM41のコントローラに出力され、セグメントSVおよび検査用データKDが書込要求データKYに基づいてDRAM41に書き込まれる。
【0036】
ACK受信FiFoバッファ1Fは、DRAM41へのセグメントSVkの書込みの完了を示すデータ(以下、「ACKデータAD」と記載する。)をDRAM41のコントローラから取得し、これを一時的に記憶する。ACK受信FiFoバッファ1Fは、FiFo(First-in First-out)の方式を採用している。
【0037】
ヘッダ情報変換部1Gは、後に順次説明する第二回路グループ2における処理のために必要な情報のみが示されるように、セグメントSMkのセグメントヘッダShの変換を行う。セグメントSMkにパケットヘッダPhが含まれる場合は、これについても同様に、必要な情報のみが示されるように変換の処理を行う。つまり、セグメントヘッダShおよびパケットヘッダPhに含まれる情報の選別を行う。以下、変換の処理がなされたセグメントヘッダShおよびパケットヘッダPhをそれぞれ「セグメントヘッダSj」および「パケットヘッダPj」と記載する。
【0038】
さらに、ヘッダ情報変換部1Gは、DRAM−REQ生成部1EがDRAM41のコントローラに対して指定した番地つまりセグメントSUkが書き込まれた番地(以下、「ライトポインタWP」と記載する。)を取得する。
【0039】
そして、ヘッダ情報変換部1Gは、セグメントSMk(SUk)のセグメントヘッダSj、パケットヘッダPj、およびライトポインタWPを待合せFiFoバッファ1Hに一時的に記憶させる。待合せFiFoバッファ1Hは、FiFoの方式を採用している。
【0040】
待合せ処理部1Jは、ACK受信FiFoバッファ1FからACKデータADがFiFo方式で出力されるごとに、待合せFiFoバッファ1Hに記憶されているセグメントヘッダSj、パケットヘッダPj、およびライトポインタWPをFiFo方式で第二回路グループ2に対して出力する。これにより、セグメントSUkがDRAM41に書き込まれた後のタイミングで、セグメントヘッダSj、パケットヘッダPj、およびライトポインタWPを第二回路グループ2に対して出力することができる。以下、これらのセグメントヘッダSj、パケットヘッダPj、およびライトポインタWPによって構成されるデータを「セグメント属性データSZ」と記載する。
【0041】
セグメントSMk以外のセグメントSMも、同様に、第一回路グループ1によって処理される。そして、各セグメントSMのセグメント属性データSZが生成される。
【0042】
図8は第二回路グループ2の構成の例を示す図、図9はリオーダ処理部2Aの構成の例を示す図、図10はリオーダバッファ42Aの構成および監視区間Taおよび受入区間Tbの移動を説明するための図である。
【0043】
図8に示すように、図3の第二回路グループ2は、リオーダ処理部2A、巡回処理部2B、リアセンブル処理部2C、および転送処理部2Dなどによって構成される。
【0044】
リオーダ処理部2Aは、図9に示すように、タイマTG部2A1、管理テーブル読出演算部2A2、受入可否判定部2A3、リオーダバッファ書込部2A4、および管理テーブル更新部2A5などによって構成される。
【0045】
タイマTG部2A1は、各部位から条件信号を取得し、それに基づいて各部位に対して処理のタイミングの信号を送出する。例えば、第一回路グループ1の待合せ処理部1Jから待合せ処理の完了の信号を取得すると、セグメント属性データSZの読出しの要求の信号を第一回路グループ1の読出し待合せ処理部1Jに対して送出する。
【0046】
管理テーブル読出演算部2A2は、リオーダ処理部2Aの各部における処理に必要なデータを各バッファまたは各メモリから読み出す。
【0047】
受入可否判定部2A3は、第一回路グループ1から送出されてきたセグメント属性データSZを受け入れることが可能であるか否かを判定する。例えば、そのセグメント属性データSZの元のセグメントSMにエラーが含まれる旨の信号が入力された場合は、受け入れないと判定する。そのような信号が入力されていない場合は、受け入れると判定する。
【0048】
リオーダバッファ書込部2A4は、第一回路グループ1から送出されてきたセグメント属性データSZを受入可能であると受入可否判定部2A3によって判別された場合に、そのセグメント属性データSZをリオーダバッファ42Aに書き込む。リオーダバッファ42Aは、図10に示すようなリングバッファである。
【0049】
セグメント属性データSZがリオーダバッファ42Aのどの位置に書き込まれるかは、そのセグメント属性データSZを構成するセグメントヘッダSjに示されるセグメントシーケンシャルナンバおよびポート番号などによって一意に決まる。
【0050】
具体的には、リオーダバッファ書込部2A4は、同一のパケットPTから分割された各セグメントSMのセグメント属性データSZ同士が隣り合い、かつ、セグメントシーケンシャルナンバの順に並ぶように、セグメント属性データSZをリオーダバッファ42Aに書き込む。どのセグメント属性データSZ同士が同一のパケットPTから分割されたセグメントSMに対応するものであるかは、それぞれのセグメント属性データSZのポート番号によって検知することができる。
【0051】
リオーダバッファ42Aは、複数のセクションに分かれている。1つのセクションに1つのセグメント属性データSZが記憶される。また、リオーダバッファ42Aには、連続する複数のセクションからなる2つの区間、監視区間Taおよび受入区間Tbが定義されている。
【0052】
監視区間Taは、後述する組立の処理の際に使用するセグメント属性データSZの書込みを監視する区間である。
【0053】
受入区間Tbは、第一回路グループ1から送られてきたセグメント属性データSZを受け入れる区間を示す。つまり、リオーダバッファ書込部2A4は、送られてきたセグメント属性データSZを書き込むべき位置が受入区間Tbの外である場合は、そのセグメント属性データSZを、リオーダバッファ42Aに書き込むことなく廃棄する。
【0054】
監視区間Taおよび受入区間Tbは、長さは不変であるが位置が可変である。監視区間Taおよび受入区間Tbの先頭の位置は同じであるが、監視区間Taのほうが受入区間Tbよりも長い。ここで、監視区間Taおよび受入区間Tbの位置の変更について説明する。
【0055】
図10(a)において、監視区間Taの最後尾のセクションには、「#1−2」のセグメント属性データSZが格納されている。
【0056】
次に、例えば、図10(b)に示すように、このセグメント属性データSZよりも前のセクションに別のセグメント属性データSZ(「#1−1」のセグメント属性データSZ)が格納された場合は、監視区間Taおよび受入区間Tbの位置の変更は行わない。
【0057】
一方、例えば、図10(c)に示すように、このセグメント属性データSZよりも後ろのセクションに別のセグメント属性データSZ(「#1−3」のセグメント属性データSZ)が格納された場合は、監視区間Taの最後尾が当該別のセグメント属性データSZのセクションになるように、監視区間Taの位置を変更する。これに合わせて、受入区間Tbも変更する。
【0058】
なお、図3のトップシーケンシャルナンバ管理メモリ42Bには、先頭のセグメントSMのセグメントシーケンシャルナンバが記憶される。したがって、セグメントSMが先頭のセグメントまたは非分割のセグメントであれば、セグメントSMのセグメントヘッダShに示されるセグメントシーケンシャルナンバが記憶される。先頭のセグメントでも非分割のセグメントでもなければ、同じパケットPTから分割された他のセグメントSMのうちの先頭のセグメントSMのセグメントヘッダShに示されるセグメントシーケンシャルナンバが記憶される。
【0059】
タイマ縮退値管理メモリ42Cは、セグメントSMが第一回路グループ1から第二回路グループ2に入力された時刻を記憶する。
【0060】
未送信シーケンシャルナンバ管理メモリ42Dは、次のノードに未だ送信(中継)していないパケットPTのセグメントSMのセグメントシーケンシャルナンバを記憶する。
【0061】
トップシーケンシャルナンバ管理メモリ42B、タイマ縮退値管理メモリ42C、および未送信シーケンシャルナンバ管理メモリ42Dに記憶されたデータは、後述する各部の処理において適宜参照される。
【0062】
図9に戻って、管理テーブル更新部2A5は、セグメント属性データSZの受入が可能であるか否かが受入可否判定部2A3によって判定されるごとに、適宜、各バッファまたは各メモリに設けられているテーブルの更新を行う。
【0063】
巡回処理部2Bは、同一のパケットPTから分割されたすべてのセグメントSMのセグメント属性データSZがリオーダバッファ42Aの監視区間Taに書き込まれたか否かを、監視区間Taを巡回的に監視する。
【0064】
リアセンブル処理部2Cは、同一のパケットPTから分割されたすべてのセグメントSMのセグメント属性データSZをリオーダバッファ42Aから呼び出し、セグメントシーケンシャルナンバ順に並べることによって、パケットの再組立を行う。ただし、セグメント属性データSZにはペイロードが含まれていないので、この段階では、このパケットには、ペイロードが含まれない。以下、リアセンブル処理部2Cによって組み立てられたパケットをパケットPSと記載する。
【0065】
転送処理部2Dは、リアセンブル処理部2Cによって組み立てられたパケットPSを第三回路グループ3に転送(送出)する。
【0066】
第三回路グループ3は、パケットPSに、DRAM41に記憶されているペイロードPdを加えることによって、パケットPTを再生成する。ペイロードPdがDRAM41のどの番地に記憶されているのかは、セグメント属性データSZのライトポインタWPに示されている。そして、このパケットPTは、次のスイッチングノードなどに送信される。
【0067】
本実施形態によると、リングバッファであるリオーダバッファ42Aに監視区間Taを定め、パケットPTの再組立に必要なデータ(セグメント属性データSZ)が揃ったか否かの監視を監視区間Taに対して行った。よって、監視に係る時間を短縮し再組立を高速に行うことができる。
【0068】
しかも、新たなセグメント属性データSZが監視区間Taの最後尾よりも前に格納されたときには監視区間Taを移動させず、最後尾よりも後ろに格納されたときに、最後尾がその格納場所(セクション)になるように監視区間Taを移動させた。これにより、監視を一層効率的に行うことができる。
【0069】
さらに、受入区間Tbを定め、受入区間Tb外のセグメント属性データSZを破棄した。これにより、遅延して届いたセグメント属性データSZを上手く破棄することができる。
【0070】
本実施形態では、図10で説明した通り、受入区間Tbには監視区間Taの全部分が含まれていたが一部分のみが含まれるようにしてもよい。例えば、監視区間Taの先頭から所定の個数のセクションは、受入区間Tbに含めないようにしてもよい。この場合は、受入区間Tbよりも監視区間Taのほうが長くてもよい。ただし、受入区間Tbの最後尾は監視区間Taの最後尾よりも後ろであることが望ましい。
【0071】
その他、スイッチングノード5の全体または各部の構成、処理内容、処理順序、データベースの構成などは、本発明の趣旨に沿って適宜変更することができる。
【図面の簡単な説明】
【0072】
【図1】スイッチングノードの全体的な構成の例を示す図である。
【図2】パケットおよびセグメントの構成の例を示す図である。
【図3】出力トラフィック制御部の構成の例を示す図である。
【図4】第一回路グループの構成の例を示す図である。
【図5】セグメントの構成の例を示す図である。
【図6】8nバイト並替部の例を示す図である。
【図7】セグメントSUkからセグメントSVkへの変換の手順を説明するための図である。
【図8】第二回路グループの構成の例を示す図である。
【図9】リオーダ処理部の構成の例を示す図である。
【図10】リオーダバッファの構成および監視区間および受入区間の移動を説明するための図である。
【図11】従来のスイッチングノードの機能の例を説明するための図である。
【図12】従来のスイッチングノードの構成およびパケットの取扱いの例を示す図である。
【符号の説明】
【0073】
5 スイッチングノード
51 入力トラフィック制御部
52 スイッチファブリック
53 出力トラフィック制御部
2A3 受入可否判定部
2A4 リオーダバッファ書込部
42A リオーダバッファ
【特許請求の範囲】
【請求項1】
複数の分割データに分割されたデータの組立を行う際に使用するバッファを、複数のセクションに区切っておき、
前記セクションのうちの連続する2つ以上を監視区間として定め、
送られてきた前記分割データを前記セクションのうちの所定のセクションに格納し、
前記分割データを格納した前記所定のセクションが前記監視区間よりも後ろである場合に、当該監視区間の最後尾が当該所定のセクションになるように当該監視区間を移動させ、
前記データの組立に必要な複数の分割データが前記監視区間に格納されているか否かを監視し、
前記データの組立に必要な前記複数の分割データが前記監視区間に揃ったら、当該データの組立を行うために前記バッファから当該複数の分割データを呼び出す、
ことを特徴とするバッファの使用方法。
【請求項2】
複数の分割データに分割されたデータの組立を行う際に使用するバッファを、複数のセクションに区切っておき、
前記セクションのうちの2つ以上を監視区間として定め、
前記セクションのうちの2つ以上を含みかつ前記監視区間の所定の部分を含む区間を受入区間として定め、
送られてきた前記分割データを格納すべき前記セクションを決定し、
決定した前記セクションが前記受入区間に該当する場合は送られてきた前記分割データを当該セクションに格納し、該当しない場合は当該分割データを破棄し、
前記分割データを格納した前記所定のセクションが前記監視区間よりも後ろである場合に、当該監視区間の最後尾が当該所定のセクションになるように当該監視区間を移動させ、
前記監視区間の移動に合わせて前記受入区間を移動させ、
前記データの組立に必要な前記分割データが前記監視区間に格納されているか否かを監視し、
前記データの組立に必要な前記分割データが前記監視区間に揃ったら、当該データの組立を行うために当該分割データを呼び出す、
ことを特徴とするバッファの使用方法。
【請求項3】
前記監視区間の先頭および前記受入区間の先頭を同一の前記セクションに定め、かつ、前記受入区間のほうを前記監視区間よりも長く定める、
請求項2記載のバッファの使用方法。
【請求項4】
前記データはパケットであり、
前記分割データの長さは所定の長さ以下である、
請求項2または請求項3記載のバッファの使用方法。
【請求項5】
複数のパケット受信手段と、複数のパケット分割手段と、複数の分割データ中継手段と、バッファを有する複数のパケット転送手段と、を有するスイッチング装置であって、
前記パケット受信手段は、スイッチングの対象のパケットを受信し、
前記パケット分割手段は、前記パケット受信手段によって受信された前記パケットを複数の分割データに分割し、当該各パケットを複数の前記分割データ中継手段に振り分け、
前記分割データ中継手段は、前記パケット分割手段から振り分けられた前記分割データを、当該分割データの基の前記パケットの次の送り先のノードと通信を行う前記パケット転送手段に中継し、
前記パケット転送手段は、
前記バッファを、複数のセクションに区切り、
前記セクションのうちの連続する2つ以上を監視区間として定め、
前記分割データ中継手段から中継されてきた前記分割データを前記セクションのうちの所定のセクションに格納し、
前記パケットの組立に必要な前記分割データが前記監視区間に格納されているか否かを監視し、
前記パケットの組立に必要な前記分割データが前記監視区間に揃ったら、当該分割データを呼び出して当該パケットの組立を行い、組立がなされた当該パケットを前記ノードに転送し、
前記分割データを格納した前記所定のセクションが前記監視区間よりも後ろである場合は、当該監視区間の最後尾が当該所定のセクションになるように当該監視区間を移動させる、
ことを特徴とするスイッチング装置。
【請求項6】
複数のパケット受信手段と、複数のパケット分割手段と、複数の分割データ中継手段と、バッファを有する複数のパケット転送手段と、を有するスイッチング装置であって、
前記パケット受信手段は、スイッチングの対象のパケットを受信し、
前記パケット分割手段は、前記パケット受信手段によって受信された前記パケットを複数の分割データに分割し、当該各パケットを複数の前記分割データ中継手段に振り分け、
前記分割データ中継手段は、前記パケット分割手段から振り分けられた前記分割データを、当該分割データの基の前記パケットの次の送り先であるノードと通信を行う前記パケット転送手段に中継し、
前記パケット転送手段は、
前記バッファを、複数のセクションに区切っておき、
前記セクションのうちの2つ以上を監視区間として定め、
前記セクションのうちの2つ以上を含みかつ前記監視区間の所定の部分を含む区間を受入区間として定め、
前記分割データ中継手段から中継されてきた前記分割データを格納すべき前記セクションを決定し、
決定した前記セクションが前記受入区間に該当する場合は前記分割データ中継手段から中継されてきた前記分割データを当該セクションに格納し、該当しない場合は当該分割データを破棄し、
前記分割データを格納した前記所定のセクションが前記監視区間よりも後ろである場合は、当該監視区間の最後尾が当該所定のセクションになるように当該監視区間を移動させ、
前記監視区間の移動に合わせて前記受入区間を移動させ、
前記パケットの組立に必要な前記分割データが前記監視区間に格納されているか否かを監視し、
前記パケットの組立に必要な前記分割データが前記監視区間に揃ったら、当該パケットの組立を行うために当該分割データを呼び出して当該パケットの組立を行い、組立がなされた当該パケットを前記ノードに転送する、
ことを特徴とするスイッチング装置。
【請求項7】
前記パケット転送手段は、前記監視区間の先頭および前記受入区間の先頭を同一の前記セクションに定め、かつ、前記受入区間のほうを前記監視区間よりも長く定める、
請求項5記載のスイッチング装置。
【請求項8】
前記パケット分割手段は、前記パケットを所定値以下の長さの前記分割データに分割する、
請求項6または請求項7記載のスイッチング装置。
【請求項1】
複数の分割データに分割されたデータの組立を行う際に使用するバッファを、複数のセクションに区切っておき、
前記セクションのうちの連続する2つ以上を監視区間として定め、
送られてきた前記分割データを前記セクションのうちの所定のセクションに格納し、
前記分割データを格納した前記所定のセクションが前記監視区間よりも後ろである場合に、当該監視区間の最後尾が当該所定のセクションになるように当該監視区間を移動させ、
前記データの組立に必要な複数の分割データが前記監視区間に格納されているか否かを監視し、
前記データの組立に必要な前記複数の分割データが前記監視区間に揃ったら、当該データの組立を行うために前記バッファから当該複数の分割データを呼び出す、
ことを特徴とするバッファの使用方法。
【請求項2】
複数の分割データに分割されたデータの組立を行う際に使用するバッファを、複数のセクションに区切っておき、
前記セクションのうちの2つ以上を監視区間として定め、
前記セクションのうちの2つ以上を含みかつ前記監視区間の所定の部分を含む区間を受入区間として定め、
送られてきた前記分割データを格納すべき前記セクションを決定し、
決定した前記セクションが前記受入区間に該当する場合は送られてきた前記分割データを当該セクションに格納し、該当しない場合は当該分割データを破棄し、
前記分割データを格納した前記所定のセクションが前記監視区間よりも後ろである場合に、当該監視区間の最後尾が当該所定のセクションになるように当該監視区間を移動させ、
前記監視区間の移動に合わせて前記受入区間を移動させ、
前記データの組立に必要な前記分割データが前記監視区間に格納されているか否かを監視し、
前記データの組立に必要な前記分割データが前記監視区間に揃ったら、当該データの組立を行うために当該分割データを呼び出す、
ことを特徴とするバッファの使用方法。
【請求項3】
前記監視区間の先頭および前記受入区間の先頭を同一の前記セクションに定め、かつ、前記受入区間のほうを前記監視区間よりも長く定める、
請求項2記載のバッファの使用方法。
【請求項4】
前記データはパケットであり、
前記分割データの長さは所定の長さ以下である、
請求項2または請求項3記載のバッファの使用方法。
【請求項5】
複数のパケット受信手段と、複数のパケット分割手段と、複数の分割データ中継手段と、バッファを有する複数のパケット転送手段と、を有するスイッチング装置であって、
前記パケット受信手段は、スイッチングの対象のパケットを受信し、
前記パケット分割手段は、前記パケット受信手段によって受信された前記パケットを複数の分割データに分割し、当該各パケットを複数の前記分割データ中継手段に振り分け、
前記分割データ中継手段は、前記パケット分割手段から振り分けられた前記分割データを、当該分割データの基の前記パケットの次の送り先のノードと通信を行う前記パケット転送手段に中継し、
前記パケット転送手段は、
前記バッファを、複数のセクションに区切り、
前記セクションのうちの連続する2つ以上を監視区間として定め、
前記分割データ中継手段から中継されてきた前記分割データを前記セクションのうちの所定のセクションに格納し、
前記パケットの組立に必要な前記分割データが前記監視区間に格納されているか否かを監視し、
前記パケットの組立に必要な前記分割データが前記監視区間に揃ったら、当該分割データを呼び出して当該パケットの組立を行い、組立がなされた当該パケットを前記ノードに転送し、
前記分割データを格納した前記所定のセクションが前記監視区間よりも後ろである場合は、当該監視区間の最後尾が当該所定のセクションになるように当該監視区間を移動させる、
ことを特徴とするスイッチング装置。
【請求項6】
複数のパケット受信手段と、複数のパケット分割手段と、複数の分割データ中継手段と、バッファを有する複数のパケット転送手段と、を有するスイッチング装置であって、
前記パケット受信手段は、スイッチングの対象のパケットを受信し、
前記パケット分割手段は、前記パケット受信手段によって受信された前記パケットを複数の分割データに分割し、当該各パケットを複数の前記分割データ中継手段に振り分け、
前記分割データ中継手段は、前記パケット分割手段から振り分けられた前記分割データを、当該分割データの基の前記パケットの次の送り先であるノードと通信を行う前記パケット転送手段に中継し、
前記パケット転送手段は、
前記バッファを、複数のセクションに区切っておき、
前記セクションのうちの2つ以上を監視区間として定め、
前記セクションのうちの2つ以上を含みかつ前記監視区間の所定の部分を含む区間を受入区間として定め、
前記分割データ中継手段から中継されてきた前記分割データを格納すべき前記セクションを決定し、
決定した前記セクションが前記受入区間に該当する場合は前記分割データ中継手段から中継されてきた前記分割データを当該セクションに格納し、該当しない場合は当該分割データを破棄し、
前記分割データを格納した前記所定のセクションが前記監視区間よりも後ろである場合は、当該監視区間の最後尾が当該所定のセクションになるように当該監視区間を移動させ、
前記監視区間の移動に合わせて前記受入区間を移動させ、
前記パケットの組立に必要な前記分割データが前記監視区間に格納されているか否かを監視し、
前記パケットの組立に必要な前記分割データが前記監視区間に揃ったら、当該パケットの組立を行うために当該分割データを呼び出して当該パケットの組立を行い、組立がなされた当該パケットを前記ノードに転送する、
ことを特徴とするスイッチング装置。
【請求項7】
前記パケット転送手段は、前記監視区間の先頭および前記受入区間の先頭を同一の前記セクションに定め、かつ、前記受入区間のほうを前記監視区間よりも長く定める、
請求項5記載のスイッチング装置。
【請求項8】
前記パケット分割手段は、前記パケットを所定値以下の長さの前記分割データに分割する、
請求項6または請求項7記載のスイッチング装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2009−171157(P2009−171157A)
【公開日】平成21年7月30日(2009.7.30)
【国際特許分類】
【出願番号】特願2008−6233(P2008−6233)
【出願日】平成20年1月15日(2008.1.15)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成21年7月30日(2009.7.30)
【国際特許分類】
【出願日】平成20年1月15日(2008.1.15)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]