[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/377792.377901acmconferencesArticle/Chapter ViewAbstractPublication PagesicsConference Proceedingsconference-collections
Article

Improving Java performance using hardware translation

Published: 17 June 2001 Publication History

Abstract

State of the art Java Virtual Machines with Just-In-Time (JIT) compilers make use of advanced compiler techniques, run-time profiling and adaptive compilation to improve performance. However, these techniques for alleviating performance bottlenecks are more effective in long running workloads, such as server applications. Short running Java programs, or client workloads, spend a large fraction of their execution time in compilation instead of useful execution when run using JIT compilers. In short running Java programs, the benefits of runtime translation do not compensate for the overhead.
We propose using hardware support to perform efficient Java translation coupled with a light weight run time environment. The additional hardware performs the translation of Java bytecodes to native code, thus eliminating much of the overhead of software translation. A translate d code buffer is used to hold the translated code, enabling reuse at the byte code level. The proposed hardware can be used in any general purpose processor without degrading performance of native code. The proposed technique is extremely effective for short running client workloads. A performance improvement of 2.8 times to 7.7 times over a software interpreter is achieved. When compared to a JIT compiler all SPECjvm98 benchmarks except one show a performance improvement ranging from. 2.7 times to 5.0 times. A performance degradation (0.58 times) is observed for one benchmark which is long running. Allowing hardware translation to perform optimizations similar to JIT compilers and Java processors will execute long running programs more efficiently and provide speedups similar to that of client workloads.

References

[1]
F. Y. T. Lindholm, The Java Virtual Machine Specification. Addison Wesley, 1997.]]
[2]
A. Krall and R. Gra, "CACAO- a 64 bit JavaVM Just-In-time Compiler," in Concurrency: Practice and Experience, 9(11):1017-1030, 1997.]]
[3]
A.-R.Adl-Tabatabai, M.Ciernaki, G.-Y.Lueh, V.M.Parikh, and J.MStichnoth, "Fast, Effective Code Generation in a Just-In-Time Java Compiler," in Proceedings of Conference onProgramming Language Design and Implementation, pp. 280-290, 1998.]]
[4]
T. Cramer, R. Friedman, T. Miller, D. Seberger, R. Wilson, and M. Wolczko, " Compiling Java Just In Time," IEEE Micro, vol. 17, pp. 36-43, May-June 1997.]]
[5]
HotSpot: A New Breed of Virtual Machine, http://www.javaworld.com/jw-03-1998/jw-03- hotspot.html?030998.]]
[6]
T. Suganuma, T. Ogasawara, M. Takeuchi, T. Yasue, M. Kawahito, K. Ishizaki, H. Komatsu, and T. Nakatani, "Overview of the IBM Java Just-in-Time Compiler," IBM Systems Journal, vol. 39, no. 1, pp. 175-194, 2000.]]
[7]
M. Burke, J.-D. Choi, S. Fink, D. Grove, M. Hind, V. Sarkar, M. Serrano, V. Sreedhar, and H. Srinivasan, "The Jalapeo Dynamic Optimizing Compiler for Java," in ACM Java Grande Conference, pp. 129-141, June 1999.]]
[8]
The SPEC JVM98 Benchmarks, http://www.spec.org/osg/jvm98/.]]
[9]
R. Radhakrishnan, N. Vijaykrishnan, L. K. John and A. Sivasubramanium, "Architectural Issues in Java Runtime Systems," in Proceedings of the Intl. Symposium on High Performance Computer Architecture (HPCA-6), pp. 387-398, January 2000.]]
[10]
R. Radhakrishnan, J. Rubio, and L. John, "Characterization of Java applications at the bytecode level and at UltraSPARC-II Machine Code Level," in Proceedings of International Conference on Computer Design, October 1999.]]
[11]
R. Radhakrishnan, N. Vijaykrishnan, L. K. John, A. Sivasubramaniam, J. Rubio, and J. Sabarinathan, "Java Runtime Systems: Characterization and Architectural Implications," IEEE Transactions on Computers, pp. 131-146, Feb 2001.]]
[12]
T. Shanley, Pentium Pro and Pentium II System Architecture. Addison-Wesley, 1998.]]
[13]
E. Debaere and J. Campenhout, Interpretation and Instruction Path Coprocessing. MIT Press, 1990.]]
[14]
Y. Chou and J. P. Shen, "Instruction Path Coprocessors," in Proceedings of the 27th Annual International Symposium on Computer Architecture, pp. 270-281, June 2000.]]
[15]
J. E. Smith, " Decoupled Access/Execute Computer Architecture," in ACM Transactions on Computer Systems, pp. 289-308, November 1984.]]
[16]
Robert F. Cmelik and David Keppel, "Shade: A Fast Instruction-Set Simulator for Execution Profiling, SMLI TR-93-12," tech. rep., Sun Microsystems Inc, 1993.]]
[17]
A. Silbey, V. Milutinovic, and V. Mendoza-Grado, "A Survey of Advanced Microprocessors and Hll Computer Architectures," vol. 19, pp. 72-85, 1986.]]
[18]
M. J. Flynn and L. W. Hoevel, "Execution Architecture: The Deltran Experiment," vol. C-32, pp. 156-175, 1983.]]
[19]
G. J. Sussman, J. Holloway, J. lxx Steel, and A. Bell, "Scheme-79 Lisp on a Chip," vol. 14, pp. 10-21, 1981.]]
[20]
J. Michael O'Connor and M. Tremblay, "Picojava-I: The Java Virtual Machine in Hardware," IEEE-MICRO, vol. 17, pp. 45-53, Mar/Apr 1997.]]
[21]
A. Wolfe, "First Java-specific chip takes wing," Electronic Engineering Times, 22 April 1997. http://www.techweb.com/.]]
[22]
R. B. Slack, "A Java chip available now," Gamelans Java Journal, April 1999. http://softwaredev.earthweb.com/java.]]
[23]
N.Vijaykrishnan, N.Ranganathan, and R.Gadekarla, "Object-Oriented Architectural Support for a Java Processor," in Proceedings of ECOOP'98, the 12th European Conference onObject-Oriented Programming, pp. 330-354, 1998.]]
[24]
N.Vijaykrishnan, Issues in the Design of a Processor Architecture. PhD thesis, University of South Florida, 1998.]]
[25]
N. Vijaykrishnan and N. Ranganathan, "Tuning Branch Predictors to Support Virtual Method Invocation in Java," in Proc. of COOTS'99, pp. 217-228, May 1999.]]
[26]
J. Glossner and S. Vassiliadis, "The Delft-Java Engine: An Introduction," in Proceedings of the Third International Euro-Par Conference (Euro-Par'97 Parallel Processing), pp. 766-770, August 1997.]]
[27]
J. Glossner and S. Vassiliadis, "Delft-Java Link Translation Buffer," in Proceedings of the 24th EUROMICRO conference (EuroMicro 98), pp. 221-228, August 1998.]]
[28]
M. Tremblay, "An Architecture for the New Millenium," in Proceedings of Hot Chips 11, August 1999.]]
[29]
H. Shiffman, "JSTAR: Practical Java Acceleration For Information Appliances." http://www.nazomi.com/.]]
[30]
Chicory Systems, "A Comparison of Java Acceleration Technologies." White Paper, Dec 2000.]]
[31]
K. B. Kent and M. Serra, "Hardware/Software Co-Design of a Java Virtual Machine," in Proceedings of the 11th IEEE International Workshop on Rapid System Prototyping (RSP 2000), June 2000.]]

