Inline Compression Metadata Using Hash Blocks in Data Buffers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data compression techniques require separate metadata buffers to indicate compressed and uncompressed data blocks, leading to inefficiencies in storage and bandwidth usage, and are prone to collisions when hash values match uncompressed data.

Innovation Solution

The use of inline hash blocks within a buffer to indicate compression status, where blocks are grouped and hash functions are chosen to prevent collisions, allowing for efficient storage and transmission of compressed data without separate metadata buffers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If separate metadata buffers are used to indicate compressed and uncompressed data blocks, then compression status can be tracked, but storage and bandwidth requirements increase

Engineering Contradiction:
Improvecompression status trackingVSAvoidstorage and bandwidth requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent combines the metadata buffer and data buffer into a single unified buffer structure. Hash blocks containing compression status information are interleaved directly with data blocks within the same buffer memory, eliminating the need for separate metadata storage and reducing overall memory requirements.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The metadata (hash blocks) are nested within the data buffer structure itself. Each hash block is embedded alongside corresponding data blocks, creating a hierarchical organization where compression metadata is contained within the same memory space as the actual data, optimizing memory utilization.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Productivity

If hash functions are used to indicate compressed blocks, then compression metadata can be generated, but collisions occur when hash values match uncompressed data

Engineering Contradiction:
Improvecompression metadata generationVSAvoidcollision prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The buffer is segmented into fixed-size blocks where every fourth block is designated as a hash block and the remaining three blocks are data blocks. This segmentation ensures that hash values are stored in dedicated locations separate from uncompressed data blocks, preventing hash values from being misinterpreted as uncompressed data.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The hash function acts as an intermediary that transforms compressed data blocks into unique hash values stored in hash blocks. These hash values serve as indicators that mediate between the compressed data and the system needing to identify compression status, with the segmented buffer structure ensuring unambiguous interpretation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

If the same memory allocation is used for compressed and uncompressed data, then memory efficiency is improved, but additional mechanisms are needed to manage compression metadata

Engineering Contradiction:
Improvememory efficiencyVSAvoidmetadata management mechanisms
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The unified buffer serves multiple functions simultaneously: it stores both compressed and uncompressed data blocks, contains hash blocks for compression status indication, and provides a structured format for both storage and retrieval operations. This multi-functionality eliminates the need for separate metadata management mechanisms while maintaining memory efficiency.

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

Data Source

PatentUS10489350B2Data compression with inline compression metadata
Publication Date: 2019.11.26 ADVANCED MICRO DEVICES INC
  • US10489350B2 patent drawing
  • US10489350B2 patent drawing
  • US10489350B2 patent drawing

AI summary

Techniques for handling data compression in which metadata that indicates which portions of data are compressed are which portions of data are not compressed are disclosed. Segments of a buffer referred to as block groups store compressed blocks of data along with uncompressed blocks of data and hash blocks. If a block group includes a block that is a hash of another block in the block group, then the other block is considered to be compressed. If the block group does not include a block that is a hash of another block in the block group, then the blocks in the block group are uncompressed. The hash function to generate the hash is selected to prevent “collisions,” which occur when the data being stored in the buffer is such that it is possible for a hash block and an uncompressed block to be the same.