APP下载

轻量级计算机内存软件巡检技术

2016-06-04张翼飞赵宇翔张东伟张善从

载人航天 2016年3期
关键词:巡检计算机

张翼飞,赵宇翔,张东伟,张善从

(1.中国科学院光电研究院,北京 100094; 2.中国科学院大学,北京 100049;3.北京国科环宇空间技术有限公司,北京 100190; 4.国防科技大学, 长沙 410073;5.中国科学院空间应用工程与技术中心,北京 100094)



轻量级计算机内存软件巡检技术

张翼飞1,2,3,赵宇翔4,张东伟1,张善从5

(1.中国科学院光电研究院,北京 100094; 2.中国科学院大学,北京 100049;3.北京国科环宇空间技术有限公司,北京 100190; 4.国防科技大学, 长沙 410073;5.中国科学院空间应用工程与技术中心,北京 100094)

摘要:针对软件单粒子效应防护问题,介绍了一种轻量级软件加固方法。该方法采用软件内存巡检技术,在不增加额外的设备硬件开销的情况下,检验并纠正CPU内存单粒子翻转,提升设备可靠性。该技术实现简单,系统资源消耗小,只需在已有程序的基础上进行少量代码添加,就可以实现软件加固,对已有代码修改量小。利用了系统中CPU空闲率高的特点,只在CPU空闲时对内存进行巡检,不会干预软件正常功能的运行。试验和在轨运行结果表明,该技术可以有效检测到内存中出现的单粒子异常事件,对原软件任务的功能性能指标没有影响。

关键词:计算机;软件加固;单粒子效应;巡检

1引言

目前计算机作为主要的控制系统广泛地应用于航天领域,但由于太空中高能粒子辐照强度较高,其射入集成电路时会导致电路逻辑状态发生翻转,引发计算机系统故障。为提高航天器中计算机系统对由于粒子辐射导致系统故障的抵抗能力,可以通过对硬件与软件的改进来提高计算机系统的抗单粒子能力。

硬件加固主要有使用抗辐照加固的器件、使用三模冗余TMR[1]、使用有ECC[2]纠错的内存结构等途径提高计算机系统的抗单粒子能力,但采用硬件加固的计算机系统价格比同等功能的计算机系统高出数倍,且抗辐照芯片须专门采购,来源受限。所以越来越多的系统采用软件加固方法提高计算机系统的抗单粒子能力。

软件加固是通过复算、冗余、纠错码等方式提高计算机系统的抗单粒子能力。近年的研究表明,计算机系统中80%~90%的失效是由单粒子翻转(SEU)引起的瞬态故障产生的[3],瞬态故障可以通过软件算法检测并纠正。

本文针对计算机系统内存和寄存器瞬态故障提出一种软件内存巡检技术加固方法,该方法实现简单,系统资源消耗小,对不同系统有较好的适应性。

2轻量级软件内存巡检技术

2.1设计原理

通常,数据被使用前检查数据的正确性既可以减少重复的无效检查,又可以最大程度地确保数据的正确性。但在计算机系统运行过程中,在某个任务到来时检查数据的正确性,会严重影响计算机系统对任务的响应速度,尤其是尝试检查正在被使用的数据,这对航天高实时系统的影响尤为严重。因此,我们采用在系统CPU空闲时,数据不被使用的时候去检查数据的正确性。

软件内存巡检技术的检错原理是基于在一个短的时间片内,大部分内存区的值都是固定不变的这一特性,周期性地计算各个内存区域的校验和,通过比较同一区域前后两次的校验和,检测内存是否因瞬态故障被非正常的改写。

2.2实现原理

图1 对单个区域的巡检流程Fig.1 Flow chart of the single area inspection

在软件内存巡检过程中,我们选择一段连续的内存空间称为“巡检区域”。通常每个巡检区域的数据只会被一个或几个确定的进程修改,如各个进程的栈区、进程公用的全局数据段、代码段等。图1是对某个巡检区域的巡检流程,首先计算一次将要被巡检的巡检区域校验和,并将校验和保存。在一段时间后(这段时间可以用来计算其他巡检区域的校验和),再次计算该巡检区域的校验和,并与上次计算的校验和进行比较。比较前先通过进程执行次数判断该巡检区域在两次校验之间是否有被正常改写的可能性。如果在两次巡检之间,该巡检区间被调用,那么本次检测被跳过,称本次巡检为无效巡检;如果两次计算校验和之间,没有任何可能修改该巡检区域的进程被调用,称本次巡检为“有效巡检”。两次有效巡检的校验和如果不相等,说明巡检区域出现了异常改写。无论何种情况,都保存后一次的校验和用来进行下一次比较。

图2 多区域巡检流程Fig. 2 Flow chart of the multi-area inspection

对于多个巡检区域的巡检,只需周期性地计算各个巡检区域的校验和,然后分别与各自上次计算的校验和进行比较,如图2所示。 对于三个进程栈T1、T2、T3,进程栈T1在前两次校验之间被使用过,所以对第一次T1进程栈的巡检为无效巡检。进程栈T2在3次巡检时都未被使用过,所以前两次巡检都为有效巡检。

通常单粒子在短时间内不会同时击中同一巡检区域两次,我们假设击中每个存储位的概率相同,则软件内存巡检技术在时间段T内发现错误的概率P1=有效巡检次数an/总的巡检次数sn。

