DE69502169T2 - Verfahren zum Einschreiben von Daten in einen Speicher und entsprechender elektrisch-programmierbarer Speicher - Google Patents

Verfahren zum Einschreiben von Daten in einen Speicher und entsprechender elektrisch-programmierbarer Speicher

Info

Publication number
DE69502169T2
DE69502169T2 DE69502169T DE69502169T DE69502169T2 DE 69502169 T2 DE69502169 T2 DE 69502169T2 DE 69502169 T DE69502169 T DE 69502169T DE 69502169 T DE69502169 T DE 69502169T DE 69502169 T2 DE69502169 T2 DE 69502169T2
Authority
DE
Germany
Prior art keywords
word
memory
reading
cell
row
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
DE69502169T
Other languages
English (en)
Other versions
DE69502169D1 (de
Inventor
Maxence Aulas
Alessandro Brigati
Nicolas Demange
Marc Guedj
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 SA
Original Assignee
SGS Thomson Microelectronics SA
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 SGS Thomson Microelectronics SA filed Critical SGS Thomson Microelectronics SA
Publication of DE69502169D1 publication Critical patent/DE69502169D1/de
Application granted granted Critical
Publication of DE69502169T2 publication Critical patent/DE69502169T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data

Landscapes

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

Description

  • Die vorliegende Erfindung betrifft elektrisch programmier- und lösahbare nichtflüchtige Speicher.
  • Hier sind insbesondere EEPROM-Speicher angesprochen. Die Erfindung ist allerdings auf Speicher unterschiedlicher Technologien anwendbar, bei denen man es jedoch mit vergleichbaren problemen zu tun hat.
  • EEPROM-Speicher verwenden für die Aufzeichnung von Daten die Speicherung elektrischer Ladungen an einem offenen Transistorgitter. Der Transistor mit offenem Gitter kann durch Anlegen einer Lesespannung an ein Steuergitter leitend gemacht werden. Je nach der an dem offenen Gitter gespeicherten Ladungsmenge schwankt der Schwellenwert, bei dem der Transistor leitend wird, und diese Schwankung des Schwellenwerts ermöglicht es, zu bestimmen, ob der Transistor gelöscht oder programmiert ist.
  • Somit werden die Daten gelesen, indem das Steuergitter auf ein bestimmtes Referenzpotential gebracht wird. Dieses Referenzpotential wird im wesentlichen in der Mitte des Abstands zwischen der Schwellenspannung, die einen programmierten Transistor leitend macht, und der Schwellenspannung, die einen gelöschten Transistor leitend macht, gewählt. So wird der Transistor, wenn er programmiert ist, durch das Anlegen des Referenzpotentials an sein offenes Gitter leitend gemacht; wenn er gelöscht ist, wird er nicht leitend.
  • Die Elektrizitätsmengen, die an dem offenen Gitter gespeichert werden, sind dagegen schwer zu kontrollieren, und andererseits ist die Fortdauer der Speicherung dieser Ladungen schwer zu beherrschen. Die Leitungs-Schwellenspannungen verändern sich im Laufe der Zeit. Sie verändern sich insbesondere abhängig von der Anzahl von Schreib- oder Löschzyklen, die in dem Speicher durchgeführt wurden.
  • Es kann vorkommen, daß das Altern der in einer Zelle enthaltenen Information derart ist, daß der Leseschaltkreis (der das Referenzpotential verwendet) nicht länger eine ausreichend sichere Bestimmung der Frage zuläßt, ob eine Speicherzelle gelöscht oder programmiert ist. Dies ist in den Dokumenten US-A-5 365 486 und US-A-5 239 505 beschrieben. Es wird später noch auf die möglichen Ursachen dieses Alterungsvorgangs eingegangen.
  • Die Erfindung schlägt eine Lösung vor, die eine zu große Beschädigung der in einer Zelle gespeicherten Information verhindern soll. Diese Lösung besteht in der Verwendung einer Ursprungsfolge von Operationen bei einem Schreibschritt, bei dem ein Wort in den Speicher geschrieben wird. Diese Folge umfaßt eine systematische Überprüfung der in den anderen Wörtern einer Speicherzeile enthaltenen Daten zum Zeitpunkt des Schreibens eines in dieser Zeile enthaltenen Worts und ein systematisches Neuschreiben der Wörter dieser Zeile, bei denen eine Beschädigung der Daten auftritt. Man geht davon aus, daß eine Beschädigung der Informationen vorliegt, wenn mindestens eine Speicherzelle des Worts eine Information mit einem ungewöhnlich hohen Fehlerrisiko liefert. Man könnte die ganze Zeile neuschreiben, doch wird vorgezogen, nur das oder die zerstörte/n Wort/e neuzuschreiben. Außer der Speicherorganisation in Bytes nimmt man sich lieber ein Byte als ein ganzes Wort vor, wenn ein Wort in einer bestimmten Architektur mehrere Bytes umfaßt.
  • Genauer gesagt, wird nach der Erfindung ein Verfahren zum Schreiben von Daten in einen elektrisch programmierbaren Speicher vorgeschlagen, das dadurch gekennzeichnet ist, daß zum Schreiben eines Wortes in eine Gruppe von n Speicherzellen, die in einer Speicherzeile (n größer oder gleich 1) ausgewählt wurde, die folgende Folge von Operationen durchgeführt wird:
  • - man liest den Zustand von Speicherzellen der Zeile, indem man unterschiedliche Lesereferenzwerte verwendet;
  • - man überprüft die Übereinstimmung der an ein und derselben Zelle vorgenommenen Lesevorgänge mit unterschiedlichen Referenzwerten, und wenn man eine fehlende Übereinstimmung für zumindest eine Zelle eines gelesenen Wortes feststellt, schreibt man die Zelle des gelesenen Wortes dieser Zeile neu; und
  • - man schreibt das gewünschte Wort in die ausgewählte Zellengruppe.
  • Es gibt vorzugsweise drei Referenzwerte. Es können aber auch nur zwei Lesevorgänge vorgenommen werden, insbesondere, wenn man feststellt, daß eine Beschädigungsrichtung, bezogen auf eine andere, stärker ist. Dies ist vor allem der Fall, wenn man zunächst mit einem Hauptwert liest und man je nach dem gelesenen Zustand weiß, daß die Beschädigung nur auf eine einzige Art und Weise zustandegekommen sein kann.
  • Mit anderen Worten, einem Schreiben (bzw. allgemeiner einer Veränderung von Zellen, die ein Löschen oder eher ein von einer Programmierung der Zellen eines Wortes gefolgtes Löschen) geht ein Schritt zur Überprüfung des Zustands der anderen Zellen der Zeile voraus. Wenn alles in Ordnung ist (die Übereinstimmung der Ergebnisse der drei Lesevorgänge zeigt an, daß keine übermäßige Beschädigung des Zustands der Zellen der Zeile vorliegt), wird der Wortschreibschritt durchgeführt. Gibt es ein Problem der Beschädigung der Daten, kann man durch dreifaches Lesen, bezogen auf unterschiedliche Referenzpotentiale, das Problem, die Art und den Ort der Beschädigung feststellen (Gefahr des Verlusts von Daten auf einer gelöschten Zelle oder im Gegenteil auf einer programmierten Zelle); die fehlerhafte Zelle wird dann neu beschrieben, vorzugsweise ein ganzes Zellenbyte, in dem sich diese fehlerhafte Zelle befindet. Und das zu schreibende Wort wird vorzugsweise während dieses Neuschreibens geschrieben.
  • Durch diese Lösung der systematischen Überprüfung vor jedem Schreiben können die Gefahren des Verlusts von Daten und insbesondere solchen, die auf eine Beschädigung einer Zelle aufgrund von Schreibzyklen in den anderen Zellen der gleichen Zeile zurückzuführen sind, erkannt werden.
  • Im Fall eines Speichers mit einem Transistor mit offenem Gitter sind die Lesereferenzwerte Potentiale, die an das Steuergitter angelegt werden, und ist das Lesen in gewisser Weise ein Vergleich zwischen diesen Potentialen und einer Schwellenspannung, die den gelöschten oder programmierten Transistor leitend macht; natürlich können diese Referenzwerte je nach der für die Speicherzellen ver wendeten Technologie und Schaltungstechnik auch andere Referenzspannungen oder -ströme sein. Insbesondere können dies die an die Drain-Anschlüsse und Quellen der Transistoren mit offenem Gitter der Zellen angelegte Spannungen sein.
  • Zum Lesen wird ein Hauptreferenzwert, ein niedriger Hilfs-Referenzwert, der unter dem Hauptwert liegt, und ein hoher Hilfs-Referenzwert verwendet, der über dem Hauptwert liegt. Das Hauptreferenzpotential entspricht vorzugsweise im wesentlichen der Mitte des Abstands zwischen den Leitungsschwellenwerten einer gerade gelöschten Zelle und einer gerade programmierten Zelle.
  • Die Hilfs-Referenzwerte werden so gewählt, daß ein bestimmter Grad der Beschädigung von Daten festgestellt wird, wie nachstehend noch erläutert wird.
  • Außer dem so definierten Verfahren hat die Erfindung ferner einen elektrisch programmierbaren Speicher zum Gegenstand, der Vorrichtungen zur Durchführung dreier aufeinanderfolgender Vorgänge des Lesens der Zellen einer Zeile (eines Teils oder der ganzen Zeile) vor jedem Schreiben eines Wortes dieser Zeile umfaßt, wobei die drei Lesevorgänge unter Verwendung dreier unterschiedlicher Referenzpotentiale erfolgen.
  • Der Speicher, der in Form von Wortzeilen von mindestens einem Bit organisiert ist, kann genauer umfassen:
  • - einen Leseschaltkreis, der geeignet ist, die Wörter des Speichers mit drei unterschiedlichen Referenzwerten zu lesen;
  • - ein Register zur Speicherung von in einer Speicherzeile gelesenen Wörtern;
  • - einen Schreibbefehlgeber, der geeignet ist, folgende Schritte durchzuführen, wenn er einen Schreibbefehl für ein Wort an einer bestimmten Stelle einer Speicherzeile empfängt: Lesen des Zustands der Speicherzellen der Zeile unter Verwendung der drei verschiedenen Lesereferenzwerte, bei Bedarf systematisches Neuschreiben der in dem Register gespeicherten fehlerhaften Zellen einer Speicherzeile und Schreiben eines gewünschten Wortes an einer Wortstelle dieser Zeile, und
  • - Vorrichtungen zum Vergleich der Resultate des Lesens ein und derselben Zelle mit den drei Referenzwerten, wobei diese Vorrichtungen mit dem Befehlgeber verbunden sind, um den Befehl für ein systematisches Neuschreiben der Zelle zu geben, wenn eine fehlende Übereinstimmung für mindestens ein Wort festgestellt wird.
  • Natürlich müssen nicht alle Wörter der Zeile mit jedem der drei Referenzwerte gelesen werden, da, sobald eine fehlende Übereinstimmung entdeckt wird, die folgenden Wörter mit einem einzigen Referenzpotential gelesen werden können (Standardlesepotential).
  • Weitere Merkmale und Vorteile der Erfindung gehen aus der Lektüre der nachfolgenden detaillierten Beschreibung hervor, die sich auf die beiliegenden Zeichnungen bezieht, in denen:
  • - Fig. 1 eine Anordnung von Zellen eines EEPROM-Speichers darstellt;
  • - Fig. 2 typische Schwankungskurven der Leitungsschwellenspannungen einer gelöschten und einer programmierten Zelle zeigt, in Abhängigkeit von der Anzahl der Programmierungszyklen der anderen Zellen der Zeile; und
  • - Fig. 3 eine Gesamtstruktur eines Speichers nach der Erfindung zeigt.
  • Nachstehend wird auf einen der Gründe für Datenverluste in einer Speicherzelle eingegangen. Die Gefahr eines Verlusts erwächst aus dem Prinzip der Auswahl der Schreibund Löschpotentiale der Speicherzellen selbst in einer Matrizenorganisation eines Speichers: dadurch, daß die Zellen in Zeilen und Spalten eingerichtet sind, sind alle Steuergitter der Transistoren mit offenem Gitter einer Zeile miteinander verbunden; alle Quellen der Transistoren mit offenem Gitter sind miteinander verbunden, zumindest a priori. Die an einen zu programmierenden oder löschenden Transistor angelegten Potentiale müssen jedoch selektiv sein und dürfen keine Programmierung der anderen Transistoren der gleichen Zeile oder Spalte nach sich ziehen.
  • Eine klassische Rastereinteilung von EEPROM-Speicherzellen ist in Fig. 1 dargestellt. Jede Zelle umfaßt einen Transistor mit offenem Gitter TGF und einen Steuertransistor TC. Die Quelle des Transistors mit offenem Gitter ist mit einer Quellenzeile LS verbunden, die dem ganzen Raster gemeinsam sein kann. Sein Drain ist mit der Quelle des Steuertransistors und sein Steuergitter mit einer Zeile GC verbunden, die allen Transistoren ein und derselben Zeile gemein ist. Der Drain des Steuertransistors TC ist mit einer Bitzeile LB verbunden, die allen Transistoren ein und derselben Spalte gemein ist. Schließlich ist das Steuergitter des Steuertransistors TC mit einer Selektionszeile LC verbunden, die allen Transistoren ein und derselben Zeile gemein ist. In einem Beispiel sind bei der Erfindung die Quellenzeilen der Zellen ein und desselben Bytes mit einer gemeinsamen Byte-Quellenzeile LSO verbunden. Fig. 1 zeigt zwei Bytes. Die Bytes-Quellenzeilen LSO sind individuell mit einem Dekoder steuerbar.
  • Zum Löschen einer Zelle, die sich an der Kreuzung jeweils einer bestimmten Zeile und Spalte befindet, legt man eine Löschspannung von etwa 15 Volt an die Zeile GC an, in der sich die zu löschende Zelle befindet; gleichzeitig legt man 0 Volt an die Quellenzeile LS an, die der zu löschenden Zelle entspricht, und etwa 5 Volt an die Quellenzeilen der anderen Zellen. In der Praxis löscht oder sichert man, indem man an die Zeilen, die eine gemeinsame Byte-Quellenzeile LSO haben, diese Spannungen anlegt, alle Zellen des Bytes gleichzeitig. Das Löschen der Zelle ergibt sich aus dem hohen Potentialunterschied (15 Volt) zwischen der Quelle und dem Gitter des ausgewählten Transistors mit offenem Gitter, während die Transistoren der gleichen Zeile, die zu anderen Spalten oder Bytes gehören, zwischen ihrer Quelle und ihrem Gitter eine niedrigere Spannung erhalten (etwa 10 Volt), die zum Löschen nicht ausreicht.
  • Desgleichen umfaßt die Programmierung der an der Kreuzung einer Zeile und einer Spalte befindlichen Zelle das Anlegen einer Spannung von etwa -8 Volt an die Zeile GC (also an das Gitter der Transistoren mit offenem Gitter) und +5 Volt oder 0 Volt an den Drain, je nach dem, ob der Transistor für ein Beschreiben ausgewählt ist oder nicht. Der sich ergebende Potentialunterschied zwischen Gitter und Drain beträgt entweder 13 Volt bei der ausgewählten Zelle (was zu deren Beschreiben ausreicht) oder nur 8 Volt bei den übrigen Zellen der Zeile (was nicht ausreicht). Ein Wort aus mehreren Bits wird in eine Gruppe von (vorher gelöschten) Zellen geschrieben, indem 0 oder 5 Volt an die Bitzeilen der einzelnen Zellen der Gruppe angelegt werden, je nach Wert der Wortbits.
  • Die Dekoder des Stands der Technik können bereits das gleichzeitige Beschreiben unterschiedlicher Zellen einer Gruppe ermöglichen, indem an alle Bitzeilen des Wortes die geeigneten Spannungen angelegt werden.
  • Obwohl jedoch geeignete Schutzspannungen an die Transistoren angelegt werden, die weder gelöscht noch programmiert werden sollen, kommt es vor, daß diese Schutzspannungen während des Löschens oder Programmierens eines anderen Transistors den Programmierungszustand der Transistoren beeinflussen, an die sie angelegt sind.
  • Mit anderen Worten verändert das Löschen oder Program mieren eines Transistors geringfügig den Ladezustand des offenen Gitters der anderen Transistoren der gleichen Zeile.
  • Dies ist einer der Gründe dafür, daß mit dem Programmieren oder Löschen der anderen Zellen, und hauptsächlich derjenigen der gleichen Zeile, eine Veränderung der Schwellenspannung, die einen gelöschten oder programmierten Transistor leitend macht, festgestellt wird.
  • Die Kurven der Fig. 2 zeigen eine typische Schwankung der Schwellenspannungen, bei denen ein Transistor eines EEPROM-Speichers mit offenem Gitter leitend wird.
  • Die Entwicklung der Schwellenspannung VTeff (gelöschter Transistor) und der Schwellenspannung VTprg (programmierter Transistor) ist abhängig von der in dem Speicher durchgeführten Anzahl von Schreibzyklen darge stellt. Die Referenzspannung Vref ist diejenige, die bei einer Standardleseoperation an das Steuergitter des Transistors mit offenem Gitter angelegt wird. Man sieht, daß die Schwellenspannungen im Laufe der Zeit sich einander anzunähern suchen. Man kann sich also nicht sicher sein, daß sie sich der Referenzspannung nicht zu sehr annähern. Es findet eine Beschädigung der in der Zelle enthaltenen Daten statt.
  • Deshalb sieht die Erfindung eine systematische Datenuberprüfung durch Dreifachlesen in bezug auf unterschiedliche Referenzpotentiale und ein Neuschreiben der Daten vor, wenn die Ergebnisse des Dreifachlesens eine Verschlechterung der in dem offenen Gitter der Zellen enthaltenen Ladungen ergeben. Diese Überprüfung erfolgt für eine gegebene Zeile zum Zeitpunkt des Schreibens eines Wortes in diese Speicherzeile. Dies liegt daran, daß es der Vorgang des Schreibens eines Wortes ist, der eine Beschädigung der in den anderen Wörtern enthaltenen Information bewirkt. Infolgedessen ist es sinnvoll, eine Zeile jedesmal dann zu überprüfen, wenn man in dieser Zeile schreiben will. Die Zeilen, in denen man selten schreibt und insbesondere die, in denen man gerade nicht schreibt, brauchen nicht systematisch überprüft zu werden.
  • Die Überprüfung erstreckt sich auf die ganze Zeile. Das Neuschreiben erfolgt ebenso eventuell in der ganzen Zeile.
  • Die drei Lesevorgänge erfolgen in bezug auffolgende Potentiale:
  • - Hauptreferenzpotential Vref, vorzugsweise in der Mitte des Abstands zwischen dem Schwellenspannungswert VTprg eines gerade programmierten Transistors mit offenem Gitter und dem Schwellenspannungswert VTeff eines gerade gelöschten Transistors mit offenem Gitter;
  • - oberes Hilfs-Referenzpotential VRH, das über Vref, aber unter VTeff liegt; und
  • - unteres Hilfs-Referenzpotential VRB, das unter Vref, aber über VTprg liegt.
  • Wie man in Fig. 2 sieht, ergibt das Lesen einer nicht durch zahlreiche Schreibzyklen anderer Zellen des Speichers beeinträchtigten programmierten Zelle zum Zeitpunkt des Lesens unabhängig von dem verwendeten Lesepotential das gleiche Ergebnis: Vref, VRH oder VRB. Der Transistor wird immer leitend gemacht werden, da alle diese Lesespannungen über der Schwellenspannung VTprg liegen. Das gleiche gilt für eine gelöschte Zelle: die drei Lesevorgänge belassen den Transistor in blockierter Lage, wobei sie in jedem Fall den gelöschten Zustand anzeigen.
  • Nach zahlreichen Schreibzyklen anderer Zellen in der gleichen Speicherzeile sinkt die Schwellenspannung der betrachteten Zelle jedoch, wenn sie gelöscht wird, oder steigt an, wenn sie programmiert wird.
  • Erster Fall: die drei Lesevorgänge ergeben eine Übereinstimmung und zeigen, daß die Schwellenspannung über VRH liegt; daraus ist zu schließen, daß die Zelle gelöscht ist und die Daten noch nicht beschädigt sind.
  • Zweiter Fall: die drei Lesevorgänge zeigen keine Übereinstimmung und ergeben, daß die Schwellenspannung zwischen Vref und VRH liegt; daraus ist zu schließen, daß die Zelle gelöscht ist, eine Beeinträchtigung der Daten jedoch eingesetzt hat.
  • Dritter Fall: die drei Lesevorgänge weisen eine Übereinstimmung auf und zeigen, daß die Spannung unter VRB liegt. Daraus läßt sich schließen, daß die Zelle programmiert und diese Information nicht beschädigt ist.
  • Vierter Fall: die drei Lesevorgänge weisen keine Übereinstimmung auf und zeigen, daß die Schwellenspannung zwischen VRB und Vref liegt. Daraus läßt sich schließen, daß die Zelle programmiert und die Information beeinträchtigt ist.
  • In der Praxis umfaßt eine Schreiboperation eines Wortes mit n Bits (n größer oder gleich 1) in einer Gruppe von n Zellen einer Speicherzeile die folgenden Schritte:
  • - aufeinanderfolgendes, systematisches Lesen aller Wörter einer Zeile, indem man zumindest anfangs die drei Referenzpotentiale Vref, VRH, VRB verwendet; das Lesen bezogen auf das Potential Vref gibt den Hinweis auf die gespeicherte Information; das Lesen bezogen auf die anderen Referenzpotentiale VRH und VRB gibt, verglichen mit dem ersten Lesevorgang, einen Hinweis auf die Beschädigung (zweiter und vierter Fall von oben) oder Unversehrtheit der Information (erster und dritter Fall von oben);
  • - Speichern aller fehlerhaften Wörter in einem Register;
  • - wenn mindestens eine Zelle eines Worts eine beschädigte Information aufweist, systematisches Neuschreiben aller Zellen dieses Wortes, unter Verwendung des Inhalts des Registers;
  • - und Schreiben des gewünschten Worts mit n Bits. Das Schreiben des gewünschten Worts wird vorzugsweise gleichzeitig mit dem Neuschreiben des Worts oder der Wörter, das/die neuzuschreiben ist/sind, vorgenommen. Bei EEPROM- Speichern, bei denen das Schreiben durch Tunneleffekt durch Anlegen hoher Spannungen erfolgt, ist es nämlich kein Problem, diesen hohen Spannungen so viele Zeilen wie gewünscht auszusetzen, da kein Strom verbraucht wird.
  • Der Speicher der Erfindung ist in Fig. 3 dargestellt. Er umfaßt in klassischer Weise ein Raster MM von Zellen in Zeilen und Spalten, beispielsweise mit einem Zeilendekoder DL und einem Spaltendekoder DC, um jeweils eine Zeilenadresse AL bzw. eine Wortadressse AC in der Zeile zu empfangen. Der Spaltendekoder steuert die Bitzeilen und die Anschlüsse LSO.
  • Mit einem Leseschaltkreis CL können die Wörter mit drei verschiedenen Referenzpotentialen Vref, VRH, VRB gelesen werden. In der Speicherkonfiguration der Fig. 1 wird das Referenzpotential an die Zeile GO angelegt.
  • Eine Vergleichsschaltung am Ausgang des Leseschaltkreises ermöglicht das Speichern dreier aufeinanderfolgender Lesevorgänge und das Liefern einer Information über die Übereinstimmung oder fehlende Übereinstimmung der drei Lesevorgänge.
  • An den Ausgang des Leseschaltkreises ist ein Register REG angeschlossen, in dem wenn nicht alle, so doch zumindest die fehlerhaften Wörter einer Zeile gespeichert werden sollen, die mit dem Hauptreferenzpotential Vref gelesen wurden. Dieses Register kann diese Wörter in den Speicher für ein systematisches Neuschreiben rekonstruieren, wenn dies erforderlich wird. Und schließlich führt ein Schreibautomat oder Befehlgeber SEQ die Folge der notwendigen Operationen in dem Moment durch, in dem ein Schreibbefehl WR gegeben wird, damit das vorherige Lesen, die Überprüfung und das eventuelle Neuschreiben automatisch auf der Zeile erfolgen, die der Adresse des zu schreibenden Worts entspricht.
  • In Fig. 3 wurde noch eine Pufferschaltung BF darge stellt, die zwischen dem Ausgang des Leseschaltkreises und dem Speichereingang/-ausgang I/O angeordnet ist, um ein zu schreibendes Wort in dem Speicher während des Ablaufs der systematischen Überprüfungsoperationen nach der Erfindung zu speichern.
  • In Fig. 3 sind im übrigen die Schreibschaltkreise in dem Speicher nicht dargestellt. Man kann davon ausgehen, daß sie herkömmlicher Art sein und teilweise in den Leseschaltkreis CL integriert sein können, der beim Schreiben eines Worts, das von dem Eingang/Ausgang I/O oder dem Register REG kommt, als transparent angesehen werden muß.
  • In der Folge der Schreiboperation mit systematischem Lesen der ganzen Zeile kann man festlegen, daß der Abgleich zwischen dem normalen Lesen bei Vref und den beiden anderen Lesevorgängen bei VRH und VRB sofort in dem Moment des Lesens jedes Worts erfolgt, und zwar für alle Wörter der Speicherzeile. Die Existenz mindestens einer Beschädigung wird festgestellt, und diese Information wird an den Befehigeber geschickt. Wenn zwei Lesevorgänge für ein und dieselbe Zelle nicht übereinstimmen, gewinnt man Zeit, wenn man auf das dritte Lesen für diese Zelle oder eher sogar für das Byte verzichtet. Wenn eine Zelle in einem Wort eine beschädigte Information hat, liest man vorzugsweise die anderen Wörter oder Bytes in der gleichen Wortzeile dreimal, um letztendlich nur die neuzuschreiben, die fehlerhaft sind. Da es sich um ein zu schreibendes Wort handelt, dessen Schreiben die Prozedur dreier erwähnter Lesevorgänge rechtfertigt, verzichtet man im vorhinein auf das Lesen des Inhalts dieses Worts, da dieser Inhalt ja in jedem Fall geändert wird. Auf diese Weise gewinnt man Lesezeit.
  • Als Variante kann man auch festlegen, daß, sobald eine beschädigte Information festgestellt wurde, die Beschädigungsinformation gespeichert wird und das Lesen der folgenden Worte der ganzen Zeile nur mit Vref erfolgt, damit alle Wörter der Zeile im Register gespeichert werden. Wenn man nämlich einmal auf eine beschädigte Information gestoßen ist, ist die Suche nach weiteren unnötig, wenn dem Befehlgeber ein Befehl des systematischen Neuschreibens der ganzen Zeile gegeben werden soll. Die Ausführung dieses Befehls erfordert jedoch ein fortgesetztes Lesen und das Speichern aller Wörter in dem Register REG.
  • Was die Wahl der Werte VRH und VRB betrifft, kann man auf die typischen Entwicklungskurven der Schwellenspannungen von gelöschten oder programmierten Zellen zurückgreifen. Der Wert VRH muß nahe genug bei VTeff liegen, damit eine Beschädigung relativ schnell festgestellt wird. Das gleiche gilt für VRB und VTprg. Doch muß er trotzdem noch weit genug entfernt sein, damit verhindert wird, daß (in Abhängigkeit von der Streuung der Merkmale der Zellen) VRH über der Schwellenspannung VTeff einer gerade gelöschten Zelle liegt. Das gleiche gilt für VRB und VTprg.
  • Mit den Zeilen von 512 in 8er-Gruppen organisierten Zellen ergibt sich eine Anzahl von 64 Bytes. Das aufeinanderfolgende Dreifachlesen dieser 64 Bytes dauert etwa 32 Mikrosekunden (150 Nanosekunden Lesezeit pro Byte). Diese Dauer muß der eines Schreibzyklus angenähert werden (der in der Regel ein vorheriges Löschen und das eigentliche Schreiben umfaßt), die etwa 2 Millisekunden beträgt. Der Zeitaufwand des Verfahrens der Erfindung ist somit gering, wenn es zum Zeitpunkt eines Schreibens angewandt wird.

Claims (8)

1. Verfahren zum Schreiben von Daten in einen elektrisch programmierbaren Speicher, dadurch gekennzeichnet, daß zum Schreiben eines Wortes in eine Gruppe von Speicherzellen, die in einer Speicherzeile ausgewählt wurde, die folgende Folge von Schritten durchgeführt wird:
- man fragt den Zustand von Speicherzellen der Zeile ab, indem man unterschiedliche Lesereferenzwerte (Vref, VRH, VRB) verwendet;
- man überprüft die Übereinstimmung der an ein und derselben Zelle vorgenommenen Lesevorgänge mit unterschiedlichen Referenzwerten, und wenn man eine fehlende Übereinstimmung für zumindest eine Zelle eines gelesenen Wortes feststellt, beschreibt man die Zelle mit dem gelesenen Wort dieser Zeile; und
- man schreibt das gewünschte Wort in die ausgewählte Zellengruppe.
2. Schreibverfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Lesen des Zustands einer Speicherzelle einen Vergleich einer Lesespannung oder eines Lesestroms, der von der Zelle kommt, mit einer Referenzspannung oder einem Referenzstrom umfaßt, wobei der Referenzstrom und die Referenzspannung entweder einen Hauptwert (Vref) oder einen Hilfswert (VRH) haben, der über dem Hauptwert liegt, oder einen Hilfswert, der unter dem Hauptwert liegt.
3. Schreibverfahren nach Anspruch 2, dadurch gekennzeichnet, daß man ein Wort der Speicherzeile mit dem Hauptreferenzwert (Vref) liest, den Wert des Wortes in einem Register (REG) speichert, das geeignet ist, alle Wörter der Zeile aufzunehmen, man das gleiche Wort mit jedem der beiden Hilfswerte (VRH, VRB) liest, die Übereinstimmung der Resultate der drei Lesevorgänge prüft und eine Information über eine fehlende Übereinstimmung an einen Schreibbefehlgeber (SEQ) liefert, wobei das Neuschreiben des Wortes der Zeile nur erfolgt, wenn dieses Wort mit einem nichtübereinstimmenden Ergebnis gelesen wird.
4. Schreibverfahren nach Anspruch 3, dadurch gekenn zeichnet, daß, sobald der Schreibbefehlgeber (SEQ) ein Resultat fehlender Übereinstimmung erhalten hat, die folgenden Wörter der Zeile nur mit dem Hauptreferenzwert gelesen und in dem Register (REG) gespeichert werden, um in der Zeile neugeschrieben zu werden.
5. Schreibverfahren nach Anspruch 3, dadurch gekennzeichnet, daß, wenn man nach zwei Lesevorgängen eine fehlende Übereinstimmung feststellt, man auf den dritten Lesevorgang verzichtet.
6. Schreibverfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß man für das zu schreibende Wort auf eine Durchführung aller drei Lesevorgänge verzichtet.
7. Elektrisch programmierbarer Speicher, dadurch gekennzeichnet, daß er Vorrichtungen (SEQ) zur Durchführung von drei aufeinanderfolgenden Vorgängen zum Lesen der Speicherzellen einer Zeile (GC) vor jedem Schreiben eines Wortes in diese Zeile umfaßt, wobei die drei Lesevorgänge unter Verwendung von drei unterschiedlichen Referenzpotentialen (Vref, VRH, VRB) vorgenommen werden, sowie Vorrichtungen zum Neuschreiben eines Wortes der Zeile, wenn die drei Lesevorgänge bei mindestens einer Zelle nichtübereinstimmende Resultate ergeben.
8. Elektrisch programmierbarer Speicher, der ein Raster mit Zellen (MM) in Form von Wortzeilen umfaßt, dadurch gekennzeichnet, daß er umfaßt:
- einen Leseschaltkreis (CL), der geeignet ist, die Wörter des Speichers mit drei unterschiedlichen Referenzwerten (Vref, VRH, VRB) zu lesen;
- ein Register (REG) zum Speichern von in einer Speicherzeile gelesenen Wörtern;
- einen Schreibbefehlgeber (SEQ), der geeignet ist, folgende Schritte durchzuführen, wenn er einen Schreibbefehl für ein Wort in einer bestimmten Zelle einer Zeile des Speichers empfängt: Lesen des Zustands von Speicherzellen der Zeile unter Verwendung der drei verschiedenen Lesereferenzwerte (Vref, VRH, VRB), bei Bedarf systematisches Neuschreiben der in dem Register gespeicherten fehlerhaften Zellen einer Speicherzeile und Schreiben eines gewünschten Wortes in einer Wortzelle dieser Zeile,
- Vorrichtungen zum Vergleich der Resultate des Lesens von ein und derselben Zelle mit den drei Referenzwerten (Vref, VRH, VRB), wobei diese Vorrichtungen mit dem Befehlgeber verbunden sind, um den Befehl für ein systematisches Neuschreiben der Zelle zu geben, wenn bei mindestens einem Wort eine fehlende Übereinstimmung festgestellt wird.
DE69502169T 1994-12-20 1995-12-14 Verfahren zum Einschreiben von Daten in einen Speicher und entsprechender elektrisch-programmierbarer Speicher Expired - Fee Related DE69502169T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9415348A FR2728380A1 (fr) 1994-12-20 1994-12-20 Procede d'ecriture de donnees dans une memoire et memoire electriquement programmable correspondante

Publications (2)

Publication Number Publication Date
DE69502169D1 DE69502169D1 (de) 1998-05-28
DE69502169T2 true DE69502169T2 (de) 1998-08-13

Family

ID=9470008

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69502169T Expired - Fee Related DE69502169T2 (de) 1994-12-20 1995-12-14 Verfahren zum Einschreiben von Daten in einen Speicher und entsprechender elektrisch-programmierbarer Speicher

Country Status (5)

Country Link
US (1) US5652720A (de)
EP (1) EP0718849B1 (de)
JP (1) JP2807203B2 (de)
DE (1) DE69502169T2 (de)
FR (1) FR2728380A1 (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
FR2758645B1 (fr) * 1997-01-22 2001-12-14 Sgs Thomson Microelectronics Dispositif et procede de programmation d'une memoire
JPH10255487A (ja) * 1997-03-10 1998-09-25 Fujitsu Ltd 半導体メモリ装置
US5909449A (en) * 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
EP0967617A1 (de) * 1998-06-22 1999-12-29 Texas Instruments Incorporated Schwebegattermultibitspeicherzellenanordnung, Zellenprogrammierungsverfahren und Stabilisierung der programmierten Ladung
JP2001076496A (ja) * 1999-09-02 2001-03-23 Fujitsu Ltd 不揮発性メモリのデータ化け防止回路およびその方法
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
JP2002074999A (ja) * 2000-08-23 2002-03-15 Sharp Corp 不揮発性半導体記憶装置
DE60129294D1 (de) * 2001-02-19 2007-08-23 St Microelectronics Srl Verfahren zur Auffrischung der gespeicherten Daten in einem elektrisch lösch- und programmierbaren nichtflüchtigen Speicher
EP1271552A3 (de) * 2001-06-21 2005-08-17 STMicroelectronics S.r.l. Verfahren zur Auffrischung der Daten in einem elektrisch lösch- und programmierbaren nichtflüchtigen Speicher
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7334182B2 (en) * 2004-11-24 2008-02-19 Northrop Grumman Corporation Serial data preservation method
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7386655B2 (en) * 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7395404B2 (en) 2004-12-16 2008-07-01 Sandisk Corporation Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
US7447944B2 (en) * 2005-04-29 2008-11-04 Freescale Semiconductor, Inc. Predictive methods and apparatus for non-volatile memory
WO2006120310A1 (fr) * 2005-05-09 2006-11-16 Stmicroelectronics Sa Dispositif de protection d'une memoire contre les attaques par injection d'erreur
US7716538B2 (en) * 2006-09-27 2010-05-11 Sandisk Corporation Memory with cell population distribution assisted read margining
US7886204B2 (en) * 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
JP5078338B2 (ja) * 2006-12-12 2012-11-21 ルネサスエレクトロニクス株式会社 半導体記憶装置
US7477547B2 (en) * 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
US7573773B2 (en) * 2007-03-28 2009-08-11 Sandisk Corporation Flash memory with data refresh triggered by controlled scrub data reads
KR20080100750A (ko) * 2007-05-14 2008-11-19 삼성전자주식회사 데이터 읽기 장치 및 그 방법
US8060798B2 (en) * 2007-07-19 2011-11-15 Micron Technology, Inc. Refresh of non-volatile memory cells based on fatigue conditions
JP5475942B2 (ja) * 2007-07-30 2014-04-16 株式会社メガチップス 不揮発性半導体記憶装置
WO2009042298A1 (en) * 2007-09-26 2009-04-02 Rambus Inc. Flash memory refresh
KR101513714B1 (ko) * 2008-07-09 2015-04-21 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 방법
US7719876B2 (en) 2008-07-31 2010-05-18 Unity Semiconductor Corporation Preservation circuit and methods to maintain values representing data in one or more layers of memory
JP5271225B2 (ja) * 2009-09-28 2013-08-21 株式会社日立製作所 半導体装置、及び、記憶セルの記憶状態の補正方法
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US9208847B2 (en) 2013-10-30 2015-12-08 Taiwan Semiconductor Manufacturing Co., Ltd. Memory devices with improved refreshing operations
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
US9978456B2 (en) 2014-11-17 2018-05-22 Sandisk Technologies Llc Techniques for reducing read disturb in partially written blocks of non-volatile memory
US9349479B1 (en) 2014-11-18 2016-05-24 Sandisk Technologies Inc. Boundary word line operation in nonvolatile memory
US9449700B2 (en) 2015-02-13 2016-09-20 Sandisk Technologies Llc Boundary word line search and open block read methods with reduced read disturb
US9653154B2 (en) 2015-09-21 2017-05-16 Sandisk Technologies Llc Write abort detection for multi-state memories
TWI708253B (zh) * 2018-11-16 2020-10-21 力旺電子股份有限公司 非揮發性記憶體良率提升的設計暨測試方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4218764A (en) * 1978-10-03 1980-08-19 Matsushita Electric Industrial Co., Ltd. Non-volatile memory refresh control circuit
US4763305A (en) * 1985-11-27 1988-08-09 Motorola, Inc. Intelligent write in an EEPROM with data and erase check
JPS62175998A (ja) * 1986-01-29 1987-08-01 Hitachi Ltd Romのリフレツシユ方式
JPH07105146B2 (ja) * 1988-07-29 1995-11-13 三菱電機株式会社 不揮発性記憶装置
WO1990016069A1 (en) * 1989-06-12 1990-12-27 Kabushiki Kaisha Toshiba Semiconductor memory device
JPH03222196A (ja) * 1990-01-26 1991-10-01 Hitachi Ltd 不揮発性半導体記憶装置
US5200922A (en) * 1990-10-24 1993-04-06 Rao Kameswara K Redundancy circuit for high speed EPROM and flash memory devices
US5239505A (en) * 1990-12-28 1993-08-24 Intel Corporation Floating gate non-volatile memory with blocks and memory refresh
JPH05109292A (ja) * 1991-10-14 1993-04-30 Toshiba Corp 不揮発性半導体記憶装置
US5347489A (en) * 1992-04-21 1994-09-13 Intel Corporation Method and circuitry for preconditioning shorted rows in a nonvolatile semiconductor memory incorporating row redundancy
JPH065823A (ja) * 1992-06-19 1994-01-14 Toshiba Corp 不揮発性半導体記憶装置及びその使用方法
US5365486A (en) * 1992-12-16 1994-11-15 Texas Instruments Incorporated Method and circuitry for refreshing a flash electrically erasable, programmable read only memory
US5335198A (en) * 1993-05-06 1994-08-02 Advanced Micro Devices, Inc. Flash EEPROM array with high endurance

Also Published As

Publication number Publication date
JP2807203B2 (ja) 1998-10-08
JPH08235887A (ja) 1996-09-13
FR2728380B1 (de) 1997-02-07
US5652720A (en) 1997-07-29
DE69502169D1 (de) 1998-05-28
EP0718849B1 (de) 1998-04-22
EP0718849A1 (de) 1996-06-26
FR2728380A1 (fr) 1996-06-21

Similar Documents

Publication Publication Date Title
DE69502169T2 (de) Verfahren zum Einschreiben von Daten in einen Speicher und entsprechender elektrisch-programmierbarer Speicher
DE4207934C2 (de) Nichtflüchtige Halbleiterspeichervorrichtung und Programmierverfahren für eine nichtflüchtige Halbleiterspeichervorrichtung
DE102005045031B4 (de) Programmierverfahren und Programmierwiederaufnahmeverfahren für ein nichtflüchtiges Speicherbauelement
DE3637682C2 (de)
DE3875658T2 (de) Programmierbarer nur-lese-speicher mit mitteln zur entladung der bitleitung vor dem nachpruefen der programmierung.
DE60017838T2 (de) Nichtflüchtiger Speicher Typ NAND
DE69603742T2 (de) Überlöschungskorrektur für flash-speicher mit überlöschungsbegrenzung und vermeidung von löschprüffehlern
DE4035660C2 (de) Elektrisch programmierbare Speichereinrichtung und Verfahren zum Zugreifen/Programmieren von Speicherzellen
DE60132830T2 (de) Neuartiges verfahren und struktur zur effizienten datenverifizierungsoperation für nichtflüchtige speicher
DE10301458B4 (de) Speicherbaustein und zugehöriges Lösch-, Programmier- und Rückkopierverfahren
DE19983565B4 (de) Interner Auffrisch-Modus für eine Flash-Speicherzellenmatrix
DE69500143T2 (de) Schaltung zum Wählen von Redundanzspeicherbauelementen und diese enthaltende FLASH EEPROM
DE69524913T2 (de) Nichtflüchtige Halbleiter-Speicherzelle mit Korrekturmöglichkeit einer überschriebenen Zelle, und Korrekturverfahren
DE69417712T2 (de) Nichtflüchtige Halbleiter-Speichereinrichtung
DE69401291T2 (de) Integrierte Schaltung für Speicherkarte und Verfahren zum Abzählen der Einheiten in einer Speicherkarte
DE69330434T2 (de) Flash-eprom mit block-löschmarkierungen für überlöschschutz.
DE4309814A1 (de) Nichtflüchtige Halbleiterspeichervorrichtung
DE4110371A1 (de) Elektrisch loeschbarer programmierbarer festwertspeicher mit schwellenwertsteuereinheit fuer datenprogrammierung
DE102007041845A1 (de) Verfahren zum Betreiben eines integrierten Schaltkreises mit mindestens einer Speicherzelle
DE60015770T2 (de) Flashspeicheranordnung mit extern ausgelöster erfassung und heilung von fehlerhaften zellen
DE69321700T2 (de) Nicht-flüchtige Halbleiterspeicher
DE69731255T2 (de) Verfahren zum Löschen eines nichtflüchtigen Speichers
DE69819961T2 (de) Nichtflüchtige Halbleiterspeicheranordnung
DE69426818T2 (de) Fehlertolerantes Speichergerät, insbesondere des Typs "flash EEPROM"
DE69630228T2 (de) Flash-speichersystem mit reduzierten störungen und verfahren dazu

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee