帳號:guest(216.73.216.146)          離開系統
字體大小: 字級放大   字級縮小   預設字形  

詳目顯示

以作者查詢圖書館館藏以作者查詢臺灣博碩士論文系統以作者查詢全國書目
作者(中文):魏廷安
作者(外文):Wei, Ting An
論文名稱(中文):在Andriod Dalvik 上的純函數程式碼特化技術
論文名稱(外文):Code Specialization with Pure Method in Android Dalvik
指導教授(中文):李政崑
指導教授(外文):Lee, Jenq Kuen
口試委員(中文):黃冠寰
陳鵬升
學位類別:碩士
校院名稱:國立清華大學
系所名稱:資訊工程學系
學號:102062637
出版年(民國):104
畢業學年度:104
語文別:英文
論文頁數:30
中文關鍵詞:Dalvik 虛擬機器直譯器純函數
外文關鍵詞:Dalvik virtual machineInterpreterPure method
相關次數:
  • 推薦推薦:0
  • 點閱點閱:333
  • 評分評分:*****
  • 下載下載:0
  • 收藏收藏:0
Dalvik 虛擬機器為Android 系統執行應用程式的主要部分,被執行的程式為DEX
格式檔案,DEX 格式檔案由Java 程式碼編譯而來。Dalvik 虛擬機器分析並執
行DEX 中的字及位元碼(bytecode),指令的執行是Dalvik 虛擬機器中的直譯器
(Interpreter) 的主要工作。Android 開源碼專案(Android Open Source Project) 中,
釋出了由C 撰寫成的可移植直譯器,此外更提供ARM 架構的組合語言撰寫成的
快速直譯器,在2.2 版加入了即時編譯器(Just-in-time compiler)。在程式語言中,
純函數(Pure method) 是一個重要的概念,能夠知道純函數,變可以對其函數進
行優化,使用程式碼特化(code specialization),進而達到更好的效能。在這篇論文
中,我們的首要目的即在可移植直譯器中實現純函數的偵測於晶心此本土平台上,
並利用程式碼特化來對純函數進行優化。當中我們將逐步介紹直譯器是如何執行、
純函數如何偵測,以及如何與直譯器互動。最後透過實驗呈現將Android 的可移
植編譯器及程式碼特化移植於晶心平台的效能改善。
Dalvik virtual machine is the main process to execute programs for An-
droid. A executable program is compiled into DEX format from JAVA code.
In addition, the analysis and execution of bytecode instructions in DEX le
are dominated by interpreter in Dalvik virtual machine. A portable inter-
preter written in C is provided from AOSP(Android open source project)
since Android 2.2, it was all-in-one-function C version and easy to execute in
di erent platforms. The pure method is an important concept in functional
programming. The pure method which be detected in runtime can utilize
the code specialization to optimize, and that brings better performance than
the execution of portable interpreter.
In this dissertation, we introduce the portable interpreter with pure method
and code specialization supported for Andes platform, an indigenous plat-
form. First, we introduce the knowledge about how the interpreter works,
and how the pure method be detected. Then we describe the the
ow which
add the pure method detection on interpreter. Finally, we port the pure
method detection and code specialization on Andes AG102 development
board and performed experiments to obtain the speeding up of performance.
Abstract i
Contents ii
List of Figures iv
List of Tables v
1 Introduction 1
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Overview of the Thesis . . . . . . . . . . . . . . . . . . . . . . 2
2 Background 4
2.1 Dalvik Virtual Machine . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Pure Method . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Dalvik Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 A sample code of Op-handler . . . . . . . . . . . . . . . . . . 12
3 Techniques 16
3.1 Pro ler in Interpreter . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 Detection for Pure Method . . . . . . . . . . . . . . . . . . . . 18
ii
4 Experiment 25
4.1 Experimental Benchmark . . . . . . . . . . . . . . . . . . . . . 25
4.2 Experimental Result . . . . . . . . . . . . . . . . . . . . . . . 26
5 Conclusion 28
[1] Android Open Source Project, \Aosp - dalvik technical information."
[Online]. Available: http://source.android.com/tech/dalvik/index.html
[2] Android Open Source Project., \Dalvik executable format: .dex
le." [Online]. Available: http://source.android.com/tech/dalvik/dex-
format.html
[3] Android Open Source Project.., \Bytecode for the dalvik vm." [Online].
Available: http://source.android.com/tech/dalvik/dalvik-bytecode.html
[4] A. Alexander, Scala Cookbook: Recipes for Object-Oriented and Func-
tional Programming. O'Reilly Media, 2013.
[5] C. V. Haiying Xu, Christopher J. F. Pickett, \Dynamic purity anal-
ysis for java programs," in Proceedings of the 7th ACM SIGPLAN-
SIGSOFT workshop on Program analysis for software tools and engi-
neering. PASTE, 2007, pp. 75{82.
[6] Andes Technology Corporation, \Andeshape: Adp-ag102." [Online].
Available: http://www.andestech.com/en/products/AndeShape.htm
29
REFERENCES 30
[7] AMD, \Amdsdkapp benchmark." [Online]. Avail-
able: http://developer.amd.com/tools-and-sdks/opencl-zone/amd-
accelerated-parallel-processing-app-sdk/
[8] K. Skadron, \Rodinia benchmark." [Online]. Available:
https://www.cs.virginia.edu/ skadron/wiki/rodinia/index.php/Rodinia:Accelerating-
Compute-Intensive-Applications-with-Accelerators
(此全文未開放授權)
電子全文
摘要
 
 
 
 
第一頁 上一頁 下一頁 最後一頁 top
* *