Multilevel Conversion Table Cache for Guest Instruction Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing digital computer systems face performance penalties due to significant overhead in code transformation and translation processes, particularly in just-in-time compilation and interpretation methods, which lead to delays and inefficiencies in processing and memory management.

Innovation Solution

A hardware-based acceleration method for translating guest instructions into native instructions using a two-level conversion process with hardware-accelerated units, enabling rapid conversion and execution of guest instructions as native instructions, thereby reducing overhead and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If just-in-time compilation is used to translate guest instructions to native instructions, then translation completeness is improved, but processing speed deteriorates due to significant overhead

Engineering Contradiction:
Improvetranslation completenessVSAvoidprocessing speed
Core Design Contradiction:
Manufacturing precisionVSSpeed

Solution Approach 1:

The patent divides the translation process into two distinct levels: a first level using a conversion table for rapid translation of common instructions, and a second level using just-in-time compilation for complex instructions that require partial translation. This segmentation allows the system to achieve both speed (through table lookup for simple cases) and completeness (through JIT compilation for complex cases).

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial translation by using the conversion table to handle the majority of translation needs for common instructions, and only invoking the more resource-intensive JIT compilation process when necessary for complex instructions. This partial action approach minimizes overhead while maintaining translation completeness.

Inventive Principle:
Principle #16Partial or excessive action

2Loss of energy

If interpretation mode is used to translate instructions, then overhead is reduced, but execution performance deteriorates due to poorly optimized code

Engineering Contradiction:
ImproveoverheadVSAvoidexecution performance
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The patent segments the instruction set into two categories: common instructions handled by the conversion table and complex instructions handled by JIT compilation. This segmentation enables the system to use the low-overhead interpretation approach for simple cases while reserving the higher-performance JIT approach for complex cases, thus improving overall execution performance without excessive overhead.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the translation parameter (method) dynamically based on the instruction type. For common instructions, it uses table lookup with minimal overhead; for complex instructions, it switches to JIT compilation to generate optimized code. This parameter change allows the system to adapt to different instruction requirements and achieve better overall performance.

Inventive Principle:
Principle #35Parameter changes

3Speed

If conversion tables are used for hardware-based acceleration, then translation speed is improved, but translation completeness deteriorates for complex instructions

Engineering Contradiction:
Improvetranslation speedVSAvoidtranslation completeness
Core Design Contradiction:
SpeedVSManufacturing precision

Solution Approach 1:

The patent segments the translation responsibility between two mechanisms: the conversion table handles simple, common instructions with high speed, while the JIT compilation mechanism handles complex instructions requiring complete translation. This segmentation ensures both speed (through table lookup) and completeness (through JIT for complex cases) are achieved.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (the two-level translation system) that bridges the gap between the fast but incomplete conversion table approach and the complete but slower JIT compilation approach. The system uses the conversion table as the primary intermediary for common cases and invokes JIT compilation as a secondary intermediary when the conversion table cannot fully translate an instruction.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If JIT compilation is used to create optimized translated code, then execution performance is improved, but memory management overhead increases due to allocation and relocation

Engineering Contradiction:
Improveexecution performanceVSAvoidmemory management overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies partial JIT compilation only when necessary for complex instructions, rather than compiling all instructions. This partial action reduces the total amount of memory allocation and management required, thereby reducing overhead while still achieving performance improvements for the critical complex instruction cases.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10185567B2Multilevel conversion table cache for translating guest instructions to native instructions
Publication Date: 2019.01.22 INTEL CORP
  • US10185567B2 patent drawing
  • US10185567B2 patent drawing
  • US10185567B2 patent drawing

AI summary

A method for translating instructions for a processor. The method includes accessing a guest instruction and performing a first level translation of the guest instruction using a first level conversion table. The method further includes outputting a resulting native instruction when the first level translation proceeds to completion. A second level translation of the guest instruction is performed using a second level conversion table when the first level translation does not proceed to completion, wherein the second level translation further processes the guest instruction based upon a partial translation from the first level conversion table. The resulting native instruction is output when the second level translation proceeds to completion.