Masked Consecutive Source Element Store with Propagation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current processors face challenges in efficiently storing consecutive source elements to unmasked result elements while propagating values to masked result elements, particularly in SIMD architectures, which limits their ability to effectively implement loops with data dependencies and vectorize computations.
Innovation Solution
The introduction of masked consecutive source element store with propagation instructions allows processors to store consecutive source elements to unmasked result elements and propagate values to adjoining masked result elements, enabling efficient data manipulation and loop vectorization by using specific vector friendly instruction formats and execution units that handle packed data operations with masks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional SIMD architectures store consecutive source elements to unmasked result elements, then data storage efficiency is improved, but the ability to propagate values to masked result elements is limited
Solution Approach 1:
The patent introduces dynamic mask propagation capability that adapts the storage behavior based on mask status. When mask elements indicate masked result elements, the system dynamically propagates values from unmasked source elements to masked result elements, enabling flexible adaptation to different computation patterns and loop structures.
Solution Approach 2:
The instruction system is enhanced to perform multiple functions: storing consecutive source elements to unmasked result elements, propagating values to masked result elements, and supporting various loop vectorization patterns. This multi-functional approach allows a single instruction type to handle diverse computational scenarios.
2Device complexity
If processors use existing store instructions without propagation, then instruction simplicity is maintained, but computation vectorization efficiency deteriorates
Solution Approach 1:
The patent merges the store operation with the propagation operation into a single instruction. The masked consecutive source element store with propagation instruction combines data storage and value propagation functions, reducing the number of instructions needed and improving vectorization efficiency without significantly increasing instruction format complexity.
3Reliability
If masked result elements are not propagated from unmasked source elements, then data accuracy is maintained, but loop execution performance deteriorates
Solution Approach 1:
The system performs preliminary propagation of values from unmasked source elements to masked result elements during the store operation itself, rather than requiring subsequent separate operations. This preliminary action ensures data accuracy is maintained while reducing the total execution time of loops by eliminating redundant operations.
Data Source
AI summary
A processor of an aspect includes a decode unit to decode an instruction indicating a first source packed data operand including at least four data elements, a source mask including at least four mask elements, and a destination storage location. An execution unit, in response to the instruction, stores a result packed data operand having a series of at least two unmasked result data elements. Each of the unmasked result data elements stores a value of a different one of at least two consecutive data elements of the first source packed data operand in a relative order. All masked result elements, which are between a nearest corresponding pair of unmasked result data elements, have a same value as an unmasked result data element of the corresponding pair, which is closest to a first end of the result packed data operand. The masked result data elements correspond to masked mask elements.


