Multiple-Table Branch Target Buffer for Processor Speed

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional branch target buffers (BTBs) face limitations in capacity and power consumption, leading to trade-offs in processor design, where increasing BTB size can result in slower processors and higher power usage, and existing methods to enhance capacity often compromise performance or efficiency.

Innovation Solution

Implementing multiple BTB tables based on target size and branch type, allowing for optimized storage of branch information, with each table having a different target address size and associativity, and distributing these tables across memory levels to maximize capacity and minimize footprint, while maintaining performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the BTB size is increased to store more branch information, then the number of BTB entries is improved, but the processor speed deteriorates and power consumption increases

Engineering Contradiction:
Improvenumber of BTB entriesVSAvoidprocessor speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The BTB is divided into multiple tables (first BTB table, second BTB table, third BTB table) with different capacities and associativities. This segmentation allows the system to distribute branch information across multiple smaller structures rather than using one large BTB, thereby increasing total entry capacity while maintaining the performance characteristics of smaller individual tables.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If the BTB size is increased to store more branch information, then the number of BTB entries is improved, but the power consumption increases

Engineering Contradiction:
Improvenumber of BTB entriesVSAvoidpower consumption
Core Design Contradiction:
Quantity of substanceVSUse of energy by stationary object

Solution Approach 1:

The BTB is divided into multiple tables (first BTB table, second BTB table, third BTB table) with different capacities and associativities. This segmentation allows the system to distribute branch information across multiple smaller structures rather than using one large BTB, thereby increasing total entry capacity while maintaining the performance characteristics of smaller individual tables.

Inventive Principle:
Principle #1Segmentation

3Quantity of substance

If multiple BTB tables are implemented with different target address sizes and associativity, then the capacity and footprint are optimized, but the device complexity increases

Engineering Contradiction:
ImproveBTB capacityVSAvoidBTB structure complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

Each BTB table is configured with specific local qualities tailored to different branch types: the first table handles small target addresses with high associativity, the second table handles large target addresses with lower associativity, and the third table is dedicated to indirect branches. This local quality differentiation optimizes each table for its specific purpose while managing overall complexity.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11416253B2Multiple-table branch target buffer
Publication Date: 2022.08.16 ADVANCED MICRO DEVICES INC
  • US11416253B2 patent drawing
  • US11416253B2 patent drawing
  • US11416253B2 patent drawing

AI summary

A processor includes two or more branch target buffer (BTB) tables for branch prediction, each BTB table storing entries of a different target size or width or storing entries of a different branch type. Each BTB entry includes at least a tag and a target address. For certain branch types that only require a few target address bits, the respective BTB tables are narrower thereby allowing for more BTB entries in the processor separated into respective BTB tables by branch instruction type. An increased number of available BTB entries are stored in a same or a less space in the processor thereby increasing a speed of instruction processing. BTB tables can be defined that do not store any target address and rely on a decode unit to provide it. High value BTB entries have dedicated storage and are therefore less likely to be evicted than low value BTB entries.