Data transmission optimization method and system based on registry receiving mechanism
By adopting a data transmission optimization method based on the receiving registry mechanism in the HPC environment, the problem of latency and low efficiency of RDMA communication solution in data transmission between FPGA-specific accelerators is solved, and efficient, stable and reliable data transmission is achieved.
Patent Information
- Application Number
- CN202411660756.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-20
- Publication Date
- 2025-03-14
- Estimated Expiration
- 2044-11-20
AI Technical Summary
In the HPC environment, RDMA-based communication schemes have problems such as delay, low efficiency, receiver-side data processing bottlenecks and duplicate or delayed packet processing in data transmission between FPGA dedicated accelerators.
The data transmission optimization method based on the receiving registry mechanism is adopted. By dividing large RDMA transmissions into multiple smaller transmissions on the sending end, and introducing a receiving registry mechanism on the receiving end, special status flags and masking mechanisms are used to ensure the accuracy and timeliness of data transmission, and introducing escape channels and timeout mechanisms to avoid pipeline blocking.
It improves the efficiency and reliability of data transmission, reduces latency, avoids pipeline blockage and resource waste, and ensures the efficiency, stability and reliability of data transmission.
Smart Images

Figure CN119629147A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the technical field of high performance computing and data transmission optimization, and in particular to a data transmission optimization method and system based on a receiving registration table mechanism. Background Art
[0002] The statements in this section merely provide background information related to the present disclosure and do not necessarily constitute prior art.
[0003] In the process of optimizing the high-performance computing (HPC) system architecture, although traditional communication protocols such as Ethernet and Infiniband have performed well in many fields, they face many challenges in the HPC environment based on field programmable gate arrays (FPGAs). These challenges mainly come from the limitations of traditional protocols in system performance and resource utilization: on the one hand, traditional protocols usually rely on the frequent participation of the central processing unit (CPU), resulting in unnecessary memory copying and context switching, which in turn increases data processing delays and reduces the real-time response capabilities of the system; on the other hand, the implementation of traditional protocols on the FPGA platform consumes a large amount of logic resources, which directly restricts the further improvement of system performance.
[0004] To address the above limitations, existing technologies have begun to study more efficient data transmission mechanisms, among which Remote Direct Memory Access (RDMA) technology has attracted much attention due to its unique advantages. RDMA technology transfers data directly between memories, bypassing CPU intervention and achieving "zero copy" data transmission, which significantly reduces the CPU burden and reduces latency. In addition, the connectionless nature of RDMA enables direct and efficient communication between FPGA-specific accelerators without the need to establish and maintain complex connection states, thereby further simplifying the communication process and improving the flexibility and scalability of the system.
[0005] However, the current RDMA-based communication solution still faces many problems in data transmission between FPGA-specific accelerators in HPC environments, including: (1) Data transmission delay and efficiency issues. In FPGA accelerator applications, when the RDMA protocol transmission scale is large, it may lead to excessive occupation of system resources and computing bottlenecks. (2) Data processing bottleneck problem at the receiving end. Disordered processing at the receiving end can easily lead to excessive congestion or waste of resources. (3) Duplicate or delayed packet processing problems: Traditional RDMA protocols may cause pipeline blockage when faced with duplicate transmission or delayed arrival of packets. Summary of the invention
[0006] In order to solve the above problems, the present disclosure proposes a data transmission optimization method and system based on a receiving registry mechanism, which divides a large RDMA transmission into multiple smaller transmissions through micro-architecture design, introduces a receiving registry mechanism at the receiving end, ensures the accuracy and timeliness of data transmission through special status flags and mask mechanisms, introduces escape channels and timeout mechanisms to avoid pipeline blocking and processing of duplicate data packets or delayed data packets, and ensures the efficiency, stability and reliability of data transmission.
[0007] According to some embodiments, the present disclosure adopts the following technical solutions: The data transmission optimization method based on the receiving registration table mechanism is applied to the sending end, including: The CPU initiates a direct memory access (DMA) operation request to form an RDMA command queue. The CDMA IP acts as a DMA engine to pull DMA operations from the RDMA command queue. Set a transmission threshold for RDMA commands, divide the large transmission queue and the regular queue according to the preset threshold, send the RDMA commands exceeding the preset threshold to the large transmission queue, and divide the large data packets in the large transmission queue into small data packets; When the DMA engine pulls a new segmentation command, it updates the base address offset and the number of bytes to be transmitted at the head of the queue, and uses a connectionless segmentation transmission method to transmit data packets to the receiving end in an unordered manner in the network. When all segmented data packets are successfully sent, the local status is updated through the DMA engine, and at the same time, a data arrival instruction is sent to the receiving end.
[0008] According to some embodiments, the present disclosure adopts the following technical solutions: The data transmission optimization method based on the receiving registration table mechanism is applied to the receiving end, including: Receive the data packet of the RDMA transaction from the sender, check the type field in the data packet header, and if the field is the start part of the operation, register it in the receiving registration table to record the expected address range and number of data packets of the operation; When a new data packet arrives, its destination address is calculated and matched with the entries in the receiving registry, and an escape channel is established. According to the matching results of the receiving registry entries, the arriving data packet is judged and processed for escape; When all receiving operations are completed, a local completion notification is sent to the sender.
[0009] According to some embodiments, the present disclosure adopts the following technical solutions: The data transmission optimization system based on the receiving registration table mechanism includes the sending end and the receiving end. In the transmitting end, the CPU initiates a direct memory access DMA operation request to form an RDMA command queue; the CDMAIP acts as a DMA engine to pull DMA operations from the RDMA command queue; Set a transmission threshold for RDMA commands, divide the large transmission queue and the regular queue according to the preset threshold, send the RDMA commands exceeding the preset threshold to the large transmission queue, and divide the large data packets in the large transmission queue into small data packets; When the DMA engine pulls a new segmentation command, it updates the offset of the base address and the number of bytes to be transmitted at the head of the queue, and uses a connectionless segmentation transmission method to transmit the data packet to the receiving end in an unordered manner in the network. When all segmented data packets are successfully sent, the local state is updated through the DMA engine, and at the same time, a data arrival instruction is sent to the receiving end; In the receiving end, a data packet of the RDMA transaction from the sending end is received, and a type field in the data packet header is checked. If the field is the starting part of the operation, a registration operation is performed in a receiving registration table to record the expected address range and the number of data packets of the operation; When a new data packet arrives, its destination address is calculated and matched with the entries in the receiving registry, and an escape channel is established. According to the matching results of the receiving registry entries, the arriving data packet is judged and processed for escape; When all receiving operations are completed, a local completion notification is sent to the sender.
[0010] According to some embodiments, the present disclosure adopts the following technical solutions: The transmission optimization method of the data transmission optimization system based on the receiving registration table mechanism includes: The sending end uses the CPU to initiate direct memory access DMA operation requests to form an RDMA command queue; the CDMA IP acts as a DMA engine to pull DMA operations from the RDMA command queue; Set a transmission threshold for RDMA commands, divide the large transmission queue and the regular queue according to the preset threshold, send the RDMA commands exceeding the preset threshold to the large transmission queue, and divide the large data packets in the large transmission queue into small data packets; When the DMA engine pulls a new segmentation command, it updates the offset of the base address and the number of bytes to be transmitted at the head of the queue, and uses a connectionless segmentation transmission method to transmit the data packet to the receiving end in an unordered manner in the network. When all segmented data packets are successfully sent, the local state is updated through the DMA engine, and at the same time, a data arrival instruction is sent to the receiving end; After receiving the data packet of the RDMA transaction from the sending end, the receiving end checks the type field in the data packet header, and if the field is the starting part of the operation, performs a registration operation in the receiving registration table to record the expected address range and the number of data packets of the operation; When a new data packet arrives, its destination address is calculated and matched with the entries in the receiving registry, and an escape channel is established. According to the matching results of the receiving registry entries, the arriving data packet is judged and processed for escape; When all receiving operations are completed, a local completion notification is sent to the sender.
[0011] According to some embodiments, the present disclosure adopts the following technical solutions: An electronic device comprises: a processor, a memory and a computer program; wherein the processor is connected to the memory, the computer program is stored in the memory, and when the electronic device is running, the processor executes the computer program stored in the memory so that the electronic device executes the transmission optimization method of the data transmission optimization system based on the receiving registration table mechanism.
[0012] Compared with the prior art, the present invention has the following beneficial effects: The data transmission optimization method based on the receiving registration table mechanism disclosed in the present invention proposes a micro-architecture design to support connectionless reliable transmission. At the sending end, it supports splitting large RDMA transmission into multiple smaller transmissions to reduce the delay introduced by large transmissions. This method allows multiple data segments to be processed and transmitted in parallel, making more full use of network bandwidth and improving overall transmission efficiency.
[0013] The data transmission optimization method based on the receiving registry mechanism disclosed in the present invention introduces a receiving registry mechanism at the receiving end to record and track RDMA operations. By using a special status flag and mask mechanism, the system can identify whether a data packet belongs to the same RDMA operation, and provide local and remote notifications when the operation is completed, ensuring the accuracy and timeliness of data transmission. For data packets that have not yet been registered in the receiving registry, an escape channel is designed to avoid pipeline blocking. At the same time, a timeout mechanism is introduced to discard those duplicate or delayed data packets, thereby ensuring the stability and reliability of data transmission. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] The accompanying drawings constituting a part of the present disclosure are used to provide a further understanding of the present disclosure. The illustrative embodiments of the present disclosure and their descriptions are used to explain the present disclosure and do not constitute an improper limitation on the present disclosure.
[0015] Figure 1 It is a flow chart of the data transmission optimization method based on the receiving registration table mechanism according to the embodiment of the present disclosure applied to the sending end; Figure 2 It is a flow chart of the data transmission optimization method based on the receiving registration table mechanism according to the embodiment of the present disclosure applied to the receiving end; Figure 3It is a flow chart of the control of transmission and reception of the transport layer according to an embodiment of the present disclosure; Figure 4 This is a mask update flow chart of an embodiment of the present disclosure; Figure 5 It is a delay comparison diagram between the segmented transmission mode and the large transmission mode of the embodiment of the present disclosure. DETAILED DESCRIPTION
[0016] The present disclosure is further described below in conjunction with the accompanying drawings and embodiments.
[0017] It should be noted that the following detailed descriptions are all illustrative and are intended to provide further explanation of the present disclosure. Unless otherwise specified, all technical and scientific terms used herein have the same meanings as those commonly understood by those skilled in the art to which the present disclosure belongs.
[0018] It should be noted that the terms used herein are only for describing specific embodiments and are not intended to limit the exemplary embodiments according to the present disclosure. As used herein, unless the context clearly indicates otherwise, the singular form is also intended to include the plural form. In addition, it should be understood that when the terms "comprising" and / or "including" are used in this specification, it indicates the presence of features, steps, operations, devices, components and / or combinations thereof.
[0019] Example 1 In one embodiment of the present disclosure, a data transmission optimization method based on a receiving registration table mechanism is provided, which is applied to a sending end and includes: The CPU at the sending end initiates a direct memory access DMA operation request to form an RDMA command queue; the CDMA IP acts as a DMA engine to pull DMA operations from the RDMA command queue; A transmission threshold is set for the RDMA command, and a large transmission queue and a regular queue are divided according to the preset threshold. RDMA commands exceeding the preset threshold are sent to the large transmission queue, and large data packets in the large transmission queue are segmented into small data packets. When the DMA engine pulls a new segmentation command, it updates the base address offset and the number of bytes to be transmitted at the head of the queue, and uses a connectionless transmission method to transmit the data packet to the receiving end in an unordered manner in the network. When all segmented data packets are successfully sent, the local status is updated through the DMA engine, and at the same time, a data arrival instruction is sent to the receiving end.
[0020] Specifically, when data needs to be transferred, the CPU or accelerator initiates a direct memory access (DMA) operation request. During this process, Xilinx's CDMA IP acts as a DMA engine and is responsible for pulling these DMA operations from the command queue. These operations use the Scatter-Gather mode, which enables the DMA engine to effectively process data scattered in different memory areas.
[0021] The Scatter-Gather mode enables the DMA engine to effectively process data scattered in different memory areas, including: 1) The DMA controller builds a descriptor table that contains the addresses and sizes of multiple memory blocks that may be located in different locations in physical memory.
[0022] 2) Based on the information in the descriptor table, the DMA controller reads data from multiple source memory addresses and writes them to a single target address, or reads data from a single source address and writes them to multiple target memory addresses in a dispersed manner; 3) After the data transfer is completed, the DMA controller will send an interrupt signal to notify the CPU, and the CPU will perform subsequent processing.
[0023] Furthermore, a transmission threshold is set for the RDMA command, and the large transmission queue and the regular queue are divided according to the preset threshold. For those RDMA commands that exceed the preset threshold size, they will be sent to the large transmission queue for special processing. In this queue, large data packets will be divided into multiple smaller data packets for transmission, thereby reducing system latency. On the contrary, commands that do not exceed the threshold enter the regular queue and wait for processing. When the DMA engine pulls a new segmented command, it only needs to update the base address offset and the number of bytes to be transferred at the head of the queue. When the last command is issued, the special status flag remains inactive, so that a local completion notification of the original complete transmission can be formed.
[0024] Among them, the large transmission queue and the regular queue are divided according to the preset threshold, including: The RDMA commands issued by the CPU / accelerator contain the memory base address and the number of bytes to be transferred. If the size of a command exceeds a certain threshold, it can be sent to a special "large transfer" queue. The optimal value for segmentation is highly dependent on the structure of the application and should be defined by the programmer when configuring the Network Interface (NI).
[0025] Furthermore, for those RDMA commands that exceed the preset threshold size, they will be sent to the large transfer queue for special processing, including: As commands from the large transfer queue are processed, they are assigned a status flag in the DMA operations table. When an operation with this special status flag completes, no local notification is posted; only a notification is sent to the receiver. If the command size is M and the segment size is N, the head of the "large transfer" queue will remain unchanged for M / N operations. When the DMA engine pulls a new segmented command, only the offset of the base address and the number of bytes to be transferred need to be updated at the head of the queue. When the last command is issued, the special status flag remains unset so that a local completion notification of the original complete transfer can be formed.
[0026] Furthermore, the DMA engine records each newly pulled DMA operation in the DMA operation table (DMAOP table) of the network interface (NI). The DMA operation table assigns a unique operation number (OP number) to each data packet. The operation number is sent to the network with the data packet and returned when the data packet is confirmed. It is used to record the number of successfully transmitted data packets.
[0027] The DMA operation table is responsible for tracking each individual packet and setting a timeout timer for each packet. If no acknowledgment is received within the timeout period or a negative acknowledgment is received, a retransmission operation entry is created in the DMA operation table.
[0028] Finally, the system uses a connectionless segmented transmission method, and the data packets will be transmitted in the network in an unordered manner. When all segmented data packets are successfully sent, the sender updates the local status through the DMA engine to notify the processor that the DMA operation has been completed. At the same time, the sender will also notify the remote receiver that new data has arrived at a specific location, so that the receiver can start processing the received data. This process ensures the efficiency and reliability of data transmission.
[0029] Example 2 In one embodiment of the present disclosure, a data transmission optimization method based on a receiving registration table mechanism is provided, which is applied to a receiving end and includes: Receive the data packet of the RDMA transaction from the sender, check the type field in the data packet header, and if the field is the start part of the operation, register it in the receiving registration table to record the expected address range and number of data packets of the operation; When a new data packet arrives, its destination address is calculated and matched with the entries in the receiving registry, and an escape channel is established. According to the matching results of the receiving registry entries, the arriving data packet is judged and processed for escape; When all receiving operations are completed, a local completion notification is sent to the sender.
[0030] As an embodiment, when an RDMA transaction arrives at the receiving end, the system first checks the "type" field in the packet header. If the field indicates that this is the start of an operation, the receiving end registers the operation. In the receiving registration table, the expected address range and number of packets of the operation are recorded.
[0031] If the field indicates that this is the start of the operation, the receiving end performs a registration operation, including: The registration operation is actually a special entry in the "type" field of the parsed packet header, which indicates whether the packet is the first transmission packet of this operation. When the receiving end detects this special entry, it will record the address range and number of packets of this transmission operation in the receiving registration table.
[0032] Furthermore, as new packets arrive, the system calculates their destination addresses and matches them with entries in the receive register. If a matching entry is found, processing continues; otherwise, the packet is sent to the escape channel, the relevant timer is started, and if the timer times out, the packet and its related data are discarded.
[0033] The escape channel is a buffer mechanism for processing out-of-order data packets, which is implemented by the FPGA internal resource RAM block. It allows the receiver to temporarily store these data packets when it is not ready to process a specific RDMA operation, thereby avoiding pipeline blocking and ensuring the order and integrity of the data.
[0034] If a match is successful, the hardware calculates the mask value for the new packet and immediately discards the packet if it is a duplicate (i.e., the mask is unchanged). If the new packet is not a duplicate, the system updates the mask and checks to see if all expected packets have been received. If the mask shows all bits set, the operation is complete and the system provides a local completion notification. This saves a full round-trip packet latency compared to waiting for the sender to provide a completion notification after receiving the last acknowledgment message.
[0035] Furthermore, the mask value of the new data packet is calculated, including: The mask is created via a barrel shifter, operating based on a field in the first packet header that indicates the number of packets expected. Zeros are shifted into this field to form the proper initial state of operation. A 1 is added at the end of the creation process to indicate that the first packet has been received, which is necessary to start this registration process. Taking specific parameters as an example, if a 4KB operation size, a 16KB FPGA-based network-enhanced RDMA receiver notification mask size, and a 512B packet size are assumed, the initial mask after registration would be 'b1111 1111 1111 1111 1111 1111 0000 0001. This mask indicates that 8 packets are expected to be received and the first packet has been successfully received.
[0036] Furthermore, if the new packet is not a duplicate, the system updates the mask to include: If the table entry checked matches the incoming data, it proceeds to create a new mask. The base address of the entry and the number of bytes being operated on are used to calculate whether the operation being checked in the table is relevant to the new packet that arrived. An offset is then created for the barrel shifter, which generates a mask to cause the bits to flip. If the mask is found to be all 1s, the operation must have been completed.
[0037] If Newmask is equal to Originalmask, the packet must be a duplicate and can be discarded.
[0038] Example 3 In one embodiment of the present disclosure, a data transmission optimization system based on a receiving registration table mechanism is provided, including a sending end and a receiving end. In the transmitting end, the CPU initiates a direct memory access DMA operation request to form an RDMA command queue; the CDMAIP acts as a DMA engine to pull DMA operations from the RDMA command queue; A transmission threshold is set for the RDMA command, and a large transmission queue and a regular queue are divided according to the preset threshold. RDMA commands exceeding the preset threshold are sent to the large transmission queue, and large data packets in the large transmission queue are segmented into small data packets. When the DMA engine pulls a new segmentation command, it updates the offset of the base address and the number of bytes to be transmitted at the head of the queue, and uses a connectionless transmission method to transmit the data packet to the receiving end in an unordered manner in the network. When all segmented data packets are successfully sent, the local state is updated through the DMA engine, and at the same time, a data arrival instruction is sent to the receiving end; In the receiving end, a data packet of the RDMA transaction from the sending end is received, and a type field in the data packet header is checked. If the field is the starting part of the operation, a registration operation is performed in a receiving registration table to record the expected address range and the number of data packets of the operation; When a new data packet arrives, its destination address is calculated and matched with the entries in the receiving registry, and an escape channel is established. According to the matching results of the receiving registry entries, the arriving data packet is judged and processed for escape; When all receiving operations are completed, a local completion notification is sent to the sender.
[0039] Example 4 In one embodiment of the present disclosure, a transmission optimization method of a data transmission optimization system based on a receiving registration table mechanism is provided, comprising: The sending end uses the CPU to initiate direct memory access DMA operation requests to form an RDMA command queue; the CDMA IP acts as a DMA engine to pull DMA operations from the RDMA command queue; A transmission threshold is set for the RDMA command, and a large transmission queue and a regular queue are divided according to the preset threshold. RDMA commands exceeding the preset threshold are sent to the large transmission queue, and large data packets in the large transmission queue are segmented into small data packets. When the DMA engine pulls a new segmentation command, it updates the offset of the base address and the number of bytes to be transmitted at the head of the queue, and uses a connectionless transmission method to transmit the data packet to the receiving end in an unordered manner in the network. When all segmented data packets are successfully sent, the local state is updated through the DMA engine, and at the same time, a data arrival instruction is sent to the receiving end; After receiving the data packet of the RDMA transaction from the sending end, the receiving end checks the type field in the data packet header, and if the field is the starting part of the operation, performs a registration operation in the receiving registration table to record the expected address range and the number of data packets of the operation; When a new data packet arrives, its destination address is calculated and matched with the entries in the receiving registry, and an escape channel is established. According to the matching results of the receiving registry entries, the arriving data packet is judged and processed for escape; When all receiving operations are completed, a local completion notification is sent to the sender.
[0040] Example 5 In one embodiment of the present disclosure, an electronic device is provided, including: a processor, a memory, and a computer program; wherein the processor is connected to the memory, the computer program is stored in the memory, and when the electronic device is running, the processor executes the computer program stored in the memory, so that the electronic device executes a transmission optimization method of a data transmission optimization system based on a receiving registry mechanism.
[0041] The present disclosure is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present disclosure. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of the processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0042] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0043] Although the above describes the specific implementation methods of the present disclosure in conjunction with the accompanying drawings, it is not intended to limit the scope of protection of the present disclosure. Technical personnel in the relevant field should understand that on the basis of the technical solution of the present disclosure, various modifications or variations that can be made by those skilled in the art without creative work are still within the scope of protection of the present disclosure.
Claims
1. A data transmission optimization method based on a receiving registration table mechanism, characterized in that: Applied to the sending end, including: The CPU initiates a direct memory access (DMA) operation request to form an RDMA command queue. The CDMA IP acts as a DMA engine to pull DMA operations from the RDMA command queue. Set a transmission threshold for RDMA commands, divide the large transmission queue and the regular queue according to the preset threshold, send the RDMA commands exceeding the preset threshold to the large transmission queue, and divide the large data packets in the large transmission queue into small data packets; When the DMA engine pulls a new segmentation command, it updates the base address offset and the number of bytes to be transmitted at the head of the queue, and uses a connectionless segmentation transmission method to transmit data packets to the receiving end in an unordered manner in the network. When all segmented data packets are successfully sent, the local status is updated through the DMA engine, and at the same time, a data arrival instruction is sent to the receiving end.
2. The data transmission optimization method based on the receiving registration table mechanism according to claim 1, characterized in that: The DMA operation adopts the Scatter-Gather mode, which enables the DMA engine to pull data scattered in different memory areas; in the large transmission queue, large data packets will be divided into multiple small data packets for transmission, and commands that do not exceed the threshold will enter the regular queue and wait for processing; when the DMA engine pulls a new segmented command, it only needs to update the base address offset and the number of bytes to be transferred at the head of the queue. When the last command is issued, the special status flag remains inactive, forming a local completion notification of the original complete transmission.
3. The data transmission optimization method based on the receiving registration table mechanism according to claim 1, characterized in that: The DMA engine records each newly pulled DMA operation in the DMA operation table of the network interface. The DMA operation table assigns a unique operation number to each data packet. The operation number is sent to the network with the data packet and returned when the data packet is confirmed. It is used to record the number of successfully transmitted data packets.
4. The data transmission optimization method based on the receiving registration table mechanism as claimed in claim 3, characterized in that: The DMA operation table tracks each individual data packet and sets a timeout timer for each data packet. If no acknowledgment is received within the timeout period or a negative acknowledgment is received, a retransmission operation entry will be created in the DMA operation table.
5. A data transmission optimization method based on a receiving registration table mechanism, characterized in that: Applied to the receiving end, including: Receive the data packet of the RDMA transaction from the sender, check the type field in the data packet header, and if the field is the start part of the operation, register it in the receiving registration table to record the expected address range and number of data packets of the operation; When a new data packet arrives, its destination address is calculated and matched with the entries in the receiving registry, and an escape channel is established. According to the matching results of the receiving registry entries, the arriving data packet is judged and processed for escape; When all receiving operations are completed, a local completion notification is sent to the sender.
6. The data transmission optimization method based on the receiving registration table mechanism according to claim 5, characterized in that: When a new data packet arrives, its destination address is calculated and matched with the entries in the receive register. If a matching entry is found, processing continues; otherwise, the data packet is sent to the escape channel and the relevant timer is started. If the timer times out, the data packet and its related data are discarded.
7. The data transmission optimization method based on the receiving registration table mechanism according to claim 5, characterized in that: If the match is successful, the mask value of the new data packet is calculated. If the mask value of the new data packet does not change, it means it is a duplicate, and the data packet is discarded immediately. If the new data packet is not a duplicate, the mask value will be updated and a check will be made to see if all expected data packets have been received. If the mask shows that all bits are set, the operation is completed, and a local completion notification is sent to the sender.
8. A data transmission optimization system based on a receiving registration table mechanism, characterized in that: Including the sending end and the receiving end, In the transmitting end, the CPU initiates a direct memory access DMA operation request to form an RDMA command queue; the CDMA IP acts as a DMA engine to pull DMA operations from the RDMA command queue; Set a transmission threshold for RDMA commands, divide the large transmission queue and the regular queue according to the preset threshold, send the RDMA commands exceeding the preset threshold to the large transmission queue, and divide the large data packets in the large transmission queue into small data packets; When the DMA engine pulls a new segmentation command, it updates the offset of the base address and the number of bytes to be transmitted at the head of the queue, and uses a connectionless segmentation transmission method to transmit the data packet to the receiving end in an unordered manner in the network. When all segmented data packets are successfully sent, the local state is updated through the DMA engine, and at the same time, a data arrival instruction is sent to the receiving end; In the receiving end, a data packet of the RDMA transaction from the sending end is received, and a type field in the data packet header is checked. If the field is the starting part of the operation, a registration operation is performed in a receiving registration table to record the expected address range and the number of data packets of the operation; When a new data packet arrives, its destination address is calculated and matched with the entries in the receiving registry, and an escape channel is established. According to the matching results of the receiving registry entries, the arriving data packet is judged and processed for escape; When all receiving operations are completed, a local completion notification is sent to the sender.
9. The transmission optimization method of the data transmission optimization system based on the receiving registration table mechanism according to claim 8, characterized in that: include: The sending end uses the CPU to initiate a direct memory access DMA operation request to form an RDMA command queue; The CDMA IP acts as a DMA engine and pulls DMA operations from the RDMA command queue; Set a transmission threshold for RDMA commands, divide the large transmission queue and the regular queue according to the preset threshold, send the RDMA commands exceeding the preset threshold to the large transmission queue, and divide the large data packets in the large transmission queue into small data packets; When the DMA engine pulls a new segmentation command, it updates the offset of the base address and the number of bytes to be transmitted at the head of the queue, and uses a connectionless segmentation transmission method to transmit the data packet to the receiving end in an unordered manner in the network. When all segmented data packets are successfully sent, the local state is updated through the DMA engine, and at the same time, a data arrival instruction is sent to the receiving end; After receiving the data packet of the RDMA transaction from the sending end, the receiving end checks the type field in the data packet header, and if the field is the starting part of the operation, performs a registration operation in the receiving registration table to record the expected address range and the number of data packets of the operation; When a new data packet arrives, its destination address is calculated and matched with the entries in the receiving registry, and an escape channel is established. According to the matching results of the receiving registry entries, the arriving data packet is judged and processed for escape; When all receiving operations are completed, a local completion notification is sent to the sender.
10. An electronic device, characterized in that: include: A processor, a memory and a computer program; wherein the processor is connected to the memory, the computer program is stored in the memory, and when the electronic device is running, the processor executes the computer program stored in the memory to enable the electronic device to execute the transmission optimization method of the data transmission optimization system based on the receiving registry mechanism as described in claim 9.
Citation Information
Patent Citations
Data transmission method and device based on RDMA registration memory blocks
CN106873915A
Message receiving and sending method, device and system
CN107241404A
Fabric-integrated data pulling engine
CN108292287A
RDMA memory application protection method, system and device and storage medium
CN114253475A
Data transmission method and system and computer readable storage medium
CN115941618A