Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4095802B2 - フレームおよびプロトコル分類の方法およびシステム - Google Patents
[go: Go Back, main page]

JP4095802B2 - フレームおよびプロトコル分類の方法およびシステム - Google Patents

フレームおよびプロトコル分類の方法およびシステム Download PDF

Info

Publication number
JP4095802B2
JP4095802B2 JP2001550552A JP2001550552A JP4095802B2 JP 4095802 B2 JP4095802 B2 JP 4095802B2 JP 2001550552 A JP2001550552 A JP 2001550552A JP 2001550552 A JP2001550552 A JP 2001550552A JP 4095802 B2 JP4095802 B2 JP 4095802B2
Authority
JP
Japan
Prior art keywords
frame
processing
information unit
input information
unit
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
Application number
JP2001550552A
Other languages
English (en)
Other versions
JP2003519944A (ja
Inventor
バス、ブライアン、ミッチェル
カルビナック、ジーン、ルイス
デービス、ゴードン、テイラー
ガロ、アンソニー、マッテオ
ヘッデス、マルコ
ジェンキンズ、スティーブン、ケネス
リーベンズ、ロス、ボイド
シーゲル、マイケル、スティーブン
ベルプランケン、ファブリス、ジーン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US09/479,028 external-priority patent/US6633920B1/en
Priority claimed from US09/479,027 external-priority patent/US6775284B1/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2003519944A publication Critical patent/JP2003519944A/ja
Application granted granted Critical
Publication of JP4095802B2 publication Critical patent/JP4095802B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、さまざまなタイプおよび能力を有する情報処理システムまたはコンピュータを一緒にリンクするために使用されるものなど通信ネットワーク装置と、そのような装置でデータ処理するためのコンポーネントおよび方法に関する。具体的には、本発明は、複数の独立のプロセッサによって同時に処理することができ、入力情報単位がさまざまな異なるプロトコルの1つを有することができる、複数の入力情報単位(「パケット(packet)」または「フレーム(frame)」とも称する)を処理する方法およびシステムを含む、データ伝送ネットワークに結合された処理装置内でのデータの流れを管理する改良されたシステムおよび方法に関する。
【0002】
【従来の技術】
本発明は、以下の文書に関連し、これらのすべてが、本発明の譲受人に譲渡されている。
本明細書でネットワーク処理装置特許またはNPU特許と呼称する、米国特許出願第09/384691号。
インターフェース特許とも呼ばれる、米国特許第5724348号。
リンク特許とも呼ばれる米国特許出願第09/330968号。
「MSS」とも呼ばれるマルチプロトコル・スイッチング・サービス(multiprotocol switching service)に関する、そのうちのいくつかで発明人としてCedric Alexanderが含まれる、MSS特許とも呼ばれる、IBM社に譲渡されたさまざまな特許および特許出願。
【0003】
以下の本発明の実施形態の説明は、読者がネットワーク・データ通信と、そのようなネットワーク通信に有用なルータ(router)およびスイッチの基本知識を有するという前提に基づく。具体的に言うと、この説明では、ネットワーク動作を層に分割するネットワーク・アーキテクチャの国際標準化機構(ISO)モデルに精通していることが前提になっている。ISOモデルに基づく典型的なアーキテクチャは、信号が上に渡される物理パスまたは物理媒体であるレイヤ1(「L1」とも称する)から、レイヤ2(または「L2」)、3(または「L3」)などを介して、ネットワークにリンクされたコンピュータ・システム内に常駐するアプリケーション・プログラミングの層であるレイヤ7(または「L7」)まで延びる。この文書全体を通じて、L1、L2、L3などのレイヤに対する言及は、ネットワーク・アーキテクチャの対応するレイヤを指すことが意図されている。この説明は、ネットワーク通信に使用される、パケットまたはフレームと称するビット・ストリングの基本的な理解も前提とする。
【0004】
帯域幅(bandwidth)の考慮事項(または、1単位の時間でシステムが処理できるデータの量)が、現在のネットワーク動作に関してますます重要になりつつある。ネットワーク・トラフィックは、主にインターネット(ワールド・ワイド・ウェブとも称する疎にリンクされたコンピュータの公衆ネットワーク)の爆発的成長と、より少ない範囲ではあるが、私的データ伝送ネットワークまたはイントラネットの人気の高まりとによって推進されて、最近劇的に増加した。インターネットおよびイントラネットには、情報および新しいアプリケーションへのリモート・アクセスの常に増加する必要を満足するためにリモート・ロケーション間での大量の情報の伝送が含まれる。インターネットは、地理的に分散した地域の多数のユーザが爆発的な量のリモート情報を利用できるようにし、e-commerceなどのさまざまな新しいアプリケーションを可能にし、その結果、ネットワークの負荷が増加し、常に増加し続けている。電子メール、ファイル転送、およびデータベース・アクセスなどの他のアプリケーションが、さらに、ネットワークに負荷を追加し、その一部は、高レベルのネットワーク・トラフィックに起因して、すでに酷使されている。
【0005】
ネットワーク上のトラフィックは、ますます多様にもなりつつある。かつては、一部のネットワークが、電話網上の音声およびデータ伝送ネットワーク上のディジタル・データなど、主にあるタイプの通信トラフィックに使用された。もちろん、音声信号のほかに、電話網は、限られた量の「データ」(ルーティングおよび請求のための発呼番号、被呼番号など)も搬送したが、一部のネットワークの主な用途は、ある時点で、実質的に同種類のパケットであった。
【0006】
しかし、現在、音声トラフィックおよびデータ・トラフィックが、同一のネットワークにますます集束しつつある。インターネットの膨張が続き、信頼性およびセキュリティなどの領域で技術が改善されるにつれて、音声およびデータなどの異なるタイプの情報の混合物を含む多数の異なる種類の情報を相対的に同時に伝送する機会が提示された。
【0007】
データは、現在、インターネット上で(インターネット・プロトコルまたはIPを介して)無料で伝送され、音声トラフィックは、通常、最低のコストのパスに従う。voice over IP(VoIP)およびvoice over asynchronous transfer modeまたはATM(VoATM)またはvoice over frame relay(VoFR)などの技術が、現在の環境での音声トラフィックの伝送に関するコスト効率のよい代替物である。これらのサービスに移行する際に、産業界は、変化するコスト構造と、プロセッサ間の情報の伝送におけるサービスのコストとサービス品質(quality of service)の間のトレード・オフなどの問題に関する関心事に対処する。
【0008】
サービス品質の諸態様に、容量または帯域幅、応答時間(1フレームを処理するのにかかる時間)、および処理の柔軟性(異なるカプセル化(encapsulation)方法またはフレーム・ヘッダ方法などの異なるプロトコルおよびフレーム構成に応答するかどうか)が含まれる。リソースを使用する側は、提示される情況に依存するトレードオフを伴う、サービス品質ならびにサービスのコストを考慮する。
【0009】
データ・パケットをルーティングするいくつかの従来技術のシステムは、パケットが、単一プロトコルまたは単一フォーマットであるか、限られた数の許容されるプロトコルまたはフォーマットの1つであることを必要とする。そのようなシステムは、許容されるプロトコルに合わせてシステムを調整することができるので、1つのタイプのプロトコル(または限られた数のプロトコル)だけのパケットがシステム内に見られる時の設計の相対的な単純さのゆえに、高められた速度および応答性という長所を有する。データ伝送システム全体が、単一のエンティティの制御下にあった時には、制御するエンティティがユーザに単一の標準伝送プロトコルを強制することが簡単であった(ユーザが、許容されるプロトコルに従うか、ネットワークを使用しないのいずれかになった。というのは、ネットワークが、指定されたプロトコルだけに適応するようにプログラムされ、些細な変動に見える場合であっても、プロトコルの変動を処理できなかったからである)。
【0010】
しかし、イーサネット(Ethernet)(登録商標)などの通信「標準規格」からのフレームでさえ、複数のプロトコルの1つを使用してフォーマットすることができ、異なるカプセル化技法を使用してメッセージにカプセル化することができる。これらの異なるプロトコルおよびカプセル化技法は、通常はフレームの先頭と、L3メッセージの先頭などの他のキー情報の前に、変化する量のデータをもたらす。したがって、イーサネット・フレームからのキー情報は、イーサネットL3プロトコルまたは、存在する場合にイーサネットおよびカプセル化技法の形態に応じて、フレーム内の異なる場所に配置される可能性がある。L3メッセージの処理を提供するシステムは、まずそれを見つける必要があり、それが、マルチプロトコル・システムの課題になる可能性がある。したがって、たとえば、Ethernet DIX Version 2は、Ethernet 802.3と異なり、IPX over Ethernetは、IPX over Ethernet 802.3と異なり、IPX over Ethernet 802.3自体は、3つの異なるフォーマット(Novell独自、LLC、およびSNAP)を有する。さらに、IPXの各バージョンは、いわゆるIEEE 802.1q標準規格を使用する仮想LAN(またはVLAN)をサポートする場合とそうでない場合があり、IEEE 802.1q標準規格も、フレームのフォーマットを変更し、したがってL3メッセージの位置を変更するという影響を有する。
【0011】
多数のプロトコルのフレームがサポートされる、これらの従来技術のシステムでは、時には、プロトコルを識別し、フレームをあるプロトコルから別のプロトコルに変換するか、フレームから不要な情報(カプセル化情報など)を除去するために、かなりの量のオーバーヘッド(時には比較命令と分岐命令を伴う百行を超えるコードを含むコンピュータ・プログラミングなど)を設ける必要があった。そのような複数プロトコル処理は、時間がかかり、さらに、しばしば、プロトコルを識別するのに変化する長さの時間を要した。そのようなシステムが、プロトコルを識別し、必要な処理を提供するのに変化する長さの時間を必要とする時に、システムは、必要な(ワースト・ケースを処理するために)最長の時間を許容するように構成されなければならず、すべてのフレームの処理がワースト・ケースまで遅くなるか、一部のフレームが、カテゴリー化に許容される時間のうちに処理されない可能性が生じた。
【0012】
ほとんどのプロセッサは、命令セットの共通の先頭(すべてのデータについて同一の場所)から処理を開始し、どこに行ってどの命令を実行するかを決定する必要がある時にプロセッサが選択的に読み取るフラグをセットする。したがって、多くのプロセッサの実行では、そのプロセッサがどの種類のデータを有し、本質的な処理をどこから開始するかを決定するために多数のテストが実行され、これらのテストには、多数のサイクルが伴い、大量の処理が伴う可能性がある。
【0013】
データの厳格な先入れ先出し処理を使用する、データを処理するためのマルチプロセッサ・システムが、従来技術で既知である。これは、処理が型にはまった形で発生する時によく機能するが、そのようなシステムは、1つの入力の処理が遅れた時に、束縛され、機能を停止する。1つの入力の処理の遅れが、他の処理の停止という影響を有する。
【0014】
処理中に入力メッセージ単位を記憶する、他の従来技術のシステムが既知である。これらのシステムは、各情報単位がシステム内のどこにあるかを記憶するために、かなりの量の処理能力を振り向けなければならないという制限および短所を有し、いくつかのシステムは、新しいデータ・フローまたは内部的に生成されるメッセージなどからの、追加の入力情報単位に対応しない。
【0015】
したがって、データ・パケットを処理する従来技術のシステムは、システムの適応性またはシステムが動作できる速度のいずれかもしくはその両方に影響する、望ましくない短所および制限を有した。従来技術のシステムの他の短所および制限は、本発明の以下の説明に鑑みて、当業者に明白になるであろう。
【0016】
【発明が解決しようとする課題】
本発明の目的は、データ処理用のシステムでのフレーム・プロトコル分類および処理(たとえばデータ・パケットまたはフレームのスイッチングまたはルーティング)のシステムおよび方法を提供することである。
【0017】
【課題を解決するための手段】
本発明のこの実施形態は、複数の異なる許容されるメッセージ・プロトコルの1つを使用して作成され、仮想ローカル・エリア・ネットワーク(またはVLAN)システムを使用してもしなくてもよい、フレームまたはパケットのネットワークを介するデータ・フローを管理する、単純でありながら効率的な方法を提供することによって、従来技術のシステムの短所および制限を克服する。各パケットまたはフレームを素早く効率的な形で分析することによって、フレームのタイプおよびフレームのキー特性を、判定でき、たとえば上で参照したNPU特許に記載されたタイプのネットワーク・プロセッサ内での、そのフレームに関する将来の参照および処理のために保管することができる。
【0018】
異なるプロトコルを有するパケットの処理において素早く効率的であり、パケットのより高速で簡単な処理を提供し、システム全体がフレーム処理の高い速度で動作できるようにすることが、この実施形態の長所である。
【0019】
この実施形態は、ルータまたはスイッチが、特定のフレームまたはパケットがどのフォーマットで作成されたかを前もって知ることなく、変化するフォーマットの連続するパケットまたはフレームを処理できるようにする。この実施形態には、メッセージまたはパケットのレイヤ2(L2)カプセル化フォーマットを識別することと、その後、L2カプセル化と、L3プロトコルと、仮想ローカル・エリア・ネットワーク(VLAN)の存在とを識別するために、保管された規則を適用することが含まれる。そのような判定の結果として、プロセッサが、開始命令アドレスで実行する準備ができる。すなわち、プロセッサは、フレームの識別に基づく命令の開始アドレスを用いて事前条件付け(precondition)される。したがって、プロセッサは、開始命令アドレス、ならびにフレームのデータ部分内のL3ヘッダの先頭へのポインタ、ならびにプロトコル、VLAN存在、およびカプセル化フォーマットを示すフラグを有する。
【0020】
この実施形態は、パケットの初期処理中にパケットに関するキー情報をセット・アップし、保管し、その後、パケットまたはフレームに関する保管された情報を、後に有利に処理に使用することができ、たとえばNPU特許に記載のネットワーク処理ユニット複合体による、後のステージでのパケットのより素早く効率的な処理が可能になるという長所を有する。
【0021】
この実施形態は、単一のデータ・フローからの入力パケットまたはフレームを、処理のために複数の独立のプロセッサの1つに割り当てることができ、その後、出力される(処理された)パケットまたはフレームを、入力パケットまたはフレームが受け取られたのと同一の順序に再組立することができるという長所を有する。
【0022】
この実施形態は、複数のデータ・フローを、お互いに影響せずに処理でき、あるデータ・フローが他のデータ・フローをブロックしないという長所を有する。すなわち、あるデータ・フローの処理が、その一部の処理の完了を待って一時停止された時に、他のデータ・フローの処理を継続することができる。
【0023】
この実施形態では、望むならば、受け取った順序で各データ・フローを処理するという通常動作をオーバーライドして、順序に無関係に、システムをフラッシュするか完了したフレームを即座にディスパッチすることもできる。
【0024】
この実施形態は、バッファおよびストレージ・デバイスの使用において効率的であり、素早く動作し、その結果、処理の速度が、データ・フロー管理のオーバーヘッドによって遅くならないという長所も有する。
【0025】
この実施形態では、この実施形態をネットワーク・プロセッサのアレイおよびそれに関連するストレージ・コンポーネントとして同一の半導体基板上で実施でき、コンポーネント間の高速データ伝送を可能にすることが企図されている。
【0026】
この実施形態は、ソフトウェアではなくハードウェアで実施することもでき、必要なフォーマット・テストを、フォーマットに無関係に、フォーマットまたはカプセル化技法を判定する前に行わなければならない比較の数に無関係に、均一の時間で完了することができる。示される設計では、2クロック・サイクル以内に、どの種類のフレームが存在するか(たとえば、どのカプセル化技法とどのレイヤ3プロトコルが使用されたか)と、仮想LAN(またはVLAN)がサポートされるかどうか、ならびにフレームに関するキー情報を示すように必要なインジケータをセットして、フレームの分類を完了することができる。同一の2サイクル中に、フレームを、ディスパッチャによってアイドルのネットワーク処理ユニットにルーティングすることができる(上で参照したNPU特許に記載のように)。プロトコルおよびカプセル化方法を判定するためのフレームの処理の結果として、プロセッサの開始アドレスを判定し、プロセッサに渡すことができ、その結果、プロセッサが、開始アドレス(関連する命令ストレージへのポインタ)およびその処理に関する他の関連情報をプリロードされて、フレームに対する作業を開始できるようになる。この処理に関する開始アドレスのプロセッサへのプリロードを、時々、プロセッサの事前条件付けと称し、これによってプロセッサ効率が可能にされる、すなわち、多数のテスト命令およびテストの結果に基づくジャンプ命令を全部実行する必要がなく、その代わりに、提示されたメッセージの特定のフォーマット用の開始アドレスから開始する。
【0027】
この実施形態のシステムは、フレームの分類および前処理を、ネットワーク処理複合体へのそのフレームの分配と並列に行えるという長所も有する。この並列処理によって、フレームのより効率的な処理が可能になり、システムがより高速に動作できるようになる。
【0028】
この実施形態の使用を介して、複数の処理ユニットを、互いに独立とすることができ、なおかつ、これらの処理ユニットが、諸部分を異なる望ましくない順序にさせずに同一のデータ・フローを処理することができる。所与のデータ・フローの処理されたパケットまたはフレームの出力は、フラッシュ・コマンドによってオーバーライドされない限り、システムがそのデータ・フローから入力パケットまたはフレームを受け取ったのと同一の順序になる。
【0029】
最後に、この実施形態を用いると、ネットワークから受け取るデータ・フローの順序を維持する処理に影響せずに、システムによる新しいデータ・フローの挿入およびパケットまたはフレームの作成が可能になる。
【0030】
この実施形態の1つの機能強化を用いると、プロセッサの事前条件付け(第1命令のアドレスの保管)だけではなく、後の実行のために命令の追加アドレスを保管することも可能になる。この形で、プロセッサは、第1命令のアドレスと、後の分岐(またはfork)点の命令のアドレスを有し、コードの実行中の不要なテスト(if 条件、then go to 命令#1 otherwise go to 命令#2)が回避される。これによって、コードをより効率的に実行できるようになる。
【0031】
この実施形態の他の目的および長所は、添付図面および請求項とあわせた好ましい実施形態の以下の説明に鑑みて、当業者に明白になる。
【0032】
従来技術の制限および短所の一部と、本発明の目的および長所の一部を示したが、他の目的および長所は、改良されたルーティングのシステムおよび方法という本発明を示す図面の以下の説明に鑑みて、当業者に明白になる。
【0033】
【発明の実施の形態】
以下の好ましい実施形態の説明では、発明者に現在既知の本発明の実践の最善の実施形態を、ある程度具体的に説明する。しかし、特に、当業者が、これらの図面に図示され、図面に関して説明される特定の構造および動作に対する多数の変形形態および変更を認識するので、この説明は、特定の実施形態での本発明の概念の広義の一般的な教示として意図されており、本発明をこの実施形態に示されたものに制限することを意図されてはいない。
【0034】
図1は、パケットまたは情報単位(時には、本明細書において交換可能に使用される用語であるフレームとも称する)の形でデータを受け取り、処理し、ネットワークに再送出するデータ伝送ネットワークへの取付けに適する処理システムの機能ブロック図である。図1からわかるように、このデータ処理用のシステムには、複数のサブアセンブリが含まれ、これらのサブアセンブリは、NPU特許に記載されているように、単一の基板に有利に集積することができる。アセンブリ全体の単一の基板への集積によって、システムのさまざまなコンポーネントのより密なパッキングと、コンポーネント間の通信に必要な時間の短縮と、したがってシステムが動作できる速度の向上が可能になる。複数のプロセッサとサポートする論理およびメモリに関する単一基板の使用は、相互接続に起因する障害の発生を減らし、ネットワーク内のデータ伝送を破壊する可能性があるノイズまたは他の漂遊信号に対する抵抗を増やすこともできる。
【0035】
基板10に取り付けられたサブアセンブリは、上側(upside)構成および下側(downside)構成に配置され、「上側」構成(時々「入(ingress)」とも称する)は、データ伝送ネットワークからチップへのインバウンドな(チップまでまたはチップ内へ)データに関するコンポーネントを指し、「下側」(時々「出(egress)」とも称する)は、その機能がチップからデータ伝送ネットワークに向かってアウトバウンドの形で(チップから出るかネットワークに入る)データを送出することであるコンポーネントを指す。データ・フローは、上側構成および下側構成のめいめいの配置に従う。したがって、図1のシステムに、上側データ・フローと下側データ・フローがある。上側または入の構成エレメントには、エンキュー−デキュー−スケジューリング(Enqueue-Dequeue-Scheduling)UP(EDS−UP)論理16、複数の多重化されたMACのUP(PMM−UP)14、スイッチ・データ・ムーバ(Switch Data Mover)−UP(SDM−UP)18、システム・インターフェース(SIF)20、データ位置合せ直列リンク(Data Align Serial Link)A(DASL−A)22、およびデータ位置合せ直列リンクB(DASL−B)24が含まれる。データ・リンクは、上で参照したリンク特許に詳細に記載されており、システムのこの部分のよりよい理解のためにその文書を参照されたい。本発明の好ましい実施形態では、その特許に詳細に記載されたデータ・リンクを使用するが、本発明が、好ましい実施形態に使用されるデータ・リンクなどの特定の補助デバイスに制限されないので、特に比較的高いデータ・フローおよびシステム要件をサポートするものなどの他のシステムを、本発明と共に有利に使用することができることを理解されたい。
【0036】
システムの下側(出)に描かれたコンポーネントには、データ・リンクDASL−A26およびDASL−B28と、システム・インターフェースSIF30と、スイッチ・データ・ムーバSDM−DN32と、エンキュー−デキュー−スケジューラEDS−DN34と、出の複数の多重化されたMAC PMM−DN36が含まれる。基板10には、上で参照したNPU特許に詳細に記載されている、複数の内部スタティック・ランダム・アクセス・メモリ(static random access memory)コンポーネント(S−RAM)と、トラフィック管理スケジューラ(TRAFFIC MGT SCHEDULER)40と、組み込みプロセッサ複合体(embedded processor complex)12も含まれる。インターフェース・デバイス38が、めいめいのDMUバスによってPMM14および36に結合される。インターフェース・デバイス38は、この両方が周知であり一般にこの目的で商業的に入手可能であるデバイスの例である、イーサネット物理(ENET PHY)デバイスまたは非同期転送モード(asynchronous transfer mode)フレーミング機器(ATM FRAMER)などのL1回路に接続するのに適当な装置とすることができる。インターフェース・デバイスのタイプおよびサイズは、少なくとも部分的に、このチップおよびそのシステムが接続されるネットワーク媒体によって決定される。複数の外部ダイナミック・ランダム・アクセス・メモリ(dynamic random access memory)デバイス(D−RAM)およびS−RAMが、チップによる使用のために使用可能である。
【0037】
本明細書では、関連するスイッチング・デバイスおよびルーティング・デバイスの外部の一般的なデータ・フローが、建物の中に設置されたワイヤおよびケーブルなどの電気導体を介して渡される、ネットワークについて具体的に開示されるが、本発明では、ネットワーク・スイッチおよびそのコンポーネントを、無線環境でも使用できることが企図されている。たとえば、本明細書で開示されるメディア・アクセス制御(media access control、MAC)要素を、シリコン・ゲルマニウム技術から作られるものなどの、開示されるデバイスの無線ネットワークへの直接接続をもたらす適当なラジオ周波数デバイスによって置換することができる。そのような技術が適当に使用される場合に、当業者が、そのラジオ周波数要素を、本明細書に開示されたVLSI構造に集積することができる。その代わりに、赤外線(IR)応答デバイスなどのラジオ周波数または他の無線応答デバイスを、本明細書に開示された他の要素と共にブレード(blade)に取り付けて、無線ネットワーク装置に関して有用なスイッチ装置を達成することができる。
【0038】
矢印は、図1に示されたインターフェース・システム内でのデータの一般的なフローを示す。ENET PHYブロック38からDMUバスを介してイーサネットMAC14から受け取られたデータのフレームまたはメッセージは、EDS−UPデバイス16によって内部データ・ストア・バッファ16aに置かれる。フレームを、通常のフレームまたは案内されるフレーム(guided frame)のいずれかとして識別することができ、これが、複数のプロセッサ内での後続処理の方法および位置に関係する。
【0039】
図2は、本発明を有利に使用することができる処理システム100のブロック図である。この図2では、複数の処理ユニット110が、ディスパッチャ(dispatcher)ユニット112および完了(completion)ユニット114の間に配置される。各着信(incoming)フレームF(このデータ処理システムに接続された、図示されていないネットワークからの)が、受け取られ、UPデータ・ストア116に保管され、UPデータ・ストア116は、インターフェースUP DS i/f117を介して処理ユニット110に接続され、インターフェースUP DS i/f117は、データを読み取り、データ・ストアに書き込む能力を有する。フレームは、ディスパッチャ112によって順次除去され、処理ユニットがフレームの処理に使用可能であるというディスパッチャ112による判定に基づいて、複数の処理ユニット110の1つに割り当てられる。この表示は、フレームFが割り当てられる1つの処理ユニットが、その特定の処理ユニットがアイドルであり、作業に使用可能であることを示す信号をディスパッチャ112に送ったこととすることができるが、作業を割り当てる代替の方法(ラウンドロビン割振りまたはLRU(least recently used)アルゴリズムなど)を、本システムで有利に使用することもできる。具体的には処理ユニット110、一般的には処理システムの構造および機能に関する詳細は、上で参照したNPU特許にある。ディスパッチャ112と複数の処理ユニット110の間に入れられているのが、ハードウェア・クラシファイヤ補助機構(hardware classifier assist)118であり、これについては、後にこの文書で、特に図23および24に関して詳細に説明する。やはり複数の処理ユニット110に関連するのが、命令ストレージ122(図23に図示)であり、ここに、複数の異なる命令セットが、個々の処理ユニット110による取出および実行のために保管される。後で説明するように、命令ストレージ122内の開始命令は、ハードウェア・クラシファイヤ補助機構118によって決定される、メッセージのタイプ(そのプロトコルおよびカプセル化方法)に基づくアドレスに従ってアドレッシングされる。
【0040】
完了ユニット114は、機能的に、複数のプロセッサ110と、下エンキュー・システム(符号DN Enqueue、図1の要素34)ならびにUPエンキュー・システム(図1の要素16)の間に結合される。DN Enqueueシステム34は、処理されたフレームを、処理複合体からその処理複合体が接続されたネットワークまたは他のシステムへ送るのに使用され、UPエンキュー・システム16は、処理されたフレームをスイッチ・ファブリックに送るのに使用される。各フレームおよびそのフレームを処理するために割り当てられた処理ユニットに関連する識別情報を割り当て、保管するように、ディスパッチャ112を設計することができる。そのような識別情報を、その後、完了ユニット114によって使用して、単一のデータ・フローを構成する処理されたフレームが、受け取られた順序で転送されることを保証することができる。本発明のこの態様は、後にこの明細書で詳細に説明する。
【0041】
図3から22に、この処理システムが受け入れ、処理するようにプログラムされる複数のメッセージ・フォーマット(コンポーネントおよびイーサネット・メッセージ・フォーマットに対する変形形態)を示すが、メッセージまたはフレーム・フォーマットの範囲は、検討中のシステムの環境に合わせるために当業者が変更できるものである。このシステムは、将来に設計されるメッセージ・フォーマットおよび変形形態を含む、他のメッセージ・フォーマットを受け入れるように再設計することもできる。したがって、図3のメッセージ・フォーマットは、異なるプロトコルおよびカプセル化タイプを有するフレームの異なるフォーマットを例示する目的のものであり、本発明は、さまざまな異なるプロトコルおよびカプセル化フォーマットを受け入れ、カプセル化およびプロトコルのタイプへのポインタを提供することによってこれらのフレームの処理に対する補助機構を提供し、所与のフレームを処理するプロセッサに命令ストレージ内の開始アドレスを提供するように設計された柔軟なシステムである。
【0042】
図3に、時々Ethernet Version 2.0/DIXと呼ばれる包括的なまたは基本的なイーサネット・メッセージ・フォーマットを示す。これは、メッセージに、宛先アドレス(destination address)DA、ソース・アドレス(source address)SA、メッセージのタイプを示すブロック(Type)、メッセージ・テキストまたはデータ、およびメッセージ保全性検証用の巡回冗長検査(cyclical redundancy checking)またはCRCのトレーラ(trailer)が含まれる、メッセージ・フォーマットである。宛先アドレスDAおよびソース・アドレスSAの両方が、6バイト(48ビット)として指定され、Typeを示すブロックが、2バイトとして指定され、CRCトレーラは、4バイトとして指定される。一般に、メッセージの残り(Data)は、1500バイトまでの任意の長さとすることができるが、後でわかるように、いくつかのタイプのイーサネットで、他の長所を達成するためにこの柔軟性に対する制限が設けられている。ソース・アドレスSAは、メッセージが、ネットワーク上の1ノードの単一のネットワーク・アドレスに宛てられた個別のメッセージであること、もしくは、メッセージがマルチキャスト・メッセージまたはブロードキャスト・メッセージであること、のいずれかを示すことができる。マルチキャスト・メッセージは、ネットワーク上のノードのグループに向けられ、ブロードキャストは、すべてのステーションに向けられる。Typeを示すブロックは、16ビットであり、これによって、使用される上位層プロトコルが識別される。登録されたイーサネット・プロトコルのそれぞれに、一意のタイプ・コードが与えられ、このタイプ・コードの値は、必ず、諸フィールドが共存できるようにするために、Ethernet 802.3 lengthフィールドの長さフィールドの最大値より大きい。データ・フィールドは、通常は、データをMAC層に渡す前に46バイトの最小フィールド長さが満たされることを上位層が保証すると仮定して、46から1500バイトの長さである。フレームの許容される長さより長いメッセージは、データ・フィールドの最大の許容される長さより短い複数のメッセージに分割されなければならない。
【0043】
図4に、IEEE 802.3 Ethernetフォーマットと称する、一般的なイーサネット・スタイルに対する変形形態を示す。これは、図1の包括的なイーサネット・メッセージ・フォーマットのフォーマットに類似しているが、タイプ・フィールドが、長さフィールドLENに置換されていることが異なり、この長さフィールドLENは、すべての埋込み(pad)を除く、それに続くデータ・フィールドの長さを示す16ビットである。この標準規格では、パケットの最小サイズ長さが64バイトとして強制され、したがって、データ・フィールドDataが、少なくとも46バイトでなければならない。データ・フィールドDataの実際のデータが46バイト未満の場合には、MAC層が、パケットをネットワークに送る前に、プレース・セーバ(place saver)(埋込み文字)をLLCデータ・フィールドに追加して、最小サイズにしなければならない。しかし、長さフィールドは、埋込み文字を含まない長さであり、これによって、受取り側システムが、追加された埋込み文字を識別し、破棄することができるようになっている。
【0044】
図5に、特にIEEE標準規格802.1qに関する、イーサネット・メッセージのTag Control Information Formatを示す。これには、3ビットのユーザ優先順位(user priority)、1ビットのCanonical Format IndicatorまたはCFI、および12ビットのVIDまたは仮想LAN(またはVLAN)識別子からなる。仮想LANまたは仮想ローカル・エリア・ネットワークは、VLANを構成するものとしてアドレスを定義することによって仮想ローカル・エリア・ネットワークとして識別されたノードのグループの識別であり、これによって、物理的に関連しないノードを論理的に関連付け、個別にではなくグループとしてアドレッシングできるようになる。
【0045】
図6に、やはりIEEE標準規格802.1qに従う、いくつかのイーサネット・プロトコル・メッセージ・フォーマットで使用されるEmbedded RIF(またはE−RIF)フォーマットを示す。このフォーマットでは、ルート・タイプRTが、最初の3ビットによって示され、長さLTHが、次の5ビットによって示され(E−RIFルート制御およびE-RIF Route Descriptorを含むE−RIF部分全体のバイト単位の長さを示す)、ルート記述子方向Dが、1ビットによって示される(通常は、ルート記述子を順方向にトラバースすることを示す「0」であるが、特別な形でルーティングされるフレームの場合に、ルート記述子が逆順であることを示すために「1」になる)。E−RIFフォーマットには、6ビットの最長フレーム・インジケータおよび1ビットのNon Canonical Format Indicator(NCFI)が含まれる。ルート・タイプRTは、フレームが、特別にルーティングされるフレーム(specially routed frame)、透過的フレーム(transparent frame)、全ルート・エクスプローラ・フレーム(all route explorer frame)、またはスパニング・ツリー・エクスプローラ・フレーム(spanning tree explorer frame)のどれであるかを示すために、それぞれ00X、01X、10X、または11Xのいずれかになる。最長フレームLFフィールドは、IEEE 802.3 Standard for Ethernetによれば、1470バイト以下である。NCFIは、指定されたMACアドレスが、非正規形式(non-canonical form)(0の場合)と正規形式(canonical form)(1の場合)のいずれであるかを示す。
【0046】
図7に、12ビットのローカル・エリア・ネットワーク識別子LAN IDと4ビットのブリッジ番号(Bridge#)を含むものとしてE-RIF Route Descriptor Formatを示す。E-RIF Route Descriptor Formatフィールドは、当業界で周知でもあり、これの使用法は、そのようなフィールドに関する標準規格に従う。
【0047】
図8および図9に、図8の802.2 LPDUフォーマットおよび図9のGeneric SNAPフォーマットを含む、イーサネット・メッセージで使用されるLLCフォーマットのコンポーネントを示す。図8のLPDUフォーマットには、1バイトのDestination Service Access Point DSAP(8ビット)と、1バイトのSource service access point SSAPと、コマンド、応答、シーケンス番号、およびポーリング/最終ビット(poll/final bit)を含む1から2バイトの制御フィールドControlが含まれる。これに関して、サービス・アクセス・ポイントは、6ビットと、1つのUビットと、最終ビット(宛先サービス・アクセス・ポイントの場合に個々のIビット、ソースの場合にコマンド/応答インジケータのCビット)である。図9に、組織を示す3バイト(Organizationally Unique IdentifierまたはOUI)と、Internet Standard 0002の下でフォーマットに割り当てられたタイプを識別する2バイトを含む、SNAPフォーマットを示す。このタイプ・フィールドの例が、IPの0800、IPXの8137、ARPの0806、RARPの8035、802.1q VLANの8100、IPv6の86DD、Appletalkの80DB、およびAppletalk AARPの80F3である。
【0048】
図10に、イーサネットMACヘッダおよびIPXヘッダを含み、イーサネットMACヘッダがそれぞれ6バイトのソース・アドレスSAおよび宛先アドレスDAを有し、その後にこのフレームがIPXフォーマットであることを示す8137の2バイト・タイプが続く、IPX over Ethernetフォーマットのメッセージのフォーマットを示す。その後のIPXヘッダに、図示のコンポーネントすなわち、チェック・サムの2バイト、パケット長の2バイト、TCの1バイト、PTの1バイト、宛先ネットワークの4バイト、宛先ノードの6バイト、宛先ソケットの2バイト、ソース・ネットワークの4バイト、ソース・ノードの6バイト、およびソース・ソケットの2バイトが含まれる。
【0049】
図11に、メッセージの長さが第3フィールドで指定される(図10に示されたIPX over Ethernetのタイプではなく)Ethernet 802.3 MACヘッダを含むEthernet 802.3の独自版の上でのIPX(時々Novellフォーマットと称する)のメッセージ・フォーマットを示す。このフォーマットのチェック・サムには、そのプロトコルに従って「FFFF」がセットされる。
【0050】
図12に、メッセージに、802.2のLLC LPDUフィールドによって分離されたMACヘッダおよびIPXヘッダ(図10に示されたものに似る)が含まれる、IPX over Ethernet 802.3 with 802.2を示す。
【0051】
図13に、図12に関して説明したフォーマットに似て、メッセージに802.3 MACヘッダが含まれ、その後にLLC LPDUフィールドが続き、IPXヘッダで終わる、IPX frame over 802.3 with SNAPのフォーマットを示す。LLC LPDU部分とIPXヘッダの間に、OUIおよび8137のEtypeを示すSNAPフィールドが配置されている。
【0052】
図14に、タイプ・フィールドが8100として示され、VLANパケットがイーサネットMACヘッダとIPXヘッダの間に配置される(IPXヘッダは、図10、12、および13に関して上で説明したものと同一のフォーマットである)IPX over Ethernet with 802.1q VLAN supportのフォーマットを示す。VLANパケットには、2バイトのTCIフィールドと2バイトの長さLENまたはe-typeフィールドが含まれ、その後、1つのe-rif制御フィールドと変化する個数のe-rif記述子フィールドが含まれ、e-rif記述子フィールドの数は、式(LEN−2)/2によって示される。
【0053】
図15に、802.1q VLANサポートを使用するIPX over Ethernet 802.3(独自)のフォーマットを示す。タイプ・フィールドが8100であり、VLANパケットは、前の図14のVLANの例に類似する。IPXヘッダは、前の図11の802.3独自フレームに示されたものに類似し、チェックサム・フィールドが「FFFF」と等しくなるようにセットされる。
【0054】
図16に、VLANサポートを伴うIPX over Ethernet 802.3を使用するフレームのフレーム配置を示す。これには、VLANパケットの存在を示す8100のタイプを有する(図15に類似する)802.3 MACヘッダと、VLANパケット(やはり図15に似たフォーマット)、LLC LPDU(図12に関して図示し、説明したものに類似する)、およびIPXヘッダ(図10に示されたもの)が含まれる。
【0055】
図17に、802.1qを使用する、SNAPおよびVLANサポートを伴うIPX over Ethernet 802.3のメッセージの構成またはフォーマットを示す。これは、図16のフォーマットに類似し、LLC LPDUフィールドとIPXヘッダの間にSNAPフィールドが追加されている。
【0056】
図18に、メッセージにイーサネットMACヘッダおよびIPv4ヘッダが含まれるIPv4 over Ethernetのフォーマットを示す。フィールドのそれぞれの長さが、この図に示されている。
【0057】
図19に、MACヘッダとそれに続くLLC LPDU、その後に続くIPv4ヘッダを示す、IPv4 over Ethernet 802.3 with 802.2のメッセージ・フォーマットを示す。
【0058】
図20に、802.3 MACヘッダにLLC LPDUが続き、その後にIPv4ヘッダ(および、適用可能な場合にはUDPまたはTCPの任意選択のトレーラ)が続く、SNAPを伴うEthernet 802.3上のIPv4フレームのメッセージ・フォーマットを示す。
【0059】
図21に、802.1q VLANサポートを伴うIPv4 over Ethernetのメッセージ・フォーマットを示す。このフォーマットは、IPv4の特徴ならびに802.1q VLANサポートの他の例に見られるVLANパケットの特徴を有する。
【0060】
図22に、IPv4 over 802.3 with 802.2の属性とVLANパケットのメッセージ特性を組み合わせた、802.1q VLANサポートを有するIPv4 over Ethernet 802.3(with 802.2)のメッセージ・フォーマットを示す。
【0061】
図10から22のそれぞれで、最下行は、フレームまたはメッセージのレイヤ3(またはL3)部分を表し、メッセージのL3部分の前にある材料のサイズの変動のゆえに、メッセージのL3部分は、メッセージのタイプすなわちプロトコルおよびカプセル化方法に依存して、異なる場所から開始される。L3メッセージの処理が望まれる(カプセル化を無視する)が、マルチプロトコル、マルチカプセル化システムで、L3メッセージの先頭を見つけることが困難になる可能性がある。さらに、フレームに対して複数のプロセッサ110の1つによって実行される命令が、フレーム・プロトコルおよびカプセル化方法のタイプに依存するので、何か(この場合ではハードウェア・クラシファイヤ補助機構118)が、命令メモリ122内のプロセッサ用の正しい開始命令へのポインタを提供することが望ましい。
【0062】
図23に、命令メモリ122の選択された部分および複数の処理ユニット110の1つと共に、図2の要素118として示されたクラシファイヤ・ハードウェア補助機構のブロック図を示す。クラシファイヤ・ハードウェア補助機構118は、入力情報単位(またはフレーム)に関連する128ビット・セグメントを操作し、この128ビット・セグメントは、時々「FISH」と呼ばれ、ディスパッチャ112からクラシファイヤ・ハードウェア補助機構118(ならびに個々の処理ユニット110の1つ)によって受け取られる。この分類機能は、最初の3つまでのFISH(または、フレームに関連する最初の384ビット、あるFISHを別のFISHから区別するために時々FISH1、FISH2、およびFISH3と呼ばれる)を操作する。最初のFISH(FISH1)は、実際には受け取られたフレームではなく、どのポートからフレームが来たか、デフォルト・コード・エントリ・ポイント(default code entry point)291、および本発明のハードウェア・クラシファイヤを使用するフレーム分類をイネーブルするかどうかのインジケータ292(yesまたはno)などの、そのフレームに関連する情報の組である。
【0063】
ブロック210で、イーサネットのタイプを、フレーム内の変化する場所で比較して、フィールドが、前に構成されたプロトコル、たとえば第1イーサネット・バージョン(たとえばIPx)または第2イーサネット・バージョン(たとえばIPv4)と一致するかどうかを判定する。ブロック220で、SAP(サービス・アクセス・ポイント、service access point)フィールドが、やはりレジスタ内で指定される(たとえば、プロトコルのタイプを示す特定の保管された値)、現在構成されているプロトコルと一致するかどうかを判定する。このシステムは、異なるタイプのカプセル化を表すSNAPフィールドが存在するかどうかも判定する。ブロック240内の「AAAA03」などの指定されたフィールド、および、ブロック250でメッセージ内の仮想ローカル・エリア・ネットワーク(VLAN)使用の存在を検出する。ブロック260は、分類制御であり、これは、イネーブル分類292によってイネーブルされる時に、フレームに関連するパラメータを保管し、プロトコル・タイプ、レイヤ3ポインタ、および分類フラグを示す出力を信号線270、272、および274に供給する責任を負う。
【0064】
各メッセージの制御エントリ・ポイント(処理の開始、命令メモリ122内の最初の命令のアドレス)を、定義されたフォーマットのそれぞれについて事前に判定し、テーブル280に保管することができる。すなわち、ETYPE=0かつVLANなしの場合に、制御エントリ・ポイント(開始アドレス)が、命令メモリ内のアドレス122aになり、ETYPE=1かつVLANなしの場合に、制御エントリ・ポイントがアドレス122bになる。同様に、ETYPE=0かつVLANあり、およびETYPE=1かつVLANありの場合に、めいめいの制御エントリ・ポイント(実際のメッセージの処理が開始される場所)が、それぞれ命令122cおよび122dになる。ERIFフィールドを伴うフレームの場合には、処理が命令122eで開始され、プロトコルまたはカプセル化方法が見つからない、デフォルト・プログラムの場合に、処理が命令122fで開始される。
【0065】
どの場合でも、デフォルト制御エントリ・ポイントが、メッセージのFISH1に含まれ、ブロック290で読み取られる。その後、ブロック295によって、デフォルト制御エントリ・ポイントを使用するかどうかが判定される、すなわち、信号線292でハードウェア分類がイネーブルされ、テーブル280から異なる制御エントリ・ポイントが判定されない場合には、デフォルト・エントリが使用され、そうでない場合には、テーブル280からの制御エントリ・ポイントが使用される。
【0066】
ハードウェア・クラシファイヤ補助機構118からの信号線270および272(分類フラグおよびL3ベース・アドレスが、それぞれハードウェア・クラシファイヤ補助機構118によって決定される)が、フレームを処理するために割り当てられた個々のプロセッサ110に供給され、データ・メモリ110bに保管されたフレームを処理する1つの処理ユニットに関連する汎用レジスタ110aに保管される。デバイス295からの出力線276は、フレームの特定のタイプに関する命令メモリ122の開始アドレスを供給し、そのデータが、命令制御論理110cに保管される。ALU(演算論理装置、arithmetic/logic unit)が、処理ユニット110の一部である。プロセッサ110は、命令制御論理110c内の命令カウンタを使用して、命令メモリ122から命令を取り出す。この形で、ハードウェア・クラシファイヤ補助機構118によって判定されたプロトコルおよびカプセル化方法に基づいて、処理ユニット110が、処理されるフレームに適当な命令セットの開始アドレスを用いて事前条件付けされ、フレームのタイプを示す適当なフラグが、正しい命令を使用するフレームの処理をプロセッサ110が開始できるようにするためにセットされる。
【0067】
図24に、メッセージフォーマットのカテゴリ化を決定するのに使用される論理を示す。これは、ブロック310で開始され、ここでFISH2が選択され、ブロック320で、フレームのバイト13から14(6バイトの宛先アドレスDAおよび6バイトのソース・アドレスSAとその後のタイプを含むフレーム内のタイプ情報を含むはずの2バイト)をテストする。これらのバイトが、ETYPE0またはETYPE1のいずれかの内容と一致する場合には、ブロック323で、適当なフラグをセットすることによってプロトコル情報を識別し、ブロック325で処理を終了する。そうではなく、タイプ・ブロックが0600H(16進)未満の場合には、このフレームは、Ethernet 802.3フレーム・フォーマットであってEthernet V2.0DIXフォーマットではなく、このフィールドは、タイプ・フィールドではなく長さフィールドであり、図24の図の左側で処理される。このタイプ・ブロックが8100である場合には、このフレームは、802.1q VLANサポートを使用するフレーム(たとえば、図14、15、16、17、21、および22を参照されたい)であり、図24の図の右側で処理される。タイプ・フィールドが他の何かである場合には、制御をブロック325に渡し、ここで、このフレームが明らかに未知のプロトコルであるから、プロトコル情報を一切記録せずに、分類が完了したとみなす。
【0068】
ブロック320で、バイト13から14が0600H未満であると判定された場合には、ブロック322で、バイト15から17を分析して、それがSAPフィールドとして知られるものであるか、タイプのLLCまたは論理リンク制御フィールド(たとえば図13で使用されるAAAA03)であるかを判定する。このフィールドが、SAPフィールドの1つとして認識される場合には、SAPフィールドをセットし、ブロック323で、プロトコル情報を保存し、その後、ブロック325で、分類が完了したとみなす。これがLLCフィールドである場合には、制御がブロック324で継続され、ここで、FISH3を入手し、そのバイト2から6を、認識されたETYPEについて分析する。ETYPEが認識される場合には、ブロック323でプロトコル情報を保存し、その後、ブロック325で終了する。
【0069】
ブロック320で、バイト13から14が8011と等しく、これがIEEE標準規格802.1qで指定される仮想ローカル・エリア・ネットワーク(VLAN)であることが示される場合には、ブロック330でVLANの存在を保管し、その後、ブロック340で、CFIフィールドの存在を検査する。それが存在する場合には、分類が完了しており、制御をブロック325に渡す。そうでない場合には、ブロック350で、FISH3のバイト1から2をテストして、既知のETYPE(ブロック320のテストのように)または長さ(0600H未満)が提供されるかどうかを判定する。ETYPEが提供される場合には、ブロック323でプロトコル情報を保管し、制御をブロック325に渡し、ここで、分類が完了したとみなされる。ブロック350で、フィールドがETYPEとして認識されない場合には、ブロック325で、分類処理が完了したとみなす。ブロック350のテストで長さが提供される(0600H未満)場合には、ブロック360で、既知のSAPについてバイト3から5をテストする。それがAAAA03である場合には、制御をブロック370に渡して、既知のETYPEについてバイト6から10を判定する。
【0070】
図25に、具体的には図23の要素のハードウェア・クラシファイヤの改良された版を示す。この図25では、ハードウェア・クラシファイヤに、単一の開始アドレスではなく、命令スタック110dに保管された一連のアドレスを含む命令制御論理110cに対する改良と共に、図23の要素が含まれる。この命令スタックには、初期命令アドレスと、その後の、後の分岐でのテスト・ステートメントまたは条件ステートメントを回避するための、プロセッサがforkまたは分岐に達した時に必要な他のアドレスが含まれる。これらの開始アドレスは、スタック内に順番に保管され、分岐命令が必要な時にスタックから除去される。
【0071】
さまざまなプロトコルまたはカプセル化技法のイーサネット・メッセージの定義的内容に関するさらなる情報については、イーサネット・フレーム構成に関する適当な標準規格または参考案内を参照されたい。イーサネット・プロトコルおよびカプセル化技法と、それに関係する標準規格およびオプションとの理解に役立つ可能性がある一般に入手可能な文書が、ISO/IEC Final CD 15802-3, IEEE P802.1D/D15, 1997年11月24日, Annex Cと、IEEE Draft Standard 802.1Q/D9、1998年2月20日付と、RFC 1700 - Assigned Numbers by J. Reynolds and J. Postel, 1994年10月(http://www/isi.edu/rfc-editor/rfc.htmlでも入手可能な文書)と、IBM Token Ring Network Architecture Referenceと、IBM LAN Bridge and Switch Summary. Publication Number SG24-5000-00, Version 1.3, 1996年1月、特にChapter 1.1.1である。
【0072】
ハードウェア・クラシファイヤは、ハードウェア(またはシリコン基板上の実際の実施形態)構成での論理設計の設計および製造用のさまざまな一般的に入手可能なソフトウェア・ツールの1つの使用を介することを含むさまざまな形で設計でき、また、論理設計者による手による従来の設計によって設計することができる。この例では、所望のテストが、VHSICハードウェア・ディスクリプション言語または短縮形で(VHDL)と称するソフトウェア言語を使用してプログラムされ、その後、既知のソフトウェア(IBM社によって販売されているものまたはSynopsis社によって販売されているものなど)にかけて、所望のテストをハードウェアの形で達成するのに必要なゲートおよびロジックを有する設計を作成する。他の類似する設計システムが、存在し、有利に使用することができ、その結果、論理の設計者が、ゲートの構造またはその位置を知る必要がなく、所望の入力およびテストおよび出力の論理機能だけを知れば十分になる。
【0073】
上で述べたように、いくつかのシステムでは、各フレームを処理するために割り当てられるプロセッサから独立に、フレームが受け取られた順序でデータ・フレームの処理済みのフレームを転送する機能を本発明の処理システムに含めることが望ましい場合がある。そのよなシステムでは、ディスパッチャ112が、使用可能な処理ユニットを識別し、受け取ったフレームを処理のために処理ユニットに割り当てた後に、フレームとそのフレームが割り当てられた処理ユニットの識別情報を作成し、保管する。
【0074】
フレームは、通常は、メッセージ番号(時々MACと称する)などの識別情報と、フレームのソースのアドレス(時々SAと指定される)および宛先のアドレス(時々DAと指定される)と共に到着する。そのような情報の位置および内容は、メッセージのフォーマットおよびカプセル化技法に応じて変化する可能性があるが、この情報を用いると、メッセージ全体が単一のフレームより長い場合であっても、フレームを、このシステムとスイッチおよびルータを介して宛先に正しくルーティングでき、正しい順序で完全なメッセージを再組立できるようになる。通常、メッセージのコンポーネントを、データ・フローと称し、データ・フローの各部分に、同一の識別情報(MAC、SA、およびDAなど)が含まれる。ディスパッチャ112ユニットによって入力フレームに割り当てられる実際のラベル(または識別情報)は、MAC−SA+DA、または他のメッセージ・フォーマットのLIDフィールドとMIDフィールドの排他的論理和をとることによるなど、さまざまな形で作成することができる。
【0075】
図26に示されているように、3つのリストまたはキュー内のストレージを、フレームごとに作成することができる。まず、処理されたフレームのキュー400が、完了した作業(所与のフレームを処理するプロセッサから受け取られる、出力または処理されたフレーム)を保持するために定義され、これは、フレーム0からフレームNとして示された、プロセッサごとの少なくとも1つの完了したフレームのためのバッファまたはメモリ・スペースを必要とし、NPU−0からNPU−Nとして識別されるプロセッサが、めいめいのフレームに結合される。ディスパッチャ112は、フレームを処理ユニットに送る時に、第2メモリまたはキュー410にそのフレームの識別子を送り、第2メモリまたはキュー410には、めいめいのネットワーク処理ユニットNPU−0からNPU−Nに対応するストレージ・ロケーション0からnが含まれる。識別子またはラベルmを有するフレームがNPU−0に送られる時に、NPU−0のラベルに対応するメモリ0に、識別されたmが保管のために送られ、NPU−0が、識別子がmである入力情報単位を処理しようとしていることが示される。同一の識別子mを有する後のフレームが、同一のデータ・フローに属し、異なる識別子またはラベルを有するフレームが、異なるデータ・フローを表すことを想起されたい。したがって、0のラベルを有する入力情報単位が、受け取られ、NPU−1にディスパッチされる場合に、0が、NPU−1に対応するストレージ1に記録される。その後、同一のデータ・フローからの第2入力単位(やはり0のラベルを有する)が、ディスパッチャ112によって受け取られ、プロセッサNPU−Nに割り当てられる場合に、メモリNにも、プロセッサNに割り当てられた情報単位を表す0のラベルが保管される。
【0076】
第3メモリ420には、n個の処理ユニットによって現在処理されつつあるラベルのそれぞれのストレージが含まれる。ラベルのそれぞれについて、割り当てられたプロセッサの識別子が、保管され、リスティングが順次式に行われるので、特定のメッセージ・フローに最初に割り当てられたプロセッサが、メモリ内で最初に現れる。この例では、ラベルmについて、メモリ422内の項目0によって、NPU−0がそのフローからのラベル0に関する入力情報単位を処理しつつあることが示され、第1単位は、メモリ424によって示されるように、プロセッサNPU−Nによって処理されつつあり、第2単位は、メモリ426によって示されるように、プロセッサNPU−1によって処理されつつある。所与のフローについて、入力情報単位がディスパッチャに到着する順序が、維持され、その結果、同一のデータ・フローの後続の伝送を、それが受け取られたのと同一の順序で行えるようになり、したがって、ラベル・メモリ424および426が、入力フレームがネットワークから受け取られ、N個のプロセッサにディスパッチされた順序でリストされたNPUまたは処理ユニットを有することがわかる。
【0077】
図27に、入力フレームを処理し、本明細書で説明するデータ管理技法を使用する際に使用される、完了ユニット114のより詳細な構造を示す。この実施形態の、図示の完了ユニット114は、図23に図示されていない、処理ユニットの出力(たとえば処理された情報単位)を分配するために、複数のラウンド・ロビン・デバイスと通信する。複数のラウンド・ロビン・デバイスには、アップラウンド・ロビン450および2つのダウン・ラウンド・ロビン・デバイス、ターゲット・ポート(特別にアドレッシングされる少数の頻繁に使用されるポート)用の460として識別される1つのラウンド・ロビン、および一般分配(特別にアドレッシングされるターゲット・ポート以外のポートにアドレッシングされた処理済み情報)用の1つのラウンド・ロビン470が含まれる。
【0078】
論理ANDゲート452、462、および472が、それぞれ、ラウンド・ロビン450、460、および470のゲーティングを提供する。UPラウンド・ロビン450にフレームを供給するANDゲート452について、入力は、それをUPフレームにするもの(Ready FCBページ510に関連するブロックUPから)、フレームを有効なフレームにするもの(それが有効なフレームであり、伝送の準備ができていることを示すインジケータVF)、ラベル・フィールドを関連するフレーム・ラベル・フィールド(M01からM92)で有効にするもの、およびラベルをデータ・フローのヘッド(または最も早い)フレームに関連付けるものである。
【0079】
ディスパッチャ112は、フレームが所与のプロセッサにディスパッチされる時に、2つの情報をラベル・エンキュー480に供給する。すなわち、信号線482のフレームのラベルと、信号線484の、フレームが割り当てられたプロセッサの識別である。フレームのラベルによって、そのフレームが属するデータ・フローが識別され、このラベルは、好ましい実施形態では、MACにソース・アドレスを加え、宛先アドレスを引いたものに基づき、各データ・フローに一意の識別子を与える目的は、同一のデータ・フローからのフレームが、同一のラベルを有し、異なるデータ・フローからのフレームが、異なるラベルまたは識別子を有するようにすることである。
【0080】
図28に、N個のプロセッサのそれぞれに関連する情報を保管するラベル・フィールド要素500のフォーマットを示す。N個のプロセッサのそれぞれが、2つのこのようなラベル・フィールドを関連付けられ、その一方は、処理されつつあるフレーム用であり、他方は、処理済みであり、処理複合体からの転送を待っているフレーム用である。転送の準備ができている処理済みのフレームは、時々Ready FCB Pageと称するメモリまたはストレージ510に保持され、これらのストレージの1つが、N個のプロセッサのそれぞれについて存在する。
【0081】
ラベル・フィールド要素500には、ラベルL、ヘッド・フィールドH、有効フィールドV、テール・フィールドT、および次フィールドNが含まれる。ラベルLは、メッセージ内容から導出され、データ・フローのそれぞれの一意の識別子を表す。ヘッド・フィールドHは、現在N個の処理ユニットによって処理されつつあるデータ・フローまたは関連するフレームのチェインの先頭を、処理されつつある作業または処理複合体からの転送を待っている処理済みフレームのいずれかとして識別する。N個のプロセッサの処理複合体で処理されつつあるデータ・フローのそれぞれが、N個のプロセッサのどこかにヘッドまたは先頭(またはそのデータ・フローについて最初に受け取られたフレーム)を有し、その先頭が、それに関連するラベル・フィールド要素のヘッド・フィールドHの1によって、その「ヘッド」として識別される。同様に、プロセッサ内の各データ・フローは、現在N個のプロセッサ内にある最終フレームも有し、その最終フレームが、テール・フィールドTの1によってテールとして識別される。
【0082】
有効フィールドVは、プロセッサが、有効フィールドの1によって示される実際のデータを含む(処理からそうなるように)か、有効フィールドVの0によって示されるように実際のデータを含まないかを示す。処理が最初に開始される時には、実際のデータまたは有効なデータが、システムに存在せず、したがって、有効フィールドVに、システムの初期化の一部として0がセットされる。後に、データが所与のプロセッサのReady FCBページ510から読み取られる時に、そのプロセッサFCB Pageに対応する有効フィールドVに、0がセットされ、そのプロセッサが、もはやそのラベルに対応する有効な情報を有しないことが示される(FCBページの情報が、すでにラウンド・ロビンに渡されているので;ただし、プロセッサ自体が異なるフレームに対して作業している可能性があるので、プロセッサが、そのプロセッサに関連する他のラベル・フィールドに有効な情報を有する場合がある)。次フィールドNは、同一のデータ・フロー内の次のフレームに関連するラベル・フィールドすなわち、N個のプロセッサに関連する2N個のラベル・フィールドの他の1つを示す。ラベル・エンキュー480は、情報入力単位またはフレームのそれぞれについて、所与のフレームがディスパッチされたことを示すメッセージを、データ・フローおよびのフレームがディスパッチされたプロセッサの識別子と共に、ディスパッチャから受け取る。
【0083】
図29に、図27のラベル・エンキュー480のフローを示す。フレームが、ディスパッチャ112からn個のプロセッサの1つにディスパッチされる時に、ブロック600で、入力情報単位またはフレームのラベルが、信号線482上でラベル・エンキュー480に送られ、n個のプロセッサのどれがそのフレームを処理しているかの識別が、信号線484上で送られる。ラベル・エンキュー480による最初の処理は、ブロック602で、最初のラベル・フィールドがポイントする1つのストレージについて有効フィールドVが1であるかどうかを判定することである。有効フィールドVが1である場合には、ポイントされたストレージが占有されており、ブロック606によって示されるように他のストレージにデータを保管しなければならず、そうでない場合には、ブロック604で、ポイントされたストレージを使用しなければならない。次に、ステップ650で、適当なストレージの有効フィールドVに1をセットして、有効なデータがそのストレージに保管されていることを示し、ブロック640で、現行のストレージ・ロケーションのテール・インジケータTをセットして、これが現行データ・ストリームの最後であることを示す(同一のデータ・フローの次のフレームが受け取られるまで。その時点でテール・フィールドTがリセットされる)。次に、ブロック610で、ラベルを、どれであれプロセッサによって処理されつつある現行ラベル(もちろん、有効フィールドVが1であり、それが有効なフレームであることが示されるものでなければならない)と比較する。この比較の結果は、現行ラベルが既に処理中のものと等しい(この場合には制御がブロック670に渡される)か、現在処理中のどのラベルとも等しくない(この場合には制御がブロック630に渡される)のいずれかである。現行ラベルの1つとの一致がある場合には、そのフレームは、既存のデータ・フローの一部であり、したがって、ブロック670で、データ・フローの前の末尾のテール・フィールドTをリセットし(したがってT=0になる)、そのラベル・フィールドの次フィールド・ポインタを、現行フレームのロケーションをポイントするようにセットする。その後、ブロック680で、ヘッド・フィールドHに0をセットして、現行フレームがデータ・フローのヘッドでないことを示す。現行フレームのラベルが、現在保管されているどのラベルとも等しくない場合には、現行フレームが、新しいデータ・フローであり、現行フレームが、その先頭であり、したがって、ブロック630で、ヘッド・フィールドHに1をセットして、その状況を示す。適当なフラグ、特にヘッド・フィールドHをセット・アップするためのブロック630またはブロック680の処理の後に、既存データ・フローへのリンクおよびフィールドまたはフラグのセット・アップの処理が終了する。
【0084】
図30に、プロセッサからフレームを出す処理または分配する処理を示す。まず、ブロック710で、第1フィールド・インジケータを反転し、その結果、ポインタが、プロセッサについて第1フィールドまたは次フィールドとして他のストレージをポイントするようにする。次に、ブロック720で、有効フィールドVを0にリセットし、データがもはや有効でない(フレームがディスパッチされ、データが、現在処理されつつあるフレームを表さない)ことを示す。ブロック725で、テール・フィールドTがセットされ(T=1)、これが特定のデータ・フローの最終フレームであることが示されるかどうかをテストする。そうである場合には、制御を、処理の終了を示すブロック740に移す。そうでない場合には、ブロック730で、連続する次のフレームを突き止め(次フィールドのポインタによって)、そのヘッド・ビットまたはフラグHをセットして、それが現在プロセッサ内にあるデータ・フローの最初のフレームであることを示す。その後、ブロック730から、フラグのセットが、ブロック740によって示されるように終了する。
【0085】
図31に、図29の論理に関して上で説明した完了ユニットによって複数のデータ・フローに対処できる方法を示す例によって本発明のシステムを示す。N個のプロセッサが、ディスパッチャ112および完了ユニットと共にしばらく作業しており、したがって、図31は、完了ユニットの一部、特にラベル・ストレージに関して保管されたデータのスナップショットを表す。この図からわかるように、ラベル・エンキューが、N個のプロセッサごとに2つの、複数のラベル・メモリに結合される。プロセッサのそれぞれは、図示の3つのラウンド・ロビンへの伝送を待っている処理済みフレーム用の出力バッファ(時々Ready FCB Pageと称する)にも関連付けられる。ラベル・メモリの対のそれぞれに関連するのが、どのラベル・メモリが先に受け取られたかを示す第1ラベル・メモリである(両方のラベル・メモリが有効である時に、第1ラベルが、Ready FCB Pageバッファ内にあるものを表し、第2のまたは後に受け取られたラベルが、めいめいのプロセッサ内で現在処理されつつあるものを表す)。5つの別々のデータ・フローが、この図に示されているが、任意の所与の時点で進行中であるデータ・フローの数は、システム(特にそのサイズおよびネットワーク・トラフィック)に依存し、経時的に変化する可能性がある。この例では、10個のプロセッサが、プロセッサ0から9として識別され、ラベル・メモリが、プロセッサ0用のメモリM01およびM02から、プロセッサ9用のラベル・メモリM91およびM92として識別されるが、プロセッサの数は、設計選択であり、望まれる場合に変更の対象になる。識別子Aを有する第1データ・フローが、ラベル・メモリM01(およびプロセッサ0への対応する参照)がチェーンまたはデータ・フローのヘッドを表すことの表示(H=1)によって示されるように、ラベル・メモリM01で開始される。ラベル・メモリM01の次フィールドNは、ラベル・メモリM21をポイントして、プロセッサ2がこのデータ・フローに関連する次の情報単位を処理していることを示す。ラベル・メモリM21の次フィールドは、ラベル・メモリM52をポイントし、これは、プロセッサ5がこのデータ・フローの次の部分を有することを示す。ラベル・メモリM52のセットされたテール・フィールドによって、これがN個のプロセッサで現在処理されつつあるこのデータ・フローの最後の部分であることが示される。この例のデータ・フロー・シーケンスは、ラベル・メモリM01からラベル・メモリM21をポイントする矢印A1およびラベル・メモリM21からラベル・メモリM52をポイントする矢印A2によって示されて、データ・フローの要素間の論理接続が示される(矢印は、次フィールドのポインタを論理的に表すのであって、実際の実施形態に物理的に存在するわけではない)。同様に、ラベル・メモリM02からラベル・メモリM11へのデータ・フローは、矢印A3によって、同一のデータ・フロー内の順序を示す(ただし、説明されたものと異なるデータが、ラベル・メモリM01、M21、およびM52に関する)。第3のデータ・フローが、ラベル・メモリM31およびM42に関する矢印A4によって示され、第4のデータ・フローが、ラベル・メモリM71およびM72の間の矢印A5によって示される。最後に、第5のデータ・フローが、ラベル・メモリM41に示されているが、これは、現在単一のラベル・メモリだけが含まれるデータ・フローなので、このデータ・フローは矢印を有しない。このラベル・メモリM41は、データ・フローのヘッドとテールの両方であり、次フィールドを有しない。というのは、このデータ・フローに関連する他のラベル・メモリがないからである。
【0086】
単一のプロセッサに関連する2つのラベル・メモリがある時に、ラベル・メモリの一方が、バッファに保管された、完了したまたは処理された情報単位を表し、時々Ready FCB Pageと呼ばれ、処理複合体からの伝送(場合に応じてアップまたはダウンのいずれか)のために適当なラウンド・ロビン・ユニットへの転送の準備ができており、転送アップについて、それがインターフェース・デバイスに転送され、転送ダウンについて、それがデータ伝送ネットワークに向かって転送されることが示されることを記憶されたい。この例では、プロセッサ0、プロセッサ4、およびプロセッサ7に、関連するラベル・メモリの両方にデータが含まれる。各Ready FCB Pageに関連するのが、UPフィールド(これがアップ・ページとダウン・ページのどちらであるかを示す)、ならびに、これがダウン・ページである場合に、フレームがターゲット・ポートまたは一般ポートのどちらにアドレッシングされるのかに関するインジケータであり、このインジケータによって、ダウン・ページをダウン・ターゲット・ポート・ラウンド・ロビンまたは一般ポート・ラウンド・ロビンのどちらに転送するのかが決定される。プロセッサ0の前に受け取ったフレームが、ラベル・メモリM02であり、それが、あるデータ・フレームのヘッドであり、プロセッサ複合体およびそのバッファからの次の転送のためにアップ・ラウンド・ロビン・デバイスによって選択されたアップ・フレームでもある場合には、FCB Pageおよび関連するデータ・フィールドが、Ready FCB Pageから除去され、その情報がアップ・ラウンド・ロビンに転送される。その後、第1ラベル・インジケータをトグルして、プロセッサ1の他方のラベル・メモリM01が現在は第1ラベル・メモリであることを示し、ラベル・メモリM02の有効フィールドVに0をセットして、このラベル・メモリがもはやアクティブでも有効でもないことを示し、関連するFCBページの有効フィールドVFを、0にリセットする。
【0087】
本発明は、既存のデータ・フローを妨げず、前もって新しいデータ・フローについて知る必要なしに、新しいデータ・フローをサポートする。新しいデータ・フローを表すパケット(たとえば、処理ユニットの1つからの、その状況に関するメッセージ)は、単純に、その識別データと共に保管され、別のデータ・フローへの参照はない。この識別子がないことは、「ラベルなし」フィールドをセットされた、いつでも進行できるメッセージである既存のデータ・フローのどれの識別子にも一致しない。
【0088】
本発明は、ラベル・フィールドのチェーニング(次ポインタと、フレームを転送するラウンド・ロビン・デバイスへのアクセスを有する前に所与のフレームがヘッドであるという要件)を無視して、システムが、完了したフレームが受け取られた順序で完了したフレームを処理できるようにすることによって、フラッシュ・コマンドによってめいめいの順序でのデータ・フローの処理をオーバーライドできるようにもする。これは、FCB Pageの「ラベルなしフィールド」を強制することによって達成することができる。
【0089】
単一のデータ・フローは、データ・フローのヘッドが処理されるまでブロックされたままになる。というのは、通常の動作(フラッシュ代替物なし)で、メッセージ・フローのヘッドであるフレームだけが、完了ユニットによるラウンド・ロビンへの送出に関して検討されるからである。しかし、各データ・フローは、それ自体のヘッドを有し、したがって、あるデータ・フローがブロックされる可能性はあるが、他のデータ・フローは、割込みまたは妨害なしに、介入なしに、処理および完了した情報単位のラウンド・ロビンへの送出を継続することができる。これは、他のデータ・フローが停止されないので、単一のデータ・フローが停止された(たとえば、プロセッサが障害を発生したか、単一のデータ・フローの1つの要素を処理できない)場合に特に有用である。そうでない場合には、単一のデータ・フローのブロックが除かれるまで、処理全体が停止するはずである。
【0090】
もちろん、添付図面と共に検討される好ましい実施形態の前述の説明に鑑みて、本発明の多数の修正形態が、当業者に明白になる。たとえば、クラシファイヤを実施するハードウェアの実際のタイプは、多数の設計選択の対称であり、説明した特定の選択は、メッセージ内容、メッセージ・カプセル化の方法、および行われる処理に依存する。本発明の趣旨から逸脱せずに、システム実施形態およびシステムが処理できるメッセージ構成に対する多数の修正を行うことができる。保管されるラベルは、メッセージ内容に基づかない他の形で生成することができ、また、単に、ディスパッチャによって識別されるデータ・フローの連続番号とすることができる。本発明の趣旨から逸脱せずに、本発明のシステムに対する多数の他の修正および適応を、有利に使用することができ、他の関連する特徴の対応する使用なしで、本発明の長所の一部を達成することができる。したがって、好ましい実施形態の前述の説明は、本発明の原理を例示するのみとみなされなければならず、本発明の制限ではない。
【図面の簡単な説明】
【図1】 NPU特許に記載され、本発明を実践するのに有用な、組み込みプロセッサ複合体を含むインターフェース・デバイスのブロック図である。
【図2】 本発明に有用なクラシファイヤ・ハードウェア補助機構を伴う、図1に示されたタイプの組み込みプロセッサ複合体のブロック図である。
【図3】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図4】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図5】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図6】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図7】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図8】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図9】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図10】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図11】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図12】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図13】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図14】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図15】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図16】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図17】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図18】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図19】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図20】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図21】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図22】 本発明のハードウェア・クラシファイヤで使用されるさまざまなイーサネット・プロトコル・フォーマットを示す図である。
【図23】 本発明でフレーム部分を処理するためにクラシファイヤによって使用される論理を示す、本発明のクラシファイヤ・ハードウェア補助機構の流れ図である。
【図24】 本発明のクラシファイヤを示す機能図である。
【図25】 第1命令のアドレスのほかに、一連のアドレスをスタックに保管できるようにする、図示の任意選択の機能強化を有する本発明のハードウェア・クラシファイヤの代替実施形態を示す図である。
【図26】 各フレームに関連するキューの概略図である。
【図27】 N個のプロセッサのそれぞれについて2つのラベル・ストアを有する、本発明の完了ユニットの詳細図である。
【図28】 N個のプロセッサのそれぞれによって処理されるデータ・フローを記憶するラベル・ストアのフォーマットを示す概略図である。
【図29】 新しいフレームが処理ユニットの1つにディスパッチされたことの表示を受け取り、処理する際に完了ユニットによって実行される論理を示す流れ図である。
【図30】 フレームの処理が完了したことのレポートを処理する時に完了ユニットによって実行される論理処理を示す流れ図である。
【図31】 好ましい実施形態での完了ユニットの動作を示すデータを含む、図27の完了ユニットのもう1つの図である。

Claims (23)

  1. 半導体基板と、
    N>1であるものとして、前記基板上で製造されたN個の処理ユニットと、
    前記N個の処理ユニットからアクセス可能な情報を保管するための、前記基板上で製造された第1内部データ・メモリと、
    前記N個の処理ユニットの1つとの間で入力情報単位を受け取り、送出するための、前記N個の処理ユニットに機能的に結合されたディスパッチャと、
    前記ディスパッチャに結合されたクラシファイヤ(分類装置)であって、前記クラシファイヤが、比較ユニットを含み、前記比較ユニットが、入力情報単位のデータ・フォーマットを判定するため、および、前記入力情報単位の前記データ・フォーマットおよび前記入力情報単位に係る命令メモリ内における開始アドレスを示す入力情報単位出力インジケータに関する出力インジケータを生成し、前記内部データ・メモリに保管するためのものであり、インジケータおよび前記開始アドレスが、前記入力情報単位の処理中に前記N個の処理ユニットの前記1つから使用可能であり、前記入力情報単位の前記処理に使用される、クラシファイヤと、
    前記半導体基板に担持され、前記N個の処理ユニットに機能的に結合された、前記N個の処理ユニットの前記1つによって処理された前記情報単位を受け取る完了ユニットと
    を含む装置。
  2. 前記比較ユニットが、前記入力情報データに含まれる仮想ローカル・エリア・ネットワーク・フィールドのテストを含み、前記生成される出力が、前記入力情報単位内の前記仮想ローカル・エリア・ネットワーク・フィールドの存在を識別するインジケータを含む、請求項1に記載の装置。
  3. 前記クラシファイヤが、前記基板内に形成された複数のハードウェア・デバイスを含む、請求項1または2に記載の装置。
  4. 前記出力インジケータが、入力情報単位のタイプおよびそのレイヤ2カプセル化技法を識別するインジケータを含む、請求項1、2、または3に記載の装置。
  5. 前記インジケータが、デフォルト・コード・エントリ・ポイントを含む、請求項1、2、3、または4に記載の装置。
  6. 前記クラシファイヤが、前記クラシファイヤによって判定される入力情報単位の前記タイプおよびそのカプセル化技法に基づいてコード・エントリ・ポイントを判定するシステムを含む、請求項1ないし5のいずれか一項に記載の装置。
  7. 前記クラシファイヤが、デフォルト・コード・エントリ・ポイントおよび入力情報単位の前記タイプに基づくコード・エントリ・ポイントを判定するシステムを含む、請求項1ないし6のいずれか一項に記載の装置。
  8. 前記装置が、さらに、前記デフォルト・コード・エントリ・ポイントおよび入力情報単位の前記タイプに基づく前記コード・エントリ・ポイントから選択するセレクタを含む、請求項7に記載の装置。
  9. さらに、仮想ローカル・エリア・ネットワーク情報が前記入力情報単位に含まれるかどうかを識別するシステムを含む、請求項8に記載の装置。
  10. さらに、前記インジケータが、さらに、前記N個の処理ユニットのうちで前記入力情報単位が割り当てられた1つの識別を含む、請求項1ないし9のいずれか一項に記載の装置。
  11. 前記処理された情報単位が受け取られた順序で前記処理された情報単位が前記基板から伝送されることを示すフラグをさらに含み、前記完了ユニットが、処理された情報単位が前記N個の処理ユニットの1つによって完了される際にそれらをディスパッチするために前記フラグに応答する、請求項10に記載の装置。
  12. 前記クラシファイヤが、入力情報単位ごとにそのデータ・フローを示す識別子を生成し、前記内部データ・メモリ内に保管し、同一のデータ・フローからの後の情報単位を前記同一のデータ・フローからの前の情報単位にリンクするシステムを含み、前記プロセッサ内の前記前の情報単位が、特定のデータ・フロー内の第1情報単位として識別され、前記処理ユニットからの情報単位の前記伝送が、前記特定のデータ・フローの前記第1情報単位として識別された情報単位に制限される、請求項11に記載の装置。
  13. 前記ディスパッチ・ユニットが、さらに、各情報単位の識別子および前記情報単位が処理のためにディスパッチされた前記処理ユニットの識別を、キューに順次保管し、
    前記完了ユニットが、さらに、前記順次キューに結合され、処理された情報単位を前記情報単位が受け取られたのと同一の順序で組み立てるために、前記ディスパッチャによって割り当てられた情報単位のそれぞれの前記識別子および前記情報単位がディスパッチされた前記処理ユニットの前記識別を使用する
    請求項1ないし12のいずれか一項に記載の装置。
  14. 前記装置が、さらに、前記順序をオーバーライドし、前記情報単位が完了された順序で処理された情報単位を前記ネットワークに転送する信号を含む、請求項13に記載の装置。
  15. 入力情報単位を処理する方法であって、
    ディスパッチャで前記入力情報単位を受け取るステップと、
    前記ディスパッチャから複数のプロセッサの1つへ処理のために前記入力情報単位を送るステップと、
    前記情報単位が前記ディスパッチャから前記複数のプロセッサの前記1つに送られつつある間に、前記入力情報単位から選択されたビットを読み取るステップと、
    前記入力情報単位のタイプおよびプロトコルを識別するか、前記入力情報単位が入力情報単位のタイプの所定の識別タイプに合致しないことを識別するために、前記入力情報単位から読み取られたビットを、入力情報単位の所定のタイプを識別する既知のインジケータに対してテストするステップと、
    前記入力情報単位からのビットの前記テストの結果に基づいて、入力情報単位の前記タイプのインジケータおよびその入力情報単位に関する他の情報を保管するステップと、
    複数の処理ユニットの前記1つで、前記入力情報単位の処理において前記保管されたインジケータおよび前記入力情報単位に関する前記他の保管された情報を使用するステップと
    を含む方法。
  16. 前記インジケータを生成し、前記インジケータを保管するステップが、前記入力情報単位が前記複数のプロセッサの1つに送られつつある間に行われ、その結果、前記複数のプロセッサの前記1つが、前記入力情報単位を処理する時に、前記インジケータおよび前記他の情報が、決定され、保管されており、前記複数のプロセッサの前記1つが、前記入力情報単位を処理する際に、その入力情報単位に関する前記インジケータおよび他の情報を使用する、請求項15に記載の方法。
  17. さらに、前記入力情報単位の内容に基づいて、前記入力情報単位のさらなる処理のための命令メモリ内における開始アドレスを生成するステップを含み、前記複数の処理ユニットの前記1つで前記保管されたインジケータを使用する前記ステップが、前記開始アドレスを使用することを含む、請求項15または16に記載の方法。
  18. 読み取り、テストする前記ステップが、ハードウェアで達成される、請求項15、16、または17に記載の方法。
  19. 入力情報単位に関するテストおよびインジケータの保管の前記ステップが、前記複数の処理ユニットの1つで前記ディスパッチャから前記入力情報単位を受け取る前記ステップとオーバーラップする、請求項18に記載の方法。
  20. 前記入力情報単位の識別子を生成し、保管するステップと、
    前記識別子に関連して、前記情報単位が割り当てられた前記処理ユニットの識別を保管するステップと、
    処理された情報単位をそれらが受け取られた順序で伝送するために、前記識別子および前記情報単位が割り当てられた前記処理ユニットの前記識別を使用するステップと
    をさらに含む、請求項15ないし19のいずれか一項に記載の方法。
  21. さらに、フレームに対するラベルなしフラグを含めることによって、処理ユニットによって生成された前記フレームに応答するステップを含む、請求項20に記載の方法。
  22. 前記システムが、前記フレームをそれ以上のストレージなしで前記ネットワークに渡すことによって、ラベルなしフラグを有するフレームに応答する、請求項21に記載の方法。
  23. さまざまなプロトコルおよびカプセル化を有する情報のフレームを分析し、そのフレームを処理するための開始位置およびそのフレームを処理するための初期命令へのポインタを提供する装置であって、
    前記フレームの所定のバイトを調べ、これらのバイトが長さまたはプロトコルを示すかどうかを判定する比較器と、
    前記フレームのプロトコルおよびカプセル化システムを判定する論理と、
    前記フレームの処理の開始位置および前記フレームを処理するための初期命令へのポインタを判定する論理と、
    を含む装置。
JP2001550552A 2000-01-07 2000-12-21 フレームおよびプロトコル分類の方法およびシステム Expired - Fee Related JP4095802B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US09/479,027 2000-01-07
US09/479,028 US6633920B1 (en) 2000-01-07 2000-01-07 Method and system for network data flow management with improved completion unit
US09/479,028 2000-01-07
US09/479,027 US6775284B1 (en) 2000-01-07 2000-01-07 Method and system for frame and protocol classification
PCT/GB2000/004950 WO2001050259A1 (en) 2000-01-07 2000-12-21 Method and system for frame and protocol classification

Publications (2)

Publication Number Publication Date
JP2003519944A JP2003519944A (ja) 2003-06-24
JP4095802B2 true JP4095802B2 (ja) 2008-06-04

Family

ID=27046095

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001550552A Expired - Fee Related JP4095802B2 (ja) 2000-01-07 2000-12-21 フレームおよびプロトコル分類の方法およびシステム

Country Status (18)

Country Link
EP (1) EP1244964B1 (ja)
JP (1) JP4095802B2 (ja)
KR (1) KR100505498B1 (ja)
CN (1) CN100339832C (ja)
AT (1) ATE280411T1 (ja)
AU (1) AU2016601A (ja)
BR (2) BR0015717A (ja)
CA (1) CA2385339C (ja)
CZ (1) CZ20021442A3 (ja)
DE (1) DE60015186T2 (ja)
ES (1) ES2226958T3 (ja)
HU (1) HUP0203823A2 (ja)
IL (1) IL150587A0 (ja)
MX (1) MXPA02005419A (ja)
MY (1) MY122998A (ja)
PL (1) PL355786A1 (ja)
TW (1) TW526453B (ja)
WO (1) WO2001050259A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004525449A (ja) 2001-02-14 2004-08-19 クリアスピード・テクノロジー・リミテッド 相互接続システム
US6973503B2 (en) 2002-05-23 2005-12-06 International Business Machines Corporation Preventing at least in part control processors from being overloaded
US7242682B1 (en) 2002-10-09 2007-07-10 Storage Technology Corporation Hardware frame modifier apparatus and method for storage virtualization
US7715350B2 (en) 2003-06-12 2010-05-11 Broadcom Corporation Classifier for communication device
TWI283976B (en) * 2003-09-30 2007-07-11 Broadcom Corp Classifier for IEEE 802.11g receiver
FR2867642B1 (fr) * 2004-03-09 2006-08-18 Cit Alcatel Dispositif et procede de traitement de trames a champ a utilisation multiprotocolaire, pour un reseau de communications
CN100466594C (zh) * 2004-10-09 2009-03-04 华为技术有限公司 一种对报文进行分类处理的方法
CN100421481C (zh) * 2005-03-09 2008-09-24 华为技术有限公司 基站中处理帧协议控制帧的方法
US7881475B2 (en) 2005-05-17 2011-02-01 Intel Corporation Systems and methods for negotiating security parameters for protecting management frames in wireless networks
KR100713483B1 (ko) 2005-08-05 2007-04-30 삼성전자주식회사 연성 재질을 이용한 슬라이딩 타입 휴대 단말기
US8229525B2 (en) 2006-09-26 2012-07-24 Samsung Electronics Co., Ltd. Semi-automatic sliding device for a portable terminal and portable terminal having the same
KR100800769B1 (ko) 2007-01-29 2008-02-01 삼성전자주식회사 멀티미디어 휴대 통신 장치
CN101242344B (zh) * 2007-02-05 2013-03-20 财团法人工业技术研究院 网络封包分类器与其方法
KR100891775B1 (ko) 2007-05-14 2009-04-07 삼성전자주식회사 멀티미디어 휴대 전자 장치
TWI387268B (zh) * 2009-04-03 2013-02-21 Hon Hai Prec Ind Co Ltd 路由器及其處理IPv6資料包的方法
ES2597975T3 (es) 2011-04-06 2017-01-24 Robert Bosch Gmbh Método y dispositivo para incrementar la capacidad de transmisión de datos en un sistema de bus en serie
RU2597467C2 (ru) 2011-04-06 2016-09-10 Роберт Бош Гмбх Способ и устройство для адаптации надежности передачи данных в последовательной шинной системе
RU2596582C2 (ru) 2011-04-26 2016-09-10 Роберт Бош Гмбх Способ и устройство для адаптируемой к размерам памяти последовательной передачи данных
AU2012277899B2 (en) 2011-06-29 2017-06-29 Robert Bosch Gmbh Method and device for serial data transmission having a flexible message size and a variable bit length
WO2014038582A1 (ja) * 2012-09-04 2014-03-13 日本電気株式会社 パケット振分装置、パケット振分方法、およびパケット振分プログラム
US10579578B2 (en) * 2017-10-24 2020-03-03 Micron Technology, Inc. Frame protocol of memory device
WO2020062181A1 (zh) * 2018-09-29 2020-04-02 Oppo广东移动通信有限公司 无线通信方法、终端设备和接入网设备
CN112260896B (zh) * 2020-10-16 2022-05-10 山东云海国创云计算装备产业创新中心有限公司 一种网络传输测试方法、装置、设备及可读存储介质
CN118435569A (zh) * 2021-12-15 2024-08-02 华为技术有限公司 用于用户设备的网关控制器的设备及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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

Also Published As

Publication number Publication date
HUP0203823A2 (en) 2003-05-28
TW526453B (en) 2003-04-01
CN1433543A (zh) 2003-07-30
IL150587A0 (en) 2003-02-12
ATE280411T1 (de) 2004-11-15
ES2226958T3 (es) 2005-04-01
BRPI0015717B8 (pt) 2020-05-26
AU2016601A (en) 2001-07-16
KR20020071911A (ko) 2002-09-13
CA2385339A1 (en) 2001-07-12
CA2385339C (en) 2005-06-28
CZ20021442A3 (cs) 2002-07-17
PL355786A1 (en) 2004-05-17
MY122998A (en) 2006-05-31
EP1244964A1 (en) 2002-10-02
DE60015186T2 (de) 2006-02-02
KR100505498B1 (ko) 2005-07-29
HK1054098A1 (zh) 2003-11-14
BRPI0015717B1 (pt) 2018-03-13
CN100339832C (zh) 2007-09-26
DE60015186D1 (de) 2004-11-25
BR0015717A (pt) 2002-07-23
WO2001050259A1 (en) 2001-07-12
JP2003519944A (ja) 2003-06-24
EP1244964B1 (en) 2004-10-20
MXPA02005419A (es) 2002-11-29

Similar Documents

Publication Publication Date Title
JP4095802B2 (ja) フレームおよびプロトコル分類の方法およびシステム
US7440417B2 (en) Method and system for frame and protocol classification
JP6188093B2 (ja) 通信トラフィック処理アーキテクチャおよび方法
US8547843B2 (en) System, method, and computer program product for controlling output port utilization
US7408957B2 (en) Selective header field dispatch in a network processing system
US6947430B2 (en) Network adapter with embedded deep packet processing
US10057387B2 (en) Communication traffic processing architectures and methods
KR100358153B1 (ko) 서비스 품질을 지원하는 아이피 패킷 포워딩 분산 처리장치 및 그 방법
CN108833299B (zh) 一种基于可重构交换芯片架构的大规模网络数据处理方法
US6744783B1 (en) Frame identifier for identifying layer 2 data packet types for upper layer packet classification in a network switch port
US20030007489A1 (en) Data extraction system for packet analysis
US20120143979A1 (en) Protocol stack using shared memory
JP4034566B2 (ja) ネットワーク・プロセッサ・デバイスの挙動全体を規定および制御する方法
CN101217486A (zh) 基于网络处理器的移动互联网数据负载分配方法
US8208482B2 (en) Transmitting packets between packet controller and network processor
US20060215653A1 (en) Encapsulating packets for network chip conduit port
US6633920B1 (en) Method and system for network data flow management with improved completion unit
US7551575B1 (en) Context-switching multi channel programmable stream parser
WO2002005494A1 (en) High speed packet processing architecture
HK1054098B (en) Method and system for frame and protocol classification
CN117793031A (zh) 一种用于多核sdn交换机的流量调度系统及调度方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070316

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070501

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070731

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: 20080304

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080310

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110314

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110314

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110314

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees