Speculative Instruction Execution with Flush Circuitry

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In data processing apparatuses, waiting for side effects from certain instructions to be resolved can lead to time-consuming processing stalls, as determining the extent of these side effects can be time-consuming and may require executing instructions in a specific order, which hinders efficiency.

Innovation Solution

A data processing apparatus with fetch, execution, and flush circuitry that allows for out-of-order execution of instructions, including status updating instructions, where the execution circuitry updates the status value and flushes subsequent instructions if the status storage is updated, enabling speculative execution while maintaining data integrity through a rewind mechanism.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If instructions are executed in-order to ensure data integrity when status updates occur, then reliability is maintained, but processing speed decreases due to stalls

Engineering Contradiction:
Improvedata integrityVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent applies preliminary action by speculatively executing instructions before knowing whether a status update will occur. The execution circuitry proceeds with out-of-order execution assuming no status change, and only if a status update is detected does the system need to recover, thus performing the useful action (instruction execution) in advance rather than waiting

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by maintaining a speculative copy of the instruction stream that can be executed independently of the original in-order sequence. The flush circuitry creates a mechanism to discard the speculative execution results and restore the original state, allowing the system to try out-of-order execution without permanently compromising data integrity

Inventive Principle:
Principle #26Copying

2Reliability

If the system waits for status updates before executing subsequent instructions, then data integrity is maintained, but productivity decreases due to processing stalls

Engineering Contradiction:
Improvedata integrityVSAvoidproductivity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary speculative execution of instructions that follow a status updating instruction, rather than waiting for the status update to complete. This allows productivity to continue while maintaining the ability to recover if the status does change

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback by monitoring the status register for updates and using this information to trigger the flush circuitry. The feedback mechanism detects when a status change occurs and responds by flushing the speculative instructions, thus maintaining data integrity while allowing speculative execution to proceed when no status change occurs

Inventive Principle:
Principle #23Feedback

3Speed

If the system allows out-of-order execution to improve efficiency, then processing speed increases, but complexity increases due to flush mechanism requirements

Engineering Contradiction:
Improveprocessing speedVSAvoiddevice complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent segments the execution system into distinct components: the normal in-order execution path, the speculative out-of-order execution path, and the flush recovery mechanism. This segmentation allows each component to be relatively simple while the combination provides advanced functionality

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The flush circuitry acts as an intermediary between the speculative execution circuitry and the commit queue. It mediates by selectively discarding speculative instructions when needed, providing a simple interface that hides the complexity of out-of-order execution management from the rest of the system

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11663014B2Speculatively executing instructions that follow a status updating instruction
Publication Date: 2023.05.30 ARM LTD
  • US11663014B2 patent drawing
  • US11663014B2 patent drawing
  • US11663014B2 patent drawing

AI summary

A data processing apparatus is provided that comprises fetch circuitry to fetch an instruction stream comprising a plurality of instructions, including a status updating instruction, from storage circuitry. Status storage circuitry stores a status value. Execution circuitry executes the instructions, wherein at least some of the instructions are executed in an order other than in the instruction stream. For the status updating instruction, the execution circuitry is adapted to update the status value based on execution of the status updating instruction. Flush circuitry flushes, when the status storage circuitry is updated, following instructions that appear after the status updating instruction in the instruction stream.