IP Library Granted Patent US 11,422,820
Granted Patent B2
US 11,422,820 · App. 17/189,151 · Granted Aug 23, 2022

Shadow cache for securing conditional speculative instruction execution

Inventor: Steven Jeffrey Wallach (Dallas, TX)
Assignee: Micron Technology, Inc.
G06F9/3844G06F12/0875G06F12/0891G06F2212/1032G06F2212/452
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 11,422,820
App. No.
17/189,151
Granted
Aug 23, 2022
Kind
B2
Abstract

A computing device, having: a processor; memory; a first cache coupled between the memory and the processor; and a second cache coupled between the memory and the processor. During speculative execution of one or more instructions, effects of the speculative execution are contained within the second cache.

Claims (41)

1. A computing device, comprising:

a processor;

memory;

a first cache coupled between the memory and the processor; and

a second cache coupled between the memory and the processor;

wherein during speculative execution of one or more instructions, the computing device is configured to contain effects of the speculative execution within the second cache.

2. The computing device of claim 1 , wherein during the speculative execution of one or more instructions, the processor asserts a signal indicative speculative execution; and when the signal is asserted, the first cache is blocked from changes.

3. The computing device of claim 2 , wherein when the signal is asserted, the second cache is blocked from updating the memory.

4. The computing device of claim 3 , wherein in response to a determination that execution of the one or more instructions is to be performed, the first cache is updated according to the second cache.

5. The computing device of claim 3 , wherein the processor is notified of completion of updating the first cache according to the second cache, before executing instructions following the one or more instructions.

6. The computing device of claim 3 , wherein in response to a determination that execution of the one or more instructions is not to be performed, the second cache is updated according to the first cache.

7. The computing device of claim 3 , wherein in response to a determination that execution of the one or more instructions is not required, changes in the second cache are invalidated.

8. The computing device of claim 1 , wherein during the speculative execution of one or more instructions, the processor accesses the memory via the second cache; and during the speculative execution of one or more instructions, access to content in the second cache is limited to the speculative execution of one or more instructions by the processor.

9. The computing device of claim 8 , wherein during the speculative execution of one or more instructions, the processor is prohibited from changing the first cache.

10. The computing device of claim 1 , wherein content of the first cache is accessible via a cache coherency protocol.

11. A method implemented in a computing device, the method comprising:

executing, by a processor, first instructions using a first cache coupled between a memory and the processor;

executing, by the processor, second instructions in speculation using a second cache coupled between the memory and the processor; and

limiting, in the computing device, effects of the executing of the second instructions in speculation in the second cache.

12. The method of claim 11 , further comprising:

after the executing of the second instructions in speculation, determining whether execution of the second instructions is required.

13. The method of claim 12 , further comprising:

in response to a determination that the execution of the second instructions is required, applying changes made by the second instructions in the second cache to the first cache.

14. The method of claim 12 , further comprising:

in response to a determination that the execution of the second instructions is not required, invalidating content of the second cache.

15. The method of claim 12 , wherein the limiting of the effects of the executing of the second instructions in speculation includes:

prohibiting the executing of the second instructions in speculation from changing the memory while allowing the executing of the second instructions to change the second cache; and

prohibiting the executing of the second instructions in speculation from changing the first cache.

16. The method of claim 15 , further comprising:

prohibiting accessing to the second cache other than by the processor executing the second instructions in speculation.

17. A computing device, comprising:

memory;

a plurality of processors; and

a plurality of pairs of caches for the plurality of processors respectively, wherein for each respective processor in the plurality of processors, the plurality of pairs of caches have:

a first cache coupled between the memory and the respective processor; and

a second cache coupled between the memory and the respective processor;

wherein a cache coherency protocol is implemented among the plurality of processors, the cache coherency protocol allowing a first processor in the plurality of processors to access the first cache of the respective processor other than the first processor; and

wherein during speculative execution of one or more instructions by the respective processor, the respective processor is configured to be limited to access the memory via the second cache of the respective processor and is prohibited from changing the memory.

18. The computing device of claim 17 , wherein during speculative execution of one or more instructions by the respective processor, the first processor is prohibited from accessing the second cache of the respective processor other than the first processor.

19. The computing device of claim 18 , wherein after the speculative execution of one or more instructions, changes in the second cache of the respective processor are incorporated into the first cache of the respective processor, in response to a determination to execute the one or more instructions.

20. The computing device of claim 19 , wherein before the speculative execution of one or more instructions, the second cache of the respective processor is synchronized with the first cache of the respective processor.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2021
From: WALLACH, STEVEN JEFFREY
To: MICRON TECHNOLOGY, INC.
Reel/Frame 055450/0098 →
Cited By (1)
US 12,591,434