Data transmission control method and system

By designing a data transmission control method and system in a high-speed sensing data acquisition system, using the FPGA cache management module, UDP message interaction module and software and hardware interaction information configuration module, the low latency and large-flow data configuration and control of external module data during RDMA communication is realized, and the problem of low data transmission efficiency in scenarios where the acquisition end is limited is solved, and the system performance is improved.

CN120017603AActive Publication Date: 2025-05-16NAT UNIV OF DEFENSE TECH
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202510477940.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-16
Publication Date
2025-05-16
Estimated Expiration
2045-04-16

AI Technical Summary

Technical Problem

In a high-speed sensing data acquisition system, how to implement data configuration and control of external module data with low latency and large flow during RDMA communication, especially in scenarios where computing resources, storage resources, cost, power consumption and other limitations at the acquisition end.

Method used

Through 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. These modules are used for initialization, chain building, configuration information acquisition, request message construction and response message analysis, realizing data resource configuration and data transmission control of hardware.

Benefits of technology

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 processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120017603A_ABST
    Figure CN120017603A_ABST
Patent Text Reader

Abstract

The invention discloses a data transmission control method and system.The system comprises an FPGA cache management module, a UDP message interaction module and a software and hardware interaction information configuration module, and data transmission is achieved through the following steps that the FPGA cache management module is used for initialization; creating a data structure of a to-be-received response end message by using a UDP (User Datagram Protocol) message interaction module, and establishing a link between the request end and the response end; a software and hardware interaction information configuration module is used for acquiring configuration data, converting the configuration data into a request message command, and controlling hardware to send external data to a response end; the hardware resources are dynamically controlled through the software and hardware interaction information configuration module, real-time updating of the RQE queue and data transmission state management are carried out, the method and device are suitable for a sensor access scene, the storage and logic resource pressure of embedded nodes can be remarkably reduced, and low-delay and high-bandwidth lightweight data transmission is achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present 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 widespread application of technologies such as the Industrial Internet of Things, equipment systems have increasingly higher requirements for rapid and sensitive perception of various types of sensor data and response to environmental changes. In addition, facing the scenario requirements of long-term and high-frequency collection and detection of massive sensor equipment, high-speed sensor data collection often has the characteristics of large transmission volume, high transmission bandwidth requirements, and fast processing speed requirements on the computing end. High-speed sensor data acquisition systems usually consist of three parts: real-time acquisition end sensors (such as radars, cameras, etc.), computing ends for sensor data processing, and storage ends for storing sensor data.

[0003] RDMA (Remote Direct Memory Access, RDMA) technology allows user programs to bypass the kernel and directly communicate with the network card. It directly transfers data to the computer's storage area through a network connection, quickly moves data, does not have any impact on the operating system in the process, and reduces the CPU load. Compared with traditional bus communication methods (USB, CAN, LVDS, etc.), this technology is more suitable for high-speed sensor data acquisition, feedback control, delay-sensitive environment applications, and releases a large amount of computing resources for algorithm execution deployment and behavior decision-making. However, embedded RDMA end systems are still in their infancy, and the industry and academia do not have a relatively complete and mature solution to adapt to the characteristics of the scenario where the resources, cost, power consumption, and volume of the embedded RDMA end system at the acquisition end are limited.

[0004] At present, there are three mainstream implementation methods of RDMA: IB (InfiniBand), RoCE (RDMA over Converged Ethernet), and iWARP. Among them, IB is mainly used in 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 to support, is incompatible with Ethernet, and is expensive. iWARP is compatible with Ethernet, but the entire TCP / IP protocol stack needs to be unloaded to the hardware, but it is limited by high cost and high complexity. In comparison, RoCE has the advantages of low implementation complexity and cost, and high performance. Applying it to high-speed sensor data acquisition systems can support multi-source sensor access, high bandwidth, low latency, high reliability, and low CPU overhead network transmission to meet the needs of high-speed sensor data acquisition. However, due to the limitations of computing resources, storage resources, cost, power consumption, etc. on the acquisition end, it is impossible to directly use commercial standard RDMA network cards, and an external embedded RDMA end system is required to implement RDMA communication related functions.

