LZ77 Decompression Hardware-Software Partitioning for Branch Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software methods for decompressing LZ77-based compression algorithms, such as Snappy, 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 decompression, then flexibility and adaptability are maintained, but decompression speed and processing efficiency deteriorate due to conditional 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 capability to handle complex cases, thereby resolving the contradiction between speed and complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention 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 directly improves decompression speed while the slow path retains variable-length support for complex cases, balancing speed and computational 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 architecture 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 fast path mode for standard fixed-length tokens, achieving high throughput, while automatically transitioning to slow path mode for exceptional cases. This dynamic behavior allows the hardware to maintain high productivity without permanently increasing complexity for all operation types.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The hardware accelerator acts as an intermediary component that offloads the computationally intensive token generation from the software processor. By generating fixed-length tokens in hardware, the system achieves high throughput while the software processor focuses on higher-level decompression logic, effectively distributing complexity across hardware and software layers.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If conditional data-dependent branches are eliminated, then processing efficiency improves, but the ability to handle variable-length tokens deteriorates

Engineering Contradiction:
Improvetime lost to conditional branchesVSAvoidtoken format flexibility
Core Design Contradiction:
Loss of timeVSAdaptability or versatility

Solution Approach 1:

The token processing is segmented into fast path handling for fixed-length tokens (which eliminates conditional branches) and slow path handling for variable-length tokens. This segmentation resolves the contradiction by ensuring that the time-critical path operates without branches while variable-length support remains available through the alternative slow path.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system applies fixed-length token processing (partial action) to the majority of cases where this is sufficient, achieving high efficiency. For the minority of cases requiring variable-length tokens, the slow path provides the necessary flexibility. This partial application of fixed-length processing resolves the contradiction by optimizing for the common case while preserving adaptability when needed.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10666288B2Systems, methods, and apparatuses for decompression using hardware and software
Publication Date: 2020.05.26 INTEL CORP
  • US10666288B2 patent drawing
  • US10666288B2 patent drawing
  • US10666288B2 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.