WO2004066571A1 - ネットワークスイッチ装置およびネットワークスイッチ方法 - Google Patents

ネットワークスイッチ装置およびネットワークスイッチ方法 Download PDF

Info

Publication number
WO2004066571A1
WO2004066571A1 PCT/JP2003/000436 JP0300436W WO2004066571A1 WO 2004066571 A1 WO2004066571 A1 WO 2004066571A1 JP 0300436 W JP0300436 W JP 0300436W WO 2004066571 A1 WO2004066571 A1 WO 2004066571A1
Authority
WO
WIPO (PCT)
Prior art keywords
pointer
buffer
transmission
packet
data
Prior art date
Application number
PCT/JP2003/000436
Other languages
English (en)
French (fr)
Inventor
Taul Katayama
Original Assignee
Fujitsu Limited
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Limited filed Critical Fujitsu Limited
Priority to JP2004567119A priority Critical patent/JP3865748B2/ja
Priority to CN038239116A priority patent/CN1689284B/zh
Priority to PCT/JP2003/000436 priority patent/WO2004066571A1/ja
Priority to AU2003203352A priority patent/AU2003203352A1/en
Priority to TW092102031A priority patent/TWI221370B/zh
Publication of WO2004066571A1 publication Critical patent/WO2004066571A1/ja
Priority to US11/082,831 priority patent/US7733889B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9021Plurality of buffers per packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/505Corrective measures
    • H04L49/508Head of Line Blocking Avoidance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/552Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections

Abstract

 可変長パケットが蓄積されるバッファの使用効率を高めながら、ブロッキングの発生が防止されたネットワークスイッチ装置を提供する。受信したパケットは、パケット分割回路(2)によって1つ以上の固定長のデータブロックに分割されて、バッファ(1)に供給される。また、バッファ制御回路(3)の制御により、パケットの転送先のネットワークごとに一定数のデータブロックを登録可能な送信キュー(4−1~n、nは1以上の整数)が形成され、バッファ(1)に書き込まれたデータブロックは、宛先に対応する送信キューにパケット単位で順次登録される。このとき、各パケット内のデータブロック間の連結と、各送信キュー内のパケット間の連結とが、各データブロックのバッファにおける書き込み位置に基づく連結リスト構造として管理される。

Description

