Adaptive Drowsy Cache Control for Java Applications

Drowsy cache has been proved as an efficient technique to reduce cache leakage energy. However, current drowsy cache control policies generally suffer from performance loss and are not adaptive to different program behaviors. In this paper, we study adaptive drowsy cache control for Java applications, where just-in-time (JIT) compiler and runtime information can be used to make accurate decision on drowsy cache control. We first explore the impact of different phases of Java applications on the timing behavior of cache usage. Then we propose several techniques to adaptively control drowsy cache to reduce energy consumption with minimal impact on performance. Our experiments show that the adaptive drowsy control by exploiting the phase information can reduce the performance loss without impacting the energy saving, which is especially useful during the garbage collection.

[1]  T. Mudge,et al.  Drowsy caches: simple techniques for reducing leakage power , 2002, Proceedings 29th Annual International Symposium on Computer Architecture.

[2]  Kathryn S. McKinley,et al.  Dynamic SimpleScalar: Simulating Java Virtual Machines , 2003 .

[3]  David R. Kaeli,et al.  Exploiting temporal locality in drowsy cache policies , 2005, CF '05.

[4]  Mahmut T. Kandemir,et al.  Exploiting program hotspots and code sequentiality for instruction cache leakage management , 2003, ISLPED '03.

[5]  Trevor Mudge,et al.  Drowsy instruction caches. Leakage power reduction using dynamic voltage scaling and cache sub-bank prediction , 2002, 35th Annual IEEE/ACM International Symposium on Microarchitecture, 2002. (MICRO-35). Proceedings..

[6]  Wei Zhang,et al.  Compiler-directed instruction cache leakage optimization , 2002, MICRO.

[7]  Mahmut T. Kandemir,et al.  Energy-aware compilation and execution in Java-enabled mobile devices , 2003, Proceedings International Parallel and Distributed Processing Symposium.