IP Library › Granted Patent US 12,430,135
Granted Patent B2
US 12,430,135 · App. 17/558,361 · Granted Sep 30, 2025

Device, method, and system to facilitate improved bandwidth of a branch prediction unit

Inventors: Sumeet Bandishte (Indore, IN); Jayesh Gaur (Bangalore, IN); Franck Sala (Haifa, IL); Alexey Yurievich Sivtsov (Moscow, RU); Jared Warner Stark, IV (Portland, OR); Lihu Rappoport (Haifa, IL); Sreenivas Subramoney (Bangalore, IN)
Assignee: Intel Corporation
G06F9/3848G06F9/3861
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,430,135
App. No.
17/558,361
Granted
Sep 30, 2025
Kind
B2
Abstract

Techniques and mechanisms for a processor to determine an execution of instructions based on a prediction of a taken branch. In an embodiment, a first prediction unit generates each of multiple branch predictions in one cycle of successive branch prediction cycles. An indication of the branch predictions is provided to an execution pipeline, which prepares to execute an instruction based on the indication. Where a first one of the branch predictions is determined to be of a low confidence type, said first branch prediction is further indicated to a second prediction unit, which performs a second branch prediction based on the same branch instruction for which the first branch prediction was made. In another embodiment, the second prediction unit signals that a state of the execution pipeline is to be cleared, based on a determination that the first and second branch predictions are inconsistent with each other.

Claims (82)

1. A processor comprising:

first prediction circuitry to detect an instance of N branch predictions which comprise a first branch prediction, wherein N is an integer greater than one, wherein the first prediction circuitry to detect the instance comprises the first prediction circuitry to identify each of the N branch predictions in a first cycle of a sequence of branch prediction cycles, wherein one or more of the N branch predictions are each based on a respective other one of the N branch predictions;

controller circuitry coupled to the first prediction circuitry; and

second prediction circuitry coupled to the controller circuitry;

wherein:

based on the instance, the controller circuitry is to:

indicate each of the N branch predictions to an execution pipeline; and

based on a confidence metric which corresponds to the first branch prediction, determine whether to send the first branch prediction to the second prediction circuitry; and

where the first branch prediction is sent to the second prediction circuitry, the second prediction circuitry is to:

perform an evaluation of a validity condition of the first branch prediction; and

determine, based on the validity condition, whether to provide a first signal to clear a state of the execution pipeline.

2. The processor of claim 1 , wherein the first branch prediction corresponds to a first branch instruction, and wherein the second prediction circuitry to perform the evaluation comprises the second prediction circuitry to:

generate a second branch prediction based on the first branch instruction; and

determine whether the first branch prediction is consistent with the second branch prediction.

3. The processor of claim 1 , wherein the controller circuitry is further to:

detect a successful outcome of the first branch prediction; and

based on the successful outcome, update a value of the confidence metric to indicate an increased confidence in the first branch prediction.

4. The processor of claim 1 , wherein the controller circuitry is further to:

detect an unsuccessful outcome of the first branch prediction; and

based on the unsuccessful outcome, update a value of the confidence metric to indicate a decreased confidence in the first branch prediction.

5. The processor of claim 1 , wherein the second prediction circuitry is further to receive a prediction after the prediction is debuffered from a buffer; and

wherein the processor further comprises:

a buffer manager circuit to direct the first branch prediction to the second prediction circuitry, wherein, based on a determination that the buffer is empty, the buffer manager circuit is to communicate the first branch prediction to the second prediction circuitry via a path which bypasses the buffer.

6. The processor of claim 1 , wherein the controller circuitry is to send the first branch prediction to the second prediction circuitry via a buffer, wherein the processor further comprises a buffer manager circuit to:

detect a condition wherein a utilization of the buffer is above a threshold level; and

generate a second signal, based on the condition, to reduce an operational rate of the execution pipeline.

7. The processor of claim 6 , wherein the buffer manager circuit to detect the condition comprises the buffer manager circuit to detect that the buffer is currently full, and wherein the second signal is to at least temporarily stop an execution of instructions by the execution pipeline.

8. The processor of claim 1 , further comprising selector circuitry, wherein the controller circuitry to indicate each of the N branch predictions to the execution pipeline comprises the controller circuitry to signal the selector circuitry to select an indication of one of the N branch predictions over an indication of a prediction other than any of the N branch predictions.

9. A method at a processor, the method comprising:

detecting an instance of N branch predictions comprising a first branch prediction, wherein N is an integer greater than one, wherein detecting the instance comprises identifying each of the N branch predictions in a first cycle of a sequence of branch prediction cycles, wherein one or more of the N branch predictions are each based on a respective other one of the N branch predictions;

based on the instance:

indicating each of the N branch predictions to an execution pipeline;

identifying a confidence metric which corresponds to the first branch prediction; and

based on the confidence metric, selectively sending the first branch prediction to a prediction unit; and

where the first branch prediction is sent to the prediction unit:

performing an evaluation to determine a validity condition of the first branch prediction; and

based on the validity condition, selectively providing a first signal to clear a state of the execution pipeline.

10. The method of claim 9 , wherein the first branch prediction corresponds to a first branch instruction, the method further comprising:

sending the first branch prediction to the prediction unit; and

performing the evaluation, comprising:

with the prediction unit, generating a second branch prediction based on the first branch instruction; and

identifying one of:

a first condition wherein the first branch prediction is consistent with the second branch prediction; or

a second condition wherein the first branch prediction is inconsistent with the second branch prediction.

11. The method of claim 9 , further comprising:

detecting a successful outcome of the first branch prediction; and

