Data access methods, systems, devices, storage media, and program products

By performing association judgment and data reuse for memory access requests in a preset storage area, the problem of high memory access frequency in the prior art is solved, thereby improving memory access bandwidth utilization and reducing system power consumption.

CN122086794APending Publication Date: 2026-05-26SHANGHAI POWERTENSORS INTELLIGENT TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202610215811.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-02-14
Publication Date
2026-05-26

AI Technical Summary

Technical Problem

Existing technologies cannot effectively reduce the number of accesses to improve memory bandwidth utilization, especially in systems with limited area and power consumption, where cache solutions are not applicable.

Method used

By performing association judgment on memory access requests in a preset storage area, the association relationship between the current memory access request and the memory access request in transit is established, and the current memory access request is stored as a memory access request in transit in the preset storage area. The target memory access data is obtained by using the association relationship, thereby realizing the reuse of memory access requests and data.

Benefits of technology

It effectively reduces the number of memory accesses, improves the utilization of memory bus bandwidth, and reduces system power consumption. At the same time, it avoids repeated access to memory and reduces system area overhead.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122086794A_ABST
    Figure CN122086794A_ABST
Patent Text Reader

Abstract

This disclosure provides a data access method, system, device, storage medium, and program product. The data access method includes: receiving a current memory access request; associating the current memory access request with in-transit memory access requests in a preset storage area; in response to a first in-transit memory access request that has an association, establishing an association between the current memory access request and the first in-transit memory access request, and storing the current memory access request as an in-transit memory access request in a free storage space in the preset storage area; in response to receiving read data corresponding to a second in-transit memory access request, returning the read data as the target memory access data for the second in-transit memory access request; obtaining a third in-transit memory access request associated with the second in-transit memory access request based on the association, extracting the target memory access data corresponding to the third in-transit memory access request from the read data, and returning it. This disclosure can effectively reduce the number of memory accesses, improving the utilization rate of the memory access bus bandwidth while reducing system power consumption.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of computer technology, and in particular to a data access method, system, device, storage medium, and program product. Background Technology

[0002] With the continuous development of artificial intelligence and high-performance computing, the amount of data that computing systems need to process is becoming increasingly massive. During the computing process, a large amount of data transfer is required, and there are many repeated memory access requests. Reducing the number of memory accesses and improving memory bandwidth utilization is one of the important means to improve system performance.

[0003] Therefore, how to effectively reduce the number of accesses to improve memory bandwidth utilization has become an urgent technical problem to be solved. Summary of the Invention

[0004] The technical problem to be solved by this disclosure is to overcome the shortcomings of the prior art in that it is impossible to effectively reduce the number of accesses to improve the utilization of memory access bandwidth, and to provide a data access method, system, device, storage medium and program product.

[0005] This disclosure solves the above-mentioned technical problems through the following technical solution:

[0006] According to a first aspect of this disclosure, a data access method is provided, the data access method comprising:

[0007] Receive the current memory access request;

[0008] The current memory access request is associated with the memory access requests in transit in the preset storage area for determination;

[0009] In response to a first memory access request that is associated with it, an association is established between the current memory access request and the first memory access request in transit, and the current memory access request is stored in the free storage space of the preset storage area as the memory access request in transit.

[0010] In response to receiving the read data corresponding to the second in-transit memory access request, the read data is returned as the target memory access data for the second in-transit memory access request;

[0011] Based on the association, obtain the third in-transit memory access request associated with the second in-transit memory access request, extract the target memory access data corresponding to the third in-transit memory access request from the read data, and return it.

[0012] Optionally, the current memory access request includes a memory access address and a memory access length; the preset storage area is used to record the first memory access start address and the first memory access end address of the memory access request in transit;

[0013] The step of associating the current memory access request with in-transit memory access requests in a preset storage area includes:

[0014] Based on the memory access address and memory access length, determine the second memory access start address and the second memory access end address of the current memory access request;

[0015] The current memory access request is compared with the in-transit memory access requests in the preset storage area one by one;

[0016] In response to the second memory access start address being greater than or equal to the first memory access start address and the second memory access end address being less than or equal to the first memory access end address, it is determined that there is an associated first memory access request in transit.

[0017] And / or,

[0018] The data access method also includes:

[0019] In response to the return of the completed target memory access data, the fourth in-transit memory access request corresponding to the target memory access data in the preset storage area is deleted.

[0020] Optionally, the current memory access request includes the current memory access ID (identifier); the preset storage area is used to record the memory access ID, associated identifier, and next-level ID of the memory access request in transit;

[0021] The step of establishing the association between the current memory access request and the first memory access request in transit includes:

[0022] In response to the fact that the association identifier of the first memory access request in transit is not associated, the current memory access ID is written to the next level ID of the first memory access request in transit, and the association identifier of the first memory access request in transit is set to associated;

[0023] or,

[0024] In response to the association identifier of the first in-transit memory access request being associated, the in-transit memory access request corresponding to the next-level ID in the first in-transit memory access request is taken as the first in-transit memory access request, until the association identifier of the first in-transit memory access request is not associated, the current memory access ID is written to the next-level ID of the first in-transit memory access request, and the association identifier of the first in-transit memory access request is set to associated.

[0025] Optionally, the preset storage area is also used to record register information of the memory access request in transit;

[0026] The step of returning the read data as the target memory access data for the second memory access request in response to receiving the read data corresponding to the second memory access request includes:

[0027] Based on the data ID of the read data, obtain the corresponding second in-transit memory access request;

[0028] Obtain the first register information of the second in-transit memory access request from the preset storage area;

[0029] The read data is used as the target memory access data for the second in-transit memory access request, and returned according to the first register information;

[0030] And / or,

[0031] The step of obtaining the third in-transit memory access request associated with the second in-transit memory access request based on the association relationship, and extracting the target memory access data corresponding to the third in-transit memory access request from the read data and returning it includes:

[0032] In response to the association identifier of the second in-transit memory access request being associated, the in-transit memory access request corresponding to the next-level ID in the second in-transit memory access request is taken as the third in-transit memory access request;

[0033] Obtain the second register information of the third in-transit memory access request from the preset storage area;

[0034] Extract the target memory access data corresponding to the third in-transit memory access request from the read data, and return it according to the second register information;

