Sliding-Window Decompression Pipeline With Queued History Buffer Writes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data compression and decompression systems face inefficiencies in memory access and storage due to the need to frequently read from and write to history buffers for Lempel-Ziv (LZ) compressed data, leading to potential collisions and pipeline stalls.

Innovation Solution

An integrated circuit with a history buffer memory using single-ported memory banks and a write queue that coalesces write operations, allowing concurrent read and write operations while prioritizing reads over writes, reducing collisions and pipeline stalls by using a write queue to handle decompressed data before writing it to the history buffer memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multi-ported memory banks are used to allow concurrent read and write operations, then memory access efficiency is improved, but device complexity and cost increase

Engineering Contradiction:
Improvememory access efficiencyVSAvoidmemory bank complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A write queue is introduced as an intermediary component between the decompression logic and the history buffer memory. The write queue temporarily holds write data and coordinates access timing, allowing the single-ported memory to efficiently handle sequential read-write operations without requiring complex multi-ported memory structures.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The memory access operations are segmented into distinct phases: read operations are performed first to retrieve compression history data, then write operations are performed to store decompressed data. This temporal segmentation allows a single memory port to handle both operations sequentially, avoiding the need for simultaneous multi-ported access.

Inventive Principle:
Principle #1Segmentation

2Reliability

If frequent read and write operations are performed on history buffer memory, then decompression functionality is maintained, but memory access collisions and pipeline stalls increase

Engineering Contradiction:
Improvedecompression functionalityVSAvoiddecompression speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Read operations are performed before write operations in each decompression cycle. By retrieving the necessary history buffer data first, the system ensures that decompression logic has the required information before generating write data, preventing write operations from blocking subsequent read operations and avoiding pipeline stalls.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The write queue serves as a mediator that buffers write data until the memory is ready to accept it. This decouples the write generation process from the actual write execution, allowing read operations to proceed without being blocked by write operations, thereby maintaining high decompression throughput.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If single-ported memory banks are used to reduce complexity and cost, then concurrent read and write operations are limited, but memory access efficiency deteriorates

Engineering Contradiction:
Improvememory bank complexityVSAvoidmemory access efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

Memory access is organized into periodic cycles where read operations and write operations are separated into distinct time slots. During each cycle, the single memory port first service read requests, then service write requests. This periodic scheduling ensures that no conflicts occur while maintaining efficient utilization of the memory resource.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The write queue acts as a mediator that smooths out write operation timing. By accumulating write data and releasing it in coordinated batches, the write queue prevents write operations from conflicting with read operations, allowing the single-ported memory to maintain high efficiency despite its limited concurrency capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10489159B2Pipelined decompression of sliding window compressed data
Publication Date: 2019.11.26 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10489159B2 patent drawing
  • US10489159B2 patent drawing
  • US10489159B2 patent drawing

AI summary

Decompressing sliding window compressed data requires reference to previously decompressed character sequences. Previously decompressed data is stored in a history buffer to satisfy these ‘back references.’ As each decompressed/decoded character is emitted, it is stored in this history buffer. Thus, for each decompressed character that is emitted, the history buffer may need to be accessed at least twice—once to retrieve the backreference, and once to store the emitted character. A pipeline architecture is disclosed that stores decompressed characters in a write queue that coalesces eight or more emitted characters before they are stored in the history buffer memory. This reduces collisions between accessing the history buffer memory to retrieve the backreferences and the storing of the emitted character. This also allows the use of a single-ported memory which is less expensive than a multi-ported memory.