Vector Bit Shuffle Instruction for Efficient SIMD Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current vector bit shuffle instructions in SIMD architectures, such as those using VEX or EVEX implementations, are inefficient and require significant processing resources, leading to suboptimal performance in bit manipulation operations.

Innovation Solution

A vector bit shuffle instruction is introduced that utilizes a first source operand for control and a second source operand for data, allowing for efficient bit manipulation by using 6 control bits from each byte to select and concatenate bits from multiple lanes, thereby improving processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If current VEX or EVEX implementations are used for vector bit shuffle, then bit manipulation can be performed, but processing efficiency is poor and significant processing resources are consumed

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidprocessing resources consumed
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the bit shuffle operation into two distinct source operands: one providing control information and the other providing data. This segmentation allows the processor to efficiently separate the control logic from the data manipulation, reducing the complexity of the overall operation while improving processing efficiency through specialized handling of each operand type.

Inventive Principle:
Principle #1Segmentation

2Speed

If traditional vector bit shuffle instructions are used, then bit manipulation operations can be executed, but the operation speed is slow

Engineering Contradiction:
Improvebit shuffle operation speedVSAvoidprocessing throughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent changes the parameter representation by using 6 control bits from each byte of the first source operand to select and concatenate bits from multiple lanes of the second source operand. This parameter change enables more efficient bit selection and concatenation operations, achieving up to 8x speedup compared to traditional implementations while maintaining high processing throughput.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP3736689B1Method and apparatus for performing a vector bit shuffle
Publication Date: 2023.12.20 INTEL CORP
  • EP3736689B1 patent drawingFigure 1A
  • EP3736689B1 patent drawingFigure 1B
  • EP3736689B1 patent drawingFigure 2A~2C

AI summary

An apparatus for performing a vector bit shuffle. For example, one embodiment of a processor comprises: a decoder to decode a first instruction, the first instruction to use a first source operand and a second source operand to perform a vector bit shuffle, wherein a plurality of source data elements are to be associated with the first source operand, a plurality of control elements are to be associated with the second source operand, each of the control elements is to correspond to a different one of the plurality of source data elements and to include a plurality of bit fields, each bit field is to correspond to a single-bit position in a destination, and each bit field is to identify exactly one bit from the corresponding source data element to be copied to the corresponding single-bit position in the destination; and bit shuffle logic to identify, for each bit field, exactly one bit from the corresponding source data element and to copy only the identified bit from the corresponding source data element to a single-bit position corresponding to the bit field in the destination.