Hardware Dependency Tracking for Memory Disambiguation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The complexity of programming multi-core processor systems due to non-deterministic software execution and the challenge of memory disambiguation when reordering memory operations, which introduces hazards and requires efficient detection mechanisms to ensure correct aliasing and ordering.

Innovation Solution

A hardware/software scheme for alias disambiguation during Vector Widening (VW) that allows software to manage and configure alias detection buffers outside loops, using sequence numbers and special instructions to communicate the original order of memory operations to hardware, enabling implicit checking and reducing overhead by performing checks out of band.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If memory operations are reordered to improve performance, then execution speed increases, but memory hazards and aliasing errors are introduced

Engineering Contradiction:
Improveexecution speedVSAvoidmemory hazard detection
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent applies preliminary action by performing alias detection and establishing memory ordering constraints before the actual memory operations are executed. The dependency tracking hardware monitors and records memory access patterns in advance, allowing the system to detect potential hazards proactively rather than reactively, thus enabling safe reordering decisions that improve execution speed without introducing reliability issues

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism - the dependency tracking hardware - that acts as a mediator between the memory operations and the execution pipeline. This intermediary monitors memory accesses, tracks dependencies, and provides disambiguation information that allows the system to safely reorder operations while preventing hazards, thus resolving the contradiction between speed improvement and reliability maintenance

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If alias detection is performed at runtime to ensure correctness, then memory safety is maintained, but communication overhead and latency increase

Engineering Contradiction:
Improvememory safetyVSAvoidcommunication overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts the alias detection function from the main execution path and places it in dedicated dependency tracking hardware. By separating the detection mechanism from the critical execution path, the system can perform runtime alias detection for memory safety while minimizing communication overhead and latency, as the detection occurs in parallel rather than sequentially

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent replaces software-based alias detection mechanisms with hardware-based dependency tracking. This substitution eliminates the communication overhead and latency associated with software polling and checking, as the hardware naturally tracks memory dependencies through dedicated circuits that operate at the same speed as the memory operations themselves

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Adaptability or versatility

If complex memory models are used to support multi-threaded programs, then programming flexibility increases, but optimization scope is limited

Engineering Contradiction:
Improveprogramming flexibilityVSAvoidoptimization scope
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements feedback mechanisms where the dependency tracking hardware continuously monitors memory access patterns and feeds this information back to the optimization system. This feedback loop enables the system to understand the actual runtime behavior of multi-threaded programs under complex memory models, allowing for dynamic optimizations that maintain programming flexibility while expanding the optimization scope through data-driven decision making

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8826257B2Memory disambiguation hardware to support software binary translation
Publication Date: 2014.09.02 INTEL CORP
  • US8826257B2 patent drawing
  • US8826257B2 patent drawing
  • US8826257B2 patent drawing

AI summary

A method of memory disambiguation hardware to support software binary translation is provided. This method includes unrolling a set of instructions to be executed within a processor, the set of instructions having a number of memory operations. An original relative order of memory operations is determined. Then, possible reordering problems are detected and identified in software. The reordering problem being when a first memory operation has been reordered prior to and aliases to a second memory operation with respect to the original order of memory operations. The reordering problem is addressed and a relative order of memory operations to the processor is communicated.