Skip to main content

Hardware Support for Embedded Java

  • Chapter
  • First Online:
Distributed, Embedded and Real-time Java Systems

Abstract

The general Java runtime environment is resource hungry and unfriendly for real-time systems. To reduce the resource consumption of Java in embedded systems, direct hardware support of the language is a valuable option. Furthermore, an implementation of the Java virtual machine in hardware enables worst-case execution time analysis of Java programs. This chapter gives an overview of current approaches to hardware support for embedded and real-time Java.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 159.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Personal communication with Sascha Uhrig.

  2. 2.

    The similarity can be found when comparing the microcode instructions of JOP and SHAP. The microcode instructions of SHAP are described in the appendix of the technical report [307].

  3. 3.

    A template can be found at http://practicalembeddedjava.com/tutorials/aJileISR.html.

References

  1. aJile Systems. aj-100 real-time low power Java processor. preliminary data sheet, 2000.

    Google Scholar 

  2. aJile Systems. aj-102 technical reference manual v2.4. Available at http://www.ajile.com/, 2009.

  3. aJile Systems. aj-200 technical reference manual v2.1. Available at http://www.ajile.com/, 2010.

  4. ARM. Jazelle technology: ARM acceleration technology for the Java platform. white paper, 2004.

    Google Scholar 

  5. H.G. Baker. List processing in real time on a serial computer. Commun. ACM, 21(4):280–294, 1978.

    Article  MATH  Google Scholar 

  6. A. C. Beck and L. Carro. Low power Java processor for embedded applications. In Proceedings of the 12th IFIP International Conference on Very Large Scale Integration, pages 213–228, Darmstadt, Germany, December 2003.

    Google Scholar 

  7. T. Bogholm, H. Kragh-Hansen, P. Olsen, B. Thomsen, and K.G. Larsen. Model-based schedulability analysis of safety critical hard real-time Java programs. In Proceedings of the 6th International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES 2008), pages 106–114, New York, NY, USA, 2008. ACM.

    Google Scholar 

  8. G. Bollella, J. Gosling, B. Brosgol, P. Dibble, S. Furr, and M. Turnbull. The Real-Time Specification for Java. Java Series. Addison-Wesley, June 2000.

    Google Scholar 

  9. C.P. Bridges and T. Vladimirova. Agent computing applications in distributed satellite systems. In International Symposium on Autonomous Decentralized Systems, 2009. ISADS’09, pages 1–8, March 2009.

    Google Scholar 

  10. Z. Chai, W. Zhao, and W. Xu. Real-time Java processor optimized for RTSJ. In Proceedings of the 2007 ACM symposium on Applied computing, SAC’07, pages 1540–1544, New York, NY, USA, 2007. ACM.

    Google Scholar 

  11. C. Click, G. Tene, and M. Wolf. The pauseless GC algorithm. In Michael Hind and Jan Vitek, editors, Proceedings of the 1st International Conference on Virtual Execution Environments, VEE 2005, Chicago, IL, USA, June 11–12, 2005, pages 46–56. ACM, 2005.

    Google Scholar 

  12. S. Dey, P. Sanchez, D. Panigrahi, L. Chen, C. Taylor, and K. Sekar. Using a soft core in a SOC design: Experiences with picoJava. IEEE Design and Test of Computers, 17(3):60–71, July 2000.

    Article  Google Scholar 

  13. F. Gruian and Z. Salcic. Designing a concurrent hardware garbage collector for small embedded systems. In Proceedings of Advances in Computer Systems Architecture: 10th Asia-Pacific Conference, ACSAC 2005, pages 281–294. Springer-Verlag GmbH, October 2005.

    Google Scholar 

  14. F. Gruian and M. Westmijze. Bluejamm: A bluespec embedded Java architecture with memory management. In SYNASC’07: Proceedings of the Ninth International Symposium on Symbolic and Numeric Algorithms for Scientific Computing, pages 459–466, Washington, DC, USA, 2007. IEEE Computer Society.

    Google Scholar 

  15. F. Gruian and M. Westmijze. Bluejep: a flexible and high-performance Java embedded processor. In JTRES’07: Proceedings of the 5th International Workshop on Java Technologies for Real-time and Embedded Systems, pages 222–229, New York, NY, USA, 2007. ACM.

    Google Scholar 

  16. F. Gruian and M. Westmijze. Investigating hardware micro-instruction folding in a Java embedded processor. In Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES’10, pages 102–108, New York, NY, USA, 2010. ACM.

    Google Scholar 

  17. T.R. Halfhill. Imsys hedges bets on Java. Microprocessor Report, August 2000.

    Google Scholar 

  18. D.S. Hardin. Real-time objects on the bare metal: An efficient hardware realization of the Java virtual machine. In Proceedings of the Fourth International Symposium on Object-Oriented Real-Time Distributed Computing, page 53. IEEE Computer Society, 2001.

    Google Scholar 

  19. T. Harmon. Interactive Worst-case Execution Time Analysis of Hard Real-time Systems. PhD thesis, University of California, Irvine, 2009.

    Google Scholar 

  20. M. Herlihy and J.E.B. Moss. Transactional memory: Architectural support for lock-free data structures. In Proceedings of the 20th Annual International Symposium on Computer Architecture, 1993, pages 289–300, 1993.

    Chapter  Google Scholar 

  21. M.T. Higuera-Toledano. Hardware-based solution detecting illegal references in real-time Java. In Proceedings. 15th Euromicro Conference on Real-Time Systems (ECRTS 2003), pages 229–337, July 2003.

    Chapter  Google Scholar 

  22. M.T. Higuera-Toledano. Hardware support for detecting illegal references in a multiapplication real-time Java environment. ACM Trans. Embed. Comput. Syst., 5:753–772, November 2006.

    Article  Google Scholar 

  23. B. Huber. Worst-case execution time analysis for real-time Java. Master’s thesis, Vienna University of Technology, Austria, 2009.

    Google Scholar 

  24. B. Huber, W. Puffitsch, and M. Schoeberl. Worst-case execution time analysis driven object cache design. Concurrency and Computation: Practice and Experience, doi: 10.1002/cpe.1763, 2011.

    Google Scholar 

  25. Imsys. ISAJ reference 2.0, January 2001.

    Google Scholar 

  26. Imsys. Im1101c (the Cjip) technical reference manual / v0.25, 2004.

    Google Scholar 

  27. H-J Ko and C-J Tsai. A double-issue Java processor design for embedded applications. In IEEE International Symposium on Circuits and Systems, 2007. ISCAS 2007, pages 3502–3505, May 2007.

    Google Scholar 

  28. J. Kreuzinger, U. Brinkschulte, M. Pfeffer, S. Uhrig, and T. Ungerer. Real-time event-handling and scheduling on a multithreaded Java microcontroller. Microprocessors and Microsystems, 27(1):19–31, 2003.

    Article  Google Scholar 

  29. J. Kreuzinger, R. Marston, T. Ungerer, U. Brinkschulte, and C. Krakowski. The komodo project: thread-based event handling supported by a multithreaded Java microcontroller. In EUROMICRO Conference, 1999. Proceedings. 25th, volume 2, pages 122–128 vol.2, 1999.

    Google Scholar 

  30. D. Locke, B.S. Andersen, B. Brosgol, M. Fulton, T. Henties, J.J. Hunt, J.O. Nielsen, K. Nilsen, M. Schoeberl, J. Tokar, J. Vitek, and A.J. Wellings. Safety-critical Java technology specification, public draft. Available at http://www.jcp.org/en/jsr/detail?id=302, 2011.

  31. M.P. Lun and A.S. Fong. Introducing pipelining technique in an object-oriented processor. In TENCON’02. Proceedings. 2002 IEEE Region 10 Conference on Computers, Communications, Control and Power Engineering, volume 1, pages 301–305 vol.1, Oct. 2002.

    Google Scholar 

  32. M. Meyer. A novel processor architecture with exact tag-free pointers. In 2nd Workshop on Application Specific Processors, pages 96–103, San Diego, CA, 2003.

    Google Scholar 

  33. M. Meyer. A novel processor architecture with exact tag-free pointers. IEEE Micro, 24(3):46–55, 2004.

    Article  Google Scholar 

  34. M. Meyer. An on-chip garbage collection coprocessor for embedded real-time systems. In RTCSA’05: Proceedings of the 11th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA’05), pages 517–524, Washington, DC, USA, 2005. IEEE Computer Society.

    Google Scholar 

  35. G. Michel and J. Sachtleben. An integrated gyrotron controller. Fusion Engineering and Design, In Press, Corrected Proof:–, 2011.

    Google Scholar 

  36. Nazomi. JA 108 product brief. Available at http://www.nazomi.com.

  37. K. Nilsen and W.J. Schmidt. Cost-effective object space management for hardware-assisted real-time garbage collection. ACM Letters on Programming Languages and Systems, 1(4):338–354, December 1992.

    Article  Google Scholar 

  38. J.M. O’Connor and M. Tremblay. picoJava-I: The Java virtual machine in hardware. IEEE Micro, 17(2):45–53, 1997.

    Article  Google Scholar 

  39. C. Pitter and M. Schoeberl. Towards a Java multiprocessor. In Proceedings of the 5th International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES 2007), pages 144–151, Vienna, Austria, September 2007. ACM Press.

    Google Scholar 

  40. C. Pitter and M. Schoeberl. A real-time Java chip-multiprocessor. ACM Trans. Embed. Comput. Syst., 10(1):9:1–34, 2010.

    Google Scholar 

  41. T.B. Preusser, P. Reichel, and R.G. Spallek. An embedded GC module with support for multiple mutators and weak references. In Christian Müller-Schloer, Wolfgang Karl, and Sami Yehia, editors, Architecture of Computing Systems - ARCS 2010, 23rd International Conference, Hannover, Germany, February 22–25, 2010. Proceedings, volume 5974 of Lecture Notes in Computer Science, pages 25–36. Springer, 2010.

    Google Scholar 

  42. T.B. Preusser, M. Zabel, and R.G. Spallek. Bump-pointer method caching for embedded Java processors. In Proceedings of the 5th International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES 2007), pages 206–210, New York, NY, USA, 2007. ACM.

    Google Scholar 

  43. T.B. Preusser, M. Zabel, and P. Reichel. The SHAP microarchitecture and Java virtual machine. Technical Report TUD-FI07-02, Fakultaet Informatik, TU Dresden, April 2007.

    Google Scholar 

  44. W. Puffitsch and M. Schoeberl. picoJava-II in an FPGA. In Proceedings of the 5th International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES 2007), pages 213–221, Vienna, Austria, September 2007. ACM Press.

    Google Scholar 

  45. W.J. Schmidt and K. Nilsen. Performance of a hardware-assisted real-time garbage collector. In ASPLOS-VI: Proceedings of the sixth international conference on Architectural support for programming languages and operating systems, pages 76–85, New York, NY, USA, 1994. ACM Press.

    Google Scholar 

  46. M. Schoeberl. JOP: A Java optimized processor. In On the Move to Meaningful Internet Systems 2003: Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES 2003), volume 2889 of LNCS, pages 346–359, Catania, Italy, November 2003. Springer.

    Google Scholar 

  47. M. Schoeberl. A time predictable instruction cache for a Java processor. In On the Move to Meaningful Internet Systems 2004: Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES 2004), volume 3292 of LNCS, pages 371–382, Agia Napa, Cyprus, October 2004. Springer.

    Google Scholar 

  48. M. Schoeberl. JOP: A Java Optimized Processor for Embedded Real-Time Systems. PhD thesis, Vienna University of Technology, 2005.

    Google Scholar 

  49. M. Schoeberl. Application experiences with a real-time Java processor. In Proceedings of the 17th IFAC World Congress, pages 9320–9325, Seoul, Korea, July 2008.

    Google Scholar 

  50. M. Schoeberl. A Java processor architecture for embedded real-time systems. Journal of Systems Architecture, 54/1–2:265–286, 2008.

    Google Scholar 

  51. M. Schoeberl. JOP Reference Handbook: Building Embedded Systems with a JavaProcessor. CreateSpace, August 2009. Available at http://www.jopdesign.com/doc/handbook.pdf.

  52. M. Schoeberl. Time-predictable cache organization. In Proceedings of the First International Workshop on Software Technologies for Future Dependable Distributed Systems (STFSSD 2009), pages 11–16, Tokyo, Japan, March 2009. IEEE Computer Society.

    Google Scholar 

  53. M. Schoeberl. A time-predictable object cache. In Proceedings of the 14th IEEE International Symposium on Object/component/service-oriented Real-time distributed Computing (ISORC 2011), pages 99–105, Newport Beach, CA, USA, March 2011. IEEE Computer Society.

    Google Scholar 

  54. M. Schoeberl, F. Brandner, and J. Vitek. RTTM: Real-time transactional memory. In Proceedings of the 25th ACM Symposium on Applied Computing (SAC 2010), pages 326–333, Sierre, Switzerland, March 2010. ACM Press.

    Google Scholar 

  55. M. Schoeberl and P. Hilber. Design and implementation of real-time transactional memory. In Proceedings of the 20th International Conference on Field Programmable Logic and Applications (FPL 2010), pages 279–284, Milano, Italy, August 2010. IEEE Computer Society.

    Google Scholar 

  56. M. Schoeberl, S. Korsholm, T. Kalibera, and A.P. Ravn. A hardware abstraction layer in Java. ACM Trans. Embed. Comput. Syst., accepted, 2010.

    Google Scholar 

  57. M. Schoeberl and W. Puffitsch. Non-blocking real-time garbage collection. ACM Trans. Embedded Comput. Syst., 10(1), 2010.

    Google Scholar 

  58. M. Schoeberl, W. Puffitsch, R.U. Pedersen, and B. Huber. Worst-case execution time analysis for a Java processor. Software: Practice and Experience, 40/6:507–542, 2010.

    Google Scholar 

  59. K.N. Su and C.J. Tsai. Fast host service interface design for embedded Java application processor. In IEEE International Symposium on Circuits and Systems, 2009. ISCAS 2009, pages 1357–1360, May 2009.

    Google Scholar 

  60. Sun. picoJava-II Microarchitecture Guide. Sun Microsystems, March 1999.

    Google Scholar 

  61. Sun. picoJava-II Programmer’s Reference Manual. Sun Microsystems, March 1999.

    Google Scholar 

  62. Sun Microsystems. Connected limited device configuration 1.1. Available at http://jcp.org/aboutJava/communityprocess/final/jsr139/, March 2003.

  63. Y.Y. Tan, C.H. Yau, K.M. Lo, W.S. Yu, P.L. Mok, and A.S. Fong. Design and implementation of a Java processor. Computers and Digital Techniques, IEE Proceedings-, 153:20–30, 2006.

    Google Scholar 

  64. S. Uhrig. Evaluation of different multithreaded and multicore processor configurations for soPC. In Koen Bertels, Nikitas J. Dimopoulos, Cristina Silvano, and Stephan Wong, editors, Embedded Computer Systems: Architectures, Modeling, and Simulation, 9th International Workshop, SAMOS, volume 5657 of Lecture Notes in Computer Science, pages 68–77. Springer, 2009.

    Google Scholar 

  65. S. Uhrig and J. Wiese. jamuth: an IP processor core for embedded Java real-time systems. In Proceedings of the 5th International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES 2007), pages 230–237, New York, NY, USA, 2007. ACM Press.

    Google Scholar 

  66. N. Vijaykrishnan and N. Ranganathan. Supporting object accesses in a Java processor. Computers and Digital Techniques, IEE Proceedings-, 147(6):435–443, 2000.

    Article  Google Scholar 

  67. N. Vijaykrishnan, N. Ranganathan, and R. Gadekarla. Object-oriented architectural support for a Java processor. In Eric Jul, editor, ECOOP, volume 1445 of Lecture Notes in Computer Science, pages 330–354. Springer, 1998.

    Google Scholar 

  68. I. Williams and M. Wolczko. An object-based memory architecture. In Proceedings of the Fourth International Workshop on Persistent Object Systems, pages 114–130, Martha’s Vineyard, MA (USA), September 1990.

    Google Scholar 

  69. I.W. Williams. Object-Based Memory Architecture. PhD thesis, Department of Computer Science, University of Manchester, 1989.

    Google Scholar 

  70. G. Wright, M.L. Seidl, and M. Wolczko. An object-aware memory architecture. Technical Report SML–TR–2005–143, Sun Microsystems Laboratories, February 2005.

    Google Scholar 

  71. G. Wright, M.L. Seidl, and M. Wolczko. An object-aware memory architecture. Sci. Comput. Program, 62(2):145–163, 2006.

    Article  MathSciNet  MATH  Google Scholar 

  72. M. Zabel, T.B. Preusser, P. Reichel, and R. G. Spallek. Secure, real-time and multi-threaded general-purpose embedded Java microarchitecture. In Prceedings of the 10th Euromicro Conference on Digital System Design Architectures, Methods and Tools (DSD 2007), pages 59–62, Lübeck, Germany, Aug. 2007.

    Google Scholar 

  73. M. Zabel and R.G. Spallek. Application requirements and efficiency of embedded Java bytecode multi-cores. In JTRES’10: Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems, pages 46–52, New York, NY, USA, 2010. ACM.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Martin Schoeberl .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer Science+Business Media, LLC

About this chapter

Cite this chapter

Schoeberl, M. (2012). Hardware Support for Embedded Java. In: Higuera-Toledano, M., Wellings, A. (eds) Distributed, Embedded and Real-time Java Systems. Springer, Boston, MA. https://doi.org/10.1007/978-1-4419-8158-5_7

Download citation

  • DOI: https://doi.org/10.1007/978-1-4419-8158-5_7

  • Published:

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4419-8157-8

  • Online ISBN: 978-1-4419-8158-5

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics