Hash-Based Compression Accelerator for Longest String Match Search

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Hash-based compression methods in software perform worse than dedicated hardware, necessitating acceleration techniques for hash-based compression using hardware apparatuses.

Innovation Solution

A compression accelerator comprising a sliding window buffer, lookahead buffer, string comparators, shifter-and-comparator, outcome inspector, and controller, which repeatedly compares successive characters of a string with all characters of another string to determine the longest matched length, updating the match length and shifting the buffer accordingly.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If hash-based compression is implemented in software, then flexibility and ease of implementation are improved, but processing speed and performance deteriorate

Engineering Contradiction:
Improveease of implementationVSAvoidprocessing speed
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent replaces software-based hash computation and string matching with dedicated hardware circuits including hash function units, string comparators, and buffer management logic. This hardware substitution directly addresses the performance bottleneck while maintaining the hash-based compression algorithm's flexibility, as the hardware is designed to implement the same logical operations as software but with parallel processing capability.

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

Solution Approach 2:

The patent introduces intermediate hardware components such as sliding window buffers, lookahead buffers, and match registers that mediate between data input and compression output. These intermediaries enable pipelined processing and parallel comparisons, allowing the system to achieve high throughput while maintaining software-like algorithmic flexibility through configurable hardware parameters.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If dedicated hardware is used for compression acceleration, then processing speed is improved, but device complexity increases

Engineering Contradiction:
Improveprocessing speedVSAvoidhardware complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the compression task into distinct hardware modules: hash function units for key generation, sliding window buffers for reference data storage, string comparators for pattern matching, and control logic for pipeline management. Each segment operates independently and can be optimized separately, reducing overall design complexity while enabling parallel processing for high speed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent designs universal hardware components that can handle multiple compression operations. For example, the string comparator can compare multiple patterns simultaneously, the buffer management logic can handle both sliding window and lookahead operations, and the hash function unit can generate different types of hash keys. This multi-functionality reduces the need for separate dedicated circuits for each operation, simplifying the overall hardware architecture.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9985648B1Methods for accelerating hash-based compression and apparatuses using the same
Publication Date: 2018.05.29 VIA ALLIANCE SEMICON CO LTD
  • US9985648B1 patent drawing
  • US9985648B1 patent drawing
  • US9985648B1 patent drawing

AI summary

The invention introduces a method for accelerating compression, performed in a compression accelerator, including: repeatedly executing a loop for determining the longest matched-length between a first string and a second string. Each iteration of the loop includes: obtaining n successive characters from the first string as a source string, wherein n is greater than 1; comparing each character of the source string with all characters of the second string, so as to generate n first-match-results corresponding to the n successive characters of the source string respectively; generating a second-match-result according to the n first-match-results; and determining whether a continuous match of the n successive characters is presented according to the second-match-result. If so, n is added to the matched length and the next iteration of the loop is continued to execute. Otherwise, a matched length is updated and output and the loop is exited.