HIPI protocol signal retransmission method and system for processing link communication error

By encapsulating data packets as Flits in the HIPI protocol and utilizing a circular buffer and ARQ Flit feedback, the retransmission process is optimized, solving the problem of link communication errors and improving communication efficiency and channel utilization.

CN120979611APending Publication Date: 2025-11-18BEIJING XINLI TECH INNOVATION CENT CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
CN202511060689.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-07-30
Publication Date
2025-11-18

AI Technical Summary

Technical Problem

In the HIPI protocol, there is a lack of effective retransmission algorithms when link communication errors occur, resulting in low communication efficiency. Furthermore, existing retransmission algorithms have shortcomings in bandwidth utilization and application scenario limitations.

Method used

At the sending end, data packets are encapsulated into Flits at the link layer and stored in a circular buffer. Error information is fed back through ARQ Flits. The sending end retransmits the data based on the feedback from the receiving end, thus optimizing the retransmission process and reducing unnecessary buffer maintenance.

Benefits of technology

It improves transmission efficiency, reduces retransmission load, enhances channel utilization, adapts to more application scenarios, and reduces bandwidth waste.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120979611A_ABST
    Figure CN120979611A_ABST
Patent Text Reader

Abstract

The invention provides an HIPI protocol signal retransmission method and system for processing a link communication error, at a link layer of a sending end, a data packet received from an HIPI protocol layer is packaged into Flit, Flit header and CRC tail are added, and the data packet is stored in an annular buffer area, and the HIPI protocol signal retransmission method comprises the following steps: when the generation of a CRC check error is detected, the Flit header and the CRC tail are sent to the sending end; the HIPI protocol signal retransmission method is characterized in that only wrong Flit is retransmitted between a signal transmitting end and a signal receiving end, and the HIPI protocol signal retransmission method comprises the following steps: assuming that a CRC (Cyclic Redundancy Check) error occurs when the receiving end receives a physical frame containing the nth Flit, after the receiving end receives the physical frame containing the nth Flit, under the condition that the receiving end does not stop receiving a new physical frame, the receiving end receives the physical frame containing the nth Flit; an event of a CRC error is fed back to the sending end through ARQ Flit; and the receiving end starts to count from the Flitts where the CRC error occurs, counts the total number of the received Flitts when the CRC error occurs, and notifies the sending end to perform retransmission. According to the invention, the retransmission load is greatly reduced and the transmission efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of communication technology, and in particular relates to a method and system for retransmitting HIPI protocol signals to handle link communication errors. Background Technology

[0002] In the HIPI protocol, if a link communication error is encountered, there is a technical issue that requires retransmission of the algorithm.

[0003] In commonly used standards, there are two reference retransmission algorithms:

[0004] Algorithm 1 requires that every sent data packet be accompanied by an ACK response. Since ACK responses consume additional bandwidth, this reduces communication efficiency.

[0005] Algorithm 2 requires that each sent data packet be incremented by one bit when the other end sends back valid information to indicate that the data packet has been accepted. This limits the application scenarios of HIPI; that is, only applications with a roughly balanced transmission and reception volume can allow each sent data packet to receive a timely one-bit response.

[0006] Meanwhile, because the HIPI protocol was designed to increase the proportion of payload in data packets and did not include sequence numbers in the data packets, the returned ACK information cannot indicate the sequence number of the erroneous data packets. Summary of the Invention

[0007] The present invention aims to solve the problem of retransmission algorithm in the HIPI protocol when a link communication error is encountered.

[0008] To address this, the present invention provides a HIPI protocol signal retransmission method for handling link communication errors. At the link layer of the transmitting end, data packets received from the HIPI protocol layer are encapsulated into Flits (also short for flow control units, typically of fixed length), with a Flit header and CRC tail added, and stored in a circular buffer. When a CRC check error is detected, the HIPI protocol signal retransmission method only retransmits the Flit following the error between the signal transmitting end and the signal receiving end. The HIPI protocol signal retransmission method includes: assuming a CRC check error occurs when the receiving end receives a physical frame containing the nth Flit; after receiving the nth Flit physical frame, the receiving end, without stopping receiving new physical frames, feeds back the CRC error event to the transmitting end via ARQ Flit; the receiving end counts from the Flit where the CRC error occurred and calculates the total number of Flits received since the CRC error occurred, notifying the transmitting end to retransmit, where n is a positive integer greater than or equal to 1.

