Decompression Header Selection for Stalled DEFLATE Writes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing decompression methods in computing environments, particularly using the DEFLATE technique, face inefficiencies due to the complexity of DEFLATE instructions and the need for managing multiple Dynamic Huffman Table (DHT) blocks, which can lead to stalled operations and resource-intensive memory usage.

Innovation Solution

The solution involves selecting and utilizing specific DHT headers and symbol start positions to efficiently write decompressed data to memory, allowing for optimal throughput and minimal hardware memory usage, while also enabling efficient resumption of decompression operations by saving relevant headers for stalled processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If DEFLATE instruction is used for compression/decompression, then compression capability is provided, but instruction complexity increases and execution time increases

Engineering Contradiction:
Improvecompression capabilityVSAvoidinstruction complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The DEFLATE instruction is divided into multiple micro-operations including separate steps for reading compressed data, identifying Huffman table blocks, selecting appropriate decompression headers, and writing decompressed data. This segmentation allows the complex compression task to be broken down into manageable stages that can be executed efficiently by the processor.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Decompression headers for Dynamic Huffman Tables are pre-calculated and stored in a header buffer before actual decompression occurs. When a compressed data block is encountered, the system retrieves the pre-computed header information rather than calculating it during decompression, significantly reducing execution time and complexity.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If multiple DHT blocks are managed during decompression, then complete decompression is achieved, but memory usage increases and pipeline stalls occur

Engineering Contradiction:
Improvedecompression completenessVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system extracts only the essential decompression header information needed for each DHT block and stores it in a dedicated header buffer. Rather than managing complete DHT blocks in memory, only the critical header data is retained, significantly reducing memory requirements while maintaining decompression completeness.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Decompression headers are pre-computed and stored in a buffer before the actual decompression process begins. This preliminary preparation allows the decompression pipeline to operate efficiently without stalling, as header information is readily available when needed rather than being calculated on-demand during the decompression stream.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If DEFLATE instruction fully consumes source buffer, then compression task is completed, but target buffer management becomes complex and throughput decreases

Engineering Contradiction:
Improvecompression task completionVSAvoidbuffer management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The buffer management process is segmented into distinct phases: reading compressed data from the source buffer, processing decompression headers, writing decompressed data to the target buffer, and managing DHT block transitions. Each phase handles a specific aspect of buffer management, reducing overall complexity while ensuring complete consumption of the source buffer.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements feedback mechanisms to monitor the decompression process, tracking the consumption of source buffers and the generation of target buffers. This feedback allows dynamic adjustment of buffer management strategies, ensuring efficient throughput while maintaining task completion.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11663119B2Select decompression headers and symbol start indicators used in writing decompressed data
Publication Date: 2023.05.30 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11663119B2 patent drawing
  • US11663119B2 patent drawing
  • US11663119B2 patent drawing

AI summary

One or more units of decompressed data of a plurality of units of decompressed data is written to a target location for subsequent writing to memory. The plurality of units of decompressed data includes a plurality of symbol outputs and has associated therewith a plurality of decompression headers. A determination is made that the subsequent writing to memory of at least a portion of another unit of decompressed data to be written to the target location is to be stalled. A symbol start position of the other unit of decompressed data and a decompression header of a selected unit of the one or more units of decompressed data written to the target location are provided to a component of the computing environment. The decompression header is used for the subsequent writing of the other unit of decompressed data to memory.