IP Library › Granted Patent US 11,403,221
Granted Patent B2
US 11,403,221 · App. 17/031,706 · Granted Aug 2, 2022

Memory access response merging in a memory hierarchy

Inventors: Onur Kayiran (Santa Clara, CA); Yasuko Eckert (Bellevue, WA); Mark Henry Oskin (Bellevue, WA); Gabriel H. Loh (Bellevue, WA); Steven E. Raasch (Austin, TX); Maxim V. Kazakov (San Diego, CA)
Assignee: Advanced Micro Devices, Inc.
G06F12/0811G06F11/3037G06F12/084G06F12/0877G06F13/1668G06F2212/1021
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 11,403,221
App. No.
17/031,706
Granted
Aug 2, 2022
Kind
B2
Abstract

A system and method for efficiently processing memory requests are described. A computing system includes multiple compute units, multiple caches of a memory hierarchy and a communication fabric. A compute unit generates a memory access request that misses in a higher level cache, which sends a miss request to a lower level shared cache. During servicing of the miss request, the lower level cache merges identification information of multiple memory access requests targeting a same cache line from multiple compute units into a merged memory access response. The lower level shared cache continues to insert information into the merged memory access response until the lower level shared cache is ready to issue the merged memory access response. An intermediate router in the communication fabric broadcasts the merged memory access response into multiple memory access responses to send to corresponding compute units.

Claims (61)

1. An apparatus comprising:

a queue configured to store a plurality of memory access responses; and

control logic configured to:

merge information, into a first memory access response, corresponding to one or more memory access requests based at least in part on a determination that:

the one or more memory access requests target a same cache line as the first memory access request; and

a period of time elapsed since the first memory access response was marked as not being a candidate for issue from the queue is less than a threshold.

2. The apparatus as recited in claim 1 , wherein, based at least in part on a determination that the period of time exceeds the threshold, the control logic is further configured to:

complete merging information in the first memory access response; and

mark the first memory access response as a candidate for issue from the queue.

3. The apparatus as recited in claim 1 , wherein the control logic is further configured to determine that the first memory access request hit in the cache.

4. The apparatus as recited in claim 1 , wherein the information identifies a plurality of compute units that generated the one or more memory access requests.

5. The apparatus as recited in claim 4 , wherein the control logic is further configured to:

store the first memory access response in an intermediate queue of a communication fabric; and

generate a plurality of memory access responses from the first memory access response to send to the plurality of compute units.

6. The apparatus as recited in claim 1 , wherein:

the information of the first memory access response identifies a first cluster of a plurality of clusters, each of the plurality of clusters comprising one or more compute units; and

the first cluster comprises at least one compute unit that generated one of the one or more memory access requests.

7. The apparatus as recited in claim 6 , wherein the control logic is further configured to:

generate a second memory access response based at least in part on a determination that a second cluster of the plurality of clusters comprises at least one compute unit that generated one of the one or more memory access requests; and

merge information, in the second memory access response, identifying the second cluster.

8. The apparatus as recited in claim 7 , wherein the control logic is further configured to:

store the first memory access response in a first intermediate queue of a communication fabric;

store the second memory access response in a second intermediate queue of the communication fabric; and

generate a plurality of memory access responses from one or more of the first memory access response and the second memory access response to send to the plurality of compute units.

9. A method comprising:

storing, in a queue by control logic, a plurality of memory access responses;

merging information, into a first memory access response by the control logic, corresponding to one or more memory access requests, in response to determining:

the one or more memory access requests target a same cache line as the first memory access request; and

a period of time elapsed since the first memory access response was marked as not being a candidate for issue from the queue is less than a threshold.

10. The method as recited in claim 9 , further comprising marking the first memory access response as a candidate for issue from the queue, in response to determining the period of time exceeds the threshold.

11. The method as recited in claim 9 , further comprising updating the threshold based on a utilization of one or more of a plurality of compute units configured to generate memory access requests.

12. The method as recited in claim 9 , wherein the information identifies a plurality of compute units that generated the one or more memory access requests.

13. The method as recited in claim 12 , further comprising:

storing the first memory access response in an intermediate queue of a communication fabric; and

generating a plurality of memory access responses from the first memory access response to send to the plurality of compute units.

14. The method as recited in claim 9 , wherein:

the information of the first memory access response identifies a first cluster of a plurality of clusters, each of the plurality of clusters comprising one or more compute units; and

the first cluster comprises at least one compute unit that generated one of the one or more memory access requests.

15. The method as recited in claim 14 , further comprising:

generating a second memory access response, in response to determining a second cluster of the plurality of clusters comprises at least one compute unit that generated one of the one or more memory access requests; and

merging information, in the second memory access response, identifying the second cluster.

16. The method as recited in claim 15 , further comprising:

storing the first memory access response in a first intermediate queue of a communication fabric;

storing the second memory access response in a second intermediate queue of the communication fabric; and

generating a plurality of memory access responses from one or more of the first memory access response and the second memory access response to send to the plurality of compute units.

17. A computing system comprising:

a plurality of compute units configured to generate memory access requests;

a communication fabric;

a cache controller coupled to the plurality of compute units via the communication fabric;

wherein the cache controller is configured to:

store, in a queue, a plurality of memory access responses;

merge information, into a first memory access response, corresponding to one or more memory access requests based at least in part on a determination that:

the one or more memory access requests target a same cache line as the first memory access request; and

a period of time elapsed since the first memory access response was marked as not being a candidate for issue from the queue is less than a threshold.

18. The computing system as recited in claim 17 , wherein the cache controller is further configured to mark the first memory access response as a candidate for issue from the queue based at least in part on a determination that the period of time exceeds the threshold.

19. The computing system as recited in claim 17 , wherein:

the information of the first memory access response identifies a first cluster of a plurality of clusters, each of the plurality of clusters comprising one or more compute units of the plurality of compute units; and

the first cluster comprises at least one compute unit that generated one of the one or more memory access requests.

20. The system management unit as recited in claim 19 , wherein the cache controller is further configured to:

generate a second memory access response based at least in part on a determination that a second cluster of the plurality of clusters comprises at least one compute unit that generated one of the one or more memory access requests; and

merge information, in the second memory access response, identifying the second cluster.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2021
From: KAYIRAN, ONUR; ECKERT, YASUKO; OSKIN, MARK HENRY; LOH, GABRIEL H.; RAASCH, STEVEN E.; KAZAKOV, MAXIM V.
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 055408/0480 →
Continuity (1)
Related Publication 20220091980A1 · Mar 24, 2022