JP2004040196A - パケットデータ処理装置およびパケットデータ処理方法 - Google Patents

パケットデータ処理装置およびパケットデータ処理方法 Download PDF

Info

Publication number
JP2004040196A
JP2004040196A JP2002190686A JP2002190686A JP2004040196A JP 2004040196 A JP2004040196 A JP 2004040196A JP 2002190686 A JP2002190686 A JP 2002190686A JP 2002190686 A JP2002190686 A JP 2002190686A JP 2004040196 A JP2004040196 A JP 2004040196A
Authority
JP
Japan
Prior art keywords
packet data
processor
data processing
protocol
extended instruction
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.)
Pending
Application number
JP2002190686A
Other languages
English (en)
Inventor
Takeshi Nakajima
中島 剛
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2002190686A priority Critical patent/JP2004040196A/ja
Publication of JP2004040196A publication Critical patent/JP2004040196A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】多数のプロセッサを用いても回路規模が極めて大きくなることのないパケットデータ処理装置およびパケットデータ処理方法を提供すること。
【解決手段】パケットデータの解析およびデータの挿入や削除を行う5個のカスタムプロセッサコア10a〜10eと、カスタムプロセッサコアが拡張命令を実行する際に使用する3個の拡張命令制御部18a〜18cと、パケットデータを蓄積する入力バッファ部15と、パケットデータのプロトコルを判定するプロトコル判定部16と、プロトコルの種類に応じて拡張命令制御部に接続されるカスタムプロセッサコアを選択するセレクタ17とを備え、入力バッファ部15に入力されたパケットデータのプロトコル判定部16による判定結果に応じて、拡張命令制御部18に接続されるカスタムプロセッサコア10を選択し、パケットデータのヘッダ解析を並列処理する。
【選択図】  図1

Description

