Processor Data Element Rearrangement Instructions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processors lack efficient instructions for data element rearrangement, particularly in SIMD architectures, which can lead to asymmetry and increased costs in implementing certain algorithms, making it difficult to vectorize operations effectively.

Innovation Solution

Incorporating instructions such as gather by indices to register, scatter by indices to register, and data element rearrangement instructions that allow for the rearrangement of indices between scatter and gather patterns, enhancing the processor's ability to perform parallel operations and improve algorithm efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional SIMD architectures are used without dedicated rearrangement instructions, then the processor structure remains simple, but algorithm implementation becomes asymmetric and less efficient

Engineering Contradiction:
Improvealgorithm execution efficiencyVSAvoidinstruction set complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The data rearrangement operation is segmented into distinct phases: gather phase (collecting scattered data elements into contiguous storage), rearrangement phase (reordering elements within the register), and scatter phase (distributing elements to target locations). This segmentation allows each phase to be optimized independently with dedicated instructions like gather, permute, and scatter operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A temporary register or buffer is introduced as an intermediary storage location between the scattered source data and the destination. This intermediary allows the processor to collect scattered elements, rearrange them in the intermediate storage, and then scatter them to the final destination, enabling complex rearrangements through composition of simpler operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If data rearrangement is implemented using multiple separate instructions, then the instruction set remains simple, but the number of instructions required increases and performance decreases

Engineering Contradiction:
Improvevectorization efficiencyVSAvoidinstruction sequence complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Multiple data rearrangement operations are merged into single composite instructions. For example, a gather-scatter operation that previously required separate gather, rearrangement, and scatter instructions is now performed by a single instruction that combines these functions, reducing instruction count and improving execution efficiency.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The processor implements universal data rearrangement instructions that can perform multiple types of rearrangements (gather, scatter, permute, shuffle) through a single instruction format with configurable parameters. This multi-functionality allows the same instruction to handle different rearrangement patterns without requiring separate specialized instructions for each case.

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

3Adaptability or versatility

If symmetric gather and scatter instructions are added to the processor, then algorithm versatility improves, but the device complexity increases

Engineering Contradiction:
Improvealgorithm symmetryVSAvoidinstruction set size
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The processor implements asymmetric but complementary gather and scatter instructions that mirror each other in functionality but are optimized for their specific directions. The gather instruction is optimized for collecting scattered data into contiguous storage, while the scatter instruction is optimized for distributing contiguous data to scattered locations. This asymmetric design provides the needed symmetry for algorithms while maintaining instruction efficiency.

Inventive Principle:
Principle #4Asymmetry

Data Source

PatentUS11941394B2Data element rearrangement, processors, methods, systems, and instructions
Publication Date: 2024.03.26 INTEL CORP
  • US11941394B2 patent drawing
  • US11941394B2 patent drawing
  • US11941394B2 patent drawing

AI summary

A processor includes a decode unit to decode an instruction indicating a source packed data operand having source data elements and indicating a destination storage location. Each of the source data elements has a source data element value and a source data element position. An execution unit, in response to the instruction, stores a result packed data operand having result data elements each having a result data element value and a result data element position. Each result data element value is one of: (1) equal to a source data element position of a source data element, closest to one end of the source operand, having a source data element value equal to the result data element position of the result data element; and (2) a replacement value, when no source data element has a source data element value equal to the result data element position of the result data element.