DPU (Data Processing Unit)-based RDMA (Remote Direct Memory Access) virtualized memory address conversion and data transmission method and system

By adopting the DPU-based memory address conversion method in RDMA virtualization technology, the operation problems and address conversion complexity problems on the IOMMU system are solved, and efficient and reliable RDMA data transmission is achieved.

CN119829480AActive Publication Date: 2025-04-15YUSUR TECH CO LTD

Patent Information

Application Number
CN202411619774.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-13
Publication Date
2025-04-15
Estimated Expiration
2044-11-13

AI Technical Summary

Technical Problem

The existing RDMA virtualization technology cannot run on systems that do not support IOMMU, and the address conversion process is complex, affecting RDMA performance.

Method used

The DPU-based RDMA virtualized memory address conversion method is adopted, and the address conversion process is simplified through the collaboration between the virtual machine kernel and the virtual machine supervising program, and the RDMA hardware is directly configured to avoid the participation of the IOMMU module.

Benefits of technology

It realizes RDMA virtualized data transmission without relying on the IOMMU module, simplifies the address conversion process, and improves the performance and availability of RDMA data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119829480A_ABST
    Figure CN119829480A_ABST
Patent Text Reader

Abstract

The invention provides a DPU (Data Processing Unit)-based RDMA (Remote Direct Memory Access) virtualized memory address conversion and data transmission method and a DPU-based RDMA virtualized memory address conversion and data transmission system. The method comprises the following steps that: a user process specifies a client virtual address and a corresponding memory The virtual machine kernel generates a first memory conversion table, and the first memory conversion table records conversion from the client virtual address to the client physical address. When the drive program of the remote direct memory access device obtains the first memory conversion table, a preset instruction is triggered to enable the execution control right to be switched to the virtual machine supervision program from the virtual machine kernel. The customer physical address is converted into the host virtual address in the switching process. The virtual machine supervision program obtains mapping from the host virtual address to the host physical address through the host system information, and a second memory conversion table containing the conversion relation from the client virtual address to the host physical address is obtained. The execution control right is switched back to the kernel of the virtual machine, and the second memory conversion table is configured to the remote direct memory access device DPU. According to the method, address conversion can be simplified, hardware dependence is reduced, and RDMA performance is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of DPU and remote direct memory access, and in particular to a DPU-based RDMA virtualized memory address conversion and data transmission method and system. Background Art

[0002] RDMA (Remote Direct Memory Access) is an efficient network communication protocol. With its advantages of low latency, high bandwidth, and kernel bypass, it is increasingly widely used in high-performance computing, big data processing, cloud computing, and distributed storage. Compared with traditional network transmission methods, RDMA can directly transmit data in memory, reducing CPU intervention, thereby reducing latency and improving throughput. This makes RDMA particularly suitable for application scenarios that require fast data interaction, such as financial trading systems, scientific computing simulations, and real-time data analysis.

[0003] Virtualization is one of the key technologies for cloud computing. It creates one or more independent and isolated virtual environments by abstracting physical resources (such as servers, storage, and networks). Virtualization technology allows multiple virtual machines (VMs) to run on the same physical server, and each VM can be regarded as an independent computing environment with its own operating system and applications. Therefore, virtualization provides better resource utilization, flexibility, and scalability, allowing enterprises to manage computing resources more effectively and respond quickly to changes in business needs.

[0004] As cloud computing becomes more prevalent, the need for RDMA device virtualization has become more common. When RDMA virtualization is enabled, a separate RDMA device can be created for each virtual machine. This not only ensures that each virtual machine has exclusive, high-performance network access, but also enables efficient data transmission between different virtual machines. This approach greatly enhances the communication efficiency between virtual machines while retaining the advantages of RDMA technology, making it possible to achieve low-latency and high-bandwidth data transmission in a cloud environment. The combination of RDMA and virtualization not only improves the overall performance of cloud computing, but also provides developers and users with more powerful tools to meet future complex computing challenges.