based on the successful outcome, updating a value of the confidence metric to indicate an increased confidence in the first branch prediction.

12. The method of claim 9 , further comprising:

after debuffering a prediction from a buffer, sending the prediction to the prediction unit; and

sending the first branch prediction to the prediction unit, comprising:

based on a determination that the buffer is empty, communicating the first branch prediction to the prediction unit via a path which bypasses the buffer.

13. The method of claim 9 , further comprising:

sending the first branch prediction to the prediction unit via a buffer;

detecting a condition wherein a utilization of the buffer is above a threshold level; and

based on the condition, generating a second signal to reduce an operational rate of the execution pipeline.

14. The method of claim 9 , wherein indicating each of the N branch predictions to the execution pipeline comprises selecting an indication of one of the N branch predictions over an indication of a prediction other than any of the N branch predictions.

15. A system comprising:

a processor comprising:

first prediction circuitry to detect an instance of N branch predictions which comprise a first branch prediction, wherein N is an integer greater than one, wherein the first prediction circuitry to detect the instance comprises the first prediction circuitry to identify each of the N branch predictions in a first cycle of a sequence of branch prediction cycles, wherein one or more of the N branch predictions are each based on a respective other one of the N branch predictions;

controller circuitry coupled to the first prediction circuitry; and

second prediction circuitry coupled to the controller circuitry;

wherein:

based on the instance, the controller circuitry is to:

indicate each of the N branch predictions to an execution pipeline; and

based on a confidence metric which corresponds to the first branch prediction, determine whether to send the first branch prediction to the second prediction circuitry; and

where the first branch prediction is sent to the second prediction circuitry, the second prediction circuitry is to:

perform an evaluation of a validity condition of the first branch prediction; and

determine, based on the validity condition, whether to provide a first signal to clear a state of the execution pipeline; and

a memory coupled to the processor, the memory to store data based on the first branch prediction.

16. The system of claim 15 , wherein the first branch prediction corresponds to a first branch instruction, and wherein the second prediction circuitry to perform the evaluation comprises the second prediction circuitry to:

generate a second branch prediction based on the first branch instruction; and

determine whether the first branch prediction is consistent with the second branch prediction.

17. The system of claim 15 , wherein the controller circuitry is further to:

detect a successful outcome of the first branch prediction; and

based on the successful outcome, update a value of the confidence metric to indicate an increased confidence in the first branch prediction.

18. The system of claim 15 , wherein the second prediction circuitry is further to receive a prediction after the prediction is debuffered from a buffer; and

wherein the processor further comprises:

a buffer manager circuit to direct the first branch prediction to the second prediction circuitry, wherein, based on a determination that the buffer is empty, the buffer manager circuit is to communicate the first branch prediction to the second prediction circuitry via a path which bypasses the buffer.

19. The system of claim 15 , wherein the controller circuitry is to send the first branch prediction to the second prediction circuitry via a buffer, wherein the processor further comprises a buffer manager circuit to:

detect a condition wherein a utilization of the buffer is above a threshold level; and

generate a second signal, based on the condition, to reduce an operational rate of the execution pipeline.

20. The system of claim 15 , wherein the processor further comprises selector circuitry, and wherein the controller circuitry to indicate each of the N branch predictions to the execution pipeline comprises the controller circuitry to signal the selector circuitry to select an indication of one of the N branch predictions over an indication of a prediction other than any of the N branch predictions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2021
From: BANDISHTE, SUMEET; GAUR, JAYESH; SALA, FRANCK; SIVTSOV, ALEXEY YURIEVICH; STARK, JARED WARNER, IV; RAPPOPORT, LIHU; SUBRAMONEY, SREENIVAS
To: INTEL CORPORATION
Reel/Frame 058452/0071 →
Continuity (1)
Related Publication 20230195469A1 · Jun 22, 2023
References Cited (19)
US 10228949B2 · Abdallah · 2019 [cited by applicant]
US 10248570B2 · Abdallah et al. · 2019 [cited by applicant]
US 10613867B1 · Srinivasan · 2020 [cited by examiner]
US 10754655B2 · Chauhan et al. · 2020 [cited by applicant]
US 20040250054A1 · Stark · 2004 [cited by applicant]
US 20050268075A1 · Caprioli et al. · 2005 [cited by applicant]
US 20060036837A1 · Stark · 2006 [cited by examiner]
US 20170139717A1 · Hornung · 2017 [cited by examiner]
US 20170277538A1 · Friedmann et al. · 2017 [cited by applicant]
US 20180349144A1 · Pal et al. · 2018 [cited by applicant]
US 20190213131A1 · Sabba et al. · 2019 [cited by applicant]
US 20190258485A1 · Bouzgarrou · 2019 [cited by examiner]
US 20200310811A1 · Ishii · 2020 [cited by examiner]
US 20220129763A1 · Bandishte et al. · 2022 [cited by applicant]
US 20230195468A1 · Bouzguarrou · 2023 [cited by examiner]
Juan L. Aragón, José González, José M. García, and Antonio González, “Confidence Estimation for Branch Prediction Reversal”, Jan. 1, Springer-Verlag Berlin Heidelberg, pp. 214-223 (Year: 2001). [cited by examiner]
Office Action from European Patent Application No. 22203532.1 notified Apr. 19, 2024, 4 pgs. [cited by applicant]
Notice of Allowance from European Patent Application No. 22203532.1 notified Oct. 9, 2024, 7 pgs. [cited by applicant]
Extended European Search Report from European Patent Application No. 22203532.1 notified Apr. 26, 2023, 5 pgs. [cited by applicant]