JP3817477B2 - Vlsiネットワーク・プロセッサ及び方法 - Google Patents
Vlsiネットワーク・プロセッサ及び方法 Download PDFInfo
- Publication number
- JP3817477B2 JP3817477B2 JP2001520572A JP2001520572A JP3817477B2 JP 3817477 B2 JP3817477 B2 JP 3817477B2 JP 2001520572 A JP2001520572 A JP 2001520572A JP 2001520572 A JP2001520572 A JP 2001520572A JP 3817477 B2 JP3817477 B2 JP 3817477B2
- Authority
- JP
- Japan
- Prior art keywords
- frame
- data
- logic
- substrate
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1507—Distribute and route fabrics, e.g. sorting-routing or Batcher-Banyan
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/45—Arrangements for providing or supporting expansion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
【発明の属する技術分野】
本発明は、様々なタイプ及び能力の情報処理システムまたはコンピュータをリンクするために使用される通信ネットワーク装置、及びこうした装置のコンポーネントに関する。特に、本発明は、こうした装置をアセンブルするのに有用なスケーラブル・スイッチ装置及びコンポーネントに関する。本発明はまた、改善された多機能インタフェース装置、並びに、こうした装置とメディア速度ネットワーク・スイッチを提供する他の要素との組み合わせに関する。本発明は更に、ネットワーク・スイッチのデータ・フロー処理能力を改善する、こうした装置の操作方法に関する。
【0002】
【従来の技術】
以下の説明は、ネットワーク・データ通信、並びにこうした通信ネットワークで使用されるスイッチ及びルータに関する知識を前提とする。特に、ネットワーク動作をレイヤに分割するネットワーク・アーキテクチャのISOモデルに精通していることを前提とする。ISOモデルにもとづく典型的なアーキテクチャは、物理パスまたはメディアであるレイヤ1(ときに"L1"と示される)から始まり、信号は、上流のレイヤ2、3、4などを通じてレイヤ7に至る。レイヤ7は、ネットワークにリンクされるコンピュータ・システム上で実行されるアプリケーション・プログラミング・レイヤである。本明細書では、L1、L2などは、ネットワーク・アーキテクチャの対応レイヤを指し示すものとする。本開示はまた、こうしたネットワーク通信においてパケット及びフレームとして知られる、ビット・ストリングの基本的理解を前提とする。
【0003】
今日のネットワーク化された世界では、帯域幅が重要な資源である。インターネットや他の新たなアプリケーションの登場による、ネットワーク・トラフィックの増加が、ネットワーク・インフラストラクチャの能力を圧迫している。こうした流れに追随するために、様々な組織や機関が、トラフィックの増加や音声とデータのコンバージェンスをサポートするための、より優れた技術や方法を検討している。
【0004】
ネットワーク・トラフィックの今日の劇的な増加は、インターネットの普及、情報へのリモート・アクセスの必要性の増加、及び新たなアプリケーションなどによる。インターネットは電子商取引の爆発的な成長により、ときにネットワーク・バックボーンにサポート不能な負荷を課する。データ・トラフィック量の増加の最も重要な1原因は、それが初めて音声トラフィックを超えることにある。電子メール、データベース・アクセス、及びファイル転送などを含む、リモート・アクセス・アプリケーションの要求の増加が、更にネットワークを圧迫している。
【0005】
音声とデータのコンバージェンスは、将来のネットワーク環境を定義する上で重要な役割を果たす。現在、インターネット・プロトコル(IP)ネットワークを介するデータの伝送は無料である。音声伝送は自然に最廉価の経路を通るので、音声は必然的にデータとコンバージされる。ボイス・オーバIP(VoIP)、ボイス・オーバATM(VoATM)、ボイス・オーバ・フレーム・リレー(VoFR)などの技術は、この変化の速い市場においてコスト効率の高い技術と言える。しかしながら、これらの技術への移行を可能にするために、業界は音声のサービス品質(QoS)を保証し、データ回線上での音声転送のためにどのように課金すべきかを決定なければならない。1996年のTelecommunication Deregulation Actが、更にこの環境を複雑化する。この法規は、選択音声プロトコルすなわちATMと、選択データ・プロトコルすなわちIPとの間の共生関係を強化する。
【0006】
新たな製品及び機能が使用可能になると、レガシー・システム(システム資産)を統合することが、組織にとって重大な問題となる。既存の設備及びソフトウェアへの投資を保護するために、組織は彼らの現在の運用を混乱させることなく、新たな技術への移行を可能にする解決策を要求する。
【0007】
サービス・プロバイダにとって、ネットワーク障害を取り除くことが先決である。ルータはしばしば、これらの障害の原因となる。しかしながら、ネットワーク輻輳は一般に、しばしば帯域幅問題と誤診され、より高い帯域幅を求めることにより取り組まれる。今日、メーカはこの難題を認識しつつある。彼らはネットワーク・プロセッサ技術に移行することにより、帯域幅資源をより効率的に管理し、ルータ及びネットワーク・アプリケーション・サーバで一般に見いだされる高度データ・サービスを有線速度で提供しつつある。これらのサービスにはロード・バランシング、QoS、ゲートウェイ、ファイアフォール、セキュリティ、及びウェブ(Web)キャッシングが含まれる。
【0008】
リモート・アクセス・アプリケーションでは、性能、要求時帯域幅、セキュリティ及び認証が最優先の部類に入る。QoS及びCoSの統合、統合音声処理、及びより複雑なセキュリティ・ソルーションが、将来のリモート・アクセス・ネットワーク・スイッチの設計を方向付けるであろう。更に、リモート・アクセスは、ISDN、T1、E1、OC−3乃至OC−48、ケーブル、及びxDSLモデムなど、より多くの物理メディアに対応しなければならない。
【0009】
業界コンサルタントはネットワーク・プロセッサ(ここでは"NP"とも称す)を、次に挙げる機能の1つ以上を実行できるプログラマブル通信集積回路として定義した。すなわち、
1)パケット分類:アドレスやプロトコルなどの既知の特性にもとづく、パケットの識別。
2)パケット変更:IP、ATM、または他のプロトコルに従う、パケットの変更(例えばIPのヘッダ内の存続時間(time-to-live)フィールドの更新)。
3)キュー/ポリシ管理:特定のアプリケーションにおけるパケットのパケット・キューイング、デキューイング、及びスケジューリングの設計方針の反映。
4)パケット転送:スイッチ・ファブリックを介するデータの伝送及び受信、及び適切なアドレスへのパケットの転送または経路指定。
【0010】
この定義は早期NPの基本フィーチャの正確な記述であるが、NPの完全な潜在的能力及び利点はまだ実現されていない。ネットワーク・プロセッサは、従来ソフトウェアで処理されたネットワーク・タスクをハードウェアで実行することにより、帯域幅を増加し、広範囲のアプリケーションにおける待ち時間問題を解決することができる。更に、NPは並列分散処理及びパイプライン処理設計などのアーキテクチャを通じて、速度の改善を提供できる。これらの機能は効率的な検索エンジンを可能にし、スループットを向上させ、複雑なタスクの迅速な実行を提供する。
【0011】
ネットワーク・プロセッサは、PCにおけるCPUのように、ネットワークの基本ネットワーク構築ブロックになるものと期待される。NPにより提供される一般的な機能は、リアルタイム処理、セキュリティ、蓄積交換、スイッチ・ファブリック、及びIPパケット処理及び学習機能である。NPはISOレイヤ2乃至5をターゲットとし、ネットワーク特定タスクを最適化するように設計される。
【0012】
プロセッサ・モデルNPは、複数の汎用プロセッサ及び特殊論理を組み込む。提供者はこの設計に傾倒することにより、変更に適宜に且つ低廉に対応できる、スケーラブルで柔軟性のあるソリューションを提供しようとしている。プロセッサ・モデルNPは、低レベルの統合において分散処理を可能にし、より高度なスループット、柔軟性及び制御を提供する。プログラマビリティが、新たなASIC設計を要求することなく、新たなプロトコル及び技術への容易な移行を可能にする。プロセッサ・モデルNPにより、NEVは払戻し不能なエンジニアリング・コストの低減、及び製品化までの時間の短縮の利益を甘受することができる。
【0013】
【発明が解決しようとする課題】
本発明の第1の目的は、転送されるデータの処理速度を向上する一方で、サポート機能を各種の潜在的要求にサイズ変更可能な、データ通信ネットワークで使用されるスケーラブル・スイッチ・アーキテクチャを提供することである。
【0014】
本発明の別の目的は、単一基板上に集積化され、レイヤ2、レイヤ3、レイヤ4及びレイヤ5を含むフレームのメディア速度切替えを提供するように協働する、複数のサブアセンブリを含むインタフェース装置またはネットワーク・プロセッサ(これらの用語は互換性をもって使用される)を提供することである。
【0015】
【課題を解決するための手段】
前記第1の目的は、関連処理ユニットの作業負荷から、従来に比較してより多くのデータ処理を削除するコンポーネント、及びコンポーネントの集合を提供することにより実現される。
【0016】
インタフェース装置は、ワーク・グループ・スイッチとして、第1レベルの機能を提供する独立型のソリューションとして使用されるか、またはより高度な機能のワーク・グループ・スイッチを提供する相互接続ソリューションとして使用されるか、或いは、スイッチング・ファブリック装置との協働により、更に機能向上に向けてスケーリングされる。
【0017】
【発明の実施の形態】
【数1】
は、本明細書ではY/Xバーと記載する。
【0018】
本発明は、本発明の好適な実施例を示す添付の図面を参照して、以下で詳述されるが、説明の冒頭に当たり、当業者であれば、本発明の好適な結果を達成するように、ここで述べる発明を変更することができよう。従って、以下で述べる説明は本発明を制限するものではなく、当業者に対する広範囲の教示の開示として理解されるべきである。
【0019】
ここで開示される装置はスケーラブルで、デスクトップまたはワークグループ・スイッチを相互接続し、こうしたスイッチをネットワーク・バックボーンに統合し、バックボーン・スイッチング・サービスを提供するように機能することができる。この装置はレイヤ2、レイヤ3、及びレイヤ4+転送をハードウェアでサポートできる。特定の形態の装置は、デスクトップまたはワークグループ・スイッチ統合のために設計され、また他のものはコア・バックボーン・スイッチとして設計される。
【0020】
装置のために使用されるアーキテクチャは、インタフェース装置またはネットワーク・プロセッサ・ハードウェア・システムと、制御点上で実行されるソフトウェア・ライブラリとにもとづき、これについては本明細書の中で詳述される。インタフェース装置またはネットワーク・プロセッサ・サブシステムは、L2、L3及びL4+プロトコル・ヘッダの構文解析及び変換のために設計される高性能フレーム転送エンジンである。これはプロトコルがハードウェアの使用により、より高速にスイッチされることを可能にする。インタフェース装置またはネットワーク・プロセッサ・サブシステムは、ボックスを通じて高速パスを提供する一方、ソフトウェア・ライブラリ及び制御点プロセッサは、高速パスを維持するために必要な管理及びルート発見機能を提供する。制御点プロセッサ及びそれ上で動作するソフトウェア・ライブラリは、一緒にシステムの制御点(CP)を定義する。CPでは、透過型ブリッジング及びOSPFなどの、実際のブリッジング及びルーティング・プロトコルが実行される。これはシステムの低速パスとも呼ばれる。
【0021】
ここで開示される装置は、マルチレイヤ転送をハードウェアでサポートするが、装置はL2専用スイッチとしても動作でき、開示される最も単純な形態では、これがそのデフォルト動作モードである。各ポートは単一のドメインに配置され、任意の装置が任意の他の装置と通信することを可能にする。装置はL2において構成可能であり、システム管理者に次のようなフィーチャ、すなわち、ポートを別々のドメインまたはトランクにグループ化したり、仮想LAN(VLAN)セグメントや、ブロードキャスト及びマルチキャスト・トラフィックを制御するフィルタを構成するなどの能力を提供する。
【0022】
このスケーラブル装置は多くの利点を有する。第1に、これはシステム管理者に、L2で使用されるハードウェアと同一のものを使用して、同一の速度で、IP及びIPXトラフィックのL3転送及びルーティングを構成する能力を提供する。第2に、構内建物を相互接続するために、外部ルータを使用する必要性を排除する一方で、同時に性能を向上させる。第3に、L2/L3サービスの管理を単純化または結合することにより、これらを単一の制御点に組み込む。最後に、スケーラブル装置は付加価値機能をL4+機能と共に提供し、これはサーバ間での負荷平準化を目的として、主幹業務のアプリケーション及びネットワーク・ディスパッチャをサポートするために、システム管理者が異なるトラフィック分類を割当てる能力を提供する。
【0023】
スケーラブル装置は、インタフェース装置またはネットワーク・プロセッサを使用するモジュラ・ユニットとして、または制御点(CP)として、或いはその基本ビルディング・ブロックとしての、オプションのスイッチング・ファブリック装置として設計される。インタフェース装置は好適には、L2/L3/L4+高速パス転送サービスを提供し、CPは高速パスを維持するために必要な管理及びルート発見機能を提供する。3つ以上のインタフェース装置サブシステムが一緒に結合される場合には、オプションのスイッチング・ファブリック装置が使用される。オプションのスイッチング・ファブリック装置は、1991年4月16日発行の米国特許第5008878号"High Speed Modular Switching Apparatus for Circuit and Packet Switched Traffic"で開示される。
【0024】
装置は、プリント回路基板要素を用いて組み立てられるものと見込まれる。これはここでは"ブレード"とも称される。プリント回路基板要素は回路要素を実装され、装置ハウジング内に設けられるコネクタに収容される。同様の装置は"オプション・カード"としても知られる。装置は、適切なコネクタ及びバックプレーン電気接続が設けられる条件の下で、ブレードが様々なシャーシまたはハウジングの間で交換されることを考慮する。全てのブレード上で見いだされる基本コンポーネントは、キャリア・サブシステムである。キャリア・サブシステムから始まり、3つのタイプのブレードが生成される。第1のタイプはCP専用ブレードであり、これはキャリア・サブシステム及びCPサブシステムから成る。CP専用ブレードは、冗長性が一番の関心事である製品に対して主に使用される。第2のタイプはCP+メディア・ブレードであり、これはキャリア・サブシステム、CPサブシステム、及び1対3メディア・サブシステムから成る。CP+メディア・ブレードは、冗長性よりもポート密度が重要視される製品に対して、主に使用される。第3のタイプはメディア・ブレードであり、これはキャリア・サブシステムと1対4メディア・サブシステムとから成る。メディア・ブレードは任意のシャーシ内で使用され、使用されるメディア・サブシステムのタイプは構成可能である。
【0025】
ブレード管理は障害検出、電力管理、新たな装置の検出、初期化及び構成を含む。この管理は様々なレジスタ、入出力信号、及びCPとキャリア・サブシステムとの間で通信するために使用されるガイド・セル・インタフェースを用いて行われる。しかしながら、シャーシと異なり、全てのブレード上には、プログラマブル装置及びメモリが存在する。プログラマビリティは、ブレードのタイプに依存する。CPサブシステムがブレード上に存在する場合、CP及びキャリア・サブシステムの両方がプログラマブルである。メディア・サブシステムもプログラマブルであるが、キャリア・サブシステムを通じて間接的にプログラマブルなだけである。
【0026】
高機能製品では更に、スイッチング・ファブリック装置サブシステムを含むスイッチ・ブレードが存在する。このブレードの管理は、故障検出、電力管理、新たな装置の検出、及び初期化を含む。この管理は、CPサブシステム内にマップされる様々なレジスタ及び入出力信号を用いて行われる。
【0027】
最も単純な形態では、本発明により考慮されるスイッチ装置は制御点プロセッサと、制御点プロセッサに動作的に接続されるインタフェース装置とを有する。好適には、ここで開示されるように、インタフェース装置(ネットワーク・プロセッサとして知られる)は、半導体基板と、基板上に形成される複数のインタフェース・プロセッサと、インタフェース・プロセッサによりアクセスされる命令を記憶する、前記基板上に形成される内部命令メモリと、インタフェース装置を通過し、インタフェース・プロセッサによりアクセスされるデータを記憶する、前記基板上に形成される内部データ・メモリと、複数の入出力ポートとを有する、単一の超大規模集積回路(VLSI)装置またはチップである。インタフェース・プロセッサはここではときに、ピコプロセッサまたは処理ユニットと称される。提供されるポートは、内部データ・メモリを外部データ・メモリに接続する少なくとも1つのポートと、インタフェース・プロセッサの指示の下で、インタフェース装置を通過するデータを外部ネットワークと交換する少なくとも2つの他のポートとを含む。制御点プロセッサはインタフェース装置と協働して、インタフェース・プロセッサにより実行される命令を命令メモリにロードする。そして、これらの命令が実行されて、入出力ポート間でのデータの交換、及びデータ・メモリを介するデータの流れを指示する。
【0028】
ここで開示されるネットワーク・プロセッサは、それが組み込まれるスイッチ・アセンブリとは切り離して、本発明に関わる。更に、ここで開示されるネットワーク・プロセッサは、ここで述べられるその要素内に、ここでは詳細に述べられない他の発明を有するものとみなされる。
【0029】
図1は、基板10と、基板上に集積化される複数のサブアセンブリとを含むインタフェース素子チップのブロック図である。サブアセンブリは、アップサイドすなわち上流側構成と、ダウンサイドすなわち下流側構成とに編成される。本明細書では、"アップサイド"は、ネットワークから本明細書で開示される装置に送られるデータ・フローを指し示し、"ダウンサイド"は、逆に装置から、この装置によりサービスされるネットワーク・サービスに送られるデータを指し示す。データ・フローは反復構成に従う。結果的に、アップサイド・データ・フロー及びダウンサイド・データ・フローが存在する。アップサイドのサブアセンブリには、エンキュー−デキュー−スケジューリング・アップ(EDS−UP)論理16、多重化MACアップ(PPM−UP)14、スイッチ・データ・ムーバ・アップ(SDM−UP)18、システム・インタフェース(SIF)20、データ・アライン・シリアル・リンクA(DASLA)22、及びデータ・アライン・シリアル・リンクB(DASLB)24が含まれる。データ・アライン・シリアル・リンクは、1999年6月11日出願の米国特許出願第09/330968号"High Speed Parallel/Serial Link for Data Communication"で詳細に述べられている。ここで開示される本発明の装置の好適な形態はDASLリンクを使用するが、本発明は、特にデータ・フローがVLSI構造内にあるように制限される場合などのように、かなり高いデータ・フロー・レートを達成するために、他の形態のリンクが使用されることも考慮する。
【0030】
ダウンサイドのサブアセンブリには、DASLA26、DASLB28、SIF30、SDM−DN32、EDS−DN34、及びPPM−DN36が含まれる。チップは更に複数の内部SRAM、トラフィック管理スケジューラ40、及び組み込みプロセッサ・コンプレックス(EPC)12を含む。インタフェース装置38は、イーサネット(R)フィジカル(ENET PHY)またはATMフレーマなどの、任意の好適なL1回路である。インタフェースのタイプは、部分的に、チップが接続されるネットワーク・メディアにより決定される。複数の外部DRAM及びSRAMが設けられ、チップにより使用される。
【0031】
ここでは特に、関連スイッチング及びルーティング装置の外部の一般データ・フローが、建物内に導入された配線やケーブルなどの電気導体を通過するネットワークが開示されるが、本発明は、ここで開示されるネットワーク・スイッチ及びコンポーネントが、無線環境において使用されることも同様に考慮する。例として、ここで述べられるメディア・アクセス制御(MAC)要素は、ここで述べられる要素を直接ワイヤレス・ネットワークにリンクする機能を有する、好適な無線周波数要素により置換されてもよく、例えば、既知のシリコン・ゲルマニウム技術などが使用される。こうした技術が適切に使用される場合には、無線周波数要素は当業者により、ここで開示されるVLSI構造内に統合される。或いは、無線周波数、または赤外線応答装置などの他のワイヤレス応答装置が、ワイヤレス・ネットワーク・システム用のスイッチ装置を実現する他の要素と一緒に、ブレード上に実装されてもよい。
【0032】
図中の矢印は、インタフェース装置内のデータの一般的な流れを示す。イーサネット(R)MACから受信されるフレームは、EDS−UPにより、内部データ・ストア・バッファに配置される。これらのフレームは、通常データ・フレームまたはシステム制御ガイド・フレーム(Guided Frame)として示され、EPC(図1)にエンキューされる。EPCは、最大Nフレーム(N>1)を並列に処理できるN個のプロトコル・プロセッサを含む。10プロトコル・プロセッサ(図14)の実施例では、10個のプロトコル・プロセッサの内の2個が特殊化される。すなわち、1つはガイド・フレームを処理するように(汎用中央ハンドラ(GCH))、また他は制御メモリ内にルックアップ・データを作成するように(汎用ツリー・ハンドラ(GTH))、特殊化される。図13に示されるように、EPCは、新たなフレームをアイドル・プロセッサに突き合わせるディスパッチャと、フレーム・シーケンスを保持する完了(completion)ユニットと、10個の全プロセッサにより共用される共通命令メモリと、フレーム分類を決定する分類子ハードウェア補助機構及びフレームの開始命令アドレスを決定する支援をするコプロセッサと、フレーム・バッファの読出し及び書込み操作を制御する入口側(以降イングレス(ingress)と称す)及び出口側(以降イーグレス(egress)と称す)データ・ストア・インタフェースと、10個のプロセッサが制御メモリを共用することを可能にする制御メモリ・アービタと、ウェブ(Web)制御と、内部インタフェース装置データ構造へのデバッグ・アクセスを可能にするアービタ及びインタフェースと、その他のハードウェア構造を含む。
【0033】
ガイド・フレームは、GCHプロセッサが使用可能になると、ディスパッチャによりGCHプロセッサに送信される。レジスタ書込み、カウンタ読出し、イーサネット(R)MAC構成変更など、ガイド・フレーム内でエンコードされる操作が実行される。MACまたはIPエントリの追加など、ルックアップ・テーブル変更が、メモリ読出しや書込みなどの制御メモリ操作のために、ルックアップ・データ・プロセッサに渡される。MIBカウンタ読出しなどの幾つかのコマンドは、応答フレームの作成、及び適切なインタフェース装置上の適切なポートへの転送を要求する。ときとして、ガイド・フレームはインタフェース装置のイーグレス側に合わせてエンコードされる。これらのフレームは、照会されるインタフェース装置のイーグレス側に転送され、これが次にエンコード操作を実行し、適切な応答フレームを作成する。
【0034】
データ・フレームは、次の使用可能なプロトコル・プロセッサにディスパッチされ、そこでフレーム参照が実行される。フレーム・データは、分類子ハードウェア補助機構(CHA)エンジンからの結果と一緒に、プロトコル・プロセッサに渡される。CHAはIPまたはIPXを構文解析する。結果がツリー構造探索アルゴリズム及び開始共通命令アドレス(CIA)を決定する。サポートされるツリー構造探索アルゴリズムは、固定マッチ・ツリー(レイヤ2イーサネット(R)MACテーブルなど、正確なマッチを要求する固定サイズ・パターン)、最長プレフィックス・マッチ・ツリー(サブネットIP転送など、可変長マッチを要求する可変長パターン)、及びソフトウェア管理ツリー(フィルタ規則で使用されるような、範囲またはビット・マスク・セットのいずれかを定義する2つのパターン)を含む。
【0035】
ルックアップ(探索)は、各プロトコル・プロセッサの一部である、ツリー構造探索エンジン(TSE)コプロセッサの支援により実行される。TSEコプロセッサは制御メモリ・アクセスを実行し、プロトコル・プロセッサを解放して実行を継続する。制御メモリは全てのテーブル、カウンタ、及びピココードにより必要とされる他のデータを記憶する。制御メモリ操作は、10個のプロセッサ・コンプレックスの間のメモリ・アクセスを調停する制御メモリ・アービタにより管理される。
【0036】
フレーム・データはデータ・ストア・コプロセッサを通じてアクセスされる。データ・ストア・コプロセッサは、基本データ・バッファ(フレーム・データの最大8個の16バイト・セグメント)と、スクラッチ・パッド・データ・バッファ(フレーム・データの最大8個の16バイト・セグメント)と、データ・ストア操作のための幾つかの制御レジスタとを含む。一旦マッチが見いだされると、イングレス・フレーム変更がVLANヘッダ挿入またはオーバレイを含み得る。この変更は、インタフェース装置プロセッサ・コンプレックスにより実行されるのではなく、ハードウェア・フラグが導出され、他のイングレス・スイッチ・インタフェース・ハードウェアが変更を実行する。他のフレーム変更はピココード及びデータ・ストア・コプロセッサにより、イングレス・データ・ストア内に保持されるフレーム内容を変更することにより達成される。
【0037】
他のデータは、フレームをスイッチ・ファブリック装置に送信する前に収集され、スイッチ・ヘッダ及びフレーム・ヘッダを作成するために使用される。制御データには、フレームの宛先ブレードなどのスイッチ情報や、イーグレス・インタフェース装置の情報が含まれ、宛先ポートのフレーム探索、マルチキャストまたはユニキャスト操作、及びイーグレス・フレーム変更を推進する。
【0038】
完了時、エンキュー・コプロセッサが、フレームをスイッチ・ファブリックにエンキューするのに必要なフォーマットを作成し、それらを完了ユニットに送信する。完了ユニットは、10個のプロトコル・プロセッサからスイッチ・ファブリック・キューへのフレーム順序を保証する。スイッチ・ファブリック・キューからのフレームは、64バイト・セルにセグメント化され、それらがPrizma−Eスイッチに伝送されるとき、フレーム・ヘッダ・バイト及びスイッチ・ヘッダ・バイトが挿入される。
【0039】
スイッチ・ファブリックから受信されたフレームは、イーグレスEDS34により、イーグレス・データ・ストア(イーグレスDS)バッファに配置され、EPCにエンキューされる。フレームの一部はディスパッチャにより、アイドル・プロトコル・プロセッサに送信され、フレーム探索が実行される。フレーム・データは、分類子ハードウェア補助機構からのデータと一緒に、プロトコル・プロセッサにディスパッチされる。分類子ハードウェア補助機構は、イングレス・インタフェース装置により作成されるフレーム制御データを使用して、開始コード命令アドレス(CIA)の決定を支援する。
【0040】
イーグレス・ツリー探索は、イングレス探索においてサポートされるのと同一のアルゴリズムをサポートする。ルックアップはTSEコプロセッサにより実行され、プロトコル・プロセッサを解放して実行を継続する。全ての制御メモリ操作は、制御メモリ・アービタにより管理され、アービタは10個のプロセッサ・コンプレックスの間で、メモリ・アクセスを割当てる。
【0041】
イーグレス・フレーム・データは、データ・ストア・コプロセッサを通じてアクセスされる。データ・ストア・コプロセッサは基本データ・バッファ(フレーム・データの最大8個の16バイト・セグメント)と、スクラッチ・パッド・データ・バッファ(フレーム・データの最大8個の16バイト・セグメント)と、データ・ストア操作のための幾つかの制御レジスタとを含む。探索の成功結果は転送情報を含み、ときとしてフレーム変更情報を含む。フレーム変更はVLANヘッダ検出、存続時間増分(IPX)または減分(IP)、IPヘッダ・チェックサム再計算、イーサネット(R)フレームCRCオーバレイまたは挿入、及びMAC DA/SAオーバレイまたは挿入を含む。IPヘッダ・チェックサムはチェックサム・コプロセッサにより用意される。変更はインタフェース装置プロセッサ・コンプレックスにより実行されるのではなく、ハードウェア・フラグが作成され、PMMイーグレス・ハードウェアが変更を実行する。完了時に、エンキュー・コプロセッサが、フレームをEDSイーグレス・キューにエンキューし、それらを完了ユニットに送信するために必要なフォーマットを作成する。完了ユニットは、10個のプロトコル・プロセッサから、EDSイーグレス・キューへのフレーム順序を保証して、イーグレス・イーサネット(R)MAC36に供給する。
【0042】
完了フレームは最終的に、PMMイーグレス・ハードウェアによりイーサネット(R)MACに送信され、イーサネット(R)ポートから出力される。
【0043】
ウェブと呼ばれる内部バスは、内部レジスタ、カウンタ及びメモリへのアクセスを可能にする。ウェブ(Web)はまた、命令ステップや、デバッグ及び診断のための割込み制御を制御する外部インタフェースを含む。
【0044】
ツリー構造探索エンジン・コプロセッサは、メモリ範囲チェック及び不当メモリ・アクセス通知を提供し、ツリー構造探索命令(メモリ読出し、書込み、またはread-add-writeなど)を、プロトコル・プロセッサ実行と並列に実行する。
【0045】
共通命令メモリは、1つの1024×128RAMと、2セットのデュアル512×128RAMとから構成される。デュアルRAMの各セットは、同一のピココードの2つのコピーを提供し、プロセッサによる同一アドレス範囲内の命令への独立したアクセスを可能にする。各128ビット・ワードは4つの32ビット命令を含み、合計8192命令を提供する。
【0046】
ディスパッチャは、10個のプロトコル・プロセッサへのフレームの受け渡しを制御し、割込み及びタイマを管理する。
【0047】
完了ユニットは、プロセッサ・コンプレックスから、スイッチ・ファブリック及びターゲット・ポート・キューへのフレーム順序を保証する。豊富な命令セットには、条件付き実行、(入力ハッシュ・キーの)パッキング、条件付き分岐、符号付き及び符号無し演算、先行0のカウントなどが含まれる。
【0048】
分類子ハードウェア補助機構エンジンは、各フレームのレイヤ2及びレイヤ3プロトコル・ヘッダを構文解析し、フレームがプロトコル・プロセッサにディスパッチされるとき、この情報をフレームに提供する。
【0049】
制御メモリ・アービタは、内部及び外部メモリの両方へのプロセッサ・アクセスを制御する。
【0050】
外部制御メモリ・オプションは、5個乃至7個のDDR DRAMサブシステムを含む。各サブシステムは、1対の2M×16ビット×4バンクDDR DRAM、または1対の4M×16ビット×4バンクDDR DRAMをサポートする。DDR DRAMインタフェースは、133MHzクロック・レート及び266MHzデータ・ストローブで動作し、構成可能なCAS待ち時間及びドライブ強度をサポートする。オプションの133MHz ZBT SRAMが、128K×36、2×256K×18、または2×512K×18構成のいずれかで追加される。
【0051】
イーグレス・フレームは1つの外部データ・バッファ(例えばDS0)、または2つの外部データ・バッファ(DS0及びDS1)のいずれかに記憶される。各バッファは、1対の2M×16ビット×4バンクDDR DRAM(最大256Kの64バイト・フレームを記憶可能)、または1対の4M×16ビット×4バンクDDR DRAM(最大512Kの64バイト・フレームを記憶可能)から構成される。2.28Mbpsの単一の外部データ・バッファ(例えばDS0)を選択するか、第2のバッファ(例えばDS1)を追加し、4.57Mbpsのレイヤ2及びレイヤ3スイッチングをサポートする。第2のバッファの追加は性能を改善するが、フレーム容量を増加しない。外部データ・バッファ・インタフェースは、133MHzクロック・レート、及び266MHzのデータ・ストローブで動作し、構成可能なCAS待ち時間及びドライブ強度をサポートする。
【0052】
内部制御メモリは、2つの512×128ビットRAMと、2つの1024×36ビットRAMと、1つの1024×64ビットRAMとを含む。
【0053】
内部データ記憶は、イングレス方向(UP)に、最大2048個の64バイト・フレームをバッファリングすることができる。
【0054】
固定フレーム変更は、イングレス方向のVLANタグ挿入と、VLANタグ削除と、持続時間増分/減分(IP、IPX)と、イーグレス(DOWN)方向のイーサネット(R)CRCオーバレイ/挿入及びMAC DA/SAオーバレイ/挿入とを含む。
【0055】
ポート・ミラーリングは、プロトコル・プロセッサ資源を用いることなく、1つの受信ポート及び1つの送信ポートを、システム指定の観測ポートにコピーすることを可能にする。ミラーリングされたインタフェース装置ポートは、フレーム及びスイッチ制御データを追加するように構成される。別々のデータ・パスが、イングレス・スイッチ・インタフェースへの直接フレーム・エンキューイングを可能にする。
【0056】
インタフェース装置は、4つのイーサネット(R)マクロを統合する。各マクロは、1ギガビットまたは10/100高速イーサネット(R)モードのいずれかで動作するように、個々に構成される。各イーサネット(R)マクロは、最大10個の10/100Mbps MACか、4つのマクロの各々に対して、1つの1000Mbps MACをサポートする。
【0057】
図2は、MACコアのブロック図を示す。各マクロは、3つのイーサネット(R)コア設計、すなわちマルチポート10/100Mbps MACコア(FEnet)、1000Mbps MACコア(GEnet)、及び100Mbps物理コーディング・サブレイヤ・コア(PCS)を含む。
【0058】
マルチポート・イーサネット(R)10/100MACフィーチャ:
1)物理レイヤとの10個のシリアル・メディア独立インタフェースをサポートする。
2)10Mbpsまたは100Mbpsメディア速度の10個のポートを、任意に混在させて処理できる。
3)単一のMACが時分割多重インタフェースにより、10個の全てのポートをサービスする。
4)全てのポート上で全2重/半2重動作をメディア速度でサポートする。
5)IEEE802.3バイナリ指数バックオフをサポートする。
【0059】
1000Mbpsイーサネット(R)MACコア・フィーチャ:
1)物理PCSレイヤとの、または直接的に物理レイヤとのギガビット・メディア独立インタフェース(GMII)をサポートする。
2)PCSコアにより、完全なTBI(8b/10b)ソルーションをサポートする。
3)全2重Point-to-Point接続をメディア速度でサポートする。
4)IBM PCSコア有効バイト信号方式をサポートする。
【0060】
1000Mbpsイーサネット(R)物理コーディング・サブレイヤ・コア・フィーチャ:
1)8b/10bエンコード及びデコードを実行する。
2)IEEE802.3zで定義されるPMA(10ビット)サービス・インタフェースをサポートする。このインタフェースは、IEEE802.3zに準拠する任意のPMAに接続する。
3)PMAから受信されるデータ(2フェーズ・クロック)を、MAC(1フェーズ)クロックに同期させる。
4)次の2ページを含むオートネゴシエーションをサポートする。
5)規格で定義された2フェーズ・クロック・システムを、1フェーズ・クロックに変換する。
6)新たなデータを含むクロック・サイクルを示す信号を、MACに提供する。
7)受信コード・グループ(10ビット)内のCOMMAをチェックし、ワード同期を確立する。
8)8b/10b実行中ディスパリティを計算及びチェックする。
【0061】
図3の(A)乃至(D)は、インタフェース素子チップの異なる構成を示す。これらの構成はDASLと、スイッチング・ファブリック装置への接続とによりサポートされる。各DASLは2つのチャネル、すなわち送信チャネルと受信チャネルとを含む。
【0062】
図3の(A)は、単一インタフェース装置のラップ(wrap)構成を示す。この構成では、送信チャネルが受信チャネルにラップ、すなわち折り返される。
【0063】
図3の(B)は、2つのインタフェース素子チップが接続される構成を示す。各インタフェース素子チップは、少なくとも2つのDASLを提供される。この構成では、1つのチップ上の1DASL上のチャネルが、他のチップ上のマッチングDASLのチャネルに、動作的に接続される。各チップ上の他のDASLは、ラップされる。
【0064】
図3の(C)は、複数のインタフェース装置がスイッチ・ファブリックに接続される構成を示す。両頭矢印は両方向の伝送を示す。
【0065】
図3の(D)は、メイン・スイッチ及びバックアップ・スイッチが複数のインタフェース装置に接続される構成を示す。メイン・スイッチが故障すると、バックアップ・スイッチが使用可能になる。
【0066】
制御点(CP)はシステム・プロセッサを含み、これは各構成に接続される。とりわけ、CPのシステム・プロセッサは、チップに対して、初期化及び構成サービスを提供する。CPは3つの位置、すなわちインタフェース素子チップ内か、チップが実装されるブレード上か、或いはブレードの外部のいずれかに配置される。ブレードの外部の場合、CPはリモートとなり、どこか別の場所に内蔵され、インタフェース装置及びCPが接続されるネットワークを介して通信する。CPの要素が図20に示され、メモリ素子(キャッシュ、フラッシュ及びSDRAM)、メモリ制御装置、PCIバス、及びバックプレーン及びL1ネットワーク・メディア用のコネクタを含む。
【0067】
図21は、単一チップ・ネットワーク・プロセッサと、EDS−UP、トラフィック管理(MGT)スケジューラ、及びEDS−DOWN(DN)により提供される機能とを示す。U字形アイコンはキューを表し、キュー内の内容を追跡する制御ブロック(CB)は、矩形アイコンにより表される。
【0068】
各要素及びそれらの機能及び相互作用は、次の通りである。
【0069】
PMM:これはMAC(FEnet、POS、GEnet)を含み、外部PHY装置に接続されるネットワーク・プロセッサの一部である。
【0070】
UP−PMM:この論理はPHYからバイトを受け取り、それをFISH(16バイト)にフォーマットし、UP−EDSに受け渡す。PMM内には4つのDMUが存在し、各々は1GEnetまたは10FEnet装置と連携することができる。
【0071】
UP−EDS:この論理はUP−PMMからFISHを受け取り、それらをUP−DATAストア(内部RAM)に記憶する。これは1度に40フレームを処理することができ、適切な数のバイトが受信されると、フレームをEPCにエンキューする。EPCがフレーム処理を完了すると、UP−EDSがフレームを適切なターゲット・ポート・キューにエンキューし、UP−SDMにフレームの送信を開始する。UP−EDSは全てのバッファ及びフレーム管理の責任を負い、UP−SDMへの転送が完了するとき、バッファ/フレームを空きプールに戻す。
【0072】
EPC:この論理はピコプロセッサを含み、組み込みPowerPCを含み得る。この論理はフレーム・ヘッダを突き止め、フレームをどのように処理すべきかを決定する(転送、変更、フィルタリングなど)。EPCは幾つかのルックアップ・テーブルをアクセスでき、ピコプロセッサがネットワーク・プロセッサの高帯域幅要求に応じるためのハードウェア補助機構を有する。
【0073】
UP−SDM:この論理はフレームを受け取り、それらをスイッチ・ファブリックへの伝送のために、Prizmaセルにフォーマットする。この論理はVLANヘッダをフレームに挿入することができる。
【0074】
UP−SIF:この論理はUP−DASLマクロを含み、外部スイッチ入出力(I/O)に接続する。
【0075】
DN−SIF:この論理はDN−DASLマクロを含み、外部スイッチ入出力(I/O)からPrizmaセルを受信する。
【0076】
DN−SDM:この論理はPrizmaセルを受信し、フレーム再組み立てのために、それらを事前処理する。
【0077】
DN−EDS:この論理は各セルを受け取り、それらを再度フレームに組み立てる。セルは外部データ・ストアに記憶され、バッファが一緒にリンクされて、フレームを形成する。全フレームが受信されると、フレームはEPCにエンキューされる。EPCがフレーム処理を終えると、フレームはスケジューラ・キュー(但し存在する場合)またはターゲット・ポート・キューにエンキューされる。DN−EDSは次に、フレーム、変更情報、及び制御情報などをDN−PMMに送信することにより、フレームを適切なポートに送信する。
【0078】
DN−PMM:DN−EDSから情報を受け取り、フレームをイーサネット(R)、POSなどにフォーマットし、フレームを外部PHYに送信する。
【0079】
SPM:この論理は、ネットワーク・プロセッサが外部装置(PHY、LED、FLASHなど)とインタフェースするために使用されるが、3つの入出力(I/O)を要求するだけである。ネットワーク・プロセッサはシリアル・インタフェースを用いて、SPMと通信し、次にSPMがこれらの外部装置を管理するために必要な機能を実行する。
【0080】
アップサイド・フロー:
1)フレームがPHYに到来する。
2)バイトがUP−PMMにより受信される。
3)UP−PMMがFISHをUP−EDSに送信する(FISHはフレームの一部を意味する)。
4)UP−EDSがFISHをUP−DSに記憶する。
5)UP−EDSがヘッダをEPC送信する。
6)EPCがヘッダを処理し、エンキュー情報をUP−EDSに返送する。
7)UP−EDSがフレームの残りをUP−PMMから受信し続ける。
8)スイッチへの適切なデータの送信準備が整うと、UP−EDSが情報をUP−SDMに送信する。
9)UP−SDMがフレーム・データを読出し、それをPrizmaセルにフォーマットする。
10)UP−SDMがセルをUP−SIFに送信する。
11)UP−SIFがDASLシリアル・リンクを介して、セルをPrizmaに転送する。
12)全てのデータが受け取られると、UP−EDSがバッファ/フレームを解放する。
【0081】
ダウンサイド・フロー:
1)DN−SIFがPrizmaセルを受信する。
2)DN−SDMがセルを記憶し、それらを再組み立て情報として事前処理する。
3)DN−EDSがセル・データ及び再組み立て情報を受信し、セルをダウンサイド側の新たなフレームにリンクする。
4)DN−EDSがセルをDN−DSに記憶する。
5)全てのデータが受信されると、DN−EDSがフレームをEPCにエンキューする。
6)EPCがヘッダを処理し、エンキュー情報をDN−EDSに返送する。
7)DN−EDSがフレームをスケジューラ・キュー(但し存在する場合)またはターゲット・ポート・キューにエンキューする。
8)DN−EDSがキューをサービスし、フレーム情報をPCBに送信する。
9)DN−EDSがPCBを用いてフレームを"解体"(unravel)し、適切なデータを読出し、そのデータをDN−PMMに送信する。
10)DN−PMMがデータをフォーマットし(必要に応じて変更を加える)、フレームを外部PHYに送信する。
11)DN−PMMがDN−EDSに、バッファがもはや必要とされないことを通知し、DN−EDSがこれらの資源を解放する。
【0082】
フレーム制御フロー:
1)ヘッダがUP−DSまたはDN−DSからEPCに送信される。
2)EPCがルックアップ・テーブルでヘッダ情報を調査し、フレーム・エンキュー情報を受信する。
3)EPCがエンキュー情報をEDSに返送し、フレームが適切なキューにエンキューされる。
4)セル・ヘッダ及びフレーム・ヘッダがフレーム・データと一緒に送信され、再組み立て及びフレーム転送を支援する。
【0083】
CP制御フロー:
1)制御点がガイド・フレームをフォーマットし、それをネットワーク・プロセッサに送信する。
2)ネットワーク・プロセッサがガイド・フレームを、GCHピコプロセッサにエンキューする。
3)GCHがガイド・フレームを処理し、Rainierの要求領域を読み書きする。
4)GCHがテーブル更新要求をGTHに渡す。
5)GTHが適切なテーブルを、ガイド・フレームからの情報により更新する。
6)肯定応答ガイド・フレームがCPに返送される。
【0084】
ネットワーク・プロセッサ制御フロー:
1)ピコプロセッサがガイド・フレームを作成し、情報を別のRainierまたは制御点に送信する。
2)ガイド・フレームが適切な位置に送信され処理される。
【0085】
単一インタフェース装置は、最大40の高速イーサネット(R)ポート(図3の(A)参照)のための、メディア速度切替えを提供する。IBMのデータ整合同期リンク(DASL:Data Aligned Synchronous Link)技術を用いて、2つのインタフェース装置が相互接続される場合、80個の高速イーサネット(R)ポートがサポートされる(図3の(B)参照)。各DASL差動対は、440Mbpsのデータを伝搬する。従って、8対の2つのセットが、3.5Gbps全2重接続(各方向において440Mbpsの8倍)を提供する。図3の(C)及び(D)に示されるように、複数のインタフェース装置を、IBMのPrizma−Eスイッチなどのスイッチに相互接続することにより、より大規模なシステムが構成される。インタフェース装置は、2つの3.5Gbps全2重DASL接続を提供し、これらの一方が基本接続で他が補助接続であり、後者は、ローカル・フレーム・トラフィックのためのラップ・バックパス(wrap-backpath)を提供するか(2つのインタフェース装置が直接接続される場合(図3の(B))、或いは、冗長スイッチ・ファブリックへの接続を提供する(図3の(D)、バックアップ・スイッチ)。以上から、単一ネットワーク・プロセッサ・チップは、1つのチップがローエンド・システム(比較的低いポート密度(例えば40)を有する)から、ハイエンド・システム(比較的高いポート密度(例えば80)を有する)まで提供するために使用されるという点でスケーラブルである。
【0086】
システム内の1つのインタフェース装置が、最大10個の10/100Mbps高速イーサネット(R)ポートか、単一の1000Mbpsイーサネット(R)ポートを介して、システム・プロセッサに接続される。システム・プロセッサへのイーサネット(R)構成は、インタフェース装置に接続されるEEPROM内に記憶され、初期化の間にロードされる。システム・プロセッサは、イーサネット(R)フレームとしてカプセル化される特殊ガイド・フレームを作成することにより、システム内の全てのインタフェース装置と通信する(図3参照)。カプセル化されたガイド・フレームは、DASLリンクを介して他の装置に転送され、システム内の全てのインタフェース装置が、単一点から制御されることになる。
【0087】
ガイド・フレームは、制御点(CP)と組み込みプロセッサ・コンプレックスとの間で、及びインタフェース装置内で制御情報を伝達するために使用される。ここでの議論を明らかにするガイド・セルの従来の開示が、1998年3月3日発行の米国特許第5724348号"Efficient Hardware/Software Interface for a Data Switch"で述べられている。
【0088】
CPから発信されるガイド・フレーム・トラフィックでは、CPがそのローカル・メモリ内のデータ・バッファ内に、ガイド・フレームを作成する。CPのデバイス・ドライバがガイド・フレームを、ネットワーク・プロセッサのメディア・インタフェースの1つに送信する。メディア・アクセス制御(MAC)ハードウェアがガイド・フレームを回復し、それを内部データ・ストア(U−DS)メモリに記憶する。ガイド・フレームは適切なブレードに経路指定され、処理され、必要に応じて再度CPに経路指定される。外部CPとインタフェース装置との間でやり取りされるガイド・フレームは、外部ネットワークのプロトコルに適応するようにカプセル化される。その結果、外部ネットワークがイーサネット(R)を含む場合、ガイド・フレームはイーサネット(R)フレームとしてカプセル化される。
【0089】
イーサネット(R)カプセル化は、CPとインタフェース装置との間のガイド・トラフィックのトランスポート手段を提供する。インタフェース装置のイーサネット(R)MAC(Enet MAC)は、フレームの受信時に、宛先アドレス(DA)またはソース・アドレス(SA)を分析しない。この分析はEPCピココードにより実行される。ガイド・トラフィックは、インタフェース装置が構成されておらず、DA及びSAがEPCピココードにより分析されないものと仮定する。従って、これらのフレームは元来、自己ルーティングである。しかしながら、イーサネット(R)MACは、イーサネット(R)タイプ・フィールドを分析し、ガイド・トラフィックとデータ・トラフィックとを区別する。ガイド・フレームのこのイーサネット(R)タイプ値の値は、E_Type_Cレジスタにロードされる値と合致しなければならない。このレジスタは、インタフェース装置のブート・ピココードにより、フラッシュ・メモリからロードされる。
【0090】
CPはそのローカル・メモリ内のデータ・バッファ内に、ガイド・フレームを構成する。CPプロセッサ内の32ビット・レジスタの内容が、図4に示されるように、ビッグ・エンディアン形式でローカル・メモリ内に記憶される。ガイド・フレームが構成されると、CPのデバイス・ドライバがイーサネット(R)フレームを送信する。このフレームは、特定ガイド・セル・ハンドラ(GCH)のDA、CPの大域MACアドレスまたは特定インタフェースのMACアドレスに対応するSA、ガイド・フレームを示す特殊イーサネット(R)タイプ・フィールド、及びガイド・フレーム・データを含む。ポートに到来する全てのイーサネット(R)フレームは、イーサネット(R)MACにより受信され、分析される。E_Type_Cレジスタの内容に合致するイーサネット(R)タイプ値を有するフレームの場合、イーサネット(R)MACがDA、SA及びイーサネット(R)タイプ・フィールドを剥ぎ取り、ガイド・フレーム・データをU_DSメモリに記憶する。バイトが1つずつ、イーサネット(R)MACにより、FISHと呼ばれる16バイトのブロック内に収集される。これらのバイトはビッグ・エンディアン形式で記憶され、ガイド・フレームの第1バイトが、FISHの最上位バイト位置(バイト0)に記憶される。続くバイトは、FISH内の続くバイト位置(バイト1,バイト2,..,バイト15)に記憶される。これらの16バイトは次に、U_DS内のバッファに、FISH0位置から記憶される。続くFISHは、バッファ内の連続するFISH位置(FISH1、FISH2、FISH3など)に記憶される。ガイド・フレームの残りを記憶するために、必要に応じて、空きプールから追加のバッファが獲得される。
【0091】
インタフェース装置10内のガイド・トラフィックのフローが、図5に示される。インタフェース装置のイーサネット(R)MAC機能が、フレーム・ヘッダ情報を調査し、フレームがガイド・フレームであることを判断する。イーサネット(R)MACはガイド・フレームからフレーム・ヘッダを除去し、その残りの内容をインタフェース装置の内部U_DSメモリにバッファリングする。イーサネット(R)MACは、フレームがGCHにより処理されるために、汎用制御(GC)キューにエンキューされるべきことを示す。ガイド・フレームの終わりに達すると、エンキュー、デキュー及びスケジュール(EDS)論理が、フレームをGCキューにエンキューする。
【0092】
CPに局所的に接続されるブレード上のGCHピココードは、フレーム制御情報(図7参照)を調査し、ガイド・フレームがシステム内の他のブレードに向けられるか、及びガイド・フレームがインタフェース装置のダインサイド側で実行されるべきかを判断する。フレームが、局所的に接続されるブレード以外のブレード、またはそれに加えたブレードに向けられる場合、GCHピココードがフレーム制御ブロック(FCB)内のTB値を、ガイド・フレームのフレーム制御情報からのTB値により更新し、EDSにフレームを、マルチキャスト・ターゲット・ブレード・フレーム開始(TB_SOF)キューにエンキューするように命令する。性能上の理由から、示された宛先ブレードの数とは無関係に、全てのガイド・トラフィックがマルチキャストTB_SOFキューにエンキューされる。
【0093】
フレームが局所的に接続されたブレードだけに向けられる場合、GCHピココードがフレーム制御情報のUP/DOWNバー・フィールド(以降、'バー'は'0'bで有効なことを意味する)(図7参照)を調査し、ガイド・フレームがインタフェース装置のアップサイドまたはダウンサイドのどちらで実行されるべきかを判断する。ガイド・フレームがインタフェース装置のダウンサイドで実行される場合、GCHピココードがFCB内のTB値を、ガイド・フレームのフレーム制御情報からのTB値により更新し、EDSにフレームをマルチキャストTB_SOFキューにエンキューするように命令する。フレーム制御情報が、ガイド・フレームがアップサイドで実行されるべきことを示す場合、GCHピココードがガイド・フレームを分析し、そこに含まれるガイド・コマンドにより示される操作を実行する。
【0094】
ガイド・コマンドを処理する前に、ピココードはフレーム制御情報のACK/NOACKバー・フィールドの値をチェックする、この値が'0'bの場合、ガイド・フレームが処理に続き廃棄される。但し、ガイド読出しコマンドは、この範疇ではない。
【0095】
ACK/NOACKバー・フィールドが'1'bで、EARLY/LATEバー・フィールドが'1'bの場合、ガイド・フレーム内の任意のガイド・コマンドを処理する前に、ピココードが早期ACKガイド・フレームを作成する。このとき、フレーム制御のTBフィールドの値は、早期ACKガイド・フレームの内容に等しく、フレーム制御のTBフィールドの値は、My_TBレジスタの内容に等しい。ピココードは、フレームのFCB内のTB値を、LAN制御点アドレス(LAN_CP_Addr)レジスタのTBフィールドに含まれる値により更新し、EDSにフレームをマルチキャストTB_SOFキューにエンキューするように命令することにより、早期ACKガイド・フレームをCPに返送する。ピココードは次に、ガイド・フレームのガイド・コマンドを処理し、ガイド・フレームを廃棄する。但し、ガイド読出しコマンドはこの範疇ではない。
【0096】
他方、ACK/NOACKバー・フィールドの値が'1'bで、EARLY/LATEバー・フィールドの値が'0'bの場合、ピココードはフレーム制御情報のRESP/REQバー・フィールドを'1'bに変更して、ガイド・フレーム応答を示し、TBフィールドをMy_TBレジスタの内容により更新し、ガイド・フレーム内の各ガイド・コマンドを処理する。ガイド・コマンドの処理の間、ピココードは次のガイド・コマンドの完了コード・フィールドを、現ガイド・コマンドの完了ステータス・コード値により更新する。ピココードは、FCB内のTB値をソース・ブレードに対応する値(CPのLAN_CP_Addrレジスタ値)により更新し、EDSにフレームをマルチキャストTB_SOFキューにエンキューするように命令することにより応答をソースに返送する。
【0097】
TB_SOFキュー内に存在するフレームは、EDSにより、転送をスケジュールされる。スイッチ・データ・ムーバ(SDM)が、FCBに含まれる情報から、スイッチング・ファブリック・セル・ヘッダ及びインタフェース装置フレーム・ヘッダを作成する。これらのセルはスイッチング・ファブリック装置を通過し、ターゲット・ブレードに到達し、そこでセルがD−DSメモリ内で、フレームに再組み立てされる。ダウンサイドのSDMは、フレームがガイド・フレームであることを認識し、EDSにそれをGCキューにエンキューするように伝える。
【0098】
GCキューまたはGTキューからの圧力により、ピココードはガイド・フレームをアクセスし分析する。ダウンサイドに到来する全てのガイド・フレームは、最初にGCキューにエンキューされる。これらのフレームにおけるフレーム制御情報のGTH/GCHバー値が、GCHピココードにより調査される。GTH/GCHバー値が'0'bの場合、ガイド・フレームがGTキューにエンキューされる。それ以外では、GCHピココードが、フレーム制御情報のRESP/REQバー・フィールドを調査し、ガイド・フレームが既に実行されたか否かを判断する。RESP/REQバー・フィールドが値'1'bを有する場合、ガイド・フレームは既に実行されており、CPに経路指定される。CP接続に対応するターゲット・ポート値は、EPCピココードにより保持される。これらのターゲット・ポート・キューからのフレームが、インタフェース装置からCPに返送される。
【0099】
RESP/REQバー・フィールドが値'0'bを有する場合、ブレードはCPに対してローカルまたはリモートである。これはLAN_CP_AddrレジスタのTBフィールドの値を、マイ・ターゲット・ブレード(My_TB)レジスタの内容と比較することにより解明される。これらが一致する場合、ブレードはCPにとってローカルであり、それ以外では、ブレードはCPにとってリモートである。いずれの場合にも、ピココードはフレーム制御情報のUP/DOWNバー値を調査する。UP/DOWNバー値が'1'bの場合、フレームはラップTPキューにエンキューされ、U_DSへ転送されて、アップサイドのGCHにより処理される。それ以外では、ピココード(GCHまたはGTH)が、ガイド・フレームに含まれるガイド・コマンドにより指示される操作を実行する。ガイド・コマンドの処理に先立ち、ピココードがフレーム制御情報のACK/NOACKバー・フィールドの値をチェックする。この値が'0'bの場合、ガイド・フレームが処理に続き廃棄される。但し、ガイド読出しコマンドはこの範疇ではない。
【0100】
ACK/NOACKバー・フィールドの値が'1'bで、EARLY/LATEバー・フィールドの値が'1'bの場合、ガイド・フレーム内の任意のガイド・コマンドを処理する前に、ピココードが早期ACKガイド・フレームを作成し、このとき、フレーム制御情報のTBフィールドの値は、My_TBレジスタの内容に等しい。ブレードがCPにとってリモートの場合、ピココードは早期ACKガイド・フレームをラップ・ポートに経路指定する。それ以外では、ブレードはCPにとってローカルであり、フレームはCPに対応するポート・キューに経路指定される。ピココードはガイド・コマンドを処理する一方、ラップ・ポートが早期ACKガイド・フレームをD_DSからU_DSに転送し、フレームをアップサイドのGCキューにエンキューするか、フレームがポート・キューからCPに返送される。U_DSにラップバック(wrap back)されるフレームに対して、GCHピココードは再度このフレームを調査するが、RESP/REQバー・フィールドは値'1'bを有する。GCHピココードは、FCB内のTBフィールドを、LAN_CP_AddrレジスタのTBフィールドに含まれる値により更新し、EDSにフレームをマルチキャストTB_SOFキューにエンキューするように命令することにより、フレームをCPに返送する。TB_SOFキュー内に存在するフレームは、EDSにより、転送をスケジュールされる。スイッチ・データ・ムーバ(SDM)が、FCBに含まれる情報から、Prizmaセル・ヘッダ及びインタフェース装置フレーム・ヘッダを作成する。このフレームからのセルはPrizmaを通過し、CPのローカル・ブレード上で、フレームに再組み立てされる。ダウンサイドのSDMは、フレームがガイド・フレームであることを認識し、EDSにそれをGCキューにエンキューするように伝える。GCHピココードがフレームを分析するとき、RESP/REQバー・フィールドは値'1'bを有する。このことは、このブレードがCPに局所的に接続されることを意味し、従ってガイド・フレームは、CPに対応するポート・キューに経路指定される。このキュー内のフレームは、インタフェース装置からCPに返送される。
【0101】
他方、ACK/NOACKバー・フィールドの値が'1'bで、EARLY/LATEバー・フィールドの値が'0'bの場合、ピココードはRESP/REQバー・フィールドを'1'bに変更し、ガイド・フレーム応答であることを示し、TBフィールドをMy_TBレジスタの内容により置換し、次にガイド・フレーム内の各ガイド・コマンドを処理する。ガイド・コマンドの処理の間、ピココードは次のガイド・コマンドの完了コード・フィールドを、現ガイド・コマンドの完了ステータス・コード値により更新する。ブレードがCPにとってリモートの場合、ピココードはガイド・フレームをラップ・ポートに経路指定する。それ以外では、ブレードはCPにとってローカルであり、フレームはCPに対応するポート・キューに経路指定される。ラップ・ポートがガイド・フレームをD_DSからU_DSに転送し、フレームをアップサイドのGCキューにエンキューするか、フレームがポート・キューからCPに返送される。U_DSにラップバックされるフレームに対して、GCHピココードは再度このフレームを調査するが、RESP/REQバー・フィールドは値'1'bを有する。GCHピココードは、FCB内のTBフィールドを、LAN_CP_AddrレジスタのTBフィールドに含まれる値により更新し、EDSにフレームをマルチキャストTB_SOFキューにエンキューするように命令することにより、フレームをCPに返送する。TB_SOFキュー内に存在するフレームは、EDSにより、転送をスケジュールされる。SDMが、FCBに含まれる情報から、Prizmaセル・ヘッダ及びインタフェース装置フレーム・ヘッダを作成する。このフレームからのセルはPrizmaを通過し、CPのローカル・ブレード上のダウンサイドでフレームに再組み立てされる。ダウンサイドのSDMは、フレームがガイド・フレームであることを認識し、EDSにそれをGCキューにエンキューするように伝える。GCHピココードがD_DSからのフレームを分析するとき、RESP/REQバー・フィールドは値'1'bを有する。このことは、このブレードがCPに局所的に接続されることを意味し、ガイド・フレームが、CPに対応するポート・キューに経路指定される。このキュー内のフレームは、インタフェース装置からCPに返送される。
【0102】
何らかの理由により、GCHピココードが、フレーム制御情報のTBフィールドが'0000'hに等しいガイド・フレームに遭遇する場合、GCHピココードはこのフレームを、このブレードだけに向けられるものと解釈し、それにもとづき処理を行う。このアクションは、My_TBレジスタの値が全てのブレードに対して'0000'hである初期化の間に要求される。CPは、フレーム制御情報が'0000'hのTB値を有するガイド・フレーム内の、書込みガイド・コマンドを送信することにより、局所的に接続されるブレードのMy_TBレジスタを初期化する。
【0103】
EPC内の任意のピコプロセッサがガイド・フレームを生成できる。このフレームは非送信請求ガイド・フレームか、他の形式のガイド・フレームである。このタイプの内部的に生成されるフレームは、肯定応答を許可しないように生成される(すなわちACK/NOACKバー='0'b)。これらのフレームは、同一のEPC内の2つのピコプロセッサの一方(GCHまたはGTH)に送信されるか、他のブレードのGCHまたはGTHに送信される。
【0104】
非送信請求ガイド・フレームはCPにも送信され得る。同一のEPCに向けられるガイド・フレームは、D_DS内のデータ・バッファを用いて構成される。これらのフレームは次に処理のために、GCまたはGTキューにエンキューされる。これらのフレームは次に通常通り処理され、廃棄される。局所的に接続されるCPに向けられる非送信請求ガイド・フレームは、D_DS内のデータ・バッファを用いて構成される。これらのフレームは、それらがEPCにより実行されたことを示すように構成される(すなわち、RESP/REQバー='1'b、TB=My_TB)。これらのフレームは、CPに対応するポート・キューにエンキューされる。このキューからフレームは、CPに返送される。
【0105】
別のブレードに向けられるガイド・フレームは、D_DSまたはU_DS内のデータ・バッファを用いて構成される。CPに向けられる非送信請求ガイド・フレームは、それらがEPCにより実行されたことを示すように構成される(すなわち、RESP/REQバー='1'b、TB=My_TB)。D_DS内のデータ・バッファを用いて構成されたフレームは、ラップ・ポートにエンキューされる。これらのフレームはU_DSに転送され、アップサイドのGCキューにエンキューされる。'1'bのRESP/REQバー値を有する非送信請求ガイド・フレームは、LAN_CP_Addrレジスタ内のTB値を用いてCPに経路指定される。それ以外では、GCHピココードが、ガイド・フレームのフレーム制御情報のTB値を用いて、これらのフレームを経路指定する。受信ブレードにおいて、フレームがダウンサイドのGCキューにエンキューされる。このブレードのGCHは、フレームを実行し廃棄するか(RESP/REQバー='0'b、GTH/GCHバー='1')、フレームをGTキューにエンキューするか(RESP/REQバー='0'b、GTH/GCHバー='0')、フレームをCPに対応するポート・キューにエンキューする(RESP/REQバー='1'b)。U_DS内のデータ・バッファを用いて構成されたフレームは、アップサイドのGCキューに直接エンキューされる。この点から以降、これらのフレームは同一の経路に従い転送され、D_DSデータ・バッファを用いて構成されたフレームと同様に処理される。図6は、ガイド・フレームの汎用フォーマットを示す。
【0106】
図示のフォーマットは、左側に最上位バイトを有し、右側に最下位バイトを有する論理表現である。4バイト・ワードが先頭のワード0から開始し、ページの終わりに向けて増加する。
【0107】
インタフェース装置がCPにより構成される前に、ガイド・フレームは経路指定され、処理されなければならないので、これらのフレームは自己ルーティングでなければならない。探索及び分類により通常獲得される結果が、ガイド・フレームのこのフレーム制御情報フィールド内に含まれ、チップが探索操作を実行することなく、FCBをこの情報により更新することを可能にする。ガイド・フレームに含まれるターゲット・ブレード情報は、ガイド・フレーム・ハンドラにより、FCBのリーフ・ページ・フィールドを用意するために使用される。CPがターゲット・ブレード情報を提供する一方、GCHピココードがFCB内の他のフィールドを記入する。このFCB情報はSDMにより、セル・ヘッダ及びフレーム・ヘッダを用意するために使用される。ガイド・フレームのフレーム制御情報フィールドのフォーマットが図7に示される。
【0108】
次に、図7の各ビット位置の略語について説明する。
【0109】
RESP/REQバー:応答及び非要求バー標識値。このフィールドは、要求(未処理)ガイド・フレームと応答ガイド・フレームとを区別するために使用される。
0:要求
1:応答
【0110】
ACK/NOACKバー:肯定応答または無肯定応答制御値。このフィールドは、GCHピココードがガイド・フレームを肯定応答するか否かを制御するために使用される(肯定応答する場合ACK、そうでない場合NOACK)。ガイド・フレームが肯定応答されない場合、読出しを実行するいずれの形式のガイド・コマンドも含まれない。
0:無肯定応答
1:肯定応答
【0111】
EARLY/LATEバー:早期及び遅延肯定応答制御値。このフィールドは、要求される肯定応答(ACK/NOACKバー='1'b)が、ガイド・フレームが処理される前に発生するか(EARLY)、または後に発生するか(LATE)を制御するために使用される。ACK/NOACKバー='0'の場合、このフィールドは無視される。
0:ガイド・フレーム処理後の肯定応答
1:ガイド・フレーム処理前の肯定応答
【0112】
NEG/ALLバー:否定応答または全肯定応答制御値。このフィールドは、ガイド・コマンドが成功裡に完了しない場合を除き、ACK/NOACKバー・フィールドが値'0'bを有するとき無視される。
0:ACK/NOACKバー・フィールドが'1'bの場合、全てのガイド・フレームを肯定応答する。早期または遅延肯定応答は、EARLY/LATEバーの値により決定される。
1:成功裡に完了しないガイド・フレームだけを肯定応答する。この肯定応答は、ACK/NOACKバー及びEARLY/LATEバーの値に関係なく発生し、もちろん遅延肯定応答である。
【0113】
UP/DOWNバー:アップまたはダウン制御値。この値は、フレームがアップサイドまたはダウンサイドのどちらで処理されるかを制御するために使用される。このフィールドは、RESP/REQバーが'1'bのとき無視される。全てのマルチキャスト・ガイド・フレームは、'0'bのUP/DOWNバー値を有する。更に、GTHハードウェア補助機構命令の使用を要求するガイド・コマンドは、'0'bのUP/DOWNバー値を有する。
0:ダウンサイド処理
1:アップサイド処理
【0114】
GTH/GCHバー:汎用ツリー・ハンドラまたはガイド・セル・ハンドラ制御値。この値は、ガイド・フレームを適切なピコプロセッサに転送するために使用される。
0:GCHピコプロセッサ
1:GTHピコプロセッサ
【0115】
TB:ターゲット・ブレード値。RESP/REQバーが'0'bのとき、このフィールドはPrizmaにより使用されるルーティング情報を含む。各ビット位置はターゲット・ブレードに対応する。この値が'0000'hのとき、ガイド・フレームがこのブレードに当てはまるとみなされ、従って実行される。TBフィールドの1つ以上のビット位置の'1'bの値は、セルが対応するターゲット・ブレードに経路指定されることを示す。RESP/REQバーが'1'bのとき、このフィールドは応答ブレードのMy_TB値を含む。
【0116】
ガイド・フレームのワード1は、相関関係子の値を含む(図8)。この値はCPソフトウェアにより割当てられ、ガイド・フレーム応答をそれらの要求に相関付ける。相関関係子は、機能を割当てられた複数のビットを含む。
【0117】
あらゆるガイド・コマンドは、コマンド制御情報フィールドで開始する。このコマンド制御は、GCHピココードがガイド・フレームを処理するのを支援する情報を含む。この情報のフォーマットが図9に示される。
【0118】
レングス値:この値は、制御情報に含まれる32ビット・ワードの総数(コマンド・ワード0)、アドレス情報(コマンド・ワード1)、及びガイド・フレームのオペランド(コマンド・ワード2+)部分を含む。
【0119】
完了コード値:このフィールドはCPにより初期化され、ガイド・コマンドを処理するとき、GCHピココードにより変更される。GCHピココードはこのフィールドを、コマンド・リスト内の先行ガイド・コマンドの完了ステータスとして使用する。全てのガイド・コマンド・リストは、終了区切り文字ガイド・コマンドで終了するので、最後のコマンドの完了ステータスが、終了区切り文字の完了コード・フィールド内に含まれる。
【0120】
ガイド・コマンド(GC)タイプ値(シンボル名):
【表1】
【0121】
ガイド・フレームに含まれるアドレッシング情報は、ネットワーク・プロセッサのアドレッシング機構内の要素を識別する。アドレス情報フィールドの汎用形式が、図10に示される。
【0122】
インタフェース装置は32ビット・アドレッシング方式を採用する。このアドレッシング方式は、アドレス値を、インタフェース装置のあらゆるアクセス可能な構造に割当てる。これらの構造はプロセッサの内部に存在するか、プロセッサの制御に従い、インタフェースに接続される。これらの構造のあるものは、組み込みプロセッサ・コンプレックス(EPC)により、ウェブ・インタフェースと呼ばれる内部インタフェースを介してアクセスされる。残りの構造は、メモリ制御装置インタフェースを介してアクセスされる。全ての場合において、アドレスの汎用形式が図11に示される。
【0123】
ネットワーク制御装置は、主要チップ・アイランドに細分化される。各アイランドは固有のアイランドID値を与えられる。この5ビット・アイランドID値は、そのチップ・アイランドにより制御される構造のアドレスの、最上位5ビットを形成する。エンコード化されたアイランドID値とチップ・アイランド名との対応が、図12に示される。ウェブ・アドレスの第2の部分は、次の最上位23ビットを含む。このアドレス・フィールドは、構造アドレス部分と、エレメント・アドレス部分とに区分化される。各セグメントに対して使用されるビット数は、アイランド毎に異なる。一部のアイランドは数個の大きな構造だけを含むのに対して、他のアイランドは多くの小さな構造を含む。そうした理由から、これらのアドレス・セグメントには固定サイズが存在しない。構造アドレス部分は、アイランド内のアレイをアドレス指定するために使用されるのに対して、エレメント・アドレス部分は、アレイ内の要素をアドレス指定するために使用される。アドレスの残りの部分は、ウェブ・インタフェースの32ビット・データ・バス制限を調整する。この4ビット・ワード・アドレスは、アドレス指定されるエレメントの32ビット・セグメントを選択するために使用される。これは32ビットより広い構造エレメントを、ネットワーク制御装置のウェブ・データ・バスを介して、移動するために必要である。ワード・アドレス値'0'hは、構造エレメントの最上位32ビットを指し示すのに対して、順次ワード・アドレス値は、構造エレメントの連続的な下位セグメントに対応する。アドレスのワード・アドレス部分は、ウェブ・インタフェースを介してアクセスされない構造に対しては、要求されない。この理由から、アップ・データ・ストア、制御メモリ、及びダウン・データ・ストアは、アドレスの最下位27ビット全てを使用し、構造エレメントをアクセスする。このフォーマットの別の例外は、SPMインタフェースのアドレスである。この場合、アドレスの27ビット全てが使用され、32ビットよりも大きな幅のエレメントは存在しない。
【0124】
組み込みプロセッサ・コンプレックス(EPC)は、インタフェース素子チップのプログラマビリティを提供し制御する。これは次のコンポーネントを含む(図13参照)。
【0125】
N個の処理ユニット(GxHと呼ばれる):GxHは、共通命令メモリに記憶されるピココードを同時に実行する。各GxHは処理ユニット・コア(CLPと呼ばれる)を含み、これは3ステージ・パイプライン、16GPR、及びALUを含む。各GxHはまた、例えばツリー構造探索エンジンのように、幾つかのコプロセッサを含む。
【0126】
命令メモリ:初期化の間にロードされ、フレームを転送し、システムを管理するピココードを含む。
【0127】
ディスパッチャ:アップ及びダウン・ディスパッチャ・キューからフレーム・アドレスをデキューする。デキューの後、ディスパッチャがアップまたはダウン・データ・ストア(DS)から、フレーム・ヘッダの一部をプリフェッチし、これを内部メモリに記憶する。GxHがアイドルになると、ディスパッチャが直ちに、コード命令アドレス(CIA)のような適切な制御情報を有するフレーム・ヘッダを、GxHに渡す。ディスパッチャはまた、タイマ及び割込みを処理する。
【0128】
ツリー構造探索メモリ(TSM)アービタ:各GxHが使用可能な多数の共用内部メモリ位置及び外部メモリ位置が存在する。このメモリは共用されるので、メモリへのアクセスを制御するために、アービタが使用される。TSMはピココードにより直接アクセスされ、例えばエージング・テーブルを記憶するために使用される。TSMはまた、ツリー構造探索の間に、TSEによりアクセスされる。
【0129】
完了ユニット(CU):完了ユニットは2つの機能を実行する。第1に、これはN個の処理ユニットを、アップ及びダウンEDS(エンキュー、デキュー、及びスケジュール・アイランド)とインタフェースする。EDSはエンキュー・アクションを実行する。すなわち、フレーム・アドレスが、FCBページと呼ばれる適切なパラメータと一緒に、伝送キュー、廃棄キュー、またはディスパッチャ・キューのいずれかに、待ち行列化される。第2に、完了ユニットはフレーム・シーケンスを保証する。複数のGxHが、同一のフローに属するフレームを処理している可能性があるので、これらのフレームがアップまたはダウン伝送キューに正しい順序でエンキューされるように、事前注意が払われなければならない。完了ユニットは、フレーム・ディスパッチ時に分類子ハードウェア補助機構により生成されるラベルを使用する。
【0130】
分類子ハードウェア補助機構:アップ・フレームでは、分類子ハードウェア補助機構は、フレーム・フォーマットの周知のケースを分類する。分類結果はフレーム・ディスパッチの間に、CIA及び1つ以上のレジスタの内容に関して、GxHに渡される。ダウン・フレームでは、分類子ハードウェア補助機構は、フレーム・ヘッダに応じて、CIAを決定する。アップ及びダウン・フレーム・ディスパッチの両方のために、分類子ハードウェア補助機構は、フレーム・シーケンスを維持するために、完了ユニットにより使用されるラベルを生成する。
【0131】
アップ/ダウン・データ・ストア・インタフェース及びアービタ:各GxHはアップ及びダウン・データ・ストアをアクセスできる。すなわち、"より多くのFISH"を読出すとき、読出しアクセスが提供され、FISHプールの内容をデータ・ストアに書戻すとき、書込みアクセスが提供される。N個の処理ユニットが存在し、1度にそれらの1つだけがアップ・データ・ストアをアクセスでき、1度に1つだけがダウン・データ・ストアをアクセスできるので、各データ・ストアに対して、1つのアービタが必要とされる。
【0132】
ウェブ・アービタ及びウェブウォッチ・インタフェース:ウェブ・アービタはGxHの間で、ウェブへのアクセスを調停する。全てのGxHはウェブをアクセスでき、このことは、インタフェース装置内の全てのメモリ及びレジスタ機能をアクセスすることを可能にする。これにより、GxHは全ての構成領域を変更または読出すことができる。ウェブはインタフェース装置のメモリ・マップとみなされる。ウェブウォッチ・インタフェースは、3つのチップ入出力ピンを用いて、チップの外部からウェブ全体をアクセスできるようにする。
【0133】
デバッグ、割込み及び単一ステップ制御:ウェブはGCHまたはウェブウォッチャが、必要に応じて、チップ上の各GxHを制御することを可能にする。例えば、ウェブはGCHまたはウェブウォッチャにより、GxH上で命令を単一ステップ操作するために使用される。
【0134】
PowerPCなどの組み込み汎用プロセッサ:
4つのタイプのGxHが存在する(図14参照)。
【0135】
GDH(汎用データ・ハンドラ):8個のGDHが存在する。各GDHは完全なCLPと、5個のコプロセッサ(次のセクションで述べられる)を有する。GDHは主に、フレームを転送するために使用される。
【0136】
GCH(ガイド・セル・ハンドラ):GCHは、GDHと正に同一のハードウェアを有する。しかしながら、ガイド・フレームだけがGCHにより処理される。GCHがデータ・フレームについても処理できるか否かは(この場合、GCHはGDHの役割をする)、ウェブ上でプログラマブルである(CLP_Enaレジスタ)。GCHはGDHに比較して、追加のハードウェア、すなわち、ツリー挿入及び削除を実行するハードウェア補助機構を有する。GCHは、ガイド・セル関連ピココードを実行したり、エージングなどの、チップ及びツリー管理関連ピココードを実行したり、或いは制御情報をCPや別のGCHと交換するために使用される。実行すべきこうしたタスクが存在しない場合、GCHはフレーム転送関連ピココードを実行し、この場合、丁度GDHのように動作することになる。
【0137】
GTH(汎用ツリー・ハンドラ):GTHはツリー挿入、ツリー削除、及びロープ管理を実行する追加のハードウェア補助機構を有する。GPQ内に(ツリー管理コマンドを含む)フレームが存在しない場合、GTHはデータ・フレームを処理する。
【0138】
GPH(汎用PowerPCハンドラ):GPHはGDH及びGTHに比較して、追加のハードウェアを有する。GPHはメールボックス・インタフェース(I/F)を介して、汎用プロセッサとインタフェースする。
【0139】
GxHの数(10個)は"最善推量"(best-guess)である。性能評価により、実際に要求されるGxHの個数が決定される。アーキテクチャ及び構造は、より多くのGxHに向けて完全にスケーラブルであり、唯一の制限はシリコン面積である(より大きなアービタ及び命令メモリを含むはずである)。
【0140】
各GxHは、図15に示されるように構造化される。汎用レジスタ(GRP)及び演算論理ユニット(ALU)を有するCLPに加え、各GxHは次の5つのコプロセッサを含む。
【0141】
(DS)コプロセッサ・インタフェース:ディスパッチャ、並びにアップ及びダウン・データ・ストアへの読出し及び書込みアクセスを提供するサブアイランドとインタフェースする。DSインタフェースは、いわゆるFISHプールを含む。
【0142】
ツリー構造探索エンジン・コプロセッサ(TSE):TSEはツリー内の探索を実行し、ツリー構造探索メモリ(TSM)とインタフェースする。
【0143】
エンキュー・コプロセッサ:完了ユニット・インタフェースとインタフェースし、FCBページを含む。このコプロセッサは、ピココードがエンキュー・パラメータを含むFCBページを作成するために使用する追加のハードウェア補助機構と共に、256ビット・レジスタを含む。一旦FCBページが作成されると、ピコプロセッサがエンキュー命令を実行し、FCBページが完了ユニットに転送される。
【0144】
ウェブ・インタフェース・コプロセッサ:このコプロセッサはウェブ・アービタとのインタフェースを提供し、インタフェース装置への書込み及び読出しを可能にする。
【0145】
チェックサム・コプロセッサ:FISHプール(後述)に記憶されるフレーム上に、チェックサムを生成する。
【0146】
処理ユニットは、イングレス処理とイーグレス処理との間で共用される。イングレス処理対イーグレス処理において、どれだけの帯域幅が確保されるかは、プログラマブルである。現インプリメンテーションでは、2つのモデルが存在し、一方は50/50(すなわち、イングレス及びイーグレスが同じ帯域幅を獲得する)で、他は66対34(すなわち、イングレスがイーグレスの2倍の帯域幅を獲得する)である。
【0147】
処理ユニットの動作はイベント・ドリブン方式である。すなわち、フレームの到来がイベントとして、またタイマまたは割込みのポッピングとして扱われれる。ディスパッチャは異なるイベントを同様に扱う。但し、優先順位は存在する(第1が割込みで、第2がタイマ・イベントで、第3がフレーム到来イベント)。イベントが処理ユニットに渡されると、適切な情報が処理ユニットに与えられる。フレーム到来イベントでは、これはフレーム・ヘッダの一部と、ハードウェア分類子からの情報とを含む。タイマ及び割込みでは、これはコード・エントリ・ポイントと、イベントに関連する他の情報とを含む。
【0148】
フレームがイングレス側に到来し、このフレームの受信バイト数がプログラマブルしきい値を超える場合、フレーム制御ブロックのアドレスがGQに書込まれる。
【0149】
完全なフレームがイーグレス側で再組み立てされた場合、フレーム・アドレスがGQに書込まれる。4つのタイプのGQが存在する(そして、各タイプに対して、図14に示されるように、イングレス・バージョン及びイーグレス・バージョンが存在する)。すなわち、
GCQ:GCHにより処理されなければならないフレームを含む。
GTQ:GTHにより処理されなければならないフレームを含む。
GPQ:GPHにより処理されなければならないフレームを含む。
GDQ:任意のGDH(またはGCH/GTHがデータ・フレームを処理できる場合には、GCH/GTH)により処理され得るフレームを含む。GDQについては、複数の優先順位が存在し、高い優先順位でエンキューされたフレームは、低い優先順位でエンキューされたフレームより先に処理される。
【0150】
一部の処理ユニットは特殊化され得る。現インプリメンテーションでは、4つのタイプの処理ユニット(GxH)が存在する(図14参照)。すなわち、
GDH(汎用データ・ハンドラ):GDHは主に、フレームを転送するために使用される。
【0151】
GCH(ガイド・セル・ハンドラ):GCHは、GDHと正に同一のハードウェアを有する。しかしながら、ガイド・フレームだけがGCHにより処理される。GCHがデータ・フレームについても処理できるか否かは(この場合、GCHはGDHの役割をする)、ウェブ上でプログラマブルである(CLP_Enaレジスタ)。
【0152】
GTH(汎用ツリー・ハンドラ):GTHはGDH及びGCHに比較して、追加のハードウェア、すなわち、ツリー挿入、ツリー削除、及びロープ管理を実行するハードウェア補助機構を有する。GPQ内に(ツリー管理コマンドを含む)フレームが存在しない場合、GTHはデータ・フレームを処理する。
【0153】
GPH(汎用PowerPCハンドラ):GPHはGDH及びGTHに比較して、追加のハードウェアを有する。GPHはメールボックス・インタフェースを介して、組み込みPowerPCとインタフェースする。
【0154】
実際のインプリメンテーションでは、GCH、GTH及びGPHの役割は、単一の処理ユニット上で実現される。例えば、1インプリメンテーションはGCH及びGPHに対して、1つの処理ユニットを有する。類似のコメントがGCQ、GTO及びGPQについても適用できる。
【0155】
データ・ストア・コプロセッサの目的は、メディアから受信されたフレームを含むアップ・データ・ストアと、及びPrizma Atlanticから受信される再組み立て済みフレームを含むダウン・データ・ストアとインタフェースすることである。
【0156】
データ・ストア・コプロセッサはまた、タイマ・イベントまたは割込みのディスパッチの間に、構成情報を受信する。
【0157】
データ・ストア・コプロセッサは、フレーム上のチェックサムを計算できる。
【0158】
データ・ストア・コプロセッサはFISHプール(8FISHを保持できる)と、スクラッチ・メモリ(8FISHを保持できる)と、アップまたはダウン・データベースからFISHプール内容を読み書きする幾つかの制御レジスタとを含む。FISHプールは、データ・ストアのためのある種の作業領域とみなされる。すなわち、データ・ストアを直接読み書きする代わりに、大量のフレーム・データがデータ・ストアからFISHプールに読出されるか、大量のデータがFISHプールからデータ・ストアに書込まれる。転送の単位はFISHすなわち16バイトである。
【0159】
FISHプールは、8FISH、すなわち各々が128ビットの8ワード分を含むことができるメモリとみなされる。CLPプロセッサ・アーキテクチャでは、FISHプールは128バイトのレジスタ・アレイである。FISHプール内の各バイトは、7ビット・バイト・アドレス(0乃至127)を有し、アクセスは16ビットまたは32ビット・ベースで行われる。全てのレジスタ・アレイ同様、FISHプールは循環アドレス方式を有する。すなわち、FISHプール内のロケーション126で開始するワード(すなわち4バイト)のアドレス指定は、バイト126、127、0及び1を返却する。更に、データ・ストア・コプロセッサの観点から、FISHプール内のFISHロケーションは、3ビットのFISHアドレスを有する。
【0160】
フレーム・ディスパッチに際して、フレームの最初のN個のFISHが、ディスパッチャにより自動的にFISHプールにコピーされる。Nの値は、ポート構成メモリ(PortConfigMemory)内でプログラマブルである。一般に、アップ・フレーム・ディスパッチでは、Nは4に等しく、ダウン・ユニキャスト・フレーム・ディスパッチでは2で、ダウン・マルチキャスト・フレーム・ディスパッチでは4で、割込み及びタイマでは0である。
【0161】
ピココードはフレームからより多くのバイトを読出すことができ、この場合、データ・ストア・コプロセッサが自動的に、フレーム・データをFISHプール内の次のFISHアドレスに読出し、FISHプールの境界に達すると、自動的に0に循環する。また、ピココードはアップ/ダウン・データ・ストアを絶対アドレスにおいて読み書きすることもできる。
【0162】
ウェブ・コプロセッサはEPCウェブ・アービタとインタフェースする。EPCウェブ・アービタは10個のGxHとウェブウォッチャとの間で、インタフェース装置のウェブ・インタフェース上でマスタになるものを調停する。これは全てのGxHがウェブ上で読み書きすることを可能にする。
【0163】
インタフェース装置のメモリ・コンプレックスは、図13に示される組み込みプロセッサ・コンプレックス(EPC)の記憶機構を提供する。メモリ・コンプレックスはツリー構造探索メモリ(TSM)アービタと、複数のオンチップ及びオフチップ・メモリを含む。メモリはツリー構造、カウンタ、及びピココードによりメモリ・アクセスを要求される他のものを記憶する。更に、メモリはフリー・リストやキュー制御ブロックなど、ハードウェアにより使用されるデータ構造を記憶するために使用される。ツリーのために割当てられない、またはハードウェアにより使用されないメモリ・ロケーションは、デフォルトでは、ピココードがカウンタやエージング・テーブルとして使用することができる。
【0164】
図16は、メモリ・コンプレックスの詳細ブロック図を示す。ツリー構造探索メモリ(TSM)アービタが、組み込みプロセッサ(GxH)とメモリとの間の通信リンクを提供する。メモリは5個のオンチップSRAMと、1個のオフチップSRAMと、7個のオフチップDRAMとを含む。TSMアービタは、10個の要求制御ユニット(各々が組み込みプロセッサGxHの1つに接続される)と、13個のメモリ・アービタ・ユニット(各々が各メモリに対応する)とを含む。各制御ユニット及びその接続されるGxHが、全てのメモリをアクセスできるように、バス構造が要求制御ユニット及びアービタ・ユニットを相互接続する。
【0165】
制御ユニットは、組み込みプロセッサ(GxH)とアービタとの間で、データを方向付けするために必要なハードウェアを含む。
【0166】
SRAMアービタ・ユニットはとりわけ、組み込みプロセッサGxHとオンチップ及びオフチップSRAMとの間の、データのフローを管理する。
【0167】
DRAMアービタ・ユニットはとりわけ、組み込みプロセッサGxHとオフチップDRAM素子との間のデータのフローを管理する。
【0168】
各メモリ・アービタは"バックドア"(back-door)アクセスを含み、これは一般にチップの他の部分により使用され、最も高いアクセス優先順位を有する。
【0169】
DRAMメモリは2つの動作モードで実行できる。すなわち、
1)TDMモード:DRAM内の4つのバンクへのメモリ・アクセスが、読出しウィンドウ及び書込みウィンドウを交互することにより実行される。読出しウィンドウでは、4つのバンクのいずれかへのアクセスが読出し専用であり、書込みウィンドウでは、4つのバンクのいずれかへのアクセスが書込み専用である。複数のDRAMに対してTDMモードを使用することにより、DRAM間で幾つかの制御信号を共用することが可能になり、希少資源である幾つかのチップ入出力を節約できる。
【0170】
2)非TDMモード:DRAM内の4つのバンクへのメモリ・アクセスが、読出しと書込みの組み合わせとなり得、これは特定の規則に従わねばならない。例えば、アクセス・ウィンドウ内で、バンクAでは読出しを、バンクCでは書込みを実行できる。
【0171】
TSMアービタは、N個のリクエスタが同時にM個のメモリをアクセスすることを可能にする。複数のリクエスタが同一のメモリをアクセスしたい場合、ラウンドロビン・アービトレーションが実行される。
【0172】
M個のメモリは異なるプロパティを有することができる。現インプリメンテーションでは、3つのメモリ・タイプ、すなわち、内部SRAM、外部SRAM、及び外部DRAMが存在する。
【0173】
M個のメモリ及びNリクエスタは同種(homogeneous)であり、任意のリクエスタが任意のメモリをアクセスできる。
【0174】
一部のメモリは複数のサブメモリ(DRAM内の4つのバンクなど)に論理的に分割され、これらは論理的に同時にアクセスできる。
【0175】
M個のメモリの一部は、内部的に使用されるデータ構造を含む制御メモリとして使用され、これらはピコプロセッサと比較して、高い優先アクセスを有する。このことはまたチップのでバッグを可能にする。なぜなら、ピコプロセッサは制御メモリの内容を読出すことができるからである。
【0176】
アービタは読出しアクセス、書込みアクセス、及びread-add-writeをサポートする。それにより、Nビット整数がアトミック演算において、メモリの内容に追加される。
【0177】
また、メモリ内のオブジェクトの物理ロケーションが透過的となるように、汎用アドレス方式が、M個のメモリをアクセスするために使用される。
【0178】
ツリーの概念は、ツリー構造探索エンジンにより、情報を記憶及び検索するために使用される。検索、すなわちツリー探索及び挿入並びに削除は、キーにもとづき実行される。ここでキーは、例えばMACソース・アドレスのようなビット・パターンであるか、IPソース・アドレスとIP宛先アドレスの連結である。少なくともキーを含む情報が、リーフと呼ばれる制御ブロック内に記憶される(後述のように、記憶ビット・パターンは実際にはハッシュ・キーである)。リーフは更に、エージング情報などの追加の情報や、ターゲット・ブレード及びターゲット・ポート番号などの情報を転送するユーザ情報を含み得る。
【0179】
3つのタイプ(FM、LPM、SMT)、及び関連ツリー・タイプ探索、すなわち、固定マッチ、ソフトウェア管理ツリー、及び最長プレフィックス・マッチが存在する。ツリー探索の間にリーフをチェックするオプションの追加の基準は、ベクトルマスクである。ローピング、エージング及びラッチは、探索性能を向上させるために使用される。
【0180】
FMツリーの探索アルゴリズムが、図17に示される。探索アルゴリズムはキーを含む入力パラメータに作用し、キーにハッシュを実行し、ダイレクト・テーブル(DT)をアクセスし、パターン探索制御ブロック(PSCB)を通じてツリーを探索し、リーフに行き着く(図17)。3つのタイプのツリーが存在し、各々は異なる規則に従いツリー探索を発生させる独自の探索アルゴリズムを有する。例えば、固定マッチ(FM)ツリーでは、データ構造がパトリシア・ツリーである。リーフが見いだされるとき、このリーフは入力キーに一致する唯一の可能な候補である。ソフトウェア管理ツリーでは、リンク・リスト内でチェーニングされる複数のリーフが存在し得る。この場合、一致が見いだされるか、チェーンが尽きるまで、チェーン内の全てのリーフが入力キーと符合される。入力キーをリーフに記憶されるパターンと比較するいわゆる"最終比較"(compare at the end)操作が、リーフが真に入力キーに一致するか否かを確認する。リーフが見いだされ、一致が発生するとき、探索結果はOKであり、他の全ての場合にはKOである。
【0181】
探索操作への入力は、次のパラメータを含む。すなわち、
キー(128ビット):キーは探索(または挿入/削除)の前に、特殊なピココード命令を用いて作成される。1つのキー・レジスタだけが存在する。しかしながら、ツリー構造探索が開始されると、キー・レジスタはTSEが探索を実行するのと並行して、ピココードにより、次の探索のキーを作成するために使用される。これはTSEがキーをバッシュ(bash)し、結果を内部ハッシュドキー・レジスタに記憶することによる(従って、実際には2つのキー・レジスタが存在する)。
【0182】
キー・レングス(7ビット):このレジスタはキーの長さを含み、ビットで表す。これはキーの作成の間に、ハードウェアにより自動的に更新される。
【0183】
LU定義指標(LUDefindex)(8ビット):これは探索が発生するツリーの完全な定義を含むLU定義テーブル(LUDefTable)への指標である。LU定義テーブルは以下で詳述される。
【0184】
TSRNr(1ビット):探索結果はツリー探索結果領域0(TSR0)またはTSR1に記憶される。これはTSRNrにより指定される。TSEが探索を行っている間、ピココードは他のTSRをアクセスし、前の探索の結果を分析することができる。
【0185】
ベクトル指標(6ビット):ベクトルマスクをイネーブルされるツリーでは(LU定義テーブル内で指定される)、ベクトル指標がベクトルマスク内のビットを示す。探索の終わりに、このビットの値が返却され、ピココードにより使用される。
【0186】
図17に示されるように、入力キーはハッシュドキーにハッシュされる。使用可能な6つの固定ハッシュ・アルゴリズムが存在する(1つの"アルゴリズム"はハッシュ関数を実行しない)。どのアルゴリズムが使用されるかについては、LU定義テーブル内で指定される。プログラマブル・ハッシュ関数が、柔軟性を追加するために使用され得る。
【0187】
ハッシュ関数の出力は常に128ビット数であり、オリジナル入力キーとハッシュ関数の出力との間には、1対1対応が存在する。後述のように、この特性はダイレクト・テーブルの後で開始するツリーの深さを最小化する。
【0188】
図17の場合のように、カラーがツリーに対して許可される場合、16ビット・カラー・レジスタが128ビット・ハッシュ関数出力に挿入される。挿入はダイレクト・テーブルの直後に発生する。すなわち、図示のように、ダイレクト・テーブルが2N個のエントリを含む場合、16ビット・カラー値がビット位置Nに挿入される。ハッシュ関数の出力は、挿入されるカラー値(イネーブルされる場合)と一緒に、ハッシュドキー・レジスタに記憶される。
【0189】
ハッシュ関数は、その出力内のほとんどのエントロピが最上位ビット側に存在するように定義される。ハッシュドキー・レジスタの最上位Nビットは、ダイレクト・テーブル(DT)への指標を計算するために使用される。
【0190】
探索はダイレクト・テーブルへのアクセスにより開始する。すなわち、ダイレクト・テーブル(DT)エントリがダイレクト・テーブルから読出される。DTエントリを読出すために使用されるアドレスは、ハッシュドキーの最上位Nビットから計算され、LU定義テーブル内で定義されるツリー属性に関しても同様である。これについては以下で詳述される。DTエントリはツリーのルートとみなされる。使用される特定のツリー・データ構造は、ツリー・タイプに依存する。この時点では、パトリシア・ツリー・データ構造がFMツリーとして、及びLPM及びSMTツリーのためのパトリシア・ツリーの拡張として使用されることを述べれば十分であろう。
【0191】
8エントリ・ダイレクト・テーブル(DT)の使用例が、図18に示される。DTを使用することにより、探索時間(すなわち、アクセスされなければならないPSCBの数)が低減される。従って、DTサイズを増加することにより、メモリ使用と探索性能との間でトレードオフが生じる
【0192】
図18から明らかなように、DTエントリは次の情報を含む。すなわち、
1)エンプティ:このDTエントリに接続されるリーフは存在しない。
2)リーフを指し示すポインタ:このDTエントリに接続される1つのリーフが存在する。
3)PSCBを指し示すポインタ:このDTエントリに接続される2つ以上のリーフが存在する。DTエントリはツリーのルートを定義する。
【0193】
ソフトウェア管理ツリーの探索アルゴリズム、及びツリーを生成するアルゴリズムが、米国特許出願第09/312148号で述べられている。
【0194】
"選択ビット・アルゴリズム"と称されるアルゴリズムは、特定のメトリックを使用し、規則のセットまたは領域内の"ルール"と称されるアイテムから選択されるビットにもとづき、二分探索ツリーを作成する。ここで述べる全ての例は、インターネット・プロトコル(IP)ヘッダに関連して議論されるが、任意のタイプの固定フォーマット・ヘッダが代わりに使用され得る。
【0195】
IPでは、各ルールは次のサブセクション、すなわちソース・アドレス(SA)、宛先アドレス(DA)、ソース・ポート(SP)、宛先ポート(DP)、及びプロトコル(P)で作成される、特定のキーに関する。これらのデータはそれぞれ32、32、16、16及び8ビット長であり、従ってテストされるキーは104ビットから成る。選択ビット・アルゴリズムは、104ビットの内の特に有用な幾つかのビットを見いだす。実際に2、3のビットをテストすることは、1つのルールを除く全てを、または2、3のルールを除く全てを、可能なアプリケーションから削除する。一部のルールでは、単純な比較操作による不等テストもまたふさわしい。ビット・テスト及び比較は、二分木において論理的に編成される。ツリーは、ビットを高速にテスト可能なハードウェア構造にマップされる。こうしたテストの結果、キーが適合する1つのルールまたは少数のルール(リーフ・チェーンと呼ばれる)が生成される。前者の場合、キーがルールにより詳細にテストされる。後者の場合、比較及び完全ルール・テストにより、キーがテストの枠内でテストされる。
【0196】
ルール・セット内の各ルールは、規則がキーに適合する最高優先順位の規則の場合に取られるアクションに関連付けられる。ルールは交差する(すなわち、1つのキーが2つまたはそれ以上のルールに適合する)。その場合、ルールは優先順位番号1、2、3、・・・を与えられ、任意の2つの交差するルールが異なる優先順位を有する(キーが2つ以上のルールに適合する場合、管理者はどのルールが上位になるかを宣言しなければならない)。従って、ビット・テスト及び比較後に、依然2つ以上のルールがテストされる場合、ルールは優先順位に従いテストされる。低い優先順位番号が、高い優先順位のルールを指定する。
【0197】
全く適合が見いだされない場合、デフォルト規定が指定される。
【0198】
最長プレフィックス・マッチング法の探索アルゴリズムが、米国特許第5787430号で述べられている。この方法は、前記データベースのノード(ルートノード)において入力するステップと、次の(子)ノードを識別するのに必要なエントリ部分だけを含む探索引数のセグメントと、第2のリンク情報とを、前記セグメントが消費されるか、前記第2のリンク情報を欠く(リーフ)ノードに達するまで連続的に処理することにより、ツリー状データベースを通じてあるノードから別のノードへの探索パスを決定するステップと、前記探索引数を、前記探索パスが終了するノードに記憶されるエントリと比較するステップと、前記現ノードにおいて、前記探索引数と前記エントリとの間に、少なくとも部分的な一致が見いだされない場合、前記現ノードの第1のリンク情報を処理することにより、前記探索パスを後戻りするステップと、前記少なくとも部分的な一致が見いだされるか、または前記ルート・ノードに達するまで、前の2つのステップを繰り返すステップとを含む。
【0199】
図19は、メイン・スイッチング・ファブリック装置の実施例を示す。好適には、各インタフェース素子チップは、少なくとも2つの集積化並列直列変換ポートを有し、これらは並列データを受信して、それを高速直列データ・ストリームに変換する。そして、直列データがシリアル・リンクを介して、スイッチング・ファブリック装置に転送される。高速シリアル・リンクを介してスイッチング・ファブリック装置から受信されるデータは、別のDASLにより、並列データに変換される。データ・アライン・シリアル・リンク(DASL)と称されるシリアライザ/デシリアライザの実施例が、ここでは述べられる。
【0200】
少なくとも1つのDASLが、スイッチング・ファブリック装置をシリアル・リンクにインタフェースする。シリアル・リンクからのデータは、並列データに変換され、これがスイッチング・ファブリック装置に転送する。同様に、スイッチング・ファブリック装置からの並列データは直列データに変換され、シリアル・リンクに転送される。シリアル・リンクはスループットを向上するために集約される。
【0201】
図19を更に参照すると、スイッチング・システムはスイッチ・ファブリック11と、スイッチ・ファブリック入力ポート15(15−1,..,15−k)に接続される入力スイッチ・アダプタ13(13−1,..,13−k)と、スイッチ・ファブリック出力ポート19(19−1,..,19−p)に接続される出力スイッチ・アダプタ17(17−1,..,17−p)とを含む。
【0202】
着信及び発信伝送リンク21(21−1,..,21−g)及び23(23−1,..,23−r)は、それぞれ回線(リンク)アダプタ25(25−1,25−g)及び27(27−1,..,27−r)により、スイッチ・システムに接続される。伝送リンクは、ワークステーションや電話器などの接続ユニット(リンク指定WS)に、或いはローカル・エリア・ネットワーク(リンク指定LAN)に、更にサービス統合デジタル網(ISDN)(リンク指定ISDN)や他の通信システムに、回線交換またはパケット交換トラフィックを伝搬する。更に、プロセッサはスイッチ・アダプタ13及び17に直接接続される。回線アダプタ(LA)及びスイッチ・アダプタ(SA)は、共通のインタフェースを有する。
【0203】
入力スイッチ・アダプタでは、パケット交換及び回線交換インタフェースから様々なサービスが収集され、一様なミニパケット(幾つかの可能な固定長の1つを有する)に変換される。ルーティング情報を含むヘッダは、スイッチの要求出力ポート(及び出力リンク)を指定する。入力スイッチ・アダプタ内でのミニパケット・フォーマット及びミニパケット生成に関する詳細、及び出力スイッチ・アダプタ内でのパケット解除に関する詳細について、次に述べることにする。
【0204】
スイッチ・ファブリックはミニパケットを、高速自己ルーティング相互接続ネットワークを介して、任意の入力ポートから任意の出力ポートに経路指定する。自己ルーティング・ネットワークの構造は、ミニパケットが競合無しに、内部的に同時に経路指定されることである。
【0205】
スイッチング・システムの心臓部は、スイッチ・ファブリックである。2つの異なるインプリメンテーションが考慮され、これらについて次に述べる。1インプリメンテーションでは、スイッチ・ファブリックは、各入力ポートに対して、それぞれの入力ポートを全ての出力ポートに接続する自己ルーティング二分木を含み、(k個の入力ポートが提供される場合、)k個のこうした二分木が組み合わされて提供される。他のインプリメンテーションでは、出力RAMを有するバス構造が、各出力構造に対してスライスとして提供され、全ての入力ポートをそれぞれの出力ポートに接続する。(p個の出力ポートが提供される場合、)スイッチ・ファブリックは、p個のこうしたスライスを組み合わせて提供される。
【0206】
DASLについては、1999年6月11日出願の米国特許出願第09/330968号で述べられている。DASLインタフェースは、CMOS ASICなどのパラレル・インタフェースからデータを受信し、パラレル・インタフェースからのビットを、少数の並列ビット・ストリームに区分化する。少数の並列ビット・ストリームが次に高速直列ストリームに変換され、これが伝送メディアを介して、他のモジュールの受信機に移送される。制御インピーダンスを有する差動ドライバが、データの直列ビット・ストリームを伝送メディアに駆動する。
【0207】
DASLは、Nビット並列データとして表されるデータ・ストリームを、各々がnビット(但しnはNの分数)を有する複数の部分に構文解析し、データ・ストリームの各nビット部分を直列化し、直列化された各部分を複数の並列チャネルの対応するチャネルを介して転送し、データ・ストリームの各転送部分を非直列化し、データ・ストリームをNビット並列データとして復元する。
【0208】
以上、図面を参照しながら、本発明の好適な実施例について述べてきた。説明の中で使用された特定の用語は総称的な意味を成すもので、限定的な意味で使用されるものではない。
【図面の簡単な説明】
【図1】 本発明に従うインタフェース装置のブロック図である。
【図2】 MACのブロック図である。
【図3】 異なるシステム構成内の他のコンポーネントと相互接続されるインタフェース装置を示す図である。
【図4】 カプセル化されたガイド・フレームのフロー及び処理を示す図である。
【図5】 内部ガイド・フレームのフロー及び処理を示す図である。
【図6】 ガイド・セルの汎用フォーマットを示す図である。
【図7】 フレーム制御情報のフォーマットを示す図である。
【図8】 相関関係子のフォーマットを示す図である。
【図9】 コマンド制御情報フォーマットを示す図である。
【図10】 アドレッシング情報フォーマットを示す図である。
【図11】 構造アドレッシングの汎用形式を示す図である。
【図12】 アドレッシング、アイランド・エンコードを示す表である。
【図13】 組み込みプロセッサ・コンプレックスのブロック図である。
【図14】 組み込みプロセッサの概略図である。
【図15】 GxHプロセッサの構造を示す図である。
【図16】 メモリ・コンプレックスのブロック図である。
【図17】 固定マッチ(FM)検索アルゴリズムのフローチャートである。
【図18】 ダイレクト・テーブルを使用する場合と、使用しない場合のデータ構造を示すフローである。
【図19】 Prizmaなどのスイッチング・システムのブロック図である。
【図20】 CPのブロック図である。
【図21】 EDS−UP、EDS DOWN及びEPCにおける、シングルチップ・ネットワーク・プロセッサの強調表示機能のブロック図である。
【符号の説明】
10、38 インタフェース装置
12 組み込みプロセッサ・コンプレックス(EPC)
14 多重化MACアップ(PPM−UP)、多重化MAC
16 エンキュー−デキュー−スケジューリング・アップ(EDS−UP)
18 スイッチ・データ・ムーバ・アップ(SDM−UP)
20、30 システム・インタフェース(SIF)
22 データ・アライン・シリアル・リンクA(DASLA)
24 データ・アライン・シリアル・リンクB(DASLB)
32 SDM−DN
34 EDS−DN
36 イーグレス・イーサネット(R)MAC
40 トラフィック管理スケジューラ
Claims (4)
- 半導体基板上に形成されるネットワーク・プロセッサであって、
半導体基板と、
前記基板上に形成され、ネットワークから当該ネットワーク・プロセッサに送られるフレームに応答するインバウンド・データ・フロー論理と、
前記基板上に形成され、前記インバウンド・データ・フロー論理に動作的に接続されて、前記インバウンド・データ・フロー論理から前記フレームを受信し、前記フレームを、複数のネットワーク・プロセッサを結合するスイッチ用のセルにフォーマットするフォーマット論理と、
前記基板上に形成され、前記フォーマット論理に動作的に接続されて、前記フォーマット論理から前記セルを受信するインバウンド・システム・インタフェース論理と、
前記基板上に形成される第1の入出力ポートと、
前記基板上に形成され、前記インバウンド・システム・インタフェース論理及び前記第1の入出力ポートに動作的に接続され、前記インバウンド・システム・インタフェース論理から前記第1の入出力ポートに、前記セルを受け渡す第1の高速インタフェース論理と、
前記基板上に形成される第2の入出力ポートと、
前記基板上に形成され、前記第2の入出力ポートに動作的に接続されて、前記第2の入出力ポートからセルを受信する第2の高速インタフェース論理と、
前記基板上に形成され、前記第2の高速インタフェース論理に動作的に接続され、前記第2の高速インタフェース論理から前記セルを受信するアウトバウンド・システム・インタフェース論理と、
前記基板上に形成され、前記アウトバウンド・システム・インタフェース論理に動作的に接続されて、前記アウトバウンド・システム・インタフェース論理から前記セルを受信し、当該ネットワーク・プロセッサから前記ネットワークに送られるフレームを形成するフレーム形成論理と、
前記基板上に形成され、前記インバウンド・データ・フロー論理、前記フォーマット論理、前記インバウンド・システム・インタフェース論理、前記アウトバウンド・システム・インタフェース論理、及びフレーム形成論理と動作的に接続されて、これらの動作を制御し、前記フレームを当該ネットワーク・プロセッサを通じて受け渡す、複数のプロセッサを含む組み込みプロセッサ・コンプレックスと
を含むネットワーク・プロセッサ。 - 前記基板上に形成され、インバウンド及びアウトバウンド・データ・フローをネットワークと交換する複数の入出力メディア・ポートを含む、請求項1に記載のネットワーク・プロセッサ。
- 前記入出力メディア・ポートが、前記基板上に形成され、前記入出力メディア・ポートを前記インバウンド・データ・フロー論理に動作的に相互接続するインバウンド多重化MACと、前記基板上に形成され、前記入出力メディア・ポートを前記アウトバウンド・データ・フロー論理に動作的に相互接続するアウトバウンド多重化MACとを含む、請求項2記載のネットワーク・プロセッサ。
- 前記入出力メディア・ポートがイーサネット(R)ポートを含む、請求項2または3記載のネットワーク・プロセッサ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/384,689 US6766381B1 (en) | 1999-08-27 | 1999-08-27 | VLSI network processor and methods |
US09/384,689 | 1999-08-27 | ||
PCT/US2000/020798 WO2001016682A1 (en) | 1999-08-27 | 2000-08-24 | Vlsi network processor and methods |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003508951A JP2003508951A (ja) | 2003-03-04 |
JP3817477B2 true JP3817477B2 (ja) | 2006-09-06 |
Family
ID=23518338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001520572A Expired - Fee Related JP3817477B2 (ja) | 1999-08-27 | 2000-08-24 | Vlsiネットワーク・プロセッサ及び方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6766381B1 (ja) |
EP (1) | EP1222517A4 (ja) |
JP (1) | JP3817477B2 (ja) |
KR (1) | KR100498824B1 (ja) |
CN (1) | CN1239984C (ja) |
WO (1) | WO2001016682A1 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6985431B1 (en) * | 1999-08-27 | 2006-01-10 | International Business Machines Corporation | Network switch and components and method of operation |
CA2424675A1 (en) | 2000-10-17 | 2002-04-25 | Routescience Technologies, Inc. | Method and apparatus for performance and cost optimization in an internetwork |
US7080161B2 (en) * | 2000-10-17 | 2006-07-18 | Avaya Technology Corp. | Routing information exchange |
US7487237B2 (en) * | 2000-10-17 | 2009-02-03 | Avaya Technology Corp. | Load optimization |
US7349994B2 (en) | 2000-10-17 | 2008-03-25 | Avaya Technology Corp. | Method and apparatus for coordinating routing parameters via a back-channel communication medium |
US8023421B2 (en) * | 2002-07-25 | 2011-09-20 | Avaya Inc. | Method and apparatus for the assessment and optimization of network traffic |
US7720959B2 (en) | 2000-10-17 | 2010-05-18 | Avaya Inc. | Method and apparatus for characterizing the quality of a network path |
US7756032B2 (en) | 2000-10-17 | 2010-07-13 | Avaya Inc. | Method and apparatus for communicating data within measurement traffic |
US7000011B1 (en) * | 2000-11-06 | 2006-02-14 | Hewlett-Packard Development Company, Lp. | Designing interconnect fabrics |
US6987760B2 (en) * | 2001-03-05 | 2006-01-17 | International Business Machines Corporation | High speed network processor |
US7149212B2 (en) | 2001-03-21 | 2006-12-12 | International Business Machines Corporation | Apparatus, method and limited set of messages to transmit data between scheduler and a network processor |
US7085266B2 (en) | 2001-03-21 | 2006-08-01 | International Business Machines Corporation | Apparatus, method and limited set of messages to transmit data between components of a network processor |
US6940854B1 (en) * | 2001-03-23 | 2005-09-06 | Advanced Micro Devices, Inc. | Systems and methods for determining priority based on previous priority determinations |
US6834307B2 (en) * | 2001-06-26 | 2004-12-21 | Intel Corporation | Event-based application layer switching for high-speed protocol processing |
US20030037154A1 (en) * | 2001-08-16 | 2003-02-20 | Poggio Andrew A. | Protocol processor |
US8195705B2 (en) * | 2001-12-11 | 2012-06-05 | International Business Machines Corporation | Hybrid search memory for network processor and computer systems |
US8782287B2 (en) * | 2001-12-21 | 2014-07-15 | Agere Systems Llc | Methods and apparatus for using multiple reassembly memories for performing multiple functions |
US7088719B2 (en) * | 2001-12-21 | 2006-08-08 | Agere Systems Inc. | Processor with packet processing order maintenance based on packet flow identifiers |
US20030145294A1 (en) * | 2002-01-25 | 2003-07-31 | Ward Julie Ann | Verifying interconnect fabric designs |
US9009004B2 (en) * | 2002-01-31 | 2015-04-14 | Hewlett-Packasrd Development Comany, L.P. | Generating interconnect fabric requirements |
US6973503B2 (en) | 2002-05-23 | 2005-12-06 | International Business Machines Corporation | Preventing at least in part control processors from being overloaded |
US7218640B2 (en) * | 2002-08-30 | 2007-05-15 | Intel Corporation | Multi-port high-speed serial fabric interconnect chip in a meshed configuration |
US7573898B2 (en) * | 2003-12-29 | 2009-08-11 | Fujitsu Limited | Method and apparatus to double LAN service unit bandwidth |
US7684355B2 (en) * | 2007-03-19 | 2010-03-23 | Cisco Technology, Inc. | Transparent wireless bridge route aggregation |
US9154394B2 (en) * | 2010-09-28 | 2015-10-06 | Brocade Communications Systems, Inc. | Dynamic latency-based rerouting |
WO2013185111A2 (en) | 2012-06-07 | 2013-12-12 | Apple Inc. | Methods and apparatus for synchronization among integrated circuits within a wireless network |
US10102175B2 (en) * | 2013-03-15 | 2018-10-16 | Apple Inc. | Methods and apparatus for multi-drop digital bus |
CN103701587B (zh) * | 2013-12-10 | 2017-04-19 | 中国船舶重工集团公司第七0九研究所 | 一种多接口密码模块并行调度方法 |
US10085224B2 (en) | 2014-11-19 | 2018-09-25 | Apple Inc. | Methods and apparatus for synchronization of media playback within a wireless network |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8407223D0 (en) * | 1984-03-20 | 1984-04-26 | British Telecomm | Broadband digital transmission systems |
US4703475A (en) * | 1985-12-04 | 1987-10-27 | American Telephone And Telegraph Company At&T Bell Laboratories | Data communication method and apparatus using multiple physical data links |
US4715030A (en) * | 1986-08-04 | 1987-12-22 | General Electric Company | Local area network bridge |
US5018138A (en) | 1987-11-10 | 1991-05-21 | Echelon Systems Corporation | Protocol for network having a plurality of intelligent cells |
US5357632A (en) * | 1990-01-09 | 1994-10-18 | Hughes Aircraft Company | Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors |
EP0441087B1 (en) | 1990-02-08 | 1995-08-16 | International Business Machines Corporation | Checkpointing mechanism for fault-tolerant systems |
US5590345A (en) | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
AU1587592A (en) | 1991-03-18 | 1992-10-21 | Echelon Corporation | Networked variables |
ATE149276T1 (de) * | 1991-05-08 | 1997-03-15 | Semaphore Inc | Gerät und verfahren zur parallelen und regelgestützten datenübertragung |
US5379297A (en) * | 1992-04-09 | 1995-01-03 | Network Equipment Technologies, Inc. | Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode |
US5282196A (en) * | 1991-10-15 | 1994-01-25 | Hughes Aircraft Company | Bursted and non-bursted data router |
US5742760A (en) | 1992-05-12 | 1998-04-21 | Compaq Computer Corporation | Network packet switch using shared memory for repeating and bridging packets at media rate |
EP0597205B1 (en) * | 1992-09-07 | 2003-04-09 | Hitachi, Ltd. | Multiprocessor system and method of communication among processors |
SE515419C2 (sv) * | 1993-06-15 | 2001-07-30 | Ericsson Telefon Ab L M | Förfarande och anordning för resekvensiering |
JPH0729376A (ja) | 1993-07-14 | 1995-01-31 | Ricoh Co Ltd | 半導体メモリ装置及びデータ読み書き方法 |
US5872784A (en) * | 1993-10-20 | 1999-02-16 | Lsi Logic Corporation | High speed single chip digital video network apparatus |
GB9411357D0 (en) | 1994-06-07 | 1994-07-27 | Newbridge Networks Corp | Data transmission system |
US5655149A (en) | 1994-06-10 | 1997-08-05 | Harris Corporation | System for identifying a primary processor and non-primary processors after system reboot independent of processor positions and without using default primary processor identification |
US5659718A (en) * | 1994-08-19 | 1997-08-19 | Xlnt Designs, Inc. | Synchronous bus and bus interface device |
US5828903A (en) * | 1994-09-30 | 1998-10-27 | Intel Corporation | System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer |
US5598541A (en) * | 1994-10-24 | 1997-01-28 | Lsi Logic Corporation | Node loop port communication interface super core for fibre channel |
US5878217A (en) * | 1994-11-21 | 1999-03-02 | Cirrus Logic, Inc. | Network controller for switching into DMA mode based on anticipated memory overflow and out of DMA mode when the host processor is available |
US5566170A (en) * | 1994-12-29 | 1996-10-15 | Storage Technology Corporation | Method and apparatus for accelerated packet forwarding |
US5768475A (en) * | 1995-05-25 | 1998-06-16 | Pavilion Technologies, Inc. | Method and apparatus for automatically constructing a data flow architecture |
JP2000501346A (ja) | 1995-11-29 | 2000-02-08 | テトラ ラバル ホールデイングス エ フイナンス ソシエテ アノニム | 高集積多層材料の製造方法 |
US5777987A (en) * | 1995-12-29 | 1998-07-07 | Symbios, Inc. | Method and apparatus for using multiple FIFOs to improve flow control and routing in a communications receiver |
US5870394A (en) * | 1996-07-23 | 1999-02-09 | Northern Telecom Limited | Method and apparatus for reassembly of data packets into messages in an asynchronous transfer mode communications system |
US5748905A (en) * | 1996-08-30 | 1998-05-05 | Fujitsu Network Communications, Inc. | Frame classification using classification keys |
US5864535A (en) | 1996-09-18 | 1999-01-26 | International Business Machines Corporation | Network server having dynamic load balancing of messages in both inbound and outbound directions |
WO1998035480A1 (en) * | 1997-02-11 | 1998-08-13 | Xaqti Corporation | Media access control micro-risc stream processor and method for implementing the same |
CN1276072A (zh) | 1997-08-07 | 2000-12-06 | 斯特凡·A·德斯赫雷弗 | 微型机电集成控制系统 |
-
1999
- 1999-08-27 US US09/384,689 patent/US6766381B1/en not_active Expired - Fee Related
-
2000
- 2000-08-24 KR KR10-2002-7002334A patent/KR100498824B1/ko not_active IP Right Cessation
- 2000-08-24 WO PCT/US2000/020798 patent/WO2001016682A1/en not_active Application Discontinuation
- 2000-08-24 CN CNB008120609A patent/CN1239984C/zh not_active Expired - Lifetime
- 2000-08-24 EP EP00957270A patent/EP1222517A4/en not_active Withdrawn
- 2000-08-24 JP JP2001520572A patent/JP3817477B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003508951A (ja) | 2003-03-04 |
WO2001016682A1 (en) | 2001-03-08 |
EP1222517A4 (en) | 2007-03-21 |
US6766381B1 (en) | 2004-07-20 |
CN1239984C (zh) | 2006-02-01 |
CN1371495A (zh) | 2002-09-25 |
EP1222517A1 (en) | 2002-07-17 |
KR100498824B1 (ko) | 2005-07-01 |
KR20020026266A (ko) | 2002-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3832816B2 (ja) | ネットワーク・プロセッサ、メモリ構成及び方法 | |
JP3872342B2 (ja) | ネットワークのための装置およびスケーラブル・ネットワーク・プロセッサ | |
JP4066382B2 (ja) | ネットワーク・スイッチ及びコンポーネント及び操作方法 | |
JP3817477B2 (ja) | Vlsiネットワーク・プロセッサ及び方法 | |
JP3807980B2 (ja) | ネットワーク・プロセッサ処理コンプレックス及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050405 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050704 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050711 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051005 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060530 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060612 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100616 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110616 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110616 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120616 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |