Branch Information Unit Segmentation for Storage Reduction
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If large storage capacity is allocated for branch information to handle mispredictions, then reliability is improved, but area usage increases
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.
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.
3Reliability
If complete branch history is stored for all branches, then reliability of program flow determination is improved, but power consumption increases
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.
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.
Data Source
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.


