A Primer on Compression in the Memory Hierarchy
This primer is intended for readers who are interested in learning about the different ways that data compression can be applied to the computer memory hierarchy, including caches, main memory, and the links that connect them. is audience includes computing industry professionals and graduate students. We expect our readers to be familiar with the basics of computer architecture. Knowing the details of out-of-order execution is unnecessary, but readers should be comfortable with the basics of cache and memory hierarchy design. is primer’s primary goal is to provide readers with a basic understanding of the key chal- lenges and opportunities in applying data compression to the memory hierarchy. We address the complementary issues of data compression and data compaction, presenting high-level concepts and how they manifest in previously proposed designs. We introduce a taxonomy to help un- derstand which compression algorithms are most applicable to different levels of the memory hierarchy. We use another taxonomy to classify different ways of compacting variable-size com- pressed blocks into memory structures that are classically designed to hold fixed-size blocks. A secondary goal of this primer is to make readers aware of the opportunity that data com- pression has to improve the performance, energy efficiency, and cost of future computer systems. We believe that technology trends are converging in such a way as to make data compression a compelling solution and hope this primer may help expedite its widespread adoption throughout the memory system. It is not a goal of this primer to cover all topics in depth, but rather to cover the basics and help readers identify which topics they may wish to pursue in greater depth.