IP Library Granted Patent US 12,417,182
Granted Patent B2
US 12,417,182 · App. 17/551,172 · Granted Sep 16, 2025

De-prioritizing speculative code lines in on-chip caches

Inventors: Anant Vithal Nori (Bangalore, IN); Prathmesh Kallurkar (Bangalore, IN); Niranjan Kumar Soundararajan (Bengalaru, IN); Sreenivas Subramoney (Bangalore, IN); Lihu Rappoport (Haifa, IL); Hanna Alam (Jish, IL); Adrian Moga (Portland, OR); Ronak Singhal (Portland, OR)
Assignee: Intel Corporation
G06F12/084G06F2212/62
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,417,182
App. No.
17/551,172
Granted
Sep 16, 2025
Kind
B2
Abstract

Methods and apparatus relating to de-prioritizing speculative code lines in on-chip caches are described. In an embodiment, logic circuitry determines whether a storage structure includes a reference to a code miss request prior to transmission of the code miss request to a shared cache. The logic circuitry causes de-prioritization of a code line, corresponding to the code miss request, in the shared cache in response to an absence of the reference in the storage structure. Other embodiments are also disclosed and claimed.

Claims (30)

1. An apparatus comprising:

logic circuitry to determine whether a storage structure includes a reference to a code miss request prior to transmission of the code miss request to a shared cache; and

the logic circuitry to cause de-prioritization of a code line, corresponding to the code miss request, in the shared cache in response to an absence of the reference in the storage structure,

wherein the code miss request is directed at the shared cache, wherein the storage structure is to store an indicia or a virtual address of one or more instructions or one or more micro-operations that have been allocated in an Instruction Dispatch Queue (IDQ), wherein the IDQ is to store an instruction or micro-operation prior to allocation in a pre-execution stage of a processor pipeline.

2. The apparatus of claim 1 , wherein the storage structure comprises a Bloom filter.

3. The apparatus of claim 1 , wherein the shared cache is a Level 2 (L2) cache.

4. The apparatus of claim 1 , wherein the code miss request is directed at the shared cache after a miss in a code Level 1 (L1) cache.

5. The apparatus of claim 1 , wherein the logic circuitry is to forward the code miss request to the shared cache with an indication to de-prioritize the code line in the shared cache in response to the absence of the reference in the storage structure.

6. The apparatus of claim 1 , wherein the shared cache is to be shared amongst a plurality of processor cores of a processor.

7. The apparatus of claim 1 , wherein a processor, having one or more processor cores, comprises one or more of: the logic circuitry and the shared cache.

8. An apparatus comprising:

a queue to store an entry for one or more recently fetched code lines from a shared cache; and

logic circuitry to determine whether the queue includes a matching entry corresponding to an instruction or micro-operation stored in an Instruction Dispatch Queue (IDQ); and

the logic circuitry to cause de-prioritization of a code line in the shared cache in response to an absence of the matching entry in the queue.

9. The apparatus of claim 8 , wherein each entry of the queue comprises a physical address of a code line, a virtual address of the code line, an IDQ write flag for the code line, and a valid flag for the code line.

10. The apparatus of claim 9 , wherein the IDQ write flag is to be updated in response to storage of the instruction or micro-operation in the IDQ.

11. The apparatus of claim 8 , wherein the logic circuitry is to cause transmission of a request to the shared cache to cause de-prioritization of the code line in the shared cache.

12. The apparatus of claim 11 , wherein the request comprises an address of the code line and an indication to de-prioritize the code line in the shared cache.

13. The apparatus of claim 8 , wherein the shared cache is a Level 2 (L2) cache.

14. The apparatus of claim 8 , wherein the shared cache is to be shared amongst a plurality of processor cores of a processor.

15. The apparatus of claim 8 , wherein a processor, having one or more processor cores, comprises one or more of: the logic circuitry and the shared cache.

