Binary Translation Thread Co-location for Cache Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Binary translation systems face inefficiencies in cache coherence and translation overhead due to scattered thread execution across multiple cores, leading to increased cache coherence traffic and latency in processing guest instructions within a host machine.

Innovation Solution

Implementing thread scheduling logic to co-locate translator, interpreter, and translation-execution threads on the same simultaneous multi-threaded core or adjacent cores sharing a mid-level cache, along with data cache way prediction guided by binary translation code morphing software to enhance cache locality and reduce latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If thread scheduling logic co-locates translator, interpreter, and translation-execution threads on the same core or adjacent cores sharing a mid-level cache, then cache efficiency and access latency are improved, but device complexity increases due to additional scheduling logic

Engineering Contradiction:
Improveaccess latencyVSAvoidscheduling logic complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent combines translator, interpreter, and translation-execution threads to execute on the same simultaneous multi-threaded core or adjacent cores sharing a mid-level cache. This merging of threads that previously executed scattered across multiple cores creates cache locality and reduces access latency, as these threads frequently access shared data structures and code segments.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces thread scheduling logic as an intermediary component that manages and coordinates the execution of translator, interpreter, and translation-execution threads. This scheduling logic acts as a mediator to optimize thread placement on cores, ensuring they are co-located to maximize cache efficiency while minimizing cache coherence traffic.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If threads are scattered across multiple cores, then device utilization is improved, but cache coherence traffic increases and cache efficiency decreases

Engineering Contradiction:
Improvedevice utilizationVSAvoidcache coherence traffic
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent merges the execution location of translator, interpreter, and translation-execution threads by confining them to the same core or adjacent cores sharing a mid-level cache. This spatial consolidation reduces the distance and number of cache coherence operations required between threads, thereby reducing cache coherence traffic and energy consumption.

Inventive Principle:
Principle #5Merging (Combining)

3Loss of time

If data cache way prediction is implemented guided by binary translation code morphing software, then cache efficiency and latency are improved, but device complexity increases

Engineering Contradiction:
Improvecache access latencyVSAvoidcache way prediction complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent implements preliminary action by using binary translation code morphing software to analyze and predict cache way patterns before actual cache access occurs. The system pre-determines which cache ways are likely to contain the required data based on the binary translation code patterns, allowing the cache system to prepare and prioritize access to the predicted cache ways, thereby reducing access latency.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10409763B2Apparatus and method for efficiently implementing a processor pipeline
Publication Date: 2019.09.10 INTEL CORP
  • US10409763B2 patent drawing
  • US10409763B2 patent drawing
  • US10409763B2 patent drawing

AI summary

Various different embodiments of the invention are described including: (1) a method and apparatus for intelligently allocating threads within a binary translation system; (2) data cache way prediction guided by binary translation code morphing software; (3) fast interpreter hardware support on the data-side; (4) out-of-order retirement; (5) decoupled load retirement in an atomic OOO processor; (6) handling transactional and atomic memory in an out-of-order binary translation based processor; and (7) speculative memory management in a binary translation based out of order processor.