Pre-decoding Circuitry for Multi-Instruction Set Power Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In data processing apparatuses, significant power is consumed in decoding instructions prior to execution, especially in systems supporting multiple instruction sets, due to the need for separate decoders and the overhead of pre-decoding mechanisms, which increases complexity, cost, and power consumption.

Innovation Solution

The implementation of pre-decoding circuitry that maps instructions from different instruction sets into a shared format, allowing a shared portion of the decoding circuitry to generate control signals, thereby reducing the overhead and energy consumption by amortizing the energy expended in mapping across multiple uses of pre-decoded instructions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If separate decoders are provided for each instruction set in multi-instruction-set processing circuitry, then each instruction set can be decoded independently, but power consumption increases significantly

Engineering Contradiction:
Improvesupport for multiple instruction setsVSAvoidpower consumption of decoders
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The patent implements a universal decoder that can decode multiple instruction sets (ARM, Thumb, MIPS, etc.) using a single decoding unit. The decoder receives instruction bytes and determines the instruction set type, then routes to appropriate decoding logic, eliminating the need for separate decoders for each instruction set and significantly reducing power consumption while maintaining support for multiple instruction sets

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

2Productivity

If pre-decoding mechanisms are employed to improve performance, then instruction decoding time is reduced, but device complexity and overhead increase

Engineering Contradiction:
Improveinstruction decoding speedVSAvoidcomplexity of pre-decoding circuitry
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements pre-decoding that performs preliminary analysis of instruction bytes to identify instruction set type, opcode, and basic instruction characteristics before full decoding. This preliminary action prepares the instruction data in advance, reducing the complexity and time of the main decoding stage while avoiding the need for complex separate pre-decoding hardware for each instruction set

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If multiple separate decoders are provided for different instruction sets, then decoding accuracy is maintained, but the gate count and cost of decoding circuitry increase

Engineering Contradiction:
Improveinstruction decoding accuracyVSAvoidgate count of decoding circuitry
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent implements a universal decoder that maintains decoding accuracy for multiple instruction sets (ARM, Thumb, MIPS, etc.) through a single decoding unit. The decoder identifies the instruction set type and uses appropriate decoding tables and logic to accurately decode each instruction, eliminating the need for multiple separate decoders and significantly reducing gate count while preserving decoding precision

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

Data Source

PatentUS8347067B2Instruction pre-decoding of multiple instruction sets
Publication Date: 2013.01.01 ARM LTD
  • US8347067B2 patent drawing
  • US8347067B2 patent drawing
  • US8347067B2 patent drawing

AI summary

A data processing apparatus is provided with pre-decoding circuitry 10 serving to generate pre-decoded instructions which are stored within an instruction cache 20. The pre-decoded instructions from the instruction cache 20 are read by decoding circuitry 45, 50, 46 and used to form control signals for controlling processing operations corresponding to the pre-decoded instructions. The program instructions originally fetched can belong to respective ones of a plurality of instruction sets. Instructions from one instruction set are pre-decoded by the pre-decoding circuitry 10 into pre-decoded instructions having a shared format to represent shared functionality with corresponding instructions taken from another of the instruction sets. In this way, a shared portion of the decoding circuitry can generate control signals with respect to the shared functionality of instructions from both of these different instruction sets.