從現今的消費性嵌入式應用產品發展趨勢看來,以硬體方案加速執行Java已無法跟上時代腳步。為通訊、數位消費性電子與商業應用市場提供核心IP授權,並在數位家電市場上擁有不錯佔有率的荷商美普思科技(MIPS Technologies;MIPS),看準Java技術的潛在優勢,與Java嵌入式裝置的解決方案供應商Esmertec合作推出可在MIPS核心上加速執行Java程式的軟體產品Jbed CDC(Connected Device Configuration)。MIPS大中華地區技術總監王聰賢表示:「有了軟體加速(software acceleration)的助跑,MIPS往後在需要支援Java語言的數位消費電子產品市場上,將以更快速的步伐向前邁進。」
《圖一 MIPS Technologies大中華地區技術總監王聰賢》 |
|
JAVA程式語言是昇陽(Sun Microsystems)於1995年為網際網路所專門開發設計,是一種物件導向的程式語言,以跨平台技術為最大特色。傳統的程式語言如C、C++所開發出來的程式只能在指定的機器上執行,其缺點就好像某廠牌的汽車只能用該廠牌的汽油一樣不方便,而JAVA程式只要透過Java虛擬機器(Java Virtual Machine;JVM),就可以跨平台執行。在嵌入式應用範圍中,從機上盒、互動電視、行動裝置到車用電子裝置等產品上皆可看見JAVA程式的存在。
傳統的JVM在執行JAVA程式時係將JAVA Byte code先翻譯成所在平台的機器指令然後隨即執行該翻譯出的指令,即使執行到以前執行過的Byte code,仍要重新翻譯成機器指令才能執行,這種逐步翻譯逐步執行(interpretation)的方式不是很有效率。有鑑於此,Esmertec的JAVA軟體研發人員開發出以軟體執行「動態編譯」(Dynamic Compilation;DC)的JAVA執行加速軟體,在執行中歸納找出常用的hot spot,將這些hot spot轉換成native code(應用程式中的基本指令)並加以優化,避免重複翻譯,因此可簡化執行程序,加快執行速度。這樣的編譯過程具備自行判斷的能力,所以稱為「動態編譯」。
「動態編譯」相對於硬體加速的優勢有二:第一是硬體加速必須將這項功能固定在硬體(hardwire)上,硬體無法改變,缺乏彈性,而過多的線路也會增加晶片面積,這對需求輕巧的數位相機、手機等產品非常不利。第二是硬體加速不合成本效益。過去SoC設計業者增加硬體設計,或可節省一些記憶體(100KB),但目前的記憶體容量100KB已不是問題,增加硬體設計反而不符合成本效益的要求。
MIPS的Java解決方案提供系統更好的運作效率,搭配FastDAC(Dynamic Adaptive Complier;動態適應編譯器),以MIPS 24Kc核心為例,該核心執行Java的速度每MHz達到7.5 Embedded CaffeineMarks,在550MHz時可達4125 Embedded CaffeineMarks。「軟體加速讓Java擁有比過去更快的執行速度,這也讓MIPS在未來的數位消費市場更能昂首闊步。」王聰賢強調。而MIPS此舉似乎也預告,在即將來臨的數位世紀,Java軟體方案將會是消費性嵌入式產品中的耀眼新星。