Method, device, and storage medium for processing transaction requests

By managing transaction requests in the transmit queue, assigning unique numbers and processing requests based on status information, the performance degradation caused by out-of-order response of IOMMU is solved, and the orderly and efficient processing of transaction requests is achieved.

CN118708302BActive Publication Date: 2025-08-01SHENZHEN AOWEI LINGXIN TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202410778534.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-06-17
Publication Date
2025-08-01
Estimated Expiration
2044-06-17

AI Technical Summary

Technical Problem

When IOMMU supports out-of-order response, it causes serious decline in transaction request processing performance, which cannot be effectively solved by the existing technology.

Method used

By extracting transaction requests in the transmit queue, assigning a unique transaction number, and determining whether to process the request based on the status information, calling the IOMMU response and updating the number set, ensuring the orderliness and efficiency of the transaction requests.

Benefits of technology

Improve the overall performance of transaction request processing, avoid resource waste and waiting, ensure accurate response of IOMMU, and solve the performance degradation caused by out-of-order response.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118708302B_ABST
    Figure CN118708302B_ABST
Patent Text Reader

Abstract

The present invention relates to the field of data processing, and discloses a method, device and storage medium for processing transaction requests. The method includes: extracting a transaction request from a transmission queue; obtaining a transaction number corresponding to the transaction request in a preset set of transaction numbers; obtaining status information corresponding to the transaction number; judging whether to process the transaction request according to the status information: if it is determined to process the transaction request, calling the IOMMU to respond to the result transaction request and updating the set of transaction numbers; judging whether the transaction request is the last pending request according to the set of transaction numbers; if the transaction request is the last pending request, determining that the request processing is completed. In the embodiments of the present invention, by using mechanisms such as queues, numbers, status judgment, and IOMMU calls, the orderly and efficient processing of transaction requests is ensured, and the overall performance of transaction request processing is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of data processing, and in particular, to a method, device, and storage medium for processing transaction requests. Background Art

[0002] IOMMU (Input / Output Memory Management Unit) is a hardware component used to isolate the memory space of virtual devices from the system memory space. The principle of address translation and memory protection is similar to that of the MMU of the CPU core. It mainly realizes address translation and memory protection by looking up the page table through the transaction information of virtual peripherals.

[0003] To improve the performance of the IOMMU, out-of-order response needs to be supported. Most peripheral IPs use the AMBA protocol interface to communicate with the system memory through the bus. Its requests and responses need to meet the bus standard protocol specifications. When the IOMMU supports out-of-order response, the processing of AMBA requests needs to be reordered. This method will cause a serious decline in response performance. A new technical solution is needed to solve the above technical problems. Summary of the Invention

[0004] The main objective of the present invention is to solve the technical problem of low processing performance of transaction requests.

[0005] In a first aspect of the present invention, a method for processing a transaction request is provided. The method for processing a transaction request includes:

[0006] Extract a transaction request from the emission queue;

[0007] Obtain the transaction number corresponding to the transaction request in a preset set of transaction numbers;

[0008] Obtain the status information corresponding to the transaction number;

[0009] Judge whether to process the transaction request according to the status information:

[0010] If it is determined to process the transaction request, call the IOMMU to respond to the transaction request and update the set of transaction numbers;

[0011] Judge whether the transaction request is the last pending request according to the set of transaction numbers;

[0012] If the transaction request is the last pending request, determine that the request processing is completed.

[0013] Optionally, in a first implementation manner of the first aspect of the present invention, before the step of extracting a transaction request from the emission queue, the method further includes:

[0014] Collect the to-be-processed transaction requests from different I / O devices, and assign numbers to the to-be-processed transaction requests to obtain a set of transaction numbers;

[0015] Put the to-be-processed transaction requests into the emission queue.

[0016] Optionally, in the second implementation manner of the first aspect of the present invention, the step of, if it is determined to process the transaction request, calling the IOMMU to respond to the transaction request includes:

[0017] If it is determined to process the transaction request, call the IOMMU to determine the transaction type of the transaction request;

[0018] If the transaction type is a read transaction, allocate a read transaction buffer and a read transaction IssueQueue for the read transaction;

[0019] Based on the buffer and the read transaction IssueQueue, initiate an IOMMU request to the IOMMU and receive an IOMMU response result;

[0020] According to the IOMMU response result, determine whether the read transaction is correctly responded;

