IP Library › Granted Patent US 12,561,144
Granted Patent B1
US 12,561,144 · App. 18/900,528 · Granted Feb 24, 2026

Circuitry and methods for a conditional fence instruction

Inventors: Fangfei Liu (Hillsboro, OR); Scott Constable (Portland, OR); Thomas Unterluggauer (Villach, AT); Joseph Nuzman (Haifa, IL); Carlos Rozas (Portland, OR)
Assignee: Intel Corporation
G06F9/3842G06F9/30058G06F9/30072G06F9/3806G06F2212/1052
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,561,144
App. No.
18/900,528
Granted
Feb 24, 2026
Kind
B1
Abstract

Circuitry and methods for implementing conditional fence instructions are described. In certain examples, a hardware processor (e.g., core) includes a branch predictor to predict one of a taken path and a not taken path for a conditional branch instruction; decoder circuitry to decode an instruction into a decoded instruction, the instruction comprising a field that indicates a condition to be set by execution of another instruction, and an opcode that indicates execution circuitry is to, in response to the condition being satisfied, implement an execution fence to delay execution of the instruction until prior instructions in program order execute and delay execution of instructions after the instruction in program order until the instruction executes; and the execution circuitry to execute the decoded instruction according to the opcode.

Claims (29)

1 . An apparatus comprising:

a branch predictor to predict one of a taken path and a not taken path for a conditional branch instruction;

decoder circuitry to decode an instruction into a decoded instruction, the instruction comprising a field that indicates a condition to be set by execution of another instruction, and an opcode that indicates execution circuitry is to, in response to the condition being satisfied, implement an execution fence to delay execution of the instruction until prior instructions in program order execute and delay execution of instructions after the instruction in program order until the instruction executes; and

the execution circuitry to execute the decoded instruction according to the opcode.

2 . The apparatus of claim 1 , wherein the opcode further indicates the execution circuitry is to, in response to the condition not being currently resolved, delay execution of the instructions after the instruction in program order until the condition is resolved.

3 . The apparatus of claim 1 , wherein the opcode further indicates the execution circuitry is to, in response to the condition not being satisfied, allow one or more of the instructions after the instruction in program order to execute before execution of one or more of the prior instructions.

4 . The apparatus of claim 3 , wherein the opcode further indicates the execution circuitry is to, in response to the condition not being satisfied, execute the instruction as a no-operation.

5 . The apparatus of claim 1 , further comprising a flag register, wherein the condition refers to a flag of the flag register.

6 . The apparatus of claim 1 , wherein the field that indicates the condition is a register-direct addressing mode field of the instruction.

7 . The apparatus of claim 6 , wherein the field is a register operand field of the register-direct addressing mode field.

8 . A method comprising:

predicting, by a branch predictor, one of a taken path and a not taken path for a conditional branch instruction prior to an instruction that immediately follows the conditional branch instruction in program order;

decoding, by decoder circuitry, the instruction into a decoded instruction, the instruction comprising a field that indicates a condition to be set by execution of another instruction, and an opcode that indicates execution circuitry is to, in response to the condition being satisfied, implement an execution fence to delay execution of the instruction until prior instructions in program order execute and delay execution of instructions after the instruction in program order until the instruction executes; and

executing, by the execution circuitry, the decoded instruction according to the opcode.

9 . The method of claim 8 , wherein the opcode further indicates the execution circuitry is to, in response to the condition not being currently resolved, delay execution of the instructions after the instruction in program order until the condition is resolved.

10 . The method of claim 8 , wherein the opcode further indicates the execution circuitry is to, in response to the condition not being satisfied, allow one or more of the instructions after the instruction in program order to execute before executing one or more of the prior instructions.

11 . The method of claim 10 , wherein the opcode further indicates the execution circuitry is to, in response to the condition not being satisfied, execute the instruction as a no-operation.

12 . The method of claim 8 , further comprising a flag register, wherein the condition refers to a flag of the flag register.

13 . The method of claim 8 , wherein the field that indicates the condition is a register-direct addressing mode field of the instruction.

