Multi-Way Pattern History Table Branch Prediction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing branch prediction methods in processor pipelines face inefficiencies in predicting multiple branches simultaneously and updating global path vectors, leading to penalties from incorrect predictions.
Innovation Solution
A multi-way pattern history table (PHT) indexed using a global path vector (GPV) allows for simultaneous prediction of multiple branches, updating the GPV only upon taken branches to enable efficient branch prediction, and can be used in conjunction with a branch target buffer (BTB) for asynchronous or synchronous prediction.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a traditional branch prediction structure is used, then the prediction accuracy for single branches is maintained, but the throughput for multiple simultaneous branch predictions is limited
Solution Approach 1:
The branch prediction structure is segmented into multiple independent prediction paths (first prediction path, second prediction path, third prediction path) that can simultaneously evaluate different branches. Each path has its own comparison logic and prediction output, enabling parallel processing of multiple branches without interference, thus increasing throughput while maintaining manageable complexity through modular design
Solution Approach 2:
The patent introduces a new dimension of parallelism by implementing multiple prediction paths that operate simultaneously on different branch instructions. Instead of sequentially processing branches through a single prediction unit, the system evaluates multiple branches in parallel across different paths, effectively adding a temporal parallelism dimension to the prediction architecture
2Reliability
If the global path vector is updated for every branch prediction, then the prediction accuracy is maintained, but the performance penalty from incorrect predictions increases
Solution Approach 1:
The patent applies partial action by updating the global path vector only for predictions made through the first prediction path, while predictions from the second and third paths do not trigger updates. This selective updating approach maintains sufficient prediction accuracy for the critical path while avoiding the performance penalty of updating the path vector for every prediction attempt, thus reducing the time loss from incorrect predictions
Solution Approach 2:
Different prediction paths are assigned different update behaviors based on their local characteristics. The first prediction path, which handles critical branches, updates the global path vector to maintain high accuracy, while other paths use the path vector without updating it, accepting lower accuracy in exchange for avoiding update penalties. This local differentiation optimizes the overall system performance
3Productivity
If multiple branch predictions are made simultaneously, then the throughput is increased, but the probability of incorrect predictions and associated penalties increases
Solution Approach 1:
The simultaneous prediction process is segmented into multiple independent paths, each with its own accuracy characteristics. By dividing the prediction workload across separate paths rather than attempting a single comprehensive prediction, the system maintains higher reliability for each individual prediction while achieving high overall throughput through parallel operation of multiple segmented paths
Data Source
AI summary
Embodiments relate to branch prediction using a pattern history table (PHT) that is indexed using a global path vector (GPV). An aspect includes receiving a search address by a branch prediction logic that is in communication with the PHT and the GPV. Another aspect includes starting with the search address, simultaneously determining a plurality of branch predictions by the branch prediction logic based on the PHT, wherein the plurality of branch predictions comprises one of: (i) at least one not taken prediction and a single taken prediction, and (ii) a plurality of not taken predictions. Another aspect includes updating the GPV by shifting an instruction identifier of a branch instruction associated with a taken prediction into the GPV, wherein the GPV is not updated based on any not taken prediction.