[0021] If the read transaction is correctly responded, release the read transaction buffer and the read transaction IssueQueue.

[0022] Optionally, in the third implementation manner of the first aspect of the present invention, after the step of, according to the IOMMU response result, determining whether the read transaction is correctly responded, the method further includes:

[0023] If the read transaction is not correctly responded, stop processing the write transaction and return to execute the step of extracting a transaction request from the emission queue.

[0024] Optionally, in the fourth implementation manner of the first aspect of the present invention, after the step of, according to the IOMMU response result, determining whether the read transaction is correctly responded, the method further includes:

[0025] If the read transaction is not correctly responded, output a prompt message corresponding to the read transaction.

[0026] Optionally, in the fifth implementation manner of the first aspect of the present invention, after the step of, if it is determined to process the transaction request, calling the IOMMU to determine the transaction type of the transaction request, the method further includes:

[0027] If the transaction type is a write transaction, allocate a write transaction buffer and an entry of the IssueQueue for the write transaction;

[0028] Initiate an IOMMU request to the IOMMU based on the buffer and the entry, and receive an IOMMU response result;

[0029] Judge whether the write transaction is correctly responded according to the IOMMU response result;

[0030] If the write transaction is correctly responded, release the write transaction buffer and the entry of the Issue Queue.

[0031] Optionally, in the sixth implementation manner of the first aspect of the present invention, after the step of judging whether the write transaction is correctly responded according to the IOMMU response result, the method further includes:

[0032] If the write transaction is not correctly responded, stop processing the write transaction, and return to execute the step of extracting a transaction request from the emission queue.

[0033] Optionally, in the seventh implementation manner of the first aspect of the present invention, after the step of judging whether the transaction request is the last pending request according to the set of transaction numbers, the method further includes:

[0034] If the transaction request is not the last pending request, return to execute the step of extracting a transaction request from the emission queue.

[0035] The second aspect of the present invention provides a processing device for transaction requests, including: a memory and at least one processor, instructions are stored in the memory, and the memory and the at least one processor are interconnected by a line; the at least one processor calls the instructions in the memory to enable the processing device for transaction requests to execute the above-mentioned processing method for transaction requests.

[0036] The third aspect of the present invention provides a computer-readable storage medium, instructions are stored in the computer-readable storage medium, and when it runs on a computer, it enables the computer to execute the above-mentioned processing method for transaction requests.

[0037] In the embodiments of the present invention, the transaction requests are managed through an emission queue, ensuring the orderliness of the requests. In a preset set of transaction numbers, a unique transaction number is assigned to each transaction request, enabling the processing device of the transaction request to accurately track the status and processing progress of each request. According to the transaction number, the processing device of the transaction request can quickly obtain the status information of the transaction request. Based on the status information, the processing device of the transaction request can intelligently determine whether the transaction request should be processed currently, avoiding unnecessary resource waste and waiting. If the processing device of the transaction request determines that a certain transaction request needs to be processed, it will call the IOMMU to respond to this request and update the corresponding set of transaction numbers. It ensures that the IOMMU can accurately process the request according to the instructions of the processing device of the transaction request. Effectively solves the problem of possible performance degradation when the IOMMU supports out-of-order responses. By using mechanisms such as queues, numbers, status judgment, and IOMMU calls, it ensures the orderly and efficient processing of transaction requests, improving the overall performance of transaction request processing. BRIEF DESCRIPTION OF THE DRAWINGS

[0038] Figure 1 FIG. is a schematic diagram of an embodiment of the method for processing transaction requests in the embodiments of the present invention;

[0039] Figure 2 FIG. is an internal module diagram of the processing device for transaction requests in the embodiments of the present invention;

[0040] Figure 3 FIG. is a schematic diagram of a specific embodiment of step 105 of the method for processing transaction requests in the embodiments of the present invention;

[0041] Figure 4 FIG. is a schematic diagram of a specific embodiment after step 1051 of the method for processing transaction requests in the embodiments of the present invention;

[0042] Figure 5 FIG. is a schematic diagram of an embodiment of the processing device for transaction requests in the embodiments of the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0043] The embodiments of the present invention provide a method, device, and storage medium for processing transaction requests.

