Load-Store Prediction Circuitry with Selective Store Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data processing apparatuses experience delays due to store and load instructions on critical execution paths, leading to increased latency and resource utilization when every store operation is treated as potentially part of a load-store forwarding operation.
Innovation Solution
Implement decoder and prediction circuitry to separately maintain load and store predictions, allowing independent allocation and management of load and store predictions, reducing resource usage and conserving circuit area by only allocating store predictions when there's a reasonable chance of a load-store forwarding operation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If every store operation is treated as potentially part of a load-store forwarding operation, then load-store forwarding capability is improved, but circuit area and resource utilization increase
Solution Approach 1:
The prediction circuitry is segmented into separate load prediction storage and store prediction storage structures. Load predictions are maintained independently of store predictions, allowing the system to allocate resources selectively. Store predictions are only allocated when there's a reasonable chance of a load-store forwarding operation, reducing overall circuit area while maintaining forwarding capability.
Solution Approach 2:
The system dynamically manages prediction allocations by maintaining different conditions for load and store predictions. Store predictions are allocated on-demand based on the likelihood of forwarding operations, rather than reserving space for all possible store operations. This dynamic allocation reduces circuit area while preserving adaptability for load-store forwarding.
2Loss of energy
If separate maintenance of load and store predictions is implemented, then resource utilization is improved, but prediction management complexity increases
Solution Approach 1:
The prediction circuitry divides prediction management into separate modules: load prediction storage and store prediction storage. Each module manages its own entries independently, which simplifies the allocation logic. Load predictions are allocated when load instructions are encountered, while store predictions are allocated separately when store instructions indicate a reasonable chance of forwarding, reducing the complexity of managing a unified prediction structure.
3Area of stationary object
If store predictions are allocated only when needed, then circuit area is reduced, but prediction accuracy may be compromised
Solution Approach 1:
The system uses dynamic allocation criteria for store predictions, allocating them only when there's a reasonable chance of a load-store forwarding operation occurring. This dynamic approach maintains prediction accuracy by ensuring that predictions are made only when the forwarding scenario is likely, rather than maintaining all possible predictions. The separate maintenance of load and store predictions with different conditions ensures accurate predictions are made when needed without wasting resources on unlikely scenarios.
Data Source
AI summary
There is provided an apparatus comprising decoder circuitry to decode store instructions and load instructions. The apparatus includes decoder circuitry to decode store instructions and load instructions. The apparatus also includes prediction circuitry to store load predictions and store predictions. Each load prediction is indexed based on a program counter value of one of the load instructions and comprises information indicative of a predicted store instruction predicted to store data to memory to be subsequently loaded from the memory by that load instruction. Each store prediction is indexed based on the program counter value of one of the store instructions and comprises information indicative of the store instruction being predicted to be indicated as the predicted store instruction in at least one of the plurality of load predictions. Conditions for maintaining the load predictions are different from conditions for maintaining the store predictions.


