JP2004128786A - Packet retransmission controlling apparatus - Google Patents

Packet retransmission controlling apparatus Download PDF

Info

Publication number
JP2004128786A
JP2004128786A JP2002288546A JP2002288546A JP2004128786A JP 2004128786 A JP2004128786 A JP 2004128786A JP 2002288546 A JP2002288546 A JP 2002288546A JP 2002288546 A JP2002288546 A JP 2002288546A JP 2004128786 A JP2004128786 A JP 2004128786A
Authority
JP
Japan
Prior art keywords
retransmission
transmission request
fifo
packet
transmission
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.)
Withdrawn
Application number
JP2002288546A
Other languages
Japanese (ja)
Inventor
Masanobu Araya
新家 正総
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2002288546A priority Critical patent/JP2004128786A/en
Publication of JP2004128786A publication Critical patent/JP2004128786A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a packet retransmission controlling apparatus for simplifying the retransmission control of a packet. <P>SOLUTION: The packet retransmission control apparatus for transmitting the packet to a network according to a transmission request including a pointer to the packet on a memory comprises an FIFO 36 for retransmission for accumulating the transmission request to the transmitted packet; and a means for retransmitting by using the transmission request of the FIFO 36 for retransmission when the retransmission is needed. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明はパケット再送制御装置に関する。本発明は信頼性を持つパケット通信装置に関するものであり、図8に示すように送信側装置1から受信側装置2に向けてパケット送信を行ない((1))、このパケットが受信側装置2で受信されると、受信側装置2から受信確認を出し((2))、受信確認を送信側装置1がチェックして、正しく受信されていない場合には、送信側装置1からパケットを再転送する((3))ような再送制御方式に関するものである。
【0002】
パケットの再送制御方式には、Stop and Wait ARQ(Automatic Repeat Request)、Go−back−n ARQ、Selective Repeat ARQがあるが、本発明が対象としているのは、そのうち最もよく用いられるGo−back−n ARQ方式に関するものである。
【0003】
【従来の技術】
この種のシステムとしては、送信バッファや再送バッファをFIFO(First In First Out)により構成して、高速かつ簡単な制御で再送する方式が知られている(特許文献1参照)。
【0004】
ここでは、前述したGo−back−n ARQ方式について説明する。Go−back−n ARQ方式は、おのおののパケットに対する受信確認を待たずに次のパケットを送り出す方式である。この方式では、受信側からの受信確認を待たずに送ることのできるパケットの数をn個以下と決め、n個送信しても受信確認が来ない場合には、n個前のパケットから再転送を行なう方式である。
【0005】
図9はGo−back−n ARQ方式の説明図である。図に示すように、受信確認が来る毎に受信確認を待たずに送ることのできるパケットの範囲(ウィンドウ)がスライドしていくので、スライディングウィンドウARQとも呼ばれ、nはウィンドウサイズとも呼ばれる。送信側装置1から送信パケットがn個受信側装置2に向けて転送される。受信側装置2からは、受信確認パケットが返されるが、この返送の仕組みに特徴がある。
【0006】
送信したパケットに対して受信確認パケットが戻ってきたかどうかを判定するために、送信するパケットにはシーケンス番号を付加し、受信側から送り返す受信確認パケットには、送信したパケットのシーケンス番号に1を加えた番号を付加する。送信側装置1では、受信側装置2からのシーケンス番号を受信側装置2が次に要求しているパケットのシーケンス番号であると認識し、そのシーケンス番号−1までは受信が行なわれたと解釈する。
【0007】
送信側装置1から送信できるパケットの数は、受信したシーケンス番号のパケットから、受信したシーケンス番号+n−1までのパケットのn個である。この方式は、受信確認が得られなければ次のパケットが送信できないStop and Wait方式に比較して高い転送効率が得られる。また、受信確認が得られなかったパケットだけを再送するSelective Repeat方式に比較して実現が容易であるため、パケット通信を行なうシステムで広く用いられている。
【0008】
Go−back−n ARQ方式では、既に送信済みの複数のパケットを常に送信側装置1で保持しておき、受信確認が送信側装置1で得られた時点で初めて送信側装置1では、パケットの保持をしないで済むようになる。このような仕組みを実現するためには、通常はメモリ上にリングバッファを構成し、CPUがリングバッファを管理、制御して実現する方法が一般的である。しかしながら、このような方法は、CPUによりリングバッファの複雑な管理を行なわなければならない。
【0009】
図10は送信要求キューのCPU管理による再転送機構の説明図である。図に示すシステムは、メモリ内にあるパケットデータをネットワークに送信するシステムを示している。このようなシステムは、ネットワークカード内部や、計算機内部によく見られる形態である。図において、10はCPU、11は該CPU10と接続されたCPUバス、12は該CPUバス11と接続されたI/Oバスブリッジ、13は該I/Oバスブリッジ12と接続されたメモリバス、14は該メモリバス13と接続されたメモリである。15はI/Oバスブリッジ12と接続されたI/Oバス、16は該I/Oバスと接続されたネットワークインターフェースである。I/Oバスブリッジ12において、20はパケットデータのDMA転送を行なうためのDMAエンジンである。メモリ14において、30は送信要求キューが記憶されるリングバッファ、31はパケットである。図の太い実線はパケットデータの流れを示している。
【0010】
送信要求キューの詳細図を同図に示している。送信要求キューは、前述したようにリングバッファ30で構成されている。そして、その内部には送信要求が書き込まれて記憶されるようになっている。送信要求には、受信確認済みのものと、送信済みのものと、まだ送信されていないものとがある。P1は未受信確認ポインタ、P2は要求読出しポインタ、P3は要求書き込みポインタである。図中、I/Oバスブリッジ12は、CPUバス11、メモリバス13、I/Oバス15を接続し、各バス間のデータ転送を可能にしている。また、DMAエンジン20は、CPU10によらないメモリ14とI/Oバス15間のバス転送を可能にしている。
【0011】
CPU10は、パケットのメモリアドレスを含んだ送信要求をリングバッファ30で構成された送信要求キューに入れる。そして、DMAエンジン20に対して要求読出しポインタP2を設定する。DMAエンジン20は、要求読出しポインタP2で示されたリングバッファ30のエントリから送信要求を読み出し、送信要求に含まれているパケットへのポインタやサイズを認識する。そして、認識されたポインタで示されるメモリアドレスからパケットを読み出し、ネットワークインターフェース16に向けてパケットを転送する。CPU10は、リングバッファ30への送信要求書き込みの際には書き込みポインタP3を更新する必要がある。一方、読み出しポインタP2は通常DMAエンジン20が更新する。
【0012】
このように構成されたシステムにおいて、再転送が必要な場合には、CPU10はDMAエンジン20に対してリングバッファ30から読み出すエントリを既に読んだエントリに設定しなおし、DMAエンジン20を起動する必要がある。再転送に必要な送信要求を保持しておくために、CPU10が新たな送信要求をリングバッファ30に書き込む際には、受信確認されていない送信要求を上書きしないようにしなければならない。
【0013】
このためには、受信確認されていない送信要求がどこまでかを示すリングバッファのポインタ(図の未受信確認ポインタP1)を用意し、受信確認がなされたら、このポインタを更新するような制御が必要となる。
【0014】
【特許文献1】
特開2000−151623号公報
【0015】
【発明が解決しようとする課題】
CPU10は、リングバッファ30の管理だけでこれらの複雑な制御を行なう必要があり、更には送信してから一定時間内に受信確認が得られない場合には、再転送をしたり(タイムアウト)、受信パケットの中を解析してシーケンス番号を取り出すような処理も必要であることから、制御のためのオーバヘッドでパケットの転送性能が限られてしまう場合がある。また、キューをメモリ14上に構成することで、パケットデータのDMAとキューへのアクセスが競合し、この点も性能低下の原因となっている。
【0016】
本発明は前述した問題点(CPUの過渡な制御負荷)を減少させることにある。CPUの制御の簡略化を実現する方法としては、キューをメモリ上に構成する代わりにFIFOで構成し、CPUがポインタの制御をしないで済むようにする方法がある。しかしながら、送信要求キューを単純にFIFO化した場合、FIFOは読み出したデータを必要に応じて再度読むことができないため、単純には再転送を実現することができなくなってしまう。
【0017】
本発明はこのような課題に鑑みてなされたものであって、パケットデータの再送制御を簡略化することができるパケット再送制御装置を提供することを目的としている。
【0018】
【課題を解決するための手段】
本発明で課題を解決するための基本的な考えは、送信済みのパケットに対する送信要求を保存しておく専用の再転送用FIFOを設け、送信要求キューから送信要求を読み出すと同時に、前記再転送用のFIFOに要求を保存しておくことである。このようにすることで、再転送時に必要な送信要求を取り出せるようにすることができる。また、FIFOを用いることで、CPUはリングバッファポインタを管理する必要がなくなるので処理が簡略化される。
【0019】
更に、再転送用のFIFOに入れることのできる送信要求数を送信ウィンドウサイズにすることで、再転送が必要な条件を、再転送用FIFOが一杯かどうかで判断できるようになる。また、再転送用のFIFOにタイムスタンプを入れておき、再転送用FIFOの先頭のタイムスタンプとタイマとを比較することにより、送信済みパケットのタイムアウトを簡単に検出することが可能となる。
(1)図1は本発明の原理ブロック図である。図10と同一のものは、同一の符号を付して示す。図において、10はCPU、11はCPUバス、12はI/Oバスブリッジ、13はメモリバス、14はメモリ、15はI/Oバス、16はネットワークインターフェース、31はメモリ14に格納されているパケットである。
【0020】
I/Oバスブリッジ12において、20はDMA転送を行なうDMAエンジン、35は送信待ちキュー、36は転送済みのパケットに対する送信要求を蓄積する再送用FIFOである。送信要求キュー35の出力は再送用FIFO36に入力されており、送信要求キュー35の出力と、再送用FIFO36の出力は、共にDMAエンジン20と接続されている。
【0021】
このように構成すれば、CPU10は再転送が必要な場合には、再送用FIFO36から送信要求を読み出すようにDMAエンジン20に指示することで、パケットデータの再転送が可能となり、メモリ上にリングバッファを設けるのに比較して送信要求の取り出しや再送制御が簡単になる。
(2)請求項2記載の発明は、前記再送用FIFOにおいて、該再送用FIFOからの送信要求の読み出しと同時に送信要求を再送用FIFOに入力する回路を設けることを特徴とする。
【0022】
このように構成すれば、再転送したパケットを更に再転送することができ、データ転送の信頼性を更に向上させることができる。
(3)請求項3記載の発明は、前記送信要求を蓄積する送信要求FIFOを備え、送信要求FIFOの読み出しを行なうと同時に、読み出した送信要求を再送用FIFOに入力する手段を設けることを特徴とする。
【0023】
このように構成すれば、送信要求キューをFIFOで実現することにより、CPUの負担が減り、パケットデータの再転送が可能となり、メモリ上にリングバッファを設けるのに比較して送信要求の取り出しや再送制御が簡単になる。
(4)請求項4記載の発明は、前記送信要求の中に送信シーケンス番号を含んだ装置において、受信側からの受信確認シーケンス番号を格納するレジスタと、このレジスタの値と再送用FIFOの先頭の送信要求にあるシーケンス番号を比較する回路とを備え、比較の結果、再送用FIFOの先頭の送信要求シーケンス番号が受信確認シーケンス番号より小さいならば廃棄を繰り返す手段を設けることを特徴とする。
【0024】
このように構成すれば、受信確認済みの送信要求を自動的に再送用FIFOから廃棄することが可能となる。
(5)請求項5記載の発明は、送信ウィンドウサイズを設定するレジスタと、再送用FIFOに送信要求の書き込みを行なうとカウントアップし、読み出しを行なうとカウントダウンするカウンタと、カウンタの値で示される再送用FIFO内の送信要求数と送信ウィンドウサイズを比較する比較回路とを備え、前記再送用FIFO内の送信要求が送信ウィンドウサイズレジスタの値よりも小さい場合にだけ送信要求の実行を許可する信号を出し、また再送用FIFO内の送信要求数が送信ウィンドウサイズと同じ場合に再送の開始指示を出す手段を設けることを特徴とする。
【0025】
このように構成すれば、送信要求の実行と再送の実行とを切り分けてパケットの転送を確実に行なうことが可能となる。
【0026】
この発明において、前記再送用FIFOからポインタが読まれる毎にカウントアップするカウンタを備え、再転送の開始時にリセットしてからカウントアップを開始し、カウント値が送信ウィンドウサイズに達したら再転送の終了を指示する手段を設けることを特徴とする。
【0027】
このように構成すれば、カウンタを用いて再送用パケットの転送制御を確実に行なうことが可能となる。
【0028】
また、この発明において、前記受信確認シーケンス番号の格納レジスタにおいて、格納する値がレジスタの元の値よりも大きい場合に限りレジスタの値を更新する手段を設けることを特徴とする。
【0029】
このように構成すれば、受信確認シーケンス番号の最新の値を更新し、保持することが可能となる。
【0030】
また、この発明において、時間をカウントするタイマを備え、前記再送用FIFOに送信要求を投入した時刻を一緒に入れるようにしておき、再送用FIFOの先頭データの時刻と現在時刻とを比較して、予め決めた時間以上の時に再送要求信号を出す手段を設けることを特徴とする。
【0031】
このように構成すれば、タイムアウトの検出と再送処理の起動を容易に行なうことが可能となる。
【0032】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態例を詳細に説明する。
【0033】
先ず、図1に示した原理ブロック図について更に詳細に説明する。
【0034】
送信要求キュー35は、メモリ14内部のパケットのポインタを含む送信要求を格納しているキューである。このブロック図では、送信要求キュー35をI/Oバスブリッジ12の中に入れているが、CPU10とDMAエンジン20がアクセス可能なところであれば、どこでもよい。
【0035】
また、この送信要求キュー35は、リングバッファメモリ又はFIFOで実現することができるが、FIFOで実現する方がCPU10の制御が簡単になり好ましい。リングバッファを用いる場合には、制御の簡略化の効果が低い。送信要求キュー35にFIFOを用いた例の動作を以下に説明する。
【0036】
送信要求キュー35に、CPU10が送信要求を入れる。次に、CPU10がDMAエンジン20に対して送信FIFO35からの読み出しを指示すると、DMAエンジン20は送信FIFO35の送信要求を読み出してパケットデータの転送を開始する。
【0037】
送信要求キュー35としてFIFOを用いた場合、一旦送出された送信要求データは元には戻らない。この送信要求でパケットが転送されなかった場合、回復の手段がない。そこで、再送用FIFO36を用いて送信要求を保存しておくようにしたものである。
【0038】
該DMAエンジン20は、送信FIFO35からの送信要求を読み出すと同時に再送用FIFO36を制御し、読み出した送信要求を再送用FIFO36に書き込む。再転送が必要な場合には、CPU10は再送用FIFO36から送信要求を読み出すようにDMAエンジン20に指示する。この結果、DMAエンジン20は再送用FIFO36からの出力を基に、パケット31を探索し、ネットワークインターフェース16を介してネットワークに送出する。
【0039】
更に、再転送の条件判定と再送起動指示を行なうことで、CPU10の関与なしで自動的にパケットの再送を行なうことが可能になる。このような構成により、メモリ上にリングバッファを設ける従来の装置に比較して、送信要求の取り出しや再送制御を簡単に行なうことが可能となる。
【0040】
図2は本発明の第1の実施の形態例を示すブロック図である。図1と同一のものは、同一の符号を付して示す。図1の構成と異なる点は、再送用FIFO36の出力を入力側に戻すループ38を設けた点である。その他の構成は、図1と同じである。
【0041】
図1に示す再送用FIFO36を備えただけでは、再転送したパケットに対して更に再転送するような場合には対応できない。そこで、再転送を繰り返せるようにするため、再送用FIFO36から送信要求を読み出す際に、当該要求を再度再送用FIFO36に入力できるようにするためのループ38を設ける。具体的には、再送用FIFO36の出力と入力とをループ38で結び、再送用FIFO36からの読み出し信号の制御と同時に書き込み用信号の制御を行なって、読み込んだデータをもう一度再送用FIFO36に入れるように、DMAエンジン20が制御するようにする。
【0042】
このように構成すれば、再転送したパケットを更に再転送することができ、データ転送の信頼性を更に向上させることができる。
【0043】
本発明によれば、前述した送信要求キュー35を前述したようにFIFOで構成することもできる。このようにすれば、CPUの負担が減り、パケットデータの再転送が可能となり、メモリ上にリングバッファを設けるのに比較して送信要求の取り出しや再送制御が簡単になる。
【0044】
図3は本発明の第2の実施の形態例を示すブロック図である。図2と同一のものは、同一の符号を付して示す。図において、12はI/Oバスブリッジ、20はDMAエンジン、36は再送用FIFOである。40は受信確認がとれた送信要求を廃棄する受信確認済送信要求廃棄装置である。41は受信確認がとれたシーケンス番号を格納する受信確認シーケンス番号格納レジスタ、42は送信要求のシーケンス番号と受信確認シーケンス番号格納レジスタ41に格納されているシーケンス番号とを比較する比較器、43は該比較器42の出力を受けて、再送用FIFO36の読み捨て指示を行なうFIFO制御回路である。受信確認シーケンス番号格納レジスタ41と、比較器42と、FIFO制御回路43は、受信確認済送信要求廃棄装置40に含まれる。このように構成された装置の動作を説明すれば、以下の通りである。
【0045】
受信が確認されたパケットの送信要求は再送用FIFO36から取り除く必要がある。この実施の形態例では、この処理をCPUによらずに自動化している。比較器42は、受信確認シーケンス番号格納レジスタ41に記憶されている受信確認シーケンス番号と、再送用FIFO36の先頭の送信要求にあるシーケンス番号を比較する。
【0046】
そして、比較の結果、再送用FIFO36の先頭の送信要求シーケンス番号が受信確認シーケンス番号よりも小さいならば、FIFO制御回路43を駆動して再送用FIFO36に記憶されている送信要求を廃棄する。再送用FIFO36のシーケンス場号が受信確認シーケンス番号格納レジスタ41に記憶されているシーケンス番号よりも小さいということは、既に受信確認済みの送信要求がFIFOの中に含まれていることになるので、この不要な送信要求をFIFO制御回路43により廃棄するものである。
【0047】
このように構成すれば、受信確認済みの送信要求を自動的に再送用FIFOから廃棄することが可能となる。
【0048】
図4は本発明の第3の実施の形態例を示すブロック図である。図3と同一のものは、同一の符号を付して示す。図において、12はI/Oバスブリッジ、20はDMAエンジン、35は送信要求キュー、36は再送用FIFOである。50は送信と再転送制御をDMAエンジン20に対して指示する送信・再転送制御回路である。
【0049】
該送信・再転送制御回路50において、51はDMAエンジン20からの指示によりウィンドウの幅(サイズ)を指定するウィンドウ指定レジスタ、53は再送用FIFO内の送信要求数をカウントする再送用FIFO内送信要求数カウンタ、52はウィンドウ指定レジスタ51の値と再送用FIFO内送信要求数を比較する比較器である。
【0050】
再送用FIFO内送信要求数カウンタ53は、再送用FIFO36内の送信要求を書き込む毎に1だけカウントアップし、送信要求を読み出す毎に1だけカウントダウンする。送信・再転送制御回路50は、該比較器52の比較結果により、DMAエンジン20の送信と再転送の制御を行なう。ウィンドウ指定レジスタ51と、比較器52と、再送用FIFO内送信要求数カウンタ53は、送信・再転送制御回路50に含まれる。このように構成された装置の動作を制御すれば、以下の通りである。
【0051】
装置の動作中において、送信・再転送制御回路50は、送信要求数が送信ウィンドウサイズ未満の場合には、送信要求に余裕があることになるので、DMAエンジン20に対して送信要求の読み出しを許可する信号を出す。DMAエンジン20は、この信号を見て許可がある時だけ送信要求キュー35からの読み出しを行なう。
【0052】
送信ウィンドウサイズと再送用FIFO36内の送信要求数が同じ場合には、DMAエンジン20に対して再転送要求信号を出し、再送用FIFO36を先頭から読み出して、再転送を行なうようにする。再転送の終了は、後述の再転送終了自動判定回路で判断する。
【0053】
この実施の形態例によれば、送信要求の実行と、再送の実行とを切り分けて確実にパケット転送を行なうことができる。
【0054】
図5は本発明の第4の実施の形態例を示すブロック図である。図3、図4と同一のものは、同一の符号を付して示す。図において、12はI/Oバスブリッジ、20はDMAエンジン、35は送信要求キュー、36は再送用FIFO、40は受信確認済送信要求廃棄装置、50は送信・再転送制御回路、51はウィンドウの幅(サイズ)を設定するウィンドウ指定レジスタである。
【0055】
60は再転送終了を自動的に判定する再転送終了自動判定回路である。該再転送自動判定回路60において、61は再送用FIFO36の読み出し数をカウントする再送用FIFO読み出しカウンタ、62は該再送用FIFO読み出しカウンタ61の値とウィンドウ指定レジスタ51の値(ウィンドウ数)を比較する比較器である。このように構成された装置の動作を説明すれば、以下の通りである。
【0056】
再送用FIFO読み出しカウンタ61は、当初はリセットされており、再送用FIFO36からの読み出しを行なう毎にカウントを行なっている。再送用FIFO36内にある送信要求数がウィンドウサイズ(図4で示す再送用FIFO内送信要求数カウンタ53)を超えるまで、再転送中であることを示す信号を受信確認済送信要求廃棄装置40とDMAエンジン20に与え、受信確認済みの送信要求の廃棄を禁止する。それと同時に、再転送中にはDMAエンジン20が送信要求キュー35から送信要求を読み出すことを禁止する。具体的には、再送用FIFO36内にある送信要求数がウィンドウサイズを超えるかどうかは比較器62にて行なっている。そして、該比較器62は、受信確認済送信要求廃棄装置40とDMAエンジン20に制御信号を送り、前述したように、受信確認済みの送信要求の廃棄と、送信要求の読み出しとを禁止する。
【0057】
この実施の形態例によれば、カウンタを用いて再送用パケットの転送制御を確実に行なうことが可能となる。
【0058】
図6は受信確認シーケンス番号蓄積装置の一実施の形態例を示すブロック図である。図において、70が受信確認シーケンス番号蓄積装置である。該受信確認シーケンス番号蓄積装置70は、I/Oバスブリッジ12内に設けられる(図5参照)。該受信確認シーケンス番号蓄積装置70において、71は受信確認シーケンス番号を格納する受信確認シーケンス番号格納レジスタ、72は受信確認シーケンス番号を受けて、受信確認シーケンス番号格納レジスタ71と比較し、比較結果に応じて更新を行なう比較・更新回路である。
【0059】
このように構成された回路において、比較・更新回路72が入力の受信確認シーケンス番号を受信確認シーケンス番号格納レジスタ71の値と比較し、既にレジスタ71に登録されているものより大きい場合にのみ、受信シーケンス番号を更新する。そして、空読みができない間に到着した受信確認シーケンス番号を蓄積し、更新する。即ち、この実施の形態例では、受信確認シーケンス番号が受信確認シーケンス番号格納レジスタ71の値よりも大きい場合には、既に受信確認シーケンス番号格納レジスタに記憶されている受信確認シーケンス番号は既に受信確認が終了しているものと考えられるので、この受信確認シーケンス番号格納レジスタ71を入力されてくる新しいシーケンス番号で更新するようにしたものである。
【0060】
この実施の形態例によれば、受信確認シーケンス番号の最新の値を更新し、保持することが可能となる。
【0061】
図7は本発明の第5の実施の形態例を示すブロック図である。図5と同一のものは、同一の符号を付して示す。図において、20はDMAエンジン、35は送信要求キュー、36は再送用FIFOである。80はタイムアウトを検出するタイムアウト検出装置である。
【0062】
該タイムアウト検出装置80において、81は2つの値の差を計算する減算器、82は時間をカウントするタイマ、83はタイマ82のタイムアウトの時間を指定するタイムアウト時間指定レジスタである。該タイムアウト時間指定レジスタ83には、タイムアウト時間を任意に設定することができるようになっている。このように構成された装置の動作を説明すれば、以下の通りである。
【0063】
再送用FIFO36に送信要求を入力する際に、タイマ82からの時刻情報を読み出してタイムスタンプを同時に入力するようにする。そして、減算器81は、タイマ82の値から、再送用FIFO36の先頭のタイムスタンプの値を減算し、その結果を求める。
【0064】
ここで、前記時刻差がタイムアウト時間指定レジスタ83の値より大きくなれば、パケットの送信がうまくいかなかったものと判断し、DMAエンジン20に対して再転送指示を出す。この指示を受けて、DMAエンジン20は、再送用FIFO36の送信要求を読み出して、パケットの再送を行なう。
【0065】
この実施の形態例によれば、タイムアウトの検出と、再送処理の起動を容易に行なうことが可能となる。
【0066】
このように、本発明によれば、Go−back−n ARQ方式をメモリ上にリングバッファを構成し、複雑なポインタ制御を行なうことなしに、簡単なFIFO制御でパケット転送を実現することができ、処理能力を向上させることができる。
【0067】
(付記1) メモリ上のパケットへのポインタを含んだ送信要求に従ってパケットをネットワークに転送するパケット送信装置において、
転送済みのパケットに対する送信要求を蓄積する再送用FIFOを備え、
再送が必要な時にこの再送用FIFOの送信要求を用いて再転送を行なう手段を設けることを特徴とするパケット再送制御装置。
【0068】
(付記2) 前記再送用FIFOにおいて、該再送用FIFOからの送信要求の読み出しと同時に送信要求を再送用FIFOに入力する回路
を設けることを特徴とする付記1記載のパケット再送制御装置。
【0069】
(付記3) 前記送信要求を蓄積する送信要求FIFOを備え、
送信要求FIFOの読み出しを行なうと同時に、読み出した送信要求を再送用FIFOに入力する手段
を設けることを特徴とする付記1又は2の何れかに記載のパケット再送制御装置。
【0070】
(付記4) 前記送信要求の中に送信シーケンス番号を含んだ装置において、受信側からの受信確認シーケンス番号を格納するレジスタと、
このレジスタの値と再送用FIFOの先頭の送信要求にあるシーケンス番号を比較する回路とを備え、
比較の結果、再送用FIFOの先頭の送信要求シーケンス番号が受信確認シーケンス番号より小さいならば廃棄を繰り返す手段
を設けることを特徴とする付記1乃至3の何れかに記載のパケット再送制御装置。
【0071】
(付記5) 送信ウィンドウサイズを設定するレジスタと、再送用FIFOに送信要求の書き込みを行なうとカウントアップし、読み出しを行なうとカウントダウンするカウンタと、
カウンタの値で示される再送用FIFO内の送信要求数と送信ウィンドウサイズを比較する比較回路とを備え、
前記再送用FIFO内の送信要求が送信ウィンドウサイズレジスタの値よりも小さい場合にだけ送信要求の実行を許可する信号を出し、また再送用FIFO内の送信要求数が送信ウィンドウサイズと同じ場合に再送の開始指示を出す手段
を設けることを特徴とする付記1乃至3の何れかに記載のパケット再送制御装置。
【0072】
(付記6) 前記再送用FIFOからポインタが読まれる毎にカウントアップするカウンタを備え、
再転送の開始時にリセットしてからカウントアップを開始し、カウント値が送信ウィンドウサイズに達したら再転送の終了を指示する手段
を設けることを特徴とする付記2又は3の何れかに記載のパケット再送制御装置。
【0073】
(付記7) 前記受信確認シーケンス番号の格納レジスタにおいて、格納する値がレジスタの元の値よりも大きい場合に限りレジスタの値を更新する手段を設けることを特徴とする付記4記載のパケット再送制御装置。
【0074】
(付記8) 時間をカウントするタイマを備え、
前記再送用FIFOに送信要求を投入した時刻を一緒に入れるようにしておき、再送用FIFOの先頭データの時刻と現在時刻とを比較して、予め決めた時間以上の時に再送要求信号を出す手段
を設けることを特徴とする付記1乃至3の何れかに記載のパケット再送制御装置。
【0075】
【発明の効果】
以上説明したように、本発明によれば、以下の効果が得られる。
(1)請求項1記載の発明によれば、CPUは再転送が必要な場合には、再送用FIFOから送信要求を読み出すようにDMAエンジンに指示することで、パケットデータの再転送が可能となり、メモリ上にリングバッファを設けるのに比較して送信要求の取り出しや再送制御が簡単になる。
(2)請求項2記載の発明によれば、再転送したパケットを更に再転送することができ、データ転送の信頼性を更に向上させることができる。
(3)請求項3記載の発明によれば、送信要求キューをFIFOで実現することにより、CPUの負担が減り、パケットデータの再転送が可能となり、メモリ上にリングバッファを設けるのに比較して送信要求の取り出しや再送制御が簡単になる。
(4)請求項4記載の発明によれば、受信確認済みの送信要求を自動的に再送用FIFOから廃棄することが可能となる。
(5)請求項5記載の発明によれば、送信要求の実行と再送の実行とを切り分けてパケットの転送を確実に行なうことが可能となる。
【0076】
このように、本発明によれば、パケットデータの再送制御を簡略化することができるパケット再送制御装置を提供することができる。
【図面の簡単な説明】
【図1】本発明の原理ブロック図である。
【図2】本発明の第1の実施の形態例を示すブロック図である。
【図3】本発明の第2の実施の形態例を示すブロック図である。
【図4】本発明の第3の実施の形態例を示すブロック図である。
【図5】本発明の第4の実施の形態例を示すブロック図である。
【図6】受信確認シーケンス番号蓄積装置の一実施の形態例を示すブロック図である。
【図7】本発明の第5の実施の形態例を示すブロック図である。
【図8】再送制御方式の概念図である。
【図9】Go−back−n ARQ方式の説明図である。
【図10】送信要求キューのCPU管理による再転送機構の説明図である。
【符号の説明】
10 CPU
11 CPUバス
12 I/Oバスブリッジ
13 メモリバス
14 メモリ
15 I/Oバス
16 ネットワークインターフェース
20 DMAエンジン
35 送信要求キュー
36 再送用FIFO
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a packet retransmission control device. The present invention relates to a packet communication device having reliability. As shown in FIG. 8, a packet is transmitted from a transmitting device 1 to a receiving device 2 ((1)). , A reception confirmation is issued from the reception-side apparatus 2 ((2)), and the transmission-side apparatus 1 checks the reception confirmation. If the reception is not correctly received, the packet is transmitted from the transmission-side apparatus 1 again. This is related to a retransmission control method for transferring ((3)).
[0002]
The packet retransmission control method includes Stop and Wait ARQ (Automatic Repeat Request), Go-back-n ARQ, and Selective Repeat ARQ. n ARQ scheme.
[0003]
[Prior art]
As this type of system, there is known a system in which a transmission buffer and a retransmission buffer are configured by FIFO (First In First Out) and retransmission is performed with high speed and simple control (see Patent Document 1).
[0004]
Here, the above-described Go-back-n ARQ scheme will be described. The Go-back-n ARQ scheme is a scheme for sending out the next packet without waiting for reception confirmation for each packet. In this method, the number of packets that can be sent without waiting for a reception confirmation from the receiving side is determined to be n or less. This is a method for performing transfer.
[0005]
FIG. 9 is an explanatory diagram of the Go-back-n ARQ scheme. As shown in the figure, the range (window) of a packet that can be sent without waiting for the reception acknowledgment slides each time the reception acknowledgment is received. The transmitting device 1 transfers n transmission packets to the receiving device 2. The reception side device 2 returns a reception confirmation packet, which is characterized by the mechanism of this return.
[0006]
In order to determine whether the acknowledgment packet has returned for the transmitted packet, a sequence number is added to the packet to be transmitted, and 1 is added to the sequence number of the transmitted packet in the acknowledgment packet sent back from the receiving side. Add the added number. The transmitting device 1 recognizes the sequence number from the receiving device 2 as the sequence number of the packet requested next by the receiving device 2, and interprets that the sequence number -1 has been received. .
[0007]
The number of packets that can be transmitted from the transmitting device 1 is n packets from the received sequence number packet to the received sequence number + n−1. In this method, higher transfer efficiency can be obtained as compared with the Stop and Wait method in which the next packet cannot be transmitted unless reception confirmation is obtained. Further, since it is easier to realize than the Selective Repeat method of retransmitting only packets for which reception confirmation has not been obtained, it is widely used in a system for performing packet communication.
[0008]
In the Go-back-n ARQ scheme, a plurality of packets that have already been transmitted are always held in the transmitting device 1, and only when a confirmation of reception is obtained in the transmitting device 1 does the transmitting device 1 You do not have to keep it. In order to realize such a mechanism, it is general to form a ring buffer on a memory, and the CPU manages and controls the ring buffer. However, such a method requires complicated management of the ring buffer by the CPU.
[0009]
FIG. 10 is an explanatory diagram of a retransfer mechanism based on CPU management of a transmission request queue. The system shown in the figure shows a system for transmitting packet data in a memory to a network. Such a system is a form often seen inside a network card or inside a computer. In the figure, 10 is a CPU, 11 is a CPU bus connected to the CPU 10, 12 is an I / O bus bridge connected to the CPU bus 11, 13 is a memory bus connected to the I / O bus bridge 12, Reference numeral 14 denotes a memory connected to the memory bus 13. Reference numeral 15 denotes an I / O bus connected to the I / O bus bridge 12, and reference numeral 16 denotes a network interface connected to the I / O bus. In the I / O bus bridge 12, reference numeral 20 denotes a DMA engine for performing DMA transfer of packet data. In the memory 14, 30 is a ring buffer in which a transmission request queue is stored, and 31 is a packet. The thick solid line in the figure indicates the flow of packet data.
[0010]
A detailed diagram of the transmission request queue is shown in FIG. The transmission request queue includes the ring buffer 30 as described above. The transmission request is written and stored therein. Transmission requests include those that have been acknowledged, those that have been transmitted, and those that have not been transmitted. P1 is a non-reception confirmation pointer, P2 is a request read pointer, and P3 is a request write pointer. In the figure, an I / O bus bridge 12 connects a CPU bus 11, a memory bus 13, and an I / O bus 15, and enables data transfer between the buses. Further, the DMA engine 20 enables bus transfer between the memory 14 and the I / O bus 15 without using the CPU 10.
[0011]
The CPU 10 places a transmission request including the memory address of the packet in a transmission request queue formed by the ring buffer 30. Then, a request read pointer P2 is set for the DMA engine 20. The DMA engine 20 reads a transmission request from the entry of the ring buffer 30 indicated by the request read pointer P2, and recognizes a pointer to a packet and a size included in the transmission request. Then, the packet is read from the memory address indicated by the recognized pointer, and the packet is transferred to the network interface 16. The CPU 10 needs to update the write pointer P3 when writing the transmission request to the ring buffer 30. On the other hand, the read pointer P2 is normally updated by the DMA engine 20.
[0012]
In the system configured as described above, when re-transfer is necessary, the CPU 10 needs to reset the entry read from the ring buffer 30 to the already read entry for the DMA engine 20 and activate the DMA engine 20. is there. When the CPU 10 writes a new transmission request to the ring buffer 30 in order to hold a transmission request required for retransmission, it is necessary to prevent a transmission request that has not been acknowledged from being overwritten.
[0013]
For this purpose, it is necessary to prepare a ring buffer pointer (non-reception acknowledgment pointer P1 in the figure) indicating the number of transmission requests that have not been acknowledged, and to update the pointer when reception is acknowledged. It becomes.
[0014]
[Patent Document 1]
JP 2000-151623 A
[0015]
[Problems to be solved by the invention]
It is necessary for the CPU 10 to perform these complicated controls only by managing the ring buffer 30. Further, if the reception confirmation cannot be obtained within a predetermined time after the transmission, the CPU 10 performs retransmission (timeout), Since a process of extracting a sequence number by analyzing a received packet is also necessary, the transfer performance of the packet may be limited due to overhead for control. Also, by configuring the queue on the memory 14, contention between the DMA of the packet data and the access to the queue conflicts, which also causes a decrease in performance.
[0016]
An object of the present invention is to reduce the above-mentioned problem (transient control load of a CPU). As a method of realizing the simplification of the control of the CPU, there is a method in which the queue is configured by a FIFO instead of the memory, so that the CPU does not need to control the pointer. However, if the transmission request queue is simply converted to a FIFO, the FIFO cannot read the read data again as needed, so that simply retransmission cannot be realized.
[0017]
The present invention has been made in view of such a problem, and has as its object to provide a packet retransmission control device capable of simplifying retransmission control of packet data.
[0018]
[Means for Solving the Problems]
The basic idea for solving the problem in the present invention is to provide a dedicated retransmission FIFO for storing a transmission request for a transmitted packet, read the transmission request from a transmission request queue, and simultaneously execute the retransmission The requirement is to store the request in the FIFO. By doing so, it is possible to take out a necessary transmission request at the time of retransmission. Further, by using the FIFO, the CPU does not need to manage the ring buffer pointer, so that the processing is simplified.
[0019]
Further, by setting the number of transmission requests that can be stored in the retransmission FIFO to the transmission window size, it is possible to determine a condition that requires retransmission based on whether the retransmission FIFO is full. In addition, it is possible to easily detect a timeout of a transmitted packet by inserting a time stamp into the retransmission FIFO and comparing the time stamp at the head of the retransmission FIFO with the timer.
(1) FIG. 1 is a principle block diagram of the present invention. The same components as those in FIG. 10 are denoted by the same reference numerals. In the figure, 10 is a CPU, 11 is a CPU bus, 12 is an I / O bus bridge, 13 is a memory bus, 14 is a memory, 15 is an I / O bus, 16 is a network interface, and 31 is stored in the memory 14. Packet.
[0020]
In the I / O bus bridge 12, reference numeral 20 denotes a DMA engine for performing DMA transfer, reference numeral 35 denotes a transmission waiting queue, and reference numeral 36 denotes a retransmission FIFO for storing transmission requests for transferred packets. The output of the transmission request queue 35 is input to the retransmission FIFO 36, and the output of the transmission request queue 35 and the output of the retransmission FIFO 36 are both connected to the DMA engine 20.
[0021]
With this configuration, when retransmission is necessary, the CPU 10 instructs the DMA engine 20 to read the transmission request from the retransmission FIFO 36, thereby enabling the packet data to be retransmitted. Extraction of a transmission request and retransmission control are simplified as compared with the provision of a buffer.
(2) The invention according to claim 2 is characterized in that the retransmission FIFO is provided with a circuit for inputting the transmission request to the retransmission FIFO at the same time as reading the transmission request from the retransmission FIFO.
[0022]
With this configuration, the retransmitted packet can be further retransmitted, and the reliability of data transfer can be further improved.
(3) The invention according to claim 3 is characterized by comprising a transmission request FIFO for storing the transmission request, and a means for reading the transmission request FIFO and inputting the read transmission request to the retransmission FIFO. And
[0023]
With this configuration, the transmission request queue is realized by the FIFO, so that the load on the CPU is reduced and the packet data can be retransmitted. Retransmission control is simplified.
(4) The invention according to claim 4, wherein in the apparatus in which the transmission request includes a transmission sequence number, a register for storing a reception acknowledgment sequence number from a receiving side, a value of this register and a head of a retransmission FIFO. And a means for repeating discarding if the comparison result indicates that the first transmission request sequence number of the retransmission FIFO is smaller than the reception confirmation sequence number.
[0024]
With this configuration, it is possible to automatically discard the transmission request whose reception has been confirmed from the retransmission FIFO.
(5) The invention according to claim 5 is represented by a register that sets a transmission window size, a counter that counts up when a transmission request is written to a retransmission FIFO and counts down when a transmission request is read, and a value of the counter. A comparison circuit for comparing the number of transmission requests in the retransmission FIFO with the transmission window size, and a signal permitting execution of the transmission request only when the transmission request in the retransmission FIFO is smaller than the value of the transmission window size register And a means for issuing a retransmission start instruction when the number of transmission requests in the retransmission FIFO is equal to the transmission window size.
[0025]
With this configuration, it is possible to reliably perform the packet transfer by separating the execution of the transmission request from the execution of the retransmission.
[0026]
In the present invention, a counter is provided which counts up each time a pointer is read from the retransmission FIFO, resets at the start of retransmission, starts counting, and terminates retransmission when the count value reaches the transmission window size. Is provided.
[0027]
With this configuration, it is possible to reliably perform the transfer control of the retransmission packet using the counter.
[0028]
Further, in the present invention, in the storage register of the reception confirmation sequence number, there is provided means for updating the value of the register only when the value to be stored is larger than the original value of the register.
[0029]
With this configuration, it is possible to update and hold the latest value of the reception confirmation sequence number.
[0030]
Further, in the present invention, a timer for counting a time is provided, and the time at which the transmission request is input to the retransmission FIFO is also included, and the time of the head data of the retransmission FIFO is compared with the current time. Means for issuing a retransmission request signal at a time equal to or longer than a predetermined time.
[0031]
With such a configuration, it is possible to easily detect the timeout and start the retransmission processing.
[0032]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0033]
First, the principle block diagram shown in FIG. 1 will be described in more detail.
[0034]
The transmission request queue 35 is a queue that stores a transmission request including a pointer of a packet in the memory 14. In this block diagram, the transmission request queue 35 is placed in the I / O bus bridge 12, but may be located anywhere the CPU 10 and the DMA engine 20 can access.
[0035]
The transmission request queue 35 can be realized by a ring buffer memory or a FIFO. However, the transmission request queue 35 is preferably realized by a FIFO because the control of the CPU 10 is simplified. When a ring buffer is used, the effect of control simplification is low. The operation of an example using a FIFO for the transmission request queue 35 will be described below.
[0036]
The CPU 10 places a transmission request in the transmission request queue 35. Next, when the CPU 10 instructs the DMA engine 20 to read from the transmission FIFO 35, the DMA engine 20 reads a transmission request from the transmission FIFO 35 and starts transferring packet data.
[0037]
When the FIFO is used as the transmission request queue 35, the transmission request data once transmitted does not return to the original state. If the packet is not transferred by this transmission request, there is no recovery means. Therefore, the transmission request is stored using the retransmission FIFO 36.
[0038]
The DMA engine 20 reads the transmission request from the transmission FIFO 35 and simultaneously controls the retransmission FIFO 36, and writes the read transmission request to the retransmission FIFO 36. If retransmission is necessary, the CPU 10 instructs the DMA engine 20 to read the transmission request from the retransmission FIFO 36. As a result, the DMA engine 20 searches for the packet 31 based on the output from the retransmission FIFO 36 and sends it out to the network via the network interface 16.
[0039]
Further, by performing the retransmission condition determination and the retransmission activation instruction, the packet can be automatically retransmitted without the involvement of the CPU 10. With such a configuration, it is possible to easily perform transmission request extraction and retransmission control as compared with a conventional device in which a ring buffer is provided on a memory.
[0040]
FIG. 2 is a block diagram showing the first embodiment of the present invention. 1 are denoted by the same reference numerals. The difference from the configuration of FIG. 1 is that a loop 38 for returning the output of the retransmission FIFO 36 to the input side is provided. Other configurations are the same as those in FIG.
[0041]
The provision of the retransmission FIFO 36 shown in FIG. 1 alone cannot cope with the case where the retransmitted packet is further retransmitted. Therefore, in order to allow retransmission to be repeated, when reading a transmission request from the retransmission FIFO 36, a loop 38 is provided so that the request can be input to the retransmission FIFO 36 again. Specifically, the output and the input of the retransmission FIFO 36 are connected by a loop 38, the read signal from the retransmission FIFO 36 is controlled and the write signal is controlled at the same time, and the read data is again input to the retransmission FIFO 36. Next, the DMA engine 20 is controlled.
[0042]
With this configuration, the retransmitted packet can be further retransmitted, and the reliability of data transfer can be further improved.
[0043]
According to the present invention, the above-mentioned transmission request queue 35 can be constituted by a FIFO as described above. By doing so, the load on the CPU is reduced, packet data can be retransmitted, and transmission request extraction and retransmission control are simplified as compared with providing a ring buffer on a memory.
[0044]
FIG. 3 is a block diagram showing a second embodiment of the present invention. The same components as those in FIG. 2 are denoted by the same reference numerals. In the figure, 12 is an I / O bus bridge, 20 is a DMA engine, and 36 is a retransmission FIFO. Reference numeral 40 denotes a reception-confirmed transmission request discarding device that discards a transmission request whose reception has been confirmed. 41 is a reception confirmation sequence number storage register for storing the sequence number of which reception confirmation has been taken, 42 is a comparator for comparing the sequence number of the transmission request with the sequence number stored in the reception confirmation sequence number storage register 41, 43 is a comparator. A FIFO control circuit that receives the output of the comparator 42 and instructs the retransmission FIFO 36 to discard the data. The reception confirmation sequence number storage register 41, the comparator 42, and the FIFO control circuit 43 are included in the reception confirmation completed transmission request discarding device 40. The operation of the device configured as described above will be described below.
[0045]
It is necessary to remove the transmission request of the packet whose reception has been confirmed from the retransmission FIFO 36. In this embodiment, this processing is automated without using the CPU. The comparator 42 compares the reception confirmation sequence number stored in the reception confirmation sequence number storage register 41 with the sequence number in the first transmission request of the retransmission FIFO 36.
[0046]
As a result of the comparison, if the first transmission request sequence number of the retransmission FIFO 36 is smaller than the reception confirmation sequence number, the FIFO control circuit 43 is driven to discard the transmission request stored in the retransmission FIFO 36. The fact that the sequence number of the retransmission FIFO 36 is smaller than the sequence number stored in the reception confirmation sequence number storage register 41 means that the transmission request whose reception has already been confirmed is included in the FIFO. The unnecessary transmission request is discarded by the FIFO control circuit 43.
[0047]
With this configuration, it is possible to automatically discard the transmission request whose reception has been confirmed from the retransmission FIFO.
[0048]
FIG. 4 is a block diagram showing a third embodiment of the present invention. The same components as those in FIG. 3 are denoted by the same reference numerals. In the figure, 12 is an I / O bus bridge, 20 is a DMA engine, 35 is a transmission request queue, and 36 is a retransmission FIFO. A transmission / retransmission control circuit 50 instructs the DMA engine 20 to perform transmission and retransmission control.
[0049]
In the transmission / retransmission control circuit 50, reference numeral 51 denotes a window designation register for designating the width (size) of the window in accordance with an instruction from the DMA engine 20, and 53 denotes transmission in the retransmission FIFO for counting the number of transmission requests in the retransmission FIFO. A request number counter 52 is a comparator for comparing the value of the window designation register 51 with the number of transmission requests in the retransmission FIFO.
[0050]
The retransmission FIFO transmission request counter 53 counts up by one each time a transmission request in the retransmission FIFO 36 is written, and decrements by one each time a transmission request is read. The transmission / retransmission control circuit 50 controls the transmission and retransmission of the DMA engine 20 based on the comparison result of the comparator 52. The transmission / retransmission control circuit 50 includes a window designation register 51, a comparator 52, and a transmission request counter 53 in the retransmission FIFO. The operation of the device configured as described above is controlled as follows.
[0051]
During the operation of the device, the transmission / retransmission control circuit 50 causes the DMA engine 20 to read the transmission request if the number of transmission requests is smaller than the transmission window size, because the transmission request has a margin. Signals permission. The DMA engine 20 reads this signal from the transmission request queue 35 only when there is a permission to see this signal.
[0052]
If the transmission window size is the same as the number of transmission requests in the retransmission FIFO 36, a retransmission request signal is issued to the DMA engine 20, the retransmission FIFO 36 is read from the beginning, and retransmission is performed. The end of retransfer is determined by a retransfer end automatic determination circuit described later.
[0053]
According to this embodiment, the execution of the transmission request and the execution of the retransmission can be separated and the packet transfer can be reliably performed.
[0054]
FIG. 5 is a block diagram showing a fourth embodiment of the present invention. 3 and 4 are denoted by the same reference numerals. In the figure, 12 is an I / O bus bridge, 20 is a DMA engine, 35 is a transmission request queue, 36 is a retransmission FIFO, 40 is a reception confirmed transmission request discarding device, 50 is a transmission / retransmission control circuit, and 51 is a window. This is a window specification register for setting the width (size) of the window.
[0055]
Reference numeral 60 denotes an automatic retransfer end determination circuit that automatically determines the end of retransfer. In the retransmission automatic determination circuit 60, 61 is a retransmission FIFO read counter for counting the number of retransmission FIFOs 36 read out, and 62 is a comparison between the value of the retransmission FIFO read counter 61 and the value (window number) of the window designation register 51. This is a comparator. The operation of the device configured as described above will be described below.
[0056]
The retransmission FIFO read counter 61 is initially reset and counts each time data is read from the retransmission FIFO 36. Until the number of transmission requests in the retransmission FIFO 36 exceeds the window size (the number of transmission requests in the retransmission FIFO counter 53 shown in FIG. 4), the reception request transmission request discarding device 40 transmits a signal indicating that retransmission is in progress. This is given to the DMA engine 20 to prohibit the discard of the transmission request whose reception has been confirmed. At the same time, the DMA engine 20 is prohibited from reading out the transmission request from the transmission request queue 35 during the re-transfer. More specifically, the comparator 62 determines whether the number of transmission requests in the retransmission FIFO 36 exceeds the window size. Then, the comparator 62 sends a control signal to the reception-confirmed transmission request discarding device 40 and the DMA engine 20, and inhibits discarding of the transmission request whose reception has been confirmed and reading of the transmission request as described above.
[0057]
According to this embodiment, the transfer control of the retransmission packet can be reliably performed using the counter.
[0058]
FIG. 6 is a block diagram showing an embodiment of the reception confirmation sequence number storage device. In the figure, reference numeral 70 denotes a reception confirmation sequence number storage device. The reception confirmation sequence number storage device 70 is provided in the I / O bus bridge 12 (see FIG. 5). In the reception acknowledgment sequence number storage device 70, a reception acknowledgment sequence number storage register 71 stores the reception acknowledgment sequence number, and a reception acknowledgment sequence number 72 is received and compared with the reception acknowledgment sequence number storage register 71. This is a comparison / update circuit that updates in response.
[0059]
In the circuit configured as described above, the comparing / updating circuit 72 compares the input acknowledgment sequence number with the value of the acknowledgment sequence number storage register 71, and only when the received acknowledgment sequence number is larger than that already registered in the register 71, Update the reception sequence number. Then, the reception acknowledgment sequence number arriving while the idle reading is not possible is stored and updated. That is, in this embodiment, when the reception confirmation sequence number is larger than the value of the reception confirmation sequence number storage register 71, the reception confirmation sequence number already stored in the reception confirmation sequence number storage register is Is completed, the reception confirmation sequence number storage register 71 is updated with the inputted new sequence number.
[0060]
According to this embodiment, the latest value of the reception confirmation sequence number can be updated and held.
[0061]
FIG. 7 is a block diagram showing a fifth embodiment of the present invention. The same components as those in FIG. 5 are denoted by the same reference numerals. In the figure, 20 is a DMA engine, 35 is a transmission request queue, and 36 is a retransmission FIFO. Reference numeral 80 denotes a timeout detection device that detects a timeout.
[0062]
In the timeout detecting device 80, reference numeral 81 denotes a subtractor for calculating a difference between two values, 82 denotes a timer for counting time, and 83 denotes a timeout time designation register for designating a timeout time of the timer 82. The timeout time register 83 can set the timeout time arbitrarily. The operation of the device configured as described above will be described below.
[0063]
When a transmission request is input to the retransmission FIFO 36, time information is read from the timer 82 and a time stamp is input at the same time. Then, the subtracter 81 subtracts the value of the leading time stamp of the retransmission FIFO 36 from the value of the timer 82, and obtains the result.
[0064]
Here, if the time difference is greater than the value of the timeout time designation register 83, it is determined that the packet transmission has not been successful, and a retransfer instruction is issued to the DMA engine 20. In response to this instruction, the DMA engine 20 reads the transmission request of the retransmission FIFO 36 and retransmits the packet.
[0065]
According to this embodiment, it is possible to easily detect the timeout and start the retransmission processing.
[0066]
As described above, according to the present invention, the Go-back-n ARQ scheme can be realized by configuring a ring buffer on a memory and implementing packet transfer by simple FIFO control without performing complicated pointer control. , The processing capacity can be improved.
[0067]
(Supplementary Note 1) In a packet transmitting apparatus that transfers a packet to a network according to a transmission request including a pointer to a packet on a memory,
A retransmission FIFO for storing transmission requests for transmitted packets,
A packet retransmission control device comprising means for performing retransmission by using the retransmission FIFO transmission request when retransmission is required.
[0068]
(Supplementary Note 2) In the retransmission FIFO, a circuit that inputs a transmission request to the retransmission FIFO at the same time as reading a transmission request from the retransmission FIFO.
2. The packet retransmission control device according to claim 1, further comprising:
[0069]
(Supplementary Note 3) A transmission request FIFO for storing the transmission request is provided,
Means for reading the transmission request FIFO and simultaneously inputting the read transmission request to the retransmission FIFO
3. The packet retransmission control device according to claim 1, wherein:
[0070]
(Supplementary Note 4) In a device including a transmission sequence number in the transmission request, a register storing a reception confirmation sequence number from a receiving side;
A circuit for comparing the value of this register with the sequence number in the first transmission request of the retransmission FIFO,
Means for repeating discarding if the result of the comparison indicates that the first transmission request sequence number of the retransmission FIFO is smaller than the reception confirmation sequence number
4. The packet retransmission control device according to any one of supplementary notes 1 to 3, further comprising:
[0071]
(Supplementary Note 5) A register that sets a transmission window size, a counter that counts up when writing a transmission request to the retransmission FIFO and counts down when reading is performed,
A comparison circuit that compares the number of transmission requests in the retransmission FIFO indicated by the counter value with the transmission window size,
A signal for permitting execution of the transmission request is issued only when the transmission request in the retransmission FIFO is smaller than the value of the transmission window size register, and retransmission is performed when the number of transmission requests in the retransmission FIFO is equal to the transmission window size. For issuing a start instruction
4. The packet retransmission control device according to any one of supplementary notes 1 to 3, further comprising:
[0072]
(Supplementary Note 6) A counter that counts up each time a pointer is read from the retransmission FIFO,
Means to start counting after resetting at the start of retransmission, and to instruct the end of retransmission when the count value reaches the transmission window size
4. The packet retransmission control device according to any one of supplementary notes 2 and 3, wherein
[0073]
(Supplementary note 7) The packet retransmission control according to supplementary note 4, characterized in that a means for updating the value of the register for storing the reception confirmation sequence number only when the value to be stored is larger than the original value of the register is provided. apparatus.
[0074]
(Supplementary Note 8) A timer for counting time is provided,
Means for putting together the time at which the transmission request was input into the retransmission FIFO, comparing the time of the first data of the retransmission FIFO with the current time, and issuing a retransmission request signal when the time is equal to or longer than a predetermined time.
4. The packet retransmission control device according to any one of supplementary notes 1 to 3, further comprising:
[0075]
【The invention's effect】
As described above, according to the present invention, the following effects can be obtained.
(1) According to the first aspect of the present invention, when retransmission is required, the CPU instructs the DMA engine to read a transmission request from the retransmission FIFO, thereby enabling packet data to be retransmitted. In addition, compared to providing a ring buffer on a memory, it is easier to take out a transmission request and control retransmission.
(2) According to the second aspect of the invention, the retransmitted packet can be further retransmitted, and the reliability of data transfer can be further improved.
(3) According to the third aspect of the present invention, the transmission request queue is realized by FIFO, so that the load on the CPU is reduced, the packet data can be retransmitted, and a ring buffer is provided on the memory. This makes it easy to take out a transmission request and control retransmission.
(4) According to the fourth aspect of the invention, it is possible to automatically discard the transmission request whose reception has been confirmed from the retransmission FIFO.
(5) According to the fifth aspect of the invention, it is possible to reliably perform packet transfer by separating execution of a transmission request from execution of a retransmission.
[0076]
As described above, according to the present invention, it is possible to provide a packet retransmission control device capable of simplifying packet data retransmission control.
[Brief description of the drawings]
FIG. 1 is a principle block diagram of the present invention.
FIG. 2 is a block diagram showing a first embodiment of the present invention.
FIG. 3 is a block diagram showing a second embodiment of the present invention.
FIG. 4 is a block diagram showing a third embodiment of the present invention.
FIG. 5 is a block diagram showing a fourth embodiment of the present invention.
FIG. 6 is a block diagram showing an embodiment of a reception confirmation sequence number storage device.
FIG. 7 is a block diagram showing a fifth embodiment of the present invention.
FIG. 8 is a conceptual diagram of a retransmission control method.
FIG. 9 is an explanatory diagram of a Go-back-n ARQ scheme.
FIG. 10 is an explanatory diagram of a re-transfer mechanism based on CPU management of a transmission request queue.
[Explanation of symbols]
10 CPU
11 CPU bus
12 I / O bus bridge
13 Memory bus
14 memory
15 I / O bus
16 Network Interface
20 DMA engine
35 Transmission request queue
36 Retransmission FIFO

Claims (5)

メモリ上のパケットへのポインタを含んだ送信要求に従ってパケットをネットワークに転送するパケット再送制御装置において、
転送済みのパケットに対する送信要求を蓄積する再送用FIFOを備え、
再送が必要な時にこの再送用FIFOの送信要求を用いて再転送を行なう手段を設けることを特徴とするパケット再送制御装置。
In a packet retransmission control device that transfers a packet to a network according to a transmission request including a pointer to a packet on a memory,
A retransmission FIFO for storing transmission requests for transmitted packets,
A packet retransmission control device comprising means for performing retransmission by using the retransmission FIFO transmission request when retransmission is required.
前記再送用FIFOにおいて、該再送用FIFOからの送信要求の読み出しと同時に送信要求を再送用FIFOに入力する回路
を設けることを特徴とする請求項1記載のパケット再送制御装置。
2. The packet retransmission control device according to claim 1, wherein the retransmission FIFO includes a circuit for inputting the transmission request to the retransmission FIFO at the same time as reading the transmission request from the retransmission FIFO.
前記送信要求を蓄積する送信要求FIFOを備え、
送信要求FIFOの読み出しを行なうと同時に、読み出した送信要求を再送用FIFOに入力する手段
を設けることを特徴とする請求項1又は2の何れかに記載のパケット再送制御装置。
A transmission request FIFO for storing the transmission request;
3. The packet retransmission control device according to claim 1, further comprising means for reading the transmission request FIFO and simultaneously inputting the read transmission request to the retransmission FIFO.
前記送信要求の中に送信シーケンス番号を含んだ装置において、受信側からの受信確認シーケンス番号を格納するレジスタと、
このレジスタの値と再送用FIFOの先頭の送信要求にあるシーケンス番号を比較する回路とを備え、
比較の結果、再送用FIFOの先頭の送信要求シーケンス番号が受信確認シーケンス番号より小さいならば廃棄を繰り返す手段
を設けることを特徴とする請求項1乃至3の何れかに記載のパケット再送制御装置。
In a device that includes a transmission sequence number in the transmission request, a register that stores a reception confirmation sequence number from a receiving side;
A circuit for comparing the value of this register with the sequence number in the first transmission request of the retransmission FIFO,
4. The packet retransmission control device according to claim 1, further comprising means for repeating discarding when the comparison result indicates that the first transmission request sequence number of the retransmission FIFO is smaller than the reception confirmation sequence number.
送信ウィンドウサイズを設定するレジスタと、再送用FIFOに送信要求の書き込みを行なうとカウントアップし、読み出しを行なうとカウントダウンするカウンタと、
カウンタの値で示される再送用FIFO内の送信要求数と送信ウィンドウサイズを比較する比較回路とを備え、
前記再送用FIFO内の送信要求が送信ウィンドウサイズレジスタの値よりも小さい場合にだけ送信要求の実行を許可する信号を出し、また再送用FIFO内の送信要求数が送信ウィンドウサイズと同じ場合に再送の開始指示を出す手段
を設けることを特徴とする請求項1乃至3の何れかに記載のパケット再送制御装置。
A register for setting a transmission window size, a counter that counts up when a transmission request is written to the retransmission FIFO, and counts down when reading is performed,
A comparison circuit that compares the number of transmission requests in the retransmission FIFO indicated by the counter value with the transmission window size,
A signal for permitting execution of the transmission request is issued only when the transmission request in the retransmission FIFO is smaller than the value of the transmission window size register, and retransmission is performed when the number of transmission requests in the retransmission FIFO is equal to the transmission window size. 4. The packet retransmission control device according to claim 1, further comprising means for issuing an instruction to start the packet retransmission.
JP2002288546A 2002-10-01 2002-10-01 Packet retransmission controlling apparatus Withdrawn JP2004128786A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002288546A JP2004128786A (en) 2002-10-01 2002-10-01 Packet retransmission controlling apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002288546A JP2004128786A (en) 2002-10-01 2002-10-01 Packet retransmission controlling apparatus

