Pre-decoding Circuitry Speculative State Validation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In data processing apparatuses, significant power is consumed in decoding instructions, especially when handling multiple instruction sets, as existing pre-decoding mechanisms do not effectively alleviate the power cost associated with later decoder circuits and can result in corrupted instructions due to speculative processor state assumptions.

Innovation Solution

A data processing apparatus that includes pre-decoding circuitry assuming a speculative processor state and stores this state with pre-decoded instructions in a cache, allowing only matching processor states to execute instructions, thereby detecting and correcting corrupted instructions and reducing power consumption by avoiding unnecessary decoding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If pre-decoding mechanisms are employed to improve performance, then instruction execution speed is improved, but power consumption is not significantly reduced and instruction corruption may occur

Engineering Contradiction:
Improveinstruction execution speedVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent performs pre-decoding of instructions before they are stored in the instruction cache. This preliminary action prepares the instructions in advance, allowing the main decoder to work more efficiently or be simplified, thereby reducing overall power consumption while maintaining or improving execution speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements validation logic that checks whether pre-decoded instructions are correct before execution. This feedback mechanism detects and corrects corrupted instructions, ensuring reliability while allowing the power-efficient pre-decoding approach to be used.

Inventive Principle:
Principle #23Feedback

2Productivity

If pre-decoding is performed assuming a speculative processor state, then decoding performance is improved, but instruction corruption occurs when the speculative state is incorrect

Engineering Contradiction:
Improvedecoding performanceVSAvoidinstruction correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent performs pre-decoding in advance assuming a speculative processor state, which improves decoding performance. The speculative approach allows the pre-decoder to work without waiting for the actual processor state, maintaining high throughput.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent adds validation logic that verifies whether the pre-decoded instructions match the actual processor state before execution. This feedback mechanism detects when speculative pre-decoding produced incorrect results and prevents execution of corrupted instructions, thereby maintaining reliability.

Inventive Principle:
Principle #23Feedback

Solution Approach 3:

The patent changes the processor state parameter used for pre-decoding from a fixed speculative value to a dynamically validated value that matches the actual processor state at execution time. This parameter adjustment ensures correctness while preserving the performance benefits of pre-decoding.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7747839B2Data processing apparatus and method for handling instructions to be executed by processing circuitry
Publication Date: 2010.06.29 ARM LTD
  • US7747839B2 patent drawing
  • US7747839B2 patent drawing
  • US7747839B2 patent drawing

AI summary

A data processing apparatus and method are provided for handling instructions to be executed by processing circuitry. The processing circuitry has a plurality of processor states, each processor state having a different instruction set associated therewith. Pre-decoding circuitry receives the instructions fetched from the memory and performs a pre-decoding operation to generate corresponding pre-decoded instructions, with those pre-decoded instructions then being stored in a cache for access by the processing circuitry. The pre-decoding circuitry performs the pre-decoding operation assuming a speculative processor state, and the cache is arranged to store an indication of the speculative processor state in association with the pre-decoded instructions. The processing circuitry is then arranged only to execute an instruction in the sequence using the corresponding pre-decoded instruction from the cache if a current processor state of the processing circuitry matches the indication of the speculative processor state stored in the cache for that instruction. This provides a simple and effective mechanism for detecting instructions that have been corrupted by the pre-decoding operation due to an incorrect assumption of processor state.