图形处理器适航符合性技术研究
2022-03-16李文强刘俊锋
张 川,李文强,刘俊锋
(中国航空工业集团公司洛阳电光设备研究所,河南 洛阳 471000)
0 引言
目前,军用机载显示系统中越来越广泛地采用图形处理器(GPU)来完成2D/3D图形生成的功能[1],但其应用在民机领域时,由于本身的高度复杂性,为满足民机高安全等级的目标(DAL A),需要经过特殊的认证考虑[2],以避免潜在的设计错误对装有GPU飞机的安全性造成负面的影响。
欧洲航空安全局(EASA)近年来发布审定材料认证备忘录CM-SWCEH-001[3],给出了商用GPU应用在民机领域的指导性意见。本文针对GPU应用在民机领域所面临的难点,结合实际项目经验,给出了审查主要关注问题的解决方法。
1 GPU在民用机载产品领域应用的问题
在民用关键机载产品中使用商用GPU会给系统设计者带来适航方面很大的障碍困难,因为GPU一般没有按照DO-254的标准来开发,且其高度复杂性也决定了通过全面的测试来确保没有对飞行安全造成负面影响的设计错误是不太现实的。
商用COTS GPU应用于安全关键的民机机载系统时,存在问题如下。
1) GPU为高度复杂微编程元件,设计周期非常短,因此,发生设计错误、硬件失效或外部事件(EMI、高温环境等)响应不当的可能性很高。
2) 同样,由于GPU的高度复杂性,通常设计周期有限,因此,极有可能包含设计错误,导致显示系统可用性降低,或者导致多个冗余的显示系统可用性降低。
3) 根据GPU类型、复杂度、供应商的不同,会在产品的生命周期中出现性能的变化。这些变化会在极限温度、过压条件或其他工作环境中出现,进而对产品正常的功能和性能造成负面的影响。
4) GPU都包含可配置的接口,其中有些可以通过加载配置代码进行工作模式的配置。因为有这种可配置的能力,需要对显示系统中GPU的构型控制做特殊的考虑。
5) GPU供应商的物料编号、更改控制过程和版本标识的差异情况并不一定为设备制造商所掌握。制造过程的变化会导致不同批次的元件呈现不同的特性。
6) 很难判断GPU设计中是否出现非预期的操作,这些操作会在异常条件下或元件失效时出现。
7) GPU一般需要显示驱动软件实现图形绘制的功能,如OPENGL等。而这些显示驱动软件通常并没有按照DO-178B或其他可接受的符合性方法进行工具鉴定。
8) 要建立GPU元件的失效率可能会存在问题,因为还没有航电应用的失效率经验数据。因此,要建立GPU元件预期失效率的分析方法,以表明系统的可用性与其目的相匹配。
基于上述在民用机载显示系统中应用商用COTS GPU所带来的潜在问题,给出如下两个解决途径。
1) 基于FPGA开发2D图形显示功能。在图形生成2D场景下的应用中,使用FPGA构建图形生成逻辑,研制流程(包括开发、验证活动等)均按照DO-254开发。此种情况下GPU开发过程中所有产出物都符合DO-254的标准。
2) 应用商用COTS GPU芯片。针对商用COTS显示芯片(如AMD8860,NXP IMAX系列等)应用在民机显示系统中,EASA认证备忘录CM-SWCEH-001中第10章给出了在航空电子安全关键应用中使用商用GPU的关切点以及指导性的原则,设备制造商需要按照指导性原则对关切点进行一一解答。由于这些COTS芯片都为国外供应商芯片,芯片的基础数据以及核心配置数据一般只会给授权供应商提供,因此对于国内设备制造商而言,在GPU芯片元件与应用场景的匹配度、供应商追踪记录、质量控制、可靠性数据、服役经验数据累积方面都存在不低的门槛。
2 基于DO-254的图形生成逻辑开发路线
在一些绘制画面为2D画面的应用场景中,如HUD字符画面(见图1)、机载显示的仪表画面等,可基于FPGA开发图形生成逻辑来实现图形绘制的功能。在军用机载领域,某直升机多功能显示器采用此方案;在民用领域,THALS公司开发的D-HUD系列产品采用自有ASIC芯片生成HUD符号画面。
图1 典型2D机载显示设备HUDFig.1 HUD,the typical 2D airborne display
2.1 研制过程符合DO-254标准
图形生成逻辑的研制流程需要符合DO-254标准[4]。由于图形绘制的功能复杂度比较高,按照DO-254进行的设计和验证工作都会带来相当大的挑战。需求条目可能达到上千条、设计的代码量数万行,相应的设计文档也会海量。与之对应,由于设计工程庞大,验证难度也会成倍增大,所消耗的人力以及时间成本也会巨大[5]。
2.2 图形生成逻辑的安全性设计
由于机载显示系统的关键性,图形生成逻辑的设计保证等级一般为高级别(DAL A/B),因此,图形生成逻辑需要有安全性设计保证其绘制功能正常,不会被单粒子翻转、强电磁干扰、高温冲击等现场干扰带来显示错误/误导,进而影响飞行安全。
一种通用的图形生成逻辑的安全性设计架构如图2、图3所示,为保证图形绘制功能的正确性,在图形绘制分辨率之外的区域增加绘制“已知的”图元模板。在视频流输出从显存中提取数据时将图元模板从图形中截取出来,与事先存储的“监控模板”进行对比,来确保图形绘制功能以及数据流的正确性。
图2 图像生成逻辑安全性架构设计Fig.2 The security architecture of image generation logic
图3 安全性测试模板绘制示意图Fig.3 Sketch of security test template
进而为了防止图像“冻结”带来的显示误导,在显存读写控制端增加ECC校验的功能,以帧为单位对显示数据进行ECC校验,防止单粒子翻转对存储区数据带来的危害。
使用FPGA按照DO-254流程实现图形生成的途径时虽然工作量以及复杂度都较高,但是在应用场景的适配度、功耗上存在明显的优势,如HUD字符的绘制可根据显示字符本身的特点定制特定绘制算法(如字符加黑边等),提升字符绘制的质量。ARJ21飞机的HUD平显中采用FPGA实现字符图像生成的功能,已得到主机和局方的认可,通过了SOI#1审核。
3 基于商用COTS器件的GPU应用
在民机机载显示系统中使用商用COTS器件GPU进行图形绘制,需要解决以下几个方面的审定关注问题。
3.1 避免危害性误导信息(HMI)
开发安全关键显示系统涉及的主要问题就是防止显示HMI信息,HMI可能以显示内容错误、丢失、显示“冻结”的形式出现。以下这些问题可能会导致HMI的发生:GPU发生硬件失效、GPU本身的设计错误以及异常输入条件下的失效,如EMI、雷击、高温冲击或者异常的电源波动等。
3.1.1 GPU硬件失效的处理
在高度复杂的GPU COTS器件中探测失效以符合安全性要求通常比较困难,一种典型的方法是采用FPGA在GPU的输出链路上对生成的图像内容进行采样,提取出图像内容信息,进而与CPU端接收到的驱动GPU作图的传感器数据进行比对,来确保GPU作图功能的正确性,同时也保证了CPU对传感器数据解析的正确性,其失效监控的基本架构如图4所示。
图4 商用GPU失效监控Fig.4 Failure monitoring of commercial GPU
3.1.2 GPU本身的设计错误
与应用在高安全等级领域的其他COTS器件一样,很难提供高度可信的证据来表明GPU中是不包含任何设计错误的。因此在应用领域,尽可能使用主要GPU制造商的产品,如AMD,INTEL,NXP,XILINX等,这些厂商产品长期以来大量应用且其一直遵循内部的质量标准。尽管如此,还需要确保设备制造商与GPU器件供应商之间有顺畅的产品变更通知流程(PCN)和勘误发布传递流程。该流程保证产品制造商能够及时对GPU器件的产品变更和勘误进行分析,进而确定对系统设计的影响。
3.1.3 异常输入条件下的失效
大多数异常外部事件都可以通过安全监控器检测到,例如温度、电压和时钟监控功能单元。尽管传统上这是在GPU外部配置的独立电路,但某些为功能安全过程而开发的SOC可能内置了这些监控模块。在系统安全评估过程中会确定对安全监视功能的要求,并自顶向下传递至组件和模块。
3.2 提升显示系统可用性
由于GPU器件的图形生成特性,在整个显示系统中若采用一种类型的GPU生成画面,则会出现GPU的显示故障对整个显示系统造成影响,使显示系统的可用性减低。因此在显示系统中可以使用不同类型的GPU生成画面作为冗余显示来提高系统的可用性,但这也会带来硬件成本和资源成本的提升,应结合系统安全性分析以及成本、资源多方面因素来确定显示结构与GPU选型。
3.3 应对产品生命周期中不同批次GPU特性变化
与民机系统中应用的其他COTS器件类似,在建立与芯片供应商顺畅的沟通反馈机制后,定期搜集芯片供应商反馈给供应链的勘误表等数据并分析其勘误内容对目前设计的影响,及时反馈至设计过程。
此外,建议使用经过筛选后宽温的GPU芯片,确保其在整个温度范围内都能够维持预定功能和性能参数。
3.4 处理GPU芯片中可配置VBIOS
GPU芯片都需要VBIOS来完成加载初始化、寄存器配置、硬件中断处理、程序服务请求的操作。一般GPU芯片采用两种形式存储VBIOS:存储在芯片内部的ROM中或者将VBIOS映射到显示驱动程序库中。
在这两种情况下,VBIOS都由芯片供应商创建和提供,并且包含可执行的代码,通常开发这些数据并没有按照适航流程,因此有可能带来安全隐患。VBIOS影响到GPU芯片的配置寄存器,对其工作功能和状态起到关键作用,因此,在使用过程中需要持续监控这些配置寄存器的状态,并进一步验证其初始化是否正确。
3.5 持续监控芯片供应商的数据
建立有效的沟通机制持续监控GPU器件供应商的数据(如元器件规格书和勘误数据),以便设计团队评估数据的变更对产品的影响,并及时采取相应的措施。
关注GPU器件供应商的数据更改,包括但不限于以下的数据:1) 影响到GPU物理布局、机械、电气或热特性的封装、外形或制造技术的更改;2) 功能的更改或增加,包括显示系统中的未使用功能、固件、元件驱动和库函数;3) 性能提升,如工作频率的提高。
3.6 充分测试非预期的GPU功能
由于GPU器件的复杂性,包括EASA在内的认证机构也认识到100%测试到GPU器件的非预期功能是非常困难的。因此,在实际应用中需要对GPU器件做尽可能全面的测试,包含超出元件预期功能的鲁棒性测试,这样的测试程序可以表明产品制造商已经做了最大的努力,来确保GPU上没有包含会影响到正常显示的非预期功能。
3.7 OpenGL软件驱动的适航性
图形显示驱动(OpenGL)会驻留在主系统处理器中,无论从GPU供应商获得还是从第三方购买,产品制造商都需要提供符合性证据证明显示驱动对DO-178的符合性[6]。一般,OpenGL软件驱动都未按照适航流程进行开发,因此,业内的通用做法也是从第三方供应商处购买经过适航认证的显示驱动包。
3.8 估算GPU元件的失效率
显示系统的架构设计要确保显示数据的可用性符合安全性过程所要求的概率值。显示系统的故障树会使用到GPU器件的失效率,产品制造商要提供这些失效率数据的证据,或用其他方法来证明这些失效率数据是合理的。事先应与认证机构商定一种可接受的计算模型估计GPU的故障率或确定适当的经验方法。
C919飞机显示系统中由于显示画面的复杂性,采用AMD4690芯片生成显示系统画面,按照商用COTS器件路线进行GPU的适航符合性取证。
4 图形处理器适航路线的对比
两种图形处理器适航路线的对比见表1。可以看出,由于开发的技术难度,基于FPGA的GPU路线在绘制场景为2D/2.5D画面时具有适航成本和器件成本可控、功耗低等优势;而商用COTS芯片GPU路线不仅支持2D/2.5D画面绘制,同样支持复杂3D画面绘制,因此应用领域广泛。
表1 GPU适航符合性路线对比Table 1 Comparison of GPU airworthiness compliance routes
5 结束语
本文从基于FPGA的方案和商用COTS芯片的方案两条路线对GPU在民机显示系统中的应用面临的问题提供了适航符合性方法,最后还针对不同应用场景总结了两条技术路线的优缺点,为相关设备制造商显示方案的确定提供参考。