Interpretation and instruction path coprocessing
Interpretation and instruction path coprocessing
Fast, effective code generation in a just-in-time Java compiler
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Pentium Pro and Pentium II system architecture (2nd ed.)
Pentium Pro and Pentium II system architecture (2nd ed.)
The Jalapeño dynamic optimizing compiler for Java
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Proceedings of the 27th annual international symposium on Computer architecture
Decoupled access/execute computer architectures
ACM Transactions on Computer Systems (TOCS)
Java Runtime Systems: Characterization and Architectural Implications
IEEE Transactions on Computers
Java Virtual Machine Specification
Java Virtual Machine Specification
IEEE Micro
The Delft-Java Engine: An Introduction
Euro-Par '97 Proceedings of the Third International Euro-Par Conference on Parallel Processing
Object-Oriented Architectural Support for a Java Processor
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Hardware/Software Co-Design of a Java Virtual Machine
RSP '00 Proceedings of the 11th IEEE International Workshop on Rapid System Prototyping (RSP 2000)
Characterization of Java Applications at Bytecode and Ultra-SPARC Machine Code Levels
ICCD '99 Proceedings of the 1999 IEEE International Conference on Computer Design
DELFT-JAVA Link Translation Buffer
EUROMICRO '98 Proceedings of the 24th Conference on EUROMICRO - Volume 1
Shade: A Fast Instruction Set Simulator for Execution Profiling
Shade: A Fast Instruction Set Simulator for Execution Profiling
Overview of the IBM Java just-in-time compiler
IBM Systems Journal
Proxy compilation of dynamically loaded Java classes with MoJo
Proceedings of the joint conference on Languages, compilers and tools for embedded systems: software and compilers for embedded systems
Exploiting FPGA concurrency to enhance JVM performance
ACSC '04 Proceedings of the 27th Australasian conference on Computer science - Volume 26
On the design of the local variable cache in a hardware translation-based java virtual machine
LCTES '05 Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Local variable access behavior of a hardware-translation based Java virtual machine
Journal of Systems and Software
CoDBT: A multi-source dynamic binary translator using hardware-software collaborative techniques
Journal of Systems Architecture: the EUROMICRO Journal
Java type confusion and fault attacks
FDTC'06 Proceedings of the Third international conference on Fault Diagnosis and Tolerance in Cryptography
A novel JAVA processor for embedded devices
SAMOS'05 Proceedings of the 5th international conference on Embedded Computer Systems: architectures, Modeling, and Simulation
Hi-index | 0.00 |
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.