Global Thread Binary Translation Cache Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing binary translation systems face inefficiencies in dynamic optimization due to overheads and resource management challenges, particularly in multi-core environments, where simultaneous execution of native and translated code leads to resource duplication and potential deadlocks.

Innovation Solution

A computing device with a multi-core processor employing a global translation cache and a single global thread for centralized update operations, using non-preemptive commit phases and non-blocking locks to ensure forward progress, and prioritizing binary translation tasks to avoid deadlocks and optimize resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If a single global thread is used for centralized translation cache update operations, then resource consumption is reduced and duplicative translation is prevented, but system complexity increases due to centralized coordination requirements

Engineering Contradiction:
Improveresource consumptionVSAvoidsystem complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

Multiple translation threads are merged into a single global thread that performs all translation cache update operations. This consolidation eliminates redundant translation work across multiple threads and reduces resource consumption by having one thread manage the translation cache instead of multiple threads each maintaining their own caches.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If non-preemptive commit phases are used, then deadlocks are avoided and forward progress is ensured, but translation operation flexibility is reduced

Engineering Contradiction:
Improvedeadlock preventionVSAvoidoperation flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system performs preliminary actions by establishing non-preemptive commit phases before translation operations begin. This preliminary structuring of the execution model prevents deadlocks from occurring in the first place, ensuring forward progress without requiring complex runtime arbitration or preemption mechanisms.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If binary translation is performed dynamically during execution, then processing efficiency is improved, but overhead increases due to simultaneous native and translated code execution

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidoverhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The invention extracts the translation operation from the critical execution path by using a separate global thread dedicated to translation cache updates. This separation allows the main execution thread to run native or translated code without being blocked by translation operations, reducing overhead while maintaining the benefits of dynamic translation.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP3014423B1Binary translation for multi-processor and multi-core platforms
Publication Date: 2018.03.07 INTEL CORP
  • EP3014423B1 patent drawingFigure 1~2
  • EP3014423B1 patent drawingFigure 3
  • EP3014423B1 patent drawingFigure 4

AI summary

Technologies for partial binary translation on multi-core platforms include a shared translation cache, a binary translation thread scheduler, a global installation thread, and a local translation thread and analysis thread for each processor core. On detection of a hotspot, the thread scheduler first resumes the global thread if suspended, next activates the global thread if a translation cache operation is pending, and last schedules local translation or analysis threads for execution. Translation cache operations are centralized in the global thread and decoupled from analysis and translation. The thread scheduler may execute in a non-preemptive nucleus, and the translation and analysis threads may execute in a preemptive runtime. The global thread may be primarily preemptive with a small non-preemptive nucleus to commit updates to the shared translation cache. The global thread may migrate to any of the processor cores. Forward progress is guaranteed. Other embodiments are described and claimed.