JP2005167965A - パケット処理方法および装置 - Google Patents

パケット処理方法および装置 Download PDF

Info

Publication number
JP2005167965A
JP2005167965A JP2004127471A JP2004127471A JP2005167965A JP 2005167965 A JP2005167965 A JP 2005167965A JP 2004127471 A JP2004127471 A JP 2004127471A JP 2004127471 A JP2004127471 A JP 2004127471A JP 2005167965 A JP2005167965 A JP 2005167965A
Authority
JP
Japan
Prior art keywords
data
address
storage device
packet processing
protocol
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.)
Pending
Application number
JP2004127471A
Other languages
English (en)
Inventor
Manabu Kawabata
学 川端
Junichi Yasui
純一 安井
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 Holdings Corp
Original Assignee
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004127471A priority Critical patent/JP2005167965A/ja
Priority to US10/986,465 priority patent/US20050141534A1/en
Publication of JP2005167965A publication Critical patent/JP2005167965A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems

Abstract

【課題】 パケット変換処理過程におけるメモリへのコピー回数を低減して、スループットを向上させる。
【解決手段】 データを記憶する記憶装置4と、データを記憶装置4に格納する際に、データを所定のデータ長毎に分割し、かつ分割データにプロトコルヘッダを付加するための第一のブランク領域および分割データにプロトコルフッタを付加するための第二のブランク領域を確保しながら記憶装置4に分割データを離間配置する転送装置5と、記憶装置4に離間配置されたデータにアクセスする際に連続データとしてアクセスを実現するための読出しアドレス制御手段6と、分割データにパケット変換処理を行った際に、付加されるプロトコルヘッダを第一のブランク領域に格納し、かつ付加されるプロトコルフッタを第二のブランク領域に格納するための書込みアドレス制御手段6とを具備する。
【選択図】 図3

Description