【0001】
【発明の属する技術分野】
本発明は、拡張命令を実行可能な複数のプロセッサを用いて、パケットデータのヘッダ解析を並列処理するパケットデータ処理装置およびパケットデータ処理方法に関する。
【0002】
【従来の技術】
近年、ネットワーク利用者や接続ホスト数の急増に伴い、ネットワーク上のトラフィック量は増大傾向にある。このため、スイッチやルータなどのネットワーク機器において、パケットデータを高速に処理する必要性が高まっている。
【0003】
従来より、ネットワーク機器に搭載され、拡張命令を実行可能な複数のカスタムプロセッサを用いてパケットデータのヘッダ処理を行うパケットデータ処理装置が知られている。図3は、従来のパケットデータ処理装置の構成を示すブロック図である。同図に示す従来のパケットデータ処理装置は、パケットデータの解析およびデータの挿入や削除を行うカスタムプロセッサコア110a〜110eと、パケットデータのヘッダ部分を蓄積する入力バッファ部115と、カスタムプロセッサコア110a〜110eにそれぞれ接続され、各カスタムプロセッサコア110a〜110eが拡張命令を実行する際に使用される拡張命令制御部118a〜118eとから構成される。
【0004】
以下、当該パケットデータ処理装置の動作について説明する。このパケットデータ処理装置では、入力バッファ部115に蓄積されたパケットデータのヘッダ処理を行う際、負荷の軽い処理をカスタムプロセッサコア110で行い、多ビット演算処理等の負荷の重い処理を拡張命令制御部118で並列処理することで、ヘッダ処理の高速性を実現している。
【0005】
図3には、5個のカスタムプロセッサを用いてヘッダ処理を行うパケットデータ処理装置が示されている。第1のカスタムプロセッサコア110aはMACアドレス解析を行い、第2のカスタムプロセッサコア110bはVLAN解析を行い、第3のカスタムプロセッサコア110cはフレームフォーマット解析を行い、第4のカスタムプロセッサコア110dはIPヘッダ解析を行い、第5のカスタムプロセッサコア110eはデータ削除処理やデータ挿入処理を行う。各カスタムプロセッサコア(以下、単に「カスタムプロセッサ」という。)は、負荷の重い処理を対応する拡張命令制御部118に実行させることで、パケットデータのヘッダ処理を高速に行うことができる。
【0006】
【発明が解決しようとする課題】
しかしながら、ヘッダ処理の負荷はプロトコルによって大きく異なるが、カスタムプロセッサはどのようなプロトコルのパケットデータが来ても一定時間内に解析を終了させなければならないため、上記従来のパケットデータ処理装置は、各カスタムプロセッサ110に対応する拡張命令制御部118をそれぞれ有していなければならない。
【0007】
各カスタムプロセッサ110に実装される拡張命令制御部118は、多ビット演算処理や複数領域の一括比較など、同様の処理を行う機能を有するため、カスタムプロセッサ毎にカスタマイズされない場合が多かった。また、ヘッダ処理の高速化のため、数十個のカスタムプロセッサ110を使用することが必須になってきており、開発工数の観点からも同じ拡張命令制御部をそれぞれのカスタムプロセッサに実装する場合が多かった。しかも、拡張命令制御部118は、多ビット演算処理や複数領域の一括比較等の機能を実現するため、カスタムプロセッサコア110に比べて大規模な回路構成を有していた。
【0008】
このように、従来のパケットデータ処理装置では、多数のカスタムプロセッサコア110を用いると、カスタムプロセッサ110と同数だけ実装される拡張命令制御部118によって、回路規模が極めて大きくなってしまうという問題点があった。
【0009】
本発明は、上記従来の問題点に鑑みてなされたものであって、多数のプロセッサを用いても回路規模が極めて大きくなることのないパケットデータ処理装置およびパケットデータ処理方法を提供することを目的とする。
【0010】
【課題を解決するための手段】
上記目的を達成するために、本発明に係るパケットデータ処理装置は、パケットデータの解析を行う複数のプロセッサと、前記プロセッサから受け取った拡張命令を実行し、当該実行結果を前記プロセッサに返す拡張命令実行手段とを備え、前記パケットデータのヘッダ解析を並列処理するパケットデータ処理装置であって、パケットデータを蓄積する入力バッファ手段と、前記入力バッファ手段に入力されたパケットデータのプロトコルを判定するプロトコル判定手段と、前記プロトコル判定手段で判定されたプロトコルの種類に応じて、前記拡張命令実行手段に接続するプロセッサを選択するプロセッサ選択手段と、を備えている。
【0011】
したがって、拡張命令実行手段の数はプロセッサの数よりも少なくて良い。拡張命令実行手段の回路規模は比較的大規模であることと、上記拡張命令実行手段の数はプロセッサの数よりも少なくて良いことから、多数のプロセッサを用いてもパケットデータ処理装置の回路規模が極めて大きくなることはない。
【0012】
また、本発明に係るパケットデータ処理装置は、前記プロセッサ選択手段は、各プロトコルに対応した、拡張命令の実行が必要なプロセッサを特定するためのテーブルを有し、特定したプロセッサを前記拡張命令実行手段に接続する。
【0013】
また、本発明に係るパケットデータ処理装置は、前記拡張命令実行手段の数は前記プロセッサの数よりも少ない
【0014】
また、本発明に係るパケットデータ処理装置は、前記複数のプロセッサは、データの挿入または削除を行うプロセッサを含む。
【0015】
また、本発明に係るパケットデータ処理装置は、ネットワーク機器に搭載されている。
【0016】
また、本発明に係るパケットデータ処理方法は、パケットデータの解析を行う複数のプロセッサが拡張命令を実行する際、前記プロセッサに接続された拡張命令実行手段は前記プロセッサから前記拡張命令を受け取って実行し、当該実行結果を前記プロセッサに返すことで、前記パケットデータのヘッダ解析を並列処理するパケットデータ処理方法において、入力されたパケットデータのプロトコルを判定するプロトコル判定ステップと、前記プロトコル判定ステップで判定されたプロトコルの種類に応じて、前記拡張命令実行手段に接続するプロセッサを選択するプロセッサ選択ステップと、を有する。
【0017】
また、本発明に係るパケットデータ処理方法は、前記プロセッサ選択ステップは、各プロトコルに対応した、拡張命令の実行が必要なプロセッサを特定するためのテーブルを参照し、特定したプロセッサを前記拡張命令実行手段に接続する。
【0018】
さらに、本発明に係るパケットデータ処理方法は、前記拡張命令実行手段の数は前記プロセッサの数よりも少ない。
【0019】
【発明の実施の形態】
本発明に係るパケットデータ処理装置およびパケットデータ処理方法の実施の形態について、図面を参照しながら説明する。
【0020】
図1は、ネットワーク機器に搭載された本発明の一実施形態に係るパケットデータ処理装置の構成を示すブロック図である。同図に示すように、本実施形態のパケットデータ処理装置は、パケットデータの解析およびデータの挿入や削除を行う5個のカスタムプロセッサコア10a〜10eと、カスタムプロセッサコア10a〜10eがそれぞれ拡張命令を実行する際に使用される3個の拡張命令制御部18a〜18cと、パケットデータを蓄積する入力バッファ部15と、パケットデータのプロトコルを判定するプロトコル判定部16と、プロトコルの種類に応じて拡張命令制御部18a〜18cに接続されるカスタムプロセッサコア10a〜10eを選択するセレクタ17とを備えて構成されている。
【0021】
なお、各カスタムプロセッサコア10a〜10eは特許請求の範囲のプロセッサに該当し、各拡張命令制御部18a〜18cは拡張命令実行手段に該当し、入力バッファ部15は入力バッファ手段に該当し、プロトコル判定部16はプロトコル判定手段に該当し、セレクタ17はプロセッサ選択手段に該当する。
【0022】
本実施形態のパケットデータ処理装置は、入力バッファ部15に蓄積されたパケットデータのヘッダ処理を行う際、負荷の軽い処理はカスタムプロセッサコア10a〜10eで行い、多ビット演算処理や複数領域の一括比較等の負荷の重い処理は拡張命令制御部18a〜18cで並列処理する。なお、本実施形態では、第1のカスタムプロセッサコア10a(カスタムプロセッサ1)はMACアドレス解析を行い、第2のカスタムプロセッサコア11(カスタムプロセッサ2)はVLAN解析を行い、第3のカスタムプロセッサコア12(カスタムプロセッサ3)はフレームフォーマット解析を行い、第4のカスタムプロセッサコア13(カスタムプロセッサ4)はIPヘッダ解析を行い、第5のカスタムプロセッサコア10e(カスタムプロセッサ5)はデータ削除処理やデータ挿入処理を行う。
【0023】
また、セレクタ17は、プロトコル判定部16の判定結果に基づいて、「表1」に示されたテーブルを参照して、拡張命令制御部18に接続されるカスタムプロセッサコア10を選択する。なお、表1に示したテーブルでは、プロトコルの種類に対応した、拡張命令の実行が必要なカスタムプロセッサが特定されている。
【0024】
【表1】
Figure 2004040196
【0025】
例えば、プロトコル判定部16によるプロトコル判定の結果、到着したパケットデータのプロトコルが通常処理に対応の「プロトコルA」の場合、フレームフォーマット解析を行うカスタムプロセッサ3およびデータ削除/挿入処理を行うカスタムプロセッサ5の処理負荷が大きいため、セレクタ17は、カスタムプロセッサ3およびカスタムプロセッサ5に拡張命令制御部18を接続する。
【0026】
また、プロトコル判定部16によるプロトコル判定の結果、到着したパケットデータのプロトコルがIpv6対応の「プロトコルB」の場合、フレームフォーマット解析を行うカスタムプロセッサ3、IPヘッダ解析を行うカスタムプロセッサ4、およびデータ削除/挿入処理を行うカスタムプロセッサ5の処理負荷が大きいため、セレクタ17は、カスタムプロセッサ3、カスタムプロセッサ4およびカスタムプロセッサ5に拡張命令制御部18を接続する。
【0027】
さらに、プロトコル判定部16によるプロトコル判定の結果、到着したパケットデータのプロトコルがスイッチング処理に対応の「プロトコルC」の場合、MACアドレス解析を行うカスタムプロセッサ1およびVLAN解析を行うカスタムプロセッサ2の処理負荷が大きいため、セレクタ17は、カスタムプロセッサ1およびカスタムプロセッサ2に拡張命令制御部18を接続する。
【0028】
以下、上記構成要素を備えた本実施形態のパケットデータ処理装置の動作(パケットデータ処理方法)について説明する。図2は、本発明の一実施形態に係るパケットデータ処理装置が行うヘッダ処理手順を示すフローチャートである。
【0029】
同図に示すように、まず、入力バッファ部15はパケットデータが到着するのを待つ(ステップS1)。パケットデータが到着すると、プロトコル判定部16は、入力バッファ部15に蓄積されていくパケットデータを判定し、その判定結果をセレクタ17に転送する(ステップS2)。セレクタ17は、プロトコル判定部16の判定結果に基づいて、「表1」に示されたテーブルを参照して(ステップS3)、拡張命令制御部18に接続されるカスタムプロセッサコア10を選択する(ステップS4)。
【0030】
次に、拡張命令制御部18に接続されたカスタムプロセッサコア10は、拡張命令制御部18を利用し、必要に応じて拡張命令を実行しながらヘッダ解析を行う(ステップS5)。一方、拡張命令制御部18に接続されなかったカスタムプロセッサコア10は、通常命令のみでヘッダ解析を行う(ステップS5)。こうして、パケットデータのヘッダ処理を終了する。
【0031】
以上説明したように、本実施形態のパケットデータ処理装置およびパケットデータ処理方法では、入力バッファ部15に入力されたパケットデータのプロトコル判定部16の判定結果に応じて、セレクタ17が拡張命令制御部18に接続するカスタムプロセッサコア10を選択してパケットデータ処理を行っているため、拡張命令制御部18の数はカスタムプロセッサコア10の数よりも少なくて良い。拡張命令制御部18の回路規模は比較的大規模であることと、上記拡張命令制御部18の数はカスタムプロセッサコア10の数よりも少なくて良いことから、多数のカスタムプロセッサ10を用いてもパケットデータ処理装置の回路規模が極めて大きくなることはない。すなわち、ヘッダ処理すべきパケットデータのプロトコルに対し、拡張命令が必要なカスタムプロセッサの個数の最大値だけ拡張命令制御部18を実装すれば良いため、従来に比べてパケットデータ処理装置の回路規模を大幅に削減することができる。
【0032】
なお、本実施形態では、5個のカスタムプロセッサコア10a〜10eおよび3個の拡張命令制御部18a〜18cを用いた例について説明したが、それぞれ数は特に限定されない。
【0033】
【発明の効果】
以上説明したように、本発明に係るパケットデータ処理装置およびパケットデータ処理方法によれば、拡張命令実行手段の数はプロセッサの数よりも少なくて良い。したがって、拡張命令実行手段の回路規模は比較的大規模であることと、上記拡張命令実行手段の数はプロセッサの数よりも少なくて良いことから、多数のプロセッサを用いてもパケットデータ処理装置の回路規模が極めて大きくなることはない。
【図面の簡単な説明】
【図1】ネットワーク機器に搭載された本発明の一実施形態に係るパケットデータ処理装置の構成を示すブロック図
【図2】本発明の一実施形態に係るパケットデータ処理装置が行うヘッダ処理手順を示すフローチャート
【図3】従来のパケットデータ処理装置の構成を示すブロック図
【符号の説明】
10a〜10e カスタムプロセッサコア
15 入力バッファ部
16 プロトコル判定部
17 セレクタ
18a〜18c 拡張命令制御部

Claims (8)

  1. パケットデータの解析を行う複数のプロセッサと、前記プロセッサから受け取った拡張命令を実行し、当該実行結果を前記プロセッサに返す拡張命令実行手段とを備え、前記パケットデータのヘッダ解析を並列処理するパケットデータ処理装置であって、
    パケットデータを蓄積する入力バッファ手段と、
    前記入力バッファ手段に入力されたパケットデータのプロトコルを判定するプロトコル判定手段と、
    前記プロトコル判定手段で判定されたプロトコルの種類に応じて、前記拡張命令実行手段に接続するプロセッサを選択するプロセッサ選択手段と、
    を備えたことを特徴とするパケットデータ処理装置。
  2. 前記プロセッサ選択手段は、
    各プロトコルに対応した、拡張命令の実行が必要なプロセッサを特定するためのテーブルを有し、
    特定したプロセッサを前記拡張命令実行手段に接続することを特徴とする請求項1記載のパケットデータ処理装置。
  3. 前記拡張命令実行手段の数は前記プロセッサの数よりも少ないことを特徴とする請求項1または2記載のパケットデータ処理装置。
  4. 前記複数のプロセッサは、データの挿入または削除を行うプロセッサを含むことを特徴とする請求項1、2または3記載のパケットデータ処理装置。
  5. ネットワーク機器に搭載されたことを特徴とする請求項1、2、3または4記載のパケットデータ処理装置。
  6. パケットデータの解析を行う複数のプロセッサが拡張命令を実行する際、前記プロセッサに接続された拡張命令実行手段は前記プロセッサから前記拡張命令を受け取って実行し、当該実行結果を前記プロセッサに返すことで、前記パケットデータのヘッダ解析を並列処理するパケットデータ処理方法において、
    入力されたパケットデータのプロトコルを判定するプロトコル判定ステップと、
    前記プロトコル判定ステップで判定されたプロトコルの種類に応じて、前記拡張命令実行手段に接続するプロセッサを選択するプロセッサ選択ステップと、
    を有することを特徴とするパケットデータ処理方法。
  7. 前記プロセッサ選択ステップは、
    各プロトコルに対応した、拡張命令の実行が必要なプロセッサを特定するためのテーブルを参照し、特定したプロセッサを前記拡張命令実行手段に接続することを特徴とする請求項6記載のパケットデータ処理方法。
  8. 前記拡張命令実行手段の数は前記プロセッサの数よりも少ないことを特徴とする請求項6または7記載のパケットデータ処理方法。
JP2002190686A 2002-06-28 2002-06-28 パケットデータ処理装置およびパケットデータ処理方法 Pending JP2004040196A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002190686A JP2004040196A (ja) 2002-06-28 2002-06-28 パケットデータ処理装置およびパケットデータ処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002190686A JP2004040196A (ja) 2002-06-28 2002-06-28 パケットデータ処理装置およびパケットデータ処理方法

Publications (1)

Publication Number Publication Date
JP2004040196A true JP2004040196A (ja) 2004-02-05

Family

ID=31700543

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002190686A Pending JP2004040196A (ja) 2002-06-28 2002-06-28 パケットデータ処理装置およびパケットデータ処理方法

Country Status (1)

Country Link
JP (1) JP2004040196A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5925287B1 (ja) * 2014-12-26 2016-05-25 株式会社Pfu 情報処理装置、方法およびプログラム
EP2654261A3 (en) * 2012-04-17 2017-07-12 Cesnet, Zájmové Sdruzení Právnickych Osob Connection for the fast analysis of packet headers transferred via data bus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2654261A3 (en) * 2012-04-17 2017-07-12 Cesnet, Zájmové Sdruzení Právnickych Osob Connection for the fast analysis of packet headers transferred via data bus
JP5925287B1 (ja) * 2014-12-26 2016-05-25 株式会社Pfu 情報処理装置、方法およびプログラム

