首页 > 新能源汽车

了解内存故障模型

来源:新能源汽车网
时间:2023-03-07 17:11:35
热度:

了解内存故障模型内存块与逻辑需要一组不同的故障模型和测试技术。用于检测内存内部故障的 MBIST 算法基于这些故障模型。本文讨论了不同类型的内存故障模型。内存故障模型——单电池故障

内存块与逻辑需要一组不同的故障模型和测试技术。用于检测内存内部故障的 MBIST 算法基于这些故障模型。本文讨论了不同类型的内存故障模型。

内存故障模型——单电池故障

Stuck at (SAFs):内存中的卡住故障是指单元(或读出放大器或驱动器中的线路)的逻辑值始终为 0 或 1 的故障。

左图:良好存储单元的写操作状态图;右图:sa-0 和 sa-1 存储单元的状态图 

转换错误 (TF):在转换错误中,单元在写入时无法进行(0 到 1)转换或(1 到 0)转换;向上转换故障表示为<0w1/0/->,向下转换故障表示为<1w0/1/->

转换故障的状态图 

写破坏性故障 (WDF):存储单元中的非转换写入操作会导致单元翻转。有两种类型的写破坏性故障:

1)状态0的存储单元,在上面写0。单元格变为 1。表示为 <0w0/1/->

2)状态1的存储单元,在上面写1。单元格变为 0。表示为 <1w1/0/->

写入破坏性故障的状态图 

读取破坏性错误(RDF):对单元格执行读取操作导致单元格中的值反转并返回不正确的值。读破坏性故障分为两类:

1)状态0的存储单元,读0就可以了。Cell变为1。表示为<0r0/1/1>

2)状态1的存储单元,读1就可以了。Cell变为0.记为<1r1/0/0>

 
良好存储单元读操作状态图


读取破坏性故障的状态图 

不正确的读取故障(IRF):对单元执行读取操作返回不正确的值,而存储单元的状态没有改变。有两种类型的错误读取错误:

1)状态0的存储单元,读0就可以了。Cell 保持为 0 但读取操作返回 1。表示为 <0r0/0/ 1>

2)状态1的存储单元,读1就可以了。单元格保持为 1 但读取操作返回 0。表示为 <1r1/1/0 >

不正确读取故障的状态图 

Deceptive read destructive Faults (DRDFs):对单元格进行读操作导致单元格中的值反转并返回正确的值。欺骗读破坏性故障分为两类:

1)状态0的存储单元,读0就可以了。Cell变为1但读操作返回0。表示为<0r0/1/0>

2)状态1的存储单元,读1就可以了。Cell变为0但读操作返回1。表示为<1r1/0/1>

欺骗性读取破坏性故障的状态图

Stuck open Faults (SOF):在此故障存储器中无法访问字。当读出放大器包含锁存器时,则在读取操作期间可以产生先前读取的值。如果差分放大器充当缓冲器,则可以将其建模为卡在故障中。

地址解码器故障(ADF):行和列解码器包括存储器的地址解码器。从内存测试的上下文来看,地址解码器考虑了四种类型的故障。

AF1:使用特定地址无法访问任何字

AF2:没有可以访问特定字的地址。

AF3:对于特定地址,可以同时访问多个字。

AF4:某个字可以用多个地址访问。


内存故障模型——两个单元故障

Coupling Faults (CF):耦合故障是由于与其他单元耦合而在单元中发生故障的故障。

– 可以有指数数量的组合,其中一个单元可以与其他单元耦合。

– 在广泛使用的耦合故障模型中,假设任何“两个”单元可以耦合在一起,导致这两个单元出现不规则行为;称为2-cell耦合故障模型。

因此,如果存储器中 有 n 个单元,则可能有n C 2  个 2 单元耦合故障。

左图:两个良好存储单元之间的写操作状态图;右图:两个良好存储单元之间的读取操作状态图 

反转耦合故障 (CFin):攻击字中的高位(0 到 1)或低位(1 到 0)转换写入操作会导致受害字单元中的反转。这些故障永远不会在有故障的存储单元中观察到,而只是由于历史原因而被定义 [1]。因此,它们不包括在链接的故障列表中。

1) 上升:< ↑ | ?>(暗示单元格a中的 0 到 1 变化补充了单元格v 的内容)

2) 坠落 : < ↓ | ?>(暗示单元格a中的 1 到 0 变化补充了单元格v 的内容)

逆变耦合故障状态图 

幂等耦合故障 (CFid):攻击字单元格中的高位(0 到 1)或低位(1 到 0)转换写操作强制受害字单元格中的特定值(0 或 1)。这些故障是 CFds 故障(稍后解释)的子集,因为写入操作会导致 v 单元格的内容从其先前状态翻转。

1) 上升 0: < ↑ | 单元格a中的 0 > 0 到 1 更改会将单元格v 的内容设置 为 0。

2) 上升 1: < ↑ | 单元格a中的 1 > 0 到 1 更改会将单元格v 的内容设置 为 1。

3) 下降 0: < ↓ | 单元格a中的 0 > 1 到 0 更改会将单元格v 的内容设置 为 0。

