Packed Rotate Processors Masked Data Element Rotation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processors lack efficient mechanisms for performing packed rotate operations on multiple data elements simultaneously, which is essential for parallel processing in SIMD architectures, leading to limitations in data manipulation and processing speed.

Innovation Solution

The development of packed rotate instructions and execution logic within processors that allow for simultaneous rotation of multiple data elements using packed rotate operations, including masked and broadcasted rotation, enabling efficient parallel data manipulation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If processors use traditional single-data-element instructions, then instruction simplicity is maintained, but data processing parallelism and speed are limited

Engineering Contradiction:
Improvedata processing speedVSAvoidinstruction complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides a wide register (e.g., 256-bit) into multiple smaller data elements (e.g., eight 32-bit elements or sixteen 16-bit elements), allowing independent rotation operations on each element simultaneously through packed rotate instructions. This segmentation enables parallel processing while maintaining manageable instruction structures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent combines multiple rotation operations into a single packed rotate instruction that operates on multiple data elements simultaneously. By merging these operations at the instruction level, the processor achieves parallel execution without requiring multiple separate instructions, thus improving productivity while controlling complexity.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If processors implement packed rotate operations on multiple data elements, then parallel processing capability is improved, but hardware complexity increases

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidexecution logic complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The execution logic is designed to handle multiple data element sizes (16-bit, 32-bit, 64-bit) and different rotation modes (left rotate, right rotate, masked rotate) through a unified packed rotate instruction structure. This multi-functionality allows the same hardware to perform various rotation operations in parallel, improving productivity without proportionally increasing hardware complexity.

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

Solution Approach 2:

The execution logic dynamically adapts to different data element configurations based on instruction parameters. The processor can adjust the number and size of data elements processed in parallel, as well as enable or disable masking operations, allowing flexible optimization of hardware resource utilization for different workload requirements.

Inventive Principle:
Principle #15Dynamics

3Manufacturing precision

If masked rotate operations are implemented for conditional storage, then data manipulation precision is improved, but instruction complexity increases

Engineering Contradiction:
Improvedata manipulation precisionVSAvoidinstruction format complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The masking operation is prepared in advance by loading mask values into dedicated mask registers before executing the packed rotate instruction. This preliminary preparation allows the execution logic to efficiently apply masks during the rotation operation without adding significant complexity to the instruction format, as the mask configuration is separated from the rotation operation itself.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP2798464B8Packed rotate processors, methods, systems, and instructions
Publication Date: 2019.12.11 INTEL CORP

AI summary

A method of an aspect includes receiving a masked packed rotate instruction. The instruction indicates a first source packed data including a plurality of packed data elements, a packed data operation mask having a plurality of mask elements, at least one rotation amount, and a destination storage location. A result packed data is stored in the destination storage location in response to the instruction. The result packed data includes result data elements that each correspond to a different one of the mask elements in a corresponding relative position. Result data elements that are not masked out by the corresponding mask element include one of the data elements of the first source packed data in a corresponding position that has been rotated. Result data elements that are masked out by the corresponding mask element include a masked out value. Other methods, apparatus, systems, and instructions are disclosed.