本発明はパケット処理方法および装置に関し、特にデータをネットワーク間で通信するための通信プロトコルに適合したパケットに変換する際のパケット処理方法および装置に関する。
データのパケット変換処理は、一般的に以下のように行われる。すなわち、ネットワークに送信されるデータは、通信を行うネットワークの最大伝送ユニットの制約や目的によって定めたデータ長を越えると、分割される。分割された各々のデータは、プロトコルスタックにより処理される。この処理により、各々のデータには複数のプロトコルヘッダやプロトコルフッタが付加され、ネットワーク上で伝送され得るパケットを形成する。このような処理過程において、各々のデータは、プロトコルヘッダやプロトコルフッタを付加される度に、ユーザまたはアプリケーションプログラムに割り当てられたメモリのある領域から、プロセッサの使用専用のメモリの別の領域へ、単にコピーされる。パケットで伝送される各々のデータは別々にコピーされるため、プロセッサにかかる負荷は大きく、また頻繁な伝送により大量のメモリバスの帯域幅が使用される(特許文献1)。
特表2002−538731号公報
上記従来の処理方法では、プロトコルスタック処理においてプロトコルヘッダやプロトコルフッタを付加する度に、上記のように各々のデータに対するコピーが発生するため、プロセッサがその処理に必要とする時間が長くなり、スループットが低下するおそれを有するという問題点があった。
本発明は、上記問題点を解決するものであり、パケット変換処理過程におけるメモリへのコピー回数を低減して、スループットを向上させるパケット変換処理方式およびパケット変換処理装置を提供することを目的とする。
パケット処理方法についての本発明は、次のような処理工程を講じることにより、上記の課題を解決する。
データをネットワーク間で通信するための通信プロトコルに適合したパケットに変換するパケット処理方法が、前記データを所定のデータ長毎に分割して複数の分割データとする工程と、前記分割データを記憶する工程と、前記分割データを記憶する際に、前記分割データの各々を格納する記憶領域の前の領域に前記分割データに対応する第一のブランク領域を確保する工程と、前記分割データの各々を格納する記憶領域の後の領域に前記分割データに対応する第二のブランク領域を確保する工程と、前記分割データにパケット変換処理を行った際に、付加されるプロトコルヘッダを前記第一のブランク領域に格納する工程と、前記分割データにパケット変換処理を行った際に、付加されるプロトコルフッタを前記第二のブランク領域に格納する工程と、各々の分割データについて付加されたプロトコルヘッダおよびプロトコルフッタを含む記憶領域のデータを1つのパケットとして識別する工程と、を含む。
以上の処理工程を講じることにより、データに対するパケット変換処理によってプロトコルヘッダおよび、またはプロトコルフッタを付加した際に、前記プロトコルヘッダおよび、またはプロトコルフッタを含むデータを、パケット変換処理で使用するプロセッサにおける使用専用のメモリからユーザスペース(例えばアプリケーションプログラムのデータ格納装置)にその都度コピーする必要がなくなり、付加するプロトコルヘッダおよび、またはプロトコルフッタのみを、ユーザスペース上に確保した第一のブランク領域ないし第二のブランク領域にコピーすればよい。
また、前記パケット処理方法を実現するパケット処理装置についての本発明は、次のような構成により、上記の課題を解決する。
データを記憶する記憶装置と、データを前記記憶装置に格納する際に、データを所定のデータ長毎に分割し、かつ前記分割データにプロトコルヘッダを付加するための第一のブランク領域および前記分割データにプロトコルフッタを付加するための第二のブランク領域を確保しながら前記記憶装置に分割データを離間配置する転送装置と、前記記憶装置に離間配置されたデータにアクセスする際に連続データとしてアクセスを実現するための読出しアドレス制御手段と、前記分割データにパケット変換処理を行った際に、付加されるプロトコルヘッダを前記第一のブランク領域に格納し、かつ付加されるプロトコルフッタを前記第二のブランク領域に格納するための書込みアドレス制御手段と、を具備する。
これにより、データに対するパケット変換処理によってプロトコルヘッダおよび、またはプロトコルフッタを付加した際に、前記プロトコルヘッダおよび、またはプロトコルフッタを含むデータを、パケット変換処理で使用するプロセッサの使用専用のメモリから記憶装置にその都度コピーする必要がなくなり、付加するプロトコルヘッダおよび、またはプロトコルフッタのみを、記憶装置上に確保した第一のブランク領域および、または第二のブランク領域にコピーすればよく、データに対するパケット変換処理のスループットを向上することができる。
また、分割データのデータ長と、第一のブランク領域の大きさと、第二のブランク領域の大きさとを、各々任意に設定するためのレジスタを具備することで、記憶装置に対する分割データの離間配置をより柔軟に制御することが可能である。
転送装置は、転送元側から転送先側へデータを転送する際に、設定した転送回数毎に転送先アドレスに任意値を加算しながら連続転送する機能を有するDMACであり、分割データのデータ長分だけ記憶装置にデータを転送する度に、第一のブランク領域のアドレス数と第二のブランク領域のアドレス数との和を転送先アドレスに加算して次のデータを連続転送することにより、前記記憶装置への分割データの離間配置を実現するように構成されているのが好適である。
読出しアドレス制御手段と書込みアドレス制御手段は、プロトコルヘッダおよび、またはプロトコルフッタを付加する度に更新されるように構成され、パケット処理装置は、任意の時点での記憶装置上の分割データ格納領域の大きさを示す第一のレジスタと、プロトコルヘッダが付加される度に更新され、任意の時点での前記記憶装置上のプロトコルヘッダ格納用ブランク領域の大きさを示す第二のレジスタと、プロトコルフッタが付加される度に更新され、任意の時点での前記記憶装置上のプロトコルフッタ格納用ブランク領域の大きさを示す第三のレジスタを具備するのが好適である。これらは、データに対する複数のプロトコルスタック処理を実現する上で有用である。
また、読出しアドレス制御手段は、第二のレジスタの値と第三のレジスタの値との和から、記憶装置に格納されている分割データ間のブランク領域の大きさを算出する機能を具備して、前記分割データを前記記憶装置の外部からアクセスする際に、第一のレジスタの値に対応した読出し回数毎に、アクセス先のアドレスに前記算出値を加算することで、離間配置した前記分割データに対する連続アクセスを実現可能に構成されていることが好適である。
また、書込みアドレス制御手段は、第一のレジスタの値と第二のレジスタの値と第三のレジスタの値との和に、プロトコルヘッダの付加回数を乗じたうえで、第二のレジスタの値から付加するプロトコルヘッダの大きさを減算したオフセット値を和することで、各々の分割データに対応するプロトコルヘッダ格納領域の離間アドレス値を算出し、また第一のレジスタの値と第二のレジスタの値と第三のレジスタの値との和から、付加するプロトコルフッタの大きさを減算した値に、プロトコルフッタの付加回数を乗ずることで、各々の分割データに対応するプロトコルフッタ格納領域の離間アドレス値を算出する機能を具備して、1つのプロトコルヘッダおよび、または1つのプロトコルフッタを記憶装置に格納する度に、格納先のアドレスに前記算出値を加算することで、前記記憶装置上に離間配置した前記分割データ各々に対するプロトコルヘッダおよび、またはプロトコルフッタの付加を実現可能に構成されていることが好適である。
付加するプロトコルヘッダおよび、またはプロトコルフッタの大きさは、例えば標準的なイーサネット(登録商標)対応のTCP/IPにおいては、TCPヘッダは20もしくは24バイト、IPヘッダは20バイト以上かつ60バイト以下、イーサネット(登録商標)ヘッダは14バイト、フッタとなるCRCは4バイトという具合に、プロトコル毎に予め設定しておくと良い。もしくは、データに対してパケット変換処理を行う過程で、データに対して実際に付加されるプロトコルヘッダおよび、またはプロトコルフッタ各々のデータ長をカウントする専用のカウンタを設けることにより、その都度算出することもできる。
第二のパケット処理装置についての本発明は、転送装置を次のように構成することにより、パケット変換処理に必要な記憶装置上の作業用領域を大幅に削減することが可能である。
すなわち本発明は、データを記憶する記憶装置と、タスクの一つとして前記記憶装置に格納されたデータに対してパケット処理を行うCPUと、前記記憶装置とCPUとの間でデータ転送を行う転送装置とを具備し、前記転送装置は、任意に設定可能な転送回数毎にデータの転送先アドレスを初期化することで、前記記憶装置上の転送先アドレスを一定領域内で無限にループさせるように構成されているものである。
このようなものであると、少ないメモリ空間での連続したパケット処理を実現することができ、例えば画像データをリアルタイムにネットワークに送信するような場合に、つまりデータに対して連続的にパケット変換処理を行ってネットワークに送信し続けるような場合に、パケット変換処理に必要な記憶装置上の作業用領域を大幅に削減することが可能である。
また本発明は、記憶装置内でパケット処理が完了しているデータが格納されている記憶領域の最終アドレスと、転送装置から前記記憶装置にデータを送信する際の送信先アドレスとの差分を算出して、アドレス差分算出値が予め設定したアドレス差分値よりも小さくなる場合に、前記転送装置に対してウェイト制御信号を出力するウェイト命令制御手段を具備していることが好適である。このようなものであると、転送装置によるパケット処理未完了データへの上書きを防止することができる。
またウェイト命令制御手段が、アドレス差分値を任意に設定するためのレジスタを具備することにより、転送装置によるパケット処理未完了データへの上書きをより柔軟に防止することも可能である。
また転送装置が、ウェイト命令制御手段よりウェイト制御信号が入力された場合に、前記転送装置から記憶装置へのデータ転送を一時停止させるように構成されることが好適である。これにより、転送装置によるパケット処理未完了データへの上書きを防止することができる。
また転送装置が、ウェイト命令制御手段より入力されるウェイト制御信号の入力回数をカウントするカウンタと、このカウンタによるカウント値が予め設定した値に達した場合に、前記転送装置から記憶装置へのデータ転送を一時停止させる制御部とを具備することが好適であり、このようなものであると、転送装置によるパケット処理未完了データへの上書きをより柔軟に防止することが可能である。
また転送装置が、ウェイト命令制御手段よりウェイト制御信号が入力された場合に、CPUに対して優先レベルの高い割込み要求を出力して、前記CPUの他のタスクに対するパケット処理の優先度を上げるように構成されていると好適である。
また転送装置が、カウンタによるカウント値が予め設定した回数に達した場合に、CPUに対して優先レベルの高い割込み要求を出力し、前記CPUの他のタスクに対するパケット処理の優先度を上げるように構成されていることが好適である。このようなものであると、ウェイト命令制御手段からのウェイト制御信号が頻発する場合、すなわちパケット処理のスループットが低下するような場合に、有効に対処することができる。
また転送装置が、CPUに割込み要求を出力する際に、アドレス差分算出値に応じた優先レベルの割込み要求を出力するように構成され、またアドレス差分算出値が小さな時ほど優先レベルの高い割込み要求を出力するように構成されて、パケット処理の優先度を上げるように構成されていることが好適である。このようなものであると、CPUの他のタスクの優先度までをも含めた、より柔軟なパケット処理を実現することができる。
以上のように、本発明によれば、データに対するパケット変換処理によってプロトコルヘッダおよび、またはプロトコルフッタを付加した際に、プロトコルヘッダおよび、またはプロトコルフッタを含むデータを、パケット変換処理で使用するプロセッサの使用専用のメモリからユーザスペース(例えばアプリケーションプログラムのデータ格納装置)にその都度コピーする必要がなくなり、付加するプロトコルヘッダおよび、またはプロトコルフッタのみを、ユーザスペース上に確保した第一のブランク領域および、または第二のブランク領域にコピーすればよく、その結果として、データに対するパケット変換処理のスループットの向上を図ることができる。
(第1の実施の形態)
以下、本発明の第1の実施の形態のパケット処理方法について、図面を参照しながら説明する。
図1は、本発明の実施の形態のパケット処理方法の態様を示す模式図である。ここで、1はパケット処理実施前のデータ、2は記憶装置、200はデータ1を所定の大きさに分割した分割データを格納する分割データ格納領域、201は分割データ格納領域200の各分割データに対応するプロトコルヘッダを格納するためのヘッダ用ブランク領域、202は分割データ格納領域200の各分割データに対応するプロトコルフッタを格納するためのフッタ用ブランク領域、203はパケット処理によって各分割データにプロトコルヘッダおよびプロトコルフッタが付加された状態のパケットである。
データ1をネットワーク間で通信するための通信プロトコルに適合したパケットに変換する際に、データ1は、まず図1(a)に示すように所定の大きさに分割されて、パケット変換処理の作業用領域となる記憶装置2上に離間配置された、分割データ格納領域200に格納される。このとき、各分割データの大きさと、各分割データに対応する分割データ格納領域200の大きさとは、等しいものとする。記憶装置2における各々の分割データ格納領域200の前方の記憶領域にはヘッダ用ブランク領域201が確保され、また各々の分割データ格納領域200の後方の記憶領域にはフッタ用ブランク領域202が確保される。
次に、分割データ格納領域200に格納されている各々の分割データにパケット変換処理を行う。パケット変換処理を行うと、分割データには各々に対応するプロトコルヘッダもしくはプロトコルフッタが付加され、パケットへと変換される。このとき、図1(b)に示すように、付加されるプロトコルヘッダはヘッダ用ブランク領域201に格納され、付加されるプロトコルフッタはフッタ用ブランク領域202に格納される。プロトコルヘッダは、ヘッダ用ブランク領域201に格納されるプロトコルヘッダと該当プロトコルヘッダに対応する分割データとの間にブランク領域がないように格納される。また、プロトコルフッタは、フッタ用ブランク領域202に格納されるプロトコルフッタと該当プロトコルフッタに対応する分割データとの間にブランク領域がないように格納される。
図1(b)において「ヘッダA」「ヘッダB」と表示するように、パケット変換処理において分割データに対して複数のプロトコルヘッダを付加する場合は、パケット変換処理の過程で最初にヘッダ用ブランク領域201に格納されたプロトコルヘッダ(ヘッダA)よりも前方のブランク領域に、以降付加されるプロトコルヘッダ(ヘッダB)を順番に積み上げていく。このとき、各プロトコルヘッダ間にはブランク領域がないように格納される。一方、パケット変換処理において分割データに対して複数のプロトコルフッタを付加する場合は、パケット変換処理の過程で最初にフッタ用ブランク領域202に格納されたプロトコルフッタよりも後方のブランク領域に、以降付加されるプロトコルフッタを順番に格納していく。このとき、各プロトコルフッタ間にはブランク領域がないように格納される。分割データに対するパケット変換処理により、各分割データに対応するすべてのプロトコルヘッダおよびプロトコルフッタが付加されると、図1(b)に示すように記憶装置2上にパケット203が出来上がる。
以上、本発明のパケット処理方式の実施の形態の概要について説明したが、以下、本発明のパケット処理方式の実施の形態の詳細について、TCP/IPのパケット処理を例として、図面を参照しながら説明する。
図2は、本発明の実施の形態におけるイーサネット(登録商標)対応TCP/IPパケット処理方法の態様を示す模式図である。ここで、204は既に分割データが格納されている分割データ格納領域、205はヘッダ用ブランク領域、206はフッタ用ブランク領域、207はTCPヘッダ、208はヘッダ用ブランク領域、209はIPヘッダ、210はヘッダ用ブランク領域、211はイーサネット(登録商標)ヘッダ、212はCRC、213はパケットである。
図2(a)は、イーサネット(登録商標)対応TCP/IPパケット変換処理の作業用領域となる記憶装置上の分割データ格納時の初期状態を示す。各々の分割データ格納領域204の前後には、各々に対応するヘッダ用ブランク領域205とフッタ用ブランク領域206とが確保されている。
図2(b)は、イーサネット(登録商標)対応TCP/IPパケット変換処理の過程で、各分割データにTCPヘッダ207が付加された状態を示す。各分割データ格納領域204に対応する同図(a)のヘッダ用ブランク領域205には、分割データ格納領域204の各分割データに対応するTCPヘッダ207が格納される。このとき、各々のヘッダ用ブランク領域205には、TCPヘッダ207の格納領域を除いたヘッダ用ブランク領域208が残る。
図2(c)は、イーサネット(登録商標)対応TCP/IPパケット変換処理の過程で、各分割データにIPヘッダ209が付加された状態を示す。各分割データ格納領域204に対応する同図(b)のヘッダ用ブランク領域208には、分割データ格納領域204の各分割データと各TCPヘッダ207に対応するIPヘッダ209が格納される。このとき、各々のヘッダ用ブランク領域208には、IPヘッダ209の格納領域を除いたヘッダ用ブランク領域210が残る。
図2(d)は、イーサネット(登録商標)対応TCP/IPパケット変換処理の過程で、各分割データにイーサネット(登録商標)ヘッダ211およびCRC212が付加された状態を示す。各分割データ格納領域204に対応する同図(c)のヘッダ用ブランク領域210には、分割データ格納領域204の各分割データと各TCPヘッダ207と各IPヘッダ209とに対応するイーサネット(登録商標)ヘッダ211が格納される。また、各分割データ格納領域204に対応する同図(a)〜(c)のフッタ用ブランク領域206には、分割データ格納領域204の各分割データと各TCPヘッダ207と各IPヘッダ209と各イーサネット(登録商標)ヘッダ211とに対応するCRC212が格納される。以上によって、記憶装置上にパケット213が出来上がる。
以上、本発明のパケット処理方法の実施の形態について、TCP/IPのパケット処理を例に説明したが、以下、本発明のパケット変換処理方法を実現するパケット処理装置の実施の形態について、図面を参照しながら説明する。
(第2の実施の形態)
図3は、本発明の第2の実施の形態におけるパケット処理装置の構成を示すブロック図である。ここで、3はCPU、4は記憶装置、5はDMA、6はCPU3が記憶装置4にアクセスする際にアドレスデータの変換を行うアドレス変換器、7はCPU3と記憶装置4とDMA5との間でアドレスデータを転送する双方向アドレスバス、8はCPU3と記憶装置4とDMA5との間でデータを転送する双方向データバス、10はデータバッファを備えネットワークとの接続制御を行うメディアアクセスコントローラ(以下、「MAC」と称する)、11はネットワークとの物理的なインターフェースであるPHY、12はDMA5からデータバス8にデータを転送するデータバス、13はデータバス8からDMA5にデータを転送するデータバス、14はDMA5からアドレスバス7にアドレスデータを転送するアドレスバス、15はアドレスバス7からDMA5にアドレスデータを転送するアドレスバス、16はPHY11を経てMAC10が受信したデータの記憶装置4への転送を指示するためにCPU3からDMA5に出力される受信データ転送要求信号、17は記憶装置4のデータのMAC10への転送を指示するためにCPU3からDMA5に出力される送信データ転送要求信号、18はデータバス8からCPU3にデータを転送するデータバス、19はCPU3からデータバス8にデータを転送するデータバス、20はCPU3からアドレス変換器6へのアドレスデータを転送するアドレスバス、21はアドレス変換器6からアドレスバス7にアドレス変換器6で変換されたアドレスデータを転送するアドレスバス、22は記憶装置4に対してデータ読出しを指示するためにCPU3から記憶装置4とアドレス変換器6とに出力される読出し要求信号、23は記憶装置4に対してデータ書込みを指示するためにCPU3から記憶装置4とアドレス変換器6に出力される書込み要求信号、24は記憶装置4に対してデータ書込みを指示するためにDMA5から記憶装置4に出力される書込み要求信号、25は記憶装置4に対してデータ読出しを指示するためにDMA5から記憶装置4に出力される読出し要求信号、26はデータバス8から記憶装置4にデータを転送するデータバス、27は記憶装置4からデータバス8にデータを転送するデータバス、28はアドレスバス7から記憶装置4にアドレスデータを転送するアドレスバス、29はDMA5からMAC10にアドレスデータを転送するアドレスバス、30はMAC10からDMA5にネットワークからの受信データを転送する受信用データバス、31はDMA5からMAC10にネットワークへの送信データを転送する送信用データバス、32はMAC10のデータバッファから受信データを読出すためにDMA5からMAC10に出力される読出し要求信号、33はMAC10のデータバッファに対して送信データを格納するためにDMA5からMAC10に出力される書込み要求信号である。
なお、ここでデータバス12とデータバス13、アドレスバス14とアドレスバス15、データバス18とデータバス19、データバス26とデータバス27、受信用データバス30と送信用データバス31は、各々、双方向バスにて構成してもよい。
PHY11により受信したデータは、MAC10内に備えられているデータバッファに一時格納される。このデータバッファに一時格納された受信データを記憶装置4に転送させるために、CPU3は、DMA5に対して、受信データ転送要求信号16と、記憶装置4のデータ転送先となる先頭のアドレスデータとを出力する。このとき、CPU3が出力するアドレスデータは、アドレスバス20を経由してアドレス変換器6に入力されるが、アドレス変換器6では何も行われずにアドレスバス21に出力され、アドレスバス7とアドレスバス15を経由してDMA5に入力される。アドレス変換器6によるアドレスデータの変換については後述する。DMA5は、受信データ転送要求信号16とアドレスデータとが入力されると、MAC10内に備えられているデータバッファから入力されたアドレスデータの示す記憶装置4の記憶領域に対して、MAC10内のデータバッファに一時格納されている受信データの転送を開始する。このときDMA5は、図2(a)に示すように、データを所定の大きさ毎に分割し、かつ記憶装置4上に、分割したデータの離間配置を行う。
以下、DMA5によるデータの分割と、分割されたデータの離間配置とについて、図面を参照しながら説明する。
図4は、DMA5の構成を示すブロック図である。ここで、500は初期分割データ長レジスタ、501はヘッダ用初期ブランク領域レジスタ、502はフッタ用初期ブランク領域レジスタ、503は受信用データバス30から入力されるデータの転送回数をカウントするカウンタ、504は初期分割データ長レジスタ500の値とカウンタ503の値との大小関係を比較する比較器、505は比較器504の比較結果に応じてアドレスデータに加算を行う加算器、506は図3の記憶装置4のアドレスを指定するためのアドレスデータを格納する記憶装置用アドレスバッファ、507は図3のMAC10内のデータバッファのアドレスを指定するためのアドレスデータを格納するMAC用アドレスバッファ、508は受信用データバス30から入力されるデータを格納する受信データバッファ、509はデータバス13から入力されるデータを格納する送信データバッファ、510は制御部である。また、511は図3の記憶装置4に配置する分割データ各々の大きさを記憶装置4のアドレス数で示す初期分割データ長情報X、512は記憶装置4に配置するプロトコルヘッダ用の各々のブランク領域の大きさを記憶装置4のアドレス数で示すヘッダ用初期ブランク領域の大きさ情報Y、513は記憶装置4に配置するプロトコルフッタ用の各々のブランク領域の大きさを記憶装置4のアドレス数で示すフッタ用初期ブランク領域の大きさ情報Z、514はカウンタ503のカウント値である転送回数情報、515は比較器504から加算器505に出力される比較結果、516は記憶装置用アドレスバッファ506から加算機505に入力されるアドレスデータ、517は加算器505から記憶装置用アドレスバッファ506に出力されるアドレスデータである。
初期分割データ長レジスタ500には、図3の記憶装置4にデータを分割配置する際の各分割データの大きさを示す初期分割データ長情報Xが予め格納されている。同様に、ヘッダ用初期ブランク領域レジスタ501には、記憶装置4に配置するプロトコルヘッダ用の各々のブランク領域の大きさを示すヘッダ用初期ブランク領域の大きさ情報Yが予め格納されており、フッタ用初期ブランク領域レジスタ502には、記憶装置4に配置するプロトコルフッタ用の各々のブランク領域の大きさを示すフッタ用初期ブランク領域の大きさ情報Zが予め格納されている。
CPU3からDMA5に受信データ転送要求信号16とアドレスデータとが入力されると、受信データ転送要求信号16は制御部510に入力され、アドレスデータはアドレスバス15を経由して記憶装置用アドレスバッファ506に格納される。制御部510に受信データ転送要求信号16が入力されると、制御部510はMAC10に対して読出し要求信号32を出力し、またMAC10のデータバッファの読み出し先となるアドレスデータをアドレスバス29に出力する。なおこのときアドレスバス29に出力されるアドレスデータはMAC用アドレスバッファ507に格納されているアドレスデータであり、MAC用アドレスバッファ507に格納されているアドレスデータは制御部510により逐次更新される。読出し要求信号32とアドレスバス29のアドレスデータとによって、MAC10のデータバッファに格納されている受信データは、受信用データバス30を経由してDMA5に転送され、受信データバッファ508に格納される。このとき、制御部510はMAC10に対して読出し要求信号32を連続的に出力し、またMAC用アドレスバッファ507に格納されているアドレスデータをアドレスバス29に連続的に出力することで、MAC10のデータバッファからDMA5へのデータ転送を連続的に行うことができる。
カウンタ503は、受信用データバス30から入力されるデータの転送回数をカウントする。カウンタ503によってカウントされた転送回数情報514は、比較器504に入力される。比較器504は、カウンタ503から入力された転送回数情報514が“転送回数が1回目であることを示す値”のとき、比較結果515としてデータ“00”を加算器505に出力する。カウンタ503から入力された転送回数情報514が“転送回数が2回目以上であることを示す値”のとき、比較器504は、初期分割データ長レジスタ500から読出した初期分割データ長情報X511と、カウンタ503から入力された転送回数情報514との大小関係を比較し、転送回数情報514によって示される転送済のデータ量が、初期分割データ長情報X511によって示されるデータ量よりも小さい場合には、比較結果515としてデータ“01”を加算器505に出力する。一方、カウンタ503から入力された転送回数情報514が“転送回数が2回目以上であることを示す値”のときにおいて、転送回数情報514によって示される転送済のデータ量が、初期分割データ長情報X511によって示されるデータ量と同じ場合には、比較結果515としてデータ“10”を加算器505に出力する。
加算器505は、予め記憶装置用アドレスバッファ506からアドレスデータ516を読み出しておき、比較器504から入力される比較結果515がデータ“00”の場合は、アドレスデータ516に対して、ヘッダ用初期ブランク領域レジスタ501から読み出したヘッダ用初期ブランク領域の大きさ情報Y512を加算し、その加算結果をアドレスデータ517として記憶装置用アドレスバッファ506に格納する。比較器504から入力される比較結果515がデータ“01”の場合は、アドレスデータ516に対してインクリメントを行い、その結果をアドレスデータ517として記憶装置用アドレスバッファ506に格納する。一方、比較器504から入力される比較結果515がデータ“10”の場合は、アドレスデータ516に対して、ヘッダ用初期ブランク領域レジスタ501から読み出したヘッダ用初期ブランク領域の大きさ情報Y512と、フッタ用初期ブランク領域レジスタ502から読み出したフッタ用初期ブランク領域の大きさ情報Z513とを加算し、その加算結果をアドレスデータ517として記憶装置用アドレスバッファ506に格納する。
制御部510は、記憶装置用アドレスバッファ506がバッファフルになると、この記憶装置用アドレスバッファ506に格納されているアドレスデータをアドレスバス14に、受信用データバッファ508に格納されているデータをデータバス12に順次出力し、あわせて記憶装置4に対して書込み要求信号24を出力する。このときアドレスバス14に出力されるアドレスデータは、アドレスバス7とアドレスバス28を経由して記憶装置4に入力され、またこのときデータバス12に出力されるデータは、データバス8とデータバス26を経由して記憶装置4に入力される。なお、ここでは記憶装置用アドレスバッファ506がバッファフルになった場合にDMA5から記憶装置4へのデータ転送を開始するが、記憶装置用アドレスバッファ506にアドレスデータが1つ格納される毎に逐次、DMA5から記憶装置4へのデータ転送を行っても良い。
以上のようにDMA5は、MAC10のデータバッファに格納されているデータを、初期分割データ長レジスタ500に設定した初期分割データ長情報Xに基づく大きさ毎に分割しながら、かつヘッダ用初期ブランク領域レジスタ501に設定したヘッダ用初期ブランク領域の大きさ情報Yとフッタ用初期ブランク領域レジスタ502に設定したフッタ用初期ブランク領域の大きさ情報Zとに基づく大きさのブランク領域を確保しながら、記憶装置4上に離間配置する。
以上、DMA5によるデータの分割と分割データの離間配置について説明したが、以下、記憶装置4に離間配置された各々の分割データに対するパケット変換処理について説明する。
記憶装置4に離間配置された各々の分割データに対するパケット変換処理を行うために、CPU3は、記憶装置4の分割データを読み出す。このとき、CPU3は記憶装置4に離間配置された分割データのみを読出し、各々の分割データの前後に確保されているヘッダ用ブランク領域とフッタ用ブランク領域にはアクセスしない方が望ましい。また、記憶装置4に離間配置された各々の分割データに対するパケット変換処理を行うために、CPU3は、記憶装置4より読み出した分割データに対して、対応するプロトコルヘッダやプロトコルフッタを付加する。このとき、CPU3は、記憶装置4に離間配置されている各々の分割データの前方に確保されているヘッダ用ブランク領域にプロトコルヘッダのみを書込み、各々の分割データの後方に確保されているフッタ用ブランク領域にプロトコルフッタのみを書き込む必要がある。
以下、このようなアドレス制御を行う手段であるアドレス変換器6について図面を参照しながら説明する。
図5は、アドレス変換器6の構成を示すブロック図である。ここで、600はアドレスレジスタ、601はCPU3が記憶装置4に対して出力する読出し要求信号22の回数をカウントする読出し回数カウンタ、602はCPU3が記憶装置4に対して出力する書込み要求信号23の回数をカウントする書込み回数カウンタ、603は読出し用アドレス制御部、604は書込み用アドレス制御部、605は読出し用アドレス制御部603および書込み用アドレス制御部604からの入力に応じてアドレスレジスタ600の値に加算を行うアドレス加算器、606は分割データに対してプロトコルヘッダやプロトコルフッタが付加される度に逐次更新される分割データ長レジスタ、607は分割データに対してプロトコルヘッダが付加される度に逐次更新されるヘッダ用ブランク領域レジスタ、608は分割データに対してプロトコルフッタが付加される度に逐次更新されるフッタ用ブランク領域レジスタ、609は付加ヘッダのアドレスオフセット情報を格納するヘッダオフセットレジスタ、610は付加フッタのアドレスオフセット情報を格納するフッタオフセットレジスタである。また、611は任意の時点での各分割データの大きさを記憶装置4のアドレス数で示す分割データ長情報X´、612は任意の時点での各ヘッダ用ブランク領域の大きさを記憶装置4のアドレス数で示すヘッダ用ブランク領域の大きさ情報Y´、613は任意の時点での各フッタ用ブランク領域の大きさを記憶装置4のアドレス数で示すフッタ用ブランク領域の大きさ情報Z´、614は任意の時点での各分割データの大きさを記憶装置4のアドレス数で示す分割データ長情報X´(611と同じもの)、615は任意の時点での各ヘッダ用ブランク領域の大きさを記憶装置4のアドレス数で示すヘッダ用ブランク領域の大きさ情報Y´(612と同じもの)、616は任意の時点での各フッタ用ブランク領域の大きさを記憶装置4のアドレス数で示すフッタ用ブランク領域の大きさ情報Z´(613と同じもの)、617は付加ヘッダのアドレスオフセット情報Hoff、618は付加フッタのアドレスオフセット情報Foff、619は読出し用加算値情報、620は書込み用加算値情報である。
なお、分割データ長レジスタ606には任意の時点での各分割データの大きさを記憶装置4のアドレス数で示す分割データ長情報X´が格納されており、分割データ長情報X´の初期値は初期分割データ長情報Xである。また、ヘッダ用ブランク領域レジスタ607には任意の時点での各ヘッダ用ブランク領域の大きさを記憶装置4のアドレス数で示すヘッダ用ブランク領域の大きさ情報Y´が格納されており、ヘッダ用ブランク領域の大きさ情報Y´の初期値はヘッダ用初期ブランク領域の大きさ情報Yである。また、フッタ用ブランク領域レジスタ608には任意の時点での各フッタ用ブランク領域の大きさを記憶装置4のアドレス数で示すフッタ用ブランク領域の大きさ情報Z´が格納されており、フッタ用ブランク領域の大きさ情報Z´の初期値はフッタ用初期ブランク領域の大きさ情報Zである。
また、ヘッダオフセットレジスタ609には付加するプロトコルヘッダの大きさを記憶装置4のアドレス数で示す付加ヘッダのアドレスオフセット情報Hoffを、付加するプロトコルヘッダに応じてその都度格納し、フッタオフセットレジスタ610には付加するプロトコルフッタの大きさを記憶装置4のアドレス数で示す付加フッタのアドレスオフセット情報Foffを、付加するプロトコルフッタに応じてその都度格納する。付加ヘッダのアドレスオフセット情報Hoffと付加フッタのアドレスオフセット情報Foffとは、処理するプロトコルに応じてプロトコル毎に予め設定しておいてもよいし、実際に付加するプロトコルヘッダとプロトコルフッタの大きさを示すアドレス数を適時カウントするアドレス数カウンタを別途設け、アドレス数カウンタのカウント値を付加ヘッダのアドレスオフセット情報Hoffもしくは付加フッタのアドレスオフセット情報Foffとしてもよい。
次に、上記構成のアドレス変換器6の動作について説明する。まず、記憶装置4に離間配置された各々の分割データに対するパケット変換処理を行うため、CPU3は、記憶装置4の分割データを読み出す。このとき、CPU3は,記憶装置4の読出し先の先頭を示すアドレスデータとして、DMA5による記憶装置4へのデータ転送時にデータ転送先となる先頭アドレスデータとして、DMA5に指定したアドレスデータと同じアドレスデータを出力するようにする。CPU3が出力する記憶装置4の読出し先を示すアドレスデータは、アドレスバス20を介してアドレス変換器6に入力され、アドレスレジスタ600に格納される。また、CPU3が記憶装置4に対して出力する読出し要求信号22は、アドレス変換器6にも入力される。読出し回数カウンタ601は、アドレス変換器6に入力される読出し要求信号22をカウントし、カウント値を読出し用アドレス制御部603に出力する。読出し用アドレス制御部603は、予め、分割データ長レジスタ606とヘッダ用ブランク領域レジスタ607とフッタ用ブランク領域レジスタ608とから、各々、分割データ長情報X´611と、ヘッダ用ブランク領域の大きさ情報Y´612と、フッタ用ブランク領域の大きさ情報Z´613とを読み出しておく。
読出し用アドレス制御部603は、読出し回数カウンタ601から入力されるカウント値が分割データ長情報X´611の示す値よりも小さい値のときは、ヘッダ用ブランク領域の大きさ情報Y´612を読出し用加算値情報619として加算器605に出力する。
また読出し用アドレス制御部603は、読出し回数カウンタ601から入力されるカウント値が分割データ長情報X´611の示す値と同じ値のとき、ヘッダ用ブランク領域の大きさ情報Y´612とフッタ用ブランク領域の大きさ情報Z´613との和に、さらにヘッダ用ブランク領域の大きさ情報Y´612を加算した値を、読出し用加算値情報619として加算器605に出力し、同時に読出し回数カウンタ601を初期化する。
CPU3から記憶装置4に対して連続的に読出しが実行される場合の読出し用加算値情報619は、以下のように定義する。
読出し用加算値情報619=
[読出し回数カウンタ601の初期化回数]×{Y´+Z´}+Y´
加算器605は、アドレスレジスタ600に格納されているアドレスデータに読出し用アドレス制御部603から入力された読出し用加算値情報619を加算し、その結果を、変換後のアドレスデータとしてアドレスバス21に出力する。アドレスバス21に出力された読出し先アドレスデータは、アドレスバス7とアドレスバス28を経由して記憶装置4に入力される。記憶装置4は、CPU3から出力される読み出し要求信号22と上記のアドレスデータとを受け取ると、アドレスデータに対応するアドレスのデータをデータバス27に出力する。データバス27に出力されたデータは、データバス8とデータバス18とを経由してCPU3へと転送され、CPU3によってパケット変換処理が実行される。
以上、CPU3が記憶装置4から離間配置された分割データを読み出すときのアドレス変換器6の動作について説明したが、以下、CPU3から記憶装置4のヘッダ用ブランク領域とフッタ用ブランク領域とに対してプロトコルヘッダとプロトコルフッタとを書き込むときの動作について説明する。
このときCPU3は、記憶装置4に書き込むプロトコルヘッダもしくはプロトコルフッタのデータを、データバス19に出力する。またCPU3は、記憶装置4の書込み先の先頭を示すアドレスデータとして、DMA5による記憶装置4へのデータ転送時にデータ転送先となる先頭アドレスデータとして、DMA5に指定したアドレスデータと同じアドレスデータを出力する。このようにCPU3が出力する記憶装置4の書込み先を示すアドレスデータは、アドレスバス20を介してアドレス変換器6に入力され、アドレスレジスタ600に格納される。また、CPU3が記憶装置4に対して出力する書込み要求信号23は、アドレス変換器6にも入力される。書込み回数カウンタ602は、アドレス変換器6に入力される書込み要求信号23をカウントし、カウント値を書込み用アドレス制御部604に出力する。書込み用アドレス制御部604は、予め、分割データ長レジスタ606とヘッダ用ブランク領域レジスタ607とフッタ用ブランク領域レジスタ608とヘッダオフセットレジスタ609とフッタオフセットレジスタ610とから各々、分割データ長情報X´614と、ヘッダ用ブランク領域の大きさ情報Y´615と、フッタ用ブランク領域の大きさ情報Z´616と、付加ヘッダのアドレスオフセット情報Hoff617と、付加フッタのアドレスオフセット情報Foff618とを読み出しておく。
プロトコルヘッダを書き込む場合に、書込み用アドレス制御部604は、書込み回数カウンタ602から入力されるカウント値が付加ヘッダのアドレスオフセット情報Hoff617の示す値よりも小さい値のときは、ヘッダ用ブランク領域の大きさ情報Y´615から付加ヘッダのアドレスオフセット情報Hoff617を減算した値を、書込み用加算値情報620として、加算器605に出力する。また書込み用アドレス制御部604は、書込み回数カウンタ602から入力されるカウント値が付加ヘッダのアドレスオフセット情報Hoff617の示す値と同じ値のときは、分割データ長情報X´614とヘッダ用ブランク領域の大きさ情報Y´615とフッタ用ブランク領域の大きさ情報Z´616との和に対して、さらにヘッダ用ブランク領域の大きさ情報Y´615から付加ヘッダのアドレスオフセット情報Hoff617を減算した値を加算した値を、書込み用加算値情報620として加算器605に出力し、同時に書込み回数カウンタ602を初期化する。
CPU3から記憶装置4に対して連続的にプロトコルヘッダの書込みが実行される場合の書込み用加算値情報620を、以下のように定義する。
ヘッダ書込み時の書込み用加算値情報620=
[書込み回数カウンタ602の初期化回数]×{X´+Y´+Z´}
+Y´−Hoff
プロトコルフッタを書き込む場合に、書込み用アドレス制御部604は、書込み回数カウンタ602から入力されるカウント値が付加フッタのアドレスオフセット情報Foff618の示す値よりも小さい値のときは、分割データ長情報X´614とヘッダ用ブランク領域の大きさ情報Y´615との和を、書込み用加算値情報620として加算器605に出力する。また書込み用アドレス制御部604は、書込み回数カウンタ602から入力されるカウント値が付加フッタのアドレスオフセット情報Foff617の示す値と同じ値のときは、分割データ長情報X´614とヘッダ用ブランク領域の大きさ情報Y´615とフッタ用ブランク領域の大きさ情報Z´616との和から付加フッタのアドレスオフセット情報Foff617の値を減算した値に対して、分割データ長情報X´614とヘッダ用ブランク領域の大きさ情報Y´615との和を加算した値を、書込み用加算値情報620として加算器605に出力し、同時に、書込み回数カウンタ602を初期化する。
CPU3から記憶装置4に対して連続的にプロトコルフッタの書込みが実行される場合の書込み用加算値情報620を、以下のように定義する。
フッタ書込み時の書込み用加算値情報620=
[書込み回数カウンタ602の初期化回数]
×{X´+Y´+Z´−Foff}+X´+Y´
加算器605は、アドレスレジスタ600に格納されているアドレスデータに書込み用アドレス制御部604から入力された書込み用加算値情報620を加算し、その結果を、変換後のアドレスデータとしてアドレスバス21に出力する。アドレスバス21に出力された書込み先アドレスデータは、アドレスバス7とアドレスバス28を経由して記憶装置4に入力される。記憶装置4は、CPU3から出力される書込み要求信号23と書込みデータとアドレスデータとを受け取ると、アドレスデータに対応するアドレスに対して、データバス19とデータバス8とを経由してデータバス26より入力されるデータを書き込む。
(第3の実施の形態)
図6は、本発明の第3の実施の形態のパケット処理装置の構成を示すブロック図である。以下において、図3に示したものと同一のものには、同一の参照番号を付して説明する。ここで、9はDMAであり、その詳細は後述する。この図6のパケット処理装置においては、図3のパケット処理装置に比べて、アドレス変換器6が省略されているとともに、ウェイト制御部37と、処理済アドレスレジスタ34とが設けられている点で相違する。
すなわち、3はCPU、9はDMA、4は記憶装置、7はCPU3と記憶装置4とDMA9との間でアドレスデータを転送する双方向アドレスバス、8はCPU3と記憶装置4とDMA9との間でデータを転送する双方向データバス、10はデータバッファを備えネットワークとの接続制御を行うMAC、11はネットワークとの物理的なインターフェースであるPHY、12はDMA9からデータバス8にデータを転送するデータバス、13はデータバス8からDMA9にデータを転送するデータバス、14はDMA9からアドレスバス7にアドレスデータを転送するアドレスバス、15はアドレスバス7からDMA9にアドレスデータを転送するアドレスバス、16はPHY11を経てMAC10が受信したデータの記憶装置4への転送を指示するためにCPU3からDMA9に出力される受信データ転送要求信号、17は記憶装置4のデータのMAC10への転送を指示するためにCPU3からDMA9に出力される送信データ転送要求信号、18はデータバス8からCPU3にデータを転送するデータバス、19はCPU3からデータバス8にデータを転送するデータバスである。
215はCPU3からアドレスバス7にアドレスデータを転送するアドレスバス、22は記憶装置4に対してデータ読出しを指示するためにCPU3から記憶装置4に出力される読出し要求信号、23は記憶装置4に対してデータ書込みを指示するためにCPU3から記憶装置4に出力される書込み要求信号、24は記憶装置4に対してデータ書込みを指示するためにDMA9から記憶装置4に出力される書込み要求信号、25は記憶装置4に対してデータ読出しを指示するためにDMA9から記憶装置4に出力される読出し要求信号、26はデータバス8から記憶装置4にデータを転送するデータバス、27は記憶装置4からデータバス8にデータを転送するデータバス、28はアドレスバス7から記憶装置4にアドレスデータを転送するアドレスバス、29はDMA9からMAC10にアドレスデータを転送するアドレスバス、45はMAC10からDMA9にネットワークからの受信データを転送する受信用データバス、31はDMA9からMAC10にネットワークへの送信データを転送する送信用データバス、32はMAC10のデータバッファから受信データを読出すためにDMA9からMAC10に出力される読出し要求信号、33はMAC10のデータバッファに対して送信データを格納するためにDMA9からMAC10に出力される書込み要求信号である。
処理済アドレスレジスタ34には、記憶装置4上でパケット処理が完了しているデータが格納されている記憶領域の最終アドレスが格納される。35は、CPU3から処理済アドレスレジスタ34に出力される処理済アドレス更新命令である。ウェイト制御部37は、DMA9から記憶装置4にデータを転送するときの転送先アドレスデータ38と、処理済アドレスレジスタ34に格納されている処理済アドレスデータ39とに基づき、DMA9に対してウェイト命令41を出力する。ウェイト制御部37の動作については後述する。
なお、ここで、データバス12とデータバス13、アドレスバス14とアドレスバス15、データバス18とデータバス19、データバス26とデータバス27、受信用データバス45と送信用データバス31は、各々、双方向バスにて構成してもよい。
このような構成において、PHY11により受信したデータは、MAC10内に備えられているデータバッファに一時格納される。このデータバッファに一時格納された受信データを記憶装置4に転送させるために、CPU3は、DMA9に対して、受信データ転送要求信号16と、記憶装置4におけるデータ転送先となる先頭のアドレスデータとを出力する。このとき、CPU3が出力するアドレスデータは、アドレスバス215とアドレスバス7とアドレスバス15とを経由してDMA9に入力される。DMA9は、受信データ転送要求信号16とアドレスデータとが入力されると、MAC10内に備えられているデータバッファから入力されたアドレスデータの示す記憶装置4の記憶領域に対して、MAC10内のデータバッファに一時格納されている受信データの転送を開始する。このときDMA9は、記憶装置4上の転送先アドレスを一定領域内で無限にループさせる。
以下、DMA9による転送先アドレスを一定領域内で無限にループさせる機能について、図面を参照しながら説明する。
図7は、DMA9の構成を示すブロック図である。ここで、900は転送回数設定レジスタ、901は受信用データバス45から入力されるデータの転送回数をカウントするカウンタ、902は転送回数設定レジスタ900の値とカウンタ901の値との大小関係を比較する比較器、903は比較器902の比較結果に応じてアドレスデータに加算を行う加算器、904は図6の記憶装置4のアドレスを指定するためのアドレスデータを格納する記憶装置用アドレスバッファ、905は図6のMAC10内のデータバッファのアドレスを指定するためのアドレスデータを格納するMAC用アドレスバッファ、906は受信用データバス45から入力されるデータを格納する受信データバッファ、907はデータバス13から入力されるデータを格納する送信データバッファ、908は制御部である。また、909は転送回数情報、910はカウンタ901のカウント値、911は比較器902から加算器903と制御部908に出力される比較結果、912は記憶装置用アドレスバッファ904から加算機903に入力されるアドレスデータ、913は加算器903から記憶装置用アドレスバッファ904に出力されるアドレスデータ、914はアドレス初期化情報レジスタ、915はDMA9から記憶装置4へのデータ転送回数をカウントするアドレス初期化用カウンタ、916は初期化アドレスレジスタ、917はアドレス初期化のための制御を行うアドレス初期化用制御部、918はアドレス初期化情報、919はアドレス初期化用カウンタ915のカウント値、920は、初期化アドレスレジスタ916が格納しているアドレスデータを記憶装置用アドレスバッファ904に転送するために、アドレス初期化用制御部917から初期化アドレスレジスタ916に出力される転送命令、921は初期化アドレスレジスタ916から記憶装置用アドレスバッファ904に出力される初期化アドレスデータである。
転送回数設定レジスタ900には、DMA9から記憶装置4へのデータ転送を何アドレス分連続で行うかを示す転送回数情報が格納されている。
CPU3からDMA9に受信データ転送要求信号16とアドレスデータとが入力されると、受信データ転送要求信号16は制御部908に入力され、アドレスデータはアドレスバス15を経由して記憶装置用アドレスバッファ904に格納される。制御部908に受信データ転送要求信号16が入力されると、制御部908はMAC10に対して読出し要求信号32を出力し、またMAC10のデータバッファの読み出し先となるアドレスデータをアドレスバス29に出力する。なおこのときアドレスバス29に出力されるアドレスデータはMAC用アドレスバッファ905に格納されているアドレスデータであり、MAC用アドレスバッファ905に格納されているアドレスデータは制御部908により逐次更新される。読出し要求信号32とアドレスバス29のアドレスデータとによって、MAC10のデータバッファに格納されている受信データは、受信用データバス45を経由してDMA9に転送され、受信データバッファ906に格納される。このとき、制御部908はMAC10に対して読出し要求信号32を連続的に出力し、またMAC用アドレスバッファ905に格納されているアドレスデータをアドレスバス29に連続的に出力することで、MAC10のデータバッファからDMA9へのデータ転送を連続的に行うことができる。
カウンタ901は、受信用データバス45から入力されるデータの転送回数をカウントする。カウンタ901のカウント値910は、比較器902に入力される。比較器902は、転送回数設定レジスタ900から入力される転送回数情報909とカウンタ901から入力されるカウント値910との大小関係を比較し、比較結果911を加算器903と制御部908に出力する。加算器903は、カウント値910が転送回数情報909以下であることを示す比較結果911が入力された場合は、記憶装置用アドレスバッファ904より読み出したアドレスデータ912をインクリメントし、これをアドレスデータ913として記憶装置用アドレスバッファ904に格納する。また、制御部908は、カウント値910が転送回数情報909以下であることを示す比較結果911が入力された場合はデータ転送制御を継続し、カウント値910が転送回数情報909より大きいことを示す比較結果911が入力された場合はデータ転送制御を終了する。また、制御部908は、記憶装置用アドレスバッファ904がバッファフルになると、この記憶装置用アドレスバッファ904に格納されているアドレスデータをアドレスバス14に出力するとともに、受信用データバッファ906に格納されているデータをデータバス12に順次出力し、あわせて記憶装置4とアドレス初期化用カウンタ915に対して書込み要求信号240を出力する。このときアドレスバス14に出力されるアドレスデータは、アドレスバス7とアドレスバス28とを経由して記憶装置4に入力され、またこのときデータバス12に出力されるデータは、データバス8とデータバス26とを経由して記憶装置4に入力される。
なお、ここでは記憶装置用アドレスバッファ904がバッファフルになった場合にDMA9から記憶装置4へのデータ転送を開始するが、記憶装置用アドレスバッファ904にアドレスデータが1つ格納される毎に逐次、DMA9から記憶装置400へのデータ転送を行っても良い。
次に、DMA9が記憶装置4にデータを転送する際に転送先アドレスを一定領域内で無限にループさせる機能について説明する。
アドレス初期化情報レジスタ914には、DMA9から記憶装置4に対して何回すなわち何アドレス分データを転送したら転送先アドレスを初期化するかを示すアドレス初期化情報が予め格納されている。
CPU3からDMA9に入力されるアドレスデータは、アドレスバス15を介して初期化アドレスレジスタ916にも格納される。また、DMA9から記憶装置4にデータを転送するために出力される書込み要求信号24は、アドレス初期化用カウンタ915にも入力される。アドレス初期化用カウンタ915は、書込み要求信号24の入力回数すなわちDMA9から記憶装置4へのデータ転送回数をカウントする。アドレス初期化用制御部917は、アドレス初期化情報レジスタ914とアドレス初期化用カウンタ915から、アドレス初期化情報918とカウント値919とを逐次読み出して大小関係を比較し、カウント値919がアドレス初期化情報918以上の場合に、初期化アドレスレジスタ916に対して転送命令920を出力し、初期化アドレスデータ921を記憶装置用アドレスバッファ904に転送する。この結果、記憶装置用アドレスバッファ904に初期のアドレスデータが格納され、DMA9が記憶装置4にデータを転送する際に転送先アドレスを一定領域内で無限にループさせる機能を実現する。
以上、DMA9が記憶装置4にデータを転送する際に転送先アドレスを一定領域内で無限にループさせる機能について説明したが、以下、アドレスの無限ループ時に、記憶装置4上のパケット処理未完了の領域に対するデータの上書きを防止するための機能について、ウェイト制御部37の動作も踏まえて説明する。
図6の処理済アドレスレジスタ34には、CPU3によるパケット処理が完了している領域の最終アドレスのアドレスデータが格納されており、このアドレスデータは、CPU3より出力される処理済アドレス更新命令35により逐次更新される。また、ウェイト制御部37には、DMA9から記憶装置4にデータを転送するときの転送先アドレスデータ38がアドレスバス7より入力される。
ウェイト制御部37は、処理済アドレスレジスタ34から処理済アドレスデータ39を読み出し、処理済アドレスデータ39と転送先アドレスデータ38とのアドレスの差分を算出し、算出したアドレス差分値が所定の値以下の場合に、DMA9に対してウェイト命令41を出力する。
図7に示すDMA9において、ウェイト制御部37から出力されたウェイト命令41は制御部908に入力され、制御部908はウェイト命令41を受け取ると、直ちにDMA9によるデータの転送処理を一時待機させる。一時待機させる期間は、予め設定した一定の時間でもよいし、またはウェイト命令41が入力される期間であっても構わない。これにより、記憶装置4上のパケット処理未完了の領域に対するデータの上書きを防止することができる。
なお、ここで、DMA9は図8に示す構成であっても構わない。
図8において、931はウェイト制御部37からDMA9に入力されるウェイト命令41の入力回数をカウントするウェイト制御カウンタ、932はウェイト制御レジスタ、9080は制御部、933はウェイト制御カウンタ931のカウント値、934はウェイト制御レジスタ932に予め格納されているウェイト制御情報である。このウェイト制御情報934は、DMA9に対するウェイト命令41の入力回数が何回に達したら、DMA9によるデータの転送処理を一時待機させるかを示すものである。制御部9080は、図7に示す制御部908の機能を強化させて、DMA9によるデータの転送処理を一定時間待機させるようにしたものである。それ以外の機能は、制御部908と同じである。
図8に示すDMA9にウェイト命令41が入力されると、ウェイト制御カウンタ931によりウェイト命令41の入力回数がカウントされ、カウントの結果はカウント値933として制御部9080に出力される。制御部9080は、ウェイト制御レジスタ932よりウェイト制御情報934を読み出して、カウント値933とウェイト制御情報934との大小関係を比較し、カウント値933がウェイト制御情報934以上であった場合に、DMA9によるデータの転送処理を一時待機させる。一時待機させる期間は、予め設定した一定の時間でもよいし、またはウェイト命令41が入力される期間であっても構わない。これにより、記憶装置4上のパケット処理未完了の領域に対するデータの上書きを防止することができる。
(第4の実施の形態)
図9は、本発明の第4の実施の形態におけるパケット処理装置の構成を示すブロック図である。
ここで、36はウェイト制御レジスタ、40はウェイト制御レジスタ36に格納されているアドレス差分情報、370はウェイト制御部である。ウェイト制御部370は、DMA9から記憶装置4にデータを転送するときの転送先アドレスデータ38と、処理済アドレスレジスタ34に格納されている処理済アドレスデータ39と、ウェイト制御レジスタ36に格納されているアドレス差分情報40とに基づき、DMA9に対してウェイト命令41を出力する。
この第4の実施の形態におけるパケット処理装置は、図6に示す第3の実施の形態のパケット処理装置におけるウェイト制御部37の構成を換えたものであり、ウェイト制御部370とウェイト制御レジスタ36とアドレス差分情報40以外の構成要素は、図6に示すものと同じである。また、図9のDMA9は、図7もしくは図8のいずれの構成であっても構わない。
図9のウェイト制御レジスタ36には、記憶装置4上でCPU3によるパケット処理が完了している領域の最終アドレスと、DMA9から記憶装置4に対してデータを転送する際の転送先アドレスとのアドレス間隔がどこまで狭まったら、DMA9に対してウェイトを持たせるかを示すためのアドレス差分情報が予め格納されている。
ウェイト制御部370は、処理済アドレスレジスタ34とウェイト制御レジスタ36から処理済アドレスデータ39とアドレス差分情報40とを読み出し、まず処理済アドレスデータ39と転送先アドレスデータ38とのアドレスの差分を算出する。次に、算出したアドレス差分値とアドレス差分情報40との大小関係を比較し、算出したアドレス差分値がアドレス差分情報40以下の場合に、DMA9に対してウェイト命令41を出力する。
DMA9は、ウェイト制御部370からウェイト命令41を入力されると、データの転送処理を一定時間待機させる。これにより、記憶装置4上のパケット処理未完了の領域に対するデータの上書きを防止することができる。
(第5の実施の形態)
図10は、本発明の第5の実施の形態のパケット処理装置の構成を示すブロック図である。
ここで、3はCPU、91はDMA、43はDMA91からCPU3に対して出力される割込み要求信号である。
この本発明の第4の実施の形態のパケット処理装置は、図9に示す第4の実施の形態のパケット処理装置におけるCPU3とDMA91との機能を変えたものであり、CPU3はDMA91からの割込み要求信号43を受け付ける機能を有し、またDMA91はCPU3に対する割込み制御を行う。それ以外の構成要素は、図9に示すものと同じである。
以下、DMA91について、図面を参照しながら説明する。
図11は、図10に示したDMA91の構成を示すブロック図である。ここで、926は割込み制御部である。
図10のウェイト制御部370よりDMA91に対してウェイト命令41が入力されると、このウェイト命令41は制御部908と割込み制御部926とに入力される。
制御部908は、ウェイト命令41を受け取ると、直ちにDMA91によるデータの転送処理を一定時間待機させる。一方、割込み制御部926は、ウェイト命令41を受け取ると、直ちにCPU3に対して常に一定の優先度レベルの割込み要求信号43を出力する。これにより、DMA91へのウェイト命令41が発生した場合に、DMA91から記憶装置4に対するデータ転送を一時停止させるだけでなく、CPU3のパケット処理以外のタスクに対するパケット処理の優先度を向上させ、スループットの低下を防止することができる。
なお、ここで、DMA91は、図12に示す構成であっても構わない。
図12において、926は割込み制御部である。922はウェイト命令カウンタで、図10のウェイト制御部370からDMA91に入力されるウェイト命令41の入力回数をカウントする。923は割込み制御レジスタ、927はウェイト命令カウンタ922のカウント値、928は割込み制御情報である。
割込み制御レジスタ923には、ウェイト命令41が何回入力された場合にCPU3への割込み要求を発生させるかを示す割込み制御情報が予め格納されている。
12において、図10のウェイト制御部370よりDMA91に対してウェイト命令41が入力されると、このウェイト命令41は制御部908とウェイト命令カウンタ922とに入力される。制御部908は、ウェイト命令41を受け取ると、直ちにDMA91によるデータの転送処理を一定時間待機させる。一方、ウェイト命令カウンタ922は、ウェイト命令41の入力回数をカウントし、カウント値927を割込み制御部926に出力する。割込み制御部926は、割込み制御レジスタ923より割込み制御情報928を読み出し、カウント値927と割込み制御情報928との大小関係を比較する。比較の結果、カウント値927が割込み制御情報928以上であった場合は、CPU3に対して常に一定の優先度レベルの割込み要求信号43を出力する。これにより、CPU3のパケット処理以外のタスクに対するパケット処理の優先度を向上させ、スループットの低下を防止するだけでなく、DMA91へのウェイト命令41の頻発の度合いに応じて、より柔軟にCPU3に対する割込み要求が可能となる。
(第6の実施の形態)
図13は、本発明の第6の実施の形態におけるパケット処理装置の構成を示すブロック図である。
ここで、370はウェイト制御部、92はDMA、42はウェイト制御部370からDMA92に対して出力するアドレス差分情報である。
この第6の実施の形態のパケット処理装置は、図10に示す第5の実施の形態のパケット処理装置におけるウェイト制御部370とDMA92との機能を変えたものであり、ウェイト制御部370はDMA92に対してアドレス差分情報42を出力する機能を有し、またDMA92はCPU3に対する割込み制御においてアドレス差分情報42に応じて優先度レベルを任意に変えることができる機能を有する。それ以外は、図10に示すものと同じである。
図13に示すウェイト制御部370は、処理済アドレスレジスタ34とウェイト制御レジスタ36から処理済アドレスデータ39とアドレス差分情報40とを読み出し、まず処理済アドレスデータ39と転送先アドレスデータ38とのアドレスの差分を算出する。次に、算出したアドレス差分値とアドレス差分情報40との大小関係を比較し、算出したアドレス差分値がアドレス差分情報40以下の場合に、DMA92に対してウェイト命令41を出力する。また、ウェイト制御部370は、このときに、算出したアドレス差分値をアドレス差分情報42としてDMA92に出力する。
図14は、図13に示したDMA92の構成を示すブロック図である。ここで、926は割込み制御部、924は割込みレベル制御レジスタ、925はアドレス差分情報レジスタ、929は割込みレベル制御情報、930はアドレス差分情報である。
割込みレベル制御レジスタ924には、アドレス差分情報930に応じた割込みの優先度レベルを設定するための割込みレベル制御情報が予め格納されている。この割込みレベル制御情報は、例えばアドレス差分情報がAの場合は割込みの優先度レベルは1、アドレス差分情報がBの場合は割込みの優先度レベルは2、アドレス差分情報がCの場合は割込みの優先度レベルは3といった具合に、アドレス差分情報に対して、割込みの優先度レベルを関連付けるための情報である。
図14に示すDMA92において、図13のウェイト制御部370より入力されたウェイト命令41は、制御部908のみでなく、割込み制御部926にも入力される。一方、ウェイト制御部370より入力されたアドレス差分情報42は、アドレス差分情報レジスタ925に格納される。割込み制御部926は、ウェイト命令41を受け取ると、割込みレベル制御レジスタ924とアドレス差分情報レジスタ925から割込みレベル制御情報929とアドレス差分情報930を読み出す。次に、割込み制御部926は、割込みレベル制御情報929を参照しながら、読み出したアドレス差分情報930に対して関連付けされる割込みレベルを検出し、検出結果に応じた優先度レベルを持つ割込み要求信号を、割込み要求信号43として、CPU3に出力する。これにより、DMA92へのウェイト命令41が発生する場合に、CPU3に対してそのときのアドレス差分に応じた優先度レベルの割込み要求が可能となり、アドレス差分が小さい時ほど高い優先度レベルの割込み要求信号を出力するといった具合に、CPU3のパケット処理以外のタスクに対するパケット処理の優先度を柔軟に向上させることができる。
なお、ここで、DMA92は、図15に示す構成であっても構わない。図15において、図13のウェイト制御部370から出力されたウェイト命令41はウェイト命令カウンタ922に入力され、また、ウェイト制御部370から出力されたアドレス差分情報42はアドレス差分情報レジスタ925に格納される。ウェイト命令カウンタ922はウェイト命令41の入力回数をカウントし、カウント値927を割込み制御部926に出力する。割込み制御部926は、まず割込み制御レジスタ923より割込み制御情報928を読み出し、カウント値927と割込み制御情報928との大小関係を比較する。比較の結果、カウント値927が割込み制御情報928以上であった場合は、CPU3のパケット処理以外のタスクに対するパケット処理の優先度を上げる必要があることを意味する。割込み制御部926は、カウント値927が割込み制御情報928以上であった場合は、割込みレベル制御レジスタ924とアドレス差分情報レジスタ925から割込みレベル制御情報929とアドレス差分情報930を読み出す。次に、割込み制御部926は、割込みレベル制御情報929を参照しながら、読み出したアドレス差分情報930に対して関連付けされる割込みレベルを検出し、検出結果に応じた優先度レベルを持つ割込み要求信号43をCPU3に出力する。これにより、DMA92へのウェイト命令41が頻発する場合に、CPU3に対してウェイト命令41の頻発の度合いとそのときのアドレス差分に応じた優先度レベルの割込み要求が可能となり、アドレス差分が小さい時ほど高い優先度レベルの割込み要求信号を出力するといった具合に、CPU3のパケット処理以外のタスクに対するパケット処理の優先度をより柔軟に向上させることができる。
本発明にかかるパケット処理方法および装置は、データに対するパケット変換処理によってプロトコルヘッダおよび、またはプロトコルフッタを付加した際に、プロトコルヘッダおよび、またはプロトコルフッタを含むデータを、パケット変換処理で使用するプロセッサの使用専用のメモリからユーザスペース(例えばアプリケーションプログラムのデータ格納装置)にその都度コピーする必要がなくなり、付加するプロトコルヘッダおよび、またはプロトコルフッタのみを、ユーザスペース上に確保した第一のブランク領域および、または第二のブランク領域にコピーすればよく、その結果として、データに対するパケット変換処理のスループットの向上を図ることができ、データをネットワーク間で通信するための通信プロトコルに適合したパケットに変換する際のパケット処理方法および装置等として有用である。
本発明の実施の形態のパケット処理方法の処理態様を示す模式図 本発明の実施の形態におけるイーサネット(登録商標)対応TCP/IPパケット処理方法の処理態様を示す模式図 本発明の実施の形態のパケット処理装置の構成を示すブロック図 図3におけるDMAの構成を示すブロック図 図4におけるアドレス変換器の構成を示すブロック図 本発明の他の実施の形態のパケット処理装置の構成を示すブロック図 図6におけるDMAの構成を示すブロック図 図6におけるDMAの他の構成を示すブロック図 本発明のさらに他の実施の形態のパケット処理装置の構成を示すブロック図 本発明のさらに他の実施の形態のパケット処理装置の構成を示すブロック図 図10におけるDMAの構成を示すブロック図 図10におけるDMAの他の構成を示すブロック図 本発明のさらに他の実施の形態のパケット処理装置の構成を示すブロック図 図13におけるDMAの構成を示すブロック図 図13におけるDMAの他の構成を示すブロック図
符号の説明
4 記憶装置
5 DMA
6 アドレス変換器
7 アドレスバス
8 データバス
500 初期分割データ長レジスタ
501 ヘッダ用初期ブランク領域レジスタ
502 フッタ用初期ブランク領域レジスタ
603 読出し用アドレス制御部
604 書込み用アドレス制御部
606 分割データ長レジスタ
607 ヘッダ用ブランク領域レジスタ
608 フッタ用ブランク領域レジスタ
609 ヘッダオフセットレジスタ
610 フッタオフセットレジスタ

Claims (19)

  1. データをネットワーク間で通信するための通信プロトコルに適合したパケットに変換するパケット処理方法であって、前記データを所定のデータ長毎に分割して複数の分割データとする工程と、前記分割データを記憶する工程と、前記分割データを記憶する際に、前記分割データの各々を格納する記憶領域の前の領域に前記分割データに対応する第一のブランク領域を確保する工程と、前記分割データの各々を格納する記憶領域の後の領域に前記分割データに対応する第二のブランク領域を確保する工程と、前記分割データにパケット変換処理を行った際に、付加されるプロトコルヘッダを前記第一のブランク領域に格納する工程と、前記分割データにパケット変換処理を行った際に、付加されるプロトコルフッタを前記第二のブランク領域に格納する工程と、各々の分割データについて付加されたプロトコルヘッダおよびプロトコルフッタを含む記憶領域のデータを1つのパケットとして識別する工程と、を含むことを特徴とするパケット処理方法。
  2. 請求項1に記載されたパケット処理方法を実現する装置であって、データを記憶する記憶装置と、データを前記記憶装置に格納する際に、データを所定のデータ長毎に分割し、かつ前記分割データにプロトコルヘッダを付加するための第一のブランク領域および前記分割データにプロトコルフッタを付加するための第二のブランク領域を確保しながら前記記憶装置に分割データを離間配置する転送装置と、前記記憶装置に離間配置されたデータにアクセスする際に連続データとしてアクセスを実現するための読出しアドレス制御手段と、前記分割データにパケット変換処理を行った際に、付加されるプロトコルヘッダを前記第一のブランク領域に格納し、かつ付加されるプロトコルフッタを前記第二のブランク領域に格納するための書込みアドレス制御手段と、を具備することを特徴とするパケット処理装置。
  3. 分割データのデータ長と、第一のブランク領域の大きさと、第二のブランク領域の大きさとを、各々任意に設定するためのレジスタを具備することを特徴とする請求項2記載のパケット処理装置。
  4. 転送装置は、転送元から転送先へデータを転送する際に、設定した転送回数毎に転送先アドレスに任意値を加算しながら連続転送する機能を具備して、分割データのデータ長分だけ記憶装置にデータを転送する度に、第一のブランク領域のアドレス数と第二のブランク領域のアドレス数との和を転送先アドレスに加算して次のデータを連続転送することにより、前記記憶装置への分割データの離間配置を実現するように構成されていることを特徴とする請求項2または3に記載のパケット処理装置。
  5. 読出しアドレス制御手段と書込みアドレス制御手段とは、プロトコルヘッダおよび、またはプロトコルフッタを付加する度に更新されるように構成され、パケット処理装置は、任意の時点での記憶装置上の分割データ格納領域の大きさを示す第一のレジスタと、プロトコルヘッダが付加される度に更新され、任意の時点での前記記憶装置上のプロトコルヘッダ格納用ブランク領域の大きさを示す第二のレジスタと、プロトコルフッタが付加される度に更新され、任意の時点での前記記憶装置上のプロトコルフッタ格納用ブランク領域の大きさを示す第三のレジスタとを具備することを特徴とする請求項2から4までのいずれか1項記載のパケット処理装置。
  6. 読出しアドレス制御手段は、第二のレジスタの値と第三のレジスタの値との和から、記憶装置に格納されている分割データ間のブランク領域の大きさを算出する機能を具備して、前記分割データを前記記憶装置の外部からアクセスする際に、第一のレジスタの値に対応した読出し回数毎に、アクセス先のアドレスに前記算出値を加算することで、離間配置した前記分割データに対する連続アクセスを実現可能に構成されていることを特徴とする請求項5記載のパケット処理装置。
  7. 書込みアドレス制御手段は、第一のレジスタの値と第二のレジスタの値と第三のレジスタの値との和に、プロトコルヘッダの付加回数を乗じたうえで、第二のレジスタの値から付加するプロトコルヘッダの大きさを減算したオフセット値を和することで、各々の分割データに対応するプロトコルヘッダ格納領域の離間アドレス値を算出し、また第一のレジスタの値と第二のレジスタの値と第三のレジスタの値との和から、付加するプロトコルフッタの大きさを減算した値に、プロトコルフッタの付加回数を乗ずることで、各々の分割データに対応するプロトコルフッタ格納領域の離間アドレス値を算出する機能を具備して、1つのプロトコルヘッダおよび、または1つのプロトコルフッタを記憶装置に格納する度に、格納先のアドレスに前記算出値を加算することで、前記記憶装置上に離間配置した前記分割データ各々に対するプロトコルヘッダおよび、またはプロトコルフッタの付加を実現可能に構成されていることを特徴とする請求項5または6記載のパケット処理装置。
  8. 付加するプロトコルヘッダおよび、またはプロトコルフッタの大きさを、プロトコル毎に予め設定する手段を有することを特徴とする請求項7記載のパケット処理装置。
  9. 付加するプロトコルヘッダおよび、またはプロトコルフッタの大きさを、各々のデータ長をカウントする専用のカウンタによりその都度算出するように構成されていることを特徴とする請求項7記載のパケット処理装置。
  10. データを記憶する記憶装置と、前記記憶装置に格納されたデータに対してパケット処理を行うCPUと、前記記憶装置とCPUとの間でデータ転送を行う転送装置とを具備し、前記転送装置は、任意に設定可能な転送回数毎にデータの転送先アドレスを初期化することで、前記記憶装置上の転送先アドレスを一定領域内で無限にループさせるように構成されていることを特徴とするパケット処理装置。
  11. 記憶装置内でパケット処理が完了しているデータが格納されている記憶領域の最終アドレスと、転送装置から前記記憶装置にデータを送信する際の送信先アドレスとの差分を算出して、アドレス差分算出値が予め設定したアドレス差分値よりも小さくなる場合に、前記転送装置に対してウェイト制御信号を出力するウェイト命令制御手段を具備することを特徴とする請求項10記載のパケット処理装置。
  12. ウェイト命令制御手段は、アドレス差分値を設定するためのレジスタを具備することを特徴とする請求項11記載のパケット処理装置。
  13. 転送装置は、ウェイト命令制御手段よりウェイト制御信号が入力された場合に前記転送装置から記憶装置へのデータ転送を一時停止させるように構成されていることを特徴とする請求項11または12記載のパケット処理装置。
  14. 転送装置は、ウェイト命令制御手段より入力されるウェイト制御信号の入力回数をカウントするカウンタと、このカウンタによるカウント値が予め設定した値に達した場合に、前記転送装置から記憶装置へのデータ転送を一時停止させる制御部とを具備することを特徴とする請求項11または12記載のパケット処理装置。
  15. 転送装置は、ウェイト命令制御手段よりウェイト制御信号が入力された場合に、CPUに対して通知信号を出力して、前記CPUの他のタスクに対するパケット処理の優先度を上げるように構成されていることを特徴とする請求項13記載のパケット処理装置。
  16. 転送装置は、カウンタによるカウント値が予め設定した値に達した場合に、CPUに対して通知信号を出力して、前記CPUの他のタスクに対するパケット処理の優先度を上げるように構成されていることを特徴とする請求項14記載のパケット処理装置。
  17. 通知信号は優先レベルを有した割込み要求信号であることを特徴とする請求項15または16記載のパケット処理装置。
  18. 転送装置は、CPUに割込み要求を出力する際に、アドレス差分算出値に応じた優先レベルの割込み要求を出力するように構成されていることを特徴とする請求項17記載のパケット処理装置。
  19. 転送装置は、アドレス差分算出値が小さな時ほど優先レベルの高い割込み要求を出力してパケット処理の優先度を上げるように構成されていることを特徴とする請求項18記載のパケット処理装置。
