JP2001514463A - 仮想チャネル割当てを持つルータ - Google Patents

仮想チャネル割当てを持つルータ

Info

Publication number
JP2001514463A
JP2001514463A JP2000508177A JP2000508177A JP2001514463A JP 2001514463 A JP2001514463 A JP 2001514463A JP 2000508177 A JP2000508177 A JP 2000508177A JP 2000508177 A JP2000508177 A JP 2000508177A JP 2001514463 A JP2001514463 A JP 2001514463A
Authority
JP
Japan
Prior art keywords
router
virtual
channel
fabric
output
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
JP2000508177A
Other languages
English (en)
Inventor
ダリー・ウィリアム・ジェー
カーベイ・フィリップ・ピー
デンニソン・ラリー・アール
キング・ピー・アレン
Original Assignee
エイヴィシー・システムズ
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
Priority claimed from US08/918,556 external-priority patent/US6370145B1/en
Application filed by エイヴィシー・システムズ filed Critical エイヴィシー・システムズ
Publication of JP2001514463A publication Critical patent/JP2001514463A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/06Deflection routing, e.g. hot-potato routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/10Routing in connection-oriented networks, e.g. X.25 or ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/14Routing performance; Theoretical aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/247Multipath using M:N active or standby paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/40Wormhole routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • 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
    • 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/112Switch control, e.g. arbitration
    • 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/251Cut-through or wormhole routing
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/168Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP] specially adapted for link layer protocols, e.g. asynchronous transfer mode [ATM], synchronous optical network [SONET] or point-to-point protocol [PPP]
    • 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/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • 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/50Overload detection or protection within a single switching element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/505Corrective measures

Abstract

(57)【要約】 インターネットルータは、ファブリックルータおよびリンクのネットワークファブリックとして実行される。インターネットルータは、データパケットを中継線、または他のインターネットリンクから受け取り、データパケットの中のヘッダ情報を分析して、データパケットを出力インターネットリンクにルーティングする。またラインインターフェースは、ヘッダを分析してルータファブリックを通るファブリックの経路を定義する。インターネットパケットは、フリットに分割され、これは虫穴的(パケットを連続でなく回線の空いた部分に分割して送信する意味)ルーティングプロトコルによってルータを通して転送される。フリットは、宛先インターネットリンクに対応する仮想チャネルに指定された格納位置に於けるファブリックルータ内に格納される。ファブリック内の仮想チャネルおよびリンクは仮想ネットワークを定義し、その仮想ネットワーク中では、1つ仮想ネットワーク中の混雑が他の仮想ネットワークを通るデータの流れを実質的に妨害しない。調整は各ファブリックルータで実行され、仮想チャネルに対してパケットを割当て、また出力ファブリックリンクに対して仮想チャネルを割当てる。データパケットは、複数バーチャルチャネルへのアクセスを共有し、アクセスは分散コードベクタにより定義される。仮想チャネルは、経路の次のファブリックルータにおける特定の入力バッファが利用可能であることの表示を確認した上で、出力ファブリックリンクに対し可能な割当てを付与する。

Description

