环球要闻:关键误码探测方案的工作原理是什么?

哈喽小伙伴们 ,今天给大家科普一个小知识。在日常生活中我们或多或少的都会接触到SEU的抑制方面的一些说法,有的小伙伴还不是很了解,今天就给大家详细的介绍一下关于SEU的抑制的相关内容。

引言


(资料图片)

随着工艺技术的迅速发展,创新进一步提高了器件在速率、容量和功耗等方面的性能,使得FPGA比ASIC更具优势。然而,技术的发展也突出了以前可以忽略的某些效应,例如,单事件干扰(SEU)导致的软误码影响越来越大。通过仔细的IC设计,65nm节点单位比特的软误码率有所下降,但是每一工艺节点的逻辑容量在不断翻倍,配置RAM(CRAM)比特数量也随之增长。

现在的FPGA容量越来越大,功能越来越强,逐渐担负起系统的核心功能,例如数据通路等;因此,设计人员能够将系统集成在一片可编程芯片中。这些发展趋势促使FPGA成为许多系统的主要芯片选择方案,包括电信、存储和数据处理系统中利用率非常高的芯片。这些应用领域对可靠性的要求非常高,所采用的现代高端FPGA必须具有强大的SEU抑制能力,特别是在中子流密度较高的工作环境中,例如航空电子系统等。

SEU背景介绍

SEU是一种非破坏性事件,离子辐射穿过CMOS器件晶体管结时会出现这种效应。在地面应用中,比较重要的两种离子辐射源是封装材料释放的alpha粒子,以及地球大气和宇宙射线相互作用产生的高能量中子。数字CMOS器件中最常见的效应是软误码,SEU产生的电荷积累到一定程度,对SRAM单元存储节点发生作用,导致比特状态翻转。软误码的发生和其原因(离子辐射)一样都具有随机性,和能级、通量以及单元敏感程度有一定的概率关系。软误码很重要的特点是向单元重新写入正确值便能恢复正常状态。由于芯片没有闭锁,因此不需要重新上电启动。

Altera对这些现象的研究十分透彻,非常重视怎样降低FPGA中SRAM单元的软误码率,在出现软误码时,提供解决方案以减小其影响,帮助设计人员实现系统可靠性目标。

降低干扰率

SRAM单元的灵敏度可以用每Mbit的失效时间(FIT)或者中子截面积表示。业界常用的标准是大于10MeV中子截面积,需要在Los Alamos武器中子研究室(WNR)进行测量。这一标准对工艺技术逐一对比,不会受到某些定标因子的影响而提供结果看起来更好的FIT数值。通过仔细地选择工艺技术以及SRAM单元物理设计和电路设计方法,Altera在小工艺节点上降低了单位比特的干扰率。而且,在65nm等工艺技术上,避免了闭锁等有害效应的影响,剩下的唯一问题就是如何消除软误码。

为了便于理解软误码的影响,首先要清楚FPGA中的模块构成。以下按照对误码影响从大到小的顺序列出了这些模块。逻辑、走线和硬核IP CRAM单元:在容量最大的Stratix III器件中,CRAM单元高达120Mbits,占据了片内大部分SRAM单元。由于这些SRAM单元直接控制FPGA的功能,其完整性非常重要。而实际上,由于整个设计的走线效率较低,这些比特一般只有10%会对设计有影响。片内存储器RAM单元:Stratix III FPGA的用户存储器超过17Mbits,因此,大量的用户存储器会对FPGA软误码发生率有较大贡献。器件内核寄存器和触发器:这些单元出现在Stratix III自适应逻辑模块(ALM)、数字信号处理(DSP)模块、流水线以及存储器端口中。由于这些单元的中子截面积要比一般的SRAM单元小,数量相对较少(即使在容量最大的Stratix III器件中,也少于1Mbits),对FIT的贡献非常小,从统计角度看,在基于SRAM的FPGA中可以忽略它们。I/O寄存器:这些寄存器位于芯片外围,工作电压较高。由于I/O寄存器的数量非常少(在容量最大的Stratix III中,少于10,000),因此,对FIT基本没有贡献。Altera在测试过程中,没有发现这些寄存器出现过干扰事件。

因此,Altera重点关注怎样降低CRAM单元和用户RAM单元的SEU。

减小Stratix III配置RAM软误码

