TL; DR
Die wichtigste Zahl zuerst: Die Fehleranzahl für einen fehlerfreien Speicher sollte 0 sein . Jede Zahl über 0 kann auf beschädigte / fehlerhafte Sektoren hinweisen.
Bildschirmerklärung
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
Daten / Testerklärung
MemTest führt eine Reihe von Tests durch, schreibt spezifische Muster in jeden Sektor des Speichers und ruft ihn ab. Wenn sich die abgerufenen Daten von den ursprünglich gespeicherten Daten unterscheiden, registriert MemTest einen Fehler und erhöht die Fehleranzahl um eins. Fehler sind normalerweise Anzeichen für fehlerhafte RAM-Streifen.
Da der Speicher nicht nur ein Notizblock ist, der Informationen enthält, sondern über erweiterte Funktionen wie das Zwischenspeichern verfügt, werden verschiedene Tests durchgeführt. Dies ist, was das Test #
anzeigt. MemTest führt eine Reihe verschiedener Tests durch, um festzustellen, ob Fehler auftreten.
Einige (vereinfachte) Testbeispiele:
- Testsektoren in dieser Reihenfolge: A, B, C, D, E, F. (seriell)
- Testsektoren in dieser Reihenfolge: A, C, E, B, D, F. (in Bewegung)
- Füllen Sie alle Sektoren mit Muster: aaaaaaa
- Fülle alle Sektoren mit einem zufälligen Muster.
Eine ausführlichere Beschreibung aller Tests finden Sie unter: https://www.memtest86.com/technical.htm#detailed
Test 0 [Adresstest, Laufende, kein Cache]
Testet alle Adressbits in allen Speicherbänken unter Verwendung eines laufenden Adressmusters.
Test 1 [Adresstest, eigene Adresse, sequentiell]
Jede Adresse wird mit einer eigenen Adresse geschrieben und anschließend auf Konsistenz überprüft. In der Theorie sollten frühere Tests Probleme mit der Speicheradressierung festgestellt haben. Dieser Test sollte alle Adressierungsfehler erkennen, die zuvor nicht erkannt wurden. Dieser Test wird nacheinander mit jeder verfügbaren CPU durchgeführt.
Test 2 [Adresstest, eigene Adresse, parallel]
Wie Test 1, aber der Test wird parallel mit allen CPUs und überlappenden Adressen durchgeführt.
Test 3 [Inversionen, Einsen und Nullen verschieben, sequentiell]
Dieser Test verwendet den Moving-Inversions-Algorithmus mit Mustern aller Einsen und Nullen. Der Cache ist aktiviert, obwohl er den Testalgorithmus bis zu einem gewissen Grad beeinträchtigt. Bei aktiviertem Cache dauert dieser Test nicht lange und sollte schnell alle "harten" Fehler und einige subtilere Fehler finden. Dieser Test ist nur eine kurze Überprüfung. Dieser Test wird nacheinander mit jeder verfügbaren CPU durchgeführt.
Test 4 [Inversionen, Einsen und Nullen verschieben, parallel]
Wie Test 3, jedoch werden alle CPUs parallel getestet.
Test 5 [Inversionen verschieben, 8 Bit pat]
Dies ist dasselbe wie bei Test 4, verwendet jedoch ein 8 Bit breites Muster aus "laufenden" Einsen und Nullen. Dieser Test erkennt subtile Fehler in "breiten" Speicherchips besser.
Test 6 [Inversionen verschieben, Zufallsmuster]
Test 6 verwendet den gleichen Algorithmus wie Test 4, aber das Datenmuster ist eine Zufallszahl und dessen Komplement. Dieser Test ist besonders effektiv, wenn es darum geht, datenempfindliche Fehler nur schwer zu erkennen. Die Zufallszahlenfolge ist bei jedem Durchgang unterschiedlich, sodass mehrere Durchgänge die Effektivität erhöhen.
Test 7 [Blockzug, 64 Züge]
Dieser Test beansprucht das Gedächtnis mit Hilfe von Movsl-Befehlen (Block Move) und basiert auf dem BurnBX-Test von Robert Redelmeier. Der Speicher wird mit Schiebemustern initialisiert, die alle 8 Bytes invertiert werden. Dann werden 4-MB-Speicherblöcke mit dem Befehl movsl verschoben. Nach Abschluss der Verschiebungen werden die Datenmuster überprüft. Da die Daten erst nach dem Verschieben des Speichers geprüft werden, kann nicht festgestellt werden, wo der Fehler aufgetreten ist. Die angegebenen Adressen gelten nur für den Ort, an dem das fehlerhafte Muster gefunden wurde. Da die Verschiebungen auf ein Speichersegment von 8 MB beschränkt sind, ist die fehlerhafte Adresse immer weniger als 8 MB von der angegebenen Adresse entfernt. Fehler aus diesem Test werden nicht zur Berechnung von BadRAM-Mustern verwendet.
Test 8 [Inversionen verschieben, 32 Bit pat]
Dies ist eine Variation des Moving-Inversions-Algorithmus, der das Datenmuster für jede aufeinanderfolgende Adresse um ein Bit nach links verschiebt. Die Startbitposition wird bei jedem Durchgang nach links verschoben. Um alle möglichen Datenmuster zu nutzen, sind 32 Durchgänge erforderlich. Dieser Test ist sehr effektiv bei der Erkennung datenempfindlicher Fehler, aber die Ausführungszeit ist lang.
Test 9 [Zufallszahlenfolge]
Dieser Test schreibt eine Reihe von Zufallszahlen in den Speicher. Durch Zurücksetzen des Startwerts für die Zufallszahl kann dieselbe Zahlenfolge für eine Referenz erstellt werden. Das anfängliche Muster wird geprüft und dann beim nächsten Durchgang ergänzt und erneut geprüft. Im Gegensatz zu den sich bewegenden Inversionen kann der Test jedoch nur in Vorwärtsrichtung geschrieben und geprüft werden.
Test 10 [Modulo 20, Einsen & Nullen]
Die Verwendung des Modulo-X-Algorithmus sollte Fehler aufdecken, die nicht durch Verschieben von Inversionen aufgrund von Cache- und Pufferinterferenzen mit dem Algorithmus erkannt werden. Wie bei Test Eins werden für Datenmuster nur Einsen und Nullen verwendet.
Test 11 [Bit-Fade-Test, 90 Minuten, 2 Muster]
Der Bit-Fade-Test initialisiert den gesamten Speicher mit einem Muster und wartet dann 5 Minuten. Anschließend wird der Speicher überprüft, um festzustellen, ob sich Speicherbits geändert haben. Es werden alle Einsen und alle Nullmuster verwendet.
Da fehlerhafte Sektoren manchmal funktionieren und ein anderes Mal nicht funktionieren, empfehle ich, MemTest einige Durchgänge ausführen zu lassen. Ein voller Durchgang ist eine abgeschlossene Testreihe, die bestanden wurde. (Die obigen Testreihen 1-11) Je mehr Durchgänge Sie fehlerfrei erhalten, desto genauer ist Ihr MemTest-Lauf. Ich laufe normalerweise ungefähr 5 Pässe, um sicher zu sein.
Die Fehleranzahl für einen fehlerfreien Speicher sollte 0 sein. Jede Zahl über 0 kann auf beschädigte / fehlerhafte Sektoren hinweisen.
Die ECC-Fehleranzahl sollte nur berücksichtigt werden, wenn auf gesetzt ECC
ist off
. ECC steht für Error-Correcting Code Memory und ist ein Mechanismus zum Erkennen und Korrigieren falscher Bits in einem Speicherzustand. Dies kann leicht mit den Paritätsprüfungen verglichen werden, die auf RAID- oder optischen Datenträgern durchgeführt wurden. Diese Technologie ist ziemlich teuer und wird wahrscheinlich nur in Server-Setups anzutreffen sein. Die ECC-Zählung zählt, wie viele Fehler durch den ECC-Mechanismus des Speichers korrigiert wurden. ECC sollte nicht für einen fehlerfreien RAM aufgerufen werden müssen, daher kann eine ECC-Fehleranzahl über 0 auch auf einen fehlerhaften Speicher hinweisen.
Fehlererklärung
Beispiel für Memtest, bei dem Fehler aufgetreten sind. Es zeigt, welcher Sektor / welche Adresse ausgefallen ist.
Die erste Spalte ( Tst ) zeigt, welcher Test fehlgeschlagen ist, die Nummer entspricht der Testnummer aus der oben bereits genannten Liste. Die zweite Spalte ( Pass ) zeigt , wenn dieser Test wurde bestanden. Im Fall des Beispiels besteht Test 7 nicht.
Die dritte Spalte ( Failing Address ) zeigt genau, welcher Teil des Speichers fehlerhaft ist. Ein solcher Teil hat eine Adresse, ähnlich einer IP-Adresse, die für diesen Datenspeicher eindeutig ist. Es wird angezeigt, welche Adresse fehlgeschlagen ist und wie groß der Datenblock ist. (0,8 MB im Beispiel)
Die vierte ( gute ) und fünfte ( schlechte ) Spalte zeigen die geschriebenen und die abgerufenen Daten an. Beide Spalten sollten im nicht fehlerhaften Speicher (offensichtlich) gleich sein.
Die sechste Spalte ( Err-Bits ) zeigt die Position der exakten fehlgeschlagenen Bits.
Die siebte Spalte ( Count ) zeigt die Anzahl von aufeinanderfolgenden Fehlern mit derselben Adresse und andernfalls Bits.
Schließlich zeigt die letzte Spalte sieben ( Chan ) den Kanal (wenn mehrere Kanäle im System verwendet werden), in dem sich der Speicherstreifen befindet.
Wenn es Fehler findet
Wenn MemTest Fehler entdeckt, finden Sie in dieser Super-User-Frage und ihrer akzeptierten Antwort die beste Methode, um festzustellen, welches Modul fehlerhaft ist :
Verwenden Sie den Eliminierungsprozess - entfernen Sie die Hälfte der Module und führen Sie den Test erneut aus ...
Wenn es keine Fehler gibt, wissen Sie, dass diese beiden Module in Ordnung sind. Legen Sie sie beiseite und testen Sie sie erneut.
Wenn es Fehler gibt, reduzieren Sie diese erneut auf die Hälfte (jetzt auf eines von vier Speichermodulen) und testen Sie sie erneut.
Aber nur weil einer der Tests fehlgeschlagen ist, sollten Sie nicht davon ausgehen, dass der andere nicht fehlschlägt (Sie könnten zwei fehlerhafte Speichermodule haben). Wenn Sie einen Fehler mit zwei Speichermodulen festgestellt haben, testen Sie diese beiden anschließend einzeln .
Wichtiger Hinweis: Mit Funktionen wie Memory Interleaving und unzureichenden Nummerierungsschemata für Speichermodulsockel einiger Motherboard-Hersteller kann es schwierig sein, festzustellen, welches Modul durch eine bestimmte Adresse dargestellt wird.