Ich las gerade eine andere Frage zu Memtest und fragte mich: Wie funktioniert Memtest86 mit schlechtem RAM?
Denken Sie darüber nach: Memtest86 muss Informationen darüber speichern, wie groß der Arbeitsspeicher ist, was in den Arbeitsspeicher gestellt wird, um später zu vergleichen, wo der Bildschirm aktualisiert werden soll und vieles mehr. Die Verwendung einer Variablen setzt voraus, dass der Arbeitsspeicher ordnungsgemäß funktioniert. Aber wie können Sie zuverlässige Ergebnisse erzielen, wenn Sie das Programm auf einem möglicherweise defekten RAM ausführen?
Eine Analogie dazu ist das Ausführen eines Festplattenprüfprogramms von der Festplatte, die Sie prüfen. Das würden Sie niemals tun, ein fehlerhafter Block könnte das Programm auf viele unerwartete Arten beeinflussen
Wie funktioniert Memtest86 mit schlechtem RAM?
quelle
Antworten:
Meistens, weil die Menge an RAM, die zum Laden von memtest benötigt wird, extrem gering ist. Wenn das Programm ausgeführt wird, ist der Speicher in diesem Bereich wahrscheinlich in Ordnung.
Die Chance, dass-
Ist -hoch- unwahrscheinlich.
quelle
Memtest ist insofern ziemlich langlebig, als es nicht wirklich vom RAM abhängt, den es testet.
Zum Beispiel Test 0 verwendet einen Fuß diejenigen Algorithmus und alle es für diesen Test erfordert ein einzelner Zeiger (wahrscheinlich im Cache), weil es nur ist zwei aufeinanderfolgende Speicheradressen verglichen wird .
Wenn wir also einen 3-Bit-RAM-Stick haben, lädt memtest ihn folgendermaßen:
Und wenn die erste Adresse beschädigt ist, werden zwei zufällige Positionen verglichen:
Und es wird immer noch scheitern, auch wenn die Variablen von memtest beschädigt sind.
quelle
Memtest muss unbedingt davon ausgehen, dass mindestens der Speicher, in den es geladen wird, gut ist. Danach kann der gesamte Rest des Speichers gescannt und getestet werden.
Es kann sein, dass es weiterhin Fehler in seinem eigenen Speicher lesen und erkennen kann, da es als einziges geladenes Programm auf praktisch den gesamten Speicher des Systems zugreifen und diesen Speicher daher mit a lesen und vergleichen kann "Bekannt gute" Probe.
quelle
Indem ich klein bin. Wenn ein Teil des Arbeitsspeichers defekt ist, ist es weniger wahrscheinlich, dass sich ein Teil des Programms an einer der defekten Stellen befindet, je kleiner das Programm ist. In Anbetracht der Tatsache, dass das Booten weit genug entfernt ist, um den Speichertest zu laden, Firmware-Code über den RAM-Speicher benötigt. Wenn dies möglich ist, funktionieren die niedrigen RAM-Bereiche wahrscheinlich gut genug, damit memtest darauf ausgeführt werden kann.
quelle
Nun, das ist, was Memtest tut - es schreibt verschiedene (bekannte) Muster in Ihren RAM, liest sie zurück und vergleicht sie. Wenn es eine Fehlanpassung gibt, muss Ihr RAM beschädigt sein.
Obwohl dies zutrifft, haben Sie in einigen Fällen keine andere Wahl. Solange Sie das Programm erfolgreich laden können, sollte es in der Lage sein, Diagnoseaufgaben auszuführen (auch wenn es auf einem fehlerhaften Medium ausgeführt wird).
Nun, es muss sich zuerst in den Speicher laden. In den meisten Fällen ist dieses Gedächtnis noch gut. Ist dies nicht der Fall, wird Memtest höchstwahrscheinlich feststellen, dass das Programm selbst beschädigt ist, indem einige vorhandene Variablen mit einer Prüfsumme verglichen werden. Falls sie nicht übereinstimmen, werden Sie sofort feststellen, dass entweder Ihr Arbeitsspeicher fehlerhaft ist oder die heruntergeladene Kopie beschädigt ist (und es wäre eine triviale Aufgabe, festzustellen, ob letztere die Ursache ist oder nicht).
TL, DR: Memtest86 + funktioniert nur, wenn das erste Megabyte Ihres Arbeitsspeichers noch in Ordnung ist (der Ort, an dem es am wahrscheinlichsten geladen würde). Angenommen, dieser Bereich ist beschädigt, würde Memtest86 + selbst einfach nicht funktionieren (was ein ziemlich schneller Indikator dafür ist, dass Ihr RAM schlecht ist, ohne die Tests selbst ausgeführt zu haben).
quelle
Wenn der Arbeitsspeicher, in dem die Anwendung die Variablen speichert, fehlerhaft ist, schlagen die meisten Tests fehl.
Der Algorithmus schreibt alle Arten von Mustern und prüft dann, ob sie gut geschrieben sind, indem er sie erneut liest. Wenn ein Schreib- oder Lesevorgang nicht korrekt verlief, schlägt der betreffende Test fehl. Wenn Sie die meisten Tests ausführen und mehrere Stunden laufen lassen, können Sie feststellen, wie stabil Ihr RAM ist ...
quelle