-
Die
vorliegende Erfindung bezieht sich auf ein Selbstreparaturverfahren
für nichtflüchtige Speichereinrichtungen,
wobei eine supersichere Architektur benutzt wird, und auf eine nichtflüchtige Speichervorrichtung.
-
Wie
bekannt ist, belegt in einem Halbleiter-Multimegabitnichtflüchtigem
Speicher (EPROM oder Flash) das Zellfeld einen Hauptanteil, welcher zwischen
40% und 70% der gesamten Fläche
ausmacht. Die Anwendungen, für
welche nichtflüchtige Speicher
gestaltet sind, auferlegen die Notwendigkeit für eine perfekte Funktion der
gesamten Zellen in dem Feld während
des Betriebs der Vorrichtung (des Lesens, Programmierens und Löschens).
-
In
der Theorie genügt
das Vorhandensein von wenigstens einer Zelle, welche nicht korrekt
arbeitet, dass die gesamte Speichervorrichtung nicht nutzbar ist.
Dieser Zustand ist von beträchtlicher Wichtigkeit
während
des industriellen Fertigungsprozesses dieses Typs von integrierter
Vorrichtung insoweit, da es keine Null-Fehlerwahrscheinlichkeit
einer Speicherzelle in irgendeinem gegebenen Herstellungslos gibt.
-
Durch
das Nichtvorhandensein von Lösungen
für das
Detektieren und Korrigieren von fehlerhaften Bits ist die Wahrscheinlichkeit,
Vorrichtungen zu besitzen, welche mit perfekt arbeitenden Speicherzellen
in einem gegebenen Produktionslos arbeiten, sehr niedrig, und deshalb
ist es aus der Sicht von Industrieproduktion in großem Maße nicht
akzeptierbar. Dieser Wert zeigt die so genannte "Hauptausbeute" des Loses an und gibt eine Größe für den Wert
des Herstellungsprozesses.
-
Um
die Ausbeute von Speichervorrichtungen in den Endherstellungsschritten
zu erhöhen,
wurden Schaltungslösungen
für das
Erkennen und Korrigieren von Fehlerbits angewendet. Eine Technik,
welche gewöhnlich
für diesen
Zweck übernommen
wird, nutzt zusätzliche
Speicherzellen zu denen, welche das Speicherfeld ausmachen und welche
gestaltet sind, entsprechende fehlerhafte Feldzellen zu ersetzen.
Die benutzten Zellen, welche als redundante Zellen oder Redundanzzellen
definiert sind, sind identisch zu den Feldzellen. Sie müssen in
geeigneter Weise durch zusätzliche
Schaltungen gegenüber den
bereits normal vorhandenen innerhalb der Vorrichtung gesteuert werden.
-
Spezieller
ausgedrückt,
favorisiert die Organisation des Speichers das Anwenden gesamter
Zeilen oder gesamter Spalten, welche aus redundanten Zellen gemacht
sind, wie z.B. um entsprechende Zeilen oder Spalten des Feldes sogar
bei Vorhandensein gerade einer fehlerhaften Zelle zu ersetzen. Auf
diese Weise wird ein Kompromiss zwischen der Leistung zum Korrigieren
der Fehler und der Fläche erreicht,
welche für
die Schaltungen erforderlich ist, welche die Redundanz steuern.
-
Gewöhnlicherweise,
wie z.B. in der EP-A-1 126 372 beschrieben, auf welcher die Präambel der unabhängigen Ansprüche basiert,
tritt das Aktivieren der Redundanz während des Schrittes der elektrischen
Wafersortierung (EWS) auf, während
dem die Zellen, welche einige Probleme bringen, unter Benutzung
eines geeigneten Testvorgangs identifiziert und mit den Redundanzzellen
ersetzt werden. Die Redundanz, entweder die Zeilenredundanz oder
die Spaltenredundanz, ist damit in der Lage, nur die Defekte zu
korrigieren, welche bei der Zeit null auftreten, d.h. in der Fabrik.
-
Sollte
z.B. eine sensible Reduktion in der Verstärkung für eine gegebene Zelle aufgrund
des zyklischen Prozesses auftreten, so könnte die Zelle nicht länger in
der Lage sein, die Lösch- und Programmierschritte
zu übernehmen,
so dass sie damit den Ausfall der gesamten Vorrichtung bewirkt.
-
Ein
derartiges Auftreten ist zunehmend häufig im Falle von Speichern,
welche ein langes internes Wort benutzen, z.B. ein 64-Bit- oder 128-Bit-Wort,
wie dies häufig
bei gegenwärtigen Speichern
auftritt, speziell in dem Fall von Viel-Ebenennichtflüchtigen-Speichern,
wo eine Anzahl von Bits pro Zelle gespeichert wird, und im Fall
der Speicher mit synchronem (Burst- bzw. Bündel-)Lesen.
-
Tatsächlich ist
es in dem Fall von Viel-Ebenen-Speichern vorteilhaft, wo der Unterschied
in den Schwellwertspannungen zwischen den unterschiedlichen Ebenen
reduziert ist und dadurch eine sehr präzise Steuerung auf der gespeicherten
Ladung notwendig ist, während
des Programmierens eine linear ansteigende Stufenspannung anzulegen.
Das Programmieren wird jedoch langsam, so dass, um eine Programmierzeit
eines einzelnen Bytes zu erhalten, welche vergleichbar mit der einer
herkömmlichen Zwei-Ebenen-Zelle
ist, es notwendig ist, mehrere Zellen parallel zu programmieren.
-
Zusätzlich werden
im Fall des synchronen Lesens die Daten in einer synchronen Weise
ausgegeben, wobei dies durch einen externen Takt gesteuert wird.
Die Frequenz des Taktes ist im Allgemeinen höher als die der asynchronen
Zugriffszeit. Folglich ist es notwendig, ein sehr viel längeres Binärwort intern
zu lesen, gegenüber
dem einen, welches am Ausgang geliefert wird, um eine Reserve zu
haben, von der aus es möglich
ist, unterschiedliche Taktperioden heraus zu ziehen.
-
Folglich
spürt man
in all den obigen Fällen die
Notwendigkeit für
ein System, welches die Funktionalität des Speichers auch in dem
Fall von isolierten Fehlern beibehält, welche während des
Betriebes des Speichers auftreten.
-
Das
Ziel der vorliegenden Erfindung besteht deshalb darin, die oben
beschriebenen Probleme zu lösen.
-
Entsprechend
der vorliegenden Erfindung werden ein Verfahren und eine nichtflüchtige Speichervorrichtung
geliefert, wie sie in den Ansprüchen 1
bzw. 11 jeweils definiert sind.
-
Für das Verstehen
der vorliegenden Erfindung werden bevorzugte Ausführungsformen
derselben nun beschrieben, nur an Hand eines nicht eingrenzenden
Beispiels, mit Bezug auf die beigefügten Zeichnungen, in welchen:
-
1 ein
Blockschaltbild einer Ausführungsform
der Erfindung ist;
-
2 bis 5 detailliertere
Diagramme einiger Blöcke
der 1 sind; und
-
6 und 7 Flussdiagramme
sind, welche Lösch-
und Programmieroperationen jeweils entsprechen, welche durch Benutzen
des Verfahrens entsprechend der Erfindung ausgeführt werden.
-
Die
Erfindung basiert auf dem Aktivieren von Selbstreparaturverfahren über einen
Selbstersatz im Feld bzw. im Einsatz durch den Speicher, wenn während des
Schreibens und/oder Löschens
eine oder mehrere fehlerhafte Zellen detektiert werden. Die obigen
Verfahren geben damit das nachfolgende Fortfahren zum Gebrauch des
Speichers frei, ohne sie zu verwerfen.
-
Entsprechend
der Erfindung wird eine Speicherarchitektur, auf welche nachfolgend
als "supersicherer
Speicher" Bezug
genommen wird, vorgeschlagen, in welcher jedes Wort zusätzlich zu
den Bits des Standarddatums weitere Selbstreparaturbits beinhaltet,
welche wenigstens ein Schutzbit, welches informiert, ob die Standard-Datumbits
korrekt sind, wenigstens ein korrektes Bit, welches das korrekte Datum
(in Gegenwart eines Standard-Datum-Fehler-Bits)
speichert, und zusätzliche
Adressbits beinhalten, welche identifizieren, welches der Standard-Datumbits
ein Fehlerbit ist. Im Falle eines Fehlers werden die Selbstreparaturbits
aktiviert, und während
des Lesens wird das falsche Standard-Datumbit automatisch durch
das korrekte Bit ersetzt.
-
Zu
diesem Zweck ist das Speicherfeld mit einem zusätzlichen Bereich ausgestattet,
welcher mit seinen eigenen Ausgängen
ausgestattet ist, um die Redundanz im Feld freizugeben, und so gestaltet
ist, um Information, welche für
das Aktivieren der Redundanz im Feld notwendig ist, zu enthalten.
-
Ein
Implementieren des supersicheren Speichers entsprechend den Grundsätzen, welche
oben dargestellt werden, wird in den Blockschaltbildern der 1 bis 5 gezeigt,
welche den speziellen Fall eines internen Wortes des Speichers von
64 Bits betreffen.
-
In 1 weist
eine nichtflüchtige
Speichervorrichtung 1 auf: einen Speicherblock 2,
welcher ein Speicherfeld beinhaltet, welches durch eine Vielzahl nichtflüchtigen
Zellen 14 (nur eine davon wird in 1 gezeigt)
gebildet ist, Schaltungen für
das Zeilenadressieren und das Spaltenadressieren und Leseschaltungen
(Leseverstärker)
SA, wie dies besser mit Bezug auf 2 dargestellt
wird. Zusätzlich
weist der Speicherblock 2 einen ersten Satz von Programmierschaltern
PL für
die Zellen auf, welche die Standard-Datumbits zu speichern haben,
und einen zweiten Satz von Programmierschaltern PLS für die Zellen,
welche die Selbstreparaturbits zu speichern haben, wie dies in größerem Detail
nachfolgend beschrieben wird.
-
Eine
Steuereinheit 3 empfängt
von außen
Signale R/E/P für
den Betrieb (das Lesen, das Löschen,
das Programmieren), welcher auszuführen ist, gibt ein Fehlerspeichersignal
F aus und steuert die die Vorspannung erzeugenden Schaltungen 4, welche
die geeignete Vorspannung an den Speicherblock 2 liefern.
Ein UPROM-Speicheradressbereich 5, welcher während des
EWS-Tests initialisiert wird, um so die Daten für die Standard-Redundanz zu speichern,
empfängt
ein Adressen-Modifiziersignal ATD (welches intern durch geeignete
bekannte Schaltungen erzeugt wird, nicht gezeigt) und Adressen ADD
(von außen
geliefert) für
die Zellen, welche zu adressieren sind. Der UPROM-Speicheradressbereich 5 sendet
außerdem
Signale NEDC und RDC, welche jeweils die EWS-Redundanzaktivierung
und den Ausgang anzeigen, entsprechend der Zelle, welche zu ersetzen
ist, an einen Redundanz-Multiplexer 6. Die Adressen ADD
werden außerdem
an den Speicherblock 2 geliefert, wie dies ebenso mit den Daten
INDATA in einer bekannten Weise passiert.
-
Der
Redundanz-Multiplexer 6 (dessen detaillierte Struktur wird
in 4 gezeigt) ist in einen ersten Teil 6 aufgeteilt,
dem so genannten MUX SA, und einen zweiten Teil 6b, den
so genannten MUX PL. Der erste Teil 6a empfängt 65 Lesebits
SA von dem Speicherblock 2 und liefert 64 ersetzte Bits
DATA an den supersicheren Speicher-Multiplexer 12, wie
dies detaillierter nachfolgend beschrieben wird. Der zweite Teil 6b empfängt Programmierdaten
PLC von einem Programmierzustand-Verifizier- und -Speicherblock 7 und
liefert an den ersten Satz der Schalter PL des Speicherblocks 2 Programmiersteuersignale PLB.
Sowohl die Teile 6a als auch 6b empfangen die Signale
NEDC und RDC. Der supersichere Speicher-Multiplexer (MUX SM) 12 empfängt darüber hinaus
von dem Speicherblock 2 über einen ersten Schalter 11a,
gesteuert durch die Steuereinheit 3, acht Sicherheitsbits
BS (wie nachfolgend beschrieben). Zusätzlich liefert er am Ausgang 64 korrigierte Bits
DATAC. Die Sicherheitsbits BS werden darüber hinaus direkt auch an den
Programmierzustand-Verifizier- und -Speicherblock 7 über einen
zweiten Schalter 11b geliefert, welcher durch die Steuereinheit 3 in
gegensätzlicher
Phase mit Bezug auf den ersten Schalter 11a gesteuert wird,
wie dies im Detail nachfolgend erklärt wird.
-
Die
korrigierten Bits DATAC, welche durch den sicheren Speicher-Multiplexer 12 ausgegeben werden,
werden an den Programmierzustand-Verifizier- und -Speicherblock 7 über einen
dritten Schalter 9 geliefert, welcher durch die Steuereinheit 3 gesteuert
wird, oder an einen Ausgang 10 der Vorrichtung 1 über einen
vierten Schalter 9, welcher auch durch die Steuereinheit 3 gesteuert
wird. Der Ausgang 10 kann durch einen Datum-Pin gebildet
sein oder kann an anderen Vorrichtungen angeschlossen sein, welche in
dem gleichen Chip integriert sind. In Aufwärtsrichtung zum Ausgang 10 kann
darüber
hinaus eine E/A-Logik (nicht dargestellt) vorgesehen sein, welche das
Eingeben/Ausgeben der Bits von nur einem (7/16/32-Bit-)Wort zur
gleichen Zeit freigibt.
-
Der
Programmierzustand-Verifizier- und -Speicherblock 7 tauscht
außerdem
Steuersignale S mit der Steuereinheit 3 aus. Speziell empfängt er Aktivier-
und Reset-Signale und sendet Verifizier-Ergebnissignale, wie dies
detaillierter mit Bezug auf 3 erklärt wird.
Zusätzlich
empfängt
der Programmierzustand-Verifizier- und -Speicherblock 7 von
außen
Eingangsdaten INDATA und liefert Sicherheitsprogrammier-Steuersignale
PLBS an den zweiten Satz von Schaltern PLS des Speicherblocks 2.
-
Wie
detailliert in 2 dargestellt, ist der Speicherblock 2 durch
ein Speicherfeld 15 gebildet, einen Zeilendecoder 16,
einen Spaltendecoder 17, eine Leseschaltung 18 und
die Programmierschalter PL und PLS, von denen nur einige in 2 der
Klarheit wegen dargestellt sind.
-
In
dem Speicherfeld 2 ist ein erster Bereich 20 für das Speichern
der Basisdaten gebildet, ein zweiter Bereich 21 für das Implementieren
der Redundanz im Feld gebildet und ein dritter Bereich 22 für die in
der Fabrik aktivierte Redundanz am Ende des Herstellprozesses gebildet.
-
Die
Leseschaltung 18 ist durch eine Vielzahl von Leseverstärkern 19 gebildet.
-
Im
Detail weist der erste Teil 20 des Speicherfeldes 15 eine
erste Vielzahl von Gruppen von Spalten 25a auf (in dem
betrachteten Beispiel 64 Gruppen). Der zweite Teil 21 weist
eine zweite Vielzahl von Gruppen von Spalten 25b auf (in
dem betrachteten Beispiel 8 Gruppen). Der dritte Teil 22 weist
eine Gruppe von Spalten 25c auf. In bekannter Weise ist
jede Gruppe von Spalten 25a, 25b, 25c an eine
eigene Spaltendecodiereinheit 26 angeschlossen. Im größeren Detail
weist jede Gruppe von Spalten 25a, 25b, 25c eine
Vielzahl von Speicherzellen 14a, 14b, 14c auf
und ist über
Bitleitungen (nicht dargestellt) an der gleichen Spaltendecodiereinheit 26 angeschlossen.
Jede Spaltendecodiereinheit 26 ist umgekehrt an einem eigenen
Leseverstärker 19 angeschlossen.
In der Abbildung gehören
die Zellen 14a zu den Gruppen der Spalten 25a und
werden deshalb für
das Speichern der Basisdaten gestaltet. Die Zellen 14b gehören zu den
Gruppen der Spalten 25b und sind so für das Speichern der Redundanzdaten
im Feld (Sicherheitsbits) gestaltet. Die Zellen 14c gehören zu der
Gruppe von Spalten 25c und sind so für das Speichern der EWS-Redundanzbits
gestaltet.
-
Die
Programmierschalter PL und PLS sind jeweils zwischen einer jeweiligen
Spaltendecodiereinheit 26 und den Vorspannungserzeugungsschaltungen 4 angeordnet
und werden durch die jeweiligen Programmiersteuersignale PLB und
PLBS gesteuert.
-
Insgesamt
gibt es dann 73 Leseverstärker 19,
welche Basisdatumsbits SA<0>-SA<63> für original
gespeicherte Daten liefern, Sicherheitsbits BS<0>-BS<7> und ein EWS-Redundanzbit SA<RED>.
-
Die
Sicherheitsbits BS<0>-BS<7> werden zum
Speichern eines Schutzbits, eines Korrektes-Datum-Bits und sechs
Fehlerzell-Adressbits
benutzt. Speziell kann das Schutzbit (z.B. das Sicherheitsbit BS<0>) zwei Werte annehmen
ein erster Wert, welcher dem inaktiven Zustand entspricht, muss
der Wert des Endedes-Löschens
sein, welcher im Falle von Flash-Speichern des NOR-Typs "1" ist; und ein zweiter Wert, welcher
dem aktiven Zustand entspricht, ist hier gleich "0".
In der Praxis, wenn dieser gleich "1" ist,
zeigt das Schutzbit BS<0> an, dass die Daten,
welche im ersten Bereich 20 des Speicherfeldes 15 vorliegen,
korrekt sind, während
er, wenn dieser gleich "0" ist, anzeigt, dass
eines der vierundsechzig Datenbits SA<0>-SA<63> während des Betriebes der Vorrichtung
fehlerhaft war und mit dem korrekten Datumsbit ersetzt werden muss.
Das korrekte Datumsbit (z.B. das Sicherheitsbit BS<1>) speichert den Inhalt,
welcher nicht in der fehlerhaften Zelle gespeichert werden konnte,
wie dies nachfolgend erklärt
wird. Die fehlerhaften Zelladressbits (z.B. das Sicherheitsbit BS<2>-BS<7>)
zeigen die Adresse des nicht korrekten Datumsbits SA<0>-SA<63> an,
welches ersetzt wurde.
-
3 zeigt
ein vereinfachtes Schaltbild des Programmierzustand-Verifizier-
und -Speicherblocks 7. Die Daten, welche in den ersten
Teil 20 des Speicherfeldes 15 zu schreiben sind
(die Daten INDATA, welche von außen während einer Programmieroperation
geliefert werden; die Bits "1" in dem Fall einer Löschoperation,
wobei diese Bits nachfolgend zu einem speziellen Steuersignal erzeugt
werden, welches von der Steuereinheit 3 kommt), werden
in einem Schreibpuffer WB gespeichert, welcher zu jeder Zeit ein
Wort oder eine Seite speichert. Die Daten, welche in den zweiten
Teil 21 des Speicherfeldes 15 zu schreiben sind
(Sicherheitsbits infolge einer Aktivierung der Redundanz, die Bits "1" in dem Fall einer Löschoperation), werden durch
die Steuereinheit 3 geliefert und werden in einem Sicherheitsschreibpuffer
WBR gespeichert, wobei auch dieser Puffer jedes Mal ein Wort oder
eine Seite speichert.
-
Der
Programmierzustand-Verifizier- und -Speicherblock 7 ist
grundsätzlich
in zwei Teile aufgeteilt: in einen oberen Teil 7a, welcher
die Basis- bzw. Grundbits steuert, und einen unteren Teil 7b,
welcher die Sicherheitsbits steuert. Die zwei Teile 7a, 7b sind in
einer ähnlichen
Weise strukturiert, sie weisen jedoch eine unterschiedliche Anzahl
von Komponenten auf, wobei gegeben ist, dass der obere Teil 7a mit
64 Bits arbeitet, während
der untere Teil 7b mit acht Bits arbeitet. Die beiden Teile 7a, 7b werden
deshalb zur gleichen Zeit beschrieben, wobei die gleichen Bezugszahlen
benutzt werden und der Buchstabe R angefügt wird, um die Bauteile des
unteren Teils 7b anzuzeigen.
-
In
jedem Teil 7a, 7b ist ein Programmierzustandsregister
PLR, PLRR durch eine Vielzahl von Speicherelementen (eines für jedes
Bit) gebildet, welche in der Figur durch Flip-Flops FF, FFR wiedergegeben
sind. Die Programmierzustandsregister PLR, PLRR werden, wie unten
beschrieben, alternativ über
Einschaltsignale EN und ENR aktiviert, welche durch die Steuereinheit 3 geliefert
werden.
-
In
dem Programmierschritt behält
jedes Speicherelement FF, FFR die Information für den Programmierzustand der
jeweiligen Zelle und ist aktiv (d.h. es schließt einen Schalter der ersten
Gruppe PL oder der zweiten Gruppe PLS, 1, welcher
das Liefern der Programmierspannung an die jeweilige Zelle freigibt),
wenn die Zelle weitere Programmierpulse benötigt, und ist inaktiv, wenn
die Zelle korrekt programmiert ist. Beispielsweise besitzt ein Speicherelement
FF, FFR ein "1"-Ausgangssignal,
wenn es aktiv ist, und ein "0"-Ausgangssignal,
wenn es inaktiv ist.
-
In ähnlicher
Weise behalten während
des Löschens
die Speicherelemente FF, FFR die Information, je nachdem, ob die
jeweilige Zelle korrekt gelöscht
wurde oder nicht. In letzterem Fall steuern sie nicht die Schalter
der Zelle. Speziell, je nachdem welches Speicherelement FF aktiv
ist (oder welche Elemente aktiv sind), behält das Programmierzustandsregister
PLR die Information, wobei beachtet wird, welche Zellen am Ende
des Löschens
oder Programmierens nicht funktionieren, wie dies nachfolgend mit Bezug
auf die Flussdiagramme der 6 und 7 beschrieben
wird.
-
Die
Ausgänge
der Speicherelemente FF des oberen Teils 7a werden mit
zwei Kombinationsschaltungen verbunden, nämlich einer Einzelelement-Detektierschaltung
ONLY_ONE und einer Codierschaltung WHICH ONE. Speziell erzeugt die
Einzelelement-Detektierschaltung ONLY ONE ein Binärsignal ONLY_ONE,
welches einen ersten Wert besitzt, wenn ein einzelnes Speicherelement
FF die Information liefert, dass die entsprechende Zelle weitere
Programmier- oder Löschpulse
erfordert; anderenfalls besitzt es einen zweiten Wert. Die Codierschaltung WHICH
ONE erzeugt eine Binärzahl,
welche das Bit identifiziert, welches nicht korrekt programmiert
oder gelöscht
wurde. Beispielsweise sind in dem betrachteten Fall eines 64-Bit-Binärwortes
sechs Bits zum Identifizieren desselben erforderlich. Wenn das nicht korrekt
programmierte Bit oder das nicht korrekt gelöschte Bit das zweite ist, liefert
die Codierschaltung WHICH ONE am Ausgang "00010".
-
Die
Ausgänge
der Speicherelemente FF und FFR sind darüber hinaus mit zwei OR-Gates 28, 28R verbunden,
welche ein jeweiliges Registerzustandssignal ALLZERO, ALLZEROR erzeugen.
Diese Signale kommunizieren mit der Steuereinheit 3, wenn alle
Speicherelemente FF, FFR deaktiviert wurden und deshalb alle entsprechenden
Zellen korrekt programmiert oder gelöscht sind. Die Inhalte der
Speicherelemente FF, FFR werden durch die Steuereinheit 3 nach
jeder jeweiligen Verifizieroperation mit Hilfe eines Aktualisierungssignals
PL_CK, PL_CKR aktualisiert.
-
Vor
dem Aktivieren der Redundanz im Feld werden korrigierte Bits DATAC
durch den supersicheren Speicher-Multiplexer 12 geliefert,
wobei diese Bits sich nur auf die Grundbits beziehen (wobei möglicherweise
gerade die EWS-Redundanz aktiviert wurde). In diesem Schritt ist
das untere Teil 7b inaktiv und wird nur aktiviert, wenn
am Ende des Programmierens gerade ein Basisbit gefunden wird, welches inkorrekt
programmiert ist. In diesem Fall, wie dies im Detail nachfolgend
mit Bezug auf 7 erklärt wird, werden die Sicherheitsbits
BS durch den Speicherblock 2 an das untere Teil 7b geliefert, über den Schalter 11b,
nicht in 3 aus Gründen der Einfachheit dargestellt,
und werden verifiziert. Nach dem Aktivieren der Redundanz im Feld
wird das Korrekte-Datum-Bit BS<1> automatisch durch
den supersicheren Speichermultiplexer 12 ersetzt. Die korrigierten
Bits DATAC, welche dadurch erhalten werden, werden dann in dem oberen
Teil 7a verifiziert, und der untere Teil 7b bleibt
abgeschaltet.
-
Jedes
individuell korrigierte Bit DATAC und jedes individuelle Sicherheitsbit
BS, welches durch den supersicheren Speichermultiplexer 12 oder durch
den Speicherblock 2 geliefert wird, wird mit dem jeweiligen
Bit verglichen, welches in dem Schreibpuffer WB gespeichert ist,
oder mit WBR über die
Komparatoren CMP, CMPR, von denen jeder ein Gleichheitssignal sEQw
und ein Überprogrammiersignal
sGTw liefert. Das Gleichheitssignal sEQw ist gleich "1", falls das entsprechende korrigierte
Bit DATAC mit einem zusammenfällt,
welches in dem Schreibpuffer WB, WBR vorhanden ist. Das Überprogrammiersignal
sGTw ist gleich "1", wenn zwei Bits gleich
sind oder wenn die Zelle fehlerhaft überprogrammiert ist.
-
Das
Verifiziersignal VEROK, VEROKR ist aktiv, wenn alle korrigierten
Bits DATAC oder alle verifizierten Sicherheitsbits BS in diesem
Augenblick mit denjenigen zusammentreffen, welche in dem Schreibpuffer
WB, WBR vorhanden sind.
-
Die
Steuereinheit 3 initialisiert alle Speicherelemente FF
oder FFR (entsprechend, ob die korrigierten Bits DATAC oder die
Sicherheitsbits BS verifiziert sind), wobei sie in den aktivierten
Zustand gesetzt werden, und setzt einen Zähler zurück, welcher die Anzahl der
jeweils angelegten Modifizier-(Programmieren oder Löschen)-Pulse
speichert. In dem Fall des Modifizierens der korrigierten Bits DATAC, nach
dem Anwenden eines Lösch-
oder Programmierpulses an die Zellen, werden die adressierten Zellen
gelesen, und die Speicherelemente FF werden durch das Aktualisiersignal
PL_CK aktualisiert. Wenn alle Speicherelemente FF des oberen Teils 7a deaktiviert
sind (Registerzustandsignal ALLZERO = 1), gibt es keine weiteren
Zellen, welche einen Modifizierpuls erfordern. Zusätzlich,
wenn alle gelesenen Zellen den korrekten Informationsinhalt besitzen
(Verifiziersignal VEROK aktiv), gibt es keine Zellen, welche einen
weiteren Programmier- oder Löschpuls
erfordern, und das Löschen
oder Programmieren wird beendet. Wenn ALLZERO = 1, aber VEROK =
0 (einige Zellen überprogrammiert),
wird ein Fehlerfunktionssignal erzeugt. Stattdessen, falls das Signal ONLY_ONE
aktiv ist, wird die Redundanz im Feld aktiviert. Wenn die Redundanz
im Feld aktiviert ist, wird mit dem Verifizieren der Sicherheitsbits
in einer ähnlichen
Weise wie oben fortgefahren. Speziell wenn alle Speicherelemente
FFR des Unterteils 7b deaktiviert sind (Registerzustandssignal
ALLZEROR = 1), wird das Verifizieren an den Redundanzbits als erfolgreich
durchlaufen betrachtet. Anderenfalls wird der Speicher als fehlerhaft
betrachtet, wie dies im Detail nachfolgend mit Bezug auf 6 und 7 beschrieben
wird.
-
Nachfolgend
auf das Aktivieren der Redundanz im Feld wird das Unterteil 7b deaktiviert.
-
4 stellt
ein vereinfachtes Schaltbild des Redundanz-Multiplexers 6 dar.
-
Der
Redundanz-Multiplexer 6 wird durch ein Wechseladress-Signal ATD aktiviert,
welches durch eine geeignete Logik (nicht dargestellt) in einer üblichen
Weise erzeugt wird. Beim Empfangen des Wechseladress-Signals ATD
werden der Speicherblock 2 und der UPROM-Block 5 gelesen.
Die 64-Datumbits SA<63:0> und das EWS-Redundanzbit SA<RED> werden von dem Speicherblock 2 gelesen (siehe 2)
und werden an das erste Teil 6a (MUX SA des Redundanz-Multiplexers 6)
geliefert.
-
Der
UPROM-Block liefert ein Redundanzsignal NEDC, welches, wenn es aktiv
ist, anzeigt, dass das Redundanzbit durch ein Datumbit SA<63:0> ersetzt werden muss,
und eine redundante Adresse RDC, von sechs Bits, welche anzeigt,
welches der 64-Datumbits
SA<63:0> durch das EWS-Redundanzbit
SA<RED> ersetzt werden muss.
-
Das
Redundanzsignal NEDC und die redundante Adresse RDC werden an drei
Demultiplexer-Blöcke
A geliefert, deren Ausgangssignale (so wie sie sind oder annulliert,
wie dies für
einen Fachmann offensichtlich ist) an vierundsechzig AND-Gates B
geliefert werden, eines für
jedes Bit, deren Ausgangssignale anzeigen, ob das entsprechende
Bit redundant zu machen ist.
-
Die
Ausgangssignale der AND-Gates B steuern eine Gruppe von 64 Multiplexerelementen
C, welche das jeweilige Bit durch das Redundanzbit ersetzen.
-
Im
Detail ersetzt eines der Multiplexerelemente C, falls es durch das
entsprechende AND-Gate B aktiviert ist, das jeweili ge Datumbit SA<i> durch das EWS-Redundanzbit
SA<RED> und liefert die ersetzten
Bits DATA, welche damit erhalten werden, an den supersicheren Speicher-Multiplexer 12.
-
Zusätzlich werden
die Ausgangssignale der drei Demultiplexerblöcke A (so wie sind oder negiert) an
vierundsechzig AND-Gates
E, eines pro Bit, geliefert, deren Ausgangssignale anzeigen, ob
das entsprechende Bit redundant zu machen ist oder nicht. Die Ausgangssignale
der AND-Gates E steuern eine Gruppe von 64 Multiplexerelementen
D, welche das jeweilige Programmiersteuerbit PLC zu der jeweiligen
Basiszelle 14a oder der EWS-Redundanzzelle 14c lenken
(siehe 2). In der Praxis, falls die Redundanz während des
EWS-Tests aktiviert wurde, überträgt eines
der Multiplexerelemente D, welches durch das entsprechende AND-Gate
E aktiviert ist, das entsprechende Schalt-Aktivier-/Deaktivier-Steuer-PLC<i> an den jeweiligen
Programmierschalter PLS (Bit PL<RED>) über das OR-Gate H und deaktiviert
den jeweiligen Programmierschalter PL, welcher mit der fehlerhaften
Grundzelle 14a verbunden ist.
-
5 zeigt
ein vereinfachtes Schaltbild des supersicheren Speicher-Multiplexers 12.
Dieses Diagramm ist ähnlich
zu dem Diagramm der 4, nämlich zu dem ersten Teil 6a,
und verhält
sich in einer ähnlichen
Weise, außer
dass die Eingänge
der drei Demultiplexerblöcke
A mit dem Speicherblock 2 über den ersten Schalter 11a verbunden
sind und das Schutzbit BS<0> und die fehlerhaften
Zelladressbits BS<2>-BS<7> empfangen.
Das Korrektes-Datum-Bit BS<1> wird durch den Speicherblock 2 an
die Multiplexerelemente C geliefert.
-
Folglich
wird, vor dem Aktivieren der Redundanz, wenn das Schutzbit BS<0> in seinem inaktiven Zustand
("1") ist, kein Ersetzen
durchgeführt,
und die korrigierten Bits DATAC, welche an den Programmierzustand-Verifizier-
und -Speicherblock 7 geliefert werden, sind identisch zu den ersetzten
Bits DATA, welche durch den Redundanz-Multiplexer 6 geliefert werden.
Nach dem Aktivieren der Redundanz, wenn das Schutzbit BS<0> in seinem aktiven
Zustand ("0") ist, wird das fehlerhafte
Bit, dessen Adresse durch das Fehlerzell-Adressbit BS<2>-BS<7> spezifiziert ist,
durch das Korrektes-Datum-Bit BS<1> ersetzt.
-
6 zeigt
ein Flussdiagramm einer Löschoperation,
welche durch Nutzen der supersicheren Speicherarchitektur ausgeführt wird,
welche in den 1 bis 5 dargestellt
wird. Das Löschen
fasst einen ersten Schritt des Anlegens von Löschpulsen an einen gesamten
Sektor ins Auge, wobei die Basisdaten (64 Grundbits, von
denen eines durch den Redundanz-Multiplexer 6 redundant
gemacht sein kann) verifiziert werden, Wort für Wort, und indem ferner Löschpulse
angewendet werden, bis alle Zellen (außer meistens einer) jedes Wortes
gelöscht
sind, oder bis zu einer Maximalanzahl von Pulsen. Wenn eine einzelne
Zelle eines Wortes übrig
bleibt, welche nicht vollständig
gelöscht
ist, werden die Sicherheitsbits verifiziert. Falls notwendig, werden
zusätzliche Pulse
geliefert. Wenn die Sicherheitsbits korrekt sind, werden die Daten
bezogen auf die Redundanz im Feld (Adresse von fehlerhaften Zelle,
korrekter Inhalt, in diesem Fall gleich zu "1",
und Schutzbit) ebenso wie die Adresse des Wortes, auf welche sie
sich beziehen, in einer temporären
Weise in einem geeigneten Speicherregister gespeichert, und dann
werden weitere Wörter
verifiziert. Anderenfalls wird der Speicher als fehlerhaft betrachtet.
Am Ende des Löschens
werden die Sicherheitsbits in dem zweiten Teil 21 des Speicherfeldes 15 programmiert
(2).
-
Im
Detail werden anfangs im Schritt 30 einige Zähler, und
präzise
ein Zusatzpuls-Zähler
I, ein Löschpuls-Zähler A,
ein Spalten-Zähler
C und ein Zeilen-Zähler
R auf null gesetzt.
-
Als
Nächstes
wird im Schritt 31 ein Löschpuls an einen gesamten Sektor
gesendet und dann im Schritt 32 ein Verifizier- Lesen eines ersten 64-Bit-Wortes
(adressiert durch die Zähler
R und C) durchgeführt.
Wenn das Ergebnis des Verifizier-Lesens positiv für weniger
als 63 Zellen ist (d.h. es gibt wenigstens zwei Zellen, welche nicht
korrekt gelöscht
wurden; Ausgang NEIN von Block 33; Signale ONLY_ONE der 3 und
ALLZERO, beide in dem gleichen inaktiven Zustand), wird der Löschpulszähler A inkrementiert,
Schritt 34, und es wird eine Überprüfung durchgeführt, um
zu sehen, ob die Maximalanzahl von Löschpulsen AMAX erreicht
wurde, Schritt 35. Falls die Maximalanzahl erreicht wurde
(Ausgang JA von Block 35), wird ein Fehlerspeichersignal
F erzeugt, Schritt 36, und der Vorgang beendet. Wenn stattdessen
das Ergebnis negativ ist (Ausgangssignal NEIN von Block 35),
wird ein neuer Löschpuls
geliefert, Schritt 31.
-
Falls
das Verifizier-Lesen ein positives Ergebnis für wenigstens 63 Zellen erbracht
hat (d.h. nur eine Zelle des verifizierten Wortes ist nicht korrekt
gelöscht;
eines der Signale ONLY_ONE der 3 und ALLZERO
ist im aktiven Zustand, Ausgangssignal JA von Block 33),
wird eine Überprüfung durchgeführt, um
zu sehen, ob alle Zellen des verifizierten Wortes gelöscht wurden
(Schritt 37). Wenn das Ergebnis JA ist (Signal ALLZERO
= 1), Schritt 38, wird eine Überprüfung durchgeführt, um
zu sehen, ob alle Spalten verifiziert wurden. Falls dass Ergebnis
negativ ist (Signal ONLY_ONE = 1), Schritt 39, wird der
Spaltenzähler
C inkrementiert, und ein neues Verifizier-Lesen wird durchgeführt, wobei
zum Schritt 32 zurückgekehrt
wird.
-
Falls
alle Spalten verifiziert wurden (Ausgangssignal JA von Schritt 38),
wird eine Überprüfung durchgeführt, um
zu sehen, ob alle Zeilen verifiziert wurden, Schritt 40.
Falls das Ergebnis negativ ist, Schritt 41, wird der Zeilenzähler R inkrementiert, und
der Spaltenzähler
C wird auf null zurückgesetzt, und
ein neues Verifizier-Lesen wird durchgeführt, wobei zu Schritt 32 zurückgekehrt
wird. Falls das Ergebnis positiv ist, wenn der gesamte Sektor damit
verifiziert wurde, Schritt 57, werden die Sicherheitsbits
BS (vorher in einer flüchtigen
Weise gespeichert) in den jeweiligen Orten programmiert (wobei die
Vorgehendweise benutzt wird, welche mit Bezug zu 7 für das Programmieren
der Sicherheitsbits beschrieben wurde) und die geschriebenen Redundanzbits werden
verifiziert, und möglicherweise
wird eine Endverifizierung ausgeführt, Schritt 58. Falls
das Verifizieren im Schritt 58 zu einem positiven Ergebnis führt, endet
das Löschverfahren
sofort; anderenfalls wird ein Fehlerspeichersignal F erzeugt, Schritt 50.
-
Falls
am Ende des Verifizier-Lesens eines Wortes nur eine Zelle nicht
gelöscht
ist (Ausgangssignal NEIN von Schritt 37), wird der Zuatzpuls-Zähler I inkrementiert,
Schritt 42, und eine Überprüfung wird durchgeführt, um
zu sehen, ob dies gleich zu der Maximalanzahl IMAX ist,
Schritt 43. Falls das Ergebnis negativ ist (Ausgangssignal
NEIN von Schritt 43), wird ein neuer Löschpuls geliefert, wobei so
zum Schritt 31 zurückgekehrt
wird. Falls das Ergebnis positiv ist (Ausgangssignal JA von Schritt 43),
wird die supersichere Redundanz aktiviert, um zu prüfen, ob
die Sicherheitsbits BS korrekt gelöscht wurden, Schritt 51. Bis
dahin werden die Sicherheitsbits BS gelesen und an den Programmierzustand-Verifizier-
und -Speicherblock 7 geliefert, wo sie in dem zweiten Teil 7b verifiziert
werden, wie dies im Detail mit Bezug auf 3 beschrieben
wurde, Schritt 52. Falls das Ergebnis positiv ist (Ausgangssignal
JA von Schritt 53), werden das Redundanzbit BS und die
Adresse des fehlerhaften Wortes zeitweise in einem Register des Speichers
gespeichert, Schritt 54, und das Verfahren kehrt zum Schritt 38 zurück, um mit
dem Verifizieren anderer Wörter
fortzufahren. Falls das Ergebnis negativ ist (Ausgangssignal NEIN
von Schritt 53), wird ein Fehlerspeichersignal F erzeugt,
Schritt 55, und das Verfahren endet.
-
7 stellt
ein Flussdiagramm einer Programmieroperation dar, mit der supersicheren
Speicherarchitektur der 1 bis 5. Das Programmieren
weist auf: einen ersten Schritt des Anwendens der Programmierpulse
an den Bits des Wortes, welches zu programmieren ist (64 Grundbits,
wobei eines davon möglicherweise
ersetzt oder durch den Redundanz-Multiplexer 6 redundant
gemacht worden ist), das Ignorieren der Sicherheitsbits, dann das Verifizieren
der programmierten Grundbits und das Anlegen weiterer Programmierpulse,
bis alle Zellen (außer
höchstens
einer) des Wortes, welches zu programmieren ist, in dem korrekten
Zustand sind oder bis eine Maximalanzahl von Pulsen erreicht ist.
Wenn nur ein einzelnes Bit nicht perfekt programmiert ist, werden
die Sicherheitsbits programmiert. Falls die Sicherheitsbits als
nicht korrekt programmiert gefunden werden, nachdem eine maximale
Anzahl von Pulsen angelegt wurde, wird der Speicher als fehlerhaft
betrachtet; anderenfalls werden die Grundbits, welche mit den Sicherheitsbits
redundant gemacht wurden, möglicherweise
endgültig
verifiziert, und falls das Endverifizieren ein positives Ergebnis
erbringt, endet das Verfahren. Falls das endgültige Verifizieren zu einem
negativen Ergebnis führt,
wird der Speicher als fehlerhaft betrachtet.
-
Anfangs
werden im Detail, Schritt 60, einige Zähler auf null gesetzt, nämlich ein
Zusatzpuls-Zähler
I, ein erster Programmierpuls-Zähler
A und ein zweiter Programmierpuls-Zähler K.
-
Als
Nächstes
wird im Schritt 61 ein Programmierpuls an das adressierte
Wort gesandt (in einer an sich bekannten Weise), und im Schritt 62 wird
ein Verifizier-Lesen des programmierten Wortes durchgeführt. Dann
wird die Anzahl N der Bits, deren Verifizierung zu einem positiven
Ergebnis führt,
gezählt. Wenn
das Ergebnis des Verifizierens für
weniger als 63 Zellen positiv ist (d.h. es gibt wenigstens zwei
Zellen, welche nicht richtig programmiert sind, Ausgangssignal NEIN
von Block 63), wird der Programmierpuls-Zähler A inkrementiert,
Schritt 64, und eine Überprüfung wird
durchgeführt,
um zu sehen, ob die Maximalanzahl der Programmierpulse (AMAX) erreicht wurde, Schritt 65.
Falls die Maximalanzahl erreicht wurde (Ausgangssignal JA von Block 65),
wird ein Fehlerspeichersignal F erzeugt, Schritt 66, und
das Verfahren endet. Wenn stattdessen das Ergebnis negativ ist (Ausgangssignal
NEIN von Block 65), wird ein neuer Programmierpuls geliefert,
Schritt 61.
-
Falls
das Ergebnis der Verifizierung positiv ist (Ausgangssignal JA von
Schritt 63), wird eine Überprüfung durchgeführt, um
zu sehen, ob die gesamten Zellen des verifizierten Wortes korrekt
programmiert wurden (N = 64, Schritt 67). Falls das Ergebnis
JA ist, endet das Programmierverfahren. Falls das Ergebnis negativ
ist (wenn am Ende des Verifizier-Lesens gerade eine Zelle unprogrammiert übrig bleibt,
Ausgangsignal NEIN von Schritt 67), wird der Zusatzpuls-Zähler I inkrementiert
(Schritt 68). Dann wird eine Überprüfung durchgeführt, um
zu sehen, ob der Zusatzpuls-Zähler
I gleich der Maximalanzahl IMAX ist, Schritt 69.
Falls das Ergebnis negativ ist (Ausgangssignal NEIN von Schritt 69),
wird ein neuer Programmierpuls geliefert, womit so zum Schritt 61 zurückgekehrt
wird. Falls das Ergebnis positiv ist (Ausgangssignal JA von Schritt 69),
wird eine Überprüfung durchgeführt, um
zu sehen, ob die Redundanz-Ressourcen
verfügbar
sind, d.h. ob die Redundanz nicht bereits vorher aktiviert wurde,
Schritt 80.
-
Falls
die Redundanz bereits aktiviert wurde (Ausgangssignal NEIN von Schritt 80),
wird eine Endüberprüfung mit
aktivierter Redundanz durchgeführt, Schritt 81,
um zu verifizieren, ob das nicht korrekt programmierte Bit das gleiche
war, welches vorher das Aktivieren der Redundanz im Feld ausgelöst hat. In
diesem Fall (Ausgangssignal JA von Schritt 81) endet das
Verfahren; anderenfalls wird ein Fehlerspeichersignal F erzeugt,
Schritt 92, und das Verfahren endet.
-
Falls
stattdessen die Redundanz bis dahin nicht aktiviert wurde (Ausgangssignal
JA von Schritt 80), wird die supersichere Redundanz aktiviert, Schritt 82.
In der Praxis wird ein Programmierpuls an die Redundanz-im-Feld-Zellen 14b gesandt,
welche die Schutzbits, die Korrektes-Datum-Bits und die redundant
gemachten Adressbits BS<0> BS<7> zu speichern
haben, Schritt 83. Das Verifizier-Lesen der Sicherheitsbits
wird ausgeführt,
Schritt 84, indem die Sicherheitsbits BS über den
zweiten Schalter 11b der 1 direkt
an das zweite Teil 7b des Programmierzustand-Verifizier-
und -Speicherblocks 7 gesandt werden. Eine Überprüfung wird
durchgeführt,
um zu sehen, ob alle acht Sicherheitsbits korrekt programmiert sind,
Schritt 85. Falls diese es nicht sind, wird der zweite
Programmierpulszähler
K inkrementiert, Schritt 86. Eine Überprüfung wird durchgeführt, um zu
sehen, ob die Maximalanzahl der Programmierpulse bereits erreicht
wurde, Schritt 87. Falls nicht (Ausgangssignal NEIN von
Schritt 87), wird ein weiterer Programmierpuls geliefert,
wobei zum Schritt 83 zurückgekehrt wird. Falls die Maximalanzahl
der Programmierpulse erreicht wurde (Ausgangssignal JA von Schritt 87),
wird ein Fehlerspeichersignal erzeugt, und das Verfahren endet,
Schritt 88.
-
Falls
das Verifizier-Lesen an den Redundanzbits Bs zu einem positiven
Ergebnis führt
(Ausgangssignal JA von Schritt 85), wird möglicherweise eine
Endverifizierung mit aktivierter Redundanz durchgeführt, wobei
die 63 Grund-nicht-redundanten-Bits
und das Korrektes-Datum-Bit BS<1> gelesen werden, Schritt 90.
Falls die Endverifizierung zu einem positiven Ergebnis für alle 64
Bits führt
(Ausgangssignal JA von Schritt 90), endet das Verfahren. Falls
das Ergebnis negativ ist (Ausgangssignal NEIN von Schritt 90),
wird ein Fehlerspeichersignal F erzeugt, Schritt 91, und
das Programmierverfahren endet.
-
Die
Vorteile des beschriebenen Verfahrens und der Speichervorrichtung
sind die folgenden. Erstens ermöglicht
das beschriebene Verfahren und die Speichervorrichtung eine Selbstreparatur
im Feld des Speichers während
des normalen Betriebs nach einem Löschen oder einem Programmieren,
wenn, nachdem eine Standard-Maximalanzahl von Lösch-/Programmierpulsen geliefert
wurde, es nicht möglich
war, ein Datum korrekt zu speichern, so dass damit die Notwendigkeit überwunden
wird, die Speichervorrichtung als fehlerhaft zu betrachten und von daher
sie ersetzen zu müssen.
Dies ermöglicht
eine beträchtliche
Erhöhung
der Lebensdauer des Speichers, was mit damit verbundener beträchtlicher
Einsparung von Kosten verbunden ist.
-
Das
Redundanzverfahren im Feld kann in jedem Falle auch in dem Schritt
des EWS-Testens in der Fabrik durchgeführt werden mit dem Ziel des
Vereinfachens wie folgt. Speziell kann die Speichervorrichtung selbst
die verschiedenen Muster erzeugen, welche für das Verifizieren der Funktionalität derselben
benutzt werden und dann, wiederum selbst, mit der Korrektur fortfahren.
Die Möglichkeit
der Anwendung, während
des EWS, stellt sich z.B. als vorteilhaft heraus, wenn das Standard-Testen
sehr kostspielig oder kompliziert ist, z.B. bei Vorrichtungen, welche
zum Speichern von Bildern benutzt werden. In derartigen Fällen ist
häufig
in der Tat der EWS-Test nicht implementiert, und es ist nicht möglich, fehlerhafte
Vorrichtungen, welche nicht selbst repariert werden können, von
korrekt funktionierenden Vorrichtungen, welche selbst repariert
werden können, zu
unterscheiden. Stattdessen führt
das Erzeugen von Steuersignalen und das Aktivieren von Verifiziervorgängen, welche
innerhalb des Speichers notwendig sind, zu dem Redundanzverfahren
im Feld, welches einfacher und ökonomisch
vorteilhafter ist und von daher leichter anzuwenden ist als der
Standard-EWS-Test.
-
Schließlich ist
es klar, dass zahlreiche Modifikationen und Variationen an den Speicher
und an dem Selbstreparaturverfahren, welches hier beschrieben und
dargestellt wurde, durchgeführt
werden können,
welche alle innerhalb den Umfang der vorliegenden Erfindung fallen,
wie sie in den angehängten
Ansprüchen
definiert sind. Beispielsweise, obwohl sogar das Selbstreparaturverfahren
durch Redundanz im Feld mit speziellem Bezug zu dem Fall der Identifikation
von fehlerhaften Zellen während
eines Lösch-
oder Programmierschrittes beschrieben wurde, kann es im Feld auch
in dem Fall der Identifikation im Feld von fehlerhaften Zellen während des
Standard-Lesens im Feld des Speichers angewendet werden. In diesem
Fall folgt auf die Identifizierung einer fehlerhaften Zelle ein
Schritt des Programmierens der Redundanzbits in ähnlicher Weise zu dem, was
mit Bezug auf den Programmierschritt beschrieben wurde. Speziell
ist das Selbstreparaturverfahren durch Redundanz im Feld, welches hier
beschrieben wurde, bei Speichern anwendbar, welche mit Fehlerkorrekturtechniken
ausgestattet sind, welche das Erkennen und das Korrigieren von Fehlern
ermöglichen,
welche sich während
des Lesens herausstellen und welche einen Fehlerkorrekturcode (ICC)
benutzen. Sollte im letzteren Fall ein Fehler während des Lesens eines Wortes
detektiert werden, liefert das ECC die Adresse des fehlerhaften Bits
und seines korrekten Wertes. Die Steuereinheit 3 erzeugt
dann ein Wartesignal und aktiviert das Schreiben der Sicherheitsbits
entsprechend der empfangenen Information.
-
Obwohl
sich die vorausgegangene Beschreibung auf den Fall einer einzelnen
nicht funktionierenden Zelle bezieht, deckt die Erfindung auch den
Fall der Redundanz von mehr als einer nicht funktionierenden Zelle
ab, in welchem Fall der Redundanzteil des Speicherfeldes erweitert
werden muss, um einen weiteren Teil für die Redundanz jeder zusätzlichen Zelle
zu umfassen, welche sich, auf die Verifizierung folgend, als eine
nicht funktionierende herausstellt.