Improving Memory Utilization in Cache Coherence Directories

Research output: Contribution to journalArticle

2 Scopus citations

Abstract

Efficiently maintaining cache coherence is a major problem in large-scale shared memory multiprocessors. Hardware directory coherence schemes have very high memory requirements, while software-directed schemes must rely on imprecise compile-time memory disambiguation. Recently proposed dynamically tagged directory schemes allocate pointers to blocks only as they are referenced, which significantly reduces their memory requirements, but they still allocate pointers to blocks that do not need them. We present two compiler optimizations that exploit the high-level sharing information available to the compiler to further reduce the size of a tagged directory by allocating pointers only when necessary. Trace-driven simulations are used to show that the performance of this combined hardware-software approach is comparable to other coherence schemes, but with significantly lower memory requirements. In addition, these simulations suggest that this approach is less sensitive to the quality of the memory disambiguation and interprocedural analysis performed by the compiler than software-only coherence schemes.

Original languageEnglish (US)
Pages (from-to)1130-1146
Number of pages17
JournalIEEE Transactions on Parallel and Distributed Systems
Volume4
Issue number10
DOIs
StatePublished - Oct 1993

Keywords

  • Cache coherence
  • compiler optimization
  • directory
  • dynamic pointer allocation
  • memory overheads
  • shared memory multiprocessor
  • version control

Fingerprint Dive into the research topics of 'Improving Memory Utilization in Cache Coherence Directories'. Together they form a unique fingerprint.

  • Cite this