Data access method, device and equipment based on RDMA (Remote Direct Memory Access) and storage medium

By dividing the host memory into independent areas and using the memory routing table, the network card device can directly perform RDMA data access operations, which solves the problem of high system overhead in the memory area registration process in RDMA technology and improves memory access efficiency.

CN119311630APending Publication Date: 2025-01-14VISIONVERA INFORMATION TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411302064.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-18
Publication Date
2025-01-14

AI Technical Summary

Technical Problem

In RDMA technology, the memory area registration (MR) process involves interactive communication between the host and the network card, resulting in increased system overhead and time-consuming.

Method used

By dividing the physical memory of the host into multiple independent memory areas, and recording the attribute information of each memory area in the memory routing table, the network card device can directly extract the access operation information of the target memory area from the direct data access request, and Calculate the read address based on the attribute information in the memory routing table and perform direct data access operations.

Benefits of technology

It significantly reduces the interaction process between the network card device and the host, improves the efficiency of memory access, and reduces system overhead.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119311630A_ABST
    Figure CN119311630A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a data access method, device and equipment based on RDMA, the method is applied to network card equipment, and the method comprises the steps that in response to a direct data access request, access operation information of a target memory area corresponding to the direct data access request is acquired; obtaining attribute information of the target memory district from a pre-obtained memory routing table, wherein the attribute information of each memory district obtained by memory division is stored in the memory routing table; according to the attribute information and the access operation information of the target memory area, a reading address is obtained through calculation, and direct data access operation on the target memory area is executed according to the reading address. According to the method provided by the embodiment of the invention, in the RDMA-based data access process, the memory area can be regarded as an independent node for routing addressing, so that the interaction process between the network card equipment and the host can be remarkably reduced, and the memory access efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a data access method, device, electronic device and computer-readable storage medium based on RDMA. Background Art

[0002] Remote Direct Memory Access (RDMA) technology is designed to solve the delay of server-side data processing during network transmission. RDMA can quickly move data from one system to the remote system memory without any impact on the operating system, which will reduce the computer's processing overhead.

[0003] In the related technology, in the implementation of RDMA, memory region registration (MR) is a key step. The purpose of MR is to map the physical memory region to the network card so that RDMA operations can directly access the memory. The implementation of MR specifically includes: 1. The application requests to register a physical memory region; 2. After the registration is successful, the host receives the memory key returned by the network card; 3. The two communicating parties exchange information such as memory keys to ensure the normal subsequent access.

[0004] However, according to the method of the related art, the registration process of the MR involves interactive communication between the host and the network card, which leads to increased system overhead and time consumption. Summary of the invention

[0005] In view of the above problems, embodiments of the present application are proposed to provide a data access method, device, electronic device and computer-readable storage medium based on RDMA that overcome the above problems or at least partially solve the above problems.

[0006] In a first aspect, an embodiment of the present application discloses a data access method based on RDMA, which is applied to a network card device, and the method includes:

[0007] In response to a data access request, obtaining access operation information of a target memory slice corresponding to the direct data access request;

[0008] Acquire attribute information of the target memory slice from a pre-acquired memory routing table, wherein the memory routing table stores attribute information of each memory slice obtained by memory partitioning;

[0009] A read address is calculated according to the attribute information of the target memory area and the access operation information, and a direct data access operation on the target memory area is performed according to the read address.

[0010] In a second aspect, an embodiment of the present application discloses a data access device based on RDMA, which is applied to a network card device. The method includes:

[0011] A second acquisition module, configured to acquire access operation information of a target memory slice corresponding to the direct data access request in response to the data access request;

[0012] A third acquisition module is used to acquire the attribute information of the target memory slice from a pre-acquired memory routing table, wherein the memory routing table stores the attribute information of each memory slice obtained by memory division;

[0013] The reading module is used to calculate a reading address according to the attribute information of the target memory area and the access operation information, and perform a direct data access operation on the target memory area according to the reading address.

[0014] In a third aspect, an embodiment of the present application discloses an electronic device, including:

[0015] one or more processors; and

[0016] One or more machine-readable media having instructions stored thereon, when executed by the one or more processors, cause the processors to perform the method as described in the first aspect.

[0017] In a fourth aspect, an embodiment of the present application discloses a computer-readable storage medium, which stores a computer program that enables a processor to execute the method described in the first aspect.

