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 SpeicherInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims description 59
- 238000000034 method Methods 0.000 title claims description 13
- 230000009897 systematic effect Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 2
- 230000008859 change Effects 0.000 description 3
- 230000032683 aging Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3431—Circuits 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance 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.
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)
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)
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 |
-
1994
- 1994-12-20 FR FR9415348A patent/FR2728380A1/fr active Granted
-
1995
- 1995-12-14 DE DE69502169T patent/DE69502169T2/de not_active Expired - Fee Related
- 1995-12-14 EP EP95402820A patent/EP0718849B1/de not_active Expired - Lifetime
- 1995-12-18 US US08/573,897 patent/US5652720A/en not_active Expired - Lifetime
- 1995-12-20 JP JP35454995A patent/JP2807203B2/ja not_active Expired - Fee Related
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 |