JP2004537871A - High performance network switch - Google Patents
High performance network switch Download PDFInfo
- Publication number
- JP2004537871A JP2004537871A JP2002543833A JP2002543833A JP2004537871A JP 2004537871 A JP2004537871 A JP 2004537871A JP 2002543833 A JP2002543833 A JP 2002543833A JP 2002543833 A JP2002543833 A JP 2002543833A JP 2004537871 A JP2004537871 A JP 2004537871A
- Authority
- JP
- Japan
- Prior art keywords
- data
- cell
- wide
- cells
- stripe
- 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.)
- Withdrawn
Links
- 239000004744 fabric Substances 0.000 claims abstract description 174
- 238000000034 method Methods 0.000 claims description 165
- 238000012546 transfer Methods 0.000 claims description 64
- 238000012545 processing Methods 0.000 claims description 44
- 230000005540 biological transmission Effects 0.000 claims description 37
- 230000001360 synchronised effect Effects 0.000 claims description 30
- 238000011084 recovery Methods 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims description 2
- 230000003139 buffering effect Effects 0.000 claims 2
- 230000003750 conditioning effect Effects 0.000 claims 2
- 230000001143 conditioned effect Effects 0.000 claims 1
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 95
- 238000010586 diagram Methods 0.000 description 49
- 230000006870 function Effects 0.000 description 27
- 239000000872 buffer Substances 0.000 description 15
- 101100368149 Mus musculus Sync gene Proteins 0.000 description 11
- 238000009303 advanced oxidation process reaction Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- YQEZLKZALYSWHR-UHFFFAOYSA-N Ketamine Chemical compound C=1C=CC=C(Cl)C=1C1(NC)CCCCC1=O YQEZLKZALYSWHR-UHFFFAOYSA-N 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004630 atomic force microscopy Methods 0.000 description 1
- 238000011871 bio-impedance analysis Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 230000000246 remedial effect Effects 0.000 description 1
- JNEGMBHBUAJRSX-NOYKIMNZSA-N saframycina Chemical compound C([C@@H](N1C)[C@@H]2C#N)C(C(C(C)=C(OC)C3=O)=O)=C3[C@H]1[C@H](C1)N2[C@@H](CNC(=O)C(C)=O)C2=C1C(=O)C(C)=C(OC)C2=O JNEGMBHBUAJRSX-NOYKIMNZSA-N 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/552—Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1515—Non-blocking multistage, e.g. Clos
- H04L49/153—ATM switching fabrics having parallel switch planes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1515—Non-blocking multistage, e.g. Clos
- H04L49/153—ATM switching fabrics having parallel switch planes
- H04L49/1538—Cell slicing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3063—Pipelined operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3072—Packet splitting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
- H04L49/352—Gigabit ethernet switching [GBPS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
高性能ネットワーク・スイッチ用のエラー制御および冗長ファブリックを有するバックプレーン・インタフェース・アダプタを提供する。バックプレーン・インタフェース・アダプタの冗長ファブリック・トランシーバは、データ・パケットを転送するナロー入力セルを適切にかつ確実に受信し、ワイド・ストライプ化セルを切替えファブリックに出力するアダプタの能力を向上させる。A backplane interface adapter with error control and redundant fabric for high performance network switches is provided. The redundant fabric transceiver of the backplane interface adapter properly and reliably receives the narrow input cells carrying data packets and enhances the adapter's ability to output wide striped cells to the switching fabric.
Description
【技術分野】
【0001】
発明の分野
本発明は、概してネットワーク・スイッチに関する。
【背景技術】
【0002】
関連技術
ネットワーク・スイッチは、通信網において切替え機能を実行する(物理経路を決定する)装置である。切替えでは、デジタル・データ・パケットやフレームなどの情報がネットワークのエンティティ間で転送される。通常、スイッチは、バックプレーンに結合された複数の回路カードを有するコンピュータである。回路カードは、切替え技術では、通常「ブレード」と呼ばれる。ブレードは、「スイッチ・ファブリック」によって相互接続されている。各ブレードは、イーサネット、FDDI(Fiber Distributed Data Interface)、トークン・リング接続のような様々な種類の媒体上でスイッチを他のネットワーク・エンティティに結合するいくつかの物理ポートを含む。ネットワーク・エンティティは、このような媒体上でデータを送受信する任意の装置を含む。
【0003】
スイッチによって実行される切替え機能は通常、送信元ポートにおいてネットワーク・エンティティからデータを受信する段階と、このデータを宛先ポートに転送する段階を含む。送信元ポートと宛先ポートは同じブレード上に配置しても、それぞれの異なるブレード上に配置してもよい。「ローカル」切替えの場合、送信元ポートと宛先ポートは同じブレード上にある。そうでない場合、送信元ポートと宛先ポートはそれぞれの異なるブレード上にあり、切替えでは、データをスイッチ・ファブリックを通して送信元ブレードから宛先ブレードに転送する必要がある。場合によっては、データがスイッチの複数の宛先ポートに与えられる。このことをマルチキャスト・データ転送と呼ぶ。
【0004】
スイッチは、データ・フレーム内でデータに伴うヘッダ情報を調べることによって動作する。ヘッダ情報は、国際標準機関(ISO)7階層OSI(開放型システム間相互接続)を含む。OSIモデルでは、スイッチは一般に、レイヤー2またはレイヤー3のようなより低いレベルのプロトコルに基づいてデータ・フレームを経路指定する。これに対して、ルータは一般に、より高いレベルのプロトコルに基づき、テーブル参照に基づいてデータ・フレームの物理経路を決定するか、または物理経路を決定するように構成された他の転送ルーチンまたは管理ルーチンによって経路指定する。
【0005】
イーサネットは、ブロードキャスト技術を使用する広く利用されている低階層ネットワーク・プロトコルである。イーサネットは6つのフィールドを有する。これらのフィールドには、プリアンブル、宛先アドレス、送信元アドレス、種類、データ、およびフレーム・チェック・シーケンスが含まれる。イーサネット・フレームの場合、デジタル・スイッチは、送信元アドレスおよび宛先アドレスに基づいてフレームの物理経路を決定する。標準イーサネットは10Mbpsデータ信号速度で動作する。「高速イーサネット」(FE)と呼ばれるイーサネットの他の実現態様のデータ信号速度は100Mbpsである。FEの他の実現態様は10Gbpsで動作する。
【0006】
デジタル・スイッチは通常、それぞれの異なるデータ信号速度の様々なプロトコルを用いてイ通信するように構成された物理ポートを有する。たとえば、スイッチ内のブレードは、10Mbpsポートまたは100Mbpsポートである何らかのポートを有してよい。ブレードは、SONETなどの光学標準に準拠し、10Gbpsなどのデータ信号速度が可能な他のポートを有してもよい。
【0007】
デジタル・スイッチの性能は、存在する物理ポートの数や、データ・トラフィックを遮断することも減速することもなしに切り替えることのできる物理ポートの数などの基準に基づいて評価されることが多い。多数のスイッチのビット転送容量の制限因子はスイッチ・ファブリックである。たとえば、ある従来のスイッチ・ファブリックは、ブレード当たり毎秒8ギガビットに制限されていた。8ブレードの例では、これはトラフィック1秒当たり64ギガビットに等しい。特定のブレードのデータ信号速度を毎秒8ギガビットを超える速度に高めることが可能である。しかし、スイッチ・ファブリックは、この高められたトラフィックを処理することができない。
【0008】
新規の光学技術を利用し、ブレード上のポート密度を高くすると共にデータ信号速度を速くすることが望ましい。しかし、より高いビット・レートを扱い、従来のスイッチをかなり上回る最大総ビット転送容量をもたらすスイッチおよびスイッチ・ファブリックが必要である。
【発明の開示】
【0009】
発明の概要
本発明は、高性能ネットワーク・スイッチを提供する。切替えファブリックではシリアル・リンク技術が使用される。切替えファブリックでは、パラレル・データ・ストリームではなくシリアル・データ・ストリームが切り替えられる。ブレードは、シリアル・パイプにおいてシリアル・データ・ストリームを出力する。シリアル・パイプは、切替えファブリックにブレードを結合するいくつかのシリアル・リンクであってよい。シリアル・データ・ストリームは、物理ポートを通してそれぞれのブレードに供給される入力されたシリアル・データ・ストリームの集合を表す。各ブレードは、帯域内制御情報を有するシリアル・データ・ストリームを複数のストライプで切替えファブリックに出力する。
【0010】
一態様では、シリアル・データ・ストリームは、複数のストライプにわたるワイド・ストライプ化セルでデータのパケットを転送する。ワイド・ストライプ化セルは符号化される。帯域内制御情報は、ワイド・セルの1つまたは複数のブロックで転送される。たとえば、ワイド・セルの初期ブロックは、制御情報および状態情報を含む。さらに、制御情報および状態情報は各ストライプで転送される。特に、制御情報および状態情報は、ワイド・セルの初期ブロックの各サブブロックで転送される。このように、制御情報および状態情報は、インバンドでシリアル・データ・ストリーム(ストライプとも呼ばれる)で得られる。制御情報は、インバンドで与えられ、セルの始め、パケットの終り、アボート、その他のエラー条件などのトラフィック・フロー条件を示す。
【0011】
ワイド・セルは1つまたは複数のブロックを有する。各ブロックは、5つのストライプにわたって延びる。各ブロックは、各々のサイズが4バイトである5つのサブブロックで構成された20バイトのサイズを有する。一例では、ワイド・セルは148バイトのペイロード・データおよび12バイトのインバンド制御情報を転送することのできる8ブロック(160バイト)の最大サイズを有する。全二重トラフィック用のデータのパケットは、ワイド・セルにおいてデジタル・スイッチの1つのスロットを通して各方向に50Gbpsの速度で転送することができる。一特徴によれば、本発明者によって決定された160バイトの最大ワイド・セル・ブロック・サイズを選択すると、バックプレーン・インタフェース・アダプタを通して4x10Gbpsイーサネット(4X10GEとも呼ばれる)回線速度を維持することができる。この回線速度は、84バイトから254バイトの間のパケット・サイズを含むがそれに限定されない、イーサネットで許容されるサイズの範囲を有するイーサネット・パケットに対して維持される。
【0012】
一態様では、デジタル・スイッチは、シリアル・パイプを介して切替えファブリックに結合された複数のブレードを有する。切替えファブリックは、バックプレーンおよび/または1つまたは複数のブレード上に設けることができる。各ブレードは、シリアル・データ・ストリームをインバンド制御情報と共に複数のストライプで切替えファブリックに出力する。切替えファブリックは、複数のストライプに対応する複数のクロス・ポイントを含む。各クロス・ポイントは、複数のブレードに結合された複数のポート・スライスを有する。一態様では、5つのストライプおよび5つのクロス・ポイント使用される。各ブレードは、それぞれ、5つのクロス・ポイントの各々に結合された5つのシリアル・リンクを有する。実現態様の一例では、ブレードを切替えファブリックに結合するシリアル・パイプは、5つの10Gbpsシリアル・リンクで構成された50Gbpsシリアル・パイプである。各10Gbpsシリアル・リンクは、それぞれのクロス・ポイントに結合され、シリアル・データ・ストリームを転送する。シリアル・データ・ストリームは、1つのストライプに対応するワイド・セルのデータ・スライスを含む。
【0013】
本発明の一態様では、各ブレードはバックプレーン・インタフェース・アダプタ(BIA)を有する。BIAは3つのトラフィック処理フロー・パスを有する。第1のトラフィック処理フロー・パスは、ローカル・パケット・プロセッサから切替えファブリックの方に向かうトラフィック・フロー方向に延びる。第2のトラフィック処理フロー・パスは、切替えファブリックからローカル・パケット・プロセッサの方に向かうトラフィック・フロー方向に延びる。第3のトラフィック処理フロー・パスはローカル・トラフィックを第1のトラフィック処理フロー・パスから転送する。このローカル・トラフィックはソートされ、切替えファブリックを通過する必要なしにBIAでローカルに経路指定される。
【0014】
BIAは、第1のパスに沿って1つまたは複数の受信機、ワイド・セル生成装置、送信機を含む。受信機は、データ・パケットを転送するナロー入力セルを受信する。このようなナロー入力セルは、パケット・プロセッサおよび/またはパケット・プロセッサに結合されたIBT(統合バス・トランスレータ(Integrated Bus Translator))から出力される。ワイド・セル生成装置は、BIAによってナロー入力セルで受信されたデータ・パケットを転送するワイド・ストライプ化セルを生成する。送信機は、ワイド・ストライプ化セルを複数のストライプで切替えファブリックに送信する。
【0015】
本発明によれば、ワイド・セルは、複数のストライプにわたって延び、各ストライプにインバンド制御情報を含む。一態様では、各ワイド・セル生成装置は、各ナロー入力セルを解析し、パケットの始めを示す制御情報についてチェックし、パケットのすべてのナロー入力セルが1つまたは複数の新しいワイド・ストライプ化セルに分散されるまで1つまたは複数の新しいワイド・ストライプ化セルを符号化し、1つまたは複数の新しいワイド・ストライプ化セルを複数の送信キューに書き込む。
【0016】
一例では、BIAは4つのデシリアライザ受信機、56個のワイド・セル生成装置、および5つのシリアライザ送信機を有する。4つのデシリアライザ受信機は、最大で8つの送信元(すなわち、デシリアライザ受信機当たり最大2つのIBTまたはパケット・プロセッサ)から出力されたナロー入力セルを受信する。56個のワイド・セル生成装置は、宛先スロット識別子および送信元に基づいてソートされた数群の受信されたナロー入力セルを受信する。5つのシリアライザは、ストライプに対応するワイド・セルのデータ・スライスを送信する。
【0017】
他の特徴によれば、BIAは、受信された入力セルを宛先スロット識別子に基づいてソートするトラフィック・ソータを含んでもよい。一例では、トラフィック・ソータは、グローバル/トラフィック・ソータとバックプレーン・ソータの両方を含む。グローバル/トラフィック・ソータは、切替えファブリックにわたるグローバル宛先スロットを識別する宛先スロット識別子を有する受信されたナロー入力セルからローカル宛先スロットを識別する宛先スロット識別子を有する受信されたナロー入力セルをソートする。バックプレーン・ソータは、グローバル宛先スロットを識別する宛先スロット識別子を有する受信されたナロー入力セルを、宛先スロット識別子に基づく群としてさらにソートする。
【0018】
一態様では、BIAは複数のストライプ送信キューおよび切替えファブリック送信アービトレータも含む。切替えファブリック送信アービトレータは、ストライプ送信キューに格納されているデータが送信機によって切替えファブリックに送信される順序を調停する。一例では、調停はラウンドロビン式に進行する。各ストライプおよびキューは、それぞれの送信元パケット・プロセッサおよび宛先スロット識別子に対応するそれぞれのワイド・ストライプ化セル群を格納する。各ワイド・ストライプ化セルは、複数のストライプにわたる1つまたは複数のブロックを有する。処理サイクル中に、切替えファブリック送信アービトレータは、ストライプおよびキューを選択し、次の利用可能なセルを(場合によってはセルの1つまたは複数のブロックを一度に)送信機にプッシュする。ワイド・セルの各ストライプは、そのストライプ用のそれぞれの送信機にプッシュされる。
【0019】
BIAは、第2のパスに沿って1つまたは複数の受信機、ワイド/ナロー・セル・トランスレータ、および送信機を含む。受信機は、ワイド・ストライプ化セルを切替えファブリックから複数のストライプで受信する。ワイド・ストライプ化セルはデータ・パケットを転送する。トランスレータは、受信されたワイド・ストライプ化セルを、データ・パケットを転送するナロー入力セルに変換する。送信機は次いで、ナロー入力セルを対応する宛先パケット・プロセスさまたはIBTに送信する。一例では、5つのデシリアライザ受信機はワイド・ストライプ化セルの5つのサブブロックを複数のストライプで受信する。ワイド・ストライプセルは、複数のストライプにわたるデータ・パケットを転送し、宛先スロット識別子情報を含む。
【0020】
一態様では、BIAはストライプ・インタフェースおよびストライプ受信同期キューを含む。各ストライプインタフェースは、送信元スロット識別子情報に基づいて各ストライプ内の受信されたサブブロックをソートし、ソート済みの受信されたサブブロックをストライプ受信同期キューに格納する。
【0021】
BIAは、第2のトラフィック・フロー処理パスに沿って、アービトレータ、ストライプ・ベースのワイド・セル・アセンブラ、およびナロー/ワイド・セル・トランスレータを含む。アービトレータは、ストライプ受信同期キューに格納されているデータがストライプ・ベースのワイド・セル・アセンブラに送信される順序を調停する。ストライプ・ベースのワイド・セル・アセンブラは、受信されたデータ・サブブロックに基づいてワイド・ストライプ化セルをアセンブルする。ナロー/ワイド・セル・トランスレータは次いで、調停済みの受信されたワイド・ストライプ化セルを、データ・パケットを転送するナロー入力セルに変換する。
【0022】
本発明の態様によれば第2レベルの調停も行われる。BIAは、第2のパスに宛先キューおよびローカル宛先送信アービトレータをさらに含む。宛先キューは、ローカル・トラフィック・ソータによって(第1のパスから)送信されたナロー・セルおよびトランスレータによって(第2のパスから)変換されたナロー・セルを含む。ローカル宛先送信アービトレータは、宛先キューに格納されているナロー入力セルがシリアライザ送信機に送信される順序を調停する。最後に、シリアライザ送信機は次いで、ナロー入力セルを対応するIBTおよび/または送信元パケット・プロセッサに(最終的には物理ポートを通してブレードから)送信する。
【0023】
本発明の他の特徴によれば、ワイド・ストライプ化セルを符号化するシステムおよび方法が提供される。ワイド・セルは、複数のストライプにわたって延び、各ストライプにインバンド制御情報を含む。各ストライプに状態情報、予約された情報、ペイロード・データを含めてもよい。一態様では、ワイド・セル生成装置は1つまたは複数のワイド・ストライプ化セルを符号化する。
【0024】
ワイド・セル生成装置は、開始ワイド・ストライプ化セルの初期ブロックを初期セル符号化情報で符号化する。初期セル符号化情報は、ワイド・セルの初期ブロックの各サブブロックに与えられる制御情報(特殊K0文字など)および状態情報を含む。ワイド・セル生成装置は、さらにパケット・データの初期バイトを初期ブロック内の利用可能な空間に分散させる。パケット・データの残りのバイトは、パケットの終り条件に達するか、または最大セル・サイズに達するまで第1のワイド・ストライプ化セル(および後続のワイド・セル)内の1つまたは複数のブロックにわたって分散される。最後に、ワイド・セル生成装置は、さらに、ワイド・ストライプ化セルにデータを充填する度合いに応じて異なるパケットの終り情報で終了ワイド・ストライプ化セルを符号化する。一符号化方式では、パケットの終り情報は、パケットの終りが初期ブロックの終りで生じるか、初期ブロックの後のブロック内で生じるか、ブロック境界で生じるか、またはセル境界で生じるかを含む、1組のパケットの終り条件に応じて異なる。
【0025】
本発明の他の態様によれば、ナロー入力セルでデータ・パケットを転送するシリアル・パイプとワイド・ストライプ化セルでデータ・パケットを転送するシリアル・パイプとのインタフェースをとる方法は、ナロー入力セルを受信する段階と、ワイド・ストライプ化セルを生成する段階と、複数のストライプにわたるワイド・ストライプ化セルのブロックを送信する段階とを含む。この方法は、受信されたナロー入力セルを宛先スロット識別子に基づいてソートする段階と、生成されたワイド・ストライプ化セルを、宛先スロット識別子および送信元パケット・プロセッサに基づいて、対応するストライプおよびキューに格納する段階と、格納されたワイド・ストライプ化セルが送信のために選択される順序を調停する段階とを含む。
【0026】
一例では、生成段階は、各ナロー入力セルを解析する段階と、パケットの始めを示す制御情報についてチェックする段階と、パケットを転送するすべてのナロー入力セルのデータが1つまたは複数の新しいワイド・ストライプ化セルに分散されるまで1つまたは複数の新しいワイド・ストライプ化セルを符号化する段階と、1つまたは複数の新しいワイド・ストライプ化セルを複数の送信キューに書き込む段階とを含む。符号化段階は、開始ワイド・ストライプ化セルの初期ブロックを、制御情報や状態情報などの初期セル符号化情報で符号化する段階を含む。符号化は、パケット・データの初期バイトを第1のワイド・ストライプ化セルの初期ブロック内の利用可能な空間に分散させる段階と、第1のワイド・ストライプ化セルの初期ブロックの終りの利用可能なバイトに予約情報を追加する段階と、パケットの終り条件に達するか、または最大セル・サイズに達するまで、パケット・データの残りのバイトを、第1のワイド・ストライプ化セル中の1つまたは複数のブロックにわたって分散させる段階と、終了ワイド・ストライプ化セルをパケットの終り情報で符号化する段階とをさらに含んでよい。パケットの終り情報は、パケットの終りが初期ブロックの終りで生じるか、初期ブロックの後の任意のブロック内で生じるか、ブロック境界で生じるか、またはセル境界で生じるかを含む、1組のパケットの終り条件に応じて異なる。
【0027】
この方法は、データ・パケットを転送するワイド・ストライプ化セルを切替えファブリックから複数のストライプで受信する段階と、受信されたワイド・ストライプ化セルを、データ・パケットを転送するナロー入力セルに変換する段階と、ナロー入力セルを対応する送信元パケット・プロセッサに送信する段階も含む。この方法は、各ストライプ中の受信されたサブブロックを、送信側スロット識別子情報に基づいてソートする段階と、ソート済みの受信されたサブブロックをストライプ受信同期キューに格納する段階と、ストライプ受信同期キューに格納されているデータがアセンブルされる順序を調停する段階とをさらに含む。他の段階は、受信されたデータ・サブブロックに基づいて調停段階の順序でワイド・ストライプ化セルをアセンブルする段階と、調停済みの受信されたワイド・ストライプ化セルを、データ・パケットを転送するナロー入力セルに変換する段階と、ナロー・セルを複数の宛先キューに格納する段階である。一態様では、宛先キューに格納されているデータが送信される順序を調停する段階と、ナロー入力セルを、さらなる調停段階の順序で、対応する送信元パケット・プロセッサおよび/またはIBTに送信する段階とを含む他の調停が行われる。
【0028】
本発明は、エラー検出および回復をさらに行う。このようなエラーは、ストライプ同期エラーを含んでよい。一態様では、管理モジュールは、レベル・モニタ、ストライプ同期エラー検出器、フロー・コントローラ、および制御文字存在トラッカを含む。レベル・モニタは、受信側ブレードで受信されるデータを監視するストライプ同期エラー検出器は、レベル・モニタによって監視されたデータの量に基づいてストライプ同期エラーを検出する。ストライプ同期エラーの例には、着信リンク・エラー、クロス・ポイント障害、および発信リンク・エラーが含まれる。一例では、受信側ブレードで受信されたデータは、ストライプ・送信元情報に基づいてソートされ、1組のデータ構造(たとえば、FIFO)に格納される。レベル・モニタは、各データ構造に格納されているデータのレベルを監視する。ストライプ同期エラー検出器は、特定の送信元からのそれぞれのストライプ上で受信されたデータの量におけるオーバフロー条件およびアンダーフロー条件の少なくとも一方を検出する。
【0029】
フロー・コントローラは、ストライプ同期エラーが検出されたことに応答して各ストライプ間でデータを再同期させる回復ルーチンを開始する。制御文字存在トラッカは、回復ルーチン中のK2文字の存在を識別する。
【0030】
本発明は、ネットワーク・スイッチにおけるストライプ同期エラーを検出する方法であって、受信側スロットで受信されたデータを、ストライプ・送信元情報に基づいてソートする段階と、ソートされたデータを1組のデータ構造に格納する段階と、各データ構造に格納されているデータのレベルを監視する段階と、特定の送信元からのそれぞれのストライプ上で受信されたデータの量におけるオーバフロー条件およびアンダーフロー条件の少なくとも一方を検出する段階とを含む方法をさらに提供する。送信元情報は、データをネットワーク・スイッチの切替えファブリックを横切って送信したスロットを識別するか、またはデータをスロットから ネットワーク・スイッチの切替えファブリックを横切って送信した送信元パケット・プロセッサを識別することができる。
【0031】
本発明は、ストライプ化セル・トラフィックの同期を維持する方法であって、共通の文字をストライプ化セルで、すべてのレーンにおいて所定のサイクル数にわたって送信する段階と、ストライプ受信同期キューで受信された共通の制御文字を評価する段階と、ストライプ受信同期キューがクリアされたことを示す同期条件が存在する場合にそれを検出する段階とを含む方法をさらに含む。
【0032】
本発明は、切替えファブリック内のクロス・ポイント・スイッチを通して非同期トラフィック・フローを管理する方法であって、ストライプ受信同期キューのレベルを監視する段階と、非同期条件が存在するかどうかを判定する段階と、非同期条件が存在する場合に再同期ルーチンを開始する段階とを含む方法をさらに含む。再同期ルーチンは、共通の文字をストライプ化セルで、すべてのレーンにおいて所定のサイクル数にわたって送信する段階と、ストライプ受信同期キューで受信された共通の制御文字を評価する段階と、ストライプ受信同期キューがクリアされたことを示す同期条件が存在する場合にそれを検出する段階とを含んでよい。
【0033】
本発明の他の態様によれば、冗長切替えシステムが提供される。冗長切替えシステムは、2つの切替えブレードと少なくとも1つの入出ブレード(またはスレーブ・ブレード)とを含む。各切替えブレードは、シリアル・データ・ストリームのそれぞれのストライプに対応する複数のクロス・ポイントを有する。各入出ブレードは、バックプレーン接続によって各切替えブレードに結合される。各入出ブレードは複数の冗長ファブリック・トランシーバ(redundant fabric transceiver:RFT)も含む。RFTは、2つの切替えブレード上のクロス・ポイント間でトラフィックを切り替えることができる。これによって冗長性が確保される。
【0034】
一態様では、冗長ファブリック・トランシーバは、バス・インタフェース・アダプタに結合され、1つまたは複数の第1および第2のポート、マルチプレクサ、ダウンリンク・トランシーバ、およびアップリンク・トランシーバを含む。マルチプレクサは、送信すべき通信データを同様のデータから選択する。ダウンリンク・トランシーバは、この通信データを受信し、条件付けし、且つ送信する。アップリンク・トランシーバも通信データを受信し、条件付けし、且つ送信する。ダウンリンク・トランシーバとアップリンク・トランシーバの少なくとも一方の動作を示す条件情報を含むレジスタ・モジュールを使用することができ、この場合、条件情報には、受信データおよび送信データに関する構成設定およびパラメータ設定が含まれる。
【0035】
本発明の他の態様、特徴、および利点と、本発明の様々な態様の構造および動作について、以下に添付の図面を参照して説明する。
【0036】
本明細書に組み入れられ、本明細書の一部を形成する添付の図面は、本発明を例示し、さらに、説明と共に、本発明の原則について説明し、当業者が本発明を作製して使用するのを可能にする働きをする。
【0037】
次に、本発明について添付の図面を参照して説明する。図面では、同一の参照符号は、同一の要素または機能的に類似した要素を示す。さらに、参照符号の1番左側の数字は、その参照符号が初めて現れる図面を示す。
【0038】
発明の詳細な説明
目次
I.概要および考察
II.用語
III.デジタル・スイッチ・アーキテクチャ
A.クロス・ポイント・アーキテクチャ
B.ワイド・セル符号化およびフロー制御を含むポートスライス動作
C.バックプレーン・インタフェース・アダプタ
D.バックプレーン・インタフェース・アダプタの全体的な動作
E.第1のトラフィック処理パス
F.ナロー・セル・フォーマット
G.トラフィックのソート
H.ワイド・ストライプ化セルの生成
I.ワイド・ストライプ化セルの符号化
J.初期ブロック符号化
K.パケットの終り符号化
L.切替えファブリック送信調停
M.ストライプのクロス・ポイント処理
N.第2のトラフィック処理パス
O.セル境界整列
P.パケット整列
Q.回線速度におけるワイド・ストライプ化セル・サイズ
R.IBTおよびパケット処理
S.ナロー・セル符号化プロセスおよびパケット符号化プロセス
T.管理プロセスおよびエラー制御
U.リセット手順および回復手順
IV.制御論理
V.結論
【0039】
I.概要および考察
本発明は高性能デジタル・スイッチである。各ブレードはシリアル・パイプを通して切替えファブリックに結合されている。切替えファブリックではシリアル・リンク技術が使用される。疎にストライピングされた切替えファブリックによって、パラレル・データ・ストリームではなくシリアル・データ・ストリームが切り替えられる。各ブレードは、シリアル・パイプでシリアル・データ・ストリームを出力する。シリアル・パイプは、ブレードを切替えファブリックに結合するいくつかのシリアル・リンクである。シリアル・データ・ストリームは、物理ポートを通してそれぞれのブレードに供給される入力シリアル・データ・ストリームの集合を表す。各ブレードは、インバンド制御情報を有するシリアル・データ・ストリームを複数のストライプで切替えファブリックに出力する。一態様では、シリアル・データ・ストリームは、データ・パケットを、ワイド・ストライプ化セルで、複数の疎に結合されたストライプを横切って転送する。ワイド・ストライプ化セルは符号化されている。インバンド制御情報は、ワイド・ストライプ化セルの1つまたは複数のブロックで転送される。
【0040】
一実現態様では、スイッチの各ブレードは、毎秒50ギガビットの全二重トラフィックをバックプレーンにわたって送受信する。これは、すべてのパケット・サイズにわたって回線速度、ワイヤ・スピード、および非ブロッキングを確保するために行われる。
【0041】
本発明による高性能スイッチは、インタネット、エンタプライズ・システム、インタネット・サービス・プロバイダ、および任意のプロトコル階層切替え(レイヤー2、レイヤー3、レイヤー4〜7切替えなど)を含むがそれらに限定されない任意の切替え環境で使用することができる。
【0042】
本発明をこの環境例に関して説明する。この環境例は説明の都合上用いられるのに過ぎない。本発明は、このような環境例への適用に限定されるものではない。そればかりでなく、当業者には、以下の説明を読んだ後で、現在知られているかまたは将来開発される他の環境で本発明を実施する方法が明らかになろう。
【0043】
II.用語
本発明をより明確に説明するために、明細書全体にわたって、以下の用語定義をできるだけ一貫して遵守する。
【0044】
用語「スイッチ・ファブリック」または「切替えファブリック」は、ブレード間の切替え可能な相互接続を指す。スイッチ・ファブリックは、バックプレーン、ブレード、複数のブレード、ブレードから分離されたユニット、またはそれらの任意の組合せ上に位置することができる。
【0045】
用語「パケット・プロセッサ」は、イーサネット・パケット・プロセッサを含むがそれに限定されない任意の種類のパケット・プロセッサを指す。パケット・プロセッサは、パケットをどこに送信するかを解析し判定する。
【0046】
用語「シリアル・パイプ」は1つまたは複数のシリアル・リンクを指す。本発明を制限するものではない一態様では、シリアル・パイプは、10Gbpsシリアル・パイプであり、4つの2.5 Gbpsシリアル・リンクを含む。
【0047】
用語「シリアル・リンク」は、デジタル・データをポイント間で直列に転送するデータ・リンクまたはバスを指す。比較的高いビット・レートのシリアル・リンクを、より低いビット・レートのシリアル・リンクを組み合わせることによって形成することもできる。
【0048】
用語「ストライプ」は、ワイド・セルの1つのデータ・スライスを指す。用語「疎に結合された」ストライプは、各ストライプ内の、他のストライプに対して自律したデータ・フローを指す。必ずしもデータ・フローを各ストライプにおいて完全に同期させる必要はなく、データ・フローは、各ストライプで独立に進行し、他のストライプに対してスキューさせることができる。
【0049】
III.デジタル・スイッチ・アーキテクチャ
本発明のスイッチ100のアーキテクチャの概要を図1に示す。スイッチ100は、スイッチ・ファブリック102(切替えファブリックまたは切替えファブリック・モジュールとも呼ばれる)および複数のブレード104を含んでいる。本発明の一態様では、スイッチ100は8つのブレード104a〜104hを含んでいる。各ブレード104はシリアル・パイプ106を介してスイッチ・ファブリック102と通信する。各ブレード104は、1つまたは複数のネットワーク接続から様々な種類のデジタル・データを受信する複数の物理ポート108をさらに含んでいる。
【0050】
本発明の好ましい態様では、8つのブレードを有するスイッチ100は、毎秒400ギガビット(Gbps)の全二重トラフィックを切り替えることができる。本明細書では、すべてのデータ信号速度は、特に明示しないかぎり全二重である。各ブレード104は、シリアル・パイプ106上で50 Gbpsの速度でデータを通信する。
【0051】
スイッチ100は図2にさらに詳しく示されている。図示のように、スイッチ・ファブリック102は5つのクロス・ポイント202を含んでいる。各ブレードとスイッチ・ファブリック102との間で送受信されるデータは、5つのクロス・ポイント・チップ202A〜202Eを横切ってストライピングされる。各クロス・ポイント202A〜202Eは次いで、1つのストライプまたはスイッチ・ファブリック102を通過するデータの5分の1を受信する。図2に示されているように、ブレード104の各シリアル・パイプ106は5つのシリアル・リンク204で構成されている。各ブレード104の5つのシリアル・リンク204は5つの対応するクロス・ポイント202に結合される。一例では、各シリアル・リンク204は、4つの2.5 Gbpsシリアル・リンクで構成された10Gシリアル・リンクなどの10Gシリアル・リンクである。このようにして、シリアル・リンク技術を用いてデータがバックプレーン102にわたって送信される。
【0052】
各クロス・ポイント202A〜202Eは8ポート・クロス・ポイントである。一例では、各クロス・ポイント2202A〜Eは8つの10Gデータ・ストリームを受信する。各データ・ストリームは特定のストライプに対応する。ストライプは、特に宛先ポート番号(宛先スロット番号とも呼ばれる)および特殊インバンド制御情報を含むワイド・セル・フォーマットのデータを有している。インバンド制御情報は、K0文字やK1文字のようなK個の特殊文字を含んでいる。K0文字はストライプ内の新しいセルの始まりを区切る。K1文字はストライプ内のパケットの終りを区切る。各ストライプ内のこのような符号化によって、各クロス・ポイント202A〜202Eは他のクロス・ポイントに対して自立的にまたは独立に動作することができる。このようにして、クロス・ポイント202A〜202Eおよびそれらに関連するストライプは疎に結合されている。
【0053】
各クロス・ポイント202には、データFIFO(先入れ先出しデータ構造)などの1組のデータ構造がある。これらのデータ構造は、送信元ポートおよび宛先ポートに基づくデータを格納する。一態様では、8ポート・クロス・ポイントの場合、56個のデータFIFOが使用される。各データFIFOは、それぞれの送信元ポートおよび宛先ポートに関連するデータを格納する。各送信元ポートに着信したパケットは、それに関連する送信元ポートおよび宛先ポートに対応するデータFIFOに書き込まれる。送信元ポートは、パケットが受信されるポート(およびポート・スライス)に関連付けされる。宛先ポートは、あるポートにストライプとして送信されるデータ中にインバンドで見出される宛先ポートまたはスロット番号に関連付けされる。
【0054】
本発明の態様では、スイッチ・サイズは1つのセルとして定義され、セル・サイズは8バイト、28バイト、48バイト、68バイト、88バイト、108バイト、128バイト、148バイトのいずれかとして定義される。各ポート(またはポート・スライス)は、それぞれのシリアル・リンクに対して10 Gbpsの速度でシリアル・データを送受信する。各クロス・ポイント202A〜202Eは160 Gbps切替え容量(160 Gbps = 10 Gbps*8ポート*2方向全二重)を有している。このようなセル・サイズ、シリアル・リンク・データ信号速度、および切替え容量は、例示的なものであり、本発明を制限するものではない。クロス・ポイント・アーキテクチャおよび動作について以下に詳しく説明する。
【0055】
従来技術では、スイッチのスループットを高めるために、データ・バスの幅を大きくしてスイッチの「並列処理」機能を向上させ、クロック・レートを高くすることが行われている。しかし、どちらの手法も得られる利点が小さくなっている。たとえば、非常に幅の広いデータ・バスは回路板の物理的な制限によって制約される。同様に、非常に高いクロック・レートはプリント回路基板の特性によって制限される。本発明者は、シリアル・リンク技術をバックプレーンで用いることにより、従来の技術と比べて切替え帯域幅が著しく大きくなることを発見した。
【0056】
好ましい態様では、各シリアル・パイプ106は50 Gbpsで全二重トラフィックを転送することができ、各シリアル・リンク204は10 Gbpsで全二重トラフィックを転送することができる。このアーキテクチャの結果として、5つのクロス・ポイント202の各々は、毎秒10ギガビットの5つのシリアル・リンクを組み合わせて各シリアル・パイプ106ごとに毎秒50ギガビットの総データ信号速度を実現する。したがって、8つのブレードについてのバックプレーン102にわたる全切替え容量は、毎秒50ギガビットx8x2(二重の場合)、すなわち毎秒800ギガビットである。このような切替え容量は、同期させたパラレル・データ・バスを切替えファブリック内で用いる従来の技術では不可能である。
【0057】
ブレード104からバックプレーン102までの50 Gbpsシリアル・パイプを有するこのようなスイッチの利点は、各ブレード104が、一連のパケット・サイズにわたって、4つの10 Gbpsイーサネット・パケット・プロセッサを回線速度でサポートするか、4つのオプティカル・チャンネル(Optical Channel)OC-192Cを回線速度でサポートするか、または1つのOC-768Cを回線速度でサポートできることである。本発明はこれらの例に制限されない。この説明で与えられる技術分野の当業者なら、他の構成および種類のパケット・プロセッサを本発明のスイッチと共に使用することができる。
【0058】
次に図3Aを参照すると、ブレード104のアーキテクチャがさらに詳しく示されている。ブレード104は、バックプレーン・インタフェース・アダプタ(backplane interface adapter:BIA)302(「スーパー・バックプレーン・インタフェース・アダプタ」またはSBIAとも呼ばれる)、複数の統合バス・トランスレータ(IBT)304、および複数のパケット・プロセッサ306を含んでいる。BIA 302は、バックプレーン102の5つのクロス・ポイント202を横切ってデータをストライピングする責任を負う。好ましい態様では、BIA302はアプリケーション・スペシフィック・サーキット(application-specific circuit:ASIC)として実施される。BIA302はIBT304を通してパケット・プロセッサ306からデータを受信する(または互換性のあるパケット・プロセッサから直接受信する)。BIA302は、バックプレーン102にデータを渡すことも、ブレード104上のローカル・ポート間のローカル切替えを実行することもできる。好ましい態様では、BIA302は4つのシリアル・リンク308に結合されている。各シリアル・リンク308はIBT304に結合されている。
【0059】
各パケット・プロセッサ306は1つまたは複数の物理ポートを含んでいる。各パケット・プロセッサ306は、1つまたは複数の物理ポートからインバウンド・パケットを受信し、制御情報に基づいてインバウンド・パケットの宛先を判定し、パケット・プロセッサが接続されている物理ポート宛のローカル・パケットに対してローカル切替えを行い、パラレル・データを作成するようにリモート・ポート宛のパケットをフォーマットし、このパラレル・データをIBT304に切り替える。各IBT304は、各パケット・プロセッサ306からパラレル・データを受信する。IBT304は次いで、パラレル・データを少なくとも1つのシリアル・ビット・ストリームに変換する。IBT304は、本明細書で1つまたは複数のシリアル・リンクとして説明するパイプ308を介してBIA302にシリアル・ビット・ストリームを供給する。好ましい態様では、各パイプ308は10Gb/s XAUIインタフェースである。
【0060】
図3Aに示されている例では、パケット・プロセッサ306Cおよび306Dは、毎秒10メガビットまたは100メガビットの24個のイーサネット・ポートと、毎秒1000メガビット、すなわち1Gbpsの2個のイーサネット・ポートとを含んでいる。データが変換される前に、4Gbpsのデータ信号速度を実現するように、入力データ・パケットが32ビット・パラレル・データ・クロック・データ133MHzに変換される。データはセル(「ナロー・セル」とも呼ばれる)に入れられ、各セルは制御信号をインバンドでデータ・ストリームと併合するヘッダを含んでいる。パケットは、セル境界によってそれぞれの異なる宛先スロット32個ごとにインタリーブされる。
【0061】
図3Aの例でも、IBT304Cは、パケット・プロセッサ306Cおよび306Dに接続されている。これはたとえば、毎秒10ギガビットのOC-192パケット・プロセッサであってよい。これらの例では、各IBT304は、156.25MHzでクロッキングされる64ビット幅のデータ・ストリームをその入力として受信する。各IBT304は次いで、毎秒10ギガビットのシリアル・データ・ストリームをBIA302に出力する。あるナロー・セル・フォーマットによれば、各セルは4バイト・ヘッダと、その後に続く32バイトのデータとを含んでいる。4バイト・ヘッダは4つのXAUIレーン上で1サイクルを占有する。各データ・バイトは1つのXAUIレーン上で直列化される。
【0062】
BIA302はIBT304A〜304Dの出力を受信する。したがって、BIA302は4x10Gbpsのデータを受信する。あるいは毎秒8x5ギガビットのデータを受信する。BIA302は156.25MHzのクロック速度で動作する。BIA302は、管理オーバヘッドおよびストライピングを加えることによって、毎秒5x10ギガビットのデータ・ストリームをバックプレーン102内の5つのクロス・ポイント202に出力する。
【0063】
BIA302は、IBT304からシリアル・ビット・ストリームを受信し、パケット・ヘッダ情報に基づいて各インバウンド・パケットの宛先を判定し、ローカルIBT304間のローカル切替えを行い、リモート・ポート宛のデータをフォーマットし、IBT304からのシリアル・ビット・ストリームを集計し、総ビット・ストリームを作成する。集計されたビット・ストリームは次いで、5つのクロス・ポイント202A〜202Eを横切ってストライピングされる。
【0064】
図3Bは、本発明の他の態様によるブレード104の構成を示している。この構成では、BIA302は、10Gbpsパケット・プロセッサ316A、IBT304C、およびオプティカル・チャンネルOC-192Cパケット・プロセッサ316Bからの出力をシリアル・リンク上で受信する。IBT304はさらに、上述のようにパケット・プロセッサ306C、306Dに結合されている。10Gbpsパケット・プロセッサ316Aは、データ・パケットをシリアル・リンク318A上でをBIA302に転送するナロー入力セルのシリアル・データ・ストリームを出力する。IBT304Cは、データ・パケットをシリアル・リンク308C上でBIA302に転送するナロー入力セルのシリアル・データ・ストリームを出力する。オプティカル・チャンネルOC-192Cパケット・プロセッサ316Bは、データ・パケットを2つのシリアル・リンク318B、318C上でBIA302に転送するナロー入力セルの2つのシリアル・データ・ストリームを出力する。
【0065】
A.クロス・ポイント・アーキテクチャ
図4は、クロス・ポイント202のアーキテクチャを示している。クロス・ポイント202は、8つのポート・スライス402A〜402Hに結合された8つのポート401A〜401Hを含んでいる。図示のように、各ポート・スライス402は、他の7つのポート・スライス402の各々にワイヤ404(または他の接続媒体)によって接続されている。各ポート・スライス402は、ポート401を通してそれぞれのブレード104にも結合されている。このことを例示するために、図4はポート401Fおよびポート・スライス402F(ポート_スライス5とも呼ばれる)の接続を示している。たとえば、ポート401Fはシリアル・リンク410を介してブレード104Fに結合されている。シリアル・リンク410は10G全二重シリアル・リンクであってよい。
【0066】
ポート・スライス402Fは、回線420〜426を通して他の7つのポート・スライス402A〜402Eおよび402G〜402Hの各々に結合されている。リンク420〜426は、ポート・スライス402Fのポート(すなわち、宛先ポート番号5)に関連する宛先ポート番号(宛先スロット識別子とも呼ばれる)を有する、他のポート・スライス402A〜402Eおよび402G〜402Hで受信されたデータを経路指定する。最後に、ポート・スライス402Fは、ポート・スライス402Fに関連するポートを他の7つのポート・スライスに結合するリンク430を含んでいる。リンク430は、ポート・スライス402Fのポートで受信されたデータを他の7つのポート・スライスに送信するのを可能にする。一態様では、ポート・スライス間の各リンク420〜426および430は、クロス・ポイント202内でデータを並列に転送するバスである。他のポート・スライス402A〜402E、402Gおよび402Hの各々にも同様の接続(図を明確にするために示されていない)が設けられている。
【0067】
図5は、ポート401Fおよびポート・スライス402Fのアーキテクチャをさらに詳しく示している。他のポート401A〜401E、401G、および401Hならびにポート・スライス402A〜402E、402G、および402Hのアーキテクチャは、ポート401Fおよびポート・スライス402Fに類似している。したがって、ポート401Fおよびポート・スライス402Fについてのみ詳しく説明すればよい。ポート401Fは1つまたは複数のデシリアライザ受信機510およびシリアライザ送信機580を含んでいる。一態様では、デシリアライザ受信機510およびシリアライザ送信機580は、データをシリアル・データ・ストリームとパラレル・データ・ストリームとに変換するシリアライザ/デシリアライザ回路(SERDES)として実施される。本発明の態様では、ポート401Fは、共通のチップ上、または別々のチップ上、または別々のユニット内の、ポート・スライス402Fの一部であってよい。
【0068】
ポート・スライス402Fは、デシリアライザ受信機510と累算器520との間に結合された受信同期FIFOモジュール515を含んでいる。受信同期FIFOモジュール515は、ポート・スライス402Fに対応するデシリアライザ受信機510から出力されたデータを格納する。累算器520は、受信されたデータのヘッダ内の宛先スロットまたはポート番号に基づいて他のポート・スライス402A〜402E、402G、および402H内の適切なデータFIFO(図示せず)にデータを書き込む。
【0069】
ポート・スライス402Fは他のポート・スライス402A〜402E、402G、および402Hからもデータを受信する。このデータは、ポート・スライス402A〜402E、402G、および402Hの他の7つのポートで受信され、ポート・スライス402Fに対応する宛先スロット番号を有するデータに対応する。ポート・スライス402Fは、対応するポート・スライス402A〜402E、402G、および402Hからのデータを格納する7つのデータFIFO530を含んでいる。7つのポート・スライス402A〜402E、402G、および402H内の累算器(図示せず)は、ポート・スライス402Fに関連する宛先スロット番号を抽出し、ポート・スライス402Fの7つのデータFIFO530のそれぞれに対応するデータを書き込む。図5に示されているように、各データFIFO530はFIFOコントローラおよびFIFOランダム・アクセス・メモリ(RAM)を含んでいる。FIFOコントローラはFIFO読取りアービトレータ540に結合されている。FIFO RAMはマルチプレクサ550に結合されている。FIFO読取りアービトレータ540はさらにマルチプレクサ550に結合されている。マルチプレクサ550は、ディスパッチャ560に結合された出力を有している。ディスパッチャ560は、送信同期FIFOモジュール570に結合された出力を有している。送信同期FIFOモジュール570は、シリアライザ送信機580に結合された出力を有している。
【0070】
動作時に、FIFO RAMはデータを累積する。データFIFO RAMが1セル分のデータを累積した後、それに対応するFIFOコントローラがFIFO読取りアービトレータ540に対する読取り要求を生成する。FIFO読取りアービトレータ540は、ラウンド・ロビン順のような所望の順序でそれぞれの異なるFIFOコントローラからの読取り要求を処理する。1つのFIFO RAMから1セル分のデータが読み取られた後、FIFO読取りアービトレータ540は次の要求側FIFOコントローラの処理に移る。このようにして、それぞれの異なる要求側FIFOコントローラに対して調停が行われ、それぞれの異なる送信元ポートで受信されたデータが転送される。これによって、クロス・ポイント202を通した比較的均一であるが疎に結合されたデータ・フローが維持される。
【0071】
FIFO読取りアービトレータ540は、読取り要求を処理するために、マルチプレクサ550を切り替え、1セル分のデータを、読取り要求に関連するデータFIFO RAMからディスパッチャ560に転送する。ディスパッチャ560は、データを送信同期FIFO 570に出力する。送信同期FIFO 570は、データを格納し、このデータがシリアライザ送信機580によってシリアル・データ・ストリームでブレード104Fに送信されるまで格納し続ける。
【0072】
B.ワイド・セル符号化およびフロー制御によるポート・スライス動作
他の態様によれば、ポート・スライスは、ワイド・セル符号化およびフロー制御条件に関して動作する。図27A〜27Eは、ワイド・セル符号化およびフロー制御条件に基づいてポート・スライス内のデータを処理するルーチン2700を示している(段階2710〜2790)。説明を簡潔にするために、クロス・ポイント202および例示ポート・スライス402Fの実施例に関してルーチン2700を説明する。他のポート・スライス402A〜402E、402G、および402Hの動作は類似している。
【0073】
段階2710で、受信同期FIFO 515内のエントリが管理される。一例では、受信同期FIFOモジュール515は、書込みポインタおよび読取りポインタが3エントリ離れるように初期設定される8エントリFIFOである。受信同期FIFOモジュール515は、SERDESデシリアライザ受信機510からの64ビット・データを書き込み、クロック信号によってFIFOから64ビット・データを読み取り、データを累算器520に供給し、離隔距離が1以下になった場合に読取りポインタを調整することによって読取りポインタ・書込みポインタ間の3エントリ離隔距離を維持する。
【0074】
段階2720で、累算器520は、受信同期FIFO 515から受信された2つの32ビット・データ・チャンクを受信する。累算器520は第1のチャンクおよび第2のチャンクの第1のバイト中の特殊文字K0を検出する(段階2722)。累算器520は次いで、K0が検出された場合、ヘッダ内の状態フィールドから宛先スロット番号を抽出する(段階2724)。
【0075】
図27Bに示されているように、累算器520は、セル・ヘッダが下位整列しているかまたは上位整列しているかをさらに判定する(段階2726)。累算器520は、セル・ヘッダが下位整列または上位整列しているが、下位整列すると共に上位整列しているわけではない場合、宛先スロットに対応するデータFIFOに64ビット・データを書き込む(段階2728)。段階2730で、累算器520は、セル・ヘッダがデータの第1のチャンクおよび第2のチャンクに現れている場合(下位整列すると共に上位整列している)、2つの宛先スロット(またはポート)に対応する2つのデータFIFOに2つの64ビット・データを書き込む。累算器520は次いで、セルが64ビット境界で終わらず、後続のセルの宛先が異なるスロットである場合、32ビット・データの第2のチャンクにアイドル文字を埋める(段階2732)。累算器520は、データにK0およびアボート(ABORT)状態情報を挿入することによってエラー条件が検出された場合、セルの早期終了を実行する(段階2734)。累算器520は、データ_l(第1のチャンク)およびデータ_h(第2のチャンク)の第1のバイトにK1文字を検出すると(段階2736)、累算器520は後続の64ビット・データをすべての宛先データFIFOに書き込む(段階2738)。
【0076】
図27Cに示されているように、2つの32ビット・データ・チャンクが有効である場合、それらのチャンクは、一方のデータFIFO 530内のデータFIFO RAMに書き込まれる。段階2742で、一方の32ビット・チャンクのみが有効である場合、FIFO深さが所定のレベルよりも低くなっていない場合にはこのチャンクが一時レジスタに保存される。保存された32ビット・データと後続の32ビット・データは組み合わされFIFO RAMに書き込まれる。一方の32ビット・チャンクのみが有効であり、FIFO深さが4エントリよりも低くなっている場合、有効な32ビット・チャンクは、32ビット・アイドル・データと組み合わされ、FIFO RAMに書き込まれる(段階2744)。
【0077】
段階2746で、それぞれのFIFOコントローラは、K0が読み取られたか、またはFIFO RAMが空である場合にそれをFIFO読取りアービトレータ540に示す。この表示は、調停のための読取り要求である。段階2748で、それぞれのFIFOコントローラは、K0が第1の32ビット・チャンクに整列しているかまたは第2の32ビット・チャンクに整列しているかをFIFO読取りアービトレータ540に示す。出力ポートからのフロー制御検出されると(1つまたは複数の文字の所定のフロー制御シーケンスが検出された場合など)、FIFOコントローラは、現在のセルがFIFO RAMから完全に読み取られた後FIFO読取りアービトレータ540への要求を停止する(段階2750)。
【0078】
図27Dに示されているように、段階2760で、FIFO読取りアービトレータ540は、7つのFIFOコントローラからの7つの要求を調停し、セル(K0)境界で切り替える。現在のセルの終りが64ビット整列している場合、FIFO読取りアービトレータ540は、次の要求側に切り替え、64ビット・データを要求側FIFOコントローラのFIFO RAMからディスパッチャ560に供給する(段階2762)。現在のセルの終りが32ビット整列している場合、FIFO読取りアービトレータ540は、現在のデータの下位32ビットを次の要求側FIFOコントローラからの下位32ビットと組み合わせ、組み合わされた64ビット・データをディスパッチャ560に供給する(段階2764)。さらに、段階2766で、FIFO読取りアービトレータ540は、すべての7つのFIFO RAMが空である場合にそれをディスパッチャ560に示す。
【0079】
図27Eに示されているように、段階2770で、FIFO読取りアービトレータ540から非アイドル・データが受信された場合、ディスパッチャ560は、64ビット・データをSERDES同期FIFOモジュール570に供給し、さらにシリアライザ送信機580に供給する。FIFO読取りアービトレータ540が、すべての7つのFIFO RAMが空であることを示すと、ディスパッチャ560は、SERDES同期FIFOモジュール570に送信しさらに送信機580に送信すべき第1の整列シーケンスを挿入する(段階2772)。プログラム可能なタイマが満了し、前の呼出しが完全に送信されると、ディスパッチャ560は、SERDES同期FIFOモジュール570に送信しさらに送信機580に送信すべき第2の整列シーケンスを挿入する(段階2774)。ディスパッチャ560は、事前にスケジューリングされた現在の整列シーケンスが完全に送信されるまで要求側のための処理を一時的に停止するようFIFO読取りアービトレータ540に指示する(段階2776)。制御は終了する(段階2790)。
【0080】
C.バックプレーン・インタフェース・アダプタ
バックプレーン・インタフェース・アダプタの構造および動作について説明するために、図6〜9に示されている構成要素を参照する。図6は、本発明の態様によるバックプレーン・インタフェース・アダプタ(BIA)600の図である。BIA600は2つのトラフィック処理パス603、604を含んでいる。図7は、本発明の態様による、BIA600で受信されるローカル・シリアル・トラフィック用の第1のトラフィック処理パス603を示す図である。図8は、本発明の態様による、例示の切替えファブリック645をさらに詳しく示す図である。図9は、本発明の態様による、BIA600で受信されるバックプレーン・シリアル・トラフィック用の第2のトラフィック処理パス604を示す図である。都合上、図7および9に示されているパス603、604に沿った要素のより詳しい態様、および図8に示されている例示の切替えファブリック645を参照して図6のBIA600についても説明する。図11〜16に示されているワイド・ストライプ化セル符号化方式に関するルーチンおよび例示の図に関してバックプレーン・インタフェース・アダプタの動作についても説明する。
【0081】
D.バックプレーン・インタフェース・アダプタの全体的な動作
図10は、ナロー入力セルでデータ・パケットを転送するシリアル・パイプとワイド・ストライプ化セルでデータ・パケットを転送するシリアル・パイプとのインタフェースをとるルーチン1000(段階1010〜1060)のフローチャートである。ルーチン1000は、ナロー入力セルを受信する段階(段階1010)と、受信された入力セルを宛先スロット識別子に基づいてソートする段階(1020)と、ワイド・ストライプ化セルを生成する段階(段階1030)と、生成されたワイド・ストライプ化セルを宛先スロット識別子および送信元パケット・プロセッサに基づいて対応するストライプ送信キューに格納する段階(段階1040)と、格納されているワイド・ストライプ化セルが送信のために選択される順序を調停する段階(段階1050)と、複数のストライプにわたるワイド・セルのブロックを表すデータ・スライスを送信する段階(段階1060)とを含む。説明を簡潔にするために、これらの段階の各々について、さらに、以下の図6および図7の態様におけるBIA600内の第1のトラフィック処理パスの動作に関して説明する。
【0082】
図11は、ワイド・ストライプ化セルでデータ・パケットを転送するシリアル・パイプとナロー入力セルでデータ・パケットを転送するシリアル・パイプとのインタフェースをとるルーチン1100(段階1110〜1180)のフローチャートである。ルーチン1100は、データ・パケットを複数のストライプで転送するワイド・ストライプ化セルを切替えファブリックから受信する段階(段階1110)と、各ストライプ内の受信されたサブブロックを送信元パケット・プロセッサ識別子および送信元スロット識別子情報に基づいてソートする段階(段階1120)と、ソート済みの受信されたサブブロックをストライプ受信同期キューに格納する段階(段階1130)と、受信されたデータ・サブブロックに基づいて調停段階の順序でワイド・ストライプ化セルをアセンブルする段階(段階1140)と、受信されたワイド・ストライプ化セルを、データ・パケットを転送するナロー入力セルに変換する段階(段階1150)と、ナロー・セルを複数の宛先キューに格納する段階(段階1160)と、ストライプ受信同期キューに格納されているデータがアセンブルされる順序を調停する段階(段階1170)と、ナロー出力セルを対応する送信元パケット・プロセッサに送信する段階(段階1180)とを含む。ある他の態様では、宛先キューに格納されているデータが送信される順序を調停する段階と、ナロー入力セルをこの調停段階の順序で、対応する送信元パケット・プロセッサおよび/またはIBTに送信する段階とを含む他の調停が行われる。説明を簡潔にするために、これらの段階の各々について、さらに、以下の図6および図7の態様におけるBIA600内の第2のトラフィック処理パスの動作に関して説明する。
【0083】
図6に示されているように、トラフィック処理フロー・パス603は、トラフィック・フロー方向にローカル・パケット・プロセッサから切替えファブリック645の方へ延びている。トラフィック処理フロー・パス604は、トラフィック・フロー方向に切替えファブリック645からローカル・パケット・プロセッサの方へ延びている。BIA600は、パス603に沿って結合された、デシリアライザ受信機602、トラフィック・ソータ610、ワイド・セル生成装置620、ストライプ送信キュー625、切替えファブリック送信アービトレータ630、およびシリアライザ送信機640を含んでいる。BIA600は、パス604に沿って結合された、デシリアライザ受信機650、ストライプ・インタフェース・モジュール660、ストライプ受信同期キュー685、コントローラ670(アービトレータ672、ストライプ・ベースのワイド・セル・アセンブラ674、および管理モジュール676を含む)、ワイド・セル・トランスレータ680、宛先キュー615、ローカル宛先送信アービトレータ690、およびシリアライザ送信機692を含んでいる。
【0084】
E.第1のトラフィック処理パス
デシリアライザ受信機602は、データ・パケットを転送するナロー入力セルを受信する。これらのナロー入力セルは、パケット・プロセッサおよび/またはパケット・プロセッサに結合された統合バス・トランスレータ(IBT)からデシリアライザ受信機602に出力される。一例では、4つのデシリアライザ受信機602が4つのシリアル・リンク(上記に図3A〜3Bで説明したリンク308A〜308D、318A〜318Cなど)に結合されている。図7の例に示されているように、各デシリアライザ受信機602は、クロス・クロック・ドメイン・シンクロナイザ703に結合されたデシリアライザ受信機702を含んでいる。たとえば、クロス・クロック・ドメイン・シンクロナイザ703に結合された各デシリアライザ受信機702は、1組の4つのSERDESデシリアライザ受信機およびナロー入力セルの4つのレーンでデータ・バイトを転送するドメイン・シンクロナイザであってよい。一態様では、各デシリアライザ受信機702は、2つの送信元に結合された2つのシリアル・リンクから、インタリーブされたデータ・ストリームを受信することができる。図7は、4つのデシリアライザ受信機702(q=4)が合計で8つのシリアル・リンク(k=8)の2つの送信元(j=2)に結合される一例を示している。一例では、各デシリアライザ受信機702は、容量が10Gb/sのシリアル・データを受信する。
【0085】
F.ナロー・セル・フォーマット
図13は、データ・パケットをナロー入力セルで転送するのに用いられる例示のナロー・セル1300のフォーマットを示している。このようなフォーマットは、XAUIインタフェースから受信されるデータ・セル・フォーマットを含んでよいが、それに限定されない。ナロー・セル1300は4つのレーン(レーン0〜3)を含んでいる。各レーン0〜3はシリアル・リンク上で1データ・バイトを転送する。セルの始めの部分はヘッダを含み、その次にペイロード・データがある。ヘッダは、レーン0における制御情報の1バイトと、レーン1における状態情報の1バイトとを含んでいる。レーン2および3のそれぞれに1バイトが予約されている。表1310は、使用可能な状態情報の例を示している。この状態情報は、スロット番号、ペイロード状態、および送信元または宛先パケット・プロセッサ識別子のうちの1つまたは複数を含む状態情報の任意の組合せを含んでよい。スロット番号は、00、01などの符号化された数、またはナロー・セルが送信されるブレード(スロットとも呼ばれる)を識別する他の識別子(たとえば、英数字やASCII値)である。ペイロード状態は、任意の符号化された数、または予約(reserved)(データを有さない予約されたセルを意味する)、SOP(パケット・セルの始めを意味する)、データ(data)(パケットのペイロード・データを転送するセルを意味する)、アボート(abort)(パケット転送が中断されることを意味する)のような、送信中のセル内のデータの特定の状態を示す他の識別子であってよい。
【0086】
G.トラフィック・ソーティング
トラフィック・ソータ610は、受信されたナロー入力セルを宛先スロット番号に基づいてソートする。トラフィック・ソータ610は、BIA600と同じブレード宛のナロー・セル(ローカル・トラフィックとも呼ばれる)を宛先キュー615に経路指定する。切替えファブリックを越えたスイッチ内の他のブレード宛のナロー・セル(グローバル・トラフィックとも呼ばれる)は、ワイド・セル生成装置620に経路指定される。
【0087】
図7は、トラフィック・ソータ610が、バックプレーン・ソータ714に結合されたグローバル/トラフィック・ソータ712を含む他の態様を示している。グローバル/トラフィック・ソータ712は、受信されたナロー入力セルを宛先スロット識別子に基づいてソートする。トラフィック・ソータ712は、BIA600と同じブレード宛のナロー・セルを宛先キュー615に経路指定する。切替えファブリックを越えたスイッチ内の他のブレード宛のナロー・セル(グローバル・トラフィックまたはバックプレーン・トラフィックとも呼ばれる)はバックプレーン・トラフィック・ソータ714に経路指定される。バックプレーン・トラフィック・ソータ714は、宛先スロット識別子に基づくグループのグローバル宛先スロットを識別する宛先スロット識別子を有する受信されたナロー入力セルをさらにソートする。このようにして、ナロー・セルは、それが転送されるブレードによってグループ分けされる。バックプレーン・トラフィック・ソータ714は次いで、バックプレーン・トラフィックのナロー入力セルのソートされたグループを対応するワイド・セル生成装置720に経路指定する。各ワイド・セル生成装置720は次いで、対応するナロー入力セルグループを処理する。各ナロー入力セル・グループは、パケットの、2つの対応するインタリーブされた送信元(j=2)から送信され、それぞれのブレードを宛先とする部分を表す。一例では、4つのバックプレーン・トラフィック・ソータ714の出力に56個のワイド・セル生成装置720が結合される。合計で56個のワイド・セル生成装置720は56=q*j*l-1によって与えられ、この場合、j = 2つの送信元、l = 8つのブレード、q = 4つのシリアル入力パイプおよび4つのデシリアライザ受信機720である。
【0088】
H.ワイド・ストライプ化セル生成
ワイド・セル生成装置620はワイド・ストライプ化セルを生成する。ワイド・ストライプ化セルは、BIA600によって受信されたデータ・パケットをナロー入力セルで転送する。ワイド・セルは、複数のストライプにわたって延び、各ストライプにインバンド制御情報を含んでいる。説明を簡潔にするために、ワイド・セル生成装置620、720の動作について、さらに、図12のルーチン1200に関して説明する。しかし、ルーチン1200は、ワイド・セル生成装置620、720での使用に限定されるものではなく、他の構造および用途で使用することができる。
【0089】
図12は、本発明による、ワイド・ストライプ化セルを生成するルーチン1200(段階1210〜1240)を示している。一態様では、各ワイド・セル生成装置620、720は段階1210〜1240を実行する。段階1210で、ワイド・セル生成装置620、720は各ナロー入力セルを解析してヘッダを識別する。ヘッダ内に制御情報が見つかると、制御情報がパケットの始めを示しているかどうかを判定するためのチェックが行われる(段階1220)。たとえば、ワイド・セル生成装置620、720は、段階1210および1220を実行するために、ナロー・セル1300のレーン0を読み取り、パケットの始めが存在することを示す制御情報を判定する。一例では、パケットの始め制御情報は特殊制御文字K0である。
【0090】
パケットが検出されるたびに(段階1225)、段階1230〜1240が実行される。段階1230で、ワイド・セル生成装置620、720は、パケットのすべてのナロー入力セルのデータが1つまたは複数の新しいワイド・ストライプ化セルに分散されるまで1つまたは複数の新しいワイド・ストライプ化セルを符号化する。以下に、この符号化について、さらに、ルーチン1400ならびに図15A〜15Dおよび図16に関して説明する。
【0091】
次いで段階1230で、ワイド・セル生成装置620は、1つまたは複数の新しいワイド・ストライプ化セルを複数の送信キュー625に書き込む。図7の例では、56個のストライプ送信キュー725に合計で56個のワイド・セル生成装置720が結合されている。この例では、56個のワイド・セル生成装置720はそれぞれ、新たに生成されたワイド・ストライプ化セルを56個のストライプ送信キューのそれぞれに書き込む。
【0092】
I.ワイド・ストライプ化セルの符号化
本発明の他の特徴によれば、ワイド・ストライプ化セルを符号化するシステムおよび方法が提供される。一態様では、ワイド・セル生成装置620、720はそれぞれ、符号化されるワイド・ストライプ化セルを生成する(段階1230)。図14は、本発明の態様によるワイド・ストライプ化セルを符号化するルーチン1400(段階1410〜1460)のフローチャートである。
【0093】
J.初期ブロック符号化
段階1410で、ワイド・セル生成装置620、720は開始ワイド・ストライプ化セルの初期ブロックを初期セル符号化情報で符号化する。初期セル符号化情報は、ワイド・ストライプ化セルの初期ブロックの各サブブロックに与えられる制御情報(特殊K0文字など)および状態情報を含んでいる。図15Aは、本発明の態様によるワイド・ストライプ化セル1500内の初期ブロックの符号化を示している。初期ブロックをサイクル1と呼ぶ。初期ブロックは、5つのストライプ1〜5にわたって延びる20バイトを有する。各ストライプは4バイトのサブブロックを有する。サブブロックの4バイトは4つの1バイト・レーンに対応する。このように、ストライプはワイド・セルのサブブロックのデータ・スライスである。レーンとは、サブブロックの1バイトのデータ・スライスである。次いで段階1410で、ストライプ1〜5の各レーン0に制御情報(K0)が与えられる。ストライプ1〜5の各レーン1に状態情報が与えられる。さらに、ストライプ5のレーン2および3に2バイトが予約される。
【0094】
図15Bは、本発明の態様によるワイド・ストライプ化セルで用いられる状態情報を示す図である。図15Bに示されているように、ワイド・ストライプ化セルに関する状態情報は、スロット番号、ペイロード状態、および予約ビットのうちの1つまたは複数を含む状態情報の任意の組合せを含んでよい。スロット番号は、00、01などの符号化された数、またはワイド・ストライプ化セルが送信されるブレード(スロットとも呼ばれる)を識別する他の識別子(たとえば、英数字やASCII値)である。ペイロード状態は、任意の符号化された数、または予約(データを有さない予約されたセルを意味する)、SOP(パケット・セルの始めを意味する)、データ(パケットのペイロード・データを転送するセルを意味する)、アボート(パケット転送が中断されることを意味する)のような、送信中のセル内のデータの特定の状態を示す他の識別子であってよい。予約ビットも与えられる。
【0095】
段階1420で、ワイド・セル生成装置620、720は、パケット・データの初期バイトを初期ブロック内の利用可能な空間に分散させる。図15Aに示されている例示のワイド・ストライプ化セル1500では、ストライプ1のレーン2および3に2バイトのデータD0、D1が与えられ、ストライプ2のレーン2および3に2バイトのデータD2、D3が与えられ、ストライプ3のレーン2および3に2バイトのデータD4、D5が与えられ、ストライプ4のレーン2および3に2バイトのデータD6、D7が与えられる。
【0096】
段階1430で、ワイド・セル生成装置620、720は、パケット・データの残りのバイトを第1のワイド・ストライプ化セル(および後続のワイド・セル)の1つまたは複数のブロックにわたって分散させる。例示のワイド・ストライプ化セル1500では、ワイド・ストライプ化セルの最大サイズは、最大で148バイトのデータに相当する160バイト(8ブロック)である。ワイド・ストライプ化セル1500は、初期ブロック内のデータ・バイトD0〜D7だけでなく、7つのブロック(図15Aではブロック2〜8と呼ばれる)に分散したデータ・バイトD8〜D147をさらに有する。
【0097】
一般に、パケット・データは、パケットの終り条件に達するか、または最大セル・サイズに達するまで引き続き分散される。したがって、最大セル・サイズに達したかどうかについてのチェック(段階1440)と、パケットの終りに達したかどうかについてのチェック(段階1450)が行われる。段階1440で最大セル・サイズに達し、かつさらにパケット・データを分散させる必要がある場合、制御は段階1410に戻り、残りのパケット・データを転送する追加のワイド・ストライプ化セルが作成される。段階1440で最大セル・サイズに達しない場合、パケットの終りチェックが行われる(段階1450)。パケットの終りに達した場合、現在パケット・データを充填されているワイド・ストライプ化セルが終了ワイド・ストライプ化セルになる。148バイトよりも小さいパケットの場合、必要なワイド・ストライプ化セルは1つだけであることに留意されたい。それ以外の場合、複数のストライプにわたるデータ・パケットを転送するのに複数のワイド・ストライプ化セルが用いられる。段階1450でパケットの終りに達すると、制御は段階1460に進む。
【0098】
K.パケットの終り符号化
段階1460で、ワイド・セル生成装置620、720は、ワイド・ストライプ化セルにデータが充填された度合いに応じて異なるパケットの終り情報でワイド・ストライプ化セルをさらに符号化する。ある符号化方式では、パケットの終り情報は、パケットの終りが初期サイクルまたは後続のサイクルで起こるか、ブロック境界で起こるか、またはセル境界で起こるかを含む、1組のパケットの終り情報に応じて異なる。
【0099】
図15Cは、本発明の態様による、終了ワイド・ストライプ化セルで使用されるパケットの終り符号化情報を示す図である。パケットの終りを示すのに特殊文字バイトK1が用いられる。1組の4つのパケットの終り条件が示されている(項目1〜4)。4つのパケットの終り条件は、パケットの終りが初期ブロック中に起こるか(項目1)、または後続のブロック中に起こるか(項目2〜4)である。後続のブロックのパケットの終り条件は、パケットの終りがブロック内で起こるか(項目2)、ブロック境界で起こるか(項目3)、またはセル境界で起こるか(項目4)をさらに含む。図15Cの項目1に示されているように、パケットの終りが初期ブロック中に起こると、制御情報および状態情報(K0、状態)ならびに予約情報が他の初期ブロック送信の場合と同様に保存される。残りのデータ・バイト内のデータとしてK1バイトが与えられる。
【0100】
図15Cの項目2に示されているように、(ブロック境界やセル境界ではなく)後続のブロック中にパケットの終りが起こると、ブロックの終りに達するまで残りのデータ・バイト内のデータにK1バイトが付加される。図15Cの項目2では、データ・バイトD33(サイクル3のブロック中のストライプ2、レーン1)でパケットの終りに達する。ブロックの残りの部分について各レーンごとにK1バイトが付加される。後続のブロックのブロック境界でパケットの終りが起こると(項目3)、後続のブロック全体のデータとしてK1バイトが付加される。図15Cの項目3では、データ・バイトD27(ブロック2のブロックの終り)でパケットの終りに達する。ブロック全体(ブロック3)について各レーンごとにK1バイトが付加される。後続のブロック中のセル境界でパケットの終りが起こると(項目4)、K1バイトがデータとして付加された初期ブロックを有する1つのワイド・ストライプ化セルが生成される。図15Dの項目4では、データ・バイトD147(セルの終りおよびブロック8のブロックの終り)でパケットの終りに達する。通常の制御情報、状態情報、および予約情報を有し、K1バイトが付加された初期ブロックのみから成る1つのワイド・ストライプ化セルが生成される。図15Dに示されているように、K1バイトを有するこのような初期ブロックは、ストライプ1(K0、状態、K1,K1)、ストライプ2(K0、状態、K1,K1)、ストライプ3(K0、状態、K1,K1)、ストライプ4(K0、状態、K1,K1)、ストライプ(K0、状態、予約、予約)のようにバイトを有するストライプ1〜5から成る。
【0101】
L.切替えファブリック送信調停
一態様では、BIA600は切替えファブリック送信アービトレータ630も含んでいる。切替えファブリック送信アービトレータ630は、ストライプ送信キュー625、725に格納されているデータが送信機640、740によって切替えファブリックに送信される順序を調停する。各ストライプ送信キュー625、725は、それぞれの送信元パケット・プロセッサおよび宛先スロット識別子に対応するそれぞれの一群のワイド・ストライプ化セルを格納する。各ワイド・ストライプ化セルは、複数のストライプにわたる1つまたは複数のブロックを有する。動作時に、切替えファブリック送信アービトレータ630は、ストライプ送信キュー625、725を選択し、次の利用可能なセルを送信機640、740にプッシュする。このようにして、一度に1つの完全なセルが送信される。(あるいはセルの一部を送信することができる。)ワイド・セルの各ストライプはそのストライプのそれぞれの送信機640、740にプッシュされる。一例では、通常の動作時には、特定のパケット・プロセッサから任意の特定のスロットまたはブレードに完全なパケットが送信され、その後それぞれの異なるパケット・プロセッサからそのスロットに新しいパケットが送信される。しかし、それぞれの異なるスロットに対するパケットは調停サイクル中に送信される。他の態様では、次いで他のブレードまたはスロットがランド・ロビン式に選択される。
【0102】
M.ワイド・セル符号化を含むストライプのクロス・ポイント処理
一態様では、切替えファブリック645は、各ストライプに対応するいくつかのクロス・ポイント・スイッチ202を含んでいる。各クロス・ポイント・スイッチ202(本明細書では、クロス・ポイントまたはクロス・ポイント・チップとも呼ばれる)は、1つのそれぞれのストライプに対応するワイド・セルの1つのデータ・スライスを扱う。一例では、5つのストライプに対応する5つのクロス・ポイント・スイッチ202A〜202Eが設けられている。説明を明確にするために、図8には、ストライプ1および5に対応する、5つのクロス・ポイント・スイッチのうちの2つしか示していない。上記で図2に関して説明したように、スイッチのすべてのブレードの送信機と受信機の間に5つのクロス・ポイント・スイッチ202が結合されている。たとえば、図8は、あるブレードのストライプ用の1組の送信機740と異なるブレード上の他の1組の受信機850との間に結合されたクロス・ポイント・スイッチ202を示している。
【0103】
次に、クロス・ポイント202、特にポート・スライス402Fの動作について、ストライプがさらにワイド・セル符号化およびフロー制御条件を含む態様に関して説明する。
【0104】
ポート・スライス402Fは、他のポート・スライス402A〜402E、402G、および402Hからもデータを受信する。このデータは、ポート・スライス402Fに対応する宛先スロット番号を有するポート・スライス402A〜402E、402G、および402Hの他の7つのポートで受信されるデータに対応する。ポート・スライス402Fは、対応するポート・スライス402A〜402E、402G、および402Hからのデータを格納する7つのデータFIFOを含んでいる。7つのポート・スライス402A〜402E、402G、および402H内の累算器(図示せず)は、ポート・スライス402Fに関連する宛先スロット番号を抽出し、ポート・スライス402F用の7つのデータFIFO530のそれぞれに対応するデータを書き込む。図5に占めされているように、各データFIFO530はFIFOコントローラおよびFIFOランダム・アクセス・メモリ(RAM)を含んでいる。FIFOコントローラはFIFO読取りアービトレータ540に結合されている。FIFO RAMはマルチプレクサ550に結合されている。FIFO読取りアービトレータ540はさらにマルチプレクサ550に結合されている。マルチプレクサ550は、ディスパッチャ560に結合された出力を有している。ディスパッチャ560は送信同期FIFOモジュール570に結合された出力を有している。送信同期FIFOモジュール570はシリアライザ送信機580に結合された出力を有している。
【0105】
動作時に、FIFO RAMはデータを累積する。データFIFO RAMが1セル分のデータを累積した後、それに対応するFIFOコントローラがFIFO読取りアービトレータ540に対する読取り要求を生成する。FIFO読取りアービトレータ540は、ラウンド・ロビン順のような所望の順序でそれぞれの異なるFIFOコントローラからの読取り要求を処理する。1つのFIFO RAMから1セル分のデータが読み取られた後、FIFO読取りアービトレータ540は次の要求側FIFOコントローラの処理に移る。このようにして、それぞれの異なる要求側FIFOコントローラに対して調停が行われ、それぞれの異なる送信元ポートで受信されたデータが転送される。これによって、クロス・ポイント202を通した比較的均一であるが疎に結合されたデータ・フローが維持される。
【0106】
FIFO読取りアービトレータ540は、読取り要求を処理するために、マルチプレクサ550を切り替え、1セル分のデータを、読取り要求に関連するデータFIFO RAMからディスパッチャ560に転送する。ディスパッチャ560は、データを送信同期FIFO 570に出力する。送信同期FIFO 570は、データを格納し、このデータがシリアライザ送信機580によってシリアル・データ・ストリームでブレード104Fに送信されるまで格納し続ける。
【0107】
以下に、本発明によるクロス・ポイント動作について、さらに、ワイド・セル符号化およびフロー制御を伴う他の態様に関して説明する。
【0108】
N.第2のトラフィック処理パス
図6は、本発明の態様によるバックプレーン・インタフェース・アダプタ600で受信されるバックプレーン・シリアル・トラフィック用のトラフィック処理パスも示している。図9は、第2のトラフィック処理パスをさらに詳しく示している。
【0109】
図6に示されているように、BIA600は、第2のパスに沿って、1つまたは複数のデシリアライザ受信機650、ワイド/ナロー・セル・トランスレータ680、およびシリアライザ送信機692を含んでいる。受信機650は、切替えファブリック645から複数のストライプでワイド・ストライプ化セルを受信する。ワイド・ストライプ化セルはデータ・パケットを転送する。一例では、5つのデシリアライザ受信機650はワイド・ストライプ化セルの5つのサブブロックを複数のストライプで受信する。ワイド・ストライプ化セルは、複数のストライプにわたるデータ・パケットを転送し、送信元スロット識別子情報を含んでいる。一デジタル・スイッチ態様では、上記に図8に関して説明したようにワイド・ストライプ化セルが切替えファブリック内のクロス・ポイントを通過する際にワイド・ストライプ化セルに送信元スロット識別子情報が書き込まれる。
【0110】
トラスンスレータ680は、受信されたワイド・ストライプ化セルを、データ・パケットを転送するナロー入力セルに変換する。シリアライザ送信機692はナロー入力セルを対応する送信元パケット・プロセッサまたはIBTに送信する。
【0111】
BIA600は、デシリアライザ受信機650とコントローラ670の間に結合されたストライプ・インタフェース660(ストライプ・インタフェース・モジュールとも呼ばれる)、ストライプ受信同期キュー(685)、およびコントローラ670をさらに含んでいる。各ストライプ・インタフェース660は、各ストライプ内の受信されたサブブロックを送信元パケット・プロセッサ識別子および送信元スロット識別子情報に基づいてソートし、ソート済みの受信されたサブブロックをストライプ受信同期キュー685に格納する。
【0112】
コントローラ670は、アービトレータ672、ストライプ・ベースのワイド・セル・アセンブラ674、および管理モジュール676を含んでいる。アービトレータ672は、ストライプ受信同期キュー685に格納されているデータがストライプ・ベースのワイド・セル・アセンブラ674に送信される順序を調停する。ストライプ・ベースのワイド・セル・アセンブラ674は、受信されたデータ・サブブロックに基づいてワイド・ストライプ化セルをアセンブルする。ナロー/ワイド・セル・トランスレータ680は次いで、調停済みの受信されたワイド・ストライプ化セルを、データ・パケットを転送するナロー入力セルに変換する。管理モジュール676は、フロー制御、キューしきい値レベル検出、およびエラー検出(ストライプ同期エラー検出など)、または他の所望の管理機能を実行するように設けられている。
【0113】
本発明の態様によれば第2のレベルの調停も行われる。BIA600はさらに、宛先キュー615およびローカル宛先送信アービトレータ690を第2のパスに含んでいる。宛先キュー615は、(第1のパスから)トラフィック・センサ610によって送信されたナロー・セルおよび(第2のパスから)トランスレータ680によって変換されたナロー・セルを格納する。ローカル宛先送信アービトレータ690は、宛先キュー690に格納されているナロー入力セルがシリアライザ送信機692に送信される順序を調停する。最後に、シリアライザ送信機692は次いで、ナロー入力セルを対応するIBTおよび/または送信元パケット・プロセッサに送信する(最終的には物理ポートを介してブレードから送出する)。
【0114】
図9は、第2のトラフィック処理をさらに詳しく示している。BIA600は、5つのスライスからのデータ・スライスを処理する5つの構成要素群を含んでいる。図9には、説明を明確にするために2つの群900および901しか示されておらず、群900について1つのストライプに関して詳しく説明するだけでよい。これは、他の4つのストライプに対する他の群の動作は同様であるからである。
【0115】
第2のトラフィック・パスにおいて、デシリアライザ受信機950はクロス・クロック・ドメイン・シンクロナイザ952に結合されている。デシリアライザ受信機950はストライプのデータ・スライス(たとえば、サブブロック)をパラレル・データに変換する。クロス・クロック・ドメイン・シンクロナイザ952はパラレル・データを同期させる。
【0116】
ストライプ・インタフェース960は、送信元パケット・プロセッサ識別子および送信元スロット識別子情報に基づいて各ストライプ内の受信されたサブブロックを復号しソートするためのデコーダ962およびソータ964を有する。ソータ964は次いで、ソート済みの受信されたサブブロックをストライプ受信同期キュー965に格納する。合計で、それぞれ56個のストライプ受信同期キュー965の5つの群が設けられている。このため、1グローバル・ブレード当たりに特定の送信元から受信された各サブブロック群専用に1つのキューを使用することができる(現在のブレードを含まない7つのブレードについて1ブレード当たり最大8つの送信元パケット・プロセッサ)。
【0117】
アービトレータ672は、ストライプ受信同期キュー685に格納されているデータがストライプ・ベースのワイド・セル・アセンブラ674に送信される順序を調停する。ストライプ・ベースのワイド・セル・アセンブラ674は、受信されたデータ・サブブロックに基づいてワイド・ストライプ化セルをアセンブルする。ナロー/ワイド・セル・トランスレータ680は次いで、上記に図6で説明したように、調停済みの受信されたワイド・ストライプ化セルを、データ・パケットを転送するナロー入力セルに変換する。
【0118】
宛先キューには、ローカル宛先キュー982およびバックプレーン・トラフィック・キュー984が含まれる。ローカル宛先キュー982は、ローカル・トラフィック・ソータ716によって送信されたナロー・セルを格納する。バックプレーン・トラフィック・キュー984は、トランスレータ680によって変換されたナロー・セルを格納する。ローカル宛先送信アービトレータ690は、宛先キュー982、984に格納されているナロー入力セルがシリアライザ送信機992に送信される順序を調停する。最後に、シリアライザ送信機992は次いで、ナロー入力セルを対応するIBTおよび/または送信元パケット・プロセッサに送信する(最終的には物理ポートを介してブレードから送出する)。
【0119】
O.セル境界整列
図15Dは、本発明の態様による、ワイド・ストライプ化セルが複数のストライプで送信される際のセル境界整列条件の例を示す図である。符号化およびワイド・ストライプ化セル生成によって、任意の所与のストライプについて8ブロックごとにK0文字が存在するようになっている。ストライプ自体間のセル境界は位置ずれする可能性がある。しかし、この位置ずれは、BIA600内の第2のトラフィック処理フロー・パスによって補償され対処される。
【0120】
P.パケット整列
図16は、本発明の態様による、ワイド・ストライプ化セルが複数のストライプで送信される際のパケット境界整列条件の例を示す図である。セルはストライプごとに異なることがあるが、すべてのストライプは基本的に、同じパケットまたは互いに近いパケットを送信する。各クロス・ポイントはその送信元を独立に調停するので、セル境界にスキューが生じる可能性があるだけでなく、あるシリアル・リンク上のパケットの送信と任意の他のリンク上のパケットの送信との間に7セル・タイム・ユニット(セルを送信する時間)分ものスキューが生じる恐れがある。このことは、複数のストライプを切替えファブリック上で送信する際に各パケットが他のパケットとインタレースされる可能性があることを意味している。
【0121】
Q.回線速度でのワイド・ストライプ化セル・サイズ
一例では、ワイド・セルの最大サイズは、148バイトのペイロード・データおよび12バイトのインバンド制御情報を転送することのできる8ブロック(160バイト)である。全二重トラフィック用のデータ・パケットは、ワイド・セルで、デジタル・スイッチを介して50Gbpsで転送することができる。
【0122】
R.IBTおよびパケット処理
統合パケットコントローラ(Integrated Packet Controller:IPC)および統合ギガコントローラ(Integrated Giga Controller:IGC)機能は、上記にIPC/IGCバストランスレータ(Bus Translator)(IBT)304として説明したバス・トランスレータを備えている。一態様では、IBTは、1つまたは複数のIPC/IC ASICを繋ぐASICである。このような態様では、IBTは2つの4/5ギガ・パラレル・ストリームを1つの10Gbpsシリアル・ストリームに変換する。パラレル・インタフェースはIPC/IGC ASICのバックプレーン・インタフェースであってよい。たとえば、本明細書でインタフェース・アダプタおよびストライピングについて説明したように、さらに1つの10Gbpsシリアル・ストリームを処理することができる。
【0123】
さらに、IBT304は、当業者には少なくとも本明細書の開示に基づいて明らかになる他のアーキテクチャと共に動作するように構成することができる。たとえば、IBT304は、10GE構成およびOC-192構成を用いてパケット・プロセッサにおいて実施することができる。IBT304の機能は、既存のパケット・プロセッサに組み込むことも、システムのアドオン構成要素として取り付けることもできる。
【0124】
図17で、ブロック図1700は、本発明の一態様によるバス・トランスレータ1702の構成要素を示している。前述のIBT304は、図17のトランスレータ1702として構成することができる。たとえば、IBT304は、バス・トランスレータ1702の機能を含むように実施することができる。
【0125】
具体的には、バス・トランスレータ1702は、データ1704をデータ1706にデータ1706をデータ104に変換する。データ1706は、トランシーバ1710によって受信され、トランスレータ1712に転送される。トランスレータ1712はデータ1706を解析し、所望のフォーマットに符号化する。
【0126】
この場合、トランスレータ1712は、データ1706をデータ1704のフォーマットに変換する。トランスレータ1712は管理モジュール1718によって管理される。1つまたは複数のプール1716がデータ1706およびデータ1704の情報を格納する。1つまたは複数のクロック1714は、トランスレータ1712の変換動作に対するタイミング情報を与える。トランスレータ1712は、データ1706の変換を終了すると、新たにフォーマットされた情報をデータ1704としてトランシーバ1708に転送する。トランシーバ1708はデータ1704を転送する。
【0127】
当業者には本明細書に記載された開示に基づいて認識されるように、バス・トランスレータ1702の動作方向を逆転し、データ1704をバス・トランスレータ1702によって受信し、変換後にデータ1706を転送することができる。
【0128】
制限なしに例示を容易にするために、データ1706をデータ1704に変換するプロセスを本明細書では、受信などとして説明する。さらに、制限なしに例示を容易にするために、データ1704をデータ1706に変換するプロセスを本明細書では、送信などとして説明する。
【0129】
図18は、本発明の一態様による受信構成要素のブロック図である。一態様では、バス・トランスレータ1802は、インタフェース接続部1804a〜1804nからパケットの形態のデータを受信する。インタフェース接続部1804a〜1804nはバス・トランスレータ1802の1つまたは複数の受信機1808に結合されている。受信機1808は、受信されたパケットを1つまたは複数のパケット・デコーダ1810に転送する。一態様では、受信機1808は1つまたは複数の物理ポートを含んでいる。他の態様では、各受信機1808は1つまたは複数の論理ポートを含んでいる。ある特定の態様では、受信機1808は4つの論理ポートから成っている。
【0130】
パケット・デコーダ1810は受信機1808からパケットを受信する。パケット・デコーダ1810はパケットの情報を解析する。一態様では、以下に詳しく説明するように、パケット・デコーダ1810は、各パケットのペイロード情報と、作成時間や作成場所のようなパケットに関する他の情報を、パケットのパケットの始め(SOP)の部分からパケットの終り(EOP)の部分までコピーする。パケット・デコーダ1810は、解析によって得られた情報をメモリ・プール1812に転送する。一態様では、バス・トランスレータ1802は複数のメモリ・プール1812を含んでいる。他の態様では、他のメモリ・プール1818に情報を送信することができる。他の態様では、パケット・デコーダ1810は、ペイロード、送信時間、作成元などの様々な種類の情報をプール1812および1818のそれぞれの異なるメモリ・プールに転送することができる。
【0131】
基準クロック1820は、パケット・デコーダ1810にタイミング情報を供給する。一態様では、基準クロック1820は、接続部1804a〜1804nを介してパケットを送信するIPC/IGC構成要素に結合されている。他の態様では、基準クロック1820はバス・トランスレータ1802のすべてのパラレル構成要素に基準およびタイミング情報を供給する。
【0132】
セル・エンコーダ1814はメモリ・プール1812から情報を受信する。他の態様では、セル・エンコーダ1814は他のメモリ・プール1818から情報を受信する。セル・エンコーダ1814は情報をセルにフォーマットする。
【0133】
以下の説明では、これらのセルをナロー・セルとも呼ぶ。さらに、セル・エンコーダ1814は情報を1つまたは複数のセル・タイプにフォーマットするように構成することができる。一態様では、セル・フォーマットは一定のサイズである。他の態様では、セル・フォーマットは可変サイズである。
【0134】
セル・フォーマットについて以下に、図22、23A〜23B、24、および25A〜25Bのセル符号化プロセスおよび解読プロセスに関して説明syry。
【0135】
セル・エンコーダ1814はセルを送信機1816に転送する。送信機1816はセルを受信し、インタフェース接続部1806a〜1806nを介して送信する。
【0136】
基準クロック1828は、タイミング情報をセル・エンコーダ1814に供給する。一態様では、基準クロック1828は、接続部1806a〜1806nを介してセルを受信するインタフェース・アダプタ構成要素に結合される。他の態様では、基準クロック1828は、バス・トランスレータ1802のすべてのシリアル構成要素に基準およびタイミング情報を供給する。
【0137】
フロー・コントローラ1822は、バス・トランスレータ1802の構成要素のステータスおよびバス・トランスレータ1802に接続された構成要素のステータスを判定することによって着信パケットおよび発信パケットを測定し制御する。このような構成要素については、本明細書ですでに説明してあり、本発明のインタフェース・アダプタに関して詳しく説明する。
【0138】
一態様では、フロー・コントローラ1822は、準備完了信号をアサートし、バス・トランスレータ1802またはさらに接続されているIPC/IGC構成要素でオーバフローが起こった場合に準備完了信号をアサート解除することによって、接続部1806を介してトラフィックを制御する。
【0139】
管理モジュール1824はバス・トランスレータ1802に対する制御機能を実行する。一態様では、管理モジュール1824は、バス・トランスレータ1802に対するエラー制御および電源オン・リセット機能を実行する。
【0140】
図19は、本発明の一態様による送信構成要素のブロック図である。一態様では、バス・トランスレータ1902はインタフェース接続部1904a〜1904nからセルの形態のデータを受信する。インタフェース接続部1904a〜1904nはバス・トランスレータ1902の1つまたは複数の受信機1908に結合されている。一態様では、受信機908は1つまたは複数の物理ポートを含んでいる。他の態様では、各受信機1908は1つまたは複数の論理ポートを含んでいる。ある特定の態様では、受信機1908は4つの論理ポートから成っている。受信機1908は、受信された信号を同期モジュール1910に送信する。一態様では、同期モジュール1910は、着信セルを基準クロック1922と同期させるのに用いられるFIFOである。基準クロック1922から同期モジュール1910までの直接的な矢印は図19には示されていないが、同期モジュールが着信セル同士を同期させることができるように2つのモジュールが通信できることに留意されたい。同期モジュール1910は1つまたは複数のセル・デコーダ1912にデータを転送する。
【0141】
セル・デコーダ1912は同期モジュール1910からセルを受信する。セル・デコーダ1912はセルの情報を解析する。一態様では、以下に詳しく説明するように、セル・デコーダ1912は、各セルのペイロード情報と、作成場所のようなセルに関する他の情報を、セルのスロット・状態情報部分からコピーする。
【0142】
一態様では、セル・フォーマットを固定することができる。他の態様では、セル・フォーマットは可変であってよい。他の態様では、バス・トランスレータ1902によって受信されるセルは複数のセル・フォーマットのセルであってよい。バス・トランスレータ1902は、当業者には本明細書の開示に基づいて認識されるように、これらのセル・フォーマットを解読するように構成することができる。セル・フォーマットについては、本発明のセル符号化プロセスに関して詳しく説明する。
【0143】
セル・デコーダ1912は、解析によって得られた情報をメモリ・プール1914に転送する。一態様では、バス・トランスレータ1902は複数のメモリ・プール1914を含んでいる。他の態様では、他のメモリ・プール1916に情報を送信することができる。他の態様では、セル・デコーダ1912は、ペイロード、送信時間、作成元などの様々な種類の情報をプール1914および1916のそれぞれの異なるメモリ・プールに転送することができる。
【0144】
基準クロック1922は、セル・デコーダ1912にタイミング情報を供給する。一態様では、基準クロック1922は、接続部1904a〜1904nを介してセルを送信するインタフェース・アダプタ構成要素に結合されている。他の態様では、基準クロック1922はバス・トランスレータ1902のすべてのシリアル構成要素に基準およびタイミング情報を供給する。
【0145】
パケット・エンコーダ1918はメモリ・プール1914から情報を受信する。他の態様では、パケット・エンコーダ1918は他のメモリ・プール1916から情報を受信する。パケット・エンコーダ1918は情報をパケットにフォーマットする。
【0146】
パケット・フォーマットは、IPC/IGC構成要素の構成およびシステムの要件によって決定される。
【0147】
パケット・エンコーダ1918はパケットを送信機1920に転送する。送信機1920は、パケットを受信し、インタフェース接続部1906a〜1906nを介してこのパケットを送信する。
【0148】
基準クロック1928は、パケット・デコーダ1918にタイミング情報を供給する。一態様では、基準クロック1928は、接続部1906a〜1906nを介してパケットを送信するIPC/IGC構成要素に結合されている。他の態様では、基準クロック1928はバス・トランスレータ1902のすべてのパラレル構成要素に基準およびタイミング情報を供給する。
【0149】
フロー・コントローラ1926は、バス・トランスレータ1902の構成要素のステータスおよびバス・トランスレータ1902に接続された構成要素のステータスを判定することによって着信パケットおよび発信パケットを測定し制御する。このような構成要素については、本明細書ですでに説明してあり、本発明のインタフェース・アダプタに関して詳しく説明する。
【0150】
一態様では、フロー・コントローラ1926は、準備完了信号をアサートし、バス・トランスレータ1902またはさらに接続されているIPC/IGC構成要素でオーバフローが起こった場合に準備完了信号をアサート解除することによって、接続部1906を介してトラフィックを制御する。
【0151】
管理モジュール1924はバス・トランスレータ1902に対する制御機能を実行する。一態様では、管理モジュール1924は、バス・トランスレータ1902に対するエラー制御および電源オン・リセット機能を実行する。
【0152】
図20には、一態様によるバス・トランスレータの詳細ブロック図が示されている。バス・トランスレータ2202はバス・トランスレータ1802および1902の機能を組み込んでいる。
【0153】
パケット処理に関しては、パケットは、バス・トランスレータ2002により受信機2012によって受信される。パケットはセルとして処理されシリアライザ/デシリアライザ(SERDES)2026に転送される。SERDES2026は、バス・トランスレータ2002によって処理されるセル用のトランシーバとして働く。SERDES2026はセルをインタフェース接続部2006を介して送信する。
【0154】
セル処理に関しては、SERDES2026とのインタフェース接続2008を介してバス・トランスレータ2002によって受信される。セルはパケットとして処理され送信機2036に転送される。送信機2036は、パケットをインタフェース接続部2010a〜2010nを介してIPC/IGC構成要素に転送する。
【0155】
基準クロック2040および2048は、すでに図18および図19で説明した基準クロック2040に類似している。基準クロック2040はバス・トランスレータ2002のシリアル構成要素にタイミング情報を供給する。図示のように、基準クロック2040はセル・エンコーダ2020、セル・デコーダ2030、およびSERDES2026にタイミング情報を供給する。基準クロック2048はバス・トランスレータ2002のパラレル構成要素にタイミング情報を供給する。図示のように、基準クロック2048はパケット・デコーダ2016およびパケット・エンコーダ2034にタイミング情報を供給する。
【0156】
上述のようにシリアル動作とパラレル動作を分離することは、本発明の態様の特徴である。このような態様では、それぞれポート2014a〜2014nおよび2038a〜2038bにおける着信パケットおよび発信パケットのパラレル・フォーマットは、SERDES2026でシリアル・セル・フォーマットに再マップされる。
【0157】
さらに、本発明の態様によれば、ポート2014a〜2014nの回線速度の共用度は出力2006の回線速度によってのみ制限される。ポート2038a〜2038nおよび入力2008についても同様である。
【0158】
パラレル・パケットのシリアル・セルへの再マッピングについては本明細書で詳しく、特に図21Eに関して説明する。
【0159】
図21Aには、本発明の他の態様によるバス・トランスレータの詳細ブロック図が示されている。図18、図19、および図20の受信機および送信機は、すでに説明したのと同じ機能を実行することのできるCMOS I/O2112で置き換えられている。CMOS I/O2112は、データを受信し送信する様々な数の物理ポートおよび論理ポートに対処するように構成することができる。
【0160】
管理モジュール2140は前述のように動作する。図示のように、管理モジュール2140は管理制御要素および管理レジスタを含んでいる。管理制御要素は、バス・トランスレータ2102の動作を管理し、すでに図18、図19、および図20に関して説明したようにリセット・電源オン機能を実行する。管理レジスタは動作パラメータを取り込み、取り込んだパラメータとの比較またはこれらのパラメータの参照に基づいてバス・トランスレータ2102の状態を判定することができる。
【0161】
基準クロック2134および2136は、すでに図18、図19、および図20で説明した基準クロック2134および2136に類似している。基準クロック2136はバス・トランスレータ2102のシリアル構成要素にタイミング情報を供給する。図示のように、基準クロック2136はセル・エンコーダ2118、セル・デコーダ2128、およびSERDES2124にタイミング情報を供給する。基準クロック2134はバス・トランスレータ2102のパラレル構成要素にタイミング情報を供給する。図示のように、基準クロック2134はパケット・デコーダ2114およびパケット・エンコーダ2132にタイミング情報を供給する。
【0162】
図21Aに示されているように、メモリプール2116は2対のFIFOを含んでいる。各FIFOはヘッダ・キューと対をなしている。メモリ・プール2116は、すでに図18および図20で説明したメモリ・プールと同様に動作する。一態様では、解読されたパケットのペイロードまたは情報部分は1つまたは複数のFIFOに格納され、タイミング、作成場所、宛先、および同様の情報は、対応するヘッダ・キューに格納される。
【0163】
さらに、メモリ・プール2130は2対のFIFOを含んでいる。メモリ・プール2130は、すでに図19および図20で説明したメモリ・プールと同様に動作する。一態様では、解読されたセル情報は、対応するタイミング、作成場所、宛先、および同様の情報と共に1つまたは複数のFIFOに格納される。
【0164】
インタフェース接続部2106および2108は、SERDES2124を介して前述のインタフェース・アダプタをバス・トランスレータ2102に接続する。一態様では、接続部2106および2108はシリアル・リンクである。他の態様では、シリアル・リンクは4つのレーンに分割される。
【0165】
一態様では、バス・トランスレータ2102は、1つまたは複数の4GbpsパラレルIPC/IGC構成要素を4つの3.125GbpsシリアルXAUIインタフェース・リンクまたはレーンに変換するIBT304である。一態様では、バックプレーンはIPC/IGCインタフェース接続である。バス・トランスレータ2102は着信データを1つまたは複数のセル・フォーマットに変換する。
【0166】
一態様では、セル・フォーマットは4バイト・ヘッダおよび32バイト・データ・ペイロードであってよい。他の態様では、特殊K文字によって各セルのヘッダが分離される。他の態様では、パケットの最後のセルが1つまたは複数の特殊K1文字によって示される。
【0167】
セル・フォーマットは一定長のセルと可変長のセルとの両方を含んでよい。36バイト(4バイト・ヘッダと32バイト・ペイロード)符号化は一定長セル・フォーマットの一例である。他の態様では、セル長が前述の36バイト(4バイト+32バイト)を超えるセル・フォーマットを実施することができる。
【0168】
図21Bで、機能ブロック図は、バス・トランスレータの受信構成要素を有するデータ・パスを示している。パケット・デコーダ2150a〜2150bは、対としてのFIFOおよびヘッダにパケット・データを転送する。たとえば、パケット・デコーダ2150aはFIFO2152a〜2152bにパケット・データを転送し、ヘッダ2154に側波帯情報を転送する。パケット・デコーダ2150bにも同様にプロセスが実行される。パケット・デコーダ2150bは、FIFO2156a〜2156bにパケット・データを転送し、ヘッダ2158に側波帯情報を転送する。セル・エンコーダ2160はデータおよび制御情報を受信し、シリアライザ/デシリアライザ(SERDES)回路の機能要素、SERDES特殊文字2162およびSERDESデータ2164a〜2164bとして示されている、シリアライザ/デシリアライザ(SERDES)回路へのセルを作成する。SERDES特殊文字2162は、セルのデータ・ペイロードの始めおよび終りを示すのに用いられる文字を含んでいる。SERDESデータ2164a〜2164bは、各セルごとのデータ・ペイロードと、セルの制御受信を含んでいる。セル構造については、以下に図21Eに関して詳しく説明する。
【0169】
バス・トランスレータ2102は、パイプライン呼出し時間に対処する内部データ・バッファとして働くメモリ・プール2116を有している。各IPC/IGC構成要素について、バス・トランスレータ2102は、図21Aにメモリ・プール2116のFIFOとして示され、図21Bに要素2152a〜2152b、2154、2156a〜2156b、および2158として示されているように、2つのデータFIFOおよび1つのヘッダFIFOを有している。一態様では、側帯波情報はヘッダAまたはBのそれぞれに格納される。32バイトのデータが2つのデータFIFO A1、A2またはB1、B2の一方または両方にピンポン式に格納される。ピンポン方式は、当技術分野で公知であり、交番方式を含む。
【0170】
一態様では、セル・エンコーダ2160は、各パケット・デコーダ2150a〜2150bからのデータをインタフェース・アダプタへの1つの10Gbpsデータ・ストリームに併合する。セル・エンコーダ2160は、データを、各セル境界でインタリーブすることによって併合する。各セル境界は特殊K文字によって決定される。
【0171】
一態様によれば、受信されたパケットは32ビット整列され、一方、SERDES要素のパラレル・インタフェースは64ビット幅である。
【0172】
実際には、任意のパケット長用の回線速度を実現することが困難である場合がある。回線速度とは、パケットが受信される速度と同じ、セル内の出力速度を維持することを意味する。パケットは4バイト・ヘッダ・オーバヘッド(SOP)および4バイト・テール・オーバヘッド(EOP)を有してよい。したがって、バス・トランスレータ2102は、典型的な解析構成要素および経路指定構成要素の遅延なしにパケットを解析しなければならない。具体的には、バス・トランスレータ2102は、以下に詳しく説明するように、特殊K文字を用いてパラレル・データ入力セル・フォーマットに変換し、状態情報およびスロット情報を(制御情報と共に)インバンドでデータ・ストリームと併合する。したがって、一態様では、セル・データの各32バイトに4バイト・ヘッダが伴う。
【0173】
図21Cは、本発明の一態様によるバス・トランスレータの送信構成要素を有するデータ・パスの機能ブロック図である。セル・デコーダ2174はSERDES回路からセルを受信する。SERDES回路の機能構成要素には要素2170および2172a〜2172bが含まれる。制御情報およびデータは、セルの解析によって得られメモリ・プールに転送される。一態様では、FIFOは、要素2176a〜2176bおよび2176c〜2176dとして示されている対として維持される。各対は制御情報およびデータをパケット・エンコーダ2178a〜2178bに転送する。
【0174】
図21Dは、本発明の一態様によるバス・トランスレータのネイティブ・モード受信構成要素を有するデータ・パスの機能ブロック図である。一態様では、バス・トランスレータ2102はネイティブ・モードに構成することができる。ネイティブ・モードは、合計で10Gbpsの接続がバス・トランスレータ2102のパラレル・エンド(CMOS I/O 2112によって示されている)に維持されるときを含むことができる。一態様では、帯域幅要件の増大のために(8Gbpsから10Gbps)、 セル・フォーマット長はもはや32バイトに固定されない。10Gbpsトラフィックがバス・トランスレータ2102を介して送られる態様では、バス・トランスレータ2102が10Gbpsリンク上の装置からSOPを受信したときに制御情報が付加される。他の態様では、バス・トランスレータ2102は、まずデータ転送を検出し、したがって、アイドル状態から動作状態になったときに、制御情報を付加する。
【0175】
他の態様では、図21Dに示されているように、2つの別々のデータFIFOを用いてアップリンキング・データが一時的にバッファリングされ、したがって、既存のタイミング・パスが不要になる。
【0176】
セル−パケット変換のための別個のネイティブ・モード・データ・パスは示されていないが、当業者には、少なくとも本明細書に記載されている開示に基づいて、これを実現するにはどうすべきかが認識されよう。たとえば、2つのFIFOを10Gbpsリンク情報の格納専用に構成することが可能である。しかし、一態様では、バス・トランスレータ2102は、図19、図20、および図21に示されているように、ネイティブ・モード・データ・パスおよび非ネイティブ・モード・データ・パスを共用動作で処理する。ヘッダおよびアイドル・バイトは、デコーダ2103およびデコーダ2174などのセル・デコーダによってデータ・ストリームから除去される。有効なデータは、前述のように解析され、格納され、パラレル・インタフェースに転送される。
【0177】
インタフェース・アダプタまたはBIAによって零ボディ・セル・フォーマットが受信される他の態様では、IBT304は各送信元スロットごとに直前の1回のデータ転送を保持する。IBT304が零ボディ・セル・フォーマットを有するEOPを受信すると、直前の1回または2回の転送が解放され、パラレル・インタフェースから送信される。
【0178】
S.ナロー・セルおよびパケット符号プロセス
図21Eは、本発明の一態様によるセル・フォーマットのブロック図である。図21Eは、本明細書で説明する態様によるパケットの例とセルの両方を示している。パケットの例は、パケットの始め2190a、データを含むペイロード2190b、パケットの終り2190c、およびパケット間ギャップ2190cを示している。
【0179】
本発明の一態様によれば、セルは特殊文字K0 2190および制御情報2194を含み、任意に1つまたは複数の予約ビット2196a〜2196bを含み、最後にデータ2198a〜2198nを含む。他の態様では、データ2198a〜2198nはD0〜D31よりも多くのデータを含んでよい。
【0180】
一態様では、図21Eに示されている4つの行すなわちスロットは、セルが送信されかつ/または受信されるシリアル・リンクの4つのレーンを示している。
【0181】
本明細書ですでに説明したように、IBT304はXAUIインタフェースを介してBIA302との間でセルを送受信する。IBT304は、パラレル・インタフェースを介してIPC/IGC構成要素および他のコントローラ構成要素(すなわち、10GEパケット・プロセッサ)との間でパケットを送受信する。パケットは、4バイトとその後に続く32バイトのデータから成るセルにセグメント化される。パケットの終りは、4バイトの転送内の任意の無効なデータ上のK1特殊文字またはすべてのXAUIレーン上の4つのK1によって示される。一態様では、各バイトは1つのXAUIレーン上に直列化される。以下の表は、本発明の一態様によるセルのバイト表現の右左の構成を示したものである。
【0182】
【0183】
パケットは、ヘッダとデータ・ペイロードから成るセルにフォーマットされる。4バイトのヘッダは、4つのXAUIレーン上の1サイクルすなわち1行を必要とする。ヘッダは、現在ヘッダが転送されていることを示すK0特殊文字をレーン0上に有している。制御情報はヘッダのレーン1上で開始する。
【0184】
一態様では、IBT304は、2つのIPC/IGCバックプレーン・バスを受け入れ、1つの10Gbpsシリアル・ストリームに変換する。
【0185】
図22には、本発明の一態様によるバス・トランスレータの符号化プロセスの流れ図が示されている。プロセスは段階2202から開始し、ただちに段階2204に進む。
【0186】
段階2204で、IBT304は、それがパケットを受信するポートの種類を判定する。一態様では、各ポートはIPC/IGC構成要素からの4Gpsトラフィック向けに構成されている。プロセスはただちに段階2206に進む。
【0187】
段階2206で、IBT304は、それが処理するトラフィックの種類に基づいてセル・フォーマット・タイプを選択する。一態様では、IBT304は、部分的に段階2204でのポートの種類の判定に基づいて、セル・フォーマットの種類を選択する。プロセスはただちに段階2208に進む。
【0188】
段階2208で、IBT304は、前述のように、そのポートを介してインタフェース接続部から1つまたは複数のパケットを受信する。パケットが供給される速度は、パケットを送信する構成要素に依存する。プロセスはただちに段階2210に進む。
【0189】
段階2210で、IBT304は、段階2208で受信された1つまたは複数のパケットを解析し、それに含まれている情報を得る。一態様では、IBT304のパケット・デコーダは、パケットを解析し、パケットのペイロード部内に含まれている情報と、それぞれの所与のパケットのヘッダと共に含まれている制御または経路指定情報とを得る。プロセスはただちに段階2212に進む。
【0190】
段階2212で、IBT304は、段階2210の解析によって得られた情報を任意に格納する。一態様では、IBT304のメモリ・プールを用いて情報が格納される。プロセスはただちに段階2214に進む。
【0191】
段階2214で、IBT304は情報を1つまたは複数のセルにフォーマットする。一態様では、IBT304のセル・エンコーダは、1つまたは複数のパケットの解析によって得られた情報にアクセスする。この情報は、送信中のデータと、データがどこに送信されているかに関するスロット・状態情報(すなわち、制御情報)を含む。前述のように、セル・フォーマットは、情報に付加される特殊文字を含む。プロセスはただちに段階2216に進む。
【0192】
段階2216で、IBT304は、フォーマットされたセルを転送する。一態様では、IBT304のSERDESは、フォーマットされたセルを受信し、本発明のBIA302に転送できるように直列化する。プロセスは、特に指示がないかぎり先へ進む。
【0193】
図23A〜23Bにおいて、詳細流れ図は、本発明の一態様によるバス・トランスレータの符号化プロセスを示している。図23A〜23Bのプロセスは段階2302から開始し、ただちに段階2304に進む。
【0194】
段階2304で、IBT304は、それがパケットを受信するポートの種類を判定する。プロセスはただちに段階2306に進む。
【0195】
段階2306で、IBT304は、ポートの種類が、個々の種類であるか、またはいくつかの種類の組合せであるかにかかわらず、維持できるしきい値を超えているかどうかを判定する。言い換えれば、IBT304は、それが内部速度最大値に達することなく着信パケットの回線速度に一致させることができるかどうかをチェックする。一致させることができる場合、プロセスは段階2310に進む。一致させることができない場合、プロセスは段階2308に進む。
【0196】
段階2308で、IBT304がその最高レベルで動作することになると判定したと仮定すると、IBT304は、プロセスの後の段階でフォーマットされ転送されるセルの数をIBT304が減らすのを可能にする可変セル・サイズを選択する。一態様では、セル・フォーマットにより、受信された1つまたは複数のパケットの各々の整数倍数のセルが与えられる。他の態様では、IBT304は、パケットが完成するまで最大長のセルを供給できるようにする可変セル・サイズを与えるセル・フォーマットを選択する。たとえば、所与のパケットが2.3セル長である場合、3つのセルがフォーマットされるが、第3のセルは前の2つのセルのサイズの3分の1である。プロセスはただちに段階2312に進む。
【0197】
IBT304は、段階2310で、その最高レベルでは動作しないと判定した場合、IBT304がより低い処理オーバヘッドで情報を処理できるようになる一定のセル・サイズを選択する。プロセスはただちに段階2312に進む。
【0198】
段階2312で、IBT304は1つまたは複数のパケットを受信する。プロセスはただちに段階2314に進む。
【0199】
段階2314で、IBT304は1つまたは複数のパケットの各パケットの制御情報を解析する。プロセスはただちに段階2316に進む。
【0200】
段階2316で、IBT304は、1つまたは複数のパケットの各々に関するスロット・状態情報を判定する。一態様では、スロット・状態情報は、部分的に制御情報、すなわち、1つまたは複数のパケットの各々の解析によって得られた制御情報から判定される。プロセスはただちに段階2318に進む。
【0201】
段階2318で、IBT304は、スロット・状態情報を格納する。プロセスはただちに段階2320に進む。
【0202】
段階2320で、IBT304は、1つまたは複数のパケットの各パケットのペイロードを解析し、それに含まれているデータを得る。プロセスはただちに段階2322に進む。
【0203】
段階2322で、IBT304は、1つまたは複数のパケットの各々の解析によって得られたデータを格納する。プロセスはただちに段階2324に進む。
【0204】
段階2324で、IBT304は制御情報にアクセスする。一態様では、IBT304のセル・エンコーダは、IBT304のメモリ・プールにアクセスして制御情報を得る。プロセスはただちに段階2326に進む。
【0205】
段階2326で、IBT304は1つまたは複数のパケットの各々の解析によって得られたデータにアクセスする。一態様では、IBT304のセル・エンコーダは、IBT304のメモリ・プールにアクセスしてこの情報を得る。プロセスはただちに段階2328に進む。
【0206】
段階2328で、IBT304は、現在構築されているセルの始めに特殊文字を挿入することによって各セルを構築する。一態様では、特殊文字はK0である。プロセスはただちに段階2330に進む。
【0207】
段階2330で、IBT304はスロット情報を挿入する。一態様では、IBT304は、スペース2194のような次のレーンにスロット情報を挿入する。プロセスはただちに段階2332に進む。
【0208】
段階2332で、IBT304は状態情報を挿入する。一態様では、IBT304は、予約ビット2196aのような、スロット情報に使用されるレーンの次のレーンに状態情報を挿入する。プロセスはただちに段階2334に進む。
【0209】
段階2334で、IBT304はデータを挿入する。プロセスはただちに段階2336に進む。
【0210】
段階2336で、IBT304は、フォーマットすべき追加のデータがあるかどうかを判定する。たとえば、所与のパケットに残りのデータがあるものとする。この場合、プロセスは段階2328に戻る。残りのデータがない場合、プロセスはただちに段階2338に進む。
【0211】
段階2338で、IBT304は(1つまたは複数のセルの)セル送信の終りを示す特殊文字を挿入する。一態様では、最後のセルが送信されたときの特殊文字はK1である。プロセスはただちに段階2340に進む。
【0212】
段階2340で、IBT304はセルを転送する。プロセスは、特に指示がないかぎり先へ進む。
【0213】
図24において、流れ図は、本発明の一態様によるバス・トランスレータの解読プロセスを示している。図24のプロセスは段階2402から始まり、ただちに段階2404に進む。
【0214】
段階2404で、IBT304は1つまたは複数のセルを受信する。一態様では、セルは、IBT304のSERDESによって受信され、IBT304のセル・デコーダに転送される。他の態様では、IBT304のSERDESは、セルの適切な順序を維持できるようにセルを一時保持する同期バッファまたはキューにセルを転送する。これらの段階については以下に、段階2406および2408に関して説明する。プロセスはただちに段階2406に進む。
【0215】
段階2406で、IBT304は1つまたは複数のセルを適切な順序に同期させる。プロセスはただちに段階2408に進む。
【0216】
段階2408で、IBT304は、任意に1つまたは複数のセルをチェックし、これらのセルがその適切な順序にあるかどうかを判定する。
【0217】
一態様では、段階2506、2508、および2510は同期FIFOによって実行される。プロセスはただちに段階2410に進む。
【0218】
段階2410で、IBT304は1つまたは複数のセルを解析して制御情報およびペイロード・データを得るプロセスはただちに段階2412に進む。
【0219】
段階2412で、IBT304は制御情報およびペイロード・データを格納する。プロセスはただちに段階2414に進む。
【0220】
段階2414で、IBT304は情報を1つまたは複数のパケットにフォーマットする。プロセスはただちに段階2416に進む。
【0221】
段階2416で、IBT304は1つまたは複数のパケットを転送する。プロセスは、特に指示がないかぎり先へ進む。
【0222】
図25A〜25Bには、本発明の一態様によるバス・トランスレータの解読プロセスの詳細流れ図が示されている。図25A〜25Bのプロセスは段階2502から始まり、ただちに段階2504に進む。
【0223】
段階2504で、IBT304は1つまたは複数のセルを受信する。プロセスはただちに段階2506に進む。
【0224】
段階2506で、IBT304は任意に1つまたは複数のセルをキューに格納する。プロセスはただちに段階2508に進む。
【0225】
段階2508で、IBT304は、セルが適切な順序で到着しているかを任意に判定する。適切な順序で到着している場合、プロセスはただちに段階2512に進む。適切な順序で到着していない場合、プロセスはただちに段階2510に進む。
【0226】
段階2510で、IBT304は、適切な順序が回復されるまで1つまたは複数のセルのうちの1つまたは複数を保持する。一態様では、セルが失われた場合、IBT304は、本明細書で説明するようにエラー制御機能を実行し、転送を中断し、かつ/または転送を再開させる。プロセスはただちに段階2514に進む。
【0227】
段階2512で、IBT304はセルを解析して制御情報を得る。プロセスはただちに段階2514に進む。
【0228】
段階2514で、IBT304はスロット・状態情報を判定する。プロセスはただちに段階2516に進む。
【0229】
段階2516で、IBT304はスロット・状態情報を格納する。プロセスはただちに段階2518に進む。
【0230】
一態様では、状態・スロット情報は、以下の表に示されているように構成情報を含む。
【0231】
一態様では、IBT304は構成レジスタを有している。構成レジスタは、バックプレーンおよびIPC/IGC宛先スロットをイネーブルするのに用いられる。
【0232】
段階2518で、IBT304はセルを解析してデータを得る。プロセスはただちに段階2520に進む。
【0233】
段階2520で、IBT304は、1つまたは複数のセルの各々の解析によって得られたデータを格納する。プロセスはただちに段階2522に進む。
【0234】
段階2522で、IBT304は制御情報にアクセスする。プロセスはただちに段階2524に進む。
【0235】
段階2524で、IBT304はデータにアクセスする。プロセスはただちに段階2526に進む。
【0236】
段階2526で、IBT304は1つまたは複数のパケットを形成する。プロセスはただちに段階2528に進む。
【0237】
段階2528で、IBT304は1つまたは複数のパケットを転送する。プロセスは、特に指示がないかぎり先へ進む。
【0238】
T.管理プロセスおよびエラー制御
この節では、バックプレーン内のシリアル・リンクおよびクロス・ポイント・スイッチで起こる可能性のあるエラー状態と、本発明の様々なエラー制御態様について説明する。本発明の様々な回復ルーチンおよびリセット・ルーチンについても説明する。
【0239】
本明細書で説明するルーチンは一般に、以下の性質を有するエラーを検出し、防止し、そのようなエラーから回復するように構成される。
【0240】
1)リンク・エラー:リンク・エラーは、SERDES内のビット・エラーまたはバイト整列問題の結果として起こる。クロックがデータ・ストリームから回復されるので、十分なデータ遷移がない場合にバイト整列問題が起こる可能性がある。ビット・エラーは回線上の外部ノイズの結果として起こる可能性がある。SERDESは、レーン1のSOP文字などの例外条件を検出することもでき、そのような条件をリンク・エラーとしてマークすることができる。
【0241】
2)レーン同期エラー:レーンは、10Gbps SERDESを構成する4つのシリアル・リンク間の1つのシリアル・リンクとして定義される。本明細書の他の個所で説明するように、統合された10Gbpsストリームがコア論理に与えられるように伝送線スキューを補償して各レーンを同期させるように、SERDESコア内に4つの深いFIFOがある。FIFOがオーバフローまたはアンダーフローし、その結果レーン同期エラーが起こる可能性がある。レーン同期シーケンスが整列問題を引き起こす場合もある。
【0242】
3)ストライプ同期エラー:ストライプ同期エラーとは、本発明による切替えファブリックを介して複数のストライプにわたって送信されるデータのワイド・セルのフローにおけるエラーを指す。このようなストライプ同期エラー(ストライプ同期エラー状態または単にエラー状態とも呼ばれる)は、クロス・ポイントに至るシリアル・パイプまたはクロス・ポイントからのシリアル・パイプのリンク・エラーまたはクロス・ポイント自体のエラーによって起こる可能性がある。
【0243】
一態様では、受信側BIAは、送信元およびストライプに応じてソートされる深いFIFO(56個のFIFOや64個のFIFOなど)を含む。ストライプ同期エラーは、FIFOを監視し、ストライプ化データ・パス内の1つまたは複数のFIFOのオーバフローおよび/またはアンダーフローを検出することによって検出することができる。他の状況では、各ストライプの同期がまったくとれなくなることがある。一回復態様では、いくつかまたはすべてのXPNTモジュールが独立に調停を行い、すなわち、各XPNTモジュールが、本明細書の他の個所で説明するように独立に動作し、影響を受けるFIFOをクリアして、既知の状態から回復する。
【0244】
当業者には少なくとも本明細書の開示に基づいて明らかになるように、他のエラー状態およびエラー状態の組合せが可能である。
【0245】
これらのエラー状態を検出するルーチンおよび防止するルーチンについて、以下に概略的に説明し、その後、本発明の詳細な態様に関して説明する。
【0246】
一般に、本発明は、図26に示されているようにバス・トランスレータを管理することができる。図26において、流れ図は、本発明の一態様によるバス・トランスレータの管理プロセスを示している。図26のプロセスは段階2602から始まり、ただちに段階2604に進む。
【0247】
段階2604で、IBT304は内部構成要素のステータスを判定する。プロセスはただちに段階2606に進む。
【0248】
段階2606で、IBT304は、その外部構成要素とのリンクのステータスを判定する。プロセスはただちに段階2608に進む。
【0249】
段階2608で、IBT304は、内部構成要素と外部構成要素の動作を監視する。プロセスはただちに段階2610に進む。
【0250】
段階2610で、IBT304は、管理コマンド用のレジスタを監視する。プロセスはただちに段階2612に進む。
【0251】
段階2612で、IBT304は、指示に応じて所与の構成要素のリセットを実行する。プロセスはただちに段階2614に進む。
【0252】
段階2614で、IBT304は所与の構成要素の動作を構成する。プロセスは、特に指示がないかぎり先へ進む。
【0253】
一態様では、BIA302の受信側で検出されたあらゆるエラーが、BIA302からXPNT202上で受信されるエラーに関して本明細書で説明するエラー制御方法と同一の方法で処理される。ある条件の下ではBIA302が宛先スロットを知ることができない動作態様では、BIA302によって以下のプロセスが実行される。
【0254】
a.パケットのアボート(AOP)信号をすべてのスロットに送信する。
【0255】
b.エラーが解消され、すなわち、バッファがクリアまたはフラッシュされるのを待つ。
【0256】
c.バッファがクリアされた後、SOPによって第1のK0トークンに同期してデータの受付けを開始する。
【0257】
IBT304の受信側でエラーが検出された場合、エラーは、それがBIA302によってIBT304から見られている場合と同様に処理される。以下のプロセスが使用される。
【0258】
a.下流側IPC/IGCのすべてのスロットにAOPを送信し、進行中のあらゆるパケットを終了させる。
【0259】
b.バッファが充填され、エラーを発生させたデータをクリアするのを待つ。
【0260】
c.エラーが解消された後(バッファがフラッシュされた後)K0トークンに同期してデータの受付けを開始する。
【0261】
(1)BIA管理モジュール
一態様では、図6の管理モジュール676は、本発明の監視・検出・補正機能を実行する。特に、管理モジュール676はストライプ同期エラーに対処する。図28Aに示されれているように、管理モジュール676はレベル・モニタ2806、ストライプ同期エラー検出器2808、制御文字(K2)存在トラッカ2810、およびフロー・コントローラ2812を含んでよい。レベル・モニタ2806は、FIFOをチェックし、各FIFO内のデータ量および/または特定のストライプおよび送信元(スロットや、スロットの特定の送信元パケット・プロセッサなど)に関連するグループFIFO内のデータ量を判定する。
【0262】
ストライプ同期エラー検出器2808は、レベル・モニタ2806によって監視されたFIFOの状態に基づいてストライプ同期エラーを検出する。ストライプ同期エラーは、本発明による切替えファブリックを介して複数のストライプにわたって送信されるデータのワイド・セルのフローにおける任意のエラーであってよい。このようなストライプ同期エラーは、クロス・ポイントに至るシリアル・パイプまたはクロス・ポイントからのシリアル・パイプにおけるリンク・エラーあるいはクロス・ポイント自体のエラーによるエラーであってよい。説明を明確にするために、送信側BIAからクロス・ポイントに至るシリアル・パイプのリンク・エラーを「着信リンク・エラー」と呼び、クロス・ポイントから受信側BIAに至るシリアル・パイプのリンク・エラーを「発信リンク・エラー」と呼ぶ。ストライプ同期エラーが検出されると、ストライプ同期エラー検出器2808は信号をフロー・コントローラ2812に送信する。フロー・コントローラ2812は次いで、適切な回復ルーチンを開始し、切替えファブリック内の各ストライプにわたるデータ・フローを再同期させる。特に、このような回復ルーチンは、切替えファブリック内の各ストライプにわたる制御文字(特殊K2文字など)を送信することを含んでよい。制御文字(K2)存在トラッカ2810は、BIAにおけるデータ・フローで受信される特殊K2文字を監視する。フロー・コントローラ2812は、管理モジュール676および管理モジュール内の各モジュールの制御論理も構成している。フロー・コントローラ2812により、管理モジュール676の各モジュールは、本発明の様々なFIFO、BIA、XPNT、および他の構成要素のステータスに関する情報を送受信することによって、本明細書で説明する各モジュールの機能を実行することができる。以下に、ストライプ同期エラーの検出およびこのエラーからの回復の例について、さらに、図28Bに関して説明する。
【0263】
図28Bは、本発明による、5つのクロス・ポイント(sXPNT)2856A〜2856Eを介してスロット2852に結合されたスロット2852、2854を有するスイッチ2800Bを示す図である。スロット2852は、1組の同期受信キューまたはFIFO2860を含んでいる。シリアル・リンク2853は、スロット2852とクロス・ポイント2856Aを結合している。シリアル・リンク2857は、クロス・ポイント2856Aとスロット2858を結合している。スロット2852、2854をそれぞれスロット0およびスロット1とも呼び、スロット2858をスロット2とも呼ぶ。説明を明確にするために、この例では2つのスロットのみが示されているが、他のスロットを追加することができる。
【0264】
データのワイド・セルがスロット0および1からストライプ0〜4にわたりそれぞれのクロス・ポイント2856A〜2856Eを介してスロット2858に送信される例を考える。スロット0 2852とxpnt0 2856Aの間のリンクが破壊されたときにある種のエラーが起こる可能性がある。このような場合、xpnt0 2856Aは、送信元スロット0 2852にエラー信号を送り返させる破壊されたリンクを検出する。これによってスロット0 2852は、トラフィックの送信を停止し、K2シーケンスを送出する。xpnt0 2856Aはすべての宛先にアボート・セル(AOP)を送信し、エラーが発生したことをこれらの宛先に通知することができる。一態様では、これはエラーが検出された直後に行われる。
【0265】
他の態様では、xpnt1 2856Bからxpnt4 2856Eが依然としてスロット0 2852およびスロット1 2854からスロット2 2858にデータを送信し、一方、スロット0 2852とxpnt0 2856Aの間でリンク2853が破壊されているためxpnt0 2856Aがスロット1 2854からのみデータを送信する状況が瞬間的に存在する。このため、ストライプ0/スロット1リンクに対応するスロット2 2858内の同期キューは、他のストライプよりも多くのデータをスロット1 2854から受信するためオーバフローする恐れがあり、ストライプ0/スロット0 2852に対応するスロット2 2858内のキューでは、このリンクが破壊されているためにアンダーフローが起こる恐れがある。図31は、スロット2内のFIFO 2862に存在するデータの各レベルにおいて着信リンク2853内のこのようなエラー状態がどれだけ明白であるかを示している。図31は、ストライプおよび送信元スロットによってソートされた10個のFIFO 2862を示している。この例では、5つのストライプ0〜4および2つのスロット0および1が示されている。図31に示されているように、着信リンク・エラーによって、ストライプ0/スロット1リンクに対応するスロット2 2858内の同期キューは、他のストライプよりも多くのデータをスロット1 2854から受信するためオーバフローする恐れがあり、ストライプ0/スロット0 2852に対応するスロット2 2858内のキューでは、リンク2853が破壊されているためにアンダーフローが起こる恐れがある。
【0266】
管理モジュール676は、以下のようにこの種のストリップ同期エラー条件を検出することができる。レベル・モニタ2806は各FIFO2862のレベルを監視する。ストライプ同期エラー検出器2808は次いで、格納されているFIFOのレベルにおけるオーバフローおよび/またはアンダーフロー条件の存在を検出する。着信リンク・エラーのこの例では、ストライプ同期エラー検出器2808は、ストライプ0/スロット0用のFIFOにおけるアンダーフロー条件およびストライプ0/スロット1用のFIFOにおけるオーバフロー条件の発生を検出する。ストライプ同期エラー検出器2808はフロー・コントローラ2812に信号を送信する。フロー・コントローラ2812は次いで、適切な回復ルーチンを開始し、切替えファブリック内の各ストライプにわたるデータ・フローを再同期させる。特に、このような回復ルーチンは、切替えファブリック内の各ストライプにわたるスロット0からの制御文字(特殊K2文字など)を送信することを含んでよい。制御文字(K2)存在トラッカ2810は、BIAにおけるデータ・フローで受信される特殊K2文字を監視する。
【0267】
上述の例では、スロット0 2852は、各キューが同期できるようにするK2シーケンスを送出できるときにはK2シーケンスを送出する。SOPと共にスロット0 2852から送信される第1のK0文字で同期が行われ、言い換えれば、K2の後の最初の新しいパケットに対する同期が行われる。スロット2 2858内のスロット1/ストライプ0に対応する同期キューがオーバフローする可能性があるので、スロット1 2854からのデータの送信を停止し、したがって、スロット0 2852リンクの障害の結果としてのスロット1 2854からのトラフィックが行われないようにし、スロット1 2854からのデータに対して同期を維持するフロー制御イベントがスロット2 2858からxpnt0 2856Aに送信される。
【0268】
他の例では、XPNT0 2856Aが動作を停止し、もはや動作できなくなる。このような場合、図28Bに示されているスイッチが故障する。後述のように、本発明の冗長スイッチ・ファブリックおよび冗長ファブリック・トランシーバ(RFT)が存在するため、システム全体は依然として機能する。このような場合、RFTは、リンク障害を検出することができ、以下に概略的に説明する各段階に従って他のスイッチのファブリックに切り替える。
【0269】
他の例では、xpnt0 2856Aとスロット2 2858の間のリンク2857が破壊される。このような場合、スロット2におけるBIAが破壊を検出する。一態様では、以下に本発明の態様に関して説明するように、BIAのRFTが破壊を検出する。BIAのフロー・コントローラ2812は、xpnt0 2856Aにフロー制御イベント/信号を送り返し、この信号がスロット0 2852、スロット1 2854、およびシステムに存在するあらゆるスロットに伝搬する。これによって送信元スロットはスロット2 2858へのトラフィックの送信を停止することができる。これらのスロットは依然として、スロット2 2858と同様の他の宛先スロットにトラフィックを送信することができる。一方、BIAは、それが受信している部分的なパケットを中断し、K2シーケンスがリンクを回復するのを待つ。本明細書で説明するように、BIAは、K2に続く最初のSOPに同期する。K2に続く最初のSOPの存在は、制御文字存在トラッカ2810によって検出することができる。
【0270】
管理モジュール676の機能について、さらに、図29に関して説明する。図29では、ストライプ化セル・トラフィックの同期を維持するルーチンを示す流れ図について説明する。
【0271】
段階2902で、モジュール676は、所定数のサイクルにわたってすべてのレーンにおいてストライプ化セルで共通の制御文字を送信する。一態様では、システムを介していくつかの共通制御文字が送信される。
【0272】
段階2904で、モジュール676は、ストライプ受信同期キューで受信された共通制御文字を評価する。モジュール676は、受信された共通制御文字を評価し、システムを再同期しているかどうかを判定する。
【0273】
段階2906で、モジュール676は再同期条件を判定する。システムが再同期している場合、ルーチンは段階2910に進む。システムが再同期していない場合、システムは段階2908に進む。一態様では、モジュール676は、FIFOがすべて空であるか、または同時にクリアされているかどうかを判定する。他の態様では、モジュール676は各FIFOの状態ビットをチェックする。
【0274】
段階2908で、モジュール676はエラー・メッセージまたはその他の管理信号を生成する。一態様では、モジュール676は、システムの他の構成要素が新たに回復措置を開始するようにエラー・メッセージを生成する。
【0275】
段階2910で、モジュール676は、段階2902に戻り、エラー条件またはルーチン2900を開始する管理コマンドを受信するのを待つ。
【0276】
モジュール676の他のルーチンが図30に示されている。図30において、流れ図(ルーチン)3000は、バックプレーン切替えファブリック内のクロス・ポイント・スイッチを介した非同期トラフィック・フローに対するルーチンを示している。一態様では、ルーチン3000によって、モジュール676は、ルーチン2900がいつ必要であるかを判定する。
【0277】
段階3002で、モジュール676はストライプ受信同期キューのレベルを監視する。一態様では、レベル・モニタ2806はモジュール676内でこの機能を実行する。
【0278】
段階3004で、モジュール676は、オーバフローおよび/またはアンダーフロー条件などの非同期キューしきい値が検出されたかどうかを判定する。一態様では、ストライプ同期エラー検出器2808はモジュール676内でこの機能を実行する。非同期キューしきい値が検出された場合、プロセスは段階3006に進む。非同期キューしきい値が検出されない場合、プロセスは段階3002に進む。一態様では、モジュール676が、他のシステムによって受信し将来の参照用に記録することのできるエラー・メッセージや信号を送信することはない。
【0279】
段階3006で、モジュール676は、非同期メッセージ、または同期が失われたことを本発明の他の構成要素に知らせる他の管理信号を生成する。一態様では、フロー・コントローラ2812は送信側SXPNTに信号を送り返し、この信号がさらにRFTに送り返され、RFTは、本明細書の他の個所で説明するように本発明のK2シーケンスをインスタンス化することができる。
【0280】
段階3008で、モジュール676は、すべてのレーンにわたるストライプ化セル・トラフィックに対する再同期ルーチンを開始する。一態様では、モジュール676は図29のルーチンを開始する。
【0281】
管理モジュール676、ならびにレベル・モニタ2806、ストライプ管理エラー検出器2808、制御文字(K2)存在トラッカ2810、およびフロー・コントローラ2812のうちのどれかをソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せで実施することができる。さらに、管理モジュール676、ならびにレベル・モニタ2806、ストライプ管理エラー検出器2808、制御文字(K2)存在トラッカ2810、およびフロー・コントローラ2812の各々で実行される機能について、都合上モジュールまたはブロックに関して説明する。しかし、このようなモジュールの境界およびモジュール間の機能の分散は例示的なものであり、本発明を制限するものではない。管理モジュール676、ならびにレベル・モニタ2806、ストライプ管理エラー検出器2808、制御文字(K2)存在トラッカ2810、およびフロー・コントローラ2812の各々の機能を1つのモジュールとして組み合わせることも、モジュールの任意の組合せにおいて分散させることもできる。
【0282】
(2)冗長ファブリック・トランシーバ
以下に、本発明の他の詳細な態様について、モジュール676の機能を実現する1つまたは複数の冗長ファブリック・トランシーバ(RFT)の実現態様に関して説明する。
【0283】
本発明の態様によれば、本明細書で説明する切替えシステムにおいて切替え冗長性をもたらすために1つのSBIA ASICと2つの切替えファブリック・モジュール(SFM)との間にRFT ASICが設けられる。
【0284】
図32A〜32Bはスイッチ・ファブリックの基本的な接続を示している。図32Aにおいて、図3200Aは非冗長切替えシステムを示している。ブレードA 3202はスイッチA 3204を介してブレードA 3206と通信する。ブレードAとブレードBは共に、入出トラフィックに対処する。図32Bで、図3200Bは冗長切替えシステムを示している。ブレードA 3202は、それぞれ2つのスイッチA 3204およびB 3205を介してブレードB 3206と通信する。マルチプレクサ(MUX)3208は、スイッチ3204および3205からの2つの信号の一方を選択する。
【0285】
図32Bの冗長切替えの場合、ファブリック・アクティブ3210はすべてのスレーブ・モジュール(入出)に信号を供給する。一態様では、バックプレーン上でポイント・ツー・ポイント・シリアル・リンクが使用される。この冗長手法は、非冗長手法の2倍のシリアル・リンクを使用する。したがって、入モジュール3202は、アクティブSFMに着信トラフィックを送信し、待機SFMにアイドル・トラフィック・パターンを送信する。一態様では、アクティブSFMはスイッチ3204であり、待機SFMはスイッチ3205である。出ブレード3206はこれらのSFMからトラフィックの2つのデータ・パスを受信する。出ブレード3206は、ファブリック・アクティブ3210の指示に応じてアクティブ信号を選択する。
【0286】
したがって、本発明のRFTは、冗長切替えを行い、以下のタスク、すなわち、i)マルチプレクサおよびデマルチプレクサとしての動作、ii)フロー制御に対処するための、符号化された送信元/宛先スロット情報に基づくトラフィックのソート、iii)フロー制御生成、iv)SERDES、およびv)エラー処理を実行することができる。このため、RFTは、すでに本明細書でモジュール676に関して説明した機能を実行する本発明の実現態様である。
【0287】
図33Aは、RFTが冗長システムで実施される一態様を示す詳細図3300Aである。図示のように、切替えブレード(SFM-A)3302および切替えブレード(SFM-B)3304は、入出ブレード(スレーブ・モジュール)3308に結合されたバックプレーン3306に結合されている。ブレード3302および3304はそれぞれ、データ・パスを介してデータを送受信するSXPNTを含んでいる。図33Aに示されているように、ブレード3302はSXPNT3310A〜3310Eを含み、ブレード3304はSXPNT3312A〜3312Eを含んでいる。SXPNT3310A〜3310Eおよび3312A〜3312Eの各群はそれぞれ、データ・パス3311A〜3311Eおよび3313A〜3313Eに結合され、バックプレーン接続部3306を介してブレード3308内の1つまたは複数のRFT 3316A〜3316Eに結合されている。
【0288】
ブレード3308内に、一態様では、受信される各ストライプごとに1つのRFTがある。RFT3316A〜3316Eは、受信されたデータをSBIA3320に転送する。他の態様では、1つのRFTはXAUIリンク(たとえば、15個のリンク、切替えブレードからの10個のリンク、SBIAからの5個のリンク)のブリッジを形成する。ある信頼できる態様では各XAUIリンクごとに4個のSERDESが必要であるため、このような実現態様では数十個のSERDESが必要になる可能性が高い。さらに、使用するRFTが1つであると、この1つのRFTがすべてのトラフィックに対処するのでシステムにバルヌラビリティが導入される可能性がある。したがって、5個のRFTモジュールの図示の態様では、処理作業負荷が論理的に分割される。
【0289】
図33Bは、本発明の一態様によるRFTの図3300Bである。図33Bには、SXPNT3310Aおよび3312Aからのストライプ0トラフィックに対してRFT3316Aが実施されるのと同様にRFT3300Bが実施されることが示されている。本明細書の他の個所で説明するように、SERDES3350および3352は、データ・インタフェースを形成し、図33Bに示されているように、それぞれSYNCHQ FIFO 3354および3356にトラフィックを経路指定する。
【0290】
一態様では、受信されたシリアル・データデータは、本明細書の他の個所で説明するように、SERDESによってパラレル・データに変換される。このデータと共に、着信データ・ストリームからクロックを回復することができる。したがって、各SERDESは、データから回復されたクロックを生成する。一態様では、FIFO3354および3356は、FIFOデータ・ストリームに対してアイドル文字の追加および/または削除を行うことによって、データの送受信に対するクロック補償を行う。FIFO3354とFIFO3356は共にMUX3358にデータを供給する。MUX3358は着信トラフィックを組み合わせ、発信トラフィックを分割し、冗長ストライプにデータ/制御信号とフロー制御信号の両方を与える。
【0291】
一態様では、すべてのトラフィックはアップリンク/ダウンリンク論理用の対称アーキテクチャに経路指定される。このアーキテクチャは、構成要素3360、3362、および3364、さらに構成要素3366、3368、および3370によって図33Bに示されている。BIA_RX3370およびBP_RX3360は、直列化解除され同期させられたパケット・データをFIFOから受信する。SYNCQ FIFO3372は、上述のFIFO3354および3356と同じ機能を実行するが、SERDES3374に関しては、BIA_RX3370が、データを、符号化された宛先スロット番号に基づいてUPLINK_RAM3368内に7つの論理データ・キューとしてソートする(たとえば、7つのキューはそれぞれの異なる宛先を有するパケットをソートするのに用いられる)。同様に、BP_PXは、データを、符号化された送信元スロット番号に基づいてDOWNLINK_RAM3362内にソートする。
【0292】
一態様では、SERDES3350、3352、および3374における呼出し時間は、上述の7つの論理データ・キューでトラフィックを減速させることによって補償される。
【0293】
BIA_TX3364モジュールとBP_TX3366モジュールは共に、それぞれダウンリンク/アップリンクRAM3362および3368からの読取り動作を調停し、送信されるデータを構成する。
【0294】
RFTレジスタ3376は、モジュール676から管理できる内部レジスタにアクセスすることができる。RFT3300Bの各モジュールの動作は、モジュール3376の各レジスタに設定されたパラメータに依存する。一態様では、モジュール3376は、RFT3300Bの各モジュールのステータスに関する情報をモジュール676に与える。
【0295】
上記に図33Aに関して説明したように、バックプレーンは切替えファブリック・モジュールとスレーブ・モジュールとの接続を確立する。一態様では、この接続は、i)シリアルTXとシリアルRXの対、ii)フロー制御データおよび同期、iii)クロス・ポイント・エラー信号、インターセプト信号、ファブリック・アクティブ信号などであるが、これらに限定されない制御信号、およびiv)クロック分散の各信号を含む。
【0296】
パケット符号化方式について、上記のI節およびJ節に関して詳しく説明し、ストライピング方式を図15Aに関して例示した。特にRFTに注目し、図26、図29、および図30のプロセスについて、本発明のRFTに関して説明した。
【0297】
一態様では、バックプレーンで転送されるペイロードの最大サイズは160バイトである(148バイトのデータ・マックス、10バイトの「セルの始め」(Start of Cell:SOC)制御情報、および2つの予約バイト)。この態様では、完全な160バイト転送を「セル」と呼ぶ。本明細書の他の個所で説明するように、セルはこの態様によって制限されない。したがって、1サイクルは単一の3.2nsクロック・パルス(すなわち、312.5MHZ)である。セル転送は、8連続サイクルにおいて20バイト「ブロック」で(図15Aに示されているように)行うことができる。
【0298】
「状態」バイトは、以下の表に示されているように割り当てることができる。
【0299】
この表の情報が、すでに図25A〜25Bに関し、IBTからBIAに関して説明した情報に類似していることに留意されたい。ここでは、BIAからXPNTについて議論する。各態様において、符号化方式用の3つの特殊K文字、すなわち、K0(SOC)、K1(EOP)、およびK2(ストライプ同期)が存在してよい。
【0300】
K0は、すべての5つのストライプにわたるセルの第1のブロックである「セルの始め」を示す。
【0301】
K1は、セルの任意のブロックに現れることのできる「パケットの終り」を示す。これはRFTおよびSXPNTに対して透過的である。
【0302】
K2は、ストライプ同期シーケンスを符号化するのに用いられる。ストライプ同期では、すべてのレーンおよびすべてのストライプにわたってK2文字を送信する必要がある。一態様では、特殊文字は112回送信される。その後、同期キューのすべてのストライプが「イン・シンク(同期)」とマーク付けされる。数112が選択されたのは、それがこの態様では同期キューの深さに一致し、したがって、最後のK2が検出された後でキューに残っているデータがない場合、これをストライプ同期エラーとみなすことができるからである。本発明はこの態様によって制限されず、同期キューは異なる深さを有してもよい。
【0303】
当業者には本明細書に記載された開示に基づいて認識されるように、特殊文字を実施する機能は同期キューの充填/フラッシュである。一態様では、SBIAは、図34Aに示されているパターンを112回送信する。
【0304】
一態様では、状態フィールドが送信元スロット番号で符号化されると共に、セルがシーケンスの始めに近いかまたは終りをに近いかを示すのに1ビットが用いられる。たとえば、状態フィールドを送信元スロット番号で符号化することができると共に、セルがストライプ・シーケンスの(112回のうちの)最初の96回の転送の途中であるかどうか、またはこれが(112回のうちの)最後の16回のK2転送であり、その後有効なデータが送信されるかどうかを示すのに1ビットが用いられる。
【0305】
K2シーケンス同期ルーチンは、図34Bのフローチャート3450に示されている。K2シーケンスは、SBIAにおいて5つのストライプを同期させるために、連続するサイクルで到着する必要がある。これを保証するために、以下のルーチンが開始される。
【0306】
段階3452で、送信元SBIAがRFT/SXPNTの準備完了状態についてチェックする。
【0307】
段階3454で、RFT/SXPNTがその状態を返す。RFT/SXPNTの準備が完了している場合、ルーチンは段階3456に進む。RFT/SXPNTの準備が完了していない場合、ルーチンは段階3452に戻る。一態様では、送信元SBIAは所定の期間の後で再チェックを行うことができる。
【0308】
段階3456で、送信元SBIAはRFT/SXPNTにアイドル文字を送信する。一態様では、送信元SBIAは、宛先SBIAのバッファから残りのデータを引き出すのに十分な時間を宛先SBIAに与えるのに十分なアイドル文字を送信する。一態様では、送信元SBIAは768x2語のアイドル文字を送信する。
【0309】
段階3458で、送信元SBIAはRFT/SXPNTに特殊文字(K2)を送信する。一態様では、送信元スロット用のRFT/SXPNT内のFIFOは、K2が送信されるまでに空になるべきである。RFT/SXPNTは、K2シーケンスを受信したときに、FIFOが空でない場合、このシーケンスをSBIAが受信したデータのエラーとみなす。RFTは、データを首尾よく受信すると、K2シーケンスを送信する前に、SXPNTがデータを受信する準備が完了しているかどうかをチェックする。一態様では、K2シーケンスは、一度RFTからSXPNTに送信されると、シーケンス全体が送信されるまで停止しない。一態様では、112語のK2文字が送信される。
【0310】
段階3460、3462、および3464は上述の状況を示している。
【0311】
段階3466で、送信元SBIAは、RFT/SXPNTにさらにアイドル文字を送信し、バッファから残りのK2文字をクリアする。一態様では、送信元SBIAは512x2語のアイドル文字を送信する。
【0312】
一態様では、FIFOをクリアし本発明のシステムを再同期させるためにモジュール676によって周期的にルーチン3450が実行される。
【0313】
図34Bの議論では、SXPNTおよびSBIAのクロックの重要性が強調されている。というのは、このクロックは、ルーチン3450を適切に実行するために厳しいジッタおよび立上り時間要件を維持すべきであるからである。さらに、RFTおよびSXPNTのストライプ化性のため、常に同期を維持する必要がある。したがって、本明細書で説明するルーチン、およびエラー検出および回復のためのこれらのルーチンの様々な態様は、特に重要である。
【0314】
本発明の態様では、同期システムと非同期システムの両方を実施することができる。非同期システムでは、ファブリックを含むすべてのブレードが同じクロック送信元を使用する。クロック送信元は、ファブリック上に位置することができ、バックプレーンが純粋に受動的な構成要素として働くようにバックプレーンを横切って各スレーブ・モジュールに分散させることができる。
【0315】
冗長スイッチ・ファブリック・システムの一態様では、2つのシステム・クロックを2つのスイッチ・ファブリック・モジュールから1つのスレーブ・モジュールに送ることができる。スレーブ・モジュール上の回路はマスタ・クロックとして働く。マスタ・クロックがフェールオーバ・イベントで障害を起こした場合、他のクロックがマスタ・クロックになり、切替えはスレーブ・モジュール上の構成要素に対して透過的であるべきである。
【0316】
非同期システムでは、システムはブレード間でクロック・ドメインを結合解除する。このことは、今やあらゆるブレードがそれ自体のクロック送信元を有することを意味する。非同期システムを構成する目的は、MUXによって供給されるクロック信号によって課される厳しいジッタ要件をなくすことである。しかし、このシステムは、(スレーブ・モジュールにおける)両端でのインタフェース信号の再同期に関する新しい問題を引き起こす。
【0317】
SERDES信号の場合、すでに上記で説明したように、TXおよびRXがそれぞれの異なるクロック送信元を使用するときにRXクロック補償を行うある種の組込み機能がある。しかし、RX補償をイネーブルすると、SERDES内部の呼出し時間が長くなる。
【0318】
上述のフロー制御信号に関して、システムはファブリック上で制御論理を実施し、時分割多重(TDM)信号をパラレル信号に解読し、中央準備完了同期信号を不要にする。詳細な態様について以下に説明する。
【0319】
同期フロー制御実現態様の場合、SXPNTとRFTの間を通るフロー制御情報はTDMであり、共通同期信号によってタイム・スロットの始めを定める必要がある。クロック分散を追跡する中央同期信号は、システムのロバストネスを高める。
【0320】
図35は、RFTを含む同期フロー制御態様のブロック図3500である。ブレード・モジュール3502は5つのSXPNT3508A〜3508Eを含んでいる。フロー・コントローラ・モジュール3506は、本明細書で説明するように様々な信号を生成する。一態様では、モジュール3506はシステムの各構成要素にクロック信号を供給する。ブレード・モジュール3504は、バックプレーン接続部を横切ってRFT3510A〜3510Eに至る信号を受信する。RFTはSBIA3512との間で信号を送受信する。フロー・コントローラ・モジュール3504はRFT3510A〜3510EのそれぞれおよびSBIA3512にバックプレーンを横切って連結されている。
【0321】
一態様では、バックプレーンにわたる2組のフロー制御信号がある。他の態様では、2つよりも多くの信号がフロー制御に使用される。前者の態様では、以下の準備完了信号が実施される。
【0322】
a)受信準備完了:各SBIA3512は、特定のストライプにそれぞれの特定のスロットからパケットを送信するのを停止させる、各RFT3510A〜3510Eの専用1ビット準備完了信号を有する。各RFT3510A〜3510Eは、内部受信FIFO(たとえば、ダウンリンクRAM)内の利用可能な空間に基づいて特定の送信元SXPNT3508A〜3508Eからのパケットの受信を制御する専用1ビット準備完了信号も送信する。
【0323】
b)送信準備完了:各SXPNTは、宛先スロットでの輻輳状況を通知する、各RFT3510A〜3510Eの専用2ビット準備完了信号を有する。あらゆるSBIA3512は、宛先スロット用のトラフィックを停止する2ビット準備完了信号を各RFT3510A〜RFT3510Eから受信する。
【0324】
一態様では、RFT/SXPNTとRFT/SBIAの間のすべての送信準備完了信号および受信準備完了信号を同期させるのに共通同期信号が用いられる。たとえば、制限としてではなく、送信準備完了信号は、2ビットを用いて4つのスロット(8サイクル)における7つの状態を符号化し、受信準備完了信号は、1ビットのみを用いて7つのスロット(14サイクル)における7つの状態を符号化する。共通同期は、8と14の最小公倍数である56サイクルごとの同期パルスであってよい。もちろん、本発明はこれらのサイクル数に限らず、当業者には、異なる持続時間を実施できることが認識されよう。
【0325】
一態様では、各状態についてのタイム・スロットは、コア周波数の2分の1が78.125MHzであり、すなわち、コア周波数が156.25MHzである場合には、78.125MHzに設定することができる。タイム・スロットに2サイクル手法を用いる理由は、SBIA準備完了レジスタとSXPNT準備完了レジスタとの間のワイヤ/セル遅延に2サイクルのマージンが与えられるからである。
【0326】
図36は、SBIAがSXPNTからの準備完了信号をどのように解釈するかの時間流れ図である。同期パルスを用いてSBIAとSXPNTの両方の内部カウンタがリセットされる。例示のために図36に示されているように、カウンタの値が55または0であるとき、SXPNTは、スロット1および0に対応する準備完了状態を内部で送出する。カウンタが1または2に等しいとき、SXPNTはスロット2準備完了信号およびスロット3準備完了信号を符号化し、以下同様の動作が実行される。このパターンは8サイクルごとに繰り返される。言い換えれば、あらゆるスロットは、2つの同期パルスの間で7回符号化される。
【0327】
詳細な態様では、3サイクル後に、準備完了状態信号はバックプレーンを横切る。次いで、SBIAは準備完了信号に別の2サイクルの呼出し時間を付加する。したがって、カウントが5に等しいとき準備完了信号はSBIA内部にラッチされる。これによって、パスはSXPNTからSBIAまでの真のマルチサイクル・パスになる。
【0328】
RFTがSBIAとSXPNTの間に配置されたとき、フロー制御動作はそのまま実行される。しかし、SBIA/RFTおよびSXPNT/RFTの呼出し時間は、ハードウェア・トレースにおいて追加のマージンが残るようにプログラム可能である。したがって、本発明の態様では、システムの呼出し時間レベルを事前に決定し、したがって、システムの動作パラメータをよりうまく予想するためにオフセットを導入することができる。
【0329】
図35と同様に、図37は、非同期フロー制御を有する本発明の切替えシステムを示している。システム3700は、SXPNT3708A〜3708Eを有するブレード・モジュール3702と、RFT3714A〜3714Eを有するブレード・モジュールとを含んでいる。一態様では、図35と同様に、フロー・コントローラ・モジュール3706および3707はシステムの構成要素にクロック信号を供給することができる。
【0330】
SXPNT3708A〜3708EとRFT3714A〜3714Eとの間のフロー制御は、ブレード3702内の制御論理モジュール3710およびブレード3704内のモジュール3712を介して非同期に変更することができる。一態様では、制御論理モジュール3710は、ファブリック上に位置し、SXPNT3708A〜3708Eの同期フロー制御インタフェースとして働く。制御論理モジュール3710は、様々な信号を受信し、解釈し、送信することができる。一態様では、モジュール3710は以下の動作を実行する。
【0331】
a)2ビット送信準備完了信号を各SXPNT3708A〜3708Eからの7ビット準備完了信号として解読し、これらの準備完了信号を組み合わせて各RFT3714A〜3714Eへの7ビット送信スロット準備完了信号を生成する。
【0332】
「組み合わせる」とは、特定のスロットに対する準備が完了していないSXPNTがある場合、どのRFTもそのスロット用のパケットを送信することを許可されないことを意味する。これは、ストライプ間に独立のフロー制御を有する同期システムとは異なる。
【0333】
b)やはり5つのストライプからの組合せ準備完了信号であり、5つのSXPNT用の1ビット受信準備完了信号に符号化されている7ビット受信スロット準備完了信号を、RFTから受信する。
【0334】
本明細書で説明するRFT態様に関して、シリアル・リンクおよびバックプレーンで起こる可能性のあるエラー状態と、防止措置および回復措置について説明する。さらに、あるスイッチ・ブレードから他のスイッチ・ブレードに変更するフェールオーバ手順の態様について説明する。
【0335】
本発明のRFTモジュールは上述のエラーの受信側に位置してよい。RFTチップによって検出できるエラーの種類には以下のものが含まれる。
【0336】
a)リンク・エラー:これは、ビット・エラーまたはバイト整列エラーの結果として起こる可能性がある。一態様では、SERDESは、リンク・エラーを示す「/E」特殊文字(エラー通知文字)をパラレル・データ・パス上で送信すべきである。
【0337】
b)レーン同期エラー:これは同期FIFOオーバフロー/アンダーフローである。一態様では、SERDESは、受信側レーン同期エラーを示す「GLINK」信号を送信すべきである。
【0338】
c)フォーマット・エラー:これは、セルのフォーマットが正しくないために起こる。一態様では、レーン0以外のレーンに現れる「/K0」特殊文字がフォーマット・エラーを示す。
【0339】
d)XPNTエラー: これは5つのSXPNTチップからのワイヤまたは信号である。一態様では、この信号は、SXPNTにエラーがあるか、または受信データに問題があることを示している。
【0340】
RFTエラー処理ルーチンは前述のルーチン(たとえば、図29、図30、および図34Bのルーチン)に適合する。
【0341】
一態様では、SBIAからRFTへの送信において、RFTは、SBIAから受信されたデータにエラーを検出する。このエラーは、リンク・エラー、レーン同期エラー、およびフォーマット・エラーを含んでよい。エラーが検出された後、以下の手順(段階1〜4)を適用してエラーから回復することができる。
【0342】
1)SBIAにRFTエラー信号を送信する。SBIAは、セル境界でのデータの送信を停止し、RFTによってRFTエラーがアサート解除されるまでレーン同期シーケンスを繰り返す。一態様では、アサート解除された後、(たとえば、図34Bに関して説明したように)すべてのスロットに対してストライプ同期シーケンスが送出される。
【0343】
2)すべてのスロットにAOPを送信しアップリンクRAMをフラッシュする。受信されたデータでエラーが検出されたときは、符号化された宛先スロットが誤動作している可能性がある。したがって、すべての宛先スロットにアボート信号が送信され、すでに送信されたパケットが破棄される。
【0344】
3)バッファがクリアされ、したがってエラーがクリアされるのを待つ。
【0345】
4)ストライプ同期シーケンスおよびSOPがデータの受付けを開始するのを待つ。
【0346】
一態様では、SXPNTからRFTへの送信において、RFTは、それが接続されているSXPNTの1つから受信されたデータにエラーを検出する。このエラーは、リンク・エラー、レーン同期エラー、およびフォーマット・エラーを含んでよい。1つまたは複数のエラーが検出された後、以下の手順を適用してエラーから回復することができる。
【0347】
1)SXPNTがこのスロットにおいてさらにデータを受信するのを停止する。
【0348】
2)すべてのスロットについてSBIAにAOPを送信し、ダウンリンクRAMをフラッシュする。
【0349】
3)バッファがクリアされ、したがってエラーがクリアされるのを待つ。
【0350】
4)ストライプ同期シーケンスおよびSOPがデータの受付けを開始するのを待つ。
【0351】
本発明の態様では、RFTエラー信号は、SBIAがRFTへのパケット送信を停止するように、SBIAに、そのRFTがエラー状態にあることを通知する。この信号は、以下のエラー通知を含む。
【0352】
a)クロス・ポイント・エラー:これは、アクティブ切替えモジュール上の5つのSXPNTからのワイヤまたは結果である。
【0353】
b)ファブリック・アクティブ・エラー: このエラーは、「ファブリック」アクティブ」信号が両側で同時にアクティブまたはイナクティブになったときに起こる。
【0354】
c)SBIAから受信されたデータにおける検出されたリンク・エラー、レーン同期エラー、またはフォーマット・エラー。
【0355】
エラーが、切替えモジュールで検出されたか、または切替えモジュールに関係するものとみなされる場合、モジュール676は、現在の切替えモジュールをディスエーブルし、予備切替えモジュールがシステムのプロセスをアクティブに維持できるようにする機能を有している。
【0356】
一態様では、RFTは、SXPNTから受信されたデータにエラーを検出したときに、モジュール676内で行われているフロー制御を中断する割込み信号を生成することができる。モジュール676は次いで、SXPNTおよびRFT内のステータス・レジスタを読み取り、どんな種類のエラーが起こったかと、エラーを補正するためにどのルーチンをインスタンスかすべきかを判定する。
【0357】
割込み信号を生成することのできるエラーは、RFT内に割込みマスク・レジスタをプログラムすることによって事前に決定しておくことができる。これらのエラーには、a)コアからSERDESへの同期FIFOオーバフロー、b)SERDESからコアへの同期FIFOオーバフロー、c)リンク動作不能、e)符号エラー、および/またはフォーマット・エラー、ならびにf)XPNTエラーを含めてよいが、これらに限定されない。当業者には少なくとも本明細書に記載された開示に基づいて認識されるように、他のエラーを監視し事前に決定しておくことができる。
【0358】
モジュール676は、すべてのスレーブ・モジュールから割込み信号を収集し、一態様では、他の2ビット「ファブリック存在」信号も収集し、モジュール676のフェールオーバ決定手順を開始する。「ファブリック存在」信号は、対応する切替えモジュールが所定の位置にあることを示すことができる。たとえば、ユーザがある切替えモジュールを取り外した場合、対応する「ファブリック存在」信号はアサート解除される。
【0359】
モジュール676は、2ビット「ファブリック・アクティブ」信号を用いて、どのスイッチ・モジュールがトラフィックを送るかをすべてのスレーブ・モジュールに通知する。一態様では、モジュール676は、フェールオーバ手順を開始するために、まず予備スイッチ・モジュールをリセットし、2ビット信号を反転する。
【0360】
冗長切替え態様では、ネットワーク・スイッチは1つのアクティブ/作動切替えブレードと1つのアイドル/予備切替えブレードとを有している。これらの態様によれば、RFTは、アクティブ・ブレードにパケットを送信することができ、アイドル・ブレードにアイドル文字を送信することができる。作動切替えブレードの障害または作動切替えブレードが取り外されていることを、モジュール676が検出すると、RFTは、システムによって、2ビット「ファブリック・アクティブ」信号を用いてフェールオーバ状況を通知される。フェールオーバが起こると、新しい切替えブレードは、リセット後に初期状態にあると仮定される。モジュール676は、フェールオーバ・コマンドを発行する前に新しい切替えブレードのステータスをチェックする。
【0361】
RFTは常に、予備切替えブレードにレーン同期シーケンスを送信して正常なリンクを維持する。したがって、フェールオーバが起こったとき、予備切替えブレードを作動させる時間は不要になる。
【0362】
フェールオーバが起こったときは、フェールオーバ手順を実行して他の切替えブレードへの安全な遷移を保証することができる。以下に、本明細書で説明するルーチンの特定の態様について詳しく説明する2つのルーチン例を示す。
【0363】
一態様では、SBIAからRFTへの送信において、RFTは、「ファブリック・アクティブ」信号を監視することによってフェールオーバを検出する。
【0364】
1)SBIAにRFTエラー信号を送信する。SBIAは、セル境界でデータの送信を停止し、RFTエラー信号がアサート解除されるまでレーン同期シーケンスを繰り返す。アサート解除された後、すべてのスロットに対してストライプ同期シーケンスが送出される。
【0365】
2)アップリンクRAMをフラッシュする。
【0366】
3)バッファがクリアされ、したがってエラーがクリアされるのを待つ。
【0367】
4)ストライプ同期シーケンスおよびSOPがデータの受付けを開始するのを待つ。
【0368】
一態様では、SXPNTからRFTへの送信において、RFTは、「ファブリック・アクティブ」信号を監視することによってフェールオーバを検出する。
【0369】
1)すべてのスロットについてSBIAにAOPを送信し、ダウンリンクRAMをフラッシュする。SBIAは、AOPを受信すると、受信されたデータをストライプ同期の前に破棄する。
【0370】
2)バッファがクリアされ、したがってエラーがクリアされるのを待つ。
【0371】
3)ストライプ同期シーケンスおよびSOPがデータの受付けを開始するのを待つ。
【0372】
本発明の特徴によれば、システムの各ブレードのヒットレス切替えが可能である。語「ヒットレス」は、ファブリックの変更によるパケットの損失が生じないことを意味する。通常の状態で、ユーザがそれにもかかわらず、性能を高めるかまたはより安定させるためにファブリックの変更を望む場合がある。この場合、ユーザはパケットの不要な破棄を回避することを望む。さらに、アップグレード手順を使用するもう1つの理由は、ファブリックの試験である。少なくとも2つの手順、すなわち、デバッグおよび作成を用いて切替えを行うことができる。
【0373】
一態様では、第1の手順によって、モジュール676は、レジスタのプログラミングによって切替えイベントを制御することができる。
【0374】
1)まず、モジュール676は、構成レジスタ内の「ファブリック・イネーブル・モード」および「ヒットレス・イネーブル・モード」ビットに「1」をセットする。これによって、モジュール676は、レジスタのプログラミングによって新しいファブリックおよびヒットレス・モードをイネーブルすることができる。
【0375】
2)モジュール676は、「構成」レジスタ内の「ヒットレス・イネーブル」ビットをセットする。これによって、RFTは、損失のない切替えを行うモードになる。
【0376】
3)次いで、モジュール676は、たとえばRFTレジスタに対応するビットをセットすることによってBIA受信機をディスエーブルする。これによって、SBIAが抑制され、SBIAがRFTにさらにセルを送信するのが防止される。
【0377】
4)ある時間(SXPNTバッファおよびRFTバッファ内のすべてのパケットを送出するのに十分な時間。本明細書ですでに説明したように、モジュール676がこの持続時間を決定することができる。)が経過した後、モジュール676は、RFTレジスタ内の「ファブリック・アクティブ」ビットをセットすることによって新しいファブリックを選択する。
【0378】
5)モジュール676は次いで、SBIAがRFTへの新しいセルの送信を継続できるように(イネーブルされるように設定されるように)各ビットをクリアする。RFTは、データを破棄することなく新しいファブリックにセルを転送する。
【0379】
6)モジュール676は「ヒットレス・イネーブル」ビットをクリアして、RFTをフェールオーバ・モードにする。
【0380】
他の態様では、第2の手順として以下のルーチンが使用される。一態様では、RFT/SXPNTバッファ内のパケットを送出する切替えタイマはRFTに位置しており、SBIAトラフィックの減速は、上述のように自動的に行われる。この態様では、モジュール676が介入する必要はない。
【0381】
1)まず、本発明の一ハードウェア態様では、コマンド入力ピンを「ハイ」に駆動してヒットレス切替えをイネーブルすることができる。一ソフトウェア態様では、ヒットレス切替えをイネーブルするように「ヒットレス・イネーブル・モード」ビットおよび/または「スイッチ遅延イネーブル」ビットをセットすることもできることにも留意されたい。
【0382】
2)モジュール676は、減速の前に、「スイッチ遅延カウンタ」レジスタの値を求めることができる。これは、「ファブリック・アクティブ」信号がトグルされるときに切替えタイマをプログラムするのに用いられる。
【0383】
3)「ファブリック・アクティブ」入力ピンはすべてのRFTでトグルされ、各RFTは、SBIAトラフィックを減速させ、切替えタイマが満了するまで古い切替えファブリックにパケットを送信し続ける。
【0384】
4)タイマが満了したとき、RFTとSXPNTは共に、内部バッファ内のすべてのパケットを送信しているはずである。RFTは、新しいファブリックを作動させ、新しい切替えファブリックとの間でのパケットの送受信を開始する。
【0385】
5)上記の態様では、コマンド入力ピンが「ロー」に駆動され、ヒットレス切替えがディスエーブルされる。
【0386】
フェールオーバと切替えのどちらの場合でも、モジュール676が交換の前にまず新しいファブリックをリセットするよう示唆されることに留意されたい。SXPNTがリセット後にすべてのスロットに対してAOPを生成する(リンクが動作不能になるため)ので、モジュール676には、スイッチ・ファブリックを交換する前に十分な時間が与えられる。
【0387】
U.リセット手順および回復手順
SERDESを同期させるときは以下のリセット手順に従う。コアにリセットが適用されると、SERDESに対して外部リセットがアサートされる。SERDESに対するリセット・パルスの持続時間は10サイクル以下でよい。リセット・パルスの後、SERDESの送信機および受信機は定められた手順によって互いに同期する。SERDESは、コアがリセットを解除された後に同期すると仮定する。このため、コアに対するリセット・パルスは、SERDESコアに対するリセット・パルスよりもかなり大きくなければならない。
【0388】
コアは、コアを同期させる場合にソフトウェアによる対話に依存する。BIA302、600、IBT304、およびXPNT202は、リセットを解除された後、連続的にレーン同期シーケンスを送信する。受信機は、そのレーンが同期していることを示すソフトウェア可視ビットをセットする。ソフトウェアは、各レーンが同期していると判定すると、各ストライプの同期を試みる。これは、ストライプ同期シーケンスの連続的な送信をイネーブルするソフトウェアによって行われる。この場合も、BIA302の受信側は、それが特定の送信元スロットと同期していることを示すビットをセットする。ソフトウェアは、このことを判定すると、BIA302、XPNT202、およびIBT304に対する送信をイネーブルする。
【0389】
管理ブレード上に存在する管理ソフトウェアは、システム・メンテナンス作業に責任を負う。本発明の態様によれば、モジュール676は管理ソフトウェアについてのインスタンス化およびアクセスを行う。他の態様では、管理ブレードは、各スレーブ・モジュールおよび切替えモジュールに対する専用リセット信号を含む。
【0390】
一態様では、システム・リブート時に以下のリセット手順を実行することができる。
【0391】
1)コアにリセットが適用されると、SERDESに対して外部リセットがアサートされる。SERDESに対するリセット・パルスの持続時間は32サイクルより長くなければならない(156MHzクロックの場合)。
【0392】
2)リセット・パルスの後、SERDESの送信機および受信機は定められた手順によって互いに同期する。SERDESは、コアがリセットを解除された後に同期すると仮定することができる。。このため、コアに対するリセット・パルスは、SERDESコアに対するリセット・パルスよりもかなり大きくなければならない。
【0393】
3)コアは、コアを同期させる場合にモジュール676との対話に依存する。BIA、IBT、およびXPNTは、リセットを解除された後、連続的にレーン同期シーケンスを送信する。
【0394】
4)SERDESは、レーン同期ステータスをモジュール676から見えるようにする。
【0395】
5)モジュール676は、各レーンが同期していると判定すると、各ストライプの同期を試みる。これは、ストライプ同期シーケンスの連続的な送信をイネーブルするソフトウェアによって行われる。
【0396】
6)この場合も、BIAの受信側は、それが特定の送信元スロットと同期していることを示すビットをセットする。
【0397】
7)モジュール676は、このことを判定すると、BIA、XPNT、およびIBTに対する送信をイネーブルする。
【0398】
SBIA/SXPNTリセット手順と同様に、RFTは、モジュール676がその3つの10Gbps SERDESのそれぞれを個別にリセットするのを可能にする。SERDESがリセットされると、リンクは動作不能になり、SERDESから受信されたデータは破壊される。エラー回復プロセスは、前述のリンク・エラー処理と同じであってよい。
【0399】
リセットによるパケット損失を減らすために、以下の手順を適用する。
【0400】
a)セル境界で送信側SERDESへのデータの送信を停止する。
【0401】
b)SERDESのリセット中にレーン同期シーケンスを送信する。
【0402】
c)データの送信を開始する(SERDESはリセット状態を解除される)。
【0403】
RFTは3つのSERDESを有するが、一態様では、2つのSERDESのみがパケットを転送し、1つのSERDESは待機モードである。ユーザが本体に1つの切替えファブリックのみを設置した場合、冗長SERDESの対応するSERDESトランシーバがなくなる。したがって、冗長SERDES用のリンクは常に動作不能になる。ユーザは、本体に切替えファブリックを設置することを望まない場合、冗長SERDESの電源を落としてエネルギーおよびサイクルを節約し、処理オーバヘッドを低下させることができる。このために、モジュール676はRFTの各レジスタのうちの「電力制御」レジスタにアクセスすることができる。
【0404】
IV.制御論理
上記にスイッチ100の動作に関して説明した機能は制御論理で実施することができる。このような制御論理は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せで実施することができる。
【0405】
V.結論
本発明の特定の態様について上記に説明したが、これらの態様は一例としてのみ示されており、制限として示されたものではないことを理解されたい。当業者には、添付の特許請求の範囲に定義された本発明の趣旨および範囲から逸脱せずに、これらの態様の形態および詳細に様々な変更を加えられることが理解されよう。したがって、本発明の範囲は、上述の例示的な態様によって制限されるべきではなく、特許請求の範囲およびその均等物に従ってのみ定義されるべきである。
【図面の簡単な説明】
【0406】
【図1】本発明の態様による高性能ネットワーク・スイッチの図である。
【図2】本発明の態様によるブレードに結合されたクロス・ポイント・スイッチを有する切替えファブリックを示す高性能ネットワーク・スイッチの図である。
【図3A】本発明の態様による図1の高性能ネットワーク・スイッチで使用されるブレードの図である。
【図3B】本発明の他の態様によるブレードの構成を示す図である。
【図4】本発明の態様によるポート・スライスを有するクロス・ポイント・スイッチのアーキテクチャの図である。
【図5】本発明の態様によるポート・スライスのアーキテクチャの図である。
【図6】本発明の態様によるバックプレーン・インタフェース・アダプタの図である。
【図7】本発明の態様による、バックプレーン・インタフェース・アダプタで受信されるローカル・シリアル・トラフィック用のトラフィック処理パスを示す図である。
【図8】本発明の態様による、バックプレーン・インタフェース・アダプタに結合された切替えファブリックの一例の図である。
【図9】本発明の態様による、バックプレーン・インタフェース・アダプタで受信されるバックプレーン・シリアル・トラフィック用のトラフィック処理パスを示す図である。
【図10】本発明の態様による、バックプレーン・インタフェース・アダプタで受信されるローカル・シリアル・トラフィック用のトラフィック処理パスに沿って実行される動作段階のフローチャートである。
【図11】本発明の態様による、バックプレーン・インタフェース・アダプタで受信されるバックプレーン・シリアル・トラフィック用のトラフィック処理パスに沿って実行される動作段階のフローチャートである。
【図12】本発明の態様による、ワイド・ストライプ化セルを生成するルーチンのフローチャートである。
【図13】本発明の態様による、ナロー・セルで使用されるナロー・セル・状態情報を示す図である。
【図14】本発明の態様による、ワイド・ストライプ化セルを符号化するルーチンのフローチャートである。
【図15A】本発明の態様による、ワイド・ストライプ化セルを符号化する段階を示す図である。
【図15B】本発明の態様による、ワイド・ストライプ化セルで使用される状態情報を示す図である。
【図15C】本発明の態様による、ワイド・ストライプ化セルで使用されるパケットの終り符号化情報を示す図である。
【図15D】本発明の態様による、ワイド・ストライプ化セルを複数のストライプで送信する際のセル境界整列条件の例を示す図である。
【図16】本発明の態様による、ワイド・ストライプ化セルを複数のストライプで送信する際のパケット境界整列条件の例を示す図である。
【図17】本発明の一態様によるバス・トランスレータのブロック図を示す。
【図18】本発明の一態様による受信構成要素のブロック図を示す。
【図19】本発明の一態様による送信構成要素のブロック図を示す。
【図20】本発明の一態様によるバス・トランスレータの詳細ブロック図を示す。
【図21A】本発明の他の態様によるバス・トランスレータの詳細ブロック図を示す。
【図21B】本発明の一態様による、バス・トランスレータの受信構成要素を有するデータ・パスの機能ブロック図を示す。
【図21C】本発明の一態様による、バス・トランスレータの送信構成要素を有するデータ・パスの機能ブロック図を示す。
【図21D】本発明の一態様による、バス・トランスレータのネイティブ・モード受信構成要素を有するデータ・パスの機能ブロック図を示す。
【図21E】本発明の一態様によるセル・フォーマットのブロック図を示す。
【図22】本発明の一態様によるバス・トランスレータの符号化プロセスの流れ図を示す。
【図23A−23B】本発明の一態様によるバス・トランスレータの符号化プロセスの詳細流れ図を示す。
【図24】本発明の一態様によるバス・トランスレータの復号プロセスの流れ図を示す。
【図25A−25B】本発明の一態様によるバス・トランスレータの復号プロセスの詳細流れ図を示す。
【図26】本発明の一態様によるバス・トランスレータの管理プロセスの流れ図を示す。
【図27A−27E】本発明の一態様による、ワイド・セル符号化およびフロー制御条件に基づいてポート・スライス内のデータを処理するルーチンを示す。
【図28A】本発明の一態様による管理モジュールのブロック図を示す。
【図28B】本発明の一態様によるクロス・ポイント・アーキテクチャのブロック図を示す。
【図29】本発明の一態様による、ストライプ化セル・トラフィックの同期を維持するルーチンを示す。
【図30】本発明の一態様による、バックプレーン切替えファブリックを有するクロス・ポイント・スイッチを通る非同期トラフィック・フローを検出するルーチンを示す。
【図31】本発明の一態様による、ストライプおよび送信元ごとにソートされた受信側ブレード同期キューに存在するデータのレベルにおいて着信リンクにおけるエラー条件がどれだけ明白であるかの一例を示す。
【図32A−32B】本発明の態様によるアーキテクチャの例のブロック図を示す。
【図33A】本発明の一態様による、冗長ファブリック・トランシーバによってイネーブルされるブレード・モジュールのブロック図を示す。
【図33B】本発明の一態様による冗長ファブリック・トランシーバのブロック図を示す。
【図34A】本発明の一態様による5つのストライプにわたるセル文字を示す表を示す。
【図34B】本発明の一態様によるK2(特殊文字)同期シーケンスに関するルーチンを示す。
【図35】本発明の一態様による冗長ファブリック・トランシーバの同期フロー制御実現態様のブロック図を示す。
【図36】本発明の一態様による、同期フロー制御実現態様の時間ドメイン多重化のタイミング図を示す。
【図37】本発明の一態様による、冗長ファブリック・トランシーバの非同期フロー制御実現態様のブロック図を示す。【Technical field】
[0001]
Field of the invention
The present invention generally relates to network switches.
[Background Art]
[0002]
Related technology
A network switch is a device that performs a switching function (determines a physical path) in a communication network. In switching, information such as digital data packets and frames are transferred between entities in a network. Typically, a switch is a computer that has multiple circuit cards coupled to a backplane. Circuit cards are commonly referred to as "blades" in switching technology. The blades are interconnected by a "switch fabric". Each blade includes several physical ports that couple the switch to other network entities over various types of media such as Ethernet, Fiber Distributed Data Interface (FDDI), and Token Ring connections. Network entities include any device that sends and receives data on such media.
[0003]
The switching function performed by the switch typically includes receiving data from a network entity at a source port and forwarding the data to a destination port. The source port and destination port may be located on the same blade or on different blades. For "local" switching, the source and destination ports are on the same blade. Otherwise, the source and destination ports are on different blades, and switching requires transferring data from the source blade to the destination blade through the switch fabric. In some cases, data is provided to multiple destination ports on the switch. This is called multicast data transfer.
[0004]
The switch operates by examining the header information accompanying the data in the data frame. The header information includes the International Standards Organization (ISO) 7-layer OSI (Open Systems Interconnection). In the OSI model, switches typically route data frames based on lower level protocols such as
[0005]
Ethernet is a widely used low-layer network protocol that uses broadcast technology. Ethernet has six fields. These fields include the preamble, destination address, source address, type, data, and frame check sequence. For Ethernet frames, the digital switch determines the physical path of the frame based on the source and destination addresses. Standard Ethernet operates at a 10Mbps data signal rate. Another implementation of Ethernet, called "Fast Ethernet" (FE), has a data signal rate of 100 Mbps. Other implementations of FE operate at 10 Gbps.
[0006]
Digital switches typically have physical ports configured to communicate using a variety of protocols, each with a different data rate. For example, a blade in a switch may have any port that is a 10 Mbps port or a 100 Mbps port. The blade may have other ports that comply with optical standards such as SONET and are capable of data signal rates such as 10 Gbps.
[0007]
Digital switch performance is often evaluated based on criteria such as the number of physical ports present and the number of physical ports that can be switched without interrupting or slowing down data traffic. The limiting factor in the bit transfer capacity of many switches is the switch fabric. For example, one conventional switch fabric was limited to 8 gigabits per second per blade. In the eight-blade example, this is equivalent to 64 gigabits per second of traffic. It is possible to increase the data signal rate of a particular blade to over 8 gigabits per second. However, the switch fabric cannot handle this increased traffic.
[0008]
It is desirable to utilize new optical techniques to increase the port density on the blade and increase the data signal rate. However, there is a need for switches and switch fabrics that handle higher bit rates and provide a maximum total bit transfer capacity that is well above conventional switches.
DISCLOSURE OF THE INVENTION
[0009]
Summary of the Invention
The present invention provides a high performance network switch. The switching fabric uses serial link technology. In a switching fabric, a serial data stream is switched instead of a parallel data stream. The blade outputs a serial data stream in a serial pipe. The serial pipe may be some serial link that couples the blade to the switching fabric. The serial data stream represents a collection of incoming serial data streams supplied to each blade through a physical port. Each blade outputs a serial data stream having in-band control information in a plurality of stripes to the switching fabric.
[0010]
In one aspect, the serial data stream transfers packets of data in wide striped cells across multiple stripes. Wide striped cells are encoded. In-band control information is transferred in one or more blocks of the wide cell. For example, the initial block of the wide cell contains control and status information. Further, control information and status information are transferred in each stripe. In particular, control and status information is transferred in each sub-block of the initial block of the wide cell. Thus, control and status information is obtained in-band in a serial data stream (also called stripe). The control information is provided in-band and indicates traffic flow conditions such as beginning of cell, end of packet, abort, and other error conditions.
[0011]
A wide cell has one or more blocks. Each block extends over five stripes. Each block has a size of 20 bytes composed of 5 sub-blocks, each size being 4 bytes. In one example, a wide cell has a maximum size of 8 blocks (160 bytes) that can transfer 148 bytes of payload data and 12 bytes of in-band control information. Packets of data for full-duplex traffic can be transferred at a rate of 50 Gbps in each direction through one slot of a digital switch in a wide cell. According to one feature, choosing a maximum wide cell block size of 160 bytes determined by the inventor allows maintaining 4x10Gbps Ethernet (also called 4X10GE) line speed through the backplane interface adapter. . This line speed is maintained for Ethernet packets having a range of sizes allowed by Ethernet, including but not limited to packet sizes between 84 and 254 bytes.
[0012]
In one aspect, a digital switch has a plurality of blades coupled to a switching fabric via a serial pipe. The switching fabric can be provided on a backplane and / or one or more blades. Each blade outputs a serial data stream to the switching fabric in a plurality of stripes along with in-band control information. The switching fabric includes a plurality of cross points corresponding to a plurality of stripes. Each cross point has a plurality of port slices coupled to a plurality of blades. In one embodiment, five stripes and five cross points are used. Each blade has five serial links coupled to each of the five cross points. In one example of an implementation, the serial pipe coupling the blades to the switching fabric is a 50 Gbps serial pipe made up of five 10 Gbps serial links. Each 10 Gbps serial link is coupled to a respective cross point and transfers a serial data stream. The serial data stream includes a wide cell data slice corresponding to one stripe.
[0013]
In one aspect of the invention, each blade has a backplane interface adapter (BIA). BIA has three traffic processing flow paths. The first traffic processing flow path extends in a traffic flow direction from the local packet processor toward the switching fabric. The second traffic processing flow path extends in a traffic flow direction from the switching fabric toward the local packet processor. The third traffic processing flow path forwards local traffic from the first traffic processing flow path. This local traffic is sorted and routed locally at the BIA without having to traverse the switching fabric.
[0014]
The BIA includes one or more receivers, wide cell generators, and transmitters along a first path. The receiver receives a narrow input cell that forwards a data packet. Such narrow input cells are output from a packet processor and / or an IBT (Integrated Bus Translator) coupled to the packet processor. The wide cell generator generates a wide striped cell that forwards data packets received by the BIA on narrow input cells. The transmitter transmits the wide striped cells to the switching fabric in a plurality of stripes.
[0015]
According to the present invention, a wide cell extends over a plurality of stripes, each stripe containing in-band control information. In one aspect, each wide cell generator parses each narrow input cell, checks for control information indicating the beginning of the packet, and checks that all narrow input cells of the packet have one or more new wide striped cells. Encode one or more new wide-striped cells until it is distributed to and write one or more new wide-striped cells to multiple transmit queues.
[0016]
In one example, a BIA has four deserializer receivers, 56 wide cell generators, and five serializer transmitters. The four deserializer receivers receive narrow input cells output from up to eight sources (ie, up to two IBTs or packet processors per deserializer receiver). The 56 wide cell generators receive a number of received narrow input cells sorted based on destination slot identifier and source. The five serializers transmit a wide cell data slice corresponding to the stripe.
[0017]
According to another feature, the BIA may include a traffic sorter that sorts received input cells based on a destination slot identifier. In one example, the traffic sorter includes both a global / traffic sorter and a backplane sorter. The global / traffic sorter sorts received narrow input cells having destination slot identifiers identifying local destination slots from received narrow input cells having destination slot identifiers identifying global destination slots across the switching fabric. The backplane sorter further sorts the received narrow input cells having a destination slot identifier that identifies a global destination slot as a group based on the destination slot identifier.
[0018]
In one aspect, the BIA also includes a plurality of stripe transmit queues and a switched fabric transmit arbitrator. The switch fabric transmit arbitrator arbitrates the order in which data stored in the stripe transmit queue is transmitted by the transmitter to the switch fabric. In one example, arbitration proceeds in a round-robin fashion. Each stripe and queue stores a respective group of wide striped cells corresponding to a respective source packet processor and destination slot identifier. Each wide striped cell has one or more blocks that span multiple stripes. During a processing cycle, the switching fabric transmit arbitrator selects a stripe and a queue and pushes the next available cell (possibly one or more blocks of cells at a time) to the transmitter. Each stripe of the wide cell is pushed to a respective transmitter for that stripe.
[0019]
The BIA includes one or more receivers, a wide / narrow cell translator, and a transmitter along a second path. The receiver receives wide striped cells from the switching fabric in multiple stripes. Wide striped cells transfer data packets. The translator converts the received wide striped cells into narrow input cells that forward data packets. The transmitter then sends the narrow input cell to the corresponding destination packet process or IBT. In one example, five deserializer receivers receive five sub-blocks of a wide striped cell in multiple stripes. A wide stripe cell transfers data packets across multiple stripes and includes destination slot identifier information.
[0020]
In one aspect, a BIA includes a stripe interface and a stripe receive synchronization queue. Each stripe interface sorts the received sub-blocks in each stripe based on the source slot identifier information and stores the sorted received sub-blocks in a stripe receive synchronization queue.
[0021]
The BIA includes an arbitrator, a stripe-based wide cell assembler, and a narrow / wide cell translator along a second traffic flow processing path. The arbitrator arbitrates the order in which data stored in the stripe receive synchronization queue is transmitted to the stripe-based wide cell assembler. A stripe-based wide cell assembler assembles wide striped cells based on received data sub-blocks. The narrow / wide cell translator then converts the arbitrated received wide striped cell to a narrow input cell that forwards the data packet.
[0022]
According to an aspect of the invention, a second level of arbitration is also performed. The BIA further includes a destination queue and a local destination transmission arbitrator in the second pass. The destination queue includes narrow cells transmitted by the local traffic sorter (from the first path) and narrow cells translated by the translator (from the second path). The local destination transmit arbitrator arbitrates the order in which narrow input cells stored in the destination queue are transmitted to the serializer transmitter. Finally, the serializer transmitter then sends the narrow input cell to the corresponding IBT and / or source packet processor (eventually from the blade through the physical port).
[0023]
According to another aspect of the present invention, there is provided a system and method for encoding a wide striped cell. A wide cell extends over a plurality of stripes, each stripe containing in-band control information. Each stripe may include status information, reserved information, and payload data. In one aspect, the wide cell generator encodes one or more wide striped cells.
[0024]
The wide cell generator encodes the initial block of the starting wide striped cell with the initial cell coding information. The initial cell coding information includes control information (such as a special K0 character) and state information given to each sub-block of the initial block of the wide cell. The wide cell generator also spreads the initial bytes of packet data over the available space in the initial block. The remaining bytes of the packet data span one or more blocks in the first wide striped cell (and subsequent wide cells) until either the end-of-packet condition is reached or the maximum cell size is reached. Distributed. Finally, the wide cell generator further encodes the ending wide striped cell with different end-of-packet information depending on the degree of filling of the wide striped cell with data. In one coding scheme, the end-of-packet information includes whether the end of the packet occurs at the end of the initial block, in a block after the initial block, at a block boundary, or at a cell boundary. Depends on the end condition of a set of packets.
[0025]
According to another aspect of the invention, a method of interfacing a serial pipe for transferring data packets with narrow input cells and a serial pipe for transferring data packets with wide striped cells is provided. , Generating wide striped cells, and transmitting a block of wide striped cells across a plurality of stripes. The method comprises the steps of: sorting received narrow input cells based on destination slot identifier; and generating the generated wide striped cells with corresponding stripes and queues based on destination slot identifier and source packet processor. And arbitrating the order in which the stored wide striped cells are selected for transmission.
[0026]
In one example, the generating step includes parsing each narrow input cell, checking for control information indicating the beginning of a packet, and determining whether the data of all narrow input cells that forward the packet has one or more new wide cells. Encoding the one or more new wide-striped cells until distributed to the striped cells; and writing the one or more new wide-striped cells to a plurality of transmit queues. The encoding step includes encoding an initial block of the starting wide striped cell with initial cell encoding information such as control information and status information. Encoding distributes the initial bytes of packet data over the available space in the initial block of the first wide striped cell, and makes available the end of the initial block of the first wide striped cell Adding reservation information to each of the remaining bytes of the packet, until the end-of-packet condition is reached, or until the maximum cell size is reached. The method may further include the steps of distributing over a plurality of blocks and encoding the ending wide striped cell with end-of-packet information. End-of-packet information is a set of packets that includes whether the end of the packet occurs at the end of the initial block, within any block after the initial block, at a block boundary, or at a cell boundary. Depends on the end condition.
[0027]
The method includes receiving a wide striped cell for forwarding a data packet in a plurality of stripes from a switching fabric and converting the received wide striped cell to a narrow input cell for forwarding a data packet. And transmitting the narrow input cell to a corresponding source packet processor. The method comprises the steps of: sorting received sub-blocks in each stripe based on sender slot identifier information; storing the sorted received sub-blocks in a stripe reception synchronization queue; Arbitrating the order in which the data stored in the queue is assembled. Other steps include assembling the wide striped cells in the order of the arbitration phase based on the received data sub-blocks and forwarding the arbitrated received wide striped cells to a data packet. Converting the narrow cells into narrow input cells and storing the narrow cells in a plurality of destination queues. In one aspect, arbitrating the order in which the data stored in the destination queue is transmitted and transmitting the narrow input cells to the corresponding source packet processor and / or IBT in the order of the further arbitration stages. And other arbitrations are performed.
[0028]
The present invention further provides for error detection and recovery. Such errors may include stripe synchronization errors. In one aspect, the management module includes a level monitor, a stripe synchronization error detector, a flow controller, and a control character presence tracker. The level monitor monitors data received by the receiving blade. The stripe synchronization error detector detects a stripe synchronization error based on the amount of data monitored by the level monitor. Examples of stripe synchronization errors include incoming link errors, cross point failures, and outgoing link errors. In one example, data received at the receiving blade is sorted based on stripe / source information and stored in a set of data structures (eg, FIFO). The level monitor monitors the level of data stored in each data structure. The stripe synchronization error detector detects at least one of an overflow condition and an underflow condition in the amount of data received on each stripe from a particular source.
[0029]
The flow controller initiates a recovery routine that resynchronizes data between stripes in response to detecting a stripe synchronization error. The control character presence tracker identifies the presence of a K2 character in the recovery routine.
[0030]
The present invention is a method for detecting a stripe synchronization error in a network switch, comprising the steps of: sorting data received in a receiving slot based on stripe / source information; Storing in data structures; monitoring the level of data stored in each data structure; and determining overflow and underflow conditions in the amount of data received on each stripe from a particular source. Detecting at least one of the steps. The source information may identify the slot that transmitted data across the switching fabric of the network switch, or may identify the source packet processor that transmitted data from the slot across the switching fabric of the network switch. it can.
[0031]
The present invention is a method of maintaining synchronization of striped cell traffic, comprising transmitting a common character in a striped cell for a predetermined number of cycles in all lanes, and receiving a common character in a striped receive synchronization queue. The method further includes evaluating a common control character and detecting a synchronization condition, if any, indicating that the stripe receive synchronization queue has been cleared.
[0032]
The present invention is a method for managing asynchronous traffic flow through cross-point switches in a switching fabric, comprising the steps of monitoring the level of a stripe receive synchronous queue, and determining whether an asynchronous condition exists. Starting a resynchronization routine if an asynchronous condition exists. The resynchronization routine includes transmitting a common character in a striped cell over a predetermined number of cycles in all lanes, evaluating a common control character received in a stripe receive synchronization queue, Detecting a synchronization condition, if any, indicating that has been cleared.
[0033]
According to another aspect of the present invention, there is provided a redundant switching system. The redundant switching system includes two switching blades and at least one input / output blade (or slave blade). Each switching blade has a plurality of cross points corresponding to respective stripes of the serial data stream. Each incoming / outgoing blade is coupled to each switching blade by a backplane connection. Each ingress / egress blade also includes a plurality of redundant fabric transceivers (RFTs). RFT can switch traffic between cross points on two switching blades. This ensures redundancy.
[0034]
In one aspect, a redundant fabric transceiver is coupled to a bus interface adapter and includes one or more first and second ports, a multiplexer, a downlink transceiver, and an uplink transceiver. The multiplexer selects communication data to be transmitted from similar data. The downlink transceiver receives, conditions, and transmits this communication data. Uplink transceivers also receive, condition, and transmit communication data. A register module may be used that includes condition information indicating operation of the downlink transceiver and / or the uplink transceiver, where the condition information includes configuration and parameter settings for received and transmitted data. included.
[0035]
Other aspects, features, and advantages of the present invention, as well as the structure and operation of various aspects of the present invention, are described below with reference to the accompanying drawings.
[0036]
BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate the invention and, together with the description, explain the principles of the invention; Work to enable you to
[0037]
Next, the present invention will be described with reference to the accompanying drawings. In the drawings, identical reference numbers indicate identical or functionally similar elements. Further, the left-most digit (s) of a reference number identifies the drawing in which the reference number first appears.
[0038]
Detailed description of the invention
table of contents
I. Overview and discussion
II. the term
III. Digital switch architecture
A. Cross point architecture
B. Port slice operation including wide cell coding and flow control
C. Backplane interface adapter
D. Overall operation of the backplane interface adapter
E. First traffic processing path
F. Narrow cell format
G. Sort traffic
H. Generating wide striped cells
I. Encoding wide striped cells
J. Initial block coding
K. End-of-packet encoding
L. Switching fabric transmission arbitration
M. Cross point processing of stripes
N. Second traffic processing path
O. Cell boundary alignment
P. Packet alignment
Q. Wide striped cell size at line speed
R. IBT and packet processing
S. Narrow cell encoding process and packet encoding process
T. Management process and error control
U. Reset and recovery procedures
IV. Control logic
V. Conclusion
[0039]
I. Overview and discussion
The present invention is a high performance digital switch. Each blade is coupled to the switching fabric through a serial pipe. The switching fabric uses serial link technology. A sparsely striped switching fabric switches a serial data stream instead of a parallel data stream. Each blade outputs a serial data stream on a serial pipe. Serial pipes are some serial links that couple blades to the switching fabric. The serial data stream represents a collection of input serial data streams supplied to each blade through a physical port. Each blade outputs a serial data stream having in-band control information to the switching fabric in a plurality of stripes. In one aspect, a serial data stream transfers data packets in a wide striped cell across a plurality of loosely coupled stripes. The wide striped cells are coded. In-band control information is transferred in one or more blocks of the wide striped cell.
[0040]
In one implementation, each blade of the switch sends and receives 50 gigabits per second of full-duplex traffic over the backplane. This is done to ensure line speed, wire speed, and non-blocking over all packet sizes.
[0041]
The high performance switch according to the present invention may be any switch, including, but not limited to, the Internet, enterprise systems, Internet service providers, and any protocol layer switching (
[0042]
The present invention will be described with respect to this example environment. This example environment is only used for illustrative purposes. The present invention is not limited to application to such example environments. In addition, it will be apparent to those skilled in the art, after reading the following description, how to implement the invention in other environments now known or later developed.
[0043]
II. the term
In order to more clearly describe the present invention, the following term definitions will be adhered to as consistently as possible throughout the specification.
[0044]
The term "switch fabric" or "switch fabric" refers to a switchable interconnect between blades. The switch fabric can be located on a backplane, blades, multiple blades, units separated from the blades, or any combination thereof.
[0045]
The term "packet processor" refers to any type of packet processor, including but not limited to an Ethernet packet processor. The packet processor analyzes and determines where to send the packet.
[0046]
The term "serial pipe" refers to one or more serial links. In one non-limiting embodiment, the serial pipe is a 10 Gbps serial pipe and includes four 2.5 Gbps serial links.
[0047]
The term "serial link" refers to a data link or bus that transfers digital data serially between points. Relatively high bit rate serial links can also be formed by combining lower bit rate serial links.
[0048]
The term "stripe" refers to one data slice of a wide cell. The term "sparsely coupled" stripes refers to the data flow within each stripe that is autonomous with respect to the other stripes. It is not necessary that the data flow be completely synchronized in each stripe; the data flow can proceed independently in each stripe and be skewed relative to other stripes.
[0049]
III. Digital switch architecture
FIG. 1 shows an outline of the architecture of the
[0050]
In a preferred embodiment of the present invention, a
[0051]
[0052]
Each cross point 202A-202E is an 8-port cross point. In one example, each cross point 2202A-E receives eight 10G data streams. Each data stream corresponds to a particular stripe. The stripe has data in a wide cell format including, inter alia, a destination port number (also called a destination slot number) and special in-band control information. The in-band control information includes K special characters such as K0 character and K1 character. The K0 character delimits the beginning of a new cell in the stripe. The K1 character delimits the end of the packet in the stripe. Such encoding within each stripe allows each
[0053]
Each
[0054]
In an aspect of the invention, the switch size is defined as one cell, and the cell size is defined as any of 8 bytes, 28 bytes, 48 bytes, 68 bytes, 88 bytes, 108 bytes, 128 bytes, 148 bytes. You. Each port (or port slice) sends and receives serial data at 10 Gbps over its respective serial link. Each of the cross points 202A to 202E has a switching capacity of 160 Gbps (160 Gbps = 10 Gbps * 8 ports * 2-way full duplex). Such cell sizes, serial link data rates, and switching capacities are exemplary and not limiting of the present invention. The cross-point architecture and operation are described in detail below.
[0055]
In the prior art, to increase the throughput of the switch, the width of the data bus is increased to improve the "parallel processing" function of the switch, and to increase the clock rate. However, the advantages of both approaches are reduced. For example, very wide data buses are constrained by the physical limitations of the circuit board. Similarly, very high clock rates are limited by the characteristics of the printed circuit board. The inventor has discovered that the use of serial link technology in the backplane significantly increases the switching bandwidth compared to the prior art.
[0056]
In a preferred embodiment, each serial pipe 106 can carry full-duplex traffic at 50 Gbps, and each
[0057]
The advantage of such a switch with a 50 Gbps serial pipe from
[0058]
Referring now to FIG. 3A, the architecture of
[0059]
Each packet processor 306 includes one or more physical ports. Each packet processor 306 receives an inbound packet from one or more physical ports, determines the destination of the inbound packet based on the control information, and determines a local address for the physical port to which the packet processor is connected. Local switching is performed on the packet, the packet addressed to the remote port is formatted so as to create parallel data, and the parallel data is switched to the IBT 304. Each IBT 304 receives parallel data from each packet processor 306. IBT 304 then converts the parallel data into at least one serial bit stream. IBT 304 provides a serial bit stream to
[0060]
In the example shown in FIG.3A, packet processors 306C and 306D include 24 Ethernet ports of 10 or 100 Mbit / s and two Ethernet ports of 1000 Mbit / s, or 1 Gbps. I have. Before the data is converted, the input data packets are converted to 32-bit parallel data clock data 133 MHz to achieve a data rate of 4 Gbps. Data is placed in cells (also referred to as "narrow cells"), and each cell includes a header that combines control signals in-band with the data stream. Packets are interleaved every 32 different destination slots depending on cell boundaries.
[0061]
In the example of FIG. 3A as well,
[0062]
The
[0063]
[0064]
FIG. 3B shows a configuration of a
[0065]
A. Cross point architecture
FIG. 4 shows the architecture of the
[0066]
[0067]
FIG. 5 shows the architecture of
[0068]
[0069]
[0070]
In operation, FIFO RAM accumulates data. After the data FIFO RAM has accumulated one cell of data, the corresponding FIFO controller generates a read request to the FIFO read
[0071]
The FIFO read
[0072]
B. Port slice operation with wide cell coding and flow control
According to another aspect, a port slice operates on wide cell coding and flow control conditions. FIGS. 27A-27E show a routine 2700 for processing data in a port slice based on wide cell encoding and flow control conditions (steps 2710-2790). For simplicity, the routine 2700 is described with respect to the
[0073]
At
[0074]
At
[0075]
As shown in FIG. 27B,
[0076]
If two 32-bit data chunks are valid, as shown in FIG. 27C, those chunks are written to the data FIFO RAM in one
[0077]
At
[0078]
As shown in FIG. 27D, at
[0079]
As shown in FIG.27E, if non-idle data is received from FIFO read
[0080]
C. Backplane interface adapter
To describe the structure and operation of the backplane interface adapter, reference is made to the components shown in FIGS. FIG. 6 is a diagram of a backplane interface adapter (BIA) 600 according to aspects of the present invention.
[0081]
D. Overall operation of the backplane interface adapter
FIG. 10 is a flowchart of a routine 1000 (steps 1010-1060) that interfaces a serial pipe transferring data packets with narrow input cells to a serial pipe transferring data packets with wide striped cells. .
[0082]
FIG. 11 is a flowchart of a routine 1100 (steps 1110-1180) that interfaces a serial pipe transferring data packets with wide striped cells and a serial pipe transferring data packets with narrow input cells. .
[0083]
As shown in FIG. 6, a traffic
[0084]
E. First traffic processing path
[0085]
F. Narrow cell format
FIG. 13 shows the format of an exemplary
[0086]
G. Traffic sorting
Traffic sorter 610 sorts the received narrow input cells based on destination slot number. Traffic sorter 610 routes narrow cells (also referred to as local traffic) destined for the same blade as
[0087]
FIG. 7 illustrates another aspect where the traffic sorter 610 includes a global /
[0088]
H. Wide striped cell generation
Wide cell generator 620 generates wide striped cells. Wide striped cells transport data packets received by
[0089]
FIG. 12 illustrates a routine 1200 (steps 1210-1240) for creating a wide striped cell according to the present invention. In one aspect, each
[0090]
Each time a packet is detected (step 1225),
[0091]
Then, at
[0092]
I. Encoding wide striped cells
According to another aspect of the present invention, there is provided a system and method for encoding a wide striped cell. In one aspect,
[0093]
J. Initial block coding
In
[0094]
FIG. 15B is a diagram illustrating state information used in a wide striped cell according to aspects of the present invention. As shown in FIG. 15B, status information for a wide striped cell may include any combination of status information including one or more of a slot number, a payload status, and a reserved bit. The slot number is an encoded number, such as 00, 01, or other identifier (eg, alphanumeric or ASCII value) that identifies the blade (also called a slot) in which the wide striped cell is transmitted. The payload state can be any encoded number, or reserved (meaning reserved cells without data), SOP (meaning the beginning of a packet cell), data (payload data of the packet) Other identifiers that indicate the particular state of the data in the cell being transmitted, such as aborting (meaning that the packet transfer is interrupted). Reserved bits are also provided.
[0095]
At
[0096]
At
[0097]
In general, the packet data continues to be distributed until the end-of-packet condition is reached or the maximum cell size is reached. Thus, a check is made as to whether the maximum cell size has been reached (step 1440) and whether the end of the packet has been reached (step 1450). If the maximum cell size has been reached at
[0098]
K. End-of-packet encoding
In
[0099]
FIG. 15C is a diagram illustrating end-of-packet encoding information used in an ending wide-striped cell according to aspects of the present invention. The special character byte K1 is used to indicate the end of the packet. End conditions for a set of four packets are shown (items 1-4). The four packet end conditions are whether the end of the packet occurs during the initial block (item 1) or during subsequent blocks (items 2-4). The end-of-packet condition of the subsequent block further includes whether the end of the packet occurs within a block (item 2), at a block boundary (item 3), or at a cell boundary (item 4). As shown in
[0100]
As shown in
[0101]
L. Switching fabric transmission arbitration
In one aspect,
[0102]
M. Cross point processing of stripes including wide cell coding
In one aspect, switching
[0103]
The operation of
[0104]
[0105]
In operation, FIFO RAM accumulates data. After the data FIFO RAM has accumulated one cell of data, the corresponding FIFO controller generates a read request to the FIFO read
[0106]
The FIFO read
[0107]
In the following, the cross-point operation according to the invention will be described with respect to other aspects involving wide cell coding and flow control.
[0108]
N. Second traffic processing path
FIG. 6 also illustrates a traffic processing path for backplane serial traffic received at the
[0109]
As shown in FIG. 6,
[0110]
The
[0111]
[0112]
[0113]
According to aspects of the invention, a second level of arbitration is also performed.
[0114]
FIG. 9 illustrates the second traffic processing in more detail.
[0115]
In the second traffic path,
[0116]
[0117]
The
[0118]
Destination queues include a local destination queue 982 and a backplane traffic queue 984. Local destination queue 982 stores the narrow cells transmitted by
[0119]
O. Cell boundary alignment
FIG. 15D is a diagram illustrating an example of a cell boundary alignment condition when a wide striped cell is transmitted in a plurality of stripes according to an embodiment of the present invention. Encoding and wide striped cell generation ensure that there is a K0 character every 8 blocks for any given stripe. Cell boundaries between the stripes themselves may be misaligned. However, this misalignment is compensated and addressed by a second traffic processing flow path in
[0120]
P. Packet alignment
FIG. 16 is a diagram illustrating an example of packet boundary alignment conditions when a wide striped cell is transmitted in a plurality of stripes according to an embodiment of the present invention. Although the cells can be different from stripe to stripe, all stripes basically transmit the same packet or packets close to each other. Because each cross point arbitrates its source independently, not only can skew occur at the cell boundaries, but also the transmission of packets on one serial link and the transmission of packets on any other link. A skew of as much as 7 cell time units (time to transmit a cell) may occur during this time. This means that when transmitting multiple stripes on the switching fabric, each packet may be interlaced with other packets.
[0121]
Q. Wide striped cell size at line speed
In one example, the maximum size of a wide cell is 8 blocks (160 bytes) that can transfer 148 bytes of payload data and 12 bytes of in-band control information. Data packets for full-duplex traffic can be transferred at 50 Gbps through digital switches in wide cells.
[0122]
R. IBT and packet processing
The Integrated Packet Controller (IPC) and Integrated Giga Controller (IGC) functions include a bus translator described above as an IPC / IGC Bus Translator (IBT) 304. In one aspect, the IBT is an ASIC that connects one or more IPC / IC ASICs. In such an embodiment, the IBT converts two 4/5 Giga parallel streams into one 10 Gbps serial stream. The parallel interface may be an IPC / IGC ASIC backplane interface. For example, as described herein for interface adapters and striping, one additional 10 Gbps serial stream can be processed.
[0123]
Further, IBT 304 may be configured to operate with other architectures that will become apparent to those skilled in the art based at least on the disclosure herein. For example, IBT 304 can be implemented in a packet processor using a 10GE configuration and an OC-192 configuration. The functionality of the IBT 304 can be incorporated into an existing packet processor or be installed as an add-on component of the system.
[0124]
In FIG. 17, a block diagram 1700 illustrates components of a
[0125]
Specifically, the
[0126]
In this case, the
[0127]
Reversing the direction of operation of
[0128]
For ease of illustration without limitation, the process of converting
[0129]
FIG. 18 is a block diagram of a receiving component according to one aspect of the present invention. In one aspect, bus translator 1802 receives data in the form of packets from interface connections 1804a-1804n. Interface connections 1804a-1804n are coupled to one or
[0130]
[0131]
[0132]
[0133]
In the following description, these cells are also referred to as narrow cells. Further,
[0134]
The cell format is described below with respect to the cell encoding and decoding processes of FIGS. 22, 23A-23B, 24, and 25A-25B.
[0135]
[0136]
[0137]
[0138]
In one aspect, the
[0139]
[0140]
FIG. 19 is a block diagram of a transmission component according to one aspect of the present invention. In one aspect,
[0141]
[0142]
In one aspect, the cell format can be fixed. In other aspects, the cell format may be variable. In other aspects, the cells received by
[0143]
The
[0144]
[0145]
[0146]
The packet format is determined by the configuration of the IPC / IGC components and the requirements of the system.
[0147]
[0148]
Reference clock 1928 provides timing information to
[0149]
[0150]
In one aspect, the
[0151]
[0152]
FIG. 20 shows a detailed block diagram of a bus translator according to one embodiment.
[0153]
For packet processing, a packet is received by a
[0154]
For cell processing, it is received by the
[0155]
[0156]
Separating serial and parallel operations as described above is a feature of aspects of the present invention. In such an embodiment, the parallel format of incoming and outgoing packets at
[0157]
Further, according to aspects of the present invention, the degree of sharing of the line speed of
[0158]
The remapping of parallel packets to serial cells is described in detail herein, and is described in particular with respect to FIG. 21E.
[0159]
FIG. 21A shows a detailed block diagram of a bus translator according to another aspect of the present invention. The receiver and transmitter in FIGS. 18, 19, and 20 have been replaced by CMOS I /
[0160]
The
[0161]
[0162]
As shown in FIG. 21A,
[0163]
In addition,
[0164]
[0165]
In one aspect,
[0166]
In one aspect, the cell format may be a 4-byte header and a 32-byte data payload. In another aspect, the header of each cell is separated by a special K character. In another aspect, the last cell of the packet is indicated by one or more special K1 characters.
[0167]
The cell format may include both fixed length and variable length cells. 36 byte (4 byte header and 32 byte payload) encoding is an example of a fixed length cell format. In another aspect, a cell format with a cell length greater than the 36 bytes (4 bytes + 32 bytes) described above can be implemented.
[0168]
In FIG. 21B, a functional block diagram shows the data path with the receiving components of the bus translator.
[0169]
The
[0170]
In one aspect,
[0171]
According to one aspect, the received packets are 32-bit aligned, while the parallel interface of the SERDES element is 64 bits wide.
[0172]
In practice, it may be difficult to achieve a line speed for an arbitrary packet length. Line speed refers to maintaining the same output speed in the cell as the speed at which packets are received. A packet may have a 4-byte header overhead (SOP) and a 4-byte tail overhead (EOP). Therefore, the
[0173]
FIG. 21C is a functional block diagram of a data path having a transmitting component of a bus translator according to one aspect of the present invention.
[0174]
FIG. 21D is a functional block diagram of a data path having a native mode receiving component of a bus translator according to one aspect of the present invention. In one aspect, the
[0175]
In another aspect, as shown in FIG. 21D, the uplinking data is temporarily buffered using two separate data FIFOs, thus eliminating the need for an existing timing path.
[0176]
Although a separate native mode data path for cell-to-packet conversion is not shown, one of ordinary skill in the art should understand how to achieve this, at least based on the disclosure provided herein. You will be recognized. For example, two FIFOs can be configured exclusively for storing 10 Gbps link information. However, in one aspect,
[0177]
In other embodiments where the zero body cell format is received by the interface adapter or BIA, the IBT 304 retains the previous one data transfer for each source slot. When the IBT 304 receives an EOP having a zero body cell format, the previous one or two transfers are released and transmitted from the parallel interface.
[0178]
S. Narrow cell and packet coding process
FIG. 21E is a block diagram of a cell format according to an aspect of the present invention. FIG. 21E illustrates both an example packet and a cell according to aspects described herein. The example packet shows a
[0179]
According to one aspect of the invention, the cell includes the special character K0 2190 and control
[0180]
In one aspect, the four rows or slots shown in FIG. 21E indicate the four lanes of the serial link from which cells are transmitted and / or received.
[0181]
As already described herein, the IBT 304 sends cells to and receives cells from the
[0182]
[0183]
Packets are formatted into cells consisting of a header and a data payload. A 4-byte header requires one cycle or row on four XAUI lanes. The header has a K0 special character on
[0184]
In one aspect, IBT 304 accepts two IPC / IGC backplane buses and converts them into one 10 Gbps serial stream.
[0185]
FIG. 22 shows a flowchart of an encoding process for a bus translator according to one aspect of the present invention. The process starts at
[0186]
At
[0187]
At
[0188]
At
[0189]
At
[0190]
In
[0191]
At
[0192]
In
[0193]
23A-23B, a detailed flowchart illustrates the encoding process of a bus translator according to one aspect of the present invention. The process of FIGS. 23A-23B begins at
[0194]
At
[0195]
At
[0196]
Assuming in
[0197]
If the IBT 304 determines in
[0198]
At
[0199]
In
[0200]
At
[0201]
In
[0202]
At
[0203]
At
[0204]
At
[0205]
At step 2326, the IBT 304 accesses data obtained by parsing each of the one or more packets. In one aspect, the cell encoder of IBT 304 accesses the memory pool of IBT 304 to obtain this information. The process proceeds immediately to step 2328.
[0206]
In
[0207]
At
[0208]
At
[0209]
In
[0210]
At
[0211]
At
[0212]
At
[0213]
In FIG. 24, a flowchart illustrates the decoding process of a bus translator according to one aspect of the present invention. The process of FIG. 24 begins at
[0214]
At
[0215]
At
[0216]
At
[0219]
In one aspect, steps 2506, 2508, and 2510 are performed by a synchronous FIFO. The process proceeds immediately to step 2410.
[0218]
At step 2410, the process by which the IBT 304 analyzes one or more cells to obtain control information and payload data proceeds immediately to step 2412.
[0219]
At
[0220]
At
[0221]
At step 2416, IBT 304 forwards the one or more packets. The process proceeds unless otherwise indicated.
[0222]
25A-25B illustrate a detailed flow chart of the decoding process of a bus translator according to one aspect of the present invention. The process of FIGS. 25A-25B begins at
[0223]
At
[0224]
At
[0225]
At
[0226]
At
[0227]
In
[0228]
At
[0229]
At
[0230]
In one aspect, the state / slot information includes configuration information as shown in the table below.
[0231]
In one aspect, IBT 304 has a configuration register. Configuration registers are used to enable the backplane and IPC / IGC destination slots.
[0232]
At
[0233]
At
[0234]
At
[0235]
At
[0236]
At
[0237]
At
[0238]
T. Management process and error control
This section describes possible error conditions on serial links and cross-point switches in the backplane and various error control aspects of the present invention. Various recovery and reset routines of the present invention are also described.
[0239]
The routines described herein are generally configured to detect, prevent, and recover from errors having the following properties:
[0240]
1) Link errors: Link errors occur as a result of bit errors or byte alignment problems in SERDES. As the clock is recovered from the data stream, byte alignment problems can occur if there are not enough data transitions. Bit errors can occur as a result of external noise on the line. SERDES can also detect exceptional conditions such as SOP characters in
[0241]
2) Lane synchronization error: A lane is defined as one serial link between the four serial links that make up a 10Gbps SERDES. As described elsewhere herein, four deep FIFOs in the SERDES core are provided to compensate for transmission line skew and synchronize each lane so that the integrated 10 Gbps stream is provided to the core logic. is there. The FIFO can overflow or underflow, resulting in lane synchronization errors. Lane synchronization sequences can also cause alignment problems.
[0242]
3) Stripe synchronization error: A stripe synchronization error refers to an error in the wide cell flow of data transmitted over multiple stripes over the switching fabric according to the present invention. Such a stripe synchronization error (also referred to as a stripe synchronization error condition or simply an error condition) is caused by a link error in the serial pipe to or from the cross point or an error in the cross point itself. there is a possibility.
[0243]
In one aspect, the receiving BIA includes a deep FIFO (such as 56 FIFOs or 64 FIFOs) that is sorted according to source and stripe. Stripe synchronization errors can be detected by monitoring the FIFO and detecting overflow and / or underflow of one or more FIFOs in the striped data path. In other situations, each stripe may be out of sync at all. In one recovery aspect, some or all XPNT modules arbitrate independently, i.e., each XPNT module operates independently and clears the affected FIFO as described elsewhere herein. To recover from a known state.
[0244]
Other error conditions and combinations of error conditions are possible, as will be apparent to those skilled in the art based at least on the disclosure herein.
[0245]
Routines for detecting and preventing these error conditions are described generally below, and then with respect to the detailed aspects of the present invention.
[0246]
In general, the present invention can manage a bus translator as shown in FIG. Referring to FIG. 26, a flowchart illustrates a bus translator management process according to one aspect of the present invention. The process of FIG. 26 begins at
[0247]
At
[0248]
At
[0249]
At
[0250]
At
[0251]
At
[0252]
At
[0253]
In one aspect, any errors detected at the receiving end of
[0254]
a. Send a packet abort (AOP) signal to all slots.
[0255]
b. Wait for the error to clear, that is, to clear or flush the buffer.
[0256]
c. After the buffer is cleared, the SOP starts accepting data in synchronization with the first K0 token.
[0257]
If an error is detected at the receiving end of the IBT 304, the error is handled as if it were seen by the
[0258]
a. Send AOP to all downstream IPC / IGC slots and end any ongoing packets.
[0259]
b. Wait for the buffer to fill and clear the data that caused the error.
[0260]
c. After the error is resolved (after the buffer is flushed), data reception starts in synchronization with the K0 token.
[0261]
(1) BIA management module
In one aspect, the
[0262]
The stripe
[0263]
FIG. 28B illustrates a
[0264]
Consider the example where a wide cell of data is transmitted from
[0265]
In other embodiments,
[0266]
The
[0267]
In the above example,
[0268]
In another example, XPNT0 2856A stops working and can no longer work. In such a case, the switch shown in FIG. 28B fails. As described below, the entire system will still function due to the presence of the redundant switch fabric and redundant fabric transceiver (RFT) of the present invention. In such a case, the RFT can detect a link failure and switch to the fabric of another switch according to the steps outlined below.
[0269]
In another example, link 2857 between xpnt0 2856A and
[0270]
The function of the
[0271]
At
[0272]
At
[0273]
At
[0274]
At
[0275]
At
[0276]
Another routine for
[0277]
At
[0278]
At
[0279]
At
[0280]
At
[0281]
[0282]
(2) Redundant fabric transceiver
In the following, other detailed aspects of the present invention are described with respect to one or more redundant fabric transceiver (RFT) implementations that implement the functionality of
[0283]
According to an aspect of the present invention, an RFT ASIC is provided between one SBIA ASIC and two switching fabric modules (SFM) to provide switching redundancy in the switching system described herein.
[0284]
32A-32B show the basic connections of the switch fabric. In FIG. 32A, FIG. 3200A shows a non-redundant switching system.
[0285]
For the redundancy switch of FIG. 32B, fabric active 3210 feeds all slave modules (in / out). In one aspect, a point-to-point serial link on the backplane is used. This redundant approach uses twice as many serial links as the non-redundant approach. Thus, the
[0286]
Thus, the RFT of the present invention performs redundant switching and converts the encoded source / destination slot information to address the following tasks: i) operation as a multiplexer and demultiplexer; ii) flow control. Iii) flow control generation, iv) SERDES, and v) error handling. Thus, RFT is an implementation of the present invention that performs the functions already described herein with respect to
[0287]
FIG. 33A is a detailed diagram 3300A showing one aspect in which RFT is implemented in a redundant system. As shown, switching blade (SFM-A) 3302 and switching blade (SFM-B) 3304 are coupled to a
[0288]
Within
[0289]
FIG. 33B is a diagram 3300B of an RFT according to one embodiment of the present invention. FIG. 33B shows that
[0290]
In one aspect, the received serial data is converted to parallel data by SERDES, as described elsewhere herein. With this data, the clock can be recovered from the incoming data stream. Thus, each SERDES generates a clock recovered from the data. In one aspect,
[0291]
In one aspect, all traffic is routed to a symmetric architecture for uplink / downlink logic. This architecture is illustrated in FIG. 33B by
[0292]
In one aspect, paging times in
[0293]
Both the BIA_TX3364 and BP_TX3366 modules arbitrate read operations from the downlink /
[0294]
The
[0295]
As described above with respect to FIG. 33A, the backplane establishes a connection between the switching fabric module and the slave module. In one aspect, the connections include, but are not limited to, i) serial TX and serial RX pairs, ii) flow control data and synchronization, iii) cross point error signals, intercept signals, fabric active signals, and the like. And iv) clock distribution signals.
[0296]
The packet encoding scheme has been described in detail with respect to sections I and J above, and the striping scheme has been illustrated with respect to FIG. With particular attention to the RFT, the processes of FIGS. 26, 29, and 30 have been described with respect to the RFT of the present invention.
[0297]
In one aspect, the maximum size of the payload transferred on the backplane is 160 bytes (148 bytes data max, 10 bytes "Start of Cell" (SOC) control information, and two reserved bytes. ). In this embodiment, a complete 160 byte transfer is referred to as a "cell." The cells are not limited by this aspect, as described elsewhere herein. Thus, one cycle is a single 3.2 ns clock pulse (ie, 312.5 MHz). Cell transfers can occur in 20 byte "blocks" in eight consecutive cycles (as shown in FIG. 15A).
[0298]
The "status" byte can be assigned as shown in the table below.
[0299]
Note that the information in this table is similar to the information already described with respect to FIGS. 25A-25B for IBT to BIA. Here, we discuss XPNT from BIA. In each aspect, there may be three special K characters for the encoding scheme: K0 (SOC), K1 (EOP), and K2 (stripe synchronization).
[0300]
K0 indicates "beginning of cell" which is the first block of cells across all five stripes.
[0301]
K1 indicates "end of packet" that can appear in any block of the cell. It is transparent to RFT and SXPNT.
[0302]
K2 is used to encode the stripe synchronization sequence. Stripe synchronization requires sending K2 characters across all lanes and all stripes. In one aspect, the special character is transmitted 112 times. Thereafter, all stripes in the sync queue are marked "in sync". The number 112 was chosen because it matches the depth of the synchronization queue in this embodiment, and therefore, if there is no data remaining in the queue after the last K2 was detected, this is considered a stripe synchronization error. Because they can be considered. The invention is not limited by this aspect, and the synchronization queues may have different depths.
[0303]
As will be appreciated by those skilled in the art based on the disclosure set forth herein, the function of implementing special characters is filling / flushing the synchronization queue. In one aspect, the SBIA transmits the pattern shown in FIG. 34A 112 times.
[0304]
In one aspect, the status field is encoded with the source slot number and one bit is used to indicate whether the cell is near the beginning or end of the sequence. For example, the status field can be encoded with the source slot number and whether the cell is in the middle of the first 96 transfers (of 112) in the stripe sequence, or if this is (112 The last 16 K2 transfers, of which one bit is used to indicate whether valid data is transmitted.
[0305]
The K2 sequence synchronization routine is shown in
[0306]
At
[0307]
In
[0308]
In
[0309]
In
[0310]
[0311]
At
[0312]
In one aspect, routine 3450 is periodically executed by
[0313]
The discussion of FIG. 34B emphasizes the importance of the SXPNT and SBIA clocks. This is because this clock should maintain stringent jitter and rise time requirements for the proper execution of routine 3450. In addition, due to the striping nature of RFT and SXPNT, it is necessary to maintain synchronization at all times. Thus, the various aspects of the routines described herein, and of these routines for error detection and recovery, are of particular importance.
[0314]
Embodiments of the present invention can implement both synchronous and asynchronous systems. In an asynchronous system, all blades, including the fabric, use the same clock source. The clock source can be located on the fabric and distributed to each slave module across the backplane so that the backplane acts as a purely passive component.
[0315]
In one aspect of a redundant switch fabric system, two system clocks can be sent from two switch fabric modules to one slave module. The circuit on the slave module works as the master clock. If the master clock fails in the event of a failover, the other clock becomes the master clock and the switching should be transparent to the components on the slave module.
[0316]
In asynchronous systems, the system decouples clock domains between blades. This means that every blade now has its own clock source. The purpose of configuring an asynchronous system is to eliminate the stringent jitter requirements imposed by the clock signal provided by the MUX. However, this system raises new problems with resynchronization of the interface signals at both ends (at the slave module).
[0317]
In the case of the SERDES signal, as already explained above, there is some built-in function to provide RX clock compensation when TX and RX use different clock sources. However, enabling RX compensation increases the ring time inside the SERDES.
[0318]
With respect to the flow control signals described above, the system implements control logic on the fabric and decodes time division multiplexed (TDM) signals into parallel signals, eliminating the need for a central ready synchronization signal. Detailed embodiments will be described below.
[0319]
In the case of synchronous flow control implementation, the flow control information passing between SXPNT and RFT is TDM, and the start of the time slot needs to be defined by the common synchronization signal. A central synchronization signal that tracks clock distribution increases the robustness of the system.
[0320]
FIG. 35 is a block diagram 3500 of the synchronous flow control mode including the RFT.
[0321]
In one aspect, there are two sets of flow control signals across the backplane. In other aspects, more than two signals are used for flow control. In the former mode, the following ready signal is implemented.
[0322]
a) Ready to receive: Each
[0323]
b) Transmission ready: Each SXPNT has a dedicated 2-bit ready signal for each
[0324]
In one aspect, a common synchronization signal is used to synchronize all transmit ready and receive ready signals between RFT / SXPNT and RFT / SBIA. For example, and not by way of limitation, the ready-to-transmit signal encodes seven states in four slots (8 cycles) using two bits, and the ready-to-receive signal uses seven bits (14 Encode the seven states in the cycle). The common sync may be a sync pulse every 56 cycles, which is the least common multiple of 8 and 14. Of course, the invention is not limited to these cycle numbers, and those skilled in the art will recognize that different durations can be implemented.
[0325]
In one aspect, the time slot for each state can be set to 78.125 MHz if one-half of the core frequency is 78.125 MHz, ie, if the core frequency is 156.25 MHz. The reason for using the two-cycle approach to time slots is to provide a two-cycle margin for the wire / cell delay between the SBIA ready register and the SXPNT ready register.
[0326]
FIG. 36 is a time flow diagram of how SBIA interprets the ready signal from SXPNT. A sync pulse is used to reset both SBIA and SXPNT internal counters. When the value of the counter is 55 or 0, as shown in FIG. 36 for illustration, the SXPNT internally sends a ready state corresponding to
[0327]
In a detailed embodiment, after three cycles, the ready status signal crosses the backplane. The SBIA then adds another two cycles of call time to the ready signal. Thus, when the count is equal to 5, the ready signal is latched inside the SBIA. This makes the path a true multi-cycle path from SXPNT to SBIA.
[0328]
When the RFT is placed between SBIA and SXPNT, the flow control operation is executed as it is. However, the SBIA / RFT and SXPNT / RFT call times are programmable to leave extra margin in the hardware trace. Thus, in aspects of the present invention, the paging time level of the system can be predetermined and thus an offset introduced to better predict the operating parameters of the system.
[0329]
Like FIG. 35, FIG. 37 shows the switching system of the present invention with asynchronous flow control.
[0330]
Flow control between
[0331]
a) Decode the 2-bit transmission ready signal as a 7-bit ready signal from each
[0332]
"Merge" means that if there is an SXPNT that is not ready for a particular slot, no RFT is allowed to send packets for that slot. This is different from synchronous systems that have independent flow control between stripes.
[0333]
b) Receive from the RFT a 7-bit receive slot ready signal, which is also a combination ready signal from five stripes, encoded in five 1-bit receive ready signals for SXPNT.
[0334]
With respect to the RFT aspects described herein, potential error conditions on the serial link and backplane, and preventive and remedial measures are described. Further, an aspect of a failover procedure for changing from one switch blade to another switch blade will be described.
[0335]
The RFT module of the present invention may be located on the receiving side of the above error. The types of errors that can be detected by the RFT chip include:
[0336]
a) Link error: This can occur as a result of a bit error or a byte alignment error. In one aspect, the SERDES should send a "/ E" special character (error notification character) indicating a link error on the parallel data path.
[0337]
b) Lane synchronization error: This is a synchronous FIFO overflow / underflow. In one aspect, the SERDES should send a "GLINK" signal indicating a receiving lane synchronization error.
[0338]
c) Format error: This occurs because the cell format is incorrect. In one aspect, the "/ K0" special character that appears in lanes other than
[0339]
d) XPNT error: This is a wire or signal from five SXPNT chips. In one aspect, this signal indicates an error in the SXPNT or a problem with the received data.
[0340]
The RFT error handling routine conforms to the previously described routines (eg, the routines of FIGS. 29, 30, and 34B).
[0341]
In one aspect, in transmission from the SBIA to the RFT, the RFT detects an error in data received from the SBIA. This error may include a link error, a lane synchronization error, and a format error. After an error is detected, the following procedure (steps 1-4) can be applied to recover from the error.
[0342]
1) Send an RFT error signal to SBIA. SBIA stops transmitting data at the cell boundary and repeats the lane synchronization sequence until the RFT deasserts the RFT error. In one aspect, after deassertion, a stripe synchronization sequence is sent for all slots (eg, as described with respect to FIG. 34B).
[0343]
2) Send AOP to all slots and flush uplink RAM. If an error is detected in the received data, the encoded destination slot may be malfunctioning. Therefore, an abort signal is transmitted to all destination slots, and the already transmitted packet is discarded.
[0344]
3) Wait for the buffer to be cleared, thus clearing the error.
[0345]
4) Wait for stripe sync sequence and SOP to start accepting data.
[0346]
In one aspect, in a transmission from the SXPNT to the RFT, the RFT detects an error in data received from one of the SXPNTs to which it is connected. This error may include a link error, a lane synchronization error, and a format error. After one or more errors are detected, the following procedure can be applied to recover from the errors.
[0347]
1) Stop SXPNT from receiving more data in this slot.
[0348]
2) Send AOP to SBIA for all slots and flush downlink RAM.
[0349]
3) Wait for the buffer to be cleared, thus clearing the error.
[0350]
4) Wait for stripe sync sequence and SOP to start accepting data.
[0351]
In an aspect of the invention, the RFT error signal notifies the SBIA that the RFT is in error so that the SBIA stops transmitting packets to the RFT. This signal includes the following error notification.
[0352]
a) Cross point error: This is a wire or result from five SXPNTs on the active switching module.
[0353]
b) Fabric Active Error: This error occurs when the "Fabric" Active "signal becomes active or inactive on both sides simultaneously.
[0354]
c) Detected link error, lane synchronization error, or format error in data received from SBIA.
[0355]
If an error is detected at the switching module or deemed to be related to the switching module,
[0356]
In one aspect, the RFT, upon detecting an error in the data received from SXPNT, can generate an interrupt signal that interrupts flow control being performed within
[0357]
The errors that can generate an interrupt signal can be predetermined by programming the interrupt mask register in the RFT. These errors include: a) Synchronous FIFO overflow from core to SERDES, b) Synchronous FIFO overflow from SERDES to core, c) Link inoperability, e) Code error and / or format error, and f) XPNT Errors may be included, but are not limited to these. Other errors can be monitored and predetermined, as will be appreciated by those skilled in the art based at least on the disclosure provided herein.
[0358]
[0359]
[0360]
In a redundant switching mode, the network switch has one active / active switching blade and one idle / spare switching blade. According to these aspects, the RFT can send packets to the active blade and send idle characters to the idle blade. When the
[0361]
The RFT always sends a lane synchronization sequence to the standby switching blade to maintain a normal link. Therefore, when a failover occurs, no time is required to activate the spare switching blade.
[0362]
When a failover occurs, a failover procedure can be performed to ensure a safe transition to another switching blade. The following are two example routines that elaborate on certain aspects of the routines described herein.
[0363]
In one aspect, in transmission from the SBIA to the RFT, the RFT detects failover by monitoring a "fabric active" signal.
[0364]
1) Send an RFT error signal to SBIA. SBIA stops transmitting data at cell boundaries and repeats the lane synchronization sequence until the RFT error signal is deasserted. After being deasserted, a stripe synchronization sequence is sent for all slots.
[0365]
2) Flush the uplink RAM.
[0366]
3) Wait for the buffer to be cleared, thus clearing the error.
[0367]
4) Wait for stripe sync sequence and SOP to start accepting data.
[0368]
In one aspect, in the transmission from the SXPNT to the RFT, the RFT detects a failover by monitoring a "fabric active" signal.
[0369]
1) Send AOP to SBIA for all slots and flush downlink RAM. When the SBIA receives the AOP, it discards the received data before stripe synchronization.
[0370]
2) Wait for the buffer to be cleared, thus clearing the error.
[0371]
3) Wait for stripe sync sequence and SOP to start accepting data.
[0372]
According to a feature of the present invention, hitless switching of each blade of the system is possible. The term "hitless" means that there is no packet loss due to fabric changes. Under normal circumstances, a user may nevertheless want to change the fabric to increase performance or to make it more stable. In this case, the user wants to avoid unnecessary dropping of the packet. Further, another reason to use the upgrade procedure is to test the fabric. Switching can be performed using at least two procedures: debug and create.
[0373]
In one aspect, the first procedure allows
[0374]
1) First, the
[0375]
2)
[0376]
3)
[0377]
4) Some time (sufficient time to send out all the packets in the SXPNT and RFT buffers;
[0378]
5)
[0379]
6)
[0380]
In another embodiment, the following routine is used as the second procedure. In one aspect, the switching timer that sends out the packet in the RFT / SXPNT buffer is located in the RFT, and SBIA traffic deceleration is performed automatically as described above. In this aspect,
[0381]
1) First, in one hardware embodiment of the present invention, the command input pin can be driven high to enable hitless switching. It should also be noted that in one software aspect, the "hitless enable mode" bit and / or the "switch delay enable" bit may be set to enable hitless switching.
[0382]
2) The
[0383]
3) The "fabric active" input pin is toggled on all RFTs, each RFT slows down SBIA traffic and keeps sending packets to the old switch fabric until the switch timer expires.
[0384]
4) When the timer expires, both RFT and SXPNT should have sent all packets in the internal buffer. The RFT activates the new fabric and starts sending and receiving packets to and from the new switching fabric.
[0385]
5) In the above embodiment, the command input pin is driven low and hitless switching is disabled.
[0386]
Note that in both cases of failover and switching,
[0387]
U. Reset and recovery procedures
Follow the reset procedure below when synchronizing SERDES. When a reset is applied to the core, an external reset is asserted for SERDES. The reset pulse duration for SERDES may be less than 10 cycles. After the reset pulse, the SERDES transmitter and receiver synchronize with each other according to a prescribed procedure. SERDES assumes that the core synchronizes after being released from reset. For this reason, the reset pulse for the core must be much larger than the reset pulse for the SERDES core.
[0388]
The core relies on software interaction to synchronize the core. The
[0389]
Management software residing on the management blade is responsible for system maintenance work. According to aspects of the invention,
[0390]
In one aspect, the following reset procedure can be performed upon a system reboot.
[0391]
1) When a reset is applied to the core, an external reset is asserted for SERDES. The reset pulse duration for SERDES must be longer than 32 cycles (for a 156 MHz clock).
[0392]
2) After the reset pulse, the SERDES transmitter and receiver synchronize with each other according to a prescribed procedure. SERDES can be assumed to synchronize after the core is released from reset. . For this reason, the reset pulse for the core must be much larger than the reset pulse for the SERDES core.
[0393]
3) The core relies on interaction with
[0394]
4) SERDES makes lane synchronization status visible to
[0395]
5) If the
[0396]
6) Again, the BIA receiver sets a bit indicating that it is synchronized with the particular source slot.
[0397]
7) Upon determining this,
[0398]
Similar to the SBIA / SXPNT reset procedure, the RFT allows
[0399]
The following procedure is applied to reduce packet loss due to reset.
[0400]
a) Stop transmitting data to the transmitting SERDES at the cell boundary.
[0401]
b) Send lane synchronization sequence during SERDES reset.
[0402]
c) Start data transmission (SERDES is released from reset state).
[0403]
Although the RFT has three SERDES, in one aspect only two SERDES transfer packets and one SERDES is in standby mode. If the user installs only one switching fabric in the body, there is no corresponding SERDES transceiver for redundant SERDES. Therefore, the link for the redundant SERDES is always disabled. If the user does not want to install the switching fabric in the body, the redundant SERDES can be powered down to save energy and cycles and reduce processing overhead. To this end, the
[0404]
IV. Control logic
The functions described above with respect to the operation of
[0405]
V. Conclusion
While certain aspects of the invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. Those skilled in the art will appreciate that various changes may be made in the form and details of these embodiments without departing from the spirit and scope of the invention as defined in the appended claims. Therefore, the scope of the present invention should not be limited by the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
[Brief description of the drawings]
[0406]
FIG. 1 is a diagram of a high performance network switch according to aspects of the present invention.
FIG. 2 is a diagram of a high performance network switch showing a switching fabric having cross point switches coupled to blades according to aspects of the present invention.
3A is a diagram of a blade used in the high performance network switch of FIG. 1 in accordance with an aspect of the present invention.
FIG. 3B is a diagram showing a configuration of a blade according to another aspect of the present invention.
FIG. 4 is an architecture diagram of a cross-point switch with port slices according to aspects of the invention.
FIG. 5 is a diagram of the architecture of a port slice according to an aspect of the present invention.
FIG. 6 is a diagram of a backplane interface adapter according to aspects of the invention.
FIG. 7 illustrates a traffic processing path for local serial traffic received at a backplane interface adapter according to aspects of the present invention.
FIG. 8 is an illustration of an example switching fabric coupled to a backplane interface adapter, in accordance with aspects of the present invention.
FIG. 9 illustrates a traffic processing path for backplane serial traffic received at a backplane interface adapter, in accordance with an aspect of the present invention.
FIG. 10 is a flowchart of operational steps performed along a traffic processing path for local serial traffic received at a backplane interface adapter, in accordance with aspects of the present invention.
FIG. 11 is a flowchart of operational steps performed along a traffic processing path for backplane serial traffic received at a backplane interface adapter, in accordance with aspects of the present invention.
FIG. 12 is a flowchart of a routine for generating a wide striped cell according to an aspect of the present invention.
FIG. 13 is a diagram illustrating narrow cell and state information used in narrow cells according to aspects of the present invention.
FIG. 14 is a flowchart of a routine for encoding a wide striped cell according to an aspect of the present invention.
FIG. 15A illustrates the steps of encoding a wide striped cell according to aspects of the present invention.
FIG. 15B illustrates state information used in a wide striped cell according to aspects of the invention.
FIG. 15C illustrates end-of-packet encoding information used in a wide striped cell, in accordance with an aspect of the present invention.
FIG. 15D is a diagram illustrating an example of cell boundary alignment conditions when transmitting a wide striped cell in a plurality of stripes according to an aspect of the present invention.
FIG. 16 is a diagram illustrating an example of packet boundary alignment conditions when transmitting a wide striped cell in a plurality of stripes according to an aspect of the present invention.
FIG. 17 shows a block diagram of a bus translator according to one aspect of the present invention.
FIG. 18 shows a block diagram of a receiving component according to one aspect of the present invention.
FIG. 19 shows a block diagram of a transmission component according to one aspect of the present invention.
FIG. 20 shows a detailed block diagram of a bus translator according to one aspect of the present invention.
FIG. 21A shows a detailed block diagram of a bus translator according to another aspect of the present invention.
FIG. 21B shows a functional block diagram of a data path having a receiving component of a bus translator, according to one aspect of the present invention.
FIG. 21C shows a functional block diagram of a data path having a transmitting component of a bus translator, according to one aspect of the present invention.
FIG. 21D shows a functional block diagram of a data path having a native mode receiving component of a bus translator, according to one aspect of the present invention.
FIG. 21E shows a block diagram of a cell format according to one aspect of the present invention.
FIG. 22 shows a flowchart of an encoding process for a bus translator according to one aspect of the present invention.
23A-23B illustrate detailed flowcharts of a bus translator encoding process according to one aspect of the present invention.
FIG. 24 shows a flowchart of a decoding process for a bus translator according to one aspect of the present invention.
25A-25B illustrate a detailed flow chart of a bus translator decoding process according to one aspect of the present invention.
FIG. 26 illustrates a flowchart of a bus translator management process according to one aspect of the present invention.
27A-27E illustrate a routine for processing data in a port slice based on wide cell coding and flow control conditions, according to one aspect of the present invention.
FIG. 28A shows a block diagram of a management module according to one aspect of the present invention.
FIG. 28B shows a block diagram of a cross-point architecture according to one aspect of the present invention.
FIG. 29 illustrates a routine for keeping striped cell traffic synchronized in accordance with one aspect of the present invention.
FIG. 30 illustrates a routine for detecting asynchronous traffic flow through a cross-point switch having a backplane switching fabric according to one aspect of the present invention.
FIG. 31 illustrates an example of how obvious an error condition on an incoming link is at the level of data present in the receiving blade synchronization queue sorted by stripe and source, according to an aspect of the invention.
32A-32B show block diagrams of example architectures according to aspects of the present invention.
FIG. 33A shows a block diagram of a blade module enabled by a redundant fabric transceiver, according to one aspect of the present invention.
FIG. 33B shows a block diagram of a redundant fabric transceiver according to one aspect of the present invention.
FIG. 34A shows a table showing cell characters across five stripes according to one embodiment of the present invention.
FIG. 34B shows a routine for a K2 (Special Character) synchronization sequence according to one aspect of the present invention.
FIG. 35 illustrates a block diagram of a synchronous flow control implementation of a redundant fabric transceiver according to one aspect of the present invention.
FIG. 36 shows a timing diagram of time domain multiplexing of a synchronous flow control implementation according to one aspect of the present invention.
FIG. 37 shows a block diagram of an asynchronous flow control implementation of a redundant fabric transceiver according to one aspect of the present invention.
Claims (137)
シリアル・パイプを介して該切替えファブリックに結合された複数のブレードとを含み、
各ブレードが、シリアル・データ・ストリームをインバンド制御情報と共に複数のストライプで該切替えファブリックに出力する、デジタル・スイッチ。Switching fabric,
A plurality of blades coupled to the switching fabric via a serial pipe;
A digital switch wherein each blade outputs a serial data stream to the switching fabric in a plurality of stripes along with in-band control information.
シリアル・パイプを介して該切替えファブリックに結合された複数のブレードとを含み、
各ブレードが、ポートを介してそれぞれのブレードに供給される入力シリアル・データ・ストリームの集合を表すシリアル・データ・ストリームを、インバンド制御情報と共に複数のストライプで出力し、
該切替えファブリックが、複数のストライプとして出力された集合的なシリアル・データを切り替える、デジタル・スイッチ。Switching fabric,
A plurality of blades coupled to the switching fabric via a serial pipe;
Each blade outputs a serial data stream representing a set of input serial data streams supplied to each blade via a port in a plurality of stripes together with in-band control information;
A digital switch, wherein the switching fabric switches the collective serial data output as a plurality of stripes.
ナロー入力セルからのデータ・パケットを含むワイド・ストライプ化セルを生成する少なくとも1つのワイド・セル生成装置と、
生成されたワイド・ストライプ化セルを複数のストライプで切替えファブリックに送信する少なくとも1つの送信機とを含む、バックプレーン・インタフェース・アダプタ。At least one receiver for receiving a narrow input cell for transferring data packets;
At least one wide cell generator for generating wide striped cells including data packets from narrow input cells;
A backplane interface adapter, comprising: at least one transmitter for transmitting the generated wide striped cells to the switching fabric in a plurality of stripes.
少なくとも1つの受信機と少なくとも1つのワイド・セル生成装置との間に結合されたトラフィック・ソータをさらに含み、該トラフィック・ソータが宛先スロット識別子に基づく受信されたナロー入力セルをソートする、請求項12記載のバックプレーン・インタフェース・アダプタ。A backplane interface adapter, wherein each narrow input cell includes a destination slot identifier identifying a slot in the switching fabric over which the respective narrow input cell is transmitted,
The traffic sorter further coupled between the at least one receiver and the at least one wide cell generator, wherein the traffic sorter sorts received narrow input cells based on a destination slot identifier. The backplane interface adapter according to item 12.
複数のストライプが5つのストライプを含み、
少なくとも1つの送信機が5つのシリアライザ送信機を含み、
各入力シリアライザ送信機が、生成されたワイド・ストライプ化セルのブロックのデータのそれぞれのストライプをバックプレーン・シリアル・パイプ上で切替えファブリック内のそれぞれのクロス・ポイント・スイッチに送信する、請求項12記載のバックプレーン・インタフェース・アダプタ。At least one receiver includes four deserializer receivers that receive narrow input cells transmitting data packets in four serial data streams from four corresponding input serial pipes;
Multiple stripes include five stripes,
At least one transmitter includes five serializer transmitters,
13. The input serializer transmitter transmits a respective stripe of data of the generated block of wide striped cells to a respective cross point switch in the switching fabric over a backplane serial pipe. Backplane interface adapter as described.
ここで、K0はセルの始めを示す特殊制御文字を表す1バイトであり、状態は1バイトの状態情報であり、データ0〜データ7は8バイトのペイロード・データを表し、予約は1予約バイトである、請求項12記載のバックプレーン・インタフェース・アダプタ。Each wide cell generator encodes at the beginning of a packet an initial 20 byte block of a starting wide striped cell having 20 bytes of data distributed over 5 stripes as follows:
Here, K0 is 1 byte representing a special control character indicating the beginning of a cell, the status is 1 byte of status information, data 0 to data 7 represent 8 bytes of payload data, and reserved is 1 reserved byte. 13. The backplane interface adapter of claim 12, wherein:
受信されたワイド・ストライプ化セルを、データ・パケットを転送するナロー入力セルに変換するトランスレータと、
該ナロー入力セルを対応する送信元パケット・プロセッサに送信する少なくとも1つの送信機とをさらに含む、請求項12記載のバックプレーン・インタフェース・アダプタ。At least one receiver for receiving wide striped cells for transferring data packets from the switching fabric in a plurality of stripes;
A translator for converting the received wide striped cells into narrow input cells for forwarding data packets;
13. The backplane interface adapter of claim 12, further comprising: at least one transmitter for transmitting the narrow input cell to a corresponding source packet processor.
該少なくとも1つのワイド・ストライプ化セル受信機に結合されたストライプ・インタフェースと、
該ストライプ・インタフェースに結合された複数のストライプ受信同期キューとをさらに含み、該ストライプ・インタフェースが、各ストライプ内の該受信されたサブブロックを送信元スロット識別子情報に基づいてソートし、該ソート済みの受信されたサブブロックを該ストライプ受信同期キューに格納する、請求項12記載のバックプレーン・インタフェース・アダプタ。Wide striped cell transfers data packets across multiple stripes and receives wide striped cell sub-blocks containing source packet processor identifier and source slot identifier information in multiple stripes from switching fabric At least one wide striped cell receiver,
A stripe interface coupled to the at least one wide striped cell receiver;
A plurality of stripe receive synchronization queues coupled to the stripe interface, the stripe interface sorting the received sub-blocks in each stripe based on source slot identifier information; 13. The backplane interface adapter of claim 12, wherein the received sub-blocks are stored in the stripe receive synchronization queue.
ストライプ受信同期キューに記憶されているデータがストライプ・ベースのワイド・セル・アセンブラに送信される順序を調停する該アービトレータに結合され、該受信されたデータ・サブブロックに基づいてワイド・ストライプ化セルをアセンブルする、ストライプ・ベースのワイド・セル・アセンブラと、
該ストライプ・ベースのワイド・セル・アセンブラに結合され、調停済みの受信されたワイド・ストライプ化セルを、データ・パケットを転送するナロー入力セルに変換するトランスレータと、
ローカル・トラフィック・ソータによって送信されたナロー・セル、および該トランスレータによって変換された該ナロー・セルを格納する複数の宛先キューと、
該複数の宛先キューに格納されているデータが少なくとも1つの送信機に送信される順序を調停するローカル宛先送信アービトレータと、
該ナロー入力セルを対応する送信元パケット・プロセッサに送信する少なくとも1つの送信機とをさらに含む、請求項34記載のバックプレーン・インタフェース・アダプタ。An arbitrator,
A wide striped cell coupled to the arbitrator for arbitrating the order in which data stored in the stripe receive synchronization queue is transmitted to the stripe-based wide cell assembler and based on the received data sub-block. And a stripe-based wide cell assembler that assembles
A translator coupled to the stripe-based wide cell assembler and for converting arbitrated received wide striped cells to narrow input cells for forwarding data packets;
A plurality of destination queues for storing the narrow cells transmitted by the local traffic sorter and the narrow cells transformed by the translator;
A local destination transmission arbitrator for arbitrating the order in which the data stored in the plurality of destination queues is transmitted to at least one transmitter;
35. The backplane interface adapter of claim 34, further comprising: at least one transmitter for transmitting the narrow input cell to a corresponding source packet processor.
該少なくとも1つの受信機に結合されたストライプ・インタフェースと、
各ストライプ内の該受信されたサブブロックを送信元パケット・プロセッサ識別子および送信元スロット識別子情報に基づいてソートし、該ソート済みの受信されたサブブロックを該ストライプ受信同期キューに格納するストライプ・インタフェースに結合された複数のストライプ受信同期キューを含む、バックプレーン・インタフェース・アダプタ。Wide striped cell transfers data packets across multiple stripes and receives wide striped cell sub-blocks containing source packet processor identifier and source slot identifier information in multiple stripes from switching fabric At least one receiver to
A stripe interface coupled to the at least one receiver;
A stripe interface for sorting the received sub-blocks in each stripe based on source packet processor identifier and source slot identifier information and storing the sorted received sub-blocks in the stripe receive synchronization queue Backplane interface adapter that contains multiple striped receive synchronization queues coupled to the
該アービトレータに結合されるストライプ・ベースのワイド・セル・アセンブラとをさらに含み、
該アービトレータが、ストライプ受信同期キューに記憶されているデータがストライプ・ベースのワイド・セル・アセンブラに送信される順序を調停し、該ストライプ・ベースのワイド・セル・アセンブラが、受信されたデータ・サブブロックに基づいてワイド・ストライプ化セルをアセンブルする、請求項37記載のバックプレーン・インタフェース・アダプタ。An arbitrator,
A stripe-based wide cell assembler coupled to the arbitrator;
The arbitrator arbitrates the order in which data stored in the stripe receive synchronization queue is sent to the stripe-based wide cell assembler, and the stripe-based wide cell assembler transmits the received data to the stripe-based wide cell assembler. 38. The backplane interface adapter of claim 37, wherein the backplane interface adapter assembles wide striped cells based on sub-blocks.
該ナロー入力セルを対応する送信元パケット・プロセッサに送信する少なくとも1つの送信機とをさらに含む、請求項38記載のバックプレーン・インタフェース・アダプタ。A translator coupled to the stripe-based wide cell assembler for converting the arbitrated received wide striped cells to narrow input cells for forwarding data packets;
39. The backplane interface adapter of claim 38, further comprising: at least one transmitter for transmitting the narrow input cell to a corresponding source packet processor.
該複数の宛先キューに格納されているデータが少なくとも1つの送信機に送信される順序を調停するローカル宛先送信アービトレータとをさらに含む、請求項39記載のバックプレーン・インタフェース・アダプタ。A plurality of destination queues for storing narrow cells transmitted by the local traffic sorter and narrow cells translated by the translator;
40. The backplane interface adapter of claim 39, further comprising: a local destination transmit arbitrator for arbitrating the order in which data stored in the plurality of destination queues is transmitted to at least one transmitter.
ナロー入力セルのデータ・パケットを含むワイド・ストライプ化セルを生成する少なくとも1つのワイド・セル生成装置と、
生成されたワイド・ストライプ化セルを複数のストライプで切替えファブリックに送信する少なくとも1つのシリアライザ送信機と、
データ・パケットを転送するワイド・ストライプ化セルを複数のストライプで切替えファブリックから受信する少なくとも1つのデシリアライザ受信機と、
受信されたワイド・ストライプ化セルを、データ・パケットを転送するナロー・セルに変換するトランスレータと、
ナロー入力セルを対応する送信元パケット・プロセッサに送信する少なくとも1つのナロー・セル・シリアライザ送信機とを含む、バックプレーン・インタフェース・アダプタ。At least one deserializer receiver for receiving a narrow input cell for transmitting data packets;
At least one wide cell generator for generating a wide striped cell including a data packet of a narrow input cell;
At least one serializer transmitter for transmitting the generated wide striped cells to the switching fabric in a plurality of stripes,
At least one deserializer receiver for receiving from a fabric switching wide striped cells for transferring data packets in a plurality of stripes;
A translator for converting the received wide striped cells into narrow cells for forwarding data packets;
A backplane interface adapter including at least one narrow cell serializer transmitter for transmitting a narrow input cell to a corresponding source packet processor.
ナロー入力セルを受信する段階と、
ワイド・ストライプ化セルを生成する段階と、
複数のストライプにわたるワイド・ストライプ化セルのブロックを送信する段階とを含む方法。A method of interfacing a serial pipe for transferring data packets with narrow input cells and a serial pipe for transferring data packets with wide striped cells,
Receiving a narrow input cell;
Generating a wide striped cell;
Transmitting a block of wide striped cells across a plurality of stripes.
受信段階が、4つのシリアル・データ・ストリームでデータ・パケットを転送するナロー入力セルを4つの対応する入力シリアル・パイプから受信し、
送信段階が、生成されたワイド・ストライプ化セルのブロックをバックプレーン・シリアル・パイプ上で5つのストライプで送信する、請求項43記載の方法。Multiple stripes include five stripes,
A receiving stage receives narrow input cells transferring data packets in four serial data streams from four corresponding input serial pipes;
44. The method of claim 43, wherein the transmitting step transmits the generated block of wide striped cells in five stripes over a backplane serial pipe.
各ナロー入力セルを解析する段階と、
パケットの始めを示す制御情報についてチェックする段階と、
パケットを転送するすべてのナロー入力セルのデータが1つまたは複数の新しいワイド・ストライプ化セルに分散されるまで1つまたは複数の新しいワイド・ストライプ化セルを符号化する段階と、
1つまたは複数の新しいワイド・ストライプ化セルを複数の送信キューに書き込む段階とを含む、請求項43記載の方法。The generation stage is
Analyzing each narrow input cell;
Checking for control information indicating the beginning of the packet;
Encoding one or more new wide-striped cells until the data of all narrow input cells transmitting the packet is distributed among the one or more new wide-striped cells;
Writing one or more new wide-striped cells to a plurality of transmit queues.
ここで、K0はセルの始めを示す特殊制御文字を表す1バイトであり、状態は1バイトの状態情報であり、データ0〜データ7は8バイトのペイロード・データを表し、予約は1予約バイトである、請求項53記載の方法。The encoding stage encodes at the beginning of the packet an initial 20 byte block of a starting wide striped cell having 20 bytes of data distributed over 5 stripes as follows:
Here, K0 is 1 byte representing a special control character indicating the beginning of a cell, the status is 1 byte of status information, data 0 to data 7 represent 8 bytes of payload data, and reserved is 1 reserved byte. 54. The method of claim 53, wherein
受信されたワイド・ストライプ化セルを、データ・パケットを転送するナロー入力セルに変換する段階と、
ナロー入力セルを対応する送信元パケット・プロセッサに送信する段階とをさらに含む、請求項43記載の方法。Receiving from a switching fabric a plurality of stripes of wide striped cells for transferring data packets;
Converting the received wide striped cells into narrow input cells for forwarding data packets;
Transmitting the narrow input cell to a corresponding source packet processor.
各ストライプ中の受信されたサブブロックを、宛先スロット識別子情報に基づいてソートする段階と、
ソート済みの受信されたサブブロックをストライプ受信同期キューに格納する段階とをさらに含む、請求項56記載の方法。Transferring a data packet across a plurality of stripes and receiving a sub-block of wide striped cells including destination slot identifier information from the switching fabric in the plurality of stripes;
Sorting the received sub-blocks in each stripe based on destination slot identifier information;
Storing the sorted received sub-blocks in a stripe receive synchronization queue.
受信されたデータ・サブブロックに基づいて調停段階の順序でワイド・ストライプ化セルをアセンブルする段階と、
調停済みの受信されたワイド・ストライプ化セルを、データ・パケットを転送するナロー入力セルに変換する段階とをさらに含む、請求項57記載の方法。Arbitrating the order in which the data stored in the stripe receive synchronization queue is assembled;
Assembling the wide striped cells in the order of the arbitration phase based on the received data sub-blocks;
Converting the arbitrated received wide striped cell to a narrow input cell that forwards the data packet.
複数の宛先キューに格納されているデータが送信される順序をさらに調停する段階と、
ナロー入力セルを、さらなる調停段階の順序で、対応する送信元パケット・プロセッサに送信する段階とをさらに含む、請求項58記載の方法。Storing narrow cells in a plurality of destination queues;
Further arbitrating the order in which the data stored in the plurality of destination queues is transmitted;
Transmitting the narrow input cells to the corresponding source packet processor in the order of the further arbitration steps.
(a)第1のワイド・ストライプ化セルの初期ブロックを初期セル符号化情報で符号化する段階と、
(b)第1のワイド・ストライプ化セルの初期ブロック内の利用可能な空間内でパケット・データの初期バイトを分散させる段階とを含む方法。A method of encoding a wide striped cell that transfers data packets across a stripe, comprising:
(A) encoding an initial block of the first wide striped cell with initial cell encoding information;
(B) distributing the initial bytes of packet data within the available space within the initial block of the first wide striped cell.
ここで、K0はセルの始めを示す特殊制御文字を表す1バイトであり、状態は1バイトの状態情報であり、データ0〜データ7は8バイトのペイロード・データを表し、予約は1予約バイトである、請求項61記載の方法。An initial block encoding step (a) encodes at the beginning of the packet an initial 20 byte block of a starting wide striped cell having 20 bytes of data distributed over 5 stripes as follows:
Here, K0 is 1 byte representing a special control character indicating the beginning of a cell, the status is 1 byte of status information, data 0 to data 7 represent 8 bytes of payload data, and reserved is 1 reserved byte. 62. The method of claim 61, wherein
(a)第1のワイド・ストライプ化セルの初期ブロックを初期セル符号化情報で符号化する手段と、
(b)第1のワイド・ストライプ化セルの初期ブロック内の利用可能な空間内でパケット・データの初期バイトを分散させる手段とを含むシステム。A system for encoding a wide striped cell that transfers data packets across a stripe, comprising:
(A) means for encoding an initial block of the first wide striped cell with initial cell encoding information;
(B) means for distributing the initial bytes of packet data within the available space within the initial block of the first wide striped cell.
ここで、K0はセルの始めを示す特殊制御文字を表す1バイトであり、状態は1バイトの状態情報であり、データ0〜データ7は8バイトのペイロード・データを表し、予約は1予約バイトである、請求項68記載のシステム。Initial block encoding means (a) encodes, at the beginning of the packet, an initial 20 byte block of a starting wide striped cell having 20 bytes of data distributed over 5 stripes as follows:
Here, K0 is 1 byte representing a special control character indicating the beginning of a cell, the status is 1 byte of status information, data 0 to data 7 represent 8 bytes of payload data, and reserved is 1 reserved byte. 70. The system of claim 68, wherein
パケットを解析してナロー・セルを得るトランスレータと、
第1群の1つまたは複数のトランシーバと、
第2群の1つまたは複数のトランシーバとを含み、該トランスレータが、該第1群の1つまたは複数のトランシーバおよび第2群の1つまたは複数のトランシーバに結合されるシステム。A system for translating packets,
A translator that analyzes packets to obtain narrow cells;
A first group of one or more transceivers;
A second group of one or more transceivers, wherein the translator is coupled to the first group of one or more transceivers and a second group of one or more transceivers.
トランスレータの1つまたは複数の動作を同期させる1つまたは複数の基準クロックとをさらに含む、請求項75記載のシステム。One or more memory pools for storing one or more packets and narrow cells;
77. The system of claim 75, further comprising one or more reference clocks that synchronize one or more operations of the translator.
1つまたは複数のパケットを解析して情報フィールドを得る1つまたは複数のパケット・デコーダと、
該情報フィールドから1つまたは複数のナロー・セルを構築する1つまたは複数のセル・エンコーダとを含む、請求項75記載のシステム。The translator is
One or more packet decoders that parse one or more packets to obtain an information field;
76. The system of claim 75, comprising one or more cell encoders that build one or more narrow cells from the information field.
1つまたは複数のナロー・セルを解析して情報フィールドを得る1つまたは複数のセル・デコーダと、
該情報フィールドから1つまたは複数のパケットを構築する1つまたは複数のパケット・エンコーダとを含む、請求項75記載のシステム。The translator is
One or more cell decoders that parse one or more narrow cells to obtain an information field;
76. The system of claim 75, comprising one or more packet encoders that build one or more packets from the information field.
データを含むペイロードとを含む、ナロー・セル・フォーマット。A header containing special characters and control information;
Narrow cell format, including a payload containing data.
セルの始めを示す特殊文字と、
該セル内のスロット情報および状態情報を含む制御情報と、
データを含むペイロードとを含む、セル・フォーマット。In the bus translator,
Special characters to mark the beginning of the cell,
Control information including slot information and state information in the cell;
Cell format, including payload containing data.
パケット処理構成要素の構成を含むポート・タイプを判定する段階と、
該ポート・タイプに依存するセル・フォーマットを選択する段階と、
ポートから1つまたは複数のパケットを受信する段階と、
1つまたは複数のパケットを解析して情報を得る段階と、
該情報を1つまたは複数のセルにフォーマットする段階と、
該1つまたは複数のセルをインタフェースに転送する段階とを含む方法。A method of converting a packet into cells,
Determining a port type that includes the configuration of the packet processing component;
Selecting a cell format dependent on the port type;
Receiving one or more packets from the port;
Analyzing one or more packets to obtain information;
Formatting the information into one or more cells;
Transferring the one or more cells to an interface.
1つまたは複数のセルを受信する段階と、
該1つまたは複数のセルを解析して情報を得る段階と、
該情報を1つまたは複数のパケットに格納する段階と、
該1つまたは複数のパケットを転送する段階とを含む方法。A method of converting cells into packets,
Receiving one or more cells;
Analyzing the one or more cells to obtain information;
Storing the information in one or more packets;
Forwarding the one or more packets.
該1つまたは複数のセルを同期させる段階とを含み、該キュー格納段階と該同期段階が解析段階の前に行われる、請求項91記載の方法。Queuing one or more cells;
92. The method of claim 91, comprising synchronizing the one or more cells, wherein the queue storing and the synchronizing are performed prior to the analyzing.
各クロス・ポイントが複数のポート・スライスを含む切替えファブリック。A switching fabric comprising a plurality of cross points for processing a plurality of stripes of serial data,
A switching fabric where each cross point contains multiple port slices.
複数のポートと、
それぞれ該ポートに結合された複数のポート・スライスとを含む、請求項95記載の切替えファブリック。Each cross point is
Multiple ports,
97. The switching fabric of claim 95, comprising: a plurality of port slices each coupled to the port.
該ポート・スライスのうちの他のポート・スライスに結合された複数のFIFOと、
各FIFOに結合され、該FIFOによって送信された読取り要求を調停するFIFO読取りアービトレータとを含む、請求項95記載の切替えファブリック。Each port slice is
A plurality of FIFOs coupled to other ones of the port slices;
97. The switching fabric of claim 95, further comprising: a FIFO read arbitrator coupled to each FIFO and arbitrating read requests transmitted by the FIFO.
FIFOおよびFIFO読取りアービトレータに結合されたマルチプレクサと、
該マルチプレクサの出力に結合されたディスパッチャとをさらに含む、請求項98記載の切替えファブリック。Each port slice is
A multiplexer coupled to the FIFO and the FIFO read arbitrator;
99. The switching fabric of claim 98, further comprising: a dispatcher coupled to an output of the multiplexer.
受信されたデータを異なるポート・スライス内の適切なFIFOに書き込む累算器を含む、請求項95記載の切替えファブリック。Each port slice is
97. The switching fabric of claim 95, comprising an accumulator that writes received data to an appropriate FIFO in a different port slice.
複数のポートと、
それぞれ該ポートに結合された複数のポート・スライスとを含む、クロス・ポイント。A cross point having a stripe of serial data,
Multiple ports,
A cross point comprising a plurality of port slices each coupled to the port.
該ポート・スライスのうちの他のポート・スライスに結合された複数のFIFOと、
各FIFOに結合され、該FIFOによって送信された読取り要求を調停するFIFO読取りアービトレータとを含む、請求項102記載のクロス・ポイント。Each port slice is
A plurality of FIFOs coupled to other ones of the port slices;
103. The cross point of claim 102, further comprising: a FIFO read arbitrator coupled to each FIFO and arbitrating read requests transmitted by the FIFO.
FIFOおよびFIFO読取りアービトレータに結合されたマルチプレクサと、
該マルチプレクサの出力に結合されたディスパッチャとをさらに含む、請求項103記載のクロス・ポイント。Each port slice is
A multiplexer coupled to the FIFO and the FIFO read arbitrator;
104. The cross point of claim 103, further comprising: a dispatcher coupled to an output of the multiplexer.
受信されたデータを異なるポート・スライス内の適切なFIFOに書き込む累算器を含む、請求項103記載のクロス・ポイント。Each port slice is
114. The cross point of claim 103, comprising an accumulator that writes received data to an appropriate FIFO in a different port slice.
あるポート・スライスにおいて、
他のポート・スライスから受信されたデータを複数のFIFOに格納する段階と、
格納されたデータの読取りを調停する段階とを含む方法。A method of processing stripes of data at cross points,
In a port slice,
Storing data received from other port slices in a plurality of FIFOs;
Arbitrating the reading of the stored data.
受信同期FIFO内の64ビット・エントリを管理する段階と、
受信同期FIFOから2つの32ビット・データ・チャンクを受信する段階と、
受信された2つの32ビット・データ・チャンクの第1のバイト内のK0を検出する段階と、
K0が検出された場合に、セル・ヘッダ内の状態フィールドから宛先スロットを抽出する段階とを含む方法。A method of processing data in a port slice based on a wide cell encoding and an external flow control command, the method comprising:
Managing 64-bit entries in the receive synchronization FIFO;
Receiving two 32-bit data chunks from a receive synchronization FIFO;
Detecting K0 in the first byte of the two received 32-bit data chunks;
Extracting the destination slot from the status field in the cell header if K0 is detected.
セル・ヘッダが下位整列または上位整列している場合に、宛先スロットに対応するデータFIFOに64ビット・データを書き込む段階と、
セル・ヘッダが下位整列または上位整列している場合に、2つの宛先スロットに対応する2つのデータFIFOに2つの64ビット・データを書き込む段階と、
セルが64ビット境界で終わっておらず、後続のセルが異なるスロット宛である場合に、第2の32ビット・データ・チャンクにアイドル文字を充填する段階とをさらに含む、請求項109記載の方法。Determining whether the cell header is bottom-ordered or top-ordered;
Writing 64-bit data to the data FIFO corresponding to the destination slot when the cell header is low-order or high-order;
Writing two 64-bit data to two data FIFOs corresponding to the two destination slots when the cell header is low-order or high-order;
Filling the second 32-bit data chunk with idle characters if the cell does not end on a 64-bit boundary and subsequent cells are destined for a different slot. .
複数のFIFO RAMが空であることをFIFO読取りアービトレータが示した場合に、SERDES同期FIFOモジュールおよび送信機に送信すべき第1の整列シーケンスを挿入する段階と、
現在の事前にスケジューリングされた整列シーケンスが完全に終了するまで要求側の要求を満たすのを一時的に停止するようFIFO読取りアービトレータに指示する段階とをさらに含む、請求項110記載の方法。Providing 64-bit data to the SERDES synchronous FIFO module and transmitter when non-idle data is received from the FIFO read arbitrator;
Inserting a first alignment sequence to be sent to the SERDES synchronous FIFO module and the transmitter when the FIFO read arbitrator indicates that the plurality of FIFO RAMs are empty;
Instructing the FIFO read arbitrator to temporarily stop satisfying the requestor's request until the current pre-scheduled alignment sequence has completely completed.
受信側ブレードで受信されるデータを監視するレベル・モニタと、
該レベル・モニタによって監視されるデータの量に基づいてストライプ同期エラーを検出するストライプ同期エラー検出器とを含む、管理モジュール。A digital switch is used in a digital switch that includes a plurality of blades coupled to a switching fabric, each blade outputting a serial data stream to the switching fabric in a plurality of stripes with in-band control information. A management module,
A level monitor for monitoring data received by the receiving blade;
A stripe synchronization error detector for detecting a stripe synchronization error based on an amount of data monitored by the level monitor.
レベル・モニタが、各データ構造受信側ブレードに格納されているデータのレベルを監視し、
ストライプ同期エラー検出器が、特定の送信元からのそれぞれのストライプ上で受信されたデータの量におけるオーバフロー条件およびアンダーフロー条件の少なくとも一方を検出する、管理モジュール。The management module of claim 114, wherein the data received at the receiving blade is sorted based on stripe / source information, and stored in a set of data structures.
A level monitor monitors the level of data stored in each data structure receiving blade,
A management module, wherein the stripe synchronization error detector detects at least one of an overflow condition and an underflow condition in the amount of data received on each stripe from a particular source.
(a)受信側スロットで受信されたデータを、ストライプ・送信元情報に基づいてソートする段階と、
(b)ソートされたデータを1組のデータ構造に格納する段階と、
(c)各データ構造に格納されているデータのレベルを監視する段階と、
(d)特定の送信元からのそれぞれのストライプ上で受信されたデータの量におけるオーバフロー条件およびアンダーフロー条件の少なくとも一方を検出する段階とを含む方法。A method for detecting a stripe synchronization error in a network switch, comprising:
(A) sorting the data received at the receiving slot based on the stripe / source information;
(B) storing the sorted data in a set of data structures;
(C) monitoring the level of data stored in each data structure;
(D) detecting at least one of an overflow condition and an underflow condition in the amount of data received on each stripe from a particular source.
(a)共通の文字をストライプ化セルで、すべてのレーンにおいて所定のサイクル数にわたって送信する段階と、
(b)ストライプ受信同期キューで受信された共通の制御文字を評価する段階と、
(c)ストライプ受信同期キューがクリアされたことを示す同期条件が存在する場合にそれを検出する段階とを含む方法。A method of keeping striped cell traffic synchronized, comprising:
(A) transmitting a common character in a striped cell in all lanes for a predetermined number of cycles;
(B) evaluating a common control character received at the stripe receive synchronization queue;
(C) detecting, if any, a synchronization condition indicating that the stripe receive synchronization queue has been cleared.
(a)ストライプ受信同期キューのレベルを監視する段階と、
(b)非同期条件が存在するかどうかを判定する段階と、
(c)該非同期条件が存在する場合に、再同期ルーチンを開始する段階とを含む方法。A method of managing asynchronous traffic flow via a cross point switch in a switching fabric, comprising:
(A) monitoring the level of the stripe receive synchronization queue;
(B) determining whether an asynchronous condition exists;
(C) initiating a resynchronization routine if the asynchronous condition exists.
(d)共通の文字をストライプ化セルで、すべてのレーンにおいて所定のサイクル数にわたって送信する段階と、
(e)ストライプ受信同期キューで受信された共通の制御文字を評価する段階と、
(f)ストライプ受信同期キューがクリアされたことを示す同期条件が存在する場合にそれを検出する段階とをさらに含む、請求項124記載の方法。After the start phase (c),
(D) transmitting a common character in a striped cell in all lanes for a predetermined number of cycles;
(E) evaluating common control characters received in the stripe receive synchronization queue;
125. The method of claim 124, further comprising: (f) detecting a synchronization condition, if any, indicating that the stripe receive synchronization queue has been cleared.
バックプレーン接続によって各切替えブレードに結合された少なくとも1つのブレードとを含む、冗長切替えシステムであって、
該少なくとも1つのブレードが、該2つの切替えブレード上のクロス・ポイント間でトラフィックを切り替え可能な複数の冗長切替えトランシーバを含む、冗長切替えシステム。Two switching blades, each having a plurality of cross points corresponding to each stripe of the serial data stream;
A redundant switching system comprising at least one blade coupled to each switching blade by a backplane connection.
A redundant switching system, wherein the at least one blade includes a plurality of redundant switching transceivers capable of switching traffic between cross points on the two switching blades.
少なくとも1つより多い切替えファブリック・モジュールに結合され、同様のデータを実質的に同時に送信する、1つまたは複数の第1のポートと、
通信データの1つのバージョンを含むことが可能な同様のデータから、送信される通信データを選択するマルチプレクサと、
該通信データを受信し、条件付けし、且つ送信するダウンリンク・トランシーバと、
該マルチプレクサから送信された該通信データを受信し、該通信データをバス・インタフェース・アダプタに転送する1つまたは複数の第2のポートとを含む、冗長ファブリック・トランシーバ。A redundant fabric transceiver coupled to the bus interface adapter,
One or more first ports coupled to at least one or more switching fabric modules and transmitting similar data substantially simultaneously;
A multiplexer that selects transmitted communication data from similar data that may include one version of the communication data;
A downlink transceiver for receiving, conditioning and transmitting the communication data;
One or more second ports for receiving the communication data transmitted from the multiplexer and transferring the communication data to a bus interface adapter.
Applications Claiming Priority (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US24987100P | 2000-11-17 | 2000-11-17 | |
| US09/855,031 US6697368B2 (en) | 2000-11-17 | 2001-05-15 | High-performance network switch |
| US09/855,024 US6735218B2 (en) | 2000-11-17 | 2001-05-15 | Method and system for encoding wide striped cells |
| US09/855,015 US7356030B2 (en) | 2000-11-17 | 2001-05-15 | Network switch cross point |
| US09/855,038 US7236490B2 (en) | 2000-11-17 | 2001-05-15 | Backplane interface adapter |
| US09/855,025 US20020091884A1 (en) | 2000-11-17 | 2001-05-15 | Method and system for translating data formats |
| PCT/US2001/043113 WO2002041544A2 (en) | 2000-11-17 | 2001-11-16 | High-performance network switch |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004537871A true JP2004537871A (en) | 2004-12-16 |
| JP2004537871A5 JP2004537871A5 (en) | 2005-05-26 |
Family
ID=27559366
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002543833A Withdrawn JP2004537871A (en) | 2000-11-17 | 2001-11-16 | High performance network switch |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP1380127A2 (en) |
| JP (1) | JP2004537871A (en) |
| AU (1) | AU2002217771A1 (en) |
| WO (1) | WO2002041544A2 (en) |
Cited By (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7903654B2 (en) | 2006-08-22 | 2011-03-08 | Foundry Networks, Llc | System and method for ECMP load sharing |
| US7948872B2 (en) | 2000-11-17 | 2011-05-24 | Foundry Networks, Llc | Backplane interface adapter with error control and redundant fabric |
| US7953922B2 (en) | 2004-10-29 | 2011-05-31 | Foundry Networks, Llc | Double density content addressable memory (CAM) lookup scheme |
| US7978702B2 (en) | 2000-11-17 | 2011-07-12 | Foundry Networks, Llc | Backplane interface adapter |
| US8037399B2 (en) | 2007-07-18 | 2011-10-11 | Foundry Networks, Llc | Techniques for segmented CRC design in high speed networks |
| US8090901B2 (en) | 2009-05-14 | 2012-01-03 | Brocade Communications Systems, Inc. | TCAM management approach that minimize movements |
| US8149839B1 (en) | 2007-09-26 | 2012-04-03 | Foundry Networks, Llc | Selection of trunk ports and paths using rotation |
| US8170044B2 (en) | 2002-05-06 | 2012-05-01 | Foundry Networks, Llc | Pipeline method and system for switching packets |
| US8448162B2 (en) | 2005-12-28 | 2013-05-21 | Foundry Networks, Llc | Hitless software upgrades |
| US8493988B2 (en) | 2004-03-26 | 2013-07-23 | Foundry Networks, Llc | Method and apparatus for aggregating input data streams |
| US8599850B2 (en) | 2009-09-21 | 2013-12-03 | Brocade Communications Systems, Inc. | Provisioning single or multistage networks using ethernet service instances (ESIs) |
| JP2014500646A (en) * | 2010-10-27 | 2014-01-09 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | Receiver and transceiver for optical multibus system |
| US8718051B2 (en) | 2003-05-15 | 2014-05-06 | Foundry Networks, Llc | System and method for high speed packet transmission |
| US8730961B1 (en) | 2004-04-26 | 2014-05-20 | Foundry Networks, Llc | System and method for optimizing router lookup |
| US9030943B2 (en) | 2006-11-22 | 2015-05-12 | Foundry Networks, Llc | Recovering from failures without impact on data traffic in a shared bus architecture |
| US9112780B2 (en) | 2007-01-11 | 2015-08-18 | Foundry Networks, Llc | Techniques for processing incoming failure detection protocol packets |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7649885B1 (en) | 2002-05-06 | 2010-01-19 | Foundry Networks, Inc. | Network routing system for enhanced efficiency and monitoring capability |
| US7266117B1 (en) | 2002-05-06 | 2007-09-04 | Foundry Networks, Inc. | System architecture for very fast ethernet blade |
| US20120155466A1 (en) | 2002-05-06 | 2012-06-21 | Ian Edward Davis | Method and apparatus for efficiently processing data packets in a computer network |
| US7468975B1 (en) | 2002-05-06 | 2008-12-23 | Foundry Networks, Inc. | Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability |
| EP1411682B1 (en) | 2002-10-16 | 2006-02-08 | Phoenix Contact GmbH & Co. KG | Modular Ethernet Switch architecture with G.Link and without Interface module addressing |
| US8271859B2 (en) | 2007-07-18 | 2012-09-18 | Foundry Networks Llc | Segmented CRC design in high speed networks |
| CN111124813A (en) * | 2019-12-04 | 2020-05-08 | 山东浪潮人工智能研究院有限公司 | Monitoring management system based on autonomous controllable software and hardware |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2770936B2 (en) * | 1990-12-18 | 1998-07-02 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Method of creating communication network and communication channel |
| US6151301A (en) * | 1995-05-11 | 2000-11-21 | Pmc-Sierra, Inc. | ATM architecture and switching element |
| US5822540A (en) * | 1995-07-19 | 1998-10-13 | Fujitsu Network Communications, Inc. | Method and apparatus for discarding frames in a communications device |
| US6038288A (en) * | 1997-12-31 | 2000-03-14 | Thomas; Gene Gilles | System and method for maintenance arbitration at a switching node |
-
2001
- 2001-11-16 WO PCT/US2001/043113 patent/WO2002041544A2/en not_active Ceased
- 2001-11-16 JP JP2002543833A patent/JP2004537871A/en not_active Withdrawn
- 2001-11-16 EP EP01996937A patent/EP1380127A2/en not_active Withdrawn
- 2001-11-16 AU AU2002217771A patent/AU2002217771A1/en not_active Abandoned
Cited By (29)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8619781B2 (en) | 2000-11-17 | 2013-12-31 | Foundry Networks, Llc | Backplane interface adapter with error control and redundant fabric |
| US8964754B2 (en) | 2000-11-17 | 2015-02-24 | Foundry Networks, Llc | Backplane interface adapter with error control and redundant fabric |
| US7978702B2 (en) | 2000-11-17 | 2011-07-12 | Foundry Networks, Llc | Backplane interface adapter |
| US7995580B2 (en) | 2000-11-17 | 2011-08-09 | Foundry Networks, Inc. | Backplane interface adapter with error control and redundant fabric |
| US9030937B2 (en) | 2000-11-17 | 2015-05-12 | Foundry Networks, Llc | Backplane interface adapter with error control and redundant fabric |
| US7948872B2 (en) | 2000-11-17 | 2011-05-24 | Foundry Networks, Llc | Backplane interface adapter with error control and redundant fabric |
| US8514716B2 (en) | 2000-11-17 | 2013-08-20 | Foundry Networks, Llc | Backplane interface adapter with error control and redundant fabric |
| US8170044B2 (en) | 2002-05-06 | 2012-05-01 | Foundry Networks, Llc | Pipeline method and system for switching packets |
| US8989202B2 (en) | 2002-05-06 | 2015-03-24 | Foundry Networks, Llc | Pipeline method and system for switching packets |
| US8811390B2 (en) | 2003-05-15 | 2014-08-19 | Foundry Networks, Llc | System and method for high speed packet transmission |
| US8718051B2 (en) | 2003-05-15 | 2014-05-06 | Foundry Networks, Llc | System and method for high speed packet transmission |
| US9461940B2 (en) | 2003-05-15 | 2016-10-04 | Foundry Networks, Llc | System and method for high speed packet transmission |
| US8493988B2 (en) | 2004-03-26 | 2013-07-23 | Foundry Networks, Llc | Method and apparatus for aggregating input data streams |
| US9338100B2 (en) | 2004-03-26 | 2016-05-10 | Foundry Networks, Llc | Method and apparatus for aggregating input data streams |
| US8730961B1 (en) | 2004-04-26 | 2014-05-20 | Foundry Networks, Llc | System and method for optimizing router lookup |
| US7953923B2 (en) | 2004-10-29 | 2011-05-31 | Foundry Networks, Llc | Double density content addressable memory (CAM) lookup scheme |
| US7953922B2 (en) | 2004-10-29 | 2011-05-31 | Foundry Networks, Llc | Double density content addressable memory (CAM) lookup scheme |
| US8448162B2 (en) | 2005-12-28 | 2013-05-21 | Foundry Networks, Llc | Hitless software upgrades |
| US9378005B2 (en) | 2005-12-28 | 2016-06-28 | Foundry Networks, Llc | Hitless software upgrades |
| US7903654B2 (en) | 2006-08-22 | 2011-03-08 | Foundry Networks, Llc | System and method for ECMP load sharing |
| US9030943B2 (en) | 2006-11-22 | 2015-05-12 | Foundry Networks, Llc | Recovering from failures without impact on data traffic in a shared bus architecture |
| US9112780B2 (en) | 2007-01-11 | 2015-08-18 | Foundry Networks, Llc | Techniques for processing incoming failure detection protocol packets |
| US8037399B2 (en) | 2007-07-18 | 2011-10-11 | Foundry Networks, Llc | Techniques for segmented CRC design in high speed networks |
| US8509236B2 (en) | 2007-09-26 | 2013-08-13 | Foundry Networks, Llc | Techniques for selecting paths and/or trunk ports for forwarding traffic flows |
| US8149839B1 (en) | 2007-09-26 | 2012-04-03 | Foundry Networks, Llc | Selection of trunk ports and paths using rotation |
| US8090901B2 (en) | 2009-05-14 | 2012-01-03 | Brocade Communications Systems, Inc. | TCAM management approach that minimize movements |
| US9166818B2 (en) | 2009-09-21 | 2015-10-20 | Brocade Communications Systems, Inc. | Provisioning single or multistage networks using ethernet service instances (ESIs) |
| US8599850B2 (en) | 2009-09-21 | 2013-12-03 | Brocade Communications Systems, Inc. | Provisioning single or multistage networks using ethernet service instances (ESIs) |
| JP2014500646A (en) * | 2010-10-27 | 2014-01-09 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | Receiver and transceiver for optical multibus system |
Also Published As
| Publication number | Publication date |
|---|---|
| AU2002217771A1 (en) | 2002-05-27 |
| WO2002041544A3 (en) | 2003-11-20 |
| EP1380127A2 (en) | 2004-01-14 |
| WO2002041544A2 (en) | 2002-05-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8514716B2 (en) | Backplane interface adapter with error control and redundant fabric | |
| JP2004537871A (en) | High performance network switch | |
| US6735218B2 (en) | Method and system for encoding wide striped cells | |
| EP1454440B1 (en) | Method and apparatus for providing optimized high speed link utilization | |
| US7978702B2 (en) | Backplane interface adapter | |
| US6697368B2 (en) | High-performance network switch | |
| US6584535B1 (en) | Configurable serial interconnection | |
| US6240096B1 (en) | Fibre channel switch employing distributed queuing | |
| US6792484B1 (en) | Method and apparatus for storing data using a plurality of queues | |
| US20020089977A1 (en) | Network switch cross point | |
| EP1297657B1 (en) | Method and apparatus for transferring packets to a memory | |
| US20020110120A1 (en) | Communication method for packet switching systems | |
| EP1232598A2 (en) | Backplane syncronization in a distributed system with clock drift and transport delay | |
| EP1216549A1 (en) | Queue resynch: synchronous real-time upgrade of a distributed switching system | |
| US6526024B1 (en) | Synchronization of asynchronous back-pressure from one destination to multiple sources |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20060119 |