DE102020107491A1 - Speichersystem und verfahren zu dessen betrieb - Google Patents

Speichersystem und verfahren zu dessen betrieb Download PDF

Info

Publication number
DE102020107491A1
DE102020107491A1 DE102020107491.3A DE102020107491A DE102020107491A1 DE 102020107491 A1 DE102020107491 A1 DE 102020107491A1 DE 102020107491 A DE102020107491 A DE 102020107491A DE 102020107491 A1 DE102020107491 A1 DE 102020107491A1
Authority
DE
Germany
Prior art keywords
memory
mode
programming
epi
programming mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102020107491.3A
Other languages
English (en)
Other versions
DE102020107491B4 (de
Inventor
Jaeduk Yu
Bongsoon LIM
Yonghyuk Choi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102020107491A1 publication Critical patent/DE102020107491A1/de
Application granted granted Critical
Publication of DE102020107491B4 publication Critical patent/DE102020107491B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Eine Speichereinrichtung, ein Speichersystem und/oder ein Verfahren zum Betreiben eines Speichersystems umfassen, unter Verwendung einer Verarbeitungsschaltungsanordnung, ein Lösch-Programmier-Intervall (EPI) einer Speichergruppe zu messen, die in einem nichtflüchtigen Speicher (NVM) enthalten ist, wobei das EPI ein Zeitraum von einem Löschzeitpunkt bis zu einem Programmierzeitpunkt der Speichergruppe ist, unter Verwendung der Verarbeitungsschaltungsanordnung mehrere Programmiermodi basierend auf einer Anzahl an Datenbits, die in jeder Speicherzelle der Speichergruppe gespeichert sind, zu bestimmen, unter Verwendung der Verarbeitungsschaltungsanordnung einen Programmiermodus für die Speichergruppe aus den mehreren Programmiermodi basierend auf dem gemessenen EPI der Speichergruppe auszuwählen und unter Verwendung der Verarbeitungsschaltungsanordnung eine Programmieroperation auf der Speichergruppe entsprechend dem ausgewählten Programmiermodus durchzuführen.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese nicht vorläufige US-Anmeldung beansprucht den Prioritätsvorteil der koreanischen Patentanmeldung 10-2019-0105004 , eingereicht am 27. August 2019 beim Korean Intellectual Property Office, deren Offenbarung durch Bezugnahme hier in ihrer Gänze aufgenommen ist.
  • HINTERGRUND
  • Verschiedene beispielhafte Ausführungsformen der erfindungsgemäßen Konzepte beziehen sich auf ein Speichersystem, eine Speichereinrichtung und insbesondere auf ein Speichersystem mit verbesserten Schwellenspannungsverteilungseigenschaften, eine Speichereinrichtung mit verbesserten Schwellenspannungsverteilungseigenschaften und/oder ein Verfahren zu deren Betrieb.
  • Ein Speichersystem kann einen Speicher-Controller und eine Speichereinrichtung umfassen. Die Speichereinrichtung kann eine nichtflüchtige Speichereinrichtung umfassen. Eine Flash-Speichereinrichtung, die ein Beispiel für eine nichtflüchtige Speicher (Non-Volatile Memory, NVM)-Einrichtung ist, kann in transportierbaren Telefonen, Digitalkameras, Personal Digital Assistants (PDAs), transportierbaren Computer-Einrichtungen, feststehenden Computer-Einrichtungen und anderen Einrichtungen verwendet werden. Die Flash-Speichereinrichtung kann mehrere Blöcke umfassen, von denen jeder mehrere Seiten umfassen kann. In der Flash-Speichereinrichtung kann ein Zeitraum, bis eine Programmieroperation auf einem Block durchgeführt wird, nachdem eine Löschoperation auf dem Block durchgeführt worden ist, als ein Lösch-Programmier-Intervall (Erase Program Interval, EPI) definiert werden. Aufgrund der Eigenschaften einer Flash-Speichereinrichtung können sich, wenn ein EPI während einer Datenschreiboperation lang ist (z. B. eine lange Dauer aufweist), Schwellenspannungsverteilungseigenschaften der Flash-Speichereinrichtung verschlechtern, und somit kann sich die Zuverlässigkeit von Daten, die auf der Flash-Speichereinrichtung gespeichert sind, verschlechtern.
  • KURZDARSTELLUNG
  • Entsprechend einem Aspekt wenigstens einer beispielhaften Ausführungsform der erfindungsgemäßen Konzepte wird ein Verfahren zum Betrieb eines Speichersystems, das einen nichtflüchtigen Speicher umfasst, bereitgestellt. Das Verfahren umfasst, unter Verwendung einer Verarbeitungsschaltungsanordnung ein Lösch-Programmier-Intervall (EPI) einer Speichergruppe zu messen, wobei das EPI ein Zeitraum von einem Löschzeitpunkt bis zu einem Programmierzeitpunkt der Speichergruppe ist, wobei die Speichergruppe im nichtflüchtigen Speicher enthalten ist, unter Verwendung der Verarbeitungsschaltungsanordnung mehrere Programmiermodi basierend auf einer Anzahl an Datenbits, die in jeder Speicherzelle der Speichergruppe gespeichert sind, zu bestimmen, unter Verwendung der Verarbeitungsschaltungsanordnung einen Programmiermodus für die Speichergruppe aus den mehreren Programmiermodi basierend auf dem gemessenen EPI der Speichergruppe auszuwählen und unter Verwendung der Verarbeitungsschaltungsanordnung eine Programmieroperation auf der Speichergruppe entsprechend dem ausgewählten Programmiermodus durchzuführen, wobei das Durchführen der Programmieroperation auf der Speichergruppe umfasst, wenigstens einen Spannungspegel der Programmieroperation basierend auf dem ausgewählten Programmiermodus einzustellen.
  • Entsprechend einem anderen Aspekt wenigstens einer beispielhaften Ausführungsform der erfindungsgemäßen Konzepte wird ein Verfahren zum Betrieb eines Speichersystems, das einen nichtflüchtigen Speicher umfasst, bereitgestellt. Das Verfahren umfasst, unter Verwendung einer Verarbeitungsschaltungsanordnung ein Lösch-Programmier-Intervall (EPI) eines Speicherblocks des nichtflüchtigen Speichers als Reaktion auf eine von einem Host empfangene Schreibanforderung zu messen, wobei das EPI ein Zeitraum von einem Löschzeitpunkt bis zu einem Programmierzeitpunkt des Speicherblocks ist, und unter Verwendung der Verarbeitungsschaltungsanordnung eine Programmieroperation auf dem Speicherblock in einem ersten Programmiermodus oder in einem zweiten Programmiermodus basierend auf einer Dauer des EPI durchzuführen, wobei der erste Programmiermodus umfasst, N-Bit-Daten in jede Speicherzelle des Speicherblocks zu schreiben, und der zweite Programmiermodus umfasst, M-Bit-Daten in jede Speicherzelle des Speicherblocks zu schreiben, wobei das Durchführen der Programmieroperation auf dem Speicherblock umfasst, wenigstens einen Spannungspegel der Programmieroperation basierend auf dem ersten Programmiermodus oder dem zweiten Programmiermodus einzustellen. Hier sind N und M positive Ganzzahlen, und M ist kleiner als N.
  • Entsprechend einem anderen Aspekt wenigstens einer beispielhaften Ausführungsform der erfindungsgemäßen Konzepte wird ein Speichersystem bereitgestellt, das einen nichtflüchtigen Speicher, der mehrere Speichergruppen umfasst, und einen Speicher-Controller umfasst, der dazu ausgebildet ist, ein Lösch-Programmier-Intervall (EPI) einer ersten Speichergruppe von den mehreren Speichergruppen zu messen, wobei das EPI ein Zeitraum von einem Löschzeitpunkt bis zu einem Programmierzeitpunkt der Speichergruppe ist, mehrere Programmiermodi basierend auf einer Anzahl von Datenbits, die in jeder Speicherzelle der Speichergruppe gespeichert sind, zu bestimmen, einen Programmiermodus für die erste Speichergruppe von den mehreren Programmiermodi basierend auf dem gemessenen EPI auszuwählen und eine Programmieroperation auf der ersten Speichergruppe basierend auf dem ausgewählten Programmiermodus der ersten Speichergruppe zu steuern, wobei das Steuern der Programmieroperation umfasst, wenigstens einen Spannungspegel, der mit der Programmieroperation verknüpft ist, basierend auf dem ausgewählten Programmiermodus einzustellen.
  • Figurenliste
  • Verschiedene beispielhafte Ausführungsformen der erfindungsgemäßen Konzepte werden besser anhand der folgenden ausführlichen Beschreibung in Verbindung mit den zugehörigen Zeichnungen verstanden werden, bei denen Folgendes gilt:
    • 1 ist ein Blockdiagramm eines Speichersystems entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 2 ist ein beispielhaftes Kurvenbild, das Schwellenspannungsverteilungseigenschaften aufgrund eines Lösch-Programmier-Intervalls (EPI) eines nichtflüchtigen Speichers (NVM) der 1 entsprechend wenigstens einer beispielhaften Ausführungsform zeigt;
    • 3 ist ein Flussdiagramm eines Verfahrens des Betriebs eines Speichersystems entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 4A bis 4D sind beispielhafte Kurvenbilder, welche die Verteilungen von Schwellenspannungen von Speicherzellen, die in einen Single-Level-Cell (SLC)-Modus, einen Multi-Level-Cell (MLC)-Modus, einen Triple-Level-Cell (TLC)-Modus bzw. einen Quadruple-Level-Cell (QLC)-Modus programmiert sind, entsprechend einigen beispielhaften Ausführungsformen zeigen;
    • 5 ist ein Blockdiagramm eines Speicher-Controllers der 1 entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 6 ist ein Blockdiagramm eines nichtflüchtigen Speichers (NVM) der 1 entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 7 zeigt eine EPI-Tabelle entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 8 ist ein Flussdiagramm eines Verfahrens des Betriebs eines Speichersystems entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 9 ist ein konzeptionelles Diagramm einer Programmieroperation für einen Speicherblock im Betriebsverfahren der 8 entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 10 ist ein Flussdiagramm eines Verfahrens des Betriebs eines Speichersystems entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 11 ist ein konzeptionelles Diagramm einer Programmieroperation für einen Speicherblock im Betriebsverfahren der 10 entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 12 ist ein Flussdiagramm eines Verfahrens des Betriebs eines Speichersystems entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 13 ist ein konzeptionelles Diagramm einer Programmieroperation für einen Speicherblock im Betriebsverfahren der 12 entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 14 ist ein Flussdiagramm eines Verfahrens des Betriebs eines Speichersystems entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 15 ist ein konzeptionelles Diagramm einer Programmieroperation für einen Speicherblock im Betriebsverfahren der 14 entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 16A und 16B zeigen Programmiermodustabellen entsprechend einigen beispielhaften Ausführungsformen;
    • 17 zeigt einen Speicherblock, der dazu ausgebildet ist, EPI-Informationen zu speichern, entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 18A und 18B zeigen eine EPI-Tabelle bzw. eine Programmiermodustabelle entsprechend einigen beispielhaften Ausführungsformen;
    • 19 ist eine partielle Querschnittsansicht eines Speicherblocks entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 20 ist ein konzeptionelles Diagramm einer Programmieroperation für einen Stack entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 21 ist ein konzeptionelles Diagramm einer Programmieroperation für einen Stack entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 22A und 22B zeigen eine EPI-Tabelle bzw. eine Programmiermodustabelle entsprechend einigen beispielhaften Ausführungsformen;
    • 23 ist ein konzeptionelles Diagramm einer Programmieroperation für einen Unterblock entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 24 ist ein konzeptionelles Diagramm einer Programmieroperation für einen Unterblock entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 25 ist ein Flussdiagramm einer Datenschreiboperation zwischen einem Host, einem Speicher-Controller und einem NVM entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 26 ist ein Flussdiagramm einer Datenleseoperation zwischen einem Host, einem Speicher-Controller und einem NVM entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 27 ist ein Flussdiagramm einer Garbage-Collection-Operation zwischen einem Speicher-Controller und einem NVM entsprechend wenigstens einer beispielhaften Ausführungsform;
    • 28 bis 30 sind Blockdiagramme von modifizierten Beispielen für das Speichersystem der 1 entsprechend einigen beispielhaften Ausführungsformen; und
    • 31 ist ein Blockdiagramm eines Beispiels für das Anwenden eines Speichersystems entsprechend wenigstens einer beispielhaften Ausführungsform eines Solid-State-Drive (SSD)-Systems.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Nachstehend werden hier verschiedene beispielhafte Ausführungsformen ausführlich unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
  • Die 1 ist ein Blockdiagramm eines Speichersystems 10 entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 1 kann das Speichersystem 10 einen Speicher-Controller 100 und/oder einen nichtflüchtigen Speicher (NVM) 200 usw. umfassen, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt, und eine größere oder kleinere Anzahl an einzelnen Elementen kann im Speichersystem 10 enthalten sein. In wenigstens einer beispielhaften Ausführungsform kann der NVM 200 als ein Speicher-Chip umgesetzt sein, und das Speichersystem 10 kann mehrere Speicher-Chips usw. umfassen. In wenigstens einer beispielhaften Ausführungsform kann der Speicher-Controller 100 jeweils mit den mehreren Chips über mehrere Kanäle oder einen einzelnen Kanal verbunden sein. Zum Beispiel kann das Speichersystem 10 als eine Speichereinrichtung, wie zum Beispiel ein Solid-State-Drive (SSD) usw., umgesetzt sein.
  • Der Speicher-Controller 100 kann den NVM 200 steuern, um Daten in den NVM 200 zu programmieren, Daten, die im NVM 200 gespeichert sind, als Reaktion auf eine Schreib-/Leseanforderung von einem Host HOST zu lesen oder Daten, die im NVM 200 gespeichert sind, als Reaktion auf eine Löschanforderung vom Host HOST zu löschen usw. Zum Beispiel kann der Speicher-Controller 100 dem NVM 200 einen Befehl CMD und eine Adresse ADDR bereitstellen und Programmier-, Lese- und Löschoperationen auf dem NVM 200 steuern. Auch können zu programmierende Daten DATA und Lesedaten DATA zwischen dem Speicher-Controller 100 und dem NVM 200 übertragen und empfangen werden. In wenigstens einer beispielhaften Ausführungsform können der Befehl CMD und die Adresse ADDR vom Speicher-Controller 100 zum NVM 200 unter Verwendung des gleichen Eingabe-/Ausgabe (I/O)-Kanals wie für die Daten DATA übertragen werden. In wenigstens einer beispielhaften Ausführungsform können der Befehl CMD und die Adresse ADDR vom Speicher-Controller 100 zum NVM 200 unter Verwendung eines ersten I/O-Kanals übertragen werden, während Daten DATA vom Speicher-Controller 100 zum NVM 200 unter Verwendung eines zweiten I/O-Kanals übertragen werden können, allerdings sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Auch kann der Speicher-Controller 100 des Weiteren dem NVM 200 ein Steuersignal CTRL bereitstellen.
  • Der NVM 200 kann ein Speicherzellen-Array 210 und/oder eine Steuerschaltungsanordnung 220 (z. B. eine Steuerlogik, einen Controller usw.) umfassen, ist jedoch nicht darauf beschränkt. Das Speicherzellen-Array 210 kann mehrere Speicherzellen umfassen. Zum Beispiel können die mehreren Speicherzellen Flash-Speicherzellen sein. Hier werden nachstehend beispielhafte Ausführungsformen ausführlich unter der Annahme beschrieben, dass die mehreren Speicherzellen NAND-Flash-Speicherzellen sind. Allerdings sind die beispielhaften Ausführungsformen der erfindungsgemäßen Konzepte nicht darauf beschränkt, und die mehreren Speicherzellen können resistive Speicherzellen, wie zum Beispiel resistive RAM (ReRAM)-Zellen, Phase Change RAM (PRAM)-Zellen und/oder magnetische RAM (MRAM)-Zellen usw. sein. Das Speicherzellen-Array 210 kann mehrere Blöcke umfassen, von denen jeder mehrere Seiten umfassen kann. Jede der Seiten kann mehrere Speicherzellen umfassen. Im Speicherzellen-Array 210 kann eine Datenlöschoperation in Blockeinheiten durchgeführt werden, und Datenschreib-/-leseoperationen können in Seiteneinheiten durchgeführt werden, sind jedoch nicht darauf beschränkt.
  • Die Steuerschaltungsanordnung 220 kann die Gesamtoperation des NVM 200 in Bezug auf eine Speicheroperation steuern. Die Steuerschaltungsanordnung 220 kann zum Programmieren von Daten in das Speicherzellen-Array 210, Lesen von Daten aus dem Speicherzellen-Array 210 und/oder Löschen von Daten, die im Speicherzellen-Array 210 gespeichert sind, basierend auf dem Befehl CMD und der Adresse ADDR, die vom Speicher-Controller 100 empfangen werden, verschiedene Steuersignale ausgeben. Entsprechend wenigstens einer beispielhaften Ausführungsform kann die Steuerschaltungsanordnung 220 Hardware, die Logikschaltungen umfasst, eine Hardware-Software-Kombination, wie zum Beispiel einen Prozessor, der Software ausführt, oder eine Kombination davon umfassen. Zum Beispiel kann die Steuerschaltungsanordnung genauer gesagt Folgendes umfassen, ohne darauf beschränkt zu sein: eine zentrale Recheneinheit (Central Processing Unit, CPU), eine Arithmetik-Logik-Einheit (Arithmetic Logic Unit, ALU), einen Digitalsignalprozessor, einen Mikrocomputer, ein Field Programmable Gate Array (FPGA), ein System-on-Chip (SoC), eine programmierbare Logikeinheit, einen Mikroprozessor, eine anwendungsspezifische integrierte Schaltung (Application Specific Integrated Circuit, ASIC) usw.
  • In einer Flash-Speichereinrichtung kann ein Zeitraum von einem Löschzeitpunkt eines Blocks bis zu einem Programmierzeitpunkt des Blocks als ein Lösch-Programmier-Intervall (EPI) des Blocks definiert werden. Wenn ein EPI erweitert und/oder verlängert wird, kann sich aufgrund der Eigenschaften einer Flash-Speichereinrichtung, insbesondere eines vertikalen NAND (VNAND)-Flash-Speichers, der einen dreidimensionalen (3D) Block umfasst, jedoch nicht darauf beschränkt, die Zuverlässigkeit der in der Flash-Speichereinrichtung gespeicherten Daten verschlechtern und/oder verringern usw. Zum Beispiel können sich Löcher auf einen Raumbereich zwischen benachbarten Speicherzellen während eines Zeitraums, nachdem eine Löschoperation durchgeführt worden ist und bis eine andere Programmieroperation (z. B. eine programmierende Operation, eine Schreiboperation usw.) durchgeführt wird, ausbreiten. Wenn Daten in einem Zustand programmiert werden, in dem das EPI relativ lang ist, können Elektronen und Löcher rekombiniert werden, nachdem die Programmieroperation durchgeführt worden ist. Somit kann eine Verteilung von Schwellenspannungen der Speicherzellen verschoben werden, wie ausführlich mit Bezug auf die 2 beschrieben wird.
  • Die 2 ist ein Kurvenbild, das beispielhaft Schwellenspannungsverteilungseigenschaften aufgrund von EPIs des NVM 200 der 1 entsprechend wenigstens einer beispielhaften Ausführungsform zeigt.
  • Mit Bezug auf die 2 bezeichnet die Abszisse eine Schwellenspannung, und die Ordinate bezeichnet die Anzahl an Speicherzellen. In einem ersten Fall 21, in dem eine Programmieroperation (z. B. eine programmierende Operation usw.) unmittelbar, nachdem ein Block gelöscht worden ist, durchgeführt wird, das heißt, wenn das EPI fast 0 ist, können Speicherzellen einen von Folgenden, einen Löschzustand E und einen ersten bis n. Programmierzustand P1 bis Pn, entsprechend (und/oder basierend auf) einer Schwellenspannung aufweisen. Zum Beispiel können Lesespannungspegel des ersten und zweiten Programmierzustands P1 und P2 wie gewünscht gesetzt, definiert und/oder vorher als Vr1 bzw. Vr2 definiert werden.
  • In einem zweiten Fall 22, in dem eine Programmieroperation während eines ersten Zeitraums, nachdem ein Block gelöscht worden ist, durchgeführt wird, das heißt, wenn das EPI relativ kurz ist, kann im Vergleich zum ersten Fall 21 eine Verteilung der Schwellenspannungen im Allgemeinen nach links (oder in eine Richtung, in der ein Schwellenspannungspegel reduziert ist) verschoben sein. In einem dritten Fall 23, in dem eine Programmieroperation während eines zweiten Zeitraums, nachdem ein Block gelöscht worden ist, durchgeführt wird, das heißt, wenn das EPI relativ lang ist, kann im Vergleich zum zweiten Fall 22 eine Verteilung der Schwellenspannungen im Allgemeinen weiter nach links (oder in eine Richtung, in der ein Schwellenspannungspegel reduziert ist) verschoben sein. Hier kann der zweite Zeitraum länger als der erste Zeitraum sein, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt.
  • Wie oben beschrieben wird, können sich, wenn Daten in einem Zustand programmiert werden, in dem ein EPI relativ lang ist (und/oder vergleichsweise länger als ein gewünschter oder Default-EPI), Schwellenspannungsverteilungseigenschaften im Vergleich zu dem Fall, dass Daten in einem Zustand programmiert werden, in dem ein EPI relativ kurz ist (und/oder vergleichsweise kürzer als ein gewünschter oder Default-EPI), verschlechtern. Wenn in diesem Fall eine Leseoperation auf Speicherzellen unter Verwendung eines gewünschten, definierten und/oder vorher definierten Lesespannungspegels Vr1, Vr2, ..., Vrn durchgeführt wird, kann ein Lesefehler auftreten, und somit kann sich die Zuverlässigkeit von Daten, die in den Speicherzellen gespeichert sind, verschlechtern und/oder verringern. Wenn ein Block, von dem detektiert wird, dass er ein langes EPI aufweist, nicht verwendet wird, um die Zuverlässigkeitsverschlechterung aufgrund des EPI zu reduzieren und/oder zu verhindern, wird möglicherweise zusätzlich ein Speicherplatz des NVM 200 nicht effizient verwendet, und das Durchführen von Garbage-Collection-Operationen wird möglicherweise häufiger als erwünscht und/oder als erforderlich bewirkt, und somit kann sich die Lebensdauer des NVM 200 reduzieren.
  • Mit Rückbezug auf die 1 kann, um die oben beschriebenen Nachteile zu überwinden, der Speicher-Controller 100 eine EPI-Prüferschaltungsanordnung 110 und/oder eine Programmiermodussteuerschaltungsanordnung 120 usw. umfassen. Die EPI-Prüferschaltungsanordnung 110 kann ein EPI einer Speichergruppe während einer Operation des Schreibens von Daten, wie zum Beispiel Anwenderdaten oder Metadaten, detektieren, ist jedoch nicht darauf beschränkt. Zum Beispiel kann die EPI-Prüferschaltungsanordnung 110 das EPI der Speichergruppe während einer Garbage-Collection-Operation, einer Speicherlöschoperation usw. detektieren. Zusätzlich kann die Speichergruppe ein Speicherblock, ein Speicher-Stack und/oder ein Unterspeicherblock, der im Speicherzellen-Array 210 enthalten ist, usw. sein. Allerdings sind die beispielhaften Ausführungsformen der erfindungsgemäßen Konzepte nicht darauf beschränkt, und die EPI-Prüferschaltungsanordnung 110 kann das EPI der Speichergruppe in verschiedenen Situationen detektieren, in denen eine Programmieroperation für die Speichergruppe erwünscht und/oder erforderlich ist. Entsprechend wenigstens einer beispielhaften Ausführungsform kann die EPI-Prüferschaltungsanordnung 110 Hardware, die Logikschaltungen umfasst, eine Hardware-Software-Kombination, wie zum Beispiel einen Prozessor, der Software ausführt, oder eine Kombination davon umfassen. Zum Beispiel kann die EPI-Prüferschaltungsanordnung genauer gesagt Folgendes umfassen, ohne darauf beschränkt zu sein: eine zentrale Recheneinheit (CPU), eine Arithmetik-Logik-Einheit (ALU), einen Digitalsignalprozessor, einen Mikrocomputer, ein Field Programmable Gate Array (FPGA), ein System-on-Chip (SoC), eine programmierbare Logikeinheit, einen Mikroprozessor, eine anwendungsspezifische integrierte Schaltung (ASIC) usw.
  • Die Programmiermodussteuerschaltungsanordnung 120 kann einen von mehreren Programmiermodi als einen Programmiermodus für die Speichergruppe basierend auf dem detektierten EPI bestimmen. Die mehreren Programmiermodi können entsprechend (und/oder basierend auf) einer Datenbitanzahl, die in jeder Speicherzelle gespeichert ist, gesetzt, definiert und/oder vorher definiert werden. Zum Beispiel kann zu den mehreren Programmiermodi wenigstens einer von Folgenden zählen, ein Quadruple-Level-Cell (QLC)-Modus, ein Triple-Level-Cell (TLC)-Modus, ein Multi-Level-Cell (MLC)-Modus und ein Single-Level-Cell (SLC)-Modus, ohne darauf beschränkt zu sein. Die mehreren Programmiermodi werden nachstehend mit Bezug auf die 4A bis 4D beschrieben. Des Weiteren kann die Programmiermodussteuerschaltungsanordnung 120 die Programmieroperation für die Speichergruppe im bestimmten Programmiermodus steuern. Dementsprechend kann, auch wenn Daten in eine Speichergruppe mit einem langen EPI geschrieben werden, die Verschlechterung der Zuverlässigkeit der Daten reduziert und/oder verhindert werden. Entsprechend wenigstens einer beispielhaften Ausführungsform kann die Programmiermodussteuerschaltungsanordnung 120 Hardware, die Logikschaltungen umfasst, eine Hardware-Software-Kombination, wie zum Beispiel einen Prozessor, der Software ausführt, oder eine Kombination davon umfassen. Zum Beispiel kann die Programmiermodussteuerschaltungsanordnung genauer gesagt Folgendes umfassen, ohne darauf beschränkt zu sein: eine zentrale Recheneinheit (CPU), eine Arithmetik-Logik-Einheit (ALU), einen Digitalsignalprozessor, einen Mikrocomputer, ein Field Programmable Gate Array (FPGA), ein System-on-Chip (SoC), eine programmierbare Logikeinheit, einen Mikroprozessor, eine anwendungsspezifische integrierte Schaltung (ASIC) usw. Entsprechend wenigstens einer beispielhaften Ausführungsform können die EPI-Prüferschaltungsanordnung 110 und die Programmiermodussteuerschaltungsanordnung 120 zusätzlich in einer einzigen Schaltungsanordnung umgesetzt und/oder kombiniert sein.
  • In einigen beispielhaften Ausführungsformen kann das Speichersystem 10 ein interner Speicher sein, der in einer elektronischen Einrichtung eingebettet ist. Zum Beispiel kann das Speichersystem 10 ein SSD, eine eingebettete Universal Flash Storage (UFS)-Speichereinrichtung und/oder eine Embedded Multimedia Card (eMMC) sein, ist jedoch nicht darauf beschränkt. In einigen beispielhaften Ausführungsformen kann das Speichersystem 10 ein externer Speicher sein, der abnehmbar an einer elektronischen Einrichtung angebracht ist. Zum Beispiel kann zum Speichersystem 10 eine UFS-Speicherkarte, ein Compact Flash (CF)-Speicher, ein Secure Digital (SD)-Speicher, ein Mikro-SD-Speicher, ein Mini-SD-Speicher, ein Extreme Digital (xD)-Speicher und/oder ein Speicher-Stick usw. umfassen.
  • Das Speichersystem 10 und der Host HOST können ein Speichersystem bilden, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Das Speichersystem kann zum Beispiel als ein Personal Computer (PC), ein Datenserver, ein netzgekoppelter Speicher, eine Internet of Things (IoT)-Einrichtung und/oder eine transportierbare elektronische Einrichtung usw. umgesetzt sein. Die transportierbare elektronische Einrichtung kann ein Laptop-Computer, ein Mobiltelefon, ein Smartphone, ein Tablet-PC, ein Personal Digital Assistant (PDA), ein Enterprise Digital Assistant (EDA), eine digitale Standbildkamera, eine digitale Videokamera, eine Audioeinrichtung, ein transportierbarer Multimedia-Player (Portable Multimedia Player, PMP), eine mobile Navigationseinrichtung (Personal Navigation Device, PND), ein MPEG-1 Audio Layer 3 (MP3)-Player, eine handgeführte Spielekonsole, ein elektronisches Buch (e-Book), eine Virtual-Reality-Einrichtung, eine Augmented-Reality-Einrichtung, ein autonomes Fahrzeug und/oder eine Wearable-Einrichtung usw. sein.
  • Die 3 ist ein Flussdiagramm eines Verfahrens des Betriebs eines Speichersystems entsprechend wenigstens einer beispielhaften Ausführungsform. Mit Bezug auf die 3 kann das Betriebsverfahren entsprechend der vorliegenden beispielhaften Ausführungsform ein Verfahren des Programmierens eines Speichersystems sein, um die Schwellenspannungsverteilungseigenschaften zu verbessern. Zum Beispiel kann das Betriebsverfahren entsprechend der vorliegenden beispielhaften Ausführungsform Operationen umfassen, die in einer zeitlichen Abfolge im Speichersystem 10 der 1 durchgeführt werden.
  • In der Operation S110 kann der Speicher-Controller 100 ein EPI der Speichergruppe detektieren. Zum Beispiel kann die EPI-Prüferschaltungsanordnung 110 einen Zeitgeber (nicht dargestellt) umfassen, der einen Zeitraum (z. B. eine Dauer) von einem Zeitpunkt, zu dem eine Löschoperation oder eine andere Operation auf der Speichergruppe durchgeführt wird, bis zu einem Zeitpunkt, zu dem eine Programmieroperation auf der Speichergruppe durchgeführt wird, detektieren kann, wie zum Beispiel das EPI der Speichergruppe. In der Operation S120 kann der Speicher-Controller 100 einen Programmiermodus als einen von mehreren Programmiermodi, einschließlich zum Beispiel einen QLC-Modus, einen TLC-Modus, einen MLC-Modus und/oder einen SLC-Modus usw., basierend auf dem detektierten EPI bestimmen. Zum Beispiel kann die Programmiermodussteuerschaltungsanordnung 120 das detektierte EPI mit einer gewünschten und/oder (vorher) definierten Referenzzeit vergleichen und einen der mehreren Programmiermodi auswählen. Mit anderen Worten kann ein Programmiermodus basierend auf dem detektierten EPI und einer gewünschten Referenzzeit ausgewählt werden. In der Operation S130 kann der Speicher-Controller 100 eine Programmieroperation für die Speichergruppe im bestimmten Programmiermodus durchführen, einschließlich, wenigstens einen Spannungspegel, der mit der Programmieroperation verknüpft ist, basierend auf dem bestimmten Programmiermodus einzustellen (z. B. eine oder mehrere Schreibspannungen einzustellen, die mit einer Schreiboperation verknüpft sind).
  • Die 4A bis 4D sind Beispiele für Kurvenbilder, die Verteilungen von Schwellenspannungen von Speicherzellen zeigen, die in einen SLC-Modus, einen MLC-Modus, einen TLC-Modus bzw. einen QLC-Modus programmiert sind, allerdings sind die beispielhaften Ausführungsformen nicht darauf beschränkt, und die Speicherzellen können zum Beispiel unter anderen NAND-/Flash-Speicherprogrammiermodi operieren. In den 4A bis 4D bezeichnet die Abszisse eine Schwellenspannung, und die Ordinate bezeichnet die Anzahl an Speicherzellen.
  • Mit Bezug auf die 4A kann der Single-Level-Cell (SLC)-Modus ein Programmiermodus sein, in dem 1-Bit-Daten in jeder Speicherzelle gespeichert werden, und jede Speicherzelle kann in einen SLC-Modus programmiert sein, in dem die Speicherzelle abhängig von (z. B. basierend auf) einer Verteilung von Schwellenspannungen einen von zwei Zuständen aufweisen kann. Zum Beispiel kann sich eine Speicherzelle, die zum Speichern des Datums ,1' ausgebildet ist, in einem Löschzustand E befinden, und eine Speicherzelle, die zum Speichern des Datums ,0' ausgebildet ist, kann sich in einem Programmierzustand P befinden, allerdings sind die beispielhaften Ausführungsformen nicht darauf beschränkt, und die Datenwerte können anderen Programmiermodi entsprechen.
  • Mit Bezug auf die 4B kann der Multi-Level-Cell (MLC)-Modus ein Programmiermodus sein, in dem 2-Bit-Daten in jeder Speicherzelle gespeichert werden, und jede Speicherzelle kann in einen MLC-Modus programmiert werden, in dem die Speicherzelle abhängig von einer Verteilung von Schwellenspannungen einen von vier Zuständen aufweisen kann. Zum Beispiel kann sich eine Speicherzelle, die zum Speichern der Daten ,11' ausgebildet ist, in einem Löschzustand E befinden, und Speicherzellen, die zum jeweiligen Speichern der Daten ,10', ,01' und ,00' ausgebildet sind, können sich jeweils im ersten bis dritten Programmierzustand P1 bis P3 befinden, allerdings sind die beispielhaften Ausführungsformen nicht darauf beschränkt, und die Datenwerte können anderen Programmiermodi entsprechen.
  • Mit Bezug auf die 4C kann der Triple-Level-Cell (TLC)-Modus ein Programmiermodus sein, in dem 3-Bit-Daten in jeder Speicherzelle gespeichert werden, und jede Speicherzelle kann in einen TLC-Modus programmiert werden, in dem die Speicherzelle abhängig von einer Verteilung von Schwellenspannungen einen von acht Zuständen aufweisen kann. Zum Beispiel kann sich eine Speicherzelle, die zum Speichern der Daten ,111' ausgebildet ist, in einem Löschzustand E befinden, und Speicherzellen, die zum jeweiligen Speichern der Daten, 110', ,101', ,100', ,011', ,010', ,001' und ,000' ausgebildet sind, können sich jeweils im ersten bis siebten Programmierzustand P1 bis P7 befinden, allerdings sind die beispielhaften Ausführungsformen nicht darauf beschränkt, und die Datenwerte können anderen Programmiermodi entsprechen.
  • Mit Bezug auf die 4D kann der Quadruple-Level-Cell (QLC)-Modus ein Programmiermodus sein, in dem 4-Bit-Daten in jeder Speicherzelle gespeichert werden, und jede Speicherzelle kann in einen QLC-Modus programmiert werden, in dem die Speicherzelle abhängig von einer Verteilung von Schwellenspannungen einen von 16 Zuständen aufweisen kann. Zum Beispiel kann sich eine Speicherzelle, die zum Speichern der Daten ,1111' ausgebildet ist, in einem Löschzustand E befinden, und Speicherzellen, die zum jeweiligen Speichern der Daten ,1110', ,1101', ,1100', ,1011', ,1010', ,1001', ,1000', ,0111', ,0110', 0101', ,0100', ,0011', ,0010', ,0001' und ,0000' ausgebildet sind, können sich jeweils im ersten bis fünfzehnten Programmierzustand P1 bis P15 befinden, allerdings sind die beispielhaften Ausführungsformen nicht darauf beschränkt, und die Datenwerte können anderen Programmiermodi entsprechen.
  • Mit Bezug auf die 4A bis 4D kann ein Intervall zwischen zwei benachbarten Zuständen (d. h. zwei Tälern) als ein „Talabstand“ definiert werden. In Speicherzellen, die in den SLC-Modus programmiert sind, kann ein erster Talabstand VM1 zwischen dem Löschzustand E und dem Programmierzustand P vorhanden sein. In Speicherzellen, die in den MLC-Modus programmiert sind, kann ein zweiter Talabstand VM2, der kleiner als der erste Talabstand VM1 ist, jedoch nicht darauf beschränkt ist, zwischen dem ersten und zweiten Programmierzustand P1 und P2 vorhanden sein. In Speicherzellen, die in den TLC-Modus programmiert sind, kann ein dritter Talabstand VM3, der kleiner als der zweite Talabstand VM2 ist, jedoch nicht darauf beschränkt ist, zwischen dem ersten und zweiten Programmierzustand P1 und P2 vorhanden sein. In Speicherzellen, die in den QLC-Modus programmiert sind, kann ein vierter Talabstand VM4, der kleiner als der dritte Talabstand VM3 ist, jedoch nicht darauf beschränkt ist, zwischen dem ersten und zweiten Programmierzustand P1 und P2 vorhanden sein. Wie oben beschrieben wird, kann sich entsprechend wenigstens einer beispielhaften Ausführungsform ein Talabstand vom SLC-Modus zum QLC-Modus allmählich reduzieren, allerdings sind die beispielhaften Ausführungsformen nicht darauf beschränkt, und die Talabstände können zum Beispiel gleich oder größer als vorherige Talabstände sein.
  • Wie oben mit Bezug auf die 2 beschrieben wird, kann entsprechend wenigstens einer beispielhaften Ausführungsform eine Verteilung von Schwellenspannungen von programmierten Speicherzellen, aufgrund eines EPI nach links verschoben sein, oder, mit anderen Worten, die Verteilung von Schwellenspannungen wird reduziert und/oder basierend auf dem EPI eingestellt. Dementsprechend kann eine Programmieroperation auf einem Block, der ein kurzes EPI aufweist, in einem Programmiermodus (z. B. einem QLC-Modus usw.), der einen im Vergleich zu den Talabständen der anderen Programmiermodi relativ kleinen Talabstand aufweist, durchgeführt werden, während eine Programmieroperation auf einem Block, der ein langes EPI aufweist, in einem Programmiermodus (z. B. einem SLC-Modus usw.), der einen im Vergleich zu den Talabständen der anderen Programmiermodi relativ großen Talabstand aufweist, durchgeführt werden kann. Dies wird nachstehend mit Bezug auf die 8 bis 13 beschrieben.
  • Die 5 ist ein Blockdiagramm eines Beispiels für den Speicher-Controllers 100 der 1 entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 5 kann ein Speicher-Controller 100a eine EPI-Prüferschaltungsanordnung 110, eine Programmiermodussteuerschaltungsanordnung 120, eine Verarbeitungsschaltungsanordnung 130, eine Host-Schnittstelle 140, einen Puffer 150 und/oder eine NVM-Schnittstelle 160 usw. umfassen, ist jedoch nicht darauf beschränkt. Zusätzlich kann der Speicher-Controller 100a des Weiteren einen Bus 170 umfassen, über den die Komponenten des Speicher-Controllers 100a miteinander kommunizieren können. Die oben gegebene, mit Bezug auf die 1 und 5 dargestellte Beschreibung kann auf die eine oder mehrere andere beispielhafte Ausführungsformen angewendet werden, und eine wiederholte Beschreibung davon wird weggelassen. Allerdings sind die beispielhaften Ausführungsformen nicht darauf beschränkt, und die beispielhaften Ausführungsformen können eine andere Hardware-Struktur als die Hardware-Struktur der 1 und 5 aufweisen.
  • Die EPI-Prüferschaltungsanordnung 110 kann wenigstens einen Zeitgeber umfassen und ein EPI jeder der Speichergruppen detektieren, die in einem Speicherzellen-Array 210 eines NVM 200 enthalten sind. In wenigstens einer beispielhaften Ausführungsform kann wenigstens ein Zeitgeber, der in der EPI-Prüferschaltungsanordnung 110 enthalten ist, von mehreren Speichergruppen gemeinsam genutzt werden. In wenigstens einer beispielhaften Ausführungsform kann die EPI-Prüferschaltungsanordnung 110 Zeitgeber entsprechend jeweils den mehreren Speichergruppen umfassen. Allerdings sind die erfindungsgemäßen Konzepte nicht darauf beschränkt, und die EPI-Prüferschaltungsanordnung 110 kann so definiert sein, dass sie verschiedene andere Schaltungen, Komponenten und/oder computerlesbare Anweisungen umfasst, die zum Messen von Zeit in der Lage sind. Wenn zum Beispiel die EPI-Prüferschaltungsanordnung 110 die Zeit basierend auf dem Zählen der Zyklen eines Taktsignals misst, das von einem Taktgenerator (nicht dargestellt) generiert wird, kann die EPI-Prüferschaltungsanordnung 110 ebenfalls einen Zähler usw. umfassen.
  • Die Programmiermodussteuerschaltungsanordnung 120 kann einen Programmiermodus für eine Speichergruppe als einen von mehreren Programmiermodi, zu denen wenigstens einer von Folgenden zählt, ein QLC-Modus, ein TLC-Modus, ein MLC-Modus und ein SLC-Modus, basierend auf einem Detektionsergebnis der EPI-Prüferschaltungsanordnung 110 bestimmen. In wenigstens einer beispielhaften Ausführungsform kann die Programmiermodussteuerschaltungsanordnung 120 als Software oder Firmware umgesetzt sein (z. B. computerlesbare Anweisungen usw.), die in einen Speicher des Speicher-Controllers 100a geladen und von der Verarbeitungsschaltungsanordnung 130 ausgeführt werden. In wenigstens einer beispielhaften Ausführungsform kann die Programmiermodussteuerschaltungsanordnung 120 als Hardware umgesetzt sein.
  • Die Verarbeitungsschaltungsanordnung 130 kann eine zentrale Recheneinheit (CPU), einen Mikroprozessor (MP), eine Arithmetik-Logik-Einheit (ALU), einen Digitalsignalprozessor, einen Mikrocomputer, ein Field Programmable Gate Array (FPGA), ein System-on-Chip (SoC), eine programmierbare Logikeinheit, eine anwendungsspezifische integrierte Schaltung (ASIC) usw. umfassen, und/oder sie kann eine festverdrahtete Schaltung, die Logikschaltungen umfasst, oder Kombinationen davon sein, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Die Verarbeitungsschaltungsanordnung 130 kann die Gesamtoperation des Speicher-Controllers 100a steuern. In wenigstens einer beispielhaften Ausführungsform kann die Verarbeitungsschaltungsanordnung 130 als ein Mehrkernprozessor umgesetzt sein, zum Beispiel ein Doppelkernprozessor, ein Vierkernprozessor usw. Entsprechend wenigstens einer beispielhaften Ausführungsform kann die Verarbeitungsschaltungsanordnung 130 die Funktionalität von wenigstens einem von Folgenden, der EPI-Prüferschaltungsanordnung 110 und der Programmiermodussteuerschaltungsanordnung 120, umfassen, ersetzen und/oder durchführen.
  • Die Host-Schnittstelle 140 kann eine physische Verbindung zwischen einem Host (z. B. einer extern Einrichtung, einer Recheneinrichtung usw.) und dem Speicher-Controller 100 bereitstellen. Zum Beispiel kann die Host-Schnittstelle 140 verschiedene Schnittstellenverfahren umfassen, wie zum Beispiel Advanced Technology Attachment (ATA), Serial ATA (SATA), External SATA (e-SATA), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), Peripheral Component Interconnect (PCI), PCI Express (PCI-E), IEEE 1394, Universal Serial Bus (USB), eine Secure Digital (SD)-Karte, eine Multimedia Card (MMC), eine Embedded Multimedia Card (eMMC) und/oder eine Compact Flash (CF)-Kartenschnittstelle, ist jedoch nicht darauf beschränkt.
  • Die NVM-Schnittstelle 160 kann eine physische Verbindung zwischen dem Speicher-Controller 100 und dem NVM 200 bereitstellen. Zum Beispiel können über die NVM-Schnittstelle 160 ein Befehlssignal CMD, ein Adresssignal ADDR und/oder Datensignale DATA usw. zwischen dem Speicher-Controller 100 und dem NVM 200 übertragen und/oder empfangen werden. Daten, die vom Host zum Schreiben angefordert werden, und Daten, die vom NVM 200 gelesen werden, können temporär im Puffer 150 gespeichert werden.
  • Die 6 ist ein Blockdiagramm eines Beispiels für den NVM 200 der 1 entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 6 kann ein NVM 200a ein Speicherzellen-Array 210, eine Steuerschaltungsanordnung 220, einen Spannungsgenerator 230, einen Zeilendecodierer 240 und/oder einen Seitenpuffer 250 umfassen. Obwohl dies in der 6 nicht gezeigt ist, kann der NVM 200a des Weiteren verschiedene andere Komponenten umfassen, die in Beziehung zu (einer) Speicheroperation(en) stehen, wie zum Beispiel eine Daten-E/A-Schaltung, eine E/A-Schnittstelle usw.
  • Das Speicherzellen-Array 210 kann mehrere Blöcke BLK1 bis BLKz umfassen, und Speicherzellen der Blöcke BLK1 bis BLKz können mit Wortleitungen WL, Strangauswahlleitungen SSL, Masseauswahlleitungen GSL und/oder Bitleitungen BL usw. verbunden sein. Das Speicherzellen-Array 210 kann mit dem Zeilendecodierer 240 über die Wortleitungen WL, die Strangauswahlleitungen SSL und/oder die Masseauswahlleitungen GSL usw. verbunden sein, und kann mit dem Seitenpuffer 250 über die Bitleitungen BL verbunden sein. Jede der Speicherzellen kann wenigstens ein Bit speichern. In wenigstens einer beispielhaften Ausführungsform kann jede der Speicherzellen einer SLC, einer MLC, einer TLC oder einer QLC entsprechen.
  • In wenigstens einer beispielhaften Ausführungsform kann das Speicherzellen-Array 210 ein zweidimensionales (2D) Speicherzellen-Array umfassen, das mehrere Zellenstränge umfasst, die in einer Zeilenrichtung und einer Spaltenrichtung angeordnet sind, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt, und das Speicherzellen-Array kann zum Beispiel andere Anordnungen aufweisen, wie zum Beispiel ein dreidimensionales (3D) Speicherzellen-Array, das mehrere Zellenstränge umfasst, usw. Jeder der Zellenstränge kann Speicherzellen umfassen, die jeweils mit Wortleitungen verbunden sind, die auf einem Substrat gestapelt sind, zum Beispiel in einer senkrechten Richtung. Die folgenden Patentdokumente, die hiermit durch Bezugnahme aufgenommen sind, offenbaren geeignete Ausgestaltungen für 3D-Speicherzellen-Arrays, in denen das 3D-Speicherzellen-Array auf mehreren Ebenen ausgebildet ist, wobei Wortleitungen und/oder Bitleitungen gemeinsam unter den Ebenen genutzt werden: US-Patente 7,679,133 ; 8,553,466 ; 8,654,587 ; 8,559,235 und die US-Patentveröffentlichung 2011/0233648.
  • Die Steuerschaltungsanordnung 220 kann verschiedene interne Steuersignale zum Programmieren von Daten in das Speicherzellen-Array 210 oder zum Lesen von Daten vom Speicherzellen-Array 210 basierend auf einem Befehlssignal CMD, einem Adresssignal ADDR und/oder einem Steuersignal CTRL usw. ausgeben, die vom Speicher-Controller 100 empfangen werden. Als ein Beispiel: Die Steuerschaltungsanordnung 220 kann ein Spannungssteuersignal CTRL_vol zum Steuern der Pegel verschiedener Spannungen, die vom Spannungsgenerator 230 generiert werden, ausgeben, dem Zeilendecodierer 240 eine Zeilenadresse X-ADDR bereitstellen und dem Seitenpuffer 250 eine Spaltenadresse Y-ADDR bereitstellen usw.
  • Der Spannungsgenerator 230 kann verschiedene Arten von Spannungen zum Durchführen von Programmier-, Lese- und/oder Löschoperationen usw. auf dem Speicherzellen-Array 210 basierend auf dem Spannungssteuersignal CTRL vol generieren. Zum Beispiel kann der Spannungsgenerator 230 Wortleitungsspannungen VWL generieren, zum Beispiel eine Programmierspannung, eine Lesespannung und eine Programmierprüfspannung usw. Als Reaktion auf die Zeilenadresse X-ADDR kann der Zeilendecodierer 240 eine von mehreren Wortleitungen WL und eine von mehreren Strangauswahlleitungen SSL auswählen. Der Seitenpuffer 250 kann einige Bitleitungen aus den Bitleitungen BL als Reaktion auf die Spaltenadresse Y-ADDR auswählen. Zum Beispiel kann der Seitenpuffer 250, abhängig von einem Operationsmodus, als ein Schreibtreiber und/oder als ein Leseverstärker usw. arbeiten.
  • In wenigstens einer beispielhaften Ausführungsform kann die Steuerschaltungsanordnung 220 ein Spannungssteuersignal CTRL_vol, um eine Programmieroperation für eine Speichergruppe durchzuführen, entsprechend und/oder basierend auf einem Programmiermodus entsprechend der Speichergruppe generieren. Wenn zum Beispiel der Programmiermodus ein MLC-Modus ist, wie in der 4B gezeigt wird, kann die Steuerschaltungsanordnung 220 ein Spannungssteuersignal CTRL_vol generieren, um die Programmierspannung und die Programmierprüfspannung zu generieren, so dass eine Speicherzelle zum Beispiel in einen vom ersten bis dritten Programmierzustand P1 bis P3 programmiert ist, ist jedoch nicht darauf beschränkt. Wenn zum Beispiel der Programmiermodus ein QLC-Modus ist, wie in der 4D gezeigt wird, kann die Steuerschaltungsanordnung 220 ein Spannungssteuersignal CTRL vol generieren, um die Programmierspannung und die Programmierprüfspannung zu generieren, so dass eine Speicherzelle in einen vom ersten bis fünfzehnten Programmierzustand P1 bis P15 usw. programmiert ist.
  • In wenigstens einer beispielhaften Ausführungsform kann die Steuerschaltungsanordnung 220 ein Spannungssteuersignal CTRL_vol, um eine Leseoperation auf einer Speichergruppe durchzuführen, entsprechend und/oder basierend auf einem Programmiermodus entsprechend der Speichergruppe generieren. Wenn zum Beispiel der Programmiermodus ein TLC-Modus ist, wie in der 4C gezeigt wird, kann die Steuerschaltungsanordnung 220 ein Spannungssteuersignal CTRL_vol entsprechend einer Lesespannung generieren, um den ersten bis siebten Programmierzustand P1 bis P7 zu lesen, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Wenn der Programmiermodus zum Beispiel ein QLC-Modus ist, wie in der 4D gezeigt wird, kann die Steuerschaltungsanordnung 220 ein Spannungssteuersignal CTRL_vol entsprechend einer Lesespannung generieren, um den ersten bis fünfzehnten Programmierzustand P1 bis P15 usw. zu lesen.
  • Die 7 veranschaulicht eine EPI-Tabelle ET1 entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 7 kann die EPI-Tabelle ET1 EPI-Informationen entsprechend jedem von mehreren Speicherblöcken speichern. Hier wird nachstehend ein Speicherblock der Kürze halber als ein Block bezeichnet. Zum Beispiel können EPI-Informationen über einen ersten Block BLK1 als t1 gespeichert werden, und EPI-Informationen über einen zweiten Block BLK2 können als t2 gespeichert werden usw. In wenigstens einer beispielhaften Ausführungsform kann die EPI-Tabelle ET1 in einem Metabereich des NVM 200 gespeichert werden, ist jedoch nicht darauf beschränkt, und kann in anderen Speicherbereichen und/oder Speichereinrichtungen gespeichert werden. In wenigstens einer beispielhaften Ausführungsform kann die EPI-Tabelle ET1 im dynamischen Direktzugriffsspeicher (Dynamic Random Access Memory, DRAM) des Speichersystems 10 gespeichert werden. In wenigstens einer beispielhaften Ausführungsform kann die EPI-Tabelle ET1 im statischen RAM (SRAM) des Speicher-Controllers 100 gespeichert werden. Hier wird nachstehend wenigstens eine beispielhafte Ausführungsform, in der EPI-Informationen für jeden Block gemanagt werden, hauptsächlich mit Bezug auf die 8 bis 16 beschrieben.
  • Die 8 ist ein Flussdiagramm eines Verfahrens des Betriebs eines Speichersystems entsprechend wenigstens einer beispielhaften Ausführungsform. Die 9 ist ein konzeptionelles Diagramm einer Programmieroperation für einen Speicherblock im Betriebsverfahren der 8 entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 1, 8 und 9 kann in der Operation S200 das Speichersystem 10 ein EPI des Speicherblocks detektieren. Wenn zum Beispiel eine Datenschreibanforderung für einen ersten Block BLK1 empfangen wird, kann das Speichersystem 10 ein EPI des ersten Blocks BLK1 detektieren. In der Operation S210 kann das Speichersystem 10 bestimmen, ob das detektierte EPI gleich oder kürzer als eine Referenzzeit tREF ist. Falls bestimmt wird, dass das detektierte EPI gleich oder kürzer als die Referenzzeit tREF ist, kann die Operation S240 durchgeführt werden; andernfalls kann die Operation S250 durchgeführt werden. Mit anderen Worten kann das Speichersystem 10 basierend auf der Länge des detektierten EPI bestimmen, ob die Operation S240 durchgeführt wird.
  • Wenn das detektierte EPI gleich oder kürzer als die Referenzzeit tREF ist, kann das Speichersystem 10 in der Operation S240 eine Programmieroperation in einem ersten Programmiermodus durchführen, in dem N-Bit-Daten in eine Speicherzelle geschrieben werden (N ist eine positive Ganzzahl). Zum Beispiel kann N 4 sein, und der erste Programmiermodus kann ein QLC-Modus sein, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Wenn zum Beispiel das EPI des ersten Blocks BLK1 gleich oder kürzer als die Referenzzeit tREF ist, kann das Speichersystem 10 eine Programmieroperation auf einigen Seiten des ersten Blocks BLK1 im QLC-Modus durchführen usw.
  • Andernfalls kann, falls das detektierte EPI die Referenzzeit tREF überschreitet, das Speichersystem 10 in der Operation S250 eine Programmieroperation in einem zweiten Programmiermodus durchführen, in dem M-Bit-Daten in eine Speicherzelle geschrieben werden (M ist eine positive Ganzzahl kleiner als N). Zum Beispiel kann M 3 sein, und der zweite Programmiermodus kann ein TLC-Modus sein, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Wenn zum Beispiel das EPI des ersten Blocks BLK1 die Referenzzeit tREF überschreitet, kann das Speichersystem 10 eine Programmieroperation auf einigen der übrigen Seiten des ersten Blocks im TLC-Modus durchführen usw.
  • In wenigstens einer beispielhaften Ausführungsform kann nach der Programmieroperation auf den einigen Seiten des ersten Blocks BLK1 im QLC-Modus das Schreiben des ersten Blocks BLK1 erneut angefordert werden, nachdem eine gewünschte und/oder vorbestimmte Zeit abgelaufen ist. Dementsprechend kann ein EPI des ersten Blocks BLK1 erneut detektiert werden, und ein EPI kann die Referenzzeit tREF zu einem Zeitpunkt durchlaufen, zu dem das EPI des ersten Blocks BLK1 erneut detektiert wird. In diesem Fall kann eine Programmieroperation auf einigen der übrigen Seiten des ersten Blocks BLK1 im TLC-Modus durchgeführt werden usw.
  • Die 10 ist ein Flussdiagramm eines Verfahrens des Betriebs eines Speichersystems 10 entsprechend wenigstens einer beispielhaften Ausführungsform. Die 11 ist ein konzeptionelles Diagramm einer Programmieroperation für einen Speicherblock im Betriebsverfahren der 10 entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 1, 10 und 11 kann das Operationsverfahren entsprechend der vorliegenden beispielhaften Ausführungsform einem modifizierten Beispiel für das in der 8 gezeigte Operationsverfahren entsprechen, und eine wiederholte Beschreibung davon wird weggelassen. In der Operation S210a kann das Speichersystem 10 bestimmen, ob ein detektiertes EPI gleich oder kürzer als eine erste Referenzzeit tREF1 ist. Zum Beispiel kann die erste Referenzzeit tREF1 etwa 25 Minuten betragen, ist jedoch nicht darauf beschränkt, und die Referenzzeit kann auf irgendeine gewünschte Zeit gesetzt werden. Falls bestimmt wird, dass das detektierte EPI die erste Referenzzeit tREF1 überschreitet, kann das Speichersystem 10 in der Operation S220 bestimmen, ob das detektierte EPI gleich oder kürzer als eine zweite Referenzzeit tREF2 ist. Zum Beispiel kann die zweite Referenzzeit tREF2 drei Stunden betragen usw. Falls bestimmt wird, dass das detektierte EPI gleich oder kürzer als die zweite Referenzzeit tREF2 ist, kann die Operation S250 durchgeführt werden; andernfalls kann die Operation S260 durchgeführt werden.
  • In der Operation S250 kann das Speichersystem 10 eine Programmieroperation in einem zweiten Programmiermodus durchführen, in dem M-Bit-Daten in eine Speicherzelle geschrieben werden. In der Operation S260 kann das Speichersystem 10 eine Programmieroperation in einem dritten Programmiermodus durchführen, in dem L-Bit-Daten in eine Speicherzelle geschrieben werden (hier ist L eine positive Ganzzahl kleiner als M). Zum Beispiel kann L 2 sein, und der dritte Programmiermodus kann ein MLC-Modus sein, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Wenn zum Beispiel ein EPI eines ersten Blocks BLK1 die zweite Referenzzeit tREF2 überschreitet, kann eine Programmieroperation auf einigen der übrigen Seiten des ersten Blocks BLK1 im MLC-Modus durchgeführt werden usw.
  • Die 12 ist ein Flussdiagramm eines Verfahrens des Betriebs eines Speichersystems entsprechend wenigstens einer beispielhaften Ausführungsform. Die 13 ist ein konzeptionelles Diagramm einer Programmieroperation für einen Speicherblock im Betriebsverfahren der 12 entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 1, 12 und 13 kann das Operationsverfahren entsprechend den beispielhaften Ausführungsformen der 1, 12 und 13 einer modifizierten beispielhaften Ausführungsform des in der 10 gezeigten Operationsverfahrens entsprechen, und eine wiederholte Beschreibung davon wird weggelassen. In der Operation S220 kann das Speichersystem 10 bestimmen, ob ein detektiertes EPI gleich oder kürzer als eine zweite Referenzzeit tREF2 ist. Falls bestimmt wird, dass das detektierte EPI die zweite Referenzzeit tREF2 überschreitet, kann das Speichersystem 10 in der Operation S230 bestimmen, ob das detektierte EPI gleich oder kürzer als eine dritte Referenzzeit tREF3 ist. Zum Beispiel kann die dritte Referenzzeit tREF3 24 Stunden betragen, ist jedoch nicht darauf beschränkt. Falls bestimmt wird, dass das detektierte EPI gleich oder kürzer als die dritte Referenzzeit tREF3 ist, kann die Operation S260 durchgeführt werden; andernfalls kann die Operation S270 durchgeführt werden.
  • In der Operation S260 kann das Speichersystem 10 eine Programmieroperation in einem dritten Programmiermodus durchführen, in dem L-Bit-Daten in eine Speicherzelle geschrieben werden. In der Operation S270 kann das Speichersystem 10 eine Programmieroperation in einem vierten Programmiermodus durchführen, in dem K-Bit-Daten in eine Speicherzelle geschrieben werden (K ist eine positive Ganzzahl kleiner als L). Zum Beispiel kann K 1 sein, und der vierte Programmiermodus kann ein SLC-Modus sein, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Wenn zum Beispiel das EPI des ersten Blocks BLK1 die dritte Referenzzeit tREF3 überschreitet, kann das Speichersystem 10 eine Programmieroperation auf einigen der übrigen Seiten des ersten Blocks BLK1 im SLC-Modus durchführen, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt.
  • Die 14 ist ein Flussdiagramm eines Verfahrens des Betriebs eines Speichersystems entsprechend wenigstens einer beispielhaften Ausführungsform. Die 15 ist ein konzeptionelles Diagramm einer Programmieroperation für einen Speicherblock im Betriebsverfahren der 14 entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 1, 14 und 15 kann das Operationsverfahren entsprechend der wenigstens einen beispielhaften Ausführungsform einem modifizierten Beispiel für das in der 8 gezeigte Operationsverfahrens entsprechen, und die oben mit Bezug auf die 8 und 9 dargestellten Beschreibungen können ebenfalls auf die vorliegende beispielhafte Ausführungsform angewendet werden. Zum Beispiel kann das Operationsverfahren entsprechend den 1, 14 und 15 im Vergleich zum Operationsverfahren der 8 des Weiteren die Operationen S280 und S290 umfassen. Allerdings sind die beispielhaften Ausführungsformen der erfindungsgemäßen Konzepte nicht darauf beschränkt. In einigen beispielhaften Ausführungsformen kann ein Operationsverfahren im Vergleich zum Operationsverfahren der 10 oder der 12 usw. des Weiteren die Operationen S280 und S290 umfassen.
  • In der Operation S290 kann das Speichersystem 10 eine Programmieroperation in einem Default-Programmiermodus durchführen. Zum Beispiel kann, nachdem ein plötzliches Stromausfall (Sudden Power-Off, SPO)-Ereignis während einer Programmieroperation auf einem ersten Block BLK1 aufgetreten ist, eine Programmieroperation auf einigen der übrigen Seiten des ersten Blocks BLK1 in einem Default-Programmiermodus (z. B. einem SLC-Modus usw.) durchgeführt werden, wenn wieder Leistung angelegt wird.
  • Aufgrund des Auftretens eines SPO kann ein Zeitgeber zum Detektieren von EPIs von Speichergruppen zurückgesetzt sein und/oder Informationen, die Löschzeitpunkte der Speichergruppen angeben, können gelöscht sein. Aus diesen Gründen kann die Genauigkeit der EPI-Informationen der Speichereinrichtung verringert sein. Wenn eine Programmieroperation auf einer Speichergruppe nach dem Auftreten des SPO durchgeführt wird, kann dementsprechend die Programmieroperation auf einem entsprechenden Speicherblock in einem Default-Programmiermodus unter der Annahme durchgeführt werden, dass ein langer Zeitraum seit einem Löschzeitpunkt des entsprechenden Speicherblocks abgelaufen ist. Zum Beispiel kann der Default-Programmiermodus ein SLC-Modus oder ein MLC-Modus mit einem relativ großen Talabstand sein, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt.
  • Die 16A und 16B zeigen die Programmiermodustabellen PMT1 und PMT1' entsprechend einigen beispielhaften Ausführungsformen.
  • Mit Bezug auf die 16A kann die Programmiermodustabelle PMT1 Programmiermodi speichern, die jeweils mehreren logischen Seitennummern (Logical Page Numbers, LPNs) entsprechen. In einigen beispielhaften Ausführungsformen kann die Programmiermodustabelle PMT1 einen Programmiermodus für jede LPN-Gruppe unter Beschreibung einer Start-LPN und einer End-LPN speichern. Zum Beispiel kann ein Programmiermodus für eine erste LPN LPN1 als ein QLC-Modus bestimmt werden, und ein Programmiermodus für eine zweite LPN LPN2 kann als ein MLC-Modus bestimmt werden, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt.
  • Mit Bezug auf die 16B kann die Programmiermodustabelle PMT1' Programmiermodi speichern, die jeweils mehreren physikalischen Seitennummern (Physical Page Numbers, PPNs) entsprechen. In einigen beispielhaften Ausführungsformen kann die Programmiermodustabelle PMT1' einen Programmiermodus für jede PPN-Gruppe unter Beschreibung einer Start-PPN und einer End-PPN speichern. Zum Beispiel kann ein Programmiermodus für eine erste PPN PPN1 als ein QLC-Modus bestimmt werden, und ein Programmiermodus für eine zweite PPN PPN2 kann als ein MLC-Modus bestimmt werden, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt.
  • Mit Bezug auf die 1, 16A und 16B kann der Speicher-Controller 100 eine Programmiermodustabelle PMT1 und/oder PMT2 aktualisieren, nachdem ein Programmiermodus basierend auf einem EPI bestimmt worden ist oder nachdem eine Programmieroperation auf dem NVM 200 im bestimmten Programmiermodus durchgeführt worden ist. In wenigstens einer beispielhaften Ausführungsform kann der Speicher-Controller 100 die Programmiermodustabelle PMT1 und/oder PMT2 in einem Metabereich des NVM 200 speichern. In wenigstens einer beispielhaften Ausführungsform kann der Speicher-Controller 100 die Programmiermodustabelle PMT1 und/oder PMT2 in einem Speicher (z. B. SRAM) des Speicher-Controllers 100 und/oder einem Speicher (z. B. DRAM) des Speichersystems 10 usw. speichern.
  • Die 17 zeigt einen Speicherblock BLKz, der dazu ausgebildet ist, EPI-Informationen zu speichern, entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 17 können die EPI-Informationen und/oder die Programmiermodusinformationen über die erste bis dritte Seite page1 bis page3 eines Blocks BLKz in einem Metabereich in Bezug auf die erste bis dritte Seite page1 bis page3 des Blocks BLKz gespeichert werden, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Auch können die EPI-Informationen und/oder die Programmiermodusinformationen über andere Seiten page(k-1) bis page(k) des Blocks BLKz in einem Metabereich in Bezug auf die Seiten page(k-1) bis page(k) des Blocks BLKz gespeichert werden, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt.
  • Als ein erstes Beispiel kann, wenn eine Datenschreibanforderung empfangen wird, ein Speicher-Controller 100 die in einem Metabereich des Blocks BLKz gespeicherten EPI-Informationen lesen und einen Programmiermodus des Blocks BLKz basierend auf den gelesenen EPI-Informationen usw. bestimmen. Als ein zweites Beispie kann, wenn eine Datenleseanforderung empfangen wird, der Speicher-Controller 100 die im Metabereich des Blocks BLKz gespeicherten Programmiermodusinformationen lesen und eine Lesebedingung (z. B. einen oder mehrere Lesespannungspegel) für den Block BLKz basierend auf den gelesenen Programmiermodusinformationen usw. einstellen.
  • Die 18A und 18B zeigen eine EPI-Tabelle ET2 bzw. eine Programmiermodustabelle PMT2 entsprechend einigen beispielhaften Ausführungsformen.
  • Mit Bezug auf die 18A kann die EPI-Tabelle ET2 EPI-Informationen entsprechend jedem von mehreren Speicher-Stacks speichern. Hier wird nachstehend ein Unterspeicher-Stack der Kürze halber als ein Stack bezeichnet. Zum Beispiel können EPI-Informationen für einen ersten Stack STK1 als t1' gespeichert werden, und EPI-Informationen für einen zweiten Stack STK2 können als t2' gespeichert werden, usw.
  • Mit Bezug auf die 18B kann die Programmiermodustabelle PMT2 Programmiermodi speichern, die jeweils mehreren Stacks entsprechen. In einigen beispielhaften Ausführungsformen kann die Programmiermodustabelle PMT2 einen Programmiermodus für jede Stack-Gruppe unter Beschreibung eines Start-Stacks und eines End-Stacks speichern. Zum Beispiel kann ein Programmiermodus für einen ersten Stack STK1 als ein QLC-Modus bestimmt werden, und ein Programmiermodus für einen zweiten Stack STK2 kann als ein MLC-Modus bestimmt werden, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Hier werden nachstehend eine Struktur und eine Definition eines Stacks mit Bezug auf die 19 beschrieben.
  • Die 19 ist eine partielle Querschnittsansicht eines Speicherblocks BLK entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 19 kann in einer vertikalen Speichereinrichtung entsprechend wenigstens einer beispielhaften Ausführungsform ein Ätzprozess zum Bilden eines Kanallochs durchgeführt werden, um eine Kanalstruktur in einem Speicherblock BLK mit einer 3D-Struktur zu bilden, und ein Durchmesser des Kanallochs kann entsprechend einer Höhe des Speicherblocks BLK variieren, allerdings sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Zum Beispiel kann sich der Durchmesser des Kanallochs von einem oberen Abschnitt des Speicherblocks BLK mit der 3D-Struktur bis zu einem unteren Abschnitt reduzieren. Im Speicherblock BLK mit der 3D-Struktur kann, um den Durchmesser des Kanallochs zu reduzieren und/oder um zu verhindern, dass er sich mehr als gewünscht und/oder übermäßig reduziert, ein Ätzprozess zum Bilden des Kanallochs wenigstens zweimal durchgeführt werden. Insbesondere kann, nachdem ein erster Stack STK1 (d. h. eine erste Stack-Struktur) auf einem Substrat gebildet worden ist, ein Ätzprozess durchgeführt werden, und ein zweiter Stack STK2 (d. h. eine zweite Stack-Struktur) kann auf dem ersten Stack STK1 gebildet werden usw. Auch kann ein Ätzprozess auf dem zweiten Stack STK2 usw. durchgeführt werden.
  • In wenigstens einer beispielhaften Ausführungsform kann im Speicherblock BLK mit der 3D-Struktur der erste Stack STK1 eine Gate-Elektrode 310 und/oder einen Isolierfilm 320 usw. umfassen, die sich in einer senkrechten Richtung abwechselnd befinden, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Auch kann der zweite Stack STK2, der auf den ersten Stack STK1 gestapelt ist, eine Gate-Elektrode 340 und/oder einen Isolierfilm 350 usw. umfassen, die sich in einer senkrechten Richtung abwechselnd befinden, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Entsprechend wenigstens einer beispielhaften Ausführungsform kann sich zwischen dem ersten Stack STK1 und dem zweiten Stack STK2 eine Zwischenstrukturschicht 330 befinden. Auch kann eine Kanalstruktur 360 einen Kanal 362, eine dielektrische Filmstruktur 363, die eine äußere Seitenwandung des Kanals 362 umgibt, und/oder ein im Kanal vergrabenes Filmmuster 361, das sich innerhalb des Kanals 362 befindet, usw. umfassen. Die oben beschriebene Struktur kann wenigstens eine beispielhafte Ausführungsform sein, und ein Speicherblock BLK mit einer 3D-Struktur entsprechend einer oder mehreren beispielhaften Ausführungsformen kann verschiedene andere Strukturen aufweisen, in denen ein Ätzprozess wenigstens zweimal durchgeführt wird.
  • Die 20 ist ein konzeptionelles Diagramm einer Programmieroperation für einen Stack entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 1 und 18A bis 20 kann eine Speichergruppe einem Stack entsprechen, und ein Speichersystem 10 kann ein EPI in Stack-Einheiten managen und einen Programmiermodus bestimmen. Zum Beispiel kann ein Block BLK wenigstens den ersten und zweiten Stack STK1 und STK2 umfassen, die auf einem Substrat in einer senkrechten Richtung gestapelt sind, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Zum Beispiel können der erste und zweite Stack STK1 und STK2 jeweils vereinfachte Strukturen des ersten und zweiten Stacks STK1 und STK2, die in der 19 gezeigt werden, aufweisen. Die in den 8 bis 15 gezeigten Operationsverfahren können auf die vorliegende beispielhafte Ausführungsform angewendet werden.
  • In wenigstens einer beispielhaften Ausführungsform kann, wenn eine Datenschreibanforderung für den Block BLK1 empfangen wird, das Speichersystem 10 ein erstes EPI t1' des ersten Stacks STK1 basierend auf einer EPI-Tabelle ET2 detektieren. Danach kann das Speichersystem 10 bestimmen, ob das detektierte erste EPI t1' gleich oder kürzer als eine erste Referenzzeit (z. B. tREF1 der 12) ist. Falls bestimmt wird, dass das detektierte EPI t1' gleich oder kürzer als die erste Referenzzeit tREF1 ist, kann das Speichersystem 10 eine Programmieroperation auf dem ersten Stack STK1 in einem ersten Programmiermodus durchführen, in dem N-Bit-Daten in eine Speicherzelle geschrieben werden. Zum Beispiel kann N 4 sein, und der erste Programmiermodus kann ein QLC-Modus sein, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt.
  • In wenigstens einer beispielhaften Ausführungsform kann das Speichersystem 10 ein zweites EPI t2' des zweiten Stacks STK2 basierend auf der EPI-Tabelle ET2 detektieren. Danach kann das Speichersystem 10 das detektierte zweite EPI t2' mit der ersten bis dritten Referenzzeit vergleichen (z. B. tREF1, tREF2 und tREF3 der 12), jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Wenn das detektierte zweite EPI t2' die zweite Referenzzeit tREF2 überschreitet, kann das Speichersystem 10 eine Programmieroperation auf dem zweiten Stack STK2 in einem dritten Programmiermodus durchführen, in dem L-Bit-Daten in eine Speicherzelle geschrieben werden. Zum Beispiel kann L 2 sein, und der dritte Programmiermodus kann ein MLC-Modus sein, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt.
  • Die 21 ist ein konzeptionelles Diagramm einer Programmieroperation für einen Stack entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 1 und 21 kann die Programmieroperation entsprechend den 1 und 21 einer modifizierten beispielhaften Ausführungsform der in der 20 gezeigten Programmieroperation entsprechen. In wenigstens einer beispielhaften Ausführungsform kann, wenn ein erstes EPI t1' für einen ersten Stack STK1 gleich oder kürzer als eine erste Referenzzeit (z. B. tREF1 der 12) ist, das Speichersystem 10 eine Programmieroperation auf einigen Seiten des ersten Stacks STK1 zum Beispiel in einem QLC-Modus durchführen, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Nach der Programmieroperation auf einigen Seiten des ersten Stacks STK1 kann, wenn das erste EPI t1' die erste Referenzzeit tREF1 überschreitet, das Speichersystem 10 eine Dummy-Programmieroperation des Schreibens von Dummy-Daten auf die übrigen Seiten des ersten Stacks STK1 durchführen, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Wie oben beschrieben wird, kann nur ein Programmiermodus auf einen Stack anstelle mehrerer Programmiermodi angewendet werden.
  • Des Weiteren kann entsprechend einigen beispielhaften Ausführungsformen, wenn ein EPI entsprechend dem ersten Stack STK1 die erste Referenzzeit tREF1 während der Programmieroperation auf dem ersten Stack STK1 überschreitet, ein Programmiermodus für einen zweiten Stack STK2 als wenigstens einer von Folgenden bestimmt werden, ein QLC-Modus, ein TLC-Modus, ein MLC-Modus und ein SLC-Modus usw. In diesem Fall wird möglicherweise keine Dummy-Programmieroperation des Schreibens von Dummy-Daten auf dem zweiten Stack STK2 durchgeführt. Dementsprechend kann eine Programmieroperation für jeden Unterblock effizient durchgeführt werden, was eine kleinere Einheit als ein Speicherblock ist.
  • Die 22A und 22B zeigen eine EPI-Tabelle ET3 bzw. eine Programmiermodustabelle PMT3 entsprechend einigen beispielhaften Ausführungsformen.
  • Mit Bezug auf die 22A kann die EPI-Tabelle ET3 EPI-Informationen entsprechend jedem von mehreren Unterspeicherblöcken speichern. Hier wird nachstehend ein Unterspeicherblock der Kürze halber als ein Unterblock bezeichnet. Zum Beispiel können EPI-Informationen über einen ersten Unterblock SBLK1 als t1'' gespeichert werden, und EPI-Informationen über einen zweiten Unterblock SBLK2 können als t2" gespeichert werden.
  • Mit Bezug auf die 22B kann die Programmiermodustabelle PMT3 Programmiermodi speichern, die jeweils mehreren Unterblöcken entsprechen. In einigen beispielhaften Ausführungsformen kann die Programmiermodustabelle PMT3 einen Programmiermodus für jede Unterblockgruppe unter Beschreibung eines Start-Unterblocks und eines End-Unterblocks speichern. Zum Beispiel kann ein Programmiermodus für den ersten Unterblock SBLK1 als ein QLC-Modus bestimmt werden, und ein Programmiermodus für den zweiten Unterblock SBLK2 kann als ein MLC-Modus bestimmt werden, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Hier wird nachstehend wenigstens eine beispielhafte Ausführungsform, in der EPI-Informationen für jeden Unterblock gemanagt werden, hauptsächlich mit Bezug auf die 23 und 24 beschrieben.
  • Die 23 ist ein konzeptionelles Diagramm einer Programmieroperation für einen Unterblock entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 1 und 22A bis 23 kann die Speichergruppe einem Unterblock entsprechen, und das Speichersystem 10 kann ein EPI in Unterblock-Einheiten managen und einen Programmiermodus bestimmen. Hier kann der Unterblock eine unabhängig löschbare Einheit sein und als ein Teilblock bezeichnet werden. Zum Beispiel kann ein Block BLK' wenigstens den ersten und zweiten Unterblock SBLK1 und SBLK2 umfassen, ist jedoch nicht darauf beschränkt.
  • Der erste Unterblock SBLK1 kann 0. bis i. Wortleitungen WLo bis WLi umfassen, und der zweite Unterblock SBLK2 kann (i+1). bis m. Wortleitungen WLi+1 bis WLm umfassen. Wenn eine Größe des Blocks BLK' zunimmt, kann der Block BLK' in mehrere Unterblöcke aufgeteilt werden, die den ersten und zweiten Unterblock SBLK1 und SBLK2 usw. umfassen, um das Management der Blöcke zu erleichtern. In diesem Fall kann für jeden Unterblock eine Löschoperation durchgeführt werden, und der Speicherblock BLK' kann eine gewünschte und/oder maximale Speichereinheit sein, die zum gleichen Zeitpunkt gelöscht werden kann.
  • In wenigstens einer beispielhaften Ausführungsform kann, wenn eine Datenschreibanforderung für den Block BLK' empfangen wird, das Speichersystem 10 ein erstes EPI t1'' des ersten Unterblocks SBLK1 basierend auf einer EPI-Tabelle ET3 detektieren. Danach kann das Speichersystem 10 bestimmen, ob das detektierte erste EPI t1'' gleich oder kürzer als eine erste Referenzzeit (z. B. tREF1 der 12 usw.) ist. Falls bestimmt wird, dass das detektierte erste EPI t1'' gleich oder kürzer als die erste Referenzzeit tREF1 ist, kann das Speichersystem 10 eine Programmieroperation auf dem ersten Unterblock SBLK1 in einem ersten Programmiermodus durchführen, in dem N-Bit-Daten in eine Speicherzelle geschrieben werden. Zum Beispiel kann N 4 sein, und der erste Programmiermodus kann ein QLC-Modus sein, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt.
  • In wenigstens einer beispielhaften Ausführungsform kann das Speichersystem 10 ein zweites EPI t2" des zweiten Unterblock SBLK2 basierend auf der EPI-Tabelle ET3 detektieren. Danach kann das Speichersystem 10 das detektierte zweite EPI t2" mit der ersten bis dritten Referenzzeit vergleichen (z. B. tREF1, tREF2 und tREF3 der 12 usw.). Wenn das detektierte zweite EPI t2" die zweite Referenzzeit tREF2 überschreitet, kann das Speichersystem 10 eine Programmieroperation auf dem zweiten Unterblock SBLK2 in einem dritten Programmiermodus durchführen, in dem L-Bit-Daten in eine Speicherzelle geschrieben werden. Zum Beispiel kann L 2 sein, und der dritte Programmiermodus kann ein MLC-Modus sein, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt.
  • Die 24 ist ein konzeptionelles Diagramm einer Programmieroperation für einen Unterblock entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 1 und 24 kann die Programmieroperation entsprechend den 1 und 24 einem modifizierten Beispiel für die Programmieroperation, die in der 23 gezeigt wird, entsprechen. In wenigstens einer beispielhaften Ausführungsform kann, wenn ein erstes EPI t1' eines ersten Unterblocks SBLK1 gleich oder kürzer als eine erste Referenzzeit (z. B. tREF1 der 12) ist, das Speichersystem 10 eine Programmieroperation auf einigen Seiten des ersten Unterblocks SBLK1 zum Beispiel in einem QLC-Modus durchführen, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Nach der Programmieroperation auf einigen Seiten des ersten Unterblock SBLK1 kann, wenn das erste EPI t1' die erste Referenzzeit tREF1 überschreitet, das Speichersystem 10 eine Dummy-Operation des Schreibens von Dummy-Daten auf die übrigen Seiten des ersten Unterblocks SBLK1 durchführen, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Wie oben beschrieben wird, kann nur ein Programmiermodus auf einen Unterblock anstelle mehrerer Programmiermodi angewendet werden.
  • Des Weiteren kann entsprechend einigen beispielhaften Ausführungsformen, wenn ein EPI entsprechend dem ersten Unterblock SBLK1 die erste Referenzzeit tREF1 während der Programmieroperation auf dem ersten Unterblock SBLK1 überschreitet, ein Programmiermodus für einen zweiten Unterblock SBLK2 als wenigstens einer von Folgenden bestimmt werden, ein QLC-Modus, ein TLC-Modus, ein MLC-Modus und ein SLC-Modus usw. In diesem Fall wird möglicherweise keine Dummy-Programmieroperation des Schreibens von Dummy-Daten auf dem zweiten Unterblock SBLK2 durchgeführt. Dementsprechend kann eine Programmieroperation für jeden Unterblock effizient durchgeführt werden, was eine kleinere Einheit als ein Speicherblock ist.
  • Die 25 ist ein Flussdiagramm einer Datenschreiboperation zwischen einem Host 400, einem Speicher-Controller 100 und/oder einem NVM 200 usw. entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 25 kann in der Operation S310 ein Host 400 eine Datenschreibanforderung ausgeben. In der Operation S320 kann der Host 400 die Datenschreibanforderung und eine Adresse ADDR zu einem Speicher-Controller 100 übertragen. In der Operation S330 kann der Speicher-Controller 100 ein EPI einer Speichergruppe detektieren, die der empfangenen Adresse ADDR entspricht. Zum Beispiel kann der Speicher-Controller 100 das EPI der Speichergruppe basierend auf EPI-Tabellen detektieren (bezugnehmend auf ET1 der 7, ET2 der 18A und ET3 der 22A, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt).
  • In der Operation S340 kann der Speicher-Controller 100 einen Programmiermodus für die Speichergruppe basierend auf dem detektierten EPI bestimmen. In der Operation S350 kann der Speicher-Controller 100 einen Programmierbefehl (z. B. einen programmierenden Befehl, wie zum Beispiel einen Schreibbefehl usw.) im bestimmten Programmiermodus ausgeben. In der Operation S360 kann der Speicher-Controller 100 einen Programmierbefehl zusammen mit dem Programmiermodus zum NVM 200 übertragen. In diesem Fall kann der Speicher-Controller 100 auch Anwenderdaten und/oder Metadaten, die geschrieben werden sollen, zum NVM 200 übertragen. In der Operation S370 kann der NVM 200 eine Programmieroperation auf der Speichergruppe im Programmiermodus durchführen, wie zum Beispiel einen Schreibbefehl unter Verwendung von eingestellten Schreibspannungspegeln basierend auf dem detektierten EPI durchführen. In der Operation S380 kann der NVM 200 eine Antwortnachricht zum Speicher-Controller 100 übertragen, die angibt, dass die Programmieroperation abgeschlossen ist. In der Operation S390 kann der Speicher-Controller 100 eine Antwortnachricht zum Host 400 übertragen, die angibt, dass die Datenschreiboperation abgeschlossen ist.
  • Die 26 ist ein Flussdiagramm einer Datenleseoperation zwischen einem Host 400, einem Speicher-Controller 100 und/oder einem NVM 200 usw. entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 26 kann in der Operation S410 der Host 400 eine Datenleseanforderung ausgeben. In der Operation S420 kann der Host 400 die Datenleseanforderung und/oder eine Adresse ADDR zum Speicher-Controller 100 übertragen. In der Operation S430 kann der Speicher-Controller 100 ein EPI und/oder einen Programmiermodus einer Speichergruppe detektieren, die der empfangenen Adresse ADDR entspricht. Zum Beispiel kann der Speicher-Controller 100 das EPI der Speichergruppe basierend auf EPI-Tabellen detektieren (bezugnehmend auf ET1 der 7, ET2 der 18A und ET3 der 22A, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt). Zum Beispiel kann der Speicher-Controller 100 das EPI der Speichergruppe basierend auf den Programmiermodus-Tabellen detektieren (bezugnehmend auf PMT1 der 16A, PMT1' der 16B, PMT2 der 18B und PMT3 der 22B, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt).
  • In der Operation S440 kann der Speicher-Controller 100 eine Lesebedingung für die Speichergruppe basierend auf dem detektierten EPI und/oder dem Programmiermodus einstellen. Zum Beispiel kann die Lesebedingung einen Lesespannungspegel und/oder eine Lesezeit umfassen. In der Operation S450 kann der Speicher-Controller 100 einen Lesebefehl mit einer eingestellten Lesebedingung durch Einstellen der Lesespannung basierend auf dem detektierten EPI und/oder dem Programmiermodus ausgeben. In der Operation S460 kann der Speicher-Controller 100 den Lesebefehl zusammen mit der Lesebedingung zum NVM 200 übertragen. In der Operation S470 kann der NVM 200 eine Leseoperation auf der Speichergruppe mit der eingestellten Lesebedingung durchführen. In der Operation S480 kann der NVM 200 die gelesenen Daten zum Speicher-Controller 100 übertragen. In der Operation S490 kann der Speicher-Controller 100 die gelesenen Daten zum Host 400 übertragen.
  • Die 27 ist ein Flussdiagramm einer Garbage-Collection-Operation zwischen einem Speicher-Controller 100 und/oder einem NVM 200 usw. entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 27 kann in der Operation S510 der Speicher-Controller 100 eine Garbage-Collection-Operation starten. Die Garbage-Collection-Operation kann sich auf eine Operation beziehen, die einen Quellblock zu einem freien Block macht, indem valide Daten, die in einem Quellblock enthalten sind, in einen Zielblock programmiert werden. Zum Beispiel kann die Speichersteuerung 100 eine Garbage-Collection-Operation als eine Hintergrundoperation durchführen. In der Operation S520 kann der Speicher-Controller 100 ein EPI des Zielblocks detektieren. In der Operation S530 kann der Speicher-Controller 100 einen Programmiermodus für den Zielblock basierend auf dem detektierten EPI bestimmen. In der Operation S540 kann der Speicher-Controller 100 einen Programmierbefehl im bestimmten Programmiermodus ausgeben.
  • In der Operation S550 kann der Speicher-Controller 100 den Programmierbefehl zusammen mit dem Programmiermodus oder, mit anderen Worten, kann der Programmierbefehl Programmiermodusinformationen umfassen, die den Programmiermodus angeben, zum NVM 200 übertragen. In der Operation S560 kann der NVM 200 eine Programmieroperation auf einem Zielblock basierend auf den Programmiermodusinformationen durchführen. In der Operation S570 kann der NVM 200 eine Antwortnachricht zum Speicher-Controller 100 übertragen, die angibt, dass die Programmieroperation auf dem Zielblock abgeschlossen ist.
  • Die 28 ist ein Blockdiagramm eines modifizierten Beispiels für das Speichersystem der 1 entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 28 kann ein Speichersystem 10a einen Speicher-Controller 100a und/oder einen NVM 200 usw. umfassen, und der Speicher-Controller 100a kann eine EPI-Prüferschaltungsanordnung 110a und/oder eine Programmiermodussteuerschaltungsanordnung 120 usw. umfassen. Auch kann der NVM 200 ein Speicherzellen-Array 210, das mehrere Blöcke BLK1 bis BLKz umfasst, und/oder eine Steuerschaltungsanordnung 220 usw. umfassen. Das Speichersystem 10a entsprechend der wenigstens einen beispielhaften Ausführungsform kann einem modifizierten Beispiel für das Speichersystem 10 der 1 entsprechen, und die oben mit Bezug auf die 1 bis 27 dargestellten Beschreibungen können auf die modifizierte beispielhafte Ausführungsform angewendet werden.
  • Die EPI-Prüferschaltungsanordnung 110a kann mehrere Zeitgeber umfassen (z. B. den ersten und zweiten Zeitgeber 111 und 112 usw.), und die Anzahl an Zeitgebern (z. B. der erste und zweite Zeitgeber 111 und 112) kann der Anzahl an Blöcken BLK1 bis BLKz entsprechen. Der Speicher-Controller 100a kann eine Position eines Blocks bestimmen, der zum Schreiben von Daten von einem Host angefordert wird. Die EPI-Prüferschaltungsanordnung 110a kann sich auf einen Wert eines Zeitgebers beziehen, der dem bestimmten Block entspricht, und ein EPI des Blocks detektieren. Sowohl der erste als auch der zweite Zeitgeber 111 und 112 können einen Zeitraum zwischen einem Löschzeitpunkt und einem Schreibzeitpunkt eines Blocks bestimmen, der diesen entspricht, und ein EPI des Blocks detektieren und/oder messen. In einem Beispiel kann der erste Zeitgeber 111, der einem ersten Block BLK1 entspricht, einen Zeitablauf von einem Löschzeitpunkt des ersten Blocks BLK1 bis zu einem Programmierzeitpunkt des ersten BLK1 bestimmen und ein EPI des ersten Blocks BLK1 detektieren und/oder messen.
  • Die 29 ist ein Blockdiagramm eines modifizierten Beispiels für das Speichersystem der 1 entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 29 kann ein Speichersystem 10b einen Speicher-Controller 100b und/oder einen NVM 200 usw. umfassen. Der Speicher-Controller 100b kann eine EPI-Prüferschaltungsanordnung 110b, eine Programmiermodussteuerschaltungsanordnung 120 und/oder eine Löschzeitspeicherschaltung 180 usw. umfassen. Das Speichersystem 10b entsprechend wenigstens einer beispielhaften Ausführungsform kann einem modifizierten Beispiel für das Speichersystem 10 der 1 entsprechen, und die oben mit Bezug auf die 1 bis 27 dargestellten Beschreibungen können auf die beispielhafte Ausführungsform angewendet werden, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt.
  • Die EPI-Prüferschaltungsanordnung 110b kann einen Zeitgeber 111 umfassen, der von wenigstens zwei Blöcken gemeinsam genutzt werden kann. Zum Beispiel kann der in der EPI-Prüferschaltungsanordnung 110b enthaltene Zeitgeber 111 EPIs eines ersten Blocks BLK1 und eines zweiten Blocks BLK2 usw. detektieren. Der Zeitgeber 111 kann einen Zeitpunkt, zu dem eine Löschoperation auf dem ersten Block BLK1 durchgeführt wird, und einen Zeitpunkt, zu dem eine Löschoperation auf dem zweiten Block BLK2 durchgeführt wird, bestimmen. In einem Beispiel kann sich ein Löschzeitpunkt des ersten Blocks BLK1 von einem Löschzeitpunkt des zweiten Blocks BLK2 unterscheiden, und bestimmte Löschzeitpunkte können in der Löschzeitpunktspeicherschaltung 180 und/oder einem Metabereich des Speicherzellen-Arrays 210 usw. gespeichert werden.
  • Anschließend kann der Zeitgeber 111 einen Zeitablauf kontinuierlich bestimmen und einen Schreibzeitpunkt des ersten Blocks BLK1 bestimmen, wenn eine Schreibanforderung für den ersten Block BLK1 empfangen wird. Die EPI-Prüferschaltungsanordnung 110b kann Informationen bestätigen, die den vorher gespeicherten Löschzeitpunkt des ersten Blocks BLK1 angeben, ein EPI detektieren und/oder messen, das einen Zeitraum von einem Schreibzeitpunkt bis zu einem Löschzeitpunkt angibt, und eine Programmieroperation auf dem ersten Block BLK1 in irgendeinem von mehreren Programmiermodi entsprechend einer oder mehreren der oben beschriebenen beispielhaften Ausführungsformen basierend auf dem detektierten EPI durchführen. Gleichermaßen kann der Zeitgeber 111 einen Schreibzeitpunkt des zweiten Blocks BLK2 bestimmen, und ein EPI des zweiten Blocks BLK2 basierend auf Informationen detektieren und/oder messen, die den vorher gespeicherten Löschzeitpunkt des zweiten Blocks BLK2 und den Schreibzeitpunkt des zweiten Blocks BLK2 angeben.
  • Die 30 ist ein Blockdiagramm eines modifizierten Beispiels für das Speichersystem der 1 entsprechend wenigstens einer beispielhaften Ausführungsform.
  • Mit Bezug auf die 30 kann ein Speichersystem 10c einen Speicher-Controller 100c und/oder einen NVM 200c usw. umfassen. Der NVM 200c kann ein Speicherzellen-Array 210, eine Steuerschaltungsanordnung 220 und/oder eine EPI-Prüferschaltungsanordnung 260 usw. umfassen. Der NVM 200c kann einen Block, in den Daten geschrieben werden sollen, basierend auf einer Adresse ADDR, die vom Speicher-Controller 100c zusammen mit einem Programmierbefehl bereitgestellt wird oder darin enthalten ist, bestimmen. In einem Beispiel kann die Adresse ADDR eine Blockadresse umfassen, die irgendeinen von mehreren Blöcken BLK1 bis BLKz des Speicherzellen-Arrays 210 angibt.
  • Die EPI-Prüferschaltungsanordnung 260 kann ein EPI eines Blocks, der durch die Blockadresse ausgewählt ist, detektieren. Wie in der oben beschriebenen beispielhaften Ausführungsform kann die EPI-Prüferschaltungsanordnung 260 wenigstens einen Zeitgeber 261 umfassen. Als ein Beispiel: Die EPI-Prüferschaltungsanordnung 260 kann die gleiche Anzahl Zeitgeber wie die Anzahl der Blöcke BLK1 bis BLKz, die im Speicherzellen-Array 210 enthalten sind, oder eine kleinere Anzahl als die Anzahl der Blöcke BLK1 bis BLKz usw. umfassen.
  • Zum Beispiel kann ein erster Block BLK1 eine Löschoperation als Reaktion auf einen vom Speicher-Controller 100c empfangenen Löschbefehl oder eine Löschoperation aufgrund einer internen Operation (z. B. einer Garbage-Collection-Operation) des NVM 200c durchführen. Die EPI-Prüferschaltungsanordnung 260 kann einen Löschzeitpunkt des ersten Blocks BLK1 bestimmen und ein EPI des ersten Blocks BLK1 detektieren und/oder messen, indem sie eine abgelaufene Zeit bestimmt, bis eine Programmieroperation durchgeführt wird, nachdem die Löschoperation durchgeführt worden ist.
  • Die Steuerschaltungsanordnung 220 kann EPI-Informationen von der EPI-Prüferschaltungsanordnung 260 empfangen, einen Programmiermodus basierend auf den empfangenen EPI-Informationen bestimmen und eine Programmieroperation auf dem Speicherzellen-Array 210 entsprechend dem bestimmten Programmiermodus steuern. Zusätzlich kann die Steuerschaltungsanordnung 220 EPI-Informationen von der EPI-Prüferschaltungsanordnung 260 empfangen, eine Lesebedingung (z. B. einen Lesespannungspegel und Ähnliches) basierend auf den empfangenen EPI-Informationen bestimmen und eine Leseoperation auf dem Speicherzellen-Array 210 unter der bestimmten Lesebedingung steuern.
  • Die 31 ist ein Blockdiagramm eines Beispiels für das Anwenden eines Speichersystems entsprechend wenigstens einer beispielhaften Ausführungsform eines SSD-Systems 1000.
  • Mit Bezug auf die 31 kann das SSD-System 1000 einen Host 1100 und/oder ein SSD 1200 usw. umfassen. Das SSD 1200 kann zum oder vom Host 1100 ein Signal SIG über einen Signalverbinder übertragen und empfangen und Leistung PWR über einen Leistungsverbinder empfangen. Das SSD 1200 kann einen SSD-Controller 1210, eine Hilfsleistungseinrichtung 1220 und/oder mehrere Speichereinrichtungen 1230, 1240 und 1250 usw. umfassen, jedoch sind die beispielhaften Ausführungsformen nicht darauf beschränkt. Die mehreren Speichereinrichtungen 1230, 1240 und 1250 können mit dem SSD-Controller 1210 über mehrere Kanäle Ch1, Ch2 bzw. Chn verbunden sein.
  • Der SSD-Controller 1210 kann unter Verwendung der mehreren Speicher-Controller 100, 100a, 100b und 100c usw. umgesetzt sein, die oben unter Bezug auf die 1 bis 30 beschrieben werden, ist jedoch nicht darauf beschränkt. Zum Beispiel kann der SSD-Controller 1210 einen Programmiermodus entsprechend einer Speichergruppe basierend auf einem EPI der Speichergruppe bestimmen. Auch kann der SSD-Controller 1210 eine Lesebedingung entsprechend der Speichergruppe basierend auf den EPI-Informationen und/oder einen Programmiermodus entsprechend der Speichergruppe einstellen, einschließlich, wenigstens einen Spannungspegel (z. B. Lesespannungsschwellenwertpegel usw.) basierend auf den EPI-Informationen und/oder dem Programmiermodus einzustellen.
  • Die Speichereinrichtungen 1230, 1240 und 1250 können unter Verwendung der mehreren NVMs 200, 200a, 200b und 200c umgesetzt sein, die oben unter Bezug auf die 1 bis 30 beschrieben werden, sind jedoch nicht darauf beschränkt. Zum Beispiel kann jede der Speichereinrichtungen 1230, 1240 und 1250 eine Programmieroperation auf einer Speichergruppe im bestimmten Programmiermodus durchführen und/oder eine Leseoperation auf der Speichergruppe mit der eingestellten Lesebedingung durchführen, einschließlich, wenigstens einen Spannungspegel, der mit der Programmieroperation und/oder der Leseoperation verknüpft ist, basierend auf den EPI-Informationen und/oder dem Programmiermodus einzustellen.
  • Obwohl verschiedene beispielhafte Ausführungsformen der erfindungsgemäßen Konzepte insbesondere mit Bezug auf beispielhafte Ausführungsformen davon gezeigt und beschrieben worden sind, versteht es sich, dass daran verschiedene Änderungen in Form und Details vorgenommen werden können, ohne vom Gedanken und Schutzumfang der folgenden Ansprüche abzuweichen.
  • 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 1020190105004 [0001]
    • US 7679133 [0042]
    • US 8553466 [0042]
    • US 8654587 [0042]
    • US 8559235 [0042]

Claims (22)

  1. Verfahren zum Betreiben eines Speichersystems, wobei das Speichersystem einen nichtflüchtigen Speicher umfasst, wobei das Verfahren umfasst: unter Verwendung einer Verarbeitungsschaltungsanordnung ein Lösch-Programmier-Intervall (EPI) einer Speichergruppe zu messen, wobei das EPI ein Zeitraum von einem Löschzeitpunkt bis zu einem Programmierzeitpunkt der Speichergruppe ist, wobei die Speichergruppe im nichtflüchtigen Speicher enthalten ist; unter Verwendung der Verarbeitungsschaltungsanordnung mehrere Programmiermodi basierend auf einer Anzahl an Datenbits zu bestimmen, die in jeder Speicherzelle der Speichergruppe gespeichert sind; unter Verwendung der Verarbeitungsschaltungsanordnung einen Programmiermodus für die Speichergruppe aus den mehreren Programmiermodi basierend auf dem gemessenen EPI der Speichergruppe auszuwählen; und unter Verwendung der Verarbeitungsschaltungsanordnung eine Programmieroperation auf der Speichergruppe entsprechend dem ausgewählten Programmiermodus durchzuführen, wobei das Durchführen der Programmieroperation auf der Speichergruppe umfasst, wenigstens einen Spannungspegel der Programmieroperation basierend auf dem ausgewählten Programmiermodus einzustellen.
  2. Verfahren nach Anspruch 1, wobei die mehreren Programmiermodi wenigstens einen von Folgenden, einen Quadruple-Level-Cell (QLC)-Modus, einen Triple-Level-Cell (TLC)-Modus, einen Multi-Level-Cell (MLC)-Modus und einen Single-Level-Cell (SLC)-Modus, oder Kombinationen davon umfassen.
  3. Verfahren nach Anspruch 1, wobei die Speichergruppe wenigstens einen von Folgenden, einen Speicherblock, einen Speicher-Stack und einen Unterspeicherblock, oder Kombinationen davon umfasst.
  4. Verfahren nach Anspruch 1, wobei die Speichergruppe einen Speicherblock umfasst; und das Auswählen des Programmiermodus umfasst, den Programmiermodus für den Speicherblock als einen ersten Programmiermodus, in dem N-Bit-Daten in jede Speicherzelle geschrieben werden, als Reaktion darauf, dass das gemessene EPI gleich oder kürzer als eine Referenzzeit ist, auszuwählen und den Programmiermodus für den Speicherblock als einen zweiten Programmiermodus, in dem M-Bit-Daten in jede Speicherzelle geschrieben werden, als Reaktion darauf, dass das gemessene EPI die Referenzzeit überschreitet, auszuwählen, wobei N und M positive Ganzzahlen sind und M kleiner als N ist.
  5. Verfahren nach Anspruch 1, wobei der nichtflüchtige Speicher mehrere Speicherblöcke umfasst, wobei jeder Speicherblock der mehreren Speicherblöcke mehrere Speicher-Stacks umfasst, die auf einem Substrat in einer senkrechten Richtung zu einem Substrat des nichtflüchtigen Speichers gestapelt sind; die Speichergruppe einen Speicher-Stack umfasst; das Messen des EPI der Speichergruppe umfasst, ein erstes EPI eines ersten Speicher-Stacks der Speichergruppe zu messen und ein zweites EPI eines zweiten Speicher-Stacks der Speichergruppe zu messen, wobei sich der zweite Speicher-Stack auf dem ersten Speicher-Stack in einer senkrechten Richtung zum ersten Speicher-Stack befindet; und das Auswählen des Programmiermodus umfasst, einen Programmiermodus für den ersten Speicher-Stack als wenigstens einen von Folgenden, einen Quadruple-Level-Cell (QLC)-Modus, einen Triple-Level-Cell (TLC)-Modus, einen Multi-Level-Cell (MLC)-Modus und einen Single-Level-Cell (SLC)-Modus, basierend auf dem ersten EPI auszuwählen und einen Programmiermodus für den zweiten Speicher-Stack als wenigstens einen von Folgenden, den QLC-Modus, den TLC-Modus, den MLC-Modus und den SLC-Modus, basierend auf dem zweiten EPI auszuwählen.
  6. Verfahren nach Anspruch 5, des Weiteren umfassend: den Programmiermodus für den zweiten Speicher-Stack als wenigstens einen von Folgenden, den QLC-Modus, den TLC-Modus, den MLC-Modus und den SLC-Modus, als Reaktion darauf auszuwählen, dass das erste EPI während einer Programmieroperation, die auf dem ersten Speicher-Stack durchgeführt wird, eine Referenzzeit überschreitet.
  7. Verfahren nach Anspruch 1, wobei der nichtflüchtige Speicher mehrere Speicherblöcke umfasst, wobei jeder der Speicherblöcke der mehreren Speicherblöcke mehrere Unterspeicherblöcke umfasst, die unabhängig löschbar sind; das Messen des EPI der Speichergruppe umfasst, ein erstes EPI eines ersten Unterspeicherblocks zu messen und ein zweites EPI eines zweiten Unterspeicherblocks, der sich benachbart zum ersten Unterspeicherblock befindet, zu messen; und das Auswählen des Programmiermodus umfasst, einen Programmiermodus für den ersten Unterspeicherblock als wenigstens einen von Folgenden, einen Quadruple-Level-Cell (QLC)-Modus, einen Triple-Level-Cell (TLC)-Modus, einen Multi-Level-Cell (MLC)-Modus und einen Single-Level-Cell (SLC)-Modus, basierend auf dem ersten EPI auszuwählen; und einen Programmiermodus für den zweiten Unterspeicherblock als wenigstens einen von Folgenden, den QLC-Modus, den TLC-Modus, den MLC-Modus und den SLC-Modus, basierend auf dem zweiten EPI auszuwählen.
  8. Verfahren nach Anspruch 7, wobei das Auswählen des Programmiermodus für den zweiten Unterspeicherblock des Weiteren umfasst, wenigstens einen von Folgenden, den QLC-Modus, den TLC-Modus, den MLC-Modus und den SLC- Modus, als den Programmiermodus für den zweiten Unterspeicherblock als Reaktion darauf auszuwählen, dass das erste EPI während einer Programmieroperation, die auf dem ersten Unterspeicherblock durchgeführt wird, eine Referenzzeit überschreitet.
  9. Verfahren nach Anspruch 1, wobei der nichtflüchtige Speicher einen Metabereich umfasst, der dazu ausgebildet ist, eine EPI-Tabelle zu speichern, in der EPI-Informationen gespeichert werden, die das gemessene EPI entsprechend jeder Speichergruppe angeben; und das Messen des EPI der Speichergruppe umfasst, das EPI entsprechend der Speichergruppe basierend auf der EPI-Tabelle, die im Metabereich gespeichert ist, zu messen.
  10. Verfahren nach Anspruch 1, des Weiteren umfassend: unter Verwendung der Verarbeitungsschaltungsanordnung einen Programmiermodus für die Speichergruppe auszuwählen, wobei das Auswählen des Programmiermodus für die Speichergruppe umfasst, einen Default-Programmiermodus nach dem Auftreten eines plötzlichen Stromausfall (SPO)-Ereignisses auszuwählen, wobei der Default-Programmiermodus ein Multi-Level-Cell (MLC)-Modus oder ein Single-Level-Cell (SLC)-Modus ist.
  11. Verfahren nach Anspruch 1, wobei das Messen des EPI der Speichergruppe wenigstens eines von Folgenden umfasst: das EPI der Speichergruppe während einer Anwenderdatenprogrammieroperation als Reaktion auf eine von einem Host empfangene Schreibanforderung zu messen; das EPI der Speichergruppe während einer Metadatenprogrammieroperation zu messen; das EPI der Speichergruppe während einer Garbage-Collection-Operation zu messen; oder Kombinationen davon.
  12. Verfahren nach Anspruch 1, des Weiteren umfassend: einen Programmiermodus entsprechend einem Speicherblock der Speichergruppe basierend auf einer Programmiermodustabelle als Reaktion auf eine Leseanforderung für die Speichergruppe auszuwählen, wobei die Programmiermodustabelle einen Programmiermodus entsprechend jeder Speichergruppe umfasst; und eine Lesebedingung für die Speichergruppe basierend auf dem ausgewählten Programmiermodus für den Speicherblock der Speichergruppe einzustellen, wobei das Einstellen der Lesebedingung umfasst, wenigstens einen Spannungspegel, der mit der Lesebedingung verknüpft ist, basierend auf dem ausgewählten Programmiermodus des Speicherblocks einzustellen.
  13. Verfahren zum Betreiben eines Speichersystems, wobei das Speichersystem einen nichtflüchtigen Speicher umfasst, wobei das Verfahren umfasst: unter Verwendung einer Verarbeitungsschaltungsanordnung ein Lösch-Programmier-Intervall (EPI) eines Speicherblocks des nichtflüchtigen Speichers als Reaktion auf eine von einem Host empfangene Schreibanforderung zu messen, wobei das EPI ein Zeitraum von einem Löschzeitpunkt bis zu einem Programmierzeitpunkt des Speicherblocks ist; und unter Verwendung der Verarbeitungsschaltungsanordnung eine Programmieroperation auf dem Speicherblock in einem ersten Programmiermodus oder in einem zweiten Programmiermodus basierend auf einer Dauer des EPI durchzuführen, wobei der erste Programmiermodus umfasst, N-Bit-Daten in jede Speicherzelle des Speicherblocks zu schreiben, und der zweite Programmiermodus umfasst, M-Bit-Daten in jede Speicherzelle des Speicherblocks zu schreiben, wobei das Durchführen der Programmieroperation auf dem Speicherblock umfasst, wenigstens einen Spannungspegel der Programmieroperation basierend auf dem ersten Programmiermodus oder dem zweiten Programmiermodus einzustellen, wobei N und M positive Ganzzahlen sind und M kleiner als N ist.
  14. Verfahren nach Anspruch 13, des Weiteren umfassend: unter Verwendung der Verarbeitungsschaltungsanordnung die Programmieroperation auf dem Speicherblock in einem dritten Programmiermodus als Reaktion darauf durchzuführen, dass das EPI eine erste Referenzzeit und eine zweite Referenzzeit überschreitet, wobei der dritte Programmiermodus umfasst, L-Bit-Daten in jede Speicherzelle des Speicherblocks zu schreiben, wobei die zweite Referenzzeit länger als die erste Referenzzeit ist, wobei L eine positive Ganzzahl kleiner als M ist.
  15. Verfahren nach Anspruch 14, des Weiteren umfassend: unter Verwendung der Verarbeitungsschaltungsanordnung die Programmieroperation auf dem Speicherblock in einem vierten Programmiermodus als Reaktion darauf durchzuführen, dass das EPI eine dritte Referenzzeit überschreitet, wobei die dritte Referenzzeit länger als die zweite Referenzzeit ist, wobei der vierte Programmiermodus umfasst, K-Bit-Daten in jede Speicherzelle des Speicherblocks zu schreiben, wobei K eine positive Ganzzahl kleiner als L ist.
  16. Verfahren nach Anspruch 13, wobei das Messen des EPI des Speicherblocks umfasst, das EPI des Speicherblocks aus einer EPI-Tabelle zu lesen, die in einem Metabereich des nichtflüchtigen Speichers gespeichert ist.
  17. Verfahren nach Anspruch 13, des Weiteren umfassend: unter Verwendung der Verarbeitungsschaltungsanordnung einen Programmiermodus entsprechend dem Speicherblock basierend auf einer Programmiermodustabelle als Reaktion auf eine Leseanforderung für den Speicherblock auszuwählen, wobei die Programmiermodustabelle einen Programmiermodus entsprechend jedem Speicherblock enthält; und unter Verwendung der Verarbeitungsschaltungsanordnung eine Lesebedingung für den Speicherblock basierend auf dem ausgewählten Programmiermodus des Speicherblocks einzustellen, wobei das Einstellen der Lesebedingung umfasst, wenigstens einen Spannungspegel, der mit der Lesebedingung verknüpft ist, basierend auf dem ausgewählten Programmiermodus des Speicherblocks einzustellen.
  18. Speichersystem, umfassend: einen nichtflüchtigen Speicher, der mehrere Speichergruppen umfasst; und einen Speicher-Controller, der dazu ausgelegt ist, ein Lösch-Programmier-Intervall (EPI) einer ersten Speichergruppe von den mehreren Speichergruppen zu messen, wobei das EPI ein Zeitraum von einem Löschzeitpunkt bis zu einem Programmierzeitpunkt der Speichergruppe ist, mehrere Programmiermodi basierend auf einer Anzahl von Datenbits, die in jeder Speicherzelle der Speichergruppe gespeichert sind, zu bestimmen, einen Programmiermodus für die erste Speichergruppe von den mehreren Programmiermodi basierend auf dem gemessenen EPI auszuwählen und eine Programmieroperation auf der ersten Speichergruppe basierend auf dem ausgewählten Programmiermodus der ersten Speichergruppe zu steuern, wobei das Steuern der Programmieroperation umfasst, wenigstens einen Spannungspegel, der mit der Programmieroperation verknüpft ist, basierend auf dem ausgewählten Programmiermodus einzustellen.
  19. Speichersystem nach Anspruch 18, wobei die mehreren Programmiermodi wenigstens einen von Folgenden, einen Quadruple-Level-Cell (QLC)-Modus, einen Triple-Level-Cell (TLC)-Modus, einen Multi-Level-Cell (MLC)-Modus und einen Single-Level-Cell (SLC)-Modus, umfassen.
  20. Speichersystem nach Anspruch 18, wobei die Speichergruppe einen Speicherblock, einen Speicher-Stack, einen Unterspeicherblock oder Kombinationen davon umfasst.
  21. Speichersystem nach Anspruch 18, wobei der Speicher-Controller eine Programmiermodussteuerschaltungsanordnung umfasst, die dazu ausgebildet ist, den Programmiermodus zu bestimmen; und die Programmiermodussteuerschaltungsanordnung dazu ausgebildet ist, den Programmiermodus für die erste Speichergruppe als einen ersten Programmiermodus oder einen zweiten Programmiermodus basierend auf dem gemessenen EPI der ersten Speichergruppe auszuwählen, wobei der erste Programmiermodus umfasst, N-Bit-Daten in jede Speicherzelle der ersten Speichergruppe zu schreiben, und der zweite Programmiermodus umfasst, M-Bit-Daten in jede Speicherzelle der ersten Speichergruppe zu schreiben, und wobei N und M positive Ganzzahlen sind und M kleiner als N ist.
  22. Speichersystem nach Anspruch 18, wobei der Speicher-Controller des Weiteren ausgelegt ist, um: den Programmiermodus entsprechend der ersten Speichergruppe basierend auf einer Programmiermodustabelle zu aktualisieren, wobei die Programmiermodustabelle Programmiermodi entsprechend jeweils den mehreren Speichergruppen umfasst, einen Programmiermodus entsprechend einer von einem Host empfangenen Leseanforderung basierend auf der Programmiermodustabelle als Reaktion auf die vom Host empfangene Leseanforderung auszuwählen; und eine Lesebedingung für die erste Speichergruppe basierend auf dem ausgewählten Programmiermodus der Speichergruppe einzustellen, wobei das Einstellen der Lesebedingung umfasst, wenigstens einen Spannungspegel, der mit der Lesebedingung verknüpft ist, basierend auf dem ausgewählten Programmiermodus der Speichergruppe einzustellen.
DE102020107491.3A 2019-08-27 2020-03-18 Speichersystem und verfahren zu dessen betrieb Active DE102020107491B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190105004A KR20210025249A (ko) 2019-08-27 2019-08-27 메모리 시스템 및 그 동작 방법
KR10-2019-0105004 2019-08-27

Publications (2)

Publication Number Publication Date
DE102020107491A1 true DE102020107491A1 (de) 2021-03-04
DE102020107491B4 DE102020107491B4 (de) 2024-05-23

Family

ID=74564720

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020107491.3A Active DE102020107491B4 (de) 2019-08-27 2020-03-18 Speichersystem und verfahren zu dessen betrieb

Country Status (6)

Country Link
US (2) US11275528B2 (de)
JP (1) JP7514658B2 (de)
KR (1) KR20210025249A (de)
CN (1) CN112447236A (de)
DE (1) DE102020107491B4 (de)
SG (1) SG10202004372YA (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210025249A (ko) * 2019-08-27 2021-03-09 삼성전자주식회사 메모리 시스템 및 그 동작 방법
US11062756B2 (en) 2019-10-14 2021-07-13 Western Digital Technologies, Inc. Extending operating temperature of storage device
JP2023038769A (ja) * 2021-09-07 2023-03-17 キオクシア株式会社 半導体記憶装置
US11875864B2 (en) * 2021-10-12 2024-01-16 PetaIO Inc. Mitigating edge layer effect in partially written blocks

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6326943B1 (en) 1987-03-31 2001-12-04 Canon Kabushiki Kaisha Display device
US5367484A (en) 1993-04-01 1994-11-22 Microchip Technology Incorporated Programmable high endurance block for EEPROM device
JP3828376B2 (ja) 2001-05-07 2006-10-04 株式会社東芝 記憶システム
US20040189439A1 (en) 2003-03-28 2004-09-30 Cansino Juan Miguel Dominguez Local and remote management of lock systems from a network
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
US8244960B2 (en) 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US7948798B1 (en) 2009-07-22 2011-05-24 Marvell International Ltd. Mixed multi-level cell and single level cell storage device
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR20110131648A (ko) 2010-05-31 2011-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및 메모리 카드 및 그것의 프로그램 방법
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
WO2012058328A1 (en) * 2010-10-27 2012-05-03 Sandforce, Inc. Adaptive ecc techniques for flash memory based data storage
JP5740296B2 (ja) 2011-12-16 2015-06-24 株式会社東芝 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム
US9176862B2 (en) 2011-12-29 2015-11-03 Sandisk Technologies Inc. SLC-MLC wear balancing
US9646705B2 (en) 2013-06-12 2017-05-09 Samsung Electronics Co., Ltd. Memory systems including nonvolatile memory devices and dynamic access methods thereof
KR102108839B1 (ko) 2013-06-12 2020-05-29 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법
KR102102224B1 (ko) 2013-10-01 2020-04-20 삼성전자주식회사 저장 장치 및 그것의 프로그램 방법
KR102218735B1 (ko) 2014-01-21 2021-02-23 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 소거 방법
JP6084246B2 (ja) 2014-05-21 2017-02-22 マクロニクス インターナショナル カンパニー リミテッド 3d独立二重ゲートフラッシュメモリ
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
KR102245822B1 (ko) 2014-11-26 2021-04-30 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법
KR102295208B1 (ko) 2014-12-19 2021-09-01 삼성전자주식회사 프로그램 영역을 동적으로 할당하는 저장 장치 및 그것의 프로그램 방법
KR102250423B1 (ko) * 2015-01-13 2021-05-12 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
KR102274280B1 (ko) 2015-06-22 2021-07-07 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법
KR102333220B1 (ko) 2015-09-24 2021-12-01 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법
US10157680B2 (en) * 2015-12-22 2018-12-18 Sandisk Technologies Llp Sub-block mode for non-volatile memory
TWI606339B (zh) 2016-02-17 2017-11-21 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
JP2017174482A (ja) 2016-03-24 2017-09-28 力晶科技股▲ふん▼有限公司 不揮発性半導体記憶装置とその消去方法
CN106325737B (zh) 2016-08-03 2021-06-18 海信视像科技股份有限公司 一种书写路径擦除方法及设备
JP2018156702A (ja) * 2017-03-16 2018-10-04 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
US10325668B2 (en) 2017-04-05 2019-06-18 Micron Technology, Inc. Operation of mixed mode blocks
JP7030463B2 (ja) 2017-09-22 2022-03-07 キオクシア株式会社 メモリシステム
CN108052279B (zh) 2017-11-23 2020-06-19 深圳市江波龙电子股份有限公司 一种提升闪存性能的方法、装置、设备及存储介质
US10606513B2 (en) 2017-12-06 2020-03-31 Western Digital Technologies, Inc. Volatility management for non-volatile memory device
WO2019127350A1 (en) 2017-12-29 2019-07-04 Micron Technology, Inc. Uncorrectable ecc
US11052479B2 (en) 2018-10-30 2021-07-06 Hakko Corp. Soldering device control method and apparatus
DE102019105004B3 (de) 2019-02-27 2020-03-26 Iav Gmbh Ingenieurgesellschaft Auto Und Verkehr Fahrzeugantrieb mit leistungsverzweigtem Getriebe
KR20210025249A (ko) * 2019-08-27 2021-03-09 삼성전자주식회사 메모리 시스템 및 그 동작 방법
US11069417B2 (en) * 2019-08-27 2021-07-20 Samsung Electronics Co., Ltd. Memory system and method of operating the same
JP7366795B2 (ja) 2020-02-14 2023-10-23 キオクシア株式会社 メモリシステムおよび制御方法

Also Published As

Publication number Publication date
US20220156014A1 (en) 2022-05-19
SG10202004372YA (en) 2021-03-30
JP7514658B2 (ja) 2024-07-11
KR20210025249A (ko) 2021-03-09
DE102020107491B4 (de) 2024-05-23
US11275528B2 (en) 2022-03-15
CN112447236A (zh) 2021-03-05
US20210064295A1 (en) 2021-03-04
US11829645B2 (en) 2023-11-28
JP2021034116A (ja) 2021-03-01

Similar Documents

Publication Publication Date Title
DE102020107491B4 (de) Speichersystem und verfahren zu dessen betrieb
US10896126B2 (en) Storage device, method and non-volatile memory device performing garbage collection using estimated number of valid pages
DE102011086098B4 (de) Parallele Speicherlese- und Speicherschreib-Operationen in einem Speicher mit serieller Schnittstelle
DE102020130044A1 (de) Techniken zum verhindern von lese-störung in nand-speicher
DE112018005505T5 (de) Verfahren und vorrichtung zur spezifikation von lese-spannungsversetzungen für einen lesebefehl
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102019135863B4 (de) Speichercontroller, Speichervorrichtung und Speichersystem mit verbesserten Schwellenspannungs-Verteilungseigenschaften und ähnliche Betriebsverfahren
DE102017104257A1 (de) Auf Zellenstrom basierende Bitleitungsspannung
DE102011055714A1 (de) Verfahren zum Programmieren einer nicht-flüchtigen Speichervorrichtung
DE102013109235A1 (de) Flash-Speichersystem mit Detektor für anormale Wortleitung und Verfahren zum Erfassen einer anormalen Wortleitung
DE102008033518B4 (de) Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement
DE102016009807A1 (de) Korrelieren von physikalischen seitenadressen für soft-decision-dekodierung
DE102013108907A1 (de) Nichtflüchtige Speichervorrichtung mit nahen/fernen Speicherzellengruppierungen und Datenverarbeitungsverfahren
US11069417B2 (en) Memory system and method of operating the same
DE102013108491A1 (de) Nichtflüchtige Speichervorrichtung und Betriebsverfahren mit variablen Speicherzellenzustandsdefinitionen
DE102020211544A1 (de) Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben
DE102015011991A1 (de) Codierungsschema für vertikale 3D-Flash-Speicher
US9465539B2 (en) Operation management in a memory device
DE102020200625A1 (de) Speichergerät und betriebsverfahren des speichergeräts
DE102021118940A1 (de) Speichersteuerung und speichereinrichtung mit derselben
DE102021108207A1 (de) Speichervorrichtung und Lesebetriebsverfahren derselben
DE102018120964A1 (de) Integrierte Schaltungsspeichervorrichtungen mit verbesserter Pufferspeichernutzung während Lese- und Schreiboperationen
DE102020101083A1 (de) Speicherprogrammiertechniken
CN116343876A (zh) 存储器子系统中的存储器单元的多阶段擦除操作
DE102022208314A1 (de) Datenspeichereinrichtung zum auffrischen von daten und betriebsverfahren dafür

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division