JP4690271B2 - データ転送バッファ制御装置及びデータ転送制御方法 - Google Patents

データ転送バッファ制御装置及びデータ転送制御方法 Download PDF

Info

Publication number
JP4690271B2
JP4690271B2 JP2006224974A JP2006224974A JP4690271B2 JP 4690271 B2 JP4690271 B2 JP 4690271B2 JP 2006224974 A JP2006224974 A JP 2006224974A JP 2006224974 A JP2006224974 A JP 2006224974A JP 4690271 B2 JP4690271 B2 JP 4690271B2
Authority
JP
Japan
Prior art keywords
data
sequence number
received
buffer
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.)
Expired - Fee Related
Application number
JP2006224974A
Other languages
English (en)
Other versions
JP2008053783A (ja
Inventor
勝弘 脇田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC AccessTechnica Ltd
Original Assignee
NEC AccessTechnica 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 NEC AccessTechnica Ltd filed Critical NEC AccessTechnica Ltd
Priority to JP2006224974A priority Critical patent/JP4690271B2/ja
Publication of JP2008053783A publication Critical patent/JP2008053783A/ja
Application granted granted Critical
Publication of JP4690271B2 publication Critical patent/JP4690271B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Description

本発明は、パケットデータ通信においてエラーリカバリが頻繁に発生するような場合に利用されるデータ転送バッファ制御装置および方法に関する。
近年の無線データ転送技術の発展に伴い、様々な方式の技術が応用されているが、データ通信では、プロトコルごとにいろいろな形態のデータパケットの構造を持つ。データをどこに格納したかを管理する方法として、スタートアドレスとデータ長を管理する方法が一般的であった。このような方式であると、無線上で頻繁にエラーが発生する際にリカバリが大変である。スタートアドレスからプロトコル上のパケットのデータ長に分割し、スタートアドレスからどれだけ離れたデータを再送すればよいのかを割り出すのに煩雑な回路を要する。またデータ受信時にエラーが発生すると、どこに何のデータを格納したのか複雑に管理しなくてはならない。尚、関連する先行技術として以下に示す特許文献1を参照されたい。
特開平9−81497号公報
上記した従来のデータ転送バッファの制御には下記のような問題がある。
第1の問題点を以下に述べる。データの送信に際し、データがどこに格納されているかを示すスタートアドレス及びデータ長よりデータバス上のプロトコル単位に分割する必要がある。かかる場合、データの送信時に転送エラーが発生しないときには特に問題とはならないが、転送エラーが発生した場合に、データバッファ上のどの位置から再送しなくてはならないか判別するのが困難である。
次に第2の問題点を以下に述べる。データの受信に際し、データをどこに格納したかを示すスタートアドレス及びデータ長より受信データを管理する必要がある。かかる場合上記送信時と同様、転送エラーが発生しないときには問題とはならないが、転送エラーが発生した場合に再送されてきたデータをどこに格納するかの判定が困難となる。また正常に転送されたデータから順番にバッファに格納した場合には、受信した順番をも記録する必要がある。
本発明の目的は、データの格納位置を一意に割り出し、データ受信時のエラーリカバリを容易に行うことができるデータ転送バッファ制御装置及びデータ転送制御方法を提供することである。
本発明の第1の態様によるデータ転送バッファ制御装置は、
予めデータバスのプロトコルにおけるデータ転送の最小単位に分割された第1〜第N(Nは2以上の自然数)の分割領域を有するデータバッファと、
前記第1〜第Nの分割領域の内、どの分割領域にデータが書き込まれたかを管理する送信/受信データライトポインタと、
前記第1〜第Nの分割領域の内、どの分割領域のデータが読み出されたかを管理する送信/受信データリードポインタと、
データ転送の順番を示すシーケンス番号を付与し、プロトコル上のデータの再送信を管理するシーケンス管理手段を有し、
前記シーケンス管理手段から指示されたシーケンス番号に論理的に割り当てられたバッファ領域番号からデータを読み出すリード制御回路と、バッファ領域番号にデータの書込みを行うライト制御回路とを含むメモリコントローラを有し、データ送信時及び/又はデータ受信時のデータバッファ管理が、パケットデータごとに前記シーケンス番号に論理的に割り当てられたバッファ領域に前記ポインタの指定先を移動させて行われ、
データ受信時、前記データバッファに前記シーケンス番号の順に順次データが書き込まれ、前記シーケンス管理手段は、所望のシーケンス番号順にデータ受信できなかった場合、当該受信できなかったシーケンス番号に対するパケットデータの再送信を要求する確認信号を相手通信装置に送信し、通信エラーが無かった場合には既に受信した既受信シーケンス番号を含まない確認信号を送信し、
前記ライト制御回路は、相手通信装置から再受信する各シーケンス番号に対応するデータがそれぞれ対応する前記各分割領域に書き込まれるごとに前記受信データライトポインタに領域書き込み完了通知信号を送出し、
前記受信データライトポインタは、前記領域書き込み完了通知信号を受け、受信できなかったシーケンス番号に対応する分割領域アドレスを指定し、
再送信要求されたデータ全てが前記データバッファに格納されるまで、前記ライト制御回路の前記領域書き込み完了通知信号を送出する動作と、前記受信データライトポインタの前記分割領域アドレスを指定する動作とが繰り返し行われ、
前記シーケンス管理手段は、通信エラーがあった場合には既に受信した当該通信エラーにより正常受信できなかったパケットの既受信シーケンス番号を含む確認信号を再送信要求として送信し、相手側通信装置からシーケンス番号を含むデータが送信された場合、当該シーケンス番号を解析し、前記受信データリードポインタに対して読み出すべきシーケンス番号を送出し、当該シーケンス番号に対応した前記データバッファの分割領域アドレスを前記受信データリードポインタに設定し、
前記リード制御回路は、前記受信データリードポインタから指定されたアドレスに対応した分割領域に含まれるデータの読み出しを行い、前記各分割領域に格納されたデータの読み出しが完了するごとに、分割領域読み出し完了通知信号を前記受信データリードポインタに送出し、前記受信データリードポインタの指定先を移動させ、要求されたデータ全てが前記データバッファから読み出されるまでこの動作が繰り返し行われ、
読み出し完了した分割バッファ領域は開放され、新たに受信シーケンス番号の再割り当てをし、その開放された分割バッファ領域に新たな受信データを格納されることを特徴とする。
本発明の第2の態様によるデータ転送バッファ制御装置は、
前記ライト制御回路は、データ送信においてCPUから前記データバッファへのデータ書き込み要求があった場合、要求されたデータを前記データバッファに格納し、
前記要求されたデータの書込み先は前記送信データライトポインタが指定する書込み先アドレスであり、
前記ライト制御回路は、前記要求されたデータが前記各分割領域に書き込みされるごとに前記送信データライトポインタに分割領域書き込み完了通知信号を送出し、前記送信データライトポインタの指定先アドレスを移動させ、要求されたデータ全てが前記データバッファに格納されるまでこの動作が繰り返し行われることを特徴とする。
本発明の第3の態様によるデータ転送制御方法は、
転送すべきデータをあらかじめ定められたシーケンス番号の順序でネットワークを介して前記相手通信装置へ転送するデータ転送バッファ制御装置におけるデータ転送制御方法において、
前記転送すべきデータを送信する際、CPUからデータバッファへの転送データ書き込み要求があった場合、この要求されたデータを前記データバッファの送信データライトポインタが指定する書込み先アドレスに格納する第1の処理ステップと、
前記要求されたデータが前記各分割領域に書き込みされるごとに前記送信データライトポインタに分割領域書き込み完了通知信号を送出する第2の処理ステップと、
分割領域書き込み完了通知信号を受けた場合、前記送信データライトポインタの指定先アドレスを移動させる第3の処理ステップを有し、
要求されたデータ全てが前記データバッファに格納されるまで上記第1乃至第3の処理ステップを繰り返し行い、
相手側通信装置から次に送信すべきシーケンス番号を含むデータ送信要求信号が送信された場合、当該シーケンス番号を解析し、送信データリードポインタに対し、読み出すべきシーケンス番号を送出し、当該シーケンス番号に対応した前記データバッファの分割領域アドレスを前記送信データリードポインタに設定する第4の処理ステップと、
前記送信データリードポインタから指定されたアドレスに対応した分割領域に含まれるデータを読み出す第5の処理ステップと、
前記各分割領域に格納されたデータの読み出しが完了するごとに、分割領域読み出し完了通知信号を前記送信データリードポインタに送出し、前記送信データリードポインタの指定先を移動させる第6の処理ステップと、
要求されたデータ全てが前記データバッファから読み出されるまで上記第4乃至第6の処理ステップを繰り返し行い、
データ送信が終了すると前記相手通信装置から次に送信して欲しいシーケンス番号を含む確認信号を受け、当該確認信号に既に送信した既送信シーケンス番号が入っている場合には、当該既送信シーケンス番号に対応するデータは相手通信装置に認識されていないとみなし前記相手通信装置に既送信シーケンス番号に対応するデータ及び前記既送信シーケンス番号を除く残りの未送信シーケンス番号に対応するデータを相手通信装置に送信し、
相手通信装置からデータを受信する場合、前記データバッファに前記シーケンス番号の順に順次受信データを書き込む第7の処理ステップと、
所望のシーケンス番号順にデータ受信できなかった場合、当該受信できなかったシーケンス番号に対するパケットデータの再送信を要求する確認信号を相手通信装置に送信する第8の処理ステップと、
通信エラーが無かった場合には既に受信した既受信シーケンス番号を含まない確認信号を送信する第9の処理ステップと、
前記相手通信装置から再受信する各シーケンス番号に対応するデータがそれぞれ対応する前記各分割領域に書き込まれるごとに受信データライトポインタに領域書き込み完了通知信号を送出する第10の処理ステップと、
前記領域書き込み完了通知信号を受け、受信できなかったシーケンス番号に対応する分割領域アドレスを指定する第11の処理ステップを有し、
再送信要求されたデータ全てが前記データバッファに格納されるまで上記第7乃至第11処理ステップを繰り返し行い、
通信エラーがあった場合には既に受信した当該通信エラーにより正常受信できなかったパケットの既受信シーケンス番号を含む確認信号を再送信要求として送信する第12の処理ステップと、
相手側通信装置からシーケンス番号を含むデータが送信された場合、当該シーケンス番号を解析し、前記受信データライトポインタに対して当該シーケンス番号を送出する第13の処理ステップと、
当該シーケンス番号に対応した前記データバッファの分割領域アドレスを前記受信データライトポインタに設定する第14の処理ステップと、
受信データリードポインタから指定されたアドレスに対応した分割領域に含まれるデータを読み出す第15の処理ステップと、
前記各分割領域に格納されたデータの読み出しが完了するごとに、分割領域読み出し完了通知信号を前記受信データリードポインタに送出する第16の処理ステップと、
前記受信データリードポインタの指定先を移動させる第17の処理ステップを有し、
要求されたデータ全てが前記データバッファから読み出されるまで上記第12乃至第17の処理ステップを繰り返し行うことを特徴とする。
本発明の第5の態様によるデータ転送制御方法は、
相手通信装置からデータを受信する場合、前記データバッファに順次受信データを書き込みステップと、
所望のシーケンス番号順にデータ受信できなかった場合、当該受信できなかったシーケンス番号に対するパケットデータの再送信を要求する確認信号を相手通信装置に送信するステップと、
通信エラーが無かった場合には既に受信した既受信シーケンス番号を含まない確認信号を送信するステップと、
前記相手通信装置から再受信する各シーケンス番号に対応するデータがそれぞれ対応する前記各分割領域に書き込まれるごとに受信データライトポインタに領域書き込み完了通知信号を送出するステップと、
前記領域書き込み完了通知信号を受け、受信できなかったシーケンス番号に対応する分割領域アドレスを指定するステップを有し、
再送信要求されたデータ全てが前記データバッファに格納されるまで上記各処理ステップを繰り返し行うことを特徴とする。
本発明によれば、データバッファの領域をパケットのシーケンス番号に論理的に割り当てているため、データ送信の場合には,どのシーケンス番号を送りたいかを管理することでデータの格納位置を一意に割り出すことができ、データ送信時のエラーリカバリを容易に行うことができる。
また、本発明によれば、データバッファの領域をパケットのシーケンス番号に論理的に割り当てているため、データ受信の場合には、どのシーケンス番号を受信しているかを管理することでデータの格納位置を一意に割り出すことができ、データ受信時のエラーリカバリを容易に行うことができる。
すなわち、本発明によれば、データ送信時のバッファ管理をパケットごとに論理的に割り当て順番に送信することにより行い、データ受信時のパケット管理も順番に格納するという方式を採るので、データの格納先が一目瞭然であるという効果を有する。
以下、本発明をワイヤレスUSBに適用した場合について説明する。ワイヤレスUSBにおけるbulk転送において構成されるパケットのデータサイズは、512バイトのn倍(n=1〜7)で規定される。また、各パケットにはシーケンス番号と呼ばれる転送順序を示される番号が付与される。
最初にデータの送信について説明する。データバッファ(バッファ領域)の分割はこの例では512バイトごとに行うこととする。CPU等のデータ書き込み手段からデータバッファ1に順次データが書き込まれる。データ書き込み制御回路(リード制御回路)は、データバッファ(バッファ領域)内の各分割領域の境界を跨ぐ時点で送信データライトポインタに通知し、送信データライトポインタはバッファ領域を消費したことを認識し、送信データライトポインタの値を+1とする。この動作を順次繰り返し行う。
USBインターフェース(USBI/F)側からデータ送信要求が来たとき、シーケンス管理手段はこの要求を解析し、何番のシーケンス番号を送信すればよいかを判定する。これにより対応する分割領域の番号を特定し、データ読み出し制御回路(リード制御回路)より順次データを読み出し送信する。
データ送信が終了すると、相手通信装置からAcknowledge Code(以下、Ack Codeと呼ぶ)が返される。ここでのAck Codeとはデータ受信時の成否確認を示す信号を指す。データ受信を完了したデバイスは、そのデータの送信元にAck Codeを送り、正常にデータ受信が行えたか否かを示す。
このAck Codeには次に送信して欲しいシーケンス番号が記入されている。この番号に先ほど送信したシーケンス番号が入っていれば、そのシーケンス番号は何らかのエラーにより相手通信装置に認識されていない状況であり、そのシーケンス番号を再送信する必要がある。再送信が必要か否かの判定はシーケンス管理手段により行われる。
前記シーケンス管理手段からの再送信の要求が無かった場合には、前記シーケンス管理手段は何の動作もしない。送信終了時、送信データリードポインタはまだ送信していない最初のシーケンス番号の位置にある。前記再送信の要求があった場合、再送信する論理番号に割り当てられたデータバッファ(バッファ領域)内の対応する分割領域に前記送信データリードポインタを動かす。この動作により、転送時のエラーの復旧を容易に行うことができる。
なお、正しく相手通信装置により受信が行われたシーケンス番号まで送信データリードポインタが進んでいるので、当該送信データリードポインタが示す分割領域まで論理番号の再割り当てをし、新たな送信データを前記CPU内のデータ書き込み手段から受け付けることが可能である。
次にデータの受信について説明する。バッファ領域の分割は上記送信と同様512バイトごとに行うこととする。データ受信時、USBI/Fからのデータは前記データ書き込み手段によりデータバッファ(バッファ領域)に順次データが書き込まれる。データ書き込み制御回路(ライト制御回路)は、バッファ領域の境界を跨ぐ時点で受信データライトポインタに通知する。すなわち前記要求されたデータが前記各分割領域に書き込みされるごとに前記受信データライトポインタに分割領域書き込み完了通知信号を送出する。当該受信データライトポインタは前記データバッファの領域を消費したことを認識し、前記受信データライトポインタの指定先アドレスは次の指定先に移動する。何らかのエラーにより、データ受信が期待するシーケンス番号の順に行われなかった場合、前記シーケンス管理手段は、受信しているシーケンス番号に合致した論理番号を持つデータバッファ(バッファ領域)内の対応する分割領域に前記受信データライトポインタを動かし、当該対応する分割領域に受信データがシーケンス番号の順番通りに格納されるよう動作する。この動作を受信終了まで順次繰り返し行う。
データ受信の場合には、相手通信装置に前記Ack Codeを送信する。ここで何らかのエラーにより、期待するシーケンス番号を持つパケットが受信できなかった場合には、そのシーケンス番号に対する再送信要求として通知する。通信エラーが無かった場合には、先ほど受信したシーケンス番号を含まないAck Codeを返送する。この判定は前記シーケンス管理手段により行われる。
エラーを検出し、データの再送を要求した場合には、前記シーケンス管理手段は再受信するシーケンス番号に合う論理番号を持つデータバッファ(バッファ領域)の対応する分割領域に前記受信データライトポインタを動かす。ただし、ここで再度エラーが発生した場合には受信データライトポインタは受信するシーケンス番号に合った論理番号を持つデータバッファ内の所定領域に動かすこととする。
なお、データ受信が正しく行われた時点で、前記CPUのデータ読み出し手段によって順次データが読み出される。データ読み出し制御回路(リード制御回路)3は、データバッファ1の各分割領域の境界を跨ぐ時点で、すなわち前記各分割領域に格納されたデータの読み出しが完了するごとに、分割領域読み出し完了通知信号を受信データリードポインタに送出し、受信データリードポインタの指定先が移動する。その後領域を開放し、新たに論理番号の再割り当てをし、新たな受信データを格納することができる。
次に、本発明の実施例について図面を参照して詳細に説明する。
図1は、本発明におけるデータバッファの分割例である。図1において、データバッファをn個の領域に分割し、その分割された領域をそれぞれ論理的にパケット番号として割り当てている。
図2はワイヤレスUSBのデータ転送バッファを想定した場合におけるデータ転送制御装置の構成を示したブロック図である。図1は図2のデータバッファ1を示している。
この例でも、データバッファの分割領域の大きさは512バイトとする。データ送信時、CPU101はメモリコントローラ2のライト制御回路4に対しデータ書き込み要求202を行う。CPUデータバス201を通してバッファメモリにデータを格納する。このときのデータバッファ1の書き込み先アドレスの指定は、送信データライトポインタ5が示す領域とする。バッファメモリの物理アドレスはアドレス変換回路10を介して送信データライトポインタ5が指定する指定先アドレスにより導かれる。ライト制御回路4は、領域境界の512バイト書き込みごとに送信データライトポインタ5に領域書き込み完了通知信号210を送信し、次のバッファ領域に移ったことを通知する。この通知により、送信データライトポインタ5は次に書込むべき分割領域のアドレスを指定し、現在データ書き込み中の領域が移ったことを知る。この動作を順次繰り返し行う。
ワイヤレスUSB I/F102からデータ送信要求としてAcknowledge Code(以下、Ack Codeと呼ぶ)215が送信され、Ack Code215に含まれる次に送信すべきシーケンス番号が通知される。シーケンス管理手段9は通知された当該シーケンス番号を解析し、送信データリードポインタ6に対し、読み出すべきシーケンス番号を通知する。このシーケンス番号と分割されたデータバッファ領域番号は論理的に結合されているので、対応する領域番号を送信データリードポインタ6にセットする。送信データリードポインタ6が示すポインタ値を、伝送ライン208を通してアドレス変換回路10に通知し、メモリコントローラ2のリード制御回路3はデータの読み出しを行う。ワイヤレスUSB I/F102からデータ送信要求信号205が発行され、送信されるとリード制御回路3により順次データの出力を行う。リード制御回路4は、領域境界の512バイト読み出しごとに送信データリードポインタ6に領域読み出し完了通知信号211を通し、次のバッファ領域に移ることを通知する。この完了通知により、送信データリードポインタは次の分割領域のアドレスを指定し、現在データ読み出し中の領域が移ったことを知る。この動作を送信終了まで順次繰り返し行う。ただし、送信データリードポインタ6は送信データライトポインタ5の値を超えることはできない。送信データライトポインタ5の値までしか送信データの格納がされていないからである。
データ送信が終了すると、相手通信装置からAck Code215が返送(返信)され、ワイヤレスUSB I/F102を通しAck Code215としてシーケンス管理手段9に通知される。Ack Code215は相手通信装置が次に送信して欲しいシーケンス番号が記入されている。この番号に先ほど送信したシーケンス番号が入っていれば、そのシーケンス番号は何らかのエラーにより相手通信装置に認識されていない状況であり、そのシーケンス番号を再送信しなくてはいけない。この判定はシーケンス管理手段9により行われる。
再送信の要求が無かった場合には、シーケンス管理手段9は何も動作しない。送信終了時、送信データリードポインタ6はまだ送信していない最初のシーケンス番号の位置にあるはずである。再送信の要求があった場合、再送信する論理番号に割り当てられたバッファ領域に送信データリードポインタ6の指定先を動かす。この動作により、転送エラー時の再送処理を容易に行うことができる。
なお、正しく相手通信装置により受信が行われたシーケンス番号まで送信データリードポインタ6が進んでいるので、送信データリードポインタ6が示す領域まで論理番号の再割り当てをし、新たな送信データをCPU101のデータ書き込み手段から受け付けることが可能である。
次にデータの受信について説明する。データバッファ1のバッファ領域の分割は送信と同様512バイトごとに行うこととする。データ受信時、ワイヤレスUSB I/F102からのデータはメモリコントローラ2のライト制御回路4によりデータバッファ1の領域1に順次データが書き込まれる。ライト制御回路4は、バッファ領域の境界を跨ぐ時点で、すなわち相手通信装置から再受信する各シーケンス番号に対応するデータがそれぞれ対応する前記各分割領域に書き込まれるごとに受信データライトポインタ7に領域書き込み完了通知信号212を受信データライトポインタ7に送信し、その領域書き込み完了通知信号によって受信データライトポインタ7は領域が開放されたことを認識する。受信データライトポインタ7は、領域書き込み完了通知信号212を受け、受信できなかったシーケンス番号に対応する分割領域アドレスを指定し、次の分割領域のアドレスを指定する。何らかの通信エラーにより、受信シーケンス番号が期待する順番通りに受信されなかった場合、シーケンス管理手段9は、現在受信しているシーケンス番号データを、信号ライン214を介して受信データライトポインタ7に送信する。これによって受信データライトポインタ7が示すバッファ領域(指定先アドレス)にシーケンス番号順にデータが格納される。この動作を受信終了まで順次繰り返し行う。
データ受信の場合には、相手通信装置にAck Code215を送信する。ここで何らかの通信エラーにより、期待するシーケンス番号を持つパケットが受信できなかった場合には、そのシーケンス番号に対するパケットの再送信を要求する再送信要求としてAck Code215を通知する。通信エラーが無かった場合には、既に受信したシーケンス番号を含まないAck Code215を返送(返信)する。この判定はシーケンス管理手段9により行われる。
シーケンス管理手段9によってエラーが検出され、データの再送信が要求された場合には、シーケンス管理手段9は再受信するシーケンス番号に合致する論理番号を有する分割バッファ領域に受信データライトポインタ7を動かすために信号バスライン214を介してシーケンス番号データを受信データライトポインタ7に送信する。ただし、ここで再度通信エラーが発生した場合、つまり期待するシーケンス番号と受信したシーケンス番号が異なった場合には受信するシーケンス番号に合致する論理番号を有する分割バッファ領域に受信データライトポインタ7を動かすこととする。
なお、データ受信が正しく行われた時点でCPU101のデータ読み出し手段は、データリードコマンド203を発行し、順次データを読み出す。リード制御回路3は、各分割バッファ領域の境界を跨ぐ時点、すなわち領域境界の512バイトを読み出すごとに受信データリードポインタ8に領域読み出し完了通知信号209を送信し、次のバッファ領域に移ることを通知する。この完了通知により、受信データリードポインタ8は次の分割領域のアドレスを指定し、現在データ読み出し中の領域が移ったことを認識する。この動作を受信終了まで順次繰り返し行う。データ読み出し中の領域の移動を認識した後は、読み出し完了した分割バッファ領域を開放し、新たに論理番号の再割り当てをし、その開放された分割バッファ領域に新たな受信データを格納することができる。
以下、図3〜図5を参照して上記した実施例の動作について説明する。
まず、図3を参照して、データ送信時のパケット送出動作について説明する。図の例では、4バースト動作を例にしている。なお、ワイヤレスUSBではバースト回数は最大16で規定されている。
図3の(A)において、最初の4つのパケット、すなわちシーケンス1〜シーケンス4を送信している。送信完了後、(B)で相手通信装置よりAck Codeパケットを受信する。このAck Codeパケットには、次の送信で送るべきシーケンス番号が示されている。ここで、次に送信すべきシーケンス番号がシーケンス3、シーケンス5、シーケンス6、シーケンス7であった場合、先ほど(A)で送信したパケットのうち、シーケンス3がエラーであったことが判明する。ここでシーケンス管理手段9は送信データリードポインタ6に対してシーケンス3を送信するよう通知する。この通知を受け、送信データリードポインタ6は論理的にシーケンス番号3に割り当てられた、図1のバッファ領域3を指し示す。
(B)のAck Codeパケットにより、送信されるべき(C)の送信パケットの順番が決定される。(A)にてエラーにより送信されなかったシーケンス3、新規送信パケットのシーケンス5、シーケンス6、シーケンス7と順次送信し、以降(B)(C)の処理を繰り返す。
図4はデータ受信時のパケットの様子を示している。図4の(A)では、相手通信装置からシーケンス1、シーケンス2、シーケンス3、シーケンス4が送信されてきた場合のデータ受信パケットの様子が示されている。このとき、何らかのエラーにより、シーケンス2及びシーケンス3が受信できなかったと仮定する。このときのデータバッファへのデータの格納の様子を図5に示す。受信が行えたシーケンス番号のパケット、すなわち図4の場合ではシーケンス1及びシーケンス4が、それぞれ論理的に割り当てた分割バッファ領域、図5の場合では分割バッファ領域1,4に格納される。この格納される分割バッファ領域を指定するのは、シーケンス管理手段9である。
図4の(A)でシーケンス2及びシーケンス3に受信エラーがあったので、シーケンス管理手段9はAck Codeパケット215にて、次に受信したいシーケンス番号をワイヤレスUSB I/F102を介して、相手通信装置に通知する(図4の(B))。ここでは、シーケンス2、シーケンス3、シーケンス5、シーケンス6を送信するように要求する。このことは、シーケンス2、シーケンス3が受信できなかったことを意味する。
図4の(C)でデータパケットを受信する際、シーケンス管理手段9はそのパケットのシーケンス番号を受信データライトポインタ7に通知し、該当するシーケンス番号に対応するパケットデータはそれらシーケンス番号が論理的に割り当てられた分割バッファ領域に格納される。(C)で要求の通りのシーケンス番号に対応するパケットデータが受信されると、図5の右側の図に示されたようにそれぞれのパケットデータが該当分割バッファ領域に格納される。
図4の(D)では、(C)でシーケンス6まで正しく受信できたので、次にシーケンス7、シーケンス8、シーケンス9、シーケンス10を送信するように要求するAck Codeパケット215が相手側へ送信される。以降、(C),(D)の処理を繰り返す。
また、上記した実施例は、本発明を好適に実施した形態の一例に過ぎず、本発明は、その主旨を逸脱しない限り、種々変形して実施することが可能なものである。例えば、本実施例では、512バイトをバッファ領域の分割サイズとして記述したが、このサイズはいくつにとっても良い。例えば、一つの領域の大きさを128バイトにとった場合、図6のように4つの領域を一つの論理ブロックとして扱うことも可能である。ワイヤレスUSBにおいても最低のパケット単位は512バイトであるが、最大3584バイト(512バイトの7倍)のパケットサイズまで規定されている。その場合には、バッファ領域は512バイトに設定し、7つの領域を1つの論理ブロックとして割り当てれば良い。
本発明によれば、ワイヤレスUSBのような特に無線でデータ通信され、エラーリカバリが頻繁に発生するような場合に利用されるデータ転送バッファ制御装置といった用途に適用できる。
データバッファの領域の分割例を示した図である。 ワイヤレスUSBのデータ転送バッファを想定した場合におけるデータ転送制御装置の構成を示したブロック図である。 本発明によるデータ送信時のパケットデータ送出動作について説明するための図である。 本発明によるデータ受信時のパケットデータ受信動作について説明するための図である。 一部のシーケンスが受信できなかった場合のデータバッファへのデータの格納の様子を示した図である。 4つの分割領域を一つの論理ブロックとして扱った例を示した図である。
符号の説明
1 データバッファ
2 メモリコントローラ
3 リード制御回路
4 ライト制御回路
5 送信データライトポインタ
6 送信データリードポインタ
7 受信データライトポインタ
8 受信データリードポインタ
9 シーケンス管理手段
10 アドレス変換回路
101 CPU
102 ワイヤレスUSB I/F
201 CPUデータバス
202 データ書き込み要求信号
203 データリードコマンド
204 伝送ライン
205 データ送信要求信号
206 データ受信要求信号
207 伝送ライン
208 伝送ライン
209 領域読み出し完了通知信号
210 領域書き込み完了通知信号
211 領域読み出し完了通知信号
212 領域書き込み完了通知信号
214 信号ライン
215 Acknowledge Code(Ack Code)

Claims (6)

  1. 予めデータバスのプロトコルにおけるデータ転送の最小単位に分割された第1〜第N(Nは2以上の自然数)の分割領域を有するデータバッファと、
    前記第1〜第Nの分割領域の内、どの分割領域にデータが書き込まれたかを管理する送信/受信データライトポインタと、
    前記第1〜第Nの分割領域の内、どの分割領域のデータが読み出されたかを管理する送信/受信データリードポインタと、
    データ転送の順番を示すシーケンス番号を付与し、プロトコル上のデータの再送信を管理するシーケンス管理手段を有し、
    前記シーケンス管理手段から指示されたシーケンス番号に論理的に割り当てられたバッファ領域番号からデータを読み出すリード制御回路と、バッファ領域番号にデータの書込みを行うライト制御回路とを含むメモリコントローラを有し、
    データ送信時及び/又はデータ受信時のデータバッファ管理が、パケットデータごとに前記シーケンス番号に論理的に割り当てられたバッファ領域に前記ポインタの指定先を移動させて行われ、
    データ受信時、前記データバッファに前記シーケンス番号の順に順次データが書き込まれ、前記シーケンス管理手段は、所望のシーケンス番号順にデータ受信できなかった場合、当該受信できなかったシーケンス番号に対するパケットデータの再送信を要求する確認信号を相手通信装置に送信し、通信エラーが無かった場合には既に受信した既受信シーケンス番号を含まない確認信号を送信し、
    前記ライト制御回路は、相手通信装置から再受信する各シーケンス番号に対応するデータがそれぞれ対応する前記各分割領域に書き込まれるごとに前記受信データライトポインタに領域書き込み完了通知信号を送出し、
    前記受信データライトポインタは、前記領域書き込み完了通知信号を受け、受信できなかったシーケンス番号に対応する分割領域アドレスを指定し、
    再送信要求されたデータ全てが前記データバッファに格納されるまで、前記ライト制御回路の前記領域書き込み完了通知信号を送出する動作と、前記受信データライトポインタの前記分割領域アドレスを指定する動作とが繰り返し行われ、
    前記シーケンス管理手段は、通信エラーがあった場合には既に受信した当該通信エラーにより正常受信できなったパケットの既受信シーケンス番号を含む確認信号を再送信要求として送信し、相手側通信装置からシーケンス番号を含むデータが送信された場合、当該シーケンス番号を解析し、前記受信データリードポインタに対して読み出すべきシーケンス番号を送出し、当該シーケンス番号に対応した前記データバッファの分割領域アドレスを前記受信データリードポインタに設定し、
    前記リード制御回路は、前記受信データリードポインタから指定されたアドレスに対応した分割領域に含まれるデータの読み出しを行い、前記各分割領域に格納されたデータの読み出しが完了するごとに、分割領域読み出し完了通知信号を前記受信データリードポインタに送出し、前記受信データリードポインタの指定先を移動させ、要求されたデータ全てが前記データバッファから読み出されるまでこの動作が繰り返し行われ、
    読み出し完了した分割バッファ領域は開放され、新たに受信シーケンス番号の再割り当てをし、その開放された分割バッファ領域に新たな受信データを格納されることを特徴とするデータ転送バッファ制御装置。
  2. 前記ライト制御回路は、データ送信においてCPUから前記データバッファへのデータ書き込み要求があった場合、要求されたデータを前記データバッファに格納し、
    前記要求されたデータの書込み先は前記送信データライトポインタが指定する書込み先アドレスであり、
    前記ライト制御回路は、前記要求されたデータが前記各分割領域に書き込みされるごとに前記送信データライトポインタに分割領域書き込み完了通知信号を送出し、前記送信データライトポインタの指定先アドレスを移動させ、要求されたデータ全てが前記データバッファに格納されるまでこの動作が繰り返し行われることを特徴とする請求項1記載のデータ転送バッファ制御装置。
  3. 前記シーケンス管理手段は、相手側通信装置から次に送信すべきシーケンス番号を含むデータ送信要求信号が送信された場合、当該シーケンス番号を解析し、前記送信データリードポインタに対し、読み出すべきシーケンス番号を送出し、当該シーケンス番号に対応した前記データバッファの分割領域アドレスを前記送信データリードポインタに設定し、
    前記リード制御回路は、前記送信データリードポインタから指定されたアドレスに対応した分割領域に含まれるデータの読み出しを行い、前記各分割領域に格納されたデータの読み出しが完了するごとに、分割領域読み出し完了通知信号を前記送信データリードポインタに送出し、前記送信データリードポインタの指定先を移動させ、要求されたデータ全てが前記データバッファから読み出されるまでこの動作が繰り返し行われることを特徴とする請求項2記載のデータ転送バッファ制御装置。
  4. 前記シーケンス管理手段は、データ送信が終了すると前記相手通信装置から次に送信して欲しいシーケンス番号を含む確認信号を受け、当該確認信号に既に送信した既送信シーケンス番号が入っている場合には、当該既送信シーケンス番号に対応するデータは相手通信装置に認識されていないとみなし前記相手通信装置に既送信シーケンス番号に対応するデータ及び前記既送信シーケンス番号を除く残りの未送信シーケンス番号に対応するデータの再送信を行うことを特徴とする請求項3記載のデータ転送バッファ制御装置。
  5. 前記シーケンス管理手段は、前記確認信号を受信した場合、再送信要求されたシーケンス番号に割り当てられた対応分割領域を前記送信データリードポインタの対象とすることを特徴とする請求項4記載のデータ転送バッファ制御装置。
  6. 転送すべきデータをあらかじめ定められたシーケンス番号の順序でネットワークを介して前記相手通信装置へ転送するデータ転送バッファ制御装置におけるデータ転送制御方法において、
    前記転送すべきデータを送信する際、CPUからデータバッファへの転送データ書き込み要求があった場合、この要求されたデータを前記データバッファの送信データライトポインタが指定する書込み先アドレスに格納する第1の処理ステップと、
    前記要求されたデータが前記各分割領域に書き込みされるごとに前記送信データライトポインタに分割領域書き込み完了通知信号を送出する第2の処理ステップと、
    分割領域書き込み完了通知信号を受けた場合、前記送信データライトポインタの指定先アドレスを移動させる第3の処理ステップを有し、
    要求されたデータ全てが前記データバッファに格納されるまで上記第1乃至第3の処理ステップを繰り返し行い、
    相手側通信装置から次に送信すべきシーケンス番号を含むデータ送信要求信号が送信された場合、当該シーケンス番号を解析し、送信データリードポインタに対し、読み出すべきシーケンス番号を送出し、当該シーケンス番号に対応した前記データバッファの分割領域アドレスを前記送信データリードポインタに設定する第4の処理ステップと、
    前記送信データリードポインタから指定されたアドレスに対応した分割領域に含まれるデータを読み出す第5の処理ステップと、
    前記各分割領域に格納されたデータの読み出しが完了するごとに、分割領域読み出し完了通知信号を前記送信データリードポインタに送出し、前記送信データリードポインタの指定先を移動させる第6の処理ステップと、
    要求されたデータ全てが前記データバッファから読み出されるまで上記第4乃至第6の処理ステップを繰り返し行い、
    データ送信が終了すると前記相手通信装置から次に送信して欲しいシーケンス番号を含む確認信号を受け、当該確認信号に既に送信した既送信シーケンス番号が入っている場合には、当該既送信シーケンス番号に対応するデータは相手通信装置に認識されていないとみなし前記相手通信装置に既送信シーケンス番号に対応するデータ及び前記既送信シーケンス番号を除く残りの未送信シーケンス番号に対応するデータを相手通信装置に送信し、
    相手通信装置からデータを受信する場合、前記データバッファに前記シーケンス番号の順に順次受信データを書き込む第7の処理ステップと、
    所望のシーケンス番号順にデータ受信できなかった場合、当該受信できなかったシーケンス番号に対するパケットデータの再送信を要求する確認信号を相手通信装置に送信する第8の処理ステップと、
    通信エラーが無かった場合には既に受信した既受信シーケンス番号を含まない確認信号を送信する第9の処理ステップと、
    前記相手通信装置から再受信する各シーケンス番号に対応するデータがそれぞれ対応する前記各分割領域に書き込まれるごとに受信データライトポインタに領域書き込み完了通知信号を送出する第10の処理ステップと、
    前記領域書き込み完了通知信号を受け、受信できなかったシーケンス番号に対応する分割領域アドレスを指定する第11の処理ステップを有し、
    再送信要求されたデータ全てが前記データバッファに格納されるまで上記第7乃至第11の処理ステップを繰り返し行い、
    通信エラーがあった場合には既に受信した当該通信エラーにより正常受信できなったパケットの既受信シーケンス番号を含む確認信号を再送信要求として送信する第12の処理ステップと、
    相手側通信装置からシーケンス番号を含むデータが送信された場合、当該シーケンス番号を解析し、前記受信データライトポインタに対して当該シーケンス番号を送出する第13の処理ステップと、
    当該シーケンス番号に対応した前記データバッファの分割領域アドレスを前記受信データライトポインタに設定する第14の処理ステップと、
    受信データリードポインタから指定されたアドレスに対応した分割領域に含まれるデータを読み出す第15の処理ステップと、
    前記各分割領域に格納されたデータの読み出しが完了するごとに、分割領域読み出し完了通知信号を前記受信データリードポインタに送出する第16の処理ステップと、
    前記受信データリードポインタの指定先を移動させる第17の処理ステップを有し、
    要求されたデータ全てが前記データバッファから読み出されるまで上記第12乃至第17の処理ステップを繰り返し行うことを特徴とするデータ転送制御方法。
JP2006224974A 2006-08-22 2006-08-22 データ転送バッファ制御装置及びデータ転送制御方法 Expired - Fee Related JP4690271B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006224974A JP4690271B2 (ja) 2006-08-22 2006-08-22 データ転送バッファ制御装置及びデータ転送制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006224974A JP4690271B2 (ja) 2006-08-22 2006-08-22 データ転送バッファ制御装置及びデータ転送制御方法

Publications (2)

Publication Number Publication Date
JP2008053783A JP2008053783A (ja) 2008-03-06
JP4690271B2 true JP4690271B2 (ja) 2011-06-01

Family

ID=39237444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006224974A Expired - Fee Related JP4690271B2 (ja) 2006-08-22 2006-08-22 データ転送バッファ制御装置及びデータ転送制御方法

Country Status (1)

Country Link
JP (1) JP4690271B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5383564B2 (ja) * 2010-03-10 2014-01-08 ルネサスエレクトロニクス株式会社 データ転送回路及び方法
JP6273664B2 (ja) 2012-08-31 2018-02-07 富士通株式会社 データ送信装置、およびデータ送信方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001111608A (ja) * 1999-10-07 2001-04-20 Canon Inc パケット並べ替え装置とその通信ネットワーク及び通信制御方式
JP2002330117A (ja) * 2001-04-27 2002-11-15 Mitsubishi Electric Corp データ受信装置及びデータ受信制御方法
JP2003303168A (ja) * 2002-04-10 2003-10-24 Hitachi Ltd 通信制御用半導体集積回路
JP2004128786A (ja) * 2002-10-01 2004-04-22 Fujitsu Ltd パケット再送制御装置
JP2004253893A (ja) * 2003-02-18 2004-09-09 Canon Inc マルチキャスト通信方式
JP2005515699A (ja) * 2002-01-07 2005-05-26 モトローラ・インコーポレイテッド 送信及び受信データのための方法及び装置
WO2005060198A1 (ja) * 2003-12-18 2005-06-30 Sharp Kabushiki Kaisha 送信局、受信局、通信方法、通信プログラム、通信プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2006020044A (ja) * 2004-07-01 2006-01-19 Nec Corp 移動無線通信端末装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001111608A (ja) * 1999-10-07 2001-04-20 Canon Inc パケット並べ替え装置とその通信ネットワーク及び通信制御方式
JP2002330117A (ja) * 2001-04-27 2002-11-15 Mitsubishi Electric Corp データ受信装置及びデータ受信制御方法
JP2005515699A (ja) * 2002-01-07 2005-05-26 モトローラ・インコーポレイテッド 送信及び受信データのための方法及び装置
JP2003303168A (ja) * 2002-04-10 2003-10-24 Hitachi Ltd 通信制御用半導体集積回路
JP2004128786A (ja) * 2002-10-01 2004-04-22 Fujitsu Ltd パケット再送制御装置
JP2004253893A (ja) * 2003-02-18 2004-09-09 Canon Inc マルチキャスト通信方式
WO2005060198A1 (ja) * 2003-12-18 2005-06-30 Sharp Kabushiki Kaisha 送信局、受信局、通信方法、通信プログラム、通信プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2006020044A (ja) * 2004-07-01 2006-01-19 Nec Corp 移動無線通信端末装置

Also Published As

Publication number Publication date
JP2008053783A (ja) 2008-03-06

Similar Documents

Publication Publication Date Title
US6470391B2 (en) Method for transmitting data via a network in a form of divided sub-packets
EP0762705B1 (en) Method for transmitting data via a network
US7376435B2 (en) Transferring multiple data units over a wireless communication link
CN109964215B (zh) 具有环形缓冲区镜像的远程直接存储器访问数据通信中的流控制
US6965571B2 (en) Precise error reporting
CN102098212B (zh) 用于处理外围组件互连快速协议的设备
TW583841B (en) Methodology for detecting lost packets
CN1753351B (zh) 用于在可靠连接的传输系统中跟踪分组的装置及方法
CA2631140A1 (en) Programming electronic meter settings using a bandwidth limited communications channel
JP4452690B2 (ja) 電子装置、その制御方法、ホスト装置及びその制御方法
JPWO2005060198A1 (ja) 送信局、受信局、通信方法、通信プログラム、通信プログラムを記録したコンピュータ読み取り可能な記録媒体
US7460531B2 (en) Method, system, and program for constructing a packet
JP2007513583A (ja) Rdma完了および再送信システムおよび方法
US20040198223A1 (en) Flow control in a bluetooth wireless communication system
TWI384810B (zh) 可節省通用串列匯流排協定中用來儲存封包之記憶體之資料傳輸方法及其裝置
JP2005202956A (ja) 破損データを処理する方法
JP2015043237A (ja) メモリシステム
JP4606216B2 (ja) 通信データ制御装置
JP4690271B2 (ja) データ転送バッファ制御装置及びデータ転送制御方法
US20050144339A1 (en) Speculative processing of transaction layer packets
CN114337938B (zh) 一种数据传输方法、数据重传方法、装置和相关设备
EP2075943A2 (en) Methods and systems for error detection of data transmission
JP2009188508A (ja) データ送受信装置
JP2002251260A (ja) データ送受信システム
US20010018732A1 (en) Parallel processor and parallel processing method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100317

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100714

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100819

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110126

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110217

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140225

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees