JP2003218907A - パケットの高速ルーティング及びスイッチングに対するメモリ要件を低減するように構成されたプロセッサ - Google Patents

パケットの高速ルーティング及びスイッチングに対するメモリ要件を低減するように構成されたプロセッサ

Info

Publication number
JP2003218907A
JP2003218907A JP2002364521A JP2002364521A JP2003218907A JP 2003218907 A JP2003218907 A JP 2003218907A JP 2002364521 A JP2002364521 A JP 2002364521A JP 2002364521 A JP2002364521 A JP 2002364521A JP 2003218907 A JP2003218907 A JP 2003218907A
Authority
JP
Japan
Prior art keywords
packet
processor
memory
stored
packets
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.)
Granted
Application number
JP2002364521A
Other languages
English (en)
Other versions
JP4209186B2 (ja
JP2003218907A5 (ja
Inventor
Mauricio Calle
カレ マーリシオ
Joel R Davidson
アール. ディヴィッドソン ジョエル
Michael W Hathaway
ダブリュ. ハザウェイ マイケル
James T Kirk
テー. カーク ジェームス
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.)
Agere Systems LLC
Original Assignee
Agere Systems LLC
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
Application filed by Agere Systems LLC filed Critical Agere Systems LLC
Publication of JP2003218907A publication Critical patent/JP2003218907A/ja
Publication of JP2003218907A5 publication Critical patent/JP2003218907A5/ja
Application granted granted Critical
Publication of JP4209186B2 publication Critical patent/JP4209186B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 パケットの高速ルーティング及びスイッチン
グに対するメモリ要件を低減するように構成されたプロ
セッサを提供する。 【解決手段】 パケットアナライザは、受信パケットを
部分的に解析して、そのパケットの、第一のメモリ回路
内に格納すべき部分を決定する。この部分が第一のメモ
リ回路内に格納されると、プロセッサ内でのその後の処
理のためにアクセス可能となり、パケット全体を格納す
るように構成された第二のメモリ回路にアクセスする必
要はなくなる。パケットアナライザは、第一のメモリ回
路内に格納されるべき部分を決定するために、検索テー
ブルを構成する複数のレジスタの一つから成るレジスタ
内に格納されている値を用いるように構成される。検索
テーブルは、複数のエントリを含み、各エントリは、パ
ケットカテゴリ情報、例えば、ポート番号或いはパケッ
トフロー識別子と、そのパケットの、内部メモリ104
に関連するブロック数を格納する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般的にはパケット
処理システム、より詳細には、このようなシステム内で
パケットルーティング、パケットスイッチング及び他の
パッケト処理動作を遂行するために用いるように構成さ
れた網プロセッサ或いは他のタイプのプロセッサに関す
る。
【0002】
【従来の技術】網プロセッサは一般には物理伝送媒体、
例えば、非同期転送モード(ATM)網或いは同期光網
(SONET)の物理層部分と、ルータ或いは他のタイ
プのスイッチ内のスイッチファブリックとの間のパケッ
トのフローを制御する。このようなルータ及びスイッチ
は、一般には、例えば、一群のライン或いはポートカー
ドの形態に構成された複数の網プロセッサを含み、一つ
或いは複数のプロセッサがこれらの各カードと関連す
る。
【0003】ルーティングやスイッチングなどのパケッ
ト処理動作の遂行に当たっては、網プロセッサは、典型
的には、各パケットの少なくとも開始或いはヘッドの部
分を調べることを要求される。各パケットの調べること
を要求される量は、それと関連する網通信プロトコル、
起動部分、及びその他の類似の要因に依存する。ルータ
或いはスイッチの機能或いは複雑さも、各パケットの調
べることを要求される量に影響を与える。
【0004】多くの従来のルータ及びスイッチは、処理
中のある与えられたパケットに対して、そのパケットが
最終的にその宛先に送信されるまで或いは脱落されるま
で、実質的にそのパケット全体を格納するように構成さ
れる。パケットは、通常は、関連する網プロセッサに対
して外部のルータ或いはスイッチメモリ内に格納され
る。ある与えられたパケットが外部メモリ内に保持され
る時間量は、ルータ或いはスイッチの基本処理時間、パ
ケットに適用されるサービスの品質、解析されるべき特
定のプロトコル層、及びパケットがそれに向けられるポ
ート或いは他の通信チャネルの輻輳に影響状態される。
【0005】高速ルータ及びスイッチは、典型的には、
網プロセッサ内のオン・チップメモリ(on−chip
memory)内に、ある与えられたパケットの、そ
の網プロセッサによって処理されている幾らかの部分を
格納する。これによって、ルータ或いはスイッチの性能
は、そのパケット全体を保持するより大きな外部メモリ
にアクセスする必要がなくなるために、外部メモリはオ
ン・チップメモリと比較してより低速であり、帯域幅も
制限されているという意味で、大幅に向上される。ただ
し、従来のやり方においては、通常、ある与えられたル
ータ或いはスイッチ用途において解析することを必要と
される最悪の場合のパケット部分(worst−cas
e packet portion)によって、この最
悪の場合のパケット部分はある稀に発生するパケットと
関連するのみであるにも関わらず、オン・チップメモリ
内に保持される個々のパケット部分のサイズが決定さ
れ、このために、要求されるオン・チップメモリのサイ
ズ、従って網プロセッサのコスト及び複雑さが大幅に増
加する。
【0006】
【発明が解決しようとする課題】従って、明らかに、デ
バイスのメモリ要件を低減できるように、パケットの、
網プロセッサ或いは他のタイプのプロセッサと関連する
特定のメモリ内に格納されるべき特定の部分を決定する
ための改善された技法に対する必要性が存在する。
【0007】
【課題を解決するための手段】本発明は網プロセッサ或
いは他のタイプのプロセッサのメモリ要件を大幅に低減
する。
【0008】本発明の一面によると、プロセッサは、パ
ケットアナライザとこのパケットアナライザに接続され
た第一のメモリ回路を含む。パケットアナライザは、プ
ロセッサによって受信された一つ或いは複数のパケット
を少なくとも部分的に解析することで、それらパケット
のある与えられた一つに対して、そのパケットの、第一
のメモリ回路内に格納されるべき部分を決定する。与え
られたパケットのこの部分が第一のメモリ回路内に格納
されると、これはプロセッサ内でのその後の処理のため
にアクセス可能となり、プロセッサと関連し、実質的に
その与えられたパケット全体を格納するように構成され
た第二のメモリ回路にアクセスする必要はなくなる。こ
れら第一と第二のメモリ回路は、例えば、プロセッサ
の、それぞれ、内部メモリと外部メモリから成る。
【0009】本発明のもう一面においては、パケットア
ナライザは、与えられたパケットの、第一のメモリ回
路、例えば、内部メモリ内に格納されるべき部分を決定
するために、プロセッサのレジスタ内に格納されている
値を用いるように構成される。このレジスタは、一つの
実施例においては、パケットアナライザにアクセス可能
な検索テーブルを構成する複数のレジスタの一つから成
る。検索テーブルは、複数のエントリを含み、各エント
リは、パケットカテゴリ情報、例えば、ポート番号或い
はパケットフロー識別子と、そのパケットの、内部メモ
リに格納されるべき関連するブロック数(associ
ated number of blocks)を含
む。
【0010】本発明のさらにもう一面によると、これら
レジスタのある与えられた1つ内に格納されるこの値
は、例えばプロセッサに接続されたホストデバイスの制
御下で動的に更新可能である。これによって、プログラ
マは、例えば、ある与えられたカテゴリのパケットの、
プロセッサの内部メモリ内に格納されるべき特定の部分
を指定することが可能となる。
【0011】長所として、本発明のこれら技法は、プロ
セッサの内部及び/或いは外部メモリ要件を低減するば
かりか、外部メモリへのアクセスの必要性を大幅に低減
し、これによってプロセッサのスループットを大幅に向
上させる。
【0012】
【発明の実施の形態】本発明はここでは特定のやり方に
構成された網プロセッサを含む一例としてのパケット処
理システムとの関連で説明される。ただし、本発明はよ
り一般的にプロセッサ内で遂行されるパケット処理動作
と関連する内部及び或いは外部メモリ要件を低減するこ
とが望ましいあらゆるプロセッサに適用できる。
【0013】ここで「プロセッサ(processo
r)」と称される物は、単に例示として、これらに制限
されるものではないが、マイクロプロセッサ、中央処理
ユニット(CPU)、デジタル信号プロセッサ(DS
P)、特定用途向け集積回路(ASIC)、他のタイプ
のデータ処理デバイス、並びにこれら及び他のデバイス
の部分及び組合せを用いて実現される。
【0014】本発明と共に用いるのに適するプロセッサ
は内部メモリ、例えばオンチップメモリ(on−chi
p memory)と、外部メモリの両方を含む。こう
して、「プロセッサ(processor)」なる用語
は、より広くこのような外部メモリも含むものと解され
ることを意図される。
【0015】本発明は、一つの実施例においては、各パ
ケットが網プロセッサに到着したとき、各パケットを部
分的に解析し、そのパケットの当面必要とされる部分を
格納するために必要とされる量のメモリのみを割当てる
ことで、網プロセッサ内で要求されるメモリの量を低減
する。適当な時間において、パケットはこうして格納さ
れた部分を用いて完全に解析される。この方法による
と、外部メモリにアクセスする必要性が低減されるため
に、網プロセッサのパケットスループットを向上させる
ことが可能となる。この方法では、こうして外部メモリ
にアクセスするために要求される帯域幅を低減すること
ができ、結果として、全体としての処理システム設計を
簡素化できるため、システムコストも削減できる。
【0016】図1は本発明がその内部に実現されるパケ
ット処理システム100を示す。システム100は、内
部メモリ104を有する網プロセッサ102を含む。網
プロセッサ102は、図示するように、外部メモリ10
6に接続され、それからパケットが受信される網108
とパケットデータのスイッチングを制御するスイッチフ
ァブリック110との間のインタフェースを提供するよ
うに構成される。プロセッサ102及びこれと関連する
外部メモリ106は、例えば、ルータ或いはスイッチの
ラインカード上に搭載された一つ或いは複数の集積回路
として実現される。このような構成においては、スイッ
チファブリック110は、一般に、ルータ或いはスイッ
チの一部とみなされる。
【0017】メモリ106は図面においてはプロセッサ
102に対しては外部として示されるが、前述のよう
に、ここで用いられる用語「プロセッサ(proces
sor)」は、要素102と106を含むように十分に
広く解されることを意図される。
【0018】図1に示されるシステム要素の特定の構成
は単に例示に過ぎないことに注意する。例えば、前述の
ように、本発明はあらゆるタイプのパケットプロセッサ
内に実現することができ、ある特定のパケット処理用途
に制限されるものではない。
【0019】図2は図1の網プロセッサ102をより詳
細に示す。網プロセッサ102は、この実施例において
は、網108から入りパケットを受信するパケットアナ
ライザ200を含む。パケットアナライザは、この実施
例においては、内部メモリ104及び外部メモリ106
とインタフェースするメモリコントローラ202に接続
される。プロセッサ102は、図面には示されていない
他の処理回路、例えば、トラフィックマネジャを含むこ
と或いはそれらと関連させることもできる。
【0020】本発明によると、パケットアナライザ20
0は、網プロセッサ102によって受信される一つ或い
は複数のパケットを少なくとも部分的に解析し、それら
パケットのある与えられた1つに対して、そのパケット
の、内部メモリ104内に格納されるべき部分を決定す
る。ある与えられたパケットのこの部分は、内部メモリ
104に格納されると、網プロセッサ102内でのその
後の処理のためにアクセス可能となり、典型的には実質
的にその与えられた全体を格納するように構成される外
部メモリ106へのアクセスは不用となる。ある与えら
れたパケットの、内部メモリ104内に格納されるべき
部分は、例えば、そのパケットのヘッダの、ある指定さ
れる部分とされる。メモリコントローラ202は、与え
られたパケットの、こうして指定された部分の内部メモ
リ104内への格納と、実質的にそのパケット全体の外
部メモリ106内への格納とを制御する。
【0021】パケットアナライザ200は、こうして、
網108から受信される複数のパケットの少なくともサ
ブセットを、少なくとも部分的に解析し、これら解析さ
れたパケットの各々に対して、そのパケットの、内部メ
モリ104内に格納されるべき特定の部分を決定する。
この決定は、例えば、ある与えられたパケットと関連す
るポート番号(port number)、パケットフ
ロー識別子(packet flow identif
ier)或いは他のパケット特徴情報(packet
characterizing informatio
n)を識別し、対応するレジスタ或いは他のメモリ位置
からある関連するブロック数(associated
number of blocks)の指標(desi
gnator)を読み出すことに基づいて行われるが、
これについては後により詳細に説明する。こうして決定
される部分は、通常は、網プロセッサ102内でその後
の処理のために要求される部分から成り、こうして決定
された部分が内部メモリ104内に格納されると、その
後の処理は、そのパケットの他の部分格納する外部メモ
リにアクセスすることを必要とされることなく、遂行可
能となる。
【0022】本発明の技法は、第一と第二のメモリ回路
の一方或いは両方が外部メモリを表し、実質的にパケッ
ト全体が第二のメモリ回路に格納されるような状況にお
いて、例えば、あるパッケトの、第一のメモリ回路に格
納すべきある特定の部分を決定することで、外部メモリ
と関連するメモリ要件を低減するためにも適用できるこ
とに注意する。このような第一と第二のメモリ回路は、
図1のそれぞれ内部メモリ104と外部メモリ106に
も対応する。第一と第二のメモリ回路は、こうして別個
のメモリとすることもできるが、代替として、単一の内
部或いは外部メモリの異なる部分から構成することもで
きる。
【0023】メモリコントローラ202は、単一のメモ
リコントローラとして示されているが、当業者において
は理解できるように、内部メモリ104と外部メモリ1
06に対して別個のコントローラを設けることもでき
る。
【0024】パケットアナライザ200は、メモリコン
トローラ202を介して、内部メモリ104の一部分内
にセットのレジスタを用いて実現される検索テーブル2
05とやり取りする。検索テーブル205は、パケット
アナライザ200によって、ある与えられたパケット
の、内部メモリ104内に格納されるべき特定の部分を
決定するために用いられる情報を提供する。
【0025】検索テーブル205は、別の実施態様とし
て、図面には内部メモリ104の一部として実現される
ものとして示されるが、別個のメモリとして実現するこ
ともできる。
【0026】図3Aは検索テーブル205を構成するセ
ットのレジスタの一例を示す。この実施例においては、
この検索テーブル205は、各々が内部メモリ104の
対応するレジスタ内に格納されるN個の異なるエントリ
を含む。各エントリは、ポート番号と、対応するブロッ
ク数(corresponding numberof
blocks)を含む。ポート番号は、網プロセッサ
102の所に到着する複数のパケットと関連するN個の
ポートの一つと対応する。例えば、ある与えられた網プ
ロセッサは、256個或いはそれ以上のポートをサポー
トする。ある与えられたポートに対して指定されるブロ
ックの数(number of blocks)は、そ
のポートの所に到着する各パケットの、内部メモリ10
4内に格納されるべきブロックの数を示す。1ブロック
は、好ましくは、特定のバイト数(particula
r number of bytes)として指定され
る。例えば、説明の実施例においては、1ブロックは6
4バイトから成る。検索テーブル205内に一つのエン
トリとして格納されるある特定の所定のブロック値(p
articular predetermined b
lock value)、例えば零なるブロック値(b
lock value of zero)は、対応する
ポート上に到達する各パケットに対して、実質的にその
パケット全体が内部メモリ104内に、指定される最大
値(specified maximum valu
e)、例えば64キロバイトまで、格納されるべきこと
を指定することに注意する。
【0027】パケットアナライザ200は、図3Aの実
施例においては、ある特定のパケットに対して、その与
えられたパケットと関連する特定のポート番号(par
ticular port number)を決定する
ように構成される。パケットアナライザ200は、次
に、こうして決定されたポート番号を検索テーブル20
5への入力として用いて、そのパケットの、内部メモリ
104内に格納されるべき、対応するブロック数(co
rresponding number ofbloc
ks)を決定する。次に、そのパケットの、それに相当
する数のブロック(that number of b
locks)が内部メモリ104内にメモリコントロー
ラ202の制御下で格納される。
【0028】図3Bは、検索テーブル205を構成する
セットのレジスタの、もう一つの実施例を示す。この実
施例においても、検索テーブル205は、N個の異なる
エントリを含み、各エントリは内部メモリ104の対応
するレジスタ内に格納される。ただし、この実施例にお
いては、各エントリはパケット識別子と、対応するブロ
ック数を含む。パケット識別子は、例えば、特定の関連
するパケットを指定するパケットフロー識別子とするこ
とも、或いは任意の他の適当なパケット識別情報とする
こともできる。前述の実施例と同様に、ある与えられた
パケットフロー識別子に対して指定されるブロックの数
(number of blocks)は、対応するパ
ケット識別子を有する各パケットの、内部メモリ104
内に格納されるべきブロックの数を示す。この実施例に
おいても、1ブロックは、好ましくは、特定のバイト
数、例えば、64バイトとして指定され、零なるブロッ
クエントリ(zero block entry)は、
実質的にそのパケット全体が内部メモリ104内に、あ
る指定される最大値まで、格納されるべきことを示す。
【0029】パケットアナライザ200は、図3Bの実
施例においては、ある与えられたパケットに対して、そ
の与えられたパケットと関連する特定のパケット識別子
を決定するように構成される。パケットアナライザ20
0は、次に、こうして決定されたパケット識別子を検索
テーブル205への入力として用いて、そのパケット
の、内部メモリ104内に格納されるべき対応するブロ
ック数(corresponding number
of blocks)を決定する。次に、それに相当す
る数のブロック(that number of bl
ocks)がパケ内部メモリ104内にメモリコントロ
ーラ202の制御下で格納される。
【0030】図3A及び3Bの具体的な実施例は本発明
の範囲をいかようにも制限することを意図するものでは
ない。当業者においては理解できるように、様々な代替
の検索テーブル構成が可能である。例えば、他のタイプ
のパッケトカテゴリ化技法(packet categ
orizing techniques)を用いること
も、また、ある与えられたパケットカテゴリに対してメ
モリ内に格納されるべき特定の部分を指定するために、
他のアプローチを用いることもできる。
【0031】図4は、図1のパケット処理システム10
0内で網プロセッサ102によって実現することが可能
なパケット解析及び格納プロセスの概要を示す流れ図で
ある。このプロセスは単一のパケットに対して示される
が、ただし、類似の処理を受信される各パケットに適用
することができる。さらに、図4のプロセス全体が単に
本発明の技法を説明するための例示であり、なんら制限
を意図するものではないことに注意する。図面には示さ
れないが、図4のプロセスは、検索テーブルのエントリ
を所望の値に初期設定するための予備ステップを含むこ
ともできる。
【0032】ステップ400において、網プロセッサ1
02によって処理されるべきパケットが受信される。パ
ケットアナライザ200は、ステップ402において、
このパケットを部分的に解析することで、網プロセッサ
内でのその後の処理のために要求される部分を決定す
る。前述のように、この決定は、検索テーブル205に
アクセスし、そのパケットの、内部メモリに格納される
べき特定のブロック数(particular num
ber of blocks)を決定することで行われ
る。ステップ404において、そのパケットの、検索テ
ーブル205から決定される要求される部分が内部メモ
リ104内に格納される。ステップ406において、そ
のパケット全体が外部メモリ106内に格納される。こ
の実施例においては、要求される部分が内部メモリに格
納された後に、そのパケット全体が外部メモリに格納さ
れるが、これは単に一例であり、本発明の要件ではな
い。例えば、パケット全体を、このプロセスのステップ
402及び404を遂行する前に、外部メモリに格納す
ることもできる。もう一つの代替として、そのパケット
の残りの部分のみ、つまり、ステップ404において内
部メモリ内に格納される部分以外の部分を、ステップ4
06において外部メモリ内に格納することもできる。さ
らに、ステップ404と406を実質的に並列に遂行す
ることもできる。いずれにおいても、パケット処理時
に、つまり、上述のその後の処理がそのパケットの要求
される部分に関して遂行される時点で、必要に応じて、
網プロセッサ内での適当な処理動作を実現するために、
そのパケットの格納された部分が内部メモリ104から
取り出される。
【0033】検索テーブル205の各エントリは、適当
なソフトウェア制御を介して動的に更新することもでき
る。例えば、検索テーブル205内のあるエントリに対
するある与えられた「ブロックの数(number o
f blocks)」の値は、初めからこの中に格納し
ておくことも、周辺コンポーネント相互接続(peri
pheral component intercon
nect, PCI)バスを介して網プロセッサ102
に接続されたホストプロセッサの制御下で更新すること
もできる。
【0034】長所として、こうすることで、プログラマ
は、特定のポート番号、パケットフロー識別子、或いは
パケットの他のカテゴリに対して、これらパケットの、
内部メモリに格納されるべき特定のブロックの数(pa
rticular number of block
s)を指定することが可能となる。一般には、プログラ
マは、典型的には、あるパケットカテゴリと関連する特
定のプロトコルを知っており、従って、それらパケット
のどの特定の部分を内部メモリ内に保持すれば最適の処
理スループットを達成できるかを知っている。検索テー
ブル205内のある与えられた格納値は、受信されるパ
ケットのシーケンスに従って、各パケットに対してソフ
トウェアの制御下で動的に更新することもできる。代替
として、図3A及び3Bの実施例のように、受信される
複数のパケットの個々に対して同一の値を用いることも
できる。
【0035】本発明の上述の実施例は単に例示にすぎな
い。例えば、説明の実施例においては、単一の検索テー
ブルが用いられ、各エントリはパケットカテゴリ情報
と、そのパケットの、内部メモリに格納されるべき関連
するブロックの数(associated numbe
r of blocks)を含むが、別の実施例とし
て、説明の機能を実現するために、異なるタイプのレジ
スタ或いはメモリ構成を用いることもできる。加えて、
ある与えられたパケットの、内部メモリ或いは他の第一
のメモリ回路内に格納されるべき指定される部分は、そ
のパケットのヘッダの部分とすることもできるが、代替
として、そのパケットのもっと大きな部分とすること
も、さらには、幾つかの所定のブロック数エントリ(c
ertainpredetermined block
number entries)、例えば零エントリ
(zero entry)に対しては、パケット全体と
することもできる。当業者においては、クレームの範囲
から逸脱することなく、これら及び他の様々な代替の実
施形態が可能である。
【図面の簡単な説明】
【図1】本発明がその内部に実現されるパケット処理シ
ステムを簡略的に示すブロック図である。
【図2】図1のシステムの、本発明の技法に従って構成
された網プロセッサをより詳細に示す図である。
【図3A】図2の網プロセッサ内に実現される、本発明
による、パケット識別子とパケットの、内部メモリ内に
格納されるべき対応する量(ブロックの数)を格納する
ための検索デーブルのデータ構造を示す図である。
【図3B】図2の網プロセッサ内に実現される、本発明
による、パケット識別子とパケットの、内部メモリ内に
格納されるべき対応する量(ブロックの数)を格納する
ための検索デーブルのデータ構造を示す図である。
【図4】図2のプロセッサによって図1のシステム内で
実現される、本発明によるパケット解析及び格納プロセ
スの流れ図である。
【符号の説明】
100 パケット処理システム 102 網プロセッサ 104 内部メモリ 106 外部メモリ 108 網 110 スイッチファブリック 200 パケットアナライザ 205 検索テーブル
フロントページの続き (72)発明者 ジョエル アール. ディヴィッドソン アメリカ合衆国 78727 テキサス,オー スチン,オータム リッジ ドライヴ 11506 (72)発明者 マイケル ダブリュ. ハザウェイ アメリカ合衆国 78746 テキサス,オー スチン,ペリグリン ファルコン 3613 (72)発明者 ジェームス テー. カーク アメリカ合衆国 78759 テキサス,オー スチン,ダイアネラ レーン 10231 Fターム(参考) 5K030 GA06 HA08 HD03 KA01 KA02

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 パケットアナライザと、 プロセッサと関連し、該パケットアナライザに接続され
    た第一のメモリ回路とを備えるプロセッサであって、 該パケットアナライザが該プロセッサによって受信され
    る一つ或いは複数のパケットを少なくとも部分的に解析
    することで、これらパケットのある与えられた一つに対
    してそのパケットの該第一のメモリ回路内に格納される
    べき部分を決定し、該与えられたパケットの該部分が該
    第一のメモリ回路内に格納されると、該プロセッサ内で
    のその後の処理のためにアクセス可能となり、該プロセ
    ッサと関連し、該与えられたパケットの実質的に全体を
    格納するように構成された第二のメモリ回路へのアクセ
    スは必要でなくなることを特徴とするプロセッサ。
  2. 【請求項2】 該第一のメモリ回路が該プロセッサの内
    部メモリから成り、該第二のメモリ回路が該プロセッサ
    の外部メモリから成り、更に、該パケットアナライザが
    網から受信される複数のパケットの各々を少なくとも部
    分的に解析し、これらパケットの少なくともあるサブセ
    ットの各々に対して、そのパケットの該内部メモリ内に
    格納されるべき特定の部分を決定する請求項1記載のプ
    ロセッサ。
  3. 【請求項3】 該第一のメモリ回路が該プロセッサの内
    部メモリから成り、該第二のメモリ回路が該プロセッサ
    の外部メモリから成り、更に、該パケットアナライザが
    該与えられたパケットの該内部メモリ内に格納されるべ
    き部分を決定するために該プロセッサのレジスタ内に格
    納されている値を用いるように構成される請求項1記載
    のプロセッサ。
  4. 【請求項4】 該レジスタが該パケットアナライザにア
    クセス可能な検索テーブルを構成する複数のレジスタの
    一つから成り、更に、該検索テーブルが複数のエントリ
    を含み、これらエントリの少なくともサブセットが各々
    パケットカテゴリ情報とそのパケットの該内部メモリに
    格納されるべき関連するブロック数を含む請求項3記載
    のプロセッサ。
  5. 【請求項5】 該パケットカテゴリ情報が、該プロセッ
    サと関連する、そこから一つ或いは複数の該パケットが
    受信されるポートを指定するポート番号から成る請求項
    4記載のプロセッサ。
  6. 【請求項6】 該パケットカテゴリ情報が、ある特定の
    パケットフローを指定するパケット識別子から成る請求
    項4記載のプロセッサ。
  7. 【請求項7】 該関連するブロック数が、該与えられた
    パケットに対して実質的にそのパケットの全体が該内部
    メモリに格納されるべきことを示す所定のブロック数か
    ら成る請求項4記載のプロセッサ。
  8. 【請求項8】 該第一のメモリ回路が該プロセッサの内
    部メモリから成り、該第二のメモリ回路が該プロセッサ
    の外部メモリから成り、更に、該パケットアナライザの
    制御下で、該与えられたパケットに対するパケットカテ
    ゴリ情報とそのパケットの該内部メモリ内に格納される
    べき部分の対応する指標を格納するレジスタを備える請
    求項1記載のプロセッサ。
  9. 【請求項9】 プロセッサと、 該プロセッサに接続された外部メモリとを備える処理シ
    ステムであって、 該プロセッサがさらに:パケットアナライザと、 該パケットアナライザに接続された内部メモリ回路とを
    備え、 該パケットアナライザが該プロセッサによって受信され
    る一つ或いは複数のパケットを少なくとも部分的に解析
    することで、これらパケットのある与えられた一つに対
    してそのパケットの該内部メモリに格納されるべき部分
    を決定し、該与えられたパケットの該部分が該内部メモ
    リに格納されると、該プロセッサ内でのその後の処理の
    ためにアクセス可能となり、該与えられたパケットの実
    質的に全体を格納するように構成された該外部メモリへ
    のアクセスは必要でなくなることを特徴とする処理シス
    テム。
  10. 【請求項10】 プロセッサ内でパケットを処理するた
    めに用いる方法であって、 該プロセッサによって受信される一つ或いは複数のパケ
    ットを少なくとも部分的に解析することで、これらパケ
    ットのある与えられた一つに対してそのパケットの該プ
    ロセッサと関連する第一のメモリ回路内に格納されるべ
    き部分を決定するステップと、 該与えられたパケットの該部分を該第一のメモリ回路内
    に格納するステップとを含み、該与えられたパケットの
    該部分がこれによって該プロセッサ内でのその後の処理
    のためにアクセス可能となり、該プロセッサと関連し、
    実質的に該与えられたパケット全体を格納するように構
    成された第二のメモリ回路へのアクセスは必要でなくな
    ることを特徴とする方法。
JP2002364521A 2001-12-19 2002-12-17 パケットの高速ルーティング及びスイッチングに対するメモリ要件を低減するように構成されたプロセッサ Expired - Fee Related JP4209186B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/025352 2001-12-19
US10/025,352 US7113518B2 (en) 2001-12-19 2001-12-19 Processor with reduced memory requirements for high-speed routing and switching of packets

Publications (3)

Publication Number Publication Date
JP2003218907A true JP2003218907A (ja) 2003-07-31
JP2003218907A5 JP2003218907A5 (ja) 2005-12-22
JP4209186B2 JP4209186B2 (ja) 2009-01-14

Family

ID=21825510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002364521A Expired - Fee Related JP4209186B2 (ja) 2001-12-19 2002-12-17 パケットの高速ルーティング及びスイッチングに対するメモリ要件を低減するように構成されたプロセッサ

Country Status (6)

Country Link
US (1) US7113518B2 (ja)
EP (1) EP1331757B1 (ja)
JP (1) JP4209186B2 (ja)
KR (1) KR100937283B1 (ja)
DE (1) DE60211466T2 (ja)
TW (1) TWI249919B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1791305A1 (en) * 2005-11-25 2007-05-30 Alcatel Lucent Storing and processing a data unit in a network device
US8572349B2 (en) * 2006-01-31 2013-10-29 Agere Systems Llc Processor with programmable configuration of logical-to-physical address translation on a per-client basis
US7835288B2 (en) * 2008-07-02 2010-11-16 OnPath Technologies Inc. Network switch with onboard diagnostics and statistics collection
US8897316B2 (en) * 2010-12-31 2014-11-25 Telefonaktiebolaget L M Ericsson (Publ) On-chip packet cut-through
US8743715B1 (en) 2011-01-24 2014-06-03 OnPath Technologies Inc. Methods and systems for calibrating a network switch
US9141373B2 (en) * 2013-07-31 2015-09-22 Arista Networks, Inc. System and method for accelerated software upgrades
CN113472688B (zh) * 2020-03-30 2023-10-20 瑞昱半导体股份有限公司 应用在网络装置中的电路及网络装置的操作方法
US20230060275A1 (en) * 2021-08-20 2023-03-02 International Business Machines Corporation Accelerating multiplicative modular inverse computation

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0504537A1 (en) * 1991-03-22 1992-09-23 International Business Machines Corporation Method and apparatus for the testing and evaluation of geographically distributed telecommunication networks
JP4181645B2 (ja) * 1996-02-29 2008-11-19 富士通株式会社 データ処理装置
US6369855B1 (en) * 1996-11-01 2002-04-09 Texas Instruments Incorporated Audio and video decoder circuit and system
US6178483B1 (en) * 1997-02-14 2001-01-23 Advanced Micro Devices, Inc. Method and apparatus for prefetching data read by PCI host
US6032190A (en) 1997-10-03 2000-02-29 Ascend Communications, Inc. System and method for processing data packets
US6160809A (en) 1997-12-17 2000-12-12 Compaq Computer Corporation Distributed packet data with centralized snooping and header processing router
WO2000003517A1 (en) 1998-07-08 2000-01-20 Broadcom Corporation High performance self balancing low cost network switching architecture based on distributed hierarchical shared memory
US6438145B1 (en) * 1998-12-04 2002-08-20 Koninklijke Philips Electronics N.V. Transport packet distribution system and method using local header
KR100378372B1 (ko) * 1999-06-12 2003-03-29 삼성전자주식회사 데이터 네트워크에서 패킷 스위치 장치 및 방법
US7328277B2 (en) 2000-03-03 2008-02-05 Enterasys Networks, Inc. High-speed data processing using internal processor memory space
US6947931B1 (en) * 2000-04-06 2005-09-20 International Business Machines Corporation Longest prefix match (LPM) algorithm implementation for a network processor
US7032031B2 (en) * 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
US7114008B2 (en) * 2000-06-23 2006-09-26 Cloudshield Technologies, Inc. Edge adapter architecture apparatus and method
WO2002035847A2 (en) * 2000-10-27 2002-05-02 Polycom Israel Ltd. Apparatus and method for improving the quality of video communication over a packet-based network
US20020196737A1 (en) * 2001-06-12 2002-12-26 Qosient Llc Capture and use of service identifiers and service labels in flow activity to determine provisioned service for datagrams in the captured flow activity
US6915480B2 (en) * 2001-12-21 2005-07-05 Agere Systems Inc. Processor with packet data flushing feature

Also Published As

Publication number Publication date
JP4209186B2 (ja) 2009-01-14
US20030112801A1 (en) 2003-06-19
EP1331757B1 (en) 2006-05-17
TWI249919B (en) 2006-02-21
KR20030051381A (ko) 2003-06-25
DE60211466T2 (de) 2006-09-28
EP1331757A2 (en) 2003-07-30
US7113518B2 (en) 2006-09-26
TW200303666A (en) 2003-09-01
EP1331757A3 (en) 2003-08-13
KR100937283B1 (ko) 2010-01-18
DE60211466D1 (de) 2006-06-22

Similar Documents

Publication Publication Date Title
JP3734704B2 (ja) パケット分類エンジン
US8325716B2 (en) Data path optimization algorithm
US7313142B2 (en) Packet processing device
JP3640299B2 (ja) ルートルックアップおよびパケット分類要求のための提起および応答アーキテクチャ
US6650642B1 (en) Network relaying apparatus and network relaying method capable of high-speed routing and packet transfer
US8671219B2 (en) Method and apparatus for efficiently processing data packets in a computer network
US7411968B2 (en) Two-dimensional queuing/de-queuing methods and systems for implementing the same
US20030193927A1 (en) Random access memory architecture and serial interface with continuous packet handling capability
US7830892B2 (en) VLAN translation in a network device
US20020061022A1 (en) Network switch using network processor and methods
US7492771B2 (en) Method for performing a packet header lookup
JP2003508851A (ja) ネットワーク・プロセッサ、メモリ構成及び方法
JP2003508957A (ja) ネットワーク・プロセッサ処理コンプレックス及び方法
JP2001251351A (ja) パケット交換機における入力パケット処理方式
JP2002524005A (ja) 通信を高速化するインテリジェントネットワークインタフェース装置及びシステム
JP2003508951A (ja) Vlsiネットワーク・プロセッサ及び方法
US5825774A (en) Packet characterization using code vectors
EP1244964A1 (en) Method and system for frame and protocol classification
US5748633A (en) Method and apparatus for the concurrent reception and transmission of packets in a communications internetworking device
JP2003218907A (ja) パケットの高速ルーティング及びスイッチングに対するメモリ要件を低減するように構成されたプロセッサ
US7903687B2 (en) Method for scheduling, writing, and reading data inside the partitioned buffer of a switch, router or packet processing device
US7079539B2 (en) Method and apparatus for classification of packet data prior to storage in processor buffer memory
US7379467B1 (en) Scheduling store-forwarding of back-to-back multi-channel packet fragments
US6671277B1 (en) Network relaying apparatus and network relaying method capable of high quality transfer of packets under stable service quality control
US20070230491A1 (en) Group tag caching of memory contents

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051102

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071116

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080215

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080516

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081022

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131031

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees