An Embedded GC Module with Support for Multiple Mutators and Weak References

  • Thomas B. Preußer
  • Peter Reichel
  • Rainer G. Spallek
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5974)

Abstract

This paper describes the design of a garbage collection (GC) module, which introduces modern GC features to the domain of embedded implementations. It supports weak references and feeds reference queues. Its architecture allows multiple concurrent mutators operating on the shared managed memory. The garbage collection is exact and fully concurrent. It combines a distributed root marking with a centralized heap scan of the managed memory. It features a novel mark-and-copy GC strategy on a segmented memory, thereby overcoming the tremendous space overhead of two-space copying and the compaction race of mark-and-compact approaches. The proposed GC architecture has been practically implemented and proven using the embedded bytecode processor SHAP as a sample testbed. The synthesis results for settings up to three SHAP mutator cores are given and online functional measurements are presented.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Zabel, M., Preußer, T.B., Reichel, P., Spallek, R.G.: Secure, real-time and multi-threaded general-purpose embedded Java microarchitecture. In: 10th Euromicro Conference on Digital System Design Architectures, Methods and Tools (DSD 2007), pp. 59–62. IEEE, Los Alamitos (2007)CrossRefGoogle Scholar
  2. 2.
    Holloway, J., Steele Jr., G.L., Sussman, G.J., Bell, A.: The SCHEME-79 chip. Technical report, Massachusetts Institute of Technology, Artificial Intelligence Lab. (1980)Google Scholar
  3. 3.
    Moon, D.A.: Garbage collection in a large LISP system. In: LFP 1984: 1984 ACM Symposium on LISP and functional programming, pp. 235–246. ACM, New York (1984)CrossRefGoogle Scholar
  4. 4.
    Nilsen, K.D., Schmidt, W.J.: Hardware support for garbage collection of linked objects and arrays in real-time. In: ECOOP/OOPSLA 1990 Workshop on Garbage Collection (1990)Google Scholar
  5. 5.
    Nilsen, K.D., Schmidt, W.J.: Cost-effective object space management for hardware-assisted real-time garbage collection. ACM Lett. Program. Lang. Syst. 1(4), 338–354 (1992)CrossRefGoogle Scholar
  6. 6.
    Meyer, M.: A true hardware read barrier. In: ISMM 2006: 5th International Symposium on Memory Management, pp. 3–16. ACM, New York (2006)CrossRefGoogle Scholar
  7. 7.
    Srisa-an, W., Dan Lo, C.-T., Chang, J.-e.M.: Active memory processor: A hardware garbage collector for real-time Java embedded devices. IEEE Transactions on Mobile Computing 2(2), 89–101 (2003)CrossRefGoogle Scholar
  8. 8.
    Pfeffer, M., Ungerer, T., Fuhrmann, S., Kreuzinger, J., Brinkschulte, U.: Real-time garbage collection for a multithreaded Java microcontroller. Real-Time Syst. 26(1), 89–106 (2004)CrossRefGoogle Scholar
  9. 9.
    Uhrig, S., Wiese, J.: Jamuth: an IP processor core for embedded Java real-time systems. In: Bollella, G. (ed.) JTRES 2007. ACM International Conference Proceeding Series, pp. 230–237. ACM, New York (2007)Google Scholar
  10. 10.
    Meyer, M.: A novel processor architecture with exact tag-free pointers. IEEE Micro 24(3), 46–55 (2004)CrossRefGoogle Scholar
  11. 11.
    Meyer, M.: An on-chip garbage collection coprocessor for embedded real-time systems. In: RTCSA 2005: 11th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications, Washington, DC, USA, pp. 517–524. IEEE Computer Society, Los Alamitos (2005)CrossRefGoogle Scholar
  12. 12.
    Gruian, F., Salcic, Z.A.: Designing a concurrent hardware garbage collector for small embedded systems. In: Asia-Pacific Computer Systems Architecture Conference, pp. 281–294 (2005)Google Scholar
  13. 13.
    Schoeberl, M.: JOP: A Java optimized processor. In: Meersman, R., Tari, Z. (eds.) OTM-WS 2003. LNCS, vol. 2889, pp. 346–359. Springer, Heidelberg (2003)Google Scholar
  14. 14.
    Reichel, P.: Entwurf und Implementierung verschiedener Garbage-Collector-Strategien für die Java-Plattform SHAP. Großer beleg, Technische Universität Dresden (2007)Google Scholar
  15. 15.
    Anton, A.: OpenFIRE (2007), http://www.opencores.org/project,openfire2
  16. 16.
    Harboe, Ø.: ZPU - the worlds smallest 32 bit CPU with GCC toolchain (2008), http://www.opencores.org/project,zpu
  17. 17.
    Henry, G., Baker, J.: List processing in real time on a serial computer. Commun. ACM 21(4), 280–294 (1978)MATHCrossRefGoogle Scholar
  18. 18.
    Gagnon, E.M., Hendren, L.J.: SableVM: A research framework for the efficient execution of Java bytecode. In: Java Virtual Machine Research and Technology Symposium, April 2001, pp. 27–40 (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Thomas B. Preußer
    • 1
  • Peter Reichel
    • 1
  • Rainer G. Spallek
    • 1
  1. 1.Institut für Technische InformatikTechnische Universität DresdenGermany

Personalised recommendations