Speculative Memory Optimization via Binary Translation and LICM

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern computer processors face inefficiencies in speculative memory optimizations due to out-of-order execution and high overhead from hardware-based checks, leading to performance and power consumption issues, particularly in protecting speculative memory instructions across atomic region boundaries and handling Read-Modify-Write (RMW) addresses.

Innovation Solution

Implementing a two-way checking mechanism between storage buffers and load buffers, along with dynamic program analysis using binary translation, to reduce unnecessary checks and power consumption, and utilizing a Loop Invariant Code Motion (LICM) optimization to relocate loads outside loops, thereby minimizing the number of executed loads and avoiding rollbacks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If hardware-based checks are used to protect speculative memory instructions, then reliability is improved, but device complexity and power consumption increase

Engineering Contradiction:
Improveprotection of speculative memory instructionsVSAvoidoverhead from hardware checks
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the checking function from hardware-based mechanisms and relocates it to software-based binary translation. The binary translator performs memory disambiguation and alias analysis software-style, eliminating the need for complex hardware checkers while maintaining protection reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent replaces hardware-based checking mechanisms with software-based binary translation. The binary translator uses software algorithms to perform memory disambiguation and alias analysis, substituting mechanical hardware checks with software logic that achieves the same protective function with reduced complexity.

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

2Productivity

If out-of-order execution is implemented, then productivity is improved, but reliability deteriorates due to scheduling complexity

Engineering Contradiction:
Improveinstruction execution efficiencyVSAvoidcorrectness of memory accesses
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The binary translator performs preliminary analysis of memory access patterns, dependencies, and aliasing relationships before code execution. This static analysis prepares scheduling information in advance, enabling the out-of-order execution engine to maintain correctness despite instruction reordering by pre-knowing which memory accesses may conflict.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses feedback from binary translation analysis to guide out-of-order scheduling decisions. The translator provides information about memory access patterns and potential conflicts, which feeds back to the scheduler to make informed decisions about instruction ordering, balancing execution efficiency with correctness.

Inventive Principle:
Principle #23Feedback

3Productivity

If Loop Invariant Code Motion is applied, then productivity is improved by reducing loads, but reliability may be affected across atomic region boundaries

Engineering Contradiction:
Improvenumber of loads executedVSAvoidcorrectness at atomic region boundaries
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The binary translator applies different checking strategies to different regions of code. It identifies atomic region boundaries and applies enhanced checking only where needed, while allowing aggressive optimization in safe regions. This localized approach maximizes the benefits of loop invariant code motion where safe and maintains reliability where atomic boundaries require caution.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically adjusts the level of checking and optimization based on the context. The binary translator analyzes each memory access and determines the appropriate checking strategy at runtime, allowing Loop Invariant Code Motion to be applied aggressively when safe and reduced checking when near atomic boundaries, optimizing both performance and reliability dynamically.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10853078B2Method and apparatus for supporting speculative memory optimizations
Publication Date: 2020.12.01 INTEL CORP
  • US10853078B2 patent drawing
  • US10853078B2 patent drawing
  • US10853078B2 patent drawing

AI summary

A processor includes a store buffer to store store instructions to be processed to store data in main memory, a load buffer to store load instructions to be processed to load data from main memory, and a loop invariant code motion (LICM) protection structure coupled to the store buffer and the load buffer. The LPT tracks information to compare an address of a store or snoop microoperation with entries in the LICM and re-loads a load microoperation of a matching entry.