JP2008204245A - Data communication device, image processing system and data communication method - Google Patents

Data communication device, image processing system and data communication method Download PDF

Info

Publication number
JP2008204245A
JP2008204245A JP2007040628A JP2007040628A JP2008204245A JP 2008204245 A JP2008204245 A JP 2008204245A JP 2007040628 A JP2007040628 A JP 2007040628A JP 2007040628 A JP2007040628 A JP 2007040628A JP 2008204245 A JP2008204245 A JP 2008204245A
Authority
JP
Japan
Prior art keywords
packet
request
data
ack
transmitted
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.)
Granted
Application number
JP2007040628A
Other languages
Japanese (ja)
Other versions
JP5151176B2 (en
Inventor
Junichi Ikeda
純一 池田
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 JP2007040628A priority Critical patent/JP5151176B2/en
Publication of JP2008204245A publication Critical patent/JP2008204245A/en
Application granted granted Critical
Publication of JP5151176B2 publication Critical patent/JP5151176B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data communication device, an image processing system and a data communication method capable of efficiently executing processing when an error occurs by inexpensive and small-number resending overheads even in use large in such a restriction of synchronous transfer that a specific quantity of data must be surely completely transferred in a short period. <P>SOLUTION: Until the starting transmission of the next request/data packet after the starting transmission of a request/data packet, a dummy request packet of not expecting a data response generated by a dummy request generating means 12 is continuously transmitted. Thus, since the resending overheads in synchronous transfer can be reduced, the processing when the error occurs can be efficiently executed by the inexpensive and small-number resending overheads even in use strong in such a restriction of the synchronous transfer that the specific quantity of data must be surely completely transmitted in a short period of time. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、データ通信装置、画像処理システムおよびデータ通信方法に関する。   The present invention relates to a data communication device, an image processing system, and a data communication method.

データ通信装置は、図17に示すように、互いの送信ポートTX、受信ポートRXがシリアル伝送路で接続され、この間をリクエストパケット/データパケットならびに、リクエストパケットやデータパケットが受信されたことを送信元に応答するACK(ACKnowledgement)パケット、あるいは受信したリクエストやデータパケットにエラーが混入していて正常に受信できなかったことを伝えるNAK(Negative AcKnowledgement)パケットが相互に転送される。このようにパケットデータ転送時にエラーが発生したか否かを送信側に伝えることで、再送効率を向上させることができる。   As shown in FIG. 17, the data communication apparatus connects the transmission port TX and the reception port RX to each other via a serial transmission path, and transmits that a request packet / data packet, a request packet, or a data packet has been received therebetween. An ACK (ACKnowledgement) packet that responds to the original, or a NAK (Negative AcKnowledgement) packet that indicates that the received request or data packet is mixed with an error and cannot be received normally is transferred to each other. In this way, it is possible to improve retransmission efficiency by notifying the transmission side whether or not an error has occurred during packet data transfer.

ここで、連続したデータによって構成されるトランザクションのデータ転送例を図38に示す。図38は、パケットにエラーが発生した場合の転送例を示す模式図である。図38に示すように、送信したパケットにエラーが混入すると、相手先の装置はNAKパケットを応答してくる。NAK1(1はエラーとなったパケット番号)を受信した送信側の装置は、パケット1からデータの送信をやりなおす再送処理を実行する。図38に示す例では、パケット1を再送するのに要した時間が、エラー処理のオーバーヘッドとなる。   Here, FIG. 38 shows an example of data transfer of a transaction composed of continuous data. FIG. 38 is a schematic diagram illustrating a transfer example when an error occurs in a packet. As shown in FIG. 38, when an error is mixed in the transmitted packet, the counterpart device responds with a NAK packet. The device on the transmission side that has received NAK1 (1 is the packet number in which the error occurred) executes a retransmission process for retransmitting data from packet 1. In the example shown in FIG. 38, the time required to retransmit the packet 1 is an error processing overhead.

図39は、図38に示す再送動作の例を示すシーケンス図である。図38は、図39における装置Aの送信ポートTXと受信ポートRXのパケットのタイミングチャートに相当する。図39に示すように、パケット転送にエラーが発生した場合にNAKパケットが応答されてくることにより、ただちに再送動作が開始される。これにより、少ない時間のオーバーヘッドが発生するだけでエラーの無いデータ転送が成立するようになっている。   FIG. 39 is a sequence diagram illustrating an example of the retransmission operation illustrated in FIG. FIG. 38 corresponds to a packet timing chart of the transmission port TX and the reception port RX of the device A in FIG. As shown in FIG. 39, when an error occurs in packet transfer, a NAK packet is returned, and a retransmission operation is immediately started. As a result, error-free data transfer can be established with only a short time overhead.

図40は、NAK応答パケットにもエラーが発生した場合の転送例を示す模式図である。図40に示す例では、NAK2応答パケットがエラーとなって受信できておらず、送信側の装置は次のパケット3を転送している。しかし、相手先の装置では、NAK応答したパケット2と異なるパケット番号のパケットを受信したため、再度NAK2を応答してくる。送信側の装置では、NAK2を受信することによりパケット2からの再送を開始するため、パケット2、パケット3の再送に要する時間だけのオーバーヘッドしか発生させずに、再送処理を実行することができている。図41は、図40に示す再送動作の例を示すシーケンス図である。   FIG. 40 is a schematic diagram illustrating a transfer example when an error also occurs in the NAK response packet. In the example shown in FIG. 40, the NAK2 response packet has not been received due to an error, and the transmitting apparatus transfers the next packet 3. However, since the partner apparatus has received a packet having a packet number different from that of the packet 2 that has made a NAK response, the NAK 2 is again responded. Since the transmission side device starts retransmission from packet 2 by receiving NAK2, retransmission processing can be executed with only the overhead required for retransmission of packet 2 and packet 3 occurring. Yes. FIG. 41 is a sequence diagram illustrating an example of the retransmission operation illustrated in FIG.

また、従来のデータ通信装置では、前述したように送信したパケットに対するACK/NAKパケットのいずれの応答も無い時間をタイマーで計測し、一定の時間が経っても応答が戻らないときには、自動的にパケットの再送を開始する機能も有しており、ACK/NAKパケットが何らかの原因で消失してしまった場合でも、通信がエラーによって遮断されないようになっている。   In addition, in the conventional data communication apparatus, as described above, the time when there is no response of any ACK / NAK packet to the transmitted packet is measured with a timer, and if the response does not return after a certain time, it is automatically It also has a function of starting packet retransmission, so that even if an ACK / NAK packet is lost for some reason, communication is not blocked by an error.

以上のように、従来のデータ通信装置では、受信したリクエストパケットやデータパケットに対して、正常に受信されたかどうかをACK/NAKパケット応答により送信元の装置に通達することによって、少ない時間のオーバーヘッドで再送の制御を実現している。   As described above, in the conventional data communication apparatus, a small time overhead is obtained by notifying the transmission source apparatus of whether or not the received request packet or data packet is normally received by an ACK / NAK packet response. Realizes retransmission control.

また、近年、ローカルI/Oの標準インタフェースとして登場したPCI Express等の高速シリアル通信規格においても、同様の方式が採用されている。   In addition, a similar method is adopted in high-speed serial communication standards such as PCI Express that have recently appeared as standard interfaces for local I / O.

一方、PCI Express規格で規定された再送の仕組みに加えて、さらに高い信頼性を実現する技術が、特許文献1に開示されている。特許文献1に開示されている技術によれば、図42に示すように、PCI Expressによるデータ通信路を2重に設けることで、一方のリンクで発生したエラーをキャンセルすることにより、エラーの無い通信を確保するものである。   On the other hand, in addition to the retransmission mechanism defined in the PCI Express standard, a technique for realizing higher reliability is disclosed in Patent Document 1. According to the technique disclosed in Patent Document 1, as shown in FIG. 42, there is no error by canceling an error occurring in one link by providing a double data communication path by PCI Express. Communication is ensured.

ところで、データ転送装置におけるエラー発生の悪影響を受けやすい装置の代表的なものとしては、画像出力装置や音声出力装置などが挙げられる。例えば、データ転送装置におけるエラー発生の影響は、紙に画像データを印刷する画像出力装置では印刷画像のノイズとして現れたり、動画を再生する画像出力装置では画像のチラツキやコマ落ちという形で現れたりする。また、音声出力装置でも同様に、エラーの影響は、音声のとぎれやノイズという形で現れることになる。この他にも、光ディスク書き込み用途のデータ転送装置などにおいても、同様の問題が発生することがある。   By the way, typical devices that are easily affected by the occurrence of errors in the data transfer device include an image output device and an audio output device. For example, the influence of an error occurrence in a data transfer device may appear as noise in a printed image in an image output device that prints image data on paper, or may appear in the form of flickering or dropped frames in an image output device that reproduces a moving image. To do. Similarly, in an audio output device, the influence of an error appears in the form of audio interruption and noise. In addition, a similar problem may occur in a data transfer apparatus for writing optical discs.

そこで、上述したような装置では、図43に示すように、たとえデータ転送装置でエラー発生が起きても出力装置側への影響が出ないように、あらかじめ大きなサイズの画像データバッファメモリや音声データバッファメモリを出力装置側に備える方式が多く用いられている。この場合、出力装置の必要とするデータ転送能力に対して十分大きなサイズのバッファメモリと、十分高速なデータ転送装置とを搭載することによって、ノイズなどの要因で生じたエラー再送によるデータ転送速度の乱れを吸収し、出力装置から安定した出力が得られるようにしている。   Therefore, in the apparatus as described above, as shown in FIG. 43, even if an error occurs in the data transfer apparatus, a large-size image data buffer memory or audio data is previously stored so that the output apparatus side is not affected. A method of providing a buffer memory on the output device side is often used. In this case, by installing a buffer memory that is large enough for the data transfer capability required by the output device and a sufficiently high-speed data transfer device, the data transfer rate due to error retransmission caused by factors such as noise can be reduced. The disturbance is absorbed and a stable output can be obtained from the output device.

特開2004−326151号公報JP 2004-326151 A

上述したように、従来のデータ通信装置では、トランザクションが長く連続した大量のデータ通信によって構成される場合には、少ない時間のオーバーヘッドで再送の制御を実現している。しかしながら、短い周期で一定量のデータを必ず伝送し終わらなければならない、というような同期転送の制約が強い用途においては、再送のオーバーヘッドが大きすぎて同期転送違反が生じる場合がある。この点について具体的に説明する。図44および図45は、短い周期で一定量のデータを必ず伝送し終わらなければならない、という同期制約が強いデータ転送の例である。図44および図45に示す例では、1つのトランザクションが2つのパケットで構成され、各トランザクションはかならず許容時間内に完了しなければならない、という同期転送制約があるものとする。図44および図45に示す例は、エラー発生が無い通常のデータ転送の例であり、同期違反は発生していない状態を示している。また、図46および図47に示す例は、トランザクション1の転送途中でパケット転送にエラーが発生した例である。すなわち、図46および図47に示す例は、パケット2にエラーが発生して、NAK2が応答され、パケット2の再送が許容時間内に完了した例である。ところが、従来のデータ通信装置では、図25および図26に示すように、エラーを通知するNAK2パケットにもエラーが発生した場合、相手先の装置は次のトランザクション2の先頭パケットが届くまでは、NAK2のパケットを再送してこない。このため、送信側の装置では、ACK/NAK待ちのタイムアウトが発生するまでパケット2の再送が開始されない。この待ち時間のオーバーヘッドが通常のNAKを受信した場合の再送よりも長く、トランザクション1は許容時間内にパケット2の転送を完了できず、同期転送違反が発生する。   As described above, in a conventional data communication apparatus, when a transaction is configured by a large amount of data communication that is continuous for a long time, retransmission control is realized with less time overhead. However, in applications where there are strong restrictions on synchronous transfer such that a certain amount of data must be transmitted in a short cycle, there is a case where the retransmission overhead is too large and a synchronous transfer violation occurs. This point will be specifically described. FIG. 44 and FIG. 45 are examples of data transfer with strong synchronization restrictions that a certain amount of data must be transmitted in a short cycle. In the example shown in FIGS. 44 and 45, it is assumed that there is a synchronous transfer restriction that one transaction is composed of two packets and each transaction must be completed within an allowable time. The example shown in FIG. 44 and FIG. 45 is an example of normal data transfer in which no error occurs, and shows a state in which no synchronization violation has occurred. The example shown in FIGS. 46 and 47 is an example in which an error has occurred in packet transfer during the transfer of transaction 1. That is, the example shown in FIGS. 46 and 47 is an example in which an error occurs in packet 2, NAK2 is responded, and retransmission of packet 2 is completed within an allowable time. However, in the conventional data communication apparatus, as shown in FIG. 25 and FIG. 26, when an error also occurs in the NAK2 packet that notifies the error, the counterpart apparatus until the first packet of the next transaction 2 arrives, NAK2 packet is not retransmitted. For this reason, the apparatus on the transmission side does not start retransmission of packet 2 until a timeout for waiting for ACK / NAK occurs. The overhead of this waiting time is longer than the retransmission when a normal NAK is received, and the transaction 1 cannot complete the transfer of the packet 2 within the allowable time, and a synchronous transfer violation occurs.

このような同期転送違反は、最新の高速シリアルインターフェース規格のPCI Expressにおいても、発生する可能性がある。ここで、PCI Expressの動作を説明するために、図48にMemory Writeリクエストの再送動作例、図49にPCI ExpressのMemory Readリクエストの再送動作例、図50にPCI ExpressのMemory Readリクエストに対するCompletion Dataの再送動作例を示す。図48〜図50に例示するように、PCI Expressにおける同期転送において最も再送のオーバーヘッドが大きくなる再送動作は、図49に示したMemory Readリクエストに対するエラーが発生した場合であり、このときはMemory Readリクエストに対するCompletion Dataの応答も併せて遅れるため、Memory Writeなどと比較して、大きな遅延が発生する。図22は、PCI Expressで同期転送違反となるワーストケースとして、Memory Read クエストのエラーに対するNAKパケットにエラーが発生した場合に、トランザクション1の終了時間がオーバーとなって同期転送違反が発生する例を示したものである。   Such a synchronous transfer violation may also occur in the latest high-speed serial interface standard PCI Express. Here, in order to explain the operation of PCI Express, FIG. 48 shows an example of a Memory Write request retransmission operation, FIG. 49 shows an example of a PCI Express Memory Read request retransmission operation, and FIG. 50 shows a Completion Data for a PCI Express Memory Read request. An example of retransmission operation of As illustrated in FIGS. 48 to 50, the retransmission operation in which the retransmission overhead becomes the largest in the synchronous transfer in PCI Express is when an error occurs in response to the Memory Read request shown in FIG. 49. At this time, the Memory Read Since the response of Completion Data to the request is also delayed, a large delay occurs compared to Memory Write etc. FIG. 22 shows an example of a case where an error occurs in a NAK packet corresponding to an error of Memory Read quest as a worst case in which a synchronous transfer violation occurs in PCI Express, and the end time of transaction 1 is over and a synchronous transfer violation occurs. It is shown.

短い周期で一定量のデータを必ず伝送し終わらなければならない、という同期転送の制約が強い用途の代表例としては、主走査および副走査方向の2次元配列によって構成される画像データについて、主走査方向の画素データを決められた時間周期に転送する処理を副走査方向に繰り返す同期転送を実行することが挙げられる。このような用途では、特にACK/NAKやパケットにおけるエラー混入によって、同期転送違反が発生する確率が高いという問題が生じている。   As a typical example of an application that has a strong restriction on synchronous transfer in which a certain amount of data must be transmitted in a short cycle, main scanning is performed on image data composed of a two-dimensional array in the main scanning and sub-scanning directions. For example, synchronous transfer in which the process of transferring the pixel data in the direction in a predetermined time period is repeated in the sub-scanning direction is performed. In such an application, there is a problem that there is a high probability that a synchronous transfer violation will occur due to an ACK / NAK or an error mixture in a packet.

一方、図43に示したように、あらかじめ大きなサイズの画像データバッファメモリを出力装置側に備えた従来の画像データ転送装置においては、ノイズなどの要因で生じたエラー再送によるデータ転送速度の乱れがバッファメモリにおいて吸収されるため、出力装置から安定した出力が得られる。しかし、これを実現するために、通常は出力装置との同期が必要なデータサイズの数倍以上のバッファメモリを搭載する必要があり、回路実装規模を圧迫するとともにコストアップが避けられないという問題がある。また、バッファメモリによる非同期吸収を実現するためには、データ転送速度が出力装置の性能よりも高速なものを搭載しなければ、エラーが発生するたびにバッファメモリの空き容量が減っていくことになる。すなわち、高速なデータ転送装置を搭載することも、バッファメモリと同様にコストアップになる問題がある。また、画像や音声データの要求品質が高くなるに従って必要なバッファメモリとデータ転送性能も高くなり、コストアップの問題は、さらに大きくなる。   On the other hand, as shown in FIG. 43, in the conventional image data transfer apparatus provided with an image data buffer memory of a large size in advance on the output apparatus side, the data transfer rate is disturbed due to error retransmission caused by factors such as noise. Since it is absorbed in the buffer memory, a stable output can be obtained from the output device. However, in order to achieve this, it is usually necessary to install a buffer memory that is several times larger than the data size that needs to be synchronized with the output device. This increases the cost of circuit implementation and inevitably increases costs. There is. Also, in order to realize asynchronous absorption by the buffer memory, if the data transfer rate is not faster than the output device performance, the free space in the buffer memory will be reduced every time an error occurs. Become. In other words, mounting a high-speed data transfer device also has a problem of increasing the cost as with the buffer memory. Further, as the required quality of image and audio data increases, the necessary buffer memory and data transfer performance also increase, and the problem of cost increase becomes even greater.

一方、特許文献1に開示されている技術によれば、PCI Expressによるデータ通信路を2重に設けることで、エラー発生に対する再送オーバーヘッドが生じにくく、同期転送違反も発生頻度も軽減されていると考えられるが、通信路を2重化することによりデータ通信装置を2つ以上組み込む必要があり、非常にコスト高となる。   On the other hand, according to the technique disclosed in Patent Document 1, by providing double data communication paths using PCI Express, it is difficult to generate retransmission overhead for error occurrence, and the frequency of occurrence of synchronous transfer violations is reduced. Although it is conceivable, it is necessary to incorporate two or more data communication apparatuses by duplicating the communication path, which results in a very high cost.

本発明は、上記に鑑みてなされたものであって、短い周期で一定量のデータを必ず伝送し終わらなければならない、というような同期転送の制約が強い用途においても、低コスト、かつ、少ない再送オーバーヘッドでエラー発生時の処理を効率良く処理することができるデータ通信装置、画像処理システムおよびデータ通信方法を提供することを目的とする。   The present invention has been made in view of the above, and is low in cost and low even in applications where there is a strong constraint on synchronous transfer such that a certain amount of data must be transmitted in a short cycle. It is an object of the present invention to provide a data communication apparatus, an image processing system, and a data communication method that can efficiently perform processing when an error occurs with retransmission overhead.

上述した課題を解決し、目的を達成するために、請求項1にかかる発明は、送信したリクエスト/データパケットが送信先の装置で正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを送信先の装置から受信し、送信したリクエスト/データパケットが送信先の装置で正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを送信先の装置から受信するデータ通信装置において、送信した前記リクエスト/データパケットに対するACK応答があるまで当該リクエスト/データパケットを記憶するパケット記憶手段と、データ応答を期待しないダミーリクエストパケットを生成するダミーリクエスト生成手段と、ACK応答がなく前記パケット記憶手段に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生していない場合、または、受信したACK/NAKパケットにエラーが発生していた場合には、前記ダミーリクエスト生成手段に対して前記ダミーリクエストパケットの発行を指示するダミーリクエスト発行指示手段と、NAK応答を受信した場合、または、ACK応答がなく前記パケット記憶手段に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生した場合には、前記パケット記憶手段に記憶されている前記リクエスト/データパケットを再送するパケット再送手段と、を備える。   In order to solve the above-described problems and achieve the object, the invention according to claim 1 is directed to an ACK (ACKnowledgement) indicating that when a transmitted request / data packet is normally received by a transmission destination device. ) When a packet is received from the destination device and the transmitted request / data packet cannot be normally received by the destination device, a NAK (Negative AcKnowledgement) packet indicating that fact is received from the destination device. A packet storage unit for storing the request / data packet until an ACK response to the transmitted request / data packet is received, a dummy request generation unit for generating a dummy request packet not expecting a data response, and an ACK There is no response and the request / data packet is stored in the packet storage means. If no timeout has occurred in the stored state, or if an error has occurred in the received ACK / NAK packet, the dummy request generation means is instructed to issue the dummy request packet. When a dummy request issuance instruction means and a NAK response are received, or when a timeout occurs in a state where the request / data packet is stored in the packet storage means without an ACK response, the packet storage means Packet retransmission means for retransmitting the stored request / data packet.