[0005] Therefore, how to achieve low-latency, high-flow data configuration and control of external module data (radar data, camera data, etc.) during RDMA communication is a technical problem that needs to be urgently solved by technical personnel in this field. Summary of the invention

[0006] To solve the above technical problems, the present application provides a data transmission control method, which can realize low-latency and high-flow data configuration and control of external module data (radar data, camera data, etc.) during RDMA communication. The present application also provides a data transmission control system, which has the same technical effect.

[0007] The first objective of the present application is to provide a data transmission control method.

[0008] The above-mentioned application objective 1 of the present application is achieved through the following technical solutions: A data transmission control method is 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 connected in sequence, and the method comprises: Using the FPGA cache management module 10, initialization is performed to obtain initialization resources, and a configuration interface and a query interface are provided; Using the UDP message interaction module 20, calling the initialization resources of the FPGA cache management module 10, generating a link building data packet, and creating a data structure of the 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 building data packet to obtain configuration information, 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; Using the software and hardware interaction information configuration module 30, the hardware is controlled to send the external data to the response end; 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, and notify 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 control operations according to the control field.

[0009] Preferably, the software and hardware interaction information configuration module 30 includes 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 construct a request message according to the configuration information and send it to the hardware, and parse the response message returned by the hardware, including: Using the network card hardware driver submodule 31, calling the query interface and the link building data packet to obtain configuration data; Utilize the NACP message encapsulation and parsing submodule 32 to construct a request message according to the configuration data and send it to the hardware, interact with the hardware to complete the read and write request operation; The NACP message encapsulation and parsing submodule 32 is used to parse the response message returned by the hardware.

[0010] Preferably, the response message is verified by using the NACP message encapsulation and parsing submodule; 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.

[0011] Preferably, the UDP message interaction module 20 is used to add a check field to the UDP message. When the requesting end receives the UDP response message from the responding end, the check field is checked. If the check fails, the retransmission mechanism is triggered. If the set number of retransmissions is exceeded, the transmission is interrupted.

[0012] Preferably, the UDP message interaction module 20 is used to query the number N of RQEs corresponding to the QPN data, and notify the responding end to update the number N.

[0013] The second objective of the present application is to provide a data transmission system based on RDMA.

[0014] The second application objective of the present application is achieved through the following technical solutions: A 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 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, and create a data structure of the 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 building 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 notifying the responding end to update the number of RQE queues after the hardware generates an RQE queue update message and sends it to the requesting end when the responding end needs 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 also 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.

[0015] Preferably, the software and hardware interaction information configuration module 30 includes 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, and interact with the hardware to complete the read and write request operation; The NACP message encapsulation and parsing submodule 32 is also used to parse the response message returned by the hardware.

[0016] Preferably, the NACP message encapsulation and parsing submodule is further used to verify the response message; The NACP message encapsulation and parsing submodule is further used to re-execute the construction of the request message according to the configuration data and send it to the hardware when the response message verification fails, and interact with the hardware to complete the read and write request operation.

[0017] Preferably, the UDP message interaction module 20 is also used to add a check field to the UDP message. When the requesting end receives the UDP response message from the responding end, the check field is checked. If the check fails, the retransmission mechanism is triggered. If the set number of retransmissions is exceeded, the transmission is interrupted.

[0018] Preferably, the UDP message interaction module 20 is further used to query the number N of RQEs corresponding to the QPN data, and notify the responding end to update the number N.

[0019] The present application completes the configuration of the data resources required by the hardware, completes the data handling and transmission according to the RDMA processing logic, realizes the large-capacity transmission of the external module data, and improves the overall performance of the system data processing; through the data and configuration method 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 in the data transmission process is reduced; by identifying the message type, RQE update and system transmission control processing can be realized according to different command types. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0021] Figure 1 This is a schematic diagram of a data transmission control method in an embodiment of the present application; Figure 2 This is a schematic diagram of a data transmission control system in an embodiment of the present application; Among them, there are FPGA cache management module-10, UDP message interaction module-20, software and hardware interaction information configuration module-30, network card hardware driver submodule-31, and NACP message encapsulation and parsing submodule-32. DETAILED DESCRIPTION

