Store Queue Entry Allocation for Early Store-to-Load Forwarding

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedie areaVSAvoidsystem performance
Core Design Contradiction:
Area of stationary objectVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvenumber of store queue entriesVSAvoiddata availability time
Core Design Contradiction:
Quantity of substanceVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improvestore queue allocation complexityVSAvoidstore-to-load forwarding speed
Core Design Contradiction:
Device complexityVSSpeed

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9335999B2Allocating store queue entries to store instructions for early store-to-load forwarding
Publication Date: 2016.05.10 ONESTA IP LLC
  • US9335999B2 patent drawing
  • US9335999B2 patent drawing
  • US9335999B2 patent drawing

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.