Dies ist eine alte Version des Dokuments!


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.

* ramtest.zip RAM-Test incl. Quellcode und Beaschreibung

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 geprueft, ob er die Muster 55H und AAH annimmt. Damit lassen sich Aussagen ueber 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 hoeheren Anforderungen, die der zyklische Blockladebefehl des U 880D an den Speicher stellt, und zwar meist bei dynamischen RAMs an die Qualitaet der Spannungsversorgung und deren Abblockung. Hier werden Datenbloecke 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 geprueft, ob das Muster noch immer im Speicher vorhanden ist.

M1-Test

Da der U 880D fuer Befehlslesezyklen eine kuerzere Zugriffszeit des Speichers als bei normalen Lese- oder Schreibzyklen erfordert, kann es vorkommen, dass sich ein Speicher zwar beschreiben und lesen laesst, aber MC-Programme Fehler machen oder ganz abstuerzen. 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 zurueckzukehren. Dieser Test erfordert Bloecke, die groesser als 20H sind.

Das Programm erfragt nach dem Start mit „RAMTEST“ selbsttaetig Anfangs- und Endadresse sowie die Blocklaenge, in die der Speicher unterteilt werden soll, und ausserdem die Tests, die durchgefuert werden sollen. In der Adresseingabe kann mit CTRL-C zum Monitor zurueckgekehrt werden.

Die kleinstmögliche Anfangsadresse ist 1300h.

Der Adressbereich muss so gewaehlt werden, dass die Division durch die Blocklaenge ohne Rest aufgeht. Sonst werden neue Eingabedaten verlangt. Gut nutzbar ist eine Blockanzahl von 16, d.h. Blocklaenge = 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 gedrueckt wird. Danach kann man sich entscheiden, ob ein neuer Test gemacht werden soll oder das Programm kehrt zum Monitor zurueck.

Zum Testbeginn erscheint auf dem Schirm eine Tabelle, in der die einzelnen Datenbits spaltenweise und die Speicherbloecke zeilenweise angeordnet sind. Pro Block und Datenbit erscheint ein Punkt. Der gerade durchgefuerte 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 koennen ploetzlich sehr viele solcher Fehlermeldungen erscheinen. Man sollte dann versuchen, durch Veraederung 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 koennen fehlerhafte Stuetzkondensatoren in dynamischen Speichern Fehler in einem ganz anderen Speicher-IS vortaeuschen.

Zum Schluss sei hervorgehoben, dass dieses Programm nur ein Hilfsmittel sein kann. Es ist daher nicht unfehlbar. Ein Programm, das alle moeglichen Speicherbelegungen erzeugt und testet, wird wohl nie mit dem Pruefen fertig werden. Die bisherigen Erfahrungen mit diesem Programm zeigten, dass die Aussage ueber 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
  • z9001/software/ramtest.1357317463.txt.gz
  • Zuletzt geändert: 2013/01/04 16:37
  • von volkerp