JIT Compiler Bypassing Problematic Code Blocks in Emulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The challenge lies in translating code from a target system to a host system, where differences in configuration lead to incompatible coding blocks, known as problematic target code (PTC) blocks, which can cause translation failures or poor performance due to unnecessary or poorly written code sections.

Innovation Solution

A Just-In-Time (JIT) compiler is employed to identify and bypass PTC blocks by selecting alternative host code sections from a database, optimizing execution by eliminating unnecessary code and adapting to the host system's architecture, thereby improving translation efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional translation methods are used to convert target code to host code, then compatibility is achieved, but execution speed deteriorates due to interpretation overhead

Engineering Contradiction:
ImprovecompatibilityVSAvoidexecution speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent applies preliminary action by pre-translating target code blocks into host code before execution using a Just-In-Time compiler. This allows the translated code to be cached and executed directly without interpretation overhead during runtime, thereby improving execution speed while maintaining compatibility through prior translation efforts.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary translation layer that converts target code blocks into host code through a Just-In-Time compiler. This intermediary mechanism enables seamless compatibility between different architectures while achieving native execution speed on the host system, resolving the speed-compatibility tradeoff.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If code translation is performed to ensure compatibility, then execution accuracy is maintained, but translation time increases due to analysis and decoding overhead

Engineering Contradiction:
Improveexecution accuracyVSAvoidtranslation time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs code translation in advance using a Just-In-Time compiler before the actual execution of the emulated program. By translating code blocks preliminarily and caching the results, the system maintains execution accuracy through complete translation while minimizing translation time during runtime by reusing previously translated code.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamic translation strategies where the Just-In-Time compiler adapts its translation behavior based on runtime conditions. Frequently executed code blocks are translated and cached for rapid execution, while less critical code may use lighter translation approaches, optimizing the balance between translation time and execution accuracy dynamically.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If dynamic code changes are supported in emulated programs, then adaptability is improved, but translation complexity increases due to runtime code modification detection

Engineering Contradiction:
Improvedynamic code supportVSAvoidtranslation system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements feedback mechanisms where the Just-In-Time compiler monitors runtime code modifications in the emulated program. When code changes are detected, the system receives feedback about the modified blocks and automatically re-translates only the affected portions, maintaining adaptability to dynamic code while managing translation complexity through targeted updates rather than full re-translation.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent divides the translation process into manageable segments by tracking and translating individual code blocks independently. This segmentation allows the system to handle dynamic code changes efficiently by identifying and re-translating only the specific modified blocks rather than the entire program, reducing the complexity burden of supporting dynamic code adaptation.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20180357149A1Emulation of target system using JIT compiler and bypassing translation of selected target code blocks
Publication Date: 2018.12.13 SONY INTERACTIVE ENTERTAINMENT LLC
  • US20180357149A1 patent drawing
  • US20180357149A1 patent drawing
  • US20180357149A1 patent drawing

AI summary

An emulator handles problematic target code blocks by evaluating target system code for problematic target code blocks and bypassing translation of such blocks, in some cases selecting alternative host code for a problematic block. Non-problematic portions of the target system code are translated into corresponding portions of host system code, which are inserted into an execution stream. Alternative host system code may also be inserted into the execution stream.