JP2004127471A 2003-11-12 2004-04-23 パケット処理方法および装置 Pending JP2005167965A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004127471A JP2005167965A (ja) 2003-11-12 2004-04-23 パケット処理方法および装置
US10/986,465 US20050141534A1 (en) 2003-11-12 2004-11-12 Packet processing method and device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003381878 2003-11-12
JP2004127471A JP2005167965A (ja) 2003-11-12 2004-04-23 パケット処理方法および装置

Publications (1)

Publication Number Publication Date
JP2005167965A true JP2005167965A (ja) 2005-06-23

Family

ID=34703244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004127471A Pending JP2005167965A (ja) 2003-11-12 2004-04-23 パケット処理方法および装置

Country Status (2)

Country Link
US (1) US20050141534A1 (ja)
JP (1) JP2005167965A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008283394A (ja) * 2007-05-09 2008-11-20 Matsushita Electric Ind Co Ltd 通信装置及び通信用集積回路
JP2009296074A (ja) * 2008-06-02 2009-12-17 Fujitsu Microelectronics Ltd 通信装置及び通信方法
US7650470B2 (en) 2001-06-28 2010-01-19 Trek 2000 International, Ltd. Method and devices for data transfer
JP2011072030A (ja) * 2010-12-15 2011-04-07 Renesas Electronics Corp ストリームデータ通信方法及びストリームデータ通信装置
US8209462B2 (en) 2000-02-21 2012-06-26 Trek 2000 International Ltd. Portable data storage device
KR101301793B1 (ko) 2009-11-24 2013-09-16 (주) 위닉스 데이터 패킷 전송 장치 및 방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4966505B2 (ja) * 2005-03-24 2012-07-04 ブラザー工業株式会社 パケット通信システム
US8804764B2 (en) * 2010-12-21 2014-08-12 International Business Machines Corporation Data path for data extraction from streaming data
US8681819B2 (en) 2011-01-31 2014-03-25 International Business Machines Corporation Programmable multifield parser packet
KR101343587B1 (ko) * 2011-10-13 2013-12-19 엘지전자 주식회사 방향 정보를 이용한 데이터 전송 방법 및 상기 방법을 채용한 휴대 전자 기기
DE102013226765A1 (de) * 2013-06-05 2014-12-11 Continental Teves Ag & Co. Ohg Verfahren zur Datenkommunikation, Kommunikationscontroller und Schaltungsanordnung
US10963003B2 (en) * 2017-10-20 2021-03-30 Graphcore Limited Synchronization in a multi-tile processing array
GB201717295D0 (en) * 2017-10-20 2017-12-06 Graphcore Ltd Synchronization in a multi-tile processing array
TW202203048A (zh) * 2020-07-10 2022-01-16 日商索尼半導體解決方案公司 通信裝置及通信方法、以及程式
CN114039989A (zh) * 2021-10-28 2022-02-11 诺领科技(南京)有限公司 一种基于NB-IoT系统的低成本低功耗数据处理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2003A (en) * 1841-03-12 Improvement in horizontal windivhlls
DE69635880T2 (de) * 1995-09-18 2006-10-05 Kabushiki Kaisha Toshiba, Kawasaki Anlage und Methode zur Übertragung von Paketen, geeignet für eine grosse Anzahl von Eingangstoren
US6377574B1 (en) * 1997-10-24 2002-04-23 Hitachi, Ltd. Packet switch and method for relaying management cells and data cells in a form of IP packet
EP1081910B1 (en) * 1999-08-06 2005-08-31 Matsushita Electric Industrial Co., Ltd. Data transmission and reception apparatus
US20030028696A1 (en) * 2001-06-01 2003-02-06 Michael Catherwood Low overhead interrupt
US6757292B2 (en) * 2001-07-11 2004-06-29 Overture Networks, Inc. Automatic adjustment of buffer depth for the correction of packet delay variation
US6968479B2 (en) * 2002-03-06 2005-11-22 Hewlett-Packard Development Company, L.P. Verifying data in a data storage device
JP4211282B2 (ja) * 2002-05-14 2009-01-21 ソニー株式会社 データ蓄積方法及びデータ蓄積システム、並びに、データ記録制御装置、データ記録指令装置、データ受信装置及び情報処理端末

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8209462B2 (en) 2000-02-21 2012-06-26 Trek 2000 International Ltd. Portable data storage device
US7650470B2 (en) 2001-06-28 2010-01-19 Trek 2000 International, Ltd. Method and devices for data transfer
JP2008283394A (ja) * 2007-05-09 2008-11-20 Matsushita Electric Ind Co Ltd 通信装置及び通信用集積回路
US8018931B2 (en) 2007-05-09 2011-09-13 Panasonic Corporation Communication apparatus and integrated circuit for communication
JP2009296074A (ja) * 2008-06-02 2009-12-17 Fujitsu Microelectronics Ltd 通信装置及び通信方法
US8249098B2 (en) 2008-06-02 2012-08-21 Fujitsu Semiconductor Limited Communication device and communication method thereof with allocation processing
KR101301793B1 (ko) 2009-11-24 2013-09-16 (주) 위닉스 데이터 패킷 전송 장치 및 방법
JP2011072030A (ja) * 2010-12-15 2011-04-07 Renesas Electronics Corp ストリームデータ通信方法及びストリームデータ通信装置

