趙光
【摘 要】隨著綜合模塊化航空電子系統(IMA)的廣泛應用,對IMA的開發和概念解讀也隨之變得重要。目前,在實現了第一代IMA平臺的基礎上,下一代IMA平臺的架構已提上日程。本文分析了利用虛擬化技術將多核處理器應用于航空電子系統的設計,利用虛擬機系統來實現硬件資源的共享管理和軟件子系統的劃分,并符合 ARINC653規范的要求——模塊化、可靠性、隔離性與開放性。構建由多核心硬件平臺、虛擬機監視器(VMM,Virtual Machine Monitor)和分區操作系統、航電應用軟件所組成的軟件架構,可以滿足綜合模塊化航電系統(IMA,Integrated Modular Avionics)的功能要求與接口要求。其中,為實現符合 ARINC653要求的VMM,傳統分區操作系統需要進行多項關鍵性調整,包括處理器特權級和特權指令、中斷、內存地址空間 分配、設備驅動等方面,從而可以構造基于VMM的綜合化航空電子系統。
【關鍵詞】綜合模塊化航空電子系統;虛擬化;多核處理器
航空電子系統是飛機的重要組成部分,其系統結構不斷演變,經歷了分立式、聯合式、綜合化到高度綜合化的發展過程。綜合模塊化航空電子系統(IMA)則是目前需求發展的最新成果,IMA具有模塊化、系統容錯、魯棒分離和動態重構、支持多傳感器綜合和信息融合等突出的技術特征;提高了系統的可靠性、集成性、維修性、任務能力等;從而大幅度提高了飛機的整體性能,減少了機載設備的重量、體積,降低了成本。
國外根據新一代航電的技術特點,提出了高安全、高可靠的實時操作系統的概念,并給出相應的標準,如美國航電委員會編制的ARINC653以及北約組織的聯合標準航空電子系統結構委員會ASAAC制定的軟件標準DO-178B等。為解決實時系統中共享計算資源的各任務模塊之間保護的問題,前者對航電系統提出了新要求,引入了分區(partition)的概念;后者則主要對系統的安全等級評價建立了一系列評估和測試的標準,航電系統軟件必須通過上述規范的測試,才能被進一步實用化。目前國外已開發出符合上述標準的成熟系統,并應用在新一代飛機的航電系統中。但是,當前的綜合模塊化航空電子系統的運行平臺均構建在單核處理器之上。
多核處理器在日常生活中已經得到了廣泛的使用,但在航空航天、火車、汽車等安全關鍵領域中單核處理器仍占據主流位置。阻止多核處理器在安全關鍵領域里運用的主要障礙是系統容錯性無法得到保障。將多核處理器引入到機載實時系統的設計中來,可以進一步提高航電系統的集成度,壓縮航電系統的體積和重量。
1 現有航空電子系統軟件接口標準
制定和實施合適的航空電子系統軟件接口標準,可提高航空電子應用軟件的可移植性,有效縮短開發周期,并降低成本。航空電子應用軟件與機載實時操作系統接口的標準化、規范化,使得基礎軟件(操作系統)與應用軟件相對隔離,有利于實現軟件的模塊化設計,提高系統的可靠性。我國有關部門和單位參照美國航電委員會編制的ARINC653制定了《航空電子應用軟件接口要求》,該標準主要描述了綜合模塊化航空電子系統(IMA,Integrated Modular Avionics)中應用軟件和操作系統之間的接口要求,主要包括功能要求和接口服務定義。下面對該標準進行簡要介紹。
1.1 標準在功能上的要求
標準首先對航電系統軟硬件結構進行描述,提出分區管理的概念,各個分區間利用存儲管理實現空間上的隔離,利用時間窗口輪轉實現時間上的隔離,空間隔離用來保證一個分區中應用程序的執行不會干擾到另一個分區中其它應用程序的內存或數據;時間隔離用來保證一個分區中的應用程序的行為不會影響到另一個分區中應用程序的時間特性。除分區隔離機制外,標準還對航電系統的進程、通信和健康監控(health monitor)機制進行了規范。
1.2 標準定義的接口服務類型
標準中定義了如下幾類接口服務:分區管理,進程管理,時間管理,存儲器管理,分區內通信,分區間通信和健康監控等。
綜合模塊化航空電子系統的可靠性、集成性等特點主要體現在接口服務的定義方面。ARINC-653規范定義的軟件接口為軟件模塊化打下了基礎,而模塊化的設計概念又保證了整個系統的容錯性。舉例來說,某一特定分區的故障無法導致駐留在同一運行平臺的其它分區產生任何故障。系統容錯性是通過運行平臺(硬件和操作系統)來保障的,這不僅是綜合模塊化航空電子系統的基礎,還減輕了系統開發過程中校驗、驗證和認證的難度。
2 高性能的多核處理器
多核處理器是在一個處理器芯片上集成2至8個計算內核,每個內核一般都包括共享或獨有一級或二級專用指令和數據緩存,以及連接主內存的通用總線。由于這種處理器結構可以實現多核間的資源共享,所以它具有很高的集成度和卓越的性能。使用多核處理器后,可提升運算能力,并可有效減輕飛機重量。同時,這種更加靈活、輕便的多核處理器結構也為更為負責的飛行控制系統的嵌入提供了便利。隨著多核處理器的廣泛應用,單核處理模塊的使用量逐漸減少,所以單核處理器在IMA結構中的使用成本日益增加。因此,多核處理器將逐步替代單核處理器,并且在未來IMA系統中的應用也是不可避免的。
多核處理器包括一系列具有專用存儲器(高速緩存)的處理單元(或稱內核),通過互聯單元,這些內核可以與片上存儲器資源(如L2或L3高速緩存)、外部存儲控制器(如動態隨機存取控制器,DRAM)和輸入輸出控制器互聯和共享它們的資源。
多核結構設計傾向于內核之間的直接通信。多核芯片包括多個內核,這些內核具有分布式存儲器以及一個基于片上網絡(NoC)技術的復雜通信網絡。內核之間的通信通過軟件來管理,具有較好的可預測性。但是,由于間接訪問緩存的主存儲會造成失誤,網絡上的沖突仍有可能發生,所以多核平臺在資源共享的管理上很難保證時間的可預測性。
由于單核處理器平臺上的操作系統本身已經可以保證整個系統容錯性,所以虛擬化技術一直未在關鍵領域里得到足夠的重視。現有支持ARINC 653的航電系統軟件均是在單核處理器平臺上開發的,從開發成本以及安全性角度方面考慮,將現存ARINC 653系統移植到多核處理器運行平臺上是較優的方案,而虛擬化技術可以為只能在單核處理器平臺上運行的ARINC 653系統在多核平臺上提供一個虛擬的單核處理器運行環境,同時保證每個ARINC 653的系統調度以及資源分配是獨立的,以此滿足系統的硬實時需求。
3 虛擬化在航電系統中的應用
早在20世紀60年代,IBM公司就提出了虛擬化(virtualization)的概念。虛擬化的基本思想就是在對底層硬件資源進行管理的同時,為用戶提供多個獨立的分區映像,每個映像中都包含了完整的虛擬硬件執行環境,包括處理器、存儲器、外圍設備等,用戶可以在其所屬分區內運行各自的操作系統。多個分區共享主機系統的硬件資源,并由虛擬機監視器(VMM,Virtual Machine Monitor)實現對硬件資源的分配和管理[1]。現有支持 ARINC653標準的航電系統軟件,大都是基于操作系統的應用級分區[2]。利用虛擬化技術將多核處理器應用于航空電子系統,可以構建出具有分區管理、進程管理等功能,符合航空電子應用軟件接口(APEX,Application Executive)要求,并具備綜合化、模塊化與開放性特征的航空電子系統軟件。
在不修改現有成熟的航電應用的前提下,將其移植到虛擬環境下運行,是虛擬機系統要解決的一個重要問題。采用泛虛擬化技術的虛擬機平臺,支持應用程序不經修改即在虛擬機平臺運行,可以避免大量現有應用的重新開發工作。
為適應泛虛擬化的執行環境,操作系統在被移植時,需要在以下幾個方面進行調整:特權指令的執行,內存的管理,設備的訪問。
3.1 處理器特權級分配出于隔離和保護的目的,現代處理器都會提供多個特權等級,如 PowerPC提供了2個特權等級,一般操作系統運行在最高特權級,應用程序運行在最低特權級。在虛擬機系統中,負責管理資源和提供分區映像的是VMM,需要運行在最高特權級,分區操作系統需要進行修改以適應新的特權級。
3.2 內存管理
目前航電應用中有所使用的PowerPC處理器為e600系列(G4)[3],基于傳統的PowerPC架 構,不支持軟件管理的轉換查找緩沖器(TLB, Translation Lookaside Buffer);因此當發生TLB失效時,處理器會自動對頁表進行查詢并執行替換操作,而地址空間的切換需要刷新整個TLB。為改善性能,可以將 VMM置于虛擬內存空間最頂部的一段范圍內,從而避免應用程序或分區操作系統陷入VMM時導致TLB刷新操作。
3.3 設備的訪問
I/O 設備驅動,在航電系統中,分區調度一般采用固定時間片輪轉的方式,傳統虛擬機系統的前后端驅動或專用驅動分區的方式,可能出現因驅動程序所在分區未被調度而影響其它分區的設備訪問的情況,這在硬實時應用的環境下是不允許的;此外,航電系統外設數量有限,且類型相對固定,因此可以考慮把設備驅動作為獨立的功能模塊在VMM內部實現,由其直接對設備進行I/O 操作。
綜上所述,在實現VMM的過程中不僅要借鑒現有虛擬機系統的設計思路,還要充分考慮硬件平臺的特性和航電應用的特殊需求,在此基礎上,才能設計出性能優異、且符合航電系統要求的VMM,以此實現ARINC653系統向多核處理器平臺的移植。
4 結論
向多核平臺的遷移對綜合模塊化航電系統提出了進一步綜合化和模塊化的要求,這些要求可以通過應用虛擬化技術來實現,從而集中解決分區隔離、實時調度、容錯和健康監控等關鍵問題,為新一代綜合模塊化航電系統的設計和實現打下基礎。這些技術中最為關鍵也需要首先研究的是面向航電系統的VMM實現支撐技術,從而有效地實現面向航電系統的虛擬化平臺分區機制。根據本文的分析,這些技術有很好的實現基礎和可行性,但多核平臺會在不同內核上運行的并行分區見產生額外的硬件和軟件沖突通道,這需要通過巧妙的系統軟件設計來消除。
【參考文獻】
[1]Chrisnall D.The definitive guide to the Xen hypervisor[M]. Boston:PrenticeHall,2007: 219-221.
[2]Rushby J.Partitioning in avionics architectures: Requirements, mechanisms, and assurance[R]. DOT/FAA/AR-99/ 58 & NASA/CR-1999-209347, 2000.
[3]Julien Delange and Laurent Lec. Pok, an arinc653-compliant operating system released under the bsd license. In 13th Real-Time Linux Workshop, 2011[Z].
[責任編輯:楊玉潔]