从130nm工艺开始,Altera利用循环冗余校验(CRC)引擎,在所有FPGA中建立了背景误码探测电路,在器件工作期间,不断验证CRAM的内容。CRC最多能够探测到三个比特的误码。在片内硬件逻辑门中集成这一电路的好处在于这种电路非常可靠,不会受到软误码的影响。而且,CRC引擎是一种自主式模块,在Quartus II编译选项中选中复选框就可以激活该功能。Stratix III FPGA提高了CRC的性能,和以前产品相比,进一步扩展了功能,如图1所示。

以前的产品在整个器件中采用32位CRC值,而Stratix III FPGA每一帧采用了16位CRC值,这样有多种好处。首先,误码探测电路不需要等待整个器件CRC计算完毕,才去探测误码,从而缩短了软误码的探测时间。其次,片内更多的CRC比特表明有足够的信息来定位软误码,不论它是单比特软误码还是邻近比特的双比特软误码。还有一个好处是可以同时探测并定位不同帧的软误码,这是由于每一帧及其相应的CRC寄存器彼此相互隔离。

Stratix III FPGA具备软误码定位功能后,可以确定误码的灵敏度。由于通常只有10%的配置误码影响FPGA的功能,因此,可以忽略“无关紧要”的配置软误码,FPGA功能不会中断,继续工作,降低了实际的FIT。

关键误码探测功能利用参考设计在软核逻辑中实现,由即将推出的Quartus II软件7.2提供支持。图2显示了这一关键比特探测系统是怎样工作的。关键误码探测方案的工作原理如下:

1. 通过内置软误码探测电路探测并定位配置软误码。这将置位CRC_ERROR引脚。

2. 软核逻辑获得误码信息,计算映射文件中的地址,确定哪些配置比特“紧要”或者“无关紧要”。

3. 软核逻辑使用用户专用存储器接口,例如主动串行配置端口,访问灵敏度映射文件中的对应比特,确定某一配置软误码对FPGA当前配置设计的影响是否重要。

4. 如果配置软误码“无关紧要”,FPGA继续工作,不出现功能错误。如果配置软误码非常“紧要”,会影响功能,则置位CRITICAL_ERROR引脚,系统将采取相应的措施,例如重新配置FPGA等。

Quartus II设计软件针对某一设计,根据资源占用和使用的布线情况自动生成含有“紧要/无关紧要”比特映射文件。这表明在部分设计上会进一步降低FIT,原因在于没有使用的资源中出现配置软误码后,不会产生关键误码。由于确定“紧要”或者“无关紧要”引脚的灵敏度处理器参考设计采用了软核逻辑,因此,接口信号和控制逻辑同时采用了三模冗余技术,在配置软误码影响FPGA中的某些部分时,能够继续可靠地工作。

可靠性高的系统需要采用这种降低误码的高级方法,但更重要的是能够在插入配置软误码时对系统进行测试。这样,不需要采用适当的离子辐射源来测试系统对软误码的反应。Stratix III FPGA增强了Stratix II FPGA的误码插入功能,用户可以插入多个单比特误码以及多个邻近两比特误码。硬件已经实现后,这一功能特别有用。因此,Stratix III FPGA通过JTAG端口提供这一功能,很容易对运行中的系统进行测试,降低错误的发生。

减小Stratix III用户RAM软误码

除了配置存储器校验之外,Stratix III器件还能够检查片内存储器的完整性。Stratix III FPGA提供三种容量的用户存储器,在每一字节中都含有第9存储位。利用这一额外的存储位,以及自动产生的误码纠正(ECC)电路,640位MLAB和9-Kb M9K模块都能够减小SEU。144-Kb M144K模块也具有这一功能,只是其ECC电路采用了存储器模块的硬件逻辑门实现(参见图3)。

利用ECC,每种片内存储器模块都可以探测到两个误码,实时自动纠正一个误码。MegaWizard插件管理器简化了对ECC的配置,不需要额外的设计工作便可以实现这一功能。

ECC的局限在于一个字中出现两个误码的情况,它只能探测到误码,但不能纠正。虽然这要比不能发现误码好一些,但是需要系统高层使用其他但是需要系统高层使用其他方法来处理误码,例如请求重新发送受影响的数据等。为减轻这种影响,Stratix III FPGA大容量存储器字中的逻辑比特在物理上分开,减小了字内部逻辑多比特误码发生的概率,在多个比特干扰(MBU)出现时,ECC也能够工作。可以利用SignalTap逻辑分析器的系统存储器内容编辑器来测试Altera FPGA用户存储器的软误码,通过JTAG连接,由Quartus II软件修改存储器内容。

当Stratix III FPGA采用了外部存储器时,Altera的存储器接口IP也为ECC提供支持。控制器的误码记录和中断管理功能使系统能够监控外部存储器的软误码。