4) 下降 1: < ↓ | 单元格a中的 1 > 1 到 0 更改将单元格v 的内容设置 为 1。

幂等耦合故障状态图 

静态耦合故障 (CFst):攻击词中单元格的给定值 0 或 1 会强制受害词单元格中的特定值 0 或 1。          

1)(a单元格中的0设置单元格v 的内容 为0)

2)(a单元格中的0将单元格v 的内容设置 为1)

3)(a单元格中的1将v 单元格的内容设置 为0)

4)(a单元格中的1设置单元格v 中的内容 为1)

 

静耦合故障状态图 

干扰单元耦合故障 (CFds):受害字中的单元由于对攻击字的写入或读取操作而受到干扰(即,进行高电平或低电平转换)。

1) < 0r0, ↑ >, 0 对单元格a 的读取操作导致单元格v 中的上层(0 到 1)转换。

2) < 0r0, ↓ >, 0 单元格 a 上的读取操作导致单元格v中的较低 (1 到 0)转换。

3) < 1r1, ↑ >, 1 单元格 a 上的读取操作导致单元格v 中的上层(0 到 1)转换。

4) < 1r1, ↓ >, 单元格 a 上的 1 次读取操作导致单元格v中的较低 (1 到 0)转换。

5) < 0w1, ↑ >, (0 to 1) 对单元格a 的写操作导致单元格v 中的上层(0 到 1)转换。

6) < 0w1, ↓ >, (0 到 1) 对单元格 a 的写操作导致单元格v 中的较低(1 到 0)转换。

7) < 0w0, ↑ >, (0 to 0) 对单元格a的写操作导致单元格v 中的上层(0 到 1)转换。

8) < 0w0, ↓ >, (0 到 0) 对单元格 a 的写操作导致单元格v 中的较低(1 到 0)转换。

9) < 1w0, ↑ >, (1 to 0) 对单元格a的写操作导致单元格v 中的上层(0 到 1)转换。

10) < 1w0, ↓ >, (1 到 0) 对单元格a的写操作导致单元格v 中的较低(1 到 0)转换。

11) < 1w1, ↑ >, (1 to 1) 对单元格a的写操作导致单元格v 中的上层(0 到 1)转换。

12) < 1w1, ↓ >, (1 to 1) 对单元格 a 的写操作导致单元格v 中的较低(1 到 0)转换。

扰动单元耦合故障状态图

转换耦合故障 (CFtr):如果攻击字处于给定状态,则应用于受害字单元的写转换操作不会导致转换。

 1) (0w1/0/-; 0) 当单元格a的内容  为0时,单元格v中的0到1转换写操作 不会引起转换

2) (0w1/0/-; 1) 当单元格a的内容为1时,单元格v中的0到1转换写操作 不会引起转换 

3) (1w0/1/-; 0) 当单元格a的内容为0时,单元格v中的1到0转换写操作 不会引起转换 

4) (1w0/1/-; 1) 当单元格a的内容为1时,单元格v中的1到0转换写操作 不会引起转换 

过渡耦合故障状态图 

写入破坏性耦合故障 (CFwd):如果攻击者字处于给定状态,则应用于受害字单元格的非转换写操作会翻转该单元格。

1) (0w0/1/-; 0) 单元格v中的0到0非转换写操作在 单元格 a的内容 为0时导致转换

2) (0w0/1/-; 1)当单元格 a的内容为1时单元格v中的0到0非转换写操作 导致转换

3) (1w1/0/-; 0)当单元格 a的内容为0时,单元格v中的1到1非转换写入操作 导致转换

4) ( 1w1/0/-; 1) cell v中的1 to 1 non-transition write operation  causes transition when cell a content  of 1

写破坏性故障状态图 

读取破坏性耦合故障 (CFrd):如果攻击者字处于给定状态,则应用于受害字单元格的读取操作会导致转换并返回不正确的值。

1) (0r0/1/1; 0) 单元格 v中的0读操作导致单元格中的转换并在单元格 a的内容  为0时返回不正确的值

2) (0r0/1/1; 1) 单元格 v中的0读操作导致单元格中的转换并在单元格 a的内容  为1时返回不正确的值

3) (1r1/0/0; 0) 单元格 v中的1个读取操作导致单元格中的转换并在单元格 a的内容  为0时返回不正确的值

 4) (1r1/0/0; 1) 当单元格a的内容  为1时,单元格v中的1个读取操作 导致单元格中的转换并返回不正确的值

read destructive coupling Faults状态图 

不正确的读取耦合故障 (CFir):如果攻击者字处于给定状态,则应用于受害字的单元格的读取操作会返回不正确的值。受害者词的状态没有改变。

 1) (0r0/0/1; 0) 0 当单元格a的内容  为 0时,单元格v中的读取操作 返回不正确的值

 2) (0r0/0/1; 1) 当单元格a的内容  为 1时,单元格v中的 0 读操作 返回不正确的值

 3) (1r1/1/0; 0) 当单元格a的内容  为 0时,单元格v中的 1 次读取操作 返回不正确的值

 4) (1r1/1/0; 1) 当单元格a的内容  为 1时,单元格v中的 1 次读取操作 返回不正确的值

Incorrect read 故障状态图