IP Library Granted Patent US 12,436,712
Granted Patent B2
US 12,436,712 · App. 17/898,929 · Granted Oct 7, 2025

Access request reordering across a multiple-channel interface for memory-based communication queues

Inventors: Michael Keith Dugan (Richardson, TX); Tony M. Brewer (Plano, TX)
Assignee: Micron Technology, Inc.
G06F3/0656G06F3/0604G06F3/0659G06F3/0673
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,436,712
App. No.
17/898,929
Granted
Oct 7, 2025
Kind
B2
Abstract

A system includes a host device having a first buffer with ordered data. An accelerator device has a data movement processor and a reordering buffer. A multiple-channel interface couples the host device and the data movement processor of the accelerator device. The data movement processor is configured to issue a read command for a portion of the ordered data. In coordination with issuing the read command, an entry of the reordering buffer is allocated. A transaction identifier for the read command is allocated. Unordered responses are received from the host device via the multiple-channel interface. The responses include respective portions of the ordered data and a respective transaction identifier. The responses are reordered in the reordering buffer based on the respective transaction identifiers and the allocated entry of the reordering buffer.

Claims (48)

1. A system comprising:

a host device comprising a first buffer with ordered data;

an accelerator device comprising a data movement processor and a reordering buffer; and

a multiple-channel interface coupling the host device and the data movement processor of the accelerator device;

wherein the data movement processor is configured to:

issue first read commands for a portion of the ordered data and, in coordination with issuing the read commands, allocate respective entries of the reordering buffer and corresponding respective transaction identifiers for the first read commands;

maintain a remapping queue with a mapping between the transaction identifiers and corresponding tail indices of the reordering buffer;

provide a valid vector having a same number of entries as the reordering buffer;

maintain a head pointer corresponding to a next in-order entry to be read from the reordering buffer;

receive unordered responses to the first read commands, each of the responses including a respective one of the transaction identifiers;

store response data for the unordered responses at the corresponding allocated entries of the reordering buffer, based on the transaction identifiers respectively associated with the unordered responses, wherein storing the response data for the unordered responses comprises using information from the remapping queue to look up the tail index corresponding to the transaction identifier of each unordered response;

in response to writing response data from an unordered response to its respective allocated entry of the reordering buffer, set a respective valid bit in the valid vector, the valid bit indicating that its corresponding allocated entry of the reordering buffer includes the response data; and

when the head pointer corresponds to a particular entry of the reordering buffer and the valid bit for the particular entry is set, provide the response data from the particular entry of the reordering buffer to a particular interface queue of the multiple-channel interface, increment the head pointer, and clear the corresponding valid bit in the valid vector for the particular entry.

2. The system of claim 1 , wherein the reordering buffer is a circular buffer.

3. The system of claim 1 , wherein the first buffer comprises a contiguous buffer that stores operand address information.

4. The system of claim 1 , wherein the multiple-channel interface comprises four channels coupled to respective request generators of the data movement processor.

5. The system of claim 1 , wherein the data movement processor is configured to communicate the first read commands from a host device using a compute express link (CXL) interconnect.

6. The system of claim 1 , further comprising a plurality of read command queues and each read command queue is associated with a respective free list, a respective remapping queue, and a respective reordering buffer.

7. The system of claim 1 , wherein the data movement processor is configured to receive the unordered responses from a non-contiguous data region.

8. A method comprising:

receiving a plurality of access requests from a plurality of interfaces;

allocating a transaction identifier for each of the plurality of access requests;

for each access request of the plurality of access requests, writing a tail index of a reordering buffer to a remapping queue based on the transaction identifier, the tail index configured to provide a write address of a reordering buffer entry that is allocated for the access request, wherein the remapping queue maintains a mapping between the transaction identifiers and the corresponding tail indices;

receiving a plurality of access request responses corresponding to the plurality of access requests, the plurality of access requests received in a first order and the plurality of corresponding access request responses received in a second order;

providing a valid vector having a same number of entries as the reordering buffer;

for each access request response, using information from the remapping queue to write a respective access request response from the plurality of access request responses to the corresponding allocated entry of the reordering buffer, wherein using the information from the remapping queue comprises looking up the tail index corresponding to the transaction identifier of the access request response;

in response to writing response data from an access request response to its respective allocated entry of the reordering buffer, setting a respective valid bit in the valid vector, the respective valid bit indicating that its corresponding allocated entry of the reordering buffer includes the response data;

maintaining a head pointer corresponding to a next in-order entry to be read from the reordering buffer; and

when the head pointer corresponds to a particular entry of the reordering buffer for which the valid bit is set, providing the response data from the particular entry of the reordering buffer to a particular interface queue of the plurality of interfaces, incrementing the head pointer, and clearing the corresponding valid bit in the valid vector for the particular entry.

9. The method of claim 8 , wherein the first order is different than the second order.

10. The method of claim 8 , further comprising storing a plurality of operand addresses corresponding to the plurality of access requests in a contiguous index buffer, the contiguous index buffer configured to store the access requests in the first order.

