(57)【要約】【課題】限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることを可能にする。【解決手段】入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出し、前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させ、前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得し、前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う。【選択図】      図１
2018061088.tif 000002
【特許請求の範囲】
【請求項１】
入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出する算出部と、
前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させる第一の取得部と、
前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得する第二の取得部と、
前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う処理部と
を備えることを特徴とする情報処理装置。
【請求項２】
前記第一の取得部は、前記処理情報を前記第一の記憶部から取得する際、さらに、前記第一の識別子に対応するキャッシュ可否情報を前記第一の記憶部から取得し、前記キャッシュ可否情報がキャッシュ禁止を示すとき、前記第二の記憶部への前記記憶を行わず、
前記第一の識別子に対応する前記キャッシュ可否情報は、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、キャッシュ禁止を示す
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第一の記憶部に前記第一の識別子と前記処理情報との対応関係を追加するとき、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、当該第一の識別子および他の前記第一の識別子に対応する前記キャッシュ可否情報をキャッシュ禁止を示す情報に設定する管理部
をさらに備えることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記管理部は、前記第一の記憶部に前記第一の識別子と前記処理情報との前記対応関係を追加するとき、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から削除する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第二の識別子は、前記第一の識別子にハッシュ関数を適用して得られるハッシュ値、あるいは、前記ハッシュ値にさらに演算を施して得られる値である
ことを特徴とする請求項１から請求項４のいずれかに記載の情報処理装置。
【請求項６】
入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出し、
前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させ、
前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得し、
前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う
ことを特徴とする情報処理方法。
【請求項７】
前記処理情報を前記第一の記憶部から取得する際、さらに、前記第一の識別子に対応するキャッシュ可否情報を前記第一の記憶部から取得し、前記キャッシュ可否情報がキャッシュ禁止を示すとき、前記第二の記憶部への前記記憶を行わず、
前記第一の識別子に対応する前記キャッシュ可否情報は、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、キャッシュ禁止を示す
ことを特徴とする請求項６に記載の情報処理方法。
【請求項８】
前記第一の記憶部に前記第一の識別子と前記処理情報との対応関係を追加するとき、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、当該第一の識別子および他の前記第一の識別子に対応する前記キャッシュ可否情報をキャッシュ禁止を示す情報に設定する
ことを特徴とする請求項７に記載の情報処理方法。
【請求項９】
前記第一の記憶部に前記第一の識別子と前記処理情報との前記対応関係を追加するとき、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から削除する
ことを特徴とする請求項８に記載の情報処理方法。
【請求項１０】
コンピュータに、
入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出する算出機能と、
前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させる第一の取得機能と、
前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得する第二の取得機能と、
前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う処理機能と
を実現させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークを介して送受信される情報を処理する、情報処理装置、方法およびプログラムに関する。
【背景技術】
【０００２】
ＣＰＵ（Central Processing Unit）とメインメモリとを備える情報処理装置が通信ネットワークのパケットをソフトウェアで処理する場合、ソフトウェアは図２１の構成例のように構成されることが多い。この構成では、パケットを処理するソフトウェア（パケット処理ソフトウェア）はマルチスレッドに対応し、各スレッドは異なるＣＰＵコアで実行される。
【０００３】
ソフトウェアは、ＮＩＣ（Network Interface Card）経由でパケットを受信し、まず受信処理スレッドで受信処理を行う。受信処理スレッドは、受信したパケットの一次解析を行い、当該パケットを処理するパケット処理スレッドを決定し、当該スレッドにパケットを引き渡す。このとき、受信処理スレッドは、パケットと当該パケットを処理すべきパケット処理スレッドとを対応付けた処理振分表を参照して、パケットの引き渡し先のパケット処理スレッドを決定する。
【０００４】
パケットを受け取ったパケット処理スレッドは、パケットの処理を行い、送信処理スレッドを選択した上で当該パケットを送信処理スレッドへ引き渡す。送信処理スレッドは当該パケットをＮＩＣ経由で送信する。なお、図２１のＮＩＣやスレッドの数、接続関係は一例である。
【０００５】
ここで、情報処理装置によるパケット処理の性能を向上する方法として、たとえば、受信処理スレッドの処理をハードウェアで実行させる方法が考えられる。図２２に、そのためのソフトウェアおよびハードウェアの構成の一例を示す。
【０００６】
受信処理ＨＷ（Hardware）の受信処理回路は、図２１の受信処理スレッドでソフトウェアとして行われていた処理を実装する回路である。受信処理ＨＷはＮＩＣと接続されており、受信処理回路はＮＩＣからパケットを受信し処理する。処理振分表はメインメモリ上にあり、パケット処理ソフトウェアによって管理される。受信処理回路は、処理振分表を参照して、受信したパケットを処理すべきパケット処理スレッドを決定し、パケット処理スレッドに当該パケットを入力する。
【０００７】
しかし、この構成では、受信処理回路が処理振分表を高頻度に参照することにより、バスの帯域、特に、受信処理ＨＷとメインメモリ間の通信帯域が多く消費されてしまう。たとえば、ＮＩＣの通信速度が１００Ｇｂｐｓ、パケットサイズが６４バイトであった場合、パケット受信数は約毎秒１５０Ｍパケットに及ぶ。（一つのパケットを送信するとき、パケットデータ本体の６４バイトに加えて、制御信号等により２０バイト程度の通信帯域が消費される。そのため、この場合の１秒あたりのパケット受信数は、１００Ｇ［ｂｐｓ］／（８［ｂ／Ｂ］×８４［Ｂ／パケット］）で計算できる。）そして、一パケットの振り分けに６４バイトのデータを参照した場合、その消費帯域は約１５０Ｍパケット／ｓ×６４Ｂ／パケット＝約１０ＧＢ／ｓにもなる。このように、パケットを受信する毎に処理振分表を参照すると、多くの通信帯域が消費されるため、情報処理装置によるパケット処理の性能劣化や処理速度の低下の要因となりうる。
【０００８】
上記の課題を解決する方法として、受信処理ＨＷ内にキャッシュメモリを設け、処理振分表の参照結果をキャッシュし再利用する方法がある。処理振分表の参照結果をキャッシュメモリに格納して再利用すると、パケットを受信する毎に処理振分表を参照する場合に比べて、消費通信帯域を減少させることが可能になる。
【０００９】
たとえば、特許文献１に記載の方法は、パケットの情報の部分集合をキャッシュメモリに記憶させる。そして、受信したパケットの情報の部分集合とキャッシュメモリに格納された部分集合とを比較し、キャッシュヒットした場合に受信したパケットを第２のパスへ分岐させている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００４−２６０５３２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかし、一般に、キャッシュメモリとして利用できるハードウェアリソースの量には限界がある。そのため、受信処理回路が参照する処理振分表の大きさ（ワーキングセットサイズ）がリソース量より大きい（キャッシュメモリ容量より大きい）場合、受信処理ＨＷが頻繁にメインメモリを参照することになる。そして、キャッシュメモリを使用することによる消費通信帯域の削減効果が低下してしまう。
【００１２】
本発明の目的は、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることを可能にする、情報処理装置、方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
上述の問題を解決するために、本発明の情報処理装置は、入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出する算出部と、前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させる第一の取得部と、前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得する第二の取得部と、前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う処理部とを備えることを特徴とする。
【００１４】
また、本発明の情報処理方法は、入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出し、前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させ、前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得し、前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行うことを特徴とする。
【００１５】
また、本発明の情報処理プログラムは、コンピュータに、入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出する算出機能と、前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させる第一の取得機能と、前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得する第二の取得機能と、前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う処理機能とを実現させることを特徴とする。
【発明の効果】
【００１６】
本発明の情報処理装置、方法およびプログラムにより、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第一の実施形態の情報処理装置の構成例を示す図である。
【図２】本発明の第一および第二の実施形態の情報処理装置の動作例を示す図である。
【図３】本発明の第二の実施形態の情報処理装置の構成例を示す図である。
【図４】本発明の第二の実施形態の処理振分表の例を示す図である。
【図５】本発明の第二の実施形態の情報処理装置のハードウェア構成例を示す図である。
【図６】本発明の第二の実施形態の情報処理装置の構成例を示す図である。
【図７】本発明の第二の実施形態の情報処理装置の構成例を示す図である。
【図８】本発明の第二の実施形態の第二の記憶部の構成例を示す図である。
【図９】本発明の第三の実施形態の情報処理装置の構成例を示す図である。
【図１０】本発明の第三の実施形態の情報処理装置の構成例を示す図である。
【図１１】本発明の第三の実施形態の情報処理装置の構成例を示す図である。
【図１２】本発明の第三の実施形態の情報処理装置の構成例を示す図である。
【図１３】本発明の第三の実施形態の処理振分表の例を示す図である。
【図１４】本発明の第三の実施形態の情報処理装置の動作例を示す図である。
【図１５】本発明の第四の実施形態の情報処理装置の構成例を示す図である。
【図１６】本発明の第四の実施形態の情報処理装置の構成例を示す図である。
【図１７】本発明の第四の実施形態の情報処理装置の構成例を示す図である。
【図１８】本発明の第四の実施形態の情報処理装置の構成例を示す図である。
【図１９】本発明の第四の実施形態の情報処理装置の動作例を示す図である。
【図２０】本発明の各実施形態のハードウェア構成例を示す図である。
【図２１】一般的なパケット処理ソフトウェアの構成例を示す図である。
【図２２】パケット処理のうち受信処理をハードウェアで置き換える場合の構成例を示す図である。
【発明を実施するための形態】
【００１８】
［第一の実施形態］
本発明の第一の実施の形態について説明する。
【００１９】
図１に本実施形態の情報処理装置１０の構成例を示す。本実施形態の情報処理装置１０は、第一の記憶部１１、第二の記憶部１２、算出部１３、第一の取得部１４、第二の取得部１５および処理部１６により構成される。
【００２０】
算出部１３は、入力データに含まれる第一の識別子に基づいて第一の識別子よりビット数が小さい第二の識別子を算出する部分である。
【００２１】
第一の取得部１４は、第二の識別子に対応する処理情報が第二の記憶部１２に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部１１から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させる部分である。
【００２２】
第二の取得部１５は、第二の識別子に対応する処理情報が第二の記憶部１２に記憶されているとき、第二の識別子に対応する処理情報を第二の記憶部１２から取得する部分である。
【００２３】
処理部１６は、第一の記憶部１１あるいは第二の記憶部１２から取得した処理情報に対応する処理を入力データに対して行う部分である。
【００２４】
このように情報処理装置１０を構成することによって、情報処理装置１０は、入力データに含まれる第一の識別子に基づいて第一の識別子よりビット数が小さい第二の識別子を算出する。そして、情報処理装置１０は、第二の識別子に対応する処理情報が第二の記憶部１２に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部１１から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させる。これにより、情報処理装置１０は、第一の識別子よりビット数が小さい第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させるため、より多くの処理情報を第二の記憶部１２に記憶させることが可能になる。そして、情報処理装置１０は、より多くの処理情報を第二の記憶部１２に記憶させることができるため、第一の記憶部１１から処理情報を取得する頻度を減少させることが可能になる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
【００２５】
次に、図２に本実施形態の情報処理装置１０の動作の例を示す。
【００２６】
まず、算出部１３は、入力データに含まれる第一の識別子に基づいて第一の識別子よりビット数が小さい第二の識別子を算出する（ステップＳ１０１）。
【００２７】
次に、第一の取得部１４は、第二の識別子に対応する処理情報が第二の記憶部１２に記憶されていないとき（ステップＳ１０２でＮＯ）、第一の識別子に対応する処理情報を第一の記憶部１１から取得する（ステップＳ１０３）。また、第一の取得部１４は、第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させる（ステップＳ１０４）。
【００２８】
また、第二の取得部１５は、第二の識別子に対応する処理情報が第二の記憶部１２に記憶されているとき（ステップＳ１０２でＹＥＳ）、第二の識別子に対応する処理情報を第二の記憶部１２から取得する（ステップＳ１０５）。
【００２９】
そして、処理部１６は、第一の記憶部１１あるいは第二の記憶部１２から取得した処理情報に対応する処理を入力データに対して行う（ステップＳ１０６）。
【００３０】
このように動作することによって、情報処理装置１０は、入力データに含まれる第一の識別子に基づいて第一の識別子よりビット数が小さい第二の識別子を算出する。そして、情報処理装置１０は、第二の識別子に対応する処理情報が第二の記憶部１２に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部１１から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させる。これにより、情報処理装置１０は、第一の識別子よりビット数が小さい第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させるため、より多くの処理情報を第二の記憶部１２に記憶させることが可能になる。そして、情報処理装置１０は、より多くの処理情報を第二の記憶部１２に記憶させることができるため、第一の記憶部１１から処理情報を取得する頻度を減少させることが可能になる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
【００３１】
以上で説明したように、本発明の第一の実施形態では、情報処理装置１０は、入力データに含まれる第一の識別子に基づいて第一の識別子よりビット数が小さい第二の識別子を算出する。そして、情報処理装置１０は、第二の識別子に対応する処理情報が第二の記憶部１２に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部１１から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
【００３２】
［第二の実施形態］
次に、本発明の第二の実施の形態について説明する。本実施形態では、第一の実施形態の情報処理装置について、より具体的に説明する。
【００３３】
まず、図３に本実施形態の情報処理装置１００の構成例を示す。本実施形態の情報処理装置１００は、通信ＩＦ（Interface）部１０１、パケット受信処理部１０２、パケット処理部１０３、パケット送信処理部１０４および第一の記憶部１１により構成される。パケット受信処理部１０２は、図１の第二の記憶部１２、算出部１３、第一の取得部１４、第二の取得部１５および処理部１６に相当する。また、図３の第一の記憶部１１は図１の第一の記憶部１１に相当する。なお、図３に示す構成要素の数や接続関係は一例である。また、本実施形態の説明において、情報処理装置１００は複数のパケット処理部１０３を備えるものとする。
【００３４】
情報処理装置１００は、通信ＩＦ部１０１を介して通信ネットワークと接続し、他の情報処理装置や情報処理システムと通信を行う装置である。
【００３５】
通信ＩＦ部１０１は、通信ネットワークと接続し通信を行うための通信インタフェースである。
【００３６】
パケット処理部１０３は、パケット受信処理部１０２からパケットを受け取り、受け取ったパケットに対する処理を行う部分である。また、パケット処理部１０３は、処理済みのパケットを送信するようパケット送信処理部１０４に要求する。パケット処理部１０３がパケットに対して行う処理は、たとえば、ルーティング、フィルタリング、ＤＰＩ（Deep Packet Inspection）、暗号化・復号、カプセル化・デカプセル化、のいずれか一つ以上の処理である。ただし、本実施形態では、パケット処理部１０３がパケットに対して行う処理は、これらの処理に限定されない。
【００３７】
パケット送信処理部１０４は、パケット処理部１０３から受け取ったパケットを通信ＩＦ部１０１経由で通信ネットワークへ送信する部分である。パケット送信処理部１０４は、パケットの送信に際し、たとえば、ＱｏＳ（Quality of Service）制御を行ってもよい。
【００３８】
パケット受信処理部１０２は、通信ＩＦ部１０１からパケットを受信し、第一の記憶部１１の処理振分表を参照して当該パケットを処理すべきパケット処理部１０３を特定し、当該パケットを特定したパケット処理部１０３に渡す部分である。
【００３９】
第一の記憶部１１は、パケット受信処理部１０２が受信したパケットと当該パケットを処理すべきパケット処理部１０３とを対応付けた処理振分表を記憶する部分である。第一の記憶部１１は、たとえば、プロトコル毎に処理振分表を記憶する。
【００４０】
図４に処理振分表の例を示す。図４の（ａ）は、ＩＥＥＥ（Institute of Electrical and Electronic Engineers）８０２．１ａｄ（ＱｉｎＱ）プロトコル用の処理振分表の例である。また、図４の（ｂ）は、ＩＰｖ（Internet Protocol version）６  ＧＲＥ（Generic Routing Encapsulation）プロトコル用の処理振分表の例である。
【００４１】
ＩＥＥＥ８０２．１ａｄプロトコルの場合、パケット受信処理部１０２は処理振分表を参照して、パケットヘッダ中のＯｕｔｅｒ  ＶＬＡＮ（Virtual LAN）  ＩＤ（Identification）およびＩｎｎｅｒ  ＶＬＡＮ  ＩＤに対応するパケット処理部１０３の情報を取得する。この参照の基となる情報（ＩＥＥＥ８０２．１ａｄプロトコルの場合、Ｏｕｔｅｒ  ＶＬＡＮ  ＩＤおよびＩｎｎｅｒ  ＶＬＡＮ  ＩＤ）をキーと呼ぶこととする。このキーが、第一の実施形態の第一の識別子に相当する。また、このキーに対応するパケット処理部１０３の情報が、第一の実施形態の処理情報に相当する。
【００４２】
たとえば、図４の（ａ）は、Ｏｕｔｅｒ  ＶＬＡＮ  ＩＤが１１であり、Ｉｎｎｅｒ  ＶＬＡＮ  ＩＤが２０１であるパケットをパケット受信処理部１０２が受信した場合、当該パケットはパケット処理部１０３−２に振り分けられるべきであることを示している。また、ＩＰｖ６  ＧＲＥプロトコルの場合、送信元ＩＰｖ６アドレス、送信先ＩＰｖ６アドレス、およびＧＲＥキーがキーとして用いられる。
【００４３】
このように、第一の記憶部１１は、キー（第一の識別子）毎に、当該キーに対応するパケットの振分先のパケット処理部１０３の識別子（処理情報）を記憶する。
【００４４】
ハッシュ値は、キーに対してハッシュ関数を適用して得られる値である。また、タグ値は、パケット受信処理部１０２で用いられるタグの値で、ハッシュ値あるいはハッシュ値に所定の演算を施した値である。本実施形態では、タグ値としてハッシュ値の下位１６ビットを用いるものとする。このタグ値が第一の実施形態の第二の識別子に相当する。なお、ハッシュ値およびタグ値はキーから計算できるものであるため、第一の記憶部１１に記憶させておいても良いし、必要となった場合にパケット受信処理部１０２等で計算しても良い。
【００４５】
次に、図５に情報処理装置１００のハードウェア構成の例を示す。この例では、情報処理装置１００は、ＣＰＵ１００１、メモリ１００２、受信処理ＨＷ１００３、および、通信インタフェース１００４を含む。メモリ１００２は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、補助記憶装置等によって構成される。受信処理ＨＷ１００３は、たとえば、ＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）である。通信インタフェース１００４は、通信ネットワークに接続するためのインタフェースである。
【００４６】
この例の場合、パケット処理部１０３およびパケット送信処理部１０４は、メモリ１００２に格納されるコンピュータ・プログラムを読み込んで実行するＣＰＵ１００１によって構成される。処理振分表はメモリ１００２に格納されている。パケット受信処理部１０２は、受信処理ＨＷ１００３によって構成される。また、通信ＩＦ部１０１は、通信インタフェース１００４によって構成される。なお、情報処理装置１００を構成する各部は図５と異なるハードウェア要素によって構成されてもよい。
【００４７】
次に、図６に本実施形態のパケット受信処理部１０２の構成例を示す。パケット受信処理部１０２は、キー抽出部１０５、ハッシュ値計算部１０６、パケット振分部１０７、キャッシュメモリ制御部１０８、処理振分表検索部１０９およびメモリアクセス部１１０によって構成される。キー抽出部１０５およびハッシュ値計算部１０６が図１の算出部１３に、キャッシュメモリ制御部１０８が図１の第二の取得部１５に、処理振分表検索部１０９が図１の第一の取得部１４に相当する。
【００４８】
キー抽出部１０５は、受信したパケットのパケットヘッダを参照し、当該パケットのプロトコルを判定し、当該プロトコル用のキー（第一の識別子）をパケットヘッダから抽出する部分である。
【００４９】
ハッシュ値計算部１０６は、キー抽出部１０５で抽出したキーに基づいてハッシュ値を計算する部分である。本実施形態では、ハッシュ値計算部１０６は、たとえば、キー抽出部１０５で判定されたプロトコルの識別子と、抽出されたキーとをハッシュ関数に入力することでハッシュ値を計算する。また、ハッシュ値計算部１０６がハッシュ値に基づいてタグ値を計算し、このタグ値をパケット受信処理部１０２内の各部が使用しても良い。ハッシュ値計算部１０６がタグ値を算出しない場合は、キャッシュメモリ制御部１０８が図１の算出部１３の第二の識別子（タグ値）を算出する機能を実施する。
【００５０】
パケット振分部１０７は、受信したパケットをキーに対応するパケット処理部１０３へ振り分ける部分である。本実施形態では、パケット振分部１０７は、受信したパケットのプロトコル識別子、キーおよびハッシュ値（およびタグ値）の情報を基に、キャッシュメモリ制御部１０８に当該パケットを処理すべきパケット処理部１０３を問い合わせる。そして、パケット振分部１０７は、得られたパケット処理部１０３へ当該パケットを入力する。このとき、パケット振分部１０７は、たとえば、メモリアクセス部１１０に、メモリ１００２上に用意された、振分先のパケット処理部１０３用のパケット受信用メモリ領域に当該パケットをコピーさせる。
【００５１】
キャッシュメモリ制御部１０８は、パケット振分部１０７からの問い合わせを受けて、当該パケットを処理すべきパケット処理部１０３の情報をパケット振分部１０７へ返す部分である。本実施形態では、キャッシュメモリ制御部１０８は、パケット振分部１０７から受け取ったプロトコル識別子、キーおよびハッシュ値（およびタグ値）の情報に基づいて、キャッシュメモリ（第二の記憶部１２）を参照して当該パケットを処理すべきパケット処理部１０３を決定する。そして、決定したパケット処理部１０３の情報（処理情報）をパケット振分部１０７へ返す。キャッシュメモリ制御部１０８は、キャッシュメモリの情報からその決定が行えない場合、処理振分表検索部１０９に第一の記憶部１１の処理振分表の検索を依頼する。キャッシュメモリ制御部１０８は、その検索結果を自身が持つキャッシュメモリ（第二の記憶部１２）に記憶させる。
【００５２】
処理振分表検索部１０９は、キャッシュメモリ制御部１０８から受信したプロトコル識別子およびキーの情報を基に、第一の記憶部１１の処理振分表を検索し、得られた結果をキャッシュメモリ制御部１０８に返す部分である。処理振分表検索部１０９が返す検索結果には、振分先の情報（パケット処理部１０３の識別子）（処理情報）が含まれる。
【００５３】
メモリアクセス部１１０は、第一の記憶部１１に対するリードおよびライト要求を受け付け、要求に基づいてメモリアクセスを行い、結果を要求元へ渡す部分である。
【００５４】
次に、図７に、本実施形態のキャッシュメモリ制御部１０８の構成例を示す。キャッシュメモリ制御部１０８は、キャッシュヒット判定部１１１およびキャッシュ更新部１１２により構成される。
【００５５】
第二の記憶部１２（キャッシュメモリ）は、タグ値（第二の識別子）に対応する振分先の情報（パケット処理部１０３の識別子）（処理情報）を記憶する部分である。
【００５６】
図８に、第二の記憶部１２が用いるデータ構造の一例を示す。なお、本実施形態では、第二の記憶部１２は、データ格納に４−ｗａｙセットアソシエイティブ方式、ライン入れ替えにＬＲＵ（Least Recently Used）方式を用い、ライン数はＮであるとする。この場合、ライン数がＮ、ｗａｙ数が４であることから、第二の記憶部１２は最大で４Ｎのエントリを記憶することができる。
【００５７】
第二の記憶部１２の各エントリは、たとえば、フラグ、タグ、およびデータから構成される。フラグは、当該エントリが使用中か否かや、ＬＲＵ処理に関する情報を含む。タグは、一般的なキャッシュメモリでは、メインメモリのアドレスとキャッシュメモリのエントリとの対応付けを行うための情報である。一般的なキャッシュメモリでは、タグは、データのメインメモリ上のアドレスの上位ビット列（例：フレームアドレス）を記憶する。これに対し、本実施形態の第二の記憶部１２のタグは、タグ値を記憶する。本実施形態では、タグ値は、当該エントリに対応するハッシュ値あるいはハッシュ値に所定の演算を施した値、たとえば、ハッシュ値の下位１６ビットである。このタグ値が第一の実施形態の第二の識別子に相当する。
【００５８】
また、一般的なキャッシュメモリでは、データは、当該エントリが対応するメインメモリのアドレスに記憶されているデータを記憶する。これに対し、本実施形態の第二の記憶部１２のデータは、当該エントリが対応する第一の記憶部１１のエントリの振分先の情報（パケット処理部１０３の識別子）（処理情報）を記憶する。さらに、データは、当該エントリが対応する第一の記憶部１１のエントリのハッシュ値を記憶しても良い。
【００５９】
このように、本実施形態の第二の記憶部１２は、タグ値（第二の識別子）と振分先の情報（処理情報）とを対応付けて記憶する。タグ値のビット数は、キー（第一の識別子）のビット数より小さい。本実施形態の場合、タグ値にハッシュ値の下位１６ビットを使用するため、タグ値のビット数はキーのビット数より小さくなる。ハッシュ値のビット数がキーのビット数より小さければ、タグ値にハッシュ値を使用しても良い。このように、本実施形態では、一つのエントリに対する第二の記憶部１２の所要容量が小さくなるため、第二の記憶部１２は、より多くのエントリを記憶できるようになる。
【００６０】
キャッシュヒット判定部１１１は、プロトコル識別子、キーおよびハッシュ値（およびタグ値）の情報をパケット振分部１０７から受け取り、タグ値に対応する振分先情報が第二の記憶部１２内にあるか否か（キャッシュヒットするか否か）を判定する部分である。プロトコル識別子、キーおよびハッシュ値の情報は、処理対象のパケットに関してキャッシュメモリ制御部１０８が処理している間、キャッシュメモリ制御部１０８内に一時記憶され、キャッシュメモリ制御部１０８を構成する各部から参照できるものとする。
【００６１】
キャッシュヒット判定部１１１は、ハッシュ値をライン数Ｎで割った余りを計算し、それをラインインデックスとして用いる。また、キャッシュヒット判定部１１１は、ハッシュ値からタグ値を計算する。（あるいは、ハッシュ値計算部１０６が算出したタグ値を使用する。）そして、キャッシュヒット判定部１１１は、ラインインデックスが示す第二の記憶部１２内のラインに当該タグ値を持つエントリがあるかどうか確認し、あればキャッシュヒットしたものとし、なければキャッシュヒットしなかったものとする。
【００６２】
キャッシュヒット判定部１１１は、キャッシュヒットした場合、当該タグ値に対応する振分先の情報（処理情報）を第二の記憶部１２から取得してパケット振分部１０７へ返す。また、キャッシュヒットした場合、キャッシュヒット判定部１１１は、第二の記憶部１２の当該ラインのＬＲＵ情報を更新してもよい。
【００６３】
キャッシュヒット判定部１１１は、キャッシュヒットしなかった場合、プロトコル識別子およびキーの情報を入力として、処理振分表検索部１０９に処理振分表の検索を依頼する。そして、検索を依頼された処理振分表検索部１０９は、プロトコル識別子およびキーに対応する振分先の情報を第一の記憶部１１から取得し、パケット振分部１０７へ渡す。
【００６４】
キャッシュ更新部１１２は、第二の記憶部１２に対しエントリの追加や削除を行う部分である。本実施形態では、キャッシュ更新部１１２は、処理振分表検索部１０９から受け取った振分先の情報を第二の記憶部１２に記憶させる。
【００６５】
第二の記憶部１２に振分先の情報を追加する際、まず、キャッシュ更新部１１２は、ハッシュ値と振分先の情報を受け取る。次に、キャッシュ更新部１１２は、ハッシュ値をライン数Ｎで割った余りを計算することで、ラインインデックスを計算する。また、キャッシュ更新部１１２は、タグ値を計算する。タグ値は、たとえば、ハッシュ値の下位１６ビットである。そして、ラインインデックスが示す第二の記憶部１２のラインに空きエントリがある場合、キャッシュ更新部１１２は当該空きエントリにタグ値および振分先の情報を記憶させる。当該ラインに空きエントリがない場合、キャッシュ更新部１１２は、たとえばＬＲＵ方式で新たなデータで置き換えるエントリを一つ選択し、当該エントリにタグ値および振分先の情報を記憶させる。
【００６６】
このように情報処理装置１００を構成することによって、情報処理装置１００は、入力データに含まれるキーに基づいてキーよりビット数が小さいタグ値を算出する。そして、情報処理装置１００は、タグ値に対応する振分先の情報が第二の記憶部１２に記憶されていないとき、キーに対応する振分先の情報を第一の記憶部１１から取得し、タグ値と振分先の情報とを対応付けて第二の記憶部１２に記憶させる。これにより、情報処理装置１００は、キーよりビット数が小さいタグ値と振分先の情報とを対応付けて第二の記憶部１２に記憶させるため、より多くの振分先の情報を第二の記憶部１２に記憶させることが可能になる。そして、情報処理装置１００は、より多くの振分先の情報を第二の記憶部１２に記憶させることができるため、第一の記憶部１１から振分先の情報を取得する頻度を減少させることが可能になる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
【００６７】
次に、図２を用いて本実施形態の情報処理装置１００のパケット受信処理部１０２およびパケット処理部１０３の動作例について説明する。なお、本動作例は、タグ値をキャッシュメモリ制御部１０８が計算する場合の例である。キャッシュメモリ制御部１０８の代わりにハッシュ値計算部１０６がタグ値を計算しても良い。その場合は、キャッシュメモリ制御部１０８は、ハッシュ値計算部１０６が計算したタグ値を使用する。
【００６８】
まず、パケット受信処理部１０２のキー抽出部１０５は、通信ＩＦ部１０１からパケットを受信すると、受信したパケットのパケットヘッダを参照して当該パケットのプロトコルを判定し、当該プロトコル用のキー（第一の識別子）をパケットヘッダから抽出する。
【００６９】
次に、パケット受信処理部１０２のハッシュ値計算部１０６は、パケット受信処理部１０２が判定したプロトコルの識別子と抽出したキーとをハッシュ関数に入力して得られるハッシュ値を計算する。
【００７０】
次に、パケット受信処理部１０２のキャッシュメモリ制御部１０８のキャッシュヒット判定部１１１は、ハッシュ値に基づいてタグ値（第二の識別子）を算出する（ステップＳ１０１）。そして、キャッシュヒット判定部１１１は、算出したタグ値に対応するデータが第二の記憶部１２にあるか否か（キャッシュヒットするか否か）の判定を実施する。そして、キャッシュヒットすると判定した場合（ステップＳ１０２でＹＥＳ）、キャッシュヒット判定部１１１はタグ値に対応する振分先の情報（処理情報）を第二の記憶部１２から取得する（ステップＳ１０５）。
【００７１】
キャッシュヒット判定部１１１がキャッシュヒットしないと判定した場合（ステップＳ１０２でＮＯ）、パケット受信処理部１０２の処理振分表検索部１０９は、プロトコル識別子およびキーの情報を基に、第一の記憶部１１を検索して対応するエントリを参照する。そして、処理振分表検索部１０９は、第一の記憶部１１から振分先の情報を取得する（ステップＳ１０３）。なお、処理振分表検索部１０９は、第一の記憶部１１が記憶している処理振分表を参照する際、メモリアクセス部１１０を使用する。
【００７２】
また、キャッシュメモリ制御部１０８のキャッシュ更新部１１２は、ハッシュ値から算出したタグ値および振分先の情報に対するキャッシュのエントリを第二の記憶部１２に記憶させる（ステップＳ１０４）。
【００７３】
そして、パケット受信処理部１０２のパケット振分部１０７は、ステップＳ１０３あるいはステップＳ１０５で得られた振分先の情報が示すパケット処理部１０３へ受信したパケットを入力する。そして、パケット処理部１０３は入力されたパケットに対する処理を行う（ステップＳ１０６）。
【００７４】
このように動作することによって、情報処理装置１００は、入力データに含まれるキーに基づいてキーよりビット数が小さいタグ値を算出する。そして、情報処理装置１００は、タグ値に対応する振分先の情報が第二の記憶部１２に記憶されていないとき、キーに対応する振分先の情報を第一の記憶部１１から取得し、タグ値と振分先の情報とを対応付けて第二の記憶部１２に記憶させる。これにより、情報処理装置１００は、キーよりビット数が小さいタグ値と振分先の情報とを対応付けて第二の記憶部１２に記憶させるため、より多くの振分先の情報を第二の記憶部１２に記憶させることが可能になる。そして、情報処理装置１００は、より多くの振分先の情報を第二の記憶部１２に記憶させることができるため、第一の記憶部１１から振分先の情報を取得する頻度を減少させることが可能になる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
【００７５】
以上で説明したように、本発明の第二の実施形態では、第一の実施形態と同様に、情報処理装置１００は、入力データに含まれる第一の識別子に基づいて第一の識別子よりビット数が小さい第二の識別子を算出する。そして、情報処理装置１００は、第二の識別子に対応する処理情報が第二の記憶部１２に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部１１から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
【００７６】
［第三の実施形態］
次に、本発明の第三の実施の形態について説明する。本実施形態は、第一および第二の実施形態の処理振分表に、キャッシュ可否情報を追加した形態である。
【００７７】
第一および第二の実施形態の情報処理装置は、第一の識別子（キー）よりビット数が小さい第二の識別子（タグ値）を算出し、第二の識別子に対する処理情報（振分先の情報）を第二の記憶部１２に記憶させる。これにより、より多くの処理情報を第二の記憶部１２に記憶させることが可能になるため、第一の記憶部１１から処理情報を取得する頻度を減少させることが可能になる。
【００７８】
しかし、第一の識別子（キー）から第二の識別子（タグ値）を算出してビット数を減らすと、異なる第一の識別子から同一の第二の識別子が算出される可能性がある。異なる第一の識別子から同一の第二の識別子が算出されると、情報処理装置は誤った処理を行う可能性がある。
【００７９】
たとえば、第一の識別子Ａに基づいて算出された第二の識別子Ｂに対応する処理情報がすでに第二の記憶部１２に記憶されているとする。この状態で、情報処理装置が第一の識別子Ｃに基づいて第二の識別子Ｂを算出すると、情報処理装置は第一の識別子Ｃに対する処理情報ではなく、第一の識別子Ａに対する処理情報を第二の記憶部１２から取得することになる。
【００８０】
本実施形態では、このような状態を避けるため、同じ第二の識別子に第一の記憶部１１内の複数のエントリが対応するとき、第一の記憶部１１は、それらのエントリについてキャッシュ禁止を示すキャッシュ可否情報を記憶する。そして、第一の記憶部１１から取得したエントリのキャッシュ可否情報がキャッシュ禁止を示しているときには、第二の記憶部１２にキャッシュしないことで、同じ第二の識別子に対応する他のエントリが第二の記憶部１２に記憶されないようにする。
【００８１】
まず、図９に本実施形態の情報処理装置２０の構成例を示す。情報処理装置２０は、第一の記憶部２１、第二の記憶部１２、算出部１３、第一の取得部２４、第二の取得部１５および処理部１６により構成される。第二の記憶部１２、算出部１３、第二の取得部１５および処理部１６については第一の実施形態と同様のため説明を省略する。
【００８２】
第一の記憶部２１は、第一の識別子に対応する処理情報およびキャッシュ可否情報を記憶する部分である。同じ第二の識別子を算出する第一の識別子が第一の記憶部２１内に複数記憶されているとき、それらの第一の識別子に対応するキャッシュ可否情報はキャッシュ禁止を示す。
【００８３】
第一の取得部２４は、第二の識別子に対応する処理情報が第二の記憶部１２に記憶されていないとき、第一の識別子に対応する処理情報およびキャッシュ可否情報を第一の記憶部２１から取得する部分である。また、第一の取得部２４は、キャッシュ可否情報がキャッシュ禁止を示していないとき、第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させる。
【００８４】
次に、本実施形態の情報処理装置２０のより具体的な例について説明する。
【００８５】
図１０から図１２に本実施形態の情報処理装置２００の構成例を示す。本実施形態の情報処理装置２００は、通信ＩＦ部１０１、パケット受信処理部２０２、パケット処理部１０３、パケット送信処理部１０４および第一の記憶部２１により構成される。通信ＩＦ部１０１、パケット処理部１０３およびパケット送信処理部１０４については第二の実施形態と同様のため説明を省略する。
【００８６】
パケット受信処理部２０２は、キー抽出部１０５、ハッシュ値計算部１０６、パケット振分部１０７、キャッシュメモリ制御部２０８、処理振分表検索部１０９、メモリアクセス部１１０および第二の記憶部１２により構成される。キー抽出部１０５、ハッシュ値計算部１０６、パケット振分部１０７、処理振分表検索部１０９、メモリアクセス部１１０および第二の記憶部１２については第二の実施形態と同様のため説明を省略する。
【００８７】
キャッシュメモリ制御部２０８は、キャッシュヒット判定部１１１、キャッシュ更新部１１２およびキャッシュ可否判定部２１３により構成される。キャッシュヒット判定部１１１およびキャッシュ更新部１１２については第二の実施形態と同様のため説明を省略する。
【００８８】
第一の記憶部２１は、キー（第一の識別子）毎に、当該キーに対応するパケットの振分先の情報（処理情報）およびキャッシュ可否情報を記憶する部分である。キャッシュ可否情報は、当該キーに関する情報をパケット受信処理部２０２がキャッシュしてよいか否かを示す情報である。
【００８９】
本実施形態では、キャッシュ可否情報は、図１３のように、第一の記憶部２１の処理振分表にあらかじめ記憶されているものとする。また、第一の識別子（キー）に対応するキャッシュ可否情報は、当該第一の識別子に基づいて算出される第二の識別子（タグ値）と第一の記憶部１１に記憶されている他の第一の識別子に基づいて算出される第二の識別子が同一のとき、キャッシュ禁止を示す。
【００９０】
キャッシュ可否判定部２１３は、処理振分表検索部１０９から得られる検索結果（処理対象パケットの振分先の情報およびキャッシュ可否情報）を基に当該結果のキャッシュ可否を判定する部分である。具体的には、キャッシュ可否判定部２１３は、キャッシュ可否情報が「禁止」でなければ、当該結果をキャッシュすることとし、キャッシュ更新部１１２にキャッシュの更新を依頼する。また、キャッシュ可否判定部２１３は、振分先の情報を、パケット振分部１０７に渡す。
【００９１】
このように情報処理装置２０（２００）を構成することによって、情報処理装置２０（２００）は、入力データに含まれる第一の識別子（キー）に基づいて第一の識別子よりビット数が小さい第二の識別子（タグ値）を算出する。そして、情報処理装置２０（２００）は、第二の識別子に対応する処理情報が第二の記憶部１２に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部２１から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させる。これにより、情報処理装置２０（２００）は、第一の識別子よりビット数が小さい第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させるため、より多くの処理情報を第二の記憶部１２に記憶させることが可能になる。そして、情報処理装置２０（２００）は、より多くの処理情報を第二の記憶部１２に記憶させることができるため、第一の記憶部２１から処理情報を取得する頻度を減少させることが可能になる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
【００９２】
また、本実施形態の情報処理装置２０（２００）では、第一の記憶部２１は、キャッシュ可否情報を記憶する。第一の識別子（キー）に対応するキャッシュ可否情報は、当該第一の識別子に基づいて算出される第二の識別子（タグ値）と第一の記憶部２１に記憶されている他の第一の識別子に基づいて算出される第二の識別子が同一のとき、キャッシュ禁止を示す。そして、情報処理装置２０（２００）が第一の記憶部２１から処理情報およびキャッシュ可否情報を取得し、キャッシュ可否情報がキャッシュ禁止を示す場合、処理情報を第二の記憶部１２へ記憶させない。これにより、情報処理装置２０（２００）が第二の記憶部１２を検索するときに、適切でないエントリがキャッシュヒットする可能性を排除することが可能になる。
【００９３】
次に、図１４に本実施形態の情報処理装置２０（２００）の動作例を示す。ステップＳ２０１、ステップＳ２０２、ステップＳ２０６、ステップＳ２０７については、図２のステップＳ１０１、ステップＳ１０２、ステップＳ１０５、ステップＳ１０６と同様である。第一および第二の実施形態と同様の部分については、説明を省略する。
【００９４】
本実施形態では、情報処理装置２０（情報処理装置２００）は、ステップＳ２０３において、ステップＳ２０１で算出した第二の識別子に対応する処理情報およびキャッシュ可否情報を第一の記憶部２１から取得する（ステップＳ２０３）。そして、取得したキャッシュ可否情報がキャッシュ禁止を示していなければ（ステップＳ２０４でＮＯ）、第二の識別子と処理情報を対応付けて第二の記憶部１２へ記憶させる（ステップＳ２０５）。キャッシュ可否情報がキャッシュ禁止を示していれば（ステップＳ２０４でＹＥＳ）、第一の記憶部２１から取得した処理情報を第二の記憶部１２へ記憶させない。
【００９５】
このように動作することによって、情報処理装置２０（２００）は、入力データに含まれる第一の識別子（キー）に基づいて第一の識別子よりビット数が小さい第二の識別子（タグ値）を算出する。そして、情報処理装置２０（２００）は、第二の識別子に対応する処理情報が第二の記憶部１２に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部２１から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させる。これにより、情報処理装置２０（２００）は、第一の識別子よりビット数が小さい第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させるため、より多くの処理情報を第二の記憶部１２に記憶させることが可能になる。そして、情報処理装置２０（２００）は、より多くの処理情報を第二の記憶部１２に記憶させることができるため、第一の記憶部２１から処理情報を取得する頻度を減少させることが可能になる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
【００９６】
以上で説明したように、本発明の第三の実施形態では、第一および第二の実施形態と同様に、情報処理装置２０（２００）は、入力データに含まれる第一の識別子に基づいて第一の識別子よりビット数が小さい第二の識別子を算出する。そして、情報処理装置２０（２００）は、第二の識別子に対応する処理情報が第二の記憶部１２に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部２１から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
【００９７】
また、本実施形態の情報処理装置２０（２００）では、第一の記憶部２１は、キャッシュ可否情報を記憶する。第一の識別子（キー）に対応するキャッシュ可否情報は、当該第一の識別子に基づいて算出される第二の識別子（タグ値）と第一の記憶部２１に記憶されている他の第一の識別子に基づいて算出される第二の識別子が同一のとき、キャッシュ禁止を示す。そして、情報処理装置２０（２００）が第一の記憶部２１から処理情報およびキャッシュ可否情報を取得し、キャッシュ可否情報がキャッシュ禁止を示す場合、処理情報を第二の記憶部１２へ記憶させない。これにより、情報処理装置２０（２００）が第二の記憶部１２を検索するときに、適切でないエントリがキャッシュヒットする可能性を排除することが可能になる。
【００９８】
［第四の実施形態］
次に、本発明の第四の実施の形態について説明する。本実施形態は、第三の実施形態の情報処理装置２０（２００）に対して、第一の記憶部２１の処理振分表に処理情報を追加する機能を追加した形態である。
【００９９】
まず、図１５に本実施形態の情報処理装置３０の構成例を示す。情報処理装置３０は、第一の記憶部２１、第二の記憶部１２、算出部１３、第一の取得部３４、第二の取得部１５、処理部１６および管理部３７により構成される。図１５では、第三の実施形態の情報処理装置２０（図９）に対して、管理部３７を追加している。
【０１００】
第一の記憶部２１、第二の記憶部１２、算出部１３、第二の取得部１５および処理部１６については、第三の実施形態と同様のため、説明を省略する。
【０１０１】
管理部３７は、第一の記憶部２１が記憶する第一の識別子と処理情報との対応関係を管理する部分である。本実施形態では、管理部３７は、第一の記憶部２１に第一の識別子と処理情報との対応関係を追加するとき、当該第一の識別子に基づいて第二の識別子を算出する。そして、算出した第二の識別子と第一の記憶部２１に記憶されている他の第一の識別子に基づいて算出される第二の識別子が同一のとき、当該第一の識別子および他の第一の識別子に対応するキャッシュ可否情報を、キャッシュ禁止を示す情報に設定する。つまり、追加するエントリに対応する第二の識別子と同一の第二の識別子に対応する他のエントリが第一の記憶部２１にすでに存在するとき、追加するエントリのキャッシュ可否情報をキャッシュ禁止を示す情報に設定する。また、追加するエントリに対応する第二の識別子と同一の第二の識別子に対応する他のエントリのキャッシュ可否情報についても、キャッシュ禁止を示す情報に設定する。
【０１０２】
第一の取得部３４は、第三の実施形態の動作に加えて、管理部３７が算出した第二の識別子と第一の記憶部２１に記憶されている他の第一の識別子に基づいて算出される第二の識別子が同一のとき、当該第二の識別子に対応する処理情報を第二の記憶部１２から削除する。つまり、管理部３７がキャッシュ可否情報をキャッシュ禁止を示す情報に設定したとき、当該第二の識別子に対応する処理情報を第二の記憶部１２から削除する。
【０１０３】
次に、本実施形態の情報処理装置について、より具体的に説明する。図１６に本実施形態の情報処理装置３００の構成例を示す。情報処理装置３００は、通信ＩＦ部１０１、パケット受信処理部３０２、パケット処理部１０３、パケット送信処理部１０４、第一の記憶部２１および管理部３１４により構成される。図１６では、第三の実施形態の情報処理装置２００（図１０）に対して管理部３１４を追加している。通信ＩＦ部１０１、パケット処理部１０３、パケット送信処理部１０４および第一の記憶部２１については第三の実施形態と同様のため、説明を省略する。
【０１０４】
また、図１７に、パケット受信処理部３０２の構成例を示す。パケット受信処理部３０２は、キー抽出部１０５、ハッシュ値計算部１０６、パケット振分部１０７、キャッシュメモリ制御部３０８、処理振分表検索部１０９、メモリアクセス部１１０および第二の記憶部１２により構成される。キー抽出部１０５、ハッシュ値計算部１０６、パケット振分部１０７、処理振分表検索部１０９、メモリアクセス部１１０および第二の記憶部１２については、第三の実施形態と同様のため、説明を省略する。
【０１０５】
また、図１８にキャッシュメモリ制御部３０８の構成例を示す。キャッシュメモリ制御部３０８は、キャッシュヒット判定部１１１、キャッシュ可否判定部２１３およびキャッシュ更新部３１２により構成される。キャッシュヒット判定部１１１およびキャッシュ可否判定部２１３については第三の実施形態と同様のため説明を省略する。
【０１０６】
管理部３１４は、図１５の管理部３７に相当し、第一の記憶部２１のキーと振分先情報との対応関係を管理する部分である。本実施形態では、管理部３１４は、第一の記憶部２１の処理振分表にエントリを追加する際、当該新規エントリが第二の記憶部１２にキャッシュされる際に用いられるタグ値を算出し、当該タグ値と同じタグ値を持つ他のエントリがないか確認する。そして、このエントリの追加によって同じタグ値を持つエントリが複数存在することになる場合、管理部３１４は、それらのエントリすべてについてキャッシュ可否情報を「禁止」に設定する。また、管理部３１４は、それらのエントリすべてについて、第二の記憶部１２のエントリを削除するようキャッシュメモリ制御部３０８のキャッシュ更新部３１２に依頼する。
【０１０７】
キャッシュ更新部３１２は、第三の実施形態のキャッシュ更新部１１２と同様の部分である。本実施形態のキャッシュ更新部３１２は、さらに、第二の記憶部１２のエントリの削除を行う場合、削除するエントリのハッシュ値を受け取る。そして、キャッシュ更新部３１２は、当該ハッシュ値からラインインデックスとタグ値を計算し、それらに対応する第二の記憶部１２内のエントリを削除する（たとえば、使用中フラグをオフにする）。
【０１０８】
また、第一の記憶部２１から処理情報を削除する場合には、処理情報の削除によって当該第二の識別子に対応する処理情報が第一の記憶部２１内に一つしか存在しなくなるとき、管理部３１４が当該第二の識別子に対応するキャッシュ可否情報を「可」にすると良い。
【０１０９】
このように情報処理装置３０（３００）を構成することによって、情報処理装置３０（３００）は、入力データに含まれる第一の識別子（キー）に基づいて第一の識別子よりビット数が小さい第二の識別子（タグ値）を算出する。そして、情報処理装置３０（３００）は、第二の識別子に対応する処理情報が第二の記憶部１２に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部２１から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させる。これにより、情報処理装置３０（３００）は、第一の識別子よりビット数が小さい第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させるため、より多くの処理情報を第二の記憶部１２に記憶させることが可能になる。そして、情報処理装置３０（３００）は、より多くの処理情報を第二の記憶部１２に記憶させることができるため、第一の記憶部２１から処理情報を取得する頻度を減少させることが可能になる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
【０１１０】
また、本実施形態の情報処理装置３０（３００）は、第一の記憶部２１に処理情報を追加する際、第二の識別子の重複を確認し、重複する場合、第一の記憶部２１にキャッシュ禁止を示す情報を記憶させる。また、当該第二の識別子に対応する処理情報を第二の記憶部１２から削除する。これにより、情報処理装置３０（３００）は、第二の識別子の重複による誤処理を避けつつ、第一の記憶部２１に処理情報を追加することが可能になる。
【０１１１】
次に、図１９に本実施形態の情報処理装置３０（３００）の、第一の記憶部２１に処理情報を追加するときの動作例を示す。なお、入力パケットに対する動作例については第三の実施形態（図１４）と同様のため、説明を省略する。
【０１１２】
図１９の処理は、たとえば、利用者の指示や、情報処理装置３０（３００）や他の装置の制御部からの指示により開始される。当該指示には、追加する処理情報のプロトコル識別子、第一の識別子（キー）、処理情報（振分先の情報）が含まれるものとする。
【０１１３】
まず、管理部３１４（図１５の管理部３７に相当）は、第一の記憶部２１の指定されたプロトコル用の処理振分表に、指定された第一の識別子（キー）および処理情報（振分先の情報）を含むエントリを追加する（ステップＳ３０１）。
【０１１４】
次に、管理部３１４は、指定されたプロトコル識別子および第一の識別子（キー）に基づいてハッシュ値および第二の識別子（タグ値）を計算する（ステップＳ３０２）。管理部３１４は、計算したハッシュ値およびタグ値を第一の記憶部２１に記憶させてもよい。
【０１１５】
次に、管理部３１４は、ステップＳ３０２で計算した第二の識別子と同じ値を第二の識別子とする他のエントリが第一の記憶部２１に存在するか確認する（ステップＳ３０３）。なお、管理部３１４は、本処理を高速化するための追加のデータ構造（たとえばハッシュテーブル）を用いてもよい。
【０１１６】
他のエントリが第一の記憶部２１に見つかった場合（ステップＳ３０３でＹＥＳ）、管理部３１４は、当該第二の識別子に対応する第一の記憶部２１のすべてのエントリについて、キャッシュ可否情報をキャッシュ禁止を示す情報に設定する（ステップＳ３０４）。
【０１１７】
また、管理部３１４は、当該第二の識別子に対応するすべてのエントリを削除するよう、キャッシュ更新部３１２に指示する。そして、キャッシュ更新部３１２はそれらを第二の記憶部１２から削除する（ステップＳ３０５）。
【０１１８】
このように動作させることによって、情報処理装置３０（３００）は、入力データに含まれる第一の識別子（キー）に基づいて第一の識別子よりビット数が小さい第二の識別子（タグ値）を算出する。そして、情報処理装置３０（３００）は、第二の識別子に対応する処理情報が第二の記憶部１２に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部２１から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させる。これにより、情報処理装置３０（３００）は、第一の識別子よりビット数が小さい第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させるため、より多くの処理情報を第二の記憶部１２に記憶させることが可能になる。そして、情報処理装置３０（３００）は、より多くの処理情報を第二の記憶部１２に記憶させることができるため、第一の記憶部２１から処理情報を取得する頻度を減少させることが可能になる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
【０１１９】
以上で説明したように、本発明の第四の実施形態では、第一から第三の実施形態と同様に、情報処理装置３０（３００）は、入力データに含まれる第一の識別子（キー）に基づいて第一の識別子よりビット数が小さい第二の識別子（タグ値）を算出する。そして、情報処理装置３０（３００）は、第二の識別子に対応する処理情報が第二の記憶部１２に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部２１から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部１２に記憶させる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
【０１２０】
また、本実施形態の情報処理装置３０（３００）は、第一の記憶部２１に処理情報を追加する際、第二の識別子の重複を確認し、重複する場合、第一の記憶部２１にキャッシュ禁止を示す情報を記憶させる。また、当該第二の識別子に対応する処理情報を第二の記憶部１２から削除する。これにより、情報処理装置３０（３００）は、第二の識別子の重複による誤処理を避けつつ、第一の記憶部２１に処理情報を追加することが可能になる。
【０１２１】
［ハードウェア構成例］
上述した本発明の各実施形態における情報処理装置（１０、２０、３０、１００、２００、３００）を、一つの情報処理装置（コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。なお、情報処理装置は、物理的または機能的に少なくとも二つの情報処理装置を用いて実現してもよい。また、情報処理装置は、専用の装置として実現してもよい。また、情報処理装置の一部の機能のみを情報処理装置を用いて実現しても良い。
【０１２２】
図２０は、本発明の各実施形態の情報処理装置を実現可能な情報処理装置のハードウェア構成例を概略的に示す図である。情報処理装置９０は、通信インタフェース９１、入出力インタフェース９２、演算装置９３、記憶装置９４および不揮発性記憶装置９５およびドライブ装置９６を備える。
【０１２３】
通信インタフェース９１は、各実施形態の情報処理装置が、有線あるいは／および無線で外部装置と通信するための通信手段である。なお、情報処理装置を、少なくとも二つの情報処理装置を用いて実現する場合、それらの装置の間を通信インタフェース９１経由で相互に通信可能なように接続しても良い。
【０１２４】
入出力インタフェース９２は、入力デバイスの一例であるキーボードや、出力デバイスとしてのディスプレイ等のマンマシンインタフェースである。
【０１２５】
演算装置９３は、汎用のＣＰＵ（Central Processing Unit）やマイクロプロセッサ等の演算処理装置である。演算装置９３は、たとえば、不揮発性記憶装置９５に記憶された各種プログラムを記憶装置９４に読み出し、読み出したプログラムに従って処理を実行することが可能である。
【０１２６】
記憶装置９４は、演算装置９３から参照可能な、ＲＡＭ（Random Access Memory）等のメモリ装置であり、プログラムや各種データ等を記憶する。記憶装置９４は、揮発性のメモリ装置であっても良い。
【０１２７】
不揮発性記憶装置９５は、たとえば、ＲＯＭ（Read Only Memory）、フラッシュメモリ、等の、不揮発性の記憶装置であり、各種プログラムやデータ等を記憶することが可能である。
【０１２８】
ドライブ装置９６は、たとえば、後述する記録媒体９７に対するデータの読み込みや書き込みを処理する装置である。
【０１２９】
記録媒体９７は、たとえば、光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な任意の記録媒体である。
【０１３０】
本発明の各実施形態は、たとえば、図２０に例示した情報処理装置９０により情報処理装置を構成し、この情報処理装置に対して、上記各実施形態において説明した機能を実現可能なプログラムを供給することにより実現してもよい。
【０１３１】
この場合、情報処理装置に対して供給したプログラムを、演算装置９３が実行することによって、実施形態を実現することが可能である。また、情報処理装置のすべてではなく、一部の機能を情報処理装置９０で構成することも可能である。
【０１３２】
さらに、上記プログラムを記録媒体９７に記録しておき、情報処理装置の出荷段階、あるいは運用段階等において、適宜上記プログラムが不揮発性記憶装置９５に格納されるよう構成してもよい。なお、この場合、上記プログラムの供給方法は、出荷前の製造段階、あるいは運用段階等において、適当な治具を利用して情報処理装置内にインストールする方法を採用してもよい。また、上記プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等の一般的な手順を採用してもよい。
【０１３３】
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。
【０１３４】
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１３５】
（付記１）
入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出する算出部と、
前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させる第一の取得部と、
前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得する第二の取得部と、
前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う処理部と
を備えることを特徴とする情報処理装置。
【０１３６】
（付記２）
前記第一の取得部は、前記処理情報を前記第一の記憶部から取得する際、さらに、前記第一の識別子に対応するキャッシュ可否情報を前記第一の記憶部から取得し、前記キャッシュ可否情報がキャッシュ禁止を示すとき、前記第二の記憶部への前記記憶を行わず、
前記第一の識別子に対応する前記キャッシュ可否情報は、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、キャッシュ禁止を示す
ことを特徴とする付記１に記載の情報処理装置。
【０１３７】
（付記３）
前記第一の記憶部に前記第一の識別子と前記処理情報との対応関係を追加するとき、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、当該第一の識別子および他の前記第一の識別子に対応する前記キャッシュ可否情報をキャッシュ禁止を示す情報に設定する管理部
をさらに備えることを特徴とする付記２に記載の情報処理装置。
【０１３８】
（付記４）
前記管理部は、前記第一の記憶部に前記第一の識別子と前記処理情報との前記対応関係を追加するとき、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から削除する
ことを特徴とする付記３に記載の情報処理装置。
【０１３９】
（付記５）
前記第二の識別子は、前記第一の識別子にハッシュ関数を適用して得られるハッシュ値、あるいは、前記ハッシュ値にさらに演算を施して得られる値である
ことを特徴とする付記１から付記４のいずれかに記載の情報処理装置。
【０１４０】
（付記６）
入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出し、
前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させ、
前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得し、
前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う
ことを特徴とする情報処理方法。
【０１４１】
（付記７）
前記処理情報を前記第一の記憶部から取得する際、さらに、前記第一の識別子に対応するキャッシュ可否情報を前記第一の記憶部から取得し、前記キャッシュ可否情報がキャッシュ禁止を示すとき、前記第二の記憶部への前記記憶を行わず、
前記第一の識別子に対応する前記キャッシュ可否情報は、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、キャッシュ禁止を示す
ことを特徴とする付記６に記載の情報処理方法。
【０１４２】
（付記８）
前記第一の記憶部に前記第一の識別子と前記処理情報との対応関係を追加するとき、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、当該第一の識別子および他の前記第一の識別子に対応する前記キャッシュ可否情報をキャッシュ禁止を示す情報に設定する
ことを特徴とする付記７に記載の情報処理方法。
【０１４３】
（付記９）
前記第一の記憶部に前記第一の識別子と前記処理情報との前記対応関係を追加するとき、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から削除する
ことを特徴とする付記８に記載の情報処理方法。
【０１４４】
（付記１０）
前記第二の識別子は、前記第一の識別子にハッシュ関数を適用して得られるハッシュ値、あるいは、前記ハッシュ値にさらに演算を施して得られる値である
ことを特徴とする付記６から付記９のいずれかに記載の情報処理方法。
【０１４５】
（付記１１）
コンピュータに、
入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出する算出機能と、
前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させる第一の取得機能と、
前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得する第二の取得機能と、
前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う処理機能と
を実現させることを特徴とする情報処理プログラム。
【０１４６】
（付記１２）
前記第一の取得機能は、前記処理情報を前記第一の記憶部から取得する際、さらに、前記第一の識別子に対応するキャッシュ可否情報を前記第一の記憶部から取得し、前記キャッシュ可否情報がキャッシュ禁止を示すとき、前記第二の記憶部への前記記憶を行わず、
前記第一の識別子に対応する前記キャッシュ可否情報は、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、キャッシュ禁止を示す
ことを特徴とする付記１１に記載の情報処理プログラム。
【０１４７】
（付記１３）
前記第一の記憶部に前記第一の識別子と前記処理情報との対応関係を追加するとき、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、当該第一の識別子および他の前記第一の識別子に対応する前記キャッシュ可否情報をキャッシュ禁止を示す情報に設定する管理機能
をさらにコンピュータに実現させることを特徴とする付記１２に記載の情報処理プログラム。
【０１４８】
（付記１４）
前記管理機能は、前記第一の記憶部に前記第一の識別子と前記処理情報との前記対応関係を追加するとき、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から削除する
ことを特徴とする付記１３に記載の情報処理プログラム。
【０１４９】
（付記１５）
前記第二の識別子は、前記第一の識別子にハッシュ関数を適用して得られるハッシュ値、あるいは、前記ハッシュ値にさらに演算を施して得られる値である
ことを特徴とする付記１１から付記１４のいずれかに記載の情報処理プログラム。
【０１５０】
（付記１６）
付記１０から付記１５のいずれかに記載の情報処理プログラムを記録した、コンピュータ読み取り可能な記録媒体。
【符号の説明】
【０１５１】
１０、２０、３０、１００、２００、３００    情報処理装置
１１、２１    第一の記憶部
１２    第二の記憶部
１３    算出部
１４、２４、３４    第一の取得部
１５    第二の取得部
１６    処理部
３７    管理部
１０１    通信ＩＦ部
１０２、２０２、３０２    パケット受信処理部
１０３    パケット処理部
１０４    パケット送信処理部
１０５    キー抽出部
１０６    ハッシュ値計算部
１０７    パケット振分部
１０８、２０８、３０８    キャッシュメモリ制御部
１０９    処理振分表検索部
１１０    メモリアクセス部
１１１    キャッシュヒット判定部
１１２、３１２    キャッシュ更新部
２１３    キャッシュ可否判定部
３１４    管理部
９０    情報処理装置
９１    通信インタフェース
９２    入出力インタフェース
９３    演算装置
９４    記憶装置
９５    不揮発性記憶装置
９６    ドライブ装置
９７    記録媒体
【図１】
2018061088.tif 000003
【図２】
2018061088.tif 000004
【図３】
2018061088.tif 000005
【図４】
2018061088.tif 000006
【図５】
2018061088.tif 000007
【図６】
2018061088.tif 000008
【図７】
2018061088.tif 000009
【図８】
2018061088.tif 000010
【図９】
2018061088.tif 000011
【図１０】
2018061088.tif 000012
【図１１】
2018061088.tif 000013
【図１２】
2018061088.tif 000014
【図１３】
2018061088.tif 000015
【図１４】
2018061088.tif 000016
【図１５】
2018061088.tif 000017
【図１６】
2018061088.tif 000018
【図１７】
2018061088.tif 000019
【図１８】
2018061088.tif 000020
【図１９】
2018061088.tif 000021
【図２０】
2018061088.tif 000022
【図２１】
2018061088.tif 000023
【図２２】
2018061088.tif 000024