[0005] The prior art uses VFIO (Virtual Function I / O) to implement RDMA virtualization. VFIO can use IOMMU (Input / Output Memory Management Unit) to convert GPA (Guest Physical Address) into HPA (Host Physical Address) so that the RDMA hardware device can recognize and use HPA. However, the address conversion scheme of the prior art involves two layers of processing. First, GVA (Guest Virtual Address) and GPA (Guest Physical Address) need to be converted to each other. This layer is maintained by the RDMA hardware. Secondly, GPA (Guest Physical Address) needs to be converted to HPA (Host Physical Address). This layer needs to be implemented using the IOMMU module. Therefore, it cannot run on systems that do not support IOMMU, and the usage scenarios are limited. Moreover, the conversion of these two layers occurs in the IO path, which will directly affect the performance of RDMA services. Summary of the invention

[0006] In view of this, an embodiment of the present invention provides a DPU-based RDMA virtualization memory address conversion, data transmission method and system to eliminate the dependence of the prior art memory address conversion on hardware devices and simplify the address conversion process, thereby improving RDMA performance.

[0007] A first aspect of the present invention provides a DPU-based RDMA virtualized memory address conversion method, the method is used to be executed on a host of a data transmission node, the host is connected to a remote direct memory access device, and the remote direct memory access device is a DPU. The method comprises the following steps:

[0008] The user process specifies the client virtual address and its corresponding memory area on the node where data transmission is to be performed;

[0009] The virtual machine kernel of the node generates a first memory conversion table through a memory management unit, wherein the first memory conversion table records the conversion relationship from the client virtual address to the client physical address;

[0010] When the driver of the remote direct memory access device obtains the first memory conversion table, a preset instruction is triggered to switch the execution control from the virtual machine kernel to the virtual machine supervisor on the host machine; during the switching process, the client physical address is converted into a host virtual address on the virtual machine supervisor;

[0011] The virtual machine monitoring program obtains the mapping of the host virtual address to the host physical address through the host system information, and obtains a second memory translation table including the translation relationship between the guest virtual address and the host physical address;

[0012] The execution control is switched from the virtual machine supervisor on the host machine to the virtual machine kernel, and the virtual machine kernel configures the second memory translation table to the remote direct memory access device.

[0013] In some embodiments of the present invention, the preset instruction is: writing a preset base register address to the virtual machine kernel.

[0014] In some embodiments of the present invention, the preset instruction is a system call instruction.

[0015] In some embodiments of the present invention, the host system information includes: process file system interface information, memory device file information or application program interface call information.

[0016] A second aspect of the present invention provides a DPU-based RDMA virtualized data transmission method, the method is used to be executed on a host of a data transmission node, the host is connected to a remote direct memory access device, and the remote direct memory access device is a DPU. The method comprises the following steps:

[0017] The user process of the sending node submits the remote direct memory access task and creates a work queue element; the work queue element includes the source data address of the sending node and the target address of the receiving node;

[0018] The remote direct memory access device of the sending node converts the client virtual address of the source data address into a corresponding host physical address based on the second memory conversion table obtained by the DPU-based RDMA virtualization memory address conversion method;

[0019] The source data is read from the corresponding host physical address, encapsulated into a remote direct memory access protocol packet and sent to the receiving node.

[0020] In some embodiments of the present invention, the remote direct memory access protocol packet format is: InfiniBand, RoCE or iWARP.

[0021] A third aspect of the present invention provides a DPU-based RDMA virtualized data receiving method, the method is used to be executed on a host of a data transmission node, the host is connected to a remote direct memory access device, and the remote direct memory access device is a DPU. The method comprises the following steps:

[0022] The receiving node receives the remote direct memory access protocol packet to obtain the source data and the target address of the receiving node;

[0023] The remote direct memory access device of the receiving node converts the client virtual address of the target address into a corresponding host physical address based on the second memory conversion table obtained by the DPU-based RDMA virtualization memory address conversion method;

