Adjoining Data Element Pairwise Swap Processor Instruction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing SIMD architectures face inefficiencies in performing data element swaps, particularly due to the need for flexible shuffle or permute instructions which increase instruction length, complexity, and power consumption, and require additional control bits that can limit performance and code size.

Innovation Solution

The introduction of adjoining data element pairwise swap instructions that implicitly specify the swap operation, reducing the need for flexible non-opcode control bits and simplifying the instruction format, allowing for faster and more efficient data element position swapping within packed data registers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If flexible shuffle or permute instructions are used to perform data element swaps, then adaptability is improved, but instruction length increases

Engineering Contradiction:
Improvedata element swap flexibilityVSAvoidinstruction length
Core Design Contradiction:
Adaptability or versatilityVSLength of moving object

Solution Approach 1:

The patent divides the data manipulation task into two segments: a compact pairwise swap instruction for adjacent elements and separate shuffle/permute instructions for non-adjacent elements. This segmentation allows the pairwise swap operation to have a short, fixed-format instruction while maintaining overall system flexibility through the combination of multiple specialized instructions.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If flexible shuffle or permute instructions are used to perform data element swaps, then adaptability is improved, but device complexity increases

Engineering Contradiction:
Improvedata element swap flexibilityVSAvoidinstruction format complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the data manipulation functionality into distinct instruction types: a simple pairwise swap instruction for adjacent elements and separate shuffle/permute instructions for other cases. This reduces the complexity of each individual instruction format while maintaining overall adaptability through the combination of specialized instructions.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If flexible shuffle or permute instructions are used to perform data element swaps, then adaptability is improved, but power consumption increases

Engineering Contradiction:
Improvedata element swap flexibilityVSAvoidpower consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The patent segments the data manipulation operations into a simple pairwise swap instruction for adjacent elements and separate shuffle/permute instructions for other cases. The pairwise swap instruction consumes less power due to its simpler format and execution logic, while the system maintains overall flexibility by providing separate instructions for more complex operations when needed.

Inventive Principle:
Principle #1Segmentation

4Adaptability or versatility

If control bits are added to specify swap operations, then adaptability is improved, but productivity decreases

Engineering Contradiction:
Improveswap operation controlVSAvoidfront-end throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the control mechanism into a simple implicit pairwise swap operation for adjacent elements and separate controlled shuffle/permute operations for other cases. This eliminates the need for complex control bits in the pairwise swap instruction, improving front-end throughput, while maintaining adaptability through separate instructions for non-adjacent element manipulation.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP3394725B1Adjoining data element pairwise swap processors, methods, systems, and instructions
Publication Date: 2021.12.01 INTEL CORP
  • EP3394725B1 patent drawingFigure 1
  • EP3394725B1 patent drawingFigure 2
  • EP3394725B1 patent drawingFigure 3

AI summary

A processor includes a decode unit to decode an adjoining data element pairwise swap instruction. The instruction is to indicate a source packed data that is to include pairs of adjoining data elements, and is to indicate a destination storage location. An execution unit is coupled with the packed data registers and the decode unit. The execution unit, in response to the instruction, is to store a result packed data in the destination storage location, the result packed data to include pairs of adjoining data elements. Each pair of adjoining data elements of the result packed data is to correspond to a different pair of adjoining data elements of the source packed data. The adjoining data elements in each pair of the result packed data to have been swapped in position relative to the adjoining data elements in each corresponding pair of the source packed data.