Vector Zero-Based Decompression Using Masks and Shifted Copies
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing zero-based decompression methods are inefficient due to their iterative and data element-by-data element evaluation approach, particularly in handling large data streams with frequent zero values, which is common in graphics processing.
Innovation Solution
The implementation of a vector-based instruction set architecture that utilizes simple shifts and masked moves instead of expensive shuffle and permute instructions, allowing for efficient decompression of Run-Length Encoding (RLE) data by generating masks, counting trailing zeros, and performing masked copies to efficiently decode zero-based streams.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If iterative data element-by-data element evaluation is used for zero-based decompression, then the decompression can be performed with simple instructions, but the processing speed is slow and efficiency is low
Solution Approach 1:
The patent segments the decompression task into vector-level operations rather than element-level operations. By using SIMD instructions to process multiple data elements simultaneously, the decompression is divided into parallel processing units that can handle multiple zero-based runs in a single instruction cycle, thereby improving productivity without significantly increasing device complexity.
Solution Approach 2:
The patent transitions from scalar processing to vector processing by adding a dimension of parallelism. Instead of processing one data element at a time in sequence, the invention uses vector registers to process multiple data elements simultaneously, effectively moving from a 1D sequential processing model to a higher-dimensional parallel processing model that improves decompression speed.
2Ease of operation
If shuffle and permute instructions are used for zero-based decompression, then data can be rearranged flexibly, but the computational overhead and processing time increase significantly
Solution Approach 1:
The patent extracts and eliminates the need for expensive shuffle and permute instructions by using a different approach based on mask generation and selective copying. Instead of rearranging data through complex shuffle operations, the invention generates masks that directly identify zero-based runs and copies the appropriate data elements, thereby maintaining data rearrangement capability while significantly reducing processing time.
Solution Approach 2:
The patent uses mask-based copying instead of shuffle/permute operations. By generating masks that identify valid data elements and using conditional copy instructions, the invention achieves flexible data rearrangement through simple copy operations that are much faster than traditional shuffle and permute instructions, thus reducing the loss of time.
3Productivity
If vector-based instructions with mask generation and counting trailing zeros are used, then decompression efficiency improves significantly, but the instruction set complexity increases
Solution Approach 1:
The patent employs universal vector instructions that can perform multiple functions. The mask generation instruction can be used for both identifying zero-based runs and for other masking operations, while the count trailing zeros instruction serves both decompression and other data processing tasks. This multi-functionality allows the instruction set to remain relatively simple while achieving high decompression efficiency.
Solution Approach 2:
The patent changes the parameters of existing vector instructions to optimize them for zero-based decompression. By adjusting mask generation parameters and using variable shift amounts based on trailing zero counts, the invention achieves high decompression efficiency without requiring entirely new instructions, thus limiting the increase in instruction set complexity.
4Device complexity
If simple shifts and masked moves are used instead of shuffle and permute instructions, then computational overhead is reduced, but data manipulation flexibility is limited
Solution Approach 1:
The patent performs preliminary mask generation that encodes the desired data manipulation pattern. By pre-computing masks that capture the structure of zero-based runs, the invention enables simple shift and copy operations to achieve complex data rearrangement patterns that would otherwise require multiple shuffle and permute instructions, thus reducing computational overhead while maintaining flexibility through the programmable mask generation step.
Data Source
AI summary
A processor core including a hardware decode unit to decode vector instructions for decompressing a run length encoded (RLE) set of source data elements and an execution unit to execute the decoded instructions. The execution unit generates a first mask by comparing set of source data elements with a set of zeros and then counts the trailing zeros in the mask. A second mask is made based on the count of trailing zeros. The execution unit then copies the set of source data elements to a buffer using the second mask and then reads the number of RLE zeros from the set of source data elements. The buffer is shifted and copied to a result and the set of source data elements is shifted to the right. If more valid data elements are in the set of source data elements this is repeated until all valid data is processed.


