標題: 微JVM直譯器上之處理常式位址表查詢及常見位元組碼串執行
Handler address table-lookup and common bytecode sequence execution in micro JVM intrepreter
作者: 林哲民
Zhe-Min Lin
單智君
Jyh-Jiun Shann
資訊科學與工程研究所
關鍵字: 爪哇;爪哇虛擬機器;直譯器;處理常式位址表;常見位元組碼串;嵌入式平台;Java;Java Virtual Machine;interpreter;handler address table;common bytecode sequence;embedded platform;KVM
公開日期: 2002
摘要: 微Java虛擬機器的執行核心通常採用直譯器。對直譯器來說,在解碼階段的比較的負擔是很大的,而在執行階段,對於堆疊執行仍然有很大的效能改進空間。因此,在低記憶體和低執行計算能力這樣的限制前提下,我們的目的是要去減低這兩項負擔。 處理常式位址表查詢是針對直譯器中解碼階段的比較負擔。用一個查表的方式來取代原本為了得到處理常式的位址而作的一連串的比較。常見位元組碼串執行是針對直譯器中執行階段的堆疊執行負擔。藉由一個糸統化自動產生的常見位元組碼串集合,把這些位元組碼串的執行併起來執行。當然,這個糸統化自動產生的流程,是經由我們撰寫的工具來完成的。 在實驗的結果中,首先我們藉由我們撰寫的工具得到一個常見位元組碼串集合。然後我們把處理常式位址表查詢及部份常見位元組碼串集合實作到KVM中,KVM是Sun發行的微Java虛擬機器。有關效能提升的部份,總KVM效能(單位時間工作量)增進50.6%,而總KVM程式碼增加10.4%。對於實驗結果的分析,首先我們可以歸結出減低直譯器解碼階段的負擔確實能大幅提高執行效能;其次,藉由一個糸統化自動產生的常見位元組碼串集合,把這些位元組串以串執行的方式來執行,也能得到一個相當不錯的效能提升。
The execution engine of micro JVM is usually interpreter. For interpreter, the comparison overhead in decoding phase is high, and there is still much improvement space for the stack-based execution in executing phase. Hence, on the constraints of low memory and low computing power, our objective is to reduce these overheads. Handler address table-lookup is aimed at comparison overhead in decoding phase. A table-lookup is used to get handler address with original Java bytecodes instead of comparison. Common bytecode sequence execution is aimed at the overhead of stack-based execution in executing phase. The execution of common bytecode sequences is combined by a systematically-generated common bytecode sequence set. Certainly, the decision flow of the systematically-generating common bytecode sequence set is decided by the tools we write. In the simulation, first we get a common bytecode sequence set by the systematical-generating tools we have written. Then we implement the handler address table-lookup and partial common bytecode sequence set into KVM, the micro Java Virtual Machine we select. Simulation result shows the total KVM performance increment (workload per unit time) is 50.6%, and the total KVM code size increment is 10.4%. To mention about the simulation analysis, first we can conclude that reducing decoding overhead of interpreter indeed enhance performance greatly. Second, with a well systematically-generated common bytecode sequence set, to combine the execution of the bytecode sequences in the set also enhance performance rather well.
URI: http://140.113.39.130/cdrfb3/record/nctu/#NT910392061
http://hdl.handle.net/11536/70133
顯示於類別:畢業論文