(57)【要約】  通信処理装置（１０１）は、パケットを受信するＭＡＣ部（１０６）と、受信されるパケットを分類する振り分け部（１０７）と、分類されたパケットのデータをメインメモリ（１０２）に転送する転送制御部（１０４）と、割り込み管理テーブル（１１２）を記憶している第１記憶部（１１２ｍ）と、割り込み管理テーブル（１１２）を参照することにより、振り分け部（１０７）で分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で割り込み信号をＣＰＵ（１０３）に出力する割り込み制御部（１１１）と、ＣＰＵ（１０３）で起動するアプリケーションプログラムからの指示に応じて、割り込み管理テーブル（１１２）に分類種別および割り込み制御方法を登録することにより、その割り込み管理テーブル（１１２）を更新する設定部（１１０）とを備える。
2009141992.tif 000002
【特許請求の範囲】
【請求項１】
パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置であって、
パケットを受信する受信部と、
前記受信部で受信されるパケットの種類に応じて、複数の分類種別のうちの何れか１つの分類種別に前記パケットを分類する振り分け部と、
前記受信部によって受信されて前記振り分け部によって分類されたパケットのデータを前記メモリに転送する転送制御部と、
分類種別と、割り込み信号を出力するタイミングに関する割り込み制御方法とを関連付けて示す割り込み管理テーブルを記憶している記憶部と、
前記割り込み管理テーブルを参照することにより、前記振り分け部によって分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で前記割り込み信号を前記処理ユニットに出力する割り込み制御部と、
前記処理ユニットで起動するアプリケーションプログラムからの指示に応じて、前記割り込み管理テーブルに分類種別および割り込み制御方法を登録することにより、当該割り込み管理テーブルを更新する設定部と
を備える通信処理装置。
【請求項２】
前記設定部は、
前記割り込み管理テーブルに示されていない分類種別のパケットが前記受信部によって受信される場合、前記アプリケーションプログラムからの指示に応じて、前記分類種別と、前記パケットに応じた割り込み制御方法とを関連付けて前記割り込み管理テーブルに追加することにより、当該割り込み管理テーブルを更新する
請求項１記載の通信処理装置。
【請求項３】
前記設定部は、
前記アプリケーションプログラムからの指示として、当該アプリケーションプログラムによって確立された通信路を特定するための通信路情報を取得し、前記通信路情報に応じた分類種別および割り込み制御方法を前記割り込み管理テーブルに登録する、
請求項１記載の通信処理装置。
【請求項４】
前記設定部は、
前記割り込み管理テーブルに、第１の分類種別および第１の割り込み制御方法を関連付けて登録するとともに、第２の分類種別および第２の割り込み制御方法を関連付けて登録し、
前記割り込み制御部は、
前記振り分け部によって分類されるパケットの分類種別が第１の分類種別である場合には、前記割り込み管理テーブルにおいて当該第１の分類種別に関連付けられた第１の割り込み制御方法で、割り込み信号を前記処理ユニットに出力し、
前記振り分け部によって分類されるパケットの分類種別が第２の分類種別である場合には、前記割り込み管理テーブルにおいて当該第２の分類種別に関連付けられた第２の割り込み制御方法で、割り込み信号を前記処理ユニットに出力する、
請求項１記載の通信処理装置。
【請求項５】
前記設定部は、
分類種別と当該分類種別に関連付けられた割り込み制御方法との組み合わせを１つまたは複数個だけ、前記割り込み管理テーブルに登録し、
前記割り込み制御部は、
前記割り込み管理テーブルに登録されている１つまたは複数個の組み合わせが、予め定められた組み合わせである場合には、前記割り込み管理テーブルにおいて、前記振り分け部によって分類されるパケットの分類種別に関連付けられている割り込み制御方法と異なる、予め定められた他の割り込み制御方法で割り込み信号を出力する、
請求項１記載の通信処理装置。
【請求項６】
前記割り込み制御部は、
前記割り込み管理テーブルに、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として１つだけ登録されている場合には、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法で割り込み信号を出力する、
請求項５記載の通信処理装置。
【請求項７】
前記設定部は、
パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過し、且つ直前の割り込み信号が出力されてから前記予め定められた時間経過したときに割り込み信号を出力する間隔制限付き遅延割り込み方法、および、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法の中から、１つまたは複数の方法を前記割り込み制御方法として前記割り込み管理テーブルに登録する、
請求項１記載の通信処理装置。
【請求項８】
前記転送制御部は、さらに、
前記振り分け部によって分類されたパケットに関するパケット関連情報を前記割り込み制御部に通知し、
前記割り込み制御部は、
前記転送制御部から前記パケット関連情報の通知を受けたときには、前記割り込み管理テーブルにおいて前記パケットの分類種別に関連付けられている割り込み制御方法と前記パケット関連情報とに応じた他の割り込み制御方法を特定し、前記他の割り込み制御方法で前記割り込み信号を出力する、
請求項１記載の通信処理装置。
【請求項９】
前記設定部は、
前記分類種別を、当該分類種別を識別するための分類識別子として前記割り込み管理テーブルに登録し、前記割り込み制御方法を、当該割り込み制御方法に一意に定義付けされたトラヒック種別として前記割り込み管理テーブルに登録する、
請求項１記載の通信処理装置。
【請求項１０】
パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理方法であって、
パケットを受信し、
受信されるパケットの種類に応じて、複数の分類種別のうちの何れか１つの分類種別に前記パケットを分類し、
受信されて分類されたパケットのデータを前記メモリに転送し、
分類種別と、割り込み信号を出力するタイミングに関する割り込み制御方法とを関連付けて示す割り込み管理テーブルを参照することにより、受信されて分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で前記割り込み信号を前記処理ユニットに出力し、
前記処理ユニットで起動するアプリケーションプログラムからの指示に応じて、前記割り込み管理テーブルに分類種別および割り込み制御方法を登録することにより、当該割り込み管理テーブルを更新する、
通信処理方法。
【請求項１１】
パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置を制御する方法であって、
前記通信処理装置は、割り込み管理テーブルを保持し、パケットを受信して当該パケットのデータをメモリに転送し、前記割り込み管理テーブルにおいて受信されるパケットの種別に関連付けられている割り込み制御方法で、前記パケットに対する割り込み信号を出力し、
前記通信処理装置を制御する方法では、
前記通信処理装置を介した通信路を確立し、
前記通信路を特定するための通信路情報を前記通信処理装置に送信することにより、前記通信処理装置に対して、前記通信路情報に対応するパケットの種別および割り込み制御方法を前記割り込み管理テーブルに登録させて、当該割り込み管理テーブルを更新させる、
通信処理装置の制御方法。
【請求項１２】
前記割り込み信号が出力される要因には、パケットのデータが前記メモリに転送されたことを要因とする受信割り込み要因、または、予め定められた期間が経過したことを要因とするタイマ割り込み要因があり、
前記通信処理装置の制御方法では、さらに、
前記割り込み信号を取得し、取得した割り込み信号が前記受信割り込み要因によって出力されたか、前記タイマ割り込み要因によって出力されたかを判定し、
前記受信割り込み要因によって出力されたと判定したときには、第１の受信処理方法により前記メモリに転送されたデータを処理し、
前記タイマ割り込み要因によって出力されたと判定したときには、第１の受信処理方法と異なる第２の受信処理方法により前記メモリに転送されたデータを処理する、
請求項１１記載の通信処理装置の制御方法。
【請求項１３】
前記割り込み管理テーブルには、
予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法が前記割り込み制御方法として登録されてあり、
前記第２の受信処理方法により前記メモリに転送されたデータを処理するときには、
前記メモリに転送された前記タイマ割り込み方法の対象とされるパケットのデータの一群に対する処理が制限されるべきか否かを判定し、
制限されるべきでないと判定したときには、前記一群の全てのパケットのデータを処理し、
制限されるべきと判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理する、
請求項１２記載の通信処理装置の制御方法。
【請求項１４】
前記割り込み管理テーブルには、
パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法と、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法とが、それぞれ前記割り込み制御方法として登録されてあり、
前記第１の受信処理方法により前記メモリに転送されたデータを処理するときには、
前記処理ユニットが、前記メモリに転送されたパケットのデータの一群が即時割り込み方法の対象とされるか、遅延割り込み方法の対象とされるかを前記一群のパケットの種別に基づいて判定し、
即時割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータを処理し、
遅延割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理する、
請求項１２記載の通信処理装置の制御方法。
【請求項１５】
前記割り込み管理テーブルには、
パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として登録されてあり、
前記第１の受信処理方法により前記メモリに転送されたデータを処理するときには、
前記割り込み管理テーブルに割り込み制御方法として前記遅延割り込み方法のみが登録されているか否かを判定し、
前記遅延割り込み方法のみが登録されていると判定したときには、前記メモリに転送された全てのパケットのデータを処理し、
前記遅延割り込み方法以外の割り込み制御方法も登録されていると判定したときには、前記メモリに転送された前記遅延割り込み方法の対象とされる全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理する、
請求項１２記載の通信処理装置の制御方法。
【請求項１６】
パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置を制御するためのプログラムであって、
前記通信処理装置は、割り込み管理テーブルを保持し、パケットを受信して当該パケットのデータをメモリに転送し、前記割り込み管理テーブルにおいて受信される前記パケットの種別に関連付けられている割り込み制御方法で、前記パケットに対する割り込み信号を出力し、
前記プログラムは、
前記通信処理装置を介した通信路を確立し、
前記通信路を特定するための通信路情報を前記通信処理装置に送信することにより、前記通信処理装置に対して、前記通信路情報に対応するパケットの種別および割り込み制御方法を前記割り込み管理テーブルに登録させて、当該割り込み管理テーブルを更新させる、
ことをコンピュータからなる前記処理ユニットに実行させるプログラム。
【請求項１７】
パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置と、前記処理ユニットとを有する通信機器であって、
前記通信処理装置は、
パケットを受信する受信部と、
前記受信部で受信されるパケットの種類に応じて、複数の分類種別のうちの何れか１つの分類種別に前記パケットを分類する振り分け部と、
前記受信部によって受信されて前記振り分け部によって分類されたパケットのデータを前記メモリに転送する転送制御部と、
分類種別と、割り込み信号を出力するタイミングに関する割り込み制御方法とを関連付けて示す割り込み管理テーブルを記憶している記憶部と、
前記割り込み管理テーブルを参照することにより、前記振り分け部によって分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で前記割り込み信号を前記処理ユニットに出力する割り込み制御部と、
前記処理ユニットで起動するアプリケーションプログラムからの指示に応じて、前記割り込み管理テーブルに分類種別および割り込み制御方法を登録することにより、当該割り込み管理テーブルを更新する設定部とを備え、
前記処理ユニットは、
前記アプリケーションプログラムを起動し、前記アプリケーションプログラムによって、前記通信処理装置を介した通信路を確立し、前記通信路を特定するための通信路情報を前記通信処理装置に送信することにより、前記通信処理装置に対して前記指示を行なう、
通信機器。
【請求項１８】
請求項１７記載の通信機器を備えたテレビ受像機、レコーダ、録画再生装置、セットトップボックス、またはＩＰ（Internet Protocol）通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばパケットなどのデータを受信して処理する通信処理装置およびその通信処理方法に関し、特に、ＩＰ（Internet Protocol）通信などにおけるパケットの割り込み制御を行なう通信処理装置およびその通信処理方法に関する。
【背景技術】
【０００２】
従来、ＩＰ通信などにおいて割り込み制御を行なう通信機器が提供されている。【０００３】
図１７は、割り込み制御を行なう一般的な通信機器の構成を示すブロック図である。【０００４】
一般的に、通信機器２０００は、図１７に示すように、通信処理装置２２０１、メインメモリ２１０２、およびＣＰＵ（Control Processing Unit）２１０３などの各構成要素を具備している。これらの構成要素は、システムバス２２０２を介して接続され、これらの構成要素の動作は、ＣＰＵ２１０３上で動作するソフトウェアによって制御される。【０００５】
このような通信機器２０００に具備される通信処理装置２２０１が割り込み機能を持つことは一般的である。割り込み機能は、通信処理装置２２０１からＣＰＵ２１０３に対する信号（割り込み信号）の発信によって実現される。この割り込み機能は、通信処理装置２２０１における様々な事象の発生を、即時にＣＰＵ２１０３に通知し、ソフトウェアによる対応する処理を迅速に行なうことを可能とする。その事象としては、例えば、通信データ（パケット）の受信や、パケットの送信完了、異常状態の発生などが含まれる。【０００６】
従来、パケットの受信に対する割り込み信号の発信方法には幾つかの方法がある。一つ目の方法は、一回のパケット受信毎に割り込み信号を発信する方法である。二つ目の方法は、通信処理装置２２０１でパケットを受信した後、ソフトウェアにより処理されることで通信処理装置２２０１の管理外となるパケットが、通信処理装置２２０１の内部に存在しなくなるまで割り込み信号を発信する方法などがある。二つ目の方法では、通信処理装置２２０１の管理下となる受信パケットが存在する限り、ソフトウェアに対して割り込みが発生することとなる（ソフトウェアは一時的に割り込みを停止して処理を継続する）。さらには、三つ目の方法として、Ｎａｔｉｏｎａｌ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ（登録商標）社のＤＰ８３８１６に見られるように、通信処理装置２２０１におけるパケットの受信から、所定の時間だけ遅延させて割り込み信号を発信する方法（遅延割り込み）もある。遅延割り込みは、長さの短いパケットを頻繁に受信するような事象が発生した場合において、割り込み処理に伴うソフトウェア処理量を軽減する方法として有用である。一方、このような割り込み処理に伴うソフトウェア処理量を軽減するために、基本ソフトウェアであるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が持つタイマ機能を用いて、定期的に通信処理装置２２０１の状態を監視して制御することで、割り込み機能を受信用に用いないことも提案されている。しかしながら、このソフトウェアによるタイマ機能は、その精度が荒く（数十ｍｓｅｃオーダ）、また、そのタイマ機能自体がソフトウェア処理量を増大させるため、ＣＰＵの処理能力が低い家電向けのＣＰＵなどでは、必ずしも好ましくない。また、パケットの受信は、外部から発生する事象のため、タイマ機能により通信処理装置２２０１におけるパケットの受信を確認するためには、常にタイマ機能を有効にしておく必要があり、不要なソフトウェア処理負荷の増大を招く。【０００７】
また、通信処理装置２２０１で受信される複数のパケットには、様々なアプリケーションプログラム（以下、単にアプリケーションという）に属するパケットが混在することが一般的である。特に、汎用的なＩＰ通信を用いる場合、ＨＴＴＰ、ＦＴＰ、またはＳＭＴＰ／ＰＯＰ３（メール機能）などの異なるセションプロトコルを用いるアプリケーションに属するパケットが混在することがある。また、同じＨＴＴＰを用いるアプリケーションの中でも、Ｗｅｂブラウジングから映像のストリーミングまで様々な処理を行なうアプリケーションがあるため、その受信パケットの量や即時性において、様々な要件が混在することがある。また、トランスポート層としてＴＣＰ（Transmission Control Protocol）を用いる場合、その転送性能となるスループットは、転送端末間における処理遅延に影響されるため、受信応答となるＡＣＫ受信は、早期に処理されることが好ましい。【０００８】
このように、一つの通信処理装置２２０１で扱う受信パケットに対して、様々な要件が混在することから、通信処理装置２２０１の中で受信パケットを分類して管理し、ソフトウェアにおける処理を容易とする通信機器が提案されている（例えば、特許文献１参照）。【０００９】
上記特許文献１の通信機器においては、受信パケットを転送制御部（転送制御部の詳細については後述する）が管理および制御するために用いる転送管理識別子（Ｄｅｓｃｒｉｐｔｏｒ）に対して、パケット分類個別のＲｉｎｇを用いる。この特許文献１の通信機器は、メインメモリに転送された受信パケットに対して、ＴＣＰ／ＩＰスタックなどの汎用的な階層処理を行なわず、直接各アプリケーションが上記Ｒｉｎｇを扱うことを前提に、受信したパケットのメインメモリ上でのコピー回数を軽減することを目的としている。【００１０】
図１８は、上記特許文献１の通信機器２０００を本発明と比較するために記述したブロック図である。上記特許文献１の通信機器２０００の通信処理装置２２０１は、転送制御部２３０４、送信データ保持部２１０５、ＭＡＣ部２１０６、振り分け部２１０７、振り分けテーブル２１０８、受信データ保持部２１０９、設定部２３１０、および割り込み制御部２３１１を具備する。【００１１】
転送制御部２３０４は、その送信処理として、メインメモリ２１０２との間のパケットのデータの転送を管理および制御して送信パケットのデータを送信データ保持部２１０５に転送する。さらに、転送制御部２３０４は、その受信処理として、受信パケットのデータを受信データ保持部２１０９からメインメモリ２１０２に転送する。送信データ保持部２１０５は、転送制御部２３０４から転送された送信パケットのデータをＭＡＣ部２１０６に転送する。ＭＡＣ部２１０６は、送信データ保持部２１０５から転送された送信パケットのデータに対して、所定のＭＡＣ（Media Access Control）規格に準ずる送信処理を行なうとともに、所定のＭＡＣ規格に準ずる受信処理を行なって振り分け部２１０７に受信パケットのデータを転送する。なお、ＭＡＣ部２１０６から接続される外部ブロックは、物理層に依存し、通信機器２０００のネットワークと接続されるＩ／Ｆ（インターフェース）である。【００１２】
振り分け部２１０７は、ＭＡＣ部２１０６から転送された受信パケットのデータを、振り分けテーブル２１０８を参照して分類し、受信データ保持部２１０９に分類情報とともに転送する。受信データ保持部２１０９は、振り分け部２１０７から転送された受信パケットのデータと分類情報を関連付けて保持する。転送制御部２３０４は、その受信処理として、受信データ保持部２１０９に保持された受信パケットのデータを、関連付けられた分類情報に基づいてメインメモリ２１０２に転送する。この時、転送制御部２３０４は、受信パケットのデータをメインメモリ２１０２へ転送完了したことを割り込み制御部２３１１に通知し、割り込み制御部２３１１は、転送制御部２３０４からの通知により、ＣＰＵ２１０３に割り込み信号を発信する。また、設定部２３１０は、ＣＰＵ２１０３からの振り分けテーブル２１０８に対する設定変更要求を受け付け、振り分けテーブル２１０８の変更を行なう。【００１３】
また、受信パケットの種別に応じた方法でその受信パケットに対する割り込み制御を行なう通信機器も提案されている（例えば、特許文献２参照）。特許文献２の通信機器は、受信パケットの種別を解析し、その受信パケットがリアルタイムパケットか否かを判別してバッファに転送する。そして、通信機器は、リアルタイムパケットであると判別したときには、割り込み信号を即時にＣＰＵに発信し、リアルタイムパケットでないと判別したときには、受信パケットを受信してから一定時間経過した後、または、バッファに一定量のデータが蓄積された後に、割り込み信号をＣＰＵに発信する。つまり、上記特許文献２の通信機器は、受信パケットの種別に応じて、その受信パケットに対する割り込み制御方法を切り替えている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特許第２７２３９７０号公報
【特許文献２】特開２００８−５９５７７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、上記特許文献１および特許文献２の通信機器を含む従来の通信機器では、ソフトウェアの受信処理負荷を抑えつつアプリケーションの処理に応じた割り込みを適宜行なうことができないという問題がある。【００１６】
つまり、従来の通信機器では、以下５点の状況がある。
（ａ）特許文献１の通信機器では、受信パケットの分類それぞれに対して、異なる要件を満たす割り込み制御を行なうことができない。
（ｂ）遅延割り込みはソフトウェアの処理方法によっては割り込み処理量の低減に繋がらないリスクが存在する。
（ｃ）ＯＳが持つタイマ機能のみにより受信処理を管理する場合、まったくパケットの受信が発生しなくてもタイマ機能を動作させる必要があるため、不要なソフトウェア処理量を増大させる。
（ｄ）ＯＳが持つタイマ機能を用いる場合、その精度が荒く（数十ｍｓｅｃオーダ）、また、そのタイマ機能自体がソフトウェア処理量を増大させる。タイマ精度としては、例えば１００Ｍｂｐｓの能力を持つＥｔｈｅｒｎｅｔ（登録商標）の通信においては、数百μｓｅｃ以下であることが求められる。また、タイマ機能による受信制御は、即時性を有する通信に対しても、その処理を遅延させることとなる。
（ｅ）特許文献２の通信機器では、割り込み制御方法が受信パケットの種別に応じて予め定められている。【００１７】
その結果、家電にネット機能を搭載する場合などに用いられる家電向けのＣＰＵなど、比較的処理能力の低いＣＰＵを用いる場合において、以下の４点の課題がある。
（１）パケットの受信ごとに即時に割り込み信号を発信する割り込み制御方法では、単位時間あたりの大量のパケットの受信による割り込み処理のためにソフトウェア処理量が増大し、その結果、ＣＰＵ負荷の増大により、通信機器本来のアプリケーションの実行に支障を招くリスクが増大する。
（２）ＯＳが持つタイマ機能を用いる受信制御方法では、精度の高い（数百μｓｅｃ以下）タイマを実現することは困難である。
（３）タイマ機能による受信制御方法では、即時性を有する通信に対して、処理が遅延され、その結果、スループットの低下を招くリスクが増大する。
（４）受信パケットの種別に応じて割り込み制御方法を切り替えても、受信パケットの種別のそれぞれに対して割り込み制御方法が固定されているため、アプリケーションの処理（映像データの受信再生など）に求められる要件に応じた割り込みを適宜行なうことができない。【００１８】
そこで、本発明は、かかる問題に鑑みてなされたものであって、ソフトウェアの受信処理負荷を抑えつつアプリケーションの処理に応じた割り込みを適宜行なうことができる通信処理装置およびその通信処理装置を備えた通信機器を提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記目的を達成するために、本発明の通信処理装置は、パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置であって、パケットを受信する受信部と、前記受信部で受信されるパケットの種類に応じて、複数の分類種別のうちの何れか１つの分類種別に前記パケットを分類する振り分け部と、前記受信部によって受信されて前記振り分け部によって分類されたパケットのデータを前記メモリに転送する転送制御部と、分類種別と、割り込み信号を出力するタイミングに関する割り込み制御方法とを関連付けて示す割り込み管理テーブルを記憶している記憶部と、前記割り込み管理テーブルを参照することにより、前記振り分け部によって分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で前記割り込み信号を前記処理ユニットに出力する割り込み制御部と、前記処理ユニットで起動するアプリケーションプログラムからの指示に応じて、前記割り込み管理テーブルに分類種別および割り込み制御方法を登録することにより、当該割り込み管理テーブルを更新する設定部とを備える。【００２０】
これにより、割り込み管理テーブルにおいて、受信されるパケットの種類または分類種別に関連付けられた割り込み制御方法が、そのパケットに対して適用され、その割り込み制御方法で割り込み信号が処理ユニット（例えばＣＰＵ）に出力される。したがって、パケットの分類種別に対して、その分類種別のパケットを受信処理するために適切とされる割り込み制御方法を割り込み管理テーブルに登録しておけば、そのパケットの受信処理に必要とされる即時性などの要件を満たしつつ、そのパケットに対して必要以上の発信頻度で割り込み信号を出力することを防ぐことができる。つまり、処理ユニットにおいてメモリに転送されたパケットのデータを処理しようとするソフトウェアの受信処理負担を適切に抑えることができる。例えば、パケットの分類種別ごとに異なる割り込み制御方法を用いることができるため、即時性の高いパケットに対する割り込み制御方法として即時割り込み方法を用いたり、即時性が低く、ある程度まとめて受信処理をすればよいパケットに対する割り込み制御方法としてタイマ割り込み方法を用いたりすることにより、パケットの分類種別ごとに最適な受信制御が実現される。【００２１】
さらに、処理ユニットで起動するアプリケーションプログラムからの指示に応じて、分類種別と割り込み制御方法とが関連付けられて割り込み管理テーブルに登録されるため、アプリケーションプログラムは、自らが実行しようとする通信に用いられるパケットの分類種別と、そのパケットを用いた処理に求められる要件を満たすような割り込み制御方法とを割り込み管理テーブルに登録することができる。つまり、割り込み管理テーブルは書き換え可能であり、通信処理装置の初期化時あるいは動作中に変更されるため、起動するアプリケーションプログラムの変更などに柔軟な運用が可能となる。言い換えれば、割り込み管理テーブルに定義される割り込み制御方法を動的に変更できるため、複数のアプリケーションプログラムが動作または停止するような通信機器に対して容易に適用可能となる。その結果、ソフトウェアの受信処理負荷を抑えつつアプリケーションプログラムの処理に応じた割り込みを適宜行なうことができ、適切に受信処理を行なうことができる。【００２２】
また、前記設定部は、前記割り込み管理テーブルに示されていない分類種別のパケットが前記受信部によって受信される場合、前記アプリケーションプログラムからの指示に応じて、前記分類種別と、前記パケットに応じた割り込み制御方法とを関連付けて前記割り込み管理テーブルに追加することにより、当該割り込み管理テーブルを更新してもよい。【００２３】
これにより、新たな通信路が確立されるときに、その通信路に応じたパケットの分類種別と割り込み制御方法とが割り込み管理テーブルに登録されていなくても、そのアプリケーションプログラムの指示に応じてそれらが登録されるため、新たな通信路を含む複数の通信路のそれぞれに対して適切な割り込み制御を行なうことができる。【００２４】
また、前記設定部は、前記アプリケーションプログラムからの指示として、当該アプリケーションプログラムによって確立された通信路を特定するための通信路情報を取得し、前記通信路情報に応じた分類種別および割り込み制御方法を前記割り込み管理テーブルに登録してもよい。【００２５】
これにより、通信路情報に応じた割り込み制御方法が割り込み管理テーブルに登録されるため、その通信路に応じたより適切な割り込み制御方法を登録することができる。【００２６】
また、前記設定部は、前記割り込み管理テーブルに、第１の分類種別および第１の割り込み制御方法を関連付けて登録するとともに、第２の分類種別および第２の割り込み制御方法を関連付けて登録し、前記割り込み制御部は、前記振り分け部によって分類されるパケットの分類種別が第１の分類種別である場合には、前記割り込み管理テーブルにおいて当該第１の分類種別に関連付けられた第１の割り込み制御方法で、割り込み信号を前記処理ユニットに出力し、前記振り分け部によって分類されるパケットの分類種別が第２の分類種別である場合には、前記割り込み管理テーブルにおいて当該第２の分類種別に関連付けられた第２の割り込み制御方法で、割り込み信号を前記処理ユニットに出力してもよい。【００２７】
これにより、即時性に対して互いに異なる要件を有する第１の分類種別のパケットと第２の分類種別のパケットとが混在する環境でも、それぞれに適切な割り込み制御方法で割り込み信号を出力することができるため、何れの分類種別のパケットに対しても即時に割り込み信号を出力する割り込み制御方法が用いられる場合と比べて、割り込み信号の発信頻度を適切に抑制することができる。また、パケットの分類種別ごとに異なる割り込み制御方法を用いることができるため、即時性の高いパケットに対する割り込み制御方法として即時割り込み方法を用いたり、即時性が低く、ある程度まとめて受信処理をすればよいパケットに対する割り込み制御方法としてタイマ割り込み方法を用いたりすることにより、パケットの分類種別ごとに最適な受信制御が実現される。【００２８】
ここで例えば、振り分け部においてパケットを分類する際に用いられる分類識別子（Ｒｉｎｇ識別子）を分類種別に用い、メモリとの間でパケットのデータを転送するために転送制御部が用いるＤｅｓｃｒｉｐｔｏｒが分類識別子ごとに独立して管理されている場合には、転送制御において用いられる分類と同じ分類で割り込み制御を行なうことができるため、通信処理装置を制御するソフトウェアは容易に割り込み制御とパケットの分類とを関連付けて制御することができ、ソフトウェアにより再度分類を判定するなどの処理負荷の増大を抑制することができる。【００２９】
また、前記設定部は、分類種別と当該分類種別に関連付けられた割り込み制御方法との組み合わせを１つまたは複数個だけ、前記割り込み管理テーブルに登録し、前記割り込み制御部は、前記割り込み管理テーブルに登録されている１つまたは複数個の組み合わせが、予め定められた組み合わせである場合には、前記割り込み管理テーブルにおいて、前記振り分け部によって分類されるパケットの分類種別に関連付けられている割り込み制御方法と異なる、予め定められた他の割り込み制御方法で割り込み信号を出力してもよい。例えば、前記割り込み制御部は、前記割り込み管理テーブルに、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として１つだけ登録されている場合には、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法で割り込み信号を出力する。【００３０】
例えば、割り込み管理テーブルに割り込み制御方法として、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法と遅延割り込み方法とが登録されている場合には、遅延割り込み方法に対応する分類種別のパケットに対する処理よりも、タイマ割り込み方法に対応する分類種別のパケットに対する処理を優先させてソフトウェアに実行させることができ、その結果、それぞれのパケットのデータの処理をソフトウェアに適切に実行させることができる。しかし、割り込み管理テーブルに割り込み制御方法として遅延割り込み方法だけが登録されている場合にまで、割り込み信号の出力を遅延させる必要はない。そこで、本発明では、割り込み管理テーブルに割り込み制御方法として遅延割り込み方法だけが登録されている場合には、遅延割り込み方法ではなく即時割り込み方法で割り込み信号が出力されるため、通信状況に応じて、遅延割り込み方法でも受信処理可能な分類種別のパケットに対するスループットを向上することができる。【００３１】
また、前記設定部は、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過し、且つ直前の割り込み信号が出力されてから前記予め定められた時間経過したときに割り込み信号を出力する間隔制限付き遅延割り込み方法、および、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法の中から、１つまたは複数の方法を前記割り込み制御方法として前記割り込み管理テーブルに登録してもよい。【００３２】
これにより、割り込み信号の発信頻度を抑制しつつ、即時性を有する通信に対するパケットの処理を遅延することなく処理することが可能となる。また、タイマ割り込み方法では、ＯＳにより制御されるタイマ機能と比較してタイマ時間の精度が高いため（数百μｓｅｃ以下）、大量に送信されるＨＤ（High Definition）画質の映像データの受信処理でも定期的に適切に行なうことができ、ＤｏＳ（Denial of Service）攻撃対策の精度を高めることが可能となる。さらに、割り込み制御部が割り込み信号を出力することで、ＯＳがタイマ機能として制御を行なう必要がないため、ソフトウェア処理量の少ないタイマ機能を提供することができる。また、即時性が必要とされず、ある程度まとめて受信処理をすればよいパケットに対しては、割り込み信号の発信頻度を抑えて、ソフトウェアの受信処理負担を軽減することができる。また、間隔制限付き遅延割り込み方法では、割り込み頻度を所定の間隔に制限することが可能となり、ソフトウェアによる処理負荷を抑制することがさらに容易になる。なお、間隔制限付き遅延割り込み方法による１回の割り込みに対する受信処理量を制限してもよく、この場合には、受信量制限（ｐｐｓ制限、ｂｐｓ制限）を容易に行なうことができる。また、即時割り込み方法では、間隔制限付き遅延割り込み方法のように即時性を犠牲にすることなく、即時性の高い処理が要求されるパケットに対して適切に受信処理を行なうことができる。また、即時割り込み方法、遅延割り込み方法、間隔制限付き遅延割り込み方法、およびタイマ割り込み方法が割り込み管理テーブルに登録されれば、多種多様な分類種別のパケットが同時期に受信されても、それらのパケットに適切な割り込み制御方法で割り込み信号を出力することができる。【００３３】
また、前記転送制御部は、さらに、前記振り分け部によって分類されたパケットに関するパケット関連情報を前記割り込み制御部に通知し、前記割り込み制御部は、前記転送制御部から前記パケット関連情報の通知を受けたときには、前記割り込み管理テーブルにおいて前記パケットの分類種別に関連付けられている割り込み制御方法と前記パケット関連情報とに応じた他の割り込み制御方法を特定し、前記他の割り込み制御方法で前記割り込み信号を出力してもよい。【００３４】
例えば、受信データ長や、特定のプロトコルの特定の情報などがパケット関連情報として割り込み制御部に通知される。これにより、そのようなパケット関連情報に応じて割り込み制御方法が特定されるため、例えば、ＤｏＳ攻撃などに対抗する割り込み制御方法に変更することができる。つまり、ＤｏＳ攻撃対策を容易とすることができる。例えば、ＤｏＳ攻撃に対して、受信したパケットを一律に廃棄するのではなく、割り込み制御方法を切り替えることでソフトウェア処理量を低減しながら、本来のアプリケーションプログラムの処理に支障が出ないように制御することが可能となる。【００３５】
また、上記目的を達成するために、本発明の通信処理装置の制御方法は、パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置を制御する方法であって、前記通信処理装置は、割り込み管理テーブルを保持し、パケットを受信して当該パケットのデータをメモリに転送し、前記割り込み管理テーブルにおいて受信されるパケットの種別に関連付けられている割り込み制御方法で、前記パケットに対する割り込み信号を出力し、前記通信処理装置を制御する方法では、前記通信処理装置を介した通信路を確立し、前記通信路を特定するための通信路情報を前記通信処理装置に送信することにより、前記通信処理装置に対して、前記通信路情報に対応するパケットの種別および割り込み制御方法を前記割り込み管理テーブルに登録させて、当該割り込み管理テーブルを更新させる。【００３６】
これにより、例えばアプリケーションプログラムによって確立される通信路に対応するパケットの種別および割り込み制御方法が割り込み管理テーブルに登録されるため、通信制御装置に対して、アプリケーションプログラムの処理に応じた割り込み信号の出力を適宜実行させることができる。【００３７】
また、前記割り込み信号が出力される要因には、パケットのデータが前記メモリに転送されたことを要因とする受信割り込み要因、または、予め定められた期間が経過したことを要因とするタイマ割り込み要因があり、前記通信処理装置の制御方法では、さらに、前記割り込み信号を取得し、取得した割り込み信号が前記受信割り込み要因によって出力されたか、前記タイマ割り込み要因によって出力されたかを判定し、前記受信割り込み要因によって出力されたと判定したときには、第１の受信処理方法により前記メモリに転送されたデータを処理し、前記タイマ割り込み要因によって出力されたと判定したときには、第１の受信処理方法と異なる第２の受信処理方法により前記メモリに転送されたデータを処理してもよい。【００３８】
これにより、割り込み信号が出力される要因が受信割り込み要因であるか、タイマ割り込み要因であるかに応じて、メモリに転送されたデータに対する受信処理方法が第１の受信処理方法と第２の受信処理方法とで切り替えられるため、それらの要因ごとに適切な受信処理を行なうことができる。【００３９】
また、前記割り込み管理テーブルには、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法が前記割り込み制御方法として登録されてあり、前記第２の受信処理方法により前記メモリに転送されたデータを処理するときには、前記メモリに転送された前記タイマ割り込み方法の対象とされるパケットのデータの一群に対する処理が制限されるべきか否かを判定し、制限されるべきでないと判定したときには、前記一群の全てのパケットのデータを処理し、制限されるべきと判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理してもよい。【００４０】
例えば、タイマ割り込み要因で割り込み信号が出力されるようなパケットでも、ストリームのパケットのように、受信時に広い帯域幅が保障されるべきパケットと、大量データダウンロードのパケットのように、そのような保障を必要としないが大量に受信されて処理されるべきパケットとがある。このようなパケットが混在するような場合には、ストリームのパケットについては、メモリに転送されたパケットのデータが１回の割り込みで全て処理されるべきであり、大量データダウンロードのパケットについては、ストリームのパケットが適切に処理されるように、１回の割り込みで処理されるデータ量が制限されるべきである。そこで、本発明では、処理が制限されるべきか否かが判定され、制限されるべきでないと判定されたときには、全てのパケットのデータが処理され、制限されるべきと判定されたときには、所定数以下のパケットのデータだけが処理される。したがって、本発明では、映像ストリーム受信などの受信帯域幅がアプリケーションの品質に極めて重大な影響を与える場合のパケットの受信に対して、他のパケットの受信の混在時にも安定した受信帯域幅を確保することができる。【００４１】
また、前記割り込み管理テーブルには、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法と、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法とが、それぞれ前記割り込み制御方法として登録されてあり、前記第１の受信処理方法により前記メモリに転送されたデータを処理するときには、前記処理ユニットが、前記メモリに転送されたパケットのデータの一群が即時割り込み方法の対象とされるか、遅延割り込み方法の対象とされるかを前記一群のパケットの種別に基づいて判定し、即時割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータを処理し、遅延割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理してもよい。【００４２】
例えば、受信割り込み要因で割り込み信号が出力されるようなパケットでも、ＴＣＰのＡＣＫ（ACKnowledgement）処理のパケットように、即時に処理されるべきパケットと、ウェブブラウズのパケットのように、受信時の帯域幅の保障を必要としないパケットとがある。このようなパケットが混在するような場合には、ＡＣＫ処理のパケットについては、メモリに転送されたパケットのデータが１回の割り込みで全て処理されるべきであり、ウェブブラウズのパケットについては、ＡＣＫ処理のパケットが適切に処理されるように、１回の割り込みで処理されるデータ量が制限されるべきである。そこで、本発明では、メモリに転送されたパケットのデータの一群が即時割り込み方法の対象とされるか、遅延割り込み方法の対象とされるかが判定され、即時割り込み方法の対象とされると判定されたときには、全てのパケットのデータが処理され、遅延割り込み方法の対象とされると判定されたときには、所定数以下のパケットのデータだけが処理される。したがって、本発明では、ＡＣＫ処理のパケットなどの即時性が求められるパケットの受信に対して、他のパケットの受信の混在時にも確実に即時性を確保することができる。【００４３】
また、前記割り込み管理テーブルには、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として登録されてあり、前記第１の受信処理方法により前記メモリに転送されたデータを処理するときには、前記割り込み管理テーブルに割り込み制御方法として前記遅延割り込み方法のみが登録されているか否かを判定し、前記遅延割り込み方法のみが登録されていると判定したときには、前記メモリに転送された全てのパケットのデータを処理し、前記遅延割り込み方法以外の割り込み制御方法も登録されていると判定したときには、前記メモリに転送された前記遅延割り込み方法の対象とされる全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理してもよい。【００４４】
これにより、割り込み管理テーブルに、遅延割り込み方法と他の割り込み制御方法（例えばタイマ割り込み方法）とが登録されている場合には、メモリに転送された遅延割り込み方法の対象とされる全てのパケットのデータのうち、所定数以下のパケットのデータだけが処理されるため、タイマ割り込み方法の対象とされるパケットのデータに対する処理の妨げとならないように、遅延割り込み方法の対象とされるパケットのデータを処理することができる。また、割り込み管理テーブルに、遅延割り込み方法だけが登録されている場合には、メモリに転送された全てのパケットのデータが処理されるため、遅延割り込み方法の対象とされるパケットの受信処理のスループットを向上することができる。【００４５】
なお、本発明は、このような通信処理装置や、通信処理装置の制御方法として実現することができるだけでなく、その通信処理装置を備えて上記制御方法によりその通信処理装置を制御する通信機器、その通信処理装置が通信処理する方法、通信処理装置を制御するためのプログラムとしても実現することができ、そのプログラムを格納する記憶媒体や、集積回路としても実現することができる。
【発明の効果】
【００４６】
ソフトウェアの受信処理負荷を抑えつつアプリケーションの処理に応じた割り込みを適宜行なうことができる通信処理装置およびその通信処理装置を備えた通信機器を提供することを目的とする。【００４７】
（本願の技術的背景に関する情報）
２００８年５月１９日に出願された出願番号２００８−１３０２８５の日本出願の明細書、図面および特許請求の範囲における開示は、その全体を、参照用として、本願に取り込む。
【図面の簡単な説明】
【００４８】
【図１】図１は、本発明の実施の形態に係る通信機器および通信処理装置の構成を示すブロック図である。
【図２】図２は、本発明の実施の形態に係る振り分け部で扱う受信パケットのフォーマット例を示す図である。
【図３】図３は、本発明の実施の形態に係る振り分けテーブルの一例を示す図である。
【図４】図４は、本発明の実施の形態に係る割り込み管理テーブルの一例を示す図である。
【図５】図５は、本発明の実施の形態に係る割り込み管理テーブルの他の例を示す図である。
【図６Ａ】図６Ａは、本発明の実施の形態に係る即時割り込みのタイミングを示す図である。
【図６Ｂ】図６Ｂは、本発明の実施の形態に係る遅延割り込みのタイミングを示す図である。
【図６Ｃ】図６Ｃは、本発明の実施の形態に係る間隔制限付き遅延割り込みのタイミングを示す図である。
【図７】図７は、本発明の実施の形態に係るアプリケーションおよび設定部によるテーブル更新処理の一例を示すフローチャートである。
【図８】図８は、本発明の実施の形態に係る割り込み制御部の全体的な動作である割り込み制御処理を示すフローチャートである。
【図９】図９は、本発明の実施の形態に係る割り込み制御部における割り込み制御処理で実施される割り込み制御設定の詳細を示すフローチャートである。
【図１０】図１０は、本発明の実施の形態に係る割り込み制御部における割り込み制御処理で実施される割り込み発信制御の詳細を示すフローチャートである。
【図１１】図１１は、本発明の実施の形態に係る割り込み制御部における割り込み発信制御で実施されるタイマ割り込み制御の詳細を示すフローチャートである。
【図１２】図１２は、本発明の実施の形態に係る割り込み制御部における割り込み発信制御で実施される遅延割り込み制御の詳細を示すフローチャートである。
【図１３】図１３は、本発明の実施の形態に係る割り込み制御部における割り込み発信制御で実施される間隔制限付き遅延割り込み制御の詳細を示すフローチャートである。
【図１４】図１４は、本発明の実施の形態に係る通信処理装置を制御するソフトウェアにおける割り込みハンドラの受信処理を示すフローチャートである。
【図１５】図１５は、本発明の実施の形態に係る通信処理装置を制御するソフトウェアにおける割り込みハンドラの受信処理で実施されるタイマ割り込み処理を示すフローチャートである。
【図１６】図１６は、本発明の実施の形態に係る通信処理装置を制御するソフトウェアにおける割り込みハンドラの受信処理で実施される受信割り込み処理を示すフローチャートである。
【図１７】図１７は、通信処理装置を具備する通信機器の構成の例を示すブロック図である。
【図１８】図１８は、従来の通信処理装置の一構成例を示すブロック図である。
【発明を実施するための形態】
【００４９】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００５０】
図１は、本発明の実施の形態に係る通信機器および通信処理装置の構成を示すブロック図である。
【００５１】
本実施の形態における通信機器１００は、通信処理装置１０１と、メインメモリ１０２と、ＣＰＵ１０３とを備える。なお、図１では、通信機器１００の上記各構成要素に接続するシステムバスは説明の便宜上省略してあるが、本発明の本質とは無関係である。また、図１において、メインメモリ１０２およびＣＰＵ１０３はそれぞれ１つのみ記載されているが、物理的あるいは論理的に複数存在していてもよく、それらの数は本発明の本質とは無関係である。
【００５２】
通信処理装置１０１は、転送制御部１０４、送信データ保持部１０５、ＭＡＣ部１０６、振り分け部１０７、第２記憶部１０８ｍ、受信データ保持部１０９、設定部１１０、割り込み制御部１１１、および第１記憶部１１２ｍを具備する。
【００５３】
転送制御部１０４は、その送信処理として、メインメモリ１０２との間のパケットのデータの転送を管理および制御して送信パケットのデータを送信データ保持部１０５に転送する。さらに、転送制御部１０４は、その受信処理として、受信パケットのデータを受信データ保持部１０９からメインメモリ１０２に転送する。
【００５４】
送信データ保持部１０５は、転送制御部１０４から転送された送信パケットのデータをＭＡＣ部１０６に転送する。ＭＡＣ部１０６は、送信データ保持部１０５から転送された送信パケットのデータを、所定のＭＡＣ規格に準ずる送信処理により送信するとともに、所定のＭＡＣ規格に準ずる受信処理によりパケットを受信して振り分け部１０７に受信パケットのデータを転送する。なお、ＭＡＣ部１０６から接続される外部ブロックは、物理層に依存し、通信機器１００のネットワークと接続されるＩ／Ｆ（インターフェース）である。
【００５５】
振り分け部１０７は、第２記憶部１０８ｍに記憶されている振り分けテーブル１０８を参照して、ＭＡＣ部１０６から転送された受信パケットのデータを分類し、受信データ保持部１０９に分類識別子とともに転送する。受信データ保持部１０９は、振り分け部１０７から転送された受信パケットのデータと分類識別子を関連付けて保持する。なお、分類識別子は、振り分け部１０７による分類結果を示し、受信パケットのデータの内容に応じてそのデータに割り当てられる分類種別である。
【００５６】
振り分け部１０７および振り分けテーブル１０８の詳細は、本発明の本質とは関係ないが、割り込み管理テーブル１１２における分類識別子を理解するために有用であるため、以下、それらの詳細について説明する。
【００５７】
図２は、振り分け部１０７で扱う受信パケットのフォーマット例を示す図である。具体的には、図２は、ＭＡＣとしてＥｔｈｅｒｎｅｔ（登録商標）、ネットワーク層としてＩＰ、トランスポート層としてＴＣＰを使用した場合のフォーマット例を示す。なお、本実施の形態では、振り分け部１０７で扱う受信パケットのフォーマットとして、ＭＡＣ、ネットワーク層、およびトランスポート層などを用いるが、これらと異なるものを用いてもよい。
【００５８】
例えば、受信パケットのデータは、ＭＡＣヘッダ４０１、ＩＰヘッダ４０２、ＴＣＰヘッダ４０３およびペイロードデータ４０４を含む。この場合、受信パケットを分類するために用いられる情報としては、例えば、ＭＡＣヘッダ４０１に含まれる宛先ＭＡＣアドレス４０１ａもしくは送信元ＭＡＣアドレス４０１ｂ、ＩＰヘッダに含まれるＩＰ  Ｖｅｒｓｉｏｎ（Ｖｅｒ）４０２ａもしくはトランスポートプロトコル番号（Ｐｒｏｔｏｃｏｌ）４０２ｂ、または、ＴＣＰヘッダ４０３に含まれる送信元ポート番号４０３ａもしくは宛先ポート番号４０３ｂなどが挙げられる。これらの一部を用いて他を任意としてもよいし、すべてを用いてもよい。さらに、受信パケットのデータに含まれる他の情報を分類に用いてもよい。例えば、Ｐｒｏｔｏｃｏｌ４０２ｂがＴＣＰ（０ｘ０６）を示し、送信元ポート番号４０３ａが８０番である場合、受信パケットがＨＴＴＰサーバからの受信パケットであると特定できる。さらに、宛先ポート番号４０３ｂにより、その受信パケットを扱うアプリケーションが特定でき、その受信パケットが映像通信に用いられるものか否かが受信する通信機器１００内では一意に特定可能となる。
【００５９】
図３は、振り分けテーブル１０８の一例を示す図である。
【００６０】
例えば、振り分けテーブル１０８は、受信パケットの分類に用いられる情報である分類パラメータと、その分類パラメータに対して関連付けられた分類識別子とを示す。この例では、分類パラメータは、トランスポートプロトコル（Ｐｒｏｔｏｃｏｌ）、宛先ＩＰアドレス、送信元ポート番号、および宛先ポート番号からなる。なお、トランスポートプロトコルは、上述のトランスポートプロトコル番号であってもよい。
【００６１】
具体的には、振り分けテーブル１０８は、分類パラメータ「Ｐｒｏｔｏｃｏｌ：ＴＣＰ、宛先ＩＰアドレス：１９２．１６８．３．４、送信元ポート番号：８０、宛先ポート番号：１０００１」に関連付けて分類識別子「１」を示し、分類パラメータ「Ｐｒｏｔｏｃｏｌ：ＴＣＰ、宛先ＩＰアドレス：１９２．１６８．１．８、送信元ポート番号：１０００１、宛先ポート番号：１０００２」に関連付けて分類識別子「２」を示す。また、振り分けテーブル１０８は、具体的に挙げられた分類パラメータ以外の分類パラメータに対しては、分類識別子「Ｄｅｆａｕｌｔ」を示す。
【００６２】
したがって、振り分け部１０７は、受信パケットのデータに示される分類パラメータを振り分けテーブル１０８から検索し、その分類パラメータが振り分けテーブル１０８にあれば、その分類パラメータに関連付けられている分類識別子を、その受信パケットのデータとともに受信データ保持部１０９に出力する。また、振り分け部１０７は、検索の結果、その分類パラメータが振り分けテーブル１０８になければ、分類識別子「Ｄｅｆａｕｌｔ」をその受信パケットのデータとともに受信データ保持部１０９に出力する。
【００６３】
このように、振り分けテーブル１０８には、受信パケットを分類するための定義（分類パラメータ）が分類識別子に関連付けて登録されている。なお、その定義のエントリ一つ一つを区別するために、便宜上、仮想的に分類識別子を関連付けておいてもよい。
【００６４】
転送制御部１０４は、その受信処理として、受信データ保持部１０９に保持された受信パケットのデータを、そのデータに関連付けられた分類識別子に基づいてメインメモリ１０２に転送する。この時、転送制御部１０４は、受信パケットのデータをメインメモリ１０２へ転送完了したことを、その分類識別子とともに割り込み制御部１１１に通知する。
【００６５】
割り込み制御部１１１は、転送制御部１０４から通知された分類識別子を、第１記憶部１１２ｍに記憶されている割り込み管理テーブル１１２から検索し、その分類識別子に関連付けられているトラヒック種別に定義されている割り込み制御方法を特定し、その方法で割り込み制御を行なう。その結果、割り込み制御部１１１はＣＰＵ１０３に必要なタイミングで割り込み信号を発信する。
【００６６】
図４は、割り込み管理テーブル１１２の一例を示す図である。
【００６７】
例えば、割り込み管理テーブル１１２は、分類識別子と、その分類識別子に関連付けられたトラヒック種別とを示す。言い換えれば、割り込み管理テーブル１１２には、分類識別子とトラヒック種別と関連付けて登録されている。また、割り込み管理テーブル１１２における分類識別子は振り分けテーブル１０８の分類識別子と共通している。
【００６８】
具体的には、割り込み管理テーブル１１２は、分類識別子「１」に関連付けてトラヒック種別「ストリーム」を示し、分類識別子「２」に関連付けてトラヒック種別「即時」を示す。ここでトラヒック種別とは、受信パケットの受信形態であって、例えば「非優先」、「即時」、「ストリーム」および「ダウンロード」の何れかである。トラヒック種別「非優先」は、帯域幅の保障を必要としない通常の受信形態であり、トラヒック種別「即時」は、ＴＣＰのスループット向上に有用なＴＣＰ−ＡＣＫ処理などの即時処理が必要とされる受信形態であり、トラヒック種別「ストリーム」は、帯域幅の保障を必要とする映像データの受信形態であり、トラヒック種別「ダウンロード」は、トラヒック種別「即時」および「ストリーム」による通信を妨げない範囲で最大限の受信性能を要求する受信形態である。
【００６９】
つまり、割り込み制御部１１１は、この割り込み管理テーブル１１２から、転送制御部１０４から通知された分類識別子（例えば分類識別子「１」）を検索し、その分類識別子に関連付けられているトラヒック種別（例えば「ストリーム」）を特定する。さらに、割り込み制御部１１１は、そのトラヒック種別に定義されている割り込み制御方法を特定する。
【００７０】
例えば、トラヒック種別「非優先」には、割り込み制御方法「遅延割り込み」または「間隔制限付き遅延割り込み」が定義され、トラヒック種別「即時」には、割り込み制御方法「即時割り込み」が定義され、トラヒック種別「ストリーム」には、割り込み制御方法「タイマ割り込み」が定義され、トラヒック種別「ダウンロード」には、割り込み制御方法「処理量（帯域幅）制限付きタイマ割り込み」が定義されている。なお、トラヒック種別「非優先」を細分化して、トラヒック種別「非優先Ａ」に割り込み制御方法「遅延割り込み」が定義され、トラヒック種別「非優先Ｂ」に割り込み制御方法「間隔制限付き遅延割り込み」が定義されていてもよい。
【００７１】
「即時割り込み」は、パケットのデータがメインメモリ１０２に転送された直後に割り込み信号を出力する割り込み制御方法である。「遅延割り込み」は、パケットのデータがメインメモリ１０２に転送されてから予め定められた時間経過したときに割り込み信号を出力する割り込み制御方法である。「間隔制限付き遅延割り込み」は、パケットのデータがメインメモリ１０２に転送されてから予め定められた時間経過し、且つ直前の割り込み信号が出力されてから上記予め定められた時間経過したときに割り込み信号を出力する割り込み制御方法である。また、「タイマ割り込み」は、予め定められた期間ごとに割り込み信号を出力する割り込み制御方法であり、「処理量（帯域幅）制限付きタイマ割り込み」は、上記「タイマ割り込み」と同様のタイミングで割り込み信号を出力するが、その割り込み信号に応じて処理されるデータ量が制限されている割り込み制御方法である。
【００７２】
なお、本実施の形態では、割り込み管理テーブル１１２には、分類識別子に関連付けてトラヒック種別が登録され、１つのトラヒック種別は１つの割り込み制御方法に定義づけされている。したがって、本実施の形態における割り込み管理テーブル１１２は、分類識別子に関連付けられた割り込み制御方法を、トラヒック種別を介して間接的に示している。したがって、割り込み管理テーブル１１２には、トラヒック種別の代わりに、割り込み制御方法が分類識別子に関連付けて登録されていてもよい。
【００７３】
また、本実施の形態では、通信処理装置１０１は、割り込み管理テーブル１１２および振り分けテーブル１０８をそれぞれ独立に保持しているが、これら２つのテーブルの代わりに、これらのテーブルに含まれる情報を含む１つのテーブルを保持していてもよい。
【００７４】
図５は、割り込み管理テーブル１１２の他の例を示す図である。
【００７５】
この割り込み管理テーブル１１２は、分類識別子と、その分類識別子に対応する分類パラメータと、その分類識別子および分類パラメータに関連付けられたトラヒック種別とを示す。
【００７６】
通信処理装置１０１は、図５に示す割り込み管理テーブル１１２を保持する場合には、第２記憶部１０８ｍを備えず、その割り込み管理テーブル１１２を記憶している第１記憶部１１２ｍを備えている。さらに、この場合、振り分け部１０７は、振り分けテーブル１０８を参照する代わりに、割り込み管理テーブル１１２を参照することにより受信パケットのデータを分類する。
【００７７】
なお、通信処理装置１０１が割り込み管理テーブル１１２および振り分けテーブル１０８をそれぞれ独立に保持する場合でも、図５に示す割り込み管理テーブル１１２を保持していてもよい。また、この場合には、図５に示す割り込み管理テーブル１１２のうち分類識別子が省かれていてもよい。つまり、割り込み管理テーブル１１２は、分類パラメータと、その分類パラメータに関連付けられたトラヒック種別とを示す。このような割り込み管理テーブル１１２が第１記憶部１１２ｍに記憶されている場合には、振り分け部１０７は、受信パケットのデータをその分類パラメータと共に受信データ保持部１０９に転送し、転送制御部１０４は、受信パケットのデータをメインメモリ１０２へ転送完了したことを、その分類パラメータとともに割り込み制御部１１１に通知する。そして、割り込み制御部１１１は、その分類パラメータに関連付けられたトラヒック種別を割り込み管理テーブル１１２から検索し、そのトラヒック種別に定義付けされた割り込み制御方法を特定する。
【００７８】
ここで、割り込み制御部１１１で用いられる割り込み制御方法について、その詳細を以下に説明する。
【００７９】
使用される割り込み制御方法は、少なくとも以下のうち一つを含む。
（１）即時割り込み
（２）遅延割り込み（間隔制限なし）
（３）間隔制限付き遅延割り込み
（４）タイマ割り込み（処理量制限付き、または処理量制限なし）
【００８０】
なお、上記割り込み制御方法のうち、タイマ割り込みに関しては、必ずしも割り込み管理テーブル１１２で指定される必要はなく、単に、「受信に応じた割り込みは発生させない」という定義として指定してもよい。
【００８１】
タイマ割り込みは、通信処理装置１０１内の割り込み制御部１１１で実装される機能であり、予め定められた周期（タイマ時間）に割り込み信号をＣＰＵ１０３に発信する割り込み制御方法である。つまり、割り込み制御部１１１は、タイマ機能を具備し、割り込み制御方法として「タイマ割り込み」を適用する場合、ＣＰＵ１０３より設定部１１０経由で設定されたタイマ時間、あるいは、予め決められた所定のタイマ時間に基づき、周期的な割り込み信号を発信する。ここで、割り込み制御部１１１は、ＣＰＵ１０３からの指定により設定部１１０経由でタイマ割り込みのＯＮ／ＯＦＦを受け付け、周期的な割り込み信号の発信を作動あるいは停止することもできる。
【００８２】
このタイマ割り込みでは、割り込み制御部１１１の動作クロックに応じた精度の周期で発信が可能である。ただし、必ずしもその動作クロックの周期を最小単位とする必要はない。一般的に、割り込みに対するソフトウェアのドライバで実装された割り込み処理が駆動されるのは、高々数十μｓｅｃ程度のずれである。これにより、ＯＳにより実装されるタイマ機能より精度が高く、ソフトウェア処理量を低減したタイマ機能の実現が可能である。なお、タイマ割り込みは複数実装されてもよいが、タイマ割り込みを１つだけ実装してその時間単位（タイマ時間）を小さくし、ソフトウェアにより仮想的に複数のタイマを持つように制御することで代替可能である。
【００８３】
具体的に、即時割り込み、遅延割り込み、および間隔制限付き遅延割り込みのタイミングについて、図６Ａ〜図６Ｃを用いて説明する。
【００８４】
図６Ａは、割り込み制御方法「即時割り込み」のタイミングを示す図である。
【００８５】
即時割り込みは、通信処理装置１０１の転送制御部１０４において転送が完了（受信事象発生）した後、即時に割り込み制御部１１１が割り込み信号を発信する割り込み制御方法である。ここで、「即時」と記述したのは、説明の便宜上であり、実際のハードウェアの動作クロックの単位で数クロックのずれが発生することは十分許容できる範囲であり、そのずれを制限するものではない。
【００８６】
図６Ｂは、割り込み制御方法「遅延割り込み（間隔制限なし）」のタイミングを示す図である。
【００８７】
遅延割り込みは、通信処理装置１０１の転送制御部１０４において転送が完了（受信事象発生）した後、その転送完了時から予め定められた期間（遅延時間ｔ）経過したときに、割り込み制御部１１１が割り込み信号を発信する割り込み制御方法である。上述の遅延時間ｔは、割り込み管理テーブル１１２の該当する分類識別子「Ｄｅｆａｕｌｔ」で定義されるエントリに登録されていてもよく、あるいは、割り込み制御部１１１に設定部１１０から予め指定されていてもよく、あるいは、割り込み制御部１１１によって予め保有されていてもよい。仮に、受信事象発生後、その受信事象発生に対応する割り込み信号の発信までに、新たな受信事象が発生した場合には、ソフトウェアがその新たな受信事象発生を通信処理装置１０１の転送制御部１０４の管理外としなければ、その新たな受信事象発生から前述の遅延時間ｔだけ遅延して割り込み信号が発信される。
【００８８】
なお、割り込みの遅延時間ｔの精度については、即時割り込みで記載した通り、ハードウェアの動作クロックの数クロックのずれを制限するものではない。また、上述の遅延時間ｔを、割り込み管理テーブル１１２のエントリに個別に登録しておくことは、実装が複雑となるため、推奨はされない。
【００８９】
図６Ｃは、割り込み制御方法「間隔制限付き遅延割り込み」のタイミングを示す図である。
【００９０】
間隔制限付き遅延割り込みは、通信処理装置１０１の転送制御部１０４において転送が完了（受信事象発生）した後、その転送完了時から予め定められた期間（遅延時間ｔ）経過したときに、割り込み制御部１１１が割り込み信号を発信する制御方法である。間隔制限なしの遅延割り込みと異なる点は、割り込み信号と次の割り込み信号との時間間隔が遅延時間ｔ以上になることが保障されていることである。つまり、受信事象発生後、その受信事象発生に対応する割り込み信号の発信までに、新たな受信事象が発生し、ソフトウェアがその新たな受信事象発生を通信処理装置１０１の転送制御部１０４の管理外としなかった場合、割り込み制御部１１１は先の割り込み信号の発信から遅延時間ｔだけ間隔を空けて新たな割り込み信号を発信する。例えば、図６Ｃに示すように、受信事象ａの発生後、その受信事象ａの発生に対応する割り込み信号ａの発信までに新たな受信事象ｂが発生した場合、割り込み制御部１１１は先の割り込み信号ａの発信から遅延時間ｔだけ間隔を開けて新たな割り込み信号ｂを発信する。
【００９１】
この割り込み制御方法は、ｐｐｓ（Ｐａｃｋｅｔ  Ｐｅｒ  Ｓｅｃ：単位時間あたりに処理されるパケット数）制限や、ｂｐｓ（Ｂｉｔ  Ｐｅｒ  Ｓｅｃ：単位時間あたりに処理される受信データ量）制限を行なうのにソフトウェア実装が容易となり、不要な割り込み信号の発信を抑制することも可能となる。
【００９２】
設定部１１０は、割り込み管理テーブル１１２および振り分けテーブル１０８を更新する。つまり、設定部１１０は、ＣＰＵ１０３によってアプリケーションが起動すると、そのアプリケーションによって確立される通信路に応じて割り込み管理テーブル１１２および振り分けテーブル１０８を更新する。
【００９３】
図７は、アプリケーションおよび設定部１１０によるテーブル更新処理の一例を示すフローチャートである。
【００９４】
まず、アプリケーションは通信路を確立する（ステップＳ１００）。例えば、アプリケーションはソケットをオープンしたりｂｉｎｄを行なったりする。設定部１１０は、このように通信路を確立したアプリケーションから通信路情報を取得する（ステップＳ１０２）。通信路情報は、図３に示す振り分けテーブル１０８の分類パラメータであって、Ｐｒｏｔｏｃｏｌ、宛先ＩＰアドレス、送信元ポート番号および宛先ポート番号などを含む。
【００９５】
次に、設定部１１０は、その取得した通信路情報に分類識別子を割り当て、その通信路情報を分類パラメータとして分類識別子とともに振り分けテーブル１０８に登録する。さらに、設定部１１０は、その取得した通信路情報に適したトラヒック種別を特定し、特定したトラヒック種別を、その通信路情報に割り当てた分類識別子に関連付けて割り込み管理テーブル１１２に登録する（ステップＳ１０４）。なお、アプリケーションプログラムが通信路を確立したときに、その通信路に対応する分類識別子および割り込み制御方法が割り込み管理テーブル１１２に登録されていなければ、ステップＳ１０４で、その通信路に対応する分類識別子および割り込み制御方法が割り込み管理テーブル１１２に追加されることになる。
【００９６】
このように、アプリケーションプログラムは、通信処理装置１０１を介した通信路を確立し、通信路情報を通信処理装置１０１に送信することにより、通信処理装置１０１の設定部１１０に対して、通信路情報に対応する分類識別子および割り込み制御方法を割り込み管理テーブル１１２に登録させて、その割り込み管理テーブル１１２を更新させる。
【００９７】
また、設定部１１０は、割り込み制御部１１１によるタイマ割り込みのＯＮ／ＯＦＦの要求をＣＰＵ１０３から受け付け、その要求に応じて割り込み制御部１１１にタイマ割り込みを実行させたり停止させたりしてもよい。
【００９８】
また、割り込み管理テーブル１１２および振り分けテーブル１０８に登録される通信路情報として、予め決められた共通の通信路情報を保有する複数の通信路に対して適用可能な設定を登録することも可能である。これにより、例えばサーバのよく知られたポート番号として同一の値を持つ通信路に対して、共通の登録情報を参照することが可能となり、割り込み管理テーブル１１２および振り分けテーブル１０８の登録総数を抑制することが可能となる。
【００９９】
次に、割り込み制御方法を実現するためのアルゴリズムの例を図８から図１３を用いて説明する。なお、この説明においては、ハードウェアの実装において、並列処理できるところにおいても、説明の容易性から逐次実行として記述している部分もあるが、並列処理を制限するものではない。また、以下の説明では、上述の割り込み制御方法すべてを実装した形態について説明しているが、それらの一部が実装されない場合においても、容易に類推できるため説明を割愛する。
【０１００】
図８は、割り込み制御部１１１の全体的な動作である割り込み制御処理を示すフローチャートである。割り込み制御部１１１は、割り込み制御処理を実行するときには、割り込み発信制御（ステップＳ２００）と割り込み制御設定（ステップＳ２０２）とを並列に、または何れか一方の処理を実行し、その後、割り込み制御処理を終了すべきか否かを判別する（ステップＳ２０４）。ここで、割り込み制御部１１１は、終了すべきでないと判別すると（ステップＳ２０４のＮｏ）、ステップＳ２００，Ｓ２０２の処理を繰り返して実行し、終了すべきであると判別すると（ステップＳ２０４のＹｅｓ）、割り込み制御処理を終了する。
【０１０１】
図９は、図８におけるステップＳ２０２として記載された割り込み制御設定の詳細を示すフローチャートである。
【０１０２】
割り込み制御部１１１は、割り込み制御設定を行なうときには、まず、転送制御部１０４からの受信完了の通知の有無を判定する（ステップＳ２１０）。ここで、割り込み制御部１１１は、通知がないと判定すると（ステップＳ２１０のＮｏ）、割り込み制御設定を終了する。一方、割り込み制御部１１１は、通知があったと判定すると（ステップＳ２１０のＹｅｓ）、転送制御部１０４から得た分類識別子に関連付けられているトラヒック種別を割り込み管理テーブル１１２から検索する。そして、割り込み制御部１１１は、該当するトラヒック種別を見つけ出し、そのトラヒック種別に定義されている割り込み制御方法を特定する（ステップＳ２１２）。
【０１０３】
次に、割り込み制御部１１１は、ステップＳ２１２で特定した割り込み制御方法が即時割り込みであるか否かを判定する（ステップＳ２１４）。ここで、割り込み制御部１１１は、即時割り込みであると判定すると（ステップＳ２１４のＹｅｓ）、割り込み要因に受信割り込みを設定して割り込み信号を発信し（ステップＳ２１６）、割り込み制御設定を終了する。一方、割り込み制御部１１１は、ステップＳ２１４で割り込み制御方法が即時割り込みでないと判定すると（ステップＳ２１４のＮｏ）、さらに、その割り込み制御方法が遅延割り込み（間隔制限なし）であるか否かを判定する（ステップＳ２１８）。
【０１０４】
ここで、割り込み制御部１１１は、遅延割り込みであると判定すると（ステップＳ２１８のＹｅｓ）、受信事象発生に対して「遅延割り込み中」を設定し（ステップＳ２２０）、割り込み制御設定を終了する。一方、割り込み制御部１１１は、ステップＳ２１８で割り込み制御方法が遅延割り込みでないと判定すると（ステップＳ２１８のＮｏ）、さらに、その割り込み制御方法が間隔制限付き遅延割り込みであるか否かを判定する（ステップＳ２２２）。
【０１０５】
ここで、割り込み制御部１１１は、間隔制限付き遅延割り込みであると判定すると（ステップＳ２２２のＹｅｓ）、受信事象発生に対して「間隔制限付き遅延割り込み中」を設定し（ステップＳ２２４）、割り込み制御設定を終了する。一方、割り込み制御部１１１は、ステップＳ２２２で割り込み制御方法が間隔制限付き遅延割り込みでないと判定すると（ステップＳ２２２のＮｏ）、ステップＳ２２４の設定を行なうことなく割り込み制御設定を終了する。その結果、受信完了のデータはタイマ割り込みの対象として扱われる。
【０１０６】
図１０は、図８におけるステップＳ２００として記載された割り込み発信制御の詳細を示すフローチャートである。
【０１０７】
割り込み制御部１１１は、割り込み発信制御を行なうときには、まず、割り込み制御が有効か否かを判定する（ステップＳ２４０）。例えば、割り込み制御部１１１は、割り込み管理テーブル１１２が第１記憶部１１２ｍに記憶されていれば、割り込み制御が有効であると判定する。あるいは、割り込み制御部１１１は、割り込み管理テーブル１１２を参照して、その割り込み管理テーブル１１２に分類識別子およびその分類識別子のトラヒック種別が登録されていれば、割り込み制御が有効であると判定する。
【０１０８】
ここで、割り込み制御部１１１は、割り込み制御が有効であると判定すると（ステップＳ２４０のＹｅｓ）、タイマ割り込み制御（ステップＳ２４２）、遅延割り込み制御（ステップＳ２４４）、および間隔制限付き遅延割り込み制御（ステップＳ２４６）の何れかを実行し、割り込み発信制御を終了する。また、割り込み制御部１１１は、ステップＳ２４０で割り込み制御が有効でないと判定したときには（ステップＳ２４０のＮｏ）、上記ステップＳ２４２，Ｓ２４４，Ｓ２４６の何れの処理を行なうことなく、割り込み発信制御を終了する。
【０１０９】
図１１は、図１０におけるステップＳ２４２として記載されたタイマ割り込み制御の詳細な処理を示すフローチャートである。
【０１１０】
割り込み制御部１１１は、タイマ割り込み制御を行なうときには、まず、タイマ割り込みがＯＮか否かを判定する（ステップＳ２６０）。例えば、割り込み制御部１１１は、割り込み管理テーブル１１２を参照して、そこにトラヒック種別「ストリーム」または「ダウンロード」が登録されているか否かを判別することにより、タイマ割り込みがＯＮか否かを判定する。つまり、割り込み制御部１１１は、トラヒック種別「ストリーム」または「ダウンロード」が登録されていれば、タイマ割り込みがＯＮであると判定する。
【０１１１】
ここで、割り込み制御部１１１は、タイマ割り込みがＯＮであると判定すると（ステップＳ２６０のＹｅｓ）、さらに、タイマ割り込み発信条件が満了したか否かを判定する（ステップＳ２６２）。ここで、タイマ割り込み発信条件の満了とは、前回のタイマ割り込み発信条件が満了してから、所定のタイマ時間だけ経過したことを意味する。割り込み制御部１１１は、タイマ割り込み発信条件が満了したと判定すると（ステップＳ２６２のＹｅｓ）、割り込み要因にタイマ割り込みを設定して割り込み信号を発信する（ステップＳ２６４）。このとき、割り込み制御部１１１は、タイマ割り込みの発信条件が満了しているか否かを判定するための経過時間を０、あるいは次回のタイマ割り込み発信条件の満了までの時間を初期値に設定する。そして、割り込み制御部１１１は、上述の経過時間、あるいは上述の次回満了までの時間を更新する（ステップＳ２６６）。
【０１１２】
一方、割り込み制御部１１１は、ステップＳ２６０でタイマ割り込みがＯＮでないと判定したときには（ステップＳ２６０のＮｏ）、タイマ割り込み制御を終了する。また、割り込み制御部１１１は、ステップＳ２６２でタイマ割り込み発信条件が満了していないと判定したときには（ステップＳ２６２のＮｏ）、割り込み信号を発信することなく、上述の経過時間などを更新する（ステップＳ２６６）。
【０１１３】
図１２は、図１０におけるステップＳ２４４として記載された遅延割り込み制御の詳細を示すフローチャートである。
【０１１４】
割り込み制御部１１１は、遅延割り込み制御を行なうときには、まず、遅延割り込み中か否かを判定する（ステップＳ２８０）。つまり、割り込み制御部１１１は、図９に示す割り込み制御設定のステップＳ２２０の処理によって、受信事象発生に「遅延割り込み中」が設定されているか否かを判定する。
【０１１５】
ここで、割り込み制御部１１１は、遅延割り込み中であると判定すると（ステップＳ２８０のＹｅｓ）、さらに、遅延割り込み発信条件が満了したか否かを判定する（ステップＳ２８２）。ここで、遅延割り込み発信条件の満了とは、割り込みの対象となる受信事象の発生から所定の遅延時間だけ経過したことを意味する。割り込み制御部１１１は、遅延割り込み発信条件が満了したと判定すると（ステップＳ２８２のＹｅｓ）、割り込み要因に受信割り込みを設定して割り込み信号を発信する（ステップＳ２８４）。
【０１１６】
一方、割り込み制御部１１１は、遅延割り込み発信条件が満了していないと判定したときには（ステップＳ２８２のＮｏ）、割り込み信号を発信することなく、遅延割り込み発信条件が満了しているか否かを判定するための経過時間、あるいは次回の遅延割り込み発信条件の満了までの時間を更新する（ステップＳ２８６）。この経過時間などの更新は、すべての遅延割り込みの対象とされる受信事象発生に対して行なわれる。また、割り込み制御部１１１は、ステップＳ２８０で遅延割り込み中でないと判定したときには（ステップＳ２８０のＮｏ）、遅延割り込み制御を終了する。
【０１１７】
ここで、割り込み制御部１１１は、ステップＳ２８４において割り込み信号を発信した場合、次の受信事象発生に対して、次に満了する遅延割り込みの発信条件を適用する。次に遅延割り込みの対象となる受信事象発生がなければ、割り込み制御部１１１は、ステップＳ２８０で遅延割り込み中でないと判定する。また、遅延割り込みの対象となる受信事象発生が全てソフトウェアで処理された場合にも、割り込み制御部１１１は、転送制御部１０４が管理するＤｅｓｃｒｉｐｔｏｒの解析の結果、遅延割り込みを発生させる必要がないことを検知し、ステップＳ２８０で遅延割り込み中でないと判定する。
【０１１８】
図１３は、図１０におけるステップＳ２４６として記載された間隔制限付き遅延割り込み制御の詳細を示すフローチャートである。
【０１１９】
割り込み制御部１１１は、間隔制限付き遅延割り込み制御を行なうときには、まず、間隔制限付き遅延割り込み中か否かを判定する（ステップＳ３００）。つまり、割り込み制御部１１１は、図９に示す割り込み制御設定のステップＳ２２４の処理によって、受信事象発生に「間隔制限付き遅延割り込み中」が設定されているか否かを判定する。
【０１２０】
ここで、割り込み制御部１１１は、間隔制限付き遅延割り込み中であると判定すると（ステップＳ３００のＹｅｓ）、さらに、間隔制限が満了したか否かを判定する（ステップＳ３０２）。ここで、間隔制限の満了とは、割り込みの対象となる受信事象の発生から所定の遅延時間が経過し、且つ、前回の間隔制限付き遅延割り込みによる割り込み信号の発信がある場合には、その発信から上記遅延時間だけ経過したことを意味する。割り込み制御部１１１は、間隔制限が満了したと判定すると（ステップＳ３０２のＹｅｓ）、割り込み要因に受信割り込みを設定して割り込み信号を発信する（ステップＳ３０４）。
【０１２１】
一方、割り込み制御部１１１は、間隔制限が満了していないと判定したときには（ステップＳ３０２のＮｏ）、割り込み信号を発信することなく、間隔制限が満了しているか否かを判定するための経過時間、あるいは次回の間隔制限の満了までの時間を更新する（ステップＳ３０６）。また、割り込み制御部１１１は、ステップＳ３００で間隔制限付き遅延割り込み中でないと判定したときには（ステップＳ３００のＮｏ）、間隔制限付き遅延割り込み制御を終了する。
【０１２２】
ここで、割り込み制御部１１１は、ステップＳ３０４において割り込み信号を発信した場合、経過時間を０、あるいは次回の間隔制限の満了までの時間を初期値に設定する。また、間隔制限付き遅延割り込みの対象となる受信事象発生が全てソフトウェアで処理された場合、割り込み制御部１１１は、転送制御部１０４が管理するＤｅｓｃｒｉｐｔｏｒの解析の結果、間隔制限付き遅延割り込みを発生させる必要がないことを検知し、ステップＳ３００で間隔制限付き遅延割り込み中でないと判定する。
【０１２３】
なお、上記説明において、即時割り込み、遅延割り込み、間隔制限付き遅延割り込みの割り込み要因を「受信割り込み」として統一して扱う例を示したが、これらが別々であっても構わない。
【０１２４】
ここで、上述で実現される通信処理装置１０１を用いた通信機器１００を実現するために、ソフトウェアで実装する制御アルゴリズムの例を、図１４から図１６を用いて説明する。ただし、一般的なドライバソフトウェアの処理については、本発明の本質とは関係がないため割愛し、割り込み処理の説明に限定する。また、以下の説明において、判定の順序や処理の順序が必ずしも記述の通りでなくてもよい場合もあるが、同業の専門家であれば容易に類推できるため、その記述は割愛する。
【０１２５】
図１４は、ＣＰＵ１０３で実行されるソフトウェアにおける割り込みハンドラの受信処理を示すフローチャートである。
【０１２６】
ソフトウェアは、割り込み信号の割り込み要因にタイマ割り込みが設定されているか否かを判定する（ステップＳ４００）。ここで、ソフトウェアは、タイマ割り込みが設定されていると判定すると（ステップＳ４００のＹｅｓ）、タイマ割り込み処理を行なう（ステップＳ４０２）。なお、タイマ割り込み処理の詳細については、図１５を用いて後述する。一方、ソフトウェアは、タイマ割り込みが設定されていないと判定すると（ステップＳ４００のＮｏ）、または、ステップＳ４０２のタイマ割り込み処理が完了すると、さらに、割り込み信号の割り込み要因に受信割り込みが設定されているか否かを判定する（ステップＳ４０４）。
【０１２７】
ここで、ソフトウェアは、受信割り込みが設定されていると判定すると（ステップＳ４０４のＹｅｓ）、受信割り込み処理を行なう（ステップＳ４０６）。なお、受信割り込み処理の詳細については、図１６を用いて後述する。一方、ソフトウェアは、受信割り込みが設定されていないと判定すると（ステップＳ４０６）、または、ステップＳ４０６の受信割り込み処理が完了すると、他の割り込み要因に対する処理を行ない（ステップＳ４０８）、ソフトウェアにおける割り込みハンドラの受信処理を終了する。
【０１２８】
図１５は、図１４におけるステップＳ４０２のタイマ割り込み処理の詳細を示すフローチャートである。
【０１２９】
ソフトウェアは、タイマ割り込み処理では、まず、処理対象とする分類識別子を先頭（例えば１）に初期化する（ステップＳ４２０）。次に、ソフトウェアは、処理対象の分類識別子（初期値は分類識別子１）に対応するデータ（以降、分類対象という）がタイマ割り込み対象であるか否かを判定する（ステップＳ４２２）。なお、転送制御部１０４が管理するＤｅｓｃｒｉｐｔｏｒが分類識別子ごとに独立して管理されている場合、その管理番号で分類識別子を識別可能であるため、ソフトウェアによるステップＳ４２２の判定の実現が容易となる。
【０１３０】
ここで、ソフトウェアは、分類対象がタイマ割り込み対象であると判定すると（ステップＳ４２２のＹｅｓ）、さらに、分類対象が帯域幅制限対象（処理量制限付きタイマ割り込みの対象）であるか否かを判定する（ステップＳ４２４）。ソフトウェアは、分類対象が帯域幅制限対象であると判定すると（ステップＳ４２４のＹｅｓ）、通信処理装置１０１からメインメモリ１０２に転送された上述の分類対象に該当する受信パケットのうち、最大Ｎ個の受信パケットを受信処理する。ここで、Ｎ個とは、予め決められた値であり、通信機器１００または通信機器１００を含むシステムで一意であってもよいし、分類識別子毎に異なる値であってもよい。
【０１３１】
一方、ソフトウェアは、分類対象が帯域幅制限対象でないと判定すると（ステップＳ４２４のＮｏ）、通信処理装置１０１からメインメモリ１０２に転送された上述の分類対象に該当する全ての受信パケットを受信処理する（ステップＳ４２８）。また、ソフトウェアは、ステップＳ４２６，Ｓ４２８の受信処理完了後、または、ステップＳ４２２で分類対象がタイマ割り込み対象でないと判定したときには（ステップＳ４２２のＮｏ）、すべての分類識別子に対して上述の処理を行なったか否かを判定する（ステップＳ４３０）。ここで、ソフトウェアは、処理を行なったと判定すると（ステップＳ４３０のＹｅｓ）、タイマ割り込み処理を終了する。一方、ソフトウェアは、処理を行なっていないと判定すると（ステップＳ４３０のＮｏ）、分類識別子をインクリメントして（例えば１進める）（ステップＳ４３２）、ステップＳ４２２からの処理を繰り返し実行する。
【０１３２】
図１６は、図１４におけるステップＳ４０６の受信割り込み処理の詳細を示すフローチャートである。
【０１３３】
ソフトウェアは、受信割り込み処理では、まず、非優先パケットのみの受信モードであるか否かを判定する（ステップＳ４４０）。ここで、非優先パケットのみの受信モードとは、以下のいずれかの条件を満たす場合のモードである。
（１）トラヒック種別「非優先」だけが割り込み管理テーブル１１２に登録されている。つまり、遅延割り込みあるいは間隔制限付き遅延割り込みで処理されるデータの分類識別子（例えば、「Ｄｅｆａｕｌｔ」）以外の分類識別子が割り込み管理テーブル１１２に登録されていない。
（２）トラヒック種別「ストリーム」が割り込み管理テーブル１１２に登録されている、言い換えれば、タイマ割り込みにより処理されるデータの分類識別子が割り込み管理テーブル１１２に登録されているが、予め決められた所定の期間、そのデータの受信が転送制御部１０４において行なわれなかった。
【０１３４】
ソフトウェアは、ステップＳ４４０で非優先パケットのみの受信モードであると判定すると（ステップＳ４４０のＹｅｓ）、通信処理装置１０１からメインメモリ１０２に転送された全ての受信パケットを受信処理し（ステップＳ４４２）、受信割り込み処理を終了する。一方、ソフトウェアは、ステップＳ４４０で非優先パケットのみの受信モードでないと判定すると（ステップＳ４４０のＮｏ）、処理対象とする分類識別子を先頭（例えば１）に初期化する（ステップＳ４４４）。次に、ソフトウェアは、分類対象（初期化時では、分類識別子１に対応するデータ）が即時割り込み対象であるか否かを判定する（ステップＳ４４６）。なお、転送制御部１０４が管理するＤｅｓｃｒｉｐｔｏｒが分類識別子ごとに独立して管理されている場合、その管理番号で分類識別子を識別可能であるため、ソフトウェアによるステップＳ４４６の判定の実現が容易となる。
【０１３５】
ここで、ソフトウェアは、分類対象が即時割り込み対象であると判定すると（ステップＳ４４６のＹｅｓ）、通信処理装置１０１からメインメモリ１０２に転送された上述の分類対象に該当する、すなわち即時割り込み対象に該当する全ての受信パケットを受信処理する（ステップＳ４４８）。一方、ソフトウェアは、分類対象が即時割り込み対象でないと判定すると（ステップＳ４４６のＮｏ）、遅延割り込みあるいは間隔制限付き遅延割り込みで処理される全ての受信パケット、すなわち全ての非優先パケットのうち、最大Ｍ個の受信パケットを受信処理する（ステップＳ４５０）。ここで、Ｍ個とは、予め決められた値であり、通信機器１００または通信機器１００を含むシステムで一意であってもよいし、分類識別子毎に異なる値であってもよく、前述のＮ個と同一であっても異なる値でもよい。
【０１３６】
次に、ソフトウェアは、ステップＳ４４８，Ｓ４５０の受信処理完了後、すべての分類識別子に対して上述の処理を行なったか否かを判定する（ステップＳ４５２）。ここで、ソフトウェアは、処理を行なったと判定すると（ステップＳ４５２のＹｅｓ）、受信割り込み処理を終了する。一方、ソフトウェアは、処理を行なっていないと判定すると（ステップＳ４５２のＮｏ）、分類識別子をインクリメントして（例えば１進める）（ステップＳ４５４）、ステップＳ４４６からの処理を繰り返し実行する。
【０１３７】
以上のように、本実施の形態における通信処理装置１０１は、受信パケットの分類パラメータに応じて、
（１）即時割り込み
（２）遅延割り込み
（３）間隔制限付き遅延割り込み
（４）タイマ割り込み
を実現する。さらに、通信処理装置１０１は、タイマ割り込みで処理される分類の受信パケットに対し、帯域幅制限対象とそれ以外に分類して処理することで、
（１）即時性の高い通信
（２）非優先的に処理される通信
（３）非優先的に処理される通信のｐｐｓ制限
（４）帯域幅制限対象となる通信
（５）映像受信のように、デコーダにおける受信レートの制限により、受信レートが自動的に制御されるため、受信パケットを無制限に処理すべき通信を実現する。
【０１３８】
以上、本発明に係る通信処理装置および通信機器について、上記実施の形態を用いて説明したが、本発明はこれらに限定されるものではない。
【０１３９】
例えば、上記実施の形態では、転送制御部１０４は、受信事象発生と、その受信事象発生に対応する分類識別子とを割り込み制御部１１１に通知したが、受信パケット長など、割り込み管理テーブル１１２で分類定義されていない情報も合わせて通知してもよい。この情報は、振り分け部１０７によって分類された受信パケットに関するパケット関連情報である。この場合には、割り込み制御部１１１は、割り込み管理テーブル１１２において受信パケットの分類識別子に関連付けられている割り込み制御方法と上述のパケット関連情報とに応じた他の割り込み制御方法を特定し、他の割り込み制御方法で割り込み信号を発信することができる。その結果、受信事象発生に対してより適切な割り込み制御方法で割り込み信号を発信することができる。例えば、パケット長が所定の長さより短い受信パケットや、ＴＣＰのＳＹＮパケットに対して、強制的に間隔制限付き遅延割り込みを適用するなどにより、ＤｏＳ（Denial of Service）攻撃への対策が可能となる。また、転送制御部１０４は、分類識別子毎に管理されるＤｅｓｃｒｉｐｔｏｒが全てソフトウェアで処理されたことを検知した場合、割り込み制御部１１１に通知する。これによって、不要な割り込みを抑制することが可能となる。なお、割り込み制御部１１１がＤｅｓｃｒｉｐｔｏｒを検索して同様の処理を行なってもよい。
【０１４０】
また、設定部１１０は、分類識別子とその分類識別子に関連付けられたトラヒック種別（割り込み制御方法）との組み合わせを１つまたは複数個だけ、割り込み管理テーブル１１２に登録し、割り込み制御部１１１は、割り込み管理テーブル１１２に登録されている１つまたは複数個の組み合わせが、予め定められた組み合わせである場合には、割り込み管理テーブル１１２において、受信パケットの分類識別子に関連付けられている割り込み制御方法と異なる、予め定められた他の割り込み制御方法で割り込み信号を出力してもよい。例えば、割り込み制御部１１１は、割り込み管理テーブル１１２に遅延割り込みが割り込み制御方法として１つだけ登録されている場合には、即時割り込み方法で割り込み信号を出力してもよい。これにより、遅延割り込みの対象となるパケットの受信処理のスループットを向上することができる。
【０１４１】
また、転送制御部１０４は、メインメモリ１０２との間でパケットのデータを転送するため、転送制御部１０４が用いるＤｅｓｃｒｉｐｔｏｒで割り込み制御方法を指定してもよい。この場合、パケット毎の割り込み制御の変更が可能となる。
【０１４２】
また、上記実施の形態における通信処理装置１０１は、単体のＬＳＩとして実装されてもよいし、半導体ＩＰコアとして実装され、ＳｏＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）などに内蔵実装されてもよい。つまり、ブロック図（図１など）の各機能ブロックは典型的には集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い。（例えばメモリ以外の機能ブロックが１チップ化されていても良い。）ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０１４３】
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサ を利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。 また、各機能ブロックのうち、符号化または復号化の対象となるデータを格納する手段だけ１チップ化せずに別構成としても良い。
【０１４４】
また、上記実施の形態における通信処理装置１０１は、より転送効率を高くすることを可能とするＤｅｓｃｒｉｐｔｏｒを用いたＤＭＡ（Direct Memory Access）を利用する転送制御部１０４を備えた。しかし、本発明は、Ｄｅｓｃｒｉｐｔｏｒを用いたＤＭＡを使用した場合だけに実現できるものではなく、ＤＭＡを用いずに、パケットの受信の都度、プログラムＩ／Ｏによる転送を行なう場合においても実現できることは、同業の専門家であれば、容易に類推可能である。
【０１４５】
また、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【０１４６】
本発明にかかる通信処理装置、通信処理方法、およびその通信処理装置を搭載した通信機器は、家電などの比較的低い処理資源を有する装置において適切な通信機能を実現することができ、特に、通信帯域幅がアプリケーションの品質に重大な影響を与える通信を、他の通信と混在して行なう場合に有用であって、例えば、テレビ受像機、レコーダ、録画再生装置、セットトップボックス、またはＩＰ（Internet Protocol）通信装置などに適用することができる。
【符号の説明】
【０１４７】
１００    通信機器
１０１    通信処理装置
１０２    メインメモリ
１０３    ＣＰＵ
１０４    転送制御部
１０５    送信データ保持部
１０６    ＭＡＣ部
１０７    振り分け部
１０８    振り分けテーブル
１０８ｍ  第２記憶部
１０９    受信データ保持部
１１０    設定部
１１１    割り込み制御部
１１２    割り込み管理テーブル
１１２ｍ  第１記憶部
【図１】
2009141992.tif 000003
【図２】
2009141992.tif 000004
【図３】
2009141992.tif 000005
【図４】
2009141992.tif 000006
【図５】
2009141992.tif 000007
【図６Ａ】
2009141992.tif 000008
【図６Ｂ】
2009141992.tif 000009
【図６Ｃ】
2009141992.tif 000010
【図７】
2009141992.tif 000011
【図８】
2009141992.tif 000012
【図９】
2009141992.tif 000013
【図１０】
2009141992.tif 000014
【図１１】
2009141992.tif 000015
【図１２】
2009141992.tif 000016
【図１３】
2009141992.tif 000017
【図１４】
2009141992.tif 000018
【図１５】
2009141992.tif 000019
【図１６】
2009141992.tif 000020
【図１７】
2009141992.tif 000021
【図１８】
2009141992.tif 000022
【手続補正書】
【提出日】平成22年9月21日(2010.9.21)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばパケットなどのデータを受信して処理する通信処理装置およびその通信処理方法に関し、特に、ＩＰ（Internet Protocol）通信などにおけるパケットの割り込み制御を行なう通信処理装置およびその通信処理方法に関する。
【背景技術】
【０００２】
従来、ＩＰ通信などにおいて割り込み制御を行なう通信機器が提供されている。
【０００３】
図１７は、割り込み制御を行なう一般的な通信機器の構成を示すブロック図である。
【０００４】
一般的に、通信機器２０００は、図１７に示すように、通信処理装置２２０１、メインメモリ２１０２、およびＣＰＵ（Control Processing Unit）２１０３などの各構成要素を具備している。これらの構成要素は、システムバス２２０２を介して接続され、これらの構成要素の動作は、ＣＰＵ２１０３上で動作するソフトウェアによって制御される。
【０００５】
このような通信機器２０００に具備される通信処理装置２２０１が割り込み機能を持つことは一般的である。割り込み機能は、通信処理装置２２０１からＣＰＵ２１０３に対する信号（割り込み信号）の発信によって実現される。この割り込み機能は、通信処理装置２２０１における様々な事象の発生を、即時にＣＰＵ２１０３に通知し、ソフトウェアによる対応する処理を迅速に行なうことを可能とする。その事象としては、例えば、通信データ（パケット）の受信や、パケットの送信完了、異常状態の発生などが含まれる。
【０００６】
従来、パケットの受信に対する割り込み信号の発信方法には幾つかの方法がある。一つ目の方法は、一回のパケット受信毎に割り込み信号を発信する方法である。二つ目の方法は、通信処理装置２２０１でパケットを受信した後、ソフトウェアにより処理されることで通信処理装置２２０１の管理外となるパケットが、通信処理装置２２０１の内部に存在しなくなるまで割り込み信号を発信する方法などがある。二つ目の方法では、通信処理装置２２０１の管理下となる受信パケットが存在する限り、ソフトウェアに対して割り込みが発生することとなる（ソフトウェアは一時的に割り込みを停止して処理を継続する）。さらには、三つ目の方法として、Ｎａｔｉｏｎａｌ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ（登録商標）社のＤＰ８３８１６に見られるように、通信処理装置２２０１におけるパケットの受信から、所定の時間だけ遅延させて割り込み信号を発信する方法（遅延割り込み）もある。遅延割り込みは、長さの短いパケットを頻繁に受信するような事象が発生した場合において、割り込み処理に伴うソフトウェア処理量を軽減する方法として有用である。一方、このような割り込み処理に伴うソフトウェア処理量を軽減するために、基本ソフトウェアであるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が持つタイマ機能を用いて、定期的に通信処理装置２２０１の状態を監視して制御することで、割り込み機能を受信用に用いないことも提案されている。しかしながら、このソフトウェアによるタイマ機能は、その精度が荒く（数十ｍｓｅｃオーダ）、また、そのタイマ機能自体がソフトウェア処理量を増大させるため、ＣＰＵの処理能力が低い家電向けのＣＰＵなどでは、必ずしも好ましくない。また、パケットの受信は、外部から発生する事象のため、タイマ機能により通信処理装置２２０１におけるパケットの受信を確認するためには、常にタイマ機能を有効にしておく必要があり、不要なソフトウェア処理負荷の増大を招く。
【０００７】
また、通信処理装置２２０１で受信される複数のパケットには、様々なアプリケーションプログラム（以下、単にアプリケーションという）に属するパケットが混在することが一般的である。特に、汎用的なＩＰ通信を用いる場合、ＨＴＴＰ、ＦＴＰ、またはＳＭＴＰ／ＰＯＰ３（メール機能）などの異なるセションプロトコルを用いるアプリケーションに属するパケットが混在することがある。また、同じＨＴＴＰを用いるアプリケーションの中でも、Ｗｅｂブラウジングから映像のストリーミングまで様々な処理を行なうアプリケーションがあるため、その受信パケットの量や即時性において、様々な要件が混在することがある。また、トランスポート層としてＴＣＰ（Transmission Control Protocol）を用いる場合、その転送性能となるスループットは、転送端末間における処理遅延に影響されるため、受信応答となるＡＣＫ受信は、早期に処理されることが好ましい。
【０００８】
このように、一つの通信処理装置２２０１で扱う受信パケットに対して、様々な要件が混在することから、通信処理装置２２０１の中で受信パケットを分類して管理し、ソフトウェアにおける処理を容易とする通信機器が提案されている（例えば、特許文献１参照）。
【０００９】
上記特許文献１の通信機器においては、受信パケットを転送制御部（転送制御部の詳細については後述する）が管理および制御するために用いる転送管理識別子（Ｄｅｓｃｒｉｐｔｏｒ）に対して、パケット分類個別のＲｉｎｇを用いる。この特許文献１の通信機器は、メインメモリに転送された受信パケットに対して、ＴＣＰ／ＩＰスタックなどの汎用的な階層処理を行なわず、直接各アプリケーションが上記Ｒｉｎｇを扱うことを前提に、受信したパケットのメインメモリ上でのコピー回数を軽減することを目的としている。
【００１０】
図１８は、上記特許文献１の通信機器２０００を本発明と比較するために記述したブロック図である。上記特許文献１の通信機器２０００の通信処理装置２２０１は、転送制御部２３０４、送信データ保持部２１０５、ＭＡＣ部２１０６、振り分け部２１０７、振り分けテーブル２１０８、受信データ保持部２１０９、設定部２３１０、および割り込み制御部２３１１を具備する。
【００１１】
転送制御部２３０４は、その送信処理として、メインメモリ２１０２との間のパケットのデータの転送を管理および制御して送信パケットのデータを送信データ保持部２１０５に転送する。さらに、転送制御部２３０４は、その受信処理として、受信パケットのデータを受信データ保持部２１０９からメインメモリ２１０２に転送する。送信データ保持部２１０５は、転送制御部２３０４から転送された送信パケットのデータをＭＡＣ部２１０６に転送する。ＭＡＣ部２１０６は、送信データ保持部２１０５から転送された送信パケットのデータに対して、所定のＭＡＣ（Media Access Control）規格に準ずる送信処理を行なうとともに、所定のＭＡＣ規格に準ずる受信処理を行なって振り分け部２１０７に受信パケットのデータを転送する。なお、ＭＡＣ部２１０６から接続される外部ブロックは、物理層に依存し、通信機器２０００のネットワークと接続されるＩ／Ｆ（インターフェース）である。
【００１２】
振り分け部２１０７は、ＭＡＣ部２１０６から転送された受信パケットのデータを、振り分けテーブル２１０８を参照して分類し、受信データ保持部２１０９に分類情報とともに転送する。受信データ保持部２１０９は、振り分け部２１０７から転送された受信パケットのデータと分類情報を関連付けて保持する。転送制御部２３０４は、その受信処理として、受信データ保持部２１０９に保持された受信パケットのデータを、関連付けられた分類情報に基づいてメインメモリ２１０２に転送する。この時、転送制御部２３０４は、受信パケットのデータをメインメモリ２１０２へ転送完了したことを割り込み制御部２３１１に通知し、割り込み制御部２３１１は、転送制御部２３０４からの通知により、ＣＰＵ２１０３に割り込み信号を発信する。また、設定部２３１０は、ＣＰＵ２１０３からの振り分けテーブル２１０８に対する設定変更要求を受け付け、振り分けテーブル２１０８の変更を行なう。
【００１３】
また、受信パケットの種別に応じた方法でその受信パケットに対する割り込み制御を行なう通信機器も提案されている（例えば、特許文献２参照）。特許文献２の通信機器は、受信パケットの種別を解析し、その受信パケットがリアルタイムパケットか否かを判別してバッファに転送する。そして、通信機器は、リアルタイムパケットであると判別したときには、割り込み信号を即時にＣＰＵに発信し、リアルタイムパケットでないと判別したときには、受信パケットを受信してから一定時間経過した後、または、バッファに一定量のデータが蓄積された後に、割り込み信号をＣＰＵに発信する。つまり、上記特許文献２の通信機器は、受信パケットの種別に応じて、その受信パケットに対する割り込み制御方法を切り替えている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特許第２７２３９７０号公報
【特許文献２】特開２００８−５９５７７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、上記特許文献１および特許文献２の通信機器を含む従来の通信機器では、ソフトウェアの受信処理負荷を抑えつつアプリケーションの処理に応じた割り込みを適宜行なうことができないという問題がある。
【００１６】
つまり、従来の通信機器では、以下５点の状況がある。
（ａ）特許文献１の通信機器では、受信パケットの分類それぞれに対して、異なる要件を満たす割り込み制御を行なうことができない。
（ｂ）遅延割り込みはソフトウェアの処理方法によっては割り込み処理量の低減に繋がらないリスクが存在する。
（ｃ）ＯＳが持つタイマ機能のみにより受信処理を管理する場合、まったくパケットの受信が発生しなくてもタイマ機能を動作させる必要があるため、不要なソフトウェア処理量を増大させる。
（ｄ）ＯＳが持つタイマ機能を用いる場合、その精度が荒く（数十ｍｓｅｃオーダ）、また、そのタイマ機能自体がソフトウェア処理量を増大させる。タイマ精度としては、例えば１００Ｍｂｐｓの能力を持つＥｔｈｅｒｎｅｔ（登録商標）の通信においては、数百μｓｅｃ以下であることが求められる。また、タイマ機能による受信制御は、即時性を有する通信に対しても、その処理を遅延させることとなる。
（ｅ）特許文献２の通信機器では、割り込み制御方法が受信パケットの種別に応じて予め定められている。
【００１７】
その結果、家電にネット機能を搭載する場合などに用いられる家電向けのＣＰＵなど、比較的処理能力の低いＣＰＵを用いる場合において、以下の４点の課題がある。
（１）パケットの受信ごとに即時に割り込み信号を発信する割り込み制御方法では、単位時間あたりの大量のパケットの受信による割り込み処理のためにソフトウェア処理量が増大し、その結果、ＣＰＵ負荷の増大により、通信機器本来のアプリケーションの実行に支障を招くリスクが増大する。
（２）ＯＳが持つタイマ機能を用いる受信制御方法では、精度の高い（数百μｓｅｃ以下）タイマを実現することは困難である。
（３）タイマ機能による受信制御方法では、即時性を有する通信に対して、処理が遅延され、その結果、スループットの低下を招くリスクが増大する。
（４）受信パケットの種別に応じて割り込み制御方法を切り替えても、受信パケットの種別のそれぞれに対して割り込み制御方法が固定されているため、アプリケーションの処理（映像データの受信再生など）に求められる要件に応じた割り込みを適宜行なうことができない。
【００１８】
そこで、本発明は、かかる問題に鑑みてなされたものであって、ソフトウェアの受信処理負荷を抑えつつアプリケーションの処理に応じた割り込みを適宜行なうことができる通信処理装置およびその通信処理装置を備えた通信機器を提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記目的を達成するために、本発明の通信処理装置は、パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置であって、パケットを受信する受信部と、前記受信部で受信されるパケットの種類に応じて、複数の分類種別のうちの何れか１つの分類種別に前記パケットを分類する振り分け部と、前記受信部によって受信されて前記振り分け部によって分類されたパケットのデータを前記メモリに転送する転送制御部と、分類種別と、割り込み信号を出力するタイミングに関する割り込み制御方法とを関連付けて示す割り込み管理テーブルを記憶している記憶部と、前記割り込み管理テーブルを参照することにより、前記振り分け部によって分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で前記割り込み信号を前記処理ユニットに出力する割り込み制御部と、前記処理ユニットで起動するアプリケーションプログラムからの指示に応じて、前記割り込み管理テーブルに分類種別および割り込み制御方法を登録することにより、当該割り込み管理テーブルを更新する設定部とを備える。
【００２０】
これにより、割り込み管理テーブルにおいて、受信されるパケットの種類または分類種別に関連付けられた割り込み制御方法が、そのパケットに対して適用され、その割り込み制御方法で割り込み信号が処理ユニット（例えばＣＰＵ）に出力される。したがって、パケットの分類種別に対して、その分類種別のパケットを受信処理するために適切とされる割り込み制御方法を割り込み管理テーブルに登録しておけば、そのパケットの受信処理に必要とされる即時性などの要件を満たしつつ、そのパケットに対して必要以上の発信頻度で割り込み信号を出力することを防ぐことができる。つまり、処理ユニットにおいてメモリに転送されたパケットのデータを処理しようとするソフトウェアの受信処理負担を適切に抑えることができる。例えば、パケットの分類種別ごとに異なる割り込み制御方法を用いることができるため、即時性の高いパケットに対する割り込み制御方法として即時割り込み方法を用いたり、即時性が低く、ある程度まとめて受信処理をすればよいパケットに対する割り込み制御方法としてタイマ割り込み方法を用いたりすることにより、パケットの分類種別ごとに最適な受信制御が実現される。
【００２１】
さらに、処理ユニットで起動するアプリケーションプログラムからの指示に応じて、分類種別と割り込み制御方法とが関連付けられて割り込み管理テーブルに登録されるため、アプリケーションプログラムは、自らが実行しようとする通信に用いられるパケットの分類種別と、そのパケットを用いた処理に求められる要件を満たすような割り込み制御方法とを割り込み管理テーブルに登録することができる。つまり、割り込み管理テーブルは書き換え可能であり、通信処理装置の初期化時あるいは動作中に変更されるため、起動するアプリケーションプログラムの変更などに柔軟な運用が可能となる。言い換えれば、割り込み管理テーブルに定義される割り込み制御方法を動的に変更できるため、複数のアプリケーションプログラムが動作または停止するような通信機器に対して容易に適用可能となる。その結果、ソフトウェアの受信処理負荷を抑えつつアプリケーションプログラムの処理に応じた割り込みを適宜行なうことができ、適切に受信処理を行なうことができる。
【００２２】
また、前記設定部は、前記割り込み管理テーブルに示されていない分類種別のパケットが前記受信部によって受信される場合、前記アプリケーションプログラムからの指示に応じて、前記分類種別と、前記パケットに応じた割り込み制御方法とを関連付けて前記割り込み管理テーブルに追加することにより、当該割り込み管理テーブルを更新してもよい。
【００２３】
これにより、新たな通信路が確立されるときに、その通信路に応じたパケットの分類種別と割り込み制御方法とが割り込み管理テーブルに登録されていなくても、そのアプリケーションプログラムの指示に応じてそれらが登録されるため、新たな通信路を含む複数の通信路のそれぞれに対して適切な割り込み制御を行なうことができる。
【００２４】
また、前記設定部は、前記アプリケーションプログラムからの指示として、当該アプリケーションプログラムによって確立された通信路を特定するための通信路情報を取得し、前記通信路情報に応じた分類種別および割り込み制御方法を前記割り込み管理テーブルに登録してもよい。
【００２５】
これにより、通信路情報に応じた割り込み制御方法が割り込み管理テーブルに登録されるため、その通信路に応じたより適切な割り込み制御方法を登録することができる。
【００２６】
また、前記設定部は、前記割り込み管理テーブルに、第１の分類種別および第１の割り込み制御方法を関連付けて登録するとともに、第２の分類種別および第２の割り込み制御方法を関連付けて登録し、前記割り込み制御部は、前記振り分け部によって分類されるパケットの分類種別が第１の分類種別である場合には、前記割り込み管理テーブルにおいて当該第１の分類種別に関連付けられた第１の割り込み制御方法で、割り込み信号を前記処理ユニットに出力し、前記振り分け部によって分類されるパケットの分類種別が第２の分類種別である場合には、前記割り込み管理テーブルにおいて当該第２の分類種別に関連付けられた第２の割り込み制御方法で、割り込み信号を前記処理ユニットに出力してもよい。
【００２７】
これにより、即時性に対して互いに異なる要件を有する第１の分類種別のパケットと第２の分類種別のパケットとが混在する環境でも、それぞれに適切な割り込み制御方法で割り込み信号を出力することができるため、何れの分類種別のパケットに対しても即時に割り込み信号を出力する割り込み制御方法が用いられる場合と比べて、割り込み信号の発信頻度を適切に抑制することができる。また、パケットの分類種別ごとに異なる割り込み制御方法を用いることができるため、即時性の高いパケットに対する割り込み制御方法として即時割り込み方法を用いたり、即時性が低く、ある程度まとめて受信処理をすればよいパケットに対する割り込み制御方法としてタイマ割り込み方法を用いたりすることにより、パケットの分類種別ごとに最適な受信制御が実現される。
【００２８】
ここで例えば、振り分け部においてパケットを分類する際に用いられる分類識別子（Ｒｉｎｇ識別子）を分類種別に用い、メモリとの間でパケットのデータを転送するために転送制御部が用いるＤｅｓｃｒｉｐｔｏｒが分類識別子ごとに独立して管理されている場合には、転送制御において用いられる分類と同じ分類で割り込み制御を行なうことができるため、通信処理装置を制御するソフトウェアは容易に割り込み制御とパケットの分類とを関連付けて制御することができ、ソフトウェアにより再度分類を判定するなどの処理負荷の増大を抑制することができる。
【００２９】
また、前記設定部は、分類種別と当該分類種別に関連付けられた割り込み制御方法との組み合わせを１つまたは複数個だけ、前記割り込み管理テーブルに登録し、前記割り込み制御部は、前記割り込み管理テーブルに登録されている１つまたは複数個の組み合わせが、予め定められた組み合わせである場合には、前記割り込み管理テーブルにおいて、前記振り分け部によって分類されるパケットの分類種別に関連付けられている割り込み制御方法と異なる、予め定められた他の割り込み制御方法で割り込み信号を出力してもよい。例えば、前記割り込み制御部は、前記割り込み管理テーブルに、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として１つだけ登録されている場合には、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法で割り込み信号を出力する。
【００３０】
例えば、割り込み管理テーブルに割り込み制御方法として、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法と遅延割り込み方法とが登録されている場合には、遅延割り込み方法に対応する分類種別のパケットに対する処理よりも、タイマ割り込み方法に対応する分類種別のパケットに対する処理を優先させてソフトウェアに実行させることができ、その結果、それぞれのパケットのデータの処理をソフトウェアに適切に実行させることができる。しかし、割り込み管理テーブルに割り込み制御方法として遅延割り込み方法だけが登録されている場合にまで、割り込み信号の出力を遅延させる必要はない。そこで、本発明では、割り込み管理テーブルに割り込み制御方法として遅延割り込み方法だけが登録されている場合には、遅延割り込み方法ではなく即時割り込み方法で割り込み信号が出力されるため、通信状況に応じて、遅延割り込み方法でも受信処理可能な分類種別のパケットに対するスループットを向上することができる。
【００３１】
また、前記設定部は、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過し、且つ直前の割り込み信号が出力されてから前記予め定められた時間経過したときに割り込み信号を出力する間隔制限付き遅延割り込み方法、および、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法の中から、１つまたは複数の方法を前記割り込み制御方法として前記割り込み管理テーブルに登録してもよい。
【００３２】
これにより、割り込み信号の発信頻度を抑制しつつ、即時性を有する通信に対するパケットの処理を遅延することなく処理することが可能となる。また、タイマ割り込み方法では、ＯＳにより制御されるタイマ機能と比較してタイマ時間の精度が高いため（数百μｓｅｃ以下）、大量に送信されるＨＤ（High Definition）画質の映像データの受信処理でも定期的に適切に行なうことができ、ＤｏＳ（Denial of Service）攻撃対策の精度を高めることが可能となる。さらに、割り込み制御部が割り込み信号を出力することで、ＯＳがタイマ機能として制御を行なう必要がないため、ソフトウェア処理量の少ないタイマ機能を提供することができる。また、即時性が必要とされず、ある程度まとめて受信処理をすればよいパケットに対しては、割り込み信号の発信頻度を抑えて、ソフトウェアの受信処理負担を軽減することができる。また、間隔制限付き遅延割り込み方法では、割り込み頻度を所定の間隔に制限することが可能となり、ソフトウェアによる処理負荷を抑制することがさらに容易になる。なお、間隔制限付き遅延割り込み方法による１回の割り込みに対する受信処理量を制限してもよく、この場合には、受信量制限（ｐｐｓ制限、ｂｐｓ制限）を容易に行なうことができる。また、即時割り込み方法では、間隔制限付き遅延割り込み方法のように即時性を犠牲にすることなく、即時性の高い処理が要求されるパケットに対して適切に受信処理を行なうことができる。また、即時割り込み方法、遅延割り込み方法、間隔制限付き遅延割り込み方法、およびタイマ割り込み方法が割り込み管理テーブルに登録されれば、多種多様な分類種別のパケットが同時期に受信されても、それらのパケットに適切な割り込み制御方法で割り込み信号を出力することができる。
【００３３】
また、前記転送制御部は、さらに、前記振り分け部によって分類されたパケットに関するパケット関連情報を前記割り込み制御部に通知し、前記割り込み制御部は、前記転送制御部から前記パケット関連情報の通知を受けたときには、前記割り込み管理テーブルにおいて前記パケットの分類種別に関連付けられている割り込み制御方法と前記パケット関連情報とに応じた他の割り込み制御方法を特定し、前記他の割り込み制御方法で前記割り込み信号を出力してもよい。
【００３４】
例えば、受信データ長や、特定のプロトコルの特定の情報などがパケット関連情報として割り込み制御部に通知される。これにより、そのようなパケット関連情報に応じて割り込み制御方法が特定されるため、例えば、ＤｏＳ攻撃などに対抗する割り込み制御方法に変更することができる。つまり、ＤｏＳ攻撃対策を容易とすることができる。例えば、ＤｏＳ攻撃に対して、受信したパケットを一律に廃棄するのではなく、割り込み制御方法を切り替えることでソフトウェア処理量を低減しながら、本来のアプリケーションプログラムの処理に支障が出ないように制御することが可能となる。
【００３５】
また、上記目的を達成するために、本発明の通信処理装置の制御方法は、パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置を制御する方法であって、前記通信処理装置は、割り込み管理テーブルを保持し、パケットを受信して当該パケットのデータをメモリに転送し、前記割り込み管理テーブルにおいて受信されるパケットの種別に関連付けられている割り込み制御方法で、前記パケットに対する割り込み信号を出力し、前記通信処理装置を制御する方法では、前記通信処理装置を介した通信路を確立し、前記通信路を特定するための通信路情報を前記通信処理装置に送信することにより、前記通信処理装置に対して、前記通信路情報に対応するパケットの種別および割り込み制御方法を前記割り込み管理テーブルに登録させて、当該割り込み管理テーブルを更新させる。
【００３６】
これにより、例えばアプリケーションプログラムによって確立される通信路に対応するパケットの種別および割り込み制御方法が割り込み管理テーブルに登録されるため、通信制御装置に対して、アプリケーションプログラムの処理に応じた割り込み信号の出力を適宜実行させることができる。
【００３７】
また、前記割り込み信号が出力される要因には、パケットのデータが前記メモリに転送されたことを要因とする受信割り込み要因、または、予め定められた期間が経過したことを要因とするタイマ割り込み要因があり、前記通信処理装置の制御方法では、さらに、前記割り込み信号を取得し、取得した割り込み信号が前記受信割り込み要因によって出力されたか、前記タイマ割り込み要因によって出力されたかを判定し、前記受信割り込み要因によって出力されたと判定したときには、第１の受信処理方法により前記メモリに転送されたデータを処理し、前記タイマ割り込み要因によって出力されたと判定したときには、第１の受信処理方法と異なる第２の受信処理方法により前記メモリに転送されたデータを処理してもよい。
【００３８】
これにより、割り込み信号が出力される要因が受信割り込み要因であるか、タイマ割り込み要因であるかに応じて、メモリに転送されたデータに対する受信処理方法が第１の受信処理方法と第２の受信処理方法とで切り替えられるため、それらの要因ごとに適切な受信処理を行なうことができる。
【００３９】
また、前記割り込み管理テーブルには、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法が前記割り込み制御方法として登録されてあり、前記第２の受信処理方法により前記メモリに転送されたデータを処理するときには、前記メモリに転送された前記タイマ割り込み方法の対象とされるパケットのデータの一群に対する処理が制限されるべきか否かを判定し、制限されるべきでないと判定したときには、前記一群の全てのパケットのデータを処理し、制限されるべきと判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理してもよい。
【００４０】
例えば、タイマ割り込み要因で割り込み信号が出力されるようなパケットでも、ストリームのパケットのように、受信時に広い帯域幅が保障されるべきパケットと、大量データダウンロードのパケットのように、そのような保障を必要としないが大量に受信されて処理されるべきパケットとがある。このようなパケットが混在するような場合には、ストリームのパケットについては、メモリに転送されたパケットのデータが１回の割り込みで全て処理されるべきであり、大量データダウンロードのパケットについては、ストリームのパケットが適切に処理されるように、１回の割り込みで処理されるデータ量が制限されるべきである。そこで、本発明では、処理が制限されるべきか否かが判定され、制限されるべきでないと判定されたときには、全てのパケットのデータが処理され、制限されるべきと判定されたときには、所定数以下のパケットのデータだけが処理される。したがって、本発明では、映像ストリーム受信などの受信帯域幅がアプリケーションの品質に極めて重大な影響を与える場合のパケットの受信に対して、他のパケットの受信の混在時にも安定した受信帯域幅を確保することができる。
【００４１】
また、前記割り込み管理テーブルには、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法と、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法とが、それぞれ前記割り込み制御方法として登録されてあり、前記第１の受信処理方法により前記メモリに転送されたデータを処理するときには、前記処理ユニットが、前記メモリに転送されたパケットのデータの一群が即時割り込み方法の対象とされるか、遅延割り込み方法の対象とされるかを前記一群のパケットの種別に基づいて判定し、即時割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータを処理し、遅延割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理してもよい。
【００４２】
例えば、受信割り込み要因で割り込み信号が出力されるようなパケットでも、ＴＣＰのＡＣＫ（ACKnowledgement）処理のパケットように、即時に処理されるべきパケットと、ウェブブラウズのパケットのように、受信時の帯域幅の保障を必要としないパケットとがある。このようなパケットが混在するような場合には、ＡＣＫ処理のパケットについては、メモリに転送されたパケットのデータが１回の割り込みで全て処理されるべきであり、ウェブブラウズのパケットについては、ＡＣＫ処理のパケットが適切に処理されるように、１回の割り込みで処理されるデータ量が制限されるべきである。そこで、本発明では、メモリに転送されたパケットのデータの一群が即時割り込み方法の対象とされるか、遅延割り込み方法の対象とされるかが判定され、即時割り込み方法の対象とされると判定されたときには、全てのパケットのデータが処理され、遅延割り込み方法の対象とされると判定されたときには、所定数以下のパケットのデータだけが処理される。したがって、本発明では、ＡＣＫ処理のパケットなどの即時性が求められるパケットの受信に対して、他のパケットの受信の混在時にも確実に即時性を確保することができる。
【００４３】
また、前記割り込み管理テーブルには、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として登録されてあり、前記第１の受信処理方法により前記メモリに転送されたデータを処理するときには、前記割り込み管理テーブルに割り込み制御方法として前記遅延割り込み方法のみが登録されているか否かを判定し、前記遅延割り込み方法のみが登録されていると判定したときには、前記メモリに転送された全てのパケットのデータを処理し、前記遅延割り込み方法以外の割り込み制御方法も登録されていると判定したときには、前記メモリに転送された前記遅延割り込み方法の対象とされる全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理してもよい。
【００４４】
これにより、割り込み管理テーブルに、遅延割り込み方法と他の割り込み制御方法（例えばタイマ割り込み方法）とが登録されている場合には、メモリに転送された遅延割り込み方法の対象とされる全てのパケットのデータのうち、所定数以下のパケットのデータだけが処理されるため、タイマ割り込み方法の対象とされるパケットのデータに対する処理の妨げとならないように、遅延割り込み方法の対象とされるパケットのデータを処理することができる。また、割り込み管理テーブルに、遅延割り込み方法だけが登録されている場合には、メモリに転送された全てのパケットのデータが処理されるため、遅延割り込み方法の対象とされるパケットの受信処理のスループットを向上することができる。
【００４５】
なお、本発明は、このような通信処理装置や、通信処理装置の制御方法として実現することができるだけでなく、その通信処理装置を備えて上記制御方法によりその通信処理装置を制御する通信機器、その通信処理装置が通信処理する方法、通信処理装置を制御するためのプログラムとしても実現することができ、そのプログラムを格納する記憶媒体や、集積回路としても実現することができる。
【発明の効果】
【００４６】
ソフトウェアの受信処理負荷を抑えつつアプリケーションの処理に応じた割り込みを適宜行なうことができる通信処理装置およびその通信処理装置を備えた通信機器を提供することを目的とする。
【図面の簡単な説明】
【００４７】
【図１】図１は、本発明の実施の形態に係る通信機器および通信処理装置の構成を示すブロック図である。
【図２】図２は、本発明の実施の形態に係る振り分け部で扱う受信パケットのフォーマット例を示す図である。
【図３】図３は、本発明の実施の形態に係る振り分けテーブルの一例を示す図である。
【図４】図４は、本発明の実施の形態に係る割り込み管理テーブルの一例を示す図である。
【図５】図５は、本発明の実施の形態に係る割り込み管理テーブルの他の例を示す図である。
【図６Ａ】図６Ａは、本発明の実施の形態に係る即時割り込みのタイミングを示す図である。
【図６Ｂ】図６Ｂは、本発明の実施の形態に係る遅延割り込みのタイミングを示す図である。
【図６Ｃ】図６Ｃは、本発明の実施の形態に係る間隔制限付き遅延割り込みのタイミングを示す図である。
【図７】図７は、本発明の実施の形態に係るアプリケーションおよび設定部によるテーブル更新処理の一例を示すフローチャートである。
【図８】図８は、本発明の実施の形態に係る割り込み制御部の全体的な動作である割り込み制御処理を示すフローチャートである。
【図９】図９は、本発明の実施の形態に係る割り込み制御部における割り込み制御処理で実施される割り込み制御設定の詳細を示すフローチャートである。
【図１０】図１０は、本発明の実施の形態に係る割り込み制御部における割り込み制御処理で実施される割り込み発信制御の詳細を示すフローチャートである。
【図１１】図１１は、本発明の実施の形態に係る割り込み制御部における割り込み発信制御で実施されるタイマ割り込み制御の詳細を示すフローチャートである。
【図１２】図１２は、本発明の実施の形態に係る割り込み制御部における割り込み発信制御で実施される遅延割り込み制御の詳細を示すフローチャートである。
【図１３】図１３は、本発明の実施の形態に係る割り込み制御部における割り込み発信制御で実施される間隔制限付き遅延割り込み制御の詳細を示すフローチャートである。
【図１４】図１４は、本発明の実施の形態に係る通信処理装置を制御するソフトウェアにおける割り込みハンドラの受信処理を示すフローチャートである。
【図１５】図１５は、本発明の実施の形態に係る通信処理装置を制御するソフトウェアにおける割り込みハンドラの受信処理で実施されるタイマ割り込み処理を示すフローチャートである。
【図１６】図１６は、本発明の実施の形態に係る通信処理装置を制御するソフトウェアにおける割り込みハンドラの受信処理で実施される受信割り込み処理を示すフローチャートである。
【図１７】図１７は、通信処理装置を具備する通信機器の構成の例を示すブロック図である。
【図１８】図１８は、従来の通信処理装置の一構成例を示すブロック図である。
【発明を実施するための形態】
【００４８】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００４９】
図１は、本発明の実施の形態に係る通信機器および通信処理装置の構成を示すブロック図である。
【００５０】
本実施の形態における通信機器１００は、通信処理装置１０１と、メインメモリ１０２と、ＣＰＵ１０３とを備える。なお、図１では、通信機器１００の上記各構成要素に接続するシステムバスは説明の便宜上省略してあるが、本発明の本質とは無関係である。また、図１において、メインメモリ１０２およびＣＰＵ１０３はそれぞれ１つのみ記載されているが、物理的あるいは論理的に複数存在していてもよく、それらの数は本発明の本質とは無関係である。
【００５１】
通信処理装置１０１は、転送制御部１０４、送信データ保持部１０５、ＭＡＣ部１０６、振り分け部１０７、第２記憶部１０８ｍ、受信データ保持部１０９、設定部１１０、割り込み制御部１１１、および第１記憶部１１２ｍを具備する。
【００５２】
転送制御部１０４は、その送信処理として、メインメモリ１０２との間のパケットのデータの転送を管理および制御して送信パケットのデータを送信データ保持部１０５に転送する。さらに、転送制御部１０４は、その受信処理として、受信パケットのデータを受信データ保持部１０９からメインメモリ１０２に転送する。
【００５３】
送信データ保持部１０５は、転送制御部１０４から転送された送信パケットのデータをＭＡＣ部１０６に転送する。ＭＡＣ部１０６は、送信データ保持部１０５から転送された送信パケットのデータを、所定のＭＡＣ規格に準ずる送信処理により送信するとともに、所定のＭＡＣ規格に準ずる受信処理によりパケットを受信して振り分け部１０７に受信パケットのデータを転送する。なお、ＭＡＣ部１０６から接続される外部ブロックは、物理層に依存し、通信機器１００のネットワークと接続されるＩ／Ｆ（インターフェース）である。
【００５４】
振り分け部１０７は、第２記憶部１０８ｍに記憶されている振り分けテーブル１０８を参照して、ＭＡＣ部１０６から転送された受信パケットのデータを分類し、受信データ保持部１０９に分類識別子とともに転送する。受信データ保持部１０９は、振り分け部１０７から転送された受信パケットのデータと分類識別子を関連付けて保持する。なお、分類識別子は、振り分け部１０７による分類結果を示し、受信パケットのデータの内容に応じてそのデータに割り当てられる分類種別である。
【００５５】
振り分け部１０７および振り分けテーブル１０８の詳細は、本発明の本質とは関係ないが、割り込み管理テーブル１１２における分類識別子を理解するために有用であるため、以下、それらの詳細について説明する。
【００５６】
図２は、振り分け部１０７で扱う受信パケットのフォーマット例を示す図である。具体的には、図２は、ＭＡＣとしてＥｔｈｅｒｎｅｔ（登録商標）、ネットワーク層としてＩＰ、トランスポート層としてＴＣＰを使用した場合のフォーマット例を示す。なお、本実施の形態では、振り分け部１０７で扱う受信パケットのフォーマットとして、ＭＡＣ、ネットワーク層、およびトランスポート層などを用いるが、これらと異なるものを用いてもよい。
【００５７】
例えば、受信パケットのデータは、ＭＡＣヘッダ４０１、ＩＰヘッダ４０２、ＴＣＰヘッダ４０３およびペイロードデータ４０４を含む。この場合、受信パケットを分類するために用いられる情報としては、例えば、ＭＡＣヘッダ４０１に含まれる宛先ＭＡＣアドレス４０１ａもしくは送信元ＭＡＣアドレス４０１ｂ、ＩＰヘッダに含まれるＩＰ  Ｖｅｒｓｉｏｎ（Ｖｅｒ）４０２ａもしくはトランスポートプロトコル番号（Ｐｒｏｔｏｃｏｌ）４０２ｂ、または、ＴＣＰヘッダ４０３に含まれる送信元ポート番号４０３ａもしくは宛先ポート番号４０３ｂなどが挙げられる。これらの一部を用いて他を任意としてもよいし、すべてを用いてもよい。さらに、受信パケットのデータに含まれる他の情報を分類に用いてもよい。例えば、Ｐｒｏｔｏｃｏｌ４０２ｂがＴＣＰ（０ｘ０６）を示し、送信元ポート番号４０３ａが８０番である場合、受信パケットがＨＴＴＰサーバからの受信パケットであると特定できる。さらに、宛先ポート番号４０３ｂにより、その受信パケットを扱うアプリケーションが特定でき、その受信パケットが映像通信に用いられるものか否かが受信する通信機器１００内では一意に特定可能となる。
【００５８】
図３は、振り分けテーブル１０８の一例を示す図である。
【００５９】
例えば、振り分けテーブル１０８は、受信パケットの分類に用いられる情報である分類パラメータと、その分類パラメータに対して関連付けられた分類識別子とを示す。この例では、分類パラメータは、トランスポートプロトコル（Ｐｒｏｔｏｃｏｌ）、宛先ＩＰアドレス、送信元ポート番号、および宛先ポート番号からなる。なお、トランスポートプロトコルは、上述のトランスポートプロトコル番号であってもよい。
【００６０】
具体的には、振り分けテーブル１０８は、分類パラメータ「Ｐｒｏｔｏｃｏｌ：ＴＣＰ、宛先ＩＰアドレス：１９２．１６８．３．４、送信元ポート番号：８０、宛先ポート番号：１０００１」に関連付けて分類識別子「１」を示し、分類パラメータ「Ｐｒｏｔｏｃｏｌ：ＴＣＰ、宛先ＩＰアドレス：１９２．１６８．１．８、送信元ポート番号：１０００１、宛先ポート番号：１０００２」に関連付けて分類識別子「２」を示す。また、振り分けテーブル１０８は、具体的に挙げられた分類パラメータ以外の分類パラメータに対しては、分類識別子「Ｄｅｆａｕｌｔ」を示す。
【００６１】
したがって、振り分け部１０７は、受信パケットのデータに示される分類パラメータを振り分けテーブル１０８から検索し、その分類パラメータが振り分けテーブル１０８にあれば、その分類パラメータに関連付けられている分類識別子を、その受信パケットのデータとともに受信データ保持部１０９に出力する。また、振り分け部１０７は、検索の結果、その分類パラメータが振り分けテーブル１０８になければ、分類識別子「Ｄｅｆａｕｌｔ」をその受信パケットのデータとともに受信データ保持部１０９に出力する。
【００６２】
このように、振り分けテーブル１０８には、受信パケットを分類するための定義（分類パラメータ）が分類識別子に関連付けて登録されている。なお、その定義のエントリ一つ一つを区別するために、便宜上、仮想的に分類識別子を関連付けておいてもよい。
【００６３】
転送制御部１０４は、その受信処理として、受信データ保持部１０９に保持された受信パケットのデータを、そのデータに関連付けられた分類識別子に基づいてメインメモリ１０２に転送する。この時、転送制御部１０４は、受信パケットのデータをメインメモリ１０２へ転送完了したことを、その分類識別子とともに割り込み制御部１１１に通知する。
【００６４】
割り込み制御部１１１は、転送制御部１０４から通知された分類識別子を、第１記憶部１１２ｍに記憶されている割り込み管理テーブル１１２から検索し、その分類識別子に関連付けられているトラヒック種別に定義されている割り込み制御方法を特定し、その方法で割り込み制御を行なう。その結果、割り込み制御部１１１はＣＰＵ１０３に必要なタイミングで割り込み信号を発信する。
【００６５】
図４は、割り込み管理テーブル１１２の一例を示す図である。
【００６６】
例えば、割り込み管理テーブル１１２は、分類識別子と、その分類識別子に関連付けられたトラヒック種別とを示す。言い換えれば、割り込み管理テーブル１１２には、分類識別子とトラヒック種別と関連付けて登録されている。また、割り込み管理テーブル１１２における分類識別子は振り分けテーブル１０８の分類識別子と共通している。
【００６７】
具体的には、割り込み管理テーブル１１２は、分類識別子「１」に関連付けてトラヒック種別「ストリーム」を示し、分類識別子「２」に関連付けてトラヒック種別「即時」を示す。ここでトラヒック種別とは、受信パケットの受信形態であって、例えば「非優先」、「即時」、「ストリーム」および「ダウンロード」の何れかである。トラヒック種別「非優先」は、帯域幅の保障を必要としない通常の受信形態であり、トラヒック種別「即時」は、ＴＣＰのスループット向上に有用なＴＣＰ−ＡＣＫ処理などの即時処理が必要とされる受信形態であり、トラヒック種別「ストリーム」は、帯域幅の保障を必要とする映像データの受信形態であり、トラヒック種別「ダウンロード」は、トラヒック種別「即時」および「ストリーム」による通信を妨げない範囲で最大限の受信性能を要求する受信形態である。
【００６８】
つまり、割り込み制御部１１１は、この割り込み管理テーブル１１２から、転送制御部１０４から通知された分類識別子（例えば分類識別子「１」）を検索し、その分類識別子に関連付けられているトラヒック種別（例えば「ストリーム」）を特定する。さらに、割り込み制御部１１１は、そのトラヒック種別に定義されている割り込み制御方法を特定する。
【００６９】
例えば、トラヒック種別「非優先」には、割り込み制御方法「遅延割り込み」または「間隔制限付き遅延割り込み」が定義され、トラヒック種別「即時」には、割り込み制御方法「即時割り込み」が定義され、トラヒック種別「ストリーム」には、割り込み制御方法「タイマ割り込み」が定義され、トラヒック種別「ダウンロード」には、割り込み制御方法「処理量（帯域幅）制限付きタイマ割り込み」が定義されている。なお、トラヒック種別「非優先」を細分化して、トラヒック種別「非優先Ａ」に割り込み制御方法「遅延割り込み」が定義され、トラヒック種別「非優先Ｂ」に割り込み制御方法「間隔制限付き遅延割り込み」が定義されていてもよい。
【００７０】
「即時割り込み」は、パケットのデータがメインメモリ１０２に転送された直後に割り込み信号を出力する割り込み制御方法である。「遅延割り込み」は、パケットのデータがメインメモリ１０２に転送されてから予め定められた時間経過したときに割り込み信号を出力する割り込み制御方法である。「間隔制限付き遅延割り込み」は、パケットのデータがメインメモリ１０２に転送されてから予め定められた時間経過し、且つ直前の割り込み信号が出力されてから上記予め定められた時間経過したときに割り込み信号を出力する割り込み制御方法である。また、「タイマ割り込み」は、予め定められた期間ごとに割り込み信号を出力する割り込み制御方法であり、「処理量（帯域幅）制限付きタイマ割り込み」は、上記「タイマ割り込み」と同様のタイミングで割り込み信号を出力するが、その割り込み信号に応じて処理されるデータ量が制限されている割り込み制御方法である。
【００７１】
なお、本実施の形態では、割り込み管理テーブル１１２には、分類識別子に関連付けてトラヒック種別が登録され、１つのトラヒック種別は１つの割り込み制御方法に定義づけされている。したがって、本実施の形態における割り込み管理テーブル１１２は、分類識別子に関連付けられた割り込み制御方法を、トラヒック種別を介して間接的に示している。したがって、割り込み管理テーブル１１２には、トラヒック種別の代わりに、割り込み制御方法が分類識別子に関連付けて登録されていてもよい。
【００７２】
また、本実施の形態では、通信処理装置１０１は、割り込み管理テーブル１１２および振り分けテーブル１０８をそれぞれ独立に保持しているが、これら２つのテーブルの代わりに、これらのテーブルに含まれる情報を含む１つのテーブルを保持していてもよい。
【００７３】
図５は、割り込み管理テーブル１１２の他の例を示す図である。
【００７４】
この割り込み管理テーブル１１２は、分類識別子と、その分類識別子に対応する分類パラメータと、その分類識別子および分類パラメータに関連付けられたトラヒック種別とを示す。
【００７５】
通信処理装置１０１は、図５に示す割り込み管理テーブル１１２を保持する場合には、第２記憶部１０８ｍを備えず、その割り込み管理テーブル１１２を記憶している第１記憶部１１２ｍを備えている。さらに、この場合、振り分け部１０７は、振り分けテーブル１０８を参照する代わりに、割り込み管理テーブル１１２を参照することにより受信パケットのデータを分類する。
【００７６】
なお、通信処理装置１０１が割り込み管理テーブル１１２および振り分けテーブル１０８をそれぞれ独立に保持する場合でも、図５に示す割り込み管理テーブル１１２を保持していてもよい。また、この場合には、図５に示す割り込み管理テーブル１１２のうち分類識別子が省かれていてもよい。つまり、割り込み管理テーブル１１２は、分類パラメータと、その分類パラメータに関連付けられたトラヒック種別とを示す。このような割り込み管理テーブル１１２が第１記憶部１１２ｍに記憶されている場合には、振り分け部１０７は、受信パケットのデータをその分類パラメータと共に受信データ保持部１０９に転送し、転送制御部１０４は、受信パケットのデータをメインメモリ１０２へ転送完了したことを、その分類パラメータとともに割り込み制御部１１１に通知する。そして、割り込み制御部１１１は、その分類パラメータに関連付けられたトラヒック種別を割り込み管理テーブル１１２から検索し、そのトラヒック種別に定義付けされた割り込み制御方法を特定する。
【００７７】
ここで、割り込み制御部１１１で用いられる割り込み制御方法について、その詳細を以下に説明する。
【００７８】
使用される割り込み制御方法は、少なくとも以下のうち一つを含む。
（１）即時割り込み
（２）遅延割り込み（間隔制限なし）
（３）間隔制限付き遅延割り込み
（４）タイマ割り込み（処理量制限付き、または処理量制限なし）
【００７９】
なお、上記割り込み制御方法のうち、タイマ割り込みに関しては、必ずしも割り込み管理テーブル１１２で指定される必要はなく、単に、「受信に応じた割り込みは発生させない」という定義として指定してもよい。
【００８０】
タイマ割り込みは、通信処理装置１０１内の割り込み制御部１１１で実装される機能であり、予め定められた周期（タイマ時間）に割り込み信号をＣＰＵ１０３に発信する割り込み制御方法である。つまり、割り込み制御部１１１は、タイマ機能を具備し、割り込み制御方法として「タイマ割り込み」を適用する場合、ＣＰＵ１０３より設定部１１０経由で設定されたタイマ時間、あるいは、予め決められた所定のタイマ時間に基づき、周期的な割り込み信号を発信する。ここで、割り込み制御部１１１は、ＣＰＵ１０３からの指定により設定部１１０経由でタイマ割り込みのＯＮ／ＯＦＦを受け付け、周期的な割り込み信号の発信を作動あるいは停止することもできる。
【００８１】
このタイマ割り込みでは、割り込み制御部１１１の動作クロックに応じた精度の周期で発信が可能である。ただし、必ずしもその動作クロックの周期を最小単位とする必要はない。一般的に、割り込みに対するソフトウェアのドライバで実装された割り込み処理が駆動されるのは、高々数十μｓｅｃ程度のずれである。これにより、ＯＳにより実装されるタイマ機能より精度が高く、ソフトウェア処理量を低減したタイマ機能の実現が可能である。なお、タイマ割り込みは複数実装されてもよいが、タイマ割り込みを１つだけ実装してその時間単位（タイマ時間）を小さくし、ソフトウェアにより仮想的に複数のタイマを持つように制御することで代替可能である。
【００８２】
具体的に、即時割り込み、遅延割り込み、および間隔制限付き遅延割り込みのタイミングについて、図６Ａ〜図６Ｃを用いて説明する。
【００８３】
図６Ａは、割り込み制御方法「即時割り込み」のタイミングを示す図である。
【００８４】
即時割り込みは、通信処理装置１０１の転送制御部１０４において転送が完了（受信事象発生）した後、即時に割り込み制御部１１１が割り込み信号を発信する割り込み制御方法である。ここで、「即時」と記述したのは、説明の便宜上であり、実際のハードウェアの動作クロックの単位で数クロックのずれが発生することは十分許容できる範囲であり、そのずれを制限するものではない。
【００８５】
図６Ｂは、割り込み制御方法「遅延割り込み（間隔制限なし）」のタイミングを示す図である。
【００８６】
遅延割り込みは、通信処理装置１０１の転送制御部１０４において転送が完了（受信事象発生）した後、その転送完了時から予め定められた期間（遅延時間ｔ）経過したときに、割り込み制御部１１１が割り込み信号を発信する割り込み制御方法である。上述の遅延時間ｔは、割り込み管理テーブル１１２の該当する分類識別子「Ｄｅｆａｕｌｔ」で定義されるエントリに登録されていてもよく、あるいは、割り込み制御部１１１に設定部１１０から予め指定されていてもよく、あるいは、割り込み制御部１１１によって予め保有されていてもよい。仮に、受信事象発生後、その受信事象発生に対応する割り込み信号の発信までに、新たな受信事象が発生した場合には、ソフトウェアがその新たな受信事象発生を通信処理装置１０１の転送制御部１０４の管理外としなければ、その新たな受信事象発生から前述の遅延時間ｔだけ遅延して割り込み信号が発信される。
【００８７】
なお、割り込みの遅延時間ｔの精度については、即時割り込みで記載した通り、ハードウェアの動作クロックの数クロックのずれを制限するものではない。また、上述の遅延時間ｔを、割り込み管理テーブル１１２のエントリに個別に登録しておくことは、実装が複雑となるため、推奨はされない。
【００８８】
図６Ｃは、割り込み制御方法「間隔制限付き遅延割り込み」のタイミングを示す図である。
【００８９】
間隔制限付き遅延割り込みは、通信処理装置１０１の転送制御部１０４において転送が完了（受信事象発生）した後、その転送完了時から予め定められた期間（遅延時間ｔ）経過したときに、割り込み制御部１１１が割り込み信号を発信する制御方法である。間隔制限なしの遅延割り込みと異なる点は、割り込み信号と次の割り込み信号との時間間隔が遅延時間ｔ以上になることが保障されていることである。つまり、受信事象発生後、その受信事象発生に対応する割り込み信号の発信までに、新たな受信事象が発生し、ソフトウェアがその新たな受信事象発生を通信処理装置１０１の転送制御部１０４の管理外としなかった場合、割り込み制御部１１１は先の割り込み信号の発信から遅延時間ｔだけ間隔を空けて新たな割り込み信号を発信する。例えば、図６Ｃに示すように、受信事象ａの発生後、その受信事象ａの発生に対応する割り込み信号ａの発信までに新たな受信事象ｂが発生した場合、割り込み制御部１１１は先の割り込み信号ａの発信から遅延時間ｔだけ間隔を開けて新たな割り込み信号ｂを発信する。
【００９０】
この割り込み制御方法は、ｐｐｓ（Ｐａｃｋｅｔ  Ｐｅｒ  Ｓｅｃ：単位時間あたりに処理されるパケット数）制限や、ｂｐｓ（Ｂｉｔ  Ｐｅｒ  Ｓｅｃ：単位時間あたりに処理される受信データ量）制限を行なうのにソフトウェア実装が容易となり、不要な割り込み信号の発信を抑制することも可能となる。
【００９１】
設定部１１０は、割り込み管理テーブル１１２および振り分けテーブル１０８を更新する。つまり、設定部１１０は、ＣＰＵ１０３によってアプリケーションが起動すると、そのアプリケーションによって確立される通信路に応じて割り込み管理テーブル１１２および振り分けテーブル１０８を更新する。
【００９２】
図７は、アプリケーションおよび設定部１１０によるテーブル更新処理の一例を示すフローチャートである。
【００９３】
まず、アプリケーションは通信路を確立する（ステップＳ１００）。例えば、アプリケーションはソケットをオープンしたりｂｉｎｄを行なったりする。設定部１１０は、このように通信路を確立したアプリケーションから通信路情報を取得する（ステップＳ１０２）。通信路情報は、図３に示す振り分けテーブル１０８の分類パラメータであって、Ｐｒｏｔｏｃｏｌ、宛先ＩＰアドレス、送信元ポート番号および宛先ポート番号などを含む。
【００９４】
次に、設定部１１０は、その取得した通信路情報に分類識別子を割り当て、その通信路情報を分類パラメータとして分類識別子とともに振り分けテーブル１０８に登録する。さらに、設定部１１０は、その取得した通信路情報に適したトラヒック種別を特定し、特定したトラヒック種別を、その通信路情報に割り当てた分類識別子に関連付けて割り込み管理テーブル１１２に登録する（ステップＳ１０４）。なお、アプリケーションプログラムが通信路を確立したときに、その通信路に対応する分類識別子および割り込み制御方法が割り込み管理テーブル１１２に登録されていなければ、ステップＳ１０４で、その通信路に対応する分類識別子および割り込み制御方法が割り込み管理テーブル１１２に追加されることになる。
【００９５】
このように、アプリケーションプログラムは、通信処理装置１０１を介した通信路を確立し、通信路情報を通信処理装置１０１に送信することにより、通信処理装置１０１の設定部１１０に対して、通信路情報に対応する分類識別子および割り込み制御方法を割り込み管理テーブル１１２に登録させて、その割り込み管理テーブル１１２を更新させる。
【００９６】
また、設定部１１０は、割り込み制御部１１１によるタイマ割り込みのＯＮ／ＯＦＦの要求をＣＰＵ１０３から受け付け、その要求に応じて割り込み制御部１１１にタイマ割り込みを実行させたり停止させたりしてもよい。
【００９７】
また、割り込み管理テーブル１１２および振り分けテーブル１０８に登録される通信路情報として、予め決められた共通の通信路情報を保有する複数の通信路に対して適用可能な設定を登録することも可能である。これにより、例えばサーバのよく知られたポート番号として同一の値を持つ通信路に対して、共通の登録情報を参照することが可能となり、割り込み管理テーブル１１２および振り分けテーブル１０８の登録総数を抑制することが可能となる。
【００９８】
次に、割り込み制御方法を実現するためのアルゴリズムの例を図８から図１３を用いて説明する。なお、この説明においては、ハードウェアの実装において、並列処理できるところにおいても、説明の容易性から逐次実行として記述している部分もあるが、並列処理を制限するものではない。また、以下の説明では、上述の割り込み制御方法すべてを実装した形態について説明しているが、それらの一部が実装されない場合においても、容易に類推できるため説明を割愛する。
【００９９】
図８は、割り込み制御部１１１の全体的な動作である割り込み制御処理を示すフローチャートである。割り込み制御部１１１は、割り込み制御処理を実行するときには、割り込み発信制御（ステップＳ２００）と割り込み制御設定（ステップＳ２０２）とを並列に、または何れか一方の処理を実行し、その後、割り込み制御処理を終了すべきか否かを判別する（ステップＳ２０４）。ここで、割り込み制御部１１１は、終了すべきでないと判別すると（ステップＳ２０４のＮｏ）、ステップＳ２００，Ｓ２０２の処理を繰り返して実行し、終了すべきであると判別すると（ステップＳ２０４のＹｅｓ）、割り込み制御処理を終了する。
【０１００】
図９は、図８におけるステップＳ２０２として記載された割り込み制御設定の詳細を示すフローチャートである。
【０１０１】
割り込み制御部１１１は、割り込み制御設定を行なうときには、まず、転送制御部１０４からの受信完了の通知の有無を判定する（ステップＳ２１０）。ここで、割り込み制御部１１１は、通知がないと判定すると（ステップＳ２１０のＮｏ）、割り込み制御設定を終了する。一方、割り込み制御部１１１は、通知があったと判定すると（ステップＳ２１０のＹｅｓ）、転送制御部１０４から得た分類識別子に関連付けられているトラヒック種別を割り込み管理テーブル１１２から検索する。そして、割り込み制御部１１１は、該当するトラヒック種別を見つけ出し、そのトラヒック種別に定義されている割り込み制御方法を特定する（ステップＳ２１２）。
【０１０２】
次に、割り込み制御部１１１は、ステップＳ２１２で特定した割り込み制御方法が即時割り込みであるか否かを判定する（ステップＳ２１４）。ここで、割り込み制御部１１１は、即時割り込みであると判定すると（ステップＳ２１４のＹｅｓ）、割り込み要因に受信割り込みを設定して割り込み信号を発信し（ステップＳ２１６）、割り込み制御設定を終了する。一方、割り込み制御部１１１は、ステップＳ２１４で割り込み制御方法が即時割り込みでないと判定すると（ステップＳ２１４のＮｏ）、さらに、その割り込み制御方法が遅延割り込み（間隔制限なし）であるか否かを判定する（ステップＳ２１８）。
【０１０３】
ここで、割り込み制御部１１１は、遅延割り込みであると判定すると（ステップＳ２１８のＹｅｓ）、受信事象発生に対して「遅延割り込み中」を設定し（ステップＳ２２０）、割り込み制御設定を終了する。一方、割り込み制御部１１１は、ステップＳ２１８で割り込み制御方法が遅延割り込みでないと判定すると（ステップＳ２１８のＮｏ）、さらに、その割り込み制御方法が間隔制限付き遅延割り込みであるか否かを判定する（ステップＳ２２２）。
【０１０４】
ここで、割り込み制御部１１１は、間隔制限付き遅延割り込みであると判定すると（ステップＳ２２２のＹｅｓ）、受信事象発生に対して「間隔制限付き遅延割り込み中」を設定し（ステップＳ２２４）、割り込み制御設定を終了する。一方、割り込み制御部１１１は、ステップＳ２２２で割り込み制御方法が間隔制限付き遅延割り込みでないと判定すると（ステップＳ２２２のＮｏ）、ステップＳ２２４の設定を行なうことなく割り込み制御設定を終了する。その結果、受信完了のデータはタイマ割り込みの対象として扱われる。
【０１０５】
図１０は、図８におけるステップＳ２００として記載された割り込み発信制御の詳細を示すフローチャートである。
【０１０６】
割り込み制御部１１１は、割り込み発信制御を行なうときには、まず、割り込み制御が有効か否かを判定する（ステップＳ２４０）。例えば、割り込み制御部１１１は、割り込み管理テーブル１１２が第１記憶部１１２ｍに記憶されていれば、割り込み制御が有効であると判定する。あるいは、割り込み制御部１１１は、割り込み管理テーブル１１２を参照して、その割り込み管理テーブル１１２に分類識別子およびその分類識別子のトラヒック種別が登録されていれば、割り込み制御が有効であると判定する。
【０１０７】
ここで、割り込み制御部１１１は、割り込み制御が有効であると判定すると（ステップＳ２４０のＹｅｓ）、タイマ割り込み制御（ステップＳ２４２）、遅延割り込み制御（ステップＳ２４４）、および間隔制限付き遅延割り込み制御（ステップＳ２４６）の何れかを実行し、割り込み発信制御を終了する。また、割り込み制御部１１１は、ステップＳ２４０で割り込み制御が有効でないと判定したときには（ステップＳ２４０のＮｏ）、上記ステップＳ２４２，Ｓ２４４，Ｓ２４６の何れの処理を行なうことなく、割り込み発信制御を終了する。
【０１０８】
図１１は、図１０におけるステップＳ２４２として記載されたタイマ割り込み制御の詳細な処理を示すフローチャートである。
【０１０９】
割り込み制御部１１１は、タイマ割り込み制御を行なうときには、まず、タイマ割り込みがＯＮか否かを判定する（ステップＳ２６０）。例えば、割り込み制御部１１１は、割り込み管理テーブル１１２を参照して、そこにトラヒック種別「ストリーム」または「ダウンロード」が登録されているか否かを判別することにより、タイマ割り込みがＯＮか否かを判定する。つまり、割り込み制御部１１１は、トラヒック種別「ストリーム」または「ダウンロード」が登録されていれば、タイマ割り込みがＯＮであると判定する。
【０１１０】
ここで、割り込み制御部１１１は、タイマ割り込みがＯＮであると判定すると（ステップＳ２６０のＹｅｓ）、さらに、タイマ割り込み発信条件が満了したか否かを判定する（ステップＳ２６２）。ここで、タイマ割り込み発信条件の満了とは、前回のタイマ割り込み発信条件が満了してから、所定のタイマ時間だけ経過したことを意味する。割り込み制御部１１１は、タイマ割り込み発信条件が満了したと判定すると（ステップＳ２６２のＹｅｓ）、割り込み要因にタイマ割り込みを設定して割り込み信号を発信する（ステップＳ２６４）。このとき、割り込み制御部１１１は、タイマ割り込みの発信条件が満了しているか否かを判定するための経過時間を０、あるいは次回のタイマ割り込み発信条件の満了までの時間を初期値に設定する。そして、割り込み制御部１１１は、上述の経過時間、あるいは上述の次回満了までの時間を更新する（ステップＳ２６６）。
【０１１１】
一方、割り込み制御部１１１は、ステップＳ２６０でタイマ割り込みがＯＮでないと判定したときには（ステップＳ２６０のＮｏ）、タイマ割り込み制御を終了する。また、割り込み制御部１１１は、ステップＳ２６２でタイマ割り込み発信条件が満了していないと判定したときには（ステップＳ２６２のＮｏ）、割り込み信号を発信することなく、上述の経過時間などを更新する（ステップＳ２６６）。
【０１１２】
図１２は、図１０におけるステップＳ２４４として記載された遅延割り込み制御の詳細を示すフローチャートである。
【０１１３】
割り込み制御部１１１は、遅延割り込み制御を行なうときには、まず、遅延割り込み中か否かを判定する（ステップＳ２８０）。つまり、割り込み制御部１１１は、図９に示す割り込み制御設定のステップＳ２２０の処理によって、受信事象発生に「遅延割り込み中」が設定されているか否かを判定する。
【０１１４】
ここで、割り込み制御部１１１は、遅延割り込み中であると判定すると（ステップＳ２８０のＹｅｓ）、さらに、遅延割り込み発信条件が満了したか否かを判定する（ステップＳ２８２）。ここで、遅延割り込み発信条件の満了とは、割り込みの対象となる受信事象の発生から所定の遅延時間だけ経過したことを意味する。割り込み制御部１１１は、遅延割り込み発信条件が満了したと判定すると（ステップＳ２８２のＹｅｓ）、割り込み要因に受信割り込みを設定して割り込み信号を発信する（ステップＳ２８４）。
【０１１５】
一方、割り込み制御部１１１は、遅延割り込み発信条件が満了していないと判定したときには（ステップＳ２８２のＮｏ）、割り込み信号を発信することなく、遅延割り込み発信条件が満了しているか否かを判定するための経過時間、あるいは次回の遅延割り込み発信条件の満了までの時間を更新する（ステップＳ２８６）。この経過時間などの更新は、すべての遅延割り込みの対象とされる受信事象発生に対して行なわれる。また、割り込み制御部１１１は、ステップＳ２８０で遅延割り込み中でないと判定したときには（ステップＳ２８０のＮｏ）、遅延割り込み制御を終了する。
【０１１６】
ここで、割り込み制御部１１１は、ステップＳ２８４において割り込み信号を発信した場合、次の受信事象発生に対して、次に満了する遅延割り込みの発信条件を適用する。次に遅延割り込みの対象となる受信事象発生がなければ、割り込み制御部１１１は、ステップＳ２８０で遅延割り込み中でないと判定する。また、遅延割り込みの対象となる受信事象発生が全てソフトウェアで処理された場合にも、割り込み制御部１１１は、転送制御部１０４が管理するＤｅｓｃｒｉｐｔｏｒの解析の結果、遅延割り込みを発生させる必要がないことを検知し、ステップＳ２８０で遅延割り込み中でないと判定する。
【０１１７】
図１３は、図１０におけるステップＳ２４６として記載された間隔制限付き遅延割り込み制御の詳細を示すフローチャートである。
【０１１８】
割り込み制御部１１１は、間隔制限付き遅延割り込み制御を行なうときには、まず、間隔制限付き遅延割り込み中か否かを判定する（ステップＳ３００）。つまり、割り込み制御部１１１は、図９に示す割り込み制御設定のステップＳ２２４の処理によって、受信事象発生に「間隔制限付き遅延割り込み中」が設定されているか否かを判定する。
【０１１９】
ここで、割り込み制御部１１１は、間隔制限付き遅延割り込み中であると判定すると（ステップＳ３００のＹｅｓ）、さらに、間隔制限が満了したか否かを判定する（ステップＳ３０２）。ここで、間隔制限の満了とは、割り込みの対象となる受信事象の発生から所定の遅延時間が経過し、且つ、前回の間隔制限付き遅延割り込みによる割り込み信号の発信がある場合には、その発信から上記遅延時間だけ経過したことを意味する。割り込み制御部１１１は、間隔制限が満了したと判定すると（ステップＳ３０２のＹｅｓ）、割り込み要因に受信割り込みを設定して割り込み信号を発信する（ステップＳ３０４）。
【０１２０】
一方、割り込み制御部１１１は、間隔制限が満了していないと判定したときには（ステップＳ３０２のＮｏ）、割り込み信号を発信することなく、間隔制限が満了しているか否かを判定するための経過時間、あるいは次回の間隔制限の満了までの時間を更新する（ステップＳ３０６）。また、割り込み制御部１１１は、ステップＳ３００で間隔制限付き遅延割り込み中でないと判定したときには（ステップＳ３００のＮｏ）、間隔制限付き遅延割り込み制御を終了する。
【０１２１】
ここで、割り込み制御部１１１は、ステップＳ３０４において割り込み信号を発信した場合、経過時間を０、あるいは次回の間隔制限の満了までの時間を初期値に設定する。また、間隔制限付き遅延割り込みの対象となる受信事象発生が全てソフトウェアで処理された場合、割り込み制御部１１１は、転送制御部１０４が管理するＤｅｓｃｒｉｐｔｏｒの解析の結果、間隔制限付き遅延割り込みを発生させる必要がないことを検知し、ステップＳ３００で間隔制限付き遅延割り込み中でないと判定する。
【０１２２】
なお、上記説明において、即時割り込み、遅延割り込み、間隔制限付き遅延割り込みの割り込み要因を「受信割り込み」として統一して扱う例を示したが、これらが別々であっても構わない。
【０１２３】
ここで、上述で実現される通信処理装置１０１を用いた通信機器１００を実現するために、ソフトウェアで実装する制御アルゴリズムの例を、図１４から図１６を用いて説明する。ただし、一般的なドライバソフトウェアの処理については、本発明の本質とは関係がないため割愛し、割り込み処理の説明に限定する。また、以下の説明において、判定の順序や処理の順序が必ずしも記述の通りでなくてもよい場合もあるが、同業の専門家であれば容易に類推できるため、その記述は割愛する。
【０１２４】
図１４は、ＣＰＵ１０３で実行されるソフトウェアにおける割り込みハンドラの受信処理を示すフローチャートである。
【０１２５】
ソフトウェアは、割り込み信号の割り込み要因にタイマ割り込みが設定されているか否かを判定する（ステップＳ４００）。ここで、ソフトウェアは、タイマ割り込みが設定されていると判定すると（ステップＳ４００のＹｅｓ）、タイマ割り込み処理を行なう（ステップＳ４０２）。なお、タイマ割り込み処理の詳細については、図１５を用いて後述する。一方、ソフトウェアは、タイマ割り込みが設定されていないと判定すると（ステップＳ４００のＮｏ）、または、ステップＳ４０２のタイマ割り込み処理が完了すると、さらに、割り込み信号の割り込み要因に受信割り込みが設定されているか否かを判定する（ステップＳ４０４）。
【０１２６】
ここで、ソフトウェアは、受信割り込みが設定されていると判定すると（ステップＳ４０４のＹｅｓ）、受信割り込み処理を行なう（ステップＳ４０６）。なお、受信割り込み処理の詳細については、図１６を用いて後述する。一方、ソフトウェアは、受信割り込みが設定されていないと判定すると（ステップＳ４０６）、または、ステップＳ４０６の受信割り込み処理が完了すると、他の割り込み要因に対する処理を行ない（ステップＳ４０８）、ソフトウェアにおける割り込みハンドラの受信処理を終了する。
【０１２７】
図１５は、図１４におけるステップＳ４０２のタイマ割り込み処理の詳細を示すフローチャートである。
【０１２８】
ソフトウェアは、タイマ割り込み処理では、まず、処理対象とする分類識別子を先頭（例えば１）に初期化する（ステップＳ４２０）。次に、ソフトウェアは、処理対象の分類識別子（初期値は分類識別子１）に対応するデータ（以降、分類対象という）がタイマ割り込み対象であるか否かを判定する（ステップＳ４２２）。なお、転送制御部１０４が管理するＤｅｓｃｒｉｐｔｏｒが分類識別子ごとに独立して管理されている場合、その管理番号で分類識別子を識別可能であるため、ソフトウェアによるステップＳ４２２の判定の実現が容易となる。
【０１２９】
ここで、ソフトウェアは、分類対象がタイマ割り込み対象であると判定すると（ステップＳ４２２のＹｅｓ）、さらに、分類対象が帯域幅制限対象（処理量制限付きタイマ割り込みの対象）であるか否かを判定する（ステップＳ４２４）。ソフトウェアは、分類対象が帯域幅制限対象であると判定すると（ステップＳ４２４のＹｅｓ）、通信処理装置１０１からメインメモリ１０２に転送された上述の分類対象に該当する受信パケットのうち、最大Ｎ個の受信パケットを受信処理する。ここで、Ｎ個とは、予め決められた値であり、通信機器１００または通信機器１００を含むシステムで一意であってもよいし、分類識別子毎に異なる値であってもよい。
【０１３０】
一方、ソフトウェアは、分類対象が帯域幅制限対象でないと判定すると（ステップＳ４２４のＮｏ）、通信処理装置１０１からメインメモリ１０２に転送された上述の分類対象に該当する全ての受信パケットを受信処理する（ステップＳ４２８）。また、ソフトウェアは、ステップＳ４２６，Ｓ４２８の受信処理完了後、または、ステップＳ４２２で分類対象がタイマ割り込み対象でないと判定したときには（ステップＳ４２２のＮｏ）、すべての分類識別子に対して上述の処理を行なったか否かを判定する（ステップＳ４３０）。ここで、ソフトウェアは、処理を行なったと判定すると（ステップＳ４３０のＹｅｓ）、タイマ割り込み処理を終了する。一方、ソフトウェアは、処理を行なっていないと判定すると（ステップＳ４３０のＮｏ）、分類識別子をインクリメントして（例えば１進める）（ステップＳ４３２）、ステップＳ４２２からの処理を繰り返し実行する。
【０１３１】
図１６は、図１４におけるステップＳ４０６の受信割り込み処理の詳細を示すフローチャートである。
【０１３２】
ソフトウェアは、受信割り込み処理では、まず、非優先パケットのみの受信モードであるか否かを判定する（ステップＳ４４０）。ここで、非優先パケットのみの受信モードとは、以下のいずれかの条件を満たす場合のモードである。
（１）トラヒック種別「非優先」だけが割り込み管理テーブル１１２に登録されている。つまり、遅延割り込みあるいは間隔制限付き遅延割り込みで処理されるデータの分類識別子（例えば、「Ｄｅｆａｕｌｔ」）以外の分類識別子が割り込み管理テーブル１１２に登録されていない。
（２）トラヒック種別「ストリーム」が割り込み管理テーブル１１２に登録されている、言い換えれば、タイマ割り込みにより処理されるデータの分類識別子が割り込み管理テーブル１１２に登録されているが、予め決められた所定の期間、そのデータの受信が転送制御部１０４において行なわれなかった。
【０１３３】
ソフトウェアは、ステップＳ４４０で非優先パケットのみの受信モードであると判定すると（ステップＳ４４０のＹｅｓ）、通信処理装置１０１からメインメモリ１０２に転送された全ての受信パケットを受信処理し（ステップＳ４４２）、受信割り込み処理を終了する。一方、ソフトウェアは、ステップＳ４４０で非優先パケットのみの受信モードでないと判定すると（ステップＳ４４０のＮｏ）、処理対象とする分類識別子を先頭（例えば１）に初期化する（ステップＳ４４４）。次に、ソフトウェアは、分類対象（初期化時では、分類識別子１に対応するデータ）が即時割り込み対象であるか否かを判定する（ステップＳ４４６）。なお、転送制御部１０４が管理するＤｅｓｃｒｉｐｔｏｒが分類識別子ごとに独立して管理されている場合、その管理番号で分類識別子を識別可能であるため、ソフトウェアによるステップＳ４４６の判定の実現が容易となる。
【０１３４】
ここで、ソフトウェアは、分類対象が即時割り込み対象であると判定すると（ステップＳ４４６のＹｅｓ）、通信処理装置１０１からメインメモリ１０２に転送された上述の分類対象に該当する、すなわち即時割り込み対象に該当する全ての受信パケットを受信処理する（ステップＳ４４８）。一方、ソフトウェアは、分類対象が即時割り込み対象でないと判定すると（ステップＳ４４６のＮｏ）、遅延割り込みあるいは間隔制限付き遅延割り込みで処理される全ての受信パケット、すなわち全ての非優先パケットのうち、最大Ｍ個の受信パケットを受信処理する（ステップＳ４５０）。ここで、Ｍ個とは、予め決められた値であり、通信機器１００または通信機器１００を含むシステムで一意であってもよいし、分類識別子毎に異なる値であってもよく、前述のＮ個と同一であっても異なる値でもよい。
【０１３５】
次に、ソフトウェアは、ステップＳ４４８，Ｓ４５０の受信処理完了後、すべての分類識別子に対して上述の処理を行なったか否かを判定する（ステップＳ４５２）。ここで、ソフトウェアは、処理を行なったと判定すると（ステップＳ４５２のＹｅｓ）、受信割り込み処理を終了する。一方、ソフトウェアは、処理を行なっていないと判定すると（ステップＳ４５２のＮｏ）、分類識別子をインクリメントして（例えば１進める）（ステップＳ４５４）、ステップＳ４４６からの処理を繰り返し実行する。
【０１３６】
以上のように、本実施の形態における通信処理装置１０１は、受信パケットの分類パラメータに応じて、
（１）即時割り込み
（２）遅延割り込み
（３）間隔制限付き遅延割り込み
（４）タイマ割り込み
を実現する。さらに、通信処理装置１０１は、タイマ割り込みで処理される分類の受信パケットに対し、帯域幅制限対象とそれ以外に分類して処理することで、
（１）即時性の高い通信
（２）非優先的に処理される通信
（３）非優先的に処理される通信のｐｐｓ制限
（４）帯域幅制限対象となる通信
（５）映像受信のように、デコーダにおける受信レートの制限により、受信レートが自動的に制御されるため、受信パケットを無制限に処理すべき通信を実現する。
【０１３７】
以上、本発明に係る通信処理装置および通信機器について、上記実施の形態を用いて説明したが、本発明はこれらに限定されるものではない。
【０１３８】
例えば、上記実施の形態では、転送制御部１０４は、受信事象発生と、その受信事象発生に対応する分類識別子とを割り込み制御部１１１に通知したが、受信パケット長など、割り込み管理テーブル１１２で分類定義されていない情報も合わせて通知してもよい。この情報は、振り分け部１０７によって分類された受信パケットに関するパケット関連情報である。この場合には、割り込み制御部１１１は、割り込み管理テーブル１１２において受信パケットの分類識別子に関連付けられている割り込み制御方法と上述のパケット関連情報とに応じた他の割り込み制御方法を特定し、他の割り込み制御方法で割り込み信号を発信することができる。その結果、受信事象発生に対してより適切な割り込み制御方法で割り込み信号を発信することができる。例えば、パケット長が所定の長さより短い受信パケットや、ＴＣＰのＳＹＮパケットに対して、強制的に間隔制限付き遅延割り込みを適用するなどにより、ＤｏＳ（Denial of Service）攻撃への対策が可能となる。また、転送制御部１０４は、分類識別子毎に管理されるＤｅｓｃｒｉｐｔｏｒが全てソフトウェアで処理されたことを検知した場合、割り込み制御部１１１に通知する。これによって、不要な割り込みを抑制することが可能となる。なお、割り込み制御部１１１がＤｅｓｃｒｉｐｔｏｒを検索して同様の処理を行なってもよい。
【０１３９】
また、設定部１１０は、分類識別子とその分類識別子に関連付けられたトラヒック種別（割り込み制御方法）との組み合わせを１つまたは複数個だけ、割り込み管理テーブル１１２に登録し、割り込み制御部１１１は、割り込み管理テーブル１１２に登録されている１つまたは複数個の組み合わせが、予め定められた組み合わせである場合には、割り込み管理テーブル１１２において、受信パケットの分類識別子に関連付けられている割り込み制御方法と異なる、予め定められた他の割り込み制御方法で割り込み信号を出力してもよい。例えば、割り込み制御部１１１は、割り込み管理テーブル１１２に遅延割り込みが割り込み制御方法として１つだけ登録されている場合には、即時割り込み方法で割り込み信号を出力してもよい。これにより、遅延割り込みの対象となるパケットの受信処理のスループットを向上することができる。
【０１４０】
また、転送制御部１０４は、メインメモリ１０２との間でパケットのデータを転送するため、転送制御部１０４が用いるＤｅｓｃｒｉｐｔｏｒで割り込み制御方法を指定してもよい。この場合、パケット毎の割り込み制御の変更が可能となる。
【０１４１】
また、上記実施の形態における通信処理装置１０１は、単体のＬＳＩとして実装されてもよいし、半導体ＩＰコアとして実装され、ＳｏＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）などに内蔵実装されてもよい。つまり、ブロック図（図１など）の各機能ブロックは典型的には集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い。（例えばメモリ以外の機能ブロックが１チップ化されていても良い。）ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０１４２】
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサ を利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。 また、各機能ブロックのうち、符号化または復号化の対象となるデータを格納する手段だけ１チップ化せずに別構成としても良い。
【０１４３】
また、上記実施の形態における通信処理装置１０１は、より転送効率を高くすることを可能とするＤｅｓｃｒｉｐｔｏｒを用いたＤＭＡ（Direct Memory Access）を利用する転送制御部１０４を備えた。しかし、本発明は、Ｄｅｓｃｒｉｐｔｏｒを用いたＤＭＡを使用した場合だけに実現できるものではなく、ＤＭＡを用いずに、パケットの受信の都度、プログラムＩ／Ｏによる転送を行なう場合においても実現できることは、同業の専門家であれば、容易に類推可能である。
【０１４４】
また、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【０１４５】
本発明にかかる通信処理装置、通信処理方法、およびその通信処理装置を搭載した通信機器は、家電などの比較的低い処理資源を有する装置において適切な通信機能を実現することができ、特に、通信帯域幅がアプリケーションの品質に重大な影響を与える通信を、他の通信と混在して行なう場合に有用であって、例えば、テレビ受像機、レコーダ、録画再生装置、セットトップボックス、またはＩＰ（Internet Protocol）通信装置などに適用することができる。
【符号の説明】
【０１４６】
１００    通信機器
１０１    通信処理装置
１０２    メインメモリ
１０３    ＣＰＵ
１０４    転送制御部
１０５    送信データ保持部
１０６    ＭＡＣ部
１０７    振り分け部
１０８    振り分けテーブル
１０８ｍ  第２記憶部
１０９    受信データ保持部
１１０    設定部
１１１    割り込み制御部
１１２    割り込み管理テーブル
１１２ｍ  第１記憶部
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
パケットを受信する受信部と、
前記パケットの分類種別を決定する振り分け部と、
前記分類種別に関連付けられた割り込み制御方法によって割り込み信号を出力する割り込み制御部と、
前記受信部の通信路情報に基づいて前記分類種別と前記割り込み制御方法の関連付けを変更する設定部と
を備える通信処理装置。
【請求項２】
前記設定部は、さらに、
割り込み管理テーブルに示されていない分類種別のパケットが前記受信部によって受信される場合、アプリケーションプログラムからの指示に応じて、前記分類種別と、前記パケットに応じた割り込み制御方法とを関連付けて前記割り込み管理テーブルに追加することにより、当該割り込み管理テーブルを更新し、
前記割り込み制御部は、前記割り込み管理テーブルを参照することにより、前記振り分け部によって決定される分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法によって割り込み信号を出力する
請求項１記載の通信処理装置。
【請求項３】
前記設定部は、
アプリケーションプログラムから前記通信路情報を取得し、前記通信路情報に応じた分類種別および割り込み制御方法を割り込み管理テーブルに登録することによって、前記関連付けを変更する
請求項１記載の通信処理装置。
【請求項４】
前記設定部は、さらに、
第１の分類種別および第１の割り込み制御方法を関連付けるとともに、第２の分類種別および第２の割り込み制御方法を関連付け、
前記割り込み制御部は、
前記振り分け部によって決定されるパケットの分類種別が第１の分類種別である場合には、前記第１の分類種別に関連付けられた第１の割り込み制御方法によって割り込み信号を出力し、
前記振り分け部によって決定されるパケットの分類種別が第２の分類種別である場合には、前記第２の分類種別に関連付けられた第２の割り込み制御方法によって割り込み信号を出力する、
請求項１記載の通信処理装置。
【請求項５】
前記設定部は、さらに、
分類種別と当該分類種別に関連付けられた割り込み制御方法との組み合わせを１つまたは複数個だけ、割り込み管理テーブルに登録し、
前記割り込み制御部は、さらに、
前記割り込み管理テーブルに登録されている１つまたは複数個の組み合わせが、予め定められた組み合わせである場合には、前記割り込み管理テーブルにおいて、前記振り分け部によって決定されるパケットの分類種別に関連付けられている割り込み制御方法と異なる、予め定められた他の割り込み制御方法によって割り込み信号を出力する、
請求項１記載の通信処理装置。
【請求項６】
前記割り込み制御部は、
前記割り込み管理テーブルに、パケットのデータがメモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として１つだけ登録されている場合には、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法によって割り込み信号を出力する、
請求項５記載の通信処理装置。
【請求項７】
前記設定部は、さらに、
パケットのデータがメモリに転送された直後に割り込み信号を出力する即時割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過し、且つ直前の割り込み信号が出力されてから前記予め定められた時間経過したときに割り込み信号を出力する間隔制限付き遅延割り込み方法、および、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法の中から、１つまたは複数の方法を前記割り込み制御方法として分類種別に関連付ける、
請求項１記載の通信処理装置。
【請求項８】
前記通信処理装置は、さらに、
前記振り分け部によって決定されたパケットに関するパケット関連情報を前記割り込み制御部に通知する転送制御部を備え、
前記割り込み制御部は、さらに、
前記転送制御部から前記パケット関連情報の通知を受けたときには、前記パケットの分類種別に関連付けられている割り込み制御方法と前記パケット関連情報とに応じた他の割り込み制御方法を特定し、前記他の割り込み制御方法によって前記割り込み信号を出力する、
請求項１記載の通信処理装置。
【請求項９】
前記設定部は、さらに、
前記分類種別を、当該分類種別を識別するための分類識別子として前記割り込み管理テーブルに登録し、前記割り込み制御方法を、当該割り込み制御方法に一意に定義付けされたトラヒック種別として前記割り込み管理テーブルに登録することによって、前記分類種別と前記割り込み制御方法とを関連付ける、
請求項１記載の通信処理装置。
【請求項１０】
パケットを受信し、
前記パケットの分類種別を決定し、
前記分類種別に関連付けられた割り込み制御方法によって割り込み信号を出力し、
前記パケットを受信するための通信路情報に基づいて前記分類種別と前記割り込み制御方法の関連付けを変更する、
通信処理方法。
【請求項１１】
通信処理装置を制御する方法であって、
前記通信処理装置は、パケットを受信し、前記パケットの種別に関連付けられている割り込み制御方法によって割り込み信号を出力し、
前記通信処理装置を制御する方法では、
前記通信処理装置を介した通信路を確立し、
前記通信路を特定するための通信路情報を前記通信処理装置に送信することにより、前記通信処理装置に対して、前記通信路情報に基づいて前記種別と前記割り込み制御方法の関連付けを変更させる、
通信処理装置の制御方法。
【請求項１２】
前記割り込み信号が出力される要因には、パケットのデータがメモリに転送されたことを要因とする受信割り込み要因、または、予め定められた期間が経過したことを要因とするタイマ割り込み要因があり、
前記通信処理装置の制御方法では、さらに、
前記割り込み信号を取得し、取得した割り込み信号が前記受信割り込み要因によって出力されたか、前記タイマ割り込み要因によって出力されたかを判定し、
前記受信割り込み要因によって出力されたと判定したときには、第１の受信処理方法により前記メモリに転送されたデータを処理し、
前記タイマ割り込み要因によって出力されたと判定したときには、第１の受信処理方法と異なる第２の受信処理方法により前記メモリに転送されたデータを処理する、
請求項１１記載の通信処理装置の制御方法。
【請求項１３】
予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法が前記割り込み制御方法としてパケットの種別に関連付けられてあり、
前記第２の受信処理方法により前記メモリに転送されたデータを処理するときには、
前記メモリに転送された前記タイマ割り込み方法の対象とされるパケットのデータの一群に対する処理が制限されるべきか否かを判定し、
制限されるべきでないと判定したときには、前記一群の全てのパケットのデータを処理し、
制限されるべきと判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理する、
請求項１２記載の通信処理装置の制御方法。
【請求項１４】
パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法と、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法とが、それぞれ前記割り込み制御方法としてパケットの種別に関連付けられてあり、
前記第１の受信処理方法により前記メモリに転送されたデータを処理するときには、
前記メモリに転送されたパケットのデータの一群が即時割り込み方法の対象とされるか、遅延割り込み方法の対象とされるかを前記一群のパケットの種別に基づいて判定し、
即時割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータを処理し、
遅延割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理する、
請求項１２記載の通信処理装置の制御方法。
【請求項１５】
パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法としてパケットの種別に関連付けられてあり、
前記第１の受信処理方法により前記メモリに転送されたデータを処理するときには、
前記割り込み制御方法として前記遅延割り込み方法のみがパケットの種別に関連付けられているか否かを判定し、
前記遅延割り込み方法のみが関連付けられていると判定したときには、前記メモリに転送された全てのパケットのデータを処理し、
前記遅延割り込み方法以外の割り込み制御方法もパケットの種別に関連付けられていると判定したときには、前記メモリに転送された前記遅延割り込み方法の対象とされる全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理する、
請求項１２記載の通信処理装置の制御方法。
【請求項１６】
通信処理装置を制御するためのプログラムであって、
前記通信処理装置は、パケットを受信し、前記パケットの種別に関連付けられている割り込み制御方法によって割り込み信号を出力し、
前記プログラムは、
前記通信処理装置を介した通信路を確立し、
前記通信路を特定するための通信路情報を前記通信処理装置に送信することにより、前記通信処理装置に対して、前記通信路情報に基づいて前記種別と前記割り込み制御方法を変更させる、
ことをコンピュータからなる前記処理ユニットに実行させるプログラム。
【請求項１７】
処理ユニットに割り込み信号を出力する通信処理装置と、前記処理ユニットとを有する通信機器であって、
前記通信処理装置は、
パケットを受信する受信部と、
前記パケットの分類種別を決定する振り分け部と、
前記分類種別に関連付けられた割り込み制御方法によって割り込み信号を前記処理ユニットに出力する割り込み制御部と、
前記受信部の通信路情報に基づいて前記分類種別と前記割り込み制御方法の関連付けを更新する設定部とを備え、
前記処理ユニットは、
アプリケーションプログラムを起動し、前記アプリケーションプログラムによって、前記通信処理装置を介した通信路を確立し、前記通信路を特定するための前記通信路情報を前記通信処理装置に送信する、
通信機器。
【請求項１８】
請求項１７記載の通信機器を備えたテレビ受像機、レコーダ、録画再生装置、セットトップボックス、またはＩＰ（Internet Protocol）通信装置。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2009141992.tif 000023
【図２】
2009141992.tif 000024
【図３】
2009141992.tif 000025
【図４】
2009141992.tif 000026
【図５】
2009141992.tif 000027
【図６Ａ】
2009141992.tif 000028
【図６Ｂ】
2009141992.tif 000029
【図６Ｃ】
2009141992.tif 000030
【図７】
2009141992.tif 000031
【図８】
2009141992.tif 000032
【図９】
2009141992.tif 000033
【図１０】
2009141992.tif 000034
【図１１】
2009141992.tif 000035
【図１２】
2009141992.tif 000036
【図１３】
2009141992.tif 000037
【図１４】
2009141992.tif 000038
【図１５】
2009141992.tif 000039
【図１６】
2009141992.tif 000040
【図１７】
2009141992.tif 000041
【図１８】
2009141992.tif 000042
【国際調査報告】
2009141992.tif 000043
2009141992.tif 000044
2009141992.tif 000045
2009141992.tif 000046