[0035] In response to the association identifier of the third in-transit memory access request being associated, the in-transit memory access request corresponding to the next-level ID in the third in-transit memory access request is taken as the new third in-transit memory access request, and the step of obtaining the second register information of the third in-transit memory access request from the preset storage area is returned to execute until the association identifier of the third in-transit memory access request is not associated.

[0036] Optionally, the data access method further includes:

[0037] In response to a first memory access request that is not associated with a memory access request, a data read instruction for the current memory access request is generated and sent to the memory, and the current memory access request is stored in the free storage space of the preset storage area as the memory access request in transit.

[0038] Optionally, the preset storage area includes an information storage unit and an information overflow storage unit, and the current memory access request includes the current memory access ID;

[0039] Before the step of associating the current memory access request with in-transit memory access requests in a preset storage area, the data memory access method further includes:

[0040] In response to the existence of free storage space in the information storage unit, the step of associating the current memory access request with the in-transit memory access requests in the preset storage area is executed.

[0041] or,

[0042] In response to the absence of free storage space in the information storage unit, a data read instruction for the current memory access request is generated and sent to the memory. The current memory access request is then stored in the storage space corresponding to the current memory access ID in the information overflow storage unit as the memory access request in transit.

[0043] Optionally, the preset storage area is also used to record the request time of the in-transit memory access request, and the preset storage area includes an information storage unit and an information overflow storage unit;

[0044] The step of storing the current memory access request in the free storage space of the preset storage area as the memory access request in transit includes:

[0045] In response to the existence of free storage space in the information storage unit, the current memory access request is stored in the free storage space as the memory access request in transit;

[0046] or,

[0047] In response to the absence of free storage space in the information storage unit, the fourth in-transit storage request that has the earliest request time and has not established the association with other in-transit storage requests is obtained, along with the first storage access ID of the fourth in-transit storage request.

[0048] The fourth in-transit memory access request is stored in the storage space corresponding to the first memory access ID in the information overflow storage unit, and the current memory access request is stored in the storage space of the information storage unit that stores the fourth in-transit memory access request, as the in-transit memory access request;

[0049] or,

[0050] In response to the absence of free storage space in the information storage unit, and receipt of the target memory access data corresponding to the fifth in-transit memory access request in the information storage unit;

[0051] The target memory access data corresponding to the fifth memory access request in transit is returned, and the current memory access request is stored in the storage space of the information storage unit that stores the fifth memory access request in transit, as the memory access request in transit.

[0052] According to a second aspect of this disclosure, a data access system is provided, the data access system comprising a receiving module, an association module, and a return module;

[0053] The receiving module is used to receive the current memory access request;

[0054] The association module is used to associate the current memory access request with the memory access requests in transit in the preset storage area.

[0055] The association module is also used to respond to a first memory access request that is associated with it, establish an association between the current memory access request and the first memory access request, and store the current memory access request in the free storage space of the preset storage area as the memory access request in transit.

[0056] The return module is used to respond to receiving the read data corresponding to the second in-transit memory access request, and return the read data as the target memory access data of the second in-transit memory access request;

[0057] The return module is also used to obtain a third in-transit memory access request associated with the second in-transit memory access request based on the association relationship, and to extract the target memory access data corresponding to the third in-transit memory access request from the read data and return it.

[0058] According to a third aspect of this disclosure, an electronic device is provided, including a memory, a processor, and a computer program stored in the memory and for running on the processor, wherein the processor executes the computer program to implement the data memory access method described in the first aspect of this disclosure.

[0059] According to a fourth aspect of this disclosure, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements the data access method described in the first aspect of this disclosure.

[0060] According to a fifth aspect of this disclosure, a computer program product is provided, including a computer program that, when executed by a processor, implements the data access method described in the first aspect of this disclosure.

[0061] Based on common knowledge in the field, the above optional conditions can be combined arbitrarily to obtain the optional examples of this disclosure.

[0062] The positive and progressive effects of this disclosure are as follows: By associating the current memory access request with the memory access requests in transit, when a first memory access request in transit is associated, the association between the two is established, and the current memory access request is stored in a preset storage area as a memory access request in transit for subsequent request processing and association judgment of subsequent memory access requests, thus achieving memory access request reuse; after receiving the read data of the second memory access request in transit, the target memory access data corresponding to the third memory access request associated with the second memory access request in transit can be directly extracted from the read data through the association relationship and returned, so that the target memory access data of the second memory access request in transit and one or more third memory access requests can be obtained with a single memory access, which not only achieves the reuse of read data, but also effectively reduces the number of memory accesses, avoids repeated access to memory, and reduces system power consumption while improving memory access bus bandwidth utilization; in addition, the reuse of read data can be achieved by storing the memory access request in transit in the preset storage area already in the current cache system, without adding additional data storage units, thus reducing system area overhead. Attached Figure Description

[0063] Figure 1 This is a flowchart of the data access method disclosed herein;

[0064] Figure 2 Here is a flowchart of step S2 of the data access method disclosed herein;

[0065] Figure 3 This is a schematic diagram illustrating the data format stored for in-transit memory access requests disclosed in this invention.

[0066] Figure 4 This is an example diagram of the data access method disclosed herein;

[0067] Figure 5 This is a schematic diagram of the data access and storage system module disclosed herein;

[0068] Figure 6 This is a schematic diagram of the structure of an electronic device disclosed herein. Detailed Implementation

[0069] The present disclosure is further illustrated below by way of embodiments, but the present disclosure is not limited to the scope of the embodiments described herein.

[0070] The prefixes such as "first" and "second" used in this disclosure are merely for distinguishing different descriptive objects and do not limit the position, order, priority, quantity, or content of the described objects. The use of ordinal numbers and other prefixes used to distinguish descriptive objects in this disclosure does not constitute a limitation on the described objects. The description of the described objects is given in the claims or the context of the embodiments, and should not be construed as an unnecessary limitation. Furthermore, in the description of this embodiment, unless otherwise stated, "multiple" means two or more.

[0071] To reduce memory access frequency and improve memory bandwidth utilization, most existing solutions employ a cache (a type of high-speed buffer memory) approach to increase data reuse and reduce the number of cache accesses to memory.

[0072] However, due to the inherent area overhead of cache, it is unsuitable for area-constrained chips, and it also incurs power consumption overhead, making it unsuitable for power-constrained systems. Furthermore, cache solutions only reduce the number of cache accesses to memory, while the number of memory access requests from processing units to the cache remains unchanged, thus limiting the improvement of memory bandwidth utilization.