[0009] Furthermore, preferably, in the HIPI protocol signal retransmission method according to the present invention, the transmitting end stops receiving new transmission data from the protocol layer after receiving the automatic retransmission request Flit.

[0010] Furthermore, preferably, in the HIPI protocol signal retransmission method according to the present invention, the sending end queries the receiving end to determine how many data entries have been received, and the receiving end responds to the sending end's query command.

[0011] Furthermore, preferably, in the HIPI protocol signal retransmission method according to the present invention, the transmitting end retransmits the Flits that have been erroneous based on the number of automatic retransmission request Flits.

[0012] Furthermore, preferably, in the HIPI protocol signal retransmission method according to the present invention, after the data transmission in the circular buffer is completed, the reception of data from the protocol layer is resumed, and the error handling process ends.

[0013] Furthermore, preferably, in the HIPI protocol signal retransmission method according to the present invention, the required amount of the circular buffer is determined during system initialization.

[0014] Furthermore, preferably, in the HIPI protocol signal retransmission method according to the present invention, upon initial power-on, the transmitting end sends a write request to the receiving end, the content of which includes a data number, and the receiving end randomly selects a received message and marks it as an erroneous data packet.

[0015] Furthermore, preferably, in the HIPI protocol signal retransmission method according to the present invention, the receiving end requests retransmission from the sending end, and after receiving the request, the sending end calculates the number difference between the number of the data packet to be sent and the number of the data packet that has erroneously occurred, stores the data packets that exist within the range of the number difference in a circular buffer, and calculates the minimum capacity of the circular buffer in this scenario.

[0016] Furthermore, preferably, in the HIPI protocol signal retransmission method according to the present invention, the minimum capacity range is obtained through repeated training, and the size of the ring buffer at the transmitting end is calculated.

[0017] Furthermore, preferably, the present invention also provides a HIPI protocol signal retransmission system based on the HIPI protocol signal retransmission method according to any one of claims 1 to 9.

[0018] By utilizing this invention, at least the following effects are achieved:

[0019] 1) Using a circular buffer to store on-the-fly data eliminates the need to record the number of each data packet at the sending end, and also eliminates the need to maintain the head and tail pointers of the circular buffer.

[0020] 2) Method for determining the number of on-the-fly events after an error.

[0021] 3) Buffer estimation method: Determine the reserved amount of buffer through link training.

[0022] In summary, this invention significantly reduces the retransmission load and improves transmission efficiency. Attached Figure Description

[0023] Figure 1 This is a schematic block diagram illustrating a HIPI protocol signal transmission method according to an embodiment of the present invention. Detailed Implementation

[0024] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of the embodiments. Other embodiments or modifications obtained by those skilled in the art based on the embodiments of this application without creative effort are all within the scope of protection of this application.

[0025] Error retransmission can be achieved through technologies such as ARQ (Automatic Repeat-reQuest), specifically the following technologies.

[0026] Stop equation ARQ (Stop-and-Wait ARQ)

[0027] Principle: The sending end sends only one data frame at a time and waits for the receiving end's acknowledgment (ACK) or retransmission after a timeout. The receiving end receives only one data frame at a time and sends an ACK.

[0028] Advantages: Simple to implement, requires a small buffer zone.

[0029] Disadvantages: Low channel utilization, especially in high-latency or high-error-rate scenarios, where waiting time significantly reduces throughput. In stop-and-wait ARQ, after sending a data packet, the sender must wait for an acknowledgment from the receiver before sending the next packet. If the acknowledgment is lost or corrupted during transmission, the sender will retransmit the data packet.

[0030] Use case: Low-speed, low-latency, and low-error-rate links.

[0031] Go-Back-N ARQ (N-frame ARQ)

[0032] Principle: The sending end can continuously send multiple data frames (up to n), but needs to maintain a buffer for sent but unacknowledged frames. The receiving end receives frames sequentially and sends ACKs. If an error is detected in a frame, the receiving end will notify the sending end to retransmit from the point of error.

[0033] Advantages: Higher channel utilization than stop-and-wait ARQ.

[0034] Disadvantages: When errors occur, a large number of packets that may have been received correctly will be retransmitted, resulting in wasted bandwidth.

