DE69521882T2 - Verfahren und schaltung zur speicherung von diskreten ladungspaketen in einem einzigen speicherelement - Google Patents
Verfahren und schaltung zur speicherung von diskreten ladungspaketen in einem einzigen speicherelementInfo
- Publication number
- DE69521882T2 DE69521882T2 DE69521882T DE69521882T DE69521882T2 DE 69521882 T2 DE69521882 T2 DE 69521882T2 DE 69521882 T DE69521882 T DE 69521882T DE 69521882 T DE69521882 T DE 69521882T DE 69521882 T2 DE69521882 T2 DE 69521882T2
- Authority
- DE
- Germany
- Prior art keywords
- programming
- memory cell
- memory
- memory cells
- voltage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 58
- 230000015654 memory Effects 0.000 claims description 264
- 229920006395 saturated elastomer Polymers 0.000 claims description 20
- 238000012795 verification Methods 0.000 claims description 10
- 230000008878 coupling Effects 0.000 claims description 6
- 238000010168 coupling process Methods 0.000 claims description 6
- 238000005859 coupling reaction Methods 0.000 claims description 6
- 238000009966 trimming Methods 0.000 claims description 2
- 210000004027 cell Anatomy 0.000 description 236
- 238000010586 diagram Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 239000002784 hot electron Substances 0.000 description 5
- 238000002347 injection Methods 0.000 description 5
- 239000007924 injection Substances 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000005684 electric field Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000005689 Fowler Nordheim tunneling Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 239000003989 dielectric material Substances 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C27/00—Electric analogue stores, e.g. for storing instantaneous values
- G11C27/005—Electric analogue stores, e.g. for storing instantaneous values with non-volatile charge storage, e.g. on floating gate or MNOS
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/565—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using capacitive charge storage elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5621—Multilevel programming verification
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf das Programmieren von Speicherzellen. Insbesondere bezieht sich die vorliegende Erfindung auf ein Verfahren und eine Schaltung zum Programmieren von Flash-Speicherzellen, um diskrete Ladungsmengen zu speichern, die mehrere Datenbits in einer einzigen Speicherzelle darstellen.
- Nicht-flüchtige Halbleiter-Speicher nutzen verschiedenste Halbleiterspeicherzellen-Designs. Eine Speicherzellenart verwendet ein elektrisch isoliertes Floating-Gate zum Einfangen der Ladung. Eine Reihe von Mechanismen kann zum Einbringen der Ladung in das Floating-Gate und zum Herunterziehen der Ladung verwendet werden. Elektronentunnelung kann sowohl zum Injizieren der Ladung als auch zum Abziehen der Ladung von dem Floating-Gate einer Speicherzelle verwendet werden. Injektion heißer Elektronen ist ein weiterer Mechanismus zum Einbringen der Ladung in ein Floating-Gate einer Speicherzelle. Andere nicht-flüchtige Halbleiter-Speicher verwenden ein einfangendes Dielektrikum zum Einbringen oder Entfernen der Ladung zwischen dem Steuer-Gate einer Speicherzelle und dem Silizium.
- Ein attraktives Merkmal der nicht-flüchtigen Halbleiter- Speicher ist ihre Fähigkeit, bei abgeschalteter Spannungsversorgung die Daten zu halten. Ein weiteres attraktives Merkmal der nicht-flüchtigen Speicher ist ihre Fähigkeit, Analogdaten zu speichern. Dies gestattet die Speicherung mehrerer Datenbits in einer einzigen Speicherzelle, was manchmal Mehrzustandsspeicherung genannt wird.
- Die Mehrzustandsspeicherung wird in früheren Patenten erörtert. Das U.S.-Patent Nr. 5,043,940 von Harrari, "Flash EEPROM Memory Systems Having Mulstistate Storage Cells", ("Harrari") definiert vier Zustände anhand der Schwellenspannung Vt einer Speicherzelle mit geteiltem Kanal. Unter Verwendung dieser vier Zustände kann Harrari durch das Anlegen mehrerer Programmierimpulse an jede Speicherzelle zwei Datenbits pro Speicherzelle speichern.
- Das U.S.-Patent Nr. 5,163,021 von Mehrota et al.,, "Multi-State EEPROM Read and Write Circuits and Techniques", ("Mehrota") beschreibt das Mehrebenen-Programmieren von Speicherzellen mit geteiltem Kanal ausführlicher. Wie Harrari definiert Mehrota vier Zustände anhand der Schwellenspannung der Speicherzellen. Mehrota beschreibt das parallele Programmieren mehrerer Speicherzellen. Ein Programmierimpuls wird gleichzeitig an eine Gruppe von Zellen angelegt. Jede Zelle wird danach programmiermäßig überprüft, und die Zellen, die richtig programmiert sind, werden vor weiterer Programmierung geschützt. Die Programmierimpulse werden angelegt, bis alle Speicherzellen in der Gruppe richtig programmiert sind. Mehrota offenbart die Verwendung derselben Spannungspegel für jeden nachfolgenden Programmierimpuls.
- Die internationale Veröffentlichung Nr. WO 92/12519 beschreibt eine Source-Folger-Speicherzelle zum Aufzeichnen und zur Wiedergabe analoger Signale. Der Aufzeichnungsprozeß besteht aus einem multiiterativen Programmierverfahren, bei dem eine Serie von ungenauen Impulsen eine Zelle in den ungefähr gewünschten Wert programmiert, und bei dem eine Serie von feinen Impulsen, die sich auf den letzten ungenauen Impuls beziehen, der zum Programmieren der entsprechenden Zelle verwendet wurde, die Zelle in feinen Inkrementen auf den gewünschten endgültigen Programmierpegel programmiert.
- Ein Ziel der vorliegenden Erfindung ist die Bereitstellung eines Verfahrens und einer Schaltung zum Speichern diskreter Ladungsmengen in einer Speicherzelle innerhalb eines angemessenen Zeitraums.
- Ein weiteres Ziel der vorliegenden Erfindung ist die Bereitstellung eines Verfahrens und einer Schaltung zum schnellen Programmieren der Speicherzellen, um die Speicherung mehrerer Datenbits in einer einzigen Speicherzelle zu ermöglichen.
- Ein weiteres Ziel der vorliegenden Erfindung ist die Bereitstellung eines Verfahrens zum genauen Programmieren der Speicherzellen in die ausgewählten Zustände, die Muster mehrerer Datenbits darstellen.
- Die Ziele der Erfindung werden durch ein Verfahren und eine Schaltung zum Programmieren einer Speicherzelle gemäß der Ansprüche 1 und 14 erfüllt. Die auf der Speicherzelle eingestellte Ladungsmenge wird durch die Erhöhung des Spannungspegels eines Programmierimpulses erhöht, der an die Speicherzelle angelegt wird.
- Die Ziele, Merkmale und Vorteile der vorliegenden Erfindung werden aus den beigefügten Zeichnungen und der nachstehenden ausführlichen Beschreibung klar.
- Die vorliegende Erfindung wird beispielhaft und in keinem einschränkenden Sinne anhand der beigefügten Zeichnungen veranschaulicht, in denen gleiche Bezugszeichen ähnliche Elemente anzeigen und in denen:
- Fig. 1 eine Blockdarstellung eines Personalcomputers ist.
- Fig. 2 eine Blockdarstellung eines Speicherbauelements ist.
- Fig. 3 eine schematische Darstellung eines Teils eines Speicher-Arrays ist.
- Fig. 4A vier Zustände veranschaulicht, die von verschiedenen Schwellenspannungen einer nicht-flüchtigen Speicherzelle definiert werden.
- Fig. 4B vier Zustände veranschaulicht, die von verschiedenen Drain-Strömen einer nicht-flüchtigen Speicherzelle definiert werden. '
- Fig. 5 ein Ablaufdiagramm eines Verfahrens zum parallelen Programmieren mehrerer Speicherzellen ist.
- Fig. 6 in graphischer Form die Schwellenspannung über der Zeit für verschiedene Gate-Spannungen zeigt.
- Fig. 7 in graphischer Form die Schwellenspannung über der Zeit für verschiedene Drain-Spannungen zeigt.
- Fig. 8 in graphischer, Form die Schwellenspannung über der Zeit für verschiedene Drain-Spannungen zeigt.
- Fig. 9 die Anzahl der zum Programmieren einer Gruppe von Speicherzellen benötigten Programmierimpulse über der Zustandsbreite veranschaulicht.
- Fig. 10 ein Ablaufdiagramm eines Verfahrens zum individuellen Programmieren von Speicherzellen ist, um verschiedene Ladungsmengen zu speichern.
- Fig. 11 eine Blockdarstellung einer Schaltung zum Lesen und Überprüfen der Programmierung einer mehrere Datenbits speichernden Speicherzelle ist.
- In der Form einer Blockdarstellung veranschaulicht Fig. 1 ein Computersystem. Das Computersystem umfaßt eine zentrale Verarbeitungseinheit (CPU) und einen Monitor zur visuellen Anzeige von Informationen an den Benutzer des Computers. Durch eine Tastatur kann der Benutzer des Computers Daten in die CPU eingeben. Durch das Bewegen der Maus kann der Benutzer des Computers einen auf dem Monitor angezeigten Zeiger bewegen. Der Speicher speichert die von der CPU verwendeten Daten. Ein nicht-flüchtiges Halbleiter- Speicherbauelement 20 ist eine Art eines Speichers, auf den die CPU zugreift. Der nicht-flüchtige Halbleiter-Speicher 20 hat den Verteil, daß er bei abgeschalteter Spannungsversorgung die Daten behält.
- In der Form einer Blockdarstellung veranschaulicht Fig. 2 das nicht-flüchtige Speicherbauelement 20, das auf einem einzigen Halbleitersubstrat hergestellt ist. Unter Verwendung nicht-flüchtiger Speicherzellen in einem Speicher-Array 22 speichert das Speicherbauelement 20 Daten. Die Schwellenspannungen der nicht-flüchtigen Speicherzellen können während der Programmierung geändert werden, wodurch die Speicherung analoger Spannungspegel erlaubt wird. Das Speicher- Array 22 kann jede Art von Speicherzellen mit programmierbaren Schwellenspannungen, wie z. B. Speicherzellen mit einfangenden Dielektrika oder Floating-Gates, enthalten. Bei einem Ausführungsbeispiel besteht das Speicher-Array 22 aus Flash-Speicherzellen.
- Verfahren zum Programmieren von Speicherzellen, um diskrete Ladungsmengen zu speichern, werden nachstehend ausführlicher beschrieben. Kurz beschrieben, verwenden diese Verfahren mehrere Programmierimpulse, um verschiedene diskrete Ladungsmengen in den Speicherzellen zu bringen. Die in den jeweiligen Speicherzellen eingestellte Ladungsmenge wird durch das Ändern des Gate- oder Wortleitungs-Spannungspegels während der Programmierimpulse geändert. Durch das Einstellen verschiedener diskreter Ladungsmengen in jeder Speicherzelle wird die Speicherung mehrerer Datenbits in einer einzigen Speicherzelle ermöglicht. Diese Verfahren können sowohl bei nicht-flüchtigen Speicherzellen, wie z. B. denen in Flash-EEPROMs, als auch bei flüchtigen Speicherzellen, wie z. B. denen in dynamischen Speichern mit wahlfreiem Zugriff (DRAMs), verwendet werden.
- Bevor das Programmieren detailliert erörtert wird, sei das Speicherbauelement 20, bei dem die Verfahren Anwendung finden, erneut betrachtet. VPP ist die Lösch-/Programmier- Spannungsversorgung für das Speicherbauelement 20. Fehlt ein Hochspannungspegel auf den Speicherzellen, wirkt das Speicherbauelement 20 wie ein Nur-Lese-Speicher. Die Daten, die bei einer von Adreßleitungen 24 angezeigten Adresse gespeichert sind, werden aus dem Speicher-Array 22 gelesen und über Datenleitungen 26 an den externen Benutzer ausgegeben.
- In Abhängigkeit von den an die Adreßleitungen 24 angelegten Adreßsignalen wählt der X-Decodierer 28 die richtige Zeile in dem Speicher-Array 22 aus. Aus diesem Grund wird der X-Decodierer 28 auch Zeilendecodierer 28 genannt. Entsprechend wählt der Y-Decodierer 30 in Abhängigkeit von den Adreßsignalen von den Adreßleitungen 24 die richtige Spalte in dem Speicher-Array 22 aus. Wegen seiner Funktion wird der Y-Decodierer 30 auch Spaltendecodierer 30 genannt.
- Die von dem Speicher-Array 22 ausgegebenen Daten werden mit dem Y-Decodierer 30 gekoppelt, der die Daten an eine Leseschaltung 32 weiterleitet. Unter Verwendung eines Referenzzellen-Arrays 34 bestimmt die Leseschaltung 32 den Zustand der ihr gebotenen Daten. Die Leseschaltung 32 leitet danach die Ergebnisse ihrer Analyse zurück zum Y-Decodierer 30.
- Bei einer Ausführungsform des Speicherbauelements 20 steuert die Steuermaschine 36 das Löschen und Programmieren des Speicher-Arrays 22. Die Steuermaschine 36 steuert außerdem das Programmieren der Mehrpegel-Zellen, das nachfolgend ausführlich beschrieben wird. Bei einer Ausführungsform enthält die Steuermaschine 36 einen Prozessor, der von einem Mikrocode gesteuert wird, der in dem Speicher auf dem Chip gespeichert ist. Die genaue Implementierung der Steuermaschine 36 beeinflußt jedoch nicht das beschriebene Verfahren zum Programmieren von Mehrpegel-Zellen.
- Die Steuermaschine 36 verwaltet das Speicher-Array 22 über die Steuerung des Zeilendecodierers 28, des Spaltendecodierers 30, der Leseschaltung 32, des Referenzzellen- Arrays 34 und des Spannungsschalters 38. Der Spannungsschalter 38 steuert die verschiedenen zum Lesen, Programmieren und Löschen des Speicher-Arrays 22 benötigten Spannungspegel. VCC ist die Energieversorgung für das Bauelement, und VSS ist die Masse. VPP ist die Programmier-/Löschspannung, die hoch sein muß, um die in dem Speicher-Array 22 gespeicherten Daten zu programmieren oder zu löschen. VPP kann extern geliefert oder intern erzeugt werden.
- Benutzerbefehle zum Lesen, Löschen und Programmieren werden über die Befehlsschnittstelle 40 der Steuermaschine 36 mitgeteilt. Der externe Benutzer erteilt der Befehlsschnittstelle 40 Befehle über drei Steuerpins: Ausgabe- Freigabe OEB, Schreib-Freigabe WEB und Chip-Freigabe CEB.
- Das Programmieren der Speicherzellen gemäß den vorliegenden Verfahren erfordert ein gewisses Verständnis des Aufbaus des Speicher-Arrays 22. Fig. 3 veranschaulicht ausführlich einen Teil 22a des Speicher-Arrays 22. Teil 22a enthält sechs einzelne Feldeffekttransistor-Floating-Gate- Speicherzellen 50, 52, 54, 56, 58 und 60. Dieser Speicherzellentyp ist ausschließlich zu Veranschaulichungszwecken gezeigt. Unter Verwendung der vorliegenden Verfahren können auch andere Speicherzellentypen in mehrere Zustände programmiert werden. Sowohl Mehrtransistor-Speicherzellen als auch Speicherzellen, die zum Ändern der Schwellenspannung der Speicherzellen ein einfangendes Dielektrikum verwenden, können unter Verwendung der vorliegenden Verfahren programmiert werden. Darüber hinaus könnten flüchtige Speicherzellen, wie z. B. die in DRAMs verwendeten, unter Verwendung der vorliegenden Verfahren programmiert werden.
- Die Speicherzellen 50, 52, 54, 56, 58 und 60 werden an den Schnittpunkten der Wortleitungen 62 und 64 sowie der Bitleitungen 66, 68 und 70 gebildet. Die Wortleitungen 62 und 64 werden auch X-Leitungen oder Zeilenleitungen genannt, weil jede Wortleitung mit dem X-Decodierer 28 gekoppelt ist. Jede Wortleitung ist außerdem mit allen Speicherzellen-Gates in einer gegebenen Zeile gekoppelt. Die Wortleitung 62 ist beispielsweise mit den Gates der Speicherzellen 50, 52 und 54 gekoppelt. Die Bitleitungen 66, 68 und 70 werden auch Y- Leitungen oder Spaltenleitungen genannt, weil sie mit dem Y- Decodierer 30 gekoppelt sind. Jede Bitleitung ist mit allen Speicherzellen-Drain-Elektroden in einer gegebenen Spalte gekoppelt. Die Bitleitung 68 ist beispielsweise mit den Drain-Elektroden der Speicherzellen 52 und 58 gekoppelt. Die Sources aller Speicherzellen in einer Zeile sind mit einer lokalen Source-Leitung gekoppelt. Die Sources der Speicherzellen 50, 52 und 54 sind mit der lokalen Source-Leitung 72 gekoppelt, während die Sources der Speicherzellen 56, 58 und 60 mit der lokalen Source-Leitung 74 gekoppelt sind. Die lokalen Source-Leitungen 72 und 74 sind ferner mit der gemeinsamen Source-Leitung 76 gekoppelt, die mit dem Spannungsschalter 38 gekoppelt ist. Die gemeinsame Source-Leitung 76 stellt somit einen Mechanismus zum Anlegen der Spannungen an die Sources aller Speicherzellen in einem Block des Speicher-Arrays 28 bereit.
- Zusammen stellen die Bitleitungen, die Wortleitungen und die gemeinsame Source-Leitung ein Mittel zum Anlegen der zum Programmieren, Löschen und Lesen der Speicherzellen in dem Array 22 erforderlichen Spannungen an die Speicherzellen bereit. Die Speicherzellen 50, 52, 54, 56, 58 und 60 werden mittels der Fowler-Nordheim-Tunnelung dadurch gelöscht, daß über die Wortleitungen 62 und 64 ungefähr 0 V an die Speicherzellen-Gates angelegt wird, den Bitleitungen 66, 68 und 70 ermöglicht wird, auf schwebendem Potential zu sein, und die Speicherzellen-Sources über die gemeinsame Source- Leitung 76 auf ca. 12 V gelegt werden. Die Speicherzellen 50, 52, 54, 56, 58 und 60 können außerdem durch negatives Gate-Löschen gelöscht werden, indem -10 V an die Speicherzellen-Gates angelegt, die Drain-Elektroden auf schwebendem Potential belassen und die Sources mit 5 V gekoppelt werden. In den Flash-Speicher-Arrays wird ein kompletter Block von Speicherzellen auf einmal gelöscht. Die Speicherzellen werden gelesen, d. h. ihre Zustände werden erfaßt, indem 1-7 V an die Wortleitungen 62 und 64 und ca. 1 V an die Bitleitungen 66, 68 und 70 angelegt werden, und indem die gemeinsame Source-Leitung 76 auf schwebendem Potential belassen wird. Die Speicherzellen 50, 52, 54, 56, 58 und 60 werden mittels der Injektion heißer Elektronen programmiert, indem eine Source-Spannung VS an die gemeinsame Source-Leitung 76 angelegt wird, eine Drain-Spannung VD an die Bitleitungen 66, 68 und 70 angelegt wird, so daß der Spannungspegel der Bitleitung 5-7 V höher als der der Source-Leitung 76 ist, d. h. VDS auf 5-7 V gesetzt wird, und indem ein Spannungspegel an die Wortleitungen 62 und 64 angelegt wird, der ausreicht, um die von den zu programmierenden Speicherzellen gespeicherte Ladungsmenge zu ändern. Andere Spannungspegel können ebenfalls zum Programmieren der Speicherzellen verwendet werden. "Programmierimpuls" bezieht sich in dieser Beschreibung auf die Kombination von Spannungen, die an die Bitleitung, die Source-Leitung und die Wortleitung einer Speicherzelle angelegt werden, um ihre Schwellenspannung durch das Ändernder in der Speicherzelle gespeicherten Ladungsmenge zu verändern.
- Durch die Koordinierung der Steuerung der Wortleitungs- und Bitleitungsspannungen wird eine Gruppe von Speicherzellen zum Programmieren und Lesen ausgewählt. Zu Veranschaulichungszwecken sei angenommen, daß die Speicherzelle 50 programmiert werden soll. Die Gate-Spannung für die Speicherzelle 50 wird durch die Wortleitung 62, die ferner dieselbe Spannung an das Gate der Speicherzellen 52 und 54 anlegt, auf den geeigneten Pegel gebracht und dort gehalten. Die lokale Source-Leitung 72 legt dieselbe Spannung an die Sources aller drei Speicherzellen an. Die Speicherzelle 50 wird programmiert durch das Anlegen der Spannung auf ihre Drain-Elektrode, indem ein Spannungsimpuls auf der Bitleitung 66 angelegt wird, während die Bitleitungen 68 und 70 nahe der Masse gehalten werden, und die Wortleitung 62 auf einer Spannung gehalten wird, die ausreichend hoch ist, daß sich ein gewünschtes elektrisches Feld über das Gate-Oxid der Speicherzelle 50 entwickelt. In dieser Weise wird nur die Speicherzelle 50 programmiert. Die Dauer eines Programmierimpulses in dem Speicher-Array 22 wird von der Dauer der hohen Spannung auf der ausgewählten Bitleitung, d. h. von der Drain-Spannung, gesteuert.
- Wie es oben angemerkt wurde, verändert das Programmieren und Löschen einer Speicherzelle deren Schwellenspannung sowie den von der Speicherzelle während des Lesens geleiteten Drain-Strom. Die möglichen Schwellenspannungen in einer nicht-flüchtigen Speicherzelle schwanken zwischen einer unteren Grenze von ca. 1,5 V und einer oberen Grenze von ca. 710 V. Die untere Grenze des Programmierbereiches, oder des Programmierfensters, wird von Löschzeiten und Gate-Störspannungen erzwungen. Die obere Grenze des Programmierfensters wird von Drain-Störspannungen sowie dem Temperaturbehandlungs-Ladungsverlust erzwungen. Das Programmierfenster erlaubt, daß nicht-flüchtige Speicherzellen mehr als ein Datenbit speichern.
- Bei Speicherzellen, die mehr als ein Datenbit speichern, gibt es keine Eins-zu-Eins-Übereinstimmung zwischen der Anzahl von Speicherzellen in dem Array 22 und der Anzahl von Datenbits, die von dem Array 22 gespeichert werden. In dieser Beschreibung werden die Ausdrücke "Speicherzelle" und "Bit" daher nicht synonym verwendet. "Speicherzelle" bezieht sich auf ein physikalisches Bauelement, wie z. B. den in Fig. 3 veranschaulichten Transistor, und "Bit(s)" auf die in einer Speicherzelle gespeicherten logischen Daten.
- Die Anzahl von in einer nicht-flüchtigen Speicherzelle gespeicherten Bits, B, steht in Beziehung zu der Anzahl von Zuständen, S, gemäß der Gleichung S = 2B, wobei B nicht auf ganzzahlige Werte beschränkt ist. Die Anzahl von Zuständen, die in einer nicht-flüchtigen Speicherzelle gespeichert werden könnten, wird in der Praxis von der Fähigkeit, Zustände einzustellen und später zwischen diesen Zuständen zu unterscheiden, beschränkt. Falls die Leseschaltung den Unterschied eines einzigen Elektrons erfassen kann, könnten die Zustände daher anhand eines einzigen Elektrons definiert werden. Die Zustände können anhand der Schwellenspannungspegel der Speicherzelle oder der Drain-Ströme definiert werden. Die Beziehung der Speicherzellen-Schwellenspannung Vt zu dem Drain-Strom ID wird durch den folgenden Ausdruck annähernd klar:
- ID Gm · (VG - Vt) für VD > VG - Vt
- Gm ist die Steilheit (Transkonduktanz) der Speicherzelle,
- VG ist die Gate-Spannung der Speicherzelle,
- VD ist die Drain-Spannung der Speicherzelle und
- Vt ist die Schwellenspannung der Speicherzelle.
- Bei Speicherzellen, die mehrere Datenbits speichern, stellt jedes mögliche Bitmuster einen Zustand dar. Die Zelle speichert praktisch die Basis-S-Daten, wobei 5 die Anzahl von Zuständen ist, die die Zelle speichern kann. Das Bitmuster ergibt sich aus dem Decodieren der Zustandsdaten einer oder mehrerer Zellen. Bei Speicherzellen, die zwei Datenbits speichern, gibt es z. B. vier Bitmuster: 00, 01, 10 und 11. Jedes dieser Bitmuster wird von einem Zustand dargestellt. Der durch ein bestimmtes Bitmuster dargestellte einzelne Zustand hängt von dem verwendeten Codierungstyp ab. Die Gray-Codierung und die Binärcodierung sind zwei gewöhnlich verwendete Codierungstypen. Der verwendete Codierungstyp beeinflußt nicht die vorliegenden Programmierverfahren.
- Die Zustände können auf verschiedenste Weise definiert werden. Sie können in Form eines Bereichs von Schwellenspannungen Vt, eines Bereichs von Drain-Strömen ID oder eines Ladungsbereichs definiert werden.
- Exakte-Einstellungs-Algorithmen programmieren jede nicht-flüchtige Speicherzelle in einen Zielzustand, der von einem Bereich von Schwellenspannungen Vt, von Drain-Strömen ID oder einer Ladungsmenge definiert wird. Fig. 4A und 4B veranschaulichen zwei Definitionen von vier Zuständen für eine nicht-flüchtige Speicherzelle, die 2 Datenbits speichert. Gemäß der Definition der Fig. 4A belegen die Zustände 0, 1, 2 und 3 je einen Bereich der Schwellenspannung Vt. Der Zustand, der die niedrigste Schwellenspannung darstellt, Zustand 0, wird durch das Löschen der Speicherzelle erreicht. Die übrigen drei Zustände, Zustand 1-3, werden durch das Programmieren der Speicherzelle erreicht. Fig. 4B definiert vier Zustände in Form von Drain-Strombereichen. Der Zustand, der die höchste Drain-Strommenge darstellt, Zustand 0, wird durch das Löschen der Speicherzelle erreicht. Die übrigen drei Zustände, Zustand 1-3, werden durch Programmierung erreicht.
- Wie auch immer die Zustände definiert sind, die Designer können, wenn sie die Zustände exakt einstellen, wählen, ob sie mehrere Speicherzellen parallel, d. h. gleichzeitig, oder jede Speicherzelle einzeln programmieren möchten. Beim pazallelen Programmieren mehrerer Zellen ungeachtet ihrer Zielzustände müssen mehrere Programmierimpulse verwendet werden, um Überprogrammierzustände ("overshooting states") zu vermeiden. Im Gegensatz hierzu kann ein einziger Programmierimpuls verwendet werden, falls die Speicherzellen unabhängig voneinander programmiert werden. Beide Exakte-Einstellungs-Verfahren berücksichtigen die Programmierschwankungen, die von den meisten Schwankungsquellen verursacht werden, z. B. Schwankung der VPP, Temperaturschwankungen und Schwankungen von Zelle zu Zelle. Die Exakte-Einstellungs- Programmierverfahren sind außerdem robust.
- In Form eines Ablaufdiagramms veranschaulicht Fig. 5 ein Verfahren zum parallelen Programmieren einer Anzahl von Speicherzellen in mehrere Zustände, die ein Muster von Bits darstellen. Das veranschaulichte Verfahren programmiert die Speicherzellen so nahe wie möglich in die vorher definierten Zustände ungeachtet, ob diese Zustände anhand des Drain- Stroms oder der Schwellenspannung definiert sind. Die nachfolgende Erörterung setzt sich mit dem Programmieren von vier, zwei Datenbits zugeordneten Zuständen auseinander, aber das Verfahren kann gleichermaßen zur Speicherung einer beliebigen Anzahl von Datenbits unter Verwendung einer einzigen Speicherzelle verwendet werden.
- Kurz beschrieben, werden gemäß dem vorliegenden Verfahren alle Speicherzellen in einer ausgewählten Gruppe ungeachtet ihrer Zielzustände, d. h. ungeachtet der auf jede Speicherzelle aufzubringenden Ladungsmenge, gleichzeitig programmiert. Ein erster Programmierimpuls wird an alle Speicherzellen in der ausgewählten Gruppe angelegt. Danach wird die Programmierung jeder Speicherzelle in der ausgewählten Gruppe verifiziert, um zu bestimmen, ob sie in ihren Zielzustand programmiert worden ist. Die Programmierverifizierung bezieht sich in dieser Beschreibung auf den Prozeß des Bestimmens, ob eine definierte Ladungsmenge auf eine Speicherzelle aufgebracht worden ist oder nicht. Keine weiteren Programmierimpulse werden an die Speicherzellen angelegt, die die Programmierung bestätigen. Falls irgendeine Speicherzelle in der ausgewählten Gruppe die Programmierung nicht bestätigt, wird die Wortleitungsspannung des Programmierimpulses erhöht. Ein weiterer Programmierimpuls wird daraufhin an diejenigen Speicherzellen angelegt, die nicht bestätigten. Der Prozeß des Programmierens, Verifizierens und Erhöhens der Gate-Spannung geht weiter, bis alle Speicherzellen bestätigt oder eine maximale Gate-Spannung erreicht worden ist.
- Das Programmierverfahren der Fig. 5 erhöht die Wortleitungsspannung jedes nachfolgenden Programmierimpulses stufenweise, statt die Gesamtprogrammierdauer jedes nachfolgenden Programmierimpulses zu erhöhen. Das Grundprinzip für diese Programmierstrategie entspringt aus den Programmiercharakteristika der nicht-flüchtigen Speicherzellen. Fig. 6 zeigt in graphischer Form die Speicherzellen-Schwellenspannung Vt über dem Logarithmus der Programmierzeit für fünf verschiedene Gate-Spannungen während des Programmierens. Die Gate-Spannungen sind relevant als eine Anzeige der relativen Stärke des elektrischen Felds über dem Gate-Oxid der Speicherzelle. Das Erhöhen der Gate-Spannung erhöht die Stärke dieses elektrischen Felds während des Programmierens. Die Kurve 120 veranschaulicht Vt über der Zeit bei einer Gate- Spannung von 8 V. Die Kurve 122 veranschaulicht Vt über der Zeit bei einer Gate-Spannung von 9 V. Gate-Spannungen von 10 V bzw. 11 V ergeben die Kurven 124 bzw. 126. Alle vier Kurven 120, 122, 124 und 126 zeigen, daß die Schwellenspannung sich in dem linearen Bereich links von der Kurve 119 exponential erhöht. (Der lineare Bereich wird so genannt, weil die Schwellenspannung sich bei einer graphischen Darstellung in einer linearen Zeitskala in diesem Bereich linear mit der Schwehllenspannung erhöht.) In dem Bereich links von der Linie 119 erhöht sich die Schwellenspannung somit bei einer kleinen Erhöhung der Dauer des Programmierimpulses stark. Dieses Verhalten ist typisch für nicht-flüchtige Speicherzellen, die zum Programmieren eine Injektion heißer Elektronen verwenden. Die präzise Steuerung der Vt ist schwierig, wenn eine Speicherzelle in dem linearen Bereich programmiert wird. Das exakte Programmieren einer Speicherzelle ist einfacher in dem gesättigten Bereich der Kurven 120, 122, 124 und 126, der sich rechts von der Kurve 119 befindet, da die Vt sich in dem gesättigten Bereich langsamer, fast logarithmisch, mit der Zeit erhöht. Unabhängig davon, ob sie ein einfangendes Dielektrikum oder ein Floating-Gate enthalten, und ungeachtet des verwendeten Programmiermechanismus zeigen alle nicht-flüchtigen Zellen, wenn sie in dem gesättigten Bereich programmiert werden, die logarithmische Erhöhung der Vt mit der Erhöhung der Dauer des Programmierimpulses.
- Das Programmieren von Speicherzellen während des Betriebs in dem gesättigten Bereich ist langsam, falls die Gate-Spannung konstant gehalten, und die Gesamtprogrammierimpulsdauer erhöht wird. Die Kurve 120 zeigt z. B., daß ein Programmierimpuls von einer Dauer von fast 10 ps benötigt wird, um die Schwellenspannung einer Speicherzelle von 3 V auf 4 V zu erhöhen. Um die Schwellenspannung von 4 V auf 5 V zu erhöhen, wäre ein weiterer Programmierimpuls von 100 us erforderlich. Im Gegensatz hierzu offenbaren die Kurven 120, 122, 124 und 126 eine Erhöhung der Vt um fast 1 V bei jeder Volt-Erhöhung der Gate-Spannung, wenn die Programmierung in dem gesättigten Bereich stattfindet. Die Speicherzellen können daher, wenn die Gate-Spannung jedes nachfolgenden Programmierimpulses erhöht wird, schneller programmiert werden, als wenn die Gate-Spannung konstant gehalten und die Gesamtprogrammierdauer erhöht wird.
- Die präzise Steuerung der Programmierung der Speicherzellen mittels der Injektion heißer Elektronen wird durch das Auswählen einer genügend langen ersten Impulsbreite, d. h. Impulsdauer, erreicht, mit der sicherzustellen ist, daß die Programmierung in dem gesättigten Bereich der Vt-Zeit- Kurve stattfindet. Wegen der Prozeßschwankungen variiert die Dauer einer genügend langen ersten Impulsbreite von Bauelement zu Bauelement. Trotz dieser Schwankung kann dieselbe erste Impulsbreite zum Programmieren aller Bauelemente in dem gesättigten Bereich verwendet werden, falls jedes Bauelement nach der Herstellung in geeigneter Weise abgeglichen wird. Ein gut funktionierendes Abgleich-Verfahren ist das Abgleichen des während der Programmierung verwendeten Drain- Vorspannungspegels. Fig. 7 veranschaulicht Vt-Zeit-Kurven bei verschiedenen Drain-Vorspannungspegeln für eine effektive Kanallänge. Andere effektive Kanallängen haben andere Kurvenscharen. Diese Kurven zeigen, daß das Programmieren in dem gesättigten Bereich für eine ausgewählte erste Impulsbreite einfach eine Frage des Auswählens einer angemessenen Drain-Vorspannung ist, d. h. eines Drain-Vorspannungspegels, der die ausgewählte Zeit dazu zwingt, die Programmierung in dem gesättigten Bereich stattfinden zu lassen.
- Die durch die Impact-Ionisierung induzierte bipolare Einschaltspannung VBii beschränkt den Drain-Vorspannungshöchstpegel, der während des Programmierens mittels der Injektion heißer Elektronen verwendet werden kann Das Einschalten des parasitäten bipolaren Transistors erhöht die Ladungsspeicherung und erschwert die präzise Einstellung von Zuständen. Fig. 8 veranschaulicht den Einfluß der VBii auf die Schwellenspannung. Bei Drain-Vorspannungspegeln unter VBii beeinflußt eine Erhöhung der VD nur den linearen Bereich der Vt-Zeit-Kurve, so wie es durch die Verschmelzung der Kurve VD2 mit der Kurve für VD1 gezeigt ist. Die Schwellenspannungshöchstpegel in dem gesättigten Bereich werden nicht von der Erhöhung der Drain-Vorspannungspegel beeinflußt. Dies ist nicht mehr der Fall, wenn die Drain-Vorspannung höher als VBii ist. Die aus einem Programmierimpuls einer konstanten Dauer bei VD3 abgeleitete Vt wird mit VD3 > VBii größer als die unter Verwendung der VD1 und VD2 benutzte Vt. Nahe BBii kann z. B. ein Unterschied der VD von 0,1 V zu einem Unterschied der Vt von O,2-0,25 V führen.
- Die effektive Kanallänge, Leff, beeinflußt den Wert der VBii. So wie die effektive Kanallänge sich erhöht, erhöht sich die VBii. Die effektive Kanallänge beeinflußt außerdem die Drain-Spannung, bei der der lineare Bereich in den gesättigten Bereich übergeht. Die effektive Kanallänge variiert infolge des Herstellungsverfahrens. Die effektive Kanallänge, die Spannung VBii und das Erfordernis, innerhalb einer vernünftigen Zeit zu programmieren, definieren daher einen Bereich von Drain-Vorspannungspegeln, die für das Programmieren im gesättigten Bereich geeignet sind. Die Bauelemente können nach der Herstellung zum Programmieren innerhalb dieses gesättigten Bereichs für eine gegebene Mindestimpulsdauer abgeglichen werden. Bei einer Ausführungsform des Flash-Speicherbauelements 20 liegen die akzeptablen Werte der Drain-Vorspannung zwischen 5 V und 6,6 V. Das Auswählen eines angemessenen Drain-Vorspannungspegels in diesem Bereich erfordert nach der Herstellung die Charakterisierung der effektiven Kanallängen in einem Array während des Sortierens.
- Unter Berücksichtigung dieser Erläuterung des Programmierverhaltens der Speicherzelle wird jetzt das in Fig. 5 veranschaulichte Programmierverfahren ausführlich beschrieben. Die Steuermaschine 36 beginnt vorzugsweise mit dem Löschen des Speicher-Arrays 22, weil der Zustand 0 durch das Löschen der Speicherzelle ungeachtet der von jeder Speicherzelle gespeicherten Anzahl von Bits erreicht wird. In den Flash-Speicherzellen werden alle Speicherzellen in einem Block gleichzeitig gelöscht. Anders ausgedrückt, können die Flash-Speicherzellen nicht einzeln gelöscht werden. Es ist jedoch möglich, die Speicherzellen ahne vorheriges Löschen zu programmieren. Danach verzweigt die Steuermaschine 36 zum Schritt 92.
- Durch Initialisierung von Programmiervariablen in Schritt 92 bereitet die Steuermaschine 36 das Programmieren von Speicherzellen in andere Zustände als Zustand 0 vor. Die Steuermaschine 36 setzt die Gate-Spannungen der Speicherzellen auf einen ersten Programmierpegel. Der gewählte erste Programmier-Gate-Spannungspegel hängt von der von jeder Speicherzelle zu speichernden Anzahl von Bits sowie von dem Erfordernis, ein Überprogrammieren des dem Zustand 0 benachbarten Zustands zu vermeiden, ab. Die Source-Spannung wird auf einen ersten Wert, wie z. B. Masse, gesetzt. Während des Schrittes 92 setzt die Steuermaschine 36 ferner die erste Programmierimpulsdauer derart, daß Programmierung im gesättigten Bereich eintritt. Der während des Programmierens zu verwendende Drain-Vorspannungspegel ist vorher abgeglichen worden, um sicherzustellen, daß die Programmierung bei der gegebenen ersten Impulsdauer in dem gesättigten Bereich stattfinden wird. Bei einem Ausführungsbeispiel beträgt der erste Programmierimpuls z. B. 4 us. Danach verzweigt die Steuermaschine 36 zum Schritt 94.
- Ungeachtet des Zustands, in den die Speicherzellen zu programmieren sind, wird unter der Steuerung der Steuermaschine 36 während des Schritts 94 ein Programmierimpuls an alle Speicherzellen innerhalb der ausgewählten Gruppe angelegt. Die Steuermaschine 36 führt dies dadurch aus, daß sie die Drain-Spannungen VD der ausgewählten Gruppe von Speicherzellen auf einen solchen Spannungspegel bringt, daß VDS = 5-7 V ist. Die Speicherzellen, die nicht programmiert werden, werden durch das Koppeln ihrer Bitleitungen mit dem Source-Spannungspegel VS vor dem Programmieren geschützt, indem VDS = 0. Bei einem Ausführungsbeispiel beträgt die VS 0-3 V.
- Die Maximalgröße der ausgewählten Gruppe von Speicherzellen, die auf einmal programmiert werden, hängt von mehreren Faktoren ab und hat keinen Einfluß auf das vorliegende Programmierverfahren.
- Indem die Bitleitungen der ausgewählten Speicherzellen auf VS gebracht werden, d. h. indem VDS auf 0 V gesetzt wird, hält die Steuermaschine 36 das Programmieren der ausgewählten Speicherzellen bei dem Schritt 96 an. Dadurch ist zu erkennen, daß die Zeitdauer des Programmierimpulses von der Länge der Zeit, in der die VDS 5-7 V beträgt, gesteuert wird.
- Um den Einfluß der Schritte 92-96 zu veranschaulichen, wird angenommen, daß die ausgewählte Gruppe von Speicherzellen die Speicherzellen 50, 52 und. 54 der Fig. 3 umfaßt. Es wird ferner angenommen, daß die Speicherzelle 50 in den Zustand 0, und die Speicherzelle 52 in den Zustand 1 zu programmieren ist, sowie daß der Zielzustand der Speicherzelle 54 der Zustand 3 ist. Bei dem Schritt 92 wird die gemeinsame Source-Leitung 76 mit der VS gekoppelt. Die VS kann zwischen 0 V und 3 V schwanken. Die Wortleitung 62 wird mit dem ersten Gate-Spannungspegel gekoppelt, weil sie mit der ausgewählten Gruppe von Speicherzellen, d. h. mit den Zellen 50, 52 und 54, gekoppelt ist. Im Gegensatz hierzu wird die Wortleitung 64 mit der VS gekoppelt. Die Bitleitungen 66, 68 und 70 sind während des Schrittes 92 mit der VS gekoppelt, wodurch das Programmieren der Speicherzellen 50, 52 und 54 verhindert wird, weil VDS 0 V beträgt. Bei dem Schritt 94 bringt die Steuermaschine 36 die Bitleitungen 68 und 70 auf 5-7 V über VS und programmiert zeitgleich die Speicherzellen 52 und 54. Wenn der für den ersten Programmierimpuls gewählte Zeitraum verstrichen ist, beendet die Steuermaschine 36 bei dem Schritt 96 den Programmierimpuls dadurch, daß sie die mit dem Spannungspegel gekoppelten Bitleitungen 68 und 70 auf VS bringt.
- Mittels der Programmierverifizierung bestimmt die Steuermaschine 36 den Erfolg der Programmieroperation bei dem Schritt 98. Falls eine Speicherzelle ihren Zielzustand erreicht hat, gilt die Zelle als geprüft. Umgekehrt gilt eine Speicherzelle, die noch nicht in ihren Zielzustand programmiert worden ist (wie es vom Drain-Stromangezeigt ist), als nicht bestätigt oder als eine versagte Verifizierung. Während der Verifizierung wird jede Speicherzelle mit einer einen Zielzustand darstellenden Referenz verglichen. Die Speicherzelle 52 wird z. B. mit einer den Zustand 1 darstellenden Referenz und die Speicherzelle 54 mit einer den Zustand 3 darstellenden Referenz verglichen. Die Speicherzelle 52 ist bestätigt, falls ihre Schwellenspannung, ihr Drain- Strom oder ihre Ladungsmenge den Zustand 1 darstellt, während die Speicherzelle 54 bestätigt ist, falls ihre Schwellenspannung, ihr Drain-Strom oder ihre Ladungsmenge den Zustand 3 darstellt. Im Ergebnis des Schrittes 98 empfängt die Steuermaschine 36 eine Gruppe von. Verifiziere-Signalen, ein Signal für jede bestätigte Speicherzelle.
- Wenn die Verifizierung abgeschlossen ist, geht die Steuermaschine 36 vom Schritt 98 in Schritt 100 über. Beim Schritt 100 sperrt die Steuermaschine 36 das weitere Programmieren der verifizierten Speicherzellen. Die Steuermaschine 36 tut dies durch das Koppeln der Bitleitungen, die den verifizierten Speicherzellen zugeordnet sind, mit VS vor und während irgendwelcher nachfolgender Programmierimpulse. Andere Mechanismen zum Sperren des weiteren Programmierens der verifizierten Zellen werden für Array-Architekturen, die sich von der des Speicher-Arrays 22 unterscheiden, geeignet sein. Der jeweilige Mechanismus zum Sperren des weiteren Programmierens der Zellen, die ihren Zielzustand erreicht haben, beeinflußt nicht das vorliegende Programmierverfahren. Hiernach geht die Steuermaschine 36 in den Schritt 102 über.
- Bei dem Schritt 102 bestimmt die Steuermaschine 36, ob weitere Programmierimpulse an das Speicher-Array 22 angelegt werden sollten. Diese Bestimmung basiert auf einer Prüfung der Verifizierungssignale. Falls irgendeins dieser Signale anzeigt, daß eine Speicherzelle noch nicht in ihren Zielzustand programmiert worden ist, sollte ein weiterer Programmierimpuls an das Speicher-Array 22 angelegt werden. Die Steuermaschine 36 reagiert mit dem Übergehen in den Schritt 104.
- Bei dem Schritt 104 erhöht die Steuermaschine 36 die an den Speicherzellen-Gates angelegte Spannung um eine gegegebene Menge, die "Schrittgröße" genannt werden kann. Die Wahl der Schrittgröße hängt von der ersten Gate-Spannung, der Zustandsbreite sowie dem Erfordernis, Überprogrammierzustände zu vermeiden, ab. In dieser Beschreibung bezieht sich die "Zustandsbreite" auf den Bereich von Drain-Strömen, Schwellenspannungen oder der einen Zustand definierenden Ladungsmenge. Größere Zustandsbreiten erlauben größere Schrittgrößen und erfordern daher weniger Programmierimpulse, um die Speicherzellen in die verschiedenen Zustände zu programmieren. Zur Veranschaulichung kann Fig. 9 betrachtet werden, die in graphischer Form die Anzahl von Programmierimpulsen, die zum parallelen Programmieren einer Gruppe von Speicherzellen benötigt werden, über der Zustandsbreite zeigt. Fig. 9 zeigt, daß die Anzahl von Programmierimpulsen, die zum Programmieren einer Gruppe von Mehrpegel-Speicherzellen benötigt werden, abnimmt, wenn sich die Zustandsbreite erhöht.
- Beim Schritt 104 erhöht die Steuermaschine 36 auf jeden Fall die Gate-Spannung um eine Schrittgröße bis auf eine Gate-Höchstspannung, Vmax. Die Gate-Höchstspannung ist so niedrig, daß die Speicherzelle nicht beschädigt wird, und variiert in Abhängigkeit von dem Prozeß, nach dem die Speicherzellen hergestellt worden sind, und der sich ergebenden Stärke des elektrischen Feldes über dem Gate-Oxid der Speicherzelle. Danach geht die Steuermaschine 36 zum Schritt 166 über.
- Beim Schritt 106 setzt die Steuermaschine 36 die Zeitdauer des zweiten sowie aller nachfolgenden Programmierimpulse. Gegenüber der Zeitdauer des ersten Programmierimpulses reduziert die Steuermaschine 36 die Zeitdauer aller nachfolgenden Impulse, um die von der erhöhten Gesamtprogrammierzeit verursachte Änderung der Schwellenspannung und des Drain-Stroms zu reduzieren, die zu Überprogrammierzuständen führen würde. Die Erhöhung der Schwellenspannung von einem Programmierimpuls zum nächsten ist die Folge einer Erhöhung der Gate-Spannung und einer Erhöhung der Gesamtprogrammierdauer. Zu Veranschaulichungszwecken wird angenommen, daß ein erster Programmierimpuls von 1 us bei einer Gate- Spannung von 8 V an eine Speicherzelle angelegt wird, und daß ein zweiter Programmierimpuls angelegt wird, der 1 us dauert und eine Gate-Spannung von. 8,2 V hat. Gemäß Fig. 6 beträgt die Schwellenspannung 3,6 V nach dem ersten Programmierimpuls. Falls 1 us lang bei einer Gate-Spannung von 8 V weiterprogrammiert wird, würde die Vt sich um ca. 0,25 V erhöhen, und die zusätzliche 0,2 V auf das Gate würde nur die Vt um 0,2 V erhöhen. Nach dem zweiten Programmierimpuls wäre die Vt somit um insgesamt 0,45 V auf 4,05 V erhöht worden.
- Die Beziehung zwischen der Programmierimpulsdauer aller nachfolgenden Impulse und der Dauer des ersten Impulses kann mathematisch in folgender Weise ausgedrückt werden:
- ts = ti/M,
- wobei ts die Zeitdauer aller Impulse nach dem ersten Impuls angibt, ti die Zeitdauer des ersten Programmierimpulses angibt, und M das Verhältnis der Dauer der nachfolgenden Programmierimpulse zu der Dauer des ersten Programmierimpulses ist.
- Das Auswählen des Verhältnisses M ist eine Funktion der Zustandsbreite und der Schrittgröße der Gate-Spannung. Eine große Zustandsbreite erlaubt Im allgemeinen eine große Schrittgröße, was zu einem kleinen Verhältnis M führt. Entsprechend erfordert eine kleine Zustandsbreite eine kleine Schrittgröße und ein größeres Verhältnis M. Anders ausgedrückt, muß die Zeitdauer jedes nachfolgenden Impulses nicht sehr reduziert werden, um Überprogrammierzustände zu vermeiden, wenn eine große Zustandsbreite und eine große Schrittgröße verwendet werden. Falls jedoch die Zustandsbreite und die Schrittgröße der Gate-Spannung klein sind, sollte die Zeitdauer der nachfolgenden Programmierimpulse schnell reduziert werden, um Überprogrammierzustände zu vermeiden.
- Bei einem weiteren Ausführungsbeispiel kann die Steuermaschine 36 beim Schritt 106 die Dauer jedes nachfolgenden Programmierimpulses gegenüber der Dauer des unmittelbar vorhergehenden Programmierimpulses reduzieren.
- Wenn die Steuermaschine 36 die Programmierimpulsdauer der nachfolgenden Programmierimpulse reduziert und gesetzt hat, geht die Steuermaschine 36 in Schritt 108 über, bei dem die Steuermaschine 36 den während der Programmierung verwendeten Gate-Spannungspegel überprüft. Falls die Gate-Spannung einen Höchstwert VMAX erreicht hat, und falls nicht jede Speicherzelle in der ausgewählten Gruppe verifiziert worden ist, geht die Steuermaschine 36 zum Schritt 110 über.
- Falls die Gate-Höchstspannung nach nicht erreicht worden ist, geht die Steuermaschine 36 vom Schritt 108 in Schritt 94 über, um einen weiteren Programmierimpuls an die ausgewählte Gruppe anzulegen.
- Bis eine Höchstanzahl von Impulsen angelegt worden ist, wechselt die Steuermaschine 36 zwischen den Schritten 94- 110 und legt Programmierimpulse an, bis alle Speicherzellen in ihre Zielzustände programmiert worden sind. Wenn dies eintritt, geht die Steuermaschine 36 vom Schritt 102 in den Schritt 112 über, und die Programmierung ist abgeschlossen.
- Wenn die Gate-Spannung ihren Höchstwert VMAX erreicht hat, geht die Steuermaschine 36 vom 108 zu Schritt 110 über. Der Schritt 110 erlaubt der Steuermaschine 36, mit dem Anlegen von Programmierimpulsen fortzufahren, selbst nachdem die Gate-Spannung ihren Höchstwert erreicht hat, bis eine Höchstanzahl von Impulsen angelegt worden ist. Die Höchstanzahl ist eine Design-Wahl. Wenn die Höchstanzahl von Impulsen ohne erfolgreiches Programmieren der ausgewählten Gruppe angelegt worden ist, geht die Steuermaschine 36 vom Schritt 110 in Schritt 111 über.
- Beim Schritt 111 vermerkt die Steuermaschine 36 das Versagen der Programmieroperation. Die Steuermaschine 36 geht danach in Schritt 112 über, und die Programmieroperation ist zu Ende.
- In der Form eines Ablaufdiagramms veranschaulicht Fig. 10 ein Verfahren zum unabhängigen. Einstellen der Zustände in zwei Speicherzellen. Anders ausgedrückt, veranschaulicht Fig. 10 ein Verfahren zum Programmieren mehrerer Speicherzellen in unterschiedliche, gut definierte Zustände unabhängig voneinander. Aus Gründen der Klarkeit veranschaulicht Fig. 10 das Programmieren von nur zwei Speicherzellen. Eine Erweiterung des Verfahrens auf eine größere Anzahl von Speicherzellen ist einem Fachmann klar.
- Das Programmieren beginnt beim Schritt 130 mit dem Auswählen eines ersten Spannungspegels, der an das Gate oder die Wortleitung der ersten zu programmierenden Speicherzelle anzulegen ist. Der erste Wortleitungs-Spannungspegel wird derart ausgewählt, daß die erste Speicherzelle die gewünschte Ladungsmenge, die den Zielzustand der ersten Speicherstelle darstellt, speichert. Dieser Zustand kann in Form von einem Bereich von Schwellenspannungen Vt, von Drain-Strömen ID oder einer Ladungsmenge definiert werden, so wie es weiter oben erörtert wurde.
- Nach dem Auswählen der ersten Wortleitungsspannung wird ein Programmierimpuls an die erste Speicherzelle angelegt. Dies ist in Fig. 10 als Schritt 132 gezeigt. Danach geht die Steuermaschine 36 zum Schritt 134 über.
- Beim Schritt 134 paßt die Steuermaschine 36 den Wortleitungs-Spannungspegel an einen Pegel an, der die gewünschte Ladungsmenge innerhalb der nächsten oder zweiten Speicherzelle einstellen wird. Durch das Variieren des Wortleitungs- Spannungspegels während des Programmierens wird daher ein Mechanismus zum Einstellen verschiedener diskreter Ladungsmengen in Speicherzellen bereitgestellt.
- Bis zu diesem Punkt ist das Lesen der Daten, die in einer mehrere Bits speicherenden Speicherzelle gespeichert sind, sowie die Verifizierung dieser Daten allgemein beschrieben worden. Nachfolgend werden diese Prozesse ausführlicher beschrieben, weil sie von der Erhöhung der Anzahl der in einer einzigen Speicherzelle gespeicherten Datenbits beeinflußt werden.
- In Form einer Blockdarstellung veranschaulicht Fig. 11 die Schaltung 32a, die ein Teil der Leseschaltung 32 ist. Die Schaltung 32a ließt und verifiziert die Daten, die in einer mehrere Datenbits speichernden, nicht-flüchtigen Speicherzelle gespeichert sind. Die Schaltung 32a steuert außerdem die während der Programmierung an der Speicherzelle 22b angelegte Drain-Spannung. Die Anzahl von Schaltungen 32a innerhalb der Leseschaltung 32 bestimmt die Breite der Leseschaltung 32 und die Anzahl von Speicherzellen, die zeitgleich gelesen, programmiert oder verifiziert werden können.
- Die in einer Speicherzelle des Speicher-Arrays 22, z. B. der Speicherzelle 22b, gespeicherten Daten werden durch das Anlegen einer Verifiziere-Spannung an das Zellen-Gate, das Koppeln von ca. 1 V an die Drain-Elektrode und das Koppeln der Source an Masse gelesen, wie es allgemein üblich ist. Unter diesen Bedingungen fließt ein Strom durch die Drain- Elektrode der Speicherzelle 22b, der die Schwellenspannung der Speicherzelle 22b sowie den Zustand, in den die Speicherzelle 22b programmiert worden ist, anzeigt. Die Drain- Elektrode der Speicherzelle 22b ist mit dem Umsetzer 142 gekoppelt, um die Zustandsinformationen der Speicherzelle 22b in ein Bitmuster zu konvertieren. Die Anzahl von in Bitdaten 144 enthaltenen Bits hängt von der Anzahl von Zuständen S ab, die die Speicherzelle 22b während der Programmierbetriebsart speichern kann. Die von dem Umsetzer 142 ausgegebenen Bitdaten 144 werden mit dem restlichen Teil der Speicherzelle 20 und den Datenpins 26 gekoppelt.
- Die von dem Umsetzer 142 ausgegebenen Bitdaten 144 werden außerdem mit dem Zellen-Verifizierer 146 gekoppelt. Der Zellen-Verifizierer 146 vergleicht die Bitdaten 144 mit den Daten, die der externe Benutzer in die Speicherzelle 22b gespeichert haben möchte. Diese Daten, die Programmier-Referenzdaten 148, werden in einem Datenpufferspeicher gespeichert, so wie es allgemein üblich ist. Der Zellen-Verifizierer 146 vergleicht die von der Speicherzelle 22b gespeicherten Daten, die durch die Bitdaten 144 dargestellt werden, mit den Programmier-Referenzdaten 148. Falls die Bitdaten 144 mit den Programmier-Referenzdaten 148 übereinstimmen, veranlaßt der Zellen-Verifizier 146 die Aktivierung des Verifiziere-Signals 150, wodurch anzeigt wird, daß die Speicherzelle 22b erfolgreich in den gewünschten Zustand programmiert worden ist. Falls die Bitdaten 144 nicht dieselben wie die Programmier-Referenzdaten 148 sind, veranlaßt der Zellen-Verifizierer 146 umgekehrt die Deaktivierung des Verifiziere-Signals 150, wodurch der Steuermaschine 36 angezeigt wird, daß die Speicherzelle 22b nicht in den gewünschten Zustand programmiert worden ist.
- Somit wurden Verfahren und Schaltungen zum Programmieren nicht-flüchtiger Speicherzellen beschrieben, die diskrete Ladungsmengen in einer einzigen nicht-flüchtigen Speicherzelle einstellen. Die Steuerung des Spannungspegels der Wortleitung während der Programmierung steuert die auf die Speicherzelle gebrachte Ladungsmenge. Aus diesem Grund können mehrere Zustände in Form von Ladungsmengen definiert werden, wobei jeder Zustand ein Datenbitmuster darstellt.
- Das beschriebene Verfahren und die beschriebene Schaltung erlauben somit das Speichern mehrerer Datenbits in einer einzigen Speicherzelle.
- In der oben stehenden Beschreibung wurde die Erfindung unter Hinweis auf spezielle beispielhafte Ausführungsformen beschrieben. Es ist jedoch klar, daß verschiedene Modifikationen und Änderungen durchgeführt werden können, ohne daß vom Umfang der Erfindung, so wie sie in den angefügten Ansprüchen bekanntgegeben ist, abgewichen wird. Die Beschreibung und die Zeichnungen sind demgemäß in einem veranschaulichenden, und nicht einem beschränkenden Sinne zu verstehen.
Claims (17)
1. Ein Verfahren zum Programmieren einer Speicherzelle
in einem Speicherarray auf einen ausgewählten Zustand, der
ein Muster von Datenbits darstellt, wobei das Verfahren die
Schritte umfaßt:
a) Anlegen (94, 96; 98, 100) eines Programmierimpulses
an die Speicherzelle, wobei der Programmierimpuls einen
Programmierspannungspegel und eine Impulsdauer aufweist, die
ausreichen, um zu bewirken, daß eine Programmierung der
Speicherzelle in einem gesättigten Bereich auftritt, wobei
in dem gesättigten Bereich sich eine Schwellenspannung der
Speicherzelle näherungsweise logarithmisch mit Erhöhungen
der Dauer des Programmierimpulses erhöht;
b) Bestimmen (102), ob die Speicherzelle in den
ausgewählten Zustand programmiert worden ist;
c) Erhöhen (104) des Programmierspannungspegels, sofern
die Speicherzelle nicht in den ausgewählten Zustand
programmiert worden ist; und
d) Wiederholen der Schritte a) bis c), bis die
Speicherzelle in den ausgewählten Zustand programmiert worden ist.
2. Das Verfahren nach Anspruch 1, wobei der
Programmierimpuls eine Programmierimpulsdauer aufweist, die im Schritt
a) einen Anfangswert hat, und wobei der Schritt c) ferner
das Einstellen (106) der Programmierimpulsdauer auf einen
zweiten Wert umfaßt, der geringer als der Anfangswert ist.
3. Das Verfahren nach Anspruch 2, wobei die
Speicherzelle eine Bitleitung enthält und der Programmierimpuls
umfaßt, daß eine Bitleitungsspannung mit der Bitleitung
gekoppelt wird.
4. Das Verfahren nach Anspruch 3, ferner umfassend den
Schritt des:
e) Trimmens der Bitleitungsspannung derart, daß die
Anfangsdauer des Programmierimpulses im Schritt a) bewirkt,
daß die Speicherzelle in dem gesättigten Bereich
programmiert wird.
5. Das Verfahren nach Ansprüch 1, wobei der ausgewählte
Zustand ein Muster von zwei Bits darstellt.
6. Das Verfahren nach Anspruch 1, wobei der ausgewählte
Zustand ein Muster von drei Bits darstellt.
7. Das Verfahren nach Anspruch 1, wobei der ausgewählte
Zustand ein Muster von 3, 5 Bits darstellt.
8. Das Verfahren nach Anspruch 1, wobei der ausgewählte
Zustand ein Muster von vier Bits darstellt.
9. Das Verfahren nach Anspruch 1, wobei der ausgewählte
Zustand eine nicht-ganzzahlige Anzahl von Bits darstellt.
10. Das Verfahren nach Anspruch 1, wobei der ausgewählte
Zustand durch einen Bereich von Schwellenwertspannungen
darstellt wird.
11. Das Verfahren nach Anspruch 1, wobei der ausgewählte
Zustand durch einen Bereich von Drain-Strömen dargestellt
wird.
12. Das Verfahren nach Anspruch 1, wobei der ausgewählte
Zustand durch eine Ladungsmenge dargestellt wird.
13. Das Verfahren nach Anspruch 1, wobei die
Speicherzelle eine Flash-Speicherzelle ist.
14. Ein Speicherbauelement, aufweisend:
ein eine Speicherzelle enthaltendes Speicherarray, wobei
die Speicherzelle eine diskrete Ladungsmenge innerhalb eines
Ladungsbereichs speichert, die einen Zustand darstellt,
wobei der Zustand ein Muster einer Mehrzahl von Bits
darstellt; und
eine Programmierschaltung zum Programmieren der
diskreten Ladungsmenge in die Speicherzelle durch Anlegen eines
Programmierimpulses an die Speicherzelle, wobei der
Programmierimpuls eine Programmierspannung und eine Dauer aufweist,
die ausreichen, um zu bewirken, daß eine Programmierung der
Speicherzelle in einem gesättigten Bereich auftritt, wobei
in dem gesättigten Bereich sich eine Schwellenspannung der
Speicherzelle näherungsweise logarithmisch mit Erhöhungen
der Dauer des Programmierimpulses erhöht.
15. Das Speicherbauelement nach Anspruch 14, ferner
aufweisend einen Analog-Digital-Umsetzer, der mit der
Speicherzelle gekoppelt ist, wobei der Umsetzer den Zustand in das
Bitmuster konvertiert.
16. Das Speicherbauelement nach Anspruch 15, ferner
aufweisend eine Überprüfungsschaltung, die mit dem Analog-
Digital-Umsetzer gekoppelt ist, wobei die
Überprüfungsschaltung so angekoppelt ist, daß sie das Bitmuster mit
Programmierreferenzdaten vergleicht und ein Überprüfungssignal
anlegt, sofern das Bitmuster mit den
Programmierreferenzdaten übereinstimmt.
17. Das Speicherbauelement nach Anspruch 14, wobei das
Speicherbauelement mit einem Computerprozessor gekoppelt
ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/185,187 US5440505A (en) | 1994-01-21 | 1994-01-21 | Method and circuitry for storing discrete amounts of charge in a single memory element |
PCT/US1995/000152 WO1995020225A1 (en) | 1994-01-21 | 1995-01-06 | Method and circuitry for storing discrete amounts of charge in a single memory element |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69521882D1 DE69521882D1 (de) | 2001-08-30 |
DE69521882T2 true DE69521882T2 (de) | 2002-06-20 |
Family
ID=22679966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69521882T Expired - Lifetime DE69521882T2 (de) | 1994-01-21 | 1995-01-06 | Verfahren und schaltung zur speicherung von diskreten ladungspaketen in einem einzigen speicherelement |
Country Status (7)
Country | Link |
---|---|
US (4) | US5440505A (de) |
EP (1) | EP0740837B1 (de) |
JP (1) | JPH09508486A (de) |
AU (1) | AU1523195A (de) |
DE (1) | DE69521882T2 (de) |
SG (1) | SG49001A1 (de) |
WO (1) | WO1995020225A1 (de) |
Families Citing this family (150)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5218569A (en) | 1991-02-08 | 1993-06-08 | Banks Gerald J | Electrically alterable non-volatile memory with n-bits per memory cell |
US6002614A (en) | 1991-02-08 | 1999-12-14 | Btg International Inc. | Memory apparatus including programmable non-volatile multi-bit memory cell, and apparatus and method for demarcating memory states of the cell |
US6222762B1 (en) | 1992-01-14 | 2001-04-24 | Sandisk Corporation | Multi-state memory |
US5687345A (en) * | 1992-03-17 | 1997-11-11 | Hitachi, Ltd. | Microcomputer having CPU and built-in flash memory that is rewritable under control of the CPU analyzing a command supplied from an external device |
US7057937B1 (en) | 1992-03-17 | 2006-06-06 | Renesas Technology Corp. | Data processing apparatus having a flash memory built-in which is rewritable by use of external device |
TW231343B (de) | 1992-03-17 | 1994-10-01 | Hitachi Seisakusyo Kk | |
US6414878B2 (en) | 1992-03-17 | 2002-07-02 | Hitachi, Ltd. | Data line disturbance free memory block divided flash memory and microcomputer having flash memory therein |
US5555204A (en) * | 1993-06-29 | 1996-09-10 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory device |
RU2190260C2 (ru) * | 1994-06-02 | 2002-09-27 | Интел Корпорейшн | Считывающая схема для флэш-памяти с многоуровневыми ячейками |
US5822256A (en) * | 1994-09-06 | 1998-10-13 | Intel Corporation | Method and circuitry for usage of partially functional nonvolatile memory |
US5808937A (en) * | 1994-12-16 | 1998-09-15 | National Semiconductor Corporation | Self-convergent method for programming FLASH and EEPROM memory cells that moves the threshold voltage from an erased threshold voltage range to one of a plurality of programmed threshold voltage ranges |
US5889698A (en) | 1995-01-31 | 1999-03-30 | Hitachi, Ltd. | Nonvolatile memory device and refreshing method |
US5511021A (en) * | 1995-02-22 | 1996-04-23 | National Semiconductor Corporation | Method for programming a single EPROM or flash memory cell to store multiple levels of data that utilizes a forward-biased source-to-substrate junction |
US6353554B1 (en) | 1995-02-27 | 2002-03-05 | Btg International Inc. | Memory apparatus including programmable non-volatile multi-bit memory cell, and apparatus and method for demarcating memory states of the cell |
US5587949A (en) * | 1995-04-27 | 1996-12-24 | National Semiconductor Corporation | Method for programming an ETOX EPROM or flash memory when cells of the array are formed to store multiple bits of data |
US5973956A (en) * | 1995-07-31 | 1999-10-26 | Information Storage Devices, Inc. | Non-volatile electrically alterable semiconductor memory for analog and digital storage |
JPH0969295A (ja) * | 1995-08-31 | 1997-03-11 | Sanyo Electric Co Ltd | 不揮発性多値メモリ装置 |
US6166979A (en) | 1995-09-13 | 2000-12-26 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device and method for using the same |
TW389909B (en) | 1995-09-13 | 2000-05-11 | Toshiba Corp | Nonvolatile semiconductor memory device and its usage |
US5815434A (en) * | 1995-09-29 | 1998-09-29 | Intel Corporation | Multiple writes per a single erase for a nonvolatile memory |
US5687114A (en) | 1995-10-06 | 1997-11-11 | Agate Semiconductor, Inc. | Integrated circuit for storage and retrieval of multiple digital bits per nonvolatile memory cell |
KR100253868B1 (ko) * | 1995-11-13 | 2000-05-01 | 니시무로 타이죠 | 불휘발성 반도체기억장치 |
KR0172401B1 (ko) * | 1995-12-07 | 1999-03-30 | 김광호 | 다수상태 불휘발성 반도체 메모리 장치 |
KR0185611B1 (ko) * | 1995-12-11 | 1999-04-15 | 김광호 | 불휘발성 반도체 메모리장치의 고전압 레벨 최적화 회로 및 그 방법 |
US5677869A (en) * | 1995-12-14 | 1997-10-14 | Intel Corporation | Programming flash memory using strict ordering of states |
US5701266A (en) * | 1995-12-14 | 1997-12-23 | Intel Corporation | Programming flash memory using distributed learning methods |
US5737265A (en) * | 1995-12-14 | 1998-04-07 | Intel Corporation | Programming flash memory using data stream analysis |
US5729489A (en) * | 1995-12-14 | 1998-03-17 | Intel Corporation | Programming flash memory using predictive learning methods |
JP3200012B2 (ja) * | 1996-04-19 | 2001-08-20 | 株式会社東芝 | 記憶システム |
US5870407A (en) * | 1996-05-24 | 1999-02-09 | Advanced Micro Devices, Inc. | Method of screening memory cells at room temperature that would be rejected during hot temperature programming tests |
US6320785B1 (en) * | 1996-07-10 | 2001-11-20 | Hitachi, Ltd. | Nonvolatile semiconductor memory device and data writing method therefor |
JP3062730B2 (ja) | 1996-07-10 | 2000-07-12 | 株式会社日立製作所 | 不揮発性半導体記憶装置および書込み方法 |
US5862074A (en) * | 1996-10-04 | 1999-01-19 | Samsung Electronics Co., Ltd. | Integrated circuit memory devices having reconfigurable nonvolatile multi-bit memory cells therein and methods of operating same |
US5907855A (en) * | 1996-10-15 | 1999-05-25 | Micron Technology, Inc. | Apparatus and method for reducing programming cycles for multistate memory system |
US6728825B1 (en) | 1996-10-15 | 2004-04-27 | Micron Technology, Inc. | Apparatus and method for reducing programming cycles for multistate memory system |
US5771346A (en) | 1996-10-24 | 1998-06-23 | Micron Quantum Devices, Inc. | Apparatus and method for detecting over-programming condition in multistate memory device |
US5764568A (en) | 1996-10-24 | 1998-06-09 | Micron Quantum Devices, Inc. | Method for performing analog over-program and under-program detection for a multistate memory cell |
US5768287A (en) * | 1996-10-24 | 1998-06-16 | Micron Quantum Devices, Inc. | Apparatus and method for programming multistate memory device |
US5835413A (en) * | 1996-12-20 | 1998-11-10 | Intel Corporation | Method for improved data retention in a nonvolatile writeable memory by sensing and reprogramming cell voltage levels |
US6005895A (en) | 1996-12-20 | 1999-12-21 | Rambus Inc. | Apparatus and method for multilevel signaling |
WO1998028745A1 (en) * | 1996-12-20 | 1998-07-02 | Intel Corporation | Nonvolatile writeable memory with fast programming capability |
JP3409986B2 (ja) * | 1997-01-31 | 2003-05-26 | 株式会社東芝 | 多値メモリ |
US6487116B2 (en) | 1997-03-06 | 2002-11-26 | Silicon Storage Technology, Inc. | Precision programming of nonvolatile memory cells |
US5870335A (en) * | 1997-03-06 | 1999-02-09 | Agate Semiconductor, Inc. | Precision programming of nonvolatile memory cells |
US5801991A (en) * | 1997-03-31 | 1998-09-01 | Intel Corporation | Deselected word line that floats during MLC programming of a flash memory |
US5798966A (en) * | 1997-03-31 | 1998-08-25 | Intel Corporation | Flash memory VDS compensation techiques to reduce programming variability |
JP3481817B2 (ja) * | 1997-04-07 | 2003-12-22 | 株式会社東芝 | 半導体記憶装置 |
GB2325546B (en) * | 1997-05-21 | 2001-10-17 | Motorola Inc | Electrically programmable memory and method of programming |
IL125604A (en) * | 1997-07-30 | 2004-03-28 | Saifun Semiconductors Ltd | Non-volatile electrically erasable and programmble semiconductor memory cell utilizing asymmetrical charge |
US6768165B1 (en) | 1997-08-01 | 2004-07-27 | Saifun Semiconductors Ltd. | Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping |
US5903487A (en) * | 1997-11-25 | 1999-05-11 | Windbond Electronics Corporation | Memory device and method of operation |
KR100266745B1 (ko) * | 1997-12-29 | 2000-09-15 | 윤종용 | 멀티-비트 데이터를 저장하기 위한 반도체 메모리 장치 |
US5991201A (en) * | 1998-04-27 | 1999-11-23 | Motorola Inc. | Non-volatile memory with over-program protection and method therefor |
JP3905990B2 (ja) | 1998-12-25 | 2007-04-18 | 株式会社東芝 | 記憶装置とその記憶方法 |
US6567302B2 (en) | 1998-12-29 | 2003-05-20 | Micron Technology, Inc. | Method and apparatus for programming multi-state cells in a memory device |
US6282145B1 (en) * | 1999-01-14 | 2001-08-28 | Silicon Storage Technology, Inc. | Array architecture and operating methods for digital multilevel nonvolatile memory integrated circuit system |
US7082056B2 (en) * | 2004-03-12 | 2006-07-25 | Super Talent Electronics, Inc. | Flash memory device and architecture with multi level cells |
US6327183B1 (en) | 2000-01-10 | 2001-12-04 | Advanced Micro Devices, Inc. | Nonlinear stepped programming voltage |
EP1280535B1 (de) * | 2000-01-11 | 2005-02-09 | Teva Pharmaceutical Industries Ltd. | Verfahren zur herstellung von polymorphen des clarithromycins |
US6226213B1 (en) * | 2000-01-31 | 2001-05-01 | Taiwan Semiconductor Manufacturing Co., Ltd. | Reference cell array to generate the reference current for sense amplifier |
US6269025B1 (en) | 2000-02-09 | 2001-07-31 | Advanced Micro Devices, Inc. | Memory system having a program and erase voltage modifier |
US6246610B1 (en) | 2000-02-22 | 2001-06-12 | Advanced Micro Devices, Inc. | Symmetrical program and erase scheme to improve erase time degradation in NAND devices |
US6343033B1 (en) * | 2000-02-25 | 2002-01-29 | Advanced Micro Devices, Inc. | Variable pulse width memory programming |
US6304487B1 (en) | 2000-02-28 | 2001-10-16 | Advanced Micro Devices, Inc. | Register driven means to control programming voltages |
US6295228B1 (en) * | 2000-02-28 | 2001-09-25 | Advanced Micro Devices, Inc. | System for programming memory cells |
US6246611B1 (en) | 2000-02-28 | 2001-06-12 | Advanced Micro Devices, Inc. | System for erasing a memory cell |
US6707713B1 (en) * | 2000-03-01 | 2004-03-16 | Advanced Micro Devices, Inc. | Interlaced multi-level memory |
US6396741B1 (en) | 2000-05-04 | 2002-05-28 | Saifun Semiconductors Ltd. | Programming of nonvolatile memory cells |
US6928001B2 (en) | 2000-12-07 | 2005-08-09 | Saifun Semiconductors Ltd. | Programming and erasing methods for a non-volatile memory cell |
US6396742B1 (en) | 2000-07-28 | 2002-05-28 | Silicon Storage Technology, Inc. | Testing of multilevel semiconductor memory |
US6233175B1 (en) * | 2000-10-21 | 2001-05-15 | Advanced Micro Devices, Inc. | Self-limiting multi-level programming states |
US6901007B2 (en) * | 2001-01-11 | 2005-05-31 | Micron Technology, Inc. | Memory device with multi-level storage cells and apparatuses, systems and methods including same |
US6587372B2 (en) | 2001-01-11 | 2003-07-01 | Micron Technology, Inc. | Memory device with multi-level storage cells and apparatuses, systems and methods including same |
US6614692B2 (en) | 2001-01-18 | 2003-09-02 | Saifun Semiconductors Ltd. | EEPROM array and method for operation thereof |
US6466480B2 (en) * | 2001-03-27 | 2002-10-15 | Micron Technology, Inc. | Method and apparatus for trimming non-volatile memory cells |
US6477091B2 (en) | 2001-03-30 | 2002-11-05 | Intel Corporation | Method, apparatus, and system to enhance negative voltage switching |
US6584017B2 (en) * | 2001-04-05 | 2003-06-24 | Saifun Semiconductors Ltd. | Method for programming a reference cell |
US6504760B1 (en) | 2001-06-22 | 2003-01-07 | Intel Corporation | Charging a capacitance of a memory cell and charger |
US7076627B2 (en) | 2001-06-29 | 2006-07-11 | Intel Corporation | Memory control for multiple read requests |
US6920534B2 (en) | 2001-06-29 | 2005-07-19 | Intel Corporation | Virtual-port memory and virtual-porting |
US6522584B1 (en) * | 2001-08-02 | 2003-02-18 | Micron Technology, Inc. | Programming methods for multi-level flash EEPROMs |
US6643181B2 (en) | 2001-10-24 | 2003-11-04 | Saifun Semiconductors Ltd. | Method for erasing a memory cell |
US6925007B2 (en) * | 2001-10-31 | 2005-08-02 | Sandisk Corporation | Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements |
US6897522B2 (en) * | 2001-10-31 | 2005-05-24 | Sandisk Corporation | Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements |
US7190620B2 (en) * | 2002-01-31 | 2007-03-13 | Saifun Semiconductors Ltd. | Method for operating a memory device |
US6975536B2 (en) * | 2002-01-31 | 2005-12-13 | Saifun Semiconductors Ltd. | Mass storage array and methods for operation thereof |
US6700818B2 (en) * | 2002-01-31 | 2004-03-02 | Saifun Semiconductors Ltd. | Method for operating a memory device |
FR2836751A1 (fr) * | 2002-02-11 | 2003-09-05 | St Microelectronics Sa | Cellule memoire a programmation unique non destructrice |
US7038248B2 (en) * | 2002-02-15 | 2006-05-02 | Sandisk Corporation | Diverse band gap energy level semiconductor device |
US7030149B2 (en) * | 2002-04-19 | 2006-04-18 | Allergan, Inc. | Combination of brimonidine timolol for topical ophthalmic use |
WO2004001802A2 (en) * | 2002-06-21 | 2003-12-31 | Micron Technology, Inc. | Nrom memory cell, memory array, related devices and methods |
US20030235076A1 (en) * | 2002-06-21 | 2003-12-25 | Micron Technology, Inc. | Multistate NROM having a storage density much greater than 1 Bit per 1F2 |
US6917544B2 (en) * | 2002-07-10 | 2005-07-12 | Saifun Semiconductors Ltd. | Multiple use memory chip |
US6826107B2 (en) | 2002-08-01 | 2004-11-30 | Saifun Semiconductors Ltd. | High voltage insertion in flash memory cards |
US7136304B2 (en) | 2002-10-29 | 2006-11-14 | Saifun Semiconductor Ltd | Method, system and circuit for programming a non-volatile memory array |
JP4187148B2 (ja) * | 2002-12-03 | 2008-11-26 | シャープ株式会社 | 半導体記憶装置のデータ書き込み制御方法 |
US6967896B2 (en) * | 2003-01-30 | 2005-11-22 | Saifun Semiconductors Ltd | Address scramble |
US7178004B2 (en) | 2003-01-31 | 2007-02-13 | Yan Polansky | Memory array programming circuit and a method for using the circuit |
US7142464B2 (en) * | 2003-04-29 | 2006-11-28 | Saifun Semiconductors Ltd. | Apparatus and methods for multi-level sensing in a memory array |
JP2004342277A (ja) * | 2003-05-19 | 2004-12-02 | Sharp Corp | 半導体記憶装置、その駆動方法及び携帯電子機器 |
JP2004342275A (ja) * | 2003-05-19 | 2004-12-02 | Sharp Corp | 不揮発性メモリ素子のプログラム方法および半導体記憶装置と、それを備えた携帯電子機器 |
US7050330B2 (en) * | 2003-12-16 | 2006-05-23 | Micron Technology, Inc. | Multi-state NROM device |
US7301804B2 (en) * | 2003-12-16 | 2007-11-27 | Micro Technology, Inc. | NROM memory cell, memory array, related devices and methods |
US20050251617A1 (en) * | 2004-05-07 | 2005-11-10 | Sinclair Alan W | Hybrid non-volatile memory system |
US20050172091A1 (en) * | 2004-01-29 | 2005-08-04 | Rotithor Hemant G. | Method and an apparatus for interleaving read data return in a packetized interconnect to memory |
US7652930B2 (en) | 2004-04-01 | 2010-01-26 | Saifun Semiconductors Ltd. | Method, circuit and system for erasing one or more non-volatile memory cells |
JP2005339589A (ja) * | 2004-05-24 | 2005-12-08 | Matsushita Electric Ind Co Ltd | 不揮発性メモリーの電気抵抗値設定方法 |
US7366025B2 (en) * | 2004-06-10 | 2008-04-29 | Saifun Semiconductors Ltd. | Reduced power programming of non-volatile cells |
US7638850B2 (en) | 2004-10-14 | 2009-12-29 | Saifun Semiconductors Ltd. | Non-volatile memory structure and method of fabrication |
US7535765B2 (en) | 2004-12-09 | 2009-05-19 | Saifun Semiconductors Ltd. | Non-volatile memory device and method for reading cells |
ITMI20042538A1 (it) * | 2004-12-29 | 2005-03-29 | Atmel Corp | Metodo e sistema per la riduzione del soft-writing in una memoria flash a livelli multipli |
EP1686592A3 (de) * | 2005-01-19 | 2007-04-25 | Saifun Semiconductors Ltd. | Teil-Löschüberprüfung |
US8053812B2 (en) * | 2005-03-17 | 2011-11-08 | Spansion Israel Ltd | Contact in planar NROM technology |
US7269066B2 (en) * | 2005-05-11 | 2007-09-11 | Micron Technology, Inc. | Programming memory devices |
US8400841B2 (en) | 2005-06-15 | 2013-03-19 | Spansion Israel Ltd. | Device to program adjacent storage cells of different NROM cells |
US7184313B2 (en) | 2005-06-17 | 2007-02-27 | Saifun Semiconductors Ltd. | Method circuit and system for compensating for temperature induced margin loss in non-volatile memory cells |
US7656710B1 (en) | 2005-07-14 | 2010-02-02 | Sau Ching Wong | Adaptive operations for nonvolatile memories |
EP1746645A3 (de) | 2005-07-18 | 2009-01-21 | Saifun Semiconductors Ltd. | Speicherzellenanordnung mit sub-minimalem Wortleitungsabstand und Verfahren zu deren Herstellung |
US20070036007A1 (en) * | 2005-08-09 | 2007-02-15 | Saifun Semiconductors, Ltd. | Sticky bit buffer |
US7668017B2 (en) | 2005-08-17 | 2010-02-23 | Saifun Semiconductors Ltd. | Method of erasing non-volatile memory cells |
US7307878B1 (en) * | 2005-08-29 | 2007-12-11 | Spansion Llc | Flash memory device having improved program rate |
KR100705220B1 (ko) * | 2005-09-15 | 2007-04-06 | 주식회사 하이닉스반도체 | 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법 |
US8358543B1 (en) | 2005-09-20 | 2013-01-22 | Spansion Llc | Flash memory programming with data dependent control of source lines |
US7957204B1 (en) | 2005-09-20 | 2011-06-07 | Spansion Llc | Flash memory programming power reduction |
US7433228B2 (en) * | 2005-09-20 | 2008-10-07 | Spansion Llc | Multi-bit flash memory device having improved program rate |
US7221138B2 (en) * | 2005-09-27 | 2007-05-22 | Saifun Semiconductors Ltd | Method and apparatus for measuring charge pump output current |
US7301817B2 (en) | 2005-10-27 | 2007-11-27 | Sandisk Corporation | Method for programming of multi-state non-volatile memory using smart verify |
JP2007149241A (ja) * | 2005-11-29 | 2007-06-14 | Matsushita Electric Ind Co Ltd | 不揮発性半導体記憶装置 |
JP4739940B2 (ja) * | 2005-12-21 | 2011-08-03 | ソリッド ステート ストレージ ソリューションズ エルエルシー | 不揮発性メモリ |
US7808818B2 (en) | 2006-01-12 | 2010-10-05 | Saifun Semiconductors Ltd. | Secondary injection for NROM |
US7342830B1 (en) | 2006-01-17 | 2008-03-11 | Spansion Llc | Program and program verify operations for flash memory |
US8253452B2 (en) | 2006-02-21 | 2012-08-28 | Spansion Israel Ltd | Circuit and method for powering up an integrated circuit and an integrated circuit utilizing same |
US7760554B2 (en) | 2006-02-21 | 2010-07-20 | Saifun Semiconductors Ltd. | NROM non-volatile memory and mode of operation |
US7692961B2 (en) | 2006-02-21 | 2010-04-06 | Saifun Semiconductors Ltd. | Method, circuit and device for disturb-control of programming nonvolatile memory cells by hot-hole injection (HHI) and by channel hot-electron (CHE) injection |
US7638835B2 (en) * | 2006-02-28 | 2009-12-29 | Saifun Semiconductors Ltd. | Double density NROM with nitride strips (DDNS) |
US20070255889A1 (en) * | 2006-03-22 | 2007-11-01 | Yoav Yogev | Non-volatile memory device and method of operating the device |
US7701779B2 (en) | 2006-04-27 | 2010-04-20 | Sajfun Semiconductors Ltd. | Method for programming a reference cell |
US7663925B2 (en) * | 2006-05-15 | 2010-02-16 | Micron Technology Inc. | Method and apparatus for programming flash memory |
US7596028B2 (en) * | 2006-12-28 | 2009-09-29 | Macronix International Co., Ltd. | Variable program and program verification methods for a virtual ground memory in easing buried drain contacts |
US20080239599A1 (en) * | 2007-04-01 | 2008-10-02 | Yehuda Yizraeli | Clamping Voltage Events Such As ESD |
US7966547B2 (en) * | 2007-07-02 | 2011-06-21 | International Business Machines Corporation | Multi-bit error correction scheme in multi-level memory storage system |
US7590001B2 (en) | 2007-12-18 | 2009-09-15 | Saifun Semiconductors Ltd. | Flash memory with optimized write sector spares |
JP5172555B2 (ja) | 2008-09-08 | 2013-03-27 | 株式会社東芝 | 半導体記憶装置 |
US8681562B2 (en) | 2011-01-10 | 2014-03-25 | Micron Technology, Inc. | Memories and methods of programming memories |
US8860594B2 (en) | 2012-05-17 | 2014-10-14 | Brilliant Points, Inc. | System and method for digital signaling |
US10318158B2 (en) | 2012-05-17 | 2019-06-11 | Brilliant Points, Inc. | System and method for digital signaling and digital storage |
JP2014053060A (ja) | 2012-09-07 | 2014-03-20 | Toshiba Corp | 半導体記憶装置及びその制御方法 |
JP2014063551A (ja) | 2012-09-21 | 2014-04-10 | Toshiba Corp | 半導体記憶装置 |
JP2019040655A (ja) * | 2017-08-28 | 2019-03-14 | 東芝メモリ株式会社 | メモリシステム |
CN110910922B (zh) * | 2018-09-18 | 2021-09-24 | 北京兆易创新科技股份有限公司 | 位线电压的施加方法、装置、存储设备和存储介质 |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2733424A (en) * | 1956-01-31 | Source of | ||
US2998594A (en) * | 1959-03-25 | 1961-08-29 | Ibm | Magnetic memory system for ternary information |
US3142824A (en) * | 1963-10-16 | 1964-07-28 | Control Data Corp | Analog storage circuit |
US3505655A (en) * | 1968-06-21 | 1970-04-07 | Ibm | Digital storage system operating in the magnitude-time domain |
FR2246022B1 (de) * | 1973-09-28 | 1979-06-01 | Siemens Ag | |
US4181980A (en) * | 1978-05-15 | 1980-01-01 | Electronic Arrays, Inc. | Acquisition and storage of analog signals |
US4202044A (en) * | 1978-06-13 | 1980-05-06 | International Business Machines Corporation | Quaternary FET read only memory |
US4287570A (en) * | 1979-06-01 | 1981-09-01 | Intel Corporation | Multiple bit read-only memory cell and its sense amplifier |
IT1224062B (it) * | 1979-09-28 | 1990-09-26 | Ates Componenti Elettron | Metodo di programmazione per una memoria a semiconduttore non volatile elettricamente alterabile |
JPS5660247A (en) * | 1979-10-22 | 1981-05-25 | Hiraoka Shokusen | Soft sheet |
US4415992A (en) * | 1981-02-25 | 1983-11-15 | Motorola, Inc. | Memory system having memory cells capable of storing more than two states |
JPS57176598A (en) * | 1981-04-20 | 1982-10-29 | Sanyo Electric Co Ltd | Write-in circuit for non-volatile analog memory |
US4388702A (en) * | 1981-08-21 | 1983-06-14 | Mostek Corporation | Multi-bit read only memory circuit |
US4460982A (en) * | 1982-05-20 | 1984-07-17 | Intel Corporation | Intelligent electrically programmable and electrically erasable ROM |
JPS5949022A (ja) * | 1982-09-13 | 1984-03-21 | Toshiba Corp | 多値論理回路 |
JPS6013398A (ja) * | 1983-07-04 | 1985-01-23 | Hitachi Ltd | 半導体多値記憶装置 |
EP0136119B1 (de) * | 1983-09-16 | 1988-06-29 | Fujitsu Limited | Festwertspeicherschaltung mit Multi-Bitzellen |
US4701884A (en) * | 1985-08-16 | 1987-10-20 | Hitachi, Ltd. | Semiconductor memory for serial data access |
US5012448A (en) * | 1985-12-13 | 1991-04-30 | Ricoh Company, Ltd. | Sense amplifier for a ROM having a multilevel memory cell |
US4943948A (en) * | 1986-06-05 | 1990-07-24 | Motorola, Inc. | Program check for a non-volatile memory |
US5034922A (en) * | 1987-12-21 | 1991-07-23 | Motorola, Inc. | Intelligent electrically erasable, programmable read-only memory with improved read latency |
US4875188A (en) * | 1988-01-12 | 1989-10-17 | Intel Corporation | Voltage margining circuit for flash eprom |
US5222046A (en) * | 1988-02-17 | 1993-06-22 | Intel Corporation | Processor controlled command port architecture for flash memory |
US5053990A (en) * | 1988-02-17 | 1991-10-01 | Intel Corporation | Program/erase selection for flash memory |
US5293560A (en) * | 1988-06-08 | 1994-03-08 | Eliyahou Harari | Multi-state flash EEPROM system using incremental programing and erasing methods |
US5095344A (en) * | 1988-06-08 | 1992-03-10 | Eliyahou Harari | Highly compact eprom and flash eeprom devices |
US5043940A (en) * | 1988-06-08 | 1991-08-27 | Eliyahou Harari | Flash EEPROM memory systems having multistate storage cells |
US4890259A (en) * | 1988-07-13 | 1989-12-26 | Information Storage Devices | High density integrated circuit analog signal recording and playback system |
US4989179A (en) * | 1988-07-13 | 1991-01-29 | Information Storage Devices, Inc. | High density integrated circuit analog signal recording and playback system |
JPH07105146B2 (ja) * | 1988-07-29 | 1995-11-13 | 三菱電機株式会社 | 不揮発性記憶装置 |
EP0617363B1 (de) * | 1989-04-13 | 2000-01-26 | SanDisk Corporation | Austausch von fehlerhaften Speicherzellen einer EEprommatritze |
US5172338B1 (en) * | 1989-04-13 | 1997-07-08 | Sandisk Corp | Multi-state eeprom read and write circuits and techniques |
US5163021A (en) * | 1989-04-13 | 1992-11-10 | Sundisk Corporation | Multi-state EEprom read and write circuits and techniques |
FR2650109B1 (fr) * | 1989-07-20 | 1993-04-02 | Gemplus Card Int | Circuit integre mos a tension de seuil ajustable |
US5200920A (en) * | 1990-02-08 | 1993-04-06 | Altera Corporation | Method for programming programmable elements in programmable devices |
US5126967A (en) * | 1990-09-26 | 1992-06-30 | Information Storage Devices, Inc. | Writable distributed non-volatile analog reference system and method for analog signal recording and playback |
JPH04154212A (ja) * | 1990-10-17 | 1992-05-27 | Mitsubishi Electric Corp | 半導体記憶装置の出力回路 |
JP2573416B2 (ja) * | 1990-11-28 | 1997-01-22 | 株式会社東芝 | 半導体記憶装置 |
US5220531A (en) * | 1991-01-02 | 1993-06-15 | Information Storage Devices, Inc. | Source follower storage cell and improved method and apparatus for iterative write for integrated circuit analog signal recording and playback |
US5218569A (en) * | 1991-02-08 | 1993-06-08 | Banks Gerald J | Electrically alterable non-volatile memory with n-bits per memory cell |
JP3408552B2 (ja) * | 1991-02-11 | 2003-05-19 | インテル・コーポレーション | 不揮発性半導体メモリをプログラム及び消去する回路とその方法 |
FR2672709B1 (fr) * | 1991-02-11 | 1994-09-30 | Intel Corp | Machine d'etat d'ordre. |
JP3114237B2 (ja) * | 1991-04-30 | 2000-12-04 | 日本電気株式会社 | 半導体記憶装置 |
KR950008443B1 (ko) * | 1991-06-28 | 1995-07-31 | 샤프 가부시끼가이샤 | 2-가/n-가 변환유니트를 포함하는 기억장치 |
JPH0574181A (ja) * | 1991-09-10 | 1993-03-26 | Nec Corp | 半導体メモリ装置のデータ読み出し回路 |
US5237535A (en) * | 1991-10-09 | 1993-08-17 | Intel Corporation | Method of repairing overerased cells in a flash memory |
US5388064A (en) * | 1991-11-26 | 1995-02-07 | Information Storage Devices, Inc. | Programmable non-volatile analog voltage source devices and methods |
US5289412A (en) * | 1992-06-19 | 1994-02-22 | Intel Corporation | High-speed bias-stabilized current-mirror referencing circuit for non-volatile memories |
US5283761A (en) * | 1992-07-22 | 1994-02-01 | Mosaid Technologies Incorporated | Method of multi-level storage in DRAM |
US5537350A (en) * | 1993-09-10 | 1996-07-16 | Intel Corporation | Method and apparatus for sequential programming of the bits in a word of a flash EEPROM memory array |
US5515317A (en) * | 1994-06-02 | 1996-05-07 | Intel Corporation | Addressing modes for a dynamic single bit per cell to multiple bit per cell memory |
US5539690A (en) * | 1994-06-02 | 1996-07-23 | Intel Corporation | Write verify schemes for flash memory with multilevel cells |
US5487033A (en) * | 1994-06-28 | 1996-01-23 | Intel Corporation | Structure and method for low current programming of flash EEPROMS |
US5477485A (en) * | 1995-02-22 | 1995-12-19 | National Semiconductor Corporation | Method for programming a single EPROM or FLASH memory cell to store multiple levels of data that utilizes a floating substrate |
US5596526A (en) * | 1995-08-15 | 1997-01-21 | Lexar Microsystems, Inc. | Non-volatile memory system of multi-level transistor cells and methods using same |
KR0172831B1 (ko) * | 1995-09-18 | 1999-03-30 | 문정환 | 비휘발성 메모리를 프로그램하는 방법 |
-
1994
- 1994-01-21 US US08/185,187 patent/US5440505A/en not_active Expired - Lifetime
-
1995
- 1995-01-06 EP EP95906770A patent/EP0740837B1/de not_active Expired - Lifetime
- 1995-01-06 AU AU15231/95A patent/AU1523195A/en not_active Abandoned
- 1995-01-06 WO PCT/US1995/000152 patent/WO1995020225A1/en active IP Right Grant
- 1995-01-06 DE DE69521882T patent/DE69521882T2/de not_active Expired - Lifetime
- 1995-01-06 JP JP7519573A patent/JPH09508486A/ja not_active Ceased
- 1995-01-06 SG SG1996005076A patent/SG49001A1/en unknown
- 1995-03-31 US US08/422,066 patent/US5566125A/en not_active Expired - Lifetime
-
1997
- 1997-08-13 US US08/910,866 patent/US5892710A/en not_active Expired - Lifetime
- 1997-08-13 US US08/910,761 patent/US6091618A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5440505A (en) | 1995-08-08 |
SG49001A1 (en) | 1998-05-18 |
US5892710A (en) | 1999-04-06 |
US5566125A (en) | 1996-10-15 |
US6091618A (en) | 2000-07-18 |
WO1995020225A1 (en) | 1995-07-27 |
EP0740837B1 (de) | 2001-07-25 |
AU1523195A (en) | 1995-08-08 |
DE69521882D1 (de) | 2001-08-30 |
JPH09508486A (ja) | 1997-08-26 |
EP0740837A1 (de) | 1996-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69521882T2 (de) | Verfahren und schaltung zur speicherung von diskreten ladungspaketen in einem einzigen speicherelement | |
DE60214023T2 (de) | Selektiver betrieb eines nichtflüchtigen mehrzustandsspeichersystems in einem binärmodus | |
DE602005003924T2 (de) | Programmierung nicht-flüchtiger speicher | |
DE4422810C2 (de) | Nichtflüchtige Halbleiterspeichervorrichtung | |
DE69706873T2 (de) | Löschverfahren für mehrere-bits-pro-zelle flash -eeprom mit seitenmodus | |
DE60001587T2 (de) | Schaltungsausführung zur reduzierung des bitleitungslekcstroms bei programmierungs-und überlöschungskorrekturmodus in einem flash-eeprom | |
DE60220590T2 (de) | Verfahren zur Reduzierung von Kopplungseffekten zwischen multi-level Speicherelementen eines nicht flüchtigen Speichers | |
DE60115716T2 (de) | Weichprogrammierung und weichprogrammierverifikation von flash-speicherzellen | |
DE60121865T2 (de) | Nichtflüchtige Halbleiterspeicheranordnung | |
DE102004033443B4 (de) | Flashspeicherbauelement mit Mehrpegelzelle | |
DE69533429T2 (de) | Automatischer progammier-algorithmus für flash-speicher im seitenmodus mit variabler programmierimpulshöhe und -breite | |
DE69030959T2 (de) | EEPROM mit Referenzzelle | |
DE60301839T2 (de) | Nichtflüchtiger Halbleiterspeicher und Verfahren zu dessen Betrieb | |
DE19882265B4 (de) | Flash-Speicher-VDS-Kompensationstechniken zum Verringern von Programmierschwankungen | |
DE69616693T2 (de) | Nichtflüchtiger Speicher und Verfahren zu seiner Programmierung | |
DE69603742T2 (de) | Überlöschungskorrektur für flash-speicher mit überlöschungsbegrenzung und vermeidung von löschprüffehlern | |
DE69636063T2 (de) | Verfahren zum Programmieren eines nichtflüchtigen Speichers | |
DE102005030661B4 (de) | Nichtflüchtiges Halbleiterspeicherbauelement und Verfahren zum Betreiben und Herstellen eines nichtflüchtigen Halbleiterspeicherbauelementes | |
DE19724221B4 (de) | Nichtflüchtiger Speicher | |
DE69511661T2 (de) | Referenzschaltung | |
DE68918880T2 (de) | Elektrisch löschbare nichtflüchtige Halbleiterspeichervorrichtung. | |
DE602004013347T2 (de) | Verfahren zum identifizieren nichtflüchtiger speicherelmente mit schlechter subschwellensteigung oder schwacher transkonduktanz | |
DE69614787T2 (de) | Speichermatrix mit mehrzustandsspeicherzellen | |
DE69705837T2 (de) | Anordnung und verfahren zum speichern und lesen von mehrpegelladung | |
DE102005057553A1 (de) | Nicht volatiles Speicherbauelement und Verfahren zur Verhinderung eines Heisse-Elektronen-Programmier-Störungsphänomens |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |