Flexible Dictionary Sharing in Compressed Caches for Better Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cache systems face challenges in maximizing cache capacity while minimizing access latency and power consumption, as they often rely on fixed dictionary-based compression schemes that fail to exploit data value locality effectively, leading to suboptimal compressibility and reduced cache size.

Innovation Solution

The implementation of a flexible dictionary sharing technique in a set-associative cache, where each set can allocate a dictionary only if it can adequately compress cache lines, and a dictionary selector unit determines the best dictionary from multiple candidates to achieve a threshold compression ratio, allowing cache lines with shared data value locality to map to the same set and share dictionaries, thereby improving compressibility.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a fixed dictionary-based compression scheme is used, then the cache structure is simple, but the compressibility is suboptimal and cache size is reduced

Engineering Contradiction:
Improvecache structureVSAvoidcache size
Core Design Contradiction:
Device complexityVSQuantity of substance

Solution Approach 1:

The patent implements dynamic dictionary selection where the cache can choose from multiple candidate dictionaries based on the actual data content. Each cache set maintains a selection of dictionaries, and the appropriate dictionary is selected dynamically during compression operations, allowing the system to adapt to different data patterns rather than using a fixed dictionary structure

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of dictionary selection from fixed to variable. By introducing multiple candidate dictionaries with different characteristics and allowing dynamic selection based on data compressibility metrics, the system optimizes the compression parameter adaptively, improving cache size without significantly increasing structural complexity

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If data value locality is not exploited effectively, then the cache compression scheme is simple, but the compression ratio is reduced

Engineering Contradiction:
Improvecompression schemeVSAvoidcompression ratio
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent employs feedback mechanisms where the compression performance is evaluated and used to select the best dictionary. The system monitors compression ratios achieved with different dictionaries and uses this feedback to make informed selection decisions, thereby improving compression ratio while keeping the scheme manageable through performance-based adaptation

Inventive Principle:
Principle #23Feedback

3Quantity of substance

If cache capacity is increased using larger caches, then the cache capacity is improved, but the access latency increases and power consumption increases

Engineering Contradiction:
Improvecache capacityVSAvoidaccess latency
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent uses compression to create a more compact representation of cache data, effectively copying the same information in a reduced space. This allows the same cache capacity to store more data or the same amount of data to occupy less physical space, thereby increasing effective cache capacity without proportionally increasing access latency or power consumption associated with larger physical cache structures

Inventive Principle:
Principle #26Copying

Data Source

PatentEP4018318B1Flexible dictionary sharing for compressed caches
Publication Date: 2023.10.04 ADVANCED MICRO DEVICES INC
  • EP4018318B1 patent drawingFigure 1
  • EP4018318B1 patent drawingFigure 2
  • EP4018318B1 patent drawingFigure 3

AI summary

Systems, apparatuses, and methods for implementing flexible dictionary sharing techniques for caches are disclosed. A set-associative cache includes a dictionary for each data array set. When a cache line is to be allocated in the cache, a cache controller determines to which set a base index of the cache line address maps. Then, a selector unit determines which dictionary of a group of dictionaries stored by those sets neighboring this set would achieve the most compression for the cache line. This dictionary is then selected to compress the cache line. An offset is added to the base index of the cache line to generate a full index in order to map the cache line to the set corresponding to this chosen dictionary. The compressed cache line is stored in this set with the chosen dictionary, and the offset is stored in the corresponding tag array entry.