Speculative Memory Scheduling via Address Comparison

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In out-of-order processors, the scheduling of memory operations is constrained by dependencies between instructions, leading to performance losses due to incorrect execution and subsequent reexecution of memory operations, especially when the dependency between load and store operations is not known until execution time.

Innovation Solution

A dependency tracking unit is introduced to detect dependencies between memory operations by matching base address source registers, preventing younger memory operations from being scheduled until older operations are completed, thus avoiding unnecessary reexecution and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If younger load memory operations are executed prior to older store memory operations to increase processor performance, then the number of instructions executed per clock cycle increases, but the load may be incorrectly executed if it depends on the store

Engineering Contradiction:
Improveinstructions executed per clock cycleVSAvoidcorrectness of memory operation execution
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by calculating and comparing memory addresses of load and store operations before execution to detect potential dependencies in advance. The dependency tracking unit computes virtual addresses using base registers and offsets, then compares these addresses to identify load-store dependencies before the actual memory operations occur, allowing the processor to make informed scheduling decisions without delaying execution

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the processor executes memory operations in program order to ensure correct execution, then correctness is maintained, but performance is lost due to delayed execution of loads

Engineering Contradiction:
Improvecorrectness of memory operation executionVSAvoidinstructions executed per clock cycle
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary address calculation and dependency detection before execution, allowing the processor to identify load-store dependencies in advance. This enables the processor to execute operations out of order when safe and maintain program order only when dependencies are detected, optimizing performance while ensuring correctness

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamic scheduling where the execution order of memory operations is adjusted based on real-time dependency detection. The out-of-order execution unit dynamically determines whether to execute loads before stores based on address comparison results, making the execution order flexible rather than fixed, thus balancing correctness and performance

Inventive Principle:
Principle #15Dynamics

3Productivity

If the processor allows younger load to execute prior to older store with little regard for actual order, then performance may be maximized, but resources are consumed unnecessarily to execute and then cancel the load

Engineering Contradiction:
Improveprocessor performanceVSAvoidresources consumed for incorrect execution
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent performs preliminary address calculation and dependency detection before execution to prevent incorrect execution from occurring in the first place. By computing virtual addresses and comparing them beforehand, the processor can identify dependencies and prevent wasteful reexecution, eliminating the need for cancellation and replay operations that consume unnecessary resources

Inventive Principle:
Principle #10Preliminary action

4Reliability

If the load is replayed by cancelling current execution and reexecuting at a later time, then correct execution is achieved, but performance is reduced due to pipeline flush and reexecution

Engineering Contradiction:
Improvecorrectness of memory operation executionVSAvoidtime for pipeline flush and reexecution
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary address calculation and dependency detection before execution to prevent incorrect execution from occurring. By detecting load-store dependencies in advance through address comparison, the processor can maintain correct execution order without needing to flush the pipeline or replay operations, thereby eliminating the time loss associated with corrective actions

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8918625B1Speculative scheduling of memory instructions in out-of-order processor based on addressing mode comparison
Publication Date: 2014.12.23 MARVELL ASIA PTE LTD
  • US8918625B1 patent drawing
  • US8918625B1 patent drawing
  • US8918625B1 patent drawing

AI summary

A processor that executes instructions out of program order is described. In some implementations, a processor detects whether a second memory operation is dependent on a first memory operation prior to memory address calculation. If the processor detects that the second memory operation is not dependent on the first memory operation, the processor is configured to allow the second memory operation to be scheduled. If the processor detects that the second memory operation is dependent on the first memory operation, the processor is configured to prevent the second memory operation from being scheduled until the first memory operation has been scheduled to reduce the likelihood of having to reexecute the second memory operation.