馬小博,王 芳2,程俊強
(1.西安航空計算技術研究所,西安 710068; 2.空裝駐西安地區(qū)軍事代表局第六代表室,西安 710068)
飛行器的安全關鍵系統(tǒng)采用了高可靠容錯計算機平臺,計算機執(zhí)行包括飛行控制、發(fā)動機控制、公共設備管理等多種平臺的子系統(tǒng)功能,這種綜合多種功能的容錯計算機相比較以前單獨支持一個子系統(tǒng)的專用計算機在操作系統(tǒng)、容錯余度管理等方面發(fā)生了較大的變化,以飛行控制計算機為例,支持單個子系統(tǒng)功能的飛行控制容錯計算機只需要包含飛控系統(tǒng)的多余度管理與解算,而綜合多功能任務的飛控高可靠容錯計算機既要具有飛控系統(tǒng)的多余度安全,同時又需要滿足發(fā)動機控制、機電管理等不同系統(tǒng)、不同余度配置的安全要求。另一方面高可靠容錯計算機從系統(tǒng)結構、容錯技術等方面要適應不斷變化的微電子技術和計算機技術的發(fā)展,保持飛行器平臺具有相對的穩(wěn)定性,更要具有靈活的系統(tǒng)配置能力[1]。
隨著功能綜合化程度的提高,容錯計算機中的軟件越來越復雜,地位也越來越重要,對操作系統(tǒng)的要求越來越高。但是傳統(tǒng)的實時操作系統(tǒng)由于并不是針對這些日益復雜的要求而開發(fā)的,因此在實時性、可靠性、安全性等方面或多或少的存在一些缺陷,已經不能滿足飛管平臺綜合化的新要求,因此必須研究滿足高安全性的實時操作系統(tǒng),保證應用軟件的可重用性與可移植性[2]。保證多應用軟件和操作系統(tǒng)與硬件的無關性,保證通信和容錯的透明性,從而降低系統(tǒng)全壽命周期費用、縮短研制開發(fā)周期[3]。
本文就是針對新技術下出現的綜合化容錯計算平臺,研究支持該平臺的軟件體系結構、分區(qū)結構、余度管理、系統(tǒng)調度、健康監(jiān)控等關鍵技術。
綠山公司的”INTEGRITY RTOS”從時域(CPU時間)和空間域(存儲空間)確保了資源可用性。在空間域中,系統(tǒng)按照需求分配給每個分區(qū)(在INTEGRITY中稱為Kernel Space或Address Space)固定的存儲區(qū)域,各個分區(qū)的存儲區(qū)域使用彼此獨立,沒有影響[4]。在時域,系統(tǒng)按照需求在一個主幀周期(Major Frame Period,亦即ARINC653標準中的主時間幀,Major Time Frame)中分配給每個分區(qū)一定的CPU時間,各個分區(qū)中在自己的CPU時間內執(zhí)行,各分區(qū)的任務不能用生成子任務的方式占用其他分區(qū)的CPU時間。采用分區(qū)技術,INTEGIRTY保證了各個分區(qū)(任務)間不受干擾,防止錯誤蔓延。而系統(tǒng)內核空間擁有自己的內核棧,保證應用分區(qū)不會影響系統(tǒng)的安全。同時INTEGRITY系統(tǒng)還支持符合ARINC653標準的分區(qū)調度。
高可靠容錯計算機系統(tǒng)作為飛行器的安全關鍵部件需要利用系統(tǒng)中的多個冗余節(jié)點來保障其可靠性。按照最高安全等級的故障容限,余度計算機應能夠達到“兩次故障工作、三次故障安全”的故障容限,這種故障容限需要由4余度容錯系統(tǒng)或者高檢測率的3余度容錯系統(tǒng)實現[5]。對于3余度系統(tǒng),要實現“兩次故障工作、三次故障安全”的故障容限,每個冗余節(jié)點內部必須能100%的檢測出工作節(jié)點自身的故障[6]。
高可靠容錯計算機系統(tǒng)包括三個節(jié)點計算機,節(jié)點計算機內部的功能模塊通過容錯串行總線互連,并且需要保持高覆蓋率的故障檢測,因此節(jié)點計算機內部必須包含完備的監(jiān)控組件,由監(jiān)控組件對計算機工作過程中產生的數據信息進行比較監(jiān)控。節(jié)點計算機之間采用同步工作方式,系統(tǒng)任務分配在各個節(jié)點計算機上執(zhí)行,節(jié)點內的核心處理模塊通過錯串行總線實現CCDL(交叉數據鏈路)的功能,實現節(jié)點內部的信息交換。同時三節(jié)點計算機通過容錯高速串行網絡管理系統(tǒng)各節(jié)點之間的信息交換,節(jié)點內將監(jiān)控有效的數據發(fā)送到各個節(jié)點,同時收取其他節(jié)點監(jiān)控有效的數據,按照一定的邏輯順序,各節(jié)點共同選取某一節(jié)點的有效數據和信息,并將有效數據和信息交由運行在容錯計算機上的不同應用進行計算,對計算結果進行相同的監(jiān)控與表決后輸出有效的計算結果,節(jié)點機內的一次故障,不會導致該節(jié)點機的失效。
節(jié)點計算機的配置形式如圖1所示,每個節(jié)點機由5個功能模塊組成,分別為數據處理模塊1(CPM1)、數據處理模塊2(CPM2)、專用接口模塊(IOM)、電源模塊(PSM)、總線通訊模塊(NSM)。其中CPM1負責作為主模塊負責所有系統(tǒng)的應用程序運行,實現容錯計算機的應用功能;CPM2實現對數據處理模塊1的監(jiān)控,及時發(fā)現數據處理模塊的軟硬件錯誤,從而達到故障告警的作用,并能將故障信息告知其他兩個節(jié)點;IOM作為專用接口模塊實現與外部專用設備的信息交互,輸入輸出信號轉換等;NSM實現與外部交聯設備的網絡信息交互,同時實現與其他節(jié)點計算機的數據信息交互實現了一種串行容錯總線的功能。
圖1 高可靠容錯計算機系統(tǒng)架構
3節(jié)點容錯計算機除了在硬件上需要完整的硬件監(jiān)控組件。工作方式會發(fā)生變化,容錯的工作方式,特別是軟件結構的重大變化:包括余度管理中節(jié)點機同步、節(jié)點機表決監(jiān)控、輸入輸出數據處理等,存在著較大的變化。同時為適應實現更多的應用功能的需求,同時滿足高可靠的容錯需要,其分區(qū)方式分區(qū)調度等也是開發(fā)的難點。通過分區(qū)操作系統(tǒng)實現多應用的隔離和資源共享,通過分層級的軟件結構劃分清晰的軟件界面,實現更加完整的功能驗證。通過分析軟硬件變化特征,提出適應新架構的余度管理策略,滿足實時性等要求。
INTEGRITY實時操作系統(tǒng)(INTEGRITY RTOS)是由美國綠山軟件公司(Green Hills Software, INC.,GHS)所開發(fā)的嵌入式實時操作系統(tǒng)。目前已在航空航天等領域有廣泛應用。INTEGRITY RTOS從時域(CPU時間)和空間域(存儲空間)確保了資源可用性。在空間域中,系統(tǒng)按照需求分配給每個分區(qū)(在INTEGRITY中稱為Kernel Space或Address Space)固定的存儲區(qū)域,各個分區(qū)的存儲區(qū)域使用彼此獨立,沒有影響。在時域,系統(tǒng)按照需求在一個主幀周期(Major Frame Period,亦即ARINC653標準中的主時間幀,Major Time Frame)中分配給每個分區(qū)一定的CPU時間,各個分區(qū)中在自己的CPU時間內執(zhí)行,各分區(qū)的任務不能用生成子任務的方式占用其他分區(qū)的CPU時間。采用分區(qū)技術,INTEGIRTY保證了各個分區(qū)(任務)間不受干擾,防止錯誤蔓延。而系統(tǒng)內核空間擁有自己的內核棧,保證應用分區(qū)不會影響系統(tǒng)的安全。同時INTEGRITY系統(tǒng)還支持符合ARINC653標準的分區(qū)調度。
INTEGRITY還具有內核確定性,在系統(tǒng)調用時并不關中斷,從而確保了系統(tǒng)調用的確定性。INTEGRITY的架構支持多個帶保護的虛擬地址空間(Protected Virtual Address Spaces)。每個虛擬地址空間可以包含多個應用任務。INTEGRITY內核以及內核級任務則保護在內核分區(qū)中。
圖2 INTEGRITY RTOS架構模型
高可靠容錯計算機軟件從功能的角度來說分為兩層:應用軟件層、操作系統(tǒng)層[7]。應用軟件層的功能包括飛行控制、推力控制、公共設備管理等子系統(tǒng)功能,以及余度管理、資源管理、BIT等平臺管理功能。操作系統(tǒng)層負責系統(tǒng)的分區(qū)調度安全和資源訪問安全,多個硬件平臺之間的同步操作,健康監(jiān)控以及模塊支持接口驅動。
應用執(zhí)行接口定義了應用軟件層與核心軟件層之間的接口。該接口的定義使得核心軟件層的更新不會影響應用軟件層。駐留在硬件平臺上的軟件包括:
1)應用分區(qū):多個專用的應用軟件分區(qū),按照相關的關鍵級別進行開發(fā)和驗證。應用分區(qū)在魯棒的空間和時間分區(qū)條件下,只能通過系統(tǒng)調用與系統(tǒng)交互。
2)操作系統(tǒng)核心:提供規(guī)范定義的API和行為,提供應用軟件執(zhí)行的標準和通用的環(huán)境,包括調度、通信、同步與異步操作、存儲器管理、異常/中斷處理接口等服務,包含相關的硬件接口和自測試。
3)系統(tǒng)分區(qū):提供APEX之外的接口需求,在魯棒的空間和時間分區(qū)條件下,執(zhí)行硬件設備通訊管理和容錯管理。
4)系統(tǒng)專用功能:主要包括專用硬件接口、下載、調試、自測試。
圖3 軟件結構
計算機包括不同安全級別的控制管理軟件,如果內部不分區(qū),其中的所有的軟件都要求是適合于那個飛行功能的同一個關鍵級別[8]。這樣將其功能上非關鍵的軟件包含進來,一般來說可能是好的事情,但是影響要求安全級別高的服務,如連續(xù)性自測試BIT,只是通知性的消息給飛行員。處理器內的分區(qū)可以允許具體的功能分成關鍵級別不同的幾個軟件組成部分,可以把不同關鍵級別的軟件放在同一處理器中。然后每一軟件部分可以適合于它自己的關鍵級別的開發(fā)和認證,從而減少整體成本。如果沒有分區(qū),由于擔心低關鍵級別的軟件成份會影響到高關鍵級別的軟件的功能必須把低關鍵級別提高到高關鍵級別上去。分區(qū)會消除故障傳播的風險而且允許每一個軟件成份的關鍵級別被更局部地評估。高可靠容錯計算機操作系統(tǒng)中,使用分區(qū)機制對綜合后的應用進行保護。分區(qū)高可靠容錯計算機系統(tǒng)中的一組功能相關的應用,這些應用在配置和執(zhí)行時作為一個單一的對象來對待。操作系統(tǒng)對每一個分區(qū)進行時間和空間上的保護,在空間上,保證一個分區(qū)內的應用不會破壞另一個分區(qū)內的應用及其私有數據;在時間上,一個分區(qū)的執(zhí)行不會影響到其他的分區(qū)。為了實現高可靠容錯計算機應用軟件組件之間的時間和空間隔離、應用軟件組件和共享輸入輸出處理軟件組件以及健康監(jiān)控軟件組件之間的時間和空間隔離、以及操作系統(tǒng)與其它軟件組件之間的時間和空間隔離,高可靠容錯計算機系統(tǒng)軟件從隔離保護的角度分為兩層,即獨立分區(qū)軟件層和核心軟件層。 INTEGRITY RTOS下的容錯計算機系統(tǒng)軟件分區(qū)靜態(tài)配置見圖4。
圖4 Integrity中分區(qū)建立圖
余度管理是容錯計算機的重要和關鍵功能,能夠實現容錯計算機的同時刻運行,實現容錯計算機的數據信息交互與共享,實現容錯計算機的故障實時監(jiān)測,實現容錯計算機的故障切換和故障隔離[9]。因此一個容錯計算機系統(tǒng)的容錯能力高低,其余度管理算法與策略起到了至關重要的作用。在新的容錯架構與高安全的Integrity分區(qū)操作系統(tǒng)下,余度管理由獨立的分區(qū)實現,由于他們的設計對整個系統(tǒng)的安全產生影響,其安全級別必須滿足系統(tǒng)內最高安全級別任務的要求,余度管理分區(qū)是每個主幀周期首先調度的分區(qū),而健康監(jiān)控分區(qū)是每個主幀周期最后調用的分區(qū)。
余度管理分區(qū)的主要任務包括:同步、輸入信息采集、輸入信息表決與監(jiān)控、輸出信息表決與監(jiān)控、輸出信息控制輸出及應用分區(qū)通訊信息構建。
4.2.1 同步
同步是為了消除不同節(jié)點之間的主幀周期的異步度,是模塊在同一時間運行相同的幀任務,并保證節(jié)點之間數據交互的時間一致性[10]。在沒有分區(qū)情況的傳統(tǒng)同步是軟硬件雙握手的方式進行同步,同步功能處在周期任務的啟示部分,由于增加了分區(qū)功能,同步要實現整個所有分區(qū)的大主幀周期調度,并且同步由屬于余度管理分區(qū),因此賦予最高優(yōu)先級任務,在同步期間需要停止主幀周期的時間計數,并在同步完成后從零時間開始新一幀的時間周期。即從整個時間軸上看,分區(qū)調度情況如圖5所示。
圖5 同步與分區(qū)調度
4.2.2 輸入輸出處理
由于綜合化平臺后的輸入輸出任務增加,并且優(yōu)先級有所不同,為了保證每個任務分區(qū)的輸出能夠盡快執(zhí)行,將輸入輸出處理按照主幀周期內分區(qū)的安排順序,分成優(yōu)先級由高到低的任務,在每個任務分區(qū)之間安排余度管理分區(qū)的執(zhí)行,其結構如圖6所示。
圖6 余度管理分區(qū)調度
為了確保每個任務執(zhí)行前,相關的輸入任務已經執(zhí)行完成,必須規(guī)劃前一任務的輸出執(zhí)行時間和當前任務的輸入處理時間,保證每個任務之間的余度管理時間片大于該時間的和,使下一任務可以獲得當前有效的輸入數據。
4.2.3 表決監(jiān)控
高可靠容錯計算機的工作方式結合了監(jiān)控對和通道多數表決的兩種方式,這種架構的表決監(jiān)控可組合為多種方式,本文為簡化分區(qū)下的表決監(jiān)控算法,在確保能夠有效表決出真實有效數據和監(jiān)控出故障節(jié)點的前提下,將節(jié)點機之間的輸入/輸出信號表決監(jiān)控分為兩組進行,三節(jié)點計算機內每一通道的處理機1為一組,三節(jié)點計算機內每一通道的處理機2為另外一組,每一組監(jiān)控包括通道內監(jiān)控(處理機1和處理機2)和通道間監(jiān)控。
假設當前為處理機1組,則表決監(jiān)控原則:
1)三節(jié)點計算機處理機1表決監(jiān)控一致、通道內監(jiān)控表決一致。表決值取中間值,監(jiān)控值為有效;
2)三節(jié)點計算機處理機1表決監(jiān)控一致、通道內監(jiān)控表決不一致。表決值取中間值,監(jiān)控值為有效;本通道處理機2故障。
3)三節(jié)點計算機處理機1表決監(jiān)控不一致(2:1)、通道內監(jiān)控表決一致。表決值取中間值,監(jiān)控值為有效;節(jié)點故障。
4)三節(jié)點計算機處理機1表決監(jiān)控不一致、通道內監(jiān)控表決不一致。表決值取中間值,監(jiān)控值為有效;本通道處理機1故障。
三節(jié)點計算機處理機2為主的另一組表決監(jiān)控原則與處理機1的表決監(jiān)控原則類同。
本文介紹了一種新型的分布式高可靠容錯計算機的系統(tǒng)結構及軟件結構,結合新的計算機架構帶來的軟件挑戰(zhàn),給出了該容錯計算機平臺下的分區(qū)工作、同步、周期任務、信息的輸入輸出以及表決監(jiān)控等軟件解決方案,分析了綜合化趨勢下的高可靠容錯計算機對高安全操作系統(tǒng)的要求, WindRiver、GreenHills及國內專業(yè)院所等商用嵌入式操作系統(tǒng)廠商已開發(fā)出了滿足Arinc653的操作系統(tǒng)。