ZHCAB22A November 2017 – November 2020 TMS320F28075 , TMS320F28075-Q1 , TMS320F28076 , TMS320F28374D , TMS320F28374S , TMS320F28375D , TMS320F28375S , TMS320F28375S-Q1 , TMS320F28376D , TMS320F28376S , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28377S , TMS320F28377S-Q1 , TMS320F28378D , TMS320F28378S , TMS320F28379D , TMS320F28379D-Q1
C2000are TMs ofTI corporate name.
Other TMs
当今世界高度依赖电子控制和管理,因此人们开始关注电子操作的安全性。一个关键的关注点是系统中 SRAM 的运行。这非常重要,从某些角度而言,这是电子产品运行安全最重要的一个方面。原因如下:
由于这些原因,SRAM 位单元和阵列布局对于任何新集成电路工艺开发和验证都是关键组成部分。在制造过程中,集成电路制造专家致力于寻找 SRAM 位单元和阵列布局的漂移和变化。因此 SRAM 错误检测对于安全相关电子产品而言非常重要。如果您想跳到结尾部分,请参阅Topic Link Label8。
本文的内容如下:
信息以字的形式存储在 SRAM 中。字长因存储需要而异。本文中使用 32 位字。字的位存储在位阵列中。不过,各个位的物理位置都针对半导体工艺的细节进行了优化。阵列是具有行和列的矩阵。在下面的示例中有 N 行,每行包含 8 个字。如果 N = 256,则该阵列为包含 256x8x32 = 65,536 个位或 2048 个字的 SRAM。
请注意,单个字的各个位在物理上是不相邻的,但 1 个 D 输入/Q 输出的所有位都是相邻的。单个字的各个位在物理上与其他字相隔 7 位。这改善了物理阵列的大小和 D/Q 信号的路由。稍后您将看到这是如何提高多位故障机制的错误检测能力的。
下面显示了三个字中的值:
Word(0) = 1 … 0 1b Row0, Column0
Word(1) = 1 … 1 0b Row0, Column1
Word(7) = 1 … 0 0b Row3, Column7
D0 | D1 | D31 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
行 | Col | |||||||||||||||
0 | 1 | 2 | … | 7 | 0 | 1 | 2 | … | 7 | 0 | 1 | 2 | … | 7 | 列 | |
N-1 | ||||||||||||||||
… | ||||||||||||||||
5 | ||||||||||||||||
4 | ||||||||||||||||
3 | 0 | 0 | 1 | |||||||||||||
2 | ||||||||||||||||
1 | ||||||||||||||||
0 | 1 | 0 | 0 | 1 | 1 | 1 |
阵列中位单元的物理组织可能因多种原因而有所不同,但该图提供了一个很好的讨论示例。该示例显示了一个值为 8 的列多路复用器因子,这意味着对于每个 Q/D,一行中有 8 个位。在执行存储器读取时,会选择行,然后列地址提供有关哪个特定的位将从 Q 中输出的解码信息。在执行存储器写入时,列解码具体定义将对所选行中的哪些位进行写入。每个 D/Q 的子阵列 (256x8) 被称为棒。
较大的存储器阵列通常使用较高的列多路复用器因子进行组织。
本节从系统设计人员或集成商的角度总结了 SRAM 故障的多种来源。
本文不打算详细介绍半导体器件制造过程中产生的缺陷。SRAM 是一种非常普遍、密集和敏感的电路,在半导体器件测试中受到了极大的关注。测试环境包括高级且通常是专有的测试算法。制造测试环境允许使用在终端系统中不可能出现的电压/温度/频率裕度进行测试。半导体器件设计包括专门的测试模式,以允许制造测试包含进一步的裕度测试。
由于生产测试中的特殊算法导向和广泛的裕度,在器件集成到系统中之前就涵盖了时间零点缺陷机制。在成熟的半导体工艺中,大多数缺陷 (>98%) 是通过常规 March 算法(例如 March13n)捕获的。在更先进的工艺节点 (<65nm) 中,需要使用更先进的算法才能实现这一点。
潜在的制造缺陷是半导体结构中的材料弱点,该弱点可能会导致系统故障,但可能会被上述算法和裕度测试遗漏。制造压力测试专门针对这种结构性弱点,它可以在发送器件之前强制使故障显现。
半导体的性能会随着时间的推移而漂移,最终可能发生电路故障。器件数据表定义了器件的寿命。会通过具有裕度的速度路径分析对器件设计进行验证。会使用足以在指定的寿命期间正常运行的裕度对器件进行测试。裕度测试和裕度设计最佳实践专门用于解决 SRAM 的性能漂移问题。
数据表明确定义了器件的工作电压和温度限值。如果器件承受超出数据表中定义的应力,则指定的寿命会缩短。极端的应力会损坏器件。有时造成的损坏是容易识别的故障,但有时故障不易觉察。过压或高温应力尤其影响 SRAM 的运行。
在本报告的上下文中,软错误是指由 SRAM 阵列外部的事件引起并且不会损坏 SRAM 电路的 SRAM 故障。软错误是临时的,因为将新值写入受影响的字后,错误便不再存在。此类故障的两个来源是穿透电路的放射性粒子和读取或写入字时的动态电压噪声。
随着半导体几何尺寸的减小,软错误变得更加常见。这既是因为各个位相互靠得更近(可创建目标更丰富的环境),又因为电压电平较低,从而导致位单元存储的稳健性较差。
仅当系统在受干扰的字被写入之前读取了该字时,软错误才会影响系统。某些 SRAM 内容在本质上是静态的,例如代码或表。其他 SRAM 内容是动态的,例如传入的数据和变量。此外,许多对数据进行操作的算法对单个位错误具有很好的适应性,尤其是在错误位于较低有效位的情况下。因此,动态数据中由于软错误导致的故障率比静态使用 SRAM 时低得多。在许多系统中,代码和表存储在非易失性存储器(如 ROM 或闪存)中,而 SRAM 主要用于动态存储。
放射性事件源自放射性粒子穿透半导体材料并扰乱位单元锁存器中的电压。这些事件在正常情况下是罕见的,但在放射性医疗环境和/或非常高的海拔环境中发生的可能性较大,高海拔环境中的大气较少,不利于降低粒子数。
根据粒子的穿透角度和强度,一个或多个位的值可能会翻转。这会沿一条直线发生。如果该直线穿过多个行,则必然会在不同的字中出现多个发生故障的位。这适用于垂直方向的穿透或对角线方向的穿透。
如果穿透方向是沿着行,则必须超出多路复用器因子才能在同一个字中创建多个位。
几何尺寸越小,受粒子穿透干扰的位就越多。在 90nm 工艺节点上,穿透 5 个单元的情况极为罕见。在 65nm 工艺节点上,穿透 6 个单元的情况极为罕见。与高性能工艺节点相比,低泄漏工艺节点更不易受这些事件的影响。
放射性粒子穿透可能会对 SRAM 单元造成物理损坏,并且这种情况时有发生。这种情况在采用结构更具创新性的几何形状的工艺节点中更为常见。
任何涉及开关的电路都会发生动态电压事件,即使在集成电路上也会发生电压事件。例如,只要主系统时钟进行切换,许多其他晶体管都会转换,并且电源平面上会出现一些噪声。尽管半导体器件内的电压事件很小,但如果在对某个具有裕度的位单元进行读取或写入期间发生电压事件,则该位单元可能会受到干扰。不过,这些器件会使用足够的裕度进行测试,以筛选出此类位单元,因此这个问题并没有上升到系统层面。大到足以干扰具有裕度的位单元的电压事件来自芯片外部或源自器件的运行超出数据表规格。即便如此,电压事件也只会在较弱的位(由于正常和预期的过程变化而较弱)上发生。因此,单个位检测足以应对此类事件。
可能会由于显著的动态电压事件而发生多位读取或写入故障。这表明存在电压问题,最好通过电压监控而不是存储器监控加以解决。
总之,系统内 SRAM 错误的主要问题是因Topic Link Label3.4中讨论的软事件而导致的干扰故障。
制造缺陷是通过仅在制造环境中可用的方法进行筛选的。如果未筛选出这些缺陷(这不太可能发生),则Topic Link Label4中的方法可提供额外的覆盖范围。Topic Link Label4中所述的方法还可以处理正常电路漂移导致的故障,当系统超出数据表器件寿命或出现轻微过应力时,电路漂移可能会成为一个故障因素。
本节介绍了多种可用于管理电子系统中存储器故障的方法。虽然本节的内容专门针对 SRAM,但大部分信息也适用于其他存储器,例如 ROM 和闪存。本节的内容是从系统设计人员或集成商的角度出发进行描述的,但也考虑了先前进行的与集成电路器件相关的讨论。
即使在安全注意事项的范畴内,针对存储器故障管理也存在不同的看待角度。
以上每一种角度都会增加系统成本。根据市场的要求,可以很容易证明额外的成本是合理的。或者,这些额外成本在其他目标市场中可能会令人望而却步。
在启动时测试 SRAM 无法解决上述三个角度的问题。不过,即使在系统运行时无法进行测试,在启动时测试 SRAM 也会产生很大的附加值。
半导体行业达成共识,“在系统出现故障时,用户自行对系统进行下电已然非常糟糕,但更糟糕的是在自行下电后再对系统进行上电”。这是因为您无法完全管理系统(或系统元件)上电和下电期间的电压和电流摆动。器件在设计时已经考虑到了这个问题,但如果要发生破坏性电源事件,在上电/下电期间发生的概率更大。因此,在上电时测试 SRAM 可以解决最有可能损坏电路的问题。
此外,SRAM 在启动时更容易测试,因为系统上下文尚未加载,因此没有要保存和恢复的上下文。嵌入式 CPU 执行的 SRAM 测试需要大量的 CPU 周期,并且在与系统操作共享 CPU 资源的情况下无法轻松或有效地完成。