Branch Prediction Unit Design for Reduced Pipeline Bubbles

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing branch prediction units in processors are large and complex, consuming significant power and incurring latency penalties, which negatively impact performance and power efficiency due to misprediction stalls and pipeline flushing.

Innovation Solution

A processor design incorporating a Level 1 branch target buffer (BTB) and a BTB index predictor (BIP) with a Level 1 hash perceptron (HP) for improved branch prediction, predicting speculative partial target addresses and branch directions to reduce pipeline bubbles and enhance throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If a branch prediction unit is used to pre-fetch instructions, then instruction processing speed is improved, but pipeline stalls occur when mispredictions happen

Engineering Contradiction:
Improveinstruction processing speedVSAvoidprediction accuracy
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The branch prediction unit is divided into multiple independent predictors (bimodal predictor, global predictor, local predictor) that operate in parallel. Each predictor handles different aspects of branch prediction, and their results are combined through a chooser logic to produce the final prediction. This segmentation allows the system to improve overall prediction accuracy while maintaining high-speed operation.

Inventive Principle:
Principle #1Segmentation

2Reliability

If multiple prediction mechanisms are used simultaneously, then prediction accuracy is improved, but device complexity increases

Engineering Contradiction:
Improveprediction accuracyVSAvoidpredictor structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Multiple prediction mechanisms (bimodal predictor, global predictor, local predictor with pattern history table) are merged into a unified branch prediction unit. The predictors work together with a chooser that selects the most reliable prediction source based on current branch characteristics. This merging achieves high prediction accuracy while managing complexity through integrated design.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The branch prediction unit is designed as a multi-functional system that can handle different types of branches (conditional branches, indirect branches, loop branches) using the same integrated structure. The universal design allows a single prediction unit to serve multiple prediction needs without requiring separate dedicated predictors for each branch type.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If a large branch prediction unit is used, then prediction coverage is improved, but power consumption increases

Engineering Contradiction:
Improveprediction coverageVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The branch prediction unit employs dynamic prediction mechanisms where the chooser logic adaptively selects which predictor to use based on the characteristics of each branch instruction. This dynamic selection allows the system to achieve comprehensive prediction coverage while consuming less power by activating only the necessary prediction components for each specific branch type, rather than continuously operating all predictors at full capacity.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP3060983B1Bandwidth increase in branch prediction unit and level 1 instruction cache
Publication Date: 2020.01.08 ADVANCED MICRO DEVICES INC
  • EP3060983B1 patent drawingFigure 1
  • EP3060983B1 patent drawingFigure 2
  • EP3060983B1 patent drawingFigure 3

AI summary

A processor, a device, and a non-transitory computer readable medium for performing branch prediction in a processor are presented. The processor includes a front end unit. The front end unit includes a level 1 branch target buffer (BTB), a BTB index predictor (BIP), and a level 1 hash perceptron (HP). The BTB is configured to predict a target address. The BIP is configured to generate a prediction based on a program counter and a global history, wherein the prediction includes a speculative partial target address, a global history value, a global history shift value, and a way prediction. The HP is configured to predict whether a branch instruction is taken or not taken.