Vector Unpack Instruction for Digital Signal Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

There is no existing generic decoder or execution circuitry configured to handle the DVPUNPCKDQ instruction, which unpacks doublewords (32-bit) from quadwords (64-bit) in each of two source registers based on selection information, limiting the processing capabilities of computers in digital signal processing applications.

Innovation Solution

The introduction of the DVPUNPCKDQ instruction, which includes element selection circuitry and execution circuitry that decodes and executes the instruction by using multiplexors to select and interleave data elements from source registers or memory locations based on the provided selection information, enabling the unpacking of doublewords from quadwords.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If existing generic decoder and execution circuitry are used, then device complexity is reduced, but the capability to handle DVPUNPCKDQ instruction is lost

Engineering Contradiction:
Improveinstruction handling capabilityVSAvoiddecoder and execution circuitry complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The decoder is segmented into multiple specialized decoders including a first decoder for decoding DVPUNPCKDQ instructions and a second decoder for decoding other instructions. The execution circuitry is segmented into a first execution unit for executing DVPUNPCKDQ instructions and a second execution unit for executing other instructions. This segmentation allows each decoder and execution unit to be optimized for its specific function, enabling the system to handle the DVPUNPCKDQ instruction while maintaining overall system efficiency.

Inventive Principle:
Principle #1Segmentation

2Productivity

If specialized execution circuitry for DVPUNPCKDQ is added, then processing capability is improved, but device complexity increases

Engineering Contradiction:
Improvedigital signal processing capabilityVSAvoidexecution circuitry complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The DVPUNPCKDQ execution functionality is extracted as a separate first execution unit distinct from the second execution unit that handles other instructions. This extraction allows the DVPUNPCKDQ instruction to be executed by dedicated circuitry optimized for digital signal processing operations, improving processing capability while isolating the complexity to a specific module that can be independently managed and optimized.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If multiple decoders are implemented, then instruction coverage is improved, but device complexity increases

Engineering Contradiction:
Improveinstruction set coverageVSAvoiddecoder architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The first decoder is designed to decode DVPUNPCKDQ instructions while the second decoder handles other instructions, creating a universal decoding architecture that can process multiple instruction types. Each decoder is specialized for its instruction type, but together they provide comprehensive instruction set coverage, allowing the system to maintain adaptability across different instruction formats and operations.

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

Data Source

PatentEP4307111A1Vector unpack based on selection information
Publication Date: 2024.01.17 INTEL CORP
  • EP4307111A1 patent drawingFigure 1
  • EP4307111A1 patent drawingFigure 2
  • EP4307111A1 patent drawingFigure 3

AI summary

Techniques for vector unpacking are described. In some examples a single instruction is executed to perform vector unpacking. In some examples the instruction is to include one or more fields for an opcode, a destination operand identifier, a first source operand identifier, a second source operand identifier, and an immediate, wherein the opcode is to indicate execution circuitry is to interleave data elements from the identified first and second source operands according to an encoding of the immediate wherein the encoding of the immediate to include multiple controls with each control dictating what is to be written into a particular data element position of the identified destination operand;