【手続補正書】
【提出日】平成19年10月25日(2007.10.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
パケットを受信する入力インタフェースと、
受信したパケットを解析および分類して、種類毎にフローを生成するパケット解析部と、
上記生成されたフローを、種類毎にパケットの受信順序を保持して管理するトラフィック管理部と、
上記パケットを処理するパケット処理部と、
上記パケット処理部の処理結果を上記フロー毎に登録するプロセスキャッシュと、
を有するネットワーク装置であって、該ネットワーク装置は、
(1) 上記プロセスキャッシュに処理結果が未登録な第１のフローの第１のパケットを、上記パケット処理部で処理し、
(2)上記第１のフローの第１のパケットに後続するパケットは、上記第１のパケットの処理結果が上記プロセスキャッシュに登録されるまで待機させ、登録の後、上記プロセスキャッシュの情報を用いて処理を行い、
(3)上記第１のフローの第１のパケットに後続するパケットを待機させている間に、第２のフローのパケットが該待機中のパケットより先に処理されるように、
フローを制御することを特徴とするネットワーク装置。
【請求項２】
上記トラフィック管理部は、上記生成されたフローに対応する内部処理情報列を、フローの種類毎にパケットの受信順序を保持して格納するキューを有し、
該キューに格納される内部処理情報列は、対応するパケットの処理結果が上記プロセスキャッシュに登録されているか否かを示す登録済み情報を含むことを特徴とする請求項１記載のネットワーク装置。
【請求項３】
上記パケット処理部の前段に、
上記登録済み情報に基づいて、パケットを上記パケット処理部で処理するか、上記プロセスキャッシュを参照して処理するかを選択する解析部を有する請求項２記載のネットワーク装置。
【請求項４】
上記パケット処理部の選択により、パケットが上記パケット処理部で処理された場合、当該処理結果が上記プロセスキャッシュに登録完了されたことを上記トラフィック管理部に通知するキャッシュミス処理部を有する請求項３記載のネットワーク装置。
【請求項５】
上記トラフィック管理部は、上記キャッシュミス処理部からの通知に基づいて、上記内部処理情報列に登録済み情報を付加することを特徴とする請求項４記載のネットワーク装置。
【請求項６】
上記トラフィック管理部は、上記登録済み情報を参照してフローを制御することを特徴とする請求項５記載のネットワーク装置。
【請求項７】
上記第１のフローの第１のパケットは、処理結果が該プロセスキャッシュ未登録である第１のフローの先頭パケットであることを特徴とする請求項１記載のネットワーク装置。
【請求項８】
上記第２のフローのパケットは、上記プロセスキャッシュに処理結果が未登録な先頭パケットまたは、プロセスキャッシュに処理結果が登録済みの後続パケットであることを特徴とする請求項１記載のネットワーク装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】発明の名称
【補正方法】変更
【補正の内容】
【発明の名称】ネットワーク装置
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００６８
【補正方法】変更
【補正の内容】
【００６８】
以上、本発明によるネットワークプロセッサアクセラレータを利用したネットワーク装置および、ネットワークプロセッサアクセラレータそのものの一実施例を説明した。本説明はあくまで一実施例の説明であり、本発明の範囲を限定するものではなく、様々な変形例に対して適用可能である。
尚、本発明は下記の解決手段でも実現可能である。
（解決手段１）
入力されたパケットを分類しフローとして扱うための解析部と、  前記パケットに対して実施した処理をフロー毎に記録するための複数のエントリを有するキャッシュと、  前記キャッシュの前段に配置され、前記キャッシュのエントリと１対１に対応し、対応するエントリに割り当てられたフローに属するパケットを保持するフロー管理用のキュー群と、制御部を有し、該制御部は、まず、前記キャッシュに未登録のフローの先頭のパケットの処理要求を出し、次に、前記先頭パケットの処理結果が前記キャッシュに登録されたことの通知を受信した後対応する前記キューに保持されているパケットを前記キャッシュにアクセスさせ、更に、あるフローのパケットを保持している間に、他のフローの先頭パケットがあれば保持中の前記キャッシュ未登録フローを追い越して処理要求を出し、あるフローの前記キャッシュ登録済みパケットがあれば、保持中の前記キャッシュ未登録フローを追い越して前記キャッシュにアクセスさせるように制御を行うことを特徴とするネットワーク装置。
（解決手段２）
ネットワーク上で転送されるパケットをフローとして扱うためにパケットから内部処理
情報列を生成し、前記内部処理情報列が、パケットと内部処理情報列を１対１に対応付ける情報、及びパケット毎に異なる情報を合わせた第一の情報と前記パケットのネットワーク上での各階層におけるプロトコル種類を識別するための第二の情報と前記パケットのネットワーク上での各階層に対応するヘッダから抽出した第三の情報とで構成され、前記第二の情報と前記第三の情報によりパケットをフロー分類し、前記パケットに対して実施した処理を第四の情報として生成し、必要に応じて第三の情報を書換え、前記第三、第四の情報をデータとしてフロー毎に記録し同一のフローに適用するためのキャッシュと、前記キャッシュの前段に前記キャッシュのエントリと１対１に対応するフロー管理用のキュー群とを用いて、前記キュー群は、割り当てられたフローに属するパケットを保持し、まず、前記キャッシュに未登録のフローの先頭のパケットの処理要求を出し、次に、前記先頭パケットの処理結果が前記キャッシュに登録されたことの通知を受信した後対応する前記キューに保持されているパケットを前記キャッシュにアクセスさせ、更に、あるフローのパケットを保持している間に、他のフローの先頭パケットがあれば保持中の前記キャッシュ未登録フローを追い越して処理要求を出し、前記あるフローの前記キャッシュ登録済みパケットがあれば、保持中の前記キャッシュ未登録フローを追い越して前記キャッシュにアクセスさせることを特徴とするネットワーク装置の制御方法。
（解決手段３）
解決手段１に記載のネットワーク装置において、ハッシュ関数によりフロー分類した情報を割り当てるパケット処理を記録するキャッシュのタグ部分とパケット処理を記録するキャッシュのデータ部分と前記キャッシュのタグ部分及びデータ部分の各エントリに対応するフロー管理用のキューの情報割り当て位置が複数（Ｎ）箇所ある（Ｎウェイ・）セット・アソシアティブ形式であることを特徴とするネットワーク装置。
（解決手段４）
解決手段１に記載のネットワーク装置において、フロー分類した情報を割り当てるフロー管理用のキューが利用中である場合に、前記フロー管理用キューが解放されるまで前記フロー分類した情報及び、それ以降の全てのフローを待機させるために前記全てのフローを一時的に保持するためのバッファを具備することを特徴とするネットワーク装置。
（解決手段５）
解決手段１に記載のネットワーク装置において、フロー分類した情報を割り当てるフロー管理用のキューが利用中である場合に、前記フロー管理用キューが解放されるまで前記フロー分類した情報及び、それ以降の同一フローを待機させるために前記同一フローを一時的に保持するためのバッファを具備することを特徴とするネットワーク装置。
（解決手段６）
解決手段１に記載のネットワーク装置において、フロー分類した情報を管理するフロー管理用のキューのうち、複数本の前記フロー管理キューからの情報取り出しが可能になった時、情報に記載されている優先順位情報を参照して情報を取り出すフロー管理キューを選択可能であることを特徴とするネットワーク装置。
（解決手段７）
解決手段１に記載のネットワーク装置において、フロー分類した情報を管理するフロー管理用のキューのうち、複数本の前記フロー管理キューからの情報取り出しが可能になった時、情報に記載されている帯域制御情報と情報のサイズを参照して情報を出力する前記前記フロー管理キューからの出力量を制限することを特徴とするネットワーク装置。
（解決手段８）
解決手段１に記載のネットワーク装置において、パケット処理を記録するキャッシュのタグ部分とフロー分類した情報を管理するフロー管理用のキューを含む部位とを単一のデバイス上へ実装し、パケット処理を記録するキャッシュのデータ部分を前記のデバイスとは異なるデバイス
上へ実装することを特徴とするネットワーク装置。
（解決手段９）
解決手段１に記載のネットワーク装置において、パケット処理を記録するキャッシュのタグ部分とフロー分類した情報を管理するフロー管理用のキューを含む部位と、パケット処理を記録するキャッシュのデータ部分とを単一のデバイス上へ実装することを特徴とするネットワーク装置。
（解決手段１０）
解決手段１に記載のネットワーク装置において、ハッシュ関数によりフロー分類した情報を割り当てるパケット処理を記録するキャッシュのタグ部分とパケット処理を記録するキャッシュのデータ部分と前記キャッシュのタグ部分及びデータ部分の各エントリに対応するフロー管理用のキューの情報割り当て位置が一つ以上あり、更に、前記フロー分類後の割り当て位置が利用中であった場合に自由に割り当て可能なフル・アソシアティブ方式の小容量の前記キャッシュのタグ部分と前記キャッシュのデータ部分と前記フロー管理用のキューとを具備することを特徴とするネットワーク装置。
（解決手段１１）
解決手段８に記載のネットワーク装置において、パケット処理を記録するキャッシュのタグ部分に相当する機能を具備する部位がフロー管理用のキューを具備するデバイス上に実装されており、パケット処理を記録するキャッシュのデータ部分を具備するデバイス上には実装されていないことを特徴とするネットワーク装置。
（解決手段１２）
解決手段１に記載のネットワーク装置において、パケット処理を記録するキャッシュのタグ部分に相当する機能を具備する部位がフロー管理用のキューを具備するデバイス上に実装されており、尚且つ、前記タグ部分がパケット処理を記録するキャッシュのデータ部分を具備するデバ
イス上にも実装されていることを特徴とするネットワーク装置。
（解決手段１３）
解決手段１２に記載のネットワーク装置において、パケット処理を記録するキャッシュに、パケット処理結果が登録されても、フロー管理用のキューへキャッシュ登録通知信号を渡さず、前記フロー管理用キューは、各キューがタイマを持ち、前記フロー管理用キューの先頭のパケットをパケット処理部へ送信した後、前記タイマをスタートさせ、設定された閾値を越えた時点で前記フロー管理用キューに残っているパケットを前記キャッシュへアクセスさせることを特徴とするネットワーク装置。
（解決手段１４）
解決手段１に記載のネットワーク装置において、パケット処理を記録するキャッシュに渡すパケット処理結果を生成するパケット処理部が前記キャッシュと異なるデバイス上に実装されていることを特徴とするネットワーク装置。
（解決手段１５）
キャッシュメモリを用い、先行するパケットに関する処理結果をキャッシュメモリに記録し、先行するパケットと同一処理を行う後続のパケットの処理は該キャッシュメモリの内容を利用する、キャッシュ型のパケット処理方法であって、パケットを受信するステップと、該受信したパケットをフロー毎に分類するステップと、該フロー毎に分類したパケットを、パケットの到着順序を維持してＦＩＦＯ型のキューにフロー毎に記録するステップと、上記キュー内のフローの所定パケットがキャッシュに未登録である場合、該所定パケットを処理して処理結果をキャッシュメモリに格納するとともに、同一キュー内の所定パケット以降のパケットは、キューに待機させておくステップと、上記所定パケットに関する処理結果のキャッシュメモリへの格納の完了の後に、上記キューに待機させておいたパケットの処理を行うステップと、を有するパケット処理方法。
（解決手段１６）
処理結果が該キャッシュメモリ未登録である各フローの先頭パケットは、他のフローで待機中のパケットを追い越して処理されることを特徴とする解決手段１５記載のパケット処理方法。
（解決手段１７）
各キューは対応するキャッシュを有しており、各キューが対応するキャッシュの登録情報を記録するステップと、キャッシュに未登録状態のキューにパケットが到着すると、先頭のパケットのみを処理し、処理結果が上記キャッシュに登録されるのを待つステップと、二つ目以降のパケットは上記キャッシュへの登録が完了した時点で処理が開始されることを特徴とする解決手段１５記載のパケット処理方法。