Abstract
In this paper, we propose architectural support for object manipulation, stack processing and method invocation to enhance the execution speed of Java bytecodes. First, a virtual address object cache that supports efficient manipulation and relocation of objects is presented. The proposed scheme combines the serialized handle and object lookup into a single lookup. Next, the extended folding optimization that combines the execution of a sequence of bytecodes is proposed. This eliminates the redundant loads and stores of local variables associated with stack architectures. Also, three cache-based schemes: hybrid cache, hybrid polymorphic cache and two-level hybrid cache to implement virtual method invocations are presented. These schemes utilize the receiver type locality at call sites and eliminate the need for creating dispatch tables used in current JVM implementations.
This work was done when the author was at University of South Florida
Preview
Unable to display preview. Download preview PDF.
References
T. Lindholm, F. Yellin, The Java Virtual Machine Specification, Addison Wesley, 1997.
B. Calder, D. Grunwald, and B. Zorn, ”Quantifying Behavioral Differences Between C and C++ Programs”, Journal of Programming Languages, Vol. 2., Num 4, 1994.
J. Michael O'Connor, M. Tremblay, ”picoJava-I: The Java Virtual Machine in Hardware”, IEEE Micro, March/April 1997, pp. 45–53.
Patriot Scientific Corporation, the PSC1000 Processor, www.ptsc.com/PSC1000.
K. Ebcioglu, E. Altman, E. Hokenek, ”A JAVA ILP Machine Based on Fast Dynamic Compilation”, International Workshop on Security and Efficiency Aspects of Java, Eilat, Israel, January 9–10, 1997
K. Driesen, U. Hoelzle and J. Vitek, ”Message Dispatch on Pipelined Processors”, proc. ECOOP' 95, 1995.
WARTS: The Wisconsin Architectural Research Tools Set, University of Wisconsin, Madison.
J. R. Jackson, Java by example, SunSoft Press, 1997.
N. P. Jouppi and S. J. E. Wilton, ”An Enhanced Access and Cycle Time Model for On-Chip Caches”, DEC-WRL Technical Report, 93.5, July 1994.
I. W. Williams, Object-Based Memory Architecture, PhD thesis, Department of Computer Science, University of Manchester, May 1989.
Open Group Research Institute Java Test Suite, http://www.gr.osf.org/java/testsuite/html/.
J. A. Dean, Whole-Program Optimization of Object-Oriented Languages, Ph.D Thesis, University of Washington, 1996.
C. A. Hsieh, et. al., ”Optimizing NET Compilers for Improved Java Performance”, Computer, June 1997, pp. 67–75.
A. Krall and R. Grafl, ”CACAO — A 64 bit JavaVM Just-in-Time Compiler”, PPoPP '97 JAVA workshop.
Deutsch and Schiffman, ” Efficient implementation of the Smalltalk-80 system”, proc. 11th ACM Symposium on the Principles of Programming Languages, Jan 1984, pp. 297–302.
D. Ungar, The Design and Evaluation of a High-Performance Smalltalk System, MIT Press, Cambridge, MA, 1987.
A. Goldberg and D. Robson, Smalltalk-80: The Language and its Implementation, Second Edition, Addision-Wesley, reading, MA, 1985.
JavaSoft Home page, http:/www.javasoft.com/
J. Vitek, ”Compact Dispatch Tables for Dynamically Typed Programming Languages”, Object Applications,ed. D. Tzichritzis, Univ. of Geneva, Centre Universitaire d'Informatique, Aug. 1996.
JLex, http://www.cs.princeton.edu/ appel/modern/java/JLex/.
EspressoGrinder, wwwipd.ira.uka.de/ espresso
Turbo J Compiler, http://www.osf.org/www/java/turbo/.
Asymetrix SuperCede, www.asymetrix.com/products/supercede/.
Toba: A Java-to-C Translator, www.cs.arizona.edu/sumatra/toba/.
Guava JIT compiler, guava.softway.com.au/index.html.
Symantec Cafe, www.symantec.com/cafe/index.product.html.
J2C, www.webcity.co.jp/info/andoh/java/j2c.html.
Jolt: Converting bytecode to C, www.blackdown.org/kbs/jolt.html.
G. Müller, B. Moura, F. Bellard and C. Consel, ”Harissa: a Flexible and Efficient Java Environment Mixing Bytecode and Compiled Code”, proc. COOTS '97.
A. Arvindam, The design and behavioral model of an enhanced FORTH architecture, Masters Thesis, Univ. of S. Florida, 1995.
KAFFE, www.kaffe.org
U. Hoelzle, C. Chambers and D. Ungar, ”Optimizing Dynamically-Typed Object-Oriented Languages with Polymorphic Inline Caches”, proc. ECOOP'91, July 1991.
”The Unprecedented Opportunity for Java Systems”, Whitepaper 96-043, Sun Microelectronics.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Vijaykrishnan, N., Ranganathan, N., Gadekarla, R. (1998). Object-oriented architectural support for a Java processor. In: Jul, E. (eds) ECOOP’98 — Object-Oriented Programming. ECOOP 1998. Lecture Notes in Computer Science, vol 1445. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0054098
Download citation
DOI: https://doi.org/10.1007/BFb0054098
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-64737-9
Online ISBN: 978-3-540-69064-1
eBook Packages: Springer Book Archive