-
TECHNISCHES
GEBIET
-
Die
Erfindung betrifft generell das Gebiet der Speichervorrichtungen
und insbesondere Verfahren und Systeme für eine Hochgeschwindigkeitsprogrammierung
in Multibit-Flash-Speichervorrichtungen.
-
STAND DER
TECHNIK
-
Flash-
und andere Typen elektronischer Speichervorrichtungen sind aus Speicherzellen
aufgebaut, die jeweils Daten speichern und Zugriff auf diese bieten.
Ein Speicherzellentyp der ersten Generation speichert eine einzelne
Binärinformation,
die als Bit bezeichnet wird, welches sich in einem von zwei möglichen
Zuständen
befindet. Die Zellen sind normalerweise in Mehrzelleneinheiten organisiert, wie
z.B. Bytes, die acht Zellen aufweisen, und Wörter, die sechzehn oder mehr
dieser Zellen aufweisen können,
welche normalerweise in Mehrfachkonfigurationen von acht konfiguriert
sind. Das Speichern von Daten in diesen Speichervorrichtungsarchitekturen
erfolgt durch Schreiben in einen speziellen Speicherzeliensatz,
das manchmal als Programmieren der Zellen bezeichnet wird, aus dem
die Daten dann in einer Leseoperation abgerufen werden können. Zusätzlich zu
Programmier- (manchmal als Schreiben bezeichnet) und Leseoperationen
können
Zellengruppen in einer Speichervorrichtung gelöscht werden, wobei jede Zelle
in der Gruppe auf einen bekannten Anfangszustand gesetzt wird (z.B.
auf eine Eins "1").
-
Die
einzelnen Speicherzellen weisen typischerweise eine Halbleiterstruktur
zum Speichern eines Datenbits auf. Beispielsweise weisen zahlreiche herkömmliche
Speicherzellen eine Metalloxidhalbleiter-(MOS-)Vorrichtung auf,
in der eine Binärinformation
festgehalten werden kann. Die Lösch-,
Programmier- und Leseoperationen werden normalerweise durch Anlegen
geeigneter Spannungen an spezifische Anschlüsse der Zellen-MOS-Vorrichtung
durchgeführt.
Bei einer Lösch-
oder Programmieroperation werden die Spannungen derart angelegt,
dass sie bewirken, dass eine Ladung in der Speicherzelle gespeichert
oder von dieser entfernt wird. Bei einer Leseoperation werden geeignete
Spannungen angelegt, um zu bewirken, dass ein Strom in der Zelle fließt, wobei
die Menge eines solchen Stroms den Wert der in der Zelle gespeicherten
Daten anzeigt. Die Speichervorrichtung weist eine geeignete Schaltung
zum Erfassen des sich ergebenden Zellenstroms zwecks Ermittlung
der darin gespeicherten Daten auf, weiche dann zu Datenbusanschlüssen der
Vorrichtung geliefert werden und auf die dann andere Vorrichtungen
in dem System, in dem die Speichervorrichtung verwendet wird, zugreifen
können.
-
Ein
Flash-Speicher ist ein nichtflüchtiger Speichertyp,
der modifiziert werden und seinen Inhalt auch ohne Energieversorgung
halten kann. Herkömmliche
Einbit-Flash-Speicher sind in einer Zellenstruktur aufgebaut, wobei
ein Einzelinformationsbit in jeder Flash-Speicherzelle gespeichert
ist. Jede Flash-Speicherzelle
weist eine Transistorstruktur mit einer Source, einem Drain und
einem Kanal in einem Substrat oder dotierten Well sowie eine den
Kanal überlagernde
Gate-Speicherstruktur auf. Die Gate-Speicherstruktur kann auf der
Fläche
des dotierten Well ausgebildete dielektrische Schichten aufweisen.
Die dielektrische Schicht ist häufig
ein Mehrschichtisolator, wie z.B. eine Oxidnitridoxid-(ONO-)Schicht
mit zwei Oxidschichten, in denen eine Nitridschicht sandwichartige
angeordnet ist.
-
In
jüngster
Zeit ist ein Multibit-Flash-Speicher entwickelt worden, bei dem
jede Zelle zwei oder mehr physische Datenbits speichern kann. Zweibit-Speicherzellen
sind generell asymmetrisch, wobei die Drain- und Source-Anschlüsse austauschbar sind.
Wenn geeignete Spannungen an die Gate-, Drain- und Source-Anschlüsse angelegt
werden, kann auf eines der beiden Bits zugegriffen werden (z.B,
für Lese-,
Programmier-, Lösch-,
Verifizier- oder andere Operationen). Wenn ein anderer Satz von
Anschlussspannungen an die Zwei bit-Zelle angelegt wird, kann auf
das andere der beiden Bits zugegriffen werden.
-
Eine
typische Zweibit-Speicherzelle kann dadurch programmiert werden,
dass eine relativ hohe Spannung an das Gate und eine mäßig hohe
Spannung an den Drain angelegt wird, um "heiße" (hochenergetische)
Elektronen in dem Kanal nahe dem Drain zu erzeugen. Diese Heißelektronen
beschleunigen sich auf der unteren dielektrischen Schicht in die
Ladungseinfangregionen, wie z.B. Nitrid, hinein und werden in der
Ladungseinfangschicht eingefangen. Durch die eingefangenen Elektronen
erhöht
sich die Schwellenspannung der Speicherzelle. Diese durch die eingefangenen
Elektronen hervorgerufene Veränderung
der Schwellenspannung (und dadurch der Kanalleitfähigkeit)
der Speicherzelle bewirkt die Programmierung der Speicherzelle.
Zum Lesen der Speicherzelle wird eine vorbestimmte Gate-Spannung,
die größer ist
als die Schwellenspannung einer unprogrammierten oder gelöschten Zelle,
jedoch kleiner als die Schwellenspannung einer programmierten Speicherzelle,
an das Gate angelegt. Wenn die Speicherzelle leitet (z.B. ein erfasster
Strom in der Zelle einen Mindestwert übersteigt), ist die Speicherzelle
nicht programmiert worden (die Speicherzelle befindet sich daher
in einem ersten logischen Zustand, z.B. Eins "1").
Wenn jedoch die Speicherzelle nicht leitet (z.B. der die Zelle durchfließende Strom
einen Schwellenwert nicht übersteigt),
ist die Speicherzelle programmiert worden (die Speicherzelle befindet
sich daher in einem zweiten logischen Zustand, z.B. Null "0"). Somit kann jede Speicherzelle gelesen
werden, um festzustellen, ob sie programmiert worden ist, wodurch
der logische Zustand der Daten in der Speicherzelle identifiziert
wird.
-
Flash-Speicherzellen
sind in einzelnen adressierbaren Einheiten oder Gruppen, wie z.B. Bytes,
Wörtern,
Seiten oder Blöcken
(die manchmal als Sektoren bezeichnet werden) organisiert, auf die eine
Dekodierschaltung für
Lese-, Programmier- oder Lösch-Operationen
zugreift, wodurch diese Operationen an den Zellen in einer spezifischen
Stelle durchgeführt
werden können.
Die Speichervorrichtung weist eine geeignete Dekodier- und Gruppenselektionsschaltung
zum Adressieren oder Dekodieren dieser Bytes, Wörter, Seiten oder Blöcke sowie
eine Schaltung zum Liefern von Spannungen zu den Zellen auf, an
denen zur Realisierung der gewünschten Operation
eine Operation durchgeführt
wird.
-
Die
Flash-Speicherzellen, unabhängig
davon, ob es sich um Einbit- oder Multibit-Zellen handelt, können in
einer Vielzahl von unterschiedlichen Konfigurationen miteinander
verbunden sein. Beispielsweise können
Zellen in einer NOR-Konfiguration konfiguriert sein, wobei die Zellen-Steuer-Gates einer
Reihe einzeln mit einer Wortleitung verbunden sind und die Zellen-Drains
einer speziellen Spalte durch eine leitende Bitleitung miteinander
verbunden sind, während
die Source-Anschlüsse
sämtlicher Flash-Zellen
in dem Array mit benachbarten Bitleitungen oder einem gemeinsamen
Source-Anschluss verbunden sind. Im Betrieb werden die einzelnen Flash-Zellen
in einer solchen NOR-Konfiguration über die jeweilige Wortleitung
und Bitleitung unter Verwendung einer Peripherie-Decoder- und -Steuerschaltung
zum Programmieren (Schreiben), Lesen, Löschen oder für andere
Funktionen adressiert.
-
Eine
weitere Zellenkonfiguration ist als Virtuell-Massen-Architektur
bekannt, bei der die Kernzellen-Steuer-Gates einer Reihe mit einer
gemeinsamen Wortleitung verknüpft
sind. Eine typische Virtuell-Massen-Architektur weist Reihen von
Flash-Speicherkernzellenpaaren auf, wobei ein Drain oder eine Source
eines der Zellentransistoren mit einer diesem/dieser zugeordneten
Bitleitung verbunden ist. Eine einzelne Flash-Zelle wird über die
Wortleitung und ein Bitleitungspaar ausgewählt, die die dazugehörige Zelle
begrenzen. Eine Zelle kann durch Anlegen von Spannungen an das Steuer-Gate
(z.B. über die
gemeinsame Wortleitung) und eine mit dem Drain verbundene Bitleitung
gelesen werden, während
die Source über
eine weitere Bitleitung mit Masse (Vss) verbunden ist. Eine virtuelle
Masse wird somit durch selektives Erden der der Source der zu lesenden
Zellen zugeordneten Bitleitung gebildet. Wenn die Kernzellen Zellen
des Zweibit-Typs sind, können
die oben beschriebenen Verbindungen zum Lesen eines ersten Bit der
Zelle verwendet werden, während
das andere Bit auf im Wesentlichen gleiche Weise durch Erden der
mit dem Drain verbundenen Bitleitung und Anlegen einer Spannung über die
andere Bitleitung an den Source-Anschluss gelesen werden kann, wodurch
die Source- und
Drain-Regionen auf effektive Weise austauschbar sind.
-
Eine
weitere Konfiguration ist als NAND-Architektur bekannt, bei der
die Kernzellen entlang einer gemeinsamen Bitleitungsreihe miteinander
in Serie geschaltet sind. Eine typische NAND-Architektur weist Reihen
von Bitleitungen bildenden seriengeschalteten Flash-Speicherkernzellen
auf, wobei jede Zelle in jeder Reihe mit ihrer eigenen jeweiligen
Wortleitung verbunden ist. Jede Bitleitung ist selektiv über Selekt-Gate-Transistoren
im oberen bzw. unteren Teil der Reihen mit Bitleitungsspannungen
(z.B. einer Drain- und Source-Spannung für verschiedene Operationen)
gekoppelt. Eine einzelne Flash-Zelle wird über die Wortleitung und durch
Koppeln einer ausgewählten
Bitleitung über
die Selekt-Gate-Transistoren mit den Drain- und Source-Spannungen
ausgewählt. Eine
Zelle kann durch Anlegen einer Lesespannung an das Steuer-Gate (z.B. über die
ausgewählte
Wortleitung) gelesen werden, wobei sämtliche anderen Wortleitungen
entlang der Bitleitung mit einer hohen Spannung aktiviert werden,
während
die Drain- und Source-Anschlüsse
auf effektive Weise über
die Selekt-Gate-Transistoren mit einer Drain-Vorspannung und Masse
(Vss) gekoppelt sind, da die verbleibenden Zellen entlang der Bitleitung
eingeschaltet sind. Wenn die Kernzellen Zellen des Zweibit-Typs
sind, können
die oben beschriebenen Verbindungen zum Lesen eines ersten Bit der
Zeile verwendet werden, während
das andere Bit auf im Wesentlichen gleiche Weise durch Erden der
mit dem Drain verbundenen Bitleitung und Anlegen einer Spannung über die
andere Bitleitung an den Source-Anschluss (z.B. effektives Austauschen
der Source- und Drain-Anschlüsse)
gelesen werden kann.
-
Flash-Speichervorrichtungen
weisen verschiedene Leistungscharakteristiken auf, die je nach Flash-Speicherarchitektur
variieren können.
Zum Beispiel hat ein NOR-Flash relativ lange Lösch- und Schreibzeiten, weist
jedoch ein volles Adressen/Daten-Interface auf, das einen Zufallszugriff
auf eine beliebige Stelle ermöglicht.
Aufgrund dieses Merkmals ist die NOR-Architektur zum Speichern eines
Programmiercodes geeignet, der sporadisch aktualisiert wird, zum
Beispiel zur Verwendung in Mobiltelefonen, Digitalkameras oder Minicomputern (PDAs).
Alternativ hat ein NAND-Flash relativ kürzere Lösch- und Schreibzeiten und
weist eine höhere
Kernzellenpackdichte auf als ein NOR, sein I/O-Interface ermöglicht jedoch
generell sequentiellen Datenzugriff. Folglich wird ein NAND-Flash häufig in
Vorrichtungen des Massenspeichertyps verwendet, wie z.B. herausnehmbaren
Flash-Karten, USB-Flash-Treibern und Solid State Disks.
-
Auf
jeden Fall ist es häufig
wünschenswert, die
Geschwindigkeit zu verbessern, mit der Flash-Speichervorrichtungen
gelesen oder programmiert werden. Zum Beispiel ist derzeit die Geschwindigkeit,
mit der ein Flash-Speicher programmiert wird, etwas begrenzt, wodurch
die Verwendung von Flash-Speichervorrichtungen bei Anwendungen,
bei denen ein Hochgeschwindigkeits-Programmieren erforderlich ist,
eingeschränkt
ist. In diesen Fällen
werden für
diese Anwendungen typischerweise andere Speichermedien, wie z.B.
ein DRAM, als temporäre Schnellspeicher
vor dem Kopieren der Daten in einen nichtflüchtigen Speicher, wie z.B.
einen Flash-Speicher, verwendet. Entsprechend ist eine verbesserte Schreibleistung
bei Flash-Speichervorrichtungen wünschenswert, um unter anderem
auf die Verwendung anderer Speichermedien bei Anwendungen, bei denen
eine Hochgeschwindigkeits-Programmierleistung erforderlich ist,
und nichtflüchtige
Speicher zu verzichten.
-
OFFENBARUNG
DER ERFINDUNG
-
Im
Folgenden wird ein vereinfachter zusammenfassender Überblick über die
Erfindung gegeben, um ein grundlegendes Verständnis einiger Aspekte der Erfindung
zu ermöglichen.
Dieser zusammenfassende Überblick
ist kein extensiver Überblick über die
Erfindung. Es ist damit weder beabsichtigt, Schlüssel- oder kritische Elemente der Erfindung
zu identifizieren noch den Schutzumfang der Erfindung abzugrenzen.
Der primäre
Zweck dieses zusammenfassenden Überblicks
ist vielmehr das Darstellen einiger Konzepte der Erfindung in vereinfachter
Form als Einleitung der nachfolgenden detaillierteren Beschreibung.
-
Gemäß einem
Aspekt der Erfindung ist ein Verfahren zum Programmieren einer oder
mehrerer Zweibit-Flash-Speicherzellen vorgesehen. Das Verfahren umfasst
das Löschen
erster und zweiter Bits jeder Zelle in einem Teil des Array in einen
ersten oder Anfangszustand und dann das Programmieren des ersten
Bit jeder Zweibit-Zelle in dem Arrayteil in einen zweiten Zustand.
Das Verfahren umfasst ferner das anschließende Programmieren des zweiten
Bit der einen oder mehreren Zellen in dem Arrayteil in einen der
ersten und zweiten Zustände
anhand einer von dem Benutzer durchgeführten Dateneingabe. Bei dem
oben beschriebenen Verfahren wird das erste Bit jeder Zweibit-Zelle
nicht zum Festhalten der Benutzerdaten verwendet, sondern wird stattdessen zum
positiven Beeinflussen (Beschleunigen) der Schreibgeschwindigkeit
des entsprechenden zweiten Bit bei anschließenden Programmieroperationen
verwendet. In dem oben beschriebenen Fall ist entweder die erste
oder die zweite Bitstelle als "Ignorier"-Bitstelle austauschbar,
wobei mit der anderen Bitstelle in der Zelle ein schnelles Programmieren
durchgeführt
wird. Obwohl die Benutzerdaten-Festhaltedichte reduziert wird, hat
sich herausgestellt, dass das oben beschriebene Verfahren zu einer
um ein Vier- oder Mehrfaches verbesserten Programmiergeschwindigkeiten
gegenüber
der herkömmlichen
Programmierung der 2 Bits in einem Zweibit-Flash oder des Einzelbit
des NAND-Flash führt.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung umfasst ein Verfahren
zum Löschen
von Zweibit-Flash-Speicherzellen das Entfernen der Ladung von den
ersten und zweiten Bitstellen jeder Zelle innerhalb eines vorbestimmten
Teils eines Flash-Speicherarray. Bei einem Ausführungsbeispiel reicht die Menge
der Ladung, die von den ersten und zweiten Bitstellen entfernt wird,
aus, um jedes Bit in einen ersten Zustand zu zwingen. Das Verfahren
umfasst ferner das Anlegen einer Ladung an die erste Bitstelle jeder
Zweibit-Zelle innerhalb des vorbestimmten Teils des Array. Anschließend wird eine
Programmieroperation durchgeführt,
wobei die zweite Bitstelle der einen oder mehreren Zweibit-Zellen
innerhalb des vorbestimmten Teils des Array anhand der Dateneingabe
durch einen Benutzer auf einen der beiden möglichen Zustände programmiert wird.
Auch hier ist das Austauschen der ersten und zweiten Bitstellen
als "Ignorier"-Bitstellen für jede Zeile
in dem Arrayteil bei der vorliegenden Erfindung vorgesehen. Das
Anlegen einer Ladung an die ersten Bitstellen bei dem hier beschriebenen
Ausführungsbeispiel
führt zu
einer wesentlichen Erhöhung
der Geschwindigkeit, mit der Benutzerdaten anschließend in
die diesen Zellen zugeordnete zweite Bitstellen geschrieben werden
können.
Bei einem Ausführungsbeispiel
wird eine beliebige Ladungsmenge den ersten Bitstellen zugeführt, während bei
einem weiteren Ausführungsbeispiel
die diesen zugeführte
Ladung ausreicht, um die ersten unprogrammierten Stellen in einen
zweiten (programmierten) Zustand zu ändern. Bei einem Ausführungsbeispiel
erfolgt das Anlegen einer Ladung an eines der Bits in der Zelle
beim eingebetteten Lösch-(oder
Aufbereitungs-)Prozess, um ein schnelles Schreiben der Benutzerdaten
in das andere Bit der Zellen zu einem späteren Zeitpunkt zu ermöglichen.
-
Bei
einem weiteren Aspekt der vorliegenden Erfindung ist ein Verfahren
zum Partitionieren eines Zweibit-Flash-Speicherarray vorgesehen.
Das Verfahren umfasst das Identifizieren eines Arrayteils des Gesamtarray
für auf
diesen gerichtete Schnellschreib-Operationen. Bei dieser Identifizierung
sind Schnellschreib-Operationen auf den identifizierten Arrayteil
gerichtet, wobei sich die Schnellschreib-Operationen von den an
Teilen des Array, die nicht derart bezeichnet sind (die mit Standardgeschwindigkeit
programmiert werden) durchgeführten Operationen
unterscheiden. Bei einem Ausführungsbeispiel
unterscheiden sich die Schnellschreib-Operationen von den Standardschreib-Operationen
bei einem Block-Lösch-(oder
-Aufbereitungs-)Vorgang, wobei sowohl die ersten als auch die zweiten
Bitstellen in dem identifizierten Arrayteil durch ausreichendes
Entfernen von Ladung von diesen gelöscht werden. Ferner wird dann
die Ladung der ersten Bitstelle für jede Zelle innerhalb des
identifizierten Arrayteils zugeführt,
wodurch anschließende
Schnellprogrammier-Operationen an den zweiten Bitstellen an einer oder
mehreren darin enthaltenen Zellen bewirkt werden. Die Schnellschreib-Blöcke müssen nicht
unbedingt zusammenhängend
sein: ein beliebiger Block des Flash kann dynamisch als Normalgeschwindigkeits-
oder Hochgeschwindigkeitsblock eingestellt werden.
-
Bei
einem weiteren Aspekt der vorliegenden Erfindung kann die Identifizierung
spezieller Arrayteile für
Schnellschreib-Operationen benutzergesteuert sein und somit eine
flexible Partitionierung der Arrayteile ermöglichen. Bei einem Ausführungsbeispiel
ist ein Befehlsregister mit benutzergesteuerten Werten geladen,
die anzeigen, ob spezielle Arrayteile als Schnell-Array- oder Normal-Arrayteile bezeichnet sind.
Das Verfahren umfasst ferner das Zugreifen auf das Befehlsregister
oder das Senden eines Abfragebefehls an den entsprechenden Arrayteilen
zugeordnete Stellen, um aus den dort befindlichen Daten zu ermitteln,
ob dieser Arrayteil ein Schnellschreib-Arrayteil ist, und das Ausführen einer
Schnellschreib-Sektorlösch-,
Seitenschreib- oder Seitenleseoperation, wenn dies ermittelt worden
ist.
-
Die
Erfindung betrifft ferner das Setzen eines "Schnellschreib-Modus", dem eine beliebige mit dem Schnellschreib-Modus
in Beziehung stehende Operation folgt, und das Rücksetzen auf einen "Normalmodus", dem eine beliebige
mit dem Normalmodus in Beziehung stehende Operation folgt. Bei dem
Verfahren kann ferner der aktuelle Vorrichtungsmodus (Schnellschreib
oder Normal) durch Senden eines Modusabfragebefehls und Lesen des
Status aus dem Statusregister abgefragt werden.
-
Die
vorliegende Erfindung betrifft ferner einen Zweibit-Speicher mit
einem Kernzellenarray aus Zweibit-Flash-Speicherzellen, die in Form
von mehreren Arrayteilen (z.B. Sektoren) konfiguriert sind. Der
Speicher weist ferner eine Steuerschaltung zum Partitionieren der
mehreren Arrayteile in einen Schnellschreib-Arrayteil und/oder einen
Normalschreib-Arrayteil auf (wobei die beiden Teile nicht notwendigerweise
zusammenhängend
sind). Ferner weist bei einem Ausführungsbeispiel die Steuerschaltung
eine Schnellschreib-Steuerlogik zum Durchführen einer Schnellschreib-Block-Lösch-Operation
an in dem Array partitionierten bezeichneten Schnellschreib-Arrayteilen
auf. Die Schnellschreib-Steuerlogik
ist zum Beispiel zum Block-Löschen
sowohl der ersten als auch der zweiten Bitstellen in jeder Zweibit-Zelle
in dem Schnell-Arrayteil durch Entfernen von Ladung von diesen vorgesehen. Die
Steuerlogik ist ferner zum Liefern einer Ladung zu der ersten Bitstelle
jeder Zelle in dem Schnell-Arrayteil vorge sehen, um dadurch sich
an die zweiten Bitstellen einer beliebigen Zelle in dem Schnell-Arrayteil
anschließende
Schnellschreib-Operationen zu vereinfachen.
-
Bei
einem weiteren Aspekt der vorliegenden Erfindung weist ein Zweibit-Flash-Speicher ein Kernzellenarray
aus Zweibit-Flash-Speicherzellen auf, die in Form mehrerer Arrayteile,
wie z.B. Speichersektoren, konfiguriert sind. Der Speicher weist
ferner eine Steuerschaltung zum selektiven Block-Löschen eines
der Arrayteile, der für
Schnellschreib-Operationen vorgesehen ist, in zwei Phasen auf, wobei
eine erste Phase das Block-Löschen
sowohl der ersten als auch der zweiten Bitstellen jeder darin enthaltenen
Zelle in einen ersten Zustand umfasst. Die Steuerschaltung ist ferner
in einer zweiten Phase zum Liefern von Ladung zu einer ersten Bitstelle
jeder blockgelöschten
Zelle vorgesehen. Bei einem Ausführungsbeispiel
reicht die zu dieser gelieferte Ladung aus, damit die erste Bitstelle
als zweiter Zustand lesbar gemacht wird. Anschließend kann
der Schnellschreib-Arrayteil Benutzerdaten aufweisen, die mit einer
wesentlich schnelleren Rate als bei herkömmlichen Speicherarchitekturen
in die zweiten Bitstellen einer oder mehrerer darin enthaltener
Zellen programmiert werden.
-
Die
folgende Beschreibung und die beiliegenden Zeichnungen geben eine
detailliertere Darstellung bestimmter der Erläuterung dienender Aspekte und
Ausführungsformen
der Erfindung. Diese zeigen nur einige wenige der zahlreichen Arten,
in der die Prinzipien der Erfindung angewendet werden können.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
1 zeigt
einen schematischen Teil-Querschnitt mit Darstellung eines Ausführungsbeispiels einer
Zweibit-Flash-Speicherzelle zum Speichern zweier physischer Datenbits;
-
2 zeigt
ein Blockschaltbild einer beispielhaften Flash-Speichervorrichtung,
die in der Lage ist, die erfindungsgemäßen Schnellschreib-Verfahren
und -Vorrichtungen zu verwenden;
-
3 zeigt
eine schematische Darstellung einer Zweibit-Flash-Speicherarchitektur
des Virtuell-Masse-Typs, bei der die erfindungsgemäßen Schnellschreib-Verfahren
und -Vorrichtungen verwendet werden können;
-
4 zeigt
eine perspektivische Teilansicht mit Darstellung eines beispielhaften
Layout einiger Zweibit-Flash-Speicherzellen in einer Virtuell-Masse-Architektur,
die in Zusammenhang mit der vorliegenden Erfindung verwendet werden
können;
-
5 zeigt
einen Teil-Querschnitt entlang der gestrichelten Linie 5-5 aus 4 mit
Darstellung von Zweibit-Flash-Speicherzellen, bei denen beide Bitstellen
auf einen Zustand programmiert sind, der beispielsweise den logischen
Zustand "0" repräsentiert;
-
6 zeigt
ein Ablaufdiagramm mit Darstellung eines Verfahrens zum Durchführen einer Schnellschreib-Block-Löschung,
der ein Hochgeschwindigkeits-Schreiben gemäß einem Aspekt der vorliegenden
Erfindung folgt, wobei die Aktionen 204 und 206 bei
einer Ausführungsform
den Schnellschreib-Block-Löschprozess
beschreiben;
-
7 zeigt
einen schematischen Teil-Querschnitt mit Darstellung mehrerer Zweibit-Flash-Speicherzellen
innerhalb eines Schnellschreib-Arrayteils vor einer Schnellprogrammier-Operation
gemäß der vorliegenden
Erfindung mit einer Zufallsverteilung von darin enthaltenen Daten
auf der Basis von vorhergehender Operationen;
-
8 zeigt
einen schematischen Teil-Querschnitt mit Darstellung der mehreren
Zweibit-Flash-Speicherzellen aus 7 nach einem
erfindungsgemäßen Block-Lösch-Schritt;
-
9 zeigt
einen schematischen Teil-Querschnitt mit Darstellung der mehreren
Zweibit-Flash-Speicherzellen aus 7 nach einer Block-Pro grammierung
einer ersten Bitstelle der Zellen in dem Schnellschreib-Arrayteil gemäß der vorliegenden
Erfindung, wobei ein Status einer Schnellschreib-Zelle am Ende des
Schnellschreib-Block-Löschprozesses
dargestellt ist;
-
10 zeigt
einen schematischen Teil-Querschnitt mit Darstellung der Zweibit-Flash-Speicherzellen
aus 7 nach einer Programmierung einer zweiten Bitstelle
einer oder mehrerer Zellen in dem Schnellschreib-Arrayteil gemäß der vorliegenden Erfindung,
wobei sich jedes Bit auf der Basis der Benutzerdaten in einem der
beiden Zustände
befinden kann;
-
11 zeigt
ein Ablaufdiagramm mit Darstellung eines Verfahrens zum Partitionieren
eines Zweibit-Flash-Speichers in Schnellschreib-Arrayteile und Normal-Arrayteile
gemäß der vorliegenden
Erfindung;
-
12 zeigt
eine schematische Darstellung eines Zweibit-Flash-Speicherarray
und Befehlsregisters zum Partitionieren des Flash-Speicherarray
in Schnellschreib-Arrayteile bzw. Normal-Arrayteile; und
-
13 zeigt
ein schematisches Blockschaltbild mit Darstellung einer Zweibit-Flash-Speichervorrichtung
mit einer Steuerlogik zum Partitionieren und Betreiben der Vorrichtung
gemäß einem
erfindungsgemäßen Schnellschreib-Operationsvorgang.
-
ART(EN) ZUM DURCHFÜHREN DER
ERFINDUNG
-
Eine
oder mehrere Ausführungsformen
der vorliegenden Erfindung werden nun mit Bezug auf die Zeichnungen
beschrieben, in denen gleiche Bezugszeichen zum Bezeichnen gleicher
Elemente in sämtlichen
Zeichnungen verwendet werden. Ein oder mehrere Aspekte der Erfindung
werden im Folgenden anhand einer beispielhaften Zweibit-Flash-Speichervorrichtung
dargestellt und beschrieben, bei der leitende dotierte Polysilizium-Wortleitungen über einer
La dungseinfangschicht ausgebildet sind, um Flash-Speicherzellen
in Kombination mit diffundierten Teilen (z.B. Source/Drains) in
einem darunter liegenden Siliziumhalbleiterkörper zu bilden, wobei die Zellen
in Reihen (z.B. Wortleitungen) und Spalten (z.B. Bitleitungen) in
einem Virtuell-Masse-Array organisiert sind. Die Erfindung ist jedoch
nicht auf die dargestellten Ausführungsformen
begrenzt und kann alternativ in Zusammenhang mit einem beliebigen spezifischen
Substratmaterialtyp (z.B. Silizium-Wafer, SOI-Wafer, epitaxische
Schicht etc.), einem beliebigen Typ einer Zweibit-Flash-Speicherzellenstruktur und
einer beliebigen Arraykonfiguration (z.B. NOR, virtuelle Masse etc.)
verwendet werden.
-
Eine
beispielhafte Zweibit-Flash-Speicherzelle, die in Zusammenhang mit
der vorliegenden Erfindung verwendet werden kann, ist in 1 gezeigt und
mit dem Bezugszeichen 10 bezeichnet. Die Zweibit-Zelle 10 befindet
sich in einem Halbleiterkörper 12,
wie z.B. einem dotierten Substrat oder einer dotierten Well-Region
innerhalb eines Substrats. Source-/Drain-Regionen 14 und 16 sind
durch eine Kanalregion 18 voneinander getrennt, über welcher eine
Gate-Struktur 20 ausgebildet
ist. Die Gate-Struktur 20 weist bei dem hier beschriebenen Ausführungsbeispiel
ein dotiertes Polysilizium-Gate 22 über einem Ladungseinfang-Dielektrikum 24,
wie z.B. einer ONO-(Oxidnitridoxid-)Schicht, auf. Bei geeigneter
Vorspannung der Source-/Drain-Regionen 14, 16 und
des Gate 22 (wie nachstehend genauer beschrieben wird)
kann eine Ladung zwei unterschiedlichen, in 1 mit A
und B bezeichneten Bitstellen zugeführt oder von diesen entfernt
werden.
-
2 zeigt
eine schematische Darstellung einer Draufsicht einer beispielhaften
Zweibit-Flash-Speichervorrichtung 100 gemäß einem
Aspekt der vorliegenden Erfindung. Der Speicher 100 weist
generell einen Halbleiterkörper 102 mit
einer oder mehreren Kernregionen 104 mit hoher Dichte auf,
in denen sich die Zweibit-Flash-Speicherzellen befinden. Die Kernregionen
mit hoher Dichte weisen typischerweise ein oder mehrere M-mal-N-Arrays 104 aus
einzelnen adressierbaren, im Wesentlichen identischen Zweibit-Flash-Speicherzellen
auf. Innerhalb solcher Arrays 104 kann der Speicher weiter
in kleinere Speicher zellen-Arrayteile, wie z.B. mehrere Sektoren,
unterteilt sein, es ist jedoch jede beliebige Konfiguration dieser
Zellen durch die vorliegenden Erfindung abgedeckt. An anderer Stelle
an der Vorrichtung befinden sich Peripherieteile mit niedrigerer Dichte,
die typischerweise eine Eingangs-/Ausgangs-(I/O-)Schaltung 106 und
eine Programmierschaltung zum selektiven Adressieren der einzelnen Speicherzellen
aufweisen. Die Programmierschaltung ist teilweise durch einen oder
mehrere X-Decoder 108 und einen oder mehrere Y-Decoder 110 repräsentiert
und weist diese auf, welche mit der I/O-Schaltung 106 und
einer Steuerlogikschaltung 112 zusammenwirken, um eine
Source, ein Gate und/oder ein Drain von ausgewählten adressierten Speicherzellen
selektiv mit vorbestimmten Spannungen oder Impedanzen zu verbinden,
um vorgesehene Operationen an den jeweiligen Speicherzellen durchzuführen (z.B.
Programmieren, Lesen und Löschen
und Ableiten erforderlicher Spannungen zum Durchführen dieser
Operationen).
-
3 zeigt
ein Beispiel eines Teils eines der Kernarrays 104 in der
Vorrichtung 100, wobei Teile mehrerer Reihen und Spalten
entlang Wortleitungen WL0 bis WLN bzw. Bitleitungen BL0 bis
BLM dargestellt sind, wobei das Array 104 bei
diesem Ausführungsbeispiel
in einer Virtuell-Masse-Konfiguration dargestellt ist. Das Array 104 weist
Reihen von Zweibit-Flash-Zellen 120, bei denen Steuer-Gate-Anschlüsse mit
einer diesen zugeordneten Wortleitung WL gekoppelt sind, und Spalten
von Zellen 120 auf, bei denen ein Drain einer Zelle zusammen
mit der Source einer benachbarten Zelle mit einer diesen zugeordneten
Bitleitung BL gekoppelt ist. Bei dieser Konfiguration sind die Drain-Anschlüsse der
Zellen 120 innerhalb einer vorbestimmten Spalte mit derselben
Bitleitung BL verbunden.
-
Einzelne
Flash-Zellen 120 können über eine entsprechende
Wortleitung WL und ein Paar Bitleitungen BL, die die Target-Zelle
begrenzen, ausgewählt
werden, wobei die Wortleitungs- und Bitleitungssignale von der Steuerlogik 112 und
der Decoderschaltung 108, 110 (2)
erzeugt werden. Somit wird bei Anlegen einer positiven Spannung
an die mit dem Drain einer Zelle 120 gekoppelte Bitleitung BL
ein leitender Pfad zwischen dem Drain und der Source dieser Zelle
hergestellt, der durch Liefern der geeigneten Bitleitungssignale
von der Steuerlogik 112 und den Decodern 108, 110 mit
Masse verbunden ist. Auf diese Weise wird eine virtuelle Masse durch
selektives Verbinden einer Masse mit der dem Source-Anschluss nur
dieser ausgewählten
zu lesenden oder zu programmierenden Flash-Zellen zugeordneten Bitleitung
gebildet.
-
4 zeigt
eine perspektivische Ansicht eines Teils eines Zweibit-Flash-Speicherarray mit
Darstellung mehrerer Zweibit-Zellen 140 in einem beispielhaften
vereinfachten Layout für
eine Virtuell-Masse-Architektur, wie z.B. der in 3 gezeigten.
Die Zellen 140 weisen diffundierte oder vergrabene Bitleitungen 144 und 146 auf,
die als Source-/Drain-Regionen innerhalb des Halbleiterkörpers 102 fungieren. Über dem
Körper 102 ist
die Ladungseinfang-Dielektrikumsschicht, zum Beispiel ein dreilagiges
ONO 148 mit einem ersten Oxid 150, einem zweiten
Oxid 152 und einem sandwichartig dazwischen angeordneten
Nitrid 154, vorgesehen. Über dem Ladungseinfang-Dielektrikum 148 sind
gemusterte dotierte Polysilizium-Wortleitungen 160, 162 vorgesehen,
die im Wesentlichen orthogonal zu den vergrabenen Bitleitungen 144, 146 verlaufen. 5 zeigt
einen Teil-Querschnitt der Zweibit-Flash-Speichervorrichtung aus 4 entlang
der gestrichelten Linie 5-5. Bei dem in 5 gezeigten
Ausführungsbeispiel
verläuft
eine gemusterte Polysilizium-Wortleitung (Transistor-Gate(s)) seitlich über mehrere
vergrabene Bitleitungen (Source/Drain) 144, 146,
welche in die Seite hinein verlaufen. Auf der Basis der Vorspannung
der Source-/Drain-Regionen und des Steuer-Gate kann jede Zelle entlang
einer Wortleitung gelöscht,
programmiert bzw. gelesen werden. Gemäß 5 weisen
die drei teilweise dargestellten Zweibit-Zellen jeweils sowohl erste
als auch zweite Bitstellen A und B auf, die zumindest teilweise
durch Anlegen einer Ladung an die Bitstellen programmiert werden.
Zum Beispiel bewirkt ein Vorspannen der Bitleitung 144 auf
ein positives Drain-Potential, der Bitleitung 146 auf ein
Masse-Source-Potential und des Steuer-Gate auf ein ausreichendes
Programmierpotential, dass Elektronen von der Source 146 in Richtung
des Drain 144 laufen. Eine bestimmte Anzahl dieser Elektronen
weist eine ausreichende Energie auf, um die der Oxidisolatorschicht 150 zugeordnete
Energiesperre zu überwinden,
und wird in die Ladungseinfangschicht injiziert (z.B. hauptsächlich die
Nitridschicht 1S4), dabei handelt es sich um ein als Hot
Carrier Injection bekanntes Phänomen.
Auf der Basis der Größe und/oder
Dauer der Drain- und Steuer-Gate-Vorspannung werden variierende
Mengen an Ladung in eine Bitstelle injiziert (z.B. Bitstelle B in 5).
Wenn eine ausreichende Ladung in die Bitstelle B injiziert wird,
erhöht
sich die Schwellenspannung der Flash-Zelle für diese Bitstelle derart, dass
sich bei Lesen der Zelle die Bitstelle von einem ersten gelöschten oder
unprogrammierten Zustand (z.B. "1") zu einem zweiten
programmierten Zustand (z.B. "0") verändert hat.
-
Auf
im Wesentlichen gleiche Weise kann durch Umschalten der Source-/Drain-Regionen (z.B. Vorspannen
der Region 144 als Source und der Region 146 als
Drain) die Ladung über
eine Hot Carrier Injection in die Bitstelle A injiziert werden,
wobei eine der Bitstelle A zugeführte
Ladungsmenge schließlich den
dieser Bitstelle zugeordneten Zustand festlegt.
-
Die
Zeit, die zum Programmieren einer Flash-Speicherzelle benötigt wird,
wird typischerweise von der Zeit, die zum Durchführen der Programmierung des
Bit benötigt
wird, sowie der Zeit, die zum Durchführen anschließender Programmierungs-Verifizieroperationen
erforderlich ist, gemessen. Zum Beispiel wird nach dem Programmieren
eines Bit auf einen gewünschten
Zustand eine Programmierungs-Verifizieroperation durchgeführt, um
zu verifizieren, ob sich das Datenbit in dem gewünschten Zustand befindet. Wenn
dies nicht der Fall ist, wird ein Programmierimpuls erneut an dieses
angelegt, und diesem Vorgang folgt ein weiterer Programmierungs-Verifizierschritt.
Bei herkömmlichen
Speichervorrichtungen ist die Schreib- oder Programmiergeschwindigkeit,
wie sie von der zum Durchführen
der Anfangs-Programmieroperation und der durchschnittlichen Anzahl
von anschließenden
Programmierungs-Verifizieriterationen benötigten Zeit definiert ist,
nicht schnell genug, um die Verwendung eines Flash-Speichers bei
Anwendungen, bei den schnelle Schreibgeschwindigkeiten erforderlich
sind, zu ermöglichen.
-
Die
Erfinder der vorliegende Erfindung erkannten, dass die Geschwindigkeit,
mit der ein erstes Bit an einer ersten Bitstelle programmiert wird,
und die Geschwindigkeit, mit der sich ein entsprechendes zweites
Bit an demselben Transistor (z.B. an einer zweiten Bitstelle) unterscheidet,
auf dem programmierten Zustand des ersten Bit, der die elektrischen Charakteristiken
der zweiten Bitstelle verändert,
basierte. In einigen Fällen
wird das Verändern
der Vorrichtungsleistung eines Bit durch sein entsprechendes zweites
Bit als komplementäre
Bitstörung
(CBD) bezeichnet und wird generell als zu vermeidendes oder zu eliminierendes
Problem betrachtet. Die Erfinder der vorliegenden Erfindung erkannten,
dass mindestens ein Aspekt des CBD-Phänomens ausgenutzt werden kann,
um Zweibit-Flash-Arrayteile zu erzeugen, die wesentlich schnellere
Schreib- oder Programmiergeschwindigkeiten aufweisen als herkömmliche
Vorrichtungen, zum Beispiel in der Größenordnung von 4- oder mehr
Mal schneller sind (z.B. 20–25
% der herkömmlichen
Schreibzeit eines Zweibit-Flash
oder Einbit-NAND). Bei der vorliegenden Erfindung wird die oben
genannte Leistung durch Block-Löschen
einer Gruppe von Zellen, das heißt Entfernen der Ladung von
beiden Bitstellen der Zellen realisiert, um dort einen ersten Zustand
zu erreichen. Anschließend
wird einer ersten Bitstelle jeder Zelle in der Gruppe eine Ladung
zugeführt,
um die elektrischen Charakteristiken jeder Zelle in der Gruppe zu
verändern.
Zum Beispiel kann eine ausreichende Ladung geliefert werden, um
die erste Bitstelle auf einen zweiten Zustand zu programmieren.
Anschließend
können
Programmieroperationen an den zweiten Bitstellen der Zellen innerhalb
der Gruppe durchgeführt
werden, wobei diese Programmieroperationen wesentlich schneller
erfolgen als bei herkömmlichen
Zellen, da an dem komplementären
Bit eine Ladung angelegt ist. Ein Leistungs-Kompromiss besteht darin,
dass die Gruppe von Zellen aussagefähige Daten nur an den zweiten
Bitstellen halten können,
wodurch sich die Dichte innerhalb dieses Arrayteils um die Hälfte reduziert,
es hat sich jedoch herausgestellt, dass die Programmiergeschwindigkeit an
diesen Zellen um das 4-Fache oder mehr gegenüber herkömmlichen Vorrichtungen steigt
(z.B. Erreichen einer Schreibgeschwindigkeit von mehr als 30 MBytes/Sek.).
-
Obwohl
bei der vorliegenden Erfindung der Ausdruck erste und zweite Bitstellen
beispielhaft als Bitstellen A bzw. B bezeichnet sind, sei darauf
hingewiesen, dass die ersten und zweiten Bitstellen derart austauschbar
sind, dass die erste Bitstelle entweder das A- oder das B-Bit sein
kann, und diese Variationen werden als in den Schutzumfang der Erfindung fallend
betrachtet.
-
6 zeigt
ein Ablaufdiagramm mit Darstellung eines Verfahrens 200 zum
Konfigurieren einer Zweibit-Flash-Speicherzelle zum Vereinfachen
einer Hochgeschwindigkeits-Schreibleistung und zum anschließenden Ausführen dieser
Schnellprogrammierung gemäß der vorliegenden
Erfindung. Das beispielhafte Verfahren 200 wird nachstehend
anhand von 7–10 dargestellt
und beschrieben, in denen die dargestellten Vorrichtungen und Strukturen
bei unterschiedlichen Stufen des Verfahrens nicht unbedingt maßstabsgerecht
gezeigt sind. Obwohl das beispielhafte Verfahren 200 nachstehend
in Form einer Abfolge von Handlungen oder Ereignissen dargestellt
und beschrieben wird, sei angemerkt, dass die vorliegende Erfindung
nicht durch die dargestellte Reihenfolge dieser Handlungen und Ereignisse
eingeschränkt
ist. Zum Beispiel können
gemäß der Erfindung
einige Handlungen in anderen Reihenfolgen und/oder gleichzeitig
mit anderen Handlungen oder Ereignissen als den hier dargestellten
und/oder beschriebenen erfolgen. Ferner sind möglicherweise nicht sämtliche
dargestellten Schritte zum Implementieren einer erfindungsgemäßen Methodik
erforderlich. Ferner können
die erfindungsgemäßen Verfahren
in Zusammenhang mit der Fertigung und/oder Bearbeitung von hier
dargestellten und beschriebenen Flash-Speichervorrichtungen sowie
in Zusammenhang mit anderen, nicht dargestellten Strukturen und
Vorrichtungen implementiert werden.
-
Beginnend
bei 202 wird eine Schnellprogrammier-Konfigurationsoperation
initiiert, wobei bei 204 eine Block-Lösch-Operation an einem ausgewählten Teil
des Zweibit-Kernzellenspeichers durchgeführt wird. Bei einem Ausführungsbeispiel
ist der Kernspeicher in mehrere Speichersektoren partitioniert,
und diese Sektoren können
erfindungsgemäß unterschiedliche
Größen aufweisen.
Bei einem Ausführungsbeispiel
dient die Block-Lösch-Operation zum
Entfernen von Ladung sowohl von den ersten als auch den zweien Bitstellen
jeder Zweibit-Flash-Speicherzelle
innerhalb des ausgewählten Speichersektors.
Zum Beispiel wird durch angemessenes Vorspannen der Source-/Drain-Regionen über die
diesen zugeordneten Bitleitungen und Anlegen eines negativen Potentials
an die Gate-Elektrode die Ladung, die an einer der Bitstellen gespeichert
sein kann, aus der Ladungseinfangschicht extrahiert und wird die
dieser zugeordnete Spannung verringert. Auf im Wesentlichen gleiche
Weise wird durch Austauschen der Source-/Drain-Regionen und ebenfalls Anlegen
der Vorspannungen eine an den zweiten Bitstellen der Zellen in dem
Sektor gespeicherte Ladung von den Bitstellen entfernt, wodurch
die diesen zugeordnete Schwellenspannung verringert wird. Vorzugsweise
reicht die Block-Lösch-Operation
aus, um eine adäquate
Ladung sowohl von den ersten als auch den zweiten Bitstellen jeder
Zelle in dem ausgewählten
Sektor zu extrahieren, um einen ersten Zustand (z.B. einen unprogrammierten
Zustand, "1") zu erzeugen.
-
Anfangs
kann ein Arrayteil so aussehen, wie in 7 gezeigt,
wobei Daten in den Zweibit-Zellen generell willkürlich beispielsweise auf einer
vorhergehenden Programmierung basieren. Das heißt, dass bei einigen Zellen
beide Bitstellen programmiert sein können und bei einigen Zellen
beide Bitstellen gelöscht
sein können,
während
bei anderen Zellen entweder die erste oder die zweite Bitstelle
programmiert ist. Nach der Block-Lösch-Operation bei 204 sehen
die Zellen so aus, wie in 8 gezeigt,
wobei keine Ladung an den ersten und zweiten Bitstellen A und B
für jede
Zelle innerhalb des ausgewählten
Sektors zu sehen ist. Obwohl 8 die Stellen
völlig ohne
Ladung zeigt, sei darauf hingewiesen, dass eine gewisse Restladung
immer noch an einer oder beiden ersten und zweiten Bitstellen vorhanden
sein kann und dass dies noch in den Schutzumfang der vorliegenden
Erfindung fällt.
Vorzugsweise wird eine ausreichende Ladung von beiden Bitstellen
jeder Zelle extrahiert, damit diese als Zelle im unprogrammierten
Zustand gelesen wird.
-
Das
Verfahren 200 wird dann bei 206 fortgesetzt, wobei
bei einem zweiten Teil der Schnellprogrammier-Konfigurierung bei 202 eine
Block-Programmier-Operation
an einer ersten Bitstelle jeder Zweibit-Zelle innerhalb des ausge wählten Sektors durchgeführt wird.
Bei einem Aspekt der vorliegenden Erfindung wird die erste Bitstelle
(z.B. die Bitstelle A) jeder Zelle auf einen zweiten programmierten Zustand
(z.B. "0") programmiert. Bei
einem alternativen Aspekt der vorliegenden Erfindung kann die Block-Programmierung
der ersten Bitstelle bei 206 einfach das Zuführen einer
Ladung zu jeder ersten Bitstelle umfassen, wobei die Ladung nicht
ausreicht, um den Zustand der ersten Bitstellen zu verändern. Es
hat sich herausgestellt, dass selbst eine relativ kleine Ladungsmenge
an den ersten Bitstellen ausreicht, um eine wesentliche Verbesserung
der Geschwindigkeit der anschließenden Programmierung an den
entsprechenden zweiten Bitstellen zu bewirken.
-
Das
Ergebnis der Block-Programmierung der ersten Bitstellen der Zellen
bei 206 ist in 9 bzw. 10 gezeigt.
Zum Beispiel werden erste Bitstellen 220 (z.B. Bitstelle
A für jede
Zelle in dem ausgewählten
Sektor) mit einer beträchtlichen
Ladungsmenge programmiert, die als relativ großes Gebiet mit dunkler Schraffur
gezeigt ist. Alternativ sind in 10 die
ersten Bitstellen 220 umgeschaltet, damit sie den Bitstellen
B entsprechen, um zu zeigen, dass die Erfindung auf beide Fälle anwendbar
ist, da die Zweibit-Zellen symmetrisch arbeiten. Ferner zeigt 10 den
Fall, in dem eine kleinere Ladungsmenge den ersten Bitstellen zugeführt wird,
und diese ist etwas kleiner und als heller schraffierte Ladungsverteilungen
dargestellt. Es sei angemerkt, dass diese Variationen als in den
Schutzumfang der vorliegenden Erfindung fallend betrachtet werden.
Es sei angemerkt, dass die Ladungsmenge größer ist als bei einer gelöschten Bitstelle.
In dieser Hinsicht reicht die Ladung aus, um nicht dem ersten (oder
Lösch-)
Zustand zu entsprechen, selbst wenn die Ladung möglicherweise nicht groß genug
ist, um eine solche Bitstelle zu einer in den zweiten Zustand programmierten
Bitstelle zu machen, der einem Pegel entsprechen würde, an
dem Daten im herkömmlichen
Sinne als Daten in einem anderen Zustand gelesen würden.
-
Nach
der Schnellprogrammier-Konfigurierung bei 202 kann die
eigentliche Schnellprogrammier-Operation beginnend bei 207 durchgeführt werden,
wobei die Programmierung der zweiten Bitstelle in einer oder mehreren
Zellen inner halb des Sektors bei 208 durchgeführt wird.
Diese Schnellprogrammier-Operation kann je nach Wunsch eine unmittelbar
auf den Konfiguriervorgang 202 folgende Programmieroperation
umfassen oder etwas später
erfolgen. Ferner kann die Schnellprogrammierung bei 208 je
nach Art und Menge der zu sichernden Daten bei einer oder mehreren
Zellen innerhalb des Sektors erfolgen. Die in 6 dargestellte
Methodik 200 endet dann bei 210.
-
Es
sei ferner angemerkt, dass das in 6 dargestellte
Verfahren 200 auf einen oder mehrere Sektoren oder andere
Arrayteile innerhalb des gesamten Kernspeichers begrenzt sein kann.
Das heißt,
dass zwar das Verfahren 200 eine wesentliche Verbesserung
der Schreibgeschwindigkeit bewirkt, es jedoch auch die Speicherdichte
in diesen Sektoren reduziert, da jede erste Bitstelle in den Zellen
innerhalb des Schnellschreib-Sektors nicht zum Halten von Daten
zur Verfügung
steht; folglich kann es wünschenswert
sein, dass nur ein oder mehrere Sektoren innerhalb des gesamten
Kernspeichers für
Schnellschreib-Operationen
zweckbestimmt sind, während die
verbleibenden Sektoren in Zusammenhang mit herkömmlichen Programmiertechniken
arbeiten können.
Ferner ist die Anzahl der derart partitionierten Sektoren flexibel
steuerbar, um sich mit der Zeit verändernden Bedürfnissen
des Speichers Rechnung zu tragen oder eine Flexibilität in einen
einzelnen Chip zu bieten, um für
unterschiedliche Anwendungen geeignet zu sein, bei denen unterschiedliche Größen eines
Schnellschreib-Speichers und eines Speichers mit hoher Dichte (Normalschreib-Geschwindigkeit)
erforderlich sind.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung ist ein Verfahren 300 zum
Partitionieren eines Zweibit-Flash-Speichers in Schnellschreib-Teile
und Normalschreib-Teile vorgesehen, wie in 11 dargestellt.
Das Verfahren 300 beginnt bei 302 und geht bei 304 zu
einer Frage weiter, ob sämtliche
Sektoren innerhalb des Kernarray als Schnellschreib-Teile oder -Sektoren
zu behandeln sind. Wenn die Antwort auf diese Frage positiv ist
(JA bei 304), wird bei 306 ein Befehlscode für sämtliche Sektoren
innerhalb des Kernarray auf Schnellschreibung verändert. Bei
dem vorstehenden Beispiel ist angenommen, dass eine Vorgabe-Bedingung
besteht, wobei jeder Sektor anfangs auf einen Normalschreib-Operationsmodus
gesetzt ist. Alternativen zu dieser Vorgabe-Bedingung sind jedoch von der vorliegenden
Erfindung abdeckt. Wenn bei 306 der Befehlscode auf den
Schnellschreib-Modus für jeden
Sektor gesetzt ist, kann das Verfahren 300 bei 308 mit
einem Ende der Partitionierung beendet werden, und bei anschließenden Operationen
greift die Steuerschaltung zwecks Durchführung von Schnellschreib-Operationen
auf Stellen zu, die den (die) bei 306 gesetzten Befehlscodes)
enthalten.
-
Wenn
die Antwort auf die bei 304 gestellte Frage negativ ist
(NEIN bei 304), geht das Verfahren zu 310 weiter,
wobei eine weitere Frage gestellt wird, ob sämtliche Sektoren innerhalb
des Kernarray als Normalschreib-Sektoren behandelt werden sollen. Wenn
die Antwort auf diese Frage positiv ist (JA bei 310), werden
bei 312 die Vorgabe-Befehlscodes in ihrem aktuellen Zustand
gehalten, beispielsweise in einer Speicherstelle. Auch hier ist
bei Aktion 312 angenommen, dass der (die) Vorgabe-Befehlscodes) auf
Normaloperationen gesetzt ist (sind). Wenn jedoch eine andere Vorgabe-Bedingung
besteht, können
Befehlscodes verändert
werden, zum Beispiel wie oben bei 306 beschrieben. Wenn
die Aktion 312 beendet ist, geht das Verfahren 300 zu 308 über, wobei
das Partitionieren abgeschlossen ist und die Steuerlogik dann die
Befehlscodes zum Konfigurieren des Kernspeichers zum nachfolgenden
Schreiben (Programmieren) in diesen verwenden kann.
-
Wenn
die Antwort auf die bei 310 gestellte Frage negativ ist
(NEIN bei 310), wird eine Sektor-Zähler-Variable "N" auf einen Anfangswert gesetzt, der
bei 314 den ersten Sektor innerhalb des Kernarray repräsentiert
(z.B. N = 0). Bei 316 wird dann eine Frage gestellt, ob
der spezielle Sektor (z.B. anfangs der Sektor 0) als Schnellschreib-Sektor
partitioniert werden soll. Wenn die Antwort auf diese Frage positiv
ist (JA bei 316), wird der dem aktuellen Sektor N zugeordnete
Befehlscode verändert,
um anzuzeigen, dass der Sektor bei 318 als Schnellschreib-Sektor
partitioniert worden ist. Die Sektor-Zähler-Variable N wird dann bei 320 inkrementiert,
und darauf folgt bei 322 eine Frage, ob sämtliche
Sektoren durch Vergleichen der Zähler-Variablen mit
einem maximalen Schwellenwert bewertet worden sind. Wenn die Antwort
auf die bei 322 ge stellte Frage negativ ist (NEIN bei 322),
müssen
weitere Sektoren innerhalb des Kernarray noch bewertet und partitioniert
werden, und das Verfahren 300 geht zu der Frage 316 über, wobei
der nächste
Sektor bewertet wird, um zu ermitteln, ob er als Schneilschreib-Sektor
oder Normal-Sektor zu konfigurieren ist. Wenn die Antwort auf die
bei 316 gestellte Frage negativ ist (NEIN bei 316),
wird der betroffene Sektor bei 324 als Normalschreib-Sektor
beibehalten, und das Verfahren geht bei Aktion 320 bzw. 322 zu
dem nächsten
Sektor in dem Kernarray über.
-
Es
sei darauf hingewiesen, dass der Sektor-Zähler bei einem weiteren Ausführungsbeispiel durch
anfängliches
Setzen bei 304 auf den letzten Sektor abwärts zählen kann
und bei 320 dekrementiert werden kann, bis bei 322 die
erste Anzeige erfolgt, oder es kann ein anderes Zählverfahren
sämtliche
Sektoren des Zweibit-Speichers abdecken. Eine weitere Option besteht
in dem Definieren einer Gruppe (einer oder mehrerer) von Sektoren,
die als Hochgeschwindigkeitsschreib-Sektoren zu setzen sind (z.B.
am Anfang oder am Ende des Flash-Kernarray), und dem Zählen nur
der Sektoren in dieser Gruppe.
-
Es
sei ferner darauf hingewiesen, dass das Aufrechterhalten einer solchen
Sektorentabelle optional ist und andere Verfahren implementiert
werden können,
um zu ermitteln, ob ein Sektor ein Schnellschreib-Sektor oder ein
Normal-Sektor ist. Zum Beispiel kann der Benutzer den Status des
Sektors bei seiner Anwendung verfolgen und ferner den Sektorstatus-Abfragebefehl
zum Verifizieren des Modus der in einem beliebigen Sektor gespeicherten
Daten verwenden.
-
12 zeigt
schematisch, wie bei einem Ausführungsbeispiel
die in 11 dargestellte Methodik 300 ausgeführt werden
kann. Gemäß 12 ist
ein Kernzellenarray 350 in N Sektoren 352 partitioniert,
die als Sektoren 0 – (N – 1) nummeriert
sind. Wie oben beschrieben, kann gemäß der Erfindung zwar die Partitionierung
in Sektoren erfolgen, es sei jedoch darauf hingewiesen, dass auch
andere Arrayteilgrößen verwendet
werden können
und dass diese Array teile selbst in ihrer Größe variieren können und diese
Variationen als in den Schutzumfang der Erfindung fallend betrachtet
werden. Eine Speicherstelle, die sich in dem Zweibit-Flash-Speicher
befindet oder diesem zugeordnet ist, wie z.B. ein Sektor-Befehlsregister 354,
weist mehrere Datenstellen auf, die generell den Sektoren innerhalb
des Kernarray 350 entsprechen. Bei Durchführung der
Partitionierung unter Anwendung des in 11 dargestellten
Verfahrens 300 oder gemäß einem
anderen Partitionierungskonzept werden Daten, die dahingehend zugeordnet sind,
ob der Sektor als Schnellschreib-Sektor
oder als Normalschreib-Sektor verwendet wird, in der entsprechenden
Datenstelle gesichert. Bei dem in 12 dargestellten
Ausführungsbeispiel
wird ein Eindatenbit verwendet, wobei eine "0" einem
gewünschten
Normalschreib-Modus entspricht, während eine "1" einem
gewünschten
Schnellschreib-Modus für
einen vorbestimmten, dieser Datenstelle entsprechenden Sektor entspricht.
Auf diese Daten kann zum Beispiel die Steuerschaltung dann zugreifen
und diese bei der anschließenden Konfiguration
und Ausführung
verschiedener Programmier- und Lösch-Operationen
verwenden.
-
Die
vorliegende Erfindung betrifft ferner eine Zweibit-Flash-Speichervorrichtung
mit einem Kernzellenarray und einer Steuerschaltung, die gemäß den hier
beschriebenen Funktionsprinzipien arbeiten. Zum Beispiel ist bei
einem Aspekt der Erfindung eine Steuerschaltung zum Partitionieren
der mehreren Arrayteile (z.B. Sektoren) innerhalb des Kernarray
in einen Schnellschreib-Arrayteil und/oder einen Normalschreib-Arrayteil
vorgesehen. Bei einem weiteren Aspekt der Erfindung ist eine Steuerschaltung
zum Vereinfachen von Schnellschreib-Operationen in ausgewählten Speicherteilen
durch Block-Löschen dieser
Arrayteile in zwei Phasen vorgesehen, wobei beide Bitstellen in
einer ersten Phase gelöscht
werden (z.B. Ladung von diesen entfernt wird) und die ersten Bitstellen
in einer zweiten Phase programmiert werden (z.B. Ladung an diese
angelegt wird). Anschließend
werden Schreiboperationen an zweiten Bitstellen an einer oder mehreren
Zellen innerhalb der ausgewählten
Arrayteile durchgeführt,
wobei diese Schreiboperationen aufgrund des beabsichtigten Vorhandenseins
von Ladung an der Stelle des komplementären Bit (ersten Bit) in ungefähr 20–25 % der
für herkömmliche
Schreiboperationen benötigten
Zeit erfolgen. Die kurze Schreibzeit ist gleich der Schnellschreib-Geschwindigkeit,
die 4- oder mehr Mal schneller ist als die Normaschreib-Geschwindigkeit
eines Zweibit-Flash oder eines Einbit-NAND-Flash.
-
Gemäß 13 ist
eine Zweibit-Speichervorrichtung 400 mit einem Zweibit-Flash-Speicherarray 402 vorgesehen,
das in Form mehrerer Arrayteile, wie z.B. Sektoren, konfiguriert
ist. Eine Steuerschaltung 404 ist mit dem Speicherarray 402 gekoppelt und
liefert über
eine Unterstützungsschaltung,
wie z.B. (nicht gezeigte) X- und Y-Decoder, Steuer- und Datensignale
für verschiedene
Operationen (z.B. Lösch-,
Programmier- und Leseoperationen) an die Zweibit-Flash-Zellen innerhalb des Array. Die
Vorrichtung 400 weist ferner ein Sektor-Befehlsregister oder einen anderen Typ
von Datenstellen 406 auf, die Daten enthalten, welche generell
den verschiedenen Arrayteilen innerhalb des Kernarray 402 entsprechen.
Die Daten zeigen an, ob diese Arrayteile in einem Schnellschreib-Modus
oder einem Normalschreib-Modus arbeiten, und die Steuerschaltung 404 greift
zum Durchführen
der ihr zugeordneten spezifischen Operationen auf diese Daten zu. Schließlich weist
die Speichervorrichtung 400 ein Benutzer-Interface 408 auf,
das zum Vereinfachen einer flexiblen Partitionierung des Kernarray
in Schnellschreib-Modus- bzw. Normalschreib-Modus-Teile verwendet werden
kann.
-
Die
Steuerlogik 404 weist eine Schnellschreib-Steuerschaltung 410 bzw.
eine Normalschreib-Steuerschaltung 412 auf, die zum Steuern
verschiedener Operationen an dem Flash-Array 402 in Abhängigkeit
davon vorgesehen sind, ob der betroffene Arrayteil oder Sektor als
Schnellschreib-Arrayteil oder Normalschreib-Arrayteil ausgeführt ist.
Anhand von Daten, die der Steuerschaltung 404 von dem Sektor-Befehlsregister 406 zugeführt worden
sind, verwendet die Steuerschaltung eine der Schreib-Steuerschaltungen 410, 412 zum Durchführen der
gewünschten
Operation. Es sei angemerkt, dass die Schreib-Steuerschaltungen 410 und 412 je
nach Wunsch separate Hardwareteile aufweisen können oder in einer einzigen
Zustandsmaschine integriert sein können oder sogar über eine Firmware
bereitgestellt sein können,
und jede Art der Bereit stellung dieser Steuerfunktionalität wird als
in den Schutzumfang der vorliegenden Erfindung fallend betrachtet.
-
Wenn
ein Sektor als Schnellschreib-Sektor ausgeführt ist, bereitet die Steuerschaltung 404 bei einem
Ausführungsbeispiel
diesen Sektor auf das Schnellschreiben in diesen vor. Bei einem
Ausführungsbeispiel
verwendet die Schaltung 404 die Schnellschreib-Steuerschaltung 410 zum
Durchführen
einer Operation, die der oben anhand der Schritte 204–206 aus 6 beschriebenen
in Wesentlichen gleich ist. Das heißt, dass der ausgewählte Sektor anfangs
einem Block-Löschen
unterzogen wird, wobei von beiden Bitstellen jeder Zweibit-Zelle
innerhalb des Sektors eine ausreichende Ladung entfernt wird, um
einen ersten, unprogrammierten Zustand (z.B. eine "1") zu erreichen. Die Schnellschreib-Steuerschaltung 410 programmiert
dann das "Ignorier-" oder komplementäre Bit jeder
Zelle innerhalb des ausgewählten
Sektors. Wie oben beschrieben, wird bei einem Ausführungsbeispiel
die erste Bitstelle (z.B. die Bitstelle A) jeder Zelle innerhalb
des Schnellschreib-Sektors programmiert. Bei einem Ausführungsbeispiel
reicht die Programmierung aus, um den Zustand des komplementären Bit
(Bitstelle A) auf einen zweiten Zustand (z.B. eine "0") zu ändern. Alternativ kann eine
kleinere Ladungsmenge dem komplementären Bit (z.B. der ersten Bitstelle)
zugeführt
werden, so dass das Bit seinen Zustand möglicherweise nicht tatsächlich ändert. Es
hat sich herausgestellt, dass sogar kleine Ladungsmengen in dem
komplementären
Bit in vorteilhafter Weise die Programmiergeschwindigkeit an der
zweiten Bitstelle innerhalb des ausgewählten Sektors erhöhen.
-
Bei
der oben beschriebenen Operation der Schnellschreib-Steuerschaltung
sind der Schnellschreib-Sektor oder die Schnellschreib-Sektoren zum
anschließenden
Schnellprogrammieren vorgesehen. In diesen Fällen ist die Schnellschreib-Steuerschaltung 410 ferner
zum Liefern von Steuersignalen zwecks Bewirkens eines Datentransfer
zu den zweiten Bitstellen der Zellen innerhalb des ausgewählten Sektors
oder der ausgewählten
Sektoren mit einer sehr hohen Datenrate vorgesehen. Bei einem Ausführungsbeispiel
können
die zu den Zellen gelieferten Steuersignale, der Drain-Vorspannimpuls
und der Gate-Vor spannimpuls Impulse von kürzerer Dauer sein, um dadurch
die Datentransferrate zu erhöhen. Ferner
hat sich herausgestellt, dass die Programmierungs-Verifiziersteuerung
zwar die gleiche sein kann, die auch in einem Normalschreib-Array
verwendet wird, diese jedoch seltener zum Durchführen eines Datentransfer verwendet
wird. Das heißt,
dass statt der durchschnittlicht 4–5-maligen Wiederholung der Programmierungs-Verifizier-
und Neuprogrammierungsschritte aufgrund der Programmierung des komplementären Bit
gemäß der vorliegenden
Erfindung die Programmierungs-Verifizier- und Neuprogrammierungsschritte
durchschnittlich ungefähr
einmal durchgeführt
werden. Folglich ist die zum Beenden der Programmierung benötigte Gesamtzeit (selbst
wenn die Programmierimpulsdauer an den Drains und Gates nicht reduziert
ist) wesentlich reduziert.
-
Es
sei darauf hingewiesen, dass, da eine Programmierung in den Schnellschreib-Sektoren
nur auf die zweiten Bitstellen gerichtet ist, sich die Programmier-Zustandsmaschine
von derjenigen unterscheidet, die in der Normalschreib-Array-Steuerschaltung 412 verwendet
wird. Da aussagefähige Daten
nur an der zweiten Bitstelle vorhanden sind, unterscheidet sich
ferner die Lese-Zustandsmaschinenschaltung innerhalb der Schnellschreib-Steuerschaltung 410 von
der in der Normalschreib-Sektor-Steuerschaltung 412 verwendeten.
Ferner bezieht sich zwar, wie oben beschrieben, bei den meisten
hier dargestellten Ausführungsbeispielen
die erste Bitstelle auf die Bitstelle A der Zweibit-Zelle, es sei jedoch
darauf hingewiesen, dass sich die erste Bitstelle, falls gewünscht, alternativ
auch auf die Bitstelle B beziehen kann, da die Zweibit-Flash-Speicherzellen
symmetrisch sind. Schließlich
kann, da bei dem Schnellschreib-Modus nur eine der Bitstellen zum
Festhalten von Daten verwendet wird, ferner ein Zähler 414 in
Zusammenhang mit der Steuerschaltung 404 verwendet werden,
um die Anzahl von an den Schnellschreib-Sektoren durchgeführten Operationen
zu zählen
und eine Umschaltung zu bewirken, wobei die ersten Bitstellen nach
einer vorbestimmten Anzahl von Operationszyklen von dem A-Bit zu
dem B-Bit oder umgekehrt umgeschaltet werden, damit die Effekte
der Operationszyklen im Wesentlichen gleichmäßig an beiden Bitstellen in
der Zelle wirksam werden. Ferner kann eine solche Umschaltung zu
anderen vorbestimmten Zeiten derart wiederholt werden, dass, falls
gewünscht,
die ersten Bitstellen während
der gesamten Lebensdauer der Speichervorrichtung ohne einen Zähler zwischen
den A- und B-Bitstellen hin- und
hergetauscht werden.
-
In
jedem Fall unterscheiden sich die Operationssteuerungen, bei denen
Block-Lösch-Operationen,
Programmieroperationen und Leseoperationen über die Schnellschreib- und
Normalschreib-Steuerschaltungen 410 und 412 durchgeführt werden,
voneinander.
-
Ferner
ist die Steuerschaltung 404, falls gewünscht, zum optionalen Datentransfer
zwischen Schnellschreib-Arrayteilen (Speicherregionen mit relativ
niedriger Dichte) und Normalschreib-Teilen (Speicherregionen mit
relativ hoher Dichte) mittels eines einzigen Transferbefehls oder
einer beliebigen Kombination aus Befehlen (z.B. Lesen einer Seite oder
mehr des Schnellschreib-Teils und Schreiben in eine Seite oder mehr
im Normal-Teil derselben oder einer anderen Flash-Vorrichtung) vorgesehen.
Die Menge an transferierten Daten kann variabel sein.
-
Obwohl
die Erfindung in den vorstehenden Beispielen anhand eines Zweibit-Flash beschrieben worden
ist, ist sie auf eine beliebige Anzahl von Multibit-Flashs mit mindestens
zwei physischen Bits pro Zelle anwendbar, wobei das Programmieren
des ersten Bit (oder Bits) zu einer schnelleren Schreibgeschwindigkeit
des anderen Bit (oder Bits) in derselben Speicherzelle führt, und
alle diese Variationen sind von der vorliegenden Erfindung abgedeckt.
-
Obwohl
in den vorstehenden Beispielen das Vorprogrammieren oder Vor-Aufbereiten
einer Zellengruppe in einem Schnellprogrammier-Konfigurationsmodus
durchgeführt
wird, der ein Block-Löschen von
Zellen umfasst, sind bei der vorliegenden Erfindung auch andere
Variationen vorgesehen. Zum Beispiel kann eine Gruppe von Zellen
derart einem Block-Löschen
unterzogen werden, dass jedes Bit der Multibit-Zellen auf einen
vorbestimmten Zustand programmiert wird (z.B. Ladung von diesem
entfernt wird). Dann wird später
eine Schnellprogrammier-Konfigurierung in Zusammenhang mit einer Programmieroperation
durchgeführt.
In diesem Fall wird, wenn eine vorbestimmte Zelle programmiert werden
soll, ein erstes Bit anfangs in einem Vorprogrammier- oder Vor-Aufbereitungsschritt
geladen, worauf ein Programmieren eines zweiten Bit in der Multibit-Zelle
folgt. Dabei ist das Programmieren des zweiten Bit immer noch schneller
als bei herkömmlichen
Zellen, die nicht wie beschrieben aufbereitet worden sind (z.B.
ungefähr
2–3 Mal
schneller).
-
Ferner
sind viele der vorstehenden Beispiele zwar in Zusammenhang mit einer
Zweibit-Speicherzelle dargestellt worden, die Erfindung deckt jedoch auch
Multibit-Zellen mit mehr als zwei Bits ab. Zum Beispiel kann erfindungsgemäß eine Vierbit-
oder Achtbit-Zelle verwendet werden. In einem solchen Fall kann
ein Bit der Zelle nach dem Löschen
in gewissem Maße
geladen werden, um ein Schnellschreiben in ein oder mehrere der
verbleibenden Bits dieser Zelle zu vereinfachen. Alternativ können mehr als
ein Bit nach dem Löschen
in gewissem Maße
geladen werden, um ein Schnellschreiben in ein oder mehrere der
verbleibenden Bits dieser Zelle zu vereinfachen. Alle diese Varianten
werden als in den Schutzumfang der Erfindung fallend betrachtet.
-
Obwohl
die Erfindung anhand einer oder mehrere Ausführungsformen beschrieben worden ist,
können Änderungen
und/oder Modifikationen an den dargestellten Ausführungsbeispielen
durchgeführt
werden, ohne dass dadurch vom Geist und Umfang der beiliegenden
Ansprüche
abgewichen wird. Insbesondere hinsichtlich der verschiedenen Funktionen,
die von den oben beschriebenen Komponenten oder Strukturen (Baugruppen,
Vorrichtungen, Schaltungen, Systemen etc.) ausgeführt werden,
sollen die zum Beschreiben derartiger Komponenten verwendeten Termini
(einschließlich
jedes Bezugs auf "Vorrichtungen"), sofern nicht anderweitig
angegeben, jeder Komponente oder Struktur entsprechen, welche die
bezeichnete Funktion der beschriebenen Komponente erfüllt (z.B.
funktional äquivalent ist),
auch wenn sie nicht der beschriebenen Struktur äquivalent ist, die bei den
hier beschriebenen Ausführungsbeispielen
der Erfindung die Funktion ausführt.
Ferner kann, obwohl möglicherweise
ein bestimmtes Merkmal der Erfindung in Bezug auf nur eine von mehreren
Ausführungsformen
beschrieben worden sein kann, ein solches Merkmal mit einem oder
mehreren weiteren Merkmalen der anderen Ausführungsformen kombiniert werden,
je nachdem, wie es bei irgendeiner gegebenen oder bestimmten Anwendung
gewünscht
und vorteilhaft sein mag. Ferner ist in dem Maß, in dem der Ausdruck "enthalten", "enthält", "haben", "hat", "mit" oder Varianten dieser Ausdrücke in der
detaillierten Beschreibung und den Ansprüchen verwendet wird, dieser
Ausdruck dahingehend zu verstehen, dass er ähnlich dem Ausdruck "aufweisen" eine Einbeziehung
bezeichnet.
-
INDUSTRIELLE
ANWENDBARKEIT
-
Die
erfindungsgemäßen Systeme
und Verfahren können
auf dem Gebiet der nichtflüchtigen Speicher
zum Verbessern der Schreibgeschwindigkeit von Flash-Speichervorrichtungen
verwendet werden.
-
ZUSAMMENFASSUNG
-
VERFAHREN UND SYSTEME
ZUR ERREICHUNG EINER HOHEN SCHREIBLEISTUNG IN MULTIBIT-SPEICHERVORRICHTUNGEN
-
Es
werden Verfahren und Schaltungen zum Durchführen von Hochgeschwindigkeitsschreib-(Programmier-)Operationen
in einen Zweibit-Flash-Speicherarray vorgeschlagen. Das Verfahren
(ZOO) umfasst zum Beispiel Löschen
(204) eines ersten und eines zweiten Bit jeder Zelle in
dem Array auf einen ersten Zustand, Programmieren (206)
des ersten Bit jeder Zelle in dem Array auf einen zweiten Zustand und
anschließendes
Programmieren des zweiten Bit einer oder mehrerer Zellen in dem
Array gemäß den Benutzerdaten
auf einen der ersten und zweiten Zustände, was zu einem Schnellschreiben
(Programmieren) dieser zweiten Bits führt. Ferner weist die Schaltung
zum Beispiel ein Kernzellenarray (402) mit Zweibit-Flash-Speicherzellen
auf, die in Form von mehreren Arrayteilen konfiguriert sind. Die
Schaltung weist ferner eine Steuerschaltung (404) zum selektiven
Block-Löschen
eines der Arrayteile auf, wobei in einer ersten Phase des Block-Löschens (204)
sowohl von der ersten als auch von der zweiten Bitstelle jeder Zweibit-Flash-Speicherzelle
in dem einen Arrayteil eine ausreichende Ladung entfernt wird, um
einen ersten Zustand zu erreichen. Die Steuerschaltung (404)
ist ferner in einer zweiten Phase (206) zum Block-Löschen und
Zuführen
einer Ladung zu der ersten Bitstelle jeder Zweibit-Flash-Speicherzelle
des einen Arrayteils vorgesehen, um ein anschließendes Schnellschreiben von
Benutzerdaten in die zweite Bitstelle zu ermöglichen.