Packed Two Source Inter-Element Shift Merge Processors
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current SIMD processors lack efficient instructions for performing inter-element shift operations on packed data, which limits their ability to effectively merge and manipulate data elements in parallel processing scenarios.
Innovation Solution
The introduction of packed two source inter-element shift merge instructions that allow for simultaneous shifting and merging of data elements from two source operands, with options for left and right shifts, and the ability to specify different shift counts for each pair of data elements, enabling more flexible data manipulation within SIMD architectures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional SIMD processors use single-source shift instructions, then the instruction format remains simple, but the ability to perform inter-element shift operations on packed data is limited
Solution Approach 1:
The patent combines shift operation and merge operation into a single instruction cycle. The execution unit performs both operations simultaneously on two source packed data operands, producing a result packed data operand that merges shifted elements from both sources. This eliminates the need for separate shift and merge instructions, enhancing versatility without proportionally increasing complexity.
Solution Approach 2:
The new instruction format provides multi-functionality by supporting multiple operation types (shift left, shift right, merge) within a single instruction framework. The execution unit can handle different data element sizes (8-bit, 16-bit, 32-bit, 64-bit) and perform various shift directions and merge operations using the same instruction structure, improving adaptability across different processing scenarios.
2Productivity
If processors perform shift and merge operations separately, then each operation can be optimized independently, but the overall processing efficiency decreases
Solution Approach 1:
The execution unit merges the shift operation logic and merge operation logic into a single integrated processing pipeline. Both operations execute simultaneously on corresponding data elements from two source operands, producing merged results in one cycle. This consolidation improves productivity by eliminating sequential execution overhead while the modular internal structure manages the increased operational complexity.
Solution Approach 2:
The instruction format includes pre-configured control fields that specify shift directions, shift amounts, and merge behavior before execution begins. This preliminary configuration allows the execution unit to perform both shift and merge operations without intermediate decision-making steps, optimizing the combined operation efficiency while maintaining a manageable execution unit structure through upfront parameter specification.
3Ease of operation
If SIMD instructions operate on single source packed data, then the instruction decoding is straightforward, but complex data manipulation operations require multiple instructions
Solution Approach 1:
The patent merges multiple data manipulation operations (shift left, shift right, and element merging) into a single instruction. This allows complex data manipulation tasks to be accomplished in one execution cycle rather than requiring sequences of separate instructions, directly reducing the time loss while maintaining ease of operation through a unified instruction interface that specifies all parameters upfront.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A processor includes a decoder to receive an instruction that indicates first and second source packed data operands and at least one shift count. An execution unit is operable, in response to the instruction, to store a result packed data operand. Each result data element includes a first least significant bit (LSB) portion of a first data element of a corresponding pair of data elements in a most significant bit (MSB) portion, and a second MSB portion of a second data element of the corresponding pair in a LSB portion. One of the first LSB portion of the first data element and the second MSB portion of the second data element has a corresponding shift count number of bits. The other has a number of bits equal to a size of a data element of the first source packed data minus the corresponding shift count.