【発明の詳細な説明】
【0001】
【従来の技術】
ウエブブラウジング、電子メール、ファイル転送および電子商取引などの利用
におけるコンピュータシステム間のデータ通信は、多くの場合IP(インターネ
ットプロトコール)および時としてTCP/IPとして知られる一群のプロトコ
ルを用いて行われる。広範なデータ通信を用いる用途が次第に普及するにつれて
、バックボーンであるIPネットワーク上のトラフィック量は指数関数的に増大
しつつある。毎秒テラビットの総合帯域幅で動作する数百のポートを持つIPル
ータが、バックボーンの需要の増加にこたえるために今後の数年には必要となる
【0002】 図1に示されるようにインターネットは、ネットワーク階層で構成されている
。代表的なエンドユーザは、ローカルエリアネットワークつまりLAN24に接
続されたワークステーション22を有している。LAN上のユーザがインターネ
ットの他の部分にアクセスすることを可能にするために、LANは、ルータRを
介して地域ネットワークプロバイダつまりRNPにより維持操作される地域ネッ
トワーク26に接続されている。接続は、しばしばインターネット・サービス・
プロバイダつまりISPを通じて行われる。他の地域にアクセスするには、地域
ネットワークはネットワーク・アクセス・ポイント(NAP)においてバックボ
ーンネットワーク28に接続される。NAPは、通常主要都市に存在する。
【0003】 ネットワークは、リンクとルータから構成される。ネットワークバックボーン
においては、リンクは通常SONET(シンクロナスオプティカルネットワーク
)プロトコルを使用する光ファイバー通信チャネルである。SONETリンクは
、OC−3(155Mb/秒)からOC−192(9.9Gb/秒)にまたがる
各種のデータレートを可能にする。これらのリンクは、時として中継線と呼ばれ
、データを或る点から別の点に、しばしば遠距離を移動させる。
【0004】 ルータは、リンクのグループを互いに接続し、転送とルーティングの2つの機
能を果たす。ルータの一つのリンクに到達するデータパケットは、その時の最終
宛先および出力リンクの状態により別々のリンクに送り出して転送する。特定の
パケットに対する出力リンクを算出するために、ルータはルーティングプロトコ
ルに参画し、そこではインターネット上のルータのすべてがネットワークの接続
性に関する情報を交換し、ルーティングテーブルをこの情報に基づいて算出する
【0005】 大抵の公知のインターネットルータは、汎用バス(図2)、またはクロスバー
スイッチ(図3)を基本にしている。例えば図2のバスをベースとするスイッチ
において特定のSONETリンク30は、ラインインターフェース・モジュール
32に接続されている。このモジュールは入って来るSONETストリームから
パケットを抽出する。送られて来る各パケットに対しラインインターフェースは
、パケットヘッダを読み、この情報を用いてパケットを送る出力ポート(複)を
決定する。パケットを転送するために、ラインインターフェースモジュールは、
汎用バス34を調整する。バスが許可されると、バケットはバスを経て出力ライ
ンインターフェースモジュールに伝送される。モジュールは、その後パケットを
発信SONETリンク30上を宛先へのルート上の次のホップに伝送する。
【0006】
【発明が解決しようとする課題】
バスをベースとするルータは、帯域幅と拡張性に関して限定されている。セン
トラルバスは、すべてのトラフィックが通過する必要があるボトルネックとなる
。例えば高速バスは、128ビット幅のデータ路を50MHzで用いることによ
り6.4Gb/秒の総合帯域幅を可能にするが、バックボーンスイッチの必要と
する毎秒テラビットには遥かに及ばない。更にバスのファンアウト制限は、バス
をベースとするスイッチ上のポートの数が通常32を超えないように制限してい
る。
【0007】 バスの帯域幅制限は、図3に図示されたクロスバースイッチを用いて克服する
ことができる。Nラインインターフェース36に対しては、スイッチはN(N−
1)クロスポイントを含み、各々は1つの円により表わされる。各ラインインタ
ーフェースは、その入力として、他のラインインターフェースのどれでも選択で
き、適切な交点38で交わる2本のラインを接続する。この構成を用いてパケッ
トを転送するために、ラインインターフェースは、必要な出力ラインインターフ
ェースを調整する。要求が許可された場合には、適切な交点が閉じられ、データ
が入力モジュールから出力モジュールに伝達される。クロスバーは、多くの入力
を同時に多くの出力に接続可能であるから、この構成はバスをベースとするスイ
ッチの帯域幅の何倍もの値を可能にする。
【0008】 帯域幅の増加にもかかわらず、クロスバーをベースとしたルータは、IPバッ
クボーンルータに対して必要とされる拡張性と帯域幅を欠いている。各入力が各
出力に接続されるクロスバー接続により、必要とされるファンアウトおよびファ
ンインは、ポートの数が通常32を越えないことをその限度とする。この拡張性
の限界は、また帯域幅に限界をもたらす。例えば公知のクロスバーは、32の3
2ビットチャネルを200MHzで同時に作動し、その時のピークの帯域幅は2
00Gb/秒となる。これでもバックボーンIPルータの必要とする帯域幅には
及ばない。
【0009】
【課題を解決するための手段】
帯域幅と拡張性に限界がある一方で、クロスバーをベースとするルータは2つ
の好ましい特徴を持つ: 1.これらはブロッキングを起こさない。2つの入力が同一出力と交信するこ
とを要求しない限り、すべての入力は要求される出力に同時に接続される。一つ
の出力が混雑した時には、この出力へのトラフィックは他の出力に向かうトラフ
ィックを阻害することはない。 2.それらは確実なバックプレッシャを提供する。発信元と宛先との間のクロ
スバーによる直接接続は、通常即時フローコントロールに用いることのできる逆
チャネルを備えている。例えばこのバックプレッシャを、過負荷状態の宛先が使
用して、発信元にデータの送信を停止する信号を出すことができる。
【0010】 インターネットバックボーンに対するルーティングの要求に適合するために、
本発明では、これらの2つの特徴を維持しながら、数オーダー大きい帯域幅と拡
張性を提供する。
【0011】 本発明の一構成によれば、クロスバーをベースとするインターネットルータの
長所は、ルータ自身をマルチホップネットワークとして実行することにより、よ
り大きい帯域幅と拡張性をもたらすことができる。
【0012】 本発明を具現化するインターネットルータは、複数のインターネットリンクか
らデータパケットを受け取り、データパケットの中のヘッダ情報を分析して、デ
ータパケットを出力インターネットリンクにルーティングする。インターネット
ルータは、ファブリックルータにより結合されたファブリックリンクのファブリ
ックを包含し、各ファブリックルータへのファブリックリンクの数は、インター
ネットルータに接続されるインターネットリンクの数を実質的に下回る。ファブ
リックリンクおよびファブリックルータは、ファブリックを通り一つ、または複
数のホップでのインターネットリンク間のデータ通信を可能にする。例えば、1
つの実施形態では、600インターネットリンクは6×10×10の3次元トー
ラス・ファブリック・アレーによりサービスされる。
【0013】 各ファブリックルータに複数のバッファを設けることにより、ファブリック出
力リンクを共有する仮想チャネルを定義できる。仮想チャネルおよびリンクは、
インターネットルータ入力および出力の間に仮想ネットワークを形成し、この中
では一つの仮想ネットワークの中の混雑が他の仮想ネットワークを通るデータの
流れをブロックすることは殆ど起こらない。各インターネットリンクへのライン
インターフェースは、インターネットリンクから受け取られるデータパケット中
のヘッダ情報を分析して、インターネット・ルーティング・プロトコルを通じ出
力インターネットリンクを特定する。ラインインターフェースは、更にファブリ
ック・ルーティング・プロトコルによりファブリックを通り特定された出力イン
ターネットリンクへのルーティング経路を決定する。パケットは、ラインインタ
ーフェースにおいてセグメント、またはフリット(フロー・コントロール・ディ
ジット)に再分割され、これらのセグメントは、ファブリックを通り虫穴(worm
hole:パケットを連続でなく回線の空いた部分に分割して送信する意味)ルーテ
ィングを使用して転送される。ラインインターフェースは、ヘッダ中にファブリ
ックを通るルーティング経路を定義できる。このヘッダーには、ルーティング経
路の中の各連続リンクのリンク定義を含む。ルーティング経路に沿った各ファブ
リックルータは、パケットの連続セグメントを転送するために、ヘッダから関連
するリンク定義を格納する。
【0014】 好ましくは、ファブリックリンク上のホップの間で、フリットは、宛先インタ
ーネットリンクに対応する仮想チャネルに割当てられた格納位置にあるファブリ
ックルータに格納される。1つの実施形態においては、宛先インターネットリン
クのセットは互いに共通要素を持たないサブセットに分割され、各仮想チャネル
は、宛先インターネットリンクの一つのサブセットに限定して割当てられる。好
ましい実施形態においては、インターネットルータに接続されるインターネット
リンクの数は、各ファブリックルータへのファブリックリンクの数より少なくと
も1オーダ大きく、またファブリックルータ当りの仮想チャネルの数は、ファブ
リックルータへのリンクの数よりも著しく大きい。
【0015】 データパケットの間で仮想チャネルを共有し、仮想チャネルの間でファブリッ
クリンクを共有するために、調整が各ファブリックルータにおいて行われること
により、パケットがファブリックルータからの出力に対する仮想チャネルに割当
てられ、仮想チャネルがファブリックルータからの出力ファブリックリンクに割
当てられる。フローコントロールでは、リンクの反対端にある入力バッファが利
用できるという信号を受取ると、仮想チャネルに出力ファブリックリンクへの割
当てを可能にする。
【0016】 マイクロコンピュータを含むインターネットルータおよび他のネットワークル
ータに適用可能な本発明の別の構成は、データパケットをルーティングするルー
タ内の仮想チャネルを操作するイベントドライブ技術に関するものである。ルー
タは、データパケットの一部を受け取る物理的入力チャネル、物理的出力チャネ
ルおよび物理的入力・出力チャネルに結合されているデータバッファを備えてい
る。データバッファは、データパケットの一部を格納する。ルータは、更に物理
的入力・出力チャネルおよびデータバッファに結合されたコントロール回路を備
える。コントロール回路は、待機イベントに応じてチャネル割当てを作成し、デ
ータパケットの一部を作成されたチャネル割当てに従って物理的出力チャネルを
通じて出力する。好ましくは、コントロール回路は、仮想チャネルをデータパケ
ットに割当てし、待機イベントに応じて仮想チャネルに物理的出力チャネルを割
当てる。1つの実施形態においては、ルータは更に物理的入力チャネルおよび物
理的出力チャネルと結合されたラインインターフェースを含むことにより、ルー
タはインターネット・スイッチ・ファブリック・ルータを形成する。別の実施形
態においては、ルータは更に物理的入力・出力チャネルと結合されたマルチコン
ピュータインターフェースを含むことにより、ルータがマルチコンピュータシス
テムのためのマルチコンピュータルータを構成する。
【0017】 好ましい実施形態によれば、コントロール回路は、物理的出力チャネルに対応
する出力コントローラを包含する。各出力コントローラは、出力仮想チャネルの
状態を記録する状態テーブルを持ち、出力仮想チャネルに接続する入力仮想チャ
ネルを特定する。入力仮想チャネルは、データパケットの一部を保持する。
【0018】 各出力コントローラは、多数の到着待ち行列から到着イベントを選択するのに
適合するアービタ、および選択された到着イベントに応じて出力仮想チャネルを
割当てるための出力コントローラ状態テーブルにアクセスする状態テーブルロジ
ックを備えている。各状態テーブルは、出力仮想チャネルに対応する状態ベクタ
を包含する。
【0019】 各状態ベクタは、当該状態ベクタの対応する出力仮想チャネルがデータパケッ
トに割当てられているか否かを示す動作表示を含む。更に各状態ベクタは、物理
的入力チャネルの何れが当該状態ベクタの対応する出力仮想チャネルへの割当て
を待っているデータパケットの少なくとも一部を受け取ったかを示す待ち領域を
含む。さらに各待ち領域は、物理的入力チャネルがデータパケットの一部を受け
取った順序を示す。さらに各状態ベクタは、当該状態ベクタの出力仮想チャネル
を通して下流ルータに転送するための、複数のデータパケットの部分の存在を示
す存在領域を包含する。更に各状態ベクタは、当該ベクタの対応する出力仮想チ
ャネルに接続された下流ルータで利用することのできるバッファスペースの量を
示すクレジット領域を包含する。
【0020】 各出力コントローラは、更に待ちイベントに応じて当該出力コントローラの状
態テーブルがアクセスされる時に、転送要求を待ち行列に加える転送回路を備え
、待ち行列の転送要求に従って、当該出力コントローラの物理的出力チャネルを
通してデータパケットを転送する。データパケットの各部分は、データパケット
のフリットである。各転送回路は、待ち行列の転送要求に応じてフリットを伝送
する。
【0021】 各出力コントローラは、下流ルータからのクレジットイベントを受け取り、転
送要求を待ち行列に加えて、受け取ったクレジットイベントに応じて該当の物理
的出力チャネルを介してデータパケットの一部を転送する。1つの実施形態にお
いては、待ち行列イベントはテール・クレジット・イベントを含み、出力コント
ローラは、テール・クレジット・イベントに応じてのみ仮想チャネルを解放する
【0022】 コントロール回路は、複数の仮想チャネルにより共有でき、イベントに応じて
特定の仮想チャネルを扱うための機能を付与される。
【0023】 好ましくは、コントロール回路を、データパケットに仮想チャネルを割当てる
仮想チャネル割当てを作成するのに適用し、物理的出力チャネルを仮想チャネル
に割当てる物理的チャネル割当てを作成するのに適用する。割当ての各々は、待
ち行列の到着およびクレジットイベントに応じて作成することができる。データ
パケットの一部は、作成された仮想および物理的チャネル割当てに従ってデータ
バッファから物理的出力チャネルに転送される。
【0024】 主たる実行においては、特定の宛先に混雑があっても、データパケットを確実
に流し続けるために、各宛先ノードには、各ルータに固有の仮想チャネルを有す
る仮想ネットワークが割当てられる。特定の出力に向けられたデータパケットは
すべて、その宛先に対する固有の仮想チャネルに対応するデータバッファに格納
され、従って1つのデータパケットをブロックする混雑は必ずしも他のデータパ
ケットをブロックするとは限らない。
【0025】 上記のアプローチは、バッファスペースを浪費し、その拡張性には限界がある
。本発明の別の構成によれば、ファブリックルータに限界を設けることなく任意
のルータに適用することのできる仮想ネットワークは、仮想チャネルを共有する
ことによりバッファ割当てをオーバーラップさせて構築される。しかし1つの仮
想ネットワークの混雑が他の仮想ネットワークに於ける伝送をブロックすること
を防ぐためには、仮想ネットワークの共有するチャネルを、全仮想チャネル以下
にすることである。
【0026】 本発明のこの構成によれば、データパケットのルーティングのためのルータは
、物理的入力チャネル、物理的出力チャネル、および物理的入力・出力チャネル
に結合されたデータバッファから構成され、データパケットの少なくとも一部を
格納する。物理的入力・出力チャネルおよびデータバッファに結合されているコ
ントロール回路は、物理的チャネル上に多重化された仮想チャネルへのデータパ
ケットの割当てを作成する。第1のデータパケットは、サイズC1の仮想チャネ ルの第1セットへのアクセスを有し、また第2データパケットは、サイズC2の 仮想チャネルの第2セットへのアクセスを有する。0<S<C1およびS<C2
条件下では、サイズSの第1および第2セットの交点が存在する。この結果、デ
ータパケットは、他のデータパケットがアクセスを有する複数仮想チャネルへの
アクセスを共有することが可能になり、第1データパケットはすべてではないが
いくつかの仮想チャネルを第2データパケットと共有できる。
【0027】 好ましくは、実質的にすべてのデータパックが複数の仮想ネットワーク上をル
ーティングし、各仮想ネットワークiがその仮想チャネルのサイズCiのサブセ
ットを使用する。複数の仮想ネットワークの仮想チャネルサブセットはオーバー
ラップし、S<Ciを越えることのない仮想チャネルを共有する。
【0028】 好ましいルータにおいては、第1パケットは、第1仮想ネットワーク上をルー
ティングし、第2パケットは、第2仮想ネットワーク上をルーティングする。第
1仮想ネットワーク上をルーティングしたすべてのパケットは、仮想チャネルの
第1セットを共有し、第2仮想ネットワーク上をルーティングしたすべてのパケ
ットは、仮想チャネルの第2セットを共有する。
【0029】 好ましくは、各仮想ネットワークは、ネットワーク中の互いに反対の1対のノ
ードのような、宛先ノードの特定のセットに向けられたパケットを持つ。仮想チ
ャネルの各セット中の少なくとも1つの仮想チャネルは、宛先ノードアドレスに
より、具体的には宛先ノードの寸法座標により決定することができる。
【0030】 寸法間のデッドロックを防止するには、各仮想ネットワーク中の、特定の反転
を禁止してもよい。1つの実施形態において、2つの仮想ネットワークが宛先ノ
ードの各セットに割当てられ、別の反転が2つの仮想ネットワークの各々におい
て禁止される。別の実施形態においては、単一仮想ネットワークが宛先ノードの
各セットに割当てられる。この単一仮想ネットワークにおいて、複数反転を禁止
することができる。
【0031】 好ましい実施形態においては、コントロール回路は、物理的出力チャネルに対
応する出力コントローラを備えている。各出力コントローラは、出力仮想チャネ
ルの状態を記録し、データパケットの部分を保持する入力仮想チャネルを特定す
る状態テーブルを持つ。状態テーブルロジックは状態テーブルにアクセスして、
出力仮想チャネルを割当てる。状態テーブルには、各仮想ネットワークに対する
仮想チャネル割当てベクタ、および物理的出力チャネルで使用中の仮想チャネル
を示す使用中ベクタを含むことができる。出力仮想チャネルは、仮想チャネル割
当てベクタおよび使用中ベクタの組み合わせから選ばれる。
【0032】 ルータの1つの用途は、マルチコンピュータネットワークの中のルータであり
、また別の用途は、インターネット・パケット・ルータ内のファブリックルータ
である。
【0033】
【発明の実施の形態】
インターネットルータの実行においては、本発明は、マルチプロセッサからそ
のテクノロジーを借り受け、このテクノロジーを変更して、インターネットルー
タの固有の特性と要求に適合させるものである。具体的には、各インターネット
ルータは、それ自体直接または間接ネットワークのどちらの形態でもとれる。
【0034】 マルチコンピュータおよびマルチプロセッサは、何年にもわたり、直接および
間接相互接続ネットワークを使用して、プロセッサとメモリバンク間のメモリア
クセスのためにアドレスおよびデータを送信し、或いはプロセッサ間のメッセー
ジを送信してきた。以前のマルチコンピュータは、図2および3に示されたバス
およびクロスバー相互接続を用いて構成されていた。しかしこれらのマシンを大
きな数のプロセッサにスケールアップするために、それらは直接および間接相互
接続ネットワークに切り替えられた。
【0035】 図4に図示された直接ネットワークは、1組のプロセスノード40から構成さ
れ、その各々はプロセッサPと共にルータRおよび幾つかのメモリMを含む。こ
れらのマルチコンピュータルータは、上記のIPルータと混同してはならない。
それらの機能は、送信に限られ、またマルチコンピュータ相互接続ネットワーク
の極めて制約された条件の下に限定されている。各マルチコンピュータルータは
、ネットワークの中の他のルータとの、いくつかの数、例えば4つ、の接続を持
つ。プロセスノードは、メッセージを送り、またはシステム内の他のノードにメ
モリアクセスすることができる。通信は、隣接ノードとの間に限定されることは
ない。離れたノードへのメッセージは、ルータにより発信元と宛先ノード間の経
路に沿って転送される。
【0036】 図4に示されたネットワークは、直接ネットワークといえる、何故ならばチャ
ネルは、システムのプロセスノード間で直接形成されるからである。これとは反
対に、図5は間接ネットワークを示し、この中ではプロセスノード42間の接続
は、1組のルータ専用スイッチノード44を介して間接的に形成される。直接ネ
ットワークが、一般に多数のマシンに好まれるのはその拡張性のためである。間
接ネットワークは、通常一定数のノードに対して用いられるのに対し、直接ネッ
トワークはノードと共に増加する。ノードが増加するに伴い、ネットワークは加
算される、何故ならばネットワークの小さな一部分、1台のルータ、が各ノード
に含まれているからである。
【0037】 マルチコンピュータネットワークは、1990年Suaya and Bir
twistle,Morgan Kaufmann Publishers,I
nc.により出版されたW.J.Dally,“Network and Pr
ocessor Architectures for Message−Dr
iven Computing",VLSI and PARALLEL CO MPUTATIONの140〜218頁に記載されている。特筆すべきは、マル
チコンピュータネットワークが大陸にまたがるインターネット・バックボーン・
ネットワークと異なり単一キャビネット、または室に限定されていることである
【0038】 直接および間接マルチコンピュータネットワークは、拡張可能である。大部分
が共通トポロジのため、各ノードのファンインおよびファンアウトは、マシンの
サイズにかかわらず一定である。また各リンク上のトラフィック負荷は、一定か
、またはマシンサイズによって極めてわずかに増加する関数である。この拡張性
のために、これらのネットワークは、何千ものプロセスノードを持つ並列コンピ
ュータを構築するのに用いられて成功してきた。
【0039】 残念乍ら、マルチコンピュータネットワークは拡張性を持つが、IPスイッチ
ングにとって決定的なクロスバーネットワークの2つの性質:ブロッキングのな
い特性および堅牢なバックプレッシャを欠くのである。大抵の商用的な直接およ
び間接ネットワークはブロッキングを起こす。リンクは、多数の発信元−宛先の
対の間で共有されるために、1対のノード間で使用中の接続は、完全に別個のノ
ード対の間に新しい接続を作り出すことを阻止することがある。マルチコンピュ
ータネットワークに於けるパケットは、各リンクにかなりの待ち行列を伴って複
数のリンク上に送り出されるために、過負荷の宛先ノードから発信元ノードへの
バックプレッシャが存在するとしても遅く、かつソフトである。
【0040】 これらのスイッチのブロッキング特性およびバックプレッシャのソフトな特性
は、マルチコンピュータにとっては問題ではない、何故ならばマルチコンピュー
タのトラフィックはセルフ-スロットル的であるからである。プロセッサが僅か な数のメッセージ、またはメモリ要求(通常1−8)を送信した後にはそれが一
つ、または複数の回答を受け取る迄は追加のメッセージを送ることはできない。
従ってネットワークがブロッキング、または混雑のために速度が落ちた時は、プ
ロセッサが回答を待って休止するために、ネットワークに提供されたトラフィッ
ク速度は自動的に低下する。
【0041】 他方IPスイッチは、セルフ-スロットル性を持たない。ネットワーク内のあ るチャネルがブロックされ、または混雑しても、提供されたトラフィック速度は
低下しない。パケットは、ネットワークの状態によらず入力リンクを経てスイッ
チに引き続き到達する。このためにIPスイッチ、または変更されないマルチコ
ンピュータネットワークから構築されたルータはツリー飽和し、最初のブロッキ
ングに含まれていない多くのノードに対するサービスを拒否する。更に、ルーテ
ィングテーブルを算定する際のエラーのために、IPルータにはしばしば過渡状
態を発生させ、そこでは1つの出力ノードが持続時間中オーバーロードとなるこ
とがある。これは、他のノードが影響を受けないために、クロスバールータにと
っては問題にならない。しかしマルチコンピュータネットワークに対しては、こ
れはツリー飽和をもたらす。
【0042】 図6に示された状態を考察する。2次元メッシュネットワークに於ける単一ノ
ード、ラベルaを持つノード(3、3)、は到達メッセージによりオーバーロー
ドとなる。メッセージが到達する速度でチャネルから離れてメッセージを受け取
ることができないので、ノード(b、a)、(c、a)、(d、a)、(e、a
)への4つの入力チャネルすべてが混雑しブロックされる。これらのブロックさ
れたリンクを経由して転送しなければならないノードb−eに到達するトラフィ
ックは進むことができず、エッジに沿ってノードb−eに後退する。例えばノー
ドbへのトラフィックは、(f、b)、(g、b)および(h、b)に沿って後
退する。ブロック状態が解消されない場合には、f−hへのチャネルおよび関連
のノードもまたブロックされ、以下同様に続く。ノードa上の過負荷が続く時に
は、場合によってはネットワークのチャネルの大部分は、飽和ツリーがノードa
から外方に拡大するためにブロックされる。
【0043】 ツリー飽和の主たる問題は、それがノードaに向けられていないトラフィック
に影響を及ぼすことである。例えば(1、4)から(5、3)へのパケットは、
例えば(f、b)および(b、a)を含む経路(点線)に沿ってルーティングす
ることができる。これらのリンクはブロックされているから、ノード(1、4)
からノード(5、3)へのトラフィックは、これらのノードが過負荷ではなくて
もブロックされる。
【0044】 本発明のルータは、ルータとしてマルチホップ相互接続ネットワーク、特に3
次元トーラスネットワークを用いることにより、公知のバスおよびクロスバーベ
ースのルータの帯域幅および拡張性の制限を解消する。この機構を用いることに
より、広域バックボーンネットワークの各ルータは、小型のキャビネット内ネッ
トワークを含むことになる。混同を避けるために本発明は、各ルータの中の小さ
いネットワークをスイッチングファブリックと称し、このネットワークの中のル
ータおよびリンクをファブリックルータおよびファブリックリンクと呼ぶ。
【0045】 マルチコンピュータネットワークと異なりスイッチング・ファブリック・ネッ
トワークは、ブロックすることがなく確実なバックプレッシャを提供する。これ
らのクロスバー類似の属性は、ネットワークに於ける各宛先ノードに対する別個
の仮想ネットワークを提供することにより実現する。
【0046】 インターネットを通じて送られる代表的なパケットは、50バイトから1.5
キロバイトにわたる。本発明のインターネットルータのファブリックネットワー
クを通るトラフィックに対してパケットは、それぞれが36バイトのセグメント
、またはフリットに分割される。パケットの第1フリットに含まれる少なくとも
ヘッダは、ルータのファブリックを通してデータトラフィックをコントロールす
るために変更される。好ましいルータでは、データは虫穴ルーティングプロトコ
ルに従いファブリックを通して伝送される。
【0047】 各仮想ネットワークは、1組のバッファを含む。各仮想ネットワークに対する
1つ、または複数のバッファは、ファブリック内の各ノードに設けられる。各バ
ッファは、メッセージの少なくとも1つのフローコントロールディジット、また
はフリットを保持するためのサイズを持つ。仮想ネットワークは、すべて現実の
ファブリックネットワークのノード間の物理的チャネルの1組を共有する。公平
な調整ポリシーを使用して、競合する仮想ネットワーク上の物理的チャネルの使
用を多重化する。各仮想ネットワークは、そのメッセージのフリットを保持する
ために利用できる別のセットのバッファを持つ。
【0048】 対の仮想ネットワークAおよびBの各々については、Aに割当てられたバッフ
ァのセットは、少なくともBに割当てられていない1つのバッファを含む。従っ
て、ネットワークBがブロックされる場合に、Aがメッセージを送るときは、他
の仮想ネットワークとは共有されている可能性はあるが、Bとは共有されていな
いこのバッファを用いることができる。
【0049】 仮想ネットワークを構築する一つの簡単な方法は、各仮想ネットワークに対す
る、従って各宛先に対する各ノード上に個別のフリットバッファ、仮想チャネル
を設けることである。例えばN=512ノードを、従って512宛先を持つマシ
ンにおいて、各ノードは512の個別のフリットバッファを持つことになる。各
ノード上のバッファiは、ノードiに向かうメッセージのフリットを保持するた
めにのみ用いられる。この割当ては、上記の制約を満たす、何故ならば各仮想ネ
ットワークは、仮想ネットワーク間でバッファを共有することなく各ノード上で
バッファの単独セットに付随するからである。単一仮想ネットワークが混雑する
と、そのバッファのみが影響を受け、またトラフィックは妨害されることなく他
の仮想ネットワーク上で続く。上記に代わる分散的アプローチが次に考察される
【0050】 好ましいルータは、図7に図示されたようなノードの3次元トーラスネットワ
ークである。各ノードNは、出入りするSONETインターネットリンクに接続
されるラインインターフェースモジュールを含む。これらのラインインターフェ
ースノードの各々は、トーラスに於ける6つの隣接するノードに対するファブリ
ックリンクを含むスイッチファブリックルータを含む。例えばソードA上で1つ
のSONETリンクを介して到達するIPパケットは検査されて、インターネッ
トルータ、例えばノードB、を残しておくSONETリンクを決定され、次にA
からBに3次元トーラススイッチファブリックを経て転送される。
【0051】 各ノード、またはラインインターフェースモジュールの構成は、図8に図示さ
れている。パケットは、入力側SONETリンク46を経て到達し、またライン
インターフェース回路48は光入力を電気信号に変換し、パケットとそれらのヘ
ッダを入力スト−ムから抽出する。到達パケットは、次に転送エンジンハードウ
エア50に渡され、パケットメモリ52に格納される。転送エンジンは各パケッ
トのヘッダを使用して、そのパケットに対する必要な出力リンクを探す。従来の
IPルータの方式では、この検索はヘッダ領域での指標を持つツリーをトラバー
スすることにより行われる。ツリーの葉は、従来のIPルータに於けるように必
要な出力リンクを含み、追加的に出力リンクへのスイッチファブリックを通るル
ートを含む。最後にパケットは、その宛先と経路と共に出力ノードへのファブリ
ックを通して送るためのノードのファブリックルータ54に渡される。出力ノー
ドのファブリックルータ54から、パケットはそのノードのパケットバッファ5
2を通り、また出力リンク56へのラインインターフェース回路48を通して配
送される。
【0052】 インターネットルータ内のパケットは、入力中継線に接続されているラインイ
ンターフェースモジュールから出力中継線に接続されているラインインターフェ
ースモジュールに発信元ルーティングを用いて転送される。発信元ルーティング
においては、中間ファブリックルータを通るリンクのルートは、入力モジュール
のテーブル検索により決められる。この検索を転送エンジンが実行した後に、パ
ケットをファブリックルータに渡す。別の各経路は、故障許容と負荷バランスの
ためのものである。
【0053】 発信元ルートは、10エレメントベクタであり、この場合各エレメントは3ビ
ット・ホップ・フィールドである。各ホップフィールドは出力リンクをコード化
して、そのルートの1ステップ、6つのノード間リンクの1つまたは現在のノー
ドのパケットバッファへの第7リンクに対して、パケットを取り込めるようにす
る。8番目のコード化は使用されない。この10エレメントベクタは最大10ホ
ップの全ルートをコード化できる。これは、6×10×10トーラスの中のすべ
てのノード対間のルートにとって充分な数である。短いルートに対しては、10
エレメントのすべてを必要とすることのないことに留意すること。最後に用いら
れるエレメントは、パケットバッファ52に対するリンクを選択するか、または
10ホップルートを意味することができる。
【0054】 パケットがルートに沿った各ファブリックノードに到達する時、そのパケット
に対するローカル転送ベクタ入力は、発信元ルートの最も左のエレメントに等し
く設定される。次に発信元ルートは、3ビット左へシフトしてこのエレメントを
廃棄し、そのルートの次のエレメントを次のルータに提供する。このシフト中、
このノードのパケットバッファに対応する3ビットコードが右から中に移される
。そのパケットの中のその後のフリットは、ルータのそのパケットに対して格納
されたルーティングに従う。
【0055】 当業者には、ファブリックルートのコード化には多くの方法の存在することが
理解できるであろう。別の実施形態においては、パケットが各次元の好ましい方
向に移動する傾向のある事実をファブリックルートの更にコンパクトなコード化
を行うために利用することができる。この実施形態においては、ルートは多様な
2ビット・ホップ・フィールドが後に続く3ビットの好ましい方向としてコード
化される。3ビットフィールドは、ネットワークの各次元(x、yおよびz)に
対する好ましい方向(正または負の)をコード化する。ルートの各ステップまた
はホップに対しては、2ビットフィールドは、次のホップの取るべき次元を選ぶ
(0=x、1=y、または2=z)。このホップの方向は好ましい方向フィール
ドにより決まる。2ビートホップフィールド(3)の第4のコード化は、エスケ
ープコードとして用いられる。ホップフィールドがエスケープコードを含む場合
、次のホップフィールドはルートを決定するために用いられる。この第2ホップ
フィールドが次元特定機能(0−2)を含む場合には、ホップは好ましい方向と
は反対の方向に定められた次元にとられ、好ましい方向は反転する。第2ホップ
フィールドが第2エスケープコードを含む場合には、パケットはファブリックル
ータの出口ポートに向って転送される。このコード化においては、パケットがフ
ァブリックノードに到達すると、そのパケットに対するローカル転送ベクタ入力
は好ましい方向フィールドおよび最も左のホップフィールドから算定される。次
にホップフィールドは、左に2ビットシフトされることにより、このフィールド
を破棄し、次のフィールドを次のルータに渡す。このシフト中に2ビットエスケ
ープコードは、最も右のホップフィールドにシフトされる。主として好ましい方
向に移行するパケットに対しては、このコード化により、よりコンパクトなファ
ブリックルートができる、何故ならばルートの各ホップをコード化するのに必要
なビット数は、3ビットではなく2ビットに過ぎぬからである。
【0056】 パケットをその入力リンクに接続されたモジュールからその出力リンクに接続
されたモジュールに、スイッチファブリック上を転送するために用いられるファ
ブリックルータは図9に図示されている。ルータは、7つの入力リンク58およ
び7つの出力リンク60を持つ。リンクの6つは、図7の3次元トーラスネット
ワーク内の隣接ノードに接続される。第7入力リンクは、転送エンジン50から
のパケットを受け入れ、第7出力リンクはパケットをこのルータのラインインタ
ーフェースモジュールの出力バッファ52に送る。各入力リンク58は、入力バ
ッファ62に付随し、また各出力リンク60は出力レジスタ64に組み合わされ
ている。入力バッファおよび出力レジスタは、7×7クロスバースイッチ66に
より互いに接続されている。
【0057】 当業者には、本発明が異なったトポロジーおよび異なった次元数を持つファブ
リックネットワークの中で実施できることは理解できるであろう。また複数のリ
ンクをラインインターフェース間でやり取りすることもできる。別の実施形態に
おいて、2つの出力リンクは、ファブリックからラインインターフェースに設け
られ、出力リンク、従って出力レジスタの合計数を8にする。この場合に入力バ
ッファおよび出力レジスタは、7×8クロスバースイッチにより接続される。第
2出力リンクは、単一ノードが多くの方向から同時にトラフィックを受け入れる
時には、ファブリックネットワークからパケットを排出するための追加の帯域幅
を与える。
【0058】 出力ノードの各対に対して仮想ネットワークが備えられている。7つの入力バ
ッファ62の各々は、マシンの中の各仮想ネットワークに対し、例えば1つのフ
リットのバッファを含む。1つの実施形態においては、6×10×10トーラス
ファブリックは600ノードを備える。単一仮想ネットワークは、ネットワーク
の中の最大距離を持つ1対の出力ノードに割当てられる、何故ならばこれらの2
つのノードの間の最小数のルートはリンクを共有しないことを保証され、従って
互いに妨害しないことを保証されるからである。更に2つの仮想ネットワークが
ノードの各対に対して備えられ、異なるトラフィック等級をサービスする際に2
つの特性を可能にする。従ってルータ内には、600の仮想ネットワークが存在
する:ノードの各300対に対する2つの仮想ネットワーク。各入力バッファ6
2は、600の36バイトフリット(合計21,600バイト)に対するスペー
スを含む。
【0059】 改良策として、各入力バッファは、各仮想チャネルに対する2つのフリットに
対する格納場所を持つ。フリットのサイズは、単一仮想チャネルの最大デューテ
ィーファクタおよびパケットをフリットの全体数に要約することに伴う断片化損
失を決める。単一仮想チャネルにより用いることのできる単一ファブリックリン
ク上の最大帯域幅は、フリットサイズに仮想チャネルバッファ当たりのフリット
の数を剰じ、更にヘッダフリットがルータの中を伝播するのに要する時間で除し
た際に得られる値を上回ることはない。例えばフリットが36バイトの時には、
バッファ当たりのフリットは1つであり、ヘッダフリットがルータを通って伝播
するのに要する時間は10×10nsクロックであり、仮想チャネル当たりの最
大帯域幅は360Mバイト/秒である。リンク帯域幅が1200Mバイト/秒の
場合には、単一仮想チャネルはリンク帯域幅のせいぜい30%でしか使用できな
い。フリットバッファ容量が少なくともリンク帯域幅をルータ待ち時間(この場
合120バイト)により除して得られた値と同等である時には、単一仮想チャネ
ルはリンク容量のすべてを用いることができる。
【0060】 一般には、単一仮想チャネルが使用できるリンク帯域幅を最大にし、またより
大きいペイロードにわたりフリットプロセスのオーバーヘッドを償却するために
、フリットサイズをできる限り大きくしようとするものである。他方大きいフリ
ットは、小さいパケットをフリットサイズの倍数に要約する必要ある場合に、内
部の断片化を引き起こすことにより効率を低下させる。例えばフリットサイズが
64バイトである時には、65バイトパケットは128バイトに要約する必要が
あり、ほぼ50%の断片化オーバーヘッドに招くことになる。
【0061】 断片化オーバーヘッドを生じることなくフリットサイズを大きくする利点を得
る1つの方法は、隣接フリットをグループ化して、それらが単一のダブルサイズ
フリットであるかのように取り扱うことである。奇数長さのメッセージの最後の
フリットを除くすべてに対して、すべてのフリットプロセスは、各フリット対毎
に1回行われるに過ぎず、フリットプロセスオーバーヘッドは半減する。最後の
奇数フリットは個別に扱われる。しかしこの様な単一奇数フリットは稀であり、
それ自体でのプロセスオーバーヘッドの増大は平均すれば大した値とはならない
。結局フリットを対にすることは、2つのフリットサイズ、即ち正規サイズとダ
ブルサイズを持つことに等しい。従って長いメッセージは、ダブルサイズフリッ
トのプロセスオーバーヘッドを下げられ、また短いメッセージは正規サイズフリ
ットのオーバーヘッドの断片化を低下する結果となる。好ましい実施形態におい
ては、フリットは長さが36バイトであり、全長72バイトの対にグループ化さ
れる。
【0062】 パケットのヘッドフリットがその仮想チャネルに到達した時に、出力ノード向
けのファブリックルータの仮想チャネルが自由状態にあれば、チャネルはそのパ
ケットに対しパケットの持続時間中、即ち虫が通過する迄割当てられる。しかし
複数のパケットは、複数の入力を通して同一仮想チャネルに対するルータで受け
取ることができる。仮想チャネルが既に割当てられているときには、新しいヘッ
ドフリットはそのフリットバッファの中で待たねばならない。チャネルが割当て
られていないときは、そのチャネルに対する2つのヘッドフリットが共に到達す
る以外は、公正な調整が行われねばならない。各仮想チャネルに割当てられたバ
ッファスペースが限られている時には、ファブリックからの出力ノードにおける
ブロックは、仮想ネットワーク上の各パケットの入力ラインインターフェースに
対するバッファプレッシャにより、直ぐに判る。この時、入力ラインインターフ
ェースがその後のパケットに対するルート変更のための適切な対策を講じること
ができる。各種の仮想ネットワークに対して異なる宛先が割当てられることによ
り、宛先間の干渉は回避される。トラフィックは分離されている。
【0063】 出力仮想チャネルが割当てられると、下流ノードでの入力バッファが、仮想チ
ャネルに対して利用可能なノードから信号を受け取る迄は、フリットはリンクを
越えて伝送されることはない。 基本的なフロー・コントロール・プロセスが図9、10Aおよび10Bに図示さ
れている。各サイクル毎に各入力バッファにおいて機能付与されたフリットの数
Mが、それらの要求された出力リンクへのアクセスに見合うように公正な調整プ
ロセス68により選ばれる。選ばれたフリットは、それらの出力リンク要求を要
求された出力リンクに組合わされた第2アービタ70に送る。このアービタは、
せいぜい一つのフリットを各出力リンクに送るために選ぶだけである。選ばれた
フリットは、次にクロスバースイッチを介して出力レジスタに送られ、次に出力
リンク上をスイッチファブリックの次のルータに送られる。この2ステップ調整
プロセスにおいて選ばれる迄フリットは入力バッファの中に在り、バックプレッ
シャが上流に作用する。
【0064】 各ラインインターフェースモジュールに於けるファブリックルータはクレジッ
トをベースとするフローコントロールを使用して、ファブリックネットワークを
通るフリットの流れを制御する。入力バッファ62の各セットに組み合わされて
いるのは2つのVビットベクタ:プレゼンスベクタPおよびイネーブルベクタE
である。図10Aに図示されたVは、仮想ネットワークの数であり、従ってバッ
ファの中の入力数である。プレゼンスベクタP〔V,i〕のビットは、入力バッ
ファiが仮想ネットワークVからのフリットを含む時にセットされる。ビットE
〔V,i〕は、このフリットが有効化されてその宛先リンクへのルートの次のホ
ップを取るときに、セットされる。
【0065】 図10Bに図示されるように各出力レジスタに組み合わされているのは、受け
取りノードに於けるファブリックリンクの反対端上のプレゼンスベクタのコンプ
リメントをミラーリングするVビットクレジットベクタCである。即ちC〔V,
j〕は、P〔V,i〕がリンクの反対端の入力ポート上に存在しない場合に、所
定の出力jにセットされる。C〔V,j〕がセットされている場合は、出力レジ
スタはリンクの反対端において空のバッファに対してクレジットを持つ。
【0066】 要求された出力リンクがその仮想ネットワークに対してクレジットを持つとき
は、入力バッファ内のフリットは有効化され、その次のホップを取る。例えば入
力バッファiの仮想ネットワークVのパケットが、そのルートの次のホップに対
して選択された出力リンクjを選んだと仮定する。本発明は、これをF〔V,i
〕=jであらわす、但しFは転送ベクタである。2つの条件が一致すると、この
入力バッファのフリットは有効化され、次のホップを取る。上記の条件とは、第
1 にはそれがP〔V,i〕=1で存在し、また第2 には次のホップにおいてバッ
ファスペースのクレジット、即ちC〔V,j〕=1が存在しはければならない。
【0067】 入力バッファの格納位置は、各仮想ネットワークに個別に割当てられるのに対
し、出力レジスタおよび関連する物理的チャネルが仮想ネットワークにより共有
される。クレジットをベースとするフローコントロール法は、ブロックまたは混
雑した仮想ネットワークが、物理的チャネルを無期限に占有することのないよう
に保障する、何故ならば有効化されたフリットのみが出力リンクに対して調整関
与することができる。更に仮想ネットワーク当たり1つ、または2つのフリット
のみが各入力バッファに格納されるために、確実なバックプレッシャがブロック
された出力ノードから入力ノードの転送エンジンに提供される。
【0068】 割当て 調整とフローコントロールは、割当て問題ともいえる。この割当て問題には、
パケットへの仮想チャネルの割当て、各種の入力ノードからと共通出力ノードへ
向かう到着、およびファブリック経路内の同一の次のノードへ向けられたフリッ
トに対する物理的チャネル帯域幅の割当てを含む。
【0069】 マルチステージ・スイッチング・ファブリックにおいて、1つまたは複数のフ
リットから成るパケットは、その発信元からその宛先迄一つまたは複数のファブ
リックルータを通して進む。各ホップにおいて、メッセージのヘッドフリットが
入力仮想チャネル上のノードに到達する。パケットは、出力仮想チャネルを割当
てられる迄は、更に進むことはできない。好ましい実施形態のスイッチファブリ
ックにおいて、各パケットは、唯一つの仮想チャネル上をルーティングすること
ができるに過ぎない。パケットが到着する時に仮想チャネルが空いている時は、
チャネルはその到着パケットに割当てられる。しかし仮想チャネルがパケットの
到着時に占有されている時には、パケットは出力仮想チャネルが空く迄待たねば
ならない。チャネルが開放された時に、1つまたは複数のパケットが仮想チャネ
ル上で待機している場合は、調整が実行され、チャネルは待機パケットの一つに
割当てられる。
【0070】 パケットが仮想チャネルを取得するのに成功すると、パケットは物理的チャネ
ル帯域幅に対して対抗でき、そのフリットをそのルートの次のノードに進める。
パケットは、2つの条件が保持される時にのみ帯域幅に対して対抗することがで
きる。第1の条件は、少なくとも一つのパケットのフリットがノードに存在する
ことである。第2の条件は、次のノードに少なくとも1つのバッファスペースの
フリットが存在することである。これらの2つの条件が保持されない時には、転
送するフリットが存在しないか、または次のホップでフリットを入れるスペース
が存在しない。あるパケットに対して両条件が保持される時には、そのパケット
は有効化されてフリットを伝送する。しかしフリットを送ることのできる前にパ
ケットは2つの調整に合格しなければならない。すべての有効化されたパケット
の中で、ルートの次のノードへパケットのフリットが前進するために、パケット
には入力フリットバッファからの出力ポートおよび物理的出力チャネルの両者が
与えられなければならない。
【0071】 少数の仮想チャネルに対しては、割当て問題は、コンビネーションロジックを
用いて、図9、10Aおよび10Bの基本的なケースに対して平行して解くこと
ができる。
【0072】 先ず仮想チャネル割当て問題を考えることとする。状態がHのビットは、K入
力コントローラの各々上のV入力仮想チャネルの各々に関連している。従って入
力仮想チャネルが、出力仮想チャネルを割当てられていなかったヘッドフリット
を含む時には、ビットはセットされる。ビットアレーH〔1:V,1:K〕は、
仮想チャネルに対する要求を決める。状態Bのビットは、K出力コントローラの
各々に於けるV出力仮想チャネルの各々に関連している。出力仮想チャネルが使
用中の時には、このビットがセットされる。ビットアレーB〔1:V,1:K〕
は、仮想チャネルの割当て状態を決める。
【0073】 仮想チャネルVを出力コントローラKに割当てるために、最初にK入力コント
ローラの各々中の仮想チャネルを越えて調整が実行される必要があり、入力コン
トローラiは、(1)H〔V,i〕がセットされ、(2)チャネルの宛先、F〔
V,i〕=Kが成り立つ時にのみ対抗する形になる。B〔V,K〕=0の時のみ
、調整に合格した入力は仮想チャネルが与えられる。
【0074】 この状態は、フリットに対する物理的チャネル帯域幅の割当ても同様である。
各入力仮想チャネルのバッファステータスは1つまたは複数のフリットが現在ノ
ードの中に在る時にセットされるプレゼンスビットPにより示される。各出力仮
想チャネルは、予測しながらクレジットビットCを保持する。クレジットビット
Cは1つまたは複数の空のバッファが次のノードで利用できる時にセットされる
。本発明では、割当てを連続的に(最適に近い形で)行うと仮定した;先ず入力
コントローラの出力ポートに対する調整を、次に出力チャネルに対する調整を行
った。各入力バッファは、M個の出力ポートを持つと仮定する。本発明では、次
に入力バッファiに対し、先ず何れの仮想チャネルを有効とするかを決める。有
効化されたベクタ、E〔V,i〕は、E〔V,i〕=¬H〔v,i〕∧P〔V,
i〕∧C〔V.j〕の式で計算される、但し¬は、否定ロジック、∧は、AND
ロジックオペレーションを、またjは入力コントローラiの仮想チャネルVに関
するパケットの宛先である。従ってパケットは、それが仮想チャネルを待ってい
ない時、そのバッファの中に少なくとも一つのフリットが存在する時および次の
ホップにおいて利用することのできる格納の少なくとも一つのフリットが存在す
る時には、フリットを送るために有効化される。次に入力バッファの中の有効化
されたチャネルのすべては、入力バッファのM個の出力ポートに対して調整を行
う。これには、V−入力M−出力アービタが必要である。最後に各ローカル調整
の合格者が出力仮想チャネルに対して調整し、これにはK、MK−入力アービタ
が必要である。
【0075】 仮想チャネルが多数の場合は、割当てロジックの組合わせを実現するのに必要
なゲートの数は手のつけられぬ値となる。好ましいスイッチファブリックは、V
=600の仮想チャネルおよびK=7ポートを持つ。従って、組合わせロジック
を持つこの割当て法を実行するには、ベクタHおよびBの4200エレメント、
調整を確実にするための4200 3:8デコーダ、および合格者を選ぶための
4200 7入力アービタが必要である。状態、デコーダおよびアービタを保持
するためのフリップ−フロップの間に、約50の2- 入力ゲートが、4200仮
想チャネルの各々に対して、200,000以上、手のつけられぬ数のロジック
ゲートが必要である。
【0076】 好ましいルータに対しては、PおよびCアレーもまたそれぞれ4200エレメ
ントである。C−多重装置とアービタとの間では、各エレメントは約40ゲート
を必要とする。従って帯域幅割当ては、追加の160,000ロジックゲートを
必要とする。
【0077】 一方、8またはそれ以下の少ない数の仮想チャネルを持つルータに対しては全
く妥当性がある。組合わせ割当ては、V=600のルータに対しては明らかに実
行不能である。
【0078】 イベント駆動方式割当て 割当てを行うために必要なロジックを大幅に減らすには、多数の仮想チャネル
に対して、大部分の仮想チャネルの状態が1つサイクルから次のサイクルに移る
時に変化しないように維持することで可能になる。所定のフリット期間中、所定
の入力コントローラのせいぜい一つの仮想チャネルにフリットの到着することが
あり、またせいぜいM個の仮想チャネルはフリットを発信させることがある。残
りのV−M−1仮想チャネルは変化しない。
【0079】 仮想チャネル状態の変化の少ない特性は、イベント駆動方式割当てロジックを
有利に使用するために利用することができる。このアプローチにより仮想チャネ
ル状態の更改の1コピー(または僅かなコピー)および割当てロジックが多数の
仮想チャネルにわたって多重化される。イベントの出現により特定される能動的
仮想チャネルのみがその状態を点検され、更改され調整に参画する。
【0080】 2つのタイプのイベント、到着イベントとクレジットイベントは、仮想チャネ
ル状態更改ロジックを作動させる。第3のタイプのイベントである転送イベント
は、物理的チャネル帯域幅に対する調整に何れの仮想チャネルが参画するかを決
める。フリットがノードに到達する都度到達イベントは、そのフリットに関連す
る仮想チャネルの状態をチェックするために待ち行列を作る。同様のチェックは
、仮想チャネルの下流バッファ状態が変化する度に待ち行列に加えられるクレジ
ットイベントに応じて行われる。仮想チャネルの状態を点検することは、チャネ
ルのパケットへの割当ておよび/または下流ノードへの転送のためのフリットの
スケジュール化をもたらす可能性がある。後者の場合、転送イベントが作り出さ
れ待ち行列に加えられる。転送イベントをペンディングしている仮想チャネルの
みが、入力バッファ出力ポートおよび物理的出力チャネルに対する調整に参画す
る。フリットが両者の調整に合格し、転送することになると該当の転送イベント
の待ち行列は解消する。
【0081】 イベント駆動方式チャネル割当てを実行するためのロジックは、図11Aおよ
び11Bに示される。図11Aは、7つの入力コントローラの1つを示すのに対
し、図11Bは7つの出力コントローラの1つを示す。各入力コントローラは、
示された3つの点で各出力コントローラに接続される。各入力コントローラは、
宛先テーブル72、到着待ち行列74、クレジット待ち行列76およびフリット
バッファ62を含む。仮想チャネル状態テーブル80および転送待ち行列82は
、各出力コントローラに含まれる。図は、仮想チャネル状態が各出力コントロー
ラに関連するイベントによりドライブされる機構を示す。状態を入力コントロー
ラに関連付けることも可能である。状態テーブルを出力コントローラに置くこと
は、仮想チャネル割当て(出力コントローラにおいて行わねばならない)および
帯域幅割当て(何れかの端で行うことができる)を同じメカニズムを用いて実行
できる長所を持つ。
【0082】 宛先テーブル、フリットバッファおよび仮想チャネル状態テーブルは、各仮想
チャネルに対する入口を持つのに対し、3つの待ち行列は僅かな数の入口を持つ
に過ぎない。各仮想チャネルに対し宛先テーブルは、若しあれば(即ちFa)入
力チャネル上の現在のパケットにより要求される出力ポートを記録し、フリット
バッファ62はパケットの1つまたは複数のフリットに対する格納場所を提供し
、出力仮想チャネルの状態は状態テーブルに記録される。到着、クレジットおよ
び転送待ち行列は、生じたが未だ処理されていない各イベントに対する入力を含
む。
【0083】 入力側では二重ポートを持つ到着待ち行列、クレジット待ち行列、およびフリ
ットバッファもまた図11Aの破線により示された同期点として作用する。これ
らの3つの構造の左のポート、および点線の左のすべてのロジック(宛先テーブ
ルを含む)は、入力チャネルのクロック領域で動作する。これらの3つの構造の
右のポートおよび点線の右のすべてのロジックは、図11Bを含めルータの内部
クロック領域内で動作する。
【0084】 別の実施形態においては、到着フリットはローカルロック領域に同期化された
後に、到着待ち行列、または宛先テーブルへアクセスする。
【0085】 図11Aおよび11Bに示された割当てでは、仮想チャネルまたは物理的チャ
ネル・フリット・サイクルの割当ては、到着、移行およびクレジットの3イベン
トシーケンスを通して実行される。到着フリットは、その出力仮想チャネルに対
する状態テーブルへのアクセスに対する調整を行う。到着フリットが与えられる
と、テーブルは、到着フリットを明らかにするために更改され、チャネルがその
コントローラに割当てられ、クレジットが利用され、転送要求が待ち行列に加え
られてフリットを移動させる。転送要求が調整されて、入力フリットバッファへ
アクセスする。アクセスが得られるとフリットはバッファから取り外され、次の
ノードに送られる。フリットバッファから取り外される時には、フリットは、必
ずクレジットが待ち行列に加えられて前の先行ノードに転送される。クレジット
がノードに到着すると、仮想チャネル状態テーブルを更改し、ゼロクレジットで
待機しているフリットがあれば有効にする。最後に、ノードのテールフリットが
到着すると、仮想チャネルステートを更改してチャネルを空にする。
【0086】 フリットが入力コントローラに到着する都度、フリットの内容はフィルタバッ
ファ62に格納される。同時に宛先テーブル72はアクセスされ、必要な出力ポ
ート番号のタグを持つ到着イベントが74において待ち行列に入る。宛先テーブ
ルは各パケットのヘッドフリットにより更改され、パケットの出力ポートを記録
し、次にパケットの残りのフリットにより問合せを受けて格納したポート番号を
再生する。到着イベントは、仮想チャネル識別子(10ビット)、ヘッドビット
、および出力ポート識別子(3ビット)を含む。K入力コントロール到着待ち行
列の各々のヘッドの到着イベント(並びに入力ポート識別子(3ビット))は、
各出力コントローラのアービタ84に配分される。各出力コントローラにおける
到着イベントは、出力ポートを必要とし、状態テーブル80へのアクセスを調整
する。各サイクル毎に合格到着イベントは待ち行列を解消され、処理される。合
格しないイベントは、待ち行列に留まり、その後のサイクルでの状態テーブルへ
のアクセスのために再び競合を受ける。
【0087】 図12に示されたように、出力K上の各出力仮想チャネルVに対して、仮想チ
ャネルテーブル80は下記のものを含む状態ベクタ、S〔V、K〕を維持する。 1.チャネルBの割当て状態、空き(0)、使用中(1)、またはテールペン
ディング(2)。 2.このチャネルに割当てられた入力コントローラ(Bがセットされた場合)
、I、(3ビット)。 3.このチャネル、で待機している入力コントローラのビットベクタ、W、(
7ビット)。 4.クレジット(次のノード上の空のバッファ)の数、C、(1ビット) 5.このノード上に在るフリットの数、P、(1ビット)。
【0088】 これらの最初の3つ(B、I、W)は、入力仮想チャネルへの出力仮想チャネ
ルの割当てに関連するのに対し、最後の2つ(C、P)は、物理的チャネル帯域
幅のフリットへの割当てに関連する。状態ベクタの各エレメント内のフリットの
数は、必要に応じて変えることができる。例えば各ノードにおいて更に多くのフ
リットバッファが利用できる時には、更に多くのビットがCおよびPフィールド
に割当てられる。状態の多くがこの場合に組み合わせロジックアプローチにおい
て状態ビットに直接対応する。B、CおよびPビットは同じである。Wビットは
、必要な出力チャネルにより認定されたHビットに対応する。
【0089】 待ちベクタのビットの数Wを増やすことで、調整の公正さを改善することがで
きる。ビットが唯一つの場合には、ランダム、またはラウンドロビン調整を行う
ことができる。各入力に3−ビットが格納されている時には、入力仮想チャネル
がその要求の到着した順番にサービスされる形の待ち行列調整を行うことができ
る。各仮想チャネルは、それが状態テーブルに到着した時に“番号を受け取る”
ことになり、この番号がWベクタの入力に格納される。チャネルが空になると“
次の”番号の順となる。
【0090】 入力コントローラIからの仮想チャネルVに関連する到着イベントが出力Kに
対する状態テーブルに到着する時には、S〔V、K〕となり、下記のアクション
の一つをイベントのタイプ(ヘッド対ボディ)とチャネルの状態如何によって実
行する。 1.フリットがヘッドであり、チャネルが空き状態B=0であり、下流クレジ
ットがC≠0である場合は、(a)チャネルはB=1、1=iをセットすること
により入力に割当てられ、(b)下流バッファはCを決定することにより割当て
られ、(c)転送要求は82において(v、i、k)に対して待ち行列に加えら
れる。 2.フリットがヘッドであり、チャネルが空き状態で、下流クレジットが存在
しない場合には、チャネルは入力に割当てられ、現在カウントPは増加する。下
流バッファは割当てられず、転送要求は待ち行列に入らない。 3.フリットがヘッドであり、チャネルが使用中のB=1の場合は、待ちベク
タWのi番目ビットをセットすると仮想チャネル要求は待ち行列に加えられる。 4.フリットがボディフリットで下流クレジットが存在する場合には、下流バ
ッファが割当てられ、転送要求は待ち行列に加えられる。 5.フリットはボディフリットであり、下流クレジットの存在しない場合は、
現在カウントが増加する。 6.フリットがテールであり、待機ヘッドのない時にクレジットが利用可能で
ある場合は、テールフリットは移行のために待ち行列に入り、チャネルは空きで
あるB=0とマークされる。上記以外に、クレジットが利用できない場合は、チ
ャネルはテールペンディングB=2とマークされ、クレジットが到着するとテー
ルを転送してチャネルを空にする。 7.フリットがテールであり、クレジットが利用可能(C≠0)であり、待機
パケットがあれば(W≠0)、テールフリットは上のケース1および4のように
転送のために待ち行列に入る。待機中の入力jの1つを選ぶために調整が行われ
る。チャネルがその入力(B=1、I=j)に割当てられ、また追加のクレジッ
トが利用可能であれば、この新しいヘッドフリットは転送のために待ち行列に加
えられる;その他の場合は“存在する”とマークされる。 8.フリットがテールであり、クレジットが利用できない、(C=0)、場合
は、現在カウントは増加し、チャネルの状態が“テールペンディング”、(B=
2)とマークされる。
【0091】 仮想チャネル毎に唯一つのフリットバッファしか存在しなければ、ボディフリ
ットが到着する時には仮想チャネル割当て状態(B、IおよびW)をチェックす
る必要はない、何故ならばフリットは、チャネルがそのパケット(B=I、I=
i)に既に割当てられている場合には到着しかできないからである。仮想チャネ
ル当り複数のフリットバッファがあれば、各ボディフリット到着の仮想チャネル
はチェックしなければならない。出力仮想チャネルを待機中のチャネルに対して
フリットが到着するとイベントを発生するが、これは無視する必要がある。また
出力チャネルが待機チャネルに割当てられる時には、待機仮想チャネル中にバッ
ファされたフリットの数を状態テーブル80に通信する必要がある。これは、例
えばヘッドフリットが転送される時に、フリットバッファのカウントから、状態
テーブルのフリットカウントを更改することにより実行できる。なお、上のケー
ス1においては、本発明では状態テーブル上の1回のオペレーションで、仮想チ
ャネルの割当てとヘッドフリットに対するチャネル帯域幅の割当ての両方を実行
する。テールフリットは、この場合1対のアクションをもたらす:テールフリッ
トは、先ずボディフリットとして処理されて、帯域幅を割当てテールフリットを
移動させる。次にテールフリットとして処理されて、チャネルを空にし、ペンデ
ィング・ヘッド・フリットを移動する。転送待ち行列が2つの入力を同時に受け
入れることができるのでない限り、これは順番に行わねばならない、何故ならば
テールフリットの到着は、次の2つのフリットを転送のために待ち行列に加える
ことがあるからである:テールフリット自体および待ちパケットのヘッドフリッ
ト。
【0092】 転送待ち行列(V、i、K)内の各入力は、そらぞれフリットバッファVの内
容を入力コントローラから出力Kへ移動する要求である。要求が実行される前に
、先ず要求を86において調整して、フリットバッファiにアクセスする必要が
ある。各サイクルで、K出力コントローラの各々内の待ち行列のヘッドにある転
送要求は、それらの要求された入力バッファに提供され、ここで転送要求は調整
されてMポートにアクセスする。合格した転送要求は待ち行列を解かれ、それら
のフリットは適切な出力マルチプレクサ88に送られる。他の要求は転送待ち行
列にとどまる。ここではファブリックリンクに対する調整の必要はない、何故な
らば出力ファブリックリンクの各々に関連する出力コントローラは、サイクル当
りせいぜい一つの要求を行うに過ぎないからである。
【0093】 転送要求がフリットを出力に送る度に、クレジットが作成されて、入力フリッ
トバッファ内の空になったスペースを示す。クレジットは、クレジット待ち行列
76に加えられ、先行ノードの出力コントローラに伝送される。仮想チャネルV
に対するクレジットがノードの出力コントローラKに到着する時には、クレジッ
トは状態ベクタはS〔V、K〕を読み、何れかのフリットがクレジット上で待機
中か否かをチェックする。現在カウントの状態によって次のように進行する。 1.待機フリットがない時P=0は、クレジットカウントはC=C+1に増加
する。 2.待機フリットがある時には、待機フリットの数がP=P−1減らされ、、
第1待機フリットに対する転送要求は待ち行列に加えられる。 3.テール・フリット・ペンディング(B=2)がある時には、テールフリット
に対する転送要求は待ち行列に加えられる。チャネル上でヘッドフリットが待機
中でない時(W=0)、チャネルは空き状態にセットされる(B=0)。その他
の場合は、待機中のヘッドフリットがある時(W≠0)には、待機チャネルを選
ぶために調整が行われ、例えば入力コントローラjからの場合には、チャネルは
このチャネル(B=1、I=j)に割当てられ、ヘッドフリットは存在するとマ
ークされ(P=1)、従って次に到着するクレジットがヘッドフリットを伝送す
る。
【0094】 上記のイベント駆動方式の実施形態において、出力コントローラはボディフリ
ットとテールフリットを別々に処理する。具体的には、出力コントローラは、上
述のテクニック4および5に従ってボディフリットを処理し、テクニック6、7
および8に従ってテールフリットを処理する。
【0095】 テクニック7で説明されたように、データパケットのヘッドフリットは、先行
のデータパケットのテールフリットに続くことができる。例えばデータパケット
は、仮想チャネルを占有することができるのに対し、1つまたは複数のデータパ
ケット(即ち1つまたは複数のヘッドフリット)は、その仮想チャネルを待つ。
占有するデータパケットのテールフリットに対する到着イベントが出力コントロ
ーラに到着する時には、出力コントローラはテールフリットを待ち行列に加えて
、下流の次のファブリックルータへ転送し、仮想チャネルを待機データパケット
(即ち待機ヘッドフリットの1つ)の1つに割当てる。従って出力コントローラ
は、ファブリックルータが転送のためにテールフリットを待ち行列に加えると同
時に、新しいデータパケットに対して仮想チャネルを与える。
【0096】 別のイベント駆動方式の実施形態においては、出力コントローラは、ボディフ
リットおよびテールフリットを同様に処理する。特に出力コントローラは、上記
のようにテクニック4および5に従ってボディおよびテールフリットの両者を処
理する。従ってテールフリットに対する到着イベントが出力コントローラに到着
する時およびクレジットを利用できる時には、出力コントローラは仮想チャネル
を空にすること、または仮想チャネルを待機データパケットに割当てることなし
にテールフリットを送信のために待ち行列に加える。プレゼント・ファブリック
・ルータから下流のファブリックルータがテールフリットを受け取り、処理し、
送り出す時には、下流ファブリックルータは正規のクレジットの代わりに特殊テ
ールクレジットを作成する。下流ファブリックルータは、このテールクレジット
をプレゼント・ファブリック・ルータの上流に送る。プレゼント・ファブリック
・ルータの出力コントローラは、テールクレジットを受け取る時には、出力コン
トローラは仮想チャネルのクレジットカウントを正規のクレジットに類似の方法
で増加し、仮想チャネルを空にする。この点で、仮想チャネルに対する待機デー
タパケットがある時には、出力コントローラは仮想チャネルを待ち、データパケ
ットの1つに割当てる調整手順を実行する。
【0097】 別のイベント駆動方式の実施形態によるファブリックルータは、ボディおよび
テールフリットを別々に処理するイベント駆動方式の実施形態のファブリックル
ータよりも速度は遅い。特に別の実施形態のファブリックルータが、テールフリ
ットを下流ルータに伝送するための転送要求を待ち行列に加えた後に、そのテー
ルフリットのデータパケットに割当てられた仮想チャネルは空き状態になる。仮
想チャネルは、ファブリックルータが下流ファブリックルータからのテールクレ
ジットを受け取る迄は、別のデータパケットにより使用されるために利用するこ
とはできない。
【0098】 しかし別のイベント駆動方式の実施形態では、幾つかの理由で非常に簡単なロ
ジックになる。第1にテールフリット到着イベントの取り扱いの複雑さを抑制す
ることにより、イベントの取り扱いが簡単となる。その代わりに作業は、テール
フリット到着とテールクレジットイベントとの間に拡がる。更にロジックは、単
一パケットのみが任意の時点で特定の仮想チャネルに在ることを確実にすること
により簡単となる。この事は、先行のパケットのテールがフリットバッファを−
テールクレジットで示されるように−クリアーする迄新しいパケットに仮想チャ
ネルを与えないことにより保証される。これとは逆に、ボディフリットとテール
フリットを別々に処理するイベント駆動方式の実施形態においては、次のパケッ
トのヘッドフリットはプレゼントパケットのテールフリットに続くことが可能で
あり、2つ以上のパケットは、単一仮想チャネルのフリットバッファの中で同時
に待ち行列に加えることができる。
【0099】 ここに説明された割当てのイベント駆動方式のそれぞれは、割当てに対して必
要なロジックのサイズと複雑さを2つの方法で減少させる。第1の方法では、仮
想チャネルに対する状態情報は、組み合わせロジックアプローチにより要求され
るフリップフロップ格納の密度の10倍以上でRAMアレーに格納することがで
きる。第2の方法では、選択および調整ロジックはファクタVだけ減少する。仮
想チャネルバッファへのアクセスのための調整は、すべてのVチャネル上ではな
く変化の起きた(フリット、またはクレジットの到着)チャネルに対してのみ行
われる。
【0100】 図11Aおよび11Bのフリットバッファ、状態テーブルおよび宛先テーブル
のみがV入力を持つ必要がある。ビット、転送およびクレジット待ち行列の入力
数が或る程度の値であれば、システムの各種のコンポネントの間の速度上のミス
マッチを解消するのに充分である。待ち行列が一杯になれば待ち行列を満たすユ
ニットの動作は、入力が待ち行列から外される迄停止するだけでよい。イベント
の待ち行列の間のサイクルを切ることによりデッドロックを避けることができる
。例えば転送待ち行列が一杯になった時に、転送イベントを停止することにより
状態テーブルは、引続きクレジットおよび到着イベントを消費することができる
。失われたイベントは、状態テーブルを定期的に走査することにより再生するこ
とができる。これとは別に、N個の待ち行列の1つ、例えば転送待ち行列をすべ
ての起こり得る同時イベント、通常V×N(但しNは各チャネルの入力バッファ
に於けるフリットの数である)を扱うのに充分な大きさにすることができる。
【0101】 分散 上述のように、各仮想ネットワークへの個別の仮想チャネルの割当ては、簡単
な解法であるが、これはコスト高につきその拡張性にも限界がある。各相互接続
ネットワークルータに必要なバッファの数は、システム内のノードの数と共に直
線的に増加する。512の仮想ネットワークにおいては、必要なフリットバッフ
ァの数は、ルータのスイッチファブリックを構成する集積回路上に経済的に設け
ることのできる物理的な限界を押し上げる。また仮想ネットワークに専用の各仮
想チャネルでは、仮想ネットワークが使用されない場合には、仮想チャネルは使
用されないままであり、ネットワーク全体での仮想チャネルの利用度が結果とし
て低下する。
【0102】 更にネットワークの速度を高めるためには、各ノードに於ける各仮想チャネル
に対するフリットバッファの数を増やすことが望ましい。上記のデザインにおい
ては、各ノードに於ける各仮想チャネルに対して2つのフリットバッファが準備
されるが、確認の作業がフリットバッファ間のフリットの転送を遅らせる。ノー
ド毎の仮想チャネル当たりのフリットバッファの数を増やすことにより、確認は
、転送と平行して行うことが可能であり、システムの速度は高められる。
【0103】 スイッチファブリックのバッファの数、従ってコストを引き下げるために、ま
た拡張性、速度および利用性を高めるために、仮想ネットワークは仮想チャネル
を共有することによりバッファ割当てをオーバーラップさせて構築することがで
きる。この方法で仮想ネットワークのすべてにサービスするのに必要な仮想チャ
ネルの数は大幅に減らすことができる。他方クロスバースイッチの性能に近くす
るためのシステムに対しては、1つの仮想ネットワーク中の混雑により共有され
る仮想チャネルが失われても、別の仮想ネットワークの伝送をブロックしないこ
とが重要である。従って各仮想ネットワークは、各ノードの複数の仮想チャネル
へのアクセスを持たねばならず、また任意の2つの仮想ネットワークXおよびY
に対し仮想ネットワークXは、仮想ネットワークYがアクセスを持たない仮想チ
ャネルへのアクセスを持つことが重要である。
【0104】 共有される仮想ネットワークシステムは、仮想ネットワークにまたがり仮想チ
ャネルの割当てを分散させる分散コードを用いて実施することができる。例えば
各ノード上でNの仮想チャネルを共有するMノードを持つネットワーク(従って
M仮想ネットワーク)を考えることとする。各仮想ネットワークjは、分散コー
ド、N仮想チャネルの何れを物理的ネットワークを通して使用することを許され
るかを示すNビットベクタを割当てられる。即ちベクタは、許される仮想チャネ
ルに対応する各ビット位置に1を含み、その他のすべての位置に0を含む。分散
コードは、仮想ネットワークの各対、XおよびYに対してXに対応するビットベ
クタは、1をYに対応するビットベクタがゼロを含む少なくとも一つの位置に1
を含むように割当てられる。
【0105】 パケットが分散ルーティングを用いるネットワークのノードに到達する時には
、パケットルートの次のホップに対して使用される仮想チャネルは、ビットベク
タと呼ばれる2つのセットを交叉させることにより決められる。分散コードベク
タAは、パケットが使用することを許される仮想チャネルのセットを記述し(即
ちチャネル割当てベクタとして用いられる)、また使用中のベクタBは、利用可
能なチャネルのセットを記述する。
【0106】 図15に図示されるように各仮想ネットワークは、N−ビット分散コードベク
タAに関連する。この場合Nは、ネットワークの中の各物理的チャネル上に多重
化される仮想チャネルの数である。特定の仮想ネットワークXに関連する分散コ
ードベクタAはCxビットセットを持ち、その上をXがルーティングすることを
許される仮想チャネルのサブセットを示す。2つの仮想ネットワーク、Xおよび
Yのための分散コードベクタは、一般にせいぜいSビットを持つに過ぎない、但
しSはCxおよびCyより小さい。
【0107】 仮想ネットワークのすべてに対する分散コードベクタは、図15に示されたテ
ーブル102に格納することができる。各仮想ネットワークが仮想チャネルの比
較的大きい部分上をルーティングすることを許される時には、テーブルは図に示
されたようにビットベクタとして最も効果的に直接コード化される。他方各仮想
ネットワークが全チャネルの小部分に限定されている時には、ベクタはチャネル
インデックスのリストとして圧縮された形で、より効果的に格納されている。例
えばベクタ0000100001001000は、インデックス3、6、11の
リストと呼ぶことができる。この場合3、6および11は、バイナリベクタの1
ビットの位置に該当し、最も右のビットは位置0に在る。ベクタをインデックス
として表すと、フルベクタの16ビットでなく3つの4ビットインデックスの1
2ビットを必要とする。或いはテーブルは、完全に省略され、組み合わせロジッ
クを用い仮想ネットワークインデックス(この場合は宛先ノードのアドレス)か
らチャネル割当てベクタを誘導することができる。例えば仮想チャネルが後述の
ようにそのX座標に対して一つのチャネルを、そのY座標に対して一つのチャネ
ルおよびZ座標に対して一つのチャネルを割当てられる時には、宛先アドレスの
座標値は直ちにデコードされて分散コードベクタを発生する。
【0108】 任意の時点で、物理的チャネルに関連する仮想チャネルの状態は、1セットの
ベクタに記録される。使用中のベクタBのビットは、対応する仮想チャネルがパ
ケットを持つために現在割当てられている時にはセットされ、使用中は、新しい
パケットを扱うために利用することはできない。
【0109】 仮想ネットワークX上を伝送中のパケットが1つのノードに到着する時には、
出力ポートPを選ぶためにルーティング決定が行われる。VC状態テーブルロジ
ック80(図11B)の中でその出力ポートに対応する形で出力ポートのビジー
ベクタの補数(Bp*)が仮想ネットワークXに対する分散コードベクタAxを
用い104においてANDされることにより候補仮想チャネルのベクタを求める
。V=(Bp*)∧Ax(但し、(Bp*)は、出力ポートのビジーベクタBp
の補数を示す)。Vがゼロベクタ(すべてがゼロ)である時には、チャネルは利
用できず、要求はポートPに対する仮想チャネルが利用できる様になる時には、
再吟味されるために待ち行列に入る。Vがゼロでなければアービタ106は、V
の非ゼロビットの一つを選び、対応するチャネルはパケットに割当てられ、Bp
の該当ビットがセットされてチャネルが使用中をマークする。仮想チャネルが割
当てられるとフリットの転送は上述のように行われる。
【0110】 データ転送を遅らせる混雑の、他の仮想ネットワークと共有された仮想チャネ
ルを通して分散することを防ぐことの外に、転送を停止するチャネルに関連する
デッドロックを避けるために、分散コードの割当てに注意を払わねばならない。
1次元および2次元ネットワークおよび更に3次元トーラスネットワークに対す
るデッドロックのないことの保証された分散コードの割当てが続く。
【0111】 図13に示された1次元双方向リングネットワークを考えることとする。ルー
プの周りの各方向で、仮想ネットワーク(VN)のスパンは、仮想ネットワーク
により使用される物理的チャネルのセットである。ルーティングが最小の場合、
例えばノード2で発行されたメッセージは、ルート2−1−6−5−4には従わ
ない、何故ならば最小ルート2−3−4があり、従って各VNのスパンは、サイ
クルのチャネルの半分をカバーするからである。例えば図13において、時計方
向にシェードを施されたノード4にルーツを持つVNのスパンは、3本の太いチ
ャネルから成っている。他の方向のそのスパンは、反対方向に向かう3本の細い
チャネルから成っている。
【0112】 5以上のラジックスK(図13は6のラジックスを持つ)および各メッセージ
に対する単一仮想チャネルの制約のない割当てを持つネットワークにおいて、リ
ンク上にオーバーラップするスパンを持つ3つのVNの従属サイクルは、デッド
ロックをもたらすことがある。例えば該当ルート1−2−3−4、3−4−5−
6および5−6−1−2、をカバーし、すべては同時に発行される3つのメッセ
ージを考えることとする。第1メッセージの虫穴は、ノード1において始まり、
ノード2を通って延びるが、ノード3の入力バッファに保持される、何故ならば
ノード3のメッセージは既に共有された仮想チャネルを確保しているからである
。ノード3に始まる第2メッセージの完了迄第1メッセージに生じた遅延は、そ
れ自体容認することのできるものである。しかしノード3に始まるメッセージは
、第3メッセージの完了迄はノード5を通さず、第3メッセージは第1メッセー
ジによりブロックされる。この様に各メッセージの前進は、それ自体第1メッセ
ージにより禁止される、即ちデッドロックの生じるサイクルに於ける別のメッセ
ージの完了によって禁止される。
【0113】 分散ルーティングでは、各宛先が仮想ネットワーク(VN)を定義し、そのネ
ットワークは、VNの任意の対の間のS仮想チャネル(0<S<C)の最大オー
バーラップを持つC仮想チャネル(VC)を用いることを許可される。3FVN
(F=floor(C/S))はデッドロック構成を作り出すには必要である、
何故ならばパケットは、デッドロックのためにはFの個別のブロックしたVNで
ブロックする必要があるからである。
【0114】 一次元においてデッドロックを避けるための充分な条件は、各VNに対しては
完全にオーバーラップするか、または全くオーバーラップしないVNとのみ上記
のVNが共有する、仮想チャネル(VC)を少なくとも1つの持つことである。
この結果は、ループの各座標値に対し、その座標値にルートを持つVNによって
のみ用いられるVCを割当てし、6つの仮想チャネルの図13のネットワークへ
の割当てを要求することにより得ることができる。しかしルーティングが最小の
場合、ネットワークにおいて互いに対向する、例えばミラーノード1および4は
、同じ仮想チャネルを共有することができる、何故ならばこれらの2つのノード
への最小のルートは、物理的チャネルを共有しないからである。ループ内のすべ
てのリンク上を、1つのノードに向けられたメッセージは、ミラーモード方向に
向けられたメッセージの反対方向に進行する。従って図13のループは、少なく
とも3つの仮想チャネルを必要とし、その各々はデッドロックを避けるためにミ
ラー仮想ネットワークによってのみ共有される。次に、追加仮想チャネルは、共
有されるかまたは共有されないループに割当てることができる。このアプローチ
により各VNは、その共有されないVCを通して常に進行(1次元中で)するこ
とができる。
【0115】 VNへのVCの制約度の少ない割当てにより、デッドロックを避けることは可
能である、何故ならばサイクル中の一点において、デッドロックを破ることが必
要であるに過ぎないからである。
【0116】 多次元ネットワークにおいては、すべての次元が個別にはデッドロックを生じ
ていなくてもデッドロックとなることがある。3次元に容易に拡張することので
きる2次元ケースを考えることとする。NW反転を行うパケットが、WS転換を
行うパケット上でブロックし、またWS反転を行うパケットが、SE反転を行う
パケット上でブロックし、またSE反転を行うパケットは、EN反転を行うパケ
ット上でブロックし、EN反転を行うパケットが、元のパケット上でブロックす
る時には、デッドロックの起きることがある。これによりサイクルが生じる(N
W、WS、SE、EN)、1992年5月の19th Internation
al Symposium on Computer Architectur
eの会報C.J.GlassおよびL.M.Ni,“The Turn Mod
el for Adaptive Routing”の278−287頁に示さ
れるようにサイクルは破ることができ、従ってサイクルの中の転換の一つを除外
することにより、デッドロックを回避することができる。例えば、サイクルの北
のエッジを完全に除去することによりサイクルは破れるが、EN反転のみが除去
されるだけで充分である。反転WN、または直進NNはデッドロックの危険なし
に許される。
【0117】 XおよびY次元の各々が上記のように仮想チャネルを割当てることにより、デ
ッドロックなしにできる2次元アレーを仮定する。例えば8×8アレーにおいて
、4+4=8仮想チャネルが適切な仮想ネットワークに割当てられる。割当ては
、宛先アドレス(mod K/2)の座標値により限定され、Kはそれぞれの次
元に於けるノードの数である。(mod K/2)ファクタは、VCを共有する
ミラーノードを明確にするものである。最小ルーティングが用いられる時には、
各VNはそれ自体デッドロックの危険はない、何故ならば宛先ノードに関する各
象限において、2方向のみ、従って8つの考えられる反転の内の2つのみが用い
られる。これは図14に図示されている。例えば宛先ノードの領域NEにおいて
は、パケットはSおよびW方向にのみ進行し、従ってSWとWS反転のみが許さ
れる。これは、時計方向サイクルからの1反転であり、反時計方向サイクルから
の1反転である。しかしVNがVCを共有する時には、1つのVNから失われた
反転が同じVCを共有する他のVNに出現することがあるから、デッドロックは
起こり得る。
【0118】 上述のようにデッドロックを招くサイクルは、サイクルの中での反転を禁じる
ことにより除去することができる。時計方向および反時計方向の両者のサイクル
を破るには、各方向の反転が除去されねばならない。更に或る仮想チャネルにお
いて除去された反転が、サイクルを完成するために別の仮想チャネルにおいて同
じ反転が用いられることのないことが保証されねばならない。VNに於ける或る
象限の両反転の禁止が、その象限から宛先に達することを妨げるために、禁止さ
れた反転は異なった象限からのものでなければならない。限定的であるが、その
象限の1回の反転しかできない場合にも、宛先は何れの象限からでも到達するこ
とができる。
【0119】 従って、次元間のデッドロックを防止するための充分な方法は、(1)次元毎
に個別にデッドロックを防止すること、および(2)(a)各VNが異なった象
限において時計方向および反時計方向の各々において4つの反転の一つを禁止し
、および(b)各VNが同じ反転を禁止するVNとの間でのみ共有される少なく
とも一つのVCを持つことを要求することである。これは、全く限定的である、
何故ならばこれは次元の順でルーティングすることを宛先ノードの周りの4つの
象限の2つに強制するからである。例えばEN反転が除外された時には、SWか
らの宛先へのメッセージは、先ずEに、次はNにルーティングしなければならな
くなる、何故ならばEN反転のみが利用できるに過ぎなくなるからである。
【0120】 ルーティングをよりフレキシブルにするがVCに関してはコスト高につく方策
は、2つのVNを各宛先ノードに関連付け、その各々は単一象限に対するすべて
の反転を禁止し、象限は2つのVNに対して相違するものである。例えばNWを
除くすべての象限に対する一つのVNは、SEおよびES反転を禁止し、SEを
除くすべての象限に対する一つのVNは、NWおよびWN反転を禁止するのであ
る。各クラスからのVNは、この時には各次元毎にデッドロックから解放されて
いる限り、制約なしにVCを共有することができる。残りに対する例の中では、
対角的象限が選ばれるが、任意の2つの象限は2つのVNに対して禁止されるこ
とがある。
【0121】 2つの次元にVCを割当てるための1つの有用な方法は、下記の通りである。 1.各宛先には、2つの仮想ネットワークを割当てられ、一つはSEおよびE
S反転を禁止し、また一つはNWおよびWN反転を禁止する。 2.各宛先には、VN宛先のX−座標値に関連するVCを割当てられ(mod
Kx/2)、KxはX−次元のノードの数である。このVCの割当ては、オー
バーラップしないこと、即ちX−次元での単一次元デッドロックのないことを保
証する。 3.各VNには、宛先のY−座標軸に関連するVCが割当てられる(mod
Ky/2)。これによりY−次元における単一デッドロックの解消は保証される
。 4.任意の追加のVC対は、S以上ではないVCが任意の2つの宛先の間で共
有されることの制約を条件として随意割当てられる。 5.ルーティングテーブルは、宛先のNW象限に於けるノードがNW/WNを禁
止するVNに限定され、SE象限に於けるノードは、他のVNに限定されるよう
に構成されている。NEおよびSW象限に於けるノードは、何れのVNをも使用
することができる。
【0122】 1例として、64ノード(8×8)の2次元ネットワークに対しこの割当ては
最低8VC対(合計16VC)を必要とする。
【0123】 利用の可能なVCの数は、利用可能なバッファスペースおよび各ノードにおけ
るVC当りのフリットバッファの数によって決まる。システムの速度を高め、ノ
ード当りのフリットバッファを増やすことにより、利用可能な仮想チャネルを減
少させる。上のステップ2および3において特定された必要な最低VCを越える
と、任意の利用可能な仮想チャネルは特定のVNに割当てることが可能であり、
従ってSおよび一つのVNの混雑の別のVNへの影響を制約し、またはネットワ
ーク上のVCの利用度を改善するために仮想チャネルは共有することができる。
例えば2つのVCが、上記のステップ2および3における各VNに割当てられ、
これらのステップの後、20チャネルが割当てのために利用可能な状態であると
仮定する。20全部は、C=22、S=21に対しすべてのVNにより共有され
、または20の各々は、C=3およびS=1に対し単一VNの専用として割当て
ることができる。
【0124】 共有を増やすことによりSの値は増える。C/Sの比は、如何に多くのVNが
混雑のために他のVNに影響を及ぼすことなくそれら自体ブロックされるかの指
標である。上記の比が大きくなるにつれて、1つVNに於ける混雑の他のVNへ
の影響は少なくなる。
【0125】 このアプローチを3次元に拡大するために、本発明は3次元次元間サイクルを
避けるために追加の反転を除去する必要がある。しかし本発明は、これを上記の
ように宛先当り2つのVNを用いるだけで果たすことができる。1つのVNは、
NWV(北、西、上)8分円(SE、ES、SD、DS、ED、DE)に関連す
る反転を除外するのに対し、他のVNはSED(南、東、下)8分円に関連する
反転を除外する。
【0126】 8×8×16として構成される、例えば1024−ノードネットワークは、ネ
ットワークの対称ミラー対の平面のそれぞれに対し、1つのVC対を割当てるた
めに最低4+4+8=16VC対(32VC)を必要とする。
【0127】 単一宛先が過剰なトラフィック量を受け取る時、その2つのVNに関連するす
べてのVCは急速に飽和し、発信元に逆流する。一見するとこれらのVCは、ネ
ットワークから除去されたように見えるが、実際には飽和は宛先から更にノード
に影響するものではない。上に述べたチャネル割当てにおいて、各宛先ノードが
、それぞれ3つのVC(次元当り一つ)を備えた2つのVNを持つ、飽和した宛
先と共に正確に一つの座標値を共有するノードへのVNは、それに向かってルー
ティングすべき4つのVCを残す。2つの座標値を共有するノードに対するVN
は、2つのVCを残す。
【0128】 偏向ルーティング 偏向ルーティングは、ほぼブロッキングを起こすことのない各種のファブリッ
ク出力に向かうトラフィックを形成するためのもう一つの方法である。偏向ルー
ティングを用いる時、パケットのすべては制約なしに仮想チャネルを共有するこ
とができる。しかし、パケットがブロックすると、必要な仮想チャネルが利用可
能となることを待つのではなく、存在するファブリックルータのラインインター
フェースのパケットメモリにミスルート、または“偏向”するのである。後にフ
ァブリックへの再注入が行われる。ファブリック出力Aに向かうパケットは、ブ
ロックを許されないから、ファブリック出力Bに向かうパケットを無限に遅らせ
ることはない。
【0129】 偏向ルーティングは、仮想ネットワークを用いることには及ばないが幾つかの
性質を持ち、異なった出力に向かうパケットの間を隔離する。先ず偏向ルーティ
ングは、バックプレッシャをもたらさない。出力が混雑すると出力に向かうパケ
ットは、簡単に偏向し、混雑している出力にパケットを送るファブリック入力は
、問題には気付かない。第2にブロッキングは起きないが、異なった出力に向か
うパケット間には著しい干渉が生じることである。出力Aが混雑すると、Aに隣
接するリンクは過度に利用され、これらのリンクの1つをトラバースする出力B
に向かうパケットは、高い確率で偏向することになる。第3に偏向ルーティング
を用いることにより、パケットメモリの帯域幅の必要性が大幅に増える、何故な
らばこのメモリは、偏向したパケットおよび正規の入出力の外にその再注入を取
り扱うための十分な帯域幅を持たねばならないからである。最後に、偏向ルーテ
ィングは、各ラインインターフェース上のパケットメモリの有限サイズにより限
定されている。IPルータでしばしば起きる大きな混雑の下では、パケットメモ
リは偏向したパケットにより、完全に満たすことができる。これが起きた時には
、パケットは、干渉およびデッドロックの危険を避けるためにドロップする必要
がある。
【0130】 本発明は、その好ましい実施形態に基づいて図示説明されたが、当業者には、
形態および細部に於ける各種の変更を、請求項により限定された本発明の精神と
範囲から逸脱することなしに行うことができることが理解される。当業者は、日
常の実験以上の手段を用いることなく、この中に具体的に記載された本発明の特
定の実施形態の均等物の多くのものを認識し、または確認することができる。こ
のような均等物は、請求の範囲の中に包含されるものとする。
【0131】 例えば図11A、11Bおよび12に関連して説明されたイベント駆動方式の
割当てロジックは、図8に示されたようなインターネット・スイッチ・ファブリ
ック・ルータに使用するのに適している。イベント駆動方式の割当てロジックは
、またマルチコンピュータルータに用いるのにも適していることが理解される。
例えば図8によれば、イベント駆動方式の割当てロジックと組み合わせられたラ
インインターフェース回路48としてマルチコンピュータインターフェースを用
いることは、図4に示されたようなマルチコンピュータシステムのためのマルチ
コンピュータルータを形成する。
【0132】 更にイベント駆動方式の割当てロジックは、物理的出力チャネルに物理的入力
チャネルを直接割当てるために適していることが理解される。好ましくは割当て
ロジックの単一コピーが使用される。ロジックは、イベントの出現により作動さ
れる。
【0133】 更に仮想チャネル状態テーブル80に対する状態ベクタの一部(図12を参照
)は、使用または待機情報などの特定の情報を示すための個別のビットを含むと
説明されていることが理解されるべきである。情報をコード化するスカラー・ス
テート・フィールドなどのビットの代わりに他の構造を用いることもできる。
【0134】 図11A、11Bおよび12に記載のイベント駆動方式の割当てロジックに関
連して各物理的入力チャネルは、多数の入力仮想チャネルにより共有され、また
各物理的出力チャネルは多数の出力仮想チャネルにより共有されることを理解す
べきである。割当てロジックは、各物理的チャネルに対する単一仮想チャネルを
提供するのに適している。このようなケースにおいて、各物理的入力チャネルは
、1つの入力仮想チャネルによってのみ使用され、また各物理的出力チャネルは
、1つの出力仮想チャネルによってのみ使用される。従って状態テーブルロジッ
クは、物理的入力チャネルを物理的出力チャネルに付随させる割当てを本質的に
作り出す。
【図面の簡単な説明】
本発明の上記および他の目的、特徴および利点は、添付の図面に図示された本
発明の好ましい実施形態の下記の具体的な説明から明らかとなる。上記の図面に
おいては、同じ部品に対しては一貫して同じ記号が用いられている。図面は、必
ずしも正しい縮尺ではなく、本発明の原理を図示する上で誇張が用いられている
【図1】 図1は、本発明を適用することのできるインターネットルータの構成を示す。
【図2】 図2は、公知のバスをベースとするインターネットルータである。
【図3】 図3は、公知のクロスバースイッチインターネットルータである。
【図4】 図4は、直接型マルチプロセッサネットワークに以前に用いられている2次元
トーラスアレーを示す。
【図5】 図5は、間接型ネットワークを示す。
【図6】 図6は、ネットワークのツリーの飽和を示す。
【図7】 図7は、本発明を具現する3次元ファブリックを図示する。
【図8】 図8は、図7のアレーの中のノードのラインインターフェースモジュールを示
す。
【図9】 図9は、図7および図8の実施形態に用られているファブリックルータを図示
する。
【図10】 図10Aおよび10Bは、図9のルータに用いられているバッファ、レジスタ
およびコントロールベクタを図示する。
【図11】 図11Aおよび11Bは、図9のルータの入力および出力コントロールのそれ
ぞれに備えられた別の割当てコントロールロジックを図示する。
【図12】 図12は、図9のルータに用いられている仮想チャネル状態テーブルを図示す
る。
【図13】 図13は、分散ルーティングを実証するために用いられたループを図示する。
【図14】 図14は、宛先の周りの各象限からの宛先に到達するのに必要な反転を図示す
る。
【図15】 図15は、本発明を具現する仮想チャネル選択回路を図示する。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GE,GH,GM,HR ,HU,ID,IL,IS,JP,KE,KG,KP, KR,KZ,LC,LK,LR,LS,LT,LU,L V,MD,MG,MK,MN,MW,MX,NO,NZ ,PL,PT,RO,RU,SD,SE,SG,SI, SK,SL,TJ,TM,TR,TT,UA,UG,U Z,VN,YU,ZW (72)発明者 カーベイ・フィリップ・ピー アメリカ合衆国,マサチューセッツ州 01730,ベッドフォード,ダニエルズ ド ライブ 7 (72)発明者 デンニソン・ラリー・アール アメリカ合衆国,マサチューセッツ州 02062,ノーウッド,ナハタン ストリー ト 505 (72)発明者 キング・ピー・アレン アメリカ合衆国,マサチューセッツ州 02192,ニードハム,ギブソン ストリー ト 30 Fターム(参考) 5K030 HA08 HC01 HD03 HD05 HD06 KA13 LB05 【要約の続き】 また出力ファブリックリンクに対して仮想チャネルを割 当てる。データパケットは、複数バーチャルチャネルへ のアクセスを共有し、アクセスは分散コードベクタによ り定義される。仮想チャネルは、経路の次のファブリッ クルータにおける特定の入力バッファが利用可能である ことの表示を確認した上で、出力ファブリックリンクに 対し可能な割当てを付与する。