[0073] In view of this, this application provides a data access method, system, device, storage medium, and program product to solve the problem that existing methods cannot effectively reduce the number of accesses to improve memory access bandwidth utilization.

[0074] Example 1

[0075] In a specific embodiment of this disclosure, a data access method is provided, such as... Figure 1 As shown, the data access method includes:

[0076] S1. Receive the current memory access request;

[0077] S2. Associate the current memory access request with the memory access requests in transit in the preset storage area;

[0078] S3. In response to the first in-transit memory access request that is associated, establish the association between the current memory access request and the first in-transit memory access request, and store the current memory access request in the free storage space of the preset storage area as an in-transit memory access request.

[0079] S4. In response to receiving the read data corresponding to the second in-transit memory access request, return the read data as the target memory access data of the second in-transit memory access request;

[0080] S5. Based on the association relationship, obtain the third in-transit memory access request associated with the second in-transit memory access request, extract the target memory access data corresponding to the third in-transit memory access request from the read data and return it.

[0081] Specifically, the data access method of this embodiment can be executed by any processing unit that requires memory access, such as a processor or AI accelerator. After the processing unit receives the current memory access request in step S1, for example, after receiving the current memory access request sent from the CPU (Central Processing Unit), it does not directly send the current memory access request to the cache, main memory, or other memory. Instead, in step S2, it associates the current memory access request with the in-transit memory access requests in a preset storage area to determine whether there are any reusable in-transit memory access requests. Here, an in-transit memory access request refers to a memory access request that arrived earlier than the current memory access request but has not yet returned the corresponding required data.

[0082] When a reusable first memory access request exists, the association between the current memory access request and the first memory access request is established in step S3. Then, the system waits for the data to be read from the first memory access request, without sending the current memory access request to the memory, thus reducing the number of memory accesses. Each memory access request has its own unique memory access ID, so the current memory access ID of the current memory access request can be associated with the second memory access ID of the first memory access request.

[0083] Since it is necessary to wait for the read data of the first in-transit memory access request before the data required by the current in-transit memory access request can be obtained from the read data, the current memory access request is also an in-transit memory access request. It needs to be stored in the free storage space of the preset storage area so that the current memory access request can be processed after receiving the read data of the first in-transit memory access request. It can also be used for the association judgment of subsequent memory access requests to realize the reuse of memory access requests.

[0084] When read data is received from memory, the tag of the read data carries the memory access ID (data ID) of the corresponding memory access request. Therefore, the second memory access request corresponding to the read data can be determined by the tag. The read data is the data required by the second memory access request. The read data can be returned to the CPU as the target memory access data of the second memory access request.

[0085] After returning the target memory access data for the second in-transit memory access request, since there may be other in-transit memory access requests that can be reused with the second in-transit memory access request, the third in-transit memory access request associated with the second in-transit memory access request can be obtained through the association relationship. For example, by finding one or more fourth memory access IDs associated with the third memory access ID of the second in-transit memory access request, the corresponding third in-transit memory access request is determined according to each fourth memory access ID. Then, according to the data requirements of each third in-transit memory access request, the target memory access data required by each third in-transit memory access request is extracted from the read data and returned to the CPU, thereby completing the processing of each third in-transit memory access request.

[0086] This specific implementation associates current memory access requests with in-transit memory access requests. When a first in-transit memory access request is associated, the association is established, and the current memory access request is stored in a preset storage area as an in-transit memory access request for subsequent request processing and association determination of subsequent memory access requests, thus reusing memory access requests. After receiving the read data of the second in-transit memory access request, the target memory access data corresponding to the third in-transit memory access request associated with the second in-transit memory access request can be directly extracted from the read data through the association relationship and returned. Thus, the target memory access data of the second in-transit memory access request and one or more third in-transit memory access requests can be obtained with a single memory access. This not only achieves the reuse of read data, effectively reduces the number of memory accesses, avoids repeated access to memory, and reduces system power consumption while improving memory access bus bandwidth utilization. In addition, the reuse of read data can be achieved by storing in-transit memory access requests in the preset storage area already in the current cache system, without the need to add additional data storage units, thus reducing system area overhead.

[0087] In one specific implementation, the data access method further includes:

[0088] S6. In response to a first memory access request that is not associated, generate a data read instruction for the current memory access request and send it to the memory, and store the current memory access request in the free storage space of the preset storage area as a memory access request in transit.

[0089] Specifically, when there is no first in-transit memory access request associated with the current memory access request, it is necessary to obtain the data required by the current memory access request from the memory. Therefore, a data read instruction for the current memory access request can be generated and sent to the memory, and the current memory access request can be stored in the free storage space of the preset storage area as an in-transit memory access request. When the required read data is received from the memory later, the read data can be returned to the CPU as the target memory access data of the current in-transit memory access request to complete the processing of the current memory access request. At the same time, it can also be used for the association judgment of subsequent memory access requests to realize the reuse of memory access requests.

[0090] In one specific implementation, the data access method further includes:

[0091] S7. In response to the return of the completed target memory access data, delete the fourth in-transit memory access request corresponding to the target memory access data in the preset storage area.

[0092] Specifically, once the target memory access data of a memory access request in transit is returned to the CPU, it indicates that the processing of the memory access request in transit has been completed. Then, the memory access request record in transit can be deleted from the preset storage area to free up storage space in the preset storage area for the storage of subsequent memory access request information.

[0093] In one specific implementation, the current memory access request includes the memory access address and the memory access length; a preset storage area is used to record the first memory access start address and the first memory access end address of the memory access requests in transit;

[0094] like Figure 2 As shown, step S2 includes:

[0095] S21. Based on the memory access address and memory access length, determine the second memory access start address and the second memory access end address of the current memory access request;

[0096] S22. Compare the current memory access request with the in-transit memory access requests in the preset storage area one by one;

[0097] S23. In response to the second memory access start address being greater than or equal to the first memory access start address and the second memory access end address being less than or equal to the first memory access end address, it is determined that there is an associated first memory access request in transit.

[0098] Specifically, each memory access request carries the memory access address, memory access length, memory access ID, and the address of the register to be written, so as to accurately retrieve the required data from memory and return the retrieved data to the corresponding register address for data processing. Therefore, in order to implement the storage of information carried by the requesting end (current memory access request / in-transit memory access request), such as... Figure 3 As shown, a tag format including fields such as memory access ID, address information, register information, association identifier, next-level ID, and request time can be set in the preset storage area to realize the information storage of each memory access request. The address information can be the memory access start address and memory access end address of each memory access request.