また、請求項2にかかる発明は、請求項1記載のデータ通信装置において、通信プロトコルとしてPCI Express規格が採用されており、前記ダミーリクエスト生成手段は、前記ダミーリクエストパケットとして、PCI Express規格におけるPostedのメッセージパケット、またはPCI Express規格におけるPostedのメモリライトリクエストを発行する。   According to a second aspect of the present invention, in the data communication apparatus according to the first aspect, the PCI Express standard is adopted as a communication protocol, and the dummy request generating means uses the Posted request in the PCI Express standard as the dummy request packet. Message packet or a posted memory write request in the PCI Express standard.

また、請求項3にかかる発明は、請求項2記載のデータ通信装置において、前記リクエスト/データパケットは、メモリリードリクエスト、メモリリードに対するデータ転送応答(コンプリーション)、メモリライトリクエストのいずれか、またはそれぞれの組み合わせにより構成されたものである。   According to a third aspect of the present invention, in the data communication device according to the second aspect, the request / data packet is one of a memory read request, a data transfer response (completion) to the memory read, and a memory write request. Each combination is configured.

また、請求項4にかかる発明は、リクエスト/データパケットを正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信し、前記リクエスト/データパケットが正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信するデータ通信装置において、NAKパケットを送信したパケット番号の前記リクエスト/データパケットが正常に受信される迄、前記リクエスト/データパケットのパケット番号と同じ番号の前記NAKパケットを繰り返し送信し続けるNAK連続送信手段を備える。   In the invention according to claim 4, when the request / data packet can be normally received, an ACK (ACKnowledgement) packet indicating that fact is transmitted to the device that has transmitted the request / data packet, In the case where the request / data packet cannot be normally received, the data communication device that transmits a NAK (Negative AcKnowledgement) packet indicating that fact to the device that has transmitted the request / data packet, NAK continuous transmission means is provided for continuously transmitting the NAK packet having the same number as the packet number of the request / data packet until the request / data packet having the transmitted packet number is normally received.

また、請求項5にかかる発明は、請求項4記載のデータ通信装置において、ACKパケットを送信したパケット番号の前記リクエスト/データパケットが受信される迄、前記リクエスト/データパケットのパケット番号と同じ番号の前記ACKパケットを繰り返し送信し続けるACK連続送信手段を更に備える。   The invention according to claim 5 is the data communication device according to claim 4, wherein the same number as the packet number of the request / data packet is received until the request / data packet of the packet number that transmitted the ACK packet is received. ACK continuous transmission means for continuously transmitting the ACK packet.

また、請求項6にかかる発明は、リクエスト/データパケットを正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信し、前記リクエスト/データパケットが正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信するデータ通信装置において、ACKパケットを送信したパケット番号の前記リクエスト/データパケットが受信される迄、前記リクエスト/データパケットのパケット番号と同じ番号の前記ACKパケットを繰り返し送信し続けるACK連続送信手段を備える。   In the invention according to claim 6, when the request / data packet can be normally received, an ACK (ACKnowledgement) packet indicating that is transmitted to the device that has transmitted the request / data packet, In the case where the request / data packet cannot be normally received, the data communication apparatus that transmits a NAK (Negative AcKnowledgement) packet indicating the fact to the apparatus that has transmitted the request / data packet, ACK continuous transmission means for continuously transmitting the ACK packet having the same number as the packet number of the request / data packet until the request / data packet of the transmitted packet number is received.

また、請求項7にかかる発明は、請求項4ないし6のいずれか一記載のデータ通信装置において、通信プロトコルとしてPCI Express規格が採用されており、前記リクエスト/データパケットは、メモリリードリクエスト、メモリリードに対するデータ転送応答(コンプリーション)、メモリライトリクエストのいずれか、またはそれぞれの組み合わせにより構成されたものである。   According to a seventh aspect of the present invention, in the data communication device according to any one of the fourth to sixth aspects, the PCI Express standard is adopted as a communication protocol, and the request / data packet includes a memory read request, a memory A data transfer response (completion) to a read, a memory write request, or a combination of each.

また、請求項8にかかる発明は、複数のパケット群からなるトランザクションであるリクエスト/データパケットを送信するユーザーロジックと、前記ユーザーロジックから受信したリクエスト/データパケットを他の装置へ送信し、送信したリクエスト/データパケットが送信先の装置で正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを送信先の装置から受信し、送信したリクエスト/データパケットが送信先の装置で正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを送信先の装置から受信するデータ通信装置と、を備える画像処理システムにおいて、前記ユーザーロジックは、データ応答を期待しないダミーリクエストパケットを生成するダミーリクエスト生成手段を備え、前記データ通信装置は、送信した前記リクエスト/データパケットに対するACK応答があるまで当該リクエスト/データパケットを記憶するパケット記憶手段と、ACK応答がなく前記パケット記憶手段に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生していない場合、または、受信したACK/NAKパケットにエラーが発生していた場合には、前記ダミーリクエスト生成手段に対して前記ダミーリクエストパケットの発行を指示するダミーリクエスト発行指示手段と、NAK応答を受信した場合、または、ACK応答がなく前記パケット記憶手段に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生した場合には、前記パケット記憶手段に記憶されている前記リクエスト/データパケットを再送するパケット再送手段と、を備える。   In the invention according to claim 8, a user logic that transmits a request / data packet, which is a transaction composed of a plurality of packet groups, and a request / data packet received from the user logic are transmitted to another device and transmitted. If the request / data packet is successfully received by the transmission destination device, an ACK (ACKnowledgement) packet indicating that is received from the transmission destination device, and the transmitted request / data packet is normal by the transmission destination device. In the image processing system including a data communication device that receives a NAK (Negative AcKnowledgement) packet indicating the fact from the transmission destination device, the user logic is a dummy that does not expect a data response. Dummy request generation means for generating request packets The data communication device stores the request / data packet until there is an ACK response to the transmitted request / data packet, and the request / data packet is stored in the packet storage unit without an ACK response. When a timeout has not occurred or an error has occurred in the received ACK / NAK packet, a dummy request that instructs the dummy request generation means to issue the dummy request packet When a NAK response is received with the issuing instruction unit, or when a timeout occurs in the state where the request / data packet is stored in the packet storage unit without an ACK response, it is stored in the packet storage unit The request / Comprising a packet retransmission means for retransmitting the Tapaketto, the.

また、請求項9にかかる発明は、送信したリクエスト/データパケットが送信先の装置で正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを送信先の装置から受信し、送信したリクエスト/データパケットが送信先の装置で正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを送信先の装置から受信するデータ通信方法において、送信した前記リクエスト/データパケットに対するACK応答があるまで当該リクエスト/データパケットを記憶するパケット記憶工程と、データ応答を期待しないダミーリクエストパケットを生成するダミーリクエスト生成工程と、ACK応答がなく前記パケット記憶工程に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生していない場合、または、受信したACK/NAKパケットにエラーが発生していた場合には、前記ダミーリクエストパケットの発行を指示するダミーリクエスト発行指示工程と、NAK応答を受信した場合、または、ACK応答がなく前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生した場合には、記憶されている前記リクエスト/データパケットを再送するパケット再送工程と、を含む。   In the invention according to claim 9, when the transmitted request / data packet can be normally received by the transmission destination apparatus, an ACK (ACKnowledgement) packet indicating that fact is received from the transmission destination apparatus and transmitted. In the data communication method for receiving a NAK (Negative AcKnowledgement) packet indicating that the request / data packet is not normally received by the transmission destination device from the transmission destination device, the transmitted request / data packet A packet storing step for storing the request / data packet until an ACK response to the packet is received, a dummy request generating step for generating a dummy request packet that does not expect a data response, and the request / data in the packet storing step without an ACK response Timeout occurs when packets are stored If an error has occurred in the received ACK / NAK packet, a dummy request issuance instruction step for instructing the issuance of the dummy request packet and a NAK response are received, or an ACK A packet retransmission step of retransmitting the stored request / data packet when a timeout occurs in a state where there is no response and the request / data packet is stored.

また、請求項10にかかる発明は、リクエスト/データパケットを正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信し、前記リクエスト/データパケットが正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信するデータ通信方法において、NAKパケットを送信したパケット番号の前記リクエスト/データパケットが正常に受信される迄、前記リクエスト/データパケットのパケット番号と同じ番号の前記NAKパケットを繰り返し送信し続ける。   In the invention according to claim 10, when the request / data packet is normally received, an ACK (ACKnowledgement) packet indicating that is transmitted to the device that has transmitted the request / data packet, In the data communication method of transmitting a NAK (Negative AcKnowledgement) packet indicating that when the request / data packet has not been normally received to a device that has transmitted the request / data packet, Until the request / data packet having the transmitted packet number is normally received, the NAK packet having the same number as the packet number of the request / data packet is repeatedly transmitted.

また、請求項11にかかる発明は、リクエスト/データパケットを正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信し、前記リクエスト/データパケットが正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信するデータ通信方法において、ACKパケットを送信したパケット番号の前記リクエスト/データパケットが受信される迄、前記リクエスト/データパケットのパケット番号と同じ番号の前記ACKパケットを繰り返し送信し続ける。   In the invention according to claim 11, when the request / data packet can be normally received, an ACK (ACKnowledgement) packet indicating that is transmitted to the device that has transmitted the request / data packet, In the data communication method of transmitting a NAK (Negative AcKnowledgement) packet indicating that when the request / data packet is not normally received to the device that has transmitted the request / data packet, Until the request / data packet having the transmitted packet number is received, the ACK packet having the same number as the packet number of the request / data packet is repeatedly transmitted.

本発明によれば、短い周期で一定量のデータを必ず伝送し終わらなければならない、というような同期転送の制約が強い用途においても、低コスト、かつ、少ない再送オーバーヘッドでエラー発生時の処理を効率良く処理することができる、という効果を奏する。   According to the present invention, it is possible to perform processing at the time of occurrence of an error with a low cost and a small retransmission overhead even in an application having strong restrictions on synchronous transfer such that a certain amount of data must be transmitted in a short cycle. There exists an effect that it can process efficiently.

以下に添付図面を参照して、この発明にかかるデータ通信装置、画像処理システムおよびデータ通信方法の最良な実施の形態を詳細に説明する。   Exemplary embodiments of a data communication apparatus, an image processing system, and a data communication method according to the present invention will be explained below in detail with reference to the accompanying drawings.

[第1の実施の形態]
本発明の第1の実施の形態を図1ないし図26に基づいて説明する。以下では、PCI Expressの詳細について、[PCI Express規格の概要]〜[PCI Express規格におけるPosted]の欄で説明し、その後、本実施の形態の画像処理システムについて、[画像処理システム]の欄で説明する。
[First Embodiment]
A first embodiment of the present invention will be described with reference to FIGS. In the following, details of PCI Express will be described in the [Outline of PCI Express Standard] to [Posted in PCI Express Standard] fields, and then the image processing system of the present embodiment will be described in the [Image Processing System] field. explain.

[PCI Express規格の概要]
まず、本実施の形態は高速シリアルバスの一つであるPCI Express(登録商標)を利用するものであり、本実施の形態の前提として当該PCI Express規格の概要について、「“PCI Express 規格の概要”Interface誌、July’2003 里見尚志」の一部抜粋により説明する。ここに、高速シリアルバスとは、1本の伝送路を用いてシリアル(直列)伝送により高速(100Mbps程度以上)にデータをやり取りすることができるインタフェースを意味する。
[Outline of PCI Express standard]
First, this embodiment uses PCI Express (registered trademark), which is one of the high-speed serial buses. As the premise of this embodiment, the outline of the PCI Express standard is described in ““ Outline of PCI Express Standard ”. This will be explained with a partial excerpt from “Interface Magazine, July '2003 Naoshi Satomi”. Here, the high-speed serial bus means an interface capable of exchanging data at high speed (about 100 Mbps or more) by serial (serial) transmission using a single transmission line.

PCI Expressは、PCIの後継規格としてコンピュータ全般に通用する標準拡張バスとして規格化されたバスであり、概略的には、低電圧差動信号伝送、ポイントツーポイントで送受信独立の通信チャネル、パケット化されたスプリットトランザクション、リンク構成の違いによる高いスケーラビリティなどの特徴を持つ。   PCI Express is a standardized expansion bus that can be used for all computers as a successor to PCI. In general, low-voltage differential signal transmission, point-to-point independent communication channels, and packetization Split transactions and high scalability due to differences in link configuration.

図1に既存のPCIシステム、図2にPCI Expressシステムの各々の構成例を示す。既存のPCIシステムにあっては、CPU100やAGPグラフィックス101やメモリ102が接続されたホストブリッジ103に対して、PCI-X(PCIの上位互換規格)デバイス104a,104bがPCI-Xブリッジ105aを介して接続されたり、PCIデバイス104c,104dが接続されたPCIブリッジ105bやPCIバススロット106が接続されたPCIブリッジ107がPCIブリッジ105cを介して接続されたりしたツリー構造(木構造)とされている。   FIG. 1 shows a configuration example of an existing PCI system, and FIG. 2 shows a configuration example of a PCI Express system. In the existing PCI system, PCI-X (PCI upward compatible standard) devices 104a and 104b connect the PCI-X bridge 105a to the host bridge 103 to which the CPU 100, the AGP graphics 101, and the memory 102 are connected. Or a PCI bridge 105b to which the PCI devices 104c and 104d are connected and a PCI bridge 107 to which the PCI bus slot 106 is connected are connected via the PCI bridge 105c (tree structure). Yes.

これに対して、PCI Expressシステムにあっては、CPU110やメモリ111が接続されたルートコンプレックス112に対して、PCI Expressグラフィックス113がPCI Express114aにより接続され、また、エンドポイント115aやレガシーエンドポイント116aがPCI Express114bにより接続されたスイッチ117aがPCI Express114cにより接続され、さらには、エンドポイント115bやレガシーエンドポイント116bがPCI Express114dにより接続されたスイッチ117bやPCIバススロット118が接続されたPCIブリッジ119がPCI Express114eにより接続されたスイッチ117cがPCI Express114fにより接続されたツリー構造(木構造)とされている。   On the other hand, in the PCI Express system, the PCI Express graphics 113 is connected by the PCI Express 114a to the root complex 112 to which the CPU 110 and the memory 111 are connected, and the endpoint 115a and the legacy endpoint 116a. The switch 117a connected by the PCI Express 114b is connected by the PCI Express 114c, and the PCI bridge 119 to which the switch 117b to which the end point 115b and the legacy end point 116b are connected by the PCI Express 114d and the PCI bus slot 118 are connected is a PCI. The switch 117c connected by the Express 114e has a tree structure (tree structure) connected by the PCI Express 114f.

