IP Library › Granted Patent US 12,306,754
Granted Patent B2
US 12,306,754 · App. 18/068,930 · Granted May 20, 2025

Method and apparatus for increasing memory level parallelism by reducing miss status holding register allocation in caches

Inventors: Jagadish B. Kotra (Austin, TX); John Kalamatianos (Arlington, MA); Paul James Moyer (Fort Collins, CO); Nicholas Dean Lance (Windsor, CO); Sriram Srinivasan (Cedar Park, TX); Patrick James Shyvers (Fort Collins, CO); William Louie Walker (Fort Collins, CO)
Assignee: Advanced Micro Devices, Inc
G06F12/0802G06F2212/1016G06F2212/1028G06F2212/1044
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,306,754
App. No.
18/068,930
Granted
May 20, 2025
Kind
B2
Abstract

An entry of a last level cache shadow tag array to track pending last level cache misses to private data in a previous level cache (e.g., an L2 cache), that also are misses to an exclusive last level cache (e.g., an L3 cache) and to the last level cache shadow tag array. Accordingly, last level cache miss status holding registers need not be expended to track cache misses to private data that are already being tracked by a previous level cache miss status holding register. Additionally or alternatively, up to a threshold number of last level cache pending misses to the same shared data from different processor cores are tracked in the last level cache shadow tag array, and any additional last level cache pending misses are tracked in a last level cache miss status holding register.

Claims (40)

1. A method comprising:

receiving, at a current level cache, a physical address corresponding to a cache miss at an immediately preceding level cache, the cache miss at the immediately preceding level cache being recorded in an immediately preceding level cache miss status holding register; and

in response to a cache miss at the current level cache and a shadow tag array miss at the current level cache:

updating a tag associated with the immediately preceding level cache miss status holding register with the cache miss and the shadow tag array miss at the current level cache;

and

sending, to a memory system, a request for data stored at the physical address.

2. The method of claim 1 , further comprising, in response to the cache miss at the current level cache and a shadow tag array hit at the current level cache:

recording the cache miss at the current level cache in an existing entry in the shadow tag array without sending the request to the memory system.

3. The method of claim 1 , wherein the current level cache comprises a level 3 cache and the immediately preceding level cache comprises a level 2 cache.

4. The method of claim 1 , further comprising:

receiving, from the memory system, the data stored at the physical address;

marking, in an entry of a shadow tag array corresponding to the cache miss and the shadow tag array miss at the current level cache, that the cache miss and the shadow tag array miss at the current level cache is no longer pending; and

returning the data to a first processor core requesting the data.

5. The method of claim 4 , further comprising:

returning the data to a second processor core indicated in the entry of the shadow tag array.

6. The method of claim 1 , wherein;

in response to a current number of pending misses at the current level cache not exceeding a threshold number, recording the cache miss and the shadow tag array miss at the current level cache in a shadow tag array; and

in response to the current number of pending misses at the current level cache exceeding the threshold number, recording the cache miss and the shadow tag array miss at the current level cache in a current level cache miss status holding register.

7. The method of claim 6 , wherein recording the cache miss and the shadow tag array miss includes setting a current level cache pending miss indicator in an entry of the shadow tag array.

8. The method of claim 7 , wherein the method further comprises clearing the current level cache pending miss indicator in the shadow tag array in response to receiving, from the memory system, the data stored at the physical address.

9. The method of claim 7 , wherein the method further comprises resetting the current level cache pending miss indicator in the shadow tag array in response to receiving, from the memory system, the data stored at the physical address.

10. A device, comprising:

a current level cache to receive a physical address corresponding to a cache miss at an immediately preceding level cache and send, to a memory system, a request for data stored at the physical address, the cache miss at the immediately preceding level cache being recorded in an immediately preceding level cache miss status holding register; and

a shadow tag array to update, in response to a cache miss at the current level cache and a shadow tag array miss at the current level cache, a tag associated with the immediately preceding level cache miss status holding register with the cache miss and the shadow tag array miss at the current level cache.

11. The device of claim 10 , wherein the shadow tag array is further to, in response to the cache miss at the current level cache and a shadow tag array hit at the current level cache, record the cache miss at the current level cache in an existing entry in the shadow tag array without sending the request to the memory system.

