Conditional Load Instruction Translation in Out-of-Order Microprocessors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing device manufacturers and users face challenges in running both x86 and ARM architecture programs due to the dominance of one architecture over the other, leading to wasted investments and the need for devices that can support multiple instruction sets.

Innovation Solution

A microprocessor with an instruction set architecture that includes a conditional load instruction, translated into microinstructions and executed through an out-of-order execution pipeline, allowing it to run both x86 and ARM architecture programs by efficiently handling conditional instructions and updating registers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a microprocessor supports multiple instruction sets (x86 and ARM), then adaptability is improved, but device complexity increases

Engineering Contradiction:
Improvesupport for multiple instruction setsVSAvoidprocessor architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The microprocessor is designed to execute multiple instruction sets (x86 and ARM) using a unified out-of-order execution pipeline. The pipeline includes multiple execution units that can process different instruction types, allowing a single processor to serve multiple architectural purposes without requiring separate dedicated pipelines for each architecture.

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

Solution Approach 2:

The patent introduces an instruction translator as an intermediary component that converts x86 and ARM instructions into a common internal representation for the out-of-order execution pipeline. This translator acts as a mediator between the diverse instruction sets and the unified execution architecture, enabling compatibility without direct complexity in the execution units themselves.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If conditional load instructions are implemented with out-of-order execution, then execution speed is improved, but instruction translation complexity increases

Engineering Contradiction:
Improveexecution speedVSAvoidinstruction translation complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The conditional load instruction is segmented into multiple simpler microinstructions that can be processed independently through the out-of-order execution pipeline. This segmentation allows the complex conditional logic to be broken down into manageable steps that fit within the existing execution unit architecture, reducing the burden on the instruction translator.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The instruction translator performs preliminary translation of conditional load instructions into microinstructions before they enter the execution pipeline. By preparing the instruction sequence in advance and breaking it down into executable microsteps, the system reduces runtime translation complexity while maintaining high execution speed through out-of-order processing.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If software is recompiled for different architectures, then performance optimization is improved, but development time increases

Engineering Contradiction:
Improvesoftware performanceVSAvoidrecompilation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent enables software compatibility through instruction set translation rather than recompilation. The instruction translator creates a functional copy of the original software behavior by translating x86 or ARM instructions into equivalents that the out-of-order execution pipeline can execute, eliminating the need for time-consuming recompilation while maintaining performance through optimized execution.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9378019B2Conditional load instructions in an out-of-order execution microprocessor
Publication Date: 2016.06.28 VIA TECH INC
  • US9378019B2 patent drawing
  • US9378019B2 patent drawing
  • US9378019B2 patent drawing

AI summary

A microprocessor instruction translator translates a conditional load instruction into at least two microinstructions. An out-of-order execution pipeline executes the microinstructions. To execute a first microinstruction, an execution unit receives source operands from the source registers of a register file and responsively generates a first result using the source operands. To execute a second the microinstruction, an execution unit receives a previous value of the destination register and the first result and responsively reads data from a memory location specified by the first result and provides a second result that is the data if a condition is satisfied and that is the previous destination register value if not. The previous value of the destination register comprises a result produced by execution of a microinstruction that is the most recent in-order previous writer of the destination register with respect to the second microinstruction.