Parallel Huffman Decompression for Continuous SSD Data Output
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data decompression systems face inefficiencies in throughput due to sequential processing of compressed Huffman coding tables and payloads, leading to output blanks and reduced performance in memory systems using SSDs with nonvolatile semiconductor memory.
Innovation Solution
A data decompression device is configured with a boundary detection circuit to separate headers and payloads, and parallel processing of decompressing compressed Huffman coding tables and payloads, allowing continuous output without restoration-induced blanks, and includes a payload decoding circuit to decode using restored tables.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If sequential processing is used to restore compressed Huffman coding tables and decode payloads, then processing simplicity is maintained, but throughput is reduced due to output blanks
Solution Approach 1:
The decompression device is divided into multiple independent processing units: a first decompression circuit for restoring compressed Huffman coding tables and a second decompression circuit for decoding payloads. These circuits operate in parallel on different data blocks, eliminating sequential processing bottlenecks and output blanks while maintaining manageable complexity through functional segmentation.
Solution Approach 2:
The first decompression circuit performs preliminary restoration of compressed Huffman coding tables in advance, so that when the second decompression circuit needs to decode payloads, the coding tables are already ready. This preliminary action eliminates waiting time and output blanks, improving throughput without significantly increasing overall system complexity.
2Productivity
If parallel decompression circuits are used for compressed coding tables and payloads, then throughput is improved, but device complexity increases
Solution Approach 1:
The parallel processing architecture is achieved by segmenting the decompression function into two independent circuits: a first decompression circuit dedicated to restoring Huffman coding tables and a second decompression circuit dedicated to decoding payloads. Each circuit processes different data blocks in parallel, improving throughput while keeping individual circuit complexities manageable through clear functional separation.
Solution Approach 2:
Both decompression circuits utilize the same Huffman decoding algorithm and structure, making them universal in function. The first circuit restores coding tables using Huffman decoding, while the second circuit decodes payloads using the restored tables. This multi-functionality approach improves throughput through parallelism without requiring entirely different circuit designs, thus controlling complexity.
3Reliability
If compressed data is stored in nonvolatile semiconductor memory, then data retention is ensured, but decompression efficiency is reduced due to sequential access limitations
Solution Approach 1:
The decompression device segments the compressed data from nonvolatile semiconductor memory into two parallel processing streams: one for restoring Huffman coding tables and another for decoding payloads. This segmentation allows simultaneous processing of multiple data blocks, overcoming sequential access limitations and improving decompression efficiency while maintaining the reliability benefits of nonvolatile storage.
Solution Approach 2:
The parallel decompression circuits enable continuous useful action by eliminating idle time and output blanks. While the first circuit restores coding tables for one data block, the second circuit simultaneously decodes payloads for another data block. This continuous parallel operation maximizes decompression efficiency despite the sequential access nature of nonvolatile semiconductor memory.
Data Source
AI summary
According to one embodiment, a data decompression device includes: a detection circuit configured to detect a boundary between a header and a payload in a compressed stream, based on boundary information in the header; a separation circuit configured to separate the header and the payload; a first decompression circuit configured to decompress a compressed coding table in the header; and a second decompression circuit configured to decompress the payload, based on an output of the first decompression circuit.


