IP Library › Granted Patent US 11,847,062
Granted Patent B2
US 11,847,062 · App. 17/552,703 · Granted Dec 19, 2023

Re-fetching data for L3 cache data evictions into a last-level cache

Inventors: Tarun Nakra (Austin, TX); Jay Fleischman (Merrill, WI); Gautam Tarasingh Hazari (Bangalore, IN); Akhil Arunkumar (Santa Clara, CA); William L. Walker (Ft. Collins, CO); Gabriel H. Loh (Bellevue, WA); John Kalamatianos (Boxborough, MA); Marko Scrbak (Austin, TX)
Assignee: Advanced Micro Devices, Inc.
G06F12/0897G06F12/0891G06F2212/1028
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,847,062
App. No.
17/552,703
Granted
Dec 19, 2023
Kind
B2
Abstract

In response to eviction of a first clean data block from an intermediate level of cache in a multi-cache hierarchy of a processing system, a cache controller accesses an address of the first clean data block. The controller initiates a fetch of the first clean data block from a system memory into a last-level cache using the accessed address.

Claims (47)

1. A method comprising:

in response to eviction of a first clean data block from an intermediate level of cache, accessing an address of the first clean data block; and

initiating a fetch of the first clean data block from a system memory, into a last-level cache (LLC), using the address.

2. The method of claim 1 , further comprising:

propagating the address of the first clean data block from the intermediate level of cache to the LLC.

3. The method of claim 1 , further comprising:

in response to eviction of a first dirty data block from the intermediate level of cache, propagating the first dirty data block from the intermediate level of cache to the LLC.

4. The method of claim 3 , wherein:

the first dirty data block comprises data that has been written to one or more caches of a cache hierarchy comprising the intermediate level of cache and the LLC via one or more of a write or modify instruction.

5. The method of claim 1 , further comprising:

in response to eviction of a second clean data block from the intermediate level of cache, bypassing storing the second clean data block in the LLC, based on a determination that a hit rate of the LLC is below a predetermined threshold value, or that an interface between the system memory and the LLC currently has capacity below a predetermined threshold for fetching data.

6. The method of claim 1 , further comprising:

in response to eviction of a second clean data block from the intermediate level of cache, propagating the second clean data block from the intermediate level of cache to the LLC, based on a determination that a coherent interconnect between the intermediate level of cache and the LLC currently has capacity above a predetermined threshold for propagating data, or that a current level of power usage is less than a predetermined threshold level of power usage.

7. The method of claim 1 , wherein:

initiating the fetch of the first clean data block from the system memory comprises accessing a memory controller.

8. The method of claim 1 , further comprising:

bypassing propagating the first clean data block from the intermediate level of cache to the LLC.

9. A processing system comprising:

a processor;

a system memory;

a multi-cache hierarchy; and a cache controller to:

in response to eviction of a first clean data block from an intermediate level of cache in the multi-cache hierarchy, access an address of the first clean data block, and

initiate a fetch of the first clean data block from the system memory, into a last-level cache (LLC), using the address.

10. The processing system of claim 9 , wherein the cache controller is further to:

propagate the address of the first clean data block from the intermediate level of cache to the LLC.

11. The processing system of claim 9 , wherein the cache controller is further to:

in response to eviction of a first dirty data block from the intermediate level of the cache, propagate the first dirty data block from the intermediate level of cache to the LLC.

12. The processing system of claim 11 , wherein:

the first dirty data block comprises data that has been written to one or more caches of the multi-cache hierarchy via one or more of a write or modify instruction.

13. The processing system of claim 11 , wherein the cache controller is further to:

in response to eviction of a second clean data block from the intermediate level of cache, bypassing storing the second clean data block in the LLC, based on a determination that a hit rate of the LLC is below a predetermined threshold value, or that an interface between the system memory and the LLC currently has capacity below a predetermined threshold for fetching data.

14. The processing system of claim 11 , wherein the cache controller is further to:

in response to eviction of a second clean data block from the intermediate level of cache, propagate the second clean data block from the intermediate level of cache to the LLC, based on a determination that a coherent interconnect between the intermediate level of cache and the LLC currently has capacity above a predetermined threshold for propagating data, or that a current level of power usage is less than a predetermined threshold level of power usage.

15. The processing system of claim 9 , wherein:

initiating the fetch of the first clean data block from the system memory comprises accessing a memory controller.

16. The processing system of claim 9 , wherein the cache controller is further to:

bypass propagating the first clean data block from the intermediate level of cache to the LLC.

17. A method comprising:

in response to a request to store first cache data in an intermediate level of cache in a multi-cache hierarchy of a processing system, determining that a storage capacity of the intermediate level of cache is exceeded;

initiating an eviction of a first clean data block from the intermediate level of cache, the eviction including sending an address of the first clean data block to a last-level cache (LLC); and

in response to receiving the address at the LLC, caching the evicted first clean data block in the LLC by fetching the first clean data block from a system memory using the address sent from the intermediate level of cache.

18. The method of claim 17 , further comprising:

in response to eviction of a first dirty data block from the intermediate level of cache, sending the first dirty data block from the intermediate level of cache to the LLC.

19. The method of claim 17 , further comprising:

bypassing sending the first clean data block from the intermediate level of cache to the LLC.

20. The method of claim 17 , further comprising:

obtaining the address of the first clean data block from system probe information stored in the intermediate level of cache.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2022
From: ARUNKUMAR, AKHIL; HAZARI, GAUTAM TARASINGH; FLEISCHMAN, JAY; KALAMATIANOS, JOHN; LOH, GABRIEL H; SCRBAK, MARKO; NAKRA, TARUN; WALKER, WILLIAM L
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 058814/0797 →
Continuity (1)
Related Publication 20230195643A1 · Jun 22, 2023