DE19731954C2 - Verfahren zur Erkennung von fehlprogrammierten Speicherzellen eines Speichers - Google Patents

Verfahren zur Erkennung von fehlprogrammierten Speicherzellen eines Speichers

Info

Publication number
DE19731954C2
DE19731954C2 DE19731954A DE19731954A DE19731954C2 DE 19731954 C2 DE19731954 C2 DE 19731954C2 DE 19731954 A DE19731954 A DE 19731954A DE 19731954 A DE19731954 A DE 19731954A DE 19731954 C2 DE19731954 C2 DE 19731954C2
Authority
DE
Germany
Prior art keywords
sub
block
programmed
memory cells
programming
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19731954A
Other languages
English (en)
Other versions
DE19731954A1 (de
Inventor
Peter Grosshans
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE19731954A priority Critical patent/DE19731954C2/de
Priority to GB9815642A priority patent/GB2328536B/en
Priority to JP20631898A priority patent/JPH1186578A/ja
Priority to US09/120,859 priority patent/US5898620A/en
Priority to FR9809473A priority patent/FR2767956B1/fr
Publication of DE19731954A1 publication Critical patent/DE19731954A1/de
Application granted granted Critical
Publication of DE19731954C2 publication Critical patent/DE19731954C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Description

STAND DER TECHNIK
Die vorliegende Erfindung betrifft ein Verfahren zur Erken­ nung von fehlprogrammierten Speicherzellen eines Speichers, und insbesondere zur Erkennung von überprogrammierten Spei­ cherzellen eines Flash-Halbleiterspeichers, wobei der Spei­ cher eine Vielzahl von Speicherzellen aufweist. Die Spei­ cherzellen sind in eine Anzahl von als Einheit löschbaren Blöcken unterteilbar. Die Blöcke sind in eine Gruppe von als Einheit programmierbaren Unterblöcken (Pages) unter­ teilbar. Die Fehlprogrammierung einer Speicherzelle eines Unterblocks bewirkt, daß jeder Unterblock einer durch eine Fehlprogrammierungs-Untergruppe der Gruppe darstellbaren Anzahl von Unterblöcken eine entsprechende fehlprogrammier­ te Speicherzelle aufweist.
Aus der DE 42 13 731 A1 sind ein nicht-flüchtiges Halblei­ terspeicherbauelement in Form eines Flash-EEPROM und ein Verfahren zur Erkennung von fehlprogrammierten Speicherzel­ len und insbesondere überprogrammierten Speicherzellen be­ kannt.
Obwohl prinzipiell auf sich kollektiv fortpflanzende Fehl­ programmierungen beliebiger Speicher anwendbar, werden die vorliegende Erfindung sowie die ihr zugrundeliegende Pro­ blematik in bezug auf überprogrammierte Speicherzellen ei­ nes Flash-Halbleiterspeichers erläutert.
Der Begriff "fehlprogrammiert" soll dabei also im allgemei­ nen Sinne verstanden werden, nämlich in dem Sinne einer Fehlprogrammierung einer Speicherzelle eines Unterblocks, welche eine Fehlprogrammierung der entsprechenden Speicher­ zellen in einer Untergruppe von Unterblöcken bewirkt.
Halbleiterspeicher lassen sich allgemein in Tabellenspei­ cher und Funktionsspeicher einteilen. Die vorliegende Er­ findung betrifft speziell die Tabellenspeicher, welche eine Vielzahl von Speicherzellen aufweisen, denen jeweils eine bestimmte Adresse zugeordnet ist. Bei den Tabellenspeichern unterscheidet man Schreib-Lese-Speicher (RAMs) und Fest­ wertspeicher (ROMS).
Besondere Festwertspeicher sind EPROMs und EEPROMs, die sich vom Anwender nicht nur programmieren, sondern auch wieder löschen lassen, und zwar die EPROMs hinsichtlich Blöcken von Speicherzellen mittels ultraviolettem Licht und die EEPROMs hinsichtlich ausgewählter Speicherzellen (z. B. byteweise) mit einem elektrischen Spannungsimpuls.
Flash-Speicher (auch als Flash-EEPROMS oder als Flash-RAMs bezeichnet) stellen ein Mittelding zwischen den EPROMs und den EEPROMS dar. Sie sind zwar elektrisch löschbar, aber nicht byteweise wie die EEPROMs, sondern blockweise ähnlich wie die EPROMs. Allerdings ermöglichen jüngere Entwicklun­ gen eine stetige Verkleinerung dieser löschbaren Blöcke bei den Flash-EEPROMs.
Flash-Speicher lassen sich preisgünstiger herstellen als EEPROMs, weisen eine höhere Datendichte auf. Daher sind sie besonders bei Anwendungen gefragt, wo wenig Platz zur Ver­ fügung steht, z. B. in Laptops, Notebooks oder High- Performance-Mikrokontroller-Chips.
Dabei ist das Flash-Speicherarray zur besseren Ausnutzung der Chipfläche in der Regel in Blöcke und Untergruppen der Blöcke, sogenannte Pages, unterteilt.
Die der vorliegenden Erfindung zugrundeliegende Problematik besteht allgemein darin, daß beim Löschen und Programmieren von Teilen des Flash-Speichers Fehler auftreten können, welche zu Datenverlusten oder Fehlprogrammierungen in ande­ ren Teilen des Flash-Speichers führen können (kollektive Fehlerfortpflanzung). Dabei ist es bei gewissen Fehlern, wie z. B. der Überprogrammierung, sowohl schwierig, den Feh­ ler überhaupt zu erkennen, als auch aufwendig, ihn zu be­ seitigen.
Die Überprogrammierung wird anhand eines konkreten Bei­ spiels eines Mikrokontrollers näher erläutert.
In diesen Mikrokontroller ist ein nicht-flüchtiger Spei­ cherchip in Form eines Flash-Speicherarrays implementiert. Dieses Flash-Speicherarray ist in 32 kB große löschbare Blöcke unterteilt, und die Blöcke wiederum sind in jeweils 8 Worte (1 Wort = 32 Bit) große Pages unterteilt.
Das Löschen von gespeicherten Daten ist also nur in den 32 kB großen Blöcken möglich, wohingegen das Programmieren der Daten in den 8 Wort großen Pages möglich ist.
Wird eine Speicherzelle (1 Bit) einer Page vom nicht- programmierten (gelöschten) Zustand in den programmierten Zustand überführt, dann kann es durch die Eigenschaften der Speicherzelle, oder genauer gesagt durch die Eigenschaften des entsprechenden Feldeffekt-Transistors, vorkommen, daß diese Zelle einen Zustand erreicht, der als überprogram­ miert bezeichnet wird. Dieser überprogrammierte Zustand zeichnet sich dadurch aus, daß die Zelle ständig ihre ge­ speicherte Information nach außen preisgibt, und zwar auch ohne zusätzliche Aktivierung der Speicherzelle beim Ausle­ sen der betreffenden Page.
Durch die besondere Struktur des Flash-Speicherarrays wer­ den durch die überprogrammierte Speicherzelle auch Auslese­ vorgänge auf den übrigen Pages gestört. Dadurch werden die Daten, die sich in den übrigen Pages befinden, gestört und daher eventuell falsch nach außen gegeben.
Eine überprogrammierte Speicherzelle kann in diesem Flash- Speicherarrray wieder in den gelöschten Zustand überführt werden, indem der gesamte 32 kB-Block, in dem sich die über­ programmierte Speicherzelle befindet, gelöscht wird.
Welche Pages durch eine überprogrammierte Speicherzelle ge­ stört werden, hängt von der Struktur des Speicherarrays ab. Häufig werden nicht alle weiteren Pages gestört, sondern nur die Speicherzellen der Pages, die sich in einer gemein­ samen Spalte des Speicherarrays befinden. Der Fehler tritt dann im periodischen Abstand der Page mit der überprogram­ mierten Zelle im Flash-Speicherarray auf.
Ohne die Historie des Flash-Speicherarrays zu kennen, ist die Erkennung solcher überprogrammierten Zellen nicht mög­ lich.
VORTEILE DER ERFINDUNG
Das erfindungsgemäße Verfahren zur Erkennung von fehlpro­ grammierten Speicherzellen eines Halbleiterspeichers weist den besonderen Vorteil auf, daß es eine einfache und siche­ re Erkennungsmöglichkeit für fehlprogrammierte Zellen bie­ tet, die sich die systemtische Art der Fehlerfortpflanzung zu Nutze macht. Außerdem ermöglicht das erfindungsgemäße Verfahren im Falle der Feststellung, daß die programmierten Speicherzellen eines Nutzungs-Unterblocks oder eines pro­ grammierten Referenz-Unterblocks mindestens eine fehlpro­ grammierte Speicherzelle aufweisen, eine Reparatur zu einem frühen Zeitpunkt. Es kann dann nämlich sofort ein Löschvor­ gang stattfinden, ohne daß zunächst weitere Unterblöcke oder Pages unnötigerweise programmiert werden.
Die der vorliegenden Erfindung zugrundeliegende Idee be­ steht darin, daß ein Referenz-Unterblock bzw. eine Refe­ renz-Page für einen oder mehrere Nutzungs-Unterblöcke bzw. Nutzungs-Pages in jeder festgelegten ersten Fehlprogrammie­ rungs-Untergruppe bestimmt wird. Durch Löschen der Speicherzellen des Referenz-Unterblocks vor dem Programmie­ ren der Speicherzellen eines jeweiligen Nutzungs-Unter­ blocks mit Nutzungsdaten und Auslesen der gelöschten Speicherzellen des Referenz-Unterblocks nach dem Programmieren kann fest­ gestellt werden, ob die programmierten Speicherzellen des jeweiligen Nutzungs-Unterblocks ein oder mehrere fehlpro­ grammierte Speicherzellen aufweisen. Mit anderen Worten liegt dann eine Fehlprogrammierung vor, wenn sich gleich­ zeitig zur Speicherzelle im Nutzungs-Unterblock auch die entsprechende Speicherzelle im Referenz-Unterblock von ge­ löscht (z. B. logisch "0") auf programmiert (z. B. logisch "1") ändert.
In den Unteransprüchen finden sich vorteilhafte Weiterbil­ dungen und Verbesserungen des in Anspruch 1 angegebenen Verfahrens.
Gemäß einer bevorzugten Weiterbildung werden die Schritte des Programmierens der Speicherzellen eines ersten Nut­ zungs-Unterblocks, des Auslesens der gelöschten Speicherzellen des Referenz-Unterblocks und des Feststel­ lens, ob die programmierten Speicherzellen des ersten Nut­ zungs-Unterblocks ein oder mehrere fehlprogrammierte Spei­ cherzellen aufweisen, basierend auf dem Ausleseresultat für alle weiteren Nutzungs-Unterblöcke der festgelegten ersten Fehlprogrammierungs-Untergruppe wiederholt.
Gemäß einer weiteren bevorzugten Weiterbildung wird der Block im Falle der Feststellung, daß die programmierten Speicherzellen irgendeines Nutzungs-Unterblocks mindestens eine fehlprogrammierte Speicherzelle aufweisen, gelöscht und neuprogrammiert.
Gemäß einer weiteren bevorzugten Weiterbildung wird be­ stimmt, ob in den programmierten Nutzungs-Unterblöcken nicht-programmierte Speicherzellen entsprechend einer je­ weiligen Speicherzelle des Referenz-Unterblocks vorliegen; und, falls ja, wird jeweils eine nicht-programmierte Spei­ cherzelle für jede betreffende Speicherzelle des Referenz- Unterblocks festgelegt. Dieses Vorgehen ermöglicht vorteil­ hafterweise ein kontrolliertes Programmieren der Referenz- Page mit Nutzungsdaten.
Gemäß einer weiteren bevorzugten Weiterbildung werden die Speicherzellen des Referenz-Unterblocks mit Nutzungsdaten programmiert; wer­ den die festgelegten nicht-programmierten Speicherzellen ausgelesen; und wird basierend auf dem Ausleseresultat festgestellt, ob die programmierten Speicherzellen des Re­ ferenz-Unterblocks ein oder mehrere fehlprogrammierte Spei­ cherzellen aufweisen.
Gemäß einer weiteren bevorzugten Weiterbildung wird der Block im Falle der Feststellung, daß die programmierten Speicherzellen des Referenz-Unterblocks mindestens eine fehlprogrammierte Speicherzelle aufweisen, gelöscht und neuprogrammiert.
Gemäß einer weiteren bevorzugten Weiterbildung werden alle weiteren Fehlprogrammierungs-Untergruppen des Blocks und die entsprechenden Referenz-Unterblöcke und Nutzungs- Unterblöcke festgelegt, bis zumindest jeder Unterblock von einer Fehlprogrammierungs-Untergruppe erfaßt ist; und wer­ den die Unterblöcke der weiteren Fehlprogrammierungs- Untergruppen entsprechend programmiert. Dieses Vorgehen stellt sicher, daß aufgrund des Wissens über den Aufbau des Speichers fehlprogrammierte Speicherzellen in jedem Fall erkannt werden.
Gemäß einer weiteren bevorzugten Weiterbildung wird der Gruppe eine Matrix zugeordnet und werden die Reihen und Spalten der Matrix so zugeordnet, daß die zu einem jeweili­ gen Unterblock gehörige Untergruppe eine Spalte der Matrix ist. Dieses Vorgehen erleichtert die Datenverarbeitung bei der Fehlprogrammierungserfassung.
Gemäß einer weiteren bevorzugten Weiterbildung werden in der letzten Zeile der Matrix sämtliche für sie erforderli­ chen Referenz-Unterblöcke festgelegt.
Gemäß einer weiteren bevorzugten Weiterbildung wird der ak­ tuelle Inhalt eines Nutzungs-Unterblocks vor seiner Pro­ grammierung in einem Hilfsspeicher oder in einem anderen unbenutzten Unterblock desselben oder eines anderen Blocks gesichert. Dies ermöglicht ein schrittweises Programmieren der Pages.
Gemäß einer weiteren bevorzugten Weiterbildung wird minde­ stens ein Programmierparameter, insbesondere Programmierim­ pulsanzahl oder Programmierimpulshöhe, im Falle der Fest­ stellung, daß die programmierten Speicherzellen eines Nut­ zungs-Unterblocks oder eines programmierten Referenz- Unterblocks mindestens eine fehlprogrammierte Speicherzelle aufweisen, geändert. Dieses Vorgehen ermöglicht eine Opti­ mierung der Programmierparameter.
ZEICHNUNGEN
Ein Ausführungsbeispiel der Erfindung ist in der Zeichnung dargestellt und in der nachfolgenden Beschreibung näher er­ läutert.
Fig. 1 zeigt einen Flash-Speicher mit vier Blöcken und n × k Pages, wobei n und k natürliche Zahlen sind, an dem das erfindungsgemäße Verfahren prak­ tizierbar ist.
BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELE
In Fig. 1 bezeichnet 10 allgemein den Flash-Speicher, 20a bis 20d einen ersten bis vierten Block und P11 bis Pnk eine erste bis n × k-te Page (Unterblock), wobei n und k natür­ liche Zahlen sind und beispielsweise n von 1 bis 128 läuft und k von 1 bis 8 läuft. Die einzelnen Pages P11 bis Pnk enthalten jeweils 8 Worte zu je 4 Byte, d. h. 32 Byte oder 256 Bit. Mit anderen Worten bilden die Pages P11 bis Pnk eine Matrix mit 128 Zeilen und 8 Spalten, also sind 1024 Pages insgesamt in jedem Block 20a bis 20d des Flash- Speichers 10 enthalten.
Die Blöcke 20a bis 20d bilden jeweils die kleinste löschba­ re Einheit im Flash-Speicher 10, und die Pages P11 bis Pnk jeweils die kleinste programmierbare Einheit.
Bei diesem Beispiel des Flash-Speichers 10 würde eine über­ programmierte Speicherzelle in der Page P11 dazu führen, daß jede Page P11, P21, P31, P41, . . ., P(n-3)1, P(n-2)1, P(n-1)1, Pn1 eine entsprechende überprogrammierte Speicher­ zelle aufweist. D. h. in allen diesen Pages P11-Pn1 oder in der ersten Spalte der Matrix erscheint das betreffende Bit als programmiert, obwohl es nur in der Page P11 tatsächlich programmiert wurde. Dieser Fehler kann nur durch Löschen des gesamten Blocks 20b rückgängig gemacht werden.
Doch zuerst muß das erfindungsgemäße Verfahren angewandt werden, mit dem das Auftreten dieses Fehlers schnell und sicher erkannt werden kann.
Das Verfahren macht sich zu Nutze, daß die überprogrammier­ ten Zellen durch eine Fehlprogrammierungs-Untergruppe von Pages darstellbar sind, nämlich durch die jeweiligen Spal­ ten bzw. Spaltenvektoren der Matrix, wobei dies im voraus durch den speziellen Aufbau des Flash-Speichers 10 vorgege­ ben ist.
Zur Durchführung des Verfahrens wird für jede Spalte also Fehlprogrammierungs-Untergruppe der Matrix eine Referenz- Page festgelegt, und zwar beim vorliegenden Ausführungsbei­ spiel jeweils die letzte Page Pn1, Pn2, Pn3, Pn4, . . ., Pn(k-2), Pn(k-1), Pnk. Die weiteren Pages jeder Spalte der Matrix sind Nutzungs-Pages, d. h. sie werden zur eigentli­ chen Datenspeicherung verwendet.
Dann werden die Speicherzellen der Referenz-Pages Pn1, Pn2, Pn3, Pn4, . . ., Pn(k-2), Pn(k-1), Pnk und der Nutzungs-Pages allesamt durch eine Blocklöschoperation für den Block 20b gelöscht.
Als nächstes erfolgt ein Programmieren der Speicherzellen einer ersten Nutzungs-Page, also beispielsweise der Page P11. Anschließend werden die vorprogrammierten (d. h. ge­ löschten) Speicherzellen der Referenz-Page der ersten Spal­ te, also der Page Pn1, ausgelesen.
Anhand des Ausleseresultats läßt sich feststellen, ob die programmierten Speicherzellen der ersten Nutzungs-Page P11 ein oder mehrere überprogrammierte Speicherzellen aufwei­ sen. Dies ist nämlich gerade dann der Fall, wenn eine oder mehrere Speicherzellen der Referenz-Page Pn1 nicht mehr ge­ löscht (logisch "0"), sondern programmiert (logisch "1") sind. In solch einem Fall erfolgt ein sofortiges Löschen und Neuprogrammieren des gesamten Blocks 20b.
Dann werden die vorherigen Schritte für alle weiteren Nut­ zungs-Pages, d. h. P11 bis P1k, P21 bis P2k, . . . und P(n-1)1 bis P(n-1)k durchgeführt. Die Referenz-Pages bleiben bei diesem Ausführungsbeispiel reserviert, d. h. werden nicht zur eigentlichen Datenspeicherung benutzt.
Gemäß einem weiteren Ausführungsbeispiel des erfindungsge­ mäßen Verfahrens werden auch die Referenz-Pages zur eigent­ lichen Datenspeicherung benutzt, allerdings erfordert dies zusätzliche Maßnahmen.
Es wird dabei davon ausgegangen, daß alle Nutzungs-Pages P11 bis P1k, P21 bis P2k, . . . und P(n-1)1 bis P(n-1)k ord­ nungsgemäß programmiert sind.
Vor der Programmierung der ersten Referenz-Page Pn1 wird bestimmt, ob in den programmierten Nutzungs-Pages P11 bis P(n-1)1 nicht-programmierte Speicherzellen entsprechend ei­ ner jeweiligen Speicherzelle der ersten Referenz-Page Pn1 vorliegen.
Falls ja, wird jeweils eine solche nicht-programmierte Speicherzelle für jede betreffende Speicherzelle der ersten Referenz-Page Pn1 festgelegt.
Sollte für irgendeine Speicherzelle der zu programmierenden ersten Referenz-Page Pn1 keine nicht-programmierte Spei­ cherzelle in einer der programmierten Pages P11 bis P(n-1)1 auffindbar sein, so stört dies nicht, denn sogar eine Über­ programmierung würde dann keinen Fehler bzw. Datenverlust hervorrufen.
Dann erfolgt das Programmieren der Speicherzellen der er­ sten Referenz-Page Pn1 und anschließend das Auslesen der festgelegten nicht-programmierten Speicherzellen der pro­ grammierten Nutzungs-Pages P11 bis P(n-1)1.
Das Feststellen, ob die programmierten Speicherzellen der Referenz-Page ein oder mehrere fehlprogrammierte Speicher­ zellen aufweisen, erfolgt analog wie bei der Programmierung der Nutzungs-Pages.
Auch bei dieser zweiten Ausführungsform erfolgt ein Löschen und Neuprogrammieren des Blocks 20b im Falle der Feststel­ lung, daß die programmierten Speicherzellen der ersten Re­ ferenz-Page Pn1 mindestens eine fehlprogrammierte Speicher­ zelle aufweisen.
Das Programmieren der weiteren Referenz-Pages Pn2 bis Pnk erfolgt in gleicher Weise.
Die obige Beschreibung der ersten und zweiten Ausführungs­ form ging davon aus, daß die Daten für den zu programmie­ renden Block 20b während der pageweisen Programmierung kom­ plett zur Verfügung stehen. Ist dies nicht der Fall, muß der aktuelle Inhalt einer Nutzungs-Page vor seiner Program­ mierung in einem Hilfsspeicher, z. B. einem RAM, oder in ei­ nem andern unbenutzten Unterblock desselben Blocks 20b oder eines anderen Blocks 20a, 20c oder 20d gesichert werden.
Die Ursache für eine überprogrammierte Speicherzelle liegt in zu vielen oder zu hohen Programmierimpulsen bei der Pro­ grammierung. Deshalb sieht eine weitere Ausführungsform des erfindungsgemäßen Verfahrens eine Änderung mindestens eines solchen Programmierparameters, insbesondere der erwähnten Programmierimpulsanzahl oder Programmierimpulshöhe, im Fal­ le der Feststellung vor, daß die programmierten Speicher­ zellen einer Nutzungs-Page oder einer programmierten Refe­ renz-Page mindestens eine überprogrammierte Speicherzelle aufweisen.
Obwohl die vorliegende Erfindung anhand eines bevorzugten Ausführungsbeispiels vorstehend beschrieben wurde, ist sie darauf nicht beschränkt, sondern auf vielfältige Weise mo­ difizierbar.
Insbesondere müssen die Unterblöcke und die Fehlprogrammie­ rungs-Untergruppe nicht in Matrix bzw. Vektorform vorlie­ gen, sondern andere Darstellungen, wie z. B. tensorielle oder analytische Darstellungen sind ebenfalls möglich.
Obwohl bei der beschriebenen ersten und zweiten Ausfüh­ rungsform in der letzten Zeile der Matrix sämtliche für sie erforderlichen Referenz-Pages festgelegt wurden, ist das nicht notwendig, sondern können beliebige Pages der dafür festgelegt werden, wobei im allgemeinen Fall dafür gesorgt werden muß, daß für jede Nutzungs-Zelle mindestens eine Re­ ferenz-Zelle vorhanden ist.
Schließlich ist die Erfindung nicht auf irgendeinen Spei­ chertyp oder Programmierfehlertyp beschränkt, sondern kann für beliebige sich kollektiv ausbreitende Programmierfehler in beliebigen Speichern angewendet werden.
BEZUGSZEICHENLISTE
10
Flash-Speicher
20
a bis
20
d Blöcke
P11 bis Pnk Pages
n = 1, . . ., 128 Laufindex Zeilen
k = 1, . . ., 8 Laufindex Spalten

Claims (11)

1. Verfahren zur Erkennung von fehlprogrammierten Spei­ cherzellen eines Speichers (10), und insbesondere zur Er­ kennung von überprogrammierten Speicherzellen eines Flash- Halbleiterspeichers, wobei der Speicher (10) eine Vielzahl von Speicherzellen aufweist, welche in eine Anzahl von als Einheit löschbaren Blöcken (20a-20d) unterteilbar sind, die wiederum in eine Gruppe von als Einheit programmierbaren Unterblöcken (P11-Pnk) unterteilbar sind, und wobei die Fehlprogrammierung einer Speicherzelle eines Unterblocks bewirkt, daß jeder Unterblock einer durch eine Fehlprogram­ mierungs-Untergruppe der Gruppe darstellbaren Anzahl von Unterblöcken eine entsprechende fehlprogrammierte Speicher­ zelle aufweist; mit folgenden Schritten:
  • a) Festlegen einer ersten Fehlprogrammierungs-Untergruppe (P11-Pn1) eines Blocks (20b);
  • b) Festlegen eines Referenz-Unterblocks (Pn1) und eines oder mehrerer Nutzungs-Unterblöcke (P11-P(n-1)1) in der festgelegten ersten Fehlprogrammierungs-Untergruppe (P11- Pn1);
  • c) Löschen der Speicherzellen des Referenz-Unterblocks (Pn1)
  • d) Programmieren der Speicherzellen eines ersten Nut­ zungs-Unterblocks (P11) mit Nutzungsdaten;
  • e) Auslesen der gelöschten Speicherzellen des Referenz- Unterblocks P(n1); und
  • f) Feststellen, ob die programmierten Speicherzellen des ersten Nutzungs-Unterblocks (P11) ein oder mehrere fehlpro­ grammierte Speicherzellen aufweisen, basierend auf dem Aus­ leseresultat.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Schritte d), e) und f) für alle weiteren Nutzungs- Unterblöcke (P21-P(n-1)1) der festgelegten ersten Fehlprogrammierungs-Untergruppe (P11-Pn1) wiederholt wer­ den.
