星用微处理器在轨单粒子翻转率预估方法研究

2012-10-16 06:23
核技术 2012年3期
关键词:故障注入寄存器预估

高 洁 李 强

1 (上海交通大学电子与通信工程学院 上海 200240)

2 (上海航天技术研究院第八○四研究所 上海 201109)

3 (上海航天技术研究院第五○九研究所 上海 200240)

微处理器是卫星核心器件,应用于数管计算机、姿轨控计算机以及有效载荷数据处理设备等,对空间辐射环境中质子、重离子等引起的单粒子效应较为敏感,如单粒子翻转引起数据丢失、指令出错,单粒子闩锁引起功耗电流陡增,甚至造成系统烧毁。国内外多颗卫星在轨运行受到单粒子效应影响[1–3],1983年4月发射升空的美国TDRS-1卫星进入地球同步轨道后,至1993年3月,共发生单粒子效应事件4468次,在1989年10月的太阳耀斑中,该卫星上的单粒子事件探测仪共发生239次单粒子翻转事件;1994年2月发射的我国实践-4卫星每天在轨也探测到3.4次单粒子翻转,该卫星上的单粒子闩锁探测器半年内探测到6次单粒子闩锁事件。

为保证微处理器的空间应用可靠性,国外对微处理器的单粒子效应模拟试验方法及翻转率预估进行了大量研究,应用较广的预估软件有 CRÈME、Space Radiation 5.0等[4]。国外在单粒子效应的飞行试验验证方面也取得较大进展,一些空间飞行试验数据已用于验证地面模拟试验结果。我国在单粒子翻转率预估上主要还是跟踪国外研究成果,如软件编制和计算工作;在运用飞行试验数据验证地面模拟试验结果方面,研究报道较少。

相关模拟试验和在轨监测结果表明,传统的单粒子翻转率预估结果一般是静态单粒子翻转率[5];而微处理器在轨工作时,运行软件决定了内部资源的使用情况;完成的功能不同,得到的在轨单粒子翻转率(动态单粒子翻转率)也不尽相同。因此,须研究星用微处理器的在轨单粒子翻转率与运行程序间的关系,为合理预估在轨单粒子翻转率提供保证。本文运用程序占空比概念研究星用微处理器动态和静态单粒子翻转率间的关系,并结合国外在轨飞行监测数据对典型87C51微处理器的在轨单粒子翻转率预估结果进行分析。

1 星用微处理器动态单粒子翻转率预估

1.1 动态和静态单粒子翻转率的区别

卫星在轨飞行监测数据表明,星用微处理器的动态单粒子翻转率低于 CRÈME、Space Radiation 5.0等标准软件计算得到的静态单粒子翻转率[5]。这主要是程序占空比的影响,即星用微处理器执行工程应用程序时,其内部寄存器和存储器占用数据总线的时间与执行程序所需全部时间的比值[5]。

为预估抗单粒子翻转能力,进行星用微处理器单粒子效应模拟试验时,一般采用类似于SRAM存储器的试验方法,即对微处理器内部所有寄存器和存储器的每个存储字节均写入“55H”或“AAH” 等测试数据,提高资源使用率,保证程序占空比接近100%;标准检测程序统计不同 LET值的重离子或质子辐照下寄存器和存储器存储数据逻辑状态发生翻转的位数,获得σ–LET曲线;根据空间轨道环境和σ–LET曲线计算空间单粒子翻转率。由于程序占空比很高,得到的是静态单粒子翻转率。

虽然微处理器与 SRAM 存储器均属于存储功能器件,但二者在工作方式上存在一定区别。微处理器内部包括CPU寄存器、数据存储器、程序存储器、计数器、串行通讯口等多个功能单元,不同的应用程序执行过程中,这些功能单元的工作状态均存在差异,一般仅使用部分寄存器和存储器,资源使用率小于 100%,未使用到的寄存器和存储器发生单粒子翻转不会对微处理器的正常工作产生影响。因此,模拟试验过程中微处理器执行应用程序时,获得的翻转率即为动态单粒子翻转率。

1.2 动态与静态单粒子翻转率间的转换

