Branch Predictor With Empirical Bias Override Circuit

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face inefficiencies in executing complex instructions, such as floating-point operations and load/store operations, which can lead to reduced throughput and increased resource usage, particularly in multiprocessor systems where branch prediction mechanisms struggle with mispredicted instructions, especially when relying on global branch history.

Innovation Solution

Implementing a branch predictor with an empirical branch bias override mechanism that captures local bias history to dynamically override initial predictions, reducing mispredictions by considering the observed branch bias and updating the global history accordingly.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a baseline branch predictor uses global branch history for prediction, then the prediction mechanism is simple to implement, but prediction accuracy deteriorates for certain workloads with local bias patterns

Engineering Contradiction:
Improveprediction mechanism complexityVSAvoidprediction accuracy
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent segments the branch prediction mechanism into two independent components: a baseline branch predictor that uses global branch history and an empirical branch bias override circuit that captures local bias patterns. Each component handles specific aspects of prediction, allowing the system to maintain simplicity while improving accuracy through specialized local analysis.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The empirical branch bias override circuit acts as an intermediary between the baseline predictor and the final prediction output. It captures local bias information from recently retired branch instructions and uses this information to override baseline predictions when necessary, thereby improving accuracy without requiring the entire prediction system to become complex.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If the branch predictor relies on global branch history, then the implementation is straightforward, but misprediction rate increases for instructions with local bias patterns

Engineering Contradiction:
Improveimplementation easeVSAvoidmisprediction rate
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The prediction system is segmented into a straightforward baseline predictor that implements global branch history prediction easily, and a separate empirical branch bias override circuit that handles local bias patterns. This segmentation allows the simple baseline implementation to remain easy to manufacture while the override circuit corrects mispredictions through local bias capture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent converts the harmful effect of baseline predictor mispredictions into a beneficial learning opportunity. By capturing local bias information from mispredicted instructions and using this information to override future predictions, the system transforms misprediction errors into improved prediction accuracy for subsequent instructions.

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

3Productivity

If empirical branch bias override is implemented to improve prediction accuracy, then pipeline throughput increases, but device complexity increases

Engineering Contradiction:
Improvepipeline throughputVSAvoidbranch predictor complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The branch predictor is segmented into a baseline predictor that handles general cases and an empirical branch bias override circuit that handles specific local bias cases. This segmentation allows the system to achieve improved pipeline throughput through targeted local bias correction while keeping the overall complexity manageable by dividing the prediction function into specialized modules.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The empirical branch bias override circuit applies partial correction action only when local bias patterns are detected, rather than continuously modifying predictions. This partial action approach improves pipeline throughput for affected instructions while minimizing the complexity overhead by applying corrections only when necessary rather than universally.

Inventive Principle:
Principle #16Partial or excessive action

4Reliability

If local bias history is captured to override predictions, then prediction accuracy improves, but the system requires additional resources for tracking and updating

Engineering Contradiction:
Improveprediction accuracyVSAvoidtracking and updating resources
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments the prediction resources into a baseline predictor that uses existing global history and an empirical branch bias override circuit that adds localized tracking. This segmentation allows the system to improve prediction accuracy through additional local tracking resources while isolating the complexity to a dedicated circuit that only tracks relevant local bias information.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The empirical branch bias override circuit implements local quality by capturing and tracking only the local bias patterns of recently retired branch instructions rather than maintaining comprehensive global tracking. This localized approach improves prediction accuracy for specific instruction patterns while requiring fewer resources than a complete global reanalysis would demand.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10423422B2Branch predictor with empirical branch bias override
Publication Date: 2019.09.24 INTEL CORP
  • US10423422B2 patent drawing
  • US10423422B2 patent drawing
  • US10423422B2 patent drawing

AI summary

A processor may include a baseline branch predictor and an empirical branch bias override circuit. The baseline branch predictor may receive a branch instruction associated with a given address identifier, and generate, based on a global branch history, an initial prediction of a branch direction for the instruction. The empirical branch bias override circuit may determine, dependent on a direction of an observed branch direction bias in executed branch instruction instances associated with the address identifier, whether the initial prediction should be overridden, may determine, in response to determining that the initial prediction should be overridden, a final prediction that matches the observed branch direction bias, or may determine, in response determining that the initial prediction should not be overridden, a final prediction that matches the initial prediction. The predictor may update an entry in the global branch history reflecting the resolved branch direction for the instruction following its execution.