IP Library › Granted Patent US 12,450,411
Granted Patent B2
US 12,450,411 · App. 17/554,821 · Granted Oct 21, 2025

Hazard generating for speculative cores in a microprocessor

Inventors: Shakti Kapoor (Austin, TX); Nelson Wu (Austin, TX); Manoj Dusanapudi (Bangalore, IN)
Assignee: International Business Machines Corporation
G06F30/33G06F9/30058G06F9/3851G06F12/0891G06F9/3806G06F9/3818G06F2115/10G06F2212/1008
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,450,411
App. No.
17/554,821
Granted
Oct 21, 2025
Kind
B2
Abstract

A system, mechanism, tool, programming product, processor, and/or method for generating a hazard in a processor includes: identifying one or more cache lines to invalidate in a second level memory of a processing core in the processor; invalidating, in response to identifying one or more cache lines to invalidate in the second level cache, the one or more identified cache lines in the second level memory; and invalidating, in response to invalidating the one or more identified cache lines in the second level memory, the corresponding one or more cache lines in a first level memory. In an aspect the hazard generating mechanism is triggered, preferably on demand, and includes in an approach searching for cache lines in the second level memory that are also in the first level memory.

Claims (27)

1. A method for generating a hazard in a processor, the method comprising:

identifying one or more cache lines to invalidate in a second level memory of a processing core in the processor;

invalidating, in response to identifying the one or more cache lines to invalidate in the second level memory, the one or more identified cache lines in the second level memory; and

invalidating, in response to invalidating the one or more identified cache lines in the second level memory, the corresponding one or more cache lines in a first level memory.

2. The method of claim 1 , wherein:

the first level memory is a first level data cache in a processor core that is local to the processor core and the second level memory is a second level data cache in the processor, wherein the first level data cache is smaller and faster than the second level data cache.

3. The method of claim 2 , wherein the second level data cache is local to the processor core.

4. The method of claim 1 , wherein the processor is a multi-core processor and the method is performed in one of the processor cores of the multi-core processor.

5. The method of claim 1 , further comprising triggering a hazard generating mechanism, wherein in response to triggering the hazard generating mechanism the hazard generating system identifies the one or more cache lines in the second level memory to invalidate.

6. The method of claim 5 , further comprising triggering the hazard generating mechanism on demand.

7. The method of claim 5 , further comprising triggering the hazard generating mechanism via firmware.

8. The method of claim 1 , wherein identifying the one or more cache lines to invalidate in the second level memory comprises searching the second level memory.

9. The method of claim 8 , wherein searching the second level memory comprises a walk through the second level memory comparing cache lines in the second level memory with invalidating criteria.

10. The method of claim 8 , further comprising searching the second level memory according to an invalidating algorithm.

11. The method of claim 10 , wherein the invalidating algorithm comprises identifying only even cache lines in the second level memory that have their inclusivity bit set, wherein setting the inclusivity bit in the second level memory indicates that the cache line is located in the first level memory.

12. The method of claim 1 , wherein identifying the one or more cache lines in the second level memory to invalidate comprises reading an inclusivity bit in second level memory, wherein the inclusivity bit in the second level memory indicates the level of memory that owns a cache line.

13. The method of claim 1 , further comprising the second level memory communicating with the first level memory to invalidate the corresponding one or more cache lines in the first level memory.

14. Programming instructions embedded on a non-transitory media, the programming instructions executable on a processor, wherein the programming instructions, in response to being executed on the processor, are configured to:

identify one or more cache lines to invalidate in a second level memory of a processing core in the processor;

invalidate, in response to identifying the one or more cache lines to invalidate in the second level memory-cache, the one or more identified cache lines in the second level memory; and

invalidate, in response to invalidating the one or more identified cache lines in the second level memory, the corresponding one or more cache lines in a first level memory.

15. The programming instructions of claim 14 , wherein the programming instructions, in response to being executed on the processor, are configured to trigger a hazard generating mechanism, wherein in response to triggering the hazard generating mechanism the hazard generating system identifies the one or more cache lines in the second level memory to invalidate.

16. The programming instructions of claim 15 , wherein the programming instructions, in response to being executed on the processor, are configured to have the second level memory communicate with the first level memory the corresponding one or more cache lines in the first level memory to invalidate.

17. The programming instructions of claim 14 , wherein the programming instructions to identify the one or more cache line to invalidate in the second level memory, in response to being executed on the processor, are configured to search the second level memory.

18. The programming instructions of claim 17 , wherein the programming instructions to search the second level memory, in response to being executed on a processor, are configured to walk through the second level memory comparing cache lines in the second level memory with invalidating criteria.

19. The programming instructions of claim 17 , wherein the programming instructions to search the second level memory, in response to being executed on a processor, are configured to search the second level memory according to an invalidating algorithm.

20. The programming instructions of claim 14 , wherein the programming instructions to identify the one or more cache lines in the second level memory to invalidate, in response to being executed on a processor, are configured to read an inclusivity bit in second level memory, wherein the inclusivity bit in the second level memory indicates ownership of a cache line.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2021
From: KAPOOR, SHAKTI; WU, NELSON; DUSANAPUDI, MANOJ
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 058421/0336 →
Continuity (1)
Related Publication 20230195981A1 · Jun 22, 2023
References Cited (10)
US 9298626B2 · Busaba et al. · 2016 [cited by applicant]
US 9740616B2 · Busaba et al. · 2017 [cited by applicant]
US 10795841B2 · Iyer et al. · 2020 [cited by applicant]
US 20190272119A1 · Brewer · 2019 [cited by examiner]
Aldinucci, M., et al., “Accelerating code on multi-cores with FastFlow”, Proc. of Euro-Par 2011, LNCS, Bordeaux, France, May 2011, 10 pages. [cited by applicant]
Buchert, T., et al., “Methods for Emulation of Multi-Core CPU Performance”, 2011 IEEE International Conference on High Performance Computing and Communications, Oct. 2011, 22 pages, Conference Paper. [cited by applicant]
Ganusov, I., et al., “Future Execution: A Prefetching Mechanism that Uses Multiple Cores to Speed up Single Threads”, ACM Transactions on Architecture and Code Optimization, Dec. 2006, 26 pages, vol. 3, No. 4. [cited by applicant]
Anonymous, “Method for instruction cache coherence on a processor with disjoint level-2 caches”, IP.com No. PCOM000010890D, IP.com Electronic Publication Date: Jan. 29, 2003, 5 pages. [cited by applicant]
Anonymous, “Method for enabling advanced load/validation instructions and a data-speculation validation structure without the use of snooping”, IP.com No. IPCOM000022675D, IP.com Electronic Publication Date: Mar. 25, 20… [cited by applicant]
Anonymous, Trace-Core Processors', IP.com No. IPCOM000199882D, IP.com Electronic Publication Date: Sep. 20, 2010, 17 pages. [cited by applicant]