理论计算和计算机仿真得到星用微处理器动态与静态单粒子翻转率间的关系为

式中,Rε与R0分别为星用微处理器的动态与静态单粒子翻转率(次/器件·天),ε为星用微处理器寄存器和存储器程序占空比的平均值,可由离子辐照试验、理论模型计算或故障注入模拟等方法获得。

2 单粒子翻转率预估方法应用及在轨飞行数据验证

2.1 应用背景

UoSAT系列卫星是英国 Surrey大学研制的小型试验卫星,第一颗(UoSAT-1)于1981年由NASA成功发射升空。1981–1998 年,Surrey大学共完成14 颗UoSAT系列卫星研制,卫星的指令遥控系统主要由美国Intel公司的87C51微处理器构成[6]。

图1为UoSAT卫星指令遥控系统的原理框图,系统采用 4个 87C51微处理器作为指令译码器(Command Decoder),其中,0#为主机,1#–3#为备份冗余机。系统工作时,首先初始化主板A和主板B上的命令锁存器(Command Latches);完成初始化后87C51执行应用程序,通过串行通讯口接收地面发送的数据,并验证接收到的数据为有效指令帧;将有效指令写入主板上的锁存器,然后通过总线发送给星上其它系统。

图1 采用87C51微处理器构建的UoSAT卫星指令遥控系统原理框图Fig.1 Block diagram of UoSAT satellite command remote control system by 87C51 microprocessor.

2.2 程序占空比ε计算

87C51微处理器共有54个寄存器,包括21个特殊功能寄存器(SFR)、1个程序计数器(PC)及4个通用寄存器组(BANK 0–BANK 3,每组含有8个通用寄存器)。指令遥控程序运行时,主要使用87C51微处理器内部的特殊功能寄存器、程序计数器及 1个通用寄存器组BANK 0。特殊功能寄存器包括累加器 ACC、B寄存器、程序状态字 PSW、堆栈指针SP、数据指针DPTR、中断优先级控制IP、运行中断控制IE、定时器方式控制寄存器TMOD、定时器控制寄存器TCON、串行控制寄存器SCON、串行数据缓冲寄存器SBUF、电源控制寄存器PCON等。利用软件分别计算87C51微处理器运行遥控应用程序时其内部每个寄存器的程序占空比如表1,得到平均值为29%。

2.3 静态和动态单粒子翻转率预估

在地面实验室条件下采用重离子加速器和质子加速器进行辐照试验。辐照过程中87C51微处理器运行标准检测程序,即统计器件内部所有寄存器中存储数据逻辑状态发生翻转的位数;根据翻转位数、重离子或质子注量等计算单粒子翻转阈值及翻转饱和截面,结果如下:(1) 重离子单粒子翻转阈值:LET=2.5 MeV·mg−1·cm−2,单粒子翻转饱和截面:σsat=7.0×10−3cm2/器件;(2) 质子单粒子翻转阈值:20 MeV,翻转饱和截面:σsat=1.0×10−9cm2/器件。

空间环境中的重离子和质子均会引起单粒子翻转。以国际空间站轨道(轨道高度386 km,倾角51.6°)为例,结合试验数据采用Space Radiation 5.0软件分别计算3.5 mm厚的等效铝屏蔽下该轨道上重离子和质子引起的单粒子翻转率,二者相加即为该轨道上87C51微处理器的静态单粒子翻转率,计算结果如下:(1) 重离子引起单粒子翻转率:R1=6.0×10−4次/(器件·天);(2) 质子引起单粒子翻转率:R2=7.1×10−4次/(器件·天);(3) 总的静态单粒子翻转率R=(6.0 +7.1)×10−4×365=0.48 次/(器件·年)。

87C51微处理器执行应用程序时的程序占空比ε为29%,根据式(1),国际空间站轨道上87C51微处理器的动态单粒子翻转率即为0.48×29%=0.14次/(器件·年)。

表1 87C51微处理器运行应用程序时内部所有寄存器的程序占空比Table 1 ε of all registers of 87C51 microprocessor when running application program.

2.4 预估数据与在轨监测数据对比

