Flexible Dictionary Sharing in Compressed Caches for Low-Latency Capacity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing cache systems face challenges in optimizing cache capacity while minimizing access latency and power consumption, as larger caches increase latency and consume more resources, and traditional compression techniques have limited ability to exploit data value locality.
Innovation Solution
The implementation of a flexible dictionary sharing mechanism in compressed caches, where each cache line is mapped to a set with a dictionary that achieves the best compression ratio, using an array of dictionaries that can be shared among multiple cache lines, and an offset field to modify the mapping for improved compressibility.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If larger caches are used to gain more capacity, then cache capacity is improved, but access latency increases and power consumption increases
Solution Approach 1:
The patent creates compressed copies of cache data using dictionaries that represent common data patterns. Instead of storing full cache lines, the system stores compressed representations that reference dictionary entries, effectively increasing cache capacity without proportionally increasing physical cache size or access latency.
Solution Approach 2:
The patent changes the representation parameters of cache data by introducing compression ratios and dictionary-based encoding. Data is transformed from full-width storage to compressed formats with variable compression ratios, allowing the same physical cache space to hold more effective cache capacity while maintaining access performance.
2Quantity of substance
If larger caches are used to gain more capacity, then cache capacity is improved, but power consumption increases
Solution Approach 1:
The patent uses compressed copies of cache data that require less physical storage space. By storing compressed representations instead of full cache lines, the system achieves higher effective cache capacity with the same physical resources, thereby reducing power consumption compared to implementing a physically larger cache.
Solution Approach 2:
The patent merges the cache storage function with dictionary-based compression structures. The dictionary and compressed cache data work together as an integrated system, allowing the cache to achieve higher effective capacity without the linear power consumption increase that would result from simply adding more cache memory cells.
3Quantity of substance
If traditional compression techniques are used, then some space savings are achieved, but the ability to exploit data value locality is limited
Solution Approach 1:
The patent creates a universal dictionary structure that can represent multiple types of data patterns and value localities. The dictionary-based compression system can adapt to different data characteristics within the same cache structure, enabling it to exploit various forms of data value locality (temporal, spatial, and value-based) that traditional compression techniques cannot handle effectively.
Solution Approach 2:
The patent implements a dynamic compression system where the dictionary can be updated and adapted based on observed data patterns. The compression approach transitions from static traditional methods to dynamic dictionary-based compression that learns and adapts to data value locality characteristics, improving space utilization while maintaining adaptability to different data types and access patterns.
Data Source
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.


