Branch Predictor Selection for Microprocessor Latency Reduction

Solution Overview

Problem

Modern high-performance pipelined microprocessors face performance penalties due to long branch prediction latency, which reduces instruction fetch throughput and overall performance despite sophisticated branch predictors.

Innovation Solution

A microprocessor architecture that includes a branch predictor capable of selecting a branch target predictor from a set of trained models associated with previously executed instructions, and iteratively refining the selection based on matching instructions to identify the target branch path efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If sophisticated branch predictors are used to improve prediction accuracy, then branch prediction accuracy is improved, but prediction latency increases

Engineering Contradiction:
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the branch prediction task into multiple independent predictors (e.g., pattern history table, branch target buffer, gshare predictor) rather than using a single complex predictor. Each segment handles specific aspects of branch prediction, allowing parallel evaluation and reducing overall latency while maintaining high accuracy through ensemble decision-making

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic selection of predictors based on runtime conditions and branch characteristics. The system adaptively chooses which predictor to use for each branch instruction based on historical performance, instruction type, and current execution state, optimizing the balance between accuracy and latency for different scenarios

Inventive Principle:
Principle #15Dynamics

2Reliability

If complex branch predictors are implemented to reduce misprediction rates, then branch misprediction rate is reduced, but instruction fetch throughput decreases

Engineering Contradiction:
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary branch prediction in early pipeline stages using simple, fast predictors before the instruction fetch stage completes. By making initial predictions ahead of time and preparing multiple candidate predictions, the system reduces the critical path delay and prevents pipeline stalls, thereby maintaining high instruction fetch throughput while achieving low misprediction rates

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces intermediary prediction structures (such as prediction buffers and target address caches) that mediate between the complex prediction logic and the instruction fetch unit. These intermediaries pre-compute and cache prediction results, allowing the fetch unit to quickly retrieve predictions without waiting for complex calculations, thus preserving throughput while achieving high reliability

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12340223B2Apparatus and method for branch prediction using machine learning with new learning models
Publication Date: 2025.06.24
  • US12340223B2 patent drawing
  • US12340223B2 patent drawing
  • US12340223B2 patent drawing

AI summary

Branch prediction techniques for pipelined microprocessors are disclosed. A microprocessor for branch predictor selection includes a fetch stage configured to retrieve instructions from a memory. A buffer is configured to store instructions retrieved by the fetch stage, and one or more pipelined stages configured to execute the instructions stored in the buffer. The branch predictor, communicatively coupled to the buffer and the one or more pipelined stages, is configured to select a branch target predictor from a set of branch target predictors. Each of the branch target predictors comprise a trained model associated with a previously executed instruction to identify a target branch path for the instruction currently being executed based on the selected branch target predictor.