Parallel Bitstream Decompression Using Speculative Token Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data decompression methods are sequential and bottlenecked by the need to decode each token in a compressed bitstream before proceeding, limiting decompression throughput and requiring significant computational resources, especially for large files.

Innovation Solution

The method employs speculative decoding with a training phase to identify valid tokens, allowing parallel processing of compressed data segments, which reduces the computational intensity of phase 1 decompression and merges results efficiently, thereby achieving high levels of parallelism and reducing overall decompression time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If sequential decoding of each token is used, then decoding accuracy is maintained, but decompression throughput is limited and computational resources are significantly consumed

Engineering Contradiction:
Improvedecompression throughputVSAvoiddecompression time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The compressed data bitstream is divided into multiple segments that can be decoded in parallel. Each segment is assigned to a separate processing thread, allowing simultaneous decoding operations. The segment trainer identifies valid starting positions for each segment by training multiple threads to speculate on token boundaries, enabling parallel processing while maintaining decoding accuracy through validation checks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A training phase is performed before actual parallel decoding to prepare the system. The segment trainer pre-identifies potential starting positions for segments by having training threads speculate on token boundaries and validate their guesses. This preliminary action enables the main parallel decoding phase to proceed efficiently without needing to validate each token sequentially during compression.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If parallel processing is implemented, then decompression speed is improved, but the complexity of managing multiple threads and ensuring correct decoding increases

Engineering Contradiction:
Improvedecompression speedVSAvoidthread management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements feedback mechanisms where decoded segments are validated to ensure correctness. The segment trainer uses feedback from validation results to adjust and refine starting position guesses for subsequent parallel decoding operations. This feedback loop maintains decoding accuracy while enabling parallel processing by correcting any speculative errors.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

Each parallel decoding thread is self-contained and independently manages its own segment decoding process. The segment trainer automatically identifies valid starting positions and assigns segments to threads without requiring complex external coordination. This self-service approach reduces thread management complexity by making each thread autonomous in its operations.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11258459B2Methods and apparatus to parallelize data decompression
Publication Date: 2022.02.22 INTEL CORP
  • US11258459B2 patent drawing
  • US11258459B2 patent drawing
  • US11258459B2 patent drawing

AI summary

Methods and apparatus to parallelize data decompression are disclosed. An example method selecting initial starting positions in a compressed data bitstream; adjusting a first one of the initial starting positions to determine a first adjusted starting position by decoding the bitstream starting at a training position in the bitstream, the decoding including traversing the bitstream from the training position as though first data located at the training position is a valid token; outputting first decoded data generated by decoding a first segment of the bitstream starting from the first adjusted starting position; and merging the first decoded data with second decoded data generated by decoding a second segment of the bitstream, the decoding of the second segment starting from a second position in the bitstream and being performed in parallel with the decoding of the first segment, and the second segment preceding the first segment in the bitstream.