(中國西南電子技術研究所,成都 610036)
航空電子系統的發展經歷了分立式、聯合式、綜合化和高度綜合化階段。以F-35為代表的第四代航空電子系統,采用綜合模塊化航空電子(Integrated Modular Avionics,IMA)系統架構,并將綜合化的范圍從綜合數據處理擴展到射頻前端,實現了從天線孔徑、射頻前端信號處理和信息處理層面的傳感器高度綜合[1-2]。未來,隨著數字化不斷向射頻前端移動,將在更大范圍實現資源綜合。下一代航空電子系統需要高性能、標準化、通用化的模塊,使各種功能線程盡可能復用硬件,在同一套硬件資源上實現多傳感器信息融合[3]。
IMA架構降低了系統體積、功耗和重量,有效實現了硬件資源共享,減少了系統模塊數量,從而降低了成本、提升了模塊的標準化和通用化程度。傳統IMA架構采用單核處理器,通過航空電子應用軟件接口(APEX, Application Executive)[4],實現操作系統和應用程序隔離;此外,通過時間、空間分區確保了不同功能應用安全隔離。針對通用處理資源,目前仍采用多個處理器物理整合的方式進行資源綜合,以提升并行處理能力[5]。一方面,受制于尺寸、功耗、重量的限制,處理器數量難以繼續增加;另一方面,多核處理器系統往往只實現了單核處理,并沒有將其優勢充分發揮出來。
主流多核處理架構主要包括對稱多處理(SMP,Symmetric Multiprocessing)和非對稱多處理(AMP,Asymmetric Multiprocessing)。傳統的SMP通過共享同一操作系統和硬件資源實現并行處理,如圖1所示。此架構組成簡單,操作易于實現,但由于未實現對底層硬件資源訪問隔離,各個內核耦合度高,一旦某個進程故障會導致與其它進程關聯故障,出現處理器工作異常;傳統AMP架構如圖2所示,通常有多個操作系統在不同內核上執行。AMP架構下各內核相對獨立,但由于多個內核需共享存儲器和I/O等資源,要重點解決內核間通信和互斥問題,復雜性較高;此外,所有操作系統的協同工作,對駐留在不同操作系統的應用協同開發難度較大[6]。

圖1 傳統SMP架構示意圖

圖2 傳統AMP架構示意圖
機載多核處理平臺需重點解決軟件的確定性、安全隔離、故障定位隔離等問題[7]。2016,FAA發布指導意見書CAST-32A,提出了針對多核處理器的航空電子設備的安全性指導規范[8],CAST-32A從硬件、操作系統、平臺軟件、應用軟件和系統集成等方面提出了開發過程中需遵循的準則,從而奠定了滿足DO-178C安全標準的多核航空電子系統的基礎[9-10]。

