Cache-conscious data placement

  • Authors:
  • Brad Calder;Chandra Krintz;Simmi John;Todd Austin

  • Affiliations:
  • Dept. of Computer Science and Engineering, University of California, San Diego;Dept. of Computer Science and Engineering, University of California, San Diego;Dept. of Computer Science and Engineering, University of California, San Diego;Microcomputer Research Labs, Intel Corporation

  • Venue:
  • Proceedings of the eighth international conference on Architectural support for programming languages and operating systems
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

As the gap between memory and processor speeds continues to widen, cache eficiency is an increasingly important component of processor performance. Compiler techniques have been used to improve instruction cache pet$ormance by mapping code with temporal locality to different cache blocks in the virtual address space eliminating cache conflicts. These code placement techniques can be applied directly to the problem of placing data for improved data cache pedormance.In this paper we present a general framework for Cache Conscious Data Placement. This is a compiler directed approach that creates an address placement for the stack (local variables), global variables, heap objects, and constants in order to reduce data cache misses. The placement of data objects is guided by a temporal relationship graph between objects generated via profiling. Our results show that profile driven data placement significantly reduces the data miss rate by 24% on average.