DE60212332T2 - Selbstreparatur-Methode für nicht flüchtige Speicher mit einer Architektur zur Fehlervermeidung sowie nicht flüchtiger Speicher - Google Patents

Selbstreparatur-Methode für nicht flüchtige Speicher mit einer Architektur zur Fehlervermeidung sowie nicht flüchtiger Speicher Download PDF

Info

Publication number
DE60212332T2
DE60212332T2 DE60212332T DE60212332T DE60212332T2 DE 60212332 T2 DE60212332 T2 DE 60212332T2 DE 60212332 T DE60212332 T DE 60212332T DE 60212332 T DE60212332 T DE 60212332T DE 60212332 T2 DE60212332 T2 DE 60212332T2
Authority
DE
Germany
Prior art keywords
redundancy
memory
data
cell
field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60212332T
Other languages
English (en)
Other versions
DE60212332D1 (de
Inventor
Rino Micheloni
Aldo Losavio
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics SRL
Original Assignee
STMicroelectronics SRL
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics SRL filed Critical STMicroelectronics SRL
Application granted granted Critical
Publication of DE60212332D1 publication Critical patent/DE60212332D1/de
Publication of DE60212332T2 publication Critical patent/DE60212332T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/808Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme

Landscapes

  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

  • 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.

Claims (22)

  1. Selbstreparaturverfahren für einen nichtflüchtigen Speicher (1), welcher ein Speicherfeld (15) beinhaltet, welches durch eine Vielzahl von Zellen (14a, 14c) gebildet ist, wobei jede dieser ein Datum speichert, welches die Schritte aufweist von: – Durchführen einer Modifikationsoperation (31; 61) an den Daten des Speicherfeldes, wobei die Modifikationsoperation zwischen dem Programmieren und dem Löschen gewählt wird; und – Verifizieren (32; 62) der Korrektheit der Daten der Speicherzellen; – wenn der Schritt des Verifizierens (32; 62) gezeigt hat, dass wenigstens eine Zelle nicht funktioniert (14a, 14c), Ersetzen (51, 82) der nicht funktionierenden Zelle, dadurch gekennzeichnet, dass der Schritt des Ersetzens (51, 82) das Speichern (54, 57; 83) eines korrekten Inhalts in einer redundanten Zelle sowie der Adresse der nicht funktionierenden Zelle und einer aktivierten Redundanzkennung in der gleichen Zeile wie die der nicht funktionierende Zelle aufweist.
  2. Verfahren nach Anspruch 1, wobei der Schritt des Verifizierens (32; 62) der Korrektheit die Schritte aufweist von: – Festlegen (32; 62) der Anzahl von Speicherzellen, welche ein nicht korrektes Datum speichern; – falls die Anzahl der Speicherzellen, welche das inkorrekte Datum speichern, kleiner oder gleich einem Schwellwert ist, Aktivieren des Schrittes des Ersetzens (51; 82).
  3. Verfahren nach Anspruch 2, in welchem, nach dem Schritt des Ersetzens (51; 82), der Schritt des Verifizierens (52, 58; 84) der redundanten Daten durchgeführt wird.
  4. Verfahren nach Anspruch 3, in welchem, falls der Schritt des Verifizierens (52, 58; 84) der Redundanzdaten ein Ergebnis erzielt, welches einen Fehler anzeigt, ein Fehlersignal erzeugt wird (50; 81, 90).
  5. Verfahren nach einem der Ansprüche 1 bis 4, in welchem der Schritt des Verifizierens (52, 58; 84) der Redundanzdaten das Verifizieren der Information getrennt von den Daten der Speicherzellen aufweist.
  6. Verfahren nach einem der Ansprüche 3 bis 5, in welchem die Modifikationsoperation eine Löschoperation (31) ist, welche an einer Vielzahl von Speicherzellen (14a, 14c) ausgeführt wird; wobei der Schritt des Verifizierens (32) der Korrektheit der Daten an einem Teilsatz aus der Vielzahl der Speicherzellen ausgeführt wird; und in welchem, falls der Schritt des Verifizierens (52) der Redundanzdaten ein korrektes Ergebnis erzielt, die Redundanzdaten zeitweilig bzw. vorübergehend gespeichert werden (54), wobei der Schritt des Verifizierens (32) der Korrektheit der Daten an anderen Teilsätzen aus der Vielzahl der Speicherzellen wiederholt wird, bis zur vollständigen Verifizierung der Vielzahl von Speicherzellen; und wobei am Ende der vollständigen Verifizierung die Redundanzdaten in einer nichtflüchtigen weise in einen Redundanzbereich (21) des Speicherfeldes (15) geschrieben werden (57).
  7. Verfahren nach einem der Ansprüche 3 bis 5, in welchem die Modifikationsoperation eine Programmieroperation (61) ist, welche an einer Vielzahl von Speicherzellen (14a, 14c) durchgeführt wird, wobei ein Speicherwort gespeichert wird und der Schritt des Ersetzens der nicht funktionierenden Zelle das Schreiben (83) der Redundanzdaten in einen Redundanzbereich (21) des Speicherfeldes (15) aufweist.
  8. Verfahren nach einem der vorausgehenden Ansprüche, in welchem die Modifikationsoperation (31; 61) während eines EWS-Testschrittes aktiviert wird.
  9. Verfahren nach einem der Ansprüche 1 bis 7, in welchem die Modifikationsoperation (31; 61) während eines Schrittes des normalen Gebrauches auf dem Feld des nichtflüchtigen Speichers aktiviert wird.
  10. Verfahren nach einem der Ansprüche 1 bis 7, in welchem das Verfahren während eines Schrittes des normalen Gebrauches auf dem Feld des nichtflüchtigen Speichers (1) durchgeführt wird und ferner die Schritte beinhaltet von: – Verifizieren der Korrektheit der Daten der gelesenen Zellen; und – wenn der Schritt des Verifizierens der Korrektheit der Daten der gelesenen Zellen wenigstens eine nicht funktionierende Zelle gezeigt hat, Ersetzen der nicht funktionierenden Zelle.
  11. Nichtflüchtige Speichervorrichtung (1), welche beinhaltet: – einen Speicherblock (2), welcher ein Speicherfeld (15) aufweist, welches durch eine Vielzahl von Speicherzellen (14a, 14c) gebildet ist, wobei jede dieser ein Datum speichert; – eine Modifiziereinrichtung (3, 4) zum Modifizieren der Daten der Speicherzellen, wobei die Modifikati onsvorrichtung eine Operation durchführt, welche zwischen dem Programmieren und Löschen gewählt wird; und – eine Schaltung (7) zum Verifizieren der Korrektheit der Daten der Speicherzellen, wobei die Vorrichtung (7) zur Korrektheitsverifizierung ein inkorrektes Datumssignal (F) erzeugt, wenn wenigstens eine nicht funktionierende Zelle detektiert ist; – eine Redundanzvorrichtung (51; 82) auf dem Feld, welche die nicht funktionierende Zelle ersetzt und welche durch die Korrektheitsverifizierschaltung (7) freigegeben wird, dadurch gekennzeichnet, dass das Speicherfeld (15) einen Grundbereich (20) aufweist, welcher eine Vielzahl von Speicherzellen (14a) aufweist, welche Basisdaten speichern; und einen Redundanzbereich (21) auf dem Feld, welcher gestaltet ist, um die Redundanzdaten zu speichern, und welcher beinhaltet: wenigstens eine erste Redundanzzelle (14b), welche gestaltet ist, um einen korrekten Inhalt der nicht funktionierenden Zelle zu speichern, eine Vielzahl von zweiten Redundanzzellen (14b), welche gestaltet sind, um eine Adressinformation einer nicht funktionierenden Zelle zu speichern, und eine dritte Redundanzzelle (14b), welche gestaltet ist, um eine aktivierte Redundanzkennung zu speichern, wobei der Redundanzbereich (21) auf dem Feld auf der gleichen Zeile ist wie der der nicht funktionierenden Zelle.
  12. Vorrichtung nach Anspruch 11, in welcher das Speicherfeld (15) ferner einen EWS-Redundanzbereich (22) aufweist, welcher aus wenigstens einer EWS-Redundanzzelle (14c) erstellt ist.
  13. Vorrichtung nach Anspruch 11 oder 12, in welcher der Grundbereich (20) mit zwei eigenen Spaltendecodiereinheiten (26) und mit eigenen Tast- bzw. Leseverstärkern (19) verbunden ist und der Redundanzbereich (21) auf dem Feld eine erste Gruppe von Spalten (25b) aufweist, welche mit der ersten Redundanzzelle (14b) verbunden ist, eine Vielzahl von zweiten Gruppen von Spalten (25b), wobei jede der zweiten Gruppen von Spalten mit wenigstens einer der jeweiligen zweiten Redundanzzellen (14b) verbunden ist, und eine dritte Gruppe von Spalten (25b), welche mit der dritten Redundanzzelle (14b) verbunden ist; wobei jede Gruppe von Spalten (25b) mit einer eigenen Spaltendecodiereinheit (26) und mit einem eigenen Redundanzleseverstärker (19) verbunden ist.
  14. Vorrichtung nach Anspruch 13, in welcher die Leseverstärkervorrichtung (19) des Redundanzbereiches (21) auf dem Feld mit der Korrektheits-Verifizierschaltung (7) verbunden ist.
  15. Vorrichtung nach Anspruch 14, welche ferner eine Redundanzersatzschaltung (12) auf dem Feld aufweist, welche Dateneingänge besitzt, welche mit den Leseverstärkern (19) des Grundbereichs (20) verbunden sind, Steuereingänge besitzt, welche mit den Leseverstärkern (19) des Redundanzbereiches (21) auf dem Feld verbunden sind, und Ausgänge besitzt, welche mit einem Ausgangsteil (10) der Speichervorrichtung (1) und der Korrektheits-Verifizierschaltung (7) verbunden sind.
  16. Vorrichtung nach Anspruch 15, welche ferner eine EWS-Redundanz-Ersatzschaltung (6) besitzt, welche zwischen den Leseverstärkern (19) des Grundbereichs (20) und des EWS-Redundanzbereichs (22) und den Dateneingängen der Redundanzersatzschaltung (12) auf dem Feld verbunden ist, wobei die EWS-Redundanzersatzschaltung (6) außerdem Steuereingänge besitzt, welche mit einer nichtflüchtigen Speichereinheit (5) verbunden sind.
  17. Vorrichtung nach Anspruch 15 oder 16, in welcher die Korrektheits-Verifizierschaltung (7) eine erste Detektiereinheit (CMP, FF) aufweist, welche eine Ausgangsinformation (PLB, ONLY_ONE, ALLZERO) besitzt, welche auf die Anzahl der Speicherzellen (14a, 14c) bezogen ist, welche ein nicht korrektes Datum speichern; und die Modifiziervorrichtung (3, 4) eine Redundanz-Aktiviereinheit (3, 51; 82) aufweist, welche mit der Detektiereinheit (CMP, FF) verbunden ist und welche ein Redundanz-Aktiviersignal erzeugt, wenn die Anzahl der Speicherzellen (14a, 14c), welche ein nicht korrektes Datum speichern, kleiner oder gleich ist zu einem vorher festgelegten Schwellwert.
  18. Vorrichtung nach Anspruch 17, welche eine Erzeugungsvorrichtung (4, 31; 61) für Zellmodifikationspulse aufweist, welche in Abwesenheit des Redundanz-Aktivierungssignals freigegeben sind und in welcher die Modifikationsvorrichtung (3, 4) ferner eine erste Detektiervorrichtung (35; 65) für eine Maximalanzahl von Pulsen aufweist, welche eine Information über die Maximalanzahl von Zellpulsen erzeugt, wenn eine Maximalanzahl von Modifikationspulsen bereits an die Speicherzellen geliefert wurde, wobei die Redundanz-Aktiviereinheit (3, 41; 82) außerdem in Abwesenheit der Information über die Maximalanzahl der Zellpulse aktiviert wird.
  19. Vorrichtung nach Anspruch 17 oder 18, in welcher die Korrektheits-Verifizierschaltung (7) ferner eine zweite Detektiereinheit (CMPR, FFR) aufweist, welche am Ausgang Information bezogen auf die Zahl der Redundanzzellen (14b) liefert, welche ein nicht korrektes Datum speichern; und eine Redundanzbestätigungseinrichtung (28R) aufweist, welche mit der zweiten Detektierschaltung (CMPR, FFR) verbunden ist und welche ein Freigabe-Redundanzsignal (ALLIZEROR) erzeugt, wenn alle Redundanzzellen ein nicht korrektes Datum speichern.
  20. Vorrichtung nach Anspruch 19, welche aufweist: Programmierschaltungen (3, 83) zum Anlegen von Redundanz-Programmierpulsen an die Redundanzzellen (14b) in Abwesenheit des freigegebenen Redundanzsignals (ALLZEROR) und in Gegenwart des Redundanz-Aktiviersignals; und eine zweite Detektiereinheit (87) für eine Maximalanzahl von Pulsen, welche ein fehlerhaftes Speichersignal in Abwesenheit des freigegebenen Redundanzsignals (ALLZEROR) und wenn eine vorher festgelegte Maximalanzahl der Redundanz-Programmierpulse überschritten wurde, erzeugt.
  21. Vorrichtung nach Anspruch 19 oder Anspruch 20, welche aufweist: eine zeitweilige Schreibvorrichtung (53) zum Schreiben der Redundanzdaten, welche durch das freigegebene Redundanzsignal (ALLZEROR) freigegeben sind, und eine nichtflüchtige Schreibvorrichtung (57) zum Schreiben der Redundanzdaten in den Redundanzbereich (21) auf dem Feld am Ende des Schrittes des Löschens des Speicherfeldes (15).
  22. Vorrichtung nach einem der Ansprüche 15 bis 21, in welcher die Redundanz-Ersatzschaltung (12) auf dem Feld aufweist: eine Vielzahl von Multiplexschaltungen (C), wobei jede dieser einen ersten Dateneingang besitzt, welcher mit jeweils einem der Leseverstärker (19) des Grundbereiches (20) verbunden ist, einen zweiten Eingang, welcher mit einem der Leseverstärker (19) des Redundanzbereiches (21) auf dem Feld verbunden ist, welcher den korrekten Inhalt (BS<1>) liefert, einen Auswahleingang und einen Ausgang, wobei die Ausgänge der Multiplexschaltungen (C) die Ausgänge der zweiten Redundanzersatzschaltung (12) bilden; und eine Adressierschaltung (A, B), welche die Adressin formation (BS<7:2>) und die aktivierte Redundanzkennung (BS<0>) empfängt und ein Ersatz-Aktiviersignal an den Auswahleingang liefert, um eine der Multiplexschaltungen (C) auszuwählen, welche durch die Adressinformation und in Gegenwart der aktivierten Redundanzkennung (BS<0>) spezifiziert ist.
DE60212332T 2002-04-26 2002-04-26 Selbstreparatur-Methode für nicht flüchtige Speicher mit einer Architektur zur Fehlervermeidung sowie nicht flüchtiger Speicher Expired - Lifetime DE60212332T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP02425265A EP1357559B1 (de) 2002-04-26 2002-04-26 Selbstreparatur-Methode für nicht flüchtige Speicher mit einer Architektur zur Fehlervermeidung sowie nicht flüchtiger Speicher

Publications (2)

Publication Number Publication Date
DE60212332D1 DE60212332D1 (de) 2006-07-27
DE60212332T2 true DE60212332T2 (de) 2007-06-06

Family

ID=28686044

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60212332T Expired - Lifetime DE60212332T2 (de) 2002-04-26 2002-04-26 Selbstreparatur-Methode für nicht flüchtige Speicher mit einer Architektur zur Fehlervermeidung sowie nicht flüchtiger Speicher

Country Status (3)

Country Link
US (1) US6922366B2 (de)
EP (1) EP1357559B1 (de)
DE (1) DE60212332T2 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1607865B1 (de) * 2004-06-14 2013-08-14 Micron Technology, Inc. Datenverwaltungseinheit fähig Startfehler zu korrigieren und entsprechendes Verfahren
JP2005353242A (ja) * 2004-06-14 2005-12-22 Toshiba Corp 不揮発性半導体記憶装置及びそのデータ書き込み方法
EP1624463A1 (de) 2004-07-14 2006-02-08 STMicroelectronics S.r.l. Ein programmierbarer Speicher mit verbesserter Redundanz-Struktur
US7275190B2 (en) * 2004-11-08 2007-09-25 Micron Technology, Inc. Memory block quality identification in a memory device
US20080165599A1 (en) * 2006-01-31 2008-07-10 Gorman Kevin W Design structure used for repairing embedded memory in an integrated circuit
US7518918B2 (en) * 2006-01-31 2009-04-14 International Business Machines Corporation Method and apparatus for repairing embedded memory in an integrated circuit
US8811060B2 (en) 2012-05-31 2014-08-19 International Business Machines Corporation Non-volatile memory crosspoint repair
US9875810B2 (en) * 2013-07-24 2018-01-23 Microsoft Technology Licensing, Llc Self-identifying memory errors
CN113569517B (zh) * 2021-06-29 2024-02-23 南方电网科学研究院有限责任公司 一种减小列冗余替换电路面积的电路及芯片

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5268870A (en) 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
DE69033438T2 (de) 1989-04-13 2000-07-06 Sandisk Corp Austausch von fehlerhaften Speicherzellen einer EEprommatritze
US5361227A (en) 1991-12-19 1994-11-01 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device and memory system using the same
FR2716566B1 (fr) 1994-02-23 1996-04-19 Sgs Thomson Microelectronics Circuit de sélection d'éléments de mémoire redondants et mémoire "Flash Eeprom" comportant ledit circuit.
US5438546A (en) * 1994-06-02 1995-08-01 Intel Corporation Programmable redundancy scheme suitable for single-bit state and multibit state nonvolatile memories
DE69426818T2 (de) 1994-06-10 2001-10-18 St Microelectronics Srl Fehlertolerantes Speichergerät, insbesondere des Typs "flash EEPROM"
US5513144A (en) 1995-02-13 1996-04-30 Micron Technology, Inc. On-chip memory redundancy circuitry for programmable non-volatile memories, and methods for programming same
US5559742A (en) 1995-02-23 1996-09-24 Micron Technology, Inc. Flash memory having transistor redundancy
EP0797145B1 (de) 1996-03-22 2002-06-12 STMicroelectronics S.r.l. Sektoriziertes elektrisch löschbares und programmierbares nichtflüchtiges Speichergerät mit Redundanz
US5928370A (en) 1997-02-05 1999-07-27 Lexar Media, Inc. Method and apparatus for verifying erasure of memory blocks within a non-volatile memory structure
TW439293B (en) * 1999-03-18 2001-06-07 Toshiba Corp Nonvolatile semiconductor memory
JP2001052495A (ja) * 1999-06-03 2001-02-23 Toshiba Corp 半導体メモリ
DE60020210D1 (de) * 2000-02-14 2005-06-23 St Microelectronics Srl Nichtflüchtige Speicheranordnung mit konfigurierbarer Zeilenredundanz
US6459628B1 (en) * 2001-04-02 2002-10-01 Advanced Micro Devices, Inc. System and method to facilitate stabilization of reference voltage signals in memory devices
US6498752B1 (en) 2001-08-27 2002-12-24 Aplus Flash Technology, Inc. Three step write process used for a nonvolatile NOR type EEPROM memory

Also Published As

Publication number Publication date
EP1357559A1 (de) 2003-10-29
US6922366B2 (en) 2005-07-26
EP1357559B1 (de) 2006-06-14
DE60212332D1 (de) 2006-07-27
US20030235092A1 (en) 2003-12-25

Similar Documents

Publication Publication Date Title
DE102006001492B4 (de) Halbleiterspeicheranordnung und Verfahren zum Betreiben einer Halbleiterspeicheranordnung
DE10301458B4 (de) Speicherbaustein und zugehöriges Lösch-, Programmier- und Rückkopierverfahren
DE602004003275T2 (de) Nichtflüchtiger Speicher mit Seiten-Kopierfunktion und entsprechendes Verfahren
DE102007031027B4 (de) Leseverfahren einer Speichervorrichtung
DE60217591T2 (de) Speicher-Steuerung für Mehrpegel-Speicherzelle
DE102006033649B4 (de) Speicherbauelement und Verfahren zum Konfigurieren eines Speicherbauelements
DE102008003944A1 (de) Speichersystem und Programmierverfahren für ein Speichersystem
DE19937101A1 (de) Halbleiterspeicherbauelement mit Chipinterner Fehlerkorrekturschaltung und ein Verfahren zum Korrigieren eines Datenfehlers darin
DE102008021414A1 (de) Flexibles Redundanzersetzungsschema für ein Halbleiterbauteil
DE102004020875B4 (de) Verfahren und Vorrichtung zum Maskieren bekannter Ausfälle während Speichertestauslesungen
DE60212332T2 (de) Selbstreparatur-Methode für nicht flüchtige Speicher mit einer Architektur zur Fehlervermeidung sowie nicht flüchtiger Speicher
DE19930169A1 (de) Testeinrichtung zum Prüfen eines Speichers
DE102005001520A1 (de) Integrierte Speicherschaltung und Verfahren zum Reparieren eines Einzel-Bit-Fehlers
DE3827174A1 (de) Halbleiter-speichervorrichtung
DE19922786B4 (de) Halbleiterspeicher mit Testeinrichtung
DE60215291T2 (de) Halbleiter Speicheranordnung
DE19830362A1 (de) Halbleiterspeichervorrichtung
DE102016123689B4 (de) Speicherschaltung und Verfahren zum Betreiben einer Speicherschaltung
DE19952357A1 (de) Schreibvorrichtung für eine nicht-flüchtige Halbleiter-Speichervorrichtung
DE112019007385T5 (de) Verbesserte sicherheit und korrektheit beim lesen und programmieren von daten in einem nichtflüchtigen speichergerät
DE102016115177B4 (de) Verfahren zum Betreiben einer Speichervorrichtung und Speichervorrichtung
DE19924153B4 (de) Schaltungsanordnung zur Reparatur eines Halbleiterspeichers
EP1625592B1 (de) Vorrichtung und verfahren zum behandeln eines zustands eines speichers
EP1141834B1 (de) Integrierter speicher mit redundanz
DE19921868C2 (de) Schaltungsanordnung zur Kontrolle von Zuständen einer Speichereinrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition