RISC Processor Emulating X86 Virtual Machine

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current virtual machines face significant overhead and low execution efficiency due to the substantial differences between X86 and RISC processor architectures, particularly in handling instructions related to flag bits, floating-point operations, and memory access, making it difficult to achieve cross-platform compatibility.

Innovation Solution

A RISC processor apparatus and method that supports an X86 virtual machine by incorporating an instruction module, decoder, look-up table, fixed-point and floating-point operation components, and specific registers to emulate X86 instructions, enabling efficient translation and execution of X86 instructions on a RISC processor.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If existing virtual machines are used to emulate X86 instructions on RISC processors, then cross-platform compatibility is achieved, but execution efficiency is too low and overhead is too high

Engineering Contradiction:
Improvecross-platform compatibilityVSAvoidexecution efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The virtual machine instruction set is segmented into fixed-point operation instructions and floating-point operation instructions. The decoder identifies and routes these instruction types to appropriate execution components (fixed-point operation component or floating-point operation component), enabling efficient parallel processing while maintaining X86 compatibility on RISC architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A look-up table is introduced as an intermediary mechanism to store and quickly retrieve jump address translations between X86 and MIPS architectures. This intermediary structure accelerates the translation process by eliminating the need for complex real-time calculation, thereby improving execution efficiency while maintaining compatibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If binary instruction translation is performed between X86 and RISC architectures, then cross-platform compatibility is achieved, but translation efficiency is low due to architectural differences

Engineering Contradiction:
Improveinstruction set compatibilityVSAvoidtranslation time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

Jump address translations between X86 and MIPS architectures are pre-calculated and stored in a look-up table during system initialization or compilation. When execution occurs, the processor simply retrieves pre-computed translations from the table, eliminating time-consuming real-time translation calculations and significantly reducing translation time.

Inventive Principle:
Principle #10Preliminary action

3Speed

If RISC processor architecture is used, then execution speed is improved, but compatibility with X86 application software is lost

Engineering Contradiction:
Improveexecution speedVSAvoidsoftware compatibility
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The RISC processor is designed with multi-functional capabilities by incorporating a decoder that can identify and execute both native RISC instructions and translated X86 virtual machine instructions. The processor universally handles both instruction types through dedicated components (fixed-point operation component, floating-point operation component), enabling it to run X86 application software while maintaining its inherent high execution speed.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP2267598B1RISC processor apparatus and method for supporting x86 virtual machine
Publication Date: 2018.07.18 LOONGSON TECH CORP
  • EP2267598B1 patent drawingFigure 1
  • EP2267598B1 patent drawingFigure 2
  • EP2267598B1 patent drawing

AI summary

A RISC processor apparatus and method for supporting an X86 virtual machine. The RISC processor includes: an instruction module for storing a virtual machine instruction set that supports the X86 virtual machine; a decoder for, during the decoding of an instruction of the virtual machine instruction set, distinguishing the virtual machine instruction set mode of the instruction, decoding the instruction according to the distinguished virtual machine instruction set mode, and outputting the decoded instruction to a fixed-point operation component or a floating-point operation component according to the distinguished virtual machine instruction set mode; the fixed-point operation component for processing the fixed-point instruction of the virtual machine instruction set according to the output of the decoder and outputting the execution result; the floating-point operation component for processing the floating-point instruction of the virtual machine instruction set according to the output of the decoder and outputting the execution result.