実際に想定されるPCI Expressプラットホーム例を図3に示す。図示例は、デスクトップ/モバイルへの適用例を示し、CPU121がCPUホストバス122により接続され、メモリ123が接続されたメモリハブ124(ルートコンプレックスに相当する)に対して、例えば、グラフィックス125がx16のPCI Express126aにより接続され、また、変換機能を有するI/Oハブ127がPCI Express126bにより接続されている。このI/Oハブ127には、例えば、Serial ATA128によりストレージ129が接続され、LPC130によりローカルI/O131が接続され、USB 2.0132やPCIバススロット133が接続されている。さらには、I/Oハブ127には、PCI Express126cによりスイッチ134が接続され、このスイッチ134には、各々、PCI Express126d,126e,126fによりモバイルドック135、ギガビットイーサネット136(イーサネットは登録商標)、アドインカード137が接続されている。   An example of an actually assumed PCI Express platform is shown in FIG. The illustrated example shows an application example to desktop / mobile. For example, graphics 125 is x16 with respect to a memory hub 124 (corresponding to a root complex) to which a CPU 121 is connected by a CPU host bus 122 and a memory 123 is connected. PCI Express 126a and an I / O hub 127 having a conversion function are connected by PCI Express 126b. For example, a storage 129 is connected to the I / O hub 127 by a Serial ATA 128, a local I / O 131 is connected by an LPC 130, and a USB 2.0 132 and a PCI bus slot 133 are connected. Further, a switch 134 is connected to the I / O hub 127 by a PCI Express 126c, and the mobile dock 135, the Gigabit Ethernet 136 (Ethernet is a registered trademark), and an add-in are connected to the switch 134 by PCI Express 126d, 126e, and 126f, respectively. A card 137 is connected.

即ち、PCI Expressシステムでは、従来のPCI,PCI-X,AGPといったバスがPCI Expressで置き換わり、既存のPCI/PCI-Xデバイスを接続するためにブリッジが使用される。チップセット間の接続もPCI Express接続となり、IEEE1394,Serial ATA,USB 2.0などの既存のバスはI/OハブによりPCI Expressに接続される。   That is, in the PCI Express system, the conventional PCI, PCI-X, AGP bus is replaced with PCI Express, and a bridge is used to connect an existing PCI / PCI-X device. Connection between chipsets is also PCI Express connection, and existing buses such as IEEE1394, Serial ATA, and USB 2.0 are connected to PCI Express by an I / O hub.

[PCI Expressの構成要素]
A.ポート(Port)/レーン(Lane)/リンク(Link)
図4に物理層の構造を示す。ポートは、物理的には同一半導体内にあり、リンクを形成するトランスミッタ/レシーバの集合で、論理的にはコンポーネント・リンク間を1対1で接続(ポイント・ツー・ポイント)するインタフェースを意味する。転送レートは、例えば片方向2.5Gbpsとされている。レーンは、例えば0.8Vの差動信号ペアのセットで、送信側の信号ペア(2本)、受信側の信号ペア(2本)からなる。リンクは、2つのポートとその間を結ぶレーンの集まりであり、コンポーネント間のデュアルシンプレックス通信バスである。「xNリンク」はN本のレーンから構成され、現在の規格では、N=1,2,4,8,16,32が定義されている。図示例は、x4リンク例である。例えば、図5に示すように、デバイスA,B間を結ぶこのレーン幅Nを可変することにより、スケーラブルなバンド幅を構成することが可能となる。
[Components of PCI Express]
A. Port / Lane / Link
FIG. 4 shows the structure of the physical layer. A port is a collection of transmitters / receivers that are physically in the same semiconductor and form a link, and logically means an interface that connects component links in a one-to-one relationship (point-to-point). . The transfer rate is, for example, 2.5 Gbps in one direction. The lane is, for example, a set of 0.8 V differential signal pairs, and includes a transmission-side signal pair (two) and a reception-side signal pair (two). A link is a collection of lanes connecting two ports and the two ports, and is a dual simplex communication bus between components. The “xN link” is composed of N lanes, and N = 1, 2, 4, 8, 16, 32 are defined in the current standard. The illustrated example is an x4 link example. For example, as shown in FIG. 5, by changing the lane width N connecting the devices A and B, a scalable bandwidth can be configured.

B.ルートコンプレックス(Root Complex)
ルートコンプレックス112は、I/O構造の最上位に位置し、CPUやメモリサブシステムをI/Oに接続する。ブロック図などでは、図3に示すように、「メモリハブ」と記述されることが多い。ルートコンプレックス112(又は、124)は、1つ以上のPCI Expressポート(ルートポート)(図2中では、ルートコンプレックス112中の四角で示す)を持ち、各々のポートは独立したI/O階層ドメインを形成する。I/O階層ドメインは、単純なエンドポイントである場合(例えば、図2中のエンドポイント115a側の例)や、多数のスイッチやエンドポイントから形成される場合(例えば、図2中のエンドポイント115bやスイッチ117b,115c側の例)がある。
B. Root Complex
The root complex 112 is located at the highest level of the I / O structure, and connects the CPU and the memory subsystem to the I / O. In a block diagram or the like, as shown in FIG. 3, it is often described as “memory hub”. The root complex 112 (or 124) has one or more PCI Express ports (root ports) (indicated by squares in the root complex 112 in FIG. 2), and each port is an independent I / O hierarchical domain. Form. The I / O hierarchical domain is a simple endpoint (for example, the example of the endpoint 115a side in FIG. 2), or is formed from a large number of switches and endpoints (for example, the endpoint in FIG. 2). 115b and switches 117b and 115c side).

C.エンドポイント(End Point)
エンドポイント115は、タイプ00hのコンフィグレーション空間ヘッダを持つデバイス(具体的には、ブリッジ以外のデバイス)で、レガシーエンドポイントとPCI Expressエンドポイントとに分けられる。両者の大きな違いは、PCI ExpressエンドポイントはBAR(ベースアドレスレジスタ)でI/Oリソースを要求せず、このためI/Oリクエストを要求しない。また、PCI Expressエンドポイントは、ロックリクエストもサポートしていない。
C. End point
The endpoint 115 is a device having a configuration space header of type 00h (specifically, a device other than a bridge), and is divided into a legacy endpoint and a PCI Express endpoint. The major difference between the two is that the PCI Express endpoint does not request I / O resources in the BAR (Base Address Register), and therefore does not request an I / O request. PCI Express endpoints also do not support lock requests.

D.スイッチ(Switch)
スイッチ117(又は、134)は、2つ以上のポートを結合し、ポート間でのパケットルーティングを行う。コンフィグレーションソフトウェアからは、当該スイッチは、図6に示すように、仮想PCI-PCIブリッジ141の集合体として認識される。図中、両矢印はPCI Expressリンク114(又は、126)を示し、142a〜142dはポートを示す。このうち、ポート142aはルートコンプレックスに近い方のアップストリームポートであり、ポート142b〜142dはルートコンプレックスから遠い方のダウンストリームポートである。
D. Switch
The switch 117 (or 134) couples two or more ports and performs packet routing between the ports. From the configuration software, the switch is recognized as a collection of virtual PCI-PCI bridges 141 as shown in FIG. In the figure, double-headed arrows indicate PCI Express links 114 (or 126), and 142a to 142d indicate ports. Of these, the port 142a is an upstream port closer to the root complex, and the ports 142b to 142d are downstream ports farther from the root complex.

E.PCI Express114e−PCIブリッジ119
PCI ExpressからPCI/PCI-Xへの接続を提供する。これにより、既存のPCI/PCI-XデバイスをPCI Expressシステム上で使用することができる。
E. PCI Express 114e-PCI bridge 119
Provides connection from PCI Express to PCI / PCI-X. Thereby, an existing PCI / PCI-X device can be used on the PCI Express system.

[階層アーキテクチャ]
従来のPCIのアーキテクチャは、図7−1に示すように、プロトコルとシグナリングが密接に関連する構造であり階層という考え方はなかったが、PCI Expressでは、図7−2に示すように、一般的な通信プロトコルやInfiniBandのように、独立した階層構造とされ、各層に分けて仕様が定義されている。即ち、最上位のソフトウェア151、最下位の機構(メカニカル)部152間に、トランザクション層153、データリンク層154、物理層155を持つ構造とされている。これにより、各層のモジュール性が確保され、スケーラビリティを持たせることやモジュールの再利用が可能となる。例えば、新たな信号コーディング方式や伝送媒体を採用する場合、物理層を変更するだけでデータリンク層やトランザクション層は変更せずに対応できる。
[Hierarchical architecture]
As shown in FIG. 7A, the conventional PCI architecture has a structure in which protocols and signaling are closely related and there is no concept of hierarchy. In PCI Express, as shown in FIG. Like the standard communication protocol and InfiniBand, it has an independent hierarchical structure, and specifications are defined for each layer. In other words, a transaction layer 153, a data link layer 154, and a physical layer 155 are provided between the uppermost software 151 and the lowermost mechanism (mechanical) unit 152. Thereby, the modularity of each layer is ensured, and it becomes possible to provide scalability and reuse the module. For example, when adopting a new signal coding method or transmission medium, it is possible to cope with only changing the physical layer without changing the data link layer or the transaction layer.

PCI Expressのアーキテクチャの中心となるのは、トランザクション層153、データリンク層154、物理層155であり、各々図8を参照して説明する以下のような役割を持つ。   The core of the PCI Express architecture is a transaction layer 153, a data link layer 154, and a physical layer 155, each having the following roles described with reference to FIG.

A.トランザクション層153
トランザクション層153は、最上位に位置し、トランザクションレイヤパケット(TLP)の組み立て、分解機能を持つ。トランザクションレイヤパケット(TLP)は、リード/ライト、各種イベントといったトランザクションの伝達に用いられる。また、トランザクション層153は、トランザクションレイヤパケット(TLP)のためのクレジットを用いたフロー制御を行う。各層153〜155におけるトランザクションレイヤパケット(TLP)の概要を図9に示す(詳細は、後述する)。
A. Transaction layer 153
The transaction layer 153 is located at the highest level and has a function of assembling and disassembling a transaction layer packet (TLP). The transaction layer packet (TLP) is used for transmission of transactions such as read / write and various events. The transaction layer 153 performs flow control using credits for transaction layer packets (TLP). An outline of a transaction layer packet (TLP) in each of the layers 153 to 155 is shown in FIG. 9 (details will be described later).

B.データリンク層154
データリンク層154の主な役割は、エラー検出/訂正(再送)によりトランザクションレイヤパケット(TLP)のデータ完全性を保証することと、リンク管理である。データリンク層154間では、リンク管理やフロー制御のためのパケットのやり取りを行う。このパケットは、トランザクションレイヤパケット(TLP)と区別するために、データリンクレイヤパケット(DLLP)と呼ばれる。
B. Data link layer 154
The main role of the data link layer 154 is to guarantee data integrity of the transaction layer packet (TLP) by error detection / correction (retransmission) and link management. Packets for link management and flow control are exchanged between the data link layers 154. This packet is called a data link layer packet (DLLP) to distinguish it from a transaction layer packet (TLP).

C.物理層155
物理層155は、ドライバ、入力バッファ、パラレル−シリアル/シリアル−パラレル変換器、PLL、インピーダンス整合回路といったインタフェース動作に必要な回路を含んでいる。また、論理的な機能としてインタフェースの初期化・保守の機能を持つ。物理層155は、データリンク層154/トランザクション層153を実際のリンクで使用される信号技術から独立させる役目も持っている。
C. Physical layer 155
The physical layer 155 includes circuits necessary for interface operations such as a driver, an input buffer, a parallel-serial / serial-parallel converter, a PLL, and an impedance matching circuit. It also has interface initialization / maintenance functions as logical functions. The physical layer 155 also serves to make the data link layer 154 / transaction layer 153 independent of the signaling technology used in the actual link.

なお、PCI Expressのハードウェア構成上、エンベデッド・クロックという技術を採用しており、クロック信号はなく、クロックのタイミングはデータ信号中に埋め込まれており、受信側でデータ信号のクロス・ポイントを基にクロックを抽出する方式とされている。   The PCI Express hardware configuration employs a technology called embedded clock, there is no clock signal, the clock timing is embedded in the data signal, and the receiving side is based on the cross-point of the data signal. The system extracts the clock.

[コンフィグレーション空間]
PCI Expressは、従来のPCIと同様にコンフィグレーション空間を持つが、その大きさは従来のPCIが256バイトであるのに対して、図10に示すように、4096バイトへと拡張されている。これにより、多数のデバイス固有レジスタセットを必要とするデバイス(ホストブリッジなど)に対しても、将来的に十分な空間が確保されている。PCI Expressでは、コンフィグレーション空間へのアクセスは、フラットなメモリ空間へのアクセス(コンフィグレーションリード/ライト)で行われ、バス/デバイス/機能/レジスタ番号はメモリアドレスにマップされている。
[Configuration space]
PCI Express has a configuration space like conventional PCI, but its size is expanded to 4096 bytes as shown in FIG. 10, whereas conventional PCI has 256 bytes. As a result, sufficient space is secured in the future even for devices (such as host bridges) that require a large number of device-specific register sets. In PCI Express, the configuration space is accessed by accessing a flat memory space (configuration read / write), and the bus / device / function / register number is mapped to a memory address.

当該空間の先頭256バイトは、PCIコンフィグレーション空間として、BIOSや従来のOSからI/Oポートを使用した方法でもアクセスできる。従来のアクセスをPCI Expressでのアクセスに変換する機能は、ホストブリッジ上に実装される。00hから3FhまではPCI2.3互換のコンフィグレーションヘッダとなっている。これにより、PCI Expressで拡張された機能以外であれば、従来のOSやソフトウェアをそのまま使用することができる。即ち、PCI Expressにおけるソフトウェア層は、既存のPCIと互換性を保ったロード・ストア・アーキテクチャ(プロセッサが直接I/Oレジスタをアクセスする方式)を継承している。しかし、PCI Expressで拡張された機能(例えば、同期転送やRAS(Reliability,Availability and Serviceability)などの機能)を使用するには、4KバイトのPCI Express拡張空間にアクセスできるようにする必要がある。   The first 256 bytes of the space can be accessed as a PCI configuration space by a method using an I / O port from a BIOS or a conventional OS. The function of converting conventional access to PCI Express access is implemented on the host bridge. From 00h to 3Fh, it is a PCI2.3 compatible configuration header. As a result, a conventional OS and software can be used as they are except for functions extended by PCI Express. That is, the software layer in PCI Express inherits a load / store architecture (a method in which a processor directly accesses an I / O register) that is compatible with the existing PCI. However, in order to use functions expanded by PCI Express (for example, functions such as synchronous transfer and RAS (Reliability, Availability and Serviceability)), it is necessary to make it possible to access a 4 Kbyte PCI Express expansion space.

なお、PCI Expressとしては様々なフォームファクタ(形状)が考えられるが、具体化している例としては、アドインカード、プラグインカード(Express Card)、Mini PCI Expressなどがある。   Various form factors (shapes) are conceivable as PCI Express. Examples of specific examples include add-in cards, plug-in cards (Express Cards), and Mini PCI Express.

[PCI Express のアーキテクチャの詳細]
PCI Express のアーキテクチャの中心となっているトランザクション層153、データリンク層154、物理層155について、各々詳細に説明する。
[PCI Express architecture details]
The transaction layer 153, data link layer 154, and physical layer 155, which are the core of the PCI Express architecture, will be described in detail.

A.トランザクション層153
トランザクション層153の主な役割は、前述したように、上位のソフトウェア層151と下位のデータリンク層154との間でトランザクションレイヤパケット(TLP)の組み立てと分解を行うことである。
A. Transaction layer 153
The main role of the transaction layer 153 is to assemble and disassemble transaction layer packets (TLP) between the upper software layer 151 and the lower data link layer 154 as described above.

