Base Value Delta Compression for Memory Bandwidth Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data compression techniques in computing devices, such as GPUs, are inefficient, leading to suboptimal use of memory bandwidth and energy consumption, as they fail to adequately compress data during transfer between memory hierarchies, resulting in unnecessary data storage and energy expenditure.
Innovation Solution
Implementing a compressor in the GPU's memory controller that uses base values and delta values to generate compressed data blocks, where base values are stored in a cache and only delta values are transferred when the block size exceeds a threshold, optimizing memory usage and reducing data transfer.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If current data compression techniques are used in GPU memory transfer, then data transfer between memory hierarchies is performed, but compression efficiency is insufficient leading to wasted memory bandwidth and energy consumption
Solution Approach 1:
The patent segments data blocks into base values and delta values, storing base values in a dedicated cache structure. This segmentation allows the system to transfer only delta values over the memory bus, improving bandwidth utilization while reducing energy consumption for data transfer operations.
Solution Approach 2:
The patent performs preliminary compression of data blocks before transfer by calculating delta values relative to base values and storing base values in advance in a cache. This preliminary action enables more efficient compression during actual data transfer operations, improving overall productivity and reducing energy waste.
2Quantity of substance
If base values are stored in compressed data blocks, then complete data is transferred, but storage space is wasted and less data can be stored in memory
Solution Approach 1:
The patent separates base values from delta values in the compressed data structure. Base values are stored in a dedicated cache while only delta values are stored in the compressed data block, increasing the quantity of compressible data that can be stored in memory without significantly increasing structural complexity.
Solution Approach 2:
The patent introduces a base value cache as an intermediary structure between the compressed data blocks and the original data. This intermediary allows the system to reference base values without storing them repeatedly in each data block, increasing storage capacity while managing complexity through a centralized cache management system.
3Speed
If all data blocks are transferred over the memory bus, then complete data is available, but memory bandwidth is wasted and transfer time increases
Solution Approach 1:
The patent extracts base values from the data blocks being transferred over the memory bus and stores them in a cache. Only the smaller delta values are transferred, increasing effective data transfer speed and reducing the time required to move data between memory hierarchies.
Solution Approach 2:
The patent performs preliminary identification and caching of base values before the data transfer operation. This preliminary action allows the transfer to proceed with only delta values, improving speed while minimizing the time spent on data movement operations.
Data Source
AI summary
In some embodiments, a memory controller in a processor includes a base value cache, a compressor, and a metadata cache. The compressor is coupled to the base value cache and the metadata cache. The compressor compresses a data block using at least a base value and delta values. The compressor determines whether the size of the data block exceeds a data block threshold value. Based on the determination of whether the size of the compressed data block generated by the compressor exceeds the data block threshold value, the memory controller transfers only a set of the compressed delta values to memory for storage. A decompressor located in the lower level cache of the processor decompresses the compressed data block using the base value stored in the base value cache, metadata stored in the metadata cache and the delta values stored in memory.


