An energy efficient garbage collector for java embedded devices

This paper presents a detailed design and implementation of a power-efficient garbage collector for Java embedded systems. The proposed scheme is a hybrid between the standard mark-sweep-compact collector available in Sun's KVM and a limited-field reference counter. There are three benefits resulting from the proposed scheme. (a) the proposed scheme reclaims memory more efficiently and this results in less mark-sweep garbage collection invocations, (b) reduction in garbage collection invocations improves cache locality and reduces the number of main memory accesses, and (c) reduction in memory access ultimately results in lower energy consumption, since a memory access can consume a large amount of energy when compared with an instruction execution. The proposed scheme has been implemented into Sun's KVM, and has been shown to reduce the number of mark-sweep garbage collection invocations by up to 100% in some cases, and the number of level-1 cache misses by as much as 87% when compared to the default garbage collector. We also find that in some applications, the proposed scheme can reduce the power consumption by as much as 27% when compared to the default Sun's KVM.

[1]  V. T. Rajan,et al.  Java without the coffee breaks: a nonintrusive multiprocessor garbage collector , 2001, PLDI '01.

[2]  Stylianos Perissakis,et al.  The Energy Efficiency Of Iram Architectures , 1997, Conference Proceedings. The 24th Annual International Symposium on Computer Architecture.

[3]  Rafael Dueire Lins,et al.  Garbage collection: algorithms for automatic dynamic memory management , 1996 .

[4]  A. C. Norman,et al.  Some practical methods for rapid combinator reduction , 1984, LFP '84.

[5]  Mahmut T. Kandemir,et al.  Use of local memory for efficient Java execution , 2001, Proceedings 2001 IEEE International Conference on Computer Design: VLSI in Computers and Processors. ICCD 2001.

[6]  Todd M. Austin,et al.  SimpleScalar: An Infrastructure for Computer System Modeling , 2002, Computer.

[7]  Yu Inamura,et al.  Optimizing Techniques Using the MRB and Their Evaluation on the Multi-PSI/V2 , 1989, NACLP.

[8]  Bowen Alpern,et al.  Experiences Porting the Jikes RVM to Linux/IA32 , 2002, Java Virtual Machine Research and Technology Symposium.

[9]  Jelena Trajkovic,et al.  Reducing SDRAM Energy Consumption in Embedded Systems , .

[10]  Amer Diwan,et al.  Energy Consumption and Garbage Collection in Low-Powered Computing ; CU-CS-930-02 , 2002 .

[11]  Daniel G. Bobrow,et al.  An efficient, incremental, automatic garbage collector , 1976, CACM.

[12]  David S. Wise,et al.  One-bit Counts between Unique and Sticky Technical Report 516 July 1998 , 1998 .

[13]  J. Morris Chang,et al.  Evaluation of an object-caching coprocessor design for object-oriented systems , 1993, Proceedings of 1993 IEEE International Conference on Computer Design ICCD'93.

[14]  Takashi Chikayama,et al.  Multiple Reference Management in Flat GHC , 1987, International Conference on Logic Programming.

[15]  Mahmut T. Kandemir,et al.  The design and use of simplePower: a cycle-accurate energy estimation tool , 2000, Proceedings 37th Design Automation Conference.

[16]  Mahmut T. Kandemir,et al.  Tuning garbage collection in an embedded Java environment , 2002, Proceedings Eighth International Symposium on High Performance Computer Architecture.

[17]  Mahmut T. Kandemir,et al.  Leakage energy management in cache hierarchies , 2002, Proceedings.International Conference on Parallel Architectures and Compilation Techniques.

[18]  Francisco Tirado,et al.  nergy-Aware Modelling of Garbage Collectors for New Dynamic Embedded Systems , 2004 .

[19]  Daniel P. Friedman,et al.  The one-bit reference count , 1977 .

[20]  R. W. Atherton Moving Java to the factory , 1998 .