圖3 虛擬化分區處理架構示意圖
本文研究了現有多核處理技術應用的不足,提出了一種適用于機載應用的多核虛擬化(virtualization)分區應用方法,將傳統的多核硬件平臺與虛擬化分區技術相結合,既在特定核上保留了傳統基于時間分區的應用調度,又在其他內核上擴展了分區應用,實現多個分區嚴格隔離和并行處理,可滿足多用戶協同開發的需求。該方法增強了系統集成度,降低了系統功耗,提高了航空電子系統的可靠性和安全性。
航空電子產品的研制需滿足對可靠性、安全性、測試性、維修性、保障性、環境適應性的要求[11],此外,還需考慮適航認證要求。多核處理平臺的設計應考慮一下要素:
(1)功能性能要求。系統開發者需分析產品需求,評估處理器指令執行速率、運算能力、工作頻率,滿足系統數據處理能力需求;此外,需綜合考慮硬件平臺對外通信接口的類型、工作模式及速率等指標,滿足接口控制能力需求;最后,還需從平臺駐留軟件功能的角度,綜合考慮處理器內核/線程數量,處理器資源使用率應留有余量,以便于功能擴展,處理器資源使用率一般不超過70%;
(2)虛擬化支持。虛擬化技術是多核分區處理系統中的核心技術,虛擬化技術可實現對處理器內核、內存、I/O設備等資源進行分組,得到不同資源分區,每一個資源分區相當于一個虛擬機(VM,Virtual Machine)。各虛擬機由位于硬件與操作系統之間抽象的軟件層統一管理,稱為虛擬機管理器(Hypervisor)。每一個虛擬機都支持一個客戶端操作系統(Guest OS),各分區能夠共享某些硬件資源,并提供完善的保護和隔離,保證多核處理環境下的實時性和安全性;
(3)開發工具支持。在系統集成時,存在多用戶軟件駐留在同一硬件平臺上,共享硬件資源。因此,用戶程序需實現獨立開發和測試,最終由集成商負責整合和測試驗證。系統出現故障時,應提供有效的故障維護和檢測工具,便于問題定位和故障隔離。當前,多核硬件相對成熟,但基于多核的開發工具和系統軟件比較欠缺;
(4)產品全生命周期供貨能力。航空產品具有工作環境惡劣,服役時間長(通常為幾十年)等特點,系統設計時應考慮供應商對產品全生命周期的保障能力,確保持續供貨和產品維護。
在多核硬件處理平臺上,采用虛擬化分區處理技術,實現機載平臺上若干個相互獨立的不同用戶功能模塊,為每個功能模塊單獨分配一個獨立的分區,功能模塊的應用程序在這個單獨的虛擬分區中運行?;谔摂M分區的多核并行處理架構如圖3所示。
多核虛擬分區處理架構包含4個層次,自底向上分別為硬件平臺層、核心操作系統層、分區操作系統層和應用軟件層,4個層次相互獨立。各層次功能說明如下:
(1)硬件平臺層。包括物理實體的多核處理器、存儲器以及外部接口資源,這些硬件資源構成一個典型的嵌入式系統。多核處理器包含其內部的若干個內核和實現指令執行的運算資源;存儲資源為處理器內核的運算提供指令和數據的存儲空間,外部I/O資源為多核處理器提供與外部設備進行數據交互的通道。
(2)核心操作系統層。核心操作系統包含運行在多核處理器上的核心操作系統(MOS,module OS)和上層分區操作系統(POS,partitioned OS),MOS中運行系統監管軟件,加載所有虛擬機客戶端,同時為虛擬機分配處理器、存儲器、I/O等資源。虛擬機具有系統監管功能,提供分區運行的環境,管理同一個內核上的分區調度,負責分區間通信,通過核心操作系統的管理對底層運算資源、存儲資源和接口資源等硬件進行操作和控制。
(3)分區操作系統層。分區操作系統包含運行在虛擬機上的上層POS和提供給對應用軟件層的若干個應用程序的API(Application Programming Interface)。分區操作系統管理各自對應的內部資源和分區內多任務調度,并向應用程序提供服務。
(4)應用軟件層。應用軟件層可分為系統分區(System Partition)和應用分區(Application Partition)。應用軟件層包含所有用戶功能模塊的若干個分區應用程序和接口管理程序、接口備份管理程序和健康管理程序,每個分區應用程序通過端口(Port)與接口管理程序、接口備份管理程序和健康管理應用程序進行通信。
多核處理器硬件平臺通過核心操作系統連接分區操作系統和運行在相互獨立的若干個分區之上的用戶應用程序;在多用戶共享同一硬件平臺的基礎上,核心操作系統運行虛擬機,并在虛擬機上運行分別對應用戶分區和3個系統分區操作系統POS,應用分區通過分區間端口通信的方式與I/O管理分區交互,用戶使用共享接口完成對各分區的獨立訪問。
(1)功能應用分區。功能應用分區可同時實現機載平臺上若干個相互獨立的不同用戶功能模塊,為每個功能模塊單獨分配一個獨立的分區,功能模塊的應用程序在這個單獨的虛擬分區中運行。從功能實現的角度,綜合考慮功能的性能要求、占用的硬件資源等因素,把系統功能劃分成若干個子功能,要求各子功能相對獨立,把一個或多個子功能劃分為一個分區,最終確定分區數量以及各個分區的功能。
多核虛擬分區處理系統中彼此獨立的分區數量為M個,且多核處理器的第k個內核上運行Mk個分區,每一個分區中運行一個應用程序,并且滿足:
(1)
其中,N為每個處理內核可部署的分區數量,其值取決于應用程序的復雜度和實際硬件資源;第k個內核上的每個分區上分別運行分區操作系統為POS0,POS1,……,POS (Mk-1)。
(2)系統分區。各個虛擬分區中的功能應用程序完全獨立運行,由與分區操作系統相連的虛擬機進行管理,除了實現用戶功能的分區以外,在其中一個內核的虛擬機上單獨設置2個I/O管理分區和1個健康管理(HM,Health Monitor)分區,以此來提高多核嵌入式系統的可靠性和安全性。
I/O管理分區分為接口管理分區、接口備份管理分區,其運行的分區操作系統和接口管理程序、接口備份管理程序專門用于對I/O資源進行控制管理。當其中1個I/O管理分區的管理進程出現異常時,另外1個I/O管理分區的管理進程仍然可以完成執行接口資源管理的任務。
HM分區負責監控硬件、應用程序和操作系統的故障和失效,并且隔離故障防止失效蔓延。健康管理程序在進程、分區、模塊3個層級提供警報檢測、警報記錄、警報響應的服務,進行健康監控。根據錯誤級別決定警報響應的操作:模塊級別的響應包括復位和關機;分區級別的響應包括重新啟動分區;進程級別的響應包括重新加載執行進程。
分區在多核上的部署可分為分區間并行和分區內并行[12-14]。分區間并行是一個分區在一個或多個核上激活,每個分區都在對應核上運行。同一時刻所有分區同時運行在各自對應和核上,這種方式下多個分區間是嚴格意義上的并行;分區內并行即多個分區部署在同一個處理器內核,分區內任務在時間上并發運行。這種方式下,分區的調度由MOS按照預先規劃好的調度表來進行周期性調度,當前分區被調度時,其對應的POS被激活,達到各分區時間隔離的目的。
在系統集成聯試時,通常采用以太網口進行調試,需要同時訪問同一個物理硬件網口,這種方式可通過I/O分區代理訪問實現。如圖4所示,若干個用戶的終端計算機和一臺公用多口交換機組成。每臺計算機至少包含一個通用異步串口UART,連接至多核處理器硬件平臺。每臺計算機至少包含一個以太網口,通過網線連接交換機來與共用網口連接。用戶操作系統分區需要使用共用接口與由若干個用戶的終端計算機和一臺公用多口交換機組成的外部設備交互時,用戶分區操作系統首先將數據發送至I/O管理分區操作系統,再由I/O管理分區調用設備驅動將數據轉發至外部交換設備,由交換設備分發至各用戶的終端中;同理,當外部終端訪問用戶分區時,外部終端會統一訪問I/O管理分區,再由I/O管理分區根據數據傳輸協議對數據解析,轉發至目的用戶分區。

