(57)【特許請求の範囲】
【請求項１】
パケットを切り換えるネットワークのスイッチに於いて、
パケットの一部を切り換える複数のファブリックと、
ファブリック及びネットワークに接続されて、ネットワークからパケットを受信し、ネットワークにパケットを送るポートカードを具え、
ポートカードは、複数のファブリックの１つが故障しても、ネットワークにパケットをなおも送ることを許す機構を有し、
送ることを許す機構は、ファブリックからストライプ及びパリティデータを受信し、受信したストライプからパリティデータを計算し、受信したパリティデータと計算したパリティデータを比較して、１つのファブリックが故障したかどうかを判断する非分散器を具え
非分散器は、各ファブリックについてチェックサムを計算し、各ファブリックからのデータを順に交換し、各ファブリックについて計算されたチェックサムを、各ファブリックについて計算され、パケットと共に受信されパケットが分散処理される前に計算されたチェックサムと比較し、非分散器がファブリックの１つが故障したと判断したときは、故障したファブリックからのストライプを、他のストライプから修復することを特徴とするスイッチ。
【請求項２】
複数のファブリックは、ポートカードからパケットの一部を受信し、ポートカードにパケットの一部を送るｎ個のファブリックを含み、ｎは２以上の整数であり、ファブリックの１つは、パケットに関するパリティデータをポートカードに送り、且つポートカードからパリティデータを受信するパリティファブリックである請求項１に記載のスイッチ。
【請求項３】
送ることを許す機構は、パケットの一部をストライプとして、ストライプに対応するｎ個のファブリックに送り、パケットのチェックサムを計算し、チェックサムを分散処理前にパケットに加える分散器を有する、請求項２に記載のスイッチ。
【請求項４】
チェックサムは１６ビットである請求項１に記載のスイッチ。
【請求項５】
各ファブリックは、ポートカードからストライプを受信する集約装置、ストライプが格納されるメモリコントローラ、及びポートカードにストライプを送り戻すセパレータを有する請求項４に記載のスイッチ。
【請求項６】
パケットを切り換える方法であって、
スイッチのネットワークからポートカードにてパケットを受信する工程と、
スイッチのファブリックに、ポートカードからのストライプとしてパケットの一部を送る工程と、
ファブリックを用いてパケットの一部を切り換える工程と、
パケットの一部をファブリックからのストライプとしてポートカードに送り戻す工程と、
ファブリックの１つが故障を有しても、ポートカードを用いてパケットをネットワークに送る工程を有し、
ファブリックの１つは、パリティファブリックへのパケットに関するパリティデータを有するパリティストライプであり、
ポートカードに送り戻す工程は、ポートカードの非分散器にて、ファブリックからのストライプとパリティストライプを受信し、非分散器を用いて受信したストライプからパリティデータを計算し、パリティストライプから受信したパリティデータを、非分散器にて計算したパリティデータと比較し、ファブリックの１つが故障したかを判断する工程を含み、
比較する工程の後に、非分散器を用いてチェックサムを計算し、各ファブリックからのデータを順に交換し、各ファブリックについて計算されたチェックサムを、パケットと共に受信されパケットが分散処理される前に計算されたチェックサムと比較し、どのファブリックが故障したかを識別し、故障したファブリックからのストライプを、他のストライプから修復する工程を有する方法。
【請求項７】
スイッチのファブリックに送る工程は、ｎ個のファブリックの夫々に、パケットの一部のｎ個のストライプを送る工程を含み、ｎは２以上の整数である、請求項６に記載の方法。
【請求項８】
ｎ個のストライプを送る工程の前に、分散器を用いてパケットのチェックサムを計算し、チェックサムを分散処理前にパケットに加える工程がある請求項７に記載の方法。
【請求項９】
チェックサムは、１６ビットである請求項６に記載の方法。
【請求項１０】
切り換える工程は、ファブリックの集約装置にて、パケットの一部をストライプとして受信し、該パケットの一部をファブリックのメモリコントローラに格納する工程を含む請求項９に記載の方法。
【請求項１１】
ポートカードに送り戻す工程は、ファブリックのセパレータを用いて、メモリコントローラ内のパケットの一部をストライプとして、ポートカードの非分散器に送り戻す工程を含む請求項１０に記載の方法。
【発明の詳細な説明】
【０００１】
発明の分野
本発明は、複数のファブリックを有し、１つのファブリックの故障から修復できるスイッチに関する。特に、本発明は、複数のファブリックを有し、スイッチのファブリック上に分散されるパリティデータに加えられるチェックサムの助けを得て、１つのファブリックの故障から修復できるスイッチに関する。
【０００２】
発明の背景
複数のファブリックにデータを分散し、他のファブリックにパリティデータを送るスイッチは、米国特許出願第09/333,450号に記載されており、参照を以て記載に代える。ワイドメモリのＴＤＭスイッチングシステムを記載した米国特許出願第09/293,563号をも参照し、これを参照を以て記載に代える。本発明は、データの検出／修復を許し、スイッチの単一の要素を狙うことなく(hitless)修復することによく似たデータ通信システムに用いられる受信器アルゴリズムを記載している。
【０００３】
本発明では、ストライピング(分散処理)に用いられるスイッチが、チェンジオーバー(交替)タイムを要求することなく、１つのハードウエアの故障に耐えることができる。従来の冗長化システムでは、データソースを交換するのに、故障データの検出及びスイッチの再構成が必要である。故障してからシステムの再構成を成功するまでに時間が掛かると、スイッチを通るトラフィックに衝撃を与えるデータの損失という結果になる。本発明の技術は、トラフィックに影響する小さな部分のみを有している。多数のファブリックにデータを分散し、他のファブリックにパリティデータを送るスイッチは、米国特許出願第09/333,450号に記載されており、参照を以て記載に代える。ワイドメモリのＴＤＭスイッチングシステムを記載した米国特許出願第09/293,563号をも参照し、これを参照を以て記載に代える。
【０００４】
発明の要約
本発明は、パケットを切り換える(交換する)ネットワークのスイッチに関する。スイッチは、パケットの一部を切り換える複数のファブリックを具える。スイッチは、ファブリック及びネットワークに接続されて、ネットワークからパケットを受信し、ネットワークにパケットを送るポートカードを具えている。ポートカードは、複数のファブリックの１つが故障しても、ネットワークに正しいパケットをなおも送る耐容性がある機構を有している。
【０００５】
本発明は、パケットを切り換える方法に関する。方法は、スイッチのネットワークから、ポートカードにてパケットを受信する工程を有する。次に、スイッチのファブリックに、パケットの一部をポートカードからのストライプとして送る工程がある。次に、ファブリックを用いてパケットの一部を切り換える工程がある。次に、パケットの一部をファブリックからのストライプとしてポートカードに送り戻す工程がある。次に、ファブリックの１つが故障を有しても、ポートカードを用いて正しいパケットをネットワークに送る工程がある。
【０００６】
【詳細な記載】
同一の要素には、図面を通じて同一の参照番号を付している。図面、特に図７を参照すると、パケットを切り換えるスイッチ(10)が示されている。スイッチ(10)は、ファブリック(14)とネットワーク(11)に繋がって、ネットワーク(11)から送られるパケットを受信し、ネットワーク(11)にパケットを送るポートカード(12)を具える。ポートカード(12)は、複数のファブリック(14)の１つが故障しても、ネットワーク(11)に正しいパケットをなおも送る耐容性がある機構(16)を有している。
【０００７】
複数のファブリック(14)は、ポートカード(12)からパケットの一部を受信し、ポートカード(12)にパケットの一部を送るｎ個のファブリック(14)を含むのが好ましく、ｎは２以上の整数であり、ファブリックの１つは、パケットに関するパリティデータをポートカード(12)に送り、ポートカード(12)から該パリティデータを受信するパリティファブリック(18)である。ポートカード(12)は、パケットの一部をストライプとして、それらが対応するｎ個のファブリック(14)に送り、パケットのチェックサムを計算して、それをパケットが分散処理される前にパケットに加える分散器(striper)(20)を有するのが好ましい。
【０００８】
ポートカード(12)は、ファブリック(14)からストライプ及びパリティデータを受信し、受信したストライプからパリティデータを計算し、受信したパリティデータと計算したパリティデータを比較して、１つのファブリック(14)が故障したかどうかを判断する非分散器(22)を具えるのが好ましい。
【０００９】
非分散器(22)は、各ファブリック(14)についてチェックサムを計算し、各ファブリックからのデータを順に交換し、各ファブリックについて計算されたチェックサムを、パケットと共に受信され、パケットが分散処理される前に計算された(各ファブリックについて計算された)チェックサムと比較し、非分散器(22)がｎ個のファブリック(14)の１つが故障したと判断したときは、故障したファブリックからのストライプを、他のストライプから修復するのが好ましい。チェックサムは、１６ビットであるのが好ましい。各ファブリックは、ポートカード(12)からストライプを受信する集約装置(24)、ストライプが格納されるメモリコントローラ(26)、及びポートカード(12)にストライプを送り戻すセパレータ(28)を有するのが好ましい。
【００１０】
本発明は、パケットを切り換える方法に関する。方法は、スイッチ(10)のネットワーク(11)から、ポートカード(12)にてパケットを受信する工程を有する。次に、スイッチ(10)のファブリック(14)に、ポートカード(12)からのストライプとしてパケットの一部を送る工程がある。次に、ファブリック(14)を用いてパケットの一部を切り換える工程がある。次に、パケットの一部をファブリック(14)からのストライプとしてポートカード(12)に送り戻す工程がある。次に、ファブリックの１つが故障を有しても、ポートカード(12)を用いて正しいパケットをネットワーク(11)に送る工程がある。
【００１１】
スイッチのファブリック(14)に送る工程は、ｎ個のファブリック(14)の夫々に、パケットの一部のｎ個のストライプを送る工程を含むのが好ましく、ｎは２以上の整数である。ファブリックの１つは、パリティファブリック(18)へのパケットに関するパリティデータを有するパリティストライプである。ｎ個のストライプを送る工程の前に、分散器(20)を用いてパケットのチェックサムを計算し、それを分散処理前にパケットに加える工程があるのが好ましい。
【００１２】
ポートカード(12)に送り戻す工程は、ポートカード(12)の非分散器(22)にて、ファブリック(14)からのストライプとパリティストライプを受信し、非分散器(22)を用いて受信したストライプからパリティデータを計算し、パリティストライプから受信したパリティデータを、非分散器(22)にて計算したパリティデータと比較し、ファブリック(14)の１つが故障したかを判断する工程を含むのが好ましい。比較する工程の後に、非分散器(22)を用いてチェックサムを計算し、各ファブリックからのデータを順に交換し、各ファブリックについて計算されたチェックサムを、パケットと共に受信され、パケットが分散処理される前に計算されたチェックサムと比較し、どのファブリックが故障したかを識別し、故障したファブリックからのストライプを、他のストライプから修復する工程があるのが好ましい。
【００１３】
切り換える工程は、ファブリックの集約装置(24)にて、パケットの一部をストライプとして受信し、該パケットの一部をファブリックのメモリコントローラ(26)に格納する工程を含むのが好ましい。ポートカード(12)に送り戻す工程は、ファブリックのセパレータ(28)を用いて、メモリコントローラ(26)内のパケットの一部をストライプとして、ポートカード(12)の非分散器(22)に送り戻す工程を含むのが好ましい。
【００１４】
発明の動作に於いて、受信アルゴリズムは、１つのハードウエアの故障に耐え、それから修復するように設計されている。データが分散される前に、１６ビットのチェックラムがパケットに加えられ、１６ビットのチェックラムは分散されたデータの一部である。結果として生じたデータは、そのときＲＡＩＤ(５)ディスク配列に似た計算されたパリティを有する。
【００１５】
受信器側から見ると(perspective)、データはＮ個のファブリック(14)から生じる(Ｎの範囲は２−１３である)。データは何れかのファブリックが悪いかを見るためにパリティチェックされる。パリティチェックは、悪いデータのソースを識別せず、何れかのデータが正しくないことを識別するのみであることに留意されたい。
【００１６】
何れかのデータが正しくなければ、受信器はそのとき各ファブリックの入力ストリームが悪いと仮定する候補となる(candidate)データストリームを作る。これらの候補となる再構築されたストリームは、そのときチェックサムアルゴリズムを通って流れる。Ｎ個のチェックサムから、３つの異なる結果がある。
a: チェックサムは通過しない。これは１つのファブリックが故障した状態では生じないことに注意されたい。仮に１つのファブリックが故障すると、Ｎ個のチェックサムの１つは、チェックサムが通過するように、故障したファブリックを除去する。故障したロケーションが決定できなくとも、データはドロップされ、多数の故障として記録される(logged)。
b: １つのチェックサムが通過する。１つの故障が起こり、効果的な(successful)計算から除去されたファブリックとして認識される。間違ったデータを用いる他の全てのチェックサム計算は、機能しなくなる。このデータは修復される。
c: １以上のチェックサムが通過する。１以上のチェックサムが通過するならば、誤り無しに再構築されたストリーム、及び誤りのある少なくとも１つの再構築されたストリームが通過する。この場合、トラフィックはドロップされるに違いない。
【００１７】
かなり強力なチェックサムが用いられるなら、そのときランダムな誤りデータが通過する確率は、１／２Nを限度とする(bounded by)。ここでＮはチェックサム内のビット数である。ＢＦＳ(Big Fast Switch、スイッチの名称)に対しては、Ｎ＝１６であり、以下の値の確率を有する単一のパケットの最良の限度を与える。
(１／６５５３６)×修復されるファブリックの数
【００１８】
悪いファブリックを識別することは、１つのパケット内のa又はcの何れかから結論づけることはできない。多数のパケットに亘って、統計が集められたなら、誤りは、故障したファブリックからのデータを含む全ての計算の回りに集まる。多数のパケットに亘って、１つのレーン(列)は一貫して誤りが無く、誤りのないレーンが、かなり小さな数のパケット内にて識別されることを許す。故障したファブリックが識別されずに残る確率(可能性)は、以下である。
((１／６５５３６)のパケット数乗)×ファブリックの数
【００１９】
パケットの数が、４又は４以上に設定されたならば、誤りを識別しない結果となる確率は、
５×１０-20未満となる。
【００２０】
スイッチは、ＲＡＩＤ技術を使用し、個別のファブリック帯域幅を最小限にしつつ、スイッチ帯域幅全体を増大する。スイッチアーキテクチャにおいて、全てのデータは全てのファブリックに均一に分配されるので、スイッチはファブリックを加えることによって帯域幅を増し、ファブリックは、スイッチが帯域幅容量を増大すれば、ファブリックの帯域幅容量を増大する必要がない。
【００２１】
各ファブリックは４０Ｇ(bps)の交換帯域幅を提供しており、システムは、冗長／予備ファブリックを除いた１、２、３、４、６又は１２ファブリックを利用する。換言すると、スイッチは、ファブリックが幾つインストールされるかによって、４０Ｇ(bps)、８０Ｇ、１２０Ｇ、１６０Ｇ、２４０Ｇ又は４８０Ｇのスイッチとなり得る。
【００２２】
ポートカードは、１０Ｇ(bps)のポート帯域幅を提供する。４ポートカード当たり１ファブリックになることが必要である。スイッチアーキテクチャは、ポートカード及びファブリックの任意インストレーションをサポートしない。
【００２３】
ファブリックＡＳＩＣｓは、セルとパケットの両方をサポートする。全体として、スイッチは、「受信器が適切にする(receiver makes right)」方法をとっており、この方法においてＡＴＭブレード上の出口パス(egress path)は、フレームをセグメント化してセルにしなければならず、フレームブレード上の出口パスは、セルをまとめて再びパケットにしなければならない。
【００２４】
スイッチ内で使用される一般に８スイッチのＡＳＩＣｓは：
−分散器(Striper)−分散器は、ポートカード及びＳＣＰ−ＩＭ上に在する。それは、データを１２ビットのデータストリームにフォーマットし、チェックワードを添付し、Ｎ即ちシステム中の予備でないファブリックを横切ってデータストリームを分割し、他のファブリックに向かうストライプと同等な幅のパリティストライプを生成し、且つＮ＋１データストリームをバックプレーンへ送出する。
−非分散器(unstriper)−非分散器は、スイッチアーキテクチャ内の他のポートカードＡＳＩＣである。これは、システム中の全てのファブリックからデータストリームを受信する。次に、誤り検出修正を実行するために、チェックワード及びパリティ分散を使用して、元のデータストライプを再構築する。
−集約装置(Aggregator)−集約装置は、分散器からデータストリーム及びルートワードを取り出し、それらを多重化してメモリコントローラへの単一の入力ストリームにする。
−メモリコントローラ− メモリコントローラは、スイッチのキュー及びデキュー(キューから外す)メカニズムを実行する。これは、クロックサイクル毎に複数セルのデータを同時にエンキュー(enqueue、キューに入れる)／デキューをするために、独占排他権を有する広いメモリインタフェースを含んでいる。メモリコントローラのデキュー側は、コネクションのキュー及びシェーピングの大部分をポートカード上で行わせるために、４０Ｇｂｐｓよりも８０Ｇｂｐｓで稼働する。
−セパレータ−  セパレータは、集約装置と逆の操作を実行する。メモリコントローラからのデータストリームは、複数のデータストリームに逆多重され、適当な非分散器ＡＳＩＣへ送達される。非分散器へのインタフェースには、キューとフローとの制御ハンドシェーキングが含まれている。
【００２５】
ファブリック間のコネクションについては、３つの異なった視点即ち、物理的、論理的、及び「動的」な視点で見ることができる。物理的には、ポートカードとファブリックとの間のコネクションは、あらゆるギガビット速度の差分ペアのシリアルリンクである。これは、厳密に言うと、バックプレーンへ向かう信号数を減少するための実現(implementation、ソフトとハードの調整)の問題である。「動的な」観点では、単一のスイッチの形状を考察するか、又は所定の時点でデータが如何に処理されているかというスナップショットとして考察されるだろう。ポートカード上のファブリックＡＳＩＣとファブリックとの間のインタフェースは、１２ビット幅であるのが効果的である。それらの１２ビットは、ファブリックＡＳＩＣｓが如何に構成されているかによって１、２、３、４、６又は１２ファブリックへ均一に分散(stripe)される。「動的」な観点は、現在の構成において各ファブリックによって処理されているビットの数を意味しており、これはファブリック数で割るとちょうど１２である。
【００２６】
論理的な視点は、ある得る動的構成の全ての合併又は最大機能として考えられることができる。ファブリックスロット＃１は、構成に応じて、単一分散器からのデータの１２、６、４、３、２又は１ビットを処理しているであろうゆえに、１２ビットバスで引き抜かれる。それとは対照的に、ファブリックスロット＃３は、単一分散器からのデータの４、３、２又は１ビットを処理するのに使用されるだけであるがゆえに、４ビットバスで引き抜かれる。
【００２７】
以前のスイッチとは違って、該スイッチは、ソフトウェアにより制御可能なファブリック冗長モードの概念を全く有していない。ファブリックＡＳＩＣｓは、予備ファブリックがインストールされている限り、介入なしにＮ＋１冗長を実行する。
【００２８】
ここで提供される限り、Ｎ＋１冗長は、ハードウェアが、データの損失なしに自動的に単一の障害を検出し、修正することを意味する。
【００２９】
冗長性が作動する方法はかなり単純だが、３つのファブリック(Ａ、Ｂ及びＣ)＋予備(Ｓ)を有する１２０Ｇスイッチが使用される特定のケースを理解すれば、より簡単になる。分散器は、１２ビットバスを選び、まず、データユニット(セル又はフレーム)に添付されるチェックワードを生成する。次に、データユニット及びチェックワードは、Ａ、Ｂ及びＣファブリックの各々についてクロックサイクル当り４ビットデータストライプ(Ａ3Ａ2Ａ1Ａ0、Ｂ3Ｂ2Ｂ1Ｂ0及びＣ3Ｃ2Ｃ1Ｃ0)に分割される。次に、これらのストライプは、予備ファブリックＳ3Ｓ2Ｓ1Ｓ0用のストライプを生成するのに使用される。ここで、Ｓn＝Ａn ＸＯＲ Ｂn ＸＯＲ Ｃnであり、これら４つのストライプは、それらの対応するファブリックへ送られる。ファブリックの反対側において、非分散器は、Ａ、Ｂ、Ｃ及びＳから４つの４ビットストライプを受け取る。次に、３つのファブリックのあり得る全ての組合せ(ＡＢＣ、ＡＢＳ、ＡＳＣ及びＳＢＣ)は、「一時的な」(tentative)１２ビットのデータストリームの再構築に使用される。次に、チェックワードは、４つの一時的なストリームの各々のために計算され、計算されたチェックワードは、データユニットの端部のチェックワードと比較される。伝送の間にエラーが生じなかった場合、４ストリーム全ては、チェックワードが整合しており、ＡＢＣストリームは非分散器出力へ転送される。(単一の)エラーが生じた場合、１つのチェックワードだけが整合しており、整合を含むストリームはチップ外へ転送され、非分散器は不良のファブリック分散を識別する。
【００３０】
スイッチの構成が異なると、即ち、１、２、４、６又は１２ファブリックであると、アルゴリズムは同一であるが、ストライプ幅は変化する。
２つのファブリックが故障すると、スイッチ中を流れるデータの全ては、殆ど確実に崩れが生じるであろう。
【００３１】
ファブリックスロットは、番号が付され、昇順に並べられなくてはならない。また、予備ファブリックは特定のスロットであるから、ファブリックスロット１、２、３及び４は、ファブリックスロット１、２、３及び予備とは異なる。前者は冗長のない１６０Ｇスイッチであり、後者は冗長を含む１２０Ｇである。
【００３２】
第一に、特定のポートカードスロットを使用するには、そこに、予備を含まない少なくとも１つの所定の最小数のファブリックがインストールされることが必要であるように、ＡＳＩＣｓは構成され、バックプレーンは接続される。この関係は表０に示されている。
【００３３】
それに加え、スイッチ内のＡＰＳ冗長は、特にペアのポートカードに限定される。ポートカード１及び２はペア、ポートカード３及び４はペアというようになっており、これはポートカード４７及び４８まで続いている。これは、ＡＰＳ冗長が要求される場合、ペアのスロットは一緒でなければならないことを意味している。
【００３４】
簡単な例として、２つのポートカード及びファブリックを１つだけ含む構成を挙げてみる。ユーザがＡＰＳ冗長の使用を望まない場合、２つのポートカードは、ポートカードスロット１乃至４のうちの任意の２つにインストールされることができる。ＡＰＳ冗長が望まれる場合には、２つのポートカードは、スロット１及び２、或いはスロット３及び４の何れかにインストールされなければならない。
【００３５】
【表１】
0004679793.tif 000002
表０：ポートカードスロットの使用に関するファブリックの要件
【００３６】
容量を増やすには、新たなファブリックを追加し、スイッチが変化を認識し、新しいファブリックの数を分散してシステムを再形成するのを待つ。新しいポートカードをインストールする。
【００３７】
技術的には、ファブリック毎に容量一杯の４つのポートカードを持つことは不要である。スイッチは、３つのインストール済ファブリック及びスロット(12)の単一ポートカードで正常に機能する。これはコスト面では有効ではないが、機能可能である。
容量を削除するには、容量追加の工程を逆に行う。
もし、スイッチが超過したとき、即ち、８つのポートカードと１つのファブリックをインストールした場合。
【００３８】
スイッチが超過するのは、スイッチを適度でないアップグレードしたとき、又はある種のシステム障害の結果として発生するだけである。現実には、この状況がどのように発生するかによって２つのうちの１つが発生する。もしスイッチが４０Ｇスイッチとして構成され、ファブリック前にポートカードが追加されたら、第５から第８ポートカードは用いられない。もし、スイッチが８０Ｇの非冗長のスイッチとして構成され、第２ファブリックが不能又は削除されると、スイッチを通じたすべてのデータが不正になる（予備のファブリックはインストールされていないと仮定する）。そして、完了直前に、もし８つのポートカードが８０Ｇの冗長スイッチにインストールされており、そして、第２ファブリックが不能又は削除されていると、予備のスイッチが不能又は削除されたファブリックをカバーして通常の操作を続行する。
【００３９】
図１は、スイッチのパケットストライピングを表している。
チップセットは、ＯＣ４８及びＯＣ１９２ｃの両方の構成中のＡＴＭ及びＰＯＳポートカードをサポートする。ＯＣ４８ポートカードは、４つの別々のＯＣ４８フローを用いてスイッチングファブリックへインターフェースする。ＯＣ１９２ポートカードは、４チャンネルを１０Ｇストリームへ論理的に結合させる。ポートカードの入口側は、ＡＴＭセルとパケット間で変化するトラフィックへのトラフィック変換を実行しない。受信したトラフィックのフォームがどれであれ、スイッチファブリックへ送られる。スイッチファブリックはパケットとセルを混合し、パケットとセルの混合をポートカードの出口側へデキューする(キューから外す)。
【００４０】
ポートの出口側は、トラフィックを変換して出力ポートへの適正なフォーマットとしなければならない。この変換は、スイッチの内容について"受信器が適切にする(receiver makes right)"として呼ばれている。セルブレードは、パケットの区切りを実行し、セルブレードはセルをパケット内にて再組立する必要がある。ファブリックのスピードアップをサポートするため、ポートカードの出口側は、ポートカードの着信側の２倍に等しいリンクバンド幅を用いる。
【００４１】
ポセイドンをベースにした(Poseidon-based)ＡＴＭポートカードのブロック図は、図２に示される。各２．５Ｇチャンネルは入力側ＴＭ、入力側の分散器ＡＳＩＣ、非分散器ＡＳＩＣ、出力側の出力ＴＭ  ＡＳＩＣの４つのＡＳＩＣで構成される。
【００４２】
入力側において、ＯＣ−４８ｃ又は４ＯＣ−１２ｃインターフェースは集約される。各ボルテックス(vortexs)は、２．５Ｇセルストリームを専用の分散器ＡＳＩＣへ送信する（下記に表されるようにＢＩＢバスを使用する）。分散器は供給されたルートワードを２つの部分へ変換する。ルートワードの一部は、セルへの出力ポートを決定するためファブリックへ送られる。全ルートワードもまた、出力メモリコントローラによって使用されるルートワードとしてバスのデータ部分上へ送られる。第１ルートワードは「ファブリックルートワード」として表される。出力メモリコントローラのルートワードは「出口ルートワード」である。
【００４３】
出力側において、各チャンネルの非分散器ＡＳＩＣは各ポートカードからトラフィックをとり、エラーチェックしデータを修復し、出力バス上へ正常なパケットを送信する。非分散器ＡＳＩＣは、予備のファブリックからのデータ、及び分散器によりインサートされるチェックサムを使用して、データ異常を検出し修復する。
【００４４】
図２は、ＯＣ４８ポートカードを表す。
ＯＣ１９２ポートカードは、ファブリックへの一つの１０Ｇデータ流れ、及び１０Ｇと２０Ｇ間の出口データ流れをサポートする。このボードも４つの分散器及び４つの非分散器を使用する。しかし、４つのチップは拡張データバス上で並列に操作される。各ファブリックへ送られたデータは、ＯＣ４８及びＯＣ１９２ポートの両方について同一であり、データは、特別な変換機能を必要としないポートタイプ間を流れる。
【００４５】
図３は、１０Ｇ連結ネットワークブレードを表す。
各４０Ｇスイッチファブリックは、４０Ｇｂｐｓセル／フレームまでエンキューし(enqueue、キューに入る)、それらを８０Ｇｂｐｓでデキューする。この２Ｘスピードアップにより、ファブリックにて緩衝されたトラフィックの量が減り、ラインレートの十分上方で出力ＡＳＩＣダイジェストのトラフィックを噴出させる。スイッチファブリックは集約装置(aggregator)、メモリコントローラ、セパレータの３種類のＡＳＩＣから構成される。９つの集約装置ＡＳＩＣは、４８までのネットワークブレード及びコントロールポートからのトラフィックの４０Ｇｂｐｓを受信する。集約装置ＡＳＩＣは、ファブリックルートワード及びペイロードを結合して、単一データストリーム、及びソース間のＴＤＭにし、配備され生じる結果をワイド出力バス上に設置する。追加のコントロールバス（ｄｅｓｔｉｄ）は、メモリコントローラがデータをどのようにエンキューするかをコントロールするのに使用される。各集約装置ＡＳＩＣからのデータストリームは１２のメモリコントローラへ分けられる。
【００４６】
メモリコントローラは、１６までのセル／フレームを各時刻サイクルで受信する。各１２のＡＳＩＣは集約されたデータストリームの１／１２を収納する。次に入力中のデータはｄｅｓｔｉｄバス上に受信されたコントロール情報を基にしており収納される。データの収納は、メモリコントローラにて、パケット境界が比較的気づかないほどに単純化される（キャッシュ  ライン  コンセプト）。全１２のＡＳＩＣは８０Ｇｂｐｓに集約されたスピードで、収納されたセルを同時にデキューする(キューから外す)。
【００４７】
９つのセパレータＡＳＩＣは集約装置ＡＳＩＣの逆機能を実行する。各セパレータは全ての１２のメモリコントローラからのデータを受信し、集約装置によってデータストリームに埋め込まれたルートワードを復号し、パケット境界を探す。各セパレータＡＳＩＣは、データがセパレータへ送られたようにメモリコントローラによって示された正確な目的地に応じて、２４までの別の非分散器にデータを送る。
【００４８】
デキュー工程は、背圧(back-pressure)駆動される。もし、背圧駆動が非分散器に適用されたら、背圧はセパレータへ逆連繋される。セパレータ及びメモリコントローラも、メモリコントローラが出力ポートへトラフィックをデキューできる時に制御する背圧駆動メカニズムを有する。
【００４９】
チップセットのＯＣ４８及びＯＣ１９２を有効的にサポートする為に、１つのポートカードからの４つのＯＣ４８ポートは常に同じ集約装置へと同じセパレータから送られる（集約装置及びセパレータのポート接続は常に対称である）。
【００５０】
図４A及び図４Bは、ファブリックＡＳＩＣの接続を表している。
【００５１】
スイッチの外部インターフェースは、分散器ＡＳＩＣとボルテックス(vortex)などの入口ブレードＡＳＩＣ間の入力バス（ＢＩＢ）であり、非分散器ＡＳＩＣとトライデント等の出口ブレードＡＳＩＣ間の出力バス（ＢＯＢ）である。
分散器ＡＳＩＣは入力バス（ＢＩＢ）を経由した入口ポートからのデータを受け取る（DIN ST bl ch busとしても知られる）。
【００５２】
このバスは、４つの別々の３２ビット入力バス（４×ＯＣ４８ｃ）、又は全ての分散器へのコントロールラインの共通セットを具え、単一１２８ビット幅データバスの何れかとしても作動できる。このバスは、分散器チップのソフトウェア構成に基づいたセル又はパケットのどちらかをサポートする。
【００５３】
非分散器ＡＳＩＣは出力バス（ＢＯＢ）（DOUT UN bl ch busとしても知られる）を経由して出口ポートへデータを送る。それはセル又はパケットのどちらかをサポートできる６４（又は２５６）ビットデータバスである。それは下記の信号から構成される。
【００５４】
このバスは、４つの別々の３２ビット出力バス（４×ＯＣ４８ｃ）、又は全ての非分散器からのコントロールラインの共通セットを具え、単一１２８ビット幅データバスの何れかとして作動できる。このバスは、非分散器チップのソフトウェア構成に基づくセル又はパケットのどちらをも用いる。
【００５５】
同期装置は２つの主な目的を持つ。第１の目的は、論理的セル／パケット又はデータグラムを全てのファブリックに亘って順序付けて維持することである。ファブリックの入口インターフェース上で、１つのポートカードのチャンネルから１つ以上のファブリックに達するデータグラムは、全てのファブリックが同じ順序で処理される必要がある。同期装置の第２の目的は、たとえ、データグラムセグメントは１つ以上のファブリックから送られ、違う時間にブレード出口入力に到着しても、ポートカードの出口チャンネルを有し、一緒に属している全てのセグメント又はデータグラムのストライプを再構成することである。このメカニズムは、別のネット遅延と、ブレードとファブリック間にてクロックドリフトの変動量を有するシステムで維持することが必要である。
【００５６】
スイッチは、開始情報がシステム全体に伝わる同期ウィンドウのシステムを使用する。各送信器及び受信器は、最新の再同期表示から多数のソースからの同期データまで関連するクロックカウントを見ることが出来る。受信器は広域同期表示を受け取った後に、プログラム可能な遅延まで、同期期間での第１クロックサイクルのデータの受取を遅らせる。
この時点で、全てのデータは同時に受信されたと考えられ、修正された順序付けが適用される。ボックスを通じた遅れのために、パケット０及びセル０の遅延が別の順序で受信器に見られることを引き起こすにもかかわらず、受信時間＝１に於ける両方のストリームの結果順序は、物理的バスに基づいて、そこから受信したパケット０、セル０と同じである。
【００５７】
多重セル又はパケットを、１つのカウンターティック(counter tick)へ送信することができる。全ての宛先は、第２インターフェース等に移動する前に、第１インターフェースからの全てのセルを整える。このセル同期化技術は、全てのセルインターフェースに使用される。幾つかのインターフェース上には別の解決方法が必要とされる。
【００５８】
同期装置は、２つの主なブロックから成る。主に、送信器と受信器である。送信器ブロックは、分散器及びセパレータＡＳＩＣに属する。受信器ブロックは、集約装置及び非分散器ＡＳＩＣ内にある。集約装置の受信器は、２４（６ポートカード×４チャンネル）入力レーンまで扱える。非分散器の受信器は、１３（１２ファブリック＋１パリティーファブリック）入力レーンまで扱える。
【００５９】
同期パルスの受信時、送信器は先ず早いクロックサイクル（Ｎクロック）の数を計算する。
【００６０】
送信同期装置は、出力ストリームを遮断し、及びロックダウンすることを示すＮＫキャラクターを伝達する。ロックダウンシーケンスの最後に、送信器は次のクロックサイクルにて有効データが始まることを示しているＫキャラクターを伝達する。この次のサイクル有効表示は、全てのソースからトラフィックを同期すらために受信器によって使用される。
【００６１】
次の伝達の最後に、送信器は、インターフェース上に少なくとも１つのアイドルを挿入する。これらのアイドルは、もし復号器が同期から外れるとしたら、１０ビット復号器を１０ビットシリアルコードウインドウへ正常に再同期させる。
【００６２】
受信同期装置は広域同期パルスを受信し、プログラムされた数により同期パルスを遅らせる。（物理的ボックスが有し得る最大量のトランスポート遅延に基いてプログラムされている。）同期パルスを遅延させた後、受信器は同期キャラクターの直ぐ後のクロックサイクルを受信するのに適しているとする。データは各クロックサイクルで、次の同期キャラクターが入力ストリーム上に現れるまで受信される。このデータは、遅延広域同期パルスが現れるまで受信に適しているとはとらえない。
【００６３】
送信器及び受信器が別々の物理的ボード上にあり、別の発振器によってクロックされているから、クロックスピードの差がその間にある。別の送信器及び受信器間のクロックサイクルの数を区切るのに、全てのシーケンスカウンターを再同期するために広域同期パルスがシステムレベルで使用される。各チップは、全ての有効なクロックスキューのもとで、各送信器及び受信器は、少なくとも１つのクロックサイクルにより早いと必ずするように、プログラムされている。各チップは、適正な数のクロックサイクルを待って、それらの現在の同期パルスウインドウへとなる。これは全てのソースが同期パルス間のＮ同期パルスウインドウの有効なクロックサイクルを実行することを保証する。
【００６４】
例えば、同期パルスウインドウは１００クロックまでプログラム可能であるとすると、同期パルスは１００００クロック毎の同期パルスの名目速度で送られる。同期パルス送信器クロック、及び同期パルス受信クロックが共にドリフトした最悪の場合に基いて、同期パルス送信器上に１００００クロックとして受信器には９９９５から１０００５クロックが実際にある。この場合、同期パルス送信器は各１０００６クロックサイクル毎に同期パルスを送信するようにプログラムされる。１０００６クロックにより、全ての受信器が必ずそれらの次のウインドウにあるよう保証される。もし同期パルス送信器が遅いクロックを有すれば、受信器は早いクロックを具えて、実質上１００１２クロックを有する。同期パルスは１２クロックサイクルで受信され、同期パルスウィンドウへ送信するから、チップは１２クロックサイクル遅延する。別の受信器には１０００６クロックが見られ、同期パルスウインドウの最後にて、６クロックサイクルへロックダウンする。両方の場合、各ソースは１０１００クロックサイクルで動作する。
【００６５】
ポートカード又はファブリックが存在せず、又は挿入直後であり、どちらかが受信同期装置の入力を駆動しているとすると、特定の入力ＦＩＦＯへのデータの書込は禁止される。というのは、入力クロックは存在せず、又は不安定でデータラインの状態が判らないからである。ポートカード又はファブリックが挿入された時、ソフトウェアは必ず入れられ、バイトレーンへの入力を可能にして、該ソースからのデータ入力が可能となることを許す。入力ＦＩＦＯへの書込は可能になる。イネーブル信号はポートカード及びファブリックからのデータ、ルートワード、及びクロックが安定した後に、アサート(assert)されると考えられる。
【００６６】
システムレベルでは、第１及び第２同期パルス送信器が２つの個別のファブリック上にある。各ファブリック及びブレード上には同期パルス受信器もある。これらは図５に見られる。
第１同期パルス送信器は、フリーランニングの同期パルスジェネレータであり、第２同期パルス送信器はその同期パルスを第１同期パルス送信器へ同期化させる。同期パルス受信器は、第１及び第２同期パルスを共に受信し、エラー検査アルゴリズムに基いて、そのボード上のＡＳＩＣ上へ正しい同期パルスを選択して送信する。同期パルス受信器は、もし同期パルス送信器からの同期パルスが、それ自信のシーケンス０カウント中に落ちたならば、同期パルスは残りのボードに送られることのみが保証される。例えば、同期パルス受信器及び非分散器ＡＳＩＣは共に同じブレード上にある。同期パルス受信器及び非分散器の受信同期装置は同じ水晶発振器からクロックされ、クロックドリフトは  内部シーケンスカウンタを増大させるのに用いられるクロック間には存在しない。受信同期装置は、受信する同期パルスは”０”カウントウインドウ内に常にあることを要求する。
【００６７】
もし同期パルス受信器が、第１同期パルス送信器が同期から外れていると判断したら、第２同期パルス送信器ソースへ切り換える。第２同期パルス送信器も第１同期パルス送信器が同期から外れているかを判定し、第１同期パルス送信器から独立して、第２同期パルス送信器自身の同期パルスを発生する。これが第２同期パルス送信器の操作の第１モードである。
もし同期パルス受信器が第１同期パルス送信器は再び同期するように成ったと判定すると、第１同期パルス送信器側に切り換える。第２同期パルス送信器も、第１同期パルス送信器が再び同期するようになったと判断したら、第２モードへ切り換える。第２モードで、独自の同期パルスを第１同期パルスへ同期させる。同期パルス受信器は、その同期パルスフィルタリングメカニズムにおいて第２同期パルス送信器よりも余裕は少ない。同期パルス受信器は、第２同期パルス送信器よりさらに早く切り換わる。これは第２同期パルス送信器が第１モードに切り換わる前に、全ての受信同期装置が第２同期パルス送信器ソースを使用することへ切り換えることを保証するために行われる。
【００６８】
図５は、同期パルスの分布状況を表す。
同期演算で示されるクロックサイクルの数によるファブリックからのバックプレーン伝達をロックダウンするために、全てのファブリックは、多くのクロックサイクルを効果的にフリーズし、同じエンキュー及びデキュー判定が同期内に留まることを確実にする。これは各ファブリックＡＳＩＣにおけるサポートを必要とする。ロックダウンは、キューリシンク(再同期)のような特殊な機能を含む全ての機能を止める。
【００６９】
同期パルス受信器からの同期信号は、全てのＡＳＩＣへ分配される。各ファブリックＡＳＩＣは、広域同期パルス間のクロックサイクルをカウントするコアクロックドメインのカウンターを含む。同期パルス受信後、各ＡＳＩＣは早いクロックサイクルの数を演算する。広域同期パルスは自身のクロックで伝えられないから、演算されたロックダウンサイクル値は同じファブリック上の全てのＡＳＩＣと同じにはならない。この差は、全てのインターフェースＦＩＦＯをロックダウンカウントの最大スキューを許容できる奥行きを保持することにより説明される。
【００７０】
全てのチップ上のロックダウンサイクルは、「有用な（ロックダウンしない）」サイクルの最後のシーケンスの始まりに対応した同じ論理的ポイントへ常に挿入されている。それは、各チップは常に、ロックダウンサイクルの数がたとえ変化しても、ロックダウン事象間の同じ数の”有用な”サイクルを実行する。
【００７１】
ロックダウンは、異なる時間に異なるチップで発生するかも知れない。全てのファブリック入力ＦＩＦＯは、初期に設定され、ＦＩＦＯが、ドライ又はオーバーフローすることなしに、ロックダウンはＦＩＦＯのどちらか側で最初に発生できるようになっている。各々のチップツーチップインターフェースには、(基板トレース長さ及びクロックスキューと同じく)ロックダウンサイクルを引き起こす同期ＦＩＦＯがある。送信機は、ロックダウン状態の間、ロックダウンを知らせる。
受信器は、示されたサイクルの間はデータを入れず(push)、また、それ自体のロックダウンの間はデータを取り出さない(pop)。ＦＩＦＯの奥行きは、どのチップが最初にロックするかによって変化するが、その変化は、ロックダウンサイクルの最大数によって制限される。特定のチップが１回の広域同期期間の間に判断するロックダウンサイクルの数は変化するが、それらは全て、同じ数の有効なサイクルを有している。特定のファブリック上の各チップが判断するロックダウンサイクルの総数は、同じであって、制限された許容誤差の範囲である。
【００７２】
集約装置コアクロックドメインは、ロックダウン持続時間のために完全に停止し、全てのフロップとメモリは、その状態を保持する。入力ＦＩＦＯは、拡張可能である。ロックダウンバスサイクルは、出力キューに挿入される。コアロックダウンが実行される正確な時期は、ＤＯＵＴ＿ＡＧ(Digital OUT-Analog Ground)バスプロトコルがロックダウンサイクルを挿入させる時期によって指図される。ＤＯＵＴ＿ＡＧロックダウンサイクルは、ＤｅｓｔＩＤバスに示されている。
【００７３】
メモリコントローラは、適当な数のサイクルのために、全てのフロップをロックダウンせねばならない。メモリコントローラにおけるシリコン領域への影響を削減するため、伝搬ロックダウンと呼ばれる技術が用いられる。
【００７４】
オン−ファブリックのチップツーチップ同期化は、あらゆる同期パルスで実行される。幾つかの同期エラー検出能力が幾つかのＡＳＩＣに存在するけれども、ファブリック同期エラーを検出し、有害なファブリックを取り除くことが非分散器の仕事である。チップツーチップ同期化は、ファブリック上でどの様なパケット流れも可能となる前に行なわれる連鎖式機能である。この同期設定は、集約装置からメモリコントローラへ流れ、セパレータへ行き、またメモリコントローラへ戻る。システムがリセットされた後、集約装置は、第１広域同期信号を待つ。受信後、各集約装置は、ＤｅｓｔＩＤバス上のローカル同期コマンド(値０ｘ２)を、各メモリーコントローラへ送信する。
【００７５】
分散処理機能は、ビットを着信データストリームから個々のファブリックに割り当てる。分散処理機能を導き出す際に、２つの項目が最適化された：
１．バックプレーン効率は、ＯＣ４８及びＯＣ１９２のために最適化されねばならない。
２．バックプレーン相互接続は、ＯＣ１９２オペレーションのために大きく変更されるべきではない。
【００７６】
これらは、分散器及び非分散器ＡＳＩＣに追加された多重通信回路用(muxing)レッグに対して、交互に使用された(traded-off)。最適化に関係なく、スイッチは、ＯＣ４８とＯＣ１９２の両方用のメモリコントローラにおいて、同一のデータフォーマットを有さなければならない。
【００７７】
バックプレーン効率を効率よくするには、バックプレーンバスを形成する際に加えられるパッディング(padding)を最小にする必要がある。ＯＣ４８のための１２ビットバックプレーンバスと、ＯＣ１９２のための４８ビットバックプレーンバスの場合、最適な割り当ての為には、転送用の未使用ビットの数が、(バイト数 *８)／バス幅と同一であることを必要とし、“／”は、整数の分数である。ＯＣ４８のためには、バスは、０，４又は８の未使用ビットを有することができる。ＯＣ１９２のためには、バスは、０，８，１６，２４，３２又は４０の未使用ビットを有することができる。
【００７８】
このことは、どのビットも１２ビットの境界の間を移動することができないか、あるいは、ＯＣ４８パッディングは、所定のパケット長さにとって最適ではないことを意味している。
【００７９】
ＯＣ１９２ｃに関し、最大帯域幅利用とは、各分散器が、同じ数のビットを受信せねばならないということを意味している(即ち、分散器へのビットインターリーブを意味する)。同一のバックプレーン相互接続と組み合わされた場合、これは、ＯＣ１９２ｃにおいて、各分散器は、１／４のビットを有する各分散器から来る、確実に正しい数のビットを有していなければならないことを意味する。
【００８０】
データビットをファブリックに割り当てるために、４８ビットのフレームが使用される。分散器の内部には、８０〜１００ＭＨｚでは３２ビット幅で書き込まれ、１２５ＭＨｚでは２４ビット幅で読み取られるＦＩＦＯがある。３つの３２ビットの語は、４つの２４ビットの語を生じる。２４ビットの語の各対は、４８ビットのフレームとして扱われる。ビットとファブリック間の割り当ては、ファブリックの数に左右される。
【００８１】
【表２】
0004679793.tif 000003
表１１：ビット分散処理機能
【００８２】
次の表は、集約装置にて最初に読み取られ、セパレータにて最初に書き込まれるバイトレーンを示している。４つのチャネルは、Ａ、Ｂ、Ｃ、Ｄで表されている。全てのバスが完全に使用されるよう、異なるファブリックは、異なるチャネルの読取／書込オーダーを有している。
【００８３】
１つのファブリック−４０Ｇ
次の表は、集約装置のインターフェース読取オーダーを示している。
【００８４】
【表３】
0004679793.tif 000004
【００８５】
２つのファブリック−８０Ｇ
【表４】
0004679793.tif 000005
【００８６】
１２０Ｇ
【表５】
0004679793.tif 000006
【００８７】
３つのファブリック−１６０Ｇ
【表６】
0004679793.tif 000007
【００８８】
６つのファブリック−２４０Ｇ
【表７】
0004679793.tif 000008
【００８９】
１２のファブリック−４８０Ｇ
【表８】
0004679793.tif 000009
【００９０】
ギガビットトランシーバへのインターフェースは、トランシーババスを２つの分離したルートワードバスとデータバスとを有する分割バスとして使用する。ルートワードバスは、固定サイズ(ＯＣ４８の入口には２ビット、ＯＣ４８の出口には４ビット、ＯＣ１９２の入口には８ビット、ＯＣ１９２の出口には１６ビット)であり、データバスは、変更できるサイズのバスである。送信オーダーは、決められた位置にルートワードバスを常に有している。あらゆる分散処理構造は、１つのトランシーバを有しており、これは、全ての有効な構造において目的物と通話するために用いられるものである。そのトランシーバは、両方のルートワードバスを送り、データの送信を開始するために用いられる。
【００９１】
バックプレーンインターフェースは、バックプレーントランシーバへのインターフェースを用いて、物理的に行なわれる。入口及び出口両用のバスは、２つの半分部分から構成されていると考えられ、各々は、ルートワードデータを有している。
第１バスの半分部分がパケットを終了するなら、半分バスの２つは、個々のパケットに関する情報を有していてよい。
【００９２】
例えば、ファブリックローカル通話に行くＯＣ４８インターフェースは、２４データビットと２ルートワードビットを有している。このバスは、２ｘ(１２ビットデータバス＋１ビットルートワードバス)を有しているかの如く作用して用いられる。２つの半バスを、Ａ及びＢとする。バスＡは、第１データであって、その後にバスＢが続く。パケットは、バスＡとバスＢのどちらでも開始でき、バスＡとバスＢのどちらでも終了できる。
【００９３】
データビットとルートワードビットをトランシーバビットにマッピングする際、バスビットはインターリーブされる。これによって、全てのトランシーバは、たとえ分散処理量が変化しても、同一の有効／無効状態を有さねばならないことを確実にする。ルートワードは、バスＢの前に現れるバスＡによって解釈される。
バスＡ／バスＢという概念は、チップ間にインターフェースを有することと密接に対応している。
【００９４】
全てのバックプレーンバスは、データの断片化をサポートしている。使用されたプロトコルは、(ルートワード中の最終セグメントによって)最後の転送を記録する。最終セグメントでない全ての転送は、たとえ偶数のバイトではなくても、バスの幅全体を利用する必要がある。いかなる一定のパケットも、そのパケットの全ての転送のため、同一の数のファブリックに分散されねばならない。パケットの送信中に、分散器の分散処理量が更新されるとしても、次のパケットの初めに分散処理が更新されるだけである。
【００９５】
ＡＳＩＣにおける送信機の各々は、各チャネルのための次のＩ／Ｏを有している：  ８ビットデータバス、１ビットクロック、１ビットコントロール。
受信側では、ＡＳＩＣは、チャネルに次のものを受信する：
受信クロック、８ビットデータバス、３ビットステータスバス。
【００９６】
スイッチは、送信器を１〜３組のバックプレーンにマッピングすることによって、トランシーバを最適化し、各受信器は、１〜３組のバックプレーンを具える。これにより、構造に必要なトラフィックをサポートするのに十分な送信器だけが、完全な１組のバックプレーンネットを維持しながら、基板上に配備される。このような最適化の目的は、必要とされるトランシーバの数を削減することである。
【００９７】
最適化が行なわれる一方、どのようなときにも、２つの異なる分散処理量がギガビットトランシーバにおいて支持されねばならないということが尚求められる。このことは、トラフィックが、分散処理データから１つのファブリックへ、又、分散器の分散処理データから２つのファブリックへ同時にエンキュー(enqueue、キューに入れる)されることを可能とする。
【００９８】
バスの構造によっては、複数のチャネルは、１つの更に大きな帯域幅のパイプを形成するために、互いに連結される必要があるかもしれない(どのようなときにも、論理的な接続では１つ以上のトランシーバが存在する)。４倍ギガビットトランシーバは４つのチャネルを互いに連結することができるが、この機能は用いられない。代わりに、受信ＡＳＩＣが、１つのソースからのチャネル間での同期設定について役割を果たす。これは、総称同期アルゴリズムと同じ文脈である。
【００９９】
ギガビットトランシーバにおける８ｂ／１０ｂ符号化／復号化は、多数の制御事象がチャネルによって送られることを許容する。これらの制御事象は、Ｋ文字で表示され、符号化された１０ビット値に基づいて数字が付される。これらのＫ文字の幾つかは、チップセットで用いられる。使用されるＫ文字とその機能は、下記の表に示されている。
【０１００】
【表９】
0004679793.tif 000010
【０１０１】
パケットに対する分散処理構造によって、スイッチは、各バックプレーンチャネルにサポートされる、変更可能な数のデータビットを有する。トランシーバ一式の内部には、データが次のオーダーで満たされる：
Ｆ［ファブリック］＿［ｏｃ１９２ポート数］［ｏｃ４８ポート指定(ａ，ｂ，ｃ，ｄ)］［トランシーバ＿数］
【０１０２】
チップセットは、ここに説明する一定の機能を実行する。ここで記載した機能の大半は、複数のＡＳＩＣでサポートされているため、それらをＡＳＩＣ毎に逐次記載することは、求められる機能の全体的な範囲についての明確な理解を妨げることになる。
【０１０３】
スイッチチップセットは、６４Ｋ＋６バイトの長さまでパケットと協働するように構成されている。スイッチの入口側には、複数のポート間で共有されるバスが存在する。大半のパケットに関して、それらは、パケットの初めからパケットの終わりまで、いかなる中断もなく送信される。しかしながら、この方法は、遅延感知トラフィックの遅延変動量を大きくすることになりかねない。遅延感知トラフィックとロングトラフィックとが、同一のスイッチファブリックに共存できるようにするため、ロングパケットという概念が導入されている。基本的に、ロングパケットによって、大量のデータは、キューイングロケーションに送られ、ソースを基にキューイングロケーションで集積され、ロングパケットの末端部が転送されると、直ちにキューに加えられる。ロングパケットの定義は、各ファブリック上のビット数に基づいている。
【０１０４】
イーサネット（登録商標）ＭＴＵがネットワーク全体に維持された環境でスイッチが作動している場合、ロングパケットは、４０Ｇbpsより大きいサイズのスイッチには見受けられない。
【０１０５】
ワイドキャッシュライン共有メモリ技術は、セル／パケットをポート／優先キューに格納するために用いられる。共有メモリーは、セル／パケットを継続的に記憶するので、仮想的には、共有メモリーにおいて断片化及び帯域幅の無駄は存在しない。
【０１０６】
複数のキューが共有メモリーに存在する。それらは、宛先及び優先度毎に基づいている。同一の出力優先度とブレード／チャネルＩＤを有する全てのセル／パケットは、同一のキューに記憶される。セルは、常にリストの先頭からデキュー(キューから外す)され、待ち行列の末尾にエンキュー(キューに入れる)される。各セル／パケットは、出口ルートワードの一部と、パケット長さ、及び変更可能な長さのパケットデータによって構成されている。セル及びパケットは、継続的に記憶される。即ち、メモリーコントローラー自体は、ユニキャスト(アドレスを１つだけ指定する通信)接続用のセル／パケットの境界を認識しない。パケット長さは、ＭＣパケット用に記憶される。
【０１０７】
マルチキャストポートマスクメモリー６４Ｋｘ１６−ビットが、マルチキャスト接続用宛先ポートマスクを記憶するために用いられる、即ち、マルチキャストＶＣ毎に１つのエントリー(又は複数のエントリー)である。  マルチキャストＤｅｓｔＩＤ ＦＩＦＯによって示されるヘッドマルチキャスト接続のポートマスクは、スケジューリング検索のために内的に記憶される。ヘッド接続のポートマスクがクリアされ、新たなヘッド接続が提供されると、ポートマスクメモリーが検索される。
【０１０８】
ＡＰＳとは、自動保護スイッチングを表し、ＳＯＮＥＴ冗長基準のことである。スイッチにおいてＡＰＳの特徴をサポートするため、２つの異なるポートカードの２つの出力ポートが、略同一のトラフィックを送る。メモリーコントローラーは、ＡＰＳポート用に１組のキューを維持し、両方の出力ポートに同じデータを送る。
【０１０９】
メモリーコントローラーＡＳＩＣにおけるデータ２重化をサポートするため、複数のユニキャストキューの１つは各々、プログラム可能なＡＰＳビットを有している。ＡＰＳビットが１に設定されると、パケットは、両方の出力ポートにデキューされる。ＡＰＳビットがポート用にゼロに設定されると、ユニキャストキューは、正常モードで作動する。ポートがＡＰＳスレイブとして構成されると、ポートは、ＡＰＳマスターポートのキューから読み取る。ＯＣ４８ポートに関し、ＡＰＳポートは、隣接するポートカードの同じＯＣ４８ポート上に常に存在する。
【０１１０】
ファブリック間のメモリーコントローラーにおける共有メモリーキューは、クロックドリフト又は新たに挿入されたファブリックのために、同期から外れている(即ち、異なるメモリーコントローラーＡＳＩＣ間の同一のキューは、異なる奥行きを有している)。ファブリックキューを、任意の状態から有効かつ同期の状態に持っていくことは重要である。又、いかなる復元機構でもセルをドロップしないことが望ましい。
【０１１１】
リシンク(再同期)セルは、全てのファブリック(新たな及び既にあるもの)に一斉に送られて、リシンク状態に入る。ファブリックは、リシンクセルの前に受け取った全てのトラフィックを、キューリシンクが終わる前に、排出しようと試みる。しかし、リシンクセル後に受信したトラフィック(回線上のデータ情報量)は、リシンクセルが終了するまで排出されない。キューリシンクは２つの出来事の１つが生じると終了する。
１．時間切れのとき
２．新たなトラフィックの総量が(リシンクセルの後に受け取ったトラフィック)しきい値を越えたとき
【０１１２】
リシンクキューの終端にて、全てのメモリコントローラは、どのレフトオーバー旧トラフィック(リシンクセルのキューの前に受け取ったトラフィック)をも排出する。解放オペレーションは十分速く、いつリシンク状態に入ったかに拘わらず、全てのメモリコントローラはメモリの全てを一杯にすることができる。
【０１１３】
キューリシンクは、３つの全てのＡＳＩＣファブリックに与えられる。集約器はＦＩＦＯメモリがリシンクセルのキュー後に同様に排出することを確実にしなければならない。メモリコントローラは、キューイング及びドロッピング(データ送信時の損失)を実行する。分離器はトラッフィクをドロッピングし、これが起こったときに長さパージング(構文解析)状態マシンをリセットする。個々のＡＳＩＣにて、キューリシンクの詳細については、ＡＤＳチップを参照されたい。
【０１１４】
デキューについては、マルチキャスト接続(複数の端末に同じ内容を流すこと)は、独立した３２のトークンを各ポートに有し、各々は５０ビットのデータ又はまとまったパケットに相当する。先頭の接続及びその高優先キューのポートマスクは、各サイクル毎にＦＩＦＯ接続及びポートマスクメモリから読み出される。まとまったパケットは先頭接続の長さ領域に基づくマルチキャストキャッシュラインから隔てられている。先頭のパケットは、全ての宛先ポートに送られる。
ポートに対してゼロでないマルチキャストトークンが使用可能であるときは、８つのキュー排出器は、パケットを分離器に送る。次の先頭接続は、現在の先頭パケットがその全てのポートに送られるときにのみ、処理されるだろう。
【０１１５】
キュー構造は、リシンクセルファブリックを介して直ぐに変換され、ポート領域当たりの優先の数が、各ポートがいくつの優先キューを有するかを示すのに用いられる。分散ＡＳＩＣは、ネットワークブレード上にある。
【０１１６】
以下の語は、スイッチの語彙にて、かなり特有の意味を有する。多くはどこかで述べられたが、これは１箇所にそれらを集めて定義することを企画している。
【０１１７】
【表１０】
0004679793.tif 000011
0004679793.tif 000012
0004679793.tif 000013
【０１１８】
カウンタ送信と受信の関係は、図６に示される。
【０１１９】
本発明は例示の目的で前述の実施例に於いて、詳細に記載されてきたが、そのような詳細な記載は単にその目的の為であり、当該分野の専門家であれば、先述の特許請求の範囲によって記載されるようなもののほかにも、発明の精神と範囲から逸脱することなく、変形を成し得るものと理解されるべきである。
【図面の簡単な説明】
本発明の好ましい実施例と本発明を実施する好ましい方法は、添付の図面に示されている。
【図１】本発明のスイッチに於けるパケット分散処理を示す概略図である。
【図２】ＯＣ４８ポートカードの概略図である。
【図３】鎖状ネットワークブレードの概略図である。
【図４】図４Ａ、図４Ｂは、ＡＳＩＣファブリックに於ける相互接続を示す概略図である。
【図５】同期パルスの分配状況を示す概略図である。
【図６】夫々セパレータ及び非分散器用の送受信連続カウンタ間の関係に関する概略図である。
【図７】本発明のスイッチの概略図である。
【図１】
0004679793.tif 000014
【図２】
0004679793.tif 000015
【図３】
0004679793.tif 000016
【図４Ａ】
0004679793.tif 000017
【図４Ｂ】
0004679793.tif 000018
【図５】
0004679793.tif 000019
【図６】
0004679793.tif 000020
【図７】
0004679793.tif 000021