明 細 書 ネットワークスィッチ装置およぴネットワークスィッチ方法 技術分野
本発明は、 可変長のバケツトを複数のネットワーク間で転送するネットワーク スィッチ装置およびネットワークスィッチ方法に関し、 特に、 パケットの格納領 域として共有バッファを使用したネットワークスィッチ装置およぴネットワーク スィツチ方法に関する。 背景技術
インターネット等のように多数のネットワークが互いに接続されている場合、 それらの接続にはネットワークスィツチ装置が用いられることが多い。 中でも、 受信したパケットを内部のバッファに一旦蓄積した後、 目的の送信ポートに転送 するスィツチ方式はストァ&フォヮ一ド方式と言われ、 このようなスィツチ方式 を採用したネットワークスィツチ装置が広く使用されている。
また、 近年のネットワーク上での通信では、 転送単位とするパケットのデータ 量が可変とされていることが多い。 例えば、 インターネットプロトコノレ ( I P : Internet Protocol) では、 I Pデータグラムと呼ばれる可変長パケットを転送 単位として、 メッセージ転送が行われる。
図 1 5は、 従来のネットワークスィッチ装置の構成例を示す図である。
図 1 5に示すネットワーク装置は、 複数のネットワーク 2 0 1〜 2 0 4の間で パケットの転送を行う。 このネットワーク装置は、 各ネットワーク 2 0 1〜2 0 4に対応する受信インタフェース 2 1 1〜2 1 4および受信バッファ 2 2 1〜2 2 4と、 各ネットワーク 2 0 1〜 2 0 4に対応する送信インタフェース 2 3 1 - 2 3 4および送信バッファ 2 4 1〜2 4 4と、 データ転送回路 2 5 0によって構 成される。 なお、 図 1 5では、 理解を容易にするために、 受信インタフェース 2 1 1〜2 1 4と送信インタフェース 2 3 1〜2 3 4とを別々の要素として示して いる。 受信インタフェース 2 1 1〜2 1 4は、 ネットワーク 2 0 1〜2 0 4に対して それぞれ接続されている。 また、 同様に、 送信インタフヱース 2 3 1〜2 3 4も、 ネットワーク 2 0 1〜2 0 4に対してそれぞれ接続されている。 各受信インタフ エース 2 1 1〜2 1 4がネットワーク 2 0 1〜2 0 4から受信したバケツトは、 対応する受信バッファ 2 2 1〜2 2 4においてー且蓄積される。 データ転送回路 2 5 0は、 受信バッファ 2 2 1〜2 2 4に蓄積されたパケットの宛先に基づいて、 その宛先ポートに対応する送信バッファに対してパケットを転送する。 各送信パ ッファ 2 4 1〜2 4 4に蓄積されたバケツトは、 対応する送信インタフェース 2 3 1〜2 3 4からの送信要求に従って読み出され、 ネットワーク 2 0 1〜2 0 4 に送信される。
この図 1 5に示したようなネットワークスィッチ装置では、 受信ポートおよび 送信ポートごとにパッファを備えていることから、 バッファを多数確保する必要 があり、 メモリ容量が大きくなるという欠点を有している。 これに対して、 受信 したパケットと送信するパケットをすべて一つの共有バッファに格納する方法を 採ることで、 メモリ容量を削減したネッ トワークスィッチ装置が知られている。 図 1 6は、 共有バッファを具備する従来のネットワークスィッチ装置の構成例 を示す図である。
図 1 6では、 図 1 5と同様に、 複数のネットワーク 3 0 1〜 3 0 4の間でパケ ットの転送を行うネットワーク装置を示している。 このネットワーク装置は、 各 ネットワーク 3 0 1〜 3 0 4に対応する受信インタフェース 3 1 1〜 3 1 4と、 各ネットワーク 3 0 1〜3 0 4に対応する送信インタフェース 3 2 1〜 3 2 4と、 受信パケットおよび送信パケットにそれぞれ対応するデータ転送回路 3 3 0およ ぴ 3 4 0と、 共有バッファ 3 5 0とによって構成される。 なお、 図 1 6では、 理 解を容易にするために、 受信側に対応する受信インタフェース 3 1 1〜3 1 4お ょぴデータ転送回路 3 3 0と、 送信側に対応する送信ィンタフエース 3 2 1〜 3 2 4およびデータ転送回路 3 4 0とを別々の要素として示している。
各受信インタフェース 3 1 1〜3 1 4がネットワーク 3 0 1〜3 0 4から受信 したパケットは、 データ転送回路 3 3 0によって、 共有バッファ 3 5 0に順次蓄 積される。 データ転送回路 3 4 0は、 各送信インタフェース 3 2 1〜3 2 4から の送信要求を受けると、 共有バッファ 3 5 0に蓄積されたバケツトの宛先に基づ いて、 その宛先ポートに対応する送信インタフェースに対してバケツトを転送す る。 各送信インタフェース 3 2 1〜3 2 4は、 共有バッファ 3 5 0から転送され たバケツトを、 接続されたネットワーク 3 0 1〜3 0 4に送信する。
また、 上記の図 1 5およぴ図 1 6のようなネットワークスィッチ装置では、 送 信予定のパケットは、 宛先ポートごとにボインタで連結した連結リスト構造のキ ユーとして制御されることが一般的である。 ここで、 可変長のパケットが扱われ る場合、 各バケツトが格納されるバッファは最大バケツト長を単位として構成さ れることが多く、 このようなバッファに格納されたパケットが、 ポインタを用い て管理される。 このようなアーキテクチャの利点は、 例えばエラーの発生等によ り受信したバケツトを廃棄する場合に、 該当するバケツトへのポインタを削除す るだけで済む等、 制御が容易であることが挙げられる。 しかし、 その反面、 格納 したいバケツト数に最大バケツト長を乗じただけのメモリ容量がバッファに対し て必要となる。 この場合、 例えば最大パケット長より小さい容量のパケットばか りを受信すると、 バッファ内においてパケットに占有されない領域が增えてしま い、 メモリ使用効率が低くなることが欠点であった。
従来、 共通バッファメモリを具備して可変長パケットを取り扱い、 かつ、 この 共通バッファメモリの使用効率を高めたパケットスイッチとして、 例えば以下の ようなものがあった。 このパケットスィッチは、 各入力回線から受信した可変長 パケッ トを、 固定長のデータブロック単位で共通バッファメモリに書き込む。 こ の書き込み時に、 バッファ制御部が入力回線別の入力キューを形成し、 可変長パ ケットの最終データブロックが入力キューに登録された時、 この入力キューのリ ンクド、 ·ァドレスリストを転送先出力回線と対応した出力キューにリンクする。 各入力キューは、 共通バッファメモリへの書き込みの際に、 次の固定長データ ブロックの書き込みァドレスを次ァドレスメモリに記憶することにより形成され る。 また、 各出力キューは、 次に読み出すべきデータプロックを示す次読出しァ ドレスと、 最後のデータプロックを示す最終読出しアドレスとを記憶するァドレ ステーブルからなり、 バッファ制御部の入力キュー制御部が、 各可変長パケット の先頭データブロックの書き込みァドレスと、 最終データブロックの書き込みァ ドレスとを、 それぞれ転送先出力回線と対応するァドレステーブルの次読出しァ ドレスおよび最終読出しァドレスに移すことによって、 出力キュ^ ·の入力キュ 一リンクを完了する。 さらに、 先行する可変長パケットの最終読出しアドレスが すでに登録された状態である場合には、 次アドレスメモリから後続可変長パケッ トの先頭データブロックの書き込みアドレスを抽出して、 このアドレスを最終読 出しアドレスにリンクさせる。 このような制御により、 バッファメモリの使用効 率を高めるとともに、 スイッチング動作を高速化している。 例えば、 特開 2 0 0 2 - 1 5 2 2 4 7号公報 (段落番号 〔0 0 2 5〕 〜 〔0 0 4 0〕 、 第 3図) 参照。 また、 上記と同様に、 各入力回線から受信した可変長パケットを、 固定長のデ 一タブロック単位で共通バッファメモリに書き込むパケットスィッチとして、 デ ータ書き込み時に、 バッファ制御部が入力回線別の入力キュ一を形成し、 可変長 バケツトの最終データブロックが入力キューに登録された時点で、 この入力キュ 一のリンクド ·ァドレスリストをバケツト転送先出力回線と対応する待機バッフ ァを備えた出力キューに登録する構成とされたバケツトスイッチがあった。 この パケットスィッチにおいては、 各出力キューは、 可変長バケツトの先頭データプ 口ックの書き込みァドレスと、 最終データブロックの書き込みァドレスとを一時 的に記憶するための待機パッファと、 次に読み出すべきデータプロックを示す次 読出しァドレスと、 最後のデータプロックを示す最終読出しァドレスとを記憶す るァドレスメモリとからなり、 バッファ制御部の入力キュー制御部が、 各可変長 バケツトの先頭データプロックの書き込みァドレスと、 最終データプロックの書 き込みァドレスとを、 それぞれ転送先出力回線と対応する待機バッファに登録し、 これに付随するァドレスメモリが空き状態となった時、 出力キュー制御部が、 待 機パッファから取り出した 1対のアドレスを、 新たなデータブロック群の次読出 しァドレスおよび最終読出しァドレスとしてァドレスメモリに設定する。 これに より、 バッファメモリの使用効率を高めるとともに、 スィッチング動作を高速化 している。 例えば、 特開 2 0 0 2— 1 8 5 4 9 5号公報 (段落番号 〔0 0 2 5〕 〜 〔0 0 3 7〕 、 第 3図) 参照。
ところで、 上記の図 1 6で示したような共有バッファを用いたネットヮ一クス ィツチ装置では、 特定のポート宛の受信バケツトが集中する等により輻棲が発生 した場合、 これらの受信バケツトゃ同じポート宛の送信パケットによって共有バ ッファ内が占有され、 輻輳が発生したポートと無関係なポートにおいてスループ ットが低下してしまうことがあった。 このような現象は一般にブ口ッキング (blocking) 等と呼ばれる。 特に、 上述したように、 可変長パケットを扱う場合 は、 共有バッファ内の使用効率が低いにもかかわらず、 ブロッキングが発生する 場合がある。
これに対して、 上記の図 1 5のように、 受信パケット用の受信バッファと送信 バケツト用の送信バッファとを、 それぞれ受信ポート数および送信ポート数ごと に設けた場合には、 ブロッキングによるスループットの低下は発生しない。 しか し、 上述したように、 このような構成の場合は、 各バッファの容量を大きくする 必要が生じ、 部品コストが高くなつてしまう。
また、 上記の特開 2 0 0 2— 1 5 2 2 4 7号公報および特開 2 0 0 2— 1 8 5 4 9 5号公報に示したパケットスィツチでは、 可変長パケットを受信した場合に、 共通バッファメモリ内の使用効率を向上させることが可能となっているが、 プロ ッキングを防止する手段が講じられてはいなかった。 発明の開示
本発明はこのような課題に鑑みてなされたものであり、 可変長バケツトが蓄積 されるバッファの使用効率を高めながら、 プロッキングの発生が防止されたネッ トワークスィツチ装置を提供することを目的とする。
本発明では上記課題を解決するために、 図 1に示すようなネットワークスィッ チ装置が提供される。 このネットワークスィッチ装置は、 可変長のパケットを複 数のネットワーク間で転送するものであり、 受信したパケットのデータおよび送 信するバケツ 卜のデータの各格納領域として共用されるバッファ 1と、 受信した 前記パケットを 1つ以上の固定長のデータプロックに分割して前記バッファ 1に 供給するパケット分割回路 2と、 前記バケツトの転送先の前記ネットワークごと に一定数の前記データブロックを登録可能な送信キュー 4一 l〜n (ただし、 n は n > 0の整数) を形成して、 分割された前記データブロックを前記パッファ 1 に書き込んだ後、 その宛先に対応する前記送信キューに前記バケツト単位で順次 登録し、 かつ、 前記各パケット内の前記データブロック間の連結と、 前記各送信 キュー内の前記パケット間の連結とを、 前記各データブロックの前記バッファ 1 における書き込み位置に基づく連結リスト構造として管理するバッファ制御回路 3とを有することを特数とする。
このようなネットワークスィッチ装置では、 1つのバッファ 1力、 受信したパ ケットのデータおょぴ送信するパケットのデータの各格納領域として共用される。 また、 受信したパケットは、 パケット分割回路 2によって 1つ以上の固定長のデ ータプロックに分割されて、 バッファ 1に供給される。 また、 バッファ制御回路 3の制御により、 バケツトの転送先のネットワークごとに一定数のデータブロッ クを登録可能な送信キュー 4一 1〜ηが形成され、 バッファ 1に書き込まれたデ 一タブロックは、 宛先に対応する送信キューにバケツト単位で順次登録される。 このとき、 各パケット内のデータブロック間の連結と、各送信キュー内のパケッ ト間の連結とが、 各データプロックのバッファにおける書き込み位置に基づく連 結リスト構造として管理される。
本発明の上記おょぴ他の目的、 特徴おょぴ利点は本発明の例として好ましい実 施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。 図面の簡単な説明
図 1は、 本発明の原理を説明するための原理図である。
図 2は、 本発明の第 1の実施の形態に係るネットワークスイツチ装置の接続例 を示す図である。
図 3は、 本発明の第 1の実施の形態に係るネットワークスィツチ装置の内部構 成を示すプロック図である。
図 4は、 共有バッファ内におけるデータ格納の様子を模式的に示す図である 図 5は、 ポインタ制御回路およびボインタカウンタ群の内部構成例を示すブ口 ック図である。
図 6は、 P O P制御部の処理の流れを示すフローチヤ一トである。
図 7は、 パケット送信時における P U S H制御部の処理の流れを示すフローチ ヤートである。 図 8は、 第 1の管理方法において、 共有バッファ内に格納されたデータブロッ クの構造を模式的に示す図である。
図 9は、 第 1の連結リスト管理例において、 書き込み Z読み出し制御回路が具 備するレジスタ群の構成を示す図である。
図 1 0は、 第 1の連結リスト管理例において、 バケツトの受信時における書き 込み/読み出し制御回路の処理の流れを示すフローチャートである。
図 1 1は、 第 1の連結リスト管理例において、 パケットの送信時における書き 込み/読み出し制御回路の処理の流れを示すフローチャートである。
図 1 2は、 第 2の連結リスト管理例において、 書き込みノ読み出し制御回路が 具備するメモリの構成を示す図である。
図 1 3は、 第 2の連結リスト管理例において、 バケツトの受信時における書き 込み/読み出し制御回路の処理の流れを示すフローチヤ一トである。
図 1 4は、 第 2の連結リスト管理例において、 パケットの送信時における書き 込み/読み出し制御回路の処理の流れを示すフローチヤ一トである。
図 1 5は、 従来のネットワークスィッチ装置の構成例を示す図である。
図 1 6は、 共有バッファを具備する従来のネットワークスイツチ装置の構成例 を示す図である。 発明を実施するための最良の形態
以下、 本発明の実施の形態を図面を参照して説明する。
図 1は、 本発明の原理を説明するための原理図である。
本発明のネットワークスィツチ装置は、 可変長のパケットを用いて通信が行わ れる複数のネットワークに接続して、 これらのネットワーク間でバケツトを転送 する装置である。 このネットワークスィッチ装置は、 図 1に示すように、 バッフ ァ 1と、 パケット分割回路 2と、 バッファ制御回路 3とを有している。
バッファ 1は、 受信したパケットを格納するための記憶装置であり、 例えば半 導体メモリ等によって構成される。
バケツト分割回路 2は、 受信したバケツトを 1つ以上の固定長のデータブロッ クに分割してバッファ 1に供給する。 従って、 1つのデータプロックの容量は、 1パケット内に許容される最大のデータ量よりも小さく設定される。
ノ ッファ制御回路 3は、 バッファ 1におけるデータブロックの書き込みおよび 読み出しの動作を制御する。 バッファ制御回路 3は、 パケット分割回路 2によつ て分割されたデータブロックを用いて、 宛先となるネットワークごとに送信キュ 一 4一:!〜 n (ただし nは n〉 1の整数) を形成し、 分割されたデータブロック をバッファ 1に書き込んだ後、 その宛先に対応する送信キューにバケツト単位で 順次登録する。 ここで、 各送信キュー 4一 l〜nには、 一定数のデータブロック を登録することが可能とされる。 従って、 バッファ 1内には通常、 転送先のネッ トワークごとに同一容量の送信キュー 4— 1〜nの格納領域が用意される。
また、 ノ ッファ制御回路 3は、 バッファ 1内に格納した各データブロックを、 各データブ口ックのバッファ 1における書き込み位置に基づく連結リスト構造と して管理する。 以下の説明では、 例として、 バッファ制御回路 3は、 バッファ 1 内の書き込み位置を指し示すボインタを一元的に保持するボインタスタック 5を 具備して、 データプロックの書き込み時にこのポインタスタック 5からポインタ を P O Pして取得し、 取得したポインタを用いて連結リスト構造を構築するもの とする。
このような構成のネットワーク装置は、 以下のように動作する。
所定のネットワークからバケツトを受信すると、 このバケツトはパケット分割 回路 2により固定長のデータプロックに分割され、 バッファ制御回路 3の制御に よってバッファ 1に格納される。 このとき、 バッファ制御回路 3は、 例えば、 デ 一タブ口ックの書き込み動作ごとに、 ポインタスタック 5からポインタを P O P して、 このポインタの示すアドレスに対してデータブロックを書き込む。 また、 1バケツトの中で分割されたデータプロック間の連結を、 ボインタを用いた連結 リスト構造として管理する。
1パケット分のデータプロックがバッファ 1に格納されると、 バッファ制御回 路 3は、 このバケツトの宛先に対応する送信キュー 4一 1〜nのいずれかに対し て登録する。 ここで、 バッファ制御回路 3は、 各送信キュー 4—1〜!!において、 登録されたバケツト間の連結を、 それらに対応するポインタを用いた連結リスト 構造として管理する。 各送信キュー 4一:!〜 nからは、 登録されたデータブロックが順次出力され、 対応するネットワークに送信される。 ここで、 各送信キュー 4一 l〜nにおいて、 登録されたデータプロック間およぴパケット間が上記のようなボインタを用いた 連結リスト構造として管理されていることから、 ポインタの指し示す書き込み位 置からデータプロックを読み出すことで、 容易に元のパケットを再編集すること ができる。
以上のネットワークスィツチ装置では、 バケツトの転送先のネットワークごと に一定数のデータブロックを登録可能な送信キュー 4一 1〜nが形成され、 バッ ファ 1に書き込まれた各データブロックが、 パケットの宛先に対応する送信キュ 一にパケット単位で順次登録される。 このような手順を用いることにより、 受信 元および転送先のネットワークにかかわらず、 バケツトの格納領域として 1つの バッファ 1のみ具備すればよいことになる。 また、 各送信キュー 4一 l〜nの容 量が宛先のネットワークごとに限定されるため、 1つの宛先に対するパケットが 集中して受信された場合にも、 それらのパケットがバッファ 1内の他の宛先に対 するパケットの転送動作に影響を与えることがない。 従って、 パケットの格納領 域として 1つのバッファ 1を具備する構成でありながら、 ブロッキングの発生が 防止される。
また、 受信したパケットは 1つ以上の固定長のデータブロックに分割されてバ ッファ 1に書き込まれる。 これとともに、 各パケット内のデータプロック間の連 結と、 各送信キュー 4一:!〜 n内のパケット間の連結と力 各データブロックの バッファにおける書き込み位置に基づく連結リスト構造として管理される。 この ため、 バッファ 1内における未使用領域が小さくなり、 バッファ 1の使用効率が 高められる。 従って、 バッファ 1の容量を抑制することができ、 部品コストが低 減さ る。
なお、 例えば、 送信キュー 4一:!〜 nへのデータブロックの登録時に、 その登 録数が登録可能な数を超えた場合は、 この時点で登録処理中のデータブロックを 含むパケットを廃棄してもよい。 このとき、 各送信キュー 4一:!〜 nへのデータ ブロックの登録数は、 例えば、 使用されているポ- よい。 また、 パケットの廃棄時や、 送信キュー 4一 l〜nからのパケットの出力時に は、 廃棄あるいは出力したパケットで使用されていたポインタを、 ポインタスタ ック 5に対して返却すればよい。 これにより、 バッファ 1内におけるデータブロ ックの書き込みを効率よく制御することができる。
次に、 本発明の第 1の実施の形態について、 具体的に説明する。
図 2は、 本発明の第 1の実施の形態に係るネットワークスィツチ装置の接続例 を示す図である。
図 2に示すように、 ネッ トワークスィツチ装置 1 0 0には、 複数の通信ポート が設けられており、 各通信ポートにネットワーク 2 1〜2 4が接続されている。 各ネットワーク 2 1〜 2 4には、 例えば端末装置 2 1 a、 2 2 a , 2 3 aおよび 2 4 aが接続されている。
ネットワークスィッチ装置 1 0 0は、 接続されたネッ 1、ワーク 2 1〜2 4の間 におけるバケツトの転送を行う。 例えば、 端末装置 2 1 aから端末装置 2 2 a宛 てに送信されたバケツトは、 ネットワーク 2 1を通じてネットワークスィツチ装 置 1 0 0に入力され、 このネットワークスィッチ装置 1 0 0の処理によってネッ トワーク 2 2に転送される。 これにより、 転送されたパケットが、 ネットワーク 2 2を通じて端末装置 2 2 aにおいて受信される。 また、 ネットワークスィッチ 装置 1 0 0は、 可変長のパケットを転送することが可能となっている。
図 3は、 ネットワークスィツチ装置 1 0 0の内部構成を示すプロック図である。 図 3に示すように、 ネットワークスィッチ装置 1 0 0は、 送受信インタフエ一 ス 1 1 1〜 1 1 4、 データ転送回路 1 2 0、 共有バッファ 1 3 0、 書き込み Z読 み出し制御回路 1 4 0、 ポインタスタック 1 5 0、 ボインタ制御回路 1 6 0、 お よびポインタカウンタ群 1 7 0を具備する。 また、 書き込み Z読み出し制御回路 1 4 0、 ポインタスタック 1 5 0およびポインタカウンタ群 1 7 0は、 ポインタ が伝送されるボインタ用バス 1 8 0に接続されている。
送受信インタフェース 1 1 1〜1 1 4は、 外部のネットワークとのデータ送受 信を行う通信インタフェースであり、 それぞれネットワーク 2 1〜2 4に接続さ れている。
『インタフェース 1 1 1〜 1 1 4は、 ネットワーク 2 1〜 2 4から可変 長のパケットを受信し、 このパケットを順次固定長のデータブロックに分割する とともに、 データ転送回路 1 2 0に対して受信要求を通知する。 そして、 この要 求に対する応答を受信すると、 分割したデータプロックをデータ転送回路 1 2 0 に出力する。 このとき、 出力したデータブロックが、 パケット中の先頭のもので あるか、 あるいは最終のものであるかを示すプロック位置情報を通知する。 また、 パケットの宛先を示す情報を抽出して、 この情報もデータ転送回路 1 2 0に通知 する。 さらに、 受信ェラ一等が発生したときは、 該当するパケットのデータを廃 棄するとともに、 廃棄信号をボインタ制御回路 1 6 0に対して出力する。
一方、 送受信インタフェース 1 1 1〜1 1 4は、 データ転送回路 1 2 0から送 信用のデータブロックを順次受け取り、 これらのデータブロックをネットワーク 2 1〜2 4に対して送信する。
データ転送回路 1 2 0は、 各送受信インタフェース 1 1 1〜1 1 4からの受信 要求に応じて、 該当する送受信インタフヱ一ス 1 1 1〜1 1 4からデータブロッ クを受け取り、 共有バッファ 1 3 0に格納する。 このとき、 受け取ったデータブ ロックの受信ポートと、 このデータプロックの宛先に対応する送信ボートと、 デ 一タブ口ックがバケツト中の先頭のものか、 あるいは最終のものかを示すプロッ ク位置情報とを含むインタフェース情報を、 書き込み Z読み出し制御回路 1 4 0 およびポインタ制御回路 1 6 0に対して出力する。
また、 データ転送回路 1 2 0は、 各送受信インタフェース 1 1 1〜1 1 4から の送信要求に応じて、 共有バッファ 1 3 0からバケツトのデータブロックを順次 取り出し、 そのパケットの宛先の端末装置が接続された送受信インタフェースに 順次出力する。 このとき、 出力したデータブロックの宛先を参照して、 送信すベ き宛先が残り 1つとなったときに、 このことをポインタ制御回路 1 6 0に通知す Ό 0
共有バッファ 1 3 0は、 転送されるパケットのデータを、 データブロックとし て一時的に格納するためのバッファメモリである。 この共有バッファ 1 3 0には、 受信ポートごとに 1パケット分のデータプロックを格納する領域と、 送信ポート ごとに形成された送信キューが格納される領域とが確保される。 また、 共有バッ ファ 1 3 0におけるデータブロックの書き込みァドレスおよび読み出しァドレス は、 書き込み/読み出し制御回路 1 4 0によって指定される。
書き込み Z読み出し制御回路 1 4 0は、 共有バッファ 1 3 0におけるデータブ ロックの書き込み動作おょぴ読み出し動作を管理する。 具体的には、 分割された データブロックごとにポインタスタック 1 5 0から順次ポインタを受け取り、 こ のポインタに基づいて共有バッファ 1 3 0におけるデータブロックの書き込みァ ドレスを指定する。 このとき、 受け取ったポインタを、 ポインタ用バス 1 8 0を 通じてポインタカウンタ群 1 7 0に出力する。 また、 共有バッファ 1 3 0内に格 納されたデータプロックを、 上記のポインタを用いた連結リスト構造として管理 し、 このポィンタの連結に基づいて、 共有バッファ 1 3 0からの読み出しァドレ スを指定する。 このとき、 読み出しに用いたポインタを、 ポインタ用バス 1 8 0 を通じてポインタカウンタ群 1 7 0に出力する。
この書き込み/読み出し制御回路 1 4 0は、 共有バッファ 1 3 0内に、 送信ポ ートごとの送信キューを形成する。 各送信キューは、 一定数のデータプロックを 格納可能とされている。 書き込み/読み出し制御回路 1 4 0は、 データブロック を共有バッファ 1 3 0に格納させた後、 その宛先に対応する送信キューに、 デー タブロックを登録する。 この際に、 以前に登録されていたパケットと、 新たに登 録するバケツトとの連結を、 これらを構成するデータブロックに対応するポイン タを用いた連結リスト構造として管理し、 各送信キューからデータブロックを順 次、 データ転送回路 1 2 0に出力させる。
ポインタスタック 1 5 0には、 共有バッファ 1 3 0におけるデータプロックの 書き込みアドレスを指し示すポインタが格納されている。 ポインタスタック 1 5 0は、 共有バッファ 1 3 0内のすべてのパケット格納領域における書き込みァド レスに対応するボインタを一元的に保持しており、 これによつて共有バッファ 1 3 0内の領域を効率的に使用することが可能となっている。
ポインタスタック 1 5 0は、 送受信ィンタフェース 1 1 1〜 1 1 4のいずれか でバケツトが受信され、 このバケツトが分割されて生成されたデータプロックが 共有バッファ 1 3 0に格納される際に、 ポインタ制御回路 1 6 0からの制御信号 に基づいて P O P動作を行い、 P O Pされたボインタを書き込み 読み出し制御 回路 1 4 0に対して、 ポインタ用バス 1 8 0を通じて出力する。 また、 データブ ロックが共有バッファ 1 3 0から取り出される際に、 ポインタ制御回路 1 6 0力、 らの制御信号に基づいて、 ポインタカウンタ群 1 7 0が保持しているポインタを ポインタ用バス 1 8 0を通じて受け取り、 スタックに P U S Hして格納する。 ポインタ制御回路 1 6 0は、 データ転送回路 1 2 0におけるデータプロックの 転送動作や、 パケットを廃棄するように通知する廃棄信号の受信に応じて、 ボイ ンタスタック 1 5 0におけるポインタの P O P動作おょぴ P U S H動作を制御す る。 また、 ポインタカウンタ群 1 7 0に対して制御信号を出力して、 ポインタ用 バス 1 8 0を通じたポィンタのポィンタカウンタ群 1 7 0内における書き込み動 作および読み出し動作を制御する。
ポインタカウンタ群 1 7 0は、 共有バッファ 1 3 0に書き込まれたデータブロ ックのポインタやその使用数、 送信キューに登録されたポインタ数等を、 受信ポ ートごと、 および送信ポートごとに管理する複数の力ゥンタを具備する。 また、 ポインタカウンタ群 1 7 0は、 後述するように、 使用されているポインタを、 デ 一タブ口ックの共有バッファ 1 3 0への書き込み時と、 共有バッファ 1 3 0から の読み出し時とに分割して管理する。 そして、 ポインタ制御回路 1 6 0からの制 御信号に基づき、 転送が完了したデータプロックに対応するポインタをポインタ 用バス 1 8 0に出力し、 ポインタスタック 1 5 0に返却する。 また、 送信キュー に登録するポインタ数をカウントし、 ボインタ数が許容値を超えた場合には、 登 録処理中のパケットを廃棄するように通知する廃棄信号をポインタ制御回路 1 6 0に出力する。
このような構成を有するネッ卜ワークスィツチ装置 1 0 0により、 1つの共有 バッファ 1 3 0を使用したバケツトのスイッチング処理が行われる。 例えば、 ネ ットワーク 2 1からネットワーク 2 2に転送すべきバケツトを受信した場合には、 送受信インタフェース 1 1 1において受信されたバケツトは、 固定長のデータブ ロックに分割され、 データ転送回路 1 2 0を介して共有バッファ 1 3 0に格納さ れる。 共有バッファ 1 3 0における書き込みァドレスは、 ポインタスタック 1 5 0から P O Pされたポインタに基づいて、 書き込み/読み出し制御回路 1 4 0に より指定される。
書き込み /読み出し制御回路 1 4 0は、 共有バッファ 1 3 0内に各送信ポート に対応する送信キューを形成し、 データブロックを共有バッファ 1 3 0に格納し た後、 その宛先に対応する送信キューにデータブロックを登録する。 このとき、 バケツト内でのデータブロック間の連結と、 送信キュー内でのパケット間の連結 とを、 ポインタを用いた連結リスト構造として管理する。 例えば、 送信キュー内 では、 以前に登録されていたパケットの最終データプロックと、 新たに登録され た先頭データブロックと力 ポインタにより連結される。
そして、 この連結リスト構造に従ってボインタを順次指定することにより、 送 信キューからデータブロックが順次読み出される。 読み出されたデータブロック は、 データ転送回路 1 2 0を介して、 宛先に対応する送受信インタフェース 1 1 2に転送され、 ネットワーク 2 2に順次送出される。
ここで、 共有バッファ 1 3 0におけるデータプロックの書き込みァドレスは、 そのァドレスを指し示すポインタとしてポインタスタック 1 5 0から一元的に与 えられる。 書き込み Z読み出し制御回路 1 4 0は、 ポインタスタック 1 5 0から P O Pされたポインタを用いて、 共有バッファ 1 3 0内に格納したデータブ口ッ ク間の連結状態を連結リスト構造として管理する。 このような管理方法により、 受信ポートおよび送信ポートにかかわらず、 パケットの受信から宛先のネットヮ ークに対する送信までの間、 そのバケツトに含まれるデータを 1つの共有バッフ ァ 1 3 0内に格納しておくことが可能となる。 また、 受信したパケットは固定長 のデータブロックに分割されて共有バッファ 1 3 0に格納されるので、 共有バッ ファ 1 3 0内の使用効率を高め、 共有バッファ 1 3 0の容量を小さくすることが 可能となる。
さらに、 ポインタカウンタ群 1 7 0において、 使用中のポインタやその使用数 が管理されるとともに、 送信キューに登録されるデータブロックに対して使用さ れたポインタ数が、 送信ポートごとに管理される。 このような管理方法により、 使用されているポインタの管理が容易になるとともに、 送信キューに登録される データプロック数が一定数以内に留められ、 ブロッキングの発生が防止される。 次に、 図 4は、 共有バッファ 1 3 0内におけるデータ格納の様子を模式的に示 す図である。
図 4に示すように、 共有バッファ 1 3 0内には、 各受信ポートに対応する受信 バケツト専用バッファ領域 1 3 1 a〜1 3 1 dと、 各送信ポートに対応する送信 キュー専用バッファ領域 1 3 2 a〜l 3 2 dとが形成される。 なお、 この図に示 す領域はあくまでも論理的なバッファ領域を示しており、 実際の物理的なバッフ ァ領域は必ずしもこの通りにはならない。
受信バケツト専用バッファ領域 1 3 1 a〜1 3 1 dは、 それぞれ送受信インタ フェース 1 1 1〜 1 1 4に対応しており、 各送受信インタフェース 1 1 1〜1 1 4によって受信されたバケツトがデータブロックに分割され、 データ転送回路 1 2 0により共有バッファ 1 3 0に転送されたときに、 これらのデータブロックが 格納される領域である。
送信キュー専用バッファ領域 1 3 2 a〜1 3 2 dは、 バケツトの宛先に対応す る送信キューに登録されたデ一タブ口ックが格納される領域である。 各送信キュ 一専用バッファ領域 1 3 2 a〜l 3 2 dは有限の容量を有し、 一定数のデータブ 口ックを格納することが可能とされている。 各送信キュー専用バッファ領域 1 3
2 a〜l 3 2 dの容量は、 送信キューに格納されたデータブロックに対して使用 されているポインタの数が、 ポインタカウンタ群 1 7 0においてカウントされる ことにより管理される。
上記のように、 ネットワーク 2 1からネットワーク 2 2に転送すべきバケツト を受信した場合には、 まず、 受信バケツト専用バッファ領域 1 3 1 aに対して 1 パケット分に相当するデータブロックが格納される。 そして、 格納が完了すると、 書き込み/読み出し制御回路 1 4 0の制御により、 宛先の送信ポートに対応する 送信キューに、 これらのデータプロックが連結される。
このとき、 書き込み Z読み出し制御回路 1 4 0により、 パケット内でのデータ プロック間の連結と、 送信キュー内でのパケット間の連結とが、 ポインタを用い た連結リスト構造として管理される。 従って、 共有バッファ 1 3 0内においては、 格納されたパケットのデータの物理的な格納位置が変化することなく、 受信パケ ット専用バッファ領域 1 3 1 a力 送信キュー専用バッファ領域 1 3 2 bの一部 に移行する。
また、 送信キューへの登録動作が終了した後、 送信キュー専用バッファ領域 1
3 2わから、 データブロックが順次読み出される。 この読み出しは、 書き込み Z 読み出し制御回路 1 4 0の制御により、 連結リスト構造に従ってボインタを順次 指定することにより行われる。 また、 読み出されたデータブロックが格納されて いた送信キュー専用バッファ領域 1 3 2 bは、 この領域を指し示していたポイン タが返却されることにより論理上フラッシュされ、 新たなデータブロックを格納 することが可能となる。
次に、 ポインタ制御回路 1 6 0およびポインタカウンタ群 1 7 0の構成につい て詳しく説明する。
図 5は、 ポインタ制御回路 1 6 0およびポインタカウンタ群 1 7 0の内部構成 例を示すプロック図である。 なお、 図 5では、 各部の接続関係の理解を容易にす るために、 ポインタ制御回路 1 6 0およびポインタカウンタ群 1 Ί 0の周囲の機 能プロックについても、 必要に応じて示している。
図 5に示すように、 ボインタ制御回路 1 6 0は、 P O P制御部 1 6 1、 P U S H制御部 1 6 2および廃棄制御部 1 6 3を具備している。 また、 ポインタカウン タ群 1 7 0は、 受信ポートごとに設けられた受信中ポインタカウンタ 1 7 1 a〜 1 7 1 dと、 それぞれ送信ポートごとに設けられた送信中ポインタカウンタ 1 7 2 a〜 1 7 2 dおよび送信キューポインタカウンタ 1 7 3 a〜 1 7 3 dを具備し ている。
ボインタ制御回路 1 6 0において、 P O P制御部 1 6 1は、 データプロックが 共有バッファ 1 3 0に格納される際に、 データ転送回路 1 2 0からのインタフエ ース情報に基づいてデータプロックの転送開始を判断すると、 ポインタスタック 1 5 0に対してポインタを P O Pするように指示するとともに、 受信ポートに対 応する受信中ポインタカウンタに対して、 ポインタの書き込みを指示するための 制御信号を出力する。
P U S H制御部 1 6 2は、 共有バッファ 1 3 0に格納されたデータブロックが 読み出される際に、 データ転送回路 1 2 0からのインタフェース情報に基づいて、 送信ポートに対応する送信中ボインタカウンタに対して、 ボインタの書き込みを 指示するための制御信号を出力する。
また、 1パケット分のデータブロックの読み出し処理が終了し、 かつすベての 宛先への出力が完了すると、 ポインタスタック 1 5 0に対して、 ポインタ用バス 180に出力されたポインタを PUSHするように指示する。 そして、 書き込み を指示していた送信中ポインタカウンタのポインタをフラッシュする。
廃棄制御部 163は、 送受信インタフェース 1 1 1〜: I 14、 および送信キュ 一ポインタカウンタ 173 a〜 173 dから廃棄信号を受信すると、 PUSH制 御部 162に制御信号を出力して、 ポインタスタック 150において PUS H動 作を行わせるように依頼する。 また、 受信中ポインタカウンタ 171 a〜l 71 dおよび送信中ポィンタカウンタ 172 a〜 172 dに対して、 保持しているポ ィンタを読み出すように指示する制御信号を出力する。
なお、 受信中ポインタカウンタ 1 71 a〜 1 71 dおよぴ送信中ポィンタカウ ンタ 1 72 a〜 1 72 dでは、 ポインタの書き込み、 あるいはカウント制御信号 の出力を行うように指定されているカウンタが、 廃棄制御部 163からの制御信 号を受け取る。
一方、 ポインタカウンタ群 170において、 受信中ポインタカウンタ 1 71 a 〜1 71 dおよび送信中ポインタカウンタ 1 72 a〜1 72 dは、 それぞれポィ ンタ用バス 180に接続されて、 ポインタの送受信を行うことが可能となってい る。 また、 受信中ポインタカウンタ 1 71 a〜 1 71 dおよび送信中ポインタ力 ゥンタ 172 a〜 172 dはそれぞれ、 カウント値の増減を指示するための力ゥ ント制御信号を、 送信キューポインタカウンタ 1 73 a〜 173 dに出力する。 受信中ポインタカウンタ 1 71 a〜1 71 dは、 ポインタ制御回路 160の P OP制御部 161からの制御信号に基づいて、 ポインタスタック 150から PO Pされてポィンタ用バス 180を通じて伝送されるポィンタを取得して保持する とともに、 取得したボインタの数をカウントする。
また、 1バケツト分のポインタの格納おょぴポインタ数のカウントが終了する と、 このときのカウント数を、 指定された送信ポートに対応する送信キューボイ ンタカウンタのカウント数に加算するように、 カウント制御信号を出力する。 力 ゥント制御信号の出力後、 保持していたボインタおよびカウント数をクリァする。 さらに、 廃棄制御部 163からの制御信号を受信すると、 保持しているボイン タを読み出してボインタ用バス 180に対して送出し、 ポインタスタック 1 50 に返却する。 このとき、 カウント数をクリァする。 送信中ポインタカウンタ 1 7 2 a〜l 7 2 dは、 書き込み Z読み出し制御回路 1 4 0からポインタ用パス 1 8 0を通じて伝送されるポインタを取得して保持す るとともに、 取得したポインタの数をカウントする。 このとき、 取得したポイン タ数を、 同じ送信ポートに対応する送信キューポインタカウンタ 1 7 3 a〜l 7 3 dのカウント数から順次減算するように、 カウント制御信号を出力する。
また、 読み出されるパケットについて他の宛先が指定されていない場合は、 共 有バッファ 1 3 0からのデータブロックの読み出し時に、 対応するポインタが、 書き込み Z読み出し制御回路 1 4 0からポインタ用バス 1 8 0に順次出力され、 ポインタスタック 1 5 0に返却される。 このとき、 対応する送信中ポィンタカウ ンタは、 カウント数をクリアする。 また、 他の宛先が指定されている場合は、 こ のときのカウント数を、 指定された送信ポートに対応する送信キューボインタカ ゥンタのカウント数に加算するように、 カウント制御信号を出力する。 カウント 制御信号の出力後、 保持していたポインタおよびカウント数をクリアする。
また、 廃棄制御部 1 6 3からの制御信号を受信した場合は、 保持しているボイ ンタを読み出してポインタ用バス 1 8 0に対して送出し、 ポインタスタック 1 5 0に返却する。 このとき、 カウント数をクリアする。
送信キューポインタカウンタ 1 7 3 a〜 1 7 3 dは、 受信中ポインタカウンタ 1 7 1 a〜 1 7 1 dおよび送信中ポィンタカウンタ 1 7 2 a〜 1 7 2 dからの力 ゥント制御信号に基づいて、 カウント動作を行うことにより、 各送信キューに登 録されているデータプロックに対して使用されているポィンタの数をカウントす る。 そして、 各送信キューでのカウント数が所定の値を超えた場合に、 廃棄制御 部 1 6 3に対して廃棄信号を出力する。
ここで、 ポインタ制御回路 1 6 0内の動作と、 ポインタカウンタ群 1 7 0内の 動作とを併せて説明する。 まず、 P O P制御部 1 6 1の処理を示すフローチヤ一 トを示し、 パケット受信時の動作について説明する。
図 6は、 P O P制御部 1 6 1の処理の流れを示すフローチャートである。 以下、 図 6に示す処理をステップ番号に沿って説明する。
[ステップ S 6 0 1 ] データ転送回路 1 2 0からは、 送受信インタフェース 1 1 1〜1 1 4からのデータブロックを共有バッファ 1 3 0に格納する際に、 各デ 一タブロックに関するインタフェース情報が P O P制御部 1 6 1に対して出力さ れる。 卩〇 制御部1 6 1は、 データ転送回路 1 2 0からのインタフェース情報 に基づいて、 データブロックの共有バッファ 1 3 0への格納処理が開始したか否 かを判断する。 そして、 開始したと判断した場合にステップ S 6 0 2に進む。
[ステップ S 6 0 2 ] ポインタスタック 1 5 0に対して、 ポインタを P O Pす るように指示する。 P O Pされたポインタは、 ポインタ用バス 1 8 0を通じて書 き込み/読み出し制御回路 1 4 0に出力され、 さらに、 ポインタカウンタ群 1 7 0に出力される。
[ステップ S 6 0 3 ] 指定された受信ポートに対応する受信中ポインタカウン タに対して、 ボインタの書き込みを指示するための制御信号を出力する。 これに より、 ポインタスタック 1 5 0から P O Pされたポインタが、 受信ポートに対応 する受信中ポインタカウンタに格納され、 この受信中ポィンタカウンタのカウン ト値がカウントアップされる。
[ステップ S 6 0 4 ] ブロック位置情報に基づいて、 格納処理中のデータブロ ックがパケットの最終のものであるか否かを判断する。 最終でない場合はステツ プ S 6 0 1に戻り、 最終である場合はステップ S 6 0 5に進む。
以上のステップ S 6 0 1〜S 6 0 4が繰り返されることにより、 1バケツト分 のデータブロックが共有バッファ 1 3 0に格納されるとともに、 これらのデータ プロックに対して使用されたポインタが、 対応する受信中ポインタカウンタに格 納される。 この受信中ポインタカウンタは、 格納されたポインタ数をカウント数 として保持する。
[ステップ S 6 0 5 ] 上記のステップ S 6 0 1〜S 6 0 4の処理で制御してい た受信中ポインタカウンタに対して、 ポインタの書き込みの終了を指示する。 こ のとき、 ィンタフェース情報に含まれる送信ポートが 1つ選択され、 この送信ポ ―トが制御中の受信中ポインタカウンタに対して通知される。 なお、 送信ポート が複数指定されている場合、 この処理で選択される送信ポートは、 書き込み/読 み出し制御回路 1 4 0において選択されるものと同一となるように、 あらかじめ 規則を定めておく必要がある。
通知を受けた受信中ポインタカウンタは、 保持しているカウント数を、 通知さ れた送信ポートに対応する送信キューポインタカウンタに加算するように、 カウ ント制御信号を出力する。 これにより、 対応する送信キューにおいて使用されて いるポインタ数、 すなわち、 登録されたデータブロック数が、 送信キューポイン タカウンタのカウント数として保持される。
ここで、 カウント制御信号を受信した送信キューポインタカウンタにおいて、 カウント値が許容値を超え、 廃棄信号が廃棄制御部 1 6 3に出力された場合には、 廃棄制御部 1 6 3から P U S H制御部 1 6 2に対して制御信号が出力される。 こ れとともに、 上記の制御対象となっていた受信中ポインタカウンタに対して、 ポ インタを読み出すように指示する制御信号が出力される。 また、 廃棄制御部 1 6 3から書き込み/読み出し制御回路 1 4 0に対して制御信号が出力されるので、 書き込み/読み出し制御回路 1 4 0は、 送信キューへのデータブロックの登録処 理を行わない。 ただし、 他の宛先が存在し、 この宛先に対応する送信キューに格 納可能である場合は、 この送信キューに登録する処理が行われる。
次に、 パケット送信時の動作について説明する。
図 7は、 バケツト送信時におけるネットワークスィッチ装置 1 0 0における処 理の流れを示すフローチャートである。 このフローチャートでは、 1つの送信ポ 一トに対するバケツトの転送が行われる場合の処理を示している。 以下、 図 7に 示す処理をステップ番号に沿って説明する。
[ステップ S 7 0 1 ] データ転送回路 1 2 0力 送受信インタフェースから送 信要求を受信する。
[ステップ S 7 0 2 ] データ転送回路 1 2 0から、 読み出しを行う送信ポート が書き込み Z読み出し制御回路 1 4 0に通知され、 書き込み/読み出し制御回路 1 4 0が、 読み出しァドレスを指定する。 これにより、 対応する送信キューから データブロックが読み出され、 データ転送回路 1 2 0によって宛先に対応する送 受信インタフヱースに対して転送される。
[ステップ S 7 0 3 ] 書き込み/読み出し制御回路 1 4 0カゝらは、 読み出しに 使用したポインタが、 ポインタ用パス 1 8 0に出力される。 このとき、 対応する 送信中ポインタカウンタに対しては、 ポインタの書き込みを指示するための制御 信号が出力され、 この送信中ポインタカウンタには、 書き込み 読み出し制御回 路 1 4 0からのポインタが格納されるとともに、 カウント値がカウントアップさ れる。 さらに、 この送信中ポインタカウンタから、 対応する送信キューポインタ カウンタに対して力ゥント制御信号が出力され、 カウント制御信号を受信した送 [ステップ S 7 0 4 ] データ転送回路 1 2 0は、 読み出したデータプロックの 内容から、 転送すべき宛先が他に存在するか否かを判断している。 ここで、 宛先 が他に存在しない場合のみ、 このことが P U S H制御部 1 6 2に対して通知され る。 P U S H制御部 1 6 2は、 この通知に応じて、 ポインタスタック 1 5 0に対 して、 P U S H動作を開始させるように制御する。 これにより、 書き込み/読み 出し制御回路 1 4 0からポインタ用パス 1 8 0に出力されたポインタが、 ポイン タスタック 1 5 0に返却される。
[ステップ S 7 0 5 ] 読み出したデータブロックがバケツト内の最終のもので あるか否かが判断される。 最終でない場合はステップ S 7 0 2に戻り、 次のデー タブロックの読み出しおよび転送が行われる。 また、 最終のものである場合は、 ステップ S 7 0 6に進む。
以上のステップ S 7 0 1〜S 7 0 5が繰り返されることにより、 1バケツト分 のデータブロックが 1つの送信ポートを通じて送信されるとともに、 これらのデ 一タブ口ックに対して使用されたボインタが、 対応する送信中ボインタカウンタ に格納される。 この送信中ポインタカウンタは、 格納されたポインタ数をカウン ト数として保持する。 また、 この送信中ポインタカウンタの保持するカウント数 分だけ、 同じ送信ポートに対応する送信キューポインタカウンタのカウント値が 減算さ; Ιτる。
[ステップ S 7 0 6 ] すべての宛先に対する転送が終了したか否かが判断され る。 終了した場合はステップ S 7 0 7に進み、 終了していない場合はステップ S 7 0 8に進む。
[ステップ S 7 0 7 ] ポインタの格納先の送信中ポインタカウンタをクリアす る。 これにより、 1パケット分のデータプロックの転送処理が終了される。
[ステップ S 7 0 8 ] 宛先が他に存在する場合には、 データ転送回路 1 2 0に より次の宛先に対応する送信ポートが指定される。 ポインタカウンタ群 1 7 0で は、 新たに指定された宛先に対応する送信キューポインタカウンタにカウント制 御信号が出力され、 送信が終了した送信ポートに対応する送信中ボインタカウン タのカウント値が加算される。
[ステップ S 7 0 9 ] ここで、 カウント値が加算された送信キューポインタ力 ゥンタにおいて、 カウント値が許容値を超える場合には、 廃棄信号が廃棄制御部 1 6 3に出力される。 このとき、 送信キューポインタカウンタでは、 カウント値 の加算を行わない。 廃棄信号が出力された場合にはステップ S 7 1 0に進む。 また、 廃棄信号が出力されなかつた場合にはステップ S 7 0 7に進み、 送信が 終了した送信ポートに対応する送信中ポインタカウンタがクリアされ、 処理が終 了される。 これにより、 同じバケツトの次の送信先に対応する送信キューポイン タカウンタに、 送信中ポインタカウンタのカウント数が加算された状態となる。 また、 書き込み/読み出し制御回路 1 4 0の制御により、 新たな宛先に対応する 送信キューに対して、 パケットが連結される。
[ステップ S 7 1 0 ] 他の宛先があるか否かが判断される。 宛先がある場合は ステップ S 7 0 8に戻り、 データ転送回路 1 2 0によって他の送信ポートが指定 される。 また、 宛先がない場合は、 ステップ S 7 1 1に進む。
このステップでは、 送信キューポインタカウンタからの廃棄信号を受信した廃 棄制御部 1 6 3は、 P U S H制御部 1 6 2に対して P U S H動作の開始を要求す る。 このとき、 P U S H制御部 1 6 2には、 データ転送回路 1 2 0から、 他に宛 先があるか否かについての情報が通知されている。 他に宛先がある場合には、 そ の宛先に対してバケツトの転送を行う必要があるため、 P U S H制御部 1 6 2は ポインタスタック 1 5 0に対して P U S H動作を行うように指示しない。
[ステップ S 7 1 1 ] このステップでは、 P U S H制御部 1 6 2には、 データ 転送回路 1 2 0から、 他に宛先がないことが通知されている。 従って、 P U S H 制御部 1 6 2は、 廃棄制御部 1 6 3からの要求に応じて、 ボインタスタック 1 5 0に対して P U S H動作を行うように指示する。 このとき、 廃棄制御部 1 6 3か らは、 送信が終了した送信ポ一トに対応する送信中ボインタカウンタに対して、 保持しているポインタをポインタ用パス 1 8 0に出力するように指示する制御信 号が出力されている。 この制御信号を受けた送信中ポインタカウンタは、 保持し ているポインタをポインタ用バス 1 8 0に出力する。 これにより、 このポインタ がポインタスタック 1 5 0に返却される。 さらにこの後にステップ S 7 0 7に進 み、 送信中ポインタカウンタをクリアして、 処理が終了する。
以上の図 6およぴ図 7において説明した処理が実行されることにより、 共有パ ッファ 1 3 0におけるデータブロックの書き込みアドレス管理を、 効率よく行う ことが可能となる。 例えば、 パケットを廃棄する場合には、 ポインタ制御回路 1 6 0からの指示に基づいて、 受信中ポインタカウンタ 1 7 1 a〜1 7 1 d、 また は送信中ポインタカウンタ 1 7 2 a〜 1 7 2 dのうちの必要なものからポインタ が読み出され、 ポインタスタック 1 5 0に返却される。 これにより、 返却された ボインタに対応して、 共有バッファ 1 3 0内に空き領域が形成され、 それらのポ ィンタが再ぴ利用されることにより、 後続のデータブロックを共有バッファ 1 3 0に確実に格納することが可能となる。
また、 送信キューボインタカウンタ 1 7 3 a〜 1 7 3 dにおいて、 送信キュー に登録されているデータプロック数が管理されるので、 送信キューが格納される 送信キュー専用バッファ領域 1 3 2 a〜l 3 2 dは常に一定容量以下に制限され る。 従って、 例えば特定の送信ポート宛のパケットが集中して受信された場合に、 格納しきれないパケットが廃棄されるため、 この送信ポートにおける送信処理が 他の送信ポートにおける送信処理に影響を与えず、 プロッキングが容易に防止さ れる。
次に、 共有バッファ 1 3 0内に格納されたデ一タブロックに対する連結リスト 構造を用いた管理について説明する。 ここでは、 以下のような 2通りの管理方法 を例示する。
〔第 1の連結リスト管理例〕
連結リスト構造を用いた第 1の管理例では、 共有バッファ 1 3 0内にデータブ 口ックごとに対応する付属セル領域が設けられる。 そして、 書き込み/読み出し 制御回路 1 4 0は、 1パケット内のデータブロック間の連結、 およぴ各送信キュ 一内におけるバケツト間の連結を管理するための付属情報を生成して、 付属セル 領域に格納する。 また、 書き込み/読み出し制御回路 1 4 0は、 データブロック 間の連結を受信ポートごとおよび送信ポートごとに管理するための各種レジスタ 群を具備して、 このレジスタ群を順次書き換えることにより、 共有バッファ 1 3 0内におけるデータブロックの書き込みおよぴ読み出しを制御する。
図 8は、 共有パッファ 1 3 0内に格納されたデ一タブロックの構造を模式的に 示す図である。 なお、 図 8では、 連結された各データブロックおよび各パケット が連続して配置されているが、 共有バッファ 1 3 0上の実際の物理的な書き込み 位置は、 この通りにはならない。
各送受信インタフェース 1 1 1〜1 1 4においてバケツトが受信され、 データ ブロックに分割されると、 これらのデータブロックは、 ポインタによって指し示 される共有バッファ 1 3 0上のァドレスに格納される。 このとき、 各データプロ ックについて、 付属セル領域 1 3 3 aとデータブロック領域 1 3 3 bとが形成さ れ、 分割されたデ一タブロックはデータブロック領域 1 3 3 bに格納される。 ここで、 例えば、 ネットワーク 2 1からネットワーク 2 2に転送すべきパケッ トを受信した場合を考えると、 送受信インタフェース 1 1 1から、 データ転送回 路 1 2 0によって共有バッファ 1 3 0に供給された 1パケット分のデータブロッ クは、 共有バッファ 1 3 0内の対応する受信パケット専用バッファ領域 1 3 1 a に格納される。 また、 このとき、 各データブロックの付属セル領域 1 3 3 aには、 先頭のデータプロックから順に、 それに続くデータプロックの位置を指し示すポ インタが格納される。 図 8では、 このようなポインタを "ポインタ P 1 " として 示している。 1パケット分のデータプロックの格納が完了した時点では、 最終デ ータプロックを除くすべてのデータブロックの付属セル領域 1 3 3 aに、 後続の データブロックに使用されたボインタ P 1が格納される。 これにより、 パケット 内においてデータブロック間が連結される。
続いて、 これらのデータブロックは、 ネットワーク 2 2に対応する送信キュー に登録される。 このとき、 後述するレジスタ群を用いて、 送信キュー内に登録さ れたうちの最終パケットを常に認識しておき、 送信キューにすでに登録されてい るバケツトがあった場合には、 この最終バケツトの先頭データプロックの付属セ ル領域 1 3 3 aに、 新たに登録するパケットの先頭データプロックの位置を指し 示すポインタを格納する。 図 8では、 このようなポインタを "ポインタ P 2 " と して示している。 これにより、 送信キュー内においてパケット間が連結される。 また、 書き込み/読み出し制御回路 1 40では、 送信キュー内のデータブロッ クを読み出すためのポインタを、 レジスタ群において常に保持しており、 データ ブロックの読み出し動作ごとに、 読み出したデータプロックの付属セル領域 1 3
3 aを参照して、 次に読み出すべきデータブロックのポインタを抽出し、 レジス タ群の格納データを更新していく。
次に、 図 9は、 書き込み/読み出し制御回路 1 40が具備するレジスタ群の構 成を示す図である。
図 9に示すように、 書き込み Z読み出し制御回路 1 40は、 各受信ポートに対 応した受信先頭ァドレスレジスタ 1 4 1 a〜1 4 1 d、 および受信最終ァドレス レジスタ 14 2 a〜142 dと、 各送信ポートに対応した送信済パケットァドレ スレジスタ 1 43 a〜 143 d、 送信プロックアドレスレジスタ 144 a〜 1 4
4 d、 送信最終ァドレスレジスタ 1 45 a〜1 45 d、 およぴ次送信バケツトァ ドレスレジスタ 1 46 a〜1 46 dを具備する。
受信先頭ァドレスレジスタ 1 4 1 a〜1 4 1 dは、 受信したパケットを共有バ ッファ 1 30に格納している際に、 このパケット中の先頭データプロックを指し 示すポインタを保持する。 受信最終アドレスレジスタ 142 a〜l 4 2 dは、 こ のパケット中の最終データプロックを指し示すポインタを保持する。
送信済パケットアドレスレジスタ 1 4 3 a〜 14 3 dは、 共有バッファ 1 30 内に登録されている各送信キューにおいて、 現在送信中または送信が終了したパ ケットの先頭データブロックを指し示すポィンタを保持する。 送信ブロックアド レスレジスタ 144 a〜144 dは、 各送信キューにおいて、 次に送信が予定さ れているデータブロックを指し示すポィンタを保持する。 送信最終ァドレスレジ スタ 1 45 a〜1 45 dは、 各送信キューにおいて最後に登録されたパケットの 先頭データプロックを指し示すボインタを保持する。 次送信パケットアドレスレ ジスタ 146 a〜l 46 dは、 次に送信が予定されているバケツトの先頭データ ブロックを指し示すボインタを保持する。
次に、 これらのレジスタ群と、 各データブロックの付属セル領域 1 3 3 aに格 納された情報に基づく書き込み 読み出し制御回路 140の処理について説明す る。 なお、 以下の図 1 0および図 1 1に示すフローチャートの説明では、 必要に 応じて、 ネットワークスィツチ装置 1 0 0内の他の要素における処理についての 説明も加える。
図 1 0は、 バケツトの受信時における書き込み/読み出し制御回路 1 4 0の処 理の流れを示すフローチャートである。 以下、 図 1 0に示す処理をステップ番号 に沿って説明する。
[ステップ S 1 0 0 1 ] 例えば、 送受信インタフェース 1 1 1においてバケツ トが受信され、 データ転送回路 1 2 0に対して受信要求が通知されると、 データ 転送回路 1 2 0は、 分割されたデータプロックのインタフェース情報を、 書き込 みノ読み出し制御回路 1 4 0に出力する。 書き込み Z読み出し制御回路 1 4 0は、 インタフェース情報の受信を監視し、 これを受信すると、 共有バッファ 1 3 0に 対するデータブロックの格納処理が開始されたと判断して、 ステップ S 1 0 0 2 に進む。
[ステップ S 1 0 0 2 ] ポインタスタック 1 5 0からポインタが P O Pされ、 書き込みノ読み出し制御回路 1 4 0は、 ポインタ用バス 1 8 0を通じてこのボイ ンタを取得する。 そして、 このポインタの指し示す共有バッファ 1 3 0内のァド レスを基に、 データプロックの書き込みァドレスを指定する。 これにより、 デー タブ口ックが共有バッファ 1 3 0に格納される。
[ステップ S 1 0 0 3 ] ステップ S 1 0 0 2で取得したポインタを、 以下の条 件に従って付属セル領域 1 3 3 aや、 受信先頭ァドレスレジスタ 1 4 1 a、 受信 最終ァドレスレジスタ 1 4 2 aに対して書き込む。 これらの条件は、 インタフエ 一ス情報に含まれるブロック位置情報に基づ 、て判断される。
( S 1 0 0 3— 1 ) 共有パッファ 1 3 0に格納したデータブロックが、 パケッ トの先頭データプロックである場合は、 取得したボインタを対応する受信先頭ァ ドレスレジスタ 1 4 1 aおよび受信最終ァドレスレジスタ 1 4 2 aに書き込む。
( S 1 0 0 3— 2 ) 格納したデータプロックが、 パケット内の先頭および最終 以外のデータプロックである場合、 受信最終ァドレスレジスタ 1 4 2 aに格納さ れたポインタを参照する。 このポインタは、 直前のデータブロックの書き込みァ ドレスを指し示すものであり、 書き込み/読み出し制御回路 1 4 0は、 このデー タブロックの付属セル領域 1 3 3 aに、 ステップ S 1 0 0 2で取得したポインタ を格納する。 これにより、 同一パケットにおける直前のデータブロックとが連結 される。
また、 ステップ S 1002で取得したポインタを用いて、 受信最終アドレスレ ジスタ 142 aを更新する。
(S 1003— 3) 格納したデータブロックが、 バケツト内の最終データブロ ックである場合、 受信最終ァドレスレジスタ 142 aに格納されたポインタを参 照する。 そして、 このポインタが指し示すアドレスに書き込まれたデータプロッ クの付属セル領域 133 aに、 ステップ S 1002で取得したポインタを格納し、 直前のデータブロックとを連結させる。 また、 格納したデータブロックの付属セ ル領域 1 33 aに、 後続のデータプロックが存在しないことを示す情報を書き込 む。
[ステップ S 1004] ブロック位置情報に基づいて、 転送処理中のデータプ ロックがパケット内の最終デ一タブロックであるか否かを判断する。 最終データ プロックでない場合は、 ステップ S 1001に戻り、 後続データブロックの格納 処理の開始を待機する。 また、 最終データブロックである場合は、 ステップ S 1 005に進む。
以上のステップ S 1001〜S 1004の処理が繰り返されることにより、 1 パケット分のデータブロックが、 共有バッファ 130内に格納される。 このとき、 このパケット内の先頭データブロックの書き込みァドレスが、 受信先頭ァドレス レジスタ 141 aに保持され、 最終データブロック、 またはこの直前のデータブ 口ックの書き込みァドレスが、 受信最終ァドレスレジスタ 142 aに保持される。 なお、 以上のステップ S 1001〜S 1004の処理は、 図 6で示したステツ プ S 601〜S 605の処理に対応する。 すなわち、 この時点において、 バケツ トの格納に使用されたポインタとその数が受信中ポインタカウンタ 1 71 aに保 持される。
次に、 送信キューへの登録処理が行われる。
[ステップ S 1005] インタフェース情報に基づいて、 宛先の送信ポートを 選択する。 なお、 ここでは、 宛先としてネットワーク 22が選択されたものとし て説明する。 また、 このとき、 受信中ポインタカウンタ 171 aのカウント数が、 送信キューポインタカウンタ 1 73 bのカウント値に加算される。
[ステップ S 1006] 送信キューポインタカウンタ 1 73 bにおいて、 カウ ント値が許容値を超え、 かつ他の宛先が存在しない場合、 廃棄制御部 163から 書き込み Z読み出し制御回路 140に対して制御信号が出力される。 書き込み Z 読み出し制御回路 140は、 この制御信号を受信した場合はステツプ S 1008 に進み、 受信しなかった場合はステップ S 1007に進む。
[ステップ S 1007] 受信したバケツトを、 宛先に対応する送信キューに登 録する処理を行う。 ここでは、 選択した送信ポートに対応する次送信パケットァ ドレスレジスタ 146 bを参照して、 このレジスタにデータが格納されているか 否かによって、 宛先の送信キューに先行するパケットが登録されているか否かを 判断する。 そして、 受信先頭ァドレスレジスタ 141 aに格納されたポインタを、 送信用の各種レジスタや付属セルに書き込むことにより、 パケットを送信キュー に連結する。
(S 1007- 1) 宛先に対応する送信キューに、 先行するバケツトが登録さ れている場合、 受信先頭アドレスレジスタ 141 aに格納されているポインタを 抽出する。 そして、 宛先に対応する送信最終ァドレスレジスタ 145 bに格納さ れたポィンタを参照して、 送信キュー内にすでに登録されていたうちの最終パケ ットの先頭データブロックの書き込み位置を抽出し、 このデータブロックの付属 セル領域 133 aに、 受信先頭ァドレスレジスタ 141 aから抽出したポィンタ を格納する。 これにより、 送信キュー内の先行するバケツトにおいて、 その先頭 データプロックの付属セル領域 133 aに、 後続のデータブロックを指し示すポ インタと、 後続のパケットの先頭データブロックを指し示すポインタとが格納さ れ、 先行するパケットと新たに登録するパケットとの間が連結される。
また、 送信最終ァドレスレジスタ 145 bには、 受信先頭ァドレスレジスタ 1 41 aに格納されていたポインタを書き込む。 これにより、 送信キュー内の最終 バケツトの先頭位置を指し示すポインタが更新される。
(S 1007- 2) 宛先に対応する送信キューに、 先行するパケットが登録さ れていない場合、 受信先頭ァドレスレジスタ 141 aに格納されているポインタ を、 宛先に対応する送信済パケットアドレスレジスタ 143 b, 送信プロックァ ドレスレジスタ 1 4 4 b、 送信最終アドレスレジスタ 1 4 5 b、 および次送信パ ケットアドレスレジスタ 1 4 6 bにそれぞれ格納する。 これにより、 書き込み/ 読み出し制御回路 1 4 0は、 対応する送信キューから先行して読み出すバケツト の読み出し位置を認識する。
[ステップ S 1 0 0 8 ] ステップ S 1 0 0 6において廃棄制御部 1 6 3からの 制御信号を受信した場合は、 インタフェース情報を参照して、 宛先として他の送 信ポートが指定されているか否かを判断する。 他の宛先が存在する場合は、 ステ ップ S 1 0 0 5に戻り、 新たな宛先の送信ポートを選択する。
以上の処理により、 共有バッファ 1 3 0上の送信キューにバケツトが正しく登 録された場合には、 この送信キュー上のデータブロックが、 ポインタを用いた連 結リスト構造として管理されることになる。 次に、 この連結リスト構造に従って ポインタを順次抽出することにより、 送信キューからデータプロックを順次読み 出し、 宛先のネットワークに対して送信する。
図 1 1は、 バケツトの送信時における書き込みノ読み出し制御回路 1 4 0の処 理の流れを示すフローチャートである。 以下、 図 1 1に示す処理をステップ番号 に沿って説明する。
[ステップ S 1 1 0 1 ] 例えば、 ネットワーク 2 2に対するバケツトの送信が 行われる場合、 送受信インタフェース 1 1 2からデータ転送回路 1 2 0に対して 送信要求が通知されると、 データ転送回路 1 2 0は、 これに対応する送信ポート 情報を含むインタフェース情報を、 書き込み/読み出し制御回路 1 4 0に出力す る。 書き込み Z読み出し制御回路 1 4 0は、 インタフェース情報の受信を監視し、 これを受信すると、 共有バッファ 1 3 0からのデータブロックの転送が開始され たと判断して、 ステップ S 1 1 0 2に進む。
[ステップ S 1 1 0 2 ] 送信ボートに対応する送信ブ口ックァドレスレジスタ 1 4 4 bに格納されているポインタを参照し、 このポィンタに基づいて共有バッ ファ 1 3 0の読み出しァドレスを指定する。 これにより、 対応する送信キューの 先頭データブロックと、 その付属セル領域 1 3 3 aに格納されたボインタとが読 み出され、 データブロックはデータ転送回路 1 2 0を通じて送受信インタフエ一 ス 1 1 2に転送される。 [ステップ S 1 103] 読み出された付属セル領域 133 aに格納されたボイ ンタと、 送信ブロックアドレスレジスタ 144 bのポインタとを用いて、 以下の 条件に従って、 送信済パケットアドレスレジスタ 143 b、 送信ブロックァドレ スレジスタ 144 b、 送信最終ァドレスレジスタ 145 b、 および次送信パケッ トアドレスレジスタ 146 bのポインタを更新する。
(S 1 103 - 1) まず、 送信ブロックアドレスレジスタ 144 bに格納され ているポインタを、 送信済パケットアドレスレジスタ 143 bに書き込む。 これ により、 読み出し中のバケツトの先頭デ一タブロックを指し示すボインタが保持 される。
そして、 読み出したデータブロックがパケット中の先頭であり、 付属セル領域 1 33 a内に、 後続パケットへのボインタ (図 10のステップ S 1007— 1で 格納されたポインタ) が格納されていた場合は、 このポインタを次送信パケット ァドレスレジスタ 146 bに格納する。 これにより、 送信キュー内に次のバケツ トが登録されていた場合に、 このバケツトの先頭ァドレスを認識することが可能 となる。
また、 付属セル領域 1 33 aに格納された後続バケツトへのポインタ (図 10 のステップ S 1 102一 2または S 1 102 _ 3で格納されたポインタ) を、 送 信ブロックァドレスレジスタ 144 bに格納する。 これにより、 次に読み出すベ きデータブロックのアドレスを認識することが可能となる。
(S 1 103-2) 読み出したデータブロックがパケット中の先頭および最終 でない場合、 付属セル領域 133 aに格納されていた後続データブロックへのポ ィンタを、 送信プロックァドレスレジスタ 144 bに格納する。
(S 1 103-3) 読み出したデータブロックがバケツト中の最終である場合、 次送信バケツトアドレスレジスタ 146 bに格納されていたポインタを、 送信ブ ロックアドレスレジスタ 144 bに格納する。
[ステップ S 1 104] ステップ S 1 102で参照したポインタを、 ポインタ 用バス 180に対して出力する。 この処理は、 図 7のステップ S 702に対応し、 出力されたポインタは、 対応する送信中ポインタカウンタ 172 bに格納されて カウントアップが行われるとともに、 対応する送信キューポインタカウンタ 17 3 aがカウントダウンされる。
[ステップ S 1 1 0 5 ] 読み出したデータブロックがバケツト中の最終のもの であるか否かを判定する。 最終でない場合は、 ステップ S 1 1 0 1に戻り、 次の データブロックの転送が開始されるのを待機する。 以後、 1パケット分のデータ ブロックが読み出されるまで、 ステップ S 1 1 0 1〜S 1 1 0 5の処理が繰り返 され、 処理が終了する。
なお、 以上の処理が終了した時点では、 読み出された 1パケット分のデータブ ロックに使用されていたポインタが、 すべて送信中ポインタカウンタ 1 7 2 に 格納され、 このポインタ数が保持される。 また、 このボインタ数分だけ送信キュ 一ポインタカウンタ 1 7 3 bのカウント数が減算されている。
また、 この後、 インタフェース情報に他の宛先の送信ポートが含まれている場 合には、 他の送信ポートを選択して、 この送信ポートに対応する送信キューに、 パケットを連結する。 このとき、 新たな送信キューに対応する送信キューボイン タカウンタに、 送信中ポインタカウンタ 1 7 2 bのカウント値が加算され、 この カウント値が許容値以内である場合に、 パケットの登録が許可される。
バケツトの登録のためには、 送信済パケットアドレスレジスタ 1 4 3 bに格納 されているポインタを取り出す。 これとともに、 新たな送信キュー内に格納され ていた最終パケットの先頭データプロックを抽出して、 その付属セル領域 1 3 3 aに、 送信済バケツトァドレスレジスタ 1 4 3 bからのポインタを格納して、 パ ケット間の連結を行う。
以上説明した連結データ構造を用いた第 1の管理方法では、 データプロックと ともに付属セル領域 1 3 3 aが共有バッファ 1 3 0内に形成され、 この付属セル 領域 1 3 3 aに後続のデータブロックやバケツトの先頭部のポインタが格納され る。 これにより、 パケット内のデータプロック、 および送信キュー内のパケット が、 容易に連結される。 また、 受信ポートおよび送信ポートごとに設けられた合 計 5種類のレジスタを用いて、 送信キューの登録処理、 および送信キューからの 読み出し処理が制御される。 このため、 安価な装貴構成で、 共有バッファ 1 3 0 に対する書き込みおよび読み出しの処理が効率よく管理される。
〔第 2の連結リスト管理例〕 連結リスト構造を用いた第 2の管理例では、 書き込み Z読み出し制御回路 1 4 0に、 受信ポートごと、 および送信ポートごとにメモリ領域を設け、 これらのメ モリ領域に、 データブロックの書き込みァドレスを指し示すポインタを順次格納 することにより、 データブロック間の連結を管理する。
図 1 2は、 書き込み/読み出し制御回路 1 4 0が具備するメモリの構成を示す 図である。
図 1 2に示すように、 書き込み/読み出し制御回路 1 4 0は、 各受信ポートに 対応した受信用ァドレスメモリ 1 4 7 a〜1 4 7 dと、 各送信ポートに対応した 送信用ァドレスメモリ 1 4 8 a〜 1 4 8 dを具備する。
受信用ァドレスメモリ 1 4 7 a〜 1 4 7 dは、 受信したパケットを分割したデ 一タブ口ックを、 共有バッファ 1 3 0に格納する際に、 後続のデータブロックを 指し示すポインタが順次格納されるメモリである。 また、 送信用アドレスメモリ 1 4 8 a〜 1 4 8 dは、 パケットが送信キューに登録される際に、 後続のデータ プロックを指し示すボインタが順次格納されるメモリである。
これらのメモリは F I F O (First In First Out) 制御により、 ポインタの格 納および取り出しができるようになつている。 また、 F I F O制御に加えて L I F O (Last In First Out) 制御が可能となっていてもよい。
次に、 これらのメモリを使用した書き込み/読み出し制御回路 1 4 0の処理に ついて説明する。 なお、 以下の図 1 3およぴ図 1 4に示すフローチャートの説明 では、 必要に応じて、 ネットワークスィッチ装置 1 0 0内の他の要素における処 理についての説明も加える。
図 1 3は、 バケツトの受信時における書き込み/読み出し制御回路 1 4 0の処 理の流れを示すフローチャートである。 以下、 図 1 3に示す処理をステップ番号 に沿って説明する。
[ステップ S 1 3 0 1および S 1 3 0 2 ] これらのステップの処理は、 それぞ れ図 1 0に示したステップ S 1 0 0 1および S 1 0 0 2と同じである。 すなわち、 例えば、 送受信インタフェース 1 1 1からデータ転送回路 1 2 0に対して受信要 求が通知されると、 データ転送回路 1 2 0は、 分割されたデータブロックのイン タフ ース情報を、 書き込み Z読み出し制御回路 1 4 0に出力する。 書き込み Z 読み出し制御回路 140は、 インタフェース情報を受信した後、 ポインタスタツ ク 1 50から POPされたポインタを取得して、 このポインタの指し示す共有バ ッファ 130内のァドレスを、 データプロックの書き込みァドレスとして指定す る。 これにより、 データプロックが共有バッファ 130に格納される。
[ステップ S 1303] 取得したポインタを、 受信ポートに対応する受信用ァ ドレスメモリ 147 aに F I FO方式で格納する。
[ステップ S 1304] 転送処理中のデータプロックがバケツト内の最終デー タブロックであるか否かを判断し、 最終データプロックでない場合は、 ステップ S 1 301に戻る。 そして、 以上のステップ S 1 301〜S 1 304の処理が繰 り返されることにより、 1バケツト分のデータブロックが、 共有バッファ 130 内に格納される。 これとともに、 格納したデータプロックを指し示すポインタが、 受信用ァドレスメモリ 147 aに順次格納され、 バケツト内のデータブロック間 が連結される。
なお、 このとき、 受信用アドレスメモリ 147 aに格納されたものと同じボイ ンタが、 受信中ポインタカウンタ 1 71 aに格納されている。 この後、 格納した パケットを、 例えばネットワーク 22に対応する送信キューに登録する処理が行 われる。
[ステップ S 1 305] 宛先の送信ポートを選択する。 このとき、 受信中ボイ ンタカウンタ 1 71 aのカウント数が、 宛先に対応する送信キューポインタカウ ンタ 1 73 bに加算される。
[ステップ S 1306] 送信キューボインタカウンタ 1 73 bにおいてカウン ト値が許容値を超えた場合、 廃棄制御部 163から制御信号が出力される。 この 制御信号が出力された場合はステップ S 1309に進み、 出力されなかった場合 はステップ S 1 307に進む。
[ステップ S 1307] 受信用ァドレスメモリ 147 aに格納されていたボイ ンタを、 宛先に対応する送信用ァドレスメモリ 148 bに対して、 F I FO方式 で格納する。 これにより、 宛先に対応する送信キュー内でのパケット間の連結が 行われる。
[ステップ S 1 308] 受信用ァドレスメモリ 147 aをクリアし、 処理を終 了する。
[ステップ S 1309] 他の宛先が指定されている力否かを判定し、 指定され ている場合はステップ S 1 305に戻って、 新たな送信ポートを選択する。 また、 指定されていない場合は、 ステップ S 1308に進む。 このとき、 受信 中ポインタカウンタ 171 aに保持されていたポインタが、 ポインタスタック 1 50に返却される。 なお、 受信用ァドレスメモリ 147 a〜 147 dにおいて L
1 FO制御が可能である場合は、 受信中ポインタカウンタ 1 71 aの代わりに、 受信用ァドレスメモリ 147 aに格納されていたポインタを、 ポインタスタック 1 50に返却するようにしてもよい。
次に、 図 14は、 バケツトの送信時における書き込み/読み出し制御回路 14 0の処理の流れを示すフローチヤ一トである。 以下、 図 14に示す処理をステツ プ番号に沿って説明する。
[ステップ S 1401] 例えば、 ネッ トワーク 22に対するバケツ トの送信が 行われる場合、 図 1 1のステップ S 1 101と同様に、 送受信インタフェース 1 12からデータ転送回路 120に対して送信要求が通知され、 データ転送回路 1
20力 ら、 これに対応する送信ポート情報を含むインタフェース情報が、 書き込 み/読み出し制御回路 140に出力される。 書き込み/読み出し制御回路 140 は、 インタフェース情報を受信すると、 データプロックの転送開始と判断して、 ステップ S 1402に進む。
[ステップ S 1402] 送信ポートに対応する送信用ァドレスメモリ 148 b に格納されているポインタを F I F O方式で取り出し、 このポィンタに基づいて 共有バッファ 130の読み出しアドレスを指定する。 これにより、 対応する送信 キューの先頭データブロックが読み出され、 データ転送回路 120を通じて送受 信インタフェース 1 12に転送される。
[ステップ S 1403] 送信用ァドレスメモリ 148 bから取り出したポイン タを、 ボインタ用バス 1 80に出力する。 出力されたポインタは、 対応する送信 中ポインタカウンタ 172 bに格納されてカウントアップが行われるとともに、 対応する送信キューポインタカウンタ 1 73 aがカウントダウンされる。
[ステップ S 1404] 読み出したデータブロックがバケツト中の最終のもの であるか否かを判定し、 最終でない場合はステップ S 1 4 0 1に戻る。 以後、 1 パケット分のデータプロックが読み出されるまで、 ステップ S 1 4 0 1〜S 1 4 0 4の処理が繰り返され、 処理が終了される。
なお、 以上の処理が終了した時点では、 図 1 1の場合と同様に、 読み出された 1パケット分のデータブロックに使用されていたポインタが、 すべて送信中ポィ ンタカウンタ 1 7 2 bに格納され、 このポインタ数が保持される。 また、 このポ インタ数分だけ送信キューポインタカウンタ 1 7 3 bのカウント数が減算されて いる。
また、 この後、 インタフェース情報に他の宛先の送信ポートが含まれている場 合には、 他の送信ポートを選択して、 この送信ポートに対応する送信キューに、 パケットを連結する。 送信キューへの連結の可不可については、 対応する送信キ ュ一ポインタカウンタのカウント数、 および対応する宛先ポートに対する廃棄信 号のアサートの有無に基づいて判定される。
パケットの登録のためには、 例えば、 送信中ポインタカウンタ 1 7 2 bに格納 されていたポインタを、 ポインタ用パス 1 8 0を通じて受け取り、 新たな送信キ ユーに対応する送信用アドレスレジスタに対して格納する。 また、 送信用ァドレ スメモリ 1 4 8 a〜 1 4 8 bにおいて L I F O制御が可能である場合は、 送信中 ポインタカウンタ 1 7 2 bの代わりに、 送信用ァドレスメモリ 1 4 8 bから L I F O方式でボインタを取り出して、 宛先の送信用ァドレスレジスタに格納しても よい。 このような処理により、 新たな送信キュ一に対してバケツトが容易に連結 さ†Lる。
以上説明した連結データ構造を用いた第 2の管理例では、 データプロックの書 き込み時に、 使用されているポインタがメモリに順次格納される。 そして、 メモ Vに格納されたポインタを順に取り出すことにより、 読み出しァドレスを指定す る。 このような処理により、 パケット内のデータプロック間の連結、 および送信 キュー内のパケット間の連結が効率よく管理される。
ここで、 以上の第 2の連結リスト管理例では、 第 1の管理例と比較して、 使用 されているポインタを格納する処理が非常に単純になる。 その反面、 第 2の管理 例では、 共有バッファ 1 3 0に格納するデータブロック数分のポインタを格納可 能なメモリが必要となり、 第 1の管理例で使用されたレジスタ群と比較して、 大 容量のメモリを用意する必要がある。 このため、 部品コストが上昇し、 メモリの 設置面積が大きくなる。 また、 F I F O制御だけでなく、 L I F O制御を可能と した場合、 メモリのコストはさらに上昇する。
以上説明したように、 本発明のネットワーク装置では、 パケットの転送先のネ ットワークごとに一定数のデータプロックを登録可能な送信キューが形成され、 バッファに書き込まれたデータプロックが、 宛先に対応する送信キューにパケッ ト単位で順次登録されるため、 データプロックの書き込みに 1つのバッファが用 いられながらも、 プロッキングの発生が防止される。 また、 受信したパケットは 1つ以上の固定長のデータプロックに分割されてバッファに書き込まれるととも に、 各パケット内のデータブロック間の連結と、 各送信キュー内のパケット間の 連結とが、 各データブロックのバッファにおける書き込み位置に基づく連結リス ト構造として管理されるため、 バッファの使用効率を高めることができる。 上記については単に本発明の原理を示すものである。 さらに、 多数の変形、 変 更が当業者にとって可能であり、 本発明は上記に示し、 説明した正確な構成およ び応用例に限定されるものではなく、 対応するすべての変形例おょぴ均等物は、 添付の請求項およびその均等物による本発明の範囲とみなされる。

