Abstract

Understanding program behavior is at the foundation of computer architecture andprogram optimization. Programs pass through different behaviors where theirperformance characteristics and hardware resource requirements vary. Programphase detection and classification research aiming to understand the program timevaryingbehavior, can unlock a lot of phase-based optimizations which are speciallytailored to improve the performance of each individual program phase. In this paper,we introduce an efficient run-time phase detection and classification technique, basedon tracking changes in the L2 cache access pattern of different portions in theprogram execution. The proposed technique monitors a running program and keepstrack what phase the running program is currently executing, with no need torecompile the tracked program, and with execution time overhead of 4%, on average.Performance Monitoring Unit (PMU) is exploited to sample the memory addressescausing L1 data cache misses. This profiling data is used to construct the CacheAccess Signature Vectors (CASVs) that accurately reflect the L2 cache accesspatterns for each interval of execution. By comparing CASVs, the proposedtechnique classifies the program into a set of stable phases with high degree of intraphasehomogeneity. Our evaluation shows that phase changes detected by ourtechnique have strong correlation with the variation in Instruction Per Cycle (IPC).Furthermore, our technique can contribute in reducing L2 cache miss rates, andoptimizing L2 cache utilization, through its direct capability of estimating per-phaseL2 cache demand

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call