(57)【要約】【課題】  パケットの追い越しを発生させることなく、マルチコアプロセッサのリソースを効率よく利用することが可能なパケット処理装置を提供する。【解決手段】  パケット処理装置（１）は、受信したパケットを処理する複数のコアプロセッサ（１４〜１７）と、パケットのヘッダ情報と処理内容とを関連付けたリストを保持するパケット処理内容記憶手段（パケット処理内容記憶部１２）と、コアプロセッサ（１４〜１７）にパケットの処理を行わせる前に当該パケットの処理内容をパケット処理内容記憶手段（パケット処理内容記憶部１２）から予め検索するパケット種別識別手段（パケット種別識別部１１）と、パケット種別識別手段（パケット種別識別部１１）の検索結果に応じてパケットの処理を複数のコアプロセッサ（１４〜１７）各々に分散させる振り分け手段（コアへの振り分け部１３）とを有する。【選択図】      図１
2010226543.tif 000002
【特許請求の範囲】
【請求項１】
受信したパケットを処理する複数のコアプロセッサと、
前記パケットのヘッダ情報と処理内容とを関連付けたリストを保持するパケット処理内容記憶手段と、
前記コアプロセッサに前記パケットの処理を行わせる前に当該パケットの処理内容を前記パケット処理内容記憶手段から予め検索するパケット種別識別手段と、
前記パケット種別識別手段の検索結果に応じて前記パケットの処理を前記複数のコアプロセッサ各々に分散させる振り分け手段とを有することを特徴とするパケット処理装置。
【請求項２】
前記パケット種別識別手段は、受信したパケットの処理内容を、少なくとも当該パケットのヘッダ情報を用いて前記パケット処理内容記憶手段から検索することを特徴とする請求項１記載のパケット処理装置。
【請求項３】
前記振り分け手段は、前記パケット種別識別手段の検索結果から前記パケットの処理内容を把握し、前記複数のコアプロセッサに対して、前記パケットの処理が均等になるように、前記パケットの処理を分割して割り振ることを特徴とする請求項１または請求項２記載のパケット処理装置。
【請求項４】
前記パケット種別識別手段は、前記パケットの処理内容を検索した際、一致するエントリがなかった場合に一つのコアプロセッサで当該処理を行わせ、当該処理の終了時に前記パケット処理内容記憶手段にエントリを追加することを特徴とする請求項１から請求項３のいずれか記載のパケット処理装置。
【請求項５】
前記複数のコアプロセッサ各々の処理結果を統合する処理結果統合手段を備え、
前記複数のコアプロセッサ各々は、一つのパケットを分散処理する機能を含み、
前記処理結果統合手段は、前記パケットの種別及びその処理内容を取得する機能と、取得したパケットの種別と処理内容とを前記パケット処理内容記憶手段に送信する機能とを含むことを特徴とする請求項１から請求項４のいずれか記載のパケット処理装置。
【請求項６】
前記複数のコアプロセッサ各々は、先に受信したパケットの処理が終了するまで後から来たパケットの出力を行わないようにすることを特徴とする請求項１から請求項５のいずれか記載のパケット処理装置。
【請求項７】
上記の請求項１から請求項６のいずれかに記載のパケット処理装置を含むことを特徴とするパケット処理システム。
【請求項８】
受信したパケットを処理する複数のコアプロセッサを含むパケット処理装置に用いるパケット処理効率化方法であって、
前記パケット処理装置において、前記パケットのヘッダ情報と処理内容とを関連付けたリストをパケット処理内容記憶手段に保持しておき、
前記パケット処理装置が、前記コアプロセッサに前記パケットの処理を行わせる前に当該パケットの処理内容を前記パケット処理内容記憶手段から予め検索するパケット種別識別処理と、前記パケット種別識別処理の検索結果に応じて前記パケットの処理を前記複数のコアプロセッサ各々に分散させる振り分け処理とを実行することを特徴とするパケット処理効率化方法。
【請求項９】
前記パケット種別識別処理において、受信したパケットの処理内容を、少なくとも当該パケットのヘッダ情報を用いて前記パケット処理内容記憶手段から検索することを特徴とする請求項８記載のパケット処理効率化方法。
【請求項１０】
前記振り分け処理において、前記パケット種別識別処理の検索結果から前記パケットの処理内容を把握し、前記複数のコアプロセッサに対して、前記パケットの処理が均等になるように、前記パケットの処理を分割して割り振ることを特徴とする請求項８または請求項９記載のパケット処理効率化方法。
【請求項１１】
前記パケット種別識別処理において、前記パケットの処理内容を検索した際、一致するエントリがなかった場合に一つのコアプロセッサで当該処理を行わせ、当該処理の終了時に前記パケット処理内容記憶手段にエントリを追加することを特徴とする請求項８から請求項１０のいずれか記載のパケット処理効率化方法。
【請求項１２】
前記パケット処理装置が、前記複数のコアプロセッサ各々の処理結果を統合する処理結果統合処理を実行し、
前記複数のコアプロセッサ各々に、一つのパケットを分散処理する機能を設け、
前記処理結果統合処理において、前記パケットの種別及びその処理内容を取得し、取得したパケットの種別と処理内容とを前記パケット処理内容記憶手段に送信することを特徴とする請求項８から請求項１１のいずれか記載のパケット処理効率化方法。
【請求項１３】
前記複数のコアプロセッサ各々が、先に受信したパケットの処理が終了するまで後から来たパケットの出力を行わないようにすることを特徴とする請求項８から請求項１２のいずれか記載のパケット処理効率化方法。
【請求項１４】
受信したパケットを処理する複数のコアプロセッサを含むパケット処理装置内の中央処理装置に実行させるプログラムであって、
前記パケット処理装置において、前記パケットのヘッダ情報と処理内容とを関連付けたリストをパケット処理内容記憶手段に保持しておき、
前記コアプロセッサに前記パケットの処理を行わせる前に当該パケットの処理内容を前記パケット処理内容記憶手段から予め検索するパケット種別識別処理と、前記パケット種別識別処理の検索結果に応じて前記パケットの処理を前記複数のコアプロセッサ各々に分散させる振り分け処理とを含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパケット処理装置、パケット処理システム及びそれらに用いるパケット処理効率化方法並びにそのプログラムに関し、特にパケット処理装置に搭載するマルチコアプロセッサにおけるパケット処理の効率化に関する。
【背景技術】
【０００２】
本発明に関連するマルチコアプロセッサにおける処理においては、図５に示すように、受信したパケットＰ１〜Ｐ６を複数のコア＃１〜＃４（プロセッサ）が処理しており（例えば、特許文献１，２参照）、ズエに示す各処理の長さは処理時間を表している。また、図５において、ＮＰ１〜ＮＰ３は、コア＃１〜＃４が処理できない時間を表している。
【０００３】
本発明に関連するマルチコアプロセッサにおいては、パケットＰ１に対するコア＃１の処理時間が長いため、後からやってきたパケットＰ２に対するコア＃２の処理が先に終わっても、パケットを追い越しさせないようにするため、パケットＰ１に対するコア＃１の処理が終了するまでのＮＰ１の間、コア＃２では次の処理を行えず、リソースに無駄が存在する。
【０００４】
同様に、コア＃３もパケットＰ３の処理が終了した後、ＮＰ２の間、処理を行うことができない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２９９４３９号公報
【特許文献２】特開２０００−２２２３７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した本発明に関連するパケット処理では、マルチコアプロセッサにパケット処理を行わせる場合、受信したパケットを順番に一つのコアに処理させるアルゴリズムにおいて、各パケットの処理時間が異なる場合、処理が遅いパケットを、処理が早いパケットが追い越す現象が発生する。
【０００７】
上記のパケット処理では、この現象を回避するために、パケット処理が終わっても、先に受信したパケットの処理がおわるまでプロセッサが待つ状態が発生し、プロセッサのリソースを有効活用できないという課題が存在する。
【０００８】
そこで、本発明の目的は上記の問題点を解消し、パケットの追い越しを発生させることなく、マルチコアプロセッサのリソースを効率よく利用することができるパケット処理装置、パケット処理システム及びそれらに用いるパケット処理効率化方法並びにそのプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明によるパケット処理装置は、受信したパケットを処理する複数のコアプロセッサと、
前記パケットのヘッダ情報と処理内容とを関連付けたリストを保持するパケット処理内容記憶手段と、
前記コアプロセッサに前記パケットの処理を行わせる前に当該パケットの処理内容を前記パケット処理内容記憶手段から予め検索するパケット種別識別手段と、
前記パケット種別識別手段の検索結果に応じて前記パケットの処理を前記複数のコアプロセッサ各々に分散させる振り分け手段とを備えている。
【００１０】
本発明によるパケット処理システムは、上記のパケット処理装置を含むことを特徴とする。
【００１１】
本発明によるパケット処理効率化方法は、受信したパケットを処理する複数のコアプロセッサを含むパケット処理装置に用いるパケット処理効率化方法であって、
前記パケット処理装置において、前記パケットのヘッダ情報と処理内容とを関連付けたリストをパケット処理内容記憶手段に保持しておき、
前記パケット処理装置が、前記コアプロセッサに前記パケットの処理を行わせる前に当該パケットの処理内容を前記パケット処理内容記憶手段から予め検索するパケット種別識別処理と、前記パケット種別識別処理の検索結果に応じて前記パケットの処理を前記複数のコアプロセッサ各々に分散させる振り分け処理とを実行している。
【００１２】
本発明によるプログラムは、受信したパケットを処理する複数のコアプロセッサを含むパケット処理装置内の中央処理装置に実行させるプログラムであって、
前記パケット処理装置において、前記パケットのヘッダ情報と処理内容とを関連付けたリストをパケット処理内容記憶手段に保持しておき、
前記コアプロセッサに前記パケットの処理を行わせる前に当該パケットの処理内容を前記パケット処理内容記憶手段から予め検索するパケット種別識別処理と、前記パケット種別識別処理の検索結果に応じて前記パケットの処理を前記複数のコアプロセッサ各々に分散させる振り分け処理とを含むことを特徴とする。
【発明の効果】
【００１３】
本発明は、上記のような構成及び動作とすることで、パケットの追い越しを発生させることなく、マルチコアプロセッサのリソースを効率よく利用することができるという効果が得られる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態によるパケット処理装置の構成例を示すブロック図である。
【図２】図１のパケット処理内容記憶部の構成例を示す図である。
【図３】図１のパケット処理装置における受信パケットＰの処理動作を示すフローチャートである。
【図４】本発明の実施の形態による受信したパケットＰの複数のコア（＃１〜＃４）における処理を示す図である。
【図５】本発明に関連するパケット処理による受信したパケットＰの複数のコア（＃１〜＃４）における処理を示す図である。
【発明を実施するための形態】
【００１５】
次に、本発明の実施の形態について図面を参照して説明する。まず、本発明によるパケット処理装置の概要について説明する。本発明によるパケット処理装置は、パケット処理において、各パケットの処理量が異なる場合でも、パケットのヘッダ情報等から事前に処理内容を検索することで、当該パケットの処理内容を把握し、マルチコアプロセッサ（複数のコアプロセッサ）に処理を分散させることで、パケットの追い越しを防ぎつつ、マルチコアプロセッサのリソースを効率よく利用できるようにしたことを特徴としている。
【００１６】
本発明によるパケット処理装置は、パケットのヘッダ情報と当該パケットの処理内容とを関連付けたリストを保持するパケット処理内容記憶部と、複数のコアプロセッサに処理を行わせる前に、当該パケットの処理内容をパケット処理内容記憶部から予め検索するパケット種別識別部と、パケット種別識別部の検索結果に応じてパケットの処理を複数のコアプロセッサ各々に分散させるコアへの振り分け部と、複数のコアプロセッサ各々の処理結果を統合する処理結果統合部とを具備している。これらの機能は、パケット処理装置のプロセッサ内、プロセッサ外のいずれに持たせても良い。
【００１７】
上記の複数のコアプロセッサ各々は、一つのパケットを分散処理する機能を具備している。処理結果統合部は、パケット種別と処理内容とを取得する機能と、取得したパケット種別と処理内容とをパケット処理内容記憶部へ登録または上書きする機能とを具備している。
【００１８】
本発明によるパケット処理装置において、パケット種別識別部は、受信したパケットの処理内容を、パケットのヘッダ情報等を用いてパケット処理内容記憶部から検索する。
【００１９】
パケット種別識別部は、その検索結果からパケット処理内容を把握し、そのパケット処理内容情報とパケットとを一緒にコアへの振り分け部に送信する。コアへの振り分け部は、パケット処理を行う複数のコアプロセッサに対して、それぞれの処理が均等になるように、パケット処理を分割して割り振る。
【００２０】
複数のコアプロセッサ各々は、分割して割り振られた処理を行い、処理結果を処理結果統合部へ送信する。処理結果統合部は、各コアプロセッサが処理した結果を統合し、外部へパケットを送信する。また、処理結果統合部は、パケット処理内容記憶部から処理内容を受け取り、その処理内容を処理結果と比較し、処理内容が同じであれば、そこで処理を終了させる。また、処理結果統合部は、複数のコアプロセッサ各々の処理結果が、パケット処理内容記憶部からの処理内容と違うと判断した場合、パケット識別子と処理内容とをパケット処理内容記憶部へ上書きする。
【００２１】
複数のコアプロセッサ各々では、先に受信したパケットの処理が終わるまで、後から来たパケットの出力はしないようにすることでパケットの追い越しが発生しないように制御する。
【００２２】
パケット種別識別部は、パケットの処理内容を検索した際、一致するエントリがなかった場合、一致するエントリがなかったことをコアへの振り分け部に伝える。コアへの振り分け部は、該当するパケットの処理を一つのコアプロセッサで行わせる。パケットの処理が終わったら、処理結果統合部は、パケット識別子と一緒にエントリをパケット処理内容記憶部へ追加する。
【００２３】
本発明によるパケット処理装置は、パケットのヘッダ領域の値を利用し、パケット処理内容記憶部を検索し、以前実行した処理内容を利用して、マルチコアプロセッサに処理を分散させることにより、リソースの効率的な利用を図っている。
【００２４】
パケット種別識別部は、パケットのヘッダ情報を利用して検索キーを作成し、検索キーを基にパケット処理内容記憶部を検索し、一致するエントリがあれば検索結果を取得する。
【００２５】
パケット処理内容記憶部には、宛先／送信元ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス、宛先／送信元ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、プロトコル番号、その他（宛先／送信元ポート番号）、処理ステップ数からなる複数のエントリが記憶されている。
【００２６】
パケット種別識別部は、検索結果として処理ステップ数が与えられると、そのステップ数を分散処理を行うコアプロセッサの数とする。コアへの振り分け部は、パケット種別識別部での検索結果を基に、処理内容に応じて処理を分割して、各コアプロセッサにパケットを送信する。
【００２７】
処理結果統合部は、各コアプロセッサでの処理が終了した時点で、その処理結果を検索結果と比較し、処理内容が一致した場合に処理を終了し、一致しない場合にパケット識別子と処理内容とをパケット処理内容記憶部に送信し、該当するエントリの更新を行う。この場合、処理内容としては、検索した処理ステップ数の通りに処理が実行できたかどうかである。
【００２８】
パケット種別識別部が検索キーを基にパケット処理内容記憶部を検索した際に、一致するエントリがなければ、コアへの振り分け部は、パケット処理を単一のコアプロセッサに送り、処理を実行する。その処理内容は、パケット処理内容記憶部に新たなエントリとして登録する。
【００２９】
このように、本発明によるパケット処理装置は、パケットのヘッダ情報等から処理内容を予め検索し、複数のコアプロセッサ各々へパケット処理を分割して割り振り、パケット処理を分散処理するので、マルチコアプロセッサでの待ち時間を減らし、プロセッサのリソースを有効に活用することができる。
【００３０】
本発明では、パケット処理内容記憶部からの検索結果を処理ステップ数とする場合、指定された処理ステップ数に応じたコアプロセッサの分配方法を確認し、コアプロセッサに分配する手段（機能ブロック）、指定された処理ステップ数に応じたコアプロセッサの分配方法を指定する機能、あるいは記憶部が必要となる。
【００３１】
各コアプロセッサに割り当てられた分割されたパケットを指定されたステップ数で実行できたことを確認することは、各コアプロセッサにおいて実施することができる。これは一般的な技術である。
【００３２】
また、本発明では、各コアプロセッサが実行した結果をまとめて、該当のパケット全体の実行結果を作成し、パケット処理内容記憶部に記録する手段（機能ブロック）が必要となる。この場合、新規の状況であれば、上記の指定された処理ステップ数に応じたコアプロセッサの分配方法を指定する機能あるいは、記憶部への登録が必要である。
【００３３】
さらに、本発明では、処理を終了したパケットをまとめて出力する手段（機能ブロック）、処理を終了したパケットをまとめる方法を指定する機能あるいは記憶部が必要となる。
【００３４】
パケット処理内容記憶部からの検索結果に処理内容を含める場合、上記に加えて各処理に対応する処理番号とコアプロセッサへの分配方法、パケットのまとめ方の指定方法、あるいは記憶部が必要となる。
【００３５】
図１は本発明の実施の形態によるパケット処理装置の構成例を示すブロック図である。図１において、パケット処理装置１は、パケット種別識別部１１と、パケット処理内容記憶部１２と、コアへの振り分け部１３と、複数のコアプロセッサ（以下、コアとする）（＃１〜＃４）１４〜１７と、処理結果統合部１８とを備えている。尚、パケット処理装置１における受信部及び送信部等の機能については、本発明に直接関係しないので、その構成の図示及び説明を省略する。
【００３６】
パケット種別識別部１１は、パケットＰを受信すると、パケット処理内容記憶部１２へ処理内容を検索するために、検索キーＳを送信する。パケット処理内容記憶部１２は、図２に示すエントリを持ち、検索キーＳを用いて処理内容の検索をする。
【００３７】
ここで、図２は図１のパケット処理内容記憶部１２の構成例を示す図である。図２において、パケット処理内容記憶部１２は、宛先ＭＡＣアドレス、送信元ＭＡＣアドレス、宛先ＩＰアドレス、送信元ＩＰアドレス、プロトコル番号、その他、処理ステップからなる複数のエントリを記憶している。
【００３８】
第１のエントリは、宛先ＭＡＣアドレスが「ａａａａ．ｂｂｂｂ．０００１」、送信元ＭＡＣアドレスが「ｃｃｃｃ．ｄｄｄｄ」．０００１」、宛先ＩＰアドレスが「１０．１．１．１」、送信元ＩＰアドレスが「１１．１．１．１」、プロトコル番号が「６」、その他が「ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）  Ｐｏｒｔ  ２３」、処理ステップが「８」である。
【００３９】
第２のエントリは、宛先ＭＡＣアドレスが「ａａａａ．ｂｂｂｂ．０００２」、送信元ＭＡＣアドレスが「ｃｃｃｃ．ｄｄｄｄ．０００２」、宛先ＩＰアドレスが「１０．１．１．２」、送信元ＩＰアドレスが「１１．１．１．２」、プロトコル番号が「６」、その他が「ＴＣＰ  Ｐｏｒｔ  ２２」、処理ステップが「４」である。
【００４０】
第３のエントリは、宛先ＭＡＣアドレスが「ａａａａ．ｂｂｂｂ．０００３」、送信元ＭＡＣアドレスが「ｃｃｃｃ．ｄｄｄｄ．０００３」、宛先ＩＰアドレスが「１０．１．１．３」、送信元ＩＰアドレスが「１１．１．１．３」、プロトコル番号が「１７」、その他が「ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）  Ｐｏｒｔ  １００」、処理ステップが「４」である。
【００４１】
第４のエントリは、宛先ＭＡＣアドレスが「ａａａａ．ｂｂｂｂ．０００４」、送信元ＭＡＣアドレスが「ｃｃｃｃ．ｄｄｄｄ．０００４」、宛先ＩＰアドレスが「１０．１．１．４」、送信元ＩＰアドレスが「１１．１．１．４」、プロトコル番号が「１」、その他が「ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）  Ｔｙｐｅ  ８」、処理ステップが「８」である。
【００４２】
第５のエントリは、宛先ＭＡＣアドレスが「ＡＮＹ」、送信元ＭＡＣアドレスが「ＡＮＹ」、宛先ＩＰアドレスが「２０．１．１．１」、送信元ＩＰアドレスが「ＡＮＹ」、プロトコル番号が「６」、その他が「ＴＣＰ  Ｐｏｒｔ  ８０」、処理ステップが「４」である。
【００４３】
パケット処理内容記憶部１２は、その検索結果として、図２に示すエントリから処理内容を検索結果Ｒとしてパケット種別識別部１１へ送信する。その際、パケット処理内容記憶部１２は、該当するエントリが存在しない場合、該当エントリなしとして、検索結果Ｒをパケット種別識別部１１へ送信する。
【００４４】
パケット種別識別部１１は、検索結果ＲとパケットＰを統合してパケット情報ｐとしてコアへの振り分け部１３へ送信する。コアへの振り分け部１３は、パケット情報ｐの検索結果ＲからパケットＰの処理を把握し、パケットＰの処理を分散させるために、処理を分割して処理ｐ１〜ｐ４として各コア（＃１〜＃４）１４〜１７へ送信する。
【００４５】
その際、コアへの振り分け部１３は、検索結果Ｒが該当するエントリなしであった場合、処理を分割せずに、単一のコア［コア（＃１〜＃４）１４〜１７のいずれか一つ］へ処理を送信する。
【００４６】
各コア（＃１〜＃４）１４〜１７は、コアへの振り分け部１３から送信されてきた処理ｐ１〜ｐ４を行い、処理結果Ｋ１〜Ｋ４をそれぞれ処理結果統合部１８へ送信する。処理結果統合部１８は、各コア（＃１〜＃４）１４〜１７から受信した処理結果Ｋ１〜Ｋ４を統合し、パケットＫとして外部へ送信する。
【００４７】
また、処理結果統合部１８は、パケット処理内容記憶部１２から処理内容Ｒを取得し、実際の処理と指示された処理とを比較し、一致した場合は処理を終了する。処理結果統合部１８は、上記の処理内容の比較において、処理が一致しなかった場合、今回の処理を新たなエントリとしてパケット処理記憶部１２へ処理内容更新指示Ｕとして送信する。
【００４８】
各コア（＃１〜＃４）１４〜１７は、受信した処理の順番にパケットＰを出力し、先に来たパケットの処理が終わるまでは次のパケットの処理を行わない。
【００４９】
このように、本実施の形態では、パケット種別識別部１１が事前にパケット処理内容を検索することで、マルチコアプロセッサにおけるパケットの追い越し問題を回避しつつ、リソースを効率的に使用することが可能となる。
【００５０】
以上、実施の形態の構成について述べたが、図１の各コア（＃１〜＃４）１４〜１７でのパケット処理方法は、本発明とは直接関係しないので、その構成の説明は省略する。
【００５１】
図３は図１のパケット処理装置１における受信パケットＰの処理動作を示すフローチャートであり、図４は本発明の実施の形態による受信したパケットＰの複数のコア（＃１〜＃４）１４〜１７における処理を示す図である。これら図１〜図４を参照してパケット処理装置１における受信パケットＰの処理動作について説明する。尚、図３に示す処理動作は、パケット処理装置１の図示せぬＣＰＵ（中央処理装置）（プロセッサ）がプログラムを実行することで実現される。
【００５２】
パケット種別識別部１１は、受信したパケットＰ内の情報から検索キーＳを生成し、パケット処理内容記憶部１２からパケットＰの処理内容の検索を行う（図３ステップＳ１）。
【００５３】
パケット処理内容記憶部１２は、検索キーＳによって自身が保有するエントリを検索し、一致するエントリが存在するかどうかを確認する（図３ステップＳ２）。パケット処理内容記憶部１２は、検索した結果、一致するエントリが存在した場合、その検索結果Ｒをパケット種別識別部１１へ送信し、パケット種別識別部１１からコアへの振り分け部１３に伝達する。コアへの振り分け部１３は、その処理内容に応じて、コア（＃１〜＃４）１４〜１７に処理を分割して割り振る（図３ステップＳ３）。
【００５４】
各コア（＃１〜＃４）１４〜１７にて、分割して割り振られた処理ｐ１〜ｐ４が終了した後、処理結果統合部１８は、検索した処理と実際の処理とを比較する（図３ステップＳ４）。処理結果統合部１８は、各コア（＃１〜＃４）１４〜１７の処理結果と処理内容とが一致した場合、処理を終了する。
【００５５】
コアへの振り分け部１３は、上記のステップＳ２の判定において、一致するエントリが存在しない場合、パケットＰの処理を単一のコア［例えば、コア（＃１）１４］へ送り、パケットＰの処理を行わせ、処理結果統合部１８が処理内容を把握する（図３ステップＳ５）。
【００５６】
また、処理結果統合部１８は、処理内容をパケット処理内容記憶部１２に送信し、パケット処理内容記憶部１２は自身が保有するエントリを更新する（図３ステップＳ６）。
【００５７】
処理結果統合部１８は、上記のステップＳ４の比較において、処理内容が一致しなかった場合、パケット識別子と処理内容とをパケット処理内容記憶部１２に送信し、パケット処理内容記憶部１２は自身が保有するエントリを更新する（図３ステップＳ６）。
【００５８】
例えば、各コア（＃１〜＃４）１４〜１７が図４に示すように動作した場合について説明する。まず、各コア（＃１〜＃４）１４〜１７は、分割して割り振られた処理ｐ１をそれぞれ実行する。
【００５９】
次に、各コア（＃１〜＃３）１４〜１６は、分割して割り振られた処理ｐ２，ｐ３をそれぞれ実行するが、この処理ｐ２，ｐ３が実行されている間、コア（＃４）１７では処理できない時間ｎｐ１となっている。
【００６０】
さらに、各コア（＃１〜＃４）１４〜１７は、分割して割り振られた処理ｐ４をそれぞれ実行する。続いて、各コア（＃１，＃２）１４，１５は、分割して割り振られた処理ｐ５をそれぞれ実行するが、この処理ｐ５が実行されている間、コア（＃３）１６では処理できない時間ｎｐ２となっている。
【００６１】
その後に、各コア（＃１〜＃３）１４〜１６は、分割して割り振られた処理ｐ６をそれぞれ実行するが、これらの処理ｐ５，ｐ６が実行されている間、コア（＃４）１７では処理できない時間ｎｐ３となっている。
【００６２】
このように、本実施の形態では、パケット処理において、パケットの処理内容がパケットヘッダ情報等から固定化しやすい特徴があるため、パケットヘッダの情報とパケット処理内容とのリストを作成してパケット処理内容記憶部１２に格納しておき、そのパケット処理内容記憶部１２から事前に検索することで、各コア（＃１〜＃４）１４〜１７へ均等に処理を分割して割り振っているので、プロセッサの待ち時間を減らし（図４及び図５参照）、プロセッサのリソースを効率的に使用することができる。
【００６３】
また、本実施の形態では、処理内容がパケット処理内容記憶部１２に登録されていないパケットの処理を単一のコアで処理させ、その処理内容を把握してパケット処理内容記憶部１２にエントリを追加するので、同じ処理が再び来た時には処理を効率化することができる。
【００６４】
さらに、本実施の形態では、先に来たパケットの処理が終わるまで、次にきたパケットの処理を行わないので、複雑な順序制御をすることなく、リソースを効率的に使用することができる。
【産業上の利用可能性】
【００６５】
本発明は、マルチコアプロセッサを使用するルータやネットワークゲートウェイ等のネットワーク機器（パケット処理装置）に適用可能である。
【符号の説明】
【００６６】
１  パケット処理装置
１１  パケット種別識別部
１２  パケット処理内容記憶部
１３  コアへの割り振り部
１４〜１７  コアプロセッサ（＃１〜＃４）
１８  処理結果統合部
【図１】
2010226543.tif 000003
【図２】
2010226543.tif 000004
【図３】
2010226543.tif 000005
【図４】
2010226543.tif 000006
【図５】
2010226543.tif 000007