(57)【特許請求の範囲】
【請求項１】
複数のスレッドを処理可能なプロセッサと、
パケットのプロトコル処理を行う前記複数のスレッドにおける処理負荷及び複数の前記プロセッサにおける処理負荷を監視する負荷監視部と、
入力されたパケットを、前記負荷監視部によって監視された複数の前記プロセッサにおける処理負荷に基づいて、複数の前記プロセッサのうち処理負荷が最も低いプロセッサを選択し、選択した前記プロセッサにおいて処理可能な前記複数のスレッドにおける処理負荷が予め定められた処理負荷になるように当該複数のスレッドに振り分ける制御を行う制御部と、
前記スレッドが割り当てられた領域毎に状態を監視する状態監視部と、を備え、
前記プロセッサは、前記複数のスレッドが並列して動作するように異なる領域にそれぞれスレッドを割り当て、
前記制御部は、前記状態監視部により異常状態が検出された場合、異常状態が検出された領域に割り当てられているスレッドにパケットを振り分けないように制御する、
パケット処理装置。
【請求項２】
前記制御部は、前記複数のスレッドにおける処理負荷が実質的に均一になるように当該複数のスレッドに振り分ける、請求項１記載のパケット処理装置。
【請求項３】
前記負荷監視部は、前記複数のスレッドにおけるパケット処理時間を監視し、
前記制御部は、前記パケット処理時間に基づいて前記処理負荷を求め、当該処理負荷が実質的に均一になるように前記複数のスレッドに振り分ける、請求項２記載のパケット処理装置。
【請求項４】
前記負荷監視部は、予め定められた期間における前記スレッドのパケット処理時間を監視し、
前記制御部は、前記予め定められた期間における前記スレッドのパケット処理時間が相対的に短いスレッドに前記入力されたパケットを振り分ける、請求項３記載のパケット処理装置。
【請求項５】
複数のスレッドを処理可能なプロセッサにて、パケットのプロトコル処理を行う当該複数のスレッドの処理負荷を監視する負荷監視部と、
入力されたパケットを、前記負荷監視部によって監視された複数の前記プロセッサにおける処理負荷に基づいて、複数の前記プロセッサのうち処理負荷が最も低いプロセッサを選択し、選択した前記プロセッサにおいて処理可能な前記複数のスレッドにおける処理負荷が予め定められた処理負荷になるように当該複数のスレッドに振り分ける制御を行う制御部と、
前記スレッドが割り当てられた領域毎に状態を監視する状態監視部と、を備え、
前記プロセッサは、前記複数のスレッドが並列して動作するように異なる領域にそれぞれスレッドを割り当て、
前記制御部は、前記状態監視部により異常状態が検出された場合、異常状態が検出された領域に割り当てられているスレッドにパケットを振り分けないように制御する、
パケット振り分け装置。
【請求項６】
複数のスレッドを処理可能なプロセッサにて、パケットのプロトコル処理を行う当該複数のスレッドの処理負荷を監視するステップと、
入力されたパケットを、複数の前記プロセッサにおける前記処理負荷に基づいて、複数の前記プロセッサのうち処理負荷が最も低いプロセッサを選択するステップと、
選択した前記プロセッサにおいて処理可能な前記複数のスレッドにおける処理負荷が予め定められた処理負荷になるように当該複数のスレッドに振り分けるステップと、
前記スレッドが割り当てられた領域毎に状態を監視するステップと、
前記複数のスレッドが並列して動作するように異なる領域にそれぞれスレッドを割り当てるステップと、
前記状態を監視するステップにより異常状態が検出された場合、異常状態が検出された領域に割り当てられているスレッドにパケットを振り分けないように制御するステップと、
をコンピュータに実行させる制御プログラム。
【請求項７】
複数のスレッドを処理可能なプロセッサにて、パケットのプロトコル処理を行う当該複数のスレッドの処理負荷を監視するステップと、
入力されたパケットを、複数の前記プロセッサにおける前記処理負荷に基づいて、複数の前記プロセッサのうち処理負荷が最も低いプロセッサを選択するステップと、
選択した前記プロセッサにおいて処理可能な前記複数のスレッドにおける処理負荷が予め定められた処理負荷になるように当該複数のスレッドに振り分けるステップと、
前記スレッドが割り当てられた領域毎に状態を監視するステップと、
前記複数のスレッドが並列して動作するように異なる領域にそれぞれスレッドを割り当てるステップと、
前記状態を監視するステップにより異常状態が検出された場合、異常状態が検出された領域に割り当てられているスレッドにパケットを振り分けないように制御するステップと、
を備えるパケット分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパケット処理装置、パケット振り分け装置、制御プログラム及びパケット分散方法に関し、特にマルチスレッド構成におけるパケット処理装置、パケット振り分け装置、制御プログラム及びパケット分散方法に関する。
【背景技術】
【０００２】
近年、通信装置又は演算装置等における処理高速化を実現するために、マルチプロセッサ構成が用いられている。さらに、それぞれのプロセッサの利用効率を向上させるために、マルチスレッドプロセッサが用いられている。マルチスレッドプロセッサを用いることにより、ひとつのプロセッサにおけるプログラム処理を並列化させることできる。また、ひとつのプロセッサにひとつのスレッドのみを有する場合においても、マルチプロセッサ化することにより、装置全体としては、複数のスレッドを並列に動作させることができる。マルチスレッド構成に関連して、以下の事項が開示されている。
【０００３】
特許文献１には、送信スレッド及び受信スレッドを装置内に複数有し、パケットの送受信を並列に動作させる構成が開示されている。
【０００４】
特許文献２には、ループ処理を実行するプログラムの実行時間を取得し、ループ処理をスレッドに割り当てるスケジューリングをする際に、それぞれのスレッドにおいてプログラムの実行時間が均等になるようにスケジューリングする構成が開示されている。
【０００５】
特許文献３には、マルチプロセッサシステム環境において、スレッドを実行するプロセッサを決定する方法が開示されている。例えば、優先度が設定されたスレッドについて、同一優先度が設定されたスレッドをグループ化する。グループ化された複数のスレッドは、同時にいずれかのプロセッサに割り当てられる。これにより、グループ化された複数のスレッドは、並列に処理される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−２０３２７号公報
【特許文献２】特開２００４−１５２２０４号公報
【特許文献３】特開２００６−１５５４８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１乃至３に開示されている構成及び方法においては、次のような問題が生じる。以下に、マルチプロセッサ環境もしくはシングルプロセッサ環境において、マルチスレッドが構成されている場合について説明する。このような場合、パケット処理装置に入力されたパケットをいずれかのスレッドに振り分け、プロトコル処理を実行する必要がある。しかし、特許文献１乃至３の何れにも、パケット処理装置に入力されたパケットのプロトコル処理を実行するために、適切なスレッドの選択方法については開示されていない。ここで、スレッドの選択方法として、入力パケットにおける送信元ＩＰアドレスのハッシュ値を計算し、その計算結果に基づいて、入力パケットが振り分けられるスレッドを選択する方法もある。しかし、このような方法においては、同一の送信元ＩＰアドレスを有するパケットが連続して入力された場合、スレッドの処理負荷を分散することができず、特定スレッドの処理負荷が高くなってしまう。
【０００８】
本発明は、このような問題を解決するためになされたものであり、特定スレッドにおける処理負荷を増加させることなく、入力パケットをスレッドへ振り分けることができるパケット処理装置、パケット振り分け装置、制御プログラム及びパケット分散方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の態様にかかるパケット処理装置は、複数のスレッドを処理可能なプロセッサと、パケットのプロトコル処理を行う前記複数のスレッドにおける処理負荷を監視する負荷監視部と、入力されたパケットを、前記負荷監視部によって監視された処理負荷に基づいて、前記複数のスレッドにおける処理負荷が予め定められた処理負荷になるように当該複数のスレッドに振り分ける制御を行う制御部と、を備えるものである。
【００１０】
本発明の第２の態様にかかるパケット振り分け装置は、複数のスレッドを処理可能なプロセッサにて、パケットのプロトコル処理を行う当該複数のスレッドの処理負荷を監視する負荷監視部と、入力されたパケットを、前記負荷監視部によって監視された処理負荷に基づいて、前記複数のスレッドにおける処理負荷が予め定められた処理負荷になるように当該複数のスレッドに振り分ける制御を行う制御部と、を備えるものである。
【００１１】
本発明の第３の態様にかかる制御プログラムは、複数のスレッドを処理可能なプロセッサにて、パケットのプロトコル処理を行う当該複数のスレッドの処理負荷を監視するステップと、入力されたパケットを、前記処理負荷に基づいて、前記複数のスレッドにおける処理負荷が予め定められた処理負荷になるように当該複数のスレッドに振り分けるステップと、をコンピュータに実行させるものである。
【００１２】
本発明の第４の態様にかかるパケット分散方法は、複数のスレッドを処理可能なプロセッサにて、パケットのプロトコル処理を行う当該複数のスレッドの処理負荷を監視するステップと、入力されたパケットを、前記処理負荷に基づいて、前記複数のスレッドにおける処理負荷が予め定められた処理負荷になるように当該複数のスレッドに振り分けるステップと、を備えるものである。
【発明の効果】
【００１３】
本発明により、特定のスレッドにおける処理負荷を増加させることなく、入力パケットをスレッドへ振り分けることができるパケット処理装置、パケット振り分け装置、制御プログラム及びパケット分散方法を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１にかかるパケット処理装置の構成図である。
【図２】実施の形態１にかかるパケット処理装置の構成図である。
【図３】実施の形態１にかかる負荷監視部の構成図である。
【図４】実施の形態１にかかる負荷監視部が有するデータベースのデータ構成である。
【図５】実施の形態１にかかる制御部のフローチャートである。
【図６】実施の形態２にかかるパケット処理装置の構成図である。
【図７】実施の形態２にかかる制御部のフローチャートである。
【発明を実施するための形態】
【００１５】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。図１を用いて、実施の形態１にかかるパケット処理装置の構成例について説明する。パケット処理装置１０は、プロセッサ２０と、負荷監視部３０と、制御部４０とを備えている。パケット処理装置は、ルータ、サーバ装置又はパーソナルコンピュータ等を含む。
【００１６】
プロセッサ２０は、複数のスレッドを処理することができる。本図においては、スレッド１からスレッドＭまでにおける複数のスレッドを処理する構成例について説明する。また、プロセッサ２０は、プロセッサ２０における処理を実行するプログラムに基づいて動作する、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）等により構成される。スレッドとは、プログラムが実行されるために、プロセッサの実行時間が割り当てられる基本単位である。プロセッサにおいて処理可能なスレッドに対して、時分割により実行時間が割り当てられることにより、複数のスレッドを並列に処理することができる。スレッドは、ソフトウェアにより、プロセッサにおいて並列処理されるように制御されてもよく、プロセッサのハードウェア資源を分割し、それぞれのハードウェア資源にスレッドを割り当ててもよい。
【００１７】
また、プロセッサは、パケット処理装置１０に複数存在してもよい。つまり、パケット処理装置１０は、マルチプロセッサにより構成されてもよい。パケット処理装置１０が、マルチプロセッサにより構成される場合、それぞれのプロセッサは、複数のスレッドを処理してもよく、一つのプロセッサのみ処理するようにしてもよい。
【００１８】
負荷監視部３０は、スレッド１乃至Ｍの処理負荷を監視する。負荷監視部３０は、スレッド１乃至Ｍそれぞれの処理負荷を制御部４０へ出力する。負荷監視部３０が監視することができる負荷とは、それぞれのスレッドにおける単位時間当たりのパケット処理占有時間であってもよく、単位時間当たりのスレッド使用率であってもよい。もしくは、単位時間あたりに処理されるパケット量であってもよい。
【００１９】
制御部４０は、負荷監視部３０から取得した処理負荷に基づいて、複数のスレッドにおける処理負荷が予め定められた処理負荷になるように、複数のスレッドに振り分ける制御を行う。予め定められた処理負荷とは、例えば、それぞれのスレッド毎にスレッド使用率に関する閾値を定めてもよい。これにより、閾値を超えているスレッドへのパケットの振り分けを行わず、閾値を超えていないスレッドの中で最もスレッド使用率の低いスレッドへ、パケットを割り振るようにしてもよい。閾値は、全てのスレッドにおいて同一の閾値を設定してもよく、全てのスレッドにおいて異なる閾値を設定してもよい。もしくは、スレッドを複数のグループに分類し、グループ毎に閾値を設定してもよい。複数のスレッドに対して、異なる閾値を設定することにより、例えば、処理能力の高いスレッドには、スレッド使用率が高い閾値を設定し、処理能力の低いスレッドには、スレッド使用率が低い閾値を設定することができる。このようにして処理能力の高いスレッドを長く動作させることにより、プロセッサの処理能力を向上させることができる。
【００２０】
以上説明したように、図１おけるパケット処理装置１０を用いることにより、スレッドの負荷状況により入力パケットをそれぞれのスレッドへ振り分けることができる。スレッドの負荷状況に基づいて、入力パケットの振り分けを行っているため、入力パケットの送信元ＩＰアドレス、パケットサイズ又はプロトコル種別等を意識する必要はない。そのため、複数のスレッドに並列に処理させることができるプロセッサの利用効率を向上させることができる。
【００２１】
続いて、図２を用いて本発明の実施の形態１にかかるパケット処理装置１０の詳細な構成例について説明する。図２におけるパケット処理装置１０は、プロセッサ２２及び２４と、負荷監視部３０と、制御部４０とを備えている。プロセッサ２２は、プロセッサを構成する回路のうち、演算処理を実行する回路であるＣＰＵコアであってもよい。図２においては、プロセッサを２つ備える構成を図示しているが、ＣＰＵコアを２つ備える構成としてもよい。
【００２２】
プロセッサ２２は、スレッド１乃至３を処理することができる。また、プロセッサ２４は、スレッド４乃至６を処理することができる。プロセッサ２２及び２４が処理することができるスレッド数は、これに限定されず、任意の数のスレッドを処理することができる。プロセッサ２２及び２４は、入力されたパケットについて、プロトコル処理を実施し外部装置へ送信する。もしくは、パケット処理装置１０宛てのパケットである場合には、入力されたパケットを終端する。
【００２３】
負荷監視部３０は、スレッド１乃至６におけるスレッド使用率を取得する。負荷監視部３０は、定期的にプロセッサ２２及び２４におけるそれぞれのスレッドにアクセスすることにより、スレッド使用率を取得してもよい。もしくは、負荷監視部３０は、プロセッサ２２もしくは２４から通知されるそれぞれのスレッド使用率を受信することにより、スレッド１乃至６におけるスレッド使用率を取得してもよい。
【００２４】
スレッド使用率は、例えば、所定の期間を１秒間とすると、１秒間のうちスレッドが入力パケットのプロトコル処理を実施していた時間によって定まる。スレッドが、１秒間のうち１００ミリ秒プロトコル処理を実施していた場合、スレッド使用率は１０％とあらわすことができる。また、図２のように複数のプロセッサを備える、いわゆるマルチプロセッサ構成の場合、プロセッサの使用率を併せて取得してもよい。プロセッサ使用率は、例えば、スレッド使用率の平均値としてもよい。
【００２５】
ここで、図３を用いて負荷監視部３０がスレッド使用率を取得する構成例について説明する。負荷監視部３０が有するデータベース３４は、それぞれのスレッド毎にスレッド使用率を管理している。負荷監視制御部３６は、データベース３４に、それぞれのスレッドのスレッド使用率を反映させるタイミングを制御する。つまり、負荷監視制御部３６の制御により、プロセッサ２２からそれぞれのスレッドにおけるスレッド使用率を取得し、取得したスレッド使用率をデータベース３４に反映させる。
【００２６】
図４は、データベース３４のデータ構成について示している。図４は、プロセッサとスレッドとの対応関係を示している。さらに、プロセッサ及びスレッドに関するスレッド使用率及びプロセッサ使用率を示している。負荷監視部３０は、プロセッサ２２及び２４とスレッド１乃至６とを監視することにより、図４に示されるデータベースを生成する。図４においては、スレッド使用率及びプロセッサ使用率に関するデータベースを示したが、負荷監視部３０は、それぞれのスレット及びプロセッサのパケット処理量に関するデータベースを生成してもよい。
【００２７】
図２に戻り、制御部４０は、負荷監視部３０が生成したデータベースの値、つまり、スレッド毎のスレッド使用率を取得し、入力パケットの振り分けを実施する。もしくは、スレッド毎のスレッド使用率と、プロセッサ毎のプロセッサ使用率とを取得し、入力パケットの振り分けを実施する。制御部４０は、パケットが入力される毎に、負荷監視部３０からデータベースの値を取得してもよく、定期的に負荷監視部３０からデータベースの値を取得してもよい。制御部４０は、スレッド１乃至６におけるスレッド使用率から、最も低い使用率のスレッドを抽出する。制御部４０は、抽出したスレッドに対して入力パケットの振り分けを行う。もしくは、制御部４０は、プロセッサ２２及び２４のプロセッサ使用率を取得した場合、次のようにプロセッサ使用率及びスレッド使用率を用いて入力パケットを振り分けるスレッドを決定してもよい。
【００２８】
制御部４０は、プロセッサ２２及び２４のうち、プロセッサ使用率が低いプロセッサを抽出する。図４に示す例においては、プロセッサ２２のプロセッサ使用率がプロセッサ２４のプロセッサ使用率よりも低いため、プロセッサ２２を抽出する。さらに、プロセッサ２２に対応付けられているスレッド１乃至３のうち、スレッド使用率が最も低いスレッドを抽出する。図４に示す例においては、スレッド１が抽出される。制御部４０は、抽出したスレッド１に対して、入力パケットの振り分けを行う。
【００２９】
制御部４０が、スレッド使用率のみを用いて入力パケットの振り分けを行う場合と、プロセッサ使用率も用いて入力パケットの振り分けを行う場合とにおいて、抽出されるスレッドは異なる。スレッド使用率のみを用いる場合、それぞれのスレッドにおいて、使用率を均一にするように入力パケットを振り分けることができる。また、プロセッサ使用率も用いる場合、それぞれのプロセッサにおける使用率を均一にするように入力パケットを振り分けることができる。
【００３０】
続いて、図５を用いて本発明の実施の形態１にかかる制御部４０の処理の流れについて説明する。はじめに、制御部４０は、負荷監視部３０におけるデータベース３４から、それぞれのスレッドにおけるスレッド使用率を取得する（Ｓ１１）。制御部４０は、図２のようにマルチプロセッサ構成の場合、スレッド使用率とともにプロセッサ使用率を併せて取得してもよい。
【００３１】
次に、制御部４０は、取得したスレッド使用率のうち、最小のスレッド使用率を示すスレッドを抽出する（Ｓ１２）。制御部４０は、図２のようにマルチプロセッサ構成の場合、プロセッサ使用率の低いプロセッサに対応付けられているスレッドのうち、最小のスレッド使用率を示すスレッドを抽出してもよい。次に、制御部４０は、ステップＳ１２において抽出されたスレッドを入力パケットの出力先として決定し、入力パケットを決定されたスレッドへ出力するよう制御を行う（Ｓ１３）。
【００３２】
以上説明したように、パケット処理装置は、スレッドの処理負荷に基づいて、入力パケットのプロトコル処理をするスレッドを決定することができる。そのため、シングルプロセッサ構成及びマルチプロセッサ構成によらず、プロセッサが複数のスレッドの処理を行う場合に、パケットサイズ又はプロトコル種別等に応じてパケットの処理を行う必要はない。これより、パケットサイズ又はプロトコル種別等を判別する複雑さを意識することなく、多様なパケットを負荷分散し処理することができる。これより、パケット処理装置の処理能力を向上させることができる。
【００３３】
さらに、パケット処理装置１０が、マルチプロセッサにより構成される場合、プロセッサ使用率を用いて出力先スレッドを決定することにより、複数プロセッサの使用率を実質的に均一にするように制御することができる。
【００３４】
（実施の形態２）
続いて、図６を用いて本発明の実施の形態２にかかるパケット処理装置の構成例について説明する。パケット処理装置５０は、プロセッサ６２及び６４と、負荷監視部７０と、制御部８０と、状態監視部７２とを備えている。プロセッサ６２が処理するスレッド１乃至３は、分割されたハードウェアの領域にそれぞれ割り当てられている。つまり、プロセッサ６２のハードウェア資源が分割され、分割されたハードウェア資源毎に、スレッド１乃至３が割り当てられている。ハードウェア資源が分割されたプロセッサは、プロセッサをアドレス領域により分割してもよく、異なるチップ等のハードウェアが組み合わされて構成されてもよい。プロセッサ６４は、プロセッサ６２と同様の構成になるため、説明を省略する。また、負荷監視部７０は、図２における負荷監視部３０と同様であるため、説明を省略する。
【００３５】
状態監視部７２は、スレッド１乃至６の異常状態を検出する。異常状態は、故障状態、障害状態等を含む。スレッド１乃至６は、それぞれ異なるハードウェア資源を用いているため、スレッド１乃至６が割り当てられているハードウェアを監視することにより、異常状態を検出することができる。状態監視部７２は、定期的にそれぞれのスレッドに対して信号を出力し、出力した信号に対する信号が返信されてこない場合に、異常状態が発生していると判定してもよい。もしくは、状態監視部７２は、スレッドが割り当てられているハードウェアの異常状態を検出したプロセッサからスレッドの異常状態が通知されることにより、異常状態を検出してもよい。
【００３６】
制御部８０は、状態監視部７２から異常状態のスレッドに関する情報を取得する。この場合、制御部８０は、入力パケットを割り振るスレッドの対象から、異常状態のスレッドを除外する。例えば、制御部８０は、異常状態のスレッドに関するスレッド使用率を、負荷監視部７０から取得しないことにより、異常状態のスレッドを除外してもよい。もしくは、負荷監視部７０から取得したスレッド使用率の中から、異常状態のスレッドに関するスレッド使用率を無視又は削除し、異常状態のスレッドを除外してもよい。制御部８０は、異常状態のスレッドを除外した後のスレッドに関するスレッド使用率のうち、最小のスレッド使用率を示すスレッドを抽出する。制御部８０は、入力されたパケットを抽出したスレッドに対して振り分けるよう制御を行う。
【００３７】
続いて、図７を用いて本発明の実施の形態２にかかる制御部８０の処理の流れについて説明する。はじめに、制御部８０は、状態監視部７２から、異常状態のスレッドの有無が設定された情報を取得する（Ｓ２１）。制御部８０は、定期的に状態監視部７２から異常状態のスレッドが存在するか否かについての情報を取得してもよく、状態監視部７２において、異常状態のスレッドが検出された場合にのみ、状態監視部７２から情報を取得してもよい。
【００３８】
次に、制御部８０は、状態監視部７２から取得した情報に、異常状態のスレッドが存在するか否かを判定する（Ｓ２２）。異常状態のスレッドが存在する場合、制御部８０は、入力パケットを割り振るスレッドの対象から、異常状態のスレッドを除外する（Ｓ２３）。異常状態のスレッドが存在しない場合及び異常状態のスレッドを除外する処理が実施された場合、制御部８０は、負荷監視部７０からそれぞれのスレッドに関するスレッド使用率を取得する（Ｓ２４）。ステップＳ２５以降は、図５のステップＳ１２及び１３と同様であるため、説明を省略する。
【００３９】
以上説明したように、本発明の実施の形態２にかかるパケット処理装置を用いることにより、異常状態のスレッドを検出し、当該スレッドを、振り分け対象スレッドから除外することができる。そのため、入力パケットの処理を中断する事象を回避することができる。
【００４０】
（実施の形態３）
続いて、図６の構成を用いて、本発明の実施の形態３にかかる制御部８０の動作について説明する。実施の形態２においては、プロセッサ６２が処理をすることができる複数のスレッドが独立に処理される場合の動作について記載している。つまり、あるスレッドの処理が、他のスレッドの処理による影響を受けることがない場合の動作について記載している。実施の形態３においては、同一プロセッサ内の複数のスレッドにおいて、あるスレッドの処理と他のスレッドの処理とが関連する場合の動作について説明する。
【００４１】
制御部８０は、上述したように関連性を有するスレッドにおいて処理する必要があるパケットが入力された場合、同一のプロセッサ内のスレッドに振り分けるように制御を行う。入力パケットをスレッドに振り分ける際は、実施の形態１及び２と同様、スレッド使用率等が均一になるように振り分ける制御を行う。例えば、同一のアドレスから送信されたパケットが複数のスレッドにおける処理に関連する場合、同一のアドレスから送信された入力パケットは、同一プロセッサ内のスレッドに振り分けるよう制御を行ってもよい。このように制御することにより、同一のアドレスから送信された入力パケットを、異なるプロセッサに振り分けられないように制御することができる。
【００４２】
以上説明したように、本発明の実施の形態３におけるパケット処理装置を用いることにより、互いに関連性のあるスレッドにおいて処理される必要のあるパケットを、同一プロセッサ内のスレッドに振り分けることができる。これにより、スレッド間の連携が必要な処理を行う場合において、プロセッサ内のみの通信により、スレッド間の連携が必要な処理を行うことができる。つまり、互いに関連性のあるスレッドにおいて処理される必要のあるパケットが異なるプロセッサに割り振られることにより、プロセッサ間通信が発生することを防止することができる。また、実施の形態１及び２と同様、プロセッサ内におけるスレッドの使用率を均一になるように制御することもできる。
【００４３】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【００４４】
また、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、記録媒体に記録して提供することも可能であり、また、インターネットその他の通信媒体を介して伝送することにより提供することも可能である。また、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭカートリッジ、バッテリバックアップ付きＲＡＭメモリカートリッジ、フラッシュメモリカートリッジ、不揮発性ＲＡＭカートリッジ等が含まれる。また、通信媒体には、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体等が含まれる。
【符号の説明】
【００４５】
１０  パケット処理装置
２０  プロセッサ
２２  プロセッサ
２４  プロセッサ
３０  負荷監視部
３２  状態監視部
３４  データベース
３６  負荷監視制御部
４０  制御部
５０  パケット処理装置
６２  プロセッサ
６４  プロセッサ
７０  負荷監視部
７２  状態監視部
８０  制御部
【図１】
0005526748.tif 000002
【図２】
0005526748.tif 000003
【図３】
0005526748.tif 000004
【図４】
0005526748.tif 000005
【図５】
0005526748.tif 000006
【図６】
0005526748.tif 000007
【図７】
0005526748.tif 000008