[0024] The source data is written to the corresponding host physical address.

[0025] The fourth aspect of the present invention provides a DPU-based RDMA virtualization memory address translation system, comprising a processor, a memory, and computer instructions stored in the memory, wherein the processor is used to execute the computer instructions, and when the computer program instructions are executed, the system implements the steps of any of the methods described above.

[0026] A fifth aspect of the present invention provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps of any of the methods described above.

[0027] A sixth aspect of the present invention provides a computer program product, comprising a computer program, which implements the steps of any of the methods described above when executed by a processor.

[0028] The beneficial effects of the present invention are at least:

[0029] The present invention provides a DPU-based RDMA virtualization memory address conversion, data transmission method and system, the method comprising: a user process specifies a client virtual address and its corresponding memory area. A virtual machine kernel generates a first memory conversion table, and the first memory conversion table records the conversion of a client virtual address to a client physical address. When a driver of a remote direct memory access device obtains the first memory conversion table, a preset instruction is triggered to switch the execution control right from the virtual machine kernel to a virtual machine supervisor. During the switching process, the client physical address is converted to a host virtual address. The virtual machine supervisor obtains the mapping of the host virtual address to the host physical address through the host system information, and obtains a second memory conversion table containing the conversion relationship between the client virtual address and the host physical address. The execution control right is switched back to the virtual machine kernel, and the second memory conversion table is configured to the remote direct memory access device DPU. The present invention can simplify the process of address conversion on the IO path during RDMA virtualization data transmission, and does not require the participation of the IOMMU module, thereby reducing the dependence of RDMA virtualization data transmission on hardware, thereby improving the availability and the RDMA data transmission performance.

[0030] Additional advantages, purposes, and features of the present invention will be described in part in the following description, and will become apparent to those skilled in the art after studying the following, or may be learned from the practice of the present invention. The purposes and other advantages of the present invention may be achieved and obtained by the structures specifically indicated in the specification and the accompanying drawings.

[0031] Those skilled in the art will appreciate that the objectives and advantages that can be achieved with the present invention are not limited to the above specific description, and the above and other objectives that can be achieved by the present invention will be more clearly understood from the following detailed description. BRIEF DESCRIPTION OF THE DRAWINGS

[0032] The drawings described herein are used to provide a further understanding of the present invention, constitute a part of the present application, and do not constitute a limitation of the present invention. In the drawings:

[0033] Figure 1 The present invention is a flowchart of a method for converting RDMA virtualized memory addresses based on DPU in one embodiment of the present invention.

[0034] Figure 2 FIG. 4 is a processing flow chart of the prior art in another embodiment of the present invention.

[0035] Figure 3 It is a detailed processing flow chart in another embodiment of the present invention. DETAILED DESCRIPTION

[0036] In order to make the purpose, technical solution and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with the embodiments and the accompanying drawings. Here, the illustrative embodiments of the present invention and their descriptions are used to explain the present invention, but are not intended to limit the present invention.

[0037] It should also be noted that, in order to avoid obscuring the present invention due to unnecessary details, only structures and / or processing steps closely related to the solutions according to the present invention are shown in the accompanying drawings, while other details that are not closely related to the present invention are omitted.

[0038] It should be emphasized that the term “include / comprises” when used herein refers to the presence of features, elements, steps or components, but does not exclude the presence or addition of one or more other features, elements, steps or components.

[0039] It should also be noted that, unless otherwise specified, the term “connection” herein may refer not only to a direct connection but also to an indirect connection involving an intermediate.

[0040] Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. In the accompanying drawings, the same reference numerals represent the same or similar components, or the same or similar steps.

[0041] MR (Memory Region) is a core concept in RDMA technology. It refers to a memory area registered (or mapped) to an RDMA device, which usually contains data that needs to be communicated. MR defines the starting address and length of the memory area, which is used to specify the source or destination of data in RDMA operations.

