(57)【特許請求の範囲】
【請求項１】
ネットワークインターフェース部とアプリケーションとを備えるコンピュータにより構成されるパケット処理装置であって、
前記ネットワークインターフェース部からのパケットの読み取りを行う第１のパケット制御手段と、
前記アプリケーションに対して前記パケットの通知を行う第２のパケット制御手段と、
前記第１のパケット制御手段に対するＣＰＵリソースの割り当て、及び前記第２のパケット制御手段に対するＣＰＵリソースの割り当てを行うＣＰＵ制御管理手段と、
を備えることを特徴とするパケット処理装置。
【請求項２】
前記第１のパケット制御手段の処理は前記コンピュータにおける１つ又は複数のＣＰＵに割り当てられ、前記第２のパケット制御手段の処理は前記コンピュータにおける１つ又は複数のＣＰＵに割り当てられ、
前記ＣＰＵ制御管理手段は、ＣＰＵ毎に、ＣＰＵに流入するパケット量に基づいて、ＣＰＵ稼働率を決定する
ことを特徴とする請求項１に記載のパケット処理装置。
【請求項３】
前記ＣＰＵ制御管理手段は、前記第２のパケット制御手段に対して、パケットを前記アプリケーションに通知するための通知インターフェースの情報を設定する
ことを特徴とする請求項１又は２に記載のパケット処理装置。
【請求項４】
コンピュータを請求項１ないし３のうちいずれか１項に記載のパケット処理装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットの送受信処理を行う装置に関連するものであり、特に、汎用コンピュータを用いてパケットの送受信処理を行う技術に関連するものである。
【背景技術】
【０００２】
従来技術として、ＡＴＣＡ（Ａｄｖａｎｃｅｄ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｃｏｍｐｕｔｉｎｇ  Ａｒｃｈｉｔｅｃｔｕｒｅ）や高機能エッジルータ等の専用ハードウェアで実現しようとしていた「高スループット、低レイテンシ」のパケット送受信処理を、汎用コンピュータ上のソフトウェアで実現するためのＩ／Ｏフレームワークが存在する。
【０００３】
当該Ｉ／Ｏフレームワークは、割り込み処理等のカーネルの機能を排除して、汎用コンピュータ上でパケット処理に携わるＣＰＵコアを可能な限り占有することでパケット処理を高速に行うことを可能とする技術である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−０２８７０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記Ｉ／Ｏフレームワークの技術では、常時ＣＰＵリソースを使う必要があるため、発熱の発生、ＣＰＵ故障率の上昇、電力消費の上昇等の問題がある。
【０００６】
本発明は上記の点に鑑みてなされたものであり、高速にパケットの送受信処理を行うコンピュータにおいて、ＣＰＵリソース制御を適切に行うことを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の実施の形態によれば、ネットワークインターフェース部とアプリケーションとを備えるコンピュータにより構成されるパケット処理装置であって、
前記ネットワークインターフェース部からのパケットの読み取りを行う第１のパケット制御手段と、
前記アプリケーションに対して前記パケットの通知を行う第２のパケット制御手段と、
前記第１のパケット制御手段に対するＣＰＵリソースの割り当て、及び前記第２のパケット制御手段に対するＣＰＵリソースの割り当てを行うＣＰＵ制御管理手段と、
を備えることを特徴とするパケット処理装置が提供される。
【発明の効果】
【０００８】
本発明の実施の形態によれば、高速にパケットの送受信処理を行うコンピュータにおいて、ＣＰＵリソース制御を適切に行うことを可能とする技術が提供される。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態に係るシステムの構成例を示す図である。
【図２】ＣＰＵ制御装置１００の構成図である。
【図３】ＣＰＵ制御の動作概要を説明するための図である。
【図４】ＣＰＵ管理制御部１３１で管理される情報の例を示す図である。
【図５】パケット制御手順を説明するためのフローチャートである。
【図６】ＣＰＵ制御手順を説明するためのフローチャートである。
【図７】ＣＰＵ利用状況例（ＣＰＵ制御装置適用前）を示す図である。
【図８】ＣＰＵ利用状況例（ＣＰＵ制御装置適用後）を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【００１１】
（システム構成例）
本実施の形態では、汎用コンピュータにより構成されるＣＰＵ制御装置１００が提供される。図１は、本実施の形態におけるＣＰＵ制御装置１００が適用されるシステムの一例を示す図である。なお、ＣＰＵ制御装置１００は、パケットの処理を行うことから、これをパケット処理装置と称してもよい。
【００１２】
図１は、ルータ１〜３を含む多数のルータで構成される電気通信事業者網１０の例を示している。図１の例では、電気通信事業者網１０には、他事業会社等の網２０が接続されている。また、加入者の宅内装置４、５が接続されている。
【００１３】
図１には、電気通信事業者網１０を構成する機能としてルータ１〜３が示されているが、その他にも、電気通信事業者網１０には、アクセスサーバ、コンテンツ配信サーバ等、パケットの送受信を行う各種の機能が備えられる。
【００１４】
本実施の形態におけるＣＰＵ制御装置１００は、電気通信事業者網１０を構成する上記の各機能をアプリケーション（プログラム）として実装するものである。上記の各機能の実装にＣＰＵ制御装置１００を用いることで、設備投資、維持管理のコストを低減でき、また、通常のプログラムで機能を自在に記述できるため、事業会社特化の機能盛り込みも自在に実現可能となる。
【００１５】
なお、ＣＰＵ制御装置１００を、電気通信事業者網１０を構成する機能の実現のために使用することは一例である。ＣＰＵ制御装置１００はパケット送受信を行う様々な分野に適用可能であり、その用途に特に限定はない。
【００１６】
（装置構成）
ＣＰＵ制御装置１００は、ハードウェアとしては、汎用コンピュータの構成を持つ。すなわち、ＣＰＵ制御装置１００は、ＣＰＵ、メモリ、ＮＩＣ（Ｎｅｔｗｏｒｋ  ｉｎｔｅｒｆａｃｅ  ｃｏｎｔｒｏｌｌｅｒ）等を備える。
【００１７】
なお、以下、ＣＰＵ制御装置１００の機能構成及び動作に関して説明する「ＣＰＵ」は、ハードウェアのＣＰＵであってもよいし、仮想的なＣＰＵであってもよい。また、本実施の形態において、「ＣＰＵ」は、計算リソースを割り当てる単位（言い換えると、稼働率を制御する単位）である。また、本実施の形態においては、コア（ＣＯＲＥ）と「ＣＰＵ」は同義と考えてよい。すなわち、以下で説明するコア（ＣＯＲＥ）を「ＣＰＵ」に置き換えてもよい。
【００１８】
図２に、本実施の形態におけるＣＰＵ制御装置１００の機能構成を示す。図２に示す構成は、コンピュータであるＣＰＵ制御装置１００に搭載されるプログラムと、ＣＰＵやメモリ等のハードウェアとが協働して実現される機能の構成である。
【００１９】
図２に示すように、ＣＰＵ制御装置１００は、アプリケーション（ＡＰＬ）１４１、１４２、及び、Ｉ／Ｏフレームワーク１１０を含み、アプリケーション１４１、１４２とＩ／Ｏフレームワーク１１０との間に、ＣＰＵ制御部１３０が備えられる。
【００２０】
各アプリケーションは、例えば、前述した電気通信事業者網１０を構成するルータにおけるルーティング制御等の機能をコンピュータに実現させるためのプログラムである。Ｉ／Ｏフレームワーク１１０は、前述したように、割り込み処理等のカーネルの機能を排除して汎用コンピュータ上でのパケット処理を高速に行うことを可能とする機能部である。Ｉ／Ｏフレームワークとしては、一例として、ｎｅｔｍａｐ等がある。なお、本実施の形態では、Ｉ／Ｏフレームワーク１１０を使用する形態を示しているが、本発明に係るＣＰＵ制御のための手段は、Ｉ／Ｏフレームワーク１１０を使用しない構成でも適用可能である。
【００２１】
Ｉ／Ｏフレームワーク１１０にはＮＩＣ１０１、１０２が接続される。ＮＩＣキュー１２０は、ＮＩＣを介して送受信されるパケットを格納するバッファ（記憶部）である。ＮＩＣキュー１２０とＮＩＣ１０１、１０２を含めてＮＩＣと称してもよい。なお、図２に示す例では、ＡＰＬが２つ、ＮＩＣが２つ備えられているが、これは一例に過ぎない。
【００２２】
ＣＰＵ制御部１３０は、各ＣＰＵに対するパケット送受信処理を制御する機能部である。ＣＰＵ制御部１３０は、ＣＰＵ制御管理部１３１、パケット制御部１３２〜１３４、アプリケーション（ＡＰＬ）キュー１３５、１３６を有する。ここでは、３つのパケット制御部が示され、２つのＡＰＬキューが示されているが、これは一例に過ぎない。
【００２３】
ＣＰＵ制御管理部１３１、パケット制御部１３２、パケット制御部１３３、及びパケット制御部１３４は、それぞれ、１ＣＰＵに割り当てられた機能部であることを想定している。つまり、各機能部の処理は、対応するＣＰＵに割り当てられ、当該ＣＰＵで実行されるプログラムにより実現される。ＣＰＵ制御管理部、パケット制御部をそれぞれ「ＣＰＵ」と称する場合もある。
【００２４】
なお、１ＣＰＵを１機能部に割り当てることは一例に過ぎず、複数機能部が１ＣＰＵに割り当てられていてもよいし、１機能部が複数ＣＰＵに割り当てられていてもよい。
【００２５】
本実施の形態では、外部からのパケット受信処理を高速に制御するために、ＮＩＣ（より具体的にはＮＩＣキュー１２０）からのパケット刈り取りを行う処理（刈り取り処理）と、ＡＰＬへのパケットの通知を行う処理（通知処理）のそれぞれを異なるＣＰＵに割り当てることとしており、パケット制御部１３２〜１３４のうちのいずれかが刈り取り処理のＣＰＵに対応し、その他が通知処理のＣＰＵに対応する。
【００２６】
また、ＡＰＬへのパケットの通知を行う処理を行うパケット制御部は、通知ＩＦ（インターフェース）（ＡＰＬ−ＩＦと称してもよい）を有する。通知ＩＦは、仮想的なソケットに相当し、その実体は、例えば、ＩＰアドレス（宛先、送信元、又は、宛先と送信元の両方）と、ポート番号（宛先、送信元、又は、宛先と送信元の両方）と、これらに対応するＡＰＬの識別情報とを含む情報であり、当該情報は、ＣＰＵ制御管理部１３１、ＡＰＬ１４１、ＡＰＬ１４２等から該当パケット制御部に対して設定される。ＡＰＬへのパケットの通知を行う処理を行うパケット制御部（ＣＰＵ）には、複数の通知ＩＦが割り当てられてもよい。
【００２７】
パケット制御部は、自身に対応するＡＰＬキューに格納されたパケットを読み取り、当該パケットのヘッダ情報（ＩＰアドレス、ポート番号）に対応する通知ＩＦのＡＰＬに対して当該パケットを通知する動作を行う。本実施の形態において、ＡＰＬキューは、パケット通知処理を行うパケット制御部毎に備えられてもよいし、ＡＰＬ毎（つまり、ＡＰＬ−ＩＦ毎）に備えられてもよい。
【００２８】
また、各パケット制御部は、流入する（キューから読み取る）パケットをカウントし、カウント値を保持する機能と、ＣＰＵ制御管理部１３１からの設定に基づき、自身が割り当てられているＣＰＵの動作を休止する制御を行う機能を含む。
【００２９】
ＣＰＵ制御管理部１３１は、パケット制御部として動作するＣＰＵ毎のパケットカウント値に基づいて、ＣＰＵの休止時間（各周期での休止時間）を決定し、当該休止時間を該当のパケット制御部に設定する機能を含む。パケットカウント値に基づいて、ＣＰＵの休止時間を決定することは一例であり、例えば、外部からの設定により休止時間を決定してもよい。外部からの設定としては、時間帯毎に休止時間を決定する例がある。例えば、夜の時間帯は、ＣＰＵ稼働率が低くなるように休止時間を設定する、といった制御を行うことが可能である。
【００３０】
パケットカウント値に基づいて、ＣＰＵの休止時間を決定するにあたっては、バースト的なパケット流入量の増分でＣＰＵ休止時間を変動させることがないよう、ＣＰＵ制御管理部１３１は、各パケット制御部（各ＣＰＵ）のカウンタ値の一定時間間隔のデータ（ヒストリ）を保持する。そして、ＣＰＵ制御管理部１３１は、当該ヒストリに基づいて、現時点でのパケットカウント値がバースト的な値か、それとも継続的な値かを判断し、バースト的な値を用いずに、継続的な値を用いて休止時間を決定する。ＣＰＵ制御管理部１３１は、ＣＰＵの休止時間判断に使用しなくなったヒストリを適宜削除することとしてよい。
【００３１】
上記のような機能により、最速で処理したい場合はパケット制御に係るＣＰＵ稼働率を１００％にして、最忙期以外は自律的あるいは外部からの指示に応じて、ＣＰＵリソースの割り当てを行うことが可能となる。つまり、最忙期以外においては、パケット制御部として機能させているＣＰＵの一部のリソースを他の処理に使用するといった制御を実現することができる。
【００３２】
本実施の形態に係るＣＰＵ制御装置１００は、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、ＣＰＵ制御装置１００が有する機能は、当該コンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００３３】
（ＣＰＵ制御装置１００の動作概要）
次に、図３〜図５を参照して、ＣＰＵ制御装置１００の動作概要を説明する。図３に示す構成は、図２に示す構成に対応するが、特に、各パケット制御部（ＣＰＵ）がどのような処理に割り当てられているかがわかるように、より具体的に示したものである。
【００３４】
図３の例では、アプリケーションとしてＡＰＬ０１〜０３が備えられ、ＮＩＣとしてＮＩＣ０１、ＮＩＣ０２が備えられている。また、図３には、各パケット制御部に対応するＣＯＲＥ（コア）が示されている。図３の説明では、パケット制御部をＣＯＲＥと呼ぶことにする。
【００３５】
図３に示すように、ＡＰＬ−ＩＦ／ＣＯＲＥ／ＮＩＣの関係が予め定義されている。このような定義のための設定情報（関係定義情報と呼ぶ）は、ＣＰＵ制御管理部１３１が保持している。図４（ａ）に、ＣＰＵ制御管理部１３１が保持する関係定義情報の例を示す。図４（ａ）の定義は、図３に対応している。
【００３６】
図４（ａ）に示すとおり、ＮＩＣ（Ｎ０１）はＣＯＲＥ０１に対応し、ＮＩＣ（Ｎ０２）はＣＯＲＥ０２及びＣＯＲＥ０３に対応する。
【００３７】
また、ＡＰＬ−ＩＦ（Ｓ０１）は、｛ＣＯＲＥ０４，高，ＬＥＶＥＬ２｝として対応付けがなされている。ここで、ＡＰＬ−ＩＦ（Ｓ０１）＝｛ＣＯＲＥ０４，高，ＬＥＶＥＬ２｝は、パケットが多い場合に、ＡＰＬ−ＩＦ（Ｓ０１）に対してＣＯＲＥ０４を高優先に割り当てることを意味する。すなわち、ＣＯＲＥ０４へのパケット流入量のレベルがＬＥＶＥＬ２以上であれば、低優先のＡＰＬ−ＩＦ側へのＣＰＵリソースを割り当てず、ＡＰＬ０１に対するＣＯＲＥ０４を高い稼働率で稼働させてＡＰＬ０１へのパケット通知を行わせる。また、パケット流入量のレベルがＬＥＶＥＬ３以下であれば、ＡＰＬ０２及びＡＰＬ０３側のＣＰＵリソースの割り当てを可能とする。
【００３８】
また、「ＡＰＬ−ＩＦ（Ｓ０２）＝｛ＣＯＲＥ０４，低｝，ＣＯＲＥ０５」、「ＡＰＬ−ＩＦ（Ｓ０３）＝｛ＣＯＲＥ０４，低｝，ＣＯＲＥ０５」として対応付けがなされている。「ＡＰＬ−ＩＦ（Ｓ０２）＝｛ＣＯＲＥ０４，低｝，ＣＯＲＥ０５」は、ＡＰＬ０２へのパケット通知処理を通常はＣＯＲＥ０５が行い、ＣＯＲＥ０４において高優先の処理を行わない場合に、ＣＯＲＥ０４もＡＰＬ０２へのパケット通知処理を行うことができることを示している。「ＡＰＬ−ＩＦ（Ｓ０３）＝｛ＣＯＲＥ０４，低｝，ＣＯＲＥ０５」についても同様である。
【００３９】
ＣＰＵ制御管理部１３１は、更に、ＣＰＵ毎（ＣＯＲＥ毎）にＣＰＵ稼働率の制御内容の情報を設定情報として保持している。図４（ｂ）に、当該設定情報の一部を示す。図４（ｂ）において、例えば、ＣＯＲＥ０１、ＣＯＲＥ０２に対する「ＬＥＶＥＬ１＝１００％  ｐａｃｋｅｔ＞＝１０００／ｓｅｃ」は、ＣＯＲＥ０１、ＣＯＲＥ０２のそれぞれについて、流入するパケットの個数（カウント値）が、１０００個／秒よりも多ければＬＥＶＥＬ１として、１００％で当該ＣＯＲＥを稼働させる。他の例も同様である。なお、図４（ｂ）に示す例では、流入量を、単位時間あたりのパケットの個数としているが、これは例に過ぎず、他の量を用いてもよい。例えば、単位時間あたりのデータ量（Ｍｂｙｔｅ等）を用いてもよい。
【００４０】
ＣＰＵ制御管理部１３１は、当該設定情報とパケットカウント値に基づいて、ＣＰＵ毎の休止時間を決定する。例えば、稼働率が５０パーセントであれば、パケット制御部として機能するＣＰＵのリソースは、全体時間のうちの半分がパケット制御に用いられ、残りの時間はＣＰＵを休止させる。または、残りの時間をパケット制御以外の他の処理に割り当てることとしてもよい。
【００４１】
図３を参照して、一例として、ＮＩＣ（Ｎ０１）からＡＰＬ０２に至るパケットの流れに関しての動作例を説明する。
【００４２】
ＣＯＲＥ０１がＮＩＣ（Ｎ０１）のパケットをＮＩＣキューから刈り取るとともに、ＡＰＬへの通知を行うＣＯＲＥ（ここではＣＯＲＥ０５とする）に対応するＡＰＬキューにパケットを格納する。ＣＯＲＥ０１がどのＡＰＬキューを選択するかは、ＣＰＵ制御管理１３１からの設定に基づく。
【００４３】
例えば、ＣＯＲＥ０１は、各通知ＩＦの情報（ＩＰアドレス、ポート番号、ＡＰＬのＩＤ等）をＣＰＵ制御管理１３１からの設定により保持しており、当該設定情報に基づいて、ＮＩＣキューから刈り取ったパケットを、当該パケットに対応するＡＰＬのＡＰＬキューに格納する。ＣＯＲＥ０５は、上記ＡＰＬキューからパケットを読み取り、ＡＰＬ０２に通知する。
【００４４】
なお、本実施の形態では、外部要因となるパケット受信処理を高速に制御するための動作を主に説明しているが、パケットを外部に送信する場合の処理も受信する場合と同様に実行可能である。
【００４５】
（パケット制御部の詳細処理例）
図５を参照して、あるパケット制御部（パケット制御に割り当てられたＣＰＵ）に着目した場合における、当該パケット制御部の動作手順の例を説明する。
【００４６】
各パケット制御部（ＣＰＵ）は、所定の周期で処理を行っている。ステップＳ１０１にて、当該周期処理を開始する。パケット制御部は、ＣＰＵ制御管理部１３１からＣＰＵ休止期間を取得し（ステップＳ１０２）、当該ＣＰＵ休止期間の情報に基づいて、所定期間、ＣＰＵを休止する（ステップＳ１０３）。既に説明したように、休止期間及び休止タイミングは、例えば、パケットカウント値と、パケット流入量とＣＰＵ稼働率との関係を示す設定情報とに基づき決定されたものである。
【００４７】
休止の後、当該パケット制御部がＮＩＣを監視するもの（例：図４（ｂ）における"Ｎ０１＝ＣＯＲＥ０１"として設定されたＣＯＲＥ０１）である場合（ステップＳ１０４のＹｅｓ）、当該パケット制御部は、ＮＩＣキュー１２０からのパケットの読み込みを行う（ステップＳ１０５）。パケットのデータが有る場合（ステップＳ１０６のＹｅｓ）、パケット制御部は、パケットカウンタをカウントアップし、パケットカウンタ値を更新する。
【００４８】
パケット制御部は、ＣＰＵ制御管理部１３１からの設定等に基づいて、ＡＰＬキューを選択し（ステップＳ１０８）、パケットを当該ＡＰＬキューに書き込む（ステップＳ１０９）。
【００４９】
ステップＳ１０４の判定がＮｏの場合、すなわち、対象としているパケット制御部がＡＰＬ通知処理を行うもの（例：図４（ｂ）におけるＣＯＲＥ０４等）である場合、当該パケット制御部は、対応するＡＰＬキューからパケット読み込みを行う（ステップＳ１１１）。パケットデータが有る場合（ステップＳ１１２のＹｅｓ）、パケットカウンタ値を更新する（ステップＳ１１３）。また、当該パケットがＡＰＬ通知条件に該当する場合（ステップＳ１１４のＹｅｓ）に、パケットを該当ＡＰＬに通知する（ステップＳ１１５）。ステップＳ１１６において周期処理を終了する。
【００５０】
ステップＳ１１１において、読み込みの対象とするＡＰＬキューは、例えば、当該パケット制御部に割り当てられたＡＰＬ−ＩＦに対応するＡＰＬのＡＰＬキューである。また、ステップＳ１１４におけるＡＰＬ通知条件とは、例えば、読み込んだパケットが、当該パケット制御部に割り当てられたＡＰＬ−ＩＦのＩＰアドレス及びポート番号に該当するか否かの条件である。
【００５１】
（ＣＰＵ制御管理部の詳細処理例）
次に、ＣＰＵ制御管理部１３１の動作例を図６のフローチャートを参照して説明する。ここでは、まず、外部からの設定により、監視間隔の設定がなされる（ステップＳ２０１）。本実施の形態では、当該監視間隔により、ＣＰＵ制御管理部１３１として動作するＣＰＵの休止時間が定められる。例えば、監視間隔を１００とし、監視の処理に掛かる時間（図６のステップＳ２０４〜Ｓ２０７）が５０であるとすると、５０が休止期間となる。
【００５２】
ステップＳ２０２にて、周期処理が開始される。ステップＳ２０３において、ＣＰＵ制御管理部１３１は、監視間隔に基づいて自身のＣＰＵを休止する。
【００５３】
休止の後、ＣＰＵ制御管理部１３１は、パケット制御部として割り当てられたＣＰＵ毎のパケットカウンタ値を各パケット制御部から読み取り（ステップＳ２０４）、当該カウント値と設定情報（例：図４（ｂ））とに基づいて、パケット制御部（ＣＰＵ）毎の休止時間を決定する（ステップＳ２０５）。
【００５４】
前述したように、ＣＰＵ制御管理部１３１は、バースト的なパケット流入量の増分でＣＰＵ休止時間を変動させることがないよう、一定期間内での流入量に基づいて休止時間を決定する。
【００５５】
ＣＰＵ制御管理部１３１は、新たなパケット制御部（ＣＰＵ）毎の休止時間を、例えば、該当パケット制御部における所定の記憶部に書き込み（ステップＳ２０６）、不要なパケット制御部（ＣＰＵ）毎のカウンタ値のヒストリを削除する（ステップＳ２０７）。ステップＳ２０８にて、周期処理を終了する。
【００５６】
（実施の形態の効果について）
図７に、本実施の形態に係るＣＰＵ制御を適用しない場合におけるＣＰＵ利用状況例を示す。
【００５７】
図７に示すように、ＣＰＵ制御を適用しない場合、パケット制御のために使用される各ＣＰＵの稼働率は常に１００％となり、電力等の無駄が多い。ピークタイムが１３：００〜１８：００であるシステムの場合でも、夜間等それ以外の時間でＣＰＵリソースが無駄に消費されてしまう。また、夜間に重い処理をコンピュータで実施したい場合でも、ＣＰＵリソースが２コア分しか空いていないため、システムオフタイムでの活動に制限が出てくる。
【００５８】
図８に、本実施の形態に係るＣＰＵ制御を適用する場合におけるＣＰＵ利用状況例を示す。
【００５９】
図８に示すように、ＣＰＵ制御を適用する場合、パケット処理に必要なＣＰＵ割当が可能となるため、最忙期での性能を損なわず、発熱の発生、ＣＰＵ故障率の上昇、電力消費の課題を解決することができる。システムオフタイム時では、余剰ＣＰＵを夜間バッチ処理等様々な用途にも利用することができる。
【００６０】
以上、説明したように、本実施の形態により、ネットワークインターフェース部とアプリケーションとを備えるコンピュータにより構成されるパケット処理装置であって、前記ネットワークインターフェース部からのパケットの読み取りを行う第１のパケット制御手段と、前記アプリケーションに対して前記パケットの通知を行う第２のパケット制御手段と、前記第１のパケット制御手段に対するＣＰＵリソースの割り当て、及び前記第２のパケット制御手段に対するＣＰＵリソースの割り当てを行うＣＰＵ制御管理手段と、を備えることを特徴とするパケット処理装置が提供される。
【００６１】
前記第１のパケット制御手段の処理は前記コンピュータにおける１つ又は複数のＣＰＵに割り当てられ、前記第２のパケット制御手段の処理は前記コンピュータにおける１つ又は複数のＣＰＵに割り当てられ、前記ＣＰＵ制御管理手段は、例えば、ＣＰＵ毎に、ＣＰＵに流入するパケット量に基づいて、ＣＰＵ稼働率を決定する。
【００６２】
前記ＣＰＵ制御管理手段は、前記第２のパケット制御手段に対して、パケットを前記アプリケーションに通知するための通知インターフェースの情報を設定することとしてもよい。
【００６３】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００６４】
１〜３  ルータ
４、５  宅内装置
１０  電気通信事業者網
２０  他事業会社等の網
１００  ＣＰＵ制御装置
１０１、１０２  ＮＩＣ
１１０  Ｉ／Ｏフレームワーク
１２０  ＮＩＣキュー
１３０  ＣＰＵ制御部
１３１  ＣＰＵ制御管理部
１３２〜１３４  パケット制御部
１３５、１３６  アプリケーション（ＡＰＬ）キュー
１４１、１４２  アプリケーション（ＡＰＬ）
【図１】
0006491944.tif 000002
【図２】
0006491944.tif 000003
【図３】
0006491944.tif 000004
【図４】
0006491944.tif 000005
【図５】
0006491944.tif 000006
【図６】
0006491944.tif 000007
【図７】
0006491944.tif 000008
【図８】
0006491944.tif 000009