-
TECHNISCHES GEBIET
-
Die
vorliegende Erfindung bezieht sich auf eine Speicher-Diagnose-Vorrichtung,
die einen Funktionsfehler in einem Speicher einer Sequenzsteuer-Vorrichtung
oder ähnlichem automatisch diagnostiziert.
-
HINTERGRUNDTECHNIK
-
Es
ist in eingebetteten Systemen notwendig, wie zum Beispiel Not-Aus-Sequenzsteuer-Vorrichtungen,
für die eine hohe Verlässlichkeit erforderlich ist,
zumindest einmal an einem Tag eine Speicher-Diagnose durchzuführen.
Folglich gibt es einen Bedarf an einem Speicher-Diagnose-System,
das schnell ist und eine hohe Diagnose-Genauigkeit aufweist.
-
Ein
Kopplungsfehler ist ein Funktionsfehler-Typ in einem Speicher (RAM),
bei dem sich, wenn Daten von oder in eine Speicherzelle gelesen
oder geschrieben werden, Datenwerte in anderen Speicherzellen verändern.
Verfahren wie zum Beispiel das Walkpath- oder Galpat-Verfahren (Galloping-Muster-Test)
können zur Diagnose eines Kopplungsfehlers verwendet werden.
Im Walkpath-Verfahren wird in allen Speicherzellen eines zu testenden Speicherbereichs
uniform eine Null geschrieben. Danach werden die Daten in einer
bestimmten Target-Speicherzelle eines Bit auf 1 invertiert, und
es wird überprüft, ob die Daten in dem übrigen
Speicherbereich (Hintergrund) korrekt sind. Die Target- Speicherzelle
wird dann erneut gelesen, um zu überprüfen, ob
die Daten in der Target-Speicherzelle korrekt sind, und wenn die
Daten in der Target-Speicherzelle korrekt sind, werden die Daten
in der Target-Speicherzelle zurück auf Null invertiert.
Dieser Prozess wird für alle Speicherzellen in dem Speicherbereich wiederholt.
Danach wird eine 1 uniform in alle Speicherzellen des Speicherbereichs
geschrieben und der gleiche Prozess wird wiederholt. Folglich wird
im Walkpath-Verfahren ein invertiertes Element in den Speicherbereich
eingebracht, in dem Daten uniform geschrieben werden, und es wird überprüft,
ob Daten aller übrigen Zellen korrekt sind. Im Gegensatz
zum Walkpath-Verfahren wird im Galpat-Verfahren bei jedem Mal, wenn
eine Speicherzelle neben der Target-Speicherzelle gelesen wird,
die invertierte Speicherzelle (Target-Speicherzelle) gelesen, um
zu überprüfen, ob die Daten in dem invertierten
Speicher korrekt sind.
-
Ein
anderes konventionelles Speicher-Diagnose-Verfahren wird zum Beispiel
im Patent-Dokument 1 beschrieben. In dem im Patent-Dokument 1 beschriebenen
Verfahren, werden die Test-Daten AAAAh bei den Adressen 55h oder
AAh in einen Speicher geschrieben, werden die Test-Daten 5555h bei
den anderen Adressen geschrieben, und dann werden die Daten sukzessiv
aus dem Speicher gelesen. Aus den Adressen 55h oder AAh gelesene
Daten werden mit den Test-Daten AAAAh verglichen, und aus den anderen
Adressen gelesene Daten werden mit den Test-Daten 5555h verglichen.
Wenn diese Daten miteinander übereinstimmen, wird bestimmt,
dass der Speicher normal ist, und wenn diese Daten nicht miteinander übereinstimmen,
wird bestimmt, dass der Speicher einen Funktionsfehler aufweist.
Wenn in dem Verfahren des Patent-Dokuments 1 der Speicher einen
Funktionsfehler aufweist, bei dem zum Beispiel das siebente Bit
auf Null fixiert wird, verändert sich die originale Adresse
AAh auf 2Ah. Die Test-Daten AAAAh werden entsprechend bei der Adresse
2Ah überschrieben, so dass die Daten AAAAh von der Adresse
2Ah gelesen und ausgegeben werden. Folglich werden die Daten nicht
mit dem erwarteten Wert 5555h übereinstimmen und darum
kann einen Funktionsfehler der entsprechenden Adressenleitung erfasst
werden.
- Patent-Dokument 1: Japanisches
Patent Nr. 3570388
-
OFFENBARUNG DER ERFINDUNG
-
DURCH DIE ERFINDUNG ZU LÖSENDE
PROBLEME
-
In
dem Verfahren des Patent-Dokuments 1 wird jedoch eine Diagnose auf
einen Kopplungsfehler zwischen Bit-Zellen in den Test-Daten, die
aus mehreren Bits bestehen, nicht durchgeführt. Folglich
besteht ein Problem darin, dass die Diagnose-Genauigkeit gering
ist. Da diese Technik darüber hinaus nur ein Paar von Adressen-Werten
mit einer invertierten Beziehung verarbeitet, sollte eine Breite
von Test-Daten zu einer Zeit gleich sein oder kleiner als eine Breite
von Speicher-Daten. Dementsprechend kann die Verarbeitungsgeschwindigkeit
nicht durch eine Erhöhung der Test-Daten-Breite erhöht
werden.
-
Es
ist im Walkpath- oder Galpath-Verfahren möglich, ein Adressenpaar
zu identifizieren, in dem ein Kopplungsfehler auftritt; jedoch nimmt
die Zahl der Speicherzugriffe zu und daher vergrößert
sich die Zeit, die für die Diagnose erforderlich ist, da
das Schreiben von Test-Mustern in den Adressen und der Lesetest
bei allen Adressen wiederholt werden sollte. Wenn zum Beispiel die
Speichergröße N Bit ist, sind Speicherzugriffe
in der Größenordnung von N-Quadrat erforderlich.
Wenn folglich die Speichergröße gleich oder größer
als ein Megabit ist, überschreitet die für die
Diagnose erforderliche Zeit mehrere Dutzende von Stunden. Entsprechend
kann das Walkpath- oder Galpat-Verfahren nicht direkt für
Sequenzsysteme angewendet werden, die eine reguläre Speicher-Diagnose
wie oben beschrieben erfordern.
-
Die
vorliegende Erfindung wurde erreicht angesichts der oben erwähnten
Probleme und eine Aufgabe der vorliegenden Erfindung besteht darin,
eine Speicher-Diagnose-Vorrichtung bereitzustellen, die einen Speicher-Funktionsfehler
mit hoher Geschwindigkeit diagnostizieren kann, während
ein bestimmtes Niveau der Diagnose-Genauigkeit erhalten bleibt.
-
EINRICHTUNG ZUM LÖSEN
DES PROBLEMS
-
Um
die obigen Probleme zu lösen und die obigen Ziele zu erreichen,
enthält eine Speicher-Diagnose-Vorrichtung, die einen Funktionsfehler
in einem Speicher diagnostiziert, entsprechend der vorliegenden
Erfindung eine Intra-Block-Testeinheit, die nach einem Funktionsfehler
in Bezug auf jedes Bit in jedem Block in dem Speicher testet; eine
Inter-Block-Testeinheit, die nach einem Funktionsfehler zwischen
Blöcken in dem Speicher testet.
-
Darüber
hinaus enthält entsprechend der vorliegenden Erfindung
eine Speicher-Diagnose-Vorrichtung, die einen Funktionsfehler in
einem Speicher diagnostiziert, eine Intra-Wort-Testeinheit, die
nach einem Funktionsfehler in Bezug auf jedes Bit in jedem Wort
in dem Speicher testet; eine Inter-Wort-Testeinheit, die nach einem
Funktionsfehler zwischen Wörtern in jedem Subarray, das
jedes mehrere Worte enthält, in dem Speicher testet; und
eine Inter-Block-Testeinheit, die nach einem Funktionsfehler zwischen
Subarrays in dem Speicher testet.
-
EFFEKT DER ERFINDUNG
-
Entsprechend
der vorliegenden Erfindung wird die Diagnose eines Funktionsfehlers
in dem Speicher hierarchisch durch den Intra-Block-Test und den
Inter-Block-Test durchgeführt. Folglich kann eine Position,
in der ein Funktionsfehler auftritt, in Einheiten von Worten identifiziert
werden, mit einer geringeren Anzahl an Speicherzugriffen und einer
kürzeren Diagnosezeit. Folglich kann die Speicher-Diagnose in
einem Intervall zwischen den Ausführungen von regulären
Anwendungen implementiert werden.
-
Entsprechend
der vorliegenden Erfindung, wird die Funktionsfehler-Diagnose hierarchisch durch
den Intra-Wort-Test, den Inter-Wort-Test und den Inter-Subarray-Test
durchgeführt. Darum kann eine Position, an der ein Funktionsfehler
auftritt, in Einheiten von Subarrays identifiziert werden, mit einer
geringeren Anzahl von Speicherzugriffen und einer kürzeren
Diagnosezeit, verglichen mit den typischen Verfahren. Folglich kann
die Speicher-Diagnose in einem Intervall zwischen den Ausführungen
von regulären Anwendungen implementiert werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
ein Blockdiagramm einer Speicher-Diagnose-Vorrichtung entsprechend
einer Ausführungsform der vorliegenden Erfindung.
-
2 ist
ein Flussdiagramm für eine konzeptionelle Darstellung eines
Speicher-Diagnose-Prozesses entsprechend einer ersten Ausführungsform der
vorliegenden Erfindung.
-
3 ist
ein Flussdiagramm eines Intra-Wort-Test-Verfahrens in der Speicher-Diagnose entsprechend
der ersten Ausführungsform.
-
4 ist
ein Flussdiagramm eines Inter-Wort-Test-Verfahrens in der Speicher-Diagnose entsprechend
der ersten Ausführungsform.
-
5 ist
ein konzeptionelles Diagramm der Speicher-Diagnose entsprechend
der ersten Ausführungsform.
-
6 ist
ein Flussdiagramm für eine konzeptionelle Darstellung eines
Speicher-Diagnose-Prozesses entsprechend einer zweiten Ausführungsform der
vorliegenden Erfindung.
-
7 ist
ein Flussdiagramm eines Inter-Subarray-Test-Verfahrens in der Speicher-Diagnose
entsprechend der zweiten Ausführungsform.
-
8 ist
ein konzeptionelles Diagramm der Speicher-Diagnose entsprechend
der zweiten Ausführungsform.
-
BESTER MODUS BZW. BESTE MODI ZUM AUSFÜREN
DER ERFINDUNG
-
Exemplarische
Ausführungsformen einer Speicher-Diagnose-Vorrichtung entsprechend
der vorliegenden Erfindung werden im Folgenden mit Bezug auf die
begleitenden Zeichnungen im Detail beschrieben. Die vorliegende
Erfindung ist nicht auf die folgenden Ausführungsformen
beschränkt.
-
Erste Ausführungsform
-
1 stelle
eine Konfiguration zum Durchführen einer Speicher-Diagnose
entsprechend der vorliegenden Erfindung dar. Wie in 1 gezeigt, sind
ein Testbereich 13 und ein Speicherbereich 14 in einem
Random-Zufallsspeicher bzw. Random Access Memory (RAM) mit einer
zentralen Verarbeitungseinheit bzw. Central Processing Unit (CPU) 11 durch
einen Bus 12 verbunden. Die CPU 11 führt
eine Anwendungs-Software für die System-Steuerung durch,
die in einem nichtflüchtigen Speicher 15 gespeichert
ist. Der nichtflüchtige Speicher 15 speichert ein
Speicher-Diagnose-Programm, welches im Folgenden detailliert beschrieben
wird. Wenn die Speicher-Diagnose durchgeführt wird, führt
die CPU 11 das in dem nichtflüchtigen Speicher 15 gespeicherte Speicher-Diagnose-Programm
aus. Die CPU 11 hat ein Register 16 zum Schreiben
von Test-Daten in dem Testbereich 13. Der Testbereich 13 und
der Speicherbereich 14 werden als separate Speicher in 1 gezeigt;
der Testbereich 13 und der Speicherbereich 14 können
jedoch als unterschiedliche Bereiche in einem Speicher konfiguriert
werden.
-
2 stellt
ein Speicher-Diagnose-Prozess-Verfahren entsprechend einer ersten
Ausführungsform dar. In der ersten Ausführungsform
wird die Diagnose durch ein Aufteilen des Testbereiches 13 in
zwei Schichten durchgeführt, das heißt, in Wörter
und den Rest. Mit anderen Worten wird in der ersten Ausführungsform
ein Funktionsfehler, einschließlich eines Kopplungsfehlers,
zwischen miteinander verbundenen Bits in einem Wort zuerst getestet (Schritt
S100) und ein Funktionsfehler mit einem Kopplungsfehler zwischen
Wörtern wird danach getestet (Schritt S110).
-
Ein
Verfahren zum Testen eines Kopplungsfehlers zwischen Bits in einem
Wort wird mit Bezug auf 3 erklärt. Zuerst wird
getestet, ob es keinen Kopplungsfehler zwischen Bits in einem, in
dem Testbereich 13 enthaltenen ersten Wortes gibt. Vor
dem Durchführen eines Speicher-Diagnose-Prozesses für das
erste Wort, werden jedoch für Daten des ersten, in dem
Testbereich 13 gespeicherten Wortes vorher in dem Speicherbereich 14 ein
Backup durchgeführt. Anschließend wird das Register 16 auf
Null initialisiert, und ein am wenigsten signifikantes Bit wird
auf 1 gesetzt (Schritt S200). Der Registerwert (0000....001) wird
in das erste Wort des Testbereichs 13 geschrieben (Schritt
S210). Das relevante Wort (das erste Wort in diesem Fall) wird aus
dem Testbereich 13 gelesen, und es wird überprüft,
ob der gelesene Wert mit dem Registerwert übereinstimmt (Schritt
S220). Der Wert des Registers 16 wird dann Bit-verschoben
(Schritt S240) und der Bit-verschobene Registerwert (0000....010)
wird in das erste Wort des Testbereichs 13 geschrieben.
Der Datenwert wird gelesen (Schritt S210), um zu überprüfen,
ob der gelesene Datenwert mit dem Registerwert übereinstimmt
(Schritt S220). Eine solche Diagnose wird wiederholt bis die 1 auf
das signifikanteste Bit verschoben ist (Schritt S230). Wenn der
Registerwert und der gelesene Speicher-Wortwert unterschiedlich sind,
bedeutet das, dass das damit verbundene Speicher-Wort einen Kopplungsfehler
enthält. Ein Fehler-Report wird nach der Erfassung eines
Kopplungsfehlers herausgegeben (Schritt S295). Die oben erwähnte
Diagnose kann ohne Unterbrechung oder mit Unterbrechungen durchgeführt
werden.
-
Das
Register 16 wird dann auf 1 initialisiert und das am wenigsten
signifikante Bit wird auf Null gesetzt (Schritt S250). Dieser Registerwert (1111....110)
wird in das erste Wort des Testbereichs 13 geschrieben
(Schritt S260) und das relevante Wort (das erste Wort in diesem
Fall) wird von dem Testbereich 13 gelesen und es wird überprüft,
ob der gelesene Wert mit dem Registerwert übereinstimmt (Schritt
S270). Der Wert des Registers 16 wird dann Bit-verschoben
(Schritt S290) und der Bit-verschobene Registerwert (1111....101)
wird in das erste Wort des Testbereichs 13 geschrieben.
Der Datenwert wird gelesen (Schritt S260), um zu überprüfen,
ob der gelesene Datenwert mit dem Registerwert übereinstimmt
(Schritt S270). Diese Diagnose wird wiederholt, bis die Null auf
das am meisten signifikante Bit verschoben ist (Schritt S280). Wenn
der Registerwert und der gelesene Speicher-Wortwert unterschiedlich sind,
bedeutet das, dass das damit verbundene Speicherwort einen Kopplungsfehler
enthält. Ein Fehler wird herausgegeben nach dem Erfassen
eines Kopplungsfehlers (Schritt S295). Wenn die Diagnose des ersten
Wortes beendet ist, werden die Daten des ersten Wortes aus dem Speicherbereich 14 in
den Testbereich 13 wiederhergestellt. Mit diesem Verfahren kann
getestet werden, ob ein Kopplungsfehler zwischen Bits in dem ersten
Wort vorhanden ist.
-
Der
Intra-Wort-Test für das erste Wort wird auf diese Art beendet.
Ein ähnlicher Inter-Wort-Test wird für alle Worte
in dem Testbereich 13 durchgeführt. Sobald der
Inter-Wort-Test für alle Worte in dem Testbereich 13 beendet
ist, kann danach ein Inter-Wort-Test wie im Folgenden beschrieben,
durch ein Setzen des ersten Wortes als ein Test-Target-Wort, durchgeführt
werden.
-
In
den Erklärungen zu 3 wird ein
Intra-Wort-Test von dem am wenigsten signifikanten Bit durchgeführt.
Der Intra-Wort-Test kann jedoch auch von dem am signifikantesten
Bit aus durchgeführt werden. Darüber hinaus kann
das gesamte Wort zuerst auf 1 initialisiert werden und dann auf
Null initialisiert werden, um den Intra-Wort-Test durchzuführen. Der
Intra-Wort-Test kann alternativ durch ein Initialisieren eines Test-Target-Wortes
mit einem bestimmten Muster, wie zum Beispiel AAAAh und 5555h durchgeführt
werden, und durch ein Durchführen des Vergleichs zwischen
dem speziellen Muster und aus dem Wort gelesener Daten im Bezug
auf mehrere bestimmte, durch ein Bit-verschieben erhaltene Muster. Das
Ziel besteht darin, eine Null oder 1 in jedes Bit eines Wortes zu
schreiben und zu bestätigen, dass die anderen Bits nicht
betroffen sind.
-
Wenn
der Intra-Wort-Test für alle Worte beendet ist, wird ein
Inter-Wort-Test durchgeführt, um zu testen, ob kein Kopplungsfehler
zwischen zwei Worten in dem Testbereich 13 auftritt. Das
Verfahren des Inter-Wort-Tests wird mit Bezug auf 4 erklärt. Vor
dem Beginn des Inter-Wort-Tests, wird von den in dem Testbereich 13 gespeicherten
Daten ein Backup in dem Speicherbereich 14 durchgeführt.
-
Am
Anfang wird der gesamte Testbereich 13 auf Null initialisiert
und dann wird eine 1 in alle Bits eines Test-Target-Worts geschrieben,
für das der Intra-Wort-Test durchgeführt wurde
(Schritt S300). Speicherdaten der anderen Worte im Testbereich 13 werden
nacheinander gelesen, um zu bestätigen, dass die gelesenen
Datenwerte alle Null sind (Schritte S310 bis S330). Wenn irgendeiner
der gelesenen Datenwerte eine 1 enthält, bedeutet das,
dass ein Kopplungsfehler zwischen einem Wort, von dem der Datenwert
eine 1 enthält, und dem Test-Target-Wort auftritt. Ein
Fehlerreport wird nach der Erfassung eines Kopplungsfehlers herausgegeben
(Schritt S380).
-
Anschließend
wird der gesamte Testbereich 13 auf 1 initialisiert und
dann wird eine Null in alle Bits des Test-Target-Worts geschrieben
(Schritt S340). Speicherdaten der anderen Worte in dem Testbereich 13 werden
nacheinander gelesen, um zu bestätigen, dass die gelesenen
Datenwerte alle 1 sind (Schritte S350 bis S370). Wenn irgendeiner
der gelesenen Datenwerte eine Null enthält, bedeutet das, dass
ein Kopplungsfehler zwischen einem Wort, von dem der Datenwert eine
Null enthält, und dem Test-Target-Wort auftritt. Ein Fehlerreport
wird nach dem Erfassen eines Kopplungsfehlers herausgegeben (Schritt
S380). Mit diesem Verfahren kann getestet werden, ob ein Kopplungsfehler
zwischen einem Test-Target-Wort und den anderen Worten auftritt.
-
Danach
wird ein Wort bei der nächsten Adresse als Test-Target-Wort
genommen und ein ähnlicher Test wird für das Test-Target-Wort
wiederholt. Der gesamte Testbereich 13 kann diagnostiziert werden,
durch ein erfolgreiches Durchführen des Inter-Wort-Tests
für alle Worte im Testbereich 13 vom ersten Wort
an. Nach der Beendigung des Inter-Wort-Tests werden die Speicherwerte
aus dem Speicherbereich 14 in dem Testbereich 13 wiederhergestellt.
Die CPU setzt einen Betrieb als eingebettetes System fort.
-
5 stellt
das Speicher-Diagnose-Verfahren entsprechend der ersten Ausführungsform
konzeptionell dar. Der Inter-Bit-Test wird für jedes Test-Target-Wort
durchgeführt, beginnend bei dem ersten Wort bis zu dem
letzten Wort, unter Verwendung eines Zwei-Bit-Verschiebemusters
eines 1-Bit-Verschiebens und eines 0-Bit-Verschiebens. Der gesamte
Testbereich wird zuerst auf Null initialisiert, und dann wird eine
1 in alle Bits eines Test-Target-Wortes geschrieben, um einen Test
nach einem Kopplungsfehler zwischen dem Test-Target-Wort und den
anderen Worten durchzuführen. Der gesamte Testbereich wird
dann auf 1 initialisiert und eine Null wird in alle Bits des Test-Target-Wortes
geschrieben, um einen Test nach einem Kopplungsfehler zwischen dem
Test-Target-Wort und den anderen Worten durchzuführen.
Dies wird für alle Worte wiederholt.
-
Wenn
man annimmt, dass die Speichergröße des Testbereichs 13 N
Bits aufweist, erfordert das typische Walkpath- oder Galpat-verfahren
N2 Speicherzugriffe, um den Testbereich
von N Bits zu diagnostizieren. Wenn man annimmt, dass ein Wort aus L
Bits zusammengesetzt ist, erfordert das Verfahren entsprechend der
ersten Ausführungsform L2 × (N/L) Zugriffe
in dem Intra-Wort-Test und (N/L)2 Zugriffe
in dem Inter-Wort-Test und erfordert dann insgesamt L2 × (N/L)
+ (N/L)2 Zugriffe. Wenn N = L2 ist,
erreicht das Verfahren entsprechend der ersten Ausführungsform eine
Geschwindigkeit, die circa L mal höher ist.
-
Es
wird oben beschrieben, dass der Intra-Wort-Test zuerst für
alle Worte durchgeführt wird und der Inter-Wort-Test für
alle Worte nach Beendigung des Intra-Wort-Tests durchgeführt
wird. Der Intra-Wort-Test und der Inter-Wort-Test können
jedoch abwechselnd für jedes Wort durchgeführt
werden.
-
Wenn
speziell der Intra-Wort-Test für ein Wort beendet ist,
wird der Inter-Wort-Test durchgeführt, durch ein Setzen
des Wortes, das dem Intra-Wort-Test unterworfen war, als ein Test-Target-Wort,
wobei der Intra-Wort-Test dann für ein anschließendes
Wort durchgeführt wird, und der Inter-Wort-Test durchgeführt
wird, durch ein Setzen des anschließenden Wortes, das dem
Intra-Wort-Test unterworfen war, als ein Test-Target-Wort. Darüber
hinaus kann der Intra-Wort-Test und der Inter-Wort-Test abwechselnd
eher für mehrere Worte durchgeführt werden als
für ein einziges Wort. Speziell kann der Intra-Wort-Test
ohne Unterbrechung für eine vorbestimmte Anzahl von Worten nacheinander
durchgeführt werden (zum Beispiel acht Worte), danach kann
der Inter-Wort-Test ohne Unterbrechung für die mehreren
Worte, die nacheinander dem Intra-Wort-Test unterworfen waren, durchgeführt
werden, der Intra-Wort-Test kann ohne Unterbrechung für
die vorbestimmte Anzahl von anschließenden Worten (zum
Beispiel acht Worte) nacheinander durchgeführt werden,
und dann kann der Inter-Wort-Test ohne Unterbrechung für
die mehreren Worte, die dem Intra-Wort-Test nacheinander unterworfen
waren, durchgeführt werden. Worte, die dem Inter-Wort-Test
unterliegen sollen, können in irgendeiner Reihenfolge gewählt
werden, solange die Worte dem Inter-Wort-Test unterworfen waren.
Während des Inter-Wort-Tests kann der Test bei den Schritten
S300 bis S330 in 4, der durchgeführt wird
durch ein Setzen aller Werte des Test-Target-Worts auf 1 und durch
ein Setzen aller Werte der anderen Worte auf 0, durchgeführt
werden durch ein erfolgreiches Setzen des Test-Target-Worts auf
alle Worte, von dem ersten Wort bis zum letzten Wort, und danach
kann der Test bei dem Schritt S340 bis S370 in 4,
der durchgeführt wird durch ein Setzen aller Werte des
Test-Target-Worts auf 0 und durch ein Setzen aller Werte der anderen
Worte auf 1, durchgeführt werden durch ein erfolgreiches
Setzen des Test-Target-Worts auf alle Worte, von dem ersten Wort
bis zu dem letzten Wort.
-
Willkürliche
Testmuster können als Initialisierungsmuster und als Testmuster
für das Test-Target-Wort ausgewählt werden. Wenn
ein Kopplungsfehler zwischen Bits des Initialisierungswerts und dem
Testmuster für das Test-Target-Wort auftritt, wobei beide
Bits 1 oder Null sind, wird ein solcher Kopplungsfehler nicht erfasst.
Entsprechend sollten das Initialisierungsmuster und das Testmuster
für das Test-Target-Wort solche sein, die Bitwerte in einer
zueinander invertierten Beziehung aufweisen, wie zum Beispiel AAAAh
und 5555h.
-
In
der oben erwähnten Ausführungsform führt
die CPU 11 keinen Prozess außer der Diagnose durch,
bis der Test des Testbereichs 13 beendet ist. Dies ist
der Fall, da ein Speicher (der Testbereich 13), in dem
die CPU 11 den Prozess durchführt, mit Diagnosedaten
gefüllt ist. Eine unterbrochene Sequenzinformation, die
anzeigt, bis zu welcher Sequenz unter den vorbestimmten Speicher-Diagnose-Sequenzen die
Speicher-Diagnose abgeschlossen ist, kann in dem Speicherbereich 14 oder
dem nichtflüchtigen Bereich 15 zu einem Zeitpunkt
gespeichert werden, wenn die CPU 11 den Prozess außer
der Diagnose verarbeiten will, zum Beispiel eine Anwendung in dem
eingebetteten System. Auf diese Weise kann die CPU 11 die
Diagnose mit Bezug auf die unterbrochenen Sequenzinformationen fortsetzen,
nach einem Kopieren von Daten des Speicherbereichs 14 in
den Testbereich 13, um den Prozess der Diagnose durchzuführen,
und dann ein erneutes Kopieren der Daten des Testbereichs 13 in
den Speicherbereich 14.
-
Wenn
zum Beispiel der Intra-Wort-Test und der Inter-Wort-Test abwechslungsweise
für jedes Wort durchgeführt wird, wird eine abgeschlossene Wort-Information,
die anzeigt, bis zu welchem Wort vom Beginn an die Tests abgeschlossen
werden, in dem Speicherbereich 14 oder dem nichtflüchtigen Bereich 15 gespeichert,
bevor die CPU 11 den Prozess außer der Diagnose
durchführt. Die CPU 11 kopiert Daten des Speicherbereichs 14 in
den Testbereich 13 und führt den Prozess außer
der Diagnose durch. Wenn die Speicher-Diagnose fortgesetzt wird, kopiert
die CPU 11 die Daten des Testbereichs 13 in den
Speicherbereich 14 und setzt den Test fort, durch ein Setzen
eines Wortes, das dem gespeicherten, abgeschlossenen Wort als Test-Target-Wort
folgt. Entsprechend kann die Speicher-Diagnose in einem Zeit-unterteilten
Verfahren implementiert werden. Folglich kann die Speicher-Diagnose
zwischen Anwendungs-Prozessen durchgeführt werden, so dass die
Anwendungs-Prozesse nicht verzögert werden.
-
Wenn
die Daten des Testbereichs 13 zuerst in den Speicherbereich 14 kopiert
werden, ruft die CPU 11 den Speicherbereich 14 während
des Anwendungs-Prozesses auf und ruft den Testbereich 13 während
der Speicher-Diagnose auf. Nach Beendigung der Speicher-Diagnose
kopiert die CPU 11 die Daten des Speicherbereichs 14 in
den Testbereich 13 und tauscht die Adressen des Testbereichs 13 und des
Speicherbereichs 14. Auf diese Art wird die Notwendigkeit
eliminiert, die Daten zwischen dem Testbereich 13 und dem
Speicherbereich 14 zu kopieren, wenn die Speicher-Diagnose
in dem Zeit-unterteilten Verfahren durchgeführt wird, so
dass die Geschwindigkeit weiter erhöht werden kann.
-
In
der ersten Ausführungsform wird die Speicherkopplungs-Diagnose
hierarchisch durch den Intra-Wort-Test und den Inter-Wort-Test durchgeführt. Darum
kann eine Position, an der ein Funktionsfehler auftritt, in Einheiten
von Worten identifiziert werden (genauer kann das vorliegende Verfahren
einen Kopplungsfehler über mehrere Worte nicht erfassen), während
die Anzahl der Speicher-Zugriffe verringert wird und die für
die Diagnose erforderliche Zeit im Vergleich mit dem Walkpath- oder
Galpat-Verfahren vermindert wird. Entsprechend kann die Speicher-Diagnose
zwischen Anwendungen des eingebetteten Systems durchgeführt
werden. Wenn eine Adresse eines Wortes, von dem der Inter-Wort-Test
beendet ist, bei einer zeitlichen Unterbrechung der Diagnose gespeichert
wird, und der Test von der gespeicherten Adresse bei Wiederaufnahme
der Diagnose fortgesetzt wird, kann die Speicher-Diagnose in einem Zeit-unterteilten
Verfahren implementiert werden.
-
In
der ersten Ausführungsform werden der Intra-Wort-Test und
der Inter-Wort-Test in Einheiten von Worten durchgeführt.
Alternativ kann ein Intra-Wort-Test und ein Inter-Block-Test in
Einheiten willkürlicher Blöcke durchgeführt
werden. Die Blöcke enthalten ein Subarray, das später
beschrieben wird, als eine Speicher-Menge, die zum Beispiel mit
einem Wort oder mehreren Worten zusammenhängt.
-
Zweite Ausführungsform
-
Eine
zweite Ausführungsform der vorliegenden Erfindung wird
mit Bezug auf die 6 bis 8 und ähnlichen
beschrieben. 6 stellt einen Speicher-Diagnose-Prozess
entsprechend der zweiten Ausführungsform dar. In der zweiten
Ausführungsform wird die Speicher-Diagnose durch ein Aufteilen eines
Speichers in drei Schichten durchgeführt, das heißt,
ein Wort, ein Subarray (Array) und den gesamten Speicher. Ein Subarray
bedeutet eine mit mehreren Worten zusammenhängende Speicher-Menge. Speziell
werden in der zweiten Ausführungsform zuerst Funktionsfehler
mit einem Kopplungsfehler zwischen Bits in einem Wort getestet (Schritt
S400), und danach werden Funktionsfehler mit einem Kopplungsfehler
zwischen Worten in einem Subarray getestet (Schritt S410). Funktionsfehler
mit einem Kopplungsfehler zwischen Subarrays werden am Ende getestet
(Schritt S420).
-
Bevor
mit dem Inter-Wort-Test begonnen wird, wird von Daten, die in einem
ersten Subarray des Testbereichs 13 gespeichert sind, ein
Backup in dem Speicherbereich 14 durchgeführt.
Hinsichtlich eines ersten Worts in dem ersten Subarray in dem Testbereich 13,
wird der Intra-Wort-Test in der gleichen Art durchgeführt,
wie oben mit Bezug auf 3 erklärt. Wenn ein
Resultat des Intra-Wort-Tests normal ist, wird der Inter-Wort-Test
in dem Subarray in der gleichen Art durchgeführt, wie oben
mit Bezug auf 4 beschrieben, zusammen mit
dem Test-Target-Wort (das erste Wort in diesem Fall) in dem ersten
Subarray als Test-Target-Wort, um zu testen, ob kein Kopplungsfehler
zwischen dem Test-Target-Wort und den übrigen Worten des
Subarrays auftritt, das das Test-Target-Wort enthält.
-
Der
Intra-Wort-Test für das Wort, das dem ersten Wort in dem
ersten Subarray des Testbereichs 13 folgt, wird in der
gleichen Art durchgeführt, wie oben mit Bezug auf 3 beschrieben.
Wenn ein Resultat des Intra-Wort-Tests normal ist, wird der Inter-Wort-Test
in dem Subarry in der gleichen Art durchgeführt, wie oben
mit Bezug auf 4 beschrieben, zusammen mit
dem Test-Target-Wort (das Wort, das dem ersten Wort in diesem Fall
folgt) in dem ersten Subarray als Test-Target-Wort, um zu testen,
ob kein Kopplungsfehler zwischen dem Test-Target-Wort und den übrigen
Worten in dem Subarray auftritt, das das Test-Target-Wort enthält. Der
Intra-Wort-Test und der Inter-Wort-Test werden im Folgenden für
jedes Wort in dem ersten Subarray in der gleichen Art durchgeführt.
-
Ein
Inter-Subarray-Test wird durchgeführt, um zu testen, ob
kein Kopplungsfehler zwischen dem Test-Target-Subarray (das erste
Subarray in diesem Fall) und den übrigen Subarrays auftritt.
Das Verfahren des Inter-Subarray-Tests wird mit Bezug auf 7 beschrieben.
Vor dem Beginn des Inter-Subarray-Tests, wird von den Speicher-Daten
im Testbereich 13 ein Backup im Speicherbereich 14 durchgeführt.
-
Zu
Beginn wird der gesamte Testbereich 13 auf Null initialisiert,
ein Subarray, das dem Inter-Subarray-Test unterliegt, wird als Test-Target-Subarray gesetzt
und eine 1 wird in alle Bits des Test-Target-Subarrays geschrieben
(Schritt S500). Daten, die in Subarrays außer dem Test-Target-Subarray
in dem Testbereich 13 gespeichert sind, werden nacheinander
gelesen um zu bestätigen, dass die gelesenen Datenwerte
alle Null sind (Schritte S510 bis S530). Wenn die gelesenen Datenwerte
eine 1 enthalten bedeutet das, dass ein Kopplungsfehler zwischen
einem Subarray, bei dem der Datenwert eine 1 enthält, und
dem Test-Target-Subarray auftritt. Ein Fehlerreport wird nach dem
Erfassen eines Kopplungsfehlers herausgegeben (Schritt S580).
-
Anschließend
wird der gesamte Testbereich 13 auf 1 initialisiert und
dann wird eine Null in alle Bits eines Test-Target-Subarrays geschrieben
(Schritt S540). Speicherdaten der Subarrays außer dem Test-Target-Subarray
in dem Testbereich 13 werden nacheinander gelesen, um zu
bestätigen, dass die gelesenen Datenwerte alle 1 sind (Schritte
S550 bis S570). Wenn irgendeiner der gelesenen Datenwerte eine Null
enthält, tritt ein Kopplungsfehler zwischen einem Subarray,
bei dem der Datenwert eine Null enthält, und dem Test-Target-Subarray
auf, und folglich wird ein Fehlerreport herausgegeben (Schritt S580).
Der oben erwähnte Prozess kann diagnostizieren, dass kein
Kopplungsfehler zwischen einem zu testenden Subarray und den anderen
Subarrays auftritt.
-
Der
Inter-Wort-Test und der Inter-Wort-Test werden im nächsten
Subarray in der gleichen Art durchgeführt wie oben erwähnt.
Der Inter-Subarray-Test wird wie oben erwähnt durchgeführt,
durch ein Setzen dieses Subarrays als das Test-Target-Subarray.
Wenn solche Prozesse sukzessiv für alle Subarrays in dem
Testbereich 13 durchgeführt werden, kann eine
Kopplungsfehler-Diagnose im Bezug auf den gesamten Testbereich 13 implementiert werden.
Nach Beendigung des Tests für den gesamten Speicher, werden
die Speicherwerte von dem Speicherbereich 14 in den Testbereich 13 wiederhergestellt.
Die CPU setzt den Betrieb als eingebettetes System fort.
-
8 stellt
konzeptionell ein Speicher-Diagnose-Verfahren entsprechend der zweiten
Ausführungsform dar. Der Intra-Wort-Test wird für
jedes Wort in dem ersten Subarray durchgeführt, und der Inter-Wort-Test
wird für das Subarray durchgeführt. Der gesamte
Testbereich wird initialisiert, um den Inter-Subarray-Test durchzuführen.
Der Intra-Wort-Test, der Inter-Wort-Test und der Inter-Subarray-Test
werden wiederholt für alle Subarrays in dem Testbereich
durchgeführt, so dass der Test des gesamten Testbereichs
beendet ist.
-
Nimm
an, dass der Testbereich 13 N Subarrays enthält,
wobei jedes aus M Worten zusammengesetzt ist. Das Walkpath- oder
Galpat-Verfahren erfordert (M × N)2 Speicher-Zugriffe
zusätzlich zu dem Intra-Wort-Test, um den Testbereich der
MN Worte zu diagnostizieren. Das Verfahren entsprechend der zweiten
Ausführungsform erfordert N × (M2)
Speicher-Zugriffe in dem Inter-Wort-Test für die Subarrays
und N × (NM) Speicherzugriffe in dem Inter-Subarray-Test,
und folglich N × (M2) + N × (NM)
Speicher-Zugriffe insgesamt. Wenn M = N = 1000 ist, das heißt
für ein 1-Megawort-Speicher, erfordert das Verfahren entsprechend
der zweiten Ausführungsform eine Zahl von Speicher-Zugriffen,
die ein Tausendstel von dem typischer Verfahren ist.
-
Es
wird oben erklärt, dass der Intra-Wort-Test und der Inter-Wort-Test
in einem Subarray abwechselnd durchgeführt werden. Der
Inter-Wort-Test für jedes der Worte in einem Subarray kann
jedoch durchgeführt werden nach einer Beendigung des Intra-Wort-Tests
für alle Worte in dem Subarray. Der Intra-Wort-Test und
der Inter-Wort-Test können abwechselnd für mehrere
Worte in einem Subarray durchgeführt werden. Worte, die
dem Inter-Wort-Test unterworfen werden, können in jeder Reihenfolge
ausgewählt werden, solang die Worte bereits dem Intra-Wort-Test
unterworfen waren. Während des Inter-Wort-Tests eines Subarrays
kann der Test bei den Schritten S300 bis S330 in 4,
der durchgeführt wird durch ein Setzen aller Werte des Test-Target-Worts
auf 1 und aller Werte der anderen Worte auf Null, durchgeführt
werden durch ein Setzen aller Worte in einem Subarray nacheinander
von dem ersten Wort bis zu dem letzten Wort als Test-Target-Wort,
und der Test bei den in 4 gezeigten Schritten S340 bis
S370, der durchgeführt wird, durch ein Setzen aller Werte
des Test-Target-Worts auf Null und aller Werte der anderen Worte
auf 1, kann durchgeführt werden durch ein nacheinander Setzen
aller Worte in einem Subarray von dem ersten Wort bis zu dem letzten
Wort als das Test-Target-Wort.
-
Es
ist auch möglich, zuerst den Intra-Wort-Test für
alle Worte in dem Testbereich durchzuführen, alle Inter-Wort-Test
in jedem Subarray durchzuführen und dann den Inter-Subarray-Test durchzuführen.
Subarrays, die dem Inter-Subarray-Test unterworfen werden, können
in jeder Reihenfolge ausgewählt werden, solang die Subarrays bereits
dem Inter-Wort-Test unterworfen waren.
-
Willkürliche
Testmuster können für die Initialisierungsmuster
und die Testmuster für das Test-Target-Wort ausgewählt
werden. Wenn jedoch ein Kopplungsfehler zwischen Bits des Initialisierungswertes und
dem Testmuster des Test-Target-Worts auftritt, wobei beide Bits
1 oder Null sind, kann ein solcher Kopplungsfehler nicht erfasst
werden. Entsprechend sollten das Initialisierungsmuster und das
Testmuster für das Test-Target-Wort Bitwerte mit einer
zueinander invertierten Beziehung aufweisen, wie zum Beispiel AAAAh
und 5555h. Gleichermaßen können willkürliche
Muster als Initialisierungsmuster und Testmuster für das
Test-Target-Subarray ausgewählt werden. Zusätzlich
sollten in diesem Fall Muster mit Bitwerten angenommen werden, die
eine invertierte Beziehung zueinander haben.
-
Sogar
in der zweiten Ausführungsform können unterbrochene
Sequenzinformationen, die anzeigen, bis zu welcher Sequenz unter
den vorbestimmten Speicher-Diagnose-Sequenzen die Speicher-Diagnose
beendet wurde, in dem Speicherbereich 14 oder dem nichtflüchtigen
Bereich 15 zu einem Zeitpunkt gespeichert werden, wenn
die CPU 11 einen Prozess außer dem der Diagnose
bearbeiten will, zum Beispiel eine Anwendung in dem eingebetteten
System. Entsprechend kann die CPU 11, nach dem Kopieren
von Daten von dem Speicherbereich 14 in den Testbereich 13 und
dem Durchführen des Prozesses außer dem der Diagnose,
die Daten aus dem Testbereich 13 wieder in den Speicherbereich 14 kopieren,
und kann die Diagnose mit Bezug auf die unterbrochene Sequenzinformation
fortsetzen.
-
Zum
Beispiel wird ein abgeschlossenes Wort, das anzeigt, bis zu welchem
Wort vom Beginn der Test abgeschlossen ist, in dem Speicherbereich 14 oder
dem nichtflüchtigen Bereich 15 gespeichert, bevor
die CPU 11 den Prozess außer dem der Diagnose
durchführt. Die CPU 11 kopiert Daten des Speicherbereichs 14 in
den Testbereich 13 und führt den Prozess außer
dem der Diagnose durch. Wenn die Diagnose fortgesetzt wird, kopiert
die CPU 11 die Daten im Testbereich 13 in den
Speicherbereich 14 und setzt den Test mit Bezug auf ein
Wort fort, das dem gespeicherten, abgeschlossenen Wort als Test-Target-Wort
folgt. Anstelle des Worts, für das der Inter-Subarray-Test
abgeschlossen ist, kann eine Adresse eines Subarrays gespeichert
werden, für das der Inter-Subarray-Test abgeschlossen ist.
Solche Prozesse erzielen die Speicher-Diagnose in einer Zeit-unterteilten
Art und Weise. Die Speicher-Diagnose kann entsprechend zwischen
einem Anwendungs-Prozess durchgeführt werden, so dass die
Anwendungs-Prozesse nicht verzögert werden.
-
Wenn
die Daten des Testbereichs 13 zuerst in den Speicherbereich 14 kopiert
werden, ruft die CPU 11 den Speicherbereich 14 während
des Anwendungs-Prozesses auf und ruft den Testbereich 13 während
der Speicher-Diagnose auf. Nach Beendigung der Speicher-Diagnose
werden die Daten des Speicherbereichs 14 in den Testbereich 13 kopiert, und
die Adressen des Testbereichs 13 und des Speicherbereichs 14 werden
vertauscht. Folglich wird die Notwendigkeit eliminiert, die Daten
zwischen dem Testbereich 13 und dem Speicherbereich 14 zu kopieren,
wenn die Speicher-Diagnose in einer Zeit-unterteilten Art und Weise
durchgeführt wird.
-
Folglich
wird in der zweiten Ausführungsform die Speicher-Diagnose
hierarchisch durch den Intra-Wort-Test, den Inter-Wort-Test und
den Inter-Subarray-Test durchgeführt. Entsprechend wird
eine Position eines Funktionsfehlers in Einheiten von Subarrays
identifiziert (genauer kann das vorliegende Verfahren eine Position
eines Kopplungsfehlers über mehrere Subarrays nicht erfassen),
während die Anzahl von Speicherzugriffen verringert wird
und die Zeit reduziert wird, die für die Diagnose erforderlich ist,
verglichen mit den typischen Verfahren. Darum kann die Speicher-Diagnose
zwischen Anwendungen des eingebetteten Systems durchgeführt
werden. Wenn eine Adresse eines Wortes, für das der Inter-Wort-Test
abgeschlossen ist, oder eine Adresse eines Subarrays, für
das der Inter-Subarray-Test abgeschlossen ist, bei einer zeitlichen
Unterbrechung der Diagnose gespeichert wird, und der Test von der gespeicherten
Adresse fortgesetzt wird bei der Fortsetzung der Diagnose, kann
die Speicher-Diagnose in einer Zeit-unterteilten Art und Weise implementiert werden.
-
INDUSTRIELLE ANWENDBARKEIT
-
Die
Speicher-Diagnose-Vorrichtung entsprechend der vorliegenden Erfindung
ist für eine Speicher-Diagnose in einem eingebetteten System
nützlich, das eine hohe Zuverlässigkeit erfordert,
zum Beispiel in einer Not-Stopp-Sequenz-Steuer-Vorrichtung, die
eine Speicher-Diagnose zumindest einmal am Tag durchführt.
-
ZUSAMMENFASSUNG
-
Eine
Intra-Wort-Testeinheit einzusetzen, die nach einem Kopplungsfehler
in jedem Bit in jedem Wort in einem Speicher testet, eine Inter-Wort-Testeinheit,
die nach einem Kopplungsfehler zwischen Worten in jedem Subarray,
wobei jedes mehrere Worte aufweist, in dem Speicher testet, und
eine Inter-Block-Testeinheit, die nach einem Kopplungsfehler zwischen
Subarrays in dem Speicher testet, um eine Hochgeschwindigkeits-Kopplungsfehler-Diagnose
zu erzielen, während ein bestimmtes Niveau der Diagnose-Genauigkeit
erhalten bleibt.
-
- 11
- CPU
- 12
- Bus
- 13
- Testbereich
im Random-Zufallsspeicher
- 14
- Speicherbereich
im Random-Zufallsspeicher
- 15
- Nichtflüchtiger
Speicher
- 16
- Register
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-