Abstract
We envision the upcoming of microcontrollers and systems-on-chip that are based on multithreaded processor kernels due to the fast context switching ability of hardware multithreading. Moreover we envision an extensive market for Java-based applications in embedded real-time systems. This paper introduces two new garbage collection algorithms that are dedicated to real-time garbage collection on a multithreaded Java microcontroller. Our garbage collector runs in a thread slot in parallel to real-time applications. We show that our algorithms require only about 5–10% of the processor time for an effective garbage collection concerning our real-time benchmarks.
Similar content being viewed by others
References
Baker, H. G. 1978. List processing in real-time on a serial computer. Communications of the ACM 21(4): 280-294.
Baker, H. G. 1992. The treadmill, real-time garbage collection without motion sickness. ACM SIGPLAN Notices 27(3): 66-70.
Bollella, G., Bowman, P., Brosgol, B., Dibble, P., Furr, S., Gosling, J., Hardin, D., and Turnbull, M. 1999. Real Time Specification for Java. The Real Time for Java Experts Group. Draft version.
Borkenhagen, J. M., Eickemeyer, R. J., Kalla, R. N., and Kunkel, S. R. 2000. A multithreaded PowerPC processor for commercial servers. IBM Journal Research and Development 44: 885-898.
Brinkschulte, U., Krakowski, C., Kreuzinger, J., Marston, R., and Ungerer, T. 1999a. The Komodo Project: Thread-based event handling supported by a multithreaded Java microcontroller. In 25th EUROMICRO Conference. Milano, Vol. 2, pp. 122-128.
Brinkschulte, U., Krakowski, C., Kreuzinger, J., and Ungerer, T. 1999b. A multithreaded Java microcontroller for thread-oriented real-time event-handling. In International Conference on Parallel Architectures and Compilation Techniques (PACT 99), Newport Beach, pp. 34-39.
Brinkschulte, U., Krakowski, C., Kreuzinger, J., and Ungerer, T. 1999c. Interrupt service threads\3-a new approach to handle multiple hard real-time events on a multithreaded microcontroller. RTSS WIP sessions, Phoenix, pp. 11-15.
Brinkschulte, U., Krakowski, C., Riemschneider, J., Kreuzinger, J., Pfeffer, M., and Ungerer, T. 2000. A microkernel architecture for a highly scalable real-time middleware. In RTAS 2000, 6th IEEE Real-time Technology and Application Symposium. Work in Progress session, Washington.
Brinkschulte, U., Kreuzinger, J., Pfeffer, M., and Ungerer, T. 2002. A scheduling technique providing a strict isolation of real-time threads. In Seventh IEEE International Workshop on Object-Oriented Real-time Dependable Systems (WORDS), San Diego, CA.
Dijkstra, E. W., Lamport, L., Martin, A. J., Scholten, C. S., and Steffens, E. F. M. 1978. On-The-Fly garbage collection: an exercise in cooperation. Communications of the ACM 21(11): 965-975.
Emer, J. 1999. Simultaneous multithreading: multiplying alpha's performance. In Microprocessor Forum 1999, San Jose, CA.
Fuhrmann, S., Pfeffer, M., Kreuzinger, J., Ungerer, T., and Brinkschulte, U. 2001. Real-time garbage collection for a multithreaded Java microcontroller. In The Fourth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC), Magdeburg, Germany, pp. 69-76.
Gwennap, L. 1999. MAJC gives VLIW a new twist. Microprocessor Report 13 (12): 12-15.
Hansen, C. 1996. MicroUnity's MediaProcessor architecture. IEEE Micro pp. 34-41.
Huelsbergen, L., and Winterbottom, P. 1998. Very concurrent mark-&-sweep garbage collection without fine-grain synchronization. In International Symposium on Memory Management, Vancouver, Canada.
Johnstone, M. S. 1997. Non-compacting memory allocation and real-time garbage collection. Ph.D. thesis, The University of Texas at Austin.
Kreuzinger, J., Pfeffer, M., Schulz, A., Ungerer, T., Brinkschulte, U., and Krakowski, C. 2000a. Performance evaluations of a multithreaded Java Microcontroller. In International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA), Las Vegas, Nevada, USA, pp. 95-99.
Kreuzinger, J., Schulz, A., Pfeffer, M., Ungerer, T., Brinkschulte, U., and Krakowski, C. 2000b. Real-time scheduling on multithreaded processors. In The 7th International Conference on Real-Time Computing Systems and Applications (RTCSA 2000), Cheju Island, South Korea, pp. 155-159.
Krewell, K. 2001. Intel embraces multithreading. Microprocessor Report.
Marr, D. T., Binns, F., Hill, D. L., Hinton, G., Koufaty, D. A., Miller, J. A., and Upton, M. 2002. Hyper-threading technology architecture and microarchitecture. Intel Technology Journal 6(1).
Nemirovsky, M. 2000. XStream Logic's network communication processor. In Microprocessor Forum 2000, San Jose, CA.
Venners, B. 1996. Under the hood: Java's garbage-collected heap. JavaWorld.
Wallace, M., and Runciman, C. 1993. An incremental garbage collector for embedded real-time systems. In Chalmers Winter Meeting, Tanum Strand, Sweden, pp. 273-288.
Wilson, P. R. 1992. Uniprocessor garbage collection techniques. In International Workshop on Memory Management, Saint-Malo, France.
Wilson, P. R., Johnstone, M. S., Neely, M., and Boles D. 1995. Dynamic storage allocation: a survey and critical review. In International Workshop on Memory Management.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Pfeffer, M., Ungerer, T., Fuhrmann, S. et al. Real-Time Garbage Collection for a Multithreaded Java Microcontroller. Real-Time Systems 26, 89–106 (2004). https://doi.org/10.1023/B:TIME.0000009307.23568.4b
Issue Date:
DOI: https://doi.org/10.1023/B:TIME.0000009307.23568.4b