JP3517245B2 - パケットスイッチングネットワーク内のルーチングデバイス出力アクセス用調整方法および装置 - Google Patents
パケットスイッチングネットワーク内のルーチングデバイス出力アクセス用調整方法および装置Info
- Publication number
- JP3517245B2 JP3517245B2 JP53032897A JP53032897A JP3517245B2 JP 3517245 B2 JP3517245 B2 JP 3517245B2 JP 53032897 A JP53032897 A JP 53032897A JP 53032897 A JP53032897 A JP 53032897A JP 3517245 B2 JP3517245 B2 JP 3517245B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- port
- router
- flow control
- bsm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 43
- 239000000872 buffer Substances 0.000 claims description 249
- 230000004044 response Effects 0.000 claims description 14
- 238000012546 transfer Methods 0.000 description 29
- 230000015654 memory Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 22
- 230000005540 biological transmission Effects 0.000 description 18
- 230000007704 transition Effects 0.000 description 18
- 230000004048 modification Effects 0.000 description 12
- 238000012986 modification Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 6
- 230000009977 dual effect Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241000221035 Santalaceae Species 0.000 description 1
- 235000008632 Santalum album Nutrition 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/104—Asynchronous transfer mode [ATM] switching fabrics
- H04L49/105—ATM switching elements
- H04L49/106—ATM switching elements using space switching, e.g. crossbar or matrix
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3081—ATM peripheral units, e.g. policing, insertion or extraction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/04—Selecting arrangements for multiplex systems for time-division multiplexing
- H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
- H04Q11/0478—Provisions for broadband connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5619—Network Node Interface, e.g. tandem connections, transit switching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
- H04L2012/5651—Priority, marking, classes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5679—Arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5681—Buffer or queue management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
トスイッチングネットワークにおけるルーチングデバイ
スの出力へのアクセス用アービタに関する。
グデバイスは、パケットがその最終宛先に到達するまで
1つのルーチングデバイスから他のルーチングデバイス
に向かうルートを選択する。ルーチングデバイスはしば
しば、パケットが転送され得る速度を一時的に越える速
度でパケットを受け取り、従って、ルーチングデバイス
は選択された時間にどのパケットが送信されるかを決定
するために調停方法を使用する。
ライオリティあるいは巡回方法のような種々の調停方法
を使用する。しかしながら、従来の調停方法は、データ
パケットが出力されることを許容する以前に、次の宛先
ルーチングデバイスがデータパケットを受信する容量を
有することを確実にすることのないものに限定される。
従って、制限された出力リソースはしばしば、完了の不
可能な処理において浪費される。さらに、従来の調停方
法の多くは、マイクロプロセッサに基づく方法以上に本
質的に高性能を具備するハードウエア中に容易にまたは
経済的に組み込まれない。
の宛先ルーチングデバイスの記憶容量を推定するルーチ
ングデバイスは周知である。この推定は、ネットワーク
の利用可能な帯域幅およびパケットが転送されている速
度に基づいている。しかしながら、この推定方法は、次
の宛先ルーチングデバイス中で利用可能な正確な領域量
を記憶できない、従って十分な領域が利用可能であるこ
とを保証することのできない方法に限定される。従っ
て、パケットは時々パケットを受信することのできない
ルーチングデバイスに送信され、このような誤りはネッ
トワークの性能を顕著に低減し得る。このような誤りの
危険性は転送速度に比例するので、危険性を最小にする
ためにはパケット転送速度は減少されねばならない。こ
の制限は、マルチプロセッサベースネットワークがATM
ネットワークにおけるよりも極めて高速度でデータパケ
ットを転送するので、マルチプロセッサベースパケット
スイッチングネットワーク中で特に厳しいものとなる。
法を使用する時には、十分な領域がパケットに対してだ
けでなく将来のより高いプライオリティのトラヒックに
対しても存在することを保証されることが望ましい。さ
もなければ、より低いプライオリティのトラヒックは、
より高いプライオリティのトラヒックを遅延するかもし
れない。ATMネットワーク中で使用される方法は、より
低いプライオリティのパケットの転送前により高いプラ
イオリティのパケットに対して十分な領域が存在するこ
とを確認できないものに限定される。従って、次の宛先
ルーチングデバイスがパケットおよび存在する場合には
将来のより高いプライオリティのパケットの双方を受信
するための容量を有しているならば、データパケットが
出力にアクセスすることだけを許容するパケットスイッ
チングネットワーク中の調停方法に適合する必要があ
る。さらに、経済的にハードウエア内に組み込まれ得る
調停方法を有することも望まれている。
るルーチングデバイスの出力へのアクセスの調整方法お
よび装置を提供する。本発明のアービタは、ルーチング
デバイスの出力にアクセスするためのリクエストを受信
する。アービタは、現在の調停サイクル中で最も高いプ
ライオリティを有するリクエストを選択し、最高のプラ
イオリティを有する1以上のリクエストが存在する場合
には、アービタはこれらのリクエストのうち時間的に最
初に受信されたものを選択する。これは高いプライオリ
ティのパケットが最初に許可され、同じプライオリティ
のパケットはそれらが受信された順序で転送されること
を確実にする。さらに、統計的によりいっぱいのバッフ
ァはほとんど空のバッファよりもより古いリクエストを
持っている傾向があるので、ほとんどいっぱいのバッフ
ァはほとんどからのバッファよりも大抵は優先される。
これは、ルーチングデバイスはいっぱいのバッファを有
する入力ポートにパケットを受信することができないの
で望ましいものである。
十分な容量を有しているならば、アービタは出力にアク
セスすることだけを許容する。高いプライオリティのリ
クエストに対して、入力バッファはデータパケットを記
憶するための十分な領域を有していなければならない。
中および低いプライオリティのパケットに対して、入力
バッファはより高いプライオリティのパケットに対して
も十分な領域を有していなければならい。この方法はよ
り低いプライオリティのトラヒックが高いプライオリテ
ィのトラヒックを遅延させることを防止し、限られたリ
ソースが完了が不可能な転送において浪費されることを
防止する。本発明の調停方法は、経済的にハードウエア
中に組み込むことを可能とする。
ブロックダイヤグラムである。
された本発明にかかる第2のルーチングデバイスのブロ
ックダイヤグラムである。
2つのポートのブロックダイヤグラムである。
2つのポートのブロックダイヤグラムである。
ムである。
ックダイヤグラムである。
る。
である。
リンクを含むネットワークを示す図である。
ク中の2つのルータの詳細図である。
ク中の2つのルータの一層詳細な図である。
2つのレジスタを表す値を含むバッファ状態メッセージ
に応答するデータ転送ルータ内のバッファの状態を示す
状態線図である。
1つのレジスタを表す値を含むバッファ状態メッセージ
に応答するデータ転送ルータ内のバッファの状態を示す
状態線図である。
ー線図である。
ジ発生および転送のフロー線図である。
ジ受信のフロー線図である。
よるレジスタ値の例である。
クダイヤグラムである。ルーチングデバイスはパケット
スイッチングネットワークの一部であり、ルーチングデ
バイスのネットワークはパケットがその最終宛先に到達
するまで1つのルーチングデバイスから他のルーチング
デバイスへデータパケットをルート転送する。(なお、
本明細書において論議されるデータパケットは、フレー
ムヘッダを含むために、時々″フレーム”と記載され
る。フレームヘッダは、ネットワークを介してパケット
をルート転送するために必要な情報を記憶している。)
1つの実施例において、ルーチングデバイス10はキャッ
シュコヒーレント・ノンユニフォームメモリアクセスマ
ルチプロセッサシステム(ccNUMA)中で使用される。
トを受信し、ポート1−6からデータパケットを転送す
る。ポート1−6は同一であり、簡略化のために図1に
示されていないけれどもポート1−6のそれぞれは直接
すべての他のポートに接続されている。図1はルーチン
グデバイス10中に6つのポートを示しているけれども、
ポートの数は変更し得ることは認識されるべきである。
ットを受信し、他のポートから転送することによってパ
ケットスイッチングネットワークを介してデータパケッ
トをルート転送する。クロスバースイッチ12は、データ
パケットをルーチングデバイス内の1つのポートから他
のポートに転送する。例えば、ポート1がポート4から
出力されるべきデータパケットを受信したならば、クロ
スバースイッチ12はデータパケットをポート1からポー
ト4に転送する。クロスバースイッチ12は、周知のルー
チングデバイスにおいて見られる従来型のスイッチであ
ってよく、あるいは1996年2月22日にJeffrey D.Larson
およびAlbert Muによって出願された米国出願No.PCT/US
97/02941″電圧の揺れを少なくし、かつ、内部のブロッ
ク化データパスを生じないクロスバースイッチおよびそ
の方法″において開示されたクロスバースイッチであっ
てもよい。
チングデバイス10を示している。ルーチングデバイス14
内のポート7−12は、ルーチングデバイス10内のポート
1−6と同一である。ポート1−12のそれぞれは入力お
よび出力を具備するが、入力および出力は共にルーチン
グデバイスの同一ポートに接続される。例えば、ポート
6の入力はポート7の出力に接続され、ポート6の出力
はポート7の入力に接続される。
トをルーチングデバイス10のポート1からルーチングデ
バイス14のポート7にルート転送する処理について記述
される。ポート1および7の選択は任意であり、この方
法に関する記述はすべてのポートに対して適用される。
データパケットをルーチングデバイス10のポート1から
ルーチングデバイス14のポート7にルート転送するため
に、ルーチングデバイス10はデータパケットをポート1
からポート6に転送する。そしてそれはパケットをポー
ト6からポート7に転送する。
6を示し、図3bはルーチングデバイス14のポート7を示
している。各ポートはデータシンクロナイザ、フロー制
御レシーバユニット、フロー制御トランスミッタユニッ
ト、変更ユニット、マルチプレクサ、入力バッファおよ
びアービタを有する。簡略化のために図示していない
が、ルーチングデバイス内で各アービタはすべての入力
バッファおよびすべてのデータシンクロナイザに接続さ
れている。
ポート7を宛先とするデータパケットを受信する。デー
タシンクロナイザ110は、データパケットのフレームヘ
ッダをルーチングデバイス10のクロック信号と同期させ
るために周知のFIFO同期を使用する。データシンクロナ
イザ110がフレームヘッダを同期させた後、データパケ
ットは1つの実施例においては6つのパケットを記憶す
ることのできる周知のバッファである入力バッファ112
中に記憶される。
で受信されるためにはデータパケットはポート6から出
力されなければならない。図4aに図示されているアービ
タ614は、ポート6の出力に対するアクセスを制御す
る。簡略化のために、図4aはポート1からポート7への
データパケットのルート転送を説明するために有用なア
ービタ614に対する限られた接続だけを示している。な
お、アービタはそれが配置されているポートに対するア
クセスだけを制御する。
数のメモリ素子602、604、606を含んでいる。メモリ素
子602、604、606のそれぞれは1つのプライオリティレ
ベルのリクエストを記憶する。メモリ素子602は高いプ
ライオリティリクエストを記憶し、メモリ素子604は中
間のプライオリティリクエストを記憶し、メモリ素子60
6は低いプライオリティリクエストを記憶する。
下に記述され、図5に示される方法に従って、どのリク
エストを許容するかを決定する。このことは、通常の論
理回路を使用するコントローラ608中において実現され
る。
て、データシンクロナイザ110は、メモリ素子602、60
4、606のそれぞれにバリッドビットを送信する。2つの
メモリ素子が低バリッドビットを受信し、メモリ素子の
1つが高バリッドビットを受信した場合は、アービタ61
4は高バリッドビットをポート6の出力へのアクセスリ
クエストと認識する。データシンクロナイザ110は、デ
ータパケットのプライオリティに対応するメモリ素子に
高バリッドビットを送信する。例えば、パケットが中間
のプライオリティを有していれば、メモリ素子604が高
バリッドビットを受信し、メモリ素子602および606は低
バリッドビットを受信する。
ケットが記憶されている入力バッファのアドレスを示す
数ビットを送信する。そのビット数はlog2Nに等しい。
ここでNは入力バッファ112中のバッファ要素の数であ
る。高バリッドビットを受信したメモリ素子はアドレス
識別ビットを受信する。ある実施例においては、これら
のアドレス識別ビットはルーチングデバイス10中のすべ
てのアービタ中の他のメモリ素子にも送信される。しか
しながら、高バリッドビットを受信していないメモリ素
子はこの情報を記憶しない。
されている。メモリ素子604および606も同一である。メ
モリ素子602は、周知のFIFOであってよいメモリまたは
記憶素子640−650を含んでいる。記憶素子640−650の数
は、ルーチングデバイスのポートの数に対応している。
各入力ポート中の各データシンクロナイザは、別個の記
憶素子640−650に接続されている。
送信されたバリッドおよびアドレス識別ビットを受信す
る。高バリッドビットが1またはそれ以上の記憶素子64
0−650で受信されると、すべての記憶素子640−650の入
力が、記憶素子640−650中にクロック移動される。すべ
ての記憶素子の入力が同時にクロック移動されるので、
メモリ素子602、604、606は多重入力を有することがで
きる。従って、アービタ614は、同じプライオリティに
対する異なるリクエストを同時に受信することが可能で
ある。記憶素子640−650は、受信された順序でビットを
出力し、一緒にクロック入力されたビットは一緒に出力
される。もし2またはそれ以上の高バリッドビットが同
時に受信されたならば、コントローラ652は最低入力ポ
ートにおいて受信された高バリッドビットを最初に出力
するであろう。コントローラ652は、入力ポートの任意
の順序に基づいてどのバリッドビットを出力するかを決
定できることが理解される。コントローラ652の動作は
通常のロジック回路で実現される。
ある場合のみ、アービタ614はポート6の出力にアクセ
スすることを許容する。フロー制御受信ユニット616は
入力バッファ712の空き容量を示すバッファ状態メッセ
ージを受信し、存在するどのプライオリティのリクエス
トが許容され得るかをアービタ614に通知する。もし入
力バッファ712中に使用可能な少なくとも3つの領域が
存在すれば、フロー制御レシーバ616はどのプライオリ
ティのリクエストも許容されることを示す信号をアサー
ト(assert)する。入力バッファ712中に使用可能な2
つの領域だけが存在するならば、フロー制御レシーバ61
6は中プライオリティリクエストまたは高プライオリテ
ィリクエストのみが許容されることを示す信号を発生す
る。入力バッファ612中に使用可能な1つの領域だけが
存在するならば、フロー制御レシーバ616は高プライオ
リティリクエストのみが許容されることを示す信号を発
生する。この方法は、入力バッファ712がデータパケッ
トを受信するのに十分な領域を有することを保証する。
さらに、もしデータパケットが中または低プライオリテ
ィを有しているならば、この方法はより高プライオリテ
ィのトラヒックに対して入力バッファ712中に領域が確
保されることを確実にする。もし、より高いプライオリ
ティのトラヒックに対して領域が確保されないならば、
より高いプライオリティのリクエストがより低いプライ
オリティのリクエストによって引き止められることにな
る。
空き容量を監視する。これは、フロー制御レシーバ616
で受信されるバッファ状態メッセージを発生する。この
バッファ状態メッセージは、フロー制御トランスミッタ
718から周知のマルチプレクサ722に移動し、マルチプレ
クサ22はアービタ714がポート空き信号をアサートした
ときにバッファ状態メッセージを出力する。アービタ71
4は、ポート7の出力にアクセスするどのようなリクエ
ストも許容されないことに応答して、またはフロー制御
トランスミッタ718からの強制信号の受信に応答してポ
ート空き信号をアサートする。データパケットの不必要
なブロッキングを避けるためにバッファ状態メッセージ
が送信されなければならないときに、フロー制御トラン
スミッタ718は強制信号を発生する。マルチプレクサ722
から出力されるバッファ状態メッセージはデータシンク
ロナイザ610で受信され、データシンクロナイザ610はそ
のメッセージの同期をとり、かつそれらをフロー制御レ
シーバ616に転送する。
アクセスすることを許容したときに、それは入力バッフ
ァ112、クロスバースイッチ12および変更ユニット620に
許容信号を送信する。許容信号の受信に応答して、入力
バッファ112はデータパケットをクロスバースイッチ12
に転送する。許容信号は完全なデータパケットのクロス
バースイッチ12への転送中はアサートとされたままであ
る。
信に応答してデータパケットのヘッダを変更する変更ユ
ニット620にデータパケットを送信することを可能なら
しめる。周知の方法を使用すれば、データパケットが入
力バッファ712内に記憶されるであろう場所のアドレス
を示すためにヘッダは変更される。そして、変更された
データパケットはマルチプレクサ622に送信され、マル
チプレクサ622はアービタ614がポート空き信号をアサー
トしなかったならば、データパケットを出力。
ニット616はアービタ614から新たな許容信号を受信す
る。新たな許容信号は、フロー制御レシーバ616に入力
バッファ712内で利用可能な1以下の領域が存在するこ
とを通知する。必要があれば、フロー制御レシーバ616
は、パケットが入力バッファ712に送信されるために次
のパケットがどのプライオリティにあるべきかの表示を
調整する。
いる。調停サイクルを開始するために、アービタ614は
フロー制御トランスミッタ618からの強制信号がアサー
トされているか、またはポート6の出力にアクセスする
ためのリクエストが存在するかを502で決定する。リク
エストが存在しないか、または強制信号がアサートされ
ていれば、アービタ614は504でポート空き信号をアサー
トし、ステップ502に戻る。
在の調停サイクルにおいて最高のプライオリティを有す
る1以上のリクエストを選択する。3レベルのプライオ
リティが存在するが、他の複数のプライオリティレベル
が存在してもよい。3つのプライオリティレベルは高、
中および低であり、高プライオリティリクエストは中お
よび低プライオリティリクエストよりも先に許容され、
中プライオリティリクエストは低プライオリティリクエ
ストよりも先に許容される。
に1以上の最高プライオリティのリクエストが存在する
かを決定する。そのようなリクエストの存在に応答し
て、アービタ614は510で、最初に受信されたそのような
リクエストを選択する。これはパケットが同じプライオ
リティを有していること、および同一出力に対する競合
が受信された順番に転送されることを確実にする。さも
なければ、同一プライオリティのパケットが順不同に到
達したならば、宛先ノードまたはルーチングデバイスに
おいて、それらを並べ替えなければならず発信元から宛
先への転送時間が増加し宛先ノードの経済的な全ハード
ウエアによる実現を妨げるであろう。あるプライオリテ
ィレベル内で最初に受信されたパケットを選択するよう
にすれば、パケットが同一プライオリティの他のパケッ
トによって不当に遅延させられることが防止される。な
お、メモリ素子602、604および606が図4bに記載されて
いるようにFIFOで構成されているならば、FIFOは自動的
に受信された最初のリクエストを出力するので、コント
ローラ608はステップ508および510を実行する必要はな
い。
受信された最初のリクエストであるならば、アービタ61
4は512、514で、最低番号の入力ポートに到達したパケ
ットに対応するリクエストを選択する。アービタ614
は、ポートの任意の順序に基づいてパケットに対応する
リクエストを選択することが可能であることが理解され
る。
制信号がアサートされたか、およびリクエストが許容さ
れることの可能なプライオリティであるかを516で決定
する。上述したように、フロー制御レシーバ616は出力
に対するアクセスを得るためにリクエストがどのプライ
オリティであるべきかをアービタ614に示す。高プライ
オリティのリクエストが許容されるためには、受信入力
バッファ内で利用可能な少なくとも1つの領域が存在す
るべきである。中プライオリティのリクエストが許容さ
れるためには、受信入力バッファ内に少なくとも2つの
空き領域が存在すべきである。これは高プライオリティ
トラヒックに対して入力バッファ内に十分な領域がまだ
存在することを保証する。低プライオリティのリクエス
トが許容されるためには、受信入力バッファ内に利用可
能な少なくとも3つの領域が存在しなければならず、こ
れによって高および中プライオリティトラヒックに対し
て入力バッファ内に十分な領域がまだ存在することを保
証する。同様に他のレベルのプライオリティを有するリ
クエストを許容するために、受信入力バッファ内で利用
可能な領域の数は、そのリクエストのプライオリティよ
り高いプライオリティの数に少くとも1を加えた数であ
るべきである。もし選択されたリクエストが許容される
ことができないものであるか、または強制信号がアサー
トされているならば、アービタ614はポート空き信号を5
17でアサートし、ステップ506に戻る。そうでなければ
アービタ614はステップ518に進む。
をデアサート(de−assert)し、許容信号および新たな
許容信号をアサートする。次のクロックサイクルにおい
て、アービタ614は520で選択されたリクエストに関連し
たデータパケットが完全にクロスバースイッチ12に転送
されたかを確かめる。もし否定されれば、アービタ614
は522で転送が完了するまで、新たな許容信号ではな
く、許容信号をアサートする。そうでなければ、アービ
タ614はポート空き信号をアサートし、524で許容信号も
新たな許容信号もアサートされていないことを確実にす
る。これは調停サイクルを完了し、アービタ614はステ
ップ502に戻る。
る。時刻t1において、2つの中プライオリティリクエス
トおよび1つの低プライオリティリクエストが存在す
る。時刻t1において中プライオリティリクエストが最高
プライオリティであるので、アービタは最初の受信され
た中プライオリティリクエストを選択する。受信入力バ
ッファ内に中プライオリティリクエストのための十分な
領域が存在するので、このリクエストは許容される。
ライオリティリクエストおよび低プライオリティリクエ
ストは未解決のままとされる。アービタは高プライオリ
ティリクエストを選択するが、受信入力バッファは領域
を有しないので、リクエストは許容されず、ポート空き
信号がアサートされる。時刻t3において、領域が受信入
力バッファ中で使用可能となり、アービタは高プライオ
リティリクエストを許容し、ポート空き信号をデアサー
トする。時刻t4において、アービタは強制信号を受信す
る。従って、リクエストは許容されず、ポート空き信号
がアサートされる。
ロー制御トランスミッタ718は、以下の説明するフロー
制御レシーバおよびフロー制御トランスミッタであり得
る。以下の説明は、出願番号 、弁護士用ドケ
ット番号2274、“フロー制御プロトコル・システムおよ
び方法”の名称で、Thomas M.Wicki,Patrick J.Hella
nd,Jeffrey D.Larson,Albert MuおよびRaghu Sastry
によって1996年2月22日に出願された米国出願の一部と
本質的に同一である。
バイス)およびリンクを含むネットワークを示してい
る。図7に示されているネットワークは8つのノード91
02、即ちNodeA−H9102A−H、および7つのルータ9104A
−Gを含んでいる。本発明の望ましい実施例によれば、
ネットワークは分散メモリシステムである。即ち、この
システムは物理的に分散されているアーキテクチャを有
しているが、メモリ(記憶素子)は論理的に共有されて
いる。例えば、1つのノード、例えば9102DはNodeD9102
Dが局所的であるが実際に物理的に異なる場所に配置さ
れ、異なるノード、例えばNodeA9102Aに接続されている
と信じるメモリ位置にアクセスをリクエストすることが
できる。リクエストしたノード(NodeD9102D)はメモリ
の位置を認識し、ネットワークは迅速にデータを取り出
す。分散されたメモリネットワークにおいて、重要な性
能パラメータはネットワークの待ち時間である。ネット
ワークの待ち時間は、メモリリクエストが転送された時
間から計測され、リクエストされたデータをリクエスト
ノードに提供するために必要とされる時間である。
タをリクエストしたならば、NodeD9102Dはネットワーク
を介してデータリクエストを転送する。データリクエス
トは、例えばNodeD9102Dから第3のルータ9104E、第2
のルータ9104B、第1のルータ9104Aを介してNodeA9102A
に移動する。データはNodeA9102Aに接続される記憶素子
から取り出され、NodeD9102Dにネットワークを介して送
信される。データはパケットとしてネットワークを介し
て送信される。ノード、例えばNodeA9102Aはネットワー
クを介する通信路を決定し、このルーチング情報を各パ
ケットのヘッダ中に記憶する。例えば、NodeA9102Aから
NodeD9102Dに送信されるデータは、NodeA9102Aから第1
のルータ9104Aへ、そして第1のルータ9104Aから第2の
ルータ9104Bへ、第2のルータ9104Bから第3のルータ91
04Eへ、そして第3のルータ9104EからNodeD9102Dに送信
するよう各パケットに指示するルーチング情報を有する
ことができる。ネットワークの待ち時間はデータリクエ
ストを送信するリクエストノードからデータを受信する
リクエストノードの間の時間間隔であるので、各ルータ
9104によってもたらされる遅れの低減はネットワークの
待ち時間を低減する。上述したように、各ルータ9104は
受信されるべきデータを一時的に記憶するためのバッフ
ァを含んでいる。ある実施例においては、ルータのポー
ト当たり6つのバッファが存在し、ルータ上に6つのポ
ートが存在する。各バッファの大きさは、最大パケット
長さ、例えば1292ビットに等しい。しかしながら、上述
のようにルータ9104を設計したときに、価格は重要な考
慮点である。各ルータ内でバッファの数の増加は高価な
ものであり、バッファが存在する集積回路上に大きさの
制限があるのである状況においては不可能である。
ている。各2重信号線9106Aは双方向への、即ち、第1
のルータ9104Aの第2のポートから第1のルータ9104Aの
第2のポートへのデータの同時転送を可能としている。
2重信号線9106Aは、図8を参照しつつ以下により詳細
に説明される。
にかかる2つのルータ9104のより詳細な図である。2重
信号線9106Aは、2つの信号線9210、9212によって表さ
れている。各信号線は一方向性である。第1の信号線92
10は、第1のルータ9104Aのポート2 9202Aから第2の
ルータ9104Bのポート6 9202Bへ情報を転送する。第2
の信号線9212は、第2のルータ9104Bのポート6 9202B
から第1のルータ9104Aのポート2 9202Aへ情報を転送
する。1つの実施例において、各図示された信号線921
0、9212は、ポート間でデータを並列に転送する43本の
信号線を含んでいる。各ルータ9104は、それぞれがクロ
スバースイッチ9206に接続される6つのポート9202を含
んでいる。さらに、各ポートは6つのアービタ9204、即
ちA1−A6に接続され、各アービタ9204はポートの1つの
出力部と関連付けられている。例えば、第1のルータ91
04A上のアービタ2 9204Aはポート2 9202Aの出力部
に接続される。ポート2 9202Aの出力部は信号線9210
に接続されている。図8に示すように、各ポート、例え
ば第1のルータ9104Aのポート2 9202Aおよび第2のル
ータ9104Bのポート6 9202Bは、異なるルータ内の1つ
のポートだけに接続される。例えば、第1のルータ9104
Aのポート2 9202Aは第2のルータ9104Bのポート6 9
202Bに接続されて、第1のルータ9104Aのポート2 920
2Aは第2のルータ9104Bのポート6 9202Bからのデータ
だけを受信し、第2のルータ9104Bのポート6 9202Bへ
だけデータを転送し、第2のルータ9104Bのポート6 9
202Bは第1のルータ9104Aのポート2 9202Aからのデー
タだけを受信し、第1のルータ9104Aのポート6 9202A
へだけデータを転送する。アービタ9204、クロスバース
イッチ9206およびポート9202の動作は、図3−9を参照
して以下により詳細に説明される。
のルータ9104Aおよび第2のルータ9104Bのより詳細な図
である。各ルータ9104内の各ポート9202はフロー制御レ
シーバ9304、バッファアレイ9322、変更ユニット9326、
マルチプレクサ(MUX)9328、データシンクロナイザ932
4、およびフロー制御トランスミッタ9305を含んでい
る。各フロー制御レシーバ9304は、送信用非受信レジス
タ(SANRR)9308、受信現状充満レジスタ(RCFR)9310
およびバッファビジーレジスタ(BBR)9312に接続され
るバッファ状態メッセージ(BSM)レシーバ9306を含ん
でいる。各フロー制御トランスミッタ9305は次回送信メ
ッセージレジスタ(NMTSR)9318および現状充満レジス
タ(CFR)9320に接続されたBSMジェネレータ9316を含ん
でいる。ルータ9104を参照して説明されているけれど
も、各ノード9102もまたフロー制御レシーバ9304Aおよ
びフロー制御トランスミッタ9305B中にレジスタを含ん
でいる。これらポート要素の動作は、上述のデータ転送
例を参照して今から説明される。
リ素子中に記憶されたデータをリクエストした場合は、
NodeD9102DはNodeA9102Aにリクエストを転送する。Node
A9102Aはデータを取り出し、データパケットがネットワ
ークを通過する通信路を決定し、上述したように各パケ
ットのヘッダ中にこのルーチング情報を記憶する。第1
のルータ9104Aは、NodeA9102Aからパケットの形式でデ
ータを受信する。NodeA9102Aは、第1のルータ9104Aの
ポート3に接続される。従って、各パケットは、ポート
3バッファアレイ9322A中のバッファに送信される。フ
レームヘッダ中のルーチング情報は、データがトラバー
ス(traverse)すべき次のルータ9104を認識する。本実
施例において、次のルータは第2のルータ9104Bであ
る。第1のルータ9104Aのポート2 9202Aは、第2のル
ータ9104Bのポート6 9202Bに接続される。従ってフレ
ームヘッダ中のルーチング情報は、第1のルータ9104A
に対する出力ポートとしてポート2 9202Aを認識す
る。この出力ポート情報は出力ポートに関連したアービ
タ9204によって受信される。本実施例において、アービ
タ2 9204Aは第1のルータ9104Aのポート2 9202Aと
関連付けられる。アービタ2 9204Aはフロー制御レシ
ーバ9304Aから受信ポートへのデータ伝送が実行される
かを示す信号を受信する。本実施例において、受信ポー
トは、第2のルータ9104Bのポート6 9202Bである。そ
して、アービタ2 9204Aは、ポート3バッファアレイ9
322A中の第1のバッファに第1のバッファ中のデータを
クロスバーマトリックス9206に送信することをポート3
バッファアレイ9322Aに命令する信号を伝送する。アー
ビタ2 9204Aはまた、クロスバーマトリックス9206に
ポート3バッファアレイ9322A中の第1のバッファを第
1のルータ9104Aのポート2 9202Aに接続させる信号を
クロスバーマトリックス2906に送信する。アービタ9204
のそれぞれは第I節に記述されたアービタ614であって
よい。各クロスバーマトリックス9206の動作は、全体と
して参照によって識別され組み込まれる1996年2月22日
にAlbert MuおよびJeffrey D.Larsonによって出願さ
れた“電圧の揺れを少なくし、かつ、内部のブロック化
データパスを生じさせないクロスバースイッチおよびそ
の方法”と名付けられた系属中の特許出願により詳細に
記述されている。
へのデータ伝送を実行し得るかを示すアービタ2 9204
Aへの信号の送信前に、フロー制御レシーバ9304Aは、変
更ユニット9326Aにポート6バッファアレイ9322B中の空
のバッファ(受信バッファ)のアドレスを識別する信号
を伝送する。フロー制御レシーバ9304A中のBBR9312A
は、第2のルータ9104Bのポート6バッファアレイ9322B
中の各バッファに対する1ビットを含んでいる。BBR931
2A中の各ビットの値は、第2のルータ9104Bのポート6
バッファアレイ9322B中の関連するバッファが空である
ことを第1のルータ9104Aが決定したかを示す。BBR9312
A中のビットをセットおよびリセットする方法は、図4
−9を参照して以下に説明される。第1のルータ9104A
中の変更ユニット9326Aは、第2のルータ9104Bのポート
6バッファアレイ9322B中の空のバッファのアドレスを
受信する。この空のバッファは受信バッファである。
ト3バッファアレイ9322A内の第1のバッファを変更ユ
ニット9326に接続することを命令したときに、アービタ
2 9204Aはまた、フロー制御レシーバ9304Aにパケット
が伝送されたことを通知する信号をフロー制御レシーバ
9304Aに送信する。パケットが受信バッファに転送され
たこと、およびBSMレシーバ9306Aがパケットの受信を認
める信号を受信していないことを示すために、フロー制
御レシーバ9304A中のBSMレシーバ9306Aはポート6バッ
ファアレイ9322B中の受信バッファに関連するSANRR9308
A中のビットの値を変更する。以下に説明するように、B
BR9312の値はSANRR9308AとRCFR9310Aの論理的ORと等し
い。ポート6バッファアレイ9322B中の受信バッファに
関連するビットの値は論理1に等しく設定されるので、
BBR9312A中の関連ビットもまた論理1に等しく設定され
る。このビットが論理1に等しいとき、BBR9312A中のこ
のビットがリセットされるまでフロー制御レシーバ9304
Aから第1のルータ9104Aの変更ユニット9326Aの送信さ
れるバッファアドレス信号は受信バッファを識別しな
い、即ちBBR9312Aがリセットされるまで受信バッファ
は″ビジー″として認識される。ポート6バッファアレ
イ9322B中のすべてのバッファが、最近のBSM中の情報に
よって決定されたように、あるいは第1のルータ9104A
がパケットを第2のルータに転送したときにSANRR9308A
とBBR9312Aの設定によるフロー制御レシーバ9304Aによ
って決定されるように空でなければ、BBR9312A中の全ビ
ットは論理1に等しく設定されるであろう。このような
状況において、BSMレシーバ9306Aはアービタ2 9204A
に通知し、BBR9312A中の少なくとも1つのビットがリセ
ットされるまでアービタ2 9204Aはポート6 9202Bへ
のいかなる追加のパケット転送を許容しない。上記の説
明は全パケットに対して単一の伝送プライオリティレベ
ルだけが存在する状況を説明している。以下に説明する
ように、本発明は多重伝送プライオリティレベルを有す
るパケットをもサポートしている。
からクロスバースイッチ9206Aを介してパケットを受信
し、フロー制御レシーバ9304Aから受信バッファアドレ
スを受信する。変更ユニット9326Aは、第2のルータ910
4Bのポート2 9202Aを識別するルーチング情報を削除
することによってフレームヘッダを変更し、例えばフレ
ームヘッダ中の残存するルーチング情報をシフトする。
変更ユニット9326Aは、またフレームヘッダに受信バッ
ファアドレスを加算する。変更ユニット9326Aは、2重
信号線9106Aの信号線9210を介して第2のルータ9104Bに
パケットを転送するMUX9328Aにパケットを転送する。
は、第1のルータ9104Aのポート2 9202Aからデータを
受信する。各ルータ9104はクロック(図示せず)を含ん
でいる。データーシンクロナイザ9324Bの1つの機能
は、受信データを第2のルータ9104B中の内部クロック
と同期させることである。データーシンクロナイザ9324
Bの他の機能は、データパケットとデータ/状態制御信
号を使用して第1のルータ9104Aから受信されるバッフ
ァ状態メッセージを区別することである。受信したパケ
ットがデータパケットであることを決定した後に、デー
ターシンクロナイザ9324Bはポート6バッファアレイ932
2B内の受信バッファにデータを転送する。フレームヘッ
ダの受信後、第2のルータは上述した手法を使用して第
3のルータ9104Eに対するデータの伝送を開始すること
ができる。しかしながら、第3のルータ9104E中のポー
ト4バッファアレイ中の全バッファが空でなければ、第
2のルータ9104Bはポート6バッファアレイ9322B内に第
1のルータ9104Aから受信したデータの記憶を継続す
る。
ファによって受信されたとき、BSMトランスミッタ9305B
中のBSMジェネレータ9316Bに通知される。パケットの一
部が受信バッファによって受信されたことを示すため
に、BSMジェネレータ9316Bは受信バッファに関連するNM
TSR9318B内のビットを論理1にセットする。さらに、受
信バッファは空ではないことを示すために、BSMジェネ
レータ9316BはCFR9320B内の関連するビットを論理1に
セットする。BSMトランスミッタ9305BはBSMを発生し、
転送する。BSMの内容は図4−9を参照して以下に説明
される。BSMは第1のルータ9104Aによって送信されたパ
ケットが受信されたという確認を含み、またポート6バ
ッファアレイ中のバッファの状態、即ち各バッファが空
であるか否かの表示を含む。BSMジェネレータ9316Bは第
2のルータ9104B内のMUX9328Bの入力ポートにデータを
伝送する。さらに、BSMジェネレータ9316BはBSMが第1
のルータ9104Aに転送されることをリクエストする信号
をアービタ6 9204Bに転送することができる。アービ
タ6 9204BはMUX9328Bを制御する信号を発生する。こ
の信号がアービタ6 9204Bによって送信されると、BSM
が信号線9212を介して第1のルータ9104Aのポート2 9
202Aに送信される。
BSMを受信する。データシンクロナイザ9324Aは受信され
たデータがBSMであるかを決定し、フロー制御レシーバ9
304A中のBSMレシーバ9306Aにデータを送信する。フロー
制御レシーバ9304Aは、受信されたBSMに基づいてSANRR9
308A、RCFR9310AおよびBBR9312Aを更新する。上述した
ように、これらのレジスタ中のビット値はBSMレシーバ9
306Aによって受信される。BSMレシーバ9306Aは、さらな
るパケットが第2のルータ9104Bのポート6 9202Bに送
信され得るかを決定する。フロー制御レシーバ9304Aお
よびフロー制御トランスミッタ9305Bの動作は、図4−
9を参照して以下にさらに詳細に記述される。
のフロー制御トランスミッタ9305B中のNMTR9318Bおよび
CFR9320Bの双方を表す値を含むBSMに応答する第1のル
ータ9104A中のフロー制御レシーバ9304A中のバッファの
状態を描いた状態図である。本発明のフロー制御プロト
コルの利点はそれが強いことである。即ち、フロー制御
プロトコルは送信誤り、例えば失われたBSMまたは失わ
れたデータパケットを回復することが可能である。パケ
ットが第1のルータ9104Aから第2のルータ9104Bに転送
されたときに、本発明に係るフロー制御プロトコルは5
つのレジスタを利用する。
制御レシーバ9304A中のSANRR9308A、RCFR9310AおよびBB
R9312Aならびに第2のルータ9104B中のフロー制御トラ
ンスミッタ9305B中のNMTSR9318BおよびCFR9320Bであ
る。フロー制御プロトコルに関する以下の記述は、これ
ら5つのレジスタを参照するであろう。上述したよう
に、これら5つのレジスタのそれぞれはポート6バッフ
ァアレイ9322B中の各バッファに関連したビットを含ん
でいる。1つの実施例において、ポート6バッファアレ
イ9322Bは6つのバッファを含んでいる。図10および図1
1はこれら5つのレジスタのそれぞれの中の1ビットに
対する状態線図を示す。従って、単一のバッファに対す
るフロー制御プロトコルがここに示されている。
ーバ9304A中のレジスタは状態IIIに関連した値に初期化
される。即ちRCFR=1、SANRR=0およびBBR=1であ
る。上述のように、BSMレシーバ9306AはBBR9312Aの値を
RDFR9310AとSANRR9308Aの論理的ORに等しく設定する。
フロー制御レシーバレジスタ、即ちSANRR9308A、RCFR93
10AおよびBBR9312Aは、それが最も保守的なフロー制御
推定であるので、状態IIIに示された値に設定される。
即ち、フロー制御レシーバレジスタが状態IIIにあると
き、状態IIIにあるときはBBR9312Aが受信バッファが空
でないことを示す論理1に等しく設定されるので、フロ
ー制御レシーバ9304Aはあらゆるデータが第2のルータ9
104Aのポート6 9202Bに送信されることを防止する。
以下に説明するように、もし受信バッファが空であれ
ば、フロー制御プロトコルはフロー制御レシーバレジス
タの状態を適切な状態を示すために変更する。上述のよ
うに、BSMはNMTSR9318BおよびCFR9320B内のビット値を
含んでいる。この例に対して、BSM=1,0は、受信バッフ
ァに関連するNMTSR9318B中のビットは論理1に等しい値
を有し、受信バッファに関連するCFR9320B中のビットは
論理零に等しい値を有していることを示す。状態IIから
状態IIIへ遷移後は、許容される2つのBSM値、即ちBSM
=1,1およびBSM=1,0だけが存在する。この理由は、NMT
SR9318Bは、(1)前回のBSMで伝送されたCFR9320Bの
値、または(2)前回のBSM内のCFR9320B中の関連する
ビットの値にかかわらずパケットが受信バッファによっ
て受信されたときは少なくとも1つのBSMに対する論理
1のいずれかであるからである。状態IIIにあるとき
は、最後のBSM内のCFR9320Bの値は論理1に等しいが、
これはRCFR9310Aがこの値を記憶するからである。従っ
て次のBSM内のNMTSR9318Bの値は、上記(1)および
(2)に基づいて論理1に等しくなければならない。し
かしながら、初期化手続の結果レジスタが状態IIIにあ
れば、BSM=0,0は有効であり、フロー制御レシーバ9304
A中のレジスタを状態IIIから状態Iに遷移させる。
って、もしBSM=1,1がフロー制御レシーバ9304Aによっ
て受信されたならば、フロー制御レシーバ9304A内のレ
ジスタは同一状態を維持する。BSM=1,0はパケットがポ
ート6バッファアレイ9322B内の受信バッファによって
受信されたこと、第3のルータ9104Eに伝送されたこと
を示す。従って、受信バッファは現在空である。もしBS
M=1,0が受信されれば、フロー制御レシーバ9304A内の
レジスタは状態IIIから状態Iに遷移する。
12Aはすべて論理零に等しい。BBR9312Aが論理零に等し
いので、フロー制御レシーバ9304Aはアービタ2 9204A
に受信バッファが空であることを通知する。以下に説明
されるプライオリティの制限によって、パケットがポー
ト39202Aにおいて第2のルータ9104Bのポート6 9202B
に伝送されることが可能であれば、アービタ2 9204A
は、クロスバーマトリックス9206Aに対してポート3バ
ッファアレイ9322A中の伝送バッファをポート2 9202A
の変更ユニット9326Aに接続することを命じる。上述し
たように、アービタ2 9204Aは、フロー制御レシーバ9
304Aにデータは送信されていることを伝える信号もフロ
ー制御レシーバ9304Aに伝送する。このとき、BSMレシー
バ9306AはSANRR9308Aを論理1に等しく設定し、従ってB
BR9312Bを論理1に設定する。RCFR9310Aは変更されな
い。従って、データが第2のルータ9104Bに伝送された
ならば、フロー制御レシーバ9304A中のレジスタは状態I
Iに遷移する。状態Iである間にデータが送信されなけ
れば、フロー制御レシーバ9304A中のレジスタは状態I
に維持される。
に等しければ、RCFR9310Aは論理零に等しい。この状態
において、フロー制御レシーバ9304A中のレジスタは、
パケットがポート6バッファアレイ9322B中の受信バッ
ファに送信されたがフロー制御レシーバ9304Aは受信バ
ッファがBSMを介してパケットを受信した確認を受信し
ていないことを示す。さらに、RCFR9310Aは最新のBSMに
基づき受信バッファが空であることを示す論理零に等し
い。状態IIにあるとき、フロー制御レシーバ9304Aは、
他のパケットが受信バッファに送信されることを許容し
ないであろう。もしBSM=0,0が受信されれば、BSMは以
前のBSMが伝送されて以来データは受信バッファ内に受
信されていないことを示すので、フロー制御レシーバ93
04A中のレジスタは状態IIを維持する。もしBSM=1,1が
受信されれば、フロー制御レシーバ9304A中のレジスタ
は状態IIIに遷移する。BSM=1,1はいくらかのパケット
データが受信レジスタによって受信され、受信レジスタ
は空ではないことを示している。いくらかのパケットデ
ータが受信されたので、SANRR9308Aは論理零にリセット
される。受信バッファが空でなのでRCRF9310Aは論理1
に設定される。状態IIIについての説明は、上記に与え
られている。もしBSM=1,0が受信されれば、フロー制御
レシーバ9304A中のレジスタは状態Iに遷移する。状態I
Iにあれば、BSM=1,0はパケットデータは受信バッファ
によって受信されたこと、およびパケットはすでに第3
のルータ9104Eに伝送されたことを示す。従って、受信
バッファは空である。パケットデータが受信バッファに
よって受信されたので、SANRR9308Aはリセットされる。
受信バッファは空であるので、RCFR9310Aは論理零に等
しく維持される。上述のように、状態Iにあるときは、
フロー制御レシーバ9304Aはアービタ29204Aに新しいパ
ケットをポート6バッファアレイ9322B中の受信バッフ
ァに伝送することを命令することができる。
装置および方法は強い。即ち、プロトコルは伝送誤りを
回復することができる。フロー制御プロトコルの時間切
れ特徴は、ネットワークにBSMまたはパケット伝送誤り
がなければバッファアレイ9322中の利用可能なバッファ
の数を低減することができるパケット伝送誤りを回復す
ることを可能とする。フロー制御レシーバ9304A中のレ
ジスタが状態IIにあり、第2のルータ9104B内のフロー
制御トランスミッタ9305Bが、例えばB=1,0を発生すれ
ば、フロー制御レシーバ9304A中のレジスタは状態Iに
遷移し、受信バッファは上述したように付加的なパケッ
トを受信することが可能となる。しかしながら、BSMが
フロー制御レシーバ9304Aによって受信されなかったな
らば、問題が発生する。フロー制御レシーバ9304A中の
レジスタは状態IIにあるが、フロー制御トランスミッタ
9305Bはフロー制御レシーバ9304A中のレジスタは状態I
にあると考える。即ち、フロー制御トランスミッタ9305
Bは受信バッファが伝送されたパケットを受信したこと
および受信バッファが付加的なパケットを受信すること
が可能であることを示すBSM(BSM=1,0)を発生し、伝
送した。受信バッファは空であり、新しいパケットが送
信されないので、フロー制御トランスミッタ9305BはBSM
=0,0に等しいBSMだけを発生する。フロー制御レシーバ
9304A中のレジスタは状態IIにあるので、BSM=0,0はこ
れらのレジスタの状態を変更しないであろう。従って、
第1のルータ9104A中のフロー制御レシーバ9304Aは最早
受信バッファを使用しないであろう。同様に、もし第1
のルータ9104Aから伝送されたパケットが第2のルータ9
104Bによって受信されなければ、フロー制御レシーバ93
04A中のレジスタは状態IIにあるが、第2のルータ9104B
中のフロー制御トランスミッタ9305Bは、パケットが受
信されなかったことを示すBSM=0,0に等しいBSMだけを
発生する。
る。1つのバッファの喪失はネットワークの効率を低減
する。本発明に係るフロー制御プロトコルは、バッファ
の喪失を避けるために時間切れ機構を導入する。時間切
れ機構は、フロー制御レシーバ9304A中のレジスタが状
態IIにある間に予め定めた最小量のクロックサイクルが
発生したかを決定する。もし少なくともこの最小時間長
の間レジスタが状態IIにあれば、フロー制御レシーバ93
04Aはこのレジスタを状態Iにリセットし、誤りが発生
したことを識別するために誤りカウンタ(図示せず)を
インクリメントする。予め定められた数のクロックサイ
クルが発生したかを決定する1つの技術は、各バッファ
アレイ9322中の各バッファに対するカウンタを使用する
ことである。例えば、カウンタが受信バッファに対して
満期となれば、フロー制御レシーバ9304Aはそのレジス
タを状態IIから状態Iに遷移する。しかしながら、各カ
ウンタに要求されるビット数は約10または11ビットであ
る。各ルータ9104が各関連バッファに対して11ビットカ
ウンタを有する要求は価格を増大し、ルータ9104の潜在
能力を減少する。望ましい実施例において、36以上のバ
ッファが各ルータ9104に設置され得る。本発明は、特定
のルータに設置されるすべてのバッファに対して1つの
10ビットカウンタを使用することによって、各バッファ
のそれぞれに対して1ビットフラグだけを使用すること
によってこの課題を解決する。10ビットカウンタが、例
えば、全論理1から全論理零に遷移し、フロー制御レシ
ーバ9104A中の関連レジスタが状態IIにある各バッファ
に対してビットフラグが論理1に設定されたときに、10
ビットカウンタは連続的にクロックサイクルをカウント
する。もしフロー制御レシーバ9104A中のレジスタが状
態を変更したならば、1ビットフラグは論理零にリセッ
トされる。しかしながら、レジスタの状態が次の10ビッ
トカウンタによる全論理零の遷移を変更しなければ、時
間切れが発生するであろう。上述のように、時間切れが
発生したときに、フロー制御レシーバ9104Aはそのレジ
スタを状態Iに遷移する。
トランスミッタ9305B内のNMTSR9318Bだけを表す値を含
むBSMに応答する第1のルータ9104A内のフロー制御レシ
ーバ9304A内のバッファの状態を示す状態図である。フ
ロー制御レシーバ9304Aがどのように状態I、状態IIお
よび状態IIIを解釈するかは上記図10を参照して記述さ
れる。もしBSMがNMTSR9318B内に値だけを表すならば、
本発明に係るフロー制御プトコルは、BSMがNMTSR9318B
およびCFR9320Bの双方の値を表す状況とは相違して、BS
Mを解釈する。フロー制御レシーバ9304Aが初期化された
とき、フロー制御レシーバ9304A内のレジスタは状態III
を示す値に設定される。もしNMTSR9318B内の受信レジス
タに関連するビットがBSMが発生されたときに論理1に
等しければ、BSMは論理1に等しい値を有する、即ちBSM
=1である。BSM=1は(1)以前のBSMが送信されてか
らパケットデータが受信バッファによって受信されたこ
と、または(2)CFR9320Bによって示されるように以前
のBSMの送信時に受信バッファが空ではなかったことの
いずれかを示す。もしBSM=1がフロー制御レシーバ930
4Aによって、そのレジスタが状態IIIにあるときに受信
されたならば、これらのレジスタの値は変化しない。BS
M=0は受信バッファが空であることを示す。BSM=0が
フロー制御レシーバ9304Aによって受信されたときに、
レジスタの状態は状態IIIから他のパケットが受信バッ
ファに送信され得ることを示す状態Iに遷移する。
ケットがポート6バッファアレイ9322B内の受信バッフ
ァに伝送されるまで状態Iを維持する。パケットが送信
されたとき、フロー制御レシーバ9304A中のレジスタの
状態は状態Iから状態IIに遷移する。もし状態IIである
間にBSM=0が受信されれば、状態の変化は発生しな
い。BSM=0は、以前のBSMの伝送以後受信バッファによ
ってデータは受信されなかったことを示す。BSM=1
は、以前のBSMの伝送以後受信バッファによっていくつ
かのデータパケットが受信されたことの確認である。従
って、もしBSM=1が受信されれば、パケットが受信バ
ッファによって受信されたのでSANRR9308Aはリセットさ
れる。しかしながら、SANRR9308Aは受信バッファがデー
タを受信後少なくとも1つのBSMに対して1に等しく設
定されなければならないので、フロー制御レシーバ9304
A中のレジスタが状態IIにあるときにBSM=1が受信され
た場合は、BSMが送信されたときに受信バッファが空で
あるかの情報は識別され得ない。従って、SANRR9308A中
の関連ビットはリセットされ、RCFR9310A中の関連ビッ
トは論理1に設定される。BSMがNMTSR9318Bだけを表す
ときは、BSMがNMTSR9318BおよびCFR9320Bの双方を表す
ときに可能なように、フロー制御レシーバ9304A中のレ
ジスタは単一のBSMに応答して状態IIから状態Iに遷移
しない。BSMがNMTSR9318Bだけを表すときに状態IIから
状態Iに遷移するために、フロー制御レシーバは少なく
とも2つのBSMを受信しなければならない。第1のBSMは
レジスタの状態IIから状態IIIへの遷移を可能とし、第
2のBSMはレジスタの状態IIIから状態Iへの遷移を可能
とする。しかしながら、もし時間切れが発生したなら
ば、フロー制御レシーバ9304A中のレジスタは状態IIか
ら状態Iへの遷移が可能である。時間切れの発生は、上
記の図10を参照して説明される。フロー制御プロトコル
装置および方法の動作は、以下に図6−9を参照してよ
り詳細に説明される。
ルータ9104Bへのパケットの伝送に対するフロー制御プ
ロトコルのフロー線図である。アービタ2 9204Aは、
第1のルータ9104Aのポート2 9202Aを介して第2のル
ータ9104Bのポート6 9202Bに送信されるデータが存在
するかを9602で決定する。9602における送信すべきデー
タが存在するかの決定後、アービタ2 9204Aはパケッ
トのプライオリティを決定するためのフレームヘッダを
検査する。1つの実施例において、各パケットは3つの
プライオリティ、即ち高、中、低プライオリティの1つ
を有している。第1のルータ9104A中のフロー制御レシ
ーバ9304Aは9606でポート6バッファアレイ9322B中の空
のバッファの数を決定する。1つのプライオリティプロ
トコルの例において、もしただ1つのバッファが空であ
れば、フロー制御レシーバは9608でこのバッファを受信
バッファとして選択し、上述のように受信バッファのア
ドレスを変更ユニット9326Aに送信する。フロー制御レ
シーバ9304Aは、第1のルータ9104Aから第2のルータ91
04Bへパケットを伝送するためにどのパケットプライオ
リティが要求されるかを9610で決定する。例えば、ポー
ト6バッファアレイ中で少なくとも1つのバッファが空
であれば、フロー制御レシーバ9304Aは、高プライオリ
ティパケットがポート6 9202Bに伝送されることがで
きることを示す信号を高プライオリティ信号線を用いて
アービタ2に伝送する。ポート6バッファアレイ中で少
なくとも2つのバッファが空であれば、フロー制御レシ
ーバ9304Aは、高プライオリティパケットまたは中プラ
イオリティパケットがポート6 9202Bに伝送されるこ
とができることを示す信号を高プライオリティ信号線ま
たは中プライオリティ信号線を用いてアービタ2に伝送
する。ポート6バッファアレイ中で少なくとも3つのバ
ッファが空であれば、フロー制御レシーバ9304Aは、高
プライオリティパケット、中プライオリティパケットま
たは低プライオリティパケットがポート69202Bに伝送さ
れることができることを示す信号を高プライオリティ信
号線、中プライオリティ信号線または低プライオリティ
信号線を用いてアービタ2に伝送する。
ライオリティを有するかを決定するために関連するプラ
イオリティ信号線で受信される信号の値を有するフレー
ムヘッダ中でパケットプライオリティを比較する。もし
プライオリティ信号線がパケットが伝送され得ないこと
を示していれば、パケットは、パケットが送信され得る
時間までポート3バッファアレイ9322A中に残留するで
あろう。もしプライオリティ信号線がパケットが送信さ
れ得ることを示しているならば、パケットは9616におい
て上述した方法で第2のルータ9104Bのポート6 9202B
に伝送される。
ータシンクロナイザ9324Bがそれがデータパケットであ
ることを決定後、データシンクロナイザ9324Bは9620で
受信バッファ中のパケットを記憶する。データシンクロ
ナイザはデータをポート6バッファアレイ9322Bに送信
する。ポート6バッファアレイ9322B中のどのバッファ
が受信バッファであるかを決定するために、ポート6バ
ッファアレイ9322Bはフレームヘッダ中のバッファアド
レスを読むことが可能であり、フレームヘッダ中にある
アドレスのバッファにパケットを多重化する。他の技術
において、ポート6バッファアレイ9322Bはパケットが
受信される前に受信バッファを選択する。パケットが受
信された時、それは直ちに予め選択されたバッファに送
信される。フレームヘッダ中のバッファアドレスはバッ
ファタグであり、9624で実際のバッファアドレスと関連
付けられる。BSMが発生されたとき、NMTSR9318BおよびC
FR9320B中のビットは実際のバッファアドレスの代わり
にポート6バッファアレイ9322B中のバッファのバッフ
ァタグアドレスに対応する。例えば、フロー制御レシー
バ9304Aが受信バッファとして001に等しいアドレスを有
するバッファ1を選択したならば、このアドレスはフレ
ームヘッダ中に記憶される。このパケットが第2のルー
タ9104Bに伝送されたとき、データシンクロナイザ9324B
はこのパケットをポート6バッファアレイ9322Bに送信
する。ポート6バッファアレイ9322Bは、受信バッファ
としてアドレス011を有するバッファ3を選択してもよ
い。パケット中のデータはバッファ3に記憶される。し
かしながら、BSMジェネレータ9316BがNMTSR9318Bおよび
CFR9320Bを記憶したときに、バッファの状態はタグアド
レス、即ち001に対応したビット位置内に記憶される。
従って、BSMが第1のルータ9104A中のフロー制御レシー
バ9304Aによって受信されたときに、BSM中のNMTSR9318B
の値およびCFR9320Bの値は、BSMレシーバ9306Aによって
発生されたタグ値に対応している。
送られることが可能でない限り、全パケットは受信バッ
ファ内に記憶されない。このバーチャル・カット・スル
ー技術はフレームヘッダ内に全ルーチング情報を有する
ことによって達成される。従って、いったん第2のルー
タ9104Bがフレームヘッダを受信すると、第3のルータ9
104Eに接続される第3のルータ9104B内の出力ポート、
例えばポート2は既知であり、第2のルータ9104Bが全
パケット体を受信する前に第2のルータ9104Bは第3の
ルータ9104Eに対するフレームヘッダの伝送を開始する
ことが可能となる。
ルータ9104B中のフロー制御トランスミッタ9305BはBSM
ジェネレータ9316Bに受信バッファの状態を送信する。
以前のBSMが発生され、データが受信バッファで受信さ
れたときに受信バッファが空であれば、NMTSR9318B内の
関連するビットは9626で論理1に等しく設定する。上述
したように、パケットが第2のルータ9104Bによって受
信されたことの確認として機能するために、NMTSR9318B
内のビットは少なくとも1つのBSMに対して論理1の等
値を維持する。さらに、受信バッファが空でないとき、
CFR9320Bはまた9628で論理1に設定される。しかしなが
ら、もしBSMが発生される前に受信バッファが空になれ
ば、CFR9320Bは9630で受信バッファが空であることを示
す論理零にリセットされる。上述のように、NMTSR9138B
および多分CFR9320Bの内容はBSM中に含まれる。BSMの伝
送および受信に関するより詳細な説明は図13−15を参照
して以下に記述される。
び伝送技術のフロー線図である。データパケットが第2
のルータ9104Bから第1のルータ9104Aに伝送されなかっ
たときは常に、即ちパケットが上記例に記載されたもの
から反対方向に伝送されたときは、フロー制御トランシ
ミッタ9305BはBSMを伝送する。もし反対方向へのデータ
フローが重ければ、全データパケットが送信される後ま
で、BSMは送信されない。しかしながら、フロー制御ト
ランシミッタ9305Bがフロー制御レシーバ9304Aに直ちに
BSMを伝送することが重要である状況がある。この状況
の一例は、バッファがポート6バッファアレイ9322B中
で使用可能となったときである。例えばパケットが送信
されるようにポート6バッファアレイ9322B内で十分な
バッファが使用可能となることを待っている第1のルー
タ9104A中のバッファアレイ9322中に記憶されるパケッ
トが存在するので、フロー制御レシーバ9304Aがバッフ
ァが使用可能となったことを示すBSMを受信することは
重要であるかもしれない。例えば、フロー制御レシーバ
9304A内の情報がポート6バッファアレイ9322B内で2つ
のバッファだけが使用可能であることを示していれば、
上述のプライオリティプロトコルが使用されるならば、
低プライオリティを有するパケットは第1のルータ9104
Aから第2のルータ9104Bのポート6 9202Bに送信され
得ない。第3のバッファがポート6バッファアレイ9322
B内で使用可能となったときに、この情報はBSMの形式で
フロー制御レシーバ9304Aに伝送され得る。迅速なBSMの
伝送のために、フロー制御トランスミッタは第2のルー
タ9104B中のアービタ6 9204BにBSMが可能な限り迅速
に伝送されることをリクエストする信号を送信する。ア
ービタ6 9204Bは第2のルータ9104B上のMUX9328Bを制
御する信号を発生する。この信号に応答して、例えば現
在伝送中のパケットが完全に伝送された後に、MUX9328B
は信号線9212上でBSMを多重化することが可能である。
レータ9316Bは9704でBSMを発生する。上述のように、BS
Mの内容はNMTSR9318BまたはNMTSR9318BとCFR9320Bの双
方であり得る。もしCFR9320Bの値が論理零であり以前の
BSMが送信されて以後いくつかのデータがバッファ中に
受信されたならば、バッファに関連するNMTSR9318B内の
値が上述したようにパケットが受信されたことを示すた
めに論理1に等しく設定されるという例外の下に、NMTS
R9318Bの内容は以前のBSM時のCFR9320Bの内容に等し
い。フロー制御トランシミッタ9305Bは、9706でBSMをMU
X9328Bに伝送する。そしてMUX9328Bは9708でBSMを第1
のルータ9104Aに伝送する。9706でBSMパケットをMUX932
8Bに伝送した後、フロー制御トランシミッタ9305Bは971
0でNMTSR9318BをCFR9320Bに等しく設定する。
術のフロー線図である。データシンクロナイザ9324AがB
SMを受信し、BSMがデータパケットでなくバッファ状態
メッセージであることを9802で決定し、BSMをフロー制
御レシーバ9304Aに送信する。フロー制御レシーバ9304A
は9804で各バッファを選択し、各バッファに対して並列
に図14に残りのステップを実行する。フロー制御レシー
バ9304A中のBSMレシーバ9306Aは9806でSANRR9308A中の
各バッファに関連するビットが論理1に等しいかを決定
する。もしSANRR9308Aが論理1に等しければ、BSMレシ
ーバ9306Aは9808でBSMのNMTSR9318B部中の各バッファに
関連するビットが論理1に等しいかを決定する。NMTSR
=1であれば、SANRR9308Aは9810で論理零に設定され、
処理はステップ9812に進む。もしSANRR9308Aの値が論理
零に等しいか、もしNMTSR9318Bの値が論理零に等しけれ
ば、処理はステップ9812に進む。もしBSMがNMTSR9318B
およびCFR9320Bの双方を表すならば、RCFR9310A内の各
ビットはステップ9812でCFR9320B内の関連するビットに
等しく設定される。もしBSMがNMTSR9318Bだけを表すの
であれば、BSMレシーバ9306Aは9812でRCFR9310AをBSMの
NMTSR9318B部内の関連するビットに等しく設定する。そ
してBSMレシーバ9306Aは9814で、BBR9312A内の各ビット
をSANRR9308AおよびRCFR9310A内の関連するビットの論
理的ORに等しく設定する。
例である。図15において、RCFR9310A、SANRR9308Aおよ
びBBR9312Aとラベル付けされた3つのレジスタは、パケ
ットが第1のルータ9104Aから第2のルータ9104Bに伝送
されたときの、第1のルータ9104A中のフロー制御レシ
ーバ9304A中のレジスタの値に対応している。CFR9320B
およびNMTSR9318Bとラベル付けされた2つのレジスタ
は、パケットが第1のルータ9104Aから第2のルータ910
4Bに伝送されたときの、第2のルータ9104B中のフロー
制御トランスミッタ9305B中のこれらのレジスタの値に
対応している。図15(a)は、ルータ9104が初期化され
たときのレジスタの値を示している。図10および図11の
状態線図に示されているように、RCFR9310AおよびBBR93
12A内の値は論理1に等しく設定されるが、残りのレジ
スタの値は論理零に設定されたままである。フロー制御
トランスミッタ9305Bは、上述したように第1のBSMを発
生し、それをフロー制御レシーバ9304Aに伝送する。第
1のBSM受信後のレジスタの値は図15(b)に示されて
いる。第1のBSMは、BSMのサイズに応じてBSM=0,0また
はBSM=0のいずれかに等しい。いずれの状況であって
も、フロー制御レシーバ9304Aのレジスタは状態IIIから
状態Iに遷移する。この例の残りの部分は、上述したよ
うにポート6バッファアレイ9322B中の第1のバッファ
またはタグ001に関連するバッファを含む。第1のルー
タ9104Aはパケットを第2のルータ9104Bに伝送する。パ
ケット伝送後のレジスタの状態は、図15(c)に示され
ている。図15(c)において、第1のルータ9104Aはパ
ケットを送信したが確認信号を受信しなかったのでSANR
R9308Aは論理1に等しく設定される。SANRR9308Aは論理
1に等しく設定されているので、BBR9312Aもまた論理1
に設定される。
信され、フロー制御トランスミッタはNMTSR9318Bおよび
RCFR9320Bを更新した後、レジスタの値は図15(d)に
示される値となる。図15(d)において、BSMがフロー
制御レシーバ9304Aによって受信されていないので、SAN
RR9308A、RCFR9310AおよびBBR9312Aの値は変化しなかっ
た。しかしながら、第1のBSMが送信された後にデータ
がポート6バッファアレイ9322Bによって受信されたの
で、NMTSR9318B内の第1ビットは論理1に等しい。第1
のバッファは空ではないので、CFR9320B内の第1ビット
もまた論理1に設定される。しかしながら、第2のBSM
が送信される前に、パケットが第3のルータ9104Eに伝
送され、第1のバッファは空となる。従って、第2のBS
Mが発生されたときのCFR9320Bの値は、論理零に等し
い。これは図15(e)に示されている。レジスタの値が
図15(e)に示されているようであるときは、フロー制
御トランスミッタ9305Bは第2のBSMを発生し伝送する。
もし第2のBSMがNMTSR9318BおよびCFR9320Bの双方を含
むならば、フロー制御レシーバ9304A内のレジスタの値
は第2のBSMの受信後、図15(g)に示すものとなる。
図15(g)において、SANRR9308A、RCFR9310AおよびBBR
9312A内の全ビットの値は論理零に等しくなる。CFR9320
Bの値がNMTSR9318B内に記憶されるので、フロー制御ト
ランスミッタ9305B中のレジスタの値も全て論理零に等
しい。これは、図10に示す状態IIから状態Iに遷移した
フロー制御レシーバ9304A内のレジスタに等しい。もし
第2のBSMがNMTSR9318Bだけを含むときは、フロー制御
レシーバ9304Aが第2のBSMを受信した後のレジスタの値
は図15(f)に示すものとなる。これは、図11に示す状
態IIから状態IIIに遷移したフロー制御レシーバ9304A内
のレジスタに等しい。以後は、フロー制御トランスミッ
タ9305Bは、NMTSR9318Bの値だけを含む第3のBSMを発生
し伝送するであろう。第3のBSMを受信後、レジスタの
値は図15(g)に示すようになる。これは図11に示す状
態IIIから状態Iに遷移したフロー制御レシーバ9304A内
のレジスタに等しい。
Claims (3)
- 【請求項1】出力へのアクセスが許容されたデータパケ
ットが第2のルーチングデバイスの受信入力バッファに
伝送されるパケットスイッチネットワークにおける第1
のルーチングデバイスの出力へのアクセスの調整方法で
あって、 出力にアクセスするためにデータパケットから少なくと
も1つのリクエストを受信する段階と、 リクエストを選択する段階と、 第2のルーチングデバイスからの、受信入力バッファの
空き容量の通知を受信する段階と、 該空き容量の通知に基いて第2のルーチングデバイスの
受信入力バッファがデータパケットを受信するための容
量を有するかを決定する段階と、 受信入力バッファがデータパケットを受信するための容
量を有するという決定に応答して、選択されたリクエス
トを許容する段階と、 受信入力バッファがデータパケットを受信するための容
量を有しないという決定に応答して、選択されたリクエ
ストを許容しない段階と、を具備する調整方法。 - 【請求項2】選択されたリクエストがプライオリティを
有し、 前記決定する段階が、受信入力バッファの空き容量から
選択されたリクエストが許容される最低のプライオリテ
ィを決定する段階を含むものである請求項1に記載の調
整方法。 - 【請求項3】出力へのアクセスが許容されたデータパケ
ットが第2のルーチングデバイスの受信入力バッファに
伝送されるパケットスイッチネットワークにおける第1
のルーチングデバイスの出力へのアクセスの調整装置で
あって、 出力にアクセスするためのリクエストを受信し記憶する
記憶デバイスと、 第2のルーチングデバイスからの、受信入力バッファの
空き容量の通知を受信する手段と、 リクエストを選択し、該空き容量の通知に基いて第2の
ルーチングデバイスの受信入力バッファがデータパケッ
トを受信するための容量を有するかを決定し、 受信入力バッファがデータパケットを受信するための容
量を有することに応答して、選択されたリクエストを許
容するために、前記記憶デバイスに接続されるコントロ
ーラと、を具備する調整装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/603,880 US5892766A (en) | 1996-02-22 | 1996-02-22 | Method and apparatus for coordinating access to an output of a routing device in a packet switching network |
US08/603,880 | 1996-02-22 | ||
PCT/US1997/002698 WO1997031460A1 (en) | 1996-02-22 | 1997-02-20 | Method and apparatus for coordinating access to an output of a routing device in a packet switching network |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11504781A JPH11504781A (ja) | 1999-04-27 |
JP3517245B2 true JP3517245B2 (ja) | 2004-04-12 |
Family
ID=24417307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP53032897A Expired - Fee Related JP3517245B2 (ja) | 1996-02-22 | 1997-02-20 | パケットスイッチングネットワーク内のルーチングデバイス出力アクセス用調整方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5892766A (ja) |
EP (1) | EP0823167B1 (ja) |
JP (1) | JP3517245B2 (ja) |
DE (1) | DE69738798D1 (ja) |
WO (1) | WO1997031460A1 (ja) |
Families Citing this family (109)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3335069B2 (ja) * | 1996-04-11 | 2002-10-15 | 富士通株式会社 | 固定長セル多重伝送装置,固定長セル多重伝送方法,固定長セル送信装置及び固定長セル多重装置 |
US6442172B1 (en) | 1996-07-11 | 2002-08-27 | Alcatel Internetworking, Inc. | Input buffering and queue status-based output control for a digital traffic switch |
US5768257A (en) * | 1996-07-11 | 1998-06-16 | Xylan Corporation | Input buffering/output control for a digital traffic switch |
JP3590203B2 (ja) | 1996-07-16 | 2004-11-17 | 株式会社東芝 | 記憶手段の制御方法及びその装置 |
US6285679B1 (en) * | 1997-08-22 | 2001-09-04 | Avici Systems, Inc. | Methods and apparatus for event-driven routing |
US6865154B1 (en) | 1998-01-12 | 2005-03-08 | Enterasys Networks, Inc. | Method and apparatus for providing bandwidth and delay guarantees in combined input-output buffered crossbar switches that implement work-conserving arbitration algorithms |
CA2318163A1 (en) * | 1998-01-12 | 1999-07-15 | Cabletron Systems, Inc. | Method for providing delays independent of switch size in a crossbar switch with speedup |
US6563837B2 (en) | 1998-02-10 | 2003-05-13 | Enterasys Networks, Inc. | Method and apparatus for providing work-conserving properties in a non-blocking switch with limited speedup independent of switch size |
US6105095A (en) * | 1998-02-23 | 2000-08-15 | Motorola, Inc. | Data packet routing scheduler and method for routing data packets on a common bus |
US6456628B1 (en) * | 1998-04-17 | 2002-09-24 | Intelect Communications, Inc. | DSP intercommunication network |
DE69940571D1 (de) * | 1998-12-03 | 2009-04-23 | Agency Ind Science Techn | Kommunikationsverfahren und -system |
US6324613B1 (en) * | 1999-01-05 | 2001-11-27 | Agere Systems Guardian Corp. | Port router |
JP3319723B2 (ja) * | 1999-04-02 | 2002-09-03 | 日本電気株式会社 | スイッチ及びそのスケジューラ並びにスイッチスケジューリング方法 |
US6891834B1 (en) * | 1999-09-09 | 2005-05-10 | Avici Systems | Apparatus and method for packet scheduling |
AU2001231263A1 (en) | 2000-01-31 | 2001-08-07 | Texas Instruments Incorporated | Home networking over phone lines |
US6731645B1 (en) * | 2000-02-29 | 2004-05-04 | International Business Machines Corporation | Methods, switches, systems, and computer program products for fair transmission of data received at multiple inputs in the order received in a queued memory switch |
US6961781B1 (en) * | 2000-08-31 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Priority rules for reducing network message routing latency |
US7012895B1 (en) | 2000-11-17 | 2006-03-14 | University Of Kentucky Research Foundation | Packet-switching network with symmetrical topology and method of routing packets |
US7283554B2 (en) * | 2001-02-12 | 2007-10-16 | Texas Instruments Incorporated | Network manager for a hybrid network environment |
US20020167902A1 (en) * | 2001-04-27 | 2002-11-14 | Foster Michael S. | Method and system for performing security via virtual addressing in a communications network |
AU2002258931A1 (en) * | 2001-04-27 | 2002-11-11 | The Boeing Company | Method and system for virtual addressing in a communications network |
US20030210685A1 (en) * | 2001-04-27 | 2003-11-13 | Foster Michael S. | Method and system for interswitch deadlock avoidance in a communications network |
US7068672B1 (en) * | 2001-06-04 | 2006-06-27 | Calix Networks, Inc. | Asynchronous receive and transmit packet crosspoint |
US7068603B2 (en) * | 2001-07-06 | 2006-06-27 | Juniper Networks, Inc. | Cross-bar switch |
US7120113B1 (en) * | 2001-07-16 | 2006-10-10 | Juniper Networks, Inc. | Systems and methods for limiting low priority traffic from blocking high priority traffic |
US6763418B1 (en) | 2001-09-07 | 2004-07-13 | Agilent Technologies, Inc. | Request bus arbitration |
US6950394B1 (en) | 2001-09-07 | 2005-09-27 | Agilent Technologies, Inc. | Methods and systems to transfer information using an alternative routing associated with a communication network |
US7237016B1 (en) | 2001-09-07 | 2007-06-26 | Palau Acquisition Corporation (Delaware) | Method and system to manage resource requests utilizing link-list queues within an arbiter associated with an interconnect device |
US7054330B1 (en) | 2001-09-07 | 2006-05-30 | Chou Norman C | Mask-based round robin arbitration |
US6920106B1 (en) | 2001-09-07 | 2005-07-19 | Agilent Technologies, Inc. | Speculative loading of buffers within a port of a network device |
US7274692B1 (en) | 2001-10-01 | 2007-09-25 | Advanced Micro Devices, Inc. | Method and apparatus for routing packets that have multiple destinations |
US7295563B2 (en) * | 2001-10-01 | 2007-11-13 | Advanced Micro Devices, Inc. | Method and apparatus for routing packets that have ordering requirements |
US6839794B1 (en) | 2001-10-12 | 2005-01-04 | Agilent Technologies, Inc. | Method and system to map a service level associated with a packet to one of a number of data streams at an interconnect device |
US6922749B1 (en) | 2001-10-12 | 2005-07-26 | Agilent Technologies, Inc. | Apparatus and methodology for an input port of a switch that supports cut-through operation within the switch |
US7209476B1 (en) | 2001-10-12 | 2007-04-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and apparatus for input/output port mirroring for networking system bring-up and debug |
US7290277B1 (en) * | 2002-01-24 | 2007-10-30 | Avago Technologies General Ip Pte Ltd | Control of authentication data residing in a network device |
US7016996B1 (en) | 2002-04-15 | 2006-03-21 | Schober Richard L | Method and apparatus to detect a timeout condition for a data item within a process |
US7024492B2 (en) * | 2002-05-24 | 2006-04-04 | Convedia Corporation | Media bus interface arbitration for a data server |
US7313090B2 (en) * | 2002-09-26 | 2007-12-25 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for providing data packet flow control |
CA2508051C (en) * | 2002-12-20 | 2009-06-30 | International Business Machines Corporation | Maximum lifetime routing in wireless ad-hoc networks |
KR100532416B1 (ko) * | 2003-01-18 | 2005-11-30 | 삼성전자주식회사 | 다중 소스의 다중 채널로의 할당 방법 및 시스템 |
US7447205B2 (en) * | 2003-05-09 | 2008-11-04 | Hewlett-Packard Development Company, L.P. | Systems and methods to insert broadcast transactions into a fast data stream of transactions |
US7876763B2 (en) * | 2004-08-05 | 2011-01-25 | Cisco Technology, Inc. | Pipeline scheduler including a hierarchy of schedulers and multiple scheduling lanes |
US7522609B2 (en) * | 2004-01-14 | 2009-04-21 | Cisco Technology, Inc | Propagation of minimum guaranteed scheduling rates among scheduling layers in a hierarchical schedule |
US20060041705A1 (en) * | 2004-08-20 | 2006-02-23 | International Business Machines Corporation | System and method for arbitration between shared peripheral core devices in system on chip architectures |
US7599381B2 (en) * | 2004-12-23 | 2009-10-06 | Cisco Technology, Inc. | Scheduling eligible entries using an approximated finish delay identified for an entry based on an associated speed group |
US7672303B1 (en) * | 2005-02-17 | 2010-03-02 | Emc Corporation | Arbitration method and system |
US7724733B2 (en) * | 2005-03-31 | 2010-05-25 | International Business Machines Corporation | Interconnecting network for switching data packets and method for switching data packets |
US8018845B2 (en) * | 2006-01-25 | 2011-09-13 | Cisco Technology, Inc | Sampling rate-limited traffic |
US8077611B2 (en) * | 2006-07-27 | 2011-12-13 | Cisco Technology, Inc. | Multilevel coupled policer |
US8625624B1 (en) * | 2008-06-13 | 2014-01-07 | Cisco Technology, Inc. | Self-adjusting load balancing among multiple fabric ports |
US8243737B2 (en) * | 2009-03-23 | 2012-08-14 | Lsi Corporation | High speed packet FIFO input buffers for switch fabric with speedup and retransmit |
US8910171B2 (en) * | 2009-04-27 | 2014-12-09 | Lsi Corporation | Thread synchronization in a multi-thread network communications processor architecture |
US8873550B2 (en) | 2010-05-18 | 2014-10-28 | Lsi Corporation | Task queuing in a multi-flow network processor architecture |
US8537832B2 (en) * | 2010-03-12 | 2013-09-17 | Lsi Corporation | Exception detection and thread rescheduling in a multi-core, multi-thread network processor |
US8869150B2 (en) | 2010-05-18 | 2014-10-21 | Lsi Corporation | Local messaging in a scheduling hierarchy in a traffic manager of a network processor |
US8705531B2 (en) | 2010-05-18 | 2014-04-22 | Lsi Corporation | Multicast address learning in an input/output adapter of a network processor |
US8869156B2 (en) | 2010-05-18 | 2014-10-21 | Lsi Corporation | Speculative task reading in a traffic manager of a network processor |
US8321385B2 (en) * | 2010-03-12 | 2012-11-27 | Lsi Corporation | Hash processing in a network communications processor architecture |
US8874878B2 (en) | 2010-05-18 | 2014-10-28 | Lsi Corporation | Thread synchronization in a multi-thread, multi-flow network communications processor architecture |
US8843682B2 (en) | 2010-05-18 | 2014-09-23 | Lsi Corporation | Hybrid address mutex mechanism for memory accesses in a network processor |
US8615013B2 (en) | 2010-05-18 | 2013-12-24 | Agere Systems Llc | Packet scheduling with guaranteed minimum rate in a traffic manager of a network processor |
US8910168B2 (en) | 2009-04-27 | 2014-12-09 | Lsi Corporation | Task backpressure and deletion in a multi-flow network processor architecture |
US8499137B2 (en) * | 2010-03-12 | 2013-07-30 | Lsi Corporation | Memory manager for a network communications processor architecture |
US8505013B2 (en) * | 2010-03-12 | 2013-08-06 | Lsi Corporation | Reducing data read latency in a network communications processor architecture |
US8848723B2 (en) | 2010-05-18 | 2014-09-30 | Lsi Corporation | Scheduling hierarchy in a traffic manager of a network processor |
US8949578B2 (en) | 2009-04-27 | 2015-02-03 | Lsi Corporation | Sharing of internal pipeline resources of a network processor with external devices |
US8515965B2 (en) | 2010-05-18 | 2013-08-20 | Lsi Corporation | Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors |
US8547878B2 (en) | 2010-05-18 | 2013-10-01 | Lsi Corporation | Modularized scheduling engine for traffic management in a network processor |
US8539199B2 (en) * | 2010-03-12 | 2013-09-17 | Lsi Corporation | Hash processing in a network communications processor architecture |
US9218290B2 (en) | 2009-04-27 | 2015-12-22 | Intel Corporation | Data caching in a network communications processor architecture |
US8576862B2 (en) | 2010-05-18 | 2013-11-05 | Lsi Corporation | Root scheduling algorithm in a network processor |
US9160684B2 (en) | 2009-04-27 | 2015-10-13 | Intel Corporation | Dynamic updating of scheduling hierarchy in a traffic manager of a network processor |
US8638805B2 (en) | 2010-05-18 | 2014-01-28 | Lsi Corporation | Packet draining from a scheduling hierarchy in a traffic manager of a network processor |
US8869151B2 (en) | 2010-05-18 | 2014-10-21 | Lsi Corporation | Packet draining from a scheduling hierarchy in a traffic manager of a network processor |
US8917738B2 (en) | 2009-04-27 | 2014-12-23 | Lsi Corporation | Multicasting traffic manager in a network communications processor architecture |
US9300597B2 (en) | 2009-04-27 | 2016-03-29 | Intel Corporation | Statistics module for network processors in virtual local area networks |
US9444757B2 (en) | 2009-04-27 | 2016-09-13 | Intel Corporation | Dynamic configuration of processing modules in a network communications processor architecture |
US8868889B2 (en) * | 2010-03-12 | 2014-10-21 | Lsi Corporation | Instruction breakpoints in a multi-core, multi-thread network communications processor architecture |
US9461930B2 (en) | 2009-04-27 | 2016-10-04 | Intel Corporation | Modifying data streams without reordering in a multi-thread, multi-flow network processor |
US8949500B2 (en) | 2011-08-08 | 2015-02-03 | Lsi Corporation | Non-blocking processor bus bridge for network processors or the like |
US8352669B2 (en) * | 2009-04-27 | 2013-01-08 | Lsi Corporation | Buffered crossbar switch system |
US8761204B2 (en) | 2010-05-18 | 2014-06-24 | Lsi Corporation | Packet assembly module for multi-core, multi-thread network processors |
US8489794B2 (en) * | 2010-03-12 | 2013-07-16 | Lsi Corporation | Processor bus bridge for network processors or the like |
US8943507B2 (en) * | 2009-04-27 | 2015-01-27 | Deepak Mital | Packet assembly module for multi-core, multi-thread network processors |
US8837501B2 (en) | 2010-05-18 | 2014-09-16 | Lsi Corporation | Shared task parameters in a scheduler of a network processor |
US8677075B2 (en) | 2010-05-18 | 2014-03-18 | Lsi Corporation | Memory manager for a network communications processor architecture |
US8935483B2 (en) * | 2009-04-27 | 2015-01-13 | Lsi Corporation | Concurrent, coherent cache access for multiple threads in a multi-core, multi-thread network processor |
US8565250B2 (en) | 2010-05-18 | 2013-10-22 | Lsi Corporation | Multithreaded, superscalar scheduling in a traffic manager of a network processor |
US8683221B2 (en) | 2010-05-18 | 2014-03-25 | Lsi Corporation | Configurable memory encryption with constant pipeline delay in a multi-core processor |
US8407707B2 (en) * | 2009-05-18 | 2013-03-26 | Lsi Corporation | Task queuing in a network communications processor architecture |
US8514874B2 (en) * | 2010-03-12 | 2013-08-20 | Lsi Corporation | Thread synchronization in a multi-thread network communications processor architecture |
US8619787B2 (en) | 2010-05-18 | 2013-12-31 | Lsi Corporation | Byte-accurate scheduling in a network processor |
US9183145B2 (en) | 2009-04-27 | 2015-11-10 | Intel Corporation | Data caching in a network communications processor architecture |
US9727508B2 (en) | 2009-04-27 | 2017-08-08 | Intel Corporation | Address learning and aging for network bridging in a network processor |
US9152564B2 (en) | 2010-05-18 | 2015-10-06 | Intel Corporation | Early cache eviction in a multi-flow network processor architecture |
US8949582B2 (en) | 2009-04-27 | 2015-02-03 | Lsi Corporation | Changing a flow identifier of a packet in a multi-thread, multi-flow network processor |
EP2336894B1 (en) * | 2009-12-18 | 2014-03-26 | STMicroelectronics Srl | On-chip interconnect method and system, and corresponding computer program product |
US9755947B2 (en) | 2010-05-18 | 2017-09-05 | Intel Corporation | Hierarchical self-organizing classification processing in a network switch |
US9485200B2 (en) | 2010-05-18 | 2016-11-01 | Intel Corporation | Network switch with external buffering via looparound path |
CN102158402B (zh) * | 2011-03-16 | 2013-10-02 | 华为技术有限公司 | 一种纵横式交换矩阵缓存信元的方法及装置 |
US9065761B2 (en) | 2011-07-25 | 2015-06-23 | Intel Corporation | Packet reassembly processing |
US10372640B2 (en) * | 2016-11-21 | 2019-08-06 | International Business Machines Corporation | Arbitration of data transfer requests |
US10587504B2 (en) | 2017-02-08 | 2020-03-10 | International Business Machines Corporation | Packet broadcasting mechanism for mesh interconnected multi-computers |
US11275632B2 (en) | 2018-09-14 | 2022-03-15 | Advanced Micro Devices, Inc. | Broadcast command and response |
CN113010173A (zh) | 2019-12-19 | 2021-06-22 | 超威半导体(上海)有限公司 | 并行处理中矩阵数据广播的方法 |
CN113094099A (zh) | 2019-12-23 | 2021-07-09 | 超威半导体(上海)有限公司 | 矩阵数据广播架构 |
US11403221B2 (en) | 2020-09-24 | 2022-08-02 | Advanced Micro Devices, Inc. | Memory access response merging in a memory hierarchy |
WO2023217364A1 (en) * | 2022-05-11 | 2023-11-16 | Huawei Technologies Co., Ltd. | A self-adaptive traffic arbitration engine |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5434848A (en) | 1994-07-28 | 1995-07-18 | International Business Machines Corporation | Traffic management in packet communications networks |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US547375A (en) * | 1895-10-01 | Half to william g | ||
JPH01177239A (ja) * | 1988-01-06 | 1989-07-13 | Nec Corp | パケット集線装置及びパケット交換機 |
US4995056A (en) * | 1989-01-13 | 1991-02-19 | International Business Machines Corporation | System and method for data communications |
US4965793A (en) * | 1989-02-03 | 1990-10-23 | Digital Equipment Corporation | Method and apparatus for interfacing a system control unit for a multi-processor |
JP2531275B2 (ja) * | 1989-09-29 | 1996-09-04 | 日本電気株式会社 | Atmセル転送方式 |
US5291481A (en) * | 1991-10-04 | 1994-03-01 | At&T Bell Laboratories | Congestion control for high speed packet networks |
SE515178C2 (sv) * | 1992-03-20 | 2001-06-25 | Ericsson Telefon Ab L M | Förfaranden och anordningar för prioritering vid bufferthantering i paketnät |
US5473752A (en) * | 1993-03-17 | 1995-12-05 | Detector Electronics Corporation | Fault isolation circuit |
US5541919A (en) * | 1994-12-19 | 1996-07-30 | Motorola, Inc. | Multimedia multiplexing device and method using dynamic packet segmentation |
US5689500A (en) * | 1996-01-16 | 1997-11-18 | Lucent Technologies, Inc. | Multistage network having multicast routing congestion feedback |
-
1996
- 1996-02-22 US US08/603,880 patent/US5892766A/en not_active Expired - Lifetime
-
1997
- 1997-02-20 JP JP53032897A patent/JP3517245B2/ja not_active Expired - Fee Related
- 1997-02-20 DE DE69738798T patent/DE69738798D1/de not_active Expired - Lifetime
- 1997-02-20 WO PCT/US1997/002698 patent/WO1997031460A1/en active Application Filing
- 1997-02-20 EP EP97907740A patent/EP0823167B1/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5434848A (en) | 1994-07-28 | 1995-07-18 | International Business Machines Corporation | Traffic management in packet communications networks |
Also Published As
Publication number | Publication date |
---|---|
US5892766A (en) | 1999-04-06 |
DE69738798D1 (de) | 2008-08-14 |
JPH11504781A (ja) | 1999-04-27 |
EP0823167A1 (en) | 1998-02-11 |
EP0823167B1 (en) | 2008-07-02 |
WO1997031460A1 (en) | 1997-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3517245B2 (ja) | パケットスイッチングネットワーク内のルーチングデバイス出力アクセス用調整方法および装置 | |
JP3739799B2 (ja) | フロー制御プロトコルシステムおよび方法 | |
US5659718A (en) | Synchronous bus and bus interface device | |
EP1287648B1 (en) | Switching system | |
JP3448067B2 (ja) | ネットワークアダプタのためのネットワークコントローラ | |
US5745477A (en) | Traffic shaping and ABR flow control | |
US6747984B1 (en) | Method and apparatus for transmitting Data | |
US5884040A (en) | Per-packet jamming in a multi-port bridge for a local area network | |
AU738983B2 (en) | Networking systems | |
EP0669778B1 (en) | Fast-packet switching networks | |
US7274660B2 (en) | Method of flow control | |
US20130182704A1 (en) | Prioritization and preemption of data frames over a switching fabric | |
US20030126297A1 (en) | Network processor interface system | |
JPH10505214A (ja) | フィードバック・ネットワークにおけるバッファ先頭からのドロップ方法 | |
RU2117405C1 (ru) | Система связи | |
US20020065991A1 (en) | Method and apparatus for increasing data rates in a data network while maintaining system coherency | |
US6301256B1 (en) | Selection technique for preventing a source port from becoming a destination port in a multi-port bridge for a local area network | |
JPH10243000A (ja) | スイッチングフロー制御 | |
US6195334B1 (en) | Apparatus and method for terminating a data transfer in a network switch in response to a detected collision | |
US6725270B1 (en) | Apparatus and method for programmably modifying a limit of a retry counter in a network switch port in response to exerting backpressure | |
JPH0773290B2 (ja) | 順序を保持したデータ・ストリーム伝送におけるリンク切替え方法 | |
WO1999014901A1 (en) | High speed bus structure in a multi-port bridge for a local area network | |
JPH11239163A (ja) | Lan間フロー制御方法及びスイッチ | |
EP1106003A1 (en) | Method and system for prioritised congestion control in a switching hub | |
US6819675B2 (en) | Self-route multi-memory expandable packet switch with overflow processing means |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040123 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080130 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090130 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100130 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110130 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110130 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120130 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130130 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130130 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140130 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |