JP2002514366A - 探索可能なキャッシュ領域を備えるマルチコピーキュー構造 - Google Patents

探索可能なキャッシュ領域を備えるマルチコピーキュー構造

Info

Publication number
JP2002514366A
JP2002514366A JP53578798A JP53578798A JP2002514366A JP 2002514366 A JP2002514366 A JP 2002514366A JP 53578798 A JP53578798 A JP 53578798A JP 53578798 A JP53578798 A JP 53578798A JP 2002514366 A JP2002514366 A JP 2002514366A
Authority
JP
Japan
Prior art keywords
frame
entry
memory
copy
copies
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.)
Granted
Application number
JP53578798A
Other languages
English (en)
Other versions
JP2002514366A5 (ja
JP4078446B2 (ja
Inventor
エリムリ,バハディール
ルナルデュー,トーマス・ジェイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2002514366A publication Critical patent/JP2002514366A/ja
Publication of JP2002514366A5 publication Critical patent/JP2002514366A5/ja
Application granted granted Critical
Publication of JP4078446B2 publication Critical patent/JP4078446B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0213Standardised network management protocols, e.g. simple network management protocol [SNMP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/255Control mechanisms for ATM switching fabrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • 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/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • H04L49/9073Early interruption upon arrival of a fraction of a packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/42Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker
    • H04Q3/54Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised
    • H04Q3/545Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised using a stored programme
    • H04Q3/54575Software application
    • H04Q3/54591Supervision, e.g. fault localisation, traffic measurements, avoiding errors, failure recovery, monitoring, statistical analysis
    • 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/20Support for services
    • H04L49/205Quality of Service based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/45Arrangements for providing or supporting expansion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1316Service observation, testing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13162Fault indication and localisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 ネットワークスイッチから送信されたフレームのコピー数のカウントを維持する装置および方法は、ネットワークスイッチから送信されるべきフレームのコピー数をストアするためのキャッシュメモリを用いる。フレームのコピーの送信を示すエントリをキューに入れるためにキューが用いられ、これらのキューに入れられたエントリは解放され、マネージャに与えられる。このフレームのコピーが送信され、バッファマネージャがエントリがキューを去った後にこの送信を示すエントリを検査するたびに、バッファマネージャはキャッシュメモリ内の対応のエントリを探索し、キャッシュメモリ内のそのフレームのコピー数(すなわち、送信数のカウント)を変更する。

Description

【発明の詳細な説明】 探索可能なキャッシュ領域を備えるマルチコピーキュー構造 発明の分野 本発明は通信分野に関連し、特に、データの複数のコピーを送信し、送信され たコピーの数のカウントを維持するための方法および装置に関する。 背景技術 パケット交換網(たとえば、イーサネット網)のような多くのネットワークシ ステムにおいて、単一のエンドステーションが同じデータをネットワーク上の複 数の他のエンドステーションに送信することがしばしば望ましい。たとえば、従 来の電子メールシステムでは、ユーザは同じ電子メールメッセージをその電子メ ールシステムに接続された異なる4人のユーザに送ることを望むかもしれない。 パケット交換網では、スイッチがそのボートを通してエンドステーションから データのフレームを受信すると転送決定を行なう。フレームが多数のエンドステ ーションに送信されるべきであれば、スイッチはフレームを正しいポートに転送 するための転送決定を行なわなければならない。このようなシステムにおける問 題の1つはフレームの正しい数のコピーが送信されることを確実とすることであ る。この問題は、情報がそれを通して送信され得る多数のポートをスイッチが有 する場合に特に達成が困難である。たとえば、フレームのコピーがスイッチの3 つの異なるポートから同時に送信されるのであれば、送信されたコピーの数の正 確なカウントを維持することは問題である。 また、送信されたコピー数の正確なカウントを維持して、データを一時的に保 持するために用いられている資源が他のデータをストアするためにいつ再使用で きるかがスイッチにわかるようにすることが重要である。この情報の提供が時宜 を得たものでなければ、データをストアするための資源に不必要な輻輳およびコ ンテンションが起こり得る。 発明の概要 パケット交換網のネットワークスイッチのような装置から送信された、フレー ムのようなデータ項目のコピー数のカウントを維持する構成および方法が必要で ある。 上記および他の必要は、ネットワークスイッチから送信されるフレームのコピ ーのカウントを維持するための構成であって、マルチコピーキュー、探索可能な メモリおよびバッファマネージャを含む構成を提供する本発明の実施例によって 満たされる。マルチコピーキューはエントリを受取り、キューに入れる。各エン トリはフレーム識別子およびコピー数を有する。各コピー数は正または負の値で あり、正の値のコピー数は送信されるべきフレームのコピーの総数を表わし、負 の値のコピー数は既に行なわれたフレームのコピーの1つの送信を表わす。メモ リは、正のコピー数を有するマルチコピーキューからのエントリを受取り、スト アするよう構成される。バッファマネージャはマルチコピーキューを出た後のエ ントリを検査する。マルチコピーキューからのエントリが負のコピー数を含む( そのコピーが送信されたことを示す)とき、バッファマネージャは負のコピー数 を有するエントリと同じフレーム識別子を有するエントリを求めて第1のメモリ を探索する。バッファマネージャは、メモリ内のエントリのコピー数が1よりも 大きければメモリ内のエントリのコピー数をデクリメントし、コピー数が1と等 しければメモリ内のエントリをデリートする。 本発明のこの実施例の利点は、コピーが異なるポートから同時に送信され得る マルチポートスイッチ環境においても正確なカウント数の送信が行なわれること である。カウントはキャッシュメモリのようなメモリ内に各複数コピーフレーム ごとに維持される。このフレームのコピーが送信されるたびに、バッファマネー ジャはそのフレームのコピー数(すなわち、送信数のカウント)を変更する。フ レームコピーの送信を示すエントリをキューに入れるためのキューを用いること によって、コピーの各送信を認識し、それに従ってメモリ内のカウントを調節す る機会がバッファマネージャに与えられる。これは、全送信が同時に起こっても 認識されるように、キューがバッファマネージャにコピーの送信を順次的に通知 するためである。 上述の必要は、エントリをストアするよう構成される第1のメモリを含み、各 エントリが第2のメモリ内にストアされるデータを指すデータポインタと関連の データ項目とを有するメモリ構成を提供する本発明の別の実施例によって満たさ れる。第2のメモリが、第2のメモリ内のデータポインタが指す場所にデータを ストアする。第2のメモリ内の場所はそのデータとともに関連のデータをストア するよう構成され、したがって、第2のメモリは関連のデータ項目をストアする ための第1のメモリの拡張部である。 上述の実施例によって与えられる利点の1つは、第2のメモリが必要に応じて 第1のメモリの直接アドレス指定可能な拡張部となることができる点である。デ ータと関連し、通常は第1のメモリ内にストアされるデータ項目がデータ自体と ともに第2のメモリ内にストア可能である。したがって、この構成は必要な場合 にのみデータ項目をストアするためのより大容量のメモリを与え、したがって、 第1のメモリは小さく、比較的高速に保たれ得る。 本発明の別の実施例は、装置から送信されるべきデータ項目のコピー数のカウ ントを維持するための構成を提供し、エントリがストアされる第1のメモリとマ ネージャ装置とを含む。第1のメモリ内にストアされる各エントリは、複数のコ ピーが装置から送信されるべき異なるデータ項目に対応する。各エントリは、第 2のメモリ内のデータ項目がストアされている場所を指すポインタと、データの いくつのコピーがまだ送信されていないかを示すコピー数とを有する。マネージ ャ装置は、第1のメモリ内のエントリと同じポインタを有するデータ項目のコピ ーが装置から送信されるときに、第1のメモリ内にストアされているエントリの 1つのコピー数を調節する。 本発明の別の実施例では、パケット交換網のためのマルチポートスイッチ構成 が設けられ、スイッチは1つのフレームの複数のコピーを送信するよう構成され る。スイッチ構成はエントリを受取り、キューに入れるよう構成されるマルチコ ピーキューを含み、各エントリはフレームポインタおよびコピー数を有する。各 コピー数は正または負の値である。正の値のコピー数は送信されるべきフレーム のコピーの総数を表わし、負の値のコピー数は既に行なわれたフレームのコピー の1つの送信を表わす。探索可能な第1のメモリが正のコピー数を有するマルチ コピーキューからのエントリを受取り、ストアする。バッファマネージャがマル チコピーキューを出るエントリを検査する。マルチコピーキューからのエントリ が負のコピー数を含むとき、バッファマネージャは負のコピー数を有するエント リと同じフレームポインタを有するエントリを求めて第1のメモリを探索する。 バッファマネージャは、第1のメモリ内のエントリのコピー数が1よりも大きけ ればそのフレームポインタを有する第1のメモリ内のエントリのコピー数をデク リメントする。コピー数が1と等しければ、バッファマネージャは第1のメモリ 内のそのエントリをデリートする。 本発明のスイッチ構成は、送信の指示をキューに入れ、送信の指示がキューを 出るときにメモリ内にストアされているコピー数を変更することによって、フレ ームコピーの送信数のカウントを維持する。負のコピー数をキューに入れ、それ らを一度に1つバッファマネージャに与えて処理することによって、複数のポー トを通しての同時のコピー送信がある場合でもフレームの送信されたコピーの正 確なカウントが維持され得る。 上述の必要は、ネットワークスイッチからのフレームの送信数のカウントを維 持する方法を提供する本発明によって満たされる。この方法は探索可能な第1の メモリにエントリをロードするステップを含み、各エントリは、フレーム識別子 と、ネットワークスイッチからまだ送信されていないフレームのコピー数を示す コピー数とを含む。フレームが送信されるとき、送信されたフレームと同じフレ ーム識別子を有するフレームを求めて第1のメモリが探索される。第1のメモリ の探索が送信されたフレームと同じフレーム識別子を有するエントリをつきとめ ると、第1のメモリ内のそのエントリのコピー数はデクリメントされる。 本発明の上述および他の特徴、局面および利点は、添付の図面を参照すると本 発明の以下のより詳細な説明からより明らかとなるであろう。 図面の簡単な説明 図1は、この発明の実施例に従って構成されたパケット交換システムのブロッ ク図である。 図2は、この発明の実施例に従って構成され、図1のパケット交換システムに 用いられるマルチポートスイッチのブロック図である。 図3は、この発明の実施例に従って構成された、図2のマルチポートスイッチ のスイッチサブシステムの概略図である。 図4は、この発明の実施例に従って構成された、図3のスイッチサブシステム の単一の出力キューを示すブロック図である。 図5は、この発明の実施例による第1のタイプの出力キューを詳細に示す図で ある。 図6は、この発明の実施例による第2のタイプの出力キューを詳細に示す図で ある。 図7は、この発明の実施例に従って構成された、外部メモリのオーバフロー領 域を詳細に示す図である。 図8は、この発明に採用されるリンクトリストデータ構造のブロック図である 。 図9は、この発明の実施例によるフレームバッファヘッダフォーマットを概略 的に示す図である。 図10は、この発明の実施例に従って構成された、図4のスイッチサブシステ ムのマルチコピー、リクレームおよびフリーバッファプール領域を詳細に示す図 である。 図11は、この発明の実施例に従って構成されたフリーバッファプール構造の ブロック図である。 図12は、この発明の実施例に従って構成されたマルチコピーキューのブロッ ク図である。 図13は、この発明の実施例に従って構成されたマルチコピーキャッシュの概 略図である。 図14は、この発明の実施例に従って構成された、スイッチサブシステムのバ ッファマネージャのキュー部およびポートベクタFIFOのブロック図である。 例示的な実施例の詳細な説明 イーサネット(IEEE 802.3)網などのパケット交換ネットワークに おけるスイッチを例に挙げてこの発明を説明する。しかしながら、以下に詳細に 説明するように、この発明は他のパケット交換システムおよび一般的な他のタイ プのシステムにも適用可能であることが明らかとなるであろう。 図1は、この発明が有利に採用され得る例示的なシステムのブロック図である 。例示的なシステム10はイーサネット網などのパケット交換ネットワークであ る。パケット交換ネットワークは、ネットワークステーション間でのデータパケ ットの通信を可能にする統合マルチポートスイッチ(IMS)12を含む。ネッ トワークはたとえばIOM\bpsのネットワークデータレートでデータの授受 を行なう24個の毎秒10メガビットの速度(M\bps)のネットワークステ ーション14と、100M\bpsのネットワーク速度でデータパケットの授受 を行なう2つの100M\bpsネットワークステーション22といった、種々 の構成を有するネットワークステーションを含み得る。したがって、スイッチ1 2はネットワークステーション14または22から受けたデータパケットをイー サネットプロトコルに基づく適切な宛先に選択的に転送する。 開示される実施例によると、10M\bpsネットワークステーション14は 媒体17を介して、かつ半二重イーサネットプロトコルに従って、スイッチ12 に対してデータパケットの授受を行なう。イーサネットプロトコルISO/IE C 8802−3(ANSI/IEEE Std.802.3,1993Ed. )は、すべてのステーション14が等しくネットワークチャネルにアクセスでき るようにする半二重媒体アクセス機構を規定する。半二重環境のトラヒックは媒 体17と区別されたりまたはそれより優先されることはない。各ステーション1 4はむしろ、媒体上のトラヒックを認識するために搬送波感知多重アクセス/衝 突検出(CSMA/CD)を用いるイーサネットインタフェースカードを含む。 媒体上の受信搬送波がデアサートされたことを感知することによりネットワーク トラヒックの不在が検出される。送信するデータを有するステーション14はす べて、パケット間ギャップ期間(IPG)として公知である、媒体上の受信搬送 波がデアサートされた後、予め定められた時間だけ待機することにより、チャネ ルにアクセスしようとする。複数のステーション14がネットワーク上に送信す るデータを有する場合、ステーションの各々が、媒体上の受信搬送波の、デアサ ートが感知されたことに応答してIPG期間の後に送信を行なおうとするため、 衝突が生じる。したがって、送信ステーションは、別のステーションが同時にデ ータを送信することにより衝突が生じていないかを判断するために媒体を監 視する。衝突が検出されれば、両方のステーションが停止し、ランダムな期間だ け待機し、再度送信を試みる。 100M\bpsネットワークステーション22は好ましくは、提案されてい るフロー制御によるイーサネット規格IEEE 802.3x全二重−草案(0 .3)に従う全二重モードで動作する。全二重環境は各100M\bpsネット ワークステーション22とスイッチ12との間に双方向ポイントツーポイント通 信リンクを設け、スイッチ12およびそれぞれのステーション22は衝突するこ となくデータパケットの送受信を同時に行なうことができる。100M\bps ネットワークステーション22の各々は、100ベース−TX、100ベース− T4または100ベース−FXタイプの100M\bps物理(PHY)装置2 0を介してネットワーク媒体17に結合される。スイッチ12は、物理装置20 への接続をもたらす媒体独立インタフェース(MII)24を含む。100M\ bpsネットワーク22は他のネットワークへの接続のためのサーバまたはルー タとして実現され得る。 図1に示されるように、ネットワーク10は、スイッチ12と10M\bps ステーション14との間で送信されたデータパケットの時分割多重化および時分 割非多重化を行なう一連のスイッチトランシーバ26を含む。磁気変成器モジュ ール19は媒体17上の信号の波形を維持する。スイッチ12は、時分割多重化 プロトコルを用いて単一のシリアルノンリターンツーゼロ(NRZ)インタフェ ース23を介して各スイッチトランシーバ16に対するデータパケットの送受信 を行なうトランシーバインタフェース18を含む。スイッチトランシーバ16は シリアルNRZインタフェース23からパケットを受信し、受信されたパケット を非多重化し、ネットワーク媒体17を介して適切なエンドステーション14に そのパケットを出力する。開示される実施例によると、各スイッチトランシーバ 16は独立した4つの10M\bpsツイストペアポートを有し、スイッチ12 が必要とするPINの数が4分の1に減少するようにするシリアルNRZインタ フェースを介する4:1多重化を用いる。 スイッチ12は、意思決定エンジン、切換エンジン、バッファメモリインタフ ェース、構成/制御/状態レジスタ、管理カウンタ、ならびにネットワークステ ーション14および12のためのイーサネットポート間でデータパケットの経路 制御を行なうためのMAC(媒体アクセス制御)プロトコルインタフェースを含 む。スイッチ12はまた、インテリジェントな切換決定を行ない、後に説明する ように、外部の管理エンティティに管理情報ベース(MIB)オブジェクトの形 式で統計的なネットワーク情報を与えるための優れた機能を有する。スイッチ1 2はさらに、スイッチ12のチップサイズを最小にするためにパケットデータの 外部ストアおよびスイッチ論理を可能にするインタフェースを含む。たとえば、 スイッチ12は、受信したフレームデータ、メモリ構造およびMIBカウンタ情 報をストアするための外部メモリ36へのアクセスをもたらす同期型ダイナミッ クRAM(SDRAM)インタフェース34を含む。メモリ36は2Mbまたは 4Mbのメモリサイズを有する80、100または120MHz同期型DRAM であってもよい。 スイッチ12はさらに、外部管理エンティティが管理MACインタフェース3 2によってスイッチ12の全体的な動作を制御できるようにする、管理ポート3 0を含む。スイッチ12は、PCIホストおよびブリッジ28を介して管理エン ティティがアクセスできるようにするPCIインタフェース26をさらに含む。 これに代えて、PCIホストおよびブリッジ28が複数のスイッチデバイス12 に対する拡張バスとしての役割を果たしてもよい。 スイッチ12は、1つのソースから少なくとも1つの宛先ステーションに受信 データパケットを選択的に送信する内部意思決定エンジン(図2)を含む。内部 意思決定エンジンには外部ルールチェッカが代用されてもよい。スイッチ12は 外部ルールチェッカインタフェース(ERCI)40を含み、これは内部意思決 定エンジンの代わりにフレーム転送決定を行なうために外部ルールチェッカ42 が用いられるようにする。したがって、フレーム転送決定は、内部切換エンジン または外部ルールチェッカ42のいずれかによって行なわれ得る。 スイッチ12は、ポートごとのステータスをクロックに合せて出力しLED外 部論理46を駆動する、LEDインタフェース44をさらに含む。LED外部論 理46は人間が読取ることができるLEDディスプレイエレメント48を駆動す る。発振器38はスイッチ12のシステム機能に40MHzのクロック入力を与 える。 図2は、図1の統合マルチポートスイッチ(IMS)12のブロック図である 。スイッチ12はそれぞれの10M\bpsネットワークステーション14間で 半二重のデータパケットの送受信を行なうための24個の10M\bps媒体ア クセス制御(MAC)ポート50(ポート1から24)と、それぞれの100M \bpsネットワークステーション間で全二重のデータパケットの送受信を行な うための2つの100M\bps MACポート53(ポート25および26) とを含む。上述のとおり、管理インタフェース30もまたMAC層プロトコル( ポート0)に従って動作する。MACポート50、53および30の各々は、受 信先入れ先出し(FIFO)バッファ52と送信FIFO54とを有する。ネッ トワークステーションからのデータパケットは対応のMACポートで受信され、 対応の受信FIFO52にストアされる。受信されたデータパケットは対応の受 信FIFO52から外部メモリインタフェース34に出力されて、外部メモリ3 6にストアされる。 受信されたパケットのヘッダもまた、内部ルールチェッカ58または外部ルー ルチェッカインタフェース40のいずれかである、意思決定エンジンに転送され 、いずれのMACポートからデータパケットが出力されるかを決定する。具体的 には、パケットヘッダは、スイッチ12が内部ルールチェッカ58または外部ル ールチェッカ42を用いて動作するよう構成されているか否かに依存して、内部 ルールチェッカ58または外部ルールチェッカインタフェース40に送られる。 内部ルールチェッカ58および外部ルールチェッカ42は、所与のデータパケッ トに関する宛先MACポートを決定するための意思決定論理を提供する。したが って、意思決定エンジンは、単一ポート、マルチプルポートまたは全ポート(す なわちブロードキャスト)のいずれかに所与のデータパケットを出力し得る。た とえば、各データパケットにはソースおよび宛先アドレスを有するヘッダが含ま れ、意思決定エンジンは宛先アドレスに基づいて適切な出力MACポートを特定 する。これに代えて、宛先アドレスは、適切な意思決定エンジンが複数のネット ワークステーションに対応するものと特定するバーチャルアドレスに対応しても よい。これに代えて、受信されたデータパケットは、(100M\bpsステー ション 22のうちの1つのルータを介する)別のネットワークまたは所定のグループの ステーションを特定するIEEE 802.1dプロトコルに準拠するVLAN (バーチャルLAN)タグ付フレームを含んでもよい。したがって、内部ルール チェッカ58または外部ルールチェッカ42のいずれかがインタフェース40を 介して、バッファメモリ36に一時的にストアされたフレームが単一のMACポ ートまたは複数のMACポートに出力されるべきかを決定する。 外部ルールチェッカ42を使用することにより、容量の増加、およびフレーム が外部メモリに完全にバッファされる前にフレーム転送決定を可能にし、かつス イッチ12がフレームを受信する順からは独立した順で決定が行なわれるように する、決定キューのうちランダムな順序付け、といった利点がもたらされる。 意思決定エンジン(すなわち内部ルールチェッカ58または外部ルールチェッ カ42)は、データパケットを受信すべき各MACポートを特定するポートベク タの形式で転送決定をスイッチサブシステム56に出力する。ルールチェッカか らのポートベクタは、外部メモリ36にデータパケットをストアするアドレス場 所と、データパケットを受信して送信するためのMACポート(たとえばMAC ポート0から26)の識別子とを含む。スイッチサブシステム56はポートベク タに特定されたデータパケットを外部メモリインタフェース34を介して外部メ モリ36から取出し、取出されたデータパケットを特定されたポートの適切な送 信FIFO54に与える。 付加的なインタフェースにより管理および制御情報が与えられる。たとえば、 管理データインタフェース59は、MII管理仕様(IEEE 802.3u) に従うスイッチトランシーバ16および100M\bps物理装置20と制御お よびステータス情報をスイッチ12が交換できるようにする。たとえば、管理デ ータインタフェース59は、双方向管理データIO(MDIO)信号経路に時間 基準を与える管理データクロック(MDC)を出力する。 PCIインタフェース26は、PCIホストプロセッサ28によって内部IM Sステータスおよび構成レジスタ60にアクセスし、かつ外部メモリ36にアク セスするための、32ビットPCI改訂2.1に適合したスレーブインタフェー スである。PCIインタフェース26は複数のスイッチデバイスのための拡張バ スとしての役割も果たし得る。管理ポート30は標準7ワイヤ反転シリアルGP SIインタフェースを介して外部MACエンジンにインタフェースされ、標準M AC層プロトコルによりホストコントローラがスイッチ12にアクセスできるよ うにする。 図3は、この発明の例示的な実施例に従う、図2のスイッチサブシステム56 をより詳細に説明する図である。図2に示されるマルチポートスイッチ12の他 のエレメントは、スイッチサブシステム56とこれらの他のエレメントとの接続 を示すために図3に再度示される。スイッチサブシステム56はフレームの受信 および転送を行なうためのコアスイッチングエンジンを含む。スイッチングエン ジンを実現するために用いられる主な機能ブロックは、ポートベクタFIFO7 0と、バッファマネージャ72と、複数のポート出力キュー74と、管理ポート 出力キュー75と、拡張バスポート出力キュー77と、フリーバッファプール1 04と、マルチコピーキュー90と、マルチコピーキャッシュ96と、リクレー ムキュー98とを含む。これらの機能ブロックの動作および構成は後により詳細 に説明するが、まず、個々のエレメントに関する後の説明に関連性を持たせるた めに、図3のスイッチサブシステム56の全体像を簡単に説明する。 ポートからマルチポートスイッチ12に入るフレームには基本的に2つのタイ プがある。すなわち、単一コピーフレームとマルチコピーフレームとである。単 一コピーフレームは、マルチポートスイッチ12によって他の1つのポートにの み送られることとなる、ポートで受信されたフレームである。これとは対照的に 、マルチコピーフレームは、1つのポートで受信され、1つより多い数のポート に送信されるフレームである。図3では、各ポートは別個のMAC50によって 表わされ、それ自体の受信FIFO52および送信FIFO54を有する。 単一コピーまたはマルチコピーであるフレームは内部MACエンジン50によ って受信される。フレームパケットがポートで受信されると、それは受信FIF O52に置かれる。各フレームはヘッダを有し、これは、内部ルールチェッカ5 8または外部ルールチェッカ42のいずれかのルールチェッカに与えられる。ル ールチェッカ42または58は、ヘッダの情報に基づいて、フレームパケットが どこから送り出されるかを決定し、すなわちいずれのポートを介してフレームパ ケットが送信されるかを決定する。 ルールチェッカ42または58が転送決定を行なうのと同時に、バッファマネ ージャ72はフリーバッファプール104からフリーバッファポインタを得る。 このフリーバッファポインタは、受信FIFO52によってフレームがストアさ れることとなる外部メモリ36の場所である。バッファマネージャ72によって フリーバッファポインタがフリーバッファプール104から得られると、フリー バッファポインタによってポイントされるバッファはもはやフリーであるとは考 えられない。フレームデータは、直接メモリアクセス(DMA)トランザクショ ンでデータバス80を介して受信FIFO52から外部メモリ36に転送される 。フレームはフリーバッファプール104から得られたフリーバッファポインタ がポイントする場所にストアされるが、後に説明するように、フレームをストア するために多くの他のバッファが用いられてもよい。 ヘッダデータの他に、ルールチェッカ42または58はバッファマネージャ7 2からのフリーバッファポインタも受信する。このフリーバッファポインタはこ こではフレームポインタと呼ばれる。なぜなら、フレームがストアされる外部メ モリ36でのメモリ場所をポイントするからである。ルールチェッカ42または 58は、転送決定を行ないかつ「ポートベクタ」の形式で転送命令を発生するた めにヘッダ情報を用いる。図示される例示的な実施例では、ポートベクタは、フ レームが転送されるべき各出力ポートに対してセットされたビットを備えた28 ビットベクタである。この全体像での例では、受信されたフレームは単一フレー ムであると想定する。したがって、ルールチェッカ42または58によって生成 されたポートベクタには1つのビットしかセットされない。ポートベクタにセッ トされたビットはポートのうち特定的なものに対応する。 ルールチェッカ42または58はポートベクタFIFO70にポートベクタお よびフレームポインタ(ならびに制御操作コードおよびVLANインデックス) を置く。ポートベクタはポートベクタFIFO70によって検査され、ポートベ クタに関連したフレームポインタがどの特定の出力キュー74に入力されるべき かを決定する。ポートベクタFIFO70は適切な出力キュー74の一番上にフ レームポインタを置く。これによりフレームの送信がキューとして維持される。 ある時点で、フレームポインタは出力キュー74を通過した後に出力キュー7 4の一番下まで到達する。バッファマネージャ72はそれが出力キュー74の一 番下まで到達したときにフレームポインタを取り、フレームポインタ書込バス8 6を介して正しいポートの適切な送信FIFO54にそのフレームポインタを送 る。これによりフレームの送信がスケジュールされる。フレームポインタによっ てポイントされた外部メモリ36での場所からDMAトランザクションにおいて 読出されたフレームデータは、適切な送信FIFO54に置かれ後に送信される 。 マルチコピー送信は、ポートベクタが、フレームがそれらから送信されること となるマルチプルポートを示す、セットされた複数のビットを有する点を除いて 、単一コピー送信と同様である。フレームポインタは適切な出力キュー74の各 々に置かれ、対応の送信FIFO54から送信される。 バッファマネージャ72は特殊な制御キューを用い、すなわち、フリーバッフ ァプール104と、マルチコピーキュー90と、リクレームキュー98と、マル チコピーキャッシュ96とを用いて、受信フレームをストアするためにバッファ を割当て、フレームがその指定された出力ポートに送信されると再度使用できる ようバッファを取出すプロセスを管理する。後により詳細に説明するが、バッフ ァマネージャ72はまた、出力キュー74ならびに制御キュー104、90およ び98のために外部メモリ36に「オーバフロー」領域を維持する。 この動作上の全体像を背景として、以下にスイッチサブシステム56の個々の セクションおよびさまざまな局面をより詳細に説明する。これらの局面のうち最 初に説明するものは、この発明のさまざまな出力キュー74の構造である。10 Mb/sポートおよび100Mb/s出力ポートに指定される出力キュー74の 他に、管理ポート30のために出力キュー75が設けられ、拡張ポート26のた めに出力キュー77が設けられる。これらの出力キュー75および77は出力キ ュー74と同じ外部構成を有するが、後に説明するように、異なった内部構成を 有する。 図4は、この発明の実施例に従う出力キュー74の外部構成を示すブロック図 である。図4から明らかなように、この発明の出力キュー74は3部構成である 。性能を最も高くするためには、チップ上のキュー構造のすべてを保持すること が 好ましいが(マルチポートスイッチ12を参照)、チップの占有面積に関する費 用は非常に高い。これにより、チップが多数のエントリの切換を行ない、それら をキューとして維持する必要があるときにはジレンマが生じる。この発明は、チ ップ上に高性能な小容量セクションを含み、チップ外にオーバフロー領域を含む 、単一の出力キューを与えることによりこのジレンマを解消する。オーバフロー 領域は、チップ上の領域よりも比較的性能が低いにも関わらず、所要の大容量の キューとしてキューが役割を果たすようにする。 図4の実施例に従うこの発明の単一論理出力キュー74は3つの物理セクショ ンを有する。これらには、出力キュー書込側76と、出力キュー読出側78と、 外部メモリ36にある出力キューオーバフロー領域(全体が110として示され る)とが含まれる。出力キュー74のすべてに関する外部メモリ36へのアクセ スは、前述のとおり外部メモリインタフェース34を介するものである。この発 明は、現在の外部メモリのバースト的な性質を利用し、(フレームポインタなど の)データが、チップ12を外部メモリ36に接続するバス84を介してバース ト状にチップの内外からオーバフローキュー領域110に送られるようにする。 出力キュー書込側76および出力キュー読出側78はチップ12上にある。書 込側76および読出側78は小さくて値段の高い資源であると考えられる。これ とは対照的に、出力キュー74の第3の部分を形成するオーバフロー領域110 は大きくて比較的安価である。書込側76および読出側78により高い性能がも たらされ、オーバフロー領域を通る経路によっては低性能で大容量の経路がもた らされる。 動作時に、出力キュー書込側76はエントリを受信する。この発明に従うマル チポートスイッチ12の例示的な実施例では、エントリは、フレームの最初の2 56バイトがストアされる外部メモリの第1のバッファをポイントするフレーム ポインタである。しかしながら当業者には、出力キューの構成74はエントリと してのフレームポインタに制限されず、マルチポートスイッチおよび他の技術の 両方において、他のタイプのエントリをキューとして維持することに広く適用可 能であることが明らかであろう。 エントリが出力キュー書込側76内を完全に移動し、その一番下まで到達する と、出力キュー74に関連した制御論理はエントリをどう処理するか決定する。 出力キュー読出側78にスペースがあれば、出力キュー74のオーバフロー領域 110は空いており、1つまたはそれ以上のエントリが出力キュー書込側76か ら出力キュー読出側78に直接送られる。書込側76から読出側78に直接エン トリを送ることはすべてチップ12上で行なわれるため、エントリは低レイテン シーで素早く完全に送られる。 出力キュー読出側78がいっぱいであり、出力キュー書込側76に少なくとも 1バーストサイズの量のデータ(たとえばエントリの16バイト分)があれば、 データはその出力キュー74のオーバフロー領域110にバースト状に書込まれ る。出力キュー読出側78がいっぱいであり、かつ出力キュー書込側76にはま だ1バーストサイズの量のデータがないときは、エントリは出力キュー書込側に 留まりさらに処理は行なわれない。最終的には、出力キュー読出側78は空にな り、出力キュー読出側78に1バーストサイズの量のデータを収容する十分なス ペースが生まれ、かつオーバフロー領域110にデータがあるときがくると、オ ーバフロー領域110から出力キュー読出側78に1バーストのデータが与えら れる。 出力キュー構成において、読出側78は伝統的なキューとほぼ同様に作用する 。なぜなら、エントリが1つずつ取出されるのはこの部分からであるからである 。出力キュー書込側76は主に、データをバーストに組立てて外部メモリ36に 書込むための回収機能を果たす。したがって、この発明は単一の事象(エントリ を出力キュー74に置くこと)をバースト事象に変える。書込側76は、蓄積さ れたデータが必要に応じて外部メモリ36のオーバフロー領域110にバースト されるようにする。比較的稀な場合にのみ必要となる機能に高価なチップ資源を 提供するのではなく、輻輳時にオーバフロー領域110が安価なストレージを提 供する。この発明はチップ外のオーバフロー領域110を利用するが、この領域 110のアクセスは、1度に多くのバイトの情報をバーストすることにより効率 よく行なわれる。これは、単一のエントリがキューに対して書込まれたり読出さ れたりする従来のキュー構造とは対照的である。 動作時に、出力キュー74に到達するエントリが多ければ、これらのエントリ はオーバフロー領域110に置かれ、チップ上のキュー78のオーバフローを回 避するようにする。したがって、この発明のキュー構造を用いるとフレームの廃 棄が大幅に防止される。また、オーバフロー領域110のためのメモリの合計量 は、外部メモリ36のサイズを変更することにより容易に変更可能である。さら に、個々の特定のオーバフロー領域110のサイズは、出力キュー74の性能に 影響を及ぼすことなくキューのサイズをカスタマイズするためにプログラム可能 である。 典型的に、キューは、先入れ先出し構成を有する順序づけられた構成である。 しかしながら、リクレームキュー98およびフリーバッファプール104などの いくつかのタイプのキューでは、エントリの順序は問題ではない。書込側100 から読出側102にデータを直接送信することが可能であれば、この発明はその キューに関するオーバフロー領域を迂回して情報がこの経路に直接送信されるよ うにする。これは、情報が順番によって影響を受けない限り、関連のオーバフロ ー領域に情報がある場合でも可能である。たとえば、バッファの再要求は順番に よって影響を受けない。なぜなら、バッファがフレームにストアされる必要がな くなった後に、最終的にバッファがフリーバッファプール104のフリーリスト に戻される順番は、いかなるものでも許容されるからである。したがって、デー タが順番によって影響を受けない場合に外部メモリ36のリクレームキュー98 のオーバフロー領域110への書込についての帯域幅が生じるのを回避するため に、読出側102にさらなるエントリのためのスペースがあるものと想定して、 書込側100から読出側102に情報が直接送られる。リクレームキュー98は 順番によって影響を受けないデータをキューとして維持するタイプのキューの一 例である。しかしながら、順番によって影響を受けない他の多くのタイプのデー タが種々の適用例で可能であるため、この発明のこの特徴は、他のタイプのデー タをキューとして維持するキューにおいて有用性を見出す。 図1および図2に示されるこの発明の例示的な実施例のマルチポートスイッチ には28個の出力キュー(各々が出力ポートと関連する)があり、すなわち、1 0Mb/sユーザポートに関するものが24個、100Mb/sサバポートに関 するものが2つ、管理ポートに関するものが1つ、そして拡張バスポートに関す るものが1つある。出力キュー74、75および77は、フレームポインタが送 信のためにキューとして維持されるときにそれらに一時的なストレージを提供す る。キュー作業は、転送ポートベクタに示されるさまざまな出力キュー74、7 5および77に対してポートベクタFIFO70がフレームポインタを書込むと いう形態をとる。 この発明のある好ましい実施例では、さまざまな出力キュー74、75および 77は以下のフィールドのうちいくつかまたはすべてを含む。すなわち、単一コ ピービットと、フレームポインタと、制御操作コードまたは制御信号と、VLA N(バーチャルローカルエリアネットワーク)インデックスとである。単一コピ ービットは1つの出力ポートにのみ転送されることとなるフレームを示す。フレ ームポインタは外部メモリ36のフレームをポイントする。制御操作コードはフ レームに関する特定的な情報(すなわち新たに得たフレームなど)を識別する。 制御信号は制御操作コードからの情報を用いて、送信前にポートによってフレー ムがいかに処理されるかを示す。VLANインデックスは、外部へのフレームに (必要であれば)挿入されるべきVLANタグに対する基準を与える。しかしな がら、この発明は種々のタイプのフィールドを有する他の出力キューにも適用可 能であるため、これらのフィールドは例としてのみのものである。 第1のタイプの出力キュー74、すなわち10Mb/sポート出力キューの例 示的な実施例の内部構成が図5に示される。10Mb/s出力キュー74は10 Mb/sポートに転送されることとなるフレームのエントリを保持する。これら のキューの出力キュー書込側76は32個のエントリを保持し、出力キュー読出 側78は図示される例示的な実施例において16個のエントリを保持するが、考 えられる他のサイズのものもこの発明の範囲内である。10Mb/s出力キュー 74は単一コピービットとフレームポインタ(14ビット)とを含む。この発明 のマルチポートスイッチの例示的な実施例では、10Mb/sポートにはVLA NタグがないためVLANインデックスは必要ない。 第2のタイプの出力キュー74、すなわち100Mb/sポート出力キューの 例示的な実施例の内部構成が図6に示される。100Mb/sポート出力キュー は100Mb/sポートに転送されることとなるフレームのエントリを保持する 。 出力キュー書込側76はこのタイプの出力キューに64個のエントリを保持し、 出力キュー読出側は16個のエントリを保持する。各エントリはVLANインデ ックスと、部分的な制御操作コード(ビット4−0)と、単一コピービットと、 フレームポインタとを含む。 外部メモリ36の例示的なマップが図7に示される。外部メモリ36の全体の 容量はたとえば4Mbであるが、種々の実施例において他の容量のメモリが採用 されてもよい。この発明に従ってオーバフロー領域に外部メモリ36を使用する ことにより、外部メモリを変更するだけで出力キューのサイズを増減することが できる。これは、キューとして維持する容量全体がチップの製造時に設定される 、キュー構成がすべてチップ上にあるシステムよりも有利である。 スイッチ12のストア要件を満たすために、外部メモリ36の例示的な実施例 は下記の領域にスペースを割当てる。すなわち、フリーバッファプールオーバフ ロー120と、リクレームキューオーバフロー122と、マルチコピーキューオ ーバフロー124と、管理ポート出力キューオーバフロー126と、10Mb/ sおよび100Mb/s宛先ポートの各々のための個々の出力キューオーバフロ ー128と、拡張バスポート出力キューオーバフロー130と、MIBカウンタ 132と、グローバルフレームバッファプール134とである。 メモリ領域全体のBASEアドレスはチップ上のレジスタ60の中のメモリベ ースアドレスレジスタ内でプログラム可能である。外部メモリマップ内の各領域 のBASEアドレスはレジスタセット内でプログラム可能である。領域長レジス タは不要である。所与の領域の長さは、マッピング内のその領域のBASEアド レスから次の領域のBASEアドレスまでの領域に等しい。 個々のオーバフロー領域の長さ(したがって容量)がプログラム可能であるた め、各キューの容量全体がプログラム可能である。この発明のこの特徴により、 必要に応じて容量の増大した特定の出力キューを提供するようにスイッチをカス タマイズすることが可能になる。 したがって、チップ12上の制御キューに適合しない後続のオーバフロー領域 ストアエントリは外部メモリ36に置かれる。フリーバッファプールオーバフロ ー領域120はアドレスポインタをグローバルフレームバッファプール134中 の未使用のバッファにストアする。リクレームキューオーバフロー領域122は 、必要でなくなったリンクトリストチェーンにフレームポインタをストアする。 マルチコピーキューオーバフロー領域124は(キューとして維持されたフレー ムポインタについては)コピーナンバー「≧1」を、かつ(うまく送信されたフ レームについては)コピーナンバー「−1」を付してフレームポインタをストア する。 後続のオーバフロー領域は、チップ上に入らない出力キューのエントリをスト アする。管理ポート出力キューオーバフロー領域126は管理ポートへの送信を 待機するフレームポインタをストアする。出力キューオーバフロー領域128は 適切な10Mb/sまたは100Mb/sポートへの送信を待機するフレームポ インタをストアする。拡張バスポート出力キューオーバフロー領域130は拡張 バスポートへの送信を待機するフレームポインタをストアする。 MIBカウンタ領域132は、スイッチ12によって周期的に更新されるポー トごとの統計をすべて含む。スイッチ12はMIB統計をストアするための8ビ ットおよび16ビットカウンタをチップ上に維持する。スイッチ12はMIBデ ータの損失を防止するために要求される周波数で、外部メモリ36の32ビット または64ビットのMIBカウンタを更新する。 グローバルフレームバッファプール134は、受信されたフレームデータをス トアするリンクトリストのバッファを含む。任意の時点で、これらリンクトリス トは有効フレームデータと無効になったバッファとを含み、無効になったこれら のバッファは、バッファマネージャ72によってフリーバッファプール104に 戻されるか、またはPCIホストプロセッサ28の所有となる。 次に図8を参照して、いずれかのMACポートまたはPCIバスから受信され たフレームデータは、この発明の例示的な実施例におけるリンクトリストデータ 構成のフォーマットで外部メモリ36にストアされる。リンクトリストを生成す るために用いられるバッファ140の長さは256バイトであるが、発明の種々 の実施例では他の長さのバッファ長さが採用されてもよい。これらのバッファ1 40の各々へのアドレスポインタはスイッチ12内のフリーバッファプール10 4によってストアされる。 スイッチ12のポートのうち1つにフレームが受信されると、バッファマネー ジャ72はフリーバッファプール104からアドレスポインタを要求し、バッフ ァ140をリンクしてフレームをストアするようにする。フレームをストアする 外部メモリ36の第1のバッファに対するアドレスポインタが、そのフレームに 対するフレームポインタになる。フレームポインタは、送信されることとなるフ レームをキューとして維持するためのスイッチサブシステム56において用いら れる。 バッファ140は、メモリの次のバッファの場所を示す各バッファヘッダ14 2のアドレスポインタによって互いに繋がれる。バッファヘッダ142はまた、 バッファ140に含まれるフレームデータに関する他の情報を含む。図9aの例 示的なバッファヘッダフォーマットに示されるように、先頭のバッファのヘッダ は12バイトである。図9bに示されるように、後の各バッファのヘッダは4バ イトである。外部メモリバーストは、2バンク×16バイトの長さであるため、 各バッファの実際のフレームストア容量は256B−16B=240Bである。 図9aおよび図9bに示されるように、先頭および後のバッファヘッダフォー マットは下記のフィールドを含む。 バッファフォーマットビット:どのバッファフォーマットが使用中であるかを 示す。1は12バイトの長さの先頭バッファフォーマットを示す。0は4バイト である後のバッファのフォーマットを示す。バッファを繋ぐ際に残りのバッファ の各々に関して用いられる。 Eビット(フレームマーカの最後):フレームに関する最後のバッファである ことを示す。Eビットがセットされていれば、チェーンにはこれ以上バッファは ない。 Cビット(CRCエラー検出):CRCエラーが受信機によって検出されたこ とを示す。Cビットが検出されると、送信機能は反転されたCRCを意図的に送 信する。 Lビット(整列エラー):フレーム整列エラーが(CRCエラーとともに)受 信フレームに検出されたことを示す。 Oビット(受信FIFOオーバフロー):受信FIFOがオーバフローし、バ ッファのデータが有効でないかもしれないことを示す。 バッファ長さ:バッファヘッダの後の最初のバイトから始まる、バッファのデ ータフィールドにおいて有効なバイトの合計数。この長さにはオフセットバイト 値は含まれるべきではない。 次のバッファポインタ:次のバッファに対するポインタ。次のバッファポイン タはEビットがセットされているときには有効でない。 オフセットバイト数:バッファのフレームデータセクションにおいてフレーム の最初のバイトが始まる場所を示す。0のオフセットは、データがバッファヘッ ダ142の後の最初のビットで始まることを意味する。0のオフセットは、デー タがバッファの16番目のバイトに後続するバイトで始まることを示す。オフセ ットが0でない値の場合、フレームデータは16B+バッファの始まりからのオ フセットの後に始まる。送信機能はオフセットバイトフィールドに示されるバイ ト数だけ飛び越す。 Pビット(ポートタイプ):入来する受信フレームのポートタイプを示す。0 は10Mb/sポートを示し、1は100Mb/sポートを示す。このビットは 、フレームが完全に受信されて外部メモリ36にバッファされる前に、フレーム を拡張バスに転送するようスイッチ12をプログラミングする際に、タイムスタ ンプフィールドに関連してホスト28によって用いられる。 Tビット:受信されたフレームのタイプを示す。タグ付またはタグ付でない場 合がある。1はタグ付のフレームであることを示し、VLAN識別子フィールド は受信VLAN IDを含む。0はタグ付でないフレームを示し、VLAN I Dは有効でない。 受信ポート番号:フレームが受信されたポート番号を示す。 VLAN識別子:「タグ付」ポートから受信されたVLAN ID。フレーム がタグ付でないポートから受信される場合、このフィールドは無効である。 Rビット(CRC再計算):CRCを除去し送信機能において再計算する必要 があることを示す。スイッチ12はタグ付フレームが受信されるとこのビットを セットする。さらに、ホスト28がフレームの内容を修正した場合、ホスト28 はこのビットをセットしなければならない。スイッチ12がフレームを送信する と、スイッチ12はこのビットを検査して、既存のCRCを送信するか、CRC を除去してCRCを再計算するかを判断する。 Aビット(CRC追加):フレームデータの最後にCRCがないことを示す。 ホストはメモリに(CRCなしの)フレームを生成し、このビットをセットする ことができる。スイッチ12はフレームの送信時にCRCを発生して追加する。 Aビットがセットされている場合、フレームの長さにはCRCは含まれるべきで ない。 Fビット(フォーマットビット):フレーム長/タイムスタンプフィールドを 特定する。0はフィールドが入来フレームのタイムスタンプであることを示す。 1はフィールドが受信フレームのフレーム長であることを示す。 フレーム長/タイムスタンプ:Fビットに依存する。Fビットがクリアされて いると、このフィールドは受信フレームの最初からのタイムスタンプを表わす。 タイムスタンプは1μsの分解能を有する。Fビットがセットされている場合に は、CRCおよび受信されたVLANタグの全てを含む受信フレームの長さの合 計が示される。フレームが受信されると、スイッチ12は(タイマレジスタから の)タイムスタンプでこのフィールドをマークする。フレームが完全に受信され る前に拡張バスフレームを転送するようホスト28によってスイッチ12がプロ グラミングされている場合、フレームデータを過度に読出すことなく外部メモリ 36から取出すことができるデータを測定するために(受信ポートの速度ととも に)タイムスタンプを用いることができる。フレーム全体が受信されると、スイ ッチ12はフレーム長をこのフィールドに書込みFビットをセットする。 コピー数:ポートベクタFIFO70によって送信されるようにうまくキュー として維持されたコピーの数を示すために用いられる。このフィールドは、バッ ファマネージャ72が、新しいエントリのためのマルチコピーキャッシュ96に スペースを設ける必要がある場合に、フレームポインタのコピー数をストアする ために用いられる。 図10は図3のスイッチサブシステム56のいくつかの要素を示す詳細図であ る。これらの要素は、フレーム記憶のためのバッファを与えるため、かつ、バッ ファがフレーム記憶のためにもはや必要とされなくなるとこれらのバッファを再 要求し、再び使用可能にするために用いられる。上述のように、各出力キュー7 4、75(出力キュー77を除く)はフレームポインタをバッファマネージャ7 2に渡し、バッファマネージャ72はフレームポインタが指すフレームの送信を スケジュールする。バッファマネージャ72は、1)スイッチ12の内部バスを 管理し、2)出力キュー74への/からのフレームポインタのキュー入れ/出し を容易にし、3)バッファの位置を決め、フリーバッファプール104に戻すた めに制御キュー90、98を管理し、4)外部メモリ36を出入りするデータの 流れを制御し、5)MIBおよびオーバーフロー領域を含むメモリ構造を維持す るという機能を制御する。バッファマネージャ72は全アクセスを外部メモリ3 6に割当てるためのスケジューラ機能を含む。これらのアクセスには、1)受信 されたフレームデータを記憶バッファ140に書込み、2)送信のために記憶バ ッファ140からフレームデータを読出し、3)出力キュー74および制御キュ ー90、98のためのオーバーフロー領域の各々にフレームポインタを維持し( すなわち、書込み、読出す)、4)MIBカウンタを更新することが含まれる。 バッファマネージャ72が所与のフレームポインタを適切な全出力キュー74 、75にコピーした後、ポートベクタFIFO70がコピーの数(「コピー数」 )を計算し、フレームポインタおよびコピー数をマルチコピーキュー90の書込 側に入れる。コピー数は、フレームが転送されるべきでないことを示す「0」、 単一コピー送信を示す「1」、またはマルチコピー送信を示す「>1」であり得 る。これらの3つの場合を以下に説明する。 コピー数が「0」であり、フレームポインタがセットされたビットのないヌル 転送ポートベクタを有することが意味されているとき、ポートベクタFIFO7 0はフレームポインタをリクレームキュー98の書込側100に直接渡す。バッ ファマネージャ72がリクレームキュー98を処理するときは、以下に述べるよ うにバッファマネージャ72がバッファのリンクトリストチェーンを解体し、各 「フリー」バッファごとのアドレスポインタをフリーバッファプール104の書 込側106に戻す。 コピー数が「1」の単一コピー送信のとき、ポートベクタFIFO70はフレ ームポインタ、制御信号/制御操作コードおよびVLANインデックスを適切な ポートの出力キュー74にコピーする。ポートベクタFIFO70は出力キュー 74内の単一コピービットをセットして(図5および図6参照)、これが単一の 送信であることを示す。バッファマネージャ72はそのポートの出力キュー74 からフレームポインタおよび単一コピービットを読出すと、上述のように送信を スケジュールする。バッファマネージャ72は、フレームがストアされている外 部メモリ36において最初のバッファの位置を決めるためにフレームポインタを 用いる。バッファマネージャ72はこの最初のバッファからバッファヘッダを読 出し、最初のバッファからデータを捕捉し、このデータを適切なMAC送信FI FO54に入れる。フレームが複数バッファにおよぶ場合を想定すると、そのフ レームのためのチェーン内の全バッファを見つけ、送信するためのアドレスを、 後続バッファへのリングがバッファマネージャ72に与える。データが送信のた めにFIFO54に一旦置かれると、バッファは不使用となり、フリーバッファ プール104に戻され、結果として別のフレームデータをストアするために再割 当される。 コピー数が1よりも大きいとき、ポートベクタFIFO70はフレームポイン タ、VLANインデックスおよび制御信号/制御操作コードを適切な出力キュー 74の各々にコピーする(キュー74に言及する際には、キュー75、77もま た言及されている)。ポートベクタFIFO70は出力キュー74内の適切なフ レームポインタのための単一コピービットをクリアし、コピー数が「>1」であ るフレームポインタをマルチコピーキュー90の書込側92に入れる。 バッファマネージャ72がフレームポインタおよびクリアされた単一コピービ ットを出力キュー74の1つから読出すたびに、バッファマネージャ72はフレ ームの送信をスケジュールするが、コピー数「1」のフレームポインタを有する エントリがあるかどうかマルチコピーキャッシュ96をも調べる。コピー数「1 」のフレームポインタがマルチコピーキャッシュ96に見つかれば、バッファマ ネージャ72は、フレームの単一コピー送信の場合と同様に、送信のためにフレ ームをスケジュールし、送信の間にバッファを再要求する。しかしながら、フレ ームポインタがマルチコピーキャッシュ96にないか、マルチコピーキャッシュ 96におけるフレームポインタのコピー数が1よりも大きければ、バッファ マネージャ72はフレームを送信するがバッファを再要求しない。送信を成功さ せた後、バッファマネージャ72はフレームポインタのコピーをコピー数「−1 」とともにマルチコピーキュー90の書込側92に入れる。 マルチコピーフレームが送信されるたびに、バッファマネージャ72はマルチ コピーキャッシュ96内にコピー数「1」のフレームポインタを見つけられなか ったならば、フレームポインタのコピーをマルチコピーキュー90に入れる。し たがって、いかなる所与の時間でも、マルチコピーキュー90はコピー数が「1 」よりも大きいフレームポインタ、および/または、各々コピー数が「−1」で ある、同じフレームポインタのいくつかのコピーを含むことができる。 バッファマネージャ72は不使用となったバッファを再要求するためにマルチ コピーキュー90およびマルチコピーキャッシュ96を絶えず処理する。バッフ ァマネージャ72はマルチコピーキュー90を処理し、コピー数「>1」のフレ ームポインタを読出すと、この新しいエントリ(フレームポインタおよびコピー 数)をマルチコピーキャッシュ96に入れようと試みる。マルチコピーキャッシ ュ96がフルであれば、バッファマネージャ72はその新しいフレームポインタ のためにスペースを設ける。バッファマネージャ72は「より古い」マルチコピ ーキャッシュエントリを読出し、外部メモリ36内のそのバッファヘッダ内のこ のエントリに対するコピー数を更新し、このエントリをマルチコピーキャッシュ 96からクリアする。マルチコピーキャッシュ96内に使用可能な空きができる と、バッファマネージャ72はマルチコピーキュー90からの新しいエントリを マルチコピーキャッシュ96に入れることができる。 バッファマネージャ72がマルチコピーキュー90を処理し、コピー数「−1 」のフレームポインタを読出すと、それはマルチコピーキャッシュ96を探索し て、デクリメントまたはデリートするためにコピー数「≧1」の対応するフレー ムポインタアドレスを探す。バッファマネージャ72がフレームポインタの一致 を見つければ、それは1)コピー数が「>1」であればマルチキャッシュのフレ ームポインタをデクリメントするし、または2)コピー数が「1」であればマル チコピーキャッシュのフレームポインタ/コピー数エントリをデリートし、フレ ームポインタをリクレームキュー98に入れる。 一致するフレームポインタが見つからなければ、バッファマネージャ72はコ ピー数を求めて外部メモリ36(図9参照)におけるフレームポインタのバッフ ァヘッダを探索する。メモリ内のコピー数が「1」であれば、バッファマネージ ャ72はフレームポインタをリクレームキュー98に入れる。メモリ内のコピー 数が「>1」であれば、バッファマネージャ72はこのコピー数のフレームポイ ンタをマルチコピーキャッシュ96に入れ、そのコピー数をデクリメントする。 バッファマネージャ72は、フレームポインタを読出してから、リンクトリス トチェーンをたどり、バッファをフリーバッファプール104に戻すことによっ て、リクレームキュー98を絶えず処理する。この作用は、ヌルポートベクタを 有し、ポートベクタFIFO70によってリクレームキューに入れられていたフ レームか、マルチコピー転送ベクタを有し、全コピーの送信を完了したフレーム かのためのバッファを戻すのみである。単一コピーフレームにリンクされたバッ ファは、上述のようにそのフレームが送信されるときにフリーバッファプール1 04へと直接戻される。 出力キュー74と外部メモリ36内のそのオーバーフロー領域110とがフル であるために、ポートベクタFIFO70が単一コピー転送ベクタのためのフレ ームポインタを出力キュー74に入れることができなければ、そのフレームは廃 棄される。フレームポインタはリクレームキュー98に戻され、フレームの廃棄 がスイッチの管理資源によって記録される。1つ以上の出力キュー74と外部メ モリ36内のそれらのオーバーフロー領域110とがフルであるために、ポート ベクタFIFO70がマルチコピー転送ベクタのための1つ以上のフレームポイ ンタを入れることができなければ、そのフレームは使用可能なスペースのある出 力キューへと転送されるのみであり、マルチコピーキュー90に入れられたコピ ー数はうまく入れられたフレームポインタを反映するのみである。フレームポイ ンタが入れられなかったことは、フレームポインタがキューに入れられなかった 各ポートごとにスイッチ管理資源によって記録される。全出力キュー74と外部 メモリ36内のそれらのオーバーフロー領域110とがフルであるためにポート ベクタFIFO70がマルチコピー転送ベクタのためのどのフレームポインタも 入れることができなければ、そのフレームポインタはリクレームキュー98に渡 され、スイッチ管理資源にはそれに従い通知される。 マルチコピーキュー90は、フレームをストアするために用いられる全バッフ ァ(すなわち、アドレスポインタ)がフリーバッファプール104に戻され得る 前に、特定のマルチコピーフレームの何回の送信が完了されなければならないか を追跡するためにバッファマネージャ72が用いる高優先順位キューである。こ の出力キューの書込側92および読出側94はそれぞれ64エントリおよび16 エントリを保持する。マルチコピーキュー90はマルチコピーキャッシュ96に 入力を与え、マルチコピーキャッシュ96はいつバッファを再要求するかを決定 するためにバッファマネージャ72によって用いられる。マルチコピーキューの 内部構造を図12に示す。 出力キュー74にうまく入れることができたフレームポインタの数に基づいて 、ポートベクタFIFO70はフレームのフレームポインタコピーと「>1」で あるコピー数とをマルチコピーキュー90に入れる。特定のポートの出力キュー 74がフルであれば、ポートベクタFIFO70はフレームポインタのコピーを その出力キュー74に入れることができず、したがって、これをコピー数を決定 する際の成功した事象として含めることはできない。 バッファマネージャ72が出力キューフレームポインタを読出し、単一コピー ビットが「0」である(すなわち、マルチコピー)ことを見つけるたびに、それ は、これが最後の送信であることを示すコピー数「1」のフレームポインタを求 めてマルチコピーキャッシュを調べる。この一致が見つからなければ、各バッフ ァの内容が送信された後に不使用になったバッファをフリーバッファプール10 4に与えることによって、バッファマネージャ72は単一コピー送信の場合と同 様にフレームを送信し、バッファを再要求する。一致が見つかれば、バッファマ ネージャ72はマルチコピーフレームを送信し、コピー数「−1」のフレームポ インタのコピーをマルチコピーキュー90に入れる。拡張バス出力キュー75ま たは管理ポート出力キュー77へとキューに入れられたフレームのためのマルチ コピーフレームポインタの(PCIインターフェイス26を介しての)使用をホ ストが終了すると、ホストはコピー数「−1」のフレームポインタのコピーをフ レームポインタレジスタを介してマルチコピーキューへと書込む。このレジスタ は図2におけるレジスタ60のブロックに示されるレジスタの1つである。 出力キュー74と同様に、マルチコピーキュー90も入力経路および出力経路 を備えて構成される。入力経路または書込側により、ボートベクタFIFO70 およびバッファマネージャはフレームポインタ/コピー数をマルチコピーキュー 90に入れることができる。出力経路または読出側により、マルチコピーキュー 90はフレームポインタ/コピー数をマルチコピーキャッシュ96に入れること ができる。マルチコピーキューオーバーフロー124と呼ばれる、フレームポイ ンタ/コピー数のためのさらなるストレージが外部メモリ36に設けられる。 フレームポインタ/コピー数が空のマルチコピーキュー90に書込まれると、 それらは読出側94がフルになるまで書込側92から読出側94へと移動する。 マルチコピーキュー90の書込側92に書込まれるさらなるフレームポインタ/ コピー数は外部メモリ36内のマルチコピーキューオーバーフロー領域124に 入れられる。一旦マルチコピーキュー90の読出側94とそのオーバーフロー領 域124とがフルになれば、マルチコピーキューに入れられるさらなるフレーム ポインタ/コピー数が書込側92を満たし始める。 マルチコピーキュー90を通過するフレームポインタの順序は、マルチコピー キューの読出側94のスペースがクリアされると、フレームポインタ/コピー数 がマルチコピーキューオーバーフロー領域124からマルチコピーキューの読出 側94へと移動し、マルチコピーキューの書込側92からマルチコピーキューオ ーバーフロー領域124へと移動するようにして維持される。 マルチコピーキャッシュ96はマルチコピーキュー90と同様であるが、フレ ームポインタ/コピー数をスキャンするための探索可能な領域を設ける。マルチ コピーキャッシュ96は256までのエントリを保持する。バッファマネージャ 72はマルチコピーキュー90からフレームポインタを読出し、コピー数が「> 1」または「−1」のいずれであるかによって、フレームポインタをマルチコピ ーキャッシュ96に入れるかそれを処理するかする。 さらに、バッファマネージャ72が出力キュー74の読出側からフレームポイ ンタを読出すごとに、バッファマネージャ72は送信をスケジュールする。単一 コピービットが「0」である(マルチコピーフレームを意味する)ならば、バッ ファマネージャ72は、このフレームの最後の送信であることを示すコピー数「 1」のフレームポインタを求めてマルチコピーキャッシュ96をスキャンする。 一致があれば、バッファマネージャ72はフレーム送信の間にエントリを除去し 、バッファをフリーバッファプールに戻す。一致がなければ、バッファマネージ ャは送信の終了時にコピー数「−1」のフレームポインタをマルチコピーキュー 90に入れる。 バッファマネージャ72は周期的に、フレームポインタ/コピー数を読出し、 それをマルチコピーキャッシュ96に入れるか処理することによってマルチコピ ーキュー90を処理する。これはフレーム送信から独立して行なわれる。バッフ ァマネージャがコピー数「>1」のフレームポインタを読出すか、コピー数「− 1」のフレームポインタを読出すかによって2つの場合が引き続いて生じる。 1)バッファマネージャ72がマルチコピーキュー90からコピー数「>1」 のフレームポインタを読出す。マルチコピーキャッシュ96に空きがあれば、そ れは新しいエントリを書込む。マルチコピーキャッシュ96がフルであれば、バ ッファマネージャ72はキャッシュ96内のスペースをクリアしなければならな い。これが行われるのは、マルチコピーキャッシュ96からより古いフレームポ インタ/コピー数の1つを読出し、外部メモリ36内のフレームポインタのバッ ファヘッダをマルチコピーキャッシュ96内のコピー数で更新し、このキャッシ ュエントリをデリートすることによってである。一旦スペースが生じると、新し いフレームポインタ/コピー数がマルチコピーキャッシュ96に書込まれる。 2)バッファマネージャ72がマルチコピーキャッシュ90からコピー数「− 1」のフレームポインタを読出す。バッファマネージャ72はコピー数「≧1」 の一致するフレームポインタを求めてマルチコピーキャッシュ96を探索する。 バッファマネージャ72がマルチコピーキャッシュ96内でフレームポインタの 一致を見つけられるかどうかによって2つの場合が続く。 a)バッファマネージャ72がフレームポインタの一致を見つける。マルチコ ピーキャッシュ96のエントリのコピー数が「1」であれば、バッファマネージ ャ72はマルチコピーキャッシュエントリをデリートし、フレームポインタをリ クレームキュー98に入れる。キャッシュエントリのコピー数が「>1」であれ ば、バッファマネージャ72はコピー数を「1」だけデクリメントする。 b)バッファマネージャ72がマルチコピーキャッシュ96内でフレームポイ ンタの一致を見つけられない。これは、一致するフレームポインタが外部メモリ 36内のフレームのリンクトリストチェーンのバッファヘッダに既に移動されて いることを意味する。バッファマネージャ72はバッファヘッダに行って、コピ ー数を読出さなければならない。(メモリ内の)この値が「1」であれば、フレ ームはもはや必要ではなく、バッファマネージャ72はフレームポインタをリク レームキュー98に入れる。(メモリ内の)この値が「>1」であれば、バッフ アマネージャ72は(外部メモリ36内にあった)フレームポインタ/コピー数 のコピーをマルチコピーキャッシュ96に入れ、コピー数を「1」だけデクリメ ントする。マルチコピーキャッシュ96がフルであれば、バッファマネージャは より古いフレームポインタ/コピー数の1つを外部メモリ36に移動させること によってスペースをクリアする。 リクレームキュー98はもはや必要とされないリンクトリストチェーンを指す フレームポインタを保持する。バッファマネージャ72は、マルチコピーキャッ シュを処理してフレームポインタのコピー数が「1」である(すなわち、フレー ムの最後の送信がうまく終った)ことを見出すと、フレームポインタのリクレー ムキューに書込む。さらに、ポートベクタFIFO70は、1)フレームポイン タのポートベクタがヌルであるか、2)転送ベクタの全出力キューがフルであっ たのでフレームポインタがキューに入れられることができなかったという条件下 で、フレームポインタをリクレームキュー98に書込む。最後に、ホストは、拡 張バス出力キュー77または管理ポート出力キュー75に対してキューに入れら れた単一コピーフレームの使用を終えると、(フレームポインタレジスタを用い て)フレームポインタをリクレームキュー98に書込む。 バッファマネージャ72はリクレームキューのエントリを処理するとき、フレ ームポインタのリンクトリストチェーンをたどり、各バッファをフリーバッファ プール104に戻す。リクレームキュー構造の内部構造は図示されないが、本発 明の例示的実施例においてはフレームポインタ(14ビット)のみを含む。リク レームキューの書込側100は64エントリを保持し、リクレームキューの書込 側102は16エントリを保持する。 出力キュー74と同様に、リクレームキュー98は入力経路および出力経路を 備えて構成される。入力経路または書込側100によってバッファマネージャ7 2はフレームポインタをリクレームキュー98に入れることができる。出力経路 または読出側102によってバッファマネージャ72はフレームポインタを読出 し、関連の全バッファをフリーバッファプール104に戻すことができる。フレ ームポインタのためのさらなるストレージは外部メモリ36内に設けられるリク レームキューオーバーフロー領域122内に設けられる。 フレームポインタが空のリクレームキュー98に書込まれると、これらは読出 側102がフルになるまで書込側100から読出側102へと移動する。リクレ ームキュー98の書込側100に書込まれるさらなるフレームポインタは外部メ モリ36内のリクレームキューオーバーフロー領域122に入れられる。一旦リ クレームキュー98の読出側102およびオーバーフロー領域122がフルにな ると、リクレームキュー98に入れられるさらなるフレームポインタが書込側1 00を満たし始める。 図11はフリーバッファプール104の内部構造の例示的実施例を示す。フリ ーバッファプール104は、外部メモリ36内の全フリーバッファ140を指す アドレスポインタを含んだFIFOである。フレームが受信されると、バッファ マネージャ72は入来するデータをストアするためにフリーバッファプール10 4から使用可能なアドレスポインタを捕捉する。バッファマネージャ72はまた フリーバッファプール104からのアドレスポインタを(要求される場合)ホス トプロセッサ28に割当てる。ホストは、直接入力/出力スペースにおけるレジ スタ60の中のフリーバッファプールレジスタを読出すか書込むことによってア ドレスポインタを要求するかそれらをフリーバッファプール104に戻すことが できる。フリーバッファプール104の書込側106および読出側108は本発 明の例示的実施例においては各々64エントリを保持する。 フリーバッファプール104は(出力キュー74と同様に)入力経路および出 力経路を備えて構成される。入力経路または書込側106により、バッファマネ ージャ72またはホスト28はアドレスポインタをフリーバッファプール104 へと入れることができる。フリーバッファプール104の出力経路または読出側 108により、バッファマネージャ72はアドレスポインタをホスト28に与え 、またはプール104からアドレスポインタを引出して受信フレームデータをス トアすることができる。使用可能なアドレスポインタのさらなるストレージ、フ リーバッファプールのオーバーフロー領域120は上述のように外部メモリ36 内に設けられる。 スイッチ12が起動すると、フリーバッファプールは読出側108からアドレ スポインタを発生する。フレームが入来するときにフリーバッファプール104 内のフリーリストが読出される。書込側106にトラフィック要求を扱うのに十 分なバッファポインタがなければ、オーバーフロー領域120がより多くのバッ ファポインタを得るためにアクセスされる。 本発明のある実施例は、スイッチ12が開始されるとバッファポインタを与え る有利な配置および方法を提供する。スイッチ12が初めに電源投入されるとき 、外部メモリ36内のオーバーフロー領域120がバッファポインタを含むこと は必要とされない。代わりに、バッファポインタはオンザフライで発生される。 スイッチ12は電源投入されるとバッファポインタを発生し、それをオーバーフ ロー領域120に入れることができるが、このようなポインタは16,000個 または32,000個存在することがあり、これによってスイッチ12の電源投 入手順が遅くなるであろう。本発明は、電源投入時に全バッファがフリーであり 、これらのバッファのアイデンティティが既知であるという事実を利用する。し たがって、バッファポインタは電源投入後に必要とされるときに図10に示され るようにカウンタ180を用いて発生される。 フリーリストカウント発生器180がマルチプレクサ182の入力に接続され る。フリーバッファプール104のフリーリストが開始時に空であるので、フリ ーリストカウンタ180はバッファポインタを発生する。一旦フリーリストが最 高カウントに達すると、それはこれ以上バッファポインタを発生しない。 フレームパケットがスイッチ12において受信されると、フレームパケットは 固定長バッファへと分解する。典型的にフレームはさまざまなサイズである。バ ッファは256バイトのサイズであり、バッファのデータ部分は240バイトで ある。バッファ内容の送信後、バッファポインタがリクレームキュー98に入れ られるか、または、バッファチェーンをたどることができるならばフリーバッフ ァプール104のフリーリストに直接入れられる。スイッチ12の動作の間、フ リーバッファプール104に戻されるどのアドレスポインタも書込側106から 読出側108へと移動する。読出側108がフルとなれば、さらなるアドレスポ インタはオーバーフロー領域120に渡される。一旦読出側108およびオーバ ーフロー領域120がフルとなると、フリーバッファプール104に入れられる さらなるアドレスポインタがプール104の書込側106を再び満たし始める。 図13は本発明の実施例に従うマルチコピーキャッシュ96の内部配列の概略 図である。上で簡単に述べたように、マルチコピーキャッシュ96へのエントリ の時間順が維持される。本発明では、このように時間順が維持されるのは先行技 術におけるようなタイムスタンプによってではなく、メモリ内の物理的順序によ ってである。本発明のマルチコピーキャッシュ96はまた有効性ビットの使用を 避け、代わりに後述するように有効性を符号化する。 図13を参照すると、マルチコピーキャッシュ96は4ウェイセットアソシア ティブメモリとして構成される。マルチコピーキャッシュ96へのエントリは上 述のようにフレームポインタとそのコピー数とを含む。フレームポインタの最下 位6ビットが、エントリがストアされるセットアソシアティブキャッシュ96内 の行を決定する。本発明の図示される実施例では、キャッシュ96には64行が 存在するが、キャッシュサイズが大きくされれば他の行数も制限されない。 セットアソシアティブキャッシュ96は4列に分割され、その各々が並行して 探索される。バッファマネージャ72がエントリをキャッシュ96へとストアす るとき、エントリは常に、第1の列の、フレームポインタの最下位6ビットによ って示される行の最上位(51:39)ビットに入る。この行は読出され、全エ ントリが13ビット分右にシフトされ、行は再び書込まれる。実際にキャッシュ 96に書込まれるエントリはフレームポインタの上位8ビットを含み、それはア ドレスタグとフレームポインタに関連した5ビットコピー数を形成する。エント リがキャッシュ96から読出されると、フレームポインタはキャッシュ96の行 数を指すビットおよびアドレスタグで再形成される。 行がフルであり、その行への新たなエントリが書込まれれば、キャッシュ96 内の最も古いエントリがキャッシュ96から除去される。バッファヘッダ142 に関して上述したように、除去されるフレームポインタに関連したコピー数は除 去されるフレームポインタが指す外部メモリ内のフレームのバッファヘッダ14 2に書込まれる。したがって、外部メモリ36にストアされるフレーム(すなわ ち、バッファ140)はコピー数をストアするためのマルチコピーキャッシュ9 6のためのオーバーフロー領域となる。 本発明の有利な特徴の1つはセットアソシアティブキャッシュ96に別個の有 効ビットが存在しないことである。コピー数が00000であるとき、エントリ がもはや有効でないことをバッファマネージャ72はわかっており、エントリを キャッシュ96から除去する。これによってキャッシュ構成が簡素化される。本 発明のキャッシュ96の別の利点は非常に高速な探索が行なわれ得ることである 。これは、バッファマネージャ72がマルチコピーキュー90を出たフレームポ ンタによって既に定められている単一の行を検査しさえすればよいためである。 その行内の4つのエントリが並行して検査され、探索速度をさらに高める。4ウ ェイセットアソシアティブメモリとして説明しているが、これは例にすぎず、メ モリは本発明の範喘から逸脱せずにnウェイセットアソシアティブ方式となり得 る。 上の説明から、本発明がキャッシュにおけるエントリの行ごとの物理的位置決 めによってキャッシュエントリの時間順(エージ)を維持すると理解されるべき である。すなわち、キャッシュ内のエントリの物理的位置がエントリの相対的エ ージを示す。エントリはメモリにおけるエントリの物理的再順序付けによってエ ージングされる。 本発明のある実施例はポートごとにスイッチ12によって切換えられるフレー ムのレイテンシをカスタマイズする。図14を参照すると、ポートベクタFIF 070が受信ポートのプログラムされたスイッチモードを検査して、いつフレー ムポインタおよび関連の情報を送信ポートの適切な出力キュー74へと入れるか を決定する。第1のモード(低レイテンシモード)では、ポートベクタFIFO 70はいつフレームポインタを出力キュー74に入れるかに対して制限を与えな い。第2のモード(中間レイテンシモード)では、ポートベクタFIFO70は フレームの64バイトが受信されて初めてフレームポインタを出力キュー74に 入れる。第3のモード(高レイテンシモード)では、ポートベクタFIFO70 はフレームが完全に受信されて初めてフレームポインタを出力キュー70に入れ る。 いつポートベクタFIFO70がフレームポインタを出力キュー74へと移動 するかのタイミングを変えるいくつかの特殊な場合があり、それらは、1)第1 または第2のモードの10Mb/sポートから100Mb/sポートへのフレー ム転送と、2)管理ポート30へのフレーム転送と、3)拡張バスポートへのフ レーム転送とを含む。場合1)では、10Mb/sポートから100Mb/sポ ートへの速度不一致によって転送モードが強制的に第3の高レイテンシモードと される。場合2)では、管理ポートへと移動する全フレームが第3のモードのフ レームである。場合3)では、拡張バスポートへのどのフレーム転送も拡張バス ポート26のスイッチモードを用いる。マルチコピーポートベクタが特殊な場合 のポートの1つを含む場合、ポートベクタ全体に対するフレームポインタのキュ ー入れはポートベクタ内で表わされる最長レイテンシスイッチモードのそれにな る。たとえば、フレームが第1または第2のモードのポートによって受信され、 そのマルチコピー転送ポートベクタが管理ポート30を含めば、スイッチモード は第3のモードである。この場合、フレームが完全に受信されて初めてフレーム ポインタのコピーが全出力キュー74に入れられる。 スイッチモードをここでより詳細に説明する。入力(すなわち、受信)ポート に当てはまるスイッチモードが転送レイテンシ(一旦スイッチ12がフレームを 受信し始めるとどの程度後にスイッチ12がフレームを転送するか)と出力ポー トへのフラグメント/エラー伝搬を低減する能力とを決定する。第2の中間レイ テンシモードは各ポートに対するデフォルトであるが、スイッチモードはレジス タ60ではポートごとにプログラム可能である。 これら3つのモデルのすべてにおいて、内部MACポートの受信FIFO52 で受信されるフレームデータはできるだけ早く外部メモリ52内のバッファ14 0に転送される。ほぼ同時に、ルールチェッカ42または58が宛先アドレスお よびソースアドレス、受信ポート数、フレームポインタ、ならびにいくつかの付 加的情報を受信し、適切なルックアップを行なう。一旦ルックアップが完了する と、ルールチェッカ42または58はフレームポインタおよび転送ポートベクタ をポートベクタFIFO70に戻す。 ポートベクタFIFOはポートベクタ内で識別される出力ポートのための出力 キュー74の書込側76にフレームポインタを入れる。受信ポートのスイッチモ ードは、ポートベクタFIFO70がポートベクタ(およびフレームポインタ) を受取るときから、それがフレームポインタを出力キュー74に入れるときまで の間のレイテンシを規定する。これは以下の3つのモードに対して説明される。 一旦フレームポインタが出力キュー74の読出側78に移動すると、バッファマ ネージャ72はフレームポインタを読出し、送信をスケジュールする。バッファ マネージャはフレームポインタによって特定されるアドレスからフレームデータ を移動させ始める。一旦MACポートの送信FIFO54がその開始点に設定さ れると(そして、データ送信のために媒体が使用可能であると想定すると)、フ レーム送信が始まる。 第1のモードは最低のレイテンシを与えるように設計される。フレームはライ ンーレート速度で受信され、転送される。この第1のモードにおいてはネットワ ークエラーに対する保護がなく、これは、フレームがフラグメント(すなわち、 <64バイトの長さ)であるかCRCエラーを含むかが判断され得る前にフレー ムが送信のためにキューに入れられるためである。第1のモードにおいて、フレ ーム受信は出力ポートでのフレーム送信が始まるまでに完了していないかもしれ ない。受信フレームが短すぎる場合または無効なCRCで終る場合、受信MAC は外部メモリ36内のバッファヘッダ142に印を付けてこれらの条件を示す。 送信MACは、後に短すぎるものか無効なCRCで終るフレームの送信が始まれ ばMACが無効なCRCを発生することを保証する。送信MACがフレーム送信 を始めておらず、バッファヘッダ142が短すぎるものか無効なCRCで終るフ レームを示している場合、バッファマネージャ72はフレームを出力ポートへと 転送しない。 第2のモードはフレームを転送するための低レイテンシとあるネットワークエ ラーに対する保護とを与える。フレームは64バイト以上が受信された後に受信 され、転送される。これによってスイッチ12がフレームのフラグメントをフィ ルタ処理する(すなわち、転送しない)ことが可能となるが、これは64バイト よりも大きいCRCエラーフレームを完全にはフィルタ処理しない。 第2のモードにおいては、受信MACで64バイトのしきい値を達成したフレ ームのフレームポインタは適切な出力キュー74に入れられる。最小の64バイ トのしきい値を達成できないフレームはデリートされ、それらのフレームポイン タは出力キュー74に入れられない。64バイト以上の受信フレームが無効なC RCで終れば、受信MACは外部メモリ36内のバッファヘッダ142に印を付 けてこの条件を示す。後に無効なCRCで終る64バイト以上のフレームの送信 が開始されるときには、送信MACは不良なCRCで送信を終了する。送信MA Cがフレーム送信を開始しておらず、バッファヘッダ142が無効なCRCで終 るフレーム(64ビット以上)であることを示している場合、バッファマネージ ャはフレームポインタを(単一コピー転送のための)リクレームキュー98また は(マルチコピー転送のための)マルチコピーキュー96へと出力ポート74へ の転送なしに戻す。 第3のモードは3つのモードの中で最高レベルのネットワークエラー保護を与 えるがより高い転送レイテンシを有するストアアンドフォワードモードである。 フレームは、スイッチ12がそれらを出力ポートに転送する前に完全に受信され る。このモードでは、スイッチ12は転送の前に全てのフラグメントおよびCR Cエラーフレームをふるい分ける。第3のモードにおいて、一旦有効フレームが 受信側でうまく完了すると(すなわち、有効なCRCを持ち、64バイト以上で あると)、フレームポインタが適切な出力キュー74に入れられる。受信エラー (無効CRC、短すぎるもの(>64バイト)等)で終るフレームはデリートさ れ、それらのフレームポインタは出力キュー74に入れられない。 ポートベクタFIFO70は、受信ポートの選択されたモードと受信されたデ ータ量とに依存してポートベクタを出力キュー74に入れる決定を行なう。上述 の実施例では、3つのしきい値があるが他の実施例では異なる数のしきい値が存 在する。例示的実施例では、これらのしきい値は1)n<64バイトであるよう なnバイト(たとえば6バイト)の受信、2)64バイトの受信、および3)全 フレームの受信である。 本発明はしきい値に基づいてフレームを出力キュー74へと転送する。ポート ベクタFIFO70は、受信されるデータタイプの量とポートがプログラムされ たモードとに基づいて送信シーケンスを再び順序付ける。例示的実施例は受信さ れたデータの量に基づいて転送の決定を行なうが、本発明の他の実施例では、受 信されるデータタイプのような他の要因に基づいて転送の決定が行われる。 本発明の転送方式を実施するにあたって、バッファマネージャ72はフレーム ポインタを受信ポートと関連付ける、キャッシュメモリ(CAM)161内のテ ーブル160を維持する。ポートベクタFIFO70が新しいポートベクタおよ びフレームポインタをルールチェッカ42または58から受信するたびに、それ は関連付けを行なって受信ポートがフレーム受信を終えたかどうかを判断し、終 えていなければどれほどのフレームが既に受信されているかを判断する。ポート ベクタFIFO70が受信ポートのアイデンティティに関する情報をルールチェ ッカ42または58から受信することはない。ポートベクタが受取る唯一のポー トの何らかの識別を与える情報はフレームポインタである。 ポートベクタFIFO70はフレームポインタでアドレステーブル160に問 合せをする。フレームがなお受信されていればアドレステーブルは受信ポートを 戻し、またはアドレステーブル160はフレームポインタを見つけることができ ないときはフレームが既に受信されたことを意味する。一旦フレームが完全に受 信されると、フレームポインタがアドレステーブル160から移動される。これ は、第3のしきい値(フレーム完了)が満たされたことを意味する。したがって 、フレームポインタは直ちに出力キュー74に入れられ得る。 アドレステーブル160が受信ポートを戻せば、ポートベクタFIFO70が フレームポインタおよび関連の情報を保持領域162に入れ、その受信ポートか らの2信号を監視し始める。これらの2信号は3つの事象のうちの1つを示す。 第1の事象はポートがnバイトを受信するときに示される。その時点で、そのポ ートが第1のモードにあれば、ポートベクタFIFO70がフレームポインタを 適切な出力キュー74に送ることによってその処理を開始する。受信ポートが第 1のモードになければ、ポートベクタFIFO70は第2の事象の発生を示す信 号が受信されるまで待機する。このポートが第2のモードにあれば、ポートベク タFIFO70はフレームポインタを保持領域162から解放し、適切な出力キ ュー74に入れる。最後に、受信ポートが第3のモードにあれば、ポートベクタ FIFO70はフレームが完全であることを示すフラグの受信を待つ。各受信ポ ート(図14の参照番号164)がこのフラグを維持し、この情報をポートベク タFIFO70に提供する。フレームポインタに関連付けられたポートの決定は ポートベクタFIFO70次第である。ポートベクタFIFO70は各ポートの モードを識別する情報を維持する。要約すると、フレームポインタが受信される と、ポートベクタFIFO70は最初にバッファマネージャ72のアドレステー ブル160に問合せをして受信ポートを決定し、その受信ポートのためのモード を決定し、受信ポートからのフラグを監視し、モードおよびフラグに従ってフレ ームポインタを解放する。 本発明が詳細に説明され、図示されたが、これは図示および例示のためのもの にすぎず、限定するものとは受取られるべきでなく、本発明の精神および範疇が 請求の範囲によってのみ限定されることが明らかに理解される。
【手続補正書】特許法第184条の8第1項 【提出日】平成10年12月21日(1998.12.21) 【補正内容】 探索可能なキャッシュ領域を備えるマルチコピーキュー構造 発明の分野 本発明は通信分野に関連し、特に、データの複数のコピーを送信し、送信され たコピーの数のカウントを維持するための方法および装置に関する。 背景技術 EP−A−0 622 922は、通信システム内の共用メモリに接続された 複数のユーザにデータまたはメッセージをマルチキャスティングする公知の方法 および装置を開示している。説明されたシステムにおいては、メモリは複数のデ ータバッファとして組織化され、各々が独自の直接制御ブロックおよび間接制御 ブロックを含む制御ブロックによって制御される。チェーン状に連結されたデー タバッファから成るメッセージは、対応の直接制御ブロックをチェーン状に連結 することによって形成され、関連の間接制御ブロックを用いることによって、各 ユーザごとにデータを書き換えずに複数のユーザにマルチキャストされ得る。各 直接制御ブロックは複製数のカウントを可能にするフィールドを有する。 Lee,Tsern-Huei他による「共用バッファメモリスイッチにおけるマルチキャ スティング」("Multicasting in a shared buffer memory switch")、TENCON'93 、北京、19993年10月19−21日、第1巻、IEEE第209−212頁は、マ ルチキャスト能力を備える公知の共用バッファメモリスイッチを開示している。 Schultz,Kenneth J他の「CAMベース単一チップ共用バッファATMスイッ チ」("CAM-based single chip shared buffer ATM switch")、Supercomm-ICC、 ニューオーリンズ、1994年5月1−5日、第2巻、IEEE第1190−1 195頁もまた、共用RAMを有する公知の共用バッファスイッチアーキテクチ ャを開示している。 パケット交換網(たとえば、イーサネット網)のような多くのネットワークシ ステムにおいて、単一のエンドステーションが同じデータをネットワーク上の複 数の他のエンドステーションに送信することがしばしば望ましい。たとえば、従 来の電子メールシステムでは、ユーザは同じ電子メールメッセージをその電子メ ールシステムに接続された異なる4人のユーザに送ることを望むかもしれない。 パケット交換網では、スイッチがそのポートを通してエンドステーションから データのフレームを受信すると転送決定を行なう。フレームが多数のエンドステ ーションに送信されるべきであれば、スイッチはフレームを正しいポートに転送 するための転送決定を行なわなければならない。このようなシステムにおける問 題の1つはフレームの正しい数のコピーが送信されることを確実とすることであ る。この問題は、情報がそれを通して送信され得る多数のポートをスイッチが有 する場合に特に達成が困難である。たとえば、フレームのコピーがスイッチの3 つの異なるポートから同時に送信されるのであれば、送信されたコピーの数の正 確なカウントを維持することは問題である。 また、送信されたコピー数の正確なカウントを維持して、そのデータを一時的 に保持するために用いられている資源が他のデータをストアするためにいつ再使 用できるかがスイッチにわかるようにすることが重要である。この情報の提供が 時宜を得たものでなければ、データをストアするための資源に不必要な輻輳およ びコンテンションが起こり得る。 パケット交換網のネットワークスイッチのような装置から送信された、フレー ムのようなデータ項目のコピー数のカウントを維持する構成および方法が必要で ある。 発明の概要 本発明は、添付の請求項1に記載の特徴によって特徴づけられる、ネットワー クスイッチから送信されるフレームのコピーのカウントを維持するための構成を 提供する。本発明は、添付の請求項9に記載の特徴によって特徴づけられる、装 置から送信されるべきデータ項目のコピー数のカウントを維持するための構成を さらに提供する。さらに、本発明は、添付の請求項12に記載のステップによっ て特徴づけられる、ネットワークスイッチからのフレームの送信数のカウントを 維持する方法を提供する。 上述および他の必要は、ネットワークスイッチから送信されるフレームのコピ ーのカウントを維持するための構成であって、マルチコピーキュー、探索可能な メモリおよびバッファマネージャを含む構成を提供する本発明の実施例によって 満たされる。マルチコピーキューはエントリを受取り、キューに入れる。各エン トリはフレーム識別子およびコピー数を有する。各コピー数は正または負の値で あり、正の値のコピー数は送信されるべきフレームのコピーの総数を表わし、負 の値のコピー数は既に行なわれたフレームのコピーの1つの送信を表わす。メモ リは、正のコピー数を有するマルチコピーキューからのエントリを受取り、スト アするよう構成される。バッファマネージャはマルチコピーキューを出た後のエ ントリを検査する。マルチコピーキューからのエントリが負のコピー数を含む( そのコピーが送信されたことを示す)とき、バッファマネージャは負のコピー数 を有するエントリと同じフレーム識別子を有するエントリを求めて第1のメモリ を探索する。バッファマネージャは、メモリ内のエントリのコピー数が1よりも 大きければメモリ内のエントリのコピー数をデクリメントし、コピー数が1と等 しければメモリ内のエントリをデリートする。 本発明のこの実施例の利点は、コピーが異なるポートから同時に送信され得る マルチポートスイッチ環境においても正確なカウント数の送信が行なわれること である。カウントはキャッシュメモリのようなメモリ内に各複数コピーフレーム ごとに維持される。このフレームのコピーが送信されるたびに、バッファマネー ジャはそのフレームのコピー数(すなわち、送信数のカウント)を変更する。フ レームコピーの送信を示すエントリをキューに入れるためのキューを用いること によって、コピーの各送信を認識し、それに従ってメモリ内のカウントを調節す る機会がバッファマネージャに与えられる。これは、全送信が同時に起こっても 認識されるように、キューがバッファマネージャにコピーの送信を順次的に通知 するためである。 上述の必要は、エントリをストアするよう構成される第1のメモリを含み、各 エントリが第2のメモリ内にストアされるデータを指すデータポインタと関連の 請求の範囲 1.ネットワークスイッチ(12)から送信されるフレームのコピーのカウント を維持するための構成であって、この構成は、 エントリを受取り、キューにとして維持するよう構成されるマルチコピーキュ ー(90)を含み、各エントリはフレーム識別子およびコピー数を有し、各コピ ー数は正または負の値であり、正の値のコピー数は送信されるべきフレームのコ ピーの総数を表わし、負の値のコピー数は既に行なわれたフレームのコピーの1 つの送信を表わし、さらに、 正のコピー数を有するマルチコピーキュー(90)からのエントリを受取り、 ストアするよう構成される探索可能な第1のメモリ(96)と、 マルチコピーキュー(90)を出るエントリを検査し、マルチコピーキュー( 90)からのエントリが負のコピー数を有するときには、負のコピー数を有する エントリと同じフレーム識別子を有するエントリを求めて第1のメモリを探索し 、第1のメモリ内のエントリのコピー数が1よりも大きければそのフレーム識別 子を有する第1のメモリ内のエントリのコピー数をデクリメントし、コピー数が 1と等しければ第1のメモリ内のそのエントリをデリートするよう構成されるバ ッファマネージャ(72)とを含むことによって特徴づけられる、構成。 2.第1のメモリ(96)はキャッシュメモリである、クレーム1に記載の構成 。 3.フレーム識別子は、フレームがストアされている第2のメモリ(36)内の 場所を指すフレームポインタである、請求項1または請求項2に記載の構成。 4.バッファ内にフレームをストアするよう構成される第2のメモリ(36)を さらに含む、請求項3に記載の構成。 5.第2のメモリ(36)内のバッファは、そのバッファ内にストアされている フレームのためのコピー数をストア可能であるコピー数領域を備えたバッファヘ ッダを有する、請求項4に記載の構成。 6.バッファマネージャ(72)は、マルチコピーキュー(90)から出る正の コピー数を有するエントリを第1のメモリ(96)へと書込み、正のコピー数を 有するエントリの書込の前に第1のメモリ(96)がフルであれば、第1のメモ リ(96)から最古のエントリを除去し、そのエントリのコピー数を、バッファ マネージャ(72)によって除去されたエントリ内のフレームポインタが指すフ レームをストアするバッファのバッファヘッダのコピー数領域へと書込むようさ らに構成される、請求項5に記載の構成。 7.バッファマネージャ(72)は、バッファマネージャ(72)による第1の メモリ(96)の探索が負のコピー数を有するエントリと同じ識別子を有するエ ントリを第1のメモリ内でつきとめないとき、その負のコピー数を含むエントリ 内のフレームポインタが指すフレームをストアしているバッファのコピー数領域 からコピー数を取出すようさらに構成される、請求項6に記載の構成。 8.パケット交換網のためのマルチポートスイッチ構成(12)であって、スイ ッチは1つのフレームの複数のコピーを送信するよう構成され、スイッチ構成は は請求項1から7のいずれか1つに記載の構成を含み、前記フレーム識別子はフ レームポインタである、構成。 9.装置から送信されるべきデータ項目のコピーの数のカウントを維持するため の構成であって、この構成は、 エントリがストアされる第1のメモリ(96)を含み、第1のメモリ(96) 内にストアされる各エントリは複数のコピーがこの装置から送信されるべき異な るデータ項目に対応し、各エントリは、データ項目がストアされている第2のメ モリ(36)内の場所を指すポインタと、そのデータ項目のまだ送信されていな いコピーの数を示すコピー数とを有し、さらに、 第1のメモリ(96)内のエントリと同じポインタを有するデータ項目のコピ ーが装置から送信されるときに、第1のメモリ(96)内にストアされているエ ントリの1つ内のコピー数を調節するよう構成されるマネージャ装置(72)を 含むことによって特徴づけられる、構成。 10.マネージャ装置(72)は、装置内のエントリを受取り、検査し、前記装 置内のエントリは、第1のメモリ(96)内にストアされるべきエントリと、前 記ポインタとポインタが指すデータ項目の1つのコピーが装置から送信されたこ とを示す負のコピー数とを含むエントリとを含み、マネージャ装置はさらに、マ ネージャ装置が負のコピー数と第1のメモリ(96)内にストアされているその エントリのポインタと一致するポインタとを持つエントリを受取ると、第1のメ 第1のメモリ内にストアされているエントリの1つのコピー数を調節するようさ らに構成される、請求項9に記載の構成。 11.装置はネットワークスイッチであり、マネージャ装置(72)はマルチポ ートスイッチのバッファマネージャであり、第1のメモリ(96)はキャッシュ メモリであり、データ項目はデータのフレームであり、ポインタはフレームポイ ンタである、請求項9または請求項10に記載の構成。 12.ネットワークスイッチ(12)からのフレームの送信の数のカウントを維 持する方法であって、この方法は、 探索可能な第1のメモリ(96)にエントリをロードするステップを含み、各 エントリは、フレーム識別子と、ネットワークスイッチ(12)からまだ送信さ れていないコピーの数を示すコピー数とを含み、さらに、 フレームが送信されるときに、送信されたフレームと同じ識別子を有するエン トリを求めて第1のメモリ(96)を探索するステップと、 第1のメモリの探索が送信されたフレームと同じフレーム識別子のエントリを つきとめると、第1のメモリ(96)内のそのエントリのコピー数をデクリメン トするステップとを含むことを特徴とする、方法。 13.マルチコピーキュー(90)にエントリをロードするステップをさらに含 み、各エントリはフレームポインタおよびコピー数を有する、請求項12に記載 の方法。 【手続補正書】 【提出日】平成11年8月18日(1999.8.18) 【補正内容】 請求の範囲 1.ネットワークスイッチ(12)から送信されるフレームのコピーのカウント を維持するための構成であって、この構成は、 エントリを受取り、キューにとして維持するよう構成されるマルチコピーキュ ー(90)を含み、各エントリはフレーム識別子およびコピー数を有し、各コピ ー数は正または負の値であり、正の値のコピー数は送信されるべきフレームのコ ピーの総数を表わし、負の値のコピー数は既に行なわれたフレームのコピーの1 つの送信を表わし、さらに、 正のコピー数を有するマルチコピーキュー(90)からのエントリを受取り、 ストアするよう構成される探索可能な第1のメモリ(96)と、 マルチコピーキュー(90)を出るエントリを検査し、マルチコピーキュー( 90)からのエントリが負のコピー数を有するときには、負のコピー数を有する エントリと同じフレーム識別子を有するエントリを求めて第1のメモリを探索し 、第1のメモリ内のエントリのコピー数が1よりも大きければそのフレーム識別 子を有する第1のメモリ内のエントリのコピー数をデクリメントし、コピー数が 1と等しければ第1のメモリ内のそのエントリをデリートするよう構成されるバ ッファマネージャ(72)とを含むことによって特徴づけられる、構成。 2.第1のメモリ(96)はキャッシュメモリである、クレーム1に記載の構成 。 3.フレーム識別子は、フレームがストアされている第2のメモリ(36)内の 場所を指すフレームポインタである、請求項1または請求項2に記載の構成。 4.バッファ内にフレームをストアするよう構成される第2のメモリ(36)を さらに含む、請求項3に記載の構成。 5.第2のメモリ(36)内のバッファは、そのバッファ内にストアされている フレームのためのコピー数をストア可能であるコピー数領域を備えたバッファヘ ッダを有する、請求項4に記載の構成。 6.バッファマネージャ(72)は、マルチコピーキュー(90)から出る正の コピー数を有するエントリを第1のメモリ(96)へと書込み、正のコピー数を 有するエントリの書込の前に第1のメモリ(96)がフルであれば、第1のメモ リ(96)から最古のエントリを除去し、そのエントリのコピー数を、バッファ マネージャ(72)によって除去されたエントリ内のフレームポインタが指すフ レームをストアするバッファのバッファヘッダのコピー数領域へと書込むようさ らに構成される、請求項5に記載の構成。 7.バッファマネージャ(72)は、バッファマネージャ(72)による第1の メモリ(96)の探索が負のコピー数を有するエントリと同じ識別子を有するエ ントリを第1のメモリ内でつきとめないとき、その負のコピー数を含むエントリ 内のフレームポインタが指すフレームをストアしているバッファのコピー数領域 からコピー数を取出すようさらに構成される、請求項6に記載の構成。 8.パケット交換網のためのマルチポートスイッチ構成(12)であって、スイ ッチは1つのフレームの複数のコピーを送信するよう構成され、スイッチ構成は は請求項1から7のいずれか1つに記載の構成を含み、前記フレーム識別子はフ レームポインタである、構成。 9.装置から送信されるべきデータ項目のコピーの数のカウントを維持するため の構成であって、この構成は、 エントリがストアされる第1のメモリ(96)を含み、第1のメモリ(96) 内にストアされる各エントリは複数のコピーがこの装置から送信されるべき異な るデータ項目に対応し、各エントリは、データ項目がストアされている第2のメ モリ(36)内の場所を指すポインタと、そのデータ項目のまだ送信されていな いコピーの数を示すコピー数とを有し、さらに、 第1のメモリ(96)内のエントリと同じポインタを有するデータ項目のコピ ーが装置から送信されるときに、第1のメモリ(96)内にストアされているエ ントリの1つ内のコピー数を調節するよう構成されるマネージャ装置(72)を 含むことによって特徴づけられる、構成。 10.マネージャ装置(72)は、装置内のエントリを受取り、検査し、前記装 置内のエントリは、第1のメモリ(96)内にストアされるべきエントリと、前 記ポインタとポインタが指すデータ項目の1つのコピーが装置から送信されたこ とを示す負のコピー数とを含むエントリとを含み、マネージャ装置はさらに、マ ネージャ装置が負のコピー数と第1のメモリ(96)内にストアされているその エントリのポインタと一致するポインタとを持つエントリを受取ると、第1のメ 第1のメモリ内にストアされているエントリの1つのコピー数を調節するようさ らに構成される、請求項9に記載の構成。 11.装置はネットワークスイッチであり、マネージャ装置(72)はマルチポ ートスイッチのバッファマネージャであり、第1のメモリ(96)はキャッシュ メモリであり、データ項目はデータのフレームであり、ポインタはフレームポイ ンタである、請求項9または請求項10に記載の構成。 12.ネットワークスイッチ(12)からのフレームの送信の数のカウントを維 持する方法であって、この方法は、 探索可能な第1のメモリ(96)にエントリをロードするステップを含み、各 エントリは、フレーム識別子と、ネットワークスイッチ(12)からまだ送信さ れていないコピーの数を示すコピー数とを含み、さらに、 フレームが送信されるときに、送信されたフレームと同じ識別子を有するエン トリを求めて第1のメモリ(96)を探索するステップと、 第1のメモリの探索が送信されたフレームと同じフレーム識別子のエントリを つきとめると、第1のメモリ(96)内のそのエントリのコピー数をデクリメン トするステップとを含むことを特徴とする、方法。 13.マルチコピーキュー(90)にエントリをロードするステップをさらに含 み、各エントリはフレームポインタおよびコピー数を有し、各コピー数は正また は負の値であり、正の値のコピー数は送信されるべきフレームのコピーの総数を 表わし、負の値のコピー数は既に行なわれたフレームのコピーの1つの送信を表 わし、第1のメモリ(96)にエントリをロードするステップは、正のコピー数 を有するマルチコピーキュー(90)から出るそれらのエントリのみをロードす るステップを含む、請求項12に記載の方法。 14.正のコピー数のエントリの書込の前に第1のメモリ(96)がエントリで フルであるかどうかを判断し、第1のメモリ(96)がフルであれば、第1のメ モリ(96)から最古のエントリを除去し、そのエントリのコピー数を、除去さ れたエントリ内のフレームポインタが指すフレームをストアする第2のメモリ( 36)内の場所のコピー数領域へと書込むステップをさらに含む、請求項13に 記載の方法。 15.第1のメモリ(96)の探索が負のコピー数を有するエントリと同じポイ ンタを有するエントリを第1のメモリ(96)内につきとめないときには、負の コピー数を含むエントリ内のフレームポインタが指すフレームをストアする場所 のコピー数領域からコピー数を取出すステップをさらに含む、請求項14に記載 の方法。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),JP,KR (72)発明者 ルナルデュー,トーマス・ジェイ アメリカ合衆国、95117 カリフォルニア 州、サン・ノゼ、ブラックフォード・アベ ニュ、3701

Claims (1)

  1. 【特許請求の範囲】 1.ネットワークスイッチから送信されるフレームのコピーのカウントを維持す るための構成であって、 エントリを受取り、キューとして維持する構成されるマルチコピーキューを含 み、各エントリはフレーム識別子およびコピー数を有し、各コピー数は正または 負の値であり、正の値のコピー数は送信されるべきフレームのコピーの総数を表 わし、負の値のコピー数は既に行なわれたフレームのコピーの1つの送信を表わ し、さらに、 正のコピー数を有するマルチコピーキューからのエントリを受取り、ストアす るよう構成される探索可能な第1のメモリと、 マルチコピーキューを出るエントリを検査し、マルチコピーキューからのエン トリが負のコピー数を有するときには、負のコピー数を有するエントリと同じフ レーム識別子を有するエントリを求めて第1のメモリを探索し、第1のメモリ内 のエントリのコピー数が1よりも大きければそのフレーム識別子を有する第1の メモリ内のエントリのコピー数をデクリメントし、コピー数が1と等しければ第 1のメモリ内のそのエントリをデリートするよう構成されるバッファマネージャ とを含む、構成。 2.フレーム識別子は、フレームがストアされている第2のメモリ内の場所を指 すフレームポインタである、請求項1に記載の構成。 3.第1のメモリはキャッシュメモリである、クレーム2に記載の構成。 4.バッファ内にフレームをストアするよう構成される第2のメモリをさらに含 む、請求項2に記載の構成。 5.第2のメモリ内のバッファは、そのバッファ内にストアされているフレーム のためのコピー数をストア可能であるコピー数領域を備えたバッファヘッダを有 する、請求項4に記載の構成。 6.バッファマネージャは、マルチコピーキューから出る正のコピー数を有する エントリを第1のメモリへと書込み、正のコピー数を有するエントリの書込の前 に第1のメモリがフルであれば、第1のメモリから最古のエントリを除去し、そ のエントリのコピー数を、バッファマネージャによって除去されたエントリ内の フレームポインタが指すフレームをストアするバッファのバッファヘッダのコピ ー数領域へと書込むようさらに構成される、請求項5に記載の構成。 7.バッファマネージャは、バッファマネージャによる第1のメモリの探索が負 のコピー数を有するエントリと同じ識別子を有するエントリを第1のメモリ内で つきとめないとき、その負のコピー数を含むエントリ内のフレームポインタが指 すフレームをストアしているバッファのコピー数領域からコピー数を取出すよう さらに構成される、請求項6に記載の構成。 8.メモリ構成であって、 エントリをストアするよう構成される第1のメモリを含み、各エントリは第2 のメモリ内にストアされているデータを指すデータポインタと関連のデータ項目 とを有し、さらに、 データポインタが指す第2のメモリ内の場所でデータをストアするよう構成さ れる第2のメモリを含み、第2のメモリ内の場所はデータとともに関連のデータ 項目をストアするよう構成され、したがって、第2のメモリは関連のデータ項目 をストアするための第1のメモリの拡張部である、メモリ構成。 9.第1のメモリは探索可能なキャッシュであり、データはデータのフレームで あり、データポインタはフレームポインタであり、関連のデータ項目はフレーム のコピーの数が装置から送信されるべきことを示すコピー数である、請求項8に 記載のメモリ構成。 10.エントリを検査し、エントリが負のコピー数を含むときに、負のコピー数 を有するエントリと同じフレームポインタを有するエントリを求めてキャッシュ を探索し、キャッシュ内のエントリのコピー数が1よりも大きければフレームポ インタを有するキャッシュ内のエントリのコピー数をデクリメントし、コピー数 が1と等しければキャッシュ内のエントリをデリートするよう構成されるバッフ ァマネージャをさらに含む、請求項9に記載のメモリ構成。 11.バッファマネージャは、正のコピー数のエントリをキャッシュへと書込み 、正のコピー数のエントリの書込の前にキャッシュがフルであれば、キャッシッ から最古のエントリを除去し、そのエントリのコピー数を、バッファマネージャ によってキャッシュから除去されたエントリ内のフレームポインタが指すフレー ム をストアする第2のメモリ内の場所のコピー数領域へと書込むようさらに構成さ れる、請求項10に記載のメモリ構成。 12.バッファマネージャは、バッファマネージャによるキャッシュの探索が負 のコピー数を有するエントリと同じ識別子を有するエントリをキャッシュ内につ きとめないと、負のコピー数を含むエントリ内のフレームポインタが指すフレー ムをストアする場所のコピー数領域からコピー数を取出すようさらに構成される 、請求項11に記載のメモリ構成。 13.装置から送信されるべきデータ項目のコピーの数のカウントを維持するた めの構成であって、 エントリがストアされる第1のメモリを含み、第1のメモリ内にストアされる 各エントリは複数のコピーがこの装置から送信されるべき異なるデータ項目に対 応し、各エントリは、データ項目がストアされている第2のメモリ内の場所を指 すポインタと、そのデータ項目のまだ送信されていないコピーの数を示すコピー 数とを有し、さらに、 第1のメモリ内のエントリと同じポインタを有するデータ項目のコピーが装置 から送信されるときに、第1のメモリ内にストアされているエントリの1つ内の コピー数を調節するよう構成されるマネージャ装置を含む、構成。 14.マネージャ装置は、装置内のエントリを受取り、検査し、前記装置内のエ ントリは、第1のメモリ内にストアされるべきエントリと、前記ポインタとポイ ンタが指すデータ項目の1つのコピーが装置から送信されたことを示す負のコピ ー数とを含むエントリとを含み、マネージャ装置はさらに、マネージャ装置が負 のコピー数と第1のメモリ内にストアされているそのエントリのポインタと一致 するポインタとを持つエントリを受取ると、第1のメモリ内にストアされている エントリの1つのコピー数を調節するようさらに構成される、請求項13に記載 の構成。 15.装置はネットワークスイッチであり、マネージャ装置はマルチポートスイ ッチのバッファマネージャであり、第1のメモリはキャッシュメモリであり、デ ータ項目はデータのフレームであり、ポインタはフレームポインタである、請求 項14に記載の構成。 16.パケット交換網のためのマルチポートスイッチ構成であって、スイッチは 単一のフレームの複数のコピーを送信するよう構成され、スイッチ構成は、 エントリを受取り、キューに入れるよう構成されるマルチコピーキューを含み 、各エントリはフレームポインタおよびコピー数を有し、各コピー数は正または 負の値であり、正の値のコピー数は送信されるべきフレームのコピーの総数を表 わし、負の値のコピー数は既に行なわれたフレームのコピーの1つの送信を表わ し、さらに、 正のコピー数を有するマルチコピーキューからのエントリを受取り、ストアす るよう構成される探索可能な第1のメモリと、 マルチコピーキューを出るエントリを検査し、マルチコピーキューからのエン トリが負のコピー数を含むときに、負のコピー数を有するエントリと同じフレー ムポインタを有するエントリを求めて第1のメモリを探索し、第1のメモリ内の エントリのコピー数が1よりも大きければフレームポインタを有する第1のメモ リ内のエントリのコピー数をデクリメントし、コピー数が1と等しければ第1の メモリ内のそのエントリをデリートするよう構成されるバッファマネージャとを 含む、スイッチ構成。 17.フレームポインタはフレームがストアされる第2のメモリ内の場所を指す 、請求項16に記載のスイッチ構成。 18.バッファ内のフレームをストアするよう構成される第2のメモリをさらに 含む、請求項17に記載のスイッチ構成。 19.第2のメモリ内のバッファは、そのバッファ内にストアされているフレー ムのためのコピー数がストア可能であるコピー数領域を含むバッファヘッダを有 する、請求項18に記載のスイッチ構成。 20.バッファマネージャは、マルチコピーキューから出る正のコピー数のエン トリを第1のメモリへと書込み、正のコピー数のエントリの書込の前に第1のメ モリがフルであれば、第1のメモリから最古のエントリを除去し、そのエントリ のコピー数を、バッファマネージャによって除去されたエントリ内のフレームポ インタが指すフレームをストアするバッファのバッファヘッダのコピー数領域へ と書込むようさらに構成される、請求項19に記載のスイッチ構成。 21.バッファマネージャは、バッファマネージャによる第1のメモリの探索が 負のコピー数を有するエントリと同じ識別子を有するエントリを第1のメモリ内 につきとめないと、負のコピー数を含むエントリ内のフレームポインタが指すフ レームをストアするバッファのコピー数領域からコピー数を取出すようさらに構 成される、請求項20に記載のスイッチ構成。 22.ネットワークスイッチからのフレームの送信の数のカウントを維持する方 法であって、 探索可能な第1のメモリにエントリをロードするステップを含み、各エントリ は、フレーム識別子と、ネットワークスイッチからまだ送信されていないコピー の数を示すコピー数とを含み、さらに、 フレームが送信されるときに、送信されたフレームと同じ識別子を有するエン トリを求めて第1のメモリを探索するステップと、 第1のメモリの探索が送信されたフレームと同じフレーム識別子のエントリを つきとめると、第1のメモリ内のそのエントリのコピー数をデクリメントするス テップとを含む、方法。 23.マルチコピーキューにエントリをロードするステップをさらに含み、各エ ントリはフレームポインタおよびコピー数を有し、各コピー数は正または負の値 であり、正の値のコピー数は送信されるべきフレームのコピーの総数を表わし、 負の値のコピー数は既に行なわれたフレームのコピーの1つの送信を表わし、第 1のメモリにエントリをロードするステップは、正のコピー数を有するマルチコ ピーキューから出るそれらのエントリのみをロードするステップを含む、請求項 22に記載の方法。 24.正のコピー数のエントリの書込の前に第1のメモリがエントリでフルであ るかどうかを判断し、第1のメモリがフルであれば、第1のメモリから最古のエ ントリを除去し、そのエントリのコピー数を、除去されたエントリ内のフレーム ポインタが指すフレームをストアする第2のメモリ内の場所のコピー数領域へと 書込むステップをさらに含む、請求項23に記載の方法。 25.第1のメモリの探索が負のコピー数を有するエントリと同じポインタを有 するエントリを第1のメモリ内につきとめないときには、負のコピー数を含むエ ントリ内のフレームポインタが指すフレームをストアする場所のコピー数領域か らコピー数を取出すステップをさらに含む、請求項24に記載の方法。