Publications (1)

Publication Number Publication Date
JP2004128786A true JP2004128786A (en) 2004-04-22

Family

ID=32281014

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002288546A Withdrawn JP2004128786A (en) 2002-10-01 2002-10-01 Packet retransmission controlling apparatus

Country Status (1)

Country Link
JP (1) JP2004128786A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007267249A (en) * 2006-03-29 2007-10-11 Fujitsu Ltd Data transmission device, data transmission method, and data transmission program
JP2008053783A (en) * 2006-08-22 2008-03-06 Nec Access Technica Ltd Data transfer buffer controller and data transfer control method
WO2012131806A1 (en) * 2011-03-28 2012-10-04 Nec Corporation Retransmission control system and retransmission control method
JP2014049998A (en) * 2012-08-31 2014-03-17 Fujitsu Ltd Data transmitter and data transmission method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007267249A (en) * 2006-03-29 2007-10-11 Fujitsu Ltd Data transmission device, data transmission method, and data transmission program
JP2008053783A (en) * 2006-08-22 2008-03-06 Nec Access Technica Ltd Data transfer buffer controller and data transfer control method
JP4690271B2 (en) * 2006-08-22 2011-06-01 Necアクセステクニカ株式会社 Data transfer buffer control device and data transfer control method
WO2012131806A1 (en) * 2011-03-28 2012-10-04 Nec Corporation Retransmission control system and retransmission control method
JP2014515195A (en) * 2011-03-28 2014-06-26 日本電気株式会社 Retransmission control system and retransmission control method
JP2014049998A (en) * 2012-08-31 2014-03-17 Fujitsu Ltd Data transmitter and data transmission method

