Out-of-Order Processor Load Store Queue Reordering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current processor architectures face inefficiencies in context switching and parallelism due to the overhead of duplicating architecture state elements for multiple threads, particularly in fine-grain parallelism scenarios, which leads to increased complexity, power consumption, and software overhead.
Innovation Solution
Implementing a method that reorders instructions in an out-of-order processor to ensure that loads and stores are executed in a consistent order, using a load/store queue system that allows speculative execution and recovery from miss-predictions, and employs virtual identifiers to determine the relative age of instructions for correct forwarding and execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If hardware duplicates all architecture state elements for each supported thread, then context switch overhead is reduced, but device complexity, area, and power consumption increase
Solution Approach 1:
The processor divides the instruction stream into separate load and store instruction sequences, allowing independent processing and reordering of these segments. This segmentation enables the system to manage multiple threads without duplicating complete architecture state, reducing hardware complexity while maintaining efficient context switching
Solution Approach 2:
The patent introduces a new dimension of instruction processing by separating loads and stores into distinct queues and processing them independently. This dimensional separation allows the system to achieve thread efficiency without full state duplication, resolving the contradiction between context switch speed and hardware complexity
2Productivity
If instructions are reordered for out-of-order execution, then productivity is improved, but reliability deteriorates due to speculative forwarding miss-predictions
Solution Approach 1:
The system performs preliminary actions by allocating load and store instructions to separate queues before execution, and by pre-establishing forwarding relationships between instructions. This preliminary organization enables out-of-order execution while maintaining correctness, as the forwarding logic is prepared in advance to handle potential reordering scenarios
Solution Approach 2:
The patent implements feedback mechanisms through actual age tracking and virtual identifier comparison that continuously monitor instruction execution state. When miss-predictions occur, the feedback system detects the error and triggers appropriate recovery actions, ensuring reliability is maintained despite speculative out-of-order execution
3Productivity
If loads and stores are executed out-of-order, then productivity increases, but manufacturing precision deteriorates due to memory consistency violations
Solution Approach 1:
The system changes the parameter of instruction execution order by allowing loads and stores to execute independently out-of-order while maintaining a virtual identifier system that tracks their original program order. This parameter transformation enables high throughput while preserving memory consistency through the virtual age comparison mechanism
Data Source
AI summary
A method for forwarding data from the store instructions to a corresponding load instruction in an out of order processor. The method includes accessing an incoming sequence of instructions; reordering the instructions in accordance with processor resources for dispatch and execution; ensuring a closest earlier store in machine order for to a corresponding load, by determining if said store has an actual age but said corresponding load does not have an actual age, then said store is earlier than said corresponding load; if said corresponding load has an actual age but said store does not have an actual age, then said corresponding load is earlier than said store; if neither said corresponding load or said store have an actual age, then a virtual identifier table is used to determine which is earlier; and if both said corresponding load and said store have actual ages, then the actual ages are used to determine which is earlier.


