Abstract
Superblock compilation techniques such as control flow graph (CFG) or trace compilation have become a widely adopted approach to increase the performance of dynamically compiling virtual machines even further. While this was shown to be successful for many conventional virtual machines, it did not result in a higher performance for Java-based DBT machine emulators so far. These emulators dynamically translate application binaries of a target machine into Java bytecode, which is then eventually compiled into the native code of the emulating host by the Java Virtual Machine (JVM). Successful superblock compilation techniques for this class of emulators must consider the special requirements that result from the two-stage translation as well as the characteristics of the JVM, such as the inability of most Java JIT compilers to handle large bytecode methods efficiently.
In this paper, we present a superblock compilation approach for a Java-based DBT machine emulator that generates a performance increase of up to 90 percent and of 32 percent on average. The key idea of our design is to provide a large scope over the control flow of target applications across basic block boundaries for the JVM, while still keeping small bytecode methods for the execution units.
In addition, we also present two further optimizations -- interpreter context elimination and program counter elimination -- which increase the emulation performance by 16 percent again. In total, the optimization techniques discussed in this paper provide an average performance gain of 48 percent for the surveyed emulator.
- EEMBC AutoBench 1.1 Benchmark Software. http://www.eembc.org/benchmark/automotive_sl.php, 2011.Google Scholar
- Java DOSBox. http://jdosbox.sourceforge.net, 2011.Google Scholar
- JPC -- The Pure Java x86 PC Emulator. http://jpc.sourceforge.net, 2011.Google Scholar
- M. Baer. Emulating the ARM Architecture Using a Java Dynamic Binary Translator. Master's thesis, University of Manchester, School of Computer Science, 2007.Google Scholar
- V. Bala, E. Duesterwald, and S. Banerjia. Transparent dynamic optimization: The design and implementation of dynamo. Technical report, HP Laboratories Cambridge, June 1999.Google Scholar
- E. Duesterwald and V. Bala. Software profiling for hot path prediction: less is more. SIGOPS Oper. Syst. Rev., 34(5):202--211, Nov. 2000. ISSN 0163-5980. Google Scholar
Digital Library
- A. Gal, C. W. Probst, and M. Franz. Hotpathvm: an effective jit compiler for resource-constrained devices. In Proceedings of the 2nd international conference on Virtual execution environments, VEE '06, pages 144--153, New York, NY, USA, 2006. ACM. ISBN 1-59593-332-8. Google Scholar
Digital Library
- C. Häubl and H. Mössenböck. Trace-based compilation for the java hotspot virtual machine. In Proceedings of the 9th International Conference on Principles and Practice of Programming in Java, PPPJ'11, pages 129--138, New York, NY, USA, 2011. ACM. ISBN 978-1-4503-0935-6. Google Scholar
Digital Library
- H. Hayashizaki, P. Wu, H. Inoue, M. J. Serrano, and T. Nakatani. Improving the performance of trace-based systems by false loop filtering. SIGARCH Comput. Archit. News, 39(1):405--418, Mar. 2011. ISSN 0163-5964. Google Scholar
Digital Library
- D. Jones and N. Topham. High speed cpu simulation using ltu dynamic binary translation. In Proceedings of the 4th International Conference on High Performance Embedded Architectures and Compilers, HiPEAC '09, pages 50--64, Berlin, Heidelberg, 2009. Springer-Verlag. ISBN 978-3-540-92989-5. Google Scholar
Digital Library
- M. Kaufmann, M. Häsing, T. Preußer, and R. Spallek. The java virtual machine in retargetable, high-performance instruction set simulation. In Proceedings of the 9th International Conference on Principles and Practice of Programming in Java, PPPJ '11, pages 21--30, New York, NY, USA, 2011. ACM. ISBN 978-1-4503-0935-6. Google Scholar
Digital Library
- I. Rogers and C. Kirkham. JikesNODE and PearColator: A Jikes RVM Operating System and Legacy Code Execution Environment. In 2nd ECOOP Workshop on Programm Languages and Operating Systems (ECOOP-PLOS'05), 2005.Google Scholar
- D. Sosniski. Java programming dynamics, part 2: Introducing reflection. http://www.ibm.com/developerworks/java/library/j-dyn0603, June 2003. {Online; accessed 2012/03}.Google Scholar
- R. Vallée-Rai, E. Gagnon, L. J. Hendren, P. Lam, P. Pominville, and V. Sundaresan. Optimizing java bytecode using the soot framework: Is it feasible? In Proceedings of the 9th International Conference on Compiler Construction, CC '00, pages 18--34, London, UK, UK, 2000. Springer-Verlag. ISBN 3-540-67263-X. URL http://dl.acm.org/citation.cfm?id=647476.727758. Google Scholar
Digital Library
- A. Yermolovich, A. Gal, and M. Franz. Portable execution of legacy binaries on the java virtual machine. In Proceedings of the 6th international symposium on Principles and practice of programming in Java, PPPJ '08, pages 63--72, New York, NY, USA, 2008. ACM. ISBN 978-1-60558-223-8. Google Scholar
Digital Library
Index Terms
Superblock compilation and other optimization techniques for a Java-based DBT machine emulator
Recommendations
Superblock compilation and other optimization techniques for a Java-based DBT machine emulator
VEE '13: Proceedings of the 9th ACM SIGPLAN/SIGOPS international conference on Virtual execution environmentsSuperblock compilation techniques such as control flow graph (CFG) or trace compilation have become a widely adopted approach to increase the performance of dynamically compiling virtual machines even further. While this was shown to be successful for ...
The Java Virtual Machine in retargetable, high-performance instruction set simulation
PPPJ '11: Proceedings of the 9th International Conference on Principles and Practice of Programming in JavaTwo main demands on instruction set simulation are portability and high simulation performance. For the testing and benchmarking of ISA prototypes such as in an ASIP design process, simulators are additionally required to offer retargetability for the ...
Evaluating the Java Native Interface JNI: Leveraging Existing Native Code, Libraries and Threads to a Running Java Virtual Machine
This article aims to explore JNI features and to discover fundamental operations of the Java programming language, such as arrays, objects, classes, threads and exception handling, and to illustrate these by using various algorithms and code samples. ...







Comments