Hardware Decompression Using Predefined Dictionaries for Small Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing digital computer systems face inefficiencies in data compression and decompression, particularly with small data sizes, as current algorithms like LZ77-type technology struggle to find significant patterns, leading to suboptimal compression ratios and increased latency.

Innovation Solution

A computer system with a hardware accelerator that utilizes pre-defined compression dictionaries stored in an internal millicode storage area, allowing the operating system to select and deliver the appropriate dictionary for decompression, reducing memory allocation overhead and improving performance for small data records.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If LZ77-type compression algorithms are used to compress small data sizes, then the compression process can be performed, but the compression ratio is suboptimal and latency increases

Engineering Contradiction:
Improvecompression ratioVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent pre-calculates and stores compression ratios for different data sizes and compression algorithms in a lookup table during system initialization. When compression is needed, the system quickly queries this pre-computed table to determine the optimal algorithm and parameters, avoiding the time-consuming process of real-time pattern matching and compression ratio calculation that plagues traditional LZ77 algorithms with small data sizes.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the compression problem by creating separate optimization paths for different data size ranges. Instead of using a single LZ77 algorithm for all data sizes, the system divides data into categories (e.g., small, medium, large) and applies different compression strategies to each segment, allowing small data to use more efficient methods while large data benefits from traditional compression algorithms.

Inventive Principle:
Principle #1Segmentation

2Productivity

If traditional compression algorithms perform extensive pattern matching, then compression can be achieved, but memory allocation overhead increases and performance decreases for small data records

Engineering Contradiction:
Improvecompression performanceVSAvoidmemory allocation overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs memory allocation and compression parameter setup in advance by pre-computing compression ratios and storing them in lookup tables. This eliminates the need for dynamic memory allocation during the actual compression of small data records, reducing overhead and improving performance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses lightweight, pre-allocated compression structures that can be quickly instantiated and discarded for small data records. Instead of allocating complex data structures and performing extensive pattern matching for each small record, the system uses simplified compression paths with pre-computed parameters that minimize memory usage and allocation overhead.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Data Source

PatentUS10623016B2Accelerated compression/decompression including predefined dictionary
Publication Date: 2020.04.14 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10623016B2 patent drawing
  • US10623016B2 patent drawing
  • US10623016B2 patent drawing

AI summary

A computer system includes a hardware controller and an internal millicode storage area. The controller includes an accelerator that decompresses a data stream requested by an application. The internal millicode storage area can store a compression dictionary library including a plurality of different pre-defined compression dictionaries. A host system includes a dictionary manager that determines a compression dictionary from the plurality of different pre-defined compression dictionaries included in the dictionary library to decompress the data stream. The accelerator can access the internal millicode storage area to obtain the determined compression dictionary, and to decompress the data stream according to the determined compression dictionary.