IP Library Granted Patent US 11,307,861
Granted Patent B2
US 11,307,861 · App. 16/942,591 · Granted Apr 19, 2022

Securing conditional speculative instruction execution

Inventor: Steven Jeffrey Wallach (Dallas, TX)
Assignee: Micron Technology, Inc.
G06F9/3844G06F9/30058
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,307,861
App. No.
16/942,591
Granted
Apr 19, 2022
Kind
B2
Abstract

A method performed in a processor, includes: receiving, in the processor, a branch instruction in the processing; determining, by the processor, an address of an instruction after the branch instruction as a candidate for speculative execution, the address including an object identification and an offset; and determining, by the processor, whether or not to perform speculative execution of the instruction after the branch instruction based on the object identification of the address.

Claims (37)

1. A method comprising:

determining, by a processor, a memory address associated with an instruction for execution after a branch instruction, the memory address including an object identification and an offset; and

determining, by the processor, whether to execute the instruction after the branch instruction based on the object identification of the memory address.

2. The method of claim 1 , further comprising:

determining whether the object identification identifies a kernel of an operating system; and

in response to a determination that the object identification identifies a kernel of an operating system, preventing, by the processor, execution of the instruction after the branch instruction.

3. The method of claim 2 , wherein the determining of whether the object identification identifies a kernel of an operating system includes comparing the object identification to a predetermined identifier.

4. The method of claim 3 , wherein the predetermined identifier has a value of zero.

5. The method of claim 4 , wherein the memory address has a predetermined width of 128 bits; the object identification is represented by 64 bits of the memory address; and the offset is represented by 64 bits of the memory address.

6. The method of claim 1 , further comprising:

determining whether the object identification identifies an object different from an object associated with the branch instruction; and

in response to a determination that the object identified by the object identification is different from the object associated with the branch instruction, preventing, by the processor, execution of the instruction after the branch instruction.

7. The method of claim 6 , wherein the determining of whether the object identified by the object identification is different from the object associated with the branch instruction includes:

comparing the object identification of the memory address associated with the instruction after the branch instruction with an object identification of the memory address associated with the branch instruction.

8. The method of claim 6 , further comprising:

storing in a register of the processor, the memory address associated with the instruction after the branch instruction.

9. The method of claim 8 , wherein the memory address identifies a memory location at which the instruction to be executed after the branch instruction is stored.

10. The method of claim 8 , wherein the memory address identifies a memory location at which a data item to be operated upon by the instruction to be executed after the branch instruction is stored.

11. A processor, comprising:

a register of a first predetermined width, the register having:

an object identification portion of a second predetermined width; and

an offset portion; and

an execution unit configured to execute an instruction using a memory address stored in the register;

wherein the processor is configured to determine whether or not to execute the instruction based on an object identification of the memory address stored in the object identification portion of the register.

12. The processor of claim 11 , wherein in response to a determination that the object identification is equal to a predetermined value, the processor skips execution of the instruction.

13. The processor of claim 12 , wherein the predetermined value is zero.

14. The processor of claim 13 , wherein the predetermined value stored in the object identification portion identifies a kernel of an operating system.

15. The processor of claim 11 , wherein the object identification is a first object identification; the instruction is a first instruction; and in response to a determination that the first object identification is different from a second object identification of a second instruction executed before the first instruction, the processor skips execution of the instruction.

16. The processor of claim 15 , wherein second instruction is a branch instruction.

17. The processor of claim 15 , wherein second instruction is an instruction of a subroutine call.

18. A computer system, comprising:

a memory storing a set of instructions and a set of data items; and

a processor configured to load the instructions for execution according to memory addresses and execute the instructions to operate on the data items identified using memory addresses;

wherein a second instruction is to be executed after a first instruction; and

wherein the processor is configured to determine whether to execute the second instruction based on an object identification of a memory address associated with the second instruction.

19. The computer system of claim 18 , wherein the processor is configured to avoid execution of the second instruction in response to a determination that the object identification of the memory address associated with the second instruction is equal to a predetermined value representing a kernel of an operating system of the computer system.

20. The computer system of claim 18 , wherein the processor is configured to avoid execution of the second instruction in response to a determination that the object identification of the memory address associated with the second instruction is different from an object identification of a memory address associated with the first instruction.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2025
From: MICRON TECHNOLOGY, INC.
To: LODESTAR LICENSING GROUP LLC
Reel/Frame 072345/0134 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2020
From: WALLACH, STEVEN JEFFREY
To: MICRON TECHNOLOGY, INC.
Reel/Frame 053347/0335 →