Embedded 版 (精华区)
发信人: Thinkpad (船长), 信区: Embedded_system
标 题: Java在嵌入式系统中的应用与实现
发信站: 哈工大紫丁香 (Sun Oct 21 09:57:16 2001) , 转信
Java在嵌入式系统中的应用与实现 TheApplicationandImplementationofJa
vainEmbeddedSystems
李宗伯 胡守仁
LiZongboandHuShouren(国防科技大学计算机学院)
摘 要:随着Java的广泛应用及后PC时代的来临,在嵌入式系统中应用Java具有很大的实用
价值。本文先归纳了Java的主要特征,介绍了嵌入式产品的特点,分析了在嵌入式系统中应
用Java存在的问题,并在对嵌入式系统中实现Java虚拟机的不同实现方法进行评估的基础上
,介绍了我们设计的嵌入式Java芯片内核JC401的设计思想与主要技术特点。
关键词:Jave;Java虚拟机;嵌入式系统;Java芯片
中图分类号:TP312Java 文献标识码:A
1 引言
Java语言自推出以来,其平台无关性和安全性使它得到了广泛的应用。它是一种新的面向
对象编程语言,支持面向对象、多线程、垃圾回收,是一种容易学习、编程效率高、程序可
靠性好的语言,深受广大程序员的青睐。随着Java技术的进一步完善与普及,其应用领域将
不断扩大,应用层次将不断深入。
Java语言的易学易用和较高的编程效率对提高嵌入式产品的开发效率很有帮助,Java的平台
无关性也使它具备了作为平台无关的标准开发环境的重要条件,因此,在嵌入式领域引入Ja
va技术具有很大的实用价值。但是,Java要真正成为嵌入式领域的最佳选择,还有许多障碍
需要清除,如何有效地清除这些障碍已成为当前嵌入式Java研究的一个重点。有理由相信,
随着Java的进一步完善与成熟,Java一定能在嵌入领域得到广泛的应用。
2 Java的特点
Java语言以C/C++为蓝本,吸取了Smalltalk等其它语言的优点,去掉了容易产生错误的部
分语言特征,使它成为一种有史以来发展最快的编程语言。从语言本身来讲,Java具有以下
特点:
(1)面向对象:方便应用建模、程序设计及软件重用;
(2)多线程:直接支持多线程语义,方便多线程编程;
(3)垃圾回收:由系统进行垃圾回收,提高了可靠性,减轻了程序员负担;
(4)可靠性好:去掉直接内存访问,而代之以对象引用,使程序更可靠。
Java不仅仅是一种受人喜欢的编程语言,而且具有适合多平台使用的运行模式。Java程序
的运行是在Java虚拟机上进行的,在这种应用模式下,Java具有以下特点:
(1)平台无关:只要在目标机器上实现了符合规范的JVM及其运行环境,就可以运行所有的
Java程序,从而达到了“一次编写,随处运行”的目的;
(2)安全性更高:Java程序在运行前可以进行安全检查,并采用隔离的方法来限制非法入侵
的范围,为日益普及的网络应用提供了良好的基础;
(3)动态下载软件:可根据程序需要动态下载软件,使得大范围的软件配置、维护和更新变
得十分简单,并将对产品销售、维护模式产生较大的影响。
近来,Sun公司推出了性能更好、可靠性更高、运行更稳定的Java2平台,标志着Java技术
进入了一个新的发展时期。Sun还针对嵌入市场推出了Java 2 MicroEdition(J2ME),采用了
更加灵活高效的解决办法,为Java在嵌入式领域的应用提供了良好的条件。
3 Java在嵌入式系统中的应用
嵌入式系统涉及的范围很广,如移动电话、PDA、通讯设备、网络终端、工控设备、家
用电器等,嵌入式产品一般针对特定的应用,满足人们的某种需要。它具有以下主要特征[1
]:
(1)性能价格好:这是扩大产品市场规模,提高市场竞争力的基础;
(2)资源优化:这是降低系统价格、减少功耗的前提;
(3)低功耗:延长电池使用时间,方便用户使用。
近年来,随着后PC时代轮廓的逐步显现,提高产品的智能化、网络化水平成了必然的发
展趋势。
Java因其具有的诸多优点受到了嵌入式领域的青睐,并得到了大量的研究与开发应用。
但是,由于Java本身的一些特点,要使Java能在嵌入式系统中得到大量的应用,还需要解决以
下两个问题:
(1)运行速度慢:由于解释或即时编译等中间环节,造成程序运行时间增加;
(2)占用资源多:运行时环境和比较庞大的Java基本类库,占用了较多的存储资源。
4 嵌入式系统中Java虚拟机的实现方法
4.1 软件实现方法如果需要在现有系统中实现Java虚拟机,必定要采用软件的方法来实
现。最早出现的软件实现方法是采用解释器作为虚拟机的核心,由软件逐条解释字节码。虽
然实现简单、占用资源少,但由于解释执行速度太慢,不能提供较好的Java性能,因而无法得
到较大范围的应用。
即时编译技术JIT(Just-in-TimeCompiling,简称JIT)通过动态翻译技术,把将要调用的J
ava方法编译成本地机器代码,并保存在内存中,当该方法再次被使用时,就可以直接执行性
能更高的编译后代码。采用JIT技术可以大大提高Java执行速度,但是它将付出内存资源的
代价,一个高级的JIT运行时需要大约上兆的内存资源,这一问题无疑大大影响了它在嵌入式
系统中的应用。
4.2 现有硬件实现方法
为了给资源受限的嵌入式系统提供较高的Java性能,采用硬件支持Java程序的运行则成了
一种必然的选择,随着Java技术的普遍使用及网络化程度的进一步提高,这类硬件的市场需
求将会越来越大。目前,这个方向已经成为Java研究的一个热点,且出现了多种Java芯片或
内核,例如:
(1)picoJava内核:Sun公司研制的Java芯片内核[2~3]。它可以直接执行字节码,采用指
令折叠技术改善堆栈结构所带来的性能损失,对运行环境有一定的支持,具有较好的Java性
能和较少的内存开销。但是由于它对指令的直接支持,存在硬件较复杂、功耗较大等问题,
影响了它在嵌入式系统中的应用。
(2)tinyJ内核:Advancel公司设计的Java加强内核[4]。它是在传统的RISC结构基础上通
过添加简单的硬件来支持Java字节码的直接执行,既能改善Java性能,又能保证本地程序具
有较高的性能。但是,由于Java性能没有获得较大的改善,目前仅在只需较低Java计算能力
的JavaCard市场获得了应用。
此外,还有一些Java芯片,如PSC1000和JEM芯片,它们一般都是在现有堆栈结构芯片的基
础上,采用微码来实现Java字节码,Java性能比较低。
4.3 JC401中的实现方法
为了获得较好的Java性能,同时又能满足嵌入式系统对价格、功耗的要求,我们设计了一
种嵌入式Java芯片内核JC401。它的主要设计思想是:在具有较好性能的RISC结构基础上,对
Java虚拟机进行简单有效的支持,通过这些支持提高Java复杂指令的执行速度,有效简化JI
T的复杂度,大大降低内存开销;并利用JIT的灵活性来简化硬件系统的复杂度,有效解决已有
设计方案中存在的各种问题。它的主要技术特点是:
(1)采用了带指令压缩技术的高效RISC结构:有70条32位指令、16条16位指令;其典型的
RISC流水技术包含取指、解码、执行、访存、写回五段标量流水,全部采用硬连线逻辑,绝
大部分指令可在一拍内执行完毕。
(2)支持堆栈结构:采用可变长寄存器窗口的组织形式,不但保证了寄存器的高效访问,同
时又有效地支持了Java虚拟机中的堆栈访问和方法调用语义,使得JIT不再需要进行复杂的
寄存器分配,提高了JIT的效率。
(3)支持性能关键指令:对于方法调用与返回指令,JC401增加了由16个32位寄存器组成的
系统栈,使得JC401的方法调用与返回指令的性能得以大大提高;通过硬件支持对象引用的非
空检查,对许多需要这种检查的指令予以支持。
(4)支持指令修改:由于Java的多态性,一些指令的运行需要到实际执行时才知道细节,为
提高翻译后代码重用性能,JC401支持指令修改。
(5)支持即时编译器:由于JC401具有与Ja-va虚拟机一致的堆栈结构,并通过对部分复杂
指令的支持,能有效地简化代码翻译工作,从而去掉了传统JIT中需要采用的复杂算法(如寄
存器分配、方法内联优化等),大大减少了JIT的运行时间,也降低了内存开销。
此外,由于对部分性能关键指令的支持,使编译后代码具有较高的性能;由于JC401具有较
高的指令编码密度,可以对Java本地类库进行静态编译,所以大大减少了JIT的工作量,提高
了本地类库编译后代码的性能,编译后的代码长度也不会发生较大改变。
由于上述技术的采用,使JC401能以较少的硬件代价获得较高的性能,经初步测试表明:JC
401中JIT运行所占总运行时间的比例很小,一般可以忽略,编译后代码性能比picoJava-II内
核也有较大幅度的提高,运行Java程序所需内存也不会有大的扩展。
5 结束语Java技术在嵌入式系统中具有很高的应用价值,硬件实现嵌入式Java芯片能较
好地弥补传统芯片支持Java所存在的缺陷,具有很好的应用前景。我们设计的JC401具有简
单的结构,较低的价格和功耗,较好的Java和本地处理能力,能满足嵌入式市场的需要。
参考文献:
[1]SchlettM.Trendsin Embedded-Microprocessor Design[J].Computer,1998,31(8):44~
49
[2]O'ConnorJ,TremblayM.PicoJava-I:TheJava Virtual Ma-chinein Hardware[J].IEEE
Micro,1997,17(2):45~53
[3]PicoJava-I Microprocessor Core Architecture:Designed forthe Embedded Marke
t[R].Sun MicroelectronicsT echnical Report WPR-0014-1,1996
[4]Java-Enabled Embedded Applications-The Wave of the Fu-ture Is Here[Z].White
Paper of Advanced Logic Corpora-tion,1999 7 01
--
※ 来源:.哈工大紫丁香 http://bbs.hit.edu.cn [FROM: 202.118.239.147]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.029毫秒