Binary Instruction Pattern Matching for Real-Time Code Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for translating binary code from one instruction set architecture to another are inefficient, particularly in real-time scenarios, as they often rely on resource-intensive operator-by-operator translation without considering native operators that could execute code more efficiently.

Innovation Solution

A method and system that parse non-native binary code to detect elements and operators, apply a pattern matching algorithm to find combinations of operators that correspond to native operators, and generate a new code stream executable on the target system, utilizing a parser module and pattern matching module within an emulation module.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If binary translation is used to execute non-native code in real-time, then real-time execution capability is achieved, but execution efficiency deteriorates due to resource intensity and lack of optimization

Engineering Contradiction:
Improvereal-time execution capabilityVSAvoidexecution efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The system performs preliminary analysis of the non-native binary code stream to identify operators and their patterns before execution. By pre-processing the code to detect operator sequences and their characteristics, the system prepares translation mappings in advance, enabling efficient real-time execution without sacrificing optimization opportunities.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary translation layer that maps non-native operators to equivalent native operators. This intermediary mechanism translates the non-native binary code stream into native instructions that the target processor can execute efficiently, bridging the gap between incompatible instruction sets while maintaining execution efficiency through optimized translation rules.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If source code recompilation is used, then execution efficiency is improved by exploiting instruction set structures, but real-time capability is lost and source code availability is required

Engineering Contradiction:
Improveexecution efficiencyVSAvoidreal-time execution capability
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system extracts operator information directly from the compiled binary code stream without requiring access to the original source code. By parsing and analyzing the binary instructions to identify operator patterns and sequences, the system obtains sufficient information for efficient translation while maintaining real-time execution capability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent creates a virtual representation of the source code structure by analyzing the binary code stream. Through pattern matching and operator detection, the system reconstructs the logical structure of the original program in terms of native operators, enabling efficient execution without actual source code recompilation.

Inventive Principle:
Principle #26Copying

3Device complexity

If operator-by-operator translation is used, then translation simplicity is maintained, but execution efficiency deteriorates due to inability to exploit target system operators for optimal execution

Engineering Contradiction:
Improvetranslation complexityVSAvoidexecution efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system merges multiple consecutive non-native operators into equivalent native operator sequences. By detecting patterns where several non-native operators perform a function that can be achieved by one or more native operators, the system combines them into optimized translations, reducing the total number of instructions and improving execution efficiency.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The translation process dynamically adapts to the specific patterns found in the non-native code stream. Rather than using fixed one-to-one translation rules, the system adjusts its translation strategy based on detected operator patterns, sequence contexts, and target architecture capabilities, enabling optimal execution efficiency for different code patterns.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8694973B2Abstracting computational instructions to improve performance
Publication Date: 2014.04.08 UNISYS CORP
  • US8694973B2 patent drawing
  • US8694973B2 patent drawing
  • US8694973B2 patent drawing

AI summary

Methods and systems for executing a code stream of non-native binary code on a computing system are disclosed. One method includes parsing the code stream to detect a plurality of elements including one or more branch destinations, and traversing the code stream to detect a plurality of non-native operators. The method also includes executing a pattern matching algorithm against the plurality of non-native operators to find combinations of two or more non-native operators that do not span across a detected branch destination and that correspond to one or more target operators executable by the computing system. The method further includes generating a second code stream executable on the computing system including the one or more target operators.