[0099] Upon receiving the current memory access request, the second memory access start address Cas and the second memory access end address Cae of the current memory access request are determined based on the memory access address and memory access length of the current memory access request. The second memory access start address Cas and the second memory access end address Cae are compared with the first memory access start address Has and the first memory access end address Hae of each memory access request in transit in the preset storage area. When the following formula (1) is satisfied, it indicates that the data required by the current memory access request is a subset of the data required by the memory access request in transit, and the data of the memory access request can be reused:

[0100] (1)

[0101] Therefore, the in-transit memory access request can be identified as the first in-transit memory access request associated with the current memory access request, and the association between the current memory access request and the first in-transit memory access request can be established.

[0102] In one specific implementation, the current memory access request includes the current memory access ID; a preset storage area is used to record the memory access ID, associated identifier, and next-level ID of memory access requests in transit;

[0103] Step S3 includes: in response to the fact that the association identifier of the first memory access request in transit is not associated, writing the current memory access ID to the next level ID of the first memory access request in transit, and setting the association identifier of the first memory access request in transit to associated;

[0104] or,

[0105] In response to the association identifier of the first in-transit memory access request being associated, the in-transit memory access request corresponding to the next-level ID in the first in-transit memory access request is taken as the first in-transit memory access request, until the association identifier of the first in-transit memory access request is not associated, the current memory access ID is written to the next-level ID of the first in-transit memory access request, and the association identifier of the first in-transit memory access request is set to associated.

[0106] Specifically, when there is a first memory access request that is associated with the current memory access request, the current memory access ID of the current memory access request can be filled into the next-level ID field of the first memory access request, and the association identifier of the first memory access request can be set to association, for example, the association identifier can be set to 1, so as to establish the association relationship between the current memory access request and the first memory access request.

[0107] When the association identifier of the first in-transit memory access request is associated, it means that other in-transit memory access requests have already established an association relationship with the first in-transit memory access request. That is, there is already an associated memory access ID in the next-level ID of the first in-transit memory access request, and the current memory access ID cannot be written. Then, the in-transit memory access request that has established an association relationship with the first in-transit memory access request can be determined based on the memory access ID in the next-level ID of the first in-transit memory access request. It is then determined whether the association identifier of the in-transit memory access request is not associated. If it is still associated, the search continues to the next-level ID until the association identifier is not associated. For example, if the association identifier is 0, the current memory access ID of the current memory access request is filled into the next-level ID field, and the association identifier of the first in-transit memory access request is set to associated.

[0108] For example, the associated identifier of memory access request A in transit is 1, the next-level ID field contains the memory access ID of memory access request B in transit, the associated identifier of memory access request B in transit is 1, the next-level ID field contains the memory access ID of memory access request C in transit, the associated identifier of memory access request C in transit is 0, and the next-level ID field is empty; if the current memory access request D is associated with memory access request A in transit, then the current memory access ID of the current memory access request D is filled into the next-level ID field of memory access request C in transit, and the associated identifier of memory access request C in transit is set to 1.

[0109] In one specific implementation, the preset storage area is also used to record the request time of in-transit memory access requests. The preset storage area includes an information storage unit and an information overflow storage unit.

[0110] Step S3 includes:

[0111] S311. In response to the existence of free storage space in the information storage unit, the current memory access request is stored in the free storage space as an in-transit memory access request.

[0112] Specifically, the storage depth of the information storage unit can be preset. For example, if the storage depth is N, a valid identifier field vld is set for each memory access request in the information storage unit. The existence of free storage space can be determined based on vld. If vld=0, it means that the storage space in the information storage unit is free storage space. The current memory access request can be stored in the free storage space, and vld is set to 1.

[0113] The storage depth of the information overflow storage unit is matched with the number of memory access IDs, so that the corresponding storage location can be determined directly based on the memory access ID. Therefore, there is no need to set a valid identifier field vld in the information overflow storage unit.

[0114] Of course, if the S7 is used to delete the fourth in-transit memory access request, it can be determined whether the corresponding storage space is free by checking whether there is data stored in the storage space.

[0115] In one specific implementation, step S3 includes:

[0116] S321. In response to the absence of free storage space in the information storage unit, obtain the fourth in-transit storage request that has the earliest request time and has not been associated with other in-transit storage requests, and the first storage access ID of the fourth in-transit storage request.

[0117] S322. Store the fourth in-transit memory access request in the information overflow storage unit to the storage space corresponding to the first memory access ID, and store the current memory access request in the storage space of the information storage unit that stores the fourth in-transit memory access request, as an in-transit memory access request.

[0118] Specifically, when there is no free storage space in the information storage unit, considering that the fourth in-transit storage request, which has the earliest request time and has not established a relationship with other in-transit storage requests, is less likely to establish a relationship with subsequent received storage requests, the fourth in-transit storage request can be stored in the storage space corresponding to the first storage ID in the information overflow storage unit first, and then the current storage request can be stored in the storage space of the information storage unit that stores the fourth in-transit storage request, for subsequent processing and association judgment of subsequent storage requests, so as to realize the reuse of storage requests.

[0119] In one specific implementation, step S3 includes:

[0120] S331. In response to the absence of free storage space in the information storage unit, and receiving the target memory access data corresponding to the fifth in-transit memory access request in the information storage unit;

[0121] S332. Return the target memory access data corresponding to the fifth in-transit memory access request, and store the current memory access request in the storage space of the information storage unit that stores the fifth in-transit memory access request, as an in-transit memory access request.

[0122] Specifically, when there is no free storage space in the information storage unit, and the target memory access data corresponding to the fifth memory access request in transit is received in the information storage unit, the target memory access data corresponding to the fifth memory access request in transit can be returned first, and the current memory access request can be stored in the storage space of the information storage unit that stores the fifth memory access request in transit for subsequent processing and association judgment of subsequent memory access requests, so as to realize the reuse of memory access requests.

[0123] In one specific implementation, the preset storage area is also used to record register information of memory access requests in transit;

[0124] Step S4 includes:

[0125] S41. Obtain the corresponding second in-transit memory access request based on the data ID of the read data;

