Branch Target Buffer Addressing for Pipeline Stall Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face performance degradation due to pipeline stalls and increased memory access when transitioning between differing high-order address bits, and compression methods for address values reduce available address ranges, limiting system effectiveness.

Innovation Solution

A branch target buffer (BTB) system that efficiently compresses branch target addresses by using a shared higher order target portion and multiple unshared lower order target portions, with control fields indicating branch validity and prediction, allowing for the generation of non-speculative target addresses for short, medium, and long branches, reducing the need for full target address storage and minimizing speculative address generation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If compression methods are used to reduce address value size, then the size of communication buses and memory storage is reduced, but the available address range is significantly reduced

Engineering Contradiction:
Improveaddress value sizeVSAvoidaddress range
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The address value is segmented into high-order bits and low-order bits. The high-order bits are compressed and stored in a table, while the low-order bits are stored directly. This segmentation allows the address range to be extended beyond the compression limit by combining the compressed high-order portion with the uncompressed low-order portion.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A table structure is introduced as an intermediary between the compressed high-order address bits and the full address reconstruction. The table stores the relationship between compressed high-order bits and their corresponding full high-order address values, enabling the system to overcome the address range limitation of compression methods.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If pipeline stalls occur when transitioning between differing high order bits, then address compression is achieved, but system performance is degraded

Engineering Contradiction:
Improveaddress value sizeVSAvoidsystem performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The high-order address bits are pre-compressed and the results are stored in a table during system initialization or when address patterns are detected. This preliminary compression allows the pipeline to avoid stalls during address transitions, as the compressed values are already prepared and can be quickly retrieved when needed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system monitors address transition patterns and adjusts the compression strategy based on detected patterns. When transitions between differing high-order bits are detected, the system can switch between compressed and uncompressed address modes, providing feedback-based optimization that maintains performance while achieving compression where beneficial.

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If more operands are retrieved from main memory rather than cache, then address range is increased, but system performance is degraded

Engineering Contradiction:
Improveaddress rangeVSAvoidsystem performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

By segmenting the address into compressed high-order bits and uncompressed low-order bits, the system can maintain a larger effective address range without requiring full uncompressed addresses to be stored in cache. This allows more operands to remain in cache while still supporting extended address ranges.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the parameter representation of addresses by using compressed high-order bits combined with uncompressed low-order bits. This parameter transformation allows the system to maintain cache efficiency while supporting larger address ranges, as the compressed representation reduces the memory footprint of address-related data structures.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7873819B2Branch target buffer addressing in a data processor
Publication Date: 2011.01.18 NXP USA INC
  • US7873819B2 patent drawing
  • US7873819B2 patent drawing
  • US7873819B2 patent drawing

AI summary

A branch target buffer (BTB) receives, from a processor, a current fetch group address which corresponds to a current fetch group including a plurality of instructions. In response to the current fetch group address resulting in a group hit in the BTB, the BTB provides to the processor a branch target address corresponding to a branch instruction within the current fetch group which is indicated by a control field as valid and predicted taken. The BTB generates the branch target address using an unshared lower order target portion, corresponding to the branch instruction and located within the entry of the BTB which caused the group hit, and one of a shared higher order target portion located within the entry of the BTB which caused the group hit or a higher order portion of the current fetch group address based on a value of the control field.