Pre-decoding Circuitry with 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 pre-decoded instructions due to speculative processor state assumptions.

Innovation Solution

A data processing apparatus with pre-decoding circuitry that assumes a speculative processor state to generate pre-decoded instructions, storing an indication of this state in the cache, and only executing instructions if the current processor state matches, allowing for detection of corrupted instructions and re-fetching of correctly pre-decoded ones, while using an n-way set associative cache to manage multiple instruction sets and merging valid/invalid information with speculative processor state for efficient storage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If pre-decoding mechanisms are employed to improve performance, then instruction decoding time is reduced, but power consumption is not significantly alleviated and corrupted instructions may be generated

Engineering Contradiction:
Improveinstruction decoding timeVSAvoidinstruction correctness
Core Design Contradiction:
Loss of timeVSReliability

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 decoding stage to work more efficiently. The pre-decoder generates pre-decoded instructions that are stored in the cache, reducing the decoding time required during execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a validation mechanism that checks whether pre-decoded instructions are correct before execution. The execution pipeline includes logic to detect corrupted instructions and trigger re-fetching from the cache or memory. This feedback loop ensures that incorrect pre-decoding results are caught and corrected, maintaining instruction reliability.

Inventive Principle:
Principle #23Feedback

2Productivity

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

Engineering Contradiction:
Improvedecoding speedVSAvoidinstruction accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The pre-decoder assumes a speculative processor state (such as ARM or Thumb mode) to perform decoding in advance. This allows the decoder to work faster without waiting for definitive state information. The pre-decoded instructions are stored in the instruction cache with an associated validity indicator.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system includes validation logic that verifies whether the pre-decoded instructions are correct for the actual processor state. If the speculative state assumption was wrong, the validation detects the corruption and triggers a re-fetch of the instructions. This feedback mechanism ensures that speed gains from speculative pre-decoding do not compromise instruction accuracy.

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If multiple separate decoders are provided for multiple instruction sets, then support for multiple instruction sets is achieved, but power consumption increases significantly

Engineering Contradiction:
Improvemultiple instruction set supportVSAvoiddecoder power consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The patent employs a single universal decoder that can decode instructions from multiple instruction sets (such as ARM and Thumb). The decoder is designed to handle different instruction formats and sets, eliminating the need for separate dedicated decoders for each instruction set. This multi-functional approach significantly reduces the number of decoder circuits required.

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

Solution Approach 2:

The patent merges the decoding functionality for multiple instruction sets into a single unified decoding pipeline. Instead of having separate parallel decoders for ARM and Thumb instructions, the system combines these functions into one decoder that can dynamically adapt to decode different instruction types. This consolidation reduces hardware complexity and power consumption while maintaining support for multiple instruction sets.

Inventive Principle:
Principle #5Merging (Combining)

4Productivity

If instructions are pre-decoded and stored in wider format in cache, then decoding performance is improved, but cache storage requirements increase

Engineering Contradiction:
Improveinstruction execution performanceVSAvoidcache memory size
Core Design Contradiction:
ProductivityVSVolume of stationary object

Solution Approach 1:

The pre-decoder prepares instructions in advance and stores them in the instruction cache in a pre-decoded format. This preliminary processing allows the instructions to be ready for faster execution without requiring full decoding at the time of use. The pre-decoded instructions include additional information that speeds up the execution pipeline.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the format parameter of instructions stored in the cache. Instead of storing raw instructions, the system stores pre-decoded instructions with additional fields such as validity indicators and pre-computed decoding results. This parameter change enables faster access and execution while the validation mechanism ensures correctness.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7925866B2Data processing apparatus and method for handling instructions to be executed by processing circuitry
Publication Date: 2011.04.12 ARM LTD
  • US7925866B2 patent drawing
  • US7925866B2 patent drawing
  • US7925866B2 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.