Claims (47)

    【特許請求の範囲】
  1. 【請求項1】インターネットリンクからデータパケットを受け取り、このデー
    タパケットをルーティングするためにデータパケットのヘッダ情報を分析し、こ
    のデータパケットをインターネットリンク上に転送する、複数のインターネット
    リンクに結合しているインターネットルータであって、 ファブリックルータにより結合されたファブリックリンクのファブリックを備
    え、各ファブリックルータに対する前記ファブリックリンクの数はインターネッ
    トルータによりサービスされるインターネットリンクの数よりも大幅に少なく、
    前記ファブリックリンクおよびファブリックルータが前記ファブリックを通って
    1つまたは複数のホップを介してインターネットリンクの間の通信を提供するイ
    ンターネットルータ。
  2. 【請求項2】請求項1において、各インターネットリンクに対するラインイン
    ターフェースが、前記インターネットリンクから受け取るデータパケット中のヘ
    ッダ情報を分析して、インターネット・ルーティング・プロトコルを通して出力
    インターネットリンクを特定し、 ファブリック・ルーティング・プロトコルを通して、ファブリックを通って前
    記特定された出力インターネットリンク迄のルーティング経路を決定するインタ
    ーネットルータ。
  3. 【請求項3】請求項2において、前記リンクインターフェースが、前記ルーテ
    ィング経路の中の各連続リンクのリンク定義をヘッダ中に含むことにより、前記
    ファブリックを通る前記ルーティング経路を定義し、 前記ルーティング経路に沿った各ファブリックルータが、前記パケットの連続
    セグメントを転送するためにヘッダから関連リンク定義を格納するインターネッ
    トルータ。
  4. 【請求項4】請求項1において、ファブリックリンク上のホップの間で、パケ
    ットのセグメントがファブリックルータの中で宛先インターネットリンクに対応
    する仮想チャネルに割当てられた格納位置において格納されるインターネットル
    ータ。
  5. 【請求項5】請求項1において、前記インターネットルータによりサービスさ
    れるインターネットリンクの数は、少なくとも各ファブリックルータへのファブ
    リックリンクの数よりも大きいオーダであり、 さらにファブリックルータ当りの仮想チャネルの数が、ファブリックルータへ
    のリンクの数よりも十分に大きいインターネットルータ。
  6. 【請求項6】請求項1において、各ファブリックルータは、ファブリックリン
    クを共有する仮想チャネルを定義する複数のバッファを備え、 前記仮想チャネルとリンクは、インターネットルータ入力と出力との間の仮想
    ネットワークを形成し、その中で1つの仮想ネットワーク内の混雑が他の仮想ネ
    ットワークを通って流れるパケットをブロッキングしないインターネットルータ
  7. 【請求項7】請求項1において、調整を各ファブリックルータにおいて実行し
    て、前記ファブリックルータからの出力に対する仮想チャネルにパケットを割当
    て、さらに仮想チャネルを前記ファブリックルータからの出力ファブリックリン
    クに割当てるインターネットルータ。
  8. 【請求項8】請求項1において、各ファブリックルータがクロスバースイッチ
    を備えているインターネットルータ。
  9. 【請求項9】請求項8において、各ファブリックルータが、それぞれのファブ
    リックルータおよびインターネットリンクからデータパケットを受け取る入力バ
    ッファを備えたインターネットルータ。
  10. 【請求項10】請求項9において、各ファブリックルータが、前記ファブリッ
    クリンクの反対側の端において利用できる何らかの表示を入力バッファが受け取
    った時に、出力ファブリックリンクに沿ってデータを転送するための出力コント
    ローラを備えたインターネットルータ。
  11. 【請求項11】請求項1において、前記ファブリックが直接ネットワークであ
    るインターネットルータ。
  12. 【請求項12】請求項1において、前記ファブリックが3次元トーラスネット
    ワークであるインターネットルータ。
  13. 【請求項13】インターネットリンク間でデータパケットをルーティングする
    方法であって、 データパケットを出力インターネットリンクにルーティングするためにデータ
    パケット中のヘッダ情報を分析し、 前記データパケットを、ファブリックルータのマルチホップ・ファブリック・
    ネットワークを通して前記出力インターネットリンクにルーティングするインタ
    ーネットリンク間のルーティング方法。
  14. 【請求項14】請求項13において、更に、ラインインターフェースにおいて
    データパケット中のヘッダ情報を解析して、インターネットルーティングプロト
    コルを通して出力インターネットリンクを特定し、 ファブリックネットワークを通し、前記特定された出力インターネットリンク
    へのルーティング経路をファブリックルーティングプロトコルにより決定するイ
    ンターネットリンク間のルーティング方法。
  15. 【請求項15】請求項14において、前記リンクインタフェースがヘッダ中に
    前記ルーティング経路の各連続リンクのリンク定義を含むことにより、前記ファ
    ブリックを通る前記ルーチング経路を定義し、 前記ルーティング経路に沿った各ファブリックルータが、前記パケットの連続
    セグメントを転送するために前記ヘッダからのリンク定義を格納するインターネ
    ットリンク間のルーティング方法。
  16. 【請求項16】請求項13において、ファブリックリンク上のホップの間で、
    セグメントが宛先インターネットリンクに対応する仮想チャネルに割当てられた
    格納位置においてファブリックルータに格納されるインターネットリンク間のル
    ーティング方法。
  17. 【請求項17】請求項13において、各ファブリックルータは、ファブリック
    リンクを共有する仮想チャネルを定義する複数のバッファを有し、 前記仮想チャネルとリンクが、インターネットルータ入力および出力の間で仮
    想ネットワークを形成し、そこでは1つのネットワーク内の混雑が他の仮想ネッ
    トワークを流れるパケットをブロックしないインターネットリンク間のルーティ
    ング方法。
  18. 【請求項18】請求項13おいて、調整を各ファブリックルータにおいて実行
    し、前記ファブリックからの出力に対する仮想チャネルにパケットを割当て、さ
    らに前記ファブリックルータからの出力ファブリックリンクに仮想チャネルを割
    当てるインターネットリンク間のルーティング方法。
  19. 【請求項19】請求項13において、前記データパケットが、クロスバースイ
    ッチを通してファブリックリンクの間をルーティングされるインターネットリン
    ク間のルーティング方法。
  20. 【請求項20】請求項13において、前記データパケットが、3次元トーラス
    直接ネットワークを通してインターネットリンク間をルーティングされるインタ
    ーネットリンク間のルーティング方法。
  21. 【請求項21】ファブリックリンクにより接続された複数のファブリックルー
    タを備えたネットワークであって、 各ファブリックルータは、ファブリックリンクを共有する仮想チャネルを定義
    する複数のバッファを備え、 前記仮想チャネルとリンクがネットワークの入力と出力との間で仮想ネットワ
    ークを形成し、そこでは各仮想ネットワークが1セットのネットワーク出力と関
    連付けられ、その中では、1つの仮想ネットワークの混雑が他の仮想ネットワー
    クを通って流れるパケットをブロックしないネットワーク。
  22. 【請求項22】請求項21において、ファブリックリンク上のホップの間で、
    セグメントがネットワーク出力に対応する仮想チャネルに割当てられた格納位置
    においてファブリックルータに格納されるネットワーク。
  23. 【請求項23】データパケットをルーティングするルーターであって、 前記データパケットの少なくとも一部を受け取る物理的入力チャネルと、 物理的出力チャネルと、 前記物理的入力および出力チャネルに結合されて、前記データパケットの一部
    を格納するデータバッファと、 前記物理的入力および出力チャネルならびに前記データバッファに結合されて
    、待ち行列イベントに応じたチャネル割当てを作成し、作成されたチャネル割当
    てに従って、前記データパケットの一部を前記物理的出力チャネルを通して出力
    するコントロール回路とを備えたルータ。
  24. 【請求項24】請求項23において、前記コントロール回路が、待ち行列イベ
    ントに応じて仮想チャネルを前記データパケットに割当てるルータ。
  25. 【請求項25】請求項24において、前記コントロール回路が複数の仮想チャ
    ネルにより共有され、イベントに応じて特定の仮想チャネルを扱うように作動さ
    れるルータ。
  26. 【請求項26】請求項1において、各出力コントローラが更に、 出力チャネルの状態を維持する状態テーブルと、 前記状態テーブルが待ち行列イベントに応じてアクセスされる時に、トランス
    ポート要求を待ち行列に加え、待ち行列のトランスポート要求にしたがい物理的
    出力チャネルを通してデータパケットを転送するトランスポート回路とを有する
    ルータ。
  27. 【請求項27】請求項1において、各出力コントローラが下流ルータからクレ
    ジットイベントを受け取り、 その受け取られたクレジットイベントに応じて、対応する物理的出力チャネル
    上にデータパケットの一部を転送するために転送要求を待ち行列に加えるルータ
  28. 【請求項28】請求項23において、前記コントロール回路が、待ち行列イベ
    ントに応じて物理的チャネル割当てを作り出すルータ。
  29. 【請求項29】請求項28において、前記コントロール回路が複数の仮想チャ
    ネルにより共有され、イベントに応じて特定の仮想チャネルを扱うよう動作する
    ルータ。
  30. 【請求項30】請求項23において、更に、 マルチコンピュータシステムのためのマルチコンピュータルータを形成するよ
    うに、物理的入力チャネルおよび物理的出力チャネルに結合されたマルチコンピ
    ュータインターフェースを備えたルータ。
  31. 【請求項31】請求項23において、更に、 インターネットスイッチファブリックルータを形成するように、物理的入力チ
    ャネルと物理的出力チャネルに結合されたラインインターフェースを備えたルー
    タ。
  32. 【請求項32】請求項23において、前記コントロール回路が、前記物理的出
    力チャネルを入力チャネルに関連付けた状態テーブル含むルータ。
  33. 【請求項33】物理的入力チャネルから物理的出力チャネルにデータパケット
    をルーティングする方法であって、 前記物理的入力チャネル上で前記データパケットの少なくとも一部を受け取り
    、 待ち行列イベントに応じてチャネル割当てを作成し、 前記作成されたチャネル割当てに従って前記物理的出力チャネルを通してデー
    タパケットの一部を出力するルーティング方法。
  34. 【請求項34】請求項33の方法において、前記チャネル割当てを作成する工
    程が、 仮想チャネルを前記データパケットに割当てる仮想チャネル割当てを作成し、 物理的出力チャネルを前記仮想チャネルに割当てる物理的チャネル割当てを作
    成し、その割当ての各々は待ち行列到着およびクレジットイベントに応じて作成
    され、前記データパケットの一部は前記作成された仮想および物理的チャネル割
    当てに従って前記物理的出力チャネル上に転送されるルーティング方法。
  35. 【請求項35】請求項34の方法において、前記物理的チャネル割当てを作成
    する工程が 転送待ち行列に転送要求を加え、この転送要求が前記データパケットの一部を
    前記物理的出力チャネルを通して転送するよう要求するものであるルーティング
    方法。
  36. 【請求項36】データパケットをルーティングするルータであって、 前記データパケットの少なくとも一部を受け取る物理的入力チャネルと、 物理的出力チャネルと、 前記物理的入力および出力チャネルに結合されて、前記データパケットの一部
    を格納するデータバッファと、 前記物理的入力および出力チャネルならびに前記データバッファに結合されて
    、物理的チャネル上に多重化される仮想チャネルに対するデータパケットの割当
    てを作成し、第1データパケットがサイズC1の仮想チャネルの第1セットへの アクセスを持ち、第2データパケットがサイズC2の仮想チャネルの第2セット へのアクセスを持ち、さらに、0<S<C1およびS<C2であるサイズSの第1
    セットおよび第2セットの交点が存在するコントロール回路とを備えたルータ。
  37. 【請求項37】請求項36において、前記第1パケットは、第1仮想ネットワ
    ーク上を進み、また前記第2パケットは、第2仮想ネットワーク上を進むルータ
  38. 【請求項38】請求項37において、前記第1仮想ネットワーク上にルーティ
    ングされたすべてのパケットが、前記仮想チャネルの第1セットを共有し、前記
    第2仮想ネットワーク上にルーティングされたすべてのパケットが、仮想チャネ
    ルの第2セットを共有するルータ。
  39. 【請求項39】請求項37において、各仮想ネットワークが特定のセットの宛
    先ノードに向けられたパケットを運ぶルータ。
  40. 【請求項40】請求項39において、各仮想ネットワークにおいて次元間のデ
    ッドロックを防止するために反転が許されないルータ。
  41. 【請求項41】請求項36において、前記コントロール回路が物理的出力チャ
    ネルに対応する出力コントローラを有し、 各出力コントローラが、出力仮想チャネルの状態を記録してデータパケットの
    一部を保持する入力仮想チャネルを特定する状態テーブルと、出力仮想チャネル
    を割当てるために状態テーブルにアクセスする状態テーブルロジックとを有する
    ルータ。
  42. 【請求項42】請求項41において、前記状態テーブルが各仮想ネットワーク
    に対する仮想チャネル割当てベクタを有するルータ。
  43. 【請求項43】請求項42において、前記状態テーブルが、更に、前記物理的
    出力チャネル中で使用中の仮想チャネルを示すビジーベクタを備え、出力仮想チ
    ャネルが、仮想チャネル割当てベクタとビジーベクタの組み合せから選ばれるル
    ータ。
  44. 【請求項44】請求項36において、前記データパケットのすべてが、複数の
    仮想ネットワーク上を進み、各仮想ネットワークiは、仮想チャネルのサイズC i のサブセットを使用し、そのサブセットは、少なくとも1つの他の仮想ネット ワークのサブセトにオーバーラップし、他の仮想ネットワークの中のS<C1以 上でない仮想チャネルを共有するルータ。
  45. 【請求項45】データパケットをルーティングするルータであって、 前記データパケットの少なくとも一部を受け取る物理的入力チャネルと、 物理的出力チャネルと、 前記物理的入力および出力チャネルに結合されて、前記データパケットの一部
    を格納するデータバッファと、 前記物理的入力および出力チャネルならびに前記データバッファに結合されて
    、物理的チャネル上に多重化される仮想チャネルに対するデータパケットの割当
    てを作成し、データパケットが、別のデータパケットがアクセスを持つ複数の仮
    想チャネルへのアクセスを共有し、第1データパケットが第2データパケットと
    仮想チャネルのすべてではなく一部分を共有するコントロール回路とを備えたル
    ータ。
  46. 【請求項46】データパケットをルーティングするルータのネットワークであ
    って、各ルータが、 前記データパケットの少なくとも一部を受け取る物理的入力チャネルと、 物理的出力チャネルと、 前記物理的入力および出力チャネルに結合されて、前記データパケットの一部
    を格納するデータバッファと、 前記物理的入力および出力チャネルならびに前記データバッファに結合されて
    、物理的チャネル上に多重化される仮想チャネルに対するデータパケットの割当
    てを作成し、第1データパケットは、サイズC1の第1セットの仮想チャネルへ のアクセスを持ち、第2データパケットは、サイズC2の第2セットの仮想チャ ネルへのアクセスを持ち、0<S<C1およびS<C2であるサイズSの第1セッ
    トおよび第2セットの交点が存在するコントロール回路とを備えたルータのネッ
    トワーク。
  47. 【請求項47】データパケットをルーティングする方法であって、 データパケットの少なくとも一部を格納し、 物理的チャネル上に多重化される仮想チャネルへのデータパケットの割当てを
    作成し、第1データパケットは、サイズC1の仮想チャネルの第1セットへのア クセスを持ち、第2データパケットは、サイズC2の仮想チャネルの第2セット へのアクセスを持ち、0<S<C1およびS<C2であるサイズSの第1および第
    2セットの交点が存在し、 物理的出力チャネル上にデータパケットの格納された部分を転送するルーティ
    ング方法。