a.アドレス空間とトランザクションタイプ
PCI Expressでは、従来のPCIでサポートされていたメモリ空間(メモリ空間とのデータ転送用)、I/O空間(I/O空間とのデータ転送用)、コンフィグレーション空間(デバイスのコンフィグレーションとセットアップ用)に加えて、メッセージ空間(PCI Expressデバイス間のインバンドでのイベント通知や一般的なメッセージ送信(交換)用…割り込み要求や確認は、メッセージを「仮想ワイヤ」として使用することにより伝達される)が追加され、4つのアドレス空間が定義されている。各々の空間に対してトランザクションタイプが定義されている(メモリ空間、I/O空間、コンフィグレーション空間は、リード/ライト、メッセージ空間は基本(ベンダ定義含む))。
a. Address space and transaction type
In PCI Express, memory space (for data transfer with memory space), I / O space (for data transfer with I / O space), and configuration space (device configuration and setup) supported by conventional PCI In addition to message space (in-band event notification between PCI Express devices and general message transmission (exchange) ... Interrupt requests and confirmations are communicated by using the message as a "virtual wire" And four address spaces are defined. Transaction types are defined for each space (memory space, I / O space, configuration space is read / write, and message space is basic (including vendor definition)).

b.トランザクションレイヤパケット(TLP)
PCI Expressは、パケット単位で通信を行う。図9に示したトランザクションレイヤパケット(TLP)のフォーマットにおいて、ヘッダのヘッダ長は3DW(DWはダブルワードの略;合計12バイト)又は4DW(16バイト)で、トランザクションレイヤパケット(TLP)のフォーマット(ヘッダ長とペイロードの有無)、トランザクションタイプ、トラフィッククラス(TC)、アトリビュートやペイロード長などの情報が含まれる。パケット内の最大ペイロード長は1024DW(4096バイト)である。
b. Transaction layer packet (TLP)
PCI Express performs communication in units of packets. In the transaction layer packet (TLP) format shown in FIG. 9, the header length of the header is 3DW (DW is an abbreviation of double word; total 12 bytes) or 4DW (16 bytes), and the transaction layer packet (TLP) format ( Information such as header length and presence / absence of payload), transaction type, traffic class (TC), attribute, and payload length are included. The maximum payload length in the packet is 1024 DW (4096 bytes).

ECRCは、エンドツーエンドのデータ完全性を保証するためのもので、トランザクションレイヤパケット(TLP)部分の32ビットCRCである。これは、スイッチ内部などでトランザクションレイヤパケット(TLP)にエラーが発生した場合、LCRC(リンクCRC)ではエラーを検出できないためである(エラーとなったTLPでLCRCが再計算されるため)。   ECRC is an end-to-end data integrity guarantee and is a 32-bit CRC of the transaction layer packet (TLP) portion. This is because when an error occurs in the transaction layer packet (TLP) inside the switch or the like, the LCRC (link CRC) cannot detect the error (because the LCRC is recalculated with the TLP in error).

リクエストは、完了パケットが不要なものと必要なものとがある。   Some requests do not require a completion packet, and some requests.

c.トラフィッククラス(TC)と仮想チャネル(VC)
上位のソフトウェアは、トラフィッククラス(TC)を使用することによりトラフィックの差別化(優先度をつける)を行うことができる。例えば、映像データをネットワークのデータよりも優先して転送する、といったことが可能となる。トラフィッククラス(TC)はTC0からTC7まで8つある。
c. Traffic class (TC) and virtual channel (VC)
Upper software can differentiate (prioritize) traffic by using a traffic class (TC). For example, video data can be transferred with priority over network data. There are eight traffic classes (TC) from TC0 to TC7.

仮想チャネル(VC:Vertual Channel)は、各々独立した仮想通信バス(同一のリンクを共用する複数の独立したデータ・フロー・バッファを使用するメカニズム)で、各々がリソース(バッファやキュー)を持ち、図11に示すように、独立したフロー制御を行う。これにより、1つの仮想チャネルのバッファが満杯の状態(full)になっても、他の仮想チャネルの転送を行うことができる。つまり、物理的には1つのリンクを仮想的な複数のチャネルに分けることで、有効に使用することができる。例えば、図11中に示すように、スイッチを経由してルートのリンクが複数のデバイスに分かれる場合、各デバイスのトラフィックの優先度を制御することができる。VC0は必須で、コストパフォーマンスのトレードオフに応じてその他の仮想チャネル(VC1〜VC7)が実装される。図11中の実線矢印は、デフォルト仮想チャネル(VC0)を示し、破線矢印はその他の仮想チャネル(VC1〜VC7)を示している。   A virtual channel (VC) is an independent virtual communication bus (a mechanism that uses a plurality of independent data flow buffers sharing the same link), each having resources (buffers and queues) As shown in FIG. 11, independent flow control is performed. Thereby, even if the buffer of one virtual channel becomes full (full), the transfer of another virtual channel can be performed. In other words, it can be used effectively by physically dividing one link into a plurality of virtual channels. For example, as shown in FIG. 11, when a route link is divided into a plurality of devices via a switch, the priority of traffic of each device can be controlled. VC0 is indispensable, and other virtual channels (VC1 to VC7) are mounted in accordance with the cost performance trade-off. The solid line arrow in FIG. 11 indicates the default virtual channel (VC0), and the broken line arrow indicates the other virtual channels (VC1 to VC7).

トランザクション層内では、トラフィッククラス(TC)が仮想チャネル(VC)にマッピングされる。1つの仮想チャネル(VC)に対して1つ又は複数のトラフィッククラス(TC)をマッピングできる(仮想チャネル(VC)の数が少ない場合)。単純な例では、各トラフィッククラス(TC)から各仮想チャネル(VC)に1対1、全てのトラフィッククラス(TC)を仮想チャネルVC0にマッピングする、といったことが考えられる。TC0−VC0のマッピングは、必須/固定で、それ以外のマッピングは上位のソフトウェアから制御される。ソフトウェアはトラフィッククラス(TC)を利用することで、トランザクションの優先度を制御することが可能となる。   Within the transaction layer, a traffic class (TC) is mapped to a virtual channel (VC). One or more traffic classes (TC) can be mapped to one virtual channel (VC) (when the number of virtual channels (VC) is small). In a simple example, it can be considered that each traffic class (TC) is mapped to each virtual channel (VC) on a one-to-one basis, and all traffic classes (TC) are mapped to the virtual channel VC0. The mapping of TC0-VC0 is essential / fixed, and the other mappings are controlled from the upper software. The software can control the priority of the transaction by using the traffic class (TC).

d.フロー制御
受信バッファのオーバーフローを避け、伝送順序を確立するためにフロー制御(FC:Flow Control)が行われる。フロー制御は、リンク間のポイントツーポイントで行われ、エンドツーエンドではない。従って、フロー制御により最終的な相手(コンプリータ)にパケットが届いたことを確認することはできない。
d. Flow control Flow control (FC) is performed in order to avoid overflow of the reception buffer and establish the transmission order. Flow control is done point-to-point between links, not end-to-end. Therefore, it cannot be confirmed that the packet has reached the final partner (completer) by flow control.

PCI Expressのフロー制御は、クレジット・ベースで行われる(データ転送を始める前に、受け取り側のバッファの空き状況を確認し、オーバーフロー、アンダフローが発生しないメカニズム)。即ち、受信側はリンク初期化時にバッファ容量(クレジット値)を送信側に通知し、送信側はクレジット値と送信するパケットの長さとを比較し、一定の残りがある場合のみパケットを送信する。このクレジットには6種類ある。   PCI Express flow control is performed on a credit basis (mechanism to check the buffer availability on the receiving side before starting data transfer and prevent overflow and underflow). That is, the receiving side notifies the transmitting side of the buffer capacity (credit value) at the time of link initialization, and the transmitting side compares the credit value with the length of the packet to be transmitted, and transmits the packet only when there is a certain remaining. There are six types of credits.

フロー制御の情報交換はデータリンク層のデータリンクレイヤパケット(DLLP)を使用して行われる。フロー制御はトランザクションレイヤパケット(TLP)のみに適用され、データリンクレイヤパケット(DLLP)には適用されない(DLLPは常時送受信可能)。   Flow control information exchange is performed using data link layer packets (DLLP) in the data link layer. The flow control is applied only to the transaction layer packet (TLP) and not to the data link layer packet (DLLP) (DLLP can always be transmitted / received).

B.データリンク層154
データリンク層154の主な役割は、前述したように、リンク上の2つのコンポーネント間での信頼性の高いトランザクションレイヤパケット(TLP)交換機能を提供することである。
B. Data link layer 154
The main role of the data link layer 154 is to provide a reliable transaction layer packet (TLP) exchange function between two components on the link, as described above.

a.トランザクションレイヤパケット(TLP)の扱い
トランザクション層153から受け取ったトランザクションレイヤパケット(TLP)に対しては、先頭に2バイトのシーケンス番号、末尾に4バイトのリンクCRC(LCRC)を付加して、物理層155に渡す(図9参照)。トランザクションレイヤパケット(TLP)は、リトライバッファに保管され、相手から受信確認(ACK)が届くまで再送される。トランザクションレイヤパケット(TLP)の送信に失敗が続いた場合は、リンク異常であると判断して物理層155に対してリンクの再トレーニングを要求する。リンクのトレーニングが失敗した場合、データリンク層154の状態はインアクティブに遷移する。
a. Handling of transaction layer packet (TLP) For the transaction layer packet (TLP) received from the transaction layer 153, a 2-byte sequence number at the beginning and a 4-byte link CRC (LCRC) at the end are added to the physical layer. To 155 (see FIG. 9). The transaction layer packet (TLP) is stored in the retry buffer and retransmitted until a reception confirmation (ACK) is received from the partner. When the transmission of the transaction layer packet (TLP) continues to fail, it is determined that the link is abnormal, and the physical layer 155 is requested to retrain the link. If link training fails, the state of the data link layer 154 transitions to inactive.

物理層155から受け取ったトランザクションレイヤパケット(TLP)は、シーケンス番号とリンクCRC(LCRC)が検査され、正常であればトランザクション層153に渡され、エラーがあった場合は再送を要求する。   The transaction layer packet (TLP) received from the physical layer 155 is inspected for the sequence number and the link CRC (LCRC). If normal, the transaction layer packet (TLP) is passed to the transaction layer 153. If there is an error, a retransmission is requested.

b.データリンクレイヤパケット(DLLP)
トランザクションレイヤパケット(TLP)は、物理層から送信されるときに自動的に図12に示すようなデータリンクレイヤパケット(DLLP)に分割されて各レーンに送信される。データリンク層154が生成するパケットは、データリンクレイヤパケット(DLLP)と呼ばれ、データリンク層154間でやり取りされる。データリンクレイヤパケット(DLLP)には、
・Ack/Nak:TLPの受信確認、リトライ(再送)
・InitFC1/InitFC2/UpdateFC:フロー制御の初期化とアップデート
・電源管理のためのDLLP
なる種類がある。
b. Data link layer packet (DLLP)
The transaction layer packet (TLP) is automatically divided into data link layer packets (DLLP) as shown in FIG. 12 and transmitted to each lane when transmitted from the physical layer. A packet generated by the data link layer 154 is called a data link layer packet (DLLP), and is exchanged between the data link layers 154. Data link layer packet (DLLP)
-Ack / Nak: TLP reception confirmation, retry (retransmission)
-InitFC1 / InitFC2 / UpdateFC: Flow control initialization and update-DLLLP for power management
There are different types.

図12に示すように、データリンクレイヤパケット(DLLP)の長さは6バイトで、種類を示すDLLPタイプ(1バイト)、DLLPの種類で固有の情報(3バイト)、CRC(2バイト)から構成される。   As shown in FIG. 12, the length of the data link layer packet (DLLP) is 6 bytes. From the DLLP type (1 byte) indicating the type, the information specific to the type of DLLP (3 bytes), and CRC (2 bytes) Composed.

C.物理層−論理サブブロック156
図8中に示す物理層155の論理サブブロック156での主な役割は、データリンク層154から受け取ったパケットを電気サブブロック157で送信できる形式に変換することである。また、物理層155を制御/管理する機能も有する。
C. Physical layer-logical sub-block 156
The main role of the physical layer 155 in the logical sub-block 156 shown in FIG. 8 is to convert the packet received from the data link layer 154 into a format that can be transmitted by the electrical sub-block 157. It also has a function of controlling / managing the physical layer 155.

a.データ符号化とパラレル−シリアル変換
PCI Expressは、連続した“0”や“1”が続かないように(長い期間、クロス・ポイントが存在しない状態が続かないようにするため)、データ符号化に8B/10B変換を用いる。変換されたデータは、図13中に示すように、シリアル変換され、LSBからレーン上に送信される。ここに、レーンが複数ある場合は(図13はx4リンクの場合を例示している)、符号化の前にデータがバイト単位で各レーンに割り振られる。この場合、一見パラレルバスのようにみえるが、レーン毎に独立した転送を行うので、パラレルバスで問題となるスキューが大幅に緩和される。
a. Data encoding and parallel-serial conversion
PCI Express uses 8B / 10B conversion for data encoding so that consecutive “0” s and “1” s do not continue (in order not to maintain a state where there is no cross point for a long period of time). The converted data is serial-converted and transmitted from the LSB onto the lane as shown in FIG. Here, when there are a plurality of lanes (FIG. 13 illustrates the case of x4 link), data is allocated to each lane in units of bytes before encoding. In this case, it looks like a parallel bus at first glance, but since the transfer is performed independently for each lane, the skew that is a problem with the parallel bus is greatly reduced.

b.電源管理とリンクステート
リンクの消費電力を低く抑えるために、図14に示すように、L0/L0s/L1/L2というリンクステートが定義されている。
b. Power Management and Link State In order to keep the power consumption of the link low, a link state of L0 / L0s / L1 / L2 is defined as shown in FIG.

L0が通常モードで、L0sからL2へと低消費電力となるが、L0への復帰にも時間がかかるようになる。図15に示すように、ソフトウェアによる電源管理に加えて、アクティブステート電源管理を積極的に行うことにより、消費電力を極力小さくすることが可能となる。   L0 is a normal mode, and power consumption is reduced from L0s to L2, but it takes time to return to L0. As shown in FIG. 15, by actively performing active state power management in addition to software power management, it is possible to reduce power consumption as much as possible.

D.物理層−電気サブブロック157
物理層155の電気サブブロック157での主な役割は、論理サブブロック156でシリアル化されたデータをレーン上に送信することと、レーン上のデータを受信して論理サブブロック156に渡すことである。
D. Physical layer—Electric sub-block 157
The main role of the physical layer 155 in the electrical sub-block 157 is to transmit the data serialized in the logical sub-block 156 onto the lane, and to receive the data on the lane and pass it to the logical sub-block 156. is there.

a.ACカップリング
リンクの送信側では、ACカップリング用のコンデンサが実装される。これにより、送信側と受信側のDCコモンモード電圧が同一である必要がなくなる。このため、送信側と受信側で異なる設計、半導体プロセス、電源電圧を使用することが可能となる。
a. AC coupling On the transmission side of the link, a capacitor for AC coupling is mounted. This eliminates the need for the DC common mode voltage on the transmission side and the reception side to be the same. For this reason, it is possible to use different designs, semiconductor processes, and power supply voltages on the transmission side and the reception side.

b.デエンファシス
PCI Expressでは、前述したように、8B/10Bエンコーディングによってできるだけ連続した“0”や“1”が続かないように処理されるが、連続した“0”や“1”が続くこともある(最大5回)。この場合、送信側はデエンファシス転送を行わなければならないことが規定されている。同一極性のビットが連続する場合は、2つ目のビットからは差動電圧レベル(振幅)を3.5±0.5dB落とすことで、受信側で受け取る信号のノイズ・マージンを稼ぐ必要がある。これを、デエンファシスという。伝送路の周波数依存性減衰のため、変化するビットの場合は高周波成分が多く、減衰により受信側の波形が小さくなるが、変化しないビットの場合は高周波成分が少なく、相対的に受信側の波形が大きくなる。このため、受信側での波形を一定とするためにデエンファシスを行う。
b. De-emphasis
In PCI Express, as described above, processing is performed so that continuous “0” and “1” do not continue as much as possible by 8B / 10B encoding, but continuous “0” and “1” may continue (maximum). 5 times). In this case, it is specified that the transmission side must perform de-emphasis transfer. When bits of the same polarity are consecutive, it is necessary to increase the noise margin of the signal received on the receiving side by dropping the differential voltage level (amplitude) from the second bit by 3.5 ± 0.5 dB. . This is called de-emphasis. Due to the frequency-dependent attenuation of the transmission line, there are many high-frequency components in the case of changing bits, and the waveform on the receiving side becomes small due to attenuation. Becomes larger. For this reason, de-emphasis is performed in order to make the waveform on the receiving side constant.

[PCI Express規格におけるPostedリクエストとNon-Postedリクエスト]
PCI Expressにおけるリクエストは、PostedリクエストとNon-Postedリクエストの2種類に分けられる。Postedリクエストとは、リクエストの要求先からの応答が必要なリクエストである。例えば、メモリリードリクエストやコンフィグリードリクエストなどのように、リクエストに対してデータの応答が発生するリクエストが該当する。一方、Non-Postedリクエストは、リクエストの要求先からの応答が不要なリクエストである。例えば、メモリライトリクエストやメッセージリクエストのように、リクエストとともにデータを送信して要求先からの応答が発生しないリクエストが該当する。
[Posted requests and non-posted requests in the PCI Express standard]
Requests in PCI Express are divided into two types: Posted requests and Non-Posted requests. Posted request is a request that requires a response from the request destination. For example, a request that generates a data response to the request, such as a memory read request or a configuration read request, corresponds. On the other hand, the Non-Posted request is a request that does not require a response from the request destination. For example, a request that transmits data together with the request and does not generate a response from the request destination, such as a memory write request or a message request.

[データ通信装置]
本実施の形態のデータ通信装置は、前述したようなPCI Express規格の高速シリアルバスに接続されるデバイスである。このようなデータ通信装置は、例えば、コピー機能、ファクシミリ(FAX)機能、プリント機能、スキャナ機能および入力画像(スキャナ機能による読み取り原稿画像やプリンタあるいはFAX機能により入力された画像)を配信する機能等を複合したいわゆるMFP(Multi Function Peripheral)と称されるデジタル複合機(画像処理システム)に備えられる。
[Data communication equipment]
The data communication apparatus according to the present embodiment is a device connected to the PCI Express standard high-speed serial bus as described above. Such a data communication apparatus has, for example, a copy function, a facsimile (FAX) function, a print function, a scanner function, and an input image (a document image read by a scanner function or an image input by a printer or a FAX function). It is provided in a digital multifunction peripheral (image processing system) called a so-called MFP (Multi Function Peripheral).

ここで、図16は本発明の第1の実施の形態にかかるデジタル複合機に備えられるデータ通信装置1の概要を示すブロック図、図17はデータ通信装置1の接続構成を概略的に示す模式図である。   Here, FIG. 16 is a block diagram showing an outline of the data communication apparatus 1 provided in the digital multi-function peripheral according to the first embodiment of the present invention, and FIG. 17 is a schematic diagram schematically showing a connection configuration of the data communication apparatus 1. FIG.