JP53578798A 1997-02-14 1998-01-30 探索可能なキャッシュ領域を備えるマルチコピーキュー構造 Expired - Lifetime JP4078446B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US3802597P 1997-02-14 1997-02-14
US08/993,880 1997-12-18
US08/993,880 US6061351A (en) 1997-02-14 1997-12-18 Multicopy queue structure with searchable cache area
US60/038,025 1997-12-18
PCT/US1998/001985 WO1998036530A1 (en) 1997-02-14 1998-01-30 Multicopy queue structure with searchable cache area

Publications (3)

Publication Number Publication Date
JP2002514366A true JP2002514366A (ja) 2002-05-14
JP2002514366A5 JP2002514366A5 (ja) 2005-09-08
JP4078446B2 JP4078446B2 (ja) 2008-04-23

Family

ID=26714773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53578798A Expired - Lifetime JP4078446B2 (ja) 1997-02-14 1998-01-30 探索可能なキャッシュ領域を備えるマルチコピーキュー構造

Country Status (5)

Country Link
US (1) US6061351A (ja)
EP (1) EP0960504B1 (ja)
JP (1) JP4078446B2 (ja)
DE (1) DE69823483T2 (ja)
WO (1) WO1998036530A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8537407B2 (en) 2009-10-23 2013-09-17 Seiko Epson Corporation Image reading device, correction method, and image processing method using an image reading device

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978379A (en) 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US6744728B1 (en) 1997-09-17 2004-06-01 Sony Corporation & Sony Electronics, Inc. Data pipeline timing optimization technique in a multi-port bridge for a local area network
JP2001523861A (ja) * 1997-11-17 2001-11-27 シーゲイト テクノロジー エルエルシー フレーム受信のための方法及び専用のフレームバッファ
US6430188B1 (en) * 1998-07-08 2002-08-06 Broadcom Corporation Unified table for L2, L3, L4, switching and filtering
US7002982B1 (en) 1998-07-08 2006-02-21 Broadcom Corporation Apparatus and method for storing data
WO2000003517A1 (en) 1998-07-08 2000-01-20 Broadcom Corporation High performance self balancing low cost network switching architecture based on distributed hierarchical shared memory
US7430171B2 (en) 1998-11-19 2008-09-30 Broadcom Corporation Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
US7120117B1 (en) * 2000-08-29 2006-10-10 Broadcom Corporation Starvation free flow control in a shared memory switching device
DE60031515T2 (de) * 1999-03-17 2007-08-23 Broadcom Corp., Irvine Netzwerkvermittlung
US7643481B2 (en) * 1999-03-17 2010-01-05 Broadcom Corporation Network switch having a programmable counter
US6515990B1 (en) * 1999-03-31 2003-02-04 Advanced Micro Devices, Inc. Dequeuing logic architecture and operation in a multiport communication switch
US7031302B1 (en) 1999-05-21 2006-04-18 Broadcom Corporation High-speed stats gathering in a network switch
EP1181792B1 (en) * 1999-05-21 2010-07-14 Broadcom Corporation Stacked network switch configuration
US6401147B1 (en) * 1999-05-24 2002-06-04 Advanced Micro Devices, Inc. Split-queue architecture with a first queue area and a second queue area and queue overflow area having a trickle mode and an overflow mode based on prescribed threshold values
US6859454B1 (en) 1999-06-30 2005-02-22 Broadcom Corporation Network switch with high-speed serializing/deserializing hazard-free double data rate switching
US7315552B2 (en) * 1999-06-30 2008-01-01 Broadcom Corporation Frame forwarding in a switch fabric
US6671274B1 (en) * 1999-06-30 2003-12-30 Cisco Technology, Inc. Link list operable to increase memory bandwidth in a transmission system
US6804239B1 (en) * 1999-08-17 2004-10-12 Mindspeed Technologies, Inc. Integrated circuit that processes communication packets with co-processor circuitry to correlate a packet stream with context information
US7082133B1 (en) * 1999-09-03 2006-07-25 Broadcom Corporation Apparatus and method for enabling voice over IP support for a network switch
US6556579B1 (en) * 1999-09-21 2003-04-29 3Com Corporation Method and apparatus for detecting duplicate buffers in a descriptor based multi-port queue
US7143294B1 (en) 1999-10-29 2006-11-28 Broadcom Corporation Apparatus and method for secure field upgradability with unpredictable ciphertext
US7131001B1 (en) 1999-10-29 2006-10-31 Broadcom Corporation Apparatus and method for secure filed upgradability with hard wired public key
US7539134B1 (en) 1999-11-16 2009-05-26 Broadcom Corporation High speed flow control methodology
EP1232604B1 (en) * 1999-11-16 2003-10-15 Broadcom Corporation Method and network switch with data serialization using hazard-free multilevel glitchless multiplexing
ATE344562T1 (de) * 1999-11-18 2006-11-15 Broadcom Corp Tabellen-nachschlage-mechanismus zur adressauflösung in einer paket- netzwerkvermittlung
KR100450942B1 (ko) * 1999-11-22 2004-10-02 삼성전자주식회사 이더넷 스위치에서의 어드레스 서치 장치 및 방법
ATE265774T1 (de) * 1999-12-07 2004-05-15 Broadcom Corp Spiegelung in einer netzwerkvermittlungsstapelanordnung
US6591342B1 (en) * 1999-12-14 2003-07-08 Intel Corporation Memory disambiguation for large instruction windows
US7009973B2 (en) * 2000-02-28 2006-03-07 Broadcom Corporation Switch using a segmented ring
US6678678B2 (en) 2000-03-09 2004-01-13 Braodcom Corporation Method and apparatus for high speed table search
US7103053B2 (en) * 2000-05-03 2006-09-05 Broadcom Corporation Gigabit switch on chip architecture
US6826561B2 (en) 2000-05-22 2004-11-30 Broadcom Corporation Method and apparatus for performing a binary search on an expanded tree
US7009968B2 (en) * 2000-06-09 2006-03-07 Broadcom Corporation Gigabit switch supporting improved layer 3 switching
EP1168710B1 (en) * 2000-06-19 2005-11-23 Broadcom Corporation Method and device for frame forwarding in a switch fabric
US7126947B2 (en) * 2000-06-23 2006-10-24 Broadcom Corporation Switch having external address resolution interface
US20020027909A1 (en) * 2000-06-30 2002-03-07 Mariner Networks, Inc. Multientity queue pointer chain technique
US6999455B2 (en) * 2000-07-25 2006-02-14 Broadcom Corporation Hardware assist for address learning
US7227862B2 (en) * 2000-09-20 2007-06-05 Broadcom Corporation Network switch having port blocking capability
US7020166B2 (en) * 2000-10-03 2006-03-28 Broadcom Corporation Switch transferring data using data encapsulation and decapsulation
US7120155B2 (en) * 2000-10-03 2006-10-10 Broadcom Corporation Switch having virtual shared memory
US6851000B2 (en) 2000-10-03 2005-02-01 Broadcom Corporation Switch having flow control management
US7420977B2 (en) * 2000-10-03 2008-09-02 Broadcom Corporation Method and apparatus of inter-chip bus shared by message passing and memory access
US7274705B2 (en) * 2000-10-03 2007-09-25 Broadcom Corporation Method and apparatus for reducing clock speed and power consumption
US6988177B2 (en) * 2000-10-03 2006-01-17 Broadcom Corporation Switch memory management using a linked list structure
US7424012B2 (en) * 2000-11-14 2008-09-09 Broadcom Corporation Linked network switch configuration
US6850542B2 (en) 2000-11-14 2005-02-01 Broadcom Corporation Linked network switch configuration
US7035286B2 (en) * 2000-11-14 2006-04-25 Broadcom Corporation Linked network switch configuration
US7035255B2 (en) * 2000-11-14 2006-04-25 Broadcom Corporation Linked network switch configuration
US7324509B2 (en) * 2001-03-02 2008-01-29 Broadcom Corporation Efficient optimization algorithm in memory utilization for network applications
US7239636B2 (en) 2001-07-23 2007-07-03 Broadcom Corporation Multiple virtual channels for use in network devices
US7355970B2 (en) * 2001-10-05 2008-04-08 Broadcom Corporation Method and apparatus for enabling access on a network switch
US7295555B2 (en) 2002-03-08 2007-11-13 Broadcom Corporation System and method for identifying upper layer protocol message boundaries
US20030174718A1 (en) * 2002-03-15 2003-09-18 Broadcom Corporation Scalable packet filter for a network device
US6738833B2 (en) * 2002-04-10 2004-05-18 Broadcom Corporation Network device having a flexible EEPROM for setting configuration settings
US6816918B2 (en) * 2002-04-10 2004-11-09 Broadcom Corporation Flexible apparatus for setting configurations using an EEPROM
US6996738B2 (en) * 2002-04-15 2006-02-07 Broadcom Corporation Robust and scalable de-skew method for data path skew control
US7093038B2 (en) * 2002-05-06 2006-08-15 Ivivity, Inc. Application program interface-access to hardware services for storage management applications
US7236456B2 (en) * 2002-05-09 2007-06-26 Broadcom Corporation Using shadow Mcast/Bcast/Dlf counter and free pointer counter to balance unicast and Mcast/Bcast/Dlf frame ratio
US7286547B2 (en) * 2002-05-09 2007-10-23 Broadcom Corporation Dynamic adjust multicast drop threshold to provide fair handling between multicast and unicast frames
US7411959B2 (en) 2002-08-30 2008-08-12 Broadcom Corporation System and method for handling out-of-order frames
US7934021B2 (en) 2002-08-29 2011-04-26 Broadcom Corporation System and method for network interfacing
US7346701B2 (en) 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
US7313623B2 (en) 2002-08-30 2007-12-25 Broadcom Corporation System and method for TCP/IP offload independent of bandwidth delay product
US8180928B2 (en) 2002-08-30 2012-05-15 Broadcom Corporation Method and system for supporting read operations with CRC for iSCSI and iSCSI chimney
US6754744B2 (en) 2002-09-10 2004-06-22 Broadcom Corporation Balanced linked lists for high performance data buffers in a network device
US6907453B2 (en) * 2002-09-18 2005-06-14 Broadcom Corporation Per CoS memory partitioning
US7515592B2 (en) * 2002-10-07 2009-04-07 Broadcom Corporation Fast-path implementation for transparent LAN services using double tagging
US6728861B1 (en) * 2002-10-16 2004-04-27 Emulex Corporation Queuing fibre channel receive frames
US7298705B2 (en) * 2003-02-05 2007-11-20 Broadcom Corporation Fast-path implementation for a double tagging loopback engine
US7313137B2 (en) * 2003-02-26 2007-12-25 International Business Machines Corp. System and method for efficient replication and distribution of data objects
US7626985B2 (en) * 2003-06-27 2009-12-01 Broadcom Corporation Datagram replication in internet protocol multicast switching in a network device
US7512078B2 (en) * 2003-10-15 2009-03-31 Texas Instruments Incorporated Flexible ethernet bridge
US8127307B1 (en) * 2007-12-31 2012-02-28 Emc Corporation Methods and apparatus for storage virtualization system having switch level event processing
JP5283638B2 (ja) * 2010-01-08 2013-09-04 アラクサラネットワークス株式会社 パケット中継装置
US9860332B2 (en) 2013-05-08 2018-01-02 Samsung Electronics Co., Ltd. Caching architecture for packet-form in-memory object caching
CN113067778B (zh) * 2021-06-04 2021-09-17 新华三半导体技术有限公司 一种流量管理方法及流量管理芯片

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4813038A (en) * 1987-06-29 1989-03-14 Bell Communications Research, Inc. Non-blocking copy network for multicast packet switching
US5229991A (en) * 1991-01-30 1993-07-20 Washington University Packet switch with broadcasting capability for atm networks
US5530854A (en) * 1992-09-25 1996-06-25 At&T Corp Shared tuple method and system for generating keys to access a database
JP3104429B2 (ja) * 1992-10-08 2000-10-30 株式会社日立製作所 コピー機能を有する共通バッファ形atmスイッチ及びそのコピー方法
EP0622922B1 (en) * 1993-04-29 2000-11-29 International Business Machines Corporation Method and device of multicasting data in a communications system
US5515376A (en) * 1993-07-19 1996-05-07 Alantec, Inc. Communication apparatus and methods
US5528588A (en) * 1994-09-14 1996-06-18 Fore Systems, Inc. Multicast shared memory
US5953335A (en) * 1997-02-14 1999-09-14 Advanced Micro Devices, Inc. Method and apparatus for selectively discarding packets for blocked output queues in the network switch

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8537407B2 (en) 2009-10-23 2013-09-17 Seiko Epson Corporation Image reading device, correction method, and image processing method using an image reading device