Claims

請 求 の 範 囲
1 . 可変長のパケットを複数のネットワーク間で転送するネットワークスイツ チ装置において、
受信したパケットのデータおよび送信するバケツトのデータの各格納領域とし て共用されるバッファと、
受信した前記パケットを 1つ以上の固定長のデータブロックに分割して前記パ ッファに供給するバケツト分割回路と、
前記パケットの転送先の前記ネットワークごとに一定数の前記データプロック を登録可能な送信キューを形成して、 分割された前記データブロックを前記バッ ファに書き込んだ後、 その宛先に対応する前記送信キューに前記パケット単位で 順次登録し、 かつ、 前記各パケット内の前記データプロック間の連結と、 前記各 送信キュー内の前記パケット間の連結とを、 前記各データプロックの前記バッフ ァにおける書き込み位置に基づく連結リスト構造として管理するバッファ制御回 路と、
を有することを特徴とするネットワークスィツチ装置。
2 . 前記バッファ制御回路は、 前記各送信キューに登録された前記データプロ ックを前記連結リスト構造に従って順次読み出すことを特徴とする請求の範囲第 1項記載のネットワークスィツチ装置。
3 . 前記バッファ制御回路は、 前記各送信キューへの前記データプロックの登 録数が登録可能数を超えた場合は、 この時点で登録処理中の前記データプロック を含む前記バケツトを廃棄することを特徴とする請求の範囲第 1項記載のネット ワークスィツチ装置。
4 . 前記バッファ制御回路は、 1つの前記バケツト当たりで許容される最大数 の前記デ一タブ口ックが登録可能な受信キューを、 受信元の前記ネットワークご とに形成し、 前記各受信キューに対する 1つの前記バケツト分の前記データプロ ックの登録が完了すると、 対応する受信キューを宛先に対応する前記送信キュー に連結することを特徴とする請求の範囲第 1項記載のネットワークスイツチ装置。
5 . 前記バッファ制御回路は、 前記バッファにおける前記データプロックの書 き込み位置を指し示すボインタを一元的に保持するポインタスタックを具備し、 前記バッファへの前記データプロックの書き込み時に前記ボインタスタックか ら前記ポインタを取得し、 取得した前記ポインタを用いて前記各バケツト内の前 記データブロック間の連結と、 前記各送信キュー内の前記バケツト間の連結とを 管理することを特徴とする請求の範囲第 1項記載のネットワークスィツチ装置。
6 . 前記バッファ制御回路は、
受信元の前記ネットワークごとに設けられて、 前記パケットの受信時に前記ポ インタスタックから取得したポィンタが順次格納されるとともに、 格納されてい るボインタ数をカウントする受信中ボインタカウンタと、
転送先の前記ネットワークごとに設けられて、 前記各送信キューに登録された 前記データブロックに対応するポインタ数をカウントする送信キューポインタ力 ゥンタと、
転送先の前記ネットワークごとに設けられて、 前記送信キューから送信される 前記パケットに対応する前記ポインタが順次格納されるとともに、 格納されてい るポインタ数をカウントする送信中ポインタカウンタと、
を具備し、 受信した前記バケツトを宛先に対応する前記送信キューに登録する 際に、 対応する前記受信中ポインタカウンタのカウント値を宛先に対応する前記 送信キューボインタカウンタの力ゥント値に合算し、 前記パケットを前記送信キ ユーから送信する際に、 対応する前記送信キユーポインタカウンタを順次力ゥン トダウンするとともに、 対応する前記送信中ポインタカウンタを順次カウントァ ップすることを特徴とする請求の範囲第 5項記載のネットワークスィツチ装置。
7 . 前記バッファ制御回路は、 前記送信キューからの前記パケットの送信時に 前記ボインタを前記ポインタスタックに P U S Hして返却することを特徴とする 請求の範囲第 6項記載のネットワークスィッチ装置。
8 . 前記バッファ制御回路は、 前記送信キューからの前記バケツトの送信後に、 さらに他の前記ネットワークへの転送を行う場合には、 送信済みの前記送信キュ 一に対応する送信中ポインタカウンタのカウント値を、 転送先の前記ネットヮー クに対応する前記キューポインタカウンタのカウント値に合算することを特徴と する請求の範囲第 6項記載のネットワークスィツチ装置。
9 . 前記バッファ制御回路は、 受信した前記バケツトを宛先に対応する前記送 信キューに登録する際に、 宛先に対応する前記キューポインタカウンタのカウン ト値が一定値を超えた場合には、 登録処理中の前記パケットを廃棄するとともに、 対応する前記受信中ポインタカウンタに格納されていた前記ボインタを前記ボイ ンタスタックに P U S Hして返却することを特徴とする請求の範囲第 6項記載の ネットワークスィツチ装置。
1 0 . 前記バッファ制御回路は、 前記各パケット内の後続の前記データプロッ クの書き込み位置を示す前記ポインタを、 前記データプロックとともに付属デー タとして前記バッファに書き込むことを特徴とする請求の範囲第 5項記載のネッ トワークスィッチ装置。
1 1 . 前記バッファ制御回路は、 同一の前記送信キューに複数の前記パケット が登録された場合に、 後続バケツトの先頭に位置する前記データブロックを指し 示すポインタを、 先行バケツトの先頭に位置する前記データブロックの前記付属 データとしてさらに前記パッファに書き込むことを特徴とする請求の範囲第 1 0 項記載のネットワークスィッチ装置。
1 2 . 前記バッファ制御回路は、 前記各送信キュー内に登録されたうち、 次に 送信が予定されている前記パケットの先頭に位置する前記データブロックを指し 示すボインタと、 次に送信が予定されている前記データプロックを指し示すボイ ンタとを、 それぞれ次送信パケットアドレスレジスタおよび送信ブロックァドレ スレジスタに保持し、 前記各レジスタを参照して前記バッファからの前記データ プロックの読み出しァドレスを指定することを特徴とする請求の範囲第 1 1項記 載のネットワークスィツチ装置。
1 3 . 前記バッファ制御回路は、 前記各送信キューから前記データブロックを 読み出すたびに、 読み出した前記データブロックの前記付属データに基づいて前 記送信ブロックァドレスレジスタを更新し、 前記パケットを読み出すたびに、 読 み出した前記パケットの先頭に位置する前記データプロックの前記付属データに 基づいて前記次送信パケットァドレスレジスタを更新することを特徴とする請求 の範囲第 1 2項記載のネットワークスイツチ装置。
1 4 . 前記バッファ制御回路は、 前記各送信キューに登録した前記データプロ ックの書き込み位置を指し示す前記ボインタを格納するための送信用プロック位 置メモリを送信先の前記ネットワークごとに具備し、
前記送信用プロック位置メモリを参照して前記バッファからの前記データプロ ックの読み出しァドレスを指定することを特徴とする請求の範囲第 5項記載のネ ットワークスィッチ装置。
1 5 . 前記バッファ制御回路は、 分割した前記データブロックが前記バッファ に書き込まれた後、 同一パケット内の後続の前記データブロックの書き込み位置 を指し示す前記ボインタが順次格納される受信用プロック位置メモリをさらに具 備し、
前記送信キューに対する前記パケットの登録時に、 前記受信用ブロックメモリ に格納されていた該当する前記ポインタを登録先の前記送信キューに対応する前 記送信用プロック位置メモリに格納することを特徴とする請求の範囲第 1 4項記 載のネットワークスィッチ装置。
1 6 . 可変長のバケツトを複数のネットワーク間で転送するネットワークスィ ツチ装置において、
受信したバケツトのデータおよび送信するバケツトのデータの各格納領域とし て共用されるバッファと、
受信した前記パケットを 1つ以上の固定長のデータプロックに分割して前記バ ッファに供給するパケット分割回路と、
前記バッファにおける前記データプロックの書き込み位置を指し示すポインタ を一元的に保持するボインタスタックと、
前記ボインタスタックから取得した前記ボインタを用いて、 前記バッファに対 する前記データプロックの書き込み動作および読み出し動作を制御するバッファ 制御回路と、
を有し、 前記バッファ制御回路は、 前記バッファへの前記データブロックの書 き込み時に、 前記ボインタスタックから前記ボインタを取得して前記バッファに 対する書き込みァドレスとして指定するとともに、 前記各バケツト内の後続の前 記データブロックの書き込み位置を示す前記ボインタを、 前記データプロックと ともに付属データとして前記バッファに書き込むことを特徴とするネットワーク
1 7 . 前記バッファ制御回路は、 同一の前記送信キューに複数の前記パケット が登録された場合に、 後続バケツトの先頭に位置する前記データブロックを指し 示すボインタを、 先行パケットの先頭に位置する前記データプロックの前記付属 データとしてさらに前記バッファに書き込むことを特徴とする請求の範囲第 1 6 項記载のネットワークスイツチ装置。
1 8 . 前記バッファ制御回路は、 前記各送信キュー内に登録されたうち、 次に 送信が予定されている前記パケットの先頭に位置する前記データプロックを指し 示すボインタと、 次に送信が予定されている前記データプロックを指し示すボイ ンタとを、 それぞれ送信済パケットアドレスレジスタおよび送信ブロックァドレ スレジスタに保持し、 前記各レジスタを参照して前記バッファからの前記データ ブロックの読み出しアドレスを指定することを特徴とする請求の範囲第 1 7項記 載のネットワークスィッチ装置。
1 9 . 前記バッファ制御回路は、 前記各送信キューから前記データプロックを 読み出すたびに、 読み出した前記データプロックの前記付属データに基づいて前 記送信プロックァドレスレジスタを更新し、 前記各送信キューから前記パケット を読み出すたびに、 読み出した前記バケツトの先頭に位置する前記データブロッ クの前記付属データに基づいて前記送信済パケットァドレスレジスタを更新する ことを特徴とする請求の範囲第 1 8項記載のネットワークスィッチ装置。
2 0 . 可変長のバケツトを 1つのバッファに一旦蓄積しながら複数のネットヮ ーク間で転送するネットワークスィツチ方法において、
受信した前記パケットを 1つ以上の固定長のデータプロックに分割して前記バ ッファに供給し、
前記バケツトの転送先の前記ネットワークごとに一定数の前記データブロック を登録可能な送信キューを形成して、 分割された前記データブロックを前記バッ ファに書き込んだ後、 その宛先に対応する前記送信キューに前記パケット単位で 順次登録し、 かつ、 前記各パケット内の前記データブロック間の連結と、 前記各 送信キュー內の前記パケット間の連結とを、 前記各データブロックの前記バッフ ァにおける書き込み位置に基づく連結リスト構造として管理する、 ことを特^とするネットワークスィッチ方法。
2 1 . 可変長のバケツトを 1つのバッファに一且蓄積しながら複数のネットヮ ーク間で転送するネットワークスィツチ方法において、
受信した前記パケットを 1つ以上の固定長のデータプロックに分割して前記バ ッファに供給し、
前記バッファにおける前記データブロックの書き込み位置を指し示すボインタ を一元的に保持するボインタスタックから、 前記ボインタを取得して前記パッフ ァに対する書き込みァドレスとして指定するとともに、 前記各パケット内の後続 の前記データプロックの書き込み位置を示す前記ボインタを、 前記データプロッ クとともに付属データとして前記バッファに書き込む、
ことを特徴とするネットワークスィツチ方法。
PCT/JP2003/000436 2003-01-20 2003-01-20 ネットワークスイッチ装置およびネットワークスイッチ方法 WO2004066571A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2004567119A JP3865748B2 (ja) 2003-01-20 2003-01-20 ネットワークスイッチ装置およびネットワークスイッチ方法
CN038239116A CN1689284B (zh) 2003-01-20 2003-01-20 网络交换装置和网络交换方法
PCT/JP2003/000436 WO2004066571A1 (ja) 2003-01-20 2003-01-20 ネットワークスイッチ装置およびネットワークスイッチ方法
AU2003203352A AU2003203352A1 (en) 2003-01-20 2003-01-20 Network switch apparatus and network switch method
TW092102031A TWI221370B (en) 2003-01-20 2003-01-29 Network switching device and network switching method
US11/082,831 US7733889B2 (en) 2003-01-20 2005-03-18 Network switching device and method dividing packets and storing divided packets in shared buffer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/000436 WO2004066571A1 (ja) 2003-01-20 2003-01-20 ネットワークスイッチ装置およびネットワークスイッチ方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/082,831 Continuation US7733889B2 (en) 2003-01-20 2005-03-18 Network switching device and method dividing packets and storing divided packets in shared buffer

