Branch Information Unit Segmentation for Storage Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems face challenges in efficiently storing branch information due to the large storage requirements needed to determine the correct program flow after a branch prediction misprediction, which affects power consumption and area usage.

Innovation Solution

The proposed solution involves a Branch Information Unit (BIU) that stores branch history and prediction data in separate memory entries, updating indices to reduce storage needs by only storing data for taken branches, thereby minimizing overall storage and power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If branch history information is stored for all branches to ensure correct program flow after misprediction, then reliability of branch prediction is improved, but storage requirements increase

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidstorage requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent divides branch information storage into two separate tables: a Branch Information Table (BIT) that stores basic branch metadata and indices, and a Taken Branch Information Table (tBIT) that stores detailed history only for taken branches. This segmentation allows the system to maintain reliability for both taken and not-taken branches while minimizing total storage by only storing detailed history where needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by storing comprehensive branch history information selectively only in the tBIT for taken branches, while the BIT stores condensed information for all branches. This localized storage strategy ensures that detailed history is available where it matters most (for taken branches) while reducing overall storage requirements.

Inventive Principle:
Principle #3Local quality

2Reliability

If large storage capacity is allocated for branch information to handle mispredictions, then reliability is improved, but area usage increases

Engineering Contradiction:
Improvemisprediction recovery capabilityVSAvoidmemory area
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

The patent segments branch information storage into two specialized tables with distinct functions. The BIT stores compact branch identifiers and indices for all branches, while the tBIT stores detailed taken branch history only when needed. This segmentation reduces the total memory area required compared to storing complete history for all branches in a single large table.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of storing branch information in a traditional single-table structure where all branches are treated equally, the patent inverts the approach by creating a specialized tBIT that stores information only for taken branches. This inverted storage strategy reduces area usage while maintaining the capability to recover from mispredictions.

Inventive Principle:
Principle #13The other way round (Inversion)

3Reliability

If complete branch history is stored for all branches, then reliability of program flow determination is improved, but power consumption increases

Engineering Contradiction:
Improveprogram flow determination accuracyVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent segments branch history storage to minimize power consumption by only actively maintaining detailed history in the tBIT for taken branches. The BIT stores minimal information for all branches, reducing the total amount of data that needs to be written and read, thereby lowering power consumption while maintaining program flow determination accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by concentrating detailed branch history storage only in the tBIT for taken branches, rather than uniformly storing complete history for all branches. This localized approach reduces the overall power consumption associated with memory write and read operations while maintaining the reliability needed for accurate program flow determination.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10175982B1Storing taken branch information
Publication Date: 2019.01.08 APPLE INC
  • US10175982B1 patent drawing
  • US10175982B1 patent drawing
  • US10175982B1 patent drawing

AI summary

A method and system for storing branch information is disclosed. First data may be stored in a first entry of a first table in response to a determination that a fetched instruction is a branch instruction. Second data that is dependent upon at least one previously taken branch may be stored in a second entry in a second table in response to a determination that a branch associated with the instruction is predicted to be taken. The first data may be updated to include an index to the second data in response to the determination that the branch is predicted to be taken.