IP Library Granted Patent US 12,235,769
Granted Patent B2
US 12,235,769 · App. 18/422,584 · Granted Feb 25, 2025

Criticality-informed caching policies with multiple criticality levels

Inventors: Tyler J. Huberty (Sunnyvale, CA); Vivek Venkatraman (Santa Clara, CA); Sandeep Gupta (Santa Clara, CA); Eric J. Furbish (Austin, TX); Srinivasa Rangan Sridharan (Santa Clara, CA); Stephen G. Meier (Los Altos, CA)
Assignee: Apple Inc.
G06F12/0891G06F9/3877G06F12/0292G06F12/0833G06F12/0862G06F12/126G06F2212/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,235,769
App. No.
18/422,584
Granted
Feb 25, 2025
Kind
B2
Abstract

A cache may store critical cache lines and non-critical cache lines, and may attempt to retain critical cache lines in the cache by, for example, favoring the critical cache lines in replacement data updates. Multiple levels of criticality may be available for a given cache line and cache circuitry may adjust the criticality value of in response to a criticality event. One or more upper criticality levels may be masked when selecting a victim cache line for replacement.

Claims (57)

1. An apparatus, comprising:

one or more processors configured to issue memory requests to access a memory system; and

cache circuitry configured to cache data from the memory system for access by the one or more processors, wherein:

the cache circuitry includes control circuitry configured to:

assign criticality values to cache lines, wherein a given criticality value indicates that the corresponding cache line is non-critical or has one of multiple criticality levels; and

adjust a criticality value of a cache line in response to a criticality event;

to select a victim cache line for replacement, the cache circuitry is configured to:

mask cache lines having one or more upper criticality levels; and

select the victim cache line from among unmasked cache lines based on access-recency data maintained by the cache circuitry separately from the criticality values.

2. The apparatus of claim 1 , further comprising:

load queue circuitry;

wherein the criticality event corresponds to a load that accesses the cache line being an oldest outstanding load in the load queue circuitry.

3. The apparatus of claim 1 , further comprising:

memory management circuitry, wherein the criticality event corresponds to an access to the cache line requested by the memory management circuitry.

4. The apparatus of claim 1 , further comprising:

miss queue circuitry for fetch requests that miss in an instruction cache;

wherein the criticality event corresponds to a fetch request that accesses the cache line being an oldest outstanding fetch request in the miss queue circuitry.

5. The apparatus of claim 1 , wherein the adjustment is one of the following adjustments:

assignment of a lowest critical criticality value to replace a non-critical value; and

an increase in criticality of an already-critical criticality value.

6. The apparatus of claim 1 , wherein the mask of cache lines having one or more upper criticality levels includes to mask fewer levels of criticality until a candidate victim cache line is found.

7. The apparatus of claim 1 , wherein:

the apparatus includes control circuitry configured to monitor capacity of a higher-level cache that is allocable to data from the cache circuitry; and

the cache circuitry is configured to assign a cache line to a lowest criticality level based on the monitored capacity being below a threshold.

8. The apparatus of claim 1 , wherein, to allocate a cache entry for a non-critical cache line, the cache circuitry is configured to determine an artificial access-recency data value for the non-critical cache line based on access-recency data values of cached critical cache lines.

9. The apparatus of claim 8 , wherein the artificial access-recency value is less recent than an access-recency value of a least-recently-used cached critical cache line.

10. The apparatus of claim 1 , wherein:

the apparatus includes control circuitry configured to monitor capacity of a higher-level cache that is allocable to data from the cache circuitry; and

to allocate a cache entry for a non-critical cache line, the cache circuitry is configured to determine an artificial access-recency data value for the non-critical cache line based on the monitored capacity.

11. The apparatus of claim 1 , wherein the apparatus is a computing device that further comprises:

display control circuitry; and

network interface circuitry.

12. The apparatus of claim 1 , wherein the apparatus is an integrated circuit.

13. A method, comprising:

issuing, by a computing device, memory requests to access a memory system;

caching, by the computing device, data from the memory system;

assigning, by the computing device, criticality values to cache lines, wherein a given criticality value indicates that the corresponding cache line is non-critical or has one of multiple criticality levels;

adjusting, by the computing device, a criticality value of a cache line in response to a criticality event;

selecting, by the computing device, a victim cache line for replacement, including:

masking cache lines having one or more upper criticality levels; and

selecting the victim cache line from among unmasked cache lines based on access-recency data maintained separately from the criticality values.

14. The method of claim 13 , wherein the criticality event corresponds to a load that accesses the cache line being an oldest outstanding load in a load queue.

15. The method of claim 13 , wherein the criticality event corresponds to an access to the cache line requested by memory management circuitry.

16. The method of claim 13 , wherein the criticality event corresponds to a fetch request that accesses the cache line being an oldest outstanding fetch request in miss queue circuitry.

17. The method of claim 13 , wherein the masking includes masking fewer levels of criticality until a candidate victim cache line is found.

18. The method of claim 13 , further comprising:

allocating a cache entry for a non-critical cache line, including determining an artificial access-recency data value for the non-critical cache line based on access-recency data values of cached critical cache lines.

