跳到主要內容

臺灣博碩士論文加值系統

(35.153.100.128) 您好!臺灣時間:2022/01/19 02:47
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果 :::

詳目顯示

: 
twitterline
研究生:吳志宏
研究生(外文):Chih-Hung Wu
論文名稱:在超純量Java處理機上之堆疊運算間的多折疊群平行辨識
論文名稱(外文):PARALLEL IDENTIFICATION OF MULTIPLE FOLDING GROUPS AMONG STACK OPERATIONS ON SUPESCALAR JAVA PROCESSORS
指導教授:單智君
指導教授(外文):Jean Jyh-Jiun Shann
學位類別:碩士
校院名稱:國立交通大學
系所名稱:資訊工程系
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2002
畢業學年度:90
語文別:英文
論文頁數:57
中文關鍵詞:Java 虛擬機器Bytecode 折疊群資料前送標籤分派堆疊資料間相依性關係平行檢查
外文關鍵詞:Java Virtual MachineBytecode folding groupsdata forwardingtag assignmentparallel stack data dependency checking
相關次數:
  • 被引用被引用:0
  • 點閱點閱:196
  • 評分評分:
  • 下載下載:14
  • 收藏至我的研究室書目清單書目收藏:1
由於 Java 虛擬機器是採堆疊的架構且絕大多數的 Java Bytecode 皆需藉由堆疊架構頂端來依序執行,因此 Bytecode間能平行執行的機會變得很稀少。在本篇論文中,我們針對高速處理的超純量Java處理器,提出能平行辨識出多個堆疊運算間可亂序執行的折疊群機制,配合資料前送(data forwarding)以有效率地將指令間的平行度開發出來。我們直覺地將會存放在運算元堆疊(operand stack)中的資料區分為三大部分,做為運算元抓取時的優先順序,提出堆疊資料間相依性關係平行檢查的設計,並配合標籤分派(tag assignment)的程序將 bytecodes 折疊起來加以儲存及執行。平行辨識能加速檢查的動作、產生多個折疊群能增加亂序執行的機會,進而使得一個超純量 Java 處理器可以比傳統堆疊架構的 Java 處理器在一個時脈週期內執行較多的指令。模擬測試的結果顯示,我們設計與建議的超純量處理器架構之執行效能可以比Sun PicoJavaII 好上3 至 3.2倍。

Because Java Virtual Machine (JVM) is a stack-based architecture and most Java bytecodes need to be executed sequentially by the top of the operand stack, the possibility of the parallel execution among bytecodes is very little in the Java processor with traditional stack architecture. In this thesis, we propose the identification of multiple folding groups among stack operations for out-of-order execution on Superscalar Java Processors, and that works together with the data forwarding process to exploit the ILP efficiently. The operand stack is partitioned into three parts intuitively for the priority of the operand fetch, and the design of parallel dependency checking among stack operations is proposed. Moreover, the bytecodes are folded by the tag assignment process for store and execution after stack data dependency checking. Parallel identification can speed up the checking operation and the identification of multiple folding groups can increase the out-of-execution possibility, and, thus, the superscalar Java processor can execute more bytecodes in parallel in a clock cycle than stack-based Java processors. Simulation results show that the superscalar Java processor could achieve the performance speedup of average 3~3.2 versus the PicoJavaII Java processor.

