(57)【特許請求の範囲】
【請求項１】
少なくとも第１のデータ・パケットを受信するための第１のインタフェースと第２のデータ・パケットを受信するための第２のインタフェースと、
データ・パス・コントローラであって、別個のｍビット幅データ・パスを介して第１のインタフェースと第２のインタフェースに結合され、複数のデータ・サブパス・コントローラを具備するデータ・パス・コントローラと、そして
ｙビット幅データ・パスを介してデータ・パス・コントローラに連結されたメモリと
を具備するパケット交換器であって、
各データ・サブパス・コントローラは、１つのインタフェースに対応するｍビット幅データ・パスの別個のｎビット幅データ・サブパスに連結され、
データ・サブパス・コントローラの数のｎ倍はｍに等しく、
各インタフェースは、そのインタフェースによって受信されたデータ・パケットを少なくとも第１の部分と第２の部分にスライスし、
第１の部分は、そのインタフェースから第１のデータ・サブパス・コントローラへ特定のサブパス上で送信されるデータ・パケットのビットのセットから成り、
第２の部分は、そのインタフェースから第２のデータ・サブパス・コントローラへ別ののサブパス上で送信されるデータ・パケットのビットのセットから成る、
パケット交換器において、
第１のデータ・サブパス・コントローラは、さらに、
第１のデータ・パケットの第１の部分の第１のサブ部分を受信し保持するための第１のバッファであって、第１のインタフェースに対応するサブパスの第１の単一ビット・ラインを介して第１のインタフェースに連結されている第１のバッファと、
第１のデータ・パケットの第１の部分の第２のサブ部分を受信し保持するための第２のバッファであって、第１のインタフェースに対応するサブパスの第２の単一ビット・ラインを介して第１のインタフェースに連結されている第２のバッファと、
第２のデータ・パケットの第１の部分の第１のサブ部分を受信し保持するための第３のバッファであって、第２のインタフェースに対応するサブパスの第１の単一ビット・ラインを介して第２のインタフェースに連結されている第３のバッファと、
第２のデータ・パケットの第１の部分の第２のサブ部分を受信し保持するための第４のバッファであって、第２のインタフェースに対応するサブパスの第２の単一ビット・ラインを介して第２のインタフェースに連結されている第４のバッファと、
第１、第２、第３そして第４のバッファに連結されたセレクタであって、第１と第２のバッファからメモリへの同時の転送のために第１のデータ・パケットの第１と第２のサブ部分を先に選択し、そして第３と第４のバッファからメモリへの同時の転送のために第２のデータ・パケットの第１と第２のサブ部分を後で選択するセレクタと
を具備し、
ｙはｍよりも大きく、ｍはｎよりも大きく、そしてｎは２よりも大きいか等しく、
ｘはｍの倍数であり、そしてｙはｘの倍数であり、バッファの幅はｘをｎで除したビット数に等しい、
ことを特徴とするパケット交換器。
【請求項２】
第１と第２のデータ・サブパス・コントローラは別個の集積回路に実装されている、
ことを特徴とする請求項１に記載のパケット交換器。
【請求項３】
データ・サブパス・コントローラは少なくと２つの別個の集積回路に実装されている、
ことを特徴とする請求項１に記載のパケット交換器。
【請求項４】
前記データ・サブパス・コントローラの数が８個である、
ことを特徴とする請求項１に記載のパケット交換器。
【請求項５】
前記８個のデータ・サブパス・コントローラが、各集積回路に４個ずつ、２個の集積回路に実装されている、
ことを特徴とする請求項４に記載のパケット交換器。
【請求項６】
前記８個のデータ・サブパス・コントローラが、各集積回路に２個ずつ、４個の集積回路に実装されている、
ことを特徴とする請求項４に記載のパケット交換器。
【請求項７】
前記８個のデータ・サブパス・コントローラが、各集積回路に１個ずつ、８個の集積回路に実装されている、
ことを特徴とする請求項４に記載のパケット交換器。
【請求項８】
前記ｙビット幅データ・パスが前記ｍビット幅データ・パスの２倍の幅である、
ことを特徴とする請求項１に記載のパケット交換器。
【請求項９】
パケット交換器においてデータ・パケットを処理する方法であって、
そのパケット交換器は、
少なくとも第１のデータ・パケットを受信するための第１のインタフェースと第２のデータ・パケットを受信するための第２のインタフェースと、
別個のｍビット幅データ・パスを介して第１のインタフェースと第２のインタフェースに結合されたデータ・パス・コントローラであって、複数のデータ・サブパス・コントローラをさらに具備するデータ・パス・コントローラと、そして
ｙビット幅データ・パスを介してデータ・パス・コントローラに連結されたメモリと
を具備し、
各データ・サブパス・コントローラは、さらに、１つのインタフェースに対応するｍビット幅データ・パスの別個のｎビット幅データ・サブパスに結合され、データ・サブパス・コントローラの数のｎ倍はｍに等しく、ｙはｍよりも大きく、ｍはｎよりも大きく、そしてｎは２よりも大きいか等しく、
パケット交換器の第１のインタフェースで第１のデータ・パケットを受信するステップと、
第１のデータ・パケットを少なくとも第１の部分と第２の部分にスライスするステップと、
第１のインタフェースに対応する第１のｍビット幅データ・パスの第１のｎビット幅サブパス上に第１のデータ・パケットの第１の部分を転送するステップと、
第１のｍビット幅データ・パスの第２のｎビット幅サブパス上に第１のデータ・パケットの第２の部分を転送するステップと、
を含み、さらに、
第１のｍビット幅データ・パスの第１のｎビット幅サブパスを介して、第１のデータ・パケットの第２の部分を第２のデータ・サブパス・コントローラで受信すると同時に、第１のデータ・パケットの第１の部分を第１のデータ・サブパス・コントローラで受信するステップであって、第１のデータ・サブパス・コントローラは第１のバッファ、第２のバッファ、第３のバッファ及び第４のバッファを有し、第１のデータ・サブパス・コントローラの第１のサブパスはｎ個の単一のラインからなる、ステップと、
第２のインタフェースで第２のデータ・パケットを受信し、第２のデータ・パケットを少なくとも第１の部分と第２の部分にスライスし、第２のｍビット幅データ・パスの第１のｎビット幅サブパスに第２のデータ・パケットの第１の部分を転送し、第２のｎビット幅サブパス上に第２のデータ・パケットの第２の部分を転送するステップと、
第２のデータ・パケットの第２の部分を第２のデータ・サブパス・コントローラで受信すると同時に、第２のｍビット幅データ・パスの第１のサブパスを介して第２のデータ・パケットの第１の部分を第１のデータ・サブパス・コントローラで受信するステップであって、第２のデータ・パスの第１のサブパスはｎ個の単一のラインからなる、ステップと、
第１のデータ・パケットの第１の部分の第１のサブ部分を、第１のデータ・パスの第１のサブパスの第１の単一のラインを介して受信し、第１のバッファに保持する、ステップと、
第１のデータ・パケットの第１の部分の第２のサブ部分を、第１のデータ・パスの第１のサブパスの第２の単一のラインを介して受信し、第２のバッファに保持する、ステップと、
第２のデータ・パケットの第１の部分の第１のサブ部分を、第２のデータ・パスの第１のサブパスの第１の単一のラインを介して受信し、第３のバッファに保持する、ステップと、
第２のデータ・パケットの第１の部分の第２のサブ部分を、第２のデータ・パスの第１のサブパスの第２の単一のラインを介して受信し、第４のバッファに保持する、ステップと、
メモリへの同時の転送のために第１のデータ・パケットの第１と第２のサブ部分を選択するステップと、
第１のデータ・パケットの第１と第２のサブ部分を第１と第２のバッファからメモリへ同時に転送するステップと、
次に、メモリへの同時の転送のために第２のデータ・パケットの第１と第２のサブ部分を選択するステップと、
第２のデータ・パケットの第１と第２のサブ部分を第３と第４のバッファからメモリへ同時に転送するステップと、
を含む方法。
【請求項１０】
次に、データ・パケットの第１の部分と第２の部分をメモリからｙビット幅データ・パスを介して転送するステップと、
第２のデータ・サブパス・コントローラでデータ・パケットの第２の部分をｙビット幅データ・パスを介して受信すると同時に、第１のデータ・サブパス・コントローラでデータ・パケットの第１の部分をｙビット幅データ・パスを介して受信するステップと、
第１のｍビット幅データ・パスに連結されている第１のインタフェースへ第１のｍビット幅データ・パスにデータ・パケットの第１の部分を送信するステップと、
第２のｍビット幅データ・パスに連結されている第１のインタフェースへ第２のｍビット幅データ・パスにデータ・パケットの第２の部分を送信するステップと、
第１のインタフェースでデータ・パケットの第１と第２の部分を結合するステップと、
第１のインタフェースからデータ・パケットを送信するステップと、
をさらに含む請求項９に記載の方法。
【請求項１１】
ｍビット幅データ・パス上にデータ・パケットのｍビットを一度に送信するステップと、
ｍビット幅データ・パスに連結されたｐ個のｎビット幅データ・パスを介してｍビットの別個のｎビット部分をルーティングするステップと、
各ｎビット幅データ・パスでｘビットをバッファするステップと、そして
ｐ個のｎビット幅データ・パスからｙビットを同時に転送するステップと
をさらに含み、
ｎで除したｍはｐに等しく、ｘはｎの倍数であり、ｙはｐのｘ倍である、
ことを特徴とする請求項９に記載の方法。
【請求項１２】
ｍビット幅データ・パス上にデータ・パケットのｍビットを送信するステップは、ｎビット幅サブパス上にデータ・パケットのｎビットを同時に送信するステップから成る、
ことを特徴とする請求項１１に記載の方法。
【請求項１３】
ｐ個のｎビット幅データ・パスからのｙビットを同時に送信するステップは、ｐ個のｎビット幅サブパスからのｙビットを選択し、連続していないメモリ位置へ同時に送信するステップから成る、
ことを特徴とする請求項１１に記載の方法。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明はローカル・エリア・ネットワーク（ＬＡＮ）の分野に関連する。特に、本発明はギガビット・イーサネットＬＡＮなどの高速ＬＡＮで動作するＬＡＮ交換によってデータ・パケットをフィルタして送るのに利用されるスケーラブル・データ・パス・アーキテクチャおよびデータ比較エンジンに関する。
【０００２】
（関連技術の説明）
最初の、すなわち第１世代のＬＡＮ交換は、イーサネット（１秒間に１０００万ビット（１０Ｍｂ／ｓ）で動作する）などのワークグループやネットワークが成長するにつれて発生した従来のＬＡＮに関連した混雑の問題を解決した。本明細書中で用いるイーサネットＬＡＮあるいは単にイーサネットという用語は、多様なメディア・タイプ上で通常は１０Ｍｂ／ｓの信号レートで動作し、イーサネット・フォーマットまたは米国電気電子技術者協会（ＩＥＥＥ）基準８０２．３フォーマットされたデータ・パケットを送信する、キャリア検出、衝突検出（ＣＳＭＡ／ＣＤ）基準での多重アクセスに付随するＬＡＮに適用するものとする。新たなユーザーを付加することおよび、イーサネットＬＡＮよりも広い帯域幅（すなわち、ネットワークに適用される意味でのデータデータ送出能力）を要求する新たなアプリケーションの配備は、合理的に行うことができた。その結果、主としてネットワークの混雑によりパフォーマンスは遅くなった。最初のイーサネット交換は、ワークグループを、個別の衝突ドメインを有し、非常に高速でのワークグループ間におけるトラフィック、すなわちデータ・パケットを切り替える異なったＬＡＮに分割することにより、混雑を削減した。
【０００３】
第１世代のイーサネット交換の配備並びにクライアント・サーバ・コンピューティング・モデルの成長は、主たるネットワークのパフォーマンスのボトルネックを、端末から、例えば高性能サーバに接続されたイーサネット交換ポートに移動した。第２世代のイーサネット交換は、一般的にバックボーンと呼ばれる比較的高速な通信媒体に接続されたポートを付加した。イーサネット交換上でポートを、ファイバ分散データ・インターフェイス（ＦＤＤＩ）、非同期転送モード（ＡＴＭ）またはファスト・イーサネットなどの高速技術に従って動作するバックボーンに接続することは、ボトルネックを開いて、イーサネット交換に接続された多数のクライアントからのトラフィックを、サーバーまたはバックボーンへの接続点で効率的に切り替えられることを可能にした。本明細書中で用いるファスト・イーサネットＬＡＮまたは単にファスト・イーサネットという用語は、多様なメディア・タイプ上で通常は１００Ｍｂ／ｓの信号レートで動作し、イーサネット・フォーマットまたは米国電気電子技術者協会（ＩＥＥＥ）基準８０２．３フォーマットされたデータ・パケットを送信する、キャリア検出、衝突検出（ＣＳＭＡ／ＣＤ）基準での多重アクセスに付随するＬＡＮに適用するものとする。
【０００４】
最近まで、クライアント・サーバ・ネットワーク・モデルにおけるネットワーク・トラフィックのパターンは、概して予測可能であった。クライアントがローカル・サーバにアクセスするときに殆どのトラフィックがローカルＬＡＮに留まった。しばしば、例えば、電子メールなどのトラフィックのほんの僅かな部分は、一般に共有された通信媒体に接続されたワークグループ外に出ることがあった。今日では、イントラネット、インターネットおよびワールド・ワイド・ウェブ（ＷＷＷ）での通信は、トラフィック・パターンを大幅に変えた。従来のクライアント・サーバ・ネットワークにおけるトラフィック・パターンとは対照的に、今やデータはどこにでも存在しどこへでも任意にアクセスできる。更に、例えば、デスクトップ端末でのビデオおよびマルチメディアを提供することができるより強力なアプリケーションやコンピュータは、より速いネットワーク速度やより広い帯域幅に対する必要性を加速している。
【０００５】
ギガビット・イーサネットなどの非常に高速度の技術に関連づけられた信号レートおよび、イントラネットまたはインターネット通信に依拠する更に強力なアプリケーションおよびコンピュータの同化は、次世代のＬＡＮ交換の必要性を加速した。本明細書中で用いるギガビット・イーサネットＬＡＮ、または単にギガビット・イーサネットという用語は、多様なメディア・タイプ上で通常は１０００Ｍｂ／ｓの信号レートで動作し、イーサネット・フォーマットまたは米国電気電子技術者協会（ＩＥＥＥ）基準８０２．３フォーマットされたデータ・パケットを送信する、キャリア検出、衝突検出（ＣＳＭＡ／ＣＤ）基準での多重アクセスに付随するＬＡＮに適用するものとする。
【０００６】
必要とされるのは、今日の混雑問題を解決し、遅延センシティブで実時間のデータを扱い、ネットワークの規模を数千のユーザーを支援するほどに拡大し、ネットワークを介したトラフィックの異なった速度を統合することができる、高度にスケーラブルなＬＡＮ交換である。第３世代のＬＡＮ交換は、発展的マイグレーションを、１０Ｍｂ／ｓのＣＳＭＡ／ＣＤ（イーサネット）から１００Ｍｂ／ｓのＣＳＭＡ／ＣＤ（ファスト・イーサネット）、１０００Ｍｂ／ｓのＣＳＭＡ／ＣＤ（ギガビット・イーサネット）のバックボーンへと拡張する。かかるネットワークのスケーラビリティはＬＡＮの設計およびマイグレーションに重要であり、デスクトップのパフォーマンスを維持しながら、伝送用の高速リンクとサーバー接続を提供することにより、ネットワークの最適化を可能にする。
【０００７】
このように、第３世代のＬＡＮ交換は、その交換内に十分な帯域幅を用意して、ネットワークの混雑の原因となるあらゆる可能性を除去できるべきである。交換は、何れかのポートのスループットを何ら妨げることなく、複数の高速および低速のポートを同時に切り換えることができるべきである。更に、交換は常に完全な帯域幅利用性を保証するべきである。交換の容量、特に交換のバックプレーン容量は、ネットワークのロードが全てのポートに、例えば全二重ギガビット帯域幅を支援するように要求する場合に、データ・パケットが欠落したり失われることがないように、その全てのポートの合計よりも大きくなるべきである。更に、交換はデータ・パケットを、それが添付される通信媒体のデータ送信速度程度には少なくとも速く、データ・パケットをブリッジング（メディア・アクセス制御（ＭＡＣ）層で）することまたはルーティング（ネットワーク層で）することができるべきである。
【０００８】
多様な第３世代ＬＡＮ交換アーキテクチャには、ＬＡＮ交換の実装においてキーのいくつかの相違がある。例えば、いわゆるギガビット・イーサネット交換は、多数のファスト・イーサネット・ポート、例えば６個のファスト・イーサネット・ポートを単に利用してもよいし、単一のギガビット・イーサネット・ポートを含んでもよい。かかる交換は、１秒間に１〜２ギガビットの範囲のどこかにある内部帯域幅能力を与えることが必要なだけであり、これは、交換のアーキテクチャに関係なく、ほぼ何れかのＬＡＮ交換の能力内にあるが、上記で言及した所望のスケーラビリティまたは保証された帯域幅利用性を与えることはない。
【０００９】
必要なのは、６４個のファスト・イーサネット・ポートまたは８個のギガビット・イーサネット・ポートあるいはそれらの組み合わせなどの、複数のファスト・イーサネット・ポートおよび／または多数のギガビット・イーサネット・ポートを容易に支援する交換アーキテクチャである。中央共有メモリベース・アーキテクチャ、クロスバー交換ベースのアーキテクチャまたはバスベースのアーキテクチャなどの従来のＬＡＮ交換アーキテクチャは、概して１秒間に２ギガビット（Ｇｂ／ｓ）の最大内部帯域幅能力を有している。２Ｇｂ／ｓの帯域幅は限界値であるように思われ、それを超えるとかかる従来の交換アーキテクチャを拡大することは概して実現可能ではない。従って、ＬＡＮ交換が例えば８個のギガビット・イーサネット・ポートを有しているとすると、これらの従来のアーキテクチャは、ネットワーク混雑の原因となるあらゆる可能性を排除するために交換内で十分な帯域幅を提供することや、何れのポートのスループットも何ら妨げることなく複数の高速ポートおよび低速ポートを切り換えることや、常に完全な帯域幅の利用性を提供することが概して可能である。
【００１０】
例えば、いくつかの従来技術のバスベースの交換は、よく知られた周辺要素相互接続（ＰＣＩ）ローカルバス規格に従ったバックプレーン・バスを利用してきた。ＰＣＩバスは実装に応じて、１クロック・サイクル当たり３２または６４ビットの何れかでデータを交換することができる。従って、３３ＭＨｚの速度で動作すると、３２ビットの幅のＰＣＩバスは概して１Ｇｂ／ｓの帯域幅を達成することができ、６４ビットの幅のＰＣＩバスは概して２ＧＢ／ｓの帯域幅を達成できる。ＰＣＩバスのクロック速度を６６ＭＨｚに拡大して４ＧＢ／ｓのビット・レートを達成することは可能であるが、ＰＣＩバスが動作する最大レートであると概して考えられている。従って、ＰＣＩバスベースのアーキテクチャで達成したよりも大きい交換用の内部帯域幅を与えるために、異なったアーキテクチャが必要である。
【００１１】
中央共有メモリ・アーキテクチャはそれ自体を、バスベースのアーキテクチャよりも大きい内部帯域幅に適合させ、ポート間でバッファを割り当てるという意味で更に大きい柔軟性と、メモリ・リソースの割り当てに関する合理的な制御を提供する。しかし、従来の中央共有メモリ・アーキテクチャに基づいたこの交換の実装は、非常に多くのＧｂ／ｓを支援する交換の必要性を満たすように拡大された場合には、それを中止するに十分なほど高価である。
【００１２】
遥かに大きい内部帯域幅を達成する一つの方法は、メモリへアクセスするデータ・バスが、例えば２５６ビット、５１２ビットあるいは更に高い程度の非常に広いバス幅に拡大できるように、中央共有メモリを拡大することが要求される。ポートと中央共有メモリとの間でデータを転送するためにかかる広いデータ・バスを用意するデータ・パス回路は、ピン・カウントのために単一の集積回路（ＩＣ）上に実装することは困難であり高価である。例えば、単一のＩＣ上で複数のポートおよび５１２ビットの幅のデータ・パスを支援するデータ・パス回路を実装することは、そのＩＣ上で１０００ピンを超えるピン・カウントを生じさせる。それぞれがより少ないピンを有する複数のＩＣチップは、現在のＩＣ製造技術であれば大きなピン・カウントを有するモノリシックＩＣチップよりも製造に大幅に費用がかからない。ここで必要なのは、それ自体を多数のＩＣチップ上での実装に適合する中央共有メモリ・アーキテクチャベースのＬＡＮ用のスケーラブル・データ・パス・アーキテクチャである。
【００１３】
（発明の簡単な概要）
中央共有メモリ・アーキテクチャベースのＬＡＮ交換用のデータ・パス・アーキテクチャを開示する。本発明によって実施される交換は、ネットワーク混雑の原因となるあらゆる可能性を排除するために、交換内に十分な帯域幅を与えることができる。更に、この交換は、何れのポートのスループットをも妨げずに、複数の高速ポートおよび低速ポートを同時に切り換えることができる。また更に、この交換は常に完全な帯域幅利用性を与える。交換の容量、特に交換のバックプレーン帯域幅容量は、ネットワーク・ロードが全てのポートに１秒当たり全二重ギガビットの帯域幅を支援することを要求する場合に、データ・パケットが欠落したり失われたりしないように、その全てのポートの帯域幅容量の合計よりも大きい。この交換はワイヤ速度で、すなわち少なくともそれが添付されている通信媒体のデータ送信速度程度に速く、データ・パケットをブリッジして送る。
【００１４】
本発明の実施形態によるデータ・パス・アーキテクチャを利用するＬＡＮ交換は、非常にスケーラブルである。更に、データ・パス回路は、単一のＩＣチップではなく多数のＩＣチップ上での実装にそれ自体を適合させ、それによってかかる回路の費用を大幅に削減する。本発明の実施形態によれば、データ・パス・アーキテクチャは、同様のあるいはより少ない数のＩＣチップ上で製造されることがある多数のデータ・パス・コントローラに細分化される。
【００１５】
ＬＡＮ交換内の各媒体アクセス・コントローラまたはポートは、全二重データ・パスまたはチャンネルによってデータ・パス・アーキテクチャに接続されている。各データ・パス・コントローラは、それぞれがデータ・パス・コントローラを各全二重データ・パスのスライスに接続する多数のサブパスからなり、従って、各データ・パス・コントローラは、各媒体アクセス・コントローラから受信したデータ・パケットのスライスを、個別のサブパスを介して中央共有メモリに転送する責任を負う。同様に、各データ・パス・コントローラは、中央共有メモリから受信したデータ・パケットのスライスを、個別のサブパスを介して各媒体アクセス・コントローラに転送する。更に、パケットの送出及びフィルタ・コントローラは、スライスされたデータ・パス・アーキテクチャをてこにしてファスト・パケットの識別、フィルタおよび交換を行うスライスされた比較エンジンを利用する。
【００１６】
本発明は実施形態によって説明され、以下の図面における限定によってではない。同様の符号は類似の要素を示す。
【００１７】
（発明の詳細な説明）
本発明は、ギガビット・イーサネットＬＡＮなどの高速ＬＡＮにおいて動作するＬＡＮ交換により送られているデータ・パケット用の、スケーラブルにスライスされたデータ・パス・アーキテクチャおよびスライスされたデータ比較エンジンに関する。以下の説明においては、本発明を完全に理解して戴くために、多数の特定的な詳細を記載した。しかし、当業者には、本発明がこれらの特定的な詳細なくして実施できることが明らかになるであろう。他の例においては、よく知られたアーキテクチャ、回路および技術は、本発明を不必要に曖昧にするのを避けるために示していない。
【００１８】
ＬＡＮ交換アーキテクチャの概要
図１を参照すると、本発明が実施されているＬＡＮパケット交換器１００のブロック図が示されている。ＬＡＮパケット交換器、すなわち単純な交換は、多数の高速ポート、すなわち媒体アクセス・コントローラ（ＭＡＣ）、１１０ａ〜１１０ｎを支持する中央共有メモリベースのアーキテクチャを実装する。一実施形態においては、ＭＡＣはそれぞれ、ＩＥＥＥ規格ドラフト８０２．３ｚ／Ｄ３．１に従って、１秒当たり１，０００，０００，０００ビット、すなわち１秒当たり１ギガビット（Ｇｂ／ｓ）の半二重データ転送レートで動作するが、これはよく知られた８０２．３プロトコルおよびＭＡＣ仕様を、本明細書中ではギガビット・イーサネットと呼ばれるベースバンド通信媒体上で１０００Ｍｂ／ｓの動作速度まで拡張する。もう１つの実施形態においては、ＭＡＣはそれぞれＩＥＥＥ規格８０２．３ｕに従って、１秒当たり１００，０００，０００ビット（１００Ｍｂ／ｓ）のデータ転送レートで動作するが、これはよく知られた８０２．３プロトコルおよびＭＡＣ仕様を、本明細書中ではファスト・イーサネットと呼ばれるベースバンド通信媒体上で１００Ｍｂ／ｓの動作速度まで拡張する。ＭＡＣは、よく知られたファイバ分散データ・インターフェイス（ＦＤＤＩ）または非同期転送モード（ＡＴＭ）通信プロトコルなどの、他の通信プロトコルに従って動作してもよいことが理解される。
【００１９】
図１に示した交換１００はＭＡＣ１１０ａ〜１１０ｎを支援するように構成されており、ここでｎは、交換の内部帯域幅容量に対するＭＡＣのそれぞれの動作速度および帯域幅の要件に概して左右される。特に、交換は一実施形態において１６Ｇｂ／ｓの内部帯域幅を支持し、もう１つの実施形態においては３２Ｇｂ／ｓの内部帯域幅に拡大可能であるが、後者はそれぞれ２Ｇｂ／ｓの帯域幅にある８個の全二重ギガビット・チャンネルを支持するのに十分すぎるほどである。従って各チャンネルは１つの全二重ギガビット・イーサネットＭＡＣを支持することが可能であり、ここで受信データ・パス、例えば１１１ａは１Ｇｂ／ｓのレートでギガビット・イーサネットＭＡＣからデータを受信し、送信データ・パス、例えば１１１ｂは１Ｇｂ／ｓのレートでギガビット・イーサネットＭＡＣにデータを送信する。各チャンネルは交互に、８個のファスト・イーサネットＭＡＣ、８個のＦＤＤＩポート、６個のＯＣ−３  ＡＴＭポートまたは１つのＯＣ−１２ＡＴＭポートを支持することができる。理論上、各チャンネルは１０個のファスト・イーサネット（ＦＥ）ＭＡＣを支持できるが、実際の問題としては、時間が逼迫するために本発明の実施形態においては８個のＦＥ  ＭＡＣのみが利用されている。パスは更に多数のサブパスにスライスされ、そこでデータは、パケット・キュー・マネージャ（ＰＱＭ）１６０から受信したコマンドに従って、図面においてはパケット・メモリ１３０として参照されている中央共有メモリにパス・コントローラ１２０によって送られる。理解されるように、本発明の実施形態は、パスを１、２、４、８または１６個のサブパスにスライスして、パケット・メモリ１３０への２から３２Ｇｂ／ｓの内部帯域幅並びに、２Ｇｂ／ｓのデータ転送速度で動作する１から１６個の全二重パスを備えた交換構成を作り出す。
【００２０】
更に詳細には下記で説明しているように、送出データベース１４０はパケットまたはフローの識別、送出とフィルタに関連したテーブルを含み、パス・コントローラ１２０によって転送されたパケットから入手したアドレスおよび他のよく知られたフィールドをテーブルに記憶する。パケット送出コントローラ１５０は、送出データベース１４０内にテーブルを維持し、多数のサブパス・コントローラのそれぞれに従いまたそれらに関連づけられてスライスされた比較エンジンを利用して、どのパケットまたはフローを識別し、フィルタし、または送るかを判断する。
【００２１】
スライスされたデータ・パス・アーキテクチャを利用した交換アーキテクチャ
図２Ａを参照すると、本発明に従ってＬＡＮ交換によって利用されたデータ・パス・アーキテクチャの実施形態のブロック図が示されている。図示された実施形態においては、ｍビット幅の受信データ・パス（「パス」）１１１ａ〜１１４ａが、ＭＡＣ１１０ａ〜１１０ｎをパス・コントローラ１２０に連結している。ここでｍは１６ビットに等しい。一実施形態においては、パスは６６．７ＭＨｚで動作し、従って、受信方向では１Ｇｂ／ｓよりも若干多い。パス・コントローラ１２０は多数のサブパス・コントローラ、この場合には、４個のサブパス・コントローラにスライスされる。同様に、パス１１１ａ〜１１４ａは、等しい数のｎビット幅の受信データ・サブパス（「サブパス」）にスライスされ、ここでｎは４に等しく、サブパス・コントローラの数のｎ倍がｍに等しい。
【００２２】
特定のパスに属する各サブパスは、異なったサブパス・コントローラに送られる。従って、例えば１６ビットの受信データ・パス１１１ａは、それぞれ個別のサブパス・コントローラ１２０ａ、１２０ｂ、１２０ｃおよび１２０ｎに接続された４ビットのサブパス１１１ａ１、１１１ａ２、１１１ａ３および１１１ａｎにスライスされる。同じ方法で、１６ビットの受信データ・パス１１２ａは、サブパス・コントローラ１２０ａ〜１２０ｎに接続された４ビットのサブパス１１２ａ１〜１１２ａｎにスライスされる。従って、サブパス・コントローラ１２０ａ〜１２０ｎはそれぞれ、ＭＡＣ１１０ａ、１１０ｂ、１１０ｃおよび１１０ｎのそれぞれからデータ・パケットの個別のスライスを受信する。
【００２３】
サブパス・コントローラ１２０ａ〜１２０ｎはそれぞれ、個々のｘビット幅の受信データ・バス１２１ａ〜１２１ｎ、集合的にはデータ・バス１２１を介して、パケット・メモリ１３０に連結されている。本発明の一実施形態においては、サブパス・コントローラをパケット・メモリ１３０に接続するデータ・バス１２１の幅は、ＭＡＣをパス・コントローラ１２０に連結する受信および送信データ・パスの幅の合計の２倍である。従って、図２Ａに示した４個のサブパス（４個のスライス）の実施形態においては、データ・バス１２１は２５６ビットであり、一方、図２Ｃを参照すると、８個のサブパス（８個のスライス）の実施形態におけるデータ・バス１２１は５１２ビット幅である。１６個のサブパスの構成においては、１０２４ビット幅のデータ・バスがサブパス・コントローラをパケット・メモリ１３０に接続するものと理解される。
【００２４】
サブパス・コントローラはそれぞれ、各サブパスに連結されていてそこからデータを受信する個別の受信バッファを含む。受信データ方向（ＭＡＣからパケット・メモリへの）においては、各サブパス・コントローラは、データのそのビットのデータをパケット・メモリ１３０に転送できるようになるまで、その関連付けられた受信データ・サブパスからの受信バッファに少なくともｘビットのデータを集積する。ここで、ｘはｎの倍数、すなわち、受信データ・サブパスにおけるビット数の倍数である。本明細書中に開示した実施形態においては、ｘ＝６４ビットである。例えば、サブパス・コントローラ１２０ａは、サブパス１１１ａ１、１１２ａ１、１１３ａ１および１１４ａ１上で、ＭＡＣ１１０ａ、１１０ｂ、１１０ｃおよび１１０ｎからデータ・パケットのスライスをそれぞれ受信する受信バッファ２１０ａ、２１０ｂ、２１０ｃおよび２１０ｄに分割されたバッファ２１０を含む。同様に、サブパス・コントローラ１２０ｂは、サブパス１１１ａ２、１１２ａ２、１１３ａ２および１１４ａ２を介して、受信バッファ２２０ａから２２０ｄ内にＭＡＣ１１０ａ、１１０ｂ、１１０ｃおよび１１０ｎからのデータ・パケットのスライスを受信する。
【００２５】
受信バッファはシリアル・パラレル・ビット・ストリーム・コンバータとして動作し、ｘビットのデータを並行にパケット・メモリにバーストする。ｘビットは、対応するサブパスに接続されたＭＡＣから受信したデータ・パケットのｎビットのスライスを含む。各サブパスからのデータ・ストリームは、パケット・キュー・マネージャ（ＰＱＭ）１６０の制御の下でメモリに書き込まれる。ＰＱＭ１６０はメモリ・アドレス場所を生成し、そこでＭＡＣから受信したデータのスライスはパケット・メモリ１３０、特にメモリ・バンク１３０ａ、１３０ｂ、１３０ｃおよび１３０ｎに記憶される。個々のサブパス・コントローラ１２０ａ、１２０ｂ、１２０ｃおよび１２０ｎのセレクタ２１５、２２５、２３５および２４５は、同じパスのサブパスに対応する受信バッファを同時に選択し、そこに保持されたデータのスライスをデータ・バス１２１上でパケット・メモリ１３０に送る。
【００２６】
例えば、ＰＱＭ１６０はアドレス・バス２５５上でオフセット・メモリ・アドレスをアサートして、ｘビットのデータ・パケットを記憶する場所を各メモリ・バンク１３０ａ〜１３０ｎ内に示す。ＰＱＭ１６０は制御ライン２５２上の信号もアサートして、セレクタ２１５、２２５、２３５および２４５に、各パスのサブパスに対応する受信バッファ、例えば、サブパス１１１ａ１、１１１ａ２、１１１ａ３および１１１ａｎに対応する受信バッファ２１０ａ、２２０ａ、２３０ａおよび２４０ａに保持されたｘビットのビット・ストリームを同時に送らせる。サブパス１１１ａ１、１１１ａ２、１１１ａ３および１１１ａ４はＭＡＣ１１０ａからのパス１１１ａを含む。ビット・ストリームはデータ・バス１２１上で集合的かつ同時に送られ、そこで各ビット・ストリームは隣接していないメモリ場所に記憶される。ＰＱＭは次に、もう１つのパスに関連づけられたもう１つのサブパスのセットを選択して、それからもう１つのＭＡＣ、例えばＭＡＣ１１０ｂからのデータ・パケットのスライスを得て、それに続いてＭＡＣ１１０ｃおよび１１０ｎからのスライスを選択して書き込む。
【００２７】
図２Ｂを参照すると、ｍビット幅の送信データ・パス（「パス」）１１１ｂ〜１１４ｂは、パス・コントローラ１２０をＭＡＣ１１０ａ〜１１０ｎに連結するが、ここでｍは１６ビットに等しい。図２Ａを参照して上記で説明した受信データ・パスの場合と同様に、送信データ・パスは６６．７ＭＨｚで動作し、従って、全二重パス毎に、合計２Ｇｂ／ｓの全二重データ送信レートに対して、送信方向に１Ｇｂ／ｓよりも若干多くを送る。送信データ方向において、交換は、受信データ方向に関して上記で説明したものと同様ではあるが反対の方法で動作する。サブパス・コントローラはそれぞれ、データ・バス１２１上でパケット・メモリ１３０からｘビット（例えば、６４ビット）のバーストを読み取る。そこで各バーストはデータ・パケットの複数のスライスを表す。サブパス・コントローラは、特定のＭＡＣに対応するサブパス上でデータを送信する。メモリ読み取りが遂行されるメモリ場所のメモリ・アドレスは、サブパス・コントローラおよびパス（図示せず）からの状態および制御信号に呼応して、ＰＱＭ１６０によって生成されてアドレス・バス２６０に送られる。
【００２８】
データ・パス・コントローラ１２０の代替的実施形態を、図２Ｃを参照してここで説明する。図は受信データ・パスのみを示しており、回路およびデータ・パスは図示されていないが図２Ｂに類似している。すなわち、送信方向については、これらはこの実施形態にも存在する。この実施形態はデータ・パス・コントローラ１２０を多数のサブパス・コントローラ１２０ａ〜１２０ｎ、この場合には８個のサブコントローラにスライスする。それぞれｍビット幅（ｍ＝１６）であるデータ・パスは同様に等しい数のｎビット幅の受信サブパスにスライスされるが、ここでｎは２に等しくサブパス・コントローラの数のｎ倍はｍに等しい。特定のパスに対応するサブパスは、各サブパス・コントローラが個別のサブパスを介して各ＭＡＣに接続されており、それからデータのスライスを受信する。例えば、サブパス・コントローラ１２０ａはサブパス１１１ａ１を介してＭＡＣ１１０からデータのスライスを受信し、サブパス１１２ａ１を介してＭＡＣ１１０ｂからデータのスライスを受信し、サブパス１１３ａ１を介してＭＡＣ１１０ｃからデータのスライスを受信するなどである。従って、図２Ａに図示した「４個のスライス」の実施形態、すなわち４個のサブパス・コントローラの実施形態は、それぞれ異なったＭＡＣからの４個の４ビット幅のサブパスを同じサブパス・コントローラに送るのに対して、図２Ｃに示した８個のスライスの実施形態は、それぞれ異なったＭＡＣからの８個の２ビット幅のサブパスを同じサブパス・コントローラに送る。
【００２９】
２ビットのデータのスライスは各サブパス上で受信されて、そのサブパスと関連付けられた受信バッファに記憶される。受信バッファは、ＰＱＭ１６０によって制御された適当な時間にパケット・メモリ１３０に送信されるように、ビット・スライスをｘビット幅の並行ビット・ストリームに変換する。ＰＱＭ１６０はセレクタ２１６から２２２を制御して、各サブパス・コントローラからの同じデータ・パケットのスライスを同時にゲートする。従って、例えばセレクタは各サブパス・コントローラの第１のサブパスからスライスを選択して送り、次に第２のサブパスからなどである。スライスは、メモリへのデータ転送を設定するに当たって、ＰＱＭ１６０によってアドレス・バス２５５によって識別されてそれに向けられるメモリ・アドレスのパケット・メモリ１３０内の個別の場所に記憶される。
【００３０】
図２Ｄは、データ・パス・コントローラが２個のサブパス・コントローラにスライスされる、データ・パス・コントローラの実施形態を示している。受信データ・パスと対応するサブパス・コントローラ・アーキテクチャを示している。図２Ｂに示したものと類似する送信データ・パスおよびサブパス・コントローラは図示してない。この実施形態は、４個および８個のスライスの実装を参照して上記で説明したのと同じステップに従って動作する。従って、２個のスライスの実施形態の説明は読み手に任せる。
【００３１】
本明細書中で説明している実施形態のそれぞれにおいては、サブパス・コントローラの何れも全データ・パケットを受信または送信せず、メモリもパケット・メモリ内の隣接した場所に全データ・パケットを記憶しないことを注記する。しかし、対応する受信および送信データ・サブパスおよび対称転送操作が、上記のようにデータのスライスをメモリに受信するかデータのスライスをメモリから送信するのに利用されている限り、データ・パケットはあらゆる考え得る方法でスライスして転送できることが理解される。従って、本発明によれば、データ・パケットのスライスは個別のサブパスに関連付けられた個別のバッファに記憶されて、次にタイムスライスされた方法で個別のメモリ領域に転送される。データ・パス・コントローラおよびパケット・キュー・マネージャは、特定のＭＡＣから受信した同じデータ・パケットのスライスが確実に同時にメモリに書き込まれるようにする。
【００３２】
一般的に、データ・パス・コントローラ・アーキテクチャの異なった実施形態は、データ・パケットを等しく効率的に処理する。しかし、以下で説明するように、短いパケット、例えば、短い長さのパケット、すなわち６５バイト長の最小パケットまたは、例えばデータ・パケットのスライスを同時にデータ・パス・コントローラを介してメモリに転送した後にパケット・メモリに転送されるように残っている残りの長さのパケットは、４対８スライスの実施形態によって更に効率的に処理される。
【００３３】
５２０ビットからなる６５バイトのパケットが、各ＭＡＣをデータ・パス・コントローラに接続する受信データまたは送信データ・パスなどの１６ビット・バス上で転送されるには３２．５クロック・サイクルかかる。しかし、本発明の４個のスライスの実施形態を利用すると、ＬＡＮ交換はデータ・バス１２１上で２クロック・サイクルでパケット・メモリから５２０ビットのうち５１２ビットを読み出したり、そこに書き込むことができ、第３のクロック・サイクルで残りの８ビットが転送されるように残す。同様に、８個のスライスの実施形態は、単一のクロック・サイクルでデータ・パケットの５１２ビットを転送することができ、やはり、それに続くクロック・サイクルで転送するように残りの８ビットが残る。残余の８ビットを転送する工程を、本発明の４個および８個のスライスの実施形態の両方において、サブパス・コントローラの更に詳細な説明を参照してここで説明する。
【００３４】
図４は、上記で参照し図２Ｃに示した８個のスライスの実施形態による、サブパス・コントローラにおける２個の受信データ・サブパス、１１１ａ１および１１２ａ１を示している。各サブパスは、サブパスからなる各単一ビット・ラインに個別のバッファを有する。例えば、８個のスライスの実施形態においては、各受信または送信データ・パスは２ビット幅であり、従って、２個のバッファが設けられている。図４はＭＡＣ１１０ａで受信されるデータ・パケットの２ビットのスライスを集合的に受信するように、ＭＡＣ１１０ａに接続された受信データ・サブパス１１１ａ１の２個の単一ビット・ライン４０２および４０４を示している。同様に、ビット・ライン４０６および４０８は、ＭＡＣ１１０ｂから受信したデータ・パケットの２ビットのスライスを集合的に受信する。図示したように、各単一ビット・ライン、例えばビット・ライン４０２に接続されたシリアル・パラレル・コンバータ、例えばコンバータ４１０ａは、直列的にビットを受信して、３２ビットを並列に先入れ先出し（ＦＩＦＯ）バッファ、例えばバッファ４２２にバーストする。この実施形態においては、各ＦＩＦＯバッファは３２ビット幅で４ビットの奥行きである。しかし、他の幅および／または奥行きのＦＩＦＯも利用できるものと理解される。
【００３５】
説明の目的で、ビット・ライン４０２がビット位置０をサブパス１１１ａ１から受信し、ビット・ライン４０４がビット位置１をサブパス１１１ａ１から受信すると仮定する（しかし、本発明から逸脱せずに、２ビットのサブパスは何れかの２ビット位置を含むことができると理解される）。従って、ＦＩＦＯ４２２はＭＡＣ１１０ａから受信したデータ・パケットのビット０、３２、６４および９６などを受信し、ＦＩＦＯ４２４は同じデータ・パケットのビット１、３３、６５および９７などを受信する。この方法を続けると、サブパス１１１ａ２の第１のビット・ラインに連結されたＦＩＦＯ（図示せず）はビット２、３４、６６および９８などを受信し、サブパス１１１ａ２の第２のビット・ラインに連結されたＦＩＦＯはビット３、３５、６７および９９などを受信する。
【００３６】
所与のサブパスに対してＦＩＦＯのそれぞれに保持されたビットは、ｘビット幅のビット・ストリームを形成するようにインターリーブされ、このビット・ストリームは次にデータ・バス１２１の個々のｘビット幅の部分、例えばデータ・バス１２１ａ上でパケット・メモリへの転送のために選択される。例えば、ＦＩＦＯ４２２および４２４におけるセルｄの内容はそれぞれ、３２ビット幅のライン４３２および４３４で転送されて、６４ビット幅のライン４３８上でインターリーブされる。ＭＡＣ１１０ａまたは１１０ｂから受信したどのデータ・パケットがＰＱＭ１６０の制御の下でパケット・メモリ１３０に書き込まれているかによって、サブパス１１１ａ１またはサブパス１１２ａ１を選択するために階層的な２段階の選択回路が利用される。選択の第１段階においては、セレクタ４４５はサブパス１１１ａ１またはサブパス１１２ａ１の何れかを選択する。８個のスライスの実施形態においては、セレクタ４４５と同様に配置された３個の他のセレクタが、サブパス・コントローラ１２０ａを介して送られた残りの３対のサブパスから選択する。セレクタ４４５のセレクタは次に第２段階のセレクタ２１５に送信されて、そこでセレクタ２１５は第１段階で選択された４個のサブパスの１つを選択する。第２段階で選択されたサブパスからのデータ・パケットのスライスは、同じパスに関連するが他の７個のサブパス・コントローラを介して送られた他のサブパスからの、同じデータ・パケットの他のスライスと共に転送される。このようにして、データ・パケットはＭＡＣで受信され、独立のコントローラを介して分割されて送られて、同時にパケット・メモリ１３０の個別のメモリ場所にゲートされる。
【００３７】
８個のスライスの実施形態においては、残余バイトはサブパスについて２ビットずつ、８個のサブパス・コントローラの４個に渡って分散される。従ってＰＱＭ１６０が図４に示した階層的選択回路を介してこれらのサブパスの内容をゲートする場合に、バス１２１上を転送された５１２ビットのうち５０４ビットが無駄になる。図３に示した４個のスライスの実施形態は、シリアル・パラレル・コンバータの３２ビットの並行出力を１６ビットのＦＩＦＯに分割することにより、更に効率的にこの状況を扱っている。
【００３８】
４個のスライスの実施形態においては、例えば、サブパス１１１ａ１は４ビット幅のサブパスを含む。サブパスの各ビット・ラインは、サブパス・コントローラ１２０ａにおいてシリアル・パラレル・コンバータ２１０ａ１〜２１０ａ４の個別の１つに接続されている。翻って、シリアル・パラレル・コンバータのそれぞれは、３２ビットのパラレルバスを介して４ビット×３２ビットのＦＩＦＯ３２０〜３３５の個別の１つに連結されている。しかし、ＦＩＦＯはそれぞれ２個の１６ビットのＦＩＦＯに分割される。例えば、ＦＩＦＯ３２０はＦＩＦＯ３２０ｄ１と３２０ｄ２に分割される。４個の３２ビットのＦＩＦＯをインターリーブするのではなく、根本的に４個のみの１６ビットのＦＩＦＯがインターリーブされるように、サブパスにおける各ＦＩＦＯの個々の半分のみがインターリーブされる。従って、４個のスライスの実施形態においては、残余バイトはサブパスについて４ビットずつ、４個のサブパス・コントローラの２個に渡って分散される。ＰＱＭ１６０が、階層的選択回路を介してこれらのサブパスの内容をパケット・メモリにゲートする場合には、ＦＩＦＯ構造および上記のインターリーブのため、２４８ビットが無駄になるだけである。
【００３９】
スライスされた比較エンジン
上記で説明した本発明によるスライスされたデータ・パス・コントローラ・アーキテクチャを実装するＬＡＮ交換は、データ・パス・アーキテクチャをてこにして、データ・パケット識別、フィルタ、送出並びに、サービス・パラメータの品質、特にサービス・パラメータのポリシー・ベースの品質によるデータ・パケットを個別のキューにキューイングすることや、データ・パケットに関連した統計分析またはネットワーク管理機能を遂行することなどの他の動作を効率的に速やかに遂行する。本発明のデータ・パス・アーキテクチャおよびスライスされた比較エンジン・アーキテクチャを実施するＬＡＮ交換アーキテクチャは、パケットフィルタ、送出およびネットワーク層のルーティングの多数のレベルを支持し、ネットワーク管理、統計分析および高品質のサービス・アプリケーションを更に支持する。この機能性は、データリンク、ネットワーク、輸送または他のプロトコル層に記憶された情報の以下のよく知られたフィールドに適当に基づくが、それらに限定されるものではない。
ＭＡＣ受信宛先アドレス
ＭＡＣソース・アドレス
ＭＡＣ受信宛先アドレスおよびバーチャルＬＡＮ（ＶＬＡＮ）
ＭＡＣソース・アドレスおよびＶＬＡＮ
ＩＰ受信宛先アドレス
ＩＰ受信宛先アドレス、ＩＰソース・アドレスおよびＶＬＡＮ
ＴＣＰフロー（ＩＰソース・アドレス、ＴＣＰソース・ポート、ＩＰ受信宛先アドレス、ＴＣＰ受信宛先ポート）
ＩＰ受信宛先およびＩＰソース・アドレス
【００４０】
図１、２Ｃ、４および５を参照すると、上記のように、各データ・パス・コントローラは各クロック・サイクルでデータ・パケットのスライスをパケット・メモリ１３０に転送する。データ・パケットのスライスがデータ・パス・コントローラを通過すると、パケット送出コントローラ１５０はコマンド・バス５５５を介してデータ・パス・コントローラに命令を送り、あるフィールドまたはフィールドのグループをサーチする。（この実施形態は主として、送出コントローラの制御の下で、またその利益のために、比較エンジンの動作を主として考えているが、当業者は、高品質のサービス・キューイング、ネットワーク管理、統計分析などの他の動作の制御に関連した他のコントローラを、本明細書中に記載した比較エンジンを利用できると理解することに注意して戴きたい。）しかし、データ・パス・コントローラは本発明のデータ・パス・アーキテクチャに従って多数のサブパス・コントローラにスライスされるので、パケット送出コントローラはデータ・サブパス・コントローラに、データ・パケットの１つ以上のフィールドの特定のスライスをサーチするように命じる。代替的に、サブパス・コントローラは、サーチするフィールドを示すパケット送出コントローラからコマンドを受け取り、データ・パス・アーキテクチャにおける他のサブパス・コントローラに対する所与のサブパス・コントローラの位置、データ・パケットにおけるよく知られたフィールドのビット位置あるいは、サブパス・コントローラが処理に責任を負う特定のフィールドのスライスに関する他の情報などの、それらが気付いている情報に基づいてサーチするフィールドの特定のスライスを識別する。
【００４１】
図４を参照して、データ・パス・コントローラが多数のサブパス・コントローラにスライスされる程度に応じて、各サブパス・コントローラは多数のサブパスを含むことを想起して戴きたい。例えば、図４に示した８個のスライスの実施形態においては、各サブパス・コントローラは、それぞれ個別のＭＡＣに接続された個別のデータ・パスから派生した８個のサブパスを実装する。翻って、サブパスのそれぞれは、各ＭＡＣに接続されたデータ・パスの幅およびサブパス・コントローラの数に応じて、多数の単一のビット送信ラインに分割される。データ・パス幅が１６ビットである８個のスライス編成においては、図４に示したように各サブパスは２個の単一ビット送信ラインを有している。データビットは単一のビット送信ライン上で直列に受信されて、上記のように４×３２ビットのパラレルＦＩＦＯにおいてバッファされる。
【００４２】
本発明の比較エンジンによれば、各サブパス・コントローラにおける各４×３２ビットＦＩＦＯは、セレクタの１つに接続されていて、ＦＩＦＯにおける４個の３２ビットバッファの１つを選択する。例えば、図５に示した本発明によるデータ・パス・アーキテクチャの８個のスライスの実施形態においては、ＦＩＦＯ４２２および４２４は、サブパス２１０ａにおける対応する２個の単一ビット送信ライン４１２および４１４にそれぞれ連結されている。セレクタ５０２および５０４は、それぞれＦＩＦＯ４２２および４２４に連結されており、ＦＩＦＯにおけるバッファを入力として受信する。バッファはそれぞれデータ・パケットの３２個の隣接しない１ビットのスライスを含む。セレクタはＦＩＦＯにおける各入力に対応する４個の入力部をそれぞれ有しており、セレクタは、パケット送出コントローラによって与えられる制御信号に従って、セレクタがスライスを比較エンジン・ロジックに転送するときに、ＦＩＦＯのどこにスライスが位置するかに拘わらず、関連付けられたＦＩＦＯからデータの特定のスライスを検索することができる。図５に示した実施形態は、データ・パス・アーキテクチャに利用されているＦＩＦＯから直接にデータ・パケットのスライスを入手するが、当業者には、パケット識別およびフィルタの目的でデータ・パケットのスライスを受信するためにＦＩＦＯバッファの複写セットが提供されてもよく、妥協点はメモリ利用対データ・パス・コントローラのスループットであることが理解される。
【００４３】
データ・パケットのスライスは次にセレクタによってバッファに送られる。例えば、セレクタ５０２は、ＦＩＦＯ４２２における入力ａ、ｂ、ｃまたはｄの１つから入手したスライスをバッファ５０８に送る。セレクタ５１６は次に、よく知られたフィールドに関連したスライスの部分を選択する。一実施形態においては、セレクタ５１６は、フィルタなどが支持されている各フィールドに関する入力部を有する。従って、セレクタ５１６は、例えばＭＡＣ受信宛先アドレスなどに関連したバッファ５０８におけるスライスの部分を受信するために入力部を有し、例えばＩＰ受信宛先アドレスまたはＴＣＰフローなどに関連するバッファ５０８におけるスライスの部分を受信するためにもう１つの入力部を有する。パケット送出コントローラ１５０は、制御信号をセレクタ５１６に発して、どのフィールドが選択されたかを示す。図５に示し上記で説明したセレクタ５０２、バッファ５０８およびセレクタ５１６の組み合わせは、各サブパスの各ＦＩＦＯについても繰り返す。実際に、図示したように、ＦＩＦＯ４２４は、セレクタ５０４を介してバッファ５１０にデータ・パケットのスライスを送信するためにも連結されており、ここで１つ以上のフィールドに関連したスライスの部分が選択されてセレクタ５１８に送られる。
【００４４】
セレクタ５２０は、セレクタ５１６によってＦＩＦＯ４２２からあるいはセレクタ５１８によってＦＩＦＯ４２４から出力されたフィールドに関連するスライス（「フィールド・スライス」）の部分を選択する。フィールド・スライスはハッシュ・キーとして使用され、５２２でハッシング機能によって操作されて、フィールド・スライスを比較するための同様のフィールドのテーブルがある送出データベース１４０へのインデックスを計算する。例えば、セレクタ５２０の出力部で入手したフィールド・スライスがＭＡＣ受信宛先の一部であれば、ハッシング機能は、送出データベース１４０におけるＭＡＣアドレステーブルへのインデックスを計算する。しかし、フィールド・スライスがＩＰソース・アドレスの部分であれば、ハッシング機能は、送出データベースにおけるＩＰアドレステーブルへのインデックスを計算する。
【００４５】
一実施形態において、ハッシング機能は、送出データベース１４０におけるテーブルのハッシュ・バケットにインデックスを提供する。図５に示した実施形態におけるハッシュ・バケットの大きさは４個の入力である。従って、ハッシュ・バケットにおける４個の入力のそれぞれは、送出データベースから読み込まれて、例えばコンパレータ５２６ａから５２６ｎなどの同様の数のコンパレータにロードされる。フィールド・スライスは次にコンパレータのそれぞれにも入力されて、テーブルからロードされた入力に対して比較される。比較の結果はパケット送出コントローラに戻され、このコントローラはこのサブパス・コントローラおよび他のサブパス・コントローラにおける同じデータ・パケットの同じフィールドについて関連したフィールド・スライスに関して行った比較の結果を統合する。この工程は、データ・パケットが比較されている各フィールドについて繰り返してもよい。例えば、比較ロジックは、データ・パケットにおけるＭＡＣ受信宛先フィールドの内容をサーチして、送出データベースにおける入力と比較してもよい。ＭＡＣ受信宛先アドレスが見つかれば、すなわち、ＭＡＣ受信宛先アドレスと適合するものが送出データベースにおいて見つかれば、比較ロジックは、例えばＭＡＣソース・アドレスなどのデータ・パケットにおけるもう１つのフィールドの内容をサーチして比較してもよい。この工程は、サーチされているデータ・パケットのあらゆる数のフィールドについてこの反復的な方法で継続してもよい。
【００４６】
代替的に、セレクタ５１６および５１８で入手したフィールド・スライスは、まず結合されて、次に、送出データベースにおける対応するテーブルからコンパレータにロードされた入力に対して比較される。その結果は、ロジック（図示せず）でまたは送出コントローラ１５０によって統合され、サーチしている特定のフィールドが実際に比較エンジンによって発見されたかどうかを判断する。送出コントローラは次に、例えばデータ・パケットをフィルタするか送るなどの、識別されたパケット用のＬＡＮ交換において編成された適切な機能を遂行する。更に、セレクタ５１６および５１８の出力部で入手したフィールド・スライスは組み合わせることができ、その組み合わせは翻って他のサブパス・コントローラにおける同様のロジックの出力と組み合わされる。その結果得られるフィールドは、ハッシング機能によって利用されて送出データベースへのインデックスとして使用されるキーを作り出してもよい。インデックスによって指し示されるデータベースにおける入力は、次にコンパレータに入力され、比較はフィールドと行われ、その結果は上記と同じ方法で送出コントローラに送られる。
【図面の簡単な説明】
【図１】  本発明の実施形態によって利用されることがあるパケット交換器の図である。
【図２Ａ】  本発明による、中間アクセス・コントローラでデータ・パケットを受信してＬＡＮ交換の中央共有メモリにそれを転送する実施形態のブロック図である。
【図２Ｂ】  本発明による、データ・パケットを通信媒体への転送のために中央共有メモリからＬＡＮ交換の中間アクセス・コントローラに転送する実施形態のブロック図である。
【図２Ｃ】  本発明による、データ・パケットを中間アクセス・コントローラで受信して、それをＬＡＮの中央共有メモリに転送するもう１つの実施形態の図である。
【図２Ｄ】  本発明による、データ・パケットを中間アクセス・コントローラで受信して、それをＬＡＮの中央共有メモリに転送する実施形態の図である。
【図３】  本発明の実施形態による、データ・パケットを中間アクセス・コントローラで受信して、それをＬＡＮの中央共有メモリに転送する階層的選択ロジックを示した詳細なブロック図である。
【図４】  本発明の実施形態による、データ・パケットを中間アクセス・コントローラで受信して、それをＬＡＮの中央共有メモリに転送する階層的選択ロジックを示した詳細なブロック図である。
【図５】  本発明の実施形態による、ＬＡＮ交換で受信されたデータ・パケットを送るのに利用されるデータ選択・比較ロジックの図である。
【図１】
0004435974.tif 000002
【図２Ａ】
0004435974.tif 000003
【図２Ｂ】
0004435974.tif 000004
【図２Ｃ】
0004435974.tif 000005
【図２Ｄ】
0004435974.tif 000006
【図３】
0004435974.tif 000007
【図４】
0004435974.tif 000008
【図５】
0004435974.tif 000009