措施讨论

在利用率高、可靠性高、安全性高的系统中,高端FPGA设计应具有很低的软误码率,以及强大的误码抑制能力。对可靠性要求高的工程师而言,降低误码才能满足系统的可靠性目标。根据系统工作环境和需求,可以采取多种措施来降低误码。一般而言,第一步是建立目标,例如MTBF、停机时间或者必须的失效模式等。在很多情况下,比较容易达到可靠性目标。例如,集成了CRC引擎的中等容量Altera FPGA,采用“误码重新配置”措施,比较容易达到10-11停机时间,比电信基础设施要求的99.999%高6个数量级。然而,应对系统进行全面考虑,特别是材料较多,或者FPGA含有大量复杂IP的情况。处理器、操作系统以及软件编程都会对实际系统的可靠性指标有影响,大部分系统设计人员已经意识到这一问题。数字IC中出现软误码时,也应该分析含有易失存储器的元件。例如,如果有容量较大的DDR SDRAM,它对系统软误码率的影响最大,此时应考虑存储控制内部ECC等方法。怎样划分系统对可靠性的影响也较大,例如系统大小对内核工作的影响非常关键,或者在系统冗余情况下,所采用的冗余粒度(通常粒度越大越好)等。

有多种方法可以处理软误码,包括确保软误码停机时间小于关键参数等,例如控制系统的闭环时间常数。降低系统软误码的其他措施还包括系统运行情况保存、复位和恢复,在日志中标记软误码,及早复位系统等。有些方法有一定的危险性,例如配置数据的连续背景刷新(也被称为清洗)等。关键配置SRAM比特出现软误码后,在以开环方式进行纠正之前,系统功能在一段时间内会不正常。这种情况的危险性在于,FPGA已经处理了不正确的数据,结果会在系统其他部分扩散。尽管任何FPGA误码探测方法中都存在类似的问题,但最好能够在系统级确认出现软误码,从而标记出不正确的数据。设计FPGA时,Altera重点关注降低CRAM单元的单位比特软误码率以及降低误码的措施,例如关键误码探测等,以最小的成本大幅度提高可靠性。Stratix III FPGA的很多特性都有助于达到这些目标。表1对此进行了总结。在降低片内RAM软误码的措施中,原理最清楚、应用情况最好的是ECC,它不但保护效果好,而且在芯片面积和性能上的成本最低。对于字宽较宽的情况,存储器总宽度(数据比特和校验比特)效率更高,带有8个校验位的64位数据(总共72个比特)是比较容易接受的方案。服务器和缓存应用中都采用了这一比例,Stratix III FPGA中的M144K存储器模块也支持这种配置。使用ECC意味着对存储器进行校验,并且以系统速率自动纠正错误。

对于需要彻底解决软误码的设计人员而言,ASIC当然是最佳方案。Altera的HardCopy结构化ASIC系列实现了从原型FPGA到引脚兼容结构化ASIC的无缝移植,不需要在设计工具、芯片设计以及电路板重新设计上进行大量投入。在FPGA原型对系统(包括PCB)进行全面验证之前,其他的结构化ASIC不能下单。作为一种结构化ASIC,HardCopy器件没有SRAM配置单元。硬件设置对SEU不敏感,因此,器件逻辑功能不受软误码的影响。芯片中唯一容易受影响的部分是用户存储器和内核寄存器,可以使用ECC纠正用户存储器的误码。

内核寄存器的干扰率非常低。例如,在HardCopy II结构化ASIC中,逻辑寄存器由Hcell构成。在Los Alamos WNR的测试中,发现根本不可能干扰寄存器。其原因在于采用了大量的创新技术,例如提高反馈环逻辑门的强度,主从级隔离,通过设置提高节点电容等。65nm HardCopy III结构化ASIC以Stratix III FPGA为原型,将使用相同的方法,在所有结构化ASIC中,抑制软误码的能力最强。

结语

Stratix III FPGA在降低SEU上有多种措施,例如从简单配置软误码探测,到确定关键和“无关紧要”配置软误码之间的不同等。结合片内和外部存储器软误码自动纠正功能,采用Stratix III FPGA设计的系统大大提高了可靠性,使FPGA能够用于利用率高、可靠性高、安全性高的系统中。

参考文献

1. Stratix III器件手册第四章:设计安全性以及降低单事件干扰(SEU)www.altera.com/literature/hb/stx3/stx3_siii5v1_04.pdf

2.AN 357:利用 Altera FPGA的CRC实现误码探测和纠正www.altera.com/literature/an/an357.pdf

关键词: