A data transmission control method and system
By designing a data transmission control method and system, using components such as FPGA and UDP message interaction modules, low latency and large traffic transmission of external module data during RDMA communication is realized, which solves the problem of resource limitation on the acquisition side and improves system performance and adaptability.
Patent Information
- Application Number
- CN202510477940.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-16
- Publication Date
- 2025-06-17
- Estimated Expiration
- 2045-04-16
AI Technical Summary
How to implement low latency, large-flow data configuration and control of external module data during RDMA communication, especially in scenarios where computing resources, storage resources, cost and power consumption are limited on the acquisition side.
By designing a data transmission control method and system, the system includes an FPGA cache management module, a UDP message interaction module and a software and hardware interaction information configuration module, the configuration of hardware resources and data transmission management are realized. This method uses FPGA for initialization, generates a chain-building data packet, establishes a data connection between the requesting end and the response end, and realizes low-latency and large-traffic data transmission through the UDP packet interaction module and the software and hardware interaction information configuration module.
It realizes large-capacity transmission of external module data, reduces the delay during data transmission, improves the overall performance of system data processing, and supports RQE queue number update and data transmission control, adapting to complex heterogeneous scenarios.
Smart Images

Figure CN120017603B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of embedded RDMA technology, and more specifically, to a data transmission control method and system. Background Art
[0002] With the rapid development and wide application of technologies such as industrial Internet of Things, the requirements of device systems for quickly and sensitively perceiving various sensing data and responding to environmental changes are increasing. In addition, for the scenario requirements of long-term high-frequency acquisition and detection of a large number of sensing devices, high-speed sensing data acquisition often has characteristics such as a large amount of data transmission, high transmission bandwidth requirements, and fast processing speed requirements at the computing end. A high-speed sensing data acquisition system usually consists of three parts: a sensor at the acquisition end for real-time acquisition (such as radar, camera, etc.), a computing end for processing sensor data, and a storage end for storing sensing data.
[0003] RDMA (Remote Direct Memory Access) technology allows user programs to bypass the kernel and directly communicate with the network card, and directly transfer data to the storage area of the computer through the network connection, quickly moving the data. During this process, it will not have any impact on the operating system and reduces the CPU load. Compared with traditional bus communication methods (such as USB, CAN, LVDS, etc.), this technology is more suitable for high-speed sensing data acquisition and applications in feedback control latency-sensitive environments, and at the same time releases a large amount of resources at the computing end for algorithm execution deployment and behavior decision-making. However, the embedded RDMA end system is still in its infancy, and there is no relatively complete and mature solution in the industrial and academic circles to adapt to the scenario characteristics of limited resources, cost, power consumption, and volume at the acquisition end of the embedded RDMA end system.
[0004] Currently, the main mainstream implementation methods of RDMA are IB (InfiniBand), RoCE (RDMA over Converged Ethernet), and iWARP. Among them, IB is mainly applied to the field of high-performance computing. Although it can provide the best performance, it customizes the entire set of specifications from the link layer to the transport layer, requires dedicated network cards and switches, is not compatible with Ethernet, and is expensive. iWARP is compatible with Ethernet, but it needs to unload the entire TCP / IP protocol stack to the hardware, but is limited by high cost and high complexity. In comparison, RoCE has the advantages of lower implementation complexity and cost and higher performance. Applying it to a high-speed sensing data acquisition system can support network transmission with multi-source sensor access, high bandwidth, low latency, high reliability, and low CPU overhead, meeting the requirements of high-speed sensing data acquisition. However, due to limited computing resources, storage resources, cost, power consumption, etc. at the acquisition end, commercial standard RDMA network cards cannot be directly used, and an external embedded RDMA end system needs to be connected to implement RDMA communication-related functions.
[0005] Therefore, how to achieve low-latency and high-throughput data configuration and control of external module data (such as radar data, camera data, etc.) during the RDMA communication process is a technical problem that those skilled in the art urgently need to solve. Summary of the Invention
[0006] To solve the above technical problem, the present application provides a data transmission control method, which can achieve low-latency and high-throughput data configuration and control of external module data (such as radar data, camera data, etc.) during the RDMA communication process. The present application also provides a data transmission control system with the same technical effect.
[0007] The first object of the present application is to provide a data transmission control method.
[0008] The above object one of the present application is achieved through the following technical solutions:
[0009] A data transmission control method is applied to a data transmission control system, wherein the data transmission control system includes an FPGA cache management module 10, a UDP message interaction module 20, and a software-hardware interaction information configuration module 30 that are connected in sequence. The method includes:
[0010] Using the FPGA cache management module 10 to perform initialization to obtain initialization resources, and provide a configuration interface and a query interface;
[0011] Using the UDP message interaction module 20 to call the initialization resources of the FPGA cache management module 10 to generate a link establishment data packet, and create a data structure for the data packet to be received by the response end, and establish a data connection between the request end and the response end;
[0012] Using the software-hardware interaction information configuration module 30 to call the query interface and the link establishment data packet to obtain configuration information, and then construct a request message according to the configuration information and send it to the hardware, and parse the response message returned by the hardware;
[0013] Using the software-hardware interaction information configuration module 30 to control the hardware to send external data to the response end;
[0014] When the response end needs to update the number of RQE queues, the hardware will generate an RQE queue update message and send it to the request end, and notify the response end to update the number of RQE queues through the UDP message interaction module 20;
[0015] When the response end needs to control data transmission, the response end sends a UDP packet carrying a control field, and uses the UDP packet interaction module 20 to transmit the UDP packet to the request end. The request end extracts the control field in the UDP packet, sends the control field to the software and hardware interaction information configuration module 30, and uses the software and hardware interaction information configuration module 30 to control the hardware to execute a control operation according to the control field.
[0016] Preferably, the software and hardware interaction information configuration module 30 includes a network card hardware driver sub-module 31 and a NACP packet encapsulation and parsing sub-module 32. Using the software and hardware interaction information configuration module 30 to call the query interface and the link establishment data packet to obtain configuration information, and then constructing a request packet according to the configuration information and sending it to the hardware, and parsing the response packet returned by the hardware, including:
[0017] Using the network card hardware driver sub-module 31 to call the query interface and the link establishment data packet to obtain configuration data;
[0018] Using the NACP packet encapsulation and parsing sub-module 32 to construct a request packet according to the configuration data and send it to the hardware to complete the read and write request operation through interaction with the hardware;
[0019] Using the NACP packet encapsulation and parsing sub-module 32 to parse the response packet returned by the hardware.
[0020] Preferably, use the NACP packet encapsulation and parsing sub-module to verify the response packet;
[0021] If the verification fails, return to re-execute the step of using the NACP packet encapsulation and parsing sub-module 32 to construct a request command packet according to the configuration data and send it to the hardware.
[0022] Preferably, use the UDP packet interaction module 20 to add a verification field to the UDP packet. When the request end receives the UDP response packet from the response end, verify the verification field. If the verification fails, trigger the retransmission mechanism. If the set retransmission times are exceeded, interrupt the transmission.
[0023] Preferably, use the UDP packet interaction module 20 to query the number N of RQEs corresponding to the QPN data and notify the response end to update the number N.
[0024] The second object of this application is to provide a data transmission system based on RDMA.
[0025] The above-mentioned second application object of this application is achieved through the following technical solutions:
[0026] A data transmission control system includes an FPGA cache management module 10, a UDP message interaction module 20, and a software-hardware interaction information configuration module 30 that are connected in sequence, where:
[0027] The FPGA cache management module 10 is used to perform initialization to obtain initialization resources and provide a configuration interface and a query interface;
[0028] The UDP message interaction module 20 is used to call the initialization resources of the FPGA cache management module 10, generate a link establishment data packet, create a data structure for the data to be received by the response end, and establish a data connection between the request end and the response end;
[0029] The software-hardware interaction information configuration module 30 is used to call the query interface and the link establishment data packet to obtain configuration information, and then construct a request message according to the configuration information and send it to the hardware, and parse the response message returned by the hardware;
[0030] The software-hardware interaction information configuration module 30 is further used to control the hardware to send external data to the response end;
[0031] The UDP message interaction module 20 is further used to, when the response end needs to update the RQE queue number and the hardware generates an RQE queue update message and sends it to the request end, notify the response end to update the RQE queue number;
[0032] The UDP message interaction module 20 is further used to, when the response end needs to perform data transmission control and the response end sends a UDP type message carrying a control field, transmit the UDP type message to the request end;
[0033] The software-hardware interaction information configuration module 30 is further used to extract the control field in the UDP type message at the request end, send the control field to the software-hardware interaction information configuration module 30, and then control the hardware to perform a control operation according to the control field.
[0034] Preferably, the software-hardware interaction information configuration module 30 includes a network card hardware driver sub-module 31 and a NACP message encapsulation and parsing sub-module 32, where:
[0035] The network card hardware driver sub-module 31 is used to call the query interface and the link establishment data packet to obtain configuration data;
[0036] The NACP message encapsulation and parsing sub-module 32 is used to construct a request message according to the configuration data and send it to the hardware, and complete the read and write request operations through interaction with the hardware;
[0037] The NACP message encapsulation and parsing sub-module 32 is further configured to parse the response message returned by the hardware.
[0038] Preferably, the NACP message encapsulation and parsing sub-module is further configured to verify the response message;
[0039] When the verification of the response message fails, the NACP message encapsulation and parsing sub-module is further configured to re-execute the operation of constructing a request message according to the configuration data, sending the request message to the hardware, and completing the read / write request operation through interaction with the hardware.
[0040] Preferably, the UDP message interaction module 20 is further configured to add a verification field to the UDP message. When the request end receives the UDP response message from the response end, it verifies the verification field. If the verification fails, it triggers the retransmission mechanism. If the set retransmission times are exceeded, the transmission is interrupted.
[0041] Preferably, the UDP message interaction module 20 is further configured to query the number N of RQEs corresponding to the QPN data and notify the response end to update the number N.
[0042] This application completes the configuration of the data resources required by the hardware, completes the transfer and transmission of data according to the RDMA processing logic, realizes the large-capacity transmission of data of the external module, and improves the overall performance of the system data processing; through the data and configuration methods provided by the UDP message interaction module 20 and the software and hardware interaction information configuration module 30, the number of software and hardware interactions is reduced, and the delay during data transmission is reduced; by identifying the message type, RQE update and system transmission control processing can be realized according to different command types. Description of the Drawings
[0043] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings required to be used in the description of the embodiments or the prior art. Obviously, the drawings in the following description are only some embodiments recorded in the present application. For those of ordinary skill in the art, without creative efforts, other drawings can be obtained according to these drawings.
[0044] Figure 1 It is a schematic diagram of a data transmission control method in an embodiment of the present application;
[0045] Figure 2 It is a schematic diagram of a data transmission control system in an embodiment of the present application;
[0046] Among them, FPGA cache management module - 10, UDP message interaction module - 20, software and hardware interaction information configuration module - 30, network card hardware driver sub-module - 31, NACP message encapsulation and parsing sub-module - 32. Detailed implementation manners
[0047] To make the objectives, technical solutions, and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present application. Apparently, the described embodiments are some, but not all, of the embodiments of the present application. All other embodiments obtained by those of ordinary skill in the art based on the embodiments in the present application without creative efforts shall fall within the protection scope of the present application.
[0048] In addition, the technical features in each embodiment or a single embodiment provided by the present application can be combined with each other arbitrarily to form a feasible technical solution. Such combination is not restricted by the order of steps and / or the structural composition mode, but must be based on what can be achieved by those of ordinary skill in the art. When the combination of technical solutions results in contradictions or cannot be implemented, it should be considered that such combination of technical solutions does not exist and is not within the protection scope required by the present application.
[0049] In the embodiments provided by the present application, it should be understood that the disclosed methods and systems can be implemented in other ways. The system embodiments described below are only illustrative. For example, the division of units and modules is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or modules can be combined, or can be integrated into another system, or some features can be ignored, or not executed. In addition, the coupling, direct coupling, or communication connection between the components shown or discussed with each other can be through some interfaces, indirect coupling or communication connection of devices or modules, and can be electrical, mechanical, or other forms.
[0050] In addition, each functional unit in the embodiments of the present application can be all integrated in a processor, or each unit can be separately used as a device, or two or more units can be integrated in a device; each functional unit in the embodiments of the present application can be implemented in the form of hardware, or in the form of a combination of hardware and software functional units.
[0051] Those of ordinary skill in the art can understand that all or part of the steps for implementing the following method embodiments can be completed through program instructions and relevant hardware. The foregoing program instructions can be stored in a computer-readable storage medium. When the program instructions are executed, the steps of the following method embodiments are executed; and the foregoing storage medium includes various media that can store program codes, such as removable storage devices, read-only memory (ROM), magnetic disks, or optical discs.
[0052] It should be understood that in this application, if terms such as "system", "device", "unit" and / or "module" are used, they are only a way to distinguish different components, elements, parts, portions or assemblies at different levels. However, if other terms can achieve the same purpose, they can be replaced by other expressions.
[0053] In addition, the terms "first" and "second" are only used for descriptive purposes and should not be construed as indicating or implying relative importance or implicitly specifying the quantity of the indicated technical features. Thus, features defined with "first" and "second" may explicitly or implicitly include one or more of such features. In the description of this application, the meaning of "a plurality of" and "several" is two or more, unless otherwise specifically defined.
[0054] It should be noted that the structures, ratios, sizes, etc. shown in the drawings of this specification are only used to cooperate with the content disclosed in the specification for those skilled in this technology to understand and read, and are not used to limit the limiting conditions under which this application can be implemented. Therefore, they do not have a substantial technical meaning. Any modification of the structure, change of the proportional relationship or adjustment of the size, without affecting the effects that this application can produce and the purposes that can be achieved, should still fall within the scope covered by the technical content disclosed in this application.
[0055] If a flowchart is used in this application, the flowchart is used to illustrate the operations performed by the system according to the embodiments of this application. It should be understood that the previous or subsequent operations do not necessarily need to be executed precisely in sequence. On the contrary, they can be executed in reverse order or simultaneously. At the same time, other operations can also be added to these processes, or one or several steps of operations can be removed from these processes.
[0056] It should also be noted that in this article, terms such as "including", "comprising" or any other variant thereof are intended to cover non-exclusive inclusion, so that an article or device including a series of elements not only includes those elements, but also includes other elements not explicitly listed, or also includes elements inherent to such an article or device. Without further limitation, an element defined by the statement "including one..." does not exclude the existence of another identical element in the article or device including the above elements.
[0057] The embodiments of this application are written in a progressive manner.
[0058] As Figure 1 、 Figure 2 shown, the embodiments of this application provide a data transmission control method, which is applied to a data transmission control system. Among them, the data transmission control system includes an FPGA cache management module 10, a UDP message interaction module 20, and a software and hardware interaction information configuration module 30 that are connected in sequence, and includes:
[0059] S1. Initialize using the FPGA cache management module 10 to obtain initialization resources, and provide a configuration interface and a query interface.
[0060] Specifically, initialize using the FPGA cache management module 10 to obtain initialization resources. The initialization resources may include sequence pairs and address information of QP corresponding data, storage space regions corresponding to various types of data, and the size of the storage space used. The initialization resources also include a Queue Pair (QP) data structure, such as: QP number (QPN), starting address of the DDR space, length of the transmission data space, QP status flag, initialize the sequence pair (Sequence Pair) and address information of the QP, and register the data storage area and its size interface. The provided configuration interface is used to set QP parameters, and the query interface is used to obtain QP status and storage area information.
[0061] S2. Use the UDP packet interaction module 20 to call the initialization resources of the FPGA cache management module 10, generate a link establishment data packet, and create a data structure for the data packet to be received from the response end, and establish a data connection between the request end and the response end.
[0062] Specifically, call the resources initialized by the FPGA cache management module 10 to generate a link establishment data packet. The request end sends a link establishment request through the UDP packet sending module and creates a data structure for the data packet to be received from the response end. After parsing the request packet, the response end returns an acknowledgment packet containing the remote QPN and stores the remote QPN in the specified data structure. The link establishment data packet includes: local QPN, DDR start address, transmission data length, etc.
[0063] S3. Use the software and hardware interaction information configuration module 30 to call the query interface and the link establishment data packet to obtain configuration information, and then construct a request packet according to the configuration information and send it to the hardware, and parse the response packet returned by the hardware.
[0064] Specifically, use the software and hardware interaction information configuration module 30 to call the query interface and the link establishment data packet to obtain configuration information, and then construct and send a request packet with the configuration information. The response end consumes the receive queue entry (RQE) after receiving the data and parses the returned response packet.
[0065] The configuration information includes: QPC configuration, acquisition and transmission configuration, and QP status update, etc.
[0066] S4. Use the software and hardware interaction information configuration module 30 to control the hardware to send external data to the response end.
[0067] Specifically, the external data includes: externally connected radar, camera video data, etc.
[0068] S5. When the responder needs to update the number of RQE queues, the hardware generates an RQE queue update message and sends it to the requester, and notifies the responder to update the number of RQE queues through the UDP message interaction module 20;
[0069] Specifically, after the responder consumes a certain number of receive queue entries (RQEs) after receiving data, the responder needs to update the number of RQE queues. The hardware generates an RQE queue update message and sends it to the requester. The requester queries the RQE quantity corresponding to the QPN, and notifies the responder to update the storage area through the UDP interaction module, thereby realizing the large-capacity transmission of external module data and improving the overall performance of system data processing.
[0070] S6. When the responder needs to perform data transmission control, the responder sends a UDP-type message carrying a control field, and uses the UDP message interaction module 20 to transmit the UDP-type message to the requester. The requester extracts the control field in the UDP-type message, sends the control field to the software and hardware interaction information configuration module 30, and uses the software and hardware interaction information configuration module 30 to control the hardware to execute control operations according to the control field.
[0071] Specifically, when the responder needs to perform data transmission control, the responder sends a UDP-type message carrying a control field, which is transmitted to the requester through the UDP message interaction module 20. The requester extracts the control field in the UDP-type message, sends the control field to the software and hardware interaction information configuration module 30, and uses the software and hardware interaction information configuration module 30 to encapsulate the control instruction into an NACP command and send it to the hardware to control the hardware to execute control operations, realizing the dynamic management of the data transmission process.
[0072] Through the above steps, the configuration of the data resources required by the hardware is realized, the data is carried and transmitted according to the RDMA processing logic, the large-capacity transmission of external module data is realized, and the overall performance of system data processing is improved; the number of software and hardware interactions is reduced, and the delay in the data transmission process is reduced; the RQE update and system transmission control processing are realized according to different command types.
[0073] In some other embodiments, the software and hardware interaction information configuration module 30 includes a network card hardware driver sub-module 31 and an NACP message encapsulation and parsing sub-module 32. When executing the software and hardware interaction information configuration module 30, calling the query interface and the link establishment data packet to obtain configuration information, and then constructing a request message according to the configuration information and sending it to the hardware, and parsing the response message returned by the hardware, including:
[0074] S31. Using the network card hardware driver sub-module 31, calling the query interface and the link establishment data packet to obtain configuration data;
[0075] The configuration data includes: QP context (QPC), transmission mode (such as continuous transmission or burst transmission), and DMA channel parameters; the QP status (such as "ready" or "error") is updated in real time.
[0076] S32. Use the NACP message encapsulation and parsing sub-module 32 to construct a request message according to the configuration data and send it to the hardware, and complete the read / write request operation through interaction with the hardware.
[0077] S33. Use the NACP message encapsulation and parsing sub-module 32 to parse the response message returned by the hardware.
[0078] Specifically, use the NACP message encapsulation and parsing sub-module to encapsulate and construct a request command according to the configuration data initialized by the hardware. The request command encapsulated according to different configuration data includes frame type (such as control frame, data frame), operation type (read / write), and target address. The NACP request message interacts with the hardware and parses the response message returned by the hardware.
[0079] In some other embodiments, after using the NACP message encapsulation and parsing sub-module 32 to parse the response message returned by the hardware, it further includes using the NACP message encapsulation and parsing sub-module 32 to check the response message.
[0080] If the check fails, return to re-execute using the NACP message encapsulation and parsing sub-module 32.
[0081] According to the configuration data, construct a request command message and send it to the hardware.
[0082] Specifically, when the check fails, use the NACP message encapsulation and parsing sub-module 32 to reconstruct a request command message, and continue to check the consistency of the check frame type, data length, and check field of the returned message according to the response message returned by the hardware until it is successful or reaches the threshold, so as to ensure the integrity and correctness of the transmitted configuration data.
[0083] In some other embodiments, use the UDP message interaction module 20 to add a check field (such as CRC32) to the UDP message. When the request end receives the UDP response message from the response end, check the check field. If the check fails, trigger the retransmission mechanism. If the set retransmission times are exceeded, interrupt the transmission.
[0084] Specifically, when the requesting end receives the UDP response message from the responding end, after parsing the request message, it returns an acknowledgment message containing the remote QPN. The requesting end verifies the checksum field. If the verification fails, it triggers a retransmission mechanism (the maximum number of retransmissions can be configured). If the set number of retransmissions is exceeded, the transmission is interrupted. After successful verification, the remote QPN is stored in a specified data structure to ensure the accuracy and reliability of data interaction.
[0085] In some other embodiments, one implementation manner of the step of notifying the responding end to update the RQE queue quantity through the UDP message interaction module 20 specifically includes: using the UDP message interaction module 20 to query the quantity N of RQEs corresponding to the QPN data, and notifying the responding end to update the quantity N.
[0086] The embodiment of the present application provides a data transmission control method, centered on the application layer, which issues resource configurations to the hardware logic to achieve low-latency and large-flow communication of the collected sensing data from end to end by the system.
[0087] As Figure 2 shown, the embodiment of the present application also provides a data transmission control system, including an FPGA cache management module 10, a UDP message interaction module 20, and a software and hardware interaction information configuration module 30 that are connected in sequence, where:
[0088] The FPGA cache management module 10 initializes to obtain initialization resources and provides a configuration interface and a query interface;
[0089] The UDP message interaction module 20 is used to call the initialization resources of the FPGA cache management module 10, generate a link establishment data packet, and create a data structure for waiting to receive the message from the responding end to establish a data connection between the requesting end and the responding end;
[0090] The software and hardware interaction information configuration module 30 is used to call the query interface and the link establishment data packet to obtain configuration information, construct and send a request message with the configuration information, and parse the response message returned by the hardware;
[0091] The software and hardware interaction information configuration module 30 is also used to call the query interface and the link establishment data packet to obtain configuration information, then construct and send a request message with the configuration information, and parse the response message returned by the hardware;
[0092] The software and hardware interaction information configuration module 30 is also used to control the hardware to send external data to the responding end;
[0093] The UDP message interaction module 20 is also used to notify the responding end to update the RQE queue quantity after the hardware generates an RQE queue update message and sends it to the requesting end when the responding end needs to update the RQE queue quantity;
[0094] The UDP packet interaction module 20 is further configured to, when the responder needs to control data transmission and after the responder sends a UDP packet carrying a control field, transmit the UDP packet to the requester;
[0095] The software-hardware interaction information configuration module 30 is further configured to extract the control field in the UDP packet at the requester, and after sending the control field to the software-hardware interaction information configuration module 30, control the hardware to execute a control operation according to the control field, so as to realize the dynamic management of the data transmission process.
[0096] In some other embodiments, the software-hardware interaction information configuration module 30 includes a network card hardware driver sub-module 31 and an NACP packet encapsulation and parsing sub-module 32, specifically:
[0097] The network card hardware driver sub-module 31 is configured to obtain configuration data through the FPGA cache management module 10 and the UDP packet interaction module 20, and configure the hardware;
[0098] The NACP packet encapsulation and parsing sub-module 32 is further configured to encapsulate and construct a request command according to the configuration data of the hardware initialization, and complete the read and write request operations by interacting with the hardware according to the request commands encapsulated with different configuration data.
[0099] In some other embodiments, the NACP packet encapsulation and parsing sub-module 32 is configured to parse the response packet returned by the hardware and verify the response packet;
[0100] The NACP packet encapsulation and parsing sub-module 32 is further configured to, when the verification of the response packet fails, re-execute the construction of a request packet according to the configuration data and send it to the hardware, and complete the read and write request operations by interacting with the hardware.
[0101] In some other embodiments, the UDP packet interaction module 20 is further configured to add a verification field (such as CRC32) to the UDP packet. When the requester receives the UDP response packet from the responder, verify the verification field. If the verification fails, trigger a retransmission mechanism. If the set retransmission times are exceeded, interrupt the transmission. After the verification is successful, store the remote QPN in a specified data structure, so as to ensure the accuracy and integrity of the data transmission.
[0102] In some other embodiments, the UDP packet interaction module 20 is also used for one implementation method of notifying the responder to update the RQE queue quantity. Specifically, it includes: using the UDP packet interaction module 20 to query the quantity N of the RQE corresponding to the QPN data, and notifying the responder to update the quantity N.
[0103] A data transmission control method and system proposed in an embodiment of the present application ensure the accuracy of link establishment and data transmission through UDP checksum fields and retransmission mechanisms. Based on RDMA-based DDR direct access and software-hardware collaborative configuration, it reduces data copy overhead, supports plug-and-play of external modules and dynamic update of RQEs, adapts to complex heterogeneous scenarios, and realizes fine-grained configuration and management of hardware resources through the NACP message encapsulation and parsing sub-module 32.
[0104] The above description of the disclosed embodiments enables those skilled in the art to implement or use the present application. Various modifications to these embodiments will be obvious to those skilled in the art, and the general principles defined herein can be implemented in other embodiments without departing from the spirit or scope of the present application. Therefore, the present application will not be limited to the embodiments shown herein, but rather to the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A data transmission control method, characterized in that: Applied to a data transmission control system, wherein the data transmission control system comprises an FPGA cache management module (10), a UDP message interaction module (20), and a software and hardware interaction information configuration module (30) which are connected in sequence, and the method comprises: Using the FPGA cache management module (10) to perform initialization, obtain initialization resources, and provide a configuration interface and a query interface; Utilizing the UDP message interaction module (20), calling the initialization resources of the FPGA cache management module (10), generating a link building data packet, creating a data structure of a response end message to be received, and establishing a data connection between the request end and the response end; Using the software and hardware interaction information configuration module (30), calling the query interface and the link establishment data packet to obtain configuration information, then constructing a request message based on the configuration information and sending it to the hardware, and parsing a response message returned by the hardware; Using the software and hardware interaction information configuration module (30), controlling the hardware to send external data to the response end; When the responding end needs to update the number of RQE queues, the hardware generates an RQE queue update message and sends it to the requesting end, and notifies the responding end to update the number of RQE queues through the UDP message interaction module (20); When the responding end needs to perform data transmission control, the responding end sends a UDP type message carrying a control field, and uses the UDP message interaction module (20) to transmit the UDP type message to the requesting end. The requesting end extracts the control field in the UDP type message, sends the control field to the software and hardware interaction information configuration module (30), and uses the software and hardware interaction information configuration module (30) to control the hardware to perform a control operation according to the control field.
2. The data transmission control method according to claim 1, characterized in that: The software and hardware interaction information configuration module (30) comprises a network card hardware driver submodule (31) and a NACP message encapsulation and parsing submodule (32). The software and hardware interaction information configuration module (30) is used to call the query interface and the link establishment data packet to obtain configuration information, and then a request message is constructed according to the configuration information and sent to the hardware, and a response message returned by the hardware is parsed, including: Using the network card hardware driver submodule (31), calling the query interface and the link establishment data packet to obtain configuration data; Using the NACP message encapsulation and parsing submodule (32), according to the configuration data, a request message is constructed and sent to the hardware, and the read and write request operations are completed by interacting with the hardware; The NACP message encapsulation and parsing submodule (32) is used to parse the response message returned by the hardware.
3. The data transmission control method according to claim 2, characterized in that: After parsing the response message returned by the hardware by using the NACP message encapsulation and parsing submodule, the method further includes: Using the NACP message encapsulation and parsing submodule (32) to verify the response message; If the verification fails, the process returns to re-execute the step of utilizing the NACP message encapsulation and parsing submodule (32) to construct a request command message according to the configuration data and send the message to the hardware.
4. The data transmission control method according to claim 1, characterized in that: Also includes: The UDP message interaction module (20) is used to add a check field to the UDP message. When the request end receives the UDP response message from the responding end, the check field is checked. If the check fails, a retransmission mechanism is triggered. If the set number of retransmissions is exceeded, the transmission is interrupted.
5. A data transmission control method according to claim 1, characterized in that: The notifying the responding end to update the number of RQE queues through the UDP message interaction module (20) includes: The UDP message interaction module (20) is used to query the number N of RQEs corresponding to the QPN data, and to notify the responding end to update the number N.
6. A data transmission control system, characterized in that: It comprises an FPGA cache management module (10), a UDP message interaction module (20), and a software and hardware interaction information configuration module (30) which are connected in sequence, wherein: The FPGA cache management module (10) is used to perform initialization, obtain initialization resources, and provide a configuration interface and a query interface; The UDP message interaction module (20) is used to call the initialization resources of the FPGA cache management module (10), generate a link building data packet, create a data structure of a response end message to be received, and establish a data connection between the request end and the response end; The software and hardware interaction information configuration module (30) is used to call the query interface and the link establishment data packet to obtain configuration information, then construct a request message according to the configuration information and send it to the hardware, and parse the response message returned by the hardware; The software and hardware interaction information configuration module (30) is also used to control the hardware to send external data to the response end; The UDP message interaction module (20) is also used for, when the responding end needs to update the number of RQE queues, the hardware will generate an RQE queue update message and send it to the requesting end, thereby notifying the responding end to update the number of RQE queues; The UDP message interaction module (20) is also used for transmitting the UDP type message to the requesting end after the responding end sends the UDP type message carrying the control field when the responding end needs to perform data transmission control; The software and hardware interaction information configuration module (30) is further used to extract the control field in the UDP type message at the request end, and after sending the control field to the software and hardware interaction information configuration module (30), control the hardware to perform a control operation according to the control field.
7. The data transmission control system according to claim 6, characterized in that: The software and hardware interaction information configuration module (30) comprises a network card hardware driver submodule (31) and a NACP message encapsulation and parsing submodule (32), wherein: The network card hardware driver submodule (31) is used to call the query interface and the link establishment data packet to obtain configuration data; The NACP message encapsulation and parsing submodule (32) is used to construct a request message according to the configuration data and send it to the hardware, interacting with the hardware to complete the read and write request operation; The NACP message encapsulation and parsing submodule is also used to parse the response message returned by the hardware.
8. The data transmission control system according to claim 7, characterized in that: The NACP message encapsulation and parsing submodule (32) is also used to verify the response message; The NACP message encapsulation and parsing submodule (32) is further used for re-executing the construction of a request message according to the configuration data and sending it to the hardware when the response message verification fails, and interacting with the hardware to complete the read and write request operation.
9. The data transmission control system according to claim 6, characterized in that: Also includes: The UDP message interaction module (20) is also used to add a check field to the UDP message. When the request end receives the UDP response message from the responding end, the check field is checked. If the check fails, a retransmission mechanism is triggered. If the set number of retransmissions is exceeded, the transmission is interrupted.
10. The data transmission control system according to claim 6, characterized in that: When executing the notification response end to update the number of RQE queues, the UDP message interaction module (20) is specifically used to: Query the number N of RQEs corresponding to the QPN data, and notify the responder to update the number N.
Citation Information
Patent Citations
Load balancing method and system for RoCEv2 network, medium and electronic equipment
CN118631741A
Method of reading a remote memory
US7281030B1