-
Hintergrund der Erfindung
-
Gebiet der Erfindung
-
Die
Erfindung betrifft nicht flüchtige
Speichereinrichtungen und ist insbesondere auf spezielle Vorrichtungen
und Verfahren gerichtet, die auf neuen Konzepten der Speicherzustandsabgrenzung
und der Programmier-Referenzsignalerzeugung für elektrisch änderbare,
nicht flüchtige
Speicherzellen (EANVM: electrically alterable nonvolatile memory)
mit mehreren Bit beruhen.
-
Einschlägiger Stand
der Technik
-
Bei
einer herkömmlichen
Speichervorrichtung mit einem einzigen Bit pro Zelle nimmt die Speicherzelle einen
von zwei Informationsspeicherzuständen an, und zwar entweder
einen „eingeschalteten" Zustand oder einen „ausgeschalteten" Zustand. Diese Kombination
von entweder „eingeschaltet" oder „ausgeschaltet" definiert eine Information
von einem Bit. Eine Speichervorrichtung, die derartige Zellen mit
einem einzigen Bit zum Speichern von n Bits von Daten (wobei n eine
ganze Zahl größer als
0 ist) verwendet, benötigt
folglich n separate Speicherzellen.
-
Das
Erhöhen
der Anzahl von Bits, die in einer Speichervorrichtung mit einem
einzigen Bit pro Zelle gespeichert werden können, bedingt das Erhöhen der
Anzahl von Speicherzellen, und zwar eins zu eins mit der Anzahl
von zu speichernden Datenbits. Verfahren zum Erhöhen der Anzahl von Speicherzellen
in einer einzelnen Speichervorrichtung beruhten auf fortgeschrittenen
Herstellungstechniken, die größere Chips
herstellen, die mehr Speicherzellen enthalten, oder die kleinere
Speicherzellen (beispielsweise durch eine hoch auflösende Lithographie)
herstellen, um zu ermöglichen,
dass mehr Speicherzellen auf einer gegebenen Fläche auf einem einzelnen Chip
platziert werden können.
-
Eine
Alternative zu dem Ansatz mit einem einzigen Bit pro Zelle umfasst
das Speichern mehrerer Datenbits in einer einzigen Speicherzelle.
Frühere
Ansätze
zum Implementieren von nicht flüchtigen
Speichervorrichtungen mit mehreren Bit pro Zelle umfassen typischerweise
maskenprogrammierbare Festwertspeicher (ROM: read only memory).
Bei einem dieser Ansätze
wird die Kanalbreite und/oder die Kanallänge der Speicherzelle derart
variiert, dass 2
n unterschiedliche Leitwerte
erzielt werden, die 2
n unterschiedlichen
Zuständen entsprechen,
wobei n Datenbits von einer einzigen Speicherzelle gespeichert werden
können.
Bei einem anderen Ansatz wird die Ionenimplantierung für die Schwellenwertspannung
derart variiert, dass die Speicherzelle 2
n unterschiedliche
Spannungsschwellenwerte (Vt) aufweisen wird, die 2
n unterschiedlichen
Leitwertpegeln entsprechen, die 2
n unterschiedlichen
Zuständen
entsprechen, wobei n Datenbits von einer einzigen Speicherzelle
gespeichert werden können.
Beispiele von Speichervorrichtungen dieses Typs sind in der
US 4,192,014 von Craycraft,
der
US 4,586,163 von
Koike, der
US 4,287,570 von
Stark, der
US 4,327,424 von
Wu und der
US 4,847,808 von
Kobatake beschrieben.
-
Es
sind auch elektrisch änderbare,
nicht flüchtige
Speichervorrichtungen (EANVM) bekannt, die in der Lage sind, mehrere
Datenbits pro Zelle zu speichern. Bei diesen Vorrichtungen werden
mehrere Speicherzustände
der Zelle durch vorbestimmte Referenzsignalpegel abgegrenzt, die
Grenzen zwischen benachbarten Speicherzuständen definieren. Die Speicherzelle
wird durch Vergleichen eines Signals von der Zelle mit den Referenzsignalen
ausgelesen, um die relativen Pegel des Zellensignals und der Referenzsignale
zu bestimmen. Die Vergleichsergebnisse zeigen an, ob sich der Zellensignalpegel über oder
unter den entsprechenden Speicherzustandsgrenzen befindet, und sie
zeigen folglich gemeinsam den programmierten Zustand der Zelle entsprechend
den gespeicherten Daten an. Die Vergleichsergebnisse werden kodiert,
um die gespeicherten Daten zu reproduzieren und den Zellenauslesevorgang
zu vervollständigen.
Allgemein ausgedrückt
ist die zum Abgrenzen von n Speicherzuständen zum Speichern von n Datenbits
erforderliche Anzahl von Referenzpegeln 2n–1. Die
Anzahl kann größer sein,
falls beispielsweise der höchste
oder niedrigste Speicherzustand von beiden Seiten begrenzt ist.
-
Frühere Ansätze zum
Programmieren von Mehrbit-EANVM-Zellen basierten auf einem wiederholten Zyklus
von Programmieren und Auslesen der Zelle. Die Zelle wird inkrenientell
programmiert, indem Programmierimpulse angelegt werden, und der
programmierte Zustand der Zelle wird während des Programmierverfahrens
wiederholt überprüft, indem
der Speicherzustand der Zelle, wie zuvor beschrieben, ausgelesen
wird, um den erreichten Programmierpegel zu verifizieren. Das Programmieren
wird fortgesetzt, bis der Sollspeicherzustand erreicht wurde, was
durch das Auslesen der Zelle angezeigt wird.
-
Um
die Möglichkeit
von Auslesefehlern zu minimieren, sollte der Programmierpegel einer
Mehrbit-EANVM-Zelle mit einem Sicherheitsabstand gegenüber dem
Referenzsignalpegel oder den Pegeln festgelegt werden, die den Sollspeicherzustand
abgren zen. Der Programmier-Sicherheitsabstand sollte ausreichen, um
Auslesefehler zu vermeiden, die aufgrund von Veränderungen der Betriebseigenschaften
der Zellen mit sich ändernden
Bedingungen, beispielsweise der Temperatur, den Systemspannungen
oder lediglich über
den Lauf der Zeit, auftreten können.
Insbesondere falls die Zelle zu nahe an einer Speicherzustandsgrenze
programmiert ist, können
geringfügige
Veränderungen
der Betriebseigenschaften den Zellensignalpegel gegenüber dem
Zustandgrenzpegel verschieben, was zu einem Fehler beim nachfolgenden
Auslesen der Zelle führt.
-
Der
Programmier-Sicherheitsabstand ist bei Speichervorrichtungen mit
einem einzigen Bit pro Zelle nicht besonders problematisch, da es
lediglich zwei Speicherzustände
und folglich keine Zwischenspeicherzustände gibt. Da es unmöglich ist,
den Sollzustand durch Überprogrammieren
der Zelle zu überschreiten,
kann die Zelle einfach programmiert werden, um den Zellensignalpegel
so weit wie möglich
vom Referenzpegel entfernt festzulegen, der zwei Speicherzustände trennt.
-
Im
Gegensatz dazu macht das Vorhandensein eines oder mehrerer Zwischenspeicherzustände die Programmier-Sicherheitsabstandsbestimmung
im Fall von Vorrichtungen mit mehreren Bit pro Zelle zu einer signifikanten
Aufgabe, weil ein Zwischenspeicherzustand einen Programmier-Sicherheitsabstand
erfordert, der eine angemessene Trennung von zwei Grenzpegeln bereitstellt,
d. h. den Grenzen des Zwischenspeicherzustandes sowohl mit dem Zustand
darüber
als auch dem Zustand darunter. Das Programmieren der Zelle zu nahe
an einem der Pegel kann zu einem Auslesefehler führen. Auch muss sowohl ein Überprogrammieren
als auch ein Unterprogrammieren vermieden werden, um ein Überschreiten
und Unterschreiten des Sollzwischenzustandes zu vermeiden.
-
Frühere Programmier-Sicherheitsabstandsbestimmungstechniken
umfassen Techniken, die zu Programmierungszwecken den Zellensignalpegel
oder die Referenzsignalpegel gegenüber ihren Werten während des
normalen Speicherauslesens verschieben. Die Auswirkung ist in beiden
Fällen
diejenige, dass bei einem gegebenen Programmier-Betrag der Zelle
die Zelle während
des Programmierens anders als während
eines normalen Auslesevorgangs gelesen wird. Der Unterschied entspricht
dem Verschiebungsbetrag des Zellensignals oder des Referenzsignals
und stellt einen Programmier-Randbereich dar. Beispiele dieser Techniken
werden in der
US 5,172,338 von
Mehrotra et al. und in Beliker et al., „A Four-State EEPROM Using
Floating-Gate Memory Cells",
IEEE Journal of Solid State Circuits, Band SC-22, Nr. 3, Juni 1987,
pp. 460–463
gefunden.
-
Eine
andere Sicherheitsabstandsbestimmungstechnik umfasst das Bereitstellen
zusätzlicher
Referenzsignale mit Pegeln zwischen jenen der Zustandsabgrenzungsreferenzpegeln.
Die Zwischenreferenzpegel definieren Programmier-Sicherheitsabstandbereiche in Verbindung
mit den Zustandsabgrenzungspegeln. Nachdem die Zelle den Sollspeicherzustand
erreicht, wie er durch Vergleich mit den Zustandsabgrenzungssignalen
angezeigt wird, wird die Programmierung basierend auf einem weiteren
Vergleich des Zellsignals mit einem oder mehreren Zwischenreferenzsignalen
fortgesetzt, um einen Programmier-Sicherheitsabstand vorzusehen.
Ein Beispiel dieser Technik wird in der
US 4,964,079 von Devin gefunden.
-
Bei
den zuvor beschriebenen Ansätzen
zum Programmieren von EANVM-Vorrichtungen
mit mehreren Bit pro Zelle ist die Programmiergeschwindigkeit (Gesamtzeit
zum Programmieren einer Zelle auf einem Sollzustand) im Wesentlichen
durch das Erfordernis nach einem wiederholten Auslesen der Speicherzelle
während
des Programmierverfahrens beschränkt.
Auch verursachen die zuvor erwähnten
Programmier-Sicherheitsabstandsbestimmungstechniken eine wesentliche
Verkomplizierung des Gesamtschaltungsaufbaus, da es erforderlich
ist, den Zellensignalpegel oder die Zustandsabgrenzungsreferenzsignalpegel
zu verschieben oder Zwischenreferenzpegel zum Festlegen von Programmier-Sicherheitsabstandsbereichen
in Verbindung mit den Zustandsabgrenzungsreferenzsignalpegeln bereitzustellen.
Ferner stellen diese Sicherheitsabstandsbestimmungstechniken keinen
optimalen Programmier-Sicherheitsabstand über Veränderungen von Betriebseigenschaften
der Zelle sicher, da sie nicht genau solche Veränderungen mit den sich ändernden
Bedingungen nachverfolgen, die die Betriebseigenschaften beeinträchtigen.
-
Zusammenfassung
der Erfindung
-
Die
der vorliegenden Anmeldung zu Grunde liegenden Vorgängeranmeldungen
offenbaren einen vollständig
unterschiedlichen Ansatz zum Programmieren eines EANVM mit mehreren
Bit pro Zelle (der Ansatz wird auch detailliert hierin beschrieben).
Gemäß diesem
Ansatz verwendet das Programmiersteuerungsschema ein Programmier-Referenzsignal,
das dem Sollspeicherzustand entspricht, um die Speicherzelle zu
programmieren, und erfordert kein Auslesen des Speicherzustandes
der Zelle während
der Programmierung. Siehe beispielsweise die
US 5,218,569 .
-
Die
in der vorliegenden Anmeldung beschriebene Erfindung wird durch
die beigefügten
Ansprüche
definiert.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
eine allgemeine schematische Darstellung einer nicht flüchtigen
Speicherzelle mit einem schwebenden Gate (floating gate).
-
2 ist
ein Blockdiagramm eines Speichersystems mit einem einzigen Bit des
Standes der Technik.
-
3 ist
ein Zeitdiagramm des Spannungsschwellenwerts eines EANVM-Systems
mit einem einzigen Bit pro Zelle des Standes der Technik, das von
einem gelöschten „1"-Zustand auf einen
programmierten „0"-Zustand programmiert
wird.
-
4 ist
ein Zeitdiagramm der Bitleitungsspannung eines EANVM mit einem einzigen
Bit pro Zelle des Standes der Technik während eines Lesevorganges.
Es stellt die Spannungssignale sowohl für den programmierten als auch
den gelöschten
Zustand dar.
-
5 ist
ein Blockdiagramm einer M × N-Speicheranordnung,
die ein EANVM-System mit mehreren Bit pro Zelle implementiert.
-
6 ist
ein Blockdiagramm einer Schaltung zum Lesen einer EANVM-Zelle mit mehreren
Bit.
-
7 zeigt
die Bitleitungsspannung als eine Funktion der Zeit während eines
Lesezyklus für
einen EANVM mit zwei Bit pro Zelle, die auf einen der vier möglichen
Zustände
(0, 0), (1, 0), (0, 1) und einen vollständig gelöschten Zustand (1, 1) programmiert
wurde. In dieser Figur werden vier separate Spannungspegel dargestellt,
die je einen der vier möglichen
Zustände
darstellen. Lediglich einer dieser wäre bei einem gegebenen Lesevorgang
vorhanden.
-
8 ist
ein Blockdiagramm eines Systems mit mehreren Bit pro Zelle, das
die Programmierungs-/Verifikations- und Lese-Schaltung kombiniert.
-
9 ist
ein Zeitdiagramm für
den Spannungsschwellenwert einer EANVM-Zelle mit zwei Bit, die von einem
vollständig
gelöschten
(1, 1)-Zustand auf einen der anderen drei möglichen Zustände programmiert wird.
-
10 ist
ein Zeitdiagramm, das den Spannungsschwellenwert einer EANVM-Zelle
mit zwei Bit darstellt, die von einem vollständig programmierten (0, 0)-Zustand
auf einen der anderen drei möglichen
Zustände gelöscht wird.
-
11 ist
ein Zeitdiagramm, das den Spannungsschwellenwert einer EANVM-Zelle
während
mit zwei Bit eines Programmierungs/Verifikations-Zyklus unter Verwendung
von Programmierimpulsen mit einer festen Breite darstellt.
-
12 ist
ein Zeitdiagramm, das die Bitleitungsspannung einer EANVM-Zelle mit zwei Bit
während eines
Programmierungs/Verifikations-Verfahrens
darstellt, das Programmierimpulse mit einer festgelegten Breite
verwendet.
-
13 ist
ein Zeitdiagramm, das den Spannungsschwellenwert für eine EANVM-Zelle
mit zwei Bit während
eines Programmierungs/Verifikations-Zyklus unter Verwendung von
Programmierimpulsen mit einer variablen Breite darstellt.
-
14 ist
ein Zeitdiagramm, das die Bitleitungsspannung einer EANVM-Zelle mit zwei Bit
während eines
Programmierungs/Verifikations-Vertfahrens
darstellt, das Programmierimpulse mit einer variablen Breite verwendet.
-
15 ist
eine vereinfachte Darstellung einer Schaltung zum Erzeugen von Lese-Referenzspannungen
zum Abgrenzen von Speicherzuständen
in einem EANVM mit zwei Bit pro Zelle gemäß der vorliegenden Erfindung.
-
16 ist
ein Diagramm, das die Beziehung zwischen den Lese- und Programmier-Referenzspannungen
in einem Speichersystem darstellt, das die Schaltung von 15 verwendet.
-
17 stellt
eine Modifikation an der Schaltung von 15 dar.
-
18 stellt
eine andere Schaltung zum Erzeugen von Lese-Referenzspannungen dar.
-
19 ist
eine verallgemeinerte Darstellung, die darstellt, wie die Schaltung
von 16 bei einer EANVM-Anordnung mit zwei Bit pro
Zelle angewendet werden kann.
-
20 ist
eine vereinfachte Darstellung einer Schaltung zum Erzeugen von Programmier-Referenzspannungen
gemäß der vorliegenden
Erfindung. Die Schaltung ist mit einer Verifikationsreferenzauswahlschaltung
zum Auswählen
aus den Programmier-Referenzspannungen
gekoppelt gezeigt.
-
21A–21D sind Zeitdiagramme der Bitleitungsspannung
während
des Auslesens einer EANVM-Zelle mit zwei Bit, die gemäß den Programmier-Referenzsignalen
für jede
der vier möglichen
Speicherzustände
programmiert ist.
-
22 ist
eine vereinfachte Darstellung, die eine kombinierte Schaltung zum
Erzeugen sowohl der Lese- als auch Programmier-Referenzspannungen gemäß der vorliegenden
Erfindung darstellt.
-
23 ist
ein Diagramm, das 22 ähnelt, bei dem aber die Referenzzellen
in der Form von ROM-Zellen ausgebildet sind.
-
Detaillierte
Beschreibung der Erfindung
-
Die
Erfindung wird jetzt detailliert in Verbindung mit mehreren bevorzugten
Ausführungsformen
beschrieben, die in den begleitenden Zeichnungen dargestellt sind.
Es versteht sich natürlich,
dass die veranschaulichenden Ausführungsformen lediglich beispielhaft
sind und dass der Bereich der vorliegenden Erfindung in den beigefügten Ansprüchen definiert
wird.
-
Allgemein
ausgedrückt
ermöglicht
die hierin beschriebene Erfindung, dass mehrere Informationsbits effizient
und zuverlässig
in einem und aus einem elektrisch änderbaren, nicht flüchtigen
Speicher (EANVM) gespeichert bzw. gelesen werden. Bei der bevorzugten
Anwendung der Erfindung wird dies durch elektrisches Variieren der
Leitfähigkeit
des Kanals eines FET mit einem schwebenden Gate erreicht, die sich
innerhalb eines beliebigen von Kn Leitfähigkeitsbereichen
befindet, wobei „K" die Basis des verwendeten
Zahlensystems (bei einem Binärsystem
gilt: K = 2) darstellt und n die Anzahl von pro Zelle gespeicherten
Bit pro Zelle (n ≥ 2) ist.
Der Leitfähigkeitsbereich
wird dann erfasst und basierend auf den Referenzsignalpegeln codiert,
die den Grenzen der Leitfähigkeitsbereiche
zum Auslesen der Speicherzelle entsprechen. Die Leitfähigkeit
des FET mit dem schwebenden Gate wird unter Verwendung einer Programmierhardware
und Programmieralgorithmen modifiziert, die an die EANVM-Speichervorrichtung
geeignete Signale in einem Programmierungs/Verifikations-Steuerungszyklus
liefern, der inkrementell Elektronen auf dem schwebenden Gate speichert,
bis der gewünschte
Leitwertpegel erreicht ist. Zum Zwecke der Darstellung wird unterstellt,
dass die hierin beschriebenen Systeme ein Binärsystem sind, das zwei Bit
pro Speicherzelle speichert.
-
I. Herkömmliche
EANVM-Vorrichtungen mit einem einzigen Bit
-
Bevor
der Gegenstand der vorliegenden Erfindung detailliert betrachtet
wird, ist es zweckmäßig zum Zwecke
des Ausblicks herkömmlicher
EANVM-Vorrichtungen mit einem einzigen Bit pro Zelle zu betrachten.
-
1 ist
eine allgemeine schematische Darstellung einer nicht flüchtigen
FET-Speicherzelle 10 mit einem
schwebenden Gate.
-
Die
FET-Speicherzelle 10 umfasst ein Steuerungsgate 12,
das entweder verwendet wird, um die Speicherzelle zum Lesen auszuwählen, oder
verwendet wird, um zu bewirken, dass Elektronen während des
Programmierverfahrens auf ein schwebendes Gate 14 injiziert
werden. Das schwebende Gate 14 ist eine elektrisch isolierte
Struktur, die unbegrenzt Elektronen speichern kann. Ein Drain-Bereich 16 des
FET ist mit einem Source-Bereich 18 durch einen Kanalbereich 19 verbunden.
Das Vorhandensein oder das Fehlen von Elektronen auf dem schwebenden
Gate 14 ändert
den Spannungsschwellenwert der Speicherzelle 10 und ändert folglich
die Leitfähigkeit
seines Kanalbereichs. Falls das schwebende Gate 14 vollständig gelöscht ist
und das Steuerungsgate 12 ausgewählt ist, befindet sich der
Kanalbereich 19 im vollständig „eingeschalteten" oder stark leitenden
Zustand. Wenn das schwebende Gate 14 vollständig programmiert
ist, befindet sich der Kanalbereich 19 im vollständig „ausgeschalteten" oder schwach leitenden
Zustand.
-
2 ist
ein Blockdiagramm eines herkömmlichen
EANVM-Speichersystems 30 mit einem einzigen Bit. Das Speichersystem 30 speichert
ein einziges Informationsbit in einer EANVM-Zelle (FET) 32.
Die Zelle 32, die den gleichen Aufbau wie der FET 10 in 1 hat,
wird zum Lesen oder Schreiben ausgewählt, wenn ein Zeilen- oder
Wort-Auswahlsignal
an einen Steuerungsgateanschluss 34 angelegt wird. Ein
Source-Anschluss 36 für die Zelle 32 ist
an ein Referenzmassepotenzial angeschlossen. Ein Drain-Anschluss 38 ist über eine
Pull-Up-Einrichtung (Widerstand) 39 an eine Spannung Vpull-up
an einem Anschluss 40 angeschlossen. Der Anschluss 38 dient
als Ausgangsanschluss der Zelle 32. Falls die Zelle 32 ein „0"-Bit speichert, befindet sich
der Kanal des FET in einem Zustand mit einem niedrigen Leitwert
oder einer hohen Impedanz, so dass die Spannung am Anschluss 38 auf
den Spannungspegel Vpull-up am Anschluss 40 hochgezogen
wird. Falls die Zelle 32 ein „1"-Bit speichert, befindet sich der Kanal
des FET in einem Zustand mit einem hohen Leitwert oder einer niedrigen
Impedanz, so dass die Spannung am Anschluss 38 durch das
Massepotenzial am Anschluss 36 nach unten gezogen wird.
-
Zum
Lesen des Wertes des einzigen in der Zelle 32 gespeicherten
Bits vergleicht ein Leseverstärker 42 die
Spannung am Anschluss 38 mit einer Referenzspannung Ref
an einem Anschluss 43. Falls eine „0" in der EANVM-Zelle 32 gespeichert
ist, befindet sich die Zelle in einem Zustand mit einer niedrigen
Leitfähigkeit und
folglich befindet sich die Spannung am Anschluss 38 über der
Referenzspannung am Anschluss 43. Der Ausgangsanschluss 44 des
Leseverstärkers 42 befindet
sich auf einer niedrigen Spannung, die über einen Ausgangspuffer 46 an
einen Anschluss 48 übertragen
wird und anschließend
an einen Eingangs/Ausgangs-Anschluss (I/O-Anschluss) 50 als
logische „0" gekoppelt wird.
Falls in der EANVM-Zelle 32 eine „1" gespeichert ist, befindet sich die
Zelle in einem Zustand mit einer hohen Leitfähigkeit und folglich befindet
sich die Spannung am Anschluss 38 unter der Referenzspannung
am Anschluss 43. Der Ausgang des Leseverstärkers 42 wird
eine hohe Spannung sein, die an den Eingangs/Ausgangs-Anschluss 50 als
eine logische „1" übertragen wird.
-
Zum
Schreiben des Wertes eines Informationsbits in die Zelle 32 wird
angenommen, dass sich die Zelle 32 anfänglich im gelöschten oder
vollständig „eingeschalteten" Zustand befindet,
der einer logischen „1" entspricht. Der
Eingangs/Ausgangs-Anschluss 50 ist
an den Eingangsanschluss eines Eingangs-Speichers/Puffers 52 angeschlossen.
Der Ausgang des Eingangs-Speichers/Puffers 52 ist an einen
Aktivie rungs/Deaktivierungs-Anschluss 54 eines Programmierspannungsschalter 56 angeschlossen.
Der Programmierspannungsschalter 56 stellt eine Bitleitungsprogrammierspannung
auf einer Signalleitung 58 bereit, die an den Anschluss 38 angeschlossen
ist. Ein anderer Ausgang des Programmierspannungsschalters 56 ist
die Wortleitungsprogrammierspannung auf einer Signalleitung 62,
die an den Steuerungsgateanschluss 34 der EANVM-Zelle 32 angeschlossen
ist. Falls eine logische „0" am Anschluss 54 des
Programmierspannungsschalters 56 vom Ausgang des Eingangs-Speicher/Puffers 52 anliegt
und der Programmierspannungsschalter 56 durch einen Programmierimpuls
auf einer Signalleitung 64 von einem Programmierimpulsgenerator 66 aktiviert
wird, der durch einen PGM/Schreiben-Signal (Programmieren/Schreiben)
aktiviert wird, stellt der Programmierspannungsschalter 56 die
Programmierspannung Vpp (typischerweise 12 Volt) von einem Anschluss 68 dem
Steuerungsgateanschluss 34 der EANVM-Zelle 32 über die
Signalleitung 62 bereit. Der Programmierspannungsschalter 56 legt
an den Drain-Bereich der EANVM-Zelle 32 eine Vorspannung
von etwas weniger als Vpp, typischerweise etwa 8 bis 9 Volt, an.
Unter diesen Bedingungen werden Elektronen in das schwebende Gate
durch ein Phänomen
injiziert, das als Injektion heißer Elektronen (hot electron
injection) bekannt ist. Diese Programmierungsprozedur erhöht den Spannungsschwellenwert
der EANVM-Zelle, was ihre Source-Drain-Impedanz erhöht. Dies
wird fortgesetzt, bis die FET-Speicherzelle 32 effektiv
abgeschaltet ist, was einem „0"-Zustand entspricht.
Wenn eine „1" am Anschluss 54 vom
Ausgang des Eingangs-Speichers/Puffers 52 vorhanden ist
und das PGM/Schreib-Signal aktiviert ist, wird die Signalleitung 58 auf
ein niedriges Potenzial gesteuert und eine Programmierung wird verhindert,
so dass die „1" oder der gelöschte Zustand
beibehalten werden.
-
3 ist
ein Zeitdiagramm, das die Änderung
des Spannungsschwellenwerts der EANVM-Zelle 32 unter der
Steuerung der Wortleitungs- und Bitleitungsprogrammierspannung darstellt,
während
die Speicherzelle von dem vollständig
gelöschten „1"-Zustand auf den vollständig programmierten „0"-Zustand programmiert
wird. Zur Vereinfachung werden die Wortleitungs- und Bitleitungsprogrammierspannung,
die durch das PGM/Schreib-Signal gesteuert werden, als ein einzelner
Impuls gezeigt. Für
die Dauer des PGM/Schreib-Impulses werden die Bit- und Wortleitungsprogrammierspannung
entsprechend an den Drain-Anschluss der Speicherzelle 32 über den
Bitleitungsanschluss 38 und an das Steuerungsgate über den
Steuerungsgateanschluss 34 der Speicherzelle 32 angelegt.
Während
Elektronen auf das schwebende Gate injiziert werden, beginnt der
Spannungsschwellenwert der Speicherzelle zu steigen. Sobald der
Spannungsschwellenwert über einen
speziellen Schwellenwert erhöht
wird, der durch die gestrichelte horizontale Linie angezeigt wird,
ist die Speicherzelle 32 auf einen „0"-Zustand programmiert.
-
Anstelle
der Injektion heißer
Elektronen kann auch der Fowler-Nordheim-Tunnelefekt verwendet werden,
um die Elektronen auf dem schwebenden Gate zu platzieren. Die hierin
beschriebene Mehrbit-EANVM-Vorrichtung funktioniert mit beiden Speicherzellenprogrammiertechniken.
Die herkömmlichen
Programmieralgorithmen und -Schaltungen für beide Arten der Programmierung
sind derart ausgelegt, dass sie eine Zelle mit einem einzigen Bit
in so kurzer Zeit wie möglich
mit einem Sicherheitsabstand programmieren, der so groß wie möglich ist.
Bei einer Speicherzelle mit einem einzigen Bit ist der Sicherheitsabstand
als der zusätzliche
Spannungsschwellenwert definiert, der erforderlich ist, um sicher
zu stellen, dass die programmierte Zelle ihren gespeicherten Wert über die
Zeit weiterbehält.
-
4 ist
ein Zeitdiagramm, das die Bitleitungsspannung am Anschluss 38 als
eine Funktion der Zeit während
eines Speicherauslesvorganges zeigt. In diesem Beispiel ist vor
dem Zeitpunkt t1 die Bitleitung auf den Vpull-up-Zustand geladen.
Es ist festzustellen, dass es auch möglich ist, dass die Bitleitung
vor dem Zeitpunkt t1 bei einem beliebigen anderen Spannungspegel
beginnen kann. Zum Zeitpunkt t1 wird die EANVM-Zelle 32 ausgewählt und,
falls sich die Zelle 32 in dem gelöschten oder „1"-Zustand befindet, stellt die Zelle 32 einen
Pfad mit einer niedrigen Impedanz zur Masse bereit. Folglich wird
die Bitleitung in die Nähe
des Massepotentials hinunter gezogen, das in 2 am Anschluss 36 bereitgestellt
wird. Falls sich die EANVM-Zelle 32 in
dem „0"- oder vollständig programmierten
Zustand befindet, bleibt die Bitleitungsspannung nach dem Zeitpunkt
t1 auf der Spannung Vpull-up. Die Spannung am Bitleitungsanschluss 38 und
die Referenzspannung Ref am Anschluss 43 werden durch den
Leseverstärker 42 verglichen,
dessen gepufferter Ausgang den Eingangs/Ausgangs-Anschluss 50 ansteuert.
Falls die Referenzspannung höher
als die Bitleitungsspannung ist, ist das Ausgangssignal am Eingangs/Ausgangs-Anschluss 50 eine
logische „1". Falls die Referenzspannung
niedriger als die Bitleitungsspannung ist, ist das Ausgangssignal
am Eingangs/Ausgangs-Anschluss 50 eine logische 0".
-
II. Speicheranordnung
für ein
Mehrbit-EANVM-System
-
5 ist
ein Blockdiagramm eines erfindungsgemäßen EANVM-Systems 100 mit
mehreren Bit pro Zelle, das eine M × N-Anordnung von EANVM-Zellen
umfasst. Die Zellen sind als FET-Zellen 102 mit einem schwebenden
Gate dargestellt, die den gleichen Aufbau aufweisen, wie in Verbindung
mit 1 beschrieben ist. Der allgemeine Aufbau des Systems ähnelt demjenigen,
der für
herkömmliche
Speichervorrichtungen mit einem einzigen Bit pro Zelle verwendet
wird, obwohl es auf der Detailebene signifikante Unterschiede hinsichtlich
der Implementierung für
mehrere Bit pro Zelle gibt, wie später ersichtlich werden wird.
-
Jede
Zelle 102 in 5 gehört zu einer Zeile und einer
Spalte der Anordnung und ihr Source-Bereich ist an ein Massereferenzpotenzial
und ihr Drain-Bereich ist an eine entsprechende Spaltenbitleitung 106 angeschlossen.
Die Spaltenbitleitungen sind an entsprechenden Pull-Up-Einrichtungen
angeschlossen, die gemeinsam durch den Block 105 dargestellt
sind. Alle Steuerungsgates einer Zellenzeile sind an eine entsprechende
Zeilenauswahlleitung 104 oder Wortleitung 104 angeschlossen.
Die Zeilen werden mit einer Zeilenauswahlschaltung 108 und
die Spalten werden mit einer Spaltenauswahlschaltung 110 auf übliche Weise
ausgewählt.
Die Zeilen- und Spaltenadresssignale werden über entsprechende Adressbusse 103A und 103B bereitgestellt.
Für jede
der Spalten der Anordnung sind Leseverstärker 112 vorgesehen.
Es sind auch Decodier/Codier-Schaltungen 114 und n-Bit-Eingangs/Ausgangs-Speicher/Puffer 116 vorgesehen
(n = 2 für
ein System mit 2 Bit pro Zelle). Ein PGM/Schreib-Signal wird an
einem Eingangsanschluss 118 zum Aktivieren einer Modussteuerungsschaltung 120 und
einer Zeitsteuerungsschaltung 122 bereitgestellt.
-
Ein
signifikanter Vorteil dieses Systems 100 mit mehreren Bit
pro Zelle verglichen mit einer Implementierung mit einem einzigen
Bit pro Zelle ist, dass die Speicherdichte um einen Faktor n erhöht wird,
wobei n die Anzahl von Bits ist, die in einer einzelnen Mehrbit-Speicherzelle
gespeichert werden kann.
-
III. Grundlegender) Lese-Modus/Schaltung
für eine
Mehrbit-Speicherzelle
-
6 zeigt
ein binäres
System
150 zum Lesen des Zustandes einer Mehrbit-Speicherzelle
102 mit einem
schwebenden Gate. Es wird angenommen, dass in diesem Beispiel die
Anzahl von Bits pro Zelle (n) 2 ist, so dass einer der vier Zustände der
Speicherzelle detektiert werden muss, wobei die vier Zustände (0,
0), (0, 1), (1, 0) und (1, 1) sind. Um zu detektieren, welcher Zustand
programmiert ist, wird ein Leseverstärker
152 mit vier
Pegeln vorgesehen. Dieser Verstärker
umfasst drei Leseverstärker
154,
156 und
158,
wobei der negative Eingangsanschluss eines jeden Leserverstärkers an
den Ausgangsanschluss
138 der Speicherzelle
102 angeschlossen
ist. Eine Referenzspannung Ref3 ist an den positiven Eingangsanschluss
des Leseverstärkers
154 angeschlossen,
eine Referenzspannung Ref2 ist an den positiven Eingangsanschluss
des Leseverstärkers
156 angeschlossen
und eine Referenzspannung Ref1 ist an den positiven Eingangsanschluss
des Leseverstärkers
158 angeschlossen.
Diese Referenzspannungen begrenzen die vier Speicherzustände der
Zelle
102 und sind derart festgelegt, dass sie die Beziehung
Vpull-up > Ref3 > Ref2 > Ref1 erfüllen (bevorzugte Techniken
zum Erzeugen dieser Referenzspannungen werden später beschrieben). Die entsprechenden
Ausgangssignale S3, S2, S1 dieser drei Leseverstärker steuern eine Codierungslogikschaltung
160 an,
die die erfassten Signale S3, S2, S1 in ein geeignetes 2-Bit-Datenformat
codiert. Das Bit 0 wird an einem Eingangs/Ausgangs-Anschluss
162 und
das Bit 1 wird an einem Eingangs/Ausgangs-Anschluss
164 bereitgestellt.
Eine Wahrheitstabelle für
die Codierungslogikschaltung
160 ist wie folgt:
-
Während eines
Lesevorgangs der Mehrbit-Speicherzelle 102 werden die Pegel
der entsprechenden Ausgangssignale S3, S2, S1 der Leseverstärker 154, 156, 158 durch
den Leitwert bestimmt, auf den die Speicherzelle während eines
(später
zu beschreibenden) Programmiervorganges eingestellt wurde. Wenn
sie vollständig
gelöscht
ist, befindet sich die EANVM-Zelle 102 in ihrem Zustand
mit der niedrigsten Schwellenwertspannung, d. h. dem Zustand mit
dem höchsten
Leitwert. Folglich werden alle der Referenzspannungen höher als
die Bitleitungsspannung am Anschluss 138 sein, was einen
(1, 1)-Zustand anzeigt. Wenn sie vollständig programmiert ist, befindet
sich die EANVM-Zelle 102 in ihrem Zustand mit der höchsten Schwellenwertspannung,
d. h. in ihrem Zustand mit dem niedrigsten Leitwert. Folglich sind
alle Referenzspannungen niedriger als die Bitleitungsspannung am
Anschluss 138, was einen (0, 0)-Zustand anzeigt. Die Zwischenschwellenwertzustände werden
codiert, wie in der vorstehenden Wahrheitstabelle für die Logikschaltung 160 angezeigt
ist.
-
7 zeigt
die Bitleitungsspannung am Anschluss 138 als eine Funktion
der Zeit während
eines Lesezyklus für
die Speicherzelle 102. Zum Zwecke der Darstellung werden
alle der vier möglichen
Spannungssignale dargestellt, die einen der vier möglichen
programmierten Zustände
der Speicherzelle entsprechen. Während
eines Le sezyklus wird nur das Signal auftreten, das den tatsächlich programmierten
Zustand der EANVM-Zelle entspricht. Es wird beispielsweise angenommen,
dass die EANVM-Speicherzelle 102 auf
einen (1, 0)-Zustand programmiert wurde. Weil die EANVM-Zelle 102 noch
nicht ausgewählt
oder aktiviert wurde, wird vor den Zeitpunkt t1 die Bitleitung 106 auf
Vpull-up hochgezogen. Zum Zeitpunkt t1 wird die EANVM-Zelle unter
Verwendung von Standardspeicheradressdecodierungstechniken ausgewählt. Weil
die EANVM-Zelle auf einen speziellen Leitwertpegel durch die Ladung
auf dem schwebenden Gate programmiert wurde, wird die Bitleitung
auf einen speziellen Spannungspegel hinuntergezogen, der dem Strombetrag
entspricht, für
den die Zelle bei diesem spezifischen Leitwertpegel eine Senke bereitstellen
kann. Wenn dieser Punkt zum Zeitpunkt t2 erreicht wird, stabilisiert
sich die Bitleitungsspannung bei einem Spannungspegel Vref3 zwischen
den Referenzspannungen Ref3 und Ref2, die den (1, 0)-Zustand begrenzen.
Wenn die EANVM-Zelle 102 deselektiert wird, kehrt die Bitleitungsspannung
zu ihrem Pull-Up-Zustand zurück. Ähnlich stabilisiert
sich die Bitleitungsspannung bei Vref2 für den (0, 1)-Zustand oder bei
0 Volt für
den (1, 1)-Zustand.
-
IV. Programmier- und Lese-Schaltung
für eine
Mehrbit-EANVM-Zelle
-
8 ist
ein Blockdiagramm einer Schaltung 200 zum Programmieren
und Lesen der Speicherzelle 102. Obwohl ein binäres System
mit zwei Bit pro Zelle zum Zwecke der Darstellung gezeigt ist, versteht
es sich, dass die Prinzipien der Erfindung ähnlich auf ein beliebiges System
anwendbar sind, bei dem die EANVM-Zelle mehr als zwei Zustände aufweist.
Beispielsweise können
bei einem nicht binären
System drei oder ein beliebiges anderes Vielfaches einer nicht binären Basis
an Speicherzuständen
vorhanden sein.
-
Das
System 200 umfasst eine Speicherzelle 102 mit
einem Bitleitungsausgangsanschluss 138. Für den Lesemodusbetrieb
werden der Leseverstärker 152 mit
vier Pegeln, der mit Lese-Referenzspannungen Ref1, Ref2, Ref3 versorgt
wird, und der Codierer 160 vorgesehen. Lesedaten werden
am Eingangs/Ausgangs-Anschluss 162 für Bit 0 und am Eingangs/Ausgangs-Anschluss 164 für Bit 1
bereitgestellt.
-
Für den Schreibmodusbetrieb
stellt eine Verifikationsreferenzauswahlschaltung 222 ein
analoges Programmier-Spannungsreferenzpegelsignal X an einem Eingangsanschluss
eines analogen Komparators 202 bereit. Die Programmier-Referenzspannungen
werden derart ausgewählt,
dass, sobald die Bitleitungsspannung auf der Bitleitung 106 den
dem Sollspeicherzustand entsprechenden Program mier-Referenzspannungspegel
erreicht hat, die EANVM-Zelle 102 auf einen geeigneten
Schwellenwert gesetzt wird, der dem Sollspeicherzustand entspricht.
Die Programmier-Referenzspannungen Vref1, Vref2, Vref3 und Vref4
sind derart festgelegt, dass sich Vref4 über Ref3, Vref3 zwischen Ref3
und Ref2, Vref2 zwischen Ref1 und Ref2 und Vref1 unter Ref1 befindet.
Während
eines normalen Lesevorgangs eines der beiden Zwischenspeicherzustände wird sich
folglich die Bitleitungsspannung im Wesentlichen in der Mitte zwischen
den Lese-Referenzspannungen einpendeln, die den Zwischenzustand
begrenzen, um sicherzustellen, dass die Speicherinhalte genau gelesen werden.
-
Die
Verifikationsreferenzauswahlschaltung 222 wird durch zwei
Ausgangsbits von einer Eingangs-Speicher/Puffer-Schaltung 224 mit
zwei Bit gesteuert, die binäre
Eingangsbits von den Eingangs/Ausgangs-Anschlüssen 162 und 164 erhält. Der
Y-Signaleingangsanschluss
des analogen Komparators 202 ist an den Bitleitungsausgangsanschluss 138 der
mehrpegeligen Speicherzelle 102 angeschlossen. Das Ausgangssignal
von dem analogen Komparator wird auf einer Signalleitung 204 als
ein Aktivierungs/Deaktivierungs-Signal für einen Programmierspannungsschalter 220 bereitgestellt.
-
Eine
Ausgangssignalleitung 206 von dem Programmierspannungsschalter 220 stellt
dem Steuerungsgate der EANVM-Zelle 102 die Wortleitungsprogrammierspannung
bereit. Eine andere Ausgangssignalleitung 106 stellt dem
Bitleitungsanschluss 138 der EANVM-Zelle 102 die
Bitleitungsprogrammierspannung bereit.
-
Nachdem
die Programmierungs/Verifikations-Zeitsteuerungsschaltung 208 durch
das PGM/Schreib-Signal aktiviert ist, das auf einer Signalleitung 212 von
einem PGM/Schreib-Anschluss 214 bereitgestellt wird, stellt
die Zeitsteuerungsschaltung 208 eine Reihe von Programmier/Verifikations-Zeitsteuerungsimpulsen
dem Programmierspannungsschalter 220 auf einer Signalleitung 210 bereit.
Die Impulsbreiten sind derart festgelegt, dass sie das Programmierverfahren
derart steuern, dass der Spannungsschwellenwert der EANVM-Zelle 102 durch
Steuern der Injektion von Ladung auf das schwebende Gate der EANVM-Zelle inkrementell
geändert
wird. Jeder Programmierzyklus ändert
den Spannungsschwellenwert und folglich den Leitwert der Speicherzelle 102.
Nachdem der jeweilige interne Programmierzyklus abgeschlossen ist,
was dadurch angezeigt wird, dass die Signalleitung 210 auf
ein „hohes" Potenzial geht,
werden die durch den Programmierspannungsschalter 220 bereitgestellten
Programmierspannungen entfernt, und ein Verifikationszyklus beginnt.
Der Spannungsschwellenwert der Speicherzelle 102 wird anschließend unter Verwendung
des Komparators 202 bestimmt, um die Bitleitungsspannung
am Anschluss 138 mit der ausgewählten Programmier-Referenzspannung
von der Verifikationsreferenzauswahlschaltung 222 zu vergleichen.
Wenn die Bitleitungsspannung den von der Verifikationsreferenzauswahlschaltung 222 bereitgestellten
Pegel der Programmier-Referenzspannung erreicht hat, wird das Ausgangssignal
von dem Komparator auf einer Leitung 204 den Programmierspannungsschalter 220 deaktivieren,
was den Programmierzyklus beendet.
-
Während eines
Schreibvorganges wird ein Vergleich der aktuellen analogen Inhalte
der Speicherzelle mit der in die Speicherzelle 102 zu programmierenden
analogen Information durch den analogen Komparator 202 durchgeführt. Eine
analoge Ausgangsspannung X der Verifikationsreferenzauswahlschaltung 222 wird durch
decodieren des Ausgangssignals des Eingangs-Speicher/Puffer 224 mit
zwei Bit bestimmt. Das Y-Eingangssignal in den analogen Komparator 202 wird
direkt von dem Bitleitungsanschluss 138 abgegriffen. Es
ist festzustellen, dass die Erfassung/Kodierungs-Schaltungen mit vier Pegeln 152, 160 und
die Verifikationsreferenzauswahlschaltung 222 vollständig unabhängig sein
können,
wie in der Zeichnung angedeutet ist. Alternativ können sie
miteinander gekoppelt sein, um gemeinsame Schaltungskomponenten
zeitlich alternierend gemeinsam zu verwenden. Dies ist möglich, weil
die Erfassungs/Codierungs-Schaltungen 152 und 160 mit
vier Pegeln im Lesemodusbetrieb verwendet werden, während die
Verifikationsreferenzauswahlschaltung 222 lediglich im
Schreib/Verifikations-Modusbetrieb verwendet wird.
-
V. Grundlegender Schreibmodus
für eine
Mehrbit-EANVM-Zelle
-
Im
Schreibmodus muss ein binäres
EANVM-System mit mehreren Bits pro Zelle in der Lage sein, eine Speicherzelle
elektrisch zu programmieren, um 2n eindeutig
unterschiedlich Schwellenwertpegel bereitzustellen (n = die Anzahl
von Bits pro Zelle). Bei der Implementierung mit zwei Bit pro Zelle
ist es lediglich erforderlich, auf drei unterschiedliche Schwellenwerte
zu programmieren, die den drei nicht gelöschten Zuständen entsprechen, falls angenommen
wird, dass die Zelle von dem gelöschten
(1, 1)-Zustand beginnt. Ein erster derartiger Schwellenwert ist
so festgelegt, dass im Lesemodus die Bitleitungsspannung zwischen
Ref1 und Ref2 fällt.
Ein anderer derartiger Schwellenwert ist so bestimmt, dass im Lesemodus
die Bitleitungsspannung zwischen Ref2 und Ref3 fällt. Der dritte derartige Schwellenwert
ist so bestimmt, dass im Lesemodus die Bitleitungsspannung größer als
Ref3 ist.
-
9 stellt
die Änderung
des Spannungsschwellenwertes einer EANVM-Zelle mit vier Pegeln oder zwei
Bit dar, während
das schwebende Gate von einem gelöschten (1, 1)-Schwellenwertzustand
zu einem der drei anderen möglichen
Zustände
geladen wird (das Laden ist der Einfachheit halber kontinuierlich
dargestellt). Vt1, Vt2 und Vt3 in 9 sind Schwellenwerte,
die den Lese-Referenzwerten Ref1, Ref2 bzw. Ref3 entsprechen. Die
mit (0, 1), (1, 0) und (0, 0) bezeichneten Kurven entsprechen den
Programmierschwellenwerten für jene
Zustände,
die die drei nicht gelöschten
Zustände
sind. Bei Speicherzellen mit einem einzigen Bit des Standes der
Technik, wo es lediglich zwei Zustände gibt, ist es das Entwicklungsziel,
dem schwebenden Gate genügend
Ladung bereitzustellen, um sicher zu stellen, dass der Spannungsschwellenwert
der Zelle so hoch wie möglich
programmiert ist, wie in 3 gezeigt ist. Weil es keinen
oberen Grenzwert für
den Schwellenwert in einem System mit einem einzigen Bit pro Zelle
gibt, verursacht ein Überprogrammieren
der Zelle nicht, dass nicht korrekte Daten in der Speicherzelle
gespeichert werden.
-
Es
versteht sich aus 9, dass bei einem System mit
mehreren Bit pro Zelle die Speicherzelle auf einen Punkt geladen
werden muss, so dass sich der Spannungsschwellenwert innerhalb eines
speziellen Spannungsschwellenwertbereich befindet. Wenn die Zelle
beispielsweise auf einen (1, 0)-Zustand programmiert wird, wird
der ordnungsgemäße Schwellenwertbereich
derart definiert, dass er sich über
einem Schwellenwertpegel Vt2 und unter einem Schwellenwertpegel
Vt3 befindet. Um diese Mehrpegelprogrammierung zu erreichen, wird
die EANVM-Schaltung des Standes der Technik in die in 8 gezeigte
Anordnung modifiziert. Der Komparator in 8 ist zufällig, wie
gezeigt ist, vorzugsweise analog. Jedoch könnte ein digitaler Komparator
verwendet werden.
-
10 stellt
den Spannungsschwellenwert einer EANVM-Zelle mit vier Pegeln oder
zwei Bit dar, während
das schwebende Gate von einem (0, 0)-Zustand gelöscht wird (das Löschen wird
der Einfachheit halber kontinuierlich dargestellt). Die EANVM-Programmierungsbetriebsprozedur
kann erfordern, dass eine Speicherzelle vor dem Programmieren zu
löschen
ist. Dieses Löschen
kann auf der Byte-, Block- oder Chip-Ebene durchgeführt werden, und es kann durch
elektrische Mittel, UV-Mittel oder anderen Mittel durchgeführt werden. Bei
diesem Typ von System würde
die Zelle vollständig
auf einen (1, 1)-Zustand vor dem Beginnen eines Programmierzyklus
gelöscht
werden. Falls ein System die Fähigkeit
besitzt, eine einzelne Speicherzelle zu löschen, dann ist es nicht erforderlich,
alle Zellen einer Gruppe vor dem Beginn eines Programmiervorganges zu
löschen.
Es ist dann möglich,
eine einzelne Speicherzelle inkrementell zu löschen, wie es erforderlich
ist, um die Zelle auf den Geeigneten der Spannungsschwellenwerte
zu programmieren, die durch die mit (1, 0), (0, 1) und (1, 1) bezeichneten
Kurven angezeigt werden.
-
11 ist
ein Spannungsschwellenwertzeitdiagramm, das darstellt, wie das System
von 8 die EANVM-Zelle 102 mit zwei Bit von
einem gelöschten
(1, 1)-Zustand zu einem (1, 0)-Zustand unter Verwendung der Zeitsteuerungsschaltung 208 programmiert,
um Zeitsteuerungsimpulse mit einer festen Breite zu erzeugen. Ein
Zustand mit einem niedrigen logischen Pegel des PGM/Schreib-Signals
auf der Signalleitung 212 aktiviert die Zeitsteuerungsschaltung 208.
Nachdem sie zum Zeitpunkt t1 aktiviert wurde, stellt die Zeitsteuerungsschaltung 208 einen
internen PGM-Zeitsteuerungsimpuls
mit einer festen Breite und einem niedrigen Pegel auf der Signalleitung 210 bereit,
um den Spannungsschalter 220 zu programmieren. Dieser Impuls
wird nach einem anfänglichen
Verifikationszyklus ausgegeben, der in Verbindung mit 12 diskutiert
wird. Für
die Dauer des niedrigen Zustandes des internen PGM-Zeitsteuerungsimpulses
werden die Bitleitungs- und Wortleitungs-Programmierspannungsausgangssignale
auf den Leitungen 106 und 206 auf ihre entsprechenden Programmierspannungspegel
angehoben, wie in 11 gezeigt ist. Während dieses
Programmierungsverfahrens wird eine Ladung zu dem schwebenden Gate
der Speicherzelle 102 hinzugefügt. Wenn der interne PGM-Zeitsteuerungsimpuls
von der Zeitsteuerungsschaltung 208 auf einen hohen Pegel
umschaltet, werden die Programmierspannungen entfernt und ein Verifikationszyklus
beginnt. Bei diesem Beispiel wird die Verifikationsreferenzspannung
Vref3 mit der Bitleitungsspannung verglichen. Dieser intern gesteuerte
Programmierungs/Verifikations-Zyklus wiederholt sich, bis die Bitleitungsspannung
am Anschluss 138 Vref3 erreicht hat. Zu diesem Zeitpunkt
t2 wird die EANVM-Zelle 102 dahingehend verifiziert, dass
sie auf einen (1, 0)-Zustand programmiert wurde, und die Programmierung
wird durch den Komparator 222 abgebrochen, der ein Deaktivierungssignal
auf der Signalleitung 204 zum Programmier-Spannungsschalter 220 bereitstellt.
-
12 stellt
die Bitleitungsspannung der EANVM-Zelle 102 mit zwei Bit
dar, während
sie von dem vollständig
gelöschten
oder vollständig „eingeschalteten" Zustand (1, 1) auf
den teilweise „ausgeschalteten" Zustand (1, 0) unter
Verwendung von Programmierimpulsen mit einer festen Breite programmiert
wird. Wenn der extern angelegte PGM/Schreib-Impuls zu einem Zeitpunkt
t1 angelegt wird, beginnt die Programmierung/Verifikations-Zeitsteuerungsschaltung 208 zuerst
einen Verifikationszyklus, um den aktuellen Zustand der Speicherzelle 102 zu
bestimmen. Dies wird dadurch angezeigt, dass die Bitleitungsspannung
auf einen Massezustand (der dem gelöschten Zustand entspricht)
in diesem Beispiel von Vpull-up gezogen wird, obwohl vor dem Zeitpunkt
t1 die Bitleitungsspannung auf einen beliebigen Spannungspegel voreingestellt
sein kann. Sobald festgestellt wurde, dass sich die Zelle in dem
gelöschten
Zustand befindet, wird der erste Programmierzyklus begonnen. Dies
wird dadurch dargestellt, dass die Bitleitungsspannung auf Vprogram
nach oben gezogen wird. Nachdem der erste Programmierimpuls mit
einer festen Breite endet, beginnt ein Verifikationszyklus. Dies wird
dadurch dargestellt, dass die Bitleitungsspannung auf einen Punkt
in der Mitte zwischen dem Massepotential und dem Potential Ref1
nach unten gezogen wird. Während
jedes folgenden Verifikationszyklus wird die Bitleitungsspannung
beobachtet, ob sie inkrementell zunimmt. Dieser Programmierungs/Verifikations-Zyklus wird
fortgesetzt, bis die Bitleistungsspannung die ausgewählte Programmier-Referenzspannung,
in diesem Fall Vref3, erreicht hat, die einen Speicherzustand von
(1, 0) zum Zeitpunkt t2 anzeigt.
-
13 stellt
dar, wie die EANVM-Zelle 102 mit zwei Bit von dem gelöschten (1,
1)-Zustand auf den
(1, 0)-Zustand unter Verwendung einer Zeitsteuerungsschaltung 208,
die Programmierimpulse variabler Breite erzeugt, programmiert wird.
Die internen PGM-Impulse für
diese Implementierung beginnen mit einem niedrigem Zustand, der
länger
ist als derjenige der Implementierung mit einer festen Breite von 11 und 12.
Die Impulsbreiten eines niedrigen Zustandes werden progressiv kürzer, während die,
Speicherzelle den Sollspannungsschwellenwert erreicht. Dieser Ansatz
erfordert eine präzisere
Steuerung als der Ansatz mit der festen Breite. Jedoch können die
Programmierzeiten durchschnittlich stark reduziert werden.
-
14 stellt
die Bitleitungsspannungen der Zelle 102 dar, während sie
von dem vollständig
gelöschten oder
vollständig „eingeschalteten" Zustand (1, 1) auf
den teilweise „ausgeschalteten" Zustand (1, 0) unter
Verwendung von Programmierimpulsen variabler Länge programmiert wird. Wenn
der extern angelegte PGM/Schreib-Impuls
zum Zeitpunkt t1 auf einen aktiven niedrigen Pegel geht, beginnt
die Programmierungs/Verifikations-Zeitsteuerungsschaltung 208 zuerst
einen Verifikationszyklus, um den aktuellen Zustand der Speicherzelle 102 zu
bestimmen. Dies wird angezeigt, indem die Bitleitungsspannung auf
einen Massezustand (der dem gelöschten
Zustand entspricht) in diesem Beispiel von Vpull-up gezogen wird,
obwohl vor dem Zeitpunkt t1 die Bitleitungsspannung auf einen beliebigen
Spannungspegel voreingestellt sein kann. Sobald festgestellt wurde,
dass sich die Zelle in dem gelöschten
Zustand befindet, wird ein erster Programmierzyklus begonnen. Dies
wird dadurch dargestellt, dass die Bitleitungsspannung auf Vprogram
hochgezogen wird. Nachdem der erste Programmierimpuls variabler
Länge vorbei
ist, beginnt ein weiterer Verifikationszyklus. Dies wird dadurch
dargestellt, dass die Bitleitungsspannung auf einen Punkt in der
Mitte zwischen Ref1 und Ref2 nach unten gezogen wird. Während jedes
folgenden Verifikationszyklus wird die Bitleitungsspannung beobachtet,
ob sie zugenommen hat. Dieser Programmierungs/Verifikations-Zyklus
wird fortgesetzt, bis die Bitleitungsspannung die ausgewählte Programmier-Referenzspannung,
in diesem Fall Vref3 erreicht hat, die einen Speicherzustand von
(1, 0) zum Zeitpunkt t2 anzeigt.
-
Wie
zuvor erwähnt
wurde, verwendet das Programmierungsverfahren für den EANVM mit mehreren Bit
pro Zelle Programmierungs/Verifikations-Zyklen, um die Zelle inkrementell
zu programmieren. Die Dauer dieser Zyklen wird durch die Zeitsteuerungsschaltung 208 bestimmt.
Ein Schlüsselelement
des Systems ist, ein Programmierungsschema bereitzustellen, das
für die
genaue Programmierung der Speicherzelle 102 sorgt. Dies
wird erreicht, indem die Impulsbreiten der Zeitsteuerungsimpulse
der Zeitsteuerungsschaltung 208 an die Programmierzeitpunkte
der verwendeten EANVM-Zelle angepasst werden. Wie in 11 und 13 zu
sehen ist, fällt
ein gewünschter
Spannungsschwellenwert tatsächlich
innerhalb eines Bereichs von Schwellenwertspannungen. Falls die
Programmierimpulse zu lang sind, dann könnte zu viel Ladung zu dem
schwebenden Gate der Speicherzelle 102 hinzugefügt werden.
Dies könnte
zu einem Überschreiten
des Sollspannungsschwellenwertes führen, was dazu führt, dass
nicht korrekte Daten in der Speicherzelle gespeichert werden.
-
Die
Programmierimpulsbreite wird derart festgelegt, dass, falls der
Spannungsschwellenwert der Zelle 102 nach dem (N – 1)-ten
Programmierimpuls gerade einen Punkt unter dem Sollspannungsschwellenwert
ist, der (N)-te oder letzter Programmierimpuls kein Überschreiten
verursacht, das zu einem überprogrammierten Zustand
für eine
Speicherzelle führt.
-
VI. Ausführungsformen
zum Festlegen von Referenzspannungen zum Programmieren und zur Speicherzustandsabgrenzung
-
Die
Programmier- und Lese-Schaltung in 8 verwendet
auswählbare
Programmierreferenzspannungssignale, die an einen Bitleitungskomparator
geliefert werden, um die Programmierung der Mehrbitspeicherzelle
zu steuern. Das Programmieren wird ohne Auslesen der Zelle erreicht.
Dies ermöglicht
eine signifikante Reduzierung der Programmierzeit gegenüber früheren Systemen,
die ein wiederholtes Auslesen des Speicherzustandes der Zelle während des
Programmierverfahrens erforderten.
-
Die
folgende Diskussion behandelt bevorzugte Arten der Referenzsignalerzeugung
gemäß der vorliegenden
Erfindung. Prinzipiell ist das System von 8 nicht
auf die Weise beschränkt,
mit der die Programmier- und Lese-Referenzsignale gebildet werden.
Die in diesem Abschnitt beschriebenen Ausführungsformen implementieren
jedoch wichtige neue Konzepte für
die Speicherzustandsabgrenzung und Programmierungssteuerung, um
die Zuverlässigkeit
des Systems zu verbessern.
-
Die
Ausführungsformen
für die
Speicherzustandsbegrenzung basieren auf einem neuen Konzept, bei dem
die Lese-Referenzsignale unter Verwendung der Programmier-Referenzsignale
oder Signalsätzen
erzeugt werden, die im Wesentlichen den Programmier-Referenzsignalen
entsprechen. Die Lese-Referenzsignale hängen folglich effektiv von
Programmier-Referenzsignalen ab. Wegen dieser Abhängigkeit
kann die Systemauslegung garantieren, dass die zwei Signalsätze genau
mit einer vorbestimmten Beziehung für die Programmier-Sicherheitsabstandsbestimmung übereinstimmen.
Wie in den veranschaulichenden Ausführungsformen erkannt werden
kann, können
beispielsweise die Programmier-Referenzspannungen zweier benachbarter
Speicherzustände
einer Spannungsteilung unterzogen werden, um die Zwischenlese-Referenzspannung
zu erzeugen. Die Lese-Referenzspannung fällt dann in die Mitte zwischen
den zwei Programmier-Referenzspannungen. Folglich sind die zwei
Programmier-Referenzspannungen von der Lese-Referenzspannung gleich
beabstandet.
-
Die
die Programmierungssteuerung betreffenden Ausführungsformen behandeln insbesondere
die Referenzspannungserzeugung. Diese Ausführungsformen verwenden Referenzzellen,
die im Wesentlichen die Änderungen
der Betriebseigenschaften der Speicherzelle (und folglich ihr Bitleitungssignal)
mit sich ändernden
Zuständen,
die die Betriebseigenschaften beeinträchtigen, beispielsweise die
Temperatur, die Systemspannungen oder lediglich den Lauf der Zeit,
nachverfolgen. Die Verwendung derartiger Referenzzellen, die vorzugsweise
den gleichen (oder zumindest größtenteils
den gleichen) Aufbau wie die Speicherzelle haben, stellt eine stabile
Beziehung zwischen den Programmier-Referenzspannungen und den Betriebseigenschaften
der Speicherzelle sicher.
-
Wenn
die Referenzzellen für
die Programmier-Spannungserzeugung verwendet werden, um auch die Lese-Referenzspannungen
zu erzeugen, verfolgen die Lese-Referenzspannungen
auch genau die Änderungen
der Betriebseigenschaften der Speicherzelle. Diese stellt sicher,
dass in der Speicherzelle gespeicherte Daten über einen langen Zeitraum genau
ausgelesen werden können.
Eine Alternative zur Verwendung der Programmier-Referenzzellen für diesen
Zweck ist die Verwendung einer separaten Gruppe von Referenzzellen,
um Spannungen zu erzeugen, die im Wesentlichen die gleichen wie
die Programmier-Referenzspannungen sind. Die Verwendung der Spannungen
von der separaten Zellengruppe zum Erzeugen der Lese-Referenzspannungen
würde einen ähnlichen
Nachverfolgungseffekt der Lese-Referenzspannungen
erzeugen.
-
15 ist
eine vereinfachte Darstellung, die eine Schaltung zum Erzeugen der
Lese-Referenzspannungen
Ref1, Ref2 und Ref3 darstellt. In der gezeigten Form werden die
Lese-Referenzspannungen durch entsprechende Spalten 1210, 1211 und 1212 der
Schaltung erzeugt, die je ein Paar von Referenzzellen umfassen,
die in einer Spannungsteileranordnung geschaltet sind, um das entsprechende
Lese-Referenzsignal
zu erzeugen. Die Spalte 1210 umfasst ein erstes Paar von
Referenzzellen 1203, 1204 zum Erzeugen der Spannung
Ref1. Die Spalte 1211 umfasst ein zweites Paar von Referenzzellen 1205, 1206 zum
Erzeugen der Spannung Ref2. Die Spalte 1212 umfasst ein
drittes Paar von Referenzzellen 1207, 1208 zum
Erzeugen der Spannung Ref3. In 15 ist
auch eine Bitleitungsspalte 1209 gezeigt. Die Bitleitungsspalte
bildet einen Bereich der Hauptspeicherzellenanordnung und umfasst
eine Speicherzelle 1202.
-
Damit
die Lese-Referenzspannungen genau die Änderungen des Speicherzellenbitleitungssignal
mit den sich ändernden
Bedingungen nachverfolgen, die die Betriebseigenschaften der Speicherzellen
in der Hauptanordnung beeinträchtigen,
können
die Referenzzellen 1203 bis 1208 der Referenzspannungserzeugungsschaltung
bei einer bevorzugten Ausgestaltung vom selben Typ und Aufbau wie
ihre zugeordneten Speicherzellen (beispielsweise Zelle 1202)
der Hauptanordnung sein. Folglich wird angenommen, dass alle Zellen 1202 bis 1208 in 15 EANVM-Zellen
mit einem FET mit einem schwebenden Gate sind, wie zuvor beschrieben
wurde, wobei alle den gleichen Aufbau haben. Die Referenzzellen
und tatsächlich
die Referenzspalten werden vorzugsweise gleichzeitig mit den Spalten
der Hauptanordnung und mit dem gleichen Verfahren als Teil der selben
integrierten Schaltung mit der Anordnung hergestellt. Alternativ
können
die Referenzspalten mittels des gleichen Verfahrens wie die Hauptspeicherzellenanordnung
aber zu einem unterschiedlichen Zeitpunkt und/oder als Teile einer
unterschiedlichen integrierten Schaltung hergestellt werden.
-
Jede
der Referenzzellen 1203 bis 1208 in 15 verwendet
mit der Speicherzelle 1202 eine gemeinsame Wortleitung
(Zeilenauswahlleitung) 1243. Jede Referenzzelle ist auch
an ihrer Bitleitung mit einer Spalten-Pull-Up-Spannug Vpull-up und
dem zugeordneten Spaltenausgangsanschluss über zugeordnete Auswahltransistoren (FETs) 1201 und 1213 gekoppelt,
die beispielsweise NMOS- oder PMOS-Vorrichtungen sein können. Die Auswahltransistoren 1201 werden über entsprechende
Auswahlleitungen 1214' gesteuert,
und die Auswahltransistoren 1213 werden über entsprechende
Auswahlleitungen 1215' gesteuert.
Die Bitleitungen eines jeden Paars von Referenzzellen sind, wie
gezeigt, zusammengeschaltet, um entsprechende Spannungsteileranordnungen
zu bilden. Die Speicherzellen 1202 sind auch mit einer
Spalten-Pull-Up-Spannung und dem zugeordneten Spaltenbitleitungsausgang über ein
Paar von Auswahltransistoren 1201, 1213 gekoppelt,
die über
Auswahlleitungen 1214 bzw. 1215 gesteuert werden.
-
Die
Referenzzellen 1203 bis 1208 werden fabrikseitig
auf Spannungsschwellenwerte vorprogrammiert, die den Programmier-Referenzspannungen
Vref1 bis Vref4 entsprechen. Im Speziellen sind die Referenzzellen 1203 und 1204 auf
die Spannungsschwellenwerte V1 bzw. V2 programmiert, um Spannungen,
die gleich hoch wie die Programmier-Referenzspannungen Vref1 und
Vref2 sind, auf ihren entsprechenden Bitleitungen zu erzeugen. Die
Referenzzellen 1205 und 1206 sind auf die Spannungsschwellenwerte
V2 bzw. V3 programmiert, um Spannungen zu erzeugen, die gleich hoch
wie die Programmier-Referenzspannungen Vref2 und Vref3 sind. Die
Referenzzellen 1207 und 1208 sind auf die Spannungsschwellenwerte
V3 bzw. V4 programmiert, um Spannungen zu erzeugen, die gleich hoch
wie die Programmier-Referenzen Vref3 und Vref4 sind. Das Programmieren
der Referenzzellen kann auf eine beliebige geeignete Art erfolgen.
Beispielsweise kann die Speichereinrichtung mit dedizierten Anschlüssen für ein externes
Anlegen von Standardreferenzspannungen versehen sein, um die Zellen
zu laden. Als eine andere Alternative kann die Speichereinrichtung einen
eigenen Satz von ROM-Zellen umfassen, die Implantierungsdosen zum
Bereitstellen von Bitleitungsspannungen aufweisen, die den gewünschten
Programmier-Referenzspannungen entsprechen. Die ROM-Bitleitungsspannungen
könnten
als Programmier-Referenzspannungen zum anfänglichen Programmieren der EANVM-Referenzzellen verwendet
werden. Die EANVM-Referenzzellen könnten mit dem Programmierungsverifikationskomparator 202 (8)
selektiv gekoppelt sein, um das Signal Y bereitzustellen, und die ROM-Leitungsspannungen
könnten
selektiv an den Komparator als Signal X angelegt werden, um die
EANVM-Referenzzellen durch einen Programmierungsvorgang zu programmieren,
wie zuvor beschrieben wurde. Durch Verwenden von Programmierimpulsen
schmaler Breite(n) werden die Referenzzellen mit einer hohen Genauigkeit
programmiert. Die ROM-Zellen könnten
auch zum Wiederprogrammieren der EANVM-Referenzzellen (unter vorbestimmten
Standardzuständen)
verwendet werden, um die Spannungsschwellenwerte der Referenzzellen
auf die Werte bei der Auslegung zurückzusetzen, falls erforderlich.
-
Durch
Einstellen der aufeinanderfolgenden Programmier-Referenzspannungen
Vref1 bis Vref4 unter gleichen Intervallen und einem entsprechenden
Programmieren der Spannungsschwellenwerte der Referenzzellen bildet
die in 15 gezeigte Referenzsignalerzeugungsschaltung
Beziehungen zwischen den Programmier-Referenzspannungen und den Lese-Referenzspannungen,
wie in 16 gezeigt ist. Es ist festzustellen, dass
die Zuweisung spezieller Speicherzustände zu den Programmier-Referenzspannungen
Vref1 bis Vref4 nicht eine kritische Angelegenheit ist, obwohl eine
gute Praxis bei der Auslegung vorgibt, dass die Zuordnungen über das
gesamte Speichersystem konsistent sein sollte. Bei einem System,
das eine Fehlerkorrektur verwendet, kann es vorteilhaft sein, die
Speicherzustände
aus einer binären
Sequenz zuzuweisen, um die Optimierung der Fehlererkennung und der
Korrekturalgorithmen zu optimieren. Die vorliegende Diskussion nimmt an,
dass die Speicherzustände
den Programmier-Referenzspannungen in einer nicht binären Sequenz
zugeordnet sind. Insbesondere ist der Speicherzustand (1, 1) der
ersten (niedrigsten) Programmier-Referenzspannung Vref1, der Speicherzustand
(0, 1) der zweiten Programmier-Referenzspannung Vref2, der Speicherzustand
(1, 0) der dritten Programmier-Referenzspannung Vref3 und der Speicherzustand
(0, 0) der vierten (höchsten)
Programmier-Referenzspannung Vref4 zugeordnet.
-
Wie
in 16 gezeigt ist, wird jede Lese-Referenzspannung
derart gebildet, dass die Programmier-Referenzspannungen für die Speicherzustände unmittelbar
darüber
und darunter gleich von der Lese-Referenzspannung beabstandet sind.
Insbesondere sind die Lese-Referenzspannungen wie folgt definiert:
- Refl = (Vref1 + Vref2)/2
- Ref2 = (Vref2 + Vref3)/2
- Ref3 = (Vref3 + Vref4)/2
-
Aufgrund
der vorangegangenen Beziehungen wird jeder Lese-Referenzpegel immer
optimal von den benachbarten Programmier-Referenzpegeln an einer
Position in der Mitte zwischen den Programmier-Referenzpegeln beabstandet
sein. Da die Betriebseigenschaften der Referenzzellen Abweichungen
der Betriebseigenschaften der Speicherzelle mit sich ändernden
Bedingungen, die die Betriebseigenschaften beeinträchtigen,
nachverfolgen, werden die in 16 gezeigten
Beziehungen über
derartige Abweichungen aufrechterhalten. Dies stellt sicher, dass
die in der Speicherzelle gespeicherten Daten über einen langen Zeitraum trotz Temperaturdifferenzen,
unterschiedlichen Systemspannungen, etc. zum Auslesezeitpunkt gegenüber dem Zeitpunkt
der Datenspeicherung genau ausgelesen werden können. Die in 16 gezeigte
Kurve zeigt die Bitleitungsspannung der Speicherzelle während des
Auslesens unter der Annahme an, dass die Zelle auf die Programmier-Referenzspannung
Vref1 programmiert ist.
-
Bei
einer praktischen Anwendung ist es möglich, dass die an den Ausgängen der
Referenzspannungsspalten 1210, 1211, 1212 auftretenden
Spannungen leicht von den Werten bei der Auslegung abweichen. Abweichungen
können
beispielsweise aufgrund von Asymmetrien in der körperlichen Anordnung der Schaltungskomponenten
auftreten, die üblicherweise
derart platziert sind, um die Kompaktheit der integrierten Schaltung zu
maximieren. Derartige Asymmetrien können zu unterschiedlichen Leitungslängen und
Kapazitätseffekten, beispielsweise
gegenüber
einzelnen Referenzzellen eines gegebenen Paars, führen. Die
Abweichungen können
im Voraus durch eine Computersimulation der Schaltung unter Verwendung
von Standardcomputersimulationstechniken bestimmt werden. Es ist
dann möglich,
die Abweichungen durch Addieren geeigneter Signale zu kompensieren,
die die Einrichtungen auf den Lese-Referenzleitungen verändern, um
die dividierten Ausgangssignale der Referenzzellen auf die Auslegungswerte
zu bringen. Derartige Einrichtungen können auch aufgrund ähnlicher
Gründe
bei den Speicherzellenbitleitungen der Hauptanordnung vorgesehen
werden.
-
17 zeigt
eine Lese-Referenzsignalerzeugungsschaltung, wie sie gerade beschrieben
wurde. Die Schaltung ist identisch zu der von 15,
außer
dass die zuvor erwähnten
Signal-Pull-Einrichtungen hinzugefügt wurden. Diese Einrichtungen
können,
wie gezeigt ist, durch Feldeffekttransistoren 1220 bis 1223 oder durch
einen beliebigen anderen zu diesem Zweck geeigneten Typ von Einrichtungen,
beispielsweise aus Kombinationen aus Kondensator und Widerstand,
etc., gebildet werden. Die Signal-Pull-Einrichtungen sind vorzugsweise
so nah wie möglich
an den Punkten angeschlossen, wo die Lese-Referenzsignale (und Speicherbit-Leitungssignale)
in den mehrpegeligen Leseverstärker
zum Auslesen der Speicherzelle eingespeist werden. Eine derartige
Anordnung optimiert die Genauigkeit der Spannungswerte, die an den
Leseverstärker
geliefert werden, gegenüber
den Auslegungswerten. Dies ist natürlich vom Standpunkt einer
hochgenauen Programmier-Sicherheitsabstandsbestimmung und einem
hochgenauen Auslesen des Speichers wünschenswert.
-
18 ist
eine vereinfachte Darstellung, die eine andere Ausführungsform
einer Schaltung 1200'' zum Erzeugen
der Lese-Referenzsignale Ref1, Ref2 und Ref3 zeigt. Diese Schaltung
basiert auf der Ausgestaltung der Schaltung in 17,
aber die höherwertige
Referenzzelle und die Signal-Pull-Einrichtung jeder Referenzspalte
werden durch eine entsprechende einzige Pull-Up-Einrichtung 1321, 1322 oder 1323 ersetzt,
um die Spannungsteileranordnungen bereitzustellen, wie gezeigt ist.
Die Pull-Up-Einrichtungen
an den einzelnen Lese-Referenzleitungen in 18 haben
ihre entsprechenden Signal-Pull-Fähigkeiten derart festgelegt,
dass die Lese-Referenzspannungen
die gleichen Beziehungen gegenüber
den Programmier-Referenzspannungen, wie
in 16 gezeigt ist, annehmen. Es ist festzustellen,
dass diese Ausführungsform
weniger bevorzugt als die Ausführungsform
von 17 vom Standpunkt der Nachverfolgung der Speicherzelle
ist, da die Pull-Up-Einrichtungen 1321, 1322 und 1323 auf
den Lese-Referenzleitungen die Speicherzelle 1202 nicht
so genau nachverfolgen wie die Referenzzellen mit den sich ändernden
Betriebsbedingungen.
-
19 ist
eine verallgemeinerte Darstellung, die darstellt, wie die Referenzsignalerzeugungsschaltung
von 15 bei einer Speicheranordnung angewendet werden
kann. Zur Vereinfachung wurden in 19 die
Auswahlleitung 1214 und die Auswahltransistoren 1201,
die nicht erforderlich sind, aber beispielsweise zur Reduzierung
des Energieverbrauches wünschenswert
sein können,
durch ein generisches Netzwerk von Spalten-Pull-Up-Einrichtungen
(das so bezeichnet ist) ersetzt.
-
Wie
in 19 gezeigt ist, ist jede Zeile von Speicherzellen
in der Anordnung mit einem entsprechenden Satz von Referenzzellen 1203 bis 1208 versehen,
die derart geschaltet sind, dass sie die Spannungsteileranordnungen,
wie zuvor beschrieben, bilden. Jeder Satz (jede Zeile) von Referenzzellen
würde einzeln
zum Bereitstellen von Signalen auf den Referenzspaltenbitleitungen
zum Auslesen einer Speicherzelle der korrespondierenden Zeile der
Hauptanordnung ausgewählt
werden. Obwohl es mit den Prinzipien der vorliegenden Erfindung übereinstimmt,
einen einzigen Satz von Referenzzellen für alle Speicherzellen der Anordnung
zu verwenden (in diesem Fall müssen
die Referenzzellen nicht die Wortleitung einer beliebigen Zeile
der Anordnung gemeinsam verwenden), ist aus Genauigkeitsgründen die
Verwendung dedizierter Sätze
von Referenzzellen für
jede Zeile der Anordnung bevorzugt. Insbesondere ermöglicht die
Verwendung dedizierter Referenzzellen eine bessere Symmetrie der
Anordnung eines jeden Satzes von Referenzzellen gegenüber demjenigen der
entsprechenden Zeile von Speicherzellen in der Gesamtspeicherschaltung.
Beispielsweise hat eine Referenzzelle für eine Zeile M der Speicheranordnung
in 20 die gleiche Anzahl und den gleichen Typ von
Bauteilen zwischen ihren Bitleitungsanschluss und den Referenzspaltenausgang
geschaltet, wie jede entsprechende Speicherzelle 1202 zwischen
ihren Bitleitungsanschluss und dem Spaltenbitleitungsausgang geschaltet
hat. Auch kann die Leitungslänge
von dem Bitleitungsanschluss der Referenzzelle zu dem Referenzspaltenausgang
nahezu gleichlang oder gleichlang wie die Leitungslänge von
dem Bitleitungsanschluss jeder entsprechenden Speicherzelle zu ihrem
zugeordneten Spaltenbitleitungsausgang gemacht werden. Signal-Pull-Einrichtungen
können
an den Bit- und Lese-Referenzleitungen
auf eine ähnliche
Weise wie in 17 hinzugefügt werden. In diesem Fall würde die
Signal-Pull-Fähigkeit
einer jeden Einrichtungen durch eine geeignete Berechnung während eines
Computersimulationsverfahrens bestimmt werden, um die beste Gesamtgenauigkeit
der Signalpegel bereitzustellen, die von den unterschiedlichen Zellen
innerhalb jeder Spalte des Systems bereitgestellt werden.
-
20 ist
eine vereinfachte Darstellung, die eine Schaltung 1500 (oberhalb
der gestrichelten Leitung) zum Erzeugen der Programmier-Referenzen
(Vref1 bis Vref4) und eine zugeordnete Verifikationsreferenzauswahlschaltung 222 (unterhalb
der gestrichelten Linie) zum Ausgeben des ausgewählten Signals X für die Programmierungsverifikation
zeigt. Wie in 20 gezeigt ist, ist jede Zeile
der Speicheranordnung mit einem Satz von Referenzzellen 1503 bis 1506 mit
dem selben Aufbau wie die Speicherzellen gekoppelt. Die Referenzzellen
müssen
nicht Teil der selben integrierten Schaltung wie die Speicheranordnung
sein, aber sie werden vorzugsweise gleichzeitig damit und durch
das gleiche Verfahren wie die Anordnung als Teil der selben integrierten
Schaltung aus den zuvor erläuterten
Gründen
hergestellt. Die Verwendung eines dedizierten Satzes von Programmier-Referenzzellen
für jede
Zeile der Anordnung ist aus den gleichen Gründen, die in Verbindung mit der
Anordnung von 20 diskutiert wurden, bevorzugt.
Die Referenzzellen zum Erzeugen der Programmier-Referenzsignale Vref1 bis Vref4 sind
in entsprechenden Spalten 1511 bis 1514 angeordnet,
wobei ihre Bitleitungsanschlüsse üblicherweise
an eine entsprechende Bitleitung und an ein Netzwerk von Spalten-Pull-Up-Einrichtungen
(so bezeichnet) angeschlossen sind. Jeder Satz (Zeile) von Referenzzellen
wird individuell über
eine zugeordnete Wortleitung 1543 zum Bereitstellen von
Signalen von den entsprechenden Spaltenbitleitungen ausgewählt, um
die Programmierung einer Speicherzelle der entsprechenden Zeile
der Hauptspeicheranordnung zu verifizieren.
-
Jede
Referenzzelle 1503 in der Spalte 1511 ist fabrikseitig
(beispielsweise wie zuvor in Verbindung mit 15 beschrieben
wurde) auf den Spannungsschwellenwert V1 vorprogrammiert, um die
Spannung Vref1 auf der Spaltenbitleitung zu erzeugen. Jede Referenzzelle 1504 in
der Spalte 1512 ist auf den Spannungsschwellenwert V2 vorprogrammiert,
um die Spannung Vref2 auf der Spaltenbitleitung zu erzeugen.
-
Jede
Referenzzelle in der Spalte 1513 ist auf den Spannungsschwellenwert
V3 vorprogrammiert, um die Spannung Vref3 auf der Spaltenbitleitung
zu erzeugen. Jede Referenzzelle in der Spalte 1514 ist
auf den Spannungsschwellenwert V4 vorprogrammiert, um die Spannung
Vref4 auf der Spaltenbitleitung zu erzeugen. Signal-Pull-Einrichtungen
können
an den Spaltenbitleitungen, wie zuvor beschrieben wurde, hinzugefügt werden,
falls es erforderlich ist, um die Abweichungen der Spaltenbitleitungsspannungen
aufgrund der Auswirkungen von Layoutasymmetrien und dergleichen
zu kompensieren.
-
Die
Bitleitungen der Spalten 1511 bis 1514 sind mit
den entsprechenden Auswahltransistoren (beispielsweise FETs) 271 bis 274 der
Verifikationsreferenzauswahlschaltung 222 gekoppelt. Die
Auswahltransistoren, die beispielweise NMOS- oder PMOS-Einrichtungen sein
können,
können
durch eine einfache Logikschaltung, beispielsweise die in 20 gezeigte
Logikschaltung LC, gesteuert werden. Die Schaltung LC in 20 arbeitet
gemäß der folgenden
Wahrheitstabelle. Es ist festzustellen, dass die Signale I/00 und
I/01 als Eingangssignale von dem Eingangs-Speicher/Puffer 224 (siehe 8)
bereitgestellt werden.
-
-
21A bis 21D sind
Auslesezeitdiagramme, die den Bitleitungsspannungspegel einer ausgewählten Speicherzelle
in 20 nach dem Programmieren auf jeden der vier Speicherzustände zeigen.
In jedem Diagramm befindet sich zum Zeitpunkt t0 die Bitleitungsspannung
auf ihren vorgeladenen Wert von Vpull-up, der sich an oder sehr
nahe am Wert von Vref4 befindet. Zum Zeitpunkt t1 ist der Spannungspegel
auf den Bereich abgefallen, der durch die zwei nahe beabstandeten
Linien angezeigt wird, die um den Pegel Vref für den programmierten Zustand
zentriert sind. Die zwei Linien zeigen an, dass es einen kleinen
Toleranzbereich für
den Bitleitungsspannungspegel gegenüber dem Programmierspannungsreferenzpegel
während
des Auslesens der Speicherzelle gibt. 21A stellt
die Bitleitungsspannung dar, wenn die Speicherzelle auf dem Spannungsschwellenwert
V1 programmiert wurde, der dem Programmier-Referenzpegel Vref1 entspricht. 21B stellt die Bitleitungsspannung dar, wenn die
Speicherzelle auf den Spannungsschwellenwert V2 programmiert wurde,
der dem Programmier-Referenzpegel Vref2 entspricht. 21C stellt die Bitleitungsspannung dar, wenn die
Speicherzelle auf den Spannungsschwellenwert V3 programmiert wurde,
der dem Programmier-Referenzpegel Vref3 entspricht. 21D stellt die Bitleitungsspannung dar, wenn die
Speicherzelle auf den Spannungsschwellenwert V4 programmiert wurde,
der dem Programmier-Referenzpegel Vref4 entspricht.
-
Obwohl
die Lese-Referenz- und Programmier-Referenzerzeugungsschaltungen
zuvor als separate Schaltungen gezeigt und beschrieben wurden, können die
Schaltungen leicht kombiniert werden, um, wie in 22 gezeigt
ist, Komponenten gemeinsam zu verwenden. Dies ist möglich, da
die Programmier-Referenzsignale und die Lese-Referenzsignale nicht gleichzeitig verwendet
werden müssen.
Insbesondere müssen
die Programmier-Referenzsignale lediglich während des Speicherzellenprogrammierungsvorganges
verwendet werden, wogegen die Lese-Referenzsignale lediglich während des
Speicherzellenauslesevorganges verwendet werden müssen.
-
Die
in 22 gezeigte Schaltung ist eine Modifikation der
Schaltung von 19. In der Schaltung von 22 ist
die Bitleitung der Referenzzellen 1203 derart geschaltet,
dass sie eine Programmier-Referenzspannung Vref1 bereitstellt, die
Bitleitung der Referenzzellen 1204 derart geschaltet, dass
sie eine Programmier-Referenzspannung Vref2 bereitstellt, die Bitleitung
der Referenzzellen 1207 derart geschaltet, dass sie die
Programmier-Referenzschaltung Vref3 bereitstellt, und die Bitleitung
der Referenzzellen 1208 ist derart geschaltet, dass sie
die Programmier-Referenzspannung Vref4 bereitstellt. Die Auswahltransistoren 271 bis 274 entsprechen
den in 20 gezeigten Auswahltransistoren.
-
23 zeigt
eine Modifikation der Schaltung in 22, bei
der die EANVM-Referenzzellen 1203 bis 1208 entsprechend
durch die ROM-Zellen 2203 bzw. 2208 ersetzt sind.
Die Verwendung von ROM-Zellen als Referenzzellen ist vorteilhaft,
da es vermeidet, dass es erforderlich ist, die EANVM-Referenzzellen
anfänglich zu
programmieren, obwohl der Nachverfolgungseffekt der Referenzsignale
gegenüber
den EANVM-Zellen der Hauptanordnung etwas reduziert sein kann. Um
den Nachverfolgungseffekt zu maximieren, können entsprechende Bereiche
der ROM-Zellen und der EANVM-Zellen mit den gleichen Verfahrensschritten
hergestellt werden. Beispielsweise können die Source-Bereiche, Drain-Bereiche,
Kanal-Bereiche und Steuerungsgates der EANVM-Zellen und der ROM-Zellen
auf diese Weise hergestellt werden, wobei separate Verfahrensschritte verwendet
werden, um die schwebenden Gates des EANVM und der ROM-Schwellenwertimplantierungen
bereitzustellen.
-
Obwohl
die Erfindung hinsichtlich spannungsbasierter Speichersysteme beschrieben
wurde, die Spannungssignale aus den Speicherzellen und Referenzzellen
verwenden, sind die Prinzipien der Erfindung gleichermaßen bei
strombasierten Speichersystemen anwendbar, bei denen Strompegel
statt Spannungspegel verwendet werden.