SSD Compression Engine With Compact History Buffer Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current solid-state drive (SSD) compression algorithms, such as LZ77-based methods, are costly and inefficient in terms of circuitry and area usage, making it challenging to achieve a good compression ratio while meeting bandwidth and speed requirements.

Innovation Solution

A novel compression and decompression engine design that uses a history buffer of a fixed size, encoding literals and pointers, and optimizing pointer length and offset bits to reduce the number of gates required, resulting in a more efficient and cost-effective solution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If LZ77-based compression algorithms (e.g., LZ4, LZFX, LZSS, Snappy) are used to achieve high compression ratios, then compression performance is improved, but circuit complexity and area increase significantly (requiring over three million gates)

Engineering Contradiction:
Improvecompression ratioVSAvoidcircuit area
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent divides the compression algorithm into distinct functional segments: a hash function for pattern matching, a separate encoding module for generating compression codes, and a history buffer for storing recent data. This segmentation allows each component to be optimized independently, reducing overall circuit complexity while maintaining compression effectiveness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of using traditional LZ77 approaches that require large history buffers and complex matching logic, the patent inverts the approach by using a compact hash-based indexing system that references a smaller history buffer. This inversion enables achieving similar compression ratios with significantly reduced circuit area by accessing historical data through hash indices rather than direct sequential search.

Inventive Principle:
Principle #13The other way round (Inversion)

2Manufacturing precision

If larger history buffers are used to improve compression ratios, then more data patterns can be matched, but memory area and access complexity increase

Engineering Contradiction:
Improvecompression ratioVSAvoidhistory buffer area
Core Design Contradiction:
Manufacturing precisionVSArea of stationary object

Solution Approach 1:

The patent pre-computes and stores hash indices of historical data patterns in a compact hash table structure. This preliminary action allows the compression engine to quickly retrieve relevant historical patterns without searching through the entire history buffer, thereby maintaining high compression ratios while using minimal buffer area.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the parameter of history buffer size from large (traditional approach) to small (optimized approach), and compensates by optimizing the hash function parameters and index structure. This parameter transformation enables the system to achieve equivalent compression performance with a much smaller physical buffer area.

Inventive Principle:
Principle #35Parameter changes

3Manufacturing precision

If more circuitry is added to achieve better compression, then compression ratio improves, but power consumption and manufacturing cost increase

Engineering Contradiction:
Improvecompression ratioVSAvoidpower consumption
Core Design Contradiction:
Manufacturing precisionVSUse of energy by moving object

Solution Approach 1:

The patent employs simple, resource-efficient computational structures such as basic hash functions and direct encoding logic that can be implemented with minimal gates. These lightweight components consume less power and are easier to manufacture, achieving acceptable compression ratios without the high power consumption associated with complex compression algorithms.

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

4Device complexity

If compression algorithms are simplified to reduce area, then circuit area decreases, but compression ratio and performance deteriorate

Engineering Contradiction:
Improvecircuit areaVSAvoidcompression ratio
Core Design Contradiction:
Device complexityVSManufacturing precision

Solution Approach 1:

The patent introduces a hash function as an intermediary between the input data and the compression encoding process. This intermediary efficiently identifies repeating patterns by mapping data to hash indices, enabling the simple encoding logic to achieve good compression ratios without requiring complex matching algorithms or large history buffers.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9753666B2Efficient data compression for solid-state memory
Publication Date: 2017.09.05 SK HYNIX NAND PRODUCT SOLUTIONS CORP
  • US9753666B2 patent drawing
  • US9753666B2 patent drawing
  • US9753666B2 patent drawing

AI summary

Compression and decompression technology within a solid-state device (SSD) is disclosed that provides a good compression ratio while taking up less on-chip area. An input interface receives an input stream to be compressed. An output interface provides a compressed stream. A history buffer is of a fixed size that is a fraction of a size of a data buffer. Processing logic encodes into the compressed stream element types, literals and pointers, the latter which reference copies of data found elsewhere within the history buffer during compression. The history buffer may be multiple banks in width, where the data is loaded from the input stream sequentially across rows of the banks. The decompression side may be similarly designed, optionally with a different number of banks. The pointers may be a fixed two bytes including four bits for length and eleven bits for offset of back reference to a copy (or other combination).