Publications (1)

Publication Number Publication Date
WO2004066571A1 true WO2004066571A1 (ja) 2004-08-05

Family

ID=32750568

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/000436 WO2004066571A1 (ja) 2003-01-20 2003-01-20 ネットワークスイッチ装置およびネットワークスイッチ方法

Country Status (6)

Country Link
US (1) US7733889B2 (ja)
JP (1) JP3865748B2 (ja)
CN (1) CN1689284B (ja)
AU (1) AU2003203352A1 (ja)
TW (1) TWI221370B (ja)
WO (1) WO2004066571A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100393070C (zh) * 2005-06-14 2008-06-04 杭州华三通信技术有限公司 堆叠设备中报文重定向的方法
JP2009532954A (ja) * 2006-03-31 2009-09-10 クゥアルコム・インコーポレイテッド 高速メディアアクセス制御に関するメモリ管理
JP2011130249A (ja) * 2009-12-18 2011-06-30 Fujitsu Telecom Networks Ltd 通信制御装置
JP2011254149A (ja) * 2010-05-31 2011-12-15 Nippon Telegr & Teleph Corp <Ntt> 情報処理装置、情報処理方法およびプログラム
JP2012089948A (ja) * 2010-10-15 2012-05-10 Fujitsu Ltd データ転送装置及びデータ転送方法
JP2014142757A (ja) * 2013-01-23 2014-08-07 Toshiba Corp インターフェース制御装置、データ記憶装置及びインターフェース制御方法
JP2016158024A (ja) * 2015-02-23 2016-09-01 日本電信電話株式会社 通信用入出力装置
JP2020529166A (ja) * 2017-07-31 2020-10-01 新華三技術有限公司New H3C Technologies Co., Ltd. パケット処理

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7623452B2 (en) * 2003-08-01 2009-11-24 Hewlett-Packard Development Company, L.P. User configurable functions for adjusting service differentiation meters
JP4100340B2 (ja) * 2003-12-22 2008-06-11 ソニー株式会社 磁気記録再生装置
US20060036802A1 (en) * 2004-08-11 2006-02-16 Ixi Mobile (R&D) Ltd. Flash file system management
US7518996B2 (en) * 2004-09-16 2009-04-14 Jinsalas Solutions, Llc Fast credit system
DE102004052692B4 (de) * 2004-10-29 2008-04-24 Siemens Ag Verfahren zur Übermittlung von in Form von Datenpaketen zur Verfügung stehenden Daten
US7693166B2 (en) * 2005-02-17 2010-04-06 Nec Corporation Method and apparatus for transmitting data to network and method and apparatus for receiving data from network
US7487271B2 (en) * 2005-09-22 2009-02-03 Motorola, Inc. Method and apparatus using buffer pools and arrays of buffer pointers for sharing memory in a multiprocessor system
US8736627B2 (en) * 2006-12-19 2014-05-27 Via Technologies, Inc. Systems and methods for providing a shared buffer in a multiple FIFO environment
CN101094183B (zh) * 2007-07-25 2011-12-07 杭州华三通信技术有限公司 一种缓存管理方法及装置
US8059670B2 (en) * 2007-08-01 2011-11-15 Texas Instruments Incorporated Hardware queue management with distributed linking information
US8223779B2 (en) * 2008-02-07 2012-07-17 Ciena Corporation Systems and methods for parallel multi-core control plane processing
US8271683B2 (en) * 2008-03-21 2012-09-18 International Business Machines Corporation Content push service
KR20110021184A (ko) * 2009-08-25 2011-03-04 삼성전자주식회사 컴퓨터시스템, 디스크저장장치 및 그 제어방법
TWI416336B (zh) * 2009-11-10 2013-11-21 Realtek Semiconductor Corp 可共享緩衝器的網路介面卡與緩衝器共享方法
WO2012144041A1 (ja) * 2011-04-20 2012-10-26 富士通株式会社 中継装置、及び復旧方法
JP2012257041A (ja) * 2011-06-08 2012-12-27 Sony Corp 通信装置、通信システム、通信方法及びプログラム
WO2014101090A1 (zh) * 2012-12-28 2014-07-03 华为技术有限公司 缓存报文的方法和装置
CN103581054A (zh) * 2013-10-30 2014-02-12 清华大学 用于变长包交换的交换系统
CN103746945B (zh) * 2013-12-30 2017-06-27 上海华为技术有限公司 一种数据传输装置及方法
CN104486263B (zh) * 2014-12-09 2017-10-24 中国航空工业集团公司第六三一研究所 一种共享存储交换机发送控制方法及系统
CN104486264B (zh) * 2014-12-09 2018-01-12 中国航空工业集团公司第六三一研究所 一种基于交换控制字的交换机内部总线结构
US10114741B1 (en) 2016-11-23 2018-10-30 Levyx, Inc. Data traffic reservation systems and methods
US10481980B2 (en) * 2018-03-29 2019-11-19 International Business Machines Corporation Enabling segmented source data introspection within dispersed storage network (DSN) memory
CN110098977B (zh) * 2019-04-12 2020-11-06 中国科学院声学研究所 网络数据包按序存储方法、计算机设备和存储介质
CN111491038B (zh) * 2020-06-29 2020-10-09 北京一流科技有限公司 静态网络中的数据传输系统及其方法
CN114185513B (zh) * 2022-02-17 2022-05-20 沐曦集成电路(上海)有限公司 数据缓存装置和芯片

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05276189A (ja) * 1992-03-27 1993-10-22 Hitachi Ltd 同報通信装置
JPH06164641A (ja) * 1992-11-17 1994-06-10 Matsushita Electric Ind Co Ltd Fifoメモリ・パケットスイッチ
JPH1098475A (ja) * 1996-09-24 1998-04-14 Fujitsu Ltd 共通バッファメモリ管理方式
JPH10247924A (ja) * 1997-03-06 1998-09-14 Fujitsu Ltd 共通セルバッファ装置
JPH11122257A (ja) * 1997-10-15 1999-04-30 Hitachi Ltd 共通バッファ型スイッチ
JP2000299701A (ja) * 1999-04-12 2000-10-24 Fujitsu Ltd パケット処理装置およびパケット処理方法
JP2002185495A (ja) * 2000-12-13 2002-06-28 Hitachi Ltd パケットスイッチ

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530806A (en) * 1994-12-15 1996-06-25 At&T Corp. Method and apparatus for storing and retrieving routing information in a network node
US5950231A (en) * 1996-11-25 1999-09-07 Northern Telecom Limited Memory manager system
US6493347B2 (en) * 1996-12-16 2002-12-10 Juniper Networks, Inc. Memory organization in a switching device
US6018763A (en) * 1997-05-28 2000-01-25 3Com Corporation High performance shared memory for a bridge router supporting cache coherency
US7145868B2 (en) * 1997-11-28 2006-12-05 Alcatel Canada Inc. Congestion management in a multi-port shared memory switch
US6977941B2 (en) * 2000-11-08 2005-12-20 Hitachi, Ltd. Shared buffer type variable length packet switch
US6779084B2 (en) * 2002-01-23 2004-08-17 Intel Corporation Enqueue operations for multi-buffer packets
US7337275B2 (en) * 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
GB2393273A (en) * 2002-09-20 2004-03-24 Sharp Kk Method and apparatus for detecting an error in writing to persistent memory

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05276189A (ja) * 1992-03-27 1993-10-22 Hitachi Ltd 同報通信装置
JPH06164641A (ja) * 1992-11-17 1994-06-10 Matsushita Electric Ind Co Ltd Fifoメモリ・パケットスイッチ
JPH1098475A (ja) * 1996-09-24 1998-04-14 Fujitsu Ltd 共通バッファメモリ管理方式
JPH10247924A (ja) * 1997-03-06 1998-09-14 Fujitsu Ltd 共通セルバッファ装置
JPH11122257A (ja) * 1997-10-15 1999-04-30 Hitachi Ltd 共通バッファ型スイッチ
JP2000299701A (ja) * 1999-04-12 2000-10-24 Fujitsu Ltd パケット処理装置およびパケット処理方法
JP2002185495A (ja) * 2000-12-13 2002-06-28 Hitachi Ltd パケットスイッチ

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100393070C (zh) * 2005-06-14 2008-06-04 杭州华三通信技术有限公司 堆叠设备中报文重定向的方法
JP2009532954A (ja) * 2006-03-31 2009-09-10 クゥアルコム・インコーポレイテッド 高速メディアアクセス制御に関するメモリ管理
US8139593B2 (en) 2006-03-31 2012-03-20 Qualcomm Incorporated Memory management for high speed media access control
US8594112B2 (en) 2006-03-31 2013-11-26 Qualcomm Incorporated Memory management for high speed media access control
JP2011130249A (ja) * 2009-12-18 2011-06-30 Fujitsu Telecom Networks Ltd 通信制御装置
JP2011254149A (ja) * 2010-05-31 2011-12-15 Nippon Telegr & Teleph Corp <Ntt> 情報処理装置、情報処理方法およびプログラム
JP2012089948A (ja) * 2010-10-15 2012-05-10 Fujitsu Ltd データ転送装置及びデータ転送方法
JP2014142757A (ja) * 2013-01-23 2014-08-07 Toshiba Corp インターフェース制御装置、データ記憶装置及びインターフェース制御方法
JP2016158024A (ja) * 2015-02-23 2016-09-01 日本電信電話株式会社 通信用入出力装置
JP2020529166A (ja) * 2017-07-31 2020-10-01 新華三技術有限公司New H3C Technologies Co., Ltd. パケット処理
JP7074839B2 (ja) 2017-07-31 2022-05-24 新華三技術有限公司 パケット処理
US11425057B2 (en) 2017-07-31 2022-08-23 New H3C Technologies Co., Ltd. Packet processing

