(57)【要約】【課題】割り込み処理回数を減らして、パケット受信処理の総処理時間を短縮すると共に、パケット受信処理のラグを減らす。【解決手段】ネットワークを通してパケットを受信するパケット受信部１と、その受信パケットを取り込んで処理するパケット処理部２と、パケット処理部２がパケット受信部１からパケット受信割り込みを受けた時点からの時間を計測するタイマカウンタ７とを有する。パケット処理部２は、パケット受信部１から割り込み信号を受けたとき、及びタイマカウンタ７がタイムアップしてパケット受信部１に対してポーリングを行ったときに、未処理の受信パケットを取り込んで処理し、パケット受信部１は、初期状態で最初のパケットを受信したときは、上記パケット受信割り込みを発すると共に連続パケット受信モードに遷移し、その後は、所定個数のパケットを受信するごとにパケット受信割り込みを発し、パケット処理部２からポーリングを受けたときに初期状態に戻る。【選択図】    図１
2015060273.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを通してパケットを受信するパケット受信部と、該パケット受信部によって受信した受信パケットを取り込んで処理するパケット処理部とを有するネットワーク制御装置であって、
前記パケット処理部が前記パケット受信部から受信パケットの処理を要求する割り込み信号を受けたときに、該パケット処理部からの信号によって該時点からの時間を計測する時間計測手段を設け、
前記パケット処理部は、前記パケット受信部から前記割り込み信号を受けたとき、および前記時間計測手段の計測時間が所定時間に達して前記パケット受信部に対してポーリングを行った後、該パケット受信部から応答信号を受けたときに、それまでに該パケット受信部によって受信された未処理の受信パケットを取り込んで処理し、
前記パケット受信部は、初期状態で最初のパケットを受信したときは、前記パケット処理部へ前記割り込み信号を発すると共に連続パケット受信モードに遷移し、その後は、所定個数のパケットを受信するごとに前記パケット処理部へ前記割り込み信号を発し、前記パケット処理部からポーリングを受けたときに、未処理の受信パケットがあれば該パケット処理部に応答信号を返すとともに、前記初期状態に戻ることを特徴とするネットワーク制御装置。
【請求項２】
請求項１に記載のネットワーク制御装置において、
前記時間計測手段によって計測する前記所定時間を可変設定する手段を有することを特徴とするネットワーク制御装置。
【請求項３】
請求項１又は２に記載のネットワーク制御装置において、
前記前記パケット受信部が前記割り込み信号を発する間隔となる前記所定個数の最適値を自動的に算出する最適個数算出手段を有することを特徴とするネットワーク制御装置。
【請求項４】
前記最適個数算出手段は、
パケット受信間隔の平均値をａ、前記ポーリングの間隔をｂ、ユーザに不快感を与えないための係数をｃとして、ｂ×ｃ／ａの演算によって前記所定個数の最適値を算出することを特徴とする請求項３に記載のネットワーク制御装置。
【請求項５】
前記パケット受信部は、ネットワークと接続される物理デバイスと、該物理デバイスを通してパケットを受信するとともに、前記パケット処理部への前記割り込み信号の発生、前記パケット処理部からポーリングを受けたときの前記応答信号の返信を含む処理を行うネットワークインタフエースカードとを備え、
前記パケット処理部は、前記ネットワークインタフエースカードから割り込み信号を受けたとき、及びＮＩＣデバイスドライバからパケット処理要求を受けたときに、前記受信パケットを取り込んで処理するＣＰＵと、前記時間計測手段を管理するとともに、前記ネットワークインタフエースカードに対する前記ポーリングの処理、および前記ＣＰＵに対する前記パケット処理要求を含む処理を行うＮＩＣデバイスドライバとを備え、
前記時間計測手段がタイマカウンタであることを特徴とする請求項１から４のいずれか一項に記載のネットワーク制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ネットワーク機器にパケット通信を行うためのネットワークインタフェースとして設けられるネットワーク制御装置に関する。
【背景技術】
【０００２】
ネットワーク上のクライアントやサーバ等のネットワーク機器には、パケット通信を行うためのネットワークインタフェースとしてネットワーク制御装置が設けられている。そのネットワーク制御装置による受信パケットの処理は、１パケット受信する度にＣＰＵに対して割り込み発生させて実行していることが多かった。
例えば、図５に示すように、パケットＰを１個受信する度にＣＰＵ１０に対して割り込み通知をし、それによってＣＰＵ１０がその受信したパケットＰを回収する。
【０００３】
しかし、最近のネットワークの高速化により、割り込み処理を１パケットの受信毎に発生させることによる処理時間のオーバヘッドが大きくなり、受信するパケットの量に対しＣＰＵが処理するパケットの量が追いつかなくなる可能性が高くなってきた。
そのため、図６に示すように、ある程度まとまった数（図６の例では４個）のパケットＰを受信するか、一定時間経過することによって、ＣＰＵ１０に対して割り込み通知をしてパケットの処理を起動する（ポーリングする）方法が行われ始めている。この方法では、受信したパケットＰを１パケット毎にＣＰＵ１０が回収処理するのではなく、複数個のパケットＰをＣＰＵ１０が一度に回収する。
【０００４】
このようにすることにより、割り込み発生回数を減らすことができ、パケット受信処理の総処理時間を短縮することが可能になることは既に知られている。
また、特許文献１には、複数のＣＰＵが存在する状況で、パケット受信状況をポーリングによって監視するＣＰＵと、パケット受信処理そのものを行うＣＰＵとに割り当てて、負荷分散を行う方法が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の所定数のパケットを受信したり一定時間の経過によりＣＰＵのパケット回収処理を起動する方法では、例えば図７に示すように、所定数のパケットＰを受信した直後の端数のパケットＰｅをＣＰＵ１０が回収するまでにラグが発生してしまう。
すなわち、所定数のパケットＰを受信すると、その割り込み通知によってＣＰＵ１０がその所定数のパケットＰを一度に回収する処理を行うため、ＣＰＵ１０が次の割り込み通知を受け付けて端数のパケットＰｅを回収するのが遅れる。
一定時間の経過によりＣＰＵのパケット回収処理を起動する方法では、パケット受信処理の総処理時間を充分に短縮することができないという問題があった。
【０００６】
上記のようなラグが発生すると、例えば、ＴＣＰ／ＩＰ通信を行う操作部が接続されているデジタル複合機（一般に「ＭＦＰ」と称される）の場合、上述のラグ（遅れ）によってキーレスポンスが悪くなるという問題が発生する。それによって、ユーザの操作性に影響を与えてしまうことになる。
特許文献１に開示されているように負荷分散を行う方法によっても、上記のようなパケット受信タイミングのラグを減らすことはできていない。
【０００７】
この発明は上記の問題を解決するためになされたものであり、パケット受信の際に、ＣＰＵ等のパケット処理部による割り込み処理回数を減らして、パケット受信処理の総処理時間を短縮すると共に、パケット受信処理のラグを減らしてユーザの操作性に影響を与えないようにすることを目的とする。
【課題を解決するための手段】
【０００８】
この発明によるネットワーク制御装置は上記の目的を達成するため、ネットワークを通してパケットを受信するパケット受信部と、そのパケット受信部によって受信した受信パケットを取り込んで処理するパケット処理部とを有するネットワーク制御装置であって、上記パケット処理部が上記パケット受信部から受信パケットの処理を要求する割り込み信号を受けたときに、そのパケット処理部からの信号によって該時点からの時間を計測する時間計測手段を設けている。
そして、上記パケット処理部は、上記パケット受信部から上記割り込み信号を受けたとき、および上記時間計測手段の計測時間が所定時間に達して上記パケット受信部に対してポーリングを行った後、そのパケット受信部から応答信号を受けたときに、それまでに該受信部によって受信された未処理の受信パケットを取り込んで処理し、
上記パケット受信部は、初期状態で最初のパケットを受信したときは、上記パケット処理部へ上記割り込み信号を発すると共に連続パケット受信モードに遷移し、その後は、所定個数のパケットを受信するごとに上記パケット処理部へ上記割り込み信号を発し、上記パケット処理部から前記ポーリングを受けたときに、未処理の受信パケットがあれば該パケット処理部に応答信号を返すとともに、上記初期状態に戻ることを特徴とする。
【発明の効果】
【０００９】
この発明によるネットワーク制御装置は、パケット処理部における割り込み処理回数を減らしてパケット受信処理の総処理時間を短縮することができ、且つパケット受信処理のラグを減らしてユーザの操作性に影響を与えないようにすることができる。
【図面の簡単な説明】
【００１０】
【図１】この発明によるネットワーク制御装置の一実施形態の構成を示すブロック図である。
【図２】図１に示した各部間における信号の授受及び処理の流れを示すシーケンス図である。
【図３】この発明によるネットワーク制御装置の他の実施形態の構成を示す図１と同様なブロック図である。
【図４】同実施形態においてタイマカウンタによる計測時間を設定するための入力画面の一例を示す図である。
【図５】従来のネットワーク制御装置によるパケット受信処理の基本的な例を説明するための図である。
【図６】同じくある程度まとまった数の受信パケットを一度に回収して処理する例を説明するための図である。
【図７】図６に示したパケット受信処理による問題点を説明するための図である。
【発明を実施するための形態】
【００１１】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
図１は、この発明によるネットワーク制御装置の一実施形態の構成を示すブロック図である。
この図１に示すネットワーク制御装置は、ネットワークを介して接続されるネットワーク機器に、パケット受信を行うためのネットワークインタフェースとして設けられ、パケット受信部１及びパケット処理部２と、タイマカウンタ７によって構成されている。
【００１２】
そのパケット受信部１は、ネットワークを通して次々と送信されて来るパケットを順次受信する。パケット処理部２は、パケット受信部１によって受信した受信パケットを取り込んで処理する。タイマカウンタ７は、パケット処理部２がパケット受信部１から受信パケットの処理を要求する割り込み信号であるパケット受信割り込みを受けたときに、パケット処理部２からの信号によって該時点からの時間を計測する時間計測手段である。
【００１３】
さらに、パケット処理部２は、パケット受信部１からパケット受信割り込みを受けたとき、それまでにパケット受信部１によって受信された未処理の受信パケットを取り込んで処理する。また、タイマカウンタ７の計測時間が所定時間に達したとき、パケット受信部１に対してポーリングを行い、その後パケット受信部１から応答信号を受けたときにも、それまでにパケット受信部１によって受信された未処理の受信パケットを取り込んで処理する。
【００１４】
パケット受信部１は、初期状態で最初のパケットを受信したときは、パケット処理部２へパケット受信割り込みを発生すると共に連続パケット受信モードに遷移して、パケットを受信する度にパケット受信割り込みを発生するのを中止する。その後は、パケット受信部１が所定個数のパケットを受信するごとに、パケット処理部２へパケット受信割り込みを発する。
さらに、このパケット受信部１は、パケット処理部２からポーリングを受けたときに、未処理の受信パケットがあれば、パケット処理部２に応答信号を返すとともに、連続パケット受信モードを終了して初期状態に戻る。
【００１５】
そのパケット受信部１は、ネットワークに接続される物理デバイス（以下「ＰＨＹ」と略称する）３と、そのＰＨＹ３を通してパケットを受信するネットワークインタフエースカード（以下「ＮＩＣ」と略称する）４とを備えている。
そのＮＩＣ４は、パケット処理部２へのパケット受信割り込みの発生、パケット処理部２からポーリングを受けたときの応答信号の返信を含む処理も行う。
【００１６】
パケット処理部２は、ＣＰＵ６とＮＩＣデバイスドライバ５とを備えている。ＣＰＵ６はマイクロプロフェッサであり、ＮＩＣ４からパケット受信割り込みを受けたとき、及びＮＩＣデバイスドライバ５からパケット処理要求を受けたときに、受信パケットを取り込んで処理する。ＮＩＣ４に保持された受信パケットは、ＮＩＣデバイスドライバ５を通してＣＰＵ６に取り込まれる。
ＮＩＣデバイスドライバ５は、時間計測手段であるタイマカウンタ７を管理するとともに、ＮＩＣ４に対するポーリング、ＣＰＵ６に対するパケット処理要求を含む処理を行う。
【００１７】
この図１に示したネットワーク制御装置の各部間における信号の授受及び処理の流れを、図２のシーケンス図によって説明する。
ＮＩＣ４は初期状態では、パケットを受信する度にパケット受信割り込みを発生させるモードになっており、その状態でパケット受信を開始する。
そして、パケット受信部１のＰＨＹ３を通してＮＩＣ４が最初のパケットを受信すると、受信パケットの処理を要求する割り込み信号であるパケット受信割り込みを発生し、パケット処理部２のＮＩＣデバイスドライバ５とＣＰＵ６に割り込み通知をする。そのとき、ＮＩＣ４は、初期状態から連続パケット受信モードへ遷移する。それによって、その後は略一定の時間間隔（例えば１．５ｍｓ）でパケットを受信しても、所定個数（例えば１６０個）受信するまでは、パケット受信割り込みを発生しなくなる。
【００１８】
パケット受信割り込みを受けたＮＩＣデバイスドライバ５は、直ちにタイマカウンタ７に対してリセット／スタート（以下「Ｒ／Ｓ」と略称する）信号を送り、タイマカウンタ７をカウントリセット／スタートさせる。このときは、タイマカウンタ７は既にクリアされて計測時間は「０」になっているので、リセットしても変わらないが、この時点から一定周期のクロック信号のカウント、すなわち時間の計測を開始する。そのクロック信号には、ＣＰＵ６を動作させるクロック信号を利用することができる。このタイマカウンタ７の最大計測時間を所定時間（例えば３００ｍｓ）に設定しておく。
パケット受信割り込みを受けたＣＰＵ６は、ＮＩＣ４が受信した最初の受信パケットを取り込んで処理（受信パケット処理）を実行する。
【００１９】
その後、パケット受信部１のＮＩＣ４が、略一定の時間間隔（例えば１．５ｍｓ）で継続的にパケットを受信し、予め設定された所定個数目（例えば１６０個目）のパケットを受信すると、パケット処理部２に対してパケット受信割り込みを発生する。
そのパケット受信割り込みを受けて、ＮＩＣデバイスドライバ５は、直ちにタイマカウンタ７に対してＲ／Ｓ信号を送り、タイマカウンタ７をカウントリセット／スタートさせる。このときには、タイマカウンタ７による計測時間が前述した所定時間（例えば３００ｍｓ）には達していないように、上記所定個数を設定しているが、それについては後述する。タイマカウンタ７は、このカウントリセット／スタートによって、それまでのカウント値すなわち計測時間を「０」にリセットして、再びその時点から時間の計測を開始する。
【００２０】
パケット受信割り込みを受けたＣＰＵ６は、ＮＩＣ４がそれまでに受信した１６０個の未処理の受信パケットを順次取り込んで処理（受信パケット処理）を実行する。
以後、パケット受信部１のＮＩＣ４が、再び所定個数のパケットを受信すれば、上述した処理を繰り返すが、受信パケット数が所定個数に満たないでパケット受信が終了した場合は、図１におけるパケット受信終了後の処理を行う。
【００２１】
この場合は、パケット受信が終了してもＮＩＣ４はパケット受信割り込みを発生しない。しかし、タイマカウンタ７の計測時間が前述した所定時間（例えば３００ｍｓ）には達すると、タイマカウンタ７はカウントストップしてそのカウント値すなわち計測時間をクリアする。そのとき、タイマカウンタ７はＮＩＣデバイスドライバ５に対してタイムアップ信号を出力する。
それによって、ＮＩＣデバイスドライバ５は、パケット受信部１のＮＩＣ４に対してポーリングを行う。ポーリングを受けたＮＩＣ４は、未処理の受信パケットがあれば、パケット処理部２のＮＩＣデバイスドライバ５に応答信号を返す。また、ＮＩＣ４はポーリングを受けたことによって、連続パケット受信モードを終了して初期状態に戻る。
【００２２】
ＮＩＣデバイスドライバ５は、ＮＩＣ４から応答信号を受信するとＣＰＵ６に対してパケット処理要求をする。それによってＣＰＵ６は、それまでにパケット受信部１のＮＩＣ４が受信した、所定個数に満たない端数の未処理の受信パケットを取り込んで処理（受信パケット処理）を実行する。
【００２３】
ここで、上述したタイマカウンタ７の最大計測時間である「所定時間」と、ＮＩＣ４がパケット受信割り込みを発生する間隔、すなわちＣＰＵ６が纏めて処理する受信パケットの個数である「所定個数」の具体的な数値例について説明する。
例えば、キーボードの操作に一般的に不快感を感じるか感じないかの境界の反応時間が３００ｍｓである場合、その反応時間の３００ｍｓを上記タイマカウンタ７の最大計測時間である所定時間とする。この場合、ポーリング間隔が３００ｍｓになる。
【００２４】
しかし、この間隔でポーリングするだけでは、ユーザにとっては不快感を感じる可能性もある。そこで、この所定時間すなわちポーリング間隔の３００ｍｓより短い時間間隔で、ＮＩＣ４がパケット受信割り込みを発生するようにすれば、不快感を感じるユーザは少ないことが予想される。
ユーザに不快感を与えないための係数を０．８とした場合、３００ｍｓ×０．８＝２４０ｍｓの間隔でパケット受信割り込みを発生させるようにすればよい。この場合、パケットを１．５ｍｓ間隔で受信し続けると仮定して、２４０／１．５＝１６０個が、ＮＩＣ４がパケット受信割り込みを発生する間隔内で受信するパケットの個数、すなわち上記「所定個数」になる。
【００２５】
よって、ＮＩＣ４では、１６０個のパケットを受信するごとにパケット受信割り込みを発生するように設定する。パケット受信割り込みが発生したら、タイマカウンタ７をリセットして、時間のカウントをし直す。
受信パケット数が１６０個に満たないでパケット受信が終了し、ＮＩＣ４がパケット受信割り込みを発生できなかった場合は、タイマカウンタ７の計測時間が３００ｍｓに達すると、タイムアップ信号を出力し、ＮＩＣデバイスドライバ５がポーリングを行う。それによって、最後の１６０個に満たない端数の受信パケットを、ＣＰＵ６が取り込んで処理することができる。
【００２６】
このようにすることによって、パケット連続受信時の割り込み発生回数は従来の１／１６０になり、しかも約２４０ｍｓ間隔で１６０個の受信パケットを纏めて回収して処理することができる。また、１６０個未満の端数の受信パケットについても、３００ｍｓ以内に回収して処理することができるので、ユーザに待たされている不快感を与えずに済むことになる。
したがって、割り込み処理回数を減らしてパケット受信処理の総処理時間を短縮することができ、且つパケット受信処理のラグを減らしてユーザの操作性に影響を与えないようにすることが可能になる。
但し、上記の数値は一例であり、これが常に最適ということではなく、用途や装置各部の性能あるいはユーザの要求などに応じて種々変更し得ることは勿論である。
【００２７】
次に、この発明によるネットワーク制御装置の他の実施形態を図３及び図４によって説明する。図３はそのネットワーク制御装置の構成を示す図１と同様なブロック図であり、図１と対応する部分には同一の符号を付し、それらの説明は省略する。
この実施形態において前述の実施形態と異なる点は、計測時間設定手段８と最適個数算出手段９を追加して設けた点だけである。
計測時間設定手段８は、時間計測手段であるタイマカウンタ７の最大計測時間、すなわち前述したポーリング間隔となる「所定時間」を可変設定する手段である。
最適個数算出手段９は、ＮＩＣ４がパケット受信割り込みを発生する間隔を決める受信パケットの個数である前述した「所定個数」の最適個数を自動的に算出する手段である。
【００２８】
その計測時間設定手段８は、ＮＩＣデバイスドライバ５の機能の一部あるいは専用の入力設定回路として設けることができ、そのユーザインタフェースとして、図４に示すような入力画面をタッチパネルに表示する。その入力画面は、ＣＰＵ小負荷から高レスポンスまで、１から７のモードを選択できるように、正方形のボタンが一列に配列されており、モード１からタッチされたモードまでの各ボタンが反転表示になる。図４はモード５が選択された状態を示す。
【００２９】
【表１】
2015060273.tif 000003
【００３０】
モード１〜７の各「所定時間」であるポーリング間隔は、例えば表１に示すようになっている。モード１はポーリング間隔が３００ｍｓで最も長く、ＣＰＵの負荷が最も小さい。モード番号が大きくなるほどポーリング間隔が短くなり、ＣＰＵの負荷は増加するがレスポンスは高くなる。モード７のポーリング間隔は１２０ｍｓである。
このモードのいずれかを正方形のボタンのタッチによって選択した後、「ＯＫ」ボタンをタッチすれば、その選択したモードのポーリング間隔すなわち「所定時間」が設定される。「キャンセル」ボタンをタッチすれば、その設定をやり直すことができる。
【００３１】
図３に示すタイマカウンタ７は、この計測時間設定手段８によって設定されたポーリング間隔すなわち「所定時間」までカウント（時間計測）すると、カウントストップしてカウント値をクリアし、タイムアップ信号を出力する。それによってＮＩＣデバイスドライバ５がポーリングを行うことになる。
このとき、ＮＩＣ４は連続パケット受信モードから初期状態に戻るので、このポーリング間隔すなわち「所定時間」が、ＮＩＣ４を連続パケット受信モードから初期状態に戻らせる閾値となり、それをユーザが設定できることになる。
【００３２】
タイマカウンタ７は、リセット状態の０からクロック信号を加算カウントしていき、そのカウント値が設定された所定時間（例えば３００ｍｓ）に達した時にタイムアップ信号を出力する例で説明した。しかし、最初に設定された所定時間をセットして、その後クロック信号を減算カウントしていき、カウント値が０になった時にタイムアップ信号を出力するようにしてもよい。
【００３３】
最適個数算出手段９は、パケット受信部１のＮＩＣ４が、連続パケット受信モードにおいて、パケット受信割り込みを発生する間隔を決める「所定個数」の最適値を自動的に算出するが、例えば次のようにして算出する。
すなわち、パケット受信間隔の平均値をａ、ポーリングの間隔をｂ、ユーザに不快感を与えないための係数をｃとして、ｂ×ｃ／ａの演算によって「所定個数」の最適値を算出する。
【００３４】
パケット受信間隔の平均値ａを前述した例では１．５ｍｓと仮定し、ユーザに不快感を与えないための係数ｃを０．８とした。この場合に、上述した計測時間設定手段８によって、ポーリングの間隔ｂが設定されると、それらの値によって、演算回路がｂ×ｃ／ａの値を算出して、「所定個数」の最適値として、ＮＩＣ４に設定する。
例えば、ポーリングの間隔ｂが３００ｍｓに設定された場合は、
ｂ×ｃ／ａ＝３００×０．８／１．５＝１６０
であるから、「所定個数」を１６０個と設定する。
【００３５】
ポーリングの間隔ｂが最短の１２０ｍｓに設定された場合は、
ｂ×ｃ／ａ＝１２０×０．８／１．５＝６４
であるから、「所定個数」を６４個と設定する。
ＮＩＣ４は、この設定された「所定個数」のパケットを受信するごとにパケット受信割り込みを発生することになる。上述の例では、「所定個数」が１６０個以下であるから、少なくとも、１６０×１．５＝２４０ｍｓ間隔で割り込みが発生することが予想されるため、不快感を感じるユーザは少ないことが予想される。
【００３６】
以上、この発明の実施形態について説明してきたが、その実施形態の各部の具体的な構成や処理の内容等は、そこに記載したものに限るものではない。
また、この発明は上述した実施形態に限定されるものではなく、特許請求の範囲の各請求項に記載された技術的特徴を有する以外は、何ら限定されるものではないことは言うまでもない。
さらに、以上説明してきた実施形態の構成例、動作例及び変形例等は、適宜変更又は追加したり一部を削除してもよく、相互に矛盾しない限り任意に組み合わせて実施することも可能であることは勿論である。
【符号の説明】
【００３７】
１：パケット受信部    ２：パケット処理部    ３：物理デバイス（ＰＨＹ）
４：ネットワークインタフェースカード（ＮＩＣ）    
５：ＮＩＣデバイスドライバ    ６：ＣＰＵ    ７：タイマカウンタ（時間計測手段）
８：計測時間設定手段    ９：最適個数算出手段
【先行技術文献】
【特許文献】
【００３８】
【特許文献１】特開２００８−１２９７６７号公報
【図１】
2015060273.tif 000004
【図２】
2015060273.tif 000005
【図３】
2015060273.tif 000006
【図４】
2015060273.tif 000007
【図５】
2015060273.tif 000008
【図６】
2015060273.tif 000009
【図７】
2015060273.tif 000010