SIMD Permute Instructions with Flexible Zero Control
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
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
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
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
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
Data Source
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.


