-
Die
Erfindung betrifft ein Datenleseverfahren und ein zugehöriges Halbleiterbauelement.
-
Aktuelle
Entwicklungen bei Speicheranwendungen, wie Massenspeicher, Codespeicher
und andere Multimediaanwendungen benötigen zunehmend Speicherbauelemente
mit einer höheren
Speicherdichte. Massenspeicheranwendungen können Speicherkarten z. B. für mobile
Computer, Festkörperspeicher
beispielsweise in Form von unempfindlichen und/oder verlässlichen
Speicherplatten, digitale Kameras zum Aufnehmen von stehenden oder
bewegten Bildern und von Ton sowie Sprach- oder Audiorekorder umfassen, welche
Ton mit annähernder CD-Qualität aufnehmen.
-
Codespeicheranwendungen
können
grundlegende Eingabe-/Ausgabesysteme (BIOS) und Netzwerkanwendungen,
beispielsweise Speicher in Personalcomputern, anderen Endgeräten, in
Router-Einheiten oder Hub-Einheiten,
Telekommunikationsanwendungen, beispielsweise Schalter, Mobiltelefonanwendungen,
z. B. Codes und/oder Daten, und andere tragbare elektronische Informationsgeräteanwendungen
umfassen, z. B. Codes und/oder Daten für persönliche digitale Assistenten
(PDAs), Palmbetriebssysteme (POS) und persönliche Kommunikationsassistenten
(PCAs).
-
Im
Allgemeinen benutzen Massenspeicheranwendungen günstige Speicher mit hoher Speicherdichte
und/oder mit einer hohen Programmier-/Löschperioden-Lebensdauer,
während
Codespeicheranwendungen einen schnelleren wahlfreien Zugriff haben
und/oder am Ort ausführbar
sind (XIP).
-
Bekannte
Speicher umfassen dynamische Speicher mit direktem Zugriff (DRAM),
statische Speicher mit direktem Zugriff (SRAM) und nichtflüchtige Speicher
(NVM). Die nichtflüchtigen
Speicher umfassen maskierte Nur-Lese-Speicher (ROM), löschbare
programmierbare Nur-Lese-Speicher (EPROM),
elektrisch löschbare
programmierbare Nur-Lese-Speicher
(EEPROM), Flashspeicher wie flash-löschbare EEPROM, und ferroelektrische
Speicher. Die nichtflüchtigen
Speicher verlieren keine Daten, wenn die Versorgung ausfällt, erlauben
aber im Allgemeinen keinen direkten Zugriff und sind normalerweise
langsamer als flüchtige
Speicher.
-
Flashspeicher
können
aus einer Kombination von löschbaren
programmierbaren Nur-Lese-Speichern EPROM und elektrisch löschbaren
programmierbaren Nur-Lese-Speichern EEPROM aufgebaut sein, und sie
können
als NAND-Typ oder als NOR-Typ ausgeführt sein. Lösch- und Programmiervorgänge können in
einem Flashspeicher durch Anlegen von verschiedenen Spannungen an
jede Flashspeicherzelle ausgeführt
werden.
-
Im
Allgemeinen sind NAND-Flashspeicher aufgrund ihrer kleineren Zellengröße, höheren Dichte,
ihres niedrigeren Energiebedarfs und/oder ihrer höheren Robustheit
besser für
Massenspeicheranwendungen geeignet, während NOR-Flashspeicher aufgrund
ihres größeren Zellenstroms
und/oder schnelleren direkten Zugriffs besser für Codespeicheranwendungen geeignet
sind.
-
NAND-Flashspeicher
können
Ketten von in Reihe geschalteten Zellen umfassen, beispielsweise eine
Kette von 16 Zellen. Die Kette kann einen oder mehrere Kettenauswahltransistoren
umfassen. NAND-Flashspeicher können
einen relativ kleinen Strom bei einer An-Zelle, d. h. einer angeschalteten Zelle,
aufweisen, wodurch nur eine relativ langsame Abtastzeit, z. B. 5
ms bis 10 ms, erforderlich ist. NAND-Flashspeicher können einen
Lesevorgang durch gleichzeitiges Abtasten und Zwischenspeichern
einer Seiteneinheit von beispielsweise 512 Byte in Seitenpuffer
ausführen.
NAND-Flashspeicher können
Daten von Seitenpuffer-Zwischenspeichern mit einer relativ hohen
Geschwindigkeit von beispielsweise 50 ns auslesen.
-
NAND-Flashspeicher
können
Programmier- und/oder Löschvorgänge durch
Tunneln ausführen, z.
B. durch Fowler-Nordheim-Tunneln (F-N-Tunneln). Ein Programmiervorgang kann
ein relativ schnelles serielles Laden von Daten in die Seitenpuffer
umfassen, z. B. innerhalb von 50 ns, wobei Zellen von z. B. 512
Byte gleichzeitig programmiert werden. Ein Löschvorgang kann in Blockeinheiten
erfolgen, wobei eine Anzahl von Seiten, beispielsweise 32 Seiten mit
16K-Byte-Zellen, gleichzeitig gelöscht werden.
-
Ein
verlässliches
F-N-Tunneln kann beispielsweise bei etwa 10 mV/cm ausgeführt werden, woraus
ein geringerer Energieverbrauch, eine niedrigere Temperaturabhängigkeit,
gleichförmigere
Programmier-/Löschvorgänge und/oder
einfachere Geräte-/Spannungsskalierungen
resultieren.
-
NAND-Flashprogrammiervorgänge können eine
Kopplung zwischen einem Gate und einem Kanal benutzen. Eine programmierte
Zelle kann beispielsweise eine größere Differenz zwischen dem Gate
und dem Kanal aufweisen als eine unprogrammierte Zelle. NAND-Flashprogrammiervorgänge können zudem
eine Schwellwertspannungsverteilung benutzen, wie dies für ein Beispiel
in 1 dargestellt ist. 1 zeigt
den Zusammenhang zwischen einer Wortleitungsspannung, hier mit Vwordline
bezeichnet, einer Lesespannung Vread und einer Schwellenspannungsverteilung
Vth einer unprogrammierten oder gelöschten Zelle und einer programmierten
Zelle.
-
NAND-Flashspeicher
können
Seitenpuffer zur Erleichterung der Datenübertragungen in ein und aus
einem NAND-Flashspeicherzellenfeld umfassen. Seitenpuffer können allgemein
die zwei Funktionen Abtasten und Zwischenspeichern ausführen. Ein
herkömmlicher
Seitenpuffer ist in 2 dargestellt. Wie aus 2 ersichtlich
ist, umfasst dieser herkömmliche
Seitenpuffer einen Schalttransistor, einen Lasttransistor, welcher
einen Laststrom freischaltet, um ein Abtasten zu erlauben, und einen
Zwischenspeicher, welcher die abgetasteten Daten getriggert von einem
Zwischenspeicherfreigabesignal zwischenspeichert.
-
Die 3A und 3B zeigen
ein Ausführungsbeispiel
eines herkömmlichen
Seitenpuffers bzw. ein Beispiel eines Lesevorgangs für diesen
herkömmlichen
Seitenpuffer. Wie aus 3B ersichtlich ist, arbeitet
der herkömmliche
Seitenpuffer in mehreren Perioden, welche eine Bitleitungsentladungsperiode
(B/L-Entladungsperiode), eine Bitleitungsvorladungsperiode (B/L-Vorladungsperiode),
eine Entwicklungsperiode, eine Abtast- und Zwischenspeicherperiode
und eine Rücksetz-
oder Wiedergewinnungsperiode umfassen.
-
Die 4A und 4B zeigen
einen weiteren herkömmlichen
Seitenpuffer bzw. ein Beispiel eines Lesevorgangs für diesen
herkömmlichen
Seiten puffer. Wie aus 4B ersichtlich ist, arbeitet
auch dieser herkömmliche
Seitenpuffer in mehreren Perioden, welche eine Bitleitungsentladungs- und Seitenpufferrücksetzperiode,
eine Abtastperiode, eine Zwischenspeicher- und Datenausgabeperiode
und eine Rücksetz-
oder Wiedergewinnungsperiode umfassen.
-
Die 5A und 5B zeigen
noch einen weiteren herkömmlichen
Seitenpuffer bzw. ein Beispiel eines Lesevorgangs für diesen
herkömmlichen Seitenpuffer.
Wie aus 5B ersichtlich ist, arbeitet dieser
herkömmliche
Seitenpuffer ebenfalls in mehreren Perioden, welche eine Seitenpufferrücksetz- und
Bitleitungsentladungsperiode, eine Bitleitungsvorladungsperiode,
eine Abtastperiode, eine Datenzwischenspeicherperiode, eine Rücksetz-
oder Wiedergewinnungsperiode und eine Datenausgabeperiode umfassen.
-
6 zeigt
eine detaillierte Struktur eines Ausführungsbeispiels eines herkömmlichen
Seitenpuffers nach Art von 5. Wie
aus 6 ersichtlich ist, umfasst dieser Seitenpuffer
einen Vorladungsblock, einen Bitlei tungsauswahl- und Vorspannungsblock,
einen ersten und zweiten Zwischenspeicher- und Abtastblock und eine
Spaltengatterschaltung.
-
Der
Seitenpuffer gemäß den 5A bis 6 kann
verschachtelte Vorgänge
ausführen, weist
aber eine relativ komplexe Struktur und/oder eine relativ große Layoutfläche auf
und/oder ist relativ langsam.
-
Ein
entsprechendes Flash-Halbleiterspeicherbauelement ist z. B. in der
Offenlegungsschrift
US
2003/0117856 A1 offenbart.
-
Die
Offenlegungsschrift
US
2003/0202383 A1 offenbart ein Flash-Speichersystem mit einer Flash-Speicherkarte,
die ein Flash-Speicherbauelement,
eine Steuereinheit und einen Pufferspeicher beinhaltet, wobei die
Datenübertragung
zwischen der Host-Einheit und dem Flash-Speicherbauelement über die
Steuereinheit mit dem angekoppelten Pufferspeicher erfolgt. Dabei
können
gleichzeitig Daten einerseits zwischen der Steuereinheit und dem
Pufferspeicher und andererseits zwischen der Steuereinheit und der
Host-Einheit oder zwischen der Steuereinheit und dem Flash-Speicherbauelement übertragen
werden.
-
Es
ist Aufgabe der Erfindung, ein Halbleiterbauelement, beispielsweise
ein Halbleiterspeicherbauelement, wie ein solches mit einem Flashspeicher
und einer reduzierten Datenübertragungszeit, sowie
ein zugehöriges
Datenleseverfahren mit reduzierter Datenübertragungszeit zur Verfügung zu
stellen, insbesondere zum Ausführen
von Cachelesevorgängen.
-
Die
Erfindung löst
diese Aufgabe durch ein Leseverfahren mit den Merkmalen des Patentanspruchs
1 und durch ein Halbleiterbauelement mit den Merkmalen des Patentanspruchs
17.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Vorteilhafte,
nachfolgend beschriebene Ausführungsformen
der Erfindung sowie die zu deren besserem Verständnis oben erläuterten,
herkömmlichen
Ausführungsbeispiele
sind in den Zeichnungen dargestellt.
-
Es
zeigen:
-
1 eine
schematische Diagrammdarstellung zur Veranschaulichung des Zusammenhangs zwischen
einer Wortleitungsspannung, eine Lesespannung und einer Zellen-
bzw. Schwellwertspannungsverteilung einer unprogrammierten oder
gelöschten
Zelle und einer programmierten Zelle,
-
2 ein
schematisches Schaltbild eines herkömmlichen Seitenpuffers,
-
3A und 3B ein
Schaltbild eines weiteren herkömmlichen
Seitenpuffers bzw. ein Signalverlaufsdiagramm zur Veranschaulichung
eines zugehörigen
Leseverfahrens,
-
4A und 4B ein
Schaltbild eines weiteren herkömmlichen
Seitenpuffers bzw. ein Signalverlaufsdiagramm zur Veranschaulichung
eines zugehörigen
Leseverfahrens,
-
5A und 5B ein
Schaltbild eines weiteren herkömmlichen
Seitenpuffers bzw. ein Signalverlaufsdiagramm zur Veranschaulichung
eines zugehörigen
Leseverfahrens,
-
6 ein
detailliertes Schaltbild eines herkömmlichen Seitenpuffers nach
Art von 5,
-
7 ein
Blockschaltbild eines erfindungsgemäßen nichtflüchtigen Speicherbauelements,
-
8 ein
Zeitablaufdiagramm eines Lesevorgangs für ein erfindungsgemäßes nichtflüchtiges Speicherbauelement
nach Art von 7,
-
9 eine
schematische Blockdarstellung eines Lesevorgangs zum Ausgeben von
Daten wenigstens einer ausgewählten
Seite gemäß der Erfindung,
-
10 ein
Blockschaltbild eines erfindungsgemäßen Speichersystems,
-
11A und 11B je
ein schematisches Blockschaltbild nach Art von 10 zur
Darstellung eines Cachelesevorgangs gemäß der Erfindung,
-
12 ein
Blockschaltbild eines weiteren erfindungsgemäßen Speicherbauelements,
-
13A eine schematische Darstellung von Speicherblöcken eines
Speicherzellenfeldes eines erfindungsgemäßen Speicherbauelements nach
Art von 12,
-
13B eine schematische Darstellung von Sektoren
eines Speicherzellenfeldes eines erfindungsgemäßen Speicherbauelements nach
Art von 12,
-
14A eine schematische Darstellung von Adressenbereichen
eines Speicherzellenfeldes eines erfindungsgemäßen Speicherbauelements nach
Art von 12,
-
14B eine schematische Darstellung von Registerbereichen
eines Speicherzellenfeldes eines erfindungsgemäßen Speicherbauelements nach
Art von 12,
-
15 ein
Flussdiagramm eines erfindungsgemäßen Cacheleseverfahrens,
-
16 ein
Zeitablaufdiagramm eines erfindungsgemäßen Cachelesevorgangs,
-
17 ein
Zeitablaufdiagramm eines erfindungsgemäßen Cachelesevorgangs unter
Verwendung zweier erster Cachelesebefehle und
-
18 ein
Zeitablaufdiagramm eines erfindungsgemäßen Cachelesevorgangs unter
Verwendung nur eines ersten Cachelesebefehls.
-
7 zeigt
ein erfindungsgemäßes nichtflüchtiges
Speicherbauelement 100 mit einem Speicherzellenfeld 110,
welches eine Anzahl von NAND-Ketten
umfasst, die jeweils mit Bitleitungen verbunden sind. In Ausgestaltung
des erfindungsgemäßen Speicherbauelements
können
die Bitleitungen in geraden/ungeraden Paaren BL0e und BL0o, BL1e
und BL1o, ..., BLne und BLno angeordnet sein, wobei n eine ganze
Zahl größer gleich
zwei ist.
-
Seitenpuffer 130_0 bis 130_n sind
jeweils mit den Bitleitungspaaren (BL0e, BL0o) bis (BLne, BLno)
verbunden. Der Seitenpuffer 130_0 und/oder jeder der anderen
Seitenpuffer 130_1 bis 130_n umfasst einen Zwischenspeicher 131,
NMOS-Transistoren TR1 bis TR7 und einen PMOS-Transistor TR8, welche
gemäß 7 miteinander
verschaltet sind. Der Seitenpuffer 130_0 und/oder jeder
der anderen Seitenpuffer 130_1 bis 130_n kann
als Register arbeiten, welches verwendet wird, um zu programmierende
Daten zu speichern oder Daten zu speichern, welche aus dem Speicherzellenfeld 110 ausgelesen werden.
-
Die
Transistoren TR1 und TR2 können
benutzt werden, um die Bitleitungen BLie und Blio, mit i = 0 bis
n, während
einer Bitleitungsrücksetzperiode eines
Lesevorgangs zurückzusetzen
und/oder um nicht ausgewählte
Bitleitungen während
verbleibender Perioden desselben auf eine Massespannung zu setzen.
-
Die
Transistoren TR3 und TR4 können
benutzt werden, um eine ausgewählte
Bitleitung mit einem Knoten ND1 elektrisch zu verbinden und um eine
nicht ausgewählte
Bitleitung elektrisch vom Knoten ND1 zu isolieren. Der PMOS-Transistor
TR8 kann benutzt werden, um den Knoten ND1 zu laden, und die NMOS-Transistoren
TR6 und TR7 können benutzt
werden, um einen logischen Zustand am Knoten ND1 an den Zwischenspeicher 131 zu übertragen.
Die Seitenpuffer 130_1 bis 130_n können gleich
aufgebaut sein wie der Seitenpuffer 130_0.
-
Das
nichtflüchtige
Speicherbauelement 100 beinhaltet weiter eine Spaltengatterschaltung 140, welche
NMOS-Transistoren TR9 bis TRn und TR12 umfasst, die in Reaktion
auf Auswahlsignale YA0 bis YAn und YB von einem Spaltendecoder 150 einen Teil
eines oder mehrerer der Sei tenpuffer 130_0 bis 130_n auswählen, und
die den oder die ausgewählten
Seitenpuffer mit einem Datenbus DB elektrisch verbindet. Obwohl
in 7 nur eine Datenleitung dargestellt ist, kann
die Spaltengatterschaltung 140 so ausgeführt sein,
dass sie mehrere Datenleitungen mit den Seitenpuffern 130_0 bis 130_n verbindet.
-
Das
nichtflüchtige
Speicherbauelement 100 umfasst zudem eine Lade- und Entladeschaltung 160,
welche einen PMOS-Transistor TR13 und einen NMOS-Transistor TR14
aufweist, die den Datenbus DB in Reaktion auf ein Steuersignal PRECHG
auf eine Versorgungsspannung laden und in Reaktion auf ein Steuersignal
DISCHG auf die Massespannung entladen.
-
Das
nichtflüchtige
Speicherbauelement 100 umfasst zudem einen X-Decoder 120 und
einen Y-Decoder zum Decodieren von Zeilen, d. h. Wortleitungen,
und von Spalten, d. h. Bitleitungen. Die Komponenten 110 bis 160 werden
von einer Steuerschaltung 170 gesteuert, welche nachfolgend
beschrieben wird.
-
8 zeigt
ein Zeitablaufdiagramm zum Beschreiben eines Lesevorgangs für ein erfindungsgemäßes nichtflüchtiges
Speicherbauelement. 8 setzt voraus, dass von den
Bitleitungen BL0e und BL0o, die mit dem Seitenpuffer 130_0 verbunden sind,
die Bitleitung BL0e ausgewählt
ist und die Bitleitung BL0o nicht ausgewählt ist. Der obere Teil aus 8 zeigt
die Steuerung des Seitenpuffers 130_0 und der untere Teil
der 8 zeigt die Steuerung des Datenbusses DB.
-
Wie
aus 8 ersichtlich ist, kann eine Spannung von 0 V
während
eines Lesevorgangs T1 bis T5 an die ausgewählte Wortleitungen angelegt werden,
während
eine Lesespannung Vread während
den Perioden T2 bis T4 an eine Kettenauswahlleitung SSL, eine Masseauswahlleitung
GSL und nicht ausgewählte
Wortleitungen angelegt wird.
-
Während einer
Bitleitungsrücksetzperiode T1
können
Steuersignale LVBLe, LVBLo, LBLSHFe und LBLSHFo auf einen hohen
Pegel aktiviert werden und ein Steuersignal LPLOAD kann auf einem niedrigen
Pegel deaktiviert sein. Mit dem Aktivieren der Steuersignale LVBLe,
LVBLo, LBLSHFe und LBLSHFo auf hohen Pegel können die Bitleitungen BL0e
und BL0o elektrisch mit einer Versorgungsleitung VIRPWR verbunden
werden, welche während eines
Lesevorgangs einen Massespannungspegel aufweist, z. B. 0 V. Dadurch
können
die Bitleitungen BL0e und BL0o auf den Massespannungspegel zurückgesetzt
werden. Insbesondere kann ein Steuersignal LBLSLT während der
Bitleitungsrücksetzperiode
T1 auf einem niedrigen Pegel gehalten werden, so dass der Zwischenspeicher 131 nicht
zurückgesetzt wird.
-
Nach
dem Zurücksetzen
der Bitleitungen BL0e und BL0o wird die ausgewählte Bitleitung BL0e während einer
Bitleitungsvorladeperiode T2 mit einer vorgegebenen Vorladespannung
vorgeladen, z. B. mit 1,2 V.
-
Mit
dem Wechsel der Steuersignale LVBLo und LBLSHFo auf einen niedrigen
Pegel kann die ausgewählte
Bitleitung BL0e elektrisch von der Versorgungsleitung VIRPWR isoliert
werden und eine nicht ausgewählte
Bitleitung BL0o kann elektrisch vom Knoten ND1 isoliert werden.
Da das Steuersignal LVBLo während
der Bitleitungsvorladeperiode T2 auf einem hohen Pegel gehalten
wird, kann die nicht ausgewählte
Bitleitung BL0o elektrisch mit der Versorgungsleitung VIRPWR auf
Massespannungspotential verbunden werden. Gleichzeitig kann der PMOS-Transistor TR8 leitend
geschaltet werden, wenn das Steuersignal LPLOAD auf niedrigen Pegel aktiviert
wird. Ein vom leitend geschalteten Transistor TR8 zugeführter Strom
kann über
den NMOS-Transistor TR3 zur ausgewählten Bitleitung BL0e übertragen
werden. Hierbei wird die Bitleitung BL0e beispielsweise mit einer
Spannung von 2,0 V-Vth vorgeladen, wenn eine Spannung von 2,0 V
an die Leitung LBLSHFe angelegt wird, wie aus 8 ersichtlich
ist, wobei Vth eine Schwellwertspannung des Transistors TR3 ist.
-
Während einer
Bitleitungsentwicklungsperiode T3 kann eine Spannung auf der ausgewählten Bitleitung
BL0e in Abhängigkeit
vom Zustand, d. h. programmierter Zustand oder gelöschter Zustand,
einer ausgewählten
Speicherzelle auf dem Pegel der Vorladespannung gehalten oder auf
den Massespannungspegel abgesenkt werden. Hierbei kann die ausgewählte Bitleitung
BL0e einen floatenden Zustand annehmen. Wechselt das Steuersignal
LBLSHFe beispielsweise auf den niedrigen Pegel der Massespannung,
dann kann der NMOS-Transistor TR3 sperrend geschaltet werden. Dadurch
wird die ausgewählte
Bitleitung BL0e elektrisch vom Knoten ND1 isoliert. Weist die ausgewählte Speicherzelle
einen gelöschten
Zustand oder einen An-Zustand auf, dann beginnt sich die Vorladespannung
der ausgewählten Bitleitung
unter diesen Bedingungen über
die ausgewählte
Speicherzelle im An-Zustand auf die Massespannung zu entladen. Weist
die ausgewählte
Speicherzelle anderseits einen programmierten Zustand oder einen
Aus-Zustand auf, dann wird die Vorladespannung der ausgewählten Bitleitung
gehalten.
-
In
Ausgestaltung der Erfindung können
die Perioden T1 bis T3 eine Periode bilden, in welcher in einer
Speicherzelle gespeicherte Zellendaten auf eine Bitleitung gesetzt
werden, was nachfolgend als Bitleitungssetzperiode tT bezeichnet
wird.
-
Nachdem
die Bitleitungssetzperiode tT oder T1 bis T3 abgeschlossen ist,
kann der Zwischenspeicher 131 im Seitenpuffer 130_0 während einer
Zwischenspeicherrücksetzperiode
T4 zurückgesetzt/initialisiert
werden. Die Initialisierung des Zwischenspeichers 131 kann
dadurch erreicht werden, dass ein Knoten ND2 oder der Zwischenspeicher 131 über die
Spaltengatterschaltung 140 elektrisch mit dem Datenbus
DB verbunden wird. Wie aus 8 ersichtlich
ist, können
der Spaltengatter schaltung 140 zugeführte Auswahlsignale YA0 bis
YAn und YB gleichzeitig auf hohen Pegel aktiviert werden. Hierbei
wechselt das Steuersignal DISCHG auf einen hohen Pegel, so dass
der Datenbus DB mit Masse verbunden wird. Daraus resultiert, dass
der Knoten ND2 oder der Zwischenspeicher 131 über die
Spaltengatterschaltung 140 elektrisch mit dem Datenbus
DB verbunden wird, wobei der Datenbus DB über den NMOS-Transistor TR14
der Lade- und Entladeschaltung 160 mit Masse verbunden
ist. Dadurch wird der Zwischenspeicher 131 zurückgesetzt/initialisiert.
-
Während einer
Abtastperiode T5 können
auf der ausgewählten
Bitleitung BL0e reflektierte Zellendaten im Zwischenspeicher 131 gespeichert
werden. Um dies zu erreichen, kann das Steuersignal LPLOAD auf einen
hohen Pegel deaktiviert werden und eine Spannung von beispielsweise
1,2 V kann an die Leitung LBLSHFe angelegt werden. Ist unter diesen
Bedingungen eine Speicherzelle mit einem gelöschten Zustand oder einem An-Zustand
mit der ausgewählten
Bitleitung BL0e verbunden, dann kann eine Versorgungsspannung am
Knoten ND1 über
die An-Zelle entladen werden.
-
Ist
andererseits eine Speicherzelle mit einem programmierten Zustand
oder einem Aus-Zustand mit der ausgewählten Bitleitung BL0e verbunden, dann
kann die Versorgungsspannung am Knoten ND1 gehalten werden. Dies
ist möglich,
weil der Transistor TR3 durch die Spannungen Vg = 1,2 V, Vs = 1,2
V, Vd = Vcc sperrend geschaltet ist.
-
Der
NMOS-Transistor TR6 kann im erstgenannten Fall sperrend geschaltet
sein, während
er im letztgenannten Fall leitend geschaltet ist. Pulsiert ein Steuersignal
LCH, dann wird im erstgenannten Fall ein Knoten ND3 des Zwischenspeichers 131 über die NMOS-Transistoren
TR6 und TR7 mit Masse verbunden. Im letztgenannten Fall ist der
Knoten ND3 in einem initialisierten Zustand, z. B. auf einem hohen
Pegel.
-
Bei
einer Ausführungsform
des erfindungsgemäßen nichtflüchtigen
Speicherbauelements wird während
der Bitleitungssetzperiode T1 bis T3 ein Datensatz in den Zwischenspeichern 131 der
Seitenpuffer 130_0 bis 130_n über die Spaltengatterschaltung 140 zum
Datenbus DB übertragen.
Wie aus 8 ersichtlich ist, kann dies
dadurch erreicht werden, dass die Auswahlsignale YA0 bis YAn sequentiell
aktiviert werden, wobei das Auswahlsignal auf hohen Pegel gesetzt
wird. Der Datenbus DB kann zwischen den Aktivierungsperioden der
Auswahlsignale YA0 bis YAn mit der Versorgungsspannung geladen werden, indem
während
jedes Ladeintervalls der PMOS-Transistor TR13 der Lade- und Entladeschaltung 160 aktiviert
wird.
-
Wie
durch die bisherige Beschreibung deutlich wird, können vorher
in den Seitenpuffern 130_0 bis 130_n gespeicherte
Daten zum Datenbus DB übertragen
werden, während
in der Speicherzelle gespeicherte Daten ausgelesen und im Zwischenspeicher
gespeichert werden (tR, T1 bis T5). Da Seitendaten, welche in einer
Seite oder Zeile von Speicherzellen gespeichert sind, während der
Bitleitungssetzperiode T1 bis T3 einer anderen Seite oder Zeile nach
extern ausgegeben werden, ist es möglich, die Zeitspanne zu reduzieren,
welche für
einen kontinuierlichen Lesevorgang erforderlich ist.
-
In
einem erfindungsgemäßen Ausführungsbeispiel
können
Seitendaten, welche während
eines ersten Lesevorgangs ausgegeben werden, ungültige Daten sein und Seitendaten,
welche während
eines zweiten Lesevorgangs ausgegeben werden, können solche sein, welche während des
ersten Lesevorgangs abgetastet werden. Wie aus 9 ersichtlich ist,
wird ein Lesevorgang, wenn auf n Seiten zugegriffen wird, ein Mal
mehr ausgeführt,
um die Daten einer ausgewählten
n-ten Seite auszugeben. Während
des letzten Lesevorgangs wird ein Vorgang zum Steuern der Spaltengatterschaltung
nur dazu durchgeführt, die
in den Seitenpuffern 130_0 bis 130_n gespeicherten
Daten an den Datenbus DB zu übertragen.
-
10 zeigt
ein Ausführungsbeispiel
eines erfindungsgemäßen Speichersystems 200,
das eine Host-Einheit 210 und ein Speicherbauelement 220 umfasst.
Das Speicherbauelement 220 kann gesteuert vom Host 210 Datenlese-/Datenschreibvorgänge ausführen und
einen nichtflüchtigen
Speicher 230, wie einen nichtflüchtigen Speicherkern, einen
ersten Pufferspeicher 240, einen zweiten Pufferspeicher 250 und
eine Steuereinheit 260 umfassen. Der nichtflüchtige Speicher 230 kann
ein nichtflüchtiges
Speicherzellenfeld 231 und Seitenpuffer 232 umfassen und
von der Steuereinheit 260 gesteuert werden. Der nichtflüchtige Speicher 230 kann
analog zum nichtflüchtigen
Speicherbauelement aus 7 ausgeführt sein. Der Host 210 kann
eine Mikroprozessoreinheit (MPU), eine zentrale Prozessoreinheit
(CPU), eine Speichersteuerschaltung oder andere Prozessoren oder
Steuerschaltungen umfassen.
-
Der
erste und der zweite Pufferspeicher 240 und 250 können von
der Steuereinheit 260 gesteuert werden, um individuell
Lese-/Schreibvorgänge
auszuführen,
und dazu benutzt werden, Daten aus dem nichtflüchtigen Speicher 230 aufzunehmen
oder Daten im nichtflüchtigen
Speicher 230 zu speichern. Der nichtflüchtige Speicher 230 kann
unter der Steuerung der Steuereinheit 260 analog zum nichtflüchtigen Speicherbauelement
aus 7 betrieben werden.
-
Wie
aus 10 ersichtlich ist, kann eine Lesevorgangs-Zeitspanne
tR als eine Zeitspanne definiert werden, welche erforderlich ist,
um Seitendaten vom Speicherzellenfeld 231 zum Seitenpuffer 232 zu übertragen,
eine Pufferübertragungs-Zeitspanne
tT kann als eine Zeitspanne definiert Werden, welche erforderlich
ist, um Seitendaten vom nichtflüchtigen Speicher 230 oder
vom Seitenpuffer 232 zu einem der Pufferspeicher 240, 250 zu übertragen,
und eine Hostübertragungs-Zeitspanne
tH kann als eine Zeitspanne definiert werden, welche erforderlich
ist, um Seitendaten vom Pufferspeicher 240, 250 zum
Host 210 zu übertragen.
-
Ein
erfindungsgemäßer Cachelesevorgang ist
im Zusammenhang mit den 11A und 11B dargestellt. Wie aus 11A ersichtlich
ist, können während der
Bitleitungssetzperiode T1 bis T3 bzw. tT Seitendaten vom nichtflüchtigen
Speicher 230 zum ersten Pufferspeicher 240 übertragen
werden und gleichzeitig können
Daten einer vorherigen Seite während
aller Perioden T1 bis T5 eines Lesevorgangs tR oder während der
Pufferübertragungs-Zeitspanne
tT vom zweiten Pufferspeicher 250 zum Host 210 übertragen
werden.
-
Wie
aus 11B ersichtlich ist, können während der
Bitleitungssetzperiode T1 bis T3 bzw. tT Seitendaten vom nichtflüchtigen
Speicher 230 zum zweiten Pufferspeicher 250 übertragen
werden und Seitendaten können
während
aller Perioden T1 bis T5 eines Lesevorgangs tR vom ersten Pufferspeicher 240 zum
Host 210 übertragen
werden.
-
Im
Falle eines kontinuierlichen Lesevorgangs kann die Hostübertragungs-Zeitspanne
tH, welche zum Übertragen
der Seitendaten vom jeweiligen Pufferspeicher 240, 250 zum
Host 210 erforderlich ist, innerhalb der Lesevorgangs-Zeitspanne
tR untergebracht werden. Alternativ kann die Lesevorgangs-Zeitspanne
tR innerhalb der Hostübertragungs-Zeitspanne tH untergebracht
werden. Das bedeutet, dass die Leistungsfähigkeit des Speichersystems
verbessert werden kann.
-
12 zeigt
ein Blockschaltbild eines weiteren Ausführungsbeispiels eines erfindungsgemäßen Speicherbauelements 220,
das z. B. vom Host 210 der 10 gesteuert
wird, um Daten vom Host 210 zu speichern oder gespeicherte
Daten an den Host 210 auszugeben. Das Speicherbauelement 220 umfasst
eine Steuereinheit 260, welche eine Hostschnittstelle 261 für den Datenaustausch
mit dem Host 210 aufweist. In erfindungsgemäßer Ausgestaltung
kann die Hostschnittstelle 261 auf verschiedene Arten ausgeführt sein,
beispielsweise als SRAM-Schnittstelle oder als NOR-Schnittstelle.
-
Für den Fall
der Datenübertragung
vom nichtflüchtigen
Speicher 230 zum Host 210 können die Daten aus dem nichtflüchtigen
Speicher 230 ausgelesen und die ausgelesenen Daten im ersten und/oder
zweiten Pufferspeicher 240, 250 gespeichert werden.
Das Speicherbauelement 220 kann Daten in einen der Pufferspeicher 240, 250 auslesen und
die ausgelesenen Daten zum Host 210 übertragen. Während Daten,
wie oben beschrieben ist, von einem der Pufferspeicher 240, 250 zum
Host 210 übertragen
werden, kann gleichzeitig ein Lesevorgang im nichtflüchtigen
Speicher 230 ausgeführt
werden, wie nachfolgend beschrieben wird.
-
Bei
einem Ausführungsbeispiel
können
die Pufferspeicher 240, 250 als SRAM oder als
anderes RAM-Bauelement ausgeführt
werden. In weiterer Ausgestaltung kann der Steuerblock 260 ein
Register 262, eine Ablaufsteuerung 263, eine erste
Speichersteuerschaltung 264, eine zweite Speichersteuerschaltung 265 und/oder
eine Fehlerkorrektur- und Dateneingabe-/Datenausgabeeinheit (ECC & DQ) 266 umfassen.
-
Das
Register 262 kann benutzt werden, um Adressen- und/oder
Befehlsdaten zu speichern, welche über die Hostschnittstelle 261 vom
Host 210 übertragen
werden. Registerdaten REG_DATA können
beispielsweise in einem Bereich des Registers 262 gespeichert
werden, welcher mit einer Registeradresse REG_ADDR gemäß einem
Steuersignal REG_CTRL korrespondiert. Im Register 262 gespeicherte
Daten können
Pufferauswahlinformationen zum Auswählen des ersten oder des zweiten
Pufferspeichers 240, 250, Block- und Seitenadressen
des nichtflüchtigen
Speichers 230, einen Befehl und/oder Bauelement-ID-Informationen
usw. umfassen. Diese Datenwerte können in Registerbereichen ge speichert
werden, welche von Registeradressen REG_ADDR angezeigt werden.
-
In
einem Ausführungsbeispiel
kann die Ablaufsteuerung 263 als bekannte Zustandsmaschine ausgeführt sein.
Die Ablaufsteuerung 263 kann beispielsweise basierend auf
einem ersten Cachelesebefehl, Pufferauswahlinformationen und/oder
im Register 262 gespeicherten Adresseninformationen die erste
Speichersteuerschaltung 264, die zweite Speichersteuerschaltung 265 und/oder
die Fehlerkorrektur- und Dateneingabe-/Datenausgabeeinheit 266 steuern,
wie nachfolgend beschrieben wird.
-
Bei
einem erfindungsgemäßen Ausführungsbeispiel
kann die Ablaufsteuerung 263 ein Flagsignal F_INT erzeugen,
welches über
die Hostschnittstelle 261 als Interruptsignal INT an den
Host 210 ausgegeben werden kann. Das Interruptsignal INT
kann z. B. auf einen niedrigen Pegel aktiviert werden, wenn ein Befehl
in das Register 262 geladen wird, und auf einen hohen Pegel
deaktiviert werden, wenn ein Lesevorgang des nichtflüchtigen
Speichers 230 beendet wird.
-
In
weiterer Ausgestaltung kann der Host 210 in Abhängigkeit
vom logischen Zustand des Interruptsignals INT einen Zeitpunkt zum
Speichern von Daten im Register 262 bestimmen. Die erste
Speichersteuerschaltung 264 kann gleichzeitig den ersten
und den zweiten Pufferspeicher 240 und 250 so
steuern, dass Daten vom nichtflüchtigen
Speicher 230 zum jeweiligen Pufferspeicher 240, 250 und
vom jeweiligen Pufferspeicher 240, 250 zum Host 210 übertragen werden.
-
In
weiterer Ausgestaltung kann die zweite Speichersteuerschaltung 265 den
nichtflüchtigen Speicher 230 in
Reaktion auf jedes Flagsignal F_INT steuern. In einem Ausführungsbeispiel
kann die Fehlerkorrektur- und Dateneingabe-/Datenausgabeeinheit 266 Fehler
in Daten korrigieren, welche gesteuert von der Ablaufsteuerung 263 zwischen
der ersten Speichersteuerschaltung 264 und dem nichtflüchtigen
Speicher 230 übertragen
werden. Zudem kann die Fehlerkorrektur- und Dateneingabe-/Datenausgabeeinheit 266 in
weiterer Ausgestaltung auch Daten- und Adresseninformationen über korrespondierende
Busse ADDR bzw. DATA an den nichtflüchtigen Speicher 230 ausgeben.
Bei einem Ausführungsbeispiel
kann eine an den nichtflüchtigen
Speicher 230 übertragene
Adresse, welche Block- und Seitenadresseninformationen umfasst,
im Register 262 gespeichert werden.
-
In
einem Ausführungsbeispiel
können
alle Komponenten eines Speicherbauelements, wie des Speicherbauelements 220,
auf einem Substrat ausgebildet werden, um einen einzelnen Chip zu
realisieren. Das bedeutet, dass in einem erfindungsgemäßen Ausführungsbeispiel
ein Einzelchip vorgesehen ist, welcher auch als „Ein-NAND-Flashspeicherbauelement" bezeichnet wird.
In einem Ein-NAND-Flashspeicherbauelement kann ein Register, wie
das Register 262, gesetzt werden und basierend auf den Setzwerten
im Register automatisch einen Lese-/Schreibvorgang ausführen. Das Ein-NAND-Flashspeicherbauelement
braucht nicht unbedingt eine gemultiplexte Eingabe/Ausgabe(E/A)-Struktur
für Befehle
bzw. Daten aufweisen, wie sie in einem herkömmlichen Flashspeicherbauelement
benutzt wird. Aus diesem Grund können
ein Adressenübertragungspfad
und ein Datenübertragungspfad
außerhalb
und/oder innerhalb der Hostschnittstelle 261 separiert
werden.
-
Bei
einem Ausführungsbeispiel
kann ein Speicherzellenfeld des nichtflüchtigen Speichers, wie das
Speicherzellenfeld des nichtflüchtigen
Speichers 230, in eine Anzahl von Speicherblöcken aufgeteilt werden.
Jeder Speicherblock kann zudem ein Hauptfeld, in welchem Hauptdaten
gespeichert werden, und ein Zusatzfeld umfassen, in welchem Zusatzdaten,
wie beispielsweise Paritätsinformationen
zur Fehlerkorrektur, gespeichert werden.
-
Speicherblöcke des
Speicherzellenfelds können
jeweils durch korrespondierende Blockadressen ausgewählt werden,
wie in 13A dargestellt ist. Zudem können die
Pufferspeicher 240, 250 in ein Hauptfeld, in welchem
Hauptdaten des nichtflüchtigen
Speichers 230 gespeichert werden, und ein Zusatzfeld aufgeteilt
sein, in welchem Zusatzdaten des nichtflüchtigen Speichers 230 gespeichert
werden. Wie aus 13B ersichtlich ist, umfasst
jedes Feld eine Anzahl von Sektoren, welche von korrespondierenden
Adressen ausgewählt
werden.
-
Wie
aus 14A ersichtlich ist, ist ein Adressenbereich
F000h beispielsweise als ein Registerbereich bestimmt, in welchem
Bauelement-ID-Informationen,
wie Hersteller, Blockgröße, Seitengröße usw.,
gespeichert sind und welcher als Nur-Lese-Bereich ausgeführt ist.
Auf die Daten, wie die Bauelement-ID-Informationen, im Registerbereich
F000h kann vom Host 210 zugegriffen werden. Ein Adressenbereich
F001h kann als ein Registerbereich bestimmt sein, in welchem eine
Flashblockadresse gespeichert ist, und ein Adressenbereich F002h
kann als ein Registerbereich bestimmt sein, in welchem eine Flashseitengröße gespeichert
ist. Ein Adressenbereich F003h kann als ein Registerbereich bestimmt
sein, in welchem Pufferauswahlinformationen zum Aus wählen von
Pufferspeichern gespeichert sind, und ein Adressenbereich F004h
kann als ein Registerbereich bestimmt sein, in welchem ein Befehl
gespeichert ist.
-
In
einem Ausführungsbeispiel
kann, wenn Daten mit dem Wert „0000h" im Registerbereich F001h
gespeichert sind, ein 0-ter Speicherblock des Speicherzellenfelds
im nichtflüchtigen
Speicherkern 230 ausgewählt
werden. Sind Daten mit dem Wert „0001h" im Registerbereich F001h gespeichert,
dann kann ein 1-ter Speicherblock des Speicherzellenfelds im nichtflüchtigen
Speicherkern 230 ausgewählt
werden. Sind Daten mit dem Wert „0000h" im Registerbereich F002h gespeichert,
dann kann eine 0-te Seite des ausgewählten Speicherblocks ausgewählt werden.
Sind Daten mit dem Wert „0002h" im Registerbereich
F002h gespeichert, dann kann eine 2-te Seite des ausgewählten Speicherblocks
ausgewählt werden.
Sind Daten mit dem Wert „0000h" im Registerbereich
F003h gespeichert, dann kann der erste Pufferspeicher 240 ausgewählt werden.
Sind Daten mit dem Wert „0001h" im Registerbereich
F003h gespeichert, dann kann der zweite Pufferspeicher 250 ausgewählt werden.
-
Wie
aus 14B ersichtlich ist, kann in
einem Ausführungsbeispiel,
wenn Daten mit dem Wert „0000h" im Registerbereich
F004h gespeichert sind, ein Lesevorgang im nichtflüchtigen
Speicher 230 ausgeführt
werden. In weiterer Ausgestaltung kann, wenn Daten mit dem Wert „0001h" oder „0002h" im Registerbereich
F004h gespeichert sind, ein Cachelesevorgang im nichtflüchtigen
Speicher 230 ausgeführt
werden. Wie nachfolgend ausgeführt
wird, kann, wenn ein Cachelesebefehl mit dem Wert „0001h" empfangen wird,
ein Datenübertragungsvorgang
von Seitenpuffern zu einem der Pufferspeicher gemeinsam mit einem
Vorgang zum Setzen von Zellendaten auf die Bitleitung ausgeführt werden.
Andererseits wird, wenn ein Cachelesebefehl mit dem Wert „0002h" empfangen wird,
nur der Datenübertragungsvorgang
von Seitenpuffern zu einem der Pufferspeicher ausgeführt, ohne
Zellendaten auf die Bitleitung zu setzen. Bei einem Ausführungsbeispiel kann
der Cachelesebefehl „0001h" als erster Cachelesebefehl
und der Cachelesebefehl „0002h" als zweiter Cachelesebefehl
bezeichnet werden.
-
Bei
einem Ausführungsbeispiel
kann ein Schreibvorgang im nichtflüchtigen Speicher 230 ausgeführt werden,
wenn Daten mit dem Wert „0003h" im Registerbereich
F004h gespeichert sind, und ein Löschvorgang kann im nichtflüchtigen
Speicher 230 ausgeführt
werden, wenn Daten mit dem Wert „0004h" im Registerbereich F004h gespeichert
sind. Ein Rücksetzvorgang
kann im nichtflüchtigen
Speicher 230 ausgeführt werden,
wenn Daten mit dem Wert „0005h" im Registerbereich
F004h gespeichert sind. Die 14A und 14B zeigen die oben beschriebenen Befehlsbedingungen.
-
15 zeigt
ein Flussdiagramm eines Ausführungsbeispiels
eines erfindungsgemäßen Cacheleseverfahrens.
Wie aus 15 ersichtlich ist, werden während einer
Datenlese-Zeitspanne tR Daten von einem Speicherzellenfeld zu Seitenpuffern übertragen.
Dies umfasst eine Initialisierung von Bitleitungen im Schritt S100,
ein Vorladen der Bitleitungen mit einer Vorladespannung im Schritt
S120, ein Reflektieren von Datenwerten in Speicherzellen auf die
Bitleitungen im Schritt S140, eine Initialisierung von Zwischenspeichern
in Seitenpuffern im Schritt S160 und ein Speichern von Datenwerten
auf den Bitleitungen in den Zwischenspeichern im Schritt 180. Die
Schritte S100, S120 und S140 bilden die Bitleitungssetzperiode,
in welcher Daten in einer Speicherzelle auf eine Bitleitung reflektiert
werden.
-
Daten
können
während
einer Pufferübertragungs-Zeitspanne
tT im Schritt S200 von Seitenpuffern zu einem Pufferspeicher übertragen
werden. Dies kann während
der Schritte S100 bis S140 des Datenlesevorgangs ausgeführt werden.
Während
der Datenlesevorgang ausgeführt
wird, können
innerhalb einer Hostübertragungs-Zeitspanne
tH im Schritt S300 Daten von einem Pufferspeicher zum Host übertragen
werden. Bei einem Ausführungsbeispiel kann
die Datenlese-Zeitspanne tR die längste der Zeitspannen tR, tT
und tH sein. Aus diesem Grund können
die Zeitspanne tT und/oder tH innerhalb der Datenlese-Zeitspanne
tR untergebracht werden, d. h. die entsprechenden Vorgänge werden
ebenfalls während
der Datenlese-Zeitspanne tR ausgeführt.
-
16 zeigt
ein Zeitablaufdiagramm eines erfindungsgemäßen Cachelesevorgangs. Wie
aus 16 ersichtlich ist, kann der Host 210 nach
einem Übergang
eines Signals nCE (/Chip Enable) von einem hohen auf einen niedrigen
Pegel Daten an das Speicherbauelement 220 ausgeben, welche
im Register 262 zusammen mit einer Adresse gespeichert werden
sollen. Das Register 262 des Speicherbauelements 220 kann
in Reaktion auf einen Übergang
eines Steuersignals nAVD (/Adress Valid Detect) von einem niedrigen
auf einen hohen Pegel eine Adresse REG_ADDR empfangen und Daten
REG_DATA können
im Registerbereich der empfangenen Adresse in Synchronisation mit
einem Übergang
eines Steuersignals nWE von einem niedrigen auf einen hohen Pegel
gespeichert werden.
-
Wie
aus 16 ersichtlich ist, können beispielsweise im Registerbereich
F001h Daten mit dem Wert „0000h" gespeichert werden
und im Registerbereich F002h können
Daten mit dem Wert „0000h" gespeichert werden.
Daten mit dem Wert „0001h" können im
Registerbereich F003h gespeichert werden und Daten mit dem Wert „0001h" können im
Registerbereich F004h gespeichert werden. Diese Bedingungen können eingenommen
werden, um anzuzeigen, dass ein erster Cachelesebefehl empfangen
wurde, dass eine 0-te Seite eines 0-ten Speicherblocks ausgewählt ist
und dass Daten der ausgewählten
Seite im zweiten Pufferspeicher 250 gespeichert werden. Nachdem
das Register 262 mit den Adressen- und den Befehlsdaten
gesetzt ist, kann die Ablaufsteuerung 263 das Interruptsignal
INT auf dem niedrigen Pegel aktivieren.
-
Einer
der Speicherblöcke,
z. B. der 0-te Speicherblock, kann vom Zeilendecoder 120 ausgewählt werden
und z. B. die 0-te Seite des ausgewählten Speicherblocks kann vom
Zeilendecoder 120 ausgewählt werden. Unter der Voraussetzung,
dass geradzahlige Bitleitungen BLie der Bitleitungspaare BLie und
Blio, mit i = 0 bis n, ausgewählt
werden, nachdem alle Bitleitungen BLie und BLio während der
Bitleitungsrücksetzperiode
T1 auf die Massespannung zurückgesetzt
sind, siehe Schritt S100 aus 15, können die
ausgewählten
Bitleitungen BLie mit der vorgegebe nen Vorladespannung in der Bitleitungsvorladeperiode
T2 vorgeladen werden, siehe Schritt S120 in 15.
-
Zellendaten
in den Speicherzellen der ausgewählten
Seite können
auf die ausgewählten
Bitleitungen BLie während
der Bitleitungsentwicklungsperiode T1 reflektiert werden, siehe
Schritt 140 in 15. Nach
der Bitleitungssetzperiode T1 bis T3 können die Zwischenspeicher 131 der
Seitenpuffer 130_0 bis 130_n in der Zwischenspeicherrücksetzperiode
T4 durch ein elektrisches Verbinden der Zwischenspeicher 131 mit
dem Datenbus DB über
die Spaltengatterschaltung 140 zurückgesetzt werden, siehe Schritt
S160 in 15. Die Datenwerte der ausgewählten Bitleitungen
können
während
der Abtastperiode T5 zu korrespondierenden Zwischenspeichern 131 übertragen
werden, siehe Schritt S180 in 15.
-
Während der
Bitleitungssetzperiode T1 bis T3 können die in den Zwischenspeichern 131 gespeicherten
Datenwerte über
die Spaltengatterschaltung 140 zum Datenbus DB übertragen
werden und Datenwerte auf dem Datenbus DB können über die Fehlerkorrektur- und
Dateneingabe-/Datenausgabeeinheit 266 zur ersten Speichersteuerschaltung 264 übertragen
werden.
-
Solchermaßen übertragene
Datenwerte können
basierend auf der Steuerung der ersten Speichersteuerschaltung 264 im
zweiten Pufferspeicher 250 gespeichert werden, siehe Schritt
S200 aus 15. Die erste Speichersteuerschaltung 264 kann in
Reaktion auf ein Befehlsflagsignal CMD_FLAG und ein Pufferauswahlsignal
BUF_SEL von der Ablaufsteuerung 263 arbeiten. Das Befehlsflagsignal CMD_FLAG
kann einen Schreibbefehl anzeigen und das Pufferauswahlsignal BUF_SEL
kann gesetzt werden, um gemäß den Daten
im Register 262 den ersten Pufferspeicher 240 auszuwählen.
-
Nach
dem Empfang des ersten Cachelesebefehls kann ein Cachelesevorgang
automatisch unter der Steuerung der Ablaufsteuerung 263 ausgeführt werden.
Wie oben ausgeführt
ist, können
während
der Bitleitungssetzperiode T1 bis T3 in den Zwischenspeichern 131 gespeicherte
Datenwerte während
der Pufferübertragungs-Zeitspanne
tT0 an einen ausgewählten
Pufferspeicher übertragen
werden. Ist ein Lesevorgang gemäß einer
Eingabe des ersten Cachelesebefehls abgeschlossen oder ist die Datenlesezeitspanne
tR1 abgelaufen, dann kann die Ablaufsteuerung 263 das Interruptsignal
INT auf einen hohen Pegel deaktivieren. Der Host 210 kann
auf einen Übergang
des Interruptsignals INT von einem niedrigen auf einen hohen Pegel
reagieren und Adressen und/oder Befehlsdaten ausgeben, welche für einen
nächsten
Cachelesevorgang erforderlich sind. Ein Vorgang des Speicherbauelements
gemäß dem nächsten Cachelesebefehl
kann der gleiche wie der oben beschriebene sein, so dass hier auf
eine erneute Beschreibung verzichtet wird.
-
Wie
weiter aus 16 ersichtlich ist, können nach
dem Empfang des ersten Cachelesebefehls CACHE_CMD1 innerhalb der
Datenlesezeitspanne tR1 Seitendaten, welche Hauptdaten und Zusatzdaten
umfassen, vom nichtflüchtigen
Speicher 230 zum zweiten Pufferspeicher 250, z.
B. einem SRAM, während
der zugehörigen
Transferzeit tT0 übertragen werden.
Da die ersten übertragenen
Seitendaten ungültige
Daten sein können,
braucht der Host 210 nicht auf den zweiten Pufferspeicher 250 zugreifen. Wird
der erste Cachelesebefehl während
der Datenlese-Zeitspanne
tR2 nochmals empfangen, insbesondere während der Bitleitungssetzperiode
T1 bis T3, dann können
die zuerst ausgelesenen gültigen Seitendaten,
in 16 während
der Zeitspanne tR1 ausgelesene Daten, zum zweiten Pufferspeicher 250 innerhalb
der Zeitspanne tT2 übertragen
werden.
-
Wenn
der erste Cachelesebefehl CACHE_CMD1 nach der Datenlese-Zeitspanne tR wieder
empfangen wird, werden Daten im ersten Puffer speicher 240 gemäß der Hostanforderung
während
der Zeitspanne tH1 zum Host 210 übertragen. Gleichzeitig können innerhalb
der Datenlese-Zeitspanne
tR3, insbesondere innerhalb der Bitleitungssetzperiode T1 bis T3,
als zweites ausgelesene gültige
Seitendaten, in 16 während der Zeitspanne tR3 ausgelesene
Daten, während
der Zeitspanne tT2 zum zweiten Pufferspeicher 250 übertragen
werden.
-
Wird
der erste Cachelesebefehl CACHE_CMD1 nach der Datenlese-Zeitspanne tR nochmals
empfangen, dann werden Daten im zweiten Pufferspeicher 250 gemäß der Hostanforderung während der
Zeitspanne tH2 über
die erste Speichersteuerschaltung 264 zum Host 210 übertragen.
Hierbei können
während
des Datenlese-Zeitraums tR4, insbesondere während der Bitleitungssetzperiode
T1 bis T3, als drittes ausgelesene gültige Seitendaten, in 16 während der
Zeitspanne tR3 ausgelesene Daten, während der Zeitspanne tT3 zum
ersten Pufferspeicher 240 übertragen werden.
-
Wird
der zweite Cachelesebefehl CACHE_CMD2 nach der Datenlese-Zeitspanne tR empfangen,
dann braucht kein aktueller Datenabtastvorgang ausgeführt werden,
während
als viertes ausgelesene gültige
Seitendaten, in 16 während der Zeitspanne tR4 ausgelesene
Daten, während
der Pufferübertragungs-Zeitspanne
tT4 zum zweiten Pufferspeicher 250 übertragen werden können. Gleichzeitig
können
Daten im ersten Pufferspeicher 240 über die erste Speichersteuerschaltung 264 gemäß der Hostanforderung
tH3 an den Host 210 übertragen werden.
Werden die zuletzt ausgelesenen Seitendaten, in 16 die
während
der Zeitspanne tR4 ausgelesenen Seitendaten, zum zweiten Pufferspeicher 250 übertragen,
dann kann die Ablaufsteuerung 263 das Interruptsignal INT
auf einen hohen Pegel deaktivieren. Der Host 210 kann die
im zweiten Pufferspeicher 250 gespeicherten Daten nach
der Pufferübertragungszeit
tT4 in der Zeitspanne tH4 abrufen.
-
Wie
aus 17 ersichtlich ist, kann das Interruptsignal INT
nach dem Empfang des ersten Cachelesebefehls deaktiviert werden,
und dann verstreicht eine Datenlesezeit tR. Der Host 210 kann
in Reaktion auf das deaktivierte Interruptsignal INT den ersten/zweiten
Cachelesebefehl im Register 262 speichern.
-
In
einem Speichersystem, welches einen Cachelesevorgang und eine duale
Pufferstruktur gemäß einem
Ausführungsbeispiel
der Erfindung benutzt, kann eine Zeitspanne von n·tR + 2tH
erforderlich sein, wobei n eine ganze Zahl größer gleich zwei ist, um n Seiten
von Daten zu übertragen.
In einem Speichersystem, welches den Cachelesevorgang und die duale
Pufferstruktur nicht nutzt, kann eine Zeitspanne von n·(tR +
tT + tH) erforderlich sein, um n Seiten von Daten zu übertragen.
Entsprechend ist es möglich,
die Gesamtlesezeit durch die Erfindung zu reduzieren, so dass die
Leistungsfähigkeit
von Speichersystemen verbessert wird.
-
Bei
einem weiteren erfindungsgemäßen Ausführungsbeispiel
ist es möglich,
einen Cachelesevorgang nur durch Benutzen des ersten Cachelesebefehls
CACHE_CMD1 auszuführen,
anstatt den ersten und zweiten Cachelesebefehl CACHE_CMD1, CACHE_CMD2
zu verwenden. Das Zeitablaufdiagramm aus 18 entspricht
beispielsweise im Wesentlichen dem Zeitablaufdiagramm aus 17,
außer
dass ein fünfter
zugeführter
Befehl ebenfalls dem ersten Cachelesebefehl CACHE_CMD1 entspricht.
Da der zuletzt eingegebene Befehl dem ersten Cachelesebefehl CACHE_CMD1
entspricht, kann ein aktueller Datenabtastvorgang während der
Zeitspanne tR5 ausgeführt
werden. Gültige
Seitendaten, welche während
der Zeitspanne tR5 ausgelesen werden, können zum zweiten Pufferspeicher 250 übertragen
werden. Gleichzeitig können
Daten im ersten Pufferspeicher 240 über die erste Speichersteuerschaltung 264 gemäß der Hostanforderung
tH zum Host 210 übertragen
werden. Nach dem Empfang des ersten Cachelesebefehls CACHE_CMD1
und dem Ablauf der Datenlesezeitspanne tR5 kann die Ablaufsteuerung 263 das
Interruptsignal INT auf hohen Pegel deaktivieren. Anschließend kann
der Host 210 die im zweiten Pufferspeicher 250 gespeicherten
Daten während
der Zeitspanne tH4 abrufen.
-
Im
Zeitablaufdiagramm aus 18 kann eine Zeitspanne von
(n + 1)·tR
+ tH erforderlich sein, um n Seiten von Daten zu übertragen.
Entsprechend ist es möglich,
die Gesamtlesezeit durch Nutzen des erfindungsgemäßen Ausführungsbeispiels
zu reduzieren, so dass die Leistungsfähigkeit des Speichersystems
verbessert wird.
-
Somit
ermöglicht
die Erfindung die Realisierung von Halbleiterbauelementen, wie Halbleiterspeicherbauelementen
und insbesondere Flashspeichern, und von zugehörigen Programmierverfahren mit
reduzierter Datenübertragungsdauer,
z. B. für
Cachelesevorgänge.
Die Erfindung umfasst Ausführungsbeispiele
mit Einpegelzellen (SLC) und/oder mit Mehrpegelzellen (MLC). Zur
Reduzierung der Gesamtübertragungsdauer
kann eine Überlappung
von wenigstens zwei der Zeiträume
tR, tT und tH vorgesehen sein. Statt der erwähnten Ausführungsbeispiele mit einem oder
zwei Seitenpuffern sowie mit einem oder zwei Cachelesebefehlen umfasst
die Erfindung auch Ausführungsbeispiele
mit beliebiger anderer Anzahl von Seitenpuffern und/oder Cachelesebefehlen.
-
Es
versteht sich, dass die Erfindung auch Varianten der oben beschriebenen
Ausführungsbeispiele
mit modifizierten Werten der verschiedenen benutzten Spannungen
und/oder mit vertauschtem niedrigem bzw. hohem Logikpegel der diversen
Signale umfasst.