跳到主要內容

臺灣博碩士論文加值系統

(44.212.96.86) 您好!臺灣時間:2023/12/06 15:14
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果 :::

詳目顯示

: 
twitterline
研究生:王繹傑
研究生(外文):Yi-Chieh Wang
論文名稱:加速JavaBytecode執行之擴充指令集
論文名稱(外文):Instruction Set Extension for Java Bytecode
指導教授:侯廷偉侯廷偉引用關係
指導教授(外文):Ting-Wei Hou
學位類別:碩士
校院名稱:國立成功大學
系所名稱:工程科學系碩博士班
學門:工程學門
學類:綜合工程學類
論文種類:學術論文
論文出版年:2009
畢業學年度:97
語文別:英文
論文頁數:46
中文關鍵詞:Java 虛擬機器Java Bytecode硬體加速
外文關鍵詞:JavaJava virtual machineJava bytecodehardware accelerating
相關次數:
  • 被引用被引用:0
  • 點閱點閱:233
  • 評分評分:
  • 下載下載:13
  • 收藏至我的研究室書目清單書目收藏:0
本研究提出適合設計成硬體擴充指令集的 Java bytecode,以作為將來硬體直接加速執行 Java bytecode的基礎。本研究首先分析效能評估程式集中各個Java bytecode的使用率,最後再推薦適合設計成硬體的Java bytecodes擴充指令集。實驗的Java虛擬機器實作則使用 JamVM 與 GNU Classpath,並用DaCapo Benchmark Suite來收集 Java bytecodes 的執行次數。我們在 Java虛擬機器裡,設計了一個動態的 bytecodes分析器,以協助我們記錄所有執行過的 Java bytecodes的出現頻率。
本實驗利用 ARM 的指令集來評估每個 Java bytecode 實做的clock cycles,評估方式為每個 Java bytecode 出現次數乘以對應的組合語言clock cycles即是總執行的 clock cycles。利用此評估法所得到的資訊,本研究推薦28 個最常執行的 Java bytecodes。而這 28 個 Java bytecodes 佔整體 Java bytecodes 執行時間將近 81.42%。
This thesis is to define a subset of Java bytecodes that are suitable for instruction set extension as the basis of CPU executing Java bytecode directly. The first step is to analyze the usage of each Java bytecode from benchmark programs, and then identify the bytecodes suitable for instruction set extension. These experiments are performed on the open-source Java Virtual Machine, the JamVM and GNU Classpath. These experiments collect the usage of Java bytecodes of the DaCapo benchmark suite. We implemented a profiler inside the JVM to help tracing and analyzing Java bytecodes executed.
This thesis used ARM instruction’s clock cycles to evaluate each Java bytecode cycle counts. The evaluation method is to multiply the execution times of each bytecode by the implementation’s clock cycles. After evaluation, we propose 28 Java bytecodes for instruction set extension. The cycle counts of these 28 bytecodes are accounted for all of the 81.42% of the benchmark programs.
中文摘要 I
ABSTRACT II
ACKNOWLEDGEMENT III
TABLE OF CONTENTS IV
LIST OF TABLES VI
LIST OF FIGURES VII
1 INTRODUCTION 1
2 BACKGROUND OF JAVA VIRTUAL MACHINE AND BYTECODE 3
2.1 INTRODUCTION OF JAVA VIRTUAL MACHINE 3
2.2 JAVA INTERPRETER 3
2.3 INTRODUCTION OF JAVA BYTECODE 4
2.3.1 Classification of Bytecode 5
2.3.2 Stack-oriented Operation 6
2.4 TRACING JAVA BYTECODE 8
2.4.1 Statically 8
2.4.2 Dynamically 10
2.5 JAVA VIRTUAL MACHINE OPTIMIZATION METHODS 10
2.5.1 Software Solution 11
2.5.2 Hardware Solution 14
2.5.3 Comparison of Software and Hardware solutions 16
3 DESIGN AND IMPLEMENTATION 18
3.1 EXECUTING ENVIRONMENT 18
3.1.1 JamVM 18
3.1.2 GNU Classpath 18
3.2 PROGRAM MEASURED 18
3.2.1 DaCapo Benchmark Program Measured 19
3.2.2 Java Compiler 20
3.3 DYNAMIC JAVA BYTECODE INSTRUCTION FREQUENCIES 20
3.3.1 Jave Bytecode Profiler 20
3.3.2 Instruction Frequencies 23
4 RESULT AND DISCUSSION 25
4.1 THE NUMBER OF BYTECODE EXECUTED 25
4.2 ARM INSTRUCTION COUNTS AND JAVA BYTECODE CYCLE COUNTS 29
4.3 PROPOSED JAVA BYTECODES 29
5 CONCLUSION AND FUTURE WORK 31
REFERENCE 33
APPENDIX 1 - INSIDE JAMVM 35
APPENDIX 2 - CYCLE COUNTS OF EACH JAVA BYTECODE 38
APPENDIX 3 - TOTAL EXECUTION CYCLES OF EACH JAVA BYTECODE 42
BIOGRAPHY 46
[1]Eclipse Compiler for Java. Available from: http://www.eclipse.org/.
[2]GCC, the GNU Compiler Collection. Available from: http://gcc.gnu.org/.
[3]GNU Classpath. Available from: http://www.gnu.org/software/classpath/.
[4]GNU Compiler for the Java. Available from: http://gcc.gnu.org/java/index.html.
[5]A Comparison of Interpreted Java, WAT, AOT, JIT, and DAC. Lawrence Dickman 2002; Available from: www.oberon2005.ru/paper/ld2002-01e.pdf.
[6]Accelerator IP puts Java in hardware. Electronicstalk Janurary 30, 2001; Available from: http://www.electronicstalk.com/news/ins/ins102.html.
[7]Jazelle® DBX technology: ARM® acceleration technology for the Java™ Platform. ARM Inc. 2007; Available from: http://www.arm.com/pdfs/JazelleDBX_WhitePaper_2007v1p1.pdf.
[8]JAZELLE® TECHNOLOGY FOR EXECUTION ENVIRONMENTS. ARM Inc. 2007; Available from: http://www.arm.com/pdfs/Jazelle_tech_flyer_0114-9.pdf.
[9]JVXtreme Java Accelerator Core. InSilicon Inc. 2001; Available from: http://www.altera.com/products/ip/ampp/documents/jvxtreme-Java_acc.pdf.
[10]JamVM. Robert Lougher; Available from: http://jamvm.sourceforge.net/.
[11]DaCapo benchmark suite. DaCapo Project 2009; Available from: http://dacapobench.org/.
[12]Denis N. Antonioli and Markus Pilz, "Analysis of the Java Class File Format," Technical Report: ifi-98.04 University of Zurich, 1998.
[13]David Gregg, M. Anton Ertl, and Andreas Krall, "Implementing an Efficient Java Interpreter," in Proceedings of the 9th International Conference on High-Performance Computing and Networking, pp. 613-620, 2001.
[14]J. Waldron, C. Daly, D. Gray, and J. Horgan, "Comparison of factors influencing bytecode usage in the Java Virtual Machine," in Second International Conference and Exhibition on the Practical Application of Java, Manchester, UK, pp. 315-327, April 12-14 2000.
[15]J. Horgan, J. Power, and J. Waldron, "Measurement and analysis of runtime profiling data for Java programs," in IEEE International Workshop on Source Code Analysis and Manipulation, pp. 124-132, 2001.
[16]Raja Vallee-Rai, Phong Co, Etienne Gagnon, Laurie Hendren, Patrick Lam, and Vijay Sundaresan, "Soot-a Java bytecode optimization framework," in Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research, Mississauga, Ontario, Canada, p. 13, 1999.
[17]D. S. Hardin, "Crafting a Java virtual machine in silicon," IEEE Instrumentation & Measurement Magazine, vol. 4, no. 1, pp. 54-56, 2001.
[18]M. Schoeberl, "A Java processor architecture for embedded real-time systems," Journal of Systems Architecture, vol. 54, no. 1-2, pp. 265-286, January 2008.
[19]M. Schoeberl, "JOP: A Java optimized processor," Lecture Notes in Computer Science, vol. 2889, 2003.
[20]H. McGhan, M. O'Connor, and P. Alto, "PicoJava: A direct execution engine for Java bytecode," in Computer, pp. 22-30, Oct. 1998.
[21]A. Krall, "Efficient JavaVM just-in-time compilation," in Parallel Architectures and Compilation Techniques, Paris, France, pp. 205-212, Oct. 12-18 1998.
[22]T. Suganuma, T. Yasue, M. Kawahito, H. Komatsu, and T. Nakatani, "A dynamic optimization framework for a Java just-in-time compiler," in OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, Tampa Bay, FL, USA, pp. 180-195, Nov 1 2001.
[23]T. A. Proebsting, G. Townsend, and P. Bridges, "Toba: Java for applications: A way ahead of time (WAT) compiler," in Proceedings of the 3rd Conference on Object-Oriented Technologies and Systems, University of Arizona, pp. 41-53, 1997.
[24]J. M. O'Connor and M. Tremblay, "picoJava-I: The Java virtual machine in hardware," IEEE Micro, vol. 17, no. 2, pp. 45-53, March-April 1997.
[25]J. R. Bell, "Threaded code," Proceedings of Communications of the ACM, vol. 16, no. 6, pp. 370-372, 1973.
QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top