Similar Documents

Publication Publication Date Title
CN109936510B (en) Multi-path RDMA transport
CN108600114B (en) Flow control with reduced buffer usage for network devices
JP5902834B2 (en) Explicit flow control for implicit memory registration
US8549170B2 (en) Retransmission system and method for a transport offload engine
US6366968B1 (en) Physical write packets processing when posted write error queue is full, with posted write error queue storing physical write requests when posted write packet fails
US20040267982A1 (en) Read/write command buffer pool resource management using read-path prediction of future resources
JPS63234343A (en) Communication between station of system of a plurality of processors linked to communication medium and a plurality of stations
JP3127523B2 (en) Communication control device and data transmission method
CN104484295A (en) Receiver sliding window-based data transmission method in parallel computer system
US7788437B2 (en) Computer system with network interface retransmit
JP3709289B2 (en) Data transmission / reception device and parallel processor system for performing data retransmission
US20080263171A1 (en) Peripheral device that DMAS the same data to different locations in a computer
US6442168B1 (en) High speed bus structure in a multi-port bridge for a local area network
EP1706961A2 (en) Completion coalescine by tcp receiver
WO1999014892A2 (en) Preventing a source from becoming a destination port in a multi-port bridge
US7817572B2 (en) Communications apparatus and communication method
JP2003258932A (en) Method and system for controlling flow of ordered and pipelined transaction between intercommunicating electronic devices
JP2004128786A (en) Packet retransmission controlling apparatus
JP4882935B2 (en) Communication information processing apparatus, communication information processing system, and communication information processing program
JP2778373B2 (en) Buffer device with retransmission function
JPWO2011102195A1 (en) Packet alignment apparatus, packet alignment method, and storage medium
JPH10228445A (en) Ring bus input-output controller
US9450706B2 (en) Communication apparatus and packet transfer method
US20120331107A1 (en) Systems and methods for negotiated accelerated block option for trivial file transfer protocol (tftp)
JP3190895B2 (en) Automatic communication error recovery system

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060110