JP2000508177A 1997-08-22 1998-08-20 仮想チャネル割当てを持つルータ Pending JP2001514463A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US08/918,556 US6370145B1 (en) 1997-08-22 1997-08-22 Internet switch router
US09/084,636 US6285679B1 (en) 1997-08-22 1998-05-26 Methods and apparatus for event-driven routing
US09/084,636 1998-05-26
US08/918,556 1998-05-26
PCT/US1998/016762 WO1999011033A1 (en) 1997-08-22 1998-08-20 Router with virtual channel allocation

Publications (1)

Publication Number Publication Date
JP2001514463A true JP2001514463A (ja) 2001-09-11

Family

ID=26771230

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000508177A Pending JP2001514463A (ja) 1997-08-22 1998-08-20 仮想チャネル割当てを持つルータ

Country Status (9)

Country Link
US (5) US6285679B1 (ja)
EP (2) EP1641195A1 (ja)
JP (1) JP2001514463A (ja)
KR (1) KR100615724B1 (ja)
AT (1) ATE313891T1 (ja)
AU (1) AU8904898A (ja)
CA (1) CA2301112A1 (ja)
DE (1) DE69832884T2 (ja)
WO (1) WO1999011033A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005295236A (ja) * 2004-03-31 2005-10-20 Serukurosu:Kk 通信装置
WO2007097006A1 (ja) * 2006-02-24 2007-08-30 Fujitsu Limited パケット送出制御装置および方法

