Rdma-based radar data transmission method and electronic device

CN122795801APending Publication Date: 2026-09-22SICHUAN LAIWO YUNCHUANG TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202610826177.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-06-09
Publication Date
2026-09-22

AI Technical Summary

Technical Problem

[0005]本发明的目的是为了解决现有技术中使用RDMA传输雷达数据时,延时较高的技术问题

Benefits of technology

[0021]本发明提供的一种基于RDMA的雷达数据传输方法及电子设备,本方法包括:当任一队列对对应的实时输入的雷达数据流达到预设规模时,将所述雷达数据流写入至缓存空间形成待传输的当前数据块,同时向RDMA控制器提交发送请求;然后通过所述RDMA控制器对所有队列对提交的发送请求进行仲裁,并根据仲裁成功的队列对的当前操作命令确定待发送数据块的数据包类型;最后基于所述数据包类型将当前数据块打包为待传输数据后通过RDMA控制器向远端主机进行传输。能够有效提升使用RDMA传输雷达数据的时效,降低传输雷达数据的延时。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122795801A_ABST
    Figure CN122795801A_ABST
Patent Text Reader

Abstract

The application discloses a radar data transmission method based on RDMA and electronic equipment, and the method comprises the following steps: when the corresponding real-time input radar data stream reaches a preset scale in any queue pair, the radar data stream is written into a cache space to form a current data block to be transmitted, and a sending request is submitted to an RDMA controller; then, the sending request submitted by all queue pairs is arbitrated through the RDMA controller, and the data packet type of the data block to be sent is determined according to the current operation command of the queue pair that succeeds in arbitration; finally, the current data block is packaged into data to be transmitted based on the data packet type, and then the data to be transmitted is transmitted to a remote host through the RDMA controller. The time efficiency of radar data transmission using RDMA can be effectively improved, and the transmission delay of radar data can be reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of computer technology, specifically relating to a radar data transmission method and electronic device based on RDMA. Background Technology

[0002] RDMA (Remote Direct Memory Access) is a technology that can bypass the CPU core of a remote host to access data in the CPU's memory. RDMA directly accesses the memory space of the remote host through a hardware offloading mechanism, achieving zero-copy data transmission, resulting in sub-microsecond ultra-low latency and significantly freeing up server CPU computing power.

[0003] In radar data processing scenarios, RDMA is gradually becoming a primary communication technology. However, it requires data transmission based on the FPGA's local memory. The typical approach is to first store the radar data in an external DDR (Double Data Rate Synchronous Dynamic Random Memory) block on the FPGA, and then instruct the FPGA to operate the RDMA controller to send the radar data stored in the DDR block to the remote host memory. If this approach requires a data transmission throughput of 100Gbps, the FPGA needs 200Gbps of DDR read / write bandwidth. Based on the DDR block read / write efficiency, the DDR block requires at least 250Gbps of bandwidth throughput, resulting in multiple DDR blocks, which increases system power consumption. Furthermore, buffering radar data in the DDR first, and then transmitting the entire data block to the remote host memory after buffering, significantly increases data transmission latency.

[0004] Therefore, how to improve the timeliness of radar data transmission using RDMA and reduce the latency of radar data transmission is a technical problem that needs to be solved by those skilled in the art. Summary of the Invention

[0005] The purpose of this invention is to solve the technical problem of high latency when using RDMA to transmit radar data in the prior art.

[0006] To achieve the above technical objectives, in one aspect, the present invention provides a radar data transmission method based on RDMA, the method comprising:

[0007] When the radar data stream corresponding to any queue reaches a preset size, the radar data stream is written into the buffer space to form the current data block to be transmitted, and a transmission request is submitted to the RDMA controller at the same time.

[0008] The RDMA controller arbitrates all send requests submitted by queue pairs and determines the data packet type of the data block to be sent based on the current operation command of the queue pair that succeeded in the arbitration.

[0009] Based on the data packet type, the current data block is packaged into data to be transmitted and then transmitted to the remote host through the RDMA controller.

[0010] Furthermore, the cache space is specifically a cache space shared by all queue pairs.

[0011] Furthermore, the method also includes allocating a storage address and binding management sequence number for each current data block based on an idle table position.

[0012] Furthermore, the method also includes:

[0013] Receive response information from the remote host in real time;

[0014] When the response information is an abnormal message, obtain the response packet sequence number in the response information, and at the same time obtain the start data packet sequence number and end data packet sequence number of the read pointer of the sending queue in the current queue pair;

[0015] The data block to be retransmitted is determined based on the response packet sequence number, the start data packet sequence number, and the end data packet sequence number.

[0016] Furthermore, the method also includes;