[0126] S42. Obtain the first register information of the second in-transit memory access request from the preset storage area;

[0127] S43. Use the read data as the target memory access data for the second in-transit memory access request, and return based on the information in the first register.

[0128] Specifically, the tag for reading data carries the memory access ID of the corresponding memory access request. Therefore, the second in-transit memory access request corresponding to the read data can be determined by the memory access ID. Then, the first register information is obtained from the second in-transit memory access request record in the preset storage area to return the read data to the first register, thereby completing the processing of the second in-transit memory access request.

[0129] In one specific implementation, step S5 includes:

[0130] S51. In response to the association identifier of the second in-transit memory access request being associated, the in-transit memory access request corresponding to the next-level ID in the second in-transit memory access request is taken as the third in-transit memory access request.

[0131] S52. Obtain the second register information of the third in-transit memory access request from the preset storage area;

[0132] S53. Extract the target memory access data corresponding to the third in-transit memory access request from the read data, and return it according to the second register information;

[0133] S54. In response to the association identifier of the third in-transit memory access request being associated, the in-transit memory access request corresponding to the next level ID in the third in-transit memory access request is taken as the new third in-transit memory access request, and the execution step S52 is returned until the association identifier of the third in-transit memory access request is not associated.

[0134] Specifically, after processing the second in-transit memory access request, the system determines whether there is an associated third in-transit memory access request based on the association identifier in the second in-transit memory access request record in the preset storage area. If so, the system obtains the third in-transit memory access request through the memory access ID in the next-level ID field of the second in-transit memory access request, and obtains the address information and second register information in the third in-transit memory access request record. Based on the address information, the system extracts the target memory access data corresponding to the third in-transit memory access request from the read data and returns the target memory access data to the second register to complete the processing of the third in-transit memory access request. At the same time, the system determines whether there are other associated third in-transit memory access requests based on the association identifier in the third in-transit memory access request record. If so, the system also extracts the corresponding target memory access data based on the address information and register information in the records of other third in-transit memory access requests and returns it. This process continues until the association identifier is no longer associated, thus completing the processing of all third in-transit memory access requests associated with the second in-transit memory access request.

[0135] Taking the aforementioned memory access requests A, B, and C as examples, when the tag of the received read data corresponds to memory access request A, the first register information 'a' of memory access request A is obtained, and the read data is returned to the first register 'a'. Since the association identifier of memory access request A is 1, it is determined that the associated memory access request is B based on the next-level ID in memory access request A. The address information and second register information 'b' of memory access request B are obtained, the target memory access data corresponding to the address information is extracted from the read data, and the target memory access data is returned to the second register 'b'. Since the association identifier of memory access request B is 1, it is determined that the associated memory access request is C based on the next-level ID in memory access request B. The address information and second register information 'c' of memory access request C are obtained, the target memory access data corresponding to the address information is extracted from the read data, and the target memory access data is returned to the second register 'c'. Since the association identifier of memory access request C is 0, it can be determined that the processing of this read data is terminated. Therefore, three in-transit memory access requests can be processed with a single data read, effectively reducing the number of memory accesses.

[0136] In a specific example, such as Figure 4 As shown, when a current memory access request is received, the current memory access request is first associated with the memory access requests in transit in the information storage unit. The current memory access request includes the memory access address, memory access length, current memory access ID, and the register address to be written when the data is returned. The information storage unit includes the memory access ID, address information, register information, association identifier, next-level ID, and request time of the memory access request in transit. The second memory access start address Cas and the second memory access end address Cae of the current memory access request are determined based on the memory access address of the current memory access request. The second memory access start address Cas and the second memory access end address Cae of the current memory access request are then compared with the address information of each memory access request in transit with vld=1 in the information storage unit (including the first memory access start address Has and the first memory access end address Hae) to determine whether there is a first memory access request in transit that satisfies formula (1).

[0137] If a first memory access request exists, its association identifier is used to determine whether it has been associated with other memory access requests. If the association identifier is 0, the current memory access ID of the current memory access request is written into the next-level ID of the first memory access request record, and the association identifier is set to 1. If the association identifier is 1, the memory access request record corresponding to the memory access ID in the next-level ID of the first memory access request record is searched, and so on, until a memory access request record with an association identifier of 0 is found. The current memory access ID of the current memory access request is then written into the next-level ID of that memory access request, and the association identifier of that memory access request record is set to 1. After writing the current memory access ID of the current memory access request into the next-level ID, the current memory access ID, address information, register information, and current time of the current memory access request are recorded in the free storage space of the information storage unit (e.g., vld is 0), with the association identifier set to 0 and vld set to 1.

[0138] If there is no first memory access request in transit, the free storage space of the information storage unit is determined according to vld=0, and the current memory access ID, address information, register information and current time of the current memory access request are recorded, the associated identifier is set to 0, vld is set to 1, and the data read instruction of the current memory access request is sent to the memory.

[0139] When writing a record of the current memory access request into the free storage space of the information storage unit, if the information storage unit has no free storage space, the earliest en route memory access request that has not been associated with other en route memory access requests (association identifier is 0) is retrieved. This en route memory access request record is stored in the storage space of the information overflow storage unit corresponding to the memory access ID of the en route memory access request. The current memory access ID, address information, register information, and current time of the current memory access request are also stored in this location, and the association identifier is set to 0 and vld is set to 1. Of course, if there is no first en route memory access request, the current memory access request can also be directly stored in the information overflow storage unit. The storage location of the information overflow storage unit is determined by the current memory access ID of the current memory access request.

[0140] When receiving read data returned by the memory carrying the same memory access ID (data ID) as the memory access request, the system queries the information storage unit for the in-transit memory access request with the same data ID. The read data is then returned to the register corresponding to the register information in the in-transit memory access request. At the same time, the system determines whether there is a reused in-transit memory access request based on the associated identifier field of the in-transit memory access request. If there is, the system obtains the memory access ID from the next level ID of the in-transit memory access request, releases the record of the in-transit memory access request, and sets vld to 0.

[0141] If a reused in-transit memory access request exists, the corresponding target memory access data is extracted from the read data according to the address and register information of the reused in-transit memory access request and returned to the corresponding register. At the same time, the association identifier field of the reused in-transit memory access request is used to determine whether there are other reused in-transit memory access requests, and the record of the reused in-transit memory access request is released, and vld is set to 0. This process continues until the association identifier of the reused in-transit memory access request is 0, at which point the read data processing is considered complete.

