III Conclusion
Corollary 1: If an iteration I starts updating the diagnosis-CAM from an operation belonging to a test sequence S(i), then, iteration I can skip each sequence S(j) with j < i, which is not necessary for sensitizing
3.3 AUTOMATION
3.3.2 Test-length Computation
3.3.2.1 Detection profiles
The distribution of the faults over the memory and their type, determine the positions within the test algorithm in which fault detections occur. Ultimately, the behavior of the iterative diagnosis scheme depends on these positions. Thus, to avoid performing fault injection experiments, and performing time consuming conventional fault simulation for each experiment, we adopted a much faster solution consisting in:
- Determining the detection profiles of the target set of faults for the target algorithm (i.e. the sequences of the test algorithm in which each fault of the target set is detected). For instance, if a fault is detected in sequences S1, S2, and S5 of a test algorithm, its detection profile is (S1; S2; S5).
- Associating the conditional11 occurrence probability of each fault to its detection profile.
- Collapsing the obtained list of detection profiles and their probabilities by adding the probabilities of identical detection profiles. For instance, if two faults f1 and f2 have both the detection profile (S1; S3) and the conditional occurrence probabilities of f1 and f2 are P1 and P2, then we associate the probability P1+P2 to the detection profile (S1; S3).
- Performing detection-profiles injection experiments, and performing fast pseudo-simulation for each experiment.
For illustrating our approach let us consider a comprehensive set of fault models consisting in all static unlinked functional fault models (FFMs) involving one memory cell (single-cell FFMs) and two memory cells (two-cell FFMs) [29]. We also consider the march test algorithm MSS1 [31] shown in figure 1, which is an optimal test algorithm detecting all of them.
S(0): (W0); S(1): (R0, R0, W1, W1); S(2): (R1, R1, W0, W0);
M01; M11; M12; M13; M14 M21; M22; M23; M24 S(3): (R0, R0, W1, W1); S(4): (R1, R1, W0, W0); S(5): (R0); M31; M32; M33; M34 M41; M42; M43; M44 M51 Figure 1: MSS1 test algorithm
To generate the detection profile for each fault, we need to identify which operations of the test algorithm detect it. Considering the target test algorithm, these operations can be generated manually, but this is a time consuming and error prone operation. Thus, using fault simulation is preferable because it is error-free and is very fast, as it requires simulating only one cell for each single-cell fault and only three cells for each two-cell fault (a victim cell, an aggressor cell with higher address than the victim cell, and an aggressor cell with lower address than the victim cell). Table 1 concerns the single-cell FFMs. The fourth column of this table presents the operations of MSS1 detecting each fault primitive, and the fifth column presents the list of sequences detecting each fault primitive. For instance, from the fourth column, the fault primitive < 0 / 1 / - > is detected by the operations (M11; M12) (M31; M32) and M51. Thus, the list of sequences in the fifth column is (S1; S3; S5). In the context of the iterative diagnosis approach, the detection sequences rather than the detection operations are of interest. Thus, in the following we are deriving sequence-based detection profiles. However, in applications where detection-operations are of importance (as for instance for determining the masking probability of the transparent BIST scheme proposed in section 6), the proposed pseudo-simulation approach can also be employed to reduce simulation time, but in this case we will use the detection operations shown in the fourth column of the table for creating the detection profiles. Using detection operations instead of detection sequences will result in a larger number of detection profiles. Hence, using sequence-based detection profiles, as allowed in the context of the present study, reduces computation time.
For the two-cell FFMs, the similar results are presented in table 2.
Note that, for all two-cell FFMs except the CFst <0; 0/1/- > and <1; 1/0/- >, the detecting sequence depends on the relation between the addresses of the victim and the aggressor cells. This is reported in the fifth column of table 2 as “half in Si the other half in Sj”.
Note also that, all FFMS are detected by MSS1 regardless to the state of the memory before the initializing sequence S0. However, depending on the state of each memory cell before S0, some faults can be additionally detected in S1. Such additional detections may saturate the diagnosis-CAM earlier and increase the diagnosis length. Thus, we also take into account such detections. Starting from the second iteration of the test algorithm the states of the memory cells before S0 are known (they are equal to their states at the last sequence of the test algorithm - the state 0 in MSS1 as determined from sequence S5). Thus, in tables 1 and 2 we have normally reported the detection operations and sequences as determined by these states. In addition at the end of these tables we have reported the detection operations and sequences concerning the first iteration of the test algorithm. As the state of each cell before S0 is unknown, we consider that each cell has 0.5 probability to be at the 0 state and another 0.5 probability to be in the 1 state before S0. For single- cell FFMS, this issue concerns TF <1w0/1/- > and WDF <0w0//- >. Thus, in the last two rows of table 1 we report again the detection operations and sequences for these fault primitives, considering this time that before the sequence S0 of the first iteration of the test algorithm, the memory cells have 0.5 probability to be 1 and 0.5 probability to be 0. It results in the situations where certain detections have “50% chances”, as reported in the last two rows of the table. Note however that, as reported in the 4th and 6th rows of table 1, after the first iteration TF <1w0/1/- > gives the detection profile (S3; S5), and WDF <0w0//- > gives the detection profile (S1; S3; S5). On the other hand, as reported in the last two rows of table 1, during the first iteration of the test algorithm TF <1w0/1/- > gives the detection profiles (S3; S5) and (S1; S3; S5), each with occurrence probability equal to the half of the occurrence probability of TF <1w0/1/- >. This is also the case for WDF <0w0//- >. Then we find that, if the occurrence probabilities of the fault primitives TF <1w0/1/- > and WDF <0w0//- > are equal, the occurrence probabilities of the detection profiles (S3; S5) and (S1; S3; S5) obtained from the fault primitives TF <1w0/1/- > and WDF <0w0//- > are the same in all the iterations of the test algorithm. As for two-cell FFMS, the fault primitives concerned by these issue are CFdsxw!x <1w0; 0//- > and CFdsxwx <0w0; 0//- >. Thus, in table 2 we have reported their detection operations and sequences for both the first iteration and the subsequent ones. Again, if the fault primitives
CFdsxw!x <1w0; 0//- > and CFdsxwx <0w0; 0//- > have equal occurrence probabilities, we find that the detection profiles and their probabilities are the same in all iterations. The case where these probabilities are equal is easier to treat, as we treat identically all iterations. On the other hand, if these probabilities differ, we can apply our approach, but we need to create a specific detection profile for TF <1w0/1/- > differentiating the first iteration from the other iterations. That is: to all iterations except the first, we will associate the detection profile (S3; S5) with probability equal to the occurrence probability of TF <1w0/1/- >; while to the first iteration we will associate the detection profile (S1; S3; S5) with probability equal to the half of the occurrence probability of TF <1w0/1/- >, and the detection profile (S3; S5) with probability equal to the other half. We also treat similarly WDF <0w0//- >, CFdsxw!x <1w0; 0//- >, and CFdsxwx <0w0; 0//- >.
Table 1: Detection operations and detection sequences for single-cell FFMs
# FFM Fault
Primitives Detected in operations:
Detection sequences 1 SF < 0 / 1 / - > (M11; M12); (M31; M32); M51 (S1; S3; S5) < 1 / 0 / - > (M21; M22); (M41; M42) (S2; S4) 2 TF <1w0/1/- > (M31; M32); M51 (S3; S5) <0w1/0/- > (M21; M22); (M41; M42) (S2; S4) 3 WDF <0w0//- > (M31; M32); M51; (S3; S5) <1w1//- > (M21 ; M22) ; (M41 ; M42) (S2; S4) 4 RDF < r0 / /1 > (M11; M12); (M31; M32); M51 (S1; S3; S5) < r1 / /0 >(M21; M22); (M41; M42) (S2; S4) 5 DRDF < r0 / /0 > M12 ; M32 (S1 ; S3) < r1 / /1 >M22; M42 (S2; S4) 6 IRF < r0 / 0 / 1> (M11; M12); (M31; M32); M51 (S1; S3; S5) < r1 / 1 / 0>(M21; M22); (M41; M42) (S2; S4) 2’TF <1w0/1/- > (M31; M32); M51; 50% chances to be detected in (M11; M12). (S3; S5), 50% in S1 3’WDF <0w0//- > (M31; M32); M51; 50% chances to be detected in (M11; M12). (S3; S5), 50% in S1
Table 2: Detection operations and detection sequences for two-cell FFMs
# FFM Fault
Primitive Detected in operations:
# of detection sequences
1.a CFst
<0; 0/1/- > (M11; M12); (M31; M32); M51 (S1; S3; S5)
<0; 1/0/- > half in (M21; M22); the other half in (M41; M42)
(half in S2 the other half in S4)
1.b CFst
<1; 0/1/- > half in (M11; M12; M51); the
other half in (M31; M32)..
(half in S1 and S5, the other half in S3)
<1; 1/0/- > M(21; M22); (M41; M42) (S2 ; S4)
2.1. a
CFdsrx
<r0; 0//- > half in (M11; M12); the other half in (M31; M32)
(half in S1 the other half in S3) <r0; 1//- > half in (M21; M22); the other half in (M41; M42) (half in S2 the other half in S4).
2.1.
b CFdsrx
<r1; 0//- > half in (M31; M32); the other half in M51
(half in S3 the other half in S5) <r1; 1//- > half in (M21; M22); the other half in (M41; M42) (half in S2 the other half in S4)
2.2.
a CFdsxw!x
<0w1; 0//- > half in (M11; M12); the other half in (M31; M32)
(half in S1 the other half in S3) <0w1; 1//- > half in (M21; M22); the other
half in (M41; M42)
(half in S2 the other half in S4) 2.2.
b CFdsxw!x
<1w0; 0//- > half in (M31; M32); the other half in M51.
(half in S3 the other half in S5) <1w0; 1//- > half in (M21; M22); the other
half in (M41; M42)
(half in S2 the other half in S4) 2.3.
a CFdsxwx
<0w0; 0//- > half in (M31; M32); the other half in M51. All in (M11; M12).
(half in S3 the other half in S5)
<0w0; 1//- > half in (M21; M22); the other half in (M41; M42)
(half in S2 the other half in S4) 2.3.
b CFdsxwx
<1w1; 0//- > half in (M11; M12); the other half in (M31; M32)
(half in S1 the other half in S3). <1w1; 1//- > half in (M21; M22); the other
half in (M41; M42)
(half in S2 the other half in S4)
3.a CFtr
<0; 1w0/1/- > half in (M31; M32); the other half in M51
(half in S3 the other half in S5) <0; 0w1/0/- > half in (M21; M22); the other
half in (M41; M42)
(half in S2 the other half in S4).
3.b CFtr
<1; 1w0/1/- > half in (M31; M32); the other half in M51
(half in S3 the other half in S5) <1; 0w1/0/- > half in (M21; M22); the other
half in (M41; M42)
(half in S2 the other half in S4)
4.a CFwd
<0; 0w0//- > half in (M31; M32); the other half in M51
(half in S3 the other half in S5) <0; 1w1//- > half in (M21; M22); the other
half in (M41; M42)
(half in S2 the other half in S4)
4.b CFwd
<1; 0w0//- > half in (M31; M32); the other half in M51
(half in S3 the other half in S5) <1; 1w1//- > half in (M21; M22); the other half in (M41; M42) (half in S2 the other half in S4)
5.a CFrd
<0; r0//1 > half in (M31; M32). Also 100% in half in (M11; M12); the other M51.
(half in S1 the other half in S3) plus all in
S5 <0; r1//0 > half in (M21; M22); the other
half in (M41; M42)
(half in S2 the other half in S4)
5.b CFrd
<1; r0//1 > half in (M11; M12); the other half in (M31; M32).
(half in S1 the other half in S3). <1; r1//0 > half in (M21; M22); the other
half in (M41; M42)
(half in S2 the other half in S4)
6.a CFdrd
<0; r0//0 >
half in M12; the other half in M32 (half in S1 the other
half in S3) <0; r1//1 > half in M22; the other half in M42 (half in S2 the other
half in S4)
6.b CFdrd
<1; r0//0 >
half in M12; the other half in M32 (half in S1 the other
half in S3) <1; r1//1 > half in M22; the other half in M42 (half in S2 the other
half in S4)
7.a CFir
<0; r0/0/1 > half in (M11; M12); the other half in (M31; M32). Also always
in M51.
(half in S1 the other half in S3) plus all in
S5 <0; r1/1/0 > half in (M21; M22); the other
half in (M41; M42)
(half in S2 the other half in S4)
7.b CFir
<1; r0/0/1 > half in (M11; M12); the other half in (M31; M32).
(half in S1 the other half in S3) <1; r1/1/0 > half in (M21; M22); the other
half in (M41; M42)
(half in S2 the other half in S4) 2.2.
b’ CFdsxw!x <1w0; 0//- >
half in (M31; M32); the other half in M51. Also 50% chances to
be detected in (M11; M12).
(half in S3 the other half in S5). 50% in S1 2.3.
a’ CFdsxwx <0w0; 0//- >
half in (M31; M32); the other half in M51. Also 50% chances to
be detected in (M11; M12).
(half in S3 the other half in S5). 50% in S1
To create the detection profiles with their occurrence probability we need to know the occurrence probabilities of the fault-primitives. As these probabilities are fab-sensitive data and are not available, to illustrate our approach we consider that all fault primitives have the same conditional occurrence probability. Thus, as we have 48 fault primitives, the conditional occurrence probability of each of them is taken as 1/48. Thus, the occurrence probability of each fault primitive is equal to Pf/48, where Pf is the probability that a cell is affected by a fault of any kind. Also, as mentioned earlier, for most of the two-cell FFMs the detecting sequence depends on the relation between the addresses of the victim and the aggressor
cells (this was reported in the fifth column of table 2 as “half in Si the other half in Sj”). Then, the occurrence probability of these faults has to be split in two parts, the one to be associated with Si and the other with Sj. This split may depend on the potential distribution of the aggressor cells in two groups: those having addresses that are lower than the address of the victim cell, and those having addresses that are higher than the address of the victim cell. One option is to consider that the number of victim cells of the first group is proportional to the number of memory cells that have lower addresses than the victim cell, and consider the similar for the second group. In this case, during fault injection, we will adapt the fault occurrence probability to the position of the cell in which we inject the fault. That is, for a memory bank comprising N words, there are @v - 1 addresses lower than the address @v of the victim cell, and N - @v addresses higher that the address of the victim cell. Thus, in this case the occurrence probability of the two- cell fault will be split in two parts (Pf/48)(@v - 1)/(N – 1) and (Pf/48)(N - @v)/(N – 1). However, it is more realistic to consider that the victim cells are distributed in the close proximity of the aggressor cell [37]. In this case we will have similar probabilities for the two groups. This approach was adopted in the case study considered here, but the different approach can also be implemented trivially.
Using the above considerations, we associate the corresponding probabilities to the different detection profiles defined by the detection-sequences instances reported in the fifth column of the tables 1 and 2. For example, as reported in the second row-fifth column of table 1 (detection sequence (S1; S3; S5)), the fault primitive < 0 / 1 / - > is always detected in the sequences S1, S3, and S5. Thus, we associate the probability Pf/48 of the fault primitive < 0 / 1 / - > to the detection profile (S1; S3; S5). On the other hand, as reported in the fourth row-fifth column of table 1 (detection sequence (S3; S5), 50% in S1), the primitive <1w0/1/- > is always detected in the sequences S3 and S5, and has 0.5 probability (50% chances in the table) to be detected in sequence S1. Thus, the Pf/48 occurrence probability of the primitive <1w0/1/- > is split in two detection profiles: Pf/96 for the detection profile (S3; S5), and Pf/96 for the detection profile (S1; S3; S5). Finally, as reported in the fourth row-fifth column of table 2 (detection sequence (half in S1 and S5, the other half in S3)), depending on the relation of the addresses of the aggressor cell and of victim cell, half of the faults corresponding to the primitive <1; 0/1/- > is always detected in S1 and S5, and the other half is always detected in S3. Thus, the Pf/48 occurrence probability of primitive <1; 0/1/- > is split in two detection profiles: Pf/96 for the detection profile (S1; S5), and Pf/96 for the detection profile (S3). This way, from tables 1 and 2 we obtain the detection profiles and their probabilities.
Then we get the identical detection profiles by adding their probabilities. The result is the 10 detection profiles reported in table 3, together with their occurrence probabilities.
Table 3: Statistical distribution of detection profiles. Detection Profile Probability (S1) Pf x 0.072916 (S2) Pf x 0.17708333 (S3) Pf x 0.14583333 (S4) Pf x 0.17708333 (S5) Pf x 0.0625 (S1; S3) Pf x 0.03125 (S1; S5) Pf x 0.04166666 (S2; S4) Pf x 0.14583333 (S3; S5) Pf x 0.04166666 (S1; S3; S5) Pf x 0.10416667