Dictionary Compression Buffer Sharing for Higher Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current dictionary compression methods in memory systems face challenges in achieving high throughput due to large circuit scales required for dictionary coding, particularly when processing increased data volumes, as they need to read data from multiple memory banks for each cycle, leading to inefficient compression and decompression processes.

Innovation Solution

The proposed dictionary compression device reduces circuit scale by using a configuration that shares read data between odd-numbered and even-numbered target substrings, employing a hash value transformed from odd-numbered target substrings as the dictionary address, and comparing target data strings with dictionary data to acquire match lengths, thereby reducing the number of reads from the dictionary buffer and optimizing compression efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If dictionary coding is performed by reading data from multiple memory banks for each cycle to process increased data volumes, then processing throughput is improved, but circuit scale and complexity increase

Engineering Contradiction:
Improveprocessing throughputVSAvoidcircuit scale
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the processing of odd-numbered and even-numbered target substrings by sharing read data from the dictionary buffer. Specifically, read data read in response to a dictionary address generated from an odd-numbered target substring is also used for processing the even-numbered target substring adjacent to it, combining two processing streams into one shared resource usage.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The read data from the dictionary buffer serves multiple functions: it is used both for processing the odd-numbered target substring that generated the dictionary address and for processing the adjacent even-numbered target substring. This multi-functional use of the same read data reduces the total number of reads required.

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

2Productivity

If the number of reads from the dictionary buffer is increased to process more substrings per cycle, then compression throughput is improved, but the number of circuit elements increases

Engineering Contradiction:
Improvecompression throughputVSAvoidnumber of circuit elements
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent combines the read operations for odd-numbered and even-numbered target substrings by making the read data shared between both processing streams. This merging approach allows the system to process multiple substrings per cycle without proportionally increasing the number of read circuit elements.

Inventive Principle:
Principle #5Merging (Combining)

3Speed

If data is read from multiple memory banks simultaneously to increase processing speed, then compression speed is improved, but circuit complexity and resource requirements increase

Engineering Contradiction:
Improvecompression speedVSAvoidcircuit complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent merges read operations across different target substrings by sharing the read data resource. Instead of having separate read paths for each target substring, the system uses a shared read data path that serves multiple substrings, reducing circuit complexity while maintaining processing speed.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS12001339B2Dictionary compression device and memory system
Publication Date: 2024.06.04 KIOXIA CORP
  • US12001339B2 patent drawing
  • US12001339B2 patent drawing
  • US12001339B2 patent drawing

AI summary

According to one embodiment, a dictionary buffer stores dictionary data including a first substring and data before the first substring. A substring generator generates, from second input data, second substrings. A transformer transforms each of the second substrings into a hash value. A read processor reads the dictionary data, using a hash value transformed from a third substring among the second substrings. An acquisition unit compares a data string including the third substring and data before the third substring with the read dictionary data, and acquire first and second match lengths of the third and fourth substrings. A coded data generator generates coded data based on the acquired first and second match lengths.