[0142] If no in-transit memory access request with the same memory access ID is found in the information storage unit, the register information of the in-transit memory access request corresponding to the memory access ID is directly read from the information overflow storage unit, and the read data is returned to the register corresponding to the register information in the in-transit memory access request.

[0143] In another possible implementation, the preset storage area includes an information storage unit and an information overflow storage unit, and the current memory access request includes the current memory access ID;

[0144] Prior to step S2, the data access method further includes:

[0145] S01. In response to the existence of free storage space in the information storage unit, step S3 is executed;

[0146] S02. In response to the absence of free storage space in the information storage unit, a data read instruction for the current memory access request is generated and sent to the memory. The current memory access request is then stored in the information overflow storage unit in the storage space corresponding to the current memory access ID, as an in-transit memory access request.

[0147] Specifically, to simplify the data processing flow, before associating the current memory access request with in-transit memory access requests in the preset storage area, it is first determined whether the information storage unit has free storage space. If free storage space exists, the current memory access request is then associated with in-transit memory access requests in the preset storage area. If no free storage space exists, a data read instruction for the current memory access request is directly generated and sent to the memory to retrieve the data. The current memory access request is then stored in the information overflow storage unit in the storage space corresponding to the current memory access ID, as an in-transit memory access request. This is so that the current memory access request can be processed after the read data from the current in-transit memory access request is received. The memory access requests in the information overflow storage unit are not used for associating with subsequent memory access requests.

[0148] This embodiment associates current memory access requests with in-transit memory access requests. When a first in-transit memory access request is associated, the association is established, and the current memory access request is stored in a preset storage area as an in-transit memory access request for subsequent request processing and association determination of subsequent memory access requests, thus reusing memory access requests. After receiving the read data of the second in-transit memory access request, the target memory access data corresponding to the third in-transit memory access request associated with the second in-transit memory access request can be directly extracted from the read data through the association relationship and returned. Thus, the target memory access data of the second in-transit memory access request and one or more third in-transit memory access requests can be obtained with a single memory access. This not only achieves the reuse of read data, effectively reduces the number of memory accesses, avoids repeated access to memory, and reduces system power consumption while improving memory access bus bandwidth utilization. In addition, the reuse of read data can be achieved by storing in-transit memory access requests in the preset storage area already in the current cache system, without adding additional data storage units, thus reducing system area overhead.

[0149] Example 2

[0150] In one specific embodiment of this disclosure, a data access system is provided, such as... Figure 5 As shown, the data access system includes a receiving module 100, an association module 200, and a return module 300;

[0151] The receiving module 100 is used to receive the current memory access request;

[0152] The association module 200 is used to associate and determine the current memory access request with the memory access requests in transit in the preset storage area;

[0153] The association module 200 is also used to respond to a first in-transit memory access request that has an association, establish an association relationship between the current memory access request and the first in-transit memory access request, and store the current memory access request in the free storage space of the preset storage area as an in-transit memory access request.

[0154] The return module 300 is used to respond to the received read data corresponding to the second in-transit memory access request and return the read data as the target memory access data of the second in-transit memory access request;

[0155] The return module 300 is also used to obtain the third in-transit memory access request associated with the second in-transit memory access request based on the association relationship, extract the target memory access data corresponding to the third in-transit memory access request from the read data and return it.

[0156] In one specific implementation, the current memory access request includes the memory access address and the memory access length; a preset storage area is used to record the first memory access start address and the first memory access end address of the memory access requests in transit;

[0157] The association module 200 includes a determination unit, a comparison unit, and an association unit;

[0158] The determining unit is used to determine the second memory access start address and the second memory access end address of the current memory access request based on the memory access address and the memory access length;

[0159] The comparison unit is used to compare the current memory access request with the in-transit memory access requests in the preset storage area one by one;

[0160] The association unit is used to determine that there is an associated first memory access request in transit when the second memory access start address is greater than or equal to the first memory access start address and the second memory access end address is less than or equal to the first memory access end address.

[0161] In one specific implementation, the data access system further includes a deletion module;

[0162] The deletion module is used to delete the fourth in-transit memory access request corresponding to the target memory access data in the preset storage area in response to the return of the completed target memory access data.

[0163] In one specific implementation, the current memory access request includes the current memory access ID; a preset storage area is used to record the memory access ID, associated identifier, and next-level ID of memory access requests in transit;

[0164] The association module 200 is also used to respond to the fact that the association identifier of the first in-transit memory access request is not associated, write the current memory access ID to the next level ID of the first in-transit memory access request, and set the association identifier of the first in-transit memory access request to associated.

[0165] or,

[0166] The association module 200 is also used to respond to the association identifier of the first in-transit memory access request being associated, to take the in-transit memory access request corresponding to the next level ID in the first in-transit memory access request as the first in-transit memory access request, until the association identifier of the first in-transit memory access request is not associated, to write the current memory access ID to the next level ID of the first in-transit memory access request, and to set the association identifier of the first in-transit memory access request to associated.

[0167] In one specific implementation, the preset storage area is also used to record register information of memory access requests in transit;

[0168] The return module 300 is also used to obtain the corresponding second in-transit memory access request based on the data ID of the read data; obtain the first register information of the second in-transit memory access request from the preset storage area; use the read data as the target memory access data of the second in-transit memory access request, and return according to the first register information.

[0169] In one specific embodiment, the return module 300 includes a first acquisition unit, a second acquisition unit, and a return unit;

[0170] The first acquisition unit is used to respond to the association identifier of the second in-transit memory access request as an association, and to take the in-transit memory access request corresponding to the next level ID in the second in-transit memory access request as the third in-transit memory access request.

[0171] The second acquisition unit is used to acquire the second register information of the third in-transit memory access request from the preset storage area;

[0172] The return unit is used to extract the target memory access data corresponding to the third in-transit memory access request from the read data and return it according to the second register information;

[0173] The first acquisition unit is also used to respond to the association identifier of the third in-transit memory access request being associated, and to take the in-transit memory access request corresponding to the next level ID in the third in-transit memory access request as a new third in-transit memory access request, and return to call the second acquisition unit until the association identifier of the third in-transit memory access request is not associated.

