SIMD Permute Instructions with Flexible Zero Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor architectures require multiple instructions and operations to perform complex data permutation operations, leading to diminished throughput and increased clock cycles, particularly in computationally intensive media applications like image and video processing, where flexibility in data reorganization and zeroing control is limited.

Innovation Solution

A family of SIMD permute instructions with flexible zero control is introduced, enabling efficient data permutation across different bit widths and data types, allowing for packed data operations within registers or memory, and enabling efficient lookup operations by using combinations of instructions to perform larger permute operations in parallel.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple instructions and operations are used to perform complex data permutation operations, then data reorganization capability is improved, but processor throughput is diminished and clock cycles increase

Engineering Contradiction:
Improvedata reorganization capabilityVSAvoidprocessor throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent combines multiple data permutation operations into a single SIMD instruction that can perform packed data reorganization in parallel across multiple data elements simultaneously, eliminating the need for multiple sequential instructions and thereby improving throughput while maintaining reorganization capability

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces a universal SIMD permute instruction that can handle multiple data types and bit widths (8-bit, 16-bit, 32-bit, 64-bit) within a single instruction architecture, allowing the same instruction mechanism to perform various permutation operations without requiring multiple specialized instructions, thus reducing instruction count and improving productivity

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

2Adaptability or versatility

If multiple instructions are used for data permutation operations, then operational flexibility is improved, but the number of clock cycles required increases

Engineering Contradiction:
Improveoperational flexibilityVSAvoidclock cycles required
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments the data elements into packed formats within registers, allowing the SIMD instruction to operate on multiple segments (data elements) in parallel, thereby reducing the total clock cycles required while maintaining the flexibility to handle different data configurations through the same instruction set

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent enables preliminary preparation of control information and data packing within registers before the permutation operation executes, allowing the actual permutation to occur in fewer clock cycles by pre-organizing the data structure and control signals needed for the transformation

Inventive Principle:
Principle #10Preliminary action

3Productivity

If existing SIMD permute instructions are used, then data elements can be written from source to destination locations, but flexibility in controlling the selection mechanism and zeroing of permuted fields is limited

Engineering Contradiction:
Improvedata element transfer efficiencyVSAvoidcontrol flexibility over selection and zeroing
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces dynamic control fields within the SIMD instruction that allow flexible control of selection mechanisms and zeroing operations at runtime, enabling the instruction to adapt its behavior based on control signals while maintaining high data transfer efficiency through the same instruction architecture

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies local control quality by allowing different control behaviors (selection and zeroing) to be independently configured for different data elements within the packed register, enabling fine-grained control over specific fields while maintaining overall efficient data transfer across all elements

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9235415B2Permute operations with flexible zero control
Publication Date: 2016.01.12 INTEL CORP
  • US9235415B2 patent drawing
  • US9235415B2 patent drawing
  • US9235415B2 patent drawing

AI summary

In one embodiment, the present invention includes logic to receive a permute instruction, first and second source operands, and control values, and to perform a permute operation based on an operation between at least two of the control values so that selected portions of the first and second source operands or a predetermined value can be stored into elements of a destination. Multiple permute instructions may be combined to perform efficient table lookups. Other embodiments are described and claimed.