図17に示すように、データ通信装置1は、互いの送信ポートTX、受信ポートRXがシリアル伝送路で接続され、この間をリクエストパケット/データパケットならびに、リクエストパケットやデータパケットが受信されたことを送信元に応答するACK(ACKnowledgement)パケット、あるいは受信したリクエストやデータパケットにエラーが混入していて正常に受信できなかったことを伝えるNAK(Negative AcKnowledgement)パケットが相互に転送される。このようにパケットデータ転送時にエラーが発生したか否かを送信側に伝えることで、再送効率を向上させることができる。   As shown in FIG. 17, in the data communication apparatus 1, the transmission port TX and the reception port RX are connected to each other via a serial transmission path, and a request packet / data packet, a request packet, and a data packet are received between them. An ACK (ACKnowledgement) packet that responds to the transmission source, or a NAK (Negative AcKnowledgement) packet that conveys that the received request or data packet is mixed with an error and cannot be normally received is transferred to each other. In this way, it is possible to improve retransmission efficiency by notifying the transmission side whether or not an error has occurred during packet data transfer.

図16に示すように、PCI Express接続されるデバイスであるデータ通信装置1は、接続相手先とのデータ通信処理を実行することによって特定の機能を実現するユーザーロジック2に接続されている。ユーザーロジック2は、トランザクション送信部3とトランザクション受信部4とによって構成されている。トランザクション送信部3は、データ通信装置1に対して、複数のパケット群からなるトランザクションであるリクエスト/データパケット(リクエスト情報およびデータ)を送信する。ここで、トランザクションとは、ある特定の機能を処理するために必要な量のデータの送信、または受信する単位を示すものとする。また、リクエスト情報とは、相手先にデータを送りたいのか(メモリライト等)、相手先のデータを受け取りたいのか(メモリリード等)、といったデータ転送の種類に関する情報を含む。データは、リクエストの種類に応じて送りたいデータを含む。本実施の形態のデータ通信装置1はPCI Express規格にしたがった通信プロトコルを用いたものであることから、リクエスト/データパケットは、メモリリードリクエスト、メモリリードに対するデータ転送応答(コンプリーション)、メモリライトリクエストのいずれか、またはそれぞれの組み合わせにより構成されたものである。   As shown in FIG. 16, the data communication apparatus 1 that is a PCI Express connected device is connected to a user logic 2 that realizes a specific function by executing data communication processing with a connection partner. The user logic 2 includes a transaction transmission unit 3 and a transaction reception unit 4. The transaction transmitter 3 transmits a request / data packet (request information and data), which is a transaction composed of a plurality of packet groups, to the data communication apparatus 1. Here, the transaction indicates a unit for transmitting or receiving an amount of data necessary for processing a specific function. The request information includes information on the type of data transfer such as whether to send data to the other party (memory write or the like) or whether to receive the other party's data (memory read or the like). The data includes data to be sent according to the type of request. Since the data communication apparatus 1 of the present embodiment uses a communication protocol according to the PCI Express standard, the request / data packet includes a memory read request, a data transfer response (completion) to the memory read, and a memory write. It is composed of any one or a combination of requests.

一方、データ通信装置1は、図16に示すように、送信部11と受信部21とにより構成されている。   On the other hand, the data communication apparatus 1 includes a transmission unit 11 and a reception unit 21 as shown in FIG.

送信部11は、図16に示すように、ダミーリクエスト生成手段として機能するダミーリクエスト生成部12と、パケット生成部13と、パケット番号生成部14と、調停部15と、パケット記憶手段として機能する再送パケットバッファ16と、パケット再送手段として機能する再送制御部17と、ACK/NAK生成部18とを備えている。   As shown in FIG. 16, the transmission unit 11 functions as a dummy request generation unit 12, a packet generation unit 13, a packet number generation unit 14, an arbitration unit 15, and a packet storage unit that function as dummy request generation units. A retransmission packet buffer 16, a retransmission control unit 17 that functions as a packet retransmission unit, and an ACK / NAK generation unit 18 are provided.

送信部11は、ユーザーロジック2から渡されたリクエスト情報やデータに対して、パケット生成部13において、パケット番号生成部14で生成されたパケット番号とCRC計算結果とを付加して、リクエスト/データパケットを生成する。   The transmission unit 11 adds the packet number generated by the packet number generation unit 14 and the CRC calculation result to the request information and data passed from the user logic 2 in the packet generation unit 13, and requests / data Generate a packet.

ここで、図18はリクエスト/データパケットの構成例を示す模式図である。図18に示すように、リクエスト/データパケットは、パケットを識別するためのパケット番号と、ユーザーロジック2から渡されたリクエスト情報を示すヘッダ情報、データの各フィールドと、CRC(Cyclic Redundancy Check)フィールドによって構成される。CRCフィールドの値は、CRC生成多項式と呼ばれるシフトや加算などを組み合わせた方式でパケットデータをもとに計算された値であり、このパケットに含まれるデータが正しく伝送されたか否かを判定するために用いられる。詳細は後述するが、データ通信装置1は、リクエスト/データパケットを受信した際に、このCRCフィールドの値が受け取ったパケットデータの内容に整合する場合は、ACKパケットを応答し、不整合がある場合にはNAKパケットを応答して、送信元にエラーの発生を伝える。図19は、ACK/NAKパケットの構成例を示す模式図である。図19に示すように、ACK/NAKパケットは、ACKかNAKかを示すACK/NAK情報、どのパケットに対する応答であるかを示すパケット番号、そしてACK/NAKパケット自体のエラー検出に利用するためのCRCフィールドによって構成される。   Here, FIG. 18 is a schematic diagram showing a configuration example of a request / data packet. As shown in FIG. 18, the request / data packet includes a packet number for identifying the packet, header information indicating request information passed from the user logic 2, fields of data, and a CRC (Cyclic Redundancy Check) field. Consists of. The value of the CRC field is a value calculated based on packet data in a combination of shift and addition called a CRC generation polynomial, and is used to determine whether or not the data included in this packet has been correctly transmitted. Used for. Although details will be described later, when the data communication device 1 receives the request / data packet, if the CRC field value matches the content of the received packet data, the data communication device 1 responds with an ACK packet and there is a mismatch. In this case, a NAK packet is returned to notify the transmission source of the occurrence of an error. FIG. 19 is a schematic diagram illustrating a configuration example of an ACK / NAK packet. As shown in FIG. 19, the ACK / NAK packet is used for ACK / NAK information indicating whether it is ACK or NAK, a packet number indicating which packet is a response, and error detection of the ACK / NAK packet itself. Consists of a CRC field.

パケット生成部13で生成されたリクエスト/データパケットは、調停部15へ転送されてTXポートから相手先の装置へと送信される。このとき、パケット生成部13で生成されたリクエスト/データパケットは、再送パケットバッファ16にも転送される。すなわち、TXポートから送信されるリクエスト/データパケットと同じデータが再送パケットバッファ16に記憶されることになる。このようにして再送パケットバッファ16に記憶されるリクエスト/データパケットは、相手先からNAK応答が戻った際に再送するためのものである。   The request / data packet generated by the packet generation unit 13 is transferred to the arbitration unit 15 and transmitted from the TX port to the counterpart device. At this time, the request / data packet generated by the packet generator 13 is also transferred to the retransmission packet buffer 16. That is, the same data as the request / data packet transmitted from the TX port is stored in the retransmission packet buffer 16. The request / data packet stored in the retransmission packet buffer 16 in this way is for retransmission when a NAK response is returned from the other party.

ダミーリクエスト生成部12は、ダミーリクエストパケットを生成する。このダミーリクエストパケットは、トランザクションを構成する連続したパケット群の送出に続けて送出するためのものである。ダミーリクエスト生成部12は、ダミーリクエストパケットとして、PCI Express規格におけるPostedのメッセージパケット、またはPostedのメモリライトリクエストを発行する。ここで、Postedリクエストとは、相手先の装置からのデータ応答を期待しない種類のパケットであり、メモリリードリクエストのように、Completion応答を期待するNon-Postedリクエストよりも、短時間でダミーリクエスト転送を完了することが可能となる。さらに、ダミーリクエストパケットに含むデータサイズを小さくすることで、転送オーバーヘッドをさらに軽減することができる。   The dummy request generator 12 generates a dummy request packet. This dummy request packet is to be sent following the sending of a continuous packet group constituting a transaction. The dummy request generation unit 12 issues a posted message packet or a posted memory write request in the PCI Express standard as a dummy request packet. Here, a posted request is a type of packet that does not expect a data response from the other device, and a dummy request is transferred in a shorter time than a non-posted request that expects a completion response, such as a memory read request. Can be completed. Furthermore, the transfer overhead can be further reduced by reducing the data size included in the dummy request packet.

上述したような再送パケットバッファ16に記憶されるリクエスト/データパケットの再送の制御は、再送制御部17によって実行される。再送制御部17はタイマー17aを備えており、パケット生成部13で生成されたリクエスト/データパケットが送信された際に時間がリセットされ、相手先からACK応答かNAK応答が戻るまでの間の時間を計測する。タイマー17aは、パケット生成部13からリクエスト/データパケットを送信した際に出力されるリセット情報によって時間0にリセットされる。   Control of retransmission of the request / data packet stored in the retransmission packet buffer 16 as described above is executed by the retransmission control unit 17. The retransmission control unit 17 includes a timer 17a, and when the request / data packet generated by the packet generation unit 13 is transmitted, the time is reset, and the time until the ACK response or NAK response is returned from the other party Measure. The timer 17a is reset to time 0 by reset information output when a request / data packet is transmitted from the packet generator 13.

再送制御部17は、再送パケットバッファ16に、リクエスト/データパケットが記憶されている間、タイマー17aによるタイムアウトが発生していなくても、ダミーリクエスト生成部12に対してダミーリクエストパケットの発行の指示情報を伝達する。ここに、ダミーリクエスト発行指示手段が実現されている。また、再送制御部17は、受信したACK/NAKパケットにエラーが発生していた場合でも、ダミーリクエスト生成部12に対してダミーリクエストパケットの発行の指示情報を伝達する処理を行うものとする。   The retransmission control unit 17 instructs the dummy request generation unit 12 to issue a dummy request packet even if the timer 17a does not time out while the request / data packet is stored in the retransmission packet buffer 16. Communicate information. Here, dummy request issue instruction means is realized. In addition, the retransmission control unit 17 performs processing for transmitting instruction information for issuing a dummy request packet to the dummy request generation unit 12 even when an error has occurred in the received ACK / NAK packet.

次に、データ通信装置1の受信部21について説明する。受信部21は、図16に示すように、パケット判別部22と、パケット受信部23と、CRCエラー判定部24と、ACK/NAK受信部25と、CRCエラー判定部26とを備えている。   Next, the receiving unit 21 of the data communication apparatus 1 will be described. As illustrated in FIG. 16, the reception unit 21 includes a packet determination unit 22, a packet reception unit 23, a CRC error determination unit 24, an ACK / NAK reception unit 25, and a CRC error determination unit 26.

受信部21は、RXポートより相手先の装置からパケットデータを受信する。受信したパケットは、パケット判別部22において、まずリクエスト/データパケットであるか、ACK/NAKパケットであるか判別される。   The receiving unit 21 receives packet data from the counterpart device from the RX port. The received packet is first determined by the packet determination unit 22 as a request / data packet or an ACK / NAK packet.

パケット判別部22においてリクエスト/データパケットであると判別された場合には、リクエスト/データパケットはパケット受信部23に転送され、さらにCRCエラー判定部24によりデータが壊れていないかどうかが判定される。   If the packet discriminating unit 22 discriminates that it is a request / data packet, the request / data packet is transferred to the packet receiving unit 23, and the CRC error judgment unit 24 further judges whether or not the data is corrupted. .

CRCエラー判定部24によりデータが壊れていないと判定された場合、すなわち「エラー無し」と判定された場合には、リクエスト/データパケットは、ユーザーロジック2のトランザクション受信部4にリクエスト情報とデータとして伝達される。一方、CRCエラー判定部24によりデータが壊れていると判定された場合、すなわち「エラー有り」と判定された場合には、そのリクエスト/データパケットは破棄される。   When the CRC error determination unit 24 determines that the data is not corrupted, that is, when it is determined that “no error”, the request / data packet is sent to the transaction reception unit 4 of the user logic 2 as request information and data. Communicated. On the other hand, when the CRC error determination unit 24 determines that the data is corrupted, that is, when it is determined that “there is an error”, the request / data packet is discarded.

また、CRCエラー判定部24によるエラーの検出結果は、送信部11のACK/NAK生成部18に伝達される。ここで伝達される情報は、エラー発生の有無を示すエラー情報と、受信したパケット番号である。さらに、CRCエラー判定部24は、何番のパケットまで正常に受信できているかを記憶しており、次に受信することを期待しているパケット番号と異なる番号のパケットを受信した場合は、たとえCRCエラーが発生していなくとも、受信を期待しているパケット番号とともにエラー発生有りの情報を、送信部11のACK/NAK生成部18に伝達する。   The error detection result by the CRC error determination unit 24 is transmitted to the ACK / NAK generation unit 18 of the transmission unit 11. The information transmitted here is error information indicating whether or not an error has occurred, and the received packet number. Furthermore, the CRC error determination unit 24 stores the number of packets that have been normally received, and if a packet having a number different from the packet number that is expected to be received next is received, Even if no CRC error has occurred, information indicating the occurrence of an error is transmitted to the ACK / NAK generation unit 18 of the transmission unit 11 together with the packet number expected to be received.

送信部11のACK/NAK生成部18は、受け取った情報をもとに、「エラー無し」の場合はACKパケットを、「エラー有り」の場合はNAKパケットを生成して、調停部15に転送する。ACK/NAKのパケットは、図19に示したように、パケット番号を含み、この番号は受信部21が次に受信することを期待しているパケット番号となる。送信部11の調停部15は、TXポートに対してACK/NAKのパケットを送信する。   Based on the received information, the ACK / NAK generation unit 18 of the transmission unit 11 generates an ACK packet in the case of “no error”, and generates a NAK packet in the case of “error”, and forwards it to the arbitration unit 15. To do. As shown in FIG. 19, the ACK / NAK packet includes a packet number, and this number is a packet number that the receiving unit 21 expects to receive next. The arbitration unit 15 of the transmission unit 11 transmits an ACK / NAK packet to the TX port.

次に、受信部21で受け取ったパケットがパケット判別部22においてACK/NAKパケットであると判別された場合について説明する。   Next, a case where the packet received by the receiving unit 21 is determined to be an ACK / NAK packet by the packet determining unit 22 will be described.

パケット判別部22で受け取ったパケットがACK/NAKパケットであった場合、パケットデータはACK/NAK受信部25に送られ、さらにCRCエラー判定部26へと転送される。   When the packet received by the packet determination unit 22 is an ACK / NAK packet, the packet data is sent to the ACK / NAK reception unit 25 and further transferred to the CRC error determination unit 26.

CRCエラー判定部26によりデータが壊れていると判定された場合、すなわち「エラー有り」と判定された場合には、そのACK/NAKパケットは破棄される。一方、CRCエラー判定部26によりデータが壊れていないと判定された場合、すなわち「エラー無し」と判定され、正常にACK/NAK情報が受け取れた場合は、CRCエラー判定部26は、送信部11の再送制御部17に対して、ACK/NAK情報(ACKを受信したか、NAKを受信したかを表す情報)と、ACK/NAKに含まれていたパケット番号を伝達する。   If the CRC error determination unit 26 determines that the data is corrupted, that is, if it is determined that there is an error, the ACK / NAK packet is discarded. On the other hand, when the CRC error determination unit 26 determines that the data is not corrupted, that is, when it is determined that “no error” and ACK / NAK information is normally received, the CRC error determination unit 26 transmits the transmission unit 11. ACK / NAK information (information indicating whether ACK has been received or NAK has been received) and the packet number included in the ACK / NAK are transmitted to the retransmission control unit 17.

送信部11の再送制御部17は、受け取ったACK/NAK情報とパケット番号をもとに、再送パケットバッファ16に再送、またはクリアの制御情報を伝達して再送動作を制御する。このとき、ACK情報を受け取った場合は、そのパケット番号のパケットは相手先に正常に届いたことがわかるので、再送パケットバッファ16に記憶されていたリクエスト/データパケットをクリアする。一方、NAK情報を受け取った場合は、そのパケット番号のパケットは相手先でエラーとなったことがわかるので、再送パケットバッファ16に記憶されていたリクエスト/データパケットの再送処理を実行する。   Based on the received ACK / NAK information and packet number, the retransmission control unit 17 of the transmission unit 11 transmits retransmission or clear control information to the retransmission packet buffer 16 to control the retransmission operation. At this time, when the ACK information is received, it is known that the packet with the packet number has normally arrived at the other party, so the request / data packet stored in the retransmission packet buffer 16 is cleared. On the other hand, when the NAK information is received, it is known that the packet with the packet number has an error at the other end, and therefore the request / data packet resending process stored in the resending packet buffer 16 is executed.

以上のような構成によるデータ通信装置1における処理のうち、本実施の形態の特徴である送信側の送信処理について詳述する。   Of the processes in the data communication apparatus 1 configured as described above, a transmission process on the transmission side, which is a feature of the present embodiment, will be described in detail.

図20は、データ通信装置1の送信処理の流れを示すフローチャートである。図20に示すように、データ通信装置1は、パケット生成部13で生成したリクエスト/データパケット(パケット番号x)を調停部15を介して送信し(ステップS1)、再送制御部17のタイマー17aをリセットした後(ステップS2)、相手先からACK応答またはNAK応答を受信したか否かを判断する(ステップS3)。   FIG. 20 is a flowchart showing a flow of transmission processing of the data communication apparatus 1. As shown in FIG. 20, the data communication device 1 transmits the request / data packet (packet number x) generated by the packet generator 13 via the arbitrator 15 (step S1), and the timer 17a of the retransmission controller 17 After resetting (step S2), it is determined whether an ACK response or a NAK response has been received from the other party (step S3).

