IP Library › Granted Patent US 12,596,656
Granted Patent B2
US 12,596,656 · App. 17/951,914 · Granted Apr 7, 2026

Prefetch aware LRU cache replacement policy

Inventors: Biju George (Folsom, CA); Zamshed I. Chowdhury (Folsom, CA); Prathamesh Raghunath Shinde (Folsom, CA); Chunhui Mei (San Diego, CA); Fangwen Fu (Folsom, CA)
Assignee: INTEL CORPORATION
G06F12/123G06F12/0862G06F2212/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 12,596,656
App. No.
17/951,914
Granted
Apr 7, 2026
Kind
B2
Abstract

Prefetch aware LRU cache replacement policy is described. An example of an apparatus includes one or more processors including a graphic processor, the graphics processor including a load store cache having multiple cache lines (CLs), each including bits for a cache line level (CL level) and one or more sectors for data storage; wherein the graphics processor is to receive one or more data elements for storage in the cache; set a CL level to track each CL receiving data, including setting CL level 1 for a CL receiving data in response to a miss in the cache and setting a CL level 2 for a CL receiving prefetched data in response to a prefetch request, and, upon determining that space is required in the cache to store data, apply a cache replacement policy, the policy being based at least in part on set CL levels for the CLs.

Claims (56)

1 . An apparatus comprising:

processing circuitry including graphics processing circuitry, the graphics processing circuitry including a load store cache, the load store cache including a plurality of cache lines, each of the plurality of cache lines including a plurality of bits for a cache line level (CL level) and one or more sectors for storage of data; and

memory for storage of data including data for graphics processing;

wherein the graphics processing circuitry is further to:

receive data for storage in the load store cache,

set a CL level to track each cache line receiving data, including setting CL level 1 for a cache line receiving data in response to a miss in the load store cache and setting a CL level 2 for a cache line receiving prefetched data in response to a prefetch request, and

upon determining that space is required in the load store cache to store additional data, apply a cache replacement policy, the cache replacement policy being based at least in part on set CL levels for the cache lines.

2 . The apparatus of claim 1 , wherein, in response to an increase in cache pressure, the graphics processing circuitry is further to decrement the set CL level for each cache line, the decrementing including reducing each instance of CL level 1 to CL level 0 and reducing each instance of CL level 2 to CL level 1.

3 . The apparatus of claim 1 , wherein the graphics processing circuitry is further to:

operate the cache replacement policy for the load store cache with either two CL levels or three CL levels based on a received selection.

4 . The apparatus of claim 1 , wherein the plurality of bits of each cache line includes two bits to encode at least three CL levels.

5 . The apparatus of claim 1 , wherein the plurality of bits for each cache line include a first bit to indicate whether the cache line contains prefetched data and a second bit to indicate whether the cache line is used.

6 . The apparatus of claim 1 , wherein the graphics processing circuitry is further to:

reissue a first prefetch request for a first data stored in a first cache line; and

set or reset the CL level of the first cache line to CL level 2 in response to the reissue of the first prefetch request.

7 . The apparatus of claim 1 , wherein the graphics processing circuitry is further to:

receive a first data in a first sector of a first cache line in response to a first prefetch request, the first cache line including at least the first sector and a second sector;

receive a second data in the second sector of the first cache line in response to a second prefetch request; and

set or reset the CL level of the first cache line to CL level 2 in response to receipt of the second data.

8 . The apparatus of claim 1 , wherein the graphics processing circuitry is to process a machine learning application, the machine learning application including prefetching of data to the load store cache for processing.

9 . At least one non-transitory computer-readable medium having stored thereon instructions which, when executed, cause a computing device to perform operations comprising:

receiving data for storage in a load store cache of a graphics processor in a computing system, the load store cache including a plurality of cache lines, each of the plurality of cache lines including a plurality of bits for a cache line level (CL level) and one or more sectors for storage of data;