19. The method of claim 18 , wherein the artificial access-recency value is less recent than an access-recency value of a least-recently-used cached critical cache line.

20. A non-transitory computer-readable medium having instructions of a hardware description programming language stored thereon that, when processed by a computing system, program the computing system to generate a computer model, wherein the model represents a hardware circuit that includes:

one or more processors configured to issue memory requests to access a memory system; and

cache circuitry configured to cache data from the memory system for access by the one or more processors, wherein:

the cache circuitry includes control circuitry configured to:

assign criticality values to cache lines, wherein a given criticality value indicates that the corresponding cache line is non-critical or has one of multiple criticality levels; and

adjust a criticality value of a cache line in response to a criticality event;

to select a victim cache line for replacement, the cache circuitry is configured to:

mask cache lines having one or more upper criticality levels; and

select the victim cache line from among unmasked cache lines based on access-recency data maintained by the cache circuitry separately from the criticality values.

Continuity (3)
Continuation 17727031 · Apr 22, 2022
Provisional Application 63239258 · Aug 31, 2021
Related Publication 20240168887A1 · May 23, 2024
References Cited (43)
US 8615634B2 · Daly et al. · 2013 [cited by applicant]
US 8990506B2 · Cherukuri et al. · 2015 [cited by applicant]
US 10289558B2 · Kamruzzaman · 2019 [cited by applicant]
US 10846241B2 · Zaydman · 2020 [cited by applicant]
US 10963392B1 · Gupta et al. · 2021 [cited by applicant]
US 20020013887A1 · Ting · 2002 [cited by applicant]
US 20090204764A1 · Larson et al. · 2009 [cited by applicant]
US 20100262783A1 · Guthrie et al. · 2010 [cited by applicant]
US 20110145506A1 · Cherukuri · 2011 [cited by examiner]
US 20120203968A1 · Daly et al. · 2012 [cited by applicant]
US 20130151777A1 · Daly et al. · 2013 [cited by applicant]
US 20150149721A1 · Kannan et al. · 2015 [cited by applicant]
US 20160255169A1 · Kovvur et al. · 2016 [cited by applicant]
US 20170060633A1 · Suarez et al. · 2017 [cited by applicant]
US 20170337133A1 · Bolbenes et al. · 2017 [cited by applicant]
US 20180004661A1 · Umehara et al. · 2018 [cited by applicant]
US 20180285261A1 · Mandal et al. · 2018 [cited by applicant]
US 20190018798A1 · Al Sheikh et al. · 2019 [cited by applicant]
US 20200371924A1 · Chachad et al. · 2020 [cited by applicant]
US 20210390053A1 · Roberts · 2021 [cited by examiner]
US 20210406170A1 · Jung et al. · 2021 [cited by applicant]
CN 1617107A · 2005 [cited by applicant]
CN 1955948A · 2007 [cited by applicant]
CN 108664415A · 2018 [cited by applicant]
CN 108885590A · 2018 [cited by applicant]
CN 109074319A · 2018 [cited by applicant]
CN 109154912A · 2019 [cited by applicant]
KR 1020150079413A · 2015 [cited by applicant]
TW 201631482A · 2016 [cited by applicant]
TW 201633145A · 2016 [cited by applicant]
TW 1628541B · 2018 [cited by applicant]
TW 1688859B · 2020 [cited by applicant]
Samantika Subramaniam Anne Bracyy Hong Wangy Gabriel H. Loh; “Criticality-Based Optimizations for Efficient Load Processing”; Georgia Institute of Technology & Intel Corporation, College of Computing Microarchitecture R… [cited by applicant]
Srikanth T. Srinivasan, Roy Dz-ching Ju, Alvin R. Lebeck, Chris Wilkerson; “Locality vs. Criticality”; Department of Computer Science,Microprocessor Research Labs, Duke University Intel Corporation fsri, [email protected] [cited by applicant]
Samira Khany, [email protected], Alaa R. Alameldeen, [email protected], Chris Wilkerson,[email protected], Onur Mutluy [email protected], Daniel A. Jim´enezz [email protected]; “Improving Cache Performa… [cited by applicant]
U.S. Appl. No. 17/727,020, filed Apr. 22, 2022. [cited by applicant]
International Search Report and Written Opinion in PCT Appl. No. PCT/US2022/038712 mailed Nov. 17, 2022, 11 pages. [cited by applicant]
Office Action in U.S. Appl. No. 17/727,020 mailed Mar. 16, 2023, 19 pages. [cited by applicant]
Office Action in Taiwanese Appl. No. 111132878 mailed Jun. 6, 2023, 12 pages. [cited by applicant]
International Preliminary Report on Patentability in PCT Appl. No. PCT/US2022/038712 mailed Mar. 14, 2024, 8 pages. [cited by applicant]
Office Action in Taiwanese Appl. No. 113105088 mailed Apr. 12, 2024, 5 pages. [cited by applicant]
Office Action in Korean Patent Application No. 10-2024-7006439 mailed May 14, 2024, 7 pages. [cited by applicant]
Office Action in Chinese Appl. No. 202280058339.X mailed May 27, 2024, 10 pages. [cited by applicant]