Branch Prediction Using Segmented Global History Vectors
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computer processors face inefficiencies in branch prediction, which affects their speed and power consumption, as they rely on simplistic methods that do not fully utilize historical branch prediction statistics for accurate and efficient decision-making.
Innovation Solution
The method involves fetching an instruction with a global history vector address and pointer, performing a first branch prediction using the initial portion of the vector, retrieving a second portion from a rolling global history vector buffer, and making a more accurate second prediction by combining both portions, thereby leveraging historical data for improved prediction accuracy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If comprehensive global history vector data is used for branch prediction, then prediction accuracy is improved, but processor complexity and power consumption increase
Solution Approach 1:
The global history vector is segmented into two portions: a first portion stored in the instruction address and a second portion retrieved from a rolling global history vector buffer. This segmentation allows the system to use comprehensive historical data for accurate prediction while managing complexity by dividing the data retrieval into manageable parts.
Solution Approach 2:
The rolling global history vector buffer pre-stores the second portion of the global history vector data, so that when branch prediction is needed, the data is already available in the buffer rather than requiring computation or retrieval from main memory. This preliminary action reduces prediction latency and complexity.
2Measurement precision
If comprehensive global history vector data is used for branch prediction, then prediction accuracy is improved, but power consumption increases
Solution Approach 1:
By segmenting the global history vector access into two portions, the system can efficiently retrieve only the necessary data from the rolling buffer rather than accessing the entire history vector from main memory, reducing the energy required for data retrieval while maintaining comprehensive prediction accuracy.
Solution Approach 2:
A rolling global history vector buffer (a copy of the history data) is maintained in the processor, allowing frequent access to historical branch data without expensive main memory accesses. This copying approach reduces power consumption by keeping prediction data in faster, lower-power memory.
3Speed
If only partial history data is used for branch prediction, then processing speed is improved, but prediction accuracy deteriorates
Solution Approach 1:
The first portion of the global history vector is included in the instruction address for immediate access, while the second portion is retrieved from the rolling buffer using a pointer. This segmentation enables parallel retrieval of both portions, maintaining high speed while providing access to the complete history vector for accurate prediction.
Solution Approach 2:
The system merges the first portion of the global history vector (from the address) with the second portion (from the rolling buffer) to form the complete global history vector. This combination allows the processor to use comprehensive historical data for accurate branch prediction without sacrificing processing speed.
Data Source
AI summary
Branch prediction in a computer processor, includes: fetching an instruction, the instruction comprising an address, the address comprising a first portion of a global history vector and a global history vector pointer; performing a first branch prediction in dependence upon the first portion of the global history vector; retrieving, in dependence upon the global history vector pointer, from a rolling global history vector buffer, a second portion of the global history vector; and performing a second branch prediction in dependence upon a combination of the first portion and second portion of the global history vector.


