(57)【特許請求の範囲】
【請求項１】
ネットワークを介してパケットを送受するための複数のポートを含むネットワーク・インターフェースと、
ネットワーク・インターフェースに結合され、到着帯域幅と発信帯域幅の要件を適合させる弾性バッファとして働くパケット・バッファ記憶装置と、
ネットワーク・インターフェースの各ポートに結合され、受け取ったパケットに対応し、受け取ったパケットが転送されるポートのリストを含む中継決定を行うスイッチ構造と、
スイッチ構造に結合され、スイッチ構造によって与えられた中継決定に基づいて、中央処理ユニット（ＣＰＵ）から受け取ったパケットを中継するように構成されている中央処理ユニット・インターフェースと
を含み、
中央処理ユニット・インターフェースは、外部中央処理ユニットによってスイッチ構造に伝送されたコマンドを受信するとともに、この外部中央処理ユニットからパケットを受け取ってネットワーク・インタフェースを介して中継するようにしている、
スイッチのためのネットワーク・デバイス構築ブロック。
【請求項２】
ネットワーク・デバイス構築ブロックを他の１つまたは複数のネットワーク・デバイス構築ブロックに結合して、より大きなスイッチング・デバイスを形成するカスケード・インタフェースをさらに含む請求項１に記載のネットワーク・デバイス構築ブロック。
【請求項３】
受け取ったパケットに関する中継決定を生成するように構成されたスイッチ構造と、
パケットを受け取って、送るための複数のインターフェースであって、中継決定を要求し受け取るようにスイッチ構造に結合されており、ネットワーク上のデバイスと通信するための複数の外部ポートを提供する１つのネットワーク・インターフェースを含んでいる複数のインターフェースと、
１つまたは複数のスイッチ要素とフルメッシュ・トポロジで相互接続するための少なくとも２つの内部リンクを提供するカスケード・インタフェースと、
スイッチ構造と外部中央処理ユニットの間でのパケットおよび命令の通信のための中央処理ユニット・インターフェースであって、外部中央処理ユニットによってスイッチ構造に伝送されたコマンドを受け取るとともに、この外部中央処理ユニットからパケットを受信してネットワーク・インタフェースを介して中継するようにしている中央処理ユニット・インターフェースと、そして
複数のインターフェースのために共用バッファ・メモリ内のバッファを動的に割振りおよび割振り解除するために、そして共用バッファ・メモリ内のバッファの状況を追跡するために複数のインターフェースに結合された共用メモリ・マネージャと
を含むスイッチ要素。
【請求項４】
デバイスのネットワークへパケットを中継する方法であって、
スイッチの中央処理ユニットがネットワークで伝送するためのパケットを生成するステップと、
スイッチのスイッチ要素が、スイッチ要素の中央処理ユニット・インターフェースでパケットを受信するステップであって、中央処理ユニット・インターフェースは、スイッチの中央処理ユニットに応答してスイッチ構造にコマンドを伝送し、そしてスイッチの中央処理ユニットから受け取ったパケットを中継するように構成されている、ステップと、
パケットが第１の中継モードに関連している場合に、中央処理ユニット・インターフェースが、スイッチ要素のスイッチ構造から前記パケットに関する中継決定を要求するステップであって、中央処理ユニット・インターフェースがスイッチ構造から中継決定を受け取るステップと、
中央処理ユニット・インターフェースが中継決定によって示されるスイッチ要素の１つまたは複数のポートにパケットを中継するステップと、そして
前記１つまたは複数のポートがデバイスのネットワーク上にパケットを伝送するステップと
を含む方法。
【請求項５】
制御情報に基づいて、中央処理ユニット・インターフェースが、パケットが第２の中継モードに関連していると判定するステップであって、前記パケットが制御情報を含んでいるステップと、
中央処理ユニット・インターフェースが前記パケットを制御情報中で示されたポートに中継するステップと
をさらに含む請求項４に記載の方法。
【請求項６】
ネットワーク・セグメントを介して、パケットを受け取るための複数のポートと、
複数のポートの各々に結合され、到着パケットを一時的に記憶するため、共用メモリからのバッファを動的に割振るように構成されている共用メモリ・マネージャであって、パケットが中継される先のすべてのポートが、パケットの伝送を完了したときに、特定のパケットに関連するバッファを解放するようにさらに構成されている共用メモリ・マネージャと、
スイッチ構造に関連する中継およびフィルタリング・データベースに集中化されたインターフェースを提供するように複数のポートの各々に結合されたスイッチ構造と、
より大きなネットワーク・デバイスを形成するためにネットワーク・デバイス構築ブロックを他の１つまたは複数のネットワーク・デバイス構築ブロックと相互接続するための少なくとも２つの内部ポートを提供するカスケード・インタフェースと、そして
スイッチ構造に結合された中央処理ユニット・インタフェースであって、
（ａ）スイッチの外部中央処理ユニットに応答してスイッチ構造にコマンドを伝送し、（ｂ）第１の中継モードにおいてスイッチ構造によって提供された中継決定に基づいて外部中央処理ユニットから受け取ったパケットを中継し、そして
（ｃ）第２の中継モードにおいて外部中央処理ユニットから受け取った関連制御情報を有するパケットをその制御情報に示される複数のポートの１つまたは複数に中継する、中央処理ユニット・インタフェースと
を含むネットワーク・デバイス構築ブロック。
【発明の詳細な説明】
発明の分野
本発明は、概して、コンピュータ・ネットワーク・デバイスの分野に関する。より詳細には、本発明は、高度統合ネットワーク要素構築ブロック用のアーキテクチャに関する。
発明の背景
たとえば、インターネットおよびワールド・ワイド・ウェブにアクセスするマルチメディア・アプリケーションのために、既存のネットワークから拡大された帯域幅を必要とするユーザの数が増加している。したがって、将来のネットワークは、非常に高い帯域幅と多数のユーザをサポートすることができなければならない。さらにまた、このようなネットワークは、一般に異なる帯域幅を必要とするデータ、音声、ビデオなど多数のトラフィック・タイプをサポートできるべきである。
統計的調査によれば、ネットワーク・ドメイン、すなわち、相互接続されたローカル・エリア・ネットワーク（ＬＡＮ）のグループ、ならびに各ＬＡＮに接続された個々のエンド・ステーションの数が、将来、ますます高くなる増加率で成長する見通しである。したがって、これらの要件を満たすため、より多くのネットワーク帯域幅とより効率的な資源の利用が必要とされる。
ブリッジのような層２の要素を用いてネットワークを構築すると、ＬＡＮ間でのパケット中継が速くなる。しかしながら、トラフィック分離、冗長なトポロジ、待ち行列化およびアクセス制御のためのエンド・ツー・エンド・ポリシーにおける柔軟性がない。後者の属性は、ルータなど、第３層の要素を使うと満たすことができるが、ルータによって与えられるよりすぐれたインテリジェンスおよび決定能力の代わりにパケット中継速度が犠牲になる。
したがって、Ｎ個のポート上で非ブロッキング・ワイヤスピード多層スイッチングを行うことのできる、費用効果の高い高性能ネットワーク・デバイス構築ブロックを提供することが望ましい。一般に、シリコン技術における進歩にその性能を比例させるネットワーク・デバイス構築ブロックを提供すると有利である。したがって、共通の資源を共用し、共通の処理を集中化し、ハードウェア資源の利用を最大化することが望ましい。より具体的には、動的パケット・メモリ管理方式を利用して、パケット・バッファリングのためにすべての入出力ポート間での共通パケット・メモリの共用を促進することが望ましい。また、パケット・ヘッダ処理を集中化し、多重プロトコル層ベースの中継決定のために集中式データベースへの効率的なアクセスができることが望ましい。さらに、第１パケット中継モードでＣＰＵを元とするパケットに関するスイッチ構造の中継決定を要求し、第２パケット中継モードで、スイッチ構造のヘッダ突合せをバイパスして、パケットを１つまたは複数の指定されたポートに直接転送すると有利である。
発明の概要
パケット中継およびフィルタリングのための方法と装置を、高度統合ネットワーク要素構築ブロック用のアーキテクチャに関して説明する。本発明の一態様によれば、ネットワーク・デバイス構築ブロックは、ネットワークを介してパケットを送受するための複数のポートを備えたネットワーク・インターフェースを含む。ネットワーク・デバイス構築ブロックはまた、ネットワーク・インターフェースに結合されているパケット・バッファ記憶装置をも含む。パケット・バッファ記憶装置は、到着帯域幅と発信帯域幅要件を適合させるための弾性バッファとして働く。ネットワーク・デバイス構築ブロックはさらに、ネットワーク・インターフェースに結合されているスイッチ構造を含む。スイッチ構造は、受け取ったパケットに関する中継決定を含む。所与の中継決定は、特定の受け取ったパケットが中継されるポートのリストを含む。中央処理ユニット（ＣＰＵ）インターフェースも、ネットワーク・デバイス構築ブロック中に含まれる。ＣＰＵインターフェースは、スイッチ構造に結合され、スイッチ構造によって与えられた中継決定に基づいて、ＣＰＵから受け取ったパケットを中継するように構成されている。
本発明の他の態様によると、スイッチ要素は、受け取ったパケットに関する中継決定を生成するように構成されているスイッチ構造を含む。スイッチ要素はまた、パケットを受け取り送るための複数のインターフェースをも含む。各インターフェイスは、中継決定を要求し受け取るために、スイッチ構造と通信状態に結合される。インターフェースには、ネットワーク・インターフェース、カスケード・インタフェース、中央処理ユニット（ＣＰＵ）インターフェースが含まれる。ネットワーク・インターフェースはさらに、ネットワーク上のデバイスと通信するための複数の外部ポートを含む。少なくとも２つの内部リンクが、１つまたは複数の他のスイッチ要素とフルメッシュ・トポロジで相互接続するために、カスケード・インタフェースによって形成される。ＣＰＵインターフェースは、スイッチ構造とＣＰＵの間でのパケットおよびコマンドの通信を可能にする。スイッチ要素はさらに、インターフェースのために、共用バッファ・メモリ内のバッファを動的に割振り、割振り解除するためのインターフェースに結合された共用メモリ・マネージャを含む。共用メモリ・マネージャはさらに、共用バッファ・メモリ内のバッファの状況を追跡する。
本発明の他の特徴は、添付と図面と以下の詳しい説明から明らかになるであろう。
【図面の簡単な説明】
本発明は、添付図面の図に限定ではなく例として図示されている。図中、同じ参照番号は同様の要素を示す。
第１図は、本発明の一実施形態によるスイッチを示す。
第２図は、第１図のスイッチ中で用いられる典型的なスイッチ要素の簡略ブロック図である。
第３図は、第２図のスイッチ要素のより詳しいブロック図である。
詳細な説明
高度統合多層スイッチ要素アーキテクチャを説明する。以下の記述において、説明の目的で、数多くの具体的な詳細が、本発明の徹底的な理解をもたらすために示される。しかしながら、本発明が、いくつかのこれらの具体的な詳細なしで実施できることは、当業者には明らかであろう。他の場合には、周知の構造および装置は、ブロック図の形で示される。
本発明は、後述の様々なステップを含む。本発明のステップは、後述のハードウェア・コンポーネントによって実行することが好ましいが、別法として、これらのステップを、マシン実行可能命令で実施することもできる。この命令は、命令でプログラムされた汎用または専用のプロセッサにステップを実行させるために用いられる。さらに、本発明の実施形態は、高速イーサネットスイッチに関して説明する。しかしながら、本明細書に記載する方法および装置は、ブリッジ、ルータ、ブルータ、および他のネットワーク・デバイスなど他の種類のネットワーク・デバイスにも同様に適用可能であることを理解されたい。
ネットワーク要素の例
本発明の教示に従って動作するネットワーク要素の一実施形態の概要を第１図に示す。ネットワーク要素は、様々な方法で、いくつかのノードおよび端末を相互接続するために使われる。特に、多層分散ネットワーク要素（ＭＬＤＮＥ）の一用途は、イーサネットとしても知られているＩＥＥＥ８０２．３など、均質なデータ・リンク層を介した定義済みのルーティング・プロトコルによってパケットをルーティングすることができる。他のルーティング・プロトコルも使用することができる。
ＭＬＤＮＥの分散アーキテクチャは、既知のまたは将来のいくつかのルーティング・アルゴリズムに従ってメッセージ・トラフィックをルーティングするように構成することができる。好ましい実施形態においては、ＭＬＤＮＥは、１組のインターネット・プロトコル、より具体的には伝送制御プロトコル（ＴＣＰ）／インターネット・プロトコル（ＩＰ）を用いて、イーサネットＬＡＮ標準およびミディアム・アクセス制御（ＭＡＣ）データ・リンク層を介してメッセージ・トラフィックを扱うように構成される。ＴＣＰは、本明細書では層４のプロトコルとも呼び、ＩＰは繰り返して層３プロトコルと呼ぶ。
ＭＬＤＮＥの一実施形態において、ネットワーク要素は、分散式に、パケット・ルーティング機能を実施するように構成される。すなわち、機能の異なる部分が、ＭＬＤＮＥにおける異なるサブシステムによって実行され、それらの機能の最終的な結果は、外部ノードおよび端末にとって透過的なままである。以下の考察および第１図の図からわかるように、ＭＬＤＮＥは、スケーラブルなアーキテクチャを有する。このアーキテクチャでは、設計者が、追加のサブシステムを加えることによって、外部接続の数を予測可能に増加させることができ、それによって、ＭＬＤＮＥをスタンド・アロン・ルータとして定義する際により大きな柔軟性が可能になる。
第１図のブロック図に示すように、ＭＬＤＮＥ１０１は、完全にメッシュされ、いくつかの内部リンク１４１を用いて相互接続されてより大きなスイッチを構成する、いくつかのサブシステム１１０を含む。少なくとも１つの内部リンクが、いずれか２つのサブシステムを結合する。各サブシステム１１０は、転送データベースとも呼ばれる中継およびフィルタリング・データベース１４０に結合されたスイッチ要素１００を含む。中継およびフィルタリング・データベースは、中継メモリ１１３および連想メモリ１１４を含むことができる。中継メモリ（またはデータベース）１１３は受け取ったパケットのヘッダと突き合わせるために用いられるアドレス・テーブルを記憶する。連想メモリ（またはデータベース）は、ＭＬＤＮＥを介してパケットを転送するための転送属性を識別するのに用いられる中継メモリ内の各エントリに関連するデータを記憶する。入出力能力を有するいくつかの外部ポート（図示せず）が、外部接続１１７にインターフェースする。一実施形態においては、各サブシステムは、多数のギガビット・イーサネット・ポート、ファースト・イーサネット・ポートおよびイーサネット・ポートをサポートする各サブシステムにおいてやはり入出力能力を有する内部ポート（図示せず）は、内部リンク１４１を結合する。内部リンクを用いて、ＭＬＤＮＥは、多数のスイッチ要素を互いに接続して、マルチギガビット・スイッチを形成することができる。
ＭＬＤＮＥ１０１はさらに、周辺コンポーネント相互接続（ＰＣＩ）などの通信バス１５１を介して個々のシステム１１０に結合される中央処理システム（ＣＰＳ）１６０を含む。ＣＰＳ１６０は、中央メモリ１６３に結合された中央処理ユニット（ＣＰＵ）１６１を含む。中央メモリ１６３は、様々なサブシステムの個々の中継メモリ１１３内に含まれるエントリのコピーを含む。ＣＰＳは、各サブシステム１１０への直接制御および通信インターフェースを有し、スイッチ要素間の若干の集中化された通信および制御を提供する。
スイッチ要素の例
第２図は、第１図のスイッチ要素のアーキテクチャの例を示す簡略ブロック図である。図のスイッチ要素１００は、中央処理ユニット（ＣＰＵ）インターフェース２１５、スイッチ構造ブロック２１０、ネットワーク・インターフェース２０５、カスケード・インタフェース２２５、および共用メモリ・マネージャ２２０を含む。
イーサネット・パケットは、３つのインターフェース２０５、２１５、または２２５のいずれか１つを介して、ネットワーク・スイッチ要素１００に出入りする。要約すると、ネットワーク・インターフェース２０５は、対応するイーサネット・プロトコルに従って動作して、ネットワーク（図示せず）からイーサネット・パケットを受け取り、１つまたは複数の外部ポート（図示せず）を介してネットワークにイーサネット・パケットを送る。オプションのカスケード・インタフェース２２５は、スイッチ要素を相互接続してより大きなスイッチを作成するするための、１つまたは複数の内部リンク（図示せず）を含む。たとえば、各スイッチ要素１００は、他のスイッチ要素とフル・メッシュ・トポロジで接続されて、上述の多層スイッチを形成する。別法としては、スイッチは、カスケード・インタフェース２２５を有するまたは有さない単一のスイッチ要素１００を含むこともできる。
ＣＰＵ１６１は、ＣＰＵインターフェース２１５を介して、コマンドまたはパケットをネットワーク・スイッチ要素１００に伝送する。このようにして、ＣＰＵ１６１上を走る１つまたは複数のソフトウェア処理は、新しい入力を追加し、不必要な入力を無効にするなど、外部の中継およびフィルタリング・データベース１４０における入力を管理することもできる。しかしながら、別の実施形態においては、ＣＰＵ１６１は、中継およびフィルタリング・データベース１４０へ直接アクセスすることもできる。いずれの場合にも、パケット中継では、ＣＰＵインターフェース２１５のＣＰＵポートは、スイッチ要素１００への総称入力ポートに似ており、単に他の外部ネットワーク・インターフェース・ポートであるかのように扱うことができる。ただし、ＣＰＵポートへのアクセスは、周辺コンポーネント相互接続（ＰＣＩ）バスなどのバスを介して行われるので、ＣＰＵポートは、媒体アクセス制御（ＭＡＣ）機能も必要としない。
ネットワーク・インターフェース２０５に戻り、２つの主要なタスクである入力パケット処理および出力パケット処理について簡潔に説明する。入力パケット処理は、ネットワーク・インターフェース２０５の１つまたは複数の入力ポートによって行われる。入力パケット処理は、以下のことを含む。（１）到着イーサネット・パケットを受け取って検査すること、（２）適当なときに、パケット・ヘッダを修正すること、（３）到着パケットを記憶するために、共用メモリ・マネージャ２２０にバッファ・ポインタを要求すること、（４）スイッチ構造ブロック２１０に中継決定を要求すること、（５）外部共用メモリ２３０に一時的に記憶するため、到着パケット・データを共用メモリ・マネージャ２２０に送ること、および（６）中継決定を受け取ると、バッファ・ポインタを中継決定によって指示された出力ポートに送ること。出力パケット処理は、ネットワーク・インターフェース２０５の１つまたは複数の出力ポートによって行われる。出力処理は、共用メモリ・マネージャ２２０にパケット・データを要求すること、ネットワーク上にパケットを送ること、およびパケットが送られた後、バッファの割振り解除を要求することを含む。
ネットワーク・インターフェース２０５、ＣＰＵインターフェース２１５、およびカスケード・インタフェース２２５は、共用メモリ・マネージャ２２０およびスイッチ構造ブロック２１０に結合される。パケット中継やパケット・バッファリングなどの重要な機能が、第２図に示すように集中化されていることが好ましい。共用メモリ・マネージャ２２０は、到着パケットをバッファするための、外部共用メモリ２３０への効率的な集中化されたインターフェースである。スイッチ構造ブロック２１０は、ＣＰＵ１６１の助けで中継およびフィルタリング・データベース１４０をサーチし維持するための、サーチエンジンおよび学習ロジックを含む。
集中化されたスイッチ構造ブロック２１０は、インターフェース２０５、２１５、および２２５のために中継およびフィルタリング・データベース１４０へのアクセスを行うサーチエンジンを含む。パケット・ヘッダの突合せ、層２に基づく学習、層２および層３のパケット中継、フィルタリング、およびエージングが、スイッチ構造ブロック２１０によって行われる機能の例である。各入力ポートは、スイッチ構造ブロック２１０に結合され、受け取ったパケットに関する中継決定を受け取る。中継決定は、対応するパケットが送られる送り出しポート（たとえば、外部ネットワークポートまたは内部カスケードポート）を指示する。ＭＡＣＤＡ（ＭＡＣ宛先アドレス）の置換のための新しいＭＡＣ宛先アドレス（ＤＡ）などハードウェア・ルーティングをサポートするための追加情報も中継決定内に含まれる。さらに、スイッチ要素１００を介するパケット・トラフィックの優先順位付けを容易にするための優先順位指示も中継決定内に含まれる。
本実施形態においては、イーサネット・パケットは、共用メモリ・マネージャ２２０によって中央でバッファされ管理される。共用メモリ・マネージャ２２０は、あらゆる入出力ポートにインターフェースし、これらのポートのためにそれぞれ、動的メモリ割振りおよび割振り解除を行う。たとえば、入力パケット処理中に、１つまたは複数のバッファが、外部の共用メモリ２３０内で割り振られ、到着パケットが、ネットワーク・インターフェース２０５から受け取った命令に応答して共用メモリ・マネージャ２２０によって記憶される。その後、出力パケット処理中に、共用メモリ・マネージャ２２０は、外部共用メモリ２３０からパケットを取り出し、もはや使用していないバッファを割振り解除する。すべての出力ポートがそこに記憶されたデータの伝送を完了するまで、解放されたバッファがないようにするために、共用メモリ・マネージャ２２０が、バッファの所有権をも追跡することが好ましい。
高レベルでスイッチ要素１００のアーキテクチャを説明してきたが、次に第３図に関してより詳しく個々のコンポーネントを説明する。
ネットワークおよびカスケード・インタフェース
本発明のスイッチ要素は、３つのインターフェース２１５、２０５、２２５間のイーサネット、高速イーサネット、およびギガビット・イーサネット・パケットのワイヤ・スピード・ルーティングおよび中継を行う。本実施形態によると、ネットワーク・インターフェース２０５およびカスケード・インタフェースの各ポートは、入力パケット処理（ＩＰＰ）、出力パケット処理（ＯＰＰ）、および媒体アクセス・コントローラ（ＭＡＣ）を含む。
ＩＰＰは、スイッチ構造２１０、共用メモリ・マネージャ２２０、およびＯＰＰと通信状態で結合されている。ＩＰＰが、受け取ったパケットに関する中継決定をスイッチ構造２１０に要求し、中継決定が戻されるまで、共用メモリ２３０内にパケット・データを一時的に記憶する。中継決定を受け取ると、ＩＰＰは、対応するパケットがあれば、それを適当なＯＰＰに転送する。
一実施形態によると、受け取ったパケット・ヘッダは、ＩＰＰによって、参照として本明細書に組み込まれる、１９９７年６月３０日に出願された「Ｍｅｃｈａｎｉｓｍ  ｆｏｒ  Ｐａｃｋｅｔ  Ｆｉｅｌｄ  Ｒｅｐｌａｃｅｍｅｎｔ  ｉｎ  ａ  Ｍｕｌｔｉ−Ｌａｙｅｒｅｄ  Ｓｗｉｔｃｈｅｄ  Ｎｅｔｗｏｒｋ  Ｅｌｅｍｅｎｔ」と題する米国特許出願第 号、整理番号０８２２２５．Ｐ２３７６に開示されているように修正される。
ＯＰＰは、共用メモリ・マネージャ２２０と通信状態で結合されている。パケットが送信の準備ができると、ＯＰＰは、共用メモリ・マネージャ２２０を介して共用メモリ２３０からパケット・データを取り出し、接続されたネットワークにパケット・データを送る。
一実施形態によると、ＯＰＰにおける動的出力待ち行列化は、参照として本明細書に組み込まれる、１９９７年６月３０日に出願された「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｄｙｎａｍｉｃ  Ｑｕｅｕｅ  Ｓｉｚｉｎｇ」という名称の米国特許出願第 号、整理番号０８２２２５．Ｐ２３７７に開示されているようなものである。
他の実施形態によると、パケット・ルーティングおよびパケット・フィールド置換は、参照として本明細書に組み込まれる、１９９７年６月３０日に出願された「Ｍｅｃｈａｎｉｓｍ  ｆｏｒ  Ｐａｃｋｅｔ  Ｆｉｅｌｄ  Ｒｅｐｌａｃｅｍｅｎｔ  ｉｎ  ａ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｍｕｌｔｉ−Ｌａｙｅｒｅｄ  Ｎｅｔｗｏｒｋ  Ｅｌｅｍｅｎｔ」と題する、米国特許出願第 号、整理番号０８２２２５．Ｐ２５８３に開示されているようなものである。
スイッチ構造
スイッチ構造２１０は、入力ポートのために中継およびフィルタリング・データベース１４０への集中アクセスを行う。スイッチ構造２１０内の高度にパイプライン化されたロジックにより、それが、一時に複数の入力ポートからパケット・ヘッダを受け取って処理することが可能になる。有利には、集中化およびパイプライン化は、ハードウェア実装のオーバヘッドを低減する。たとえば、Ｎ段パケット・ヘッダ処理パイプラインにより、Ｎ個のパケット・ヘッダ処理装置を設けなくてもよく、様々な入力ポートからのＮ個のパケット・ヘッダを単一ブロックで処理することができる。
一実施形態によると、スイッチ構造２１０は、参照として本明細書に組み込まれる、１９９７年６月３０日に出願された「Ｓｅａｒｃｈ  Ｅｎｇｉｎｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  ａ  Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｍｕｌｔｉ−Ｌａｙｅｒ  Ｓｗｉｔｃｈ  Ｅｌｅｍｅｎｔ」と題する、米国特許出願第 号、整理番号０８２２２５．Ｐ２３６１、および１９９７年６月３０日に出願された「Ｈａｒｄｗａｒｅ−Ａｓｓｉｓｔｅｄ  Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  Ａｃｃｅｓｓ  ｔｏ  Ｆｏｒｗａｒｄｉｎｇ  Ｄａｔａｂａｓｅ」と題する、米国特許出願第 号、整理番号０８２２２５．Ｐ２５５９に開示されているように、実施される。
ＣＰＵインターフェース
本実施形態のＣＰＵインターフェース２１５は、ホスト伝送プロセス（ＨＴＰ）３５０およびホスト受取りプロセス（ＨＲＰ）３６０に結合されたバス・インターフェース（ＢＩＦ）３４０を備える単一のＣＰＵポートを含む。ＢＩＦ３４０は、ＣＰＵ１６１とスイッチ要素１００の間でデータを通信するための、バス・インターフェース・プロトコルを実施する。この点に関連して、これは、ネットワーク・インターフェース・ポートにおけるＭＡＣと同様の責任を有する。一実施形態においては、ＢＩＦ３４０は、ＣＰＵメモリへのおよびＣＰＵメモリからのＰＣＩ直接メモリ・アクセス（ＤＭＡ）をサポートするための、ＰＣＩプロトコル・ブロックを含む。
アーキテクチャ上、ＣＰＵポートは、ネットワーク・インターフェース・ポートおよびカスケード・インタフェース・ポートをミラーするように設計されている。ＢＩＦ３４０は、機能的に、ネットワーク・インターフェース・ポートＭＡＣに対応する。たとえば、ＢＩＦ３４０とＭＡＣはどちらも、物理媒体を介してスイッチ要素１００の外部のデバイスと通信するために特定のプロトコル（たとえば、それぞれＰＣＩおよびイーサネット）を扱う責任を有する。同様に、ＨＴＰ３５０は、ネットワーク・インターフェース・ポートのＩＰＰに対応する。ＨＴＰ３５０とＩＰＰはどちらも、到着パケットをバッファし、スイッチ構造２１０に中継決定を要求し、到着パケットを適当な出力ポートに送る責任を有する。最後に、ＨＲＰ３６０は、ネットワーク・インターフェース・ポートのＯＰＰに対応する。ＨＲＰ３６０とＯＰＰはどちらも、共用メモリ２３０からアウトバウンド・パケットを取り出し、アウトバウンド・パケットを送り、パケット・バッファ・ポインタが解放されたとき共用メモリ・マネージャ２２０に通知する責任を有する。この新規のＣＰＵインターフェース・アーキテクチャにより、ＣＰＵポートが、単に他のネットワーク・インターフェース・ポートであるかのように、他のスイッチ要素コンポーネントによって取り扱われることが可能になる。
ＣＰＵインターフェース２１５の他の特徴は、送られるパケットに対してＣＰＵが２つの中継モードが利用できることである。一実施形態においては、ＣＰＵインターフェース２１５は、ＣＰＵによって与えられるパケットごとの制御情報に基づいて所与のパケットに対して２つの中継モードの１つで動作するように構成されている。第１のモードであるスイッチ・モードでは、ＣＰＵインターフェース２１５は、スイッチ構造２１０に中継決定を要求し、第２のモードである直接モードでは、スイッチ構造のヘッダ突合せがバイパスされ、それによって、パケットを１つまたは複数の指定されたポートに直接送ることができる。
スイッチ構造２１０および共用メモリ・マネージャ２２０は、一般に、ＣＰＵインターフェース２１５が他のネットワーク・インターフェースであるかのように、ＣＰＵインターフェース２１５と相互作用するので、ＣＰＵを元とするパケットのためのスイッチ・モードは、ネットワーク・インターフェース２０５およびカスケード・インタフェース２２５において行われるパケット中継を並列化する。理解されるように、ＣＰＵインターフェース２１５のこの画期的な設計および処理は、ＣＰＵを元とするパケットのための新規のスイッチ・モードの効率的な実装を提供する。
次に、直接モードについて説明する。ＣＰＵインターフェース２１５は、ＣＰＵを元とするパケットを伴う制御情報に基づいて、ＣＰＵを元とするパケットを中継する。制御情報は、スイッチ要素１００によるパケット中継を容易にするために、パケットについての情報を含む。たとえば、一実施形態においては、直接モード・フラグが、制御情報中に設けられ、パケットが、スイッチ構造２１０によって与えられた中継決定に対して中継されるのではなく、１つまたは複数の指定された出力ポートに転送されるよう指示する。この場合、典型的なパケット・ヘッダ突合せおよび中継データベースサーチはバイパスされ、パケットは、指定された出力ポートに転送される。他のフラグおよび制御情報も制御情報に組み込むことができることを理解されたい。
共用メモリ・マネージャ
本実施形態によると、共用メモリ・マネージャ２２０は、パケット・メモリの共用プールおよび動的バッファ割振り方式を利用するバッファード・アーキテクチャを含む。従来の入力ポート・バッファおよび出力バッファ・パケット・バッファ方式は、一般に、各ポートに関連するメモリの静的部分を有し、所与のポートを介する実際のトラフィック量に関係しない非効率的なメモリ割振りおよびバッファリングをもたらす。それとは対照的に、本発明によって提供されるメモリ・マネージャは、所与のポートを介するトラフィック量に比例したポートごとのバッファリングの効率的な割振りを達成するように設計されている。
共用メモリ・マネージャ２２０は到着パケットのバッファリングのための共用メモリ２３０への効率的な集中化されたインターフェースである。共用メモリ２３０は、インバウンド・インターフェース（たとえば、ＩＰＰ３１０−３１４またはＨＴＰ３５０）から１つまたは複数のアウトバウンド・インターフェース（たとえば、ＯＰＰ３１５−３１９またはＨＴＰ３６０）への途中でパケット・データを一時記憶するために使われるバッファのプールである。本質的に、共用メモリは、到着帯域幅と発信帯域幅の要件を適合させるための弾性バッファとして働く。
この実施形態によると、共用メモリ・マネージャ２２０は、バッファ・マネージャ３２５を含む。間接化レベルは、パケット・データ自体の代わりにパケット・ポインタを待ち行列化することにより、入力ポートおよび出力ポートによって利用されるバッファ・マネージャ３２５によって与えられる。したがって、本発明によって行われるバッファリングは、入力パケット・バッファリングや出力パケット・バッファリングのような従来のバッファリング・カテゴリに適合しない。そうではなく、本明細書で記述するバッファは、出力待ち行列をバッファする共用メモリとして説明するのが最善である。有利には、ポインタは、ポートにおいて待ち行列化されるので、本実施形態によると、スイッチの動作は、１つまたは複数の出力ポートの特定の待ち行列への入力ポートの間でパケット・ポインタを転送することに還元される。
共用メモリ２３０内の各バッファは、異なる時点に１つまたは複数の異なるポートによって所有される。たとえば、マルチキャスト・パケットのバッファ・ポインタのコピーは、いくつかの出力ポート待ち行列に常駐する。図の実施形態では、共用メモリ・マネージャ２２０は、バッファ・マネージャ３２５に結合されたポインタ・ランダム・アクセス・メモリ（ＰＲＡＭ）３２０をも含む。ポインタＲＡＭ３２０は、共用メモリ２３０のページ（バッファ）の使用カウントを記憶するオンチップ・ポインタ・テーブルである。このようにして、所与の時間におけるバッファ所有者の数を、バッファ・マネージャ３２５が知っている。このようにして、最後の出力ポートによって解放されるとき、バッファ・マネージャ３２５が、動的なバッファ割振り解除を行うのが可能になる。
一実施形態によると、バッファ・マネージャ３２５は、参照として本明細書に組み込まれる、１９９７年６月３０日に出願された「Ｈａｒｄｗａｒｅ−Ａｓｓｉｓｔｅｄ  Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  Ａｃｃｅｓｓ  ｔｏ  ａ  Ｆｏｒｗａｒｄｉｎｇ  Ｄａｔａｂａｓｅ」と題する、米国特許出願第 号、整理番号０８２２２５．Ｐ２３５４に開示されているように、実施される。
バッファ・メモリ・コントローラ３３０は、パケット・データをそれぞれ共用メモリ２３０に記憶し、そこから取り出すための、入力ポートおよび出力ポートへの集中化されたインターフェースである。一実施形態によると、バッファ・コントローラ３３０は、参照として本明細書に組み込まれる、１９９７年６月３０日に出願された「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  Ｆｏｒ  Ａｒｂｉｔｒａｔｉｎｇ  Ａｃｃｅｓｓ  ｔｏ  ａ  Ｓｈａｒｅｄ  Ｍｅｍｏｒｙ  ｂｙ  Ｎｅｔｗｏｒｋ  Ｐｏｒｔｓ  Ｏｐｅｒａｔｉｎｇ  ａｔ  Ｄｉｆｆｅｒｅｎｔ  Ｄａｔａ  Ｒａｔｅｓ」と題する、米国特許出願第 号、整理番号０８２２２５．Ｐ２５０１、および１９９７年６月３０日に出願された「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  Ｉｎ  ａ  Ｐａｃｋｅｔ  Ｒｏｕｔｉｎｇ  Ｓｗｉｔｃｈ  ｆｏｒ  Ｃｏｎｔｒｏｌｌｉｎｇ  Ａｃｃｅｓｓ  ａｔ  Ｄｉｆｆｅｒｅｎｔ  Ｄａｔａ  Ｒａｔｅｓ  ｔｏ  ａ  Ｓｈａｒｅｄ  Ｍｅｍｏｒｙ」と題する、米国特許出願第 号、整理番号０８２２２５．Ｐ２３６７に開示されているように、実施される。
以上、パケット・メモリの共用プール内への受け取ったパケットを一時記憶を提供し、所与のポートを介するトラフィック量に比例するポートごとのバッファリングの効率的な割振りを行うバッファ・アーキテクチャについて述べた。
上述の明細書においては、本発明をその特定の実施形態について説明したが、本発明のより広い趣旨および範囲から逸脱することなく、様々な修正および変更を加えることができることは明らかであろう。したがって、本明細書および図面は、制限的な意味ではなく例示的なものとみなすべきである。
【図１】
0004053093.tif 000002
【図２】
0004053093.tif 000003
【図３】
0004053093.tif 000004