-
Die
Erfindung betrifft ein Flashspeicherbauelement z. B. vom NAND-Typ.
-
Halbleiterspeicherbauelemente
können
im Wesentlichen in zwei Kategorien klassifiziert werden, nämlich in
flüchtige
Speicherbauelemente und in nichtflüchtige Speicherbauelemente.
Flüchtige Speicherbauelemente
umfassen beispielsweise Speicher mit direktem Zugriff (RAM). Ein
RAM speichert Informationen typischerweise entweder durch Setzen
eines logischen Zustands eines Flip-Flops, wie in einem statischen
Speicher mit direktem Zugriff (SRAM), oder durch Laden eines Kondensators,
wie in einem dynamischen Speicher mit direktem Zugriff (DRAM). Flüchtige Speicherbauelemente
können
die Daten nur speichern, solange sie mit Energie versorgt werden.
Sie verlieren die gespeicherten Daten, wenn die Energieversorgung
unterbrochen wird.
-
Im
Gegensatz dazu können
nichtflüchtige Speicherbauelemente,
wie maskierte Nur-Lesespeicher (MROM), programmierbare Nur-Lesespeicher (PROM),
lösch-
und programmierbare Nur-Lesespeicher (EPROM) und elektrisch lösch- und
programmierbare Nur-Lesespeicher (EEPROM), Daten weiter speichern,
auch wenn die Energieversorgung unterbrochen wird. Nichtflüchtige Speicherbauelemente können in
Abhängigkeit
von der bei der Produktion verwendeten Herstellungstechnologie Daten
permanent speichern oder wiederprogrammiert werden. EEPROMs, welche
elektrisch programmiert werden, können beispielsweise immer wieder
neu programmiert werden. PROMs, welche mittels Durchtrennen von
Sicherungen programmiert werden, können hingegen nur einmal programmiert
werden.
-
Da
nichtflüchtige
Speicherbauelemente gespeicherte Daten auch erhalten, wenn die Energieversorgung
abgeschaltet wird, werden diese in der Regel zum Speichern von Mikrocodes
in vielfältigen Applikationen
in der Computer-, Avionic-, Telekommunikations- und Verbraucherelektronikindustrie
verwendet. Einige Systeme verwenden auch eine Kombination eines
flüchtigen
Speichers und eines nichtflüchtigen
Speichers, um in hoch leistungsfähigen Applikationen
eine nichtflüchtige
Speicherfähigkeit zur
Verfügung
zu stellen. Ein nichtflüchtiger
SRAM (nvRAM) lädt
beispielsweise Daten von einem nichtflüchtigen Speicher in einen SRAM,
um ein Programm auszuführen.
Wenn das Programm ausgeführt
wird, werden die Daten im SRAM aktualisiert. Dann werden die Daten,
um sie nach dem Abschalten zu erhalten, in den nichtflüchtigen
SRAM zurückgespeichert.
Zusätzlich
sind Dutzende von speziellen Speicherarchitekturen entwickelt worden,
welche zusätzliche
Logikschaltungen umfassen, um die Leistungsfähigkeit für spezielle Aufgaben zu optimieren.
-
Leider
kann ein Benutzer MROMs, PROMs und EPROMs nicht frei programmieren.
Zum Löschen
von EPROMs ist es beispielsweise erforderlich, die Speicheroberfläche für eine längere Zeitspanne
mit ultraviolettem Licht (UV-Licht) zu bestrahlen. Im Gegensatz
dazu können
EEPROMs auf eine effiziente Weise elektrisch gelöscht und programmiert werden.
Daraus resultiert, dass EEPROMs allgemein verwendet werden, um herkömmliche
Speichersysteme zu erweitern oder um Da ten zu speichern, welche
eine nichtflüchtige
Speicherung erfordern, aber regelmäßig aktualisiert werden.
-
Eine
der populärsten
Formen eines EEPROMs ist aktuell ein Flashspeicher. Flashspeicher weisen
eine höhere
Integrationsdichte als die meisten anderen Typen von EEPROMs auf,
woraus resultiert, dass sie häufig
zur Massenspeicherung verwendet werden. Flashspeicher werden typischerweise
in Abhängigkeit
vom Typ des in jeder Speicherzelle verwendeten Logikgatters in zwei
Kategorien aufgeteilt, und zwar NAND-Flashspeicher und NOR-Flashspeicher.
NOR-Flashspeicher ermöglichen
im Allgemeinen schnellere Lesezeiten als NAND-Flashspeicher, sind
aber teurer und langsamer beim Schreiben und Löschen und können weniger Programmiervorgänge aushalten
und erfordern mehr Platz. Daraus resultiert, dass NOR-Flashspeicher
im Allgemeinen zum Speichern von Programmcode verwendet werden, während NAND-Flashspeicher zur
Bereitstellung von Massendatenspeichern verwendet werden.
-
Wenn
ein Speichersystem sowohl NAND-Flashspeicher als auch NOR-Flashspeicher umfasst,
wird die Steuerschaltung für
das Speichersystem komplex. Eine Möglichkeit, um der Komplexität zu begegnen,
ist eine integrierte Speicherarchitektur. In einer integrierten
Speicherarchitektur wird Programmcode, welcher gewöhnlich in
einem NOR-Flashspeicher
gespeichert ist, gemeinsam mit bislang in einem NAND-Flashspeicher gespeicherten Daten
in einem OneNANDTM-Flashspeicher gespeichert.
Ein beispielhafter OneNANDTM-Flashspeicher wird
im Datenbuch von Samsung Electronics Co., Ltd. offenbart, welches
im September 2003 veröffentlicht
wurde. In der integrierten Speicherarchitektur werden Daten zwischen
dem OneNANDTM-Flashspeicher und einem Hostsystem übertragen.
-
Die
Offenlegungsschrift
DE
103 45 420 A1 offenbart ein Flashspeicherbauelement mit
zwei parallelen Datenpuffern, die zwecks Erhöhung der Datenübertragungsgeschwindigkeit
abwechselnd und überlappend
Daten aus einer angekoppelten Flashspeichereinheit empfangen und
vorher empfangene Daten an ein Host-System weiterleiten.
-
Es
ist Aufgabe der Erfindung, ein gegenüber den oben erwähnten Flashspeichern
des Standes der Technik weiter verbessertes Flashspeicherbauelement
anzugeben.
-
Die
Erfindung löst
diese Aufgabe durch ein Flashspeicherbauelement mit den Merkmalen
des Patentanspruchs 1. Dieses Flashspeicherbauelement ist dafür ausgelegt,
Cachelesevorgänge
mit einer Reihe von aufeinander folgenden Lesevorgängen auszuführen.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Vorteilhafte
Ausführungsformen
der Erfindung sind in den Zeichnungen dargestellt und werden nachfolgend
beschrieben. Es zeigen:
-
1 ein
Blockdiagramm eines Speichersystems,
-
2 ein
Blockdiagramm eines nichtflüchtigen
Speicherkerns aus 1,
-
3 ein
Signalform-Zeitablaufdiagramm eines Lesevorgangs des nichtflüchtigen
Speicherkerns gemäß 2,
-
4A und 4B ein
Datenübertragungspfad
zur Verwendung während
eines Cachelesevorgangs,
-
5 ein
Signalform-Zeitablaufdiagramm eines Cachelesevorgangs eines Speichersystems
und
-
6 ein
Signalform-Zeitablaufdiagramm eines normalen Lesevorgangs eines
Speichersystems.
-
1 zeigt
ein Speichersystem 1000, das einen OneNANDTM-Flashspeicher 100 und
eine Host-Einheit 300 umfasst. Der NAND-Flashspeicher 100 führt Lese-/Schreibvorgänge gesteuert
vom Host 300 aus und umfasst einen nichtflüchtigen
Speicherkern 110, einen ersten Pufferspeicher 120,
einen zweiten Pufferspeicher 130, eine Steuerlogikschaltung 140,
ein Register 150 und eine Kopierschaltung 160.
-
Der
nichtflüchtige
Speicherkern 110 umfasst ein nichtflüchtiges Speicherzellenfeld 210 und
einen Seitenpuffer 220 und wird von der Steuerlogikschaltung 140 gesteuert.
Der erste und zweite Pufferspeicher 120 und 130 werden
von der Steuerlogikschaltung 140 und dem Host 300 gesteuert,
um unabhängig
Lese-/Schreibvorgänge
auszuführen.
Der erste und zweite Pufferspeicher 120 und 130 werden
verwendet, um temporär
Daten zu speichern, welche vom nichtflüchtigen Speicherkern 110 ausgegeben werden,
oder Daten zu speichern, welche im nichtflüchtigen Speicherkern 110 gespeichert
werden sollen. Der erste und zweite Pufferspeicher 120 und 130 beinhalten
z. B. SRAMs. Alternativ können
sie DRAMs umfassen.
-
Die
Steuerlogikschaltung 140 steuert den nichtflüchtigen
Speicherkern 110 und die Pufferspeicher 120 und 130 basierend
auf Adressen- und Befehlsinformationen, welche in einem Register 141 innerhalb
der Steuerlogikschaltung 140 gespeichert sind. Insbesondere
verwendet die Steuerlogikschaltung 140 die Adressen- und
Befehlsinformationen, um einen Cachelesevorgang zu steuern, der
vom nichtflüchtigen
Speicherkern 110 und dem ersten und zweiten Pufferspeicher 120 und 130 ausgeführt wird. Der
Cachelesevorgang wird in Reaktion auf einen vom Host 300 in
den NAND-Flashspeicher 100 eingegebenen Cachelesebefehl
ausgeführt.
Wenn der Host 300 den Cachelesebefehl in den NAND-Flashspeicher 100 eingibt,
gibt die Steuerlogikschaltung 140 ein Freigabesignal EN
aus.
-
Der
Host 300 gibt die Befehls- und Adresseninformation über das
Register 150 in den NAND-Flashspeicher 100 ein.
Die Befehls- und Adresseninformation umfasst typischerweise eine Blockadresse,
eine Seitenadresse, Pufferauswahlinformation und Lese-/Schreib-/Löschbefehle
für den nichtflüchtigen
Speicherkern 110. Die Kopierschaltung 160 kopiert
im Register 150 gespeicherte Daten in Reaktion auf das
Freigabesignal EN in das Register 141.
-
2 zeigt
eine mögliche
Realisierung des nichtflüchtigen
Speicherkerns 110. Unter Bezugnahme auf 2 umfasst
der nichtflüchtige
Speicherkern 110 das Speicherzellenfeld 210, welches
eine Mehrzahl von nicht dargestellten NAND-Ketten umfasst. Jede
der NAND-Ketten umfasst einen Kettenauswahltransistor, einen Masseauswahltransistor und
Speicherzellentransistoren, die zwischen dem Ketten- und Masseauswahltransistor
eingeschleift sind. Die Transistoren der entsprechenden NAND-Ketten
werden von einer Zeilendecoderschaltung 230 basierend auf
einem Betriebsmodus des nichtflüchtigen
Speicherkerns 110 gesteuert. Zusätzlich sind die NAND-Ketten
elektrisch miteinander verbunden.
-
Zudem
umfasst der nichtflüchtige
Speicherkern 110 eine Mehrzahl von Bitleitungen, welche
in Bitleitungspaaren angeordnet sind. Bitleitungspaare werden in
dieser Figur beispielsweise mit „BLie” und „BLio” bezeichnet, wobei „i” im Bereich
von 0 bis „n” variierbar
ist, mit „n” als einer
natürlichen
Zahl. Der Seitenpuffer 220 umfasst eine Mehrzahl von Seitenpuffereinheiten 220_0 bis 220_n,
welche jeweils mit einem korrespondierenden Bitleitungspaar verbunden
sind. Der interne Schaltungsaufbau der Seitenpuffereinheiten 220_0 bis 220_n wird
anhand der Seitenpuffereinheit 220_0 beschrieben. Die verbleibenden
Seitenpuffereinheiten 220_1 bis 220_n sind analog
zur Seitenpuffereinheit 220_0 aufgebaut.
-
Die
Seitenpuffereinheit 220_0 umfasst einen Zwischenspeicher 221,
NMOS-Transistoren TR1 bis TR7 und einen PMOS-Transistor TR8. Die
Seitenpuffereinheit 220_0 wirkt als Register zum Speichern von
in das Speicherzellenfeld 210 zu programmierenden Daten
oder von daraus zu lesenden Daten. Die Transistoren TR1 und TR2
werden verwendet, um die Bitleitungen BLie und BLio während einer
Bitleitungsrücksetzperiode
eines Lesevorgangs auf Masse zurückzusetzen
und um eine nicht ausgewählte
Bitleitung während
einer anderen Periode des Lesevorgangs auf Masse zu setzen. Die
Transistoren TR3 und TR4 werden verwendet, um eine ausgewählte Bitleitung
mit einem Knoten ND1 elektrisch zu verbinden und um die nicht ausgewählte Bitleitung vom
Knoten ND1 zu isolieren. Der PMOS-Transistor TR8 wird verwendet,
um den Knoten ND1 zu laden, und NMOS-Transistoren TR6 und TR7 werden
verwendet, um einen logischen Zustand des Zwischenspeichers 221 basierend
auf einem logischen Zustand des Knotens ND1 zu steuern.
-
Eine
Spaltengatterschaltung 240 wählt in Reaktion auf korrespondierende
Auswahlsignale YA0 bis YAn und YB eines Spaltendecoders 250 aus den
Seitenpuffereinheiten 220_0 bis 220_n aus. Die Spaltengatterschaltung 240 verbindet
ausgewählte Seitenpuffereinheiten
elektrisch mit einem Datenbus DB. In 2 verbindet
die Spaltengatterschaltung 240 einen einzelnen Datenbus
DB mit den Seitenpuffereinheiten 220_0 bis 220_n.
Es können
jedoch alternativ auch mehrere Datenbusse DB über die Spaltengatterschaltung 240 mit
den Seitenpuffereinheiten 220_0 bis 220_n verbunden
werden. Eine Lade- und Entladeschaltung 260 lädt den Datenbus
DB in Reaktion auf ein Steuersignal PRECHG auf eine Versorgungsspannung
auf und entlädt
den Datenbus DB in Reaktion auf ein Steuersignal DISCHG auf Masse.
Die in 2 dargestellten Elemente 210 bis 260 werden
von der Steuerlogikschaltung 140 gesteuert.
-
Dem
Fachmann ist bekannt, dass die Konfiguration des nichtflüchtigen
Speicherkerns
110 auf verschiedene Arten variiert werden
kann. So wird beispielsweise in der
US-Patentschrift
US 6.671.204 ein anderes nichtflüchtiges Speicherbauelement
offenbart.
-
3 veranschaulicht
in einem Signalform-Zeitablaufdiagramm einen Lesevorgang des nichtflüchtigen
Speicherkerns 110 gemäß 2.
Der Lesevorgang umfasst eine Bitleitungsrücksetzperiode T1, eine Bitleitungsvorladeperiode
T2, eine Bitleitungsentwicklungsperiode T3, eine Zwischenspeicherrücksetzperiode
T4 und eine Abtastperiode T5. Die Seitenpuffereinheiten 220_0 bis 220_n werden alle
auf die gleiche Weise von der Steuerlogikschaltung 140 gesteuert.
Entsprechend wird zur Vermeidung von Wiederholungen nur die Funktionsweise der
Seitenpuffereinheit 220_0 beschrieben.
-
In
der nachfolgenden Beschreibung wird angenommen, dass eine mit der
Seitenpuffereinheit 220_0 verbundene Bitleitung BL0e ausgewählt ist und
eine mit der Seitenpuffereinheit 220_0 verbundene Bitleitung
BL0o nicht ausgewählt
ist. Zusätzlich wird
eine Spannung von 0 V während
der Perioden T1 bis T5 an ausgewählte
Wortleitungen angelegt und eine Lesespannung Vread wird während der
Perioden T2 bis T4 an eine Kettenauswahlleitung SSL, an eine Masseauswahlleitung
GSL und an nicht ausgewählte
Wortleitungen angelegt.
-
Während der
Bitleitungsrücksetzperiode
T1 werden Steuersignale LVBLe, LVBLo, LBLSHFe, LBLSHFo und LPLOAD
beispielsweise durch Setzen auf einen hohen logischen Pegel aktiviert.
Sind die Steuersignale LVBLe, LVBLo, LBLSHFe und LBLSHFo aktiviert,
dann werden die Bitleitungen BL0e und BL0o elektrisch mit einer
Versorgungsleitung VIRPWR verbunden, welche eine Massespannung von beispielsweise
0 V aufweist. Dadurch werden die Bitleitungen BL0e und BL0o auf
Masse zurückgesetzt. Insbesondere
wird das Steuersignal LBLSLT während der
Bitleitungsrücksetzperiode
T1 auf einem niedrigen logischen Pegel gehalten, um den Zwischenspeicher 221 zurückzusetzen.
-
Nach
dem Zurücksetzen
der Bitleitungen BL0e und BL0o wird die Bitleitung BL0e unter Verwendung
einer vorbestimmten Vorladespannung von z. B. 1,2 V während der
Bitleitungsvorladeperiode T2 vorgeladen. Insbesondere werden die
Steuersignale LVBLe und LBLSHF0 beispielsweise durch Setzen auf
einen niedrigen logischen Pegel deaktiviert, die Bitleitung BL0e
wird elektrisch von der Versorgungsleitung VIRPWR isoliert und die
Bitleitung BL0o wird elektrisch vom Knoten ND1 isoliert. Das Steuersignal LVBL0
wird während
der Bitleitungsvorladeperiode T2 auf einem hohen logischen Pegel
gehalten, wodurch die Bitleitung BL0o elektrisch mit der Versorgungsleitung
VIRPWR verbunden ist, welche die Massespannung aufweist. Hierbei
ist das Steuersignal LPLOAD deaktiviert, um den PMOS-Transistor TR8
leitend zu schalten. Daraus resultiert, dass der Transistor TR8
der Bitleitung BL0e über
den NMOS-Transistor TR3 Strom zuführt. Das Steuersignal LBLSHFe
nimmt eine Spannung von 2,0 V an und die Bitleitung BL0e wird auf
eine Spannung von 2,0 V-Vth vorgeladen, wobei Vth einer Schwellwertspannung
des Transistors TR3 entspricht.
-
Während der
Bitleitungsentwicklungsperiode T3 wird der Spannungspegel der Bitleitung
BL0e basierend auf einem Zustand, d. h. einem programmierten oder
einem gelöschten
Zustand, einer korrespondierenden ausgewählten Speicherzelle auf der
Vorladespannung gehalten oder auf Masse verändert. Insbesondere wird das
Steuersignal LBLSHFe deaktiviert, um den NMOS-Transistor TR3 sperrend
zu schalten, wodurch die Bitleitung BL0e vom Knoten ND1 elektrisch
isoliert wird. Entsprechend beginnt der Spannungspegel der Bitleitung
BL0e auf Masse entladen zu werden, wenn die ausgewählte Speicherzelle
in einem gelöschten
Zustand ist, d. h. in einem An-Zustand. Andererseits wird die Bitleitung BL0e
auf der Vorladespannung gehalten, wenn die ausgewählte Spei cherzelle
in einem programmierten Zustand, d. h. in einem Aus-Zustand ist.
-
Die
Perioden T1 bis T3 bilden im Wesentlichen eine Zeitspanne, während der
in der ausgewählten
Speicherzelle gespeicherte Daten auf einer ausgewählten Bitleitung
erscheinen. Entsprechend werden die Perioden T1 bis T3 zusammen
als Bitleitungssetzperiode bezeichnet.
-
Nach
dem Abschluss der Bitleitungssetzperiode wird der Zwischenspeicher 221 während der
Zwischenspeicherrücksetzperiode
T4 zurückgesetzt. Der
Zwischenspeicher 221 wird dadurch zurückgesetzt, dass ein Knoten
ND2 elektrisch über
die Spaltengatterschaltung 240 mit dem Datenbus DB verbunden
wird. Wie aus 3 ersichtlich ist, werden die
an die Spaltengatterschaltung 240 angelegten Auswahlsignale
YA0 bis YAn und YB während
der Zwischenspeicherrücksetzperiode
T4 alle aktiviert. Das Steuersignal DISCHG ist aktiviert, so dass
der Datenbus DB die Massespannung annimmt. Daraus resultiert, dass
der Knoten ND2 über
die Spaltengatterschaltung 240 elektrisch mit dem Datenbus
DB verbunden ist, während
der Datenbus DB über
einen NMOS-Transistor TR14 der Lade- und Entladeschaltung 260 mit
Masse verbunden ist, wodurch der Zwischenspeicher 221 zurückgesetzt
wird.
-
Während der
Abtastperiode T5 werden auf der Bitleitung BL0e erscheinende Zellendaten
im Zwischenspeicher 221 gespeichert. Um die auf der Bitleitung
BL0e erscheinenden Zellendaten im Zwischenspeicher 221 zu
speichern, wird das Steuersignal LPLOAD aktiviert und das Steuersignal
LBLSHFe nimmt eine Spannung von ungefähr 1,2 V an, um den Transistor
TR3 leitend zu schalten. Wenn die mit der Bitleitung BL0e verbundene
Speicherzelle im An-Zustand ist, wird der Knoten ND1 über die
Speicherzelle auf Masse entladen. Andererseits wird, wenn die mit der
Bitleitung BL0e verbundene Speicherzelle im Aus-Zustand ist, der
Knoten ND1 auf der Versorgungsspannung gehalten.
-
Wenn
der Knoten ND1 auf Masse entladen wird, ist der Transistor TR6 sperrend
geschaltet, und wenn der Knoten ND1 auf der Versorgungsspannung gehalten
wird, ist der Transistor TR6 leitend geschaltet. Ein Steuersignal
ICH wird als Impuls während
der Abtastperiode T5 aktiviert und schaltet den Transistor TR7 leitend.
Entsprechend wird ein Knoten ND3 des Zwischenspeichers 221 über die
Transistoren TR6 und TR7 mit Masse verbunden, wenn der Transistor TR6
leitend geschaltet ist. Andererseits wird der Knoten ND3 auf einem
hohen logischen Pegel gehalten, wenn der Transistor TR6 sperrend
geschaltet ist.
-
Bei
einem Cachelesevorgang des NAND-Flashspeichers 100 werden
in den Zwischenspeichern 221 der Seitenpuffereinheiten 220_0 bis 220_n gespeicherte
Daten während
der Bitleitungssetzperiode T1 bis T3 sequentiell zur Spaltengatterschaltung 240 übertragen.
Die Daten können
zwischen den Seitenpuffereinheiten 220_0 bis 220_n und
der Spaltengatterschaltung 240 unter Verwendung einer Vielzahl
von verschiedenen Dateneingabe-/Datenausgabekonfigurationen übertragen
werden. So können
beispielsweise in den Zwischenspeichern 221 der Seitenpuffereinheiten 220_0 bis 220_n gespeicherte
Daten während
der Bitleitungssetzperiode T1 bis T3 zum Datenbus DB übertragen
werden. Dies kann dadurch umgesetzt werden, dass die Auswahlsignale
YA0 bis YAn sequentiell aktiviert werden, während das Auswahlsignal YB
auf einem hohen logischen Pegel gehalten wird, wie aus 3 ersichtlich
ist. Zudem kann der Datenbus DB unter Verwendung der Versorgungsspannung
in Intervallen zwischen der Aktivierung der Auswahlsignale YA0 bis YAn
geladen werden. Dies kann durch Aktivieren eines PMOS-Transistors
TR13 in der Lade- und Entladeschaltung 260 umgesetzt werden.
-
Wie
oben ausgeführt,
werden in den Seitenpuffereinheiten 220_0 bis 220_n gespeicherte
Daten während
der Bitleitungssetzperiode T1 bis T3 zum Datenbus DB übertragen.
Die zum Datenbus DB übertragenen
Daten werden an einen der beiden Pufferspeicher 120 und 130 ausgegeben.
Eine erforderliche Zeitspanne zum Übertragen von Daten vom nichtflüchtigen
Speicherzellenfeld 210 zum Seitenpuffer 220 wird
als Datenlesezeit tR bezeichnet. Eine erforderliche Zeitspanne zum Übertragen
von Daten zwischen dem Seitenpuffer 220 und dem Pufferspeicher 120 oder 130 wird
als Pufferübertragungszeit
tT bezeichnet. Eine erforderliche Zeitspanne zum Übertragen
von Daten zwischen dem Pufferspeicher 120 oder 130 und
dem Host 300 wird als Hostübertragungszeit tH bezeichnet.
-
Die 4A und 4B zeigen
einen Datenübertragungspfad
zur Verwendung für
einen Cachelesevorgang. Unter Bezugnahme auf 4A werden Daten
zuerst während
der Datenlesezeit tR vom nichtflüchtigen
Speicherkern 110 zum Seitenpuffer 220 übertragen.
Die Daten werden dann während
der Pufferübertragungszeit
tT vom Seitenpuffer 220 zum ersten Pufferspeicher 120 übertragen.
Die Zeitspannen tR und tT treten beide während der Bitleitungssetzperiode
T1 bis T3 auf. Die Daten werden dann anschließend während der Hostübertragungszeit
tH innerhalb der Gesamtperiode T1 bis T5 des Lesevorgangs vom zweiten
Pufferspeicher 130 zum Host 300 übertragen.
Die Übertragung
der Daten zwischen dem nichtflüchtigen
Speicherzellenfeld 210 und dem Host 300 erfolgt
gesteuert von der Steuerlogikschaltung 140. Der Vorgang
zum Lesen der Daten aus dem nichtflüchtigen Speicherzellenfeld 210 und
die Übertragung
der Daten zum Host 300 wird als „Cachelesevorgang” bezeichnet.
-
Unter
Bezugnahme auf 4B werden in gleicher Weise
zuerst Daten während
der Datenlesezeit tR vom nichtflüchtigen
Speicherkern 110 zum Seitenpuffer 220 übertragen.
Die Daten werden dann während
der Pufferübertragungszeit
tT vom Seitenpuffer 220 zum zweiten Pufferspeicher 130 übertragen.
Die Zeitspannen tR und tT treten beide während der Bitleitungssetzperiode
T1 bis T3 auf. Die Daten werden dann anschließend während der Hostübertragungszeit
tH innerhalb der Gesamtperiode T1 bis T5 des Lesevorgangs vom ersten
Pufferspeicher 120 zum Host 300 übertragen.
Die Übertragung
der Daten zwischen dem nichtflüchtigen
Speicherzellenfeld 210 und dem Host 300 erfolgt
gesteuert von der Steuerlogikschaltung 140. Wenn aufeinander
folgende Lesevorgänge
ausgeführt
werden, wird die Hostübertragungszeit
tH von der Datenlesezeit tR überdeckt.
Analog kann die Datenlesezeit tR von der Hostübertragungszeit tH überdeckt
werden.
-
5 veranschaulicht
in einem Signalform-Zeitablaufdiagramm einen Cachelesevorgang des
Speichersystems 1000 gemäß einer Ausführungsform
der Erfindung. Während
des Cachelesevorgangs werden vier Datenseiten vom NAND-Flashspeicher 100 zum
Host 300 übertragen.
Um jede Seite zu lesen, werden eine Adresse und ein Befehl für jede Seite
im Register 150 gespeichert. Die im Register 150 gespeicherte
Adresse und der dort gespeicherte Befehl werden über die Kopierschaltung 160 in
das Register 141 der Steuerlogikschaltung 140 übertragen.
-
Unter
Bezugnahme auf 5 wird ein Interruptsignal INT
auf einem hohen logischen Pegel gehalten, während Seitenadressen zum Auswählen einer
ersten und einer zweiten Seite zusammen mit der Blockadresse und
der Pufferauswahlinformation gesteuert vom Host 300 im
Register 150 gespeichert werden. Nach dem Speichern der
Adresseninformation im Register 150 speichert der Host 300 einen
Cachelesebefehl im Register 150.
-
Nach
dem Speichern des Cachelesebefehls im Register 150 bewirkt
die Steuerlogikschaltung 140, dass das Interruptsignal
INT vom hohen logischen Pegel auf den niedrigen logischen Pegel wechselt.
Gleichzeitig aktiviert die Steuerlogikschaltung 140 in
Reaktion auf den Cachelesebe fehl ein Freigabesignal EN. In anderen
Worten ausgedrückt, die
Steuerlogikschaltung 140 detektiert den Cachelesebefehl
und aktiviert basierend auf der Detektion das Freigabesignal EN.
-
Die
Kopierschaltung 160 kopiert die im Register 150 gespeicherte
Adressen- und Befehlsinformation in Reaktion auf die Aktivierung
des Freigabesignals EN in das Register 141 der Steuerlogikschaltung 140.
Dann steuert die Steuerlogikschaltung 140 den nichtflüchtigen
Speicherkern 110 und die Pufferspeicher 120 und 130,
um basierend auf der im Register 141 gespeicherten Adressen-
und Befehlsinformation den Cachelesevorgang auszuführen.
-
Ein
Speicherblock des Speicherzellenfelds 210 wird vom Zeilendecoder 230 ausgewählt und
die erste Seite im ausgewählten
Speicherblock wird ebenfalls vom Zeilendecoder 230 ausgewählt. Für Beschreibungszwecke
sei angenommen, dass von den Bitleitungspaaren BLie und BLio die
geradzahligen Bitleitungen BLie ausgewählt werden. Während der
Bitleitungsrücksetzperiode
T1 werden alle Bitleitungen BLie und BLio auf Masse zurückgesetzt. Dann
werden während
der Bitleitungsvorladeperiode T2 die ausgewählten Bitleitungen BLie auf
die Vorladespannung vorgeladen. Während der Bitleitungsentwicklungsperiode
T3 erscheinen die in Speicherzellen der ausgewählten Seite gespeicherten Daten auf
den ausgewählten
Bitleitungen BLie.
-
Während der
Rücksetzperiode
T4 werden die Zwischenspeicher 221 der Seitenpuffereinheiten 220_0 bis 220_n dadurch
auf Masse zurückgesetzt, dass
sie über
die Spaltengatterschaltung 240 elektrisch mit dem Datenbus
DB verbunden werden. Anschließend
werden während
der Abtastperiode T5 die auf den ausgewählten Bitleitungen BLie erscheinenden
Daten in die korrespondierenden Zwischenspeicher 221 übertragen.
Während
der Perioden T1 bis T3 werden in den Zwischenspeichern 221 gespeicherte
Daten über
die Spaltengatterschaltung 240 zum Datenbus DB übertragen
und die zum Datenbus DB übertragenen
Daten werden gesteuert von der Steuerlogikschaltung 140 im
zweiten Pufferspeicher 130 gespeichert. Hierbei sind die
im zweiten Pufferspeicher 130 gespeicherten Daten ungültig.
-
Die
im Zwischenspeicher 221 gespeicherten Daten werden während einer
Pufferübertragungszeit tT0
zum zweiten Pufferspeicher 130 übertragen. Ist der Lesevorgang
für die
erste Seite abgeschlossen, d. h. eine erste Datenlesezeit tR1 abgelaufen,
dann wird der nichtflüchtige
Speicherkern 110 angesteuert, um Daten einer zweiten Seite
korrespondierend mit einer im Register 141 gespeicherten
Gatteradresse zu lesen. Wie aus 5 ersichtlich
ist, werden Daten der zweiten Seite gesteuert von der Steuerlogikschaltung 140 ohne
Zurücksetzen
des Registers 150 automatisch im Register 141 gespeichert.
Analog werden in den Zwischenspeichern 221 gespeicherte Daten
während
einer zweiten Datenlesezeit tR2 über die
Spaltengatterschaltung 240 zum Datenbus DB übertragen.
Die zum Datenbus DB übertragenen
Daten werden gesteuert von der Steuerlogikschaltung 140 im
ersten Pufferspeicher 120 gespeichert und sind in 5 mit
S1 bezeichnet.
-
Während die
erste und zweite Seite in dem zweiten bzw. ersten Pufferspeicher 130 und 120 gespeichert
werden, speichert der Host 300 eine dritte Seitenadresse
im Register 150. Die dritte Seitenadresse wird typischerweise
während
einer Periode mit deaktiviertem Interruptsignal INT im Register 150 gespeichert.
-
Sobald
die Daten in den ersten Pufferspeicher 120 nach der Zeitspanne
tT1 geladen sind, aktiviert die Steuerlogikschaltung 140 das
Interruptsignal INT. Wenn das Interruptsignal INT aktiviert ist,
gibt der Host 300 einen dritten Cachelesebefehl in das Register 150 ein.
Gleichzeitig werden die im ersten Pufferspeicher 120 gespeicherten
Daten während
einer ersten Hostübertragungszeit
tH1 zum Host 300 übertragen.
Wie aus 5 ersichtlich ist, gibt der Host 300 den
ersten Cachelesebefehl an den NAND-Flashspeicher 100 aus
und empfängt
nach einer Zeitspanne von ungefähr
30 μs Daten.
-
Nachdem
der Host 300 den dritten Cachelesebefehl im Register 150 gespeichert
hat, aktiviert die Steuerlogikschaltung 140 das Freigabesignal
EN. Die Kopierschaltung 160 kopiert in Reaktion auf die Aktivierung
des Freigabesignals EN die im Register 150 gespeicherte
Adressen- und Befehlsinformation, d. h. eine dritte Seitenadresse
und einen Cachelesebefehl, in das Register 141. Der Lesevorgang,
welcher auf dem dritten Cachelesebefehl basiert, ist identisch zu
den Lesevorgängen,
welche auf dem ersten und zweiten Cachelesebefehl basieren.
-
Wie
aus 5 ersichtlich ist, speichert der Host 300 während eines
Datenlesevorgangs eine vierte Seitenadresse im Register 150.
Während
der dritten Datenlesezeit tR3 werden während der zweiten Datenlesezeit
tR2 aus dem nichtflüchtigen
Speicherkern 110 gelesene Daten, die in 5 mit
S2 bezeichnet sind, während
einer zweiten Pufferübertragungszeit
tT2 zum zweiten Pufferspeicher 130 übertragen. Nach der Übertragung
der Daten zum zweiten Pufferspeicher 130 während der
zweiten Pufferübertragungszeit
tT2 aktiviert die Steuerlogikschaltung 140 das Interruptsignal
INT. Nach der Aktivierung des Interruptsignals INT speichert der
Host einen vierten Cachelesebefehl im Register 150. Zusätzlich empfängt der
Host 300 während
einer zweiten Hostübertragungszeit
tH2 im zweiten Pufferspeicher 130 gespeicherte Daten.
-
Nachdem
der Host 300 den vierten Cachelesebefehl im Register 150 gespeichert
hat, aktiviert die Steuerlogikschaltung 140 das Freigabesignal
EN. Die Kopierschaltung 160 kopiert in Reaktion auf die Aktivierung
des Freigabesignals EN die im Register 150 gespeicherte
Adressen- und Befehlsinformation, d.
h. die vierte Seitenadresse und den Cachelesebefehl, in das Register 141.
Der Lesevorgang, welcher auf dem vier ten Cachelesebefehl basiert,
ist identisch zu den Lesevorgängen,
welche auf dem ersten, zweiten und dritten Cachelesebefehl basieren.
-
Schließlich speichert
der Host 300 einen Dummy-Cachelesebefehl im Register 150,
um Daten zu übertragen,
welche während
des vierten Datenlesevorgangs in einen Pufferspeicher ausgelesen
wurden. Wenn der Dummy-Cachelesebefehl im Register 150 gespeichert
ist, aktiviert die Steuerlogikschaltung 140 das Freigabesignal
EN. Die Kopierschaltung 160 kopiert in Reaktion auf die
Aktivierung des Freigabesignals EN den im Register 150 gespeicherten
Dummy-Cachelesebefehl in das Register 141. Wann immer der
Dummy-Cachelesebefehl im Register 141 gespeichert ist,
steuert die Steuerlogikschaltung 140 den nichtflüchtigen
Speicherkern 110 an, um die in den Zwischenspeichern 221_0 bis 221_n gespeicherten
Daten, d. h. die während
des vierten Lesevorgangs ausgelesenen Daten, ohne Ausführung eines
Lesevorgangs zum zweiten Pufferspeicher 130 zu übertragen.
Nach der Übertragung
der Daten in den zweiten Pufferspeicher 130, d. h. nach
einer Zeitspanne tT4, aktiviert die Steuerlogikschaltung 140 das
Interruptsignal INT. Die im zweiten Pufferspeicher 130 gespeicherten
Daten werden dann während einer
Hostübertragungszeit
tH4 zum Host 300 übertragen.
-
Alternativ
kann auch ein anderer Befehl anstatt des Dummy-Cachelesebefehls dazu verwendet werden,
eine letzte Seite der Daten zu lesen.
-
Wie
oben ausgeführt
ist, wird eine als nächstes
auszuwählende
Seitenadresse während
einer Periode im Register 150 gespeichert, in welcher das Interruptsignal
INT auf einem niedrigen Pegel gehalten wird. Entsprechend wird eine
als nächstes
auszuwählende
Seitenadresse gemeinsam mit einer Blockadresse und einer Pufferauswahlinformation
zwischen aufeinander folgenden Hostübertragungszeiten tH im Register 150 gespeichert.
Wenn kein anschließender
Hostübertragungsvorgang ausgeführt wird,
kann eine als nächstes
auszuwählende
Seitenadresse während
einer unterbrochenen Hostübertragungsperiode
im Register 150 gespeichert werden.
-
6 veranschaulicht
im Zeitablaufdiagramm einen normalen Lesevorgang des Speichersystems 1000 gemäß einer
Ausführungsform
der Erfindung. Der in 6 dargestellte Lesevorgang wird verwendet,
um Daten von einer einzelnen Seite zu lesen. Wie aus 6 ersichtlich
ist, wird gesteuert vom Host 300 eine Seitenadresse zum
Auswählen
einer beliebigen Seite im Register 150 des NAND-Flashspeichers 100 gespeichert,
während
das Interruptsignal INT aktiviert ist.
-
Nach
dem Speichern der Adresseninformation im Register 150 speichert
der Host 300 einen Lesebefehl im Register 150.
Nach dem Speichern des Lesebefehls im Register 150 deaktiviert
die Steuerlogikschaltung 140 das Interruptsignal INT. Gleichzeitig aktiviert
die Steuerlogikschaltung 140 in Reaktion auf einen eingegebenen
Lesebefehl das Freigabesignal EN. Die Kopierschaltung 160 kopiert
die im Register 150 gespeicherte Adressen- und Befehlsinformation in
Reaktion auf die Aktivierung des Freigabesignals EN in das Register 141.
Entsprechend der im Register 141 gespeicherten Adressen-
und Befehlsinformation wird während
einer ersten Datenlesezeit tR1 gesteuert von der Steuerlogikschaltung 140 ein
Lesevorgang mit dem nichtflüchtigen
Speicherkern 110 ausgeführt.
-
Die
aus dem nichtflüchtigen
Speicherkern 110 gelesenen Daten werden gesteuert von der
Steuerlogikschaltung 140 während einer ersten Pufferübertragungszeit
tT1 zu einem Pufferspeicher, z. B. zum ersten Pufferspeicher 120, übertragen.
Nach der Übertragung
der Daten in den Pufferspeicher aktiviert die Steuerlogikschaltung 140 das
Interruptsignal INT. Der Host 300 empfängt in Reaktion auf die Aktivierung
des Interruptsignals INT die im Pufferspeicher gespeicherten Daten.
Wie aus 6 ersichtlich ist, gibt der
Host 300 einen Lesebefehl an den NAND-Flashspeicher 100 aus und empfängt nach
einer Zeitspanne von ungefähr
30 μs Daten
vom NAND-Flashspeicher 100.
-
Wie
aus den 5 und 6 ersichtlich
ist, ist die für
den Host 300 erforderliche Zeitspanne zum Ausgeben eines
Lesebefehls bzw. eines Cachelesebefehls ungefähr gleich der Zeitspanne, welche
für den
Host 300 erforderlich ist, um erste Daten zu empfangen.
In anderen Worten ausgedrückt,
der Cachelesevorgang und der normale Lesevorgang werden unter Verwendung
des gleichen Leseschemas von der Steuerlogikschaltung 140 gesteuert.