(57)【要約】【課題】多数のプロセッサを用いても回路規模が極めて大きくなることのないパケットデータ処理装置およびパケットデータ処理方法を提供すること。【解決手段】パケットデータの解析およびデータの挿入や削除を行う５個のカスタムプロセッサコア１０ａ〜１０ｅと、カスタムプロセッサコアが拡張命令を実行する際に使用する３個の拡張命令制御部１８ａ〜１８ｃと、パケットデータを蓄積する入力バッファ部１５と、パケットデータのプロトコルを判定するプロトコル判定部１６と、プロトコルの種類に応じて拡張命令制御部に接続されるカスタムプロセッサコアを選択するセレクタ１７とを備え、入力バッファ部１５に入力されたパケットデータのプロトコル判定部１６による判定結果に応じて、拡張命令制御部１８に接続されるカスタムプロセッサコア１０を選択し、パケットデータのヘッダ解析を並列処理する。【選択図】　　図１
2004040196.tif 000002
【特許請求の範囲】
【請求項１】
パケットデータの解析を行う複数のプロセッサと、前記プロセッサから受け取った拡張命令を実行し、当該実行結果を前記プロセッサに返す拡張命令実行手段とを備え、前記パケットデータのヘッダ解析を並列処理するパケットデータ処理装置であって、
パケットデータを蓄積する入力バッファ手段と、
前記入力バッファ手段に入力されたパケットデータのプロトコルを判定するプロトコル判定手段と、
前記プロトコル判定手段で判定されたプロトコルの種類に応じて、前記拡張命令実行手段に接続するプロセッサを選択するプロセッサ選択手段と、
を備えたことを特徴とするパケットデータ処理装置。
【請求項２】
前記プロセッサ選択手段は、
各プロトコルに対応した、拡張命令の実行が必要なプロセッサを特定するためのテーブルを有し、
特定したプロセッサを前記拡張命令実行手段に接続することを特徴とする請求項１記載のパケットデータ処理装置。
【請求項３】
前記拡張命令実行手段の数は前記プロセッサの数よりも少ないことを特徴とする請求項１または２記載のパケットデータ処理装置。
【請求項４】
前記複数のプロセッサは、データの挿入または削除を行うプロセッサを含むことを特徴とする請求項１、２または３記載のパケットデータ処理装置。
【請求項５】
ネットワーク機器に搭載されたことを特徴とする請求項１、２、３または４記載のパケットデータ処理装置。
【請求項６】
パケットデータの解析を行う複数のプロセッサが拡張命令を実行する際、前記プロセッサに接続された拡張命令実行手段は前記プロセッサから前記拡張命令を受け取って実行し、当該実行結果を前記プロセッサに返すことで、前記パケットデータのヘッダ解析を並列処理するパケットデータ処理方法において、
入力されたパケットデータのプロトコルを判定するプロトコル判定ステップと、
前記プロトコル判定ステップで判定されたプロトコルの種類に応じて、前記拡張命令実行手段に接続するプロセッサを選択するプロセッサ選択ステップと、
を有することを特徴とするパケットデータ処理方法。
【請求項７】
前記プロセッサ選択ステップは、
各プロトコルに対応した、拡張命令の実行が必要なプロセッサを特定するためのテーブルを参照し、特定したプロセッサを前記拡張命令実行手段に接続することを特徴とする請求項６記載のパケットデータ処理方法。
【請求項８】
前記拡張命令実行手段の数は前記プロセッサの数よりも少ないことを特徴とする請求項６または７記載のパケットデータ処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、拡張命令を実行可能な複数のプロセッサを用いて、パケットデータのヘッダ解析を並列処理するパケットデータ処理装置およびパケットデータ処理方法に関する。
【０００２】
【従来の技術】
近年、ネットワーク利用者や接続ホスト数の急増に伴い、ネットワーク上のトラフィック量は増大傾向にある。このため、スイッチやルータなどのネットワーク機器において、パケットデータを高速に処理する必要性が高まっている。
【０００３】
従来より、ネットワーク機器に搭載され、拡張命令を実行可能な複数のカスタムプロセッサを用いてパケットデータのヘッダ処理を行うパケットデータ処理装置が知られている。図３は、従来のパケットデータ処理装置の構成を示すブロック図である。同図に示す従来のパケットデータ処理装置は、パケットデータの解析およびデータの挿入や削除を行うカスタムプロセッサコア１１０ａ〜１１０ｅと、パケットデータのヘッダ部分を蓄積する入力バッファ部１１５と、カスタムプロセッサコア１１０ａ〜１１０ｅにそれぞれ接続され、各カスタムプロセッサコア１１０ａ〜１１０ｅが拡張命令を実行する際に使用される拡張命令制御部１１８ａ〜１１８ｅとから構成される。
【０００４】
以下、当該パケットデータ処理装置の動作について説明する。このパケットデータ処理装置では、入力バッファ部１１５に蓄積されたパケットデータのヘッダ処理を行う際、負荷の軽い処理をカスタムプロセッサコア１１０で行い、多ビット演算処理等の負荷の重い処理を拡張命令制御部１１８で並列処理することで、ヘッダ処理の高速性を実現している。
【０００５】
図３には、５個のカスタムプロセッサを用いてヘッダ処理を行うパケットデータ処理装置が示されている。第１のカスタムプロセッサコア１１０ａはＭＡＣアドレス解析を行い、第２のカスタムプロセッサコア１１０ｂはＶＬＡＮ解析を行い、第３のカスタムプロセッサコア１１０ｃはフレームフォーマット解析を行い、第４のカスタムプロセッサコア１１０ｄはＩＰヘッダ解析を行い、第５のカスタムプロセッサコア１１０ｅはデータ削除処理やデータ挿入処理を行う。各カスタムプロセッサコア（以下、単に「カスタムプロセッサ」という。）は、負荷の重い処理を対応する拡張命令制御部１１８に実行させることで、パケットデータのヘッダ処理を高速に行うことができる。
【０００６】
【発明が解決しようとする課題】
しかしながら、ヘッダ処理の負荷はプロトコルによって大きく異なるが、カスタムプロセッサはどのようなプロトコルのパケットデータが来ても一定時間内に解析を終了させなければならないため、上記従来のパケットデータ処理装置は、各カスタムプロセッサ１１０に対応する拡張命令制御部１１８をそれぞれ有していなければならない。
【０００７】
各カスタムプロセッサ１１０に実装される拡張命令制御部１１８は、多ビット演算処理や複数領域の一括比較など、同様の処理を行う機能を有するため、カスタムプロセッサ毎にカスタマイズされない場合が多かった。また、ヘッダ処理の高速化のため、数十個のカスタムプロセッサ１１０を使用することが必須になってきており、開発工数の観点からも同じ拡張命令制御部をそれぞれのカスタムプロセッサに実装する場合が多かった。しかも、拡張命令制御部１１８は、多ビット演算処理や複数領域の一括比較等の機能を実現するため、カスタムプロセッサコア１１０に比べて大規模な回路構成を有していた。
【０００８】
このように、従来のパケットデータ処理装置では、多数のカスタムプロセッサコア１１０を用いると、カスタムプロセッサ１１０と同数だけ実装される拡張命令制御部１１８によって、回路規模が極めて大きくなってしまうという問題点があった。
【０００９】
本発明は、上記従来の問題点に鑑みてなされたものであって、多数のプロセッサを用いても回路規模が極めて大きくなることのないパケットデータ処理装置およびパケットデータ処理方法を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、本発明に係るパケットデータ処理装置は、パケットデータの解析を行う複数のプロセッサと、前記プロセッサから受け取った拡張命令を実行し、当該実行結果を前記プロセッサに返す拡張命令実行手段とを備え、前記パケットデータのヘッダ解析を並列処理するパケットデータ処理装置であって、パケットデータを蓄積する入力バッファ手段と、前記入力バッファ手段に入力されたパケットデータのプロトコルを判定するプロトコル判定手段と、前記プロトコル判定手段で判定されたプロトコルの種類に応じて、前記拡張命令実行手段に接続するプロセッサを選択するプロセッサ選択手段と、を備えている。
【００１１】
したがって、拡張命令実行手段の数はプロセッサの数よりも少なくて良い。拡張命令実行手段の回路規模は比較的大規模であることと、上記拡張命令実行手段の数はプロセッサの数よりも少なくて良いことから、多数のプロセッサを用いてもパケットデータ処理装置の回路規模が極めて大きくなることはない。
【００１２】
また、本発明に係るパケットデータ処理装置は、前記プロセッサ選択手段は、各プロトコルに対応した、拡張命令の実行が必要なプロセッサを特定するためのテーブルを有し、特定したプロセッサを前記拡張命令実行手段に接続する。
【００１３】
また、本発明に係るパケットデータ処理装置は、前記拡張命令実行手段の数は前記プロセッサの数よりも少ない
【００１４】
また、本発明に係るパケットデータ処理装置は、前記複数のプロセッサは、データの挿入または削除を行うプロセッサを含む。
【００１５】
また、本発明に係るパケットデータ処理装置は、ネットワーク機器に搭載されている。
【００１６】
また、本発明に係るパケットデータ処理方法は、パケットデータの解析を行う複数のプロセッサが拡張命令を実行する際、前記プロセッサに接続された拡張命令実行手段は前記プロセッサから前記拡張命令を受け取って実行し、当該実行結果を前記プロセッサに返すことで、前記パケットデータのヘッダ解析を並列処理するパケットデータ処理方法において、入力されたパケットデータのプロトコルを判定するプロトコル判定ステップと、前記プロトコル判定ステップで判定されたプロトコルの種類に応じて、前記拡張命令実行手段に接続するプロセッサを選択するプロセッサ選択ステップと、を有する。
【００１７】
また、本発明に係るパケットデータ処理方法は、前記プロセッサ選択ステップは、各プロトコルに対応した、拡張命令の実行が必要なプロセッサを特定するためのテーブルを参照し、特定したプロセッサを前記拡張命令実行手段に接続する。
【００１８】
さらに、本発明に係るパケットデータ処理方法は、前記拡張命令実行手段の数は前記プロセッサの数よりも少ない。
【００１９】
【発明の実施の形態】
本発明に係るパケットデータ処理装置およびパケットデータ処理方法の実施の形態について、図面を参照しながら説明する。
【００２０】
図１は、ネットワーク機器に搭載された本発明の一実施形態に係るパケットデータ処理装置の構成を示すブロック図である。同図に示すように、本実施形態のパケットデータ処理装置は、パケットデータの解析およびデータの挿入や削除を行う５個のカスタムプロセッサコア１０ａ〜１０ｅと、カスタムプロセッサコア１０ａ〜１０ｅがそれぞれ拡張命令を実行する際に使用される３個の拡張命令制御部１８ａ〜１８ｃと、パケットデータを蓄積する入力バッファ部１５と、パケットデータのプロトコルを判定するプロトコル判定部１６と、プロトコルの種類に応じて拡張命令制御部１８ａ〜１８ｃに接続されるカスタムプロセッサコア１０ａ〜１０ｅを選択するセレクタ１７とを備えて構成されている。
【００２１】
なお、各カスタムプロセッサコア１０ａ〜１０ｅは特許請求の範囲のプロセッサに該当し、各拡張命令制御部１８ａ〜１８ｃは拡張命令実行手段に該当し、入力バッファ部１５は入力バッファ手段に該当し、プロトコル判定部１６はプロトコル判定手段に該当し、セレクタ１７はプロセッサ選択手段に該当する。
【００２２】
本実施形態のパケットデータ処理装置は、入力バッファ部１５に蓄積されたパケットデータのヘッダ処理を行う際、負荷の軽い処理はカスタムプロセッサコア１０ａ〜１０ｅで行い、多ビット演算処理や複数領域の一括比較等の負荷の重い処理は拡張命令制御部１８ａ〜１８ｃで並列処理する。なお、本実施形態では、第１のカスタムプロセッサコア１０ａ（カスタムプロセッサ１）はＭＡＣアドレス解析を行い、第２のカスタムプロセッサコア１１（カスタムプロセッサ２）はＶＬＡＮ解析を行い、第３のカスタムプロセッサコア１２（カスタムプロセッサ３）はフレームフォーマット解析を行い、第４のカスタムプロセッサコア１３（カスタムプロセッサ４）はＩＰヘッダ解析を行い、第５のカスタムプロセッサコア１０ｅ（カスタムプロセッサ５）はデータ削除処理やデータ挿入処理を行う。
【００２３】
また、セレクタ１７は、プロトコル判定部１６の判定結果に基づいて、「表１」に示されたテーブルを参照して、拡張命令制御部１８に接続されるカスタムプロセッサコア１０を選択する。なお、表１に示したテーブルでは、プロトコルの種類に対応した、拡張命令の実行が必要なカスタムプロセッサが特定されている。
【００２４】
【表１】
2004040196.tif 000003
【００２５】
例えば、プロトコル判定部１６によるプロトコル判定の結果、到着したパケットデータのプロトコルが通常処理に対応の「プロトコルＡ」の場合、フレームフォーマット解析を行うカスタムプロセッサ３およびデータ削除／挿入処理を行うカスタムプロセッサ５の処理負荷が大きいため、セレクタ１７は、カスタムプロセッサ３およびカスタムプロセッサ５に拡張命令制御部１８を接続する。
【００２６】
また、プロトコル判定部１６によるプロトコル判定の結果、到着したパケットデータのプロトコルがＩｐｖ６対応の「プロトコルＢ」の場合、フレームフォーマット解析を行うカスタムプロセッサ３、ＩＰヘッダ解析を行うカスタムプロセッサ４、およびデータ削除／挿入処理を行うカスタムプロセッサ５の処理負荷が大きいため、セレクタ１７は、カスタムプロセッサ３、カスタムプロセッサ４およびカスタムプロセッサ５に拡張命令制御部１８を接続する。
【００２７】
さらに、プロトコル判定部１６によるプロトコル判定の結果、到着したパケットデータのプロトコルがスイッチング処理に対応の「プロトコルＣ」の場合、ＭＡＣアドレス解析を行うカスタムプロセッサ１およびＶＬＡＮ解析を行うカスタムプロセッサ２の処理負荷が大きいため、セレクタ１７は、カスタムプロセッサ１およびカスタムプロセッサ２に拡張命令制御部１８を接続する。
【００２８】
以下、上記構成要素を備えた本実施形態のパケットデータ処理装置の動作（パケットデータ処理方法）について説明する。図２は、本発明の一実施形態に係るパケットデータ処理装置が行うヘッダ処理手順を示すフローチャートである。
【００２９】
同図に示すように、まず、入力バッファ部１５はパケットデータが到着するのを待つ（ステップＳ１）。パケットデータが到着すると、プロトコル判定部１６は、入力バッファ部１５に蓄積されていくパケットデータを判定し、その判定結果をセレクタ１７に転送する（ステップＳ２）。セレクタ１７は、プロトコル判定部１６の判定結果に基づいて、「表１」に示されたテーブルを参照して（ステップＳ３）、拡張命令制御部１８に接続されるカスタムプロセッサコア１０を選択する（ステップＳ４）。
【００３０】
次に、拡張命令制御部１８に接続されたカスタムプロセッサコア１０は、拡張命令制御部１８を利用し、必要に応じて拡張命令を実行しながらヘッダ解析を行う（ステップＳ５）。一方、拡張命令制御部１８に接続されなかったカスタムプロセッサコア１０は、通常命令のみでヘッダ解析を行う（ステップＳ５）。こうして、パケットデータのヘッダ処理を終了する。
【００３１】
以上説明したように、本実施形態のパケットデータ処理装置およびパケットデータ処理方法では、入力バッファ部１５に入力されたパケットデータのプロトコル判定部１６の判定結果に応じて、セレクタ１７が拡張命令制御部１８に接続するカスタムプロセッサコア１０を選択してパケットデータ処理を行っているため、拡張命令制御部１８の数はカスタムプロセッサコア１０の数よりも少なくて良い。拡張命令制御部１８の回路規模は比較的大規模であることと、上記拡張命令制御部１８の数はカスタムプロセッサコア１０の数よりも少なくて良いことから、多数のカスタムプロセッサ１０を用いてもパケットデータ処理装置の回路規模が極めて大きくなることはない。すなわち、ヘッダ処理すべきパケットデータのプロトコルに対し、拡張命令が必要なカスタムプロセッサの個数の最大値だけ拡張命令制御部１８を実装すれば良いため、従来に比べてパケットデータ処理装置の回路規模を大幅に削減することができる。
【００３２】
なお、本実施形態では、５個のカスタムプロセッサコア１０ａ〜１０ｅおよび３個の拡張命令制御部１８ａ〜１８ｃを用いた例について説明したが、それぞれ数は特に限定されない。
【００３３】
【発明の効果】
以上説明したように、本発明に係るパケットデータ処理装置およびパケットデータ処理方法によれば、拡張命令実行手段の数はプロセッサの数よりも少なくて良い。したがって、拡張命令実行手段の回路規模は比較的大規模であることと、上記拡張命令実行手段の数はプロセッサの数よりも少なくて良いことから、多数のプロセッサを用いてもパケットデータ処理装置の回路規模が極めて大きくなることはない。
【図面の簡単な説明】
【図１】ネットワーク機器に搭載された本発明の一実施形態に係るパケットデータ処理装置の構成を示すブロック図
【図２】本発明の一実施形態に係るパケットデータ処理装置が行うヘッダ処理手順を示すフローチャート
【図３】従来のパケットデータ処理装置の構成を示すブロック図
【符号の説明】
１０ａ〜１０ｅ　カスタムプロセッサコア
１５　入力バッファ部
１６　プロトコル判定部
１７　セレクタ
１８ａ〜１８ｃ　拡張命令制御部
【図１】
2004040196.tif 000004
【図２】
2004040196.tif 000005
【図３】
2004040196.tif 000006