[0017] When the response information is normal, the read pointer position of the sending queue in the current queue is moved based on the relationship between the response packet sequence number, the start data packet sequence number, and the end data packet sequence number.

[0018] Furthermore, the method also includes:

[0019] The management sequence number corresponding to the current data block that has been transmitted is reclaimed, and the reclaimed management sequence number is placed in the idle queue pair so that the available buffer space is output when the idle queue pair receives a data request.

[0020] On the other hand, the present invention also provides an electronic device, including a memory, a processor, and a machine-executable program stored in the memory and running on the processor, wherein the processor executes the machine-executable program to implement the RDMA-based radar data transmission method as described above.

[0021] This invention provides a radar data transmission method and electronic device based on RDMA. The method includes: when the real-time input radar data stream for any queue pair reaches a preset size, writing the radar data stream into a buffer space to form a current data block to be transmitted, and simultaneously submitting a transmission request to the RDMA controller; then, the RDMA controller arbitrates the transmission requests submitted by all queue pairs, and determines the data packet type of the data block to be transmitted based on the current operation command of the successfully arbitrated queue pair; finally, based on the data packet type, the current data block is packaged into data to be transmitted and transmitted to a remote host through the RDMA controller. This effectively improves the timeliness of radar data transmission using RDMA and reduces the latency of radar data transmission. Attached Figure Description

[0022] To more clearly illustrate the technical solutions in the embodiments or prior art of this specification, the drawings used in the description of the embodiments or prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this specification. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0023] Figure 1 The diagram shown is a schematic flowchart of the radar data transmission method based on RDMA provided in the embodiments of this specification.

[0024] Figure 2 The diagram shown is a schematic diagram of radar data block transmission in an embodiment of this specification;

[0025] Figure 3 The diagram shown is an overall structural block diagram of radar data transmission based on RDMA provided in the embodiments of this specification. Detailed Implementation

[0026] To enable those skilled in the art to better understand the technical solutions in this specification, the technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments in this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0027] like Figure 1The diagram illustrates a flow chart of an RDMA-based radar data transmission method provided in an embodiment of this specification. While this specification provides the method operation steps or module structures shown in the embodiments or accompanying drawings, based on conventional methods or without creative effort, the method or apparatus may include more or fewer operation steps or module units after partial merging. In steps or structures where there is no logically necessary causal relationship, the execution order or module structure is not limited to the execution order or module structure shown in the embodiments or accompanying drawings. When the method or module structure is applied in actual devices, servers, or terminal products, it can be executed sequentially or in parallel according to the method or module structure shown in the embodiments or accompanying drawings (e.g., in a parallel processor or multi-threaded processing environment, or even in a distributed processing or server cluster implementation environment).

[0028] The radar data transmission method based on RDMA provided in the embodiments of this specification is as follows: Figure 1 As shown, the method specifically includes the following steps:

[0029] Step S101: When the radar data stream corresponding to any queue reaches a preset size, the radar data stream is written into the buffer space to form the current data block to be transmitted, and a transmission request is submitted to the RDMA controller.

[0030] Specifically, since there are requests for multiple QPs (Queue Pairs) to transmit data simultaneously, this invention performs multi-QP cache management on the FPGA's built-in BRAM / URAM. The cache space can be the FPGA's built-in BRAM / URAM or other external storage space. This application does not limit this. When the data block, i.e. the real-time input radar data stream, reaches a preset size, the corresponding queue object RDMA controller submits a transmission request. At the same time, it allocates a storage address and binding management sequence number for each current data block based on the free table.

[0031] Step S102: Arbitrate the transmission requests submitted by all queue pairs through the RDMA controller, and determine the data packet type of the data block to be transmitted based on the current operation command of the queue pair that was successfully arbitrated.

[0032] Specifically, a management sequence number is assigned to each current data block based on the free table. Simultaneously, data block requests from multiple QPs are arbitrated, allowing multiple QPs to transmit data concurrently. The granularity of data arbitration is the size of the segmented block, i.e., the preset size. The RDMA controller arbitrates the transmission requests of all queues, obtains the current operation command (the amount of remaining operation data stored) of the successfully arbitrated queue, determines the packet type for sending the data block, and sends the type according to the MTU (Maximum Transmission Unit). Based on the command size, the RDMA Write message type must be Write First (starting write request), Write Middle (intermediate write request), and finally Write Last (ending write request). Based on the data block size, the type of data packet sent for each data block is determined by the current data block's position within the entire command. For example, the first block is sent as Write First and Write Middle, the middle blocks are sent as Write Middle, and the last block is sent as Write Middle and Write Last. Figure 2 The diagram illustrates the block-based transmission of radar data. The current operation command is the WQE command, which specifies the size of the entire packet, for example, 1MB. The default block size is 4KB, thus determining the type of each data block. The first RDMA packet of the first 4KB block is "first," the last RDMA packet of the last 4KB block is "last," and the others are "middle."