3试验验证

3.1地面实验

地面实验主要用于验证加固的有效性,并确认加固技术对程序原有功能和性能的影响。软件内存巡检技术的地面试验是在硬件环境与目标载荷完全相同的设备上进行的,目标载荷处理器为TI公司的DSP C6203处理器,该处理器使用哈佛结构,处理速率约1600 MIPS,片内代码内存256 KB,数据内存512 KB,设备未挂载其它内存[5]。

地面试验中,被测程序进程数9个,代码段1个,全局数据区1个。进程栈总计15 616 B;由于校验速度所限,过于频繁的校验代码段会严重影响其他数据的巡检工作,所以代码段校验频率被设定为堆栈区的1/10;全局数据区只巡检固定的2 KB。

地面试验的统计结果见表1:

表1 地面试验结果

从表1中可以看出,大部分进程栈区的检错效率都在90%以上。8号进程为进程中运行频率最高的进程,频率为100次/秒,该进程的检错效率为82.93%。15号进程、17号进程与22号进程为外部事件驱动的进程,15号进程、17号进程在开机后没有收到指令时,进程处于挂起状态,检错效率为100%;22号进程指令的接收频率非常低(相对于巡检的速度来说),检错效率为99.98%。代码段数据维持不变,检错效率为100%。2 KB的全局数据区是关键数据,更新频率较慢,检错效率为93.70%。

经地面验证,加固技术对错误的检查确实有效,对程序原有的功能和性能无影响。

3.2在轨试验

采用该技术的软件于2014年12月上传至在轨航天器进行在轨试验,截止2015年3月10日,共检测到两次异常,检测到的错误函数编号通过遥测量下行至地面。分别为一次代码段错误,一次全局数据错误。

4结论

本文提出的软件内存巡检技术内存空间占用量很小,只在原有计算机系统CPU空闲时使用CPU资源,对原软件任务的功能性能指标未产生影响,达到了软件内存巡检技术轻量化的目的。

通过地面试验和在轨验证证明,软件内存巡检技术可以有效检测到内存中出现的单粒子异常事件,证明了该方法的正确性与有效性,是一种实用性较强的软件加固技术。

参考文献(References)

[1]Rollins N, Wirthlin M, Caffrey M, et al. Evaluating TMR techniques in the presence of single event upsets[C]//Proceedings of the 6th Annual International Conference on Military and Aerospace Programmable Logic Devices (MAPLD). Washington, DC: NASA Office of Logic Design, AIAA. 2003: P63.

[2]Reis G A, Chang J, Vachharajani N, et al. SWIFT: Software implemented fault tolerance[C]//Proceedings of the international symposium on Code generation and optimization. IEEE Computer Society, 2005: 243-254.

[3]Clark J, Pradhan D K. Fault injection: A method for validating computer-system dependability[J]. Computer, 1995, 28(6): 47-56.

[4]Oh N, Shirvani P P, McCluskey E J. Control-flow checking by software signatures[J]. Reliability, IEEE Transactions on, 2002, 51(1): 111-122.

[5]SMJ320C6203 DSP[M/OL]. Texas Instruments,2002. (2002)[2015]. http://www.ti.com.cn/cn/lit/ds/symlink/smj320c6203.pdf.

Lightweight Memory Inspection Technology for Software in Computer System

ZHANG Yifei1,2,3, ZHAO Yuxiang4, ZHANG Dongwei1, ZHANG Shancong5

(1.Academy of opto-electronics, Chinese Academy of Sciences, Beijing 100094, China; 2.University of Chinese Academy of Sciences, Beijing 100049, China; 3.Beijing UCAS Space Technology Co.,Ltd,Beijing 100190, China;4.National University of Defense Technology,Changsha 410073, China; 5.Technology and Engineering Center for Space Utilization, Chinese Academy of Sciences, Beijing 100094, China)

Abstract:This article introduced a lightweight software reinforcement method for single event effect protection technology. The “Software Memory inspection technology” was adopted in this method to test and correct the single event upsets in CPU memory without additional equipment hardware expenditures so as to improve the reliability of the equipment. The protection technology has achieved the goal of both simplicity and small consumption of system resources. It s a lightweight error detection technology. Software engineers only need to add a small amount of code on the basis of the existing code before the achievement of this protection technology. Thereby the modifications to the existing code were reduced. The protection technology utilized the characteristic of the high vacancy rate of CPU in the system. It only inspected the memory when CPU was idle, without interfering with the normal function of the software. The testing experiment and on-orbit operation showed that using the protection technology did not affect the functions and performances of the original software tasks and could meet the requirements of the system running.

Key words:computer; software protection; single event effect; software memory inspection

收稿日期:2015-05-12;修回日期:2015-10-09

作者简介:张翼飞(1987-),男,硕士研究生,研究方向为计算机技术。E-mail:khalim@126.com

中图分类号:TP315

文献标识码:A

文章编号:1674-5825(2016)03-0368-03

猜你喜欢

巡检计算机
计算机操作系统
穿裙子的“计算机”
基于计算机自然语言处理的机器翻译技术应用与简介
计算机多媒体技术应用初探
信息系统审计中计算机审计的应用
基于NFC技术的智能巡检系统设计
变电站设备巡检中无人机的应用与探析
对电缆隧道运行中巡检机器人技术的研究
无人机巡检输电线路技术的应用分析
计算机网络安全