TL; DR
Najważniejsza liczba na początku: liczba błędów dla zdrowej pamięci powinna wynosić 0 . Każda liczba powyżej 0 może wskazywać na uszkodzone / wadliwe sektory.
Objaśnienie ekranu
Memtest86+ v1.00 | Progress of the entire pass (test series)
CPU MODEL and clock speed | Progress of individual, current test
Level 1 cache size & speed | Test type that is currently running
Level 2 cache size & speed | Part of the RAM (sector) that is being tested
RAM size and testing speed | Pattern that is being written to the sector
Information about the chipset that your mainboard uses
Information about your RAM set-up, clock speed, channel settings, etc.
WallTime Cached RsvdMem MemMap Cache ECC Test Pass Errors ECC Errs
--------- ------ ------- -------- ----- --- ---- ---- ------ --------
Elapsed Amount Amount Mapping on on Test # of # of # of ECC
time of RAM of used or or type pass errors errors
cached reserved off off done found found
RAM, not
tested
Wyjaśnienie danych / testu
MemTest przeprowadza szereg testów, zapisuje określone wzorce w każdym sektorze pamięci i pobiera je. Jeśli odzyskane dane różnią się od danych, które zostały pierwotnie zapisane, MemTest rejestruje błąd i zwiększa liczbę błędów o jeden. Błędy są zwykle oznakami złych pasków pamięci RAM.
Ponieważ pamięć nie jest tylko notatnikiem zawierającym informacje, ale ma zaawansowane funkcje, takie jak buforowanie, wykonuje się kilka różnych testów. To właśnie Test #
wskazuje. MemTest przeprowadza szereg różnych testów, aby sprawdzić, czy wystąpią błędy.
Niektóre (uproszczone) przykłady testów:
- Sektory testowe w następującej kolejności: A, B, C, D, E, F. (szeregowy)
- Sektory testowe w następującej kolejności: A, C, E, B, D, F. (Przeprowadzka)
- Wypełnij wszystkie sektory wzorem: aaaaaaaa
- Wypełnij wszystkie sektory losowym wzorem.
Bardziej szczegółowy opis wszystkich testów: https://www.memtest86.com/technical.htm#detailed
Test 0 [Test adresu, chodzenie, brak pamięci podręcznej]
Testuje wszystkie bity adresu we wszystkich bankach pamięci przy użyciu wzorcowego adresu chodzącego.
Test 1 [Test adresu, własny adres, Sekwencyjny]
Każdy adres jest zapisywany z własnym adresem, a następnie sprawdzany pod kątem spójności. Teoretycznie poprzednie testy powinny wykryć wszelkie problemy z pamięcią. Ten test powinien wykryć wszelkie błędy adresowania, które w jakiś sposób nie zostały wcześniej wykryte. Ten test jest wykonywany kolejno dla każdego dostępnego procesora.
Test 2 [Test adresu, własny adres, Równoległy]
To samo co test 1, ale testowanie odbywa się równolegle przy użyciu wszystkich procesorów i nakładających się adresów.
Test 3 [Przenoszenie inwersji, zer i jedynek, sekwencyjne]
W tym teście zastosowano algorytm odwracania ruchu z wzorcami wszystkich zer i jedynek. Pamięć podręczna jest włączona, nawet jeśli w pewnym stopniu zakłóca działanie algorytmu testowego. Po włączeniu pamięci podręcznej ten test nie trwa długo i powinien szybko znaleźć wszystkie „twarde” błędy oraz kilka bardziej subtelnych błędów. Ten test to tylko szybkie sprawdzenie. Ten test jest wykonywany kolejno dla każdego dostępnego procesora.
Test 4 [Przenoszenie inwersji, zer i jedynek, Równolegle]
To samo co test 3, ale testowanie odbywa się równolegle przy użyciu wszystkich procesorów.
Test 5 [Moving inversions, 8 bit pat]
Jest to to samo co test 4, ale wykorzystuje 8-bitowy wzór „chodzących” zer i jedynek. Ten test lepiej wykryje subtelne błędy w „szerokich” układach pamięci.
Test 6 [Ruchome inwersje, losowy wzór]
Test 6 wykorzystuje ten sam algorytm co test 4, ale wzorzec danych jest liczbą losową i jest uzupełnieniem. Ten test jest szczególnie skuteczny w wykrywaniu trudnych do wykrycia błędów wrażliwych na dane. Sekwencja liczb losowych jest różna dla każdego przejścia, więc wiele przebiegów zwiększa efektywność.
Test 7 [ruch bloku, 64 ruchy]
Ten test akcentuje pamięć za pomocą instrukcji ruchu bloku (movsl) i jest oparty na teście burnBX Roberta Redelmeiera. Pamięć jest inicjowana za pomocą wzorców przesuwu, które są odwracane co 8 bajtów. Następnie bloki pamięci o wielkości 4 MB są przenoszone za pomocą instrukcji movsl. Po zakończeniu przenoszenia wzorce danych są sprawdzane. Ponieważ dane są sprawdzane dopiero po zakończeniu przenoszenia pamięci, nie można ustalić, gdzie wystąpił błąd. Podane adresy dotyczą tylko miejsca, w którym znaleziono zły wzór. Ponieważ ruchy są ograniczone do segmentu pamięci o wielkości 8 MB, adres powodujący awarię zawsze będzie znajdował się w odległości mniejszej niż 8 MB od adresu zgłaszanego. Błędy z tego testu nie są wykorzystywane do obliczania wzorców BadRAM.
Test 8 [Moving inversions, 32 bit pat]
Jest to odmiana algorytmu ruchomych inwersji, który przesuwa wzór danych w lewo o jeden bit dla każdego kolejnego adresu. Początkowa pozycja bitu jest przesuwana w lewo dla każdego przejścia. Aby wykorzystać wszystkie możliwe wzorce danych, wymagane są 32 przebiegi. Ten test jest dość skuteczny w wykrywaniu błędów wrażliwych na dane, ale czas wykonania jest długi.
Test 9 [Losowa sekwencja numerów]
Ten test zapisuje w pamięci szereg liczb losowych. Przez zresetowanie nasion dla liczby losowej można utworzyć tę samą sekwencję liczb dla odniesienia. Początkowy wzór jest sprawdzany, a następnie uzupełniany i sprawdzany ponownie przy następnym przejściu. Jednak, w przeciwieństwie do ruchomych inwersji, pisanie i sprawdzanie testu można wykonać tylko w kierunku do przodu.
Test 10 [Modulo 20, jedynki i zera]
Użycie algorytmu Modulo-X powinno wykryć błędy, które nie są wykrywane przez przenoszenie inwersji z powodu buforowania i buforowania zakłóceń w algorytmie. Podobnie jak w przypadku testu, do wzorców danych używane są tylko jedynki i zera.
Test 11 [Test zanikania bitów, 90 min, 2 wzory]
Test wygaszania bitów inicjuje całą pamięć wzorcem, a następnie śpi przez 5 minut. Następnie pamięć jest sprawdzana, aby sprawdzić, czy jakieś bity pamięci się zmieniły. Używane są wszystkie wzorce zerowe.
Ponieważ złe sektory mogą czasami działać, a nie działać innym razem, zalecam, aby MemTest uruchomił kilka przejść. Pełne zaliczenie to ukończona seria testów, która przeszła pomyślnie. (Powyższa seria testów 1-11) Im więcej przejść bez błędów, tym dokładniejszy przebieg MemTest. Zwykle biegam około 5 podań, aby się upewnić.
Liczba błędów dla zdrowej pamięci powinna wynosić 0. Każda liczba powyżej 0 może wskazywać na uszkodzone / wadliwe sektory.
Liczbę błędów ECC należy brać pod uwagę tylko wtedy, gdy ECC
jest ustawiona na off
. ECC oznacza korekcję błędów w kodzie pamięci i jest to mechanizm wykrywania i korygowania błędnych bitów w stanie pamięci. Można to nieco porównać do kontroli parzystości wykonanej na macierzy RAID lub nośniku optycznym. Ta technologia jest dość droga i prawdopodobnie będzie występować tylko w konfiguracjach serwerów. Liczba ECC liczy, ile błędów zostało poprawionych przez mechanizm ECC pamięci. ECC nie powinno być wywoływane dla zdrowej pamięci RAM, więc liczba błędów ECC powyżej 0 może również wskazywać na złą pamięć.
Wyjaśnienie błędu
Przykład Memtestu, który napotkał błędy. Pokazuje, który sektor / adres uległ awarii.
Pierwsza kolumna ( Tst ) pokazuje, który test się nie powiódł, liczba odpowiada numerowi testu z listy już wspomnianej powyżej. Druga kolumna ( zaliczenie ) pokazuje, czy ten test został zaliczony. W przypadku przykładu test 7 nie ma zaliczeń.
Trzecia kolumna ( Niepowodzenie adresu ) pokazuje dokładnie, która część pamięci zawiera błędy. Taka część ma adres, podobnie jak adres IP, który jest unikalny dla tego miejsca przechowywania danych. Pokazuje, który adres się nie powiódł i jak duża jest porcja danych. (0,8 MB w przykładzie)
Czwarta ( dobra ) i piąta ( zła ) kolumna pokazują odpowiednio zapisane i odzyskane dane. Obie kolumny powinny być równe w nie uszkodzonej pamięci (oczywiście).
Szósta kolumna ( Err-Bits ) pokazuje pozycję dokładnie tych bitów, które zawodzą.
Siódma kolumna ( liczba ) pokazuje liczbę kolejnych błędów o tym samym adresie i błędnych bitach.
Wreszcie ostatnia kolumna siódma ( Chan ) pokazuje kanał (jeśli w systemie jest używanych wiele kanałów), w którym znajduje się pasek pamięci.
Jeśli znajdzie błędy
Jeśli MemTest odkrywa żadnych błędów, najlepszą metodę określania, który moduł jest wadliwy jest pokryta w tym Super pytanie użytkownika i jego zaakceptowanej odpowiedzi:
Użyj procesu eliminacji - usuń połowę modułów i ponownie uruchom test ...
Jeśli nie ma żadnych awarii, to wiesz, że te dwa moduły są dobre, więc odłóż je na bok i przetestuj ponownie.
Jeśli wystąpią awarie, zmniejsz ponownie do połowy (teraz do jednego z czterech modułów pamięci), a następnie ponownie przetestuj.
Ale tylko dlatego, że jeden z nich nie przeszedł testu, nie zakładaj, że drugi nie zawiedzie (możesz mieć dwa niesprawne moduły pamięci) - jeśli wykryłeś awarię z dwoma modułami pamięci, przetestuj każdy z nich osobno .
Ważna uwaga: w przypadku funkcji takich jak przeplatanie pamięci i słabe schematy numeracji gniazd modułów pamięci przez niektórych producentów płyt głównych, może być trudno ustalić, który moduł jest reprezentowany przez dany adres.