Deinterleave Strided Data Elements Processor Instructions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processors face inefficiencies in processing data with strided layouts, as they often require rearranging data elements from an array of structures (AoS) into a different format, such as deinterleaving or interleave operations, which can be cumbersome and resource-intensive.

Innovation Solution

Incorporating deinterleave strided data elements instructions and interleave data elements with stride instructions in a processor's instruction set, allowing for flexible and configurable stride operations to rearrange data elements efficiently between AoS and SoA formats, utilizing masked and selective variants to optimize resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If data elements are stored in Array of Structures (AoS) format with strided layout, then memory storage is compact and cache-friendly, but data processing requires complex rearrangement operations

Engineering Contradiction:
Improvememory storage efficiencyVSAvoiddata rearrangement complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent segments the monolithic AoS data layout into separate Structure of Arrays (SoA) components, where each data element type (e.g., x, y, z coordinates) is extracted into its own array. This segmentation eliminates the need for complex runtime rearrangement by organizing data according to processing requirements from the outset.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of loading AoS data and then rearranging it into SoA format during processing, the patent inverts the approach by directly loading SoA-formatted data from memory into processor registers. This inversion eliminates the rearrangement step entirely by presenting data in the desired format at the point of processing.

Inventive Principle:
Principle #13The other way round (Inversion)

2Speed

If traditional vector load instructions are used to load AoS data, then contiguous memory access is achieved, but multiple separate instructions are required for deinterleaving operations

Engineering Contradiction:
Improvememory access speedVSAvoiddata processing throughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent merges the memory load operation with the data rearrangement operation into a single unified instruction. The deinterleave load instruction simultaneously performs contiguous memory access and extracts individual data elements from the AoS layout into separate register destinations, combining what would traditionally require multiple separate instructions.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The deinterleave load instruction serves multiple functions: it loads data from memory, interprets the strided AoS layout, extracts individual data elements, and stores them in appropriate register destinations. This multi-functionality replaces what would traditionally require a sequence of separate instructions, improving processing throughput.

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

3Adaptability or versatility

If gather instructions are used to load non-contiguous data elements, then flexible data selection is achieved, but processing overhead increases due to separate gather operations

Engineering Contradiction:
Improvedata selection flexibilityVSAvoidprocessing overhead time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent performs preliminary organization of data into SoA format during the load operation itself, rather than requiring separate gather operations afterward. By pre-extracting and positioning data elements in their final destinations during the initial load, the instruction eliminates the need for subsequent time-consuming gather operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The deinterleave load instruction acts as an intermediary between memory and processing logic, translating the strided AoS layout into the SoA format required by processing algorithms. This intermediary operation consolidates what would otherwise require multiple separate gather instructions into a single efficient operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10740100B2Deinterleave strided data elements processors, methods, systems, and instructions
Publication Date: 2020.08.11 INTEL CORP
  • US10740100B2 patent drawing
  • US10740100B2 patent drawing
  • US10740100B2 patent drawing

AI summary

A method performed by a processor includes receiving an instruction. The instruction indicating a source operand, indicating a stride, indicating at least one set of strided data element positions out of all sets of strided data element positions for the indicated stride, and indicating at least one destination packed data register. The method also includes storing, in response to the instruction, for each of the indicated at least one set of strided data element positions, a corresponding result packed data operand, in a corresponding destination packed data register of the processor. Each result packed data operand including a plurality of data elements, which are from the corresponding indicated set of strided data element positions of the source operand. The strided data element positions of the set are separated from one another by integer multiples of the indicated stride. Other methods, processors, systems, and machine readable media are also disclosed.