Binary Translation Alias Detection in Out-of-Order Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing out-of-order processors face performance shortcomings in detecting memory aliasing during speculative reordering of operations, as current memory disambiguation techniques are unable to effectively identify aliasing issues without introducing additional hardware complexities and overheads.

Innovation Solution

The implementation extends memory disambiguation mechanisms to detect aliasing by using existing hardware to track and resolve aliasing violations through the incorporation of protection bits (P-bit) in load instructions and cleared bits (C-bit) in store instructions, allowing for speculative reordering without introducing new hardware structures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If memory disambiguation techniques are used to detect aliasing in out-of-order processors, then aliasing detection capability is improved, but hardware complexity and overhead increase

Engineering Contradiction:
Improvealiasing detection capabilityVSAvoidhardware complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent uses copy bits (C-bit) and protection bits (P-bit) as lightweight data structures to track aliasing relationships. Instead of complex hardware structures, the invention copies and propagates these bit flags through the instruction stream, allowing aliasing detection using simple bitwise operations in existing pipeline stages.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces an intermediary mechanism where the binary translator inserts special instructions (copy instructions and protection instructions) that carry aliasing information through the processor pipeline. These intermediary instructions mediate between the binary translator's reordering decisions and the processor's execution engine, enabling aliasing detection without requiring complex modifications to the core execution units.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If binary translator reorders memory operations for optimization, then processor performance is improved, but aliasing detection accuracy deteriorates

Engineering Contradiction:
Improveprocessor performanceVSAvoidaliasing detection accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent applies preliminary action by having the binary translator pre-compute and insert protection bits and copy bits into the instruction stream before execution. These bits are prepared in advance to mark memory operations that may be reordered, so that when the out-of-order engine executes instructions, the aliasing information is already available without requiring complex runtime analysis.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms where the processor executes instructions with inserted protection and copy bits, detects aliasing violations, and provides feedback to the binary translator. This feedback loop allows the binary translator to refine its reordering decisions and insert appropriate protection instructions, progressively improving both performance and aliasing detection accuracy.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10228956B2Supporting binary translation alias detection in an out-of-order processor
Publication Date: 2019.03.12 INTEL CORP
  • US10228956B2 patent drawing
  • US10228956B2 patent drawing
  • US10228956B2 patent drawing

AI summary

In one implementation, a processing device is provided that includes a memory to store instructions and a processor core to execute the instructions. The processor core is to receive a sequence of instructions reordered by a binary translator for execution. A first load of the sequence of instructions is identified. The first load references a memory location that stores a data item to be loaded. An occurrence of a second load is detected. The second load to access the memory location subsequent to an execution of the first load instruction. A protection field in the first load is enabled based on the detected occurrence of the second load. The enabled protection field indicates that the first load is to be checked for an aliasing associated with the memory location with respect to a subsequent store instruction. The second load is eliminated based on the enabled of the protection field.