Families Citing this family (159)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6285679B1 (en) * 1997-08-22 2001-09-04 Avici Systems, Inc. Methods and apparatus for event-driven routing
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6226680B1 (en) 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6757746B2 (en) 1997-10-14 2004-06-29 Alacritech, Inc. Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US8782199B2 (en) 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US6359879B1 (en) * 1998-04-24 2002-03-19 Avici Systems Composite trunking
US6487172B1 (en) * 1998-08-21 2002-11-26 Nortel Networks Limited Packet network route selection method and apparatus using a bidding algorithm
US6934471B1 (en) 1999-06-03 2005-08-23 Avici Systems, Inc. Photonic switch using time-slot interchange
US6650618B1 (en) * 1999-07-01 2003-11-18 Nortel Networks Limited Method and apparatus for managing communications between nodes in a bi-directional ring network
WO2001037509A2 (en) * 1999-11-18 2001-05-25 The Global Teleexchange Inc. Virtual trading floor and intelligent agents for telecommunications products and services
US6463067B1 (en) * 1999-12-13 2002-10-08 Ascend Communications, Inc. Submission and response architecture for route lookup and packet classification requests
KR100321784B1 (ko) * 2000-03-20 2002-02-01 오길록 중재 지연 내성의 분산형 입력 버퍼 스위치 시스템 및그를 이용한 입력 데이터 처리 방법
US6961342B1 (en) * 2000-03-29 2005-11-01 Necdet Uzun Methods and apparatus for switching packets
GB0008195D0 (en) 2000-04-05 2000-05-24 Power X Limited Data switching arbitration arrangements
AU5497401A (en) 2000-05-18 2001-11-26 Power X Limited Apparatus and method for resource arbitration
US6856595B1 (en) 2000-05-19 2005-02-15 Mosaid Technologies, Inc. Method and apparatus for providing input back pressure in an output buffered switch
US6557070B1 (en) 2000-06-22 2003-04-29 International Business Machines Corporation Scalable crossbar switch
US7114008B2 (en) * 2000-06-23 2006-09-26 Cloudshield Technologies, Inc. Edge adapter architecture apparatus and method
US8204082B2 (en) 2000-06-23 2012-06-19 Cloudshield Technologies, Inc. Transparent provisioning of services over a network
US7032031B2 (en) 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
US6829654B1 (en) 2000-06-23 2004-12-07 Cloudshield Technologies, Inc. Apparatus and method for virtual edge placement of web sites
US9444785B2 (en) 2000-06-23 2016-09-13 Cloudshield Technologies, Inc. Transparent provisioning of network access to an application
US7003555B1 (en) 2000-06-23 2006-02-21 Cloudshield Technologies, Inc. Apparatus and method for domain name resolution
JP2002026973A (ja) * 2000-07-12 2002-01-25 Nec Corp 経路検索システム及びその方法並びにそれに使用するルータ装置
JP3646638B2 (ja) * 2000-09-06 2005-05-11 日本電気株式会社 パケット交換装置及びそれに用いるスイッチ制御方法
US7046633B2 (en) 2000-09-21 2006-05-16 Avici Systems, Inc. Router implemented with a gamma graph interconnection network
US6947433B2 (en) 2000-09-21 2005-09-20 Avici Systems, Inc. System and method for implementing source based and egress based virtual networks in an interconnection network
US7039058B2 (en) 2000-09-21 2006-05-02 Avici Systems, Inc. Switched interconnection network with increased bandwidth and port count
US8019901B2 (en) 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
US7002937B1 (en) * 2000-10-17 2006-02-21 Sprint Communications Company L.P. Access based on termination in a wireless communication system
US7221677B1 (en) * 2000-10-19 2007-05-22 Interactic Holdings, Llc Scalable apparatus and method for increasing throughput in multiple level minimum logic networks using a plurality of control lines
US7324500B1 (en) * 2000-10-31 2008-01-29 Jeremy Benjamin As Receiver For Chiaro Networks Ltd. Router network protection using multiple facility interfaces
USRE42600E1 (en) * 2000-11-20 2011-08-09 Polytechnic University Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined arbitration scheme
US7103056B2 (en) * 2000-11-20 2006-09-05 Polytechnic University Scheduling the dispatch of cells in multistage switches using a hierarchical arbitration scheme for matching non-empty virtual output queues of a module with outgoing links of the module
US7173931B2 (en) * 2000-11-20 2007-02-06 Hung-Hsiang Jonathan Chao Scheduling the dispatch of cells in multistage switches
US6967926B1 (en) * 2000-12-31 2005-11-22 Cisco Technology, Inc. Method and apparatus for using barrier phases to limit packet disorder in a packet switching system
SE521190C2 (sv) * 2001-02-16 2003-10-07 Ericsson Telefon Ab L M Metod system och anordning för att styra bandbreddsanvändningen i ett datakommunikationsnät
US6658494B2 (en) * 2001-04-20 2003-12-02 Nvision, Inc. Router topology having N on 1 redundancy
US20020159458A1 (en) * 2001-04-27 2002-10-31 Foster Michael S. Method and system for reserved addressing in a communications network
US7486685B2 (en) * 2001-06-29 2009-02-03 Rankin Linda J System for sharing channels by interleaving flits
KR100421547B1 (ko) * 2001-09-19 2004-03-09 주식회사 비트텔 다중 인터넷 공유기 및 공유방법
JP2003124953A (ja) * 2001-10-15 2003-04-25 Fujitsu Ltd リング型ネットワークシステム
US6941425B2 (en) * 2001-11-12 2005-09-06 Intel Corporation Method and apparatus for read launch optimizations in memory interconnect
US20030093632A1 (en) * 2001-11-12 2003-05-15 Intel Corporation Method and apparatus for sideband read return header in memory interconnect
US7274702B2 (en) * 2001-11-27 2007-09-25 4198638 Canada Inc. Programmable interconnect system for scalable router
US7047437B2 (en) * 2001-12-12 2006-05-16 Hewlett-Packard Development Company, L.P. Method and system for detecting dropped micro-packets
US8418129B1 (en) 2001-12-14 2013-04-09 Qualcomm Incorporated Method for automatically generating code to define a system of hardware elements
US7424013B1 (en) * 2001-12-20 2008-09-09 Applied Micro Circuits Corporation System and method for granting arbitrated bids in the switching of information
US7020131B1 (en) 2001-12-24 2006-03-28 Applied Micro Circuits Corp. System and method for hierarchical switching
US7352694B1 (en) * 2001-12-14 2008-04-01 Applied Micro Circuits Corporation System and method for tolerating data link faults in a packet communications switch fabric
US7209453B1 (en) * 2001-12-14 2007-04-24 Applied Micro Circuits Corporation System and method for tolerating control link faults in a packet communications switch fabric
US7079545B1 (en) 2001-12-17 2006-07-18 Applied Microcircuits Corporation ( Amcc) System and method for simultaneous deficit round robin prioritization
US7126970B2 (en) * 2001-12-20 2006-10-24 Tropic Networks Inc. Communication system with balanced transmission bandwidth
US7020643B2 (en) * 2002-01-25 2006-03-28 Microsoft Corporation Method and system for clickpath funnel analysis
US7254138B2 (en) * 2002-02-11 2007-08-07 Optimum Communications Services, Inc. Transparent, look-up-free packet forwarding method for optimizing global network throughput based on real-time route status
US7024505B2 (en) * 2002-03-28 2006-04-04 Seagate Technology Llc Fair arbitration method in a distributed arbitration system
US6956861B2 (en) * 2002-04-16 2005-10-18 Interactics Holdings, Llc Controlled shared memory smart switch system
US7543087B2 (en) 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
US7275081B1 (en) 2002-06-10 2007-09-25 Juniper Networks, Inc. Managing state information in a computing environment
US7603449B1 (en) * 2002-06-10 2009-10-13 Crossroads Systems, Inc. System and method for inquiry caching
GB0215505D0 (en) * 2002-07-04 2002-08-14 Univ Cambridge Tech Packet routing
US20110164616A1 (en) * 2002-10-02 2011-07-07 Andiamo Systems Methods and apparatus for processing superframes
US20040081108A1 (en) * 2002-10-02 2004-04-29 Andiamo Systems Arbitration system
KR100488478B1 (ko) * 2002-10-31 2005-05-11 서승우 다중 입력/출력 버퍼형 교환기
IL152676A0 (en) * 2002-11-06 2003-06-24 Teracross Ltd Method and apparatus for high performance single block scheduling in distributed systems
US7324460B2 (en) 2002-11-28 2008-01-29 International Business Machines Corporation Event-driven flow control for a very high-speed switching node
US7457303B2 (en) * 2003-06-06 2008-11-25 International Business Machines Corporation One-bounce network
US7379424B1 (en) * 2003-08-18 2008-05-27 Cray Inc. Systems and methods for routing packets in multiprocessor computer systems
US7739403B1 (en) 2003-10-03 2010-06-15 Juniper Networks, Inc. Synchronizing state information between control units
WO2005048500A2 (en) * 2003-10-30 2005-05-26 Teak Technologies Inc., Nonblocking and deterministic multicast packet scheduling
US20050201356A1 (en) * 2004-03-11 2005-09-15 Yasuyuki Miura Adaptive routing for hierarchical interconnection network
US8351468B2 (en) 2004-04-05 2013-01-08 Broadcom Corporation Method and apparatus for downloading content using channel bonding
US7165131B2 (en) * 2004-04-27 2007-01-16 Intel Corporation Separating transactions into different virtual channels
US7957428B2 (en) 2004-05-21 2011-06-07 Intel Corporation Methods and apparatuses to effect a variable-width link
US7440530B1 (en) 2004-06-18 2008-10-21 Xilinx, Inc. Circuit for and method of optimizing the transmission of data on a communication channel
US9264384B1 (en) * 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US7376134B2 (en) 2004-08-02 2008-05-20 Novell, Inc. Privileged network routing
US8248939B1 (en) 2004-10-08 2012-08-21 Alacritech, Inc. Transferring control of TCP connections between hierarchy of processing mechanisms
EP1807951B1 (en) * 2004-10-29 2019-04-10 Avago Technologies International Sales Pte. Limited Hierarchical flow-level multi-channel communication
US20060101178A1 (en) * 2004-11-08 2006-05-11 Zhong Tina C Arbitration in a multi-protocol environment
US20060165081A1 (en) * 2005-01-24 2006-07-27 International Business Machines Corporation Deflection-routing and scheduling in a crossbar switch
US7724733B2 (en) * 2005-03-31 2010-05-25 International Business Machines Corporation Interconnecting network for switching data packets and method for switching data packets
US7546392B2 (en) * 2005-05-13 2009-06-09 Texas Instruments Incorporated Data transfer with single channel controller controlling plural transfer controllers
US8027256B1 (en) * 2005-06-02 2011-09-27 Force 10 Networks, Inc. Multi-port network device using lookup cost backpressure
US9813283B2 (en) 2005-08-09 2017-11-07 Oracle International Corporation Efficient data transfer between servers and remote peripherals
US7606241B1 (en) 2005-08-12 2009-10-20 Juniper Networks, Inc. Extending standalone router syntax to multi-chassis routers
US8325768B2 (en) * 2005-08-24 2012-12-04 Intel Corporation Interleaving data packets in a packet-based communication system
US7552262B1 (en) * 2005-08-31 2009-06-23 Juniper Networks, Inc. Integration of an operative standalone router into a multi-chassis router
US7747999B1 (en) 2005-09-26 2010-06-29 Juniper Networks, Inc. Software installation in a multi-chassis network device
US8135857B1 (en) 2005-09-26 2012-03-13 Juniper Networks, Inc. Centralized configuration of a multi-chassis router
JP4546380B2 (ja) * 2005-10-04 2010-09-15 エヌイーシーコンピュータテクノ株式会社 クロスバースイッチ、情報処理装置および転送方法
US7518986B1 (en) 2005-11-16 2009-04-14 Juniper Networks, Inc. Push-based hierarchical state propagation within a multi-chassis network device
US7804769B1 (en) 2005-12-01 2010-09-28 Juniper Networks, Inc. Non-stop forwarding in a multi-chassis router
US8306030B1 (en) * 2006-03-21 2012-11-06 Sprint Communications Company L.P. Vector based session security
US8255599B2 (en) * 2006-03-28 2012-08-28 Integrated Device Technology Inc. Packets transfer device having data absorbing buffers with elastic buffer capacities
US20070280141A1 (en) * 2006-05-01 2007-12-06 Seagate Technology, Llc Hardware implementation of loop initialization protocol
US8228930B1 (en) * 2006-06-02 2012-07-24 The Board Of Trustees Of The Leland Stanford Junior University Interconnection network router arrangements and methods therefor
US8213294B2 (en) * 2006-06-27 2012-07-03 International Business Machines Corporation Mechanism for detecting and clearing I/O fabric lockup conditions for error recovery
US20080072113A1 (en) * 2006-08-30 2008-03-20 Siukwin Tsang Method of locating packet for resend from retry buffer
US8745185B1 (en) 2006-10-12 2014-06-03 Timothy J. Salo Method and apparatus for providing semantically aware network services
US7773616B2 (en) * 2006-11-08 2010-08-10 Sicortex, Inc. System and method for communicating on a richly connected multi-processor computer system using a pool of buffers for dynamic association with a virtual channel
JP5056844B2 (ja) * 2007-03-20 2012-10-24 富士通株式会社 一意情報集団通信プログラム、計算ノード、および一意情報集団通信方法
US20080263171A1 (en) * 2007-04-19 2008-10-23 Alacritech, Inc. Peripheral device that DMAS the same data to different locations in a computer
US7944842B2 (en) * 2007-04-20 2011-05-17 International Business Machines Corporation Opportunistic queueing injection strategy for network load balancing
US7852867B2 (en) * 2007-07-06 2010-12-14 Integrated Deoice Technology, Inc. Integrated memory for storing egressing packet data, replay data and to-be egressed data
US7773591B2 (en) * 2007-07-06 2010-08-10 Integrated Device Technology, Inc. Integrated memory for storing egressing packet data, replay data and to-be egressed data
US7792014B2 (en) * 2007-09-28 2010-09-07 Integrated Device Technology, Inc. Method of skipping nullified packets during mass replay from replay buffer
US8612997B2 (en) 2008-01-15 2013-12-17 International Business Machines Corporation Event-driven component integration framework for implementing distributed systems
US8539513B1 (en) 2008-04-01 2013-09-17 Alacritech, Inc. Accelerating data transfer in a virtual computer system with tightly coupled TCP connections
US8223650B2 (en) * 2008-04-02 2012-07-17 Intel Corporation Express virtual channels in a packet switched on-chip interconnection network
WO2009133918A1 (ja) * 2008-04-30 2009-11-05 日本電気株式会社 ルータ、そのルータを有する情報処理装置及びパケットのルーティング方法
US7562168B1 (en) 2008-05-29 2009-07-14 International Business Machines Corporation Method of optimizing buffer usage of virtual channels of a physical communication link and apparatuses for performing the same
KR101495811B1 (ko) * 2008-06-09 2015-02-25 삼성전자주식회사 고속의 패킷 라우팅 시스템 장치 및 방법
US8619769B2 (en) * 2008-06-12 2013-12-31 Mark Henrik Sandstrom Packet-layer transparent packet-switching network
GB2461132B (en) 2008-06-27 2013-02-13 Gnodal Ltd Method of data delivery across a network
US8223641B2 (en) * 2008-07-28 2012-07-17 Cellco Partnership Dynamic setting of optimal buffer sizes in IP networks
US8341286B1 (en) 2008-07-31 2012-12-25 Alacritech, Inc. TCP offload send optimization
US9306793B1 (en) 2008-10-22 2016-04-05 Alacritech, Inc. TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies
WO2010103610A1 (ja) * 2009-03-09 2010-09-16 富士通株式会社 情報処理装置
US20110010522A1 (en) * 2009-06-12 2011-01-13 Cray Inc. Multiprocessor communication protocol bridge between scalar and vector compute nodes
US8306042B1 (en) * 2009-06-19 2012-11-06 Google Inc. Class-based deterministic packet routing
JP5493575B2 (ja) * 2009-08-10 2014-05-14 富士通株式会社 情報処理装置及び情報処理装置の制御方法
US9973446B2 (en) 2009-08-20 2018-05-15 Oracle International Corporation Remote shared server peripherals over an Ethernet network for resource virtualization
US8830993B1 (en) * 2010-05-27 2014-09-09 Ciena Corporation Extensible time space switch systems and methods for high capacity multi-service applications
US9331963B2 (en) 2010-09-24 2016-05-03 Oracle International Corporation Wireless host I/O using virtualized I/O controllers
US20130279341A1 (en) * 2010-12-07 2013-10-24 Michael Bahr Congestion Notification Element and Method for Congestion Control
US8787379B2 (en) 2011-02-02 2014-07-22 Futurewei Technologies, Inc. Destination-based virtual channel assignment in on-chip ring networks
US9553817B1 (en) 2011-07-14 2017-01-24 Sprint Communications Company L.P. Diverse transmission of packet content
US8867559B2 (en) * 2012-09-27 2014-10-21 Intel Corporation Managing starvation and congestion in a two-dimensional network having flow control
US9083550B2 (en) 2012-10-29 2015-07-14 Oracle International Corporation Network virtualization over infiniband
US9577791B2 (en) 2012-12-05 2017-02-21 Intel Corporation Notification by network element of packet drops
US8989017B2 (en) * 2012-12-14 2015-03-24 Intel Corporation Network congestion management by packet circulation
WO2014116223A1 (en) 2013-01-25 2014-07-31 Hewlett-Packard Development Company, L.P. Queue buffer de-queuing
US9306863B2 (en) * 2013-12-06 2016-04-05 Intel Corporation Link transfer, bit error detection and link retry using flit bundles asynchronous to link fabric packets
US9397792B2 (en) 2013-12-06 2016-07-19 Intel Corporation Efficient link layer retry protocol utilizing implicit acknowledgements
US9325449B2 (en) 2013-12-06 2016-04-26 Intel Corporation Lane error detection and lane removal mechanism to reduce the probability of data corruption
US9648148B2 (en) 2013-12-24 2017-05-09 Intel Corporation Method, apparatus, and system for QoS within high performance fabrics
US9628382B2 (en) 2014-02-05 2017-04-18 Intel Corporation Reliable transport of ethernet packet data with wire-speed and packet data rate match
NO2776466T3 (ja) 2014-02-13 2018-01-20
US9812873B2 (en) 2014-12-01 2017-11-07 Hamilton Sundstrand Corporation Virtual channel abstraction layer for solid state power controls
CN104486263B (zh) * 2014-12-09 2017-10-24 中国航空工业集团公司第六三一研究所 一种共享存储交换机发送控制方法及系统
CN104486258B (zh) * 2014-12-09 2017-09-26 中国航空工业集团公司第六三一研究所 一种基于交换通道的交换电路
US9866476B2 (en) * 2014-12-17 2018-01-09 Intel Corporation Parallel direction decode circuits for network-on-chip
US10084860B2 (en) * 2015-04-09 2018-09-25 Electronics And Telecommunications Research Institute Distributed file system using torus network and method for configuring and operating distributed file system using torus network
US20180159786A1 (en) * 2016-12-02 2018-06-07 Netspeed Systems, Inc. Interface virtualization and fast path for network on chip
US10699189B2 (en) 2017-02-23 2020-06-30 Cerebras Systems Inc. Accelerated deep learning
WO2018193370A1 (en) 2017-04-17 2018-10-25 Cerebras Systems Inc. Task activating for accelerated deep learning
US11488004B2 (en) 2017-04-17 2022-11-01 Cerebras Systems Inc. Neuron smearing for accelerated deep learning
US10614357B2 (en) 2017-04-17 2020-04-07 Cerebras Systems Inc. Dataflow triggered tasks for accelerated deep learning
WO2020044152A1 (en) 2018-08-28 2020-03-05 Cerebras Systems Inc. Scaled compute fabric for accelerated deep learning
WO2020044208A1 (en) 2018-08-29 2020-03-05 Cerebras Systems Inc. Isa enhancements for accelerated deep learning
US11328208B2 (en) 2018-08-29 2022-05-10 Cerebras Systems Inc. Processor element redundancy for accelerated deep learning
US10992497B2 (en) 2018-11-26 2021-04-27 Arrcus Inc. Logical router comprising disaggregated network elements
US10944696B2 (en) * 2019-02-19 2021-03-09 Pensando Systems Inc. Variable-length packet header vectors
US11108679B2 (en) 2019-08-08 2021-08-31 Mellanox Technologies Tlv Ltd. Producing deadlock-free routes in lossless cartesian topologies with minimal number of virtual lanes
CN110691043B (zh) * 2019-09-11 2021-10-29 无锡江南计算技术研究所 一种支持多源多虚通道非连续传输的插花整理方法
US11425027B2 (en) * 2020-11-01 2022-08-23 Mellanox Technologies, Ltd. Turn-based deadlock-free routing in a Cartesian topology

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4118094A (en) 1977-03-31 1978-10-03 Trw Inc. Zero-entry force connector
US4340092A (en) 1980-02-26 1982-07-20 Western Electric Co., Inc. Methods of and apparatus for straightening backplane-supported pins
US4371013A (en) 1980-08-29 1983-02-01 Western Electric Company, Inc. Methods of straightening backplane-supported pins
US4469388A (en) 1981-07-27 1984-09-04 Thomas & Betts Corporation Header for imposing frictional force on terminal posts
NL8104358A (nl) * 1981-09-22 1983-04-18 Nederlanden Staat Werkwijze en inrichting voor het besturen van een schakelnetwerk.
US4631637A (en) 1985-12-23 1986-12-23 Burroughs Corporation Dual backplane interconnect system
US4933933A (en) 1986-12-19 1990-06-12 The California Institute Of Technology Torus routing chip
DE3777797D1 (de) * 1987-01-28 1992-04-30 Ibm Vorrichtung zur vermittlung zwischen kanaelen fuer synchronen nachrichtenverkehr und zur vermittlung von asynchronen datenpaketen.
US5058001A (en) 1987-03-05 1991-10-15 International Business Machines Corporation Two-dimensional array of processing elements for emulating a multi-dimensional network
DE3863107D1 (de) 1987-03-20 1991-07-11 Siemens Ag Rueckwandleiterplatte.
US4911645A (en) 1988-12-14 1990-03-27 Cray Research, Inc. Parallel board ZIF module connector
CA1320257C (en) * 1989-04-20 1993-07-13 Ernst August Munter Method and apparatus for input-buffered asynchronous transfer mode switching
US5179558A (en) * 1989-06-22 1993-01-12 Digital Equipment Corporation Routing apparatus and method for high-speed mesh connected local area network
US5088091A (en) 1989-06-22 1992-02-11 Digital Equipment Corporation High-speed mesh connected local area network
US5134690A (en) 1989-06-26 1992-07-28 Samatham Maheswara R Augumented multiprocessor networks
WO1991014326A2 (en) 1990-03-05 1991-09-19 Massachusetts Institute Of Technology Switching networks with expansive and/or dispersive logical clusters for message routing
US5144691A (en) 1990-07-20 1992-09-01 Cray Research, Inc. Computer signal interconnect apparatus
US5123848A (en) 1990-07-20 1992-06-23 Cray Research, Inc. Computer signal interconnect apparatus
US5172371A (en) 1990-08-09 1992-12-15 At&T Bell Laboratories Growable switch
US5155784A (en) 1990-11-07 1992-10-13 Bicc Plc Optical connection to backplanes
US5617577A (en) 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
US5179556A (en) * 1991-08-02 1993-01-12 Washington University Bandwidth management and congestion control scheme for multicast ATM networks
US5261827A (en) 1992-03-05 1993-11-16 Ag Communication Systems Corporation Movable shroud center standoff
US5355372A (en) 1992-08-19 1994-10-11 Nec Usa, Inc. Threshold-based load balancing in ATM switches with parallel switch planes related applications
US5390173A (en) 1992-10-22 1995-02-14 Digital Equipment Corporation Packet format in hub for packet data communications system
US5444701A (en) 1992-10-29 1995-08-22 International Business Machines Corporation Method of packet routing in torus networks with two buffers per edge
US5905723A (en) 1993-06-23 1999-05-18 Cabletron Systems, Inc. System for achieving scalable router performance
US5408469A (en) 1993-07-22 1995-04-18 Synoptics Communications, Inc. Routing device utilizing an ATM switch as a multi-channel backplane in a communication network
JPH0766833A (ja) * 1993-08-24 1995-03-10 Mitsubishi Electric Corp フレーム中継装置、フレーム中継装置群及び中継方法
US5425169A (en) 1993-12-02 1995-06-20 The Whitaker Corporation Backplane removal and insertion tool
US5583990A (en) 1993-12-10 1996-12-10 Cray Research, Inc. System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel
US5581705A (en) 1993-12-13 1996-12-03 Cray Research, Inc. Messaging facility with hardware tail pointer and software implemented head pointer message queue for distributed memory massively parallel processing system
US5532856A (en) 1994-06-30 1996-07-02 Nec Research Institute, Inc. Planar optical mesh-connected tree interconnect network
US5659716A (en) 1994-11-23 1997-08-19 Virtual Machine Works, Inc. Pipe-lined static router and scheduler for configurable logic system performing simultaneous communications and computation
US5659796A (en) 1995-04-13 1997-08-19 Cray Research, Inc. System for randomly modifying virtual channel allocation and accepting the random modification based on the cost function
US5701416A (en) 1995-04-13 1997-12-23 Cray Research, Inc. Adaptive routing mechanism for torus interconnection network
US6141346A (en) * 1995-07-19 2000-10-31 Fujitsu Network Communications, Inc. Point-to-multipoint transmission using subqueues
US6272548B1 (en) 1995-07-28 2001-08-07 British Telecommunications Public Limited Company Dead reckoning routing of packet data within a network of nodes having generally regular topology
US6055618A (en) * 1995-10-31 2000-04-25 Cray Research, Inc. Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel
JP3075163B2 (ja) * 1996-01-10 2000-08-07 日本電気株式会社 マルチポートフレーム交換方式
US5732078A (en) 1996-01-16 1998-03-24 Bell Communications Research, Inc. On-demand guaranteed bandwidth service for internet access points using supplemental user-allocatable bandwidth network
US5892766A (en) * 1996-02-22 1999-04-06 Fujitsu, Ltd. Method and apparatus for coordinating access to an output of a routing device in a packet switching network
US5734649A (en) * 1996-05-31 1998-03-31 Bbn Corporation Data packet router
US5903558A (en) 1996-06-28 1999-05-11 Motorola, Inc. Method and system for maintaining a guaranteed quality of service in data transfers within a communications system
US5841775A (en) * 1996-07-16 1998-11-24 Huang; Alan Scalable switching network
US5894481A (en) 1996-09-11 1999-04-13 Mcdata Corporation Fiber channel switch employing distributed queuing
US6044080A (en) 1996-11-19 2000-03-28 Pluris, Inc. Scalable parallel packet router
US6000011A (en) * 1996-12-09 1999-12-07 International Business Machines Corporation Multi-entry fully associative transition cache
US5903559A (en) 1996-12-20 1999-05-11 Nec Usa, Inc. Method for internet protocol switching over fast ATM cell transport
US6052376A (en) * 1996-12-30 2000-04-18 Hyundai Electronics America Distributed buffering system for ATM switches
US6064653A (en) 1997-01-07 2000-05-16 Bell Atlantic Network Services, Inc. Internetwork gateway to gateway alternative communication
US6011795A (en) 1997-03-20 2000-01-04 Washington University Method and apparatus for fast hierarchical address lookup using controlled expansion of prefixes
US6078565A (en) 1997-06-20 2000-06-20 Digital Equipment Corporation Method and apparatus to expand an on chip FIFO into local memory
US6370145B1 (en) 1997-08-22 2002-04-09 Avici Systems Internet switch router
US6285679B1 (en) 1997-08-22 2001-09-04 Avici Systems, Inc. Methods and apparatus for event-driven routing
US6101181A (en) * 1997-11-17 2000-08-08 Cray Research Inc. Virtual channel assignment in large torus systems
US6118761A (en) * 1997-12-18 2000-09-12 Advanced Micro Devices, Inc. Apparatus and method for generating rate control frames in a workgroup switch based on traffic contribution from a network switch port
US6449283B1 (en) * 1998-05-15 2002-09-10 Polytechnic University Methods and apparatus for providing a fast ring reservation arbitration

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005295236A (ja) * 2004-03-31 2005-10-20 Serukurosu:Kk 通信装置
WO2007097006A1 (ja) * 2006-02-24 2007-08-30 Fujitsu Limited パケット送出制御装置および方法
US8090915B2 (en) 2006-02-24 2012-01-03 Fujitsu Limited Packet transmission control apparatus and method

