论文部分内容阅读
近年来嵌入式系统发展极其迅速,正逐步渗透于人类生活的各个方面,这对嵌入式系统的性能及开发效率也提出了更高的要求。和桌面系统的软件开发相比,嵌入式软件开发普遍还使用比较传统的C/C++甚至汇编语言进行,难以适应嵌入式系统的迅猛发展,因此需要新的开发方法和开发手段来解决。Java语言的面向对象、跨平台、语言级并发支持、安全等特性不仅使它在互联网领域得到广泛应用,也引起了嵌入式领域研究人员的高度重视,他们希望能将Java语言改造成嵌入式及实时系统开发的主流语言来提高开发效率及增加系统安全性。由于嵌入式系统多数为实时系统,传统Java技术应用于嵌入式系统的主要不足之处表现为:由于Java虚拟机是在运行中对引用到的类进行动态装载、解析和连接,影响了系统的实时性;垃圾收集器(GC)的自动运行导致了任务执行时间的不可预测性。针对传统Java技术在实时方面的不足,Sun公司联合IBM、Microware等公司制定了实时Java规范(RTSJ),为实时Java平台的实现提供了参考。随着实时Java规范的推出,如何实现适用于嵌入式系统的高效实时Java平台就成为了研究热点。目前,常见的实时Java平台实现方式有解释方式(在实时操作系统RTOS之上用软件方式来解释执行Java字节码);提前编译(字节码被提前编译生成机器码或中间代码,如C);硬件加速(用硬件方式执行一部分常用字节码来提高整体性能);硬件翻译(用硬件单元把字节码实时翻译成机器码)以及Java处理器方式(字节码直接作为机器代码在处理器硬件上执行)。同其它实现方式相比,Java处理器免除了把Java字节码转换为机器代码的工作同时还可以针对Java虚拟机特点提供特殊的硬件支持。因此具有能够直接硬件执行Java字节码、执行效率高、内存占用少、功耗低等特点,所以更适合用于资源受限的嵌入式设备。目前国外已有一些针对嵌入式实时Java处理器的研究,如JOP、aJ-80、aJ-100及FemtoJava等。国内研究机构也有过一些针对Java处理器及Java芯片的研究,如JE-Java、JC104,但其重点是提高系统整体性能而不是实时性,一个原因也是因为当时实时Java规范尚未推出。根据对国家自然科学基金项目—高可靠实时系统的计算平台(SoPC)研究(基金号:60703106)[1]的研究,本文设计了一种能在低成本FPGA芯片中实现的实时嵌入式Java处理器PRTEJ(Pipelined Real-Time Embedded Java Processor),目标是实现具有实时特性的嵌入式Java处理器并对实时Java规范提供有效支持。该处理器实现基于FPGA的可六级流水的嵌入式硬件Java处理器,并定义了特殊的流水线流程、指令集、内存管理机制。并通过对实时Java规范的分析,在内存管理、CConvertor、API系统中,我们建立从硬件机制到软件机制对RTSJ的支持。