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