setting a CL level to track each cache line receiving data, including setting CL level 1 for a cache line receiving data in response to a miss in the load store cache and setting a CL level 2 for a cache line receiving prefetched data in response to a prefetch request; and

upon determining that space is required in the load store cache to store additional data, applying a cache replacement policy, the cache replacement policy being based at least in part on set CL levels for the cache lines.

10 . The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise:

in response to an increase in cache pressure, decrementing the set CL level for each cache line, the decrementing including reducing each instance of CL level 1 to CL level 0 and reducing each instance of CL level 2 to CL level 1.

11 . The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise:

operating the cache replacement policy for the load store cache with either two CL levels or three CL levels based on a received selection.

12 . The non-transitory computer-readable medium of claim 9 , wherein the plurality of bits of each cache line includes two bits to encode at least three CL levels.

13 . The non-transitory computer-readable medium of claim 12 , wherein the plurality of bits for each cache line include a first bit to indicate whether the cache line contains prefetched data and a second bit to indicate whether the cache line is used.

14 . The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise:

reissuing a first prefetch request for a first data stored in a first cache line; and

setting or resetting the CL level of the first cache line to CL level 2 in response to the reissue of the first prefetch request.

15 . The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise:

receiving a first data in a first sector of a first cache line in response to a first prefetch request, the first cache line including at least the first sector and a second sector;

receiving a second data in the second sector of the first cache line in response to a second prefetch request; and

setting or resetting the CL level of the first cache line to CL level 2 in response to receipt of the second data.

16 . The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise:

processing a machine learning application, the machine learning application including prefetching of data to the load store cache for processing.

17 . A method comprising:

receiving data for storage in a load store cache of a graphics processor in a computing system, the load store cache including a plurality of cache lines, each of the plurality of cache lines including a plurality of bits for a cache line level (CL level) and one or more sectors for storage of data;

setting a CL level to track each cache line receiving data, including setting CL level 1 for a cache line receiving data in response to a miss in the load store cache and setting a CL level 2 for a cache line receiving prefetched data in response to a prefetch request; and

upon determining that space is required in the load store cache to store additional data, applying a cache replacement policy, the cache replacement policy being based at least in part on set CL levels for the cache lines.

18 . The method of claim 17 , further comprising:

in response to an increase in cache pressure, decrementing the set CL level for each cache line, the decrementing including reducing each instance of CL level 1 to CL level 0 and reducing each instance of CL level 2 to CL level 1.

19 . The method of claim 17 , further comprising:

operating the cache replacement policy for the load store cache with either two CL levels or three CL levels based on a received selection.

20 . The method of claim 17 , wherein the plurality of bits of each cache line includes two bits to encode at least three CL levels.

21 . The method of claim 20 , wherein the plurality of bits for each cache line include a first bit to indicate whether the cache line contains prefetched data and a second bit to indicate whether the cache line is used.

22 . The method of claim 17 , further comprising:

reissuing a first prefetch request for a first data stored in a first cache line; and

setting or resetting the CL level of the first cache line to CL level 2 in response to the reissue of the first prefetch request.

23 . The method of claim 17 , further comprising:

receiving a first data in a first sector of a first cache line in response to a first prefetch request, the first cache line including at least the first sector and a second sector;

receiving a second data in the second sector of the first cache line in response to a second prefetch request; and

setting or resetting the CL level of the first cache line to CL level 2 in response to receipt of the second data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2022
From: GEORGE, BIJU; CHOWDHURY, ZAMSHED I.; SHINDE, PRATHAMESH RAGHUNATH; MEI, CHUNHUI; FU, FANGWEN
To: INTEL CORPORATION
Reel/Frame 061211/0932 →
Continuity (1)
Related Publication 20240104025A1 · Mar 28, 2024
References Cited (3)
US 6643745B1 · Palanca · 2003 [cited by examiner]
US 20110219208A1 · Asaad · 2011 [cited by examiner]
US 20150026404A1 · Lilly · 2015 [cited by examiner]