(57)【要約】【課題】ネットワークシステムにおいて、セル交換を妨害することなくフレーム交換を処理する交換器を提供する。【解決手段】共通の交換装置を介してセル及びパケットまたはフレームのいずれも転送するための新規なネットワーキングアーキテクチャ及び技法を開示する。このアーキテクチャ及び技法は、転送エンジン（入力側）用のアルゴリズムの組と、ATM交換の正常な動作に影響を与えることなく、及び、前記交換装置を介して転送するためにパケットをセルに変更することなくパケット／セル情報を処理するために各I/Oモジュールに提供されるQoS管理（出力部）用のアルゴリズムの組、とを使用することにより、少なくとも部分的に実行される。【選択図】図４
2006262517.tif 000002
【特許請求の範囲】
【請求項１】
パケット情報の転送を管理する転送交換器及び待ち行列からの該パケット情報を処理する方法であって、各パケットが、前記交換器から読み出されるときに、
待ち行列に利用可能な物理空間が存在することが確認された後に、前記パケット情報を複数の待ち行列のうちの一つに入れるステップと、
利用可能な物理空間がない場合には、前記パケット情報をドロップ待ち行列に入れて、前記交換器を介して該パケット情報を返すステップと、
好ましくない情報トラフィックを除去できるようにするために、各待ち行列にウォーターマークを設定するステップと、
パケットのバイトサイズによって、及び、帯域幅のタイムスライスに基づいて、それぞれの優先順位に対して割り当てるステップ
とからなる方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステムと、ネットワークシステムへの情報の転送及びルーティングに関連し、詳しくは、共通のハードウエア、共通のQoS（Quality of Service：サービス品質）アルゴリズム、共通の転送アルゴリズムを有する同じ装置における、セル、及び、パケットまたはフレームの両方の交換を管理することに関する共通の問題に焦点をあてたものである。すなわち、本発明は、セル交換を妨害することなく、フレーム交換を処理する交換器を構築することに関連する。
【背景技術】
【０００２】
ネットワークキングソリューションに向けた２つのアーキテクチャに、セル交換とフレーム転送がある。セル交換には、セルと呼ばれる固定サイズの単位でデータを伝送することが含まれる。これは、非同期転送モード（ATM）と呼ばれる技術に基づいている。フレーム転送は、フレームまたはパケットと呼ばれる任意サイズの単位でデータを伝送する。フレーム転送の原理は、種々のプロトコルによって使用されるが、最も注目すべきは、インターネットプロトコル（IP）群である。
【０００３】
本発明は、共通の転送アルゴリズムを使用する共通のシステムにおけるセル及びフレームの転送に関する。1995年12月29日に出願された、「High Performance Universal Multi-Ported Internally Cached Dynamic Random Access Memory System」と題する同時係属中の米国特許出願第581,467号、及び、1997年7月25日に出願された、「System Architecture for and Method of Dual Path Data Processing and Management of Packets and/or Cells」と題する同時係属中の米国特許出願第900,757号等（これらはいずれも、本出願と共に共通の譲受人に譲渡されている）は、共通のセル／フレーム転送に対する有望なソリューションを提供するものである。
【０００４】
最も伝統的はインターネット型ホスト間データ通信は、ルーターと呼ばれるパケット交換器を使用して（交換器の集合体として定義される）ネットワークにより相互接続される、種々のサイズのパケット形態で実行される。最近、ATMが、ホスト間のデータ通信技術として広く利用可能になってきたが、それは、従来の電話通信用データだけでなくコンピュータ間通信用のデータをも送信するための共通の方法を提供すべく開発されてきたものである。
【０００５】
従来使用されてきた方法は、各回線に対して１チャンネルに一定時間を割り当てる時分割多重方式（TDM）を電話通信用データに適用したものであった。図３を参照して後述するように、例えば、回線Ａに、時間ｘ（従って、データ）を割り当て、続いて、時間ｙ、ｚ、そして再びｘを割り当てることができる。従って、各回線は、完全に同期する。しかしながら、ほの方法には、使用帯域幅について本質的な制限がある。なぜなら、回線がなにも送信しない場合には、それに割り当てられた帯域はライン上で使用されないからである。ATMは、回路の非同期動作を可能にすることによってこの帯域幅の問題に対処している。帯域はさらに固定長のデータ項目間で分割されるが、任意の回線は、任意の時点で送信を行うことができる。
【０００６】
ITU-T（International Telecommunications Union-Telecommunications、正式にはCCITT）は、以下の４つのサービスクラスについて規定された電気通信標準を提供するために国際連合によって設立された組織である。その４つとは、１）回線エミュレーション用の固定ビットレート、すなわち、固定レートの音声及びビデオ、２）所定の音声及びビデオアプリケーション用の可変ビットレート、３）コネクション−オリエンテッド・トラフィック用データ、及び４）コネクションレス−オリエンテッド・トラフィック用データ、である。これらのサービスは、ATMトラフィックの所定の「クラス」によってもサポートされている。ATMは、セルと呼ばれる固定サイズの単位でデータを転送する。ATMの「タイプ」にはいくつかの種類があり、それらは、ATMアダプテーションレイヤ（AAL）と呼ばれている。これらのATMアダプテーションレイヤは、ITU-T勧告I.363に規定されている。AAL1、AAL3/4、及びAAL5の３つタイプが規定されている。AAL2は、ITU-T勧告には規定されておらず、AAL3とAAL4は、１つのタイプにまとめられている。ATMのセル構造に関しては、あるレイヤに属するセルを、他のレイヤに属するセルと対照するものとして識別する方法はない。
【０００７】
アダプテーションレイヤは、回線セットアップの間、すなわち、ホストコンピュータがネットワークに通信をおこなうときに決定される。このとき、ホストコンピュータは、それが特定の仮想回線用に使用することになるレイヤをネットワークに知らせる。AAL1は、音声やビデオなどのリアルタイムアプリケーションに使用するために規定されている。一方、AAL５は、IPデータグラムの転送のような従来のデータグラム志向のサービスに使用するために規定されている。一連のAAL５セルが、パケットを構成するために定義される。AAL５パケットの定義は、（図１を参照して後述するように）最後の１つを除いて、PT1ビットが０に設定されたセルのストリームから成る。これは、セグメントパケットと呼ばれる。
【０００８】
従って、現在のネットワークキング技術では、データは、ネットワークに設置された交換装置のタイプに依存して、可変サイズのパケットか固定サイズのセルのどちらかにおいて転送される。ルーターを互いに、直接に、あるいはATMネットワークを介して接続することができる。直接に接続する場合は、パケットは任意のサイズであるが、ATM交換器（ATMスイッチ）によって接続する場合は、ルーターから出力されるすべてのパケットは、５３バイトの固定サイズのセルに分割される。
【０００９】
インターネットプロトコル（IP）技術に基づくネットワークアーキテクチャは、「ベストエフォート（best effort）」型サービスとして構築される。これは、帯域が利用可能な場合はデータは到達するが、一方、帯域が利用できない場合は、データが落ちてしまうことを意味する。これは、ファイル転送や遠隔端末アクセスのようなほとんどのコンピュータデータアプリケーションではうまく動作するが、ビデオ（映像）や音声を伴うような、再送信できないか、または、再送信の意味がないアプリケーションではうまく動作しない。順序の違うビデオフレームを取得しても何の意味もないが、ファイル転送アプリケーションは、そのような異常を許容することができる。パケットサイズは任意の時点で任意であり、どのタイプ及びサイズのトラフィックが他の任意のタイプのトラフィックの前にあるかを予測する方法がないため、任意の２つのフレーム間に特定の遅延変動を起こすことはほとんど不可能である。さらに、データを取り扱わなければならないバッファは、最大のデータサイズを受信することができなければならないが、これは、より大きなデータパケットを取り扱うためにバッファリング方式を最適化し、同時に、より小さなパケットに対しては多くのメモリを消費しないようにしなければならないということを意味する。
【００１０】
ATMは、種々のアプリケーションに対していくつかのサービスのカテゴリを提供するように構成されている。これらには、固定ビットレート（CBR）、可変ビットレート（ABR）、不定ビットレート（UBR）、及び、リアルタイムと非リアルタイムの２つの可変ビットレート（VBR）のバージョンが含まれる。これらのサービスカテゴリは、トラフィックパラメータ及びQｏSパラメータに関して規定されている。トラフィックパラメータには、ピーク・セル・レート（Peak Cell Rate、固定帯域）、サステーナブル・セル・レート（Sustainable Cell Rate：SCR）、最大バーストサイズ（MBS）、最小セルレート（MCR）、及び、セル遅延変動公差が含まれる。QoSパラメータには、セル遅延変動（CDV）、セル損失比（CLR）及び、最大セル転送遅延（最大CTD）が含まれる。一例として、固定ビットレートCBR（例えば、音声及びビデオアプリケーションに使用されるサービス）は、ユーザが呼のセットアップ時に、PCR（ピーク・セル・レート、本質的には帯域）、CDV、最大CTD及びCLRを指定できるようにするサービスカテゴリとして定義される。次に、ネットワークは、ユーザによって要求され、かつ、ネットワークによって受け入れられた値が適合していることを確認しなければならない。それらが適合する場合は、ネットワークは、CBRをサポートすると言われる。
【００１１】
種々のクラスのサービスは、他のタイプのトラフィックとは対照的に、あるトラフィックに対してより好適なサービスを提供するようネットワークに指示する。固定長セルのATMでは、交換器は、各トラフィックの流れが任意の瞬間にライン上に割り当てることが可能なデータ量を制御することにより、ライン上における帯域使用度を効率的に管理する。それらは一般的に、たった１サイズのデータユニット（単位）しかないという事実のために、より単純なバッファ技法を使用している。他の利点は、ネットワークの遅延、特に、各交換器において列をなしている待ち時間を予測可能であることである。このことは、すべてのデータユニットが同一のサイズであるため、CDVのようなトラフィックのQoSパラメータを、ネットワーク内で容易に測定できることを確実にするのに役立つ。非ATMネットワーク（すなわち、フレームベースのネットワーク）では、フレームは、任意の場所において例えば、４０バイトから数千バイトまでの範囲を取ることができるが、各のパケットの転送時間が一定ではなく、ネットワークにおける遅延を予測することができないので、一定のCDV（または、PDV：パケット遅延変動）を保証することは困難なものとなっている。
【００１２】
データをより小さなユニットに分割することにより、ATMは、あるホストから別のホストにデータを送信する待ち時間を少なくするようにネットワークの能力を高めることができる。これにより、また、ネットワーク全体における各ホストでの待ち行列（キュー）及びバッファの管理をより簡単にすることができる。しかしながら、ネットワークがより大きな送信ユニットを有している場合には、ヘッダーを各セルに追加することによりネットワークの有効な帯域幅が小さくなってしまうという欠点がある。たとえば、ホストから別のホストに１０００バイトが送信される場合は、フレームベースのソリューションでは、ヘッダー（約４バイト）が付加され、全フレームが１秒以内に送信される。ATMの場合は、１０００バイトはヘッダーが５バイトの４８バイトに、すなわち、１０００／４８＝２０．８３３（すなわち、２１セル）に分割される。各セルには５バイトのヘッダーが付加され、送信されるバイトは、５×２１＝１０５バイトだけ増加する。従って、ATMは、実際のデータに利用可能な帯域幅を約１００バイト（すなわち、約１０％）だけ実質的に減少させ、エンド−エンド間の待ち時間の減少により、データ伝送に使用可能な帯域幅もまた減少する。
【００１３】
ビデオや音声等のいくつかのアプリケーションでは、待ち時間は、帯域幅よりも重要であるが、ファイル転送等の他のアプリケーションでは、待ち時間を少なくすることよりも、帯域幅をより好適に使用することにより、パフォーマンスが向上する。
【００１４】
最近では、より広い帯域幅及びQoSに対する要求が、前述したビデオや音声を含む、マルチメディアサービス用の新たなアプリケーションのために大きくなってきた。このため、従来のパケットベースのネットワークの中心部にATMネットワークを展開させることが余儀なくされている。ATMでは、その固定パケットサイズのために、ネットワークにおける処理時間が少なくなり、従って、高速転送が実現される（すなわち、待ち時間が短くなる）。これは、また、トラフィックの分類を利用する機能をもたらす。すでに指摘したように、セルが固定サイズのため、トラフィックパターンをQoSの割り当てにより制御することができる。すなわち、ネットワークは、従来のパケット（セルの形態で）と、固定帯域幅のストリームデータ（例えば、音声／ビデオベースのデータ）を伝送することができる。
【００１５】
以下で例示するように、ほとんどの従来のネットワークキングシステムは、本質的に、フレームまたはセルのいずれかを転送するために構築されており、それらの両方を転送するようには構築されていない。一方、詳細に後述するように、本発明によれば、新規の検索アルゴリズム、QoS管理、及び、パケット／セルアーキテクチャの管理を使用することにより、セルとフレームの両方を同じ装置で送信することができ、従来の技術に対して大きな利点がもたらされる。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
従って、本発明の目的は、データパケットと同時に、かつ、セル転送特性の性能面に影響を与えることなく、データパケット及び／またはセルを処理する任意の技術に関して有効な、新規なシステムアーキテクチャ及び方法を提供することである。
【００１７】
本発明の他の目的は、構成された交換器が、同じハードウエア及びソフトウエアを使用して、あるアプリケーションではパケット交換器として、他のアプリケーションではセル交換器として機能することができるような新規なアーキテクチャを提供することである。
【００１８】
本発明のさらに他の目的は、改善された結果が、共通のセル／データパケットアルゴリズムに基づいて、セルとデータパケットの両方に対するQoS特性を管理することにおいて同時に達成されるようなシステムを提供することである。
【００１９】
本発明のさらに他の目的は、共通及び同様の技術を使用して、セルとデータパケットを転送するための共通の解析アルゴリズムを提供することである。
【００２０】
他の目的については以下で説明するが、より、具体的には、特許請求の範囲に記載している。
【課題を解決するための手段】
【００２１】
本発明の重要な観点の１つから要約すると、本発明は、任意のモジュールをセルまたはフレームインターフェースとすることが可能な複数のI/Oモジュールから、ATMセルまたは任意のサイズのマルチプロトコルフレームとしてデータが受信されるところのデータネットワーキングシステム、及び、セルまたはフレームに含まれる制御情報に基づいて、及び、セル転送の正常な動作に必要なQoS特性を保持するような方法で転送するための共通のアルゴリズム使用して、独自のモードで、すなわち、フレームをセルに変換せずに、ATMセルやかかるフレームの両方を処理する方法を含む。このアルゴリズムは、セルやパケットに含まれている文脈依存（context-sensitive）情報に依存しない共通のアルゴリズムを用いて転送エンジンにおいてパケット／セル制御情報を処理するステップと、QoS情報を含む結果を出力側の待ち行列マネージャに送るステップと、正常なセル転送特性に影響を与えないようにして、最小のセル遅延変動（CDV）を提供するような方法で、セル／パケットを出力側のI/O伝送装置に送るステップと、セルまたはパケットの正常な動作に影響を与えることなく、セルとパケットの両方に対する共通の帯域幅管理アルゴリズムを提供するように伝送装置を制御するステップを含む。
【００２２】
好適で最良モードの構成及び技法について以下で詳細に説明する。
【００２３】
本発明を、添付の図面を参照してこれから説明する。
「本発明の好適な実施態様に対する更なる背景」
本発明の好適なアーキテクチャを説明する前に、本発明によって見事に克服されるところの、従来技術の、及び、現在のネットワークシステムの制限事項についてチェックしておく必要があろう。
【００２４】
現在のネットワーキングソリューションは、データパケットまたはセルのいずれかを交換するように構成されている。前述したように、すべてのタイプのデータネットワーキング交換器は、入力（側）ポート上のデータを受信し、転送判断を行い、入力ポートから出力（側）ポートにデータを伝送し、さらに、適切な出力ポートの物理インターフェースにそのデータを伝送しなければならない。基本的なデータ転送面以外に、セル交換とフレーム転送には異なる要件がある。前述したように、現在のすべての技術は、交換要素を、ブリッジ、ルーター、及び、交換器（特に、ATM交換器）の３つのタイプに分ける。ブリッジとルーターのいずれもデータグラムを転送し、また、一般的に、ほとんどのルーターがブリッジ機能を実行するために、ブリッジとルーターの区別はあいまいである。従って、データグラム交換器（すなわち、ルーター）とATM交換器に焦点をあてて説明する。
【００２５】
まず、現在のソリューションに基づくこれら２つのタイプの交換装置に対する基本的なアーキテクチャ上の要件を調査し、次に、現在のソリューションが、ATM交換またはフレーム転送の正常な動作に重大な影響を与えずに、セルとフレームの同時転送を可能にするメカニズムを提供するものではない理由を提示する。その後、本発明に基づく新規なソリューションについて明らかにする。
【００２６】
ルーターは、一般的に、種々の物理インターフェースを有する。すなわち、イーサネットのようなLANインターフェース、トークンリング及びFDDI、フレームリレー、X.25、T1、及びATMのような広帯域インターフェースである。ルーターは、これらの種々のインターフェースからフレームを受信する方法を有しており、各インターフェースは、異なるフレーム特性を有している。例えば、イーサネットフレームは、任意の場所において、６４バイトから１５００バイトであることが可能で、FDDIフレームは、任意の場所で、６４バイトから４５００バイト（ヘッダーとトレーラを含む）であることが可能である。ルーターのI/Oモジュールは、物理インターフェースに関連したヘッダーを取り除いて、その結果生じるIPデータグラム等のフレームを、転送エンジンに対して出力する。転送エンジンは、図２に示すIPの宛先アドレスを調べ、適切な転送判断を行う。転送判断の結果として、転送テーブルによる決定に従って、データグラムを出力ポートに送信する。次に、出力ポートは、ネットワークに依存した適切なヘッダーを付加して、フレームを物理インターフェースに転送する。異なるインターフェースは、異なるフレームサイズ要件を有する場合があるので、ルーターは、フレームを「分解」、すなわち、データグラムを使用可能なサイズに「分割」することを要求される場合がある。例えば、２０００バイトのFDDIフレームは、イーサネットインターフェース上に送信される前に、１５００バイト以下のフレームに分解されなければならない。
【００２７】
現在のルーター技術は、「ベストエフォート」サービスを提供する。これは、データグラムがルーターベースのネットワークにおいて落ちない（消失しない）ことが、何ら保証されないことを意味する。さらに、ルーターは、種々のサイズのデータグラム転送するので、データグラム当りの遅延変動または待ち時間の保証はない。一般的に、ルーターは、所定のサイズのデータグラムを転送する能力によって特徴付けられる。従って、ルーターの能力は、１秒間で６４バイトのフレームを転送する能力、または、入力ポートから出力ポートまで１５００バイトのフレームを転送するための待ち時間によって特徴付けることができる。この待ち時間は、最後のビット入力、最初のビット出力（last bit in ,first bit out）によって特性付けられる。
【００２８】
これとは対照的に、ATM交換器は、ただ１つのインターフェースのタイプ、すなわち、ATMのみを有する。ATMは、図１のVPI/VCI番号に基づいて、転送テーブルを参照することによって転送判断を行う。転送テーブルは、一般的には、物理ポート番号によって指標される。すなわち、入力ポートN上のVPI/VCIを有する入力セルは、新しいVPI/VCIのペアを有して出力ポートにマッピングされる。テーブルは、システム内の他の場所にあるソフトウエアによって管理される。すべてのセルは、ATMアダプテーションレイヤ（AALｘ）がどのようなものであろうと、同じ構造を有し、それゆえ、ATM交換器があるタイプのAALを転送することができる場合は、それらの交換器は、任意のタイプのAALを転送することができる。
【００２９】
ATMセルを交換するためには、いくつかの基本的な条件を満たさなければならない。交換器は、ATMヘッダーにおいて提供される制御情報、具体的には、VPI/VCIに基づいて転送判断をすることができなければならない。交換器は、適切なQoS機能を提供しなければならない。交換器は、特定のサービスタイプ、特に、固定ビットレート（CBR）トラフィック及び可変ビットレート（VBR）を提供しなければならない。CBR（音声またはビデオ）トラフィックは、短い待ち時間によって、及び、さらに重要には、小さいまたは保証されたセル遅延変動（CDV）と保証された帯域幅によって特性付けられる。
【００３０】
従来のパケット交換器に対して、CBRタイプの接続を実施するための３つの主な要件は、CDVが小さいこと、遅延及び保証帯域幅が小さいことである。例えば、音声は、基本的なナイキストのサンプリング定理に基づいて、一定の帯域幅を使用する。CDVは、また、CBRコントラクト（contract）の一部であり、全体的な遅延に寄与する。CDVは、パケット／セルの到着予測時間と実際の到着時間における最悪ケースの変動の総計である。アプリケーションに関する限り、アプリケーションは、データが時間的に均等に到着することを期待する。しかしながら、ネットワークは、この均等要件を保証することはできず、いくつかのハードウエアが、データをバッファリングしなければならない場合は、最悪ケースのCDVに等しいかまたはそれより大きなCDVがネットワークによって導入される。CDVが大きくなるほど、バッファ要件は高いものになり、従って、遅延が大きくなる。そして、前述したように、遅延は、CBRタイプの回路にはよくないものである。
【００３１】
パケットベースのネットワークでは、従来的に、トラフィックの優先順位に基づいて出口にデータの待ち行列が生成される。データがどのように待ち行列をつくるかに関係なく、遅延変動の小さい要件を有するトラフィックでは、１つ以上のパケットの後に行列がつくられる。それらの各々は、最大のパケットサイズとなり得るが、本質的に、このことは、パケットベースのネットワークにおける遅延変動に最大の寄与を与えることとなる。
【００３２】
帯域幅と優先順位を管理するために多くの方法論が使用されている。ネットワーク管理の見地からは、ネットワークマネージャは、通常、全体の出力帯域幅を優先順位に分割することを好む。この帯域幅の分割にはいくつかの理由がある。例えば、これにより、トラフィック（より高い優先順位と狭い帯域幅）を制御するマネージャは、非常に高い帯域幅で回線（ライン）が使用されている間でさえ、常に伝送を行う余地を確実に有し、あるいは、場合によっては、CBR（固定ビットレート）トラフィックの伝送が保証される。
【００３３】
トラフィックの優先順位ごとの帯域幅に対処する多くの方法がある。これらのメカニズムの一般的な部類に、ラウンド・ロビン式待ち行列生成（Round Robin Queuing）がある。重み付けされたフェア（Weighted Fair）待ち行列とプライオリティ待ち行列がある。それぞれの方法論について、検討のため、及び、本明細書を完全なものにするために後述する。すべての待ち行列生成において、トラフィックは、セル／パケットがバックプレーンから到着するとき、通常、セル／パケットのヘッダーまたはセル／パケットに関連した制御情報を調べるハードウエアエンジンにより、優先順位に基づいて待ち行列に置かれる。データをこれらの待ち行列から取り出す／待ち行列から分離（待ち行列を解体）する方法によって、待ち行列生成メカニズム同士が区別される。
単純なラウンド・ロビン式待ち行列生成
この待ち行列生成メカニズムは、ラウンド・ロビン方式ですべての待ち行列を空にする。これは、トラフィックが待ち行列に分割され、各待ち行列に同一の固定帯域幅が与えられることを意味する。実施が単純であることが利点であることは明らかだが、この待ち行列生成技法には、このメカニズムは、優先順位の概念を完全に無視するものであるという大きな欠点がある。この場合、優先順位は、バッファ割り当てメカニズムによって管理しなければならない。明白な利点は、実装が簡単であるということだけである。
重み付けラウンド・ロビン
この待ち行列生成メカニズムは、「単純ラウンド・ロビン式待ち行列生成」を改良したものである。重みが、初期化時間の間にネットワークマネージャにより、各待ち行列に配置される。このメカニズムでは、各プライオリティ待ち行列は、重みに基づいてサービスを受ける。もし、ある待ち行列が帯域幅の１０％を割り当てられれば、その待ち行列は、１０％の時間、サービスを受けることになる。他の待ち行列が帯域幅の５０％を割り当てられれば、それは、５０％の時間、サービスを受けることになる。主な欠点は、帯域幅を割り当てられた待ち行列にトラフィックが存在しない場合、伝送中に未使用の帯域幅がとられるということである。このため、帯域幅が無駄になってしまう。さらに、待ち行列取り出し（de-queuing）アルゴリズムにおいて、パケットサイズは関係しないが、これは、パケットベースの交換器には極めて重要な問題である。すべてのパケットサイズに等しい重みをつけることは、帯域割り当て方式を捨て去ることである。
プライオリティ（優先順位式）待ち行列生成
この待ち行列生成メカニズムでは、出力される待ち行列は、純粋に優先順位に基づいてサービスを受ける。最高の優先順位を有する待ち行列が、最初にサービスを受け、最も低い優先順位の待ち行列が、最後にサービスを受ける。このメカニズムでは、高い方の優先順位のトラフィックが、それより低い優先順位の待ち行列に対して、常に先取権を有する。このタイプのメカニズムの欠点は、低い方の優先順位メカニズムの帯域幅がゼロになってしまう可能性があるということである。このメカニズムの利点は、単純であることに加えて、送信されるデータがある限り、帯域が無駄にならないということである。しかしながら、待ち行列取り出しアルゴリズムにおいて、パケットサイズは関係せず、これは、パケットベースの交換器にとっては重大な問題である。上述したように、すべてのパケットサイズに等しい重みをつけることは、帯域割り当て方式を捨て去ることである。
【００３４】
上述の例から、プライオリティ待ち行列と重み付けラウンド・ロビン式待ち行列とのバランスを、パケットサイズも合わせてとる必要がある。このためには、本発明によって提供されるソリューションが必要である。本発明では、優先順位の高いトラフィックが、それより優先順位が低いトラフィックの前にサービスを受けるが、各待ち行列は、少なくともその割り当て帯域幅内でサービスを受ける。上記の要件に加えて、出力バッファは、待ち行列の帯域幅が使い尽くされているときでもさえも、他の帯域幅を有する資格のある待ち行列データとともに、その待ち行列からのデータで満たされていなければならない。この技法は、トラフィックの待ち行列要求ごとの帯域幅を実現し、また、伝送中に帯域幅を無駄にしないものであり、本発明において具現化される。
交換器設計におけるアーキテクチャの問題
現在の交換器によるソリューションは２つの異なるソリューションを使用している。すなわち、１）メモリと２）クロスバーである。これらのソリューションは、図５、６及び７に示しているが、図５及び６は、従来のバスベース及びメモリベースのアーキテクチャを示しており、図７は、従来のクロスバー交換アーキテクチャを示している。
【００３５】
図５に示す従来のメモリベースのソリューションでは、データは、I/Oカードからメインメモリの中に最初に配置されなければならない。ビットをI/Oモジュールからメインメモリに移動させる際に、このデータ転送には数サイクルを要する。いくつかの異なるI/Oモジュールは、共通のメモリにデータを転送しなければならないので、このリソースに対する競合が生じる。メインメモリは、データをある物理ポートから別の物理ポートに転送するために、バッファリングメカニズムと転送メカニズムを提供する。この場合、転送速度は、出力ポートの速度、データをメインメモリに入力し、及び、メインメモリから出力するためのシステムの能力、及び、メインメモリにアクセスしなければならないインターフェースの数に大きく依存する。
【００３６】
図６により詳細に示すように、CPUは、周知のように、メモリアクセスにより、共通バスを介して、インターフェース用経路及びメモリ共用を示している種々の点線及び破線で、データ受信及び送信用の複数のI/Oポートno.1、no.2等とインターフェースする。前述したように、共有メモリをさまざまにアクセスすることにより、重大な競合が生じ、待ち時間と予測不能性が増加する。この競合は、全パケット／セルが受信されるまで、制御情報の処理が開始できないために、この種のアーキテクチャでは既に重大なものとなっている。
【００３７】
さらに、共有メモリへのアクセスが増えると、競合も増加する。競合が増えると、システムの待ち時間が増えることになる。図６に示す従来のメモリベースの交換データフロー図では、メモリからの読み出しまたはメモリへの書き込みあたりのアクセスタイムは、Ｍに等しく、メモリアクセス用のビット数はＷであり、以下の機能を生じる。
【００３８】
受信ポートno.1から共有メモリへのデータの書き込みがある。パケットまたはセルを転送する時間は、（（B＊８）／W））＊Ｍに等しい。ここで、Ｂは、パケットまたはセルのバイト数に等しく、Ｍは、メモリからの読み出しまたはメモリへの書き込みあたりのアクセスタイムであり、Wは、メモリアクセス用のビット数である。パケットが大きくなると、それをメモリに書き込む時間も長くなる。
【００３９】
これは、図５に示すように、パケットがATMインターフェースに向けて送られ、その後にセルが続く場合、セルがメインメモリからの転送時間だけ遅延することを意味しており、最悪ケースでは、これは、バス上における他の読み出し及び書き込み間の競合を含んで、Ｎパケット（Ｎは、非ATMインターフェースにおけるパケット数である）になり得る。例えば、Ｂ＝４０００バイトで、Ｍが８０ナノ秒（DRAMアクセス用の６４ビット幅バスの場合）の場合は、セルを送信することが可能な前に待ち行列を形成するパケット転送に対して（（４０００＊８）／６４）＊８０＝４０，０００ナノ秒であり、OC４８は、６４バイトセル当たり１７０ナノ秒である。これは、バス上にいかなる競合もない場合のみに当てはまる。最悪のケースにおいて、交換器が１６のポートを有し、全てのポートが同時に競合している場合に、同じパケットを転送するために、メモリに入力するのだけでも６４０，０００ナノ秒を要し、同じ量だけ取り出すのに、全体で約１．３ミリ秒かかる。これは、メモリへのそれぞれの書き込み間において、他のポートも同様にメモリに書き込まなければならない場合に起こる。ｎ＝１６ポートの場合、ｎ−１すなわち１５ポートがメモリへのアクセス権を獲得しなければならない。このことは、元のポートのメモリへの次の転送を行うことができるようになる前に、１５ポート＊８０ナノ秒＝１２００ナノ秒がシステムによって使用される、ということを意味している。４０００バイト＊８（ビット／バイト）／６４ビット＝５００アクセスであるから、各アクセスは、１２００ナノ秒だけ分離され、全転送には、５００＊１２００＝６００，０００ナノ秒かかる。そのため、全体では、システム時間に実際の転送時間を加えたものとなり、それは、メモリへの転送について６００，０００ナノ秒＋４０，０００ナノ秒＝６４０，０００ナノ秒であり、メモリからの転送について別に６４０，０００ナノ秒である。さらに、この計算には、この計算を一層大きなものにするCPUの競合問題や、出力ポートビジーによる遅延は含まれていない。
【００４０】
図７に示す、メインメモリがなく、入力ポートと出力ポートの両方においてデータのバッファリングが起こらない従来のクロスバーベースのソリューションにも、前述したのと同様な欠点がある。図５及び６のメモリベースの構成では、バッファメモリは、すべてのポートによって共有され、交換器のメモリを非常に効率よく使用できるようになっている。図７のクロスバーによるアプローチでは、バッファを共用しないので、各ポートは大きなメモリを提供しなければならず、そのため、システム全体のメモリは大きくなる。クロスバー交換器は、システム上のある物理ポートからシステム上の別の物理ポートデータを転送するための通路に過ぎない。もし、２つのポートが、ある出力ポートに同時にデータを転送しようとしている場合、２つの入力ポートのうちの１つは、データをバッファリングしなければならず、そのため、第１の入力ポートからのデータが出力ポートに転送されるとき、待ち時間と予測不能性が増加する。しかしながら、クロスバー交換器は、メモリベースの交換器に対して、メインメモリの競合というメモリベースの交換器に固有の制限をうけることなく、ある地点から別の地点にデータを高速で転送することができるという利点を有する。
【００４１】
図７に示す従来のクロスバー交換器アーキテクチャによるシステムでは、CPUは、周知のように、メモリアクセスにより、共通バスを介して、インターフェース用経路及びメモリ共用を示す図８の種々の点線及び破線で示すラインでインターフェースを行う。CPUは、データ内の情報に基づいて転送判断を行う。次に、出力ポートへクロスバー交換機構（Switch Fabric）を介してデータを送信しなければならない。しかし、他のトラフィックを、その出力インターフェースに転送中である場合は、全セル／パケットを出力メモリに転送するのに要する時間の間は、入力インターフェースにデータをバッファリングしなければならない。すなわち、
Ａ．受信ポートno.1からローカルメモリへのデータの書き込み。パケットまたはセルを転送する時間は、（（Ｂ＊８）／Ｗ）＊Ｍである。ここで、Ｂは、パケットまたはセルのバイト数に等しい。Ｍは、メモリからの読み出しまたはメモリへの書き込み当たりのアクセスタイムであり、Ｗは、メモリアクセス用のビット数である。パケットが大きくなると、メモリにそのパケットを書き込む時間も長くなる。
【００４２】
Ｂ．受信ポートno.1から出力ポートno.2のローカルメモリにデータを書き込む。パケットまたはセルを転送する時間は、（（Ｂ＊８）／Ｗ）＊Ｍ＋Ｔである。ここで、Ｂは、パケットまたはセルのバイト数に等しい。Ｍは、メモリからの読み出しまたはメモリへの書き込み当たりのアクセスタイムであり、Ｗは、メモリアクセス用のビット数である。Ｔは、クロスバー交換器の転送時間である。パケットが大きくなると、クロスバー交換器を介してそれを転送する時間、及び、それをローカルメモリに書き込む時間も長くなる。
【００４３】
出力ポートへのセル転送が後に続くパケット転送の場合、計算は、図５及び６のメモリベースのソリューションの場合と同じである。パケットは、メモリベースのソリューションの場合と同じ速度でローカルメモリに転送されなければならない。中心的なメモリに対して競合が生じないという利点があるが、セル転送の前のパケット転送が、非常に高速のインターフェースが適正に機能するのを妨げるところの遅延を引き起こし得るという問題を軽減するものではない。
【００４４】
目的は、要求されたQoSを提供する、高速（すなわち、SONETで規定された速度）で動作する交換装置を作成することである。この装置は、速度及びポートの点でスケーラブルでなければならず、この装置は、セル及びフレームを入力ポートから出力ポートまで等しい時間で転送可能とするものでなければならない。
【００４５】
現行の構成は、非常に高速のルーターを作成することからスタートしているが、それらには、全てのATMサービス要件を提供する能力はなく、従って、依然として、２分化したネットワーキング装置の組、すなわち、ルーターとATM交換器が併存したままである。最適なソリューションは、非常に速い速度を実現し、要求されたQoSサポートを提供し、図３と同じインターフェースにおいてATMとパケットベースの技術をマージする（一つにする）インターフェースを有するものである。これによって、いずれのネットワーキング技術においても現在の投資を増加させずに、帯域幅及びQoS要求を満足させることができる。
【００４６】
ATMセルを受け入れ、所定のATMセルをパケットとして、また、他のものをATMの流れとして処理し、他のインターフェース上のパケットと、別の組のインターフェース上のセルのみを受け入れるデータ交換ポートにおけるインターフェースをマージする問題については、図４を参照して後述する。これらの問題は、３つの部分からなる。すなわち、ａ）パケット及びセルに関する入力インターフェースにおける転送判断、ｂ）交換機構によるパケット及びセルの交換、ｃ）パケット及びセルについての出力帯域幅の管理、である。本発明は、前述した同時係属中の出願に関するこの技法に基づいており、２つの技術（すなわち、ATM交換とパケット交換）をマージする汎用のデータ交換器を作成し、及び、上記３つの問題を解決する方法を開示するものである。
交換器設計のインターフェースに関する問題
このセクションの目的は、ATM交換器とパケットベース交換器の構成、及び、これら２つのタイプの交換器構成に関する種々のインターフェース同士を比較し、対比することである。具体的には、２つの装置がパケットまたはセルの転送に関係するときの問題、すなわち、ATM交換器がパケットを転送する場合の問題、及び、パケット交換器がセルを転送する場合の問題（図３）を明らかにすることである。
ATM交換器の代表的な構成
前述したように、複数のATMアダプテーションレイヤ（AAL1〜AAL５）がATM規格で規定されており、各々のレイヤは、広範なサービスのうちからそれぞれのタイプのサービス、すなわち、固定ビットレート（CBR）や不定ビットレート（UBR）を指定する。固定ビットレート（AAL1）のコントラクトは、CDVを小さくしてセル損失が最小になることを保証し、一方、不定ビットレートのコントラクトは、トラフィックパラメータを指定せず、サービス品質を保証しない。本発明の目的に則して、説明をAAL1（CBR）とAAL５（分割（セグメント化）されたパケット）に限定することが都合が良い。
【００４７】
図９は、本来のインターフェースカードを備えたセル交換器を表した図であり、本来のATMインターフェースを有する一般的なATM交換器の個別モジュールを示している。物理レイヤモジュール（PHY）から到着したセルは、監視機能モジュール（Policing Function Module）と呼ばれるモジュールによって処理され、このモジュールは、入力セルに対してVCI毎に確立されたコントラクト（サービス）、例えば、ピーク・セル・レート、サステインド・セル・レート（Sustained Cell Rate）、最大バースト・レート等を有効にする。セル遅延変動（CDV）やセル損失レート（CLR）等の他のパラメータは、カード及び交換器の実際の構成に基づくボックス（box）によって提供される保証である。コントラクトは、ネットワークマネージャによって、または、ATM通信機構を介して設定される。図９の例では、監視機能からのセルデータは、次に、クロスバータイプ（図７）またはメモリベースの交換器（図５）に送られる。次に、セルは、遠隔接続における輻輳を避けるためにトラフィックを形成する（適応させる）ことに関するいくつかの要件を有する出力ポートに転送される。出力を形成するために、出力側でデータをバッファリングする構成でなければならない。ATM接続は、ポイント−ポイント間接続を基礎としているので、出力形成（シェーピング）モジュールは、また、ATMヘッダーを変換（解釈）しなければならない。これは、次のホップ（hop）が入力VCI/VPIに何ら関係がないからである。
【００４８】
ATM交換器に固有のパケットインターフェース
「背景」セクションで説明したように、ATM交換器がパケットのルーティングを容易にする方法を提供する場合は、パケットとセルのネットワークが合流する２つのホスト間に少なくとも２つのポイントがなければならない。これは、交換器がATMネットワークの中心部深くに設置されていない限り、現在のセル交換装置が、固有のパケットインターフェースを有するインターフェースを備えていなければならないことを意味する。従って、ATM交換器に接続する、かかるパケットインターフェースの構成について調べることが必要である。
【００４９】
ATM交換器における典型的なパケットインターフェースを、セル交換器におけるパケットインターフェースを詳細に記載した図１０に示す。物理インターフェースは、入力パケットをバッファに入れる。次に、それらは、「ヘッダールックアップ及び転送エンジン」に送られる。パケットベースの転送エンジンは、出力ポートを決定して、そのパケットのセルに関するVCI番号を関連付ける。次にパケットはセグメント化ユニットによってセルに分割される。そのあとすぐに、パケットは、本来のセル交換の場合と同じように処理されるが、これには、交換器に入る前に、監視機能を通って、交換器バッファまで行くことが含まれる。出力側では、セルがセルインターフェースに入力すると、処理が（ATM交換器における固有のセルインターフェースで）上述したように行われる。セルがパケットインターフェースに入力すると、セルは、パケットに再構成されなければならない。これらのパケットは、次に、種々のプライオリティ待ち行列に入れられて、パケット交換器の場合と同様に空にされる。
【００５０】
ATM交換器における２つのタイプのパケットインターフェースを調べる必要がある。
ATM交換器におけるAAL５インターフェース
ATM交換器に接続されたルーターは、パケットをATM交換器に送信する前に、そのパケットを分割する（セグメント化する）ことができる。この場合、上述したように、パケットは、AAL５フォーマットでATM交換器に到着する。ATM交換器がルーター及びATM交換器として動作する場合は、それは、AAL５パケットを再構成して、そのパケットのルーティングの決定をしなければならない。ATM交換器／ルーターが、AAL５パケットの転送判断をすると、ATM交換器／ルーターは、そのパケットを再びセグメント化した後、ATM交換器を介して送り出す。
【００５１】
AAL５における、ATM交換器の完全なインターフェースを図１１に示す。入力AAL５セルは、まず、送り側がコントラクトを遵守していることを確認するために、VCIごとに監視される。監視機能が実行されると、アセンブラは、VCIに関するセルをパケットに組み立てる。これらのパケットは、次に、転送エンジンに送られ、転送エンジンは、組み立てられたパケットについての転送判断と、あるルーティングアルゴリズムを実行する。パケットは、次に、上述したATM交換器部におけるパケットインターフェースの場合と同様に、ATM交換器に送られる。
セル交換器でパケットを処理する困難性
本発明の目的、すなわち、CDV、待ち時間、及びパケット損失等の厳格なQoSパラメータを達成することに留意して、このセクションでは、従来のセル交換器によってパケットを構成しようとする試みが難しいものであることを説明する。
【００５２】
図１１によれば、セグメント化されたパケットである入力AAL５が組み立てられ、転送判断がなされると、それらは、「セグメント化ユニット」で再構成される。交換器を通過する際、AAL５セルは、出力ラインに送られる前にパケットに再構成される。このセグメント化と再構成により、遅延と予測不能性、それに、測定不能なPDV（パケット遅延変動）及びセル損失が付加される。前述したように、QoSが提供されるパケットについては、測定可能PDVと遅延を提供することを含むコントラクトをサポートする必要がある。遅延は、セルを再構成しなければならないという事実のために生じる。最良のケースでは、各再構成は、パケットを完成させてそれをQoS部に送る前に、全パケットのデータをバッファリングしなければならない。例えば、８０００バイトのパケットの場合、１ギガビットの交換器においてバッファリングする際に、これによって６４μ秒の遅延が生じ得る。
【００５３】
セル交換器を通るパケットのPDVは、追加される遅延よりもさらに関心のある事項である。組立プロセスは、種々の入力ポートからの複数のパケットを同時に処理するものとすることができ、これにより、本質的に、交換競合、及び、入力から出力へのセル送信の再試行の回数に基づく、予測不能なPDVの量を生じる。
【００５４】
交換器によるセル損失は、不適切に再構成されたパケットを生じさせ、従って、実時間コンテンツ用途向けであるアプリケーションに悪影響を与える。ほとんどのファイル転送プロトコルは、（セルの消失のために）消失したパケットを回復可能であるが、再送信により交換器のトラフィックが多くなってしまう。
【００５５】
要約すると、ATM交換器によりパケットを送信しても、セルと同様の同じCDV及び待ち時間特性を有するパケットは得られない。それは、単に、セル交換器を介してパケット経路を通すためのメカニズムを提供するだけである。
パケット交換器の構成
固有のパケットインターフェースカードを具備する従来のパケット交換器を図１１に示す。パケットは物理インターフェースを介して転送エンジンに送られる。転送エンジンは、あるアルゴリズムとパケットのヘッダーに基づいてルーティングの決定を行う。出力ポートが決定されると、パケットは、多くの方法（例えば、Ｎ×Ｎバス、大規模な中央メモリのプール等）のうちの１つによって構成可能なパケット交換器を介して出力に送られる。出力では、パケットは、それぞれのトラフィックのプライオリティ待ち行列上に置かれることになる。これらの待ち行列には、トラフィックの優先順位付け及び帯域幅の管理を行う機能がある。
パケット交換器におけるセルインターフェース
AAL５インターフェースを有する従来のパケット交換器を図１３に示す。このパケット交換器は、セルがAAL5タイプである限り、セルがボックスを通過できるようにするメカニズムを提供する。従来のパケット交換器によって仮想的なセル交換器を作成する現実的な方法はないが、本発明の一部は、かかるアーキテクチャの要件に対処するものである。
【００５６】
AAL５セルがコントラクトの遵守について検閲をうけた後、それらのセルは、アセンブリモジュールによってパケットに組み立てられる。こうして、パケットが生成され、次に、本来のパケットインターフェースと全く同じように処理される。出力側において、パケットをAAL５セルとして交換器から出力しなければならない場合は、それらは、まず、セグメント化され、次に、ヘッダーが変換（解釈）される。最後に、それらは成形されて送出される。
パケット交換器においてセルを処理する困難性
セルの流れが従来のパケット交換器を横断するときに、それが直面するいくつかの問題がある。ルーターのような従来のデータ交換器が、ATMに要求されるQoS保証をサポートすることは極めて困難なことである。この点を説明するために、前述の図１３に示した図を参照する。パケット交換器の最大の問題の１つは、AAL1セルをサポートすることである。その理由は、単に、従来のパケットベースのヘッダールックアップ及び転送エンジンが、セルとパケットを同時に認識しないということである。そのため、パケットに変換可能なAAL５セルがサポートされている。これは、交換器の能力を厳しく制限するものである。
【００５７】
セルの特性に、CDV及び遅延特性がある。従来のパケット交換器を介してセルを送り出すことにより、より多くの遅延と予測不能なCDVが追加される。パケット交換器は、その名称に由来するように、交換器に対して種々のサイズ及び数のパケットの待ち行列が生成されることを暗に示している。この場合、パケット化されたセルには、交換器において何らかのタイプの妥当なQoSを維持する機会はない。
【実施例】
【００５８】
本発明の代表例を図４及び図１４に示すが、本発明は、以上の従来システムとは異なり、セルとフレームの両方を、それらの一方を他方に内部的に変換することなく、転送するためのネットワーキングシステムを最適化する。さらに、本発明は、厳密なCDV、待ち時間及びセル損失のような、ATM交換器において期待される厳密なQoSパラメータを維持する。これは、コンテクスト（文脈）に依存しない共通の入力転送エンジン、同じような待ち時間でセルとフレームを転送する交換機構、及び、共通の出力QoSエンジンを具備することによって達成される。ここで、本発明のアーキテクチャを通って流れるパケットは、セルのQoS特性を取得するが、セルは依然としてそれら自体のQoS特性を保持したままである。
【００５９】
図１４に示すように、本明細書では、本発明の新規な交換器アーキテクチャの主要なコンポーネントを、本発明の譲受人の頭文字をとってしばしば「NeoN」と呼ぶが、それは、入力部、交換機構及び出力部からなる。入力部は、セルまたはフレームとすることができる別個の物理インターフェースから構成される。さらに、セルインターフェースは、純粋なセル転送か、または、フレームが、AAL５で定義されるようなセルの集合からなるところのセル及びフレーム転送の組み合わせとすることができる。入力コンポーネントの他の部分は、セルとフレームの両方に共通の転送エンジンである。交換機構は、セルとフレームの両方に共通である。出力のQoSもまた、セルとフレームの両方に共通である。出力処理の最終部は、インターフェースのタイプに依存する物理レイヤの処理である。従って、本発明のNeoN交換器アーキテクチャは、セル及びフレームの処理の両方に共通のそれらの部分を表すものである。
【００６０】
前述したように、ATM交換器に要求される、及び、パケットの同時交換の場合においても提供される重要なパラメータは、予測可能なCDV、短い待ち時間、少ないセル損失及び帯域幅管理、すなわち、保証されたピーク・セル・レート（PCR）を提供することである。しかしながら、図４及び１４に示す本発明のアーキテクチャは、２つの物理インターフェースAAL５/1と、入力及び出力におけるパケットインターフェースを備える。これら２つのタイプのインターフェースはそれぞれ、「VCごとの監視機能（Per VC Policing Function）」、「VCごとの成形（Per VC Shaping）」と記載されたモジュールとして表されている。セルインターフェース（AAL５〜１）については、システムは、任意のATM交換器に従ってネットワークマネージャによって設定されたコントラクトを遵守しなければならず、また、出力においてVCI毎にある種類の成形を行わなければならない。これらの物理インターフェースモジュール加えて、システムは、パケットまたはセルインターフェースに対して全く同一である。データが物理インターフェースモジュールを横断すると、パケットとセルとの区別がつかなくなるという考えでシステムは設計される。図１４に、セルとパケットを差別なく取り扱う、３つの主要ブロック、すなわち、「ヘッダールックアップ及び転送エンジン」、「QoS」、及び「交換」機構を具備するアーキテクチャの中核部を示す。本発明に関連して行う以下の詳細な説明は、これらの３つのモジュールの構成についてのものである。
交換機構
前述した同時係属中の米国特許出願第５８１，４６７号及び第９００，７５７号（いずれも同一の譲受人に譲渡されている）に開示されている発明は、ネットワーキングシステムを最小の待ち時間で最適化し、及び、データレートとポート密度が増加した場合でも待ち時間ゼロを実際に実現することができる。さらに、それらの発明は、パケット／セルがメモリに書き込まれているときに、そのパケット／セルから制御情報を取り出して、その制御情報を、交換機能を実行し、ルーティングを行い、及び／または、データがメモリに書き込まれているときにフィルタリング（filtering）判断を行うことになる転送エンジンに送ることによって、５３バイトのセルまたは６４バイトから６４Ｋバイトのパケットについても同様に実行する。
交換器を通る固有セル
図１４の交換セル（AAL1/5）は、まず、ネットワークマネージャがVCIごとにインストールしたコントラクトに従って２で検閲を受ける。このモジュールは、AAL５セルを選択されたVCIにおけるパケットに組み立てることもできる。監視機能２の出力は、セルかまたは組み立てられたパケットである。データがインターフェース要件に適合していなければならないところの出力ポートにデータが到着するまで、データの流れのつなぎ目以外には、パケットとセルを区別するものはない。セルは、「NeoNデータ交換器」４において待ち行列にされ、セルのヘッダーは、宛先のインターフェース及びQoS要件に対して検査される。この情報は、８とラベル付けされた制御データ交換器を介して、出力インターフェースQoSモジュール６に送られる。セルタイプのインターフェースに対するQoSは、ピーク・セル・レートを超えるセル・レートがクリップされることを単に保証するだけである。次に、セルは、「VCIごとの成形」モジュール１０に送られ、そこで、セルは、それらが次のホップ交換器の要件に従って成形された後、物理インターフェースに送られる。QoSモジュール６は、制御データからは、パケットまたはセルのいずれが含まれているかを知ることはできないので、NeoN交換器から「バッファ１２」にデータを単に要求する。制御データにより、「VCIごとの成形」ブロック１０は、それが、別のVCIトンネルに向かうセルであった場合にはヘッダーの変換（解釈）を、及び／または、データがセルインターフェース上を出てゆくパケットであった場合にはセグメント化を、及び／または、遠隔端末の要件に従う成形の修正、のいずれかを行うべきことを知ることができる。
NeoN交換器を通る固有パケット
パケットがインターフェースカードに入ると、パケットヘッダーは、ヘッダールックアップ及び転送エンジンモジュール１４によって検査され、一方、データは、NeoNデータ交換器４に送られる。入力転送エンジンは、入力パケットヘッダーに基づいて、QoS、及び、宛先のインターフェースカードに関する転送判定を行う。転送エンジン１４は、また、NeoN交換器のアドレス、パケットのQoS、出力ヘッダー変換情報のようなデータパケットに関するすべての情報を収集し、それを、出力（側）インターフェースカードに送信する。この情報は、小さな無閉塞制御データ交換器８から出力QoSモジュール６を通って出力ポートまで制御パケットとして運ばれる。このモジュールは、制御パケットに従ってデータを待ち行列にし、それを、出力のPHYと記載されたモジュールに送る。パケットがセルインターフェースに出力される場合は、それが、インターフェースを出る前に、パケットは、セグメント化され、次に、ヘッダーが変換され、そして、成形される。
本発明のNeoN交換器アーキテクチャの利点
上述からわかるように、セル及びパケットの流れは、物理インターフェース以外では何の区別もなくボックスを通るので、セルの特性が維持される場合は、パケットはセルと同じ特性を有する。従って、パケットは、測定可能かつ小さなPDV（パケット遅延変動）及び小さな待ち時間を有する場合があり、この場合、アーキテクチャは、セル特性を有するパケット交換をサポートし、さらに、既存のセルインターフェースへもインターフェースする。
【００６１】
前述したように従来のパケット交換器は、非AAL1セルを送ることができず、また、AAL５セルは、予測不能な量のPDVと遅延を受けるが、これは、本発明のNeoN交換器では解決される。従来のATM交換器を通るパケットもまた、同じ長さの遅延と予測不能なCDVをこうむるが、これもまた本発明のNeoN交換器では解決される。本発明のこのタイプのハイブリッド式交換を可能にするモジュールには、入力転送エンジン、出力QoS、及び交換機構が含まれる。
入力転送エンジンの説明
入力転送エンジン１４（図１４）の目的は、入力フレーム／セルを解析することであり、及び、フレーム／セルの所定の基準及び内容に基づいて、転送判断を行うことである。これは、入力したセル／フレームは、メモリに格納された事項と比較されることを意味する。整合（一致）が判定されると、メモリ位置の内容が、対象となっているセル／フレームについてのアクションに関する命令を提供する。繰り返しプロセスである探索が終了すると、転送判断が行われる。転送判断は、上述のセル／フレームをどのように処理するかを決定することである。かかる処理には、統計量を計数すること（counting statistics）、フレームまたはセルを落とすこと、あるいは、フレームまたはセルを指定された一組の出力ポートに送ることを含めることができる。図１５に、この処理を全体的なレベルで示している。４つの特性からなる入力ストリームがb.c.d.eで示されている。それらの特性は、メモリ内のエントリと適切に整合し、特性が入力されると、次の特性を指示するポインタが生成される。最後の特性ｂは、転送エントリへのポインタを生成する。図示のものと異なる特性のストリームは、異なるエントリの集合をメモリ内に有し、異なる結果を生成する。
【００６２】
提案された入力転送エンジン１４は、解析用マイクロエンジン（Parsing Micro-Engine）と定義される。解析用マイクロエンジンは、２つの部分に分けられる。すなわち、能動（アクティブ）部分と受動（パッシブ）部分である。能動部分は、パーサー（parser）と呼ばれ、受動メモリコンポーネントに書き込まれた命令に従うロジックである。受動メモリコンポーネントは、２つの主要な記憶セクションである、１）解析グラフツリー（PGT、図１８）及び２）転送ルックアップテーブル（FLT、図１９）と、それより小さい統計量収集用の記憶セクションからなる。解析グラフツリーは、転送ルックアップにおいてオフセットを形成する、すべてのパケットヘッダーの解析情報を含む記憶領域である。FLTは、宛先ポート、マルチキャスト情報、出力ヘッダー操作に関する情報を含んでいる。この構成は非常にフレキシブルであり、例えば、データグラムの場合、それは、パケットヘッダー内のDA及びSAフィールドを超えて、プロトコルフィールドやTCPポート番号などを調べることができる。提案されたPGTは、各ブロックが２ｍ個の要素を有する、２ｎ個のブロックに分割されるところのメモリである（ｍ＜ｎ）。各要素は、３つのタイプ、すなわち、分岐要素、リーフ（葉）要素、またはスキップ要素、のうちの１つであり得、各ブロック内で、それらの要素タイプの任意の組み合わせを取り得る。
【００６３】
解析用マイクロエンジンは、本発明の目的のためには格別に有用であるが、それが、任意のビットの集合を検査し、比較結果に基づいて決定を行うものであるという見地からすれば、一般的なものである。例えば、これは、ある任意の単語を検索する、任意のテキスト検索機能に適用することができる。一例としてのかかるアプリケーションでは、手紙や電子メール内の「bomb」や「detonate」のような単語を検索することができ、一致が検出されると、検索エンジンは、警告を発する等の予め決められた機能を実行することができる。実際、同一のメモリを、異なる言語の単語を検索するためにさえ使用することができる。
【００６４】
図１４には２つのエントリポイントがある。１方のエントリポイントは、ある１つの言語のテキストを検索するために使用され、他方のエントリポイントは、別の言語のテキストを検索するために使用される。従って、同一のメカニズム及び同一のハードウエアが、２つのタイプの検索に使用される。
【００６５】
データグラムのヘッダー検索には、ソフトウエアコンポーネントとハードウエアコンポーネントの２つのコンポーネントがある。ソフトウエアコンポーネントは、あるインターフェースで見つけたすべての新しい経路について、解析グラフ内に要素を生成する。ソフトウエアは、分岐要素から開始してリーフ要素で終わる独自のグラフを生成しなければならない。追加されるそれぞれの新しい経路に対するグラフは後で定義される、ハードウエアは、グラフを分岐要素からリーフ要素まで移動するが、IPヘッダーに関しては何の手がかりもない。
【００６６】
実際には、図２１に示すように、たくさんのエントリポイントがメモリ領域内に存在しうる。元のメモリを複数の領域に分割して、メモリの各領域が、別々のアプリケーションに使用される個別の一連の命令を構成するようにすることができる。図２２の場合は、領域の１つがIP転送に使用され、他方の領域がATM転送に使用されている。システムの始動時、メモリは「未知の経路（ルート）」を指示するように初期化されるが、このことは、利用可能な転送情報がないことを意味している。新しいエントリが挿入されると、図２３に示すように、ルックアップテーブルの構成が変化する。図示の例では、IPアドレス209.6.34.224が挿入される。これは、バイト指向のルックアップエンジンなので、最初のブロックは、209の位置（ロケーション）に挿入されたポインタを有する。ポインタは、６の位置に新しいポインタ値を有するブロックを指示する。これは、アドレス209.6.34.224のすべてが挿入されるまで同様に繰り返される。他のすべての値は依然として未知の経路を指示している。メモリのIP部分にアドレスを挿入しても、メモリのATM部分には何の影響もない。前述したように、解析グラフツリーには、各々のブロックが２ｍ個の要素からなる２ｎ個のブロックがある。各要素の構造は図１７に示すようなものであり、各要素は以下のフィールドを有している。
１．命令フィールド：現行の構成では、２つのビット命令フィールドを生じる３つの命令がある。命令の説明は以下の通り。
・分岐要素（００）。マイクロエンジンに関する限り、分岐要素は、本質的に、転送エンジンを次のブロックアドレスに向ける。また、分岐要素内で、ユーザは、「増分転送情報フィールド（Incremental Forwarding Info Field」に種々のフィールドを設定し（図１８）、最後の転送情報の相互に排他的な種々の要素を更新することができる。例えば、マイクロエンジンがIPヘッダーを解析し、分岐要素が宛先フィールドの終わりに配置された場合、ユーザは、転送情報の出力ポートフィールドを更新することができる。ATM交換の場合は、ユーザは、VPIフィールドの解析の終了時に、出力ポート情報を更新する。
・リーフ要素（０１）。この要素は、マイクロエンジンに解析の終了を命じる。次に、検索の間に蓄積された転送情報が、構成内の次の論理ブロックに転送される。
・スキップ要素（１０）。この要素は、解析の速度を上げるために設けられている。パケットヘッダーを解析するのに要する時間は、マイクロエンジンが調べなければならないブロックアドレスの数に依存する。入力ヘッダー内のすべての連続するフィールドが判定を行うために使用されるわけではない。スキップ要素がない場合は、マイクロエンジンは、入力ストリームの有意でないフィールド上をホップし続けなければならず、その分、解析に時間がかかる。スキップ要素により、マイクロエンジンは、入力データグラムのフィールドをスキップして、検索を続行することができるようになる。このスキップの大きさについては下記する。
２．スキップフィールド：このフィールドは、スキップ要素のために特別に使用される。これにより、パーサーは、入力データグラムのヘッダーフィールドをスキップして検索を高速で実行することができる。IPヘッダーにおいて、例えば、ユーザが、DAに基づいてパケットを転送することを望むが、ToS（サービスタイプ）フィールドに基づいて統計量を計数することを望む場合は、パーサーは、DA全体を解析して、ToSフィールドにステップする。これにより、転送エンジンがより高速に動作可能となる。このフィールドの大きさは、ユーザが、データ交換ボックスに対してこれまでに要求した最大のスキップを考慮して計算すべきであり、プロトコルなどに基づいて計算することができる。
３．増分転送情報フィールド：ヘッダー解析の間、転送情報が蓄積される。転送情報は、多くの互いに排他的なフィールドを有することができる。転送エンジンは、入力データグラムのヘッダーを横断する際に、これらの互いに排他的なフィールドの各々を別々に更新できるよう十分にフレキシブルでなければならない。例えば、IPパケットを解析している間、宛先フィールドに基づいて出力ポート決定することができ、送信元アドレスに基づいてフィルタリングを決定することができ、ToSフィールドに基づいてQoSを決定することができる。他の例としてATM解析の場合がある。出力解析は、VPIフィールドに基づいて決定することができ、統計量の計数は、VCIに基づいて決定することができる。従って、解析がなされると、転送情報の種々の部分が収集され、リーフ（葉）ノードに到達すると、結果として生成された転送情報が制御経路上に送られる。増分転送情報（以後、IFIと記載）の幅は、転送情報内の相互に排他的な増分部分の数に等しくなければならない。
４．次ブロックアドレスフィールド：このフィールドは、現在のブロックのアドレスの後に調べるべき次のブロックのアドレスである。リーフノード命令は、このフィールドを無視する。
５．統計量オフセットフィールド：データ交換において、流れの統計量を維持することは、交換データそれ自体と同じく極めて重要である。流れの統計量が維持されない場合は、交換器を管理することはどう考えても難しいものとなる。この統計量オフセットフィールドを備えることにより、種々の解析ポイントで統計量を更新することができる。例えば、IPルータでは、種々のDAのグループ、種々のSAのグループ、全てのToS、種々のプロトコルなどについてのパケット計数を収集することができる。ATM交換器を扱う他の例では、このフィールドにより、ユーザは、個々のVPIまたはVCIまたはそれの組み合わせについてのセルを計数することができる。設計者が、２ｓ個のカウンタを維持したい場合は、このフィールドの大きさはｓとなる。
６．FLTオフセットフィールド：これは、転送ルックアップテーブル（図１８）へのオフセットであり、詳しくは後述する。転送ルックアップテーブルは、最後の転送情報パケットを構築するために必要な、相互に排他的な情報のすべての部分を有している。
ハードウエア構成の参考例
本発明を実施するのに有効なパーサーのハードウエア構成の参考例を以下に示す。参考構成のパーサーは、精密な検査を受けたパケット／セルを収容する記憶部を有する。セル／フレームのヘッダー情報用のこの記憶要素には、２つのレベルの深さがある。これは、入力転送エンジンの宛先ルックアップ段にヘッダー情報を送るための２段のパイプラインを構成する。これは、フレキシブルな開始ポイント機能のために、全てのヘッダー情報が記憶されるまで、入力転送エンジンが参照を実行することができないために必要である。２段のパイプラインにより、入力転送エンジンが現在のヘッダー情報を参照することができ、また、平行して次のヘッダー情報を記憶することができるようになる。現在のヘッダーの参照が完了すると、次のヘッダー参照を直ちに処理することができる。
【００６７】
記憶要素は、入力ビットストリームのプログラム可能な量を記憶する。１例として、IPデータグラムについて６４バイト、セルについて５バイトの構成とすることができる。セルとフレームの両方を処理するインターフェースの場合、これら２つの値の最大値を使用することができる。
【００６８】
各DMAチャンネルからのDMA転送完了信号は、状態マシンに、それが、入力DMAバスからのヘッダー情報を調査してまわり、記憶する処理を開始することができるということを示す。パケット／セル信号は、記憶されるヘッダーがパケットのヘッダーであるか、セルのヘッダーであるかを示す。ヘッダー情報がDMAチャンネルから完全に記憶されると、参照リクエストがアサートされる。
【００６９】
ヘッダー参照については、入力転送エンジンにIPヘッダーテーブル内の参照開始ポイントを指示するレジスタベースのテーブルがある。入力転送エンジンは、このテーブルをインデックスするために送信元のインターフェース番号を使用するが、この情報により、入力転送エンジンは、IPヘッダー内の任意のフィールド、または、パケットのデータ部分に含まれる任意のフィールドにおいて検索を開始することができる。後述するスキップ機能に加えて、この機能により、入力転送エンジンは、任意のフィールドを検索し、それらを配列してインターフェースごとに複雑なフィルタリング用のケース（case）を構成することができる。
【００７０】
解析ツリーグラフ参照アルゴリズムを使用して転送判定を行う、好適なハードウエア参照を図１９に示す。このアルゴリズムは、IP宛先アドレスまたはVPI/VCIヘッダーのニブルまたはバイトのいずれかを同時に解析する。この機能は、ソフトウエアによってプログラム可能である。各参照は、インターフェースあたりに１つの、１６の源ノードのうちの１つによって指示される独自のツリー構造を有することができる。源ノードは、プログラム可能なレジスタベースのテーブルに記憶され、このため、ソフトウエアによりメモリ構造の任意の場所でこれらのツリーを構築することができる。
【００７１】
ニブルまたはバイト参照は、エンドノードの結果または分岐ノードの結果を生成することができる。ルックアップ制御状態マシンは、各参照に関連した状態フラグビットを検査することによって参照プロセスを制御する。これらの状態フラグビットは、エンドノード、スキップノード、及びスキップの大きさである。エンドノードのフラグビットは、参照がエンドノードであったか分岐ノードであったかを示す。エンドノードであった場合は、参照の結果は、第２の段の転送テーブルルックアップ（参照）メモリへのインデックス値である。分岐ノードであった場合は、ニブルまたはバイト参照は、エンドノードが見つかるまで続行される。各分岐ノードの参照結果は、次の分岐ノードへのポインタである。スキップノードのフラグビットは、状態マシンに、参照の間、スキップの大きさによって示されるニブル数をスキップするように命じる。バンク選択フラグビットは、どのバンクが次の参照で使用されることになるかを指示する。ルックアップ状態マシンは、これらのビットを使用して、どのクロックが使用可能で、どのマルチプレクサ（mux）の制御が動作可能であるかを決定する。
【００７２】
パーサー参照の結果は、転送ＩＤと呼ばれる転送情報を含む転送結果を生成する１バンクのメモリである転送テーブル参照である。参照時間性能を最適化するために、この参照ステージをパイプライン処理することができ、これにより、第１のステージを別の参照と平行して開始することができる。転送ＩＤフィールドは、いくつかの方法で使用される。第１に、フィールドのMSB（最上位バイト）は、ネットワークインターフェースレベルで、ユニキャスト（unicast）またはマルチキャストパケットを指示するために使用される。例えば、マルチキャストパケットの場合は、出力待ち行列マネージャは、複数のインターフェースに対してマルチキャストパケットの待ち行列を形成するために、このビットを調べる必要がある。例えば、ユニキャストパケットの場合は、転送ＩＤの６ビットは、宛先インターフェース番号を示すことができ、残りの１６ビットは、レイヤ２のＩＤを提供する。レイヤ２のＩＤは、出力転送ロジックによって、どのレイヤ２のヘッダーをパケットデータに対して予め未決定のままにしておく必要があるかを決定するために使用される。パケットについては、これらのヘッダーは、パケットが出力DMA FIFO（先入れ、先出し）から出力バッファメモリに移動されるときに、そのパケットに付加される。セルについては、レイヤ２のＩＤは、送信装置に適切なチャンネルＩＤを提供する。
【００７３】
ユニキャストトラフィックの場合は、宛先I/F番号は、ネットワークの宛先インターフェースを示し、レイヤ２のＩＤは、どのタイプのレイヤ２ヘッダーをパケットデータを付加すべきかを示す。マルチキャストの場合は、マルチキャストＩＤは、レイヤ２ヘッダの付加、及び、どのネットワークインターフェースがそのマルチキャストを送信することができるか、の両方を示す。出力待ち行列マネージャは、マルチキャストＩＤテーブル参照を実行して、どのインターフェースでパケットが送信されるか、及び、どの種類のレイヤ２ヘッダーがパケットデータに戻されるかを決定する。
転送エンジンのもとでのパケットの実際例
本発明の転送エンジンを通る単純なパケット及び複合（複雑な）パケットの例について説明する。起動時、解析グラフのすべの２ｎ個のブロックは、最終的にはすべてのパケットをネットワークカード上の制御プロセッサに転送することになるFLTオフセットを指示するリーフ要素で満たされる（図１９）。これは、認識されていないすべてのパケットのデフォルトの経路である。ソフトウエアには、デフォルトの経路を設定する役目がある。種々の要素をこの解析グラフメモリ中に更新する方法について、マスクが255.255.0の単純なマルチキャストIPパケット、複合的なフィルタパケット（filter packet）、時間経過後の単純なIPパケットの場合を例にとって説明する。
単純なマルチキャストパケット
起動時、解析グラフメモリ内の全ブロックは、パケットをネットワークプロセッサに経路指定するFLTの１番目のオフセットを指示するリーフ要素で満たされるものと仮定することができる。この例では、入力パケットは、宛先IPアドレス224.5.6.7を有しているものと仮定する。この場合、ハードウエアは、１番目のブロック（１番目の参照ブロックを源ノード（originating node）とも呼ぶ）の２２４番目のオフセットを調べ、リーフを見つける。ハードウエアは、検索を終了して、２２４番目のロケーション（位置）におけるデフォルトのオフセットを調べ、FLTを調べ、そして、パケットを制御プロセッサに送る。
【００７４】
制御プロセッサが、宛先IPアドレスが224.5.6.7の次のパケットを転送するとき、それは、図２１に示すグラフを生成する。
【００７５】
ソフトウエアは、最初に、解析グラフを局所的に生成しなければならない。生成された解析グラフは、1-129-2-131として記載されている。ソフトウエアは、源ノードとも呼ばれる最初のブロックを常に調べなければならない。最初のブロックのオフセットは２２４であり、それは、宛先IPヘッダーの最初のバイトである。それは、ソフトウエアが、新しいブロックに宛先IPアドレスのそれ以降のすべてのバイトを割り当てるための指示である、デフォルトの経路を見つける。ソフトウエアがデフォルトの経路を見つけると、ソフトウエアは、それがリンクノードであることを知る。リンクノード以降は、ソフトウエアは、ハードウエアに一致する宛先IPアドレスを検索してもらうことを望むすべてのバイトを新しいブロックに割り当てる。適切なソフトウエアアルゴリズムによれば、129、2、131が次に使用可能な３つのブロックであることがわかる。ソフトウエアは、次に、ブロック１２９の５番目のオフセットに２のBAを有する継続要素を、ブロック２の６番目のオフセットに１３１のＢＡを有する継続要素を、及び、ブロック１３１の７番目のオフセットにFLTオフセット５のリーフ要素をインストールする。リーフを有するかかる分岐が生成されると、ノードリンクが次にインストールされる。ノードは、新しいリーフされた（leafed）分岐において最後にインストールされなければならない。この場合のノードは、１番目のブロックのオフセット２２４において１３１のBAを有する継続要素である。
【００７６】
ハードウエアは、今や、宛先IPアドレスが224.5.6.7である任意の後続パケットに対して（ハードウエアがそれについて何も知らない場合でさえ）準備ができており、ハードウエアが宛先IPアドレスの２２４を認識した場合は、ハードウエアは、解析グラフの１番目のブロックの２２４番目のオフセットに行き、１２９のBAを有する継続要素を見つける。次に、ハードウエアは、１２９番目のブロックの５番目のオフセット（宛先IPアドレスの２番目のバイト）に行き、２のBAを有する別の継続要素を見つける。次に、ハードウエアは、２番目のブロックの６番目のオフセット（宛先IPアドレスの３番目のバイト）に行き、１３１のBAを有する別の継続要素を見つける。次に、ハードウエアは、１３１番目のブロックの７番目のオフセット（宛先IPアドレスの４番目のバイト）に行き、３のFLTを有するリーフ要素を見つける。今や、ハードウエアは、IPの突き合わせを完了したことを知り、ロケーション２における転送ＩＤを後続のハードウエアブロックに転送し、パケット解析の終了を命じる。
【００７７】
ハードウエアは、ソフトウエアによってメモリに置かれた解析グラフの従属制御装置として単に動作するものであることに留意されたい。検索時間は、解析時間及びメモリサイズについてのソフトウエア要件に純粋に依存する。かかる解析の欠点は、メモリサイズと、検索時間に正比例する検索時間にある。
【００７８】
この場合、検索のために、ハードウエアは、解析グラフにおいて４つの参照、及び、FLTにおいて１つの参照を実行することになる。
【００７９】
図２０の解析グラフを構築する際、例示的なマスク及びアドレスがそれぞれ255.255.255.0、4.6.7.xのパケットがインストールされる。この場合、ソフトウエアは、源ノードの４番目のオフセットに行き、１２９のBAを有する継続要素を見つける。次に、ソフトウエアは、ブロック１２９のオフセット６に行き、デフォルトのFLTオフセットを見つける。このとき、ソフトウエアは、それがリンクノードであることを知る。これ以降、ソフトウエアは、解析グラフにブロック２等のブロックをさらに割り当てなければならない。ブロック２のオフセット７では、ソフトウエアは、FLT３を有するリーフ要素をインストールする。次に、ソフトウエアは、ブロック１２９のオフセット６に２のBAを有する継続要素を書き込むことと併せて、リンクノードをインストールする。
【００８０】
ハードウエアは、ヘッダーが4.6.7.xの任意のパケットを受け取ると、源ノードの４番目のオフセットを調べて、１２９のBAを有する継続要素を見つけ、次に、ブロック１２９の６番目のオフセットを調べて、１３１のBAを有する継続要素を見つけ、次に、３のFLTを有するオフセット７におけるリーフ要素を調べる。このFLTは値が３であり、バッファマネージャ、そして、最終的には出力帯域幅マネージャに送られる。
マスクが255.255.0.0のパケット
サブセクションは、図２０の解析グラフに基づいており、例示的な255.255.0.0のマスク及び4.8.x.yのアドレスを有するパケットをインストールする。この場合、ソフトウエアは、源ノードの４番目のオフセットに行き、１２９のBAを有する継続要素を見つける。次に、ソフトウエアは、ブロック１２９のオフセット８に行き、デフォルトのFLTオフセットを見つける。この時点で、ソフトウエアは、ブロック１２９の８番目のオフセットに新しいFLT（例えば４の）オフセットをインストールしなければならないことを知る。
【００８１】
ハードウエアは、ヘッダーが4.8.x.yの任意のパケットを受け取ると、源ノードの４番目のオフセットを調べて、１２９のBAを有する継続要素を見つけ、次に、４のFLTを有するブロックのリーフ要素を調べ、そして、検索を終了する。この場合、ハードウエアは２つの参照をするだけである。
フィルタリングされた複合パケット
ここで、ヘッダー4.5.6.8.9.x.y.z.11のパケットをフィルタリングする要件がある場合を想定する。パケットを解析する上述のコンセプトには何の制限もなく、パケットを解析するのに要する時間は、ハードウエアが９バイトを読み込んで比較する必要があるために増加する。ハードウエアは、リーフ要素を認識するまでは、単に解析を継続するだけである。x.y.zのバイトは、ブロックｙを指示するｘの全ての継続要素、ブロックｚを指示するｙの全ての継続要素、及び、リーフ（葉）としてエントリ１１を有するブロックを指示するｚの全ての継続要素、及び他はデフォルトである継続要素と共に、次のブロックを指示する継続要素を含むブロックである。この場合、分岐要素（fork element）が役割を果たすようになり、4.5.6.8の検索の終了時における転送を調べるために呼び出される。
単純なIPマルチキャストパケットの除去
パケットの除去は、上述した、解析グラフにアドレスを付加するステップの逆のステップに似ている。この実施態様における除去用の疑似コードを以下に示す。
【００８２】
各ブロックのアドレス及びブロック内のオフセットを記憶しているリーフの終わりまで移動して消す。
【００８３】
【表１】
2006262517.tif 000003
【００８４】
出力帯域幅マネージャ
全てのI/Oモジュールは、NeoNポートを１つまたは複数の物理ポートに接続する。各I/Oモジュールは、単一の物理NeoNポートを介して導入される複数のトラフィックの優先順位をサポートする。図１４に、「QoS（パケット及びセル）」と表示されているように、各トラフィックの優先順位は、ネットワークマネージャによってある帯域幅を割り当てられる。このセクションの目的は、複数のトラフィックプロファイルに対して、帯域幅をどのように管理するかを規定することである。
NeoNの待ち行列の概念
従って、本発明のNeoNの待ち行列の目的は、構成可能な固定帯域幅をすべてのプライオリティ待ち行列に関連付けること、及び、最高の回線利用度を保証すること、を可能とすることである。従来、帯域幅の割り当ては、システムにおいて、プライオリティ待ち行列ごとに一定数のバッファを割り当てることによってなされている。これは、プライオリティ待ち行列にデータを配置することは、帯域幅の割り当てを実施することであることを意味する。ある待ち行列のバッファが一杯になると、その待ち行列用のデータは、（その待ち行列にデータが配置されないことにより）失われるが、これは、理想的な要件をおおざっぱに近似したものである。
【００８５】
本発明のQoSの概念を理解するのに多くの現実の類推物がある。それらは、例えば、複数の進入ランプを設けたハイウェイ上の自動車、または、製造工程における多チャンネル化されたコンベア上を移動する物体である。本発明の目的に則して、「ハイウェイ上の自動車」の単純な例を検討しよう。８個のランプが、ハイウェイ上のあるポイントで１つの車線に統合される場合を考える。実際の経験上、これによって交通渋滞が生じる得るというのは誰でも知っている。しかし、適切に管理すれば（すなわち、適正なQoSがあれば）、単一のハイウェイ車線を最大の効率で使用することができる。この流れを管理する１つの方法は、コントロールしないことであり、最初に到来したものに最初にサービスをする方法（first come,first serviced method）でサービスをすることである。これは、１つのランプ上の救急車と別のランプ上の海辺に向かう車とを区別しないことを意味する。しかし、本発明の方法では、所定の進入ランプに対して所定の優遇特性を定義する。異なるメカニズムを生成することができ、１つは、ラウンド・ロビン方式で各進入ランプから１つの車を送り出すものである。この場合、各ランプは等価である。これは、車の数をカウントすることを意味する。しかし、これらの「車」のうちの１つが３つのトレーラを有する貨物自動車である場合は、実際には、ハイウェイの占有量によって評価されるので、すべての進入ランプについて等しいサービスが与えられるわけではない。実際、ある進入ランプの車がすべて貨物自動車の場合は、他のランプの渋滞が極めて重大な問題となる。そのため、車のサイズと重要性を評価することが重要である。「交通巡査（QoSマネージャとも呼ぶ）」の目的は、サイズ、重要度及び場合によっては車線番号に基づいて、どの車が通行権を有しているかを管理することである。「交通巡査」は、実際、「市長」（ネットワークマネージャとも呼ぶ）が決定したことに基づいて、一日おきに異なる車線進入特性についての命令を有することができる。QoSの概念を理解するための説明の結びとして言えば、QoSは、所定のデータグラムを、制御された方式で待ち行列を通過させて、決定論的かつ所望の目的を達成することを可能とするメカニズムであるということになる。そして、この目的は、例えば、帯域幅利用、精密な帯域幅割り当て、短い待ち時間、短い遅延、優先順位等のアプリケーション毎に異なる。
【００８６】
本発明のNeoN待ち行列生成は、問題を直接処理する。NeoN待ち行列生成は、バッファ割り当てを、待ち行列生成と帯域幅の問題に直交するパラメータとして見る。NeoN待ち行列は、物理的なワイヤ（電線）を「タイムスライス」と呼ばれる小時間単位に正確に分割する（１例として、OC48上の６４バイトパケットのOC48の時間の場合約２００ナノ秒）。バックプレーンからのパケットは、プライオリティ待ち行列に置かれる。パケットが待ち行列から取り出されるたびに、タイムスタンプがその待ち行列と共に付加される。タイムスタンプは、タイムスライスユニットの「現在の時間カウンタ」からの時間的な距離と、次のパケットをいつ待ち行列から分離すべきかを示す。「時間的な距離」は、ａ）バックプレーンから到来するパケットサイズ情報、ｂ）スライスタイム自体の大きさ、及び、ｃ）プライオリティ待ち行列に割り当てられた帯域幅、の関数である。パケットが待ち行列から分離されると、別のカウンタが更新されるが、それは、待ち行列から分離する次の時間（NTTD）を表しており、その時間は、例えば、たった今待ち行列から分離されたパケットのサイズの純粋な関数である。NTTDは、セルベースのカードに対するものである。なぜなら、全てのパケットは、サイズが同じであり、１つのバッファに収まるからである。これは、実際には、NeoN出力帯域幅マネージャが回線を監視しており、次に何を送るかを正確に決定するということを示している。従って、このメカニズムは、単なる待ち行列分離エンジンではなくて、帯域幅マネージャである。
【００８７】
さらに、本発明のNeoN待ち行列生成方式は、ABR（利用可能なビットレート）帯域幅に対するプライオリティ待ち行列生成を使用して、それぞれの優先順位に対して帯域幅を割り当てるためのTDM方式であると考えることができる。NeoN待ち行列生成によって付加される利点は、TDMメカニズムにおいて、帯域幅が、「パケットの数」ではなくて「パケットのバイトサイズ」に基づいて計算されるということである。この粒度（granularity）により、実際の帯域幅利用度が極めて良好に再現され、また、シュミレーション／近似ではなく真の帯域幅の計算が可能となる。２番目の「NeoNの利点」は、ネットワークマネージャが、ボリュームコントロールのメモリをスライドさせるのと同様にして、帯域幅要件を動的に変化させることができることである。これは実現可能である。なぜなら、プライオリティ待ち行列に対する帯域幅の計算は、バッファ割り当てには全く基づいていないからである。NeoN待ち行列生成では、帯域幅の割り当ては、物理的なワイヤにおける帯域幅をスライスする時間に基づいて行われる。このタイプの帯域幅管理は、非常に速い回線速度で動作しているときに、回線利用度を高い状態に維持するためには必須である。
待ち行列生成時に使用される数学的手法
最初に、基本的な数学で使用される変数及び定数を定義する。
【００８８】
【表２】
2006262517.tif 000004
【００８９】
まず、種々の優先順位に対してどのように帯域幅を割り当てるかを理解するために、ユーザインターフェースレベルを検討すると、ユーザには、通常、種々の優先順位に対して１００％の帯域幅を分割する作業が与えられる。ユーザには、また、全帯域幅を一秒あたりのビット単位で分割する作業が与えられる場合もある（例えば、OC48の場合、2.4ギガビット）。いずれの場合でも、あるCPUのソフトウエアは、％−優先順位、または、ｍビット／秒−優先順位から、複数の優先順位−Δｎのペアを計算する。CPUがこの計算を実行するので、I/Oモジュールに基づいてこの計算を容易に変更することができる。帯域幅マネージャは、I/Oモジュールのタイプについて知っている必要はなく、優先順位−Δｎのペアについて関心があるだけである。従って、ユーザが、最大の回線速度でデータを処理できないNeoNポートに接続されている場合は、CPUは、顧客の要求に対応すべくその値を変更することができる。
【００９０】
Δｎ＝１００／BWｎ                                                    （１）
プライオリティ待ち行列からの（パケットアドレス形式の）データは、出力FIFOで待ち行列行列から分離される。その待ち行列に対する次の送信時間についての待ち行列分離エンジンの計算結果は、下の式（２）によって決定される。各待ち行列についてかかる１つの数値があり、それは、パケットが待ち行列から取り出されるたびに更新される。NTTSに対する計算は、
NTTSｎ＝（（パケットバイト数＊BitTime）／（TS））＊Δｎ）＋NTTSｎ−１    （２）
である。ここで、BitTimeは、起動時にCPUによって与えることができる定数であり、I/Oモジュールに依存する。NTTSｎを少数第２位に維持することは、時間は無限に近づくが、瞬間的な粒度を常にTS時間として、１００番目のTS時間まで帯域幅を割り当てることができることを意味する。
【００９１】
次に待ち行列から分離する時間は、現在の待ち行列からの分離の後に、待ち行列からの分離処理を開始する時間である。これは、主として、現在の時間とたった今待ち行列から分離したパケットにおけるバッファの数とに基づく。
【００９２】
NTTDｎ＝（（パケットバイト数＊BitTime）mod（TS））＋CT              （３）
待ち行列生成処理
ここでは、バックプレーンからプライオリティ待ち行列へのアドレスを待ち行列にするのに必要な処理を決定する。図２４は、待ち行列生成及びスケジューリング処理を全体的に示す図である。「NeoN制御データ交換器」からの、データグラムのアドレスを含む制御データは、待ち行列生成エンジンによって制御データ内に埋め込まれたQoS情報に基づいて、プライオリティ待ち行列に格納される。スケジューリングエンジンの動作は、以下に記載する本発明の新規なアルゴリズムを使用してデータグラムのアドレスをスケジューリングする待ち行列生成エンジンとは独立に実行される。
【００９３】
待ち行列生成エンジンは、以下のタスクを有する。
【００９４】
・入力FIFOから読み出したデータを列に並べて、適切な待ち行列にパケットを配置する。８つのプライオリティ待ち行列、１つのローカルCPU待ち行列及び１つのドロップ待ち行列（Drop Queue）がある。
【００９５】
・ウォーターマーク（watermark）計算は、待ち行列に対するウォーターマークセットに基づいて、入力側に圧力（pressure）をかけるときに計算する。
【００９６】
・ドロップパケットは、プライオリティ待ち行列が一杯になったときに、パケットのドロップ（パケット落ち）を始める。
【００９７】
各プライオリティ待ち行列Ｐｎについて、「ヘッドポインタ−pHeadｎ」と「テールポインタ−pTailｎ」がある。入力FIFOは、バックプレーンからのバッファアドレスとともにプライオリティ待ち行列Ｐｎを供給する。さらに進歩がある。OC48のレートの場合、平均サイズのパケットとして６４バイトパケットを想定すると、以下の処理は、約２００ナノ秒で完了する。待ち行列化プロセッサ用の本発明の好適な疑似コードは以下の通りである。
【００９８】
【表３】
2006262517.tif 000005
【００９９】
言語による疑似コードについては上述した。各制御パケットが、「NeoN制御データ交換器」から読み出されると、そのパケットは、待ち行列で利用可能な物理空間について検査された後、Ｎ個の待ち行列の一つに配置される。待ち行列に配置するスペースがない場合は、データはドロップ待ち行列に入れられるが、これにより、ハードウエアは、「NeoN制御データ交換器」を介して源ポートにアドレスを返すことができる。また、好ましくないトラフィックを除去するよう入力に指示するために、待ち行列ごとにウォーターマークが設定される。このアルゴリズムは、単純だが、１TS内で実行されることを必要とする。
スケジューリング処理
このセクションでは、プライオリティ待ち行列Ｐｎから出力FIFOへのアドレスを待ち行列から取り出すために使用するアルゴリズムについて説明する。この計算もまた、１TS間に完了しなければならない。
【０１００】
【表４】
2006262517.tif 000006
【０１０１】
待ち行列分離（待ち行列解体：De-Queue）機能は、概念的には以下に示すように単純なルーチンである。
De-Queue（Qｎ）
*pOutputQTail++=*pHeadｎ++ 
上記した疑似コードの説明では、アルゴリズムに２つのFORループがある。第１のFORループは、待ち行列に専用の帯域幅を割り当てるFORループであり、第２のFORループは、帯域幅の利用度についてサービスするもので、しばしば、帯域集約（aggregate bandwith）FORループと呼ばれる。
【０１０２】
先ず第１のFORループ（Committed FOR Loop）を調べる。スケジューリングするために、優先順位の最も高い待ち行列から最も低い待ち行列まで、使用可能なデータグラムについて待ち行列がチェックされる。待ち行列が使用可能なデータグラムを有している場合は、アルゴリズムは、NTTSｎをCTと比較することにより、待ち行列時間（Queues Time）が待ち行列の分解（dequeue）を実行しなければならないかどうかを確認するためにチェックする。NTTSｎがCTより遅い場合は、待ち行列は分解され、それ以外の場合は、次の待ち行列に対して検索を実行し、これを全ての待ち行列をチェックするまで続行する。待ち行列からのデータが出力されるようにスケジューリングされている場合は、新たなNTTSｎが、その待ち行列について計算され、また、NTTDは、任意の待ち行列が解体（待ち行列からデータを取り出して元のデータに戻すこと）されるときは常に計算される。ネットワークマネージャが、待ち行列に対して重みを割り当てるときは、すべての重みの合計は１００％であるべきではない。NTTSｎは、データグラムのサイズに基づいているので、待ち行列ごとの出力データは、ネットワークマネージャによって設定された帯域幅を極めて正確に実現するものである。
【０１０３】
次に、帯域集約FORループについて調べる。このループは、前記第１のFORループ（Committed FOR Loop）の間に待ち行列の分解が行われなかったときにのみ、実行される。換言すれば、一つの待ち行列分解処理だけが、１TS内で実行される。このFORループでは、待ち行列の分解のために、全ての待ち行列が、最高の優先順位から最低の優先順位まで、使用可能なデータについてチェックされる。アルゴリズムは、２つの理由のうちの１つの理由で、このFORループに入る。すなわち、全ての待ち行列にデータがなかったか、あるいは、全ての待ち行列のNTTSｎが、依然としてCT（これは、送信時間ではない）より前であったかのいずれかの理由である。アルゴリズムが、空の待ち行列について帯域集約FORループに入った場合、２回目には、その運命（fate）は同じになるであろう。しかしながら、NTTSｎが、待ち行列すべてについては取得されなかったために帯域集約FORループに入った場合は、このループにより、待ち行列化、及び、待ち行列解体等の最高優先順位が見いだされることになり、この場合、さらに、NTTSｎが更新され、NTTDが計算される。
【０１０４】
アルゴリズムは、データをもたない待ち行列に、それらのタイムスロットで待ち行列の解体を行うためにクレジット（credit）を組み込み、また、帯域幅集約ループで待ち行列から取り出されるデータに対する借方（debit）を組み込む。これらのクレジットと借方は、長い時間期間にわたって累算することができる。これらの借方とクレジットの累算時間は、NTTSｎフィールドのビットサイズの直接の関数であり、例えば、３２ビット数の場合は、TSとして１６０ナノ秒（２３２＝１６０ナノ秒）を使用すると、各方向で６分となる。このアルゴリズムを使用するそれぞれのアプリケーションに依存して、クレジット及び／または借方を解除するように個々の待ち行列を構成することができる。例えば、アルゴリズムがCBRタイプの回路に対して主に使用される場合は、借方を公平に迅速にクリアすることが要求されるであろうが、トラフィックが混雑している場合は、クリアされるのは遅くなる。借方／クレジットをクリアするメカニズムは、非常に単純であり、非同期的にNTTSｎをCTに設定するものである。NTTSｎがCTより（時間的に）前であって、待ち行列が多くの借方を組み込んでいる場合、NTTSｎをCTに設定することは、すべての借方を解除することを意味する。同様に、NTTSｎがCTの後であっって、待ち行列がたくさんのクレジットを組み込んでいる場合は、NTTSｎをCTに設定することは、すべてのクレジットを解除することを意味する。
本アルゴリズムを使用したCBR待ち行列の実施例
ここで、再度図２４を参照して、上記アルゴリズムからCBR待ち行列を構築する方法について検討する。出力線（ワイヤ）がOC48の速度（2.4ギガビット／秒）で動作しており、（優先順位が最高の）待ち行列１（図面ではキュー１と記載）が、CBR待ち行列となるように割り当てられている場合を想定する。CBR待ち行列に対して重みを構成する方法は、入力CBR流れの帯域幅要件を全て合計することによって構成される。簡単のために、１００の流れがCBR待ち行列を通過し、各々の帯域幅要件が2.4メガビット／秒の場合を考える。CBR待ち行列の帯域幅は、この場合、2.4メガビット／秒の１００倍、すなわち、２４０メガビット／秒（すなわち、１０％）となる。つまり、
QRATEcbr=Σ入力流れの帯域幅
Δｎ＝１００／１０＝１０：式（１）に基づく。
【０１０５】
NTTSｎは、４５バイトのデータグラムが待ち行列から取り出されるたびに、１０になる。：式（２）に基づく。
【０１０６】
NTTSｎは、９０バイトのデータグラムが待ち行列から取り出されるたびに、２０になる。：式（２）に基づく。
【０１０７】
NTTDは、４５バイトのデータグラムが待ち行列から取り出されるたびに、１になる。：式（３）に基づく。
【０１０８】
NTTDは、９０バイトのデータグラムが待ち行列から取り出されるたびに、２になる。：式（３）に基づく。
【０１０９】
このことは、データグラムのサイズと、待ち行列に割り当てられた帯域幅の割合（％）に基づいて、待ち行列が非常にタイムリーに分解されることを示している。このアルゴリズムはワイヤ上の速度とは無関係であり、その速度を非常にスケーラブルなものにし、また、非常に高速のデータ速度を実現することができる。このアルゴリズムは、また、データグラムがセルであるかパケットであるかに関係なく、スケジューリングの間、データグラムのサイズを考慮に入れる。ネットワークマネージャが、待ち行列の重みをすべての入力CBR流れ帯域幅の総和として設定する限り、アルゴリズムは、極めて正確にスケジューリングを実行する。
【０１１０】
このアルゴリズムを使用してUBR待ち行列を実装することは非常に簡単である。UBRは、ワイヤ上の残りの帯域を使用する待ち行列を表している。このタイプの待ち行列を、帯域幅（の割合）が０％のＮ個の待ち行列の一つとして実現すると、分解される待ち行列が他にないときはこの待ち行列が分解される。アルゴリズムがあるデータグラムを待ち行列から取り出した後、次のデータグラムのスケジューリングがされないように、NTTSはずっと先の時間に設定される。
QoSの結び
上述したように、本発明のアルゴリズムは、帯域幅を分配することにおいて極めて正確であり、その粒度は、TSのサイズに基づいており、セル／パケット情報とは無関係である。本発明のアルゴリズムは、また、要求される全てのATMサービスを提供するが、このことは、パケットもATMサービスを享受するというだけでなく、セルとパケットが同じインターフェース上に共存するということを意味している。
ネットワークマネージャの実際例
このセクションでは、いくつかのネットワーク管理帯域幅の管理シナリオについて検討する。これらは全て本発明によって好適に取り扱われる。NeoNネットワークコントローラに関する限り、各々に帯域幅が割り当てられたｎ個（例えば、８個）の出力待ち行列がある。出力帯域幅マネージャは、帯域幅の割合を非常に正確に配分する。ネットワークマネージャは、また、すべての待ち行列に１００％の帯域幅を割り当てないように決定することができ、この場合、残りの帯域幅は、優先順位の高い方から低い方の順に単純に分配される。これらの２つの制御レベルに加えて、ネットワークマネージャは、また、優先順位ごとに統計量を検査して、それ自身についての戦略的な統計決定を行い、帯域幅割り当ての割合を変更することができる。
例１：固定帯域幅
このシナリオでは、帯域幅の１００％がすべての待ち行列に分割される。すべての待ち行列が常に満杯の場合は、待ち行列は、公平に重み付けされた待ち行列と全く同様に振る舞う。これは、出力帯域幅マネージャが、ネットワークマネージャによって要求された回線帯域幅の割合を分配すること、及び、待ち行列が空ではないため、上述したように、出力帯域幅が、第２のFORループ（帯域幅集約ループ）を実行する時間をもたないこと、による。
【０１１１】
しかしながら、待ち行列が常に満杯であるというわけではない場合は、待ち行列が空である時間中に、他のある待ち行列に対して、当該他の待ち行列の帯域幅に負担をかけることなく、それの時間に先だってサービスを行うことができる。
【０１１２】
例えば、ネットワークマネージャが、８個の待ち行列の各々の全てに12.5％の帯域幅を割り当てることを決定すると、ネットワークマネージャは、出力帯域幅マネージャに、
Δｎ−優先順位：各優先順位に対して１つの全てのΔｎのリスト
Bit Time   ：I/Oモジュールに基づいて、出力帯域幅マネージャが動作中
12.5％の帯域幅の場合、Δｎは、8.00（100/12.5）と計算される。OC48の場合は、Bit Time は、４０２psecと計算される。
例２：混合帯域幅
この例では、帯域幅の全てが、全ての待ち行列に分割されるわけではない。実際、待ち行列に対する全固定帯域幅の和は、利用可能な帯域幅の１００％ではない。出力帯域幅マネージャは、割当量になるまで一定の帯域幅を待ち行列に分配し、次に、残りの帯域幅において優先順位間にトラフィックを集める。これによって、あるクラスのトラフィックのある割合がポートを通過することができるようになり、また、トラフィックに優先順位が付けられることが保証される。割り当て時間中満杯ではない待ち行列については、その帯域幅は、集約帯域幅に奪われることになる。
例３：全ての待ち行列に対して混合されない帯域幅
このシナリオでは、すべての待ち行列に固定帯域幅として０％が割り当てられる。この場合、待ち行列は、優先順位付けされた待ち行列と全く同様に振る舞う。前述した第１のFORループは０のスケジューリングを行うが、これは、NOPとみなされる。
例４：動的な帯域幅
この例の場合、ネットワークマネージャは、まず、全ての待ち行列に対して混合されない帯域幅を提供することができ、次に、専用帯域幅回線（committed bandwidth circuit）の構築を開始するときに、固定帯域幅の待ち行列を生成することができる。入力ポートにおける流れの帯域幅要件の和は、出力ポートにおける一定帯域幅のサイズを示す。割り当て可能な出力帯域幅の粒度は、浮動小数点の深さに大きく依存する。一例として、小数第２位で十分な場合を想定する。これは、１００分の１％を意味しており、OC48回線に対して２４０ｋＨｚ、OC12回線に対して６２ｋＨｚとして計算される。
【０１１３】
上述のケースは、例示として挙げただけであり、本発明のアルゴリズムの適用は、それらのケースに限定されないということは明らかである。
【０１１４】
当業者は更なる修正を行うことができようが、それらの修正は、特許請求の範囲に記載されている、本発明の思想及び範囲に入るものとみなされる。
【図面の簡単な説明】
【０１１５】
【図１】ATM（同期転送モード）セルのフォーマットを示す図である。
【図２】３２ビットワードのインターネットプロトコル（IP）のフレームフォーマットを示す図である。
【図３】時分割多重方式（TDM）、ATM、及び、パケットデータフレーム転送を比較したフローチャートである。
【図４】セル及びパケットインターフェースを具備する本発明の交換器のブロック図である。
【図５】従来技術によるバスベースの交換アーキテクチャのブロック図である。
【図６】従来技術によるメモリベースの交換データフロー図である。
【図７】従来技術によるクロスバータイプの交換アーキテクチャのブロック図である。
【図８】従来技術によるクロスバーデータフロー図である。
【図９】本来のインターフェースカードを備えたセル交換器、セル交換器上のパケットインターフェース、及び、セル交換器上のAAL５パケットインターフェース、及びそれらのすべてをクロスバーまたはメモリ交換器と共に示すインターフェース図である。
【図１０】本来のインターフェースカードを備えたセル交換器、セル交換器上のパケットインターフェース、及び、セル交換器上のAAL５パケットインターフェース、及びそれらのすべてをクロスバーまたはメモリ交換器と共に示すインターフェース図である。
【図１１】本来のインターフェースカードを備えたセル交換器、セル交換器上のパケットインターフェース、及び、セル交換器上のAAL５パケットインターフェース、及びそれらのすべてをクロスバーまたはメモリ交換器と共に示すインターフェース図である。
【図１２】Ｎ×Ｎのメモリ接続バス用の、本来のパケットインターフェースカード、及び、AAL5インターフェースを備えたパケット交換器を示す図である。
【図１３】Ｎ×Ｎのメモリ接続バス用の、本来のパケットインターフェースカード、及び、AAL5インターフェースを備えたパケット交換器を示す図である。
【図１４】本発明の交換器アーキテクチャのブロック図であり、本願の譲受人、NeoNET LLCのブランド名として、パケット及びセルデータ交換器に関連して語句「NeoN」を使用している。
【図１５】転送判断に対して拡張された解析機能の流れ、及び、びかかる機能の概要を示すブロック図である。
【図１６】転送判断に対して拡張された解析機能の流れ、及び、びかかる機能の概要を示すブロック図である。
【図１７】転送要素を示す図である。
【図１８】第１段階の解析グラフのツリールックアップを示すブロック図である。
【図１９】第２段階の転送テーブルルックアップ（FLT）を示す図である。
【図２０】起動時の解析グラフメモリ、及び、簡単に例示したIPマルチキャストパケットを示す図である。
【図２１】起動時の解析グラフメモリ、及び、簡単に例示したIPマルチキャストパケットを示す図である。
【図２２】初期化されたルックアップテーブルを示しており、すべてのエントリが、未知の経路／セル転送情報を示している。
【図２３】例示的なIPアドレス（209.6.34.224/32）を追加した後のルックアップテーブルを示す。
【図２４】システム動作のスケジューリングを行うための待ち行列を示す図である。
【図１】
2006262517.tif 000007
【図２】
2006262517.tif 000008
【図３】
2006262517.tif 000009
【図４】
2006262517.tif 000010
【図５】
2006262517.tif 000011
【図６】
2006262517.tif 000012
【図７】
2006262517.tif 000013
【図８】
2006262517.tif 000014
【図９】
2006262517.tif 000015
【図１０】
2006262517.tif 000016
【図１１】
2006262517.tif 000017
【図１２】
2006262517.tif 000018
【図１３】
2006262517.tif 000019
【図１４】
2006262517.tif 000020
【図１５】
2006262517.tif 000021
【図１６】
2006262517.tif 000022
【図１７】
2006262517.tif 000023
【図１８】
2006262517.tif 000024
【図１９】
2006262517.tif 000025
【図２０】
2006262517.tif 000026
【図２１】
2006262517.tif 000027
【図２２】
2006262517.tif 000028
【図２３】
2006262517.tif 000029
【図２４】
2006262517.tif 000030