Emulator Hardware Accelerator Efficiency Assessment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software code emulation techniques are inefficient due to resource-consuming initialization of hardware accelerators, which can be counterproductive when executing only a few instructions before returning to the emulator, leading to time delays and reduced effectiveness in detecting malicious code.

Innovation Solution

A method and system that utilize a virtual execution environment for dynamic binary translation of a first portion of software code, with a hardware accelerator module initializing the computing hardware to directly execute a second portion of the code without emulation, and an efficiency assessment module determining the suitability of this execution based on a comparison of processor cycles, allowing selective invocation of the accelerator for efficient execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If hardware accelerator is initialized to directly execute code portions, then execution speed is improved, but initialization resource consumption increases

Engineering Contradiction:
Improveexecution speedVSAvoidinitialization resource consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The system dynamically changes the operational parameters of the hardware accelerator by adjusting the threshold for code portion selection and the frequency of efficiency measurements. When code portions are short or initialization overhead is high, the threshold is raised to prevent accelerator invocation, thereby reducing resource consumption while maintaining acceptable execution speed for other code portions.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system implements dynamic adaptation by continuously measuring execution efficiency and adjusting accelerator invocation decisions in real-time. The efficiency measurement module monitors whether direct execution actually improves performance for each code portion, and the system dynamically modifies its behavior based on these measurements, making the accelerator usage pattern adaptive rather than static.

Inventive Principle:
Principle #15Dynamics

2Loss of time

If hardware accelerator is used for code execution, then emulation time is reduced, but initialization time increases

Engineering Contradiction:
Improveemulation timeVSAvoidinitialization time
Core Design Contradiction:
Loss of timeVSDuration of action of moving object

Solution Approach 1:

The system applies different execution strategies to different parts of the codebase by selectively identifying specific code portions that benefit from direct execution. Rather than uniformly applying the hardware accelerator to all code, the system analyzes individual code portions and applies acceleration only where it provides net time savings, thereby reducing overall emulation time without incurring unnecessary initialization overhead for every code segment.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system performs partial acceleration by selecting only certain code portions for direct execution rather than accelerating the entire codebase. This selective approach ensures that the initialization time investment is justified by sufficient time savings in the accelerated portions, while avoiding the excessive initialization cost that would result from accelerating all code uniformly.

Inventive Principle:
Principle #16Partial or excessive action

3Measurement precision

If dynamic binary translation is used for code emulation, then code execution accuracy is improved, but processing overhead increases

Engineering Contradiction:
Improvecode execution accuracyVSAvoidprocessing overhead
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system segments the codebase into distinct code portions and applies different execution methods to each segment. Some portions undergo dynamic binary translation for accurate emulation, while other portions are executed directly through hardware acceleration. This segmentation allows the system to maintain execution accuracy where needed while reducing processing overhead through selective direct execution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The efficiency measurement module acts as an intermediary that decides whether to apply dynamic binary translation or direct execution to each code portion. By measuring and comparing execution efficiency, this intermediary component determines the optimal path, reducing unnecessary translation overhead while maintaining accuracy for code portions where translation provides significant benefit.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2750037B1System and method for improving the efficiency of application emulation acceleration
Publication Date: 2017.02.01 AO KASPERSKY LAB
  • EP2750037B1 patent drawing
  • EP2750037B1 patent drawing
  • EP2750037B1 patent drawing

AI summary

An improved emulator for analyzing software code, and associated method. The emulator includes a virtual execution environment in which a series of virtual processing states are represented during emulation of a first portion of the software code, and a hardware accelerator that performs an initialization of the computing hardware to directly execute a second portion of the software code under investigation without emulation thereof in the virtual execution environment. An efficiency assessment module determines a measure of efficiency of performing the executing of the second portion of the software code under investigation without emulation thereof, and an acceleration decision module performs selection of the second portion of the software code under investigation to be directly executed by the hardware accelerator module based on the determined measure of efficiency.