【工程师博客】总被忽视的软错误详析

作者:Tom-M

软错误是指RAM或FF中非由硬错误引起的位翻转,因此在断电再重启后会消失。以前,软错误在很大程度上被忽略了,可靠性预测主要集中在硬错误上,但在IEC 61508-2:2010提到软错误后,人们再也不能忽略软错误了。这是好现象,因为在有很大RAM的器件中,软错误率可能轻而易举地比硬错误率高出三个数量级。另一方面,器件即使没有RAM,也可能存在大量FF,因此每个器件都会有一定程度的软错误。甚至模拟电路(例如使用开关电容架构的那些电路)也可能发生软错误,但考虑到问题的相对规模,这个问题在很大程度上被忽略了。

软错误主要是由封装材料中的α粒子和源于银河系的中子引起的。在地面高度,二者的贡献大致相同。α粒子不能深深地渗透到硅中,但它们来自芯片顶部,因此难以屏蔽,不过有文献表明,聚酰胺可以帮助解决这个问题。另一方面,不使用几米厚的水泥或铅的话,很难屏蔽中子。因此,需要在CMOS器件层次、IC上的模块层次、IC上的系统层次或高级系统层次采取措施予以解决。

如果您没有更好的信息,可以使用IEC 61508-7:2010第7部分倡导的值——1000 FIT/兆位。广泛接受的Siemens SN29500系列标准倡导的值是1200 FIT/兆位。实际上,1000 FIT/兆位已被广为接受。最佳方案是测试每个IC,但这仍然不是没有争议,因为你会遇到与典型器件中使用的许多不同类型FF相关的问题,与加速测试和山顶测试相关的问题,以及关于AVF(架构漏洞因子)的讨论,许多软错误可能永远不会传播出去造成系统故障。

在CMOS器件层次,您可以使用加固器件(三阱、SOI、额外电容),但处理软件错误最常见的方法是在硅模块层次给RAM增加奇偶校验或ECC。奇偶校验位检测受保护的字节或字中是否有一位发生翻转。但是,它无法检测两位翻转的情况。如果奇偶校验与逻辑连续位物理分隔相结合,就可以解决这个问题,因为一个粒子不再能翻转同一个字中的两位。另一方面,ECC通常可以检测所有一位、两位错误和大部分更多位错误。ECC优于奇偶校验的一大优势实际上是它可以从一位错误中恢复而无需干预。对于奇偶校验错误,通常需要重启系统才能清除错误,但这取决于最终应用。如果ECC或奇偶校验不可用,应用设计人员仍能解决软错误,方法是将关键值存储在两个存储器位置,使用之前比较这两个结果。然而,这往往会扰乱应用代码。其他方案包括使用双通道系统进行比较。这有点类似于ISO 13849中的典型CAT 3或CAT 4架构。双核同步架构具有类似的优点。

诸如ADI的ADSP-CM417F等器件有助于实现上述几种解决方案。片内RAM具有ECC和物理分隔,RAM由多个独立的32k模块组成,其包含两个核心,可提供充分的隔离。而AD7124(24位Σ-Δ ADC)之类的器件包含一个片内状态机,它在配置状态结束时会存储一个标准CRC,然后状态机以不到500uS的间隔重新计算CRC,检查是否有任何配置位翻转。这两者还说明了安全数据手册的价值,最终用户可以获得额外信息以帮助进行安全分析,例如:关于RAM中逻辑连续位的物理分隔的信息;RAM不是作为一个大模块实现的,而是作为几个较小模块实现的......

近来最著名的软错误案例来自汽车,人们质疑一位翻转便可能导致意外加速。其他案例包括投票机错误和变电站关闭。

点击这里,获取更多IOT物联网设计信息