Similar Documents

Publication Publication Date Title
US10015090B2 (en) Packet steering
US7181742B2 (en) Allocation of packets and threads
US9647940B2 (en) Processing packets by a network device
US6721800B1 (en) System using weighted next hop option in routing table to include probability of routing a packet for providing equal cost multipath forwarding packets
EP2337305B1 (en) Header processing engine
US8555374B2 (en) High performance packet processing using a general purpose processor
US9282064B2 (en) Method for processing a plurality of data and switching device for switching communication packets
EP3528439A1 (en) Service routing method and system
US20120159132A1 (en) Accelerating Data Packet Parsing
JP2009522868A (ja) 仮想ルータ機能を提供する方法
US20210263744A1 (en) Methods and systems for processing data in a programmable data processing pipeline that includes out-of-pipeline processing
US9379992B2 (en) Method and an apparatus for virtualization of a quality-of-service
JP2004289223A (ja) パケット通信装置
US9164771B2 (en) Method for thread reduction in a multi-thread packet processor
JPH09139751A (ja) 通信ネットワークにおけるトラフィック・フィルタリング用ブリッジ装置
US6973503B2 (en) Preventing at least in part control processors from being overloaded
CN108737239B (zh) 一种报文转发方法及装置
Insolvibile Kernel korner: Inside the linux packet filter
JP2004040196A (ja) パケットデータ処理装置およびパケットデータ処理方法
JP4209186B2 (ja) パケットの高速ルーティング及びスイッチングに対するメモリ要件を低減するように構成されたプロセッサ
JP5389193B2 (ja) パケット転送処理装置、方法及びプログラム
US20150063119A1 (en) Method and Apparatus for Content Processing Application Acceleration
JP5581995B2 (ja) メッセージ受信装置およびマイクロコントローラ
EP1351453A1 (en) Method and apparatus for packet reordering in a network processor
Mukerjee et al. Packet processing on the GPU