Also Published As

Publication number Publication date
US20050141534A1 (en) 2005-06-30

Similar Documents

Publication Publication Date Title
JP2005167965A (ja) パケット処理方法および装置
JP2745521B2 (ja) フレーム送信方法
US6038607A (en) Method and apparatus in a computer system having plural computers which cause the initiation of functions in each other using information contained in packets transferred between the computers
JP3127523B2 (ja) 通信制御装置およびデータ送信方法
EP0996069A2 (en) Method of transferring image data using a IEEE 1394 bus
JPH0778112A (ja) ネットワークシステムおよびネットワークにおける通信方法
KR20040041628A (ko) 버스 시스템 및 버스 인터페이스
CA2194026C (en) Method and apparatus for moving data packets between networks while minimizing cpu interventions using a multi-bus architecture
US20040268009A1 (en) Transceiving network controller and method for controlling buffer memory allocation and data flow
JP3189269B2 (ja) ネットワークプリンタ
EP2111003A1 (en) Data transfer control device and electronic equipment
JP5772132B2 (ja) データ転送装置、データ転送方法および情報処理装置
WO2019095942A1 (zh) 一种数据传输方法及通信设备
JP6438206B2 (ja) 通信装置、その制御方法、およびプログラム
JP3908928B2 (ja) ネットワークインターフェイス回路
JP6938399B2 (ja) 通信装置、通信方法およびプログラム
JP7005303B2 (ja) 通信装置、パケット生成装置およびそれらの制御方法
JP2004094931A (ja) ネットワークシステムおよびネットワークにおける通信方法
JP7049140B2 (ja) 通信装置およびその制御方法
JP6785009B2 (ja) 通信装置、及び、通信装置の制御方法
JP2019020851A (ja) デバイス制御装置、デバイス制御方法、およびプログラム
JP2000259523A (ja) データ転送装置、lan通信システム及びデータ転送方法
JP2002288115A (ja) Usbコントローラ
JPH11313124A (ja) データ通信システム、装置及び方法、並びに記録媒体
JP3878785B2 (ja) ネットワークインタフェース回路