数字信号处理器单粒子功能性瞬态故障预估方法研究
2021-11-10盛江坤王茂成姚志斌罗尹虹刘卧龙赵铭彤王忠明
盛江坤, 许 鹏, 王茂成, 姚志斌, 罗尹虹, 杨 业, 刘卧龙, 赵铭彤, 王 迪, 王忠明
(1. 火箭军工程大学, 西安 710025; 2. 强脉冲辐射环境模拟与效应国家重点实验室, 西安 710024; 3. 西北核技术研究所, 西安 710024)
数字信号处理器(digital signal processor,DSP)是一种独特的微处理器,是电子系统的核心器件之一,在雷达、通信及导航等方面有着广泛应用,在航天领域也得到了广泛关注[1-2]。在空间应用中,空间辐射环境会引起集成电路的单粒子效应。质子或重离子击中集成电路灵敏区会造成集成电路逻辑状态翻转,进而引发集成电路功能中断,甚至功能失效,严重影响航天器在轨可靠运行[3]。因此,DSP作为电子系统的核心,准确评估其抗单粒子性能,可为航天应用提供重要支撑。
集成电路的抗单粒子性能地面验证方法通常有辐照实验和硬件故障注入2种[4-9]。在不同应用场景下,DSP的配置程序和功能各不相同,地面验证实验存在实验量大和成本高等问题;硬件故障注入则存在注入时机难以把握、测试周期长及系统复杂度增加等问题。针对当前地面验证方法存在的问题,本文提出了DSP动态截面中功能性瞬态故障截面的预估计算方法,该方法可以在仅开展静态偏置实验的情况下,结合数据缓存流程,预估DSP功能性瞬态故障截面,从而降低实验量和实验成本。在西安200 MeV质子应用装置(Xi’an 200 MeV Proton Application Facility,XiPAF)上开展了质子单粒子效应实验,验证了预估方法的有效性。
1 功能性瞬态故障截面
国内外对单粒子功能故障的研究主要关注DSP的各类本征截面,包括内部存储区数据位翻转截面和各组成电路模块的功能故障截面,其中,功能故障是电路模块内部寄存器翻转等原因造成的,如功能执行错误和功能中断等[10-12]。Joshi等在重离子环境下测量了SMJ320C6701的内部RAM翻转及DMA控制器、各外设接口、存储区控制器和CPU的功能故障[4];Hiemstra等在质子环境下监测了SMJ320C6701的内部RAM翻转及运算逻辑单元和DMA控制器的功能故障[5];王月玲等在重离子环境下记录了国产DSP的内部RAM翻转及CPU和外设接口的功能中断[6]。
与某特定应用最为直接的、系统开发人员或用户最为关心的参数是DSP在该特定应用下的功能故障截面。特定应用的功能故障截面是DSP运行的功能和内部存储区数据位翻转截面及各组成电路模块功能故障截面共同作用的结果。DSP等处理器类器件的工作原理是根据指令调用相应硬件资源进行各类数据处理,对内部存储区的占用量根据应用的不同而不同,对内部存储区的访问和各类硬件资源的调用存在随机性、连续性和周期性,因此,直接使用DSP本征的单粒子截面可能会低估特定应用下DSP的抗单粒子性能。
在电子系统中,DSP的典型应用可抽象为图 1所示的流程,可能存在多次数据处理、缓存和执行流程。
图1 DSP典型功能执行流程Fig.1 Flow of typical function execution of DSP
DSP的内部存储区占电路面积最大,因此在执行各类计算的过程中,如果存储区中缓存的数据发生单粒子翻转,可能会导致数据处理错误,继而引起后级相关的执行错误,如接口输出错误等。该类故障会在缓存数据被刷新后自动恢复。而程序存储区数据位翻转、电路模块功能故障或中断造成的程序跑飞、指令不响应及接口功能失效等故障需要通过热复位或上电复位才能恢复。2类故障的产生机理和表征模式均不相同,为此,将前者定义为电路的单粒子功能性瞬态故障(single event functional transient fault,SEFT),后者仍为传统意义上的单粒子功能中断故障。当前,对于DSP特定应用下的单粒子功能故障研究及故障的进一步细化分析未见报道。进一步细化功能故障,结合DSP的应用功能、占用资源及本征截面共同评估特定应用下的DSP抗单粒子性能,可为DSP在航天应用中的精细化选型和针对性加固提供重要依据。
DSP的内部存储区数据位翻转截面可通过辐照实验获取,表示为
(1)
其中,n为实验测量得到的数据位翻转数,N为存储区容量,Φ为入射粒子的累积注量。
单粒子功能性瞬态故障截面可分为集成电路的功能性瞬态故障截面和电路中某个功能的功能性瞬态故障截面。设功能k累计测量到的单粒子功能性瞬态故障数量为qk,则功能k的功能性瞬态故障截面定义为
(2)
整个电路检测到的单粒子功能性瞬态故障总数为q,功能总数为K,则DSP的功能性瞬态故障截面定义为
(3)
2 功能性瞬态故障截面预估方法
在分析集成电路内部存储区数据位翻转截面和功能性瞬态故障截面关系之前,需要先设定4个前提条件:一是存储区数据位翻转为独立随机事件;二是为简化概率计算而假设内部存储区数据位翻转截面趋于0;三是不考虑数据计算中的纠错,只要有一位与该功能相关的数据位发生翻转,即会引起数据计算或执行错误,对于纠错方法,可在系统级抗单粒子性能评估中通过统计学方法对预估结果进行扩展;四是在数据量不大的情况下,某一功能只考虑一次数据位翻转引发的功能性瞬态故障,不考虑逻辑位多位翻转和单一地址多次翻转的情况。
将某一数据位从被刷新到被访问的时间定义为数据位有效时间t,将该数据位从被刷新到下一次被刷新的时间定义为t′,有t (4) 当功能k内有Qk个数据位的时候,单位时间内功能k发生功能性瞬态故障的概率为 (5) 定义数据位缓存时间有效占比 (6) 功能k的功能性瞬态故障截面为 (7) 电路所有功能总的数据位为Q时,其功能性瞬态故障截面为 (8) 即某一功能的功能性瞬态故障截面等于内部存储区数据位翻转截面乘以该功能下所有数据位缓存时间有效占比之和;整个集成电路的功能性瞬态故障截面等于内部存储区数据位翻转截面乘以配置程序用到的所有数据位缓存时间有效占比之和。 为验证功能性瞬态故障截面预估方法有效性,在XiPAF上开展了DSP质子辐照实验,实验选取的质子能量为60 MeV,注量率为3.3×106cm-2·s-1。 DSP型号为德州仪器公司的TMS320C6455。该电路是一款高性能单核定点数字信号处理器,采用C64X+TM内核,基于德州仪器开发的第三代VelociTITM超长指令字结构开发,主频可达1 GHz,指令周期1 ns,每周期执行8条32位指令,最大峰值速度8 000 Mbit·s-1,线程为90 nm。器件内部集成大容量两级存储系统,L1P和L1D为32 Kbit,L2为2 Mbit,均可以映射到存储空间。外围接口方面,集成有多通道缓冲串口(multichannel buffered serial port,McBSP)、64位通用定时器(TIMER)、32位主机接口(host-port interface,HPI)、通用输入输出端口(general-purpose input/output,GPIO)及外部存储器接口(external memory interface,EMIF)等。 开展质子实验时,采用2种辐照偏置,分别为静态偏置和动态偏置。静态偏置是指DSP处于主机接口加载模式下的上电初始状态,此时可通过主机接口访问DSP的内部存储区数据,进行内部存储区数据位翻转截面测量。动态偏置是指DSP处于运行特定应用的状态,该应用程序模拟数据处理和缓存的典型功能,运行频率为1 GHz。动态偏置的典型程序为2个256点快速傅里叶变换(fast Fourier transform,FFT)计算程序,计算框图如图2所示。 (a) No.1 计算程序1首先进行各类配置和初始化工作,包括使能并配置McBSP、EMIF及锁相环;然后,计算时域波形和FFT旋转因子时域波形由6个余弦波叠加而成,缓存在一个大小为256的数组中;之后,进行FFT计算,将得到的幅度谱前128个数据填充到数组Magn [1920][128]中,完成数组Magn [1920][128]的初始化;最后,再次执行FFT计算,将计算得到的幅度谱前128个数据填充到数组Magn[k][128]中,并将数组Magn[k+1][128]的数据通过McBSP和EMIF不断发送至测试系统,在累加k后,循环执行该操作,不断输出数据。计算程序中的M值对应数据缓存量。 计算程序2和计算程序1相似,不同的是缓存计算结果的数组有2个,分别是Magn_1[960][128]和Magn_2[960][128]。2个数组交替填充和发送数据,在顺序填充数组Magn_1[960][128]的时候,通过McBSP和EMIF顺序发送数组Magn_2[960][128]的数据。 发送的数据定义为数据帧,数据帧中至少出现一位数据错误,认为对应的功能出现一次单粒子功能瞬态故障。针对计算程序1,将数组Magn[1920][128]第k行的计算、缓存及发送过程定义为功能k,如图3所示。针对计算程序2,将数组Magn_j[1920][128]第k行的计算、缓存及发送过程定义为功能k_j,如图4所示。由图3和图4可见,计算程序1的数据位有效占比约为1,计算程序2的数据位有效占比约为0.5。 图3 FFT计算程序1功能定义Fig.3 Function definition for FFT Program No.1 图4 FFT计算程序2功能定义Fig.4 Function definition for FFT Program No.2 利用示波器观察发现,每一次FFT计算得到128个数据并写入缓存需要的时间约为548 μs,通过McBSP将这些数据输出需要的时间约为1 174 μs,通过EMIF将这些数据输出需要的时间约为136 μs,共计约1 858 μs。为了对功能性瞬态故障截面计算方法进行有效验证,针对不同的M值,设计了4组实验,实验设计参数如表1所列。 表1 实验设计参数Tab.1 Design parameters of experiment 利用自研的测试系统对实验器件进行了在线测试。测试系统由控制计算机、测试板(包括数字板和电源板)及辐照板组成,实验布局如图5所示。 图5 质子实验布局Fig.5 Layout of proton experiment 控制计算机用于测试控制与测试数据接收;辐照板上安装有实验器件,并通过拨码开关对部分实验器件IO引脚上拉或下拉实现实验器件的上电初始化设置,实验器件的上电加载模式设置为HPI加载;电源板为实验器件供电,监测闭锁事件,并与实验器件的HPI、McBSP及EMIF相连,对实验器件进行功能测试。 静态偏置下利用测试系统进行数据位翻转测试,动态偏置下进行接口测试。静态偏置下,测试板在辐照前通过主机接口对实验器件L2存储区填充数据,辐照时循环回读数据,并与预期数据进行比较,记录错误数据,实现数据位翻转测试。翻转测试结果用于计算被测器件的内部存储区数据位翻转截面。动态偏置下,测试板在辐照前通过HPI对实验器件配置计算程序,辐照时连续监测实验器件McBSP和EMIF的输出数据,并与预期数据进行比较,验证实验器件是否出现数据帧错误、程序跑飞及不响应等现象,实现接口测试。 动态偏置下,接口测试的故障类型根据失效现象可分为功能中断和数据帧错误。功能中断一般表现为程序跑飞和接口无输出等情况,数据帧错误表现为实验器件接口时序输出正常,但是输出数据与预期数据不符,这可能是计算错误导致,也有可能是外围接口功能故障导致。当出现功能中断或连续出现错误数较多的数据帧错误时(错误数阈值由测试人员根据实际情况设定),测试系统将自动重新配置实验器件并进行测试。 静态偏置下,数据位翻转数随质子累积注量的增加呈线性变化,质子注量累积到1×109cm-2时,测量得到的数据位翻转数为671个,L2存储区为2 Mbit,利用式(1)计算得到内部存储区数据位翻转截面为 根据统计分布规律和质子注量不确定度,计算得到内部存储区数据位翻转截面相对测量不确定度在95%置信度下为11%[13]。 动态偏置下,4组实验各监测了约15万帧数据,检测到几十到几百个功能性瞬态故障,同时监测到了接口功能中断和错误数较多的连续非致命故障。 第4组实验检测到接口功能中断2次,表现为接口没有数据输出和测试系统等待数据超时,被测器件重新上电复位并加载计算程序后功能正常,接口数据输出正常。由于2个接口同时出现功能中断,因此接口故障的可能性较小,分析认为这一现象是程序存储区发生数据翻转进而造成程序跑飞,或是CPU内核发生了单粒子功能中断造成的。 第2、3、4组实验各检测到错误数较多的连续非致命故障2次、3次、3次,其中,第2组实验第1次故障表现为McBSP输出的高16位数据出错,低16位数据和外部存储器接口监测结果正常,分析认为是McBSP功能模块部分功能失效造成的;第2组实验第2次、第3组实验第2、第3次故障表现为连续数据帧错误不同,但2个接口的同一帧数据错误相同,表明程序运行正常,外设接口功能正常,分析认为这一现象是数据存储区控制器发生功能故障,CPU访问缓存数据发生错误造成的;第3组实验第1次和第4组实验全部3次故障表现为连续数据帧错误相同,分析认为这一现象是时域波形及旋转因子等缓存常量发生翻转引起的。针对这些现象,还需要进一步结合数字信号处理器的组成结构和工作原理,通过优化实验方案及故障注入等手段进一步深入研究其产生机理。 其他检测到的数据帧错误中,每帧数据均只有1个数据位发生翻转,且McBSP和EMIF检测到的帧错误是相同的,分析认为是功能性瞬态故障,即数据位在缓存期间出现了单粒子翻转。实验结果如表2所列,其中,W是数据帧监测次数,q为监测到的整个电路的单粒子功能性瞬态故障总数。 表2 功能性瞬态故障测量结果Tab.2 SEFT test results 根据功能性瞬态故障截面的定义,针对实验器件加载的计算程序,某一功能k的功能性瞬态故障截面为 (9) 每一个功能缓存的数据为128个32位有符号整形,因此Qk等于4 096,从而可以根据每组实验设定的M值得到被测器件所有功能总的数据位Q。利用式(7)可通过内部存储区数据位翻转截面预估某一功能的功能性瞬态故障截面,并利用式(8)可预估整个电路的功能性瞬态故障截面。通过实验测量值计算得到的功能性瞬态故障截面和通过内部存储区数据位翻转截面预估的功能性瞬态故障截面如表3所列。 表3 功能性瞬态故障截面的实验值和预估值Tab.3 Experimental and estimated results of SEFT cross section 根据统计分布规律和质子注量不确定度,给出了95%置信度下的相对测量不确定度[13]。由表3可知,实验测量值和基于内部存储区数据位翻转截面的计算值相对偏差小于5%,验证了基于内部存储区数据位翻转截面和数据位缓存时间有效占比预估功能性瞬态故障截面的方法的有效性。 本文针对单粒子效应引起的DSP功能性瞬态故障,提出了利用DSP内部存储区数据位翻转截面和数据位缓存时间有效占比预估功能性瞬态故障截面的方法,该方法可在仅开展静态偏置实验的情况下,预估DSP功能性瞬态故障截面,降低了实验量和实验成本。在XiPAF上开展了DSP质子辐照实验,得到的功能性瞬态故障截面与通过预估方法计算得到的截面相对偏差小于5%,验证了预估方法的有效性。预估方法表明,数字信号处理器的功能性瞬态故障截面与缓存数据量和数据位缓存时间有效占比有关,与单次运行的绝对时间无关,数据量越大,缓存时间有效占比越大,功能性瞬态故障截面越高。由于DSP功能中断主要有指令集的位翻转引起程序跑飞、配置寄存器翻转造成功能失效、数据常量翻转造成永久性计算错误和各硬件模块的本征功能中断等情况,与内部存储区数据位翻转有着重要关系,因此功能性瞬态故障截面的预估方法也可以应用到功能中断截面的预估中。3 质子辐照实验
3.1 实验器件
3.2 辐照偏置
3.3 测试方法
4 实验结果与分析
5 小结