Abstract
In this article, we present a reusable Java processor IP for application processors of embedded systems. For the Java microarchitecture, we propose a low-cost stack memory design that supports a two-fold instruction folding pipeline and a low-complexity Java exception handling hardware. We also propose a mapping between the Java dynamic class loading model and the SoC platform-based design principle so that the Java core can be encapsulated as a reusable IP. To achieve this goal, a two-level method area with two on-chip circular buffers is proposed as an interface between the RISC core and the Java core. The proposed architecture is implemented on a Xilinx Virtex-5 FPGA device. Experimental results show that its performance has some advantages over other Java processors and a Java VM with JIT acceleration on a PowerPC platform.
- B. Alpern, A. Cocchi, S. Fink, D. Grove, and D. Lieber. 2001. Efficient implementation of Java interfaces: Invokeinterface considered harmless. In Proceedings of 16th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications. 108--124. Google ScholarDigital Library
- M. Beeler, R. W. Gosper, and R. Schroeppel. 1972. HAKMEM: MIT Artificial Intelligence Laboratory, Memo AIM-239. Item 120, 55. Cambridge, MA. Google ScholarDigital Library
- U. Brinkschulte, C. Krakowski, J. Kreuzinger, and T. Ungerer. 1999. A multithreaded Java microcontroller for thread-oriented real-time event-handling. In Proceedings of the International Conference on Parallel Architectures and Compilation Techniques. 34--39. Google ScholarDigital Library
- L.-C. Chang, L.-R. Ton, M.-F. Kao, and C.-P. Chung. 1998. Stack operations folding in Java processors. IEE Proceedings on Computers and Digital Techniques 145, 5, 333--340.Google ScholarCross Ref
- M. Debbabi, A. Gherbi, L. Ketari, C. Talhi, N. Tawbi, H. Yahyaoui, and S. Zhioua. 2004. A dynamic compiler for embedded Java virtual machines. In Proceedings of the 3rd International Symposium on Principles and Practices of Programming in Java. 100--106. Google ScholarDigital Library
- E. Duesterwald. 2005. Design and engineering of a dynamic binary optimizer. Proceedings of the IEEE 93, 2, 436--448.Google ScholarCross Ref
- M. W. El-Kharashi, F. Elguibaly, and K. F. Li. 2001. Adapting Tomasulo's algorithm for bytecode folding based Java processors. ACM SIGARCH Computer Architecture News 29, 5, 1--8. Google ScholarDigital Library
- M. W. El-Kharashi, J. Pfrimmer, K. F. Li, and F. Gebali. 2003. A design space analysis of java processors. In Proceedings of the IEEE Pacific Rim Conference on Communications, Computers, and Signal Processing. 159--163.Google Scholar
- D. S. Hardin. 2001. Real-time objects on the bare metal: An efficient hardware realization of the JavaTM virtual machine. In Proceedings of the 4th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. 53--59. Google ScholarDigital Library
- C.-F. Hwang, K.-N. Su, and C.-J. Tsai. 2010. Low-cost class caching mechanism for Java SoC. In Proceedings of the IEEE International Symposium on Circuit and Systems. 3753--3756.Google ScholarCross Ref
- C. Isen, L. John, J. P. Choi, and H. J. Song. 2008. On the representativeness of embedded Java benchmarks. In Proceedings of the IEEE International Symposium on Workload Characterization. 153--162.Google Scholar
- K. Ishizaki, M. Kawahito, T. Yasue, H. Komatsu, and T. Nakatani. 2000. A study of devirtualization techniques for a Java Just-In-Time compiler. In Proceedings of the 15th ACM SIGPLAN Conference on Objected-Oriented Programming Systems, Languages, and Applications. 294--310. Google ScholarDigital Library
- S. A. Ito, L. Carro, and R. P. Jacobi. 2001. Making Java work for microcontroller applications. IEEE Design & Test of Computers 18, 5, 100--110. Google ScholarDigital Library
- JCP. 2005. Mobile 3D Graphics API, JSR-184. Java Community Process Program.Google Scholar
- JCP. 2006. The J2ME Mobile Media API, JSR-135. Java Community Process Program.Google Scholar
- JOP Project. 2010. JOP Project Web Page. Retrieved July 27, 2010, from http://www.jopdesign.comGoogle Scholar
- K. B. Kent and M. Serra. 2002. Hardware architecture for Java in a hardware/software co-design of the virtual machine. In Proceedings of the Euromicro Symposium on Digital System Design. 20. Google ScholarDigital Library
- M. Kimura, M. H. Miki, T. Onoye, and I. Shirakawa. 2002. A Java accelerator for high performance embedded systems. In Proceedings of the 4th International Conference on Massively Parallel Computing Systems.Google Scholar
- H.-J. Ko, and C.-J. Tsai. 2007. A double-issue Java processor design for embedded applications. In Proceedings of the IEEE International Symposium on Circuit and Systems. 3502--3505.Google ScholarCross Ref
- A. Krall. 1998. Efficient Java just-in-time compilation. In Proceedings of the IEEE International Conference on Parallel Architectures and Compilation Techniques. 205--212. Google ScholarDigital Library
- Z.-G. Lin, H.-W. Kuo, Z.-J. Guo, and C.-J. Tsai. 2012. Stack memory design for a low-cost instruction folding Java processor. In Proceedings of the IEEE International Symposium on Circuit and Systems. 3326--3229.Google ScholarCross Ref
- T. Lindholm and F. Yelling. 1999. The Java Virtual Machine Specification (2nd ed.). Addison Wesley Longman, Boston, MA. Google ScholarDigital Library
- H. McGhan and M. O'Connor. 1998. PicoJava: A direct execution engine for Java bytecode. IEEE Computer 31, 10, 22--30. Google ScholarDigital Library
- B. R. Montague. 1997. JN: OS for an embedded Java network computer. IEEE Micro 17, 3, 54--60. Google ScholarDigital Library
- Oracle. 2013. Phoneme Project Web Page. Retrieved September 27, 2011, from https://java.net/projects/phoneme.Google Scholar
- C. Pitter and M. Schoeberl. 2010. A real-time Java chip-multiprocessor. ACM Transactions on Embedded Computing Systems 10, 1, Article No. 9. Google ScholarDigital Library
- C. Porthouse. 2005. High Performance Java on Embedded Devices. Jazelle DBX Technology: ARM acceleration technology for the Java Platform. White Paper. ARM Ltd.Google Scholar
- T. B. Preusser, M. Zabel, and R. G. Spallek. 2007. Enabling constant-time interface method dispatch in embedded Java processors. In Proceedings of the 5th International Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES'07). 196--205. Google ScholarDigital Library
- W. Puffitsch and M. Schoeberl. 2007. picoJava-II in an FPGA. In Proceedings of the 5th International Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES'07). 213--221. Google ScholarDigital Library
- R. Radhakrishnan, R. Bhargava, and L. K. John. 2001. Improving Java performance using hardware translation. In Proceedings of the International Conference on Supercomputing. 427--439. Google ScholarDigital Library
- R. Radhakrishnan, D. Talla, and L. K. John. 2000. Allowing for ILP in an embedded Java processor. ACM SIGARCH Computer Architecture News 28, 2, 294--305. Google ScholarDigital Library
- S. Ritchie. 1997. Systems programming in Java. IEEE Micro 17, 3, 30--35. Google ScholarDigital Library
- T. Säntti. 2008. A Co-Processor Approach for Efficient Java Execution in Embedded Systems. Ph.D. Dissertation. University of Turku, Turku, Finland.Google Scholar
- M. Schoeberl. 2005. Design and implementation of an efficient stack machine. In Proceedings of the 19th IEEE International Parallel and Distributed Processing Symposium. 159b. Google ScholarDigital Library
- M. Schoeberl. 2008. A Java processor architecture for embedded real-time systems. EUROMICRO Journal of System Architecture 54, 1--2, 265--286. Google ScholarDigital Library
- M. Schoeberl and W. Puffitsch. 2010. Non-blocking real-time garbage collection. ACM Transactions on Embedded Computing Systems, 10, 1, Article No. 6. Google ScholarDigital Library
- M. Schoeberl, T. B. Preusser, and S. Uhrig. 2010. The embedded Java benchmark suite JemBench. In Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems. 120--127. Google ScholarDigital Library
- H.-C. Su, T.-H. Wu, and C.-J. Tsai. 2014. Temporal multithreading architecture design for a Java processor. In Proceedings of the IEEE International Symposium on Circuit and Systems. 2201--2204.Google ScholarCross Ref
- Sun Microsystems. 1999. picoJava-II Microarchitecture Guide. Sun Microsystems.Google Scholar
- J. Tyystjärvi, T. Säntti, and J. Plosila. 2010. Efficient bytecode optimizations for a multicore Java co-processor system. In Proceedings of the 12th Biennial Baltic Electronics Conference. 173--176.Google Scholar
- B. Venner. 2000. Inside the Java 2 Virtual Machine (2nd ed.). McGraw-Hill.Google Scholar
- N. Vijaykrishnan, N. Ranganathan, and R. Gadekarla. 1998. Object-oriented architectural support for a Java processor. In Proceedings of the 12th European Conference on Object-Oriented Programming. 330--354. Google ScholarDigital Library
- Z. Wang. 2010. An intelligent multi-port memory. Journal of Computers 5, 3, 471--478.Google Scholar
- L. Yan and Z. Liang. 2009. An accelerator design for speedup of Java execution in consumer mobile devices. Computers and Electrical Engineering 35, 6, 904--919. Google ScholarDigital Library
Index Terms
- A Java Processor IP Design for Embedded SoC
Recommendations
FPGA prototyping of a RISC processor core for embedded applications
Application-specific processors offer an attractive option in the design of embedded systems by providing high performance for a specific application domain. In this work, we describe the use of a reconfigurable processor core based on an RISC ...
Investigating hardware micro-instruction folding in a Java embedded processor
JTRES '10: Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded SystemsBytecode folding is an effective technique for speeding up execution in Java virtual machines. This paper investigates a hardware implementation of the aforementioned technique on BlueJEP, a Java embedded processor. Since BlueJEP is a micro-programmed ...
Class Loader Firmware on Java SoC
ISCSCT '08: Proceedings of the 2008 International Symposium on Computer Science and Computational Technology - Volume 01Java is one of the most popular programming architectures because of its platform-independence. A Java processor called “JOP” accelerates the speed of Java applications by executing Java bytecode instructions directly instead of by software emulation. ...
Comments