Compact Instruction Set Encoding for Processor Decode Units

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional processor instruction formats face a trade-off between opcode and operand size, leading to limited instruction sets and inefficient decoding, which affects processor speed, hardware complexity, and code density, particularly when managing multiple threads and interfacing with external devices.

Innovation Solution

A decode unit with a five-bit opcode and eleven-bit operand decoding scheme, allowing for efficient opcode condensation and quick decoding, utilizing a switching logic to divert bits between opcode and operand decoding, enabling a large instruction set within a sixteen-bit format, and supporting multiple threads and interfacing operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If small opcodes are used, then more bits are available for operands, but the instruction set size is limited

Engineering Contradiction:
Improveoperand bitsVSAvoidinstruction set size
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic opcode field width that adapts based on the instruction type. The opcode can be 4 bits, 5 bits, or 6 bits depending on the specific instruction being encoded. This dynamic adjustment allows the system to maximize operand bits when using simple instructions while expanding opcode capacity when complex instructions are needed, resolving the static trade-off between these two parameters.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of opcode field width dynamically. By allowing the opcode bit width to vary (4-6 bits) based on instruction requirements, the system can optimize each instruction individually - using minimal opcode bits for simple operations to preserve operand space, and expanding opcode bits for complex operations that require more instruction types, thus resolving the contradiction.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If large opcodes are used, then more instruction types can be encoded, but fewer bits are available for operands

Engineering Contradiction:
Improveinstruction set sizeVSAvoidoperand bits
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The opcode field width is made dynamic rather than fixed. Instructions that require more operation types can utilize 6-bit opcodes, while simpler instructions use only 4 or 5 bits. This dynamic behavior allows each instruction to use exactly the opcode capacity it needs, preventing waste of operand bits in instructions that don't require large opcodes.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the opcode bit width parameter based on instruction requirements. By implementing variable-length opcodes (4-6 bits), the system can provide large opcode capacity when needed for complex instruction sets while maintaining small opcode size for simple instructions, thus preserving operand bits where possible.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If fixed sixteen-bit instructions are used, then decoding is simple, but code density is reduced due to restricted operand specifiers

Engineering Contradiction:
Improvedecoding simplicityVSAvoidcode density
Core Design Contradiction:
Device complexityVSQuantity of substance

Solution Approach 1:

The instruction decoding is segmented into multiple stages based on opcode value ranges. The decoder first checks the opcode magnitude and routes to different decoding paths: opcodes 0-15 use one format, 16-31 use another, 32-47 use yet another, and so on. This segmentation allows the fixed sixteen-bit format to support variable operand specifications without requiring complex universal decoding logic.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the number of operand specifiers dynamically based on the opcode value. Instructions with opcodes in certain ranges use 3 operand specifiers, while others use 2 or 1 specifier. This parameter change allows the fixed instruction format to achieve high code density by using the minimum necessary operand fields for each instruction type, while keeping decoding logic manageable through range-based routing.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP2145249B1Compact instruction set encoding
Publication Date: 2015.12.09 XMOS
  • EP2145249B1 patent drawingFigure 1
  • EP2145249B1 patent drawingFigure 2
  • EP2145249B1 patent drawingFigure 2A

AI summary

The invention provides a decode unit for decoding instructions in a processor. The decode unit comprises opcode decoding logic, operand decoding logic, and a sixteen-bit input. The opcode decoding logic is operable to determine an opcode using five bits of the input and the operand decoding logic is operable to determine three four-bit operand elements from the remaining eleven bits of the input, the three operand elements each having one of twelve possible binary values. The operand decoding logic is operable to decode an encoded group of the eleven bits to determine a first part of each of the three operand elements, and to read verbatim a verbatim group of the eleven bits to determine a second part of each of the three operand elements.