Tracking Object Life Cycle for Leakage Energy Optimization G. Chen, N. Vijaykrishnan, M. Kandemir, M. J. Irwin Department of Computer Science and Engineering The Pennsylvania State University University Park, PA 16802 gchen, vijay, kandemir, mji @cse.psu.edu M. Wolczko Sun Microsystems, Inc. 2600 Casey Ave Mountain View, CA 94043 mario@eng.sun.com ABSTRACT 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 anal- ysis 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 succes- sive 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 1. INTRODUCTION Optimizing power consumption has become important for a vari- ety of systems ranging from high-performance systems to low end battery-operated devices. While optimizing dynamic power con- sumption has been the focus of most of the previous work, static power consumption due to leakage current is an important concern in future technologies [1]. Unlike dynamic energy consumption, static power is consumed independent of whether the component This research is supported in part by NSF Awards 0103583, 0130143; NSF CAREER Awards 0093082, 0093085; MARCO 98- DF-600 GSRC. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. CODES+ISSS’03, October 1–3, 2003, Newport Beach, California, USA. Copyright 2003 ACM 1-58113-742-7/03/0010 ...$5.00. is accessed or not. Specifically, leakage power consumption is pri- marily dependent on the technology used and the number of tran- sistors used for the design. As on-chip caches account for a major portion of the processor’s transistor budget, they constitute a major portion of the energy budget of the processor. Leakage energy is projected to account for 70% of the cache power budget in 70nm technology [2]. We can reduce leakage by completely gating the supply voltage of cache lines. However, when the supply voltage is gated, the data stored in the cache line is lost (state-destroying leakage con- trol) [3]. Hence, if another access is required to the same data, it should be fetched from lower levels of memory hierarchy, and this incurs a large performance penalty than using state-preserving leak- age control. We refer to placing a cache line in low leakage mode as “turning off the cache line” and restoring the normal supply volt- age as “turning on the cache line” in the rest of this paper. We use this term for both state-preserving and state-destroying modes and distinguish between them when relevant. The effectiveness of the leakage reduction depends on how pre- cisely the behavior of cache line can be tracked. While turning off a cache line later than the last use can waste energy consumption, prematurely turning off a cache line can incur energy/performance penalties when it needs to be accessed. Thus, deciding when to turn off a cache line is very important. In this work, we utilize the knowledge about the state of an object in its lifespan to direct the turning off cache lines. In particular, we identify different states in the lifetime of an object, when it is created, last-used, becomes garbage, and is collected by the garbage collector. It must be ob- served that the cache lines containing only objects beyond their last use waste leakage energy. Our analysis in this paper reveals that this wasted leakage energy contributes to a significant portion of data cache energy consumption. In order to control the turning off cache lines more precisely, we propose a series of object in its lifespan. Almost none of prior approaches (e.g., [4, 5]) utilizes the object lifetime information in optimizing leakage energy with the exception of [6] that manages the leakage in on-chip memory us- ing the garbage collector. In this paper, in addition to the garbage collector, we further exploit object lifetime information by apply- ing escape and last use analyses to find more leakage reduction chances. Further, as compared to the work in [6], we focus on the data cache rather than leakage control in memory where caching influences the potential of the scheme. This work explores three different approaches that save cache leakage energy. In our first approach, the garbage collector is used to turn off the cache line(s) containing the collected objects. Note 213