[0035] Use case: Links with low bit error rate. The basic principle of Go-BacK-N ARQ is that the sender continuously sends multiple data frames (up to n), but needs to maintain a buffer of sent but unacknowledged frames. The receiver receives frames in sequence and sends ACKs. If an error is found in a frame, the receiver will notify the sender to retransmit n frames starting from the erroneous frame.

[0036] Selective Repeat ARQ

[0037] Principle: Similar to Go-Back-N ARQ, the sending end can send multiple data frames continuously, but the receiving end has a larger buffer to store out-of-order correct frames. If an error is found in a frame, the receiving end only requests to retransmit the erroneous frame, rather than retransmitting a set of frames.

[0038] Advantages: Highest channel utilization, avoiding unnecessary retransmissions.

[0039] Disadvantages: Complex implementation, requiring a larger buffer zone and a more complex frame numbering mechanism. Selective RepeatARQ is the foundation of almost all efficient ARQ versions.

[0040] Similar to Go-Back-N ARQ, but this invention does not require recording the number on the transmitted data packets, thus reducing the impact of the number on channel utilization.

[0041] HIPI Error Handling Procedure

[0042] The specific explanation is as follows:

[0043] 1) According to the protocol definition, when an ECC check fails, the control Flit is not retransmitted, but the service Flit is retransmitted. However, since the receiver's Flit check fails, it is impossible to determine whether the received data is a control Flit or a service Flit.

[0044] 2) According to the protocol definition, the receiver needs to return an ACK after receiving each Flit. However, the type of Flit for the ACK is not defined. If a regular Flit is used, the capacity of a Flit is 16 bytes, which only conveys 1 bit of valid information, resulting in bandwidth waste and filling the backhaul channel, which is not feasible.

[0045] 3) Flits cannot be discarded arbitrarily after a CRC error occurs, because they transmit service data and are correlated with each other. Discarding them may cause a bus deadlock. For example, if the sender issues a burst write request on the AXI bus, totaling 128 write signals, but discards one due to a CRC error, the receiver may be unable to return a response signal, leading to a logical error.

[0046] To address the aforementioned problems, a preferred embodiment of the HIPI protocol signal transmission method according to the present invention implements the aforementioned error handling, as detailed below. Figure 1 As described.

[0047] Figure 1 The signal transmission method described has the following characteristics:

[0048] 1. At the link layer of the sending end, the data packets received from the protocol layer are encapsulated into Flit, with a Flit header and CRC tail added, and stored in a circular buffer.

[0049] 2. The sending end transmits Flit to the physical layer for transmission.

[0050] 3. When the receiving end receives a physical frame containing the nth Flit, assume that a CRC check error occurs at this time.

[0051] 4. The receiving end does not stop accepting new physical frames. However, it will send CRC error events back to the sending end via ARQ Flit.

[0052] 5. The receiving end counts the Flits after the CRC error and calculates the total number of received Flits in order to notify the sending end to retransmit.

[0053] 6. After receiving the ARQ Flit, the sending end stops receiving new data from the protocol layer. Therefore, the circular buffer no longer adds new buffer content.

[0054] 7. The sending end queries the receiving end to see how many data entries were received.

[0055] 8. The receiving end responds to the sending end's query command.

[0056] 9. The sending end resends the Flits that were lost due to errors, based on the number of Flits.

[0057] 10. After the data in the circular buffer has been sent, resume data reception at the receiving protocol layer and complete the error handling process.

[0058] The link layer receives data from the transaction layer, processes it, and forms its own Flit data type before sending it to the physical layer. Each Flit represents one data block. For example, each Flit is a fixed 528 bits of data, including a 16-bit CRC checksum. Since each data block is 128 bits, at least four data blocks of 512 bits each are required.

[0059] Ring Buffer User Guide

[0060] What is a circular buffer?

[0061] A circular buffer is a closed-loop storage space that follows a First-In-First-Out (FIFO) principle. Simply put, it's like allocating a "circular" area in memory and dividing that "circle" into N equal parts (the size of the circular buffer). For example, defining a buffer with a size of 10 data items can be indirectly equivalent to... Figure 1 The ring on the right. Additionally, a circular buffer is also a type of queue.

