Load-Store Dependence Predictor Using Branch Paths and Store Distance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
State-of-the-art memory dependence predictors in out-of-order processors suffer from performance gaps due to inaccurate predictions and high storage requirements, primarily because they do not effectively leverage context information and use suboptimal history lengths, leading to unnecessary load stalls and increased computational resources.
Innovation Solution
A load-store dependence predictor is trained using branch path history and store distance information to identify the minimum history length necessary for precise predictions, utilizing set-associative prediction tables to minimize aliasing and reduce computational power.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If predictors use longer history lengths to improve prediction accuracy, then prediction accuracy is improved, but storage requirements and device complexity increase
Solution Approach 1:
The patent applies local quality by using different history lengths for different load instructions based on their specific characteristics. Instead of using a uniform long history for all loads, the predictor determines the minimum necessary history length for each individual load instruction, thereby achieving accurate predictions while minimizing storage requirements.
Solution Approach 2:
The patent changes the parameter of history length dynamically based on the specific dependence pattern being predicted. By adjusting the history length parameter to match the actual distance between dependent instructions, the system achieves high prediction accuracy without unnecessarily increasing storage capacity.
2Adaptability or versatility
If predictors link loads to multiple stores (Store Sets) to improve coverage, then more dependences can be detected, but false positives increase causing unnecessary load stalls
Solution Approach 1:
The patent extracts only the necessary information for accurate prediction by linking each load to a single most relevant store based on program order and distance metrics. This selective approach eliminates spurious associations with unrelated stores, reducing false positives while maintaining effective dependence detection.
Solution Approach 2:
The system uses feedback from actual execution outcomes to refine predictions. By monitoring whether predicted dependences actually occur and adjusting predictions accordingly, the system learns to distinguish true dependences from false positives, improving reliability over time.
3Measurement precision
If predictors track detailed branch history to improve context sensitivity, then prediction accuracy improves, but the number of stored stories increases drastically
Solution Approach 1:
The patent applies partial action by tracking only the essential branch history information needed for accurate prediction rather than complete detailed histories. By focusing on the critical path between dependent instructions and tracking only relevant branch outcomes, the system achieves context sensitivity without exponentially increasing storage requirements.
4Device complexity
If predictors use shorter history lengths to reduce storage, then device complexity decreases, but prediction accuracy deteriorates
Solution Approach 1:
The patent makes the history length dynamic rather than static. The system adjusts the history length for each prediction based on the specific characteristics of the instructions involved, such as the distance between load and store operations. This dynamic adaptation allows the system to use minimal storage while maintaining high accuracy for each specific case.
Data Source
Figure 1
Figure 2~3
Figure 4
AI summary
The disclosure refers to a computer implemented method for training a load-store dependence predictor. The load-store dependence predictor is associated with an out-of-order processor and comprises at least one prediction table. The method comprises identifying a dependence between a particular load instruction and a particular store instruction; determining a history length from the particular store instruction to the particular load instruction, the history length being the number of branches between the particular load instruction and the particular store instruction; determining a distance from the particular store instruction to the particular load instruction, the distance being the number of store instructions between the particular load instruction and the particular store instruction; and storing the dependence identified in one entry of the at least one prediction table together with context information associated with the history length and the distance previously determined.