-
Die
vorliegende Erfindung betrifft nichtflüchtige Halbleiterspeicher und
Verfahren zum Schreiben von Daten in derartige Speicher.
-
Flashspeicher
sind nicht flüchtige
Speicher mit hoher Speicherdichte und lassen sich in Datenflash-
und Codeflashspeicher unterteilen. Datenflashspeicher werden benutzt,
wenn große
Datenvolumina zu speichern sind und verfügen über eine große Anzahl
von Speicherzellen pro Sektor. Codeflashspeicher werden benutzt,
um Programmcode zu speichern und ermöglichen den Zugriff auf kleinere Speicherabschnitte
für Lese-,
Schreib- und Löschoperationen.
Die Speicherkapazität
von Flashspeichern lässt
sich steigern, indem man die Anzahl der gespeicherten Bits pro Zelle
erhöht.
-
Programmierbare
Nitrid-Festwertspeicherzellen (NROM) können zwei Bits pro Zelle speichern. 1 zeigt einen Querschnitt
durch eine aus dem Stand der Technik bekannte NROM-Zelle. Das Gate G
der Zelle wird an eine Wortleitung angeschlossen, und die beiden
Source-/Drain-Gebiete S/D werden an Bitleitungen angeschlossen.
Unter dem Gate G befindet sich die sogenannte ONO-Schicht, die aus einer
oberen Oxidschicht TO, einer unteren Oxidschicht BO und einer zwischen
der oberen Oxidschicht TO und der unteren Oxidschicht BO eingebetteten
Nitridschicht NL besteht. In der Nitridschicht NL kann elektrische
Ladung an einer ersten Stelle in der Nähe eines ersten Source-/Drain-Gebiets S/D und an einer
zweiten Stelle in der Nähe
des zweiten Source-/Drain-Gebiets S/D gespeichert werden. Der Kanal
der NROM-Zelle bildet sich zwischen dem ersten Source-/Drain-Gebiet
S/D und dem zweiten Source-/Drain-Gebiet S/D aus und liegt unterhalb
der ONO-Schicht im Halbleitersubstrat SB.
-
An
jeder Stelle kann die gespeicherte Ladungsmenge unabhängig von
der an der jeweils anderen Stelle gespeicherten Ladung eingestellt
werden, so dass es möglich
ist, in einer einzigen Zelle ein erstes Bit B1 und ein zweites Bit
B2 zu speichern. Für jede
Stelle bestimmt die gespeicherte Ladungsmenge den Schwellenspannungswert
VTH dieses Teils der Zelle. Ein hoher Schwellenwert VTH entspricht
einem programmierten Zustand, und ein niedriger Schwellenwert VTH
entspricht einem gelöschten
Zustand.
-
Das
erste Bit B1 wird ausgelesen indem eine Gatespannung, die zwischen
dem hohen und dem niedrigen Schwellenwert liegt, angelegt wird und
der Strom, der durch die Zelle fließt, wenn ein Potential von
beispielsweise 0 V an das erste Source-/Drain-Gebiet und ein Potential
von beispielsweise 1,5 V an das zweite Source-/Drain-Gebiet S/D
angelegt wird, gemessen wird.
-
Programmiert
wird das erste Bit B1, indem beispielsweise eine Spannung von 4,5
V an das erste Source-/Drain-Gebiet S/D in der Nähe des Bits B1, eine Spannung
von 0 V an das zweite Source-/Drain-Gebiet S/D sowie 9 V an das
Gate G angelegt werden, so dass heiße Elektronen aus dem Kanal
der Zelle in die Nitridschicht NL tunneln.
-
Gelöscht wird
das erste Bit B1 mittels Injektion heißer Löcher, indem beispielsweise
eine Spannung von 8 V an das erste Source-/Drain-Gebiet S/D in der
Nähe des
Bits B1 angelegt, das andere Source-/Drain-Gebiet S/D potentialfrei
gelassen und eine negative Spannung an das Gate G angelegt wird.
-
Zum
Auslesen, Speichern und Löschen
des zweiten Bits B2 vertauscht man die an das erste und an das zweite
Source-/Drain-Gebiet
S/D angelegten Spannungen.
-
Für die Belange
dieser Erfindung wird das in 2 gezeigte
Symbol benutzt, um eine NROM-Zelle mit einem Gate-Kontakt G und zwei
Source-/Drain-Kontakten S/D darzustellen und anzuzeigen, dass ein
erstes Bit B1 und ein zweites Bit B2 in der Zelle gespeichert werden
können.
Der Source-/Drain-Kontakt
S/D in der Nähe
des ersten Bits B1 wird „erster
Source-Drain-Kontakt" genannt,
und der Source-/Drain-Kontakt
S/D in der Nähe
des zweiten Bits B2 wird „zweiter
Source-/Drain-Kontakt" genannt.
Sowohl für
den ersten Source-/Drain-Kontakt als auch für den zweiten Source-/Drain-Kontakt
wird das gleiche Bezugszeichen S/D benutzt, um anzuzeigen, dass
die Zelle in Bezug auf diese Kontakte symmetrisch ist.
-
Um
die Layoutfläche
zu minimieren, werden NROM-Zellen häufig in einem „Virtual
Ground Array" angeordnet
und angeschlossen, wie in 3 gezeigt.
Speicherzellen MC sind entlang Zeilen und Spalten angeordnet und
an die Wortleitungen WL und Bitleitungen BL angeschlossen. Die Gate-Kontakte
G der Speicherzellen MC, die entlang den Zeilen angeordnet sind,
sind an die Wortleitungen WL angeschlossen. Die Source-/Drain-Kontakte
S/D der Speicherzellen, die entlang den Spalten angeordnet sind,
sind an die Bitleitungen BL angeschlossen, wobei jede der Bitleitungen
BL von zwei entlang einer Zeile benachbarten Speicherzellen MC gemeinsam benutzt
wird. Dadurch, dass anstelle von zwei Bitleitungen für jede Zelle
die Bitleitungen BL von jeweils zwei Zellen gemeinsam benutzt werden,
kann die für den
Speicher M benötigte
Chipfläche
verringert werden. Jedes erste Bit B1 und zweite Bit B2 in den Speicherzellen
MC im Speicher M kann durch die Wortleitung WL und Bitleitungen
BL adressiert werden, die der Spalte und Zeile entsprechen, in der
sich die jeweilige Speicherzelle MC befindet.
-
Eine
Speicheranordnung mit NROM-Speicherzellen, die in einem Virtual
Ground Array angeordnet sind, ist zum Beispiel aus der Patentschrift
US 6,829,173 B2 bekannt.
-
Um
den Speicherinhalt von Speicherzellen MC in Standard-Flashspeichern zu
verändern
wird jedes Mal, sofern die zu programmierenden Speicherzellen MC
nicht bereits gelöscht
wurden, ein ganzer Block oder Sektor gelöscht und der Sektor anschließend programmiert.
Diese Vorgehensweise ist ein Überbleibsel
aus der ersten Generation von Flashspeichern, den ETOX- oder Floating-Gate-Flashspeichern,
bei denen die Speicherzellen an ein gemeinsames Substrat und einen
gemeinsamen Source-Anschlusspunkt angeschlossen waren. Infolgedessen
wird jedes Mal, wenn eine Löschspannung
an Source und/oder Substrat angelegt wird, der Löschimpuls parallel an alle
Zellen, die sich dasselbe Substrat und dieselben Source-Anschlusspunkte
teilen, geleitet.
-
Zwar
sorgt dieser Lösch-
und Programmiermechanismus für
Kompatibilität,
er hat jedoch für
moderne Flashspeicher auch wesentliche Nachteile. Da jedes Mal,
wenn der Inhalt einer beliebigen Speicherzelle geändert werden
soll, eine Löschoperation durchgeführt wird,
ist die Leistungsaufnahme des Speichers hoch. Des Weiteren werden
alle Zellen dem Lösch-
und Programmierzyklus unterzogen, selbst wenn ihr jeweiliger Inhalt
nicht geändert
werden muss. Diese über flüssigen Zyklen
verringern die Lebensdauer der Speicherzelle und die Zuverlässigkeit
des Speichers als Ganzes. Ferner wird der Datendurchsatz reduziert,
da jedes Mal, wenn Daten in den Speicher geschrieben werden, mindestens
eine Löschoperation
ausgeführt
wird.
-
Der
Erfindung liegt daher die Aufgabe zugrunde, einen nichtflüchtigen
Halbleiterspeicher und ein Verfahren zum Betreiben des Speichers
bereitzustellen, die einen höheren
Datendurchsatz, geringere Leistungsaufnahme und verbesserte Zuverlässigkeit ermöglichen.
-
Die
Erfindung stellt ein Verfahren zum Schreiben von Daten in einen
nichtflüchtigen
Halbleiterspeicher bereit, wobei der Halbleiterspeicher eine Vielzahl
von Speicherzellen, Bitleitungen und Wortleitungen umfasst, wobei
jede Speicherzelle einen Gate-Kontakt, einen ersten Source-/Drain-Kontakt und einen
zweiten Source-/Drain-Kontakt aufweist und Speicher für ein erstes
Bit und ein zweites Bit bereitstellt, wobei in dem ersten Bit und
in dem zweiten Bit jeweils ein programmierter oder ein gelöschter Zustand
gespeichert werden kann, die Vielzahl der Speicherzellen in Zeilen
entlang einer ersten Richtung und in Spalten entlang einer zweiten
Richtung angeordnet sind, in jeder Zeile die Gate-Kontakte der Speicherzellen
an jeweils eine selbe Wortleitung aus der Vielzahl von Wortleitungen
angeschlossen sind, in jeder Zeile jede Speicherzelle über jeweils
einen ihrer Source-/Drain-Kontakte an eine benachbarte Speicherzelle
angeschlossen ist, in jeder Spalte die Source-/Drain-Kontakte jeder
der Speicherzellen an jeweils eine selbe Bitleitung der Vielzahl
von Bitleitungen angeschlossen sind, erste Speicherzellen und zweite
Speicherzellen Speicherzellen sind, die entlang von Zeilen aneinander
angrenzen, wobei die Anfangszustände,
die im ersten Bit einer zweiten Speicherzelle und im zweiten Bit
einer entsprechenden ersten Speicherzelle gespeichert sind, in Endzustände überführt werden,
indem ein Schritt in der Gruppe aus den Schritten a), b), c) und
d) ausgeführt wird:
Schritt a) wird ausgeführt,
wenn die Endzustände
sowohl des ersten Bits als auch des zweiten Bits mit den jeweiligen
Anfangszuständen
dieser Bits übereinstimmen,
und umfasst das Aufrechterhalten der Anfangszustände des ersten Bits und des
zweiten Bits, Schritt b) wird ausgeführt, wenn sowohl das erste
Bit als auch das zweite Bit gelöschte
Endzustände
aufweisen und die Anfangszustände
sowohl des ersten Bits als auch des zweiten Bits nicht gelöscht waren,
und umfasst das Löschen
sowohl des ersten Bits als auch des zweiten Bits, Schritt c) wird ausgeführt, wenn
weder das erste Bit noch das zweite Bit von einem programmierten
Anfangszustand in einen gelöschten
Endzustand überführt werden
sollen, und umfasst das Programmieren des ersten Bits, falls das
erste Bit von einem gelöschten
Anfangszustand in einen programmierten Endzustand überführt werden
soll, und das Programmieren des zweiten Bits, falls das zweite Bit
von einem gelöschten
Anfangszustand in einen programmierten Endzustand überführt werden
soll, Schritt d) wird ausgeführt, wenn
nur das erste Bit oder das zweite Bit von einem programmierten Anfangszustand
in einen gelöschten Endzustand überführt werden
soll, und umfasst zunächst
das Löschen
sowohl des ersten als auch des zweiten Bits und dann das Programmieren
des ersten Bits, falls das erste Bit im Endzustand programmiert
ist, oder das Programmieren des zweiten Bits, falls das zweite Bit
im Endzustand programmiert ist.
-
Dieses
Verfahren zum Schreiben von Daten in den Speicher bietet den Vorteil,
dass nicht ein ganzer Speicherzellensektor gelöscht werden muss, um die Speicherzellen
zu programmieren. Stattdessen kann ein nur zwei Bit großer Abschnitt
des Speichers adressiert und Daten in diesen geschrieben werden.
-
Die
Zellen werden außerdem
weder einer Lösch-
noch einer Programmieroperation unterzogen, sofern der Inhalt der
Speicherzellen nicht verändert
werden muss. Falls zum Erreichen des Endzustands keine Löschoperation
erforderlich ist, können die
Zellen direkt programmiert werden, ohne zunächst einer Löschoperation
unterzogen zu werden. Des Weiteren werden nur Bits programmiert,
die verändert
werden sollen, wohingegen nach Stand der Technik alle Bits, die
zusammen mit den zu verändernden
Bits gelöscht
wurden, neu programmiert werden müssen, sofern ihr Anfangszustand
programmiert war.
-
Vorzugsweise
werden in den Schritten b) und d) das erste Bit der zweiten Speicherzelle
und das zweite Bit der ersten Speicherzelle bezüglich aller anderen, in dem
Halbleiterspeicher gespeicherten Bits selektiv gelöscht.
-
Vorzugsweise
umfasst das selektive Löschen
sowohl des ersten Bits als auch des zweiten Bits in den Schritten
b) und d) folgende Schritte: Anlegen eines Wortleitungspotentials
an die Wortleitung, die mit dem Gate-Kontakt der ersten Speicherzelle
und dem Gate-Kontakt der zweiten Speicherzelle elektrisch verbunden
ist, Anlegen eines zweiten Bitleitungspotentials, das höher als
das Wortleitungspotential ist, an die Bitleitung, die mit dem zweiten Source-/Drain-Kontakt
der ersten Speicherzelle und dem ersten Source-/Drain-Kontakt der
zweiten Speicherzelle verbunden ist, Unterlassen des Anlegens eines
Potentials an die Bitleitung, die mit dem ersten Source-/Drain-Kontakt
der ersten Speicherzelle verbunden ist, und Unterlassen des Anlegens
eines Potentials an die Bitleitung, die mit dem zweiten Source-/Drain-Kontakt
der zweiten Speicherzelle verbunden ist.
-
Das
Wortleitungspotential ist in der Regel negativ, das zweite Bitleitungspotential
dagegen positiv. Das Unterlassen des Anlegens eines Potentials ist auch
als „Floaten" bekannt.
-
Vorzugsweise
umfasst das Löschen
sowohl des ersten Bits als auch des zweiten Bits in den Schritten
b) und d) Folgendes: Prüfen,
ob sowohl das erste Bit als auch das zweite Bit gelöscht sind,
und Wiederholen des Löschschritts
solange, bis sowohl das erste Bit als auch das zweite Bit gelöscht sind. Auf
diese Weise kann sichergestellt werden, dass die Bits tatsächlich einen
gelöschten
Zustand speichern.
-
Vorzugsweise
umfasst das Programmieren des ersten Bits bzw. des zweiten Bits
in den Schritten c) bzw. d) Folgendes: Anlegen eines Wortleitungspotentials
an die Wortleitung, die mit dem Gate-Kontakt der ersten Speicherzelle
und dem Gate-Kontakt der zweiten Speicherzelle verbunden ist, Anlegen
eines zweiten Bitleitungspotentials, das niedriger als das Wortleitungspotential
ist, an die Bitleitung, die mit dem zweiten Source-/Drain-Kontakt
der ersten Speicherzelle und dem ersten Source-/Drain-Kontakt der zweiten
Speicherzelle verbunden ist, Anlegen eines dritten Bitleitungspotentials,
das niedriger als das zweite Bitleitungspotential ist, an die Bitleitung,
die mit dem zweiten Source-/Drain-Kontakt der zweiten Speicherzelle
verbunden ist, und Unterlassen des Anlegens eines Potentials an
die Bitleitung, die mit dem ersten Source-/Drain-Kontakt der ersten
Speicherzelle verbunden ist, falls das erste Bit in der zweiten
Speicherzelle im Endzustand programmiert sein soll, und Anlegen
eines ersten Bitleitungspotentials, das niedriger als das zweite
Bitleitungspotential ist, an die Bitleitung, die mit dem ersten
Source-/Drain-Kontakt der ersten Speicherzelle verbunden ist, und
Unterlassen des Anlegens eines Potentials an die Bitleitung, die
mit dem zweiten Source-/Drain-Kontakt der zweiten Speicherzelle
verbunden ist, falls das zweite Bit der ersten Speicherzelle im
Endzustand programmiert sein soll. Das Wortleitungspotential und
das zweite Bitleitungspotential sind in der Regel positiv, das erste
und das dritte Bitleitungspotential dagegen sind Massepotentiale.
-
Vorzugsweise
umfasst das Programmieren des ersten Bits bzw. des zweiten Bits
in den Schritten c) bzw. d) Folgendes: Prüfen, nach dem Programmieren,
ob im ersten Bit und im zweiten Bit der gewünschte programmierte Endzustand
gespeichert ist, und, falls im ersten Bit bzw. im zweiten Bit nicht der
gewünschte
programmierte Endzustand gespeichert ist, Wiederholen des Programmierens
des ersten Bits und des zweiten Bits, bis der gewünschte programmierte
Endzustand im ersten Bit bzw. im zweiten Bit gespeichert ist. Auf
diese Weise kann sichergestellt werden, dass die Bits tatsächlich einen programmierten
Zustand speichern.
-
Vorzugsweise
werden in Schritt d) die Anfangszustände des ersten Bits und des
zweiten Bits gespeichert, bevor der Schritt des Löschens des
ersten und des zweiten Bits vollzogen wird, und die gespeicherten
Werte werden dazu benutzt, jeweils das erste Bit und das zweite
Bit auf den betreffenden Anfangswert zu programmieren. Auf diese
Weise geht der Anfangswert nicht verloren, wenn beide Bits zusammen
gelöscht
werden.
-
Vorzugsweise
wird die Anzahl der in den Halbleiterspeicher zu schreibenden Bits
bestimmt, bevor einer der Schritte a) bis d) ausgeführt wird.
So kann ermittelt werden, ob es effektiver ist, einen gesamten Zellensektor
zu löschen,
oder selektiv erste und zweite Bits zu löschen.
-
Vorzugsweise
sind Speicherzellen in Sektoren gruppiert, wobei jeder Sektor eine
vorbestimmte Anzahl von Speicherzellen enthält, wobei das Schreiben von
Daten in die Speicherzellen eines Sektors Folgendes umfasst: Löschen aller
Speicherzellen in diesem Sektor, sodann Programmieren der benötigten Speicherzellen,
falls die Anzahl der in den Halbleiterspeicher zu schreibenden Datenbits
einen vorbestimmten Bruchteil der vorbestimmten Anzahl von Speicherzellen
in einem Sektor überschreitet,
und Unterlassen der Ausführung
der Schritte a) bis d). Die vorbestimmte Anzahl kann von Parametern
wie etwa Stromverbrauch, benötigter
Datendurchsatz und Sektorgröße abhängen.
-
Vorzugsweise
handelt es sich bei den Speicherzellen um programmierbare Nitrid-Festwertspeicherzellen.
Ein Vorteil dieser Zellen besteht darin, dass sie in der Lage sind,
zwei Bits pro Zelle zu speichern und gleichzeitig sehr wenig Platz
benötigen, wenn
sie in einem Virtual Ground Array angeordnet werden. Zudem können solche
Speicherzellen mit Standardverfahren hergestellt werden.
-
Alternativ
formuliert sind die ersten Speicherzellen und die entsprechenden
zweiten Speicherzellen, Speicherzellen, die an jeweils derselben
Bitleitung und an derselben Wortleitung angeschlossen sind.
-
Bei
Anwendung dieses Verfahrens werden Speicherzellen nur bei Bedarf
programmiert und nur bei Bedarf gelöscht, so dass einerseits Energie
gespart und der Datendurchsatz gesteigert wird und andererseits
die Zellen weniger Zyklen durchlaufen, was eine verbesserte Zuverlässigkeit
und Langlebigkeit zur Folge hat.
-
Weiterhin
wird ein nichtflüchtiger
Halbleiterspeicher bereitgestellt, der Folgendes umfasst: eine Vielzahl
von Speicherzellen, die in Sektoren gruppiert und an eine Vielzahl
von Wortleitungen und Bitleitungen angeschlossen sind, einen Wortleitungsdekodierer
und einen Bitleitungsdekodierer, die an eine Adresseinheit angeschlossen
sind, wobei jede Speicherzelle ein erstes Bit und ein zweites Bit
speichert, die Wortleitungen und Bitleitungen die Speicherzellen
so anschließen,
dass ein Virtual Ground Array gebildet wird, eine Steuereinheit
die Adresseinheit so steuert, dass diese zwischen der Adressierung
ganzer Sektoren von Speicherzellen und der Adressierung der ersten
Bits von zweiten Speicherzellen und der zweiten Bits von ersten
Speicherzellen umschaltet, wobei die ersten Speicherzellen und die
zweiten Speicherzellen jeweils von derselben Wortleitung und derselben
Bitleitung angeschlossen werden.
-
Die
Erfindung stellt damit einen Halbleiterspeicher bereit, der eine
Kombination aus dem herkömmlichen
Verfahren zum Schreiben von Daten in einen Flashspeicher und dem
neuen Verfahren, bei dem zwei Bits in zwei verschiedenen Speicherzellen selektiv
adressiert werden, darstellt. Die Möglichkeit zum Umschalten zwischen
den beiden Verfahren ist insbesondere für Datenflashspeicher von großer Bedeutung,
bei denen bisher große
Sektoren gelöscht und
neu programmiert werden, selbst wenn nur ein oder zwei Bits geändert werden
müssen.
-
Vorzugsweise
schaltet die Steuereinheit in Abhängigkeit von der Anzahl der
in den Speicher zu schreibenden Bits zwischen dem Adressieren ganzer Sektoren
und dem Adressieren erster Bits und zweiter Bits um. Die Anzahl
der zu schreibenden Bits legt fest, welches Verfahren besser zum
Schreiben von Daten in den Speicher geeignet ist.
-
Vorzugsweise
schaltet die Steuereinheit in Abhängigkeit von dem zum Schreiben
von Daten in den Speicher benutzten Befehl zwischen dem Adressieren
ganzer Sektoren und dem Adressieren erster Bits und zweiter Bits
um. Der Befehl enthält
normalerweise die Datenmenge oder einen Adressbereich, in den die
Daten geschrieben werden sollen, und stellt somit alle Informationen
bereit, die notwendig sind, um zu entscheiden, welches Verfahren
zum Schreiben von Daten in den Speicher benutzt wird.
-
Vorzugsweise
handelt es sich bei den Speicherzellen um programmierbare Nitrid-Festwertspeicherzellen.
-
Nachstehend
wird die Erfindung nun eingehender anhand von nicht als einschränkend zu
verstehenden Beispielen und unter Bezugnahme auf die beigefügten Zeichnungen
beschrieben. Es zeigen:
-
1 einen
Schnitt durch eine NROM-Zelle,
-
2 ein
Schaltsymbol einer NROM-Zelle,
-
3 ein
Virtual Ground Array,
-
4 Doppelbits
in einem Virtual Ground Array,
-
5 eine
Illustration des Doppelbit-Konzepts,
-
6 einen
Löschvorgang
eines Doppelbits,
-
7 einen
Programmiervorgang eines Bits des Doppelbits,
-
8 ein
Flussdiagramm für
ein Verfahren zum Programmieren des Speichers,
-
9 ein
Flussdiagramm für
einen erweiterten Löschschritt,
-
10 ein
Flussdiagramm für
einen erweiterten Programmierschritt,
-
11 einen
Speicher mit einer Steuereinheit zum Umschalten zwischen dem herkömmlichen Verfahren
und dem erfindungsgemäßen Verfahren,
-
12 eine
Tabelle der zum Schreiben von Daten gemäß einem herkömmlichen
Verfahren notwendigen Operationen und
-
13 eine
Tabelle der zum Schreiben von Daten nach einem erfindungsgemäßen Verfahren notwendigen
Operationen.
-
Im
Folgenden wird auf 4 Bezug genommen, die einen
Teil eines Virtual Ground Arrays zeigt. Speicherzellen MC sind entlang
einer ersten Richtung X und einer zweiten Richtung Y in Zeilen bzw. Spalten
angeordnet. Die Gate-Kontakte
G der in Zeilen angeordneten Speicherzellen MC werden von jeweils
einer Wortleitung WL angeschlossen. Bitleitungen BL schließen die
Source-/Drain-Kontakte S/D der in Spalten angeordneten Speicherzellen
MC an. In Zeilenrichtung benachbarte Zellen MC teilen sich eine
Bitleitung BL. Jede Speicherzelle MC kann ein erstes Bit B1 und ein
zweites Bit B2 speichern. Die zweiten Bits B2 der Speicherzellen
MC und die ersten Bits B1 der jeweils in X-Richtung benachbarten Speicherzellen
MC bilden sogenannte „Doppelbits" DB. Doppelbits werden
von Speicherzellen MC gebildet, die sich eine Bitleitung BL und
eine Wortleitung WL teilen.
-
Das
Konzept der Doppelbits DB wird in 5 weiter
veranschaulicht, die zwei benachbarte Zellen zeigt: eine erste Speicherzelle
MC1 und eine zweite Speicherzelle MC2. Die Gate-Kontakte G der ersten
Speicherzelle MC1 und der zweiten Speicherzelle MC2 sind an die
Wortleitung WL angeschlossen. Der erste Source-/Drain-Kontakt S/D
der ersten Speicherzelle MC1 ist an die Bitleitung BL1 angeschlossen,
während
der zweite Source-/Drain-Kontakt S/D der zweiten Speicherzelle MC2
an die Bitleitung BL3 angeschlossen ist. Der zweite Source-/Drain-Kontakt
S/D der ersten Speicherzelle MC1 und der erste Source-/Drain-Kontakt
S/D der zweiten Speicherzelle MC2 sind beide an die Bitleitung BL2 angeschlossen.
-
Zur
Darstellung des ersten Bits B1 und des zweiten Bits B2 werden Kreise
benutzt. Ein leerer Kreis stellt den Wert "0" dar;
ein ausgefüllter
Kreis stellt den Wert "1" dar. Zum Zwecke
der Veranschaulichung sei der Wert "0" im
zweiten Bit B2 der ersten Speicherzelle MC1 und der Wert "1" im ersten Bit B1 der zweiten Speicherzelle
MC2 gespeichert. Die Notation für
die in dem Doppelbit DB gespeicherten Werte lautet "(m, n)", wobei "m" den Wert darstellt, der im zweiten
Bit B2 der ersten Speicherzelle MC1 gespeichert ist, und "n" den Wert darstellt, der im ersten Bit
B1 der zweiten Speicherzelle MC2 gespeichert ist. Der Wert "1" stellt einen gelöschten Zustand dar, und der
Wert "0" stellt einen programmierten
Zustand des Bits dar.
-
In
den 5, 6 und 7 werden
die Schritte gezeigt, die zum Umprogrammieren des Doppelbits DB
von einem Anfangszustand (0, 1) in einen Endzustand (1, 0) nötig sind. Übergänge von
einem Zustand in einen anderen Zustand werden durch einen Pfeil "→" angezeigt, so dass der oben genannte Übergang
wie folgt dargestellt wird: (0, 1) → (1, 0).
-
Die
Bits in einem Doppelbit können
einzeln programmiert werden, jedoch lassen sie sich nur gemeinsam
löschen.
Ursache hierfür
ist die gemeinsam benutzte Wortleitung WL und die gemeinsam benutzte
zweite Bitleitung BL2, die bewirken, dass das zweite Bit B2 der
ersten Speicherzelle MC1 und das erste Bit B1 der zweiten Speicherzelle
MC2 stets gleichzeitig gelöscht
werden. Hieraus folgt, dass zum Erreichen einiger der gewünschten
Endzustände
ein Zwischenschritt erforderlich ist, in dem das Doppelbit DB den
Wert (1, 1) aufweist und sowohl das erste Bit B1 als auch das zweite
Bit B2 des Doppelbits DB gelöscht
sind.
-
6 veranschaulicht
diesen Zwischenschritt. Sowohl das erste Bit B1 der zweiten Speicherzelle
MC2 als auch das zweite Bit B2 der ersten Speicherzelle MC1 sind
als ausgefüllte
Kreise dargestellt, was anzeigt, dass in beiden Bits ein gelöschter Zustand
gespeichert ist. Zum Löschen
des Doppelbits DB wird eine negative Spannung VWL an die Wortleitung
WL angelegt. Gleichzeitig wird an die zweite Bitleitung BL2 eine
positive Spannung angelegt, und die Potentiale VBL1 und VBL3 der
ersten Bitleitung BL1 und der dritten Bitleitung BL3 bleiben potentialfrei. Die
angelegten Spannungen können
zum Beispiel VWL = –7
V und VBL2 = 6 V sein. Die angelegten Spannungen bewirken die Injektion
heißer
Löcher
in die ONO-Schicht, wo sie die lokal gespeicherten Elektronen neutralisieren,
so dass die effektive Ladung reduziert wird.
-
7 zeigt
den Programmierschritt, der erforderlich ist, um das Doppelbit DB
(1, 0) zu erhalten. Das erste Bit B1 der zweiten Speicherzelle MC2 muss
programmiert werden, während
das zweite Bit B2 der ersten Speicherzelle MC1 im gelöschten Zustand
gehalten werden muss. Die Programmierung des ersten Bits B1 lässt sich
erreichen, indem man an die Wortleitung WL, an die die Gate-Kontakte
G der Speicherzellen MC1 und MC2 angeschlossen sind, eine positive
Spannung VWL anlegt. Gleichzeitig muss eine niedrigere positive
Spannung VBL2 an die zweite Bitleitung BL2 angelegt werden, und
eine noch niedrigere Spannung VBL3 wird an eine dritte Bitleitung
BL3 angelegt. Das Potential VBL1 der ersten Bitleitung BL1 wird
potentialfrei belassen. Beispielsweise können die angelegten Spannungen
zu VWL = 9 V, VBL2 = 5 V und VBL3 = 0 V gewählt werden. Falls das zweite
Bit B2 der ersten Speicherzelle MC1 programmiert werden soll, sind
die Potentiale VBL1 und VBL3 auf der ersten Bitleitung BL1 und der dritten
Bitleitung BL3 zu vertauschen.
-
8 zeigt
ein Flussdiagramm eines erfindungsgemäßen Verfahrens, das zum Schreiben
von Daten in den Speicher benutzt wird. Die Ovale S0, S1, ..., S5
stellen Zustände
dar, die Rauten Q0, Q1, ..., Q5 stellen Abfragen dar, und die Rechtecke
A0, A1, ..., A5 stellen Aktionen dar.
-
Die
erste Abfrage Q0 ermittelt, ob Datenvolumen in den Speicher geschrieben
werden sollen, die im Vergleich zur Größe eines Sektors groß sind.
Ist dies der Fall, wird die Aktion A0, ein aus dem Stand der Technik
bekanntes Verfahren, benutzt, um Daten in den Speicher zu schreiben.
Nach Abschluss von Aktion A0 wird der Endzustand S0 erreicht.
-
Falls
nur eine kleine Anzahl von Bits geschrieben werden muss, wird mit
Zustand S1 fortgefahren, der den ersten Schritt beim Schreiben von Daten
in den Speicher mit Doppelbit-Granularität darstellt.
-
Als
Nächstes
wird in der Abfrage Q1 ermittelt, ob sich der gewünschte Endzustand
der Bits im Doppelbit DB vom Anfangszustand im Doppelbit DB unterscheidet.
Falls End- und Anfangszustand derselbe ist, endet das Verfahren
mit Zustand S2, ohne irgendeines der Bits des Doppelbits DB zu löschen oder
zu programmieren. Diese Bedingung ist für die folgenden Übergänge erfüllt: (0,
0) → (0,
0), (0, 1) → (0,
1), (1, 0) → (1,
0) und (1, 1) → (1,
1). Falls der Anfangszustand vom Endzustand abweicht, wird mit Abfrage
Q2 fortgefahren.
-
In
Abfrage Q2 wird ermittelt, ob nur die Programmierung eines oder
mehrerer der Bits in einem Doppelbit notwendig ist, oder in anderen
Worten: ob kein Löschvorgang
notwendig ist, da keines der Bits des Doppelbits von einem programmierten
in einen gelöschten
Zustand überführt werden
muss. Falls nur die Programmierung erforderlich ist, wird mit Aktion A1
fortgefahren, in der das bzw. die erforderlichen Bits des Doppelbits
programmiert werden. Dies ist für folgende Übergänge der
Fall: (0, 1) → (0,
0), (1, 0) → (0,
0), (1, 1) → (0,
0), (1, 1) → (0,
1), und (1, 1) → (1, 0).
In diesen Fällen
erfolgen alle Übergänge nur
von einer "1" zu einer "0", und das Verfahren endet mit dem Zustand
S3. Die zur Programmierung benötigten
Schritte wurden zusammen mit 7 beschrieben.
-
Falls
es notwendig ist, das Doppelbit DB zu löschen, um den Endzustand zu
erreichen, wird mit Aktion A2 fortgefahren. Falls jedoch nur eines
der Bits des Doppelbits gelöscht werden
muss, wird eine Neuprogrammierung des anderen Bits des Doppelbits
notwendig, da beide Bits des Doppelbits gelöscht werden. Zu diesem Zweck
wird in Aktion A2 die Adresse oder der Zustand des Bits, das nicht
gelöscht
werden soll, in einem Register gespeichert. In Aktion A3 wird das
Doppelbit DB gelöscht,
indem wie in 6 gezeigt Potentiale an die
jeweiligen Bitleitungen und die jeweilige Wortleitung angelegt werden.
-
Es
wird sodann mit Abfrage Q3 fortgefahren, in der ermittelt wird,
ob eine Neuprogrammierung eines der Bits des Doppelbits notwendig
ist. Für Übergänge, die
in Endzuständen
mit (1, 1) enden, ist keine derartige Neuprogrammierung erforderlich.
Dies sind die Übergänge (0,
0) → (1,
1), (0, 1) → (1,
1) und (1, 0) → (1,
1). Das Verfahren endet für
diese Übergänge mit
dem Zustand S4.
-
Falls
eine Neuprogrammierung eines der Bits notwendig ist, wird mit Aktion
A4 fortgefahren, in welcher die Adresse oder der Zustand des Bits,
das nicht gelöscht
werden soll, wiederhergestellt wird. Die Aktion A5 besteht in der
Neuprogrammierung desjenigen Bits des Doppelbits DB, das in Aktion
A3 nicht gelöscht
werden sollte, oder in der Programmierung desjenigen Bits des Doppelbits
DB, das von einem gelöschten
Zustand in einen programmierten Zustand überführt werden soll. Die zur Programmierung
der einzelnen Bits benötigten
Potentiale wurden zusammen mit 7 beschrieben.
Zustand S5 ist der Endzustand des Verfahrens für die Übergänge (0, 0) → (0, 1), (0, 0) → (1, 0),
(0, 1) → (1,
0) und (1, 0) → (0,
1), bei denen der Zwischenzustand (1, 1) durchlaufen wurde.
-
Abwandlungen
des Flussdiagrams sind möglich;
so braucht etwa die Adresse oder der Zustand in Aktion A2 nicht
ge speichert und die Adresse in Aktion A4 nicht wiederhergestellt
werden, falls sich diese Schritte eliminieren lassen oder auf andere Weise
oder zu einem anderen Zeitpunkt ausgeführt werden können.
-
9 zeigt
eine Abwandlung der Aktionen A1 und A5, in denen Bits des Doppelbits
programmiert werden. Aktion A6 ist die Programmieraktion, während die
Abfrage Q4 überprüft, ob das
zu programmierende Bit bereits programmiert wurde. Falls ja, wird
das Verfahren fortgesetzt. Andernfalls wird der Schritt der Programmierung
des Bits wiederholt, bis der gewünschte
Endwert erreicht ist. Um Zeit zu sparen ist es vorteilhaft, wenn
nur das Bit, das im Endzustand programmiert sein soll, überprüft wird. Im
Rahmen der Operation, die die Programmierung überprüft, wird ermittelt, ob die „programmierte" Schwellenspannung über einem
minimalen Spannungspegel liegt, indem diese minimale Spannung an
die Gate-Kontakte der Speicherzellen angelegt wird. Falls die Speicherzellen
nichtleitend verbleiben, war die Programmieroperation erfolgreich.
-
Analog
hierzu zeigt 10 eine Abwandlung der Löschaktion
A3. Aktion A7 ist die Löschoperation zum
Löschen
des Doppelbits DB, und in der Abfrage Q5 wird geprüft, ob das
Bit, das gelöscht
werden soll, tatsächlich
gelöscht
wurde. Falls dies der Fall ist, wird das Verfahren fortgesetzt.
Falls nicht, wird die Löschoperation
wiederholt. Um Zeit zu sparen ist es vorteilhaft, wenn nur das Bit,
das im Endzustand gelöscht sein
soll, überprüft wird.
Im Rahmen der Operation, die die Löschung überprüft, wird ermittelt, ob die „gelöschte" Schwellenspannung
unter einem maximalen Spannungspegel liegt, indem diese maximale
Spannung an die Gate-Kontakte G der Speicherzellen angelegt wird.
Falls sich die Speicherzellen anschalten, war die Löschung erfolgreich.
-
11 zeigt
ein Blockdiagramm eines Halbleiterspeichers. Ein Speicherfeld M,
das Sektoren SC – auch
Segmente oder Blöcke
genannt – umfasst,
ist an Wortleitungen WL und Bitleitungen BL angeschlossen. Ein Bitleitungsdekodierer
BLD und ein Wortleitungsdekodierer WLD werden benutzt, um Speicherzellen
(nicht gezeigt) für
Lese-, Lösch-
und Programmieroperationen auszuwählen. Daten DA können durch
den Bitleitungsdekodierer BLD ein- und ausgegeben werden. In der
Adresseinheit A wird eine Adresse AD dekodiert. Speicher wie dieser
sind im Stand der Technik bekannt.
-
Gemäß einer
Ausführungsform
der Erfindung werden der Adresseinheit A eine Steuereinheit CU und
ein Register R hinzugefügt.
Die Steuereinheit CU empfängt
als Eingaben einen Speicherprogrammierbefehl C und eine Adresse
AD. Mit Hilfe der Steuereinheit CU kann der Modus der Speicherprogrammierung
umgeschaltet werden zwischen einem nach Stand der Technik üblichen
Modus, in dem alle Speicherzellen in einem Sektor SC gelöscht und dann
programmiert werden, und einem zweiten Modus, in dem wie obenstehend
beschrieben Speicherzellen mit einer Doppelbit-Granularität programmiert werden
können.
Die Steuereinheit CU schaltet in Abhängigkeit des erhaltenen Befehls
C zwischen den beiden Modi um. Falls laut Befehl C ein Datenblock programmiert
werden soll, der bezüglich
der Größe des Sektors
SC groß ist,
wird der aus dem Stand der Technik bekannte Betriebsmodus gewählt. Falls
nur eine kleine Anzahl von Bits programmiert werden sollen, wird
das erfindungsgemäße Programmierverfahren
benutzt.
-
Falls
der Befehl C die Menge der zu schreibenden Daten nicht angibt, vergleicht
die Steuereinheit CU die Daten, die in den Speicher M geschrieben werden
sollen, mit den Daten, die bereits im Speicher M gespeichert sind.
Hierfür
ermittelt die Steuereinheit CU, wie viele Bits in jedem Sektor gelöscht werden müssten, und
die Verteilung der Bits über
die Sektoren hinweg. In Abhängigkeit
dieser Information entscheidet die Steuereinheit CU, ob das Löschen eines ganzen
Sektors effizienter ist als das Löschen von Doppelbits. Außer von
der Anzahl der notwendigen Programmier- und Löschzyklen kann das Effizienzkriterium
auch von anderen Faktoren, wie etwa Energieverbrauch und der erforderlichen
Programmiergeschwindigkeit, abhängen.
-
Das
Register R wird benutzt, um im Doppelbit-Programmiermodus Werte
wie etwa die Adresse oder die Anfangszustände der Bits, die nicht gelöscht werden
sollen, zu speichern.
-
In 12 und 13 werden
die Operationen gegenübergestellt,
die zum Schreiben von Daten mittels eines Verfahrens nach Stand
der Technik bzw, mittels des erfindungsgemäßen Verfahrens notwendig sind.
Der Buchstabe "E" zeigt ein Löschen des Doppelbits
an, der Buchstabe "P" das Programmieren
eines der Bits, und ein "/" wird benutzt, um
anzuzeigen, dass keine Operation ausgeführt wird.
-
12 zeigt
alle 16 möglichen Übergänge von
Anfangszuständen
IS zu Endzuständen
FS in einem Speicher nach dem Stand der Technik. Es ist ersichtlich,
dass bei allen 16 möglichen Übergängen das
Doppelbit gelöscht
wird. Die Bits werden daraufhin einzeln programmiert, um den gewünschten
Endzustand zu erreichen. Da in einer Spalte alle Endzustände identisch
sind, sind auch alle Aktionen in jeder Spalte jeweils identisch.
Unter der Annahme, dass alle 16 möglichen Übergänge gleich wahrscheinlich sind,
sind durchschnittlich 16 Löschoperationen "E" und 16 Programmieroperationen "P" erforderlich.
-
13 stellt
die nach dem erfindungsgemäßen Verfahren
erforderlichen Operationen dar. Eine Löschoperation "E" wird nur ausgeführt, wenn ein Bit in dem Doppelbit
von einem "0"-Zustand in einen "1"-Zustand überführt werden muss. Falls der
Anfangszustand und der Endzustand gleich sind, werden überhaupt
keine Operationen ausgeführt.
In Fällen,
bei denen keine Löschoperation
notwendig ist, wird nur das zu programmierende Bit programmiert. Falls
der Endzustand nur durch Löschen
erreicht werden kann, wird keine weitere Programmierung vorgenommen.
Eine Neuprogrammierung nach einer Löschoperation erfolgt nur, falls
der Endzustand nicht bereits erreicht worden ist.
-
Im
Gegensatz zum Stand der Technik werden durchschnittlich nur 10 statt
16 Programmieroperationen "P" benötigt, und
die Anzahl der Löschoperationen "E" wurde von 16 auf 7 reduziert. Unter
der Annahme, dass die Lösch-
und Programmierzeiten proportional zur Anzahl der zu löschenden
Doppelbits und der Anzahl der zu programmierenden Bits sind, wird
in gleichem Maße
die Leistungsaufnahme reduziert. Da weniger Lösch- und Programmierschritte
ausgeführt
werden, ist der Speicher schneller und gleichzeitig wird die Anzahl
der Zyklen, die jede einzelne Speicherzelle durchläuft reduziert.
Auf diese Weise wird die Zuverlässigkeit
und die Lebensdauer des Speichers gesteigert.
-
Die
Vorteile der Erfindung werden noch offenkundiger, wenn man bedenkt,
dass bei bekannten Flashspeichern jeder Löschzyklus tatsächlich aus drei
separaten Schritten besteht. In einem ersten Schritt, der vor dem
eigentlichen Löschschritt ausgeführt wird,
werden die Speicherzellen vorprogrammiert, um zu gewährleisten,
dass alle Speicherzellen ungefähr
die gleichen Schwellwerte besitzen. Dies geschieht, um die Wahrscheinlichkeit
zu verringern, dass im zweiten Schritt, bei dem die Speicherzellen gelöscht werden,
die Speicherzellen übermäßig gelöscht werden
oder verarmen. In einem dritten Schritt, der nach dem Löschschritt
ausgeführt
wird und „Soft-Programmierung" genannt wird, werden die
gelöschten
Speicherzellen mit Spannungen programmiert, die unter der normalen
Programmierspannung liegen, um zu gewährleisten, dass die Speicherzellen
ungefähr
die gleichen Schwellwerte aufweisen. Die Erfindung kann bei jedem
dieser drei Schritte angewendet werden, so dass sich die Auswirkungen
ihrer Vorteile multiplizieren.
-
- A
- Adresseinheit
- AD
- Adresse
- A1
bis A7
- Aktionen
- B1
- erstes
Bit
- B2
- zweites
Bit
- BL
- Bitleitung
- BL1
- erste
Bitleitung
- BL2
- zweite
Bitleitung
- BL3
- dritte
Bitleitung
- BLD
- Bitleitungsdekodierer
- BO
- untere
Oxidschicht
- C
- Befehl
- CU
- Steuereinheit
- DA
- Daten
- DB
- Doppelbit
- FS
- Endzustand
- G
- Gate
- IS
- Anfangszustand
- M
- Speicherfeld
- MC
- Speicherzelle
- MC1
- erste
Speicherzelle
- MC2
- zweite
Speicherzelle
- NL
- Nitridschicht
- ONO
- Oxid-Nitrid-Oxid-Schich
- Q0
bis Q5
- Abfragen
- R
- Register
- S/D
- Source/Drain
- SB
- Halbleitersubstrat
- SC
- Sektor
- S0
bis S5
- Zustände
- TO
- obere
Oxidschicht
- VWL
- Wortleitungspotential
- VBL1
- Potential
der ersten Bitleitung
- VBL2
- Potential
der zweiten Bitleitung
- VBL3
- Potential
der dritten Bitleitung
- WL
- Wortleitung
- WLD
- Wortleitungsdekodierer
- X
- erste
Richtung
- Y
- zweite
Richtung