[0042] MR address translation refers to how logical or virtual addresses are converted to physical addresses in computer systems and virtualization technology, especially in the interaction between the processor and the memory management unit (MMU). Modern computer systems typically use virtual memory, which means that each program runs in its own virtual address space. The operating system maps virtual addresses to physical addresses through mechanisms such as page tables. When a program wants to access a certain memory address, the address is first regarded as a virtual address. Through MR address translation, the operating system looks up the page table to find the corresponding physical address. The memory management unit (MMU) converts this virtual address into an actual physical address, allowing the CPU to access the corresponding memory area.

[0043] A first aspect of an embodiment of the present invention provides a DPU-based RDMA virtualized memory address conversion method, the method is used to be executed on a host of a data transmission node, the host is connected to a remote direct memory access device, and the remote direct memory access device is a DPU. The method includes the following steps S101 to S105:

[0044] Step S101: The user process specifies a client virtual address and its corresponding memory area on a node where data transmission is to be performed.

[0045] Step S102: The virtual machine kernel of the node generates a first memory translation table through a memory management unit, and the first memory translation table records the translation relationship from the client virtual address to the client physical address.

[0046] Step S103: When the driver of the remote direct memory access device obtains the first memory conversion table, a preset instruction is triggered to switch the execution control from the virtual machine kernel to the virtual machine supervisor on the host machine. During the switching process, the client physical address is converted to the host virtual address on the virtual machine supervisor.

[0047] Step S104: the virtual machine monitor obtains the mapping of the host virtual address to the host physical address through the host system information, and obtains a second memory translation table including the translation relationship between the guest virtual address and the host physical address.

[0048] Step S105: the execution control right is switched from the virtual machine supervisor on the host machine to the virtual machine kernel, and the virtual machine kernel configures the second memory translation table to the remote direct memory access device.

[0049] Specifically, in step S101, the guest virtual address, i.e., GVA (Guest Virtual Address), refers to the address seen by the program running inside the virtual machine. When the program accesses the memory, the guest virtual address needs to be used. This address needs to be converted into a guest physical address (GPA) by the memory management unit (MMU) of the virtual machine.

[0050] In step S102, the memory management unit (MMU) is an important hardware component in the computer system, responsible for address translation, memory protection and virtual memory management. Its main function is to convert the virtual address used by the program into a physical address and ensure memory isolation between different processes.

[0051] In step S103, the host machine refers to a physical computer or server that runs virtual machines in a virtualized environment. It provides computing resources (such as CPU, memory, storage, and network) to one or more virtual machines (VMs). The host machine is usually installed with virtualization management software, which can create and manage virtual machines and allow them to share the hardware resources of the host machine.

[0052] In step S103, the host virtual address, HVA (Host Virtual Address), is a virtual address used inside the host operating system. The host operating system uses virtual memory management like the operating system in the virtual machine to map the host program address (HVA) to the host physical address (HPA).

[0053] In step S103, a virtual machine monitor, i.e., a VMM (Virtual Machine Monitor), is used. A typical VMM is Qemu. VMM is a software layer or firmware that can create and manage virtual machines, so that a physical computer can simulate multiple independent virtual computers, each of which can run its own operating system and application programs and is isolated from each other.

[0054] Since all the memory in the virtual machine is applied by the VMM, and the VMM is an application process on the host machine, the memory type applied by the VMM is HVA (host virtual address), and the VMM will maintain the address mapping relationship from HVA to GPA. Therefore, in step S103, when the execution control is switched from the virtual machine kernel to the virtual machine supervisor on the host machine, the client physical address is converted to the host virtual address on the virtual machine supervisor.

[0055] In step S104, the host physical address is HPA (Host Physical Address), which is a real physical memory address belonging to the physical memory of the host machine. GPA is mapped to this address with the help of virtualization software or hardware, so that the virtual machine can use the physical memory of the host machine.