[0022] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0023] In addition, the technical features of the various embodiments or single embodiments provided in the present application can be arbitrarily combined with each other to form a feasible technical solution. Such combination is not restricted by the sequence of steps and / or the structural composition mode, but must be based on the ability of ordinary technicians in the field to implement it. When the combination of technical solutions is mutually contradictory or cannot be implemented, it should be deemed that such combination of technical solutions does not exist and is not within the scope of protection required by this application.

[0024] In the embodiments provided in 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 merely schematic. For example, the division of units and modules is only a logical function division. There may be other division methods in actual implementation, such as: 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 can be through some interfaces, indirect coupling or communication connection of devices or modules, which can be electrical, mechanical or other forms.

[0025] In addition, all functional units in the embodiments of the present application may be integrated into one processor, or each unit may be a separate device, or two or more units may be integrated into one device; each functional unit in the embodiments of the present application may be implemented in the form of hardware or in the form of hardware plus software functional units.

[0026] A person skilled in the art can understand that all or part of the steps of the following method embodiments can be completed by program instructions and related hardware. The aforementioned 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 aforementioned storage medium includes: a mobile storage device, a read-only memory (ROM), a magnetic disk or an optical disk, and other media that can store program codes.

[0027] It should be understood that the use of "system", "device", "unit" and / or "module" in this application is only a method for distinguishing different components, elements, parts, parts or assemblies at different levels. However, if other words can achieve the same purpose, the word can be replaced by other expressions.

[0028] In addition, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Therefore, a feature defined as "first" or "second" may explicitly or implicitly include one or more of the features. In the description of this application, "multiple" and "several" mean two or more, unless otherwise clearly and specifically defined.

[0029] It should be noted that the structures, proportions, sizes, etc. illustrated in the drawings of this specification are only used to match the contents disclosed in the specification for people familiar with this technology to understand and read, and are not used to limit the conditions under which this application can be implemented. Therefore, they have no substantive technical significance. Any structural modification, change in proportional relationship or adjustment of size should still fall within the scope of the technical content disclosed in this application without affecting the effects and purposes that can be achieved by this application.

[0030] If a flow chart is used in the present application, the flow chart is used to illustrate the operations performed by the system according to the embodiment of the present application. It should be understood that the preceding or following operations are not necessarily performed accurately in order. On the contrary, each step can be processed in reverse order or simultaneously. At the same time, other operations can also be added to these processes, or a certain step or several steps of operations can be removed from these processes.

[0031] It should also be noted that, in this article, terms such as "comprises", "includes" or any other variations thereof are intended to cover non-exclusive inclusion, so that an article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such articles or devices. In the absence of more restrictions, the elements defined by the sentence "comprises a ..." do not exclude the existence of other identical elements in the article or device including the above elements.

[0032] The implementation methods of this application are written in a progressive manner.

[0033] like Figure 1 , Figure 2 As shown, the embodiment of the present application provides a data transmission control method, which 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 and hardware interaction information configuration module 30 connected in sequence, including: S1. Use the FPGA cache management module 10 to perform initialization, obtain initialization resources, and provide a configuration interface and a query interface; Specifically, the FPGA cache management module 10 is used to perform initialization to obtain initialization resources, wherein the initialization resources may include sequence pairs and address information of QP corresponding data, storage space areas corresponding to various types of data, and the size of the storage space used. The initialization resources also include queue pair (QP) data structures, such as: QP number (QPN), DDR space start address, transmission data space length, 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 configuration interface provided is used to set QP parameters, and the query interface is used to obtain QP status and storage area information.

[0034] S2, using the UDP message interaction module 20, calling the initialization resources of the FPGA cache management module 10, generating a link building data packet, and creating a data structure of the response end message to be received, and establishing a data connection between the request end and the response end; Specifically, the resources initialized by the FPGA cache management module 10 are called to generate a link establishment data packet. The requesting end sends a link establishment request through the UDP message sending module, and creates a data structure for the response end message to be received. After parsing the request message, the responding end returns a confirmation message containing the remote QPN, and stores the remote QPN in the specified data structure. The link establishment data packet includes: local QPN, DDR starting address, transmission data length, etc.

