-
Die
vorliegende Erfindung betrifft ein Verfahren zur Fehlerkorrektur
bei einem digitalen Speicher mit einzeln adressierbaren Speicherworten
sowie eine zur Durchführung
des Verfahrens eingerichtete Speichereinrichtung.
-
Zur
Fehlerkorrektur bei einem Digitalspeicher mit einzeln adressierbaren
Speicherworten ist es bekannt, jedem Speicherwort zusätzliche
Bits zuzuordnen, in denen Prüfinformationen
zu dem jeweils in dem Speicherwort abgelegten Wert gespeichert werden,
mit deren Hilfe ein Fehler beim Schreib-Lesevorgang auf das bestimmte Speicherwort
erkannt und gegebenenfalls auch behoben werden kann. Nachteiligerweise
erfordert dieses Vorgehen einen großen zusätzlichen Speicherbedarf, da
jedem Speicherwort in dem Speicher zusätzliche Bits zugeordnet werden
müssen.
-
Daneben
ist es auch bekannt, einem Digitalspeicher einige Ersatzspeicherworte
zuzuordnen, die bei Bedarf die Funktion einzelner als defekt erkannter Speicherworte übernehmen
können.
Dazu wird zu Beginn des Betriebs probeweise in jedes Speicherwort
ein Wert geschrieben und anschließend wieder daraus gelesen
und mit dem geschriebenen Wert verglichen. Bei einer fehlerhaften Übereinstimmung wird
die Adresse des betreffenden Speicherworts in einem Defektwortespeicher
gespeichert. Sobald im normalen Betrieb auf ein Speicherwort zugegriffen wird,
deren Adresse in dem Defektwortespeicher gespeichert ist, wird der
Schreibzugriff bzw. der Lesezugriff auf ein Ersatzspeicherwort umgeleitet.
Vorteilhafterweise benötigt
dieses Verfahren nur einen geringen zusätzlichen Speicheraufwand. Allerdings
besitzt dieses Verfahren den Nach teil, dass damit nur Fehler erkannt
und behoben werden können,
die zu Beginn bei der Überprüfung festgestellt
worden sind. Während
des Betriebs auftretende Fehler können mit diesem Verfahren nicht
erkannt oder behoben werden.
-
Aus
der
US 5,659,551 ist
ein programmierbares Speichersystem mit eingebauter Selbsttestfunktion
bekannt. Gemäß diesem
System ist es möglich,
im Rahmen einer eingebauten Selbsttestfunktion Speicherzellen eines
Schreib-Lese-Speichers beim Systemstart zu testen. Der Test erfolgt
durch Anwenden von Testmustern, d. h. indem eine vorgegebene Dateneingabe
in den Speicher vorgenommen wird, der Speicher ausgelesen wird und
die aus dem Speicher ausgelesene Ausgabe mit der erwarteten Ausgabe,
z. B. der Dateneingabe, verglichen wird. In dem Fall, dass ein Fehler
erkannt wird, wird der defekte Bereich des Speichers durch einen
redundanten Bereich ersetzt.
-
Gemäß der
DE 101 46 931 A1 werden
im Betriebszustand einer Datenverarbeitungsvorrichtung fehlerhafte
Speicherzellen einer Schreib-Lese-Speichereinrichtung der Datenverarbeitungsvorrichtung ausgeblendet
und durch in der Schreib-Lese-Speichereinrichtung
befindliche Ersatzspeicherzellen ersetzt. Hierfür sind programmierbare Verbindungseinrichtungen
vorgesehen. Als Möglichkeit,
fehlerhafte Speicherzellen zu erkennen, wird ein Paritätsprüfverfahren
genannt. Die programmierbaren Verbindungseinrichtungen sind beispielsweise
durch so genannte elektrische Fuses oder Antifuses gebildet. Auf
diese Weise werden als fehlerhaft erkannte Speicherzellen permanent
durch Ersatzspeicherzellen ersetzt.
-
In
der
EP 0 744 755 A1 wird
ein Testverfahren für
auf Halbleitersubstraten eingebettete Speicher beschrieben. Das
Testverfahren ist auch für Speicher
mit einer so genannten Write- Through-Capability
geeignet und wir im Rahmen einer eingebauten Selbsttestfunktion
(Built-In-Self-Test, BIST) durchgeführt. Eine Fehlerkorrektur im
normalen laufenden Betrieb der Speichervorrichtung ist nicht vorgesehen
bei jedem Schreibzugriff.
-
Der
vorliegenden Erfindung liegt die Aufgabe zu Grunde, ein Verfahren
zur Fehlerkorrektur bei einem digitalen Speicher sowie eine zur
Durchführung des
Verfahrens eingerichtete Speichereinrichtung der eingangs genannten
Art zu schaffen, wobei auch während
des Betriebs Fehler des digitalen Speichers erkannt und behoben
werden können
und keine Überprüfung zu
Beginn erforderlich ist.
-
Erfindungsgemäß wird diese
Aufgabe durch ein Verfahren mit den Merkmalen des Anspruchs 1 bzw.
eine Speichereinrichtung mit den Merkmalen des Anspruchs 9 gelöst.
-
Gemäß der vorliegenden
Erfindung wird ein digitaler Speicher verwendet, bei dem bei einem Schreibzugriff
auf ein Speicherwort dieses Speicherwort auch ausgelesen wird und
der gelesene Wert über
eine separate Ausgangsleitung ausgegeben wird. Diese Funktionalität wird auch
als Write-Through-Capability bezeichnet und bedingt, dass der Speicher
getrennte Eingangsleitungen und Ausgangsleitungen für die Daten
aufweist. In diesem Fall wird ein über die Eingangsleitungen geschriebener Wert
sofort auf der Ausgangsleitung wieder ausgegeben, wobei anhand des
auf der Ausgangsleitung ausgegebenen Werts bereits festgestellt
werden kann, ob der Wert in dem betreffenden Speicherwort richtig gespeichert
worden ist bzw. das betreffende Speicherwort korrekt arbeitet. Fehler
der Speicherworte können
somit bereits beim Schreiben festgestellt werden. Erfindungsgemäß wird bei
einem Schreibvorgang auf ein bestimmtes Speicherwort der auf der Eingangsleitung
eingegebene Wert mit dem auf der Ausgangsleitung gleichzeitig ausgegebene
Wert verglichen und bei fehlerhafter Übereinstimmung das betreffende
Speicherwort als fehlerhaft erkannt. Dies besitzt den Vorteil, dass
die Überwachung
der einzelnen Speicherworte während
des normalen Betriebs des Speichers bei jedem Schreibzugriff in
einer Datenverarbeitungseinrichtung durchgeführt werden kann und Fehler
bereits während
des Schreibens, noch bevor auf den fehlerhaften Wert lesend zugegriffen
wird, erkannt werden können.
-
Das
erfindungsgemäße Verfahren
wird während
des normalen Betriebs der Speichereinrichtung in einer Datenverarbeitungseinrichtung
durchgeführt, wobei
bei jedem Schreibzugriff auf ein Speicherwort deren Funktion überprüft und gegebenenfalls
die Funktion eines als defekt erkannten Speicherworts einem Ersatzspeicherwort übertragen
wird. Auf diese Weise ist zu Beginn des Betriebs grundsätzlich keine systematische Überprüfung aller
Speicherworte erforderlich, da die Speicherworte zwangsläufig bei
Benutzung bzw. bei dem ersten Schreibzugriff auf sie überprüft werden.
Trotzdem ist es jedoch möglich, vor
dem Betrieb des Speichers systematisch einige oder alle Speicherworte
zu überprüfen, um
bereits vorab die Anzahl von defekten Speicherworten zu ermitteln.
Falls die Anzahl eine bestimmte Grenze und insbesondere die Anzahl
der zur Verfügung
stehenden Ersatzspeicherworte überschreitet,
kann eine fehlerlose Funktion trotz Fehlerkorrektur nicht mehr gewährleistet
werden.
-
Vorteilhafterweise
werden als fehlerhaft erkannte Speicherworte markiert, indem deren
Adressen in einem Defektwortespeicher gespeichert werden. Zugriffe
auf als defekt erkannte Speicherworte können so umgeleitet werden,
indem in einem Adressvergleicher überwacht wird, ob bei dem Speicher
auf eine Speicherwort mit einer Adresse zugegriffen werden soll,
die in dem Defektwortespeicher gespeichert ist und somit als defekt
erkannt worden ist. In diesem Fall kann der Zugriff auf ein vorher
festgelegtes Ersatzspeicherwort umgeleitet werden. Dabei kann ebenso
wie bei den Speicherworten des Speichers vorgesehen sein, dass der
Schreibzugriff auf das entsprechende Ersatzspeicherwort über eine andere
Leitung erfolgt als der Lesezugriff auf das entsprechende Ersatzspeicherwort.
Vorteilhafterweise wird für
die Lesezugriffe ein Multiplexer verwendet, der entweder das Ausgangssignal
des Speichers oder das Ausgangssignal der Ersatzspeicherworte weitergibt,
um so die Lesezugriffe umleiten zu können. Bei den Schreibzugriffen
ist in aller Regel kein Multiplexer erforderlich, da der zu schreibende
Wert gleichzeitig sowohl an den Speicher als auch an die Ersatzspeicherworte
angelegt werden kann, da zum effektiven Speichern des angelegten
Werts in aller Regel ohnehin noch ein weiteres Signal erforderlich ist,
welches wahlweise an ein als nicht defekt erkanntes Speicherwort
im Speicher oder an ein Ersatzspeicherwort geleitet wird, wenn versucht
wird, auf ein als defekt erkanntes Speicherwort im Speicher zuzugreifen.
-
Bei
dem Speichern der Adressen von als defekt erkannten Speicherworten
in einem Defektwortespeicher können
verschiedene Strategien verfolgt werden. Zum einen kann die Adresse
eines als defekt erkannten Speicherworts dauerhaft für die Betriebsdauer
des Speichers gespeichert bleiben. Die Funktion eines als defekt
erkannten Speicherworts wird in einem solchen Fall nicht noch einmal überprüft, sobald
deren Adresse einmal in dem Defektwortespeicher gespeichert ist.
Dies erfordert einen geringen Aufwand und schafft eine erhöhte Sicherheit,
da die Speicherworte aus dem Betrieb genommen werden, sobald sie
einmal eine Störung
gezeigt haben. Dieses Vorgehen kann auch als statische Fehlerkorrektur
bezeichnet werden.
-
Daneben
ist auch eine dynamische Fehlerkorrektur möglich, bei der die Adressen
von als defekt erkannten Speicherworten in dem Defektwortespeicher
auch wieder gelöscht
werden können.
Dies geschieht insbesondere dann, wenn das betreffende Speicherwort
wieder korrekt funktioniert. Damit kann dem Umstand Rechnung getragen
werden, dass die Fehlfunktion eines Spei cherworts auch vorübergehen
kann, wenn sie beispielsweise durch veränderliche Umgebungseinflüsse bedingt
war. Dies kann beispielsweise eine zu geringe oder zu hohe Temperatur oder
eine zu geringe oder zu hohe Betriebsspannung sein. Sobald in einem
solchen Fall die Temperatur, die Betriebsspannung oder der für die Fehlfunktion maßgebliche
Umgebungseinfluss sich wieder in dem Bereich befindet, in dem die
Speicherwort korrekt funktioniert, kann die Adresse der entsprechenden Speicherwort
in dem Defektwortespeicher wieder gelöscht werden und die Speicherwort
weiterverwendet werden. Damit ist eine kleinere Anzahl von Ersatzspeicherworten
ausreichend, da kein Ersatzspeicherwort unnötigerweise zum Ersatz eines
Speicherworts verwendet wird, die nur vorübergehend eine Fehlfunktion
gezeigt hat.
-
Grundsätzlich kann
ein Signal abgegeben werden, sobald ein Speicherwort als defekt
erkannt wird. Dieses Signal kann beispielsweise dazu verwendet werden,
möglicherweise
Gegenmaßnahmen zu
ergreifen, wie beispielsweise das Anheben einer zur Verminderung
der Stromaufnahme reduzierten Versorgungsspannung. Weiterhin kann
ausgewertet werden, wie viele der vorhandenen Ersatzspeicherworte
bereits verwendet werden, um rechtzeitig reagieren zu können, bevor
keine Ersatzspeicherworte mehr zur Verfügung stehen. Dieses Verfahren
empfiehlt sich insbesondere bei der statischen Fehlerkorrektur,
bei der die Adressen von als defekt erkannten Speicherworten im
Defektwortespeicher nicht mehr gelöscht werden.
-
Die
Erfindung wird nachfolgend anhand eines bevorzugten Ausführungsbeispiels
unter Bezugnahme auf die beigefügte
Zeichnung näher
erläutert.
-
Die
Figur zeigt den Aufbau einer Speichereinrichtung mit einer erfindungsgemäßen Fehlerkorrektur.
-
In
der 1 ist in der Speicheranordnung ein digitaler Speicher 1 mit
einzeln adressierbaren Speicherworten dargestellt. Die einzelnen
Speicherworte können
beliebig viele Bits besitzen, die allerdings gemeinsam adressiert
werden. Der Speicher 1 weist Eingangsleitungen 2 zum
Schreiben der Daten in die Speicherworte und Ausgangsleitungen 3 zum
Auslesen der Daten aus den Speicherworten auf. Die Speicherworte
werden über
Adressleitungen 4 adressiert. Weiterhin sind Steuerleitungen 5 vorgesehen,
mit denen der Schreib- bzw. Lesevorgang des Speichers 1 gesteuert
werden kann.
-
Dem
Speicher 1 ist eine Fehlerkorrektureinrichtung 6 zugeordnet,
die mit sämtlichen
in den Speicher 1 hineinführenden oder aus ihm herausführenden
Leitungen 2 bis 5 verbunden ist. An der Korrektureinrichtung 6 liegen
somit die an den Speicher 1 angelegte Adresse, ein in das
adressierte Speicherwort zu schreibender Wert, ein aus einem adressierten
Speicherwort ausgelesener Wert und die Steuerleitungen für den Speicher 1 an.
-
Der
Speicher 1 weist eine Write-Through-Capability auf, d.
h., dass ein über
die Eingangsleitung 2 in ein adressiertes Speicherwort
geschriebener Wert an der Ausgangsleitung 3 er scheint.
Dabei wird der Wert durch das adressierte Speicherwort so hindurchgereicht,
dass der an der Ausgangsleitung 3 anliegende Wert nur bei
ordnungsgemäßer Funktion des
Speicherworts dem an der Eingangsleitung 2 anliegenden
Wert entspricht.
-
Die
Korrektureinrichtung 6 weist einen Fehlerdetektor 12 auf,
an den das Eingangssignal der Eingangsleitung 2 und das
Ausgangssignal der Ausgangsleitung 3 anliegen. Ferner weist
die Korrektureinrichtung 6 eine Steuereinrichtung 9 auf,
welche sämtliche
Komponenten innerhalb der Korrektureinrichtung 6 steuert.
Die Steuereinrichtung 9 steuert beispielsweise den Fehlerdetektor 12 so
an, dass bei jedem Schreibvorgang auf den Speicher 1 der
Fehlerdetektor 12 den über
die Eingangsleitung 2 geschriebenen Wert mit dem über die
Ausgangsleitung 3 ausgegebenen Wert vergleicht und bei
einem Abweichen zwischen den beiden Werten ein Signal an die Steuereinrichtung 9 abgibt.
In diesem Fall steuert die Steuereinrichtung 9 einen Defektwortespeicher 11 innerhalb
der Korrektureinrichtung 6 derart an, dass die derzeit
anliegende Adresse als neuer Eintrag übernommen wird. Dies bewirkt,
dass die Adresse eines Speicherworts im Speicher 1 in dem
Defektwortespeicher 11 als neuer Eintrag gespeichert wird, sobald
das Speicherwort als defekt erkannt wird, indem eine Diskrepanz
zwischen dem geschriebenen Wert und dem ausgegebenen Wert ermittelt
wird.
-
Die
Korrektureinrichtung 6 weist weiterhin einen Adressvergleicher 10 auf,
an dem zum einen das Adresssignal des Speichers 1 und zum
anderen die Adressen der Einträge
in dem Defektwortespeicher 11 anliegen. Der Adressvergleicher 10 gibt
an die Steuereinrichtung 9 ein Signal ab, sobald an dem Speicher 1 eine
Adresse anliegt, die in einem Eintrag im Defektwortespeicher 11 gespeichert
ist, so dass die Steuerein richtung 9 ein Signal bekommt,
sobald auf ein als defekt erkanntes Speicherwort im Speicher 1 zugegriffen
werden soll. In diesem Fall sorgt die Steuereinrichtung 9 dafür, dass
der Zugriff auf ein Ersatzspeicherwort in einem Ersatzwortespeicher 8 umgeleitet
wird. Wenn es sich bei diesem Zugriff um einen Schreibzugriff handelt,
wird der an der Eingangsleitung 2 anliegende zu schreibende
Wert, der durch den Fehlerdetektor 12 zu dem Ersatzwortespeicher 8 durchgeschleift
wird, in ein entsprechendes Ersatzspeicherwort geschrieben. Die
Adresse des Ersatzspeicherworts innerhalb des Ersatzwortespeichers 8 kann
dabei vorteilhafterweise der Adresse entsprechen, unter der im Defektwortespeicher 11 die
Adresse gespeichert ist, die zu einer Übereinstimmung im Adressvergleicher 10 geführt hat.
Wenn es sich um einen Lesezugriff handelt, wird der Ersatzwortespeicher 8 von
der Steuereinrichtung 9 so angesteuert, dass das entsprechende
Speicherwort den angeforderten Wert an einem Multiplexer 7 ausgibt.
Gleichzeitig steuert die Steuereinrichtung 9 den Multiplexer 7 derart
an, dass er anstatt des Signals auf der Ausgangsleitung 3 des
Speichers 1 das Ausgangssignal des Ersatzwortespeichers 8 ausgibt.
Die in der Figur dargestellte Einrichtung stellt sich demnach von
außen
wie ein ganz normaler Speicher dar, bei dem über eine Leitung Daten eingelesen
und über
eine andere Leitung Daten ausgelesen werden können.
-
Innerhalb
der Fehlerkorrektur 6 ist der Ausgang des Ersatzwortespeichers 8 ebenso
mit dem Fehlerdetektor 12 verbunden, so dass der Fehlerdetektor 12 auch
Fehler innerhalb des Ersatzzellenspeichers 8 erkennen kann.
Der Ersatzwortespeicher 8 besitzt ebenso wie der Speicher 1 Write-Through-Capability, so dass
bereits beim Schreiben in ein Ersatzspeicherwort innerhalb des Ersatzwortespeichers 8 ein
Fehler erkannt werden kann.
-
Weiterhin
liefert die Steuereinrichtung 9 innerhalb der Fehlerkorrektur 6 ein
Fehlersignal 13, mit welchem verschiedene Zustände angezeigt
werden können.
Beispielsweise kann mittels des Fehlersignals 13 angezeigt
werden, ob eine bestimmte Anzahl von Adressen von als defekt erkannten
Speicherworten in dem Defektwortespeicher 11 gespeichert
sind. Da in aller Regel die Anzahl der Speicherplätze in dem
Defektwortespeicher gleich der Anzahl der Ersatzspeicherworte ist,
kann auf diese Weise mitgeteilt werden, wie viele Ersatzspeicherworte
noch zur Verfügung
stehen. Dabei kann das Signal 13 vorzugsweise so eingerichtet
sein, dass es anzeigt, wenn kein Ersatzspeicherwort mehr zur Verfügung steht
und somit die Fehlerkorrektur keine zusätzlichen Fehler mehr korrigieren
kann. Daneben ist es auch denkbar, dass über die Signalleitung 13 jedes Mal
ein Signal ausgegeben wird, sobald eine Speicherwort im Speicher 1 oder
ein neues Speicherwort im Speicher 1 als defekt erkannt
wird.