Funktionsweise RAMtests

Ashram

Cadet 3rd Year
Registriert
Sep. 2002
Beiträge
36
Hi Forumbaseler!

Ich hätte eine Frage bezüglich RAMtests:
Die Testverfahren laufen ja normalerweise "zerstörerisch" ab, d.h. es werden gewisse Werte ins RAM geschrieben, die die "normalen" Werte darin überschreiben. Eine solche Variante ist z.B. der Checkerboard-Test, in dem 0xAA bzw. 0x55 Werte abwechselnd geschrieben werden. Die Frage, die ich jetzt bei solchen Tests habe, ist:

Da der Test ja zerstörerisch abläuft, wie kann dann das Testprogramm überhaupt ablaufen? Würde sich dieses nicht quasi selbst zerstören während es abläuft? Das Programm muss ja quasi im RAM liegen während der Ausführung, oder? :rolleyes:

Gibts da Leute mit Erfahrungen?
 
kann sich ja im Prozessor cache verkriechen^^
oder es liegt mit einer hohen wahrscheinlichkeit in einem funktionierendem RAM block
 
RAM-Tests funktionieren eben nicht im Destructor-Prinzip sondern eher mit Flush&Fill.
Kurz erklärt: Das Testprogramm kann nur die Adressen des Arbeitsspeichers mit Daten beschreiben, deren Halbwertszeit abgelaufen ist. Alle Programme mit aktuellem Zugriff liegen in gesperrten Bereichen, auf die der Test keinen Zugriff hat, diese werden also nicht getestet.
Deswegen gibt es zB auch beim Memtest86+ eine Boot-CD von der der Test abläuft um dieses Problem zu umgehen, da dann außer dem Programm selbst keine weiteren gesperrten Daten im RAM liegen.
 
Oder es wechselt die Position, sofern das möglich ist. Sitzt quasi zuerst auf 1, testet dann 2, setzt sich dann auf 2, testet dann 1 und dann 3 usf.
 
Hmmm, das sind alles valide Ansätze, ich frage mich jedoch was jetzt tatsächlich stimmt... ich sehe nämlich ein Problem: Der Checkerboard-Test würde, wenn gewisse Teilbereiche des RAM nicht beschrieben werden könnten, ja nicht erfolgreich durchgeführt werden können... Da ist ja der Sinn dass ein Muster folgender Struktur entsteht:

1. Zeile: 0 1 0 1 0 1 0 1 0 1 0 1 0
i. Zeile: ...................................
n. Zeile: 1 0 1 0 1 0 1 0 1 0 1 0 1

Durch das Aufsummieren der ersten und letzten Zeile muss also eine Zeile der Form:

1 1 1 1 1 1 1 1 1 1 1 1 1

entstehen. Das passier auch bei Zeile 2 mit n-1, usw... Ich sehe da Probleme wenn ich manche Teile nicht beschreiben kann...
Könnte ich sowas tatsächlich irgendwie aus dem RAM "auslagern"?
 
Ich meine herauszulesen, dass Du selbst etwas in der Richtung programmieren möchtest. Dann sollten ja die Fähigkeiten da sein, den Source Code eines bekannten Memorytesters zurchzusehen. ;)
 
Der Checkerboard-Test funktioniert, weil der RAM eben nicht voll beschrieben wird.
Es gibt verschiedene Unterteilungen, wie zum Beispiel das einzelne Bit, ein Cluster und ein Adressbereich. Jedes Programm verwendet einen oder mehrere Adressbereiche ausschließlich für sich oder gibt ihn mit Bedingungen frei. Daten in der Zwischenablage sind ein schönes Beispiel für freigegebene Speicherbereiche. Innerhalb dieses Bereiches kann der Checkertest dann durchgeführt werden und die Summierung klappt dann auch... aber eben nicht auf 100% des RAMs..
 
Zurück
Oben