(57)【要約】      （修正有）【課題】高速ネットワーク環境において十分な受信処理能力を持たない場合でも、受信処理能力に応じた受信性能を発揮できるネットワーク機器装置を提供する。【解決手段】パケットが格納される受信バッファ１２と、受信バッファ１２からパケットの転送を受けてパケットを格納するメモリ１４と、受信バッファ１２からメモリ１４へパケットを転送する受信割込処理およびメモリ１４に格納されたパケットに基づく受信タスク処理の双方を実行するＣＰＵ１３と、パケットを受信して受信バッファ１２に転送して受信割込信号を出力する受信部１１と、受信割込信号をマスクするマスクモードとマスク解除モードを有する信号制御部１５を備え、信号制御部１５がＣＰＵ１３からマスク解除信号を受けたときに、受信割込信号を保持していれば受信割込信号をＣＰＵ１３に伝えるとともにマスクモードを維持し、受信割込信号を保持していないときはマスク解除モードに移行する。【選択図】図１
2010050699.tif 000002
【特許請求の範囲】
【請求項１】
パケットが格納される受信バッファと、
前記受信バッファからパケットの転送を受けて該パケットを格納するメモリと、
前記受信バッファから前記メモリへパケットを転送する受信割込処理と、該メモリに格納されたパケットに基づく処理である受信タスク処理とを実行するＣＰＵと、
ネットワークを経由して送信されてきたパケットを受信し該パケットを前記受信バッファに転送して転送完了を示す受信割込信号を出力する受信部と、
マスクモードとマスク解除モードとを有し、前記受信部から前記受信割込信号を受け取り、該マスク解除モードにあるときに該受信割込信号を受け取ったときは該受信割込信号を前記ＣＰＵに伝えて該マスクモードに移行する信号制御部とを備え、
前記ＣＰＵは、前記受信タスク処理終了後に前記信号制御部に向けてマスク解除信号を出力するものであり、
前記信号制御部は、前記ＣＰＵから該マスク解除信号を受けて、該信号制御部が前記マスクモードにあるときに前記受信部から受信割込信号を受けて保持していたときは、該受信割込信号を前記ＣＰＵに伝えるとともに該マスクモードを維持し、該受信割込信号を保持していないときは前記マスク解除モードに移行するものであることを特徴とするネットワーク機器装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを経由して送信されてきたパケットを受信して処理するネットワーク機器装置に関する。
【背景技術】
【０００２】
従来より、ネットワークを経由して送信されてきたパケットを受信する受信部と、その受信部で受信したパケットを格納する受信バッファと、その受信バッファに格納されたパケットに基づいた処理を実行するＣＰＵとを備えたネットワーク機器装置が知られている。
【０００３】
図３は、従来のネットワーク機器装置における受信処理のフローを示す図である。
【０００４】
ネットワーク機器装置には、ネットワークを経由してパケットが送信されてくる。すると、ネットワーク機器装置を構成する受信部では、以下のステップＳ１〜Ｓ３が実行される。先ず、ステップＳ１において、パケットを受信する。次いで、ステップＳ２において、受信したパケットを受信バッファに転送する。さらに、ステップＳ３において、受信バッファへのパケットの転送が完了したことを示す受信割込信号を発生し、発生した受信割込信号をＣＰＵへ通知（図３の点線で示すイベント通知）する。
【０００５】
ＣＰＵでは、以下のステップＳ４〜Ｓ７が実行される。先ず、ステップＳ４において、受信部からの受信割込信号を受信する。次いで、ステップＳ５において、受信割込処理を行なう。この受信割込処理では、受信バッファに転送されたパケットを取り出す処理が行なわれる。さらに、取り出されたパケットに対して、ステップＳ６，Ｓ７において受信タスク処理を行なう。即ち、ステップＳ６においてプロトコルスタック処理を行ない、次いでステップＳ７においてアプリケーション処理を行なう。その後、この受信処理フローを終了する。
【０００６】
近年、ネットワークの通信速度の高速化に伴って、そのネットワークに接続されるネットワーク機器装置の受信処理能力が十分でなくなり、このため受信性能が低下するという問題が発生している。例えば、装置の処理能力に対して受信パケットの頻度が高い場合、ＣＰＵが受信タスク処理を実行中に受信割込信号を受けてしまうことがある。一般的に、受信タスク処理中に割込信号を受けると、ＣＰＵは受信タスク処理を中断して受信割込処理を実行してしまう。このようなことが継続して発生すると処理を中断されたままのパケットが多くなるため、受信性能が低下するという問題が発生する。これは受信処理能力が十分でないネットワーク機器装置で発生しうる現象である。
【０００７】
このような問題に対し、十分な受信処理能力を備えていないネットワーク機器装置において、あらかじめ設定した周期より短い周期では受信割込信号を発生させない受信割込遅延機構を備えることで、受信タスク処理および通信以外の処理を行う時間を確保する技術が提案されている（特許文献１参照）。
【特許文献１】特開２００７―７４３２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１に提案された、あらかじめ設定した周期より短い周期では受信割込信号を発生させない技術では、イーサネットのような受信パケットの到着タイミングやサイズ等をあらかじめ予見したり保障したりすることのできないネットワークにおいては、無駄な時間が発生してしまい効率的でない。従って、ネットワーク機器装置の能力に応じた性能を発揮する適切な受信処理を行なうことは困難である。
【０００９】
本発明は、上記事情に鑑み、高速ネットワーク環境において十分な受信処理能力を持たない場合であっても、その受信処理能力に応じた受信性能を発揮することができるネットワーク機器装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成する本発明のネットワーク機器装置は、
パケットが格納される受信バッファと、
上記受信バッファからパケットの転送を受けてそのパケットを格納するメモリと、
上記受信バッファから上記メモリへパケットを転送する受信割込処理と、そのメモリに格納されたパケットに基づく処理である受信タスク処理とを実行するＣＰＵと、
ネットワークを経由して送信されてきたパケットを受信しそのパケットを上記受信バッファに転送して転送完了を示す受信割込信号を出力する受信部と、
マスクモードとマスク解除モードとを有し、上記受信部から上記受信割込信号を受け取り、そのマスク解除モードにあるときにその受信割込信号を受け取ったときはその受信割込信号を上記ＣＰＵに伝えてそのマスクモードに移行する信号制御部とを備え、
上記ＣＰＵは、上記受信タスク処理終了後に上記信号制御部に向けてマスク解除信号を出力するものであり、
上記信号制御部は、上記ＣＰＵからそのマスク解除信号を受けて、その信号制御部が上記マスクモードにあるときに上記受信部から受信割込信号を受けて保持していたときは、その受信割込信号を上記ＣＰＵに伝えるとともにそのマスクモードを維持し、その受信割込信号を保持していないときは上記マスク解除モードに移行するものであることを特徴とする。
【００１１】
本発明のネットワーク機器装置は、信号制御部がＣＰＵからマスク解除信号を受けて、マスクモードにあるときに受信部から受信割込信号を受けて保持していたときは、その受信割込信号をＣＰＵに伝えるとともにそのマスクモードを維持し、受信割込信号を保持していないときはマスク解除モードに移行する構成である。このため、ＣＰＵが受信タスク処理を実行している途中で、次のパケットを受信した場合であっても、ＣＰＵには、この受信タスク処理が実行された後に受信割込信号が伝えられる。従って、ＣＰＵでは受信タスク処理が中断されることなく、受信タスク処理に必要な時間を適切に確保することができる。このため、大量のパケットを受信した場合でも受信割込信号により受信タスク処理が中断されることが防止され、高速ネットワーク環境において、十分な受信処理能力を持たない場合であっても、その受信処理能力に応じた受信性能を発揮することができる。
【発明の効果】
【００１２】
本発明によれば、高速ネットワーク環境において十分な受信処理能力を持たない場合であっても、その受信処理能力に応じた受信性能を発揮することができるネットワーク機器装置を提供することができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明の実施の形態を説明する。
【００１４】
図１は、本発明の一実施形態のネットワーク機器装置の構成を示すブロック図である。
【００１５】
図１に示すネットワーク機器装置１０には、受信部１１と、受信バッファ１２と、ＣＰＵ１３と、メモリ１４と、信号制御部１５とが備えられている。
【００１６】
受信部１１は、ネットワークを経由して送信されてきたパケットを受信する。また、この受信部１１は、受信したパケットを受信バッファ１２に転送する。さらに、この受信部１１は、受信したパケットの転送完了を示す受信割込信号を、信号制御部１５に出力する。また、この受信部１１は、受信バッファ１２が満杯のときは、ネットワークを経由して送信されてきたパケットを廃棄する。
【００１７】
受信バッファ１２は、複数のパケットを格納する容量を有し、受信部１１から転送されてきた複数のパケットを格納する。
【００１８】
ＣＰＵ１３は、受信バッファ１２からメモリ１４へパケットを転送する受信割込処理と、メモリ１４に格納されたパケットに基づくプロトコル処理およびアプリケーション処理である受信タスク処理とを実行する。また、このＣＰＵ１３は、受信タスク処理終了後に、信号制御部１５に向けてマスク解除信号を出力する。
【００１９】
メモリ１４は、ＣＰＵ１３による、受信バッファ１２からのパケットの転送を受けてそのパケットを格納する。
【００２０】
信号制御部１５は、マスクモードとマスク解除モードとを有し、受信部１１から受信割込信号を受け取り、マスク解除モードにあるときに受信割込信号を受け取ったときは受信割込信号をＣＰＵ１３に伝えてマスクモードに移行する。また、信号制御部１５は、ＣＰＵ１３からマスク解除信号を受けて、この信号制御部１５がマスクモードにあるときに受信部１１から受信割込信号を受けて保持していたときは、その受信割込信号をＣＰＵ１３に伝えるとともにそのマスクモードを維持する。一方、受信割込信号を保持していないときはマスク解除モードに移行する。ここで、受信バッファ１２は、メモリ１４の内部に配置することも可能である。この場合、受信バッファ１２からメモリ１４へのパケットの転送は、パケットのメモリアドレスの書き換えのみで済む。
【００２１】
図２は、図１に示すネットワーク機器装置における動作フローを示す図である。
【００２２】
図１に示すネットワーク機器装置１０に、ネットワークを経由してパケットが送信されてくると、受信部１１では、以下のステップＳ１１〜Ｓ１３が実行される。先ず、ステップＳ１１において、パケットを受信する。次いで、ステップＳ１２において、受信したパケットを受信バッファ１２に転送する。さらに、ステップＳ１３において、受信バッファ１２へのパケットの転送が完了したことを示す受信割込信号を発生し、この受信割込信号を信号制御部１５に通知（図２の点線で示すイベント通知）する。
【００２３】
信号制御部１５では、受信部１１からの受信割込信号の通知を受けると、ステップＳ２１において、受信割込信号をマスクするマスクモードか否かが判定される。マスクモードであると判定された場合は、ステップＳ２２において、ＣＰＵ１３への受信割込信号の通知は行わず（非通知）、ステップＳ２３に進む。ステップＳ２３では、その受信割込信号の情報を保持する。
【００２４】
一方、ステップＳ２１において、マスクモードではない（マスク解除モードである）と判定された場合は、ステップＳ２４に進む。ステップＳ２４では、ＣＰＵ１３に受信割込信号を通知（図２の点線で示すイベント通知）してステップＳ２５に進む。ステップＳ２５では、マスク解除モードからマスクモードに移行する。
【００２５】
ＣＰＵ１３では、信号制御部１５からの受信割込信号の通知を受けると、ステップＳ３１において、受信割込信号を受信する。次いで、ステップＳ３２において、受信割込処理を実行する。さらに、ステップＳ３３において、受信タスク処理のうちのプロトコルスタック処理を実行し、次いでステップＳ３４において受信タスク処理のうちのアプリケーション処理を実行する。さらに、ステップＳ３５において、マスク解除信号を信号制御部１５に向けて出力する（図２の点線で示すイベント通知）。
【００２６】
ここで、信号制御部１５は、最初の時点では、マスク解除モードに設定されている。このため、受信部１１からの受信割込信号は、信号制御部１５を経由してＣＰＵ１３に通知される。ＣＰＵ１３では受信割込信号の通知を受けて受信割込処理と受信タスク処理とを実行する。上述したように、ステップＳ２５において、マスク解除モードからマスクモードに移行されているため、ＣＰＵ１３が受信タスク処理を実行している途中で、次のパケットを受信した場合であっても、ＣＰＵ１３には、この受信タスク処理が実行された後に受信割込信号が通知される。従って、ＣＰＵ１３では受信タスク処理が中断されることなく、受信タスク処理に必要な時間を適切に確保することができる。
【００２７】
また、ＣＰＵ１３による受信割込処理は、複数のパケットに対してまとめて行なわれる。受信割込処理では、受信バッファ１２に転送されたパケットを取り出す処理が行なわれるが、パケットを取り出した後に受信バッファ１２にまだパケットが残っていれば、連続してパケットを取り出す処理が行なわれる。このようにすることにより、割込みによる遅延時間のオーバーヘッドを減少することができる。ここで、連続してパケットを取り出す処理を行なうにあたり、パケットの最大数があらかじめ設定される。パケットの数が、この最大数に達するか、受信バッファ１２にパケットがなくなったら受信割込処理を終了し、受信タスク処理に移行する。受信タスク処理においては、受信割込処理が完了した数のパケットの処理が行なわれる。
【００２８】
ここで、マスクモードの期間中においてＣＰＵ１３が受信タスク処理を行なっている途中で、新たな受信パケットが到着すると、受信部１１はパケットを受信バッファ１２に転送して受信割込信号を信号制御部１５に向けて出力する。信号制御部１５は、この受信割込信号をマスクする（ＣＰＵ１３に通知しない）とともに、この受信割込信号の情報（新たに受信パケットがあったという情報）を保持しておく。やがてＣＰＵ１３による受信タスク処理が完了すると、ＣＰＵ１３は信号制御部１５にマスク解除信号を出力する。尚、受信割込処理、受信タスク処理以外に実行したい処理がある場合は、ＣＰＵ１３から受信割込処理後の特定の処理中において信号制御部１５にマスク解除信号が出力される。
【００２９】
信号制御部１５では、ＣＰＵ１３からのマスク解除信号を受けると、ステップＳ２６において、マスクモードの期間中に受信部１１から受信割込信号があったか否かが判定される。マスクモードの期間中に受信割込信号があったと判定された場合は、新たな受信パケットが受信バッファ１２に存在するため、前述したステップＳ２４に戻り、受信割込信号をＣＰＵ１３に通知するとともに、マスクモード期間中の受信割込信号情報をクリアし、次いでステップＳ２５においてマスクモードを継続する。ＣＰＵ１３は、受信バッファ１２内の新たなパケットに対する受信割込処理および受信タスク処理を行なう。
【００３０】
一方、ステップＳ２６において、マスクモードの期間中に受信部１１から受信割込信号がなかったと判定された場合は、新たな受信パケットは存在しないため、ステップＳ２７に進む。ステップＳ２７では、マスク解除モードに移行して新たな受信パケットに備え、この動作フローを終了する。
【００３１】
本実施形態のネットワーク機器装置１０は、上述した動作フローにより、受信するパケット数が多い場合であっても、ＣＰＵ１３が受信タスク処理を行っている期間は、ＣＰＵ１３への受信割込信号を一旦マスク（無効）することにより、受信タスク処理に必要な時間を適切に確保することができる。このため、大量のパケットを受信した場合でも受信割込信号により受信タスク処理が中断されることが防止され、装置の能力に応じた受信性能を発揮することができる。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施形態のネットワーク機器装置の構成を示すブロック図である。
【図２】図１に示すネットワーク機器装置における動作フローを示す図である。
【図３】従来のネットワーク機器装置における受信処理のフローを示す図である。
【符号の説明】
【００３３】
１０  ネットワーク機器装置
１１  受信部
１２  受信バッファ
１３  ＣＰＵ
１４  メモリ
１５  信号制御部
【図１】
2010050699.tif 000003
【図２】
2010050699.tif 000004
【図３】
2010050699.tif 000005