[0056] Among them, DPU, or Data Processing Unit, is a type of computing hardware specially designed to accelerate data processing tasks.

[0057] In some embodiments of the present invention, the preset instruction is: writing a preset base register address to the virtual machine kernel.

[0058] Specifically, the base address register (BAR) is a register in the device configuration space that indicates the base address of the external hardware device mapped to the main memory address space. In some cases, the driver needs to write to the BAR address to configure the virtualized device.

[0059] By writing the base register address to the virtual machine kernel as a preset instruction to trigger the execution control to switch from the virtual machine kernel to the virtual machine supervisor, for example, the address is 0x04 of BAR0. When the driver writes this address, it will trigger the virtual machine VM-EXIT and fall back to the host kernel or the host user mode VMM for processing. Because IO commands are privileged instructions, they cannot be executed when the CPU runs at the virtualization level. VM-EXIT is required to return to the host kernel for processing. If the host kernel cannot process it, it will return to the VMM for processing.

[0060] In some embodiments of the present invention, the preset instruction is a system call instruction.

[0061] Specifically, system call processing refers to a custom system call by the developer. When it is called, the privileged settings are executed, VM-EXIT is triggered, and the subsequent process is the same as the write BAR trigger mentioned above.

[0062] In some embodiments of the present invention, the host system information includes: process file system interface information, memory device file information or application program interface call information.

[0063] A second aspect of the present embodiment provides a DPU-based RDMA virtualized data sending method, the method is used to be executed on a host of a data transmission node, the host is connected to a remote direct memory access device, and the remote direct memory access device is a DPU. The method includes the following steps:

[0064] The user process of the sending node submits the remote direct memory access task and creates a work queue element, which includes the source data address of the sending node and the target address of the receiving node.

[0065] The remote direct memory access device of the sending node converts the client virtual address of the source data address into the corresponding host physical address based on the second memory conversion table obtained by the above-mentioned DPU-based RDMA virtualization memory address conversion method.

[0066] The source data is read from the corresponding host physical address, encapsulated into a remote direct memory access protocol packet and sent to the receiving node.

[0067] In some embodiments of the present invention, the remote direct memory access protocol packet format is: InfiniBand, RoCE or iWARP.

[0068] Among them, InfiniBand is a high-bandwidth, low-latency network communication standard, mainly used in data centers and high-performance computing (HPC) environments. RoCE is a technology that encapsulates the RDMA protocol in Ethernet frames, allowing efficient data transmission on Ethernet networks. iWARP is an RDMA implementation based on the TCP / IP protocol stack, allowing the use of RDMA on wide area networks (WANs) and local area networks (LANs).

[0069] A third aspect of the present embodiment provides a DPU-based RDMA virtualized data receiving method, the method is used to be executed on a host of a data transmission node, the host is connected to a remote direct memory access device, and the remote direct memory access device is a DPU. The method includes the following steps:

[0070] The receiving node receives the remote direct memory access protocol packet to obtain the source data and the target address of the receiving node;

[0071] The remote direct memory access device of the receiving node converts the client virtual address of the target address into the corresponding host physical address based on the second memory conversion table obtained by the above-mentioned DPU-based RDMA virtualization memory address conversion method.

[0072] Write the source data to the corresponding host physical address.

[0073] Another embodiment of the present invention provides an RDMA virtualized MTT management method, which can implement RDMA memory address mapping on a system lacking an IOMMU module, thereby improving the efficiency of address conversion and enhancing IO performance.

[0074] The current existing RDMA virtualization technology is implemented using VFIO (Virtual Function I / O). VFIO can use IOMMU (Input / Output Memory Management Unit) to convert GPA (Guest Physical Address) into HPA (Host Physical Address). The process of data transmission tasks in the existing technology is as follows: Figure 2 As shown, the detailed processing flow includes steps S201 to S209:

[0075] Step S201: enabling the IOMMU function on Host-A of node A and Host-B of node B.

