Load Operation Tagging for Out-of-Order Memory Disambiguation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional out-of-order microprocessors face inefficiencies in memory disambiguation due to the need for index arrays and communication overhead, leading to latency and computational penalties in handling memory read-after-write violations.

Innovation Solution

Implementing a tagging approach where each load operation carries a tag representing the nearest potential store that could cause a RAW violation, allowing it to validate data speculatively using a global signal from the instruction ROB, eliminating the need for an index array and reducing communication latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional memory disambiguation techniques are used in out-of-order microprocessors, then memory dependencies can be detected and handled, but index arrays and communication overhead cause latency and computational penalties

Engineering Contradiction:
Improvememory dependency detection accuracyVSAvoidvalidation latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the memory disambiguation validation process into two independent parts: (1) load operations carry their own tag representing the nearest potential store, and (2) a global signal from the instruction ROB indicates the youngest issued store. This segmentation eliminates the need for index arrays that couple loads and stores together, reducing communication overhead and validation latency while maintaining accurate dependency detection.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each load operation is self-sufficient by carrying its own tag (identifying the nearest potential store) rather than requiring external index array lookups. The load can independently validate its data by comparing its tag with the global ROB signal, eliminating communication overhead with other pipeline stages and reducing validation latency.

Inventive Principle:
Principle #25Self-service

2Reliability

If index arrays are maintained for memory disambiguation, then store-load dependencies can be tracked, but device complexity and communication overhead increase

Engineering Contradiction:
Improvestore-load dependency trackingVSAvoidindex array structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts and eliminates the index array structure from the memory disambiguation system. Instead of maintaining complex index arrays that map stores to loads, the solution uses simple tags attached to each load operation and a global signal from the ROB. This extraction removes the harmful complexity while preserving the essential functionality of tracking store-load dependencies.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent uses a simplified copying mechanism where the tag from the nearest potential store is copied into the load operation's metadata. This simple tag copy replaces the complex index array lookup operation, reducing device complexity while maintaining accurate dependency tracking.

Inventive Principle:
Principle #26Copying

3Stability of the object's composition

If ordered queues are maintained for load and store operations, then memory ordering is preserved, but productivity and execution throughput decrease

Engineering Contradiction:
Improvememory order preservationVSAvoidinstruction execution throughput
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The patent enables dynamic out-of-order execution of load and store operations by removing the constraint of ordered queues. Loads and stores can execute as soon as their operands are ready, regardless of program order. The memory ordering stability is preserved through the tag comparison mechanism that validates loads against the global ROB signal, allowing maximum instruction throughput while maintaining correctness.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10467010B2Method and apparatus for nearest potential store tagging
Publication Date: 2019.11.05 INTEL CORP
  • US10467010B2 patent drawing
  • US10467010B2 patent drawing
  • US10467010B2 patent drawing

AI summary

A method for performing memory disambiguation in an out-of-order microprocessor pipeline is disclosed. The method comprises storing a tag with a load operation, wherein the tag is an identification number representing a store instruction nearest to the load operation, wherein the store instruction is older with respect to the load operation and wherein the store has potential to result in a RAW violation in conjunction with the load operation. The method also comprises issuing the load operation from an instruction scheduling module. Further, the method comprises acquiring data for the load operation speculatively after the load operation has arrived at a load store queue module. Finally, the method comprises determining if an identification number associated with a last contiguous issued store with respect to the load operation is equal to or greater than the tag and gating a validation process for the load operation in response to the determination.