LZ77 Decompression Hardware Accelerator With Fixed-Length Tokens

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software methods for LZ77 decompression are limited by conditional data-dependent branches and load latencies, which affect the critical path of decoding and hinder performance in decompression processes.

Innovation Solution

The implementation of a hardware accelerator that efficiently partitions computations between fixed-function hardware and software, using a fast and slow path approach to eliminate data-dependent branches and reduce the number of instructions in the critical loop, with a focus on generating fixed-length tokens for streamlined decompression.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If software methods are used for LZ77 decompression, then flexibility and adaptability are maintained, but decompression speed and processing efficiency deteriorate due to conditional data-dependent branches and load latencies

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

Solution Approach 1:

The decompression process is segmented into two distinct paths: a fast path for common cases with fixed-length tokens, and a slow path for exceptional cases requiring variable-length processing. This segmentation allows the system to achieve high speed for the majority of operations while maintaining the ability to handle complex cases, effectively resolving the contradiction between speed and computational complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameter of token length from variable (in traditional software methods) to fixed in the fast path, which eliminates conditional branches and load latencies. This parameter change dramatically improves decompression speed for common cases while the slow path retains variable-length support for exceptional cases, balancing speed and complexity.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If fixed-length tokens are generated in hardware, then processing speed improves and dependencies are reduced, but hardware complexity increases

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

Solution Approach 1:

The system dynamically selects between fast path and slow path processing based on the input data characteristics. The hardware accelerator operates in the fast path for high-throughput scenarios with fixed-length tokens, while automatically transitioning to the slow path when variable-length tokens are detected, thus achieving high productivity without permanently increasing hardware complexity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces an intermediary token format that serves as a bridge between hardware processing and software decompression. The fixed-length intermediate tokens generated by hardware can be efficiently processed by software, acting as an intermediary representation that maximizes the benefits of both hardware speed and software flexibility while minimizing overall system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10135461B2Systems, methods, and apparatuses for decompression using hardware and software
Publication Date: 2018.11.20 INTEL CORP
  • US10135461B2 patent drawing
  • US10135461B2 patent drawing
  • US10135461B2 patent drawing

AI summary

Detailed herein are embodiments of systems, methods, and apparatuses for decompression using hardware and software. In hardware, an input buffer stores incoming input records from a compressed stream. A plurality of decoders decode at least one input record from the input buffer out output an intermediate record from the decoded data and a subset of the plurality of decoders to output a stream of literals. Finally, a reformat circuit formats an intermediate record into one of two types of tokens.