[0044] The embodiments disclosed by the present invention will be described in more detail below with reference to the drawings. Although some embodiments of the present invention are shown in the drawings, it should be understood that the present invention can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. On the contrary, these embodiments are provided to more thoroughly and completely understand the present disclosure. It should be understood that the drawings and embodiments of the present invention are only for exemplary purposes and are not used to limit the protection scope of the present invention.

[0045] In the description of the embodiments disclosed in the present invention, the term "including" and its similar terms should be understood as open inclusion, that is, "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "an embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first", "second", etc. may refer to different or the same objects. There may also be other explicit and implicit definitions hereinafter.

[0046] For ease of understanding, the specific process of the embodiments of the present invention will be described below. Please refer to Figure 1 , an embodiment of the method for processing transaction requests in the embodiments of the present invention includes:

[0047] 101. Extract the transaction request from the transmit queue;

[0048] Hardware virtualization is a technology that enables multiple virtual machines to run simultaneously on a single physical computer, and each virtual machine independently has its own operating system, hardware resources, and application programs. The virtual machine realizes peripheral virtualization through IOMMU.

[0049] IOMMU (Input / Output Memory Management Unit) is a hardware component used to isolate the memory space of a device from the system memory space.

[0050] The principle of IOMMU to implement address translation and memory protection is similar to that of the MMU of the CPU core. It mainly realizes address translation and memory protection by looking up the page table based on the information of the transactions of the DEVICE. The efficiency of IOMMU to complete the functions of address translation and memory protection depends on its page table lookup efficiency. Factors such as the size of internal caches such as TLB and the bus rate will affect the conversion efficiency. The common methods adopted by IOMMU to improve the conversion efficiency are to increase the cache to improve the hit rate and to use the out-of-order method to complete address translation and memory protection.

[0051] Most peripheral IPs use the AMBA protocol interface to communicate with the system memory through the bus, and their requests and responses all meet the bus standard protocol specifications. Since IOMMU supports out-of-order responses and response time uncertainty to improve its performance, it increases the storage space for caching peripheral requests, resulting in a huge increase in the logical implementation area. The IOMMU response cannot follow the AMBA protocol request order and needs to be reordered according to the AMBA request order, resulting in a serious decline in performance. Implementing address protection by IOMMU is complex for terminating the issuance of requests with Page-fault and for implementing the order of request responses to peripherals.

[0052] The processing method for transaction requests proposed in this embodiment is applied to a processing device for transaction requests. Refer to the internal module diagram of the processing device for transaction requests Figure 2 . The processing method for transaction requests aims to solve the design method for improving the performance of out-of-order scheduling algorithms. By optimizing the search and scheduling of request entries in the request cache, it is possible to improve performance as much as possible while ensuring compliance with the AMBA protocol, reduce the cache area, and optimize the physical memory protection response logic.

[0053] Specifically, initialize or connect to the issue queue. Check whether the queue is empty.

[0054] If it is empty, wait or perform other tasks. If it is not empty, proceed to the next step.

[0055] Extract a transaction request from the queue. And remove the request from the queue.

[0056] Specifically, step 101 further includes the following specific embodiments:

[0057] 1011. Collect the to-be-processed transaction requests from different I / O devices, and assign numbers to the to-be-processed transaction requests to obtain a set of transaction numbers;

[0058] 1012. Put the to-be-processed transaction requests into the issue queue.

[0059] Among them, create an empty issue queue.

[0060] Create a set of transaction numbers (Transaction ID Set), initially empty. Set a counter (Counter) for generating unique transaction numbers, initially initialized to 0.

[0061] Listen for transaction requests from different I / O devices.

[0062] When a transaction request is issued by an I / O device, receive the request and obtain the detailed information of the request (such as source, type, data, etc.).

[0063] Verify the received transaction request to ensure that the request is legal and the system has the ability to process it.

[0064] If the request is illegal or the system resources are insufficient, reject the request and return an error message. If the transaction request passes the verification, increment the counter by 1. Use the current value of the counter as the new transaction number. Add the new transaction number to the set of transaction numbers. Associate the transaction number with the corresponding transaction request. Put the transaction request with the assigned number into the issue queue.

[0065] In steps 1011 - 1012, by means of orderly collection, number assignment, putting into the emission queue, etc., the processing efficiency of the system is effectively improved, resource management is simplified, concurrent processing is optimized, and the reliability of the processing device for transaction requests is enhanced.

[0066] 102. Obtain the transaction number corresponding to the transaction request in the preset transaction number set;

