JP3652245B2 - Packet switch - Google Patents
Packet switch Download PDFInfo
- Publication number
- JP3652245B2 JP3652245B2 JP2000378448A JP2000378448A JP3652245B2 JP 3652245 B2 JP3652245 B2 JP 3652245B2 JP 2000378448 A JP2000378448 A JP 2000378448A JP 2000378448 A JP2000378448 A JP 2000378448A JP 3652245 B2 JP3652245 B2 JP 3652245B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- data block
- output
- memory
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、可変長パケット通信ネットワークにおけるノード装置として適用されるパケットスイッチに関し、更に詳しくは、受信パケットを一時的に蓄積するためのメモリとして共通バッファメモリを使用した共通バッファ型の可変長パケットスイッチに関する。
【0002】
【従来の技術】
近年、注目されているインターネットプロトコル(Internet Protocol:以下、IPと言う)では、IPデータグラムと呼ばれる可変長のパケット(IPパケット)を転送単位として、メッセージ転送が行われる。IPパケット網を構成する従来のノード装置では、ソフトウェア処理によって受信パケットの宛先方路へのスイッチングが行われているが、スイッチングの高速化要求に伴って、ノード装置内では固定長のパケット(データブロック)を転送単位としてスイッチングを行う装置構成が提案されている。
【0003】
IPパケットを高速度で転送するノード装置として、例えば、"A 50-Gb/s IP Router"(Craig Partridge他著、IEEE/ACM TRANSACTIONS ON NETWORKING, Vol.6,No.3,June 1998)の論文には、それぞれ複数のネットワーク・インタフェースをサポートする複数の回線カード(ボード)と、ルーティングテーブルを備えた転送エンジン(Forwarding Engine)カードとを、例えば、クロスバスイッチに代表されるポイント・ツー・ポイント型のスイッチで結合し、各回線カードが受信パケットのヘッダ部を含むデータブロックを上記転送エンジンに送信し、転送エンジンで更新処理された新たなヘッダ情報を含むデータブロックをパケット入力側の回線カードに返送し、入力側の各回線カードが、上記新たなヘッダ情報を含むデータブロックとパケット残部とを出力側回線カードに転送するようにした構成のルータ装置が提案されている。
【0004】
上記論文によると、入力側の各回線カードが、パケットを64バイト単位の連鎖されたページ(データブロック)に解体して送出すること、出力側の各回線カードが、これらのページをパケットを表すリンクド・リストに組立て、組立てたパケットをQoSプロセッサに渡し、QoSプロセッサが、パケット長、宛先および転送エンジンが指定したフロー識別子に基づいて、上記パケットを送信キュー内の適当な位置に置くことが開示されている。
【0005】
パケットの転送単位を固定長にしたスイッチング装置として、ATM(Asynchronous Transfer Mode)スイッチがあげられる。ATMスイッチでは、各入力回線から受信された53バイトの固定長パケット(ATMセル)をバッファメモリに一時的に蓄積した後、蓄積セルをセルヘッダに含まれるコネクション識別情報(VPI/VCI)によって決まる特定の出力回線にルーティングしている。
【0006】
ATMスイッチにおいて、複数の入力回線でバッファメモリを共用する共通バッファ型の構造を採用すると、バッファメモリ内に各出力回線毎に可変長のキューを形成できるため、例えば、同一出力回線に向かうセル列が複数の入力回線から同時に受信された場合でも、共通バッファ全体として空き領域がある限り、各入力回線からの受信セルを廃棄することなくバッファリングすることが可能となり、メモリ資源を有効に利用したスイッチを実現できる。
【0007】
特開平11−261584号公報には、上記共通バッファメモリの利点を活かした可変長メッセージ用のスイッチング装置が提案されている。上記従来技術では、共通バッファメモリをメッセージ対応の複数のメモリブロックに分割し、各受信メッセージに対して空き状態の1つのメモリブロックを割り当て、各入力回線から受信されたメッセージを固定長の複数のセルに分割し、同一メッセージに属するセルを同一のメモリブロックに順次に格納する構成となっている。
【0008】
【発明が解決しようとする課題】
上述したIEEE文献に記載されたルータ装置では、入力側の回線カードが、各パケットの送信に先立って、スイッチ・アロケータを介して出力側回線カードと折衝し、出力側カードがパケットの受信を了承した場合に送信を開始しているため、パケットのスイッチング処理速度に問題がある。また、入力側の各回線カードにはパケットを待機させるためのバッファが必要となり、出力側の各回線カードにもパケット組立てのためのバッファが必要となるため、バッファメモリの使用効率に問題がある。
【0009】
一方、上記特開平11−261584号公報に記載されたスイッチング装置では、各メッセージの末尾部分が入力された時、受信メッセージと対応するメモリブロックに蓄積されている全てのセルを別のメモリ領域(メッセージキュー)に移す構成となっているため、メモリ領域間でのメッセージの転送所要時間とバッファメモリの利用効率に問題があった。
【0010】
本発明の目的は、共通バッファメモリを効率的に利用し、可変長パケットを高速スイッチング可能なパケットスイッチを提供することにある。
本発明の他の目的は、共通バッファメモリを効率的に利用し、可変長パケットのマルチキャストを可能にしたパケットスイッチを提供することにある。
【0011】
【課題を解決するための手段】
上記目的を達成するために、本発明のパケットスイッチは、複数の入力回線に共用される共通バッファメモリと、各入力回線からの受信パケットを固定長のデータブロック単位で多重化して上記共通バッファメモリに供給する多重化手段と、上記共通バッファメモリへの上記各固定長データブロックの書込みと読出しを制御するバッファ制御手段とからなり、上記バッファ制御手段が、上記多重化手段から出力された各固定長データブロックを上記共通バッファに書き込む時に可変長パケット別の入力キューを形成しておき、可変長パケットの最終データブロックが入力キューに登録された時点で、該入力キューを可変長パケットの転送先出力回線と対応した出力キューに登録することを特徴とする。
【0012】
更に詳述すると、上記バッファ制御手段は、上記共通バッファメモリにおける各固定長データブロックの書込みアドレスを可変長パケット別にリンクすることによって複数の入力キューを形成し、可変長パケットの最後の固定長データブロックが上記共通バッファメモリに書き込み済みとなった入力キューを転送先出力回線と対応する待機バッファを備えた出力キューに登録する第1制御手段と、出力回線対応に形成された複数の出力キューを所定の順序でアクセスし、各出力キューが示すリンクド・アドレスに基づいて上記共通バッファメモリから固定長データブロックを読み出す第2制御手段とを備える。
上記可変長パケット別の入力キューは、例えば、空きアドレスメモリから取り出した書込みアドレスに基づいて上記共通バッファメモリに各固定長データブロックを書き込み、上記各書込みアドレスと対応して同一可変長パケットにおける次の固定長データブロックの書込みアドレスを次アドレスメモリに記憶することにより形成される。
【0013】
本発明において、各出力キューは、例えば、可変長パケットの先頭データブロックの書込みアドレスと最終データブロックの書込みアドレスとを一時的に記憶するための待機バッファと、次に読み出すべきデータブロックを示す次読出しアドレスと最後のデータブロックを示す最終読出しアドレスとを記憶するアドレスメモリとからなり、上記第1制御手段が、各可変長パケットの先頭データブロックの書込みアドレスと最終データブロックの書込みアドレスをそれぞれ転送先出力回線と対応する待機バッファに登録し、これに付随するアドレスメモリが空き状態となった時、上記第2制御手段が、上記待機バッファから取り出した1対のアドレスを新たなデータブロック群の次読出しアドレスおよび最終読出しアドレスとしてアドレスメモリに設定する。この場合、第2制御手段は、各出力キューに登録された次読出しアドレスに基づいて、共通バッファメモリと次アドレスメモリからそれぞれ固定長データブロックと次の固定長データブロックのアドレスとを読み出し、上記次アドレスメモリから読み出されたアドレスを当該出力キューにおける新たな次読出しアドレスとすることによって、各可変長パケットを構成するデータブロックを次々と読み出すことが可能となる。
【0014】
尚、受信パケットがマルチキャストパケットの場合、最後のデータブロックが共通バッファメモリに書き込まれた時点で、上記第1制御手段によって、同一入力キューをマルチキャスト出力回線と対応する複数の出力キューに登録することにより、マルチキャスト転送が可能となる。この場合、パケットスイッチに、共通バッファメモリにおける各固定長データブロックの読出し回数をカウントし、読出し回数が指定値に達した時、読出しアドレスを解放するアドレス解放制御手段を設けることによって、共通バッファメモリの空きアドレスを管理できる。
【0015】
【発明の実施の形態】
以下、本発明の実施例について図面を参照して詳細に説明する。
図1は、本発明によるパケットスイッチの1実施例を示す。
パケットスイッチ1は、それぞれ入力回線LI−1〜LI−nから入力された可変長パケット100を固定長の複数のデータブロック110に分割し、各データブロックに内部ヘッダ110Aを付加して出力する複数の入力回線インタフェース10−1〜10−nと、上記入力回線インタフェース10−1〜10−nから入力されたデータブロックを時分割多重して信号線L21に出力する多重化部21と、上記信号線L21に接続された共通バッファメモリ22と、上記共通バッファメモリ22から信号線L22に読み出されたデータブロックを複数の出力回線インタフェース20−1〜20−nに順次に振り分ける分離部23と、上記共通バッファメモリ22へのデータブロックの書込みと読出しを制御するバッファ制御部30と、書込みサイクルを示すクロックCLK0をカウントして入力回線選択信号を発生する入力カウンタ24と、読出しサイクルを示すクロックCLK1をカウントして出力回線選択信号を発生する出力カウンタ25とからなっている。
【0016】
各入力回線LI−i(i=1〜n)から入力される可変長パケットは、宛先アドレスを含むパケットヘッダ100Aとデータ部100Bとからなる。各入力回線インタフェース10−i(i=1〜n)は、入力回線LI−iから受信した可変長パケット100を固定長の複数のデータブロック110に分割し、例えば、入力回線番号と、パケットヘッダ100Aから抽出された宛先アドレスによって決まる出力回線番号と、各データブロック110が可変長パケットにおける先頭ブロック、中間ブロック、最終ブロックの何れに該当するかを示すブロック位置表示情報とを含む内部ヘッダ110Aを生成し、これを各データブロックに付加して出力する。
【0017】
共通バッファメモリ22へのデータブロックの書込みと読出しは、クロックCLK0とCLK1に従って交互に行われる。多重化部21は、入力カウンタ24が信号線L24に発生する入力回線選択信号に応じて、入力回線インタフェース10−1〜10−nを循環的に選択し、各入力回線インタフェースから出力されたデータブロック110を順次に信号線L21に多重化する。一方、分離部23は、共通バッファメモリ22から信号線L22に読み出されたデータブロックを、出力カウンタ25が信号線L25に発生する出力回線選択信号によって特定される出力回線インタフェース20−j(j=1〜n)に振り分ける。
出力回線インタフェース20−1〜20−nは、分離部23から受け取ったデータブロック110から内部ヘッダ110Aを取り除き、それぞれと対応する出力回線LO−1〜LO−nに送出する。
【0018】
バッファ制御部30は、クロックCLK0が示す各書込みサイクルにおいて、信号線L21に現れる内部ヘッダ110Aが示す入力回線番号iと対応するリンクド・アドレスリストを形成しながら、データブロックを共通バッファメモリ22に書き込む。
上記バッファ制御部30は、後述するように、信号線L21に受信パケットの先頭ブロックが現れる都度、入力回線対応の新たな入力キューを形成し、後続する中間ブロックと最終ブロックのデータを入力回線対応の入力キューに次々と登録し、受信パケットの最終ブロックが共通バッファメモリ22に書き込まれた時点で、入力キューを上記受信パケットの転送先出力回線と対応した出力キューにリンクするように、リンクド・アドレスリストをダイナミックに制御する。
【0019】
共通バッファメモリ22からのデータブロックの読出しは、各出力回線と対応して形成された出力キュー・アドレスリストに基づいて行なわれる。バッファ制御部30は、信号線L25で与えられる出力回線選択信号と対応した出力キューについて、読み出すべきデータブロックの有無をチェックし、もし、出力キューにデータブロックアドレスがリンクされていた場合は、出力キュー・アドレスリストに登録された次読出しアドレスを読出しアドレスRAとして、共通バッファメモリ22から1つのデータブロックを信号線L22に読み出し、アドレスリストの次読出しアドレスをリンクド・アドレスリストにおける次のデータブロックアドレスに書き換える。
【0020】
図2は、バッファ制御部30の詳細を示すブロック図である。
バッファ制御部30は、ヘッダ解析部31と、入力キュー制御部32と、出力キュー制御部33と、次アドレス管理部34と、共通バッファメモリ20の空きアドレスを格納するための空アドレスメモリ(FIFO)35とからなる。
【0021】
ヘッダ解析部31は、信号線L21に現れる各データブロックの内部ヘッダを解析して、入力回線番号IN−iと、出力回線番号OUT−jと、入力データブロックが受信パケットの先頭ブロックか否かを示す先頭表示フラグ信号FPと、入力データブロックが受信パケットの最終ブロックか否かを示す最終表示フラグ信号EPとを発生する。
入力キュー制御部32は、入力回線毎に、入力キューに登録された先頭データブロックのアドレス(パケット先頭アドレス:BAi(i=1〜n))301と、上記入力キューに登録された最新データブロックのアドレス(最新アドレス:WAi(i=1〜 n))302とを示す入力キュー・アドレステーブル300を備えている。
出力キュー制御部33は、出力キュー・アドレステーブル310と出力待機バッファ330とを備えている。
【0022】
出力キュー・アドレステーブル310は、出力回線毎に、出力キューの先頭に位置したデータブロックの読出しアドレス(次読出しアドレスRAj(j=1〜n))311と、出力キューの最後に位置したデータブロックの読出しアドレス(最終読出しアドレスEAj(j=1〜n))312とを記憶するためのものである。以下の説明では、出力キュー・アドレステーブル310における第j出力回線LO−jと対応したテーブル領域を符号310−jで表す。
【0023】
出力待機バッファ330は、出力キュー・アドレステーブル310−jに先行パケットを読み出すためのアドレスRAj、EAjが残っている時、同一出力回線に送出すべき後続パケットの読み出しアドレスをFIFO形式で待機させるためのものであり、各出力回線と対応して、パケットの先頭データブロックの読み出しアドレスBAjを蓄積するためのバッファ領域330B−jと、パケットの最後のデータブロックの読み出しアドレスWAjを蓄積するためのバッファ領域330W−jとが用意されている。バッファ領域330B−j、330W−jに蓄積された読出しアドレスは、先行パケットの全てのデータブロックが共通バッファメモリから読み出され、実質的に出力キュー・アドレステーブルが空き状態となった時点で、出力キュー・アドレステーブルのテーブル領域310−jに移される。
【0024】
次アドレス管理部34は、共通バッファメモリ22に蓄積可能なデータブロック数mに等しい複数のアドレス記憶領域NA1〜NAmからなる次アドレスメモリ340を備える。次アドレスメモリ340の各記憶領域は、入力キューに登録されたデータブロック列を登録順に読み出すためのリンクド・アドレスリストを形成するために利用される。
【0025】
以下、入力回線LI−1とLI−2から同一の出力回線LO−3に向かう可変長パケットが入力された場合を仮定して、入力回線LI−1と対応する入力キューのパケット先頭アドレスBA1および最新アドレスWA1と、入力回線LI−2と対応する入力キューのパケット先頭アドレスBA2および最新アドレスWA2と、出力回線LO−2と対応する出力キューの次読出しアドレスRA3および最終読出しアドレスEA3に着目して、図2と図3〜図5を参照しながら上記バッファ制御部30の機能について詳述する。
【0026】
ヘッダ解析部31は、信号線L21に出力された各データブロックの内部ヘッダ110Aを解析し、入力回線番IN−iと出力回線番号OUT−iを発生する。上記データブロックが可変長パケットの先頭ブロックであれば先頭表示フラグ信号FPがオン状態となり、最終ブロックであれば最終表示フラグ信号EPがオン状態となる。
信号線L21に出力されたデータブロックは、空アドレスFIFO35から取り出された空きアドレスを書込みアドレスWAとして、共通バッファメモリ20に書き込まれる。この時、入力キュー制御部32は、ヘッダ解析部31から出力された入力回線番号IN−iと先頭表示フラグ信号FPの状態に応じて、入力キュー・アドレステーブル300を更新する。
先頭表示フラグ信号FPがオン状態であれば、空きアドレスFIFO35から取り出された書込みアドレスWAを上記入力回線番号IN−iと対応するテーブル領域300−iにパケット先頭アドレスBAiと最新アドレスWAiとして書き込む。先頭表示フラグ信号FPがオフ状態であれば、上記書込みアドレスWAを最新アドレスWAiに書き込む。
【0027】
入力キュー・アドレステーブル300に新たなアドレスWAが書き込まれた時、最新アドレスWAiとしてそれまで記憶されていたアドレスが次アドレス管理部34に出力される。次アドレス管理部34は、上記アドレスWAiと対応する記憶領域NAiに、空きアドレスFIFO35から取り出された新たな書込みアドレスWAを記憶する。
これによって、1つの可変長パケットから分割された固定長のデータブロックが共通バッファメモリ22に書込まれる度に、データブロックの書込みアドレスが次アドレスメモリ340に記憶され、最新アドレスWAiが更新され、最終的には、パケット先頭アドレスBAiが可変長パケットの先頭データブロックのアドレスを指し、最新アドレスWAiが可変長パケットの最終データブロックのアドレスを指すことになる。
【0028】
図3は、共通バッファメモリ22に、入力回線インタフェース10−1から出力されたデータブロックD1−1〜D1−4と、入力回線インタフェース10−2から出力されたデータブロックD2−1〜D2−2が書き込まれた時点での、入力キュー・アドレステーブル300の状態を示す。
ここで、WA1−1〜WA1−4は、空きアドレスFIFO35から得られたデータブロックD1−1〜D1−4の書込みアドレスWAの値、 WA2−1〜WA2−2はデータブロックD2−1〜D2−2の書込みアドレスWAの値を示す。また、RA3とEA3は、上記データブロックD1−1〜D1−4、D2−1〜D2−2の転送先出力回線LO−3と対応した出力キュー・アドレステーブルエントリ310−3の内容を示している。
【0029】
入力回線LI−1と対応する入力キュー・アドレステーブルでは、先頭データブロックD1−1の書込みアドレスWA1−1がパケット先頭アドレスBA1として記憶され、最新アドレスWA1の内容はデータブロックの書込みの都度更新されて、WA1−1、WA1−2、WA1−3、WA1−4と変化する。
次アドレスメモリ340では、図3に示すように、最新アドレスWA1と対応する記憶領域に、次データブロックの書込みアドレスが次々と記憶される。従って、入力キュー・アドレステーブル300のパケット先頭アドレスBA1と次アドレスメモリ340とによって、入力回線毎のリンクド・アドレスリストが形成される。
【0030】
例えば、パケット先頭アドレスBA1が示すアドレスWA1−1に基づいて共通バッファメモリ22と次アドレスメモリ340をアクセスすることによって、先頭データブロックD1−1と、次のデータブロックD1−2のアドレスWA1−2とを読み出すことができ、このアドレスWA1−2を次回の読出しサイクルにおける読出しアドレスRAとして利用することにより、次のデータブロックD1−2と、更に次のデータブロックD1−3のアドレスWA1−3とを読み出すことができ、同様の動作を繰り返すことによって、入力キューに登録された全てのデータブロックを読み出すことが可能となる。
【0031】
入力回線LI−1と同様、入力回線LI−2と対応する入力キュー・アドレステーブルでは、先頭データブロックD2−1の書込みアドレスWA2−1がパケット先頭アドレスBA2として記憶され、最新アドレスWA1の内容は、データブロックの書込みの都度更新され、WA2−1、WA2−2、…と変化する。
【0032】
図3は、入力回線インタフェース10−1と10−2が可変長パケットの最終データブロックを出力する前の状態を示しており、出力回線LO−3と対応した出力キューには有効データがなく、出力待機バッファ330−3と出力キュー・アドレステーブル310−3が空き状態となっている。
本発明は、共通バッファメモリ22にパケットの最終データブロックが書き込まれた時、バッファ制御部30が、上記最終データブロックの入力キューにおけるパケット先頭アドレスBAiと最新アドレスWAi(=WA)を出力待機バッファ330を介して出力キュー・アドレステーブル310に移すことを特徴としている。
【0033】
図4は、入力回線インタフェース10−1から出力された可変長パケットの最終データブロックD1−5が共通バッファメモリ22に書き込まれた時点でのバッファ制御部30の動作を示す。
この場合、バッファ制御部30は、最終データブロックD1−5の書込みアドレスWA1−5を次アドレスメモリ340に記憶した後、入力キューのパケット先頭アドレスBA1の内容(WA1−1)と最新アドレスWA1の内容(WA1−5)を出力待機バッファ330−3に移す。出力待機バッファ330−3に蓄積されたアドレスは、もし、出力キュー・アドレステーブル310−3が空き状タであれば、図4に示すように、出力キュー・アドレステーブルのRA3、EA3に移される。尚、最新アドレスWA1の内容は、今回、空きアドレスFIFO35から取り出された新たな書込みアドレスWAとなっているため、出力キュー・アドレステーブルのEA3には、上記最新アドレスWA1に代えて、空きアドレスFIFO35から取り出された書込みアドレスWAを記憶してもよい。
【0034】
図5は、出力回線LO−3の出力キューが既に使用状態にある時、入力回線インタフェース10−2から出力された可変長パケットの最終データブロックD2−3を共通バッファメモリ22に書き込む場合のバッファ制御部30の動作を示す。この場合、バッファ制御部30は、最終データブロックD2−3の書込みアドレスWA2−3を次アドレスメモリ340に記憶した後、入力キューのパケット先頭アドレスBA2の内容(WA2−1)と最新アドレスWA2の内容(WA2−3)を出力待機バッファ330−3に移す。
上記出力待機バッファ330−3に蓄積されたアドレスWA2−1、WA2−3は、出力キュー・アドレステーブル310−3が空き状態となった時、すなわち、次読み出しアドレスRA3と最終読み出しアドレスEA3の値が一致した読み出しサイクルで、出力キュー・アドレステーブル310−3に移される。
【0035】
回線インタフェースが受信した可変長パケットが短く、受信パケット全体が固定長の1つのデータブロックに収まる場合は、このデータブロックの書込みサイクルで、ヘッダ解析部31から出力される先頭表示フラグ信号FPと最終表示フラグ信号EPが同時にオン状態となる。この場合、先頭表示フラグ信号FPに応答して入力キュー・アドレステーブル300に登録されたパケット先頭アドレスBAiと最新アドレスWAiの内容が、最終表示フラグ信号EPに応答して出力待機バッファ330−jに直ちに移される。
【0036】
もし、待機バッファ330−jに蓄積されたパケット先頭アドレスBAiと最新アドレスWAiの内容は、データブロックの転送先となる出力回線LO−jの出力キューが空状態であれば、図4と同様、出力キュー・アドレステーブル310−jに書き込まれ、上記出力キューが既に使用状態にあれば、図5と同様、出力待機バッファ330−jに留まる。
【0037】
共通バッファメモリ22からのデータブロックの読出しは、出力キュー制御部33によって行われる。出力キュー制御部33は、読出しサイクルに信号線L25に出力される出力回線選択信号で特定される出力キュー・アドレステーブル領域310―jを参照し、次読出しアドレスRAjに従って、共通バッファメモリ22からデータブロックを読み出し、次アドレスメモリ340から次アドレスNAjを読み出す。
使用済みとなった次読出しアドレスRAjは、空きアドレスFIFO35に解放され、次アドレスメモリ340から読み出された次アドレスNAjは、新たな次読出しアドレスRAjとして出力キュー・アドレステーブル310−jに記憶される。但し、各パケットの最後のデータブロックの読出しサイクルでは、次アドレスメモリ340から読み出された次アドレスNAjは無効となり、待機バッファから取り出された次パケットの先頭アドレスが、次読出しアドレスRAjとして出力キュー・アドレステーブル310−jに設定される。
【0038】
図6は、入力キュー制御部32の1実施例を示す。
入力キュー制御部32は、パケット先頭アドレスBA1〜BAnを記憶するためのレジスタ301−1〜301−nと、最新アドレスWA1〜WAnを記憶するためのレジスタ302−1〜302−nと、ヘッダ解析部31から受信した入力回線番号IN−iをデコードし、イネーブル信号WEN−1〜WEN−nのうちの1つをオン状態とするデコーダ321と、レジスタ302−1〜302−nからの出力アドレスのうちの1つを選択するためのセレクタ322と、レジスタ301−1〜301−nからの出力アドレスのうちの1つを選択するためのセレクタ323と、パケット先頭アドレスの書込みイネーブル信号を制御するためのAND回路324−1〜324−nとからなっている。
【0039】
最新アドレスを記憶するレジスタ302−1〜302−nには、空きアドレスFIFO35から取り出されたアドレスWAが入力されており、それぞれデコーダ321から出力されるイネーブル信号WEN−1〜WEN−nによって、最新アドレスの更新が制御されている。入力回線番号IN−iが第i番目の入力回線を示した場合、イネーブル信号WEN―iがオン状態となり、空きアドレスFIFO35から取り出されたアドレスWAがレジスタ302−iに設定される。この時、それまでレジスタ302−iに記憶されていた前データブロックの書込みアドレス{WAi}がセレクタ322によって選択され、次アドレス(ポインタアドレス)書込み用アドレスWAiとして次アドレス管理部34に供給される。
【0040】
空きアドレスFIFO35から取り出されたアドレスWAは、パケット先頭アドレスBA1〜BAnを記憶するためのレジスタ301−1〜301−nにも入力されている。これらのレジスタへの書込みは、AND回路324−1〜324−nによって制御されており、ヘッダ解析部31から出力される先頭表示フラグFPがオン状態となった書込みサイクルに限り、入力回線番号IN−iと対応するレジスタ301−iへのアドレスWAの書込みが行われる。セレクタ323は、入力回線番号IN−iと対応するレジスタ301−iからの出力アドレスを選択し、パケット先頭アドレスBAiとして出力する。
【0041】
図7は、出力キュー制御部33の1実施例を示す。
出力キュー制御部33は、次読出しアドレスRA1〜RAnを記憶するためのレジスタ311−1〜311−nと、最終読出しアドレスEA1〜EAnを記憶するためのレジスタ312−1〜312−nと、パケット先頭アドレス用の出力待機バッファ(FIFO)330B−1〜330B−nと、パケット最終アドレス用の出力待機バッファ(FIFO)330W−1〜330W−nとからなっている。
【0042】
また、上記出力キュー制御部33は、レジスタ311−1〜311−nからの出力アドレスのうちの1つを選択するためのセレクタ331と、レジスタ312−1〜312−nからの出力アドレスのうちの1つを選択するためのセレクタ332と、レジスタ313−1〜313−nからの出力フラグのうちの1つを選択するためのセレクタ333と、出力カウンタ25から信号線25に出力された出力回線選択信号をデコードするためのデコーダ334と、ヘッダ解析部31から出力される出力回線番号OUT−jをデコードして、イネーブル信号EN−1〜EN−nのうちの1つをオン状態とするデコーダ335と、ヘッダ解析部31から出力される最終表示フラグ信号EPがオン状態となった時、上記イネーブル信号EN−1〜EN−nを有効にするためのAND回路336−1〜336−nと、セレクタ331から出力される読出しアドレスRAjとセレクタ332から出力されるパケット最終アドレスEAjとを比較し、RAjとEAjが一致した時、イネーブル信号EN−0をオン状態とする比較器315と、上記イネーブル信号EN−0がオフ状態の時、次アドレス管理部34から出力された次アドレスNAjをレジスタ311−1〜311−nに供給するAND回路316と、上記イネーブル信号EN−0がオン状態の時、デコーダ334の出力信号を通すAND回路339−1〜339−nとを備えている。
【0043】
出力待機バッファ330−j(330B−jと330W−j、j=1〜n)は、それぞれAND回路336−1〜336−nの出力信号が書込みイネーブル信号WENとして与えられている。書込みサイクルにおいて、最終表示フラグ信号EPがオン状態となった時、出力回線番号OUT−jと対応するAND回路336−jからの書込みイネーブル信号WENが有効となり、バッファ領域330B−jに入力キュー制御部32から出力されたパケット先頭アドレスBAiが設定され、バッファ領域330W−jに空きアドレスFIFO35から出力された書込みアドレスWAが設定される。
【0044】
出力待機バッファ330−j(330B−jと330W−j)には、それぞれAND回路339−1〜339−nの出力信号が読出しイネーブル信号RENとして与えられている。読出しサイクルにおいて、比較器315の出力信号EN−0がオン状態となった時、出力回線番号OUT−jと対応するAND回路339−jの出力信号がオン状態となる。これによって、バッファ領域330B−j、330W−jから1組のアドレスBAjとWAjが読み出され、それぞれ次読出しアドレスRAj、最終読み出しアドレスEAjとしてレジスタ311−j、312−jに設定される。
【0045】
レジスタ311−1〜311−nには、デコーダ334の出力がリード・イネーブル信号として与えてあり、これらのレジスタ出力は、信号線L25から供給される出力回線選択信号を制御信号とするセレクタ331に接続されている。従って、各読出しサイクルにおいて、上記出力回線選択信号で指定されたレジスタ311−jの内容が次読出しアドレスRAjとして出力される。上記アドレスRAjによって、共通バッファメモリ22から、出力回線LOjに出力すべきデータブロックが読み出され、分離部23を介して出力回線インタフェース20−jに供給される。また、上記アドレスRAjによって、次アドレス管理部34から、上記出力回線LOjに出力すべき次のデータブロックを指すアドレスNAjが読み出される。上記アドレスNAjは、AND回路316を介してレジスタ311−1〜311−nに供給されている。
【0046】
レジスタ311−1〜311−nと同様に、レジスタ312−1〜312−nにも、デコーダ334の出力がリード・イネーブル信号として与えてあり、これらのレジスタ出力は、出力回線選択信号を選択信号とするセレクタ332に接続されている。これによって、各読出しサイクルで、上記出力回線選択信号で指定されたレジスタ312−jの内容がセレクタ332から最終読出しアドレスEAjとして出力される。
【0047】
比較器315の出力信号EN−0は、セレクタ331から出力される次読出しアドレスRAjと、セレクタ332から出力される最終読出しアドレスEAjとが一致した時、すなわち、各パケットの最終データブロックの読出しサイクルにおいてオン状態となり、前述したように、出力待機バッファ330B−jにあるパケット先頭アドレスBAiがレジスタ311−jに移される。上記比較器315の出力信号EN−0がオフ状態となる読出しサイクル、すなわち、パケットの先頭データブロックまたは中間データブロックの読出しサイクルでは、AND回路316が開かれ、次アドレス管理部34から読み出された次アドレスNAjが上記レジスタ311−jに設定される。これによって、出力回線LO−jと対応した出力キューのデータブロックを次々と読み出すことが可能となる。
【0048】
図8は、次アドレス管理部34の1実施例を示す。
次アドレス管理部34は、次アドレスNA1〜NAmを記憶するためのレジスタ340−1〜340−mと、これらのレジスタからの出力アドレスを選択するセレクタ341と、入力キュー制御部32から供給される最新アドレスWAiをデコードし、上記最新アドレスWAiと対応するレジスタ340−iに書込みイネーブル信号を与えるデコーダ344とからなる。
【0049】
次アドレス管理部34は、各書込みサイクルにおいて、入力キューにおける前データブロックの書込みアドレスWAiと対応した記憶領域(レジスタ340−k)に最新データブロックの書込みアドレスWAを記憶し、これによって、図3に示した入力キュー毎のリンクド・アドレスリストを形成する。読出しサイクルでは、セレクタ341が、出力キュー制御部33から供給された読出しアドレスRAjと対応したレジスタ340−pを選択し、上記レジスタに340−pに記憶されたアドレスを次アドレスNAjとして出力キュー制御部33に戻す。上記次アドレスNAjは、出力キュー制御部33において、次回の読出しサイクルで使う新たな次読出しアドレスRAjとして、レジスタ311−jに記憶される。
【0050】
図9は、本発明の第2の実施例として、同一受信パケットを複数の出力回線に転送する同報機能(またはマルチキャスト機能)を備えたパケットスイッチのバッファ制御部30Bの構成を示す。
ここに示したバッファ制御部30Bは、図2に示した第1実施例のバッファ制御部30と同様、ヘッダ解析部31、入力キュー制御部32、出力キュー制御部33、次アドレス管理部34、空きアドレスFIFO35を有し、新たな要素として、読出しアドレス解放制御部36を備えている。
【0051】
各入力回線インタフェース10−i(i=1〜n)では、入力回線LI−iからの受信パケットが複数の出力回線に転送すべき同報(マルチキャスト)パケットの場合、受信パケットを分割して得られた各データブロックに複数の出力回線を指定した内部ヘッダを付加する。複数の出力回線を同時に指定するためには、例えば、内部ヘッダの出力回線番号フィールドを出力回線LO−1〜LO−nと対応するnビットで構成し、パケット転送先となる出力回線をビット“1”で表すビットパターン形式を採用すればよい。
【0052】
ヘッダ解析部31は、多重化部21から信号線L21に出力された各データブロックの内部ヘッダを解析し、入力回線番号IN−i、出力回線番号OUT−j、先頭表示フラグ信号FP、最終表示フラグ信号EPと、受信パケットの転送先出力回線数NTRを発生する。上記出力回線番号OUT−jとしては、上述した内部ヘッダの出力回線番号フィールドが示すビットパターンを出力する。この場合、転送先出力回線数NTRは、上記出力回線番号フィールドに含まれるビット“1”の個数を示す。
【0053】
多重化部21から信号線L21に出力された各データブロックは、第1実施例と同様、空きアドレスFIFO35から取り出されたアドレスWAを書込みアドレスとして共通バッファメモリ22に蓄積され、入力キュー制御部32と次アドレス管理部34によって、入力回線番号IN−iと対応した入力キューが形成される。
共通バッファメモリ22に蓄積されたデータブロックが可変長パケットの最終データブロックの場合、最終表示フラグ信号EPがオン状態となるため、入力キュー制御部32から出力されたパケット先頭アドレスBAiと、空きアドレスFIFO35から取り出された最新アドレスWA(=WAi)が出力キュー制御部33の出力待機バッファ330に設定される。
【0054】
図7に示した出力キュー制御部33において、デコーダ335に入力する出力回線番号OUT−jが転送先出力回線をビット“1”で表すビットパターンとなっていた場合、上記デコーダ335から出力されるイネーブル信号群を上記ビットパターンに従ってオン状態にすることができる。上記デコーダ335から出力されるイネーブル信号EN−1〜EN−nは、最終表示フラグ信号EPがオン状態となった時、AND回路336−1〜336−nを通って出力待機バッファ330−1(330B−1、330W−1)〜330−n(330B−n、330W−n)に書込みイネーブル信号WENとして与えられる。
【0055】
最終データブロックがユニキャストパケットに属していた場合、該ユニキャストパケットの出力回線と対応した1つのイネーブル信号EN−jだけがオン状態となるため、アドレスBAi、WAは、第1実施例と同様、上記イネーブル信号EN−jが与えられている特定の出力待機バッファ330B−j、330W−jに設定される。もし、最終データブロックが同報パケットに属していた場合は、出力回線番号OUT−jのビットパターンと対応した複数のイネーブル信号EN−j(j=j1、j2、j3、…)が同時にオン状態となるため、アドレスBAiとWAは、オン状態のイネーブル信号が与えられている複数の出力待機バッファ330B−j、330W−j(j=j1、j2、j3、…)に同時に設定されることになる。
【0056】
出力待機バッファ330−1〜330−nに設定されたアドレスBAiとWAは、第1実施例と同様に、次読出しアドレスレジスタ311−1〜311−nと最終読出しアドレスレジスタ312−1〜312−nに移され、次読出しアドレスレジスタ311−1〜311−nが示す読出しアドレスRAjに従って、共通バッファメモリ22からのデータブロックの読出しが行なわれる。同報パケットに属したデータブロックは、上述したように、リンクド・アドレスリストが複数の出力キューに登録されているため、同一のデータブロックが複数回繰り返して読み出されることになる。
【0057】
ユニキャストパケットだけを対象とした第1の実施例では、図2に示したように、共通バッファメモリ22からのデータブロックを読出した時点で、読出しアドレスRAjを空きアドレスFIFO35に解放すればよかった。これに対して、本実施例のように同報パケットを扱う場合は、指定された複数の出力回線へのマルチキャストが完了したことを確認して、上記読出しアドレスRAjを空きアドレスFIFO35に解放する必要がある。
【0058】
読出しアドレス解放制御部36は、データブロック毎にマルチキャストの完了を確認して読出しアドレスRAjを解放するためのものである。
図10は、読出しアドレス解放制御部36の1実施例を示す。
ここに示した読出しアドレス解放制御部36は、書込みアドレスWAと対応してデータブロックの読出し回数RCを記憶するためのレジスタ(メモリ領域)360−1〜360−mと、上記レジスタ360−1〜360−mへの入力を選択するためのセレクタ361−1〜361−mと、上記レジスタ360−1〜360−mの値をデクリメント(−1)するための減算器362−1〜362−mと、書込みアドレスWAおよび読出しアドレスRAjをデコードし、これらのアドレスと対応したイネーブル信号を発生するデコーダ363と、上記レジスタ360−1〜360−mのうち、読出しアドレスRAjと対応したレジスタ360−qの設定値(読出し回数RC)を選択するセレクタ364と、比較器365およびゲート366からなっている。
【0059】
各セレクタ361−k(k=1〜m)には、書込みサイクルを示すクロックCLK0が選択制御信号として与えてあり、書込みサイクルでは、ヘッダ解析部31から出力された転送先出力回線数NTRが選択され、読出しサイクルでは、減算器362−k(k=1〜m)の出力が選択され、それぞれ読出し回数レジスタ360−k(k=1〜m)に入力される。読出し回数レジスタ360−1〜360−mには、デコーダ363の出力が書込みイネーブル信号として与えてあり、書込みサイクルでは、書込みアドレスWAと対応したレジスタ360−pに出力回線数NCPが設定される。読出しサイクルでは、読出しアドレスRAjと対応したレジスタ360−qの値がセレクタ364で選択され、比較器365に入力される。この時、レジスタ360−qの値が減算器362−qに入力され、読出し回数RCqをデクリメント(−1演算)した値がレジスタ360−qに再設定される。
【0060】
例えば、ユニキャストパケットに属したデータブロックの書込みサイクルでは、書込みアドレスWAと対応した読出し回数レジスタ360−pに、転送先出力回線数NTRの値(=1)が読出し回数RCpとして設定され、上記データブロックが読出しサイクルでアドレスRAjに従って読み出された時、RCp=1が比較器365に入力される。比較器365は、共通バッファメモリ22から読み出されたデータブロックの読出し回数RCpの値が「1」になった時、ゲート366を開き、読出しアドレスRAjを空きアドレスFIFO35に解放する。従って、ユニキャストパケットに属したデータブロックの書込みアドレス(読出しアドレスRAj)は、データブロックの読出しの都度、直ちに解放される。
【0061】
同報(マルチキャスト)パケットに属したデータブロックの書込みサイクルでは、書込みアドレスWAと対応した読出し回数レジスタ360−pに、読出し回数RCpとして、「1」より大きい値をもったNTRが設定される。従って、共通バッファ22から上記データブロックが読み出されても、デクリメントされたRCp値が「1」に達しない限り、ゲート366は閉じたままとなり、読出し回数がNTRで指定された回数(RCp=1)となった時点で、読出しアドレスRAjの空きアドレスFIFO35へ解放される。
【0062】
以上の実施例では、バッファ制御部30が、入力回線番号毎に入力キューを形成し、可変長パケットの最後のデータブロックが到着した時点で、入力キューのリンクド・アドレスリストを出力キューに移すようにしたが、本発明において、各入力キューは可変長パケット毎に形成できればよいため、上記入力回線番号に代えて、各可変長パケットに固有の他の識別情報を使用してもよい。
実施例では、各データブロックの内部ヘッダに入力回線番号を設定し、ヘッダ解析部31が上記内部ヘッダに基づいて入力回線番号IN−jを出力したが、入力回線番号IN−jは、入力カウンタ24から出力される入力回線選択信号に基づいて生成するようにしてもよい。
【0063】
また、上述した実施例では、各入力回線インタフェース10−i(i=1〜n)で、受信パケット100を固定長の複数のデータブロック110に分割し、各データブロックに内部ヘッダ110Aを付して多重化部21に出力し、内部ヘッダ付きのデータブロックを共通バッファメモリ22にリード、ライトする構成となっているが、本発明の他の実施形態として、例えば、図11に示すように、多重化部21でデータブロック110と内部ヘッダ110Aを分離し、内部ヘッダ110Aはバッファ制御部30のヘッダ解析部31に供給し、共通バッファメモリ22にはデータブロック110部分のみを入力するようにしてもよい。
上記構成によれば、共通バッファメモリ22のメモリ容量を有効に利用でき、各出力回線インタフェース20―iでデータブロックから内部ヘッダを除去する必要がなくなる。
【0064】
本発明の更に他の実施形態として、各入力回線インタフェース10−iが、固定長データブロック110を内部ヘッダを付すことなく多重化部21に出力し、バッファ制御部30のヘッダ解析部31が、各可変長パケットの先頭データブロックに含まれるパケットヘッダを解析し、入力回線毎に出力回線番号と後続データブロック数を管理テーブル上で管理しておき、入力カウンタ24から与えられる入力回線選択信号に応じて上記管理テーブルを参照し、前述したIN−i、FP、EP、OUT−j等の制御信号を生成するようにしてもよい。また、可変長パケット100から固定長のデータブロック110への変換は、各入力回線インタフェース10−iで行う代わりに、多重化部21で行うようにしてもよい。
実施例では、複数の入出力回線に接続されるパケットスイッチについて説明したが、本発明のバッファ制御は、複数の入力回線から受信した可変長パケットを1つの出力回線に出力するスイッチ構造(多重化装置)にも適用可能である。
【0065】
以上のように、本発明の実施例では、可変長パケット毎の入力キューを形成し、1つの可変長パケットの最後のデータブロックがバッファメモリに書き込まれた時点で、入力キューに登録されたリンクド・アドレスを出力キューに移すようにしている。従って、同一の出力回線に向かう複数の可変長パケットが並列的に入力された場合でも、出力キュー内で1つの可変長パケットに属したデータブロック列に他のパケットのデータブロックが混入するのを防止でき、出力キューから取り出したデータブロックを順次に出力回線に送出することによって、受信パケットを正しく宛先装置に転送することが可能となる。
【0066】
また、実施例のように、出力キューを待機バッファとアドレステーブル(またはレジスタ)で構成し、出力待機中の可変長パケットの先頭データブロックと最終データブロックのアドレスを待機バッファに一時的に蓄積し、出力中の可変長パケットの次読出しアドレスと最終読出しアドレスを上記アドレステーブルで管理する方式とした場合、同一の出力回線に向かう多数の可変長パケットが受信された場合でも、各パケットを確実に転送処理できる。
【0067】
また、第2実施例で示したように、同一可変長パケットのリンクド・アドレスを複数の出力キューに登録し、同一データブロックの読出し回数が指定値に達した時点で読出しアドレスを開放することによって、共通バッファメモリを有効に利用したマルチキャスト転送が可能となる。
【0068】
【発明の効果】
以上の説明から明らかなように、本発明によれば、入力回線から受信した可変長パケットを固定長のデータブロックに分割し、固定長のブロック単位で共通バッファメモリに蓄積しておき、可変長パケットの最後のデータブロックが蓄積された時点で、共通バッファメモリ内に蓄積済みのデータブロック列を移動することなく、上記データブロック列を読み出すためのリンクド・アドレスリストのみを出力キューに移す構成となっているため、可変長パケットの高速スイッチングが可能となる。また、同一リンクド・アドレスリストを複数の出力キューに登録することによって、容易にマルチキャスト機能を実現できる。
【図面の簡単な説明】
【図1】本発明を適用したパケットスイッチの1実施例を示す図。
【図2】図1に示したパケットスイッチのバッファ制御部30の詳細を示す図。
【図3】共通バッファメモリ22に蓄積されるデータブロックと、次アドレスメモリ340および入力キュー・アドレステーブル300の状態を説明するための図。
【図4】可変長パケットの最後のデータブロックが到着した場合の入力キュー・アドレステーブル300と出力キュー・アドレステーブル310との関係を説明するための図。
【図5】出力キューが使用状態にある時に他の可変長パケットの最後のデータブロックが到着した場合の入力キュー・アドレステーブル300と出力キュー・アドレステーブル310との関係を説明するための図。
【図6】図2に示した入力キュー制御部32の1実施例を示す図。
【図7】図2に示した出力キュー制御部33の1実施例を示す図。
【図8】図2に示した次アドレス管理部34の1実施例を示す図。
【図9】マルチキャスト用バッファ制御部30Bの1実施例を示す図。
【図10】図9における読出しアドレス解放制御部35の1実施例を示す図。
【図11】本発明を適用したパケットスイッチの他の実施例を示す図。
【符号の説明】
1:パケットスイッチ、10:入力回線インタフェース、
20:出力回線インタフェース、21:多重化部、22:共通バッファメモリ、
23:分離部、24:入力カウンタ、25:出力カウンタ、
30、30B:バッファ制御部、LI:入力回線、LO:出力回線、
31: ヘッダ解析部、32:入力キュー制御部、33:出力キュー制御部、
34:次アドレス管理部、35:空きアドレスFIFO、36:読出しアドレス解放制御部、300:入力キュー・アドレステーブル、
301(BA1〜BAn):パケット先頭アドレス、
302(WA1〜WAn):最新アドレス、
310:出力キュー・アドレステーブル、
311(RA1〜RAn):次読出しアドレス、
312(EA1〜EAn):最終読出しアドレス、
313(F1〜Fn):キューフラグ。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a packet switch applied as a node device in a variable-length packet communication network, and more particularly, to a common buffer type variable-length packet switch using a common buffer memory as a memory for temporarily storing received packets. About.
[0002]
[Prior art]
2. Description of the Related Art In recent years, an Internet protocol (Internet Protocol: hereinafter referred to as IP), which has attracted attention, performs message transfer using a variable length packet (IP packet) called an IP datagram as a transfer unit. In a conventional node device constituting an IP packet network, switching of a received packet to a destination route is performed by software processing. However, in response to a request for high-speed switching, a fixed-length packet (data There has been proposed an apparatus configuration that performs switching using a block as a transfer unit.
[0003]
For example, "A 50-Gb / s IP Router" (Craig Partridge et al., IEEE / ACM TRANSACTIONS ON NETWORKING, Vol.6, No.3, June 1998) is a node device that transfers IP packets at high speed. Includes a plurality of line cards (boards) each supporting a plurality of network interfaces and a forwarding engine card with a routing table, for example, a point-to-point type represented by a crossbar switch Each line card transmits a data block including the header portion of the received packet to the transfer engine, and the data block including new header information updated by the transfer engine is transmitted to the line card on the packet input side. Each line card on the input side returns and transfers the data block including the new header information and the remainder of the packet to the output line card. The configuration of the router device was so that has been proposed.
[0004]
According to the above paper, each line card on the input side disassembles and sends out packets into 64 byte unit chained pages (data blocks), and each line card on the output side represents these pages as packets. Assembling into a linked list, passing the assembled packet to a QoS processor, which places the packet in the appropriate position in the transmit queue based on the packet length, destination and flow identifier specified by the forwarding engine Has been.
[0005]
As a switching device having a fixed packet transfer unit, an ATM (Asynchronous Transfer Mode) switch can be mentioned. In the ATM switch, a 53-byte fixed-length packet (ATM cell) received from each input line is temporarily stored in the buffer memory, and then the storage cell is specified by connection identification information (VPI / VCI) included in the cell header. Routed to the output line.
[0006]
In the ATM switch, if a common buffer type structure in which a buffer memory is shared by a plurality of input lines is adopted, a variable length queue can be formed for each output line in the buffer memory. Even if received from multiple input lines at the same time, as long as there is free space in the entire common buffer, it is possible to buffer the received cells from each input line without discarding them, effectively using memory resources. A switch can be realized.
[0007]
Japanese Patent Laid-Open No. 11-261484 proposes a switching device for variable length messages that takes advantage of the common buffer memory. In the above prior art, the common buffer memory is divided into a plurality of memory blocks corresponding to messages, one empty memory block is allocated to each received message, and a message received from each input line is divided into a plurality of fixed lengths. The cell is divided into cells, and cells belonging to the same message are sequentially stored in the same memory block.
[0008]
[Problems to be solved by the invention]
In the router device described in the IEEE document described above, the input side line card negotiates with the output side line card via the switch allocator prior to transmission of each packet, and the output side card acknowledges reception of the packet. In this case, since transmission is started, there is a problem in the packet switching processing speed. Further, each line card on the input side needs a buffer for waiting for a packet, and each line card on the output side also needs a buffer for assembling the packet. .
[0009]
On the other hand, in the switching device described in Japanese Patent Application Laid-Open No. 11-261484, when the tail part of each message is input, all cells stored in the memory block corresponding to the received message are stored in another memory area ( Therefore, there is a problem in the time required to transfer messages between the memory areas and the efficiency of using the buffer memory.
[0010]
An object of the present invention is to provide a packet switch that can efficiently switch a variable-length packet by efficiently using a common buffer memory.
Another object of the present invention is to provide a packet switch that efficiently uses a common buffer memory and enables multicast of variable-length packets.
[0011]
[Means for Solving the Problems]
In order to achieve the above object, a packet switch of the present invention includes a common buffer memory shared by a plurality of input lines, and the common buffer memory by multiplexing received packets from each input line in units of fixed-length data blocks. And a buffer control means for controlling writing and reading of each fixed-length data block to and from the common buffer memory, and the buffer control means outputs each fixed data output from the multiplexing means. When the long data block is written to the common buffer, an input queue for each variable length packet is formed, and when the last data block of the variable length packet is registered in the input queue, the input queue is transferred to the variable length packet destination. It is registered in an output queue corresponding to the output line.
[0012]
More specifically, the buffer control means forms a plurality of input queues by linking the write address of each fixed-length data block in the common buffer memory for each variable-length packet, and the last fixed-length data of the variable-length packet. First control means for registering an input queue whose block has been written to the common buffer memory in an output queue having a standby buffer corresponding to the transfer destination output line, and a plurality of output queues formed corresponding to the output line Second control means for accessing in a predetermined order and reading out the fixed-length data block from the common buffer memory based on the linked address indicated by each output queue.
The input queue for each variable length packet, for example, writes each fixed length data block to the common buffer memory based on the write address fetched from the free address memory, and the next variable in the same variable length packet corresponding to each write address. Is formed by storing the write address of the fixed length data block in the next address memory.
[0013]
In the present invention, each output queue includes, for example, a standby buffer for temporarily storing the write address of the first data block and the write address of the last data block of the variable-length packet, and the next data block to be read next An address memory for storing a read address and a final read address indicating the last data block. The first control means transfers the write address of the first data block and the write address of the last data block of each variable length packet. When the address memory associated with the destination output line is registered in the standby buffer and the associated address memory becomes empty, the second control means sets the pair of addresses fetched from the standby buffer to a new data block group. Address memo as next read address and last read address It is set to. In this case, the second control means reads the fixed length data block and the address of the next fixed length data block from the common buffer memory and the next address memory, respectively, based on the next read address registered in each output queue, By using the address read from the next address memory as a new next read address in the output queue, it is possible to read data blocks constituting each variable-length packet one after another.
[0014]
If the received packet is a multicast packet, the first control means registers the same input queue in a plurality of output queues corresponding to the multicast output line when the last data block is written to the common buffer memory. Thus, multicast transfer is possible. In this case, the common buffer memory is provided with an address release control means for counting the number of reads of each fixed-length data block in the common buffer memory and releasing the read address when the number of reads reaches a specified value in the packet switch. Can manage free addresses.
[0015]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 1 shows an embodiment of a packet switch according to the present invention.
The
[0016]
A variable length packet input from each input line LI-i (i = 1 to n) includes a packet header 100A including a destination address and a data portion 100B. Each input line interface 10-i (i = 1 to n) divides the variable-
[0017]
Writing and reading data blocks to and from the
The output line interfaces 20-1 to 20-n remove the
[0018]
The
As will be described later, the
[0019]
Reading of the data block from the
[0020]
FIG. 2 is a block diagram showing details of the
The
[0021]
The
For each input line, the input
The output
[0022]
The output queue address table 310 includes, for each output line, a data block read address (next read address RAj (j = 1 to n)) 311 positioned at the head of the output queue and a data block positioned at the end of the output queue. Read address (final read address EAj (j = 1 to n)) 312 is stored. In the following description, a table area corresponding to the j-th output line LO-j in the output queue / address table 310 is denoted by reference numeral 310-j.
[0023]
When the addresses RAj and EAj for reading the preceding packet remain in the output queue address table 310-j, the
[0024]
The next
[0025]
Hereinafter, assuming that variable length packets directed to the same output line LO-3 are input from the input lines LI-1 and LI-2, the packet head address BA1 of the input queue corresponding to the input line LI-1 and Focusing on the latest address WA1, the packet start address BA2 and latest address WA2 of the input queue corresponding to the input line LI-2, the next read address RA3 and the final read address EA3 of the output queue corresponding to the output line LO-2 The function of the
[0026]
The
The data block output to the signal line L21 is written into the
If the head display flag signal FP is in the ON state, the write address WA extracted from the
[0027]
When a new address WA is written in the input queue / address table 300, the address stored so far as the latest address WAi is output to the next
As a result, each time a fixed-length data block divided from one variable-length packet is written into the
[0028]
FIG. 3 shows data blocks D1-1 to D1-4 output from the input line interface 10-1 and data blocks D2-1 to D2-2 output from the input line interface 10-2 in the
Here, WA1-1 to WA1-4 are values of the write address WA of the data blocks D1-1 to D1-4 obtained from the
[0029]
In the input queue address table corresponding to the input line LI-1, the write address WA1-1 of the head data block D1-1 is stored as the packet head address BA1, and the contents of the latest address WA1 are updated each time the data block is written. And WA1-1, WA1-2, WA1-3, and WA1-4.
In the
[0030]
For example, by accessing the
[0031]
As with the input line LI-1, in the input queue address table corresponding to the input line LI-2, the write address WA2-1 of the head data block D2-1 is stored as the packet head address BA2, and the contents of the latest address WA1 are The data block is updated each time the data block is written, and changes to WA2-1, WA2-2,.
[0032]
FIG. 3 shows a state before the input line interfaces 10-1 and 10-2 output the final data block of the variable length packet, and there is no valid data in the output queue corresponding to the output line LO-3. The output standby buffer 330-3 and the output queue / address table 310-3 are empty.
In the present invention, when the last data block of a packet is written in the
[0033]
FIG. 4 shows the operation of the
In this case, after storing the write address WA1-5 of the final data block D1-5 in the
[0034]
FIG. 5 shows a buffer when the final data block D2-3 of the variable length packet output from the input line interface 10-2 is written in the
The addresses WA2-1 and WA2-3 stored in the output standby buffer 330-3 are the values of the next read address RA3 and the last read address EA3 when the output queue / address table 310-3 becomes empty. Are read cycles in which they match, the data is moved to the output queue address table 310-3.
[0035]
When the variable-length packet received by the line interface is short and the entire received packet fits in one fixed-length data block, the head display flag signal FP and the final display flag signal FP output from the
[0036]
If the contents of the packet head address BAi and the latest address WAi stored in the standby buffer 330-j are empty when the output queue of the output line LO-j to which the data block is transferred is empty, as in FIG. If it is written in the output queue address table 310-j and the output queue is already in use, it remains in the output standby buffer 330-j, as in FIG.
[0037]
Reading of the data block from the
The used next read address RAj is released to the
[0038]
FIG. 6 shows an embodiment of the input
The input
[0039]
The registers 302-1 to 302-n for storing the latest addresses are supplied with the address WA taken out from the
[0040]
The address WA extracted from the
[0041]
FIG. 7 shows an embodiment of the output
The output
[0042]
The output
[0043]
The output standby buffers 330-j (330B-j and 330W-j, j = 1 to n) are supplied with the output signals of the AND circuits 36-1 to 336-n as the write enable signal WEN, respectively. In the write cycle, when the final display flag signal EP is turned on, the write enable signal WEN from the AND circuit 336-j corresponding to the output line number OUT-j becomes valid, and the input queue control is performed in the buffer area 330B-j. The packet head address BAi output from the
[0044]
The output standby buffers 330-j (330B-j and 330W-j) are supplied with the output signals of the AND circuits 339-1 to 339-n as read enable signals REN, respectively. In the read cycle, when the output signal EN-0 of the
[0045]
The outputs of the
[0046]
Similar to the registers 311-1 to 311-n, the outputs of the
[0047]
The output signal EN-0 of the
[0048]
FIG. 8 shows an embodiment of the next
The next
[0049]
In each write cycle, the next
[0050]
FIG. 9 shows a configuration of a buffer control unit 30B of a packet switch having a broadcast function (or multicast function) for transferring the same received packet to a plurality of output lines as a second embodiment of the present invention.
The buffer control unit 30B shown here is similar to the
[0051]
In each input line interface 10-i (i = 1 to n), when the received packet from the input line LI-i is a broadcast (multicast) packet to be transferred to a plurality of output lines, it is obtained by dividing the received packet. An internal header designating a plurality of output lines is added to each data block. In order to specify a plurality of output lines simultaneously, for example, the output line number field of the internal header is composed of n bits corresponding to the output lines LO-1 to LO-n, and the output line serving as the packet transfer destination is set to bit A bit pattern format represented by 1 ″ may be employed.
[0052]
The
[0053]
Each data block output from the multiplexing
When the data block stored in the
[0054]
In the output
[0055]
When the last data block belongs to a unicast packet, only one enable signal EN-j corresponding to the output line of the unicast packet is turned on, so that the addresses BAi and WA are the same as in the first embodiment. The specific output standby buffers 330B-j and 330W-j to which the enable signal EN-j is applied are set. If the last data block belongs to the broadcast packet, a plurality of enable signals EN-j (j = j1, j2, j3,...) Corresponding to the bit pattern of the output line number OUT-j are simultaneously turned on. Therefore, the addresses BAi and WA are simultaneously set in the plurality of output standby buffers 330B-j and 330W-j (j = j1, j2, j3,...) To which the ON state enable signal is given. Become.
[0056]
The addresses BAi and WA set in the output standby buffers 330-1 to 330-n are the next read address registers 311-1 to 311-n and the final read address registers 312-1 to 312- The data block is read from the
[0057]
In the first embodiment targeting only unicast packets, the read address RAj may be released to the
[0058]
The read address
FIG. 10 shows an embodiment of the read address
The read address
[0059]
Each selector 361-k (k = 1 to m) is supplied with a clock CLK0 indicating a write cycle as a selection control signal, and the transfer destination output line number NTR output from the
[0060]
For example, in the write cycle of the data block belonging to the unicast packet, the value (= 1) of the transfer destination output line number NTR is set as the read count RCp in the read count register 360-p corresponding to the write address WA. When the data block is read according to the address RAj in the read cycle, RCp = 1 is input to the
[0061]
In the write cycle of the data block belonging to the broadcast (multicast) packet, NTR having a value larger than “1” is set as the read count RCp in the read count register 360-p corresponding to the write address WA. Therefore, even if the data block is read from the
[0062]
In the above embodiment, the
In the embodiment, the input line number is set in the internal header of each data block, and the
[0063]
In the above-described embodiment, each input line interface 10-i (i = 1 to n) divides the received
According to the above configuration, the memory capacity of the
[0064]
As still another embodiment of the present invention, each input line interface 10-i outputs the fixed-length data block 110 to the
In the embodiment, the packet switch connected to a plurality of input / output lines has been described. However, the buffer control of the present invention has a switch structure (multiplexing) that outputs variable-length packets received from a plurality of input lines to one output line. (Apparatus).
[0065]
As described above, in the embodiment of the present invention, an input queue for each variable length packet is formed, and when the last data block of one variable length packet is written to the buffer memory, the linked queue registered in the input queue is registered. -The address is moved to the output queue. Therefore, even when a plurality of variable length packets directed to the same output line are input in parallel, data blocks of other packets are mixed in the data block sequence belonging to one variable length packet in the output queue. This can be prevented, and by sequentially sending the data blocks taken out from the output queue to the output line, the received packet can be correctly transferred to the destination device.
[0066]
Also, as in the embodiment, the output queue is composed of a standby buffer and an address table (or register), and the addresses of the first data block and the last data block of the variable length packet waiting for output are temporarily stored in the standby buffer. When the method of managing the next read address and the last read address of the variable length packet being output by the above address table is used, even if a large number of variable length packets directed to the same output line are received, Can be transferred.
[0067]
Also, as shown in the second embodiment, by registering linked addresses of the same variable length packet in a plurality of output queues and releasing the read address when the read count of the same data block reaches a specified value. Multicast transfer using the common buffer memory effectively becomes possible.
[0068]
【The invention's effect】
As is apparent from the above description, according to the present invention, the variable-length packet received from the input line is divided into fixed-length data blocks and stored in the common buffer memory in fixed-length block units. A configuration in which only the linked address list for reading the data block sequence is moved to the output queue without moving the data block sequence already stored in the common buffer memory when the last data block of the packet is accumulated. Thus, high-speed switching of variable-length packets is possible. Also, a multicast function can be easily realized by registering the same linked address list in a plurality of output queues.
[Brief description of the drawings]
FIG. 1 is a diagram showing an embodiment of a packet switch to which the present invention is applied.
FIG. 2 is a diagram showing details of a
FIG. 3 is a diagram for explaining data blocks stored in a
FIG. 4 is a diagram for explaining the relationship between an input queue / address table 300 and an output queue / address table 310 when the last data block of a variable-length packet arrives;
FIG. 5 is a diagram for explaining the relationship between the input queue address table 300 and the output queue address table 310 when the last data block of another variable-length packet arrives when the output queue is in use.
6 is a diagram showing an embodiment of the input
FIG. 7 is a diagram showing an embodiment of the output
FIG. 8 is a diagram showing an example of the next address management unit shown in FIG. 2;
FIG. 9 is a diagram illustrating an example of a multicast buffer control unit 30B.
10 is a diagram showing an example of a read address
FIG. 11 is a diagram showing another embodiment of a packet switch to which the present invention is applied.
[Explanation of symbols]
1: packet switch, 10: input line interface,
20: output line interface, 21: multiplexing unit, 22: common buffer memory,
23: separation unit, 24: input counter, 25: output counter,
30, 30B: buffer control unit, LI: input line, LO: output line,
31: Header analysis unit, 32: Input queue control unit, 33: Output queue control unit,
34: Next address management unit, 35: Empty address FIFO, 36: Read address release control unit, 300: Input queue address table,
301 (BA1 to BAn): packet head address,
302 (WA1 to WAn): Latest address,
310: Output queue address table,
311 (RA1 to RAn): next read address,
312 (EA1 to EAn): last read address,
313 (F1 to Fn): a queue flag.
Claims (10)
上記複数の入力回線に共用される共通バッファメモリと、
上記各入力回線からの受信パケットを固定長のデータブロック単位で多重化して上記共通バッファメモリに供給する多重化手段と、
上記共通バッファメモリへの上記各固定長データブロックの書込みと読出しを制御するバッファ制御手段とからなり、
上記バッファ制御手段が、上記共通バッファメモリにおける各固定長データブロックの書込みアドレスを可変長パケット別にリンクして複数の入力キューを形成しておき、可変長パケットの最後の固定長データブロックが上記共通バッファメモリに書込み済みとなった入力キューを転送先出力回線と対応する待機バッファを備えた出力キューに登録する第1制御手段と、出力回線対応に形成された複数の出力キューを所定の順序でアクセスし、各出力キューが示すリンクド・アドレスに基づいて上記共通バッファメモリから固定長データブロックを読み出す第2制御手段とを備えたことを特徴とするパケットスイッチ。In a packet switch that transfers variable-length packets received from a plurality of input lines to at least one output line in units of fixed-length data blocks,
A common buffer memory shared by the plurality of input lines;
Multiplexing means for multiplexing received packets from each input line in units of fixed-length data blocks and supplying the multiplexed packets to the common buffer memory;
Buffer control means for controlling the writing and reading of each fixed-length data block to the common buffer memory,
The buffer control means links the write address of each fixed length data block in the common buffer memory for each variable length packet to form a plurality of input queues, and the last fixed length data block of the variable length packet is the common First control means for registering an input queue that has been written to the buffer memory in an output queue having a standby buffer corresponding to the transfer destination output line, and a plurality of output queues formed for the output line in a predetermined order A packet switch comprising: second control means for accessing and reading a fixed-length data block from the common buffer memory based on a linked address indicated by each output queue.
前記第1制御手段が、上記空きアドレスメモリから取り出した書込みアドレスに基づいて前記共通バッファメモリに各固定長データブロックを書き込み、上記次アドレスメモリに上記各書込みアドレスと対応して同一可変長パケットにおける次の固定長データブロックの書込みアドレスを記憶することにより、前記入力キューを形成することを特徴とする請求項1に記載のパケットスイッチ。The buffer control means has an empty address memory for holding an empty address in the common buffer memory, and a next address memory for storing a write address of a fixed-length data block in the common buffer memory;
The first control means writes each fixed length data block to the common buffer memory based on the write address taken out from the empty address memory, and in the same variable length packet corresponding to each write address to the next address memory. The packet switch according to claim 1, wherein the input queue is formed by storing a write address of a next fixed-length data block.
前記第1制御手段が、各入力キューにおける可変長パケットの先頭データブロックの書込みアドレスと最終データブロックの書込みアドレスを転送先出力回線と対応する待機バッファに登録し、これに付随するアドレスメモリが空き状態となった時、前記第2制御手段が、上記待機バッファから取り出した1対のアドレスを上記アドレスメモリに設定することを特徴とする請求項2に記載のパケットスイッチ。Each output queue includes a standby buffer for temporarily storing the write address of the first data block and the write address of the last data block of the variable length packet, the next read address indicating the data block to be read next, and the last data. An address memory for storing a final read address indicating a block;
The first control means registers the write address of the first data block and the write address of the last data block of the variable length packet in each input queue in the standby buffer corresponding to the transfer destination output line, and the associated address memory is empty. 3. The packet switch according to claim 2, wherein the second control unit sets a pair of addresses fetched from the standby buffer in the address memory when a state is reached.
上記複数の入力回線に共用される共通バッファメモリと、
上記各入力回線からの受信パケットを固定長のデータブロック単位で多重化して上記共通バッファメモリに供給する多重化手段と、
上記共通バッファメモリへの上記各固定長データブロックの書込みと読出しを制御するバッファ制御手段とからなり、
上記バッファ制御手段が、上記共通バッファメモリにおける各固定長データブロックの書込みアドレスを可変長パケット別にリンクして複数の入力キューを形成しておき、可変長パケットの最後の固定長データブロックが上記共通バッファメモリに書き込み済みとなった入力キューを転送先出力回線と対応する出力キューに登録する第1制御手段と、出力回線対応に形成された複数の出力キューを所定の順序でアクセスし、各出力キューが示すリンクド・アドレスに基づいて上記共通バッファメモリから固定長データブロックを読み出す第2制御手段とを備え、上記第1制御手段が、最後の固定長データブロックが書き込み済みとなった1つの入力キューを複数の出力キューに登録する機能を有することを特徴とするパケットスイッチ。In a packet switch that transfers variable-length packets received from a plurality of input lines to at least one output line in units of fixed-length data blocks,
A common buffer memory shared by the plurality of input lines;
Multiplexing means for multiplexing received packets from each input line in units of fixed-length data blocks and supplying the multiplexed packets to the common buffer memory;
Buffer control means for controlling the writing and reading of each fixed-length data block to the common buffer memory,
The buffer control means links the write address of each fixed length data block in the common buffer memory for each variable length packet to form a plurality of input queues, and the last fixed length data block of the variable length packet is the common The first control means for registering the input queue that has been written in the buffer memory in the output queue corresponding to the transfer destination output line, and the plurality of output queues formed for the output line are accessed in a predetermined order, and each output Second control means for reading a fixed-length data block from the common buffer memory based on a linked address indicated by a queue, wherein the first control means has one input for which the last fixed-length data block has been written. A packet switch having a function of registering a queue in a plurality of output queues.
前記第1制御手段が、上記空きアドレスメモリから取り出した書込みアドレスに基づいて前記共通バッファメモリに各固定長データブロックを書き込み、上記次アドレスメモリに上記各書込みアドレスと対応して同一可変長パケットにおける次の固定長データブロックの書込みアドレスを記憶することにより、前記入力キューを形成することを特徴とする請求項6に記載のパケットスイッチ。The buffer control means has an empty address memory for holding an empty address in the common buffer memory, and a next address memory for storing a write address of a fixed-length data block in the common buffer memory;
The first control means writes each fixed length data block to the common buffer memory based on the write address taken out from the empty address memory, and in the same variable length packet corresponding to each write address to the next address memory. The packet switch according to claim 6, wherein the input queue is formed by storing a write address of a next fixed-length data block.
前記第1制御手段が、各入力キューにおける可変長パケットの先頭データブロックの書込みアドレスと最終データブロックの書込みアドレスを転送先出力回線と対応する待機バッファに登録し、これに付随するアドレスメモリが空き状態となった時、前記第2制御手段が、上記待機バッファから取り出した1対のアドレスを上記アドレスメモリに設定することを特徴とする請求項7に記載のパケットスイッチ。Each output queue includes a standby buffer for temporarily storing the write address of the first data block and the write address of the last data block of the variable length packet, the next read address indicating the data block to be read next, and the last data. An address memory for storing a final read address indicating a block;
The first control means registers the write address of the first data block and the write address of the last data block of the variable length packet in each input queue in the standby buffer corresponding to the transfer destination output line, and the associated address memory is empty. 8. The packet switch according to claim 7, wherein the second control unit sets a pair of addresses taken out from the standby buffer in the address memory when a state is reached.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000378448A JP3652245B2 (en) | 2000-12-13 | 2000-12-13 | Packet switch |
US09/791,791 US6977941B2 (en) | 2000-11-08 | 2001-02-26 | Shared buffer type variable length packet switch |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000378448A JP3652245B2 (en) | 2000-12-13 | 2000-12-13 | Packet switch |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002185495A JP2002185495A (en) | 2002-06-28 |
JP3652245B2 true JP3652245B2 (en) | 2005-05-25 |
Family
ID=18847017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000378448A Expired - Fee Related JP3652245B2 (en) | 2000-11-08 | 2000-12-13 | Packet switch |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3652245B2 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004066571A1 (en) * | 2003-01-20 | 2004-08-05 | Fujitsu Limited | Network switch apparatus and network switch method |
US7440470B2 (en) * | 2003-02-07 | 2008-10-21 | Fujitsu Limited | Multicasting in a high-speed switching environment |
US7447201B2 (en) * | 2003-02-07 | 2008-11-04 | Fujitsu Limited | Multicasting in a high-speed switching environment |
JP4530806B2 (en) | 2004-11-05 | 2010-08-25 | 富士通株式会社 | Packet transmission equipment |
KR100732135B1 (en) * | 2005-04-08 | 2007-06-27 | 후지쯔 가부시끼가이샤 | Network switch apparatus and network switch method |
JP2007208437A (en) * | 2006-01-31 | 2007-08-16 | Fujitsu Ltd | Cellulation method and device thereof |
JP4786522B2 (en) | 2006-12-25 | 2011-10-05 | 富士通株式会社 | Packet relay method and apparatus |
JP5342428B2 (en) * | 2009-12-18 | 2013-11-13 | 富士通テレコムネットワークス株式会社 | Communication control device |
-
2000
- 2000-12-13 JP JP2000378448A patent/JP3652245B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002185495A (en) | 2002-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6977941B2 (en) | Shared buffer type variable length packet switch | |
TW453080B (en) | Method and apparatus for selectively discarding packet for blocked output queues in the network switch | |
JP3789395B2 (en) | Packet processing device | |
EP0960536B1 (en) | Queuing structure and method for prioritization of frames in a network switch | |
EP0960502B1 (en) | Method and apparatus for transmitting multiple copies by replicating data identifiers | |
US6504846B1 (en) | Method and apparatus for reclaiming buffers using a single buffer bit | |
EP0849917B1 (en) | Switching system | |
US6424659B2 (en) | Multi-layer switching apparatus and method | |
US6052751A (en) | Method and apparatus for changing the number of access slots into a memory | |
JP3645734B2 (en) | Network relay device and network relay method | |
JP3109591B2 (en) | ATM switch | |
JP2001045061A (en) | Communication node device | |
JP2000503828A (en) | Method and apparatus for switching data packets over a data network | |
US20060050693A1 (en) | Building data packets for an advanced switching fabric | |
JP2001512942A (en) | Switching field structure | |
JP4182180B2 (en) | Network relay device and network relay method | |
JP3652245B2 (en) | Packet switch | |
US6735207B1 (en) | Apparatus and method for reducing queuing memory access cycles using a distributed queue structure | |
JP2003521156A (en) | Apparatus and method for sharing memory using a single ring data bus connection configuration | |
JP3645735B2 (en) | Network relay device and network relay method | |
Chiueh et al. | Suez: A cluster-based scalable real-time packet router | |
Tantawy et al. | On the design of a multigigabit IP router | |
JP2000244570A (en) | Device and method for network relay | |
JP3255113B2 (en) | Packet switch system, integrated circuit including the same, packet switch control method, packet switch control program recording medium | |
JP2002152247A (en) | Packet switch |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20040209 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050201 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050222 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090304 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100304 Year of fee payment: 5 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100304 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |