JP6003136B2 - Data relay device - Google Patents

Data relay device Download PDF

Info

Publication number
JP6003136B2
JP6003136B2 JP2012065850A JP2012065850A JP6003136B2 JP 6003136 B2 JP6003136 B2 JP 6003136B2 JP 2012065850 A JP2012065850 A JP 2012065850A JP 2012065850 A JP2012065850 A JP 2012065850A JP 6003136 B2 JP6003136 B2 JP 6003136B2
Authority
JP
Japan
Prior art keywords
packet
data
tlp
port
retransmission
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
JP2012065850A
Other languages
Japanese (ja)
Other versions
JP2013196615A (en
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2012065850A priority Critical patent/JP6003136B2/en
Publication of JP2013196615A publication Critical patent/JP2013196615A/en
Application granted granted Critical
Publication of JP6003136B2 publication Critical patent/JP6003136B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、機器間でデータを中継するデータ中継装置に関する。   The present invention relates to a data relay device that relays data between devices.

ローカルバスの規格であるPCI(Peripheral Component Interconnect) Express(以下、「PCIe」と略称する。)は、PCやサーバ、組み込み機器内の通信などで利用される高速データ転送バスの規格として広く知られている。例えば、特許文献1においては、このPCIe規格の構造として、物理層、データリンク層、トランザクション層の3層からなることが示されている。   PCI (Peripheral Component Interconnect) Express (hereinafter abbreviated as “PCIe”), which is a standard for local buses, is widely known as a standard for high-speed data transfer buses used in communications within PCs, servers, and embedded devices. ing. For example, Patent Document 1 shows that the structure of the PCIe standard includes three layers: a physical layer, a data link layer, and a transaction layer.

トランザクション層は、CPUやデバイスから発行されたリクエスト(読み取り/書き込み要求)を受け取り、ヘッダ、データ、及びECRCを含むトランザクション層パケット(Transaction Layer Packet、以下、TLPと称す)化し、データリンク層に転送する。データリンク層は、PCIeリンク経由でのパケットの伝送を確実に行うために、データの整合性を維持する機能を有しており、トランザクション層から受け取ったTLPにシーケンス番号、LCRCを付加してデータリンク層パケット(Datalink Layer Packet、以下DLLPと称す)を作成して物理層に転送する。シーケンス番号は、全てのパケットが届いたか否かを、LCRCはパケットの中身が変わっていないかどうかを、パケットの受信側のデータリンク層で確認するためのものである。物理層は、データリンク層から受け取ったDLLPの先頭と末尾にフレーミングシンボルを付加し、パケットをシリアルデータとして転送する機能を有している。   The transaction layer receives a request (read / write request) issued from the CPU or device, converts it to a transaction layer packet (transaction layer packet, hereinafter referred to as TLP) including a header, data, and ECRC, and transfers it to the data link layer To do. The data link layer has a function of maintaining data integrity in order to reliably transmit packets via the PCIe link, and adds a sequence number and LCRC to the TLP received from the transaction layer. A link layer packet (Datalink Layer Packet, hereinafter referred to as DLLP) is created and transferred to the physical layer. The sequence number is used to confirm whether or not all the packets have arrived, and the LCRC confirms whether or not the contents of the packets have changed in the data link layer on the packet receiving side. The physical layer has a function of adding a framing symbol to the beginning and end of the DLLP received from the data link layer and transferring the packet as serial data.

上述のような3層の構造をもったPCIeの従来の動作概念を説明する。図17においては、データ中継装置100では、図中の左側に位置し、上流側の機器と接続されるPCIe回路100aと、図中の右側に位置し下流側の機器に接続されるPCIe回路100bとを有している。PCIe回路100aからTLPを受信し、PCIe回路100bへと中継する場合の説明を以下に行う。   A conventional operation concept of PCIe having the three-layer structure as described above will be described. In FIG. 17, in the data relay device 100, a PCIe circuit 100a that is located on the left side in the figure and connected to an upstream device, and a PCIe circuit 100b that is located on the right side in the figure and is connected to a downstream device. And have. A case where the TLP is received from the PCIe circuit 100a and relayed to the PCIe circuit 100b will be described below.

PCIe回路100aの受信ポートRXに送信元の機器からのTLPが到着すると、エラー検出部101aはCRC(Cyclic Redundancy Check)の値を参照して、TLPにエラーが含まれているか否かの判定を行う。TLPのエラーが無いと判定された場合、エラー検出部101aはPCIe回路100aの送信ポートTXへACKパケットを転送する。一方、TLPのエラーがあると判定された場合は、エラー検出部101aはNakパケットをPCIe回路100aの送信ポートTXへ転送するとともに、受信したTLPを破棄する。   When the TLP from the transmission source device arrives at the reception port RX of the PCIe circuit 100a, the error detection unit 101a refers to a CRC (Cyclic Redundancy Check) value to determine whether or not an error is included in the TLP. Do. When it is determined that there is no TLP error, the error detection unit 101a transfers an ACK packet to the transmission port TX of the PCIe circuit 100a. On the other hand, if it is determined that there is a TLP error, the error detection unit 101a transfers the Nak packet to the transmission port TX of the PCIe circuit 100a and discards the received TLP.

TLPのエラーが検出されなかった場合は、TLPはポートアービトレーション回路103に対するコマンド、データ(メモリライト、リード、データなど)に変換されて受信バッファ102aに記憶される。そして、TLPのコマンド、及びデータのポートアービトレーション回路103への転送が完了すると、受信フロー制御部104aは、受信バッファ102aに空きが生じるので、空きサイズをクレジット情報として持つ、データ制御用(FC)パケットをPICe回路100aの送信ポートTXへと送信する。   When no TLP error is detected, the TLP is converted into a command and data (memory write, read, data, etc.) for the port arbitration circuit 103 and stored in the reception buffer 102a. When the transfer of the TLP command and data to the port arbitration circuit 103 is completed, the reception flow control unit 104a has a space in the reception buffer 102a. The packet is transmitted to the transmission port TX of the Pice circuit 100a.

ポートアービトレーション回路103は、PCIe回路100aから受信したTLPのコマンド、及びデータをPCIe回路100bの送信バッファ105bに記憶させる。送信フロー制御部106bは、下流側の機器の記憶バッファ(図示せず)の容量に空きがあるか否かを判定し、記憶バッファに空きがある場合のみ、PICe回路100bの送信ポートTXより送信バッファ105bに記憶されたTLPを出力させる。下流側の機器の記憶バッファの空き容量は、下流側の機器よりデータフロー制御用(FC)パケットにより、通知されるクレジット情報に基づいて、管理されている。FCパケットは、PICe回路100bの受信ポートRXより受信され、クレジット検出部107bにより抽出されたクレジット情報が、PICe回路100bの送信フロー制御部106bへと通知される。   The port arbitration circuit 103 stores the TLP command and data received from the PCIe circuit 100a in the transmission buffer 105b of the PCIe circuit 100b. The transmission flow control unit 106b determines whether or not the capacity of the storage buffer (not shown) of the downstream device is empty, and transmits from the transmission port TX of the PICE circuit 100b only when the storage buffer is empty. The TLP stored in the buffer 105b is output. The free space in the storage buffer of the downstream device is managed based on the credit information notified by the data flow control (FC) packet from the downstream device. The FC packet is received from the reception port RX of the Pice circuit 100b, and the credit information extracted by the credit detection unit 107b is notified to the transmission flow control unit 106b of the Pice circuit 100b.

再送バッファ108bは、送信ポートTXより出力されたTLPが欠損などのエラーがあった場合に再送信をするために、出力されたTLPを複製して記憶する。その後、下流側の機器からは正常にTLPを受信したか否かが、ACK(Acknowledge)パケット、又はNak(Negative Acknowledgment)パケットによって通達される。ACK/Nak検出部109bは、通達されたACKパケット、及びNakパケットを確認し、ACKかNakのいずれのパケットを受信したかを再送バッファ制御部110bに通知する。再送バッファ制御部110bは、ACKが通知された場合は、正常にTLPが下流側の機器に届いたので、再送バッファ108bに記憶されていたTLPの複製を破棄するよう指示し、Nakが通知された場合は、再送バッファ108bに保持されたTLPを再度送信するよう指示する。   The retransmission buffer 108b duplicates and stores the output TLP in order to perform retransmission when there is an error such as a missing TLP output from the transmission port TX. Thereafter, whether or not the TLP is normally received from the downstream device is notified by an ACK (Acknowledge) packet or a Nak (Negative Acknowledgment) packet. The ACK / Nak detection unit 109b confirms the notified ACK packet and Nak packet, and notifies the retransmission buffer control unit 110b which packet of ACK or Nak has been received. When the ACK is notified, the retransmission buffer control unit 110b instructs that the TLP copy stored in the retransmission buffer 108b be discarded and the Nak is notified because the TLP has normally reached the downstream device. If the TLP is received, the TLP stored in the retransmission buffer 108b is instructed to be transmitted again.

以上のパケット転送をPCIe回路100a、100bの間で双方向、及び同時並行動作することで、データ中継が行われる。パケット転送による高速シリアル方式では、送信用のバッファ、受信用のバッファ、再送用のバッファを持つことで、データ転送と、エラー発生時の再送によるデータ保障、およびフロー制御が行なわれる。   Data relaying is performed by performing the above-described packet transfer bidirectionally and simultaneously in parallel between the PCIe circuits 100a and 100b. In the high-speed serial system based on packet transfer, a transmission buffer, a reception buffer, and a retransmission buffer are provided to perform data transfer, data guarantee by retransmission when an error occurs, and flow control.

次に、受信バッファ102a、102bの構成と動作について、図18を用いて説明する。受信バッファ102a、102bはP:Posted、NP:Non−Posted、Cpl:Completionの3種類のバッファがそれぞれヘッダ領域とデータ領域に分かれた、合計6つのバッファで構成されている。   Next, the configuration and operation of the reception buffers 102a and 102b will be described with reference to FIG. The reception buffers 102a and 102b are composed of a total of six buffers in which three types of buffers P: Posted, NP: Non-Posted, and Cpl: Completion are each divided into a header area and a data area.

Pは送信先の機器からの応答を期待しないリクエスト(メモリライトなど)が記憶され、NPは送信先の機器からの応答を期待するリクエスト(メモリリードなど)が記憶され、CplはNPリクエストに対する応答パケット(メモリリードリクエストに対して応答されたメモリリードデータなど)が記憶される。   P stores a request (memory write or the like) that does not expect a response from the destination device, NP stores a request (memory read or the like) that expects a response from the destination device, and Cpl responds to the NP request A packet (such as memory read data responded to a memory read request) is stored.

受信バッファ102a、102bは、データリンク層から転送されてくるTLPが入力され、TLPを出力時にポートアービトレーション回路103へのコマンド、およびデータの形式に変換して転送する。受信バッファ102a、102bへと入力されたTLPはヘッダ情報からP、NP、Cplのいずれに該当するかが判別され、対応するバッファ領域へと記憶される。図17では、Pのパケット1、NPのパケット2、Cplのパケット3の順で入力され、それぞれのパケットが対応するバッファに記憶される。対応するバッファに格納されたパケットは、ヘッダ情報がトランザクション層からのコマンドとして、データがトランザクション層からのデータとして、それぞれTLPの種類(P、NP,Cpl)ごとにポートアービトレーション回路103に出力される。   The reception buffers 102a and 102b receive the TLP transferred from the data link layer, and convert the TLP into a command and data format to the port arbitration circuit 103 and transfer it when output. Whether the TLP input to the reception buffers 102a and 102b corresponds to P, NP, or Cpl is determined from the header information and stored in the corresponding buffer area. In FIG. 17, P packet 1, NP packet 2, and Cpl packet 3 are input in this order, and each packet is stored in a corresponding buffer. The packet stored in the corresponding buffer is output to the port arbitration circuit 103 for each TLP type (P, NP, Cpl), with header information as a command from the transaction layer and data as data from the transaction layer. .

また、受信バッファ102a、102bは、ヘッダやデータがバッファに記憶された場合は、消費された容量に応じたクレジット情報を出力し、一方、ポートアービトレーション回路103へヘッダやデータが出力された場合は、空きが生じて増えた容量に応じたクレジット情報を出力する。受信フロー制御部104a、104bは、クレジット情報をFCパケットとして転送する。   The reception buffers 102 a and 102 b output credit information corresponding to the consumed capacity when the header and data are stored in the buffer, while the header and data are output to the port arbitration circuit 103. The credit information corresponding to the increased capacity due to the empty space is output. The reception flow control units 104a and 104b transfer credit information as FC packets.

次に、送信バッファ105a、105bの構成と動作について、図19を用いて説明する。送信バッファ105a、105bも受信バッファ102a、102bと同様、P:Posted、NP:Non−Posted、Cpl:Completionの3種類のバッファがそれぞれヘッダ領域とデータ領域に分かれた、合計6つのバッファで構成されている。   Next, the configuration and operation of the transmission buffers 105a and 105b will be described with reference to FIG. Similarly to the reception buffers 102a and 102b, the transmission buffers 105a and 105b are composed of a total of six buffers in which three types of buffers P: Posted, NP: Non-Posted, and Cpl: Completion are each divided into a header area and a data area. ing.

送信バッファ105a、105bへは、ポートアービトレーション回路103からトランザクション層へと送信されるコマンド、及びデータが入力され、その種類に対応して、P、NP,Cplごとにコマンドはヘッダバッファに、データはデータバッファにそれぞれ記憶される。送信バッファ105a、105bは、送信フロー制御部106a、106bへと出力する。   Commands and data transmitted from the port arbitration circuit 103 to the transaction layer are input to the transmission buffers 105a and 105b. The command is stored in the header buffer for each P, NP, and Cpl, and the data is stored in the transmission buffer 105a and 105b. Each is stored in a data buffer. The transmission buffers 105a and 105b output to the transmission flow control units 106a and 106b.

送信フロー制御部106a、106bは、データリンク層のクレジット検出部107a、107bから送信先の機器の記憶バッファの空き容量を示すクレジット情報が通知され、送信先の機器のバッファに空きがある場合は、対応するヘッダとデータを選択し、TLPを生成しデータリンク層へと転送する。   The transmission flow control units 106a and 106b are notified of credit information indicating the free capacity of the storage buffer of the transmission destination device from the credit detection units 107a and 107b of the data link layer, and when the transmission destination device buffer has a free space The corresponding header and data are selected, a TLP is generated and transferred to the data link layer.

しかしながら、上記に示した中継装置にあっては、PCIe回路はパケットの中継やフロー制御を処理するために、複数のパケットバッファと複雑なフロー制御回路が実装されたトランザクション層が必要となる。このトランザクション層の回路はデータリンク層と比較しても回路規模が非常に大きく、P、NP,Cplのパケットの種類ごとに回路を実装する必要があり、回路チップのコストが高くなってしまう要因にもなっていた。   However, in the relay device described above, the PCIe circuit requires a transaction layer in which a plurality of packet buffers and a complex flow control circuit are mounted in order to process packet relay and flow control. The circuit of the transaction layer is much larger than the data link layer, and it is necessary to mount a circuit for each type of P, NP, and Cpl packets, which increases the cost of the circuit chip. It was also.

また、トランザクション層の動作はデータリンク層とフロー制御の処理に関しては、相互に連動しており、トランザクション層のみを削除して物理層とデータリンクのみのポート構成とした回路を動作させることが不可能だった。さらにトランザクション層もデータリンク層もなくし、物理層のみを実装したデータ中継回路で回路規模を少なくすることは可能だが、その場合は、データリンク層の持つエラー検出やデータの再送の機能まで失われてしまい、長いケーブルを利用した場合など、ACK/Nakの伝達に時間を要する場合にデータ転送効率が低下してしまう問題が発生する。   In addition, the operation of the transaction layer is linked to the data link layer and the flow control processing, and it is not possible to operate a circuit having a port configuration of only the physical layer and the data link by deleting only the transaction layer. It was possible. Furthermore, it is possible to reduce the circuit scale with a data relay circuit with only the physical layer without the transaction layer and data link layer, but in that case, the error detection and data retransmission functions of the data link layer are lost. As a result, there is a problem that the data transfer efficiency decreases when it takes time to transmit ACK / Nak, such as when a long cable is used.

本発明は、上記に鑑みてなされたものであって、エラー検出やデータ再送機能を損なうことなく回路規模を小さくすることができるデータ中継装置を提供することにある。   The present invention has been made in view of the above, and it is an object of the present invention to provide a data relay device capable of reducing the circuit scale without impairing error detection and data retransmission functions.

上述した課題を解決し、目的を達成するために、本発明は、第1の機器に接続される第1のポートと、第2の機器に接続される第2のポートとが接続したデータ中継装置であって、データフロー制御用パケット、及びデータパケットを記憶する記憶部と、前記第1のポート、又は前記第2のポートから受信した前記データフロー制御用パケット、及び前記データパケットの前記記憶部への書き込みを制御する書込み制御部と、前記記憶部へ書き込まれた前記データフロー制御用パケット、及び前記データパケットを前記書き込みのタイミングと非同期に読み出して、前記第1のポート、又は前記第2のポート送信する読出し制御部と、送信した前記データパケットが送信先の前記第1の機器、又は前記第2の機器に正常に送信されたか否かを判断し、送信されたと判断された場合は、前記記憶部から送信した前記データパケットを削除するとともに、送信されていないと判断された場合は、前記記憶部から前記データパケットを読み出して再送するよう指示する再送制御部と、を備えることを特徴とする。 To solve the above problems and achieve the object, the present invention includes a first port connected to the first device, and a second port connected to the second device and connection data a relay device, a storage unit that stores data flow control packet, and data packets, the first port or the second port or we received the data flow control packet, and the data packet A write control unit that controls writing to the storage unit, the data flow control packet written to the storage unit , and the data packet are read asynchronously with the write timing, the first port, or a read control unit to be transmitted to the second port, the first device of the data packets transmitted destination, or whether it is successfully transmitted to the second device When it is determined that the data packet has been transmitted, the data packet transmitted from the storage unit is deleted, and when it is determined that the data packet has not been transmitted, the data packet is read from the storage unit and retransmitted. And a retransmission control unit for instructing.

本発明によれば、エラー検出やデータ再送機能を損なうことなく回路規模を小さくすることができるという効果を奏する。   According to the present invention, there is an effect that the circuit scale can be reduced without impairing the error detection or data retransmission function.

図1は、実施形態の2つのホスト間でPCIeケーブル規格に準拠した情報通信を行う通信システムの概念図である。FIG. 1 is a conceptual diagram of a communication system that performs information communication conforming to the PCIe cable standard between two hosts according to the embodiment. 図2は、実施形態の通信システムのケーブル接続部の具体的な構成例を示す図である。FIG. 2 is a diagram illustrating a specific configuration example of the cable connection unit of the communication system according to the embodiment. 図3は、実施形態の通信システムのケーブル接続部の構成において、第1の機器が第2の機器に対してPCIeの5レーン相当の通信帯域が必要なデータ転送を実行した場合のデータフローの一例を示す図である。FIG. 3 shows a data flow when the first device executes data transfer that requires a communication band corresponding to 5 lanes of PCIe to the second device in the configuration of the cable connection unit of the communication system of the embodiment. It is a figure which shows an example. 図4は、実施形態のPCIe中継回路の構成例を示す図である。FIG. 4 is a diagram illustrating a configuration example of the PCIe relay circuit according to the embodiment. 図5は、実施形態のTLP、及びDLLPのパケット構造を示す図である。FIG. 5 is a diagram illustrating a packet structure of the TLP and the DLLP according to the embodiment. 図6は、実施形態の再送バッファの構成、及び動作を示す概念図である。FIG. 6 is a conceptual diagram illustrating the configuration and operation of the retransmission buffer according to the embodiment. 図7は、実施形態のPCIe中継装置の動作を示す図である。FIG. 7 is a diagram illustrating an operation of the PCIe relay device according to the embodiment. 図8は、実施形態のPCIe中継装置の動作を示す図である。FIG. 8 is a diagram illustrating an operation of the PCIe relay device according to the embodiment. 図9は、実施形態のPCIe中継装置の動作を示す図である。FIG. 9 is a diagram illustrating an operation of the PCIe relay device according to the embodiment. 図10は、実施形態のPCIe中継装置の動作を示す図である。FIG. 10 is a diagram illustrating an operation of the PCIe relay device according to the embodiment. 図11は、実施形態のPCIe中継装置の動作を示す図である。FIG. 11 is a diagram illustrating an operation of the PCIe relay device according to the embodiment. 図12は、実施形態のPCIe中継装置の動作を示す図である。FIG. 12 is a diagram illustrating an operation of the PCIe relay device according to the embodiment. 図13は、実施形態のPCIe中継装置の動作を示す図である。FIG. 13 is a diagram illustrating an operation of the PCIe relay device according to the embodiment. 図14は、実施形態の送信ポートにおける処理の流れを示すフロー図である。FIG. 14 is a flowchart illustrating a processing flow in the transmission port of the embodiment. 図15は、実施形態の受信ポートにおける処理の流れを示すフロー図である。FIG. 15 is a flowchart illustrating a processing flow in the reception port according to the embodiment. 図16は、実施形態の再送バッファにおける処理の流れを示すフロー図である。FIG. 16 is a flowchart illustrating a flow of processing in the retransmission buffer according to the embodiment. 図17は、従来のPCIe中継回路の構成例を示す概念図である。FIG. 17 is a conceptual diagram showing a configuration example of a conventional PCIe relay circuit. 図18は、従来のPCIe中継回路における受信バッファの構成例を示す概念図である。FIG. 18 is a conceptual diagram illustrating a configuration example of a reception buffer in a conventional PCIe relay circuit. 図19は、従来のPCIe中継回路における送信バッファの構成例を示す概念図である。FIG. 19 is a conceptual diagram illustrating a configuration example of a transmission buffer in a conventional PCIe relay circuit.

以下に添付図面を参照して、データ中継装置の実施の形態を詳細に説明する。   Embodiments of a data relay device will be described below in detail with reference to the accompanying drawings.

図1は、2つのホスト間でPCIeケーブル規格に準拠した情報通信を行う通信システムの概念図である。この図1に示す通信システムは、第1の機器Aと第2の機器Bとを通信可能に接続した通信システムである。第1の機器Aは、制御主体となるCPU1aを備えたホストである。第2の機器Bは、制御主体となるCPU1bを備えたホストである。これら第1の機器Aと第2の機器Bには、それぞれPCIeカードスロットが設けられている。第1の機器Aおよび第2の機器BのPCIeカードスロットには、PCIeケーブルインターフェースボードが装着される。そして、第1の機器AのPCIeケーブルインターフェースボードと、第2の機器BのPCIeケーブルインターフェースボードとが、例えば、複数のケーブルで構成される多レーンケーブルで接続される。   FIG. 1 is a conceptual diagram of a communication system that performs information communication based on the PCIe cable standard between two hosts. The communication system shown in FIG. 1 is a communication system in which a first device A and a second device B are communicably connected. The first device A is a host including a CPU 1a that is a control subject. The second device B is a host including a CPU 1b that is a control subject. Each of the first device A and the second device B is provided with a PCIe card slot. PCIe cable interface boards are mounted in the PCIe card slots of the first device A and the second device B. Then, the PCIe cable interface board of the first device A and the PCIe cable interface board of the second device B are connected by, for example, a multi-lane cable including a plurality of cables.

図1に戻り、第1の機器Aは、PCIe中継回路10aを備えている。PCIe中継回路10aの上流ポート11aは、ルートコンプレックス2aと接続されている。PCIe中継回路10aの下流ポート11bは、第2の機器Bにおけるエンドポイント2bと接続されている。   Returning to FIG. 1, the first device A includes a PCIe relay circuit 10a. The upstream port 11a of the PCIe relay circuit 10a is connected to the root complex 2a. The downstream port 11b of the PCIe relay circuit 10a is connected to the end point 2b in the second device B.

図2は、本実施形態に係る通信システムのケーブルを介したデータ転送に関わる部分であるケーブル接続部の具体的な構成例を示す図である。本実施形態に係る通信システムは、第1の機器Aに装着されたPCIeケーブルインターフェースボード20aと、第2の機器Bに装着されたPCIeケーブルインターフェースボード20bとが、PCIeの8レーンに対応するx8メタルケーブル21により接続された構成である。なお、本実施形態では、本実施形態に係る通信システムはx8構成に限らず、様々なレーン数に対応した構成とすることができる。   FIG. 2 is a diagram illustrating a specific configuration example of a cable connection unit which is a part related to data transfer via a cable of the communication system according to the present embodiment. In the communication system according to the present embodiment, the PCIe cable interface board 20a attached to the first device A and the PCIe cable interface board 20b attached to the second device B include x8 corresponding to 8 lanes of PCIe. The configuration is connected by a metal cable 21. In the present embodiment, the communication system according to the present embodiment is not limited to the x8 configuration, and can be configured to support various numbers of lanes.

なお、本明細書では、第1の機器Aの構成要素の符号に添え字aを付し、第2の機器Bの構成要素の符号に添え字bを付して、両者を区別している。   In the present specification, the suffix “a” is added to the reference symbol of the component of the first device A, and the suffix “b” is added to the reference symbol of the component of the second device B to distinguish them.

第1の機器Aに装着されるPCIeケーブルインターフェースボード20aには、PCIe中継装置10が実装されている。PCIe中継装置10は、x8上流ポート11aを備える。このx8上流ポート11aは、図示しないx8カードエッジコネクタを介して、ルートコンプレックス2aのx8ポートに接続される。また、PCIe中継装置10は、x8下流ポート11bを備える。このx8ポート11bは、それぞれがPCIeの1レーンに対応する(以下、「x1」と表記する。)8本のメタルケーブル21に接続される。PCIe中継装置10の下流ポート11bの各レーンとメタルケーブル21との間には、それぞれリピータ23aが設けられる。リピータ23aは、電気信号の増幅および整形処理を行う。なお、PCIeの1レーンは受信用、送信用それぞれ2つの信号線による差動信号で情報伝送するため、1レーンあたり4本の信号線が必要であるが、本実施形態では1本のケーブルがこれら4本の信号線を含むものとして説明する。   The PCIe relay device 10 is mounted on the PCIe cable interface board 20a attached to the first device A. The PCIe relay device 10 includes an x8 upstream port 11a. The x8 upstream port 11a is connected to the x8 port of the root complex 2a via an x8 card edge connector (not shown). Further, the PCIe relay device 10 includes an x8 downstream port 11b. Each x8 port 11b is connected to eight metal cables 21 corresponding to one lane of PCIe (hereinafter referred to as “x1”). A repeater 23 a is provided between each lane of the downstream port 11 b of the PCIe relay device 10 and the metal cable 21. The repeater 23a performs electric signal amplification and shaping processing. In addition, since one lane of PCIe transmits information by differential signals using two signal lines for reception and transmission, four signal lines are required per lane. In this embodiment, one cable is used. A description will be given assuming that these four signal lines are included.

第2の機器Bに装着されるPCIeケーブルインターフェースボード20bは、エンドポイント2bのx8ポートと、8本のメタルケーブル21とに接続される。エンドポイント2bのx8ポートの各レーンとメタルケーブル21との間には、それぞれリピータ23bが設けられる。リピータ23bは、リピータ23aと同様、電気信号の増幅および整形処理を行う。   The PCIe cable interface board 20b attached to the second device B is connected to the x8 port of the end point 2b and the eight metal cables 21. A repeater 23b is provided between each lane of the x8 port of the end point 2b and the metal cable 21. Similar to the repeater 23a, the repeater 23b performs electric signal amplification and shaping processing.

なお、図2に示す例では第1の機器Aと第2の機器Bとメタルケーブル21により接続しているが、メタルケーブル21に代えて光ケーブルを用いることもできる。メタルケーブル21に代えて光ケーブルを用いた場合、リピータ23a,23bが、光トランシーバに置き換わる。光トランシーバは、電気信号と光信号との変換を行う。   In the example shown in FIG. 2, the first device A and the second device B are connected to the metal cable 21, but an optical cable may be used instead of the metal cable 21. When an optical cable is used instead of the metal cable 21, the repeaters 23a and 23b are replaced with optical transceivers. The optical transceiver performs conversion between an electrical signal and an optical signal.

図3は、図2に示した通信システムのケーブル接続部の構成において、第1の機器Aが第2の機器Bに対してPCIeの5レーン相当の通信帯域が必要なデータ転送を実行した場合のデータフローの一例を示す図である。図3に示す例では、第1の機器Aが5つのDMAC(Direct Memory Access Controller)24を使ってデータ転送を実行している。なお、図3ではケーブル接続部の第1の機器A側のみを図示しており、図中の破線で示す矢印が、第1の機器A内におけるデータフローを示している。   FIG. 3 shows a case where the first device A performs data transfer that requires a communication band corresponding to 5 lanes of PCIe to the second device B in the configuration of the cable connection unit of the communication system shown in FIG. It is a figure which shows an example of this data flow. In the example illustrated in FIG. 3, the first device A executes data transfer using five DMACs (Direct Memory Access Controllers) 24. In FIG. 3, only the first device A side of the cable connection portion is illustrated, and an arrow indicated by a broken line in the drawing indicates a data flow in the first device A.

第1の機器Aには、5つのDMAC24が搭載されている。各DMAC24は、それぞれx1のデータ転送性能を有するものとする。各DMAC24は、第1の機器Aが備えるメモリ25からデータを読み込みながら、読み込んだデータをパケットに分割し、内部バスを経由して、ルートコンプレックス2aのx8ポートにパケットを転送する。ルートコンプレックス2aのx8ポートは、DMAC24から受信したパケットをそれぞれ8bitずつに分割し、8つのレーンすべてに均等に分散して、PCIeケーブルインターフェースボード20aに実装されたPCIe中継装置10のx8上流ポート11aに転送する。PCIe中継装置10は、x8上流ポート11aの各レーンに8bitずつ分割されて送られてくるデータを、再びパケットデータに変換しなおして、x8下流ポート1あbに転送する。x8下流ポート11bは、受信したパケットをそれぞれ再度8bitずつに分割し、8つのレーンすべてに均等に分散して、8本のメタルケーブル21を介して第2の機器B側に転送する。   The first device A is equipped with five DMACs 24. Each DMAC 24 has a data transfer performance of x1. Each DMAC 24 reads data from the memory 25 provided in the first device A, divides the read data into packets, and transfers the packets to the x8 port of the root complex 2a via the internal bus. The x8 port of the route complex 2a divides the packet received from the DMAC 24 into 8 bits each and distributes it evenly over all 8 lanes, and the x8 upstream port 11a of the PCIe relay device 10 mounted on the PCIe cable interface board 20a. Forward to. The PCIe relay device 10 converts the data divided into 8 bits into each lane of the x8 upstream port 11a and converts it again into packet data, and transfers it to the x8 downstream port 1 and b. The x8 downstream port 11b again divides the received packet into 8 bits, distributes it evenly over all 8 lanes, and transfers it to the second device B side via the 8 metal cables 21.

また、図示しない第2の機器B側では、エンドポイント2bのx8ポートにおいて、x8の各レーンに8bitずつ分割されて送られてくるデータを、再びパケットデータに変換しなおして、第2の機器Bが備えるメモリに転送する。   On the second device B side (not shown), the data transmitted after being divided into 8 bits for each x8 lane at the x8 port of the endpoint 2b is converted back into packet data again, and the second device B The data is transferred to the memory included in B.

以上のように、従来の通信システムにおいては、PCIeの5レーン相当の通信帯域が必要なデータ転送を実行する場合でも、x8の構成であれば、8レーンすべてを使ってデータ転送を実行するようにしている。   As described above, in the conventional communication system, even when data transfer that requires a communication band corresponding to 5 lanes of PCIe is executed, if the configuration is x8, data transfer is executed using all 8 lanes. I have to.

続いて、データ中継装置の構成について図4を用いて説明する。図4は、PCIe装置を構成する2つのPCIe中継回路10a、10bの構成の例を示す概念図である。図3に示されるように、PCIe中継回路10a、10bは、物理層30a、30bとデータリンク層40a、40bの2層構造からなる2つの中継回路を備えており、各中継回路10a、10bのデータリンク層40a、40bの間を、データの書き込みと読み出しが非同期に動作するパケット再送バッファ(記憶部)50a、50bが論理的に接続している。   Next, the configuration of the data relay apparatus will be described with reference to FIG. FIG. 4 is a conceptual diagram illustrating an example of the configuration of the two PCIe relay circuits 10a and 10b constituting the PCIe device. As shown in FIG. 3, the PCIe relay circuits 10a and 10b include two relay circuits having a two-layer structure of physical layers 30a and 30b and data link layers 40a and 40b. Between the data link layers 40a and 40b, packet retransmission buffers (storage units) 50a and 50b in which writing and reading of data operate asynchronously are logically connected.

中継回路10a、10bの物理層30a、30bは、第1の機器A、第2の機器Bからの信号の入力を受け付ける受信ポートRXと、第1の機器A、第2の機器Bへと信号を送信する送信ポートTX、を備えている。また、中継回路10a、10bのデータリンク層40a、40bは、再送バッファ50a、50b(記憶部に相当)と、エラー検出部51a、51bと、FC検出部52a、52bと、ACK/Nak検出部53a、53bと、再送バッファ制御部54a、54bと、をそれぞれ備えている。   The physical layers 30a and 30b of the relay circuits 10a and 10b send signals to the reception port RX that receives input of signals from the first device A and the second device B, and to the first device A and the second device B. The transmission port TX is provided. The data link layers 40a and 40b of the relay circuits 10a and 10b include retransmission buffers 50a and 50b (corresponding to a storage unit), error detection units 51a and 51b, FC detection units 52a and 52b, and an ACK / Nak detection unit. 53a and 53b, and retransmission buffer controllers 54a and 54b, respectively.

この中継回路10a、10bでは、データパケットであるトランザクションレイヤパケット(TLP)、エラー制御用のパケットであるDLLP ACK/Nakパケット(以下、「ACK/Nakパケット」)、データフロー制御用パケットであるDLLP FCパケット(以下、「FCパケット」)が送受信される。TLPは、各機器が発行するメモリライトやメモリリード、コンプリーションなどの送信先の機器のアプリケーション層との間でデータ転送を伴うトランザクションを扱うパケットである。   In the relay circuits 10a and 10b, a transaction layer packet (TLP) that is a data packet, a DLLLP ACK / Nak packet (hereinafter, “ACK / Nak packet”) that is an error control packet, and a DLLP that is a data flow control packet. FC packets (hereinafter “FC packets”) are transmitted and received. The TLP is a packet that handles a transaction involving data transfer with the application layer of a destination device such as memory write, memory read, and completion issued by each device.

図5は、TLPのデータ構造を示す概念図である。図5(a)に示されるように、TLPは、ヘッダ領域と、データ領域(ペイロード)と、PSN(Packet Sequence Number)と、LCRC(Link Cyclic Redundancy Check)とを含んでいる。PSNは、パケットを識別するための識別番号でありパケットごとに固有の番号が付与されている。PSNは、パケット転送時にエラーが発生した際にどのパケットがエラーになったかを識別するために使用される。LCRCは、エラー検出のために用いられる領域であり、ヘッダ領域とデータ領域とを対象としてCRCの値を計算した結果である。   FIG. 5 is a conceptual diagram showing the data structure of TLP. As shown in FIG. 5A, the TLP includes a header area, a data area (payload), a PSN (Packet Sequence Number), and an LCRC (Link Cyclic Redundancy Check). The PSN is an identification number for identifying a packet, and a unique number is assigned to each packet. The PSN is used to identify which packet has an error when an error occurs during packet transfer. The LCRC is an area used for error detection, and is a result of calculating a CRC value for the header area and the data area.

図5(b)に示されるように、DLLPは、DLLPの種類を示すType領域と、データ領域と、CRCとを含んでいる。Type領域は、DLLPの種類であるACKパケット、Nakパケット、及びFCパケットのいずれであるかを示す。データはDLLPのTypeによって異なり、例えばACK/Nakパケットの場合はPSN、FCパケットの場合はフロー制御に使われるクレジット情報やVC(Virtual Channel)番号が含まれる。CRCは、Type領域とデータ領域に対して計算された値が含まれる。   As shown in FIG. 5B, the DLLP includes a Type area indicating the type of DLLP, a data area, and a CRC. The Type area indicates which of the ACK packet, Nak packet, or FC packet is the type of DLLP. The data differs depending on the type of DLLP. For example, the ACK / Nak packet includes PSN, and the FC packet includes credit information and VC (Virtual Channel) number used for flow control. The CRC includes values calculated for the Type area and the data area.

データリンク層40a、40bは、TLP、又はFCパケットが一方のPCIe中継回路10a、10bに入力された場合は、再送バッファ50a、50bを介して他方のPCIe中継回路10a、10bへとパケットを転送する。また、データリンク層40a、40bは、ACK/NakパケットがPCIe中継回路10a、10bに入力された場合は、エラー制御を行う。   When the TLP or FC packet is input to one of the PCIe relay circuits 10a and 10b, the data link layers 40a and 40b transfer the packet to the other PCIe relay circuit 10a and 10b via the retransmission buffers 50a and 50b. To do. The data link layers 40a and 40b perform error control when an ACK / Nak packet is input to the PCIe relay circuits 10a and 10b.

エラー検出部51a、51bは、TLP、及びFCパケットを確認して、エラーの有無を判定し、エラーがある場合は、パケットの再送を送信元の機器に対して要求しNakパケットを、エラーがない場合は、パケットを削除してACKパケットをそれぞれ送信元の機器の送信ポートTXへと送信する。   The error detection units 51a and 51b check the TLP and FC packets to determine whether there is an error. If there is an error, the error detection unit 51a or 51b requests the source device to retransmit the packet, If not, the packet is deleted and an ACK packet is transmitted to the transmission port TX of the transmission source device.

次に再送バッファ50a、50bの具体的な構成について図6を用いて説明する。図6は、再送バッファ50a、50bの構成と動作とを概念的に示した概念図である。図6に示されるように、再送バッファ50a、50bにはTLPとDLLPとが混在して記憶されている。再送バッファ50a、50bに転送されてくるDLLPは、エラー検出部51a、51bにおいてエラー制御用のACK/Nakパケットは処理されるため、フロー制御用のFCパケットのみである。再送バッファ50a、50bに記憶されるTLPは、送信元の機器側のPCIe中継回路10a、10bのデータリンク層40a、40bにて付加されたPSNやLCRCの情報が保持された形式で記憶される。DLLPも同様に、送信元の機器側のPCIe中継回路10a、10bのデータリンク層40a、40bが生成した形式で記憶される。   Next, a specific configuration of the retransmission buffers 50a and 50b will be described with reference to FIG. FIG. 6 is a conceptual diagram conceptually showing the configuration and operation of the retransmission buffers 50a and 50b. As shown in FIG. 6, TLP and DLLP are mixedly stored in retransmission buffers 50a and 50b. The DLLP transferred to the retransmission buffers 50a and 50b is only an FC packet for flow control because an error control ACK / Nak packet is processed in the error detection units 51a and 51b. The TLP stored in the retransmission buffers 50a and 50b is stored in a format in which PSN and LCRC information added in the data link layers 40a and 40b of the PCIe relay circuits 10a and 10b on the transmission source device side are retained. . Similarly, the DLLP is stored in a format generated by the data link layers 40a and 40b of the PCIe relay circuits 10a and 10b on the transmission source device side.

再送バッファ50a、50bは、送信元側のPCIe中継回路10a、10bのエラー検出部51a、51bからパケットの入力を受け付けるとともに、送信先側のPCIe中継回路10a、10bの物理層30a、30bの送信ポートTXへとこの受け付けたパケットを送信する。再送バッファ50a、50bは、各パケットが入力された順にパケットを出力するFIFO(First in First Out)形式である。再送バッファ50a、50bはパケットがDLLPの場合は、出力後バッファ領域からパケットを削除し、バッファ領域を開放する。再送バッファ50a、50bは、パケットがTLPの場合はすぐにバッファ領域を開放せず、後述する再送バッファ制御部54a、54bからのTLP削除指示、及びPSNを受信した後に、指示されたPSNで特定されるTLP以前に入力されたTLPが記憶されているバッファ領域を開放する。   The retransmission buffers 50a and 50b receive packet inputs from the error detection units 51a and 51b of the source-side PCIe relay circuits 10a and 10b, and transmit the physical layers 30a and 30b of the destination-side PCIe relay circuits 10a and 10b. The received packet is transmitted to the port TX. The retransmission buffers 50a and 50b are in a FIFO (First in First Out) format in which packets are output in the order in which the packets are input. If the packet is a DLLP, the retransmission buffers 50a and 50b delete the packet from the buffer area after output and release the buffer area. When the packet is a TLP, the retransmission buffers 50a and 50b do not immediately release the buffer area, and are specified by the instructed PSN after receiving the TLP deletion instruction and the PSN from the retransmission buffer control units 54a and 54b described later. The buffer area in which the TLP input before the TLP to be stored is stored is released.

一方、再送バッファ50a、50bは、再送バッファ制御部54a、54bからTLP再送指示、及びPSNを受信した場合に、指示されたTLP以降に入力されたバッファに記憶されているTLPを再送する。再送バッファ50a、50bは、このようにパケットの送信先のPCIe中継回路10a、10bに設けられた再送バッファ制御部54a、54bから再送制御信号(TLP削除指示、及びTLP再送指示)を受け取る。   On the other hand, when the retransmission buffers 50a and 50b receive the TLP retransmission instruction and the PSN from the retransmission buffer control units 54a and 54b, the retransmission buffers 50a and 50b retransmit the TLP stored in the buffer input after the instructed TLP. The retransmission buffers 50a and 50b receive the retransmission control signals (TLP deletion instruction and TLP retransmission instruction) from the retransmission buffer control units 54a and 54b provided in the packet relay PCIe relay circuits 10a and 10b as described above.

また、再送バッファ50a、50bは、送信元のPCIe中継回路10a、10bのデータリンク層40a、40bに設けられたエラー検出部51a、51bに対してバッファフル信号を出力する。バッファフル信号は、再送バッファ50a、50bに空き容量が所定量以下になった場合に出力される。送信元のエラー検出部51a、51bは、バッファフル信号が入力されている間、送信元の機器からTLPを受信するたびに、エラーの有無にかかわらずNakを送信元の機器の送信ポートTXへと出力し、再送バッファ50a、50bの容量がオーバーしないように制御する。   The retransmission buffers 50a and 50b output buffer full signals to the error detection units 51a and 51b provided in the data link layers 40a and 40b of the source PCIe relay circuits 10a and 10b. The buffer full signal is output when the free space in the retransmission buffers 50a and 50b becomes a predetermined amount or less. Each time the transmission source error detection units 51a and 51b receive TLP from the transmission source device while the buffer full signal is being input, Nak is transmitted to the transmission port TX of the transmission source device regardless of the presence or absence of an error. Is output so that the capacity of the retransmission buffers 50a and 50b is not exceeded.

したがって、再送バッファ50a、50bはパケットのリクエスト種類やヘッダ、データの区別なく単一のバッファに記憶可能であり、また仮想チャネルをどれだけ使用したとしても、再送バッファ50a、50bを実装するだけでよいため、トランザクション層を実装した通常のPCIe回路と比較して非常に小さい回路構成でデータ中継を処理することが可能になる。なお、再送バッファ50a、50bのサイズは、使用するケーブル長に合わせて変更することができ、ケーブル経由で接続される機器からのACK/Nakパケットの応答があるまでに要する時間の間だけ再送バッファの容量がオーバーせず、TLPが記憶可能なサイズを実装すればデータ転送効率の低下も発生せず好適である。   Therefore, the retransmission buffers 50a and 50b can be stored in a single buffer regardless of the request type, header, and data of the packet, and no matter how many virtual channels are used, only the retransmission buffers 50a and 50b are implemented. Therefore, it is possible to process data relay with a very small circuit configuration as compared with a normal PCIe circuit mounted with a transaction layer. Note that the size of the retransmission buffers 50a and 50b can be changed according to the cable length to be used, and the retransmission buffer is only used for the time required until there is an ACK / Nak packet response from a device connected via the cable. If the size of the TLP can be stored and the size that can be stored by the TLP is mounted, it is preferable that the data transfer efficiency does not decrease.

次にPCIe回路の動作例を、次の図7から図14のデータフロー図を用いて動作ステップごとに詳しく説明する。図中にて付与されている「()」で囲まれた番号は、データの流れ、および処理の順番を示している。   Next, an example of the operation of the PCIe circuit will be described in detail for each operation step using the data flow diagrams of FIGS. The numbers enclosed in “()” given in the figure indicate the flow of data and the order of processing.

図7は、TLPを送信元の機器から受信し、エラーがなかった場合のデータフローを示している。この図ではPCIe中継回路10aと接続された機器Aが送信元、PCIe中継回路10bと接続された機器Bが送信先となっているが、反対の場合も同様のデータフローとなる。まず、(1)TLPがPCIe中継回路10aの受信ポートRXから入力される。(2)エラー検出部51aは、入力されたTLPのLCRCの値を確認し、エラーの有無を判定する。エラーがない場合は、エラー検出部51aは、ACKパケットを送信ポートTXから送信元の機器Aへと送信する。(3)エラー検出部51aは、PCIe中継回路10bの再送バッファ50bへとTLPを転送し再送バッファ50bに記憶させる。(4)再送バッファ50bに記憶されたTLPは読み出されて、送信先側のPCIe中継回路10bの送信ポートTXへと転送される。このとき、TLPは再送バッファ50bからは削除されずに記憶されたままである。   FIG. 7 shows a data flow when a TLP is received from a transmission source device and there is no error. In this figure, the device A connected to the PCIe relay circuit 10a is the transmission source, and the device B connected to the PCIe relay circuit 10b is the transmission destination. However, in the opposite case, the data flow is the same. First, (1) TLP is input from the reception port RX of the PCIe relay circuit 10a. (2) The error detection unit 51a checks the LCRC value of the input TLP and determines whether there is an error. If there is no error, the error detection unit 51a transmits an ACK packet from the transmission port TX to the transmission source device A. (3) The error detection unit 51a transfers the TLP to the retransmission buffer 50b of the PCIe relay circuit 10b and stores it in the retransmission buffer 50b. (4) The TLP stored in the retransmission buffer 50b is read out and transferred to the transmission port TX of the PCIe relay circuit 10b on the transmission destination side. At this time, the TLP remains stored without being deleted from the retransmission buffer 50b.

図8は、TLPを送信元の機器Aから受信し、エラーがあった場合のデータフローを示している。この図ではPCIe中継回路10aと接続された機器Aが送信元、PCIe中継回路10bと接続された機器Bが送信先となっているが、反対の場合も同様のデータフローとなる。(1)まず、TLPがPCIe中継回路10aの受信ポートRXから入力される。(2)エラー検出部51aは、入力されたTLPのLCRCの値を確認し、エラーの有無を判定する。エラーがある場合は、エラー検出部51aは、Nakパケットを送信ポートTXから送信元の機器Aへと送信する。(3)エラー検出部51aは、入力されたTLPを破棄する。   FIG. 8 shows a data flow when a TLP is received from the transmission source device A and there is an error. In this figure, the device A connected to the PCIe relay circuit 10a is the transmission source, and the device B connected to the PCIe relay circuit 10b is the transmission destination. However, in the opposite case, the data flow is the same. (1) First, TLP is input from the reception port RX of the PCIe relay circuit 10a. (2) The error detection unit 51a checks the LCRC value of the input TLP and determines whether there is an error. If there is an error, the error detection unit 51a transmits the Nak packet from the transmission port TX to the transmission source device A. (3) The error detection unit 51a discards the input TLP.

図9は、TLPを送信元の機器Aから受信し、再送バッファ50bの容量オーバーがあった場合のデータフローを示している。この図ではPCIe中継回路10aと接続された機器Aが送信元、PCIe中継回路10bと接続された機器Bが送信先となっているが、反対の場合も同様のデータフローとなる。(1)再送バッファ50bに空きが無くなった場合、もしくはまもなく空きがなくなる場合、再送バッファ50bは、エラー検出部51aに対してバッファフル信号を出力する。(2)エラー検出部51aは、送信元の機器Aと接続された受信ポートRXからTLPを受信する。(3)エラー検出部51aは、エラー検出部51aに対してバッファフル信号が出力されている状態においては、TLPのエラーの有無にかかわらず、Nakパケットを送信元の機器Aと接続された送信ポートTXへと出力する。(4)そして、エラー検出部51aは、受信したTLPを破棄する。このように制御が行われることで、PCIe中継回路10a、10bに再送バッファ50a、50bの容量がオーバーすることなくパケット転送が可能となる。   FIG. 9 shows a data flow when the TLP is received from the transmission source device A and the capacity of the retransmission buffer 50b is exceeded. In this figure, the device A connected to the PCIe relay circuit 10a is the transmission source, and the device B connected to the PCIe relay circuit 10b is the transmission destination. However, in the opposite case, the data flow is the same. (1) When the retransmission buffer 50b runs out of space or is about to run out, the retransmission buffer 50b outputs a buffer full signal to the error detection unit 51a. (2) The error detection unit 51a receives the TLP from the reception port RX connected to the transmission source device A. (3) In a state where the buffer full signal is output to the error detection unit 51a, the error detection unit 51a transmits a Nak packet connected to the transmission source device A regardless of the presence or absence of a TLP error. Output to port TX. (4) Then, the error detection unit 51a discards the received TLP. By performing the control in this way, it becomes possible to transfer packets to the PCIe relay circuits 10a and 10b without exceeding the capacity of the retransmission buffers 50a and 50b.

図10は、TLPを送信先の機器Bへと送信した後に、送信先においてエラーがなかった場合のデータフローを示している。この図ではPCIe中継回路10aと接続された機器Aが送信元、PCIe中継回路10bと接続された機器Bが送信先となっているが、反対の場合も同様のデータフローとなる。まず、(1)TLPが正常に送信先の機器Bにて受信された場合、送信先の機器Bに接続されたPCIe中継回路10bの受信ポートRXからACKパケットが入力されエラー検出部51bへと転送される。(2)エラー検出部51bは、ACKパケットのCRCの値を確認してエラーの有無を判定し、エラーがない場合はACK/Nak検出部53bへとACKパケットを転送する。(3)ACK/Nak検出部53bは、ACKパケットのTypeの値を確認して、ACKパケットであるか否かを判定し、ACKパケットであると判定した場合は、データ領域からPSNを取得して、ACKであることを示すACK信号、及びPSNを再送バッファ制御部54bへと送信する。(4)再送バッファ制御部54bは、再送バッファ50bに対して、PSNを指定してTLP削除指示を送信する。(5)再送バッファ50bは、指定されたPSN以前に入力されたTLPが保持されているバッファ領域を開放する。   FIG. 10 shows a data flow when there is no error in the transmission destination after transmitting the TLP to the transmission destination device B. In this figure, the device A connected to the PCIe relay circuit 10a is the transmission source, and the device B connected to the PCIe relay circuit 10b is the transmission destination. However, in the opposite case, the data flow is the same. First, (1) when the TLP is normally received by the destination device B, an ACK packet is input from the reception port RX of the PCIe relay circuit 10b connected to the destination device B, and the error detection unit 51b is input. Transferred. (2) The error detection unit 51b checks the CRC value of the ACK packet to determine whether there is an error. If there is no error, the error detection unit 51b transfers the ACK packet to the ACK / Nak detection unit 53b. (3) The ACK / Nak detection unit 53b checks the value of Type of the ACK packet to determine whether it is an ACK packet. If it is determined that the packet is an ACK packet, it acquires the PSN from the data area. Then, the ACK signal indicating the ACK and the PSN are transmitted to the retransmission buffer control unit 54b. (4) The retransmission buffer control unit 54b transmits a TLP deletion instruction specifying the PSN to the retransmission buffer 50b. (5) The retransmission buffer 50b releases a buffer area in which TLPs input before the designated PSN are held.

図11は、TLPを送信先の機器Bへと送信した後に、TLPにエラーが検出された場合のデータフローを示している。この図ではPCIe中継回路10aと接続された機器が送信元、PCIe中継回路10bと接続された機器Bが送信先となっているが、反対の場合も同様のデータフローとなる。まず、(1)TLPが正常に送信先の機器Bにて受信されなかった場合、送信先の機器Bに接続されたPCIe中継回路10bの受信ポートRXからNakパケットが入力されエラー検出部51bへと転送される。(2)エラー検出部51bは、NakパケットのCRCの値を確認してエラーの有無を判定し、エラーがない場合はACK/Nak検出部53bへとNakパケットを転送する。(3)ACK/Nak検出部53bは、NakパケットのTypeの値を確認して、Nakパケットであるか否かを判定し、Nakパケットであると判定した場合は、データ領域からPSNを取得して、Nakパケットであることを示すNak信号、及びPSNを再送バッファ制御部54bへと送信する。(4)再送バッファ制御部54bは、再送バッファ50bに対して、PSNを指定してTLP再送指示を送信する。(5)再送バッファ50bは、指定されたPSN以降に入力され記憶されているTLPをPSNの順番で再送する。TLPの再送は、送信先の機器Bから正常にACKパケットを受信して、再送バッファ50bが開放されるまで繰り返し行われる。この動作によって、エラーの無いデータ通信が相互の機器間で保証されることになる。   FIG. 11 shows a data flow when an error is detected in the TLP after transmitting the TLP to the destination device B. In this figure, the device connected to the PCIe relay circuit 10a is the transmission source, and the device B connected to the PCIe relay circuit 10b is the transmission destination. First, (1) if the TLP is not normally received by the transmission destination device B, a Nak packet is input from the reception port RX of the PCIe relay circuit 10b connected to the transmission destination device B, and is sent to the error detection unit 51b. And transferred. (2) The error detection unit 51b checks the CRC value of the Nak packet to determine whether there is an error. If there is no error, the error detection unit 51b transfers the Nak packet to the ACK / Nak detection unit 53b. (3) The ACK / Nak detection unit 53b checks the value of the type of the Nak packet to determine whether it is a Nak packet. If it is determined to be a Nak packet, it acquires the PSN from the data area. Then, the Nak signal indicating the Nak packet and the PSN are transmitted to the retransmission buffer control unit 54b. (4) The retransmission buffer control unit 54b transmits a TLP retransmission instruction specifying the PSN to the retransmission buffer 50b. (5) The retransmission buffer 50b retransmits TLPs input and stored after the designated PSN in the PSN order. The TLP retransmission is repeated until the ACK packet is normally received from the transmission destination device B and the retransmission buffer 50b is released. With this operation, error-free data communication is guaranteed between the mutual devices.

図12は、FCパケットを機器Bからの受信し、エラーがなかった場合のデータフローを示している。この図ではPCIe中継回路10bと接続された機器Bが送信元、PCIe中継回路10aと接続された機器Aが送信先となっているが、反対の場合も同様のデータフローとなる。(1)FCパケットは、送信元の機器Bと接続されたPCIe中継回路10bの受信ポートRXから入力されエラー検出部51bへと転送される。(2)エラー検出部51bは、FCパケットのCRCの値を確認してエラーの有無を判定し、エラーがない場合はFC検出部52bへとFCパケットを転送する。(3)FC検出部52bは、FCパケットのTypeの値を確認してFCパケットであるか否かを判定し、FCパケットである場合は、そのままFCパケットを再送バッファ50aへと転送する。(4)再送バッファ50aは、FCパケットを送信先の機器Aに接続されたPCIe中継回路10aの送信ポートTXへと転送する。(5)再送バッファ50aは、送信ポートTXからの指示を受けてFCパケットを削除する。以上のように、FCパケットは再送バッファ50aを経由して、そのまま送信先の機器Aに接続されたPCIe中継回路10aの送信ポートTXへと転送される。再送バッファ50aはFCパケットに対しては書き込みと読み出しを非同期に行うためのバッファとして機能し、再送制御は行わない。   FIG. 12 shows a data flow when an FC packet is received from the device B and there is no error. In this figure, the device B connected to the PCIe relay circuit 10b is a transmission source, and the device A connected to the PCIe relay circuit 10a is a transmission destination. (1) The FC packet is input from the reception port RX of the PCIe relay circuit 10b connected to the transmission source device B and transferred to the error detection unit 51b. (2) The error detection unit 51b checks the CRC value of the FC packet to determine whether there is an error. If there is no error, the error detection unit 51b transfers the FC packet to the FC detection unit 52b. (3) The FC detection unit 52b checks the value of the Type of the FC packet to determine whether it is an FC packet, and if it is an FC packet, transfers the FC packet to the retransmission buffer 50a as it is. (4) The retransmission buffer 50a transfers the FC packet to the transmission port TX of the PCIe relay circuit 10a connected to the destination device A. (5) The retransmission buffer 50a receives the instruction from the transmission port TX and deletes the FC packet. As described above, the FC packet is directly transferred to the transmission port TX of the PCIe relay circuit 10a connected to the transmission destination device A via the retransmission buffer 50a. The retransmission buffer 50a functions as a buffer for asynchronously writing to and reading from FC packets, and does not perform retransmission control.

図13は、各種DLLPパケットを送信元の機器Bからの受信し、DLLPパケットにエラーがあった場合のデータフローを示している。この図ではPCIe中継回路10bと接続された機器Bが送信元、PCIe中継回路10aと接続された機器Aが送信先となっているが、反対の場合も同様のデータフローとなる。(1)DLLPは、送信元の機器Bと接続されたPCIe中継回路10bの受信ポートRXから入力されエラー検出部51bへと転送される。このDLLPは、ACKパケット、Nakパケット、及びFCパケットのいずれかである。(2)エラー検出部51bは、FCパケットのCRCの値を確認してエラーの有無を判定し、エラーがある場合はDLLPの種類にかかわらず受信したDLLPを破棄する。DLLPはACKパケット、Nakパケット、及びFCパケットともに、次のTLPに対する応答などで随時内容が更新され続けて受信されており、リクエストやデータの欠落が許されないTLPとは異なり途中のパケットの欠落が許されるためである。   FIG. 13 shows a data flow when various DLLP packets are received from the transmission source device B and there is an error in the DLLP packet. In this figure, the device B connected to the PCIe relay circuit 10b is a transmission source, and the device A connected to the PCIe relay circuit 10a is a transmission destination. (1) The DLLP is input from the reception port RX of the PCIe relay circuit 10b connected to the transmission source device B and transferred to the error detection unit 51b. This DLLP is one of an ACK packet, a Nak packet, and an FC packet. (2) The error detection unit 51b checks the CRC value of the FC packet to determine whether there is an error. If there is an error, the error detection unit 51b discards the received DLLP regardless of the type of DLLP. As for the DLLP, the contents of the ACK packet, Nak packet, and FC packet are continuously updated by the response to the next TLP, etc., and the packet is missing in the middle unlike the TLP in which the lack of request or data is not allowed. Because it is forgiven.

続いて、PCIe中継回路10a、10bの送信ポートTX側における動作の流れを図14のフロー図を用いて説明する。図14に示されるように、送信ポートTXは、再送バッファ50a、50bから記憶されているパケットの読出しを行う指示を送る(ステップS101)。パケットが読み出されて、このパケットが送信ポートTXへ入力されると、送信ポートTXでは、このパケットがTLPかFCパケットであるか否かの判定が行われる(ステップS102)。パケットがTLPである場合は(ステップS102:TLP)、送信ポートTXは、TLPを送信先の機器A又は機器Bに向けて送信する(ステップS103)。   Next, the operation flow on the transmission port TX side of the PCIe relay circuits 10a and 10b will be described with reference to the flowchart of FIG. As shown in FIG. 14, the transmission port TX sends an instruction to read a packet stored from the retransmission buffers 50a and 50b (step S101). When the packet is read and input to the transmission port TX, it is determined whether the packet is a TLP or FC packet at the transmission port TX (step S102). If the packet is a TLP (step S102: TLP), the transmission port TX transmits the TLP to the device A or the device B that is the transmission destination (step S103).

一方、パケットがFCパケットである場合は(ステップS102:DLLP FC)、送信ポートTXは、FCパケットを送信先の機器A又は機器Bに向けて送信する(ステップS104)。そして、送信ポートTXは再送バッファ50a又は50bに対してFCパケットを削除する旨指示を送る(ステップS105)。   On the other hand, when the packet is an FC packet (step S102: DLLP FC), the transmission port TX transmits the FC packet to the device A or device B as the transmission destination (step S104). Then, the transmission port TX sends an instruction to delete the FC packet to the retransmission buffer 50a or 50b (step S105).

パケットを送信し終わった後は、送信ポートTXは再送バッファ50a又は50bの読出し位置を次の位置へと変更する指示を出し(ステップS106)、ステップS101からの読み出しの処理を再度行う。   After the transmission of the packet is completed, the transmission port TX issues an instruction to change the reading position of the retransmission buffer 50a or 50b to the next position (step S106), and performs the reading process from step S101 again.

続いて、PCIe中継回路10a、10bの受信ポートRX側における動作の流れを図15のフロー図を用いて説明する。図15に示されるように、受信ポートRXでは、まずパケットを受信するところから処理がスタートする(ステップS201)。次いで、受信ポートRXでは、受信されたパケットが、TLPであるか、DLLPであるかが判定される(ステップS202)。パケットがTLPである場合(ステップS202:TLP)、エラー検出部51a、51bは、パケットのエラー有無を判定する(ステップS203)。次いで、エラー検出部51a、51bに対してバッファフル信号が入力されているかが判定される(ステップS204)。   Next, an operation flow on the reception port RX side of the PCIe relay circuits 10a and 10b will be described with reference to a flowchart of FIG. As shown in FIG. 15, in the reception port RX, the processing starts from the point where a packet is first received (step S201). Next, at the reception port RX, it is determined whether the received packet is a TLP or a DLLP (step S202). If the packet is a TLP (step S202: TLP), the error detection units 51a and 51b determine whether there is an error in the packet (step S203). Next, it is determined whether a buffer full signal is input to the error detection units 51a and 51b (step S204).

エラーが検出されず、バッファフル信号が入力されていない場合(ステップS203、ステップS204:No)、エラー検出部51a、51bは、ACKパケットを送信元の機器A、Bに接続された送信ポートTXへと送信し(ステップS205)、次いでTLPを再送バッファ50a、50bに書き込む指示を行う(ステップS206)。一方、エラーが検出されるか、バッファフル信号が入力されている場合(ステップS203、ステップS204のいずれかがYes)、エラー検出部51a、51bは、Nakパケットを送信元の機器A、Bに接続された送信ポートTXへと送信する(ステップS207)。   When no error is detected and no buffer full signal is input (step S203, step S204: No), the error detection units 51a and 51b transmit the ACK packet to the transmission port TX connected to the transmission source devices A and B. (Step S205), and then instructs to write the TLP into the retransmission buffers 50a and 50b (step S206). On the other hand, when an error is detected or a buffer full signal is input (Yes in either step S203 or step S204), the error detection units 51a and 51b send the Nak packet to the transmission source devices A and B. Transmission is performed to the connected transmission port TX (step S207).

受信したパケットがDLLPである場合(ステップS202:DLLP)、エラー検出部51a、51bは、パケットのエラー有無を判定する(ステップS208)。パケットのエラーがないと判定された場合(ステップS208:No)、ACK/Nak検出部53a、53b、又はFC検出部52a、52bは、パケットがFCパケットであるか、ACKパケットであるか、及びNakパケットであるかを判定する(ステップS209)。   When the received packet is a DLLP (step S202: DLLP), the error detection units 51a and 51b determine whether there is an error in the packet (step S208). When it is determined that there is no packet error (step S208: No), the ACK / Nak detection units 53a and 53b or the FC detection units 52a and 52b determine whether the packet is an FC packet or an ACK packet, and It is determined whether the packet is a Nak packet (step S209).

パケットがFCパケットであると判定された場合(ステップS209:FCパケット)、エラー検出部51a、51bはFCパケットを再送バッファ50a、50bへと転送し、記録するよう指示を出力する(ステップS210)。パケットがACKパケットであると判定された場合(ステップS209:ACKパケット)、ACK/Nak検出部53a、53bは再送バッファ制御部54a、54bにACK信号を転送し、ACK信号を受信した再送バッファ制御部54a、54bはTLPを再送バッファ50a、50bから削除するよう指示を出力する(ステップS211)。パケットがNakパケットであると判定された場合(ステップS209:Nakパケット)、ACK/Nak検出部53a、53bは再送バッファ制御部54a、54bにNak信号を転送し、Nak信号を受信した再送バッファ制御部54a、54bはTLPを再送バッファ50a、50bから再送するよう指示を出力する(ステップS212)。   When it is determined that the packet is an FC packet (step S209: FC packet), the error detection units 51a and 51b transfer the FC packet to the retransmission buffers 50a and 50b and output an instruction to record (step S210). . When it is determined that the packet is an ACK packet (step S209: ACK packet), the ACK / Nak detection units 53a and 53b transfer the ACK signal to the retransmission buffer control units 54a and 54b, and the retransmission buffer control that receives the ACK signal The units 54a and 54b output an instruction to delete the TLP from the retransmission buffers 50a and 50b (step S211). When it is determined that the packet is a Nak packet (step S209: Nak packet), the ACK / Nak detection units 53a and 53b transfer the Nak signal to the retransmission buffer control units 54a and 54b, and the retransmission buffer control that has received the Nak signal. The units 54a and 54b output an instruction to retransmit the TLP from the retransmission buffers 50a and 50b (step S212).

パケットのエラーがあると判定された場合(ステップS208:Yes)、エラー検出部51a、51bはパケットを削除する(ステップS213)。   When it is determined that there is a packet error (step S208: Yes), the error detection units 51a and 51b delete the packet (step S213).

続いて、PCIe中継回路10a、10bの再送バッファ50a、50bにおける動作の流れを図16のフロー図を用いて説明する。再送バッファ50a、50bは、まず指示が入力された場合に、その指示がパケットの書き込み指示であったか否かを判定する(ステップS301)。パケットの書き込み指示があった場合(ステップS301:Yes)、再送バッファ50a、50bはパケットをバッファ領域に記憶する(ステップS302)。パケットの書き込み指示を受けてパケットが記憶された後、再送バッファ50a、50bはバッファ領域に空きがあるか否か、具体的にはバッファ領域の空き容量が所定の容量以上あるか否かを判定する(ステップS303)。バッファ領域に十分な空き容量がある場合(ステップS303:Yes)、処理を終了する。一方、バッファ領域に空き容量が所定の容量未満の場合(ステップS303:No)、再送バッファ50a、50bはエラー検出部51a、51bに対してバッファフル信号を出力する(ステップS304)。   Next, the operation flow in the retransmission buffers 50a and 50b of the PCIe relay circuits 10a and 10b will be described with reference to the flowchart of FIG. First, when an instruction is input, the retransmission buffers 50a and 50b determine whether or not the instruction is a packet write instruction (step S301). When there is an instruction to write a packet (step S301: Yes), the retransmission buffers 50a and 50b store the packet in the buffer area (step S302). After receiving the packet write instruction and storing the packet, the retransmission buffers 50a and 50b determine whether or not the buffer area has a free space, specifically, whether or not the free space in the buffer area has a predetermined capacity or more. (Step S303). If there is sufficient free space in the buffer area (step S303: Yes), the process ends. On the other hand, if the free space in the buffer area is less than the predetermined capacity (step S303: No), the retransmission buffers 50a and 50b output buffer full signals to the error detection units 51a and 51b (step S304).

再送バッファ50a、50bへの書き込み指示がなかった場合(ステップS301:No)、再送バッファ50a、50bは記録されているパケットの読出し指示があったか否かを判定する(ステップS305)。パケットの読出し指示があったと判定された場合(ステップS305:Yes)、再送バッファ50a、50bはその読み出す対象のパケットがTLPかDLLP(FCパケット)であるか否かを判定する(ステップS306)。パケットがTLPであると判定された場合(ステップS306:TLP)、再送バッファ50a、50bはバッファからTLPを送信ポートTXへと転送する(ステップS307)。再送バッファ50a、50bは転送が終わると、バッファの読出し位置を変更する指示を受信し(ステップS308)、受信すると読み出し位置を1パケット分進める(ステップS309)。   When there is no instruction to write to the retransmission buffers 50a and 50b (step S301: No), the retransmission buffers 50a and 50b determine whether or not there is an instruction to read the recorded packet (step S305). When it is determined that there is an instruction to read a packet (step S305: Yes), the retransmission buffers 50a and 50b determine whether the packet to be read is a TLP or a DLLP (FC packet) (step S306). If it is determined that the packet is a TLP (step S306: TLP), the retransmission buffers 50a and 50b transfer the TLP from the buffer to the transmission port TX (step S307). When the transfer is completed, the retransmission buffers 50a and 50b receive an instruction to change the reading position of the buffer (step S308), and when received, advance the reading position by one packet (step S309).

一方、受信したパケットがFCパケットであると判定された場合(ステップS306:FCパケット)、再送バッファ50a、50bはFCパケットを送信ポートTXへと転送する(ステップS310)。再送バッファ50a、50bは転送が終わるとDLLPのパケットの削除指令を受信し(ステップS311)、バッファ領域を開放してFCパケットを削除する(ステップS312)。   On the other hand, when it is determined that the received packet is an FC packet (step S306: FC packet), the retransmission buffers 50a and 50b transfer the FC packet to the transmission port TX (step S310). When the transfer is completed, the retransmission buffers 50a and 50b receive a DLLP packet deletion command (step S311), release the buffer area, and delete the FC packet (step S312).

再送バッファ50a、50bへの読み出し指示がなかった場合(ステップS305:No)、再送バッファ50a、50bは制御信号の入力があったか否かを判定する(ステップS313)。制御信号の入力があった場合(ステップS313:Yes)、その制御信号がTLP削除指示であるか、TLP再送指示であるか否かを再送バッファ50a、50bは判定する(ステップS314)。TLP削除指示であると判定された場合(ステップS314:TLP削除指示)、再送バッファ50a、50bは、TLP削除指示とともに送られるPSNで特定されるパケット以前に書き込まれたTLPをバッファ領域から削除する(ステップS315)。TLPを削除後、又はステップS312でのDLLPの削除後は、再送バッファ50a、50bはバッファ領域の空き容量が所定の容量以上存在しているかを判定する(ステップS316)。パケットを削除することでバッファ領域の空き容量が確保される結果、バッファ領域の空き容量が所定の容量以上存在していると判定された場合(ステップS316:Yes)、再送バッファ50a、50bはエラー検出部51a、51bに通知中のバッファフル信号の出力を停止する(ステップS317)。一方、バッファ領域の空き容量が所定の容量未満であると判定された場合(ステップS316:No)、バッファフル信号は継続して出力された状態となる。   When there is no read instruction to the retransmission buffers 50a and 50b (step S305: No), the retransmission buffers 50a and 50b determine whether or not a control signal has been input (step S313). If a control signal is input (step S313: Yes), the retransmission buffers 50a and 50b determine whether the control signal is a TLP deletion instruction or a TLP retransmission instruction (step S314). When it is determined that the instruction is a TLP deletion instruction (step S314: TLP deletion instruction), the retransmission buffers 50a and 50b delete the TLP written before the packet specified by the PSN sent together with the TLP deletion instruction from the buffer area. (Step S315). After deleting the TLP or after deleting the DLLP in step S312, the retransmission buffers 50a and 50b determine whether or not the free capacity of the buffer area is greater than or equal to a predetermined capacity (step S316). As a result of securing the free capacity of the buffer area by deleting the packet, when it is determined that the free capacity of the buffer area is greater than or equal to the predetermined capacity (step S316: Yes), the retransmission buffers 50a and 50b indicate an error. The output of the buffer full signal being notified to the detection units 51a and 51b is stopped (step S317). On the other hand, when it is determined that the free capacity of the buffer area is less than the predetermined capacity (step S316: No), the buffer full signal is continuously output.

TLP再送指示であると判定された場合(ステップS314:TLP再送指示)、再送バッファ50a、50bはTLP再送指令とともに受信したPSNまでパケットの読み出し位置を戻す(ステップS318)。再送バッファ50a、50bへの制御信号の入力がなかった場合(ステップS313:No)、処理を最初から繰り返す。   When it is determined that the instruction is a TLP retransmission instruction (step S314: TLP retransmission instruction), the retransmission buffers 50a and 50b return the packet reading position to the PSN received together with the TLP retransmission instruction (step S318). If no control signal is input to the retransmission buffers 50a and 50b (step S313: No), the process is repeated from the beginning.

10a PCIe中継回路
10b PCIe中継回路
30a 物理層
40a データリンク層
50a 再送バッファ
50b 再送バッファ
51a エラー検出部
51b エラー検出部
52a FC検出部
52b FC検出部
53a ACK/Nak検出部
53b ACK/Nak検出部
54a 再送バッファ制御部
54b 再送バッファ制御部
10a PCIe relay circuit 10b PCIe relay circuit 30a physical layer 40a data link layer 50a retransmission buffer 50b retransmission buffer 51a error detection unit 51b error detection unit 52a FC detection unit 52b FC detection unit 53a ACK / Nak detection unit 53b ACK / Nak detection unit 54a Retransmission buffer control unit 54b Retransmission buffer control unit

特開2011−028650号公報JP 2011-028650 A

Claims (4)

第1の機器に接続される第1のポートと、第2の機器に接続される第2のポートとが接続したデータ中継装置であって、
データフロー制御用パケット、及びデータパケットを記憶する記憶部と、
前記第1のポート、又は前記第2のポートから受信した前記データフロー制御用パケット、及び前記データパケットの前記記憶部への書き込みを制御する書込み制御部と、
前記記憶部へ書き込まれた前記データフロー制御用パケット、及び前記データパケットを前記書き込みのタイミングと非同期に読み出して、前記第1のポート、又は前記第2のポートへ送信する読出し制御部と、
送信した前記データパケットが送信先の前記第1の機器、又は前記第2の機器に正常に送信されたか否かを判断し、送信されたと判断された場合は、前記記憶部から送信した前記データパケットを削除するとともに、送信されていないと判断された場合は、前記記憶部から前記データパケットを読み出して再送するよう指示する再送制御部と、
を備えることを特徴とするデータ中継装置。
A data relay device in which a first port connected to a first device and a second port connected to a second device are connected,
A data flow control packet, and a storage unit for storing the data packet;
A write control unit that controls writing of the data flow control packet received from the first port or the second port , and writing of the data packet to the storage unit;
A read control unit that reads the data flow control packet written to the storage unit and the data packet asynchronously with the write timing, and transmits the read data packet to the first port or the second port;
It is determined whether or not the transmitted data packet is normally transmitted to the first device or the second device as a transmission destination, and when it is determined that the data packet is transmitted, the data transmitted from the storage unit When it is determined that the packet is deleted and not transmitted, a retransmission control unit that instructs to read and retransmit the data packet from the storage unit;
A data relay device comprising:
前記データフロー制御用パケット、及び前記データパケットが前記記憶部へと書き込みされる前に入力され、パケットの異常の有無を検出するエラー検出部をさらに備え、
前記記憶部は、空き容量が所定容量より少なくなった場合にその旨を示すバッファフル信号を前記エラー検出部へと送信するとともに、
前記エラー検出部は、前記バッファフル信号が入力されている場合は、入力された前記データパケットを破棄する
ことを特徴とする請求項1に記載のデータ中継装置。
The data flow control packet, and the data packet is input before the data packet is written to the storage unit, further comprising an error detection unit for detecting the presence or absence of the packet,
The storage unit transmits a buffer full signal indicating that when the free capacity is less than a predetermined capacity to the error detection unit,
The data relay device according to claim 1, wherein, when the buffer full signal is input, the error detection unit discards the input data packet.
前記エラー検出部は、前記データフロー制御用パケットの異常を検出した場合、前記データフロー制御用パケットを破棄する
ことを特徴とする請求項2に記載のデータ中継装置。
The data relay device according to claim 2, wherein the error detection unit discards the data flow control packet when detecting an abnormality of the data flow control packet.
前記エラー検出部は、前記データパケットの異常を検出した場合、当該データパケットの送信元の前記第1の機器、または前記第2の機器に対して前記データパケットを再送するよう指示する再送指示パケットを送信する
ことを特徴とする請求項2に記載のデータ中継装置。
When the error detection unit detects an abnormality in the data packet, the error detection unit instructs the first device or the second device that is the transmission source of the data packet to retransmit the data packet. The data relay device according to claim 2, wherein:
JP2012065850A 2012-03-22 2012-03-22 Data relay device Expired - Fee Related JP6003136B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012065850A JP6003136B2 (en) 2012-03-22 2012-03-22 Data relay device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012065850A JP6003136B2 (en) 2012-03-22 2012-03-22 Data relay device

Publications (2)

Publication Number Publication Date
JP2013196615A JP2013196615A (en) 2013-09-30
JP6003136B2 true JP6003136B2 (en) 2016-10-05

Family

ID=49395417

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012065850A Expired - Fee Related JP6003136B2 (en) 2012-03-22 2012-03-22 Data relay device

Country Status (1)

Country Link
JP (1) JP6003136B2 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2674510B2 (en) * 1994-05-27 1997-11-12 日本電気株式会社 Packet receiver
JP2003249978A (en) * 2002-02-22 2003-09-05 Kawasaki Microelectronics Kk Serial forwarding device
JP2006293969A (en) * 2005-03-17 2006-10-26 Fujitsu Ltd Data transfer device
KR100974105B1 (en) * 2005-06-21 2010-08-04 엔엑스피 비 브이 Method for parallel data integrity checking of pci express devices
JP5272704B2 (en) * 2008-12-17 2013-08-28 富士ゼロックス株式会社 Information transmission system, information transmission device, and information reception device
JP2011081769A (en) * 2009-09-14 2011-04-21 Ricoh Co Ltd Apparatus, device and method for transferring data

Also Published As

Publication number Publication date
JP2013196615A (en) 2013-09-30

Similar Documents

Publication Publication Date Title
US6418494B1 (en) Split computer architecture to separate user and processor while retaining original user interface
US6088752A (en) Method and apparatus for exchanging information between buses in a portable computer and docking station through a bridge employing a serial link
EP1530850B1 (en) Store and forward switch device, system and method
US6070214A (en) Serially linked bus bridge for expanding access over a first bus to a second bus
US8700866B2 (en) Data transfer apparatus, data transfer device, and data transfer method in a data transfer device
EP2420935A1 (en) Tlp processing circuit for pci express and relay device equipped with the same
US7783820B2 (en) Packet-switched split computer having disassociated peripheral controller and plural data buses
JP2008533572A (en) Method and apparatus for improving the performance of USB mass storage devices in the presence of long transmission delays
WO2001018988A1 (en) Bridge between parallel buses over a packet-switched network
WO1985000486A1 (en) Data link extension for data communication networks
JP5968119B2 (en) Communication system with cascade connection
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
US7269680B1 (en) System enabling device communication in an expanded computing device
JP6003136B2 (en) Data relay device
JPWO2015059889A1 (en) Initiator terminal, target terminal, initiator terminal error processing method, target terminal error processing method
KR20110134465A (en) Data transmission system and data read method thereof
JP4104939B2 (en) Multiprocessor system
JP2014230072A (en) Data communication device, data communication apparatus, and data communication method
JP2715815B2 (en) Data writing method
CA2347869C (en) Linked bridge
JP3799741B2 (en) Bus controller
EP1133732A1 (en) Split computer architecture
CA2347896C (en) Docking system and method
TWI246651B (en) An enhanced general input/output architecture and related methods for establishing virtual channels therein
EP1653373A2 (en) Bus bridge

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160331

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160822

R151 Written notification of patent or utility model registration

Ref document number: 6003136

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees