The focus of this work is on utilizing the state of objects during their lifespan in optimizing the leakage energy consumed in the data caches when executing embedded Java applications. Our analysis reveals that a major portion of the leakage energy is actually wasted in retaining the objects beyond their last use. In order to eliminate this wastage, we investigate three approaches that use the garbage collector, escape analysis and last use analysis for reducing leakage energy. Finally, we track the access gap between successive object accesses to reduce leakage energy of live objects. A combination of these schemes is shown to provide 21% data cache leakage energy reduction in our default configuration. Categories and Subject Descriptors B.3.m [Hardware]: B.3 Memory Structures—Miscellaneous General Terms Algorithms, Experimentation Keywords Java, cache, leakage energy
Guangyu Chen, Narayanan Vijaykrishnan, Mahmut T. K