JP2001036582A - パケットデータスイッチ - Google Patents

パケットデータスイッチ

Info

Publication number
JP2001036582A
JP2001036582A JP2000097035A JP2000097035A JP2001036582A JP 2001036582 A JP2001036582 A JP 2001036582A JP 2000097035 A JP2000097035 A JP 2000097035A JP 2000097035 A JP2000097035 A JP 2000097035A JP 2001036582 A JP2001036582 A JP 2001036582A
Authority
JP
Japan
Prior art keywords
sequence
packet
packets
memory
received
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.)
Pending
Application number
JP2000097035A
Other languages
English (en)
Inventor
Ross T Casley
ロス・ティ・キャスリー
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.)
VSIS Inc
Original Assignee
VSIS 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 VSIS Inc filed Critical VSIS Inc
Publication of JP2001036582A publication Critical patent/JP2001036582A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

(57)【要約】 【課題】 パケットデータスイッチのスループット性能
を拡大する。 【解決手段】 パケットデータスイッチは一時的にパケ
ットを共有バッファメモリに記憶し、同一のあて先のパ
ケットを含むバッファの記憶位置をリンクして検索用シ
ーケンスを形成し、パケットを任意の入力ポートから指
示された出力ポートに受信時と同一の順序で送信する。
プロセッサはシーケンスのヘッド及びテイルの記憶位置
へのポインタを保持する。同一のあて先のパケットを含
むメモリバッファのシーケンスは選ばれた基準に基づい
てもよい。読出し/書込みメモリアクセスを減らすため
小さなキャッシュをバッファの記憶位置をリンクするデ
ータの記憶に用いる。プロセッサ、共有バッファメモリ
及びキャッシュは単一のICである。可能ならバッファ
の記憶位置に記憶されているパケットデータを読み出
し、単一のメモリアクセスで新しいパケットデータを同
一の位置に書込む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般的にはパケット
データネットワークの分野に関し、特にパケットデータ
スイッチにおいてスループットを増大させるための方法
論と装置に関する。
【0002】
【従来の技術】典型的なパケットデータスイッチにおい
ては、種々の出発地点から発生したパケットは複数の入
力ポートを介して受信される。各パケットは、例えばル
ーティングテーブル又はパケット送信プロトコルによ
り、スイッチの各出力ポートに関連付けられる、あて先
アドレスのようなルーティング情報を含む。スイッチは
受信した各パケットのルーティング情報を読み、パケッ
トをあて先アドレスにさらに伝送するために適切な出力
ポートに送信する。
【0003】パケットデータトラフィックのパターン及
びボリュームについての通常の大きさの変化により、パ
ケットデータスイッチは新規に受信したパケットを各指
示された出力ポートに即時に転送できないことがある。
この状態で、受信したパケットを各(複数の)出力ポー
トに送信できるときまで、スイッチはそれらを一時的に
記憶することができる。パケットの紛失が起こると、ソ
ースはその回復手順の一部として紛失されたパケットを
再伝送しなければならず、そのことがパケットスイッチ
の混雑した状態を長引かせる傾向があり、その結果さら
にパケットが紛失されるため、パケットの紛失は一般に
は望ましくない。
【0004】指示された出力ポートを介して即時に送信
されないパケットを一時的に記憶するように実現され
た、種々のパケットスイッチの設計がある。例えば、各
入力及び出力ポートが、移送を待つパケットを並べる専
用のメモリバッファを備えてもよい。とって代わって、
共有バッファスイッチの設計においては、単一の入力及
び/又は出力ポートのための専用のバッファを用いるよ
りは、メモリバッファの単一のプールがすべてのパケッ
トを記憶するために用いられる。特に、共有バッファの
パケットスイッチにおいては、異なった優先度のトラフ
ィックを支持するために、同一の出力ポート宛てのパケ
ットを保持するメモリバッファが1つのリンクされたリ
ストを介して互いに連結されているか、そうでないなら
ば複数のリンクされたリストを各出力ポートのために用
いる。この設計に従って、新しいパケットが記憶される
ときには、フリーなメモリバッファを各リストのバッフ
ァの現在のチェインの端部に割り当て、リンクさせる必
要がある。共有バッファの設計が、相対的にあまり多く
ないメモリサイズを要求することと、簡単さと専用のポ
ート/バッファ設計での柔軟性との利点を持つとき、そ
れの主な欠点はスイッチのスループット容量が利用可能
なメモリアクセスのバンド幅により制限されることであ
る。
【0005】ダイナミックランダムアクセスメモリ(D
RAM)は、相対的に安価で、コンパクトな形状で高い
記憶能力を提供するために、共有バッファのパケットデ
ータスイッチにおいて用いることに好適である。しか
し、パケットスイッチプロセッサとDRAMとの間の制
限されたデータバスバンド幅と、それに加えてDRAM
中での固有の行アドレスストローブ(RAS)待ち時間
により、DRAMへの読出し又は書込みアクセスのそれ
ぞれは相対的に時間を消費する傾向がある。言い換える
と、各パケットのDRAMへの記憶(書込み)又は検索
(読出し)のそれぞれが、相対的に時間がかかる。
【0006】埋め込まれたシステムの技術の、論理回路
とDRAMメモリの双方が単一の集積回路(IC)に一
体化されたことに関する最近の進歩により、読出し/書
込み動作についてプロセッサ・メモリ間のアクセススピ
ードのかなり顕著な向上が得られた。例えば本願の出願
日において、商業的に利用可能な、一体化されたDRA
Mと論理ICは、メモリバスに対して133MHzの処
理速度と256ビットの内部プロセッサとを利用でき
る。特に一体化されたDRAMと論理ICの、メモリバ
スのバンド幅に対するプロセッサ速度と中央プロセッサ
は、続く数年で急激に増大すると期待される。
【0007】
【発明が解決しようとする課題】このように、パケット
データスイッチのパケットスループットのバンド幅を増
大させるように、埋め込まれたシステムの技術により提
供された相対的に高いプロセッサ速度と読出し/書込み
バンド幅容量とを用いることが望ましい。
【0008】
【課題を解決するための手段】本発明はメモリアクセス
のオーバヘッドを減らすことにより拡大したスループッ
ト性能を有するパケットデータスイッチに関する。
【0009】好ましい実施形態において、パケットデー
タスイッチは複数の入力ポートと複数の出力ポートを有
する。各出力ポートは流入するデータパケットを受信す
るように構成されていて、データパケットは最初に各入
力ポートに関連付けられた入力キューに保持される。各
パケットに適する出力ポートは、例えばあて先のアドレ
ス、パケット型及び/又は送信の優先度のようなパケッ
トに含まれるルーティング情報に基づいて決定される。
パケットスイッチは、パケットを入力キューから選択的
に検索し、各出力ポートに関連付けられた出力キューに
パケットを進めるプロセッサを有する。受信したパケッ
トの各出力キューへの即時の送り出しが可能でないと
き、後での検索と送り出しのために、プロセッサはパケ
ットを共有バッファメモリ(例えばDRAM)に記憶す
る。
【0010】特に、同一の各出力キュー宛てのパケット
を含むメモリバッファは、パケットが後に検索される1
つ又は複数のシーケンスに選択的に互いにリンクされて
いる。シーケンスのそれぞれは、任意の与えられた入力
ポートにおいて受け取られたパケットがそれらのあて先
の出力ポートに受信されたときと同一の順序で送られる
ように形成される。プロセッサはアドレスポインタに、
各出力キューに関連付けられたレジスタに記憶されてい
るパケットの各シーケンスの各ヘッド及びテイルバッフ
ァの記憶位置を保持させる。特に、同一の各出力ポート
宛てのパケットを含むメモリの記憶位置の個別のシーケ
ンスは、優先度又はパケット型のような選択されたパケ
ット基準に基づいて形成されてもよい。
【0011】本発明の最初の態様によれば、パケットデ
ータスイッチは、与えられたシーケンスでいくつかの又
はすべてのメモリの記憶位置を互いにリンクしているバ
ッファアドレス情報を記憶するために、相対的に小さな
キャッシュ(例えば高速SRAMバッファ)を用い、こ
れによってメモリアクセスの動作を減少させる。好まし
い実施形態においてプロセッサ、共有バッファメモリ及
びキャッシュは、例えばe−RAMのような単一の集積
回路の一部として形成される。
【0012】本発明の他の態様によれば、「読出し及び
置換」メモリアクセスはプロセッサにより可能なときは
いつでも用いられる。特に、プロセッサによる単一のメ
モリアクセスの一部として、各メモリバッファの記憶位
置に記憶されているパケットデータは読出され、新しい
パケットデータが同一のバッファの記憶位置に書込まれ
る。
【0013】当業者には明らかなように、本発明の他の
態様と利点が以下に明らかにされる。
【0014】本発明の好ましい実施形態について例を用
いて説明するが、限定を目的とするものではない。添付
の図中の数字において、同一の参照番号は同一の構成要
素を示す。
【0015】
【発明の実施の形態】図1を参照すると、パケットデー
タネットワーク18の一部として用いられるパケットデ
ータスイッチ20は、多数の種々のソースアドレス25
から送信されて到来するデータパケットを受信するよう
に構成された複数の入力ポート21を含む。各パケット
に与えられたルーティング情報に基づいて、パケットス
イッチ20は、種々のあて先アドレス27にさらに伝送
するために、複数の出力ポート23の各々を介して受信
したパケットを送信する。特に、パケットデータネット
ワーク18は、イーサネット(登録商標)、ATM又は
任意の他の形式のパケットトラフィックを伝送すること
ができる。好ましくは、任意の与えられたソースアドレ
ス25から発生し同一のあて先アドレス27に送信され
るパケットは、他のソースアドレス25からのパケット
がそれらにインターリーブで差し込まれていても、初め
に送信されたときと同一の順序で各あて先アドレス27
に送られる。
【0016】図2を参照すると、パケットスイッチ20
の各入力ポート21で受信されたパケットは、入力ポー
ト21と関連付けられた各入力キュー22に保持され
る。当業者には理解されるように、パケットスイッチ2
0の入力ポート21と入力キュー22の個々の構成は、
ここに示される本発明の概念から離脱することなく変形
させることができる。例えば、各入力ポート21は受信
するパケットを保持するための1つ又は複数の専用の入
力キュー22を有することができ、又は逆に入力ポート
21は多数の可能な構成の入力キュー22を共有するこ
とができる。とって代わって、単一の入力ポ−ト21及
び/又は入力キューがすべての到来するパケットを受信
して処理するために用いられてもよい。特に入力キュー
22は物理的又は論理的であってもよい。
【0017】パケットスイッチ20は、各入力ポートキ
ュー22に保持されているパケットを、入力バス24を
介して周期的に検索するメインプロセッサ26を含む。
利用可能なスペースが存在するとき、検索されたパケッ
トは出力バス28を介して、各出力ポート23に関連付
けられた各複数の出力キュー30の1つに即時に送信さ
れる。特に、各出力ポート23は、各出力ポート23に
送り出されるパケットを保持するための、1つ又は複数
の専用の出力キューを有する。各出力ポート23に関連
付けられた出力キュー30の個々の数と形式を変化させ
ることができる。1つの好ましい実施形態において、各
出力ポート23はそれに関連付けられた単一の専用の出
力キューを有する。それにかわる実施形態では、1つ又
は複数の出力ポート23が1つ又は複数の出力キュー3
0を共有できるが、しかしこのような構成はさらに複雑
になる。好ましくは各出力ポート23は少なくとも1つ
の専用の出力キュー30を有する。入力キュー22と同
様に、出力キュー30は物理的又は論理的、又はその双
方であってもよい。
【0018】各出力キューがすべてパケットで充填され
ているとき、プロセッサ26は、関連付けられた共有バ
ッファメモリ36、好ましくはダイナミックランダムア
クセスメモリ(DRAM)に、各キュー30宛てのパケ
ットを一時的に記憶する。メモリアクセスコントローラ
34は、プロセッサ26によるメモリ36における読出
し/書込みメモリアクセスを制御する。メモリコントロ
ーラ34はまた、好ましくは高速スタティックランダム
アクセスメモリ(SRAM)である関連付けられたキャ
ッシュ40へのプロセッサ26によるアクセスを、キャ
ッシュコントローラ38を介して制御する。好ましい実
施形態においては、プロセッサ26、共有バッファ(D
RAM)メモリ36及びキャッシュ(SRAM)は、プ
ロセッサからメモリへのバンド幅を増大させるために、
例えば一体化したDRAMと論理ICのような、単一の
集積回路の一部として実現される。
【0019】特に、また図3を参照すれば、各入力ポー
ト21に到着するパケット50は、それらの各ペイロー
ドデータ58に先立つルーティング情報ヘッダ51を含
む。各パケットデータ51は(少なくとも)あて先アド
レス52、送信の優先度54及び(適用可能ならば)選
択された表示フラグを伝送するデータフィールド56を
含む。例えば表示フラグはパケットの形式、すなわちデ
ータパケット、ネットワーク管理パケットなどの形式を
表示するために用いることができる。各入力キュー22
は好ましくは、例えばアドレステーブル又は他のルーテ
ィングプロトコルに基づいて、各パケットが送信される
べき適切な出力ポート23及び出力キュー30を決定す
るための(図示せず。)関連付けられたプロセッサを有
する。そこで、指示された出力キュー30は、プロセッ
サ26による検索のために各入力キュー22に保持され
たパケットデータ58に追加される。これも当業者には
理解されるように、各入力ポートプロセッサよりもむし
ろスイッチプロセッサ26を、受信された各パケット5
0に含まれるルーティング情報ヘッダ51を評価しそこ
から適切な出力ポート23を決定するために、用いるこ
とができる。重要なことは、適切な出力ポート23が新
しく受信された各パケット50について特定されること
と、任意の与えられたソースアドレス25からの同一の
出力ポート23に向かうパケットが、スイッチで受信さ
れたときと同一の順序で送信されることである。
【0020】各入力キュー22は好ましくは、いくつか
のパケット50を保持することができ、パケットは好ま
しくはFIFOのようなそれらの受信の順序で記憶され
るが、しかしパケットは後述するように、最適化の目的
でプロセッサ26により異なる順序に検索されてもよ
い。単一の入力キュー22にはめ込むには長すぎるパケ
ットは、好ましくは各入力ポート21おいて複数の、よ
り短い「部分」パケットに分割される。同一のあて先出
力ポート23を有する個別のデータパケット50の到着
が連続であるかのように、部分パケットはパケットスイ
ッチ20に入力される。例えば、パケットヘッダ51に
含まれるフィールド56の表示フラグは、このことが発
生したことを表示するために用いることができる。いっ
たん部分パケットがそれらの各出力キュー30に送られ
ると、元のデータペイロードは各出力ポート23への送
り出しのために単一のパケットに再構成される。
【0021】図4は、i及びjを整数として、各入力キ
ューiから各出力キューjにあてたパケットを検索する
ために、プロセッサ(26)を用いることができる例示
的アルゴリズムを表す。入力キューのポーリングサイク
ルの始めにおいて(「初期化」ステップ100)、iと
jの双方は1にセットされている。ステップ102にお
いて、プロセッサは第1の入力キューをポーリングし
(すなわち、入力キューi=1)、そこに保持されてい
るパケットを読出し(ステップ104)、出力キューに
向かうパケットの有無を決定する(ステップ106)。
出力キューj=1あての1つ又は複数のパケットが、入
力キューi=1に保持されているとき、(複数の)パケ
ットは各出力キューjに進められ、又は、必要ならば、
一時的にメモリ(36)に記憶される(ステップ10
8)。入力キューi=1に保持されている出力キューj
=1宛てのパケットが存在しないとき、プロセッサはス
テップ108にスキップする。
【0022】特に図5を簡単に参照すると、プロセッサ
は(複数の)パケットの中に各出力キュー(30)に即
時に転送できるものが存在するか否かを決定する(ステ
ップ103)。言い換えると、プロセッサは各出力キュ
ーが輻輳して満杯になっているか否か、又は以前受信し
た同一の出力キュー宛てのパケットがメモリ(36)か
らの検索を待っているか否かを検査してみる。もしYE
Sならば(すなわち、各出力キュー宛てのパケットで現
在メモリに記憶されているものが存在せず、出力キュー
が現在輻輳して満杯になっていないならば)、そのとき
(複数の)パケットはプロセッサにより出力キューj=
1に送信される(ステップ105)。1つ又は複数のパ
ケットが即時に転送できないとき、これらのパケットは
メモリ(36)に記憶される。特に、出力キューj=1
あてのただ1つのパケットが入力キューi=1に保持さ
れているならば、それはプロセッサによる読出し/書込
みメモリアクセスの一部として記憶され(ステップ10
9)、このことが以下に詳述される。出力キューj=1
あての1つより多くのパケットが入力キューi=1に保
持されているならば、パケットは好ましくは「バースト
モード」シーケンスで記憶され、このことも以下に詳述
される。
【0023】再び図4を参照し、ステップ110におい
てプロセッサは、各入力キュー(すなわち、i=1)が
すべての出力キューjにポーリングされているか否か、
すなわち、j≧出力キューの総数、であるか否かを決定
する。もしYESならば、そのときプロセッサはステッ
プ114に向かう。もしNOならば、すなわち、もし、
j<出力キューの総数、ならばそのときjはインクリメ
ントされ(ステップ112)、ステップ106及び(も
し適用可能ならば)108は他の各出力キューについて
(すなわち、j=2、j−3、j=4などについて)、
ステップ110の結果が「YES」になるまで繰り返さ
れる。
【0024】プロセッサは次に、すべての入力キューが
個々のポーリングサイクルでポーリングされるか否か、
すなわち、i≧入力キューの総数、であるか否かを決定
する(ステップ114)。もしYESなら、そのときプ
ロセッサはステップ118に向かう。もしNOならば、
すなわち、もし、i<出力キューの総数、ならばそのと
きiはインクリメントされ(ステップ116)、ステッ
プ104、106及び(もし適用可能ならば)108及
び114は他の各出力キューについて(すなわち、j=
2、j−3、j=4などについて)繰り返される。いっ
たん各入力キューが各出力キューのために保持されてい
るパケットにポーリングされたならば(すなわち、ステ
ップ114の結果が「YES」のとき)、新しいポーリ
ングサイクルがステップ118において初期化される。
【0025】当業者には理解されるように、各入力キュ
ー(22)が各出力キュー(30)宛てのパケットにポ
ーリングされた固有の順序と周波数は、ここに述べられ
ている本発明の概念から離脱することなく変化できる。
例えば、ネットワーク18におけるトラフィックパター
ンは、ある入力ポートで受信されることで、又はある出
力ポートに向かうことで相対的により大きなパケットト
ラフィックになることがある。したがって、ある入力キ
ューをポーリングすること、又は固有の出力キュー宛て
のパケットに他よりも頻繁にポーリングすることは望ま
しいことがある。他の例において、受信されたパケット
をパケット型及び/又は優先度にしたがって各入力キュ
ーに保持することができ、そこにおいてあるパケット型
又は優先度に他よりも頻繁にポーリングすることが望ま
しい。
【0026】当業者には理解されるように、任意の与え
られた瞬間に、スイッチ20はメモリ36に、任意の与
えられた出力ポートキュー30あてのいくつかのパケッ
トを記憶することができる。以下に詳述されるように、
各出力ポートキュー30宛てのパケットはメモリバッフ
ァの各リンクされたシーケンスに記憶され、そこからパ
ケットは、各出力キューの中のスペースが利用可能であ
るとき、プロセッサ26により選択的に検索される。
【0027】この目的で、図6及び図7を参照すると、
プロセッサ26は、各出力キュー30宛てのパケットを
含むメモリバッファの3つの個別のシーケンスをトラッ
クアップするための、各出力キュー30のための複数の
データレジスタ31を保持する。特に、レジスタ33、
35、37の第1の集合は、各出力キュー宛てのパケッ
トを含むバッファの「メイン」シーケンスをトラッキン
グするために用いられる。レジスタ43、45、47の
第2の集合は、各出力キュー宛てのパケットを含むバッ
ファの「拡張」シーケンスをトラッキングするために用
いられる。レジスタ53、55、57、59及び61の
第3の集合は、単一の入力キュ−から受信され同一の各
出力キューに送られるパケットを含むバッファの「バー
スト」シーケンスをトラッキングするために用いられ
る。
【0028】説明のために、図8は例示的な、各出力キ
ュー宛てのパケットを含むバッファの「メイン」シーケ
ンス65を表している。特に、メインシーケンス65
は、それぞれ各パケット70、76、82、88及び9
4を含む、複数のリンクされたバッファの記憶位置7
2、78、84、90及び96を含み、そこにおいてバ
ッファの記憶位置72はシーケンス65の「ヘッド」で
あり、バッファ96はシーケンス65の「テイル」であ
る。各パケット70、76、82、88及び94に、各
「次のバッファ」データフィールド74、80、86、
92及び98が追加されている。本発明の一つの態様に
よれば、各次のバッファフィールドは、シーケンスの次
の各バッファの記憶位置へのアドレスポインタを記憶す
るために用いられる。とって代わって、シーケンスの連
続したバッファの記憶位置はキャッシュ40に記憶して
もよい。
【0029】特に、シーケンス65のバッファの記憶位
置72、78、84、90及び96は以下のようにリン
クされている。バッファ72中のパケット70に追加さ
れた次のバッファフィールド74は、バッファ78への
ポインタ(例えばDRAMメモリにおけるバッファ行/
列アドレス)を含む。バッファ78をバッファ84にリ
ンクするエントリはキャッシュ40に記憶される。バッ
ファ84中のパケット82に追加された次のバッファフ
ィールド86は、バッファ90へのポインタを含む。バ
ッファ90をバッファ96にリンクするポインタはキャ
ッシュ40に記憶される。図6も参照すると、プロセッ
サ26は、シーケンス65のパケットが宛てられる各出
力キュー(30)に関連付けられているレジスタ31
の、「ヘッド」レジスタ33にバッファ72を、「テイ
ル」レジスタ35にバッファ96をそれぞれ保持する。
プロセッサはまた対応するシーケンス「長さ」レジスタ
37に「5」の値(すなわち、シーケンス65に記憶さ
れたパケットの数に対応している)を入力する。
【0030】また図2に関し、パケットは記憶されてい
るシーケンス65から以下のように検索される。
【0031】プロセッサ26は、例えば通常のポーリン
グ処理の一部として、各出力キュー30のためのシーケ
ンスレジスタ31を調べる。シーケンスヘッドレジスタ
33に記憶されているアドレスに基づいて、プロセッサ
26はDRAMメモリ36(ここに詳述されている)へ
の単一の読出し/書込みアクセスの一部としてバッファ
72にアクセスし、パケットデータ70と次のバッファ
情報74を検索する。同時に、プロセッサ26は、バッ
ファ72から他のメモリの記憶位置へのリンクがキャッ
シュ40の中に保持されているか否かを決定するため
に、(メモリコントローラ34を介して)キャッシュコ
ントローラ38をポーリングする。検索されたパケット
70は各出力キュー30に送信される。キャッシュ40
に記憶されているメモリの記憶位置72のリンクデータ
が存在しないとき、(シーケンス75中のバッファ72
のための場合)プロセッサはバッファ78を反映させる
ためにシーケンスヘッドレジスタを更新する。キャッシ
ュ40中にバッファ72にリンクされたメモリの記憶位
置アドレスが存在するならば、そのときこのアドレスデ
ータは次のバッファデータ74をオーバライドし、シー
ケンスヘッドレジスタ33に記憶される。例えば、これ
はパケットデータ76及び次のバッファデータ80がバ
ッファ78から検索されるときの場合である。特にバッ
ファ78からバッファ84へのリンクはキャッシュに記
憶され、次のバッファフィールド80のリンクデータを
オーバライドする。任意のイベントにおいて、パケット
がシーケンスから読み出される毎に、シーケンス長さレ
ジスタ37はデクリメントされる。
【0032】メインシーケンス65から記憶されている
パケットを検索するこのプロセスは、それぞれ連続的に
リンクされたメモリの記憶位置(すなわちバッファ8
4、90、96)毎に繰り返される。ここに詳述されて
いる通り、各出力キュー宛てのパケットを含む他のバッ
ファは、メインシーケンス65のテイルに周期的に付加
される。特に、メインシーケンス65は各出力キュー3
0へのトラフィックの負荷により長さが変化する。ある
場合においては、すべてのパケットがシーケンスから読
み出され(すなわちレジスタ33、35及び37のそれ
ぞれが0の値を取り)、他のときにはシーケンスは相対
的に大きいことがある。当業者には理解されるように、
本発明の概念から離脱することなく、種々の記憶されて
いるシーケンスからパケットを検索し、それらを各出力
キューに送信する、多くのさらに種々のポーリングスキ
ームが可能である。
【0033】特にキャッシュ40は、パケットが各メモ
リバッファから読み出される毎に、任意のアドレスリン
クデータのために検査されなければならない。これは、
パケットが最初にメモリ36に記憶されているときに、
どんなリンク情報(すなわちアドレスポインタ)に各次
のバッファフィールドを追加するかは常には知られてい
ないためである。このような場合には、次のバッファフ
ィールドはランダムビットを含むのみで、リンク情報は
後で付加されなければならない。本発明のこの態様によ
れば、パケットが各メモリバッファに書込まれたときに
アドレスリンク情報が知られていなければ、後に決定さ
れたアドレスリンクは可能ならばキャッシュ40に記憶
される。この戦略は、各次のバッファフィールドにリン
ク情報を書込むために、同一のバッファにメモリアクセ
スをさらに実行しなければならないことを回避する。
【0034】本発明の他の態様によれば、各パケット
(及び次のバッファ)データを読み出すためにメモリバ
ッファがアクセスされる毎に、新しいパケット(及び新
しい次のバッファ)データが同一のバッファに読み込ま
れる、すなわちスイッチは「読出し及び置換」メモリア
クセスを用いる。このような「読出し及び置換」メモリ
アクセスは標準のDRAMアクセス機器を変形すること
で可能になる。
【0035】特に、共通のDRAMの構成において、デ
ータ信号は双方向的である。読出しサイクルの間は、デ
ータ信号はRAMに記憶される新しいデータに対して外
部にセットされる。逆に、書込みサイクルの間は、デー
タ信号は現在のデータを伝送し、DRAMにより制御さ
れる。このように、バッファに記憶されて現在のデータ
を検索し、それを新しいデータで上書きするためには、
一般に2つのDRAMアクセスが必要とされる。しかし
双方向性信号を個別の読出し及び書込み信号で置換する
ことは、アドレスがアクセスされるのと同時に置換デー
タを供給することができる圧縮されたサイクルの使用を
可能にする。
【0036】(間欠的で不規則な発生を除いて)各バッ
ファの記憶位置から読み出されているパケットのあて先
アドレスと、各バッファの記憶位置に読み込まれている
パケットのあて先アドレスとの間が無関係であることが
必要である。これは、記憶されているパケットの各リン
クされたシーケンスが、任意の与えられた入力又は出力
キューのためのどの特別なバッファの記憶位置にも結合
されていないためである。
【0037】もちろん、新しく受信されたパケットでメ
モリに書込まれる必要のあるものが存在しないとき、す
なわち入力キューが空であるか、さもなければ出力キュ
ーがパケットを直接受信することができるときに、パケ
ットデータが各バッファの記憶位置の外に書込まれるこ
とが可能である。この場合、開放されたバッファは、メ
モリコントローラ34により管理されているフリーなバ
ッファの記憶位置のリンクされたリストに付加される。
逆に、メモリに記憶されているパケットが存在しない場
合が生じることがあり、又はさもなければ新しいパケッ
トがメモリに書込まれるべきときに、パケットを受信で
きる出力キューが存在しないことも有りうる。この場
合、書込みプロセスの一部として、新しいバッファがフ
リーなバッファの記憶位置のリンクされたリストから配
置される。
【0038】別の実施形態において、行アクセス待ち時
間に陥らないことによりさらにずっと能率的である、連
続的な読出し及び書込みアクセスを、読出し及び置換ア
クセスの代わりに用いてもよい。
【0039】図9、図10及び図11を図7と関連させ
て一般的に参照すると、各出力キュー(30)宛てのパ
ケットを含むバッファの記憶位置の拡張シーケンス67
の形成が図示されている。説明を簡略化するために、各
出力キュー30は図8に図示されているメインシーケン
ス65と同一であると仮定される。
【0040】図9を参照すると、ある入力ポート21で
受信され各出力キュー30に宛てられたパケット130
は、各入力キュー22から検索され、メモリ36中のバ
ッファの記憶位置132に記憶される。このステップと
関連して、プロセッサはバッファの記憶位置132のバ
ッファアドレスを、それぞれ各出力キュー30に関連付
けられた拡張ヘッドと拡張テイルレジスタ43及び45
の双方に記憶する。特に、バッファの記憶位置132は
初期値としては拡張シーケンス67のヘッドとテイル双
方である。プロセッサ26は拡張シーケンス67の長さ
を拡張長さレジスタ63に記憶する。初期値としてはも
ちろん、拡張シーケンス67の長さはただ一つのバッフ
ァである。プロセッサ26はまた、入力ポート21のど
こでパケット130が受信されたかを表示するために、
ビットマスクレジスタ47にフラグをセットする。特
に、拡張シーケンス67中に余分に記憶されている指示
すべきパケットが目下存在しないために、最初は有用な
情報をバッファ132中のパケットデータ130に追加
された「次のバッファ」フィールド134に書込むこと
ができない。
【0041】図10を参照すると、パケット130と同
一の出力ポートあての別のパケット140が、メモリ3
6に記憶されることになっている。プロセッサは最初、
パケット140がパケット130と同一の入力ポートで
受信されたか否かを決定するために、検査レジスタ47
により検査する。パケット140が異なる入力ポートで
受信されたと仮定すると、それはプロセッサ26により
フリーなバッファ142に記憶される。同一の書込みア
クセスの間、バッファ132へのアドレスポインタ14
4は、記憶されているパケットデータ140に追加され
た次のバッファフィールドに書込まれる。次いで、プロ
セッサは、バッファ142を拡張シーケンス67の新し
いヘッドとして反映し、現在拡張シーケンス67に総計
2つのパケットが存在することを反映するために、各拡
張シーケンスヘッド43及び長さ63レジスタを更新す
る。レジスタフィールド45はバッファ132を拡張シ
ーケンス67のテイルとして反映しつづける。プロセッ
サ26はまた、他の各入力ポート21のどこでパケット
140が受信されたかを表示するために、ビットマスク
レジスタ47に別のフラグをセットする。
【0042】図11を参照すると、パケット130及び
140と同一の出力キューあてであるが、パケット13
0及び140とさらに異なる入力ポートで受信されたさ
らに異なるパケットが、プロセッサ26によりメモリ3
6にバッファ152において記憶される。同一の書込み
アクセスにおいて、バッファ142へのアドレスポイン
タは、バッファ152中のパケット150の端部に追加
された次のバッファフィールド154に書込まれる。次
いで、プロセッサ26は、バッファ152を拡張シーケ
ンス67の新しいヘッドとして反映し、現在拡張シーケ
ンス67に総計3つのパケットが存在することを反映す
るために、各拡張シーケンスヘッド43及び長さ63レ
ジスタを更新する。レジスタ45はバッファ132の記
憶位置を拡張シーケンス67のテイルとして保持しつづ
ける。さらにプロセッサ26はまた、どの入力ポート2
1でパケット150が受信されたかを表示するために、
ビットマスクレジスタ47にさらに別のフラグをセット
する。
【0043】上の例から気づかれるように、それぞれ拡
張シーケンスを形成するために、バッファ142のアド
レスはバッファ132の前に追加され、バッファ152
のアドレスはバッファ142の前に追加される。このこ
とはメモリ36への単一の書込みアクセスに、各パケッ
トデータを記憶することと、追加された次のバッファフ
ィールドに各既知のアドレスポインタを記憶することの
双方を許す。もちろんパケット130、140及び15
0は、結局、プロセッサ26により検索され、各メモリ
バッファ132、142及び152に記憶されたときと
逆の順序で各出力キュー30に送信される。しかし、パ
ケット130、140及び150は異なる入力キュー2
1で受信されたため、各出力キュー30に異なる順序で
伝送されることは問題ではない。
【0044】図12を参照すると、パケット130、1
40及び150と同一の出力キューあてのさらに別のパ
ケット160が、プロセッサ26によりメモリ36に記
憶するために検索される。しかし、同一の各入力ポート
21のためのフラグがすでに拡張マスクレジスタ47に
セットされている事実から決定されるように、パケット
160はパケット130、140又は150の1つ(い
ずれであるかは問題ではない)と同一の入力ポートにお
いて受信された。パケット160を、同一の入力ポート
21から早く時間内に受信された任意のパケットの前
に、各出力キュー30に送信する必要がないために、そ
れが記憶されているバッファを拡張シーケンス67のヘ
ッドの前に追加することができない。そのかわり、現在
の拡張シーケンス67はメインシーケンス65のテイル
の端部に追加される。次いで、パケット160が記憶さ
れているフリーなバッファは新しい拡張シーケンスを開
始する。
【0045】説明の簡略化のために、パケット160が
バッファ162に記憶されるときに、バッファ90及び
96にそれぞれ記憶されるパケット88及び94のみ
が、メインシーケンス65に残り、バッファの記憶位置
90がシーケンスヘッドレジスタ33に保持され、バッ
ファの記憶位置96がシーケンスヘッドレジスタ35に
保持されると仮定される。この瞬間、シーケンス長さレ
ジスタ37は「2」にセットされる。バッファ152の
アドレスをバッファ96中のパケット94に追加するた
めに、個別の書込みアクセス、すなわちパケット94に
追加された次のバッファフィールド98中のバッファ1
52へのアドレスポインタを書込むことが実行される。
【0046】しかしながら図12に図示されるように、
この付加的なメモリアクセスステップを除去するため
に、バッファ96からバッファ162へのアドレスリン
クは、スペースが利用可能ならば好ましくはキャッシュ
40に記憶される。この目的で、プロセッサ26はま
ず、キャッシュ40中のスペースが利用可能であるか否
かを決定するためにキャッシュコントロ−ラ38に質問
する。そうであれば、バッファ96からバッファ152
へのアドレスリンクはキャッシュ40に記憶され、メモ
リ36への付加的な書込みアクセスは要求されない。し
かしキャッシュに室が存在しなければ、そのとき次のバ
ッファフィールド98にリンク情報を書込むために、メ
モリアクセスを実行しなければならない。どちらの場合
にも、プロセッサ26は、バッファ132をメインシー
ケンス65の新しいテイルとして、「5」をメインシー
ケンス65の新しい長さとしてそれぞれ示すように、各
メインシーケンスレジスタ35及び37を更新する。特
に、新しいテイルの記憶位置132が拡張テイルの記憶
位置45から獲得され、長さレジスタ37は拡張長さレ
ジスタにおける長さの値によりインクリメントされる。
【0047】一方、パケット160はフリーなメモリの
記憶位置162に記憶される。特に、パケット160は
最初メモリ36に書込まれることが既知であるため、バ
ッファ162中のパケット160に追加される次のバッ
ファフィールド164は、いかなる有用なアドレスポイ
ンタ情報も含まない。各拡張シーケンスヘッド、テイル
及び長さレジスタ43及び45は、図12で67’とし
て示されている「新しい」拡張シーケンスのヘッド及び
テイル双方としてバッファ162を反映するように更新
される。拡張マスクレジスタ47は、パケット160の
入力ポートソースを表示するフラグを除いてリセットさ
れる。拡張長さレジスタ63は「1」とセットされる。
【0048】拡張シーケンスを形成し、拡張リスト67
をメインシーケンスに周期的に追加し、新しい拡張リス
トを開始する上記プロセスは、その後繰り返される。当
業者には理解されるように、記述されたプロセスは、各
パケットシーケンスを形成しトラッキングするために必
要なメモリ書込みアクセス動作を有利に最小化する。
【0049】特に与えられたソースアドレスはしばし
ば、パケットのバーストを単一のあて先アドレスに伝送
する。この理由により、各入力キュー22はバーストの
存在、すなわち同一のあて先アドレス27を有する2つ
又はそれ以上のパケットの受信を検出する機構を好まし
くは備えている。特に、入力キュー22が、同一のあて
先出力キュー30にアドレスされたパケットの連続なバ
ーストを含むとき、パケットはメモリ36に逆の順序で
転送される。これは、メモリに記憶された最初のパケッ
トがバーストの最後のパケットで、記憶された最後のパ
ケットが最初に受信されたものということである。
【0050】好ましい実施形態において、同一の入力キ
ュー22において受信され同一の出力キュー30に宛て
られたパケットのバーストからのパケットを含むバッフ
ァは、最初はメモリにおいて個別のシーケンスとしてリ
ンクされている。次いで、バーストが完全に記憶された
とき、この「バースト」シーケンスはメインシーケンス
に追加される。
【0051】説明のために、図13は、同一の入力ポー
ト21において受信され同一の出力キュー30に宛てら
れたパケット190、180、170の各バーストを記
憶する、リンクされたメモリバッファ172、182及
び192のバーストシーケンス69の形成を図示してい
る。特に、パケットは入力ポートにおいて昇順で、すな
わち、最初にパケット170、次いで、パケット18
0、次いで、パケット190の順に受信された。図4及
び図5を参照すれば、上述のように、プロセッサ26が
各入力キューをポーリングするとき、それはパケット1
70、180及び190のバーストの存在を検出する。
パケットが各出力キュー30に即時に転送できないこと
を仮定すると、プロセッサは最初に、最後に受信された
パケット190をフリーなメモリバッファ172に記憶
する。
【0052】このステップと関連して、プロセッサはバ
ッファ172のアドレスを、それぞれ出力キュー30に
関連付けられたバーストヘッド及びバーストテイルレジ
スタ53及び55に記憶する。特に、バッファの記憶位
置172は初期値としてはバーストシーケンス69のヘ
ッド及びテイルの両方である。プロセッサ26はバース
トシーケンスの長さをバースト長さレジスタ63に記憶
する。初期値としてはもちろん、バーストシーケンス6
9の長さはただ1つのバッファである。プロセッサ26
はまた、パケット170、180及び190のソース入
力ポートをバーストポートレジスタ61に記録する。
【0053】同一の出力キュー30のための拡張リスト
67(もし存在すれば)のシーケンスヘッドバッファへ
のポインタはレジスタ43から得られ、同一の書込みア
クセスの一部として、バッファ172中のパケット19
0に追加された「次のバッファ」フィールド194に書
込まれる。これは、バーストシーケンスが完了したとき
に、各出力キュー30のためのメインシーケンス65に
追加されているためである。この場合であれば、メイン
シーケンス65(すなわちバッファの記憶位置172)
の(潜在的な)新しいテイルから拡張シーケンスのヘッ
ドまでのアドレスリンクは、すでに存在する。バースト
シーケンスが、現在のメインシーケンスのテイルに直接
に追加されないとき、次のバッファフィールド194の
アドレスポインタは上書きされる。次のバッファフィー
ルド194に書込まれた情報をトラッキングするため
に、各出力キュー30に関連付けられたバーストネクス
トレジスタ59も、現在の拡張シーケンスバッファ(す
なわち拡張ヘッドレジスタ43から得られる)のバッフ
ァアドレスにセットされる。
【0054】次いで、パケット180は別のフリーなバ
ッファ182に記憶され、同一の書込みアクセス動作の
一部として、バッファ172へのアドレスポインタは追
加された次のバッファフィールド184に書込まれる。
その瞬間、バッファ182はレジスタ53のバッファ1
72を各バーストシーケンス69のヘッドとして置換
し、バーストシーケンス長さレジスタ57は「2」にイ
ンクリメントされる。バーストテイルレジスタ55、バ
ーストポートレジスタ61及びバーストネクストレジス
タ69は、当面は変更されずに残る。
【0055】次いで、最初に受信されたパケット170
は、別のフリーなバッファ192に記憶され、同一の書
込みアクセス動作の一部として、バッファ182へのア
ドレスポインタは追加された次のバッファ領域174に
書込まれる。その瞬間、バッファ192はレジスタ53
のバッファ182を各バーストシーケンス69のヘッド
として置換し、バーストシーケンス長さレジスタ57は
「3」にインクリメントされる。再び、バーストテイル
レジスタ55、バーストポートレジスタ61及びバース
トネクストレジスタ69は、少しの間変更されずに残
る。
【0056】パケット170、180及び190のすべ
てのバーストが今記憶されたことを認識すると、次い
で、プロセッサは、同一の入力ポート21で受信された
任意のパケットが同一の各出力キュー30のための対応
する拡張シーケンス67に記憶されたか否かを決定する
ために、バーストポートレジスタ61を拡張マスクレジ
スタ47と比較する。もしそうでないならば、そのとき
バーストシーケンス69は、各出力キューのための現在
のメインシーケンス65に追加される。この目的で、メ
インシーケンス65のテイルバッファの記憶位置(例え
ば図8のバッファ96又は図12のバッファ132)か
ら、バーストシーケンス69のヘッドバッファ192へ
のアドレスリンクが生成される。好ましくはこれは各ア
ドレスリンクをキャッシュ40に記憶することで達成さ
れる。しかしこれが可能でないならば、リンクは、現在
のメインシーケンス(例えば図8のフィールド98又は
図12のフィールド134)の各テイルバッファに追加
された次のバッファフィールドに、ひき続くメモリ書込
みアクセスで書込む必要がある。いったんリンクが確立
されると、各メインシーケンステイル及び長さレジスタ
35及び37はそれに応じて更新される。特に次のバッ
ファフィールド194は、それまでに拡張シーケンスヘ
ッドバッファへのアドレスポインタを含む。
【0057】しかし、対応する拡張シーケンス67に記
憶されている、同一の各入力ポートからのパケットが存
在することを拡張マスクレジスタが示しているならば、
そのとき拡張シーケンス67は、バーストシーケンス6
9の前にメインシーケンス65に追加されなければなら
ない。この場合、次のバッファフィールド194のアド
レスポインタは、好ましくはキャッシュ40において確
立された新しいリンクにより上書きされる。同様に、拡
張シーケンス67が追加されるときの前に第2のバース
トシーケンスがメインシーケンス65に追加されたなら
ば、次のバッファフィールド194のアドレスリンクは
上書きされる、すなわちバッファ172を第2のバース
トの各ヘッドバッファにリンクする必要がある。
【0058】とって代わる実施形態において、同一の入
力ポートから受信されたパケットが各出力キューにおい
て受信されたときと同一の順序を保持することを保証す
るために、任意の現在の拡張シーケンス67を、バース
トシーケンス69を追加することの前に各メインシーケ
ンス65にルーチンの通りに追加することができる。
【0059】各メモリアドレスのリンク情報を記憶する
ためにキャッシュ40を用いることの利点は、メモリ書
込みアクセスを減少させるということを注意すべきであ
る。読出しアクセスは影響を受けない。それ故、「ライ
トスルー」キャッシュ構成は有用でなく、すなわちライ
トバックキャッシュ型のみが有用である。
【0060】当業者には理解されるように、キャッシュ
の機構は、柔軟性と、速い情報検索及び記憶装置の能率
との間で基本的なトレードオフを必要とする。好ましい
実施形態において、セットアソシエイトキャッシュ(se
t associate cache)機構が用いられる。この機構にお
いて、キャッシュメモリは「セット」の数に組織され、
各セットはリンクの数を保持する能力を有する。一般
に、セットは2、4又は8個のエントリのためのスペー
スを有する。メモリ36中の各アドレスは、キャッシュ
中の1つのセットに関連付けられる。このように、特定
のメモリバッファからのアドレスリンクを、各メモリバ
ッファに関連付けられたキャッシュセットに記憶する必
要がある。キャッシュに必要な高速SRAMの量を最小
化するために、各キャッシュセットは好ましくは多数の
DRAMメモリバッファアドレスからのエントリを処理
する。一方、与えられたバッファアドレスに関連付けら
れたセット中のすべてのキャッシュエントリが使用され
ているならば、そのとき他のセットに利用可能なスペー
スが存在したとしても、そのバッファアドレスにおける
新しいポインタはキャッシュに記憶されない。当業者に
は明らかなように、他の多くのキャッシュの戦略と機構
を本発明の概念から離れずに用いることができる。
【0061】例えば、新しいアドレスリンクのための室
を作るために、キャッシュ40に記憶されている現在の
アドレスリンクを上書きすることは望ましい。もちろ
ん、上書きされているアドレスリンクはメモリ36に
(すなわち適切な各次のバッファフィールドに)書込ま
れなければならず、それ故、このアプローチは上書きさ
れるメモリ書込みアクセスエントリをセーブしない。各
キャッシュエントリは、いわばエントリがその一部であ
る個々の出力キュー30に関連付けられる。
【0062】本発明のシミュレーションにおいて、最も
長いシーケンスを有する出力キュー30のためのエント
リをライトバックすることは合理的な戦略であることが
発見され、このことはおそらく書き出される最良の候補
は最も長い時間アクセスされるものではないためであ
る。現在この結果は、相対的に短いシーケンスの一部で
あるキャッシュアドレスリンクが長いシーケンスにある
ものよりもより速やかに用いられるという事実によると
信じられている。メモリ書込み動作は、キャッシュリン
クがデータ検索ステップのときまで保持されることがで
きるときのみ回避されるために、用いられる最尤の可能
性(すなわち後に新しいリンクにより置換される代わり
に)を有するそれらのキャッシュアドレスリンクが好ま
しくは保たれる。当業者には理解されるように、どのキ
ャッシュエントリが上書きされるべきかという評価の一
部として、より複雑なスキームが、与えられたキャッシ
ュアドレスリンクがそのシーケンスのヘッドにどれほど
近いかを決定(又は評価)する。
【0063】本発明の好ましい実施形態とアプリケーシ
ョンが図示されかつ説明されているが、当業者には明ら
かなように、多くの変形例や応用例が本発明の概念から
離脱することなく可能である。
【0064】このように、開示された本発明の範囲は、
添付された請求項に従うことを除いては限定されない。
【図面の簡単な説明】
【図1】 パケットデータネットワークの一部として実
現されたパケットデータスイッチの簡単化されたブロッ
ク図である。
【図2】 複数の入力ポート、複数の出力ポート、スイ
ッチプロセッサ及び共有バッファメモリを有する、パケ
ットデータスイッチの簡単化された機能のブロック図で
ある。
【図3】 図1のネットワークで用いられるデータパケ
ット例を表す図である。
【図4】 受信したパケットのための各入力キューをポ
ーリングし、パケットを各出力キューに送り、必要なら
ば受信したパケットをメモリに一時的に記憶することを
含む、スイッチプロセッサにより利用される処理例を説
明する図である。
【図5】 図4の続きである。
【図6】 プロセッサにより保持されるデータレジスタ
を表す簡単化された機能のブロック図である。
【図7】 各出力ポートキューに関連付けられた、スイ
ッチプロセッサ中のデータレジスタの例示的なブロック
を表す図である。
【図8】 各出力ポートキュー宛てのパケットを含む、
メモリの記憶位置のリンクされたシーケンスを表す図で
ある。
【図9】 リンクされた拡張リストの、図8のパケット
のシーケンスへの形成を表す図である。
【図10】 図9の続きである。
【図11】 図10の続きである。
【図12】 図11の拡張リストの図7のシーケンスへ
のリンクを表す図である。
【図13】 各入力ポートキューにおいて単一のバース
トで受信され、同一の各出力ポートキューに送られるパ
ケットを含むメモリの記憶位置のシーケンスを表す図で
ある。
【符号の説明】
18…パケットデータネットワーク、 20…パケットデータスイッチ、 21…入力ポート、 22…入力ポートキュー、 23…出力ポート、 24…入力バス、 25…出発地のアドレス、 26…プロセッサ、 27…あて先のアドレス、 28…出力バス、 30…出力ポートキュー、 31…データレジスタ、 33…ヘッド、 35…テイル、 36…バッファメモリ、 37…長さ、 38…キャッシュコントローラ、 40…キャッシュ、 45…拡張テイル、 47…拡張マスク、 50…パケット、 51…ヘッダー、 52…あて先のアドレス、 53…バーストヘッド、 54…優先度、 55…バーストテイル、 56…フラグ、 57…バースト長さ、 58…データ、 59…バーストネクスト、 61…バーストポート、 63…拡張長さ、 65…メインシーケンス、 67…拡張シーケンス、 67’…新しい拡張シ−ケンス、 69…バーストシーケンス、 70,76,82,88,94,130,140,15
0,160,170,180,192…パケット、 72,78,84,90,96,132,142,15
2,162,172,182,192…パケットデー
タ、 74,80,86,92,98,134,144,15
4,164,174,184,194…次のバッファ。

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 複数の出力ポートと、 複数のデータパケットを受信するように構成された複数
    の入力ポートとを備え、それぞれのパケットは各出力ポ
    ートに関連付けられたあて先アドレスを含み、 メモリと、 受信した複数のパケットを上記メモリに選択的に記憶
    し、上記メモリに記憶されているパケットを検索し、そ
    れらを指示された出力ポートに送信するプロセッサとを
    備え、 各出力ポートあての複数のパケットを含むメモリの記憶
    位置は、上記複数のパケットがそこで上記メモリから検
    索されるシーケンスを形成するように互いにリンクさ
    れ、 記憶された別のパケットが上記各シーケンスですでに記
    憶された任意のパケットと同一の入力ポートにおいて受
    信されないときに、同一の各出力ポートあての上記記憶
    された別のパケットの上記メモリの記憶位置は、上記各
    シーケンスの始めにおいて付加されるパケットデータス
    イッチ。
  2. 【請求項2】 上記プロセッサ及びメモリは単一の集積
    回路の一部として形成される請求項1記載のパケットデ
    ータスイッチ。
  3. 【請求項3】 与えられたシーケンスの一部として、各
    メモリの記憶位置を互いにリンクするデータを記憶する
    ために選択的に用いられるキャッシュをさらに備える請
    求項1記載のパケットデータスイッチ。
  4. 【請求項4】 上記プロセッサ、メモリ及びキャッシュ
    は単一の集積回路の一部として形成される請求項3記載
    のパケットデータスイッチ。
  5. 【請求項5】 上記メモリはダイナミックランダムアク
    セスメモリ(DRAM)である請求項1記載のパケット
    データスイッチ。
  6. 【請求項6】 プロセッサにより単一のメモリアクセス
    の一部として、各メモリの記憶位置に記憶されているパ
    ケットデータが読み出され、新しいパケットデータが同
    一の記憶位置に書込まれる請求項5記載のパケットデー
    タスイッチ。
  7. 【請求項7】 同一の各出力ポートあての複数のパケッ
    トを含む、複数のメモリの記憶位置の個別のシーケンス
    は、選択されたパケット基準に基づいて形成される請求
    項1記載のパケットデータスイッチ。
  8. 【請求項8】 それぞれのパケットは指示された優先度
    をさらに含み、各出力ポートあての複数のパケットを含
    む複数のメモリの記憶位置の個別のシーケンスは、パケ
    ットの優先度に基づいて形成される請求項7記載のパケ
    ットデータスイッチ。
  9. 【請求項9】 複数の出力ポートと、 複数のデータパケットを受信するように構成された複数
    の入力ポートとを備え、それぞれのパケットは各出力ポ
    ートに関連付けられたあて先アドレスを含み、 メモリと、 受信した複数のパケットを上記メモリに選択的に記憶
    し、上記メモリに記憶されている複数のパケットを検索
    し、それらを指示された出力ポートに送信するプロセッ
    サとを備え、 各出力ポートあての複数のパケットを含む複数のメモリ
    の記憶位置は、複数のパケットが上記メモリから検索さ
    れた第1のシーケンスを形成するように互いにリンクさ
    れ、上記第1のシーケンスはヘッドとテイルを有し、 上記各出力ポートあての記憶された別のパケットが、す
    でに上記第1のシーケンスに記憶されたパケットと同一
    の入力ポートで受信されたとき、上記各記憶された別の
    パケットを含む上記メモリの記憶位置は第2のシーケン
    スを開始し、上記第2のシーケンスはヘッドとテイルを
    有するパケットデータスイッチ。
  10. 【請求項10】 それぞれ付加的に記憶されたパケット
    が、第2のシーケンスですでに記憶された任意のパケッ
    トと同一の入力ポートにおいて受信されないときに、記
    憶された複数のパケットの上記第2のシーケンスが存在
    するとき、同一の各出力ポートあての上記各付加的に記
    憶されたパケットの上記メモリの記憶位置は、上記第2
    のシーケンスのヘッドにおいて付加される請求項9記載
    のパケットデータスイッチ。
  11. 【請求項11】 上記第1のシーケンスに記憶されてい
    るすべてのパケットがプロセッサにより検索されたと
    き、上記第2のシーケンスはもし存在すれば上記各出力
    ポートのための新しい第1のシーケンスとなる請求項1
    0記載のパケットデータスイッチ。
  12. 【請求項12】 上記各出力ポートあての付加的に記憶
    されたパケットが、現在の第2のシーケンスにすでに記
    憶されたパケットと同一の入力ポートにおいて受信され
    たとき、上記現在の第2のシーケンスは上記第1のシー
    ケンスに追加されてその一部となり、上記現在の第2の
    シーケンスのテイルは上記第1のシーケンスの新しいテ
    イルになり、上記メモリの記憶位置は上記各出力ポ−ト
    のための新しい第2のシーケンスを開始する上記各付加
    的に記憶されたパケットを含む請求項11記載のパケッ
    トデータスイッチ。
  13. 【請求項13】 上記プロセッサは、上記第1及び第2
    のシーケンスのそれぞれの各ヘッドの記憶位置と、テイ
    ルの記憶位置と、長さとのアドレスを保持するレジスタ
    を備える請求項9記載のパケットデータスイッチ。
  14. 【請求項14】 同一の各出力ポートあての複数のパケ
    ットの第3のシーケンスは、上記第3のシーケンスに対
    してそれぞれ、 各入力ポートで受信され上記出力ポートあての複数のパ
    ケットが、各フリーなメモリの記憶位置で記憶され、 最後に受信されたパケットを含むものを除く各記憶位置
    が、次に受信されたパケットの記憶位置への、追加され
    たアドレスポインタを有し、 プロセッサが、最初にヘッドとして受信されたパケット
    の記憶位置へのポインタと、最後にテイルとして受信さ
    れたパケットの記憶位置へのポインタとを保持するよう
    に形成された請求項9記載のパケットデータスイッチ。
  15. 【請求項15】 上記第3のシーケンスの複数のパケッ
    トが、上記第2のシーケンスにすでに記憶された任意の
    パケットと同一の入力ポートにおいて受信されないとき
    に、上記第3のシーケンスが上記第2のシーケンスのヘ
    ッドに付加される請求項14記載のパケットデータスイ
    ッチ。
  16. 【請求項16】 上記第3のシーケンスの複数のパケッ
    トが現在の第2のシーケンスにすでに記憶された任意の
    パケットと同一の入力ポートにおいて受信されたとき、
    上記現在の第2のシーケンスは上記第1のシーケンスに
    追加されてその一部となり、上記現在の第2のシーケン
    スのテイルは上記第1のシーケンスの新しいテイルにな
    り、上記第3のシーケンスは上記各出力ポートのための
    新しい第2のシーケンスになる請求項14記載のパケッ
    トデータスイッチ。
  17. 【請求項17】 複数の出力ポートと、 複数のデータパケットを受信するように構成された複数
    の入力ポートとを備え、それぞれのパケットは各出力ポ
    ートに関連付けられたあて先アドレスを含み、 共有バッファメモリと、 キャッシュと、 受信した複数のパケットを上記メモリに記憶し、上記メ
    モリに記憶されている複数のパケットを選択的に検索
    し、それらを指示された出力ポートに送信するプロセッ
    サとを備え、 上記メモリ中の、同一の出力ポート宛てのパケットを含
    む複数の記憶位置は、上記各パケットが検索されたシー
    ケンスを形成するように選択的に互いにリンクされ、 任意の与えられた入力ポートで受信された複数のパケッ
    トが、それらが受信されたときと同一の順序で上記指示
    された出力ポートに送信されるように、与えられたシー
    ケンスの上記複数の各メモリの記憶位置は互いにリンク
    され、 上記キャッシュは、各メモリの記憶位置に互いにリンク
    しているデータを与えられたシーケンスの一部として記
    憶するように、選択的に用いられるパケットデータスイ
    ッチ。
  18. 【請求項18】 上記プロセッサ、メモリ及びキャッシ
    ュは単一の集積回路の一部として形成される請求項17
    記載のパケットデータスイッチ。
  19. 【請求項19】 上記共有バッファメモリはダイナミッ
    クランダムアクセスメモリ(DRAM)である請求項1
    7記載のパケットデータスイッチ。
  20. 【請求項20】 上記プロセッサによる単一のメモリア
    クセスの一部として、各メモリの記憶位置に記憶されて
    いるパケットデータが読み出され、新しいパケットデー
    タが同一の記憶位置に書込まれる請求項21記載のパケ
    ットデータスイッチ。
  21. 【請求項21】 複数の出力ポートと、 複数のデータパケットを受信するように構成された複数
    の入力ポートとを備え、それぞれのパケットは各出力ポ
    ートに関連付けられたあて先アドレスを含み、 ダイナミックランダムアクセスメモリ(DRAM)と、 受信した複数のパケットを上記DRAMに記憶し、上記
    DRAMに記憶されている複数のパケットを選択的に検
    索し、それらを指示された出力ポートに送信するプロセ
    ッサとを備え、 上記DRAM中の、同一の出力ポート宛てのパケットを
    含む複数のバッファの記憶位置は、上記各パケットが検
    索されたシーケンスを形成するように選択的に互いにリ
    ンクされ、 任意の与えられた入力ポートで受信されたパケットが、
    それらが受信されたときと同一の順序で指示された出力
    ポートに送信されるように、与えられたシーケンスの上
    記各DRAMバッファの記憶位置は互いにリンクされ、 上記プロセッサによる単一のDRAMアクセスの一部と
    して、各DRAMバッファの記憶位置に記憶されている
    パケットデータが読み出され、新しいパケットデータが
    同一の記憶位置に書込まれるパケットデータスイッチ。
  22. 【請求項22】 上記プロセッサ及びDRAMは単一の
    集積回路の一部として形成される請求項21記載のパケ
    ットデータスイッチ。
  23. 【請求項23】 複数の出力ポートと、 複数のデータパケットを受信するように構成された複数
    の入力ポートとを備え、それぞれのパケットは各出力ポ
    ートに関連付けられたあて先アドレスを含み、 メモリと、 受信した複数のパケットを上記メモリに記憶し、上記メ
    モリに記憶されている複数のパケットを選択的に検索
    し、それらを指示された出力ポートに送信するプロセッ
    サとを備え、 上記メモリ中の、同一の出力ポート宛てのパケットを含
    む複数の記憶位置は、各パケットが検索されたシーケン
    スを形成するように選択的に互いにリンクされ、 任意の与えられた入力ポートで受信された複数のパケッ
    トが、それらが受信されたときと同一の順序で指示され
    た出力ポートに送信されるように、与えられたシーケン
    スの上記複数の各メモリの記憶位置は互いにリンクさ
    れ、 同一の入力ポートで受信され同一の出力ポートに宛てら
    れた複数のパケットを含むシーケンスは、各フリーなメ
    モリの記憶位置において各パケットを記憶することによ
    り形成され、 最後に受信されたパケットを含むものを除く各記憶位置
    は、次に受信されたパケットの記憶位置への追加された
    アドレスポインタを有し、 上記各シーケンスにおいてそれぞれ、上記プロセッサ
    は、最初にヘッドとして受信されたパケットの記憶位置
    へのポインタと、最後にテイルとして受信されたパケッ
    トの記憶位置へのポインタとを保持するパケットデータ
    スイッチ。
  24. 【請求項24】 上記プロセッサ及びメモリは単一の集
    積回路の一部として形成される請求項23記載のパケッ
    トデータスイッチ。
