Vector Bit Gather Instruction for Efficient Bit Permutation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current instruction set architectures lack an efficient method for performing vector bit gather operations, which are essential for bit manipulation workloads, particularly in achieving multiple vector permutes within a limited cycle count.

Innovation Solution

A vector bit gather instruction is introduced that uses a first source operand as control and a second source operand as data, allowing for bit selection and permutation across multiple destination bits, implemented in a processor architecture that supports vector registers and mask registers to efficiently perform bit manipulation operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional instruction set architectures are used for bit manipulation operations, then multiple vector permutes can be performed, but the number of cycles required increases linearly with the number of permutes

Engineering Contradiction:
Improvebit manipulation throughputVSAvoidcycle count
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The bit gather operation is segmented into byte-level operations. Each byte of the control operand specifies bits from different 64-bit lanes of the source operand, allowing parallel extraction of multiple bits simultaneously. This segmentation enables 8 vector permutes to be completed in 8 cycles rather than requiring sequential processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of parallelism by organizing the source operand into 64-bit lanes and using byte-level control operands. This dimensional reorganization allows simultaneous access to bits across multiple lanes, transforming a sequential bit-gathering process into a parallel operation that achieves one permute per cycle.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If variable bit permutation operations are implemented using existing instructions, then flexibility is achieved, but the implementation complexity and cycle count increase

Engineering Contradiction:
Improvebit permutation flexibilityVSAvoidinstruction implementation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The vector bit gather instruction serves as a universal operation that can implement any variable bit permutation pattern. By using byte-level control operands that specify bit positions across 64-bit lanes, a single instruction type can handle diverse permutation requirements without requiring multiple specialized instructions, thereby reducing implementation complexity while maintaining flexibility.

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

Solution Approach 2:

The patent changes the parameter organization from traditional bit-level addressing to byte-level control operands. Each byte of the control operand contains information about which bits to gather from corresponding 64-bit lanes, transforming the parameter representation to enable more efficient hardware implementation while preserving full flexibility for variable bit permutation patterns.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP3238036B1Method and apparatus for performing a vector bit gather
Publication Date: 2020.10.14 INTEL CORP
  • EP3238036B1 patent drawingFigure 1A
  • EP3238036B1 patent drawingFigure 1B
  • EP3238036B1 patent drawingFigure 2A~2C

AI summary

An apparatus and method for performing a vector bit gather. For example, one embodiment of a processor comprises: a first vector register to store one or more source data elements; a second vector register to store one or more control elements, each of the control elements comprising a plurality of bit fields, each bit field to be associated with a corresponding bit position in a destination vector register and to identify a bit from the one or more source data elements to be copied to each of the particular bit positions; and vector bit gather logic to read each bit field from the second vector register to identify a bit from the one or more source data elements and to responsively copy the bit from each of the one or more source data elements to each of the corresponding bit positions in the destination vector register.