[0018] In summary, in this embodiment, the physical memory of the host can be divided into multiple independent memory slices, and the attribute information of each divided memory slice can be recorded by the memory routing table. The memory routing table can be directly maintained by the network card device. Based on this design, when a direct data access request is generated, the network card device can extract the access operation information of the target memory slice from the direct data access request, and obtain the attribute information of the target memory slice from the memory routing table maintained by itself, and then calculate the read address according to the attribute information and access operation information of the target memory slice, and perform the direct data access operation on the target memory slice according to the read address. This makes it possible to treat the memory slice as an independent node for routing addressing in the data access process based on RDMA, which can significantly reduce the interaction process between the network card device and the host and improve the efficiency of memory access. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] Figure 1 is a flowchart of a data access method based on RDMA provided in an embodiment of the present application;

[0020] Figure 2is a flowchart of another RDMA-based data access method provided by an embodiment of the present application;

[0021] Figure 3 is a block diagram of a data access device based on RDMA provided in an embodiment of the present application;

[0022] Figure 4 It is a structural block diagram of an electronic device provided in an application embodiment. DETAILED DESCRIPTION

[0023] In order to make the above-mentioned objects, features and advantages of the present application more obvious and easy to understand, the present application is further described in detail below in conjunction with the accompanying drawings and specific implementation methods.

[0024] Figure 1 A data access method based on RDMA is shown, which is applied to network card devices. Figure 1 , the method may include the following steps:

[0025] Step 101 : in response to a data access request, obtaining access operation information of a target memory area corresponding to the direct data access request.

[0026] In the embodiment of the present application, RDMA is a fast and efficient data reading technology that can effectively reduce the delay of server-side data processing in network transmission. Specifically, the implementation of RDMA can have no impact on the operating system. By directly transmitting data between memories, the data copy process between the application memory and the operating system cache is avoided. This transmission does not require the processor and context switching overhead, freeing up memory bandwidth and processors, and can effectively improve the performance of the application system.

[0027] Furthermore, a network card device is a piece of computer hardware designed to allow computers to communicate on a computer network. The network card device of the embodiment of the present application may be a network card device that applies RDMA technology.

[0028] In this step, the embodiment of the present application can divide the physical memory of the host into multiple independent memory regions (MRs, Memory Regions), each of which can have a unique identifier (such as a virtual MAC address: FF:EF:60:F2:00:80), and there may be one or more logical connections between the identifiers. In addition, the division and identification of memory regions are used for intra-machine network communication. These memory regions are similar to independent nodes in the network and can be used for intra-machine network routing and addressing. The embodiment of the present application does not specifically limit the division method of physical memory into memory regions.

[0029] Furthermore, based on the characteristic of dividing the physical memory into multiple independent memory slices, a memory routing table (MRT) can be maintained in the network card device. The memory routing table can record the attribute information of each divided memory slice. The attribute information can reflect the physical address, storage space size, free or occupied storage space size and other related information of the memory slice. The memory routing table can be maintained directly by the network card device and is not noticeable to the host processor. When the system is initialized, the memory routing table can be constructed to record the information of each memory slice. The memory routing table can be dynamically updated later according to memory usage and application requirements.

[0030] In the embodiment of the present application, the direct data access request may be a read operation or a write operation. When the client (application) performs an RDMA operation on the host's memory, the network card device may extract the access operation information of the target memory area from the direct data access request issued by the client, wherein the target memory area may be the area to be accessed by the direct data access request, which reflects the physical address of the target memory area to be accessed, the storage space location to be accessed, and other related information.

[0031] Step 102: Acquire attribute information of the target memory slice from a pre-acquired memory routing table, wherein the memory routing table stores attribute information of each memory slice obtained by memory partitioning.

[0032] Specifically, since the memory routing table records the attribute information of each divided memory slice, and the network card device determines the target memory slice to be accessed from the direct data access request, the network card device can obtain the attribute information of the target memory slice from the memory routing table.

[0033] Step 103: Calculate a read address according to the attribute information of the target memory slice and the access operation information, and perform a direct data access operation on the target memory slice according to the read address.

