您的当前位置:首页正文

微小卫星星载计算机存储容错技术研究

2023-03-16 来源:品趣旅游知识分享网
维普资讯 http://www.cqvip.com 第8期 计算机技术与发展 V.oI_l8 No.8 2 00 8 年8月 COMPUTER TE【 HN0I 0GY AND DEVEL0lPM匮NT Aug. 2008 微小卫星星载计算机存储容错技术研究 孙栓,赵敏,戴维 (南京航空航天大学自动化学院,江苏南京210016) 摘要:结合南京航空航天大学小卫星研制课题,针对数据在星载计算机存储器存储的过程中,由于太空中辐射导致的单 粒子翻转效应(SEU)使存储数据产生错误的现象,提出了采用纠检错技术对该小卫星存储模块进行设计的方法,与硬件系 统相结合,实现小卫星数据存储系统容错。探讨了用VHDL语言实现纠错模块的方法,并最终用FPGA实现。此设计用 modelsim进行了仿真测试,效果良好,同时在小卫星模拟仿真运行过程中,运行正常,多次得到了验证。 关键词:小卫星;容错;检错纠错;FPGA;VHDL 中图分类号:TP302.8 文献标识码:A 文章编号:1673—629X(2008)O8一O148一o4 Research of Fault‘_。Tolerant in RAM of House‘_。Keeping Computer for Small Satellite SUN Shuan,ZHAO Min,DAI Wei (Automation School,Nanjing University of Aeronautics and Astronautisc,Nanjing 210016,Chian) Abstract:Presentsthemethod ofmemory rmx:llueto conquerthefaultITlodein aerospace.An error correction anddetection systemisde- signedforthe small satellite projectedintheNanjingUniversityofAeronautics andAstronautics.This systemisdebuggedinVHDLlna- guage and it finally cCmeS true through F1 method.Modelsim SE is used to simulate this method.and it gives out correct emulating waveform.Asthewhole emulate ofthe lsatellite system runs normallyfor quite alongtime.this proieetis provedto be effcetive. Key words:maall satellite;fault—tolerant;error correction and detection;FI ̄A;VHDL O 引 言 这种错误会影响到计算机系统的运行,该方案对星载 近十几年来,现代小卫星在国际上的发展十分迅 计算机的RAM数据存储进行了容设计,并在小卫星 速。小卫星在通信、军事应用、遥感、空间探测、工程技 研制初期的硬件模拟测试中取得良好效果。 术试验等领域均有不可替代的作用。目前正处于小卫 在星载计算机中,信息都是采用二进制,用一组由 星快速发展的初期,是我国赶上世界最先进技术的最 “0”和…1’组成的数字串表示传输的信息,如用0110 好机遇,如果利用我国现有雄厚的科研实力和研发能 0001表示字符“a”,由于小卫星工作在太空环境中,易 力,必将在新型小卫星的研发上处于世界最先进行列, 受到空间粒子辐射,导致信息在传送和存储过程中,出 为我国航天事业做出新的贡献H J。 现翻转错误,假设翻转发生在第七位,则数据变为 “天巡者”小卫星是南京航空航天大学正在开发研 制的一颗新型微小卫星,鉴于太空环境的主要特征之 0110 0011,其表示的信息变成字符“c”。 为保证传送过程的正确性,需要对通信过程进行 就是辐射,一般的半导体器件都可能受粒子辐射而 产生单粒子翻转效应(SEu),使得星载计算机系统上 差错控制,差错控制常用的方法是线性分组码,常用的 的存储器在太空运行时存储的数据出现小概率错误, 线性分组码有奇偶校验码、海明码、腾原英二码等。奇 偶校验码只能发现错误,不能纠正错误;海明码能发现 和纠正一位错误。 收稿日期:2007—1l—lO 基金项目:南京航空航天大学创新基金资助项目 结合我校小卫星研制前期硬件设计的验证,课题 作者简介:孙栓(1983一),男,山东青岛人,硕士研究生,研究方向 中采用了PC/104作为星务系统硬件仿真平台,该平 为计算机测控系统、小卫星星务系统设计;赵 敏,教授,博士生导 台CPU采用E)(386,16位总线结构的CPU,基于该l6 师,研究方向为自动化测控系统设计、现场总线技术、微小卫星总体 位总线结构,在对海明码扩展的基础上这里设计了一 设计、姿态控制、星务系统研究等。 种能纠正一位错误、发现两位错误的纠错方法。 维普资讯 http://www.cqvip.com 第8期 孙栓等:微小卫星星载计算机存储容错技术研究 ·149· 1海明码 海明码[ ,。】是由Richard Hamming在1950年提出 其伴随矩阵: s=[S0 S1 S2 S3 S4 S5] S0=D0 o D1 o D3 o D4 o D8 o D9 o D10①Dl1 o C0 字ala2a3a4,若增an--位校验位a5,a6,a7,使其成 为字长为7的码字ala2a3a4a5a6a7。设此海明码为C, i-1 1 1 0 1 0 07 H:I 1 1 0 1 0 1 0 I L1 0 1 1 0 0 1J a5=a1 o a2 o a3 a6 a1 o a2 o a4 a7 a1 o a3 o a4 S1:a1 o a2 o a3 o a5 S2=a1 o a2 o a4 o a6 S3:a1 o a3 o a4 o a7 表1 伴随向量和出错位置对应表格 伴随向量 出错 So 无 口1 a6 a5 a4 a3 a2 a1 Sl 0 0 0 0 1 1 1 1 S3 0 0 1 1 0 0 1 1 S4 0 1 0 1 0 1 0 1 2对RAM的纠错 运行差错控制的基本思路是在信息码组中一定规 则地加入校验元,以便在信息读出的时候依靠校验元 来发现纠正错误位。 由于课题中采用的是16位总线的CPU,其数据 信息为16位,要据此构造一种检错纠错编码方式。根 据海明纠错定理,结合线性组码的特点可以构造六位 校验元。传输数据为D0~D15,校验位为C0~C5,则 有 C=[DoDxD2D3D4DsD6D7DsD9D10Dl1D12D13 D14 D15 C0 C1 C2 C3 C4 C5] 校验矩阵为: S1=D0①D2 o D3 o D5 o D6 o D8①Dl1 o D14 ①C1 S2=D1oD2oD4oD5oD7oD9oD12①D15 o C2 S3=D0oD1oD2oD6oD7oD10oDl10D12 o C3 S4=D3oD4oD5oD6oD7oD13oD14①D15 o C4 S5=D8oD9oD10oDl1oD12oD13oD14①D15 o C5 其伴随向量与出错位置的对应关系如表2所示。 表2误差查验表 S0 Sl S2 S3 S4 S5 出错位 1 1 0 1 0 0 Do 1 0 1 1 0 0 Dl 0 1 1 1 0 0 D2 1 1 0 1 0 0 Ds 1 0 1 0 1 0 Dd O 1 1 O 1 O D5 0 1 0 1 1 0 D6 数 0 O 1 1 1 0 D, 1 1 0 0 0 1 D据 s 1 0 1 0 0 1 D9 位 1 0 0 1 0 1 Dl0 0 1 0 1 0 1 DIl 0 0 1 1 0 1 Dl2 1 0 0 0 1 1 D13 0 1 0 0 1 1 DI4 0 0 1 0 1 1 D15 1 0 0 0 0 0 Co 0 1 0 0 0 0 Cl 校 O O 1 O O O C2 验 0 0 0 1 0 0 C3 0 0 0 0 1 0 C4 位 0 0 0 0 0 1 Cs 如若伴随矩阵s数据为表2中数据时,数据错一 位,即可判断相应位,并对之取反,实现自动纠错,例如 数据0101010000001001, 在RAM中保存为 0101010000001001000010,假设由于受空间粒子辐射, 发生单粒子翻转,第一位发生错误,即RAM中的保存 数据变为1 101010000001001000010,在CPU从RAM 中读取数据时,数据先经过检错纠错单元计算其校验 矩阵得到110100,对比表2,可知D0位出错,自动将 D。位取反,于是CPU得到正确的数据 0101010000001001 维普资讯 http://www.cqvip.com 150· 计算机技术与发展 第l8卷 3 RAM纠错的FPGA实现 近些年来,随着FPGA技术的迅速发展,其集成 数据写入过程两个同步时钟周期来完成。 度和性能不断提高,鉴于其速度快、功耗低、占用面积 小等诸多优点,FPGA在航天领域得到了广泛的应用 空间,用FPGA实现自动纠错编码器功能亦是一种趋 势,将会大大降低调试难度,提高处理速度[4-6]。 根据上节所述的纠错编码的原理,在向 写 入数据的时候,将16位的数据写入数据RAM,同时通 过编码器生成的6位校验码,并将其写入校验RAM。 在CPU从RAM中读取数据时,分别从数据RAM和 校验RAM中读出16位数据和6位校验码到缓冲区, 再用数据位重申编码产生校验位,并将新生成的校验 位与原来的校验位做异或运算,得到的结果就是伴随 向量l7J。根据伴随向量的对应表2可查找出数据出错 图1 FPGA配置容错体系框图 位置,将数据的对应位取反就实现了纠错。 针对PC/104仿真平台,利用了Xilinx的Virtex一 5 FPGA实现了RAM区的检错纠错功能,最终该检错 4 Modelsim仿真 通过modelsim仿真环境验证了该检错纠错模块 的功能。当CPU向RAM中写入数据时,数据经过 FPGA编码生成校验位,图2为6个连续时钟向RAM 纠错模块只用一片FPGA实现[引。其体系框图如图1 所示。 中写入6个16位数据时仿真图像-9。图中只给出了 9J关键信号,datain为CPU写入RAM的16位数据, hamout为经过FPGA生成的数据C0 C1 C2 C3 C4 C5 为各位校验位。 操作控制及纠错时序电路是根据来自CPU的 CS,ADS,M/Io等信号产生S1,S0等控制信号。S】= 0,S0=1时,检错纠错电路读取RAN/的数据和校验 码;当S1=1,S0=1时,检错纠 错电路根据读入的数据及校验 码进行纠错操作;当S1=1,S0 :0时,若是读操作,检错纠错电 路输出校验后的数据,若是写操 作则读入需要写入的数据并进 行锁存;当S1=0,S0=0时,检 错纠错电路产生校验码写入 图2纠错单元输入仿真图 在从RAM中向CPU读取数据时,FPGA结合校 RAM存储单元。 其中数据RAM采用2片8位RAM,校验码RAM 验码对数据进行检错纠错,如图3所示,haman为从数 采用1片8位RAM,它们地址线是直接连接到CPU 总线上的,而数据线、片选和读 都是连接在FPGA 上的,控制信号是由检错纠错校验电路模块产生, 据RAM和校验RAM中读出的数据,dataout为纠错后 得到的数据,syn0…5为伴随向量值,ne为1表示无 错误,若sec为1表示出错位在校验码区,若ded为1 表示错误位有2个以上。 RAM数据写入首先要根据CPU读 操作准备要写 入的数据,在写入数据锁存以 后,产生并锁存校验码,然后将 写入数据、校验码和RAM写信 号送出到 ,完成数据写入过 程。RAM数据准备这一步骤由 于可以跟数据校验过程同步进 行,所以可以放在数据校验的周 期中同步进行,因此RAM数据 写入过程可分为校验码产生和 图3纠错单元输出仿真图 维普资讯 http://www.cqvip.com 第8期 孙栓等:微小卫星星载计算机存储容错技术研究 ·151· 5结束语 参考文献: 以上基于PC/104硬件仿真平台的16位存储器 [1]余金陪,杨根庆.现场小卫星技术与应用[M].上海:上海 容错技术,可有效对RAM的存储单元进行纠错检错 科学普及出版社,2004. 处理,消除SEU的影响。 [2]Tang Mmg,Bu—Sung,Yeo Cha卜l<iat,et a1.Dynamic repli- cation algorithms for the multi—tier data gdd[J].Furtire 在整个小卫星仿真模拟过程中,该方法得到了多 GenerationComputer Systems,2005,16(1):21—39. 次很好的验证,可以满足当前的要求。同时将FPGA [3]Kent ST.Logic and computer designfundamentla[M].北京: 引入到整个硬件仿真过程当中,在modelsirn仿真过程 电子工业出版社,1998. 中取得了良好的效果。 [4]Ciletti M D.VerilogHDL高级数字设计[M].北京:电子工 随着H GA在航天领域的广泛应用,采用FPGA 业出版社,2005. 完成整个检错纠错功能也成为一种趋势。当然这种纠 [5]Xilinx,Inc.Virtex—IIPlatformFPGAUserGuide{R].[S. 错设计也有一些不足之处,它要求在存储器中加入 1.J:Xilinx,Inc.,2005. 30%左右的冗余存储器,同时由于检错纠错需要时间, 【6]Wang J J,Katz R B.SRAM Based Re—programmable FP. CPU不得不在存储读写时插入等待周期,从而一定程 GA for Space Applications[J].IEEE Transactions on Nuclear Scinece,1999,18(1):14—20. 度上降低了处理器的性能。 [7]胡谋.计算机容错技术[M].北京:中国铁道出版社, 因此,这里考虑在下一步的工作中将该检错容错 1998. 方法和滞后校验结合起来,允许错误的数据进入处理 [8]陆如新.可编程专用集成电路原理设计和应用[M].北京: 器。这样,处理器在读取数据时就不需要等待检错纠 电子工业出版社,1997. 错的结果,直接从存储器中读取,而数据的校验和纠正 [9]潘松,王国栋.VHDL实用教程[M].成都:电子科技大 滞后于数据的读入。 学出版社,2Oo0. (上接第107页) 3结束语 Dealunay三角剖分[J].计算机辅助设计与图形学学报, 基于有向边的顺序法是针对资源受限平台提出 1999,11(1):1—3. 的,有目的性地选择符合条件的分割边进行分割,避免 [2]杨杰.基于凹凸顶点判定的简单多边形的三角剖分[J]. 小型微型计算机系统,2000,21(9):974—975. 了分割的盲目性。运行效率高,占用资源少,适合手机、 [3]刘强,李德仁.基于二叉树思想的任意多边形三角剖分 PDA等资源受限设备。将其应用到地理信息系统手 递归算法[J].武汉大学学报:信息科学版,2002(5):529— 机终端的设计中,能较好地满足程序需要。同时也能 533. 应用到其他,如手机游戏地图等,需要填充多边形处理 [4]帅小应,廉东本.Java手机多边形处理的研究[J].小型微型 的应用服务中。 计算机系统,2006,27(2):279—281. [5]吴文虎,王建德.实用算法的分析与程序设计[M].北京: 参考文献: 电子工业出版社,1998:80—83. [1]马小虎,潘志庚,石教英.基于凹凸顶点判定的简单多边形 (上接第110页) [2]LiangYM, LS,Li MM,et a1.Afilledfunctionmeth 4结束语 od for global optimization[J].Journal of oCmputational nad 由以上算例仿真结果比较,可以看出文中的算法 Applied Mathematics,2007,205:16—31. [3]Han Qiaoming,Han Jiye.Revised filled fnuction methods for 比文献[2 3无论是在精度上还是在算法结束CPU所用 global optimization[J].Applied Mathematics and Computa— 的时间上更加有效。 tion,2001(119):217—228. [4]YangY J,ShangYL.ANewFilledFunctionMethodforUn- 参考文献: mnstrained Global Optimization[J].Ap ed Mathematics nad [1]Ge Renpu.A iflled function method for ifnding a Global Mini- oCmputation,2006(173):501—512. zer of a flmction several variables【C]//Dundee Biennial [5]Zhang L S,NG C K,Li D,et 1a.A new ifllde fnuction met— conference on numerical analysis.Dundee,Scotlnad:[S.n.], hod for global optimization[J].Global Optim,2001,20:49— 1981. 65. 

因篇幅问题不能全部显示,请点此查看更多更全内容