[0174] In one specific implementation, the association module 200 is further configured to, in response to a first in-transit memory access request that has no association, generate a data read instruction for the current memory access request and send it to the memory, and store the current memory access request in the free storage space of a preset storage area as an in-transit memory access request.

[0175] In one specific implementation, the preset storage area includes an information storage unit and an information overflow storage unit, and the current memory access request includes the current memory access ID;

[0176] The data access system also includes a judgment module;

[0177] The judgment module is used to call the associated module 200 in response to the existence of free storage space in the information storage unit;

[0178] The judgment module is also used to respond to the absence of free storage space in the information storage unit, generate a data read instruction for the current memory access request and send it to the memory, and store the current memory access request in the storage space corresponding to the current memory access ID in the information overflow storage unit as an in-transit memory access request.

[0179] In one specific implementation, the preset storage area is also used to record the request time of in-transit memory access requests. The preset storage area includes an information storage unit and an information overflow storage unit.

[0180] The association module 200 is also used to store the current memory access request in the free storage space in response to the existence of free storage space in the information storage unit, as a memory access request in transit.

[0181] In one specific embodiment, the association module 200 is further configured to, in response to the absence of free storage space in the information storage unit, obtain the fourth in-transit storage request with the earliest request time and which has not established an association relationship with other in-transit storage requests, and the first storage ID of the fourth in-transit storage request; store the fourth in-transit storage request in the storage space corresponding to the first storage ID in the information overflow storage unit, and store the current storage request in the storage space of the information storage unit that stores the fourth in-transit storage request, as an in-transit storage request.

[0182] In one specific embodiment, the association module 200 is further configured to respond to the absence of free storage space in the information storage unit and to receive the target storage data corresponding to the fifth in-transit storage request in the information storage unit; return the target storage data corresponding to the fifth in-transit storage request and store the current storage request in the storage space of the information storage unit that stores the fifth in-transit storage request as an in-transit storage request.

[0183] For the system embodiments, since they basically correspond to the method embodiments, the relevant parts can be referred to in the description of the method embodiments. The system embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate. The components as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this disclosure according to actual needs.

[0184] This embodiment associates current memory access requests with in-transit memory access requests. When a first in-transit memory access request is associated, the association is established, and the current memory access request is stored in a preset storage area as an in-transit memory access request for subsequent request processing and association determination of subsequent memory access requests, thus reusing memory access requests. After receiving the read data of the second in-transit memory access request, the target memory access data corresponding to the third in-transit memory access request associated with the second in-transit memory access request can be directly extracted from the read data through the association relationship and returned. Thus, the target memory access data of the second in-transit memory access request and one or more third in-transit memory access requests can be obtained with a single memory access. This not only achieves the reuse of read data, effectively reduces the number of memory accesses, avoids repeated access to memory, and reduces system power consumption while improving memory access bus bandwidth utilization. In addition, the reuse of read data can be achieved by storing in-transit memory access requests in the preset storage area already in the current cache system, without adding additional data storage units, thus reducing system area overhead.

[0185] Example 3

[0186] Figure 6This is a schematic diagram of the structure of an electronic device according to an example embodiment of the present disclosure. The electronic device includes a memory, a processor, and a computer program stored in the memory and used to run on the processor. When the processor executes the computer program, it implements the data access method described in any of the above embodiments. Figure 6 The electronic device 30 shown is merely an example and should not impose any limitation on the functionality and scope of use of the embodiments disclosed herein.

[0187] like Figure 6 As shown, the electronic device 30 can be manifested as a general-purpose computing device, such as a server device. The components of the electronic device 30 may include, but are not limited to: at least one processor 31, at least one memory 32, and a bus 33 connecting different system components (including memory 32 and processor 31).

[0188] Bus 33 includes a data bus, an address bus, and a control bus.

[0189] The memory 32 may include volatile memory, such as random access memory (RAM) 321 and / or cache memory 322, and may further include read-only memory (ROM) 323.

[0190] The memory 32 may also include a program tool 325 (or utility) having a set (at least one) program module 324, such program module 324 including but not limited to: an operating system, one or more application programs, other program modules and program data, each or some combination of these examples may include an implementation of a network environment.

[0191] The processor 31 executes various functional applications and data processing, such as the data access method provided in any of the above embodiments, by running computer programs stored in the memory 32.

[0192] Electronic device 30 can also communicate with one or more external devices 34 (e.g., keyboard, pointing device, etc.). This communication can be performed through input / output (I / O) interface 35. Furthermore, electronic device 30 can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN), and / or public network, such as the Internet) via network adapter 36. As shown, network adapter 36 communicates with other modules of electronic device 30 via bus 33. It should be understood that, although not shown in the figure, other hardware and / or software modules can be used in conjunction with electronic device 30, including but not limited to: microcode, device drivers, redundant processors, external disk drive arrays, RAID (disk array) systems, tape drives, and data backup storage systems.

[0193] It should be noted that although several units / modules or sub-units / modules of the electronic device have been mentioned in the detailed description above, this division is merely exemplary and not mandatory. In fact, according to embodiments of this disclosure, the features and functions of two or more units / modules described above can be embodied in one unit / module. Conversely, the features and functions of one unit / module described above can be further divided and embodied by multiple units / modules.

[0194] Example 4

[0195] This disclosure also provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the data access method provided in any of the above embodiments.

[0196] The readable storage medium may be more specifically adopted, including but not limited to: portable disk, hard disk, random access memory, read-only memory, erasable programmable read-only memory, optical storage device, magnetic storage device, or any suitable combination thereof.

[0197] Example 5

[0198] This disclosure also provides a computer program product, including a computer program that, when executed by a processor, implements the data access method described in any of the above embodiments.

[0199] The program code for executing the computer program product of this disclosure can be written in any combination of one or more programming languages, and the program code can be executed entirely on a user device, partially on a user device, as a stand-alone software package, partially on a user device and partially on a remote device, or entirely on a remote device.

[0200] While specific embodiments of this disclosure have been described above, those skilled in the art should understand that these are merely illustrative examples, and the scope of protection of this disclosure is defined by the appended claims. Those skilled in the art can make various changes or modifications to these embodiments without departing from the principles and essence of this disclosure, but all such changes and modifications fall within the scope of protection of this disclosure.

Claims

1. A data access method, characterized in that, The data access method includes: Receive the current memory access request; The current memory access request is associated with the memory access requests in transit in the preset storage area for determination; In response to a first memory access request that is associated with it, an association is established between the current memory access request and the first memory access request in transit, and the current memory access request is stored in the free storage space of the preset storage area as the memory access request in transit. In response to receiving the read data corresponding to the second in-transit memory access request, the read data is returned as the target memory access data for the second in-transit memory access request; Based on the association, obtain the third in-transit memory access request associated with the second in-transit memory access request, extract the target memory access data corresponding to the third in-transit memory access request from the read data and return it.

2. The data access method according to claim 1, characterized in that, The current memory access request includes the memory access address and the memory access length; the preset storage area is used to record the first memory access start address and the first memory access end address of the memory access request in transit. The step of associating the current memory access request with in-transit memory access requests in a preset storage area includes: Based on the memory access address and memory access length, determine the second memory access start address and the second memory access end address of the current memory access request; The current memory access request is compared with the in-transit memory access requests in the preset storage area one by one; In response to the second memory access start address being greater than or equal to the first memory access start address and the second memory access end address being less than or equal to the first memory access end address, it is determined that there is an associated first memory access request in transit. And / or, The data access method also includes: In response to the return of the completed target memory access data, the fourth in-transit memory access request corresponding to the target memory access data in the preset storage area is deleted.

3. The data access method according to claim 1, characterized in that, The current memory access request includes the current memory access ID; the preset storage area is used to record the memory access ID, associated identifier, and next-level ID of the memory access request in transit; The step of establishing the association between the current memory access request and the first memory access request in transit includes: In response to the fact that the association identifier of the first memory access request in transit is not associated, the current memory access ID is written to the next level ID of the first memory access request in transit, and the association identifier of the first memory access request in transit is set to associated; or, In response to the association identifier of the first in-transit memory access request being associated, the in-transit memory access request corresponding to the next-level ID in the first in-transit memory access request is taken as the first in-transit memory access request, until the association identifier of the first in-transit memory access request is not associated, the current memory access ID is written to the next-level ID of the first in-transit memory access request, and the association identifier of the first in-transit memory access request is set to associated.

4. The data access method according to claim 3, characterized in that, The preset storage area is also used to record register information of the memory access request in transit; The step of returning the read data as the target memory access data for the second memory access request in response to receiving the read data corresponding to the second memory access request includes: Based on the data ID of the read data, obtain the corresponding second in-transit memory access request; Obtain the first register information of the second in-transit memory access request from the preset storage area; The read data is used as the target memory access data for the second in-transit memory access request, and returned according to the first register information; And / or, The step of obtaining the third in-transit memory access request associated with the second in-transit memory access request based on the association relationship, and extracting the target memory access data corresponding to the third in-transit memory access request from the read data and returning it includes: In response to the association identifier of the second in-transit access request being associated, the in-transit access request corresponding to the next-level ID in the second in-transit access request is taken as the third in-transit access request; Obtain the second register information of the third in-transit memory access request from the preset storage area; Extract the target memory access data corresponding to the third in-transit memory access request from the read data, and return it according to the second register information; In response to the association identifier of the third in-transit memory access request being associated, the in-transit memory access request corresponding to the next-level ID in the third in-transit memory access request is taken as the new third in-transit memory access request, and the step of obtaining the second register information of the third in-transit memory access request from the preset storage area is returned to execute until the association identifier of the third in-transit memory access request is not associated.

5. The data access method according to claim 1, characterized in that, The data access method also includes: In response to a first memory access request that is not associated with a memory access request, a data read instruction for the current memory access request is generated and sent to the memory, and the current memory access request is stored in the free storage space of the preset storage area as the memory access request in transit.

6. The data access method according to claim 1, characterized in that, The preset storage area includes an information storage unit and an information overflow storage unit, and the current memory access request includes the current memory access ID; Before the step of associating the current memory access request with in-transit memory access requests in a preset storage area, the data memory access method further includes: In response to the existence of free storage space in the information storage unit, the step of associating the current memory access request with the in-transit memory access requests in the preset storage area is executed. or, In response to the absence of free storage space in the information storage unit, a data read instruction for the current memory access request is generated and sent to the memory. The current memory access request is then stored in the storage space corresponding to the current memory access ID in the information overflow storage unit as the memory access request in transit.

7. The data access method according to any one of claims 1 to 5, characterized in that, The preset storage area is also used to record the request time of the in-transit memory access request. The preset storage area includes an information storage unit and an information overflow storage unit. The step of storing the current memory access request in the free storage space of the preset storage area as the memory access request in transit includes: In response to the existence of free storage space in the information storage unit, the current memory access request is stored in the free storage space as the memory access request in transit; or, In response to the absence of free storage space in the information storage unit, the fourth in-transit storage request that has the earliest request time and has not established the association with other in-transit storage requests is obtained, along with the first storage access ID of the fourth in-transit storage request. The fourth in-transit memory access request is stored in the storage space corresponding to the first memory access ID in the information overflow storage unit, and the current memory access request is stored in the storage space of the information storage unit that stores the fourth in-transit memory access request, as the in-transit memory access request; or, In response to the absence of free storage space in the information storage unit, and receipt of the target memory access data corresponding to the fifth in-transit memory access request in the information storage unit; The target memory access data corresponding to the fifth memory access request in transit is returned, and the current memory access request is stored in the storage space of the information storage unit that stores the fifth memory access request in transit, as the memory access request in transit.

8. A data access system, characterized in that, The data access system includes a receiving module, an association module, and a return module; The receiving module is used to receive the current memory access request; The association module is used to associate the current memory access request with the memory access requests in transit in the preset storage area. The association module is also used to respond to a first memory access request that is associated with it, establish an association between the current memory access request and the first memory access request, and store the current memory access request in the free storage space of the preset storage area as the memory access request in transit. The return module is used to respond to receiving the read data corresponding to the second in-transit memory access request, and return the read data as the target memory access data of the second in-transit memory access request; The return module is also used to obtain a third in-transit memory access request associated with the second in-transit memory access request based on the association relationship, and to extract the target memory access data corresponding to the third in-transit memory access request from the read data and return it.

9. An electronic device comprising a memory, a processor, and a computer program stored in the memory and for running on the processor, characterized in that, When the processor executes the computer program, it implements the data access method according to any one of claims 1 to 7.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the data access method according to any one of claims 1 to 7.

11. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the processor, it implements the data access method according to any one of claims 1 to 7.