Branch Target Buffer Entry Source Field for Replacement Priority

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In complex processing systems, non-sequential instructions lead to performance penalties due to the need to nullify pre-fetched instructions, as existing branch prediction algorithms fail to account for changes in program flow, resulting in inefficient pipeline management.

Innovation Solution

The implementation of a processor circuit with a program address circuit, branch target buffer, and branch prediction replacement circuit, which determines replacement priorities and updates next program addresses using a branch prediction algorithm, allowing for efficient handling of change of flow instructions by prioritizing entries based on their source and usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If branch prediction algorithms are used to reduce nullification percentage, then pipeline efficiency is improved, but the algorithms fail to account for changes in program flow resulting in unnecessary performance penalties

Engineering Contradiction:
Improvepipeline efficiencyVSAvoidbranch prediction accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements feedback mechanisms where the branch target buffer stores not only predicted branch targets but also metadata about the prediction source and accuracy. This feedback information is used to dynamically adjust replacement priorities in the buffer, allowing the system to learn from past prediction outcomes and improve future predictions by accounting for actual program flow changes.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent introduces dynamic replacement priorities in the branch target buffer where entries are not treated equally. Instead, entries have varying replacement priorities based on their source (e.g., static vs. dynamic prediction) and usage patterns. This dynamic approach allows the system to adapt to changing program flow characteristics and prioritize entries that are more likely to be accurate predictions.

Inventive Principle:
Principle #15Dynamics

2Speed

If pre-fetching is enabled for non-sequential instructions, then instruction fetch performance is improved, but nullification of pre-fetched instructions is required causing performance penalties

Engineering Contradiction:
Improveinstruction fetch speedVSAvoidpipeline flush time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-loading branch target buffer entries with predicted branch targets before the actual branch instruction is executed. The branch target buffer is updated in advance with entries that have higher replacement priorities, so when a branch occurs, the correct target is already prepared in the buffer, eliminating the need to flush the pipeline and reducing nullification penalties.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If branch target buffer entries are managed with uniform replacement policy, then buffer management is simplified, but entries with higher prediction accuracy are unnecessarily replaced

Engineering Contradiction:
Improvebuffer management complexityVSAvoidprediction accuracy
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent applies local quality by treating different entries in the branch target buffer differently based on their characteristics. Entries are assigned different replacement priorities based on their source (static vs. dynamic prediction) and historical accuracy. This allows high-quality entries with higher prediction accuracy to be protected from replacement while maintaining a manageable buffer structure through localized differentiation rather than uniform treatment.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8171269B2Branch target buffer with entry source field for use in determining replacement priority
Publication Date: 2012.05.01 BEIJING XIAOMI MOBILE SOFTWARE CO LTD
  • US8171269B2 patent drawing
  • US8171269B2 patent drawing
  • US8171269B2 patent drawing

AI summary

Various embodiments of the present invention provide systems and methods for branch prediction. As an example, some embodiments of the present invention provides processor circuits that include a program address circuit, a branch target buffer, a branch prediction replacement circuit, and an execution pipeline. The branch target buffer includes a plurality of entries each associated with a respective change of flow instruction. Each entry includes an indication of an entry source and a next program address corresponding to the respective change of flow instruction. The branch prediction replacement circuit is operable to determine replacement priorities of the plurality of entries based at least in part on the entry source for each of the plurality of entries. The execution pipeline receives an executable instruction corresponding to one of the next program addresses.