Load-Store Dependency Predictor Threshold Tuning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face performance degradation due to load-store dependencies, where a load is executed before a dependent older store, leading to incorrect execution and flushing, which can be costly in terms of processor performance.

Innovation Solution

A load-store dependency predictor (LSDP) is implemented, which includes a table for storing load-store pairs that cause order violations, with a confidence counter to predict dependencies, allowing loads to be replayed or flushed based on thresholds, thereby optimizing scheduling and preventing incorrect executions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If loads are executed speculatively out of order to maximize instructions per clock cycle, then processor throughput is improved, but load-store dependency violations cause incorrect execution and require flushing which degrades performance

Engineering Contradiction:
Improveinstructions per clock cycleVSAvoidexecution correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The processor speculatively executes loads before older stores in the instruction sequence, anticipating that the load will not depend on the store. This preliminary action allows out-of-order execution to proceed without waiting for store completion, improving throughput while relying on subsequent validation to catch actual dependencies.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The load-store dependency predictor monitors executed instructions and detects when a speculatively executed load incorrectly accessed data before a dependent store completed. This feedback mechanism uses the detection results to update predictor tables, improving future predictions and reducing incorrect speculations.

Inventive Principle:
Principle #23Feedback

2Device complexity

If the load-store dependency predictor uses a single threshold for all loads, then the predictor structure is simple, but it cannot optimally handle both replay and flush cases

Engineering Contradiction:
Improvepredictor structureVSAvoidprocessor performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The predictor implements different threshold values for different types of load-store pairs. Replay cases use a first threshold while flush cases use a second threshold. This local differentiation allows the system to optimize prediction behavior for each case type, improving overall processor performance by reducing both replays and flushes through case-specific threshold tuning.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10437595B1Load/store dependency predictor optimization for replayed loads
Publication Date: 2019.10.08 APPLE INC
  • US10437595B1 patent drawing
  • US10437595B1 patent drawing
  • US10437595B1 patent drawing

AI summary

Systems, apparatuses, and methods for optimizing a load-store dependency predictor (LSDP). When a younger load instruction is issued before an older store instruction and the younger load is dependent on the older store, the LSDP is trained on this ordering violation. A replay/flush indicator is stored in a corresponding entry in the LSDP to indicate whether the ordering violation resulted in a flush or replay. On subsequent executions, a dependency may be enforced for the load-store pair if a confidence counter is above a threshold, with the threshold varying based on the status of the replay/flush indicator. If a given load matches on multiple entries in the LSDP, and if at least one of the entries has a flush indicator, then the given load may be marked as a multimatch case and forced to wait to issue until all older stores have issued.