Translation Block Invalidation Prehints in Emulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Emulation of a target computer platform on a host system faces inefficiencies due to the need to retranslate entire blocks of code when only a few sections are modified, leading to wasted time and processor resources.

Innovation Solution

The use of native target system instructions as pre-hints to invalidate or potentially invalidate blocks of translated code, allowing for immediate retranslation of modified sections and optimizing the process by checking for code modifications using checksums and event check instructions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If entire blocks of code are retranslated when modifications are detected, then code correctness is ensured, but processor resources and time are wasted

Engineering Contradiction:
Improvecode correctnessVSAvoidretranslation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The code is divided into smaller translation blocks rather than translating entire blocks. When a modification is detected in one block, only that specific block is retranslated, not the entire codebase. This segmentation approach maintains correctness for modified sections while avoiding unnecessary retranslation of unchanged sections, thereby improving overall retranslation efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by tracking modification events and preparing to retranslate only affected blocks. Event check instructions are inserted to detect modifications before they affect execution, allowing the system to proactively retranslate only the necessary blocks rather than reacting by retranslating everything after a crash or error.

Inventive Principle:
Principle #10Preliminary action

2Speed

If code modification detection is performed frequently, then execution speed is improved by avoiding unnecessary retranslation, but processor resources are consumed

Engineering Contradiction:
Improveexecution speedVSAvoidprocessor resources
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The emulated system performs self-service by generating its own modification event notifications. When code is modified in the target system, the modification generates an event that automatically triggers the emulator to retranslate only the affected block. This eliminates the need for continuous external monitoring while maintaining fast execution by avoiding unnecessary retranslation of unchanged code.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system implements feedback mechanisms through event check instructions that monitor for code modifications. When a modification event is detected, the system receives feedback and responds by retranslating only the affected block. This feedback loop enables the system to adapt to code changes efficiently without consuming excessive processor resources for continuous analysis of unchanged code.

Inventive Principle:
Principle #23Feedback

3Device complexity

If translation blocks are invalidated without pre-hints, then implementation is simpler, but unnecessary retranslation occurs reducing productivity

Engineering Contradiction:
Improveimplementation complexityVSAvoidretranslation productivity
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system inserts pre-hint instructions into the code before execution. These pre-hint instructions act as advance notifications that tell the emulator which blocks may need retranslation. By performing this preliminary action during the translation phase rather than during execution, the system achieves finer-grained control over retranslation without significantly increasing implementation complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The pre-hint instructions serve as an intermediary mechanism between the code execution and the retranslation process. Rather than directly monitoring for modifications or retranslating everything, the pre-hints act as mediators that carry information about potential modifications to the emulator, enabling efficient block-level retranslation decisions.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8131535B2Translation block invalidation prehints in emulation of a target system on a host system
Publication Date: 2012.03.06 SONY INTERACTIVE ENTERTAINMENT LLC
  • US8131535B2 patent drawing
  • US8131535B2 patent drawing
  • US8131535B2 patent drawing

AI summary

In emulation of a target system on a host system one or more blocks of target system code may be translated with the host system to produce one or more corresponding blocks of translated code. Translating the target system code may include linking two or more blocks of translated code together to form a chain such that a look-up in a first translated block in the chain will directly branch to a second translated block. The target system code may be analyzed for the presence of one or more native target system instructions indicating modification of the target system code during execution. If such native target system instructions are present some or all of the blocks of translated code may be marked potentially invalid. The one or more blocks marked as potentially invalid may be re-translated and one or more instructions in the blocks of translated code may be overridden without undoing the chain.