[0033] Step S103: Based on the data packet type, the current data block is packaged into data to be transmitted and then transmitted to the remote host through the RDMA controller.

[0034] Specifically, after determining the data packet type, the current data block is packaged into data to be transmitted and then sent to the remote host through the RDMA controller or the transmit queue in the queue pair of the RDMA controller.

[0035] In this embodiment of the application, the method further includes:

[0036] Receive response information from the remote host in real time;

[0037] When the response information is an abnormal message, obtain the response packet sequence number in the response information, and at the same time obtain the start data packet sequence number and end data packet sequence number of the read pointer of the sending queue in the current queue pair;

[0038] The data block to be retransmitted is determined based on the response packet sequence number, the start data packet sequence number, and the end data packet sequence number.

[0039] When the response information is normal, the read pointer position of the sending queue in the current queue is moved based on the relationship between the response packet sequence number, the start data packet sequence number, and the end data packet sequence number.

[0040] Specifically, in real-world applications, transmission errors may occur, requiring retransmission. Retransmission necessitates reverting to the point where the lost fragment was transmitted. The transmission type of the data block depends on the position of the lost fragment within the overall command. For example, if the first packet is lost, the retransmitted data block would be Write First and Write Middle. If the retransmitted block does not include the first or last packet in the overall command, it should be Write Middle. If the retransmitted block includes the last packet, it should be Write Middle and Write Last, or only Write Last. For instance, if the transmitted data block is 4KB, with each block occupying 4 sequence numbers, and the already transmitted sequence numbers are block 1 (0-3), block 2 (4-7), block 3 (8-11), and block 4 (12-15), and the returned sequence number is 8, then blocks 3 and 4 need to be retransmitted.

[0041] This scheme handles WQE completion by recording the write pointer (WQE) position of the sent SQ send queue (SQ) for each QP queue pair, the internal block offset position of the WQE, and the responded read pointer (WQE) position. During data transmission, the following situations may occur:

[0042] 1. If no retransmission occurs and there is a request for a buffered data block, increase the internal block offset of WQE. If the current WQE is completed, increase the write pointer of SQ to the WQE position.

[0043] 2. After receiving the ACK of the normal response from the remote end, calculate the relationship between the response PSN (Packet Sequence Number) and the start PSN and end PSN of the current SQ's read pointer WQE. If the current read pointer WQE is completed, increment the SQ's read pointer WQE position.

[0044] 3. Upon receiving a NACK from the remote exception response, calculate the relationship between the response PSN and the start and end PSNs of the current SQ's read pointer WQE. Calculate the read pointer WQE position specified by the exception PSN and the block offset within the WQE. Retransmit from the exception packet offset of the exception response block.

[0045] WQE specifies the start and end sequence numbers of a command. The controller can process multiple WQEs consecutively. After receiving the response sequence numbers, it knows which WQEs have been completed. Incrementing the read pointer means incrementing the pointer to the WQEs that have not yet been completed.

[0046] For example: Queue position 0: WQE1: Sequence number is 0~10;

[0047] Queue position 1: WQE2: sequence number 11~20;

[0048] Queue position 2: WQE3: sequence number 21~30;

[0049] The response packet sequence number is 21, so the read pointer can be moved to queue position 2.

[0050] After each QP sends a data block, its dynamic cache management module records the sequence number of the sent data block and the starting PSN of the data block. After receiving the ACK from the remote end, the response processing module outputs the PSN of the response. The dynamic cache management module of the corresponding QP calculates and matches the position of the responded data block and releases the sequence number of the data block before the ACK. 4. The external user input cache management module dynamically collects the sequence number of the data block released by each QP and places it in the idle queue.

[0051] In this embodiment of the application, the method further includes:

[0052] The management sequence number corresponding to the current data block that has been transmitted is reclaimed, and the reclaimed management sequence number is placed in the idle queue pair so that the available buffer space is output when the idle queue pair receives a data request.

[0053] like Figure 3 The diagram shown is an overall structural block diagram of radar data transmission based on RDMA provided in the embodiments of this specification, which specifically includes:

[0054] 1. The packet parsing module processes data packets transmitted from the remote end, parses the data packets, and determines whether the data packets are valid.

[0055] (1) By parsing the contents of the remote RDMA Write / RDMA send data packets and the local RDMA read response data packets, the verified memory operation data is written to the BRAM / URAM cache via the AXI bus;

