説明

ネットワーク機器装置

【課題】高速ネットワーク環境において十分な受信処理能力を持たない場合でも、受信処理能力に応じた受信性能を発揮できるネットワーク機器装置を提供する。
【解決手段】パケットが格納される受信バッファ12と、受信バッファ12からパケットの転送を受けてパケットを格納するメモリ14と、受信バッファ12からメモリ14へパケットを転送する受信割込処理およびメモリ14に格納されたパケットに基づく受信タスク処理の双方を実行するCPU13と、パケットを受信して受信バッファ12に転送して受信割込信号を出力する受信部11と、受信割込信号をマスクするマスクモードとマスク解除モードを有する信号制御部15を備え、信号制御部15がCPU13からマスク解除信号を受けたときに、受信割込信号を保持していれば受信割込信号をCPU13に伝えるとともにマスクモードを維持し、受信割込信号を保持していないときはマスク解除モードに移行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを経由して送信されてきたパケットを受信して処理するネットワーク機器装置に関する。
【背景技術】
【0002】
従来より、ネットワークを経由して送信されてきたパケットを受信する受信部と、その受信部で受信したパケットを格納する受信バッファと、その受信バッファに格納されたパケットに基づいた処理を実行するCPUとを備えたネットワーク機器装置が知られている。
【0003】
図3は、従来のネットワーク機器装置における受信処理のフローを示す図である。
【0004】
ネットワーク機器装置には、ネットワークを経由してパケットが送信されてくる。すると、ネットワーク機器装置を構成する受信部では、以下のステップS1〜S3が実行される。先ず、ステップS1において、パケットを受信する。次いで、ステップS2において、受信したパケットを受信バッファに転送する。さらに、ステップS3において、受信バッファへのパケットの転送が完了したことを示す受信割込信号を発生し、発生した受信割込信号をCPUへ通知(図3の点線で示すイベント通知)する。
【0005】
CPUでは、以下のステップS4〜S7が実行される。先ず、ステップS4において、受信部からの受信割込信号を受信する。次いで、ステップS5において、受信割込処理を行なう。この受信割込処理では、受信バッファに転送されたパケットを取り出す処理が行なわれる。さらに、取り出されたパケットに対して、ステップS6,S7において受信タスク処理を行なう。即ち、ステップS6においてプロトコルスタック処理を行ない、次いでステップS7においてアプリケーション処理を行なう。その後、この受信処理フローを終了する。
【0006】
近年、ネットワークの通信速度の高速化に伴って、そのネットワークに接続されるネットワーク機器装置の受信処理能力が十分でなくなり、このため受信性能が低下するという問題が発生している。例えば、装置の処理能力に対して受信パケットの頻度が高い場合、CPUが受信タスク処理を実行中に受信割込信号を受けてしまうことがある。一般的に、受信タスク処理中に割込信号を受けると、CPUは受信タスク処理を中断して受信割込処理を実行してしまう。このようなことが継続して発生すると処理を中断されたままのパケットが多くなるため、受信性能が低下するという問題が発生する。これは受信処理能力が十分でないネットワーク機器装置で発生しうる現象である。
【0007】
このような問題に対し、十分な受信処理能力を備えていないネットワーク機器装置において、あらかじめ設定した周期より短い周期では受信割込信号を発生させない受信割込遅延機構を備えることで、受信タスク処理および通信以外の処理を行う時間を確保する技術が提案されている(特許文献1参照)。
【特許文献1】特開2007―74320号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかし、特許文献1に提案された、あらかじめ設定した周期より短い周期では受信割込信号を発生させない技術では、イーサネットのような受信パケットの到着タイミングやサイズ等をあらかじめ予見したり保障したりすることのできないネットワークにおいては、無駄な時間が発生してしまい効率的でない。従って、ネットワーク機器装置の能力に応じた性能を発揮する適切な受信処理を行なうことは困難である。
【0009】
本発明は、上記事情に鑑み、高速ネットワーク環境において十分な受信処理能力を持たない場合であっても、その受信処理能力に応じた受信性能を発揮することができるネットワーク機器装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成する本発明のネットワーク機器装置は、
パケットが格納される受信バッファと、
上記受信バッファからパケットの転送を受けてそのパケットを格納するメモリと、
上記受信バッファから上記メモリへパケットを転送する受信割込処理と、そのメモリに格納されたパケットに基づく処理である受信タスク処理とを実行するCPUと、
ネットワークを経由して送信されてきたパケットを受信しそのパケットを上記受信バッファに転送して転送完了を示す受信割込信号を出力する受信部と、
マスクモードとマスク解除モードとを有し、上記受信部から上記受信割込信号を受け取り、そのマスク解除モードにあるときにその受信割込信号を受け取ったときはその受信割込信号を上記CPUに伝えてそのマスクモードに移行する信号制御部とを備え、
上記CPUは、上記受信タスク処理終了後に上記信号制御部に向けてマスク解除信号を出力するものであり、
上記信号制御部は、上記CPUからそのマスク解除信号を受けて、その信号制御部が上記マスクモードにあるときに上記受信部から受信割込信号を受けて保持していたときは、その受信割込信号を上記CPUに伝えるとともにそのマスクモードを維持し、その受信割込信号を保持していないときは上記マスク解除モードに移行するものであることを特徴とする。
【0011】
本発明のネットワーク機器装置は、信号制御部がCPUからマスク解除信号を受けて、マスクモードにあるときに受信部から受信割込信号を受けて保持していたときは、その受信割込信号をCPUに伝えるとともにそのマスクモードを維持し、受信割込信号を保持していないときはマスク解除モードに移行する構成である。このため、CPUが受信タスク処理を実行している途中で、次のパケットを受信した場合であっても、CPUには、この受信タスク処理が実行された後に受信割込信号が伝えられる。従って、CPUでは受信タスク処理が中断されることなく、受信タスク処理に必要な時間を適切に確保することができる。このため、大量のパケットを受信した場合でも受信割込信号により受信タスク処理が中断されることが防止され、高速ネットワーク環境において、十分な受信処理能力を持たない場合であっても、その受信処理能力に応じた受信性能を発揮することができる。
【発明の効果】
【0012】
本発明によれば、高速ネットワーク環境において十分な受信処理能力を持たない場合であっても、その受信処理能力に応じた受信性能を発揮することができるネットワーク機器装置を提供することができる。
【発明を実施するための最良の形態】
【0013】
以下、図面を参照して本発明の実施の形態を説明する。
【0014】
図1は、本発明の一実施形態のネットワーク機器装置の構成を示すブロック図である。
【0015】
図1に示すネットワーク機器装置10には、受信部11と、受信バッファ12と、CPU13と、メモリ14と、信号制御部15とが備えられている。
【0016】
受信部11は、ネットワークを経由して送信されてきたパケットを受信する。また、この受信部11は、受信したパケットを受信バッファ12に転送する。さらに、この受信部11は、受信したパケットの転送完了を示す受信割込信号を、信号制御部15に出力する。また、この受信部11は、受信バッファ12が満杯のときは、ネットワークを経由して送信されてきたパケットを廃棄する。
【0017】
受信バッファ12は、複数のパケットを格納する容量を有し、受信部11から転送されてきた複数のパケットを格納する。
【0018】
CPU13は、受信バッファ12からメモリ14へパケットを転送する受信割込処理と、メモリ14に格納されたパケットに基づくプロトコル処理およびアプリケーション処理である受信タスク処理とを実行する。また、このCPU13は、受信タスク処理終了後に、信号制御部15に向けてマスク解除信号を出力する。
【0019】
メモリ14は、CPU13による、受信バッファ12からのパケットの転送を受けてそのパケットを格納する。
【0020】
信号制御部15は、マスクモードとマスク解除モードとを有し、受信部11から受信割込信号を受け取り、マスク解除モードにあるときに受信割込信号を受け取ったときは受信割込信号をCPU13に伝えてマスクモードに移行する。また、信号制御部15は、CPU13からマスク解除信号を受けて、この信号制御部15がマスクモードにあるときに受信部11から受信割込信号を受けて保持していたときは、その受信割込信号をCPU13に伝えるとともにそのマスクモードを維持する。一方、受信割込信号を保持していないときはマスク解除モードに移行する。ここで、受信バッファ12は、メモリ14の内部に配置することも可能である。この場合、受信バッファ12からメモリ14へのパケットの転送は、パケットのメモリアドレスの書き換えのみで済む。
【0021】
図2は、図1に示すネットワーク機器装置における動作フローを示す図である。
【0022】
図1に示すネットワーク機器装置10に、ネットワークを経由してパケットが送信されてくると、受信部11では、以下のステップS11〜S13が実行される。先ず、ステップS11において、パケットを受信する。次いで、ステップS12において、受信したパケットを受信バッファ12に転送する。さらに、ステップS13において、受信バッファ12へのパケットの転送が完了したことを示す受信割込信号を発生し、この受信割込信号を信号制御部15に通知(図2の点線で示すイベント通知)する。
【0023】
信号制御部15では、受信部11からの受信割込信号の通知を受けると、ステップS21において、受信割込信号をマスクするマスクモードか否かが判定される。マスクモードであると判定された場合は、ステップS22において、CPU13への受信割込信号の通知は行わず(非通知)、ステップS23に進む。ステップS23では、その受信割込信号の情報を保持する。
【0024】
一方、ステップS21において、マスクモードではない(マスク解除モードである)と判定された場合は、ステップS24に進む。ステップS24では、CPU13に受信割込信号を通知(図2の点線で示すイベント通知)してステップS25に進む。ステップS25では、マスク解除モードからマスクモードに移行する。
【0025】
CPU13では、信号制御部15からの受信割込信号の通知を受けると、ステップS31において、受信割込信号を受信する。次いで、ステップS32において、受信割込処理を実行する。さらに、ステップS33において、受信タスク処理のうちのプロトコルスタック処理を実行し、次いでステップS34において受信タスク処理のうちのアプリケーション処理を実行する。さらに、ステップS35において、マスク解除信号を信号制御部15に向けて出力する(図2の点線で示すイベント通知)。
【0026】
ここで、信号制御部15は、最初の時点では、マスク解除モードに設定されている。このため、受信部11からの受信割込信号は、信号制御部15を経由してCPU13に通知される。CPU13では受信割込信号の通知を受けて受信割込処理と受信タスク処理とを実行する。上述したように、ステップS25において、マスク解除モードからマスクモードに移行されているため、CPU13が受信タスク処理を実行している途中で、次のパケットを受信した場合であっても、CPU13には、この受信タスク処理が実行された後に受信割込信号が通知される。従って、CPU13では受信タスク処理が中断されることなく、受信タスク処理に必要な時間を適切に確保することができる。
【0027】
また、CPU13による受信割込処理は、複数のパケットに対してまとめて行なわれる。受信割込処理では、受信バッファ12に転送されたパケットを取り出す処理が行なわれるが、パケットを取り出した後に受信バッファ12にまだパケットが残っていれば、連続してパケットを取り出す処理が行なわれる。このようにすることにより、割込みによる遅延時間のオーバーヘッドを減少することができる。ここで、連続してパケットを取り出す処理を行なうにあたり、パケットの最大数があらかじめ設定される。パケットの数が、この最大数に達するか、受信バッファ12にパケットがなくなったら受信割込処理を終了し、受信タスク処理に移行する。受信タスク処理においては、受信割込処理が完了した数のパケットの処理が行なわれる。
【0028】
ここで、マスクモードの期間中においてCPU13が受信タスク処理を行なっている途中で、新たな受信パケットが到着すると、受信部11はパケットを受信バッファ12に転送して受信割込信号を信号制御部15に向けて出力する。信号制御部15は、この受信割込信号をマスクする(CPU13に通知しない)とともに、この受信割込信号の情報(新たに受信パケットがあったという情報)を保持しておく。やがてCPU13による受信タスク処理が完了すると、CPU13は信号制御部15にマスク解除信号を出力する。尚、受信割込処理、受信タスク処理以外に実行したい処理がある場合は、CPU13から受信割込処理後の特定の処理中において信号制御部15にマスク解除信号が出力される。
【0029】
信号制御部15では、CPU13からのマスク解除信号を受けると、ステップS26において、マスクモードの期間中に受信部11から受信割込信号があったか否かが判定される。マスクモードの期間中に受信割込信号があったと判定された場合は、新たな受信パケットが受信バッファ12に存在するため、前述したステップS24に戻り、受信割込信号をCPU13に通知するとともに、マスクモード期間中の受信割込信号情報をクリアし、次いでステップS25においてマスクモードを継続する。CPU13は、受信バッファ12内の新たなパケットに対する受信割込処理および受信タスク処理を行なう。
【0030】
一方、ステップS26において、マスクモードの期間中に受信部11から受信割込信号がなかったと判定された場合は、新たな受信パケットは存在しないため、ステップS27に進む。ステップS27では、マスク解除モードに移行して新たな受信パケットに備え、この動作フローを終了する。
【0031】
本実施形態のネットワーク機器装置10は、上述した動作フローにより、受信するパケット数が多い場合であっても、CPU13が受信タスク処理を行っている期間は、CPU13への受信割込信号を一旦マスク(無効)することにより、受信タスク処理に必要な時間を適切に確保することができる。このため、大量のパケットを受信した場合でも受信割込信号により受信タスク処理が中断されることが防止され、装置の能力に応じた受信性能を発揮することができる。
【図面の簡単な説明】
【0032】
【図1】本発明の一実施形態のネットワーク機器装置の構成を示すブロック図である。
【図2】図1に示すネットワーク機器装置における動作フローを示す図である。
【図3】従来のネットワーク機器装置における受信処理のフローを示す図である。
【符号の説明】
【0033】
10 ネットワーク機器装置
11 受信部
12 受信バッファ
13 CPU
14 メモリ
15 信号制御部

