Reducing Memory Traffic with CRegs
Peter Dahl, Matthew O'Keefe
keefe@ee.umn.edu, dahl@ee.umn.edu
Abstract
Array and pointer references are often ambiguous in that compile time analysis
cannot always determine if distinct references are to the same object.
Ambiguously aliased objects are not allocated to registers by conventional
compilers due to the cost of the loads and stores required to keep register
copies consistent with memory and each other. There are several hardware and
software strategies that can be used to solve he ambiguous alias problem; we
have implemented one such scheme called CRegs in a compiler and instruction
level simulator. We present a modification to Brigg's Optimistic Coloring
Algorithm that allows us to allocate local and parameter arrays to CRegs. The
CRegs register file operation and instruction set modifications required to
implement this scheme are discussed. Underlying hardware issues such as
pipeline impact and chip area are briefly discussed. Several benchmarks are
compared in terms of dynamic instructions executed for two CReg set sizes. THe
measured reduction in memory operations is significant, averaging 23% for the
benchmarks shown.
Talk
Overheads (193167 bytes)