徐 辉, 余 果, 汪 勇, 刘 杰
(1.安徽理工大学 计算机工程学院, 安徽 淮南 232200; 2.安徽理工大学 电气与信息工程学院, 安徽 淮南 232200;3.湖州师范学院 信息工程学院, 浙江 湖州 313000)
随着大规模软硬件的开发和应用,可靠性受到高度重视[1-11],锁存器加固就是一项重要措施[2-11].如果一个半导体器件的内部节点被一个高能粒子轰击,最终会使电荷沉积,从而导致被击中的节点出现电路故障.如果节点电荷超过锁存器中存储正确逻辑值的最小电荷量,锁存器内就会发生一个称为单节点翻转(single node upset,SNU)的逻辑值翻转[2].
早期的容忍单节点翻转锁存器利用双模互锁、防护门、冗余等在反馈中引入延迟[3-11].随着CMOS技术的不断发展,电路的微型化给电路防护带来了不利影响.研究表明,当CMOS电路的特征尺寸达到90 nm时,电荷共享已严重影响电路的可靠性,并可能导致多节点翻转(multi-node upset,MNU)[12].研究人员对电荷共享效应导致的各种问题做了大量研究:文献[13]表明,由MNU诱发的逻辑错误越来越严重;文献[14]对各种可能发生多节点翻转的已加固节点做了三维模拟研究;文献[15]做了电荷共享可能会对软错误率造成影响的实验.因为大部分能够起到防护作用的锁存器设计都只能防护SNU[3-9],不具有防护MNU的能力,所以各种MNU加固锁存器的设计在纳米工艺下日益重要.
本文设计一种新型容忍多节点翻转的锁存器,该结构弥补了已有结构的一些不足,并减少了功耗和延时.通过HSPICE仿真工具对提出的新型锁存器结构进行测试,结果表明,该结构不仅能够防止SNU的发生,还对MNU有很好的防护效果.
FERST(即feedback redundancy SEU-tolerant)锁存结构[9]是一种经典的利用反馈和冗余进行单节点容错的锁存器结构,如图1所示.该结构主要由3个C单元构成,其中每个C单元主要由4个CMOS晶体管构成,如图2所示.MP1管接VDD,MN2管接GND.输入A和输入B分别接一个PMOS管和一个NMOS管.C单元的真值表如表1所示.当输入相同时,C单元相当于一个反相器结构,可以输出和输入相反的逻辑值;当输入不同时,晶体管关闭,输出点浮空处于高阻态,保持前一状态的逻辑值.SEU(single event upset)会使C单元的两个输入不同,但不会影响输出节点Q的逻辑状态,可以起到容忍的作用.若节点对(N1,N2)、(N3,N4)、(N1,N4)、(N2,N3)中任意发生节点对翻转,将导致输出节点Q的翻转.
本文针对单粒子多节点造成的电路逻辑值翻转问题,提出一种有效的能够加固的新型锁存器结构(图3),其中D代表输入信号、Q代表输出信号.该结构包括以下单元:5个传输门(TG1、TG2、TG3、TG4、TG5);2个改进的TDICE结构[16](TDICE’1、TDICE’2);1个C单元.当CLK=1、CLKB=0时,锁存器处于导通状态.此时,锁存器工作在逻辑值输入状态,输入D经过传输门TG5直接通过Q输出逻辑值.但由于N9管和P11管的钟控门结构,锁存结构的值无法通过C单元结构将逻辑值传输到Q点,使得输入信号只能通过TG5到达输出端Q.当锁存器进入锁存状态时,所有传输门关闭,电路通过TDICE’1、TDICE’2结构和C单元结构来保持电路的逻辑状态不发生改变.
该新型锁存器使用TDICE’1单元和TDICE’2单元,保证锁存的逻辑值传到C单元前不会受到单节点和多节点翻转的影响,并在锁存器末段使用一个C单元,以保证TDICE’单元输出到Q点的逻辑值正确.锁存器中的敏感节点为X0、X1、X2、X3、X4、X5、Q1、Q2和输出点Q.由于X0和X3、X1和X4、X2和X5、Q1与Q2是对称的,所以下面进行容错分析时,只对X0、X1、X2、Q1和输出节点Q进行分析.
第一种情况:如果单粒子单节点的翻转发生在节点X0上,产生的错误脉冲可能会使相邻节点X1或Q1发生翻转,但由于晶体管P12、N12、P13、N13处于关闭状态,所以逻辑值错误无法影响到A1和D1节点.翻转状态下的X0点被未受到影响的晶体管P1或N1纠正,所有节点就会变回到它们的原始逻辑状态.同样的情况也适用于节点X2.
第二种情况:如果节点X1被轰击而发生逻辑翻转,由于连接到该节点的反馈晶体管P12和N23都是关闭的,所以该节点的故障无法传播到A1、B1节点,最后X1节点的逻辑值将通过X0或X2控制的反馈回路被恢复,使翻转的节点状态恢复原状,节点Q1同理.节点X3、X4、X5、Q2的分析与节点X0、X1、X2、Q1同理.
当粒子轰击额外的4个节点A1、B1、C1、D1之一时,不会造成上面结构的翻转.如在X0、X1、X2、X3分别存储逻辑1、0、1、0的情况下,A1、B1、C1和D1的逻辑值为0.如果给连接到P1的栅极节点A1进行粒子注入,过量电荷形成的错误逻辑值仅能通过关闭P1使节点成为一个浮空点(高阻抗状态),这不会改变X0的逻辑状态.
新型结构TDICE’1和TDICE’2是对称的.下面分析TDICE’1.由于TDICE’1结构中的X0和X2、X1和Q1也是对称的,所以先假设节点X0、X1、X2、X3分别存储1、0、1、0来分析双节点翻转.
第一种情况:如果轰击节点对(X0,X2)会导致两个节点X1和Q1发生翻转,但X1和Q1的逻辑错误因晶体管P12、N12、P13、N13的关闭并不能传播.X0的逻辑状态由未翻转节点A1和D1决定,X2的状态由未翻转节点B1和C1决定,所以X0和X2不会翻转;而X0和X2会通过反馈回路使X1和Q1恢复.
第二种情况:如果注入故障使得节点对(X2,Q1)发生翻转,即使X1被翻转,也不会传播逻辑错误.一旦节点X2由于未损坏的节点B1和C1而恢复,Q1也将恢复.
唯一敏感的节点对是(A1,X0).主要原因如下:假设节点X0发生翻转,节点A1同时发生翻转,节点X0将无法恢复.因为节点A1关闭P1,切断了节点X0可恢复回正确逻辑的传导路径.因此,节点Q1可能会根据P4和N4的驱动而导致翻转.同样,当节点A、B、C、Q分别存储逻辑0、1、0、1时,(B1,X2)为敏感节点对.对称的结构也同理,在(A2,X3)和(B2,X5)节点对可能发生MNU.
综上所述,本设计只有2对敏感节点对,远远小于第3节比较的两种容多节点翻转的锁存结构[10-11].且与后两者相比,由于敏感节点对越少,SEU耐受性越高,通过对敏感节点对的分析,说明该新型器件结构有更好的容SEU性能.
为了验证新型锁存器SNU和MNU的容错能力,在室温和预测工艺模型PTM32nm下,使用HSPICE仿真工具进行广泛的故障注入实验.
考虑到实验的说服力和结构的对称性,分别对节点X0、X1做了SNU的故障注入;对节点对(X0,X1)和(X0,X2)做了MNU的故障注入.
第一种单粒子节点翻转情况如图4所示.当给X0点注入一个脉冲,X0很快恢复,且对输出Q没有造成任何影响.由于结构的对称性,X2、X3、X5点与X0点受到单粒子节点翻转时结果相同.
第二种单粒子节点翻转情况如图5所示.当给X1节点一个脉冲,X1经短暂时刻后恢复,输出Q也没有受到任何影响.同理,Q1、X4、Q2点与X1点结果类似.
第一种多粒子节点翻转情况如图6所示.当同时给X0、X1注入故障,X0、X1发生翻转后很快恢复逻辑值,输出Q未发生翻转.同理,节点对(X2,Q1)、(X1,X2)、(X3,X4)、(X4,X5)、(X5,Q2)与节点对(X0,X1)结果相同.
第二种多粒子翻转情况如图7所示.给(X0,X2)节点对同时注入脉冲使其翻转,节点对翻转后很快恢复逻辑值,而且输出Q并未受到影响,逻辑值不变.同理,节点对(X1,Q1)、(X3,X5)、(X4,Q2)受到相同的故障注入导致发生翻转时,也会很快恢复到初始逻辑值,从而很好地防止了多节点翻转.
为了对提出的新型锁存器性能进行准确评估,本文对比了三模冗余(TMR)锁存器[14]、DICE锁存器[3]、FERST锁存器[9]、DNCS锁存器[10]和MNUTL锁存器[5]的容错能力,以及各个锁存器的延时、功耗开销等.
各个锁存器结构的容错能力如表2所示.从表2可知,新型锁存结构具有容单节点和容多节点翻转的能力.
本文通过HSPICE仿真实验对各个锁存结构进行数据分析,然后计算并比较各个结构的PDP(power delay product),即他们的功耗及延时的乘积.在PTM 32nm模型、电源电压为0.9 V、温度为30 ℃的条件下进行仿真.
各个锁存器的功耗和延时如表3所示.由表3可知,新型锁存结构相比其他锁存结构,在延时和功耗上明显优于大部分锁存器.
表3 各个锁存器的开销比较
新型锁存器相比其他锁存器的开销变化如表4所示,负值代表新型锁存器相对其他锁存器的优势占比.由表4可知,新型锁存器的结构在功耗和延时上具有很大优势.
表4 新型锁存器相比其他锁存器的开销变化
针对愈发严重的多粒子翻转问题,本文提出一种新型锁存器的加固设计.该设计不仅可以防止单节点翻转的发生,还可以容多节点翻转.通过HSPICE仿真表明,相比仅容忍单粒子翻转的DICE锁存器,新型锁存器在增大面积的情况下,大幅度减少了锁存器的延时;相比经典的TMR锁存结构,新型锁存结构在各个方面都有很大优势;相比同样能够防护MNU的其他结构,新型锁存器的功耗延时积优势明显.