3. Verfahren nach Anspruch 1 oder 2, gekennzeichnet durch die zusätzlichen Schritte:
  • a) Löschen und Neuprogrammieren des Blocks (20b) im Falle der Feststellung in Schritt f), daß die programmierten Speicherzellen irgendeines Nutzungs-Unterblocks mindestens eine fehlprogrammierte Speicherzelle aufweisen.
4. Verfahren nach Anspruch 3, gekennzeichnet durch die zusätzlichen Schritte:
  • a) Bestimmen, ob in den programmierten Nutzungs- Unterblöcken (P11-P(n-1)1) nicht-programmierte Speicherzel­ len entsprechend einer jeweiligen Speicherzelle des Refe­ renz-Unterblocks (Pn1) vorliegen; und
  • b) falls ja, Festlegen von jeweils einer nicht-program­ mierten Speicherzelle für jede betreffende Speicherzelle des Referenz-Unterblocks (Pn1).
5. Verfahren nach Anspruch 4, gekennzeichnet durch die zusätzlichen Schritte:
  • a) Programmieren der Speicherzellen des Referenz- Unterblocks (Pn1) mit Nutzungsdaten;
  • b) Auslesen der festgelegten nicht-programmierten Spei­ cherzellen; und
  • c) Feststellen, ob die programmierten Speicherzellen des Referenz-Unterblocks (Pn1) ein oder mehrere fehlprogram­ mierte Speicherzellen aufweisen, basierend auf dem Auslese­ resultat.
6. Verfahren nach Anspruch 5, gekennzeichnet durch die zusätzlichen Schritte:
  • a) Löschen und Neuprogrammieren des Blocks (20b) im Falle der Feststellung in Schritt 1), daß die programmierten Speicherzellen des Referenz-Unterblocks (Pn1) mindestens eine fehlprogrammierte Speicherzelle aufweisen.
7. Verfahren nach einem der vorhergehenden Ansprüche, ge­ kennzeichnet durch die zusätzlichen Schritte:
  • a) Festlegen aller weiteren Fehlprogrammierungs- Untergruppen (P12-Pn2, . . ., P1k-Pnk) des Blocks (20b) und der entsprechenden Referenz-Unterblöcke (Pn2, . . ., Pnk) und Nutzungs-Unterblöcke (P12-P(n-1)2, . . ., P1k-P(n-1)k), bis zumindest jeder Unterblock von einer Fehlprogrammierungs- Untergruppe erfaßt ist; und
  • b) entsprechendes Programmieren der Unterblöcke der wei­ teren Fehlprogrammierungs-Untergruppen (P12-Pn2, . . ., P1k- Pnk) mit Nutzungsdaten.
8. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, daß der Gruppe eine Matrix (P11-Pnk) zuge­ ordnet wird und daß die Reihen und Spalten der Matrix (P11- Pnk) so zugeordnet werden, daß die zu einem jeweiligen Un­ terblock gehörige Untergruppe eine Spalte der Matrix (P11- Pnk) ist.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß in der letzten Zeile der Matrix (P11-Pnk) sämtliche für sie erforderlichen Referenz-Unterblöcke (Pn1-Pnk) festgelegt werden.
10. Verfahren nach einem der vorhergehenden Ansprüche, da­ durch gekennzeichnet, daß der aktuelle Inhalt eines Nut­ zungs-Unterblocks vor seiner Programmierung in einem Hilfs­ speicher oder in einem anderen unbenutzten Unterblock des­ selben oder eines anderen Blocks gesichert wird.
11. Verfahren nach einem der vorhergehenden Ansprüche, ge­ kennzeichnet durch den zusätzlichen Schritt:
  • a) Ändern mindestens eines Programmierparameters, insbe­ sondere Programmierimpulsanzahl oder Programmierimpulshöhe, im Falle der Feststellung, daß die programmierten Speicher­ zellen eines Nutzungs-Unterblocks oder eines programmierten Referenz-Unterblocks mindestens eine fehlprogrammierte Speicherzelle aufweisen.
