Hybrid Branch Prediction Sparse Dense Cache Architecture

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern microprocessors face performance degradation due to multi-cycle stalls caused by mispredicted branch instructions, which are not effectively addressed by existing branch prediction mechanisms without increasing gate area and power consumption.

Innovation Solution

A hybrid branch prediction system comprising a sparse cache for storing branch prediction information for a common number of branch instructions and a dense cache for additional instructions, allowing efficient storage and prediction without significant increases in gate count or power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a traditional branch prediction mechanism is used, then the gate area and power consumption remain low, but the branch prediction accuracy is insufficient leading to multi-cycle stalls

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidgate area
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The branch prediction mechanism is segmented into a two-level hierarchy: a first-level sparse prediction cache that stores branch prediction information for a common number of branch instructions, and a second-level dense prediction cache that stores information for additional branch instructions. This segmentation allows the system to achieve high prediction accuracy for frequently executed branches while using a compact structure for less frequent branches, thereby improving overall accuracy without proportionally increasing gate area.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different parts of the prediction cache are allocated different densities based on local needs. The sparse cache uses a compact representation suitable for common branches, while the dense cache provides full coverage for additional branches. This local quality differentiation optimizes the balance between accuracy and area by applying higher precision only where necessary.

Inventive Principle:
Principle #3Local quality

2Productivity

If a traditional branch prediction mechanism is used, then the gate area and power consumption remain low, but the processor performance decreases due to pipeline stalls

Engineering Contradiction:
Improveprocessor performanceVSAvoidpipeline stall cycles
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The prediction cache pre-stores branch prediction information including target addresses and taken/not-taken outcomes before branches are executed. This preliminary action allows the pipeline to continue fetching and executing instructions based on predicted outcomes without stalling, significantly reducing pipeline stall cycles and improving processor throughput.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If the branch prediction cache size is increased to improve accuracy, then the prediction accuracy improves, but the power consumption increases significantly

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The prediction cache is segmented into sparse and dense regions, allowing the system to store prediction information for all necessary branches without requiring a uniformly large cache. This segmentation enables accurate prediction while maintaining a compact overall structure that consumes less power than a fully dense cache of equivalent capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The sparse cache stores prediction information for a common number of branch instructions that covers the majority of execution cases. This partial coverage is sufficient for most operations, reducing the need for a complete dense cache and thereby lowering power consumption while maintaining adequate accuracy.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP2347332B1Hybrid branch prediction with sparse and dense prediction caches
Publication Date: 2012.11.07 ADVANCED MICRO DEVICES INC
  • EP2347332B1 patent drawingFigure 1
  • EP2347332B1 patent drawingFigure 2
  • EP2347332B1 patent drawingFigure 3

AI summary

A system and method for branch prediction in a microprocessor. A hybrid device stores branch prediction information in a sparse cache for no more than a common smaller number of branches within each entry of the instruction cache. For the less common case wherein an i-cache line comprises additional branches, the device stores the corresponding branch prediction information in a dense cache. Each entry of the sparse cache stores a bit vector indicating whether or not a corresponding instruction cache line includes additional branch instructions. This indication may also be used to select an entry in the dense cache for storage. A second sparse cache stores entire evicted entries from the first sparse cache.