Frequent Value Locality and its Applications

By studying the behavior of programs in the SPEC95 benchmark suite we have observed the frequent value phenomenon according to which a few values appear very frequently in memory locations and are therefore involved in a large fraction of memory accesses. Moreover we have observed that the set of frequent values remains stable over the execution of the program and these values are distributed fairly uniformly across the memory. In addition to describing the frequent value phenomenon I will describe two applications of the phenomenon. In the first application, by transmitting values belonging to a dynamically changing set of frequent values in encoded form, we greatly reduce the switching activity on a CPU's external data bus. In the second application, by storing values belonging to a fixed set of frequent values in compressed encoded form, we significantly reduce the energy consumed by the data cache.

Slides in html format