16. One or more non-transitory computer-readable media comprising one or more instructions that when executed on a processor configure the processor to perform:

determining whether a storage structure includes a reference to a code miss request prior to transmission of the code miss request to a shared cache; and

causing de-prioritization of a code line, corresponding to the code miss request, in the shared cache in response to an absence of the reference in the storage structure,

wherein the code miss request is directed at the shared cache, and wherein the storage structure is to store an indicia or a virtual address of one or more instructions or one or more micro-operations that have been allocated in an Instruction Dispatch Queue (IDQ), wherein the IDQ is to store an instruction or micro-operation prior to allocation in a pre-execution stage of a processor pipeline.

17. The one or more computer-readable media of claim 16 , wherein the storage structure comprises a Bloom filter.

18. The one or more computer-readable media of claim 16 , wherein the shared cache is a Level 2 (L2) cache.

19. The one or more computer-readable media of claim 16 , wherein the code miss request is directed at the shared cache after a miss in a code Level 1 (L1) cache.

20. The one or more computer-readable media of claim 16 , further comprising one or more instructions that when executed on the processor configure the processor to perform forwarding the code miss request to the shared cache with an indication to de-prioritize the code line in the shared cache in response to the absence of the reference in the storage structure.

21. The one or more computer-readable media of claim 16 , further comprising one or more instructions that when executed on the processor configure the processor to perform sharing the shared cache amongst a plurality of processor cores of the processor.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2024
From: SINGHAL, RONAK
To: INTEL CORPORATION
Reel/Frame 066454/0356 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2022
From: SINGHAL, RONAK
To: INTEL CORPORATION
Reel/Frame 060690/0550 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2022
From: NORI, ANANT VITHAL; KALLURKAR, PRATHMESH; SOUNDARARAJAN, NIRANJAN KUMAR; SUBRAMONEY, SREENIVAS; RAPPOPORT, LIHU; ALAM, HANNA; MOGA, ADRIAN
To: INTEL CORPORATION
Reel/Frame 060579/0033 →
Continuity (1)
Related Publication 20230185718A1 · Jun 15, 2023
References Cited (143)
US 5699537A · Sharangpani et al. · 1997 [cited by applicant]
US 5809268A · Chan · 1998 [cited by applicant]
US 6049866A · Earl · 2000 [cited by applicant]
US 6208273B1 · Dye et al. · 2001 [cited by applicant]
US 6233645B1 · Chrysos et al. · 2001 [cited by applicant]
US 6388585B1 · Lacerda · 2002 [cited by applicant]
US 6505293B1 · Jourdan et al. · 2003 [cited by applicant]
US 6625723B1 · Jourday et al. · 2003 [cited by applicant]
US 6862662B1 · Cloud · 2005 [cited by applicant]
US 6879266B1 · Dye et al. · 2005 [cited by applicant]
US 7519796B1 · Golla et al. · 2009 [cited by applicant]
US 8006073B1 · Ali et al. · 2011 [cited by applicant]
US 8447948B1 · Erdogan et al. · 2013 [cited by applicant]
US 8738860B1 · Griffin et al. · 2014 [cited by applicant]
US 9552169B2 · Rappoport et al. · 2017 [cited by applicant]
US 10331558B2 · Sazegari et al. · 2019 [cited by applicant]
US 10671550B1 · Doi · 2020 [cited by applicant]
US 11625349B1 · Randall et al. · 2023 [cited by applicant]
US 12028094B2 · Gaur et al. · 2024 [cited by applicant]
US 20020124142A1 · Har et al. · 2002 [cited by applicant]
US 20020174255A1 · Hayter et al. · 2002 [cited by applicant]
US 20030084274A1 · Gaither et al. · 2003 [cited by applicant]
US 20030088759A1 · Wilkerson · 2003 [cited by applicant]
US 20030217251A1 · Jourdan et al. · 2003 [cited by applicant]
US 20040010679A1 · Moritz et al. · 2004 [cited by applicant]
US 20040039880A1 · Pentkovski · 2004 [cited by examiner]
US 20050160234A1 · Newburn et al. · 2005 [cited by applicant]
US 20050289300A1 · Kim et al. · 2005 [cited by applicant]
US 20060101238A1 · Bose et al. · 2006 [cited by applicant]
US 20060294311A1 · Fu · 2006 [cited by examiner]
US 20070204135A1 · Jiang et al. · 2007 [cited by applicant]
US 20080059765A1 · Svendsen et al. · 2008 [cited by applicant]
US 20080177984A1 · Lataille et al. · 2008 [cited by applicant]
US 20080256345A1 · Bose et al. · 2008 [cited by applicant]
US 20080282034A1 · Jiao et al. · 2008 [cited by applicant]
US 20090150657A1 · Gschwind et al. · 2009 [cited by applicant]
US 20100223237A1 · Mishra et al. · 2010 [cited by applicant]
US 20110072213A1 · Nickolls et al. · 2011 [cited by applicant]
US 20110208918A1 · Raikin et al. · 2011 [cited by applicant]
US 20120089819A1 · Chaudhry et al. · 2012 [cited by applicant]
US 20130111605A1 · Maeda et al. · 2013 [cited by applicant]
US 20130339706A1 · Greiner et al. · 2013 [cited by applicant]
US 20140095814A1 · Marden et al. · 2014 [cited by applicant]
US 20140281240A1 · Willhalm · 2014 [cited by applicant]
US 20140317377A1 · Ould-Ahmed-Vall et al. · 2014 [cited by applicant]
US 20140372736A1 · Greenhalgh et al. · 2014 [cited by applicant]
US 20150106567A1 · Godard et al. · 2015 [cited by applicant]
US 20150178202A1 · Sankaran et al. · 2015 [cited by applicant]
US 20150178214A1 · Alameldeen et al. · 2015 [cited by applicant]
US 20150378731A1 · Lai et al. · 2015 [cited by applicant]
US 20160092373A1 · Doshi et al. · 2016 [cited by applicant]
US 20160179676A1 · Engh-Halstvedt et al. · 2016 [cited by applicant]
US 20160321076A1 · Satpathy et al. · 2016 [cited by applicant]
US 20160321185A1 · Doshi et al. · 2016 [cited by applicant]
US 20160328172A1 · Rappoport et al. · 2016 [cited by applicant]
US 20170046164A1 · Madhavan et al. · 2017 [cited by applicant]
US 20170161076A1 · Alapati et al. · 2017 [cited by applicant]
US 20170199739A1 · Kitchin et al. · 2017 [cited by applicant]
US 20170220475A1 · Bradbury et al. · 2017 [cited by applicant]
US 20170249149A1 · Priyadarshi et al. · 2017 [cited by applicant]
US 20170322811A1 · Abdallah · 2017 [cited by applicant]
US 20170371660A1 · Smith et al. · 2017 [cited by applicant]
US 20180011796A1 · Guilford et al. · 2018 [cited by applicant]
US 20180152201A1 · Gopal et al. · 2018 [cited by applicant]
US 20180165097A1 · Hanley · 2018 [cited by applicant]
US 20190034335A1 · Torre et al. · 2019 [cited by applicant]
US 20190042354A1 · Coquerel et al. · 2019 [cited by applicant]
US 20190044852A1 · Nolan et al. · 2019 [cited by applicant]
US 20190034333A1 · Sazegari et al. · 2019 [cited by applicant]
US 20190391869A1 · Gopal et al. · 2019 [cited by applicant]
US 20200190807A1 · Header · 2020 [cited by applicant]
US 20200249948A1 · Giamei et al. · 2020 [cited by applicant]
US 20200272474A1 · Gabor et al. · 2020 [cited by applicant]
US 20200285580A1 · Subramanian et al. · 2020 [cited by applicant]
US 20210035258A1 · Ray et al. · 2021 [cited by applicant]
US 20210072994A1 · Bainville et al. · 2021 [cited by applicant]
US 20210103550A1 · Appu et al. · 2021 [cited by applicant]
US 20210114495A1 · Battaglia et al. · 2021 [cited by applicant]
US 20210312697A1 · Maiyuran et al. · 2021 [cited by applicant]
US 20210374897A1 · Ray et al. · 2021 [cited by applicant]
US 20220066931A1 · Ray et al. · 2022 [cited by applicant]
US 20220091880A1 · Dutu et al. · 2022 [cited by applicant]
US 20220197643A1 · Gaur et al. · 2022 [cited by applicant]
US 20220197659A1 · Gaur et al. · 2022 [cited by applicant]
US 20220197794A1 · Kallurkar et al. · 2022 [cited by applicant]
US 20220197799A1 · Gaur et al. · 2022 [cited by applicant]
US 20220197813A1 · Gaur et al. · 2022 [cited by applicant]
US 20220272569A1 · Berliner et al. · 2022 [cited by applicant]
US 20220295345A1 · Trim et al. · 2022 [cited by applicant]
US 20230019271A1 · Mukherjee et al. · 2023 [cited by applicant]
CN 103810297A · 2014 [cited by applicant]
CN 114661227A · 2022 [cited by applicant]
CN 114661359A · 2022 [cited by applicant]
CN 114661625A · 2022 [cited by applicant]
CN 115793960A · 2023 [cited by applicant]
CN 116263671A · 2023 [cited by applicant]
EP 4020185A1 · 2022 [cited by applicant]
EP 4020223A1 · 2022 [cited by applicant]
EP 4020230A1 · 2022 [cited by applicant]
EP 4020231A1 · 2022 [cited by applicant]
EP 4149008A1 · 2023 [cited by applicant]
EP 4198749A1 · 2023 [cited by applicant]
JP H0922353A · 1997 [cited by applicant]
WO 2020190799A3 · 2020 [cited by applicant]
WO 2020190807A1 · 2020 [cited by applicant]
Final Office Action issued in U.S. Appl. No. 17/133,618, issued Jun. 28, 2024, 17 pages. [cited by applicant]
Non-Final Office Action from U.S. Appl. No. 17/133,618, mailed Mar. 15, 2024, 18 pages. [cited by applicant]
Non-final Office Action issued in U.S. Appl. No. 17/133,615 on Feb. 15, 2024, 16 pages. [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 17/470,089, mailed Sep. 25, 2024, 13 pages. [cited by applicant]
Andreas Abel et al., Reverse Engineering of Cache Replacement Policies in Intel Microprocessors and Their Evaluation, 2014 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), 3 pages. [cited by applicant]
Andreas Abel et al., Measurement-based Modeling of the Cache Replacement Policy, 2013 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS), 10 pages. [cited by applicant]
Glenn Reinmany et al., Fetch Directed Instruction Prefetching. International Symposium on Microarchitecture (MICRO-32), Nov. 1999, 12 pages. [cited by applicant]
Pepe Vila et al., CacheQuery: learning replacement policies from hardware caches, 2020 ACM SIGPLAN Conference on Programming Language Design and Implementation, 17 pages. [cited by applicant]
Examination report for European Application No. 22206038.6, issued Feb. 21, 2024, 8 pages. [cited by applicant]
Decision to grant European patent for Application No. 21198841.5, Apr. 5, 2024, 2 pages. [cited by applicant]
European Examination Report, application No. 21198874.6, Oct. 23, 2023, 7 pages. [cited by applicant]
European Patent Office, Notice of Grant for Application No. 21198841.5, issued Dec. 14, 2023, 80 pages. [cited by applicant]
Examination report issued by the European Patent Office for Application No. 21198874.6-1203, issued Jan. 19, 2023, 6 pages. [cited by applicant]
Extended European Search Report for application No. 22188197.2-1224, issued Feb. 3, 2023, 10 pages. [cited by applicant]
Extended European Search Report issued on Mar. 1, 2022 for EP Application No. 2119770.4. [cited by applicant]
Extended European Search Report issued on Mar. 1, 2022 for EP Application No. 21198841.5. [cited by applicant]
Extended European Search Report issued on Mar. 16, 2022 for EP Application No. 21198874.6. [cited by applicant]
Extended European Search Report issued on Apr. 7, 2022 for EP Application No. 21198710.2. [cited by applicant]
Extended European search report for application No. 22206038.6., issued May 12, 2023, 12 pages. [cited by applicant]
Abail, et al. “Data Compression Accelerator on IBM POWER9 and z15 Processors,” ISCA 2020, 14 pages. [cited by applicant]
Cao et al. “Characterizing, Modeling, and Benchmarking RocksDB Key-Value Workloads at Facebook,” FAST 2020, retrieved from https://b;log.acolyer.org/2020/03/11/rocks-db-at-facebook/ on Nov. 19, 2020, 12 pages. [cited by applicant]
Colyer, Adrian, “Software-defined far memory in warehouse scale computers,” The Morning Paper, 13 pages, May 22, 2019. [cited by applicant]
Lagar-Cavilla et al. “Software-Defined Far Memory in Warehouse-Scale Computers,” ASPLOS 2019, retrieved from https://blog.acolyer.org/2019/05/22/sw-far-memory/ on Nov. 19, 2020, 11 pages. [cited by applicant]
Lagar-Cavilla, Andres, et al. “Software-Defined Far Memory in Warehouse-Scale Computers,” Session: VM/Memory, ASPLOS '19, Apr. 13-17, 2019, Providence, Rhode Island, pp. 317-330. [cited by applicant]
Zswap, The Linux Kernel documentation, Linux Memory Management Documentation, retrieved from www.kernel.org/doc/html/latest/vm/zswap.html on Aug. 29, 2021. [cited by applicant]
Ayers et al., “Asmdb: understanding and mitigating front-end stalls in warehouse-scale computers,” ISCA '19, Jun. 22-26, 2019, 12 pages. [cited by applicant]
Kanev et al., “Profiling a Warehouse-Scale Computer,” ISCA'15, Jun. 13-17, 2015, 12 pages. [cited by applicant]
Reinman et al., “Fetch Directed Instruction Prefetching,” Proceedings of the 32nd Annual International Symposium on Microarchitecture (MICRO-32), Nov. 1999, 12 pages. [cited by applicant]
European Examination report for application No. 22188197.2, issued Aug. 28, 2024, 6 pages. [cited by applicant]
Notice of Intention to Grant for European Patent Application No. 21198710.2, issued Aug. 2, 2024, 89 pages. [cited by applicant]
European Patent Office communication regarding Intention to Grant for application No. 21197700.4, issued Jul. 30, 2024, 78 pages. [cited by applicant]
Intention to Grant Notice issued by the European Patent Office for application No. 22206038.6, issued Jul. 8, 2024, 52 pages. [cited by applicant]
Notice of Allowance in U.S. Appl. No. 17/133,622, mailed Feb. 29, 2024, 8 pages. [cited by applicant]
Notice of Intent to Grant from the European Patent Office for application No. 21198710.2, issued Aug. 2, 2024, 87 pages. [cited by applicant]
Office Action issued for U.S. Appl. No. 17/133,624, mailed Mar. 4, 2024, 12 pages. [cited by applicant]
Final Office Action issued in U.S. Appl. No. 17/133,624, Aug. 27, 2024, 16 pages. [cited by applicant]
Non-Final Office Action issued in U.S. Appl. No. 17/133,618, mailed Jan. 24, 2025,. [cited by applicant]
Non-final Office Action issued in U.S. Appl. No. 17/553,780, mailed Jan. 22, 2025, 14 pages. [cited by applicant]