(57)【特許請求の範囲】
【請求項１】
処理システムであって、
第１の処理回路に関連づけられた、受信されたパケットのサブセットをリアセンブルされたパケットにリアセンブルするための第１のリアセンブリ回路と、
第１の機能を実施するための第１の処理回路と、
第１の処理回路に関連づけられた、第１のリアセンブリ回路によりリアセンブルされたパケットを記憶するための第１のメモリ回路であって、第１のメモリ回路によって記憶されたリアセンブルされたパケットの少なくとも一部は第１の処理回路が第１の機能に従って使用可能である、第１のメモリ回路と、
第２の機能を実施するための少なくとも第２の処理回路と、
第２の処理回路に関連づけられた、第１のリアセンブリ回路によりリアセンブルされたパケットと同じサブセットの少なくとも一部分をリアセンブルされたパケットにリアセンブルするための少なくとも第２のリアセンブリ回路と、
第２の処理回路に関連づけられた、第２のリアセンブリ回路によってリアセンブルされたパケットを記憶するための少なくとも第２のメモリ回路であって、第１のメモリ回路および第２のメモリ回路に記憶された、リアセンブルされたパケットの少なくとも一部分が同じになるようにし、第２のメモリ回路に記憶されたリアセンブルされたパケットの少なくとも一部分は第２の処理回路が第２の機能に従って使用可能である、第２のメモリ回路とを備える処理システム。
【請求項２】
第１の処理回路、第１のリアセンブリ回路、第１のメモリ回路、第２の処理回路、第２のリアセンブリ回路および第２のメモリ回路が１つの集積回路上に実装される、請求項１に記載のシステム。
【請求項３】
第１の処理回路、第１のリアセンブリ回路および第１のメモリ回路が第１の集積回路上に実装され、第２の処理回路、第２のリアセンブリ回路および第２のメモリ回路が第２の集積回路上に実装される、請求項１に記載のシステム。
【請求項４】
第１の機能と第２の機能が１つの集積回路によって実施される、請求項１に記載のシステム。
【請求項５】
第１の機能と第２の機能が、異なる集積回路によって実施される、請求項１に記載のシステム。
【請求項６】
第１の処理回路、第１のリアセンブリ回路および第１のメモリ回路がネットワーク・プロセッサを構成する、請求項１に記載のシステム。
【請求項７】
第２の処理回路、第２のリアセンブリ回路および第２のメモリ回路がトラフィック・マネージャを構成する、請求項１に記載のシステム。
【請求項８】
パケットに応答する処理システム内で使用するための方法であって、
受信パケットのサブセットを第１のリアセンブラ内でリアセンブル済みパケットにリアセンブルするステップと、
リアセンブル済みパケットを第１のメモリに記憶するステップとを含み、第１のメモリによって記憶されたリアセンブル済みパケットの少なくとも一部は、第１のプロセッサが第１の機能に従って使用可能であり、
第１のリアセンブラによってリアセンブルされる受信パケットのサブセットの少なくとも一部は、少なくとも第２のプロセッサが第２の機能に従って使用可能な少なくとも第２のメモリに記憶されるように、少なくとも第２のリアセンブラ内でリアセンブルすることができ、これにより、第１のメモリおよび第２のメモリに記憶されたリアセンブルされたパケットの少なくとも一部分が同じものになり得る方法。
【請求項９】
パケットに応答する処理システム内で使用するための装置であって、
第１のメモリと、
（ｉ）受信パケットのサブセットをリアセンブル済みパケットにリアセンブルするように、かつ（ｉｉ）リアセンブル済みパケットを第１のメモリに記憶させるように動作可能な第１のプロセッサとを備え、第１のメモリによって記憶されたリアセンブル済みパケットの少なくとも一部は第１の機能に従って使用可能であり、
第１のプロセッサによってリアセンブルされる受信パケットのサブセットの少なくとも一部は、第２の機能に従って使用可能な少なくとも第２のメモリに記憶されるように、少なくとも第２のプロセッサによってリアセンブルすることができ、これにより、第１のメモリおよび第２のメモリに記憶されたリアセンブルされたパケットの少なくとも一部分が同じものになり得る装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般にパケット処理システムに関し、より詳細には、このようなパケット処理システムに関連する複数の機能を実施するために複数のリアセンブリ・メモリを使用することに関する。
【０００２】
【従来の技術】
周知のように、パケット処理システムのルータまたは他のタイプのパケット・スイッチ内で実施されるある種のプロセスの間は、パケットが「セル」と呼ばれるデータ・サブセットまたはデータ部分にセグメント化されることがある。例えば、ルータ・フレーミング動作中に、パケットがセルにセグメント化されることがある。しかし、これらのデータ・セルは、ルータ内で実施される他のプロセスまたは機能によって使用されるように、再びパケットまたはプロトコル・データ・ユニット（ＰＤＵ）にリアセンブルしなければならない。
【０００３】
従来のルータは通常、パケットをリアセンブルし、これらを、ルータが実施する複数の機能に後で使用するために共通のリアセンブリ・メモリに記憶する。このような機能には、例えばパケット分類やパケット・スケジューリングを含めることができる。しかし周知のように、このような複数の機能によって使用するためにパケットをリアセンブルすることは、非常に高い入出力帯域幅を必要とする。
【０００４】
共通の高帯域幅メモリを使用して複数の機能を実施することには、多くの重大な欠点がある。第１に、このような高帯域幅メモリは、非常に高価である可能性がある。また通常、追加ピンや特殊なバッファや特殊な制御機構などが必要になるので、関連するメモリ・インタフェース・デバイスも高価となる。さらに、共通の高帯域幅リアセンブリ・メモリを使用すると、メモリ区分化設計の作業が非常に困難になり、特に、設計を複数の集積回路中に実装する場合は困難である。
【０００５】
【発明が解決しようとする課題】
したがって、リアセンブルしたパケットを、パケット処理システム内で実施する複数の機能において後で使用できるように、共通の高帯域幅メモリを使用して記憶することに関連するこれらおよび他の欠点に対処する技法が必要とされていることは明らかである。
【０００６】
【課題を解決するための手段】
本発明は、パケット処理システムに関連する複数の機能を実施するために複数のリアセンブリ・メモリを利用し、それにより従来の共通の高帯域幅メモリの使用に起因する欠点を回避する、パケット処理技法を提供する。
【０００７】
本発明の一態様では、処理システムが、第１の機能を実施するための第１の処理回路と、第１の処理回路に結合された、受信パケットを記憶するための第１のメモリ回路とを備え、第１のメモリ回路によって記憶されたパケットの少なくとも一部は、第１の処理回路が第１の機能に従って使用可能である。処理システムはさらに、第２の機能を実施するための少なくとも第２の処理回路と、第２の処理回路に結合された、第１のメモリ回路に記憶されるのと同じパケットの少なくとも一部を記憶するための少なくとも第２のメモリ回路とを備え、第２のメモリ回路に記憶されたパケットの少なくとも一部は、第２の処理回路が第２の機能に従って使用可能である。
【０００８】
したがって本発明は、第１の機能および少なくとも第２の機能を実施するのに必要なメモリが、第１のメモリと少なくとも第２のメモリとに別々に区分化され、これらのメモリがそれぞれ、同じデータをまたは必要なデータの少なくともサブセットを記憶するのに十分な、かつ対応する機能を実施可能にするのに十分な帯域幅を備える、パケット処理システムを提供する。
【０００９】
第１の処理回路、第１のメモリ回路、第２の処理回路、および第２のメモリ回路は、同じ集積回路上に実装できることを理解されたい。あるいは、第１の処理回路および第１のメモリ回路は第１の集積回路上に実装し、第２の処理回路および第２のメモリ回路は第２の集積回路上に実装することもできる。
【００１０】
処理システムはまた、第１のメモリ回路に結合された第１のリアセンブリ回路であって、受信パケットを第１のメモリ回路に記憶する前にパケット・サブセットをリアセンブルするための第１のリアセンブリ回路と、第２のメモリ回路に結合された少なくとも第２のリアセンブリ回路であって、パケットを第２のメモリ回路に記憶する前に、第１のリアセンブリ回路によってリアセンブルされるのと同じパケット・サブセットの少なくとも一部をリアセンブルするための少なくとも第２のリアセンブリ回路とを備えることもできる。パケット・サブセットはセルであることが好ましい。
【００１１】
処理システムはまた、第１のリアセンブリ回路および第２のリアセンブリ回路に結合された解析回路であって、第１のリアセンブリ回路および第２のリアセンブリ回路によってそれぞれ受信パケットがリアセンブルされる際に使用されるようにパケットからの情報を解析するための解析回路を備えることもできる。
【００１２】
例示的な一実施形態では、第１の処理回路および第１のメモリ回路は、ネットワーク・プロセッサを構成する。このような場合、第１の機能はパケット分類動作とすることができる。さらに、第２の処理回路および第２のメモリ回路は、トラフィック・マネージャを構成することができる。このような場合、第２の機能はパケット・スケジューリング動作とすることができる。
【００１３】
別の例示的な実施形態では、第１の処理回路および第２の処理回路は、ルータなどのパケット交換デバイス内で動作する。このような場合、第１の処理回路および第２の処理回路は、パケット交換デバイスのパケット・ネットワーク・インタフェースとスイッチ・ファブリックとの間で動作する。
【００１４】
有利にも、本発明のパケット処理技法では、複数の機能を実施することに関連する必要メモリ帯域幅が低減することにより、かつ処理システム設計全体が単純化される関連影響により、システム性能が向上し、システム・コストが削減される。
【００１５】
本発明のこれらおよび他の目的、特徴、および利点は、添付の図面と共に読む以下の本発明の例示的な実施形態の詳細な説明から明らかになるであろう。
【００１６】
【発明の実施の形態】
本発明を、パケット・リアセンブリ動作を含む例示的なパケット処理システムとの関連で以下に例示する。ただし本発明は、共通の高帯域幅メモリの使用に起因する欠点を回避するのが望ましい任意のパケット処理システムに対して、より一般的に適用可能であることを理解されたい。
【００１７】
本明細書で使用する用語「プロセッサ」は、限定ではなく例としてマイクロプロセッサ、中央処理装置（ＣＰＵ）、ディジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、あるいは他のタイプのデータ処理デバイスまたは処理回路、ならびに、これらあるいは他のデバイスまたは回路の一部および組合せを利用して実装できることを理解されたい。
【００１８】
例示的な一実施形態における本発明は、パケット処理システムの複数のプロセッサに関連する複数の機能をそれぞれ実施するために複数のリアセンブリ・メモリを利用することにより、共通の高帯域幅リアセンブリ・メモリの使用に起因する欠点を回避する。本発明は、利点の中でもとりわけ、システム性能の向上および設計費用の削減をもたらす。本発明はまた、システム費用の削減ももたらす。これは、所与の帯域幅のメモリを２つ有する方が、２倍の帯域幅のメモリを１つ有するよりも安価であることが多いからであり、後者は従来の手法で必要とされるものである。
【００１９】
図１に、本発明の一実施形態による、複数のリアセンブリ・メモリを利用するパケット処理システム１００を示す。システム１００は、セル・パーサ１０２と、Ｎ個のパケット・プロセッサ１０４−１〜１０４−Ｎを備え、Ｎは、処理システム１００がサポートするようになっているプロセッサの数に等しい整数とすることができる。各パケット・プロセッサ１０４は、パケット・リアセンブラまたはＰＤＵリアセンブラ１０６（１０６−１〜１０６−Ｎ）と、ＰＤＵメモリ１０８（１０８−１〜１０８−Ｎ）を備える。各プロセッサはまた、それに関連する少なくとも１つのパケット関連機能１１０（１１０−１〜１１０−Ｎ）も有する。
【００２０】
各プロセッサが複数の機能を実施することができ、任意の２つのプロセッサが同じ機能の異なる部分を実施することができることを理解されたい。また、Ｎ個のプロセッサはそれぞれ、Ｎ個の、Ｎ個より多い、またはＮ個より少ない集積回路または処理デバイス（１つの集積回路または処理デバイスを含めて）上に実装することができる。
【００２１】
さらに、パケット処理システム１００は、ルータまたは他のタイプのパケット・スイッチ内に実装することができる。このような場合、各プロセッサがそれぞれのリアセンブリ・メモリに従って実施する機能は、限定ではなく例として、パケット分類やパケット・スケジューリングなどとすることができる。
【００２２】
有利にも、図示のように、パケット処理システム１００は、Ｎ個の機能を実施するのに必要なメモリがＮ個のメモリ（１０８−１〜１０８−Ｎ）に区分化されるように設計され、各メモリは、対応する機能を実施するために同じデータを、または少なくとも選択された必要データをリアセンブルするのに十分な帯域幅を提供する。したがって、データをリアセンブルして、Ｎ個のメモリのそれぞれに並行して記憶することができる。並行動作は、同時、またはほぼ同時（例えばいくらかの時間だけ遅延する）とすることができる。したがって、共通の高帯域幅リアセンブリ・メモリに関連する前述の欠点は、有利にも回避される。
【００２３】
図２に、本発明の一実施形態による、複数のリアセンブリ・メモリを利用するパケット処理方法２００を示す。具体的には、図２は、図１に示した複数のリアセンブリ・メモリ構成に関して以下に述べる。
【００２４】
前述のように、ある種のルータ・プロセス（例えばルータ・フレーミング動作）の間、パケットが「セル」と呼ばれるデータ・サブセットまたはデータ部分にセグメント化されることがある。したがって、セルは通常、パケットのサブセットであり、ヘッダおよびペイロードを含むことがある。例えばセルは、完全なパケットの最初、中間、または最後（あるいはこれらの何らかの組合せ）を含むことがある。しかし、これらのセルのすべてまたはいくつかは、機能１１０−１〜１１０−Ｎによってそれぞれ使用されるように、再びパケットまたはＰＤＵにリアセンブルしなければならない。
【００２５】
したがって、ステップ２０２で、データ処理システム１００によって受信されたセルをパーサ１０２によって解析する。解析動作は、セルからリアセンブリ情報を抽出することを含む。周知のように、リアセンブリ情報は、パケットに関連するデータを、パケットがセルにセグメント化された以前の元の順序またはシーケンスにどのようにリアセンブルするかをリアセンブラ１０６に指示するデータである。
【００２６】
ステップ２０４で、リアセンブリ情報およびセルを、パーサ１０２から各プロセッサ１０４の各リアセンブラ１０６に渡す。次いで、リアセンブラはそれぞれ、リアセンブリ情報を用いて周知のようにセルをＰＤＵにリアセンブルする。
すべてのリアセンブラが同じデータをリアセンブルすることもできるが、このことは必須ではないことを理解されたい。すなわち、各リアセンブラは、それに関連するプロセッサによって実施される機能に特有のデータをリアセンブルするだけでよい。したがって、各リアセンブリ・メモリの帯域幅およびサイズは、機能の処理要件に合わせることができる。
【００２７】
次にステップ２０６で、リアセンブルされたＰＤＵを、各プロセッサ１０４の各ＰＤＵメモリ１０８に記憶する。最後にステップ２０８で、各メモリ１０８に記憶されたリアセンブル済みＰＤＵ（またはこのような記憶済みＰＤＵの少なくとも一部）を、各プロセッサが利用して各機能１１０を実施する。
【００２８】
前述のように、図２のステップ２０４〜２０８は、パケット処理システム１００の全体設計に応じて、各プロセッサ内で同時またはほぼ同時に実施することができる。ただしこのことは必須ではない。
【００２９】
次に図３を参照すると、本発明による、パケット分類機能およびパケット・スケジューリング機能をそれぞれ実施するために２つのリアセンブリ・メモリを利用するパケット処理システム３００が示されている。より具体的には、図３は、図１の処理システム１００の特定の例（Ｎが２に等しい場合）を表すことを理解されたい。
【００３０】
パケット処理システム３００は、メモリ３０４を備えるネットワーク・プロセッサ３０２と、メモリ３０８を備えるトラフィック・マネージャ３０６を含む。この例示的な実施形態では、メモリ３０４を備えるネットワーク・プロセッサ３０２は、対応するリアセンブリ・メモリ回路を備える１つのプロセッサまたは処理回路を表し、トラフィック・マネージャ３０６およびメモリ３０８は、対応するリアセンブリ・メモリ回路を備える他のプロセッサまたは処理回路を表すことを理解されたい。
【００３１】
周知のように、図３に示すようなネットワーク・プロセッサは一般に、非同期転送モード（ＡＴＭ）ネットワークまたは光同期伝送網（ＳＯＮＥＴ）の物理層部分など物理転送媒体と、ルータ内または他のタイプのパケット・スイッチ内のスイッチ・ファブリックとの間で、パケットのフローを制御する。ネットワーク・プロセッサの機能の１つは、パケット分類である。図３に示すようなトラフィック・マネージャは一般に、ネットワーク・プロセッサと共に動作し、機能の中でもとりわけ、バッファ管理およびパケット・スケジューリングを実施する。
【００３２】
したがって図示のように、ネットワーク・プロセッサ３０２およびトラフィック・マネージャ３０６は、これらのプロセッサとネットワーク３１２（例えばＡＴＭやＳＯＮＥＴなど）との間のインタフェース（例えば物理層インタフェースやフレーマ）を提供するネットワーク・インタフェース３１０と、スイッチ・ファブリック３１４との間に機能的に位置する。ネットワーク３１２は、パケットまたはその他のパケット・データを送ってくるネットワークである。スイッチ・ファブリック３１４は、パケットの交換を制御する。２つのプロセッサはまた、この２つのプロセッサに対する制御全体を提供するホストＣＰＵ３１６に応答する。
【００３３】
周知のように、ルータおよびスイッチは一般に複数のプロセッサを備え、これらのプロセッサは、例えば各ライン・カードに１つまたは複数のプロセッサが関連付けられたライン・カード・アレイの形で構成される。したがって、この実施形態では、ネットワーク・プロセッサ３０２およびトラフィック・マネージャ３０６は、ルータまたは他のタイプのパケット・スイッチのライン・カードまたはポート・カード上に実装されたプロセッサを表すことができることを理解されたい。ネットワーク・プロセッサおよびトラフィック・マネージャは、同じ集積回路上に実装することもでき、異なる集積回路上に実装することもできる。
【００３４】
したがって、この特定の実施形態にかんがみて図２の各ステップを再び参照すると、システム３００内のセル（例えばネットワーク・インタフェース３００および／またはスイッチ・ファブリック３１４に関連するセグメント化によって生成されたもの）を、リアセンブリ情報を得るために解析する（ステップ２０２）。パーサは、ネットワーク・プロセッサ３０２内またはトラフィック・マネージャ３０６内のいずれかに実装することができる。次いで、各プロセッサ３０２および３０６によって、セルを同時またはほぼ同時に元のパケットにリアセンブルし（ステップ２０４）、関連するメモリ３０４および３０８に記憶する（ステップ２０６）ことができる。次いで、各メモリに記憶されたリアセンブル済みパケットを、各プロセッサが利用して各機能を実施する（ステップ２０８）。例えば、ネットワーク・プロセッサ３０２内でのパケット分類や、トラフィック・マネージャ３０６内でのパケット・スケジューリングを実施する。
【００３５】
本発明の例示的な実施形態について、添付の図面を参照しながら本明細書に述べたが、本発明は、これらの厳密な実施形態に限定するものではなく、当業者なら本発明の範囲および趣旨を逸脱することなくその他様々な変更および修正を加えることができることを理解されたい。
【図面の簡単な説明】
【図１】本発明の一実施形態による、複数のリアセンブリ・メモリを利用するパケット処理システムを示すブロック図である。
【図２】本発明の一実施形態による、複数のリアセンブリ・メモリを利用するパケット処理方法を示す流れ図である。
【図３】本発明の一実施形態による、パケット分類およびパケット・スケジューリングをそれぞれ実施するために２つのリアセンブリ・メモリを利用するパケット処理システムを示すブロック図である。
【図１】
0004163499.tif 000002
【図２】
0004163499.tif 000003
【図３】
0004163499.tif 000004