Also Published As

Publication number Publication date
KR100615724B1 (ko) 2006-08-25
US20040160970A1 (en) 2004-08-19
AU8904898A (en) 1999-03-16
WO1999011033A1 (en) 1999-03-04
CA2301112A1 (en) 1999-03-04
KR20010023195A (ko) 2001-03-26
US6654381B2 (en) 2003-11-25
EP1641195A1 (en) 2006-03-29
ATE313891T1 (de) 2006-01-15
DE69832884T2 (de) 2006-08-24
EP1005745A1 (en) 2000-06-07
US20010038634A1 (en) 2001-11-08
DE69832884D1 (de) 2006-01-26
EP1005745B1 (en) 2005-12-21
US20070140240A1 (en) 2007-06-21
US6285679B1 (en) 2001-09-04
US6563831B1 (en) 2003-05-13
US8325715B2 (en) 2012-12-04

Similar Documents

Publication Publication Date Title
JP2001514463A (ja) 仮想チャネル割当てを持つルータ
US6370145B1 (en) Internet switch router
Katevenis et al. Weighted round-robin cell multiplexing in a general-purpose ATM switch chip
US5218676A (en) Dynamic routing system for a multinode communications network
US5327127A (en) Message encoding which utilizes control codes and data codes
US7668970B2 (en) Optimized scalable network switch
EP1625757B1 (en) Time-division multiplexing circuit-switching router
KR20040038028A (ko) 다중 입력/출력 버퍼형 교환기
García et al. Efficient, scalable congestion management for interconnection networks
US5422881A (en) Message encoding
JP3492852B2 (ja) ネットワークメッセージルート指定装置のための待ち時間短縮及びルート裁定方法
Kranich et al. NoC switch with credit based guaranteed service support qualified for GALS systems
Escudero-Sahuquillo et al. Cost-effective congestion management for interconnection networks using distributed deterministic routing
US20080109586A1 (en) System and method for arbitration for virtual channels to prevent livelock in a richly-connected multi-processor computer system
Gómez et al. VOQ/sub SW: a methodology to reduce HOL blocking in InfiniBand networks
Lee A virtual bus architecture for dynamic parallel processing
CN117135107B (zh) 一种网络通信拓扑系统、路由方法、设备及介质
Network FIG.
Rahman et al. Dynamic communication performance enhancement in Hierarchical Torus Network by selection algorithm
Rekha et al. Analysis and Design of Novel Secured NoC for High Speed Communications
Kayarkar et al. Router architecture for the interconnection network: A review
Parik et al. Buffer allocation approaches for virtual channel flow control
Dagher et al. A Study of Wormhole Router Architectures
Dimitrakopoulos et al. Switch Architecture
Escudero-Sahuquillo et al. Computing Systems Department

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050826

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070515

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080115