This Article 
 Bibliographic References 
 Add to: 
Active Memory Processor: A Hardware Garbage Collector for Real-Time Java Embedded Devices
April-June 2003 (vol. 2 no. 2)
pp. 89-101

Abstract—Java possesses many advantages for embedded system development, including fast product deployment, portability, security, and a small memory footprint. As Java makes inroads into the market for embedded systems, much effort is being invested in designing real-time garbage collectors. The proposed garbage-collected memory module, a bitmap-based processor with standard DRAM cells is introduced to improve the performance and predictability of dynamic memory management functions that include allocation, reference counting, and garbage collection. As a result, memory allocation can be done in constant time and sweeping can be performed in parallel by multiple modules. Thus, constant time sweeping is also achieved regardless of heap size. This is a major departure from the software counterparts where sweeping time depends largely on the size of the heap. In addition, the proposed design also supports limited-field reference counting, which has the advantage of distributing the processing cost throughout the execution. However, this cost can be quite large and results in higher power consumption due to frequent memory accesses and the complexity of the main processor. By doing reference counting operation in a coprocessor, the processing is done outside of the main processor. Moreover, the hardware cost of the proposed design is very modest (about 8,000 gates). Our study has shown that 3-bit reference counting can eliminate the need to invoke the garbage collector in all tested applications. Moreover, it also reduces the amount of memory usage by 77 percent.

[1] R.W. Atherton, “Moving Java to the Factory,” IEEE Spectrum, pp. 18-23, 1998.
[2] H. Baker, “List Processing in Real Time on a Serial Computer,” Comm. ACM, vol. 21, pp. 280-294, 1978.
[3] J.M. Chang and E.F. Gehringer, “Evaluation of an Object-Caching Coprocessor Design for Object-Oriented Systems,” Proc. IEEE Int'l Conf. Computer Design, pp. 132-139, 1993.
[4] J.M. Chang, W. Srisa-an, and C.D. Lo, “Architectural Support for Dynamic Memory Management,” Proc. IEEE Int'l Conf. Computer Design, pp. 99-104, 2000.
[5] G. Chen, R. Shetty, M. Kandemir, N. Vijaykrishnan, M.J. Irwin, and M. Wolczko, “Tuning Garbage Collection in an Embedded Java Environment,” Proc. Eighth Int'l Symp. High-Performance Computer Architecture (HPCA'02), 2002.
[6] T. Chikayama and Y. Kimura, “Multiple Reference Management in Flat GHC,” Proc. Fourth Int'l Conf. Logic Programming, pp. 296-293, 1987.
[7] K. Edwards, Core Jini. Prentice Hall, 1998.
[8] Esmertec, Jbed,http:/, 2001.
[9] D.P. Friedman and D.S. Wise, “The One-Bit Reference Count,” BIT, vol. 17, pp. 351-359, 1977.
[10] Newmonics Inc., Perc available from Newmonics Inc.,http:/, 2003?
[11] R. Jones and R. Lins, Garbage Collection: Algorithms for Automatic Dynamic Memory Management. John Wiley and Sons, 1998.
[12] D. Knuth, The Art of Computer Programming, vol. 3: Sorting and Searching. Addison-Wesley, 1973.
[13] Sun Microsystems, , 2003.
[14] Sun Microsystems, Java CLDC and K Virtual Machine,, 2003.
[15] Sun Microsystems, Java Embedded Server available from Sun Microsystems, , 2003.
[16] D.A. Moon, “Architecture of the Symbolics 3600,” Proc. 12th Ann. Int'l Symp. Computer Architecture, pp. 76-83, 1985.
[17] S.S. Mukherjee and M.D. Hill, “Making Network Interfaces Less Peripheral,” Computer, Oct. 1998.
[18] K. Nilsen and W. Schmidt, “A High-Performance Hardware-Assisted Real-Time Garbage Collection System,” J. Programming Languages, pp. 1-40, 1994.
[19] I.T. Ritzu, “Hard Real-Time Reference Counting without External Fragmentation,” Proc. Java Optimization Strategies for Embedded Systems Workshop, 2001.
[20] H. Schnorr and W.M. Waite, "An Efficient Machine-Independent Procedure for Garbage Collection in Various List Structures," Comm. ACM, Aug. 1967.
[21] W. Srisa-an, C.D. Lo, and J.M. Chang, “Active Memory: Garbage-Collected Memory for Embedded Systems,” Proc. Second Ann. Workshop on Hardware Support for Objects and Microarchitectures for Java, pp. 11-15, 2000.
[22] W. Srisa-an, C.D. Lo, and J.M. Chang, “A Performance Analysis of the Active Memory Module (AMM),” Proc. IEEE Int'l Conf. Computer Design, pp. 493-496, 2001.
[23] P. Steenkiste and J. Hennessy, “Tags and Type Checking in Lisp: Hardware and Software Approaches,” Proc. Second Int'l Conf. Architectural Support for Programming Languages and Operating Systems (ASPLOS II), Mar. 1987.
[24] W. Stoye, T. Clarke, and A. Norman, “Some Practical Methods for Rapid Combinator Reduction,” Proc. Symp. LISP and Functional Languages, Aug. 1984.
[25] D. Ungar, “The Design and Evaluation of a High Performance Smalltalk System,” ACM Distinguished Dissertations, 1987.
[26] D.S. Wise, B. Heck, C. Hess, W. Hunt, and E. Ost, “Research Demonstration of a Hardware Reference-Counting Heap,” Lisp Symbolic Computing, vol. 10, pp. 159-181, 1987.
[27] M. Wolczko and I. Williams, “The Influence of the Object-Oriented Language Model on a Supporting Architecture,” Proc. 26th Hawaii Int'l Conf. System Sciences, 1993.

Index Terms:
Garbage collection, embedded systems, real-time systems, Java virtual machine, active memory.
Witawas Srisa-an, Chia-Tien Dan Lo, Ji-en Morris Chang, "Active Memory Processor: A Hardware Garbage Collector for Real-Time Java Embedded Devices," IEEE Transactions on Mobile Computing, vol. 2, no. 2, pp. 89-101, April-June 2003, doi:10.1109/TMC.2003.1217230
Usage of this product signifies your acceptance of the Terms of Use.