DE19731954A 1997-07-24 1997-07-24 Verfahren zur Erkennung von fehlprogrammierten Speicherzellen eines Speichers Expired - Fee Related DE19731954C2 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE19731954A DE19731954C2 (de) 1997-07-24 1997-07-24 Verfahren zur Erkennung von fehlprogrammierten Speicherzellen eines Speichers
GB9815642A GB2328536B (en) 1997-07-24 1998-07-17 Method of detecting incorrectly programmed memory cells of a memory
JP20631898A JPH1186578A (ja) 1997-07-24 1998-07-22 エラープログラミングされたメモリセルの識別方法
US09/120,859 US5898620A (en) 1997-07-24 1998-07-22 Method for detecting erroneously programmed memory cells in a memory
FR9809473A FR2767956B1 (fr) 1997-07-24 1998-07-24 Procede de detection de cellules de memoire a erreur de programme contenues dans une memoire

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19731954A DE19731954C2 (de) 1997-07-24 1997-07-24 Verfahren zur Erkennung von fehlprogrammierten Speicherzellen eines Speichers

Publications (2)

Publication Number Publication Date
DE19731954A1 DE19731954A1 (de) 1999-02-04
DE19731954C2 true DE19731954C2 (de) 2000-08-24

Family

ID=7836822

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19731954A Expired - Fee Related DE19731954C2 (de) 1997-07-24 1997-07-24 Verfahren zur Erkennung von fehlprogrammierten Speicherzellen eines Speichers