[0067] Specifically, initialize or connect to the transaction number set (array, hash table).

[0068] Use the identifier (such as ID, label, etc.) in the transaction request to find the corresponding transaction number in the transaction number set.

[0069] If the corresponding transaction number is found, record the number; otherwise, generate a new number and add it to the set.

[0070] 103. Obtain the status information corresponding to the transaction number;

[0071] Specifically, initialize or connect to the status information storage (database, in - memory data structure).

[0072] Use the transaction number as the key to retrieve the corresponding status information.

[0073] If the status information is found, record the information; otherwise, set the default status or perform error handling.

[0074] 104. Judge whether to process the transaction request according to the status information:

[0075] Specifically, read the obtained status information. Judge whether the status allows processing the transaction request according to the preset rules or logic. For example, the status may be "pending", "processing", "completed", etc., and only the "pending" requests need to be further processed.

[0076] If processing is allowed, execute the next step; otherwise, perform error handling or wait for the status to change.

[0077] 105. If it is determined to process the transaction request, call the IOMMU to respond to the transaction request and update the transaction number set;

[0078] Specifically, call the interface or function of the IOMMU to process the transaction request. Wait for the response or processing result of the IOMMU. Update the status information in the transaction number set according to the processing result (for example, change "pending" to "processing" or "completed").

[0079] Specifically, refer to Figure 3 , Figure 3Schematic diagram of a specific embodiment of step 105 of the method for processing transaction requests in an embodiment of the present invention. Step 105 further includes the following specific implementation manners:

[0080] 1051. If it is determined to process the transaction request, call the IOMMU to determine the transaction type of the transaction request;

[0081] 1052. If the transaction type is a read transaction, allocate a read transaction buffer and a read transaction IssueQueue for the read transaction;

[0082] 1053. Based on the buffer and the read transaction Issue Queue, initiate an IOMMU request to the IOMMU and receive the IOMMU response result;

[0083] 1054. According to the IOMMU response result, determine whether the read transaction is correctly responded;

[0084] 1055. If the read transaction is correctly responded, release the read transaction buffer and the read transaction IssueQueue.

[0085] Optionally, if the read transaction is not correctly responded, stop processing the write transaction and return to execute the step of extracting the transaction request from the emission queue.

[0086] Optionally, if the read transaction is not correctly responded, output the prompt information corresponding to the read transaction.

[0087] Specifically, the read transaction processing steps include:

[0088] Step a: Allocate buffer and Issue Queue

[0089] The input of the AR channel is cached to the buffer (AR_Buffer).

[0090] Allocate an Issue Queue Entry, and write relevant information such as the Ar_User field parsed according to the protocol, Ar_addr, Ar_ID, and the entry index of the allocated Ar_buffer into the Issue Queue.

[0091] Allocate an Ar_ID_Buffer Entry, allocate a different entry for each Ar_ID, and each entry uses a FIFO with a MAXIMUM depth to store the index of the allocated AR_Buffer Entry.

[0092] Step b: Initiate an IOMMU request and receive an IOMMU response

[0093] Step c: Read transaction reordering and Issue: Wake up the AR_Buffer for polling entries through the response of the IOMMU, issue the read transaction, release the request buffer, and allocate a read response buffer (R_Buffer); for requests with address decoding errors, the write transaction will not be issued, but will be recorded in the R_Buffer.

[0094] Step d: Read transaction response: Normally, the response receives the response of the read response channel, releases the entry of the R_buffer, and updates the relevant entries of the RID_buffer. In the case of a page-fault response, when the head node of the linked list of IDs managed by any entry of the RID buffer is an error transaction, the slave response is blocked, and the transaction with an IOMMU conversion error is directly responded to the master.

[0095] In steps 1051 - 1055, by allocating buffers (such as AR_Buffer) and Issue Queue Entries, it is ensured that read transaction requests can be stored and processed orderly and efficiently. This helps to reduce data loss and chaos and improve the accuracy of data processing. Different entries are assigned to each Ar_ID, and the index of the allocated AR_Buffer Entry is stored in a FIFO with a MAXIMUM depth, realizing fine management of read transaction requests.

[0096] Specifically, refer to Figure 4 , Figure 4 which is a schematic diagram of a specific embodiment after step 1051 of the transaction request processing method in the embodiment of the present invention. After step 1051, the following specific implementation manners are further included:

[0097] 1056. If the transaction type is a write transaction, allocate a write transaction buffer and an entry in the Issue Queue for the write transaction;

[0098] 1057. Based on the buffer and the entry, initiate an IOMMU request to the IOMMU and receive the IOMMU response result;

[0099] 1058. According to the IOMMU response result, determine whether the write transaction is correctly responded;

[0100] 1059. If the write transaction is correctly responded, release the write transaction buffer and the entry in the Issue Queue.

[0101] Optionally, if the write transaction is not correctly responded to, stop processing the write transaction and return to execute the step of extracting the transaction request from the emission queue.

[0102] In steps 1056 - 1059, by allocating dedicated write transaction buffers and Issue Queue entries for write transactions, the system can efficiently manage the requests and responses of write transactions. Resource conflicts and waiting times are avoided, and the processing efficiency of write transactions is improved. After initiating a write transaction request, the system determines whether the write transaction is correctly responded to by receiving the response result from the IOMMU. The reliability of the write transaction is ensured, and data write errors or omissions are avoided.

[0103] 106. Determine whether the transaction request is the last pending request according to the set of transaction numbers;

[0104] Specifically, traverse or check the set of transaction numbers. Count the number of transaction requests in the "pending" state. If this number is 0, it means there are no pending transaction requests; otherwise, it means there are still unprocessed transactions.

[0105] 107. If the transaction request is the last pending request, determine that the request processing is completed.

[0106] Specifically, determine whether all transaction requests have been processed according to the judgment result. If all requests have been processed, perform subsequent operations such as completion notification, log record, and resource release. If there are still unprocessed requests, continue to wait or perform other tasks.

[0107] Optionally, if the transaction request is not the last pending request, return to execute the step of extracting the transaction request from the emission queue. Among them, by continuously and cyclically extracting and processing transaction requests from the emission queue until all pending requests are processed, the continuity and efficiency of transaction processing are ensured.

[0108] In the embodiments of the present invention, a transaction request is managed through a transmission queue, ensuring the orderliness of requests. In a preset set of transaction numbers, a unique transaction number is assigned to each transaction request, enabling the processing device of the transaction request to accurately track the status and processing progress of each request. According to the transaction number, the processing device of the transaction request can quickly obtain the status information of the transaction request. Based on the status information, the processing device of the transaction request can intelligently determine whether the transaction request should be processed currently, avoiding unnecessary resource waste and waiting. If the processing device of the transaction request determines that a certain transaction request needs to be processed, it will call the IOMMU to respond to this request and update the corresponding set of transaction numbers. This ensures that the IOMMU can accurately process the request according to the instructions of the processing device of the transaction request. Effectively solves the problem of possible performance degradation when the IOMMU supports out-of-order responses. By using mechanisms such as queues, numbers, status judgment, and IOMMU calls, the orderly and efficient processing of transaction requests is ensured, improving the overall performance of transaction request processing.

[0109] Figure 5 FIG. is a schematic structural diagram of a processing device for transaction requests provided by an embodiment of the present invention. The processing device 500 for transaction requests may vary greatly due to configuration or performance differences, and may include one or more processors (central processing units, CPUs) 510 (for example, one or more processors) and a memory 520, and one or more storage media 530 for storing application programs 533 or data 532 (for example, one or more mass storage devices). Among them, the memory 520 and the storage media 530 may be transient storage or persistent storage. The program stored in the storage media 530 may include one or more modules (not shown in the figure), and each module may include a series of instruction operations on the processing device 500 for transaction requests. Further, the processor 510 may be configured to communicate with the storage media 530 and execute a series of instruction operations in the storage media 530 on the processing device 500 for transaction requests.

[0110] The processing device 500 for transaction requests may further include one or more power supplies 540, one or more wired or wireless network interfaces 550, one or more input / output interfaces 560, and / or one or more operating systems 531, such as Windows Serve, Mac OS X, Unix, Linux, Free BSD, etc. Those skilled in the art can understand that Figure 5 The shown structural diagram of the processing device for transaction requests does not limit the processing device for transaction requests, and may include more or fewer components than shown, or combine certain components, or have different component arrangements.

[0111] The present invention also provides a computer-readable storage medium, which may be a non-volatile computer-readable storage medium or a volatile computer-readable storage medium. Instructions are stored in the computer-readable storage medium. When the instructions are run on a computer, the computer is caused to execute the steps of the processing method for the transaction request.