Also Published As

Publication number Publication date
WO1998036530A1 (en) 1998-08-20
US6061351A (en) 2000-05-09
DE69823483T2 (de) 2005-04-14
JP4078446B2 (ja) 2008-04-23
EP0960504B1 (en) 2004-04-28
DE69823483D1 (de) 2004-06-03
EP0960504A1 (en) 1999-12-01

Similar Documents

Publication Publication Date Title
JP4078446B2 (ja) 探索可能なキャッシュ領域を備えるマルチコピーキュー構造
JP4078445B2 (ja) データ識別子を複製することによって複数のコピーを送信するための方法および装置
JP4603102B2 (ja) ネットワークスイッチ内のブロックされた出力キューに関するパケットを選択的に廃棄するための方法および装置
JP4166285B2 (ja) バッファを再要求するための方法および装置
US6175902B1 (en) Method and apparatus for maintaining a time order by physical ordering in a memory
US6233244B1 (en) Method and apparatus for reclaiming buffers
US6487212B1 (en) Queuing structure and method for prioritization of frames in a network switch
JP4541454B2 (ja) 受信データの関数としてデータの送信の開始を制御するための方法および装置
JP3987915B2 (ja) ネットワークスイッチとホストコントローラとの間で送信する管理パケットを合成するための装置および方法
US6618390B1 (en) Method and apparatus for maintaining randomly accessible free buffer information for a network switch
US6091707A (en) Methods and apparatus for preventing under-flow conditions in a multiple-port switching device
JP2002513530A (ja) 分割キューアーキテクチャおよびキュー方法
JP4452781B2 (ja) メモリ内の物理的順序によって時間順を維持するための方法および装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070803

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: 20071218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080116

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110215

Year of fee payment: 3

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: 20110215

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120215

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120215

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130215

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140215

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term