Store Hit Load Predictor for Out-of-Order Execution Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Processors face performance issues due to speculative execution of loads out of order with respect to stores, leading to incorrect data retrieval and reduced performance when corrective actions are needed.

Innovation Solution

Implementing a store hit load predictor that monitors fetched operations, detects potential store hit events, and creates dependencies to prevent loads from executing out of order with respect to stores, thereby avoiding store hit load events.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If loads are executed speculatively out of order with respect to stores, then processor performance is improved through faster data access, but incorrect data is retrieved and performance is reduced when corrective actions are needed

Engineering Contradiction:
Improveprocessor performanceVSAvoiddata correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The store hit load predictor performs preliminary detection of stores that may cause store hit load events by monitoring fetched operations and comparing program counters. It proactively identifies potential conflicts before they occur and creates dependencies to prevent incorrect data retrieval, rather than reacting after errors have occurred.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses feedback from detected store hit load events to train and update the store hit load predictor. When load replays are detected, the predictor captures the store program counter and offset information, then uses this feedback to improve future predictions and prevent similar events.

Inventive Principle:
Principle #23Feedback

2Reliability

If corrective actions are taken for store hit load events, then data correctness is restored, but processor performance is reduced

Engineering Contradiction:
Improvedata correctnessVSAvoidprocessor performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The store hit load predictor applies preliminary anti-action by detecting stores that may cause store hit load events and proactively creating dependencies to prevent the incorrect data retrieval in the first place. This eliminates the need for subsequent corrective actions like load replays, thereby maintaining both data correctness and processor performance.

Inventive Principle:
Principle #9Preliminary anti-action

3Reliability

If a store hit load predictor is implemented to prevent store hit load events, then data correctness is improved, but device complexity increases

Engineering Contradiction:
Improvedata correctnessVSAvoidprocessor architecture
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The store hit load predictor is integrated into the existing processor architecture and leverages existing components such as the instruction fetch unit and dependency resolution mechanisms. It performs multiple functions including monitoring fetched operations, detecting store hit load events, creating dependencies, and training from load replays, all within the existing processor framework rather than adding entirely separate systems.

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

Data Source

PatentUS8285947B2Store hit load predictor
Publication Date: 2012.10.09 APPLE INC
  • US8285947B2 patent drawing
  • US8285947B2 patent drawing
  • US8285947B2 patent drawing

AI summary

In one embodiment, a processor implements a store hit load predictor. The store hit load predictor is configured to monitor fetched ops in the processor, and is configured to detect stores that may have previously caused store hit load events. The store hit load predictor is configured to predict that the store will cause a store hit load event again, and is further configured to monitor subsequent fetched ops for the load. The store hit load predictor may locate the load using, e.g., an offset from the store to the load in the code sequence. In response to locating the load, the store hit load predictor may create a dependency of the load on the store, preventing the load from executing out of order with respect to the store. A store hit load event may be avoided in this fashion, at least in some cases.