JPWO2009141992A1 - 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器 - Google Patents

通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器 Download PDF

Info

Publication number
JPWO2009141992A1
JPWO2009141992A1 JP2010512937A JP2010512937A JPWO2009141992A1 JP WO2009141992 A1 JPWO2009141992 A1 JP WO2009141992A1 JP 2010512937 A JP2010512937 A JP 2010512937A JP 2010512937 A JP2010512937 A JP 2010512937A JP WO2009141992 A1 JPWO2009141992 A1 JP WO2009141992A1
Authority
JP
Japan
Prior art keywords
interrupt
packet
management table
data
control method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010512937A
Other languages
English (en)
Other versions
JP5205454B2 (ja
Inventor
敦宏 辻
敦宏 辻
明弘 海老名
明弘 海老名
金子 洋平
洋平 金子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2010512937A priority Critical patent/JP5205454B2/ja
Publication of JPWO2009141992A1 publication Critical patent/JPWO2009141992A1/ja
Application granted granted Critical
Publication of JP5205454B2 publication Critical patent/JP5205454B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

通信処理装置(101)は、パケットを受信するMAC部(106)と、受信されるパケットを分類する振り分け部(107)と、分類されたパケットのデータをメインメモリ(102)に転送する転送制御部(104)と、割り込み管理テーブル(112)を記憶している第1記憶部(112m)と、割り込み管理テーブル(112)を参照することにより、振り分け部(107)で分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で割り込み信号をCPU(103)に出力する割り込み制御部(111)と、CPU(103)で起動するアプリケーションプログラムからの指示に応じて、割り込み管理テーブル(112)に分類種別および割り込み制御方法を登録することにより、その割り込み管理テーブル(112)を更新する設定部(110)とを備える。

Description

本発明は、例えばパケットなどのデータを受信して処理する通信処理装置およびその通信処理方法に関し、特に、IP(Internet Protocol)通信などにおけるパケットの割り込み制御を行なう通信処理装置およびその通信処理方法に関する。
従来、IP通信などにおいて割り込み制御を行なう通信機器が提供されている。
図17は、割り込み制御を行なう一般的な通信機器の構成を示すブロック図である。
一般的に、通信機器2000は、図17に示すように、通信処理装置2201、メインメモリ2102、およびCPU(Control Processing Unit)2103などの各構成要素を具備している。これらの構成要素は、システムバス2202を介して接続され、これらの構成要素の動作は、CPU2103上で動作するソフトウェアによって制御される。
このような通信機器2000に具備される通信処理装置2201が割り込み機能を持つことは一般的である。割り込み機能は、通信処理装置2201からCPU2103に対する信号(割り込み信号)の発信によって実現される。この割り込み機能は、通信処理装置2201における様々な事象の発生を、即時にCPU2103に通知し、ソフトウェアによる対応する処理を迅速に行なうことを可能とする。その事象としては、例えば、通信データ(パケット)の受信や、パケットの送信完了、異常状態の発生などが含まれる。
従来、パケットの受信に対する割り込み信号の発信方法には幾つかの方法がある。一つ目の方法は、一回のパケット受信毎に割り込み信号を発信する方法である。二つ目の方法は、通信処理装置2201でパケットを受信した後、ソフトウェアにより処理されることで通信処理装置2201の管理外となるパケットが、通信処理装置2201の内部に存在しなくなるまで割り込み信号を発信する方法などがある。二つ目の方法では、通信処理装置2201の管理下となる受信パケットが存在する限り、ソフトウェアに対して割り込みが発生することとなる(ソフトウェアは一時的に割り込みを停止して処理を継続する)。さらには、三つ目の方法として、National Semiconductor(登録商標)社のDP83816に見られるように、通信処理装置2201におけるパケットの受信から、所定の時間だけ遅延させて割り込み信号を発信する方法(遅延割り込み)もある。遅延割り込みは、長さの短いパケットを頻繁に受信するような事象が発生した場合において、割り込み処理に伴うソフトウェア処理量を軽減する方法として有用である。一方、このような割り込み処理に伴うソフトウェア処理量を軽減するために、基本ソフトウェアであるOS(Operating System)が持つタイマ機能を用いて、定期的に通信処理装置2201の状態を監視して制御することで、割り込み機能を受信用に用いないことも提案されている。しかしながら、このソフトウェアによるタイマ機能は、その精度が荒く(数十msecオーダ)、また、そのタイマ機能自体がソフトウェア処理量を増大させるため、CPUの処理能力が低い家電向けのCPUなどでは、必ずしも好ましくない。また、パケットの受信は、外部から発生する事象のため、タイマ機能により通信処理装置2201におけるパケットの受信を確認するためには、常にタイマ機能を有効にしておく必要があり、不要なソフトウェア処理負荷の増大を招く。
また、通信処理装置2201で受信される複数のパケットには、様々なアプリケーションプログラム(以下、単にアプリケーションという)に属するパケットが混在することが一般的である。特に、汎用的なIP通信を用いる場合、HTTP、FTP、またはSMTP/POP3(メール機能)などの異なるセションプロトコルを用いるアプリケーションに属するパケットが混在することがある。また、同じHTTPを用いるアプリケーションの中でも、Webブラウジングから映像のストリーミングまで様々な処理を行なうアプリケーションがあるため、その受信パケットの量や即時性において、様々な要件が混在することがある。また、トランスポート層としてTCP(Transmission Control Protocol)を用いる場合、その転送性能となるスループットは、転送端末間における処理遅延に影響されるため、受信応答となるACK受信は、早期に処理されることが好ましい。
このように、一つの通信処理装置2201で扱う受信パケットに対して、様々な要件が混在することから、通信処理装置2201の中で受信パケットを分類して管理し、ソフトウェアにおける処理を容易とする通信機器が提案されている(例えば、特許文献1参照)。
上記特許文献1の通信機器においては、受信パケットを転送制御部(転送制御部の詳細については後述する)が管理および制御するために用いる転送管理識別子(Descriptor)に対して、パケット分類個別のRingを用いる。この特許文献1の通信機器は、メインメモリに転送された受信パケットに対して、TCP/IPスタックなどの汎用的な階層処理を行なわず、直接各アプリケーションが上記Ringを扱うことを前提に、受信したパケットのメインメモリ上でのコピー回数を軽減することを目的としている。
図18は、上記特許文献1の通信機器2000を本発明と比較するために記述したブロック図である。上記特許文献1の通信機器2000の通信処理装置2201は、転送制御部2304、送信データ保持部2105、MAC部2106、振り分け部2107、振り分けテーブル2108、受信データ保持部2109、設定部2310、および割り込み制御部2311を具備する。
転送制御部2304は、その送信処理として、メインメモリ2102との間のパケットのデータの転送を管理および制御して送信パケットのデータを送信データ保持部2105に転送する。さらに、転送制御部2304は、その受信処理として、受信パケットのデータを受信データ保持部2109からメインメモリ2102に転送する。送信データ保持部2105は、転送制御部2304から転送された送信パケットのデータをMAC部2106に転送する。MAC部2106は、送信データ保持部2105から転送された送信パケットのデータに対して、所定のMAC(Media Access Control)規格に準ずる送信処理を行なうとともに、所定のMAC規格に準ずる受信処理を行なって振り分け部2107に受信パケットのデータを転送する。なお、MAC部2106から接続される外部ブロックは、物理層に依存し、通信機器2000のネットワークと接続されるI/F(インターフェース)である。
振り分け部2107は、MAC部2106から転送された受信パケットのデータを、振り分けテーブル2108を参照して分類し、受信データ保持部2109に分類情報とともに転送する。受信データ保持部2109は、振り分け部2107から転送された受信パケットのデータと分類情報を関連付けて保持する。転送制御部2304は、その受信処理として、受信データ保持部2109に保持された受信パケットのデータを、関連付けられた分類情報に基づいてメインメモリ2102に転送する。この時、転送制御部2304は、受信パケットのデータをメインメモリ2102へ転送完了したことを割り込み制御部2311に通知し、割り込み制御部2311は、転送制御部2304からの通知により、CPU2103に割り込み信号を発信する。また、設定部2310は、CPU2103からの振り分けテーブル2108に対する設定変更要求を受け付け、振り分けテーブル2108の変更を行なう。
また、受信パケットの種別に応じた方法でその受信パケットに対する割り込み制御を行なう通信機器も提案されている(例えば、特許文献2参照)。特許文献2の通信機器は、受信パケットの種別を解析し、その受信パケットがリアルタイムパケットか否かを判別してバッファに転送する。そして、通信機器は、リアルタイムパケットであると判別したときには、割り込み信号を即時にCPUに発信し、リアルタイムパケットでないと判別したときには、受信パケットを受信してから一定時間経過した後、または、バッファに一定量のデータが蓄積された後に、割り込み信号をCPUに発信する。つまり、上記特許文献2の通信機器は、受信パケットの種別に応じて、その受信パケットに対する割り込み制御方法を切り替えている。
特許第2723970号公報 特開2008−59577号公報
しかしながら、上記特許文献1および特許文献2の通信機器を含む従来の通信機器では、ソフトウェアの受信処理負荷を抑えつつアプリケーションの処理に応じた割り込みを適宜行なうことができないという問題がある。
つまり、従来の通信機器では、以下5点の状況がある。
(a)特許文献1の通信機器では、受信パケットの分類それぞれに対して、異なる要件を満たす割り込み制御を行なうことができない。
(b)遅延割り込みはソフトウェアの処理方法によっては割り込み処理量の低減に繋がらないリスクが存在する。
(c)OSが持つタイマ機能のみにより受信処理を管理する場合、まったくパケットの受信が発生しなくてもタイマ機能を動作させる必要があるため、不要なソフトウェア処理量を増大させる。
(d)OSが持つタイマ機能を用いる場合、その精度が荒く(数十msecオーダ)、また、そのタイマ機能自体がソフトウェア処理量を増大させる。タイマ精度としては、例えば100Mbpsの能力を持つEthernet(登録商標)の通信においては、数百μsec以下であることが求められる。また、タイマ機能による受信制御は、即時性を有する通信に対しても、その処理を遅延させることとなる。
(e)特許文献2の通信機器では、割り込み制御方法が受信パケットの種別に応じて予め定められている。
その結果、家電にネット機能を搭載する場合などに用いられる家電向けのCPUなど、比較的処理能力の低いCPUを用いる場合において、以下の4点の課題がある。
(1)パケットの受信ごとに即時に割り込み信号を発信する割り込み制御方法では、単位時間あたりの大量のパケットの受信による割り込み処理のためにソフトウェア処理量が増大し、その結果、CPU負荷の増大により、通信機器本来のアプリケーションの実行に支障を招くリスクが増大する。
(2)OSが持つタイマ機能を用いる受信制御方法では、精度の高い(数百μsec以下)タイマを実現することは困難である。
(3)タイマ機能による受信制御方法では、即時性を有する通信に対して、処理が遅延され、その結果、スループットの低下を招くリスクが増大する。
(4)受信パケットの種別に応じて割り込み制御方法を切り替えても、受信パケットの種別のそれぞれに対して割り込み制御方法が固定されているため、アプリケーションの処理(映像データの受信再生など)に求められる要件に応じた割り込みを適宜行なうことができない。
そこで、本発明は、かかる問題に鑑みてなされたものであって、ソフトウェアの受信処理負荷を抑えつつアプリケーションの処理に応じた割り込みを適宜行なうことができる通信処理装置およびその通信処理装置を備えた通信機器を提供することを目的とする。
上記目的を達成するために、本発明の通信処理装置は、パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置であって、パケットを受信する受信部と、前記受信部で受信されるパケットの種類に応じて、複数の分類種別のうちの何れか1つの分類種別に前記パケットを分類する振り分け部と、前記受信部によって受信されて前記振り分け部によって分類されたパケットのデータを前記メモリに転送する転送制御部と、分類種別と、割り込み信号を出力するタイミングに関する割り込み制御方法とを関連付けて示す割り込み管理テーブルを記憶している記憶部と、前記割り込み管理テーブルを参照することにより、前記振り分け部によって分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で前記割り込み信号を前記処理ユニットに出力する割り込み制御部と、前記処理ユニットで起動するアプリケーションプログラムからの指示に応じて、前記割り込み管理テーブルに分類種別および割り込み制御方法を登録することにより、当該割り込み管理テーブルを更新する設定部とを備える。
これにより、割り込み管理テーブルにおいて、受信されるパケットの種類または分類種別に関連付けられた割り込み制御方法が、そのパケットに対して適用され、その割り込み制御方法で割り込み信号が処理ユニット(例えばCPU)に出力される。したがって、パケットの分類種別に対して、その分類種別のパケットを受信処理するために適切とされる割り込み制御方法を割り込み管理テーブルに登録しておけば、そのパケットの受信処理に必要とされる即時性などの要件を満たしつつ、そのパケットに対して必要以上の発信頻度で割り込み信号を出力することを防ぐことができる。つまり、処理ユニットにおいてメモリに転送されたパケットのデータを処理しようとするソフトウェアの受信処理負担を適切に抑えることができる。例えば、パケットの分類種別ごとに異なる割り込み制御方法を用いることができるため、即時性の高いパケットに対する割り込み制御方法として即時割り込み方法を用いたり、即時性が低く、ある程度まとめて受信処理をすればよいパケットに対する割り込み制御方法としてタイマ割り込み方法を用いたりすることにより、パケットの分類種別ごとに最適な受信制御が実現される。
さらに、処理ユニットで起動するアプリケーションプログラムからの指示に応じて、分類種別と割り込み制御方法とが関連付けられて割り込み管理テーブルに登録されるため、アプリケーションプログラムは、自らが実行しようとする通信に用いられるパケットの分類種別と、そのパケットを用いた処理に求められる要件を満たすような割り込み制御方法とを割り込み管理テーブルに登録することができる。つまり、割り込み管理テーブルは書き換え可能であり、通信処理装置の初期化時あるいは動作中に変更されるため、起動するアプリケーションプログラムの変更などに柔軟な運用が可能となる。言い換えれば、割り込み管理テーブルに定義される割り込み制御方法を動的に変更できるため、複数のアプリケーションプログラムが動作または停止するような通信機器に対して容易に適用可能となる。その結果、ソフトウェアの受信処理負荷を抑えつつアプリケーションプログラムの処理に応じた割り込みを適宜行なうことができ、適切に受信処理を行なうことができる。
また、前記設定部は、前記割り込み管理テーブルに示されていない分類種別のパケットが前記受信部によって受信される場合、前記アプリケーションプログラムからの指示に応じて、前記分類種別と、前記パケットに応じた割り込み制御方法とを関連付けて前記割り込み管理テーブルに追加することにより、当該割り込み管理テーブルを更新してもよい。
これにより、新たな通信路が確立されるときに、その通信路に応じたパケットの分類種別と割り込み制御方法とが割り込み管理テーブルに登録されていなくても、そのアプリケーションプログラムの指示に応じてそれらが登録されるため、新たな通信路を含む複数の通信路のそれぞれに対して適切な割り込み制御を行なうことができる。
また、前記設定部は、前記アプリケーションプログラムからの指示として、当該アプリケーションプログラムによって確立された通信路を特定するための通信路情報を取得し、前記通信路情報に応じた分類種別および割り込み制御方法を前記割り込み管理テーブルに登録してもよい。
これにより、通信路情報に応じた割り込み制御方法が割り込み管理テーブルに登録されるため、その通信路に応じたより適切な割り込み制御方法を登録することができる。
また、前記設定部は、前記割り込み管理テーブルに、第1の分類種別および第1の割り込み制御方法を関連付けて登録するとともに、第2の分類種別および第2の割り込み制御方法を関連付けて登録し、前記割り込み制御部は、前記振り分け部によって分類されるパケットの分類種別が第1の分類種別である場合には、前記割り込み管理テーブルにおいて当該第1の分類種別に関連付けられた第1の割り込み制御方法で、割り込み信号を前記処理ユニットに出力し、前記振り分け部によって分類されるパケットの分類種別が第2の分類種別である場合には、前記割り込み管理テーブルにおいて当該第2の分類種別に関連付けられた第2の割り込み制御方法で、割り込み信号を前記処理ユニットに出力してもよい。
これにより、即時性に対して互いに異なる要件を有する第1の分類種別のパケットと第2の分類種別のパケットとが混在する環境でも、それぞれに適切な割り込み制御方法で割り込み信号を出力することができるため、何れの分類種別のパケットに対しても即時に割り込み信号を出力する割り込み制御方法が用いられる場合と比べて、割り込み信号の発信頻度を適切に抑制することができる。また、パケットの分類種別ごとに異なる割り込み制御方法を用いることができるため、即時性の高いパケットに対する割り込み制御方法として即時割り込み方法を用いたり、即時性が低く、ある程度まとめて受信処理をすればよいパケットに対する割り込み制御方法としてタイマ割り込み方法を用いたりすることにより、パケットの分類種別ごとに最適な受信制御が実現される。
ここで例えば、振り分け部においてパケットを分類する際に用いられる分類識別子(Ring識別子)を分類種別に用い、メモリとの間でパケットのデータを転送するために転送制御部が用いるDescriptorが分類識別子ごとに独立して管理されている場合には、転送制御において用いられる分類と同じ分類で割り込み制御を行なうことができるため、通信処理装置を制御するソフトウェアは容易に割り込み制御とパケットの分類とを関連付けて制御することができ、ソフトウェアにより再度分類を判定するなどの処理負荷の増大を抑制することができる。
また、前記設定部は、分類種別と当該分類種別に関連付けられた割り込み制御方法との組み合わせを1つまたは複数個だけ、前記割り込み管理テーブルに登録し、前記割り込み制御部は、前記割り込み管理テーブルに登録されている1つまたは複数個の組み合わせが、予め定められた組み合わせである場合には、前記割り込み管理テーブルにおいて、前記振り分け部によって分類されるパケットの分類種別に関連付けられている割り込み制御方法と異なる、予め定められた他の割り込み制御方法で割り込み信号を出力してもよい。例えば、前記割り込み制御部は、前記割り込み管理テーブルに、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として1つだけ登録されている場合には、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法で割り込み信号を出力する。
例えば、割り込み管理テーブルに割り込み制御方法として、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法と遅延割り込み方法とが登録されている場合には、遅延割り込み方法に対応する分類種別のパケットに対する処理よりも、タイマ割り込み方法に対応する分類種別のパケットに対する処理を優先させてソフトウェアに実行させることができ、その結果、それぞれのパケットのデータの処理をソフトウェアに適切に実行させることができる。しかし、割り込み管理テーブルに割り込み制御方法として遅延割り込み方法だけが登録されている場合にまで、割り込み信号の出力を遅延させる必要はない。そこで、本発明では、割り込み管理テーブルに割り込み制御方法として遅延割り込み方法だけが登録されている場合には、遅延割り込み方法ではなく即時割り込み方法で割り込み信号が出力されるため、通信状況に応じて、遅延割り込み方法でも受信処理可能な分類種別のパケットに対するスループットを向上することができる。
また、前記設定部は、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過し、且つ直前の割り込み信号が出力されてから前記予め定められた時間経過したときに割り込み信号を出力する間隔制限付き遅延割り込み方法、および、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法の中から、1つまたは複数の方法を前記割り込み制御方法として前記割り込み管理テーブルに登録してもよい。
これにより、割り込み信号の発信頻度を抑制しつつ、即時性を有する通信に対するパケットの処理を遅延することなく処理することが可能となる。また、タイマ割り込み方法では、OSにより制御されるタイマ機能と比較してタイマ時間の精度が高いため(数百μsec以下)、大量に送信されるHD(High Definition)画質の映像データの受信処理でも定期的に適切に行なうことができ、DoS(Denial of Service)攻撃対策の精度を高めることが可能となる。さらに、割り込み制御部が割り込み信号を出力することで、OSがタイマ機能として制御を行なう必要がないため、ソフトウェア処理量の少ないタイマ機能を提供することができる。また、即時性が必要とされず、ある程度まとめて受信処理をすればよいパケットに対しては、割り込み信号の発信頻度を抑えて、ソフトウェアの受信処理負担を軽減することができる。また、間隔制限付き遅延割り込み方法では、割り込み頻度を所定の間隔に制限することが可能となり、ソフトウェアによる処理負荷を抑制することがさらに容易になる。なお、間隔制限付き遅延割り込み方法による1回の割り込みに対する受信処理量を制限してもよく、この場合には、受信量制限(pps制限、bps制限)を容易に行なうことができる。また、即時割り込み方法では、間隔制限付き遅延割り込み方法のように即時性を犠牲にすることなく、即時性の高い処理が要求されるパケットに対して適切に受信処理を行なうことができる。また、即時割り込み方法、遅延割り込み方法、間隔制限付き遅延割り込み方法、およびタイマ割り込み方法が割り込み管理テーブルに登録されれば、多種多様な分類種別のパケットが同時期に受信されても、それらのパケットに適切な割り込み制御方法で割り込み信号を出力することができる。
また、前記転送制御部は、さらに、前記振り分け部によって分類されたパケットに関するパケット関連情報を前記割り込み制御部に通知し、前記割り込み制御部は、前記転送制御部から前記パケット関連情報の通知を受けたときには、前記割り込み管理テーブルにおいて前記パケットの分類種別に関連付けられている割り込み制御方法と前記パケット関連情報とに応じた他の割り込み制御方法を特定し、前記他の割り込み制御方法で前記割り込み信号を出力してもよい。
例えば、受信データ長や、特定のプロトコルの特定の情報などがパケット関連情報として割り込み制御部に通知される。これにより、そのようなパケット関連情報に応じて割り込み制御方法が特定されるため、例えば、DoS攻撃などに対抗する割り込み制御方法に変更することができる。つまり、DoS攻撃対策を容易とすることができる。例えば、DoS攻撃に対して、受信したパケットを一律に廃棄するのではなく、割り込み制御方法を切り替えることでソフトウェア処理量を低減しながら、本来のアプリケーションプログラムの処理に支障が出ないように制御することが可能となる。
また、上記目的を達成するために、本発明の通信処理装置の制御方法は、パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置を制御する方法であって、前記通信処理装置は、割り込み管理テーブルを保持し、パケットを受信して当該パケットのデータをメモリに転送し、前記割り込み管理テーブルにおいて受信されるパケットの種別に関連付けられている割り込み制御方法で、前記パケットに対する割り込み信号を出力し、前記通信処理装置を制御する方法では、前記通信処理装置を介した通信路を確立し、前記通信路を特定するための通信路情報を前記通信処理装置に送信することにより、前記通信処理装置に対して、前記通信路情報に対応するパケットの種別および割り込み制御方法を前記割り込み管理テーブルに登録させて、当該割り込み管理テーブルを更新させる。
これにより、例えばアプリケーションプログラムによって確立される通信路に対応するパケットの種別および割り込み制御方法が割り込み管理テーブルに登録されるため、通信制御装置に対して、アプリケーションプログラムの処理に応じた割り込み信号の出力を適宜実行させることができる。
また、前記割り込み信号が出力される要因には、パケットのデータが前記メモリに転送されたことを要因とする受信割り込み要因、または、予め定められた期間が経過したことを要因とするタイマ割り込み要因があり、前記通信処理装置の制御方法では、さらに、前記割り込み信号を取得し、取得した割り込み信号が前記受信割り込み要因によって出力されたか、前記タイマ割り込み要因によって出力されたかを判定し、前記受信割り込み要因によって出力されたと判定したときには、第1の受信処理方法により前記メモリに転送されたデータを処理し、前記タイマ割り込み要因によって出力されたと判定したときには、第1の受信処理方法と異なる第2の受信処理方法により前記メモリに転送されたデータを処理してもよい。
これにより、割り込み信号が出力される要因が受信割り込み要因であるか、タイマ割り込み要因であるかに応じて、メモリに転送されたデータに対する受信処理方法が第1の受信処理方法と第2の受信処理方法とで切り替えられるため、それらの要因ごとに適切な受信処理を行なうことができる。
また、前記割り込み管理テーブルには、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法が前記割り込み制御方法として登録されてあり、前記第2の受信処理方法により前記メモリに転送されたデータを処理するときには、前記メモリに転送された前記タイマ割り込み方法の対象とされるパケットのデータの一群に対する処理が制限されるべきか否かを判定し、制限されるべきでないと判定したときには、前記一群の全てのパケットのデータを処理し、制限されるべきと判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理してもよい。
例えば、タイマ割り込み要因で割り込み信号が出力されるようなパケットでも、ストリームのパケットのように、受信時に広い帯域幅が保障されるべきパケットと、大量データダウンロードのパケットのように、そのような保障を必要としないが大量に受信されて処理されるべきパケットとがある。このようなパケットが混在するような場合には、ストリームのパケットについては、メモリに転送されたパケットのデータが1回の割り込みで全て処理されるべきであり、大量データダウンロードのパケットについては、ストリームのパケットが適切に処理されるように、1回の割り込みで処理されるデータ量が制限されるべきである。そこで、本発明では、処理が制限されるべきか否かが判定され、制限されるべきでないと判定されたときには、全てのパケットのデータが処理され、制限されるべきと判定されたときには、所定数以下のパケットのデータだけが処理される。したがって、本発明では、映像ストリーム受信などの受信帯域幅がアプリケーションの品質に極めて重大な影響を与える場合のパケットの受信に対して、他のパケットの受信の混在時にも安定した受信帯域幅を確保することができる。
また、前記割り込み管理テーブルには、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法と、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法とが、それぞれ前記割り込み制御方法として登録されてあり、前記第1の受信処理方法により前記メモリに転送されたデータを処理するときには、前記処理ユニットが、前記メモリに転送されたパケットのデータの一群が即時割り込み方法の対象とされるか、遅延割り込み方法の対象とされるかを前記一群のパケットの種別に基づいて判定し、即時割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータを処理し、遅延割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理してもよい。
例えば、受信割り込み要因で割り込み信号が出力されるようなパケットでも、TCPのACK(ACKnowledgement)処理のパケットように、即時に処理されるべきパケットと、ウェブブラウズのパケットのように、受信時の帯域幅の保障を必要としないパケットとがある。このようなパケットが混在するような場合には、ACK処理のパケットについては、メモリに転送されたパケットのデータが1回の割り込みで全て処理されるべきであり、ウェブブラウズのパケットについては、ACK処理のパケットが適切に処理されるように、1回の割り込みで処理されるデータ量が制限されるべきである。そこで、本発明では、メモリに転送されたパケットのデータの一群が即時割り込み方法の対象とされるか、遅延割り込み方法の対象とされるかが判定され、即時割り込み方法の対象とされると判定されたときには、全てのパケットのデータが処理され、遅延割り込み方法の対象とされると判定されたときには、所定数以下のパケットのデータだけが処理される。したがって、本発明では、ACK処理のパケットなどの即時性が求められるパケットの受信に対して、他のパケットの受信の混在時にも確実に即時性を確保することができる。
また、前記割り込み管理テーブルには、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として登録されてあり、前記第1の受信処理方法により前記メモリに転送されたデータを処理するときには、前記割り込み管理テーブルに割り込み制御方法として前記遅延割り込み方法のみが登録されているか否かを判定し、前記遅延割り込み方法のみが登録されていると判定したときには、前記メモリに転送された全てのパケットのデータを処理し、前記遅延割り込み方法以外の割り込み制御方法も登録されていると判定したときには、前記メモリに転送された前記遅延割り込み方法の対象とされる全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理してもよい。
これにより、割り込み管理テーブルに、遅延割り込み方法と他の割り込み制御方法(例えばタイマ割り込み方法)とが登録されている場合には、メモリに転送された遅延割り込み方法の対象とされる全てのパケットのデータのうち、所定数以下のパケットのデータだけが処理されるため、タイマ割り込み方法の対象とされるパケットのデータに対する処理の妨げとならないように、遅延割り込み方法の対象とされるパケットのデータを処理することができる。また、割り込み管理テーブルに、遅延割り込み方法だけが登録されている場合には、メモリに転送された全てのパケットのデータが処理されるため、遅延割り込み方法の対象とされるパケットの受信処理のスループットを向上することができる。
なお、本発明は、このような通信処理装置や、通信処理装置の制御方法として実現することができるだけでなく、その通信処理装置を備えて上記制御方法によりその通信処理装置を制御する通信機器、その通信処理装置が通信処理する方法、通信処理装置を制御するためのプログラムとしても実現することができ、そのプログラムを格納する記憶媒体や、集積回路としても実現することができる。
ソフトウェアの受信処理負荷を抑えつつアプリケーションの処理に応じた割り込みを適宜行なうことができる通信処理装置およびその通信処理装置を備えた通信機器を提供することを目的とする。
(本願の技術的背景に関する情報)
2008年5月19日に出願された出願番号2008−130285の日本出願の明細書、図面および特許請求の範囲における開示は、その全体を、参照用として、本願に取り込む。
図1は、本発明の実施の形態に係る通信機器および通信処理装置の構成を示すブロック図である。 図2は、本発明の実施の形態に係る振り分け部で扱う受信パケットのフォーマット例を示す図である。 図3は、本発明の実施の形態に係る振り分けテーブルの一例を示す図である。 図4は、本発明の実施の形態に係る割り込み管理テーブルの一例を示す図である。 図5は、本発明の実施の形態に係る割り込み管理テーブルの他の例を示す図である。 図6Aは、本発明の実施の形態に係る即時割り込みのタイミングを示す図である。 図6Bは、本発明の実施の形態に係る遅延割り込みのタイミングを示す図である。 図6Cは、本発明の実施の形態に係る間隔制限付き遅延割り込みのタイミングを示す図である。 図7は、本発明の実施の形態に係るアプリケーションおよび設定部によるテーブル更新処理の一例を示すフローチャートである。 図8は、本発明の実施の形態に係る割り込み制御部の全体的な動作である割り込み制御処理を示すフローチャートである。 図9は、本発明の実施の形態に係る割り込み制御部における割り込み制御処理で実施される割り込み制御設定の詳細を示すフローチャートである。 図10は、本発明の実施の形態に係る割り込み制御部における割り込み制御処理で実施される割り込み発信制御の詳細を示すフローチャートである。 図11は、本発明の実施の形態に係る割り込み制御部における割り込み発信制御で実施されるタイマ割り込み制御の詳細を示すフローチャートである。 図12は、本発明の実施の形態に係る割り込み制御部における割り込み発信制御で実施される遅延割り込み制御の詳細を示すフローチャートである。 図13は、本発明の実施の形態に係る割り込み制御部における割り込み発信制御で実施される間隔制限付き遅延割り込み制御の詳細を示すフローチャートである。 図14は、本発明の実施の形態に係る通信処理装置を制御するソフトウェアにおける割り込みハンドラの受信処理を示すフローチャートである。 図15は、本発明の実施の形態に係る通信処理装置を制御するソフトウェアにおける割り込みハンドラの受信処理で実施されるタイマ割り込み処理を示すフローチャートである。 図16は、本発明の実施の形態に係る通信処理装置を制御するソフトウェアにおける割り込みハンドラの受信処理で実施される受信割り込み処理を示すフローチャートである。 図17は、通信処理装置を具備する通信機器の構成の例を示すブロック図である。 図18は、従来の通信処理装置の一構成例を示すブロック図である。
以下、本発明の実施の形態について、図面を参照しながら説明する。
図1は、本発明の実施の形態に係る通信機器および通信処理装置の構成を示すブロック図である。
本実施の形態における通信機器100は、通信処理装置101と、メインメモリ102と、CPU103とを備える。なお、図1では、通信機器100の上記各構成要素に接続するシステムバスは説明の便宜上省略してあるが、本発明の本質とは無関係である。また、図1において、メインメモリ102およびCPU103はそれぞれ1つのみ記載されているが、物理的あるいは論理的に複数存在していてもよく、それらの数は本発明の本質とは無関係である。
通信処理装置101は、転送制御部104、送信データ保持部105、MAC部106、振り分け部107、第2記憶部108m、受信データ保持部109、設定部110、割り込み制御部111、および第1記憶部112mを具備する。
転送制御部104は、その送信処理として、メインメモリ102との間のパケットのデータの転送を管理および制御して送信パケットのデータを送信データ保持部105に転送する。さらに、転送制御部104は、その受信処理として、受信パケットのデータを受信データ保持部109からメインメモリ102に転送する。
送信データ保持部105は、転送制御部104から転送された送信パケットのデータをMAC部106に転送する。MAC部106は、送信データ保持部105から転送された送信パケットのデータを、所定のMAC規格に準ずる送信処理により送信するとともに、所定のMAC規格に準ずる受信処理によりパケットを受信して振り分け部107に受信パケットのデータを転送する。なお、MAC部106から接続される外部ブロックは、物理層に依存し、通信機器100のネットワークと接続されるI/F(インターフェース)である。
振り分け部107は、第2記憶部108mに記憶されている振り分けテーブル108を参照して、MAC部106から転送された受信パケットのデータを分類し、受信データ保持部109に分類識別子とともに転送する。受信データ保持部109は、振り分け部107から転送された受信パケットのデータと分類識別子を関連付けて保持する。なお、分類識別子は、振り分け部107による分類結果を示し、受信パケットのデータの内容に応じてそのデータに割り当てられる分類種別である。
振り分け部107および振り分けテーブル108の詳細は、本発明の本質とは関係ないが、割り込み管理テーブル112における分類識別子を理解するために有用であるため、以下、それらの詳細について説明する。
図2は、振り分け部107で扱う受信パケットのフォーマット例を示す図である。具体的には、図2は、MACとしてEthernet(登録商標)、ネットワーク層としてIP、トランスポート層としてTCPを使用した場合のフォーマット例を示す。なお、本実施の形態では、振り分け部107で扱う受信パケットのフォーマットとして、MAC、ネットワーク層、およびトランスポート層などを用いるが、これらと異なるものを用いてもよい。
例えば、受信パケットのデータは、MACヘッダ401、IPヘッダ402、TCPヘッダ403およびペイロードデータ404を含む。この場合、受信パケットを分類するために用いられる情報としては、例えば、MACヘッダ401に含まれる宛先MACアドレス401aもしくは送信元MACアドレス401b、IPヘッダに含まれるIP Version(Ver)402aもしくはトランスポートプロトコル番号(Protocol)402b、または、TCPヘッダ403に含まれる送信元ポート番号403aもしくは宛先ポート番号403bなどが挙げられる。これらの一部を用いて他を任意としてもよいし、すべてを用いてもよい。さらに、受信パケットのデータに含まれる他の情報を分類に用いてもよい。例えば、Protocol402bがTCP(0x06)を示し、送信元ポート番号403aが80番である場合、受信パケットがHTTPサーバからの受信パケットであると特定できる。さらに、宛先ポート番号403bにより、その受信パケットを扱うアプリケーションが特定でき、その受信パケットが映像通信に用いられるものか否かが受信する通信機器100内では一意に特定可能となる。
図3は、振り分けテーブル108の一例を示す図である。
例えば、振り分けテーブル108は、受信パケットの分類に用いられる情報である分類パラメータと、その分類パラメータに対して関連付けられた分類識別子とを示す。この例では、分類パラメータは、トランスポートプロトコル(Protocol)、宛先IPアドレス、送信元ポート番号、および宛先ポート番号からなる。なお、トランスポートプロトコルは、上述のトランスポートプロトコル番号であってもよい。
具体的には、振り分けテーブル108は、分類パラメータ「Protocol:TCP、宛先IPアドレス:192.168.3.4、送信元ポート番号:80、宛先ポート番号:10001」に関連付けて分類識別子「1」を示し、分類パラメータ「Protocol:TCP、宛先IPアドレス:192.168.1.8、送信元ポート番号:10001、宛先ポート番号:10002」に関連付けて分類識別子「2」を示す。また、振り分けテーブル108は、具体的に挙げられた分類パラメータ以外の分類パラメータに対しては、分類識別子「Default」を示す。
したがって、振り分け部107は、受信パケットのデータに示される分類パラメータを振り分けテーブル108から検索し、その分類パラメータが振り分けテーブル108にあれば、その分類パラメータに関連付けられている分類識別子を、その受信パケットのデータとともに受信データ保持部109に出力する。また、振り分け部107は、検索の結果、その分類パラメータが振り分けテーブル108になければ、分類識別子「Default」をその受信パケットのデータとともに受信データ保持部109に出力する。
このように、振り分けテーブル108には、受信パケットを分類するための定義(分類パラメータ)が分類識別子に関連付けて登録されている。なお、その定義のエントリ一つ一つを区別するために、便宜上、仮想的に分類識別子を関連付けておいてもよい。
転送制御部104は、その受信処理として、受信データ保持部109に保持された受信パケットのデータを、そのデータに関連付けられた分類識別子に基づいてメインメモリ102に転送する。この時、転送制御部104は、受信パケットのデータをメインメモリ102へ転送完了したことを、その分類識別子とともに割り込み制御部111に通知する。
割り込み制御部111は、転送制御部104から通知された分類識別子を、第1記憶部112mに記憶されている割り込み管理テーブル112から検索し、その分類識別子に関連付けられているトラヒック種別に定義されている割り込み制御方法を特定し、その方法で割り込み制御を行なう。その結果、割り込み制御部111はCPU103に必要なタイミングで割り込み信号を発信する。
図4は、割り込み管理テーブル112の一例を示す図である。
例えば、割り込み管理テーブル112は、分類識別子と、その分類識別子に関連付けられたトラヒック種別とを示す。言い換えれば、割り込み管理テーブル112には、分類識別子とトラヒック種別と関連付けて登録されている。また、割り込み管理テーブル112における分類識別子は振り分けテーブル108の分類識別子と共通している。
具体的には、割り込み管理テーブル112は、分類識別子「1」に関連付けてトラヒック種別「ストリーム」を示し、分類識別子「2」に関連付けてトラヒック種別「即時」を示す。ここでトラヒック種別とは、受信パケットの受信形態であって、例えば「非優先」、「即時」、「ストリーム」および「ダウンロード」の何れかである。トラヒック種別「非優先」は、帯域幅の保障を必要としない通常の受信形態であり、トラヒック種別「即時」は、TCPのスループット向上に有用なTCP−ACK処理などの即時処理が必要とされる受信形態であり、トラヒック種別「ストリーム」は、帯域幅の保障を必要とする映像データの受信形態であり、トラヒック種別「ダウンロード」は、トラヒック種別「即時」および「ストリーム」による通信を妨げない範囲で最大限の受信性能を要求する受信形態である。
つまり、割り込み制御部111は、この割り込み管理テーブル112から、転送制御部104から通知された分類識別子(例えば分類識別子「1」)を検索し、その分類識別子に関連付けられているトラヒック種別(例えば「ストリーム」)を特定する。さらに、割り込み制御部111は、そのトラヒック種別に定義されている割り込み制御方法を特定する。
例えば、トラヒック種別「非優先」には、割り込み制御方法「遅延割り込み」または「間隔制限付き遅延割り込み」が定義され、トラヒック種別「即時」には、割り込み制御方法「即時割り込み」が定義され、トラヒック種別「ストリーム」には、割り込み制御方法「タイマ割り込み」が定義され、トラヒック種別「ダウンロード」には、割り込み制御方法「処理量(帯域幅)制限付きタイマ割り込み」が定義されている。なお、トラヒック種別「非優先」を細分化して、トラヒック種別「非優先A」に割り込み制御方法「遅延割り込み」が定義され、トラヒック種別「非優先B」に割り込み制御方法「間隔制限付き遅延割り込み」が定義されていてもよい。
「即時割り込み」は、パケットのデータがメインメモリ102に転送された直後に割り込み信号を出力する割り込み制御方法である。「遅延割り込み」は、パケットのデータがメインメモリ102に転送されてから予め定められた時間経過したときに割り込み信号を出力する割り込み制御方法である。「間隔制限付き遅延割り込み」は、パケットのデータがメインメモリ102に転送されてから予め定められた時間経過し、且つ直前の割り込み信号が出力されてから上記予め定められた時間経過したときに割り込み信号を出力する割り込み制御方法である。また、「タイマ割り込み」は、予め定められた期間ごとに割り込み信号を出力する割り込み制御方法であり、「処理量(帯域幅)制限付きタイマ割り込み」は、上記「タイマ割り込み」と同様のタイミングで割り込み信号を出力するが、その割り込み信号に応じて処理されるデータ量が制限されている割り込み制御方法である。
なお、本実施の形態では、割り込み管理テーブル112には、分類識別子に関連付けてトラヒック種別が登録され、1つのトラヒック種別は1つの割り込み制御方法に定義づけされている。したがって、本実施の形態における割り込み管理テーブル112は、分類識別子に関連付けられた割り込み制御方法を、トラヒック種別を介して間接的に示している。したがって、割り込み管理テーブル112には、トラヒック種別の代わりに、割り込み制御方法が分類識別子に関連付けて登録されていてもよい。
また、本実施の形態では、通信処理装置101は、割り込み管理テーブル112および振り分けテーブル108をそれぞれ独立に保持しているが、これら2つのテーブルの代わりに、これらのテーブルに含まれる情報を含む1つのテーブルを保持していてもよい。
図5は、割り込み管理テーブル112の他の例を示す図である。
この割り込み管理テーブル112は、分類識別子と、その分類識別子に対応する分類パラメータと、その分類識別子および分類パラメータに関連付けられたトラヒック種別とを示す。
通信処理装置101は、図5に示す割り込み管理テーブル112を保持する場合には、第2記憶部108mを備えず、その割り込み管理テーブル112を記憶している第1記憶部112mを備えている。さらに、この場合、振り分け部107は、振り分けテーブル108を参照する代わりに、割り込み管理テーブル112を参照することにより受信パケットのデータを分類する。
なお、通信処理装置101が割り込み管理テーブル112および振り分けテーブル108をそれぞれ独立に保持する場合でも、図5に示す割り込み管理テーブル112を保持していてもよい。また、この場合には、図5に示す割り込み管理テーブル112のうち分類識別子が省かれていてもよい。つまり、割り込み管理テーブル112は、分類パラメータと、その分類パラメータに関連付けられたトラヒック種別とを示す。このような割り込み管理テーブル112が第1記憶部112mに記憶されている場合には、振り分け部107は、受信パケットのデータをその分類パラメータと共に受信データ保持部109に転送し、転送制御部104は、受信パケットのデータをメインメモリ102へ転送完了したことを、その分類パラメータとともに割り込み制御部111に通知する。そして、割り込み制御部111は、その分類パラメータに関連付けられたトラヒック種別を割り込み管理テーブル112から検索し、そのトラヒック種別に定義付けされた割り込み制御方法を特定する。
ここで、割り込み制御部111で用いられる割り込み制御方法について、その詳細を以下に説明する。
使用される割り込み制御方法は、少なくとも以下のうち一つを含む。
(1)即時割り込み
(2)遅延割り込み(間隔制限なし)
(3)間隔制限付き遅延割り込み
(4)タイマ割り込み(処理量制限付き、または処理量制限なし)
なお、上記割り込み制御方法のうち、タイマ割り込みに関しては、必ずしも割り込み管理テーブル112で指定される必要はなく、単に、「受信に応じた割り込みは発生させない」という定義として指定してもよい。
タイマ割り込みは、通信処理装置101内の割り込み制御部111で実装される機能であり、予め定められた周期(タイマ時間)に割り込み信号をCPU103に発信する割り込み制御方法である。つまり、割り込み制御部111は、タイマ機能を具備し、割り込み制御方法として「タイマ割り込み」を適用する場合、CPU103より設定部110経由で設定されたタイマ時間、あるいは、予め決められた所定のタイマ時間に基づき、周期的な割り込み信号を発信する。ここで、割り込み制御部111は、CPU103からの指定により設定部110経由でタイマ割り込みのON/OFFを受け付け、周期的な割り込み信号の発信を作動あるいは停止することもできる。
このタイマ割り込みでは、割り込み制御部111の動作クロックに応じた精度の周期で発信が可能である。ただし、必ずしもその動作クロックの周期を最小単位とする必要はない。一般的に、割り込みに対するソフトウェアのドライバで実装された割り込み処理が駆動されるのは、高々数十μsec程度のずれである。これにより、OSにより実装されるタイマ機能より精度が高く、ソフトウェア処理量を低減したタイマ機能の実現が可能である。なお、タイマ割り込みは複数実装されてもよいが、タイマ割り込みを1つだけ実装してその時間単位(タイマ時間)を小さくし、ソフトウェアにより仮想的に複数のタイマを持つように制御することで代替可能である。
具体的に、即時割り込み、遅延割り込み、および間隔制限付き遅延割り込みのタイミングについて、図6A〜図6Cを用いて説明する。
図6Aは、割り込み制御方法「即時割り込み」のタイミングを示す図である。
即時割り込みは、通信処理装置101の転送制御部104において転送が完了(受信事象発生)した後、即時に割り込み制御部111が割り込み信号を発信する割り込み制御方法である。ここで、「即時」と記述したのは、説明の便宜上であり、実際のハードウェアの動作クロックの単位で数クロックのずれが発生することは十分許容できる範囲であり、そのずれを制限するものではない。
図6Bは、割り込み制御方法「遅延割り込み(間隔制限なし)」のタイミングを示す図である。
遅延割り込みは、通信処理装置101の転送制御部104において転送が完了(受信事象発生)した後、その転送完了時から予め定められた期間(遅延時間t)経過したときに、割り込み制御部111が割り込み信号を発信する割り込み制御方法である。上述の遅延時間tは、割り込み管理テーブル112の該当する分類識別子「Default」で定義されるエントリに登録されていてもよく、あるいは、割り込み制御部111に設定部110から予め指定されていてもよく、あるいは、割り込み制御部111によって予め保有されていてもよい。仮に、受信事象発生後、その受信事象発生に対応する割り込み信号の発信までに、新たな受信事象が発生した場合には、ソフトウェアがその新たな受信事象発生を通信処理装置101の転送制御部104の管理外としなければ、その新たな受信事象発生から前述の遅延時間tだけ遅延して割り込み信号が発信される。
なお、割り込みの遅延時間tの精度については、即時割り込みで記載した通り、ハードウェアの動作クロックの数クロックのずれを制限するものではない。また、上述の遅延時間tを、割り込み管理テーブル112のエントリに個別に登録しておくことは、実装が複雑となるため、推奨はされない。
図6Cは、割り込み制御方法「間隔制限付き遅延割り込み」のタイミングを示す図である。
間隔制限付き遅延割り込みは、通信処理装置101の転送制御部104において転送が完了(受信事象発生)した後、その転送完了時から予め定められた期間(遅延時間t)経過したときに、割り込み制御部111が割り込み信号を発信する制御方法である。間隔制限なしの遅延割り込みと異なる点は、割り込み信号と次の割り込み信号との時間間隔が遅延時間t以上になることが保障されていることである。つまり、受信事象発生後、その受信事象発生に対応する割り込み信号の発信までに、新たな受信事象が発生し、ソフトウェアがその新たな受信事象発生を通信処理装置101の転送制御部104の管理外としなかった場合、割り込み制御部111は先の割り込み信号の発信から遅延時間tだけ間隔を空けて新たな割り込み信号を発信する。例えば、図6Cに示すように、受信事象aの発生後、その受信事象aの発生に対応する割り込み信号aの発信までに新たな受信事象bが発生した場合、割り込み制御部111は先の割り込み信号aの発信から遅延時間tだけ間隔を開けて新たな割り込み信号bを発信する。
この割り込み制御方法は、pps(Packet Per Sec:単位時間あたりに処理されるパケット数)制限や、bps(Bit Per Sec:単位時間あたりに処理される受信データ量)制限を行なうのにソフトウェア実装が容易となり、不要な割り込み信号の発信を抑制することも可能となる。
設定部110は、割り込み管理テーブル112および振り分けテーブル108を更新する。つまり、設定部110は、CPU103によってアプリケーションが起動すると、そのアプリケーションによって確立される通信路に応じて割り込み管理テーブル112および振り分けテーブル108を更新する。
図7は、アプリケーションおよび設定部110によるテーブル更新処理の一例を示すフローチャートである。
まず、アプリケーションは通信路を確立する(ステップS100)。例えば、アプリケーションはソケットをオープンしたりbindを行なったりする。設定部110は、このように通信路を確立したアプリケーションから通信路情報を取得する(ステップS102)。通信路情報は、図3に示す振り分けテーブル108の分類パラメータであって、Protocol、宛先IPアドレス、送信元ポート番号および宛先ポート番号などを含む。
次に、設定部110は、その取得した通信路情報に分類識別子を割り当て、その通信路情報を分類パラメータとして分類識別子とともに振り分けテーブル108に登録する。さらに、設定部110は、その取得した通信路情報に適したトラヒック種別を特定し、特定したトラヒック種別を、その通信路情報に割り当てた分類識別子に関連付けて割り込み管理テーブル112に登録する(ステップS104)。なお、アプリケーションプログラムが通信路を確立したときに、その通信路に対応する分類識別子および割り込み制御方法が割り込み管理テーブル112に登録されていなければ、ステップS104で、その通信路に対応する分類識別子および割り込み制御方法が割り込み管理テーブル112に追加されることになる。
このように、アプリケーションプログラムは、通信処理装置101を介した通信路を確立し、通信路情報を通信処理装置101に送信することにより、通信処理装置101の設定部110に対して、通信路情報に対応する分類識別子および割り込み制御方法を割り込み管理テーブル112に登録させて、その割り込み管理テーブル112を更新させる。
また、設定部110は、割り込み制御部111によるタイマ割り込みのON/OFFの要求をCPU103から受け付け、その要求に応じて割り込み制御部111にタイマ割り込みを実行させたり停止させたりしてもよい。
また、割り込み管理テーブル112および振り分けテーブル108に登録される通信路情報として、予め決められた共通の通信路情報を保有する複数の通信路に対して適用可能な設定を登録することも可能である。これにより、例えばサーバのよく知られたポート番号として同一の値を持つ通信路に対して、共通の登録情報を参照することが可能となり、割り込み管理テーブル112および振り分けテーブル108の登録総数を抑制することが可能となる。
次に、割り込み制御方法を実現するためのアルゴリズムの例を図8から図13を用いて説明する。なお、この説明においては、ハードウェアの実装において、並列処理できるところにおいても、説明の容易性から逐次実行として記述している部分もあるが、並列処理を制限するものではない。また、以下の説明では、上述の割り込み制御方法すべてを実装した形態について説明しているが、それらの一部が実装されない場合においても、容易に類推できるため説明を割愛する。
図8は、割り込み制御部111の全体的な動作である割り込み制御処理を示すフローチャートである。割り込み制御部111は、割り込み制御処理を実行するときには、割り込み発信制御(ステップS200)と割り込み制御設定(ステップS202)とを並列に、または何れか一方の処理を実行し、その後、割り込み制御処理を終了すべきか否かを判別する(ステップS204)。ここで、割り込み制御部111は、終了すべきでないと判別すると(ステップS204のNo)、ステップS200,S202の処理を繰り返して実行し、終了すべきであると判別すると(ステップS204のYes)、割り込み制御処理を終了する。
図9は、図8におけるステップS202として記載された割り込み制御設定の詳細を示すフローチャートである。
割り込み制御部111は、割り込み制御設定を行なうときには、まず、転送制御部104からの受信完了の通知の有無を判定する(ステップS210)。ここで、割り込み制御部111は、通知がないと判定すると(ステップS210のNo)、割り込み制御設定を終了する。一方、割り込み制御部111は、通知があったと判定すると(ステップS210のYes)、転送制御部104から得た分類識別子に関連付けられているトラヒック種別を割り込み管理テーブル112から検索する。そして、割り込み制御部111は、該当するトラヒック種別を見つけ出し、そのトラヒック種別に定義されている割り込み制御方法を特定する(ステップS212)。
次に、割り込み制御部111は、ステップS212で特定した割り込み制御方法が即時割り込みであるか否かを判定する(ステップS214)。ここで、割り込み制御部111は、即時割り込みであると判定すると(ステップS214のYes)、割り込み要因に受信割り込みを設定して割り込み信号を発信し(ステップS216)、割り込み制御設定を終了する。一方、割り込み制御部111は、ステップS214で割り込み制御方法が即時割り込みでないと判定すると(ステップS214のNo)、さらに、その割り込み制御方法が遅延割り込み(間隔制限なし)であるか否かを判定する(ステップS218)。
ここで、割り込み制御部111は、遅延割り込みであると判定すると(ステップS218のYes)、受信事象発生に対して「遅延割り込み中」を設定し(ステップS220)、割り込み制御設定を終了する。一方、割り込み制御部111は、ステップS218で割り込み制御方法が遅延割り込みでないと判定すると(ステップS218のNo)、さらに、その割り込み制御方法が間隔制限付き遅延割り込みであるか否かを判定する(ステップS222)。
ここで、割り込み制御部111は、間隔制限付き遅延割り込みであると判定すると(ステップS222のYes)、受信事象発生に対して「間隔制限付き遅延割り込み中」を設定し(ステップS224)、割り込み制御設定を終了する。一方、割り込み制御部111は、ステップS222で割り込み制御方法が間隔制限付き遅延割り込みでないと判定すると(ステップS222のNo)、ステップS224の設定を行なうことなく割り込み制御設定を終了する。その結果、受信完了のデータはタイマ割り込みの対象として扱われる。
図10は、図8におけるステップS200として記載された割り込み発信制御の詳細を示すフローチャートである。
割り込み制御部111は、割り込み発信制御を行なうときには、まず、割り込み制御が有効か否かを判定する(ステップS240)。例えば、割り込み制御部111は、割り込み管理テーブル112が第1記憶部112mに記憶されていれば、割り込み制御が有効であると判定する。あるいは、割り込み制御部111は、割り込み管理テーブル112を参照して、その割り込み管理テーブル112に分類識別子およびその分類識別子のトラヒック種別が登録されていれば、割り込み制御が有効であると判定する。
ここで、割り込み制御部111は、割り込み制御が有効であると判定すると(ステップS240のYes)、タイマ割り込み制御(ステップS242)、遅延割り込み制御(ステップS244)、および間隔制限付き遅延割り込み制御(ステップS246)の何れかを実行し、割り込み発信制御を終了する。また、割り込み制御部111は、ステップS240で割り込み制御が有効でないと判定したときには(ステップS240のNo)、上記ステップS242,S244,S246の何れの処理を行なうことなく、割り込み発信制御を終了する。
図11は、図10におけるステップS242として記載されたタイマ割り込み制御の詳細な処理を示すフローチャートである。
割り込み制御部111は、タイマ割り込み制御を行なうときには、まず、タイマ割り込みがONか否かを判定する(ステップS260)。例えば、割り込み制御部111は、割り込み管理テーブル112を参照して、そこにトラヒック種別「ストリーム」または「ダウンロード」が登録されているか否かを判別することにより、タイマ割り込みがONか否かを判定する。つまり、割り込み制御部111は、トラヒック種別「ストリーム」または「ダウンロード」が登録されていれば、タイマ割り込みがONであると判定する。
ここで、割り込み制御部111は、タイマ割り込みがONであると判定すると(ステップS260のYes)、さらに、タイマ割り込み発信条件が満了したか否かを判定する(ステップS262)。ここで、タイマ割り込み発信条件の満了とは、前回のタイマ割り込み発信条件が満了してから、所定のタイマ時間だけ経過したことを意味する。割り込み制御部111は、タイマ割り込み発信条件が満了したと判定すると(ステップS262のYes)、割り込み要因にタイマ割り込みを設定して割り込み信号を発信する(ステップS264)。このとき、割り込み制御部111は、タイマ割り込みの発信条件が満了しているか否かを判定するための経過時間を0、あるいは次回のタイマ割り込み発信条件の満了までの時間を初期値に設定する。そして、割り込み制御部111は、上述の経過時間、あるいは上述の次回満了までの時間を更新する(ステップS266)。
一方、割り込み制御部111は、ステップS260でタイマ割り込みがONでないと判定したときには(ステップS260のNo)、タイマ割り込み制御を終了する。また、割り込み制御部111は、ステップS262でタイマ割り込み発信条件が満了していないと判定したときには(ステップS262のNo)、割り込み信号を発信することなく、上述の経過時間などを更新する(ステップS266)。
図12は、図10におけるステップS244として記載された遅延割り込み制御の詳細を示すフローチャートである。
割り込み制御部111は、遅延割り込み制御を行なうときには、まず、遅延割り込み中か否かを判定する(ステップS280)。つまり、割り込み制御部111は、図9に示す割り込み制御設定のステップS220の処理によって、受信事象発生に「遅延割り込み中」が設定されているか否かを判定する。
ここで、割り込み制御部111は、遅延割り込み中であると判定すると(ステップS280のYes)、さらに、遅延割り込み発信条件が満了したか否かを判定する(ステップS282)。ここで、遅延割り込み発信条件の満了とは、割り込みの対象となる受信事象の発生から所定の遅延時間だけ経過したことを意味する。割り込み制御部111は、遅延割り込み発信条件が満了したと判定すると(ステップS282のYes)、割り込み要因に受信割り込みを設定して割り込み信号を発信する(ステップS284)。
一方、割り込み制御部111は、遅延割り込み発信条件が満了していないと判定したときには(ステップS282のNo)、割り込み信号を発信することなく、遅延割り込み発信条件が満了しているか否かを判定するための経過時間、あるいは次回の遅延割り込み発信条件の満了までの時間を更新する(ステップS286)。この経過時間などの更新は、すべての遅延割り込みの対象とされる受信事象発生に対して行なわれる。また、割り込み制御部111は、ステップS280で遅延割り込み中でないと判定したときには(ステップS280のNo)、遅延割り込み制御を終了する。
ここで、割り込み制御部111は、ステップS284において割り込み信号を発信した場合、次の受信事象発生に対して、次に満了する遅延割り込みの発信条件を適用する。次に遅延割り込みの対象となる受信事象発生がなければ、割り込み制御部111は、ステップS280で遅延割り込み中でないと判定する。また、遅延割り込みの対象となる受信事象発生が全てソフトウェアで処理された場合にも、割り込み制御部111は、転送制御部104が管理するDescriptorの解析の結果、遅延割り込みを発生させる必要がないことを検知し、ステップS280で遅延割り込み中でないと判定する。
図13は、図10におけるステップS246として記載された間隔制限付き遅延割り込み制御の詳細を示すフローチャートである。
割り込み制御部111は、間隔制限付き遅延割り込み制御を行なうときには、まず、間隔制限付き遅延割り込み中か否かを判定する(ステップS300)。つまり、割り込み制御部111は、図9に示す割り込み制御設定のステップS224の処理によって、受信事象発生に「間隔制限付き遅延割り込み中」が設定されているか否かを判定する。
ここで、割り込み制御部111は、間隔制限付き遅延割り込み中であると判定すると(ステップS300のYes)、さらに、間隔制限が満了したか否かを判定する(ステップS302)。ここで、間隔制限の満了とは、割り込みの対象となる受信事象の発生から所定の遅延時間が経過し、且つ、前回の間隔制限付き遅延割り込みによる割り込み信号の発信がある場合には、その発信から上記遅延時間だけ経過したことを意味する。割り込み制御部111は、間隔制限が満了したと判定すると(ステップS302のYes)、割り込み要因に受信割り込みを設定して割り込み信号を発信する(ステップS304)。
一方、割り込み制御部111は、間隔制限が満了していないと判定したときには(ステップS302のNo)、割り込み信号を発信することなく、間隔制限が満了しているか否かを判定するための経過時間、あるいは次回の間隔制限の満了までの時間を更新する(ステップS306)。また、割り込み制御部111は、ステップS300で間隔制限付き遅延割り込み中でないと判定したときには(ステップS300のNo)、間隔制限付き遅延割り込み制御を終了する。
ここで、割り込み制御部111は、ステップS304において割り込み信号を発信した場合、経過時間を0、あるいは次回の間隔制限の満了までの時間を初期値に設定する。また、間隔制限付き遅延割り込みの対象となる受信事象発生が全てソフトウェアで処理された場合、割り込み制御部111は、転送制御部104が管理するDescriptorの解析の結果、間隔制限付き遅延割り込みを発生させる必要がないことを検知し、ステップS300で間隔制限付き遅延割り込み中でないと判定する。
なお、上記説明において、即時割り込み、遅延割り込み、間隔制限付き遅延割り込みの割り込み要因を「受信割り込み」として統一して扱う例を示したが、これらが別々であっても構わない。
ここで、上述で実現される通信処理装置101を用いた通信機器100を実現するために、ソフトウェアで実装する制御アルゴリズムの例を、図14から図16を用いて説明する。ただし、一般的なドライバソフトウェアの処理については、本発明の本質とは関係がないため割愛し、割り込み処理の説明に限定する。また、以下の説明において、判定の順序や処理の順序が必ずしも記述の通りでなくてもよい場合もあるが、同業の専門家であれば容易に類推できるため、その記述は割愛する。
図14は、CPU103で実行されるソフトウェアにおける割り込みハンドラの受信処理を示すフローチャートである。
ソフトウェアは、割り込み信号の割り込み要因にタイマ割り込みが設定されているか否かを判定する(ステップS400)。ここで、ソフトウェアは、タイマ割り込みが設定されていると判定すると(ステップS400のYes)、タイマ割り込み処理を行なう(ステップS402)。なお、タイマ割り込み処理の詳細については、図15を用いて後述する。一方、ソフトウェアは、タイマ割り込みが設定されていないと判定すると(ステップS400のNo)、または、ステップS402のタイマ割り込み処理が完了すると、さらに、割り込み信号の割り込み要因に受信割り込みが設定されているか否かを判定する(ステップS404)。
ここで、ソフトウェアは、受信割り込みが設定されていると判定すると(ステップS404のYes)、受信割り込み処理を行なう(ステップS406)。なお、受信割り込み処理の詳細については、図16を用いて後述する。一方、ソフトウェアは、受信割り込みが設定されていないと判定すると(ステップS406)、または、ステップS406の受信割り込み処理が完了すると、他の割り込み要因に対する処理を行ない(ステップS408)、ソフトウェアにおける割り込みハンドラの受信処理を終了する。
図15は、図14におけるステップS402のタイマ割り込み処理の詳細を示すフローチャートである。
ソフトウェアは、タイマ割り込み処理では、まず、処理対象とする分類識別子を先頭(例えば1)に初期化する(ステップS420)。次に、ソフトウェアは、処理対象の分類識別子(初期値は分類識別子1)に対応するデータ(以降、分類対象という)がタイマ割り込み対象であるか否かを判定する(ステップS422)。なお、転送制御部104が管理するDescriptorが分類識別子ごとに独立して管理されている場合、その管理番号で分類識別子を識別可能であるため、ソフトウェアによるステップS422の判定の実現が容易となる。
ここで、ソフトウェアは、分類対象がタイマ割り込み対象であると判定すると(ステップS422のYes)、さらに、分類対象が帯域幅制限対象(処理量制限付きタイマ割り込みの対象)であるか否かを判定する(ステップS424)。ソフトウェアは、分類対象が帯域幅制限対象であると判定すると(ステップS424のYes)、通信処理装置101からメインメモリ102に転送された上述の分類対象に該当する受信パケットのうち、最大N個の受信パケットを受信処理する。ここで、N個とは、予め決められた値であり、通信機器100または通信機器100を含むシステムで一意であってもよいし、分類識別子毎に異なる値であってもよい。
一方、ソフトウェアは、分類対象が帯域幅制限対象でないと判定すると(ステップS424のNo)、通信処理装置101からメインメモリ102に転送された上述の分類対象に該当する全ての受信パケットを受信処理する(ステップS428)。また、ソフトウェアは、ステップS426,S428の受信処理完了後、または、ステップS422で分類対象がタイマ割り込み対象でないと判定したときには(ステップS422のNo)、すべての分類識別子に対して上述の処理を行なったか否かを判定する(ステップS430)。ここで、ソフトウェアは、処理を行なったと判定すると(ステップS430のYes)、タイマ割り込み処理を終了する。一方、ソフトウェアは、処理を行なっていないと判定すると(ステップS430のNo)、分類識別子をインクリメントして(例えば1進める)(ステップS432)、ステップS422からの処理を繰り返し実行する。
図16は、図14におけるステップS406の受信割り込み処理の詳細を示すフローチャートである。
ソフトウェアは、受信割り込み処理では、まず、非優先パケットのみの受信モードであるか否かを判定する(ステップS440)。ここで、非優先パケットのみの受信モードとは、以下のいずれかの条件を満たす場合のモードである。
(1)トラヒック種別「非優先」だけが割り込み管理テーブル112に登録されている。つまり、遅延割り込みあるいは間隔制限付き遅延割り込みで処理されるデータの分類識別子(例えば、「Default」)以外の分類識別子が割り込み管理テーブル112に登録されていない。
(2)トラヒック種別「ストリーム」が割り込み管理テーブル112に登録されている、言い換えれば、タイマ割り込みにより処理されるデータの分類識別子が割り込み管理テーブル112に登録されているが、予め決められた所定の期間、そのデータの受信が転送制御部104において行なわれなかった。
ソフトウェアは、ステップS440で非優先パケットのみの受信モードであると判定すると(ステップS440のYes)、通信処理装置101からメインメモリ102に転送された全ての受信パケットを受信処理し(ステップS442)、受信割り込み処理を終了する。一方、ソフトウェアは、ステップS440で非優先パケットのみの受信モードでないと判定すると(ステップS440のNo)、処理対象とする分類識別子を先頭(例えば1)に初期化する(ステップS444)。次に、ソフトウェアは、分類対象(初期化時では、分類識別子1に対応するデータ)が即時割り込み対象であるか否かを判定する(ステップS446)。なお、転送制御部104が管理するDescriptorが分類識別子ごとに独立して管理されている場合、その管理番号で分類識別子を識別可能であるため、ソフトウェアによるステップS446の判定の実現が容易となる。
ここで、ソフトウェアは、分類対象が即時割り込み対象であると判定すると(ステップS446のYes)、通信処理装置101からメインメモリ102に転送された上述の分類対象に該当する、すなわち即時割り込み対象に該当する全ての受信パケットを受信処理する(ステップS448)。一方、ソフトウェアは、分類対象が即時割り込み対象でないと判定すると(ステップS446のNo)、遅延割り込みあるいは間隔制限付き遅延割り込みで処理される全ての受信パケット、すなわち全ての非優先パケットのうち、最大M個の受信パケットを受信処理する(ステップS450)。ここで、M個とは、予め決められた値であり、通信機器100または通信機器100を含むシステムで一意であってもよいし、分類識別子毎に異なる値であってもよく、前述のN個と同一であっても異なる値でもよい。
次に、ソフトウェアは、ステップS448,S450の受信処理完了後、すべての分類識別子に対して上述の処理を行なったか否かを判定する(ステップS452)。ここで、ソフトウェアは、処理を行なったと判定すると(ステップS452のYes)、受信割り込み処理を終了する。一方、ソフトウェアは、処理を行なっていないと判定すると(ステップS452のNo)、分類識別子をインクリメントして(例えば1進める)(ステップS454)、ステップS446からの処理を繰り返し実行する。
以上のように、本実施の形態における通信処理装置101は、受信パケットの分類パラメータに応じて、
(1)即時割り込み
(2)遅延割り込み
(3)間隔制限付き遅延割り込み
(4)タイマ割り込み
を実現する。さらに、通信処理装置101は、タイマ割り込みで処理される分類の受信パケットに対し、帯域幅制限対象とそれ以外に分類して処理することで、
(1)即時性の高い通信
(2)非優先的に処理される通信
(3)非優先的に処理される通信のpps制限
(4)帯域幅制限対象となる通信
(5)映像受信のように、デコーダにおける受信レートの制限により、受信レートが自動的に制御されるため、受信パケットを無制限に処理すべき通信を実現する。
以上、本発明に係る通信処理装置および通信機器について、上記実施の形態を用いて説明したが、本発明はこれらに限定されるものではない。
例えば、上記実施の形態では、転送制御部104は、受信事象発生と、その受信事象発生に対応する分類識別子とを割り込み制御部111に通知したが、受信パケット長など、割り込み管理テーブル112で分類定義されていない情報も合わせて通知してもよい。この情報は、振り分け部107によって分類された受信パケットに関するパケット関連情報である。この場合には、割り込み制御部111は、割り込み管理テーブル112において受信パケットの分類識別子に関連付けられている割り込み制御方法と上述のパケット関連情報とに応じた他の割り込み制御方法を特定し、他の割り込み制御方法で割り込み信号を発信することができる。その結果、受信事象発生に対してより適切な割り込み制御方法で割り込み信号を発信することができる。例えば、パケット長が所定の長さより短い受信パケットや、TCPのSYNパケットに対して、強制的に間隔制限付き遅延割り込みを適用するなどにより、DoS(Denial of Service)攻撃への対策が可能となる。また、転送制御部104は、分類識別子毎に管理されるDescriptorが全てソフトウェアで処理されたことを検知した場合、割り込み制御部111に通知する。これによって、不要な割り込みを抑制することが可能となる。なお、割り込み制御部111がDescriptorを検索して同様の処理を行なってもよい。
また、設定部110は、分類識別子とその分類識別子に関連付けられたトラヒック種別(割り込み制御方法)との組み合わせを1つまたは複数個だけ、割り込み管理テーブル112に登録し、割り込み制御部111は、割り込み管理テーブル112に登録されている1つまたは複数個の組み合わせが、予め定められた組み合わせである場合には、割り込み管理テーブル112において、受信パケットの分類識別子に関連付けられている割り込み制御方法と異なる、予め定められた他の割り込み制御方法で割り込み信号を出力してもよい。例えば、割り込み制御部111は、割り込み管理テーブル112に遅延割り込みが割り込み制御方法として1つだけ登録されている場合には、即時割り込み方法で割り込み信号を出力してもよい。これにより、遅延割り込みの対象となるパケットの受信処理のスループットを向上することができる。
また、転送制御部104は、メインメモリ102との間でパケットのデータを転送するため、転送制御部104が用いるDescriptorで割り込み制御方法を指定してもよい。この場合、パケット毎の割り込み制御の変更が可能となる。
また、上記実施の形態における通信処理装置101は、単体のLSIとして実装されてもよいし、半導体IPコアとして実装され、SoC(System On Chip)などに内蔵実装されてもよい。つまり、ブロック図(図1など)の各機能ブロックは典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。(例えばメモリ以外の機能ブロックが1チップ化されていても良い。)ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサ を利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。 また、各機能ブロックのうち、符号化または復号化の対象となるデータを格納する手段だけ1チップ化せずに別構成としても良い。
また、上記実施の形態における通信処理装置101は、より転送効率を高くすることを可能とするDescriptorを用いたDMA(Direct Memory Access)を利用する転送制御部104を備えた。しかし、本発明は、Descriptorを用いたDMAを使用した場合だけに実現できるものではなく、DMAを用いずに、パケットの受信の都度、プログラムI/Oによる転送を行なう場合においても実現できることは、同業の専門家であれば、容易に類推可能である。
また、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本発明にかかる通信処理装置、通信処理方法、およびその通信処理装置を搭載した通信機器は、家電などの比較的低い処理資源を有する装置において適切な通信機能を実現することができ、特に、通信帯域幅がアプリケーションの品質に重大な影響を与える通信を、他の通信と混在して行なう場合に有用であって、例えば、テレビ受像機、レコーダ、録画再生装置、セットトップボックス、またはIP(Internet Protocol)通信装置などに適用することができる。
100 通信機器
101 通信処理装置
102 メインメモリ
103 CPU
104 転送制御部
105 送信データ保持部
106 MAC部
107 振り分け部
108 振り分けテーブル
108m 第2記憶部
109 受信データ保持部
110 設定部
111 割り込み制御部
112 割り込み管理テーブル
112m 第1記憶部
本発明は、例えばパケットなどのデータを受信して処理する通信処理装置およびその通信処理方法に関し、特に、IP(Internet Protocol)通信などにおけるパケットの割り込み制御を行なう通信処理装置およびその通信処理方法に関する。
従来、IP通信などにおいて割り込み制御を行なう通信機器が提供されている。
図17は、割り込み制御を行なう一般的な通信機器の構成を示すブロック図である。
一般的に、通信機器2000は、図17に示すように、通信処理装置2201、メインメモリ2102、およびCPU(Control Processing Unit)2103などの各構成要素を具備している。これらの構成要素は、システムバス2202を介して接続され、これらの構成要素の動作は、CPU2103上で動作するソフトウェアによって制御される。
このような通信機器2000に具備される通信処理装置2201が割り込み機能を持つことは一般的である。割り込み機能は、通信処理装置2201からCPU2103に対する信号(割り込み信号)の発信によって実現される。この割り込み機能は、通信処理装置2201における様々な事象の発生を、即時にCPU2103に通知し、ソフトウェアによる対応する処理を迅速に行なうことを可能とする。その事象としては、例えば、通信データ(パケット)の受信や、パケットの送信完了、異常状態の発生などが含まれる。
従来、パケットの受信に対する割り込み信号の発信方法には幾つかの方法がある。一つ目の方法は、一回のパケット受信毎に割り込み信号を発信する方法である。二つ目の方法は、通信処理装置2201でパケットを受信した後、ソフトウェアにより処理されることで通信処理装置2201の管理外となるパケットが、通信処理装置2201の内部に存在しなくなるまで割り込み信号を発信する方法などがある。二つ目の方法では、通信処理装置2201の管理下となる受信パケットが存在する限り、ソフトウェアに対して割り込みが発生することとなる(ソフトウェアは一時的に割り込みを停止して処理を継続する)。さらには、三つ目の方法として、National Semiconductor(登録商標)社のDP83816に見られるように、通信処理装置2201におけるパケットの受信から、所定の時間だけ遅延させて割り込み信号を発信する方法(遅延割り込み)もある。遅延割り込みは、長さの短いパケットを頻繁に受信するような事象が発生した場合において、割り込み処理に伴うソフトウェア処理量を軽減する方法として有用である。一方、このような割り込み処理に伴うソフトウェア処理量を軽減するために、基本ソフトウェアであるOS(Operating System)が持つタイマ機能を用いて、定期的に通信処理装置2201の状態を監視して制御することで、割り込み機能を受信用に用いないことも提案されている。しかしながら、このソフトウェアによるタイマ機能は、その精度が荒く(数十msecオーダ)、また、そのタイマ機能自体がソフトウェア処理量を増大させるため、CPUの処理能力が低い家電向けのCPUなどでは、必ずしも好ましくない。また、パケットの受信は、外部から発生する事象のため、タイマ機能により通信処理装置2201におけるパケットの受信を確認するためには、常にタイマ機能を有効にしておく必要があり、不要なソフトウェア処理負荷の増大を招く。
また、通信処理装置2201で受信される複数のパケットには、様々なアプリケーションプログラム(以下、単にアプリケーションという)に属するパケットが混在することが一般的である。特に、汎用的なIP通信を用いる場合、HTTP、FTP、またはSMTP/POP3(メール機能)などの異なるセションプロトコルを用いるアプリケーションに属するパケットが混在することがある。また、同じHTTPを用いるアプリケーションの中でも、Webブラウジングから映像のストリーミングまで様々な処理を行なうアプリケーションがあるため、その受信パケットの量や即時性において、様々な要件が混在することがある。また、トランスポート層としてTCP(Transmission Control Protocol)を用いる場合、その転送性能となるスループットは、転送端末間における処理遅延に影響されるため、受信応答となるACK受信は、早期に処理されることが好ましい。
このように、一つの通信処理装置2201で扱う受信パケットに対して、様々な要件が混在することから、通信処理装置2201の中で受信パケットを分類して管理し、ソフトウェアにおける処理を容易とする通信機器が提案されている(例えば、特許文献1参照)。
上記特許文献1の通信機器においては、受信パケットを転送制御部(転送制御部の詳細については後述する)が管理および制御するために用いる転送管理識別子(Descriptor)に対して、パケット分類個別のRingを用いる。この特許文献1の通信機器は、メインメモリに転送された受信パケットに対して、TCP/IPスタックなどの汎用的な階層処理を行なわず、直接各アプリケーションが上記Ringを扱うことを前提に、受信したパケットのメインメモリ上でのコピー回数を軽減することを目的としている。
図18は、上記特許文献1の通信機器2000を本発明と比較するために記述したブロック図である。上記特許文献1の通信機器2000の通信処理装置2201は、転送制御部2304、送信データ保持部2105、MAC部2106、振り分け部2107、振り分けテーブル2108、受信データ保持部2109、設定部2310、および割り込み制御部2311を具備する。
転送制御部2304は、その送信処理として、メインメモリ2102との間のパケットのデータの転送を管理および制御して送信パケットのデータを送信データ保持部2105に転送する。さらに、転送制御部2304は、その受信処理として、受信パケットのデータを受信データ保持部2109からメインメモリ2102に転送する。送信データ保持部2105は、転送制御部2304から転送された送信パケットのデータをMAC部2106に転送する。MAC部2106は、送信データ保持部2105から転送された送信パケットのデータに対して、所定のMAC(Media Access Control)規格に準ずる送信処理を行なうとともに、所定のMAC規格に準ずる受信処理を行なって振り分け部2107に受信パケットのデータを転送する。なお、MAC部2106から接続される外部ブロックは、物理層に依存し、通信機器2000のネットワークと接続されるI/F(インターフェース)である。
振り分け部2107は、MAC部2106から転送された受信パケットのデータを、振り分けテーブル2108を参照して分類し、受信データ保持部2109に分類情報とともに転送する。受信データ保持部2109は、振り分け部2107から転送された受信パケットのデータと分類情報を関連付けて保持する。転送制御部2304は、その受信処理として、受信データ保持部2109に保持された受信パケットのデータを、関連付けられた分類情報に基づいてメインメモリ2102に転送する。この時、転送制御部2304は、受信パケットのデータをメインメモリ2102へ転送完了したことを割り込み制御部2311に通知し、割り込み制御部2311は、転送制御部2304からの通知により、CPU2103に割り込み信号を発信する。また、設定部2310は、CPU2103からの振り分けテーブル2108に対する設定変更要求を受け付け、振り分けテーブル2108の変更を行なう。
また、受信パケットの種別に応じた方法でその受信パケットに対する割り込み制御を行なう通信機器も提案されている(例えば、特許文献2参照)。特許文献2の通信機器は、受信パケットの種別を解析し、その受信パケットがリアルタイムパケットか否かを判別してバッファに転送する。そして、通信機器は、リアルタイムパケットであると判別したときには、割り込み信号を即時にCPUに発信し、リアルタイムパケットでないと判別したときには、受信パケットを受信してから一定時間経過した後、または、バッファに一定量のデータが蓄積された後に、割り込み信号をCPUに発信する。つまり、上記特許文献2の通信機器は、受信パケットの種別に応じて、その受信パケットに対する割り込み制御方法を切り替えている。
特許第2723970号公報 特開2008−59577号公報
しかしながら、上記特許文献1および特許文献2の通信機器を含む従来の通信機器では、ソフトウェアの受信処理負荷を抑えつつアプリケーションの処理に応じた割り込みを適宜行なうことができないという問題がある。
つまり、従来の通信機器では、以下5点の状況がある。
(a)特許文献1の通信機器では、受信パケットの分類それぞれに対して、異なる要件を満たす割り込み制御を行なうことができない。
(b)遅延割り込みはソフトウェアの処理方法によっては割り込み処理量の低減に繋がらないリスクが存在する。
(c)OSが持つタイマ機能のみにより受信処理を管理する場合、まったくパケットの受信が発生しなくてもタイマ機能を動作させる必要があるため、不要なソフトウェア処理量を増大させる。
(d)OSが持つタイマ機能を用いる場合、その精度が荒く(数十msecオーダ)、また、そのタイマ機能自体がソフトウェア処理量を増大させる。タイマ精度としては、例えば100Mbpsの能力を持つEthernet(登録商標)の通信においては、数百μsec以下であることが求められる。また、タイマ機能による受信制御は、即時性を有する通信に対しても、その処理を遅延させることとなる。
(e)特許文献2の通信機器では、割り込み制御方法が受信パケットの種別に応じて予め定められている。
その結果、家電にネット機能を搭載する場合などに用いられる家電向けのCPUなど、比較的処理能力の低いCPUを用いる場合において、以下の4点の課題がある。
(1)パケットの受信ごとに即時に割り込み信号を発信する割り込み制御方法では、単位時間あたりの大量のパケットの受信による割り込み処理のためにソフトウェア処理量が増大し、その結果、CPU負荷の増大により、通信機器本来のアプリケーションの実行に支障を招くリスクが増大する。
(2)OSが持つタイマ機能を用いる受信制御方法では、精度の高い(数百μsec以下)タイマを実現することは困難である。
(3)タイマ機能による受信制御方法では、即時性を有する通信に対して、処理が遅延され、その結果、スループットの低下を招くリスクが増大する。
(4)受信パケットの種別に応じて割り込み制御方法を切り替えても、受信パケットの種別のそれぞれに対して割り込み制御方法が固定されているため、アプリケーションの処理(映像データの受信再生など)に求められる要件に応じた割り込みを適宜行なうことができない。
そこで、本発明は、かかる問題に鑑みてなされたものであって、ソフトウェアの受信処理負荷を抑えつつアプリケーションの処理に応じた割り込みを適宜行なうことができる通信処理装置およびその通信処理装置を備えた通信機器を提供することを目的とする。
上記目的を達成するために、本発明の通信処理装置は、パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置であって、パケットを受信する受信部と、前記受信部で受信されるパケットの種類に応じて、複数の分類種別のうちの何れか1つの分類種別に前記パケットを分類する振り分け部と、前記受信部によって受信されて前記振り分け部によって分類されたパケットのデータを前記メモリに転送する転送制御部と、分類種別と、割り込み信号を出力するタイミングに関する割り込み制御方法とを関連付けて示す割り込み管理テーブルを記憶している記憶部と、前記割り込み管理テーブルを参照することにより、前記振り分け部によって分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で前記割り込み信号を前記処理ユニットに出力する割り込み制御部と、前記処理ユニットで起動するアプリケーションプログラムからの指示に応じて、前記割り込み管理テーブルに分類種別および割り込み制御方法を登録することにより、当該割り込み管理テーブルを更新する設定部とを備える。
これにより、割り込み管理テーブルにおいて、受信されるパケットの種類または分類種別に関連付けられた割り込み制御方法が、そのパケットに対して適用され、その割り込み制御方法で割り込み信号が処理ユニット(例えばCPU)に出力される。したがって、パケットの分類種別に対して、その分類種別のパケットを受信処理するために適切とされる割り込み制御方法を割り込み管理テーブルに登録しておけば、そのパケットの受信処理に必要とされる即時性などの要件を満たしつつ、そのパケットに対して必要以上の発信頻度で割り込み信号を出力することを防ぐことができる。つまり、処理ユニットにおいてメモリに転送されたパケットのデータを処理しようとするソフトウェアの受信処理負担を適切に抑えることができる。例えば、パケットの分類種別ごとに異なる割り込み制御方法を用いることができるため、即時性の高いパケットに対する割り込み制御方法として即時割り込み方法を用いたり、即時性が低く、ある程度まとめて受信処理をすればよいパケットに対する割り込み制御方法としてタイマ割り込み方法を用いたりすることにより、パケットの分類種別ごとに最適な受信制御が実現される。
さらに、処理ユニットで起動するアプリケーションプログラムからの指示に応じて、分類種別と割り込み制御方法とが関連付けられて割り込み管理テーブルに登録されるため、アプリケーションプログラムは、自らが実行しようとする通信に用いられるパケットの分類種別と、そのパケットを用いた処理に求められる要件を満たすような割り込み制御方法とを割り込み管理テーブルに登録することができる。つまり、割り込み管理テーブルは書き換え可能であり、通信処理装置の初期化時あるいは動作中に変更されるため、起動するアプリケーションプログラムの変更などに柔軟な運用が可能となる。言い換えれば、割り込み管理テーブルに定義される割り込み制御方法を動的に変更できるため、複数のアプリケーションプログラムが動作または停止するような通信機器に対して容易に適用可能となる。その結果、ソフトウェアの受信処理負荷を抑えつつアプリケーションプログラムの処理に応じた割り込みを適宜行なうことができ、適切に受信処理を行なうことができる。
また、前記設定部は、前記割り込み管理テーブルに示されていない分類種別のパケットが前記受信部によって受信される場合、前記アプリケーションプログラムからの指示に応じて、前記分類種別と、前記パケットに応じた割り込み制御方法とを関連付けて前記割り込み管理テーブルに追加することにより、当該割り込み管理テーブルを更新してもよい。
これにより、新たな通信路が確立されるときに、その通信路に応じたパケットの分類種別と割り込み制御方法とが割り込み管理テーブルに登録されていなくても、そのアプリケーションプログラムの指示に応じてそれらが登録されるため、新たな通信路を含む複数の通信路のそれぞれに対して適切な割り込み制御を行なうことができる。
また、前記設定部は、前記アプリケーションプログラムからの指示として、当該アプリケーションプログラムによって確立された通信路を特定するための通信路情報を取得し、前記通信路情報に応じた分類種別および割り込み制御方法を前記割り込み管理テーブルに登録してもよい。
これにより、通信路情報に応じた割り込み制御方法が割り込み管理テーブルに登録されるため、その通信路に応じたより適切な割り込み制御方法を登録することができる。
また、前記設定部は、前記割り込み管理テーブルに、第1の分類種別および第1の割り込み制御方法を関連付けて登録するとともに、第2の分類種別および第2の割り込み制御方法を関連付けて登録し、前記割り込み制御部は、前記振り分け部によって分類されるパケットの分類種別が第1の分類種別である場合には、前記割り込み管理テーブルにおいて当該第1の分類種別に関連付けられた第1の割り込み制御方法で、割り込み信号を前記処理ユニットに出力し、前記振り分け部によって分類されるパケットの分類種別が第2の分類種別である場合には、前記割り込み管理テーブルにおいて当該第2の分類種別に関連付けられた第2の割り込み制御方法で、割り込み信号を前記処理ユニットに出力してもよい。
これにより、即時性に対して互いに異なる要件を有する第1の分類種別のパケットと第2の分類種別のパケットとが混在する環境でも、それぞれに適切な割り込み制御方法で割り込み信号を出力することができるため、何れの分類種別のパケットに対しても即時に割り込み信号を出力する割り込み制御方法が用いられる場合と比べて、割り込み信号の発信頻度を適切に抑制することができる。また、パケットの分類種別ごとに異なる割り込み制御方法を用いることができるため、即時性の高いパケットに対する割り込み制御方法として即時割り込み方法を用いたり、即時性が低く、ある程度まとめて受信処理をすればよいパケットに対する割り込み制御方法としてタイマ割り込み方法を用いたりすることにより、パケットの分類種別ごとに最適な受信制御が実現される。
ここで例えば、振り分け部においてパケットを分類する際に用いられる分類識別子(Ring識別子)を分類種別に用い、メモリとの間でパケットのデータを転送するために転送制御部が用いるDescriptorが分類識別子ごとに独立して管理されている場合には、転送制御において用いられる分類と同じ分類で割り込み制御を行なうことができるため、通信処理装置を制御するソフトウェアは容易に割り込み制御とパケットの分類とを関連付けて制御することができ、ソフトウェアにより再度分類を判定するなどの処理負荷の増大を抑制することができる。
また、前記設定部は、分類種別と当該分類種別に関連付けられた割り込み制御方法との組み合わせを1つまたは複数個だけ、前記割り込み管理テーブルに登録し、前記割り込み制御部は、前記割り込み管理テーブルに登録されている1つまたは複数個の組み合わせが、予め定められた組み合わせである場合には、前記割り込み管理テーブルにおいて、前記振り分け部によって分類されるパケットの分類種別に関連付けられている割り込み制御方法と異なる、予め定められた他の割り込み制御方法で割り込み信号を出力してもよい。例えば、前記割り込み制御部は、前記割り込み管理テーブルに、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として1つだけ登録されている場合には、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法で割り込み信号を出力する。
例えば、割り込み管理テーブルに割り込み制御方法として、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法と遅延割り込み方法とが登録されている場合には、遅延割り込み方法に対応する分類種別のパケットに対する処理よりも、タイマ割り込み方法に対応する分類種別のパケットに対する処理を優先させてソフトウェアに実行させることができ、その結果、それぞれのパケットのデータの処理をソフトウェアに適切に実行させることができる。しかし、割り込み管理テーブルに割り込み制御方法として遅延割り込み方法だけが登録されている場合にまで、割り込み信号の出力を遅延させる必要はない。そこで、本発明では、割り込み管理テーブルに割り込み制御方法として遅延割り込み方法だけが登録されている場合には、遅延割り込み方法ではなく即時割り込み方法で割り込み信号が出力されるため、通信状況に応じて、遅延割り込み方法でも受信処理可能な分類種別のパケットに対するスループットを向上することができる。
また、前記設定部は、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過し、且つ直前の割り込み信号が出力されてから前記予め定められた時間経過したときに割り込み信号を出力する間隔制限付き遅延割り込み方法、および、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法の中から、1つまたは複数の方法を前記割り込み制御方法として前記割り込み管理テーブルに登録してもよい。
これにより、割り込み信号の発信頻度を抑制しつつ、即時性を有する通信に対するパケットの処理を遅延することなく処理することが可能となる。また、タイマ割り込み方法では、OSにより制御されるタイマ機能と比較してタイマ時間の精度が高いため(数百μsec以下)、大量に送信されるHD(High Definition)画質の映像データの受信処理でも定期的に適切に行なうことができ、DoS(Denial of Service)攻撃対策の精度を高めることが可能となる。さらに、割り込み制御部が割り込み信号を出力することで、OSがタイマ機能として制御を行なう必要がないため、ソフトウェア処理量の少ないタイマ機能を提供することができる。また、即時性が必要とされず、ある程度まとめて受信処理をすればよいパケットに対しては、割り込み信号の発信頻度を抑えて、ソフトウェアの受信処理負担を軽減することができる。また、間隔制限付き遅延割り込み方法では、割り込み頻度を所定の間隔に制限することが可能となり、ソフトウェアによる処理負荷を抑制することがさらに容易になる。なお、間隔制限付き遅延割り込み方法による1回の割り込みに対する受信処理量を制限してもよく、この場合には、受信量制限(pps制限、bps制限)を容易に行なうことができる。また、即時割り込み方法では、間隔制限付き遅延割り込み方法のように即時性を犠牲にすることなく、即時性の高い処理が要求されるパケットに対して適切に受信処理を行なうことができる。また、即時割り込み方法、遅延割り込み方法、間隔制限付き遅延割り込み方法、およびタイマ割り込み方法が割り込み管理テーブルに登録されれば、多種多様な分類種別のパケットが同時期に受信されても、それらのパケットに適切な割り込み制御方法で割り込み信号を出力することができる。
また、前記転送制御部は、さらに、前記振り分け部によって分類されたパケットに関するパケット関連情報を前記割り込み制御部に通知し、前記割り込み制御部は、前記転送制御部から前記パケット関連情報の通知を受けたときには、前記割り込み管理テーブルにおいて前記パケットの分類種別に関連付けられている割り込み制御方法と前記パケット関連情報とに応じた他の割り込み制御方法を特定し、前記他の割り込み制御方法で前記割り込み信号を出力してもよい。
例えば、受信データ長や、特定のプロトコルの特定の情報などがパケット関連情報として割り込み制御部に通知される。これにより、そのようなパケット関連情報に応じて割り込み制御方法が特定されるため、例えば、DoS攻撃などに対抗する割り込み制御方法に変更することができる。つまり、DoS攻撃対策を容易とすることができる。例えば、DoS攻撃に対して、受信したパケットを一律に廃棄するのではなく、割り込み制御方法を切り替えることでソフトウェア処理量を低減しながら、本来のアプリケーションプログラムの処理に支障が出ないように制御することが可能となる。
また、上記目的を達成するために、本発明の通信処理装置の制御方法は、パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置を制御する方法であって、前記通信処理装置は、割り込み管理テーブルを保持し、パケットを受信して当該パケットのデータをメモリに転送し、前記割り込み管理テーブルにおいて受信されるパケットの種別に関連付けられている割り込み制御方法で、前記パケットに対する割り込み信号を出力し、前記通信処理装置を制御する方法では、前記通信処理装置を介した通信路を確立し、前記通信路を特定するための通信路情報を前記通信処理装置に送信することにより、前記通信処理装置に対して、前記通信路情報に対応するパケットの種別および割り込み制御方法を前記割り込み管理テーブルに登録させて、当該割り込み管理テーブルを更新させる。
これにより、例えばアプリケーションプログラムによって確立される通信路に対応するパケットの種別および割り込み制御方法が割り込み管理テーブルに登録されるため、通信制御装置に対して、アプリケーションプログラムの処理に応じた割り込み信号の出力を適宜実行させることができる。
また、前記割り込み信号が出力される要因には、パケットのデータが前記メモリに転送されたことを要因とする受信割り込み要因、または、予め定められた期間が経過したことを要因とするタイマ割り込み要因があり、前記通信処理装置の制御方法では、さらに、前記割り込み信号を取得し、取得した割り込み信号が前記受信割り込み要因によって出力されたか、前記タイマ割り込み要因によって出力されたかを判定し、前記受信割り込み要因によって出力されたと判定したときには、第1の受信処理方法により前記メモリに転送されたデータを処理し、前記タイマ割り込み要因によって出力されたと判定したときには、第1の受信処理方法と異なる第2の受信処理方法により前記メモリに転送されたデータを処理してもよい。
これにより、割り込み信号が出力される要因が受信割り込み要因であるか、タイマ割り込み要因であるかに応じて、メモリに転送されたデータに対する受信処理方法が第1の受信処理方法と第2の受信処理方法とで切り替えられるため、それらの要因ごとに適切な受信処理を行なうことができる。
また、前記割り込み管理テーブルには、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法が前記割り込み制御方法として登録されてあり、前記第2の受信処理方法により前記メモリに転送されたデータを処理するときには、前記メモリに転送された前記タイマ割り込み方法の対象とされるパケットのデータの一群に対する処理が制限されるべきか否かを判定し、制限されるべきでないと判定したときには、前記一群の全てのパケットのデータを処理し、制限されるべきと判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理してもよい。
例えば、タイマ割り込み要因で割り込み信号が出力されるようなパケットでも、ストリームのパケットのように、受信時に広い帯域幅が保障されるべきパケットと、大量データダウンロードのパケットのように、そのような保障を必要としないが大量に受信されて処理されるべきパケットとがある。このようなパケットが混在するような場合には、ストリームのパケットについては、メモリに転送されたパケットのデータが1回の割り込みで全て処理されるべきであり、大量データダウンロードのパケットについては、ストリームのパケットが適切に処理されるように、1回の割り込みで処理されるデータ量が制限されるべきである。そこで、本発明では、処理が制限されるべきか否かが判定され、制限されるべきでないと判定されたときには、全てのパケットのデータが処理され、制限されるべきと判定されたときには、所定数以下のパケットのデータだけが処理される。したがって、本発明では、映像ストリーム受信などの受信帯域幅がアプリケーションの品質に極めて重大な影響を与える場合のパケットの受信に対して、他のパケットの受信の混在時にも安定した受信帯域幅を確保することができる。
また、前記割り込み管理テーブルには、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法と、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法とが、それぞれ前記割り込み制御方法として登録されてあり、前記第1の受信処理方法により前記メモリに転送されたデータを処理するときには、前記処理ユニットが、前記メモリに転送されたパケットのデータの一群が即時割り込み方法の対象とされるか、遅延割り込み方法の対象とされるかを前記一群のパケットの種別に基づいて判定し、即時割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータを処理し、遅延割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理してもよい。
例えば、受信割り込み要因で割り込み信号が出力されるようなパケットでも、TCPのACK(ACKnowledgement)処理のパケットように、即時に処理されるべきパケットと、ウェブブラウズのパケットのように、受信時の帯域幅の保障を必要としないパケットとがある。このようなパケットが混在するような場合には、ACK処理のパケットについては、メモリに転送されたパケットのデータが1回の割り込みで全て処理されるべきであり、ウェブブラウズのパケットについては、ACK処理のパケットが適切に処理されるように、1回の割り込みで処理されるデータ量が制限されるべきである。そこで、本発明では、メモリに転送されたパケットのデータの一群が即時割り込み方法の対象とされるか、遅延割り込み方法の対象とされるかが判定され、即時割り込み方法の対象とされると判定されたときには、全てのパケットのデータが処理され、遅延割り込み方法の対象とされると判定されたときには、所定数以下のパケットのデータだけが処理される。したがって、本発明では、ACK処理のパケットなどの即時性が求められるパケットの受信に対して、他のパケットの受信の混在時にも確実に即時性を確保することができる。
また、前記割り込み管理テーブルには、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として登録されてあり、前記第1の受信処理方法により前記メモリに転送されたデータを処理するときには、前記割り込み管理テーブルに割り込み制御方法として前記遅延割り込み方法のみが登録されているか否かを判定し、前記遅延割り込み方法のみが登録されていると判定したときには、前記メモリに転送された全てのパケットのデータを処理し、前記遅延割り込み方法以外の割り込み制御方法も登録されていると判定したときには、前記メモリに転送された前記遅延割り込み方法の対象とされる全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理してもよい。
これにより、割り込み管理テーブルに、遅延割り込み方法と他の割り込み制御方法(例えばタイマ割り込み方法)とが登録されている場合には、メモリに転送された遅延割り込み方法の対象とされる全てのパケットのデータのうち、所定数以下のパケットのデータだけが処理されるため、タイマ割り込み方法の対象とされるパケットのデータに対する処理の妨げとならないように、遅延割り込み方法の対象とされるパケットのデータを処理することができる。また、割り込み管理テーブルに、遅延割り込み方法だけが登録されている場合には、メモリに転送された全てのパケットのデータが処理されるため、遅延割り込み方法の対象とされるパケットの受信処理のスループットを向上することができる。
なお、本発明は、このような通信処理装置や、通信処理装置の制御方法として実現することができるだけでなく、その通信処理装置を備えて上記制御方法によりその通信処理装置を制御する通信機器、その通信処理装置が通信処理する方法、通信処理装置を制御するためのプログラムとしても実現することができ、そのプログラムを格納する記憶媒体や、集積回路としても実現することができる。
ソフトウェアの受信処理負荷を抑えつつアプリケーションの処理に応じた割り込みを適宜行なうことができる通信処理装置およびその通信処理装置を備えた通信機器を提供することを目的とする。
図1は、本発明の実施の形態に係る通信機器および通信処理装置の構成を示すブロック図である。 図2は、本発明の実施の形態に係る振り分け部で扱う受信パケットのフォーマット例を示す図である。 図3は、本発明の実施の形態に係る振り分けテーブルの一例を示す図である。 図4は、本発明の実施の形態に係る割り込み管理テーブルの一例を示す図である。 図5は、本発明の実施の形態に係る割り込み管理テーブルの他の例を示す図である。 図6Aは、本発明の実施の形態に係る即時割り込みのタイミングを示す図である。 図6Bは、本発明の実施の形態に係る遅延割り込みのタイミングを示す図である。 図6Cは、本発明の実施の形態に係る間隔制限付き遅延割り込みのタイミングを示す図である。 図7は、本発明の実施の形態に係るアプリケーションおよび設定部によるテーブル更新処理の一例を示すフローチャートである。 図8は、本発明の実施の形態に係る割り込み制御部の全体的な動作である割り込み制御処理を示すフローチャートである。 図9は、本発明の実施の形態に係る割り込み制御部における割り込み制御処理で実施される割り込み制御設定の詳細を示すフローチャートである。 図10は、本発明の実施の形態に係る割り込み制御部における割り込み制御処理で実施される割り込み発信制御の詳細を示すフローチャートである。 図11は、本発明の実施の形態に係る割り込み制御部における割り込み発信制御で実施されるタイマ割り込み制御の詳細を示すフローチャートである。 図12は、本発明の実施の形態に係る割り込み制御部における割り込み発信制御で実施される遅延割り込み制御の詳細を示すフローチャートである。 図13は、本発明の実施の形態に係る割り込み制御部における割り込み発信制御で実施される間隔制限付き遅延割り込み制御の詳細を示すフローチャートである。 図14は、本発明の実施の形態に係る通信処理装置を制御するソフトウェアにおける割り込みハンドラの受信処理を示すフローチャートである。 図15は、本発明の実施の形態に係る通信処理装置を制御するソフトウェアにおける割り込みハンドラの受信処理で実施されるタイマ割り込み処理を示すフローチャートである。 図16は、本発明の実施の形態に係る通信処理装置を制御するソフトウェアにおける割り込みハンドラの受信処理で実施される受信割り込み処理を示すフローチャートである。 図17は、通信処理装置を具備する通信機器の構成の例を示すブロック図である。 図18は、従来の通信処理装置の一構成例を示すブロック図である。
以下、本発明の実施の形態について、図面を参照しながら説明する。
図1は、本発明の実施の形態に係る通信機器および通信処理装置の構成を示すブロック図である。
本実施の形態における通信機器100は、通信処理装置101と、メインメモリ102と、CPU103とを備える。なお、図1では、通信機器100の上記各構成要素に接続するシステムバスは説明の便宜上省略してあるが、本発明の本質とは無関係である。また、図1において、メインメモリ102およびCPU103はそれぞれ1つのみ記載されているが、物理的あるいは論理的に複数存在していてもよく、それらの数は本発明の本質とは無関係である。
通信処理装置101は、転送制御部104、送信データ保持部105、MAC部106、振り分け部107、第2記憶部108m、受信データ保持部109、設定部110、割り込み制御部111、および第1記憶部112mを具備する。
転送制御部104は、その送信処理として、メインメモリ102との間のパケットのデータの転送を管理および制御して送信パケットのデータを送信データ保持部105に転送する。さらに、転送制御部104は、その受信処理として、受信パケットのデータを受信データ保持部109からメインメモリ102に転送する。
送信データ保持部105は、転送制御部104から転送された送信パケットのデータをMAC部106に転送する。MAC部106は、送信データ保持部105から転送された送信パケットのデータを、所定のMAC規格に準ずる送信処理により送信するとともに、所定のMAC規格に準ずる受信処理によりパケットを受信して振り分け部107に受信パケットのデータを転送する。なお、MAC部106から接続される外部ブロックは、物理層に依存し、通信機器100のネットワークと接続されるI/F(インターフェース)である。
振り分け部107は、第2記憶部108mに記憶されている振り分けテーブル108を参照して、MAC部106から転送された受信パケットのデータを分類し、受信データ保持部109に分類識別子とともに転送する。受信データ保持部109は、振り分け部107から転送された受信パケットのデータと分類識別子を関連付けて保持する。なお、分類識別子は、振り分け部107による分類結果を示し、受信パケットのデータの内容に応じてそのデータに割り当てられる分類種別である。
振り分け部107および振り分けテーブル108の詳細は、本発明の本質とは関係ないが、割り込み管理テーブル112における分類識別子を理解するために有用であるため、以下、それらの詳細について説明する。
図2は、振り分け部107で扱う受信パケットのフォーマット例を示す図である。具体的には、図2は、MACとしてEthernet(登録商標)、ネットワーク層としてIP、トランスポート層としてTCPを使用した場合のフォーマット例を示す。なお、本実施の形態では、振り分け部107で扱う受信パケットのフォーマットとして、MAC、ネットワーク層、およびトランスポート層などを用いるが、これらと異なるものを用いてもよい。
例えば、受信パケットのデータは、MACヘッダ401、IPヘッダ402、TCPヘッダ403およびペイロードデータ404を含む。この場合、受信パケットを分類するために用いられる情報としては、例えば、MACヘッダ401に含まれる宛先MACアドレス401aもしくは送信元MACアドレス401b、IPヘッダに含まれるIP Version(Ver)402aもしくはトランスポートプロトコル番号(Protocol)402b、または、TCPヘッダ403に含まれる送信元ポート番号403aもしくは宛先ポート番号403bなどが挙げられる。これらの一部を用いて他を任意としてもよいし、すべてを用いてもよい。さらに、受信パケットのデータに含まれる他の情報を分類に用いてもよい。例えば、Protocol402bがTCP(0x06)を示し、送信元ポート番号403aが80番である場合、受信パケットがHTTPサーバからの受信パケットであると特定できる。さらに、宛先ポート番号403bにより、その受信パケットを扱うアプリケーションが特定でき、その受信パケットが映像通信に用いられるものか否かが受信する通信機器100内では一意に特定可能となる。
図3は、振り分けテーブル108の一例を示す図である。
例えば、振り分けテーブル108は、受信パケットの分類に用いられる情報である分類パラメータと、その分類パラメータに対して関連付けられた分類識別子とを示す。この例では、分類パラメータは、トランスポートプロトコル(Protocol)、宛先IPアドレス、送信元ポート番号、および宛先ポート番号からなる。なお、トランスポートプロトコルは、上述のトランスポートプロトコル番号であってもよい。
具体的には、振り分けテーブル108は、分類パラメータ「Protocol:TCP、宛先IPアドレス:192.168.3.4、送信元ポート番号:80、宛先ポート番号:10001」に関連付けて分類識別子「1」を示し、分類パラメータ「Protocol:TCP、宛先IPアドレス:192.168.1.8、送信元ポート番号:10001、宛先ポート番号:10002」に関連付けて分類識別子「2」を示す。また、振り分けテーブル108は、具体的に挙げられた分類パラメータ以外の分類パラメータに対しては、分類識別子「Default」を示す。
したがって、振り分け部107は、受信パケットのデータに示される分類パラメータを振り分けテーブル108から検索し、その分類パラメータが振り分けテーブル108にあれば、その分類パラメータに関連付けられている分類識別子を、その受信パケットのデータとともに受信データ保持部109に出力する。また、振り分け部107は、検索の結果、その分類パラメータが振り分けテーブル108になければ、分類識別子「Default」をその受信パケットのデータとともに受信データ保持部109に出力する。
このように、振り分けテーブル108には、受信パケットを分類するための定義(分類パラメータ)が分類識別子に関連付けて登録されている。なお、その定義のエントリ一つ一つを区別するために、便宜上、仮想的に分類識別子を関連付けておいてもよい。
転送制御部104は、その受信処理として、受信データ保持部109に保持された受信パケットのデータを、そのデータに関連付けられた分類識別子に基づいてメインメモリ102に転送する。この時、転送制御部104は、受信パケットのデータをメインメモリ102へ転送完了したことを、その分類識別子とともに割り込み制御部111に通知する。
割り込み制御部111は、転送制御部104から通知された分類識別子を、第1記憶部112mに記憶されている割り込み管理テーブル112から検索し、その分類識別子に関連付けられているトラヒック種別に定義されている割り込み制御方法を特定し、その方法で割り込み制御を行なう。その結果、割り込み制御部111はCPU103に必要なタイミングで割り込み信号を発信する。
図4は、割り込み管理テーブル112の一例を示す図である。
例えば、割り込み管理テーブル112は、分類識別子と、その分類識別子に関連付けられたトラヒック種別とを示す。言い換えれば、割り込み管理テーブル112には、分類識別子とトラヒック種別と関連付けて登録されている。また、割り込み管理テーブル112における分類識別子は振り分けテーブル108の分類識別子と共通している。
具体的には、割り込み管理テーブル112は、分類識別子「1」に関連付けてトラヒック種別「ストリーム」を示し、分類識別子「2」に関連付けてトラヒック種別「即時」を示す。ここでトラヒック種別とは、受信パケットの受信形態であって、例えば「非優先」、「即時」、「ストリーム」および「ダウンロード」の何れかである。トラヒック種別「非優先」は、帯域幅の保障を必要としない通常の受信形態であり、トラヒック種別「即時」は、TCPのスループット向上に有用なTCP−ACK処理などの即時処理が必要とされる受信形態であり、トラヒック種別「ストリーム」は、帯域幅の保障を必要とする映像データの受信形態であり、トラヒック種別「ダウンロード」は、トラヒック種別「即時」および「ストリーム」による通信を妨げない範囲で最大限の受信性能を要求する受信形態である。
つまり、割り込み制御部111は、この割り込み管理テーブル112から、転送制御部104から通知された分類識別子(例えば分類識別子「1」)を検索し、その分類識別子に関連付けられているトラヒック種別(例えば「ストリーム」)を特定する。さらに、割り込み制御部111は、そのトラヒック種別に定義されている割り込み制御方法を特定する。
例えば、トラヒック種別「非優先」には、割り込み制御方法「遅延割り込み」または「間隔制限付き遅延割り込み」が定義され、トラヒック種別「即時」には、割り込み制御方法「即時割り込み」が定義され、トラヒック種別「ストリーム」には、割り込み制御方法「タイマ割り込み」が定義され、トラヒック種別「ダウンロード」には、割り込み制御方法「処理量(帯域幅)制限付きタイマ割り込み」が定義されている。なお、トラヒック種別「非優先」を細分化して、トラヒック種別「非優先A」に割り込み制御方法「遅延割り込み」が定義され、トラヒック種別「非優先B」に割り込み制御方法「間隔制限付き遅延割り込み」が定義されていてもよい。
「即時割り込み」は、パケットのデータがメインメモリ102に転送された直後に割り込み信号を出力する割り込み制御方法である。「遅延割り込み」は、パケットのデータがメインメモリ102に転送されてから予め定められた時間経過したときに割り込み信号を出力する割り込み制御方法である。「間隔制限付き遅延割り込み」は、パケットのデータがメインメモリ102に転送されてから予め定められた時間経過し、且つ直前の割り込み信号が出力されてから上記予め定められた時間経過したときに割り込み信号を出力する割り込み制御方法である。また、「タイマ割り込み」は、予め定められた期間ごとに割り込み信号を出力する割り込み制御方法であり、「処理量(帯域幅)制限付きタイマ割り込み」は、上記「タイマ割り込み」と同様のタイミングで割り込み信号を出力するが、その割り込み信号に応じて処理されるデータ量が制限されている割り込み制御方法である。
なお、本実施の形態では、割り込み管理テーブル112には、分類識別子に関連付けてトラヒック種別が登録され、1つのトラヒック種別は1つの割り込み制御方法に定義づけされている。したがって、本実施の形態における割り込み管理テーブル112は、分類識別子に関連付けられた割り込み制御方法を、トラヒック種別を介して間接的に示している。したがって、割り込み管理テーブル112には、トラヒック種別の代わりに、割り込み制御方法が分類識別子に関連付けて登録されていてもよい。
また、本実施の形態では、通信処理装置101は、割り込み管理テーブル112および振り分けテーブル108をそれぞれ独立に保持しているが、これら2つのテーブルの代わりに、これらのテーブルに含まれる情報を含む1つのテーブルを保持していてもよい。
図5は、割り込み管理テーブル112の他の例を示す図である。
この割り込み管理テーブル112は、分類識別子と、その分類識別子に対応する分類パラメータと、その分類識別子および分類パラメータに関連付けられたトラヒック種別とを示す。
通信処理装置101は、図5に示す割り込み管理テーブル112を保持する場合には、第2記憶部108mを備えず、その割り込み管理テーブル112を記憶している第1記憶部112mを備えている。さらに、この場合、振り分け部107は、振り分けテーブル108を参照する代わりに、割り込み管理テーブル112を参照することにより受信パケットのデータを分類する。
なお、通信処理装置101が割り込み管理テーブル112および振り分けテーブル108をそれぞれ独立に保持する場合でも、図5に示す割り込み管理テーブル112を保持していてもよい。また、この場合には、図5に示す割り込み管理テーブル112のうち分類識別子が省かれていてもよい。つまり、割り込み管理テーブル112は、分類パラメータと、その分類パラメータに関連付けられたトラヒック種別とを示す。このような割り込み管理テーブル112が第1記憶部112mに記憶されている場合には、振り分け部107は、受信パケットのデータをその分類パラメータと共に受信データ保持部109に転送し、転送制御部104は、受信パケットのデータをメインメモリ102へ転送完了したことを、その分類パラメータとともに割り込み制御部111に通知する。そして、割り込み制御部111は、その分類パラメータに関連付けられたトラヒック種別を割り込み管理テーブル112から検索し、そのトラヒック種別に定義付けされた割り込み制御方法を特定する。
ここで、割り込み制御部111で用いられる割り込み制御方法について、その詳細を以下に説明する。
使用される割り込み制御方法は、少なくとも以下のうち一つを含む。
(1)即時割り込み
(2)遅延割り込み(間隔制限なし)
(3)間隔制限付き遅延割り込み
(4)タイマ割り込み(処理量制限付き、または処理量制限なし)
なお、上記割り込み制御方法のうち、タイマ割り込みに関しては、必ずしも割り込み管理テーブル112で指定される必要はなく、単に、「受信に応じた割り込みは発生させない」という定義として指定してもよい。
タイマ割り込みは、通信処理装置101内の割り込み制御部111で実装される機能であり、予め定められた周期(タイマ時間)に割り込み信号をCPU103に発信する割り込み制御方法である。つまり、割り込み制御部111は、タイマ機能を具備し、割り込み制御方法として「タイマ割り込み」を適用する場合、CPU103より設定部110経由で設定されたタイマ時間、あるいは、予め決められた所定のタイマ時間に基づき、周期的な割り込み信号を発信する。ここで、割り込み制御部111は、CPU103からの指定により設定部110経由でタイマ割り込みのON/OFFを受け付け、周期的な割り込み信号の発信を作動あるいは停止することもできる。
このタイマ割り込みでは、割り込み制御部111の動作クロックに応じた精度の周期で発信が可能である。ただし、必ずしもその動作クロックの周期を最小単位とする必要はない。一般的に、割り込みに対するソフトウェアのドライバで実装された割り込み処理が駆動されるのは、高々数十μsec程度のずれである。これにより、OSにより実装されるタイマ機能より精度が高く、ソフトウェア処理量を低減したタイマ機能の実現が可能である。なお、タイマ割り込みは複数実装されてもよいが、タイマ割り込みを1つだけ実装してその時間単位(タイマ時間)を小さくし、ソフトウェアにより仮想的に複数のタイマを持つように制御することで代替可能である。
具体的に、即時割り込み、遅延割り込み、および間隔制限付き遅延割り込みのタイミングについて、図6A〜図6Cを用いて説明する。
図6Aは、割り込み制御方法「即時割り込み」のタイミングを示す図である。
即時割り込みは、通信処理装置101の転送制御部104において転送が完了(受信事象発生)した後、即時に割り込み制御部111が割り込み信号を発信する割り込み制御方法である。ここで、「即時」と記述したのは、説明の便宜上であり、実際のハードウェアの動作クロックの単位で数クロックのずれが発生することは十分許容できる範囲であり、そのずれを制限するものではない。
図6Bは、割り込み制御方法「遅延割り込み(間隔制限なし)」のタイミングを示す図である。
遅延割り込みは、通信処理装置101の転送制御部104において転送が完了(受信事象発生)した後、その転送完了時から予め定められた期間(遅延時間t)経過したときに、割り込み制御部111が割り込み信号を発信する割り込み制御方法である。上述の遅延時間tは、割り込み管理テーブル112の該当する分類識別子「Default」で定義されるエントリに登録されていてもよく、あるいは、割り込み制御部111に設定部110から予め指定されていてもよく、あるいは、割り込み制御部111によって予め保有されていてもよい。仮に、受信事象発生後、その受信事象発生に対応する割り込み信号の発信までに、新たな受信事象が発生した場合には、ソフトウェアがその新たな受信事象発生を通信処理装置101の転送制御部104の管理外としなければ、その新たな受信事象発生から前述の遅延時間tだけ遅延して割り込み信号が発信される。
なお、割り込みの遅延時間tの精度については、即時割り込みで記載した通り、ハードウェアの動作クロックの数クロックのずれを制限するものではない。また、上述の遅延時間tを、割り込み管理テーブル112のエントリに個別に登録しておくことは、実装が複雑となるため、推奨はされない。
図6Cは、割り込み制御方法「間隔制限付き遅延割り込み」のタイミングを示す図である。
間隔制限付き遅延割り込みは、通信処理装置101の転送制御部104において転送が完了(受信事象発生)した後、その転送完了時から予め定められた期間(遅延時間t)経過したときに、割り込み制御部111が割り込み信号を発信する制御方法である。間隔制限なしの遅延割り込みと異なる点は、割り込み信号と次の割り込み信号との時間間隔が遅延時間t以上になることが保障されていることである。つまり、受信事象発生後、その受信事象発生に対応する割り込み信号の発信までに、新たな受信事象が発生し、ソフトウェアがその新たな受信事象発生を通信処理装置101の転送制御部104の管理外としなかった場合、割り込み制御部111は先の割り込み信号の発信から遅延時間tだけ間隔を空けて新たな割り込み信号を発信する。例えば、図6Cに示すように、受信事象aの発生後、その受信事象aの発生に対応する割り込み信号aの発信までに新たな受信事象bが発生した場合、割り込み制御部111は先の割り込み信号aの発信から遅延時間tだけ間隔を開けて新たな割り込み信号bを発信する。
この割り込み制御方法は、pps(Packet Per Sec:単位時間あたりに処理されるパケット数)制限や、bps(Bit Per Sec:単位時間あたりに処理される受信データ量)制限を行なうのにソフトウェア実装が容易となり、不要な割り込み信号の発信を抑制することも可能となる。
設定部110は、割り込み管理テーブル112および振り分けテーブル108を更新する。つまり、設定部110は、CPU103によってアプリケーションが起動すると、そのアプリケーションによって確立される通信路に応じて割り込み管理テーブル112および振り分けテーブル108を更新する。
図7は、アプリケーションおよび設定部110によるテーブル更新処理の一例を示すフローチャートである。
まず、アプリケーションは通信路を確立する(ステップS100)。例えば、アプリケーションはソケットをオープンしたりbindを行なったりする。設定部110は、このように通信路を確立したアプリケーションから通信路情報を取得する(ステップS102)。通信路情報は、図3に示す振り分けテーブル108の分類パラメータであって、Protocol、宛先IPアドレス、送信元ポート番号および宛先ポート番号などを含む。
次に、設定部110は、その取得した通信路情報に分類識別子を割り当て、その通信路情報を分類パラメータとして分類識別子とともに振り分けテーブル108に登録する。さらに、設定部110は、その取得した通信路情報に適したトラヒック種別を特定し、特定したトラヒック種別を、その通信路情報に割り当てた分類識別子に関連付けて割り込み管理テーブル112に登録する(ステップS104)。なお、アプリケーションプログラムが通信路を確立したときに、その通信路に対応する分類識別子および割り込み制御方法が割り込み管理テーブル112に登録されていなければ、ステップS104で、その通信路に対応する分類識別子および割り込み制御方法が割り込み管理テーブル112に追加されることになる。
このように、アプリケーションプログラムは、通信処理装置101を介した通信路を確立し、通信路情報を通信処理装置101に送信することにより、通信処理装置101の設定部110に対して、通信路情報に対応する分類識別子および割り込み制御方法を割り込み管理テーブル112に登録させて、その割り込み管理テーブル112を更新させる。
また、設定部110は、割り込み制御部111によるタイマ割り込みのON/OFFの要求をCPU103から受け付け、その要求に応じて割り込み制御部111にタイマ割り込みを実行させたり停止させたりしてもよい。
また、割り込み管理テーブル112および振り分けテーブル108に登録される通信路情報として、予め決められた共通の通信路情報を保有する複数の通信路に対して適用可能な設定を登録することも可能である。これにより、例えばサーバのよく知られたポート番号として同一の値を持つ通信路に対して、共通の登録情報を参照することが可能となり、割り込み管理テーブル112および振り分けテーブル108の登録総数を抑制することが可能となる。
次に、割り込み制御方法を実現するためのアルゴリズムの例を図8から図13を用いて説明する。なお、この説明においては、ハードウェアの実装において、並列処理できるところにおいても、説明の容易性から逐次実行として記述している部分もあるが、並列処理を制限するものではない。また、以下の説明では、上述の割り込み制御方法すべてを実装した形態について説明しているが、それらの一部が実装されない場合においても、容易に類推できるため説明を割愛する。
図8は、割り込み制御部111の全体的な動作である割り込み制御処理を示すフローチャートである。割り込み制御部111は、割り込み制御処理を実行するときには、割り込み発信制御(ステップS200)と割り込み制御設定(ステップS202)とを並列に、または何れか一方の処理を実行し、その後、割り込み制御処理を終了すべきか否かを判別する(ステップS204)。ここで、割り込み制御部111は、終了すべきでないと判別すると(ステップS204のNo)、ステップS200,S202の処理を繰り返して実行し、終了すべきであると判別すると(ステップS204のYes)、割り込み制御処理を終了する。
図9は、図8におけるステップS202として記載された割り込み制御設定の詳細を示すフローチャートである。
割り込み制御部111は、割り込み制御設定を行なうときには、まず、転送制御部104からの受信完了の通知の有無を判定する(ステップS210)。ここで、割り込み制御部111は、通知がないと判定すると(ステップS210のNo)、割り込み制御設定を終了する。一方、割り込み制御部111は、通知があったと判定すると(ステップS210のYes)、転送制御部104から得た分類識別子に関連付けられているトラヒック種別を割り込み管理テーブル112から検索する。そして、割り込み制御部111は、該当するトラヒック種別を見つけ出し、そのトラヒック種別に定義されている割り込み制御方法を特定する(ステップS212)。
次に、割り込み制御部111は、ステップS212で特定した割り込み制御方法が即時割り込みであるか否かを判定する(ステップS214)。ここで、割り込み制御部111は、即時割り込みであると判定すると(ステップS214のYes)、割り込み要因に受信割り込みを設定して割り込み信号を発信し(ステップS216)、割り込み制御設定を終了する。一方、割り込み制御部111は、ステップS214で割り込み制御方法が即時割り込みでないと判定すると(ステップS214のNo)、さらに、その割り込み制御方法が遅延割り込み(間隔制限なし)であるか否かを判定する(ステップS218)。
ここで、割り込み制御部111は、遅延割り込みであると判定すると(ステップS218のYes)、受信事象発生に対して「遅延割り込み中」を設定し(ステップS220)、割り込み制御設定を終了する。一方、割り込み制御部111は、ステップS218で割り込み制御方法が遅延割り込みでないと判定すると(ステップS218のNo)、さらに、その割り込み制御方法が間隔制限付き遅延割り込みであるか否かを判定する(ステップS222)。
ここで、割り込み制御部111は、間隔制限付き遅延割り込みであると判定すると(ステップS222のYes)、受信事象発生に対して「間隔制限付き遅延割り込み中」を設定し(ステップS224)、割り込み制御設定を終了する。一方、割り込み制御部111は、ステップS222で割り込み制御方法が間隔制限付き遅延割り込みでないと判定すると(ステップS222のNo)、ステップS224の設定を行なうことなく割り込み制御設定を終了する。その結果、受信完了のデータはタイマ割り込みの対象として扱われる。
図10は、図8におけるステップS200として記載された割り込み発信制御の詳細を示すフローチャートである。
割り込み制御部111は、割り込み発信制御を行なうときには、まず、割り込み制御が有効か否かを判定する(ステップS240)。例えば、割り込み制御部111は、割り込み管理テーブル112が第1記憶部112mに記憶されていれば、割り込み制御が有効であると判定する。あるいは、割り込み制御部111は、割り込み管理テーブル112を参照して、その割り込み管理テーブル112に分類識別子およびその分類識別子のトラヒック種別が登録されていれば、割り込み制御が有効であると判定する。
ここで、割り込み制御部111は、割り込み制御が有効であると判定すると(ステップS240のYes)、タイマ割り込み制御(ステップS242)、遅延割り込み制御(ステップS244)、および間隔制限付き遅延割り込み制御(ステップS246)の何れかを実行し、割り込み発信制御を終了する。また、割り込み制御部111は、ステップS240で割り込み制御が有効でないと判定したときには(ステップS240のNo)、上記ステップS242,S244,S246の何れの処理を行なうことなく、割り込み発信制御を終了する。
図11は、図10におけるステップS242として記載されたタイマ割り込み制御の詳細な処理を示すフローチャートである。
割り込み制御部111は、タイマ割り込み制御を行なうときには、まず、タイマ割り込みがONか否かを判定する(ステップS260)。例えば、割り込み制御部111は、割り込み管理テーブル112を参照して、そこにトラヒック種別「ストリーム」または「ダウンロード」が登録されているか否かを判別することにより、タイマ割り込みがONか否かを判定する。つまり、割り込み制御部111は、トラヒック種別「ストリーム」または「ダウンロード」が登録されていれば、タイマ割り込みがONであると判定する。
ここで、割り込み制御部111は、タイマ割り込みがONであると判定すると(ステップS260のYes)、さらに、タイマ割り込み発信条件が満了したか否かを判定する(ステップS262)。ここで、タイマ割り込み発信条件の満了とは、前回のタイマ割り込み発信条件が満了してから、所定のタイマ時間だけ経過したことを意味する。割り込み制御部111は、タイマ割り込み発信条件が満了したと判定すると(ステップS262のYes)、割り込み要因にタイマ割り込みを設定して割り込み信号を発信する(ステップS264)。このとき、割り込み制御部111は、タイマ割り込みの発信条件が満了しているか否かを判定するための経過時間を0、あるいは次回のタイマ割り込み発信条件の満了までの時間を初期値に設定する。そして、割り込み制御部111は、上述の経過時間、あるいは上述の次回満了までの時間を更新する(ステップS266)。
一方、割り込み制御部111は、ステップS260でタイマ割り込みがONでないと判定したときには(ステップS260のNo)、タイマ割り込み制御を終了する。また、割り込み制御部111は、ステップS262でタイマ割り込み発信条件が満了していないと判定したときには(ステップS262のNo)、割り込み信号を発信することなく、上述の経過時間などを更新する(ステップS266)。
図12は、図10におけるステップS244として記載された遅延割り込み制御の詳細を示すフローチャートである。
割り込み制御部111は、遅延割り込み制御を行なうときには、まず、遅延割り込み中か否かを判定する(ステップS280)。つまり、割り込み制御部111は、図9に示す割り込み制御設定のステップS220の処理によって、受信事象発生に「遅延割り込み中」が設定されているか否かを判定する。
ここで、割り込み制御部111は、遅延割り込み中であると判定すると(ステップS280のYes)、さらに、遅延割り込み発信条件が満了したか否かを判定する(ステップS282)。ここで、遅延割り込み発信条件の満了とは、割り込みの対象となる受信事象の発生から所定の遅延時間だけ経過したことを意味する。割り込み制御部111は、遅延割り込み発信条件が満了したと判定すると(ステップS282のYes)、割り込み要因に受信割り込みを設定して割り込み信号を発信する(ステップS284)。
一方、割り込み制御部111は、遅延割り込み発信条件が満了していないと判定したときには(ステップS282のNo)、割り込み信号を発信することなく、遅延割り込み発信条件が満了しているか否かを判定するための経過時間、あるいは次回の遅延割り込み発信条件の満了までの時間を更新する(ステップS286)。この経過時間などの更新は、すべての遅延割り込みの対象とされる受信事象発生に対して行なわれる。また、割り込み制御部111は、ステップS280で遅延割り込み中でないと判定したときには(ステップS280のNo)、遅延割り込み制御を終了する。
ここで、割り込み制御部111は、ステップS284において割り込み信号を発信した場合、次の受信事象発生に対して、次に満了する遅延割り込みの発信条件を適用する。次に遅延割り込みの対象となる受信事象発生がなければ、割り込み制御部111は、ステップS280で遅延割り込み中でないと判定する。また、遅延割り込みの対象となる受信事象発生が全てソフトウェアで処理された場合にも、割り込み制御部111は、転送制御部104が管理するDescriptorの解析の結果、遅延割り込みを発生させる必要がないことを検知し、ステップS280で遅延割り込み中でないと判定する。
図13は、図10におけるステップS246として記載された間隔制限付き遅延割り込み制御の詳細を示すフローチャートである。
割り込み制御部111は、間隔制限付き遅延割り込み制御を行なうときには、まず、間隔制限付き遅延割り込み中か否かを判定する(ステップS300)。つまり、割り込み制御部111は、図9に示す割り込み制御設定のステップS224の処理によって、受信事象発生に「間隔制限付き遅延割り込み中」が設定されているか否かを判定する。
ここで、割り込み制御部111は、間隔制限付き遅延割り込み中であると判定すると(ステップS300のYes)、さらに、間隔制限が満了したか否かを判定する(ステップS302)。ここで、間隔制限の満了とは、割り込みの対象となる受信事象の発生から所定の遅延時間が経過し、且つ、前回の間隔制限付き遅延割り込みによる割り込み信号の発信がある場合には、その発信から上記遅延時間だけ経過したことを意味する。割り込み制御部111は、間隔制限が満了したと判定すると(ステップS302のYes)、割り込み要因に受信割り込みを設定して割り込み信号を発信する(ステップS304)。
一方、割り込み制御部111は、間隔制限が満了していないと判定したときには(ステップS302のNo)、割り込み信号を発信することなく、間隔制限が満了しているか否かを判定するための経過時間、あるいは次回の間隔制限の満了までの時間を更新する(ステップS306)。また、割り込み制御部111は、ステップS300で間隔制限付き遅延割り込み中でないと判定したときには(ステップS300のNo)、間隔制限付き遅延割り込み制御を終了する。
ここで、割り込み制御部111は、ステップS304において割り込み信号を発信した場合、経過時間を0、あるいは次回の間隔制限の満了までの時間を初期値に設定する。また、間隔制限付き遅延割り込みの対象となる受信事象発生が全てソフトウェアで処理された場合、割り込み制御部111は、転送制御部104が管理するDescriptorの解析の結果、間隔制限付き遅延割り込みを発生させる必要がないことを検知し、ステップS300で間隔制限付き遅延割り込み中でないと判定する。
なお、上記説明において、即時割り込み、遅延割り込み、間隔制限付き遅延割り込みの割り込み要因を「受信割り込み」として統一して扱う例を示したが、これらが別々であっても構わない。
ここで、上述で実現される通信処理装置101を用いた通信機器100を実現するために、ソフトウェアで実装する制御アルゴリズムの例を、図14から図16を用いて説明する。ただし、一般的なドライバソフトウェアの処理については、本発明の本質とは関係がないため割愛し、割り込み処理の説明に限定する。また、以下の説明において、判定の順序や処理の順序が必ずしも記述の通りでなくてもよい場合もあるが、同業の専門家であれば容易に類推できるため、その記述は割愛する。
図14は、CPU103で実行されるソフトウェアにおける割り込みハンドラの受信処理を示すフローチャートである。
ソフトウェアは、割り込み信号の割り込み要因にタイマ割り込みが設定されているか否かを判定する(ステップS400)。ここで、ソフトウェアは、タイマ割り込みが設定されていると判定すると(ステップS400のYes)、タイマ割り込み処理を行なう(ステップS402)。なお、タイマ割り込み処理の詳細については、図15を用いて後述する。一方、ソフトウェアは、タイマ割り込みが設定されていないと判定すると(ステップS400のNo)、または、ステップS402のタイマ割り込み処理が完了すると、さらに、割り込み信号の割り込み要因に受信割り込みが設定されているか否かを判定する(ステップS404)。
ここで、ソフトウェアは、受信割り込みが設定されていると判定すると(ステップS404のYes)、受信割り込み処理を行なう(ステップS406)。なお、受信割り込み処理の詳細については、図16を用いて後述する。一方、ソフトウェアは、受信割り込みが設定されていないと判定すると(ステップS406)、または、ステップS406の受信割り込み処理が完了すると、他の割り込み要因に対する処理を行ない(ステップS408)、ソフトウェアにおける割り込みハンドラの受信処理を終了する。
図15は、図14におけるステップS402のタイマ割り込み処理の詳細を示すフローチャートである。
ソフトウェアは、タイマ割り込み処理では、まず、処理対象とする分類識別子を先頭(例えば1)に初期化する(ステップS420)。次に、ソフトウェアは、処理対象の分類識別子(初期値は分類識別子1)に対応するデータ(以降、分類対象という)がタイマ割り込み対象であるか否かを判定する(ステップS422)。なお、転送制御部104が管理するDescriptorが分類識別子ごとに独立して管理されている場合、その管理番号で分類識別子を識別可能であるため、ソフトウェアによるステップS422の判定の実現が容易となる。
ここで、ソフトウェアは、分類対象がタイマ割り込み対象であると判定すると(ステップS422のYes)、さらに、分類対象が帯域幅制限対象(処理量制限付きタイマ割り込みの対象)であるか否かを判定する(ステップS424)。ソフトウェアは、分類対象が帯域幅制限対象であると判定すると(ステップS424のYes)、通信処理装置101からメインメモリ102に転送された上述の分類対象に該当する受信パケットのうち、最大N個の受信パケットを受信処理する。ここで、N個とは、予め決められた値であり、通信機器100または通信機器100を含むシステムで一意であってもよいし、分類識別子毎に異なる値であってもよい。
一方、ソフトウェアは、分類対象が帯域幅制限対象でないと判定すると(ステップS424のNo)、通信処理装置101からメインメモリ102に転送された上述の分類対象に該当する全ての受信パケットを受信処理する(ステップS428)。また、ソフトウェアは、ステップS426,S428の受信処理完了後、または、ステップS422で分類対象がタイマ割り込み対象でないと判定したときには(ステップS422のNo)、すべての分類識別子に対して上述の処理を行なったか否かを判定する(ステップS430)。ここで、ソフトウェアは、処理を行なったと判定すると(ステップS430のYes)、タイマ割り込み処理を終了する。一方、ソフトウェアは、処理を行なっていないと判定すると(ステップS430のNo)、分類識別子をインクリメントして(例えば1進める)(ステップS432)、ステップS422からの処理を繰り返し実行する。
図16は、図14におけるステップS406の受信割り込み処理の詳細を示すフローチャートである。
ソフトウェアは、受信割り込み処理では、まず、非優先パケットのみの受信モードであるか否かを判定する(ステップS440)。ここで、非優先パケットのみの受信モードとは、以下のいずれかの条件を満たす場合のモードである。
(1)トラヒック種別「非優先」だけが割り込み管理テーブル112に登録されている。つまり、遅延割り込みあるいは間隔制限付き遅延割り込みで処理されるデータの分類識別子(例えば、「Default」)以外の分類識別子が割り込み管理テーブル112に登録されていない。
(2)トラヒック種別「ストリーム」が割り込み管理テーブル112に登録されている、言い換えれば、タイマ割り込みにより処理されるデータの分類識別子が割り込み管理テーブル112に登録されているが、予め決められた所定の期間、そのデータの受信が転送制御部104において行なわれなかった。
ソフトウェアは、ステップS440で非優先パケットのみの受信モードであると判定すると(ステップS440のYes)、通信処理装置101からメインメモリ102に転送された全ての受信パケットを受信処理し(ステップS442)、受信割り込み処理を終了する。一方、ソフトウェアは、ステップS440で非優先パケットのみの受信モードでないと判定すると(ステップS440のNo)、処理対象とする分類識別子を先頭(例えば1)に初期化する(ステップS444)。次に、ソフトウェアは、分類対象(初期化時では、分類識別子1に対応するデータ)が即時割り込み対象であるか否かを判定する(ステップS446)。なお、転送制御部104が管理するDescriptorが分類識別子ごとに独立して管理されている場合、その管理番号で分類識別子を識別可能であるため、ソフトウェアによるステップS446の判定の実現が容易となる。
ここで、ソフトウェアは、分類対象が即時割り込み対象であると判定すると(ステップS446のYes)、通信処理装置101からメインメモリ102に転送された上述の分類対象に該当する、すなわち即時割り込み対象に該当する全ての受信パケットを受信処理する(ステップS448)。一方、ソフトウェアは、分類対象が即時割り込み対象でないと判定すると(ステップS446のNo)、遅延割り込みあるいは間隔制限付き遅延割り込みで処理される全ての受信パケット、すなわち全ての非優先パケットのうち、最大M個の受信パケットを受信処理する(ステップS450)。ここで、M個とは、予め決められた値であり、通信機器100または通信機器100を含むシステムで一意であってもよいし、分類識別子毎に異なる値であってもよく、前述のN個と同一であっても異なる値でもよい。
次に、ソフトウェアは、ステップS448,S450の受信処理完了後、すべての分類識別子に対して上述の処理を行なったか否かを判定する(ステップS452)。ここで、ソフトウェアは、処理を行なったと判定すると(ステップS452のYes)、受信割り込み処理を終了する。一方、ソフトウェアは、処理を行なっていないと判定すると(ステップS452のNo)、分類識別子をインクリメントして(例えば1進める)(ステップS454)、ステップS446からの処理を繰り返し実行する。
以上のように、本実施の形態における通信処理装置101は、受信パケットの分類パラメータに応じて、
(1)即時割り込み
(2)遅延割り込み
(3)間隔制限付き遅延割り込み
(4)タイマ割り込み
を実現する。さらに、通信処理装置101は、タイマ割り込みで処理される分類の受信パケットに対し、帯域幅制限対象とそれ以外に分類して処理することで、
(1)即時性の高い通信
(2)非優先的に処理される通信
(3)非優先的に処理される通信のpps制限
(4)帯域幅制限対象となる通信
(5)映像受信のように、デコーダにおける受信レートの制限により、受信レートが自動的に制御されるため、受信パケットを無制限に処理すべき通信を実現する。
以上、本発明に係る通信処理装置および通信機器について、上記実施の形態を用いて説明したが、本発明はこれらに限定されるものではない。
例えば、上記実施の形態では、転送制御部104は、受信事象発生と、その受信事象発生に対応する分類識別子とを割り込み制御部111に通知したが、受信パケット長など、割り込み管理テーブル112で分類定義されていない情報も合わせて通知してもよい。この情報は、振り分け部107によって分類された受信パケットに関するパケット関連情報である。この場合には、割り込み制御部111は、割り込み管理テーブル112において受信パケットの分類識別子に関連付けられている割り込み制御方法と上述のパケット関連情報とに応じた他の割り込み制御方法を特定し、他の割り込み制御方法で割り込み信号を発信することができる。その結果、受信事象発生に対してより適切な割り込み制御方法で割り込み信号を発信することができる。例えば、パケット長が所定の長さより短い受信パケットや、TCPのSYNパケットに対して、強制的に間隔制限付き遅延割り込みを適用するなどにより、DoS(Denial of Service)攻撃への対策が可能となる。また、転送制御部104は、分類識別子毎に管理されるDescriptorが全てソフトウェアで処理されたことを検知した場合、割り込み制御部111に通知する。これによって、不要な割り込みを抑制することが可能となる。なお、割り込み制御部111がDescriptorを検索して同様の処理を行なってもよい。
また、設定部110は、分類識別子とその分類識別子に関連付けられたトラヒック種別(割り込み制御方法)との組み合わせを1つまたは複数個だけ、割り込み管理テーブル112に登録し、割り込み制御部111は、割り込み管理テーブル112に登録されている1つまたは複数個の組み合わせが、予め定められた組み合わせである場合には、割り込み管理テーブル112において、受信パケットの分類識別子に関連付けられている割り込み制御方法と異なる、予め定められた他の割り込み制御方法で割り込み信号を出力してもよい。例えば、割り込み制御部111は、割り込み管理テーブル112に遅延割り込みが割り込み制御方法として1つだけ登録されている場合には、即時割り込み方法で割り込み信号を出力してもよい。これにより、遅延割り込みの対象となるパケットの受信処理のスループットを向上することができる。
また、転送制御部104は、メインメモリ102との間でパケットのデータを転送するため、転送制御部104が用いるDescriptorで割り込み制御方法を指定してもよい。この場合、パケット毎の割り込み制御の変更が可能となる。
また、上記実施の形態における通信処理装置101は、単体のLSIとして実装されてもよいし、半導体IPコアとして実装され、SoC(System On Chip)などに内蔵実装されてもよい。つまり、ブロック図(図1など)の各機能ブロックは典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。(例えばメモリ以外の機能ブロックが1チップ化されていても良い。)ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサ を利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。 また、各機能ブロックのうち、符号化または復号化の対象となるデータを格納する手段だけ1チップ化せずに別構成としても良い。
また、上記実施の形態における通信処理装置101は、より転送効率を高くすることを可能とするDescriptorを用いたDMA(Direct Memory Access)を利用する転送制御部104を備えた。しかし、本発明は、Descriptorを用いたDMAを使用した場合だけに実現できるものではなく、DMAを用いずに、パケットの受信の都度、プログラムI/Oによる転送を行なう場合においても実現できることは、同業の専門家であれば、容易に類推可能である。
また、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本発明にかかる通信処理装置、通信処理方法、およびその通信処理装置を搭載した通信機器は、家電などの比較的低い処理資源を有する装置において適切な通信機能を実現することができ、特に、通信帯域幅がアプリケーションの品質に重大な影響を与える通信を、他の通信と混在して行なう場合に有用であって、例えば、テレビ受像機、レコーダ、録画再生装置、セットトップボックス、またはIP(Internet Protocol)通信装置などに適用することができる。
100 通信機器
101 通信処理装置
102 メインメモリ
103 CPU
104 転送制御部
105 送信データ保持部
106 MAC部
107 振り分け部
108 振り分けテーブル
108m 第2記憶部
109 受信データ保持部
110 設定部
111 割り込み制御部
112 割り込み管理テーブル
112m 第1記憶部

Claims (18)

  1. パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置であって、
    パケットを受信する受信部と、
    前記受信部で受信されるパケットの種類に応じて、複数の分類種別のうちの何れか1つの分類種別に前記パケットを分類する振り分け部と、
    前記受信部によって受信されて前記振り分け部によって分類されたパケットのデータを前記メモリに転送する転送制御部と、
    分類種別と、割り込み信号を出力するタイミングに関する割り込み制御方法とを関連付けて示す割り込み管理テーブルを記憶している記憶部と、
    前記割り込み管理テーブルを参照することにより、前記振り分け部によって分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で前記割り込み信号を前記処理ユニットに出力する割り込み制御部と、
    前記処理ユニットで起動するアプリケーションプログラムからの指示に応じて、前記割り込み管理テーブルに分類種別および割り込み制御方法を登録することにより、当該割り込み管理テーブルを更新する設定部と
    を備える通信処理装置。
  2. 前記設定部は、
    前記割り込み管理テーブルに示されていない分類種別のパケットが前記受信部によって受信される場合、前記アプリケーションプログラムからの指示に応じて、前記分類種別と、前記パケットに応じた割り込み制御方法とを関連付けて前記割り込み管理テーブルに追加することにより、当該割り込み管理テーブルを更新する
    請求項1記載の通信処理装置。
  3. 前記設定部は、
    前記アプリケーションプログラムからの指示として、当該アプリケーションプログラムによって確立された通信路を特定するための通信路情報を取得し、前記通信路情報に応じた分類種別および割り込み制御方法を前記割り込み管理テーブルに登録する、
    請求項1記載の通信処理装置。
  4. 前記設定部は、
    前記割り込み管理テーブルに、第1の分類種別および第1の割り込み制御方法を関連付けて登録するとともに、第2の分類種別および第2の割り込み制御方法を関連付けて登録し、
    前記割り込み制御部は、
    前記振り分け部によって分類されるパケットの分類種別が第1の分類種別である場合には、前記割り込み管理テーブルにおいて当該第1の分類種別に関連付けられた第1の割り込み制御方法で、割り込み信号を前記処理ユニットに出力し、
    前記振り分け部によって分類されるパケットの分類種別が第2の分類種別である場合には、前記割り込み管理テーブルにおいて当該第2の分類種別に関連付けられた第2の割り込み制御方法で、割り込み信号を前記処理ユニットに出力する、
    請求項1記載の通信処理装置。
  5. 前記設定部は、
    分類種別と当該分類種別に関連付けられた割り込み制御方法との組み合わせを1つまたは複数個だけ、前記割り込み管理テーブルに登録し、
    前記割り込み制御部は、
    前記割り込み管理テーブルに登録されている1つまたは複数個の組み合わせが、予め定められた組み合わせである場合には、前記割り込み管理テーブルにおいて、前記振り分け部によって分類されるパケットの分類種別に関連付けられている割り込み制御方法と異なる、予め定められた他の割り込み制御方法で割り込み信号を出力する、
    請求項1記載の通信処理装置。
  6. 前記割り込み制御部は、
    前記割り込み管理テーブルに、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として1つだけ登録されている場合には、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法で割り込み信号を出力する、
    請求項5記載の通信処理装置。
  7. 前記設定部は、
    パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過し、且つ直前の割り込み信号が出力されてから前記予め定められた時間経過したときに割り込み信号を出力する間隔制限付き遅延割り込み方法、および、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法の中から、1つまたは複数の方法を前記割り込み制御方法として前記割り込み管理テーブルに登録する、
    請求項1記載の通信処理装置。
  8. 前記転送制御部は、さらに、
    前記振り分け部によって分類されたパケットに関するパケット関連情報を前記割り込み制御部に通知し、
    前記割り込み制御部は、
    前記転送制御部から前記パケット関連情報の通知を受けたときには、前記割り込み管理テーブルにおいて前記パケットの分類種別に関連付けられている割り込み制御方法と前記パケット関連情報とに応じた他の割り込み制御方法を特定し、前記他の割り込み制御方法で前記割り込み信号を出力する、
    請求項1記載の通信処理装置。
  9. 前記設定部は、
    前記分類種別を、当該分類種別を識別するための分類識別子として前記割り込み管理テーブルに登録し、前記割り込み制御方法を、当該割り込み制御方法に一意に定義付けされたトラヒック種別として前記割り込み管理テーブルに登録する、
    請求項1記載の通信処理装置。
  10. パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理方法であって、
    パケットを受信し、
    受信されるパケットの種類に応じて、複数の分類種別のうちの何れか1つの分類種別に前記パケットを分類し、
    受信されて分類されたパケットのデータを前記メモリに転送し、
    分類種別と、割り込み信号を出力するタイミングに関する割り込み制御方法とを関連付けて示す割り込み管理テーブルを参照することにより、受信されて分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で前記割り込み信号を前記処理ユニットに出力し、
    前記処理ユニットで起動するアプリケーションプログラムからの指示に応じて、前記割り込み管理テーブルに分類種別および割り込み制御方法を登録することにより、当該割り込み管理テーブルを更新する、
    通信処理方法。
  11. パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置を制御する方法であって、
    前記通信処理装置は、割り込み管理テーブルを保持し、パケットを受信して当該パケットのデータをメモリに転送し、前記割り込み管理テーブルにおいて受信されるパケットの種別に関連付けられている割り込み制御方法で、前記パケットに対する割り込み信号を出力し、
    前記通信処理装置を制御する方法では、
    前記通信処理装置を介した通信路を確立し、
    前記通信路を特定するための通信路情報を前記通信処理装置に送信することにより、前記通信処理装置に対して、前記通信路情報に対応するパケットの種別および割り込み制御方法を前記割り込み管理テーブルに登録させて、当該割り込み管理テーブルを更新させる、
    通信処理装置の制御方法。
  12. 前記割り込み信号が出力される要因には、パケットのデータが前記メモリに転送されたことを要因とする受信割り込み要因、または、予め定められた期間が経過したことを要因とするタイマ割り込み要因があり、
    前記通信処理装置の制御方法では、さらに、
    前記割り込み信号を取得し、取得した割り込み信号が前記受信割り込み要因によって出力されたか、前記タイマ割り込み要因によって出力されたかを判定し、
    前記受信割り込み要因によって出力されたと判定したときには、第1の受信処理方法により前記メモリに転送されたデータを処理し、
    前記タイマ割り込み要因によって出力されたと判定したときには、第1の受信処理方法と異なる第2の受信処理方法により前記メモリに転送されたデータを処理する、
    請求項11記載の通信処理装置の制御方法。
  13. 前記割り込み管理テーブルには、
    予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法が前記割り込み制御方法として登録されてあり、
    前記第2の受信処理方法により前記メモリに転送されたデータを処理するときには、
    前記メモリに転送された前記タイマ割り込み方法の対象とされるパケットのデータの一群に対する処理が制限されるべきか否かを判定し、
    制限されるべきでないと判定したときには、前記一群の全てのパケットのデータを処理し、
    制限されるべきと判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理する、
    請求項12記載の通信処理装置の制御方法。
  14. 前記割り込み管理テーブルには、
    パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法と、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法とが、それぞれ前記割り込み制御方法として登録されてあり、
    前記第1の受信処理方法により前記メモリに転送されたデータを処理するときには、
    前記処理ユニットが、前記メモリに転送されたパケットのデータの一群が即時割り込み方法の対象とされるか、遅延割り込み方法の対象とされるかを前記一群のパケットの種別に基づいて判定し、
    即時割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータを処理し、
    遅延割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理する、
    請求項12記載の通信処理装置の制御方法。
  15. 前記割り込み管理テーブルには、
    パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として登録されてあり、
    前記第1の受信処理方法により前記メモリに転送されたデータを処理するときには、
    前記割り込み管理テーブルに割り込み制御方法として前記遅延割り込み方法のみが登録されているか否かを判定し、
    前記遅延割り込み方法のみが登録されていると判定したときには、前記メモリに転送された全てのパケットのデータを処理し、
    前記遅延割り込み方法以外の割り込み制御方法も登録されていると判定したときには、前記メモリに転送された前記遅延割り込み方法の対象とされる全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理する、
    請求項12記載の通信処理装置の制御方法。
  16. パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置を制御するためのプログラムであって、
    前記通信処理装置は、割り込み管理テーブルを保持し、パケットを受信して当該パケットのデータをメモリに転送し、前記割り込み管理テーブルにおいて受信される前記パケットの種別に関連付けられている割り込み制御方法で、前記パケットに対する割り込み信号を出力し、
    前記プログラムは、
    前記通信処理装置を介した通信路を確立し、
    前記通信路を特定するための通信路情報を前記通信処理装置に送信することにより、前記通信処理装置に対して、前記通信路情報に対応するパケットの種別および割り込み制御方法を前記割り込み管理テーブルに登録させて、当該割り込み管理テーブルを更新させる、
    ことをコンピュータからなる前記処理ユニットに実行させるプログラム。
  17. パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置と、前記処理ユニットとを有する通信機器であって、
    前記通信処理装置は、
    パケットを受信する受信部と、
    前記受信部で受信されるパケットの種類に応じて、複数の分類種別のうちの何れか1つの分類種別に前記パケットを分類する振り分け部と、
    前記受信部によって受信されて前記振り分け部によって分類されたパケットのデータを前記メモリに転送する転送制御部と、
    分類種別と、割り込み信号を出力するタイミングに関する割り込み制御方法とを関連付けて示す割り込み管理テーブルを記憶している記憶部と、
    前記割り込み管理テーブルを参照することにより、前記振り分け部によって分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で前記割り込み信号を前記処理ユニットに出力する割り込み制御部と、
    前記処理ユニットで起動するアプリケーションプログラムからの指示に応じて、前記割り込み管理テーブルに分類種別および割り込み制御方法を登録することにより、当該割り込み管理テーブルを更新する設定部とを備え、
    前記処理ユニットは、
    前記アプリケーションプログラムを起動し、前記アプリケーションプログラムによって、前記通信処理装置を介した通信路を確立し、前記通信路を特定するための通信路情報を前記通信処理装置に送信することにより、前記通信処理装置に対して前記指示を行なう、
    通信機器。
  18. 請求項17記載の通信機器を備えたテレビ受像機、レコーダ、録画再生装置、セットトップボックス、またはIP(Internet Protocol)通信装置。
JP2010512937A 2008-05-19 2009-05-18 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器 Expired - Fee Related JP5205454B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010512937A JP5205454B2 (ja) 2008-05-19 2009-05-18 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008130285 2008-05-19
JP2008130285 2008-05-19
PCT/JP2009/002178 WO2009141992A1 (ja) 2008-05-19 2009-05-18 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器
JP2010512937A JP5205454B2 (ja) 2008-05-19 2009-05-18 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器

Publications (2)

Publication Number Publication Date
JPWO2009141992A1 true JPWO2009141992A1 (ja) 2011-09-29
JP5205454B2 JP5205454B2 (ja) 2013-06-05

Family

ID=41339932

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010512937A Expired - Fee Related JP5205454B2 (ja) 2008-05-19 2009-05-18 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器

Country Status (3)

Country Link
US (1) US8438323B2 (ja)
JP (1) JP5205454B2 (ja)
WO (1) WO2009141992A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5205454B2 (ja) * 2008-05-19 2013-06-05 パナソニック株式会社 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器
JP5569185B2 (ja) * 2010-06-29 2014-08-13 富士通株式会社 半導体装置、およびパケット受信方法
US10904144B2 (en) * 2012-12-27 2021-01-26 Sitting Man, Llc Methods, systems, and computer program products for associating a name with a network path
JP6527399B2 (ja) * 2015-06-23 2019-06-05 本田技研工業株式会社 ネットワークを用いた通信システム
JP2017059897A (ja) * 2015-09-14 2017-03-23 株式会社東芝 分類器、通信装置、及び通信方法
TWI633432B (zh) * 2016-12-29 2018-08-21 宏碁股份有限公司 檔案統計方法
KR102035740B1 (ko) * 2019-06-03 2019-10-23 오픈스택 주식회사 타이머 인터럽트 서비스 루틴을 이용한 패킷 송신 장치
CN111400210B (zh) * 2020-03-10 2022-05-06 苏州盛科通信股份有限公司 一种集中式MACsec包处理芯片的中断处理方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2723970B2 (ja) 1989-05-26 1998-03-09 株式会社日立製作所 データ転送制御装置
JP3309069B2 (ja) * 1997-11-17 2002-07-29 株式会社日立製作所 多重符号化画像音声データの受信装置
JP3404322B2 (ja) 1999-05-25 2003-05-06 株式会社エルミックシステム 割込処理方法、os支援システム、情報処理装置、記録媒体
JP2002217971A (ja) 2001-01-18 2002-08-02 Fujitsu Ltd パケット伝送装置及びパケット伝送方法
JP3557188B2 (ja) * 2001-11-14 2004-08-25 日本電信電話株式会社 ストリーム中継制御方法、ストリーム中継制御プログラム及びそのプログラムを記録した媒体、並びにストリーム中継制御装置
JP2006041686A (ja) * 2004-07-23 2006-02-09 Fujitsu I-Network Systems Ltd パケット交換機
CN101227857B (zh) 2005-06-29 2011-10-19 电脑医师有限公司 具有导电桥的传感器组件
WO2007066766A1 (ja) * 2005-12-09 2007-06-14 Matsushita Electric Industrial Co., Ltd. ネットワークシステムおよび中継装置
JP2008059577A (ja) * 2006-08-03 2008-03-13 Matsushita Electric Ind Co Ltd ネットワークチップ及びネットワーク送受信装置
US20080031279A1 (en) 2006-08-03 2008-02-07 Takeshi Hatakeyama Network chip and network transmission/reception device
JP5205454B2 (ja) * 2008-05-19 2013-06-05 パナソニック株式会社 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器
US20100106874A1 (en) * 2008-10-28 2010-04-29 Charles Dominguez Packet Filter Optimization For Network Interfaces

Also Published As

Publication number Publication date
US20110078353A1 (en) 2011-03-31
WO2009141992A1 (ja) 2009-11-26
JP5205454B2 (ja) 2013-06-05
US8438323B2 (en) 2013-05-07

Similar Documents

Publication Publication Date Title
JP5205454B2 (ja) 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器
US7554909B2 (en) Dynamic service management for multicore processors
US9654406B2 (en) Communication traffic processing architectures and methods
US7633869B1 (en) Automatic network traffic characterization
US7385986B2 (en) Packet transfer method and apparatus
EP2959645B1 (en) Dynamic optimization of tcp connections
US20170214774A1 (en) Communication traffic processing architectures and methods
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
US20150222550A1 (en) Method and system for supporting packet prioritization at a data network
EP1280301A2 (en) Flow based congestion control
JPWO2003017577A1 (ja) 伝送装置および伝送方法
CN106506392B (zh) 一种网络拥塞处理方法及装置
CN104052684A (zh) 动态适配计算机网络中的最大传输单元大小的方法和系统
US10855606B2 (en) Information processing apparatus and information processing system
US20050254447A1 (en) Domestic multimedia transmission method and system
US9125089B2 (en) Method and apparatus for packet aggregation in a network controller
US7969977B2 (en) Processing apparatus and method for processing IP packets
CN111669665B (zh) 媒体流的实时推送方法及服务器
JP2007201758A (ja) 受信装置および方法、並びにプログラム
US8370622B1 (en) Method and apparatus for increasing the output of a cryptographic system
US7558288B2 (en) Layer-based multiple data processing apparatus and method
KR101491699B1 (ko) 소프트웨어 정의 네트워킹에서 제어 장치 및 그 동작 방법
US20080159320A1 (en) Layer 3 switch device and its control method
JP6568571B2 (ja) データ転送装置、データ転送方法および通信装置
US20230344742A1 (en) High-speed hardware-based traffic analyzer integration with speed test control application

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120521

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130218

R150 Certificate of patent or registration of utility model

Ref document number: 5205454

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160222

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees