Report Number: CSL-TR-95-673
Institution: Stanford University, Computer Systems Laboratory
Title: Informing Loads: Enabling Software to Observe and React to
Author: Horowitz, Mark
Author: Martonosi, Margaret
Author: Mowry, Todd C.
Author: Smith, Michael D.
Date: July 1995
Abstract: Memory latency is an important bottleneck in system
performance that cannot be adequately solved by hardware
alone. Several promising software techniques have been shown
to address this problem successfully in specific situations.
However, the generality of these software approaches has been
limited because current architectures do not provide a
fine-grained, low-overhead mechanism to observe memory
behavior directly. To fill this need, we propose a new set of
memory operations called informing memory operations, and in
particular, we describe the design and functionality of an
informing load instruction. This instruction serves as a
primitive that allows the software to observe cache misses
and to act upon this information inexpensively (i.e. under
the miss, when the processor would typically be idle) within
the current software context.
Informing loads enable new solutions to several important
software problems. We demonstrate this through examples that
show their usefulness in (i) the collection of fine-grained
memory profiles with high precision and low overhead and (ii)
the automatic improvement of memory system performance
through compiler techniques that take advantage of cache-miss
information. Overall, we find that the apparent benefit of
an informing load instruction is quite high, while the
hardware cost of this functionality is quite modest. In
fact, the bulk of the required hardware support is already
present in today's high-performance processors.