12. The device of claim 10 , wherein the current level cache comprises a level 3 cache and the immediately preceding level cache comprises a level 2 cache.

13. The device of claim 10 , wherein the current level cache is further configured to receive, from the memory system, the data stored at the physical address and return the data to a first processor core requesting the data, and the shadow tag array is to mark, in an entry of the shadow tag array, that the cache miss and the shadow tag array miss at the current level cache is no longer pending.

14. The device of claim 13 , wherein the current level cache is further to return the data to a second processor core indicated in the entry of the shadow tag array.

15. The device of claim 10 , wherein:

in response to a current number of pending misses at the current level cache not exceeding a threshold number, the shadow tag array to record the cache miss and the shadow tag array miss at the current level cache in the shadow tag array; and

in response to the current number of pending misses at the current level cache exceeding the threshold number, the shadow tag array to record the cache miss and the shadow tag array miss at the current level cache in a current level cache miss status holding register.

16. The device of claim 15 , wherein to record the cache miss and the shadow tag array miss includes setting a current level cache pending miss indicator in an entry of the shadow tag array.

17. The device of claim 16 , wherein the current level cache is further configured to clear the current level cache pending miss indicator in the shadow tag array in response to receiving, from the memory system, the data stored at the physical address.

18. A device comprising:

a current level cache configured to:

reserve a current level cache miss status holding register in response to a cache miss at the current level cache;

send a physical address corresponding to the cache miss at the current level cache to an immediately subsequent level cache; and

in response to a cache miss at the immediately subsequent level cache and a shadow tag array miss at the immediately subsequent level cache, update a tag associated with the current level cache miss status holding register with the cache miss at the immediately subsequent level cache and the shadow tag array miss at the immediately subsequent level cache.

19. The device of claim 18 , wherein the current level cache comprises a level 2 cache and the immediately subsequent level cache comprises a level 3 cache.

20. The device of claim 18 , wherein the current level cache is further configured to receive, from a memory system, data stored at the physical address and a shadow tag array is to clear the tag associated with the current level cache miss status holding register.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2023
From: KOTRA, JAGADISH B.; KALAMATIANOS, JOHN; MOYER, PAUL JAMES; LANCE, NICHOLAS DEAN; SRINIVASAN, SRIRAM; SHYVERS, PATRICK JAMES; WALKER, WILLIAM LOUIE
To: ADVANCED MICRO DEVICES, INC
Reel/Frame 062464/0154 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2023
From: KOTRA, JAGADISH B.; KALAMATIANOS, JOHN; MOYER, PAUL JAMES; LANCE, NICHOLAS DEAN; SRINIVASAN, SRIRAM; SHYVERS, PATRICK JAMES; WALKER, WILLIAM LOUIE
To: ADVANCED MICRO DEVICES, INC
Reel/Frame 062464/0396 →
Continuity (1)
Related Publication 20240202116A1 · Jun 20, 2024
References Cited (8)
US 7827357B2 · Sistla · 2010 [cited by examiner]
US 10073776B2 · Srinivasan · 2018 [cited by examiner]
US 11467959B1 · Yeung · 2022 [cited by examiner]
US 20020188807A1 · Chaudhry · 2002 [cited by examiner]
US 20210165739A1 · Srinivasan · 2021 [cited by examiner]
Bienia, Christian , et al., “The PARSEC benchmark suite: characterization and architectural implications”, Proceedings of the 17th international conference on Parallel architectures and compilation techniques, Oct. 25, … [cited by applicant]
Natarajan, Ragavendra , et al., “Characterizing multi-threaded applications for designing sharing-aware last-level cache replacement policies”, IEEE International Symposium on Workload Characterization (IISWC) [retrieve… [cited by applicant]
Ould-Ahmed-Vall, Elmoustapha , et al., “Characterization of SPEC CPU2006 and SPEC OMP2001: Regression Models and their Transferability”, IEEE International Symposium on Performance Analysis of Systems and software [retr… [cited by applicant]
Cited By (1)
US 12,423,241