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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Personal communication with Sascha Uhrig.
- 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.
A template can be found at http://practicalembeddedjava.com/tutorials/aJileISR.html.
References
aJile Systems. aj-100 real-time low power Java processor. preliminary data sheet, 2000.
aJile Systems. aj-102 technical reference manual v2.4. Available at http://www.ajile.com/, 2009.
aJile Systems. aj-200 technical reference manual v2.1. Available at http://www.ajile.com/, 2010.
ARM. Jazelle technology: ARM acceleration technology for the Java platform. white paper, 2004.
H.G. Baker. List processing in real time on a serial computer. Commun. ACM, 21(4):280–294, 1978.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
T.R. Halfhill. Imsys hedges bets on Java. Microprocessor Report, August 2000.
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.
T. Harmon. Interactive Worst-case Execution Time Analysis of Hard Real-time Systems. PhD thesis, University of California, Irvine, 2009.
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.
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.
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.
B. Huber. Worst-case execution time analysis for real-time Java. Master’s thesis, Vienna University of Technology, Austria, 2009.
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.
Imsys. ISAJ reference 2.0, January 2001.
Imsys. Im1101c (the Cjip) technical reference manual / v0.25, 2004.
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.
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.
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.
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.
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.
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.
M. Meyer. A novel processor architecture with exact tag-free pointers. IEEE Micro, 24(3):46–55, 2004.
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.
G. Michel and J. Sachtleben. An integrated gyrotron controller. Fusion Engineering and Design, In Press, Corrected Proof:–, 2011.
Nazomi. JA 108 product brief. Available at http://www.nazomi.com.
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.
J.M. O’Connor and M. Tremblay. picoJava-I: The Java virtual machine in hardware. IEEE Micro, 17(2):45–53, 1997.
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.
C. Pitter and M. Schoeberl. A real-time Java chip-multiprocessor. ACM Trans. Embed. Comput. Syst., 10(1):9:1–34, 2010.
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.
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.
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.
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.
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.
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.
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.
M. Schoeberl. JOP: A Java Optimized Processor for Embedded Real-Time Systems. PhD thesis, Vienna University of Technology, 2005.
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.
M. Schoeberl. A Java processor architecture for embedded real-time systems. Journal of Systems Architecture, 54/1–2:265–286, 2008.
M. Schoeberl. JOP Reference Handbook: Building Embedded Systems with a JavaProcessor. CreateSpace, August 2009. Available at http://www.jopdesign.com/doc/handbook.pdf.
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.
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.
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.
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.
M. Schoeberl, S. Korsholm, T. Kalibera, and A.P. Ravn. A hardware abstraction layer in Java. ACM Trans. Embed. Comput. Syst., accepted, 2010.
M. Schoeberl and W. Puffitsch. Non-blocking real-time garbage collection. ACM Trans. Embedded Comput. Syst., 10(1), 2010.
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.
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.
Sun. picoJava-II Microarchitecture Guide. Sun Microsystems, March 1999.
Sun. picoJava-II Programmer’s Reference Manual. Sun Microsystems, March 1999.
Sun Microsystems. Connected limited device configuration 1.1. Available at http://jcp.org/aboutJava/communityprocess/final/jsr139/, March 2003.
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.
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.
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.
N. Vijaykrishnan and N. Ranganathan. Supporting object accesses in a Java processor. Computers and Digital Techniques, IEE Proceedings-, 147(6):435–443, 2000.
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.
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.
I.W. Williams. Object-Based Memory Architecture. PhD thesis, Department of Computer Science, University of Manchester, 1989.
G. Wright, M.L. Seidl, and M. Wolczko. An object-aware memory architecture. Technical Report SML–TR–2005–143, Sun Microsystems Laboratories, February 2005.
G. Wright, M.L. Seidl, and M. Wolczko. An object-aware memory architecture. Sci. Comput. Program, 62(2):145–163, 2006.
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.
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.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)