相手先からACK応答(パケット番号=y)を受信した場合には(ステップS3のYes、ステップS4のNo、ステップS5のYes)、ACK応答のパケット番号yまで正常に届いたので、次に送信するパケット番号を“パケット番号x=y+1”とし(ステップS6)、ステップS1に戻る。   When an ACK response (packet number = y) is received from the other party (Yes in step S3, No in step S4, Yes in step S5), the packet has been normally received up to the packet number y of the ACK response. The packet number to be set is “packet number x = y + 1” (step S6), and the process returns to step S1.

また、相手先からNAK応答(パケット番号=y)を受信した場合には(ステップS3のYes、ステップS4のNo、ステップS5のNo)、エラーで届かなかったので、次に送信するパケット番号を“パケット番号x=y”として、再送パケットバッファ16に記憶されていたパケット番号xのリクエスト/データパケットの再送処理を実行し(ステップS7)、ステップS1に戻る。   When a NAK response (packet number = y) is received from the other party (Yes in step S3, No in step S4, No in step S5), the packet number to be transmitted next is not received because of an error. As “packet number x = y”, the request / data packet resending process of the packet number x stored in the retransmission packet buffer 16 is executed (step S7), and the process returns to step S1.

一方、相手先からACK応答またはNAK応答を受信しない状態、すなわち再送パケットバッファ16にリクエスト/データパケットが記憶されている状態で(ステップS3のNo)、タイマー17aによるタイムアウトが発生していない場合(ステップS8のNo)、または受信したACK/NAKパケットにエラーが発生していた場合には(ステップS4のYes)、パケット番号を“パケット番号x=x+1”として、ダミーリクエストパケットの発行をダミーリクエスト生成部12に指示して(ステップS9)、ステップS1に戻る。   On the other hand, when the ACK response or NAK response is not received from the other party, that is, when the request / data packet is stored in the retransmission packet buffer 16 (No in step S3), the timer 17a does not time out ( If an error has occurred in the received ACK / NAK packet (No in step S8) (Yes in step S4), the packet number is set to “packet number x = x + 1” and a dummy request packet is issued as a dummy request. The generation unit 12 is instructed (step S9), and the process returns to step S1.

また、相手先からACK応答またはNAK応答を受信しないまま(ステップS3のNo)、タイマー17aによるタイムアウトが発生した場合には(ステップS8のYes)、再送制御部17により“パケット番号x=タイムアウトが発生したパケット番号“にして、再送パケットバッファ16に記憶されていたパケット番号xのリクエスト/データパケットの再送処理を実行して(ステップS10)、ステップS1に戻る。   Further, when a timeout occurs by the timer 17a without receiving an ACK response or NAK response from the other party (No in Step S3) (Yes in Step S8), the retransmission control unit 17 sets “packet number x = timeout. Using the generated packet number “, the retransmission process of the request / data packet of the packet number x stored in the retransmission packet buffer 16 is executed (step S10), and the process returns to step S1.

図21は、Memory Read リクエストにエラーが発生して、応答されたNAKパケットにエラーが発生した場合の再送動作の例を示すシーケンス図である。   FIG. 21 is a sequence diagram illustrating an example of a retransmission operation when an error occurs in the Memory Read request and an error occurs in the returned NAK packet.

従来のPCI Express規格を用いたデータ通信装置では、ダミーリクエストパケットが発行されないため、図22に示すような同期転送違反が発生していたが、本実施の形態のデータ通信装置1によれば、Memory Read リクエスト(Memory Read2)に続けてダミーリクエストパケットとしてPostedリクエストパケット(パケット3)が送信されるため、相手先のデータ通信装置は受信を期待しているMemory Read リクエスト(Memory Read2)以外のパケットが届いたことによって、NAK2をただちに再送してくる。ACK/NAK待ちタイマーのタイムアウト前にNAK2を受信してMemory Read リクエスト(Memory Read2)がエラーとなったことが検出できるため、送信側のMemory Read リクエスト(Memory Read2)からの再送動作の開始時間が早くなり、同期転送違反が発生しなくなる。PCI Express規格の通信プロトコルにも準拠しており、他のデータ通信装置との接続性も確保した上で、高速伝送性能と併せ、強い同期制約を必要とする高速データ転送に用いることが可能となる。   In the conventional data communication apparatus using the PCI Express standard, since a dummy request packet is not issued, a synchronous transfer violation as shown in FIG. 22 has occurred, but according to the data communication apparatus 1 of the present embodiment, Since a posted request packet (packet 3) is transmitted as a dummy request packet following the memory read request (memory read 2), the packet other than the memory read request (memory read 2) that the destination data communication device expects to receive is sent. Will immediately retransmit NAK2. Since NAK2 is received before the ACK / NAK wait timer times out and it can be detected that an error occurred in the Memory Read request (Memory Read2), the start time of the retransmission operation from the Memory Read request (Memory Read2) on the sending side It will be faster and no sync transfer violation will occur. It also complies with the PCI Express standard communication protocol, and can be used for high-speed data transfer that requires strong synchronization constraints in addition to high-speed transmission performance while ensuring connectivity with other data communication devices. Become.

このように本実施の形態によれば、リクエスト/データパケットの送信が開始されてから次のリクエスト/データパケットの送信が開始されるまでの間、データ応答を期待しないダミーリクエストパケットを連続して送信することにより、同期転送時の再送オーバーヘッドを軽減することができるので、短い周期で一定量のデータを必ず伝送し終わらなければならない、というような同期転送の制約が強い用途においても、低コスト、かつ、少ない再送オーバーヘッドでエラー発生時の処理を効率良く処理することができる。   As described above, according to the present embodiment, a dummy request packet not expecting a data response is continuously transmitted from the start of transmission of a request / data packet to the start of transmission of the next request / data packet. Transmission can reduce the retransmission overhead during synchronous transfer, so even in applications where there is a strong constraint on synchronous transfer such that a certain amount of data must be transmitted in a short cycle, the cost is low. In addition, the processing when an error occurs can be efficiently processed with a small retransmission overhead.

なお、本実施の形態においては、ダミーリクエスト生成部12をデータ通信装置1の送信部11に備えるようにしたが、これに限るものではなく、データ通信装置1の外に位置するユーザーロジック2のトランザクション送信部3に実装して、同様の処理を実現することも可能である。   In the present embodiment, the dummy request generation unit 12 is provided in the transmission unit 11 of the data communication apparatus 1, but the present invention is not limited to this, and the user logic 2 located outside the data communication apparatus 1 is not limited thereto. It is also possible to implement the same processing by mounting in the transaction transmitting unit 3.

また、本実施の形態のデータ通信装置は、PCI Express規格の高速シリアルバスに接続されるデバイスとしたが、これに限るものではなく、一般的なシリアル伝送路に接続されるデバイスに対しても適用可能である。このような構成のデータ通信装置1による同期転送の例を図23および図24に示す。この例では、パケット2にエラーが混入して応答されてきたNAK2のパケットにエラーが混入したケースである。従来のデータ通信装置では、図25および図26に示すように、エラーを通知するNAK2パケットにもエラーが発生した場合、相手先の装置は次のトランザクション2の先頭パケットが届くまでは、NAK2のパケットを再送してこない。このため、送信側の装置では、ACK/NAK待ちのタイムアウトが発生するまでパケット2の再送が開始されない。この待ち時間のオーバーヘッドが通常のNAKを受信した場合の再送よりも長く、トランザクション1は許容時間内にパケット2の転送を完了できず、同期転送違反が発生したものである。図23および図24の例に示すとおり、本実施の形態のデータ通信装置では、パケット2に続けて、ダミーパケット3を続けて送信するため、相手先のデータ通信装置は受信を期待しているパケット2以外のパケットが届いたことによって、NAK2をただちに再送してくる。ACK/NAK待ちタイマーのタイムアウト前にNAK2を受信してパケット2がエラーとなったことが検出できるため、送信側のパケット2からの再送動作の開始時間が早くなり、同期転送違反が発生しなくなる。もし、図23および図24におけるパケット2にエラーが発生せず、受信側からACK2が応答され、このACK2にエラーが混入したとしても、ダミーパケット3に対するACK3がただちに応答されてくるため、送信側でACK/NAK待ちタイマーのタイムアウトが発生せず、同期転送違反は発生しなくなる。   The data communication apparatus according to the present embodiment is a device connected to a PCI Express standard high-speed serial bus. However, the data communication apparatus is not limited to this, and is also applicable to a device connected to a general serial transmission line. Applicable. Examples of synchronous transfer by the data communication apparatus 1 having such a configuration are shown in FIGS. In this example, an error is mixed in the packet of NAK2 that has been returned as a result of an error mixed in packet 2. In the conventional data communication apparatus, as shown in FIG. 25 and FIG. 26, when an error also occurs in the NAK2 packet that notifies the error, the partner apparatus receives the NAK2 packet until the first packet of the next transaction 2 arrives. Does not retransmit the packet. For this reason, the apparatus on the transmission side does not start retransmission of packet 2 until a timeout for waiting for ACK / NAK occurs. The overhead of this waiting time is longer than the retransmission when a normal NAK is received, and the transaction 1 cannot complete the transfer of the packet 2 within the allowable time, and a synchronous transfer violation occurs. As shown in the examples of FIGS. 23 and 24, in the data communication apparatus according to the present embodiment, since the dummy packet 3 is transmitted following the packet 2, the counterpart data communication apparatus expects reception. When a packet other than packet 2 arrives, NAK2 is immediately resent. Since it is possible to detect that NAK2 is received before the ACK / NAK wait timer times out and packet 2 has become an error, the start time of the retransmission operation from packet 2 on the transmission side is accelerated, and a synchronous transfer violation does not occur . If no error occurs in packet 2 in FIGS. 23 and 24 and ACK2 is replied from the receiving side, and ACK3 for dummy packet 3 is immediately replied even if an error is mixed in ACK2, the transmitting side Thus, the timeout of the ACK / NAK waiting timer does not occur, and the synchronous transfer violation does not occur.

なお、本実施の形態においては、MFPと称されるデジタル複合機の内部データ通信におけるチップ間、ボード間のデータ通信装置に適用した例について説明したが、PC内部モジュール間、オプションボード間の通信、有線LANや無線LANなどの機器間通信、システム間通信におけるデータ通信装置などにも適用可能である。   In this embodiment, an example of application to a data communication device between chips and between boards in internal data communication of a digital multi-function peripheral called MFP has been described. Communication between PC internal modules and between optional boards The present invention can also be applied to data communication devices in communication between devices such as wired LAN and wireless LAN, and communication between systems.

[第2の実施の形態]
次に、本発明の第2の実施の形態を図27ないし図31に基づいて説明する。なお、前述した第1の実施の形態と同じ部分は同じ符号で示し説明も省略する。本発明の第2の実施の形態は、リクエストを送信する側のデータ通信装置ではなく、リクエストを受信する側のデータ通信装置に関するものである。
[Second Embodiment]
Next, a second embodiment of the present invention will be described with reference to FIGS. The same parts as those in the first embodiment described above are denoted by the same reference numerals, and description thereof is also omitted. The second embodiment of the present invention relates to the data communication device on the request receiving side, not the data communication device on the request transmitting side.

図27は、本発明の第2の実施の形態にかかるデジタル複合機に備えられるデータ通信装置1の概要を示すブロック図である。図27に示すように、本実施の形態のデータ通信装置1は、第1の実施の形態において送信部11に備えていたダミーリクエスト生成部12に代えて、NAK連続送信手段およびACK連続送信手段として機能するACK/NAK連続生成部19を備えている。   FIG. 27 is a block diagram showing an outline of the data communication apparatus 1 provided in the digital multi-function peripheral according to the second embodiment of the present invention. As shown in FIG. 27, the data communication apparatus 1 according to the present embodiment replaces the dummy request generation unit 12 included in the transmission unit 11 in the first embodiment with a NAK continuous transmission unit and an ACK continuous transmission unit. ACK / NAK continuous generation unit 19 functioning as

ACK/NAK連続生成部19は、受信部21がACK/NAK生成部18に伝達するエラー情報とパケット番号を受け取り、NAKパケットを送信したパケット番号のパケットが正常に受信できるまでの間、連続して同じ番号のNAKパケットを調停部15に送り、相手先の装置へと応答し続ける処理を行う。さらに、ACK/NAK連続生成部19は、ACKパケットを送信したパケット番号のパケットが受信されるまでの間、連続して同じ番号のACKパケットを調停部15に送り、相手先の装置へと応答し続ける処理も行う。   The ACK / NAK continuous generation unit 19 receives the error information and the packet number transmitted from the reception unit 21 to the ACK / NAK generation unit 18, and continues until the packet of the packet number that transmitted the NAK packet can be normally received. The NAK packet with the same number is sent to the arbitration unit 15 to continue the response to the counterpart device. Further, the ACK / NAK continuous generation unit 19 continuously sends the ACK packet of the same number to the arbitration unit 15 until the packet of the packet number that transmitted the ACK packet is received, and responds to the counterpart device. The process which continues is also performed.

以上のような構成によるデータ通信装置1における処理のうち、本実施の形態の特徴である受信側の受信処理について詳述する。   Of the processes in the data communication apparatus 1 configured as described above, the reception process on the receiving side, which is a feature of the present embodiment, will be described in detail.

図28は、データ通信装置1の受信処理の流れを示すフローチャートである。図28に示すように、データ通信装置1は、パケット判別部22においてリクエスト/データパケットであると判別されたパケット番号xをパケット受信部23で受信すると(ステップS21のYes)、パケットx(パケット番号=x)を確認した後(ステップS22)、CRCエラー判定部24に転送してデータが壊れていないかどうかを判定する(ステップS23)。   FIG. 28 is a flowchart showing the flow of reception processing of the data communication apparatus 1. As illustrated in FIG. 28, when the data communication device 1 receives the packet number x determined to be a request / data packet by the packet determination unit 22 by the packet reception unit 23 (Yes in step S21), the packet x (packet After confirming (number = x) (step S22), it is transferred to the CRC error determination unit 24 to determine whether or not the data is corrupted (step S23).

データが壊れていないと判定された場合、すなわち「エラー無し」と判定された場合(ステップS23のNo)、ACK/NAK生成部18は、ACKパケット(ACKx)を応答して(ステップS24)、ステップS21に戻る。   When it is determined that the data is not corrupted, that is, when it is determined that “no error” (No in Step S23), the ACK / NAK generation unit 18 responds with an ACK packet (ACKx) (Step S24). Return to step S21.

加えて、ACKパケットを送信したパケット番号のパケットが受信されるまでの間は(ステップS21のNo)、ACK/NAK連続生成部19は、ACKパケット(ACKx)を応答し続ける(ステップS24)。   In addition, until the packet of the packet number that transmitted the ACK packet is received (No in step S21), the ACK / NAK continuous generation unit 19 continues to respond with the ACK packet (ACKx) (step S24).

一方、データが壊れていると判定された場合、すなわち「エラー有り」と判定された場合には(ステップS23のYes)、ACK/NAK生成部18およびACK/NAK連続生成部19はNAKパケット(NAKx)を応答する(ステップS25)。   On the other hand, when it is determined that the data is corrupted, that is, when it is determined that “there is an error” (Yes in step S23), the ACK / NAK generation unit 18 and the ACK / NAK continuous generation unit 19 perform the NAK packet ( NAKx) is returned (step S25).

ACK/NAK連続生成部19は、パケット判別部22においてリクエスト/データパケットをパケット受信部23で受信し(ステップS26のYes)、「エラー無し」と判定され(ステップS27のNo)、パケットx(パケット番号=x)であると判定されるまで(ステップS28のYes)、NAKパケット(NAKx)を応答し続ける(ステップS29)。   The ACK / NAK continuous generation unit 19 receives the request / data packet at the packet determination unit 22 at the packet reception unit 23 (Yes in step S26), is determined as “no error” (No in step S27), and the packet x ( Until it is determined that packet number = x) (Yes in step S28), the NAK packet (NAKx) is continuously responded (step S29).

一方、パケットx(パケット番号=x)であると判定された場合には(ステップS28のYes)、ACK/NAK生成部18は、ACKパケット(ACKx)を応答して(ステップS30)、ステップS21に戻る。   On the other hand, when it is determined that the packet is x (packet number = x) (Yes in step S28), the ACK / NAK generation unit 18 responds with an ACK packet (ACKx) (step S30), and then proceeds to step S21. Return to.

図29は、Memory Read リクエストにエラーが発生して、応答されたNAKパケットにエラーが発生した場合の再送動作の例を示すシーケンス図である。   FIG. 29 is a sequence diagram illustrating an example of a retransmission operation when an error occurs in the Memory Read request and an error occurs in the returned NAK packet.

従来のPCI Express規格を用いたデータ通信装置では、図22に示すような同期転送違反が発生していたが、本実施の形態のデータ通信装置1によれば、NAK2を応答したパケット番号と同じパケット番号のMemory Read リクエスト(Memory Read2)を正常に受信するまで、連続してNAK2を応答し続ける。送信側では、ACK/NAK待ちタイマーのタイムアウト前にNAK2を受信してMemory Read リクエスト(Memory Read2)がエラーとなったことが検出できるため、送信側のMemory Read リクエスト(Memory Read2)からの再送動作の開始時間が早くなり、同期転送違反が発生しなくなる。   In the conventional data communication apparatus using the PCI Express standard, the synchronous transfer violation as shown in FIG. 22 has occurred, but according to the data communication apparatus 1 of the present embodiment, it is the same as the packet number that responded NAK2. Until the memory number read request (Memory Read2) of the packet number is normally received, NAK2 is continuously responded. On the sending side, NAK2 is received before the ACK / NAK waiting timer times out, and it can be detected that the Memory Read request (Memory Read2) has an error. Therefore, the retransmission operation from the Memory Read request (Memory Read2) on the sending side The start time of the file becomes earlier, and no synchronous transfer violation occurs.

また、図29の例において、もしPCI Expressのリードリクエストにエラーが発生せず、ACKパケットが応答され、ACKパケットがエラーとなったとしても、本実施の形態のデータ通信装置1では、ACKリクエストパケットが連続して応答されるので、送信側では同期転送違反が発生しなくなる。PCI Express規格では、重複したパケット番号のACK/NAKパケットやすでに再送動作を開始したパケット番号のACK/NAKパケットを受信しても、受信部21において破棄されるので、他のデータ通信装置との接続性も確保した上で、高速伝送性能と併せ、強い同期制約を必要とする高速データ転送に用いることが可能となる。   In the example of FIG. 29, even if an error does not occur in the PCI Express read request and an ACK packet is replied and the ACK packet becomes an error, the data communication apparatus 1 according to the present embodiment uses the ACK request. Since packets are continuously responded, no synchronous transfer violation occurs on the transmission side. In the PCI Express standard, even if an ACK / NAK packet with a duplicate packet number or an ACK / NAK packet with a packet number that has already started a retransmission operation is received, it is discarded by the receiving unit 21, so In addition to ensuring connectivity, it can be used for high-speed data transfer that requires strong synchronization constraints in addition to high-speed transmission performance.

このように本実施の形態によれば、NAKパケットを送信したパケット番号のリクエスト/データパケットが正常に受信される迄、リクエスト/データパケットのパケット番号と同じ番号のNAKパケットを繰り返し送信し続けることにより、同期転送時の再送オーバーヘッドを軽減することができるので、短い周期で一定量のデータを必ず伝送し終わらなければならない、というような同期転送の制約が強い用途においても、低コスト、かつ、少ない再送オーバーヘッドでエラー発生時の処理を効率良く処理することができる。   As described above, according to this embodiment, the NAK packet having the same number as the packet number of the request / data packet is continuously transmitted until the request / data packet having the packet number that transmitted the NAK packet is normally received. Therefore, it is possible to reduce the retransmission overhead at the time of synchronous transfer, so even in applications where there is a strong constraint on synchronous transfer such that a certain amount of data must be transmitted in a short cycle, the cost is low, and The processing when an error occurs can be efficiently processed with a small retransmission overhead.

また、ACKパケットを送信したパケット番号のリクエスト/データパケットが受信される迄、リクエスト/データパケットのパケット番号と同じ番号のACKパケットを繰り返し送信し続けることにより、同期転送時の再送オーバーヘッドを軽減することができるので、短い周期で一定量のデータを必ず伝送し終わらなければならない、というような同期転送の制約が強い用途においても、低コスト、かつ、少ない再送オーバーヘッドでエラー発生時の処理を効率良く処理することができる。   Further, the retransmission overhead at the time of synchronous transfer is reduced by continuously transmitting the ACK packet having the same number as the packet number of the request / data packet until the request / data packet having the packet number that transmitted the ACK packet is received. Therefore, even in applications where there are strong restrictions on synchronous transfer, such as when a certain amount of data must be transmitted in a short cycle, processing at the time of an error occurs with low cost and low retransmission overhead. Can be processed well.

また、本実施の形態のデータ通信装置は、PCI Express規格の高速シリアルバスに接続されるデバイスとしたが、これに限るものではなく、一般的なシリアル伝送路に接続されるデバイスに対しても適用可能である。このような構成のデータ通信装置1による同期転送の例を図30および図31に示す。この例では、パケット2にエラーが混入して、応答されてきたNAK2のパケットにエラーが混入したケースである。従来のデータ通信装置では、図25および図26に示すように、エラーを通知するNAK2パケットにもエラーが発生した場合、相手先の装置は次のトランザクション2の先頭パケットが届くまでは、NAK2のパケットを再送してこない。このため、送信側の装置では、ACK/NAK待ちのタイムアウトが発生するまでパケット2の再送が開始されない。この待ち時間のオーバーヘッドが通常のNAKを受信した場合の再送よりも長く、トランザクション1は許容時間内にパケット2の転送を完了できず、同期転送違反が発生したものである。図30および図31の例に示すとおり、本実施の形態のデータ通信装置では、NAKを応答したパケット番号と同じパケット番号(この例では2)のパケットを正常に受信するまで、連続してNAK2を応答し続ける。送信側では、ACK/NAK待ちタイマーのタイムアウト前にNAK2を受信してパケット2がエラーとなったことが検出できるため、送信側のパケット2からの再送動作の開始時間が早くなり、同期転送違反が発生しなくなる。なお、図30および図31の例は、パケット2にエラーが混入して、再送が必要なケースであったが、もしパケット2にエラーが混入せずに受信側に届き、応答されたACK2にエラーが発生したとしても、受信側は連続してトランザクション3のパケット3を受信するまでACK2を送信しつづけるため、送信側ではタイムアウトが発生しなくなり、再送のオーバーヘッドも発生しない。   The data communication apparatus according to the present embodiment is a device connected to a PCI Express standard high-speed serial bus. However, the data communication apparatus is not limited to this, and is also applicable to a device connected to a general serial transmission line. Applicable. Examples of synchronous transfer by the data communication apparatus 1 having such a configuration are shown in FIGS. 30 and 31. FIG. In this example, an error is mixed in the packet 2 and an error is mixed in the NAK2 packet that has been returned. In the conventional data communication apparatus, as shown in FIG. 25 and FIG. 26, when an error also occurs in the NAK2 packet that notifies the error, the partner apparatus receives the NAK2 packet until the first packet of the next transaction 2 arrives. Does not retransmit the packet. For this reason, the apparatus on the transmission side does not start retransmission of packet 2 until a timeout for waiting for ACK / NAK occurs. The overhead of this waiting time is longer than the retransmission when a normal NAK is received, and the transaction 1 cannot complete the transfer of the packet 2 within the allowable time, and a synchronous transfer violation occurs. As shown in the examples of FIGS. 30 and 31, in the data communication apparatus according to the present embodiment, the NAK2 is continuously received until a packet having the same packet number (2 in this example) as the packet number that has returned NAK is normally received. Keep responding. On the sending side, it can be detected that packet 2 has an error by receiving NAK2 before the timeout of the ACK / NAK wait timer, so that the start time of the retransmission operation from packet 2 on the sending side is accelerated, and a synchronous transfer violation Will not occur. 30 and 31 are cases in which an error is mixed in packet 2 and retransmission is necessary. However, if error is not mixed in packet 2, it reaches the receiving side and is returned to ACK2 that has been responded to. Even if an error occurs, the receiving side continues to transmit ACK2 until packet 3 of transaction 3 is continuously received, so that no timeout occurs on the transmitting side and no retransmission overhead occurs.

[実施例]
ここで、上述した第1の実施の形態または第2の実施の形態で示したデータ通信装置1を用いたデータ転送例について説明する。
[Example]
Here, an example of data transfer using the data communication apparatus 1 shown in the first embodiment or the second embodiment will be described.

本実施例においては、図32に示すような主走査および副走査方向の2次元配列によって構成される画像データについて、主走査方向の画素データを決められた時間周期に転送する処理を副走査方向に繰り返す同期転送を実行するものである。   In the present embodiment, with respect to image data constituted by a two-dimensional array in the main scanning and sub-scanning directions as shown in FIG. 32, processing for transferring pixel data in the main scanning direction in a determined time period is performed in the sub-scanning direction. The synchronous transfer is repeated repeatedly.

図32に示すような画像データのデータ転送は、図33に示すように、複数の画素データを1つのパケットデータとして主走査方向の1ラインについて複数パケット群から構成されるトランザクションを、副走査方向に画像が走査される速度に同期させて転送させることになる。   As shown in FIG. 33, data transfer of image data as shown in FIG. 32 is performed in such a way that a transaction composed of a plurality of packet groups for one line in the main scanning direction is processed in the sub-scanning direction. The image is transferred in synchronization with the speed at which the image is scanned.

図32に示すような画像データのデータ転送を行う例についてMFPと称されるデジタル複合機について検討してみると、図34に示すように、データ通信装置1およびラインバッファメモリ51を備えた画像読み取り装置、画像印刷装置、画像表示装置などの画像入出力装置50と、デジタル複合機の制御主体となるものであってデータ通信装置1を備えるコントローラ60とにおける、PCI Express等の高速通信路を介したデータ転送が予想される。画像データを保持するメモリ61は、コントローラ60のみに設けられている。このような構成により、画像入出力装置50とコントローラ60との間では、1ラインごとのデータ通信を画像の入出力速度に同期して転送する処理が実行される。   Considering an example of performing data transfer of image data as shown in FIG. 32, a digital multi-function peripheral called MFP is considered. As shown in FIG. 34, an image including a data communication apparatus 1 and a line buffer memory 51 is provided. A high-speed communication path such as PCI Express between an image input / output device 50 such as a reading device, an image printing device, and an image display device and a controller 60 that is a main controller of the digital multi-function peripheral and includes the data communication device 1. Data transfer via is expected. The memory 61 that holds the image data is provided only in the controller 60. With such a configuration, processing for transferring data communication for each line in synchronization with the input / output speed of the image is executed between the image input / output device 50 and the controller 60.

図35に示すように、従来のデータ通信装置では、1ラインの最後に転送されるパケットにエラーが発生して応答されるNAKパケット(またはエラー発生が無かった際に応答されるACKパケット)がエラーとなったケースでは、ライン同期転送違反のエラーが発生していた。   As shown in FIG. 35, in the conventional data communication apparatus, there is a NAK packet (or an ACK packet that is replied when there is no error) that is returned when an error occurs in the packet transferred at the end of one line. In the case where an error occurred, a line synchronous transfer violation error occurred.

これに対して、第1の実施の形態で示したデータ通信装置1においては、図36に示すように、1ラインの最後のデータパケットの転送が終了した後も、ダミーリクエストパケットが送信されるため、1ラインの最後のデータパケットのパケット番号のついたNAKパケット(または最後に送ったパケットのパケット番号のついたACKパケット)をただちに受信することができるため、再送開始時間が早まり、同期転送違反が発生しなくなる。   On the other hand, in the data communication apparatus 1 shown in the first embodiment, as shown in FIG. 36, the dummy request packet is transmitted even after the transfer of the last data packet of one line is completed. Therefore, since the NAK packet with the packet number of the last data packet in one line (or the ACK packet with the packet number of the last packet sent) can be received immediately, the retransmission start time is advanced, and synchronous transfer is performed. Violations will not occur.

また、第2の実施の形態で示したデータ通信装置1においては、図37に示すように、1ラインの最後のデータパケットのパケット番号のついたACKまたはNAKパケットが連続して応答されてくるので、再送開始時間が早まり、同期転送違反が発生しなくなる。   In the data communication apparatus 1 shown in the second embodiment, as shown in FIG. 37, an ACK or NAK packet with the packet number of the last data packet in one line is continuously responded. As a result, the retransmission start time is advanced, and the synchronous transfer violation does not occur.

すなわち、本実施の形態によれば、特に大量のデータを短い周期で同期転送しなければならない高速画像データ転送用途においても、少ない容量のラインメモリのみを設けることで、エラー発生による同期違反を防ぐことができる。大きな容量のバッファメモリと、より高速なデータ転送装置の搭載が必要だった、従来の画像データ転送装置に対して、大幅に少ないコストで、高い性能を実現することができる。   That is, according to the present embodiment, even in a high-speed image data transfer application in which a large amount of data must be synchronously transferred in a short cycle, by providing only a small capacity line memory, a synchronization violation due to an error is prevented. be able to. Compared to the conventional image data transfer apparatus that required mounting of a large-capacity buffer memory and a higher-speed data transfer apparatus, high performance can be realized at a significantly lower cost.

既存PCIシステムの構成例を示すブロック図である。It is a block diagram which shows the structural example of the existing PCI system. PCI Expressシステムの構成例を示すブロック図である。FIG. 2 is a block diagram illustrating a configuration example of a PCI Express system. デスクトップ/モバイルでのPCI Expressプラットホームの構成例を示すブロック図である。It is a block diagram which shows the structural example of the PCI Express platform in desktop / mobile. x4の場合の物理層の構造例を示す模式図である。It is a schematic diagram which shows the structural example of the physical layer in the case of x4. デバイス間のレーン接続例を示す模式図である。It is a schematic diagram which shows the example of lane connection between devices. スイッチの論理的構造例を示すブロック図である。It is a block diagram which shows the logical structural example of a switch. 既存のPCIのアーキテクチャを示すブロック図である。It is a block diagram which shows the architecture of the existing PCI. PCI Expressのアーキテクチャを示すブロック図である。It is a block diagram which shows the architecture of PCI Express. PCI Expressの階層構造を示すブロック図である。It is a block diagram which shows the hierarchical structure of PCI Express. トランザクションレイヤパケットのフォーマット例を示す説明図である。It is explanatory drawing which shows the format example of a transaction layer packet. PCI Expressのコンフィグレーション空間を示す説明図である。It is explanatory drawing which shows the configuration space of PCI Express. 仮想チャネルの概念を説明するための模式図である。It is a schematic diagram for demonstrating the concept of a virtual channel. データリンクレイヤパケットのフォーマット例を示す説明図である。It is explanatory drawing which shows the format example of a data link layer packet. x4リンクでのバイトストライピング例を示す模式図である。It is a schematic diagram which shows the byte striping example in x4 link. L0/L0s/L1/L2というリンクステートの定義について説明する説明図である。It is explanatory drawing explaining the definition of the link state of L0 / L0s / L1 / L2. アクティブステート電源管理の制御例を示すタイムチャートである。It is a time chart which shows the example of control of active state power management. 本発明の第1の実施の形態にかかるデジタル複合機に備えられるデータ通信装置の概要を示すブロック図である。It is a block diagram which shows the outline | summary of the data communication apparatus with which the digital multifunctional device concerning the 1st Embodiment of this invention is equipped. データ通信装置の接続構成を概略的に示す模式図である。It is a schematic diagram which shows roughly the connection structure of a data communication apparatus. リクエスト/データパケットの構成例を示す模式図である。It is a schematic diagram which shows the structural example of a request / data packet. ACK/NAKパケットの構成例を示す模式図である。It is a schematic diagram which shows the structural example of an ACK / NAK packet. データ通信装置における送信処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the transmission process in a data communication apparatus. 再送動作の例を示すシーケンス図である。It is a sequence diagram which shows the example of resending operation | movement. 従来の再送動作の例を示すシーケンス図である。It is a sequence diagram which shows the example of the conventional resending operation | movement. データ通信装置による同期転送の例を示す模式図である。It is a schematic diagram which shows the example of the synchronous transfer by a data communication apparatus. 再送動作の例を示すシーケンス図である。It is a sequence diagram which shows the example of resending operation | movement. 従来のデータ通信装置による同期転送の例を示す模式図である。It is a schematic diagram which shows the example of the synchronous transfer by the conventional data communication apparatus. 従来の再送動作の例を示すシーケンス図である。It is a sequence diagram which shows the example of the conventional resending operation | movement. 本発明の第2の実施の形態にかかるデジタル複合機に備えられるデータ通信装置の概要を示すブロック図である。It is a block diagram which shows the outline | summary of the data communication apparatus with which the digital multifunctional device concerning the 2nd Embodiment of this invention is equipped. データ通信装置の受信処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a reception process of a data communication apparatus. 再送動作の例を示すシーケンス図である。It is a sequence diagram which shows the example of resending operation | movement. データ通信装置による同期転送の例を示す模式図である。It is a schematic diagram which shows the example of the synchronous transfer by a data communication apparatus. 再送動作の例を示すシーケンス図である。It is a sequence diagram which shows the example of resending operation | movement. 主走査および副走査方向の2次元配列によって構成される画像データを示す模式図である。It is a schematic diagram which shows the image data comprised by the two-dimensional arrangement | sequence of the main scanning and a subscanning direction. 画像データ転送におけるトランザクションを示す模式図である。It is a schematic diagram which shows the transaction in image data transfer. 画像データのデータ転送を行う例を示すブロック図である。It is a block diagram which shows the example which performs the data transfer of image data. 従来のデータ通信装置による同期転送の例を示す模式図である。It is a schematic diagram which shows the example of the synchronous transfer by the conventional data communication apparatus. データ通信装置による同期転送の例を示す模式図である。It is a schematic diagram which shows the example of the synchronous transfer by a data communication apparatus. データ通信装置による同期転送の例を示す模式図である。It is a schematic diagram which shows the example of the synchronous transfer by a data communication apparatus. パケットにエラーが発生した場合の転送例を示す模式図である。It is a schematic diagram which shows the example of a transfer when an error generate | occur | produces in a packet. 図38に示す再送動作の例を示すシーケンス図である。FIG. 39 is a sequence diagram illustrating an example of a retransmission operation illustrated in FIG. 38. NAK応答パケットにもエラーが発生した場合の転送例を示す模式図である。It is a schematic diagram which shows the example of a transfer when an error generate | occur | produces also in a NAK response packet. 図40に示す再送動作の例を示すシーケンス図である。FIG. 41 is a sequence diagram illustrating an example of a retransmission operation illustrated in FIG. 40. PCI Expressによるデータ通信路を2重に設けた従来のデータ通信装置を示すブロック図である。It is a block diagram which shows the conventional data communication apparatus which provided the data communication path by PCI Express twice. 大きなサイズのバッファメモリを出力装置側に備える従来のデータ通信装置を示すブロック図である。It is a block diagram which shows the conventional data communication apparatus provided with the buffer memory of a big size in the output device side. 同期転送の例を示す模式図である。It is a schematic diagram which shows the example of synchronous transfer. 図44に示す転送動作の例を示すシーケンス図である。FIG. 45 is a sequence diagram illustrating an example of a transfer operation illustrated in FIG. 44. パケットにエラーが発生した場合の転送例を示す模式図である。It is a schematic diagram which shows the example of a transfer when an error generate | occur | produces in a packet. 図46に示す再送動作の例を示すシーケンス図である。FIG. 47 is a sequence diagram illustrating an example of a retransmission operation illustrated in FIG. 46. PCI ExpressにおけるMemory Writeリクエストの再送動作例を示すシーケンス図である。FIG. 10 is a sequence diagram illustrating an example of a resend operation of a Memory Write request in PCI Express. PCI ExpressにおけるMemory Readリクエストの再送動作例を示すシーケンス図である。FIG. 10 is a sequence diagram illustrating an example of a resend operation of a Memory Read request in PCI Express. PCI ExpressのMemory Readリクエストに対するCompletion Dataの再送動作例を示すシーケンス図である。FIG. 11 is a sequence diagram illustrating an example of retransmission operation of Completion Data in response to a PCI Express Memory Read request.

符号の説明Explanation of symbols

1 データ通信装置
2 ユーザーロジック
12 ダミーリクエスト生成手段
16 パケット記憶手段
17 パケット再送手段、ダミーリクエスト発行指示手段
19 NAK連続送信手段、ACK連続送信手段
DESCRIPTION OF SYMBOLS 1 Data communication apparatus 2 User logic 12 Dummy request production | generation means 16 Packet storage means 17 Packet resending means, dummy request issue instruction means 19 NAK continuous transmission means, ACK continuous transmission means

Claims (11)

送信したリクエスト/データパケットが送信先の装置で正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを送信先の装置から受信し、送信したリクエスト/データパケットが送信先の装置で正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを送信先の装置から受信するデータ通信装置において、
送信した前記リクエスト/データパケットに対するACK応答があるまで当該リクエスト/データパケットを記憶するパケット記憶手段と、
データ応答を期待しないダミーリクエストパケットを生成するダミーリクエスト生成手段と、
ACK応答がなく前記パケット記憶手段に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生していない場合、または、受信したACK/NAKパケットにエラーが発生していた場合には、前記ダミーリクエスト生成手段に対して前記ダミーリクエストパケットの発行を指示するダミーリクエスト発行指示手段と、
NAK応答を受信した場合、または、ACK応答がなく前記パケット記憶手段に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生した場合には、前記パケット記憶手段に記憶されている前記リクエスト/データパケットを再送するパケット再送手段と、
を備えることを特徴とするデータ通信装置。
When the transmitted request / data packet can be normally received by the transmission destination device, an ACK (ACKnowledgement) packet indicating that is received from the transmission destination device, and the transmitted request / data packet is the transmission destination device. In the data communication device that receives a NAK (Negative AcKnowledgement) packet indicating that from the destination device,
Packet storing means for storing the request / data packet until there is an ACK response to the transmitted request / data packet;
Dummy request generation means for generating a dummy request packet that does not expect a data response;
If there is no ACK response and no timeout has occurred while the request / data packet is stored in the packet storage means, or if an error has occurred in the received ACK / NAK packet, the dummy Dummy request issue instruction means for instructing the request generation means to issue the dummy request packet;
When a NAK response is received, or when a timeout occurs in the state where the request / data packet is stored in the packet storage means without an ACK response, the request / data stored in the packet storage means A packet retransmission means for retransmitting the data packet;
A data communication apparatus comprising:
通信プロトコルとしてPCI Express規格が採用されており、前記ダミーリクエスト生成手段は、前記ダミーリクエストパケットとして、PCI Express規格におけるPostedのメッセージパケット、またはPCI Express規格におけるPostedのメモリライトリクエストを発行する、
ことを特徴とする請求項1記載のデータ通信装置。
PCI Express standard is adopted as a communication protocol, and the dummy request generation unit issues a posted message packet in the PCI Express standard or a posted memory write request in the PCI Express standard as the dummy request packet.
The data communication apparatus according to claim 1.
前記リクエスト/データパケットは、メモリリードリクエスト、メモリリードに対するデータ転送応答(コンプリーション)、メモリライトリクエストのいずれか、またはそれぞれの組み合わせにより構成されたものである、
ことを特徴とする請求項2記載のデータ通信装置。
The request / data packet is configured by any one of a memory read request, a data transfer response (completion) to a memory read, or a memory write request, or a combination thereof.
The data communication apparatus according to claim 2.
リクエスト/データパケットを正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信し、前記リクエスト/データパケットが正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信するデータ通信装置において、
NAKパケットを送信したパケット番号の前記リクエスト/データパケットが正常に受信される迄、前記リクエスト/データパケットのパケット番号と同じ番号の前記NAKパケットを繰り返し送信し続けるNAK連続送信手段を備える、
ことを特徴とするデータ通信装置。
When the request / data packet is normally received, an ACK (ACKnowledgement) packet indicating that is transmitted to the device that has transmitted the request / data packet, and the request / data packet can be normally received. If not, in the data communication device that transmits a NAK (Negative AcKnowledgement) packet indicating that to the device that has transmitted the request / data packet,
NAK continuous transmission means for continuously transmitting the NAK packet having the same number as the packet number of the request / data packet until the request / data packet having the packet number transmitting the NAK packet is normally received.
A data communication device.
ACKパケットを送信したパケット番号の前記リクエスト/データパケットが受信される迄、前記リクエスト/データパケットのパケット番号と同じ番号の前記ACKパケットを繰り返し送信し続けるACK連続送信手段を更に備える、
ことを特徴とする請求項4記載のデータ通信装置。
ACK continuous transmission means for continuously transmitting the ACK packet having the same number as the packet number of the request / data packet until the request / data packet having the packet number that transmitted the ACK packet is received;
The data communication apparatus according to claim 4.
リクエスト/データパケットを正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信し、前記リクエスト/データパケットが正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信するデータ通信装置において、
ACKパケットを送信したパケット番号の前記リクエスト/データパケットが受信される迄、前記リクエスト/データパケットのパケット番号と同じ番号の前記ACKパケットを繰り返し送信し続けるACK連続送信手段を備える、
ことを特徴とするデータ通信装置。
When the request / data packet is normally received, an ACK (ACKnowledgement) packet indicating that is transmitted to the device that has transmitted the request / data packet, and the request / data packet can be normally received. If not, in the data communication device that transmits a NAK (Negative AcKnowledgement) packet indicating that to the device that has transmitted the request / data packet,
ACK continuous transmission means for continuously transmitting the ACK packet having the same number as the packet number of the request / data packet until the request / data packet having the packet number that transmitted the ACK packet is received.
A data communication device.
通信プロトコルとしてPCI Express規格が採用されており、前記リクエスト/データパケットは、メモリリードリクエスト、メモリリードに対するデータ転送応答(コンプリーション)、メモリライトリクエストのいずれか、またはそれぞれの組み合わせにより構成されたものである、
ことを特徴とする請求項4ないし6のいずれか一記載のデータ通信装置。
The PCI Express standard is adopted as a communication protocol, and the request / data packet is composed of a memory read request, a data transfer response to the memory read (completion), a memory write request, or a combination thereof. Is,
The data communication apparatus according to claim 4, wherein the data communication apparatus is a data communication apparatus.
複数のパケット群からなるトランザクションであるリクエスト/データパケットを送信するユーザーロジックと、
前記ユーザーロジックから受信したリクエスト/データパケットを他の装置へ送信し、送信したリクエスト/データパケットが送信先の装置で正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを送信先の装置から受信し、送信したリクエスト/データパケットが送信先の装置で正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを送信先の装置から受信するデータ通信装置と、を備える画像処理システムにおいて、
前記ユーザーロジックは、データ応答を期待しないダミーリクエストパケットを生成するダミーリクエスト生成手段を備え、
前記データ通信装置は、送信した前記リクエスト/データパケットに対するACK応答があるまで当該リクエスト/データパケットを記憶するパケット記憶手段と、ACK応答がなく前記パケット記憶手段に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生していない場合、または、受信したACK/NAKパケットにエラーが発生していた場合には、前記ダミーリクエスト生成手段に対して前記ダミーリクエストパケットの発行を指示するダミーリクエスト発行指示手段と、NAK応答を受信した場合、または、ACK応答がなく前記パケット記憶手段に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生した場合には、前記パケット記憶手段に記憶されている前記リクエスト/データパケットを再送するパケット再送手段と、
を備えることを特徴とする画像処理システム。
User logic that transmits a request / data packet that is a transaction composed of a plurality of packet groups;
The request / data packet received from the user logic is transmitted to another device, and when the transmitted request / data packet is normally received by the destination device, an ACK (ACKnowledgement) packet indicating that is transmitted A data communication apparatus that receives a NAK (Negative AcKnowledgement) packet indicating that a request / data packet received and transmitted from a destination apparatus cannot be normally received by the destination apparatus. In an image processing system comprising:
The user logic includes dummy request generation means for generating a dummy request packet that does not expect a data response,
The data communication device includes a packet storage means for storing the request / data packet until there is an ACK response to the transmitted request / data packet, and the request / data packet is stored in the packet storage means without an ACK response. When a timeout has not occurred in the state where the packet is received or when an error has occurred in the received ACK / NAK packet, a dummy request issuance is issued to instruct the dummy request generator to issue the dummy request packet. When the instruction means and the NAK response are received, or when the request / data packet is stored in the packet storage means without an ACK response, the packet storage means stores the request / data packet. Said request / day And packet retransmission means for retransmitting the packet,
An image processing system comprising:
送信したリクエスト/データパケットが送信先の装置で正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを送信先の装置から受信し、送信したリクエスト/データパケットが送信先の装置で正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを送信先の装置から受信するデータ通信方法において、
送信した前記リクエスト/データパケットに対するACK応答があるまで当該リクエスト/データパケットを記憶するパケット記憶工程と、
データ応答を期待しないダミーリクエストパケットを生成するダミーリクエスト生成工程と、
ACK応答がなく前記パケット記憶工程に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生していない場合、または、受信したACK/NAKパケットにエラーが発生していた場合には、前記ダミーリクエストパケットの発行を指示するダミーリクエスト発行指示工程と、
NAK応答を受信した場合、または、ACK応答がなく前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生した場合には、記憶されている前記リクエスト/データパケットを再送するパケット再送工程と、
を含むことを特徴とするデータ通信方法。
When the transmitted request / data packet can be normally received by the transmission destination device, an ACK (ACKnowledgement) packet indicating that is received from the transmission destination device, and the transmitted request / data packet is the transmission destination device. In the data communication method of receiving a NAK (Negative AcKnowledgement) packet indicating that, from the destination device,
A packet storing step of storing the request / data packet until there is an ACK response to the transmitted request / data packet;
A dummy request generation process for generating a dummy request packet not expecting a data response;
If there is no ACK response and no timeout has occurred while the request / data packet is stored in the packet storing step, or if an error has occurred in the received ACK / NAK packet, the dummy A dummy request issuance instruction process instructing issuance of a request packet;
A packet retransmission step for retransmitting the stored request / data packet when a NAK response is received or when a timeout occurs in a state where the request / data packet is stored without an ACK response;
A data communication method comprising:
リクエスト/データパケットを正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信し、前記リクエスト/データパケットが正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信するデータ通信方法において、
NAKパケットを送信したパケット番号の前記リクエスト/データパケットが正常に受信される迄、前記リクエスト/データパケットのパケット番号と同じ番号の前記NAKパケットを繰り返し送信し続ける、
ことを特徴とするデータ通信方法。
When the request / data packet is normally received, an ACK (ACKnowledgement) packet indicating that is transmitted to the device that has transmitted the request / data packet, and the request / data packet can be normally received. If not, in a data communication method of transmitting a NAK (Negative AcKnowledgement) packet indicating that to the device that has transmitted the request / data packet,
Continue to repeatedly transmit the NAK packet having the same number as the packet number of the request / data packet until the request / data packet having the packet number that transmitted the NAK packet is normally received.
A data communication method characterized by the above.
リクエスト/データパケットを正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信し、前記リクエスト/データパケットが正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信するデータ通信方法において、
ACKパケットを送信したパケット番号の前記リクエスト/データパケットが受信される迄、前記リクエスト/データパケットのパケット番号と同じ番号の前記ACKパケットを繰り返し送信し続ける、
ことを特徴とするデータ通信方法。
When the request / data packet is normally received, an ACK (ACKnowledgement) packet indicating that is transmitted to the device that has transmitted the request / data packet, and the request / data packet can be normally received. If not, in a data communication method of transmitting a NAK (Negative AcKnowledgement) packet indicating that to the device that has transmitted the request / data packet,
Until the request / data packet having the packet number that transmitted the ACK packet is received, the ACK packet having the same number as the packet number of the request / data packet is repeatedly transmitted.
A data communication method characterized by the above.
JP2007040628A 2007-02-21 2007-02-21 Data communication apparatus, image processing system, and data communication method Expired - Fee Related JP5151176B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007040628A JP5151176B2 (en) 2007-02-21 2007-02-21 Data communication apparatus, image processing system, and data communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007040628A JP5151176B2 (en) 2007-02-21 2007-02-21 Data communication apparatus, image processing system, and data communication method

Publications (2)

Publication Number Publication Date
JP2008204245A true JP2008204245A (en) 2008-09-04
JP5151176B2 JP5151176B2 (en) 2013-02-27

Family

ID=39781677

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007040628A Expired - Fee Related JP5151176B2 (en) 2007-02-21 2007-02-21 Data communication apparatus, image processing system, and data communication method

Country Status (1)

Country Link
JP (1) JP5151176B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009169854A (en) * 2008-01-18 2009-07-30 Nec Corp Computer system, fault handling method and fault handling program
JP2012065306A (en) * 2010-08-19 2012-03-29 Ricoh Co Ltd Image processing system, image processing method, image processing program, and recording medium
JP2012182721A (en) * 2011-03-02 2012-09-20 Ricoh Co Ltd Image forming apparatus and control method thereof
JP2017073588A (en) * 2015-10-05 2017-04-13 Necプラットフォームズ株式会社 Transmitter, transmission/reception system, transmission method and program
DE102016012627A1 (en) 2015-10-28 2017-05-04 Fanuc Corporation Engine control unit that achieves both low latency and high throughput data communications
JP2017157020A (en) * 2016-03-02 2017-09-07 富士通株式会社 Control circuit, information processing device, and control method for information processing device
US11411880B2 (en) 2017-01-13 2022-08-09 Nec Corporation Connection management unit and connection management method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6011057388; Ravi Buduruk, Don Anderson, Tom Shanley: PCI Express System Architecture , 20060331, p.219, P.224-226, MindShare, Inc. *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009169854A (en) * 2008-01-18 2009-07-30 Nec Corp Computer system, fault handling method and fault handling program
JP2012065306A (en) * 2010-08-19 2012-03-29 Ricoh Co Ltd Image processing system, image processing method, image processing program, and recording medium
JP2012182721A (en) * 2011-03-02 2012-09-20 Ricoh Co Ltd Image forming apparatus and control method thereof
JP2017073588A (en) * 2015-10-05 2017-04-13 Necプラットフォームズ株式会社 Transmitter, transmission/reception system, transmission method and program
DE102016012627A1 (en) 2015-10-28 2017-05-04 Fanuc Corporation Engine control unit that achieves both low latency and high throughput data communications
JP2017157020A (en) * 2016-03-02 2017-09-07 富士通株式会社 Control circuit, information processing device, and control method for information processing device
US11411880B2 (en) 2017-01-13 2022-08-09 Nec Corporation Connection management unit and connection management method

Also Published As

Publication number Publication date
JP5151176B2 (en) 2013-02-27

Similar Documents

Publication Publication Date Title
EP1681817B1 (en) Communication apparatus, electronic apparatus, imaging apparatus
JP4928732B2 (en) Data transfer system and electronic device
JP5108261B2 (en) Information processing apparatus and data communication apparatus
JP4704050B2 (en) Data transfer system and electronic device
US7698484B2 (en) Information processor configured to detect available space in a storage in another information processor
JP4564855B2 (en) Data transfer system and electronic device
JP2007087082A (en) Information processor and option device sharing method
JP5151176B2 (en) Data communication apparatus, image processing system, and data communication method
JP2008172727A (en) Control apparatus and image processing system
JP4308680B2 (en) Image forming apparatus
JP4287325B2 (en) Imaging system
JP4564740B2 (en) Imaging equipment system
JP4777723B2 (en) Information processing system, program, and data transfer method
JP4928715B2 (en) Serial data transfer device, image output device, image input device, and image forming device
JP4828899B2 (en) Information processing apparatus and storage device sharing method
JP2013037700A (en) Image formation system
JP2005332372A (en) Image processing apparatus and image forming apparatus
JP2007226494A (en) Data transfer system
JP2005346629A (en) Image processing apparatus
JP4824422B2 (en) Control device, image processing system, and data transfer path switching method
JP4690828B2 (en) Information processing system, program, and packet communication method
JP2007282187A (en) Information processor, information processing system, and data communication method
JP4607706B2 (en) Image processing system, program, and job execution method
JP2006113798A (en) Data transfer system, reception buffer device, method for setting specification of data transfer system and image formation system
JP2005332316A (en) Data distribution device, data transfer device and image processing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111101

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111228

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120605

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120905

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120912

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121119

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

Free format text: PAYMENT UNTIL: 20151214

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20151214

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees