文献标识码: A
DOI:10.16157/j.issn.0258-7998.2016.10.010
中文引用格式: 董亮. 基于OLS码的检错纠错抗辐射加固设计[J].电子技术应用,2016,42(10):44-46.
英文引用格式: Dong Liang. Design of radiation hardened error detection and correction circuit based on OLS code[J].Application of Electronic Technique,2016,42(10):44-46.
0 引言
随着集成电路的进步,存储器越来越容易受到由来自地面和太空环境中辐射粒子影响引起多单元翻转(Multiple Cell Upsets,MCUs)。MCUs可以导致存储器存储数据的错误而引起系统失效。因此,需要对存储器进行抗辐射加固设计[1-3]。
目前,(n,k)错误纠错码(Error Correction Codes,ECCs)是存储器中常用的容错技术,其中n是码长,k是信息位的个数。ECC加固技术是在存储字的基础上增加了冗余位用以检测和纠正存储器中发生的错误翻转。因此,ECC故障容错系统需要额外的编码和译码电路;而其编码和译码电路的复杂度又决定了自身的纠正能力和硬件的复杂度[4-6,12]。
汉明(Hamming)码是最常用的ECC码,它可以用非常少的硬件开销来纠正存储器中的错误。但是,它只能对单个错误进行纠正,对两个错误进行探测。随着器件工艺尺寸的不断减小,存储器中发生多个错误的概率也越来越高。因此,Hamming码已经不适合用来对存储器进行抗辐射加固保护,而需要寻找使用纠正能力较高且额外电路对存储器性能影响较少的其他ECC码来对存储器进行抗辐射保护[7]。
在本设计中,使用了基于正交拉丁方的正交拉丁方(OLS)码来对存储器进行抗辐射的加护设计。使用OLS码的原因是它属于一步大数逻辑可译(OS-MLD)码,可以使用简单的大数逻辑译码电路来进行多位MCUs的纠正。
1 正交拉丁方(OLS)码
正交拉丁方是指两个拉丁方在同一位置上的数依次配置成对时,如果这两个有序数对恰好各不相同,则称这两个拉丁方互为正交拉丁方。OLS码正是在此基础上来构成的[8-9]:对于纠正能力为t的OLS码,其奇偶校验矩阵H如下式所示:
根据上述这些式子可以得到具有m2个信息位、2tm个奇偶校验位和纠正能力为t的OLS码奇偶校验矩阵H的具体结构。本设计中构造的OLS的参数有:信息位k=72=49、阶数m=4、纠正能力t=2以及冗余位2tm=28。因此,构造的OLS码是一个(77,49)码。构造这样的OLS码选择了如下两个拉丁方:
接着,按照式(1)~式(7),即可设计出(77,49)OLS码的奇偶校验矩阵H,如图1所示。
使用(77,49)OLS码构造的故障容错系统如图2所示。将信息位通过OLS码的编码器进行编码后存储在存储器中;在读出的时候,如果保存的码字有错误,通过OLS码的译码器后,可以纠正这些错误,从而保证了存储器中数据的正确性。
设计的(77,49)OLS码编码器可以由输入向量与生成矩阵执行向量乘法来得到,如图3所示,因此只需要进行简单的异或运算即可。OLS码由于其在纠正任意错误时都满足一步大数逻辑译码的条件,因此,其译码方式将采用一步大数逻辑译码的方式。(77,49)OLS码译码器如图4所示,主要有异或门和大数逻辑门来构成进行并行译码。大数逻辑门通过对五个正交校验和Ai进行大数表决[5]:如果正交校验和Ai中的多数为1则输出1;反之,则输出0。
2 功能验证及结果分析
本设计构造的OLS码由Verilog硬件描述语言来实现,采用的功能验证工具是Mentor公司开发的ModelSim模拟器。首先,假设要将两个49位的数据063b7697f8f82和11eef0f387f7d存储在存储器中;当完成编码操作后,分别获得了063b7697f8f8266c2421和11eef0f387f7d79c526c这样的两个码字,如图5(a)所示,并将其分别存在存储器的两个字中;然后,进行故障注入,先假设存储的这两个字分别发生了一个错误,即分别变成了063b3697f8f8266c2421和11eef0f307f7d79c526c这两个码字,经过OLS译码器后,能够获得正确的输出值063b7697f8f82和11eef0f387f7d,如图5(b)所示;最后,假设存储的这两个字分别发生了两个错误,即分别变为1e3b7697f8f8266c2421和13eed0f387f7d79c526c这两个码字,在经过编码器译码后,也可以获得正确的码字,如图5(c)所示。模拟验证结果证明了构造的(77, 49) OLS的错误纠正功能是正确的,且可以应用于对存储器的抗辐射加固保护。
3 结论
应用于辐射环境下的存储器需要进行抗辐射加固来提高其可靠性能。本设计使用了正交拉丁方码来对存储器进行加固,使其能够纠正存储器中多位的MCUs。由于正交拉丁方码是根据正交拉丁方来构造的,因此它的纠正能力是可调的(在其生成矩阵中加入多个正交拉丁方即可实现纠正能力的提高),这对于复杂环境下的应用是非常重要的。本设计使用简单的异或电路设计了(77,49)OLS码的编码器,而且使用一步大数逻辑纠正译码来对其进行译码。实验结果表明,对构造的OLS码进行编码和译码的故障注入,发现其可以对存储器中的多个错误进行纠正,从而验证了该故障容错设计系统的有效性。
参考文献
[1] Daniele Radaelli,Helmut Puchner,Skip Wong,et al.Investigation of multi-bit upsets in a 150 nm technology SRAM device.IEEE Trans.Nucl.Sci.,Dec.2005,52(6):2433-2437.
[2] 易伟,徐欣,聂洪山.一种NAND Flash存储器抗辐射加固方法[J].微处理机,2011,32(6):8-11.
[3] 董文杰,孟景,林金永,等.控制系统抗辐射加固设计知识管理系统的构建[J].航天工业管理,2015(5):42-43.
[4] 黄繁荣,贺显红.星载测控应答机抗辐射加固与可靠性平台研究[J].遥测遥控,2015,36(5):68-74.
[5] 徐鑫龙.抗辐射SRAM测试系统的设计与实现[J].中国集成电路,2016,25(3):52-55.
[6] 袁雅婧,赖晓玲,朱启,等.星载数字ASIC抗辐射加固设计与实现方法[J].空间电子技术,2015(6):41-44.
[7] Pedro Reviriego,Mark Flanagan,Juan Antonio Maestro.A(64,45) triple error correction code for memory applications.IEEE Trans.Device Mater.Rel.,Mar.2012,12(1):101-106.
[8] HSIAO M Y,BOSSEN D C,CHIEN R T.Orthogonal latin square codes,IBM J.Res.Develop.,1970,14(4):390-394.
[9] 杨刘洋,吕翔.一种基于正交拉丁方序列和光正交码的二维光正交码MOLS/OOC[J].浙江师范大学学报(自然科学版),2014,37(4):437-445.
[10] 宋丽丽,来逢昌,肖立伊.32×32位三端口寄存器堆的加固设计[J].微电子学与计算机,2012,29(12):27-30,35.
[11] LIN S,COSTELLO D J.Error Control Coding,2nd ed.Englewood Cliffs,NJ,USA:Prentice-Hall,2004.
[12] Shih-Fu Liu,Pedro Reviriego,Juan Antonio Maestro.Efficient majority logic fault detection with difference-set codes for memory applications.IEEE Trans.Very Large Scale Integr.(VLSI) Syst.,2012,20(1):148-156.