(57)【特許請求の範囲】
【請求項１】
ＣＰＵを有しデータ処理を実行する演算処理部と、伝送パケットの受信処理を行う受信処理部とを備え、前記受信処理部は、前記演算処理部に対して受信データを渡すか否かを判定するための閾値となるパケット長を保存し、データ受信時に受信データのパケット長と前記閾値とを比較して前記閾値以下のパケット長の受信データのみをイベント通知によって前記演算処理部へ渡し、前記演算処理部は、ＣＰＵ使用率に応じて、前記閾値を設定または変更するコンピュータ装置において、
前記コンピュータ装置は複数回線の伝送データを処理するコンピュータ装置であって、回線の優先度に基づいて、優先度が高くなるに伴って順に小さいパケット長を割付け、ＣＰＵ使用率が高くなるに従って、優先度の低い回線から順にその回線のパケット長を前記閾値として設定することを特徴とするコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信側のＣＰＵ負荷が高くなったときに特定のパケットを優先的に受信処理することのできるコンピュータ装置およびパケット受信制御方法に関する。
【背景技術】
【０００２】
従来のコンピュータ装置９９のＩＰパケットの受信処理手順について図１０を用いて説明する。この図において、コンピュータ装置９９は、通信回線を通して伝送されてきた自装置宛てのデータパケットＤ１〜Ｄ４をイーサネット（登録商標）コントローラ（以下、伝送コントローラという。）１０で受信する（ステップＳ１）。この受信データはＣＰＵから制御できる受信データバッファ１４に順次コピーされる（ステップＳ２）。
【０００３】
また、伝送コントローラ１０は、受信のたびにハードウェアによる割込み信号を発生させて割込みドライバ１１を起動し、受信したパケットを受信データバッファ１４に転送したことをＣＰＵへ伝える（ステップＳ３）。割込み信号によって起動された割込みドライバ１１は、オペレーティングシステム（以下、ＯＳという。）１２に受信イベント通知１を発生させる（ステップＳ４）。以降は、イーサネット（登録商標）データ受信ドライバ（以下、受信ドライバという。）１３、ＩＰスタック１５、アプリケーション１６に対して順次受信イベント通知が行われ（ステップＳ５〜ステップＳ７）、アプリケーション１６によって受信データバッファ１４からデータが読み出される（ステップＳ８）。
【０００４】
以上の処理において、ステップＳ１〜ステップＳ３まではハードウェアで行われ、ＣＰＵの処理能力に関係なく実行される。このため、ＣＰＵの処理能力限界に近い場合、ステップＳ４以降の途中でステップＳ１〜ステップＳ３までの処理が行われることになる。
このとき、ステップＳ４以降の処理が完了しないうちに、ステップＳ１〜ステップＳ３の処理を繰り返し行われると、受信したパケットのデータが受信データバッファ１４に蓄積されていく。ステップＳ４以降の処理で受信データバッファ１４からデータを取り出す処理が遅れると、受信データバッファ１４がオーバフローし、伝送コントローラ１０が受信データバッファ１４にコピーできなかったデータは廃棄されることになる。
【０００５】
このように、輻輳時などＣＰＵの負荷が高い状態にあるときに、重要なデータが廃棄される可能性がある。たとえば、ＶｏＩＰの音声パケットとそれ以外のパケットが混在するとき、音声パケットが廃棄されると音声品質が悪くなるという問題が生じる。
受信装置において特定のパケットを優先的に処理する技術として、特許文献１には、パケット簡易検査手段によって、特定ポート番号を持つパケットを監視して該当するパケットのＩＰアドレスを抽出し、次に、パケット詳細検査手段によって、抽出されたＩＰアドレスを持つパケットを監視し、該当するパケットを、ＴＣＰ／ＵＤＰレベルにおいて解析して、データ通信時のポート番号の情報を取得し、このポート番号を持つパケットの優先度を高優先度に設定することによって、データ通信時のポート番号が不定でも、ＱｏＳ保証するパケット伝送装置が記載されている。
【０００６】
また、特許文献２では、パケット受信部とパケット処理部との間にパケット入力制限処理部を設け、パケット処理部の輻輳判定時には、パケット入力制限処理部を動作させて、パケットタイプをイーサネット（登録商標）ヘッダ、ＩＰヘッダ、およびＴＣＰ／ＵＤＰヘッダで判定し、指定されたタイプのパケットを優先的にパケット処理部に通過させることによって、輻輳の発生時にパケット受信部からパケット処理部に引き継ぐパケットを特定のパケットに絞り込むことにより、優先されるべき特定のパケットの通過を確保して輻輳を早期に解消することのできるパケット処理装置が提案されている。
【特許文献１】特開２００３−８７３００号公報
【特許文献２】特開２００６−２３８０３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記の各特許文献の技術は、特定のポートや各種ヘッダのパケットタイプを監視することによるＣＰＵの処理負荷が大きく、この負荷の軽減が望まれている。
また、特許文献２では、パケットの優先受信処理を行う機能のみしか利用されないキューの上限値で輻輳判定を行っているため、コンピュータ装置が他の機能と平行して処理を行っているような場合、他の機能に影響を与える虞がある。
【０００８】
本発明は、上述のかかる事情に鑑みてなされたものであり、ＣＰＵ使用率に応じて受信ドライバから上位レベルへのイベント通知を制御することによって、ＣＰＵに負担をかけずに音声データなど特定のデータの優先受信処理を実行することのできるコンピュータ装置およびパケット受信制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明はＣＰＵの機能ブロックにＣＰＵの使用率（負荷）を測定し、そのＣＰＵ使用率を受信ドライバから参照させるためのインタフェースを持たせ、受信ドライバは定期的にＣＰＵの使用率を読み込んで、指定したＣＰＵ負荷の上限以上になったときに、パケット長が設定された閾値以下であるショートパケットのみを受信し、閾値より大きいロングパケットを廃棄するという処理を実行させるようにした。
【００１０】
これにより、ＣＰＵ負荷が高くなったときでもショートパケット以外のパケットを廃棄し、ショートパケットの伝送品質を担保する。特に音声データとそれ以外のデータの混在する通信システムにおいては、音声データをショートパケットで送信し、それ以外のデータをロングパケットで送信することによって、ＣＰＵ負荷が高くなったときでも音声データの品質を確保することができる。
【００１１】
具体的には、本発明に係わるコンピュータ装置は、ＣＰＵを有しデータ処理を実行する演算処理部と、伝送パケットの受信処理を行う受信処理部とを有し、受信処理部で受信したデータをイベント通知によって演算処理部へ渡すコンピュータ装置であって、受信処理部は、演算処理部に対して受信データを渡すか否かを判定するための閾値となるパケット長を保存し、データ受信時に受信データのパケット長と閾値とを比較して閾値以下のパケット長の受信データのみを演算処理部に渡すことを特徴とする。演算処理部には、ＣＰＵの使用率を測定するＣＰＵ使用率測定手段を設け、当該使用率に応じて、閾値の設定や変更を行う。
【００１２】
本発明では、伝送コントローラのステータスレジスタを読むことで取得することのできるパケット長によって受信データをフィルタリングし、イベント通知を減らして演算処理部の負荷を軽減する。なお、ＣＰＵ使用率は、ＣＰＵのアイドル時間に基づいて決めても良いし、特定のタスクの起動周期等によって判定をしても良い。「コンピュータ装置」は、いわゆる汎用のコンピュータのほか、通信データを中継するルータなどの専用の装置も含む。
【００１３】
また、本発明に係わるコンピュータ装置の演算処理部は、ＣＰＵ使用率が予め備える基準値を超えたときに、輻輳状態にあることを前記受信処理部へ通知し、前記受信処理部は、受信したデータをもとに受信データのパケット長リストを作成し、当該通知を受けたときに、該パケット長リストを参照して現在の閾値として設定されているパケット長よりも小さいパケット長を新たな閾値として設定することを特徴とする。
【００１４】
本発明では、受信データからそのパケット長の履歴を保存しておいて、ＣＰＵの負荷が高くなったときに、順次小さいパケット長に閾値を更新していく。
なお、複数回線の伝送データを処理するコンピュータ装置においては、回線の優先度に基づいて、優先度が高くなるに伴って順に小さいパケット長を回線ごとに割付け、ＣＰＵ使用率が高くなるに従って、優先度の低い回線から順にその回線のパケット長を前記閾値として設定すると良い。
【００１５】
また、本発明に係わるコンピュータ装置では、演算処理部は、ＣＰＵ使用率の測定処理における上限となる第１の基準値と下限となる第２の基準値とを有し、ＣＰＵ使用率が第１の基準値以上になったときに、パケット長リストに基づいて、現在の閾値となっているパケット長よりも小さいパケット長を新たな閾値として設定し、ＣＰＵ使用率が第２の基準値以下になったときにパケット長リストに基づいて、現在の閾値となっているパケット長よりも大きいパケット長を新たな閾値として設定し、受信処理部は、受信処理を実行する伝送コントローラを有し、該伝送コントローラは演算処理部により設定された閾値に基づいて、設定されている閾値よりも大きいパケット長のデータを受信したときは該データの廃棄処理を実行し、閾値以下のパケット長のデータを受信したときは該データを演算処理部から読み込み可能な受信データバッファへ転送すると共に割込み信号を発生させて受信を通知することを特徴とする。
【００１６】
本発明では、伝送コントローラ（ハードウェア）と演算処理部のソフトウェアとで機能分担をし、ソフトウェアから伝送コントローラに閾値を設定するようにして、伝送コントローラでは、この閾値と受信データのパケット長とを比較して廃棄処理や割込み信号の制御を実行する。ここで、廃棄とは、全部廃棄のほか、何回かに１回定期的に廃棄するといういわゆる間引き処理も含む。
【００１７】
なお、演算処理部において、ＣＰＵの実行するタスクの優先度に基づいて、高優先度のタスクに対しては小さいパケット長を割り付け、ＣＰＵの負荷が高くなるに従って、優先度の低いタスクから順にそのタスクのパケット長を閾値として設定することによって、高負荷時のタスクの優先制御も可能となる。
本発明に係わるパケット受信制御方法は、ＵＤＰパケットとＴＣＰパケットの混在する伝送データを受信処理するコンピュータ装置のパケット受信制御方法であって、ＵＤＰパケットにはＴＣＰパケットに比べて、相対的に小さいパケット長を割り付け、ＣＰＵ使用率が予め定められた基準値以上になったときは、受信ドライバの処理により、ＵＤＰパケットのパケット長を閾値として当該閾値よりも大きいパケット長のデータは廃棄し、該閾値以下のパケット長は受信処理することを特徴とする。
【００１８】
特にコンピュータ装置をＶｏＩＰルータとして機能させる場合、トラフィックの増加等によって輻輳状態に陥ったときでも、本発明により音声パケットの品質の低下を防止することができる。
【発明の効果】
【００１９】
本発明によれば、データの優先度に基づいて優先度の高いデータについては小さなパケット長を設定し、受信データのパケット長とＣＰＵ使用率に応じて定まる閾値とを比較して、閾値以下のパケットのみを受信して上位層へイベント通知を行うので、ＣＰＵ使用率が高くなったときでも優先度の高いデータを確実に処理しつつ、ＣＰＵの負荷を軽減することができる。また、音声データについては、音声以外のデータに比べてパケット長を小さく設定することによって、音声の途切れを生じさせることなく、輻輳状態を回避することができる。
【００２０】
さらに複数の音声回線を扱うルータ等のコンピュータ装置にあっては、重要な回線のパケット長を短く設定することによって、輻輳状態になったときでも重要な回線の音声品質を維持することができる。
【発明を実施するための最良の形態】
【００２１】
図１は、本発明の第１の実施の形態によるコンピュータ装置１の機能説明図である。図１０の従来構成との主な違いは、アプリケーションプログラムとして実現されるＣＰＵ使用率測定手段１７を設け、当該手段１７によって計算されたＣＰＵ使用率データを受信ドライバ１３から読み込み可能にしたことである。このコンピュータ装置１は、たとえば図２に示すように、スイッチングＨＵＢ５１を介して、複数のＶｏＩＰ電話機５２や汎用コンピュータ等で構成される端末装置５３と接続して用いられる。
【００２２】
次に、上記の構成におけるコンピュータ装置１の動作を説明する。
コンピュータ装置１のＣＰＵ使用率測定手段１７は周期的に起動し、ＣＰＵの使用率を計算する。ＣＰＵ使用率の計算方法としては、たとえばアイドル状態で動作するプログラムの一定時間内の動作時間を測定し、プログラムが動作する時間が短くなるほどＣＰＵ使用率が上がってくると判断することができる。
【００２３】
一方、端末装置５３やＶｏＩＰ電話機５２から送信されるデータは、コンピュータ装置１の伝送コントローラ１０で受信される。なお、ＶｏＩＰ電話機同士は、端末装置間で伝送されるパケット長（パケットサイズ）よりも小さいパケット長で通信されるように設定されている。
伝送コントローラ１０には、図１に示すように、伝送データが入力される。ここで、伝送データＤｓ１〜Ｄｓ３は、ＶｏＩＰ電話機５２からのショートパケット、伝送データＤＬは端末装置５３からのロングパケットを表している。
【００２４】
伝送コントローラ１０は、伝送データの受信ごとに、このデータを受信データバッファ１４へＤＭＡ転送し、割込み信号を発生する。割込みドライバ１１は、この割込み信号を受けるとＯＳ１２へ受信イベント通知を行い、さらにＯＳ１２は、受信ドライバ１３に受信イベント通知を行う。
以下、図３を用いて受信ドライバ１３の処理を説明する。
受信ドライバ１３は、ＯＳ１２からの受信イベント通知によって起動すると、ＣＰＵ使用率測定手段１７によって計算されたＣＰＵ使用率データ１８を読み込み（ステップＳ１１）、予め設定された基準値より大きいか否かを判定する（ステップＳ１２）。判定の結果、ＣＰＵ使用率データが基準値より大きい場合は（ステップＳ１２で「ＹＥＳ」）、次に、受信データのパケット長が予め設定された閾値より大きいか否かを判定し、大きい場合はその受信データを廃棄して、受信イベント通知は発生させない（ステップＳ１４）。この廃棄の仕方としては、直前の受信データのリンクチェーンを次のショートパケットへつなげるという処理によって実現できる。なお、閾値は、ＶｏＩＰ電話機５２から送信される音声パケットのパケット長を設定しても良いし、端末装置５３から送られてくるデータのパケット長と音声パケットのパケット長の中間の値を設定するようにしても良い。
【００２５】
ステップＳ１２で、ＣＰＵ使用率が基準値以下の場合、または、ステップＳ１３で受信データが閾値以下の場合は、ＩＰスタック１５に受信イベント通知を発生する（ステップＳ１３）。
これによりＣＰＵの負荷が高くなりＣＰＵ使用率が一定値以上になると、端末装置５３からのデータは廃棄され、ＶｏＩＰ電話機５２からの音声パケットが優先的に受信されるようになる。
（閾値の設定方法）
以下、パケット廃棄の判定条件となる閾値の設定方法について説明する。
まず図４に示すシステム構成を構築する。すなわち、コンピュータ装置１にスイッチングＨＵＢ５１を介してＶｏＩＰ電話機５２と接続し、定サイズパケット送信装置６０を両スイッチングＨＵＢ５１に接続して、定サイズパケット送信装置６０からロングパケットを送信しコンピュータ装置１で中継されたデータを受信する。なお、定サイズパケット送信装置としては、米国スパイレント・コミュニケーションズ社の提供するスマートビット（SmartBits，登録商標）などがある。
【００２６】
この構成において、コンピュータ装置１のＣＰＵ処理能力の上限になるように定サイズパケット送信装置６０からのパケットの送信量を調整する。たとえば、ＶｏＩＰルーティングの処理にＣＰＵ処理能力の２０％を割り当てる場合は、音声パケット以外のパケットに対しては８０％が上限になるように調整する。すなわち、ＣＰＵ使用率測定手段１７は、音声パケット以外のパケットによるタスクの占有割合をＣＰＵ使用率データとして保存するようにして、この値が８０％を超えると、受信ドライバ１３が廃棄処理を実行するように設定する。また、ＶｏＩＰ電話機５２のパケット長を測定して、このパケット長を閾値として保存する。なお、パケット長が予め決まっているような場合は、その値を閾値として直接設定する。以上の手順で調整を行い、また閾値を登録して運用を開始する。
【００２７】
受信データバッファに格納できないパケットデータは、これまでデータの種別（たとえば音声パケットか否か）によらずハードウェアで無作為に廃棄されていたが、本実施の形態によれば、ＣＰＵが受信ドライバ内で、パケット長をもとに廃棄／非廃棄の判定をするので、判定処理にＣＰＵ負荷をかけることなく、音声パケットの廃棄を起こしにくいコンピュータ装置を実現することができる。
【００２８】
以上は、音声パケットとそれ以外のパケットの混在する通信システムにおいて、音声パケットを相対的に小さいパケット長として、ＣＰＵが高負荷になったときに、パケット長に基づいて音声パケットを優先して受信処理する方式であるが、データの用途やプロトコルの違いによってパケット長を割り付けて受信制御を行うようにしても良い。なお、ロングパケットの設定がされていても条件によっては短いパケット長でデータが送出される場合もあり得るが、このよう場合でもロングパケットを制限することによって総合的にＣＰＵ負荷を軽減することができる。
【００２９】
次に本発明の第２の実施の形態を説明する。第１の実施の形態は、受信ドライバから上位のプログラムへのイベント通知を減らすことによってＣＰＵ負荷の削減を行ったが、本実施の形態は、伝送コントローラの機能として閾値となるパケット長を読み込んで、その閾値以下のパケットのみを受信してソフトウェアへ渡し、閾値を超えるパケットは廃棄して割込み信号を発生させないようにしたものである。
【００３０】
本実施の形態によるコンピュータ装置の伝送コントローラ２０は、図５に示すようにＤＭＡ機能やＰＣＩバスなどＣＰＵとのインタフェース機能を実行するバスインタフェース２８、送信処理を行う送信回路群２２、受信処理を行う受信回路群２１、受信したＭＡＣ制御フレームの認識やＭＡＣ制御フレームの送信などの制御手順を実行するフロー制御手段２３、物理媒体からのステーション管理データ信号を処理するステーション管理手段２４、ＭＡＣのステータスの表示やバスインタフェース２８を通して設定された動作条件を保存するコントロール・ステータスレジスタ群２５、受信の可否判定のためのパケット長を保存する閾値保存手段２６、受信したデータのパケット長をチェックして廃棄するか否かを判定するパケット長チェック／廃棄処理手段２７、および、物理媒体とのインタフェースである媒体インタフェース２９で構成されている。
【００３１】
ここで、送信回路群２２は、送信用ＦＩＦＯ、プリアンブル・ジャム発生器、ＣＲＣ発生器、パリティチェッカ、バックオフ制御回路などから構成され、受信回路群２１は、受信用ＦＩＦＯ、アドレス識別用ＡＲＣブロック、ＣＲＣ発生器・検査器、パリティ発生器などから構成され、ループバック処理、キャリア検出多重アクセス・衝突検出などを行う。本実施の形態による伝送コントローラ２０の特徴とするところは、従来の伝送コントローラの機能に対し、バスインタフェース２８を通してコントロール・ステータスレジスタ群２５にアクセスして、閾値２６をソフトウェア設定可能にしたことと、パケット長チェック／廃棄処理手段２７を追加したことである。伝送コントローラ２０以外の構成は、図１と同様である。
【００３２】
次に、上記の構成を有するコンピュータ装置１の動作を説明する。
ＣＰＵ使用率測定手段１７は、ＣＰＵ使用率データを計算すると、その計算結果が予め定めた基準値以上か否かを判定し、基準値以上の場合は、コントロール・ステータスレジスタ群２５に廃棄処理の閾値となるパケット長を設定する。
ＣＰＵ負荷の状態チェックは、第１の実施の形態では、受信ドライバが行っていたが、伝送コントローラ２０内に廃棄処理機能を組み込んだ場合、ロングパケットについては割込みが発生しないため、ＣＰＵ使用率測定手段１７がコントロール・ステータスレジスタ群２５および閾値２６の設定を行う。
【００３３】
パケット長チェック／廃棄処理手段２７は、閾値２６がセットされると、この値と受信データのパケット長とを比較して、受信データのパケット長の方が大きければ、ＦＩＦＯのデータを廃棄し、コントール・ステータスレジスタ群２５にパケットを廃棄したことを伝えると共に上位のバスインタフェース２８に割込みが発生しないようにする。一方、受信データのパケット長が閾値以下の場合は、その受信データをバスインタフェース２８へ渡すと共に割込み信号を発生する。バスインタフェース２８に渡された受信データは、受信データバッファ１４へＤＭＡ転送される。割込み信号は、割込みドライバ１１によって処理され、以降ＯＳ１２、受信ドライバ１３、ＩＰスタック１６、アプリケーション１６に対して順次受信イベント通知がなされ、アプリケーション１６によって受信データバッファ１４から受信データが読み出される。
【００３４】
本実施の形態によれば、伝送コントローラに受信の閾値となるパケット長をＣＰＵから書き込み可能にし、このパケット長よりも大きいパケットの割込みを発生させずに廃棄する一方、このパケット長以下のパケットのみを受信してＣＰＵに対して割込み信号を発生させるので、第１の実施の形態に比べて、より下位のレベルでイベント発生を制限できＣＰＵ負荷の軽減効果が大きい。
【００３５】
次に本発明の第３の実施の形態を説明する。本実施の形態は第２の実施の形態の伝送コントローラ２０のパケット廃棄処理を廃棄実行フラグにセットすることによってイネーブルにし、また、ＣＰＵ使用率測定手段１７で、ＣＰＵ使用率にしたがって廃棄実行フラグのセット／リセットを行わせるようにしたものである。
以下、図６を用いて本実施の形態によるコンピュータ装置１の動作を説明する。本実施の形態では、受信ドライバ１３は、受信パケットごとにパケット長を記憶し、パケット長リストを作成する。図７はパケット長リストの例である。受信データのパケット長を大きさ順に並べた一覧に対して、現在閾値となっているパケット長の位置が識別可能になっている。
【００３６】
そして、ＣＰＵ使用率測定手段１７は、定周期で起動され、ＣＰＵ使用率を計算し（ステップＳ２１）、その値が予め定めた第１の基準値（上限）よりも大きいか、小さいかを判定する（ステップＳ２２）。その結果、第１の基準値よりも大きい場合は、次に廃棄実行フラグがＯＮしているか否かをチェックし（ステップＳ２３）、ＯＮしていなければ、廃棄実行フラグをＯＮにする（ステップＳ２４）。その後、パケット長リストから現在受信しているデータのパケット長のうち、２番目に大きいパケット長を抽出して（ステップＳ２５）、そのパケット長を伝送コントローラ２０のパケット廃棄判定の閾値として設定する（ステップＳ２６）。
【００３７】
一方、ステップＳ２２で、ＣＰＵ使用率が基準値以下の場合は、次にＣＰＵ使用率が第２の基準値（下限）より小さいか否かを判定し（ステップＳ２７）、小さい場合は、次に廃棄実行フラグがＯＮか否かを判定する（ステップＳ２８）。そして、ステップＳ２８の判定の結果、廃棄実行フラグがＯＮの場合は、パケット長リストに記憶されている最大パケット長が閾値設定されているか否かをチェックし（ステップＳ２９）、設定されている場合は、廃棄実行フラグをＯＦＦにして終了する（ステップＳ３１）。一方、ステップＳ２９で最大パケット長が閾値として設定されていない場合は、パケット長リストから、過去に受信したパケットのうち、現在閾値の次に大きいパケット長を抽出して（ステップＳ３０）、その抽出したパケット長を新たな閾値として設定する（Ｓ２６）。ステップＳ２７、ステップＳ２８で「ＮＯ」の場合は、そのまま終了する。
【００３８】
伝送コントローラ２０は、廃棄実行フラグがセットされることによってパケット長チェック／廃棄処理手段２７をイネーブル状態にして、ＣＰＵ使用率測定手段１７によって設定された閾値をもとに廃棄処理を実行する。
以下、図８を用いてパケット長チェック／廃棄処理手段２７の処理手順を詳述する。パケット長チェック／廃棄処理手段２７は、データ受信によって起動され、まず、廃棄実行フラグがＯＮか否かを判定し（ステップＳ４１）、ＯＮの場合は、閾値を入力する（ステップＳ４２）。そして、受信データのパケット長が閾値より大きいか否かを判定して（ステップＳ４３）、大きい場合は、その受信データを廃棄する（ステップＳ４４）。一方、ステップＳ４１の処理で廃棄実行フラグがＯＦＦであり、またはステップＳ４３の処理で受信データのパケット長が閾値以下の場合は、その受信データをバスインタフェース２８へ渡すと共に割込み信号を発生させる（ステップＳ４５）。
【００３９】
バスインタフェース２８に受信データが渡された後の処理は、第２の実施の形態と同様である。
なお、パケット長リストに替えて、図９に示すように過去の受信パケット長と共に現在の受信データのパケット長ごとに受信割合を計算した受信履歴テーブルで管理することによって、ＣＰＵ負荷の軽減に効果的なパケット長を迅速に選択することができる。たとえば、ＣＰＵ使用率が基準値を１５％超過したような場合、現在閾値からパケット長の受信割合が合計１５％以上になるところのパケット長を抽出して新たな閾値として設定したり、ＣＰＵ使用率をもとに一定の重み付けをして抽出したパケット長を新閾値を設定するようにしても良い。
【００４０】
本実施の形態によれば、受信パケットのパケット長のリストをとって、ＣＰＵ負荷によって、自動的に閾値を変更して廃棄処理を実行するので、予め受信データのパケット長を調べておく必要が無い。また、たとえば上限基準値を８０％、下限基準値を６０％に設定するなど、両基準値をＣＰＵの負荷変動（ジッタ）を考慮して定めておくことによって、僅かなＣＰＵ負荷の変動によって廃棄実行のＯＮ／ＯＦＦを繰り返すことを防止することができる。
【００４１】
なお、上記実施形態の構成を用いて回線ごとの伝送データの品質を定めたサービスとして提供することができる。すなわち、品質「高」の場合はパケット長「小」、品質「低」の場合はパケット長「大」、としてＶｏＩＰ電話機あるいは端末装置に割り付けることによって、パケット長のみによって輻輳時に高品質として契約された回線のデータを優先して伝送することが可能となる。
【００４２】
または、ＵＤＰの場合はショートパケット、ＴＣＰの場合はロングパケットとして、輻輳時はロングパケットを廃棄してイベント通知の発生を抑制するようにしても良い。ＴＣＰのリカバリ処理を長周期にしておけば、瞬時的な輻輳状態のときは、音声パケットを優先して、確実に中継処理すると共に、ＴＣＰのリカバリ処理によって端末装置のデータも確実に伝送することができる。
【産業上の利用可能性】
【００４３】
本発明は、たとえば、ＶｏＩＰ通信機能を有する端末、ルータ、スイッチングＨＵＢなどに適用することができる。
また、制御装置、特にリアルタイム性を要求され、複数のデータを扱う制御装置に適用すると有効である。
【図面の簡単な説明】
【００４４】
【図１】本発明の第１の実施の形態によるコンピュータ装置の機能説明図である。
【図２】図１の利用形態の説明図である。
【図３】図１の受信ドライバの処理手順を示すフローチャートである。
【図４】本発明の第１の実施の形態による閾値の設定方法である。
【図５】本発明の第２の実施の形態によるコンピュータ装置の伝送コントローラの機能ブロック図である。
【図６】本発明の第３の実施の形態によるコンピュータ装置のＣＰＵ使用率測定手段１７の処理手順を示すフローチャートである。
【図７】本発明の第３の実施の形態によるパケット長リストのデータ構成の説明図である。
【図８】本発明の第３の実施の形態によるパケット長チェック／廃棄処理手段２７の処理手順を示すフローチャートである。
【図９】本発明の第３の実施の形態による受信履歴テーブルのデータ構成の説明図である。
【図１０】従来技術によるコンピュータ装置の機能説明図である。
【符号の説明】
【００４５】
１，９９  コンピュータ装置
２  演算処理部
３  受信処理部
１０，２０  伝送コントローラ
１１  割込みドライバ
１２  ＯＳ（オペレーティングシステム）
１３  受信ドライバ
１４  受信データバッファ
１５  ＩＰスタック
１６  アプリケーション
１７  ＣＰＵ使用率測定手段
１８  ＣＰＵ使用率データ
２１  受信回路群
２２  送信回路群
２３  フロー制御手段
２４  ステーション管理手段
２５  コントロール・ステータスレジスタ群
２６  閾値
２７  パケット長チェック／廃棄処理手段
２８  バスインタフェース
２９  媒体インタフェース
５１  スイッチングＨＵＢ
５２  ＶｏＩＰ電話機
５３  端末装置
６０  定サイズパケット送信装置
【図１】
0004849270.tif 000002
【図２】
0004849270.tif 000003
【図３】
0004849270.tif 000004
【図４】
0004849270.tif 000005
【図５】
0004849270.tif 000006
【図６】
0004849270.tif 000007
【図７】
0004849270.tif 000008
【図８】
0004849270.tif 000009
【図９】
0004849270.tif 000010
【図１０】
0004849270.tif 000011