(57)【要約】【課題】パケットをこれまで可能だったよりも速い速度で処理する、ネットワーク・プロセッサを提供する。【解決手段】ネットワーク・プロセッサ（ＮＰ）は、動作可能に結合された複数のチップから形成される。当該ＮＰは、データ・フロー・チップに結合されたネットワーク・プロセッサ複合（ＮＰＣ）チップと、当該データ・フロー・チップに結合されたデータ記憶メモリとを含む。任意選択のスケジューラ・チップが、当該データ・フロー・チップに結合される。ここに挙げた構成要素が複製されて、対称性を有する進入および退出構造が作成される。【選択図】図１
2004525562.tif 000002
【特許請求の範囲】
【請求項１】
フレームを転送するプログラム、または、テーブル探索、ポリシング、計数などの動作を実施するハードウェア補助機能、を実行する、複数のコプロセッサを含むネットワーク・プロセッサ複合チップと、
前記ネットワーク・プロセッサ複合チップに動作可能に結合されたデータフロー・チップであって、データを送受信する少なくとも１つのポートと、前記少なくとも１つのポートをスイッチ・モードおよびライン・モードの両方またはいずれか一方にセットする回路構成と、を含むデータフロー・チップと、
前記データフロー・チップに動作可能に結合されたスケジューラ・チップであって、所定のサービス品質コミットメントを満たすようにフレームをスケジューリングするスケジューラ・チップと、
を含む装置。
【請求項２】
前記ネットワーク・プロセッサ複合チップに動作可能に結合された第１のメモリと、前記データフロー・チップに動作可能に結合された第２のメモリと、前記スケジューラ・チップに動作可能に結合された第３のメモリと、をさらに含む、請求項１に記載の装置。
【請求項３】
対称的に配置された進入セクションおよび退出セクションを含む装置であって、前記進入セクションおよび前記退出セクションがそれぞれ、
ネットワーク・トラフィックを転送するコードを実行するようにプログラムされた複数のコプロセッサを有するネットワーク・プロセッサ複合チップと、
前記ネットワーク・プロセッサ複合チップに動作可能に結合されたデータフロー・チップであって、少なくとも１つのポートと、前記ポートをスイッチ・モードまたはライン・モードに設定する回路と、を有するデータフロー・チップと、
前記データフロー・チップに動作可能に結合されたスケジューラ・チップであって、所定のサービス品質コミットメントを満たすようにフレームをスケジューリングする回路を含むスケジューラ・チップと、
を含む装置。
【請求項４】
進入セクションと、前記進入セクションに対称的に配列された退出セクションとを含む装置であって、前記進入セクションが、
少なくとも第１の入力ポートおよび第１の出力ポートを有する第１のデータフロー・チップと、
前記データフロー・チップに動作可能に結合された第１のネットワーク・プロセッサ複合チップと、
前記データフロー・チップに動作可能に結合された第１のスケジューラ・チップと、
を含み、前記退出セクションが、
少なくとも第２の出力および第２の入力を有する第２のデータフロー・チップと、
前記第２のデータフロー・チップに動作可能に結合された第２のネットワーク・プロセッサ・チップと、
前記第２のデータフロー・チップに動作可能に結合された第２のスケジューラ・チップと、
前記第２のデータフロー・チップを前記第１のデータフロー・チップに帰還接続する通信媒体と、
を含む装置。
【請求項５】
前記第１の出力ポートおよび前記第２の入力ポートに動作可能に結合されたスイッチ・インターフェースをさらに含む、請求項４に記載の装置。
【請求項６】
前記第１の入力ポートおよび前記第２の出力ポートに動作可能に結合されたライン・インターフェースをさらに含む、請求項４に記載の装置。
【請求項７】
進入セクションと、前記進入セクションに対称的に配列された退出セクションとを含む装置であって、前記進入セクションが、
少なくとも第１の入力ポートおよび第１の出力ポートを有する第１のデータフロー・チップと、
前記データフロー・チップに動作可能に結合された第１のネットワーク・プロセッサ・チップと、
前記データフロー・チップに動作可能に結合された第１のスケジューラ・チップと、
を含み、前記退出セクションが、
少なくとも第２の出力ポートおよび第２の入力ポートを有する第２のデータフロー・チップと、
前記第２のデータフロー・チップに動作可能に結合された第２のネットワーク・プロセッサ・チップと、
前記第２のデータフロー・チップに動作可能に結合された第２のスケジューラ・チップと、
前記第２のデータフロー・チップを前記第１のデータフロー・チップに帰還接続する通信媒体と、
前記第１の出力ポートおよび前記第２の入力ポートに動作可能に結合された第１のインターフェースと、
前記第１の入力ポートおよび前記第２の出力ポートに動作可能に結合された第２のインターフェースと、
を含む装置。
【請求項８】
スイッチ・ファブリック、および前記スイッチ・ファブリックに並列に接続された複数のネットワーク・プロセッサを含むネットワーク装置であって、前記ネットワーク・プロセッサがそれぞれ、
進入セクションと、前記進入セクションに対称的に配列された退出セクションとを含み、前記進入セクションが、
少なくとも第１の入力ポートおよび第１の出力ポートを有する第１のデータフロー・チップと、
前記第１のデータフロー・チップに動作可能に結合された第１のネットワーク・プロセッサ複合チップと、
前記データフロー・チップに動作可能に結合された第１のスケジューラ・チップと、
を含み、前記退出セクションが、
少なくとも第２の出力ポートおよび第２の入力ポートを有する第２のデータフロー・チップと、
前記第２のデータフロー・チップに動作可能に結合された第２のネットワーク・プロセッサ・チップと、
前記第２のデータフロー・チップに動作可能に結合された第２のスケジューラ・チップと、
前記第２のデータフロー・チップを前記第１のデータフロー・チップに帰還接続する通信媒体と、
前記第１の出力ポートおよび前記第２の入力ポートに動作可能に結合された第１のインターフェースと、
前記第１の入力ポートおよび前記第２の出力ポートに動作可能に結合された第２のインターフェースと、
を含む、ネットワーク装置。
【請求項９】
複数のコプロセッサを有するネットワーク・プロセッサ複合チップと、
前記ネットワーク・プロセッサに動作可能に接続されたメモリと、
前記ネットワーク・プロセッサチップに動作可能に結合されたデータフロー・チップとを含むネットワーク・プロセッサであって、前記データフロー・チップが、少なくとも出力ポートと、入力ポートと、少なくとも前記入力ポートまたは前記出力ポートをスイッチ・モードまたはライン・モードにセットする制御メカニズムと、を含むデータフロー・チップと、
を含む、ネットワーク・プロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、通信ネットワークに関するものであり、より詳細には、前記ネットワークにおいてフレームまたはパケットを処理するシステムに関するものである。
【背景技術】
【０００２】
インターネットを使用する人々の数の増加、および公衆および専用ネットワークの両方または何れか一方で転送されるデータ量の増加により、パケットを効率的に、かつメディア速度で処理するネットワーク装置の必要性が生じた。ネットワーク・プロセッサは、ネットワーク・パケットを効率的に、かつメディア速度で処理するネットワーク装置の１クラスである。ネットワーク・プロセッサの例が、ＰＣＴ特許出願公開ＷＯ０１／１６７６３、ＷＯ０１／１６７７９、ＷＯ０１／１７１７９、ＷＯ０１／１６７７７、およびＷＯ０１／１６６８２に示されている。これらの特許出願は、インターナショナル・ビジネス・マシーンズ・コーポレーションが所有し、出願している。それらのネットワーク・プロセッサのアーキテクチャは、単一のチップ設計に基づき、非常に良く機能している。
【０００３】
インターネットの人気が高まるにつれ、より多くの人が接続するようになり、それによって転送されるデータの量が増加すると考えられている。さらに、専用ネットワークにおけるデータ量もまた増加することになる。その結果、明らかにされているデータ量の増加に見合う、より速いネットワーク・プロセッサが必要となる。
【特許文献１】
ＰＣＴ特許出願公開ＷＯ０１／１６７６３
【特許文献２】
ＰＣＴ特許出願公開ＷＯ０１／１６７７９
【特許文献３】
ＰＣＴ特許出願公開ＷＯ０１／１７１７９
【特許文献４】
ＰＣＴ特許出願公開ＷＯ０１／１６７７７
【特許文献５】
ＰＣＴ特許出願公開ＷＯ０１／１６６８２
【発明の開示】
【発明が解決しようとする課題】
【０００４】
以下で説明する本発明は、パケットをこれまで可能だったよりも速い速度で処理する、ネットワーク・プロセッサを提供する。
【課題を解決するための手段】
【０００５】
本発明は、ネットワーク・プロセッサ複合チップ（ＮＰＣＣ）と、このネットワーク・プロセッサ複合チップにつながったデータフロー・チップとを含む、ネットワーク・プロセッサ用のモジュール式アーキテクチャを提供する。ＮＰＣＣおよびデータフロー・チップには、それぞれ別々のメモリがつながっている。
【０００６】
当該モジュール式アーキテクチャは、任意選択だがもし使用する場合には、当該データフロー・チップにつながったスケジューラ・チップを提供する。
【０００７】
ＮＰＣＣは、とりわけネットワーク・トラフィックを転送するのと同時に、ソフトウェアを実行する複数のプロセッサを含む。
【０００８】
データフロー・チップは、トラフィックをネットワーク・ポートおよびスイッチ・ファブリック（＝交換機構）・インターフェースの両方または何れか一方から受信したり、またはそれらへ転送したりする主要なデータ経路として働く。この目的のために、データフロー・チップは、データをセル・サイズのかたまりで受信または発送するスイッチ・モード、あるいはデータをパケットまたはフレーム・サイズのかたまりで受信または発送するライン・モード、に選択ポートを設定する回路を備えている。データフロー・チップはまた、データ記憶メモリへの入力のためのアクセス・ポイントを形成する。
【０００９】
スケジューラ・チップは、保証帯域幅、最善努力、ピーク帯域幅など、様々なアルゴリズムを使用してスケジューリングすることができるフロー・キューを保持することによって、サービス品質（ＱｏＳ）を提供する。２つの外付け１８ビットＱＤＲ  ＳＲＡＭ（６６ＭＨｚ）は、最大２５６Ｋのアクティブなフレームが入っている最大６４Ｋのフロー・キューを保持するのに使用される。
【００１０】
一実施形態では、ネットワーク・プロセッサ複合チップ、データフロー・チップおよびスケジューラ・チップを複製して、進入および退出セクションを有するネットワーク・プロセッサ（図１）が形成される。スイッチ・インターフェースおよびメディア・インターフェースは、ネットワーク・プロセッサをスイッチおよび通信メディアにつながっている。
【００１１】
別の実施形態では、１つの実施形態を筐体内部で数回複製して、１つのネットワーク装置を形成している。
【発明を実施するための最良の形態】
【００１２】
参考（特許）文献として本明細書に組み込まれている上記に引用のＥＰＣ出願公開を、必要な程度まで、ネットワーク・プロセッサについての背景情報を教示するために参照するものとする。
【００１３】
図１は、本発明の教示によるネットワーク・プロセッサのブロック図を示す。ネットワーク・プロセッサ１０は、対称的な構造になるように対称的に配置された、進入セクション１２および退出セクション１４を含む。進入セクションは、進入ネットワーク・プロセッサ（ＮＰ）複合チップ１６、進入データフロー・チップ１８および進入スケジューラ・チップ２０を含む。後で説明するように、進入スケジューラ・チップ２０は任意選択であり、進入セクションは進入スケジューラ・チップなしでも申し分なく動作することができる。制御記憶メモリ１６’は、進入ＮＰ複合チップ１６に接続される。データ記憶メモリ・チップ１８’は、進入データフロー・チップ１８に接続される。フロー・キュー・メモリ２０’は、進入スケジューラ・チップ２０に接続される。
【００１４】
引き続き図１を参照すると、退出セクション１４は、進入セクション１２用と表されたチップおよび記憶装置機構を複製したものである。退出セクション１４内のチップおよびメモリは進入セクション１２内のものと同一であるので、進入セクション１２内のチップと同一の、退出セクション１４内部のチップは、同じ基本番号で識別される。したがって、たとえば、退出データフロー・チップは番号１８”で識別され、他も同様である。メディア・インターフェース２２は、Packet Over SONET（ＰＯＳ）フレーマ、イーサネット（Ｒ）ＭＡＣまたは他の様式の適切なインターフェースでよいが、ネットワーク・プロセッサ１０を、伝送メディア２６および２４を介して通信ネットワーク（図示せず）に相互接続する。メディア・インターフェース２２は、ＰＯＳフレーマでも、イーサネット（Ｒ）ＭＡＣでもよい。PacketOver SONETフレーマの場合、それは、１つのＯＣ−１９２、４つのＯＣ−４８、１６個のＯＣ−１３または６４個のＯＣ−３チャネルを相互接続することになる。同様に、イーサネット（Ｒ）ＭＡＣがメディア・インターフェースである場合、それは、１つの１０Ｇｂｐｓチャネル、１０個の１Ｇｂｐｓチャネルまたは６４個の１００Ｍｂｐｓチャネルを接続することができる。あるいは、当該チップに入るまたは当該チップから外に出る１０Ｇｂｐｓのデータを生成する、PacketOver SONET集団内またはイーサネット（Ｒ）集団内のあらゆる配置を、設計者が選択することもできる。
【００１５】
引き続き図１を参照すると、ＣＳＩＸインターポーザ・インターフェース２８は、スイッチ・ファブリック（図示せず）へのインターフェースを提供する。ＣＳＩＸは、ＦＰＧＡ（書替え可能ゲート・アレイ）内に実装される規格である。「ＣＳＩＸ」は、「共通スイッチ・インターフェース・コンソーシアム」を表すのに使われる頭文字である。これは、ネットワーク・プロセッサなどの装置をスイッチ・ファブリックに接続するための共通規格の開発を任務とする業界団体である。その仕様は、www.csix.orgで公開されている。「ＣＳＩＸインターポーザＦＰＧＡ」は、データフロー・チップ上にある「ＳＰＩ−４  フェーズ１」のバス・インターフェースを、ＣＳＩＸ仕様で定義されたＣＳＩＸスイッチ・インターフェース規格に変換する。この機能は、ＡＳＩＣとして設計することもできるが、十分に単純であるので、ＡＳＩＣの設計および製造のコスト高および複雑さを避けて、ＦＰＧＡとして実装することもできる。本発明の教えるところから逸脱することが無しに他の様式のインターフェースを使用することもできることに留意されたい。スイッチ・ファブリックは、ＰＲＩＺＭＡとして知られているＩＢＭスイッチでもよく、また、他のいかなるクロスバー・スイッチを使用することもできる。退出データフロー・チップ１８”からの情報は、ＷＲＡＰと名付けた導体を介して、進入データフロー・チップ１８にフィードバックされる。チップ内部での情報のおおよそのデータ・レートは、メディア・インターフェースでは１０Ｇｂｐｓ、スイッチ・インターフェースでは１４Ｇｂｐｓであると示されている。これらの数は、代表的なスイッチ速度に過ぎず、これより速い速度を、図１に示すアーキテクチャから得ることもできる。ネットワーク・プロセッサの対称的な半分のうち一方を、本発明の精神および範囲から逸脱することなく、スループットを落として使用できることにも留意されたい。上で述べたように、ネットワーク・プロセッサの複製された半分は、同一のチップ・セットを含む。したがって、以下で述べる各チップ・セットの説明は、チップが退出側または進入側のいずれであっても、チップの構造および機能の範囲にわたっていることを意図している。
【００１６】
図２は、複数のステーションまたはネットワーク（図示せず）を相互接続する装置のブロック図を示す。ネットワーク装置２８は、ルータでも、類似の装置でもよい。ネットワーク装置２８は、筐体２８’を含み、その中で、制御点サブシステム３０およびネットワーク・プロセッサ３２〜Ｎが搭載されスイッチ・ファブリック３４によって相互接続されている。一実施形態では、スイッチ・ファブリックは、１４Ｇｂｐｓのポートをサポートする、６４×６４の行列である。ネットワーク装置の各内部要素は、スイッチ・ファブリック・インターポーザによってスイッチ・ファブリック３４に接続された、ネットワーク・プロセッサ（ＮＰ）チップ・セットを含む。ネットワーク・プロセッサ・チップ・セットとは、本明細書で説明し、図１に示した、６個のチップに与えられる名前である。制御点サブシステムは、ネットワーク装置全体を管理する制御点コードを実行する。さらに、ネットワーク・プロセッサ３２〜Ｎは、Packet Over SONETフレーマまたはイーサネット（Ｒ）ＭＡＣに接続される。本明細書で述べているように、Packet OverSONETフレーマは、１つのＯＣ−１９２チャネル、４つのＯＣ−４８チャネル、１６個のＯＣ−１２チャネルまたは６４個のＯＣ−３チャネルをサポートすることができる。同様に、イーサネット（Ｒ）ＭＡＣは、１つの１０ＧＢのイーサネット（Ｒ）・チャネル、１０個の１ＧＢのイーサネット（Ｒ）・チャネルまたは６４個の１００Ｍｂｐｓのイーサネット（Ｒ）・チャネルをサポートすることができる。矢印は、ネットワーク装置２８内部でのデータフローの方向を示す。図２のネットワーク・プロセッサ・チップ・セットはそれぞれ、図１で説明し示した、複製されたチップ・セットから形成される。別の言い方をすると、図１に示すチップ・セットは、ネットワーク・プロセッサ・チップ・セットと呼ばれ、図２に示すネットワーク装置を構築するのに使用される。
【００１７】
あるいは、３０、３２〜Ｎを、筐体２８’内部のブレード（＝翼板）と見ることができる。この構成において、３０はプロセッサ・ブレードとなり、３２〜Ｎは、装置に接続されたブレードとなる。スイッチ・ファブリック３４は、ブレード間の通信を提供する。
【００１８】
図３は、ネットワーク・プロセッサ複合チップ１６のブロック図を示す。ネットワーク・プロセッサ複合チップは、ネットワーク・トラフィックの転送の任を担うソフトウェアを実行する。ネットワーク・プロセッサ複合チップは、テーブル探索、ポリシング（policing）、計数などの共通動作を実施するための、以下で説明するハードウェア補助機能を含む。ネットワーク・プロセッサ複合チップ１６は、ネットワーク・プロセッサ複合チップ１６を制御記憶メモリ１６’につなげる、制御記憶アービタ３６を含む。制御記憶メモリ１６’は、番号Ｄ６、Ｓ１、Ｄ０Ａ、Ｄ１Ａ、Ｓ０Ａ、Ｄ０Ｂ、Ｄ１Ｂ、Ｓ０ＢおよびＱ０で識別される、複数の様々なメモリ様式を含む。メモリ要素はそれぞれ、適切なバスで、制御記憶アービタ３６に接続される。動作の際、制御記憶アービタ３６は、ネットワーク・プロセッサ複合チップ１６がメモリ１６’へ記憶するのを可能とするインターフェースを提供する。
【００１９】
引き続き図３を参照すると、制御メモリはそれぞれ、様々な形式の情報を格納することに留意されたい。各メモリ・モジュールが格納する情報の形式がその中にリストされる。たとえば、４０５ＰｏｗｅｒＰＣとラベル付けされたＤ６は、ＮＰ複合チップ１６に組み込まれたＰｏｗｅｒＰＣコアのための情報を格納する。同様に、Ｓ１で示す記憶装置要素は、リーフ、ダイレクト・テーブル（ＤＴ）、パターン探索制御ブロック（ＰＳＣＢ）を格納する。この情報は、テーブルのルックアップおよび他のツリー探索動作を行うのに必要である。同様に、Ｄ０Ａは、リーフ、ＤＴ、ＰＳＣＢなどの情報を格納する。同様に、名前がついている他の記憶装置は、その中で識別される情報を格納する。こうしたメモリに格納される情報の形式は、ネットワーク・プロセッサ技術において公知である。この情報は、データが受信されて、ネットワーク内部の選択されたポートに配送されることを可能にする。この形式の情報および使用法は、従来技術において公知であり、それ以上に詳しい説明は本発明の範囲外なので説明しないものとする。
【００２０】
引き続き図３を参照すると、ＱＤＲアービタ３８は、ポリシー制御ブロックとカウンタとを格納するＱ０メモリ・モジュールに、カウンタ・マネージャ４０およびポリシー・マネージャ４２を結合する。カウンタ・マネージャは、チップ内部の統計カウンタの保持を助け、制御記憶アービタ３６および組込みプロセッサ複合体（ＥＰＣ）４４に接続される。ポリシー・マネージャ４２は、着信トラフィック・フローのポリシングを助ける。「ポリシング」とは、ネットワーク業界において一般に理解されている用語であり、特定のトラフィック・フローのデータ・レートを制限することができる機能を指す。たとえば、インターネット・サービス・プロバイダは、顧客が、インターネット接続において１００Ｍビットのデータしか伝送できないようにすることができる。ポリシング機能は、１００Ｍビットのトラフィックが通過するようにすることになり、それを超えるものは通過させない。それを超えるものはどれも破棄されることになる。顧客がより高いデータ・レートを欲するのであれば、インターネット・サービス・プロバイダにより多くのお金を払って、より高いデータ・レートを通すようにポリシング機能を調整してもらうことができる。ポリシング機能は、選択可能なパラメータおよびアルゴリズムを有する二重のリーキー・バケット（水漏れバケツ型）・メータを、トラフィック・フローごとに保持している。
【００２１】
引き続き図３を参照すると、組込みプロセッサ複合体（ＥＰＣ）４４は、ネットワーク・トラフィックの並列処理を提供する、１２個の双頭プロトコル・プロセッサ・ユニット（ＤＰＰＵ）を含んでいる。ネットワーク・トラフィックは、ディスパッチャ（＝発送器）・ユニット４６によって、ＥＰＣ４４に提供される。ディスパッチャ・ユニット４６は、割込みおよびタイマ４８と、ハードウェア分類器５０とにつながっている。ハードウェア分類器５０は、フレームがＥＰＣ４４に転送される前に、それを分類するのを助けるものである。ディスパッチャに入れられる情報は、フレーム変更論理５２とデータフロー・アービタ５４とにつながった、パケット・バッファ５０を介して提供される。データフロー・アービタ５４は、データフロー・インターフェースにつながったチップ毎の（chip-by-chip、Ｃ２Ｃ）マクロ５６に接続されている。Ｃ２Ｃマクロは、ネットワーク・プロセッサ・チップとデータフロー・チップの間の効率的なデータ交換を可能にするインターフェースを提供する。
【００２２】
データフロー・アービタ５４は、データフロー・マネージャ５８、フレーム変更５２およびフリー・リスト・マネージャ６０のための調停を行う。データフロー・マネージャ５８は、ＮＰ複合チップ１６とデータフロー・チップの間のデータの流れを制御する。フリー・リスト・マネージャは、使用可能な、バッファの空きリストを提供する。完了ユニット６２は、ＥＰＣ４４につながっている。完了ユニットは、ＥＰＣ４４から出るフレームが、受信されたときと同じ順序になるようにする機能を提供する。キュー作成バッファ６４は、完了ユニット６２に接続され、完了ユニットから受信したフレームをキューに入れ、フレームは、チップ間のインターフェースを介して転送される。パケット・バッファ・アービタ６６は、パケット・バッファ５０へのアクセスに対する調停を行う。構成レジスタ６８は、チップを構成するための情報を格納する。命令メモリ７０は、ＥＰＣ４４によって利用される命令を格納する。命令メモリ７０内のブート・コードに対するアクセスは、直列／並列マネージャ（ＳＰＭ）７２によって実現される。ＮＰ複合チップの電源投入後に、ＳＰＭは、初期ブート・コードをＥＰＣにロードする。
【００２３】
割込みおよびタイマ４８は、ＥＰＣ４４に注意を求めることができる割込み条件を管理する。ＣＡＢアービタ７４は、複合チップ１６内のレジスタへのアクセスを望む様々な構成要素のために、調停を行う。セマフォ・マネージャ７６は、あるプロセッサが、選択されたメモリまたはメモリ内の位置に他のプロセッサがアクセスするのを締め出すことを可能にする、セマフォ機能を管理する。ＰＣＩバスは、４０５ＰｏｗｅｒＰＣコアへの外部からのアクセスを提供する。オンチップ・メモリＨ０Ａ、Ｈ０Ｂ、Ｈ１ＡおよびＨ１Ｂが設けられている。このオンチップ・メモリは、リーフ、ＤＴまたはパターン探索制御ブロック（ＰＳＣＢ）の格納に使用される。一実装形態では、Ｈ０ＡおよびＨ０Ｂは３Ｋ×１２８であり、Ｈ１ＡおよびＨ１Ｂは３Ｋ×３６である。これらのサイズは例示的なものに過ぎず、設計によっては他のサイズを選択することができる。
【００２４】
引き続き図３を参照すると、１２個のＤＰＰＵはそれぞれ、２つのピココード・エンジンを含む。各ピココード・エンジンは、２つのスレッドをサポートする。オーバヘッドがゼロのコンテキスト切換えが、スレッド間でサポートされる。ＤＰＰＵ用の命令は、命令メモリ７０内に格納される。プロトコル・プロセッサは、約２５０ｍｈｚの周波数で動作する。ディスパッチャ・ユニット４６は、発送機能を提供し、着信フレームをアイドル状態のプロトコル・プロセッサに分配する。１２個の入力キュー・カテゴリは、フレームが特定のスレッドに向けられるように、またはすべてのスレッドに分配されるようにすることを可能にする。完了ユニット６２は、フレームの順序が、出力においても、プロトコル・プロセッサの入力に送達されたときと同じに維持されるのを確実にするよう機能する。４０５ＰｏｗｅｒＰＣ組込みコアは、より高いレベルのシステム管理ソフトウェアの実行を可能にする。ＰｏｗｅｒＰＣは、約２５０ｍｈｚで動作する。外付けＤＤＲ  ＳＤＲＡＭ（Ｄ６）への１８ビットのインターフェースは、最大１２８メガバイトの命令の記憶を提供する。ＤＤＲ  ＳＤＲＡＭインターフェースは、１２５ｍｈｚで動作する（２５０ｍｈｚ  ＤＤＲ）。３２ビットのＰＣＩインターフェース（３３／６６ｍｈｚ）は、他の制御点機能への接続のために、またはＭＡＣやフレーマ構成要素といった周辺回路を構成するために、提供される。
【００２５】
引き続き図３を参照すると、ハードウェア分類器５０は、ネットワーク・フレームの分類を行う。ハードウェア分類器は、フレームがプロトコル・プロセッサに発送されると、公知の（レイヤ２およびレイヤ３のフレーム形式）を識別するためにそれを解析する。分類器５０の出力は、ピココード・スレッドが各フレームの処理を開始する前に、その状態を事前調整するのに使用される。
【００２６】
ネットワーク・プロセッサ複合チップ１６が提供する多くの機能の中に、テーブル探索がある。探索は、選択されたＤＰＰＵ、外付けメモリ１６’、またはオンチップ・メモリＨ０Ａ、Ｈ０Ｂ、Ｈ１ＡもしくはＨ１Ｂ、によって実施される。テーブル探索エンジンは、テーブル探索を実施するためのハードウェア的な補助を提供する。テーブルは、パトリシア・ツリーとして保持され、探索は、フローに関係する情報を格納するためにピココードが使用する「リーフ」項目のアドレスを返して終了する。３つのテーブル探索アルゴリズムがサポートされる。すなわち、固定マッチ（ＦＭ）、最長プレフィックス・マッチ（ＬＰＭ）、および複合規則に基づく探索用のソフトウェア管理ツリー（ＳＭＴ）アルゴリズムである。これらの探索アルゴリズムは本発明の範囲外であり、本明細書ではこれ以上は説明しないものとする。
【００２７】
制御記憶メモリ１６’は、数百万フローの有線（回線）速度の分類をサポートするための、大型ＤＲＡＭテーブルおよび高速ＳＲＡＭテーブルを提供する。制御記憶は、２つのオンチップ３Ｋ×３６ＳＲＡＭ（Ｈ１ＡおよびＨ１Ｂ）と、２つのオンチップ３Ｋ×１２８ ＳＲＡＭ（Ｈ０ＡおよびＨ０Ｂ）と、４つの外付け３２ビットＤＤＲ  ＳＤＲＡＭ（Ｄ０Ａ、Ｄ０Ｂ、Ｄ１Ａ、およびＤ１Ｂ）と、２つの外付け３６ビットＺＢＴ  ＳＲＡＭ（Ｓ０ＡおよびＳ０Ｂ）と、１つの外付け７２ビットＺＢＴ  ＳＲＡＭ（Ｓ１）とを含む。７２ビットＺＢＴ  ＳＲＡＭインターフェースは、ルックアップ性能の改善のために内容アドレス・メモリ（ＣＡＭ）を接続するため、任意選択で使用することがあるものである。外付けＤＤＲ  ＳＤＲＡＭおよびＺＢＴ  ＳＲＡＭは、最大１６６ｍｈｚの周波数で動作する（３３３ｍｈｚ  ＤＤＲ）。図３のメモリ要素のそれぞれのバスに関連づけられた、１８、６４、３２などの数字は、それぞれのメモリ・ユニットを制御記憶アービタに相互接続するデータ・バスのサイズを表す。たとえば、ＰｏｗｅｒＰＣメモリＤ６を制御記憶アービタ３６に相互接続するバスに加えての１８は、データ・バスが１８ビット幅であることを示し、その他についても同様である。
【００２８】
引き続き図３を参照すると、ネットワーク・プロセッサ複合チップ１６によって提供される他の機能には、フレーム編集、統計収集、ポリシングなどがある。フレーム編集に関して、ピココードは、データフロー・チップ（本明細書で説明済み）に接続されたデータ記憶メモリに読出しおよび書込みを行うことによって、フレームを直接編集することができる。性能をより高めるために、ピココードは、出力ポートを介してフレームが伝送されるときに良く知られた変更を実施するようデータフロー・チップに命令するためのフレーム変更コマンドを生成することもできる。
【００２９】
統計情報に関して、カウンタ・マネージャ４０は、統計カウンタを保持する際にピココードを助ける機能を提供する。オンチップの１Ｋ×６４ＳＲＡＭおよび外付け３２ビットＱＤＲ  ＳＲＡＭ（ポリシー・マネージャと共用）は、１０Ｇｂｐｓのフレーム間隔レートで起こるイベントをカウントするために使用してもよい。外付けの制御記憶ＤＤＲ  ＳＤＲＡＭ（テーブル探索機能と共用）の１つは、より遅いレートで起こるイベント用の多数のカウンタを保持するのに使用してもよい。ポリシー・マネージャ４２は、着信トラフィック・フローのポリシングにおいて、ピココードを助ける機能を果たす。ポリシー・マネージャは、選択可能なパラメータおよびアルゴリズムを有する、最大１６Ｋのリーキー・バケット（水漏れバケツ型）・メータを保持する。１Ｋのポリシング制御ブロック（ＰｏｌＣＢ）を、オンチップのＳＲＡＭ内に保持してもよい。ＰｏｌＣＢの数を１６Ｋに増やすために、任意選択の外付けＱＤＲ  ＳＲＡＭ（カウンタ・マネージャと共用）を追加してもよい。
【００３０】
図４は、データフロー・チップのブロック図を示す。データフロー・チップは、ネットワーク・ポートおよびスイッチ・ファブリック・インターフェースの両方またはいずれか一方を介してデータを送受信する、主要なデータ経路として働く。データフロー・チップは、データ記憶スライス０〜データ記憶スライス５と名付ける大型データ記憶メモリへのインターフェースを提供する。各データ記憶スライスは、ＤＤＲ  ＤＲＡＭから形成される。このデータ記憶は、ネットワーク・プロセッサ・サブシステムを介して流れるデータ用のバッファとして働く。データフロー・チップ内の装置は、処理のためにフレーム・ヘッダをネットワーク・プロセッサ複合チップに発送し、ネットワーク・プロセッサ複合チップからの、フレームをその目標の宛先に転送するようとの要求に応答する。データフロー・チップは、データをデータフロー・チップに送り込む入力バスと、データをデータフロー・チップから送出する出力バスとを有する。バスは６４ビット幅であり、ＳＰＩ−４フェーズ１として知られるオプティカル・インターネットワーキング・フォーラムの標準インターフェースに準拠している。しかし、本発明の教えるところから逸脱することなく、他の類似のバスを使用することもできる。バスのそれぞれの上にある斜線は、伝送線がバスであることを示す。ネットワーク・プロセッサ（ＮＰ）インターフェース・コントローラ７４は、データフロー・チップをネットワーク・プロセッサ複合（ＮＰＣ）チップに接続する。バス７６および７８は、ＮＰインターフェース・コントローラ７４からＮＰＣチップへ、また、ＮＰＣチップからＮＰインターフェース・コントローラ７４へ、データを転送する。ＢＣＤアービタ８０は、１対のバス８２と８４を介して記憶装置８６につながっている。記憶装置８６は、ＱＤＲ  ＳＲＡＭから構成され、バッファ制御ブロック（ＢＣＢ）リストを記憶する。データフロー・チップを介して流れるフレームは、データ記憶メモリ内の一連の６４バイトのバッファに記憶される。ＢＣＢリストは、データフロー・チップのハードウェアによって、フレームを形成するバッファのリンク・リストを保持するのに使用される。ＦＣＢアービタ８８は、バス９０および９２を介してメモリ９４に接続される。メモリ９４は、ＱＤＲ  ＳＲＡＭから構成され、フレーム制御ブロック（ＦＣＢ）リストを記憶する。ＦＣＢリストは、データフロー・チップのハードウェアによって、送信コントローラ１１０を介した送信を待つフレームのキューを形成するリンク・リストを保持するのに使用される。Ｇ−ＦＩＦＯアービタは、１対のバスを介してメモリに接続される。このメモリは、ＱＤＲ  ＳＲＡＭから構成され、Ｇ−Ｑｕｅｕｅリストを格納する。Ｇ−Ｑｕｅｕｅリストは、データフロー・チップのハードウェアによって、ＮＰインターフェース・コントローラ７４を介したＮＰＣチップへの発送を待つフレームのキューを形成するリンク・リストを保持するのに使用される。
【００３１】
引き続き図４を参照すると、ＮＰインターフェース・コントローラ７４は、バッファ受取りおよび清算ブロック９６に接続される。バッファ受取りおよび清算ブロックは、ランダム早期破棄（ＲＥＤ）などの公知の輻輳制御アルゴリズムを実装する。これらのアルゴリズムは、着信データ・レートが発信データ・レートを超えると起こり得る輻輳（通信回線の混雑状態）を防止または軽減するのに役立つ。バッファ受諾および制御ブロックの出力は、キュー作成ＦＣＢ信号を生成し、それがスケジューラ・インターフェース・コントローラ９８中に送られる。スケジューラ・インターフェース・コントローラ９８は、バス１００および１０２を介した、スケジューラへのインターフェースを形成する。キュー作成ＦＣＢ信号は、スケジューラ・チップが保持するフロー・キューへのフレームの転送を開始するために、駆動される。
【００３２】
引き続き図４を参照すると、データフロー・チップは、受信器コントローラ１０４を含み、その中に（これ以降で説明する）受信器ポート構成装置１０６が備えられている。受信器コントローラ１０４の機能は、データフロー・チップに入って来てデータ記憶メモリに記憶されるべきデータを受信することである。受信器コントローラ１０４は、データを受信すると、書込み要求信号を生成し、この信号は、データ記憶アービタ１０８に送り込まれる。次いで、データ記憶アービタ１０８は、メモリ・ベクトルを形成し、このベクトルは、データ記憶スライスをデータフロー・チップに相互接続するバスの１つを介してメモリを選択するために、ＤＲＡＭコントローラの１つに転送される。
【００３３】
受信器ポート構成回路１０６は、受信ポートを、ポート・モードまたはスイッチ・モードに構成する。ポート・モードに構成された場合、データはフレーム・サイズのブロックで送受信される。同様に、スイッチ・モードの場合、データは、スイッチを介して送信することができるデータ・サイズと等価なかたまりで受信される。送信コントローラ１１０は、選択されたポート（図示せず）に、ＳＰＩ−４フェーズ１でデータが送信される準備をする。送信ポート構成回路１１２は、送信コントローラ１１０内に設けられ、送信コントローラを、ポート・モードまたはスイッチ・モードに構成する。受信ポートまたは送信ポートをポート・モードまたはスイッチ・モードに構成できるようにすることによって、交換装置への、またはイーサネット（Ｒ）やＰＯＳ通信ネットワークなどの伝送媒体への相互接続に、単一のデータフロー・チップを使用することができる。送信コントローラ１１０がデータ記憶メモリへのアクセス権を得るためには、送信コントローラ１１０は読出し要求を生成し、それをデータ記憶アービタが使用して、選択されたメモリ・スライスにアクセスするためのメモリ・ベクトルを生成する。
【００３４】
引き続き図４を参照すると、送受信インターフェースは、ポート・モードまたはスイッチ・モードになるように構成することができる。ポート・モードでは、データフロー（・チップ）は、イーサネット（Ｒ）ＭＡＣやPacket Over SONET（ＰＯＳ）フレーマなど様々なネットワーク媒体の接続のためにフレームをやりとりする。スイッチ・モードにおける一実施形態では、データフロー・チップは、セル・ベースのスイッチ・ファブリックへの接続のために、６４バイトのセル・セグメントの形でフレームをやりとりする。データフローの送受信インターフェースによって実装される物理バスは、ＯＩＦ  ＳＰＩ−４フェーズ１（最大２５０ｍｈｚで動作する６４ビットのＨＳＴＬデータ・バス）である。進入データ記憶メモリの輻輳を軽減するための余分の帯域幅を提供するために、スイッチ・インターフェース・モードで動作しているときに、最大１４．３Ｇｂｐｓのスループットがサポートされる。フレームは、スイッチ・インターフェースを介しては最大６４の目標ネットワーク・プロセッサ・サブシステムに、また、ポート・インターフェースを介しては最大６４の目標ポートに、アドレス指定することができる。ＳＢＩ−４フェーズ１インターフェースは、商用ＰＯＳフレーマの直接の接続をサポートし、書替え可能ゲート・アレイ（ＦＰＧＡ論理）を介して商用イーサネット（Ｒ）ＭＡＣおよびスイッチ・ファブリック・インターフェース（ＣＳＩＸなど）に適合させることができる。
【００３５】
引き続き図４を参照すると、データフロー・チップに接続された大型データ・メモリ１８’は、着信フレーム・レートが発信フレーム・レートを超えたときにトラフィックのバースト（＝集中）を吸収するための、ネットワーク・バッファを提供する。メモリはまた、ＩＰフラグメントを再組立てする貯え場所としてや、また、ＴＣＰ終了など、アプリケーションで起りうる再伝送を待つフレームのための貯え場所としても働く。６個の外付け３２ビットＤＤＲ  ＤＲＡＭインターフェースが、ポート・インターフェース用には１０Ｇｂｐｓ、スイッチ・インターフェース用には１４．３Ｇｂｐｓの持続した送受信帯域幅を提供するために、サポートされる。こうした帯域幅は例であり、本発明の範囲に対する限定と解釈すべきではないことに留意されたい。ネットワーク・プロセッサ複合チップのピココードによるデータ記憶メモリの直接の読出し／書込みのために、追加の帯域幅が確保されている。
【００３６】
データ記憶メモリは、６４バイト・バッファのリンク・リストを介して管理される。６個のＤＤＲ  ＤＲＡＭが、最大２００万個の６４バイト・バッファからなる記憶装置をサポートする。ＤＤＲ  ＤＲＡＭメモリは、約１６６ｍｈｚで動作する（３３３ｍｈｚ  ＤＤＲ）。バッファのリンク・リストは、それぞれ、２つの外付けＱＤＲ  ＳＲＡＭ８６および９４内で保持される。データフローは、異なる出力ポートまたは目標の宛先に向うことになっているフレームのために別々の出力キューが保持されるという、（「仮想出力キュー」）として知られる技術を実装する。この方式は、１つの出力ポートが閉塞された場合に、「ライン先頭の閉塞」が起こるのを防止する。各ポートごとに、予約された帯域幅および予約されていない帯域幅のトラフィックをそれぞれ独立にキューに入れるのを可能にするために、高優先順位キューおよび低優先順位キューが保持される。これらのキューは、データフロー・チップの送信コントローラ１１０内に保持される。
【００３７】
図５は、データフロー・チップ内に位置する受信器ポート構成回路１０４および送信ポート構成回路１０６のブロック図を示す。これらの回路は、送信および受信器コントローラの機能を、スイッチ・モードまたはライン・モードで動作するように構成するものである。受信器ポート構成回路は、受信器コントローラ構成レジスタ１２４、セレクタ１２６、Ｒｘスイッチ・コントローラ１２８およびＲｘライン・コントローラ１３０を含む。Ｒｘ（受信器）スイッチ・コントローラ１２８は、一連の固定長セルを受信し、それをフレームに再組立てする。Ｒｘ（受信器）ライン・コントローラ１３０は、連続したバイトのデータを受信して、それをフレームに構成する。セレクタ１２６は、受信器コントローラ構成レジスタ１２４の制御の下で、Ｒｘコントローラ１２８からの出力か、またはＲｘライン・コントローラ１３０からの出力かの何れかを選択する。選択された出力にあるデータは、データ記憶メモリに書き込まれる。
【００３８】
引き続き図５を参照すると、送信ポート構成回路は、送信コントローラ構成レジスタ１３２、Ｔｘ（送信）スイッチ・コントローラ１３６、Ｔｘライン・コントローラ１３８、およびセレクタ１３４を含む。Ｔｘスイッチ・コントローラ１３６は、データ記憶メモリからフレームを読み出して、それを連続したバイトのストリームにセグメント化する。セレクタ１３４は、送信コントローラ構成レジスタの制御の下で、Ｔｘスイッチ・コントローラ１３６からの出力か、またはＴｘライン・コントローラ１３８からの出力かの何れかを選択する。
【００３９】
スイッチ・モードでは、受信器コントローラは、入力バスから、フレームを一連の固定長セルとして受信して、それをフレームに再組立てし、このフレームがデータ記憶メモリに書き込まれる。また、スイッチ・モードでは、送信コントローラは、フレームをデータ記憶メモリから読み出して、それを一連の固定長セルにセグメント化した後で出力バスを介して送信する。ライン・モードでは、受信器コントローラは、入力バスから、フレームを連続したバイト・ストリームとして受信し、このフレームがデータ記憶メモリに書き込まれる。また、ライン・モードでは、送信コントローラは、フレームをデータ記憶メモリから読み出して、それを連続したバイト・ストリームとして出力バスを介して送信する。送信コントローラおよび受信器コントローラは、スイッチ・モードまたはライン・モードで動作するように、それぞれ独立に構成することができる。ＮＰＣチップは、動作モードを構成するために、データフロー・チップ内部の２つの構成レジスタ・ビットに書き込みを行う。一方のビットは、送信コントローラが、スイッチ・モードで動作するか、ライン・モードで動作するかを構成する。他方のビットは、構成する受信コントローラが、スイッチ・モードで動作するか、ライン・モードで動作するかを構成する。送信コントローラは、送信のスイッチ・モードおよびライン・モードの動作を実施する、別々の回路を含む。送信コントローラに関連づけられたレジスタ・ビットは、送信のスイッチ・モード回路とライン・モード回路のどちらを稼動させるかを選択する。同様に、受信コントローラは、受信のスイッチ・モードおよびライン・モードの動作を実施する、別々の回路を含む。受信コントローラに関連づけられたレジスタ・ビットは、受信のスイッチ・モード回路とライン・モード回路のどちらを稼動させるかを選択する。
【００４０】
図６は、スケジューラ・チップのブロック図を示す。スケジューラ・チップは任意選択であるが、それを使用すると、より高いサービス品質がネットワーク・プロセッサ・サブシステムに提供される。スケジューラは、最大６５，５３６個のネットワーク（割り当てられたサービス品質レベルごとに個別にスケジューリングされるトラフィック「フロー」）を可能にする。スケジューラ・チップは、データフロー・インターフェース１１２と、メッセージＦＩＦＯバッファ１１４と、キュー・マネージャ１１６と、カレンダーおよびリング１１８と、勝者１２０と、メモリ・マネージャ１２２と、ＱＤＲ０およびＱＤＲ１と名付けた外付けメモリとを含む。ここに挙げた構成要素は、図６に示すように相互接続される。データフロー・バス・インターフェースは、スケジューラとデータフロー・チップの間の相互接続バスを提供する。チップセット・メッセージは、このバスを使用するモジュールの間で交換される。このインターフェースは、データ・ピンごとに最大５００Ｍｂｐｓの能力がある、ダブル・データ・ソース同期インターフェースである。専用の８ビット送信バスおよび専用の８ビット受信バスがあり、それぞれ４Ｇｂｐｓの能力がある。情報を転送するためにインターフェースを経由するメッセージは、図６で識別してある。
【００４１】
メッセージＦＩＦＯバッファ１１４は、複数のFlowEnqueue.Request、CabRead.requestおよびCabWrite.requestメッセージに対して、バッファ作成を行う。一実施形態では、バッファは、メッセージ９６個分の容量をもつ。もちろん、本発明の範囲または精神から逸脱することなく、９６以外の数のメッセージをバッファに入れることもできる。スケジューラは、これらのメッセージを、それが届いた順序に、ＴＩＣＫごとに１つの割合で処理する。メッセージが、チップ間のインターフェースを介して、ＴＩＣＫごとに１つを超える割合で送られる場合、そのメッセージは、将来の処理のためにバッファに入れられる。
【００４２】
引き続き図６を参照すると、キュー・マネージャ・ブロックは、着信メッセージを処理して、どのような動作が必要かを決定する。フロー・キュー作成要求メッセージのために、フロー・キュー作成情報がメモリから取り出され、フレームをフロー・キュー・フレーム・ストリームに追加すべきか、それとも破棄すべきかを決定するためにそれが調べられる。さらに、将来、それぞれCabRead.request、CabWrite.response、CabWrite.responseメッセージをサービスするために、フロー・キューが接続されたりカレンダーに書き込まれたりすることがある。
【００４３】
カレンダーおよびリング・ブロック１１８は、低遅延持続可能（ＬＬＳ）および通常遅延持続可能（ＮＬＳ）の両方のパケット・レートを有する保証帯域幅を提供するのに用いられる。後で説明するように、カレンダーおよびリング・ブロック内には、様々な様式のリングがある。こうしたリングの１つであるＷＦＱリングが、重みづけ均等化キュー作成アルゴリズムによって使用される。時間にかかわらず、リング内の位置に基づいてエントリが選択される（処理保存）。
【００４４】
勝者ブロック１２０は、どのフローが次にサービスされるかを選択するために、カレンダーとリングの間の調停を行う。
【００４５】
メモリ・マネージャは、データを調整し、外付けのＱＤＲ０と、ＱＤＲ１と、内部のフロー・キュー制御ブロック（ＦＱＣＢ）またはエージング・アレイとからの読出しと、そこへの書込みを行う。ＱＤＲ０の代わりに、４ＫのＦＱＣＢまたは６４Ｋのエージング・メモリを、タイム・スタンプが押されたエージング情報を維持するために使用することもできる。ＦＱＣＢエージング・メモリは、フローを探索し、古いタイム・スタンプのフローを無効にする。ＱＤＲ０およびＱＤＲ１はどちらも、フレーム制御ブロック（ＦＣＢ）およびＦＱＣＢを記憶する外付けメモリである。
【００４６】
スケジューラは、「保証帯域幅」、「最善努力、」、「ピーク帯域幅」など、様々なアルゴリズムを使用してスケジューリングすることができるフロー・キューを保持することによって、サービス品質を提供する。ＱＤＲ０およびＱＤＲ１は、キュー作成された、最大２５６Ｋのフレームのための最大６４Ｋのフロー・キュー、を記憶するのに用いられる。スケジューラは、フロー・キュー毎の閾値に基づいてフレームが破棄されるようにすることによって、データフロー輻輳制御アルゴリズムを補うものである。
【００４７】
引き続き図６を参照すると、キュー・マネージャ１１６は、キュー作成機能を管理する。キュー作成機能は、以下のように動作する。すなわち、フレームのリンク・リストが、フローに関連づけられる。フレームは、常にリンク・リストの末尾でキューに入れられる。フレームは、常にリンク・リストの先頭でキューから出される。フレームは、ブロック１１８内の４つのカレンダー（図示せず）の１つに接続されている。この４つのカレンダーは、ＬＬＳ、ＮＬＳ、ＰＢＳ、ＷＦＱである。どのフローをサービスするかという選択が、ＬＬＳ、ＮＬＳ、ＰＢＳ、ＷＦＱの順序でカレンダーを調べることで行われる。フロー・キューは、どの所定の方法でも、目標ポート／目標ブレードにグループ化されない。各フローのポート番号は、ＦＱＣＢ内のフィールドを使って、ユーザによって書替え可能である。同じポートｉｄを有するすべてのフローが、同じＷＦＱカレンダーに接続される。サービス品質パラメータは、破棄フローに適用される。破棄フローのアドレスは、ユーザによって選択可能であり、構成時に設定される。
【００４８】
上で述べたように、４つのカレンダーがある。ＬＬＳ、ＮＬＳおよびＰＢＳは時間に基づくものである。ＷＦＱは、待ちに基づくものである。フローは、そのサービス品質パラメータに合った方法でカレンダーに接続される。たとえば、フローが保証された帯域幅の構成要素を有する場合は、時間に基づくカレンダーに接続される。ＷＦＱ構成要素を有する場合は、ＷＦＱカレンダーに接続される。
【００４９】
データフローからスケジューラへのポートの逆方向圧力は、要求メッセージがデータフロー・チップから生じたというポート状況によって起こる。ポート閾値を超えていると、そのポートに関連づけられたすべてのＷＦＱおよびＰＢＳトラフィックは、スケジューラ内に保持される（選択論理は、これらのフレームを潜在的な勝者とは見なさない）。逆方向圧力が取り除かれると、そのポートに関連づけられたフレームは、再度勝者になる資格を得る。スケジューラは１つのフレームを処理して、３６ナノ秒おきにキューから出し、計２，７００万フレーム／秒となる。ＬＬＳ、ＮＬＳ、およびＰＢＳカレンダー用のフローごとのスケジューリング率は、１０Ｇｂｐｓ〜１０Ｋｂｐｓである。ＷＦＱカレンダーには率は適用されない。
【００５０】
サービス品質情報は、フロー・キュー制御ブロックＦＱＣＢのＱＤＲ０およびＱＤＲ１に記憶される。フロー・キュー制御ブロックは、持続サービス率、ピーク・サービス率、重みづけ均等化キュー特性、ポートｉｄなどの、フローの特性を記述する。ポートのキュー作成要求がスケジューラに送られると、以下のことが行われる。
・PortEnqueueからの２ビットと、ＦＱＣＢ中のフローの閾値とを足したものを使用して、フレームが破棄の可能性についてテストされる。このフレームを破棄すべきである場合、ＦＱＣＢポインタは、PortEnqueue.request中のＦＱＣＢから破棄ＦＱＣＢを指すように変更される。
・そのフレームが、ＦＱＣＢに関連づけられたＦＣＢ連鎖の末尾に追加される。
・フローがカレンダー接続の資格がある場合、適切なカレンダー（ＬＬＳ、ＮＬＳ、ＰＢＳ、またはＷＦＱ）に接続される。
・時間が経過すると、選択論理は、どのフローがサービスされるべきかを決定する（最初にＬＬＳ、次いでＮＬＳ、次いでＰＢＳ、次いでＷＦＱ）。ポートの閾値を超えている場合、そのポートに関連づけられたＷＦＱおよびＰＢＳは、選択される資格がない。
・あるフローが勝者として選択されると、そのフローの先頭にあるフレームがキューから出され、PortEnqueue.Requestメッセージが発行される。
・そのフローがカレンダーに再接続される資格がある場合、ＱｏＳパラメータに合った方法で、適切なカレンダー（ＬＬＳ、ＮＬＳ、ＰＢＳ、またはＷＦＱ）に再接続される。
【００５１】
本発明は、特定のシステム環境における好ましい実施形態の見地から定義されてきたが、本発明を、修正を施して、他の異なるハードウェアおよびソフトウェア環境においても本発明の範囲および精神から逸脱することなく実施できることを、当業者であれば理解するであろう。
【図面の簡単な説明】
【００５２】
【図１】本発明の教示によるネットワーク・プロセッサを示す図である。
【図２】図１のネットワーク・プロセッサから形成されるネットワーク装置を示す図である。
【図３】ネットワーク・プロセッサ複合チップのブロック図を示す図である。
【図４】データフロー・チップのブロック図を示す図である。
【図５】データフロー・チップの選択ポートを、スイッチ・モードまたはライン・モードになるように構成する回路構成を示す図である。
【図６】スケジューラ・チップのブロック図を示す図である。
【図１】
2004525562.tif 000003
【図２】
2004525562.tif 000004
【図３】
2004525562.tif 000005
【図４】
2004525562.tif 000006
【図５】
2004525562.tif 000007
【図６】
2004525562.tif 000008
【国際公開パンフレット】
2004525562.tif 000009
2004525562.tif 000010
2004525562.tif 000011
2004525562.tif 000012
2004525562.tif 000013
2004525562.tif 000014
2004525562.tif 000015
2004525562.tif 000016
2004525562.tif 000017
2004525562.tif 000018
2004525562.tif 000019
2004525562.tif 000020
2004525562.tif 000021
2004525562.tif 000022
2004525562.tif 000023
2004525562.tif 000024
2004525562.tif 000025
2004525562.tif 000026
2004525562.tif 000027
2004525562.tif 000028
2004525562.tif 000029
2004525562.tif 000030
2004525562.tif 000031
2004525562.tif 000032
2004525562.tif 000033
2004525562.tif 000034
2004525562.tif 000035
【国際公開パンフレット（コレクトバージョン）】
2004525562.tif 000036
2004525562.tif 000037
【国際調査報告】
2004525562.tif 000038
2004525562.tif 000039