[0076] Step S202: The user process of VM-A specifies GVA-A (starting address) and length to create MR-A.

[0077] Step S203: The kernel on VM-A generates MTT (Memory Translation Table) of MR-A through MMU (Memory Management Unit) table lookup, which describes the correspondence between GVA and GPA address. Since GPA is not necessarily continuous, there may be multiple entries in MTT.

[0078] Step S204: The RDMA kernel driver on the virtual machine on VM-A configures MTT-A to the RDMA device.

[0079] Step S205: Similar to steps S202 to S204, the virtual machine RDMA device on node B also obtains the MTT of MR-B.

[0080] Step S206: VM-A user process submits an RDMA write task WQE (Work Queue Element), the WQE includes the address of the local source data and the destination address of the other end, and the address type is GVA.

[0081] Step S207: The RDMA device on node A processes the submitted WQE. According to the configuration of MTT-A in step 3, the source data GVA (within the range of MR-A) in the WQE is converted into GPA, and the GPA is converted into HPA through IOMMU. The RDMA device reads the Payload (source data to be sent) through HPA.

[0082] Step S208: The RDMA device on node A encapsulates an RDMA protocol network packet (Infiband, RoCE, etc.) and sends it to node B. The network packet includes the Payload and the peer GVA to be written (within the range of MR B).

[0083] Step S209: RDMA on node B receives the network packet and obtains the Payload and GVA. Similar to step 7, RDMA first obtains the GPA by searching MTT B, then converts the GPA into HPA through IOMMU, writes the Payload into HPA, and completes the data transmission.

[0084] The above existing solutions have two main disadvantages:

[0085] First, the performance is low: the address conversion of the existing solution involves two layers of processing. First, GVA and GPA need to be converted to each other, which is maintained by the RDMA hardware. Second, GPA needs to be converted to HPA, which is implemented by the IOMMU module. Both layers of conversion occur in the IO path, which will directly affect the RDMA service performance.

[0086] The second is external module dependency: GPA to HPA conversion requires the IOMMU module, which increases the external dependency of the RDMA virtualization environment. It cannot run on systems that do not support IOMMU, and its usage scenarios are limited.

[0087] The technical solution proposed in this embodiment completes the address conversion from GVA to HPA when the user process registers MR in the virtual machine, and directly configures the address conversion table to the RDMA hardware. The subsequent sending and receiving of RDMA packets only requires one layer of address conversion without the participation of IOMMU.

[0088] Specifically, in the execution process of this implementation, after obtaining MTT-A, this solution allows the virtual machine to execute VM-EXIT to return to the Host, and complete the conversion from GPA to HPA on the VMM (Virtual Machine Monitor, typically such as Qemu) on the Host, so that the complete mapping relationship MTT-A' between GVA and HPA can be obtained, and this table is configured as the RDMA hardware device.

[0089] The following is a detailed description of the workflow of this embodiment. The process of obtaining the conversion table MTT-A of GVA and GPA is consistent with the prior art and will not be repeated. Figure 3 As shown, steps S301 to S305 are included:

[0090] Step S301: The RDMA driver in VM A obtains MTT A, and triggers the VM exit of the virtual machine by writing the fixed BAR address of the device. The CPU switches to the VMM for operation. The VMM knows that it needs to start address translation through the BAR address that causes the VM exit.

[0091] Step S302: All memory in the virtual machine is applied by the VMM, which is a common application process on the Host. The memory type applied by it is HVA, and the VMM will maintain the address mapping relationship from HVA to GPA. Therefore, when the virtual machine VM exits and switches to the VMM, the HVA can be obtained from the GPA.

[0092] Step S303: Get HPA from HVA. The Linux system can use the / proc file system interface to query. So far, the complete address conversion from GVA to GPA can be obtained, and MTT-A' can be obtained.

[0093] Step S304: the VMM executes VM entry, the CPU switches back to the virtual machine kernel, and the virtual machine kernel driver configures MTT A' to the RDMA hardware.

