Abstract
Java是一個簡易的、不佔記憶體空間、分散式、安全的、容易移植的、多重執行緒的、硬體架構中立性的( Architecture Neutral)、高效率的、 物件導向的、以及動態的程式語言,經由 Java 虛擬機器(JavaVirtual Machine)的執行, Java 程式被編譯成與任何硬體平台都無關的位元碼(bytecode),因此 Java 自然成為設計網路應用程式及鑲嵌系統(embedded system)程式的程式語言,但是經由軟體來執行Java程式,如 Java虛擬機器和即時編譯器(Just In Time Compiler),通常需要較久的執行時間和記憶體空間,為了改善這些缺失,使用 Java 處理器來執行 Java 程式似乎是較合適的方法。 在本篇論文中,我們提出一個新的 Java 處理器之硬體架構並且模擬及量測其執行效率。因為Java應用程式主要經由虛擬機器的執行,而Java虛擬機器是以堆疊為主的架構(Stack-based)並且支援多重執行緒(Multithreading)的執行,所以此一新的Java 處理器採用支援多重執行緒之硬體架構並且被設計成為用來幫助主要處理器(host CPU)加速 Java 程式執行速度之附屬處理器(co-processor)。此一Java處理器擁有四個執行單元(execution unit),我們稱之為hardware context,而每一個執行單元均是以堆壘為主的設計。在此,我們使用 trace-driven 的方式來模擬及量測此一新架構之效能,而程式追蹤碼產生器是經由修改Java Developer Kit (JDK)所得來的,此一程式追蹤碼產生器可用來產生多重執行緒的 Java 應用程式的程式追蹤碼。在本篇論文中,我們也研究執行緒的執行長度及 Java位元碼的指令折疊(instruction folding)對於此一新Java處理器之影響。Java is a smple, small, and object-oriented programminglanguage. Through its Java Virtual Machine (JVM), Java programsare platform-neutral. Thus Java is becoming a natual choice fornetwork and embedded applications. Java programs running ontop of a software-based JVM usually run slowly and reuire morestorage space. To impove the execution speed of Java programsand to minimize the storage space, hardware Java processors area very attractive altenative. In this thesis, we propose a newJava processor architecture and study its performance. SinceJVM is sack-based and multithreading, the new Javaprocessor adopts a multithreaded arcitecture and is designed asa co-processorto speed up Java exeution for the host CPU.Performance of the multthreaded Java processor is evaluatedusing trace-driven simulaton. Our trace generator was modifiedfrom the Java Developer Kit (JDK) and can trace the executon ofmultiple threads in a Java program. Effecs of thread run-length and Java bytecode folding on the multitheaded processorare studied.