(中國西南電子技術(shù)研究所,成都 610036)
航空電子系統(tǒng)的發(fā)展經(jīng)歷了分立式、聯(lián)合式、綜合化和高度綜合化階段。以F-35為代表的第四代航空電子系統(tǒng),采用綜合模塊化航空電子(Integrated Modular Avionics,IMA)系統(tǒng)架構(gòu),并將綜合化的范圍從綜合數(shù)據(jù)處理擴展到射頻前端,實現(xiàn)了從天線孔徑、射頻前端信號處理和信息處理層面的傳感器高度綜合[1-2]。未來,隨著數(shù)字化不斷向射頻前端移動,將在更大范圍實現(xiàn)資源綜合。下一代航空電子系統(tǒng)需要高性能、標(biāo)準(zhǔn)化、通用化的模塊,使各種功能線程盡可能復(fù)用硬件,在同一套硬件資源上實現(xiàn)多傳感器信息融合[3]。
IMA架構(gòu)降低了系統(tǒng)體積、功耗和重量,有效實現(xiàn)了硬件資源共享,減少了系統(tǒng)模塊數(shù)量,從而降低了成本、提升了模塊的標(biāo)準(zhǔn)化和通用化程度。傳統(tǒng)IMA架構(gòu)采用單核處理器,通過航空電子應(yīng)用軟件接口(APEX, Application Executive)[4],實現(xiàn)操作系統(tǒng)和應(yīng)用程序隔離;此外,通過時間、空間分區(qū)確保了不同功能應(yīng)用安全隔離。針對通用處理資源,目前仍采用多個處理器物理整合的方式進(jìn)行資源綜合,以提升并行處理能力[5]。一方面,受制于尺寸、功耗、重量的限制,處理器數(shù)量難以繼續(xù)增加;另一方面,多核處理器系統(tǒng)往往只實現(xiàn)了單核處理,并沒有將其優(yōu)勢充分發(fā)揮出來。
主流多核處理架構(gòu)主要包括對稱多處理(SMP,Symmetric Multiprocessing)和非對稱多處理(AMP,Asymmetric Multiprocessing)。傳統(tǒng)的SMP通過共享同一操作系統(tǒng)和硬件資源實現(xiàn)并行處理,如圖1所示。此架構(gòu)組成簡單,操作易于實現(xiàn),但由于未實現(xiàn)對底層硬件資源訪問隔離,各個內(nèi)核耦合度高,一旦某個進(jìn)程故障會導(dǎo)致與其它進(jìn)程關(guān)聯(lián)故障,出現(xiàn)處理器工作異常;傳統(tǒng)AMP架構(gòu)如圖2所示,通常有多個操作系統(tǒng)在不同內(nèi)核上執(zhí)行。AMP架構(gòu)下各內(nèi)核相對獨立,但由于多個內(nèi)核需共享存儲器和I/O等資源,要重點解決內(nèi)核間通信和互斥問題,復(fù)雜性較高;此外,所有操作系統(tǒng)的協(xié)同工作,對駐留在不同操作系統(tǒng)的應(yīng)用協(xié)同開發(fā)難度較大[6]。
圖1 傳統(tǒng)SMP架構(gòu)示意圖
圖2 傳統(tǒng)AMP架構(gòu)示意圖
機載多核處理平臺需重點解決軟件的確定性、安全隔離、故障定位隔離等問題[7]。2016,F(xiàn)AA發(fā)布指導(dǎo)意見書CAST-32A,提出了針對多核處理器的航空電子設(shè)備的安全性指導(dǎo)規(guī)范[8],CAST-32A從硬件、操作系統(tǒng)、平臺軟件、應(yīng)用軟件和系統(tǒng)集成等方面提出了開發(fā)過程中需遵循的準(zhǔn)則,從而奠定了滿足DO-178C安全標(biāo)準(zhǔn)的多核航空電子系統(tǒng)的基礎(chǔ)[9-10]。
圖3 虛擬化分區(qū)處理架構(gòu)示意圖
本文研究了現(xiàn)有多核處理技術(shù)應(yīng)用的不足,提出了一種適用于機載應(yīng)用的多核虛擬化(virtualization)分區(qū)應(yīng)用方法,將傳統(tǒng)的多核硬件平臺與虛擬化分區(qū)技術(shù)相結(jié)合,既在特定核上保留了傳統(tǒng)基于時間分區(qū)的應(yīng)用調(diào)度,又在其他內(nèi)核上擴展了分區(qū)應(yīng)用,實現(xiàn)多個分區(qū)嚴(yán)格隔離和并行處理,可滿足多用戶協(xié)同開發(fā)的需求。該方法增強了系統(tǒng)集成度,降低了系統(tǒng)功耗,提高了航空電子系統(tǒng)的可靠性和安全性。
航空電子產(chǎn)品的研制需滿足對可靠性、安全性、測試性、維修性、保障性、環(huán)境適應(yīng)性的要求[11],此外,還需考慮適航認(rèn)證要求。多核處理平臺的設(shè)計應(yīng)考慮一下要素:
(1)功能性能要求。系統(tǒng)開發(fā)者需分析產(chǎn)品需求,評估處理器指令執(zhí)行速率、運算能力、工作頻率,滿足系統(tǒng)數(shù)據(jù)處理能力需求;此外,需綜合考慮硬件平臺對外通信接口的類型、工作模式及速率等指標(biāo),滿足接口控制能力需求;最后,還需從平臺駐留軟件功能的角度,綜合考慮處理器內(nèi)核/線程數(shù)量,處理器資源使用率應(yīng)留有余量,以便于功能擴展,處理器資源使用率一般不超過70%;
(2)虛擬化支持。虛擬化技術(shù)是多核分區(qū)處理系統(tǒng)中的核心技術(shù),虛擬化技術(shù)可實現(xiàn)對處理器內(nèi)核、內(nèi)存、I/O設(shè)備等資源進(jìn)行分組,得到不同資源分區(qū),每一個資源分區(qū)相當(dāng)于一個虛擬機(VM,Virtual Machine)。各虛擬機由位于硬件與操作系統(tǒng)之間抽象的軟件層統(tǒng)一管理,稱為虛擬機管理器(Hypervisor)。每一個虛擬機都支持一個客戶端操作系統(tǒng)(Guest OS),各分區(qū)能夠共享某些硬件資源,并提供完善的保護和隔離,保證多核處理環(huán)境下的實時性和安全性;
(3)開發(fā)工具支持。在系統(tǒng)集成時,存在多用戶軟件駐留在同一硬件平臺上,共享硬件資源。因此,用戶程序需實現(xiàn)獨立開發(fā)和測試,最終由集成商負(fù)責(zé)整合和測試驗證。系統(tǒng)出現(xiàn)故障時,應(yīng)提供有效的故障維護和檢測工具,便于問題定位和故障隔離。當(dāng)前,多核硬件相對成熟,但基于多核的開發(fā)工具和系統(tǒng)軟件比較欠缺;
(4)產(chǎn)品全生命周期供貨能力。航空產(chǎn)品具有工作環(huán)境惡劣,服役時間長(通常為幾十年)等特點,系統(tǒng)設(shè)計時應(yīng)考慮供應(yīng)商對產(chǎn)品全生命周期的保障能力,確保持續(xù)供貨和產(chǎn)品維護。
在多核硬件處理平臺上,采用虛擬化分區(qū)處理技術(shù),實現(xiàn)機載平臺上若干個相互獨立的不同用戶功能模塊,為每個功能模塊單獨分配一個獨立的分區(qū),功能模塊的應(yīng)用程序在這個單獨的虛擬分區(qū)中運行。基于虛擬分區(qū)的多核并行處理架構(gòu)如圖3所示。
多核虛擬分區(qū)處理架構(gòu)包含4個層次,自底向上分別為硬件平臺層、核心操作系統(tǒng)層、分區(qū)操作系統(tǒng)層和應(yīng)用軟件層,4個層次相互獨立。各層次功能說明如下:
(1)硬件平臺層。包括物理實體的多核處理器、存儲器以及外部接口資源,這些硬件資源構(gòu)成一個典型的嵌入式系統(tǒng)。多核處理器包含其內(nèi)部的若干個內(nèi)核和實現(xiàn)指令執(zhí)行的運算資源;存儲資源為處理器內(nèi)核的運算提供指令和數(shù)據(jù)的存儲空間,外部I/O資源為多核處理器提供與外部設(shè)備進(jìn)行數(shù)據(jù)交互的通道。
(2)核心操作系統(tǒng)層。核心操作系統(tǒng)包含運行在多核處理器上的核心操作系統(tǒng)(MOS,module OS)和上層分區(qū)操作系統(tǒng)(POS,partitioned OS),MOS中運行系統(tǒng)監(jiān)管軟件,加載所有虛擬機客戶端,同時為虛擬機分配處理器、存儲器、I/O等資源。虛擬機具有系統(tǒng)監(jiān)管功能,提供分區(qū)運行的環(huán)境,管理同一個內(nèi)核上的分區(qū)調(diào)度,負(fù)責(zé)分區(qū)間通信,通過核心操作系統(tǒng)的管理對底層運算資源、存儲資源和接口資源等硬件進(jìn)行操作和控制。
(3)分區(qū)操作系統(tǒng)層。分區(qū)操作系統(tǒng)包含運行在虛擬機上的上層POS和提供給對應(yīng)用軟件層的若干個應(yīng)用程序的API(Application Programming Interface)。分區(qū)操作系統(tǒng)管理各自對應(yīng)的內(nèi)部資源和分區(qū)內(nèi)多任務(wù)調(diào)度,并向應(yīng)用程序提供服務(wù)。
(4)應(yīng)用軟件層。應(yīng)用軟件層可分為系統(tǒng)分區(qū)(System Partition)和應(yīng)用分區(qū)(Application Partition)。應(yīng)用軟件層包含所有用戶功能模塊的若干個分區(qū)應(yīng)用程序和接口管理程序、接口備份管理程序和健康管理程序,每個分區(qū)應(yīng)用程序通過端口(Port)與接口管理程序、接口備份管理程序和健康管理應(yīng)用程序進(jìn)行通信。
多核處理器硬件平臺通過核心操作系統(tǒng)連接分區(qū)操作系統(tǒng)和運行在相互獨立的若干個分區(qū)之上的用戶應(yīng)用程序;在多用戶共享同一硬件平臺的基礎(chǔ)上,核心操作系統(tǒng)運行虛擬機,并在虛擬機上運行分別對應(yīng)用戶分區(qū)和3個系統(tǒng)分區(qū)操作系統(tǒng)POS,應(yīng)用分區(qū)通過分區(qū)間端口通信的方式與I/O管理分區(qū)交互,用戶使用共享接口完成對各分區(qū)的獨立訪問。
(1)功能應(yīng)用分區(qū)。功能應(yīng)用分區(qū)可同時實現(xiàn)機載平臺上若干個相互獨立的不同用戶功能模塊,為每個功能模塊單獨分配一個獨立的分區(qū),功能模塊的應(yīng)用程序在這個單獨的虛擬分區(qū)中運行。從功能實現(xiàn)的角度,綜合考慮功能的性能要求、占用的硬件資源等因素,把系統(tǒng)功能劃分成若干個子功能,要求各子功能相對獨立,把一個或多個子功能劃分為一個分區(qū),最終確定分區(qū)數(shù)量以及各個分區(qū)的功能。
多核虛擬分區(qū)處理系統(tǒng)中彼此獨立的分區(qū)數(shù)量為M個,且多核處理器的第k個內(nèi)核上運行Mk個分區(qū),每一個分區(qū)中運行一個應(yīng)用程序,并且滿足:
(1)
其中,N為每個處理內(nèi)核可部署的分區(qū)數(shù)量,其值取決于應(yīng)用程序的復(fù)雜度和實際硬件資源;第k個內(nèi)核上的每個分區(qū)上分別運行分區(qū)操作系統(tǒng)為POS0,POS1,……,POS (Mk-1)。
(2)系統(tǒng)分區(qū)。各個虛擬分區(qū)中的功能應(yīng)用程序完全獨立運行,由與分區(qū)操作系統(tǒng)相連的虛擬機進(jìn)行管理,除了實現(xiàn)用戶功能的分區(qū)以外,在其中一個內(nèi)核的虛擬機上單獨設(shè)置2個I/O管理分區(qū)和1個健康管理(HM,Health Monitor)分區(qū),以此來提高多核嵌入式系統(tǒng)的可靠性和安全性。
I/O管理分區(qū)分為接口管理分區(qū)、接口備份管理分區(qū),其運行的分區(qū)操作系統(tǒng)和接口管理程序、接口備份管理程序?qū)iT用于對I/O資源進(jìn)行控制管理。當(dāng)其中1個I/O管理分區(qū)的管理進(jìn)程出現(xiàn)異常時,另外1個I/O管理分區(qū)的管理進(jìn)程仍然可以完成執(zhí)行接口資源管理的任務(wù)。
HM分區(qū)負(fù)責(zé)監(jiān)控硬件、應(yīng)用程序和操作系統(tǒng)的故障和失效,并且隔離故障防止失效蔓延。健康管理程序在進(jìn)程、分區(qū)、模塊3個層級提供警報檢測、警報記錄、警報響應(yīng)的服務(wù),進(jìn)行健康監(jiān)控。根據(jù)錯誤級別決定警報響應(yīng)的操作:模塊級別的響應(yīng)包括復(fù)位和關(guān)機;分區(qū)級別的響應(yīng)包括重新啟動分區(qū);進(jìn)程級別的響應(yīng)包括重新加載執(zhí)行進(jìn)程。
分區(qū)在多核上的部署可分為分區(qū)間并行和分區(qū)內(nèi)并行[12-14]。分區(qū)間并行是一個分區(qū)在一個或多個核上激活,每個分區(qū)都在對應(yīng)核上運行。同一時刻所有分區(qū)同時運行在各自對應(yīng)和核上,這種方式下多個分區(qū)間是嚴(yán)格意義上的并行;分區(qū)內(nèi)并行即多個分區(qū)部署在同一個處理器內(nèi)核,分區(qū)內(nèi)任務(wù)在時間上并發(fā)運行。這種方式下,分區(qū)的調(diào)度由MOS按照預(yù)先規(guī)劃好的調(diào)度表來進(jìn)行周期性調(diào)度,當(dāng)前分區(qū)被調(diào)度時,其對應(yīng)的POS被激活,達(dá)到各分區(qū)時間隔離的目的。
在系統(tǒng)集成聯(lián)試時,通常采用以太網(wǎng)口進(jìn)行調(diào)試,需要同時訪問同一個物理硬件網(wǎng)口,這種方式可通過I/O分區(qū)代理訪問實現(xiàn)。如圖4所示,若干個用戶的終端計算機和一臺公用多口交換機組成。每臺計算機至少包含一個通用異步串口UART,連接至多核處理器硬件平臺。每臺計算機至少包含一個以太網(wǎng)口,通過網(wǎng)線連接交換機來與共用網(wǎng)口連接。用戶操作系統(tǒng)分區(qū)需要使用共用接口與由若干個用戶的終端計算機和一臺公用多口交換機組成的外部設(shè)備交互時,用戶分區(qū)操作系統(tǒng)首先將數(shù)據(jù)發(fā)送至I/O管理分區(qū)操作系統(tǒng),再由I/O管理分區(qū)調(diào)用設(shè)備驅(qū)動將數(shù)據(jù)轉(zhuǎn)發(fā)至外部交換設(shè)備,由交換設(shè)備分發(fā)至各用戶的終端中;同理,當(dāng)外部終端訪問用戶分區(qū)時,外部終端會統(tǒng)一訪問I/O管理分區(qū),再由I/O管理分區(qū)根據(jù)數(shù)據(jù)傳輸協(xié)議對數(shù)據(jù)解析,轉(zhuǎn)發(fā)至目的用戶分區(qū)。
圖4 采用I/O分區(qū)實現(xiàn)多用戶協(xié)同開發(fā)示意圖
多用戶協(xié)同開發(fā)時,可通過UART串口向其用戶分區(qū)操作系統(tǒng)輸入調(diào)試命令。用戶分區(qū)操作系統(tǒng)可通過串口超級終端的通用異步收發(fā)器UART向用戶發(fā)送命令反饋信息。在接受用戶輸入的程序加載命令后,用戶分區(qū)操作系統(tǒng)會向I/O管理分區(qū)發(fā)起發(fā)送請求。I/O管理分區(qū)操作系統(tǒng)通過FTP加載的方式,通過網(wǎng)口獲得用戶終端的程序,然后加載至用戶分區(qū)的內(nèi)存中,完成程序加載。之后用戶即可進(jìn)行在線調(diào)試。
根據(jù)本文提出的方法,構(gòu)建了基于NXP公司的T2080芯片多核硬件處理平臺。處理器為4核8線程,單核最高工作頻率為1.8GHz,系統(tǒng)時鐘采用66MHz,外圍I/O接口主要包括Local Bus、SRIO、I2C、網(wǎng)口及串口,滿足綜合化航空電子系統(tǒng)對縮合硬件處理平臺的要求。
該平臺運行VxWorks 653 3.1,在其上建立64個分區(qū)進(jìn)行調(diào)度。其中每個物理核(Core)上分配16個分區(qū),Core0上部署了編號1~16的POS,Core1上部署了編號17~32 POS,Core2上部署了編號為33~48的POS,Core 3上布置了編號49~64的POS。每個POS分配了16M的內(nèi)存空間。
64個分區(qū)應(yīng)用將各自的打印信息通過串口循環(huán)輸出。其中,前32個分區(qū)通過SecureCRT工具將打印信息通過超級終端顯示;后32個分區(qū)通過AMIO Console 工具,分成32個用戶窗口,將信息回顯至各自的串口窗口中。分區(qū)運行結(jié)果如圖5所示。
圖5 分區(qū)運行結(jié)果
相比傳統(tǒng)單核的IMA平臺,該平臺將傳統(tǒng)4個模塊的功能合并為一個模塊,進(jìn)一步提升了綜合化程度;與傳統(tǒng)AMP架構(gòu)相比,生產(chǎn)交付總成本可降低50%以上,樣機體積減少80%以上,重量減輕75%以上,功耗下降約65%以上,用戶數(shù)量由4個擴展至64個以上,具有輕小型化、低功耗的特點。64個分區(qū)獨立運行,并通過共享串口和以太網(wǎng)口,對同一核上的不同分區(qū)或不同核上的分區(qū)調(diào)試,實現(xiàn)了多用戶協(xié)同開發(fā)。
本文提出并實現(xiàn)了一種適用于機載應(yīng)用的多核分區(qū)方案,采用基于多核并行處理和虛擬化技術(shù)相結(jié)合的系統(tǒng)管理技術(shù),解決了處理器內(nèi)核數(shù)目對用戶個數(shù)限制的問題,達(dá)到了處理資源利用率最大化的目的。該方法可實現(xiàn)功能應(yīng)用的時間、空間和資源訪問隔離,避免多業(yè)務(wù)間相互影響引起失效蔓延,從而達(dá)到提升系統(tǒng)安全性及可靠性的目的。同時,在基于T2080多核硬件處理平臺下實現(xiàn)了虛擬化分區(qū)技術(shù),該平臺可替代多個常規(guī)的單核處理的模塊,減低了生產(chǎn)交付成本,提升了系統(tǒng)的輕小型化水平。采用多核虛擬化分區(qū)技術(shù)可提升航電系統(tǒng)的集成度,克服現(xiàn)有技術(shù)不便于多核調(diào)試問題,提高系統(tǒng)聯(lián)試效率。