[0094] Step S305: Similarly, the opposite node executes steps S302 to S304 to obtain MTT-B'.

[0095] After registering MR, the IO process under this solution is as follows:

[0096] 1. VM A user process submits RDMA Write task wqe. wqe contains the address of the local source data and the destination address of the peer. All address types are GVA.

[0097] 2. The RDMA device of node A directly obtains the HPA according to GVA through MTT A', reads the Payload from the HPA, encapsulates the RDMA protocol packet, and sends it to node B;

[0098] 3. Node B receives the RDMA protocol packet, obtains the Payload and GVA, obtains the HPA based on MTT B', writes the Payload to the HPA, and completes the data transmission.

[0099] In summary, the present invention provides a DPU-based RDMA virtualization memory address conversion, data transmission method and system, the method comprising: a user process specifies a client virtual address and its corresponding memory area. The virtual machine kernel generates a first memory conversion table, and the first memory conversion table records the conversion of the client virtual address to the client physical address. When the driver of the remote direct memory access device obtains the first memory conversion table, a preset instruction is triggered to switch the execution control from the virtual machine kernel to the virtual machine supervisor. During the switching process, the client physical address is converted to the host virtual address. The virtual machine supervisor obtains the mapping of the host virtual address to the host physical address through the host system information, and obtains a second memory conversion table containing the conversion relationship between the client virtual address and the host physical address. The execution control is switched back to the virtual machine kernel, and the second memory conversion table is configured to the remote direct memory access device DPU. The present invention can simplify the process of address conversion on the IO path during RDMA virtualization data transmission, and does not require the participation of the IOMMU module, thereby reducing the dependence of RDMA virtualization data transmission on hardware, thereby improving availability and improving RDMA data transmission performance.

[0100] Corresponding to the above method, the present invention also provides a system, which includes a computer device, the computer device includes a processor and a memory, the memory stores computer instructions, the processor is used to execute the computer instructions stored in the memory, and when the computer instructions are executed by the processor, the system implements the steps of the method described above.

[0101] The embodiment of the present invention also provides a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, the steps of the aforementioned edge computing server deployment method are implemented. The computer-readable storage medium can be a tangible storage medium, such as a random access memory (RAM), a memory, a read-only memory (ROM), an electrically programmable ROM, an electrically erasable programmable ROM, a register, a floppy disk, a hard disk, a removable storage disk, a CD-ROM, or any other form of storage medium known in the technical field.

[0102] It should be understood by those skilled in the art that the exemplary components, systems and methods described in conjunction with the embodiments disclosed herein can be implemented in hardware, software or a combination of the two. Whether it is performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the present invention. When implemented in hardware, it can be, for example, an electronic circuit, an application specific integrated circuit (ASIC), appropriate firmware, a plug-in, a function card, etc. When implemented in software, the elements of the present invention are programs or code segments used to perform the required tasks. The program or code segment can be stored in a machine-readable medium, or transmitted on a transmission medium or a communication link via a data signal carried in a carrier.

[0103] It should be clear that the present invention is not limited to the specific configuration and processing described above and shown in the figures. For the sake of simplicity, a detailed description of the known method is omitted here. In the above embodiments, several specific steps are described and shown as examples. However, the method process of the present invention is not limited to the specific steps described and shown, and those skilled in the art can make various changes, modifications and additions, or change the order between the steps after understanding the spirit of the present invention.

[0104] In the present invention, features described and / or illustrated for one embodiment may be used in the same or similar manner in one or more other embodiments, and / or combined with features of other embodiments or replace features of other embodiments.

[0105] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. For those skilled in the art, the embodiments of the present invention may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention shall be included in the protection scope of the present invention.

Claims

