JP2004040196A - パケットデータ処理装置およびパケットデータ処理方法 - Google Patents
パケットデータ処理装置およびパケットデータ処理方法 Download PDFInfo
- 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
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
【解決手段】パケットデータの解析およびデータの挿入や削除を行う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】
【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 拡張命令制御部
【発明の属する技術分野】
本発明は、拡張命令を実行可能な複数のプロセッサを用いて、パケットデータのヘッダ解析を並列処理するパケットデータ処理装置およびパケットデータ処理方法に関する。
【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】
【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記載のパケットデータ処理装置。 - 前記拡張命令実行手段の数は前記プロセッサの数よりも少ないことを特徴とする請求項1または2記載のパケットデータ処理装置。
- 前記複数のプロセッサは、データの挿入または削除を行うプロセッサを含むことを特徴とする請求項1、2または3記載のパケットデータ処理装置。
- ネットワーク機器に搭載されたことを特徴とする請求項1、2、3または4記載のパケットデータ処理装置。
- パケットデータの解析を行う複数のプロセッサが拡張命令を実行する際、前記プロセッサに接続された拡張命令実行手段は前記プロセッサから前記拡張命令を受け取って実行し、当該実行結果を前記プロセッサに返すことで、前記パケットデータのヘッダ解析を並列処理するパケットデータ処理方法において、
入力されたパケットデータのプロトコルを判定するプロトコル判定ステップと、
前記プロトコル判定ステップで判定されたプロトコルの種類に応じて、前記拡張命令実行手段に接続するプロセッサを選択するプロセッサ選択ステップと、
を有することを特徴とするパケットデータ処理方法。 - 前記プロセッサ選択ステップは、
各プロトコルに対応した、拡張命令の実行が必要なプロセッサを特定するためのテーブルを参照し、特定したプロセッサを前記拡張命令実行手段に接続することを特徴とする請求項6記載のパケットデータ処理方法。 - 前記拡張命令実行手段の数は前記プロセッサの数よりも少ないことを特徴とする請求項6または7記載のパケットデータ処理方法。
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)
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 |
-
2002
- 2002-06-28 JP JP2002190686A patent/JP2004040196A/ja active Pending
Cited By (2)
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 |