Conditional Store Instructions 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 ×86 and ARM architecture programs due to the dominance of one architecture over the other, leading to wasted investments and resource inefficiencies, as existing solutions like software translators may not provide sufficient performance for many users.

Innovation Solution

A microprocessor with an instruction set architecture that defines a conditional store instruction, including a store queue and register file, translates this instruction into microinstructions for an out-of-order execution pipeline, allowing efficient execution based on condition flags, enabling the microprocessor to run both ×86 and ARM architecture programs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software translators are used to run both ×86 and ARM architecture programs, then architectural versatility is improved, but execution performance deteriorates

Engineering Contradiction:
Improvearchitectural versatilityVSAvoidexecution performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The microprocessor implements a unified execution pipeline that can execute instructions from multiple instruction set architectures (×86 and ARM) natively, eliminating the need for separate software translators. The conditional store instruction mechanism enables the same hardware to handle different architectural requirements efficiently, achieving both versatility and high performance.

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

Solution Approach 2:

The patent replaces software-based translation mechanisms with a hardware-level solution. By implementing conditional store instructions directly in the instruction set architecture and using hardware condition flags (NZCV) to control store operations, the system eliminates the need for software translators and achieves native execution performance for multiple architectures.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Productivity

If conditional store instructions are implemented with hardware support, then execution speed is improved, but device complexity increases

Engineering Contradiction:
Improveexecution speedVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The conditional store instruction merges the store operation with condition evaluation in a single instruction. The hardware condition flags (NZCV) are already present in the processor architecture, so the patent integrates the conditional logic into the existing execution pipeline rather than adding separate condition evaluation hardware, thereby minimizing complexity increase.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The execution pipeline automatically uses the hardware condition flags (NZCV) to determine whether to execute the store operation without requiring additional control logic or complex decision-making circuits. The condition flags themselves serve as the control signal, simplifying the implementation.

Inventive Principle:
Principle #25Self-service

3Productivity

If out-of-order execution is used for conditional instructions, then productivity is improved, but reliability concerns arise

Engineering Contradiction:
ImproveproductivityVSAvoidreliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent calculates the effective address for the conditional store instruction before the actual store operation. By preparing the address calculation in advance using the base register and offset, and validating it through the store queue mechanism, the system ensures correct memory location access while maintaining out-of-order execution benefits.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The execution pipeline uses the hardware condition flags (NZCV) as feedback to control whether the store operation should execute. This feedback mechanism ensures that only appropriate store operations are executed, maintaining program correctness and reliability while allowing out-of-order execution to proceed.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9645822B2Conditional store instructions in an out-of-order execution microprocessor
Publication Date: 2017.05.09 VIA TECH INC
  • US9645822B2 patent drawing
  • US9645822B2 patent drawing
  • US9645822B2 patent drawing

AI summary

An instruction translator translates a conditional store instruction (specifying data register, base register, and offset register of the register file) into at least two microinstructions. An out-of-order execution pipeline executes the microinstructions. To execute a first microinstruction, an execution unit receives a base value and an offset from the register file and generates a first result as a function of the base value and offset. The first result specifies the memory location address. To execute a second microinstruction, an execution unit receives the first result and writes the first result to an allocated entry in the store queue if the condition flags satisfy the condition (the store queue subsequently writes the data to the memory location specified by the address), and otherwise kills the allocated store queue entry so that the store queue does not write the data to the memory location specified by the address.