[0034] In this step, after obtaining the access operation information of the target memory area carried in the direct data access request and obtaining the attribute information of the target memory area from the memory routing table, the attribute information and access operation information of the target memory area can be used to calculate the read address after verifying that the access operation information and the attribute information belong to the same memory area. The read address is the actual memory read address, and then the direct data access operation to the target memory area can be performed according to the read address. During the entire implementation process of the embodiment of the present application, the physical address of the target memory area can be found through the memory routing table maintained by the network card device itself, and memory read and write operations can be performed based on the found physical address, without registering the memory area one by one, thereby realizing the in-machine network routing and addressing. The memory pre-registration and cache mechanism of the related technology that require the network card device and the host to interact are omitted, thereby greatly reducing the system overhead and improving the execution efficiency.

[0035] It should be noted that if the verification access operation information and attribute information do not belong to the same memory slice, there may be problems such as incorrect attribute information recorded in the memory routing table and incorrect access operation information carried in the direct data access request. In this case, subsequent direct data access operations can be stopped to avoid read errors.

[0036] In an embodiment of the present application, the physical memory of the host can be divided into multiple independent memory slices, and the attribute information of each memory slice divided can be recorded by a memory routing table. The memory routing table can be directly maintained by the network card device. Based on this design, when a direct data access request is generated, the network card device can extract the access operation information of the target memory slice from the direct data access request, and obtain the attribute information of the target memory slice from the memory routing table maintained by itself, and then calculate the read address according to the attribute information and access operation information of the target memory slice, and perform the direct data access operation on the target memory slice according to the read address. This makes it possible to treat the memory slice as an independent node for routing addressing in the data access process based on RDMA, which can significantly reduce the interaction process between the network card device and the host and improve the efficiency of memory access.

[0037] In one embodiment, referring to Figure 2 , the data access method based on RDMA may include the following steps:

[0038] Step 201: Acquire attribute information of the target memory slice from a pre-acquired memory routing table, wherein the memory routing table stores attribute information of each memory slice obtained by memory partitioning.

[0039] This step may specifically refer to the above step 101, which will not be described in detail here.

[0040] Step 202: extract the identifier of the target memory slice from the direct data access request, and obtain the starting address, first offset and first read size of the target memory slice from the memory routing table according to the identifier of the target memory slice.

[0041] The attribute information includes: an identifier of the memory area, a starting address, a first offset, and a first read size.

[0042] In an embodiment of the present application, the attribute information of the memory slice recorded in the memory routing table includes: an identifier of the memory slice, a starting address, a first offset, a first read size and other information. Among them, the identifier can be a unique identifier (MR_MAC_ID) assigned to the memory slice after it is divided. In one implementation, the identifier of the memory slice can be a virtual media access control address (MAC address, Media Access Control Address) of the memory slice, such as FF:EF:60:F2:00:80. There may be one or more logical connections between the identifiers of each memory slice, and the division and identification of the memory slice are used to realize intranet communication.

[0043] The starting address of a memory area refers to the address of the first accessible storage unit in the memory area. In computer operations, the starting address is used to access data in the memory, usually in bytes.

[0044] First offset: refers to the offset of a specific memory address relative to the starting address of the memory segment. This offset is usually in bytes. Specifically, the memory routing table records the memory segment. Physical address With the segment Segment Address (starting address). Generally speaking, offset = actual address - segment starting address. In 16-bit real mode, the offset range is 0 to 0xFFFF, which means the maximum data segment size is 64KB, while in 16-bit protected mode, the offset range is 0 to 0xFFFFFFFF, which means the maximum data segment size is 4GB.

[0045] The first read size is a parameter recorded in the memory routing table that reflects the size of a fixed-length memory address partition in the read memory segment. Each logical address has a segment and an offset. The segment belongs to the memory unit within the page, and the offset mainly refers to the size of a fixed-length memory address partition.

[0046] It should be noted that the attribute information of the memory routing table may also record information such as the memory access permission of the network card device, L_KEY, R_KEY (used to maintain the access permission of one host to the memory of the other host), the mapping relationship between the virtual address and the physical address, etc.

[0047] In this step, since the direct data access request sent by the client includes the identifier of the target memory slice, and the memory routing table records the correspondence between the identifier of the memory slice and the starting address, the first offset, and the first read size of the memory slice, the network card device can extract the identifier of the target memory slice and use it as an index to obtain the starting address, the first offset, and the first read size of the target memory slice in the memory routing table.

