(57)【特許請求の範囲】
【請求項１】
所定の保留時間経過後にネットワークアダプタがパケット受信通知として割り込み処理を実行し、当該割り込み処理の受付を契機として行われる受信パケットの通信処理をコンピュータに実行させる通信プログラムであって、
単位時間あたりに前記ネットワークアダプタによって受信された受信パケットの数を計測するパケット数計測手順と、
所定の間隔で区分けして設定されたパケット数値範囲ごとに、前記保留時間を決定するためのタイマパラメータ値を変更したときのＣＰＵ使用率を計測するシミュレーションを実行し、各パケット数値範囲に対応付けて、各タイマパラメータ値ごとのＣＰＵ使用率をシミュレーション結果として記憶部に記憶させるシミュレーション結果記憶手順と、
前記パケット数計測手順により計測された受信パケットの数に対応するパケット数値範囲を前記記憶部に記憶されているパケット数値範囲の中から選択し、選択したパケット数値範囲に対応付けられたタイマパラメータ値のＣＰＵ使用率と、予め設定されたＣＰＵ使用率の目標値とを比較し、前記ＣＰＵ使用率の目標値よりも小さく、かつ最小となるタイマパラメータ値に変更するパラメータ値変更手順と、
をコンピュータに実行させることを特徴とする通信プログラム。
【請求項２】
所定の保留時間経過後にネットワークアダプタがパケット受信通知として割り込み処理を実行し、当該割り込み処理の受付を契機として行われる受信パケットの通信処理をコンピュータに実行させる通信プログラムであって、
単位時間あたりに前記ネットワークアダプタによって受信された受信パケットの数を計測するパケット数計測手順と、
前記パケット数計測手順による計測結果と、予め設定された前記通信処理に要する通信処理時間と、予め設定された前記割り込み処理に要する割り込み処理時間とに基づいて、前記保留時間を決定するためのタイマパラメータ値ごとにＣＰＵ使用率を算出するＣＰＵ使用率算出手順と、
前記ＣＰＵ使用率算出手順により算出されたＣＰＵ使用率と、予め設定されたＣＰＵ使用率の目標値とを比較し、前記ＣＰＵ使用率の目標値よりも小さく、かつ最小となるタイマパラメータ値に変更するパラメータ値変更手順と、
をコンピュータに実行させることを特徴とする通信プログラム。
【請求項３】
前記パラメータ値変更手順は、予め設定された単位時間あたりに処理を行う目標パケット数よりも前記パケット数計測手順による計測結果のほうが少ない場合には、前記タイマパラメータ値を小さい方に変更し、前記目標パケット数よりも前記パケット数計測手順による計測結果のほうが多い場合には、前記タイマパラメータ値を大きい方に変更することを特徴とする請求項１または２に記載の通信プログラム。
【請求項４】
前記パラメータ値変更手順は、前回タイマパラメータ値を変更したときから一定の時間が経過したか否かを判定し、一定の時間が経過していると判定した場合には、前記タイマパラメータ値を変更することを特徴とする請求項１〜３のいずれか１つに記載の通信プログラム。
【請求項５】
所定の保留時間経過後にネットワークアダプタがパケット受信通知として割り込み処理を実行し、当該割り込み処理の受付を契機として受信パケットを通信処理する通信装置であって、
単位時間あたりに前記ネットワークアダプタによって受信された受信パケットの数を計測するパケット数計測手段と、
所定の間隔で区分けして設定されたパケット数値範囲ごとに、前記保留時間を決定するためのタイマパラメータ値を変更したときのＣＰＵ使用率を計測するシミュレーションを実行し、各パケット数値範囲に対応付けて、各タイマパラメータ値ごとのＣＰＵ使用率をシミュレーション結果として記憶部に記憶させるシミュレーション結果記憶手段と、
前記パケット数計測手段により計測された受信パケットの数に対応するパケット数値範囲を前記記憶部に記憶されているパケット数値範囲の中から選択し、選択したパケット数値範囲に対応付けられたタイマパラメータ値のＣＰＵ使用率と、予め設定されたＣＰＵ使用率の目標値とを比較し、前記ＣＰＵ使用率の目標値よりも小さく、かつ最小となるタイマパラメータ値に変更するパラメータ値変更手段と、
を備えたことを特徴とする通信装置。
【請求項６】
所定の保留時間経過後にネットワークアダプタがパケット受信通知として割り込み処理を実行し、当該割り込み処理の受付を契機として受信パケットを通信処理する通信装置であって、
単位時間あたりに前記ネットワークアダプタによって受信された受信パケットの数を計測するパケット数計測手段と、
前記パケット数計測手段による計測結果と、予め設定された前記通信処理に要する通信処理時間と、予め設定された前記割り込み処理に要する割り込み処理時間とに基づいて、前記保留時間を決定するためのタイマパラメータ値ごとにＣＰＵ使用率を算出するＣＰＵ使用率算出手段と、
前記ＣＰＵ使用率算出手段により算出されたＣＰＵ使用率と、予め設定されたＣＰＵ使用率の目標値とを比較し、前記ＣＰＵ使用率の目標値よりも小さく、かつ最小となるタイマパラメータ値に変更するパラメータ値変更手段と、
を備えたことを特徴とする通信装置。
【請求項７】
所定の保留時間経過後にネットワークアダプタがパケット受信通知として割り込み処理を実行し、当該割り込み処理の受付を契機として受信パケットを通信処理する通信方法であって、
単位時間あたりに前記ネットワークアダプタによって受信された受信パケットの数を計測するパケット数計測工程と、
所定の間隔で区分けして設定されたパケット数値範囲ごとに、前記保留時間を決定するためのタイマパラメータ値を変更したときのＣＰＵ使用率を計測するシミュレーションを実行し、各パケット数値範囲に対応付けて、各タイマパラメータ値ごとのＣＰＵ使用率をシミュレーション結果として記憶部に記憶させるシミュレーション結果記憶工程と、
前記パケット数計測工程により計測された受信パケットの数に対応するパケット数値範囲を前記記憶部に記憶されているパケット数値範囲の中から選択し、選択したパケット数値範囲に対応付けられたタイマパラメータ値のＣＰＵ使用率と、予め設定されたＣＰＵ使用率の目標値とを比較し、前記ＣＰＵ使用率の目標値よりも小さく、かつ最小となるタイマパラメータ値に変更するパラメータ値変更工程と、
を含んだことを特徴とする通信方法。
【請求項８】
所定の保留時間経過後にネットワークアダプタがパケット受信通知として割り込み処理を実行し、当該割り込み処理の受付を契機として受信パケットを通信処理する通信方法であって、
単位時間あたりに前記ネットワークアダプタによって受信された受信パケットの数を計測するパケット数計測工程と、
前記パケット数計測工程による計測結果と、予め設定された前記通信処理に要する通信処理時間と、予め設定された前記割り込み処理に要する割り込み処理時間とに基づいて、前記保留時間を決定するためのタイマパラメータ値ごとにＣＰＵ使用率を算出するＣＰＵ使用率算出工程と、
前記ＣＰＵ使用率算出工程により算出されたＣＰＵ使用率と、予め設定されたＣＰＵ使用率の目標値とを比較し、前記ＣＰＵ使用率の目標値よりも小さく、かつ最小となるタイマパラメータ値に変更するパラメータ値変更工程と、
を含んだことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、通信プログラム、通信装置および通信方法に関する。
【背景技術】
【０００２】
従来より、ネットワーク上を流れるパケットを受信するネットワークアダプタおよびネットワークアダプタの動作を制御するネットワークドライバを備えた通信装置がある。
【０００３】
具体的には、ネットワークアダプタは、パケットを最初に受信したときに、タイマパラメータとして設定された保留時間の間だけ待機し、保留時間の経過後、ネットワークドライバを搭載した通信プログラムに対して割り込みを上げる割り込み処理を行うことによりパケット受信を通知する。割り込み処理によるパケット受信の通知を受け付けた通信プログラムは、ネットワークアダプタの割り込み処理を一旦停止させ、ネットワークドライバが受信したパケットの通信処理を実行する。なお、タイマパラメータは、処理開始前に固定値として設定されたものである。
【０００４】
パケットの通信処理を終了した後、通信プログラムは、ネットワークアダプタに対する割り込み停止処理およびパケットの通信処理を実行している間にパケットを受信したか否かをネットワークアダプタに問い合わせる。ここで、ネットワークアダプタからパケットを受信している旨の問合結果を受け付けた場合には、通信プログラムは、ネットワークアダプタに対する割り込み停止処理およびパケットの通信処理を実行している間にネットワークアダプタによって受信されたパケットの通信処理を併せて実行する。一方、ネットワークアダプタからパケットを受信していない旨の問合結果を受け付けた場合には、通信プログラムは、ネットワークアダプタに対して割り込み処理の停止を解除し、ネットワークアダプタによるパケット受信の通知を待機する。
【０００５】
なお、例えば、特許文献１（特開平１−２８２６４３号公報）では、処理を切り替える時間間隔をＣＰＵ負荷率に応じて変更する発明が開示されている。そして、この発明を通信装置に適用することで、ＣＰＵにおける過剰負荷を抑制することができる。
【０００６】
【特許文献１】特開平１−２８２６４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、上記した従来の技術は、パケット受信に対するレスポンスが低速化するという課題があった。
【０００８】
すなわち、固定値であるタイマパラメータとして大きな値が設定されている状態では、単位時間あたりに受信するパケットの数が少ないときであっても、タイマパラメータに応じた保留経過時間経過後にパケットの通信処理を開始する。その結果、従来の技術は、パケットの送受信が遅延するので、パケット受信に対するレスポンスが低速化するという課題があった。
【０００９】
また、特許文献１の手法を上記従来技術に適用した場合、通信とは関係のないプロセスのＣＰＵ負荷が高いときや時間あたりのパケット数が少ないときでも、タイマパラメータが大きくなって、パケット受信に対するレスポンス性能が悪化してしまうという問題がある。
【００１０】
すなわち、特許文献１の手法は、ＣＰＵ全体の負荷率から、「プロセスを切替える時間間隔」を決めているが、通信装置の場合は、ＣＰＵ全体の負荷率ではなくて、時間あたりの通信パケット数を計算しなければ、タイマパラメータ値変更により、ＣＰＵ使用率がどのくらい変更するのかを、正確に計算することができない。
【００１１】
さらに、特許文献１の「プロセスを切替える時間間隔」は、ソフトウェアのみを考慮すればよい問題であるのに対して、タイマパラメータは、変更するためにネットワークアダプタのリセットが必要となる場合もあり、その場合は、ネットワークアダプタのリセット処理の追加が必要になる場合もある。
【００１２】
さらに、特許文献１の「プロセスを切替える時間間隔」が、０となることは論理的にあり得ないが、タイマパラメータは、時間あたりのパケット数が少なければ０になることがありうる。
【００１３】
そして、特許文献１の「プロセスを切替える時間間隔」が、その値の範囲は提示されていないが、プロセス切替えの性質上数十ミリ秒程度であると考えられるのに対して、タイマパラメータの値の範囲は、０から１００マイクロ秒程度である。
【００１４】
このように、特許文献１の手法を、通信装置にそのまま使用すると、通信とは関係のないプロセスのＣＰＵ負荷が高い場合、時間あたりのパケット数が少ない場合でも、タイマパラメータが大きくなって、パケット受信に対するレスポンス性能が悪化してしまうという問題がある。
【００１５】
そこで、開示の通信プログラム、通信装置および通信方法は、上述した従来技術の課題を解決するためになされたものであり、パケット受信に対するレスポンスを高速化することが可能な通信プログラム、通信装置および通信方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上述した課題を解決し、目的を達成するため、開示の通信プログラムは、所定の保留時間経過後にネットワークアダプタがパケット受信通知として割り込み処理を実行し、当該割り込み処理の受付を契機として行われる受信パケットの通信処理をコンピュータに実行させる通信プログラムであって、単位時間あたりに前記ネットワークアダプタによって受信された受信パケットの数を計測するパケット数計測手順と、前記パケット数計測手順による計測結果に基づいて、前記保留時間を決定するためのタイマパラメータ値を変更するパラメータ値変更手順とをコンピュータに実行させる。
【００１７】
また、上記の通信プログラムにおいて、前記パラメータ値変更手順は、予め設定された単位時間あたりに処理を行う目標パケット数よりも前記パケット数計測手順による計測結果のほうが少ない場合には、前記タイマパラメータ値を小さい方に変更し、前記目標パケット数よりも前記パケット数計測手順による計測結果のほうが多い場合には、前記タイマパラメータ値を大きい方に変更する。
【００１８】
また、上記の通信プログラムにおいて、所定の間隔で区分けして設定されたパケット数値範囲ごとに、前記タイマパラメータ値を変更したときのＣＰＵ使用率を計測するシミュレーションを実行し、各パケット数値範囲に対応付けて、各タイマパラメータ値ごとのＣＰＵ使用率をシミュレーション結果として記憶部に記憶するシミュレーション結果記憶手順をさらにコンピュータに実行させ、前記パラメータ値変更手順は、前記シミュレーション結果記憶手順により記憶されている前記シミュレーション結果に基づいて、前記パケット数計測手順による前記計測結果と前記ＣＰＵ使用率とが加味された前記タイマパラメータ値に変更する。
【００１９】
また、上記の通信プログラムにおいて、前記パケット数計測手順による前記計測結果と、予め設定された前記通信処理に要する通信処理時間と、予め設定された前記割り込み処理に要する割り込み処理時間とに基づいて、前記タイマパラメータ値ごとに前記ＣＰＵ使用率を算出するＣＰＵ使用率算出手順をさらにコンピュータに実行させ、前記パラメータ値変更手順は、前記ＣＰＵ使用率算出手順による算出結果に基づいて、前記タイマパラメータ値を変更する。
【００２０】
また、上記の通信プログラムにおいて、前記パラメータ値変更手順は、前回タイマパラメータ値を変更したときから一定の時間が経過したか否かを判定し、一定の時間が経過していないと判定した場合には、前記タイマパラメータ値の変更を中止する。
【００２１】
また、開示の通信装置は、所定の保留時間経過後にネットワークアダプタがパケット受信通知として割り込み処理を実行し、当該割り込み処理の受付を契機として受信パケットを通信処理する通信装置であって、単位時間あたりに前記ネットワークアダプタによって受信された受信パケットの数を計測するパケット数計測手段と、前記パケット数計測手段による計測結果に基づいて、前記保留時間を決定するためのタイマパラメータ値を変更するパラメータ値変更手段とを備える。
【００２２】
また、開示の通信方法は、所定の保留時間経過後にネットワークアダプタがパケット受信通知として割り込み処理を実行し、当該割り込み処理の受付を契機として受信パケットを通信処理する通信方法であって、単位時間あたりに前記ネットワークアダプタによって受信された受信パケットの数を計測するパケット数計測工程と、前記パケット数計測工程による計測結果に基づいて、前記保留時間を決定するためのタイマパラメータ値を変更するパラメータ値変更工程とを含む。
【発明の効果】
【００２３】
開示の通信プログラム、通信装置および通信方法によれば、パケット受信に対するレスポンスを高速化することが可能である。
【発明を実施するための最良の形態】
【００２４】
以下に添付図面を参照して、この発明に係る通信プログラム、通信装置および通信方法の実施例を詳細に説明する。なお、以下では、この発明が適用された通信装置を実施例として説明する。
【実施例１】
【００２５】
以下の実施例１では、実施例１に係る通信装置の概要および特徴、通信装置の構成、通信装置による処理の流れを順に説明し、最後に実施例１の効果を説明する。
【００２６】
［実施例１に係る通信装置の概要および特徴］
まず最初に、図１を用いて、実施例１に係る通信装置の概要および特徴を説明する。
【００２７】
実施例１に係る通信装置のネットワークアダプタは、所定の保留時間経過後にパケット受信通知として制御部に対する割り込み処理を実行する。そして、実施例１に係る通信装置の制御部は、割り込み処理の受付を契機として受信パケットの通信処理を実行することを概要とし、パケット受信に対するレスポンスを高速化することを主たる特徴とする。
【００２８】
具体的には、実施例１に係る通信装置は、図１に示すように、単位時間あたりにネットワークアダプタによって受信された受信パケットの数を計測し、計測結果に基づいて、保留時間を決定するためのタイマパラメータ値を変更する。
【００２９】
詳細には、実施例１に係る通信装置は、予め設定された単位時間あたりに処理を行う目標値となる目標パケット数よりも計測結果のほうが少ない場合には、タイマパラメータ値を小さい方に変更し、計測結果のほうが目標パケット数よりも多い場合には、タイマパラメータ値を大きい方に変更する。
【００３０】
このようなことから、実施例１に係る通信装置は、上記した主たる特徴のごとく、パケット受信に対するレスポンスを高速化することが可能である。また、実施例１に係る通信装置は、ＣＰＵにおける過剰負荷を抑制することもできる。
【００３１】
［通信装置の構成］
次に、図２、図３を用いて、図１に示した通信装置１０の構成を説明する。図２は、通信装置の構成を示すブロック図である。図３は、シミュレート結果記憶部に記憶される情報の一例を示す図である。図２に示すように、通信装置１０は、入出力部１１と、記憶部１２と、ネットワークアダプタ１３と、制御部１４とを備える。
【００３２】
このうち、入出力部１１は、各種の情報の入出力を実行する。具体的には、入出力部１１は、キーボードやマウス、マイク、ディスプレイなどを備えて構成され、例えば、ユーザから受け付けた目標ＣＰＵ使用率を後述の目標ＣＰＵ使用率記憶部１２ａに書き込み、タイマパラメータ値の初期値を後述のタイマパラメータ記憶部１３ａに書き込む。なお、目標ＣＰＵ使用率やタイマパラメータ値の初期値の入力方法は本発明を限定するものではなく、例えば、所定のアプリケーションを用いて入力された目標ＣＰＵ使用率をプロトコル変換して後述の目標ＣＰＵ使用率記憶部１２ａに書き込むようにしてもよいし、ｉｏｃｔｌなどでドライバによって値を目標ＣＰＵ使用率記憶部１２ａやタイマパラメータ記憶部１３ａにイバに値を書き込む既存技術を用いてもよい。
【００３３】
記憶部１２は、制御部１４による各種処理に必要なデータおよびプログラムを格納するものであり、目標ＣＰＵ使用率記憶部１２ａと、シミュレート結果記憶部１２ｂとを備える。
【００３４】
目標ＣＰＵ使用率記憶部１２ａは、ユーザによって入出力部１１を介して入力された目標ＣＰＵ使用率を記憶する。ここで、目標ＣＰＵ使用率とは、制御部１４によるタイマパラメータ変更処理を実行するときに用いられるＣＰＵ使用率の目標値（例えば、８０％）である。尚シミュレーション結果とは、例えば、そのパケット数範囲の中の最小パケット数の場合に、そのパラメータ値でＣＰＵ使用率がどうなるかを現実の通信装置を模倣するプログラムより求めた値のことである。
【００３５】
シミュレート結果記憶部１２ｂは、所定の間隔で区分けして設定されたパケット数値範囲ごとに、タイマパラメータ値を変更したときのＣＰＵ使用率を計測したときのシミュレーション結果として、各パケット数値範囲に対応付けて、各タイマパラメータ値ごとのＣＰＵ使用率を記憶する。
【００３６】
具体的に一例をあげて説明すると、シミュレート結果記憶部１２ｂは、図３に示すように、パケット数値範囲「０〜９９９」に対応付けて、タイマパラメータ値を「０」に設定した場合のＣＰＵ使用率「０％」と、タイマパラメータ値を「１０」に設定した場合のＣＰＵ使用率「０％」と、タイマパラメータ値を「２０」に設定した場合のＣＰＵ使用率「０％」と、タイマパラメータ値を「３０」に設定した場合のＣＰＵ使用率「０％」と、・・・タイマパラメータ値を「９０」に設定した場合のＣＰＵ使用率「０％」とをシミュレート結果として記憶する。
【００３７】
そして、シミュレート結果記憶部１２ｂは、パケット数値範囲「０〜９９９」と同様に、１０００パケット間隔で区分けして設定された各パケット数値範囲（例えば、「１０００〜１９９９」と、「２０００〜２９９９」と、・・・、「３００００〜３０９９９」と、・・・、「５００００〜５０９９９」と、・・・、「９９０００以上」）に対応付けて、各タイマパラメータ値に応じたＣＰＵ使用率をシミュレート結果として記憶する。
【００３８】
ここで、パケット数値範囲とは、１秒あたりの受信パケット数（ｐａｃｋｅｔｓ／ｓ）であり、ＣＵＰ使用率とは、ＣＰＵ使用率を計測するシミュレーションによって計測された計測結果である。
【００３９】
ネットワークアダプタ１３は、ネットワーク上を流れるパケットを受信するものであり、タイマパラメータ記憶部１３ａと、パケット受信部１３ｂと、割り込み処理部１３ｃとを備える。
【００４０】
タイマパラメータ記憶部１３ａは、パケットを受信してから割り込み処理を実行するまでの保留時間を決定するためのタイマパラメータ値を記憶する。具体的には、タイマパラメータ記憶部１３ａは、ユーザによって入出力部１１を介して入力されたタイマパラメータ値の初期値（例えば、９０マイクロ秒）を記憶する。そして、タイマパラメータ記憶部１３ａに記憶されたタイマパラメータ値は、制御部１４によって書き換えられる。
【００４１】
パケット受信部１３ｂは、通信装置１０の外部からパケットを受信する。具体的には、パケット受信部１３ｂは、通信装置１０の外部からパケットを受信すると、受信したパケットの数を制御部１４に対して通知するとともに、割り込み処理部１３ｃに対して、割り込み処理を依頼する。そして、パケット受信部１３ｂは、制御部１４から割り込み停止処理およびパケットの通信処理を実行している間にパケットを受信したか否かの問い合わせを受け付けた場合に、問合結果としてパケットを受信したか否かを回答する。
【００４２】
割り込み処理部１３ｃは、所定の保留時間経過後にパケット受信通知として割り込み処理を実行する。具体的には、割り込み処理部１３ｃは、パケット受信部１３ｂから、割り込み処理の依頼を受け付けたときに、制御部１４から割り込み処理の停止要求を受け付けているか否かを判定する。ここで、割り込み処理の停止要求を受け付けていないと判定した場合には、割り込み処理部１３ｃは、タイマパラメータ記憶部１３ａからタイマパラメータ値を読み込み、タイマパラメータ値によって決定される保留時間の間、割り込み処理を保留する。そして、割り込み処理部１３ｃは、保留時間経過後に制御部１４に対してパケット受信通知としての割り込み処理を実行する。一方、割り込み処理の停止要求を受け付けていると判定した場合には、割り込み処理部１３ｃは、そのまま処理を終了する。
【００４３】
制御部１４は、ＯＳ（Operating System）などの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部１４は、通信制御部１４ａと、パケット数計測部１４ｂと、タイマパラメータ変更部１４ｃとを備える。
【００４４】
通信制御部１４ａは、受信パケットの通信処理を実行する。具体的には、通信制御部１４ａは、割り込み処理部１３ｃからパケット受信通知としての割り込み処理を受け付けた場合に、割り込み処理部１３ｃに対して、割り込み処理の停止要求を送信する。そして、通信制御部１４ａは、パケット受信部１３ｂによって受信されたパケットをネットワークアダプタ１３から読み込み、受信パケットの通信処理を実行する。
【００４５】
そして、パケットの通信処理を終了した後、通信制御部１４ａは、割り込み処理部１３ｃに対する割り込み停止処理およびパケットの通信処理を実行している間にパケットを受信したか否かをパケット受信部１３ｂに問い合わせる。ここで、パケット受信部１３ｂからパケットを受信している旨の問合結果を受け付けた場合には、通信制御部１４ａは、割り込み処理部１３ｃに対する割り込み停止処理およびパケットの通信処理を実行している間にパケット受信部１３ｂによって受信されたパケットをネットワークアダプタ１３から読み込み、受信パケットの通信処理を併せて実行する。
【００４６】
一方、パケット受信部１３ｂからパケットを受信していない旨の問合結果を受け付けた場合には、通信制御部１４ａは、割り込み処理部１３ｃに対して割り込み処理の停止を解除し、割り込み処理部１３ｃによるパケット受信通知としての割り込み処理を待機する。
【００４７】
パケット数計測部１４ｂは、ネットワークアダプタによって受信された受信パケットの数を計測する。具体的には、パケット数計測部１４ｂは、パケット受信部１３ｂからの受信したパケットの数の通知を受け付け、受信したパケットの数を累積加算することで受信パケットの数を計測する。そして、パケット数計測部１４ｂは、受信したパケットの数の累計が所定の数値（例えば、１０００以上）に至ると、「受信したパケットの数の累計」を「受信パケットの数の計測を開始してから受信したパケットの数の累計が所定の数値に至るまでにかかった時間」で除算した値である「単位時間当たりのパケット数」を算出し、計測結果としてタイマパラメータ変更部１４ｃに対して送信する。
【００４８】
タイマパラメータ変更部１４ｃは、保留時間を決定するためのタイマパラメータ値を変更する。具体的には、タイマパラメータ変更部１４ｃは、シミュレート結果記憶部１２ｂに記憶されているシミュレーション結果に基づいて、パケット数計測部１４ｂによる計測結果と、ＣＰＵ使用率とが加味されたタイマパラメータ値に変更する。
【００４９】
具体的に一例をあげて説明すると、タイマパラメータ変更部１４ｃは、パケット数計測部１４ｂから計測結果（１秒あたりに５００００個のパケットを受信した旨の計測結果）を受け付けると、目標ＣＰＵ使用率記憶部１２ａから目標ＣＰＵ使用率（８０％）を読み込む。
【００５０】
次に、タイマパラメータ変更部１４ｃは、シミュレート結果記憶部１２ｂに記憶されているシミュレーション結果の中から計測結果に対応するパケット数値範囲「５００００〜５０９９９」を選択する。さらに、タイマパラメータ変更部１４ｃは、選択したパケット数値範囲「５００００〜５０９９９」の各タイマパラメータ値に対応するＣＰＵ使用率（「１００％」、「８３％」、「７８％」、「７０％」、・・・、「５０％」）と、目標ＣＰＵ使用率とを比較し、目標ＣＰＵ使用率よりも小さく、かつ、最小となるタイマパラメータ値（「２０」）を変更すべきタイマパラメータ値に決定する。なお、計測結果に対応する全てのＣＰＵ使用率が目標ＣＰＵ使用率よりも大きい場合には、タイマパラメータ変更部１４ｃは、最大となるタイマパラメータ値（「９０」）を変更すべきタイマパラメータ値に決定する。以降、決定したタイマパラメータ値を決定タイマパラメータ値と表す。
【００５１】
次に、タイマパラメータ変更部１４ｃは、タイマパラメータ記憶部１３ａに記憶されているタイマパラメータ値が決定タイマパラメータ値と同じか否かを判定し、同じでない場合には、タイマパラメータ記憶部１３ａに記憶されているタイマパラメータ値を決定タイマパラメータ値に書き換える。
【００５２】
そして、タイマパラメータ変更部１４ｃは、パケット数計測部１４ｂによる受信パケット数の累計を「０」に変更するとともに受信パケット数の計測を再開させる。
【００５３】
［通信装置による通信処理］
まず、図４を用いて、通信装置１０による通信処理を説明する。図４は、通信装置による通信処理の流れを示すフローチャートである。なお、通信装置１０による通信処理は、通信装置１０の駆動の停止とともに処理を終了する。
【００５４】
図４に示すように、通信装置１０は、通信装置１０の外部からパケットを受信すると（ステップＳ１００１肯定）、割り込み処理が停止しているか否かを判定する（ステップＳ１００２）。具体的には、パケット受信部１３ｂは、通信装置１０の外部からパケットを受信すると、受信したパケットの数を制御部１４に対して通知するとともに、割り込み処理部１３ｃに対して、割り込み処理を依頼し、割り込み処理部１３ｃは、制御部１４から割り込み処理の停止要求を受け付けているか否かを判定する。
【００５５】
ここで、割り込み処理が停止していると判定した場合には（ステップＳ１００２肯定）、通信装置１０は、再びパケットの受信を待機する（ステップＳ１００１）。
【００５６】
一方では、割り込み処理が停止していないと判定した場合には（ステップＳ１００２否定）、通信装置１０は、タイマパラメータ値によって決定される保留時間の間、割り込み処理を保留し（ステップＳ１００３）、保留時間経過後、パケット受信通知としての割り込み処理を実行する（ステップＳ１００４）。具体的には、割り込み処理部１３ｃは、タイマパラメータ記憶部１３ａからタイマパラメータ値を読み込み、タイマパラメータ値によって決定される保留時間の間、割り込み処理を保留し、保留時間経過後に制御部１４に対してパケット受信通知としての割り込み処理を実行する。
【００５７】
続いて、通信装置１０は、割り込み処理を停止し（ステップＳ１００５）、受信パケットの通信処理を実行する（ステップＳ１００６）。具体的には、通信制御部１４ａは、割り込み処理部１３ｃに対して、割り込み処理の停止要求を送信し、パケット受信部１３ｂによって受信されたパケットをネットワークアダプタ１３から読み込み、受信パケットの通信処理を実行する。
【００５８】
続いて、通信装置１０は、割り込み停止処理およびパケットの通信処理を実行している間にパケットを受信したか否かを判定する（ステップＳ１００７）。具体的には、通信制御部１４ａは、パケットを受信したか否かをパケット受信部１３ｂに問い合わせ、パケット受信部１３ｂは、問合結果としてパケットを受信したか否かを回答する。
【００５９】
ここで、割り込み停止処理およびパケットの通信処理を実行している間にパケットを受信していると判定した場合には（ステップＳ１００７肯定）、通信装置１０は、割り込み停止処理およびパケットの通信処理を実行している間に受信した受信パケットの通信処理を併せて実行する（ステップＳ１００６）。具体的には、通信制御部１４ａは、割り込み処理部１３ｃに対する割り込み停止処理およびパケットの通信処理を実行している間にパケット受信部１３ｂによって受信されたパケットをネットワークアダプタ１３から読み込み、受信パケットの通信処理を併せて実行する。
【００６０】
一方では、割り込み停止処理およびパケットの通信処理を実行している間にパケットを受信していないと判定した場合には（ステップＳ１００７否定）、通信装置１０は、割り込み処理の停止を解除し（ステップＳ１００８）、再びパケットの受信を待機する（ステップＳ１００１）。具体的には、通信制御部１４ａは、割り込み処理部１３ｃに対して割り込み処理の停止を解除し、割り込み処理部１３ｃによるパケット受信通知としての割り込み処理を待機する。
【００６１】
［通信装置によるタイマパラメータ変更処理］
次に、図５を用いて、通信装置１０によるタイマパラメータ変更処理を説明する。図５は、通信装置によるタイマパラメータ変更処理の流れを示すフローチャートである。なお、通信装置１０によるタイマパラメータ変更処理は、通信装置１０の駆動の停止とともに処理を終了する。
【００６２】
図５に示すように、通信装置１０は、通信装置１０の外部からパケットを受信すると（ステップＳ２００１肯定）、受信パケットの数を計測する（ステップＳ２００２）。具体的には、パケット受信部１３ｂは、通信装置１０の外部からパケットを受信すると、受信したパケットの数を制御部１４に対して通知し、パケット数計測部１４ｂは、受信したパケットの数を累積加算することで受信パケットの数を計測する。
【００６３】
ここで、受信したパケットの数の累計が所定の数値に満たない場合には（ステップＳ２００３否定）、通信装置１０は、再びパケットの受信を待機する（ステップＳ２００１）。
【００６４】
一方では、受信したパケットの数の累計が所定の数値に至ると（ステップＳ２００３肯定）、通信装置１０は、「単位時間当たりのパケット数」を計測結果として算出する（ステップＳ２００４）。具体的には、パケット数計測部１４ｂは、受信したパケットの数の累計が所定の数値に至ると、「単位時間当たりのパケット数」を算出し、計測結果としてタイマパラメータ変更部１４ｃに対して送信する。
【００６５】
続いて、通信装置１０は、目標ＣＰＵ使用率よりも小さいＣＰＵ使用率に対応する各タイマパラメータ値の中から、最小となるタイマパラメータ値を変更すべきタイマパラメータ値に決定する（ステップＳ２００５）。
【００６６】
具体的には、計測結果を受け付けたタイマパラメータ変更部１４ｃは、目標ＣＰＵ使用率記憶部１２ａから目標ＣＰＵ使用率を読み込み、シミュレート結果記憶部１２ｂに記憶されているシミュレーション結果の中から計測結果に対応するパケット数値範囲を選択する。そして、選択したパケット数値範囲の各タイマパラメータ値に対応するＣＰＵ使用率と、目標ＣＰＵ使用率とを比較し、目標ＣＰＵ使用率よりも小さく、かつ、最小となるタイマパラメータ値を変更すべきタイマパラメータ値に決定する。
【００６７】
そして、通信装置１０は、タイマパラメータ値を決定したタイマパラメータ値に変更し（ステップＳ２００６）、計測した受信パケット数の累計を「０」に変更し（ステップＳ２００７）、再びパケットの受信を待機する（ステップＳ２００１）。具体的には、タイマパラメータ変更部１４ｃは、タイマパラメータ記憶部１３ａに記憶されているタイマパラメータ値が決定タイマパラメータ値と同じか否かを判定し、同じでない場合には、タイマパラメータ記憶部１３ａに記憶されているタイマパラメータ値を決定タイマパラメータ値に書き換える。そして、タイマパラメータ変更部１４ｃは、タイマパラメータ記憶部１３ａに記憶されているタイマパラメータ値を決定タイマパラメータ値に書き換え、パケット数計測部１４ｂによる受信パケット数の累計を「０」に変更するとともに受信パケット数の計測を再開させる。
【００６８】
［実施例１の効果］
上記したように、実施例１によれば、パケット受信に対するレスポンスを高速化することが可能である。
【００６９】
また、実施例１によれば、単位時間あたりに受信するパケットの数が少ないときには、パケット受信に対するレスポンスを高速化することが可能であるとともに、単位時間あたりに受信するパケットの数が多いときにはＣＰＵにおける過剰負荷を抑制することが可能である。
【００７０】
また、実施例１によれば、目標ＣＰＵ使用率以下にＣＰＵ使用率を抑制しつつ、パケット受信に対するレスポンスを高速化することが可能である。
【実施例２】
【００７１】
ところで、実施例１では、シミュレーション結果を用いてタイマパラメータ値を変更する場合を説明したが、本発明はこれに限定されるものではなく、ＣＰＵ使用率を算出してタイマパラメータ値を変更するようにしてもよい。
【００７２】
そこで、実施例２では、パケット数計測部１４ｂによる計測結果を用いてＣＰＵ使用率を算出し、ＣＰＵ使用率算出結果に基づいてタイマパラメータ値を変更する場合を説明する。なお、実施例２では、実施例２に係る通信装置の構成および通信装置による処理の流れを説明した後、実施例２による効果を説明する。
【００７３】
［実施例２に係る通信装置の構成］
まず、図６、図７および図８を用いて実施例２に係る通信装置１０の構成を説明する。図６は、実施例２に係る通信装置の構成を示すブロック図である。図７は、算出結果記憶部に記憶される情報の一例を示した図である。図８は、ＣＰＵ使用率算出部によるＣＰＵ使用率算出処理の一例を説明するための図である。実施例２に係る通信装置１０の構成は、算出結果記憶部１２ｃと、ＣＰＵ使用率算出部１４ｄとを新たに備える他は、実施例１に係る通信装置１０と以下に説明する点が異なる。
【００７４】
すなわち、算出結果記憶部１２ｃは、ＣＰＵ使用率算出部１４ｄによるＣＰＵ使用率の算出結果を記憶する。具体的に一例をあげて説明すると、算出結果記憶部１２ｃは、図７に示すように、各タイマパラメータ値（例えば、「０」、「１０」、「２０」、・・・、「９０」）に対応付けてＣＰＵ使用率を記憶する。
【００７５】
パケット数計測部１４ｂは、受信したパケットの数の累計が所定の数値（例えば、１０００以上）に至ると、「受信パケットの数の計測を開始してから受信したパケットの数の累計が所定の数値に至るまでにかかった時間」を「受信したパケットの数の累計」で除算して「１パケットを受信するのに要する時間」を算出し、計測結果としてＣＰＵ使用率算出部１４ｄに対して送信する。
【００７６】
ＣＰＵ使用率算出部１４ｄは、パケット数計測部１４ｂによる計測結果と、予め設定された通信処理に要する通信処理時間と、予め設定された割り込み処理に要する割り込み処理時間とに基づいて、タイマパラメータ値ごとにＣＰＵ使用率を算出する。
【００７７】
具体的には、ＣＰＵ使用率算出部１４ｄは、パケット数計測部１４から計測結果である「１パケットを受信するのに要する時間」を受け付けると、「１パケットを受信するのに要する時間」と、予め設定された通信処理に要する通信処理時間と、予め設定された割り込み処理に要する割り込み処理時間とに基づいて、タイマパラメータ値ごとにＣＰＵ使用率を算出する。そして、ＣＰＵ使用率算出部１４ｄは、算出結果である各タイマパラメータ値に対応するＣＰＵ使用率を算出結果記憶部１２ｃに格納する。
【００７８】
ここで、図８を用いて、ＣＰＵ使用率算出部１４ｄによるＣＰＵ使用率算出処理の一例を説明する。なお、「ｉ」は、パケット数に基づく変数を表し、「ｔ１」は、１パケットを通信処理するのに要する通信処理時間に基づく変数を表し、「ｔ２」は、割り込み処理時間に基づく変数を表し、「ｗ１」は、タイマパラメータ値によって決定される保留時間に基づく変数を表し、「ｗ２」は、ＣＰＵが処理を実行していない時間に基づく変数を表し、「ｓｕｍ：合計」は、通信処理時間の変更、割り込み処理時間の変更および保留時間の変更に基づいて変更される変数を表す。
【００７９】
また、パケット数計測部１４ｂから計測結果として、「１パケットを受信するのに要する時間」が「２０マイクロ秒」である旨の計測結果を受け付けたものとし、通信処理時間として「１０マイクロ秒」が設定され、割り込み処理時間として「１０マイクロ秒」が設定されており、タイマパラメータ値によって決定される保留時間が「１０マイクロ秒」であるときのＣＰＵ使用率を算出するときの処理について説明する。
【００８０】
ＣＰＵ使用率算出部１４ｄは、ＣＰＵ使用率算出処理を開始すると、「ｉ」、「ｔ１」、「ｔ２」、「ｗ１」、「ｗ２」および「ｓｕｍ」の値を全て「０」に設定する（図８の（１）参照）。
【００８１】
続いて、ＣＰＵ使用率算出部１４ｄは、「ｗ１」に対して保留時間である「１０マイクロ秒」を加算するとともに、「ｓｕｍ」に対して保留時間である「１０マイクロ秒」を加算する（図８の（２）参照）。
【００８２】
続いて、ＣＰＵ使用率算出部１４ｄは、「ｔ１」に対して割り込み処理時間である「１０マイクロ秒」を加算するとともに、「ｓｕｍ」に対して割り込み処理時間である「１０マイクロ秒」を加算する（図８の（３）参照）。
【００８３】
続いて、ＣＰＵ使用率算出部１４ｄは、「ｔ２」に対して通信処理時間である「１０マイクロ秒」を加算するとともに、「ｓｕｍ」に対して通信処理時間である「１０マイクロ秒」を加算する（図８の（４）参照）。
【００８４】
続いて、ＣＰＵ使用率算出部１４ｄは、「ｉ」に対して１パケットを処理したことを意味する「１」を加算する（図８の（５）参照）。
【００８５】
続いて、ＣＰＵ使用率算出部１４ｄは、「ｓｕｍ」が「１０００マイクロ秒」以上であるか否かを判定する。図８の（５）に示した例では、ＣＰＵ使用率算出部１４ｄは、「ｓｕｍ」である「３０マイクロ秒」が「１０００マイクロ秒」以上でないと判定するので、「ｉ」である「１」に対して「１パケットを受信するのに要する時間」である「２０マイクロ秒」を乗算して、乗算結果が「ｓｕｍ」以上であるか否かを判定する。
【００８６】
ここで、図８の（５）に示した例では、ＣＰＵ使用率算出部１４ｄは、乗算結果である「２０マイクロ秒」が「ｓｕｍ」である「３０マイクロ秒」以上でないと判定するので、「ｔ２」に対して通信処理時間である「１０マイクロ秒」を加算するとともに、「ｓｕｍ」に対して通信処理時間である「１０マイクロ秒」を加算する（図８の（６）参照）。
【００８７】
続いて、ＣＰＵ使用率算出部１４ｄは、「ｉ」に対して１パケットを処理したことを意味する「１」を加算する（図８の（７）参照）。
【００８８】
続いて、ＣＰＵ使用率算出部１４ｄは、「ｓｕｍ」が「１０００マイクロ秒」以上であるか否かを判定する。図８の（７）に示した例では、「ｓｕｍ」である「４０マイクロ秒」が「１０００マイクロ秒」でないと判定するので、「ｉ」である「２」に対して「１パケットを受信するのに要する時間」である「２０マイクロ秒」を乗算して、乗算結果が「ｓｕｍ」以上であるか否かを判定する。
【００８９】
ここで、図８の（７）に示した例では、ＣＰＵ使用率算出部１４ｄは、乗算結果である「４０マイクロ秒」が「ｓｕｍ」である「４０マイクロ秒」以上であると判定する。
【００９０】
この場合に、ＣＰＵ使用率算出部１４ｄは、「「ｉ」に対して「１パケットを受信するのに要する時間」を乗算した値」から「ｓｕｍ」を差し引いた差分値を「ｗ２」に対して加算するとともに、「ｓｕｍ」を「「ｉ」に対して「１パケットを受信するのに要する時間」を乗算した値」に変更する。
【００９１】
なお、図８の（７）に示した例では、差分値である「０マイクロ秒」が「ｗ２」に対して加算されたものとし、「ｓｕｍ」が「「ｉ」に対して「１パケットを受信するのに要する時間」を乗算した値」である「４０マイクロ秒」に変更されたものとする。
【００９２】
続いて、ＣＰＵ使用率算出部１４ｄは、再び「ｗ１」に対して保留時間である「１０マイクロ秒」を加算するとともに、「ｓｕｍ」に対して保留時間である「１０マイクロ秒」を加算する（図８の（８）参照）。
【００９３】
このようにして、ＣＰＵ使用率算出部１４ｄは、「ｓｕｍ」が「１０００マイクロ秒」以上であると判定するまで上記した処理を実行し（図８の（９）参照）、「ｓｕｍ」が「１０００マイクロ秒」以上であると判定した場合には、「ｔ１」である「２５０マイクロ秒」と、「ｔ２」である「５００マイクロ秒」とを積算した積算値から「ｓｕｍ」である「１０００マイクロ秒」を除算してＣＰＵ使用率（つまり、７５％）を算出して、タイマパラメータ値によって決定される保留時間が「１０マイクロ秒」であるときのＣＰＵ使用率を算出するときの処理を終了する。
【００９４】
タイマパラメータ変更部１４ｃは、ＣＰＵ使用率算出部１４ｄによる算出結果に基づいて、タイマパラメータ値を変更する。具体的には、タイマパラメータ変更部１４ｃは、算出結果記憶部１２ｃに記憶されている各タイマパラメータに対応するＣＰＵ使用率と、目標ＣＰＵ使用率とを比較し、目標ＣＰＵ使用率（「８０％」）よりも小さく、かつ、最小となるタイマパラメータ値（「１０」）を変更すべきタイマパラメータ値に決定する。
【００９５】
［実施例２に係るタイマパラメータ変更処理］
まず、図９を用いて、実施例２に係るタイマパラメータ変更処理を説明する。図９は、実施例２に係るタイマパラメータ変更処理の流れを示すフローチャートである。なお、実施例２に係るタイマパラメータ変更処理は、通信装置の駆動の停止とともに処理を終了するものとし、実施例１に係るタイマパラメータ変更処理と異なる点について詳細に説明する。
【００９６】
図９に示すように、通信装置１０は、通信装置１０の外部からパケットを受信すると（ステップＳ３００１肯定）、受信パケットの数を計測し（ステップＳ３００２）、受信したパケットの数の累計が所定の数値に至ると（ステップＳ３００３肯定）、通信装置１０は、「１パケットを受信するのに要する時間」を計測結果として算出する（ステップＳ３００４）。具体的には、パケット数計測部１４ｂは、受信したパケットの数の累計が所定の数値に至ると、「１パケットを受信するのに要する時間」を算出し、計測結果としてＣＰＵ使用率算出部１４ｄに対して送信する。
【００９７】
続いて、通信装置１０は、計測結果と、予め設定された通信処理に要する通信処理時間と、予め設定された割り込み処理に要する割り込み処理時間とに基づいて、タイマパラメータ値ごとにＣＰＵ使用率を算出する（ステップＳ３００５）。具体的には、ＣＰＵ使用率算出部１４ｄは、「１パケットを受信するのに要する時間」と、予め設定された通信処理に要する通信処理時間と、予め設定された割り込み処理に要する割り込み処理時間とに基づいて、タイマパラメータ値ごとにＣＰＵ使用率を算出する。そして、ＣＰＵ使用率算出部１４ｄは、算出結果である各タイマパラメータ値に対応するＣＰＵ使用率を算出結果記憶部１２ｃに格納する。
【００９８】
続いて、通信装置１０は、目標ＣＰＵ使用率よりも小さいＣＰＵ使用率に対応する各タイマパラメータ値の中から、最小となるタイマパラメータ値を変更すべきタイマパラメータ値に決定する（ステップＳ３００６）。具体的には、タイマパラメータ変更部１４ｃは、算出結果記憶部１２ｃに記憶されている各タイマパラメータに対応するＣＰＵ使用率と、目標ＣＰＵ使用率とを比較し、目標ＣＰＵ使用率よりも小さく、かつ、最小となるタイマパラメータ値を変更すべきタイマパラメータ値に決定する。
【００９９】
そして、通信装置１０は、タイマパラメータ値を決定したタイマパラメータ値に変更し（ステップＳ３００７）、計測した受信パケット数の累計を「０」に変更し（ステップＳ３００８）、再びパケットの受信を待機する（ステップＳ３００１）。
【０１００】
［ＣＰＵ使用率算出処理］
次に、図１０を用いて、ＣＰＵ使用率算出処理を説明する。図１０は、ＣＰＵ使用率算出処理の流れを示すフローチャートである。なお、ＣＰＵ使用率算出処理は、図９で示したステップＳ３００５に対応する。
【０１０１】
図１０に示すように、ＣＰＵ使用率算出部１４ｄは、ＣＰＵ使用率算出処理を開始すると、「ｉ」、「ｔ１」、「ｔ２」、「ｗ１」、「ｗ２」および「ｓｕｍ」の値を全て「０」に設定する（ステップＳ４００１）。
【０１０２】
続いて、ＣＰＵ使用率算出部１４ｄは、ＣＰＵ使用率算出部１４ｄは、「ｗ１」に対して保留時間を加算するとともに、「ｓｕｍ」に対して保留時間を加算する（ステップＳ４００２）。
【０１０３】
続いて、ＣＰＵ使用率算出部１４ｄは、「ｔ１」に対して割り込み処理時間を加算するとともに、「ｓｕｍ」に対して割り込み処理時間を加算する（ステップＳ４００３）。
【０１０４】
続いて、ＣＰＵ使用率算出部１４ｄは、「ｔ２」に対して通信処理時間を加算するとともに、「ｓｕｍ」に対して通信処理時間を加算する（ステップＳ４００４）。
【０１０５】
続いて、ＣＰＵ使用率算出部１４ｄは、「ｉ」に対して１パケットを処理したことを意味する「１」を加算する（ステップＳ４００５）。
【０１０６】
続いて、ＣＰＵ使用率算出部１４ｄは、「ｓｕｍ」が「１０００マイクロ秒」以上であるか否かを判定する（ステップＳ４００６）。
【０１０７】
ここで、「ｓｕｍ」が「１０００マイクロ秒」以上でないと判定した場合には（ステップＳ４００６否定）、ＣＰＵ使用率算出部１４ｄは、「ｉ」に対して「１パケットを受信するのに要する時間」を乗算して、乗算結果が「ｓｕｍ」以上であるか否かを判定する（ステップＳ４００７）。
【０１０８】
ここで、乗算結果が「ｓｕｍ」以上でないと判定した場合には（ステップＳ４００７否定）、ＣＰＵ使用率算出部１４ｄは、再び「ｔ２」に対して通信処理時間を加算するとともに、「ｓｕｍ」に対して通信処理時間を加算して（ステップＳ４００４）、上記した処理（ステップＳ４００４〜Ｓ４００７）を繰り返し実行する。
【０１０９】
一方では、乗算結果が「ｓｕｍ」以上であると判定した場合には（ステップＳ４００７肯定）、ＣＰＵ使用率算出部１４ｄは、「「ｉ」に対して「１パケットを受信するのに要する時間」を乗算した値」から「ｓｕｍ」を差し引いた差分値を「ｗ２」に対して加算するとともに、「ｓｕｍ」を「「ｉ」に対して「１パケットを受信するのに要する時間」を乗算した値」に変更する（ステップＳ４００８）。
【０１１０】
続いて、ＣＰＵ使用率算出部１４ｄは、再び「ｗ１」に対して保留時間を加算するとともに、「ｓｕｍ」に対して保留時間を加算して（ステップＳ４００２）、上記した処理（ステップＳ４００２〜Ｓ４００８）を繰り返し実行する。
【０１１１】
ステップＳ４００６の説明に戻ると、「ｓｕｍ」が「１０００マイクロ秒」以上であると判定した場合には（ステップＳ４００６肯定）、ＣＰＵ使用率算出部１４ｄは、「ｔ１」と、「ｔ２」とを積算した積算値から「ｓｕｍ」を除算してＣＰＵ使用率を算出し（ステップＳ４００９）、ＣＰＵ使用率算出処理を終了する。
【０１１２】
［実施例２の効果］
上記したように、実施例２によれば、ネットワークアダプタによって受信された受信パケットの数を用いて算出されるＣＰＵ使用率に基づいて、パケット受信に対するレスポンスを高速化することが可能である。
【実施例３】
【０１１３】
ところで、実施例１および実施例２では、タイマパラメータ値を動的に変更する場合を説明したが、タイマパラメータ値を動的に変更することがハードウェアレベルでサポートされていない場合があり、この場合には、ハードウェアレベルで再初期化した後に、タイマパラメータ値を変更するようにしてもよい。
【０１１４】
しかしながら、ハードウェアレベルでの再初期化には、数ミリ秒から数秒ほどの時間を要すことが多い。再初期化の最中にはパケットの送受信が実行できないため、頻繁にハードウェアレベルでの再初期化を実行すると、ロスするパケットの数が多くなり、結果として、ネットワークの性能の低下が発生する場合がある。
【０１１５】
そこで、実施例３では、タイマパラメータ値を変更するためのハードウェアレベルでの再初期化の頻度を抑制する場合を説明する。なお、実施例３では、実施例３に係る通信装置１０の構成および通信装置１０による処理の流れを説明した後、実施例３による効果を説明する。
【０１１６】
［実施例３に係る通信装置の構成］
まず、実施例３に係る通信装置１０の構成を説明する。図１１は、実施例３に係る通信装置の構成を示すブロック図である。実施例３に係る通信装置１０の構成は、変更時刻記憶部１２ｄを新たに備える他は、実施例１に係る通信装置１０と以下に説明する点が異なる。
【０１１７】
すなわち、変更時刻記憶部１２ｄは、タイマパラメータ値を変更したときの時刻を記憶する。具体的には、変更時刻記憶部１２ｄは、タイマパラメータ変更部１４ｃによってタイマパラメータ記憶部１３ａに記憶されているタイマパラメータ値を決定タイマパラメータ値に書き換えたときの時刻を記憶する。
【０１１８】
タイマパラメータ変更部１４ｃは、前回タイマパラメータ値を変更したときから一定の時間が経過したか否かを判定し、一定の時間が経過していないと判定した場合には、タイマパラメータ値の変更を中止する。
【０１１９】
具体的には、タイマパラメータ変更部１４ｃは、タイマパラメータ記憶部１３ａに記憶されているタイマパラメータ値が決定したタイマパラメータ値と同じか否かを判定し、同じでない場合には、変更時刻記憶部１２ｄからタイマパラメータ値を変更したときの時刻を読み込む。
【０１２０】
そして、タイマパラメータ変更部１４ｃは、タイマパラメータ値を変更したときから一定の時間（例えば、ハードウェアレベルでの再初期化に要する時間の１００倍）が経過したか否かを判定する。ここで、タイマパラメータ値を変更したときから一定の時間が経過していると判定した場合には、タイマパラメータ変更部１４ｃは、タイマパラメータ記憶部１３ａに記憶されているタイマパラメータ値を決定タイマパラメータ値に書き換え、変更時刻記憶部１２ｄに記憶されている時刻を変更すべきタイマパラメータ値を決定したときの時刻（つまり、この処理を実行している時点の時刻）に書き換える。
【０１２１】
一方では、タイマパラメータ値を変更したときから一定の時間が経過していないと判定した場合には、変更時刻記憶部１２ｄは、タイマパラメータ値の変更を中止し、パケット数計測部１４ｂに受信パケット数の累計を「０」に変更するとともに受信パケット数の計測を再開させる。
【０１２２】
［実施例３に係る通信装置によるタイマパラメータ変更処理］
次に、図１２を用いて、実施例３に係る通信装置１０によるタイマパラメータ変更処理を説明する。図１２は、実施例３に係る通信装置によるタイマパラメータ変更処理の流れを示すフローチャートである。なお、以下では、実施例１に係る通信装置１０によるタイマパラメータ変更処理と異なる点について詳細に説明する。
【０１２３】
図１２に示すように、通信装置１０は、通信装置１０の外部からパケットを受信すると（ステップＳ５００１肯定）、受信パケットの数を計測し（ステップＳ５００２）、受信したパケットの数の累計が所定の数値に満たない場合には（ステップＳ５００３否定）、通信装置１０は、再びパケットの受信を待機する（ステップＳ５００１）。
【０１２４】
一方では、受信したパケットの数の累計が所定の数値に至ると（ステップＳ５００３肯定）、通信装置１０は、「単位時間当たりのパケット数」を算出し（ステップＳ５００４）、目標ＣＰＵ使用率よりも小さいＣＰＵ使用率に対応する各タイマパラメータ値の中から、最小となるタイマパラメータ値を変更すべきタイマパラメータ値に決定する（ステップＳ５００５）。
【０１２５】
そして、通信装置１０は、前回タイマパラメータ値を変更したときから一定の時間が経過したか否かを判定する（ステップＳ５００６）。具体的には、タイマパラメータ変更部１４ｃは、変更時刻記憶部１２ｄからタイマパラメータ値を変更したときの時刻を読み込み、タイマパラメータ値を変更したときから一定の時間が経過したか否かを判定する。
【０１２６】
ここで、タイマパラメータ値を変更したときから一定の時間が経過していると判定した場合には（ステップＳ５００６肯定）、通信装置１０は、タイマパラメータ値を決定タイマパラメータ値に変更し（ステップＳ５００７）、前回タイマパラメータ値を変更したときの時刻をこの処理を実行している時点の時刻に書き換える（ステップＳ５００８）。具体的には、タイマパラメータ変更部１４ｃは、タイマパラメータ記憶部１３ａに記憶されているタイマパラメータ値を決定タイマパラメータ値に書き換え、変更時刻記憶部１２ｄに記憶されている時刻を変更すべきタイマパラメータ値を決定したときの時刻に書き換える。
【０１２７】
そして、通信装置１０は、計測した受信パケット数の累計を「０」に変更し（ステップＳ５００９）、再びパケットの受信を待機する（ステップＳ５００１）。
【０１２８】
ステップＳ５００６に戻ると、タイマパラメータ値を変更したときから一定の時間が経過していないと判定した場合には（ステップＳ５００６否定）、計測した受信パケット数の累計を「０」に変更し（ステップＳ５００９）、再びパケットの受信を待機する（ステップＳ５００１）。
【０１２９】
［実施例３の効果］
上記したように、実施例３によれば、ネットワークの性能の低下を発生することなくパケット受信に対するレスポンスを高速化することが可能である。
【実施例４】
【０１３０】
さて、これまで実施例１〜３について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、実施例４として、他の実施例を説明する。
【０１３１】
例えば、実施例１では、受信したパケットの数の累計が所定の数値に至ることを契機に、タイマパラメータ値を変更する場合を説明した。しかしながら、所定の時間当たりに受信するパケットの数が極端に少ない場合には、受信したパケットの数の累計が所定の数値に至るまでに長時間を要する。
【０１３２】
この場合には、所定の時間が経過することを契機に、「単位時間当たりのパケット数」を計測結果として算出し、タイマパラメータ値を変更するようにしても本発明を適用することができる。
【０１３３】
また、実施例１では、目標ＣＰＵ使用率よりも小さいと判定したＣＰＵ使用率に対応する各タイマパラメータ値の中から、最小となるタイマパラメータ値を変更すべきタイマパラメータ値に決定する場合を説明したが、本発明はこれに限定されるものではなく、シミュレーション結果に基づいて、パケット数計測部１４ｂによる計測結果とＣＰＵ使用率とが加味されたタイマパラメータ値に変更する場合であれば適用することができる。
【０１３４】
すなわち、所定の間隔で区分けして設定された単位時間当たりのパケット数値範囲に対応付けて、シミュレーション結果に基づいて設定されたタイマパラメータ値をシミュレート結果記憶部１２ｂに記憶しておき（図１３参照）、パケット数計測部１４ｂによる計測結果に対応するタイマパラメータ値を変更すべきタイマパラメータ値に決定するようにしてもよい。なお、図１３は、実施例４に係るシミュレート結果記憶部に記憶される情報の一例を示した図である。
【０１３５】
（装置構成等）
また、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報（例えば、図３、図７および図１３に示した記憶情報や図８に示したパラメータ）については、特記する場合を除いて任意に変更することができる。
【０１３６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図２に示したパケット数計測部１４ｂと、タイマパラメータ変更部１４ｃとを統合して構成することができる。
【０１３７】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１３８】
（通信プログラム）
ところで、本発明はあらかじめ用意されたプログラムを通信装置１０としてのコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図１４を用いて、上記の実施例に示した通信装置１０と同様の機能を有する通信プログラムを実行するコンピュータを一例として説明する。図１４は、通信プログラムを実行するコンピュータを示す図である。
【０１３９】
図１４に示すように、通信装置１０としてのコンピュータ１１０は、入力部１２０、ＲＯＭ１３０、ＣＰＵ１４０、ＨＤＤ１５０、ＲＡＭ１６０、出力部１７０およびネットワークアダプタ１８０をバス１９０などで接続して構成される。
【０１４０】
ＲＯＭ１３０には、上記の実施例１に示した通信装置１０と同様の機能を発揮する通信プログラム、つまり、図１４に示すようにパケット受信プログラム１３０ａと、割り込み処理プログラム１３０ｂと、通信処理プログラム１３０ｃと、パケット数計測プログラム１３０ｄと、タイマパラメータ変更プログラム１３０ｅとが、あらかじめ記憶されている。なお、これらのプログラム１３０ａ〜プログラム１３０ｅについては、図２に示した通信装置１０の各構成要素と同様、適宜統合または、分散してもよい。
【０１４１】
そして、ＣＰＵ１４０がこれらのプログラム１３０ａ〜プログラム１３０ｅをＲＯＭ１３０から読み出して実行することで、図１４に示すように、プログラム１３０ａ〜プログラム１３０ｅは、パケット受信プロセス１４０ａと、割り込み処理プロセス１４０ｂと、通信処理プロセス１４０ｃと、パケット数計測プロセス１４０ｄと、タイマパラメータ変更プロセス１４０ｅとして機能するようになる。なお、プロセス１４０ａ〜プロセス１４０ｅは、図２に示した、パケット受信１３ｂと、割り込み処理部１３ｃと、通信制御部１４ａと、パケット数計測部１４ｂと、タイマパラメータ変更部１４ｅとにそれぞれ対応する。
【０１４２】
また、ＨＤＤ１５０には、図１４に示すように、シミュレート結果データテーブル１５０ａが設けられる。なお、シミュレート結果データテーブル１５０ａは、図２に示したシミュレート結果記憶部１２ｂに対応する。そして、ＣＰＵ１４０は、入力部１２０を介して受け付けたタイマパラメータデータ１６０ａおよび目標ＣＰＵ使用率データ１６０ｂをＲＡＭ１６０に格納するとともに、シミュレート結果データテーブル１５０ａから、シミュレート結果データ１６０ｃを読み出してＲＡＭ１６０に格納し、ＲＡＭ１６０に格納されたタイマパラメータデータ１６０ａ、目標ＣＰＵ使用率データ１６０ｂおよびシミュレート結果データ１６０ｃに基づいて処理を実行する。
【０１４３】
なお、上記した各プログラム１３０ａ〜プログラム１３０ｅについては、必ずしも最初からＲＯＭ１３０に記憶させておく必要はなく、例えば、コンピュータ１１０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、またはコンピュータ１１０の内外に備えられるＨＤＤなどの「固定用の物理媒体」、さらには公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１１０に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておき、コンピュータ１１０がこれから各プログラムを読み出して実行するようにしてもよい。
【図面の簡単な説明】
【０１４４】
【図１】実施例１に係る通信装置の概要および特徴を説明するための図である。
【図２】通信装置の構成を示すブロック図である。
【図３】シミュレート結果記憶部に記憶される情報の一例を示す図である。
【図４】通信装置による通信処理の流れを示すフローチャートである。
【図５】通信装置によるタイマパラメータ変更処理の流れを示すフローチャートである。
【図６】実施例２に係る通信装置の構成を示すブロック図である。
【図７】算出結果記憶部に記憶される情報の一例を示した図である。
【図８】ＣＰＵ使用率算出部によるＣＰＵ使用率算出処理の一例を説明するための図である。
【図９】実施例２に係るタイマパラメータ変更処理の流れを示すフローチャートである。
【図１０】ＣＰＵ使用率算出処理の流れを示すフローチャートである。
【図１１】実施例３に係る通信装置の構成を示すブロック図である。
【図１２】実施例３に係る通信装置によるタイマパラメータ変更処理の流れを示すフローチャートである。
【図１３】実施例４に係るシミュレート結果記憶部に記憶される情報の一例を示した図である。
【図１４】通信プログラムを実行するコンピュータを示す図である。
【符号の説明】
【０１４５】
１０  通信装置
１１  入出力部
１２  記憶部
１２ａ  目標ＣＰＵ使用率記憶部
１２ｂ  シミュレート結果記憶部
１２ｃ  算出結果記憶部
１２ｄ  変更時刻記憶部
１３  ネットワークアダプタ
１３ａ  タイマパラメータ記憶部
１３ｂ  パケット受信部
１３ｃ  割り込み処理部
１４  制御部
１４ａ  通信制御部
１４ｂ  パケット数計測部
１４ｃ  タイマパラメータ変更部
１４ｄ  ＣＰＵ使用率算出部
１１０  コンピュータ
１２０  入力部
１３０  ＲＯＭ（Read-Only Memory）
１３０ａ  パケット受信プログラム
１３０ｂ  割り込み処理プログラム
１３０ｃ  通信処理プログラム
１３０ｄ  パケット数計測プログラム
１３０ｅ  タイマパラメータ変更プログラム
１４０  ＣＰＵ（Central Processing Unit）
１４０ａ  パケット受信プロセス
１４０ｂ  割り込み処理プロセス
１４０ｃ  通信処理プロセス
１４０ｄ  パケット数計測プロセス
１４０ｅ  タイマパラメータ変更プロセス
１５０  ＨＤＤ（Hard disk drive）
１５０ａ  シミュレート結果データテーブル
１６０  ＲＡＭ（Random Access Memory）
１６０ａ  タイマパラメータデータ
１６０ｂ  目標ＣＰＵ使用率データ
１６０ｃ  シミュレート結果データ
１７０  出力部
１８０  ネットワークアダプタ
１９０  バス
【図１】
0004952542.tif 000002
【図２】
0004952542.tif 000003
【図３】
0004952542.tif 000004
【図４】
0004952542.tif 000005
【図５】
0004952542.tif 000006
【図６】
0004952542.tif 000007
【図７】
0004952542.tif 000008
【図８】
0004952542.tif 000009
【図９】
0004952542.tif 000010
【図１０】
0004952542.tif 000011
【図１１】
0004952542.tif 000012
【図１２】
0004952542.tif 000013
【図１３】
0004952542.tif 000014
【図１４】
0004952542.tif 000015