張 川,李文強,劉俊鋒
(中國航空工業(yè)集團公司洛陽電光設(shè)備研究所,河南 洛陽 471000)
目前,軍用機載顯示系統(tǒng)中越來越廣泛地采用圖形處理器(GPU)來完成2D/3D圖形生成的功能[1],但其應(yīng)用在民機領(lǐng)域時,由于本身的高度復(fù)雜性,為滿足民機高安全等級的目標(DAL A),需要經(jīng)過特殊的認證考慮[2],以避免潛在的設(shè)計錯誤對裝有GPU飛機的安全性造成負面的影響。
歐洲航空安全局(EASA)近年來發(fā)布審定材料認證備忘錄CM-SWCEH-001[3],給出了商用GPU應(yīng)用在民機領(lǐng)域的指導(dǎo)性意見。本文針對GPU應(yīng)用在民機領(lǐng)域所面臨的難點,結(jié)合實際項目經(jīng)驗,給出了審查主要關(guān)注問題的解決方法。
在民用關(guān)鍵機載產(chǎn)品中使用商用GPU會給系統(tǒng)設(shè)計者帶來適航方面很大的障礙困難,因為GPU一般沒有按照DO-254的標準來開發(fā),且其高度復(fù)雜性也決定了通過全面的測試來確保沒有對飛行安全造成負面影響的設(shè)計錯誤是不太現(xiàn)實的。
商用COTS GPU應(yīng)用于安全關(guān)鍵的民機機載系統(tǒng)時,存在問題如下。
1) GPU為高度復(fù)雜微編程元件,設(shè)計周期非常短,因此,發(fā)生設(shè)計錯誤、硬件失效或外部事件(EMI、高溫環(huán)境等)響應(yīng)不當?shù)目赡苄院芨摺?/p>
2) 同樣,由于GPU的高度復(fù)雜性,通常設(shè)計周期有限,因此,極有可能包含設(shè)計錯誤,導(dǎo)致顯示系統(tǒng)可用性降低,或者導(dǎo)致多個冗余的顯示系統(tǒng)可用性降低。
3) 根據(jù)GPU類型、復(fù)雜度、供應(yīng)商的不同,會在產(chǎn)品的生命周期中出現(xiàn)性能的變化。這些變化會在極限溫度、過壓條件或其他工作環(huán)境中出現(xiàn),進而對產(chǎn)品正常的功能和性能造成負面的影響。
4) GPU都包含可配置的接口,其中有些可以通過加載配置代碼進行工作模式的配置。因為有這種可配置的能力,需要對顯示系統(tǒng)中GPU的構(gòu)型控制做特殊的考慮。
5) GPU供應(yīng)商的物料編號、更改控制過程和版本標識的差異情況并不一定為設(shè)備制造商所掌握。制造過程的變化會導(dǎo)致不同批次的元件呈現(xiàn)不同的特性。
6) 很難判斷GPU設(shè)計中是否出現(xiàn)非預(yù)期的操作,這些操作會在異常條件下或元件失效時出現(xiàn)。
7) GPU一般需要顯示驅(qū)動軟件實現(xiàn)圖形繪制的功能,如OPENGL等。而這些顯示驅(qū)動軟件通常并沒有按照DO-178B或其他可接受的符合性方法進行工具鑒定。
8) 要建立GPU元件的失效率可能會存在問題,因為還沒有航電應(yīng)用的失效率經(jīng)驗數(shù)據(jù)。因此,要建立GPU元件預(yù)期失效率的分析方法,以表明系統(tǒng)的可用性與其目的相匹配。
基于上述在民用機載顯示系統(tǒng)中應(yīng)用商用COTS GPU所帶來的潛在問題,給出如下兩個解決途徑。
1) 基于FPGA開發(fā)2D圖形顯示功能。在圖形生成2D場景下的應(yīng)用中,使用FPGA構(gòu)建圖形生成邏輯,研制流程(包括開發(fā)、驗證活動等)均按照DO-254開發(fā)。此種情況下GPU開發(fā)過程中所有產(chǎn)出物都符合DO-254的標準。
2) 應(yīng)用商用COTS GPU芯片。針對商用COTS顯示芯片(如AMD8860,NXP IMAX系列等)應(yīng)用在民機顯示系統(tǒng)中,EASA認證備忘錄CM-SWCEH-001中第10章給出了在航空電子安全關(guān)鍵應(yīng)用中使用商用GPU的關(guān)切點以及指導(dǎo)性的原則,設(shè)備制造商需要按照指導(dǎo)性原則對關(guān)切點進行一一解答。由于這些COTS芯片都為國外供應(yīng)商芯片,芯片的基礎(chǔ)數(shù)據(jù)以及核心配置數(shù)據(jù)一般只會給授權(quán)供應(yīng)商提供,因此對于國內(nèi)設(shè)備制造商而言,在GPU芯片元件與應(yīng)用場景的匹配度、供應(yīng)商追蹤記錄、質(zhì)量控制、可靠性數(shù)據(jù)、服役經(jīng)驗數(shù)據(jù)累積方面都存在不低的門檻。
在一些繪制畫面為2D畫面的應(yīng)用場景中,如HUD字符畫面(見圖1)、機載顯示的儀表畫面等,可基于FPGA開發(fā)圖形生成邏輯來實現(xiàn)圖形繪制的功能。在軍用機載領(lǐng)域,某直升機多功能顯示器采用此方案;在民用領(lǐng)域,THALS公司開發(fā)的D-HUD系列產(chǎn)品采用自有ASIC芯片生成HUD符號畫面。
圖1 典型2D機載顯示設(shè)備HUDFig.1 HUD,the typical 2D airborne display
圖形生成邏輯的研制流程需要符合DO-254標準[4]。由于圖形繪制的功能復(fù)雜度比較高,按照DO-254進行的設(shè)計和驗證工作都會帶來相當大的挑戰(zhàn)。需求條目可能達到上千條、設(shè)計的代碼量數(shù)萬行,相應(yīng)的設(shè)計文檔也會海量。與之對應(yīng),由于設(shè)計工程龐大,驗證難度也會成倍增大,所消耗的人力以及時間成本也會巨大[5]。
由于機載顯示系統(tǒng)的關(guān)鍵性,圖形生成邏輯的設(shè)計保證等級一般為高級別(DAL A/B),因此,圖形生成邏輯需要有安全性設(shè)計保證其繪制功能正常,不會被單粒子翻轉(zhuǎn)、強電磁干擾、高溫沖擊等現(xiàn)場干擾帶來顯示錯誤/誤導(dǎo),進而影響飛行安全。
一種通用的圖形生成邏輯的安全性設(shè)計架構(gòu)如圖2、圖3所示,為保證圖形繪制功能的正確性,在圖形繪制分辨率之外的區(qū)域增加繪制“已知的”圖元模板。在視頻流輸出從顯存中提取數(shù)據(jù)時將圖元模板從圖形中截取出來,與事先存儲的“監(jiān)控模板”進行對比,來確保圖形繪制功能以及數(shù)據(jù)流的正確性。
圖2 圖像生成邏輯安全性架構(gòu)設(shè)計Fig.2 The security architecture of image generation logic
圖3 安全性測試模板繪制示意圖Fig.3 Sketch of security test template
進而為了防止圖像“凍結(jié)”帶來的顯示誤導(dǎo),在顯存讀寫控制端增加ECC校驗的功能,以幀為單位對顯示數(shù)據(jù)進行ECC校驗,防止單粒子翻轉(zhuǎn)對存儲區(qū)數(shù)據(jù)帶來的危害。
使用FPGA按照DO-254流程實現(xiàn)圖形生成的途徑時雖然工作量以及復(fù)雜度都較高,但是在應(yīng)用場景的適配度、功耗上存在明顯的優(yōu)勢,如HUD字符的繪制可根據(jù)顯示字符本身的特點定制特定繪制算法(如字符加黑邊等),提升字符繪制的質(zhì)量。ARJ21飛機的HUD平顯中采用FPGA實現(xiàn)字符圖像生成的功能,已得到主機和局方的認可,通過了SOI#1審核。
在民機機載顯示系統(tǒng)中使用商用COTS器件GPU進行圖形繪制,需要解決以下幾個方面的審定關(guān)注問題。
開發(fā)安全關(guān)鍵顯示系統(tǒng)涉及的主要問題就是防止顯示HMI信息,HMI可能以顯示內(nèi)容錯誤、丟失、顯示“凍結(jié)”的形式出現(xiàn)。以下這些問題可能會導(dǎo)致HMI的發(fā)生:GPU發(fā)生硬件失效、GPU本身的設(shè)計錯誤以及異常輸入條件下的失效,如EMI、雷擊、高溫沖擊或者異常的電源波動等。
3.1.1 GPU硬件失效的處理
在高度復(fù)雜的GPU COTS器件中探測失效以符合安全性要求通常比較困難,一種典型的方法是采用FPGA在GPU的輸出鏈路上對生成的圖像內(nèi)容進行采樣,提取出圖像內(nèi)容信息,進而與CPU端接收到的驅(qū)動GPU作圖的傳感器數(shù)據(jù)進行比對,來確保GPU作圖功能的正確性,同時也保證了CPU對傳感器數(shù)據(jù)解析的正確性,其失效監(jiān)控的基本架構(gòu)如圖4所示。
圖4 商用GPU失效監(jiān)控Fig.4 Failure monitoring of commercial GPU
3.1.2 GPU本身的設(shè)計錯誤
與應(yīng)用在高安全等級領(lǐng)域的其他COTS器件一樣,很難提供高度可信的證據(jù)來表明GPU中是不包含任何設(shè)計錯誤的。因此在應(yīng)用領(lǐng)域,盡可能使用主要GPU制造商的產(chǎn)品,如AMD,INTEL,NXP,XILINX等,這些廠商產(chǎn)品長期以來大量應(yīng)用且其一直遵循內(nèi)部的質(zhì)量標準。盡管如此,還需要確保設(shè)備制造商與GPU器件供應(yīng)商之間有順暢的產(chǎn)品變更通知流程(PCN)和勘誤發(fā)布傳遞流程。該流程保證產(chǎn)品制造商能夠及時對GPU器件的產(chǎn)品變更和勘誤進行分析,進而確定對系統(tǒng)設(shè)計的影響。
3.1.3 異常輸入條件下的失效
大多數(shù)異常外部事件都可以通過安全監(jiān)控器檢測到,例如溫度、電壓和時鐘監(jiān)控功能單元。盡管傳統(tǒng)上這是在GPU外部配置的獨立電路,但某些為功能安全過程而開發(fā)的SOC可能內(nèi)置了這些監(jiān)控模塊。在系統(tǒng)安全評估過程中會確定對安全監(jiān)視功能的要求,并自頂向下傳遞至組件和模塊。
由于GPU器件的圖形生成特性,在整個顯示系統(tǒng)中若采用一種類型的GPU生成畫面,則會出現(xiàn)GPU的顯示故障對整個顯示系統(tǒng)造成影響,使顯示系統(tǒng)的可用性減低。因此在顯示系統(tǒng)中可以使用不同類型的GPU生成畫面作為冗余顯示來提高系統(tǒng)的可用性,但這也會帶來硬件成本和資源成本的提升,應(yīng)結(jié)合系統(tǒng)安全性分析以及成本、資源多方面因素來確定顯示結(jié)構(gòu)與GPU選型。
與民機系統(tǒng)中應(yīng)用的其他COTS器件類似,在建立與芯片供應(yīng)商順暢的溝通反饋機制后,定期搜集芯片供應(yīng)商反饋給供應(yīng)鏈的勘誤表等數(shù)據(jù)并分析其勘誤內(nèi)容對目前設(shè)計的影響,及時反饋至設(shè)計過程。
此外,建議使用經(jīng)過篩選后寬溫的GPU芯片,確保其在整個溫度范圍內(nèi)都能夠維持預(yù)定功能和性能參數(shù)。
GPU芯片都需要VBIOS來完成加載初始化、寄存器配置、硬件中斷處理、程序服務(wù)請求的操作。一般GPU芯片采用兩種形式存儲VBIOS:存儲在芯片內(nèi)部的ROM中或者將VBIOS映射到顯示驅(qū)動程序庫中。
在這兩種情況下,VBIOS都由芯片供應(yīng)商創(chuàng)建和提供,并且包含可執(zhí)行的代碼,通常開發(fā)這些數(shù)據(jù)并沒有按照適航流程,因此有可能帶來安全隱患。VBIOS影響到GPU芯片的配置寄存器,對其工作功能和狀態(tài)起到關(guān)鍵作用,因此,在使用過程中需要持續(xù)監(jiān)控這些配置寄存器的狀態(tài),并進一步驗證其初始化是否正確。
建立有效的溝通機制持續(xù)監(jiān)控GPU器件供應(yīng)商的數(shù)據(jù)(如元器件規(guī)格書和勘誤數(shù)據(jù)),以便設(shè)計團隊評估數(shù)據(jù)的變更對產(chǎn)品的影響,并及時采取相應(yīng)的措施。
關(guān)注GPU器件供應(yīng)商的數(shù)據(jù)更改,包括但不限于以下的數(shù)據(jù):1) 影響到GPU物理布局、機械、電氣或熱特性的封裝、外形或制造技術(shù)的更改;2) 功能的更改或增加,包括顯示系統(tǒng)中的未使用功能、固件、元件驅(qū)動和庫函數(shù);3) 性能提升,如工作頻率的提高。
由于GPU器件的復(fù)雜性,包括EASA在內(nèi)的認證機構(gòu)也認識到100%測試到GPU器件的非預(yù)期功能是非常困難的。因此,在實際應(yīng)用中需要對GPU器件做盡可能全面的測試,包含超出元件預(yù)期功能的魯棒性測試,這樣的測試程序可以表明產(chǎn)品制造商已經(jīng)做了最大的努力,來確保GPU上沒有包含會影響到正常顯示的非預(yù)期功能。
圖形顯示驅(qū)動(OpenGL)會駐留在主系統(tǒng)處理器中,無論從GPU供應(yīng)商獲得還是從第三方購買,產(chǎn)品制造商都需要提供符合性證據(jù)證明顯示驅(qū)動對DO-178的符合性[6]。一般,OpenGL軟件驅(qū)動都未按照適航流程進行開發(fā),因此,業(yè)內(nèi)的通用做法也是從第三方供應(yīng)商處購買經(jīng)過適航認證的顯示驅(qū)動包。
顯示系統(tǒng)的架構(gòu)設(shè)計要確保顯示數(shù)據(jù)的可用性符合安全性過程所要求的概率值。顯示系統(tǒng)的故障樹會使用到GPU器件的失效率,產(chǎn)品制造商要提供這些失效率數(shù)據(jù)的證據(jù),或用其他方法來證明這些失效率數(shù)據(jù)是合理的。事先應(yīng)與認證機構(gòu)商定一種可接受的計算模型估計GPU的故障率或確定適當?shù)慕?jīng)驗方法。
C919飛機顯示系統(tǒng)中由于顯示畫面的復(fù)雜性,采用AMD4690芯片生成顯示系統(tǒng)畫面,按照商用COTS器件路線進行GPU的適航符合性取證。
兩種圖形處理器適航路線的對比見表1??梢钥闯?,由于開發(fā)的技術(shù)難度,基于FPGA的GPU路線在繪制場景為2D/2.5D畫面時具有適航成本和器件成本可控、功耗低等優(yōu)勢;而商用COTS芯片GPU路線不僅支持2D/2.5D畫面繪制,同樣支持復(fù)雜3D畫面繪制,因此應(yīng)用領(lǐng)域廣泛。
表1 GPU適航符合性路線對比Table 1 Comparison of GPU airworthiness compliance routes
本文從基于FPGA的方案和商用COTS芯片的方案兩條路線對GPU在民機顯示系統(tǒng)中的應(yīng)用面臨的問題提供了適航符合性方法,最后還針對不同應(yīng)用場景總結(jié)了兩條技術(shù)路線的優(yōu)缺點,為相關(guān)設(shè)備制造商顯示方案的確定提供參考。