-
Die
Erfindung betrifft ein Halbleiterspeicherbauelement, ein zugehöriges Programmierverfahren und
ein zugehöriges
Leseverfahren.
-
Ein
Flashspeicherbauelement ist ein nichtflüchtiges Halbleiterspeicherbauelement,
welches elektrisch Programmier- und Löschvorgänge ausführen kann. In Massenspeicheranwendungen
oder in einem codierten Speicher für ein mobiles Gerät sind zunehmend
hohe Kapazitäts-
oder Geschwindigkeitseigenschaften erforderlich. Daher ist die Verwendung
von Flashspeicherbauelementen weit verbreitet. Flashspeicherbauelemente
können
als NAND-Flashspeicher und NOR-Flashspeicher klassifiziert werden.
Ein Zellenfeld des NOR-Flashspeichers weist Speicherzellen auf,
welche bezüglich
einer Bitleitung parallel angeordnet sind, während ein Zellenfeld des NAND-Flashspeichers
eine Mehrzahl von Speicherzellen aufweist, welche bezüglich einer Bitleitung
in Reihe angeordnet sind. Der NOR-Flashspeicher weist eine wesentlich
höhere
Geschwindigkeit bei Programmier- und Lesevorgängen als der NAND-Flashspeicher auf.
Daher ist die Verwendung des NOR-Flashspeichers für Anwendungen
weit verbreitet, welche eine Hochgeschwindigkeitseigenschaft fordern.
Der NOR-Flashspeicher ist jedoch bezüglich des Integrationsgrads
unterlegen und verwendet mehr Chipfläche als andere Flashspeichertypen.
Als ein Versuch zur Lösung
der Begrenzung der Speicherkapazität wurde ein Mehrpegelzellen(MLC)-Schema
eingesetzt. Die MLC überwindet die
Begrenzung der physikalischen Integration durch Speichern mehrerer
Bits in einer Speicherzelle.
-
Nachfolgend
werden Begriffe kurz zusammengefasst, welche in der detaillierten
Beschreibung der Erfindung verwendet werden.
-
Ein
ranghöchstes
bzw. höchstwertiges
Bit (MSB) bezeichnet Daten, welche in einer MLC detektiert werden,
an welcher durch einen ersten Abtastvorgang eine serielle Abtastung
ausgeführt
wird. Das bedeutet, dass das MSB hier nicht ein allgemeines MSB
von digitalen Daten betrifft. Ein rangniedrigstes Bit bzw. niedrigstwertiges
(LSB) bezeichnet Daten, welche in einer MLC detektiert werden, an
welcher durch einen zweiten Abtastvorgang eine serielle Abtastung
ausgeführt
wird.
-
Eine
physikalische Adresse betrifft eine Einheitsadresse einer Zelle
einer Speicherzelle, in welcher Daten gespeichert werden. Eine logische
Adresse ist eine Adresse, welche von außerhalb zugeordnet wird und
sich nicht auf eine Speicherzellenanordnung bezieht.
-
Zudem
wird eine 2-Bit-Zelle als Beispiel beschrieben, welche zwei Bits
je Zelle speichern kann, z.B. ein MSB und ein LSB. Der Stand der
Technik und die vorliegende Erfindung werden für eine Bündellänge (BL) von 4 und einer Wortlänge von
16Bit beschrieben.
-
1 zeigt ein Verfahren zum
Lesen von Daten aus einer 2-Pegel-Zelle durch Anwendung einer seriellen
Abtastung. Eine parallele Abtaststruktur oder eine serielle Abtaststruktur
können
zum Lesen von Daten aus einer MLC verwendet werden. Die parallele
Abtaststruktur liest die gespeicherten 2-Bit-Daten durch eine einmalige
Abtastung, und die serielle Abtaststruktur liest sequentiell ein
MSB und ein LSB. Die nachfolgende Beschreibung erfolgt nur für ein Speicherbauelement,
welches die serielle Abtastung verwendet.
-
Unter
Bezugnahme auf 1 umfasst
die serielle Abtastung einer MLC einen ersten Abtastvorgang und
einen zweiten Abtastvorgang. Der erste Abtastvorgang dient der Detektierung
eines An/Aus-Zustands einer Zelle durch Verwendung einer Verifizierungsspannung
VM, um ein MSB zu detektieren. Nachdem die MSB-Daten durch den ersten Abtastvorgang
detektiert sind, werden unter Bezugnahme auf die MSB-Daten Positionen
von Verifizierungsspannungen VL1 und VL2 des zweiten Abtastvorgangs
bestimmt, um ein LSB zu detektieren. Das bedeutet, dass, wenn die
während
des ersten Abtastvorgangs detektierten MSB-Daten einen Wert „1" aufweisen, eine
linke Verifizierungsspannung VL1 als Verifizierungsspannung des
zweiten Abtastvorgangs ausgewählt
wird. Im Gegensatz dazu wird, wenn die während des ersten Abtastvorgangs
detektierten MSB-Daten einen Wert „0" aufweisen, eine rechte Verifizierungsspannung
VL2 als Verifizierungsspannung des zweiten Abtastvorgangs ausgewählt. Die
in der Zelle gespeicherten 2-Bit-Daten werden durch diese sukzessiven
seriellen Abtastvorgänge
gelesen.
-
2A zeigt ein Blockdiagramm,
das ein Verfahren zum Programmieren von Eingabedaten darstellt,
welche in einem Speicherbauelement mit MLCs durch eine serielle
Abtastung gelesen werden. Unter Bezugnahme auf 2A werden eine Mehrzahl von externen
wortbasierten Daten in Zeilen gespeichert, welche mit physikalischen
Adressen korrespondieren, die intern in Worteinheiten zugeordnet werden.
Eine physikalische Adresse bestimmt MLCs zur Programmierung von
einem vollständigen
wortbasierten Datenumfang. Insbesondere werden, wenn Daten mit einer
Wortlänge,
welche eine logische Adresse aufweisen, in die Zellen programmiert
werden, die Daten in die Zellen programmiert, welche eine physikalische
Adresse bilden. Wenn ein Wort N mit einer Länge von 16-Bit eingegeben wird, werden alle Bitwerte
des Wortes N in MSBs und LSBs von acht Zellen programmiert, welche
eine physikalische Adresse #0 bilden. Das oben beschriebene Verfahren
wird analog auf eine Mehrzahl von Worten angewendet, die aufeinanderfolgend
eingegeben werden und eine Bündellänge bilden.
Die aufeinanderfolgend eingegebenen Worte N+1, N+2 und N+3, welche dem
Wort N folgen, werden in MSBs und LSBs der acht Zellen programmiert,
die in einer entsprechenden physikalischen Adresse enthalten sind.
Ein Datenwort mit einer logischen Adresse wird vollständig in
acht Zellen programmiert, welche mit einer physikalischen Adresse
korrespondieren.
-
2B ist eine Speicherabbildungstabelle zum
Erklären
des programmierten Ergebnisses, wenn die Eingabedaten einer Bündellänge in korrespondierende
Speicherzellen programmiert werden. Unter Bezugnahme auf 2B werden vier 16-Bit-Eingabeworte
N, N+1, N+2 und N+3 in die korrespondierenden acht MLCs programmiert,
welche die physikalischen Adressen #0, #1, #2 und #3 der Speicherzellen
bilden. Ein Eingabewort wird in die Zellen programmiert, welche
eine physikalische Adresse bilden. Entsprechend wird ein Eingabewort in
den Bits der Zellen einer physikalischen Adresse gespeichert.
-
3 zeigt ein Blockdiagramm
einer Konfiguration zum Lesen von Daten, welche mit dem Verfahren
gemäß den 2A und 2B programmiert wurden. Unter Bezugnahme
auf 3 tasten Abtastverstärker 10 Daten
einer bestimmten Bündellänge von den
Zellen ab. Eine Zwischenspeicherschaltung 20 puffert logische
Werte, welche durch die Abtastverstärker 10 in Reaktion
auf ein MSB-Zwischenspeicherfreigabesignal MLEN und ein LSB-Zwischenspeicherfreigabesignal
LLEN abgetastet werden, und gibt die zwischengespeicherten Daten
in Reaktion auf ein Datenumspeichersignal D_Dump aus. Ein I/O- bzw.
E/A-Puffer 30 gibt die wortbasierten Daten, welche von
der Zwischenspeicherschaltung 20 ausgegeben werden, in
Synchronisation mit einem Takt nach außen aus.
-
Die
Anzahl der Abtastverstärker 10 entspricht
der Anzahl von Zellen, welche eine Bündellänge von Daten speichern, wobei
die Bits der Zellen seriell abgetastet werden. Daher sind zwei Abtastvorgänge erforderlich,
um alle Bitwerte einer bestimmten Bündellänge zu detektieren, z.B. 64Bit
für BL=4/16Bit=1
Wort, d.h. ein erster Abtastvorgang zum Detektieren eines MSB und
ein zweiter Abtastvorgang zum Detektieren eines LSB.
-
Die
Zwischenspeicherschaltung 20 speichert die detektierten
Daten, welche durch die serielle Abtastung der Abtastverstärker 10 ausgegeben
werden. Insbesondere werden MSB-Bits der entsprechenden Zellen,
welche während
des ersten Abtastvorgangs detektiert werden, in Reaktion auf das
Signal MLEN in MSB-Zwischenspeichern zwischengespeichert, welche
jeder Zelle zugeordnet sind. Danach werden, wenn die LSB-Daten der
entsprechenden Zellen während
des zweiten Abtastvorgangs von den Abtastverstärkern 10 detektiert
werden, die detektierten LSB-Daten in Reaktion auf das Signal LLEN
in LSB-Zwischenspeichern zwischengespeichert, welche jeder Zelle
zugeordnet sind. Durch diese Vorgänge werden Daten, welche mit
einer Bündellänge korrespondieren,
in allen Zwischenspeichern der Zwischenspeicherschaltung 20 gespeichert.
Dann werden in Reaktion auf das Signal D_Dump die Ausgänge der
entsprechenden Zwischenspeicher aktiviert und geben in Worteinheiten
aus, z.B. über
eine E/A-Einheit. In 3 werden
alle Daten von Zwischenspeichern, welche mit den Abtastverstärkern SA0
bis SA7 korrespondieren, in Reaktion auf einen ersten Takt ausgegeben,
und alle Daten von Zwischenspeichern, welche mit den Abtastverstärkern SA8
bis SA15 korrespondieren, werden in Reaktion auf einen zweiten Takt
ausgegeben. Alle Daten von Zwischenspeichern, welche mit den Abtastverstärkern SA16
bis SA23 korrespondieren, werden in Reaktion auf einen dritten Takt
ausgegeben, und alle Daten von Zwischenspeichern, welche mit den
Abtastverstärkern
SA24 bis SA31 korrespondieren, werden in Reaktion auf einen vierten
Takt ausgegeben. Bezogen auf I/O-Daten des E/A-Puffers bilden jeweils
Bits, welche im MSB gespeichert sind, und Bits, welche im LSB gespeichert
sind, ungerade I/O-Daten
bzw. gerade I/O-Daten. Das Signal D_Dump aktiviert die Ausgänge der
oben beschriebenen Zwischenspeicher, so dass alle zwischengespeicherten
Bits, welche mit einer Bündellänge korrespondieren,
sequentiell in Worteinheiten ausgegeben werden. Das Signal D_Dump
wird von einem internen Zähler
ausgegeben und ist in dem Wort kombiniert, welches der logischen
Adresse entspricht, wenn die während
jedes Taktes aktivierten Ausgaben der Zwischenspeicher eingegeben
werden.
-
Der
E/A-Puffer 30 gibt die wortbasierten Ausgabedaten der Zwischenspeicherschaltung 20 in Synchronisation
mit dem Takt aus. Ein in einer physikalischen Adresse gespeichertes
Wort bildet ein I/O-Datenwort. Es wird klar, dass das Ergebnis des herkömmlichen
Bündellesevorgangs
ausgegeben ist, nachdem die MSB- und LSB-Daten vom Speicherzellenfeld
alle zwischengespeichert sind.
-
4 zeigt ein Zeitablaufdiagramm
zum Erklären
des Bündellesevorgangs,
welcher durch das Datenprogrammierverfahren gemäß 2 und durch
den Lesepfad gemäß 3 ausgeführt wird. Der herkömmliche
Bündellesevorgang
des MLC-Speichers wird nachfolgend unter Bezugnahme auf 4 beschrieben.
-
Unter
Bezugnahme auf 4 werden,
wenn ein Adressendetektionssignal nAVD eingegeben wird, welches
anzeigt, dass die Eingabeadresse gültig ist, die MSB-Daten der
Zellen durch die Abtastverstärker 10 während der
ersten Abtastperiode von zwei Takten detektiert. Während des
letzteren Teils des ersten Abtastvorgangs werden, wenn das Signal MLEN
eingegeben wird, so dass die detektierten MSB-Daten in den korrespondierenden
MSB-Zwischenspeichern gespeichert werden können, die Daten durch die Abtastverstärker vorabgerufen
und dann zwischengespeichert. Dann werden, basierend auf den MSB-Daten,
die LSB-Daten für zwei Takte während des
zweiten Abtastvorgangs detektiert. Entsprechend werden während des
letzteren Teils der Detektion alle LSB-Daten der Zellen durch die
Abtastverstärker 10 vorabgerufen,
und die Zwischenspeicherschaltung 20 puffert diese in Synchronisation
mit dem Signal LLEN. Während
vier Takten werden so alle Datenbits zwischengespeichert, welche eine
bestimmte Bündellänge bilden.
-
Danach
werden, wenn das Signal D_Dump in die Zwischenspeicherschaltung 20 eingegeben wird,
die zwischengespeicherten Daten zu Worteinheiten N, N+1, N+2 und
N+3 kombiniert und dann sequentiell ausgegeben. Aus der Datenausgabe
gemäß 4 wird ersichtlich, dass
alle MSBs und LSBs der entsprechenden Zellen nur in Worteinheiten
ausgegeben werden, nachdem sie durch den ersten Abtastvorgang und
den zweiten Abtastvorgang zwischengespeichert sind. Der Grund dafür liegt
darin, dass eine Worteinheit die vollständigen I/O-Daten bilden kann
und nur gleichzeitig ausgegeben werden kann, wenn die zwischengespeicherten
Bits der MSBs und LSBs kombiniert sind und die MSB und LSB beide
abgetastet sind, um das I/O-Datenwort zu bilden. In anderen Worten
ausgedrückt,
obwohl das MSB und das LSB einer Zelle während des Ausgabevorgangs Datenbits
der identischen I/O-Worteinheit bilden,
werden die Daten der Worteinheit immer erst nach Abschluss des ersten
Abtastvorgangs und des zweiten Abtastvorgangs ausgegeben, da die
MSB und die LSB bei der seriellen Abtastung nicht gleichzeitig abgetastet
werden können.
-
Es
ist Aufgabe der Erfindung, ein Halbleiterspeicherbauelement, ein
zugehöriges
Programmierverfahren und ein zugehöriges Leseverfahren anzugeben,
welche die oben genannten Unzulänglichkeiten
des Standes der Technik wenigstens teilweise vermeiden.
-
Die
Erfindung löst
diese Aufgabe durch ein Halbleiterspeicherbauelement mit den Merkmalen des
Patentanspruchs 1, durch ein zugehöriges Programmierverfahren
mit den Merkmalen des Patentanspruchs 10 und durch ein zugehöriges Leseverfahren
mit den Merkmalen des Patentanspruchs 14.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Vorteilhafte,
nachfolgend beschriebene Ausführungsformen
der Erfindung sowie das zu deren besserem Verständnis oben erläuterte,
herkömmliche
Ausführungsbeispiel
sind in den Zeichnungen dargestellt. Es zeigen:
-
1 ein
herkömmliches
serielles Abtastschema für
eine MLC,
-
2A ein
Blockdiagramm zur Darstellung eines Verfahrens zum Programmieren
von Daten in eine herkömmliche
MLC,
-
2B eine
Abbildungstabelle zur Erklärung des
programmierten Ergebnisses beim Verfahren von 2A,
wenn Eingabedaten einer Bündellänge in die
korrespondierenden Speicherzellen programmiert sind,
-
3 ein
Blockdiagramm eines herkömmlichen
seriellen Abtastschemas,
-
4 ein
Zeitablaufdiagramm eines herkömmlichen
seriellen Abtastschemas,
-
5 ein
Blockdiagramm eines Flashspeichers mit Bündelzugriff gemäß der Erfindung,
-
6 ein
Blockdiagramm zur Darstellung eines Verfahrens zum Programmieren
von Daten gemäß der Erfindung,
-
7 eine
Speicherabbildungstabelle von einem Bündel von in eine Speicherzelle
programmierten Daten gemäß der Erfindung
und
-
8 ein
Zeitablaufdiagramm eines Bündellesevorgangs
gemäß der Erfindung.
-
5 zeigt
im Blockdiagramm schematisch ein Flashspeicherbauelement in einer
erfindungsgemäßen Ausführungsform.
Unter Bezugnahme auf 5 steuert eine Steuereinheit 80 Datenprogrammier-
und Datenlesevorgänge.
Eine Datenneuanordnungseinheit 40 ordnet Eingabedaten so
neu an, dass diese mit dem erfindungsgemäßen Programmierverfahren programmierbar
sind. Ein Schreibtreiber 50 aktiviert Bitleitungen zur
Programmierung der neu angeordneten Daten. Ein Y-Gatter 60 wählt die Bitleitungen
entsprechend einer Eingabeadresse aus. Ein Zellenfeld 70 umfasst
Mehrpegelzellen (MLCs) und ein Abtastverstärker 10 tastet ausgewählte Zellen
ab. Eine Zwischenspeicherschaltung 20 puffert das Abtastergebnis
und ein E/A-Puffer 30 speichert I/O-Daten temporär. Durch
die oben beschriebene Struktur kann der Flashspeicher durch Reduzierung
einer Anfangslatenz, welche einer Zeitspanne während eines Bündelmodus
entspricht, bis Daten nach Eingabe eines Befehls ausgegeben werden,
mit einer hohen Lesegeschwindigkeit arbeiten. In den Zeichnungen
bezeichnen gleiche Bezugszeichen Elemente bzw. Komponenten, welche
gleiche bzw. analoge Funktionen ausführen.
-
Die
Datenneuanordnungseinheit rekonfiguriert zwei oder mehr eingegebene
Worteinheitsdaten und ordnet sie so an, dass ein Wort verschiedenen physikalischen
Adressen zugeordnet ist. Bei Ausführungsformen, in welchen 2-Bit-Daten
je Zelle programmiert werden, werden die Daten in zwei gleiche Teile
von Worteinheiten aufgeteilt, wenn die eingegebenen Daten mit einer
bestimmten Bündellänge korrespondieren.
Die Daten werden so neu angeordnet, dass ein Teil der aufgeteilten
Datenbits in MSBs von Zellen programmiert wird und der andere Teil
in LSBs der Zellen programmiert wird. Eine detaillierte Funktionsweise
der Datenneuanordnungseinheit 40 wird später unter
Bezugnahme auf 6 beschrieben.
-
Der
Schreibtreiber 50 aktiviert in Reaktion auf ein Schreibfreigabesignal
WREN Bitleitungen der zu programmierenden Zellen, welche jeweils
als MLC betrieben werden, um zu ermöglichen, dass die neu angeordneten
Daten in das Zellenfeld 70 programmiert werden.
-
Das
Y-Gatter 60 ist eine Schaltung zum Auswählen von Zellen, welche mit
den Eingabeadressen korrespondieren. Während des Programmier- oder Lesevorgangs
wählt das
Y-Gatter 60 Bitleitungen von Zellen aus, so dass diese
mit dem Schreibtreiber 50 oder dem Abtastverstärker 10 verbunden
werden.
-
Das
Zellenfeld 70 umfasst Flashspeicherzellen, welche als MLCs
arbeiten und 2 oder mehr Bits pro Zelle speichern können. Die
Speicherzellen gemäß diesem
Ausführungsbeispiel
sind als NOR-Speicherzellen mit jeweils zwei Bits ausgeführt, wobei
ein MSB und ein LSB je Zelle programmiert werden.
-
Der
Abtastverstärker 10 ist
mit den Bitleitungen der entsprechenden Zellen gekoppelt, so dass
er mit den Speicherzellen korrespondiert, in welchen Datensatz eines
Bündelmodus
gespeichert ist, und in Reaktion auf ein Aktivierungssignal SAEN
Schwellwertspannungen der Zellen detektiert. Die programmierten
Daten werden durch die serielle Abtastung abgetastet, welche den
ersten Abtastvorgang zum Abtasten des MSB und den zweiten Abtastvorgang zum
Abtasten des LSB umfasst. Jeder Abtastvorgang wird für zwei Takte
ausgeführt
und daher sind vier Taktsignale zum Abtasten des MSB und des LSB erforderlich.
-
Die
Zwischenspeicherschaltung 20 speichert temporär die detektierten,
durch die serielle Abtastung des Abtastverstärkers 10 ausgegebenen
Daten. Insbesondere werden die MSB-Werte der entsprechenden Zellen
durch den ersten Abtastvorgang ausgegeben und in Reaktion auf das
Signal MLEN in den MSB-Zwischenspeichern gespeichert, welche in
jeder Zelle angeordnet sind. Dann werden, wenn die LSB-Werte der
Zellen ausgegeben werden, welche während des zweiten Abtastvorgangs
vom Abtastverstärker 10 abgetastet
werden, in Reaktion auf das Signal LLEN die LSB-Daten in den LSB-Zwischenspeichern
gespeichert, welche in jeder Zelle angeordnet sind. Wenn alle Zwischenspeicher
durch die serielle Abtastung gefüllt
sind, bedeutet dies, dass alle Daten einer Bündellänge in den korrespondierenden
Zwischenspeichern gespeichert sind. Entsprechend dem Programmierverfahren
der Datenneuanordnungseinheit 40 können jedoch die durch den ersten
Abtastvorgang zwischengespeicherten MSB-Daten zu Worten des früheren Teils
der Bündellänge kombiniert
werden. Entsprechend können
die Worte des früheren
Teils einer Bündellänge ausgegeben
werden, auch wenn die LSB-Daten
nicht zwischengespeichert sind. Zusätzlich können sie in eine Reihe von
Worten kombiniert werden, welche mit dem letzteren Teil der eingegebenen
Daten vor der Neuanordnung korrespondieren, auch wenn nur die zwischengespeicherten
LSB-Daten kombiniert sind.
-
Entsprechend
kann die Zwischenspeicherschaltung in Worteinheiten konfiguriert
sein, die nach dem ersten Abtastvorgang ausgegeben werden können. Nach
dem ersten Abtastvorgang wird die Hälfte der Bündel länge durch Kombinieren der zwischengespeicherten
LSB-Daten gleichzeitig mit dem zweiten Abtastvorgang ausgegeben.
Nach dem zweiten Abtastvorgang können
die LSB-Daten kombiniert und als Worteinheitsdaten ausgegeben werden.
Das Signal D_Dump ermöglicht
die Ausgabe der MSB-Zwischenspeicherausgaben in Worteinheiten durch Steuern
der MSB-Zwischenspeicherausgaben gleichzeitig mit dem zweiten Abtastvorgang
nach dem Abschluss des ersten Abtastvorgangs. Gleichzeitig mit dem
Abschluss des zweiten Abtastvorgangs werden alle Daten, welche mit
dem letzteren Teil der Einheitsbündellänge korrespondieren,
durch das Signal D_Dump in Worteinheiten kombiniert und dann ausgegeben.
Dadurch ist die Ausgabe des bestimmten Bündelmodus abgeschlossen. Der
Zwischenspeicher wird später
unter Bezugnahme auf 8 im Detail beschrieben.
-
Der
E/A-Puffer 30 gibt die Worteinheitsdaten von der Zwischenspeicherschaltung 20 in
Synchronisation mit dem Takt nach außen aus.
-
6 zeigt
im Blockdiagramm eine Darstellung der Funktionsweise der Datenneuanordnungseinheit 40 aus 5 für die Implementierung
des erfindungsgemäßen Leseverfahrens.
Unter Bezugnahme auf 6 werden vier nacheinander eingegebene
Wortdaten, welche mit einer bestimmten Bündellänge korrespondieren, in zwei
Teile aufgeteilt. Das sind im früheren
Teil die Worte N und N+1 und im letzteren Teil die Worte N+2 und
N+3. In Reaktion auf ein Neuanordnungsaktivierungssignal ARR_EN
ordnet die Datenneuanordnungseinheit 40 die entsprechenden
Bits des Wortes des früheren
Teils so an, dass sie in MSBs von allen Zielzellen programmiert
werden. Insbesondere werden wenigstens zwei Wortdaten in zwei Teile
aufgeteilt und die im früheren
Teil auszugebenden Wortdaten werden so angeordnet, dass sie in die
MSBs von allen Zellen programmiert werden. Die im letzteren Teil
auszugebenden Wortdaten werden so angeordnet, dass sie in die LSBs von
allen Zellen programmiert werden. Obwohl die Bündellänge im beschriebenen Aus führungsbeispiel vier
ist, können
andere Ausführungsbeispiele
andere Bündelmodi
mit anderen Bündellängen größer als
2 aufweisen.
-
7 zeigt
eine Speicherabbildungstabelle zur Erklärung des programmierten Ergebnisses, wenn
vier Wortdaten N, N+1, N+2 und N+3 in das Speicherzellenfeld eines
Einheitsblocks mit vier physikalischen Adressen #0, #1, #2 und #3
programmiert werden. Entsprechend dem Stand der Technik wird ein
Wort, welches das MSB und LSB umfasst, korrespondierend mit einer
physikalischen Adresse in die Speicherzellen programmiert. Entsprechend
dem in 7 dargestellten Ausführungsbeispiel werden hingegen
Datenbits des Wortes N einer Einheitsbündellänge in die MSBs der Zellen
programmiert, welche mit den physikalischen Adressen #0 und #1 korrespondieren.
Analog werden die Datenbits des Wortes N+1 in die MSBs der Zellen
programmiert, welche mit den physikalischen Adressen #2 bzw. #3
korrespondieren. Die Worte N+2 und N+3, welche mit dem letzteren
Teil der Einheitsbündellänge korrespondieren, werden
in die LSBs, welche mit den physikalischen Adressen #0 und #1 korrespondieren,
bzw. in die LSBs programmiert, welche mit den physikalischen Adressen
#2 und #3 korrespondieren.
-
Kurz
gesagt wird während
des Programmierverfahrens der frühere
Teil der Worte der Bündeleinheit
in die MSBs der Zellen programmiert und der letztere Teil wird in
die LSBs der Zellen programmiert.
-
8 zeigt
ein Zeitablaufdiagramm zur Darstellung der Funktionsweise, wenn
auf die Daten des Zellenfelds, welche durch das oben beschriebene Programmierverfahren
programmiert sind, im Bündelmodus
durch ein erfindungsgemäßes Leseverfahren
zugegriffen wird. Unter Bezugnahme auf 8 werden,
wenn ein Adressendetektionssignal nAVD eingegeben wird, welches
anzeigt, dass die Eingabeadresse gültig ist, während der ersten Abtastperiode von
zwei Takten die MSB-Daten der Zellen durch die Abtastverstärker 10 detektiert.
Im letzteren Teil des ersten Ab tastvorgangs werden, wenn das Signal MLEN
eingegeben wird, so dass die detektierten MSB-Daten in den korrespondierenden
MSB-Zwischenspeichern
gespeichert werden können,
die Daten durch die Abtastverstärker
vorabgerufen und dann zwischengespeichert. Da die während des
ersten Abtastvorgangs detektierten Daten MSB-Bits aller Zellen sind,
sind die Bitdaten jedoch Bitwerte der Worte N und N+1. Entsprechend
können
die Worte, welche mit dem früheren
Teil der bestimmten Bündellänge korrespondieren,
durch eine Kombination der Zwischenspeicher zwischengespeichert
werden, wenn die MSB-Bits detektiert werden.
-
Dieses
Ergebnis impliziert, dass die Datenausgabe im Bündelmodus nicht warten muss,
bis alle Bits zwischengespeichert sind. Das bedeutet, dass nach
dem ersten Abtastvorgang die mit den zwischengespeicherten Worten
N und N+1 korrespondierenden Bits kombiniert und gleichzeitig mit
dem zweiten Abtastvorgang ausgegeben werden können. Während der zweiten Abtastperiode
werden die mit den Worten N+2 und N+3 korrespondierenden und in die
LSBs der Zielzellen programmierten Bits durch die Abtastverstärker in
Synchronisation mit dem Signal LLEN vorabgerufen und in den Zwischenspeichern
gespeichert. Gleich nach dem Abschluss des zweiten Abtastvorgangs
werden die Worte der zwischengespeicherten LSB-Daten N+2 und N+3
in Reaktion auf das Signal D_Dump ausgegeben. Hierbei steuert das
Signal D_Dump mit dem Wert „0001" die Zwischenspeicherschaltung 20 dazu
an, die Ausgänge
der Zwischenspeicher zu aktivieren, in welchen die im Wort N enthaltenen
Bits programmiert sind, und das Signal D_Dump mit dem Wert „0010" steuert die Zwischenspeicherschaltung 20 dazu
an, die Ausgänge
der Zwischenspeicher zu aktivieren, in welchen die im Wort N+1 enthaltenen
Bits programmiert sind. Das Signal D_Dump mit dem Wert „0100" steuert die Zwischenspeicherschaltung 20 dazu
an, die Ausgänge
der Zwischenspeicher zu aktivieren, in welchen die im Wort N+2 enthaltenen
Bits programmiert sind, und das Signal D_Dump mit dem Wert „1000" steuert die Zwischenspeicherschaltung 20 dazu
an, die Ausgänge
der Zwischenspeicher zu aktivieren, in welchen die im Wort N+3 enthaltenen
Bits programmiert sind.
-
Als
Ergebnis bedeutet die oben beschriebene Funktionsweise, dass die
Datenausgabe für
den Bündellesevorgang
gemeinsam mit dem zweiten Abtastvorgang beginnt, so dass die Anfangslatenz
reduziert werden kann. In diesem Ausführungsbeispiel wird die Anfangslatenz
im Vergleich zum Stand der Technik um zwei Takte reduziert. Wenn
die Bündellänge zwei
ist, d.h. BL=2, dann können
Daten, welche mit einer Bündellänge korrespondieren,
vollständig
nach drei Takten ausgegeben sein.
-
Der
Bündelzugriffsvorgang
gemäß der Erfindung
wird in Abhängigkeit
von der Ausgabereihenfolge der Bündeleinheitsdaten
aufgeteilt. Dann werden die auszugebenden Daten des früheren Teils
in die MSBs der ausgewählten
Zellen programmiert, und die im letzteren Teil auszugebenden Daten
werden in die LSBs der ausgewählten
Zellen programmiert. Während
des ersten Abtastvorgangs können
die Worte des früheren
Teils der Bündeleinheit
nur durch das Detektieren und Zwischenspeichern der MSBs der Zellen
konfiguriert werden. Daher können
während
des zweiten Abtastvorgangs, welcher die LSB-Bits abtastet, die in
den MSBs programmierten Bits kombiniert und ausgegeben werden. Wenn
der zweite Abtastvorgang abgeschlossen ist, können die Worte des letzteren
Teils durch Kombinieren der in die LSBs programmierten Bits als
eine Bündeleinheit kombiniert
und ausgegeben werden.
-
Obwohl
der synchrone Flashspeicher in der obigen Beschreibung 16Bits/1
Wort und die Bündellänge 4 (BL=4)
aufweist, sind andere erfindungsgemäße Ausführungsformen nicht auf diese
Konfiguration festgelegt und können
andere Bündellängen und Wortlängen verwenden.
Wie oben ausgeführt
ist, unterstützt
der synchrone Flashspeicher die MLCs und der Bündelmodus kann Worte der E/A-Einheiten kombinieren,
ohne dass alle Daten einer Bündeleinheit
zwischengespeichert werden.
-
Wie
oben ausgeführt
ist, kann eine Mehrpegelspeicherzelle ein ranghöchstes Bit und ein rangniedrigstes
Bit umfassen, welche sequentiell abgetastet werden. Die Anzahl der
während
eines Abtastvorgangs abgetasteten Bits ist jedoch nicht auf eins begrenzt.
Ist eine Mehrpegelspeicherzelle beispielsweise in der Lage, vier
Bits zu speichern, dann kann ein erster Bitsatz, welche die zwei
höchstrangigen Bits
umfasst, zu einem Zeitpunkt abgetastet werden, und ein zweiter Bitsatz,
welcher die zwei niedrigstwertigen Bits umfasst, kann zu einem nachfolgenden Zeitpunkt
abgetastet werden. Daher kann eine Mehrpegelspeicherzelle Sätze von
Mehrfachbits aufweisen, wobei die Sätze sequentiell abgetastet
werden. Zudem ist die Anzahl von Sätzen nicht auf zwei begrenzt
und die Anzahl von Bits in einem Satz kann eins sein. Wenn eine
Mehrpegelspeicherzelle beispielsweise in der Lage ist, vier Bits
zu speichern, kann jedes Bit sequentiell abgetastet werden. Daher bildet
dann jedes Bit einen Satz, woraus vier Bitsätze für die Mehrpegelzelle resultieren.