Hardware Compression Subsystem for Longest-Match Data Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data compression methods using software require a general-purpose processor to perform numerous operations and memory accesses, leading to inefficiencies in processing and power consumption.

Innovation Solution

A hardware-based compression subsystem that compares substrings from original data to stored data in a history buffer to generate commands for compressed data, using a comparator, match detector, and command generator to selectively output literal write and string copy commands, thereby reducing the need for software processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If software-based compression is used, then data compression functionality is achieved, but processing efficiency deteriorates due to large number of operations and memory accesses

Engineering Contradiction:
Improvecompression processing efficiencyVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent replaces software-based compression operations with a dedicated hardware compression subsystem. This subsystem includes a history buffer for storing previous data, a comparator for parallel comparison operations, and a command generator for producing compression commands. By implementing the compression logic in hardware rather than software, the system achieves significant improvements in processing efficiency and reduces power consumption, as the hardware circuitry can perform comparisons and generate commands in parallel without the overhead of software interpretation and multiple memory accesses.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Speed

If software compression is used, then compression operations are performed, but processing speed deteriorates due to general-purpose processor requirements

Engineering Contradiction:
Improvecompression processing speedVSAvoidprocessor operation complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent divides the compression system into distinct functional modules: a history buffer module for data storage, a comparator module for pattern matching, and a command generator module for output generation. Each module performs a specific function and can operate independently in parallel. This segmentation allows the system to achieve high processing speeds by eliminating the sequential bottlenecks inherent in general-purpose processor execution, while each module remains relatively simple in design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a dedicated compression subsystem as an intermediary between the data source and the storage/transmission destination. This subsystem acts as a specialized processor that handles compression operations, freeing the general-purpose processor from these tasks. The compression subsystem includes intermediate structures such as the history buffer that mediates between input data and the comparison operations, enabling efficient processing without requiring complex general-purpose processor involvement.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11593311B2Compression system with longest match processing for generating compressed data
Publication Date: 2023.02.28 ATI TECHNOLOGIES ULC
  • US11593311B2 patent drawing
  • US11593311B2 patent drawing
  • US11593311B2 patent drawing

AI summary

An electronic device, including a compression subsystem with a comparator, a history buffer, a match detector, and a command generator, performs operations for generating compressed data from original data. The compression subsystem, starting in each cycle of a clock, processes a search string that is copied from original data to generate commands for compressed data. For processing each search string, the comparator compares each of N substrings from the search string with stored data from the history buffer to find matches between the substrings and the stored data. The match detector then determines a longest match for each of the substrings. The command generator next selectively outputs commands for the compressed data based on the longest matches for the substrings.