Branch Confidence Throttle for Processor Pipeline

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current branch prediction mechanisms in processors lead to wasted work and resource inefficiency due to incorrect predictions, especially in multi-thread mode, where mispredicted paths consume resources that could be used by other threads, and there is no effective solution for single-thread mode to address this issue.

Innovation Solution

A processor system with a branch predictor, branch target buffer tables, a throttle unit, and an uncertainty accumulator that assigns uncertainty values to branch predictions, throttling the prediction pipeline based on accumulated uncertainty to reduce wasted work by slowing down threads likely to be on the incorrect path, thereby saving power and improving multi-thread performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If branch prediction is used to enable speculative execution, then processing speed is improved, but power consumption increases due to wasted execution on mispredicted paths

Engineering Contradiction:
Improveprocessing speedVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The system implements feedback by monitoring branch prediction outcomes and adjusting the prediction pipeline operation accordingly. When mispredictions are detected, the system feeds back this information to throttle or pause the prediction pipeline, preventing further wasted execution and power consumption on incorrect paths.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The branch prediction pipeline is made dynamic by enabling it to adapt its operation state based on prediction accuracy. The pipeline can be activated when predictions are accurate and throttled or paused when mispredictions occur, allowing the system to optimize between speed and power consumption in real-time based on actual performance conditions.

Inventive Principle:
Principle #15Dynamics

2Productivity

If branch prediction pipeline operates continuously, then processing throughput is improved, but resources are wasted on mispredicted paths especially in multi-thread mode

Engineering Contradiction:
Improveprocessing throughputVSAvoidresource waste
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system applies periodic action by intermittently activating and deactivating the branch prediction pipeline based on prediction accuracy. Instead of continuous operation, the pipeline is activated when conditions are favorable and deactivated when mispredictions are detected, creating a periodic on/off pattern that reduces resource waste while maintaining throughput during effective periods.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The harmful aspect of continuous pipeline operation is extracted by selectively removing or pausing pipeline execution when mispredictions occur. The system takes out the problematic continuous operation and replaces it with conditional, accuracy-based activation, thereby eliminating resource waste on mispredicted paths while preserving productive execution when predictions are correct.

Inventive Principle:
Principle #2Taking out (Extraction)

3Loss of time

If speculative execution is enabled, then instruction execution time is reduced, but correctness verification becomes more complex

Engineering Contradiction:
Improveinstruction execution timeVSAvoidcorrectness verification complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system performs preliminary action by validating branch predictions before full speculative execution commits. Confidence scores are calculated and verified in advance, and only predictions meeting confidence thresholds are allowed to proceed. This preliminary verification simplifies the overall correctness check by filtering out low-confidence predictions before they can cause complex verification issues.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system changes parameters by introducing confidence scores as an additional parameter for prediction validation. Instead of simple binary prediction correctness, the system uses confidence threshold parameters to control speculative execution. This parameter change simplifies verification by providing a quantitative metric that can be easily checked against predefined thresholds.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP3844611B1Branch confidence throttle
Publication Date: 2024.10.30 ADVANCED MICRO DEVICES INC
  • EP3844611B1 patent drawingFigure 1
  • EP3844611B1 patent drawingFigure 2
  • EP3844611B1 patent drawingFigure 3

AI summary

A processing system includes a processor [100] with a branch predictor [108] including one or more branch target buffer tables [110]. The processor also includes a branch prediction pipeline [122] including a throttle unit [124] and an uncertainty accumulator [130]. The processor assigns an uncertainty value [132] for each of a plurality of branch predictions generated by the branch predictor and adds the uncertainty value for each of the plurality of branch predictions to an accumulated uncertainty counter [134] associated with the uncertainty accumulator. The throttle unit of the branch prediction pipeline throttles operations of the branch prediction pipeline based on the accumulated uncertainty counter.