[0048] Step 203, when the second offset and the second read size of the target memory slice are respectively consistent with the first offset and the first read size of the target memory slice, the read address is calculated according to the start address and the first offset of the target memory slice.

[0049] The access operation information includes: an identifier of the target memory slice, a second offset, and a second read size.

[0050] In an embodiment of the present application, the direct data access request sent by the client also includes the second offset and the second read size of the target memory slice. After retrieving the memory routing table to obtain the starting address, the first offset and the first read size of the target memory slice, an operation of verifying that the access operation information and the attribute information belong to the same memory slice can be performed, specifically, determining whether the second offset and the second read size of the target memory slice are consistent with the first offset and the first read size of the target memory slice. If the two are consistent, it is determined that the offset and the read size in the request are within the range defined by the memory slice, and subsequent operations can be continued. If the two are inconsistent, there may be problems such as the attribute information recorded in the memory routing table being incorrect, the access operation information carried in the direct data access request being incorrect, and in this case, the subsequent direct data access operation can be stopped to avoid a read error.

[0051] Further, when the second offset and the second read size of the target memory slice are respectively consistent with the first offset and the first read size of the target memory slice, the read address can be calculated according to the starting address and the first offset of the target memory slice. Wherein, offset = actual address - starting address. Then, the actual read address can be obtained by adding the starting address and the first offset of the target memory slice.

[0052] Step 204: perform a direct data access operation on the target memory slice according to the read address and the first read size of the target memory slice.

[0053] When performing direct data access operations, the correct read starting point of the target memory area can be found according to the read address, and then the data of the specified size can be read from the read starting point according to the first read size. After the data is read, it can be fed back to the client through the network by the network card device for use. During the entire addressing and reading process, the host does not need to perform any active operation.

[0054] Optionally, the attribute information includes: a starting address, an identifier, a first offset, and a first read size of the memory slice, and the method further includes:

[0055] Step 205: divide the memory into a plurality of memory slices, and assign a corresponding identifier to each of the memory slices.

[0056] Step 206, recording the identifier, the starting address, the first offset, and the first read size of each of the memory slices as attribute information to obtain the memory routing table.

[0057] In the embodiment of the present application, for steps 205-206, the physical memory of the host can be divided into multiple independent memory slices, and each memory slice can have a unique identifier. Afterwards, based on the characteristics of dividing the physical memory into multiple independent memory slices, the network card device can record the identifier, starting address, first offset, and first read size of each memory slice as attribute information to obtain a memory routing table. The memory routing table can be maintained directly by the network card device, and it is not sensitive to the processor of the host. When the system is initialized, a memory routing table can be constructed to record the information of each memory slice, and then the memory routing table can be dynamically updated according to the memory usage and application requirements. In the subsequent direct data access operation implementation process, the physical address of the target memory slice can be found through the memory routing table maintained by the network card device itself, and the memory read and write operations can be performed based on the found physical address, without registering the memory area one by one, and realizing the in-machine network routing and addressing. The memory pre-registration and cache mechanism of the related technology that require the network card device and the host to interact are omitted, thereby greatly reducing the system overhead and improving the execution efficiency.

[0058] Optionally, the attribute information includes: the first offset and the first read size of the memory slice, and after step 203, may further include:

[0059] Step 207, obtaining the actual offset and actual read size when the direct data access operation is executed.

[0060] Step 208: Update the first offset and the first read size in the attribute information of the target memory slice in the memory routing table according to the actual offset and the actual read size.

[0061] In an embodiment of the present application, for steps 207-208, after the network card device reads the data in the target memory slice through a direct data access operation and returns it to the client, the network card device can update the memory routing table. Specifically, the network card device can identify the actual offset and actual read size generated when the direct data access operation is executed, and update the first offset and the first read size in the attribute information of the target memory slice in the memory routing table through the actual offset and the actual read size. This can ensure the correctness of the data recorded in the memory routing table and reduce the probability of subsequent access errors.

[0062] Optionally, it may also include:

[0063] Step 209: store the memory routing table in the cache area of ​​the network card device.

[0064] In an embodiment of the present application, the memory routing table can be stored in the cache area of ​​the network card device, so that the high-speed read and write characteristics of the cache can be utilized to improve the response speed when calling the memory routing table, thereby improving the overall execution efficiency.