[0112] In the context of the present disclosure, a machine-readable medium may be a tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0113] In addition, although the operations are depicted in a particular order, this should be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed to achieve the desired result. In certain circumstances, multitasking and parallel processing may be advantageous. Similarly, although a number of specific implementation details are included in the above discussion, these should not be construed as limiting the scope of the present disclosure. Certain features described in the context of separate embodiments may also be implemented in combination in a single implementation. Conversely, various features described in the context of a single implementation may also be implemented separately or in any suitable sub-combination in multiple implementations.

[0114] Although the subject matter has been described in language specific to structural features and / or methodological acts, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are merely example forms of implementing the claims.

Claims

1. A method for processing a transaction request, characterized in that, The method for processing the transaction request includes: Extracting the transaction request from the emission queue; Obtaining the transaction number corresponding to the transaction request in a preset set of transaction numbers; Obtaining the status information corresponding to the transaction number; Judging whether to process the transaction request according to the status information: If it is determined to process the transaction request, call the IOMMU to respond to the transaction request and update the set of transaction numbers; Judging whether the transaction request is the last pending request according to the set of transaction numbers; If the transaction request is the last pending request, determine that the request processing is completed; Among them, the step of calling the IOMMU to respond to the transaction request if it is determined to process the transaction request includes: If it is determined to process the transaction request, call the IOMMU to determine the transaction type of the transaction request; If the transaction type is a read transaction, allocate a read transaction buffer and a read transaction Issue Queue for the read transaction; Based on the buffer and the read transaction Issue Queue, initiate an IOMMU request to the IOMMU and receive the IOMMU response result, where the read transaction buffer is the AR_Buffer, and the entry of the read transaction Issue Queue includes Ar_User field parsing information, Ar_addr, Ar_ID, and the entry index of the AR_Buffer; Judging whether the read transaction is correctly responded according to the IOMMU response result; If the read transaction is correctly responded, release the read transaction buffer and the read transaction Issue Queue; Among them, after the step of calling the IOMMU to determine the transaction type of the transaction request if it is determined to process the transaction request, the method further includes: If the transaction type is a write transaction, allocate a write transaction buffer and an entry of the Issue Queue for the write transaction; Based on the buffer and the entry, initiate an IOMMU request to the IOMMU and receive the IOMMU response result; Judging whether the write transaction is correctly responded according to the IOMMU response result; If the write transaction is correctly responded, release the write transaction buffer and the entry of the Issue Queue.

2. The method for processing a transaction request according to claim 1, characterized in that, Before the step of extracting the transaction request from the emission queue, the method further includes: Collecting the pending transaction requests from different I / O devices and assigning numbers to the pending transaction requests to obtain a set of transaction numbers; Putting the pending transaction requests into the emission queue.

3. The method for processing a transaction request according to claim 1, wherein After the step of judging whether the read transaction is correctly responded according to the IOMMU response result, the method further includes: If the read transaction is not correctly responded, stop processing the write transaction and return to execute the step of extracting the transaction request from the emission queue.

4. The method for processing a transaction request according to claim 1, wherein After the step of judging whether the read transaction is correctly responded according to the IOMMU response result, the method further includes: If the read transaction is not correctly responded, output the prompt information corresponding to the read transaction.

5. The method for processing a transaction request according to claim 4, wherein After the step of determining whether the write transaction is correctly responded according to the IOMMU response result, the method further includes: If the write transaction is not correctly responded, stop processing the write transaction and return to execute the step of extracting a transaction request from the issue queue.

6. The method for processing a transaction request according to claim 1, wherein After the step of determining whether the transaction request is the last pending request according to the set of transaction numbers, the method further includes: If the transaction request is not the last pending request, return to execute the step of extracting a transaction request from the issue queue.

7. A processing device for transaction requests, characterized in that, The processing device for the transaction request includes: a memory and at least one processor, wherein instructions are stored in the memory, and the memory and the at least one processor are interconnected by a line; The at least one processor invokes the instructions in the memory so that the processing device for the transaction request executes the method for processing a transaction request according to any one of claims 1-6.

8. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the method for processing a transaction request according to any one of claims 1-6.

Citation Information

Patent Citations

  • Systems and methods for input / output computing resource control

    CN108351829A

  • Long transaction handling method and system, electronic equipment and storage medium

    CN113515353A