[0062] When using a circular buffer, two pointers are defined: a write pointer and a read pointer. The read pointer points to the address of the first readable data in the circular buffer, and the write pointer points to the address of the first writable data in the circular buffer. For example, in a buffer with a size of 10 data bytes, if 5 data bytes are written, the read and write pointers will point to the corresponding positions.

[0063] When performing a write operation, it is necessary to first determine whether the circular buffer is full. If it is full, the most direct and simple way is to directly overwrite the data that has already been written. Secondly, appropriate processing should be performed according to the actual application.

[0064] When performing a read operation, it is necessary to check whether the circular buffer is empty; if it is empty, data cannot be read.

[0065] The core essence of a circular buffer lies in performing a modulo operation on the movement of the read and write pointers to calculate the current position, which is used to determine the current state of the circular buffer (empty or full).

[0066] When Read_Index = Write_Index, it means that the circular buffer is empty.

[0067] When ((Write_Index+1)%RingBuffer_Size) = Read_Index, it means that the circular buffer is full.

[0068] If multiple tasks need to read from or write to the circular buffer, a mutual exclusion mechanism must be added to ensure that each task accesses the circular buffer correctly.

[0069] Function call description

[0070] The states of the circular buffer (normal, empty, full, half full) are defined using an enumeration.

[0071]

[0072]

[0073] Define a circular buffer structure containing the following information: the size of the circular buffer, and the read and write positions.

[0074]

[0075] The function initializes the circular buffer, sets the read and write positions to start from 0, and defines the size of the buffer to be used, which is the same as the circular buffer by default.

[0076]

[0077] Determine if the circular buffer is empty. If it is empty, return an empty state; otherwise, return a normal state.

[0078]

[0079]

[0080] Determine if the circular buffer is full. If it is full, return to the full state; otherwise, return to the normal state.

[0081]

[0082] The circular buffer write function takes the following parameters: the data to be written and the length of the data.

[0083]

[0084]

[0085] The circular buffer read function takes the following parameters: the data to be read and the length of the data.

[0086]

[0087]

[0088]

[0089] In typical transport mode, we need a fixed-size transport entity (called a Flit, representing a flow control unit) to allow for FEC encoding / decoding / correction. With a fixed Flit size, CRC-based error detection, ack / nak, and retry mechanisms can naturally operate at the Flit level.

[0090] A FLIT can contain multiple packets (Data Link Layer packets - DLLPs and Transaction Layer packets - TLPs), and a TLP / DLLP can span multiple FLITs. Because FLITs include CRC, DLLPs and TLPs do not carry their own CRC bytes as in previous generations. Since the position of TLPs / DLLPs within a FLIT is fixed, we have also removed the PHY layer frame token for each TLP or DLLP. The fixed DLLP bytes facilitate predictable low-latency replay mechanisms and reduce queuing overhead. These mechanisms help improve link efficiency to overcome FEC and CRC overhead.

[0091] For example, a Flit contains 256 bytes, each byte is sent on a single lane, and the bytes are interleaved across the width of the link, consistent with the layout of previous generations. The first 236 bytes of the Flit are used for the Data Link Layer Payload (TLP), followed by 6 bytes for the Data Link Layer Payload (DLP), then 8 bytes for the CRC, covering the first 242 bytes of the TLP and DLP, and finally 6 bytes for the FEC, covering the entire Flit.

[0092] Property Analysis of Error Handling Algorithms

[0093] The advantages and disadvantages of the above error handling process are described in Table 1 below.

[0094] Table 1 analyzes the advantages and disadvantages of a HIPI protocol signal transmission method according to one embodiment of the present invention.

[0095]

[0096] Exploration process of the circular buffer

[0097] Since chiplets can be used in any scenario, the required ring buffer capacity when the same chiplet is connected to DDR may be much larger than that required when the chiplet is connected to the NPU. Therefore, chiplet designers cannot pre-allocate a ring buffer of an appropriate size.

[0098] In this invention, a training algorithm is defined to determine the required amount of the circular buffer during system initialization.

[0099] The specific definitions are as follows:

[0100] Upon initial power-on, the sending end sends a write request to the receiving end, the content of which includes a data number.

[0101] The receiving end randomly selects a received message and marks it as an error packet (this is only designed for the training process and does not apply to whether the packet is actually erroneous).

[0102] The receiving end requests a retransmission from the sending end.

