Branch Target Buffer Addressing with Adaptive Tag Sizes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

As data processing systems increase in pipeline stages, the size of branch target buffers (BTBs) must be enlarged to improve performance, leading to increased die area, access time, and power consumption, which is inefficient.

Innovation Solution

Implementing a set associative multi-way BTB with varying tag and target address sizes based on page boundaries, using a page address content addressable memory (CAM) for short tags, and storing full or short target addresses depending on branch instruction page crossings.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the size of the branch target buffer (BTB) is increased to improve hit rate and reduce misprediction penalty, then performance is improved, but die area, access time, and power consumption increase

Engineering Contradiction:
ImproveperformanceVSAvoiddie area
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The BTB is divided into multiple sets with each set containing multiple ways (e.g., 8 sets with 2 ways each). This segmentation allows the BTB to be organized in a set-associative structure where branch instructions are distributed across different sets, reducing conflicts and improving hit rates without requiring a single large monolithic buffer, thus reducing overall die area.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different ways within the BTB store different combinations of tag sizes and target address sizes. Specifically, some ways store full tag sizes while others store shortened tag sizes based on page boundary alignments. This local differentiation optimizes storage efficiency by using shorter tags for predictable patterns (same-page branches), reducing the area required for tag storage while maintaining accurate branch prediction.

Inventive Principle:
Principle #3Local quality

2Productivity

If the size of the branch target buffer (BTB) is increased to improve hit rate and reduce misprediction penalty, then performance is improved, but access time increases

Engineering Contradiction:
ImproveperformanceVSAvoidaccess time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The BTB is segmented into multiple small sets (e.g., 8 sets) rather than one large set. This segmentation reduces the access time for each individual set while maintaining a high overall hit rate through the set-associative structure. The smaller sets can be accessed more quickly, reducing the time penalty associated with BTB lookups.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The BTB employs dynamic tag size selection where the tag width varies depending on the specific way and branch characteristics. This dynamic adaptation allows the system to use shorter tags for common cases (same-page branches), reducing access time, while still maintaining full tag capability for branches requiring larger address spaces, thus optimizing the trade-off between access speed and addressing capability.

Inventive Principle:
Principle #15Dynamics

3Productivity

If the size of the branch target buffer (BTB) is increased to improve hit rate and reduce misprediction penalty, then performance is improved, but power consumption increases

Engineering Contradiction:
ImproveperformanceVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by stationary object

Solution Approach 1:

Different ways in the BTB use different tag sizes optimized for their specific purposes. Ways handling same-page branches use shorter tags, reducing the number of bits that need to be read, processed, and stored, thereby reducing power consumption for those entries. This local optimization reduces overall power consumption while maintaining accurate prediction for the majority of branches.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The BTB changes the parameter of tag size dynamically based on branch characteristics and page boundary alignments. By using shorter tag widths for branches that align with page boundaries (same-page branches), the system reduces the energy required for tag comparison and storage operations, thereby reducing overall power consumption while maintaining high prediction accuracy.

Inventive Principle:
Principle #35Parameter changes

4Quantity of substance

If varying tag sizes are used in BTB entries, then storage efficiency is improved, but device complexity increases

Engineering Contradiction:
Improvestorage efficiencyVSAvoiddevice complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The BTB implements local quality by assigning different tag sizes to different ways based on their specific requirements. This allows the system to optimize storage efficiency for each way individually, using shorter tags where possible and full tags where necessary, thereby improving overall storage efficiency while managing complexity through a structured, predictable pattern of differentiation.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically selects appropriate tag sizes for different BTB ways based on branch characteristics and page alignment. This dynamic approach allows the hardware to adapt to different branch patterns, improving storage efficiency by using minimal necessary tag widths while maintaining the capability to handle all types of branch instructions, thus balancing efficiency and complexity.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8458447B2Branch target buffer addressing in a data processor
Publication Date: 2013.06.04 VLSI TECHNOLOGY LLC
  • US8458447B2 patent drawing
  • US8458447B2 patent drawing
  • US8458447B2 patent drawing

AI summary

A data processor includes a branch target buffer (BTB) having a plurality of BTB entries grouped in ways. The BTB entries in one of the ways include a short tag address and the BTB entries in another one of the ways include a full tag address.