[0065] In an embodiment of the present application, the physical memory of the host can be divided into multiple independent memory slices, and the attribute information of each memory slice divided can be recorded by a memory routing table. The memory routing table can be directly maintained by the network card device. Based on this design, when a direct data access request is generated, the network card device can extract the access operation information of the target memory slice from the direct data access request, and obtain the attribute information of the target memory slice from the memory routing table maintained by itself, and then calculate the read address according to the attribute information and access operation information of the target memory slice, and perform the direct data access operation on the target memory slice according to the read address. This makes it possible to treat the memory slice as an independent node for routing addressing in the data access process based on RDMA, which can significantly reduce the interaction process between the network card device and the host and improve the efficiency of memory access.

[0066] Figure 3 The embodiment of the present application also provides a data access device based on RDMA, which is applied to a network card device, including:

[0067] A second acquisition module 301 is used to obtain access operation information of a target memory area corresponding to the direct data access request in response to the data access request;

[0068] A third acquisition module 302 is used to acquire the attribute information of the target memory slice from a pre-acquired memory routing table, wherein the memory routing table stores the attribute information of each memory slice obtained by memory partitioning;

[0069] The reading module 303 is used to calculate a reading address according to the attribute information of the target memory slice and the access operation information, and perform a direct data access operation on the target memory slice according to the reading address.

[0070] Optionally, the attribute information includes: an identifier, a start address, a first offset, and a first read size of the memory slice;

[0071] The third acquisition module 302 includes:

[0072] The acquisition submodule is used to extract the identifier of the target memory slice from the direct data access request, and acquire the starting address, the first offset and the first read size of the target memory slice from the memory routing table according to the identifier of the target memory slice.

[0073] Optionally, the access operation information includes: an identifier of the target memory slice, a second offset, and a second read size;

[0074] The reading module 303 includes:

[0075] A calculation submodule is used to calculate the read address according to the starting address and the first offset of the target memory slice when the second offset and the second read size of the target memory slice are respectively consistent with the first offset and the first read size of the target memory slice.

[0076] Optionally, the reading module 303 includes:

[0077] The read submodule is used to perform a direct data access operation on the target memory area according to the read address and the first read size of the target memory area.

[0078] Optionally, the attribute information includes: a starting address, an identifier, a first offset, and a first read size of the memory slice;

[0079] The device also includes:

[0080] A partitioning module, used for partitioning the memory into a plurality of memory slices and assigning a corresponding identifier to each of the memory slices;

[0081] The recording module is used to record the identifier, the starting address, the first offset, and the first read size of each memory slice as attribute information to obtain the memory routing table.

[0082] Optionally, the attribute information includes: a starting address of the memory slice, and after the read address is calculated according to the attribute information of the target memory slice and the access operation information, the device further includes:

[0083] A data module, used for obtaining an actual offset and an actual read size when the direct data access operation is executed;

[0084] An updating module is used to update the first offset and the first read size in the attribute information of the target memory slice in the memory routing table through the actual offset and the actual read size.

[0085] Optionally, the device further comprises:

[0086] The storage module is used to store the memory routing table in the cache area of ​​the network card device.

[0087] In summary, in this embodiment, the physical memory of the host can be divided into multiple independent memory slices, and the attribute information of each divided memory slice can be recorded by the memory routing table. The memory routing table can be directly maintained by the network card device. Based on this design, when a direct data access request is generated, the network card device can extract the access operation information of the target memory slice from the direct data access request, and obtain the attribute information of the target memory slice from the memory routing table maintained by itself, and then calculate the read address according to the attribute information and access operation information of the target memory slice, and perform the direct data access operation on the target memory slice according to the read address. This makes it possible to treat the memory slice as an independent node for routing addressing in the data access process based on RDMA, which can significantly reduce the interaction process between the network card device and the host and improve the efficiency of memory access.

[0088] The embodiment of the present invention discloses an electronic device, such as Figure 4 As shown, it includes: a processor 401 and a memory 402, the device number memory 402 stores programs or instructions that can be run on the device number processor 401, and when the device number program or instruction is executed by the device number processor 401, any of the above-mentioned RDMA-based data access methods is implemented.

[0089] An embodiment of the present invention discloses a computer-readable storage medium, wherein a computer program stored in the storage medium enables a processor to execute any of the above methods.

[0090] The various embodiments in this specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the various embodiments can be referenced to each other.