[0103] After receiving the request, the sending end observes the data packets currently awaiting transmission. It calculates the difference between the packet number and the error packet number. Data packets within this difference range should be stored in the circular buffer, thus calculating the minimum capacity of the circular buffer in this scenario.

[0104] The above training process is repeated multiple times to determine the range of the "minimum capacity". In the context of chip-to-chip interconnect, the latency of the data link is essentially constant. Therefore, this range should be relatively stable.

[0105] Multiply the maximum value of this range by a threshold as a safety margin, and use the result of this multiplication as the size of the ring buffer at the sending end.

[0106] It should be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0107] The various embodiments in this specification are described in a related manner. The same or similar parts between the various embodiments can be referred to each other. Each embodiment focuses on describing the differences from other embodiments.

[0108] The above description is merely a specific embodiment of the present invention, but the scope of protection of the present invention is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in the present invention should be included within the scope of protection of the present invention. Therefore, the scope of protection of the present invention should be determined by the scope of the claims.

[0109] The above embodiments of the present invention are merely examples for clearly illustrating the present invention and are not intended to limit the implementation of the present invention. Those skilled in the art will recognize that other variations or modifications can be made based on the above description. It is neither necessary nor possible to exhaustively describe all possible implementations here. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of the present invention should be included within the scope of protection of the claims of the present invention.

Claims

1. A method for retransmitting HIPI protocol signals to handle link communication errors, wherein at the link layer of the sending end, the data packets received from the HIPI protocol layer are encapsulated into Flit, a Flit header and a CRC tail are added, and stored in a circular buffer, characterized in that, When a CRC check error is detected, the HIPI protocol signal retransmission method only retransmits the Flit after the error between the signal transmitter and the signal receiver. The HIPI protocol signal retransmission method includes: Assuming that a CRC check error occurs when the receiver receives a physical frame containing the nth Flit, the receiver, after receiving the nth Flit physical frame, will report the CRC error event to the sender via ARQ Flit without stopping the reception of new physical frames. The receiving end starts counting from the Flit where the CRC error occurred and calculates the total number of Flits received since the CRC error occurred, then notifies the sending end to retransmit. Where Flit represents the flow control unit, and n is a positive integer greater than or equal to 1.

2. The HIPI protocol signal retransmission method according to claim 1, characterized in that, After receiving the automatic retransmission request Flit, the sending end stops receiving new data from the protocol layer.

3. The HIPI protocol signal retransmission method according to claim 2, characterized in that, The sending end queries the receiving end to see how many data entries have been received, and the receiving end responds to the sending end's query command.

4. The HIPI protocol signal retransmission method according to claim 3, characterized in that, The sending end retransmits the Flits that have encountered errors based on the number of automatic retransmission request Flits.

5. The HIPI protocol signal retransmission method according to claim 4, characterized in that, After the data transmission within the circular buffer is complete, the reception of data from the protocol layer resumes, and the error handling process ends.

6. The HIPI protocol signal retransmission method according to claim 1, characterized in that, The required size of the circular buffer is determined during system initialization.

7. The HIPI protocol signal retransmission method according to claim 6, characterized in that, Upon initial power-on, the sending end sends a write request to the receiving end, the content of which includes a data number. The receiving end randomly selects a received message and marks it as an erroneous data packet.

8. The HIPI protocol signal retransmission method according to claim 7, characterized in that, The receiving end requests a retransmission from the sending end. After receiving the request, the sending end calculates the difference between the number of the data packet to be sent and the number of the data packet that had an error. Data packets within the range of the number difference are stored in a circular buffer, and the minimum capacity of the circular buffer in this scenario is calculated.

9. The HIPI protocol signal retransmission method according to claim 8, characterized in that, The minimum capacity range is obtained through repeated training, and the size of the circular buffer at the sending end is calculated.

10. A HIPI protocol signal retransmission system based on the HIPI protocol signal retransmission method according to any one of claims 1 to 9.

Citation Information

Patent Citations

  • Video transmission method and device and computer readable storage medium

    CN113225622A

  • Link layer error data retransmission method and system and storage medium

    CN116232550A

  • Data retransmission method, device and system

    CN116260553A

  • Networked experiment box real-time bidirectional interaction experiment support system

    CN118041845A

  • Defect tolerance router for network on-chip

    JP2017208736A