Testování pamětí (Memory BIST) Testování a spolehlivost ZS 2011/2012, 10. přednáška Ing. Petr Fišer, Ph.D. Katedra číslicového návrhu Fakulta informačních technologií ČVUT v Praze
MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
1
Testování pamětí - motivace Paměti tvoří více než 50% plochy čipu Jiný poruchový model Časté shluky poruch Jeden bit ovlivňuje druhý Porucha je ovlivněna čtením bitu Dynamické chování
nelze uvažovat model s jednou poruchou nelze testovat pouze každý bit Specializované algoritmy
Nutno testovat poruchy: 1. 2.
V paměťové matici V adresním dekodéru a zbytku logiky
MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
2
Poruchový model - SRAM 1. 2.
Přerušení (open) Sdružené kapacity (coupling capacitance)
MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
3
Poruchový model - DRAM 1. 2. 3. 4. 5. 6.
Data retention fault Refresh line stuck-at fault Bit-line voltage imbalance fault Coupling between word and bit line Single-ended bit-line voltage shift Precharge and decoder clock overlap
MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
4
Redukovaný poruchový model 1. 2. 3. 4. 5.
Stuck-at faults (SAF) Transition faults (TF) Coupling faults (CF) Neighborhood Pattern Sensitive faults (NPSF) Chyba adresového dekodéru (AF)
MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
5
Stuck-at Faults Porucha:
Buňka setrvává v log. 0 nebo 1
Jak testovat:
Do všech buňek zapsat 0 a přečíst Do všech buňek zapsat 1 a přečíst
Značení: </0>, </1>
MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
6
Transition Faults Porucha:
Buňka neprovede 01 nebo 10 přechod
Jak testovat:
Pro všechny buňky proveď 01 přechod a přečti Pro všechny buňky proveď 10 přechod a přečti
Značení: </0>, </1>
MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
[Agrawal, Bushnell, 2005]
7
Coupling Faults Porucha:
Zápis do jedné buňky (agresor, j) vyvolá změnu v jiné buňce (oběť, i) Případy:
2-coupling fault – mezi dvěma buňkami k-coupling fault – mezi k buňkami Inversion coupling fault – dojde k nastavení opačné hodnoty Idempotent coupling fault – dojde k nastavení stejné hodnoty State coupling fault – zápis určité hodnoty do buňky agresora způsobí změnu hodnoty oběti Dynamic coupling fault – čtení/zápis buňky agresora vyvolá nastavení oběti na 0 nebo 1
MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
8
Neighborhood Pattern Sensitive Faults Porucha:
Obsah jedné buňky ovlivní možnost změny obsahu jiné buňky
MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
9
Chyby adresového dekodéru Porucha:
Jakákoliv porucha v adresovém dekodéru Adresový dekodér je obyčejný kombinační obvod lze testovat klasicky
… ale není nutno, …
Případy:
U některých adres se buňka nenaadresuje U některých adres se nenaadresuje víc buňek Některé buňky nelze naadresovat Některé buňky lze adresovat více adresami
Jak otestovat:
viz dále
MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
10
Testování pamětí - shrnutí
Poruchy jsou jiného typu, než u běžné logiky Poruch je více nutno testovat jinak algoritmické testy
MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
11
„Pochodující“ testy – March Tests Notace w0 – zápis 0 w1 – zápis 1 - postupně od adresy 0 do adresy n-1 - postupně od adresy n-1do adresy 0 - v libovolném pořadí
MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
12
„Pochodující“ testy – March Tests Příklady
Pochodující element (w0) for ( i = 0; i < n; i++ ) { A[i] = 0; }
Pochodující element (r0, w1) for ( i = n-1; i <= 0; i++ ) { if ( A[i] != 0 ) error(); A[i] = 1; }
Pochodující element (r1, w0, r0) for ( i = 0; i < n; i++ ) { if ( A[i] != 1 ) error(); A[i] = 0; if ( A[i] != 0 ) error(); } MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
13
„Pochodující“ testy – March Tests Příklady konkrétních algoritmů MATS (Modified Algorithmic Test Sequence) MATS
(w0), (r0; w1), (r1)
MATS+
(w0), (r0; w1), (r1; w0)
MATS++
(w0), (r0; w1), (r1; w0; r0)
MARCH X
(w0), (r0; w1), (r1; w0), (r0)
MARCH Y
(w0), (r0; w1; r1), (r1; w0; r0), (r0)
MARCH C
(w0), (r0; w1), (r1; w0); (r0), (r0; w1), (r1; w0), (r0)
MARCH A
(w0), (r0; w1; w0; w1), (r1; w0; w1), (r1; w0; w1; w0), (r0; w1; w0)
MARCH B
(w0), (r0; w1; r1; w0; r0; w1), (r1; w0; w1), (r1; w0; w1; w0), (r0; w1; w0)
Marching 1/0
(w0), (r0; w1; r1), (r1; w0; r0), (w1), (r1; w0; r0), (r0; w1; r1)
MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
14
Redukovaný poruchový model 1. 2. 3. 4. 5.
Stuck-at faults (SAF) Transition faults (TF) Coupling faults (CF) Neighborhood Pattern Sensitive faults (NPSF) Chyba adresového dekodéru (AF)
MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
15
Chyby adresového dekodéru Jak otestovat: Teorém: Všechny poruchy adresového dekodéru jsou otestovány, pokud pochodující test obsahuje:
(wx), (rx, …, wx’), (rx’, …, wx).
MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
16
„Pochodující“ testy – March Tests Příklady konkrétních algoritmů MATS (Modified Algorithmic Test Sequence) Algoritmus
Složitost SAF
TF
CF
AF
MATS
4n
Y
some
MATS+
5n
Y
Y
MATS++
6n
Y
Y
MARCH X
6n
Y
Y
some
Y
MARCH Y
8n
Y
Y
some
Y
MARCH C
10n
Y
Y
some
Y
MARCH A
15n
Y
Y
some
Y
MARCH B
17n
Y
Y
some
Y
Marching 1/0 14n
Y
Y
MI-TSP-10, ČVUT FIT, © Petr Fišer, 2011
Y
Y 17