Microprocessor Load Store Unit Resync Predictor
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern high-performance out-of-order executing microprocessors face performance losses due to erroneous load executions, which require resyncing and flushing of instructions, leading to wasted execution opportunities and potential errors when loads are executed before correct stores.
Innovation Solution
An enhanced microprocessor with a resync predictor in the load store unit and an instruction decoder that uses a resync predictor table to detect and correct errors by sending resync signals, setting counter thresholds, and switching between speculative and ordered execution modes based on error history to minimize execution errors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If load instructions are executed out-of-order to improve performance, then execution efficiency is improved, but execution errors occur when loads are executed before correct stores
Solution Approach 1:
The patent applies preliminary action by performing speculative execution of load instructions before determining their correct execution order. The out-of-order execution unit speculatively executes loads ahead of time, and the resync predictor subsequently validates whether these speculative executions were correct, allowing the system to recover if errors occur.
Solution Approach 2:
The patent implements feedback through the resync predictor mechanism that monitors executed load instructions and provides feedback signals when execution errors are detected. This feedback loop allows the system to identify and correct erroneous out-of-order executions, maintaining reliability while enabling aggressive out-of-order execution for performance.
2Reliability
If resyncing is performed to correct erroneous load executions, then execution correctness is improved, but performance is degraded due to wasted execution opportunities
Solution Approach 1:
The patent extracts the error detection and correction functionality into a separate resync predictor unit that operates independently from the main execution pipeline. This allows erroneous instructions to be identified and handled separately without completely halting the out-of-order execution engine, minimizing performance impact while maintaining correctness.
Solution Approach 2:
When the resync predictor detects an erroneous load execution, it discards the incorrect results and triggers a selective resync operation. Rather than flushing the entire pipeline, the system recovers by re-executing only the affected instructions, thereby maintaining correctness while minimizing performance loss from the correction process.
3Reliability
If the LSU executes instructions in a particular order to ensure correctness, then execution reliability is improved, but efficiency is reduced due to constraints on out-of-order execution
Solution Approach 1:
The patent applies dynamics by making the execution order flexible rather than fixed. The LSU dynamically adjusts between out-of-order execution for performance and in-order execution for correctness based on runtime conditions. The resync predictor enables this dynamic behavior by allowing aggressive out-of-order execution when confidence is high and triggering corrections when errors are detected.
Solution Approach 2:
The patent changes the execution parameter from strictly in-order to a dynamic mix of in-order and out-of-order execution. By introducing the resync predictor mechanism, the system can vary the degree of out-of-order execution based on detected error patterns, effectively changing the execution order parameter adaptively to balance correctness and efficiency.
Data Source
AI summary
A method and microprocessor are described for efficiently executing load instructions out-of-order (speculatively). The microprocessor includes an enhanced load store unit (LSU) and an enhanced instruction decoder. The enhanced LSU receives a plurality of out-of-order value addresses, and sends a resync signal to the enhanced instruction decoder when an execution error associated with a particular load instruction occurs. The enhanced instruction decoder stores a specific address associated with the particular load instruction, and increments a counter value that indicates how many times the resync signal was sent by the resync predictor. When the counter value reaches a predetermined threshold, subsequent load instructions from the specific address are executed in order (non-speculatively). When a future execution of the particular load instruction indicates that the probability of an execution error has been reduced, the counter value is decremented, facilitating newer load instructions associated with the same address to again be executed speculatively.