[0035] S3, using the software and hardware interaction information configuration module 30, calling the query interface and link building data packet to obtain configuration information, 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; Specifically, the software and hardware interactive information configuration module 30 is used to call the query interface and link building data packet to obtain configuration information, and then the configuration information is constructed and sent as a request message. After receiving the data, the responding end consumes the receiving queue entry (RQE) and parses the returned response message; Configuration information includes: QPC configuration, acquisition transmission configuration and QP status update, etc.

[0036] S4, using the software and hardware interaction information configuration module 30, controlling the hardware to send the external data to the response end; Specifically, the external data includes: external radar, camera video data, etc.

[0037] S5. 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; Specifically, when the responder consumes a certain number of receive queue entries (RQE) after receiving data, the responder needs to update the number of RQE queues. The hardware will generate an RQE queue update message and send it to the requester. The requester queries the number of RQEs corresponding to the QPN and notifies the responder to update the storage area through the UDP interaction module, thereby realizing large-capacity transmission of external module data and improving the overall performance of system data processing.

[0038] S6. 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 control operations according to the control field.

[0039] Specifically, when the responding end needs to perform data transmission control, the responding end sends a UDP type message carrying a control field, and transmits it to the requesting end using the UDP message interaction module 20. 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 encapsulate the control instruction into a NACP command and send it to the hardware, thereby controlling the hardware to perform the control operation and realizing dynamic management of the data transmission process.

[0040] Through the above steps, the data resources required by the hardware are configured, the data handling and transmission are completed according to the RDMA processing logic, and the large-capacity transmission of external module data is realized, which improves the overall performance of system data processing; reduces the number of software and hardware interactions and reduces the delay in the data transmission process; realizes RQE update and system transmission control processing according to different command types.

[0041] In other embodiments, the software and hardware interaction information configuration module 30 includes a network card hardware driver submodule 31 and a NACP message encapsulation and parsing submodule 32. When executing the software and hardware interaction information configuration module 30, the query interface and the link building data packet are called 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: S31, using the network card hardware driver submodule 31, calling the query interface and the link establishment data packet to obtain configuration data; Configuration data includes: QP context (QPC), transfer mode (such as continuous transfer or burst transfer), DMA channel parameters; real-time update of QP status (such as "ready" or "error").

[0042] S32, using the NACP message encapsulation and parsing submodule 32, constructing a request message according to the configuration data and sending it to the hardware, interacting with the hardware to complete the read and write request operation; S33, using the NACP message encapsulation and parsing submodule 32 to parse the response message returned by the hardware.

[0043] Specifically, the NACP message encapsulation and parsing submodule is used 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 contains a frame type (such as a control frame, a data frame), an operation type (read / write), and a NACP request message of a target address to interact with the hardware and parse the response message returned by the hardware.

[0044] In other embodiments, after the NACP message encapsulation and parsing submodule 32 is used to parse the response message returned by the hardware, the NACP message encapsulation and parsing submodule 32 is also used to verify the response message; If the verification fails, the process returns to re-execute the NACP message encapsulation and parsing submodule 32. A step of constructing a request command message according to the configuration data and sending the message to the hardware; Specifically, when the check fails, the NACP message encapsulation and parsing submodule 32 is used to reconstruct the request command message, and the check frame type, data length and consistency of the check field of the returned message are checked according to the response message returned by the hardware until it succeeds or reaches the threshold, thereby ensuring the integrity and correctness of the transmitted configuration data.

[0045] In other embodiments, the UDP message interaction module 20 is used to add a check field (such as CRC32) to the UDP message. When the requesting end receives the UDP response message from the responding end, the check field is checked. If the check fails, the retransmission mechanism is triggered. If the set number of retransmissions is exceeded, the transmission is interrupted.

