JP2002185466A - パケット送受信装置 - Google Patents

パケット送受信装置

Info

Publication number
JP2002185466A
JP2002185466A JP2000380906A JP2000380906A JP2002185466A JP 2002185466 A JP2002185466 A JP 2002185466A JP 2000380906 A JP2000380906 A JP 2000380906A JP 2000380906 A JP2000380906 A JP 2000380906A JP 2002185466 A JP2002185466 A JP 2002185466A
Authority
JP
Japan
Prior art keywords
packet
buffer
area
reception
main memory
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
JP2000380906A
Other languages
English (en)
Inventor
Shigeya Senda
滋也 千田
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.)
Ricoh Co Ltd
Original Assignee
Ricoh 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2000380906A priority Critical patent/JP2002185466A/ja
Publication of JP2002185466A publication Critical patent/JP2002185466A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Small-Scale Networks (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 メモリ効率を高め、かつ、処理ソフトウエア
上のオーバヘッドを減らすことができるパケット送受信
装置を得る。 【解決手段】 イーサネット(登録商標)等のパケット
通信において、FIFOメモリ等の一時バッファでパケ
ットの一部を取り込みプロトコルを解釈して、他装置か
らの自局で処理すべきパケットをメインメモリ3上のパ
ケット領域に転送し、メインメモリ上のパケット領域か
らパケットを送信するパケット送受信装置(ネットワー
クアダプタ)1において、上記メインメモリ上の長さの
異なる複数のパケット領域を管理する受信用のパケット
バッファを複数設け、受信データ長に応じてパケット領
域を得るパケットバッファを切り替える。また、パケッ
ト領域を得ようとしたパケットバッファが空になった場
合は、別のパケットバッファからメモリを得ることで受
信領域の枯渇に対応する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プリンタ/MFP
のネットワークコントローラ等に用いて好適なパケット
送受信装置に関する。
【0002】
【従来の技術】イーサネット(登録商標)やIEEE1
394、USBといった通信方式では、パケットを単位
としたデータの送受信により通信を行っている。イーサ
ネットはIEEE802.3規格に定められており、C
SMA/CD方式のネットワーク規格である。IEEE
1394はその名の通りIEEE1394規格で定めら
れた通信方式である。USBはUSBコンソーシアムに
よって企画化されている通信方式である。
【0003】これらの通信方式では可変長のパケットが
用いられている。通常、特定用途向け集積回路(ASI
C)等で実装された制御装置上にFIFOなどのバッフ
ァを持ち、受信したパケットの種別、長さ等の判別を行
い、自局が処理すべきであるデータパケットをメインメ
モリ上のパケット領域にDMAにより転送して処理を行
う。送信は逆にメインメモリ上のパケット領域からデー
タをDMAにより転送しながら送信を行う。
【0004】可変長のパケットデータを扱う場合に問題
となるのはパケット領域をどのようにとるかである。最
も単純な方法は最大パケット長のパケット領域を確保す
る方法である。他の方法は小さな領域をたくさん確保し
ておき、1つのパケットを複数の領域に格納する方法で
ある。
【0005】
【発明が解決しようとする課題】上記前者の方法では、
メモリに制約のある組み込み用途等では十分な数のパケ
ット領域を確保できなくなる可能性がある。また、後者
の方法では、メモリの利用効率は高くなるが、パケット
を処理するソフトウエアの負担が大きくなる。処理の都
合上、分断された別の領域にコピーし直す必要があった
り、パケットのリンクをたどる制御がオーバヘッドとな
る。
【0006】本発明は、メモリ効率を高め、かつ、処理
ソフトウエア上のオーバヘッドを減らすことを目的とし
ている。
【0007】
【課題を解決するための手段】上記の目的を達成するた
めに、本発明によるパケット送受信装置においては、受
信時に、一時バッファでパケットの一部を取り込みプロ
トコルを解釈して、処理すべきパケットをメインメモリ
上のパケット領域に転送し、送信時に、メインメモリ上
のパケット領域からパケットを送信するパケット送受信
装置において、長さの異なる複数のメインメモリ上のパ
ケット領域を管理する複数の受信パケットバッファを具
備している。
【0008】
【発明の実施の形態】以下、本発明の実施の形態を図面
と共に説明する。本実施の形態においては、メモリ効率
を高め、かつ、処理ソフトウエア上のオーバヘッドを減
らすために、長さの異なる複数のメインメモリ上のパケ
ット領域を管理する受信用のパケットバッファを複数用
意し、受信データ長に応じてパケット領域を得るパケッ
トバッファを切り替える。また、パケット領域を得よう
としたパケットバッファが空になった場合に別のパケッ
トバッファからメモリを得ることで受信領域の枯渇に対
応する。
【0009】このために、本発明実施の形態によるパケ
ット送受信装置は、イーサネット等のパケット通信にお
いて、FIFOメモリ等の一時バッファでパケットの一
部を取り込みプロトコルを解釈して、他装置からの自局
で処理すべきパケットを内部のメインメモリ上のパケッ
ト領域に転送し、装置内のメインメモリ上のパケット領
域からパケットを送信するパケット送受信装置におい
て、メインメモリ上の長さの異なるパケット領域を管理
する複数の受信用のパケットバッファを具備している。
【0010】図1は本発明の実施の形態によるIEEE
802.3規格に基づいたイーサネットのパケット送受
信装置によるパケット送受信システムを示すブロック図
である。パケット送受信装置は、ASIC等で実装され
たネットワークアダプタ1が対応するものである。図1
において、システムはプログラムROM2から起動し、
ネットワークアダプタ1の機能を利用して送受信を行
う。パケットの送受信はメインメモリ3に対するDMA
で行われる。メインメモリ上のDMAすべきパケット領
域を管理するパケットバッファもメインメモリ上に置か
れ、ネットワークアダプタカードがDMAによって内容
を読み取り、管理情報の書き戻しを行う。
【0011】図2は本発明の実施の形態によるパケット
送受信装置(ネットワークアダプタ)1の構成を示すブ
ロック図である。ツイステッドペアトランシーバ11で
受信され、デコーダ12でプリアンブル除去、CRCチ
ェック、pad除去等の加工等の処理を含みデコードさ
れたデータは、受信制御部13およびイーサネットコン
トローラ14によりIEEE802.3により定められ
た受信制御がなされる。イーサネットコントローラ14
により装置で受け取るべきパケットと判別されたデータ
パケットが受信されると、受信FIFO15にコピーさ
れる。コピーされた内容はホストインタフェース16の
機能によりDMAされ、システムバスを介してメインメ
モリ3にDMA転送される。
【0012】送信はホストインタフェース16の機能に
よりメインメモリ3上のパケットデータがDMAされ、
送信FIFO17に送り込まれる。FIFO上のデータ
は送信制御部18でIEEE802.3によって定めら
れた送信制御がなされ、エンコーダ19によりプリアン
ブル付加、CRC生成、padデータ生成等の加工が施
された後、ツイステッドペアトランシーバ11からネッ
トワーク上に送信される。
【0013】図3にパケットバッファの構成を示す。ま
た、図4にパケットバッファの構成要素であるディスク
リプタの構造を示す。パケットバッファはDMA対称で
あるパケット領域を管理するためのメインメモリ3上の
領域である。本実施の形態では送信用に1つ、受信用に
2つの入力パケットバッファ、1つの結果保持パケット
バッファを持つ。
【0014】受信用のパケットバッファは、長さの異な
る複数のパケット領域を管理する。パケットバッファは
複数のディスクリプタからなる。ディスクリプタは次の
ディスクリプタのアドレスを保持するリンクを持ち、通
常リングバッファを構成する。送信用のパケットバッフ
ァの1つのディスクリプタは1つのパケットを表現し、
複数のパケット領域からなっていてよい。つまり、1つ
のパケットを複数の領域に分散して持つことができる。
【0015】送信時、ホストインタフェース16はソフ
トウエアにより用意されたパケットバッファのディスク
リプタをDMAによってロードし、コントロールビット
のOWNビットが立っているときのみ送信を行う。立っ
ていないときはある時間間隔でディスクリプタをDMA
で読み直し、ビットが立つまでそれを繰り返すか(ポー
リングモード)、その場で動作を停止する(バッチモー
ド)。
【0016】OWNビットが立っている場合は、パケッ
ト数分のパケット領域アドレスの指定があるものとし
て、そのアドレスが指すパケット領域より送信データを
DMAにより送信FIFO17に得て送信を行う。1つ
のディスクリプタ分(パケット)の送信が終了すると、
ディスクリプタのリンクが示すアドレスのディスクリプ
タについて同様の処理を行う。ただし、リンクの示すア
ドレスが0である場合は送信を停止する(ソフトウエア
に対して送信終了割り込みを発生する)。
【0017】図5に受信時の処理フローを示す。受信時
には2つの入力パケットバッファと1つの結果保持パケ
ットバッファを用いて動作する。入力用のパケットバッ
ファは、受信によって消費されるパケット領域を保持す
る目的で使用される。入力パケットバッファは、1つの
ディスクリプタに対して1つのパケット領域しか持たな
い。結果保持パケットバッファは、ホストインタフェー
ス16により受信した内容が書き込まれるパケットバッ
ファである。
【0018】入力パケットバッファは、それぞれ保持す
るパケット領域長の最小値が決められており、ホストイ
ンタフェース16にその値がレジスタとして保持され
る。通常一方はパケット最大長(1518 octet)で、もう
片一方はそれよりも小さい値が指定される(例えば256
)。小さい方の値は受信FIFO15の最大長以下で
なければならない。また、イーサネットパケットの最小
値(64 octet)以上でなければならない。入力パケット
バッファのディスクリプタはリングバッファ構造にして
使用するのが一般的である。以下、短いパケット領域を
保持するパケットバッファをパケットバッファ1、長い
方をパケットバッファ2と呼ぶ。
【0019】3つのパケットバッファのディスクリプタ
先頭アドレス、2つの入力パケットバッファのパケット
領域長の最小値がホストインタフェース16のレジスタ
にセットされ、受信が起動されると、まず結果保持パケ
ットバッファの内容をDMAによって得た後(後述)、
受信動作が開始され、自局が受け取るべきパケットが装
置に入力されたとき、いったん受信FIFO15にデー
タが入ってくる。
【0020】受信FIFO15に受信中にパケットの終
わりを検出した場合にパケットバッファ1のパケット領
域最小値以下のパケットである場合、パケットバッファ
1のディスクリプタをDMAにより得てOWNビットが
立っている場合には、そのパケット領域にDMAで受信
FIFOの内容を書き込む。逆に受信FIFOに受信中
にパケットバッファ1のパケット最小値を越えて受信が
続く場合、パケットバッファ2のディスクリプタをDM
Aにより得てOWNビットが立っている場合に、パケッ
トが示すパケット領域に受信FIFOの内容をDMAで
書き込む。
【0021】1つのパケットの受信が終わると、結果保
持パケットバッファにディスクリプタをDMAにより生
成する。生成するディスクリプタは受信に使用したパケ
ット領域アドレスを持ち、コントロールビットのOWN
ビットが1となる。生成後、次のパケットが受信FIF
O15に現れると同様の動作を繰り返す。
【0022】前述の動作で、結果保持パケットバッファ
の内容をDMAで得たとき、または、パケットバッファ
1あるいはパケットバッファ2のディスクリプタをDM
Aで得たときにOWNビットをチェックする。結果保持
バッファのディスクリプタのOWNビット位置が1ある
いは入力パケットバッファのディスクリプタのOWNビ
ット0である場合、受信バッファがいっぱいであるとし
て受信エラー状態となる。
【0023】入力パケットバッファが受信エラー状態と
なった場合、受信エラーとしないで、他方の入力パケッ
トバッファを代替するモードを選択することができる。
パケットバッファ1のパケット領域の代替としてパケッ
トバッファ2のパケット領域を利用する場合は、2の方
が大きい領域なので動作は簡単である。パケットバッフ
ァ2のパケット領域の代替としてパケットバッファ1の
パケット領域を利用する場合は、複数のパケットバッフ
ァ1のパケット領域で1つのパケットを受信することに
なる。この場合、結果保持バッファに書き込まれるディ
スクリプタは複数のパケット領域アドレスを持つ。
【0024】上記の複数パケット領域で1つのパケット
を受信しようとする場合に、途中でパケット領域が足り
なくなる場合、つまり、パケット受信の途中でロードし
たパケットバッファ1のディスクリプタのOWNビット
が0である場合には、再び受信エラー状態となる。
【0025】複数のパケットバッファを使用してしまっ
ている途中でエラーとなっている場合、ソフトウエアで
のリカバリー処理が難しくなる。これを回避するため、
残りの入力パケットバッファのディスクリプタ数(=パ
ケット領域数)を保持するレジスタを用意する。ソフト
ウエアは初期値を設定し、ホストインタフェース16は
パケットを使用したときにその値を減らし、ソフトウエ
アはパケット処理を実施して新たなディスクリプタが用
意できたらその数を増やす。
【0026】複数ディスクリプタを利用する代替処理の
場合にパケットバッファ1の残りの領域の合計がパケッ
ト最大長より小さい場合、受信エラーとすることで複数
ディスクリプタの途中でパケット領域枯渇によるエラー
を防ぐことができる。
【0027】
【発明の効果】請求項1記載の発明によれば、イーサネ
ット等のパケット通信において、FIFOメモリ等の一
時バッファでパケットの一部を取り込みプロトコルを解
釈して、他装置からの自局で処理すべきパケットを内部
のメインメモリ上のパケット領域に転送し、装置内のメ
インメモリ上のパケット領域からパケットを送信するパ
ケット送受信装置において、長さの異なる複数のメイン
メモリ上のパケット領域を管理する複数の受信用のパケ
ットバッファを具備するので、少ないメモリ領域でオー
バヘッドなしにパケット受信用メモリ領域を管理でき
る。
【0028】請求項2記載の発明によれば、上記パケッ
ト送受信装置において、一時バッファで受け取ったパケ
ット長により上記パケットバッファを選択することを特
徴とするので、短いパケットを受信した際に容量の少な
いパケット領域を選択することができる。
【0029】請求項3記載の発明によれば、上記パケッ
ト送受信装置において、一時バッファで受け取ったパケ
ット長により上記パケットバッファを選択する際に、パ
ケット長に対するしきい値を可変に指定できることを特
徴とするので、パケットバッファの最小パケットサイズ
をしきい値としてパケットバッファを選択することがで
きる。
【0030】請求項4記載の発明によれば、上記パケッ
ト送受信装置において、パケット領域を得るために選択
したパケットバッファが空になった場合に、別のパケッ
トバッファを選択することを特徴とするので、パケット
が枯渇した状況でも動作を継続可能である。
【0031】請求項5記載の発明によれば、上記パケッ
ト送受信装置において、パケットバッファの残り個数を
管理し、そのデータ領域長の合計がしきい値以下である
場合に別のパケットバッファを選択することを特徴とす
るので、複数パケット領域からなるパケット受信におい
て途中の状態で受信エラーとなるエラーリカバリが複雑
になるという状況を避けることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態によるパケット送受信シス
テムの構成を示すブロック図である。
【図2】本発明の実施の形態によるパケット送受信装置
の構成を示すブロック図である。
【図3】パケットバッファの構成を示すブロック図であ
る。
【図4】パケットバッファの構成要素であるディスクリ
プタの構造を示ブロック図である。
【図5】受信時の処理を示すフローチャートである。
【符号の説明】
1 送受信装置(ネットワークアダプタ) 2 プログラムROM 3 メインメモリ 11 ツイステッドペアトランシーバ 12 デコーダ 13 受信制御部 14 イーサネットコントローラ 15 受信FIFO 16 ホストインタフェース 17 送信FIFO 18 送信制御部 19 エンコーダ

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 受信時に、一時バッファでパケットの一
    部を取り込みプロトコルを解釈して、処理すべきパケッ
    トをメインメモリ上のパケット領域に転送し、送信時
    に、前記メインメモリ上のパケット領域からパケットを
    送信するパケット送受信装置において、 前記メインメモリ上の長さの異なる複数のパケット領域
    を管理する複数の受信用のパケットバッファを具備する
    ことを特徴とするパケット送受信装置。
  2. 【請求項2】 前記一時バッファで受け取ったパケット
    長に応じて前記パケットバッファを選択することを特徴
    とする請求項1記載のパケット送受信装置。
  3. 【請求項3】 前記一時バッファで受け取ったパケット
    長に応じて前記パケットバッファを選択する際に、パケ
    ット長に対するしきい値を指定できることを特徴とする
    請求項2記載のパケット送受信装置。
  4. 【請求項4】 前記パケット領域を得るために選択した
    前記パケットバッファが空になった場合に別のパケット
    バッファを選択することを特徴とする請求項2または3
    記載のパケット送受信装置。
  5. 【請求項5】 前記パケットバッファの残り個数を管理
    し、そのデータ領域長の合計が前記しきい値以下である
    場合に別のパケットバッファを選択することを特徴とす
    る請求項3記載のパケット送受信装置。
JP2000380906A 2000-12-14 2000-12-14 パケット送受信装置 Pending JP2002185466A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000380906A JP2002185466A (ja) 2000-12-14 2000-12-14 パケット送受信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000380906A JP2002185466A (ja) 2000-12-14 2000-12-14 パケット送受信装置

Publications (1)

Publication Number Publication Date
JP2002185466A true JP2002185466A (ja) 2002-06-28

Family

ID=18849012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000380906A Pending JP2002185466A (ja) 2000-12-14 2000-12-14 パケット送受信装置

Country Status (1)

Country Link
JP (1) JP2002185466A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2461881A (en) * 2008-07-15 2010-01-20 Virtensys Ltd Transferring packets from a primary buffer of an ingress port to an associated secondary buffer if the secondary buffer satisfies a predetermined criterion.
JP2022541126A (ja) * 2019-06-28 2022-09-22 アナログ・ディヴァイシス・インターナショナル・アンリミテッド・カンパニー 低複雑度イーサネットノード(len)1ポート

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2461881A (en) * 2008-07-15 2010-01-20 Virtensys Ltd Transferring packets from a primary buffer of an ingress port to an associated secondary buffer if the secondary buffer satisfies a predetermined criterion.
US8059671B2 (en) 2008-07-15 2011-11-15 Virtensys Ltd. Switching device
GB2461881B (en) * 2008-07-15 2012-10-03 Micron Technology Inc Switching device
JP2022541126A (ja) * 2019-06-28 2022-09-22 アナログ・ディヴァイシス・インターナショナル・アンリミテッド・カンパニー 低複雑度イーサネットノード(len)1ポート
JP7391116B2 (ja) 2019-06-28 2023-12-04 アナログ・ディヴァイシス・インターナショナル・アンリミテッド・カンパニー 低複雑度イーサネットノード(len)1ポート
US11940943B2 (en) 2019-06-28 2024-03-26 Analog Devices International Unlimited Company Low complexity ethernet node (LEN) one port

Similar Documents

Publication Publication Date Title
US7551638B2 (en) Network interface with transmit frame descriptor reuse
US6757746B2 (en) Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US6308218B1 (en) Address look-up mechanism in a multi-port bridge for a local area network
US6246683B1 (en) Receive processing with network protocol bypass
US5752078A (en) System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory
US6970921B1 (en) Network interface supporting virtual paths for quality of service
US8539112B2 (en) TCP/IP offload device
US7860120B1 (en) Network interface supporting of virtual paths for quality of service with dynamic buffer allocation
US6388989B1 (en) Method and apparatus for preventing memory overrun in a data transmission system
US6279052B1 (en) Dynamic sizing of FIFOs and packets in high speed serial bus applications
US6760781B1 (en) Intelligent packet transmission engine
JPH10308791A (ja) データ通信方法、データ通信装置、およびデータ通信プログラム記録媒体
US20050041606A1 (en) Data communication apparatus, data communication method, data communication program and recording medium in which data communication program was recorded
US7643502B2 (en) Method and apparatus to perform frame coalescing
US7213074B2 (en) Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet
JP2002185466A (ja) パケット送受信装置
JP4098910B2 (ja) パケット転送制御装置及びパケット転送方法
JP3753622B2 (ja) パケット送受信装置
JP2005074928A (ja) データ処理システム、データ処理装置、及びデータ受信プログラム
US20230179545A1 (en) Packet forwarding apparatus with buffer recycling and associated packet forwarding method
US7428242B2 (en) Action list for a split media access and control layer communications system
JP4377033B2 (ja) データ転送制御方法及びその装置
JP2001257686A (ja) 計算機システム及び計算機システムのデータ通信方法
US20030172176A1 (en) Embedded system having multiple data receiving channels
JPH11146019A (ja) データ転送装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050125

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071002