摘要 i
ABSTRACT ii
誌謝 iv
CONTENT v
List of Figures vii
CHAPTER 1 INTRODUCTION 1
1.1 Java Technology 1
1.2 Execution of Java Bytecode 1
1.3 Motivations 3
1.4 Objective and Proposed Mechanisms 5
1.5 Organization of This Thesis 6
CHAPTER 2 BACKGROUND AND RELATED WORK 7
2.1 Features of JVM Stack Architecture 7
2.1.1 Data Dependency of Stack Operations
in Java Bytecodes 8
2.1.2 Validity of a Stack Element 8
2.2 Instruction Folding Technology 9
2.3 Related Work: ILP Exploration of
Java Stack Operation 11
2.3.1 Random access of stack elements 11
2.3.2 Out-of-Order Execution 12
CHAPTER 3 DESIGN OF PARALLEL IDENTIFICATION OF
MULTIPLE FOLDING GROUPS 16
3.1 Basic Ideas 16
3.1.1 Term Definitions 16
3.1.2 Relationship between Instruction Folding and Stack
Data Dependency Checking 17
3.1.3 Procedure of Parallel Folding 18
3.1.4 Priority of Operand Fetch 19
3.1.5 Bytecode Order Representation 20
3.2 Architecture Overview 21
3.3 Pipeline Stages 22
3.4 Procedure of Multiple Folding Group Identification 23
3.4.1 Relationship between the Bytecodes and the Virtual
Stack 24
3.4.2 Parallel Stack Data Dependency Checking 25
3.4.3 Bytecode Folding Procedure 28
3.5 Java Featured Architecture Design 30
3.5.1 Current Bytecode Buffer 31
3.5.2 Remain Bytecode Buffer 32
3.5.3 Reorder Buffer 32
3.6 Instruction Retirement 34
CHAPTER 4 SIMULATION ENVIRONMENT AND SIMULATION
RESULTS 36
4.1 Simulation Environment 36
4.2 Benchmarks 37
4.3 Simulation Results 39
4.3.1 Infinite Hardware Configurations 39
4.3.2 Decoder Capability 42
4.3.3 Reorder Buffer Size 43
4.3.4 Remain Bytecode Buffer Size 45
4.3.5 Summary 47
CHAPTER 5 CONCLUSIONS AND FUTURE WORK 49
REFERENCE 51
APPENDIX: SPECjvm98 benchmark suites 53

[1] J. GoSLing, B. Joy, and G. Steele, The Java Language Specification, Addison-Wesley, 1996.
[2] T. Lindholm and F. Yellin, The Java Virtual Machine Specification, Addison Wesley, 1997.
[3] Bill Venners, Inside the Java 2 Virtual Machine, McGraw-Hill, 1998.
[4] Harlan McGhan and Mike O’Connor, Sun Microsystems, “PicoJava: A Direct Execution Engine For Java Bytecode” October, 1998, IEEE Computer.
[5] Sun Microelectronics, “PicoJavaI Microprocessor Core Architecture” designed for the Embedded Market, White Paper, October, 1996.
[6] W.H. Chiao, “ILP Exploration of Java Stack Operations”, Master Thesis, Department of Computer Science and Information Engineering, National Chiao-Tung University, Taiwan, R.O.C., June 2001.
[7] Mike Johnson, Superscalar Microprocessor Design, 1991.
[8] John L Hennessy and David A Patterson, Computer Architecture A Quantitative Approach, second edition, Morgan Kaufmann, 1996.
[9] Kim, A. Chang, M., “Advanced POC model-based Java instruction folding mechanism” Proceedings of the 26th USA - Euromicro Conference, 2000.
[10] Han-Min Tseng, et. al., “Performance Enhancement by Folding Strategies of a Java Processor” Proceedings of the International Conference on Computer System Technology for Industrial Applications — Internet and Multimedia, April 1997.
[11] Lee-Ren Ton, Lung-Chung Chang; Min-Fu Kao, Han-Min Tseng, Shi-Sheng Shang, Ruey-Liang Ma, Dze-Chaung Wang, and Chung-Ping Chung, “Instruction Folding in Java Processor” Parallel and Distributed Systems Proceeding, 1997 IEEE.
[12] L.-C Chang, L.-R Ton, M.-F Kao, and C.-P Chung, “Stack Operations Folding in Java Processors” Computers and Digital Techniques, IEE Proceedings- , Volume: 145 Issue: 5, Sept. 1998.
[13] Spec JVM 98 Benchmarks, http://www.spec.org/osg/jvm98 , 1998.

QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top