Parallel Decompression Engine for Multi-Stream Data Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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 command generation and execution to recreate original data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If data is decompressed in software using a general-purpose processor, then the decompression can be performed flexibly, but it requires a large number of computational operations and memory accesses making it inefficient

Engineering Contradiction:
ImproveflexibilityVSAvoiddecompression efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent replaces the software-based decompression mechanism (which uses general-purpose processors and requires numerous computational operations) with a hardware-based decompression engine. This hardware engine includes specialized circuitry such as decoders, command generators, and memory interfaces that directly execute decompression operations, thereby eliminating the inefficiency of software interpretation while maintaining the ability to handle various compression formats through configurable hardware logic.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Productivity

If a hardware decompression engine is used to decompress compressed data, then computational load and memory accesses are reduced, but the device complexity increases

Engineering Contradiction:
Improvedecompression efficiencyVSAvoidhardware complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The hardware decompression engine is segmented into distinct functional modules including multiple decoders (for different compression standards), a command generator, a memory interface, and control logic. Each module performs a specific function in the decompression pipeline, allowing for independent optimization and maintenance while reducing overall system complexity through modular design. This segmentation enables parallel processing of multiple compression streams simultaneously.

Inventive Principle:
Principle #1Segmentation

3Speed

If multiple decoders are used in parallel to decode multiple streams, then decompression speed is improved, but the device complexity and resource requirements increase

Engineering Contradiction:
Improvedecompression speedVSAvoiddecoder complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The hardware decompression engine incorporates multiple decoders that can handle different compression standards (e.g., LZ77, LZ78, deflate) within a unified architecture. Each decoder is designed to be multi-functional, capable of processing various compression formats through configurable parameters and shared resource pools. This universality allows parallel processing of multiple streams with different compression types without requiring entirely separate decoder circuits for each format, thereby improving speed while controlling complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11561797B2Decompression engine for decompressing compressed input data that includes multiple streams of data
Publication Date: 2023.01.24 ATI TECHNOLOGIES ULC
  • US11561797B2 patent drawing
  • US11561797B2 patent drawing
  • US11561797B2 patent drawing

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.