Country Status (5)

Country Link
US (1) US5898620A (de)
JP (1) JPH1186578A (de)
DE (1) DE19731954C2 (de)
FR (1) FR2767956B1 (de)
GB (1) GB2328536B (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148354A (en) 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
CN1088218C (zh) 1999-11-14 2002-07-24 邓国顺 用于数据处理系统的快闪电子式外存储方法及其装置
KR20120030818A (ko) * 2010-09-20 2012-03-29 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 소거 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4213731A1 (de) * 1992-02-21 1993-08-26 Samsung Electronics Co Ltd Nichtfluechtiges halbleiterspeicherbauelement und programmierverfahren hierfuer

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63175300A (ja) * 1987-01-16 1988-07-19 Hitachi Ltd 半導体集積回路装置
JPH0528788A (ja) * 1991-03-28 1993-02-05 Nec Corp 不揮発性メモリ装置
US5237535A (en) * 1991-10-09 1993-08-17 Intel Corporation Method of repairing overerased cells in a flash memory
US5606532A (en) * 1995-03-17 1997-02-25 Atmel Corporation EEPROM array with flash-like core
US5745410A (en) * 1995-11-17 1998-04-28 Macronix International Co., Ltd. Method and system for soft programming algorithm
US5822245A (en) * 1997-03-26 1998-10-13 Atmel Corporation Dual buffer flash memory architecture with multiple operating modes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4213731A1 (de) * 1992-02-21 1993-08-26 Samsung Electronics Co Ltd Nichtfluechtiges halbleiterspeicherbauelement und programmierverfahren hierfuer

Also Published As

Publication number Publication date
JPH1186578A (ja) 1999-03-30
GB2328536B (en) 1999-12-22
US5898620A (en) 1999-04-27
GB2328536A (en) 1999-02-24
FR2767956B1 (fr) 2006-07-28
FR2767956A1 (fr) 1999-03-05
GB9815642D0 (en) 1998-09-16
DE19731954A1 (de) 1999-02-04

Similar Documents

Publication Publication Date Title
DE112005001325B4 (de) Lösch-Verfahren für einen Multilevel-Bit-Flash-Speicher
DE102005037287B3 (de) Nicht-flüchtiger Halbleiterspeicher und Verfahren zum Bestimmen einer Lesespannung zum Auslesen von Daten aus derartigen Speichern
DE60213620T2 (de) Nichtflüchtiger speicher mit blocklöschung
DE102005045031B4 (de) Programmierverfahren und Programmierwiederaufnahmeverfahren für ein nichtflüchtiges Speicherbauelement
DE102006028209B4 (de) Verfahren zum Löschen von Speicherzellen einer Flash-Speichereinrichtung und Halbleiterspeichereinrichtung
DE102007031027B4 (de) Leseverfahren einer Speichervorrichtung
DE60318714T2 (de) System und verfahren zur steuerung einer löschspannung während des löschens mehrerer sektoren eines flash-speichers
DE102008003055A1 (de) Flash-Speichervorrichtung und Verfahren zum Betreiben derselben
DE112005000866T5 (de) Verfahren und Systeme zur Erreichung einer hohen Schreibleistung in Multibit-Speichervorrichtungen
DE102005057170B4 (de) Speichervorrichtung und Verfahren zum Betreiben einer Speichervorrichtung
DE102005049845A1 (de) Verfahren zum Testen einer Speicheranordnung, Speicheranordnung und Testeinheit zum Testen einer solchen
DE102005035077A1 (de) Löschverfahren für ein Flashspeicherbauelement
DE10026993A1 (de) Flash-Speicherbauelement mit einer neuen Redundanzansteuerschaltung
DE102004059411A1 (de) Flash-Speichervorrichtung und Verfahren zur Steuerung derselben
DE112008001151T5 (de) Mehrbitprogrammiervorrichtung und Verfahren zum Mehrbitprogrammieren
DE102010037064A1 (de) Nichtflüchtige Speichervorrichtung und -system sowie Verfahren des Programmierens einer nichtflüchtigen Speichervorrichtung
DE112004000703T5 (de) Verfahren zum Betrieb einer Doppelzellenspeichereinrichtung mit einer verbesserten Lesebereichsspanne über die Lebensdauer hinweg
DE69731255T2 (de) Verfahren zum Löschen eines nichtflüchtigen Speichers
DE112004002851B4 (de) Halbleitervorrichtung und Programmierverfahren
DE69627318T2 (de) Mehrpegelige nichtflüchtige Speicheranordnung
EP0100772B1 (de) Elektrisch programmierbare Speichermatrix
DE112019007183T5 (de) ReRAM-Speicherzelle mit Doppelwortleitungssteuerung
DE102006044853B4 (de) Speichereinrichtung und Verfahren, um Information in Speicherzellen zu verifizieren
DE102005052293B4 (de) Speicherschaltung und Verfahren zum Schreiben in einen Zielspeicherbereich
DE19731954C2 (de) Verfahren zur Erkennung von fehlprogrammierten Speicherzellen eines Speichers

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee