Ongoing work at INRIA Rennes concerns embedded system software, and addresses the problems presented in providing an easy and safe framework for estimating software‘s resource consumption, which is a difficult task when done manually by a benchmarking approach. Further, by enabling dynamic download of Java applications, a discontinuity in the embedded application development life cycle is introduced. This is a new and significant contribution towards opening up the use of embedded systems. 正在法国INRIA雷恩研究所(Institut national de recherche en informatique et en automatique)开展的工作涉及到嵌入式系统软件,并着手解决在为评估软件资源耗用量提供一个简易并且安全的架构时所出现的问题。该评估工作如果通过基准方法靠人工完成,将是一件困难的任务。此外,通过实现Java应用程序的动态下载,本文介绍了一种在嵌入式应用程序开发周期中的非连续方法。对于嵌入式系统的应用而而言,这是一个崭新、具有深远意义的贡献。 传统上说,嵌入式软件的开发必须考虑源自于软件本身或者嵌入式体系结果的一些约束条件。航空电子或机器人嵌入式软件包含有需要由后台操作系统支持的固有的、实时约束条件。至于嵌入式体系,资源受限和由客户自主定义的资源问题(如:带有多个时钟的共享内存式多处理器、只有若干个内存模型的小容量问题、有限的蓄电池容量)使得搭建一个嵌入式操作系统更加复杂。 为了使嵌入式系统开发变得更加容易,我们要解决两个不同的、并未出现在现行嵌入式系统中的挑战。我们首先关注的是嵌入式软件(CPU、能量或内存)的资源耗用量评估。我们的第二个挑战是要在小型嵌入式设备(如移动电话和个人数字助理(PDA)上实现Java的应用。这将支持应用程序的动态下载,并且会极大地改变嵌入式应用程序开发生命周期。 预测嵌入式软件的资源耗用量:静态最差情况执行时间分析 为了检验系统是否能够实现它的实时和资源约束,预测嵌入式软件需求的资源量是最重要的。在硬实时嵌入式系统架构中,尤其重要的是去预测任务的最差情况执行时间(WCET,下略),以便证明任务能够在限时内完成。 我们正在开展的研究涉及到自动获得某一特定硬件上应用程序执行时间的上界。应用程序源代码的静态分析被应用于验证静态最差情况执行的情景;静态分析方法已经成为执行检测的首选,这是因为这些方法的后者需要对某一软件上的所有可能输入进行探测,进而检测它的最长执行路径。处理器的硬件模型被应用去获得WCET控制序列。对硬件模型的应用(而不是对实际硬件的应用)使得静态WCET分析方法在早期就被应用于应用程序开发生命周期中。另处,为了实现对截止期的核查,静态WCET分析方法可以帮助选择或者计算应用于实时嵌入式系统的硬件,并且可以服务于不同应用程序的执行策略对比中。我们在静态WCET分析方法研究上的一个成果是开放源码分析器Heptane(请看图一),其目的在于在按次序排列执行的、带有高速缓冲存储器和管道执行的处理器上获得WCET。Heptane的模块性允许其接入到不同的目标处理器和程序设计语言中。 [ALIGN=CENTER]
图一:Heptane静态WCET分析工具[/ALIGN] 我们认为,对嵌入式软件的资源耗用量的早期的一个评估使得嵌入式系统约束(有限的时间,内存和能量)的匹配性得以在应用程序开发生命周期中验证。往后,我们正在展开的对静态时间评估的工作将会延伸到其他嵌入式系统中不足的资源上,如能源耗用量。对于硬实时嵌入式系统来说,这是一个具有挑战性的斩新难题。 将Java引入到小型内嵌内设备中 Java有着自身一些重要优势,可以为用户扩展无线个人数字助理(WPDA,下略)的应用。第一,Java是便携式的,因此它是独立于硬件平台的。在普遍深入的嵌入式市场中,这对于降低应用程序开发成本十分很重要。由于Java可以在任何地方运行,所以应用程序开发可以在一台桌上型电脑中完成,而不需要目标硬件平台的支持。这是嵌入式体系应用程序开发生命周期上的一个强间断。第二,Java支持动态应用程序下载并且可以很好地支持WPDA的应用扩展(请看图二)。 [ALIGN=CENTER]
图二:将Java引入到小型内嵌内设备中[/ALIGN] 基于这些理由,Java为这些嵌入式环境带来许多好处。然而,即使Java展示出许多潜在优势,但是它的一个主要缺点是它对为运行程序的资源有苛刻的需求。这些资源包括记忆容量、执行时间和能量耗用量,其都是为嵌入式系统折衷设想检测的一些典型资源。因此,很明显地,Java的成功是以能够有效利用资源的Java执行环境的可用性为条件的。 在过去的四年里,我们开展的研究是与Texas Instruments共同完成的,目的在于为允许在执行时间、能量和内存耗用量之间获得一个折衷的WPDA体系提供一个Java执行环境。在研究过程中,我们首先测定对能量耗用量影响极深的Java操作码。然后,我们设计一个新方法去构建一个基于模块分解的Java执行环境。通过应用模块性,我们便可以为一个特定的处理器特殊化Java虚拟机(JVM,下略)上的一些部分(例如去开发数字信号处理(DSP)器的低功耗特性,使能量消耗最小化)。最后,我们从最开始执行我们的JVM,并且使其生效在一个基于Omap Texas Instruments平台(一种共享内存异类多处理器)的WPDA体系上。我们现行的工作集中于研究怎样在有力的硬件和软件协作上提供一个高性能的Java嵌入式平台。 如今,嵌入式系统对外部世界都很封闭,并且它的开发也是困难重重。许多系统都使用汇编语言或者C语言。由于我们对Java的研究,特别是对Java自身性能的研究,对于构建嵌入式系统的设计人员来说,Java会是一个很有价值的工具。对于用户来说,这使得嵌入式系统更公开化。这些特性也使得配置和设计得到广泛应用的应用程序变得更加容易。对于设计者来说,Java实现了一种强大的打字型目标语言的应用,而不是基本语言(如C语言或汇编语言)的应用。