Cited By

View all
  • (2018)Reusing the Optimized Code for JavaScript Ahead-of-Time CompilationACM Transactions on Architecture and Code Optimization10.1145/329105615:4(1-20)Online publication date: 19-Dec-2018
  • (2015)A Java Processor IP Design for Embedded SoCACM Transactions on Embedded Computing Systems10.1145/262964914:2(1-25)Online publication date: 17-Feb-2015
  • (2015)Auto-Tuning the Java Virtual MachineProceedings of the 2015 IEEE International Parallel and Distributed Processing Symposium Workshop10.1109/IPDPSW.2015.84(1261-1270)Online publication date: 25-May-2015
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICS '01: Proceedings of the 15th international conference on Supercomputing
June 2001
510 pages
ISBN:158113410X
DOI:10.1145/377792
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 June 2001

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

ICS01
Sponsor:

Acceptance Rates

ICS '01 Paper Acceptance Rate 45 of 133 submissions, 34%;
Overall Acceptance Rate 629 of 2,180 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)1
Reflects downloads up to 19 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2018)Reusing the Optimized Code for JavaScript Ahead-of-Time CompilationACM Transactions on Architecture and Code Optimization10.1145/329105615:4(1-20)Online publication date: 19-Dec-2018
  • (2015)A Java Processor IP Design for Embedded SoCACM Transactions on Embedded Computing Systems10.1145/262964914:2(1-25)Online publication date: 17-Feb-2015
  • (2015)Auto-Tuning the Java Virtual MachineProceedings of the 2015 IEEE International Parallel and Distributed Processing Symposium Workshop10.1109/IPDPSW.2015.84(1261-1270)Online publication date: 25-May-2015
  • (2012)Stack memory design for a low-cost instruction folding Java processor2012 IEEE International Symposium on Circuits and Systems10.1109/ISCAS.2012.6272011(3226-3229)Online publication date: May-2012
  • (2010)CoDBTJournal of Systems Architecture: the EUROMICRO Journal10.1016/j.sysarc.2010.07.00856:10(500-508)Online publication date: 1-Oct-2010
  • (2009)JavaFlow — A Java dataflow machine2009 IEEE International SOC Conference (SOCC)10.1109/SOCCON.2009.5398055(211-214)Online publication date: Sep-2009
  • (2008)Local variable access behavior of a hardware-translation based Java virtual machineJournal of Systems and Software10.1016/j.jss.2008.03.05781:11(2059-2068)Online publication date: 1-Nov-2008
  • (2006)A Java processor with hardware-support object-oriented instructionsMicroprocessors and Microsystems10.1016/j.micpro.2005.12.00730:8(469-479)Online publication date: Dec-2006
  • (2006)Java type confusion and fault attacksProceedings of the Third international conference on Fault Diagnosis and Tolerance in Cryptography10.1007/11889700_21(237-251)Online publication date: 10-Oct-2006
  • (2005)On the design of the local variable cache in a hardware translation-based java virtual machineACM SIGPLAN Notices10.1145/1070891.106592340:7(87-94)Online publication date: 15-Jun-2005
  • Show More Cited By

View Options

Login options

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