11. The method of claim 8 , wherein the reordering buffer is a circular queue.

12. The method of claim 8 , wherein receiving a plurality of access requests includes communicating the plurality of access requests from a host device using a compute express link (CXL) interconnect.

13. The method of claim 8 , comprising a plurality of access request queues and each access request queue is associated with a respective free list, a respective remapping queue, and a respective reordering buffer.

14. The method of claim 8 , further comprising in response to writing the access request response to the allocated entry of the reordering buffer, returning a free list entry to the free list.

15. The method of claim 8 , further comprising receiving the plurality of corresponding access request responses for data stored on a non-contiguously stored data region.

16. The method of claim 8 , wherein allocating a transaction identifier for the access request comprises allocating a free list entry for the request from a free list, the free list entry associated with a transaction identifier of the access request.

17. The method of claim 8 , wherein providing the response data to the particular interface queue includes providing the response data to a same interface, of the plurality of interfaces, from which the corresponding access request for the response data was received.

18. At least one non-transitory machine-readable storage medium comprising instructions that, when executed by a processor circuit of a memory system, cause the processor circuit to perform operations comprising:

receiving a plurality of access requests from a plurality of interfaces;

allocating a transaction identifier for each of the plurality of access requests;

for each access request of the plurality of access requests, writing a tail index of a reordering buffer to a remapping queue based on the transaction identifier, the tail index configured to provide a write address of a reordering buffer entry that is allocated for the access request;

receiving a plurality of access request responses corresponding to the plurality of access requests, the plurality of access requests received in a first order and the plurality of corresponding access request responses received in a second order;

providing a valid vector having a same number of entries as the reordering buffer;

for each access request response, using information from the remapping queue to write a respective access request response from the plurality of access request responses to the corresponding allocated entry of the reordering buffer, wherein using the information from the remapping queue comprises looking up the tail index corresponding to the transaction identifier of the access request response;

in response to writing response data from an access request response to its respective allocated entry of the reordering buffer, setting a respective valid bit in the valid vector, the respective valid bit indicating that its corresponding allocated entry of the reordering buffer includes the response data;

maintaining a head pointer corresponding to a next in-order entry to be read from the reordering buffer; and

when the head pointer corresponds to a particular entry of the reordering buffer for which the valid bit is set, providing the response data from the particular entry of the reordering buffer to a particular interface queue of the plurality of interfaces, incrementing the head pointer, and clearing the corresponding valid bit in the valid vector for the particular entry.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2023
From: DUGAN, MICHAEL KEITH; BREWER, TONY M
To: MICRON TECHNOLOGY, INC.
Reel/Frame 063676/0235 →
Continuity (1)
Related Publication 20240069795A1 · Feb 29, 2024
References Cited (21)
US 7080170B1 · Zuraski, Jr. et al. · 2006 [cited by applicant]
US 10942742B1 · Diamant · 2021 [cited by examiner]
US 20100318998A1 · Golla · 2010 [cited by examiner]
US 20150113190A1 · Wohlgemuth · 2015 [cited by examiner]
US 20150199286A1 · Hughes et al. · 2015 [cited by applicant]
US 20170132010A1 · Vasekin · 2017 [cited by examiner]
US 20170168544A1 · Battle · 2017 [cited by examiner]
US 20180095756A1 · Hasenplaugh · 2018 [cited by examiner]
US 20180107487A1 · Spasov · 2018 [cited by examiner]
US 20180307492A1 · Di · 2018 [cited by applicant]
US 20210117340A1 · Trikalinou · 2021 [cited by examiner]
US 20220067154A1 · Favor · 2022 [cited by examiner]
US 20240069805A1 · Dugan et al. · 2024 [cited by applicant]
CN 117631974A · 2024 [cited by applicant]
CN 117631976A · 2024 [cited by applicant]
Sharma, D Das, “Compute Express Link”, [Online]. Retrieved from the Internet: URL: https: www.computeexpresslink.org resource-library, (Mar. 1, 2019), 3 pages. [cited by applicant]
Sharma, Debendra Das, “Compute Express Link 2.0 White Pape”, [Online]. Retrieved from the Internet: URL: https: www.computeexpresslink.org resource-library, (Nov. 1, 2020), 4 pages. [cited by applicant]
Sharma, Debendra Das, “CXL: Coherency, Memory, and I ??O Semantics on PCIe Infrastructure”, [Online]. Retrieved from the Internet: URL: https: www.electronicdesign.com technologies embedded-revolution article 21162617 c… [cited by applicant]
“U.S. Appl. No. 17/899,016, Advisory Action mailed Oct. 21, 2024”, 3 pgs. [cited by applicant]
“U.S. Appl. No. 17/899,016, Final Office Action mailed Aug. 19, 2024”, 20 pgs. [cited by applicant]
“U.S. Appl. No. 17/899,016, Response filed Sep. 30, 2024 to Final Office Action mailed Aug. 19, 2024”, 12 pgs. [cited by applicant]