skip to main content
10.1145/377792.377901acmconferencesArticle/Chapter ViewAbstractPublication PagesicsConference Proceedingsconference-collections
Article

Improving Java performance using hardware translation

Authors Info & Claims
Published:17 June 2001Publication 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. 1.F. Y. T. Lindholm, The Java Virtual Machine Specification. Addison Wesley, 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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.]]Google ScholarGoogle ScholarCross RefCross Ref
  3. 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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.HotSpot: A New Breed of Virtual Machine, http://www.javaworld.com/jw-03-1998/jw-03- hotspot.html?030998.]]Google ScholarGoogle Scholar
  6. 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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.The SPEC JVM98 Benchmarks, http://www.spec.org/osg/jvm98/.]]Google ScholarGoogle Scholar
  9. 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.]]Google ScholarGoogle Scholar
  10. 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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.T. Shanley, Pentium Pro and Pentium II System Architecture. Addison-Wesley, 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.E. Debaere and J. Campenhout, Interpretation and Instruction Path Coprocessing. MIT Press, 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15.J. E. Smith, " Decoupled Access/Execute Computer Architecture," in ACM Transactions on Computer Systems, pp. 289-308, November 1984.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17.A. Silbey, V. Milutinovic, and V. Mendoza-Grado, "A Survey of Advanced Microprocessors and Hll Computer Architectures," vol. 19, pp. 72-85, 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.M. J. Flynn and L. W. Hoevel, "Execution Architecture: The Deltran Experiment," vol. C-32, pp. 156-175, 1983.]]Google ScholarGoogle Scholar
  19. 19.G. J. Sussman, J. Holloway, J. lxx Steel, and A. Bell, "Scheme-79 Lisp on a Chip," vol. 14, pp. 10-21, 1981.]]Google ScholarGoogle Scholar
  20. 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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.A. Wolfe, "First Java-specific chip takes wing ," Electronic Engineering Times, 22 April 1997. http://www.techweb.com/.]]Google ScholarGoogle Scholar
  22. 22.R. B. Slack, "A Java chip available now," Gamelans Java Journal, April 1999. http://softwaredev.earthweb.com/java.]]Google ScholarGoogle Scholar
  23. 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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24.N.Vijaykrishnan, Issues in the Design of a Processor Architecture. PhD thesis, University of South Florida, 1998.]]Google ScholarGoogle Scholar
  25. 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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 28.M. Tremblay, "An Architecture for the New Millenium," in Proceedings of Hot Chips 11, August 1999.]]Google ScholarGoogle Scholar
  29. 29.H. Shiffman, "JSTAR: Practical Java Acceleration For Information Appliances." http://www.nazomi.com/.]]Google ScholarGoogle Scholar
  30. 30.Chicory Systems, "A Comparison of Java Acceleration Technologies." White Paper, Dec 2000.]]Google ScholarGoogle Scholar
  31. 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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Improving Java performance using hardware translation

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

          Copyright © 2001 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 June 2001

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Acceptance Rates

          ICS '01 Paper Acceptance Rate45of133submissions,34%Overall Acceptance Rate584of2,055submissions,28%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader