Mask Register Update for Sparse Vector Computation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern processors face inefficiencies in recursive vector computation due to the inability to easily vectorize operations where the number of iterations differs for different data elements, leading to unnecessary computation and underutilization of vector register slots.
Innovation Solution
The use of a pair of vector registers and mask registers, where one vector register serves as an accumulator and the other provides new data elements to fill unused slots, with instructions like RWMASKUPDATE and SPARSEMOV to manage and update masks for efficient data movement and computation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the processor performs computation over all elements including those that satisfy the condition, then the vector register slots are fully utilized, but unnecessary computation is performed on elements that do not need processing
Solution Approach 1:
The patent applies local quality by using mask registers to differentiate between elements that need computation and those that don't. Each mask bit corresponds to a specific vector element, allowing the processor to apply different treatment (compute or skip) to each element individually based on its properties, thus avoiding unnecessary computation on elements that satisfy the termination condition
Solution Approach 2:
The patent implements partial action by performing computation only on the subset of vector elements that require processing, rather than uniformly processing all elements. The mask registers enable selective computation across the vector, applying the computation operation only where needed while skipping elements that have already satisfied their termination conditions
2Loss of energy
If the processor skips computation for elements that satisfy the condition, then unnecessary computation is avoided, but vector register slots remain unutilized reducing efficiency
Solution Approach 1:
The patent applies discarding and recovering by discarding (skipping computation for) elements that have satisfied their termination conditions, while simultaneously recovering (reusing) the vector register slots occupied by these elements to store new input data for elements that still need processing. This is achieved through the coordinated action of mask registers tracking which elements need computation and data movement operations filling available slots
Solution Approach 2:
The patent implements dynamics by making the vector register contents adaptive - the register dynamically switches between holding output results for completed elements and input data for elements needing computation. The mask registers enable the system to dynamically identify and rearrange which elements should be computed, allowing flexible adaptation to varying computation requirements across different vector elements
3Adaptability or versatility
If traditional scalar processing is used for recursive computations with varying iterations, then each element can be processed independently, but the processing time increases significantly compared to vectorized approaches
Solution Approach 1:
The patent applies segmentation by dividing the vector into elements with different computation requirements tracked by individual mask bits. This allows the processor to segment the computation into two groups: elements needing computation and elements ready for termination. The mask registers enable independent tracking and processing of each segment, maintaining adaptability to varying iteration counts while enabling parallel vectorized execution
Solution Approach 2:
The patent implements universality by creating a unified vectorized processing framework that handles elements with different iteration requirements through the same computational structure. The mask registers provide a universal mechanism for controlling computation based on element-specific conditions, allowing a single vectorized loop to efficiently process both elements needing computation and elements ready for termination without requiring separate processing paths
Data Source
AI summary
A processor executes a mask update instruction to perform updates to a first mask register and a second mask register. A register file within the processor includes the first mask register and the second mask register. The processor includes execution circuitry to execute the mask update instruction. In response to the mask update instruction, the execution circuitry is to invert a given number of mask bits in the first mask register, and also to invert the given number of mask bits in the second mask register.


