RAM-Test

Speichertestprogramm Z9001
Volker Pohlers, 2010

nach FA12/86 und Z1013-Programm RAMBUG v. G.Steinbrecht
Original mc 12/82

Abfrage der Parameter und Lauf. Hier wurde ein Fehler im Bereich EE00-EE6F im Refresh-Test festgestellt. durch Verkleinern des RAM-Bereiches in weiteren Durchläufen kann bis auf einzelne Bits hinab getestet werden.

Einzelbit-Test (mit richtiger Reihenfolge der Bitnummern)

Änderung: 09.10.2015: Die Reihenfolge der Bitnummern war genau falsch herum. Dank an Sven H. für den Hinweis!

RAMTEST ist ein komfortables, universelles und relativ umfangreiches Speichertestprogramm, das mit verschiedenen Methoden versucht, die Fehler in RAM-Speichern, wenn vorhanden zu entdecken.

Um Speicherplatz zu sparen, wurden Unterprogramme des Monitor verwendet. Das Programm holt sich alle Informationen, die es zum Arbeiten braucht, im Dialog mit dem Benutzer und zeigt das Testergebnis in tabellarischer Form an.

Das Testprogramm bietet sechs verschiedene Tests:

Buffer/Chip-Test

Der Speicher wird nacheinander geprüft, ob er die Muster 55H und AAH annimmt. Damit lassen sich Aussagen über defekte Speicher-IS, Unterbrechungen, fehlerhafte Treiber-IS usw. treffen.

Peak-Test

Der Speicher wird mit allen Bitmustern beschrieben, die die sich ergeben, wenn man eine „1“ durch ein Nullbyte schiebt. Ist der Schreibvorgang beendet, wird getestet, ob noch alles vorhanden ist. Damit jede Speicherzelle auch jedes Muster „abbekommt“, geschieht dieser Vorgang neunmal, immer um Eins verschoben.

Valley-Test

Dieser Test funktioniert analog dem vorhergenannten, nur wird hier eine „0“ durch ein FFH-Byte geschoben.

Worstcase-R/W-Test

Dieser Test basiert auf den höheren Anforderungen, die der zyklische Blockladebefehl des U 880D an den Speicher stellt, und zwar meist bei dynamischen RAMs an die Qualität der Spannungsversorgung und deren Abblockung. Hier werden Datenblöcke mit Hilfe des LDDR-Befehls im Speicher kopiert.

Refresh-Test

Der Speicher wird in acht Zyklen jeweils mit einem Muster beschrieben, das sich aus dem vorherigen Inhalt des Speichers ergibt. Dann wird einige Sekunden gewartet, danach geprüft, ob das Muster noch immer im Speicher vorhanden ist.

M1-Test

Da der U 880D für Befehlslesezyklen eine kürzere Zugriffszeit des Speichers als bei normalen Lese- oder Schreibzyklen erfordert, kann es vorkommen, dass sich ein Speicher zwar beschreiben und lesen lässt, aber MC-Programme Fehler machen oder ganz abstürzen. Beim M1-Test wird daher ein kleines MC-Programm in den Speicher geschrieben und gestartet. Es hat die Eigenschaft, Einzelbitfehler zu erkennen und auch bei deren Auftreten zum Testprogramm zurückzukehren. Dieser Test erfordert Blöcke, die grösser als 20H sind.

Das Programm erfragt nach dem Start mit „RAMTEST“ selbsttätig Anfangs- und Endadresse sowie die Blocklänge, in die der Speicher unterteilt werden soll, und außerdem die Tests, die durchgeführt werden sollen. In der Adresseingabe kann mit CTRL-C zum Monitor zurückgekehrt werden.

Die kleinstmögliche Anfangsadresse ist 1300h.

Der Adressbereich muss so gewählt werden, dass die Division durch die Blocklänge ohne Rest aufgeht. Sonst werden neue Eingabedaten verlangt. Gut nutzbar ist eine Blockanzahl von 16, d.h. Blocklänge = Bytezahl ohne letzte Null.

Beispiel des Eingabedialogs:

         RAM-Test Anfang : 4000
         RAM-Test Ende   : 7FFF
         --> Bytezahl    : 4000
         Blocklaenge     : 400
         --> Blockanzahl : 16

         Welche Test's ?

         Buff/Chip-Test (J/N) ? J
         Peak-Test      (J/N) ? J
         Valley-Test    (J/N) ? J
         Worstcase-R/W  (J/N) ? J
         Refresh-Test   (J/N) ? J
         M1-Test        (J/N) ? J

         richtig  (J/N) ? J

Nach dem Teststart werden die Tests so lange zyklisch durch laufen, bis CTRL-C gedrückt wird. Danach kann man sich entscheiden, ob ein neuer Test gemacht werden soll oder das Programm kehrt zum Monitor zurück.

Zum Testbeginn erscheint auf dem Schirm eine Tabelle, in der die einzelnen Datenbits spaltenweise und die Speicherblöcke zeilenweise angeordnet sind. Pro Block und Datenbit erscheint ein Punkt. Der gerade durchgeführte Test ist in der Zeile unter dieser Tabelle zu lesen. Findet ein Test einen Fehler, so wird der dem Block und Bit entsprechende Punkt durch den Anfangsbuchstaben des Tests ersetzt.

Bei manchen Fehlern können plötzlich sehr viele solcher Fehlermeldungen erscheinen. Man sollte dann versuchen, durch Veränderung der Testparameter den Fehler einzukreisen. Da die meisten Tests mit Verschiebeoperationen arbeiten oder auf dem Vorhergehenden basieren, kann es hier leicht zu Fehldeutungen kommen. Auch können fehlerhafte Stützkondensatoren in dynamischen Speichern Fehler in einem ganz anderen Speicher-IS vortäuschen.

Zum Schluss sei hervorgehoben, dass dieses Programm nur ein Hilfsmittel sein kann. Es ist daher nicht unfehlbar. Ein Programm, das alle möglichen Speicherbelegungen erzeugt und testet, wird wohl nie mit dem Prüfen fertig werden. Die bisherigen Erfahrungen mit diesem Programm zeigten, dass die Aussage über die Funktion eines Speichers relativ sicher getroffen werden kann.

Zum Anschauen, wie das Programm arbeitet:

         RAM-Test Anfang : EE00
         RAM-Test Ende   : EFBF
         --> Bytezahl    : 01C0
         Blocklaenge     : 70
         --> Blockanzahl : 04