14 . The method of claim 13 , wherein the field is a register operand field of the register-direct addressing mode field.

15 . A non-transitory machine-readable medium that stores code that when executed by a machine causes the machine to perform a method comprising:

predicting, by a branch predictor, one of a taken path and a not taken path for a conditional branch instruction prior to an instruction that immediately follows the conditional branch instruction in program order;

decoding, by decoder circuitry, the instruction into a decoded instruction, the instruction comprising a field that indicates a condition to be set by execution of another instruction, and an opcode that indicates execution circuitry is to, in response to the condition being satisfied, implement an execution fence to delay execution of the instruction until prior instructions in program order execute and delay execution of instructions after the instruction in program order until the instruction executes; and

executing, by the execution circuitry, the decoded instruction according to the opcode.

16 . The non-transitory machine-readable medium of claim 15 , wherein the opcode further indicates the execution circuitry is to, in response to the condition not being currently resolved, delay execution of the instructions after the instruction in program order until the condition is resolved.

17 . The non-transitory machine-readable medium of claim 15 , wherein the opcode further indicates the execution circuitry is to, in response to the condition not being satisfied, allow one or more of the instructions after the instruction in program order to execute before executing one or more of the prior instructions.

18 . The non-transitory machine-readable medium of claim 17 , wherein the opcode further indicates the execution circuitry is to, in response to the condition not being satisfied, execute the instruction as a no-operation.

19 . The non-transitory machine-readable medium of claim 15 , further comprising a flag register, wherein the condition refers to a flag of the flag register.

20 . The non-transitory machine-readable medium of claim 15 , wherein the field that indicates the condition is a register-direct addressing mode field of the instruction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2024
From: LIU, FANGFEI; CONSTABLE, SCOTT; UNTERLUGGAUER, THOMAS; NUZMAN, JOSEPH; ROZAS, CARLOS
To: INTEL CORPORATION
Reel/Frame 069671/0837 →
References Cited (19)
US 9274795B2 · Henry et al. · 2016 [cited by applicant]
US 10394716B1 · Piry · 2019 [cited by examiner]
US 11580036B1 · Pardo · 2023 [cited by examiner]
US 12008370B2 · Thottethodi · 2024 [cited by examiner]
US 20130067202A1 · Henry · 2013 [cited by examiner]
US 20190205140A1 · Grisenthwaite · 2019 [cited by examiner]
US 20190272239A1 · Hagersten · 2019 [cited by examiner]
US 20190324756A1 · Chappell · 2019 [cited by examiner]
US 20190347102A1 · Okazaki · 2019 [cited by applicant]
US 20200065112A1 · Gotze · 2020 [cited by examiner]
US 20200133679A1 · Brandt · 2020 [cited by examiner]
US 20230350687A1 · Chappell et al. · 2023 [cited by applicant]
Taram et al. Context-Sensitive Fencing: Securing Speculative Execution via Microcode Customization; 2019; ACM (Year: 2019). [cited by examiner]
Carruth, Chandler, “Speculative Load Hardening: A Spectre Variant #1 Mitigation Technique”, LLVM Project, Sep. 2018, 17 pages. [cited by applicant]
Corbet, Jonathan, “Meltdown/Spectre Mitigation for 4.15 and Beyond”, LWN.net, Jan. 15, 2018, 15 pages. [cited by applicant]
Gaidis, Alexander J. et al., “FineIBT: Fine-grain Control-flow Enforcement with Indirect Branch Tracking”, Proceedings of the 26th International Symposium on Research in Attacks, Intrusions and Defenses (RAID), Oct. 16,… [cited by applicant]
Intel Corporation, “Speculative Execution Side Channel Mitigations”, Revision 3.0, May 2018, 23 pages. [cited by applicant]
Microsoft Corporation, “Qspectre”, Nov. 3, 2021, 5 pages [retrieved online from learn.microsoft. com/en-us/cpp/build/reference/qspectre?view=msvc-170]. [cited by applicant]
Extended European Search Report, EP App. No. 25188990.3, Dec. 19, 2025, 09 pages. [cited by applicant]
Cited By (1)
US 12,743,501