Compression Search Block Striping for High-Throughput Data Matching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

General-purpose processors are inefficient in handling high-capacity network and storage workloads, particularly in processing packet streams due to their poor performance in data compression and stream processing.

Innovation Solution

A highly programmable data processing unit with specialized hardware accelerators, including a data compression pipeline that performs history-based compression using a search block, hash block, match block, and path block to efficiently compress data streams by replacing repeated byte strings with references to previous occurrences, followed by entropy coding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If general-purpose processors are used for data compression and stream processing, then device versatility is maintained, but processing speed and throughput deteriorate

Engineering Contradiction:
Improveprocessing speedVSAvoidprocessor architecture complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The processor is divided into general-purpose processing cores and specialized hardware accelerators. The hardware accelerators are further segmented into functional blocks including a data compression pipeline with search block, hash block, match block, and path block. This segmentation allows specific compression tasks to be handled by dedicated hardware while general-purpose cores handle other operations, resolving the contradiction between speed and complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Hardware accelerators serve as intermediary components between the general-purpose processing cores and the data compression functions. These accelerators include specialized blocks (search block with hash table, match block with history buffer) that mediate the compression process, providing high-speed processing without requiring the general-purpose cores to directly perform compression operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If hardware accelerators are added to improve compression throughput, then processing capacity increases, but device complexity increases

Engineering Contradiction:
Improvecompression throughputVSAvoidhardware architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The hardware accelerators are designed with multi-functional blocks that can perform various compression operations. The search block can search for patterns in the history buffer, the hash block can compute hash values for different window sizes, and the match block can perform both forward and backward matching. This universality allows a single hardware accelerator to handle multiple compression scenarios, improving throughput without proportionally increasing complexity.

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

3Loss of substance

If larger history buffers are used to improve compression ratio, then compression efficiency increases, but memory access time and complexity increase

Engineering Contradiction:
Improvedata redundancyVSAvoidmemory access time
Core Design Contradiction:
Loss of substanceVSLoss of time

Solution Approach 1:

The history buffer is segmented into multiple banks, allowing parallel access to different portions of the buffer. The match block can simultaneously search multiple banks, reducing the effective access time even though the total buffer size is large. This segmentation resolves the contradiction between maintaining large history buffers for better compression ratios and minimizing memory access time.

Inventive Principle:
Principle #1Segmentation

4Productivity

If multiple byte positions are processed per clock cycle to improve throughput, then processing speed increases, but complexity of the processing pipeline increases

Engineering Contradiction:
ImprovethroughputVSAvoidpipeline complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The hardware accelerator processes multiple byte positions in a periodic manner, with each clock cycle handling a fixed number of positions (e.g., 4 positions per cycle). The pipeline is organized to systematically advance through the input data stream, processing predetermined numbers of byte positions at regular intervals. This periodic processing approach improves throughput while keeping the pipeline complexity manageable through regular, predictable operation patterns.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS10727865B2Data striping for matching techniques in data compression accelerator of a data processing unit
Publication Date: 2020.07.28 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10727865B2 patent drawing
  • US10727865B2 patent drawing
  • US10727865B2 patent drawing

AI summary

A highly programmable device, referred to generally as a data processing unit, having multiple processing units for processing streams of information, such as network packets or storage packets, is described. The data processing unit includes one or more specialized hardware accelerators configured to perform acceleration for various data-processing functions. This disclosure describes a hardware-based programmable data compression accelerator for the data processing unit including a pipeline for performing string substitution. The disclosed string substitution pipeline, referred to herein as a “search block,” is configured to perform string search and replacement functions to compress an input data stream. In some examples, the search block is a part of a compression process performed by the data compression accelerator. The search block may support single and multi-thread processing, and multiple levels of compression effort. In order to achieve high-throughput, the search block processes multiple input bytes per clock cycle per thread.