Store Queue Store-to-Load Forward Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Processors face performance issues due to mistaken store-to-load forwarding, leading to incorrect data being forwarded to load instructions, which can result in catastrophic errors and unnecessary resynchronization operations.

Innovation Solution

A processor confirms the correctness of store-to-load forwarding operations by comparing dependent load instructions to both retired and unretired store instructions in the store queue, extending the time available for store operation confirmation and reducing unnecessary resynchronizations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the processor takes a conservative approach and performs resync operations when store-to-load forward correctness cannot be verified, then reliability is improved, but processor performance deteriorates

Engineering Contradiction:
Improvecorrectness of store-to-load forwardVSAvoidprocessor performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The processor performs preliminary verification of store-to-load forward correctness by comparing the load address with store addresses from retired store instructions before executing the load instruction. This preliminary action prevents incorrect data forwarding while allowing correct forwards to proceed without resync, thus maintaining both reliability and performance

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The processor implements a feedback mechanism where the load/store unit verifies store-to-load forward operations by checking address matches between load instructions and retired store instructions. This feedback loop ensures correctness verification while providing a pathway to avoid unnecessary resync operations, balancing reliability and performance

Inventive Principle:
Principle #23Feedback

2Manufacturing precision

If the processor extends the time available for store operation confirmation by maintaining store addresses after retirement, then manufacturing precision is improved, but device complexity increases

Engineering Contradiction:
Improveaccuracy of verifying store-to-load forwardingVSAvoidprocessor architecture complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The store queue structure is enhanced to serve multiple functions: it not only tracks unretired store instructions but also maintains addresses of retired store instructions for verification purposes. This multi-functionality allows the same hardware structure to support both execution tracking and correctness verification, improving accuracy without proportionally increasing complexity

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The verification mechanism adds a new dimension to the store queue functionality by incorporating temporal extension - maintaining store address information beyond the traditional retirement point. This dimensional change allows verification to occur at multiple time points (before and after retirement), improving verification accuracy while using existing hardware resources

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS9003225B2Confirming store-to-load forwards
Publication Date: 2015.04.07 ADVANCED MICRO DEVICES INC
  • US9003225B2 patent drawing
  • US9003225B2 patent drawing
  • US9003225B2 patent drawing

AI summary

A processor includes a store queue that stores information representing store instructions. In response to retirement of a store instruction, the processor invalidates the corresponding entry in the store queue, thereby indicating that the entry is available to store a subsequent store instruction. The store address is not removed from the queue until the subsequent store instruction is stored. Accordingly, the store address is available for comparison to a dependent load address.