圖4 采用I/O分區實現多用戶協同開發示意圖
多用戶協同開發時,可通過UART串口向其用戶分區操作系統輸入調試命令。用戶分區操作系統可通過串口超級終端的通用異步收發器UART向用戶發送命令反饋信息。在接受用戶輸入的程序加載命令后,用戶分區操作系統會向I/O管理分區發起發送請求。I/O管理分區操作系統通過FTP加載的方式,通過網口獲得用戶終端的程序,然后加載至用戶分區的內存中,完成程序加載。之后用戶即可進行在線調試。
根據本文提出的方法,構建了基于NXP公司的T2080芯片多核硬件處理平臺。處理器為4核8線程,單核最高工作頻率為1.8GHz,系統時鐘采用66MHz,外圍I/O接口主要包括Local Bus、SRIO、I2C、網口及串口,滿足綜合化航空電子系統對縮合硬件處理平臺的要求。
該平臺運行VxWorks 653 3.1,在其上建立64個分區進行調度。其中每個物理核(Core)上分配16個分區,Core0上部署了編號1~16的POS,Core1上部署了編號17~32 POS,Core2上部署了編號為33~48的POS,Core 3上布置了編號49~64的POS。每個POS分配了16M的內存空間。
64個分區應用將各自的打印信息通過串口循環輸出。其中,前32個分區通過SecureCRT工具將打印信息通過超級終端顯示;后32個分區通過AMIO Console 工具,分成32個用戶窗口,將信息回顯至各自的串口窗口中。分區運行結果如圖5所示。

圖5 分區運行結果
相比傳統單核的IMA平臺,該平臺將傳統4個模塊的功能合并為一個模塊,進一步提升了綜合化程度;與傳統AMP架構相比,生產交付總成本可降低50%以上,樣機體積減少80%以上,重量減輕75%以上,功耗下降約65%以上,用戶數量由4個擴展至64個以上,具有輕小型化、低功耗的特點。64個分區獨立運行,并通過共享串口和以太網口,對同一核上的不同分區或不同核上的分區調試,實現了多用戶協同開發。
本文提出并實現了一種適用于機載應用的多核分區方案,采用基于多核并行處理和虛擬化技術相結合的系統管理技術,解決了處理器內核數目對用戶個數限制的問題,達到了處理資源利用率最大化的目的。該方法可實現功能應用的時間、空間和資源訪問隔離,避免多業務間相互影響引起失效蔓延,從而達到提升系統安全性及可靠性的目的。同時,在基于T2080多核硬件處理平臺下實現了虛擬化分區技術,該平臺可替代多個常規的單核處理的模塊,減低了生產交付成本,提升了系統的輕小型化水平。采用多核虛擬化分區技術可提升航電系統的集成度,克服現有技術不便于多核調試問題,提高系統聯試效率。