从现今的消费性嵌入式应用产品发展趋势看来,以硬体方案加速执行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软体方案将会是消费性嵌入式产品中的耀眼新星。