【特許請求の範囲】
【請求項1】
パケットが格納される受信バッファと、
前記受信バッファからパケットの転送を受けて該パケットを格納するメモリと、
前記受信バッファから前記メモリへパケットを転送する受信割込処理と、該メモリに格納されたパケットに基づく処理である受信タスク処理とを実行するCPUと、
ネットワークを経由して送信されてきたパケットを受信し該パケットを前記受信バッファに転送して転送完了を示す受信割込信号を出力する受信部と、
マスクモードとマスク解除モードとを有し、前記受信部から前記受信割込信号を受け取り、該マスク解除モードにあるときに該受信割込信号を受け取ったときは該受信割込信号を前記CPUに伝えて該マスクモードに移行する信号制御部とを備え、
前記CPUは、前記受信タスク処理終了後に前記信号制御部に向けてマスク解除信号を出力するものであり、
前記信号制御部は、前記CPUから該マスク解除信号を受けて、該信号制御部が前記マスクモードにあるときに前記受信部から受信割込信号を受けて保持していたときは、該受信割込信号を前記CPUに伝えるとともに該マスクモードを維持し、該受信割込信号を保持していないときは前記マスク解除モードに移行するものであることを特徴とするネットワーク機器装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2010−50699(P2010−50699A)
【公開日】平成22年3月4日(2010.3.4)
【国際特許分類】
【出願番号】特願2008−212737(P2008−212737)
【出願日】平成20年8月21日(2008.8.21)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(501285133)川崎マイクロエレクトロニクス株式会社 (449)
【Fターム(参考)】