JIT Emulation Engine Speculative Execution Simulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current JIT emulation engines lack the ability to model and simulate speculative execution, as they cannot execute instructions on speculation operation paths and accurately reflect the impact of speculative execution on CPU internal states such as branch prediction tables and caches.

Innovation Solution

A simulation method and system that includes an execution model and a processor model, which simulate branch prediction information, control a physical machine to execute branch instructions, and record and enforce speculation operations based on prediction mismatches, allowing the JIT emulation engine to model speculative execution by switching between correct and speculation operation paths.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If JIT emulation engine is used to provide fast emulation speed, then emulation speed is improved, but the ability to model speculative execution is lost

Engineering Contradiction:
Improveemulation speedVSAvoidability to model speculative execution
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The system divides the emulation functionality into two separate modules: a JIT emulation engine responsible for fast instruction execution, and a processor model responsible for simulating CPU internal states and speculative execution. This segmentation allows each module to specialize in its strength while working together through defined interfaces.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The processor model acts as an intermediary between the JIT emulation engine and the speculative execution modeling requirements. It receives execution results from the JIT engine, simulates speculative execution paths, and provides feedback to guide the emulation process, thereby enabling speculative execution modeling without compromising the speed of the JIT engine.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If processor model simulates CPU internal details, then modeling precision is improved, but device complexity increases

Engineering Contradiction:
Improvemodeling precisionVSAvoiddevice complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The processor model serves as an intermediary layer that handles the complexity of CPU internal state simulation. It maintains detailed models of branch prediction tables, caches, and other internal structures, while presenting a simplified interface to the JIT emulation engine through standard status registers and control signals.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system creates virtual copies of CPU internal structures (branch prediction tables, cache hierarchies, execution pipelines) within the processor model. These copies allow accurate simulation of CPU behavior and speculative execution without requiring physical hardware, thereby maintaining high modeling precision while avoiding the complexity and cost of building actual test hardware.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11442757B2Simulation method and simulation system
Publication Date: 2022.09.13 VIA ALLIANCE SEMICON CO LTD
  • US11442757B2 patent drawing
  • US11442757B2 patent drawing
  • US11442757B2 patent drawing

AI summary

A simulation method and a simulation system are provided. The simulation system may be divided into an execution model and a processor model based on a JIT emulation engine. The execution model can call the JIT emulation engine to execute instructions, and obtain influence of instructions on a processor architectural status. The processor model may simulate an internal process of a target processor and determine whether to start/end a speculation. The execution model and the processor model may interact through a specific protocol. After the speculation is started, the simulation method may store an application running scene when the speculation is started, and redirect influence of speculation instructions on a memory to a memory snapshot. After the speculation is ended, the simulation method may also restore the application running scene to a status before the speculation is started, and cancel influence of the speculation instructions on the memory.