# US 12,182,035 B2 · Systems and methods for cache optimization

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,182,035 B2
- Document ID: US12182035B2
- Status: Granted
- Kind: B2
- Application number: 17/428,529
- Filed: 2020-03-14
- Published: 2022-04-14
- Granted: 2024-12-31
- Earliest claimed: 2019-03-15
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Altug Koker; Joydeep Ray; Elmoustapha Ould-Ahmed-Vall; Abhishek Appu; Aravindh Anantaraman; Valentin Andrei; Durgaprasad Bilagi; Varghese George; Brent Insko; Sanjeev Jahagirdar; Scott Janus; Pattabhiraman K; SungYe Kim; Subramaniam Maiyuran; Vasanth Ranganathan; Lakshminarayanan Striramassarma; Xinmin Tian
- Web page: https://patentgrep.com/patent/US12182035B2

## CPC

- G06F 12/123: with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
- G06F 12/0875: with dedicated cache, e.g. instruction or stack
- G06F 12/0891: using clearing, invalidating or resetting means
- G06F 12/126: with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06T 1/60: Memory management
- G06F 2212/302: In image processor or graphics adapter
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Systems and methods for improving cache efficiency and utilization are disclosed. In one embodiment, a graphics processor includes processing resources to perform graphics operations and a cache controller of a cache memory that is coupled to the processing resources. The cache controller is configured to set an initial aging policy using an aging field based on age of cache lines within the cache memory and to determine whether a hint or an instruction to indicate a level of aging has been received.

## Claims

### Claim 1

A graphics processor, comprising:
processing resources to perform graphics operations; and
a cache controller of a cache of the graphics processor coupled to the processing resources, the cache controller is configured to set an initial aging policy using an aging field based on age of cache lines within the cache memory and to determine whether a hint at an instruction level having attributes to indicate a direction level of aging allocation to modify an age level of the aging field to improve a caching policy has been received.

### Claim 2 (depends on 1)

The graphics processor of claim 1, wherein the cache controller is further configured to modify an aging policy when the hint at an instruction level sets a higher level age allocation for a first graphics surface and a lower level age allocation for a second graphics surface based on user level exposure.

### Claim 3 (depends on 1)

The graphics processor of claim 1, wherein the initial aging policy comprises a least recently used data or cache line policy.

### Claim 4 (depends on 1)

The graphics processor of claim 1, wherein the modified aging policy comprises a combination of age and level of importance as provided via user level exposure.

### Claim 5 (depends on 4)

The graphics processor of claim 4, wherein the level of importance includes a first level of importance to preserve data longer in the cache for a first time period.

### Claim 6 (depends on 4)

The graphics processor of claim 4, wherein the level of importance includes a second level of importance for data to be evicted from the cache within a second time period, which is less than the first time period.

### Claim 7 (depends on 4)

The graphics processor of claim 4, wherein the modified aging policy comprises a combination of age and level of importance including a multi-bit cache policy.

### Claim 8 (depends on 4)

The graphics processor of claim 4, wherein the cache controller is configured to modify the aging policy by modifying age or level of importance based on the received hint or instruction.

### Claim 9

A computer implemented method, comprising:
initializing, with a cache controller, cache memory with allocated cache lines;
setting an initial aging policy using an aging field based on age of each cache line within the cache memory; and
determining, with the cache controller, whether a hint at an instruction level having attributes to indicate a level of aging to modify an age level of the aging field to improve a caching policy has been received.

### Claim 10 (depends on 9)

The computer implemented method of claim 9, further comprising:
implementing the initial aging policy using age of cache lines if no hint or instruction with attributes has been received.

### Claim 11 (depends on 9)

The computer implemented method of claim 9, further comprising:
modifying, with the cache controller, the initial aging policy when the hint or the instruction having attributes is received.

### Claim 12 (depends on 11)

The computer implemented method of claim 11, wherein the modified aging policy comprises a combination of age and level of importance as provided via user level exposure.

### Claim 13 (depends on 12)

The computer implemented method of claim 12, wherein a first cache line has a first age level setting, a second cache line has a second age level setting, and a third cache line has a third age level setting.

### Claim 14 (depends on 13)

The computer implemented method of claim 13, wherein the third age level setting has a lowest age level setting causing an entry from the third cache line to be evicted.

### Claim 15 (depends on 13)

The computer implemented method of claim 13, wherein the first age level setting is downgraded to the second age level setting and the second age level setting is downgraded to the third age level setting when the entry for the third cache line is evicted.

### Claim 16

A cache memory of a graphics processing unit (GPU), comprising:
a data array to store data; and
a cache controller of the GPU coupled to the data array, the cache controller is configured to set an initial aging policy using an aging field based on age of data within the data array and to determine whether a hint at an instruction level to indicate a level of aging to modify an age level of the aging field to improve a caching policy has been received.

### Claim 17 (depends on 16)

The cache memory of claim 16, wherein the cache controller is further configured to modify an aging policy when the hint at an instruction level sets a higher level age allocation for a first graphics surface and a lower level age allocation for a second graphics surface based on user level exposure.

### Claim 18 (depends on 16)

The cache memory of claim 16, wherein the initial aging policy comprises a least recently used data or cache line policy.

### Claim 19 (depends on 17)

The cache memory of claim 17, wherein the modified aging policy comprises a combination of age and level of importance as provided via user level exposure.

### Claim 20 (depends on 19)

The cache memory of claim 19, wherein the level of importance includes a first level of importance to preserve data longer in the cache for a first time period.

### Claim 21 (depends on 20)

The cache memory of claim 20, wherein the level of importance includes a second level of importance for data to be evicted from the cache within a second time period, which is less than the first time period.
