Exploiting the efficiency of generational algorithms for hardware-supported real-time garbage collection

Generational garbage collectors are more efficient than their non-generational counterparts. Unfortunately, however, generational algorithms require both write barriers and write barrier handlers and therefore degrade worst-case performance. In this paper, we present novel hardware support for generational garbage collection. In contrast to previous work, we introduce a hardware write barrier that does not only detect inter-generational pointers, but also executes all related book-keeping operations entirely in hardware. For the first time, write barrier detection and handling occur completely in parallel to instruction execution, so that the runtime overhead of generational garbage collection is reduced to near zero. For evaluation purposes, we extended a system with hardware-supported real-time garbage collection with our hardware support for generational garbage collection. Measurements of Java programs on an FPGA-based prototype show that the generational extensions reduce the total duration of garbage collection activities by a factor of 5 and the memory traffic caused by the collector by a factor of 4 on average.

[1]  David A. Moon,et al.  Architecture of the Symbolics 3600 , 1985, ISCA '85.

[2]  David A. Patterson,et al.  Architecture of SOAR: Smalltalk on a RISC , 1984, ISCA '84.

[3]  David M. Ungar,et al.  Generation Scavenging: A non-disruptive high performance storage reclamation algorithm , 1984, SDE 1.

[4]  Henry Lieberman,et al.  A real-time garbage collector based on the lifetimes of objects , 1983, CACM.

[5]  Matthias Meyer,et al.  A true hardware read barrier , 2006, ISMM '06.

[6]  Matthias Meyer,et al.  A novel processor architecture with exact tag-free pointers , 2004, IEEE Micro.

[7]  T. Ungerer,et al.  Real-time garbage collection for a multithreaded Java microcontroller , 2001, Fourth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISORC 2001.

[8]  Henry G. Baker,et al.  List processing in real time on a serial computer , 1978, CACM.

[9]  Kelvin D. Nilsen,et al.  Performance of a hardware-assisted real-time garbage collector , 1994, ASPLOS VI.

[10]  Paul R. Wilson,et al.  Uniprocessor Garbage Collection Techniques , 1992, IWMM.

[11]  David Ungar,et al.  SOAR: Smalltalk without bytecodes , 1986, OOPSLA 1986.

[12]  Matthias Meyer,et al.  An on-chip garbage collection coprocessor for embedded real-time systems , 2005, 11th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA'05).

[13]  Uwe Brinkschulte,et al.  Real-Time Garbage Collection for a Multithreaded Java Microcontroller , 2004, Real-Time Systems.

[14]  Matthias Pfeffer Ein echtzeitfähiges Java-System für einen mehrfädigen Java-Mikrocontroller , 2004 .

[15]  Henry G. Baker,et al.  The treadmill: real-time garbage collection without motion sickness , 1992, SIGP.