JP6706180B2 - デバイス装置及びデータ転送システム - Google Patents

デバイス装置及びデータ転送システム Download PDF

Info

Publication number
JP6706180B2
JP6706180B2 JP2016179288A JP2016179288A JP6706180B2 JP 6706180 B2 JP6706180 B2 JP 6706180B2 JP 2016179288 A JP2016179288 A JP 2016179288A JP 2016179288 A JP2016179288 A JP 2016179288A JP 6706180 B2 JP6706180 B2 JP 6706180B2
Authority
JP
Japan
Prior art keywords
host device
dph
header
processing unit
packet
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.)
Active
Application number
JP2016179288A
Other languages
English (en)
Other versions
JP2018045417A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2016179288A priority Critical patent/JP6706180B2/ja
Priority to US15/640,472 priority patent/US10218468B2/en
Priority to CN201710669499.9A priority patent/CN107818068B/zh
Publication of JP2018045417A publication Critical patent/JP2018045417A/ja
Application granted granted Critical
Publication of JP6706180B2 publication Critical patent/JP6706180B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、デバイス装置、データ転送システム及びデータ転送方法に関し、例えば、USB(Universal Serial Bus)3.1 Gen2に対応するデバイス装置、データ転送システム及びデータ転送方法に関する。
USB3.1 Gen1(USB3.0)のOUT転送におけるデータパケット(Data Packet(DP))は、データパケットヘッダ(Data Packet Header(DPH))とデータパケットペイロード(Data Packet Payload(DPP))の2つのパケットで構成されている。そして、DPの転送は、DPH、DPPの順序で行われる。
ここで、USB3.1 Gen1では、DPHに何らかのパケットエラーが発生した場合、USBデバイス装置のリンク層にてDPH及びDPPの組を破棄する。そのため、USBデバイス装置のプロトコル層は、エラーにかかるパケットを受信することがなかったため、プロトコル層においてパケットエラー時の処理は不要であった。
また、後続の仕様であるUSB3.1 Gen2では、DPHにLength Field Replicaの領域が追加された。そして、DPH内のCRC値がエラー、かつ、Length Field Replicaの領域が正常値である場合、リンク層でDPHのみを破棄し、対応するDPPをプロトコル層に送るように規格が変更された(非特許文献1)。
Universal Serial Bus 3.1 Specification Revision.1.0, Chapter 7 and 8
しかし、非特許文献1では、DPHが特定の条件で不正な場合には、正常に受信したDPPを保持してDPHのみが再送される場合に対応するための回路構成が必要となるという問題点があった。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、デバイス装置は、ホスト装置から受信したパケットのヘッダに所定のエラーが含まれる場合、ヘッダを破棄し、ペイロードを後段へ送信する第1の処理部と、受信したペイロードを破棄し、パケットの再送要求をホスト装置へ送信する第2の処理部と、を備える。
前記一実施の形態によれば、回路面積の増加を抑制することができる。
本実施の形態1にかかるホスト装置とデバイス装置の構成を示すブロック図である。 本実施の形態1にかかるリンク層におけるDPH受信処理の流れを説明するためのフローチャートである。 本実施の形態1にかかるプロトコル層におけるDPH受信処理の流れを説明するためのフローチャートである。 本実施の形態1にかかるプロトコル層におけるDPP受信処理の流れを説明するためのフローチャートである。 本実施の形態1にかかるDPHに所定のエラーが発生した場合の各層の処理の流れを示すシーケンス図である。 本実施の形態2にかかるリンク層におけるDPH受信処理の流れを説明するためのフローチャートである。 本実施の形態2にかかるプロトコル層におけるDPP受信処理の流れを説明するためのフローチャートである。 本実施の形態2にかかるDPHに所定のエラーが発生した場合の各層の処理の流れを示すシーケンス図である。 本実施の形態3にかかるホスト装置におけるDP送信処理の流れを説明するためのフローチャートである。 本実施の形態3にかかるDPHに所定のエラーが発生した場合の各層の処理の流れを示すシーケンス図である。 本実施の形態4にかかるリンク層におけるDPP受信処理の流れを説明するためのフローチャートである。 本実施の形態4にかかるDPHとDPPの受信順序が逆の場合の各層の処理の流れを示すシーケンス図である。 USB3.1 Gen1においてDPHにCRCエラーが発生した場合の各層の処理の流れを示すシーケンス図である。 USB3.1 Gen2において一般的な実装を行った際に、DPHに所定のエラーが発生した場合の各層の処理の流れを示すシーケンス図である。
以下では、上述した課題を解決するための手段を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
さらに、以下の実施の形態において、その構成要素(動作ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等(個数、数値、量、範囲等を含む)についても同様である。
ここで、以下の実施の形態を想到するに至った経緯について説明する。まず、以前の規格であるUSB3.1 Gen1においてDPHにCRCエラーが発生した場合の各層の処理の流れを図13のシーケンス図を用いて説明する。ここでは、USB3.1 Gen1におけるBulk OUT転送の途中からの動作を示している。すなわち、デバイス装置は、ホスト装置から送信されたシーケンス番号(Sequence Number(Snum))=X−1までのDPを正常に受信済みであるものとする。
そこで、まず、デバイス装置のプロトコル層は、ACK(Snum=X)をホスト装置へ送信する。これに応じて、ホスト装置は、Snum=XのDPH及びDPPをデバイス装置へ送信する。そして、デバイス装置では、物理層及びリンク層にてSnum=XのDPHを受信する。この時、受信したDPHにおいてCRCエラーが検出されたものとする。そこで、USB3.1 Gen1におけるリンク層は、DPHを破棄し、併せて、DPHの後に受信するSnum=XのDPPを破棄する。このとき、当該リンク層は、後段のプロトコル層へSnum=XのDPH及びDPPを転送しない。また、当該リンク層は、DPHの再送要求としてLBADコマンドをホスト装置に対して送信する。
ホスト装置は、LBADコマンドの受信に応じてLRTYコマンドをデバイス装置に対して送信する。ここで、デバイス装置は、ホスト装置からLRTYコマンドを受信するまで、ホスト装置から送信されるデータを無視する。ホスト装置は、LRTYコマンドの送信後に、Snum=XのDPH及びDPPをデバイス装置へ再送信する。デバイス装置のリンク層は、受信したDPHが正常である場合、LGOODコマンドをホスト装置に対して送信し、Snum=XのDPH及びDPPをプロトコル層へ転送する。デバイス装置のプロトコル層は、Snum=XのDPH及びDPPを正常に受信すると、正常受信及び次のデータSnum=X+1の送信要求を示すACK(Snum=X+1)をホスト装置へ送信する。
次に、後続の規格であるUSB3.1 Gen2において一般的な実装を行う場合について説明する。USB3.1 Gen2では、上述したようにDPH内のCRC値がエラーであっても新たに追加されたLength Field Replicaの領域が正常値である場合には、リンク層でDPHのみを破棄し、対応するDPPをプロトコル層に送ることとなった。そのため、DPHがエラーのためDPHは転送されずDPPのみがプロトコル層に転送された場合に備えて、プロトコル層に専用のバッファを設けることが考えられる。この専用のバッファは、元々搭載されている特定のエンドポイント用のデータバッファとは異なるものである。そして、DPHが再送された後に、Snumが対応する受信済みのDPPと再送されたDPHとの格納順序を入れ替える制御回路もプロトコル層に設けることが考えられる。そのため、USB3.1 Gen2に対応するために一般的な実装を行う場合、これらのバッファや制御回路の追加による回路面積が増加してしまう。例えば、データバッファには、概算で最低1パケット(1024バイト)分のデータを格納するためのフリップフロップ又はRAM(Random Access Memory)が必要と考えられる。
続いて、USB3.1 Gen2において一般的な実装を行った際に、DPHにCRCエラーが発生した場合の各層の処理の流れを図14のシーケンス図を用いて説明する。ここでは、USB3.1 Gen2におけるBulk OUT転送の途中からの動作を示している。すなわち、デバイス装置は、ホスト装置から送信されたSnum=X−1までのDPを正常に受信済みであるものとする。
そこで、USB3.1 Gen2に対応するホスト装置は、Snum=XのDPH及びDPPをデバイス装置へ送信する。そして、USB3.1 Gen2に対応するデバイス装置では、物理層及びリンク層にてSnum=XのDPHを受信する。この時、受信したDPHにおいてCRCエラーが検出され、かつ、Length Field Replicaの領域が正常値であるものとする。ここで、正常値とは、Length Field Replicaの領域の値が一定の範囲内であることをいう。その後、USB3.1 Gen2におけるリンク層は、DPHを破棄し、DPPをプロトコル層へ転送する。また、当該リンク層は、LBADコマンドをホスト装置に対して送信する。
プロトコル層は、受信したDPPを上記で追加されたバッファへ格納する。また、ホスト装置は、LBADコマンドの受信に応じてLRTYコマンドを送信し、続いて、Snum=XのDPHのみをデバイス装置へ再送信する。このとき、再送されるDPHを「DPPなしDPH」(又はNullDPP)と呼ぶこととする。デバイス装置のリンク層は、受信した「DPPなしDPH」が正常である場合、LGOODコマンドをホスト装置に対して送信し、Snum=Xの「DPPなしDPH」をプロトコル層へ転送する。デバイス装置のプロトコル層は、Snum=XのDPHを正常に受信すると、上述した制御回路により、Snum=Xの受信済みのDPPと今回受信したDPHの順序を入れ替えてデータバッファに格納し直す。その後、プロトコル層は、正常受信及び次のデータSnum=X+1の送信要求を示すACK(Snum=X+1)をホスト装置へ送信する。
このように、USB3.1 Gen2において一般的な実装を行った際に、所定のエラーが発生した場合には、上述の課題が生じ得る。そこで、上述の課題を解決するための実施の形態を以下に説明する。
<実施の形態1>
図1は、本実施の形態1にかかるホスト装置1とデバイス装置2の構成を示すブロック図である。ホスト装置1は、USB3.1 Gen2規格に対応するホスト機能を内蔵する半導体装置である。又は、ホスト装置1は、コンピュータ等であってもよい。デバイス装置2は、USB3.1 Gen2規格に対応するペリフェラル機能を内蔵する半導体装置である。ここで、ホスト装置1とデバイス装置2とはUSB3.1IFにより接続されているものとする。尚、ホスト装置1とデバイス装置2とを含む構成をデータ転送システム1000と呼ぶこともできる。
デバイス装置2は、プロトコル層21とリンク層22とを含むデバイスコア20と、データバッファ24と、物理層23とを備える。ここで、リンク層22は、第1の処理部の一例であり、プロトコル層21は、第2の処理部の一例である。尚、第1の処理部は、物理層23とリンク層22とに対応させてもよい。
物理層23は、物理制御部231を備える。物理制御部231は、USB3.1 Gen2規格に対応し、ホスト装置1との間で物理層レベルのデータの送受信を制御する。リンク層22は、リンク制御部221を備える。リンク制御部221は、USB3.1 Gen2規格に対応し、物理層23とのデータの送受信及びプロトコル層21とのデータの送受信を行う。また、リンク制御部221は、送受信されるデータについてリンク層レベルのパケット処理の制御を行う。プロトコル層21は、パイプ制御部211と、リンクIF212と、データIF213とを備える。リンクIF212は、USB3.1 Gen2規格に対応し、リンク層22とのデータの送受信を行う。データIF213は、データバッファ24とのデータの送受信を行う。パイプ制御部211は、パイプIN/OUT214を備える。パイプIN/OUT214は、USB3.1 Gen2規格に対応し、プロトコル層レベルのパケット処理の制御を行う。
データバッファ24は、ホスト装置1の間で送受信するデータを格納するための記憶領域である。データバッファ24には、例えば、DPHやDPPが格納される。
図2は、本実施の形態1にかかるリンク層22におけるDPH受信処理の流れを説明するためのフローチャートである。
まず、リンク層22のリンク制御部221は、ホスト装置1から物理層23を介してDPHを受信する(S101)。次に、リンク制御部221は、Length Field Replica領域が正常値か否かを判定する(S102)。ここで、当該領域が正常値、つまり、一定の範囲内の値である場合、リンク制御部221は、受信したDPHがCRCエラーであるか否かを判定する(S103)。CRCエラーである場合、リンク制御部221は、受信したDPHを破棄する(S104)。つまり、リンク層22は、受信したDPHを後段のプロトコル層21へは転送しない。そして、リンク制御部221は、DPHに引き続き受信するDPPについて、プロトコル層21へ転送する(S105)。つまり、リンク層22は、破棄されたDPHのSnumと同じSnumにおけるDPPについては、破棄せずにプロトコル層21へ転送する。また、リンク層22は、物理層23を介してホスト装置1へLBADコマンドを送信する(S106)。
ステップS102においてLength Field Replica領域が正常値でない場合、リンク制御部221は、規定のエラー処理を行う(S107)。尚、当該エラー処理は公知のものであるため、詳細な説明を省略する。尚、ステップS102においては、Length Field Replica領域が正常値か否かの判定だけでなく、CRCエラー以外の他のエラーについても判定されており、CRCエラー以外の何らかのエラーが検出された場合には、ステップS107のエラー処理が行われるものとする。
また、ステップS103において、受信したDPHがCRCエラーでない、つまり、CRCが正常値である場合、リンク制御部221は、受信したDPH及び引き続き受信するDPPについて、後段のプロトコル層21へ転送する(S108)。併せて、リンク層22は、物理層23を介してホスト装置1へLGOODコマンドを送信する(S109)。
図3は、本実施の形態1にかかるプロトコル層21におけるDPH受信処理の流れを説明するためのフローチャートである。まず、プロトコル層21は、リンク層22からDPHを受信する(S201)。次に、プロトコル層21は、リンクIF212において、受信したDPHが正常か否かを判定する(S202)。DPHが正常な場合、リンクIF212において、は、受信したDPHがNullDPPか否かを判定する(S203)。つまり、プロトコル層21は、受信したDPHの後続にDPPがあるか否か、言い換えると、受信したDPHの直後に、同じSnumのDPPが存在するか否かを判定する。ステップS203において、受信したDPHがNullDPPの場合、プロトコル層21は、Retry ACK(Snum=X)を、リンク層22及び物理層23を介してホスト装置1へ送信する(S204)。ここで、Retry ACKは、プロトコル層でのDPの再送要求を示す。
ステップS203において、リンクIF212が受信したDPHがNullDPPではないと判定した場合、プロトコル層21は、受信したDPHをデータバッファ24に保存し(S205)、後述するDPP受信処理を行う(S206)。また、ステップS202において、リンクIF212がDPHが正常でないと判定した場合、プロトコル層21は、規定のエラー処理を行う(S207)。
図4は、本実施の形態1にかかるプロトコル層21におけるDPP受信処理の流れを説明するためのフローチャートである。尚、図4は、図3のステップS206の詳細な処理として実行される場合もあるが、DPHの受信処理なしに単独で実行される場合もあるものとする。
まず、プロトコル層21は、リンク層22からDPPを受信する(S211)。次に、プロトコル層21は、リンクIF212において、受信したDPPが正常か否かを判定する(S212)。受信したDPPが正常な場合、リンクIF212は、DPHなしのDPPであるか否かを判定する(S213)。つまり、プロトコル層21は、今回受信したDPPの前に同じSnumのDPHが受信済みか否か、又は、以前に同じSnumのDPPを破棄したか否かを判定する。ステップS213において、DPHなしのDPPであると判定した場合、プロトコル層21は、受信したDPPを破棄する(S214)。例えば、プロトコル層21は、受信したDPPをデータバッファ24に保存しない。または、プロトコル層21は、受信したDPPをデータバッファ24に保存するが、後続のデータ保存において上書き可能とする。
ステップS213において、リンクIF212がDPHなしのDPPではないと判定した場合、つまり、直前に同じSnumのDPHを受信及び保存済みの場合、プロトコル層21は、受信したDPPをデータバッファ24に保存する(S215)。併せて、プロトコル層21は、ACK(Snum=X+1)を、リンク層22及び物理層23を介してホスト装置1へ送信する(S216)。
また、ステップS212において、リンクIF212がDPPが正常でないと判定した場合、プロトコル層21は、規定のエラー処理を行う(S217)。
図5は、本実施の形態1にかかるDPHにCRCエラーが発生した場合の各層の処理の流れを示すシーケンス図である。ここでは、USB3.1 Gen2におけるBulk OUT転送の途中からの動作を示している。すなわち、デバイス装置2は、ホスト装置1から送信されたSnum=X−1までのDPを正常に受信済みであるものとする。尚、以後のシーケンス図についても同様である。
そこで、ホスト装置1は、Snum=XのDPH及びDPPをデバイス装置2へ送信する。そして、デバイス装置2では、物理層23及びリンク層22にてSnum=XのDPHを受信する。この時、受信したDPHにおいてCRCエラーが検出され、かつ、Length Field Replicaの領域が正常値であるものとする。その後、リンク層22は、DPHを破棄し、DPPをプロトコル層21へ転送する。また、リンク層22は、LBADコマンドを物理層23を介してホスト装置1に対して送信する。
プロトコル層21は、受信したDPPが正常であり、かつ、DPHなしのDPPであるため、受信したDPPを破棄する。また、ホスト装置1は、LBADコマンドの受信に応じてLRTYコマンドを送信し、続いて、Snum=Xの「DPPなしDPH」をデバイス装置2へ再送信する。
リンク層22は、受信した「DPPなしDPH」が正常であるため、LGOODコマンドをホスト装置1に対して送信し、Snum=Xの「DPPなしDPH」をプロトコル層21へ転送する。プロトコル層21は、Snum=Xの「DPPなしDPH」を正常に受信すると、DPHをデータバッファ24に格納し、併せて、Retry ACK(Snum=X)を、リンク層22及び物理層23を介してホスト装置1へ送信する。ホスト装置1は、Retry ACK(Snum=X)に応じて、Snum=XのDPH及びDPPをデバイス装置2へ送信する。ここでは、DPH及びDPPが正常に受信されるものとする。
そのため、リンク層22は、受信したDPHのCRCエラーを検出せず、Snum=XのDPH及びDPPをそのままプロトコル層21へ転送し、ホスト装置1に対してLGOODコマンドを送信する。プロトコル層21は、受信したDPH及びDPPをデータバッファ24へ格納し、ACK(Snum=X+1)をホスト装置1へ送信する。
このように、本実施の形態1では、プロトコル層においてDPHなしのDPPの受信時はDPPを格納せずに破棄し、次回のDPの正常な受信時にホスト装置に対し再送要求であるRetry ACK TPを送信することで、確実にDP受信を行う事が出来る。
それ故、DPHなしのDPPの受信時の一時的に必要なDPP格納領域が不要になることで、DPP格納領域分の回路面積を低減することが出来る。また、一時的に格納したDPPを次回のDPH受信時の情報から本来格納すべき格納領域への格納制御が不要になることで、格納制御分の回路面積を低減することが出来る。さらに、本実施の形態1は、USB3.1 Gen2規格に対応するホスト装置1に改変を加えることなく適用できる点で有益である。
ここで、本実施の形態1は次のように表現することができる。すなわち、デバイス装置は、ホスト装置から受信した第1のパケットの第1のヘッダに所定のエラーが含まれる場合、当該第1のヘッダを破棄し、当該第1のパケットの第1のペイロードを後段へ送信する第1の処理部と、前記第1の処理部から受信した前記第1のペイロードを破棄し、前記第1のパケットの再送要求(例えば、Retry ACK)を前記ホスト装置へ送信する第2の処理部と、を備える。これにより、上述したように回路面積の増加を抑制することができる。
さらに、本実施の形態1にかかる前記第1の処理部は、前記第1のヘッダに前記所定のエラーが含まれる場合、当該第1のヘッダの再送要求(例えば、LBADコマンド)を前記ホスト装置へ送信し、前記ホスト装置から前記第1のヘッダの再送要求に応じたペイロードなしの第2のパケットの第2のヘッダ(例えば、DPPなしDPH)を受信し、前記受信した第2のヘッダが正常な場合に、当該第2のヘッダを前記第2の処理部へ送信し、前記第2の処理部は、前記第1の処理部から前記第2のヘッダを受信した場合に、前記第1のパケットの再送要求を前記ホスト装置へ送信するものである。これにより、USB3.1 Gen2規格の既存のコマンドを有効活用しつつ、回路面積の増加を抑制できる。
さらに、前記第1の処理部は、USB(Universal Serial Bus)3.1 Gen2に対応するリンク層であり、前記第2の処理部は、USB3.1 Gen2に対応するプロトコル層であることが望ましい。
また、前記所定のエラーは、前記第1のヘッダのCRCがエラー値、かつ、Length Field Replica領域が正常値である。これにより、USB3.1 Gen1からUSB3.1 Gen2への規格変更に柔軟に対応することができる。
<実施の形態2>
本実施の形態2は、上述した実施の形態1の改良例である。すなわち、本実施の形態2にかかる前記第1の処理部は、前記第1のヘッダを破棄した際に、疑似的な正常受信応答を前記ホスト装置へ送信し、前記第2の処理部は、前記第1のペイロードを破棄すると共に、前記第1のパケットの再送要求を前記ホスト装置へ送信するものである。これにより、実施の形態1と比べてデータ再送処理時間を短縮することができる。
図6は、本実施の形態2にかかるリンク層22におけるDPH受信処理の流れを説明するためのフローチャートである。図6では、図2のステップS106がステップS106aに置き換わったものである。その他のステップは図2と同等であるため適宜、説明を省略する。
具体的には、リンク制御部221は、所定のエラーを含むDPHを破棄(S104)した後、後続のDPPをプロトコル層21へ転送し(S105)つつ、疑似的にLGOODコマンドをホスト装置1へ送信する(S106a)。尚、疑似的なLGOODコマンドの内容は、通常のLGOODコマンドと同等であるものとする。言い換えると、リンク層22は、ステップS106aにおいて、LBADコマンドの代わりにLGOODコマンドをホスト装置1へ送信する。
図7は、本実施の形態2にかかるプロトコル層21におけるDPP受信処理の流れを説明するためのフローチャートである。図7は、図4のステップS214と併せて、ステップS218を実行することが追加されたものである。その他のステップは図2と同等であるため適宜、説明を省略する。
具体的には、ステップS213において、リンクIF212において、DPHなしのDPPであると判定した場合、プロトコル層21は、受信したDPPを破棄する(S214)と共に、Retry ACK(Snum=X)を、リンク層22及び物理層23を介してホスト装置1へ送信する(S218)。
図8は、本実施の形態2にかかるDPHにCRCエラーが発生した場合の各層の処理の流れを示すシーケンス図である。まず、ホスト装置1は、Snum=XのDPH及びDPPをデバイス装置2へ送信する。そして、デバイス装置2では、物理層23及びリンク層22にてSnum=XのDPHを受信する。この時、受信したDPHにおいてCRCエラーが検出され、かつ、Length Field Replicaの領域が正常値であるものとする。その後、リンク層22は、DPHを破棄し、DPPをプロトコル層21へ転送する。また、リンク層22は、LBADコマンドの代わりにLGOODコマンドを物理層23を介してホスト装置1に対して送信する。
プロトコル層21は、リンク層22から受信したDPPを破棄する。併せて、プロトコル層21は、Retry ACK(Snum=X)を、リンク層22及び物理層23を介してホスト装置1へ送信する。ホスト装置1は、Retry ACK(Snum=X)に応じて、Snum=XのDPH及びDPPをデバイス装置2へ送信する。以降は、図5と同等である。
つまり、本実施の形態2では、リンク層22が本来LBADコマンドを送信すべきところ正常応答であるLGOODコマンドを送信することと、プロトコル層21がDPHなしDPPを受信した場合に、即時にRetry ACK(Snum=X)を送信するものである。このため、ホスト装置1は、LRTYコマンドや「DPPなしDPH」を送信することなく、Snum=XのDPH及びDPPを再送することができる。それ故、実施の形態1と比べて、LRTYコマンドや「DPPなしDPH」の送信及び受信に伴う各処理時間を短縮できる。また、本実施の形態2は、実施の形態1と同様、USB3.1 Gen2規格に対応するホスト装置1に改変を加えることなく適用できる点で有益である。
また、本実施の形態2では、リンク層からLBADコマンドを送らないことでホスト装置のLRTYコマンド及び再送のDPPなしDPHを待たずに、プロトコル層にてRetry ACKを送る事で、実施の形態1よりも転送パフォーマンスを向上出来る。
<実施の形態3>
本実施の形態3は、上述した実施の形態1の別の改良例である。すなわち、本実施の形態3にかかるホスト装置は、前記第1の処理部からの前記第1のヘッダの再送要求を受信した場合に、前記第1のペイロードの送信を中止し、前記第2のパケットの送信を開始するものである。これにより、実施の形態1と比べて、所定のエラー時の再送時間を短縮することができる。
図9は、本実施の形態3にかかるホスト装置1におけるDP送信処理の流れを説明するためのフローチャートである。まず、ホスト装置1は、DPHをデバイス装置2へ送信する(S301)。続いて、ホスト装置1は、送信したDPHと同じSnumのDPPの送信を開始する(S302)。その後、ホスト装置1は、DPPの送信中に、デバイス装置2からLBADコマンドを受信したか否かを判定する(S303)。LBADコマンドを受信した場合、ホスト装置1は送信中のDPPの送信を中止し(S304)、併せて、LRTYコマンドをデバイス装置2へ送信する(S305)。以降、ホスト装置1は、DPH及びDPPを再送する。
図10は、本実施の形態3にかかるDPHにCRCエラーが発生した場合の各層の処理の流れを示すシーケンス図である。まず、ホスト装置1は、Snum=XのDPH及びDPPをデバイス装置2へ送信する。但し、DPPは送信中とする。そして、デバイス装置2では、物理層23及びリンク層22にてSnum=XのDPHを受信する。この時、受信したDPHにおいてCRCエラーが検出され、かつ、Length Field Replicaの領域が正常値であるものとする。その後、リンク層22は、DPHを破棄し、プロトコル層21へのDPPの転送を開始する。また、リンク層22は、LBADコマンドを物理層23を介してホスト装置1に対して送信する。
ここで、ホスト装置1は、LBADコマンドの受信に応じて、送信中のSnum=XのDPPの送信を中止する。そして、ホスト装置1は、LRTYコマンドを送信し、続いて、Snum=XのDPPなしDPHをデバイス装置2へ再送信する。以降は、図5と同等である。
このように、LBADコマンドを受信後に送信中のDPPは不要になることから、LBADコマンドの受信後、即時にDPP送信を中止し、LRTYコマンドの送信及びDPHの再送動作を早める事で、転送パフォーマンスを向上することが出来る。
<実施の形態4>
本実施の形態4は、同じSnumにおけるDPHとDPPの受信順序が逆になった場合に、リンク層に適用できる処理について説明する。
図11は、本実施の形態4にかかるリンク層22におけるDPP受信処理の流れを説明するためのフローチャートである。まず、リンク層22は、DPPを受信する(S401)。次に、リンク制御部221は、当該DPPのSnumと同じSnumのDPHが受信前であるか否かを判定する(S402)。DPHの受信前の場合、リンク層22は、DPPを破棄する(S403)。DPHの受信後の場合、リンク層22は、DPPをプロトコル層21へ転送する。
図12は、本実施の形態4にかかるDPHとDPPの受信順序が逆の場合の各層の処理の流れを示すシーケンス図である。まず、ホスト装置1は、Snum=XのDPP、DPHの順序でデバイス装置2へ送信する。リンク層22は、ホスト装置1から物理層23を介してDPPを受信する。このとき、リンク層22は、Snum=XのDPHの受信前であるため、受信したDPPを破棄する。その後、リンク層22は、Snum=XのDPHを受信し、正常であるため、受信したDPHをプロトコル層21へ転送し、LGOODコマンドを物理層23を介してホスト装置1へ送信する。プロトコル層21は、リンク層22からDPHを正常に受信するが、NullDPPと判定し、ホスト装置1に対してRetry ACK(Snum=X)を送信する。以降は、図5と同等である。
尚、図12では、ホスト装置1による送信順序がDPP、DPHであったが、送信順序が正常にDPH、DPPとされても、通信異常等により受信順序が前後した場合にも適用可能である。
また、図12において、最初のDPPの次に送信されるDPHが所定のエラーであっても、リンク層22はホスト装置1へLBADコマンドを送信するが、リンク層22からプロトコル層21へは何も送られないこととなる。その場合、実施の形態1と同様に、ホスト装置1からDPPなしDPHが送信され、以降、図5と同じ処理となる。
尚、本実施の形態4は、以下の付記のように表現することもできる。
(付記)ホスト装置から第1のパケットの第1のペイロードを受信した場合に、当該第1のパケットの第1のヘッダが受信済みか否かを判定し、受信済みでないと判定した場合に、当該第1のペイロードを破棄し、前記ホスト装置から受信した前記第1のパケットの前記第1のヘッダが正常な場合に、後段へ当該第1のヘッダを送信する第1の処理部と、
前記第1の処理部から前記第1のヘッダを受信し、前記第1のペイロードを受信していない場合に、前記第1のパケットの再送要求を前記ホスト装置へ送信する第2の処理部と、
を備えるデバイス装置。
また、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、CPU(Central Processing Unit)等のプロセッサにコンピュータプログラムを実行させることにより実現することも可能である。
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、DVD(Digital Versatile Disc)、BD(Blu-ray(登録商標) Disc)、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
1000 データ転送システム
1 ホスト装置
2 デバイス装置
20 デバイスコア
21 プロトコル層
211 パイプ制御部
212 リンクIF
213 データIF
214 パイプIN/OUT
22 リンク層
221 リンク制御部
23 物理層
231 物理制御部
24 データバッファ

Claims (8)

  1. ホスト装置から受信した第1のパケットの第1のヘッダに所定のエラーが含まれる場合、当該第1のヘッダを破棄し、当該第1のパケットの第1のペイロードを後段へ送信する第1の処理部と、
    前記第1の処理部から受信した前記第1のペイロードが正常であると判定された場合に、前記第1のペイロードを破棄し、前記第1のパケットの再送要求を前記ホスト装置へ送信する第2の処理部と、
    を備え、
    前記第1の処理部は、USB(Universal Serial Bus)3.1 Gen2に対応するリンク層であり、
    前記第2の処理部は、USB3.1 Gen2に対応するプロトコル層である、
    デバイス装置。
  2. 前記第1の処理部は、前記第1のヘッダを破棄した際に、疑似的な正常受信応答を前記ホスト装置へ送信し、
    前記第2の処理部は、前記第1のペイロードを破棄すると共に、前記第1のパケットの再送要求を前記ホスト装置へ送信する
    請求項1に記載のデバイス装置。
  3. 前記第1の処理部は、
    前記第1のヘッダに前記所定のエラーが含まれる場合、当該第1のヘッダの再送要求を前記ホスト装置へ送信し、
    前記ホスト装置から前記第1のヘッダの再送要求に応じたペイロードなしの第2のパケットの第2のヘッダを受信し、
    前記受信した第2のヘッダが正常な場合に、当該第2のヘッダを前記第2の処理部へ送信し、
    前記第2の処理部は、
    前記第1の処理部から前記第2のヘッダを受信した場合に、前記第1のパケットの再送要求を前記ホスト装置へ送信する
    請求項1に記載のデバイス装置。
  4. 前記所定のエラーは、前記第1のヘッダのCRCがエラー値、かつ、Length Field Replica領域が正常値である、
    請求項1に記載のデバイス装置。
  5. 請求項3に記載のデバイス装置に前記第1のパケットを送信するホスト装置であって、
    前記第1の処理部からの前記第1のヘッダの再送要求を受信した場合に、前記第1のペイロードの送信を中止し、前記第2のパケットの送信を開始する
    ホスト装置。
  6. 前記ホスト装置は、USB(Universal Serial Bus)3.1 Gen2に対応する
    請求項5に記載のホスト装置。
  7. 第1のパケットを送信するホスト装置と、
    前記ホスト装置から前記第1のパケットを受信するデバイス装置と、を備え、
    前記デバイス装置は、
    前記第1のパケットの第1のヘッダに所定のエラーが含まれる場合、当該第1のヘッダを破棄し、当該第1のパケットの第1のペイロードを後段へ送信する第1の処理部と、
    前記第1の処理部から受信した前記第1のペイロードが正常であると判定された場合に、前記第1のペイロードを破棄し、前記第1のパケットの再送要求を前記ホスト装置へ送信する第2の処理部と、
    を備え、
    前記第1の処理部は、USB(Universal Serial Bus)3.1 Gen2に対応するリンク層であり、
    前記第2の処理部は、USB3.1 Gen2に対応するプロトコル層である、
    データ転送システム。
  8. 前記ホスト装置は、
    前記第1の処理部からの前記第1のヘッダの再送要求を受信した場合に、前記第1のペイロードの送信を中止し、ペイロードなしの第2のパケットの送信を開始する
    請求項7に記載のデータ転送システム。
JP2016179288A 2016-09-14 2016-09-14 デバイス装置及びデータ転送システム Active JP6706180B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2016179288A JP6706180B2 (ja) 2016-09-14 2016-09-14 デバイス装置及びデータ転送システム
US15/640,472 US10218468B2 (en) 2016-09-14 2017-07-01 USB device, data transfer system and data transfer method
CN201710669499.9A CN107818068B (zh) 2016-09-14 2017-08-08 Usb装置、数据传送系统和数据传送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016179288A JP6706180B2 (ja) 2016-09-14 2016-09-14 デバイス装置及びデータ転送システム

Publications (2)

Publication Number Publication Date
JP2018045417A JP2018045417A (ja) 2018-03-22
JP6706180B2 true JP6706180B2 (ja) 2020-06-03

Family

ID=61561123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016179288A Active JP6706180B2 (ja) 2016-09-14 2016-09-14 デバイス装置及びデータ転送システム

Country Status (3)

Country Link
US (1) US10218468B2 (ja)
JP (1) JP6706180B2 (ja)
CN (1) CN107818068B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111886759A (zh) 2018-03-13 2020-11-03 日本电气株式会社 光学中继器、光学中继器的制造方法和光学信号的中继方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804243B1 (en) * 1999-11-22 2004-10-12 Texas Instruments Incorporated Hardware acceleration for segmentation of message packets in a universal serial bus peripheral device
EP2424179B1 (en) * 2004-07-14 2014-01-15 Nippon Telegraph And Telephone Corporation Packet transmission method and packet transmission device
KR101442278B1 (ko) * 2007-03-30 2014-09-22 소니 주식회사 정보 처리 장치 및 방법
CN101043296A (zh) * 2007-04-28 2007-09-26 华为技术有限公司 请求重传数据的方法、数据重传方法和数据传输系统
US9749448B2 (en) * 2014-11-25 2017-08-29 Intel Corporation Header parity error handling
US9893975B2 (en) * 2015-06-25 2018-02-13 Microsoft Technology Licensing, Llc In-line network tap
WO2017003047A1 (ko) * 2015-07-02 2017-01-05 엘지전자(주) 무선 통신 시스템에서 상향링크 데이터 송수신 방법 및 이를 위한 장치
US10474604B2 (en) * 2016-04-01 2019-11-12 Intel Corporation Transmitting universal serial bus (USB) data over alternate mode connection

Also Published As

Publication number Publication date
CN107818068B (zh) 2023-07-25
US20180076933A1 (en) 2018-03-15
US10218468B2 (en) 2019-02-26
CN107818068A (zh) 2018-03-20
JP2018045417A (ja) 2018-03-22

Similar Documents

Publication Publication Date Title
CN111512603B (zh) 一种数据传输方法及第一设备
CN105684396B (zh) 无线系统中的tcp流量自适应
US10341469B2 (en) Data transmission method and apparatus and data receiving method and apparatus
US20060245430A1 (en) Method and Apparatus of a Procedure for Receiving Window Size Reconfiguration in a Communication System
US9954790B2 (en) Method for flow control in network
JP2015188163A (ja) データ受信装置、データ受信装置の制御方法及びデータ送信装置とデータ受信装置とを有するデータ送受信システム
US20120328038A1 (en) Transmission system, transmission device and method for controlling transmission device
JP2019106697A (ja) 相互接続ネットワークでのメッセージ再送遅延を動的に管理するための方法及びデバイス
CN103973414A (zh) 一种数据传输方法及装置
JP6706180B2 (ja) デバイス装置及びデータ転送システム
WO2021152369A1 (en) Dynamic uplink end-to-end data transfer scheme with optimized memory path
CN113973091A (zh) 一种报文处理方法、网络设备以及相关设备
KR20160052422A (ko) 네트워크에서 플로우 컨트롤 방법
US10256948B2 (en) Low latency, automatic repeat request (“ARQ”) in a multi-device communications link
CN111641565A (zh) 一种以太网报文的传输方法、装置及系统
JP2011229082A (ja) 伝送装置、伝送プログラム及び伝送方法
US8730825B2 (en) Packet retransmission optimization in wireless network
KR100966925B1 (ko) 패킷 신호 프로세싱 아키텍쳐
WO2017054203A1 (zh) 一种数据传输方法及装置
JP2019114947A (ja) 通信装置、通信装置の制御方法およびプログラム
JP3148733B2 (ja) 信号処理装置及び信号処理システム
JP6222724B2 (ja) Usbデバイス、usbシステム、データ転送方法、及びプログラム
CN109032851B (zh) 一种链路故障确定方法和装置
JP7332660B2 (ja) 中継装置、プログラム、システム、通信端末及び方法
CN110289937B (zh) 延迟响应方未就绪否定应答

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200402

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: 20200421

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200515

R150 Certificate of patent or registration of utility model

Ref document number: 6706180

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150