Branch Prediction Confidence Locking for Indirect Branches

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current branch prediction mechanisms in data processing apparatuses face inefficiencies, particularly with indirect branches that have multiple target addresses, leading to mispredictions and increased latency, as they struggle to accurately predict target addresses due to frequent changes, resulting in wasted fetches and performance degradation.

Innovation Solution

The implementation of a branch target storage system that associates source and target addresses with confidence values, where confidence values are updated based on prediction accuracy, and a locking mechanism is triggered when mispredictions occur, preventing further predictions for poorly predictable branches, thus acting as a 'negative cache' to avoid restarting prediction processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a complex branch prediction mechanism is provided to improve prediction accuracy for indirect branches, then prediction accuracy is improved, but the mechanism becomes slower and occupies greater circuitry area

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidprediction mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The branch prediction system is segmented into multiple independent components: a lightweight first branch target buffer for fast access, a second branch target buffer for additional capacity, and a polymorphic buffer for handling indirect branches with multiple targets. Each segment operates independently with its own confidence value mechanism, allowing the system to achieve high accuracy without requiring a single complex monolithic structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically adjusts confidence values for branch predictions based on historical accuracy. When confidence exceeds a threshold, predictions are made; when it falls below a lock threshold, the entry is locked. This dynamic adaptation allows the system to optimize prediction accuracy for varying branch patterns without increasing structural complexity.

Inventive Principle:
Principle #15Dynamics

2Reliability

If a complex branch prediction mechanism is provided to improve prediction accuracy, then prediction accuracy is improved, but the mechanism will be slower and arranged later in the pipeline

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidprediction mechanism speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The system performs preliminary branch target address calculations and stores them in the first and second branch target buffers before they are needed for instruction fetching. Confidence values are pre-calculated and stored alongside target addresses. This preliminary action enables fast prediction decisions during instruction fetch without requiring complex real-time analysis, thus maintaining high speed while achieving improved accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

By segmenting the prediction mechanism into multiple specialized buffers (first branch target buffer, second branch target buffer, polymorphic buffer), the system allows different segments to operate at optimal speeds for their specific functions. The lightweight first buffer provides fast common cases, while the polymorphic buffer handles complex indirect branches, overall improving speed without sacrificing accuracy.

Inventive Principle:
Principle #1Segmentation

3Speed

If a simple branch prediction mechanism is provided to improve speed, then prediction speed is improved, but prediction accuracy deteriorates

Engineering Contradiction:
Improveprediction mechanism speedVSAvoidbranch prediction accuracy
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system dynamically adjusts confidence values based on prediction outcomes. Simple, fast mechanisms are used for common cases with high confidence, while the system can adapt to handle more complex cases when confidence drops. This dynamic behavior allows the system to maintain high speed for predictable branches while achieving high accuracy through adaptive confidence-based decision making.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback through confidence value updates based on prediction accuracy. When predictions are confirmed correct, confidence values increase; when incorrect, they decrease and may trigger locking. This feedback mechanism allows a simple structural system to achieve high prediction accuracy by learning from past performance without adding structural complexity.

Inventive Principle:
Principle #23Feedback

4Adaptability or versatility

If branch prediction is provided for indirect branches with multiple target addresses, then coverage is improved, but misprediction rate increases due to frequent target changes

Engineering Contradiction:
Improvebranch target coverageVSAvoidprediction accuracy
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system segments indirect branch handling into a specialized polymorphic buffer that stores multiple target addresses for the same branch source. This segmentation allows the system to accurately predict any of multiple valid targets based on current execution context, improving both coverage and accuracy for indirect branches with frequent target changes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The polymorphic buffer dynamically tracks multiple target addresses and their associated confidence values. When an indirect branch is encountered, the system dynamically selects the appropriate target based on current confidence levels and execution state, allowing accurate prediction despite frequent target changes and improving reliability for polymorphic indirect branches.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11481220B2Branch prediction in a data processing apparatus
Publication Date: 2022.10.25 ARM LTD
  • US11481220B2 patent drawing
  • US11481220B2 patent drawing
  • US11481220B2 patent drawing

AI summary

An apparatus comprises instruction fetch circuitry to retrieve instructions from storage and branch target storage to store entries comprising source and target addresses for branch instructions. A confidence value is stored with each entry and when a current address matches a source address in an entry, and the confidence value exceeds a confidence threshold, instruction fetch circuitry retrieves a predicted next instruction from a target address in the entry. Branch confidence update circuitry increases the confidence value of the entry on receipt of a confirmation of the target address and decreases the confidence value on receipt of a non-confirmation of the target address. When the confidence value meets a confidence lock threshold below the confidence threshold and non-confirmation of the target address is received, a locking mechanism with respect to the entry is triggered. A corresponding method is also provided.