Testy pamięci RAM
Uszkodzona pamięć RAM może być powodem
niestabilnej pracy komputera.
Istnieje długa lista oprogramowania do
diagnozowania pamięci RAM.
diagnozowania pamięci RAM.
Aplikacje zawierają szereg algorytmów testujących
różniących się:
• rodzajem wykrywanych błędów;
• współczynnikiem pokrycia uszkodzeń;
• czasem wykonania testów.
Testy pamięci RAM - typy
• Kroczące (walking) – zmienia się stan wybranej
komórki a następnie przywraca się jej pierwotny
stan. Czynność jest powtarzana dla wszystkich
komórek.
• Maszerujące (marching) – zmienia się stan wybranej
• Maszerujące (marching) – zmienia się stan wybranej
komórki ale nie przywraca się jej pierwotnego stanu.
Czynność jest powtarzana dla wszystkich komórek.
• Galopujące (galloping) – dokonywana jest operacja
na komórce bazowej a następnie sprawdza się, czy
nie uległ zmianie stan w innej komórce.
Algorytmy testowania pamięci
RAM - notacja
• operator powtarzania operacji dla wszystkich
komórek w kolejności narastającej – ⇑
• operator powtarzania operacji dla wszystkich
komórek w kolejności malejącej – ⇓
komórek w kolejności malejącej – ⇓
• operacja zapisu zadanego kodu do komórki
pamięci – W(c)
• operacja odczytu z komórki pamięci wraz z
sprawdzeniem czy komórka zawiera określony
kod – R(c)
• przykład – ⇑W(0)⇑R(0)⇑W(1)⇑R(1)
Algorytmy testowania pamięci
RAM – notacja, pseudokod
Procedure Butterfly
{ 1: write 0 in all cells;
2: for i = 0 to n-1
{ complement cell i;
dist = 1;
while dist <= maxdist /* maxdist < 0.5*col/row
{
{
read cell at dist north from cell[i];
read cell at dist east from cell[i];
read cell at dist south from cell[i];
read cell at dist west from cell[i];
read cell[i];
dist *= 2; /* or dist += skip */
}
complement cell[i]; }
3: write 1 in all cells;
4: replay Step 2; }
Test MSCAN
• Należy do najprostszych, tradycyjnych testów;
• Polega na wpisaniu do.. i odczytaniu z komórki pamięci
wartości 0 a następnie wartości 1;
• Notacja: – ⇑W(0)⇑R(0)⇑W(1)⇑R(1)
• Złożoność obliczeniowa testu L wynosi 4N (gdzie N – liczba
komórek pamięci).
komórek pamięci).
• Niektóre błędy w działaniu dekodera adresu nie zostaną
wykryte;
• Uszkodzenia SAF będą wykryte pod warunkiem poprawnego
działania dekodera adresu;
• Nie wszystkie błędy TF i CF zostaną wykryte ponieważ w teście
nie są wymuszane wszystkie rodzaje zmiany stanów.
Test Checkerboard
• Polega na wpisaniu do.. i
odczytaniu z komórek pamięci
wartości 0 i 1 naprzemiennie
by utworzyły matrycę
by utworzyły matrycę
szachownicy;
• Prostota implementacja;
• Złożoność obliczeniowa testu
L wynosi 4N.
Test GALPAT
Polega na:
a) wpisaniu do jednej komórki (bazowej) stanu 0 a do
pozostałych komórek stanu 1 a następnie odczytywaniu
stanu pary komórek, komórki bazowej i kolejnej komórki
niebazowej;
b) powtórzeniu czynności z punktu a) dla stanu logicznego 1;
c) powtórzeniu czynności a) + b) dla wszystkich pozostałych
c) powtórzeniu czynności a) + b) dla wszystkich pozostałych
komórek pamięci traktując je kolejno jako bazowe;
•
Duża dokładność testowania, wykrywa i lokalizuje
wszystkie błędy typu AFs, TFs, CFs, i SAFs;
•
Złożoność obliczeniowa testu L wynosi 4N
2
+4N.
Testy o podobnej strukturze do GALPAT
Walking 1/0
•
Podobne pokrycie błędów z wyjątkiem błędów
opóźnień zapisu.
•
Złożoność obliczeniowa testu L = 2N
2
+2N
Butterfly
•
Podobne pokrycie błędów, ograniczenia dla AFS.
•
Złożoność obliczeniowa testu L wynosi
2(3N+5N(log
2
N-1))
Testy „maszerujące”
•
Podstawowy – wykrywa błędy SAF i AF pod warunkiem,
ż
e znane jest zachowanie przy błędnym wybieraniu wielu
komórek, złożoność obliczeniowa testu L= 4N.
•
MATS+ – wykrywa błędy SAF i AF, złożoność
obliczeniowa testu L= 5N.
obliczeniowa testu L= 5N.
•
MATS++ – wykrywa błędy SAF, AF oraz TF, złożoność
obliczeniowa testu L= 6N.
•
March X – wykrywa błędy SAF, AF, TF oraz Cfin
nieskorelowane, złożoność obliczeniowa testu L= 6N.
•
March Y – wykrywa błędy SAF, AF, TF oraz Cfin
nieskorelowane i skorelowane, złożoność L= 8N.
Testy błędów PSF
•
SPSF – należy wykonać sprawdzenie dla wszystkich 2
k
kombinacji stanów komórek określonych przez
rozpatrywany model sąsiedztwa.
•
APSF – dla stanu 0 i 1 komórki bazowej należy wykonać
sprawdzenie (weryfikację stanu) przy zmianie stanu (↑↓)
sprawdzenie (weryfikację stanu) przy zmianie stanu (↑↓)
komórek sąsiednich, liczba sekwencji testowych (k-1)2
k
.
•
PPSF – dla zmiany stanu komórki bazowej (↑↓) należy
sprawdzić, czy nie zostanie zmieniony stan komórek
sąsiednich, liczba sekwencji testowych 2
k
.
•
Błędy k-sprzężeń, dowolne rozproszenie k komórek
Wydajność testów
Pojemno
ść
pami
ę
ci [Mbit]
Test
Zło
ż
ono
ść
1
4
16
64
256
1024
2048
MSCAN
4N
4,00E+06
1,60E+07
6,40E+07
2,56E+08
1,02E+09
4,10E+09
8,19E+09
Checkerboard
4N
4,00E+06
1,60E+07
6,40E+07
2,56E+08
1,02E+09
4,10E+09
8,19E+09
GALPAT
4N
2
+4N
4,00E+12
6,40E+13
1,02E+15
1,64E+16
2,62E+17
4,19E+18
1,68E+19
Walking 1/0
4N
2
+2N
4,00E+12
6,40E+13
1,02E+15
1,64E+16
2,62E+17
4,19E+18
1,68E+19
Sliding diagonal
1/0
2N
3/2
+6n
2,01E+09
1,60E+10
1,28E+11
1,02E+12
8,19E+12
6,55E+13
1,85E+14
Butterfly
2(3N+5N(log
2
N-
1))
1,95E+08
8,61E+08
3,77E+09
1,63E+10
7,05E+10
3,02E+11
6,25E+11
MATS
4N
4,00E+06
1,60E+07
6,40E+07
2,56E+08
1,02E+09
4,10E+09
8,19E+09
MATS+
5N
5,00E+06
2,00E+07
8,00E+07
3,20E+08
1,28E+09
5,12E+09
1,02E+10
MATS++
6N
6,00E+06
2,40E+07
9,60E+07
3,84E+08
1,54E+09
6,14E+09
1,23E+10
March X
6N
6,00E+06
2,40E+07
9,60E+07
3,84E+08
1,54E+09
6,14E+09
1,23E+10
March Y
8N
8,00E+06
3,20E+07
1,28E+08
5,12E+08
2,05E+09
8,19E+09
1,64E+10
March C
11N
1,10E+07
4,40E+07
1,76E+08
7,04E+08
2,82E+09
1,13E+10
2,25E+10
March A
15N
1,50E+07
6,00E+07
2,40E+08
9,60E+08
3,84E+09
1,54E+10
3,07E+10
March B
17N
1,70E+07
6,80E+07
2,72E+08
1,09E+09
4,35E+09
1,74E+10
3,48E+10
Wydajność testów
Pojemno
ść
pami
ę
ci [Mbit]
Test
Czas
1
4
16
64
256
1024
2048
MSCAN
s
0,02
0,08
0,32
1,28
5,12
20,48
40,96
Checkerboard
s
0,02
0,08
0,32
1,28
5,12
20,48
40,96
GALPAT
dni/lat
0,23
3,70
59,26
2,60
41,56
665,00
2660,01
Walking 1/0
dni/lat
0,23
3,70
59,26
2,60
41,56
665,00
2660,01
Sliding diagonal
1/0
min/h
0,17
1,34
10,67
1,42
11,38
91,03
257,47
Butterfly
min
0,02
0,07
0,31
1,36
5,87
25,20
52,11
MATS
s
0,02
0,08
0,32
1,28
5,12
20,48
40,96
MATS+
s
0,03
0,10
0,40
1,60
6,40
25,60
51,20
MATS++
s
0,03
0,12
0,48
1,92
7,68
30,72
61,44
March X
s
0,03
0,12
0,48
1,92
7,68
30,72
61,44
March Y
s
0,04
0,16
0,64
2,56
10,24
40,96
81,92
March C
s
0,06
0,22
0,88
3,52
14,08
56,32
112,64
March A
s
0,08
0,30
1,20
4,80
19,20
76,80
153,60
March B
s
0,09
0,34
1,36
5,44
21,76
87,04
174,08
Pokrycie klas błędów
klasy bł
ę
d
ó
w
Test
AF
SAF
TF
CFin
CFid
TF-CF
CFin-Cfin
MSCAN
±
+
±
Checkerboard
±
+
±
GALPAT
+
+
+
+
+
±
±
Walking 1/0
+
+
+
+
+
±
±
Butterfly
±
+
+
±
±
MATS
+
MATS+
+
+
MATS++
+
+
+
March X
+
+
+
+
March Y
+
+
+
+
+
March C
+
+
+
+
+
+
March A
+
+
+
+
+
March B
+
+
+
+
+
+
Testy pamięci n
××××
m bitowej
•
Przedstawione testy dotyczyły
pamięci n
×
1 bit;
•
Dla pamięci n
×
m bit wzorce
jednobitowe 0,1 zastępuje się
wzorcami wielobitowymi;
wzorcami wielobitowymi;
•
Podstawowe wzorce są
słowami kodu Reeda Millera.
•
Każdy test należy powtórzyć
log(m) razy.