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