Store Queue Entry Allocation for Early Store-to-Load Forwarding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional store queue allocation policies in processing systems lead to delays in store-to-load forwarding, degrading system performance as store instructions wait to be eligible for execution and receive physical addresses before allocating entries in the store queue, resulting in delayed data availability for load instructions.
Innovation Solution
Allocate store queue entries to store instructions upon dispatch, prior to receiving a virtual-to-physical address translation, allowing storage for data to be written, enabling early store-to-load forwarding and reducing dependency wait times.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Area of stationary object
If store queue entries are allocated only after store instructions receive physical addresses, then the store queue size can be smaller and die area reduced, but store-to-load forwarding is delayed degrading system performance
Solution Approach 1:
The patent applies preliminary action by allocating store queue entries to store instructions at dispatch time, before the instructions receive their physical addresses and before they can execute. This advance allocation ensures that when data becomes available for store-to-load forwarding, the store queue entries are already in place and ready to receive and forward the data immediately, eliminating the delay that would otherwise occur while waiting for entry allocation.
2Quantity of substance
If store instructions wait to be eligible for execution before allocating store queue entries, then fewer entries are needed in the store queue, but data availability for load instructions is delayed
Solution Approach 1:
The patent implements preliminary action by pre-allocating store queue entries when store instructions are dispatched, rather than waiting until they become eligible for execution. This ensures that the data structure is ready in advance, so when the store instruction later receives data and needs to perform store-to-load forwarding, the entry is already allocated and ready to hold and forward the data immediately, reducing the time loss.
Solution Approach 2:
The patent applies segmentation by separating the entry allocation function from the execution eligibility condition. Instead of coupling entry allocation to execution eligibility, the patent decouples these operations so that entries can be allocated independently at dispatch time, allowing the store queue to be structured with pre-allocated entries that are ready before execution conditions are met.
3Device complexity
If conventional store queue allocation is used, then the store queue structure is simpler, but store instructions experience delays in performing store-to-load forwarding
Solution Approach 1:
The patent applies preliminary action by performing entry allocation at dispatch time rather than at execution time. This changes the timing of the allocation operation from a later stage to an earlier stage, allowing the store queue to be prepared in advance. The complexity of the allocation logic itself remains similar, but the timing is shifted earlier in the instruction lifecycle, enabling faster store-to-load forwarding when data becomes available.
Data Source
AI summary
The present invention provides a method and apparatus for allocating store queue entries to store instructions for early store-to-load forwarding. Some embodiments of the method include allocating an entry in a store queue to a store instruction in response to the store instruction being dispatched and prior to receiving a translation of a virtual address to a physical address associated with the store instruction. The entry includes storage for data to be written to the physical address by the store instruction.


