Sub-Block Data Compression for Parallel Decompression Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data compression schemes in computer systems, such as LZSS and FPC, suffer from high latency due to serial processing and inefficiencies in handling repetitive patterns, particularly when decompressing data across memory levels.
Innovation Solution
The method integrates transformation and compression algorithms on a sub-block basis, allowing for selective application of transforms to group repetitive data values and avoid the need for serial processing, thereby improving compressibility and reducing latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of substance
If LZSS compression algorithm is used, then compressibility of repetitive patterns is improved, but processing latency increases due to serial processing requirement
Solution Approach 1:
The patent divides a cache block into multiple sub-blocks (e.g., 4 sub-blocks of 64 bytes each from a 256-byte block). Each sub-block is decompressed independently and in parallel, eliminating the serial dependency of LZSS while maintaining its compression effectiveness for repetitive patterns within each sub-block.
Solution Approach 2:
The patent introduces parallelism as a new dimension by processing multiple sub-blocks simultaneously rather than sequentially. This transforms the time dimension from serial to parallel execution, reducing latency while preserving the compression ratio benefits of LZSS for repetitive data patterns.
2Loss of time
If FPC compression algorithm is used, then decompression speed is improved through parallel processing, but compressibility of repetitive patterns deteriorates
Solution Approach 1:
The patent segments the cache block into sub-blocks that are processed in parallel, combining FPC's parallel processing advantage with LZSS's superior compressibility for repetitive patterns within each segment.
Solution Approach 2:
The patent creates a composite compression approach by combining LZSS and FPC algorithms within the same cache block. Different sub-blocks can use different algorithms based on their characteristics, achieving both good compressibility and fast parallel decompression.
3Loss of substance
If compression is applied to entire cache blocks, then compression ratio is improved, but decompression latency increases due to lack of parallelism
Solution Approach 1:
The patent divides the cache block into multiple sub-blocks that can be decompressed in parallel. This segmentation maintains the compression benefits of processing larger data units while enabling parallel execution to reduce latency.
Solution Approach 2:
The patent applies compression to sub-blocks rather than the entire cache block, using partial action on each segment. This allows parallel processing of multiple segments while achieving sufficient compression ratios for each individual sub-block.
4Quantity of substance
If cache block size is increased to improve memory capacity, then effective memory capacity increases, but decompression latency increases due to larger processing units
Solution Approach 1:
The patent segments large cache blocks into smaller sub-blocks that can be processed in parallel. This allows the system to maintain large cache block sizes for improved memory capacity while achieving low latency through parallel decomposition of the segments.
Solution Approach 2:
The patent introduces parallel processing as an additional dimension to handle large cache blocks. Instead of increasing latency with larger blocks, the system uses parallel decomposition to maintain low latency while benefiting from the increased capacity of larger cache blocks.
Data Source
AI summary
A method and apparatus for compressing data automatically selects either direct compression of sub-blocks or of compression of transformed sub-blocks to achieve fast and effective data compression. A method and apparatus for decompression automatically performs either direct decompression or decompression and transform operations for respective sub-blocks.


