Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

A Java Processor IP Design for Embedded SoC

Published: 17 February 2015 Publication History

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

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

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
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

Journal Family

Publication History

Published: 17 February 2015
Accepted: 01 May 2014
Revised: 01 December 2013
Received: 01 December 2012
Published in TECS Volume 14, Issue 2

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Java accelerator
  2. application processor SoC
  3. dynamic class loading
  4. embedded systems

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

  • National Science Council of Taiwan

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Accelerating OCaml Programs on FPGAInternational Journal of Parallel Programming10.1007/s10766-022-00748-z51:2-3(186-207)Online publication date: 1-Jun-2023
  • (2018)A Hardwired Priority-Queue Scheduler for a Four-Core Java SoC2018 IEEE International Symposium on Circuits and Systems (ISCAS)10.1109/ISCAS.2018.8351129(1-4)Online publication date: May-2018
  • (2018)A Hardware-oriented Object Model for Java in an Embedded ProcessorMicroprocessors and Microsystems10.1016/j.micpro.2018.08.007Online publication date: Aug-2018
  • (2017)Hardwiring the OS kernel into a Java application processor2017 IEEE 28th International Conference on Application-specific Systems, Architectures and Processors (ASAP)10.1109/ASAP.2017.7995259(53-60)Online publication date: Jul-2017
  • (2016)JAIP-MP: A Four-Core Java Application Processor for Embedded SystemsVLSI-SoC: Design for Reliability, Security, and Low Power10.1007/978-3-319-46097-0_9(170-192)Online publication date: 13-Sep-2016
  • (2015)JAIP-MP: A four-core Java application processor2015 IFIP/IEEE International Conference on Very Large Scale Integration (VLSI-SoC)10.1109/VLSI-SoC.2015.7314414(189-194)Online publication date: Oct-2015

View Options

Get Access

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media