IP Library › Granted Patent US 12,066,940
Granted Patent B2
US 12,066,940 · App. 17/955,618 · Granted Aug 20, 2024

Data reuse cache

Inventors: Alok Garg (Maynard, MA); Neil N Marketkar (Jamaica Plain, MA); Matthew T. Sobel (Boxborough, MA)
Assignee: Advanced Micro Devices, Inc.
G06F12/0811G06F12/0875G06F12/0884
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,066,940
App. No.
17/955,618
Granted
Aug 20, 2024
Kind
B2
Abstract

Data reuse cache techniques are described. In one example, a load instruction is generated by an execution unit of a processor unit. In response to the load instruction, data is loaded by a load-store unit for processing by the execution unit and is also stored to a data reuse cache communicatively coupled between the load-store unit and the execution unit. Upon receipt of a subsequent load instruction for the data from the execution unit, the data is loaded from the data reuse cache for processing by the execution unit.

Claims (41)

1. A method comprising:

generating a load instruction at an execution unit;

in response to the load instruction:

loading data from a load response obtained from a load-store unit for processing by the execution unit; and

storing the data from the load response to a data reuse cache communicatively coupled between the load-store unit and the execution unit;

generating a subsequent load instruction for the data at the execution unit; and

loading the data from the data reuse cache for processing by the execution unit in response to the subsequent load instruction.

2. The method of claim 1 , wherein the loading the data includes loading the data from a level of a cache system by the load-store unit.

3. The method of claim 2 , wherein the loading the data from the load response is performed in four cycles from the level of the cache system and the loading the data from the data reuse cache is performed in two cycles.

4. The method of claim 1 , further comprising generating a subsequent load instruction and routing the subsequent load instruction for servicing by the load-store unit based on detecting the subsequent load instruction spans more than one cache line of the data reuse cache.

5. The method of claim 1 , further comprising generating a subsequent load instruction and triggering a resynchronization operation based on detecting data that is a subject of the subsequent load instruction is stale.

6. The method of claim 1 , further comprising self-broadcasting a data reuse cache response that includes the data, the self-broadcasting using a broadcast port of the load-store unit.

7. The method of claim 1 , further comprising controlling whether to permit or restrict access, by the subsequent load instruction, to the data reuse cache using a filter.

8. The method of claim 7 , wherein the filter indicates a likelihood that the subsequent load instruction is a hit or miss to the data reuse cache.

9. The method of claim 7 , wherein the subsequent load instruction is included in a plurality of load instructions and the filter maintains a plurality of hit counters, respectively, for the plurality of load instructions and the controlling is based on values of the plurality of hit counters.

10. A processor unit comprising:

a cache system including a plurality of cache levels;

a load-store unit configured to generate a load response from the cache system for processing by an execution unit;

a data reuse cache communicatively coupled between the execution unit and the load-store unit, the data reuse cache configured to store data of the load response; and

the execution unit configured to filter load instructions for access to the data reuse cache based on a respective likelihood that the load instructions, respectively, result in a hit or miss to the data reuse cache.

11. The processor unit of claim 10 , wherein the data reuse cache is physically located closer to the execution unit on an integrated circuit than the load-store unit or the cache system.

12. The processor unit of claim 10 , wherein the respective likelihood is based on values of hit counters maintained, respectively, for the load instructions, in which, values of the hit counters are indicative of a number of times, respectively, the load instructions from the data reuse cache are a hit.

13. The processor unit of claim 12 , wherein the values of the hit counters are indicative of the number of times, respectively, the load instructions from the data reuse cache are a hit over a window defining a threshold number of hits.

14. The processor unit of claim 10 , wherein the execution unit is configured to control access by:

generating the respective likelihood that a respective load instruction, of the load instructions, does not result in a hit; and

in response to the generating, restricting access to the data reuse cache and permitting access, directly, to the plurality of cache levels.

15. A processor unit comprising:

a cache system including a cache level;

an execution unit configured to access a data reuse cache in parallel with access to the cache level of the cache system through a load-store unit;

the data reuse cache communicatively coupled between the execution unit and the load-store unit; and

the load-store unit configured to:

generate a load response from the cache system in response to a load instruction received from the execution unit;

load data from the load response to the execution unit for processing; and

store the data from the load response to the data reuse cache.

16. The processor unit of claim 15 , wherein the load instruction is included as part of a plurality of load instructions and the execution unit is configured to filter the plurality of load instructions to control access to the data reuse cache based on a respective likelihood of a hit or miss to the data reuse cache.

17. The processor unit of claim 16 , wherein the respective likelihood is based on values of hit counters maintained, respectively, for the plurality of load instructions.

18. The processor unit of claim 17 , wherein values of the hit counters are indicative of a number of times, respectively, the plurality of load instructions from the data reuse cache are a hit.

19. The processor unit of claim 15 , wherein the cache level is a level 1 data cache.

20. The processor unit of claim 15 , wherein the load instruction is included as part of a plurality of load instructions and the execution unit is configured to control access by:

generating a respective likelihood that a respective load instruction of the plurality of load instructions does not result in a hit; and

in response to the generating, restricting access to the data reuse cache and permitting access, directly, to the cache level.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2022
From: GARG, ALOK; MARKETKAR, NEIL N; SOBEL, MATTHEW T.
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 061457/0394 →
Continuity (1)
Related Publication 20240111674A1 · Apr 4, 2024