[0056] (2) By parsing the remote RDMA read data packet, the correct request is parsed, the data in the BRAM / URAM cache is read through the AXI bus, and the data is output through the AXIS bus;

[0057] (3) By parsing the contents of the RDMA ack data packet, output ack / nack information to the response processing module.

[0058] 2. The response processing module compares the PSN information of ack / nack with the PSN information of the WQE to be completed, writes the CQE (completion information) into the URAM / BRAM via the AXI bus, and outputs the PSN information of the completed WQE or the WQE that needs to be retried to the QP dynamic cache management module.

[0059] 3. The QP queue maintenance module maintains the queue information for all QPs. It reads the WQE content of the SQ queues of all QPs via the AXI bus.

[0060] 4. The QP dynamic management module processes the WQE output by the QP queue maintenance module, receives data block sending requests from the user input cache management module, and outputs command data block requests to the WQE command processing module; it also receives PSN information output by the response processing module and outputs released data blocks to the user input cache management module.

[0061] 5. The user input cache management module processes the AXIS data input by the user, stores it in the BRAM / URAM cache through the AXI bus, then requests a data block from the idle queue, and finally sends the data block request to the QP dynamic cache management module.

[0062] 6. The WQE command processing module receives command data block requests, acquires data through the AXI bus, and then organizes RDMAWrite, RDMA Send, or RDMA read type packets for output.

[0063] 7. The BRAM / URAM module is used to cache queue information processed by the RDMA controller and buffer transmit and receive data. Multiple AXI bus requests from the RDMA controller can be interconnected through the AXI interconnect unit (AXI standard interconnect unit).

[0064] Based on the aforementioned RDMA-based radar data transmission method, one or more embodiments of this specification also provide an RDMA-based radar data transmission platform or terminal. This platform or terminal may include devices, software, modules, plug-ins, servers, clients, etc., using the methods described in the embodiments of this specification, combined with necessary hardware implementation. Based on the same innovative concept, the systems in one or more embodiments provided in this specification are as described in the following embodiments. Since the implementation schemes and methods for solving the system problem are similar, the specific system implementations in the embodiments of this specification can refer to the implementation of the aforementioned methods. Repeated details will not be repeated. The terms "unit" or "module" used below can refer to a combination of software and / or hardware that achieves a predetermined function. Although the systems described in the following embodiments are preferably implemented in software, hardware implementations, and a combination of software and hardware, are also possible and contemplated.

[0065] It should be noted that the above system may include other implementation methods according to the description of the corresponding method embodiments. The specific implementation methods can be referred to the description of the corresponding method embodiments above, and will not be elaborated here.

[0066] This application also provides an electronic device, including:

[0067] processor;

[0068] Memory used to store the processor's executable instructions;

[0069] The processor is configured to perform the methods provided in the embodiments described above.

[0070] The electronic device provided in this application stores executable instructions for the processor in a memory. When the processor executes these instructions, it can write the radar data stream into a buffer space to form a current data block to be transmitted when the real-time input radar data stream for any queue pair reaches a preset size, and simultaneously submit a transmission request to the RDMA controller. Then, the RDMA controller arbitrates the transmission requests submitted by all queue pairs and determines the data packet type of the data block to be transmitted based on the current operation command of the successfully arbitrated queue pair. Finally, based on the data packet type, the current data block is packaged into data to be transmitted and transmitted to a remote host through the RDMA controller. This effectively improves the timeliness of transmitting radar data using RDMA and reduces the latency of transmitting radar data.

[0071] The foregoing has described specific embodiments of this specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims may be performed in a different order than that shown in the embodiments and may still achieve the desired result. Furthermore, the processes depicted in the drawings do not necessarily require the specific or sequential order shown to achieve the desired result. In some embodiments, multitasking and parallel processing are possible or may be advantageous.

[0072] The methods or apparatus described in the above embodiments of this specification can implement business logic through a computer program and record it on a storage medium. The storage medium can be read and executed by a computer to achieve the effects of the solutions described in the embodiments of this specification, such as:

[0073] When the radar data stream corresponding to any queue reaches a preset size, the radar data stream is written into the buffer space to form the current data block to be transmitted, and a transmission request is submitted to the RDMA controller at the same time.

[0074] The RDMA controller arbitrates all send requests submitted by queue pairs and determines the data packet type of the data block to be sent based on the current operation command of the queue pair that succeeded in the arbitration.

[0075] Based on the data packet type, the current data block is packaged into data to be transmitted and then transmitted to the remote host through the RDMA controller.

