16-bit and 32-bit Instruction Coexistence in Fetch Packet

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Designers of programmable data processors face challenges with 'code bloat' due to large memory requirements for 32-bit instructions, and existing data processor modes introduce overhead and complexity when mixing different instruction sizes.

Innovation Solution

Implementing a 16-bit instruction set that coexists with 32-bit instructions in the same fetch packet, using a special fetch packet header to signal and interpret 16-bit instructions, thereby expanding the opcode space and allowing for more instructions without mode switching overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If 32-bit instructions are used, then the instruction set can specify three data registers and provide complete signaling and control functions, but the memory required to store instructions becomes very large

Engineering Contradiction:
Improveinstruction functionalityVSAvoidmemory size
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The instruction set is segmented into two distinct formats: 32-bit full-featured instructions and 16-bit compressed instructions. Each format serves specific purposes, with the 16-bit format handling commonly used operations that don't require all 32-bit capabilities, thereby reducing overall code size while maintaining functionality where needed

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different instruction formats are applied locally based on the specific operation requirements. The 16-bit format is used for frequently executed instructions with simpler requirements, while 32-bit format is used when full functionality is needed, optimizing the balance between code size and instruction capability

Inventive Principle:
Principle #3Local quality

2Quantity of substance

If data processor modes are used to enable shorter instructions, then alternative short length instructions can be accessed, but tracking the current mode and ensuring appropriate instructions introduces significant overhead

Engineering Contradiction:
Improvecode sizeVSAvoidmode tracking overhead
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The mode switching mechanism is extracted and replaced with a more efficient format discrimination approach. Instead of using separate modes that require tracking and switching overhead, the system directly uses format identification bits within the instruction stream itself to distinguish between 16-bit and 32-bit instructions, eliminating the overhead while maintaining the ability to use both instruction lengths

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

A format identification field acts as an intermediary between the instruction stream and the execution pipeline. This intermediary field automatically indicates the instruction length without requiring mode tracking, allowing the system to seamlessly handle mixed 16-bit and 32-bit instructions without the complexity of mode management

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

If shorter 16-bit instructions are used, then code size is reduced, but the opcode space is limited and cannot encode all possible signaling and control functions

Engineering Contradiction:
Improvecode sizeVSAvoidopcode space
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The instruction encoding is made dynamic through the use of extension fields. The 16-bit base format provides compact encoding for common operations, while optional extension fields can be appended to provide additional functionality when needed, allowing the system to adapt the instruction size and capability dynamically based on the specific operation requirements

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The instruction format uses a nested structure where a 16-bit core instruction can contain or be extended by additional fields. This nesting allows the basic 16-bit format to maintain compact size while providing the ability to access extended functionality through nested extension fields, effectively combining the benefits of both short and long instructions

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS7581082B2Software source transfer selects instruction word sizes
Publication Date: 2009.08.25 TEXAS INSTRUMENTS INC
  • US7581082B2 patent drawing
  • US7581082B2 patent drawing
  • US7581082B2 patent drawing

AI summary

This invention employs a 16-bit instruction set that has a subset of the functionality of the 32-bit instruction set. In this invention 16-bit instructions and 32-bit instructions can coexist in the same fetch packet. In the prior architecture 32-bit instructions may not span a 32-bit boundary. The 16-bit instruction set is implemented with a special fetch packet header that signals whether the fetch packet includes some 16-bit instructions. This fetch packet header also has special bits that tell the hardware how to interpret a particular 16-bit instruction. These bits essentially allow overlays on the whole or part of the 16-bit instruction space. This makes the opcode space larger permitting more instructions than with a pure 16-bit opcode space.