(57)【特許請求の範囲】
【請求項１】
パケットアナライザと、
該パケットアナライザにアクセス可能であり、対応するパケットカテゴリについて各々が部分指示子を指定する複数のエントリを含む検索テーブルであって、異なる部分指示子を異なるパケットカテゴリに対して割り当てることを可能にするよう構成された検索テーブルと、
プロセッサと関連し、該パケットアナライザに接続された第一のメモリ回路とを備えるプロセッサであって、
該パケットアナライザは、該プロセッサによって受信される一つ或いは複数のパケットを少なくとも部分的に解析することで、これらパケットのある与えられた一つについて、そのパケットの該第一のメモリ回路内に格納されるべき部分を、該検索テーブル内のその関連するパケットカテゴリについての該部分指示子に基づいて決定し、該与えられたパケットの該部分が該第一のメモリ回路内に格納されると、該プロセッサ内でのその後の処理のためにアクセス可能となり、該プロセッサと関連し、該与えられたパケットの実質的に全体を格納するように構成された第二のメモリ回路へのアクセスは必要でなくなることを特徴とするプロセッサ。
【請求項２】
該第一のメモリ回路が該プロセッサの内部メモリから成り、該第二のメモリ回路が該プロセッサの外部メモリから成り、更に、該パケットアナライザが網から受信される複数のパケットの各々を少なくとも部分的に解析し、これらパケットの少なくともあるサブセットの各々に対して、そのパケットの該内部メモリ内に格納されるべき特定の部分を決定する請求項１記載のプロセッサ。
【請求項３】
該第一のメモリ回路が該プロセッサの内部メモリから成り、該第二のメモリ回路が該プロセッサの外部メモリから成り、更に、該パケットアナライザが該与えられたパケットの該内部メモリ内に格納されるべき部分を決定するために該プロセッサのレジスタ内に格納されている値を用いるように構成される請求項１記載のプロセッサ。
【請求項４】
該レジスタが該パケットアナライザにアクセス可能な該検索テーブルを構成する複数のレジスタの一つから成り、更に、該検索テーブルの該複数のエントリの少なくともサブセットが各々パケットカテゴリ情報とそのパケットの該内部メモリに格納されるべき関連するブロック数を含む請求項３記載のプロセッサ。
【請求項５】
該パケットカテゴリ情報が、該プロセッサと関連する、そこから一つ或いは複数の該パケットが受信されるポートを指定するポート番号から成る請求項４記載のプロセッサ。
【請求項６】
該パケットカテゴリ情報が、ある特定のパケットフローを指定するパケット識別子から成る請求項４記載のプロセッサ。
【請求項７】
該関連するブロック数が、該与えられたパケットに対して実質的にそのパケットの全体が該内部メモリに格納されるべきことを示す所定のブロック数から成る請求項４記載のプロセッサ。
【請求項８】
該第一のメモリ回路が該プロセッサの内部メモリから成り、該第二のメモリ回路が該プロセッサの外部メモリから成り、更に、該パケットアナライザの制御下で、該与えられたパケットに対するパケットカテゴリ情報とそのパケットの該内部メモリ内に格納されるべき部分の対応する指標を格納するレジスタを備える請求項１記載のプロセッサ。
【請求項９】
プロセッサと、
該プロセッサに接続された外部メモリとを備える処理システムであって、
該プロセッサがさらに：
パケットアナライザと、
該パケットアナライザにアクセス可能であり、対応するパケットカテゴリについて各々が部分指示子を指定する複数のエントリを含む検索テーブルであって、異なる部分指示子を異なるパケットカテゴリに対して割り当てることを可能にするよう構成された検索テーブルと、
該パケットアナライザに作動的に接続された内部メモリ回路とを備え、
該パケットアナライザは、該プロセッサによって受信される一つ或いは複数のパケットを少なくとも部分的に解析することで、これらパケットのある与えられた一つについて、そのパケットの該内部メモリに格納されるべき部分を、該検索テーブル内のその関連するパケットカテゴリについての該部分指示子に基づいて決定し、該与えられたパケットの該部分が該内部メモリに格納されると、該プロセッサ内でのその後の処理のためにアクセス可能となり、該与えられたパケットの実質的に全体を格納するように構成された該外部メモリへのアクセスは必要でなくなることを特徴とする処理システム。
【請求項１０】
プロセッサ内でパケットを処理するために用いる方法であって、
該プロセッサによって受信される一つ或いは複数のパケットを少なくとも部分的に解析することで、これらパケットのある与えられた一つに対してそのパケットの該プロセッサと関連する第一のメモリ回路内に格納されるべき部分を決定するステップと、
該与えられたパケットの該部分を該第一のメモリ回路内に格納するステップであって、該与えられたパケットの該部分がこれによって該プロセッサ内でのその後の処理のためにアクセス可能となり、該プロセッサと関連し、実質的に該与えられたパケット全体を格納するように構成された第二のメモリ回路へのアクセスの必要をなくすようにするステップとを含み、
該プロセッサの、パケットアナライザと、該パケットアナライザにアクセス可能であり、対応するパケットカテゴリについて各々が部分指示子を指定する複数のエントリを含む検索テーブルであって、異なる部分指示子を異なるパケットカテゴリに対して割り当てることを可能にするよう構成された検索テーブルとを備え、および
該第一のメモリ回路に格納された該与えられたパケットの部分が、該検索テーブル内のその関連するパケットカテゴリについての該部分指示子に基づいて決定されるようになっている、ことを特徴とする方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般的にはパケット処理システム、より詳細には、このようなシステム内でパケットルーティング、パケットスイッチング及び他のパッケト処理動作を遂行するために用いるように構成された網プロセッサ或いは他のタイプのプロセッサに関する。
【０００２】
【従来の技術】
網プロセッサは一般には物理伝送媒体、例えば、非同期転送モード（ＡＴＭ）網或いは同期光網（ＳＯＮＥＴ）の物理層部分と、ルータ或いは他のタイプのスイッチ内のスイッチファブリックとの間のパケットのフローを制御する。このようなルータ及びスイッチは、一般には、例えば、一群のライン或いはポートカードの形態に構成された複数の網プロセッサを含み、一つ或いは複数のプロセッサがこれらの各カードと関連する。
【０００３】
ルーティングやスイッチングなどのパケット処理動作の遂行に当たっては、網プロセッサは、典型的には、各パケットの少なくとも開始或いはヘッドの部分を調べることを要求される。各パケットの調べることを要求される量は、それと関連する網通信プロトコル、起動部分、及びその他の類似の要因に依存する。ルータ或いはスイッチの機能或いは複雑さも、各パケットの調べることを要求される量に影響を与える。
【０００４】
多くの従来のルータ及びスイッチは、処理中のある与えられたパケットに対して、そのパケットが最終的にその宛先に送信されるまで或いは脱落されるまで、実質的にそのパケット全体を格納するように構成される。パケットは、通常は、関連する網プロセッサに対して外部のルータ或いはスイッチメモリ内に格納される。ある与えられたパケットが外部メモリ内に保持される時間量は、ルータ或いはスイッチの基本処理時間、パケットに適用されるサービスの品質、解析されるべき特定のプロトコル層、及びパケットがそれに向けられるポート或いは他の通信チャネルの輻輳に影響状態される。
【０００５】
高速ルータ及びスイッチは、典型的には、網プロセッサ内のオン・チップメモリ（ｏｎ−ｃｈｉｐ  ｍｅｍｏｒｙ）内に、ある与えられたパケットの、その網プロセッサによって処理されている幾らかの部分を格納する。これによって、ルータ或いはスイッチの性能は、そのパケット全体を保持するより大きな外部メモリにアクセスする必要がなくなるために、外部メモリはオン・チップメモリと比較してより低速であり、帯域幅も制限されているという意味で、大幅に向上される。ただし、従来のやり方においては、通常、ある与えられたルータ或いはスイッチ用途において解析することを必要とされる最悪の場合のパケット部分（ｗｏｒｓｔ−ｃａｓｅ  ｐａｃｋｅｔ  ｐｏｒｔｉｏｎ）によって、この最悪の場合のパケット部分はある稀に発生するパケットと関連するのみであるにも関わらず、オン・チップメモリ内に保持される個々のパケット部分のサイズが決定され、このために、要求されるオン・チップメモリのサイズ、従って網プロセッサのコスト及び複雑さが大幅に増加する。
【０００６】
【発明が解決しようとする課題】
従って、明らかに、デバイスのメモリ要件を低減できるように、パケットの、網プロセッサ或いは他のタイプのプロセッサと関連する特定のメモリ内に格納されるべき特定の部分を決定するための改善された技法に対する必要性が存在する。
【０００７】
【課題を解決するための手段】
本発明は網プロセッサ或いは他のタイプのプロセッサのメモリ要件を大幅に低減する。
【０００８】
本発明の一面によると、プロセッサは、パケットアナライザとこのパケットアナライザに接続された第一のメモリ回路を含む。パケットアナライザは、プロセッサによって受信された一つ或いは複数のパケットを少なくとも部分的に解析することで、それらパケットのある与えられた一つに対して、そのパケットの、第一のメモリ回路内に格納されるべき部分を決定する。与えられたパケットのこの部分が第一のメモリ回路内に格納されると、これはプロセッサ内でのその後の処理のためにアクセス可能となり、プロセッサと関連し、実質的にその与えられたパケット全体を格納するように構成された第二のメモリ回路にアクセスする必要はなくなる。これら第一と第二のメモリ回路は、例えば、プロセッサの、それぞれ、内部メモリと外部メモリから成る。
【０００９】
本発明のもう一面においては、パケットアナライザは、与えられたパケットの、第一のメモリ回路、例えば、内部メモリ内に格納されるべき部分を決定するために、プロセッサのレジスタ内に格納されている値を用いるように構成される。このレジスタは、一つの実施例においては、パケットアナライザにアクセス可能な検索テーブルを構成する複数のレジスタの一つから成る。検索テーブルは、複数のエントリを含み、各エントリは、パケットカテゴリ情報、例えば、ポート番号或いはパケットフロー識別子と、そのパケットの、内部メモリに格納されるべき関連するブロック数（ａｓｓｏｃｉａｔｅｄ  ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋｓ）を含む。
【００１０】
本発明のさらにもう一面によると、これらレジスタのある与えられた１つ内に格納されるこの値は、例えばプロセッサに接続されたホストデバイスの制御下で動的に更新可能である。これによって、プログラマは、例えば、ある与えられたカテゴリのパケットの、プロセッサの内部メモリ内に格納されるべき特定の部分を指定することが可能となる。
【００１１】
長所として、本発明のこれら技法は、プロセッサの内部及び/或いは外部メモリ要件を低減するばかりか、外部メモリへのアクセスの必要性を大幅に低減し、これによってプロセッサのスループットを大幅に向上させる。
【００１２】
【発明の実施の形態】
本発明はここでは特定のやり方に構成された網プロセッサを含む一例としてのパケット処理システムとの関連で説明される。ただし、本発明はより一般的にプロセッサ内で遂行されるパケット処理動作と関連する内部及び或いは外部メモリ要件を低減することが望ましいあらゆるプロセッサに適用できる。
【００１３】
ここで「プロセッサ（ｐｒｏｃｅｓｓｏｒ）」と称される物は、単に例示として、これらに制限されるものではないが、マイクロプロセッサ、中央処理ユニット（ＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、他のタイプのデータ処理デバイス、並びにこれら及び他のデバイスの部分及び組合せを用いて実現される。
【００１４】
本発明と共に用いるのに適するプロセッサは内部メモリ、例えばオンチップメモリ（ｏｎ−ｃｈｉｐ  ｍｅｍｏｒｙ）と、外部メモリの両方を含む。こうして、「プロセッサ（ｐｒｏｃｅｓｓｏｒ）」なる用語は、より広くこのような外部メモリも含むものと解されることを意図される。
【００１５】
本発明は、一つの実施例においては、各パケットが網プロセッサに到着したとき、各パケットを部分的に解析し、そのパケットの当面必要とされる部分を格納するために必要とされる量のメモリのみを割当てることで、網プロセッサ内で要求されるメモリの量を低減する。適当な時間において、パケットはこうして格納された部分を用いて完全に解析される。この方法によると、外部メモリにアクセスする必要性が低減されるために、網プロセッサのパケットスループットを向上させることが可能となる。この方法では、こうして外部メモリにアクセスするために要求される帯域幅を低減することができ、結果として、全体としての処理システム設計を簡素化できるため、システムコストも削減できる。
【００１６】
図１は本発明がその内部に実現されるパケット処理システム１００を示す。システム１００は、内部メモリ１０４を有する網プロセッサ１０２を含む。網プロセッサ１０２は、図示するように、外部メモリ１０６に接続され、それからパケットが受信される網１０８とパケットデータのスイッチングを制御するスイッチファブリック１１０との間のインタフェースを提供するように構成される。プロセッサ１０２及びこれと関連する外部メモリ１０６は、例えば、ルータ或いはスイッチのラインカード上に搭載された一つ或いは複数の集積回路として実現される。このような構成においては、スイッチファブリック１１０は、一般に、ルータ或いはスイッチの一部とみなされる。
【００１７】
メモリ１０６は図面においてはプロセッサ１０２に対しては外部として示されるが、前述のように、ここで用いられる用語「プロセッサ（ｐｒｏｃｅｓｓｏｒ）」は、要素１０２と１０６を含むように十分に広く解されることを意図される。
【００１８】
図１に示されるシステム要素の特定の構成は単に例示に過ぎないことに注意する。例えば、前述のように、本発明はあらゆるタイプのパケットプロセッサ内に実現することができ、ある特定のパケット処理用途に制限されるものではない。
【００１９】
図２は図１の網プロセッサ１０２をより詳細に示す。網プロセッサ１０２は、この実施例においては、網１０８から入りパケットを受信するパケットアナライザ２００を含む。パケットアナライザは、この実施例においては、内部メモリ１０４及び外部メモリ１０６とインタフェースするメモリコントローラ２０２に接続される。プロセッサ１０２は、図面には示されていない他の処理回路、例えば、トラフィックマネジャを含むこと或いはそれらと関連させることもできる。
【００２０】
本発明によると、パケットアナライザ２００は、網プロセッサ１０２によって受信される一つ或いは複数のパケットを少なくとも部分的に解析し、それらパケットのある与えられた１つに対して、そのパケットの、内部メモリ１０４内に格納されるべき部分を決定する。ある与えられたパケットのこの部分は、内部メモリ１０４に格納されると、網プロセッサ１０２内でのその後の処理のためにアクセス可能となり、典型的には実質的にその与えられた全体を格納するように構成される外部メモリ１０６へのアクセスは不用となる。ある与えられたパケットの、内部メモリ１０４内に格納されるべき部分は、例えば、そのパケットのヘッダの、ある指定される部分とされる。メモリコントローラ２０２は、与えられたパケットの、こうして指定された部分の内部メモリ１０４内への格納と、実質的にそのパケット全体の外部メモリ１０６内への格納とを制御する。
【００２１】
パケットアナライザ２００は、こうして、網１０８から受信される複数のパケットの少なくともサブセットを、少なくとも部分的に解析し、これら解析されたパケットの各々に対して、そのパケットの、内部メモリ１０４内に格納されるべき特定の部分を決定する。この決定は、例えば、ある与えられたパケットと関連するポート番号（ｐｏｒｔ  ｎｕｍｂｅｒ）、パケットフロー識別子（ｐａｃｋｅｔ  ｆｌｏｗ  ｉｄｅｎｔｉｆｉｅｒ）或いは他のパケット特徴情報（ｐａｃｋｅｔ  ｃｈａｒａｃｔｅｒｉｚｉｎｇ  ｉｎｆｏｒｍａｔｉｏｎ）を識別し、対応するレジスタ或いは他のメモリ位置からある関連するブロック数（ａｓｓｏｃｉａｔｅｄ  ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋｓ）の指標（ｄｅｓｉｇｎａｔｏｒ）を読み出すことに基づいて行われるが、これについては後により詳細に説明する。こうして決定される部分は、通常は、網プロセッサ１０２内でその後の処理のために要求される部分から成り、こうして決定された部分が内部メモリ１０４内に格納されると、その後の処理は、そのパケットの他の部分格納する外部メモリにアクセスすることを必要とされることなく、遂行可能となる。
【００２２】
本発明の技法は、第一と第二のメモリ回路の一方或いは両方が外部メモリを表し、実質的にパケット全体が第二のメモリ回路に格納されるような状況において、例えば、あるパッケトの、第一のメモリ回路に格納すべきある特定の部分を決定することで、外部メモリと関連するメモリ要件を低減するためにも適用できることに注意する。このような第一と第二のメモリ回路は、図１のそれぞれ内部メモリ１０４と外部メモリ１０６にも対応する。第一と第二のメモリ回路は、こうして別個のメモリとすることもできるが、代替として、単一の内部或いは外部メモリの異なる部分から構成することもできる。
【００２３】
メモリコントローラ２０２は、単一のメモリコントローラとして示されているが、当業者においては理解できるように、内部メモリ１０４と外部メモリ１０６に対して別個のコントローラを設けることもできる。
【００２４】
パケットアナライザ２００は、メモリコントローラ２０２を介して、内部メモリ１０４の一部分内にセットのレジスタを用いて実現される検索テーブル２０５とやり取りする。検索テーブル２０５は、パケットアナライザ２００によって、ある与えられたパケットの、内部メモリ１０４内に格納されるべき特定の部分を決定するために用いられる情報を提供する。
【００２５】
検索テーブル２０５は、別の実施態様として、図面には内部メモリ１０４の一部として実現されるものとして示されるが、別個のメモリとして実現することもできる。
【００２６】
図３Ａは検索テーブル２０５を構成するセットのレジスタの一例を示す。この実施例においては、この検索テーブル２０５は、各々が内部メモリ１０４の対応するレジスタ内に格納されるＮ個の異なるエントリを含む。各エントリは、ポート番号と、対応するブロック数（ｃｏｒｒｅｓｐｏｎｄｉｎｇ  ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋｓ）を含む。ポート番号は、網プロセッサ１０２の所に到着する複数のパケットと関連するＮ個のポートの一つと対応する。例えば、ある与えられた網プロセッサは、２５６個或いはそれ以上のポートをサポートする。ある与えられたポートに対して指定されるブロックの数（ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋｓ）は、そのポートの所に到着する各パケットの、内部メモリ１０４内に格納されるべきブロックの数を示す。１ブロックは、好ましくは、特定のバイト数（ｐａｒｔｉｃｕｌａｒ  ｎｕｍｂｅｒ  ｏｆ  ｂｙｔｅｓ）として指定される。例えば、説明の実施例においては、１ブロックは６４バイトから成る。検索テーブル２０５内に一つのエントリとして格納されるある特定の所定のブロック値（ｐａｒｔｉｃｕｌａｒ  ｐｒｅｄｅｔｅｒｍｉｎｅｄ  ｂｌｏｃｋ  ｖａｌｕｅ）、例えば零なるブロック値（ｂｌｏｃｋ  ｖａｌｕｅ  ｏｆ  ｚｅｒｏ）は、対応するポート上に到達する各パケットに対して、実質的にそのパケット全体が内部メモリ１０４内に、指定される最大値（ｓｐｅｃｉｆｉｅｄ  ｍａｘｉｍｕｍ  ｖａｌｕｅ）、例えば６４キロバイトまで、格納されるべきことを指定することに注意する。
【００２７】
パケットアナライザ２００は、図３Ａの実施例においては、ある特定のパケットに対して、その与えられたパケットと関連する特定のポート番号（ｐａｒｔｉｃｕｌａｒ  ｐｏｒｔ  ｎｕｍｂｅｒ）を決定するように構成される。パケットアナライザ２００は、次に、こうして決定されたポート番号を検索テーブル２０５への入力として用いて、そのパケットの、内部メモリ１０４内に格納されるべき、対応するブロック数（ｃｏｒｒｅｓｐｏｎｄｉｎｇ  ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋｓ）を決定する。次に、そのパケットの、それに相当する数のブロック（ｔｈａｔ  ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋｓ）が内部メモリ１０４内にメモリコントローラ２０２の制御下で格納される。
【００２８】
図３Ｂは、検索テーブル２０５を構成するセットのレジスタの、もう一つの実施例を示す。この実施例においても、検索テーブル２０５は、Ｎ個の異なるエントリを含み、各エントリは内部メモリ１０４の対応するレジスタ内に格納される。ただし、この実施例においては、各エントリはパケット識別子と、対応するブロック数を含む。パケット識別子は、例えば、特定の関連するパケットを指定するパケットフロー識別子とすることも、或いは任意の他の適当なパケット識別情報とすることもできる。前述の実施例と同様に、ある与えられたパケットフロー識別子に対して指定されるブロックの数（ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋｓ）は、対応するパケット識別子を有する各パケットの、内部メモリ１０４内に格納されるべきブロックの数を示す。この実施例においても、１ブロックは、好ましくは、特定のバイト数、例えば、６４バイトとして指定され、零なるブロックエントリ（ｚｅｒｏ  ｂｌｏｃｋ  ｅｎｔｒｙ）は、実質的にそのパケット全体が内部メモリ１０４内に、ある指定される最大値まで、格納されるべきことを示す。
【００２９】
パケットアナライザ２００は、図３Ｂの実施例においては、ある与えられたパケットに対して、その与えられたパケットと関連する特定のパケット識別子を決定するように構成される。パケットアナライザ２００は、次に、こうして決定されたパケット識別子を検索テーブル２０５への入力として用いて、そのパケットの、内部メモリ１０４内に格納されるべき対応するブロック数（ｃｏｒｒｅｓｐｏｎｄｉｎｇ  ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋｓ）を決定する。次に、それに相当する数のブロック（ｔｈａｔ  ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋｓ）がパケ内部メモリ１０４内にメモリコントローラ２０２の制御下で格納される。
【００３０】
図３Ａ及び３Ｂの具体的な実施例は本発明の範囲をいかようにも制限することを意図するものではない。当業者においては理解できるように、様々な代替の検索テーブル構成が可能である。例えば、他のタイプのパッケトカテゴリ化技法（ｐａｃｋｅｔ  ｃａｔｅｇｏｒｉｚｉｎｇ  ｔｅｃｈｎｉｑｕｅｓ）を用いることも、また、ある与えられたパケットカテゴリに対してメモリ内に格納されるべき特定の部分を指定するために、他のアプローチを用いることもできる。
【００３１】
図４は、図１のパケット処理システム１００内で網プロセッサ１０２によって実現することが可能なパケット解析及び格納プロセスの概要を示す流れ図である。このプロセスは単一のパケットに対して示されるが、ただし、類似の処理を受信される各パケットに適用することができる。さらに、図４のプロセス全体が単に本発明の技法を説明するための例示であり、なんら制限を意図するものではないことに注意する。図面には示されないが、図４のプロセスは、検索テーブルのエントリを所望の値に初期設定するための予備ステップを含むこともできる。
【００３２】
ステップ４００において、網プロセッサ１０２によって処理されるべきパケットが受信される。パケットアナライザ２００は、ステップ４０２において、このパケットを部分的に解析することで、網プロセッサ内でのその後の処理のために要求される部分を決定する。前述のように、この決定は、検索テーブル２０５にアクセスし、そのパケットの、内部メモリに格納されるべき特定のブロック数（ｐａｒｔｉｃｕｌａｒ  ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋｓ）を決定することで行われる。ステップ４０４において、そのパケットの、検索テーブル２０５から決定される要求される部分が内部メモリ１０４内に格納される。ステップ４０６において、そのパケット全体が外部メモリ１０６内に格納される。この実施例においては、要求される部分が内部メモリに格納された後に、そのパケット全体が外部メモリに格納されるが、これは単に一例であり、本発明の要件ではない。例えば、パケット全体を、このプロセスのステップ４０２及び４０４を遂行する前に、外部メモリに格納することもできる。もう一つの代替として、そのパケットの残りの部分のみ、つまり、ステップ４０４において内部メモリ内に格納される部分以外の部分を、ステップ４０６において外部メモリ内に格納することもできる。さらに、ステップ４０４と４０６を実質的に並列に遂行することもできる。いずれにおいても、パケット処理時に、つまり、上述のその後の処理がそのパケットの要求される部分に関して遂行される時点で、必要に応じて、網プロセッサ内での適当な処理動作を実現するために、そのパケットの格納された部分が内部メモリ１０４から取り出される。
【００３３】
検索テーブル２０５の各エントリは、適当なソフトウェア制御を介して動的に更新することもできる。例えば、検索テーブル２０５内のあるエントリに対するある与えられた「ブロックの数（ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋｓ）」の値は、初めからこの中に格納しておくことも、周辺コンポーネント相互接続（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ，  ＰＣＩ）バスを介して網プロセッサ１０２に接続されたホストプロセッサの制御下で更新することもできる。
【００３４】
長所として、こうすることで、プログラマは、特定のポート番号、パケットフロー識別子、或いはパケットの他のカテゴリに対して、これらパケットの、内部メモリに格納されるべき特定のブロックの数（ｐａｒｔｉｃｕｌａｒ  ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋｓ）を指定することが可能となる。一般には、プログラマは、典型的には、あるパケットカテゴリと関連する特定のプロトコルを知っており、従って、それらパケットのどの特定の部分を内部メモリ内に保持すれば最適の処理スループットを達成できるかを知っている。検索テーブル２０５内のある与えられた格納値は、受信されるパケットのシーケンスに従って、各パケットに対してソフトウェアの制御下で動的に更新することもできる。代替として、図３Ａ及び３Ｂの実施例のように、受信される複数のパケットの個々に対して同一の値を用いることもできる。
【００３５】
本発明の上述の実施例は単に例示にすぎない。例えば、説明の実施例においては、単一の検索テーブルが用いられ、各エントリはパケットカテゴリ情報と、そのパケットの、内部メモリに格納されるべき関連するブロックの数（ａｓｓｏｃｉａｔｅｄ  ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋｓ）を含むが、別の実施例として、説明の機能を実現するために、異なるタイプのレジスタ或いはメモリ構成を用いることもできる。加えて、ある与えられたパケットの、内部メモリ或いは他の第一のメモリ回路内に格納されるべき指定される部分は、そのパケットのヘッダの部分とすることもできるが、代替として、そのパケットのもっと大きな部分とすることも、さらには、幾つかの所定のブロック数エントリ（ｃｅｒｔａｉｎ  ｐｒｅｄｅｔｅｒｍｉｎｅｄ  ｂｌｏｃｋ  ｎｕｍｂｅｒ  ｅｎｔｒｉｅｓ）、例えば零エントリ（ｚｅｒｏ  ｅｎｔｒｙ）に対しては、パケット全体とすることもできる。当業者においては、クレームの範囲から逸脱することなく、これら及び他の様々な代替の実施形態が可能である。
【図面の簡単な説明】
【図１】本発明がその内部に実現されるパケット処理システムを簡略的に示すブロック図である。
【図２】図１のシステムの、本発明の技法に従って構成された網プロセッサをより詳細に示す図である。
【図３Ａ】図２の網プロセッサ内に実現される、本発明による、パケット識別子とパケットの、内部メモリ内に格納されるべき対応する量（ブロックの数）を格納するための検索デーブルのデータ構造を示す図である。
【図３Ｂ】図２の網プロセッサ内に実現される、本発明による、パケット識別子とパケットの、内部メモリ内に格納されるべき対応する量（ブロックの数）を格納するための検索デーブルのデータ構造を示す図である。
【図４】図２のプロセッサによって図１のシステム内で実現される、本発明によるパケット解析及び格納プロセスの流れ図である。
【符号の説明】
１００  パケット処理システム
１０２  網プロセッサ
１０４  内部メモリ
１０６  外部メモリ
１０８  網
１１０  スイッチファブリック
２００  パケットアナライザ
２０５  検索テーブル
【図１】
0004209186.tif 000002
【図２】
0004209186.tif 000003
【図３Ａ】
0004209186.tif 000004
【図３Ｂ】
0004209186.tif 000005
【図４】
0004209186.tif 000006