Shared Dictionary Cache Compression for Better Data Locality

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cache systems face challenges in balancing cache capacity, access latency, and power consumption, with traditional cache compression techniques failing to effectively exploit data value locality for improved compressibility.

Innovation Solution

Implementing a flexible dictionary sharing mechanism in set-associative caches, where cache lines are mapped to the best-suited dictionary among multiple candidates based on data value locality, using an offset field to adjust the set mapping and storing dictionaries in an array for shared use across cache lines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If traditional cache compression techniques are used, then cache capacity is reduced, but data value locality is not effectively exploited leading to lower compressibility

Engineering Contradiction:
Improvecache capacityVSAvoidcompressibility
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

Multiple dictionaries are merged into a shared resource pool that can be flexibly allocated across different cache sets. Instead of each set having its own dedicated dictionary, the system combines multiple dictionaries into a shared array that can serve multiple cache lines, thereby improving compressibility through better data value locality exploitation while reducing overall cache capacity consumption.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The dictionary allocation is made dynamic through an offset field mechanism that allows cache lines to be flexibly mapped to different dictionaries based on data characteristics. The offset field enables runtime adjustment of dictionary selection, allowing the system to adapt to different data patterns and maximize compressibility without fixed static assignments.

Inventive Principle:
Principle #15Dynamics

2Quantity of substance

If larger caches are used to gain more capacity, then cache capacity increases, but access latency increases and power consumption increases

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

Solution Approach 1:

Redundant data is extracted from the cache through compression, removing unnecessary copies while retaining essential information. By extracting and eliminating redundant data representations, the system reduces the effective cache size needed to store the same amount of useful data, thereby reducing access latency and power consumption without sacrificing capacity for useful data.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system changes the representation parameter of cached data by applying compression transformations. Data is stored in a compressed form with higher information density, allowing the same physical cache capacity to effectively hold more useful data, thereby reducing the need for larger cache structures and their associated latency and power costs.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If dictionaries are allocated only to specific sets, then set mapping is simplified, but data redundancy across cache lines cannot be exploited

Engineering Contradiction:
Improveset mapping complexityVSAvoiddata redundancy exploitation
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

Dictionaries are given universal functionality by making them shareable across multiple cache sets. Instead of being restricted to single-set usage, dictionaries in the shared array can serve multiple cache lines from different sets, enabling the system to exploit data redundancy across broader ranges of cache lines while maintaining relatively simple set mapping through the offset field mechanism.

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

Data Source

PatentEP4287031B1Flexible dictionary sharing for compressed caches
Publication Date: 2025.11.19 ADVANCED MICRO DEVICES INC
  • EP4287031B1 patent drawingFigure 1
  • EP4287031B1 patent drawingFigure 2
  • EP4287031B1 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.