[0046] Specifically, when the requesting end receives the UDP response message from the responding end, it parses the request message and returns a confirmation message containing the remote QPN. The requesting end checks the check field. If the check fails, the retransmission mechanism is triggered (the maximum number of retransmissions is configurable). If the number of retransmissions exceeds the set number, the transmission is interrupted. After the check is successful, the remote QPN is stored in the specified data structure to ensure the accuracy and reliability of data interaction.

[0047] In other embodiments, one implementation method of notifying the responding end to update the number of RQE queues through the UDP message interaction module 20 specifically includes: using the UDP message interaction module 20 to query the number N of RQEs corresponding to the QPN data, and notifying the responding end to update the number N.

[0048] The embodiment of the present application provides a data transmission control method, which is centered on the application layer and sends resource configuration to the hardware logic to achieve low-latency, high-flow communication of the system for the collected sensor data from end to end.

[0049] like Figure 2 As 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 connected in sequence, wherein: The FPGA cache management module 10 performs initialization, obtains initialization resources, and provides 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, and create a data structure of the 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 link building data packet to obtain configuration information, construct the configuration information and send a request message, and parse the response message returned by the hardware; The software and hardware interaction information configuration module 30 is also used to call the query interface and link building data packet to obtain configuration information, then construct and send a request message based on the configuration information, 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 notifying the responding end to update the number of RQE queues after the hardware generates an RQE queue update message and sends it to the requesting end when the responding end needs to update the number of RQE queues; The UDP message interaction module 20 is also used to transmit 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 also 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 control operations according to the control field to achieve dynamic management of the data transmission process.

[0050] In some other embodiments, the software and hardware interaction information configuration module 30 includes a network card hardware driver submodule 31 and a NACP message encapsulation and parsing submodule 32, specifically: The network card hardware driver submodule 31 is used to obtain configuration data and configure the hardware through the FPGA cache management module 10 and the UDP message interaction module 20; The NACP message encapsulation and parsing submodule 32 is further used to encapsulate the configuration data initialized by the hardware into a request command, and interact with the hardware to complete the read and write request operation according to the request command encapsulated by different configuration data.

[0051] In other embodiments, the NACP message encapsulation and parsing submodule 32 is used to parse the response message returned by the hardware and verify the response message; The NACP message encapsulation and parsing submodule 32 is further used to re-execute the configuration data to construct a request message and send it to the hardware when the response message verification fails, and interact with the hardware to complete the read and write request operation.

[0052] In other embodiments, the UDP message interaction module 20 is also used to add a check field (such as CRC32) to the UDP message. When the requesting end receives the UDP response message from the responding end, the check field is checked. If the check fails, the retransmission mechanism is triggered. If the set number of retransmissions is exceeded, the transmission is interrupted. After the check is successful, the remote QPN is stored in the specified data structure, thereby ensuring the accuracy and integrity of data transmission.

[0053] In other embodiments, the UDP message interaction module 20 is also used to notify the responding end to update the number of RQE queues, which specifically includes: using the UDP message interaction module 20 to query the number N of RQEs corresponding to the QPN data, and notifying the responding end to update the number N.

[0054] A data transmission control method and system proposed in the embodiment of the present application ensure the accuracy of link establishment and data transmission through the UDP check field and retransmission mechanism, reduce data copy overhead based on RDMA DDR direct access and software and hardware collaborative configuration, support plug-and-play and RQE dynamic update of external modules, adapt to complex heterogeneous scenarios, and realize refined configuration and management of hardware resources through the NACP message encapsulation and parsing submodule 32.

[0055] 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 apparent to those skilled in the art, and the general principles defined herein may 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 will conform 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: Utilizing 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 check fails, the process returns to re-execute the step of using the NACP message encapsulation and parsing submodule (32) to construct a request command message according to the configuration data and send it 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

  • Embedded RDMA system

    CN114726883A

  • RDMA-based sending end, receiving end, data transmission system and method

    CN116471242A

  • Load balancing method and system for RoCEv2 network, medium and electronic equipment

    CN118631741A

  • Data transmission method and device, electronic equipment, storage medium and program product

    CN119396763A

  • Method of reading a remote memory

    US7281030B1