Hardware Support for Embedded Java

Chapter

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.

References

  1. 5.
    aJile Systems. aj-100 real-time low power Java processor. preliminary data sheet, 2000.Google Scholar
  2. 6.
    aJile Systems. aj-102 technical reference manual v2.4. Available at http://www.ajile.com/, 2009.
  3. 7.
    aJile Systems. aj-200 technical reference manual v2.1. Available at http://www.ajile.com/, 2010.
  4. 17.
    ARM. Jazelle technology: ARM acceleration technology for the Java platform. white paper, 2004.Google Scholar
  5. 24.
    H.G. Baker. List processing in real time on a serial computer. Commun. ACM, 21(4):280–294, 1978.MATHCrossRefGoogle Scholar
  6. 52.
    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. 62.
    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. 65.
    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. 80.
    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. 98.
    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. 107.
    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. 127.
    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.CrossRefGoogle Scholar
  13. 176.
    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. 177.
    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. 178.
    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. 179.
    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. 182.
    T.R. Halfhill. Imsys hedges bets on Java. Microprocessor Report, August 2000.Google Scholar
  18. 185.
    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. 186.
    T. Harmon. Interactive Worst-case Execution Time Analysis of Hard Real-time Systems. PhD thesis, University of California, Irvine, 2009.Google Scholar
  20. 194.
    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.CrossRefGoogle Scholar
  21. 197.
    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.CrossRefGoogle Scholar
  22. 199.
    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.CrossRefGoogle Scholar
  23. 209.
    B. Huber. Worst-case execution time analysis for real-time Java. Master’s thesis, Vienna University of Technology, Austria, 2009.Google Scholar
  24. 210.
    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. 216.
    Imsys. ISAJ reference 2.0, January 2001.Google Scholar
  26. 217.
    Imsys. Im1101c (the Cjip) technical reference manual / v0.25, 2004.Google Scholar
  27. 237.
    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. 240.
    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.CrossRefGoogle Scholar
  29. 241.
    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. 254.
    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. 259.
    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. 269.
    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. 270.
    M. Meyer. A novel processor architecture with exact tag-free pointers. IEEE Micro, 24(3):46–55, 2004.CrossRefGoogle Scholar
  34. 271.
    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. 273.
    G. Michel and J. Sachtleben. An integrated gyrotron controller. Fusion Engineering and Design, In Press, Corrected Proof:–, 2011.Google Scholar
  36. 277.
    Nazomi. JA 108 product brief. Available at http://www.nazomi.com.
  37. 281.
    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.CrossRefGoogle Scholar
  38. 283.
    J.M. O’Connor and M. Tremblay. picoJava-I: The Java virtual machine in hardware. IEEE Micro, 17(2):45–53, 1997.CrossRefGoogle Scholar
  39. 295.
    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. 296.
    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. 305.
    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. 306.
    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. 307.
    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. 310.
    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. 345.
    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. 346.
    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. 348.
    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. 349.
    M. Schoeberl. JOP: A Java Optimized Processor for Embedded Real-Time Systems. PhD thesis, Vienna University of Technology, 2005.Google Scholar
  49. 351.
    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. 352.
    M. Schoeberl. A Java processor architecture for embedded real-time systems. Journal of Systems Architecture, 54/1–2:265–286, 2008.Google Scholar
  51. 353.
    M. Schoeberl. JOP Reference Handbook: Building Embedded Systems with a JavaProcessor. CreateSpace, August 2009. Available at http://www.jopdesign.com/doc/handbook.pdf.
  52. 354.
    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. 355.
    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. 356.
    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. 357.
    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. 358.
    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. 360.
    M. Schoeberl and W. Puffitsch. Non-blocking real-time garbage collection. ACM Trans. Embedded Comput. Syst., 10(1), 2010.Google Scholar
  58. 361.
    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. 388.
    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. 389.
    Sun. picoJava-II Microarchitecture Guide. Sun Microsystems, March 1999.Google Scholar
  61. 390.
    Sun. picoJava-II Programmer’s Reference Manual. Sun Microsystems, March 1999.Google Scholar
  62. 397.
    Sun Microsystems. Connected limited device configuration 1.1. Available at http://jcp.org/aboutJava/communityprocess/final/jsr139/, March 2003.
  63. 406.
    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. 415.
    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. 416.
    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. 419.
    N. Vijaykrishnan and N. Ranganathan. Supporting object accesses in a Java processor. Computers and Digital Techniques, IEE Proceedings-, 147(6):435–443, 2000.CrossRefGoogle Scholar
  67. 420.
    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. 436.
    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. 437.
    I.W. Williams. Object-Based Memory Architecture. PhD thesis, Department of Computer Science, University of Manchester, 1989.Google Scholar
  70. 439.
    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. 440.
    G. Wright, M.L. Seidl, and M. Wolczko. An object-aware memory architecture. Sci. Comput. Program, 62(2):145–163, 2006.MathSciNetMATHCrossRefGoogle Scholar
  72. 445.
    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. 446.
    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

Copyright information

© Springer Science+Business Media, LLC 2012

Authors and Affiliations

  1. 1.Department of Informatics and Mathematical ModelingTechnical University of DenmarkCopenhagenDenmark

Personalised recommendations