skip to main content
research-article

A Java Processor IP Design for Embedded SoC

Published:17 February 2015Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. Beeler, R. W. Gosper, and R. Schroeppel. 1972. HAKMEM: MIT Artificial Intelligence Laboratory, Memo AIM-239. Item 120, 55. Cambridge, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarCross RefCross Ref
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. E. Duesterwald. 2005. Design and engineering of a dynamic binary optimizer. Proceedings of the IEEE 93, 2, 436--448.Google ScholarGoogle ScholarCross RefCross Ref
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle Scholar
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarCross RefCross Ref
  11. 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 ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. JCP. 2005. Mobile 3D Graphics API, JSR-184. Java Community Process Program.Google ScholarGoogle Scholar
  15. JCP. 2006. The J2ME Mobile Media API, JSR-135. Java Community Process Program.Google ScholarGoogle Scholar
  16. JOP Project. 2010. JOP Project Web Page. Retrieved July 27, 2010, from http://www.jopdesign.comGoogle ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle Scholar
  19. 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 ScholarGoogle ScholarCross RefCross Ref
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarCross RefCross Ref
  22. T. Lindholm and F. Yelling. 1999. The Java Virtual Machine Specification (2nd ed.). Addison Wesley Longman, Boston, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. H. McGhan and M. O'Connor. 1998. PicoJava: A direct execution engine for Java bytecode. IEEE Computer 31, 10, 22--30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. B. R. Montague. 1997. JN: OS for an embedded Java network computer. IEEE Micro 17, 3, 54--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Oracle. 2013. Phoneme Project Web Page. Retrieved September 27, 2011, from https://java.net/projects/phoneme.Google ScholarGoogle Scholar
  26. C. Pitter and M. Schoeberl. 2010. A real-time Java chip-multiprocessor. ACM Transactions on Embedded Computing Systems 10, 1, Article No. 9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. C. Porthouse. 2005. High Performance Java on Embedded Devices. Jazelle DBX Technology: ARM acceleration technology for the Java Platform. White Paper. ARM Ltd.Google ScholarGoogle Scholar
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. S. Ritchie. 1997. Systems programming in Java. IEEE Micro 17, 3, 30--35. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. T. Säntti. 2008. A Co-Processor Approach for Efficient Java Execution in Embedded Systems. Ph.D. Dissertation. University of Turku, Turku, Finland.Google ScholarGoogle Scholar
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  35. M. Schoeberl. 2008. A Java processor architecture for embedded real-time systems. EUROMICRO Journal of System Architecture 54, 1--2, 265--286. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. M. Schoeberl and W. Puffitsch. 2010. Non-blocking real-time garbage collection. ACM Transactions on Embedded Computing Systems, 10, 1, Article No. 6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  38. 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 ScholarGoogle ScholarCross RefCross Ref
  39. Sun Microsystems. 1999. picoJava-II Microarchitecture Guide. Sun Microsystems.Google ScholarGoogle Scholar
  40. 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 ScholarGoogle Scholar
  41. B. Venner. 2000. Inside the Java 2 Virtual Machine (2nd ed.). McGraw-Hill.Google ScholarGoogle Scholar
  42. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  43. Z. Wang. 2010. An intelligent multi-port memory. Journal of Computers 5, 3, 471--478.Google ScholarGoogle Scholar
  44. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A Java Processor IP Design for Embedded SoC

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM Transactions on Embedded Computing Systems
            ACM Transactions on Embedded Computing Systems  Volume 14, Issue 2
            March 2015
            472 pages
            ISSN:1539-9087
            EISSN:1558-3465
            DOI:10.1145/2737797
            Issue’s Table of Contents

            Copyright © 2015 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 17 February 2015
            • Accepted: 1 May 2014
            • Revised: 1 December 2013
            • Received: 1 December 2012
            Published in tecs Volume 14, Issue 2

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Research
            • Refereed

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader