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語言或匯編語言)的應用。