Also Published As

Publication number Publication date
US7733889B2 (en) 2010-06-08
TW200414719A (en) 2004-08-01
JP3865748B2 (ja) 2007-01-10
AU2003203352A1 (en) 2004-08-13
CN1689284A (zh) 2005-10-26
JPWO2004066571A1 (ja) 2006-05-18
TWI221370B (en) 2004-09-21
CN1689284B (zh) 2010-04-28
US20050163141A1 (en) 2005-07-28

Similar Documents

Publication Publication Date Title
WO2004066571A1 (ja) ネットワークスイッチ装置およびネットワークスイッチ方法
EP0758824B1 (en) Compact, adaptable, bridging/routing switch
US6907001B1 (en) Packet switch for switching variable length packets in the form of ATM cells
JP2788577B2 (ja) フレーム変換方法及び装置
JP3109591B2 (ja) Atm交換機
US7782849B2 (en) Data switch and switch fabric
WO2004066570A1 (ja) ネットワークスイッチ装置およびネットワークスイッチ方法
CA2336465A1 (en) System and method for switching packets in a network
JPH07288546A (ja) 回線アダプタおよび経路指定方法
SE506955C2 (sv) ATM-flödesstyrning
WO2002049287A1 (en) Apparatus and methods for managing packets in a broadband data stream
GB2387688A (en) Reassembly of data blocks within a network processor
US20050138238A1 (en) Flow control interface
US6735207B1 (en) Apparatus and method for reducing queuing memory access cycles using a distributed queue structure
US6324164B1 (en) Asynchronous transfer mode (A.T.M.) protocol adapter for a high speed cell switching system
US7333489B1 (en) System and method for storing frame header data
US7756131B2 (en) Packet forwarding system capable of transferring packets fast through interfaces by reading out information beforehand for packet forwarding and method thereof
US7415025B1 (en) Method and apparatus for clearing a large number of connections in an ATM network
EP1119136A2 (en) Method and apparatus for per connection queuing of multicast transmissions
US7293132B2 (en) Apparatus and method for efficient data storage using a FIFO memory
KR100732135B1 (ko) 네트워크 스위치 장치 및 네트워크 스위치 방법
CN100484136C (zh) 网络协议引擎
JP3255113B2 (ja) パケットスイッチシステム、これを含む集積回路、パケットスイッチ制御方法、パケットスイッチ制御プログラム記録媒体
US6847637B1 (en) Unit and method for switching data packets, a data processing apparatus comprising such a unit and a network comprising them
JP2001326683A (ja) パケット交換機、パケット交換方法

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004567119

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11082831

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 20038239116

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 1020057006110

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 1020057006110

Country of ref document: KR

122 Ep: pct application non-entry in european phase