JP2000097035A 1999-04-01 2000-03-31 パケットデータスイッチ Pending JP2001036582A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US28668099A 1999-04-01 1999-04-01
US09/286680 1999-04-01

Publications (1)

Publication Number Publication Date
JP2001036582A true JP2001036582A (ja) 2001-02-09

Family

ID=23099688

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000097035A Pending JP2001036582A (ja) 1999-04-01 2000-03-31 パケットデータスイッチ

Country Status (1)

Country Link
JP (1) JP2001036582A (ja)

Similar Documents

Publication Publication Date Title
USRE44151E1 (en) Switching ethernet controller
JP4615030B2 (ja) バッファを再要求するための方法および装置
US5398245A (en) Packet processing method and apparatus
JP4078445B2 (ja) データ識別子を複製することによって複数のコピーを送信するための方法および装置
JP4603102B2 (ja) ネットワークスイッチ内のブロックされた出力キューに関するパケットを選択的に廃棄するための方法および装置
JP4078446B2 (ja) 探索可能なキャッシュ領域を備えるマルチコピーキュー構造
US8082404B2 (en) Memory arbitration system and method having an arbitration packet protocol
US7260104B2 (en) Deferred queuing in a buffered switch
US8184635B2 (en) Port packet queuing
JP4541454B2 (ja) 受信データの関数としてデータの送信の開始を制御するための方法および装置
US20030016689A1 (en) Switch fabric with dual port memory emulation scheme
US6601116B1 (en) Network switch having descriptor cache and method thereof
US6850999B1 (en) Coherency coverage of data across multiple packets varying in sizes
US20070201360A1 (en) Network switch
US6904039B1 (en) Packet queuing for a network switch
JP2001036582A (ja) パケットデータスイッチ
US20050081003A1 (en) Apparatus and method for efficient data storage in a digital logic device
JP4452781B2 (ja) メモリ内の物理的順序によって時間順を維持するための方法および装置
US20050038908A1 (en) High speed pipeline architecture with high update rate of associated memories