Parallel Low-Latency Decompressor for LZ4 Output Bottlenecks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing decompression technologies struggle with high latency and limited parallelism when processing compressed data, particularly in formats like LZ4, leading to suboptimal throughput and output rates.
Innovation Solution
A low-latency decompressor architecture that splits compressed data sequences into three separate streams for parallel processing: a literal stream, a history cache stream, and a history buffer stream, utilizing multi-ported memory structures and history caches to resolve pointers efficiently, achieving high throughput and low latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If compressed data sequences are processed using traditional sequential decompression methods, then device complexity is reduced, but productivity and output rate deteriorate due to high latency and limited parallelism
Solution Approach 1:
The decompressor divides compressed data sequences into three separate parallel processing streams: a literal stream for literal bytes, a history cache stream for recent matches, and a history buffer stream for older matches. This segmentation enables simultaneous processing of different data types through dedicated pipelines, achieving output rates of at least 30 Gigabytes per second while managing complexity through functional specialization of each stream
Solution Approach 2:
The patent introduces a temporal dimension to parallel processing by organizing history data into two distinct time-based streams: history cache for recent data (within threshold bytes) and history buffer for older data. This dimensional separation allows the system to access historical data at different latency requirements simultaneously, resolving the contradiction between fast output rate and manageable device complexity
2Productivity
If parallel processing streams are implemented to improve throughput, then productivity increases, but device complexity and memory requirements increase
Solution Approach 1:
The patent applies local quality by providing different memory access characteristics to different processing streams: the history cache stream uses a threshold-based mechanism for rapid access to recent data, while the history buffer stream uses sequential access for older data. The assembly buffer is organized with multiple banks and ports to provide localized high-speed access to each stream, achieving high throughput without uniformly increasing complexity across the entire system
Solution Approach 2:
The assembly buffer serves multiple functions simultaneously: it acts as an output buffer for decompressed data, a history buffer for storing recent decompressed sequences, and a source for both history cache and history buffer streams. This multi-functionality reduces the need for separate dedicated memory structures, increasing throughput while controlling device complexity through resource sharing
Data Source
AI summary
An example method of low-latency decompression includes receiving a data read request to read data stored, in a compressed storage format, in a memory, and responsive to receiving the data read request, accessing compressed data sequences, splitting the compressed data sequences into three separate streams for parallel processing, the three separate streams including (i) a literal stream, (ii) a history cache stream, and (iii) a history buffer stream, for each data sequence in the literal stream, determining a literal decompressed block offset for the data sequence, for each data sequence in the history cache stream, determining a decompressed block offset using one or more history cache pointers associated with the data sequence, for each data sequence in the history buffer stream, determining the decompressed block offset via a history buffer, and generating a data output responsive to the data read request.


