DE69518468T2 - Verfahren zum Testen von grossen Speichermatrizen während Systeminitialisation - Google Patents
Verfahren zum Testen von grossen Speichermatrizen während SysteminitialisationInfo
- Publication number
- DE69518468T2 DE69518468T2 DE69518468T DE69518468T DE69518468T2 DE 69518468 T2 DE69518468 T2 DE 69518468T2 DE 69518468 T DE69518468 T DE 69518468T DE 69518468 T DE69518468 T DE 69518468T DE 69518468 T2 DE69518468 T2 DE 69518468T2
- Authority
- DE
- Germany
- Prior art keywords
- address
- array
- checking
- errors
- contents
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 29
- 238000003491 array Methods 0.000 title claims description 4
- 238000012360 testing method Methods 0.000 title description 18
- 238000010998 test method Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012956 testing procedure Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
- Die Erfindung betrifft digitale Computersysteme im allgemeinen und insbesondere ein Verfahren zur Überprüfung eines großen Speicherfeldes eines digitalen Computersystems.
- Wenn ein digitales Computersystem beim Einschalten oder bei einem Neustart (Reset) initialisiert wird, wird üblicherweise der gesamte Systemspeicher auf Fehler sowohl hinsichtlich der Adressleitungen als auch der Daten überprüft. Dies wird üblicherweise erreicht, indem an jeden Speicherplatz beginnend bei der untersten Adresse und endend bei der höchsten Adresse ein eindeutiges Datenmuster geschrieben wird. Die Inhalte eines jeden Platzes werden dann gelesen und mit den erwarteten Daten vergli
- Text fehlt
- korrekt ist. In jeden Speicherplatz kann dann das Inverse des Musters in derselben aufsteigenden oder sogar absteigenden Reihenfolge geschrieben werden. Das Datenmuster wird dann wiederum gelesen und verglichen, um eine korrekte Adressierung und die Datenintegrität sicherzustellen. Obwohl ein Verfahren der oben beschriebenen Art sowohl Fehler der Adressleitungen als auch einen Großteil von Datenfehlern innerhalb des Feldes detektiert, macht die durch ein solches Testverfahren zur Überprüfung eines großen Speicherfeldes benötigte Zeit diesen Ansatz für einen Systembenutzer inakzeptabel.
- Daher besteht ein Bedürfnis nach einem verbesserten Verfahren zur Erzielung einer reduzierten Initialisierungszeit ohne Beeinträchtigung des Ausmaßes der im Test abgedeckten kritischen Fehler und ohne Begrenzung der Systemleistung während der Überprüfung großer Speicherfelder.
- In der EP-A-0 442 651 ist ein System offenbart, welches beim Hochfahren anfänglich einen Speichertest nur auf einem Unterblock des Systemspeichers ausführt. Sobald dieser Unterblock überprüft worden ist, wird ein Betriebssystem in diesen Unterblock geladen, und der übrige Systemspeicher wird während des normalen Betriebs des Systems überprüft.
- Die Erfindung besteht in ihrer allgemeinsten Form aus einem Verfahren gemäß Anspruch 1 zur Überprüfung eines großen Speicherfeldes während der Systeminitialisierung.
- Im folgenden wird ein Verfahren zur Überprüfung eines großen Speicherfeldes eines digitalen Computersystems durch ein verbessertes Verfahren beschrieben, welches das gesamte Feld nach kritischen steckenbleibenden Fehlern (stuck-at faults) in Adressleitungen überprüft, die möglicherweise unerkannte Fehler in der Betriebsfirmware verursachen könnten.
- Ferner wird ein Verfahren gelehrt zur Überprüfung der Integrität individueller Speicherzellen des gesamten Feldes ohne eine signifikante Verzögerung des Beginns der Systemoperation.
- In einem weiten Sinne werden die oben genannten und andere Ziele durch ein Speichertestverfähren erreicht, welches zuerst die Adressierungshardware des gesamten Speicherfeldes überprüft und dann einen ersten Abschnitt des Speicherfeldes. Während betriebsbereite Firmware in den ersten getesteten Abschnitt geladen und ihre Ausführung hieraus begonnen wird, werden die übrigen Adressorte des Feldes in einem Hintergrundprozess überprüft. Beginnend bei der letzten Adresse des ersten Abschnittes werden sequentielle Abschnitte des Speichers überprüft und dem Funktionscode übergeben, wenn die Überprüfung abgeschlossen ist.
- Das verbesserte Testverfahren der vorliegenden Erfindung gewährleistet mehrere Vorteile. Es verläuft sequentiell in der Zeit, so dass irgendwelche potentiellen steckenbleibende Fehler in den Adressleitungen des Feldes detektiert werden, bevor das extensivere (und zeitaufwendigere) Überprüfen individueller Speicherzellen durchgeführt wird. Der zuletzt genannte Test wird auf einem ersten Abschnitt des Feldes durchgeführt, welcher groß genug ist, um das Starten des Funktionscodes zu ermöglichen, und der Rest wird als Hintergrundaufgabe überprüft, welche erfolgreich getestete Teile des Speicherfeldes im Laufe der Zeit der Betriebsfirmware übergibt. Das Testverfahren ist demnach in Hinblick darauf entworfen, die Verzögerungen zu reduzieren, welche aufgrund der Speicherüberprüfung mit einer Startsequenz des Systems verbunden sind, und auf die Beschleunigung der Verfügbarkeit von Systemspeicher zur Benutzung durch Funktionssoftware.
- Ein genaueres Verständnis der Erfindung kann aus der folgenden Beschreibung einer bevorzugten Ausgestaltung gewonnen werden, welche beispielhaft in Verbindung mit den zugehörigen Figuren beschrieben wird. Hierbei zeigen:
- Fig. 1: ein Blockdiagramm eines vereinfachten Computersystems mit einem Lese-/Schreibspeicherfeld, das durch ein erfindungsgemäßes Testverfahren überprüft werden kann;
- Fig. 2: ein Flussdiagramm eines Testverfahrens gemäß einer Ausgestaltung der vorliegenden Erfindung;
- Fig. 3: ein Blockdiagramm eines Computersystems mit einem Speichercontroller-Subsystem, welches einen Cache-Speicher enthält, der mit einem Testverfahren gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung überprüft werden kann;
- Fig. 4: ein detailliertes Blockdiagramm des Speichercontroller-Subsystems aus Fig. 3;
- Fig. 5: ein detailliertes Flussdiagramm der Schritte 34 und 36 des Testverfahrens von Fig. 2;
- Fig. 6: ein detailliertes Flussdiagramm des Schrittes 42 des Testverfahrens von Fig. 2;
- Fig. 7: ein detailliertes Flussdiagramm des Schrittes 48 des Testverfahrens von Fig. 2.
- Entsprechend Fig. 1 enthält ein Computersystem 10 einen nicht flüchtigen Speicher 12, ein Lese-/Schreibspeicherfeld 14 und eine Massenspeichereinheit 16, welche alle über einen Hauptbus (Host Bus) mit einer CPU 18 verbunden sind. Peripheriegeräte (zum Beispiel Drucker, Terminals, Netzwerkeinrichtungen, etc.), welche typischerweise in einem Computersystem enthalten sind, sind dem Fachmann bekannt und nicht dargestellt, da sie keinen direkten Bezug zur vorliegenden Erfindung haben. Der nicht flüchtige Speicher 12 ist der Ort, wo permanente Programme ausgeführt werden und unveränderliche Daten enthalten sind. Er speichert ferner grundlegende Ein-/Ausgaberoutinen (I/O) des Betriebssystems und unveränderliche Daten über Systemparameter. Das Lese-/Schreibspeicherfeld 14 ist der Ort, wo temporäre Daten gespeichert und variable Programme (zum Beispiel Anwendungen) durch die CPU 18 ausgeführt werden, wenn sie von der Massenspeichereinheit 16 geladen wurden. Der nicht flüchtige Speicher 12 und das Lese-/Schreibspeicherfeld 14 sind direkt von der CPU 18 erreichbar, während die Massenspeichereinheit 16, die für Kurz-/Langzeitspeicherung und Archivierung verwendet wird, als sekundäre Quelle von Programmen und Daten betrachtet wird. Ein hierarchisches System von Massenspeichervorrichtungen innerhalb der Massenspeichereinheit 16 kann Festplatten enthalten, welche von spezialisierteren Speichersystemen wie zum Beispiel entfernbaren Bändern, RAM-Disketten, Cache-Speicher, lokalem Prozessorspeicher, optischen Speicherplatten und Bandgeräten unterstützt werden.
- Die Initialisierung des Computersystems 12 kann durch einen Einschaltzyklus (power cycle), einen Software-Reset oder durch einen Benutzer hervorgerufen werden. In Fig. 2 veranschaulicht ein Flussdiagramm die bevorzugten Schritte der Initialisierung bei der vorliegenden Erfindung. Bei einem Einschalten oder einem Reset 30 beginnt die CPU 18 die Initialisierung 32 mit der Ausführung eines Selbsttestes und durch Ausführung eines Urladerprogramms (bootstrap program), welches im nicht flüchtigen Speicher 12 liegt. Nachdem dies vollendet ist, testet die CPU das gesamte Lese-/Schreibspeicherfeld gemäß Schritt 34 auf Adressierungsfehler. Wenn die Überprüfung auf Fehler der Adressleitung abgeschlossen ist, wird ein erster Teil des Lese-/Schreibspeicherfeldes in Schritt 36 auf Fehler der Adressleitung und der Daten überprüft. Nachdem die Überprüfung gemäß Schritt 36 ausgeführt worden ist, ruft die CPU einen gleichzeitig laufenden Prozess 38 auf. Das Betriebssystem (OS) wird gemäß Schritt 40 in den vollständig getesteten ersten Abschnitt geladen, und der verbleibende Teil des in Schritt 36 noch nicht getesteten Lese-/Schreibspeicherfeldes wird in Schritt 42 in einem Hintergrundprozess geprüft. Nachdem das OS geladen worden ist, wird die Anwendungssoftware heruntergeladen und beginnt in Schritt 44 mit der Ausführung. Während der Ausführung der Schritte 40 und 44 wird der nächste im Hintergrundprozess überprüfte Abschnitt des Feldes nach der Überprüfung für die Benutzung durch den Funktionscode freigegeben 46, und der Speichertest im Hintergrund wiederholt sich in 48 für aufeinanderfolgende Abschnitte des Restes des Feldes, bis der Rest vollständig überprüft worden ist. Die Speicherüberprüfung im Hintergrund endet 50 dann und schließt so den Initialisierungsprozess für das Computersystem 10 von Fig. 1 ab. Weitere Einzelheiten des Testverfahrens werden später diskutiert werden.
- Eine komplexere Systemumgebung, welche das erfindungsgemäße Verfahren einsetzen kann, ist in den Fig. 3 und 4 gezeigt. Ein DSSI-basiertes Computersystem 60 gemäß Fig. 3 hat einen DSSI-Bus 62, welcher die Host CPUs 64 verbindet, und Speichercontroller-Subsysteme 66 in dualer (und "failover") Konfiguration. Alternativ könnte die Host-Verbindung eine andere Art von Bus sein (zum Beispiel CI, SCSI, FDDI, etc.). Das Speichercontroller-Subsystem 66 von Fig. 3 enthält einen Cache-Speicher (dargestellt als ein Modul in gestrichelten Linien). Das Speichercontroller-Subsystem 66 ist detaillierter in Fig. 4 dargestellt.
- Gemäß Fig. 4 verbindet das Speichercontroller-Subsystem 66 den DSSI-Bus 62 von Fig. 3 (einfacher Pfad) über eine Host-Port-Schnittstelle 70 mit einem oder mehreren SCSI-2 Geräteports 72. Das Controller-Subsystem enthält weiterhin einen Policy-Prozessor 74 und seinen externen Befehls-/Daten- (I/D-) Cache 76. Einen Maschinenbus 78 (nativ bus), der vom Policy-Prozessor verwendet wird, teilen sich mehrere Speichereinrichtungen - Diagnoseregister 80, ein Programmspeicher 82, ein nicht flüchtiges RAM 84 - und ein Kommunikationsport 86. Der Programmspeicher 82 enthält die Firmware für den Controller und wird jedesmal eingesetzt, wenn das Controller-Subsystem bootet. Das nicht flüchtige RAM 84 speichert Parameterinformation, welche von einem Benutzer und durch die Controllersoftware eingegeben wird. Der Kommunikationsport 82 wird für ein Terminal einer Controllerkonsole verwendet.
- Das Controller-Subsystem enthält ferner einen gemeinsamen Speicher 86, welcher einen Speichercontroller und einen Pufferspeicher umfasst, und einen Cache-Speicher 88. Der Cache-Speicher 88 enthält ein großes Speicherfeld. Die Verwendung von 20 MBit DRAMs (organisiert als 4 M · 4) würde beispielsweise eine Kapazität von 16 MBytes/Bank oder 32 MBytes/Modul ergeben. DRAM Speicherschaltkreise sind dem Fachmann wohlbekannt. Daher ist das interne Speicherfeld mit den Adressen-/Daten- und Steuerleitungen nicht gezeigt. Die verschiedenen Busse, die den gemeinsamen Speicher 86 und den Cache-Speicher 88 enthalten, sind mit dem Maschinenbus 78 und einem Bus 90, der für einen Zugriff auf die DSSI-Host-Port-Schnittstelle und die seriellen Geräteports verwendet wird, über einen Buskoppler 92 verbunden. Der Buskoppler ist eine Kreuzschiene (crossbar), welche allen Einheiten auf alle Teile des Controller-Subsystems einen schnellen Zugriff gewährleistet. Zusätzlich hängen am Bus 90 ein Bus-Schnittstellen- Logikelement 94, ein Port-Prozessor 96 zur Unterstützung eines low level Geräteports und von Hostport-Operationen, ein Port-Prozessorspeicher 98 und ein Element 100 mit Randlogik verschiedener Art.
- Die Initialisierung des Controller-Subsystems 66 beginnt im wesentlichen in derselben Weise wie beim Computersystem von Fig. 1. Sie kann über einen Einschaltzyklus, eine Software-Reset oder durch einen Benutzer, der einen Knopf auf dem Bedienungspult des Controller-Subsystems drückt (nicht dargestellt) auftreten. Sie kann lange genug verzögert werden, um die Ausführung eines Cache-Managements zu erlauben und die Integrität der Anwenderdaten sicherzustellen. Nachdem das Controller-Subsystem gebootet worden ist, ist es zu einer Kommunikation mit einer Host CPU 64 (in Fig. 3 dargestellt) bereit.
- Die Initialisierung des Controller-Subsystems beginnt mit dem Policy-Prozessor 74, welcher einen Selbsttest ausführt und eine Startroutine (boot record) liest, die Adressen von Hardware-Setup-Parametern und Informationen zur Prozesskontrolle enthält. Nach der Initialisierung des Prozessors führt der Code im Programmspeicher 82 eine Selbsttest-Diagnose mit allen Komponenten am Maschinenbus sowie mit dem gemeinsamen Speicher 86 durch. Nachdem dies vollendet ist, wird Code vom Programmspeicher in den gemeinsamen Speicher heruntergeladen, wo er dann verifiziert wird. In den verbleibenden Initialisierungstests werden der I/D-Cache 76, SCSI Geräte und Host Ports und der Cache-Speicher überprüft. Der Cache-Speicher wird entsprechend dem erfindungsgemäßen Testverfahren überprüft, da dieses Speicherfeld möglicherweise sehr groß sein kann, die Überprüfung also die Bootzeit erheblich erhöht.
- Die Überprüfung des möglicherweise großen Speicherfeldes des Cache-Speichers 88 wird in zwei Teilen ausgeführt. Unter erneuter Bezugnahme auf die Schritte 34 bis 50 des Flußdiagramms in Fig. 2 enthält der erste Teil die Schritte 34 und 36. Der zweite Teil enthält die Schritte 42, 46, 48 und 50.
- Die Schritte 34 und 36 sind in Fig. 5 detaillierter dargestellt. Entsprechend Fig. 5 beginnt Schritt 34 damit, dass zuerst das gesamte Feld auf auf die Adressierung bezogene Fehler überprüft wird (das heißt Fehler in den Adressleitungen/den Decodierschaltungen). Die Inhalte jeder Adresse des Feldes werden in sequentieller Folge von der niedrigsten zur höchsten Adresse mit einer, Adresse beschrieben 110, welche der beschriebenen Adresse entspricht. Die Inhalte eines jeden Adressortes werden in 112 gelesen und zur Überprüfung 114 mit den geschriebenen Daten verglichen. Wenn die Inhalte der ausgelesenen Adressorte nicht den geschriebenen Adressen gleichen, wird ein Fehler angezeigt. Wenn sie dagegen gleichen, wird die Überprüfung mit Schritt 36 fortgesetzt.
- Schritt 36 überprüft auf auf die Adressierung bezogene Fehler und auf Datenfehler in einem ersten Abschnitt des Feldes, welches sequentiell von der niedrigsten zur letzten Adresse adressiert wird, wobei die letzte Adresse kleiner als die höchste Adresse ist. Idealerweise sollte die letzte Adresse, welche die Größe des ersten Abschnittes definiert, so ausgewählt sein, dass die Betriebsfirmware genug Speicher hat, zum Beispiel ein erstes Megabyte, um die Ausführung zu beginnen. Die Inhalte jedes Adressortes des Feldes werden in sequentieller Reihenfolge von der niedrigsten Adresse zur letzten Adresse mit einem ersten Datenmuster beschrieben 118. Die Inhalte werden wiederum zurückgelesen 120, um zu verifizieren, dass das erste Datenmuster wie geschrieben ist 122. Wenn kein Fehler festgestellt wird, werden die Inhalte mit einem zweiten Datenmuster beschrieben 124. Die Inhalte werden erneut zurückgelesen 126, um zu verifizieren, dass das zweite Datenmuster wie geschrieben aussieht 128. Wenn als Resultat von Schritt 36 keine Fehler detektiert werden, dann ist der erste Abschnitt des Feldes zur Benutzung durch die Betriebsfirmware des Computersystems bereit.
- An diesem Punkt der Überprüfung werden gleichzeitig laufende Prozesse wie in Schritt 38 von Fig. 2 aufgerufen. Während die Betriebsfirmware in den getesteten ersten Abschnitt des Feldes geladen wird und von dort im Vordergrund mit der Ausführung beginnt (Schritt 40 von Fig. 2), wird der Rest der Überprüfung in einem Teilprozess oder einem Hintergrundprozess 42 ausgeführt.
- Bezug nehmend auf das gemäß Fig. 6 expandierte Detail von Schritt 42 wird ein nächster Abschnitt des Feldes, welcher sequentiell adressiert ist von der letzten Adresse zur letzten Adresse + N, wobei N der Anzahl von Adressorten im nächsten Abschnitt des zu überprüfenden Feldes entspricht, auf Adressierungs- und Datenfehler überprüft durch Beschreiben jedes Adressortes in sequentieller Reihenfolge von der letzten Adresse zur letzten Adresse + N mit einem ersten Datenmuster 130 und Auslesen der Inhalte jeden Ortes 132, um das erste Datenmuster zu verifizieren 134. Wenn keine Fehler festgestellt werden, wird dann das zweite Datenmuster geschrieben 136 und zurückgelesen 138, um zu verifizieren, dass es wie geschrieben geblieben ist 140. Wenn als Ergebnis von Schritt 42 keine Fehler festgestellt werden, dann wird dieser getestete "nächste Abschnitt" der Betriebsfirmware zur Benutzung freigegeben. Bezugnehmend auf Fig. 7 werden die Schritte 42 und 46 dann in dem Hintergrundprozess für den nächsten Abschnitt des Feldes wiederholt, wobei die letzte Adresse mit der letzten Adresse + N (zum Beispiel der aktuellen Adresse) aufgefrischt wird 144, bis die letzte Adresse der höchsten Adresse entspricht 142. Nachdem die höchste Adresse erreicht worden ist, ist die Speicherüberprüfung vollendet. Die Zeitersparnisse, welche mit dem Überprüfungsverfahren gemäß der Erfindung des Anmelders erzielt werden können, können mit dem nachfolgenden Beispiel veranschaulicht werden.
- Betrachtet sei der Fall eines Speichersystems mit einem Byte breiten 32 M Speicherfeld mit einer Lese-/Schreibzeit von 100 ns. N sei die Anzahl von ausgeführten Lese- /Schreibvorgängen und T die Zeitdauer, um welche die Ausführung des Betriebssystems verzögert wird, bevor "überprüfter guter" Speicher verfügbar ist.
- a) Schreib 0-32 M Speicherorte Daten = 55 hex (0101 0101) Lies 0-32 M Speicherorte Daten = 55 hex
- b) Schreib 0-32 M Speicherorte Daten = AA hex (1010 1010) Lies 0-32 M Speicherorte Daten = AA hex
- **T (bekanntes Verfahren) = (Speichergröße · N) · t_lese/schreib (32 M · 4) · 100 ns 12.8 s
- a) Schreib 0-32 M Speicherorte Daten = Adresse Lies 0-32 M Speicherorte Daten = Adresse
- b) Schreib 0-1 M Speicherorte Daten = 55 Lies 0-1 M Speicherorte Daten = 55
- c) Schreib 0-1 M Speicherorte Daten = AA Lies 0-1 M Speicherorte Daten = AA
- **T (verbessertes Verfahren) = [(Speichergröße · N) + (Speichergröße · N)] · t_l/s [(32 M · 2) + (1 M · 4)] · 100 ns 6.8 s
- Das obige Beispiel demonstriert den Nutzen (das heißt die Zeitersparnis), welche mit dem Einsatz des Überprüfungsverfahrens gemäß der vorliegenden Erfindung verbunden ist. Natürlich wird der größte Nutzen bei der Überprüfung großer Speicherfelder erzielt. Zum Beispiel wird die Erhöhung der Speichergröße von 32 M auf 128 M darin resultieren, dass T (bekanntes Verfahren) = 49.2 s und T (verbessertes Verfahren) = 26 s ist. Auf diese Weise können durch Anwendung des erfindungsgemäßen Testverfahrens die Ersparnisse bei der Bootzeit Schritt halten in Bezug auf die ständig zunehmenden Anforderungen an die Speicherkapazität.
- Obwohl die obige Beschreibung mit Bezug auf eine spezielle Ausgestaltung der Erfindung vorgenommen wurde, ist die Erfindung nicht auf die hierin gezeigte spezielle Ausgestaltung begrenzt. Verschiedene andere Anpassungen und Veränderungen können innerhalb des Rahmens der Erfindung vorgenommen werden.
Claims (3)
1. Verfahren zur Überprüfung eines großen Speicherfeldes
eines digitalen Computersystems, enthaltend die Schritte:
- erstens Überprüfung des gesamten Feldes auf auf die
Adressierung bezogene Fehler in sequentieller
Reihenfolge von einer niedrigsten Adresse zu einer höchsten
Adresse, wodurch steckenbleibende Adressierungsfehler
im Feld detektiert werden, bevor für das gesamte Feld
eine Überprüfung auf Adressleitungs- und Datenfehler
ausgeführt wird;
- zweitens Überprüfung eines ersten Abschnittes des
Feldes, auf welchen sequentiell von der niedrigsten
Adresse zu einer letzten Adresse zugegriffen wird,
wobei die letzte Adresse niedriger als die höchste
Adresse ist, auf Adressleitungs- und Datenfehler,
indem der Inhalt eines jeden Adressortes des Feldes
mit einem ersten Datenmuster beschrieben wird und die
Inhalte der Adressorte gelesen werden, um zu
verifizieren, dass das erste Datenmuster wie geschrieben
geblieben ist, und indem dann der Inhalt der
Adressorte mit einem zweiten Datenmuster beschrieben wird
und der Inhalt des Adressortes gelesen wird, um zu
verifizieren, dass das zweite Datenmuster wie
geschrieben geblieben ist;
- Bereitstellung des ersten Abschnittes des Feldes zur
Verwendung für Betriebsfirmware des Computersystems,
falls als Ergebnis des Schrittes der Überprüfung auf
Adressleitungs- und Datenfehler keine Fehler
detektiert worden sind;
- Beginn der Ausführung der Betriebsfirmware aus dem
ersten Abschnitt des Feldes;
- drittens Überprüfung in einem Hintergrundprozess
eines nächsten Abschnittes des Feldes, auf welchen
sequentiell von der letzten Adresse zu einer letzten
Adresse + N zugegriffen wird, wobei N die Anzahl der
Adressorte im nächsten zu testenden Abschnitt des
Feldes ist, auf Adressleitungs- und Datenfehler,
indem an jedem Adressort das erste Datenmuster
geschrieben und der Inhalt des Ortes gelesen wird, um
zu verifizieren, dass das erste Datenmuster wie
geschrieben geblieben ist, und indem dann der Inhalt
des Adressortes mit einem zweiten Datenmuster
beschrieben und der Inhalt des Adressortes gelesen
wird, um zu verifizieren, dass das zweite Datenmuster
wie geschrieben geblieben ist; und
- Bereitstellung jenes Abschnittes des Feldes zwischen
der letzten Adresse und der letzten Adresse + N an
die Betriebsfirmware, falls als Ergebnis des
Schrittes der Überprüfung des nächsten Abschnittes des
Feldes keine Fehler festgestellt wurden; und
- Wiederholung des Schrittes der Überprüfung des
nächsten Abschnittes des Feldes im Hintergrundprozess,
wobei die letzte Adresse mit der letzten Adresse + N
aufgefrischt wird, bis die letzte Adresse gleich der
höchsten Adresse ist.
2. Verfahren zur Überprüfung eines großen Speicherfeldes
eines digitalen Computersystems gemäß Anspruch 1, wobei
der Schritt der ersten Überprüfung auf auf die
Adressierung bezogene Fehler im vollständigen Feld die folgenden
Schritte enthält:
- Beschreiben des Inhaltes eines jeden Speicherortes
mit einer Adresse, welche dem beschriebenen Adressort
entspricht; und
- Auslesen des Inhalts eines jeden Adressortes, um zu
verifizieren, dass die ausgelesene Adresse dieselbe
wie die geschriebene Adresse ist.
3. Verfahren zur Überprüfung großer Speicherfelder von
digitalen Computersystemen gemäß Anspruch 1, wobei das
erste Datenmuster ein wiederholtes binäres "0101"-Muster
ist und das zweite Datenmuster ein wiederholtes binäres
"1010"-Muster ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/254,816 US5479413A (en) | 1994-06-06 | 1994-06-06 | Method for testing large memory arrays during system initialization |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69518468D1 DE69518468D1 (de) | 2000-09-28 |
DE69518468T2 true DE69518468T2 (de) | 2001-05-23 |
Family
ID=22965700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69518468T Expired - Fee Related DE69518468T2 (de) | 1994-06-06 | 1995-06-01 | Verfahren zum Testen von grossen Speichermatrizen während Systeminitialisation |
Country Status (3)
Country | Link |
---|---|
US (1) | US5479413A (de) |
EP (1) | EP0686981B1 (de) |
DE (1) | DE69518468T2 (de) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5589849A (en) * | 1989-07-03 | 1996-12-31 | Ditzik; Richard J. | Display monitor position adjustment apparatus |
US5657443A (en) * | 1995-05-16 | 1997-08-12 | Hewlett-Packard Company | Enhanced test system for an application-specific memory scheme |
US5539878A (en) * | 1995-06-16 | 1996-07-23 | Elonex Technologies, Inc. | Parallel testing of CPU cache and instruction units |
US6279078B1 (en) * | 1996-06-28 | 2001-08-21 | Compaq Computer Corporation | Apparatus and method for synchronizing a cache mode in a dual controller, dual cache memory system operating in a plurality of cache modes |
US6412082B1 (en) * | 1997-12-17 | 2002-06-25 | Sony Corporation | Method and apparatus for selecting computer programs based on an error detection mechanism |
JP2000021193A (ja) * | 1998-07-01 | 2000-01-21 | Fujitsu Ltd | メモリ試験方法及び装置並びに記憶媒体 |
SE9802800D0 (sv) * | 1998-08-21 | 1998-08-21 | Ericsson Telefon Ab L M | Memory supervision |
US7085973B1 (en) * | 2002-07-09 | 2006-08-01 | Xilinx, Inc. | Testing address lines of a memory controller |
US7062678B2 (en) * | 2002-08-06 | 2006-06-13 | Lsi Logic Corporation | Diagnostic memory interface test |
US7418636B2 (en) * | 2004-12-22 | 2008-08-26 | Alcatel Lucent | Addressing error and address detection systems and methods |
EP2063432B1 (de) * | 2007-11-15 | 2012-08-29 | Grundfos Management A/S | Verfahren zum Prüfen eines Arbeitsspeichers |
JP2010044635A (ja) * | 2008-08-14 | 2010-02-25 | Hitachi Ltd | ファイルサーバシステム及びファイルサーバシステム起動方法 |
WO2011124681A1 (en) * | 2010-04-09 | 2011-10-13 | Verigy (Singapore) Pte. Ltd. | Method and automatic test equipment for performing a plurality of tests of a device under test |
DE102010027287A1 (de) * | 2010-07-16 | 2012-01-19 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum prüfen eines Hauptspeichers eines Prozessors |
US8644098B2 (en) * | 2011-03-28 | 2014-02-04 | Peiyuan Liu | Dynamic random access memory address line test technique |
US10147499B1 (en) * | 2016-06-06 | 2018-12-04 | Apple Inc. | Memory power-up testing system |
US11663111B2 (en) * | 2020-01-02 | 2023-05-30 | Texas Instruments Incorporated | Integrated circuit with state machine for pre-boot self-tests |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4891811A (en) * | 1987-02-13 | 1990-01-02 | International Business Machines Corporation | Efficient address test for large memories |
DE3718182A1 (de) * | 1987-05-29 | 1988-12-15 | Siemens Ag | Verfahren und anordnung zur ausfuehrung eines selbsttestes eines wortweise organisierten rams |
US5155844A (en) * | 1990-02-14 | 1992-10-13 | International Business Machines Corporation | Background memory test during system start up |
JPH04271445A (ja) * | 1990-08-02 | 1992-09-28 | Internatl Business Mach Corp <Ibm> | メモリ・テスト装置 |
-
1994
- 1994-06-06 US US08/254,816 patent/US5479413A/en not_active Expired - Fee Related
-
1995
- 1995-06-01 EP EP95303770A patent/EP0686981B1/de not_active Expired - Lifetime
- 1995-06-01 DE DE69518468T patent/DE69518468T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0686981A3 (de) | 1996-02-07 |
US5479413A (en) | 1995-12-26 |
DE69518468D1 (de) | 2000-09-28 |
EP0686981B1 (de) | 2000-08-23 |
EP0686981A2 (de) | 1995-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69518468T2 (de) | Verfahren zum Testen von grossen Speichermatrizen während Systeminitialisation | |
DE69111635T2 (de) | Gerät und Verfahren zur Background-Speicherprüfung während des Systemanlaufs. | |
DE69423151T2 (de) | Verwendung der zuletzt gültigen Konfiguration zum Laden eines Rechnersystems | |
DE69221045T2 (de) | Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen | |
DE69329590T2 (de) | Periphere Festkörperspeichervorrichtung | |
DE69719086T2 (de) | Zeitverteilte entfernung von fehlerkorrekturcodes (ecc) zur korrektur von speicherfehlern | |
DE69027165T2 (de) | Verfahren und Gerät zum Schutz eines Rechnersystems | |
DE69324840T2 (de) | Verfahren zum Speichern von Programmen | |
DE69027348T2 (de) | Speicherblockadressenermittlungsschaltkreis | |
DE69906995T2 (de) | Hochlauffehler-wiederherstellung | |
DE10003108B4 (de) | Verfahren und Computersystem zum Durchführen einer Softwareinstallation | |
DE19747396C2 (de) | Verfahren und Anordnung zur Schaffung einer Ferndiagnose für ein elektronisches System über ein Netz | |
DE60018807T2 (de) | Verfahren und vorrichtung zur wiederherstellung der konfiguration eines rechners | |
DE69804115T2 (de) | Datenübertragung auf einem nichtflüchtigen speichermedium | |
DE69627814T2 (de) | System zum bereitstellen eines bios für den hauptrechner | |
DE69223799T2 (de) | Einstellung der systemkonfiguration in einem datenverarbeitungssystem | |
DE69903629T2 (de) | Prüfung der funktionsfähigkeit eines gerätetreibers | |
DE69729771T2 (de) | Integrierte Schaltung mit einer eingebauten Selbsttestanordnung | |
DE60212271T2 (de) | Eingebauter Selbsttest mit eingebautem Speicher und Prozessor in einer ASIC Vorrichtung | |
DE69610920T2 (de) | Verfahren und anordnung zum gebrauch invertierter daten zur erkennung verfälschter daten | |
DE69230211T2 (de) | Integrierter Speicher, Verwaltungsverfahren und resultierendes Informationssystem | |
DE10059596A1 (de) | Verfahren zur Zeiteinstellung eines Systemspeichers | |
DE60224774T2 (de) | Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit | |
DE60100848T2 (de) | Virtuelles rom für geräte-aufzählung | |
DE102004039178B4 (de) | Speichersteuerschaltung, Smartcard und Lesesteuerverfahren |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8332 | No legal effect for de | ||
8370 | Indication related to discontinuation of the patent is to be deleted | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |