Emulator Timing Correction for Time-Sensitive Instructions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Emulation systems face challenges in maintaining the correct timing between executions of time-sensitive instructions, as they often run on faster host computing devices than the native computing environment, leading to discrepancies in execution speed.

Innovation Solution

The system identifies time-sensitive instructions and initiates instruction sequence windows, calculating and inserting aggregated delays based on expected times to ensure that the execution rate matches the native environment, using a timing engine and repository to manage these delays.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the emulator runs on a faster host computing device, then the overall execution speed is improved, but the timing accuracy of time-sensitive instructions deteriorates

Engineering Contradiction:
Improveexecution speedVSAvoidtiming accuracy
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The code segment is segmented into time-sensitive instructions and time-neutral instructions. The emulator identifies TS instructions and applies special timing handling only to those specific segments, while allowing other code to execute at full host speed. This segmentation resolves the contradiction by applying precision only where needed while maintaining overall productivity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different quality levels of execution are applied to different parts of the code. Time-sensitive instructions receive enhanced timing accuracy through instruction sequence windows and delay insertion, while time-neutral instructions execute at standard emulation speed. This local differentiation allows the system to achieve both speed and precision without compromising either globally.

Inventive Principle:
Principle #3Local quality

2Manufacturing precision

If the emulator inserts delays to maintain timing accuracy, then the timing precision of time-sensitive instructions is improved, but the overall execution time increases

Engineering Contradiction:
Improvetiming precisionVSAvoidexecution time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The emulator applies timing correction only partially - specifically to time-sensitive instructions identified through pattern recognition, rather than applying uniform delays to all instructions. This partial action minimizes the total time loss while maintaining precision where it matters most, avoiding excessive delays in code sections that do not require timing accuracy.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

Instead of using simple mechanical delays (fixed time pauses), the system employs a more sophisticated timing mechanism using instruction sequence windows and dynamic delay calculation. This substitution allows for more precise and efficient timing correction that reduces overall execution time compared to naive delay approaches.

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

3Manufacturing precision

If the emulator modifies the emulated code to correct timing, then the timing accuracy is improved, but the code complexity increases

Engineering Contradiction:
Improvetiming accuracyVSAvoidcode complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The emulator introduces an intermediary timing management layer between the host code and the emulated code. This intermediary layer, implemented through instruction sequence windows and delay insertion mechanisms, handles timing corrections without modifying the original emulated code structure. This approach maintains timing accuracy while avoiding the complexity of code modification.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Instead of modifying the original code, the system creates a copy of the execution flow with additional timing control elements. The emulated code remains unchanged, while a parallel timing management system tracks and corrects execution timing. This copying approach maintains code simplicity while achieving timing accuracy.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9256451B2Emulation time correction
Publication Date: 2016.02.09 ORACLE INT CORP
  • US9256451B2 patent drawing
  • US9256451B2 patent drawing
  • US9256451B2 patent drawing

AI summary

A method for time correction during an emulation of a native computing environment (NCE), including: obtaining, by an emulator, a code segment for execution within the NCE; identifying, during an execution of the code segment within the emulation, a first instance of a time sensitive (TS) instruction; initiating a first instruction sequence window (ISW) in response to identifying the first instance of the TS instruction; identifying, during the execution of the code segment within the emulation, a second instance of the TS instruction after initiating the first ISW; obtaining, in response to identifying the second instance during the first ISW, an expected time between execution of the first instance and the second instance of the TS instruction in the NCE; and inserting an aggregated delay based on the expected time during the execution of the code segment within the emulation.