1990–1995年英国 Surrey大学共发射六颗UoSAT卫星,每颗卫星指令遥控系统中均含有四个87C51微处理器。六颗卫星的轨道高度700 km,倾角98.25°,屏蔽厚度为3 mm Al壳。该轨道的辐射环境与国际空间站轨道相比更易引起单粒子翻转。

根据模拟试验得到的静态和动态单粒子翻转率预估三年在轨运行时间内24个87C51微处理器的静态单粒子翻转率为0.48×24×3=34.6次;动态单粒子翻转率为0.14×24×3=10.0次。

截至1998年12月底,在轨监测数据尚未发现这六颗UoSAT卫星上的24个87C51微处理器发生过单粒子翻转。表明静态单粒子翻转率会过高估计星用微处理器的在轨单粒子翻转率,而结合程序占空比得到的动态单粒子翻转率可对星用微处理器的在轨单粒子翻转率进行更合理的预估。

3 故障注入技术

故障注入技术是通过人为手段将故障引入目标系统中,模拟目标系统实际运行时可能发生的各种故障;通过对目标系统运行情况的观察,分析目标系统故障检测、故障隔离、故障恢复等加固措施的有效性,为完善和改进系统加固设计提供反馈信息[6,7]。故障注入技术分为硬件故障注入和软件故障注入。硬件故障注入是在器件的管脚上强行施加外部信号,使器件发生故障;软件故障注入通过修改内存或寄存器内容来实现,成本较低,无需更改硬件设计,实现方式较为灵活。目前,常见的软件故障注入工具有 FIAT、Ferrari、SFI、FINE、Accelerated Injection 等[8]。

为验证星用微处理器静态和动态单粒子翻转率间的关系,我们采用故障注入法计算星用微处理器的程序占空比,即在星用微处理器执行应用程序时,利用软件工具向其内部的寄存器随机写入一定数量的错误数据,模拟单粒子翻转效应的发生;统计观测到的单粒子翻转位数,程序占空比为:

式中,E0为故障注入时星用微处理器中可观测到的翻转位数,E为注入的故障总数。

87C51微处理器的单粒子效应故障注入系统包括:故障注入机(Fault Injection)、87C51微处理器、翻转效应测试系统(SEU Monitor System)。系统运行时,87C51微处理器执行UoSAT卫星的指令遥控程序;程序运行过程中,故障注入机通过软件算法更改87C51微处理器内部寄存器中的存储数据,所更改的寄存器物理地址、类型、数据等由故障注入机中的软件算法随机给出,模拟87C51微处理器中发生了单粒子翻转效应;通过翻转效应测试系统监测87C51微处理器应用程序执行的情况。

故障注入机共向87C51微处理器内部的寄存器随机写入120位错误数据,测试结果如下:(1) 76%的注入故障未对应用程序的运行产生影响,表明由于注入故障而发生单粒子翻转的寄存器在应用程序运行过程中没有被使用;(2) 24%的注入故障对87C51微处理器应用程序的运行产生影响,其中:36%的单粒子翻转引起微处理器出现死机现象,需通过重新上电复位才能恢复运行;64%的单粒子翻转导致微处理器发送错误指令。

故障注入模拟试验中,注入的故障总数可认为是87C51微处理器运行标准检测程序时能统计到的所有翻转位数,即发生静态单粒子翻转;而对应用程序运行产生影响的故障数(观测到的翻转位数)可认为是动态单粒子翻转。因此,根据式(2),利用故障注入模拟试验得到的程序占空比为24%,与通过专用软件工具计算得到的29%较接近,表明通过故障注入模拟试验可较好得到程序占空比,故障注入法是一种合理、灵活、操作方便的动态单粒子翻转率预估方法。

4 抗单粒子翻转加固方法初探

为保证卫星电子系统在轨可靠工作,需对星用微处理器进行抗单粒子翻转加固设计,提高电子系统的抗单粒子翻转性能。现有方法主要是降低微处理器的程序占空比,或采用重载、刷新、EDAC校验等纠错方法。如我国FY-1气象卫星上所用80C86微处理器进行了软件加固设计,并利用重离子加速器对加固后的微处理器进行辐照试验,验证加固效果。试验结果表明,加固后的软件对单粒子翻转的纠错率达到 85%以上。文献[5]指出,软件加固前BX1750A星用微处理器在轨不发生单粒子翻转的概率仅为 62.3%,而采用定时重载和刷新等措施加固后该微处理器在轨不发生单粒子翻转的概率可提高至 97.7%。表明软件加固设计可有效提高星用微处理器的抗单粒子翻转性能。

5 结语

本文运用程序占空比概念研究了星用微处理器静态和动态单粒子翻转率间的关系,对典型87C51微处理器的单粒子翻转率进行了预估,并与在轨飞行监测数据进行了对比,结果表明,动态单粒子翻转率可对星用微处理器的空间单粒子翻转率进行更加合理的预估;最后采用故障注入技术验证了采用程序占空比预估空间单粒子翻转率的准确性。

随着空间技术的发展,FPGA、DSP等新型处理器逐渐在卫星电子系统上大量使用。这些器件均是单粒子效应敏感器件,后续工作中我们将以这些典型新型处理器为对象,开展单粒子翻转率预估方法及加固技术研究,为卫星电子系统抗辐射加固设计技术的逐步完善提供基础数据支持。

1 薛玉雄, 曹 洲, 杨世宇, 等. IDT6116 单粒子敏感性评估试验技术研究[J]. 原子能科学与技术, 2008, 42(1):22-27 XUE Yuxiong, CAO Zhou, YANG Shiyu,et al. Study on IDT6116 single event effect sensitivity evaluation testing technology[J]. At Energy Sci Technol, 2008, 42(1): 22-27

2 刘 刚, 赵发展, 韩郑生. 宇航用电子元器件单粒子辐照技术[R]. 第十届全国抗辐射电子学与电磁脉冲技术年会论文集, 2009: 214-216 LIU Gang, ZHAO Fazhan, HAN Zhengsheng. The Space with electronic components single particle irradiation technology[R]. Tenth national resist radiation electronics and electromagnetic pulse technology conference proceedings, 2009: 214-216

3 杨兆铭. 单粒子效应对航天器的威胁及空间飞行试验研究[J]. 真空与低温, 1995: 1(1): 46-58 YANG Zhaoming. A Survey of threats of SEEs to spacecrafts and their spaceflight results[J]. Vacuum Cryog,1995, 1(1): 46-58

4 贺朝会. 空间轨道单粒子翻转率预估方法研究[J]. 空间科学学报, 2001, 21(3): 266-273 HE Chaohui. Study of methods for predicting SEU rate in space orbits[J]. Chinese J Space Sci, 2001, 21(3): 266-273

5 李 强, 高 洁, 刘伟鑫. 星用微处理器抗单粒子翻转可靠性预示方法研究[J]. 核技术, 2010, 33(11): 832-835 LI Qiang, GAO Jie, LIU Weixin. An SEU reliability prediction method for microprocessors of space applications[J]. Nucl Tech, 2010, 33(11): 832-835

6 Underwood C I, Oldfield M K. Observed radiationinduced degradation of commercial-off-the-shelf (COTS)devices operating in low-earth orbit[J]. IEEE Trans Nucl Sci, 1998, 12(3), 2739-2740

7 Tang D. Dependability measurement and modeling of a multicomputer system[J]. IEEE Trans Comput, 1993,42(1): 62-74

8 Clark J A, Pradhan D K. Fault injection: a method for validating computer-system dependability[J]. IEEE Trans Comput, 1995, 28(6):47-56

猜你喜欢
故障注入寄存器预估
美国银行下调今明两年基本金属价格预估
模拟训练装备故障注入系统研究
STM32和51单片机寄存器映射原理异同分析
Lite寄存器模型的设计与实现
SM4算法前四轮约减轮故障注入分析
采用修改-回放原理的1553B故障注入方法
列车MVB总线故障注入研究
史密斯预估控制在排焦控制中的应用
高速数模转换器AD9779/AD9788的应用
一种可重构线性反馈移位寄存器设计