Parallel Hardware Decompression Engine for Multi-Stream Data
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Decompressing compressed data in software requires a large number of computational operations and memory accesses, making it inefficient.
Innovation Solution
A hardware decompression engine with N decoders and a decompressor is used to decompress compressed data, allowing for parallel decoding of multiple streams and efficient execution of commands to recreate original data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If data is decompressed in software using a general-purpose processor, then the device can handle various compression formats flexibly, but the decompression process requires a large number of computational operations and memory accesses, making it inefficient
Solution Approach 1:
The decompression system is segmented into multiple specialized decoder circuits (first decoder, second decoder, etc.), each dedicated to decoding a specific stream of compressed data. This segmentation allows parallel processing of multiple data streams while maintaining flexibility through configurable decoder assignments, thereby improving decompression efficiency without sacrificing adaptability.
Solution Approach 2:
The patent replaces the software-based decompression mechanism (which uses general-purpose processor instructions and memory accesses) with a hardware-based decompression engine consisting of dedicated decoder circuits. This substitution eliminates the overhead of computational operations and memory accesses associated with software execution, significantly improving decompression efficiency while maintaining format flexibility through configurable hardware decoding.
2Device complexity
If multiple streams of compressed data are processed sequentially in software, then memory management is simplified, but the decompression speed is reduced due to the large number of computational operations required
Solution Approach 1:
The system segments the compressed data into multiple independent streams, each processed by a dedicated decoder circuit in parallel. This segmentation enables simultaneous decomposition of multiple data streams, dramatically increasing decompression speed while the hardware architecture automatically manages memory access patterns, reducing the complexity burden on software.
Solution Approach 2:
The patent transitions from sequential single-stream processing to parallel multi-stream processing by adding the dimension of concurrency. Multiple decoder circuits operate simultaneously on different data streams, transforming the decompression process from a single-threaded sequential operation to a multi-threaded parallel operation, thereby exponentially improving decompression speed.
3Adaptability or versatility
If a general-purpose processor is used for decompression, then the device can perform other operations concurrently, but the processor is occupied with decompression tasks, reducing overall device performance
Solution Approach 1:
The decompression function is segmented off from the general-purpose processor and implemented as a separate hardware decompression engine with dedicated decoder circuits. This segmentation frees the general-purpose processor from decompression tasks, making it available for other operations, while the specialized hardware handles decompression independently and efficiently.
Solution Approach 2:
The hardware decompression engine acts as an intermediary between the compressed data input and the processing systems. It handles the computationally intensive decompression operations independently, allowing the general-purpose processor and other system components to operate concurrently without being blocked by decompression tasks, thereby improving overall device performance and resource utilization.
Data Source
AI summary
An electronic device that includes a decompression engine that includes N decoders and a decompressor decompresses compressed input data that includes N streams of data. Upon receiving a command to decompress compressed input data, the decompression engine causes each of the N decoders to decode a respective one of the N streams from the compressed input data separately and substantially in parallel with others of the N decoders. Each decoder outputs a stream of decoded data of a respective type for generating commands associated with a compression standard for decompressing the compressed input data. The decompressor next generates, from the streams of decoded data output by the N decoders, commands for decompressing the data using the compression standard to recreate the original data. The decompressor next executes the commands to recreate the original data and stores the original data in a memory or provides the original data to another entity.


