-
Querverweis auf verwandte Anmeldung
-
Diese Anmeldung beansprucht die Priorität der am 20. September 2019 beim koreanischen Amt für geistiges Eigentum (KIPO) eingereichten koreanischen Patentanmeldung
KR 10-2019-0116003 , deren gesamter Inhalt hiermit durch Verweis in den vorliegenden Text aufgenommen wird.
-
Hintergrund
-
Technisches Gebiet
-
Beispielhafte Ausführungsformen betreffen allgemein Halbleiterspeichervorrichtungen und insbesondere Betriebsverfahren für nichtflüchtige Speichervorrichtungen, nichtflüchtige Speichervorrichtungen, welche diese durchführen, sowie Betriebsverfahren für Speichersysteme, die die Verfahren verwenden.
-
Beschreibung des Stands der Technik
-
Halbleiterspeichervorrichtungen können abhängig davon, ob sie gespeicherte Daten behalten, wenn sie von einer Leistungsversorgung getrennt werden, grob in zwei Kategorien eingeteilt werden. Diese Kategorien umfassen flüchtige Speichervorrichtungen, die gespeicherte Daten verlieren, wenn sie von der Leistungsversorgung getrennt werden, und nichtflüchtige Speichervorrichtungen, die gespeicherte Daten behalten, wenn sie von einer Leistung getrennt werden. Die flüchtigen Speichervorrichtungen können Lese- und Schreibvorgänge mit hoher Geschwindigkeit durchführen, während Inhalte, die darauf gespeichert sind, bei einer Abschaltung verloren gehen können. Die nichtflüchtigen Speichervorrichtungen können Inhalte, die darauf gespeichert sind, selbst bei einer Abschaltung behalten. Die nichtflüchtigen Speichervorrichtungen können verwendet werden, um Inhalte zu speichern, die unabhängig davon behalten werden müssen, ob sie mit Leistung versorgt werden. Neuerdings werden Halbleiterspeichervorrichtungen mit Speicherzellen, die dreidimensional gestapelt sind, erforscht, um eine Integrität der Halbleiterspeichervorrichtungen zu verbessern.
-
Kurzfassung
-
Mindestens eine beispielhafte Ausführungsform der vorliegenden Offenbarung schafft ein Betriebsverfahren für eine nichtflüchtige Speichervorrichtung, die fähig ist, einen Firmware-Overheadin offenen Blöcken sowie eine Leistungsbeeinträchtigung zu reduzieren oder auf ein Minimum zu beschränken.
-
Mindestens eine beispielhafte Ausführungsform der vorliegenden Offenbarung schafft eine nichtflüchtige Speichervorrichtung, die das Verfahren zum Betreiben der nichtflüchtigen Speichervorrichtung durchführt.
-
Mindestens eine beispielhafte Ausführungsform der vorliegenden Offenbarung schafft ein Verfahren zum Betreiben eines Speichersystems, welches das Betriebsverfahren der nichtflüchtigen Speichervorrichtung verwendet.
-
Gemäß beispielhaften Ausführungsformen umfasst die nichtflüchtige Speichervorrichtung in einem Verfahren zum Betreiben einer nichtflüchtigen Speichervorrichtung einen Speicherblock, der eine Mehrzahl von Speicherzellen umfasst und mit einer Mehrzahl von Wortleitungen verbunden ist. Es wird ein Datenschreibbefehl empfangen. Basierend auf dem Datenschreibbefehl wird ein erster Programmiervorgang bei einigen Wortleitungen von der Mehrzahl von Wortleitungen durchgeführt, die mit dem Speicherblock verbunden sind. Mindestens eine der einigen Wortleitungen, bei denen der erste Programmiervorgang durchgeführt wird, wird als nicht gekoppelte Wortleitung erfasst. Ohne den Datenschreibbefehl wird ein zweiter Programmiervorgang bei einer offenen Wortleitung durchgeführt, bei der der erste Programmiervorgang nicht durchgeführt wird und die zu der nicht gekoppelten Wortleitung benachbart ist.
-
Gemäß beispielhaften Ausführungsformen umfasst eine nichtflüchtige Speichervorrichtung einen Speicherblock, einen Zeilen-Decoder und eine Steuerschaltung. Der Speicherblock umfasst eine Mehrzahl an Speicherzellen und ist mit einer Mehrzahl von Wortleitungen verbunden. Der Zeilen-Decoder wählt die Mehrzahl von Speicherzellen, die in dem Speicherblock umfasst sind, auf einer Wortleitung-pro-Wortleitung-Basis aus. Die Steuerschaltung empfängt einen Datenschreibbefehl, führt einen ersten Programmiervorgang bei einigen Wortleitungen von der Mehrzahl von Wortleitungen, die mit dem Speicherblock verbunden sind, basierend auf dem Datenschreibbefehl durch, erfasst mindestens eine der einigen Wortleitungen, bei denen der erste Programmiervorgang durchgeführt wird, als nicht gekoppelte Wortleitung, und führt einen zweiten Programmiervorgang bei einer offenen Wortleitung, bei der der erste Programmiervorgang nicht durchgeführt wird und die zu der nichtgekoppelten Wortleitung benachbart ist, ohne den Datenschreibbefehl durch.
-
Gemäß beispielhaften Ausführungsformen umfasst in einem Verfahren zum Betreiben eines Speichersystems das Speichersystem einen Speicher-Controller und eine nichtflüchtige Speichervorrichtung, die von dem Speicher-Controller gesteuert wird. Die nichtflüchtige Speichervorrichtung umfasst einen Speicherblock, der eine Mehrzahl von Speicherzellen umfasst und der mit einer ersten bis einer N-ten Wortleitung verbunden ist, wobei N eine natürliche Zahl größer gleich zwei ist. Der Speicher-Controller überträgt einen Datenschreibbefehl, eine Schreibadresse und Zieldaten, die in die nichtflüchtige Speichervorrichtung geschrieben werden sollen. Die nichtflüchtige Speichervorrichtung führt einen normalen Programmiervorgang bei Speicherzellen durch, die mit einer ersten bis X-ten Wortleitung von den mit dem Speicherblock verbundenen ersten bis N-ten Wortleitungen verbunden ist, basierend auf dem Datenschreibbefehl, die Schreibadresse und die Zieldaten, wobei X eine natürliche Zahl größer gleich eins und kleiner gleich (N-1) ist. Die nichtflüchtige Speichervorrichtung erfasst die X-te Wortleitung von der ersten bis zur N-ten Wortleitung, bei denen der normale Programmiervorgang durchgeführt wird, als nicht gekoppelte Wortleitung. Die X-te Wortleitung ist eine zuletzt programmierte Wortleitung. Die nichtflüchtige Speichervorrichtung führt einen Dummy-Programmiervorgang bei Speicherzellen durch, die mit einer (X + 1 )-ten Wortleitung verbunden sind, bei der der normale Programmiervorgang nicht durchgeführt wird und die zu der X-ten Wortleitung benachbart ist, ohne den Datenschreibbefehl. Der Speicher-Controller überträgt einen Datenlesebefehl und eine Leseadresse, die der Schreibadresse entspricht, an die nichtflüchtige Speichervorrichtung. Die nichtflüchtige Speichervorrichtung führt einen Lesevorgang bei allen Speicherzellen durch, die mit der ersten bis X-ten Wortleitung verbunden sind, bei denen der normale Programmiervorgang durchgeführt wird, basierend auf dem Datenlesebefehl, der Leseadresse und einer Lesespannung mit einem gleichen Pegel. Die nichtflüchtige Speichervorrichtung überträgt die Zieldaten an den Speicher-Controller als Folge des Lesevorgangs.
-
Bei dem Verfahren zum Betreiben der nichtflüchtigen Speichervorrichtung, der nichtflüchtigen Speichervorrichtung und dem Verfahren zum Betreiben des Speichersystems gemäß beispielhaften Ausführungsformen kann, wenn die nicht gekoppelte Wortleitung in dem offenen Block erfasst wird, nachdem der Speicherblock zum offenen Block wird, indem der erste Programmiervorgang (z. B. der normale Programmiervorgang) bei einem Abschnitt des Speicherblocks durchgeführt wird, die nicht gekoppelte Wortleitung in dem offenen Block im Voraus als gekoppelte Wortleitung ausgebildet werden (z. B. dahingehend geändert werden), indem der zweite Programmiervorgang (z. B. der Dummy-Programmiervorgang) ohne den externen Befehl durchgeführt wird. So tritt die Leistungsbeeinträchtigung möglicherweise nicht auf, da der Standard-Lesefehler aufgrund der nicht gekoppelten Wortleitung nicht auftritt und es ist möglicherweise nicht erforderlich, die nicht gekoppelte Wortleitung für alle Lesevorgänge zu berücksichtigen. Entsprechend kann die Komplexität von Firmware reduziert werden, die freien Ressourcen können reserviert werden und der Firmware-Mehraufwand und die Leistungsbeeinträchtigung aufgrund der nicht gekoppelten Wortleitung kann reduziert oder auf ein Minimum beschränkt werden.
-
Figurenliste
-
Veranschaulichende, nicht einschränkende beispielhafte Ausführungsformen sind deutlicher aus der nachfolgenden, detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen nachzuvollziehen.
- 1 ist ein Flussdiagramm, das ein Verfahren zum Betreiben einer nichtflüchtigen Speichervorrichtung gemäß beispielhaften Ausführungsformen darstellt.
- 2 ist ein Blockschaltbild, das eine nichtflüchtige Speichervorrichtung gemäß beispielhaften Ausführungsformen darstellt.
- 3A und 3B sind Schemata, die Beispiele eines Speicherzellenarrays darstellen, das in einer nichtflüchtigen Speichervorrichtung aus 2 umfasst ist.
- 4 ist ein Flussdiagramm, das ein Beispiel für ein Verfahren zum Betreiben einer nichtflüchtigen Speichervorrichtung aus 1 darstellt.
- 5A und 5B sind Diagramme zur Beschreibung eines Verfahrens zum Betreiben einer nichtflüchtigen Speichervorrichtung aus 4.
- 6 und 7 sind Flussdiagramme, die Beispiele eines Durchführens eines zweiten Programmiervorgangs aus 1 darstellen.
- 8A und 8B sind Diagramme zur Beschreibung eines Verfahrens zum Betreiben einer nichtflüchtigen Speichervorrichtung aus 4.
- 9 ist ein Flussdiagramm, das ein anderes Beispiel eines Verfahrens zum Betreiben einer nichtflüchtigen Speichervorrichtung aus 1 darstellt.
- 10A und 10B sind Diagramme zur Beschreibung eines Verfahrens zum Betreiben einer nichtflüchtigen Speichervorrichtung aus 9.
- 11 ist ein Flussdiagramm, das ein Verfahren zum Betreiben einer nichtflüchtigen Speichervorrichtung gemäß beispielhaften Ausführungsformen darstellt.
- 12 und 13 sind Flussdiagramme, die Beispiele für ein Durchführen eines Lesevorgangs aus 11 darstellen.
- 14 ist ein Blockschaltbild, das ein Speichersystem entsprechend beispielhafter Ausführungsformen veranschaulicht.
- 15 ist ein Blockschaltbild, das eine Speichervorrichtung darstellt, die eine nichtflüchtige Speichervorrichtung gemäß beispielhaften Ausführungsformen umfasst.
-
Detaillierte Beschreibung von Ausführungsformen
-
Verschiedene beispielhafte Ausführungsformen werden nun vollständiger unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen Ausführungsformen gezeigt sind. Die vorliegende Offenbarung kann allerdings auf unterschiedliche Art und Weise verkörpert werden und sollte nicht als auf die vorliegend dargelegten Ausführungsformen beschränkt ausgelegt werden. Gleiche Bezugszeichen beziehen sich in der gesamten Anmeldung auf gleiche Elemente.
-
1 ist ein Flussdiagramm, das ein Verfahren zum Betreiben einer nichtflüchtigen Speichervorrichtung gemäß beispielhaften Ausführungsformen darstellt.
-
Bezug nehmend auf 1 umfasst eine nichtflüchtige Speichervorrichtung gemäß beispielhaften Ausführungsformen mindestens einen Speicherblock. Der Speicherblock umfasst eine Mehrzahl an Speicherzellen und ist mit einer Mehrzahl von Wortleitungen verbunden. Konfigurationen der nichtflüchtigen Speichervorrichtung und des Speicherblocks werden unter Bezugnahme auf 2, 3A und 3B beschrieben.
-
In einem Verfahren zum Betreiben der nichtflüchtigen Speichervorrichtung gemäß beispielhaften Ausführungsformen wird ein Datenschreibbefehl empfangen (Vorgang S100). Zum Beispiel kann der Datenschreibbefehl von einem externen Speicher-Controller bereitgestellt werden, und eine Schreibadresse und Daten (z. B. Zieldaten oder Schreibdaten), die geschrieben werden sollen, können mit dem Datenschreibbefehl bereitgestellt werden.
-
Basierend auf dem Datenschreibbefehl, wird ein erster Programmiervorgang bei einigen Wortleitungen von der Mehrzahl von Wortleitungen durchgeführt, die mit dem Speicherblock verbunden sind (Vorgang S200). Zum Beispiel kann der erste Programmiervorgang ein normaler (oder allgemeiner) Programmiervorgang sein. Indem der erste Programmiervorgang durchgeführt wird, können die Zieldaten in einigen Speicherzellen, die mit den einigen Wortleitungen von der Mehrzahl von in dem Speicherblock umfassten Speicherzellen verbunden sind, programmiert (oder gespeichert) werden. Während der erste Programmiervorgang durchgeführt wird, kann der Speicherblock ein offener Block werden, in dem in einigen Regionen Daten gespeichert sind (z. B. haben die einigen Regionen einen Programmierzustand) und in anderen Regionen keine Daten gespeichert sind (z. B. haben die anderen Regionen einen Löschzustand).
-
Mindestens eine der einigen Wortleitungen, bei denen der erste Programmiervorgang durchgeführt wird, wird als nicht gekoppelte Wortleitung erfasst (Vorgang S300). In dem offenen Block können die einigen Wortleitungen, bei denen der erste Programmiervorgang durchgeführt wird, in eine gekoppelte Wortleitung (oder eine normale Wortleitung) und die nicht gekoppelte Wortleitung unterteilt oder klassifiziert werden. Die gekoppelte Wortleitung und die nicht gekoppelte Wortleitung können unterschiedliche Merkmale aufweisen. Zum Beispiel können die gekoppelte Wortleitung und die nicht gekoppelte Wortleitung unterschiedliche Schwellwertspannungsverteilungen und unterschiedliche Lesepegel aufweisen. So kann es wünschenswert oder erforderlich oder notwendig sein, die nicht gekoppelte Wortleitung, die in dem offenen Block umfasst ist, zu verwalten (z. B. zu kompensieren).
-
Ohne den Datenschreibbefehl wird ein zweiter Programmiervorgang bei einer offenen Wortleitung durchgeführt, bei der der erste Programmiervorgang nicht durchgeführt wird und die zu der nicht gekoppelten Wortleitung benachbart ist (Vorgang S400). Zum Beispiel kann der zweite Programmiervorgang ein Dummy-Programmiervorgang sein. Während der zweite Programmiervorgang durchgeführt wird, kann die nicht gekoppelte Wortleitung zu der gekoppelten Wortleitung geändert werden.
-
In einigen beispielhaften Ausführungsformen können Vorgänge S300 und S400 durchgeführt werden, nachdem der erste Programmiervorgang in Vorgang S200 durchgeführt (z. B. beendet, fertig gestellt oder erfolgreich abgeschlossen) wurde. Wie oben beschrieben, kann der zweite Programmiervorgang ohne den Datenschreibbefehl durchgeführt werden und ist möglicherweise nicht in dem ersten Programmiervorgang umfasst oder kann nicht kontinuierlich mit dem ersten Programmiervorgang durchgeführt werden. So kann der zweite Programmiervorgang unabhängig von dem ersten Programmiervorgang durchgeführt werden, nachdem der erste Programmiervorgang durchgeführt wurde.
-
In dem Verfahren zum Betreiben der nichtflüchtigen Speichervorrichtung gemäß beispielhaften Ausführungsformen kann, wenn die nicht gekoppelte Wortleitung in dem offenen Block erfasst wird, nachdem der Speicherblock zum offenen Block wird, indem der erste Programmiervorgang (z. B. der normale Programmiervorgang) bei einem Abschnitt des Speicherblocks durchgeführt wird, die nicht gekoppelte Wortleitung in dem offenen Block im Voraus als gekoppelte Wortleitung ausgebildet werden (z. B. dahingehend geändert werden), indem der zweite Programmiervorgang (z. B. der Dummy-Programmiervorgang) ohne den externen Befehl durchgeführt wird. So tritt die Leistungsbeeinträchtigung möglicherweise nicht auf, da der Standard-Lesefehler aufgrund der nicht gekoppelten Wortleitung nicht auftritt und es ist möglicherweise nicht erforderlich, die nicht gekoppelte Wortleitung für alle Lesevorgänge zu berücksichtigen. Entsprechend kann die Komplexität von Firmware reduziert werden, die freien Ressourcen können reserviert werden und/oder der Firmware-Mehraufwand und die Leistungsbeeinträchtigung aufgrund der nicht gekoppelten Wortleitung kann reduziert oder auf ein Minimum beschränkt werden.
-
2 ist ein Blockschaltbild, das eine nichtflüchtige Speichervorrichtung gemäß beispielhaften Ausführungsformen darstellt.
-
In 2 umfasst eine nichtflüchtige Speichervorrichtung 100 ein Speicherzellenarray 110, einen Zeilen-Decoder 120, eine Seitenpufferschaltung 130, eine Dateneingabe-/-ausgabe(I/O)-Schaltung 140, einen Spannungsgenerator 150 und/oder eine Steuerschaltung 160.
-
Das Speicherzellenarray 110 ist über eine Mehrzahl von Stringauswahlleitungen SSL, eine Mehrzahl von Wortleitungen WL und eine Mehrzahl von Masseauswahlleitungen GSL mit dem Zeilen-Decoder 120 verbunden. Das Speicherzellenarray 110 ist ferner mit einer Seitenpufferschaltung 130 über eine Mehrzahl von Bit-Leitungen BL verbunden.
-
Das Speicherzellenarray 110 umfasst eine Mehrzahl von Speicherzellen (z. B. eine Mehrzahl von nichtflüchtigen Speicherzellen), die mit der Mehrzahl von Wortleitungen WL und der Mehrzahl von Bit-Leitungen BL verbunden sind. Das Speicherzellenarray 110 kann in eine Mehrzahl von Speicherblöcke BLK1, BLK2, ..., BLKz unterteilt sein, von denen jeder Speicherzellen umfasst. Zudem kann jeder der Mehrzahl von Speicherblöcken BLK1, BLK2, ..., BLKz in eine Mehrzahl von Seiten geteilt werden. Wie nachfolgend unter Bezugnahme auf 3A und 3B beschrieben wird, kann die Mehrzahl von Speicherzellen in einer zweidimensionalen (2D) Arraystruktur oder einer dreidimensionalen (3D) vertikalen Arraystruktur angeordnet sein.
-
Die Steuerschaltung 160 empfängt einen Befehl CMD und eine Adresse ADDR von einem Speicher-Controller (z. B. einem Speicher-Controller 600 in 14) und steuert Lösch-, Programmier- und Lesevorgänge der nichtflüchtigen Speichervorrichtung 100 basierend auf dem Befehl CMD und der Adresse ADDR. Ein Löschvorgang kann ein Durchführen einer Sequenz von Löschschleifen umfassen, und ein Programmiervorgang kann ein Durchführen einer Sequenz von Programmierschleifen umfassen. Jede Programmierschleife kann einen Programmiervorgang und einen Programmierverifizierungsvorgang umfassen. Jede Löschschleife kann einen Löschvorgang und einen Löschverifizierungsvorgang umfassen. Der Lesevorgang kann einen normalen Lesevorgang und einen Datenwiederherstellungslesevorgang umfassen.
-
Zum Beispiel kann die Steuerschaltung 160 Steuersignale CON erzeugen, die verwendet werden, um den Spannungsgenerator 150 zu steuern, und kann ein Steuersignal PBC erzeugen, um die Seitenpufferschaltung 130 basierend auf dem Befehl CMD zu steuern, und kann eine Zeilenadresse R_ADDR und eine Spaltenadresse C_ADDR basierend auf der Adresse ADDR erzeugen. Die Steuerschaltung 160 kann dem Zeilen-Decoder 120 die Zeilenadresse R_ADDR bereitstellen und kann der Daten-I/O-Schaltung 140 die Spaltenadresse C_ADDR bereitstellen.
-
Die Steuerschaltung 160 kann das Verfahren gemäß beispielhaften Ausführungsformen durchführen, die unter Bezugnahme auf 1 beschrieben sind. Zum Beispiel empfängt die Steuerschaltung 160 einen Datenschreibbefehl, führt einen ersten Programmiervorgang bei einigen Wortleitungen von der Mehrzahl von Wortleitungen, die mit dem Speicherblock verbunden sind, basierend auf dem Datenschreibbefehl durch, erfasst mindestens eine der einigen Wortleitungen, bei denen der erste Programmiervorgang durchgeführt wird, als nicht gekoppelte Wortleitung, und führt einen zweiten Programmiervorgang bei einer offenen Wortleitung, bei der der erste Programmiervorgang nicht durchgeführt wird und die zu der nichtgekoppelten Wortleitung benachbart ist, ohne den Datenschreibbefehl durch. Zudem kann die Steuerschaltung 160 ein Verfahren gemäß beispielhaften Ausführungsformen durchführen, die unter Bezugnahme auf 11 beschrieben werden.
-
Der Zeilen-Decoder 120 ist mit dem Speicherzellenarray 110 über die Mehrzahl von Stringauswahlleitungen SSL, die Mehrzahl von Wortleitungen WL und die Mehrzahl von Masseauswahlleitungen GSL verbunden. Der Zeilen-Decoder 120 wählt die Mehrzahl von Speicherzellen, die in dem Speicherzellenarray 110 umfasst ist, auf einer Wortleitung-pro-Wortleitung-Basis aus.
-
Zum Beispiel kann der Zeilen-Decoder 120 bei den Datenlösch-/-schreib-/-lesevorgängen basierend auf der Zeilenadresse R_ADDR mindestens eine der Mehrzahl von Wortleitungen WL als ausgewählte Wortleitung bestimmen, und er kann den Rest oder die verbleibenden der Mehrzahl von Wortleitungen WL außer der ausgewählten Wortleitungen als nicht ausgewählte Wortleitungen bestimmen.
-
Zudem kann der Zeilen-Decoder 120 bei den Datenlösch-/-schreib-/-lesevorgängen basierend auf der Zeilenadresse R_ADDR mindestens eine der Mehrzahl von Stringauswahlleitungen SSL als ausgewählte Stringauswahlleitung bestimmen, und er kann die verbleibenden der Mehrzahl von Stringauswahlleitung SSL außer der ausgewählten Stringauswahlleitung als nicht ausgewählte Wortleitungen bestimmen.
-
Ferner kann der Zeilen-Decoder 120 bei den Datenlösch-/-schreib-/-lesevorgängen basierend auf der Zeilenadresse R ADDR mindestens eine der Mehrzahl von Masseauswahlleitungen GSL als ausgewählte Masseauswahlleitung bestimmen, und er kann die verbleibenden der Mehrzahl von Masseauswahlleitung GSL außer der ausgewählten Masseauswahlleitung als nicht ausgewählte Masseauswahlleitung bestimmen.
-
Der Spannungsgenerator 150 kann Spannungen VS, die für einen Vorgang der nichtflüchtigen Speichervorrichtung 100 erforderlich sind, basierend auf einer Leistung PWR und den Steuersignalen CON erzeugen. Die Spannungen VS können an die Mehrzahl von Stringauswahlleitungen SSL, die Mehrzahl von Wortleitungen WL und die Mehrzahl von Masseauswahlleitungen GSL über den Zeilen-Decoder 120 angelegt werden. Zudem kann der Spannungsgenerator 150 eine Löschspannung VERS, die für den Datenlöschvorgang erforderlich ist, basierend auf der Leistung PWR und den Steuersignalen CON erzeugen. Die Löschspannung VERS kann an das Speicherzellenarray 110 direkt oder über die Bit-Leitung BL angelegt werden.
-
Zum Beispiel kann der Spannungsgenerator 150 während des Löschvorgangs die Löschspannung VERS an einer gemeinsamen Source-Leitung und/oder der Bit-Leitung BL eines Speicherblocks anlegen (z. B. einem ausgewählten Speicherblock) und kann eine Löschberechtigungsspannung (z. B. eine Massespannung) an allen Wortleitungen des Speicherblocks oder einen Abschnitt der Wortleitungen über den Zeilen-Decoder 120 anlegen. Zudem kann der Spannungsgenerator 150 während des Löschverifizierungsvorgangs eine Löschverifizierungsspannung gleichzeitig an allen Wortleitungen des Speicherblocks oder nacheinander einzeln an den Wortleitungen anlegen.
-
Zum Beispiel kann der Spannungsgenerator 150 während des Programmiervorgangs eine Programmierspannung an der ausgewählten Wortleitung anlegen und er kann eine Programmierauslassungsspannung an den nicht ausgewählten Wortleitungen über den Zeilen-Decoder 120 anlegen. Zudem kann der Spannungsgenerator 150 während des Programmierverifizierungsvorgangs eine Programmierverifizierungsspannung an der ausgewählten Wortleitung anlegen und kann eine Verifizierungsauslassungsspannung an den nicht ausgewählten Wortleitungen über den Zeilen-Decoder 120 anlegen.
-
Zudem kann der Spannungsgenerator 150 während des normalen Lesevorgangs eine Lesespannung an der ausgewählten Wortleitung anlegen und kann eine Leseauslassungsspannung an den nicht ausgewählten Wortleitungen über den Zeilen-Decoder 120 anlegen. Während des Datenwiederherstellungslesevorgangs kann der Spannungsgenerator 150 die Lesespannung an einer Wortleitung, die zu der ausgewählten Wortleitung benachbart ist, anlegen, und kann eine Wiederherstellungslesespannung an der ausgewählten Wortleitung über den Zeilen-Decoder 120 anlegen.
-
Die Seitenpufferschaltung 130 kann mit dem Speicherzellenarray 110 über die Mehrzahl von Bit-Leitungen BL verbunden sein. Die Seitenpufferschaltung 130 kann eine Mehrzahl von Seitenpuffern umfassen. In einigen beispielhaften Ausführungsformen kann jeder Seitenpuffer mit einer Bit-Leitung verbunden sein. In anderen beispielhaften Ausführungsformen kann jeder Seitenpuffer mit zwei oder mehr Bit-Leitungen verbunden sein.
-
Die Seitenpufferschaltung 130 kann Daten DAT speichern, die in das Speicherzellenarray 110 programmiert werden sollen, oder sie kann Daten DAT auslesen, die aus dem Speicherzellenarray 110 erfasst werden. Mit anderen Worten, die Seitenpufferschaltung 130 kann als Schreibtreiber oder als Erfassungsverstärker gemäß einer Betriebsart der nichtflüchtigen Speichervorrichtung 100 betrieben werden.
-
Die Daten-I/O-Schaltung 140 kann mit der Seitenpufferschaltung 130 über Datenleitungen DL verbunden sein. Die Daten-I/O-Schaltung 140 kann basierend auf der Spaltenadresse C_ADDR die Daten DAT von außerhalb der nichtflüchtigen Speichervorrichtung 100 (z.B. von dem Speicher-Controller 600 in 14) dem Speicherzellenarray 110 über die Seitenpufferschaltung 130 bereitstellen, oder sie kann die Daten DAT von dem Speicherzellenarray 110 außerhalb der nichtflüchtigen Speichervorrichtung 100 bereitstellen.
-
3A und 3B sind Schemata, die Beispiele eines Speicherzellenarrays darstellen, das in einer nichtflüchtigen Speichervorrichtung aus 2 umfasst ist. 3A ist ein Schaltbild, das ein Beispiel eines Speicherzellenarrays darstellt, welches in einer NAND-Flash-Speichervorrichtung umfasst ist. 3B ist ein Schaltbild, das ein Beispiel eines Speicherzellenarrays darstellt, welches in einer vertikalen NAND-Flash-Speichervorrichtung umfasst ist.
-
In 3A kann ein Speicherzellenarray 110a Stringauswahltransistoren SST, Masseauswahltransistoren GST und Speicherzellen MC umfassen. Die Stringauswahltransistoren SST können mit Bit-Leitungen BL1, ..., BLm verbunden sein, und die Masseauswahltransistoren GST können mit einer gemeinsamen Source-Leitung CSL verbunden sein. Die Speicherzellen, die in der gleichen Zeile angeordnet sind, können zwischen einer der Bit-Leitungen BL1~BLm und der gemeinsamen Source-Leitung CSL in Reihe geschaltet sein und die Speicherzellen, die in der gleichen Spalte angeordnet sind, können gemeinsam mit einer der Wortleitungen WL1, WL2, ..., WL(n-1), WLn verbunden sein. Mit anderen Worten, die Speicherzellen MC können zwischen den Stringauswahltransistoren SST und den Masseauswahltransistoren GST in Reihe geschaltet sein und 16, 32 oder 64 Wortleitungen können sich zwischen einer Stringauswahlleitung SSL, die mit den Stringauswahltransistoren SST verbunden ist, und einer Masseauswahlleitung GSL, die mit den Masseauswahltransistoren GST verbunden ist, befinden.
-
Die Stringauswahltransistoren SST können derart mit der Stringauswahlleitung SSL verbunden sein, dass die Stringauswahltransistoren SST entsprechend einem Pegel einer von der Stringauswahlleitung SSL angelegten Spannung gesteuert werden. Die Masseauswahltransistoren GST können mit der Masseauswahlleitung GSL derart verbunden sein, dass die Masseauswahltransistoren GST entsprechend einem Pegel einer von der Masseauswahlleitung GSL angelegten Spannung gesteuert werden. Die Speicherzellen MC können entsprechend Pegeln von Spannungen, die an den Wortleitungen WL1~WLn angelegt werden, gesteuert werden.
-
Eine nichtflüchtige Speichervorrichtung, die das Speicherzellenarray 110a umfasst, kann die Datenlese- und -schreib- (oder Programmier-)vorgänge in Einheiten einer Seite 112 und den Datenlöschvorgang in Einheiten eines Blocks 113 durchführen.
-
In 3B ist ein Speicherblock 110b des Speicherzellenarrays dargestellt. Der Speicherblock 110b aus 3B kann auf einem Substrat in einer dreidimensionalen Struktur (oder einer vertikalen Struktur) ausgebildet sein. Zum Beispiel kann eine Mehrzahl von Zell-Strings (z. B. vertikale NAND-Strings), die in dem Speicherblock 110b umfasst sind, in einer Richtung rechtwinklig zu dem Substrat ausgebildet sein.
-
Der Speicherblock 110b kann eine Mehrzahl von Zell-Strings NS11, NS12, NS13, NS21, NS22, NS23, NS31, NS32 und NS33 umfassen, die zwischen Bit-Leitungen BL1, BL2 und BL3 und einer gemeinsame Source-Leitung CSL verbunden sind. Jeder der Zell-Strings NS11~NS33 kann einen Stringauswahltransistor SST, eine Mehrzahl von Speicherzellen MC1, MC2, MC3, MC4, MC5, MC6, MC7 und MC8 und einen Masseauswahltransistor GST umfassen.
-
Jeder Stringauswahltransistor SST kann mit einer entsprechenden Stringauswahlleitung (einer von SSL1, SSL2 und SSL3) verbunden sein. Die Mehrzahl von Speicherzellen MC1~MC8 kann jeweils mit entsprechenden Wortleitungen WL1, WL2, WL3, WL4, WL5, WL6, WL7 und WL8 verbunden sein. Jeder Masseauswahltransistor GST kann mit einer entsprechenden Masseauswahlleitung (einer von GSL1, GSL2 und GSL3) verbunden sein. Jeder Stringauswahltransistor SST kann mit einer entsprechenden Bit-Leitung (z. B. einer von BL1-BL3) verbunden sein und jeder Masseauswahltransistor GST kann mit der gemeinsamen Source-Leitung CSL verbunden sein.
-
Die Zell-Strings, die gemeinsam mit einer Bit-Leitung verbunden sind, können eine Spalte bilden, und die Zell-Strings, die mit einer Stringauswahlleitung verbunden sind, können eine Zeile bilden. Zum Beispiel können die Zell-Strings NS11, NS21 und NS31, die mit der ersten Bit-Leitung BL1 verbunden sind, einer ersten Spalte entsprechen, und die Zell-Strings NS11, NS12 und NS13, die mit der ersten Stringauswahlleitung SSL1 verbunden sind, können eine erste Zeile bilden.
-
Wortleitungen (z. B. WL1) mit der gleichen Höhe können gemeinsam verbunden sein und die Masseauswahlleitungen GSL1~GSL3 und die Stringauswahlleitungen SSL1~SSL3 können getrennt sein. Speicherzellen, die sich auf der gleichen Halbleiterschicht befinden, können sich eine Wortleitung teilen. Zell-Strings in der gleichen Zeile können sich eine Stringauswahlleitung teilen. Die gemeinsame Source-Leitung CSL kann gemeinsam mit allen Zell-Strings verbunden sein.
-
In 3B ist der Speicherblock 110b derart dargestellt, dass er mit acht Wortleitungen WL1~WL8 und drei Bit-Leitungen BL1~BL3 verbunden ist, und jeder der Zell-Strings NS11~NS33 ist derart dargestellt, dass er acht Speicherzellen MC1~MC8 umfasst. Allerdings sind erfinderische Konzepte nicht darauf beschränkt. In einigen beispielhaften Ausführungsformen kann jeder Speicherblock in dem Speicherzellenarray 110 mit einer beliebigen Anzahl an Wortleitungen und Bit-Leitungen verbunden sein und/oder jeder Zell-String kann eine beliebige Anzahl an Speicherzellen umfassen.
-
Eine dreidimensionale vertikale Arraystruktur kann vertikale NAND-Strings umfassen, die vertikal derart orientiert sind, dass sich mindestens eine Speicherzelle über einer anderen Speicherzelle befindet. Die mindestens eine Speicherzelle kann eine Charge-Trap-Schicht aufweisen. Die nachfolgenden Patentdokumente, die hiermit durch Verweis in den vorliegenden Text aufgenommen sind, beschreiben geeignete Konfigurationen für ein Speicherzellenarray, das eine vertikale 3D-Arraystruktur umfasst, in der das dreidimensionale Speicherarray als Mehrzahl von Ebenen konfiguriert ist, wobei Wortleitungen und/oder Bit-Leitungen zwischen Ebenen geteilt werden: US-Patente
US 7,679,133 ,
US 8,553,466 ,
US 8,654,587 ,
US 8,559,235 sowie
US 2011/0233648 A .
-
Obwohl das in der nichtflüchtigen Speichervorrichtung umfasste Speicherzellenarray gemäß beispielhaften Ausführungsformen basierend auf einer NAND-Flash-Speichervorrichtung beschrieben ist, kann die nichtflüchtige Speichervorrichtung gemäß beispielhaften Ausführungsformen eine beliebige nichtflüchtige Speichervorrichtung sein, z. B. ein Phasenänderungs-Direktzugriffsspeicher (PRAM), ein resistiver Direktzugriffsspeicher (RRAM), ein Nano-Floating-Gate-Speicher (NFGM), ein Polymer-Direktzugriffsspeicher (PoRAM), ein magnetischer Direktzugriffsspeicher (MRAM), ein ferroelektrischer Direktzugriffsspeicher (FRAM), ein Thyristor-Direktzugriffsspeicher (TRAM) oder dergleichen.
-
4 ist ein Flussdiagramm, das ein Beispiel für ein Verfahren zum Betreiben einer nichtflüchtigen Speichervorrichtung aus 1 darstellt.
-
In 1 und 4 kann die Mehrzahl von Wortleitungen, die mit dem Speicherblock verbunden ist, der in der nichtflüchtigen Speichervorrichtung gemäß beispielhaften Ausführungsformen umfasst ist, eine erste bis N-te Wortleitung umfassen, wobei N eine natürliche Zahl größer gleich zwei ist.
-
In dem Verfahren zum Betreiben der nichtflüchtigen Speichervorrichtung gemäß beispielhaften Ausführungsformen kann Vorgang S100 in 4 im Wesentlichen der gleiche sein wie Vorgang S100 in 1.
-
Wenn der erste Programmiervorgang bei den einigen Wortleitungen basierend auf dem Datenschreibbefehl durchgeführt wird (Vorgang S200), können Speicherzellen, die mit der ersten bis X-ten Wortleitung von der ersten bis N-ten Wortleitung verbunden sind, sequenziell programmiert werden (Vorgang S210), wobei X eine natürliche Zahl größer gleich eins und kleiner gleich (N-1) ist. Zum Beispiel können Speicherzellen, die mit der ersten Wortleitung verbunden sind, sequenziell zuerst programmiert werden, und dann können Speicherzellen, die mit der zweiten Wortleitung verbunden sind, sequenziell programmiert werden, und schließlich können Speicherzellen, die mit der X-ten Wortleitung verbunden sind, sequenziell programmiert werden. Wie unter Bezugnahme auf 1 beschrieben, kann der erste Programmiervorgang der normale Programmiervorgang sein.
-
Wenn die mindestens eine der einigen Wortleitungen als die nicht gekoppelte Wortleitung erfasst wird (Vorgang S300), kann die programmierte X-te Wortleitung von der programmierten ersten bis X-ten Wortleitung als nicht gekoppelte Wortleitung gescannt werden (Vorgang S310). Die programmierte X-te Wortleitung kann eine letzte programmierte Wortleitung sein. Mit anderen Worten, die letzte programmierte Wortleitung in dem offenen Block kann als die nicht gekoppelte Wortleitung erfasst werden.
-
Wenn der zweite Programmiervorgang bei der offenen Wortleitung ohne Datenschreibbefehl durchgeführt wird (Vorgang S400), können Speicherzellen programmiert werden, die mit einer (X+1)-ten Wortleitung verbunden sind, bei der der erste Programmiervorgang nicht durchgeführt wird und die zu der X-ten Wortleitung benachbart ist (Vorgang S410). Wie unter Bezugnahme auf 1 beschrieben, kann der zweite Programmiervorgang der Dummy-Programmiervorgang sein.
-
Bei dem Verfahren zum Betreiben der nichtflüchtigen Speichervorrichtung gemäß beispielhaften Ausführungsformen wird der Dummy-Programmiervorgang möglicherweise nicht bei allen Speicherzellen durchgeführt, die mit allen Wortleitungen verbunden sind (z. B. den Wortleitungen (X + 1) bis N), die nicht in dem offenen Block programmiert werden, und der Dummy-Programmiervorgang kann nur bei den Speicherzellen durchgeführt werden, die mit der (X+1)-ten Wortleitung verbunden sind, die zu der X-ten Wortleitung benachbart ist, welche die nicht gekoppelte Wortleitung ist. Mit anderen Worten, der Dummy-Programmiervorgang kann derart durchgeführt werden, dass der Einfluss der nicht gekoppelten Wortleitung in dem offenen Block eliminiert wird. So kann die Leistungsbeeinträchtigung aufgrund der nicht gekoppelten Wortleitung reduziert oder verhindert werden, während der Dummy-Programmiervorgang reduziert oder auf ein Minimum verringert wird.
-
5A und 5B sind Diagramme zur Beschreibung eines Verfahrens zum Betreiben einer nichtflüchtigen Speichervorrichtung aus 4. 5A und 5B stellen ein Beispiel eines Speicherblocks dar, der in der NAND-Flash-Speichervorrichtung, dargestellt in 3A, umfasst ist, und stellen ein Beispiel dar, in dem in der Ausführungsform aus 4 N=10 und X=4 ist.
-
In 5A und 5B kann ein Speicherblock BLKa mit den Wortleitungen WL0, WL1, WL2, WL3, WL4, WL5, WL6, WL7, WL8 und WL9 verbunden sein, und kann Speicherzellen MC0, MC1, MC2, MC3, MC4, MC5, MC6, MC7, MC8 und MC9 umfassen. Die Speicherzellen MC0 können mit der Wortleitung WL0 verbunden sein und auf ähnliche Art und Weise können die Speicherzellen MC1, MC2, MC3, MC4, MC5, MC6, MC7, MC8 und MC9 jeweils mit den Wortleitungen WL1, WL2, WL3, WL4, WL5, WL6, WL7, WL8 und WL9 verbunden sein.
-
Wie in 5A dargestellt, kann der erste Programmiervorgang eines sequenziellen Programmierens der Speicherzellen MC0, MC1, MC2 und MC3, die mit den ersten bis vierten Wortleitungen WL0,WL1, WL2 und WL3 des Speicherblocks BLKa verbunden sind, durchgeführt werden. In diesem Beispiel kann jede der programmierten ersten bis dritten Wortleitung WL0,WL1 und WL2 die gekoppelte Wortleitung werden, die zuletzt programmierte vierte Wortleitung WL3 kann zur nicht gekoppelten Wortleitung werden, und jede der fünften bis zehnten Wortleitung WL4, WL5, WL6, WL7, WL8 und WL9 (z. B. die nicht programmierten Wortleitungen), bei denen der erste Programmiervorgang nicht durchgeführt wird, kann zur offenen Wortleitung werden. In 5A sind die Speicherzellen MC0, MC1 und MC2, die mit der gekoppelten Wortleitung verbunden sind, mit Volllinien schraffiert, die Speicherzellen MC3, die mit der nicht gekoppelten Wortleitung verbunden sind, sind mit Strichlinien schraffiert, und die Speicherzellen MC4, MC5, MC6, MC7, MC8 und MC9, die mit der offenen Wortleitung verbunden sind, sind nicht schraffiert. Nachdem der erste Programmiervorgang abgeschlossen ist, kann die vierte Wortleitung WL3 als die nicht gekoppelte Wortleitung erfasst werden.
-
Wie in 5B dargestellt, kann der zweite Programmiervorgang eines sequenziellen Programmierens der Speicherzellen MC4, die mit der fünften Wortleitung WL4 verbunden sind, durchgeführt werden. Die fünfte Wortleitung WL4 kann eine der offenen Wortleitungen sein, bei denen der erste Programmiervorgang nicht durchgeführt wird, und kann zu der vierten Wortleitung WL3 benachbart sein, welche die nicht gekoppelte Wortleitung ist. So kann die vierte Wortleitung WL3 von der nicht gekoppelten Wortleitung zur gekoppelten Wortleitung geändert werden. In 5B sind die Speicherzellen MC3, die mit der vierten Wortleitung WL3 verbunden sind, die zu der gekoppelten Wortleitung geändert wird, mit Volllinien schraffiert, und die Speicherzellen MC4, die mit der fünften Wortleitung WL4 verbunden sind, sind durch horizontale Strichlinien schraffiert, da der zweite Programmiervorgang der Dummy-Programmiervorgang ist, der sich von dem ersten Programmiervorgang unterscheidet. Die Speicherzellen MC0, MC1, MC2, MC5, MC6, MC7, MC8 und MC9, die mit den anderen Wortleitungen WL0,WL1, WL2, WL5, WL6, WL7, WL8 und WL9 verbunden sind, können in dem gleichen Zustand wie in 5A dargestellt gehalten werden, selbst falls der zweite Programmiervorgang durchgeführt wird.
-
6 und 7 sind Flussdiagramme, die Beispiele eines Durchführens eines zweiten Programmiervorgangs aus 1 darstellen.
-
In 1 und 6 kann, wenn der zweite Programmiervorgang durchgeführt wird (Vorgang S400), eine letzte Programmierzeit, die ein Zeitpunkt ist, zu dem der erste Programmiervorgang beendet wird, gespeichert werden (Vorgang S510). Zum Beispiel kann, wie unter Bezugnahme auf 4, 5A und 5B beschrieben, wenn die Speicherzellen, die mit der ersten bis X-ten Wortleitung verbunden sind, sequenziell programmiert werden, eine Programmierzeit der Speicherzellen, die mit der letzten X-ten Wortleitung verbunden sind (z. B. eine Programmierzeit der Speicherzellen MC3, die mit der vierten Wortleitung WL3 in 5A) verbunden sind, gespeichert werden.
-
Nachdem der erste Programmiervorgang abgeschlossen wurde, kann eine Ist-Zeit gespeichert werden (Vorgang S520), und eine erste Zeit, welche eine Zeitdifferenz zwischen der Ist-Zeit und der letzten Programmierzeit ist, kann mit einer vorgegebenen Schwellwertzeit verglichen werden (Vorgang S530). Mit anderen Worten, es kann bestimmt werden, ob die Schwellwertzeit ab der letzten Programmierzeit abgelaufen ist.
-
Wenn die erste Zeit länger ist als die Schwellwertzeit (Vorgang S530: JA), können Speicherzellen programmiert werden, die mit der offenen Wortleitung verbunden sind, bei der der erste Programmiervorgang nicht durchgeführt wird und die zu der nicht gekoppelten Wortleitung benachbart ist (Vorgang S540). Zum Beispiel wie unter Bezugnahme auf 4, 5A und 5B beschrieben, können, wenn die X-te Wortleitung als die nicht gekoppelte Wortleitung erfasst wird, die Speicherzellen, die mit der (X+1)-ten Wortleitung benachbart zu der X-ten Wortleitung verbunden sind (z. B. die Speicherzellen MC4, die mit der fünften Wortleitung WL4 in 5B verbunden sind), programmiert werden.
-
Wenn die erste Zeit kleiner gleich der Schwellwertzeit ist (Vorgang S530: NEIN), kann der Ablauf beendet werden, ohne Vorgang S540 durchzuführen.
-
In einigen beispielhaften Ausführungsformen kann der Programmiervorgang, der in Vorgang S540 durchgeführt wird, der Dummy-Programmiervorgang zur Programmierung von Dummy-Daten in Speicherzellen sein, die mit der offenen Wortleitung verbunden sind. Zum Beispiel können die Dummy-Daten ein zufälliges Muster umfassen. Wie oben beschrieben, kann, nachdem der Dummy-Programmiervorgang durchgeführt wurde, die nicht gekoppelte Wortleitung zur gekoppelten Wortleitung geändert werden.
-
Bei dem Verfahren zum Betrieb der nichtflüchtigen Speichervorrichtung, das unter Bezugnahme auf 6 beschrieben wird, kann der Dummy-Programmiervorgang unter Verwendung der letzten Programmierzeit als größter Parameter oder Faktor durchgeführt werden. Mit anderen Worten, die letzte Programmierzeit ist der wichtigste Parameter für den Dummy-Programmiervorgang, unabhängig von dem Programmier-Schema, unabhängig von einem Schreibbereich (z. B. einem Bereich, in dem die Zieldaten durch den ersten Programmiervorgang gespeichert werden) in einem Speicherblock und unabhängig von dem Host-Befehl (z. B. dem Datenschreibbefehl, der von außerhalb empfangen wird). Falls der Programmiervorgang nicht durchgeführt wird, nachdem eine bestimmte Zeit ab der letzten Programmierzeit abgelaufen ist, kann der Dummy-Programmiervorgang bei der Wortleitung durchgeführt werden, die zu der zuletzt programmierten Wortleitung benachbart ist, um die zuletzt programmierte Wortleitung zu schützen.
-
In 1 und 7 kann, wenn der zweite Programmiervorgang (Vorgang S400) durchgeführt wird, bestimmt werden, ob ein Programmierfehler auftritt, während der erste Programmiervorgang durchgeführt wird (Vorgang S610).
-
Wenn der Programmierfehler auftritt (Vorgang S610: JA), können Speicherzellen programmiert werden, die mit der offenen Wortleitung verbunden sind, bei der der erste Programmiervorgang nicht durchgeführt wird und die zu der nicht gekoppelten Wortleitung benachbart ist (Vorgang S620). Zum Beispiel wenn die Programmierschleife mit mehr als einer vorgegebenen Häufigkeit wiederholt wird, oder wahlweise mit einer gewünschten Häufigkeit wiederholt wird, aber der Programmierverifikationsvorgang nicht erfolgreich abgeschlossen wird, kann bestimmt werden, dass ein Programmierfehler aufgetreten ist und eine Wortleitung, bei der der Programmierfehler auftritt, kann der zuletzt programmierten Wortleitung entsprechen, die unter Bezugnahme auf 6 beschrieben ist. Vorgang S620 in 7 kann im Wesentlichen der gleiche sein wie Vorgang S540 in 6.
-
Wenn der Programmierfehler nicht auftritt (Vorgang S610: NEIN), kann der Ablauf beendet werden, ohne Vorgang S620 durchzuführen.
-
In einigen beispielhaften Ausführungsformen kann der zweite Programmiervorgang (z. B. der Dummy-Programmiervorgang), der in Vorgang S540 aus 6 und in Vorgang S620 aus 7 durchgeführt wird, durchgeführt werden, während die nichtflüchtige Speichervorrichtung ausgeschaltet wird. Zum Beispiel kann ein Fall, in dem die nichtflüchtige Speichervorrichtung ausgeschaltet wird, einen Fall eines plötzlichen Ausschaltens (SPO) umfassen, in dem eine Leistung der nichtflüchtigen Speichervorrichtung plötzlich ausgeschaltet wird, und einen Fall eines normalen Ausschaltens (NPO), in dem die Leistung der nichtflüchtigen Speichervorrichtung gemäß einer vorgegebenen oder wahlweise gewünschten Prozedur ausgeschaltet wird.
-
In anderen beispielhaften Ausführungsformen kann der zweite Programmiervorgang, der in Vorgang S540 aus 6 und Vorgang S620 aus 7 durchgeführt wird, durchgeführt werden, während die nichtflüchtige Speichervorrichtung eingeschaltet wird und eine Leistung der nichtflüchtigen Speichervorrichtung aufrechterhalten wird.
-
Allerdings sind beispielhafte Ausführungsformen nicht darauf beschränkt und der zweite Programmiervorgang kann zu einer beliebigen Zeit durchgeführt werden, während der die nichtflüchtige Speichervorrichtung angetrieben wird.
-
8A und 8B sind Diagramme zur Beschreibung eines Verfahrens zum Betreiben einer nichtflüchtigen Speichervorrichtung aus 4. 8A und 8B stellen ein Beispiel eines Speicherblocks dar, der in der vertikalen NAND-Flash-Speichervorrichtung, dargestellt in 3B, umfasst ist, und stellen ein Beispiel dar, in dem in der Ausführungsform aus 4 N=10 und X=4 ist. Auf die Beschreibungen, die eine Wiederholung zu 5A und 5B darstellen, wird verzichtet.
-
In 8A und 8B kann ein Speicherblock BLKb mit Wortleitungen WL0,WL1, WL2, WL3, WL4, WL5, WL6, WL7, WL8 und WL9 verbunden sein, er kann mit Stringauswahlleitungen SSL0, SSL1, SSL2 und SSL3 verbunden sein, und er kann Speicherzellen MC00, MC01, MC02, MC03, MC04, MC05, MC06, MC07, MC08, MC09, MC10, MC11, MC12, MC13, MC14, MC15, MC16, MC17, MC18, MC19, MC20, MC21, MC22, MC23, MC24, MC25, MC26, MC27, MC28, MC29, MC30, MC31, MC32, MC33, MC34, MC35, MC36, MC37, MC38 und MC39 umfassen. Die Speicherzellen MC00, MC10, MC20 und MC30 können mit der Wortleitung WL0 verbunden sein und auf ähnliche Art und Weise können die Speicherzellen MC01, MC11, MC21, MC31, MC02, MC12, MC22, MC32, MC03, MC13, MC23, MC33, MC04, MC14, MC24, MC34, MC05, MC15, MC25, MC35, MC06, MC16, MC26, MC36, MC07, MC17, MC27, MC37, MC08, MC18, MC28, MC38, MC09, MC19, MC29 und MC39 jeweils mit den Wortleitungen WL1, WL2, WL3, WL4, WL5, WL6, WL7, WL8 und WL9, verbunden sein. Die Speicherzellen MC00, MC01, MC02, MC03, MC04, MC05, MC06, MC07, MC08 und MC09 können mit der Stringauswahlleitung SSL0 verbunden sein und auf ähnliche Art und Weise können die Speicherzellen MC10, MC11, MC12, MC13, MC14, MC15, MC16, MC17, MC18, MC19, MC20, MC21, MC22, MC23, MC24, MC25, MC26, MC27, MC28, MC29, MC30, MC31, MC32, MC33, MC34, MC35, MC36, MC37, MC38 und MC39 jeweils mit den Stringauswahlleitungen SSL1, SSL2 und SSL3 verbunden sein.
-
Wie in 8A dargestellt, kann der erste Programmiervorgang eines sequenziellen Programmierens der Speicherzellen MC00, MC10, MC20, MC30, MC01, MC11, MC21, MC31, MC02, MC12, MC22, MC32, MC03, MC13, MC23 und MC33 die mit der ersten bis vierten Wortleitung WL0,WL1, WL2 und WL3 des Speicherblocks BLKb verbunden sind, durchgeführt werden. In diesem Beispiel kann jede der programmierten ersten bis dritten Wortleitung WL0,WL1 und WL2 zu gekoppelten Wortleitungen werden, die zuletzt programmierte vierte Wortleitung WL3 kann zur nicht gekoppelten Wortleitung werden, und jede der fünften bis zehnten Wortleitung WL4, WL5, WL6, WL7, WL8 und WL9, bei denen der erste Programmiervorgang nicht durchgeführt wird, kann zu offenen Wortleitungen werden.
-
Wie in 8B dargestellt, kann der zweite Programmiervorgang eines sequenziellen Programmierens der Speicherzellen MC04, MC14, MC24 und MC34, die mit der fünften Wortleitung WL4 verbunden sind, durchgeführt werden. Die fünfte Wortleitung WL4 kann eine der offenen Wortleitungen sein, bei denen der erste Programmiervorgang nicht durchgeführt wird, und kann zu der vierten Wortleitung WL3 benachbart sein, welche die nicht gekoppelte Wortleitung ist. So kann die vierte Wortleitung WL3 von der nicht gekoppelten Wortleitung zur gekoppelten Wortleitung geändert werden.
-
9 ist ein Flussdiagramm, das ein anderes Beispiel eines Verfahrens zum Betreiben einer nichtflüchtigen Speichervorrichtung aus 1 darstellt. Auf die Beschreibungen, die eine Wiederholung zu 4 darstellen, wird verzichtet.
-
In 1 und 9 kann die Mehrzahl von Wortleitungen, die mit dem Speicherblock verbunden ist, der in der nichtflüchtigen Speichervorrichtung gemäß beispielhaften Ausführungsformen umfasst ist, die erste bis N-te Wortleitung umfassen. Zudem kann der Speicherblock mit einer Mehrzahl von Stringauswahlleitungen verbunden sein, und die Mehrzahl von Stringauswahlleitungen kann eine erste bis M-te Stringauswahlleitung umfassen, wobei M eine natürliche Zahl größer gleich zwei ist.
-
In dem Verfahren zum Betreiben der nichtflüchtigen Speichervorrichtung gemäß beispielhaften Ausführungsformen kann Vorgang S100 in 9 im Wesentlichen der gleiche sein wie Vorgang S100 in 1.
-
Wenn der erste Programmiervorgang bei den einigen Wortleitungen basierend auf dem Datenschreibbefehl durchgeführt wird (Vorgang S200), können Speicherzellen, die mit der ersten bis (Y-1)-ten Wortleitung von der ersten bis zur N-ten Wortleitung verbunden sind, und Speicherzellen, die mit einer Y-ten Wortleitung von der ersten bis zur N-ten Wortleitung verbunden sind und der ersten bis zu einer Z-ten Stringauswahlleitung von der ersten bis zur M-ten Stringauswahlleitung verbunden sind, sequenziell programmiert werden (Vorgang S220), wobei Y eine natürliche Zahl ist, die größer gleich zwei und kleiner gleich (N-1) ist, und Z eine natürliche Zahl ist, die größer gleich eins und kleiner gleich (M-1) ist. Zum Beispiel können Speicherzellen, die mit der ersten Wortleitung verbunden sind und mit der ersten bis M-ten Stringauswahlleitung verbunden sind, zuerst sequenziell programmiert werden, und dann können Speicherzellen, die mit der zweiten Wortleitung verbunden sind und mit der ersten bis M-ten Stringauswahlleitung verbunden sind, sequenziell programmiert werden, und dann können Speicherzellen, die mit der (Y-1)-ten Wortleitung verbunden sind und mit der ersten bis M-ten Stringauswahlleitung verbunden sind, sequenziell programmiert werden, und schließlich können Speicherzellen, die mit der Y-ten Wortleitung und mit der ersten bis Z-ten Stringauswahlleitung verbunden sind, sequenziell programmiert werden.
-
Wenn die mindestens eine der einigen Wortleitungen als die nicht gekoppelte Wortleitung erfasst wird (Vorgang S300), können die programmierte (Y-1)-te und Y-te Wortleitung von den programmierten Wortleitungen eins bis Y als die nicht gekoppelte Wortleitung gescannt werden (Vorgang S320). Die programmierte (Y-1)-te und Y-te Wortleitung können die zuletzt programmierten Wortleitungen sein.
-
Wenn der zweite Programmiervorgang bei der offenen Wortleitung ohne Datenschreibbefehl durchgeführt wird (Vorgang S400), können Speicherzellen, die mit der Y-ten Wortleitung verbunden sind und mit einer (Z+1)-ten bis M-ten Stringauswahlleitung verbunden sind, und Speicherzellen, die mit einer (Y+1)-ten Wortleitung benachbart zu der Y-ten Wortleitung verbunden sind und mit der ersten bis Z-ten Stringauswahlleitung verbunden sind, programmiert werden (Vorgang S420).
-
10A und 10B sind Diagramme zur Beschreibung eines Verfahrens zum Betreiben einer nichtflüchtigen Speichervorrichtung aus 9. 10A und 10B stellen ein Beispiel eines Speicherblocks dar, der in der vertikalen NAND-Flash-Speichervorrichtung, dargestellt in 3B, umfasst ist, und stellen ein Beispiel dar, in dem in der Ausführungsform aus 9 N=10, M=4, Y=5 und Z=2 ist. Auf die Beschreibungen, die eine Wiederholung zu 5A, 5B, 8A und 8B darstellen, wird verzichtet.
-
In 10A und 10B kann ein Speicherblock BLKc eine Struktur aufweisen, die im Wesentlichen die gleiche ist wie jene des Speicherblocks BLKb in 8A und 8B.
-
Wie in 10A dargestellt, kann der erste Programmiervorgang eines sequenziellen Programmierens der Speicherzellen MC00, MC10, MC20, MC30, MC01, MC11, MC21, MC31, MC02, MC12, MC22, MC32, MC03, MC13, MC23 und MC33 die mit der ersten bis vierten Wortleitung WL0,WL1, WL2 und WL3 verbunden sind und mit der ersten bis vierten Stringauswahlleitung SSL0, SSL1, SSL2 und SSL3 des Speicherblocks BLKc verbunden sind, und ein sequenzielles Programmieren der Speicherzellen MC04 und MC14, die mit der fünften Wortleitung WL4 verbunden sind und mit der ersten und zweiten Stringauswahlleitung SSL0 und SSL1 des Speicherblocks BLKc verbunden sind, durchgeführt werden. In diesem Beispiel kann jede der programmierten ersten bis dritten Wortleitung WL0, WL1 und WL2 zu gekoppelten Wortleitungen werden, jede der zuletzt programmierten vierten und fünften Wortleitung WL3 und WL4 kann zur nicht gekoppelten Wortleitung werden, und jede der sechsten bis zehnten Wortleitung WL5, WL6, WL7, WL8, und WL9, bei denen der erste Programmiervorgang nicht durchgeführt wird, kann zur offenen Wortleitung werden.
-
Wie in 10B dargestellt, kann der zweite Programmiervorgang eines sequenziellen Programmierens der Speicherzellen MC24 und MC34, die mit der fünften Wortleitung WL4 verbunden sind und mit der dritten und der vierten Stringauswahlleitung SSL2 und SSL3 verbunden sind, und ein sequenzielles Programmieren der Speicherzellen MC05 und MC 15, die mit der sechsten Wortleitung WL5 benachbart zu der fünften Wortleitung WL4 verbunden sind und mit der ersten und der zweiten Stringauswahlleitung SSL0 und SSL1 verbunden sind, durchgeführt werden. So kann die vierte Wortleitung WL3 von der nicht gekoppelten Wortleitung zur gekoppelten Wortleitung geändert werden.
-
11 ist ein Flussdiagramm, das ein Verfahren zum Betreiben einer nichtflüchtigen Speichervorrichtung gemäß beispielhaften Ausführungsformen darstellt. Auf die Beschreibungen, die eine Wiederholung zu 1 darstellen, wird verzichtet.
-
Es wird auf 11 Bezug genommen; in einem Verfahren zum Betreiben einer nichtflüchtigen Speichervorrichtung gemäß beispielhaften Ausführungsformen können Vorgänge S100, S200, S300 und S400 in 11 im Wesentlichen jeweils die gleichen sein wie Vorgänge S100, S200, S300 und S400 in 1.
-
Nachdem die Vorgänge S100, S200, S300 und S400 durchgeführt wurden, wird ein Datenlesebefehl empfangen (Vorgang S700). Zum Beispiel kann, wie bei dem Datenschreibbefehl, der Datenlesebefehl von dem externen Speicher-Controller bereitgestellt werden und es kann eine Leseadresse mit dem Datenlesebefehl bereitgestellt werden. Zum Beispiel kann die Leseadresse der Schreibadresse entsprechen.
-
Basierend auf dem Datenlesebefehl wird ein Lesevorgang bei allen der einigen Wortleitungen durchgeführt, bei denen der erste Programmiervorgang unter der gleichen Bedingung durchgeführt wird (Vorgang S800). Zum Beispiel kann, wie unter Bezugnahme auf 12 und 13 beschrieben, der Lesevorgang basierend auf einer Lesespannung mit dem gleichen Pegel durchgeführt werden.
-
Danach können die Zieldaten an den externen Speicher-Controller als Ergebnis des Lesevorgangs übertragen werden.
-
In dem Verfahren zum Betreiben der nichtflüchtigen Speichervorrichtung gemäß beispielhaften Ausführungsformen, kann die nicht gekoppelte Wortleitung, in der gültige Daten gespeichert sind, im Voraus als die gekoppelte Wortleitung ausgebildet werden (z. B. dahingehend geändert werden), indem der zweite Programmiervorgang ohne den externen Befehl durchgeführt wird (z. B. der Dummy-Programmiervorgang zur Programmierung der Dummy-Daten in eine Wortleitung im Anschluss an die nicht gekoppelte Wortleitung durchgeführt wird). Entsprechend kann der Lesevorgang effizient ohne den Lesefehler und ohne die Lesewiederholung durchgeführt werden, selbst falls die Lesespannung mit dem gleichen Pegel verwendet wird.
-
12 und 13 sind Flussdiagramme, die Beispiele für ein Durchführen eines Lesevorgangs aus 11 darstellen.
-
Es wird auf 11 und 12 Bezug genommen; wenn der Lesevorgang bei allen der einigen Wortleitungen durchgeführt wird, bei denen der erste Programmiervorgang unter der gleichen Bedingung durchgeführt wird (Vorgang S800), können die Speicherzellen, die mit der ersten bis X-ten Wortleitung von der ersten bis N-ten Wortleitung verbunden sind, sequenziell basierend auf der Lesespannung mit dem gleichen Pegel gelesen werden (Vorgang S810). Vorgang S810 in 12 kann bei dem Beispiel angewendet oder eingesetzt werden, bei dem Vorgänge S100, S200, S300 und S400 in 11 wie unter Bezugnahme auf 4, 5A, 5B, 8A und 8B beschrieben implementiert werden.
-
Es wird auf 11 und 13 Bezug genommen; wenn der Lesevorgang bei allen der einigen Wortleitungen durchgeführt wird, bei denen der erste Programmiervorgang unter der gleichen Bedingung durchgeführt wird (Vorgang S800), können die Speicherzellen, die mit der ersten bis (Y-1)-ten Wortleitung von der ersten bis N-ten Wortleitung verbunden sind, und die Speicherzellen, die mit der Y-te Wortleitung von der ersten bis N-ten Wortleitung verbunden sind und mit der ersten bis Z-ten Stringauswahlleitung von den ersten bis M-ten Stringauswahlleitung verbunden sind, sequenziell basierend auf der Lesespannung mit dem gleichen Pegel gelesen werden (Vorgang S820). Vorgang S820 in 13 kann bei dem Beispiel angewendet oder eingesetzt werden, in dem Vorgänge S100, S200, S300 und S400 in 11 wie unter Bezugnahme auf 9, 10A und 10B beschrieben implementiert werden.
-
Wie für den Fachmann ersichtlich, können die erfinderischen Konzepte als System, Verfahren, Computerprogrammprodukt ausgeführt sein, und/oder als Computerprogrammprodukt, das in einem oder mehreren computerlesbaren Medien ausgeführt ist, in denen computerlesbarer Programmcode ausgeführt ist. Der computerlesbare Programmcode kann einem Prozessor eines universellen Computers, eines Spezialcomputers oder eines anderen programmierbaren Datenverarbeitungsapparats bereitgestellt werden. Die Steuerschaltung 160, der Speicher-Controller 600 und alle anderen offenbarten Elemente können eine Verarbeitungsschaltung, wie beispielsweise Hardware, die Logikschaltungen umfasst, eine Hardware-/Software-Kombination, wie beispielsweise ein Prozessor, der Software ausführt, oder kann eine Kombination aus denselben umfassen. Zum Beispiel kann die Verarbeitungsschaltung insbesondere eine zentrale Verarbeitungseinheit (CPU) umfassen, eine arithmetisch-logische Einheit (ALU), einen digitalen Signalprozessor, einen Mikrocomputer, ein Field Programmable Gate Array (FPGA), ein Ein-Chip-System (SoC), eine programmierbare Logikeinheit, einen Mikroprozessor, eine anwendungsspezifische integrierte Schaltung (ASIC) usw. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium bzw. Datenträger sein. Das computerlesbare Speichermedium kann jedes greifbare Medium sein, das ein Programm enthalten oder darauf speichern kann, um von oder zusammen mit einem Anweisungsausführsystem, -apparat oder -vorrichtung verwendet zu werden. Das computerlesbare Medium kann zum Beispiel ein nichtflüchtiges, computerlesbares Medium sein.
-
14 ist ein Blockschaltbild, das ein Speichersystem entsprechend beispielhafter Ausführungsformen veranschaulicht.
-
In 14 umfasst ein Speichersystem 500 einen Speicher-Controller 600 und mindestens eine nichtflüchtige Speichervorrichtung 700.
-
Die nichtflüchtige Speichervorrichtung 700 kann der nichtflüchtigen Speichervorrichtung gemäß beispielhaften Ausführungsformen entsprechen, kann das Verfahren zum Betreiben der nichtflüchtigen Speichervorrichtung gemäß beispielhaften Ausführungsformen durchführen und kann Datenlösch, -programmier- (oder -schreib-) und/oder -lesevorgänge gesteuert durch den Speicher-Controller 600 durchführen. Die nichtflüchtige Speichervorrichtung 700 kann einen Befehl CMD und eine Adresse ADDR durch I/O-Leitungen von dem Speicher-Controller 600 zum Durchführen solcher Vorgänge empfangen und kann Daten DAT mit dem Speicher-Controller 600 zum Durchführen solcher Programmier- oder Lesevorgänge austauschen. Zudem kann die nichtflüchtige Speichervorrichtung 700 ein Steuersignal CTRL durch eine Steuerleitung von dem Speicher-Controller 600 empfangen. Zudem erhält die nichtflüchtige Speichervorrichtung 700 Leistung PWR durch ein Leistungsversorgungs- bzw. Stromkabel von dem Speicher-Controller 600.
-
15 ist ein Blockschaltbild, das eine Speichervorrichtung darstellt, die eine nichtflüchtige Speichervorrichtung gemäß beispielhaften Ausführungsformen umfasst.
-
In 15 umfasst eine Speichervorrichtung 1000 eine Mehrzahl nichtflüchtiger Speichervorrichtungen 1100 und einen Controller 1200. Zum Beispiel kann die Speichervorrichtung 1000 eine beliebige Speichervorrichtung wie beispielsweise eine Embedded Multimedia Card (eMMC), ein Universal Flash Storage (UFS), ein Solid State Disc oder eine Solid State Drive (SSD) usw. sein.
-
Der Controller 1200 kann mit den nichtflüchtigen Speichervorrichtungen 1100 über eine Mehrzahl von Kanälen CH1, CH2, CH3, ..., CHi verbunden sein. Der Controller 1200 kann einen oder mehrere Prozessoren 1210, einen Pufferspeicher 1220, eine Error-Correction-Code(ECC)-Schaltung 1230, eine Host-Schnittstelle 1250 und eine nichtflüchtige Speicherschnittstelle 1260 umfassen.
-
Der Pufferspeicher 1220 kann Daten speichern, die verwendet werden, um den Controller 1200 anzutreiben. Die ECC-Schaltung 1230 kann Fehlerkorrekturcodewerte von Daten, die während eines Programmiervorgangs programmiert werden sollen, berechnen und kann einen Fehler von Lesedaten unter Verwendung eines Fehlerkorrekturcodewerts während eines Lesevorgangs korrigieren. In einem Datenwiederherstellungsvorgang kann die ECC-Schaltung 1230 einen Fehler in Daten korrigieren, die von den nichtflüchtigen Speichervorrichtungen 1100 wiederhergestellt wurden. Die Host-Vorrichtung 1250 kann eine Schnittstelle mit einer externen Vorrichtung vorsehen. Die nichtflüchtige Speicherschnittstelle 1260 kann eine Schnittstelle mit den nichtflüchtigen Speichervorrichtungen 1100 vorsehen.
-
Jede der nichtflüchtigen Speichervorrichtungen 1100 kann der nichtflüchtigen Speichervorrichtung gemäß beispielhaften Ausführungsformen entsprechen und kann optional mit einer externen Hochspannung VPP versorgt werden.
-
Die erfinderischen Konzepte können bei verschiedenen elektronischen Vorrichtungen und elektronischen Systemen, die die nichtflüchtige Speichervorrichtung umfassen, angewendet werden. Zum Beispiel kann das erfinderische Konzept bei Systemen angewendet werden, wie beispielsweise einem Personalcomputer (PC), einem Server-Computer, einem Datenzentrum, einer Workstation, einem Mobiltelefon, einem Smartphone, einem Tablet, einem Laptop, einem persönlichen digitalen Assistenten (PDA), einem tragbaren Multimedia Player (PMP), einer digitalen Kamera, einer tragbaren Spielekonsole, einem Musik-Player, einem Camcorder, einem Video-Player, einer Navigationsvorrichtung, einer Wearable-Vorrichtung, einer Vorrichtung für das Internet der Dinge (IoT: Internet of Things), einer Vorrichtung für das Internet von Allem (IoE: Internet of Everything), einem E-Book-Reader, einer Vorrichtung für virtuelle Realität (VR), einer Vorrichtung für erweiterte Realität (AR: Augmented Reality), einer Robotervorrichtung, einer Drone usw.
-
Das obenstehende ist für beispielhafte Ausführungsformen veranschaulichend und soll nicht als dieselben beschränkend angesehen werden. Obwohl einige beispielhafte Ausführungsformen beschrieben wurden, wird es für den Fachmann ersichtlich sein, dass viele Abwandlungen bzw. Modifikationen in den beispielhaften Ausführungsformen möglich sind, ohne wesentlich von den neuen Lehren und Vorteilen der beispielhaften Ausführungsformen abzuweichen. Entsprechend sollen alle Abwandlungen als innerhalb des Umfangs der beispielhaften Ausführungsformen, wie in den Ansprüchen definiert, umfasst gelten. Daher versteht es sich, dass das Vorstehende veranschaulichend für verschiedene beispielhafte Ausführungsformen ist und nicht als auf die offenbarten, konkreten beispielhaften Ausführungsformen beschränkt erachtet werden soll, und dass Abwandlungen an den offenbarten, beispielhaften Ausführungsformen sowie andere beispielhafte Ausführungsformen als in dem Umfang der beigefügten Ansprüche umfasst erachtet werden sollen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- KR 1020190116003 [0001]
- US 7679133 [0049]
- US 8553466 [0049]
- US 8654587 [0049]
- US 8559235 [0049]
- US 2011/0233648 A [0049]