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