(57)【要約】【課題】新たな送信パケットヘッダを生成するために必要な情報の抽出処理と、送信パケットヘッダの生成処理との各々に高性能なＣＰＵを特に用意する必要がないパケット処理方法及び装置を提供する。【解決手段】パケット解析エレメント１００ａ、１００ｂ〜１００Ｎは、受信パケットの種類及び／又はあらかじめ割り当てたパケット解析内容に応じた数でパイプライン構成され、固定周期でヘッダ相当データ部分と比較情報を比較して受信パケットの種類を判定するとともに、検索テーブル４０を検索して必要に応じてヘッダ相当データを更新して次段に出力するとともに、当該解析結果を次段のエレメント１００が使用する場合に次段のエレメント１００に引き継ぐ。【選択図】　　　　図１
2004064648.tif 000002
【特許請求の範囲】
【請求項１】
受信パケットのヘッダを送信パケットのヘッダに変換するための検索データを検索テーブルに記憶する検索データ記憶ステップと、
前記受信パケットの種類を判定するための比較情報を記憶する比較情報記憶ステップと、
前記受信パケットのデータ区切りを検出し、ヘッダ相当データ部分とペイロード相当データ部分を分離する受信パケット分離ステップと、
前記受信パケットの種類及び／又はあらかじめ割り当てたパケット解析内容に応じた数でパイプライン構成され、固定周期で前記パケット分離ステップにより分離された前記ヘッダ相当データ部分と前記比較情報記憶ステップにより記憶されている比較情報を比較して前記受信パケットの種類を判定するとともに、前記検索テーブルを検索して必要に応じて前記ヘッダ相当データを更新して次段に出力するとともに、当該解析結果を次段が使用する場合に次段に引き継ぐ１つ以上のパケット解析ステップと、
前記１つ以上のパケット解析ステップの最終段からのヘッダ相当データと前記パケット分離ステップにより分離された前記ペイロード相当データ部分をシーケンシャルに結合して送信パケットとして出力する更新パケット送信ステップとを、
備えたパケット処理方法。
【請求項２】
受信パケットのヘッダを送信パケットのヘッダに変換するための検索データを記憶する検索テーブルと、
前記受信パケットの種類を判定するための比較情報を記憶する比較情報記憶部と、
前記受信パケットのデータ区切りを検出し、ヘッダ相当データ部分とペイロード相当データ部分を分離する受信パケット分離部と、
前記受信パケットの種類及び／又はあらかじめ割り当てたパケット解析内容に応じた数でパイプライン構成され、固定周期で前記パケット分離ステップにより分離された前記ヘッダ相当データ部分と前記比較情報記憶ステップにより記憶されている比較情報を比較して前記受信パケットの種類を判定するとともに、前記検索テーブルを検索して必要に応じて前記ヘッダ相当データを更新して次段に出力するとともに、当該解析結果を次段が使用する場合に次段に引き継ぐ１つ以上のパケット解析エレメントと、
前記１つ以上のパケット解析エレメントの最終段からのヘッダ相当データと前記パケット分離部により分離された前記ペイロード相当データ部分をシーケンシャルに結合して送信パケットとして出力する更新パケット送信部とを、
備えたパケット処理装置。
【請求項３】
前記パケット解析エレメントの各々は、
前記受信パケット分離部から送出されたヘッダ相当データ部分を格納して格納完了後にパケット解析開始タイミング信号を出力するヘッダデータ記憶回路と、
当該パケット解析エレメントが実行するパケット解析プログラムを記憶するメモリと、
前記ヘッダデータ記憶回路から出力されたパケット解析開始タイミング信号をトリガとして前記メモリに記憶されたパケット解析プログラムの実行を開始するＣＰＵ及び特殊演算器とを備え、
前記固定周期の後に前記パケット解析プログラムの実行を完了してパケット解析完了タイミング信号を次段のエレメント又は更新パケット送信部に出力することを特徴とする請求項２に記載のパケット処理装置。
【請求項４】
前記パケット解析エレメントの各々はさらに、
前記パケット解析プログラムに応じてヘッダデータ記憶回路から異なる情報を抽出して記憶するため、及び前記比較情報と前記プログラム実行中に生成した一時的なデータを記憶するためのヘッダ編集記憶回路と、
前記パケット解析プログラムを実行したパケット解析結果を記憶するヘッダ解析結果記憶回路とを備え、
前記パケット解析完了タイミング信号に同期して前記ヘッダ解析結果記憶回路で記憶したデータを後段のパケット解析エレメントのヘッダ解析結果記憶回路へ出力することを特徴とする請求項２に記載のパケット処理装置。
【請求項５】
前記ヘッダ解析結果記憶回路は、
現ヘッダの解析をしている間に次のパケットを受信して前記現ヘッダの解析結果に次ヘッダの解析結果を上書きしないように２面で構成され、各面を前記パケット解析完了タイミング信号毎に切り替えて交互に記憶することを特徴とする請求項４に記載のパケット処理装置。
【請求項６】
前記特殊演算器は、
前記パケット解析プログラムに含まれる特殊演算命令に基づいて、直接、前記ヘッダデータ記憶回路と、前記ヘッダ解析結果記憶回路と、前記ヘッダ編集記憶回路と比較情報記憶回路のいずれかからデータをあらかじめ決めたビット幅単位に読み出し、読み出したデータに対してパケット解析のための各種論理演算を行うことを特徴とする請求項３から５のいずれか１つに記載のパケット処理装置。
【請求項７】
前記特殊演算器はさらに、前記パケット解析プログラムに含まれる即値の論理演算を行うことを特徴とする請求項３から６のいずれか１つに記載のパケット処理装置。
【請求項８】
前記特殊演算命令は、
前記ヘッダデータ記憶回路と、前記ヘッダ解析結果記憶回路と、前記ヘッダ編集記憶回路と前記比較情報記憶回路のいずれかのデータを直接リード、ライトするためのアクセス制御信号と、命令実行時に必要な各種イネーブル信号を含むことを特徴とする請求項６に記載のパケット処理装置。
【請求項９】
前記ヘッダデータ記憶回路は、パケット受信中に書き込まれる面と、前記ＣＰＵ及び特殊演算器により解析されている面の２面構成で各パケットの前記ヘッダ相当データを交互に格納するヘッダレジスタを備えたことを特徴とする請求項３から７のいずれか１つに記載のパケット処理装置。
【請求項１０】
前記パケット分離部により分離された複数の受信パケットの各ペイロード相当データ部分を、前記最終段のエレメントの処理が終了するまで収容するペイロード収容部をさらに備え、前記ペイロード収容部は、前記複数のパケットのペイロード相当データを１つのペイロードデータ蓄積用メモリに格納してポインタにより管理することを特徴とする請求項２から９のいずれか１つに記載のパケット処理装置。
【請求項１１】
前記検索テーブルを検索するために前記１つ以上のパケット解析エレメントが出力した検索キーを選択して前記検索テーブルに出力するとともに、前記検索キーに基づいて前記検索テーブルから出力された検索結果を前記検索キーを出力した前記パケット解析エレメントに出力する検索データセレクタをさらに有することを特徴とする請求項２から１０のいずれか１つに記載のパケット処理装置。
【請求項１２】
前記検索データセレクタは、
前記検索テーブルに対する各エレメントの検索時間の違いに対応するためのキューを具備し、前記検索テーブルから出力された検索結果データを前記キューに蓄積し、出力先となるパケット解析エレメントからの指示により出力することを特徴とする請求項１０に記載のパケット処理装置。
【請求項１３】
前記更新パケット送信部は、
前記最終段のパケット解析エレメントから送信指示が出力される場合に、ヘッダデータへの書換・挿入・削除指示に従ってヘッダ相当データの更新を行った上でペイロード収容部から続くペイロード相当データと結合してパケットとして送信し、
前記最終段のパケット解析エレメントから破棄指示が出力される場合に、ペイロード収容部へのペイロード読み出し制御信号を経由して破棄指示されたペイロード相当データと結合する予定であった読み出すべきポインタではなく、次に読み出すべきポインタを選択して次の読み出し指示まで保持することを特徴とする請求項２から１２のいずれか１つに記載のパケット処理装置。
【請求項１４】
初段のエレメントにおいて前記ヘッダデータ記憶回路に記憶されたヘッダ相当データと、前記ヘッダ編集記憶回路に記憶された一時的なデータと、前記ヘッダ解析結果記憶回路に記憶されたパケット解析結果の３系統のデータに対してパケット毎に同じシーケンシャルな番号を付与して次段のエレメントに転送し、最終段のエレメントにおいて前記シーケンシャルな番号により同じパケットの前記３系統のデータを整合することを特徴とする請求項２から１２のいずれか１つに記載のパケット処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、受信パケットに搭載されたヘッダに応じて新たに生成したヘッダを送信パケットに搭載するパケット処理方法及び装置に関し、特に複数のプロトコルに対応したパケットのヘッダ解析を高速に処理するネットワークのＬＡＮスイッチに使用して好適なパケット処理方法及び装置に関する。
【０００２】
【従来の技術】
デジタル通信の分野においては、情報を受け渡しの際にパケット通信が広く用いられている。パケットの先頭には、送信先に関する情報や情報の種類などを示すヘッダを搭載しており、パケット（プロトコル）の種類毎に異なるヘッダを有する。
【０００３】
近来広く用いられているパケットの例を図１４（ａ）〜（ｈ）に示す。パケットは種類別に、
（ａ）ＲＦＣ１９４記載のＤＩＸパケット、
（ｂ）ＩＥＥＥ８０２．３記載のＲＡＷパケット、
（ｃ）ＩＥＥＥ８０２．２記載のＬＬＣ情報４０５を搭載したＬＬＣパケット及び
（ｄ）ＬＬＣ＋ＳＮＡＰパケット
と上述の４種のパケットにＩＥＥＥ８０２．１Ｑ記載のＶＬＡＮ情報４０７を搭載した
（ｅ）ＤＩＸ＋ＶＬＡＮパケット、
（ｆ）ＲＡＷ＋ＶＬＡＮパケット、
（ｇ）ＬＬＣ＋ＶＬＡＮパケット、
（ｈ）ＬＬＣ＋ＳＮＡＰ＋ＶＬＡＮパケット
の合計８種類があり、パケット処理装置にはこれら８種のパケットの正確、かつ速やかな処理が求められている。
【０００４】
各々のパケットのＬａｙｅｒ２ヘッダ（以下、Ｌ２ヘッダ）はＭＡＣ−ＤＡ情報（　送信先ＭＡＣアドレス）４０１、ＭＡＣ−ＳＡ情報（送信元ＭＡＣアドレス）４０２、Ｔｙｐｅ情報４０３、Ｌｅｎｇｔｈ情報４０４、ＬＬＣ情報４０５、ＳＮＡＰ情報４０６、ＶＬＡＮ情報４０７が搭載されており、Ｌ２ヘッダは各々の情報の組み合わせにより構成されているため、パケットの種類毎にＬ２ヘッダの長さが異なる。なお図１４では、これらの情報を単に「ＭＡＣ−ＤＡ」、「Ｔｙｐｅ」などと簡略に表示している。
【０００５】
パケットにはＬ２ヘッダに続きペイロード４０８が搭載されていて、ＩＰｖ４パケットの場合、図１５に示すように先頭から順に、Ｖｅｒｓｉｏｎ情報７０１、ヘッダ長情報７０２、ＴＯＳ情報７０３、トータル長情報７０４、識別番号情報７０５、フラグメント情報７０６、ＴＴＬ情報７０７、プロトコル番号情報７０８、ヘッダチェックサム情報７０９、送信元ＩＰアドレス情報７１０、送信先ＩＰアドレス情報７１１、オプション情報７１２からなるＬａｙｅｒ３ヘッダ（以下、Ｌ３　ヘッダ）が搭載されている。
【０００６】
ＩＰｖ４ルーティング機能を持つパケット処理装置の場合、上述のＭＡＣ−ＤＡ情報４０１、ＭＡＣ−ＳＡ情報４０２、ＴＴＬ情報７０７、ヘッダチェックサム情報７０９を書き換えた送信パケットヘッダを新たに生成する必要があり、特に新たに生成するＭＡＣ−ＤＡ情報４０１は、送信先ＩＰアドレス情報７１１に応じた値にする必要がある。
【０００７】
従来、この種の装置として、図１３に示される特開平１１−３１７７８３号公報に記載のパケット処理装置のような構成のものが使用されていた。同図において、レジスタ３５０はパケットの下位レイヤヘッダと上位レイヤヘッダとを含むパケットの先頭部分の情報を記憶するメモリであり、ＣＰＵ３５４にてレジスタ３５０に記憶された受信パケットヘッダを解析し、受信パケットヘッダに含まれる送信パケットヘッダ生成に必要な情報を抽出してレジスタ３５１に格納し、ＣＰＵ３５５にてテーブル３５７を参照してレジスタ３５１に格納された情報に対応する値をレジスタ３５２に格納し、レジスタ３５２に格納された値に応じてＣＰＵ３５６にて新たに送信パケットヘッダを生成し、レジスタ３５３に格納する構成となっている。このレジスタ３５０、３５１、３５２間でデータを受け渡すために、書き込み可能か、読み出し可能かのフラグ用レジスタを確認しながら、各プログラムの開始を判定していた。
【０００８】
【発明が解決しようとする課題】
上述したように、Ｌ２ヘッダ及び上位レイヤヘッダの長さは、各パケットの種類により異なるので、従来のパケット処理装置が、受信パケットから送信先ＩＰアドレス情報７１１を抽出してレジスタ３５１に格納するためには、ＣＰＵ３５４は、
・Ｌ２ヘッダを読み込む処理ステップと、
・読み込んだＬ２ヘッダの長さを求める処理ステップと、
・求められたＬ２ヘッダの長さに応じて送信先ＩＰアドレス情報７１１の位置を検知する処理ステップと、
・検知した位置から送信先ＩＰアドレス情報７１１を読み込む処理ステップと、
・読み込んだ送信先ＩＰアドレス情報７１１をレジスタ３５１に格納する処理ステップとを、
実行する必要がある。また、Ｌ２ヘッダを読み込む処理ステップでは、ＣＰＵ３５４が１回で読み込みできるデータの量にＬ２ヘッダを分割し、数回に分けて繰り返し読み込む必要がある。
【０００９】
すなわち、受信パケット上の送信先ＩＰアドレス情報７１１の位置を検知するまでにかかる時間は、ＣＰＵ３５４が１回あたりに読み込み可能なデータ量と単位時間あたりに読み込みできる回数とに依存し、高いスループットのパケット処理装置ほど高性能なＣＰＵ３５４を必要とするので、製品のコスト高を招いてしまう。同様に、レジスタ３５３への送信パケットヘッダの書き込みにかかる時間は、ＣＰＵ３５６が１度に書き込みできるデータ量と、単位時間あたりに書き込みできる回数とに依存し、高いスループットのパケット処理装置ほど高性能なＣＰＵ３５６を必要とするので、やはり製品のコスト高を招いてしまう（第１の課題）。
【００１０】
また、各ＣＰＵ３５４、３５５、３５６間は、固定周期、かつレジスタ３５０、３５１、３５２、３５３毎に搭載したフラグレジスタ情報の使用可否を通知及び検出していた。このため、レジスタ３５０、３５１、３５２、３５３のリードと判定を行い、パケット解析以外の余分な処理ステップを必要とし、パケット解析を含むプログラムサイズが増大、つまりプログラム蓄積用メモリも増大して製品のコスト高を招いてしまう（第２の課題）。
【００１１】
また従来装置では、受信用レジスタ３５０と、テーブル３５７と接続できるレジスタ３５１、３５２と、送信時に使用するレジスタ３５３が固定されているため、例えば処理負荷によってテーブル３５７と接続できるレジスタ３５１、３５２を変更したい場合にも変更ができない。このため、前述のＩＰｖ４ヘッダばかりでなく、ＩＰｖ６ヘッダ、ＭＰＬＳに代表される様々な種類のヘッダを搭載したパケットを処理できるパケット処理装置が求められていて、新たなプロトコルが日々定義されているので、修正変更や将来の機能変更が容易で、設計変更の柔軟性に富むパケット処理装置が望まれる（第３の課題）。
【００１２】
よって本発明は、上述した第１の課題に鑑み、新たな送信パケットヘッダを生成するために必要な情報の抽出処理と、送信パケットヘッダの生成処理との各々に高性能なＣＰＵを特に用意する必要がないパケット処理装置を提供することを目的とする。
本発明はまた、上述した第２の課題に鑑み、受信パケット解析のみに必要なメモリサイズのパケット処理装置を提供することを目的とする。
本発明はまた、上述した第３の課題に鑑み、ＩＰｖ４ヘッダばかりでなく、ＩＰｖ６ヘッダやＭＰＬＳに代表される様々な種類のヘッダを搭載した受信パケットに対して修正変更や将来の機能変更が容易で、設計変更の柔軟性に富むパケット処理装置を提供することを目的とする。
【００１３】
【課題を解決するための手段】
請求項１、２に記載の発明は、
受信パケットのヘッダを送信パケットのヘッダに変換するための検索データを検索テーブルに記憶し、
前記受信パケットの種類を判定するための比較情報を記憶し、
前記受信パケットのデータ区切りを検出し、ヘッダ相当データ部分とペイロード相当データ部分を分離し、
前記受信パケットの種類及び／又はあらかじめ割り当てたパケット解析内容に応じた数のパイプライン構成により、固定周期で前記パケット分離ステップにより分離された前記ヘッダ相当データ部分と前記比較情報記憶ステップにより記憶されている比較情報を比較して前記受信パケットの種類を判定するとともに、前記検索テーブルを検索して必要に応じて前記ヘッダ相当データを更新して次段に出力するとともに、当該解析結果を次段が使用する場合に次段に引き継ぎ、
前記１つ以上のパケット解析ステップの最終段からのヘッダ相当データと前記パケット分離ステップにより分離された前記ペイロード相当データ部分をシーケンシャルに結合して送信パケットとして出力する構成とした。
請求項１、２に記載の発明によれば、受信パケットヘッダ内の各フィールドの識別や、検索キー情報の抽出や、検索結果受信後の送信パケットヘッダ生成などの処理を受信パケットの種類に応じて何個のパケット解析エレメントで処理するか、また、それぞれのパケット解析エレメントにどのような処理をさせるのかを選択できるため、高性能なＣＰＵを特に用意する必要がない。
【００１４】
請求項３に記載の発明のパケット処理装置は、前記パケット解析エレメントの各々が、
前記受信パケット分離部から送出されたヘッダ相当データ部分を格納して格納完了後にパケット解析開始タイミング信号を出力するヘッダデータ記憶回路と、
当該パケット解析エレメントが実行するパケット解析プログラムを記憶するメモリと、
前記ヘッダデータ記憶回路から出力されたパケット解析開始タイミング信号をトリガとして前記メモリに記憶されたパケット解析プログラムの実行を開始するＣＰＵ及び特殊演算器とを備え、
前記固定周期の後に前記パケット解析プログラムの実行を完了してパケット解析完了タイミング信号を次段のエレメント又は更新パケット送信部に出力する構成とした。
請求項３に記載の構成によれば、パイプライン構成のパケット解析エレメント間の情報の引継ぎもあらかじめ決めたタイミング信号で行うことから特別なフラグ（レジスタ）及び処理を必要としないため、メモリサイズをすべて個別のパケット解析処理に割り当てることができる。
【００１５】
請求項４に記載の発明は、前記パケット解析エレメントの各々がさらに、
前記パケット解析プログラムに応じてヘッダデータ記憶回路から異なる情報を抽出して記憶するため、及び前記比較情報と前記プログラム実行中に生成した一時的なデータを記憶するためのヘッダ編集記憶回路と、
前記パケット解析プログラムを実行したパケット解析結果を記憶するヘッダ解析結果記憶回路とを備え、
前記パケット解析完了タイミング信号に同期して前記ヘッダ解析結果記憶回路で記憶したデータを後段のパケット解析エレメントのヘッダ解析結果記憶回路へ出力する構成とした。
請求項４に記載の構成によれば、１つ以上のパケット解析エレメントにて構成した場合に、前段のパケット解析エレメントで抽出、解析した情報を重複して処理することがないので、プログラムの負荷分散が柔軟に対応でき、また、プログラム蓄積用メモリサイズをすべて個別のパケット解析処理に割り当てることができる。
【００１６】
請求項５に記載の発明は、前記ヘッダ解析結果記憶回路が、
現ヘッダの解析をしている間に次のパケットを受信して前記現ヘッダの解析結果に次ヘッダの解析結果を上書きしないように２面で構成され、各面を前記パケット解析完了タイミング信号毎に切り替えて交互に記憶する構成とした。
請求項５に記載の構成によれば、次パケットの受信中でも、現パケットの解析結果情報を保持できるため、スループットが低下することなく、パケット解析結果情報を後段のパケット解析エレメントへ伝達できる。
【００１７】
請求項６に記載の発明は、前記特殊演算器が、
前記パケット解析プログラムに含まれる特殊演算命令に基づいて、直接、前記ヘッダデータ記憶回路と、前記ヘッダ解析結果記憶回路と、前記ヘッダ編集記憶回路と比較情報記憶回路のいずれかからデータをあらかじめ決めたビット幅単位に読み出し、読み出したデータに対してパケット解析のための各種論理演算を行う構成とした。
請求項６に記載の構成によれば、特殊演算器がヘッダデータ記憶回路、ヘッダ解析結果記憶回路、ヘッダ編集記憶回路、比較情報記憶回路のデータを直接リード、ライトできることから、プログラムの変更つまり特殊演算命令の指示順序を変えることで、設計変更や機能追加を実現し、かつ高速なパケット処理を維持できる。
【００１８】
請求項７に記載の発明は、前記特殊演算器がさらに、前記パケット解析プログラムに含まれる即値の論理演算を行う構成とした。
請求項７に記載の構成によれば、設計変更や機能追加を実現することができる。
【００１９】
請求項８に記載の発明は、前記特殊演算命令が、前記ヘッダデータ記憶回路と、前記ヘッダ解析結果記憶回路と、前記ヘッダ編集記憶回路と前記比較情報記憶回路のいずれかのデータを直接リード、ライトするためのアクセス制御信号と、命令実行時に必要な各種イネーブル信号を含む構成とした。
請求項８に記載の構成によれば、特殊演算命令の実行に必要な情報をヘッダデータ記憶回路、ヘッダ解析結果記憶回路、ヘッダ編集記憶回路、比較情報記憶回路のデータを直接リード、ライトできるようにアドレスなどのアクセス制御信号を生成し、かつ命令実行時に必要な各種イネーブル信号を生成できる。
【００２０】
請求項９に記載の発明は、前記ヘッダデータ記憶回路が、
パケット受信中に書き込まれる面と、前記ＣＰＵ及び特殊演算器により解析されている面の２面構成で各パケットの前記ヘッダ相当データを交互に格納するヘッダレジスタを備えた構成とした。
請求項９に記載の構成によれば、現パケットの解析中でも、次パケットの受信を開始できるため、ワイヤースピードを維持しながら、パケット解析エレメント内ＣＰＵ及び特殊演算器へヘッダ相当データを伝達し、かつ後段のパケット解析エレメント内のヘッダデータ記憶回路へデータを引き継ぐことができる。
【００２１】
請求項１０に記載の発明は、前記パケット分離部により分離された複数の受信パケットの各ペイロード相当データ部分を、前記最終段のエレメントの処理が終了するまで収容するペイロード収容部をさらに備え、前記ペイロード収容部は、前記複数のパケットのペイロード相当データを１つのペイロードデータ蓄積用メモリに格納してポインタにより管理する構成とした。
請求項１０に記載の構成によれば、１つのメモリに対してパケット解析中のヘッダ相当データに対応する数分のポインタのみを管理しているため、複数の受信パケットの各ペイロードデータ収容用のメモリを必要とせずに低コストに装置を実現できる。
【００２２】
請求項１１に記載の発明は、前記検索テーブルを検索するために前記１つ以上のパケット解析エレメントが出力した検索キーを選択して前記検索テーブルに出力するとともに、前記検索キーに基づいて前記検索テーブルから出力された検索結果を前記検索キーを出力した前記パケット解析エレメントに出力する検索データセレクタをさらに有する構成とした。
請求項１１に記載の構成によれば、複数のパケット解析エレメントで構成した場合に、検索データセレクタが、いずれのパケット解析エレメントからの検索キーでも受信でき、またいずれのパケット解析エレメントへも検索結果を送信できるので、複数のパケット解析エレメントでも検索テーブルとアクセスができ、プログラム処理の柔軟性が高くなる。
【００２３】
請求項１２に記載の発明は、前記検索データセレクタが、
前記検索テーブルに対する各エレメントの検索時間の違いに対応するためのキューを具備し、前記検索テーブルから出力された検索結果データを前記キューに蓄積し、出力先となるパケット解析エレメントからの指示により出力する構成とした。
請求項１２に記載の構成によれば、検索データセレクタが検索テーブルからの検索結果データをＦＩＦＯで受信する場合に、検索テーブルの応答時間が変化してもパケット解析エレメントが必要なタイミングで検索結果データを受信できる。
【００２４】
請求項１３に記載の発明は、前記更新パケット送信部が、
前記最終段のパケット解析エレメントから送信指示が出力される場合に、ヘッダデータへの書換・挿入・削除指示に従ってヘッダ相当データの更新を行った上でペイロード収容部から続くペイロード相当データと結合してパケットとして送信し、
前記最終段のパケット解析エレメントから破棄指示が出力される場合に、ペイロード収容部へのペイロード読み出し制御信号を経由して破棄指示されたペイロード相当データと結合する予定であった読み出すべきポインタではなく、次に読み出すべきポインタを選択して次の読み出し指示まで保持する構成とした。
請求項１３に記載の構成によれば、更新パケット送信部が、パケット解析エレメントでの解析結果に応じて、ヘッダデータ記憶回路を経由して記憶してきたヘッダ相当データから新たに生成されたヘッダとペイロード収容部とが記憶したペイロード相当データから新たな送信パケットを生成できる。
【００２５】
請求項１４に記載の発明は、初段のエレメントにおいて前記ヘッダデータ記憶回路に記憶されたヘッダ相当データと、前記ヘッダ編集記憶回路に記憶された一時的なデータと、前記ヘッダ解析結果記憶回路に記憶されたパケット解析結果の３系統のデータに対して各パケット毎に共通のシーケンシャルな番号を付与して最終段のエレメントに転送し、最終段のエレメントにおいて前記シーケンシャルな番号により同じパケットの前記３系統のデータを整合する構成とした。
請求項１４に記載の構成によれば、パケット解析のために１つの受信パケットから抽出された情報は３経路を経由するが、各経路で共通なシーケンシャル番号を付与して伝達されるため、その整合性を最終的に検出する比較回路をパケット解析エレメント内に搭載することにより、パケット処理装置内での信頼性向上を図ることができる。
【００２６】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。図１に示す本発明によるパケット処理装置は概略的に、受信パケット分離部１０と、パイプラインで構成された１つ以上のパケット解析エレメント（以下単にエレメントともいう）１００（１００ａ、１００ｂ〜１００Ｎ）と、受信パケットペイロード収容部（単にペイロード収容部ともいう）２０と、検索テーブル４０と、検索データセレクタ３０と、比較情報記憶回路５０と更新パケット送信部６０とを具備しており、上記各部の詳細を図２〜図９に示している。
【００２７】
受信パケット分離部１０は、例えば図１４（ａ）〜（ｈ）に示すようにフォーマットの異なる受信パケット１のデータ区切りを検出してヘッダ相当データ１１とペイロード相当データ１２を分離し、それぞれを初段のパケット解析エレメント１００ａとペイロード収容部２０に出力する。
【００２８】
各パケット解析エレメント１００はそれぞれ、パケット分離部１０により分離されたヘッダ相当データ１１、前段のエレメント１００からのデータを格納してパケット種別の解析を行い、ヘッダを更新する。例えば図１４（ａ）〜（ｈ）に示す８種類のパケット種別を判定する場合には、最初のエレメント１００ａにおいてＶＬＡＮ情報４０７などの有無を判定することにより２つにグループ分けすることができ、次いで２番目のエレメント１００ｂにおいてＬｅｎｇｔｈ情報４０４などの有無を判定することにより、さらに２つにグループ分けすることができ、次いで３番目のエレメント１００ｃにおいてＳＮＡＰ情報４０６などの有無を判定することにより１つのパケット種別を特定することができるので、エレメント１００は３つで構成すればよい。また、将来、判定するパケット種別が増えた場合にはその分を３番目のエレメント１００ｃの後段に増設すればよい。ここで、各エレメント１００は固定周期で、パケット解析とヘッダ変換処理を実行するように構成され、当該解析結果を次段が使用する場合に後段のエレメント１００に渡すように構成されている。
【００２９】
検索テーブル４０には、受信パケット１のヘッダを送信パケットのヘッダに変換するための検索データが格納され、例えばＭＡＣ−ＤＡ情報４０１と送信先ＩＰアドレス情報７１１の対応関係などが格納されている。検索データセレクタ３０はパケット解析エレメント１００ａ、１００ｂ〜１００Ｎの１つ以上のうち、いずれかから抽出された検索キーデータ１７１ａ、１７１ｂ〜１７１Ｎを検索キーデータ３１として検索テーブル４０へ出力し、また、検索テーブル４０から送出された、検索キーデータ３１に対応する検索結果データ４１を検索データセレクタ３０にて選択した検索結果データ３２ａ、３２ｂ〜３２Ｎのいずれか１つをあらかじめ決めたパケット解析エレメント１００ａ、１００ｂ〜１００へ出力する。
【００３０】
ここで、図２は各エレメント１００内のバス構成を詳しく示し、符号１１１、１１２、１１３、１４１、１４２、１３２は、バス上を伝送されることを示している。比較情報記憶回路５０は、あらかじめ、例えば図１４（ａ）〜（ｈ）に示すようなパケット種別を判定するための比較情報を記憶し、その比較情報を各エレメント１００内のＣＰＵ１１０ａ、１１０ｂ〜１１０Ｎからのアクセス制御信号１１２ａ、１１２ｂ〜１１２Ｎとデコーダ１３０ａ、１３０ｂ〜１３０Ｎからのアクセス制御信号１３２ａ、１３２ｂ〜１３２Ｎに従い、それぞれリードデータ（１１１ａ、１１１ｂ〜１１１Ｎ）、（１４１ａ、１４１ｂ〜１４１Ｎ）としてＣＰＵ１１０ａ、１１０ｂ〜１１０Ｎ、特殊演算器１４０ａ、１４０ｂ〜１４０Ｎへ出力する。
【００３１】
更新パケット送信部６０は１つ以上のパケット解析エレメント１００ａ、１００ｂ〜１００Ｎのうち、最終段にあたるパケット解析エレメント１００Ｎからの指示に従って更新するヘッダ相当データ１１とペイロード収容部２０から出力される送信待ちパケットペイロードデータ２１をシーケンシャルに結合して出力する。
【００３２】
＜受信パケット分離部１０＞
図１に示すパケット処理装置は図１４に示すような可変長な受信パケット１を受信して、受信パケット分離部１０が受信パケット１を８ｂｉｔ（ビット）、１６ｂｉｔ、３２ｂｉｔなどあらかじめ決めたビット幅で取り込み、図１４に示すような送信先ＭＡＣアドレス（ＭＡＣ−ＤＡ）４０１から始まるデータの区切り単位に並べ替えて、図１４、図１５に示すようなＬ２ヘッダや上位ヘッダが含まれると推測されるあらかじめ決めたデータ長分のヘッダ相当データ１１と、それ以外のペイロード相当データ１２の２つのデータに分離し、ヘッダ相当データ１１はパケット解析エレメント１００ａへ、ペイロード相当データ１２は、受信パケットペイロード収容部２０へそれぞれ出力する。
【００３３】
＜パケット解析エレメント１００＞
受信パケット分離部１０にて分離したヘッダ相当データ１１は、初段のパケット解析エレメント１００ａに格納される。パケット解析エレメント１００は１つ以上のパイプラインで構成され、１つで構成する場合にはパケット解析エレメント１００ａ＝１００Ｎとなり、２つ以上の場合は、各パケット解析エレメント１００で格納したヘッダ相当データ１１はあらかじめ決めた固定周期後に、後段のパケット解析エレメント１００ｂ、１００ｃ〜１００Ｎ又は更新パケット送信部６０へ出力する。
【００３４】
パケット解析エレメント１００ａ、１００ｂ〜１００Ｎは、ヘッダ相当データ１１を格納すると、エレメント１００内部でヘッダ相当データ１１のうち、パケット解析プログラムにより解析が行えるビット列が格納されたことを通知するパケット解析開始タイミング信号１５２ａ、１５２ｂ〜１５２Ｎを生成し、このパケット解析開始タイミング信号１５２ａ、１５２ｂ〜１５２Ｎをトリガにパケット解析プログラムを実行開始する。
【００３５】
各パケット解析プログラムからアクセス制御信号に従い、受信パケット１のヘッダ相当データ１１から抽出した情報と比較してパケット解析プログラムが必要とする情報か否かを識別するために、全パケット解析エレメント１００が共通して記憶している情報から、パケット解析プログラムに必要な比較情報を比較情報記憶回路５０が生成することで、データの先頭から順次データを識別、抽出する。解析を進め、フォーマットを明らかにしたり、後述のような検索キーデータ３１や検索結果データ４１からの情報抽出など各パケット解析エレメント１００毎のパケット解析プログラムの実行を終え、あらかじめ決めた固定周期後に後段のパケット解析エレメント１００ａ、１００ｂ〜１００Ｎ（１つの場合は　、同一　パケット解析エレメント１００）へ解析結果とヘッダ相当データ１１を引き継ぐ。
【００３６】
受信パケットペイロード収容部２０は、受信パケット分離部１０からのペイロード相当データ１２を格納し、受信パケット分離部１０から分離されたもう一方のデータであるヘッダ相当データ１１が、１つ以上のパイプライン構造となっているパケット解析エレメント１００ａ、１００ｂ〜１００Ｎを経由し、更新パケット送信部６０がリードするまでの間、ペイロード相当データ１２を保持している。
【００３７】
新たなヘッダを搭載した送信パケット６１は、前述のようにパケット解析エレメント１００ａ、１００ｂ〜１００Ｎによる解析結果と、検索テーブル４０の検索により送信先を決める。その際に、検索データセレクタ３０は、パケット解析エレメント１００ａ、１００ｂ〜１００Ｎのいずれかがヘッダ相当データ１１から抽出した検索キーデータ３１を出力するので検索テーブル４０へ出力し、また検索テーブル４０が検索キーデータ３１に該当するエントリ（検索結果データ）４１をあらかじめ決めたパケット解析エレメント１００ａ、１００ｂ〜１００Ｎに送出する。
【００３８】
＜更新パケット送信部６０＞
更新パケット送信部６０はペイロード収容部２０の制御により、パケット解析エレメント１００ａ、１００ｂ〜１００Ｎのうち、最終段にあたるパケット解析エレメント１００Ｎからの指示に従って更新するヘッダ相当データ１１をリードし、ヘッダ相当データ１１の最終データを検出すると、そのヘッダ相当データ１１に対応する送信待ちパケットペイロードデータ２１をシーケンシャルに結合できるようにリードして送信パケット６１を出力する。
上述の構成により、ヘッダ相当データ１１内の各フィールドの識別や検索キー情報の抽出や検索結果受信後の新ヘッダ生成などの各種処理を、１つ以上の何個のパケット解析エレメント１００で処理するのか、それぞれのパケット解析エレメント１００でどのような処理、つまりパケット解析プログラムを実行させるのかを選択できる。
【００３９】
＜＜エレメント１００の詳細な説明＞＞
図１に示すパケット解析エレメント１００ａ、１００ｂ〜１００Ｎはそれぞれ、
・受信パケット分離部１０、前段のエレメント１００から送出されたヘッダ相当データ１１を格納するヘッダデータ記憶回路（単にヘッダ記憶回路ともいう）１５０ａ、１５０ｂ〜１５０Ｎ（図５に詳しく示す）と、
・パケット解析プログラムを記憶しているメモリ１２０ａ、１２０ｂ〜１２０Ｎと、
・メモリ１２０ａ、１２０ｂ〜１２０Ｎにそれぞれ記憶されているパケット解析プログラムの各命令をフェッチ、デコード、実行し、また、フェッチした結果の中から特殊演算命令指示信号１１５ａ、１１５ｂ〜１１５Ｎを出力するＣＰＵ１１０ａ、１１０ｂ〜１１０Ｎと、
・ＣＰＵ１１０ａ、１１０ｂ〜１１０Ｎが出力する特殊演算命令指示信号１１５ａ、１１５ｂ〜１１５Ｎをデコードする特殊演算命令デコード回路（デコーダ）１３０ａ、１３０ｂ〜１３０Ｎ（図４に詳しく示す）と、
・デコーダ１３０ａ、１３０ｂ〜１３０Ｎがそれぞれデコードした特殊演算命令１３３ａ、１３３ｂ〜１３３Ｎを実行する特殊演算器１４０ａ、１４０ｂ〜１４０Ｎ（図３に詳しく示す）とを、
具備している。
【００４０】
上記構成において、ヘッダデータ記憶回路１５０ａ、１５０ｂ〜１５０Ｎはそれぞれ、ヘッダ相当データ１１のあらかじめ決めたビット数分を格納できた際にパケット解析開始タイミング信号１５２ａ、１５２ｂ〜１５２Ｎを特殊演算器１４０ａ、１４０ｂ〜１４０Ｎに出力する。これをトリガにＣＰＵ１１０ａ、１１０ｂ〜１１０Ｎがパケット解析プログラムを実行開始し、また、並行して特殊演算器１４０ａ、１４０ｂ〜１４０Ｎが特殊演算命令（特殊演算命令デコード信号１３３ａ、１３３ｂ〜１３３Ｎ）を実行する。
【００４１】
このとき、ＣＰＵ１１０ａ、１１０ｂ〜１１０Ｎはそれぞれ、ヘッダデータ記憶回路１５０ａ、１５０ｂ〜１５０Ｎに対して出力するアクセス制御信号１１２ａ、１１２ｂ〜１１２Ｎにより、読み出しデータ１１１ａ、１１１ｂ〜１１１Ｎのリードと、書き込みデータ１１３ａ、１１３ｂ〜１１３Ｎのライトを行い、また、ＣＰＵ１１０ａ、１１０ｂ〜１１０Ｎが内蔵する汎用レジスタと転送を繰り返し、各種汎用演算を実行する。また、デコーダ１３０ａ、１３０ｂ〜１３０Ｎはそれぞれ、ＣＰＵ１１０ａ、１１０ｂ〜１１０Ｎが出力する特殊演算命令指示信号１１５ａ、１１５ｂ〜１１５Ｎをデコードして特殊演算命令１３３ａ、１３３ｂ〜１３３Ｎを特殊演算器１４０ａ、１４０ｂ〜１４０Ｎに出力するとともに、特殊演算用データ抽出アクセス制御信号１３２ａ、１３２ｂ〜１３２Ｎを生成してバスを介してヘッダデータ記憶回路１５０ａ、１５０ｂ〜１５０Ｎと比較情報記憶回路５０に出力する。
【００４２】
ヘッダデータ記憶回路１５０ａ、１５０ｂ〜１５０Ｎはそれぞれ、格納した受信パケット１のヘッダからヘッダ抽出情報を抽出してバスを介してリードデータ１４１ａ、１４１ｂ〜１４１Ｎとして特殊演算器１４０ａ、１４０ｂ〜１４０Ｎに出力する。比較情報記憶回路５０は、このリードデータ１４１ａ、１４１ｂ〜１４１Ｎ（ヘッダ抽出情報）と比較するための比較情報を抽出してバスを介してリードデータ１４１ａ、ｂ、・・・、Ｎとして出力する。特殊演算器１４０ａ、１　４０ｂ〜１４０Ｎはそれぞれ、ヘッダ抽出情報と比較情報とを比較して、比較結果情報である状態通知信号１４２ａ、１４２ｂ〜１４２ＮをＣＰＵ１１０ａ、１１０ｂ〜１１０Ｎへ出力し、これにより、状態通知信号１４２ａ、１４２ｂ〜１４２Ｎに応じ後段のパケット解析エレメント１００に送信すべきパケットを判定するようになっている。
【００４３】
ここで、図１４に示すように、受信パケット１の１９・２０バイト目は、Ｔｙｐｅ情報、Ｌｅｎｇｔｈ情報又はＶＬＡＮ情報の先頭２バイトのいずれかなので、例えばパケット解析プログラムにより特殊演算命令デコード回路１３０ａがヘッダ抽出情報として、ヘッダデータ記憶回路１５０ａへ受信パケット１の１９・２０バイト目を抽出するようにアクセス制御信号１３２ａを出力し、かつ比較情報としてＩＰｖ４を示す０８００ｈを生成するように比較情報記憶回路５０が同様にデコーダ１３０ａからのアクセス制御信号１３２ａよりヘッダデータ記憶回路１５０ａから出力させることで、状態通知信号１４２に含まれる一致比較結果信号がヘッダ抽出情報と比較情報の一致を示した場合には、受信パケット１をＤＩＸパケットと判定して、後段のパケット解析エレメント１００からＤＩＸパケットの処理を開始し、また、不一致を示した場合には、次回から受信パケット１の１９・２０バイト目がＬｅｎｇｔｈ情報とＶＬＡＮ情報の先頭２バイトとのうちいずれなのかを判定する処理を開始するようになっており、したがって、受信パケット１の複数のフォーマットを判別でき、判別した受信パケット１のフォーマットに応じたパケットの処理ができる。
【００４４】
また各パケット解析エレメント１００はパイプライン構成としているが、それぞれは同一の構成、同一の機能を持つので、各エレメント１００に搭載するパケット解析プログラムの変更により、ハードウェアの変更なく同一構成で、異なるプロトコルのヘッダ解析も行うことができる。
【００４５】
上述の構成より、単に各パケット解析エレメント１００を汎用ＣＰＵ１１０のみの構成に比べ、ＣＰＵ１１０と特殊演算器１４０を組み合わせたことにより、ヘッダ相当データ１１から情報を抽出の上、ＣＰＵ内蔵の汎用レジスタに転送してからのヘッダ解析でなく、直接ヘッダデータ記憶回路１５０から必要な情報を抽出することができるので高速なヘッダ解析が可能な構成になっている。
【００４６】
さらに各パケット解析エレメント１００はそれぞれ、パケット解析プログラムに応じてヘッダデータ記憶回路１５０毎に異なる情報を抽出することが必要となり、比較による情報識別のための比較情報をあらかじめ記憶させる場所及びパケット解析プログラム実行中に生成した一時的なデータを記憶する場所としてヘッダ編集記憶回路１７０ａ、１７０ｂ〜１７０Ｎと、パケット解析プログラムを実行したパケット解析結果を記憶するヘッダ解析結果記憶回路１６０ａ、１６０ｂ〜１６０Ｎとを具備する。
【００４７】
例えばパケット解析エレメント１００ａがＬ２ヘッダの解析をし、パケット解析エレメント１００ｂがＩＰヘッダの解析をする場合に、パケット解析プログラムにより図１４に示すＭＡＣ−ＤＡ４０１、ＭＡＣ−ＳＡ４０２の正常性を確認した次のフィールドの値がいくつかによって受信パケット１がＤＩＸ形式フォーマットか、ＬＬＣ＋ＳＮＡＰ形式フォーマットかを識別できる。
【００４８】
そこで、ヘッダ編集記憶回路（単に編集記憶回路ともいう）１７０ａにあらかじめ「０５ＤＣ」という値を記憶させておき、ヘッダ編集記憶回路１７０ｂにはあらかじめ「４」という値を記憶させておく。パケット解析エレメント１００ａは、ヘッダデータ記憶回路１５０ａから「０８００」という値が抽出されると、特殊演算器１４０ａの後述する大小比較命令でヘッダ編集記憶回路１７０ａに記憶していた「０５ＤＣ」に比べ、ヘッダデータ記憶回路１４０ａから抽出された「０８００」の値が大きいと判定すると、その結果ＤＩＸフォーマットであることが特定できているので、ヘッダ解析結果記憶回路（単に解析結果記憶回路ともいう）１６０ａに「ＤＩＸ」フォーマットであったことを示す値を書き込む。
【００４９】
そしてパケット解析完了タイミング信号１５３ａに同期して後段のパケット解析エレメント１００ｂにヘッダ解析結果記憶回路１６０ａの情報をヘッダ解析結果記憶回路１６０ｂへライトする。ヘッダ編集記憶回路１７０ａの「０５ＤＣ」は、パケット解析エレメント１００ａのパケット解析プログラムのみでしか使用せず、パケット解析エレメント１００ｂの特殊演算器１４０ｂは、ヘッダ解析結果記憶回路１６０ｂにライトされた「ＤＩＸ」フォーマット情報から、１５バイト目以降にＩＰヘッダが搭載されていることとし、１５バイト目のフィールドがｖｅｒｓｉｏｎ情報の値がいくつかを識別するために、ヘッダ編集記憶回路１７０ｂに　記憶していた「４」と「一致比較」を実行する。
【００５０】
上述の構成により、前段のパケット解析エレメント１００Ｎ−１で抽出、解析した情報を重複して後段のパケット解析エレメント１００Ｎにて解析処理を行われないため、各パケット解析エレメント１００が　個別のパケット解析プログラ　ムを効率的に構成できる。
【００５１】
図１に示す各エレメント１００のヘッダデータ記憶回路１５０ａ、１５０ｂ〜１５０Ｎはそれぞれ、あらかじめ決めた固定周期間でヘッダ相当データ１１を格納し、かつ次の固定周期間ではパケット解析開始タイミング信号１５２ａ、１５２ｂ〜１５２Ｎをそれぞれ基点にＣＰＵ１１０ａ、１１０ｂ〜１１０Ｎ及び特殊演算器１４０ａ、１４０ｂ〜１４０Ｎにてそれぞれのパケット解析プログラムに応じてパケット解析処理を実行するが、固定周期の２倍分の時間で１つのパケット処理となる。
【００５２】
しかし、パケット解析処理を行っている時間にもパケットを受信できれば、単位時間あたりに処理できるパケット数が増え、スループット向上となる。そこで、ヘッダの解析をしている間にパケットを受信する可能性がある場合にも、ヘッダデータ記憶回路１５０ａ、１５０ｂ〜１５０Ｎはそれぞれ、ＣＰＵ１１０ａ、１１０ｂ〜１１０Ｎ及び特殊演算器１４０ａ、１４０ｂ〜１４０Ｎが解析をしているか、又は解析していた現解析結果に、新たに受信パケット１の解析した次解析結果を上書きしないために２面構成としてパケット解析完了タイミング信号１５３ａ、１５３ｂ〜１５３Ｎ毎にパケット受信面とパケット解析面を切り替えて交互に選択する。
【００５３】
上述の構成により、ヘッダデータ記憶回路１５０ａ、１５０ｂ〜１５０Ｎの２面を、パケット解析完了タイミング信号１５３ａ、１５３ｂ〜１５３Ｎ毎に所定の順序で選択して情報を保持させるので、ＣＰＵ１１０ａ、１１０ｂ〜１１０Ｎ及び特殊演算器１４０ａ、１４０ｂ〜１４０Ｎがパケット解析に必要な情報を抽出しているときでも、既に記憶した前の受信パケット１のヘッダを含む情報を失うことなく、新たに受信した情報を記憶させることができる。
【００５４】
＜特殊演算器１４０の詳細な説明＞
図３に詳しく示すように特殊演算器１４０（１４０ａ〜１４０Ｎ）は、特殊演算制御部１４５と、特殊演算命令デコード回路１３０からの特殊演算用データ制御信号１４１と特殊演算命令デコード信号１３３に従い、直接ヘッダデータ記憶回路１５０とヘッダ解析結果記憶回路１６０とヘッダ編集記憶回路１７０と比較情報記憶回路５０からあらかじめ決めたビット幅単位に読み出されたデータ１４１に対して各種の処理を行う演算器群１４６と、状態通知部１４７と特殊演算結果データ出力部１４８とを備える。演算器群１４６は命令毎のイネーブル指示信号１３３１で、それぞれの処理を実行する１対多種一致比較部１４６１と、大小比較部１４６２と、データ転送部１４６３と、一部データ転送部１４６４と、論理積部１４６５と、論理和部１４６６と、加算部１４６７と、ビットシフト部１４６８と、ビットシフト後論理和部１４６９と、チェックサム演算部１４７０と間接アドレスデータ転送部１４７１とを備える。
【００５５】
１対多種一致比較部１４６１は、特殊演算用データ制御信号１４１（１４１ａ〜１４１Ｎ）を構成する第１データと第２データ（ヘッダデータ記憶回路１５０、比較情報記憶回路５０、解析結果記憶回路１６０、編集記憶回路１７０のリードデータ）の比較や、第１データと第２データを先頭とし連続するデータとを同時に比較する。大小比較部１４６２は第１データと第２データにビットマスク信号１３３２でそれぞれ指定したビット幅に対して、第１データを大とするか、第２データを大とするかを大小比較方向指示信号１３３４に応じて比較する。データ転送部１４６３はいずれかの記憶回路１５０、５０か抽出された第１データを異なる記憶回路５０、１５０へ転送し、また、一部データ転送部１４６４は第１データのうちビットマスク信号１３３２で指定したビット幅のみを異なる記憶回路５０、１５０へ転送する。
【００５６】
論理積部１４６５と、論理和部１４６６と加算部１４６７はそれぞれ、第１データと第２データの論理和、論理積、加算を行う。ビットシフト部１４６８は第１データに対してビットシフト方向指示信号１３３３で示す右か左へ第２データで指示したビット数分のビットシフトを行う。ビットシフト後論理和部１４６９は組み合わせ演算で第１データをビットシフト方向指示信号１３３３が指示する方向に即値データ１３３５で指定したビット数分ビットシフトしたデータと第２データの論理和を行う。チェックサム演算部１４７０は第１データ（第１オペランド）が先頭ポインタ（起点）を表し、第２データ（第２オペランド）で指定したデータ長分を複数クロックをかけて加算していく。間接アドレスデータ転送部１４７１は第２データをアドレスとして指定した前記いずれかの記憶回路１５０、５０から出力されたデータが示すアドレスのデータを第１データで示す記憶回路５０、１５０へ転送する。
【００５７】
状態通知部１４７は演算器群１４６内の比較命令（１４６１、１４６２）においていずれか１つ実行した比較結果、及びヘッダデータ記憶回路１５０から出力されるパケット解析開始タイミング信号１５２をＣＰＵ１１０への状態通知信号１４２として生成する。特殊演算結果データ出力部１４３は演算器群１４６内の比較以外の命令（１４６３〜１４７１）によりデコード回路１３０経由で指定されたアドレスへ書き込むライトデータ１４３を生成し、これをヘッダ記憶回路１５０に書き込む。
【００５８】
上述の構成により、特殊演算器１４０は、図１４や図１５に示すヘッダを解析処理するだけの演算器群１４６でないため、その他上位レイヤのヘッダが処理対象となった場合も、演算器群１４６がプログラムの変更により使用でき、ＣＰＵ１１０へデータを取り込むことなく、直接ヘッダデータ記憶回路１５０、ヘッダ解析結果記憶回路１６０、ヘッダ編集記憶回路１７０、比較情報記憶回路５０からデータを抽出できるので、高速なパケット処理を維持しながらプログラムを実行できる。さらに状態通知信号１４２をＣＰＵ１１０へ出力することによりプログラムの分岐や比較結果判定を使用して次に実行すべきプログラムによりパケット解析ができる。
【００５９】
＜特殊演算命令デコード回路１３０の詳細な説明＞
図４に詳しく示すように図１のデコーダ１３０を構成する特殊演算命令デコード回路１３０では、命令指示解析部１３１が、ＣＰＵ１１０からの特殊演算命令指示信号１１５に含まれるリードアクセスの対象となるヘッダデータ記憶回路１５０又はヘッダ編集記憶回路１７０又は比較情報記憶回路５０から抽出すべき情報のリードアドレス生成と、特殊演算実行結果（ライトデータ）１４３をヘッダデータ記憶回路１５０、ヘッダ解析結果記憶回路１６０、ヘッダ編集記憶回路１７０のいずれかの書き込み先アドレスとして、第１アドレス１３２１、第２アドレス１３２３、第３アドレス１３２５の３つのアドレスと、このアドレス１３２１、１３２３、１３２５のそれぞれに対応する第１、第２、第３ライト又はリードイネーブル信号１３２２、１３２４、１３２６を含む特殊演算用データ抽出アクセス制御信号１３２や、特殊演算命令実行時に必要な命令毎のイネーブル指示信号１３３１と、ビットマスク信号１３３２と、ビットシフト方向指示信号１３３３と、大小比較方向指示信号１３３４と、プログラムに記述されている命令のオペランドの即値データ１３３５とを含む特殊演算命令デコード信号１３３を出力できる。
【００６０】
上述の構成により、特殊演算器１４０が、複数の演算器群１４６を内蔵しているが、共通なインタフェースで複数演算を行えるようにしている。
【００６１】
＜ヘッダデータ記憶回路１５０の詳細な説明＞
図５に詳しく示すようにヘッダデータ記憶回路１５０は、ヘッダレジスタ書き込みセレクト回路１５６と、２面構成のヘッダレジスタ１５７と、パケット解析タイミング生成回路１５４と、ヘッダレジスタ読み出しセレクト回路１５８と、ヘッダレジスタポインタ選択部１５９とを備える。
【００６２】
ヘッダレジスタ書き込みセレクト回路１５６は、ヘッダ相当データ１１、又はパケット解析用ＣＰＵ１１０からのライトデータ１１３又は特殊演算器１４０からのライトデータ１４３（１４３ａ〜１４３Ｎ）が入力されたことの検出、及び２面構成のヘッダレジスタ１５７の書き込み先レジスタ側を選択して書き込みポインタ１５６１を生成し、これをヘッダレジスタ１５７に出力する。ヘッダレジスタ１５７は、パケット受信中に書き込まれる面とＣＰＵ１１０や特殊演算器１４０により解析されている面の２面構成であり、ヘッダ相当データ１１を後述のパケット解析面選択信号１５４１により交互に格納する。
【００６３】
パケット解析タイミング生成回路１５４は、
・ヘッダ相当データ１１を検出したときのみヘッダレジスタ書き込みセレクト回路１５６から生成される入力データ検出通知信号１５６２をトリガとしてあらかじめ決めたビット数のヘッダ相当データ１１がヘッダレジスタ１５７へ書き込まれたことを特殊演算器１４０に通知するパケット解析開始タイミング信号１５２と、
・ヘッダレジスタ１５７の受信パケットライト側、パケット解析（リード）側の面選択をするパケット解析面選択信号１５４１と、
・後段のパケット解析エレメント１００への記憶回路１５０のデータ引継ぎタイミングを示すパケット解析完了タイミング信号１５３とを、
生成する。
【００６４】
ヘッダレジスタ読み出しセレクト回路１５８は、ヘッダレジスタ１５７のデータをパケット解析タイミング生成回路１５４からのパケット解析完了タイミング信号１５３にてヘッドレジスタ読み出しポインタ１５８１を生成してヘッダレジスタ１５７に格納されているデータを読み出す。ヘッダレジスタポインタ選択部１５９は、ＣＰＵ１１０からヘッダ抽出情報を生成するために出力されたヘッダレジスタ１５７へアクセスするためのポインタ情報とリード又はライトイネーブル信号１１２、又は特殊演算器１４０からヘッダ抽出情報を生成するために出力されたヘッダレジスタ１５７へアクセスするためのポインタ情報とリード又はライトイネーブル信号１３２を、パケット解析中か否かを判定し選択するヘッダレジスタ書き込みセレクト回路１５６又はヘッダレジスタ読み出しセレクト回路１５８へ出力する。
【００６５】
上述の構成のヘッダデータ記憶回路１５０を図１１を例に説明する。図１１はヘッダデータ記憶回路１５０のみに格納できるパケット長に対して、パケット解析エレメント１００が３個（＃ａ、＃ｂ、＃ｃ）の例を示す。受信パケット１のヘッダ相当データＨを検出すると、ヘッダレジスタ１５７に対して、あらかじめ決めたビット幅単位に、ヘッダレジスタ書き込みセレクト回路１５６からの書き込みポインタ１５６１に従い、ポインタ０から順番にヘッダレジスタ１５７の選択面−１に第１ヘッダ相当データＨを格納していく。
ここで、図１１では、ヘッダ相当データとして「Ｈ」のみを示しているが、実際には「Ｈ＋Ｐ＃ｘ」がヘッダ相当データであり、「あらかじめ決めたビット幅」である。また、図１１に示す固定時間（固定周期）は、「Ｈ＋Ｐ＃ｘ」＋α（α：イーサネット（Ｒ）規格のパケット間最小ギャップ）である。また、図１２では、ヘッダ相当データが「Ｈ＋Ｐ＃ｘ（一部）」であり、ペイロード相当データが「Ｐ＃ｘ（残り）」である。
【００６６】
ヘッダレジスタ１５７へのパケットデータ格納を完了すると、パケット解析タイミング生成回路１５４からパケット解析開始タイミング信号１５２を特殊演算器１４０に出力し、このタイミング生成は固定時間が経過したことも示す。これ以降新たなパケットを受信可能となり、新たなヘッダ相当データＨをヘッダレジスタ書き込みセレクト回路１５６が検出すると、先にパケット格納完了となったヘッダレジスタ１５７の選択面−２を選択し、第２のヘッダ相当データＨを格納できる。
【００６７】
第１ヘッダ相当データＨ＋Ｐ＃ｘに対するパケット解析開始タイミング信号１５２をトリガに、パケット解析エレメント内のＣＰＵ１１０や特殊演算器１４０が解析を行う。解析を終えたことを示すパケット解析完了タイミング信号１５３を解析結果記憶回路１６０へ出力することにより、次段のパケット解析エレメント１００へ転送準備ができたことを通知する。このパケット解析完了タイミング信号１５３（１５３ａ〜１５３Ｎ）を固定時間内で生成することにより、パケット解析タイミング生成回路１５４から生成するパケット解析開始タイミング信号１５２をトリガとする固定時間が周期的に繰り返され、パイプライン順序が正しく守れる。
パケット受信からパケット解析完了まで、第１ヘッダ相当データＨの処理は選択面−１をパケット解析面選択信号１５４１にて選択しており、パケット解析完了タイミング信号１５３の生成により、ヘッダレジスタの選択面−１で解析し終えた第１ヘッダ相当データＨを後段のパケット解析エレメント１００へ引継ぎデータ１５１として転送する。このとき選択面−２へ格納していた第２ヘッダ相当データＨも格納を完了し、パケット解析開始タイミング信号１５２を出力し、前記のような動作を固定時間毎に繰り返す。
【００６８】
また受信パケット分離部１０からのヘッダ相当データＨと、パケット解析中にＣＰＵ１１０や特殊演算器１４０からのライトやリードの競合を調停しながら、パケットの受信とパケット解析を両立できる。
なお、図には示されていないが、ヘッダ記憶回路１５０には、ヘッダ相当データ及びペイロード相当データを格納する時に、パケットの終了を示すフラグを書き込む。これにより、パケット終了フラグを検出するか否かにより、ヘッダ相当データの後にペイロード相当データを読み出すか否かを判断している。
【００６９】
＜＜ペイロード収容部２０の詳細な説明＞＞
図６に詳しく示すようにペイロード収容部２０は、ペイロード相当データ１２を格納するペイロードデータ蓄積用メモリ（単にメモリともいう）２２と、ペイロードデータ書き込み回路２３と、ヘッダ対応ポインタ生成回路２４と、ポインタ保持回路２５と、リードポインタ生成回路２６とペイロードデータ読み出し回路２７とを備える。ペイロードデータ書き込み回路２３はペイロードデータ蓄積用メモリ２２へデータを書き込むためのアドレス、ライトイネーブル信号を生成する。ヘッダ対応ポインタ生成回路２４は送信パケット生成時にパケット解析エレメント１００で解析しているヘッダ相当データ１１に対応させてペイロード相当データ１２を格納（ライト）するために受信パケット毎に書き込み終了ポインタを生成する。
【００７０】
ポインタ保持回路２５は１つのペイロードデータ蓄積用メモリ２２上の受信パケット毎のポインタ値を保持するために、複数のレジスタ（図の受信パケット＃１用、＃２用〜＃Ｙ用）により構成されている。リードポインタ生成回路２６は更新パケット送信部６０からのペイロード読み出し制御信号６２をもとに、ポインタ保持回路２５から直前に読み出し終了したポインタから書き込み終了ポインタまでのポインタ値を生成する。ペイロードデータ読み出し回路２７は更新パケット送信部６０からのペイロード読み出し制御信号６２をトリガとしてペイロードデータ蓄積用メモリ２２からペイロード相当データ１２を読み出しするためのアドレスとリードイネーブル信号を生成する。
【００７１】
上述の構成のペイロード収容部２０を図１２を例に説明する。図１２はヘッダデータ記憶回路１５０及びペイロード収容部２０に分けて格納するパケットの長さに対して、パケット解析エレメント１００が３個（＃ａ、＃ｂ、＃ｃ）の例を示す。受信パケット１は受信パケット分離部１０でヘッダ相当データＨ（実際には「Ｈ＋Ｐ＃ｘ（一部）」）とペイロード相当データＰ（実際には「Ｐ＃ｘ（残り）」）に分離され、ペイロードデータ書き込み回路２３がペイロード相当データＰを検出すると、あらかじめ決めたビット幅単位に、ペイロードデータ蓄積用メモリ２２ヘライトするために、アドレスとライトイネーブル信号を生成し、アドレス０から順番にライトする。
【００７２】
ペイロードデータＰ＃１をペイロードデータ蓄積用メモリ２２へ書き終えると、第１ヘッダ相当データ　Ｈのペイロードデータであることを記憶するために、ヘッダ対応ポインタ生成回路２４が書き込み終了時のアドレス値を抽出し、ポインタ保持回路２５の第１ヘッダ相当データ用のレジスタへ記憶（ライト）する。続く第２ヘッダ相当データのペイロード相当データＰ＃２を、第１ペイロード相当データＰ＃１の書き込み終了時のアドレス値＋１からライトし、書き込み終了時のアドレス値を、第２ヘッダ相当データ用のポインタ保持回路２５のレジスタへ記憶する。第３ペイロード相当データＰ＃３も同様に格納する。
【００７３】
パケット解析エレメント＃ａ、＃ｂ、＃ｃによる第１ヘッダ相当データＨの解析が終えると、パケット解析エレメント＃ｃは、ヘッダ編集記憶回路１７０ｃへテーブル検索より得た結果の宛先にパケットを転送するか破棄するかの指示や、例えばＶＬＡＮ挿入又は削除の指示をライトし、パケット解析完了タイミング信号１５３ｃに同期して、新たなヘッダとなったヘッダデータ１５１Ｎと共にヘッダ制御データ１７２Ｎを更新パケット送信部６０へ出力する。
【００７４】
更新パケット送信部６０は、新たなヘッダデータへの挿入又は削除などのパケット更新処理をする。この更新ヘッダデータを最後まで処理を終了した際に、パケットの終わりを示すフラグが検出できない場合は、続くペイロード相当データが存在し、結合することで１つのパケットとなるので、ペイロード収容部２０へペイロード読み出し制御信号６２を出力する。
【００７５】
この制御信号６２に従い、第１ヘッダ相当データに続く第１ペイロード相当データを読み出せるようにリードポインタ生成回路２６が、ペイロードデータ読み出し回路２７経由でポインタ０からポインタ保持回路２５に記憶した第１ヘッダ相当データの書き込み終了ポインタ値までのアドレスをペイロードデータ蓄積用メモリ２２へ指示し、データを読み出す。ポインタ保持回路２５に記憶されている書き込み終了ポインタ値まで読み出し終わると、リードポインタ生成回路２６は、その際のアドレスを記憶し、次回ペイロード読み出し制御信号６２を受け取るまで保持する。
ヘッダ制御データ１７２Ｎにパケット破棄指示が含まれていた場合は、図６に示すリードポインタ生成回路２６は制御信号６２に、ペイロード相当データ１２を読み出さずに次に読み出しすべきポインタ保持値を選択する。
【００７６】
＜＜検索データセレクタ３０の詳細な説明＞＞
図７に詳しく示すように検索データセレクタ３０は、検索キー選択部３３と、検索結果送出部３４と検索結果受信ＦＩＦＯ（キュー）３５を具備する。検索キー選択部３３はパケット解析エレメント１００ａ、１００ｂ〜１００Ｎのいずれか１つから出力された検索キーデータ１７１を受信し、検索テーブル４０へ検索キーデータ１７１ａ、１７１ｂ〜１７１Ｎ（いずれか１つ）を出力する。検索結果送出部３４は検索テーブル４０からの検索結果４１をＦＩＦＯ３５を介して受信し、上記の検索キーデータ１７１に対応する検索結果３２ａ、３２ｂ〜Ｎを、指定したパケット解析エレメント１００ａ、１００ｂ〜１００Ｎに出力する。
【００７７】
上述の構成により、検索データセレクタ３０は、パケット解析エレメント１００毎にそれぞれ個別の解析を行った場合に、例えばＭＡＣアドレス解析のみのプログラムと、ＩＰヘッダ及び上位ヘッダなども解析するプログラムでは必要となるパケット解析エレメント数が変わるため、必ず決まったパケット解析エレメント１００から固定的に検索キーデータ１７１を出力するとは限らず、パケット解析による情報をもとに検索キーデータ１７１を生成するパケット解析プログラムを実装しているパケット解析エレメント１００からの検索キーデータ１７１を選択して検索テーブル４０へ出力する。また、その検索キーデータ１７１に対応する検索結果データ３２を新ヘッダ生成のために使用するパケット解析エレメント１００へのみ出力する。
【００７８】
さらに、検索テーブル４０から出力された検索結果データ４１を検索結果受信ＦＩＦＯ３５に蓄積し、出力先となるパケット解析エレメント１００からの指示があるまで、検索結果データ３２を出力しない。例えばパケット解析エレメント１００ａ、１００ｂ、１００ｃにて更新ヘッダを生成する場合、パケット解析エレメント１００ｂから検索キーデータ１７１を送出し、エレメント１００ｃで検索結果データ３２を必要とする場合と、検索テーブル４０自身の処理時間遅延、複数検索キーデータ１７１による検索時間の違いにも対応できる。
【００７９】
＜＜更新パケット送信部６０の詳細な説明＞＞
図８に詳しく示すように更新パケット送信部６０は、ペイロード読み出し制御信号６２を生成する制御信号生成部６３とパケット生成部６４とを具備する。パケット生成部６４は１つ以上のパケット解析エレメント１００ａ、１００ｂ〜１００Ｎのうち最終段にあたるパケット解析エレメント１００Ｎ（１つのパケット解析エレメントの場合は、ａ＝Ｎ）から出力されるヘッダデータへの挿入指示信号１７２１Ｎと、ヘッダデータからの削除指示信号１７２２Ｎと、転送又は破棄指示信号１７２３Ｎを含むヘッダ制御データ１７２Ｎに従って、更新するヘッダ相当データ１５１Ｎと、ペイロード収容部２０から読み出した送信待ちパケットペイロードデータ２１をシリアルに結合する。
【００８０】
上述の構成により、更新パケット送信部６０は、パケット解析エレメント１００Ｎからパケット解析完了タイミング信号１５３に同期して、引継ぎヘッダデータ１５１Ｎとヘッダ編集記憶回路１７０Ｎからヘッダデータへの挿入指示信号１７２１Ｎと、ヘッダデータからの削除指示信号１７２２Ｎと、転送又は破棄指示信号１７２３Ｎを含むヘッダ制御データ１７２Ｎを受信する。各種指示信号により引継ぎヘッダデータ１５１Ｎは、新たなヘッダへ更新し、送信待ちパケットペイロードデータ２１が必要であれば結合を行い、送信パケット６１として出力する。
【００８１】
＜＜パケット解析エレメント１００の変形例＞＞
図９に示すパケット解析エレメント１００の変形例は、図１に示す構成に対してシーケンシャル番号比較回路（単に比較回路ともいう）１８０Ｎ、１８１Ｎが追加されている。
【００８２】
シーケンシャル番号比較部１８０Ｎ、１８１Ｎは、受信パケット１のヘッダの解析を行うために、ヘッダデータ記憶回路１５０と、ヘッダ解析結果記憶回路１６０とヘッダ編集記憶回路１７０経由でテーブル検索の検索キーデータ１７１を送出して検索結果を受け取るという３つの経路にて１つの受信パケット情報を伝達するので、いずれか１経路での不具合により同一受信パケットの情報が揃わないことを検出するため、初段のパケット解析エレメント１００ａのパケット解析プログラムよりシーケンシャルな番号を付与し、パケット解析エレメント１００の最終段に対して、ヘッダ解析結果記憶回路１６０経由で伝達されたシーケンシャル番号１６２Ｎとヘッダデータ記憶回路１５０経由で伝達されたシーケンシャル番号１５７１Ｎとの比較結果、及びヘッダ解析結果記憶回路１６０経由で伝達されたシーケンシャル番号１６２Ｎと検索テーブル４０で伝達されたシーケンシャル番号１７３Ｎとの比較結果の２種類の比較結果を出力する。
【００８３】
上述の構成よるシーケンシャル番号の転送イメージを図１０を用いて説明する。パケット解析エレメント１００が３段（＃ａ、＃ｂ、＃ｃ）の場合、検索データセレクタ３０は、エレメント１００ａが検索キーデータ１７１ａを出力し、エレメント１００ｃが検索結果３２ｃを受信する。パケット解析エレメント１００ａのパケット解析プログラムが、受信パケット１の解析結果をヘッダ解析結果記憶回路１６０ａにライトする際に、シーケンシャル番号＃Ａも同ヘッダ解析結果記憶回路１６０ａにライトする。この解析結果のもとになるヘッダ相当データを記憶しているヘッダデータ記憶回路１５０ａにも同様にシーケンシャル番号＃Ａをライトする。
【００８４】
そしてヘッダ相当データ１２から抽出した情報をもとに生成した検索キーデータ１７１にもシーケンシャル番号＃Ａをヘッダ編集記憶回路１７０ａ経由でライト、転送する。これらのシーケンシャル番号＃Ａは、パケット解析完了タイミング信号１５３ａに同期して、ヘッダデータ記憶回路１５０ａはヘッダ相当データ１１と合わせてヘッダデータ記憶回路１５０ｂへ、ヘッダ解析結果記憶回路１６０ａは解析結果情報の１つとして解析結果記憶回路１６０ｂへ転送し、ヘッダ編集記憶回路１７０ａは編集記憶回路１７０ｂへ直接転送はなく、検索テーブル４０への検索キーデータ１７１として転送する。検索キーデータ１７１に該当する検索結果データ３２には検索キーデータ１７１に多重されていたシーケンシャル番号＃Ａを検索結果データ３２にも多重されている値をパケット解析エレメント１００ｃのヘッダ編集記憶回路１７０ｃにて抽出し、テーブル経路シーケンシャル番号１７３ｃから＃Ａ値を出力する。
【００８５】
エレメント１００ａからエレメント１００ｂへ、エレメント１００ｂからエレメント１００ｃへも前述と同様にパケット解析完了タイミング信号１５３に同期してエレメント１００間で引き継ぎ、ヘッダデータ記憶回路１５０経路のシーケンシャル番号１５７１Ｎから＃Ａ値を出力する。ヘッダデータ解析結果記憶回路１６０経路のシーケンシャル番号１６２Ｎから＃Ａ値を出力する。これら各経路のシーケンシャル番号を比較し、すべて＃Ａ値であるために正常に３経路で１つのパケット情報を転送していることが検出できる。
【００８６】
【発明の効果】
以上説明したように請求項１、２に記載の構成によれば、受信パケットヘッダ内の各フィールドの識別や、検索キー情報の抽出や、検索結果受信後の送信パケットヘッダ生成などの処理を受信パケットの種類に応じて何個のパケット解析エレメントで処理するか、また、それぞれのパケット解析エレメントにどのような処理をさせるのかを選択できるため、高性能なＣＰＵを特に用意する必要がない。
請求項３に記載の構成によれば、パイプライン構成のパケット解析エレメント間の情報の引継ぎもあらかじめ決めたタイミング信号で行うことから特別なフラグ（レジスタ）及び処理を必要としないため、メモリサイズをすべて個別のパケット解析処理に割り当てることができる。
請求項４に記載の構成によれば、１つ以上のパケット解析エレメントにて構成した場合に、前段のパケット解析エレメントで抽出、解析した情報を重複して処理することがないので、プログラムの負荷分散が柔軟に対応でき、また、プログラム蓄積用メモリサイズをすべて個別のパケット解析処理に割り当てることができる。
請求項５に記載の構成によれば、次パケットの受信中でも、現パケットの解析結果情報を保持できるため、スループットが低下することなく、パケット解析結果情報を後段のパケット解析エレメントへ伝達できる。
請求項６に記載の構成によれば、特殊演算器がヘッダデータ記憶回路、ヘッダ解析結果記憶回路、ヘッダ編集記憶回路、比較情報記憶回路のデータを直接リード、ライトできることから、プログラムの変更つまり特殊演算命令の指示順序を変えることで、設計変更や機能追加を実現し、かつ高速なパケット処理を維持できる。
請求項７に記載の構成によれば、設計変更や機能追加を実現することができる。
請求項８に記載の構成によれば、特殊演算命令の実行に必要な情報をヘッダデータ記憶回路、ヘッダ解析結果記憶回路、ヘッダ編集記憶回路、比較情報記憶回路のデータを直接リード、ライトできるようにアドレスなどのアクセス制御信号を生成し、かつ命令実行時に必要な各種イネーブル信号を生成できる。
請求項９に記載の構成によれば、現パケットの解析中でも、次パケットの受信を開始できるため、ワイヤースピードを維持しながら、パケット解析エレメント内ＣＰＵ及び特殊演算器へヘッダ相当データを伝達し、かつ後段のパケット解析エレメント内のヘッダデータ記憶回路へデータを引き継ぐことができる。
請求項１０に記載の構成によれば、１つのメモリに対してパケット解析中のヘッダ相当データに対応する数分のポインタのみを管理しているため、複数の受信パケットの各ペイロードデータ収容用のメモリを必要とせずに低コストに装置を実現できる。
請求項１１に記載の構成によれば、複数のパケット解析エレメントで構成した場合に、検索データセレクタが、いずれのパケット解析エレメントからの検索キーでも受信でき、またいずれのパケット解析エレメントへも検索結果を送信できるので、複数のパケット解析エレメントでも検索テーブルとアクセスができ、プログラム処理の柔軟性が高くなる。
請求項１２に記載の構成によれば、検索データセレクタが検索テーブルからの検索結果データをＦＩＦＯで受信する場合に、検索テーブルの応答時間が変化してもパケット解析エレメントが必要なタイミングで検索結果データを受信できる。
請求項１３に記載の構成によれば、更新パケット送信部が、パケット解析エレメントでの解析結果に応じて、ヘッダデータ記憶回路を経由して記憶してきたヘッダ相当データから新たに生成されたヘッダとペイロード収容部とが記憶したペイロード相当データから新たな送信パケットを生成できる。
請求項１４に記載の構成によれば、パケット解析のために１つの受信パケットから抽出された情報は３経路を経由するが、各経路で共通なシーケンシャル番号を付与して伝達されるため、その整合性を最終的に検出する比較回路をパケット解析エレメント内に搭載することにより、パケット処理装置内での信頼性向上を図ることができる。
【図面の簡単な説明】
【図１】本発明によるパケット処理装置の基本構成を示すブロック図
【図２】図１のパケット解析エレメント内のバス構成を詳しく示すブロック図
【図３】図１中の特殊演算器を示すブロック図
【図４】図１中の特殊演算命令デコード回路を示すブロック図
【図５】図１中のヘッダデータ記憶回路を示すブロック図
【図６】図１中の受信パケットペイロード収容部を示すブロック図
【図７】図１中の検索データセレクタを示すブロック図
【図８】図１中の更新パケット送信部を示すブロック図
【図９】図１中のパケット解析エレメントにシーケンシャル番号比較回路を追加した変形例を示すブロック図
【図１０】図９のシーケンシャル番号比較を示すイメージ図
【図１１】本発明によるパケット解析エレメントを３個使用し、最小パケット長、かつ最小パケット間ギャップ時の処理タイミング図
【図１２】本発明によるパケット解析エレメントを３個使用し、任意パケット長、かつ任意パケット間ギャップ時の処理タイミング図
【図１３】従来のパケット処理装置を示すブロック図
【図１４】従来のパケットの下位レイヤヘッダの構成を示す図
【図１５】従来のＩＰｖ４ヘッダの構成を示す図
【符号の説明】
１　　受信パケット
１０　　受信パケット分離部
１１　　ヘッダ相当データ
１２　　ペイロード相当データ
２０　受信パケットペイロード収容部
２１　　送信待ちパケットペイロードデータ
２２　　ペイロードデータ蓄積用メモリ
２３　ペイロードデータ書き込み回路
２４　　ヘッダ対応ポインタ生成回路
２５　　ポインタ保持回路
２６　　リードポインタ生成回路
２７　　ペイロードデータ読み出し回路
３０　　検索データセレクタ
４０　　検索テーブル
５０　　比較情報記憶回路
６０　　更新パケット送信部
６１　　送信パケット
６２　　ペイロード読み出し制御信号
６３　　ペイロード読み出し制御信号生成部
６４　　パケット生成部
１００、１００ａ、ｂ、・・・、Ｎ　パケット解析エレメント
１１０ａ、ｂ、・・・、Ｎ　　ＣＰＵ
１１１ａ、ｂ、・・・、Ｎ　　記憶回路１５０、５０からのＣＰＵリードデータ
１１２ａ、ｂ、・・・、Ｎ　　ＣＰＵからの記憶回路１５０、５０アクセス制御信号
１１３ａ、ｂ、・・・、Ｎ　　ＣＰＵからの記憶回路１５０、５０ライトデータ
１１５ａ、ｂ、・・・、Ｎ　　特殊演算命令指示信号
１２０ａ、ｂ、・・・、Ｎ　　ＣＰＵのプログラム記憶メモリ
１３０ａ、ｂ、・・・、Ｎ　　特殊演算命令デコード回路（デコーダ）
１３１　　命令指示解析部
１３２ａ、ｂ、・・・、Ｎ　　特殊演算用データ抽出アクセス制御信号
１３３ａ、ｂ、・・・、Ｎ　　特殊演算命令デコード信号
１４０、１４０ａ、ｂ、・・・、Ｎ　　特殊演算器
１４１、１４１ａ、ｂ、・・・、Ｎ　特殊演算用データ制御信号（特殊演算器のヘッダデータ記憶回路１５０、比較情報記憶回路５０からのリードデータ）
１４２ａ、ｂ、・・・、Ｎ　　状態通知信号
１４３、１４３ａ、ｂ、・・・、Ｎ　　特殊演算器の記憶回路１５０、５０へのライトデータ
１４５　　特殊演算制御部
１４６　　演算器群
１４７　　状態通知部
１４８　　特殊演算結果データ出力部
１５０、１５０ａ、ｂ、・・・、Ｎ　　ヘッダデータ記憶回路
１５１ａ、ｂ、・・・、Ｎ　　エレメント間引継ヘッダデータ
１５２、１５２ａ、ｂ、・・・、Ｎ　　パケット解析開始タイミング信号
１５３、１５３ａ、ｂ、・・・、Ｎ　　パケット解析完了タイミング信号
１５４　　パケット解析タイミング生成回路
１５６　　ヘッダレジスタ書き込みセレクト回路
１５７　　ヘッダレジスタ
１５８　　ヘッダレジスタ読み出しセレクト回路
１５９　　ヘッダレジスタポインタ選択部
１６０、１６０ａ、ｂ、・・・、Ｎ　　解析結果記憶回路
１６１ａ、ｂ、・・・、Ｎ　　エレメント間引継解析結果データ
１６２Ｎ　　ヘッダ解析結果記憶回路経路シーケンシャル番号
１７０、１７０ａ、ｂ、・・・、Ｎ　　ヘッダ編集記憶回路
１７１、１７１ａ、ｂ、・・・、Ｎ　　検索キーデータ
１７２ａ、ｂ、・・・、Ｎ　　ヘッダ制御データ
１３３１　　命令毎のイネーブル指示信号
１３３２　　ビットマスク信号
１３３３　　ビットシフト方向指示信号
１３３４　　大小比較方向指示信号
１３３５　　即値データ
１３２１　　（特殊演算用）第１アドレス
１３２２　　（特殊演算用）第１ライト又はリードイネーブル
１３２３　　（特殊演算用）第２アドレス
１３２４　　（特殊演算用）第２ライト又はリードイネーブル
１３２５　　（特殊演算用）第３アドレス
１３２６　　（特殊演算用）第３ライト又はリードイネーブル
１４６１　１対多種一致比較部
１４６２　大小比較部
１４６３　データ転送部
１４６４　一部データ転送部
１４６５　論理積部
１４６６　論理和部
１４６７　加算部
１４６８　ビットシフト部
１４６９　ビットシフト後論理和部
１４７０　チェックサム演算部
１４７１　間接アドレスデータ転送部
１５４１　　パケット解析面選択信号
１５６１　　ヘッダレジスタ書き込みポインタ
１５７１　　ヘッダデータ記憶回路経路シーケンシャル番号
１５８１　　ヘッダレジスタ読み出しポインタ
１７２１　　ヘッダ挿入指示データ
１７２２　　ヘッダ削除指示データ
１７２３　　パケット転送破棄指示信号
１７３Ｎ　　検索テーブル経路シーケンシャル番号
【図１】
2004064648.tif 000003
【図２】
2004064648.tif 000004
【図３】
2004064648.tif 000005
【図４】
2004064648.tif 000006
【図５】
2004064648.tif 000007
【図６】
2004064648.tif 000008
【図７】
2004064648.tif 000009
【図８】
2004064648.tif 000010
【図９】
2004064648.tif 000011
【図１０】
2004064648.tif 000012
【図１１】
2004064648.tif 000013
【図１２】
2004064648.tif 000014
【図１３】
2004064648.tif 000015
【図１４】
2004064648.tif 000016
【図１５】
2004064648.tif 000017