[0076] The storage medium can include physical devices for storing information, typically digitizing the information and then storing it using electrical, magnetic, or optical methods. The storage medium can include: devices that store information using electrical energy, such as various types of memory, like RAM and ROM; devices that store information using magnetic energy, such as hard disks, floppy disks, magnetic tapes, magnetic core memory, bubble memory, and USB flash drives; and devices that store information using optical methods, such as CDs or DVDs. Of course, there are other readable storage media, such as quantum memories and graphene memories.

[0077] The embodiments in this specification are not limited to conforming to industry communication standards, standard computer resource data update and data storage rules, or the situations described in one or more embodiments of this specification. Slightly modified implementations based on certain industry standards or custom methods or embodiments can also achieve the same, equivalent, or similar, or predictable, implementation effects as described above. Embodiments that utilize these modified or modified methods for data acquisition, storage, judgment, and processing still fall within the scope of optional implementations of the embodiments in this specification.

[0078] The controller can be implemented in any suitable manner. For example, it can take the form of a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, application-specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers. Examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicon Labs C8051F320. A memory controller can also be implemented as part of the control logic of the memory. Those skilled in the art will also recognize that, in addition to implementing the controller in purely computer-readable program code form, the same functionality can be achieved by logically programming the method steps to make the controller take the form of logic gates, switches, ASICs, programmable logic controllers, and embedded microcontrollers. Therefore, such a controller can be considered a hardware component, and the means included therein for implementing various functions can also be considered as structures within the hardware component. Alternatively, the means for implementing various functions can be considered as both software modules implementing the method and structures within the hardware component.

[0079] The device embodiments described above are merely illustrative. For example, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or plug-ins may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, indirect coupling or communication connection between devices or units, and may be electrical, mechanical, or other forms.

[0080] These computer program instructions can also be loaded onto a computer or other programmable resource data updating device, causing a series of operational steps to be performed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable device for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0081] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, system embodiments are basically similar to method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments. In the description of this specification, the terms "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., refer to specific features, structures, materials, or characteristics described in connection with that embodiment or example, which are included in at least one embodiment or example of this specification. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described can be combined in any suitable manner in one or more embodiments or examples. Moreover, without contradiction, those skilled in the art can combine and integrate the different embodiments or examples described in this specification and the features of different embodiments or examples.

[0082] Those skilled in the art will recognize that the embodiments described herein are intended to help the reader understand the principles of the invention, and should be understood that the scope of protection of the invention is not limited to such specific statements and embodiments. Those skilled in the art can make various other specific modifications and combinations based on the technical teachings disclosed in this invention without departing from the spirit of the invention, and these modifications and combinations are still within the scope of protection of this invention.

Claims

1. A radar data transmission method based on RDMA, characterized in that, The method includes: When the radar data stream corresponding to any queue reaches a preset size, the radar data stream is written into the buffer space to form the current data block to be transmitted, and a transmission request is submitted to the RDMA controller at the same time. The RDMA controller arbitrates all send requests submitted by queue pairs and determines the data packet type of the data block to be sent based on the current operation command of the queue pair that succeeded in the arbitration. Based on the data packet type, the current data block is packaged into data to be transmitted and then transmitted to the remote host through the RDMA controller.

2. The radar data transmission method based on RDMA as described in claim 1, characterized in that, The cache space is specifically a cache space shared by all queue pairs.

3. The radar data transmission method based on RDMA as described in claim 1, characterized in that, The method also includes allocating a storage address and binding management sequence number to each current data block based on a free table.

4. The radar data transmission method based on RDMA as described in claim 1, characterized in that, The method further includes: Receive response information from the remote host in real time; When the response information is an abnormal message, obtain the response packet sequence number in the response information, and at the same time obtain the start data packet sequence number and end data packet sequence number of the read pointer of the sending queue in the current queue pair; The data block to be retransmitted is determined based on the response packet sequence number, the start data packet sequence number, and the end data packet sequence number.

5. The radar data transmission method based on RDMA as described in claim 4, characterized in that, The method further includes; When the response information is normal, the read pointer position of the sending queue in the current queue is moved based on the relationship between the response packet sequence number, the start data packet sequence number, and the end data packet sequence number.

6. The radar data transmission method based on RDMA as described in claim 1, characterized in that, The method further includes: The management sequence number corresponding to the current data block that has been transmitted is reclaimed, and the reclaimed management sequence number is placed in the idle queue pair so that the available buffer space is output when the idle queue pair receives a data request.

7. An electronic device comprising a memory, a processor, and a machine-executable program stored in the memory and running on the processor, wherein the processor, when executing the machine-executable program, implements the RDMA-based radar data transmission method according to any one of claims 1 to 6.