1. A DPU-based RDMA virtualization memory address conversion method, characterized in that: The method is used to be executed on a host of a data transmission node, the host is connected to a remote direct memory access device, and the remote direct memory access device is a DPU. The method comprises the following steps: The user process specifies the client virtual address and its corresponding memory area on the node where data transmission is to be performed; The virtual machine kernel of the node generates a first memory conversion table through a memory management unit, wherein the first memory conversion table records the conversion relationship from the client virtual address to the client physical address; When the driver of the remote direct memory access device obtains the first memory conversion table, a preset instruction is triggered to switch the execution control from the virtual machine kernel to the virtual machine supervisor on the host machine; during the switching process, the client physical address is converted into a host virtual address on the virtual machine supervisor; The virtual machine monitoring program obtains the mapping of the host virtual address to the host physical address through the host system information, and obtains a second memory translation table including the translation relationship between the guest virtual address and the host physical address; The execution control is switched from the virtual machine supervisor on the host machine to the virtual machine kernel, and the virtual machine kernel configures the second memory translation table to the remote direct memory access device.

2. The DPU-based RDMA virtualization memory address conversion method according to claim 1, characterized in that: The preset instruction is: writing a preset base register address to the virtual machine kernel.

3. The DPU-based RDMA virtualization memory address conversion method according to claim 1, characterized in that: The preset instruction is a system call instruction.

4. The DPU-based RDMA virtualization memory address conversion method according to claim 1, characterized in that: The host system information includes: process file system interface information, memory device file information or application program interface call information.

5. A DPU-based RDMA virtualized data transmission method, characterized in that: The method is used to be executed on a host of a data transmission node, the host is connected to a remote direct memory access device, and the remote direct memory access device is a DPU. The method comprises the following steps: The user process of the sending node submits the remote direct memory access task and creates a work queue element; the work queue element includes the source data address of the sending node and the target address of the receiving node; The remote direct memory access device of the sending node converts the client virtual address of the source data address into a corresponding host physical address based on the second memory conversion table obtained by the DPU-based RDMA virtualization memory address conversion method as described in claims 1 to 4; The source data is read from the corresponding host physical address, encapsulated into a remote direct memory access protocol packet and sent to the receiving node.

6. The DPU-based RDMA virtualization data transmission method according to claim 5, characterized in that: The remote direct memory access protocol packet format is: InfiniBand, RoCE or iWARP.

7. A DPU-based RDMA virtualized data receiving method, characterized in that: The method is used to be executed on a host of a data transmission node, the host is connected to a remote direct memory access device, and the remote direct memory access device is a DPU. The method comprises the following steps: The receiving node receives the remote direct memory access protocol packet to obtain the source data and the target address of the receiving node; The remote direct memory access device of the receiving node converts the client virtual address of the target address into a corresponding host physical address based on the second memory conversion table obtained by the DPU-based RDMA virtualization memory address conversion method as described in claims 1 to 4; The source data is written to the corresponding host physical address.

8. A DPU-based RDMA virtualized memory address translation system, comprising a processor, a memory, and computer instructions stored in the memory, characterized in that: The processor is used to execute the computer instructions, and when the computer program instructions are executed, the system implements the steps of the method according to any one of claims 1 to 7.

9. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.

10. A computer program product, comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.

Citation Information

Patent Citations

  • Memory overconfiguration management method and device

    CN113204407A

  • Address translation technologies

    US20220261178A1

  • Virtualizing physical memory in a virtual machine system utilizing multilevel translation table base registers to map guest virtual addresses to guest physical addresses then to host physical addresses

    US8645665B1

Cited By

  • Method for directly connecting serial port equipment to client based on ARM64 (Advanced RISC Machines 64) architecture

    CN120277021A

  • A method for serial port device direct access to client based on ARM64 architecture

    CN120277021B

  • SMMU virtualization method based on capability set and two-stage conversion control

    CN121579135A

  • An SMMU virtualization method based on capability set and two-stage translation control

    CN121579135B

  • Address mapping method and device for GPU (Graphics Processing Unit) simulation and computer equipment

    CN122346444A