JP4514487B2 - パケット処理装置 - Google Patents

パケット処理装置 Download PDF

Info

Publication number
JP4514487B2
JP4514487B2 JP2004088462A JP2004088462A JP4514487B2 JP 4514487 B2 JP4514487 B2 JP 4514487B2 JP 2004088462 A JP2004088462 A JP 2004088462A JP 2004088462 A JP2004088462 A JP 2004088462A JP 4514487 B2 JP4514487 B2 JP 4514487B2
Authority
JP
Japan
Prior art keywords
packet
processing
unit
buffer
checksum
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.)
Expired - Lifetime
Application number
JP2004088462A
Other languages
English (en)
Other versions
JP2004252995A (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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric 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 Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP2004088462A priority Critical patent/JP4514487B2/ja
Publication of JP2004252995A publication Critical patent/JP2004252995A/ja
Application granted granted Critical
Publication of JP4514487B2 publication Critical patent/JP4514487B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Description

本発明は通信技術に関し、とくにパケットを効率的に処理する技術に関する。
インターネットが広く普及し、ネットワークのインフラの整備も進みつつある現在、通話音声信号を符号化したデータをパケット化し、インターネットなどのネットワークを介して送受信するインターネット電話装置が注目を集めている。通話音声と同時にビデオ映像を送ることにより、ビデオ電話装置として利用することも可能であり、従来の電話装置に取って代わる次世代の電話装置として期待されている。
現在、パケット通信のための通信プロトコルとして、TCP/IP(Transmission Control Protocol / Internet Protocol)が広く利用されている。TCPは、装置間で接続を確立してからデータを送受信するなど、正確性を重視した通信プロトコルである。しかしながら、処理が複雑で、相手側がパケットを受信したことを確認するまで次のパケットを送ることができないなどの時間的制約があり、リアルタイム性に欠けるため、通話音声の送受信には不向きである。
TCPよりも簡便な通信プロトコルに、UDP/IP(User Datagram Protocol / Internet Protocol)がある。UDPでは、データの送受信に先立って装置間で接続を確立する必要がなく、パケットの受信確認を待たずに次のパケットを送ることが許されるので、送信側は次々にパケットを送出することができる。そのため、データの正確性よりもリアルタイム性が重視される、通話音声の送受信に適している。
TCPとUDPの双方の通信プロトコルをサポートする装置では、パケット処理は、CPUなどの汎用プロセッサによりソフトウェア処理されるのが一般的である。すなわち、ネットワークインタフェースデバイスがパケットを受信すると、自装置以外のMAC(Media Access Control)アドレス宛てのパケットがフィルタリングされ、CRC(Cyclic Redundancy Check)による誤りチェックが行われた後、それらを通過した全てのパケットがCPUに送られて処理される。
エスティー(ST)マイクロエレクトロニクス株式会社、ボイスオーバーアイピー(VoIP)デジタルプロセッサデータシート、[online]、平成14年、[平成14年9月30日検索]、インターネット<URL:http://www.st.com/stonline/books/pdf/docs/7818.pdf>
しかしながら、全てのパケットをCPUによりソフトウェア処理する方式では、処理効率が悪い、速度が遅い、消費電力が大きい、などの課題がある。とくに、複数の相手と同時に通話したり、音声とともに画像を送ったりする場合には、プロトコル処理が律速となり、リアルタイム性が損なわれる恐れがある。また、通話中は常にCPUがプロトコル処理を実行しているため、その他のアプリケーションを並行して実行させるのが困難である。たとえば、パーソナルコンピュータなどのように高性能のCPUを搭載した装置により通信を行う場合は、CPUに全てのパケット処理を担わせても、それに見合う十分な能力を有しているので問題はないが、インターネット電話のための専用装置を開発する場合、装置の小型化、低価格化、低消費電力化を実現するためには、比較的性能の低いCPUを搭載せざるを得ないので、いかにCPUの処理負荷を軽減するかが課題となる。
本発明は、そうした課題に鑑みてなされたものであり、その目的は、データ通信に伴うパケット処理を効率よく行う技術を提供することにある。本発明の別の目的は、パケット処理におけるCPUの処理負荷を軽減し、高速でリアルタイムな通信を実現する技術を提供することにある。
本発明のある態様は、パケット処理装置に関する。このパケット処理装置は、リアルタイム性が重視されるパケット処理を行うハードウエア処理と、リアルタイム性が重視されないパケット処理を行うソフトウエア処理と、前記パケット処理の際のリアルタイム性の重要度によりハードウエア処理とソフトウエア処理とにパケットを振り分けて処理するプロトコル制御部と、を備えるパケット処理装置において、前記プロトコル制御部は、ネットワークを介して取得したパケットを一時的に保持するバッファと、前記パケットの前記バッファからの読み出しを制御する読み出し制御部と、を備え、前記読み出し制御部は、前記バッファに直接アクセスして、前記バッファに保持されたパケットのヘッダ部分を読み出すヘッダ読み出し手段と、単一のアクセスポートレジスタへのアクセスを介して前記バッファに保持されたパケットのデータ部分を読み出すデータ読み出し手段を備えており、前記データ読み出し手段は、読み出すパケットの種別に応じて、前記アクセスポートレジスタが読み出しを開始する前記バッファの読み出し開始位置を設定することを特徴とする。
ヘッダ情報は、CPUがパケットの転送先を決定するために読み出す必要があるので、独立したレジスタを割り当てて容易にアクセスすることができるようにする。データ部分は、転送先さえ決まれば、転送先にコピーすればよいだけであるから、アクセスポートレジスタにより、ポインタを管理することなくアクセスできるようにする。
前記読み出し制御部は、読み出すパケットの種別に応じて、前記アクセスポートレジスタが読み出しを開始する位置を設定してもよい。たとえば、MACパケットではMACデータの先頭位置に、IPパケットではIPデータの先頭位置に、読み出し開始位置を自動的に設定する。これにより、さらにCPUの処理負荷を軽減することができる。
前記パケットを前記バッファに格納する前に、そのヘッダ情報を解析することにより不要なパケットを破棄するヘッダ解析部と、前記パケットを前記バッファに格納する前に、そのチェックサムを算出して、ヘッダに格納されたチェックサム値と一致するか否かを検証するチェックサム算出部と、前記チェックサム算出部が前記パケットのチェックサムの算出中、前記バッファに前記パケットを書き込み、チェックサムエラーが検出されたとき、ライトポインタを書き込み前の値に戻す書き込み処理部と、をさらに備えてもよい。これにより、CPUは、バッファに保持されたパケットが有効なパケットであることを前提に処理を行うことができる。
本発明の別の態様は、電話装置に関する。この電話装置は、リアルタイム性が重視されるパケット処理を行うハードウエア処理部と、リアルタイム性が重視されないパケット処理を行うソフトウエア処理部と、前記パケット処理の際のリアルタイム性の重視度によりハードウエア処理とソフトウエア処理とにパケット処理を振り分けて処理するプロトコル処理部と、音声を入力する入力部と、前記入力部により入力された音声を他の装置へ送信し、他の装置から音声を受信する通信部と、他の装置から受信した音声を出力する出力部と、を備える電話装置において、前記通信部は、ネットワークを介して送られたパケットを受信する受信部と、受信したパケットを処理するパケット処理部と、を含み、前記パケット処理部は、前記パケットを一時的に保持するバッファと、前記パケットの前記バッファからの読み出しを制御する読み出し制御部と、を含み、前記読み出し制御部は、前記パケットのヘッダ部分をランダムにアクセスするヘッダ読み出し手段と、単一のアクセスポートレジスタをアクセスすることにより前記パケットのデータ部分を読み出すデータ読み出し手段と、を備えることを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、データ通信に伴うパケット処理を効率よく行う技術を提供することができる。また、本発明によれば、パケット処理におけるCPUの処理負荷を軽減し、高速でリアルタイムな通信を実現する技術を提供することができる。
図1は、本発明の実施の形態に係る通信装置の一例としてのインターネット電話装置100の全体構成を示す。インターネット電話装置100は、インターネット20を介して、他のインターネット電話装置100との間で通話を行うための装置である。インターネット電話装置100は、主に、ソフトウェア処理を実行するための汎用回路であるCPU110、プログラムエリアまたはワークエリアとして利用されるメモリ120、インターネット20を介してパケットを送受信するネットワークインタフェース部130、音声信号を入力するマイク150、音声信号を出力するスピーカ160、音声信号の圧縮符号化処理および復号処理を行うコーデック処理部140、通信データの暗号化処理または復号処理などを行うセキュリティ処理部172、UDPパケットを処理するための専用回路であるUDP処理部174、通信プロトコルに応じた各種処理を行うプロトコルエンジン200、およびこれらの構成を電気的に接続するバス102を備える。
本実施の形態のインターネット電話装置100は、受信したパケットの処理をCPU110のみに任せるのではなく、CPU110へパケットを転送する前に、専用のハードウェアにより構成されたプロトコルエンジン200が、ヘッダ解析、エラーチェック、データのアライメントなどの処理を行うので、CPU110が無駄なパケット処理を行う必要がなく、処理負荷が大幅に軽減される。
本実施の形態のインターネット電話装置100では、UDPを利用して音声信号を送受信する。UDPは、接続の確立を要さず、パケットを次々に送出することが可能な通信方式であるため、プロトコル処理が簡単で、かつ高速な通信が可能であり、通話音声を送るなどのリアルタイムな通信に適している。本実施の形態のインターネット電話装置100では、UDPパケットの処理を、専用の回路であるUDP処理部174に実行させることで、さらに処理速度を向上させ、通話音声のリアルタイムな送受信を実現する。
インターネット電話装置100が送受信するパケットのうち、TCPにより送受信されるパケットは、CPU110を利用してソフトウェアにより処理される。リアルタイム性を要しないTCPパケットについては、専用の回路を設けず、汎用回路によるソフトウェア処理を行うことで、回路規模の増大を抑え、コスト、消費電力、熱発生の増大を最小限に抑えることができる。本発明者の試算によれば、TCPとUDPの双方を専用回路により処理する場合に比べて、回路の面積および消費電力が約1/3で済むことが分かっている。このように、本実施の形態では、専用のハードウェアと汎用のソフトウェアとにより協調処理することで、処理の高速化と回路規模の削減という二律背反的な要望に応える。
ネットワークインタフェース部130が受信したパケットは、プロトコルエンジン200に送られる。プロトコルエンジン200は、パケットが自装置に割り当てられたIPアドレスに宛てられたものであるか否かを判断し、自装置宛てのパケットのみを通し、その他のパケットを破棄する。また、パケットに付されたヘッダ情報を参照してプロトコルの種別を検出し、パケットがTCPにより送られたパケットであった場合は、そのパケットのデータをバス102上に送り、CPU110によりソフトウェア処理させる。パケットがUDPのパケットであった場合は、そのパケットのデータをUDP処理部174に送り、UDPパケットの処理のために専用に設けられた回路により処理させる。
UDP処理部174は、UDPパケットを処理するための専用回路であり、UDPパケットを受け取って、そのヘッダを解析し、必要な処理を実行する。セキュリティ処理部172は、データに対して暗号化処理などのセキュリティ対策が施されていた場合に、暗号を復号するなどの処理を行う。復号されたデータは、コーデック処理部140に送られる。コーデック処理部140は、圧縮符号化されていた通話音声信号を復号し、スピーカ160に出力する。
このように、本実施の形態のインターネット電話装置100では、正確性よりもリアルタイム性が重視され、通話中、常時処理が必要となる通話音声データは、UDPにより送受信を行い、専用回路であるUDP処理部174によりハードウェア処理を行う一方、リアルタイム性よりも正確性が重視されるデータは、TCPにより送受信を行い、CPU110によりソフトウェア処理を行う。これにより、回路の複雑化、回路規模、コスト、消費電力、熱発生などの増大を抑えつつ、通話音声データを高速に処理することが可能となる。このような利点は、複数の相手と同時に通話したり、通話音声とともに画像を送信するなど、大量のデータを同時に処理することが必要な場合に、より顕著となる。また、プロトコルエンジン200によりパケットの種別を検出し、パケットの処理主体を高速かつ適切に選択することができる。さらに、CPU110の処理負担を軽減し、低コスト化、低消費電力化が実現できるほか、CPU110に余力ができるため、通話中に他のアプリケーションを実行することが可能となり、新たなサービスを提供することもできる。
以上、パケットを受信したときの動作について説明したが、つづいて、マイク150から入力された音声信号をパケット化して送信するときの動作について説明する。マイク150から入力された音声信号は、コーデック処理部140に送られ符号化される。符号化された信号は、必要であれば、セキュリティ処理部172により暗号化されたあと、UDP処理部174に送られ、UDPヘッダが付され、パケット化される。このUDPパケットは、プロトコルエンジン200によりチェックサム値などのヘッダ情報が付され、ネットワークインタフェース部130を介して、インターネット20に送出される。
図2は、プロトコルエンジン200の内部構成を示す。ARP制御部202は、ネットワークインタフェース部130が自装置のIPアドレスに宛てたARP(Address Resolution Protocol)パケットを受信したときに、自動的に自装置のデータリンク層のアドレス(MACアドレス)情報をセットして応答パケットを生成し、ARPパケットの送信元へ送信する。従来は、ARPパケットもCPU110によりソフトウェア処理していたが、本実施の形態では、ARP制御部202がCPU110を介さずに自動応答することにより、CPU110の負担を大幅に軽減するとともに、割り込みによるタスクスイッチを減少させることができる。
ヘッダ解析部210は、パケットのヘッダ情報を解析して、不要なパケットを破棄し、必要なパケットのみを通す処理を行う。たとえば、自装置のIPアドレスに宛てたパケットのみを通し、その他のIPアドレス宛てのパケットは破棄する。IPパケットのみを送受信する装置に本実施の形態のプロトコルエンジン200を搭載する場合、IP以外の通信方式のパケットを破棄してもよい。また、特定のパケットを検出して、そのパケットを処理する専用回路へ送ってもよい。本実施の形態では、UDPパケットを専用回路であるUDP処理部174により処理するので、ヘッダ解析部210は、ヘッダ情報を解析することによりUDPパケットを検出すると、そのUDPパケットをCPU110を介さずに直接UDP処理部174に転送する。このとき、ヘッダ情報を破棄してデータ部分のみを送ってもよい。これにより、ソフトウェア処理が必要なパケットのみをCPU110に処理させることができるので、CPU110の処理負担を軽減することができる。また、適宜専用のハードウェアによりパケットを処理することにより、処理の高速化を図ることができる。
チェックサム算出部212は、パケットのチェックサムを算出し、ヘッダに格納されたチェックサム値と一致するか否かを検証する。一致した場合は、そのパケットを通し、一致しなかった場合は、そのパケットを破棄する。従来は、CPU110がチェックサムの検証を行っていたが、本実施の形態のように、CPU110に送る前の段階で専用回路にてチェックサムの検証を行うことで、CPU110に無用なパケットを処理させることを防ぎ、CPU110の処理負担を軽減することができる。
書き込み制御部220は、ヘッダ解析部210を通過したパケットを受信バッファ230に格納する。チェックサム算出部212によりエラーが検出されたパケットは受信バッファ230に格納せずに破棄するが、チェックサム算出部212がチェックサムを算出している間、受信バッファ230への書き込みを待機しているよりも、並行して受信バッファ230へ書き込んでいくほうが効率がよい。そのため、書き込み制御部220は、ヘッダ解析部210を通過したパケットを、チェックサム算出部212による検証の結果を待たずに受信バッファ230に書き込んでいき、チェックサム算出部212による検証でエラーが検出された場合は、書き込んだパケットを消去し、ライトポインタを元に戻す。読み出し制御部240は、受信バッファ230に格納された受信パケットの読み出しを制御する。書き込み制御部220、受信バッファ230、および読み出し制御部240の構成および動作の詳細については、図4において詳述する。
チェックサム生成部280は、送信パケットのチェックサムを算出する。UDPパケットは、送信キューに投入する時点でパケットサイズが確定しているので、チェックサム生成部280により予めデータ部のチェックサムを算出して保持しておき、パケット送出時にヘッダ合成部250によりヘッダにチェックサム値をセットする。TCPパケットは、パケット送出時にパケットサイズが確定するので、予めデータ部のチェックサム値を算出しておくことはできないが、所定の区間ごとにチェックサム累積値を算出して保持しておくことで、パケット送出時のチェックサム算出処理を簡略化することができる。TCPパケットのパケットサイズを、チェックサム累積値の算出区間の整数倍に限定すれば、データ部のチェックサム値はデータ部の区間前後のチェックサム累積値を減算するだけで得られる。
第1送信バッファ270は、送信パケットのうち、送信先のMACアドレスが未解決のものを格納する。第2送信バッファ272は、送信パケットのうち、送信先のMACアドレスが分かっているものを格納する。ARPインタフェース260は、第1送信バッファ270に格納された、送信先のMACアドレスが不明なパケットについて、そのMACアドレスを解決すべく、ARPパケットを生成してネットワークにブロードキャストする。ARPパケットの応答が戻ってくるまでの間はそのパケットを送出できないので、アドレス解決が不要なパケットのキューとは別に第1送信バッファ270を設けて待機させておき、その間は第2送信バッファ272にて待機中のアドレス解決が不要な送信パケットを送出する。ARPの応答が戻ってくると、解決されたMACアドレスをセットして第1送信バッファ270のパケットを送出し、次に待機中のパケットについてARPパケットを送出する。そして、応答が戻るまでの間は再び第2送信バッファ272のパケットを送出する。これにより、全体の送信待ち時間を減少させ、効率良くパケットを送出することができる。また、送信先のMACアドレスが未解決のパケットであっても、第1送信バッファ270に投入しておけば自動的にMACアドレスを解決しつつパケットを送出してくれるので、CPU110側の処理が単純になり、処理負荷を軽減することができる。
ヘッダ合成部250は、第1送信バッファ270または第2送信バッファ272に保持された送信待機中の送信パケットを、ネットワークインタフェース部130を介して送出すべく、そのパケットのヘッダ情報を生成する。ヘッダ合成部250は、頻繁に変更されないパラメータや容易に推測可能なパラメータを自動的に生成してヘッダ情報を生成する。たとえば、IPヘッダの識別子は、CPU110が指定しなくともヘッダ合成部250が自動的にインクリメントしてヘッダにセットする。CPU110は、データ以外には、送信先とパケットサイズのみを指定すればよい。これにより、CPU110のバッファ管理を単純化し、処理負荷を軽減することができる。
ホストテーブル204は、他装置のMACアドレスおよびIPアドレスを対応付けて保持する。図3は、ホストテーブル204の内部データの例を示す。ホストテーブル204には、ホストID欄205、MACアドレス欄206、およびIPアドレス欄207が設けられている。ホストテーブル204の内容は、CPU110が予め頻繁に通信を行う可能性のあるホスト装置の情報を登録してもよいし、通信中にCPU110などが登録してもよい。MACアドレスが不明なホスト装置であっても、まずIPアドレスのみを格納しておき、ARPインタフェース260によりARPパケットを送出し、その応答を取得したときにMACアドレスを登録してもよい。ホストテーブル204を設けてあるので、CPU110は、パケットの送信先を指定するときに、ホストID、MACアドレス、IPアドレスのいずれを用いて指定してもよい。ヘッダ合成部250は、ホストテーブル204を参照して、ヘッダ生成に必要な情報を取得することができる。
ホストインタフェース部290は、プロトコルエンジン200の構成要素とCPU110との間でデータや指示の入出力を制御する。
図4は、書き込み制御部220および読み出し制御部240の内部構成を示す。書き込み制御部220は、管理情報生成部222、データ入れ替え部224、書き込みアドレス生成部226、遅延回路228、およびセレクタ229を備える。ヘッダ解析部210によるパケットフィルタリングを通過したパケットは、管理情報生成部222およびデータ入れ替え部224により整形されて受信バッファ230に格納される。パケットのデータが整形される様子は、図5を参照しつつ後述することにする。書き込みアドレス生成部226は、受信バッファ230のライトポインタを管理する。前述したように、チェックサム算出部212によるチェックサムの検証に並行して受信バッファ230にパケットのデータを格納していくが、チェックサムエラーが検出されたときは、書き込みアドレス生成部226は、ライトポインタを元の位置に戻す。チェックサムエラーが検出されず、受信バッファ230への格納が正常に終了すると、書き込みアドレス生成部226は、管理情報生成部222に次のパケットのアドレスを通知する。読み出し制御部240は、読み出しアドレス生成部242およびセレクタ244を備える。
図5は、書き込み制御部220によりパケットのデータが整形される様子を示す。通常のIPパケットは、先頭のMACヘッダが14バイトを占めているが、32ビットワードでは3.5ワードと半端になるため、以降のデータが16ビットずつずれた形となる。このまま受信バッファ230に格納すると、アクセスするときに不便であるから、本実施の形態では、MACヘッダが3ワードとなるようにデータを整形してから受信バッファ230に格納する。すなわち、MACヘッダを16ビット分減らせばよい。MACヘッダのうち、宛先MACアドレスは、自装置のMACアドレスと同じであり、既にパケットを受信しているので不要である。MACアドレスは48ビットであるから、これを破棄すると、32ビット分余裕が残る。アプリケーションによっては、このパケットがユニキャスト、マルチキャスト、ブロードキャストのいずれで送信されたのかという情報が必要な場合があるので、これをフラグとして宛先MACアドレスの代わりに格納する。このフラグは2ビットで十分であるから、まだ30ビット分余裕がある。そこで、パケット種別を示すフラグや、次のパケットの格納位置を示すアドレス情報などを管理情報として格納する。以上により、MACヘッダが3ワードにおさまるので、以降のデータをワード単位で整列させることができ、アクセスが容易になる。
図4に戻り、受信したパケットを書き込む手順と読み出す手順について説明する。管理情報生成部222は、上述した管理情報を生成する。管理情報として、たとえば、このパケットがユニキャスト、マルチキャスト、ブロードキャストのいずれで送信されたのかを示す送信種別情報、このパケットがTCPパケットかUDPパケットか、フラグメント化されたIPパケットまたはオプション付きのIPパケットなど複雑な処理を要する特殊なIPパケットであるか否か、などを示すパケット種別情報、次のパケットの格納位置を示すアドレス情報、などを生成してもよい。次パケットのアドレス情報を格納する場合は、自パケットのデータの格納が終了してから、書き込みアドレス生成部226から次パケットのアドレス情報を取得するので、管理情報の受信バッファ230への書き込みはパケットのデータの格納が完了した後になる。これらの管理情報は、全体で1ワードとなるように整形され、セレクタ229を介して受信バッファ230に格納される。
データ入れ替え部224は、受信したパケットのデータのうち、MACアドレ
スを除いたデータを32ビットワードで整列させるために、上位16ビットと下位16ビットを入れ替える。データ入れ替え部224の出力のうち、上位16ビットを遅延回路228により1クロック遅延させて合成することにより、16ビットずつずれていたデータを整列させることができる。整形されたデータは、セレクタ229を介して受信バッファ230に格納される。
書き込みアドレス生成部226は、まず、書き込み位置の先頭にポインタを移動するが、1ワード目の管理情報は最後に格納されるので、ポインタをインクリメントし、MACヘッダのうち宛先MACアドレスを除いた2ワード、IPヘッダ5ワード、IPデータを、ポインタをインクリメントしつつ次々に書き込んでいく。データ部分の書き込みが終了すると、次の書き込み開始位置を管理情報生成部222に通知し、書き込み位置の先頭にポインタを戻して、管理情報を書き込む。
管理情報を含むヘッダ情報は、それぞれ独立したレジスタを割り当て、CPU110がランダムに何度でもアクセスできるようにする。受信バッファ230に格納されたパケットは、既にヘッダ解析部210およびチェックサム算出部212により有効性が検証されたものであるから、CPU110が直接ヘッダ情報にアクセスしてデータを渡すべきアプリケーションを判断できるようにする。他方、データ部分は、1つのアクセスポートレジスタから読み出すようにする。すなわち、アクセスポートレジスタへの最初の読み出しでは、データ部分の最初のデータが読み出され、以降、同じレジスタを連続してアクセスすることにより、データが次々に読み出される。データの転送先が決定されれば、あとはデータをコピーするだけであるから、ランダムアクセスを可能とする必要はない。したがって、アクセスポート方式を採用することにより、ポインタ管理が必要なメモリマップ方式よりも簡便で処理負担を軽減することができる。また、CPU110を持たないハードウェアと組み合わせて利用することもできる。
受信バッファの読み出しアドレスは上位アドレスと下位アドレスから構成される。CPU110は、受信バッファ230に格納されたパケットのヘッダ情報にアクセスするときは、上位アドレスと下位アドレスの双方を指定する。上位アドレスについては、どのパケットのどのヘッダにアクセスしたいかを読み出しアドレス生成部242に指定すれば、読み出しアドレス生成部242が自動的に上位アドレスを生成してポインタを移動する。下位アドレスについては、CPU110が出力する下位アドレスをそのまま受信バッファの下位アドレスとし、CPU110が自由に読み出せるようにする。CPU110は、パケットのデータ部分にアクセスするときは、読み出しアドレス生成部242に、どのパケットのデータにアクセスしたいかを指定すればよい。読み出しアドレス生成部242は、自動的に上位アドレスと下位アドレスを生成してポインタを移動し、データを次々に読み出す。
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、そうした例を述べる。
実施の形態では、電話装置を例にとって説明したが、本発明の技術は、コンピュータや携帯電話など、ストリームデータを送受信する通信装置全般に利用可能である。
プロトコルエンジン200の機能を有する回路を、一つの半導体基板上に搭載してもよい。さらに、セキュリティ処理部172、コーデック処理部140、CPU110などの回路を搭載してもよい。これにより、通信装置の小型化、軽量化、高速化を図ることができる。
実施の形態に係る通信装置の一例としてのインターネット電話装置の全体構成を示す図である。 実施の形態に係るプロトコルエンジンの内部構成を示す図である。 実施の形態に係るホストテーブルの内部データを示す図である。 実施の形態に係る書き込み制御部および読み出し制御部の内部構成を示す図である。 書き込み制御部によりパケットのデータが整形される様子を示す図である。
符号の説明
100 インターネット電話装置、 130 ネットワークインタフェース部、 140 コーデック処理部、 150 マイク、 160 スピーカ、 174 UDP処理部、 200 プロトコルエンジン、 202 ARP制御部、 204 ホストテーブル、 210 ヘッダ解析部、 212 チェックサム算出部、 220 書き込み制御部、 222 管理情報生成部、 224 データ入れ替え部、 226 書き込みアドレス生成部、 230 受信バッファ、 240 読み出し制御部、 242 読み出しアドレス生成部、 250 ヘッダ合成部、 260 ARPインタフェース、 270 第1送信バッファ、 272 第2送信バッファ、 280 チェックサム生成部。

Claims (3)

  1. リアルタイム性が重視されるパケット処理を行うハードウエア処理と、
    リアルタイム性が重視されないパケット処理を行うソフトウエア処理と、
    前記パケット処理の際のリアルタイム性の重要度によりハードウエア処理とソフトウエア処理とにパケットを振り分けて処理するプロトコル制御部と、を備えるパケット処理装置において、
    前記プロトコル制御部は、ネットワークを介して取得したパケットを一時的に保持するバッファと、
    前記パケットの前記バッファからの読み出しを制御する読み出し制御部と、を備え、
    前記読み出し制御部は、
    前記バッファに直接アクセスして、前記バッファに保持されたパケットのヘッダ部分を読み出すヘッダ読み出し手段と、
    単一のアクセスポートレジスタへのアクセスを介して前記バッファに保持されたパケットのデータ部分を読み出すデータ読み出し手段を備えており、
    前記データ読み出し手段は、読み出すパケットの種別に応じて、前記アクセスポートレジスタが読み出しを開始する前記バッファの読み出し開始位置を設定することを特徴とするパケット処理装置。
  2. 前記パケットを前記バッファに格納する前に、そのヘッダ情報を解析することにより不要なパケットを破棄するヘッダ解析部と、
    前記パケットを前記バッファに格納する前に、そのチェックサムを算出して、ヘッダに格納されたチェックサム値と一致するか否かを検証するチェックサム算出部と、
    前記チェックサム算出部が前記パケットのチェックサムの算出中、前記バッファに前記パケットを書き込み、チェックサムエラーが検出されたとき、ライトポインタを書き込み前の位置に戻す書き込み処理部と、をさらに備えることを特徴とする請求項1に記載のパケット処理装置。
  3. 音声を入力する入力部と、
    前記入力部により入力された音声を他の装置へ送信し、他の装置から音声を受信する通信部と、
    他の装置から受信した音声を出力する出力部と、を備え、
    前記通信部は、
    ネットワークを介して送られたパケットを受信する受信部と、
    受信したパケットを処理する、請求項1又は2に記載のパケット処理装置を含むように構成したことを特徴とする電話装置。
JP2004088462A 2004-03-25 2004-03-25 パケット処理装置 Expired - Lifetime JP4514487B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004088462A JP4514487B2 (ja) 2004-03-25 2004-03-25 パケット処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004088462A JP4514487B2 (ja) 2004-03-25 2004-03-25 パケット処理装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003005100A Division JP3557201B2 (ja) 2002-09-30 2003-01-10 パケット処理装置、パケット処理方法、およびその方法を利用可能な電話装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007068273A Division JP2007195240A (ja) 2007-03-16 2007-03-16 パケット処理装置、通信装置

Publications (2)

Publication Number Publication Date
JP2004252995A JP2004252995A (ja) 2004-09-09
JP4514487B2 true JP4514487B2 (ja) 2010-07-28

Family

ID=33028525

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004088462A Expired - Lifetime JP4514487B2 (ja) 2004-03-25 2004-03-25 パケット処理装置

Country Status (1)

Country Link
JP (1) JP4514487B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4682772B2 (ja) * 2005-09-22 2011-05-11 富士ゼロックス株式会社 画像処理装置
JP2007180715A (ja) * 2005-12-27 2007-07-12 Oki Electric Ind Co Ltd Ip通信装置
JP2007228227A (ja) * 2006-02-23 2007-09-06 Fujitsu Ltd 通信装置

Also Published As

Publication number Publication date
JP2004252995A (ja) 2004-09-09

Similar Documents

Publication Publication Date Title
US7843968B2 (en) Communication apparatus and applications thereof
TWI406133B (zh) 資料處理設備及資料傳送方法
US20110225256A1 (en) Video Synchronization with Distributed Modules
US7076627B2 (en) Memory control for multiple read requests
JP4514487B2 (ja) パケット処理装置
US20090157896A1 (en) Tcp offload engine apparatus and method for system call processing for static file transmission
JP3557201B2 (ja) パケット処理装置、パケット処理方法、およびその方法を利用可能な電話装置
JPH0595385A (ja) 通信用プロセツサ
WO2020044086A1 (zh) 一种文件传输与播放的方法、装置和设备/终端/服务器
JP2007195240A (ja) パケット処理装置、通信装置
WO2015131380A1 (zh) 一种数据处理方法及装置
JP2002084311A (ja) パケット転送処理装置
JP2002366427A (ja) プロセッサ間通信システム及びそれに用いるプロセッサ間通信方法
JP2003209594A (ja) プログラム、記録媒体、並びに情報送信装置および方法
JP3796251B2 (ja) 通信装置
JP3557202B2 (ja) 通信装置、通信方法、およびその方法を利用可能な電話装置、ビデオ電話装置、撮像装置
WO2010078802A1 (zh) 从传输控制协议/网间协议的协议栈中读取数据的方法和装置
JP2006352456A (ja) 通信システム及び通信方法
KR100753734B1 (ko) 통신 장치 및 그 응용
JP2005269134A (ja) 構内交換機
US7428242B2 (en) Action list for a split media access and control layer communications system
JP4519090B2 (ja) 送信装置、受信装置およびそれらの方法
JP2007527130A (ja) 通信インターフェース特性をアドレス内で統合及び/又は抽出することによる通信端末アドレス処理
JP4496987B2 (ja) コンテンツ送信サーバ、システム及びサーバプログラム
GB2462825A (en) Processing packetised data using a Cell Broadband Engine architecture

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20051227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061002

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070316

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070522

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20071228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100319

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100511

R151 Written notification of patent or utility model registration

Ref document number: 4514487

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

EXPY Cancellation because of completion of term