Memory Controller Compression Using Dictionary Match Tags

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current memory systems face challenges in efficiently compressing and decompressing data, which affects bandwidth, power consumption, and write endurance, particularly in systems like phase-change memory, where compression is needed to enhance performance and reduce power usage.

Innovation Solution

A hardware memory controller with integrated compression and decompression engines that utilize a dictionary-based compression format, including a compression engine to compress data by identifying matches and updates in a dictionary, and a decompression engine to efficiently restore the original data, while also incorporating encryption and error correction mechanisms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data compression is implemented in memory systems, then effective bandwidth and power efficiency are improved, but device complexity increases due to the need for compression and decompression engines

Engineering Contradiction:
Improveeffective bandwidthVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent combines the compression engine and decompression engine within a single memory controller device. The compression engine includes a dictionary structure and comparison logic, while the decompression engine uses the same dictionary for decompression. This merging approach allows both compression and decompression functions to share hardware resources, reducing overall device complexity while maintaining high effective bandwidth through efficient data compression.

Inventive Principle:
Principle #5Merging (Combining)

2Loss of energy

If hardware compression engine is integrated into memory controller, then power consumption is reduced, but manufacturing complexity increases

Engineering Contradiction:
Improvepower consumptionVSAvoidmanufacturing complexity
Core Design Contradiction:
Loss of energyVSEase of manufacture

Solution Approach 1:

The dictionary structure serves multiple functions: it is used by the compression engine to identify matching data patterns for compression, and simultaneously used by the decompression engine to restore compressed data. This multi-functional use of the same hardware component reduces the total number of components needed, simplifying manufacturing while achieving power reduction through efficient compression.

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

3Loss of substance

If dictionary-based compression is used, then compression ratio is improved, but access time increases due to dictionary lookup operations

Engineering Contradiction:
Improvecompression ratioVSAvoidaccess time
Core Design Contradiction:
Loss of substanceVSLoss of time

Solution Approach 1:

The dictionary is pre-populated with common data patterns and frequencies before compression operations begin. By having the dictionary ready in advance with frequently occurring patterns, the compression engine can perform quick comparisons without needing to build the dictionary during operation, thereby reducing access time while maintaining high compression ratios.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The comparison logic in the compression engine is designed to check for matches in a localized manner, comparing incoming data against specific entries in the dictionary based on data frequency and pattern. This localized comparison approach, rather than exhaustive searching, reduces the time required for dictionary lookups while still achieving high compression ratios for matching patterns.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10509580B2Memory controller and methods for memory compression utilizing a hardware compression engine and a dictionary to indicate a zero value, full match, partial match, or no match
Publication Date: 2019.12.17 INTEL CORP
  • US10509580B2 patent drawing
  • US10509580B2 patent drawing
  • US10509580B2 patent drawing

AI summary

Methods and apparatuses relating to memory compression and decompression are described, including a memory controller and methods for memory compression utilizing a hardware compression engine and a dictionary to indicate a zero value, full match, partial match, or no match. When indices for multiple sections are the same, an entry in the dictionary may be updated with the value of the section that is most recent, in the same order as in the block of data. In one embodiment, a hardware compression engine is to determine when each section of a plurality of sections of a block of data is a zero value, a full match or a partial match to an entry in a dictionary, or a no match to any entry in the dictionary, encode a tag for each section to indicate the one of the zero value, the full match, the partial match, and the no match, encode a literal when the section is the no match, an index to the entry in the dictionary when the section is the full match, and an index to the entry in the dictionary and non-matching bits when the section is the partial match, and update an entry in the dictionary with a value of a section when the section is the no match, wherein tags for the plurality of sections are to be output from the hardware compression engine in a single field, literals for the plurality of sections are to be output from the hardware compression engine in a single field, indexes for the plurality of sections are to be output from the hardware compression engine in a single field, and non-matching bits for the plurality of sections are to be output from the hardware compression engine in a single field. A hash value may be generated for each of a plurality of sections of a block of data to use as an index in a dictionary.