[0091] Those skilled in the art will appreciate that the embodiments of the present application can be provided as methods, devices, or computer program products. Therefore, the present application can adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application can adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0092] The embodiments of the present application are described with reference to the flowcharts and / or block diagrams of the methods, terminal devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing terminal device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing terminal device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0093] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing terminal device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a manufactured product including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0094] These computer program instructions can also be loaded onto a computer or other programmable data processing terminal device so that a series of operating steps are executed on the computer or other programmable terminal device to produce a computer-implemented process, thereby providing instructions for executing on the computer or other programmable terminal device to implement the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0095] Although the preferred embodiments of the present application have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications that fall within the scope of the embodiments of the present application.

[0096] Finally, it should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or terminal 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 process, method, article or terminal device. In the absence of further restrictions, the elements defined by the sentence "including one..." do not exclude the existence of other identical elements in the process, method, article or terminal device including the device number element.

[0097] The above is a detailed introduction to an RDMA-based data access method, device, equipment and storage medium provided by the present application. Specific examples are used in this article to illustrate the principle and implementation method of the present application. The description of the above embodiments is only used to help understand the method and core idea of ​​the present application. At the same time, for a person skilled in the art, according to the idea of ​​the present application, there will be changes in the specific implementation method and application scope. In summary, the content of this specification should not be understood as limiting the present application.

Claims

1. A data access method based on RDMA, applied to a network card device, characterized in that: The method comprises: In response to a data access request, obtaining access operation information of a target memory slice corresponding to the direct data access request; Acquire attribute information of the target memory slice from a pre-acquired memory routing table, wherein the memory routing table stores attribute information of each memory slice obtained by memory partitioning; A read address is calculated according to the attribute information of the target memory slice and the access operation information, and a direct data access operation on the target memory slice is performed according to the read address.

2. The method according to claim 1, characterized in that The attribute information includes: an identifier, a starting address, a first offset, and a first read size of the memory slice; The acquiring the attribute information of the target memory slice from the pre-acquired memory routing table includes: An identifier of the target memory slice is extracted from the direct data access request, and a start address, a first offset and a first read size of the target memory slice are acquired from the memory routing table according to the identifier of the target memory slice.

3. The method according to claim 2, characterized in that The access operation information includes: an identifier of the target memory slice, a second offset, and a second read size; The step of calculating the read address according to the attribute information of the target memory slice and the access operation information includes: When the second offset and the second read size of the target memory slice are respectively consistent with the first offset and the first read size of the target memory slice, the read address is calculated according to the start address and the first offset of the target memory slice.

4. The method according to claim 2, characterized in that: The performing of a direct data access operation on the target memory area according to the read address includes: A direct data access operation on the target memory slice is performed according to the read address and a first read size of the target memory slice.

5. The method according to claim 1, characterized in that The attribute information includes: the starting address, identifier, first offset, and first read size of the memory slice; The method further comprises: Dividing the memory into a plurality of memory slices, and assigning a corresponding identifier to each of the memory slices; The identifier, the starting address, the first offset, and the first read size of each of the memory slices are recorded as attribute information to obtain the memory routing table.

6. The method according to claim 1, characterized in that The attribute information includes: a first offset and a first read size of the memory slice; after calculating the read address according to the attribute information of the target memory slice and the access operation information, the method further includes: Obtaining an actual offset and an actual read size when the direct data access operation is executed; The first offset and the first read size in the attribute information of the target memory slice in the memory routing table are updated according to the actual offset and the actual read size.

7. The method according to claim 1, characterized in that The method further comprises: The memory routing table is stored in a cache area of ​​the network card device.

8. A data access device based on RDMA, applied to a network card device, characterized in that: The method comprises: A second acquisition module, configured to acquire access operation information of a target memory slice corresponding to the direct data access request in response to the data access request; A third acquisition module is used to acquire the attribute information of the target memory slice from a pre-acquired memory routing table, wherein the memory routing table stores the attribute information of each memory slice obtained by memory division; The reading module is used to calculate a reading address according to the attribute information of the target memory area and the access operation information, and perform a direct data access operation on the target memory area according to the reading address.

9. An electronic device, characterized in that: include: one or more processors; and One or more machine-readable media having instructions stored thereon, when executed by the one or more processors, cause the processors to perform the method of any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that: The computer program stored therein enables the processor to execute the method according to any one of claims 1 to 7.