-
Querverweis auf ähnliche Anmeldungen
-
Diese nicht vorläufige US-Anmeldung beansprucht die Priorität der am 26. Dezember 2019 beim Koreanischen Amt für Geistiges Eigentum (KIPO) eingereichten koreanischen Patentanmeldung Nr.
10-2019-0175273 , deren Offenbarung durch Verweis in ihrer Gesamtheit hierin aufgenommen ist.
-
Hintergrund
-
Technisches Gebiet
-
Ausführungsbeispiele beziehen sich allgemein auf integrierte Halbleiterschaltungen und insbesondere auf ein Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung unter Verwendung von Maschinenlernen und ein Speichersystem, das eine nichtflüchtige Speichervorrichtung enthält.
-
Beschreibung der verwandten Technik
-
Eine nichtflüchtige Speichervorrichtung, wie eine Flash-Speichervorrichtung, eine resistive Speichervorrichtung etc., kann Daten in Bezug auf eine Mehrzahl an Schwellenspannungsverteilungen, eine Mehrzahl an Widerstandsverteilungen etc. speichern. Jede jeweilige „Verteilung“ stellt einen entsprechenden Logikzustand für gespeicherte Daten dar. Die gespeicherten Daten können, sobald sie in eine nichtflüchtige Speicherzelle geschrieben (oder programmiert) sind, durch Anlegen von vorbestimmten Lesespannungen gelesen werden. Während oder nach der Programmierung einer Speicherzelle kann deren beabsichtigte Verteilung durch eine Anzahl an Ereignissen oder Bedingungen, die zum Beispiel eine Ladungs-Leckage, Programmierstörungen, Lesestörungen, eine Wort- und/oder Bitleitungskopplung, eine Temperaturveränderung, eine Spannungsveränderung, eine Degeneration der Speicherzelle etc. enthalten, verändert oder verfälscht werden. In extremen Fällen kann eine beabsichtigte Verteilung derart verschoben und/oder erweitert werden, dass ein „Lesefehler“ auftritt.
-
Wenn ein Lesefehler auftritt, können gewisse nichtflüchtige Speichervorrichtungen eine andere Art von Leseoperation (d.h. eine mit einer anderen Lesesequenz) als die eine, die den Lesefehler verursacht, ausführen. Allerdings ist es nicht einfach, eine Lesesequenz einzustellen, welche die vielen Ereignisse und Bedingungen, welche die Verteilungen, die gelesen werden, verändert haben können, angemessen berücksichtigt. Dementsprechend kann sich eine „Leselatenz“ (d.h. der zum Lesen von gespeicherten Daten benötigte Zeitraum) erhöhen, wenn Veränderungen der gegenwärtigen Operationsbedingungen in Bezug auf eine akzeptable Lesesequenz beurteilt oder identifiziert werden, und eine Performance der nichtflüchtigen Speichervorrichtung kann mit einer Erweiterung ihrer Leselatenzen verschlechtert werden.
-
Kurzfassung
-
Einige Ausführungsbeispiele können ein Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung und ein Speichersystem, welches das Verfahren, das zur effizienten Steuerung von Operationsbedingungen der nichtflüchtigen Speichervorrichtung imstande ist, durchführt, vorsehen.
-
Nach Ausführungsbeispielen enthält ein Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung unter Verwendung von Maschinenlernen das Bestimmen von Operationsbedingungen der nichtflüchtigen Speichervorrichtung durch Durchführen einer Ableitungsoperation unter Verwendung eines Maschinenlernmodells, das Sammeln von Trainingsdaten, die basierend auf Merkmalsinformationen und Fehlerinformationen erzeugt werden, wobei die Fehlerinformationen Ergebnisse einer Fehler-korrekturcode(ECC)-Dekodierung der nichtflüchtigen Speichervorrichtung angeben, und das Aktualisieren des Maschinenlernmodells durch Durchführen einer Lernoperation basierend auf den Trainingsdaten.
-
Nach Ausführungsbeispielen enthält ein Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung unter Verwendung von Maschinenlernen das Vorsehen einer Mehrzahl an Lesepegelsätzen, wobei jeder Lesepegelsatz einer Kombination aus Pegeln von Lesespannungen für eine Leseoperation der nichtflüchtigen Speichervorrichtung entspricht, das Bestimmen eines optimalen Lesepegelsatzes, der gegenwärtigen Merkmalsinformationen entspricht, aus der Mehrzahl an Lesepegelsätzen durch Durchführen einer Ableitungsoperation basierend auf den gegenwärtigen Merkmalsinformationen als eine Eingabe des Maschinenlernmodells, das Sammeln von Trainingsdaten, die basierend auf Merkmalsinformationen und Fehlerinformationen erzeugt werden, wobei die Merkmalsinformationen physikalische Adressen der nichtflüchtigen Speichervorrichtung und Zellzählungsdaten, die Schwellenspannungsverteilungen von Speicherzellen, die den physikalischen Adressen entsprechen, angeben, enthalten, und wobei die Fehlerinformationen Ergebnisse einer Fehlerkorrekturcode(ECC)-Dekodierung der nichtflüchtigen Speichervorrichtung angeben, das Aktualisieren des Maschinenlernmodells durch Durchführen einer Lernoperation basierend auf den Trainingsdaten, und das Bestimmen eines Durchführungszeitplans der Lernoperation basierend auf einer Ausfallwahrscheinlichkeit der Ableitungsoperation und einer Ausfallwahrscheinlichkeit der ECC-Dekodierung.
-
Nach Ausführungsbeispielen enthält ein Speichersystem eine nichtflüchtige Speichervorrichtung und einen Speichercontroller, der konfiguriert ist, die nichtflüchtige Speichervorrichtung zu steuern. Der Speichercontroller enthält einen Datensammler, der konfiguriert ist, Trainingsdaten, die basierend auf Merkmalsinformationen und Fehlerinformationen erzeugt werden, zu sammeln, wobei die Fehlerinformationen Ergebnisse einer Fehlerkorrekturcode(ECC)-Dekodierung der nichtflüchtigen Speichervorrichtung angeben, einen Pufferspeicher, der konfiguriert ist, die Trainingsdaten zu speichern, und eine Maschinenlern-Engine, die konfiguriert ist, Operationsbedingungen der nichtflüchtigen Speichervorrichtung durch Durchführen einer Ableitungsoperation unter Verwendung eines Maschinenlernmodells zu bestimmen und das Maschinenlernmodell durch Durchführen einer Lernoperation basierend auf den Trainingsdaten zu aktualisieren.
-
Das Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung und das Speichersystem nach Ausführungsbeispielen können durch Sammeln von Trainingsdaten im Speichersystem und Durchführen der Lernoperation und der Ableitungsoperation basierend auf den Trainingsdaten optimierte oder verbesserte Operationsbedingungen für individuelle Benutzerumgebungen vorsehen.
-
Figurenliste
-
Für ein deutlicheres Verständnis der Ausführungsbeispiele der vorliegenden Offenbarung sorgt die folgende, detaillierte Beschreibung in Verbindung mit den beigefügten Zeichnungen.
- 1 ist ein Blockdiagramm, das eine in einer nichtflüchtigen Speichervorrichtung enthaltene Maschinenlernvorrichtung nach Ausführungsbeispielen darstellt.
- 2 ist ein Flussdiagramm, das ein Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt.
- 3 ist ein Blockdiagramm, das ein Speichersystem nach Ausführungsbeispielen darstellt.
- 4 ist ein Blockdiagramm, das eine nichtflüchtige Speichervorrichtung nach Ausführungsbeispielen darstellt.
- 5 ist ein Blockdiagramm, das ein in der nichtflüchtigen Speichervorrichtung aus 4 enthaltenes Speicherzellenarray darstellt.
- 6 ist ein Schaltbild, das eine äquivalente Schaltung eines mit Bezug auf 5 beschriebenen Speicherblocks darstellt.
- 7 ist ein Diagramm, das Zustände von in einer nichtflüchtigen Speichervorrichtung enthaltenen Multipegelzellen nach Ausführungsbeispielen darstellt.
- 8 ist ein Diagramm, das ein Lesesequenzbeispiel nach Ausführungsbeispielen darstellt.
- 9 ist ein Flussdiagramm, das ein Verfahren zum Lesen von Daten gemäß der Lesesequenz aus 8 darstellt.
- 10 ist ein Flussdiagramm, das ein Ausführungsbeispiel zum Bestimmen von Operationsbedingungen in einem Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt.
- 11 ist ein Diagramm, das Lesesequenzsatzbeispiele zum Bestimmen von Operationsbedingungen aus 10 darstellt.
- 12 ist ein Flussdiagramm, das ein Ausführungsbeispiel zum Bestimmen von Operationsbedingungen in einem Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt.
- 13 ist ein Diagramm, das Zuverlässigkeitspegel gemäß einer Bestimmung von Operationsbedingungen aus 12 darstellt.
- 14 ist ein Flussdiagramm, das ein Ausführungsbeispiel zum Bestimmen von Operationsbedingungen in einem Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt.
- 15 ist ein Diagramm zum Beschreiben einer vorbestimmten Lesespannung und einer optimalen Lesespannung.
- 16, 17, und 18 sind Diagramme, die Lesesequenzen nach einem Ausführungsbeispiel darstellen.
- 19 ist ein Diagramm, das ein Beispiel für eine 2-Bit-Soft-Decision-Leseoperation darstellt.
- 20 ist ein Diagramm, das ein Beispiel für eine 3-Bit-Soft-Decision-Leseoperation darstellt.
- 21 ist ein Flussdiagramm, das ein Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt.
- 22 ist eine Maschinenlern-Engine nach Ausführungsbeispielen.
- 23 und 24 sind Blockdiagramme, die eine in einem Speichersystem enthaltene Maschinenlernvorrichtung nach Ausführungsbeispielen darstellen.
- 25 und 26 sind Diagramme zur Beschreibung von Beispielen für eine neuronale Deep-Learning-Netzwerkstruktur, die durch eine Maschinenlernvorrichtung nach Ausführungsbeispielen angetrieben wird.
- 27 ist ein Diagramm, das ein Beispiel für einen in einem neuronalen Netzwerk enthaltenen Knoten darstellt.
- 28 ist ein Diagramm, das ein Speichersystem nach Ausführungsbeispielen darstellt.
-
Detaillierte Beschreibung der Ausführungsformen
-
Verschiedene Ausführungsbeispiele werden nachfolgend mit Bezug auf die beigefügten Zeichnungen, in denen einige Ausführungsbeispiele gezeigt sind, ausführlicher beschrieben. In den Zeichnungen bezeichnen gleiche Bezugszeichen durchgehend gleiche Elemente. Wiederholte Beschreibungen können weggelassen sein.
-
1 ist ein Blockdiagramm, das eine in einer nichtflüchtigen Speichervorrichtung enthaltene Maschinenlernvorrichtung nach Ausführungsbeispielen darstellt und 2 ist ein Flussdiagramm, das ein Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt.
-
Bezugnehmend auf 1 kann eine Maschinenlernvorrichtung 10 eine Maschinenlern-Engine 20, einen Datensammler DCLL 30 und einen Pufferspeicher BUFF 40 enthalten.
-
Die Maschinenlern-Engine 20 kann einen Controller CTRL und ein Maschinenlernmodul MLMDL enthalten. Der Controller CTRL kann das Maschinenlernmodul MLMDL antreiben, um eine Mehrzahl an Maschinenlernmodellen MD1-MD3 zu aktualisieren.
-
In einigen Ausführungsbeispielen kann das Aktualisieren des Maschinenlernmodells das Aktualisieren von Gewichtungswerten, die dem Maschinenlernmodell entsprechen, enthalten. Die Gewichtungswerte werden unten mit Bezug auf 25 bis 27 beschrieben.
-
Wie unten beschrieben, kann jedes der Mehrzahl an Maschinenlernmodellen MD1-MD3 einer Operationsbedingung, wie einem Lesepegelsatz, einem Zuverlässigkeitspegel, einer Lesesequenz etc., entsprechen.
-
Der Pufferspeicher 40 kann Daten und/oder Informationen, wie Trainingsdaten RD, eine Einstellungstabelle STTBL etc., speichern.
-
1 stellt die drei Maschinenlernmodelle MD1-MD3 zur Erleichterung der Darstellung dar, die Ausführungsbeispiele sind jedoch nicht darauf beschränkt. Die Anzahl der Maschinenlernmodelle kann verschiedenartig umgesetzt sein.
-
Bezugnehmend auf 1 und 2 kann die Maschinenlern-Engine 20 Operationsbedingungen der nichtflüchtigen Speichervorrichtung durch Durchführen einer Ableitungsoperation unter Verwendung eines Maschinenlernmodells MDi (i=1, 2, 3) bestimmen (S100). Die Maschinenlern-Engine 20 kann die Ableitungsoperation basierend auf gegenwärtigen Merkmalsinformationen FTRINF_C als eine Eingabe der Maschinenlern-Engine 20 durchführen.
-
Der Datensammler 30 kann Trainingsdaten TRD, die basierend auf Merkmalsinformationen FTRINF und Fehlerinformationen ERRINF erzeugt werden, sammeln, wobei die Fehlerinformationen ERRINF Ergebnisse einer Fehlerkorrekturcode(ECC)-Dekodierung der nichtflüchtigen Speichervorrichtung angeben (S200). Die Maschinenlern-Engine 20 kann das Maschinenlernmodell MDi durch Durchführen einer Lernoperation basierend auf den Trainingsdaten TRD aktualisieren (S300).
-
Die Merkmalsinformationen FTRINF können physikalische Adressen der nichtflüchtigen Speichervorrichtung und Zellzählungsdaten, die Schwellenspannungsverteilungen von Speicherzellen, die den physikalischen Adressen entsprechen, angeben, enthalten. Die Fehlerinformationen ERRINF können mindestens eine Ausfallwahrscheinlichkeit der ECC-Dekodierung und eine durch die ECC-Dekodierung bestimmte Fehleranzahl enthalten.
-
Die Trainingsdaten TRD können die Merkmalsinformationen FTRINF und Ergebnisse der Ableitungsoperation, die erfolgreich abgeschlossen ist, enthalten. Zusätzlich können die Trainingsdaten TRD eine Betriebstemperatur, eine Betriebsspannung, einen Programmier- und Lösch(P/E)-Zyklus, eine Anzahl an Leseoperationen, Latenzen von Lese-, Schreib- (d.h. Programmier-) und Löschoperationen etc. enthalten.
-
Der Controller CTRL kann Daten, die dem Maschinenlernmodell MDi entsprechen, aus den Merkmalsinformationen FTRINF extrahieren und die extrahierten Daten als eine Eingabe eines durch das Maschinenlernmodul MLMDL umgesetzten neuronalen Netzwerks vorsehen. Zusätzlich kann der Controller CTRL die Gewichtungswerte des neuronalen Netzwerks, die dem Maschinenlernmodel MDi entsprechen, optimieren. Das neuronale Netzwerk und die Gewichtungswerte werden mit Bezug auf 25 bis 27 beschrieben.
-
In einem Speichersystem, das eine nichtflüchtige Speichervorrichtung, wie eine Flash-Speichervorrichtung, enthält, können eine Performance und Zuverlässigkeit der nichtflüchtigen Speichervorrichtung durch einen Vorhersagealgorithmus zum Bestimmen verschiedener Operationsbedingungen verbessert werden, allerdings reflektiert der Vorhersagealgorithmus womöglich keine verschiedenen Benutzerumgebungen und Eigenschaftsvariationen der nichtflüchtigen Speichervorrichtung. Nach Ausführungsbeispielen kann Maschinenlernen verwendet werden, um eine Verringerung einer Genauigkeit des Vorhersagealgorithmus aufgrund der Benutzerumgebungen und einer Variation von Arbeitslasten der nichtflüchtigen Speichervorrichtungen zu verhindern.
-
Somit können das Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung und das Speichersystem nach Ausführungsbeispielen durch Sammeln von Trainingsdaten im Speichersystem und Durchführen der Lernoperation und der Ableitungsoperation basierend auf den Trainingsdaten optimierte Operationsbedingungen für individuelle Benutzerumgebungen vorsehen.
-
3 ist ein Blockdiagramm, das ein Speichersystem nach Ausführungsbeispielen darstellt.
-
Bezugnehmend auf 3 enthält ein Speichersystem 1000 mehrere nichtflüchtige Speichervorrichtungen 1100 und einen Speichercontroller 1200. Das Speichersystem 1000 kann eine Speicherkarte, ein Festkörperlaufwerk (SSD), ein Universal-Flash-Speicher (UFS) etc. sein.
-
Die nichtflüchtige Speichervorrichtung 1100 enthält ein Speicherzellenarray, das eine Mehrzahl an Speicherzellen, die Daten speichern, enthält. Die nichtflüchtigen Speichervorrichtungen 1100 können optional konfiguriert sein, eine hohe Spannung VPP zu empfangen. Beispiele für die nichtflüchtige Speichervorrichtung 1100 werden mit Bezug auf 4 bis 6 mit einigen zusätzlichen Details beschrieben.
-
Der Speichercontroller 1200 kann den Gesamtbetrieb der nichtflüchtigen Speichervorrichtung 1100 steuern. Der Speichercontroller 1200 kann eine Datenübertragung zwischen einem externen Host und der nichtflüchtigen Speichervorrichtung 1100 steuern. Der Speichercontroller 1200 kann einen Prozessor 1210, wie eine zentrale Verarbeitungseinheit (CPU), einen Pufferspeicher 1220, eine Host-Schnittstelle 1250, eine Speicher(z.B. NVM-)-Schnittstelle 1260, einen ECC-Block 1230, eine Maschinenlern-Engine MLD 20 und einen Datensammler DCLL 30 enthalten. Der Prozessor 1210 kann Operationen für die Datenübertragung durchführen.
-
In einigen Ausführungsbeispielen kann der Pufferspeicher 1220 durch einen statischen Direktzugriffsspeicher (SRAM) umgesetzt sein. In anderen Ausführungsbeispielen kann der Pufferspeicher 1220 durch einen dynamischen Direktzugriffsspeicher (DRAM), einen Phasenübergangs-Direktzugriffsspeicher (PRAM), einen ferroelektrischen Direktzugriffsspeicher (FRAM), einen resistiven Direktzugriffsspeicher (RRAM), einen magnetischen Direktzugriffsspeicher (MRAM) etc. umgesetzt sein. Nach Ausführungsbeispielen kann der Pufferspeicher 1220 innerhalb oder außerhalb des Speichercontrollers 1200 positioniert sein.
-
Die Host-Schnittstelle 1250 kann mit dem Host gekoppelt sein und die Speicherschnittstelle 1260 kann durch mehrere Kanäle CH1, CH2, CH3, ..., Chi mit der nichtflüchtigen Speichervorrichtung 1100 gekoppelt sein. Der Prozessor 1210 kann über die Host-Schnittstelle 1250 mit dem Host kommunizieren. Zum Beispiel kann die Host-Schnittstelle 1250 konfiguriert sein, unter Verwendung von mindestens einem von verschiedenen Schnittstellenprotokollen, wie einem Universal Serial Bus (USB), einer Multimediakarte (MMC), einem Peripheral Component Interconnect-Express (PCI-E), einer kleinen Computersystemschnittstelle (SCSI), einer Serial-Attached-SCSI (SAS), einem Serial Advanced Technology Attachment (SATA), einem Parallel Advanced Technology Attachment (PATA), einer Enhanced Small Disk Interface (ESDI), einer integrierten Antriebselektronik etc., mit dem Host zu kommunizieren. Ferner kann der Prozessor 1210 über die Speicherschnittstelle 1260 mit der nichtflüchtigen Speichervorrichtung 1100 kommunizieren.
-
In einigen Ausführungsbeispielen kann der ECC-Block 1230 eine ECC-Kodierung und eine ECC-Dekodierung durch Verwenden eines Bose-Chaudhuri-Hocqueng-hem(BCH)-Codes durchführen. In anderen Ausführungsbeispielen kann der ECC-Block 1230 die ECC-Kodierung und die ECC-Dekodierung durch Verwenden eines Low-Density-Parity-Check(LDPC)-Codes durchführen. In anderen Ausführungsbeispielen kann der ECC-Block 1230 die ECC-Kodierung und die ECC-Dekodierung durch Verwenden eines Turbocodes, eines Reed-Solomon-Codes, eines Convolution-Codes, eines Recursive-Systematic-Codes, einer kodierten Modulation, wie einer Trellis-kodierten Modulation (TCM), einer Block-kodierten Modulation (BCM) etc., oder anderer Fehlerkorrekturcodes durchführen.
-
Nach Ausführungsbeispielen kann der Speichercontroller 1200 in der nichtflüchtigen Speichervorrichtung 1100 eingebaut sein oder der Speichercontroller 1200 und die nichtflüchtige Speichervorrichtung 1100 können als separate Chips umgesetzt sein. Nach Ausführungsbeispielen kann der ECC-Block 1230 in der nichtflüchtigen Speichervorrichtung 1100 enthalten sein, um die Datenübertragungsmenge zwischen dem Speichercontroller 1200 und der nichtflüchtigen Speichervorrichtung 1100 zu reduzieren. In diesem Fall kann die nichtflüchtige Speichervorrichtung 1100 in den Lesefehlern lediglich die Informationen zum Lesefehler und die Fehlerbits an den Speichercontroller 1200 übertragen. Die nichtflüchtige Speichervorrichtung 1100 kann die gültigen Lesedaten, welche durch die ECC-Dekodierung erhalten werden können, in den Leseerfolgsfällen an den Speichercontroller 1200 übermitteln.
-
Die Maschinenlern-Engine 20 und der Datensammler 30 können umgesetzt werden, um ein Verfahren zur Steuerung der Operation der nichtflüchtigen Speichervorrichtung durchzuführen, wie mit Bezug auf 1 und 2 beschrieben. Der Pufferspeicher 40 aus 1 kann dem Pufferspeicher 1220 aus 3 entsprechen. Mindestens ein Abschnitt der Maschinenlern-Engine 20 kann als ein Programmiercode, der durch den Prozessor 1210 ausgeführt wird, umgesetzt sein.
-
4 ist ein Blockdiagramm, das eine nichtflüchtige Speichervorrichtung nach Ausführungsbeispielen darstellt.
-
Bezugnehmend auf 4 enthält die nichtflüchtige Speichervorrichtung NVM ein Speicherzellenarray 100, eine Seitenpufferschaltung 410, eine Daten-Eingabe/Ausgabe-Schaltung 420, einen Adressendekodierer 430, eine Steuerschaltung 450 und einen Spannungsgenerator 460.
-
Das Speicherzellenarray 100 kann durch eine Mehrzahl an Kettenauswahlleitungen SSL, eine Mehrzahl an Wortleitungen WL und eine Mehrzahl an Masseauswahlleitungen GSL mit dem Adressendekodierer 430 gekoppelt sein. Zusätzlich kann das Speicherzellenarray 100 durch eine Mehrzahl an Bitleitungen BL mit der Seitenpufferschaltung 410 gekoppelt sein.
-
Das Speicherzellenarray 100 kann eine Mehrzahl an Speicherzellen, die mit der Mehrzahl an Wortleitungen WL und der Mehrzahl an Bitleitungen BL gekoppelt ist, enthalten. In einigen Ausführungsbeispielen kann das Speicherzellenarray 100 ein dreidimensionales Speicherzellenarray sein, das auf einem Substrat in einer dreidimensionalen Struktur (oder einer vertikalen Struktur) ausgebildet ist. In diesem Fall kann das Speicherzellenarray 100 eine Mehrzahl an NAND-Ketten enthalten, die derart vertikal ausgerichtet sind, dass mindestens eine Speicherzelle über einer anderen Speicherzelle positioniert ist.
-
Die Steuerschaltung 450 kann einen Befehl (ein Befehlssignal) CMD und eine Adresse (ein Adresssignal) ADDR vom Speichercontroller 20 empfangen und eine Lösch-, Programmier- und Leseoperationen der nichtflüchtigen Speichervorrichtung basierend auf dem Befehlssignal CMD und dem Adresssignal ADDR steuern. Eine Löschoperation kann das Durchführen einer Löschschleifensequenz aufweisen und eine Programmieroperation kann das Durchführen von einer Programmierschleifensequenz enthalten. Jede Programmierschleife kann einen Programmierzeitraum und einen Programmverifizierungszeitraum enthalten. Jede Löschschleife kann einen Löschzeitraum und einen Löschverifizierungszeitraum enthalten. Die Leseoperation kann eine normale Leseoperation und eine Datenwiederherstellungs-Leseoperation enthalten.
-
Zum Beispiel kann die Steuerschaltung 450 die Steuersignale, die zur Steuerung des Spannungsgenerators 460 verwendet werden, erzeugen und kann das Seitenpuffersteuersignal PBC zur Steuerung der Seitenpufferschaltung erzeugen, basierend auf dem Befehlssignal CMD, und kann die Reihenadresse R_ADDR und die Spaltenadresse C_ADDR basierend auf dem Adresssignal ADDR erzeugen. Die Steuerschaltung 450 kann die Reihenadresse R ADDR an den Adressendekodierer 430 übermitteln und die Spaltenadresse C_ADDR an die Daten-Eingabe/Ausgabe-Schaltung 420 übermitteln.
-
Der Adressendekodierer 430 kann durch die Mehrzahl an Kettenauswahlleitungen SSL, die Mehrzahl an Wortleitungen WL und die Mehrzahl an Masseauswahlleitungen GSL mit dem Speicherzellenarray 100 gekoppelt sein. Während der Programmieroperation oder der Leseoperation kann der Adressendekodierer 430 basierend auf der Reihenadresse R_ADDR eine der Mehrzahl an Wortleitungen WL als eine ausgewählte Wortleitung bestimmen und den Rest der Mehrzahl an Wortleitungen WL, mit Ausnahme der ausgewählten Wortleitung, als unausgewählte Wortleitungen bestimmen.
-
Zusätzlich kann der Adressendekodierer 40 während der Programmieroperation oder der Leseoperation basierend auf der Reihenadresse R_ADDR eine der Mehrzahl an Kettenauswahlleitungen SSL als eine ausgewählte Kettenauswahlleitung bestimmen und den Rest der Mehrzahl an Kettenauswahlleitungen SSL, mit Ausnahme der ausgewählten Kettenauswahlleitung, als unausgewählte Kettenauswahlleitungen bestimmen.
-
Der Spannungsgenerator 460 kann Wortleitungsspannungen VWL, welche für den Betrieb des Speicherzellenarrays 100 der nichtflüchtigen Speichervorrichtung NVM benötigt werden, basierend auf den Steuersignalen CTL erzeugen. Der Spannungsgenerator 460 kann eine Leistung PWR vom Speichercontroller 20 empfangen. Die Wortleitungsspannungen VWL können durch den Adressendekodierer 430 an die Mehrzahl an Wortleitungen WL angelegt werden.
-
Zum Beispiel kann der Spannungsgenerator 460 während der Programmieroperation eine Programmierspannung an die ausgewählte Wortleitung anlegen und kann eine Programmierdurchgangsspannung an die unausgewählten Wortleitungen anlegen. Zusätzlich kann der Spannungsgenerator 460 während der Programmverifizierungsoperation eine Programmverifizierungsspannung an die ausgewählte Wortleitung anlegen und kann eine Verifizierungsdurchgangsspannung an die unausgewählten Wortleitungen anlegen.
-
Zusätzlich kann der Spannungsgenerator 460 während der normalen Leseoperation eine Lesespannung an die ausgewählte Wortleitung anlegen und kann eine Lesedurchgangsspannung an die unausgewählten Wortleitungen anlegen. Während der Datenwiederherstellungs-Leseoperation kann der Spannungsgenerator 460 die Lesespannung an eine Wortleitung benachbart zu der ausgewählten Wortleitung anlegen und kann eine Wiederherstellungslesespannung an die ausgewählte Wortleitung anlegen.
-
Die Seitenpufferschaltung 410 kann durch die Mehrzahl an Bitleitungen BL mit dem Speicherzellenarray 100 gekoppelt sein. Die Seitenpufferschaltung 410 kann eine Mehrzahl an Puffern enthalten. In einigen Ausführungsbeispielen kann jeder Puffer mit lediglich einer Bitleitung verbunden sein. In anderen Ausführungsbeispielen kann jeder Puffer mit zwei oder mehr Bitleitungen verbunden sein.
-
Die Seitenpufferschaltung 410 kann in eine ausgewählte Seite zu programmierende Daten oder aus der ausgewählten Seite des Speicherzellenarrays 100 ausgelesene Daten vorübergehend speichern.
-
Die Daten-Eingabe/Ausgabe-Schaltung 420 kann durch Datenleitungen DL mit der Seitenpufferschaltung 410 gekoppelt sein. Während der Programmieroperation kann die Daten-Eingabe/Ausgabe-Schaltung 420 vom Speichercontroller 20 empfangene Programmierdaten DATA empfangen und die Programmierdaten DATA basierend auf der von der Steuerschaltung 450 empfangenen Spaltenadresse C_ADDR an die Seitenpufferschaltung 410 übermitteln. Während der Leseoperation kann die Daten-Eingabe/Ausgabe-Schaltung 420 gelesene Daten DATA, die aus dem Speicherzellenarray 100 gelesen und in der Seitenpufferschaltung 410 gespeichert worden sind, basierend auf der von der Steuerschaltung 450 empfangenen Spaltenadresse C_ADDR an den Speichercontroller 20 übermitteln.
-
Zusätzlich können die Seitenpufferschaltung 410 und die Daten-Eingabe/Ausgabe-Schaltung 420 Daten aus einem ersten Bereich des Speicherzellenarrays 100 lesen und diese gelesenen Daten in einen zweiten Bereich des Speicherzellenarrays 100 schreiben (z.B. ohne die Daten an eine Quelle, die extern zur nichtflüchtigen Speichervorrichtung NVM ist, wie dem Speichercontroller 20, zu übertragen). Das heißt, die Seitenpufferschaltung 410 und die Daten-Eingabe/Ausgabe-Schaltung 420 können eine Zurückkopieroperation durchführen.
-
Nachfolgend gibt eine erste Richtung D1 eine Richtung senkrecht zu einer oberen Oberfläche eines Halbleitersubstrats an und eine zweite Richtung D2 und eine dritte Richtung D3 geben zwei Richtungen parallel zu der oberen Oberfläche des Halbleitersubstrats an. Zum Beispiel können die zweite Richtung D2 und die dritte Richtung D3 senkrecht zueinander sein. Die erste Richtung D1 kann als eine vertikale Richtung bezeichnet werden, die zweite Richtung D2 kann als eine Reihenrichtung bezeichnet werden und die dritte Richtung D3 kann als eine Spaltenrichtung bezeichnet werden. Die in den Figuren durch einen Pfeil angegebene Richtung und die Gegenrichtung können als dieselbe Richtung betrachtet werden.
-
5 ist ein Blockdiagramm, das ein in der nichtflüchtigen Speichervorrichtung aus 4 enthaltenes Speicherzellenarray darstellt und 6 ist ein Schaltbild, das eine äquivalente Schaltung eines mit Bezug auf 5 beschriebenen Speicherblocks darstellt.
-
Bezugnehmend auf 5 kann das Speicherzellenarray 100 eine Mehrzahl an Speicherblöcken BLK1 bis BLKz enthalten. In einem Ausführungsbeispiel werden die Speicherblöcke BLK1 bis BLKz durch den Adressendekodierer 430 aus 4 ausgewählt. Zum Beispiel kann der Adressendekodierer 430 einen speziellen Speicherblock BLK, der einer Blockadresse entspricht, unter den Speicherblöcken BLK1 bis BLKz auswählen.
-
Der Speicherblock BLKi aus 6 kann auf einem Substrat in einer dreidimensionalen Struktur (oder einer vertikalen Struktur) ausgebildet sein. Zum Beispiel kann eine Mehrzahl an NAND-Ketten oder Zellenketten, die im Speicherblock BLKi enthalten sind, in der ersten Richtung D1 senkrecht zu der oberen Oberfläche des Substrats ausgebildet sein.
-
Bezugnehmend auf 6 kann der Speicherblock BLKi NAND-Ketten NS11 bis NS33 enthalten, die zwischen Bitleitungen BL1, BL2 und BL3 und einer gemeinsamen Source-Leitung CSL gekoppelt sind. Jede der NAND-Ketten NS11 bis NS33 kann einen Kettenauswahltransistor SST, eine Mehrzahl an Speicherzellen MCI bis MC8 und einen Masseauswahltransistor GST enthalten. In 6 ist jede der NAND-Ketten NS11 bis NS33 derart dargestellt, dass sie acht Speicherzellen MC1 bis MC8 enthält. Allerdings sind die Ausführungsbeispiele nicht darauf beschränkt. In einigen Ausführungsbeispielen kann jede der NAND-Ketten NS11 bis NS33 jegliche Anzahl an Speicherzellen enthalten.
-
Jeder Kettenauswahltransistor SST kann mit einer entsprechenden Kettenauswahlleitung (einer von SSL1 bis SSL3) verbunden sein. Die Mehrzahl an Speicherzellen MC1 bis MC8 kann jeweils mit entsprechenden Gate-Leitungen GTL1 bis GTL8 verbunden sein. Die Gate-Leitungen GTL1 bis GTL8 können Wortleitungen sein und einige der Gate-Leitungen GTL1 bis GTL8 können Dummy-Wortleitungen sein. Jeder Masseauswahltransistor GST kann mit einer entsprechenden Masseauswahlleitung (einer von GSL1 bis GSL3) verbunden sein. Jeder Kettenauswahltransistor SST kann mit einer entsprechenden Bitleitung (z.B. einer von BL1, BL2 und BL3) verbunden sein und jeder Masseauswahltransistor GST kann mit der gemeinsamen Source-Leitung CSL verbunden sein.
-
Wortleitungen (z.B. WL1) mit derselben Höhe können gemeinsam verbunden sein und die Masseauswahlleitungen GSL1 bis GSL3 und die Kettenauswahlleitungen SSL1 bis SSL3 können getrennt sein. Obwohl nicht dargestellt, können die Gate-Leitungen, die den Zwischenschaltleitungen entsprechen, getrennt sein, wie unten beschrieben wird. In 6 ist der Speicherblock BLKi derart dargestellt, dass er mit acht Gate-Leitungen GTL1 bis GTL8 und drei Bitleitungen BL1 bis BL3 gekoppelt ist. Allerdings sind die Ausführungsbeispiele nicht darauf beschränkt. Jeder Speicherblock im Speicherzellenarray 100 kann mit jeglicher Anzahl an Wortleitungen und jeglicher Anzahl an Bitleitungen gekoppelt sein.
-
Die dreidimensionale NAND-Flash-Speichervorrichtung oder der vertikale NAND-Flash-Speicher sind mit Bezug auf 6 als eine nichtflüchtige Speichervorrichtung, auf die das Ausführungsbeispiel angewandt worden ist, beschrieben worden, die Ausführungsbeispiele sind jedoch nicht auf spezifische Speichertypen beschränkt. Zum Beispiel können die Ausführungsbeispiele auf verschiedene nichtflüchtige Speichervorrichtungen angewandt werden, wie einen Phasenübergangs-Direktzugriffsspeicher (PRAM), einen magnetischen Direktzugriffsspeicher (MRAM), einen resistiven Direktzugriffsspeicher (RRAM), einen ferroelektrischen Direktzugriffsspeicher (FRAM) etc.
-
7 ist ein Diagramm, das Zustände von in einer nichtflüchtigen Speichervorrichtung enthaltenen Multipegelzellen nach Ausführungsbeispielen darstellt.
-
7 stellt einen ersten bis achten Zustand S1-S8 von Dreifachpegelzellen (TLCs) dar, wobei jede TLC drei Datenbits speichern kann. In 7 stellt die horizontale Achse eine Schwellenspannung VTH von Speicherzellen dar und die vertikale Achse stellt die Anzahl an Speicherzellen, die der Schwellenspannung VTH entsprechen, dar. Während der Programmieroperation kann der Programmiererfolg des ersten bis achten Zustands S1-S8 durch sequenzielles Anlegen einer ersten bis siebten Verifizierungslesespannung VVR1-VVR7 an die ausgewählte Wortleitung unterschieden werden. Zusätzlich können der erste bis achte Zustand S1-S8 während der normalen Leseoperation durch Anlegen von mindestens einem Teil von einer ersten bis siebten normalen Lesespannung VR1-VR7 an die ausgewählte Wortleitung unterschieden werden, wie unten mit Bezug auf 12 und 13 beschrieben wird.
-
Die Schwellenspannungsverteilungen der Speicherzellen können aufgrund einer Degeneration einer Aufbewahrungseigenschaft, die einer Datenaufbewahrungsfähigkeit der Speicherzellen zugeordnet ist, und/oder einer Degeneration einer Lesestörungseigenschaft, die der Leseoperation zugeordnet ist, verschoben werden. Die Fehler können durch Verfälschen der Schwellenspannungsverteilungen in den Lesedaten verursacht werden und somit müssen die vorbestimmten Lesespannungen gemäß Veränderungen der Operationsbedingungen eingestellt werden. Nach Ausführungsbeispielen können optimierte Operationsbedingungen für individuelle Benutzerumgebungen durch Durchführen der Lernoperation und der Ableitungsoperation basierend auf den Trainingsdaten vorgesehen werden.
-
8 ist ein Diagramm, das ein Lesesequenzbeispiel nach Ausführungsbeispielen darstellt.
-
Bezugnehmend auf 8 kann jede Lesesequenz RSEQ eine Mehrzahl an Leseoperationen ROP1-ROPk mit jeweiligen Lesezeiten tRD1-tRDk, die sich voneinander unterscheiden, enthalten.
-
Es gibt einen Ausgleich zwischen einer Länge der Lesezeit und der Genauigkeit der entsprechenden Leseoperation. Mit anderen Worten weisen Leseoperationen mit kürzeren Lesezeiten außerdem eine höhere Wahrscheinlichkeit eines Lesefehlerresultats auf, während Leseoperationen mit längeren Lesezeiten eine höhere Wahrscheinlichkeit eines erfolgreichen Leseoperationsresultats aufweisen. Dementsprechend kann jede Lesesequenz RSEQ derart eingestellt sein, dass eine Leseoperation mit der kürzeren Lesezeit vor eine Leseoperation mit der längeren Lesezeit durchgeführt wird, wie zum Beispiel in 8 dargestellt. Hier wird zuerst die erste Leseoperation ROP1 mit einer kürzesten Lesezeit tRD1 durchgeführt, dann wird nach der ersten Leseoperation ROP1 eine zweite Leseoperation ROP2 mit einer zweiten Lesezeit tRD2, welche länger ist als die erste Lesezeit tRD1, durchgeführt, und dann wird nach der zweiten Leseoperation ROP2 eine dritte Leseoperation ROP3 mit der dritten Lesezeit tRD3, welche länger ist als die zweite Lesezeit tRD2, durchgeführt, und so weiter bis zu einer k-ten Leseoperation ROPk mit der längsten Lesezeit tRDk.
-
Jede der Leseoperationen ROP1-ROPk kann unter Verwendung einer Fehlerprüfung und einer Korrektur(ECC)-Dekodierung durchgeführt werden. Die Leseoperationen ROP1-ROPk in der ausgewählten Lesesequenz RSEQ können sequenziell durchgeführt werden bis gültige Daten erhalten werden, wie durch die ECC-Dekodierung angemessen angegeben. Sobald gültige Daten erhalten werden, werden spätere Leseoperationen nicht durchgeführt und die Lesesequenz RSEQ wird beendet.
-
Infolgedessen entspricht die der ausgewählten Lesesequenz zugeordnete Leselatenz einer Summe der Lesezeiten der Leseoperationen, die durchgeführt werden, bis die gültigen Daten erhalten werden. In dem dargestellten Beispiel aus 8 entspricht die Leselatenz tLAT1 der ersten Lesezeit tRD1, wenn gültige Daten durch die erste Leseoperation ROP1 erhalten werden, die Leselatenz tLAT2 entspricht einer Summe tRD1+tRD2 für die erste Lesezeit TRD1 und die zweite Lesezeit tRD2, wenn gültige Daten durch die zweite Leseoperation ROP2 erhalten werden, die Leselatenz tLAT3 entspricht einer Summe tRD1+tRD2+tRD3 für die erste Lesezeit tRD1, die zweite Lesezeit tRD2 und die dritte Lesezeit tRD3, wenn gültige Daten durch die dritte Leseoperation ROP3 erhalten werden, und die Leselatenz tLATk entspricht einer Summe tRD1+tRD2+...+tRDk aller Lesezeiten tRD1-tRDk, wenn gültigen Daten durch die letzte Leseoperation ROPk erhalten werden.
-
9 ist ein Flussdiagramm, das ein Verfahren zum Lesen von Daten gemäß der Lesesequenz aus 8 darstellt.
-
Bezugnehmend auf 9 wird gemäß der Lesesequenz RSEQ die erste Leseoperation ROP1 mit der höchsten Priorität durchgeführt (S11). Hier, so wie mit dem Beispiel aus 8, wird angenommen, dass jede Leseoperation in Verbindung mit einer ECC-Dekodierung durchgeführt wird. Somit wird die erste Lesezeit tRDI der ersten Leseoperation ROP1 als die Leselatenz tLAT1 bestimmt (S13), wenn der Fehler (die Fehler) in den Lesedaten als durch die ECC-Dekodierung korrigierbar bestimmt wird (werden) (S12: JA). Somit, da der Fehler (die Fehler), wenn überhaupt, korrigierbar ist (sind), werden gültige Daten erhalten und die Lesesequenz RSEQ wird beendet.
-
Wenn (ein) Fehler allerdings nicht korrigierbar ist/sind (S12: NEIN) wird die zweite Leseoperation ROP2 mit der nächsten Priorität durchgeführt (S21). Erneut, wenn der (die) daraus resultierende(n) Fehler, wenn überhaupt, als durch die ECC-Dekodierung korrigierbar bestimmt wird (werden) (S22: JA), wird die Summe tRD1+tRD2 der Lesezeiten der ersten und zweiten Leseoperation ROP1 und ROP2 als die Leselatenz tLAT2 bestimmt (S23).
-
Wenn der (die) Fehler allerdings nicht korrigierbar ist (sind) (S22: NEIN) wird die dritte Leseoperation ROP3 mit der nächsten Priorität durchgeführt (S31). Erneut, wenn der (die) daraus resultierende(n) Fehler, wenn überhaupt, als durch die ECC-Dekodierung korrigierbar bestimmt wird (werden) (S32: JA), wird die Summe tRD1+tRD2+tRD3 der Lesezeiten der ersten, zweiten und dritten Leseoperation ROP1, ROP2 und ROP3 als die Leselatenz tLAT3 bestimmt (S33).
-
Auf diese Weise werden verschiedenartig eingestellte Leseoperationen, solange gültige Daten nicht durch die Ausführung von Leseoperationen mit den höheren Prioritäten erhalten werden, sequenziell durchgeführt bis eine letzte Leseoperation ROPk durchgeführt wird (S41). Letztendlich also, wenn der (die) Fehler in den Lesedaten, wenn überhaupt, als durch die ECC-Dekodierung korrigierbar bestimmt wird (werden) (S42: JA), dann wird eine Summe tRD1+tRD2+...+tRDk der Lesezeiten aller Leseoperationen ROP1-ROPk als die Leselatenz tLATk (S43) bestimmt.
-
Wenn jedoch gültige Daten nicht durch die letzte Leseoperation ROPk erhalten werden, wird bestimmt, dass die gegenwärtige Leseoperation nicht umsetzbar ist (S50) (z.B. wenn ein Lesefehler auftritt), und die Lesesequenz RSEQ wird beendet.
-
Wenn die Operationsbedingungen nicht zu widrig sind, werden gültige Daten in vielen Fällen durch die erste Leseoperation ROP1 erhalten. Somit kann die Leselatenz durch Verwenden der dargestellten Lesesequenz derart minimiert werden, dass eine Ausführung der Gesamtleseoperation mit einer minimalen praktischen Leselatenz durchgeführt wird. Wenn sich die Operationsbedingungen allerdings verschlechtern, werden gültige Daten wahrscheinlich nicht durch Verwenden von lediglich der ersten Leseoperation erhalten. Somit können eine Zweite und möglicherweise nachfolgende Leseoperationen mit jeweiligen Prioritäten durchgeführt werden. Die Notwendigkeit erweitert selbstverständlich die Leselatenz der Gesamtleseoperation. Somit kann die Performance einer nichtflüchtigen Speichervorrichtung durch Einstellen einer Mehrzahl an Lesesequenzen, die jeweils unterschiedlichen Operationsbedingungen entsprechen, verbessert werden, wobei die Verwendung einer speziellen Lesesequenz unter der Mehrzahl an Lesesequenzen adaptiv ausgewählt werden kann.
-
Wie unten mit Bezug auf 10 bis 20 beschrieben wird, können Operationsbedingungen, wie ein Lesepegelsatz, ein Zuverlässigkeitspegel, eine Lesesequenz etc., für Veränderungen der Operationsbedingungen nach den Ausführungsbeispielen optimiert werden.
-
10 ist ein Flussdiagramm, das ein Ausführungsbeispiel zum Bestimmen von Operationsbedingungen in einem Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt und 11 ist ein Diagramm, das Lesesequenzsatzbeispiele zum Bestimmen von Operationsbedingungen aus 10 darstellt.
-
Bezugnehmend auf 1, 10 und 11 ist eine Mehrzahl an Lesepegelsätzen RLS1-RLS3 derart vorgesehen, dass jeder Lesepegelsatz RLSi (i=1, 2, 3) einer Kombination aus Pegeln VLij (j=1-m) von Lesespannungen VR1-VRm für eine Leseoperationen der nichtflüchtigen Speichervorrichtung entsprechen kann (S111). Die Mehrzahl an Lesepegelsätzen RLS1-RLS3 kann als eine Form der Einstellungstabelle STTBL im Pufferspeicher 40 aus 1 gespeichert werden.
-
Ein optimaler Lesepegelsatz, der den gegenwärtigen Merkmalsinformationen FTRINF_C entspricht, kann aus der Mehrzahl an Lesepegelsätzen RLS1-RLS3 durch Durchführen der Ableitungsoperation basierend auf den gegenwärtigen Merkmalsinformationen FTRINF_C als eine Eingabe des Maschinenlernmodells bestimmt werden (S112).
-
In einigen Ausführungsbeispielen kann der optimale Lesepegelsatz jeweils in Bezug auf jede einer in der nichtflüchtigen Speichervorrichtung enthaltenen Mehrzahl an Speicherebenen oder in Bezug auf jeden einer in der nichtflüchtigen Speichervorrichtung enthaltenen Mehrzahl an Speicherblöcken bestimmt werden.
-
12 ist ein Flussdiagramm, das ein Ausführungsbeispiel zum Bestimmen von Operationsbedingungen in einem Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt und 13 ist ein Diagramm, das Zuverlässigkeitspegel gemäß einer Bestimmung von Operationsbedingungen aus 12 darstellt.
-
Bezugnehmend auf 11 und 12 können gegenwärtige Zellzählungsdaten, die eine Schwellenspannungsverteilung von Speicherzellen in einem Speicherblock angeben, in Bezug auf jeden einer in der nichtflüchtigen Speichervorrichtung enthaltenen Mehrzahl an Speicherblöcken überwacht werden (S121).
-
Eine Mehrzahl an Zuverlässigkeitspegeln, die der Mehrzahl an Speicherblöcken entsprechen, kann durch Durchführen der Ableitungsoperation basierend auf der gegenwärtigen Zellzählung als eine Eingabe des Maschinenlernmodels derart bestimmt werden, dass jeder Zuverlässigkeitspegel eine Lebensdauer von in jedem Speicherblock gespeicherten Daten angibt (S122).
-
In einigen Ausführungsbeispielen können die Operation zur Überwachung der gegenwärtigen Zellzählungsdaten und die Operation zum Bestimmen der Mehrzahl an Zuverlässigkeitspegeln periodisch durchgeführt werden. 13 stellt ein Beispiel für die Zuverlässigkeitspegel RL1-RL4 für jeweilige Speicherblöcke BLK1-BLK4, die zu Zeitpunkten T1-T4 bestimmt werden, dar. In 13 gibt RLi den höheren Zuverlässigkeitspegel als RLi+1 an, das heißt, R1 ist der höchste Zuverlässigkeitspegel und R4 ist der niedrigste Zuverlässigkeitspegel. Infolgedessen stellt 13 dar, dass die Zuverlässigkeitspegel der Speicherblöcke BLK1-BLK4, in denen Daten gespeichert sind, mit der Zeit schrittweise verringert werden können.
-
Eine Umschreiboperation kann in Bezug auf in der Mehrzahl an Speicherblöcken gespeicherte Daten basierend auf der Mehrzahl an Zuverlässigkeitspegeln durchgeführt werden. Wenn zum Beispiel der Zuverlässigkeitspegel RL4 des Speicherblocks BLK3 niedriger ist als ein vorbestimmter Referenzpegel, kann die Umschreiboperation in Bezug auf den Speicherblock BLK3 durchgeführt werden und der Speicherblock BLK3 kann initialisiert werden, um den höchsten Zuverlässigkeitspegel RL1 aufzuweisen.
-
14 ist ein Flussdiagramm, das ein Ausführungsbeispiel zum Bestimmen von Operationsbedingungen in einem Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt.
-
Bezugnehmend auf 14 kann eine Mehrzahl an Lesesequenzen der nichtflüchtigen Speichervorrichtung eingestellt werden (S131). Die Mehrzahl an Lesesequenzen, die mit Bezug auf 16 bis 18 beschrieben werden, kann als eine Form der Einstellungstabelle STTBL im Pufferspeicher 40 aus 1 gespeichert werden.
-
Eine optimale Lesesequenz, die gegenwärtigen Merkmalsinformationen entspricht, kann aus der Mehrzahl an Lesesequenzen durch Durchführen der Ableitungsoperation basierend auf den gegenwärtigen Merkmalsinformationen als eine Eingabe des Maschinenlernmodells bestimmt werden (S132).
-
15 ist ein Diagramm zum Beschreiben einer vorbestimmten Lesespannung und einer optimalen Lesespannung.
-
Schwellenspannungsverteilungen für zwei benachbarte Zustände Si und Si+1 werden in 15 unter der Annahme, dass eine Flash-Speichervorrichtung in einer Ausführungsform der Offenbarung verwendet wird, gezeigt. Allerdings wird der Fachmann erkennen, dass die folgende Beschreibung in einem Fall, in dem eine resistive Speichervorrichtung angenommen wird, auf benachbarte Widerstandsverteilungen angewandt werden kann.
-
Eine optimale Lesespannung Vop ist eine Lesespannung, die zu einer minimalen Anzahl an Fehlerbits unter Datenbits, die gleichzeitig ausgelesen werden, führt. Die optimale Lesespannung Vop entspricht einem Tal, das heißt, einem Schnittpunkt der Schwellenspannungsverteilungen der zwei Zustände Si und Si+1. Wenn die Verteilungen gemäß einer Veränderung der Operationsbedingung verschoben und/oder erweitert werden, erhöht sich der Unterschied zwischen der vorbestimmten Lesespannung und der optimalen Lesespannung. Mit der Erhöhung dieses Unterschieds erhöhen sich auch die BER oder die Wahrscheinlichkeit des Lesefehlers.
-
Wenn die vorbestimmte Spannung in einem ersten Spannungsbereich R1 enthalten ist, kann der Fehler in den Lesedaten durch die ECC-Dekodierung mit einer Hard-Decision (HD) korrigiert werden. Wenn die vorbestimmte Spannung in einem zweiten Spannungsbereich R2 enthalten ist, kann der Fehler in den Lesedaten durch die ECC-Dekodierung mit einer Soft-Decision (SD) korrigiert werden. Beispiele für eine gewisse HD und SD werden mit Bezug auf 19 und 20 mit einigen zusätzlichen Details beschrieben.
-
Wenn Bitfehler in den Lesedaten zu zahlreich sind und die vorbestimmte Lesespannung außerhalb des zweiten Bereichs R2 ist, werden gültige Daten nicht unter Verwendung einer anwendbaren ECC-Dekodierung erhalten. Wenn gültige Daten nicht durch Ausführen vorheriger Leseoperationen basierend auf der vorbestimmten Lesespannung erhalten werden, kann eine Talsuchoperation durchgeführt werden, um die optimale Lesespannung Vop zu bestimmen. Somit kann eine Leseoperation unter Verwendung der optimalen Lesespannung durchgeführt werden. Solche Talsuchoperationen und Leseoperationen basierend auf einer optimalen Leseoperation können als eine „Spannungskompensations-Leseoperation“ bezeichnet werden. In einigen Ausführungsformen kann jede der Lesesequenzen eine Leseoperation basierend auf der vorbestimmten Lesespannung mit der höheren Priorität und die mindestens eine Spannungskompensations-Leseoperation mit der niedrigen Priorität enthalten, wie in 16, 17 und 18 dargestellt. Die Talsuchoperationen benötigen zu viel Zeit und verschlechtern die Performance der nichtflüchtigen Speichervorrichtung und des Speichersystems, das die nichtflüchtige Speichervorrichtung enthält. Nach Ausführungsbeispielen können der Lesepegelsatz und die Lesesequenz durch Durchführen der Lernoperation und der Ableitungsoperation unter Verwendung von Maschinenlernen für Benutzerumgebungen optimiert werden.
-
16, 17 und 18 sind Diagramme, die Lesesequenzen nach einem Ausführungsbeispiel darstellen.
-
Die Lesesequenzen in 16, 17 und 18 sind nichtbeschränkende Beispiele zur Beschreibung der Offenbarung.
-
Bezugnehmend auf 16 kann die erste Lesesequenz RSEQ1 eine erste bis sechste Leseoperation ROP11-ROP16 enthalten, die gemäß jeweiligen Prioritäten angeordnet sind. Die erste, zweite und dritte Leseoperation ROP11, ROP12 und ROP13 können auf der vorbestimmten Lesespannung basieren und die vierte, fünfte und sechste Leseoperation ROP14, ROP15 und ROP16 können die Spannungskompensations-Leseoperationen sein.
-
Wie oben beschrieben, kann eine Leseoperation mit der kürzeren Lesezeit vor einer Leseoperation mit der längeren Lesezeit durchgeführt werden. Mit anderen Worten kann die Priorität der Leseoperationen höher sein, wenn die Lesezeit kürzer ist. Die erste Leseoperation ROP11 mit der kürzesten Lesezeit, das heißt, der ersten Lesezeit tRD11, kann zuerst durchgeführt werden, die zweite Leseoperation ROP12 mit der zweiten Lesezeit tRD12, die länger ist als die erste Lesezeit tRD11, wird nach der ersten Leseoperation ROP11 durchgeführt, und die sechste Leseoperation ROP16 mit der längsten Lesezeit tRD 16 wird wahrscheinlich zuletzt durchgeführt.
-
Sowohl die erste als auch die zweite Leseoperation ROP11 und ROP12 können eine Hard-Decision(HD)-Leseoperation sein, die Hard-Decision-Daten unter Verwendung der vorbestimmten Lesespannung ausliest und die ECC-Dekodierung basierend auf den Hard-Decision-Daten durchführt. Die erste Leseoperation ROP11 kann eine schnelle Leseoperation DEF(F) basierend auf der vorbestimmten Lesespannung sein und die zweite Leseoperation ROP12 kann eine normale Leseoperation DEF(N) basierend auf der vorbestimmten Lesespannung sein.
-
Die dritte Leseoperation ROP13 kann eine Soft-Decision(SD)-Leseoperation sein, die Hard-Decision-Daten unter Verwendung einer normalen Leseoperation DEF(N) basierend auf der vorbestimmten Lesespannung ausliest, Zuverlässigkeitsinformationen der Hard-Decision-Daten unter Verwendung einer Mehrzahl an Lesespannungen um die vorbestimmte Lesespannung vorsieht und die ECC-Dekodierung basierend auf den Hard-Decision-Daten und den Zuverlässigkeitsinformationen durchführt.
-
Die vierte, fünfte und sechste Leseoperation ROP14, ROP15 und ROP16 können eine Soft-Decision (SD) basierend auf den erfassten optimalen Lesespannungen jeweils mit den Spannungskompensations-Leseoperationen, welche die Talsuchoperationen VS1, VS2 und VS3 und die Leseoperationen enthalten, kombinieren. Die Talsuchoperationen VS1, VS2 und VS3 können verschiedenartig umgesetzt werden, um unterschiedliche Suchzeiten und unterschiedliche Lesegenauigkeiten aufzuweisen.
-
Bezugnehmend auf 17 kann die zweite Lesesequenz RSEQ2 eine erste bis vierte Leseoperation ROP21-ROP24 enthalten, die gemäß jeweiligen Prioritäten angeordnet sind. Die erste und zweite Lesespannung ROP21 und ROP22 können auf der vorbestimmten Lesespannung basieren und die dritte und vierte Leseoperation ROP23 und ROP24 können die Spannungskompensations-Leseoperationen sein.
-
Wie oben beschrieben, kann die Leseoperation mit der kürzeren Lesezeit vor der Leseoperation mit der längeren Lesezeit durchgeführt werden. Die erste Leseoperation ROP21 mit der kürzesten Lesezeit, das heißt, der ersten Lesezeit tRD21, kann zuerst durchgeführt werden, die zweite Leseoperation ROP22 mit der zweiten Lesezeit tRD22, die länger ist als die erste Lesezeit tRD21, wird nach der ersten Leseoperation ROP21 durchgeführt, und die vierte Leseoperation ROP24 mit der längsten Lesezeit tRD24 wird wahrscheinlich zuletzt durchgeführt. Die Bezugszeichen DEF(N), HD, SD, VS2 und VS3 sind dieselben wie jene, die mit Bezug auf 16 beschrieben worden sind.
-
Bezugnehmend auf 18 kann die dritte Lesesequenz RSEQ3 eine erste, zweite und dritte Leseoperation ROP31, ROP32 und ROP33 enthalten, die gemäß jeweiligen Prioritäten angeordnet sind. Die erste Leseoperation ROP31 kann auf der vorbestimmten Lesespannung basieren und die zweite und dritte Leseoperation ROP32 und ROP33 können die Spannungskompensations-Leseoperationen sein.
-
Wie oben beschrieben, kann die Leseoperation mit der kürzeren Lesezeit vor der Leseoperation mit der längeren Lesezeit durchgeführt werden. Die erste Leseoperation ROP31 mit der kürzesten Lesezeit, das heißt, der ersten Lesezeit tRD31, kann zuerst durchgeführt werden, die zweite Leseoperation ROP32 mit der zweiten Lesezeit tRD32, die länger ist als die erste Lesezeit tRD31, wird nach der ersten Leseoperation ROP31 durchgeführt, und die letzte Leseoperation ROP33 mit der längsten Lesezeit tRD33 wird zuletzt durchgeführt. Die Bezugszeichen DEF(N), HD, SD, VS2 und VS3 sind dieselben wie jene, die mit Bezug auf 16 beschrieben worden sind.
-
Zum Beispiel kann die erste Lesesequenz RSEQ1 aus 16 für die Operationsbedingung des relativ niedrigeren Bereichs des BER eingestellt sein, die zweite Lesesequenz RSEQ2 aus 17 kann für die Operationsbedingung des Zwischenbereichs des BER eingestellt sein und die dritte Lesesequenz RSEQ3 aus 18 kann für die Operationsbedingung des relativ höheren Bereichs des BER eingestellt sein. Somit kann die Performance der nichtflüchtigen Speichervorrichtung durch Einstellen einer Mehrzahl an Lesesequenzen, die jeweils den unterschiedlichen Operationsbedingungen entsprechen, und adaptives Steuern der Lesesequenzen verbessern.
-
19 ist ein Diagramm, das ein Beispiel für eine 2-Bit-Soft-Decision-Leseoperation darstellt und 20 ist ein Diagramm, das ein Beispiel für eine 3-Bit-Soft-Decision-Leseoperation darstellt.
-
Wie in 19 dargestellt, kann die nichtflüchtige Speichervorrichtung eine 2-Bit-Soft-Decision-Leseoperation durchführen. Die 2-Bit-Soft-Decision-Leseoperation kann drei Leseoperationen unter Verwendung von drei Spannungen V1, V2 und V3 mit regelmäßigen Intervallen enthalten. Zum Beispiel können die drei Spannungen V1, V2 und V3 eine erste Spannung VI mit einem vorbestimmten Referenzpegel zum Unterscheiden zwischen einem ersten Zustand Si, der Daten „1“ entspricht, und einem zweiten Zustand Si+1, der Daten „0“ entspricht, , eine zweite Spannung V2, die um einen vorbestimmten Pegel niedriger ist als die erste Spannung VI, und eine dritte Spannung V3, die um den vorbestimmten Pegel höher ist als die erste Spannung V1, enthalten. In einigen Ausführungsformen können Daten 710, die durch Verwenden der ersten Spannung VI mit dem Referenzpegel gelesen werden, Hard-Decision-Daten 710 sein, die durch eine Hard-Decision-Leseoperation gelesen werden, und die 2-Bit-Soft-Decision-Leseoperation kann die Hard-Decision-Daten 710, welche durch die Hard-Decision-Leseoperation ohne Anlegen der ersten Spannung V1 mit dem Referenzpegel gelesen werden, verwenden. Die 2-Bit-Soft-Decision-Leseoperation kann Soft-Decision-Daten 720 mit Zuverlässigkeitsinformationen für die Hard-Decision-Daten 710 durch Durchführen einer vorbestimmten Logikoperation (z.B. einer XNOR-Operation 730) an Daten, die durch Verwenden der zweiten Spannung V2 gelesen werden, und Daten, die durch Verwenden der dritten Spannung V3 gelesen werden, erzeugen. Jedes Bit der Soft-Decision-Daten 720 kann einen Zuverlässigkeitsgrad eines entsprechenden Bits der Hard-Decision-Daten 710 darstellen. Zum Beispiel kann ein Bit der Soft-Decision-Daten 720 mit einem Wert von „1“ darstellen, dass ein entsprechendes Bit der Hard-Decision-Daten 710 eine starke (S) Zuverlässigkeit aufweist, und ein Bit der Soft-Decision-Daten 720 mit einem Wert von „0“ kann darstellen, dass ein entsprechendes Bit der Hard-Decision-Daten 710 eine schwache (W) Zuverlässigkeit aufweist.
-
Wie in 20 dargestellt, kann die nichtflüchtige Speichervorrichtung eine 3-Bit-Soft-Decision-Leseoperation durchführen. Die 3-Bit-Soft-Decision-Leseoperation kann sieben Leseoperationen unter Verwendung von sieben Spannungen V1, V2, V3, V4, V5, V6 und V7 mit regelmäßigen Intervallen enthalten. Zum Beispiel können die sieben Spannungen V1, V2, V3, V4, V5, V6 und V7 die in der 2-Bit-Soft-Decision-Leseoperation enthaltenen drei Spannungen V1, V2 und V3 enthalten und können ferner eine vierte Spannung V4, die niedriger ist als die zweite Spannung V2, eine fünfte Spannung V5 zwischen der zweiten Spannung V2 und der ersten Spannung VI, eine sechste Spannung V6 zwischen der ersten Spannung V1 und der dritten Spannung V3 und eine siebte Spannung V7, die höher ist als die dritte Spannung V3, enthalten. In einigen Ausführungsbeispielen können die durch Verwenden der ersten Spannung V1 gelesenen Daten 710 durch die Hard-Decision-Leseoperation gelesene Hard-Decision-Daten 710 sein. Die durch Verwenden der zweiten und dritten Spannung V2 und V3 gelesenen Daten 720 können höchstwertige Bit(MSB)-Soft-Decision-Daten 720 sein, die den durch die 2-Bit-Soft-Decision-Leseoperation gelesenen Soft-Decision-Daten 720 entsprechen. Die 3-Bit-Soft-Decision-Leseoperation kann niedrigstwertige Bit(LSB)-Soft-Decision-Daten 740 durch Durchführen einer vorbestimmten Logikoperation (z.B. einer XNOR-Operation 750) (oder einer Kodierung) an durch Verwenden der vierten Spannung V4, der fünften Spannung V5, der sechsten Spannung V6 und der siebten Spannung V7 gelesenen Daten erzeugen. Alle Soft-Decision-Daten 720 und 740 mit zwei Bits können einen Zuverlässigkeitsgrad eines entsprechenden Bits der Hard-Decision-Daten 710 darstellen. Zum Beispiel können alle Soft-Decision-Daten 720 und 740 mit einem Wert von „11“ darstellen, das ein entsprechendes Bit der Hard-Decision-Daten 710 eine sehr starke (VS) Zuverlässigkeit aufweist, alle Soft-Decision-Daten 720 und 740 mit einem Wert von „10“ können darstellen, dass ein entsprechendes Bit der Hard-Decision-Daten 710 eine starke (S) Zuverlässigkeit aufweist, alle Soft-Decision-Daten 720 und 740 mit einem Wert von „00“ können darstellen, dass ein entsprechendes Bit der Hard-Decision-Daten 710 eine schwache (W) Zuverlässigkeit aufweist, und alle Soft-Decision-Daten 720 und 740 mit einem Wert von „01“ können darstellen, dass ein entsprechendes Bit der Hard-Decision-Daten 710 eine sehr schwache (VW) Zuverlässigkeit aufweist.
-
Obwohl 19 und 20 zwei benachbarte Zustände Si und Si+1 darstellen, können die 2-Bit-Soft-Decision-Leseoperation und die 3-Bit-Soft-Decision-Leseoperation, die in 19 und 20 dargestellt sind, durchgeführt werden, um zwischen jeglichen zwei benachbarten Zuständen einer Mehrzahl an Zuständen zu unterscheiden. Die Speicherzelle der nichtflüchtigen Speichervorrichtung kann eine Multipegelzelle (MLC) sein, die in einem von 2N-Zuständen programmiert ist, um N-Bit-Daten zu speichern. Obwohl 19 und 20 darstellen, dass die MLC zwei oder drei Bits speichert, können die Ausführungsbeispiele auf die MLC, die vier oder mehr Bits speichert, angewandt werden.
-
21 ist ein Flussdiagramm, das ein Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen darstellt.
-
Bezugnehmend auf 21 kann die Lesesequenz RSEQ, die wie mit Bezug auf 14 bis 20 beschrieben bestimmt wird, durchgeführt werden (S10). Die Trainingsdaten TRD können basierend auf der Lesesequenz RSEQ und den Ergebnissen der ECC-Dekodierung gesammelt werden (S20). Die Fehlerinformationen ERRINF, welche die Ergebnisse der ECC-Dekodierung angeben, können akkumuliert werden (S30) und eine Ausfallwahrscheinlichkeit der ECC-Dekodierung kann basierend auf den akkumulierten Fehlerinformationen ERRINF berechnet werden (S40). Wenn die Wahrscheinlichkeit PRFL höher ist als ein Referenzwert TH (S50: JA), kann das Maschinenlernmodell MD durch Durchführen der Lernoperation aktualisiert werden (S60). Wenn die Wahrscheinlichkeit PRFL nicht höher ist als ein Referenzwert TH (S50: NEIN), kann das Maschinenlernmodell MD aufrechterhalten werden.
-
Somit kann der Durchführungszeitplan der Lernoperation basierend auf der Ausfallwahrscheinlichkeit PRFL der ECC-Dekodierung bestimmt werden. In einigen Ausführungsbeispielen kann die Ausfallwahrscheinlichkeit PRFL jene der Hard-Decision-Leseoperation sein. In einigen Ausführungsbeispielen kann die Leselatenz wie mit Bezug auf 8 und 9 beschrieben überwacht werden und die Wahrscheinlichkeit PRFL zum Bestimmen des Durchführungszeitplans der Lernoperation kann basierend auf der überwachten Leselatenz bestimmt werden. In einigen Ausführungsbeispielen kann der Durchführungszeitplan der Lernoperation basierend auf einer Ausfallwahrscheinlichkeit der Ableitungsoperation bestimmt werden.
-
22 ist eine Maschinenlern-Engine nach Ausführungsbeispielen.
-
Bezugnehmend auf 22 kann eine Maschinenlern-Engine 21 einen Controller CTRL, ein erstes Maschinenlernmodul MLMDL1 und ein zweites Maschinenlernmodul MLMDL2 enthalten. Der Controller kann das Maschinenlernmodul MLMDL antreiben, um ein Maschinenlernmodell MD zu aktualisieren.
-
Das erste Maschinenlernmodul MLMDL1 kann eine erste Performance PFM1 aufweisen und die Lernoperation basierend auf den Trainingsdaten TRD durchführen. Das zweite Maschinenlernmodul MLMDL2 kann eine zweite Performance PFM2, die höher ist als die erste Performance PFM1, aufweisen und die Ableitungsoperation basierend auf den gegenwärtigen Merkmalsinformationen FTRINF_C durchführen. Durch solch eine duale Strukturierung wird die Ableitungsoperation, die eine hohe Geschwindigkeit benötigt, womöglich nicht verzögert, selbst wenn eine Latenz während der Lernoperation auftritt.
-
In einigen Ausführungsbeispielen kann eine erste Anzahl an Knoten, die gleichzeitig Knotenoperationen im ersten Maschinenlernmodell MLMDL1 durchführen, kleiner sein als eine zweite Anzahl an Knoten, die gleichzeitig Knotenoperationen im zweiten Maschinenlernmodell MLMDL2 durchführen. In einigen Ausführungsbeispielen kann eine erste Hardware-Performance (z.B. eine Frequenz eines Betriebstaktsignals) des ersten Maschinenlernmodells MLMDL1 niedriger sein als eine zweite Hardware-Performance des zweiten Maschinenlernmodells MLMDL2.
-
23 und 24 sind Blockdiagramme, die eine in einem Speichersystem enthaltene Maschinenlernvorrichtung nach Ausführungsbeispielen darstellen.
-
Wie in 23 und 24 dargestellt, kann eine Größe der Trainingsdaten TRD reduziert werden und größenreduzierte Trainingsdaten können in einem Pufferspeicher gespeichert werden. Nachfolgend können Beschreibungen, die mit 1 wiederholt werden, weggelassen sein.
-
In einigen Ausführungsbeispielen können die Trainingsdaten TRD komprimiert sein und die größenreduzierten Trainingsdaten TRD' können im Pufferspeicher BUFF gespeichert sein. Das Kompressionsschema kann ein verlustfreies Kompressionsschema oder ein verlustbehaftetes Kompressionsschema sein. In einigen Ausführungsbeispielen können die Trainingsdaten TRD normalisiert sein und die größenreduzierten Trainingsdaten TRD' können im Pufferspeicher BUFF gespeichert sein. Hier stellt eine „Normalisierung“ dar, dass Werte von Daten proportional derart reduziert werden, dass der Bereich der Werte verschmälert werden kann. Somit kann die Speicherkapazität des Pufferspeichers BUFF reduziert oder durch Reduzieren der Trainingsdaten TRD und Speichern der größenreduzierten Trainingsdaten TRD' effizient verwendet werden.
-
Bezugnehmend auf 23 kann eine Maschinenlernvorrichtung 11 eine Maschinenlern-Engine MLD, einen Datensammler DCLL, einen Pufferspeicher BUFF, eine Verkleinerungseinheit DNSZ und eine Vergrößerungseinheit UPSZ enthalten. Die Verkleinerungseinheit DNSZ kann die Trainingsdaten TRD komprimieren oder normalisieren, um die größenreduzierten Trainingsdaten TRD' im Pufferspeicher BUFF zu speichern. Die Vergrößerungseinheit UPSZ kann die Trainingsdaten TRD basierend auf den im Pufferspeicher BUFF gespeicherten größenreduzierten Trainingsdaten TRD' wiederherstellen und die Trainingsdaten TRD an die Maschinenlern-Engine MLD übermitteln. Die Maschinenlern-Engine MLD kann die Lernoperation basierend auf den Trainingsdaten TRD durchführen und die Ableitungsoperation basierend auf den gegenwärtigen Merkmalsinformationen FTRINF_C durchführen.
-
Im Vergleich zu der Maschinenlernvorrichtung 11 aus 23 ist die Vergrößerungseinheit UPSZ in einer Maschinenlernvorrichtung 12 aus 24 weggelassen. In diesem Fall kann die Maschinenlern-Engine MLD die Lernoperation basierend auf den größenreduzierten Trainingsdaten TRD' durchführen. Die Verkleinerungseinheit DNSZ kann größenreduzierte gegenwärtige Merkmalsinformationen FTRINF_C' während der Ableitungsoperation vorsehen und die Maschinenlern-Engine MLD kann die Ableitungsoperation basierend auf größenreduzierten gegenwärtigen Merkmalsinformationen FTRINF_C' durchführen.
-
25 und 26 sind Diagramme zur Beschreibung von Beispielen für eine neuronale Deep-Learning-Netzwerkstruktur, die durch eine Maschinenlernvorrichtung nach Ausführungsbeispielen angetrieben wird.
-
Bezugnehmend auf 25 kann ein allgemeines neuronales Netzwerk eine Eingabeschicht IL, eine Mehrzahl an verborgenen Schichten HL1, HL2, ..., HLn und eine Ausgabeschicht OL enthalten.
-
Die Eingabeschicht IL kann i Eingabeknoten x1, x2, ..., xi enthalten, wobei i eine natürliche Zahl ist. Merkmalsinformationen FTRINF (z.B. Vektoreingabedaten), deren Länge i ist, können in die Eingabeknoten x1, x2, ..., xi derart eingegeben werden, dass jedes Element der Merkmalsinformationen FTRINF in einen jeweiligen der Eingabeknoten x1, x2, ..., xi eingegeben wird.
-
Die Mehrzahl an verborgenen Schichten HL1, HL2, ..., HLn kann n verborgene Schichten enthalten, wobei n eine natürliche Zahl ist, und kann eine Mehrzahl an verborgenen Knoten h1 1, h1 2, h1 3, ... h1 m, h2 1, h2 2, h2 3, ..., h2 m, hn 1, hn 2, hn 3, ..., hn m enthalten. Zum Beispiel kann die verborgene Schicht HL1 m verborgene Knoten h1 1, h1 2, h1 3, ... h1 m enthalten, die verborgene Schicht HL2 kann m verborgene Knoten h2 1, h2 2, h2 3, ..., h2 m, enthalten und die verborgene Schicht HLn kann m verborgene Knoten hn 1, hn 2, hn 3, ..., hn m enthalten, wobei m eine natürliche Zahl ist.
-
Die Ausgabeschicht OL kann j Ausgabeknoten y1, y2, ..., yj enthalten, wobei j eine natürliche Zahl ist. Jeder der Ausgabeknoten y1, y2, ..., yj kann einer jeweiligen zu kategorisierenden Klasse entsprechen. Die Ausgabeschicht OL kann die den Merkmalsinformationen FTRINF zugeordneten Ausgabewerte (z.B. Klassen-Scores oder einfach Scores) ODAT für jede der Klassen ausgeben. Die Ausgabeschicht OL kann als eine vollständig verbundene Schicht bezeichnet werden und kann zum Beispiel eine Wahrscheinlichkeit, dass die Merkmalsinformationen FTRINF jeder Operationsbedingung entsprechen, angeben.
-
Eine in 25 dargestellte Struktur des neuronalen Netzwerks kann durch Informationen auf Zweigen (oder Verbindungen) zwischen als Linien dargestellten Knoten und einem jeden Zweig zugewiesenen gewichteten Wert dargestellt sein. Knoten innerhalb einer Schicht sind womöglich nicht miteinander verbunden, aber Knoten unterschiedlicher Schichten können vollständig oder teilweise miteinander verbunden sein.
-
Jeder Knoten (z.B. der Knoten h1 1) kann eine Ausgabe eines vorherigen Knotens (z.B. des Knotens x1) empfangen und kann ein Ergebnis der Errechnungsoperation, einer Errechnung oder einer Berechnung als eine Ausgabe an einen nächsten Knoten (z.B. den Knoten h2 1) ausgeben. Jeder Knoten kann einen auszugebenden Wert durch Anwenden der Eingabe auf eine spezifische Funktion, z.B. eine nichtlineare Funktion, berechnen.
-
Im Allgemeinen kann die Struktur des neuronalen Netzwerks im Voraus eingestellt werden und die gewichteten Werte für die Verbindungen zwischen den Knoten werden unter Verwendung von Daten mit einer bereits bekannten Antwort bezüglich welcher Klasse die Daten angehören angemessen eingestellt. Die Daten mit der bereits bekannten Antwort werden als „Trainingsdaten“ bezeichnet und ein Prozess zum Bestimmen der gewichteten Werte wird als „Training“ bezeichnet. Das neuronale Netzwerk „lernt“ während des Trainingsprozesses. Eine Gruppe einer unabhängigen trainierbaren Struktur und des gewichteten Werts wird als ein „Modell“ bezeichnet und ein Prozess zum Vorhersagen, durch das Modell mit dem bestimmten gewichteten Wert, welcher Klasse die Eingabedaten angehören, und dann zum Ausgeben des vorhergesagten Werts wird als ein „Test“-Prozess bezeichnet.
-
Bezugnehmend auf 26 kann ein neuronales Faltungsnetzwerk eine Mehrzahl an Schichten CONV1, RELU1, CONV2, RELU2, POOL1, CONV3, RELU3, CONV4, RELU4, POOL2, CONV5, RELU5, CONV6, RELU6, POOL3 und FC enthalten.
-
Anders als beim allgemeinen neuronalen Netzwerk kann jede Schicht des neuronales Faltungsnetzwerks drei Dimensionen einer Breite, Höhe und Tiefe aufweisen und somit können Daten, die in jede Schicht eingegeben werden, Volumendaten mit drei Dimensionen einer Breite, Höhe und Tiefe sein.
-
Jede Faltungsschicht CONV1, CONV2, CONV3, CONV4, CONV5 und CONV6 kann eine Faltungsoperation an den gegenwärtigen Merkmalsinformationen FTRINF_C durchführen. Die Faltungsoperation stellt eine Operation dar, in der Daten basierend auf einer Maske mit gewichteten Werten verarbeitet werden und ein Ausgabewert durch Multiplizieren von Eingabewerten mit den gewichteten Werten und Aufsummieren der gesamten multiplizierten Werte erhalten wird. Die Maske kann als ein Filter, Fenster oder Kernel bezeichnet werden.
-
Jede RELU-Schicht RELU1, RELU2, RELU3, RELU4, RELU5 und RELU6 kann eine Rectified Linear Unit Operation an Eingaben durchführen. Jede Pooling-Schicht POOL1, POOL2 und POOL3 kann eine Downsampling-Operation an eingegebenen Volumendaten entlang räumlichen Dimensionen einer Breite und Höhe durchführen. Normalerweise können eine Faltungsschicht (z.B. CONV1) und eine RELU-Schicht (z.B. RELU1) ein Paar an CONV/RELU-Schichten im neuronalen Faltungsnetzwerk ausbilden, Paare der CONV/RELU-Schichten können wiederholt im neuronalen Faltungsnetzwerk angeordnet sein und die Pooling-Schicht kann periodisch in das neuronale Faltungsnetzwerk eingesetzt werden, wodurch eine Datengröße reduziert wird und eine Dateneigenschaft extrahiert wird.
-
Eine Ausgabeschicht oder eine vollständig verbundene Schicht FC kann Ergebnisse (z.B. Klassen-Scores) der gegenwärtigen Merkmalsinformationen FTRINF_C für jede der Klassen ausgeben. Zum Beispiel können die eingegebenen Volumendaten, die den gegenwärtigen Merkmalsinformationen FTRINF_C entsprechen, in eine eindimensionale Matrix oder einen Vektor umgewandelt werden, wenn die Faltungsoperation und die Downsampling-Operation wiederholt werden. Zum Beispiel kann die vollständig verbundene Schicht FC Wahrscheinlichkeiten, dass die gegenwärtigen Merkmalsinformationen FTRINF_C jeweils einer Mehrzahl an Lesepegelsätzen RLS1-RLS5 entsprechen, darstellen. Somit kann der Lesepegelsatz, welcher der höchsten Wahrscheinlichkeit entspricht, als der optimale Lesepegelsatz unter einer Mehrzahl an Lesepegelsätzen RLS1-RLS5 bestimmt werden.
-
27 ist ein Diagramm, das ein Beispiel für einen in einem neuronalen Netzwerk enthaltenen Knoten und ein durch einen Knoten ND in einem neuronalen Netzwerk durchgeführtes Knotenoperationsbeispiel darstellt.
-
Wenn n Eingaben a1-an an den Knoten ND übermittelt werden, kann der Knoten ND die n Eingaben a1-an und entsprechenden n Gewichtungen wl-wn jeweils multiplizieren, kann n durch die Multiplikation erhaltene Werte summieren, kann ein Offset „b“ zu einem summierten Wert addieren und kann einen Ausgabewert durch Anwenden eines Werts, zu dem das Offset „b“ addiert wird, auf eine spezifische Funktion „(7“ erzeugen. Die Lernoperation kann basierend auf den Trainingsdaten TRD durchgeführt werden, um alle Knoten im neuronalen Netzwerk zu aktualisieren.
-
28 ist ein Diagramm, das ein Speichersystem nach Ausführungsbeispielen darstellt.
-
Bezugnehmend auf 28 enthält ein Errechnungssystem 2600 einen Prozessor 2610, eine Speichervorrichtung 2620, eine Benutzerschnittstelle 2630, einen Bus 2650 und ein Speichersystem 2660. In einigen Ausführungsformen kann das Errechnungssystem 2600 ferner ein Modem 2640 enthalten, wie einen Basisband-Chipsatz.
-
Der Prozessor 2610 kann spezifische Berechnungen oder Aufgaben durchführen. Zum Beispiel kann der Prozessor 2610 ein Mikroprozessor, eine zentrale Verarbeitungseinheit (CPU), ein Digitalsignalprozessor oder Ähnliches sein. Der Prozessor 2610 kann über einen Bus 2650, wie einen Adressenbus, einen Steuerbus und/oder einen Datenbus, mit der Speichervorrichtung 2620 gekoppelt sein. Ferner kann der Prozessor 2610 mit einem Erweiterungsbus, wie einem Peripheral Component Interconnect (PCI) Bus, gekoppelt sein und kann die Benutzerschnittstelle 2630, die mindestens eine Eingabevorrichtung, wie eine Tastatur, eine Maus, einen Touchscreen etc., und mindestens eine Ausgabevorrichtung, wie einen Drucker, eine Anzeigevorrichtung etc., enthält, steuern. Das Modem 2640 kann eine drahtgebundene oder drahtlose Kommunikation mit einer externen Vorrichtung durchführen.
-
Das Speichersystem 2660 kann einen Speichercontroller 2670 und eine nichtflüchtige Speichervorrichtung NVM 2680 enthalten. Der Speichercontroller 2670 kann eine Maschinenlernvorrichtung ML, wie oben beschrieben, zum Durchführen eines Verfahrens zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung nach Ausführungsbeispielen enthalten.
-
Wie oben beschrieben, können das Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung und das Speichersystem nach Ausführungsbeispielen durch Sammeln von Trainingsdaten im Speichersystem und Durchführen der Lernoperation und der Ableitungsoperation basierend auf den Trainingsdaten optimierte Operationsbedingungen für individuelle Benutzerumgebungen vorsehen.
-
Die Offenbarung kann auf jegliche elektronische Vorrichtung und jegliches System, das eine nichtflüchtige Speichervorrichtung enthält, angewandt werden. Zum Beispiel kann die Offenbarung auf folgende Systeme angewandt werden: eine Speicherkarte, ein Festkörperlaufwerk (SSD), eine eingebettete Multimediakarte (eMMC), einen Universal-Flash-Speicher (UFS), ein Mobiltelefon, ein Smartphone, einen Personal Digital Assistant (PDA), einen tragbaren Multimediaplayer (PMP), eine Digitalkamera, eine Videokamera, einen Computer (PC), einen Servercomputer, eine Workstation, einen Laptop, einen digitalen TV, eine Set-Top-Box, eine tragbare Spielekonsole, ein Navigationssystem, eine tragbare Vorrichtung, eine Internet-der-Dinge(IoT)-Vorrichtung, eine Inter-net-aller-Dinge(IoE)-Vorrichtung, ein E-Book, eine Vorrichtung für virtuelle Realität (VR), eine Vorrichtung für erweiterte Realität (AR) etc.
-
Wie üblich in diesem Gebiet, können Ausführungsformen in Bezug auf Blöcke, welche eine beschriebene Funktion oder Funktionen ausführen, beschrieben und dargestellt werden. Diese Blöcke, die hierin als Einheiten oder Modelle oder Ähnliches bezeichnet werden können, werden durch analoge und/oder digitale Schaltungen, wie Logik-Gates, integrierte Schaltungen, Mikroprozessoren, Mikrocontroller, Speicherschaltungen, passive Elektronikkomponenten, aktive Elektronikkomponenten, optische Komponenten, festverdrahtete Schaltungen und Ähnliches, physikalisch umgesetzt und können optional durch Firmware und/oder Software angetrieben werden. Die Schaltungen können zum Beispiel in einem oder mehreren Halbleiterchips oder auf Substratträgern, wie einer Leiterplatte und Ähnlichem, ausgebildet sein. Die Schaltungen, die einen Block bilden, können durch dedizierte Hardware oder durch einen Prozessor (z.B. einen oder mehrere programmierte Mikroprozessoren und zugeordnete Schaltkreise) oder durch eine Kombination aus dedizierter Hardware zum Durchführen einiger Funktionen des Blocks und einem Prozessor zum Durchführen anderer Funktionen des Blocks umgesetzt sein. Jeder Block der Ausführungsformen kann physikalisch in zwei oder mehr interagierende und diskrete Blöcke unterteilt werden, ohne dabei vom Umfang der Offenbarung abzuweichen. Gleichermaßen können die Blöcke der Ausführungsformen physikalisch zu zwei komplexen Blöcken kombiniert werden, ohne dabei vom Umfang der Offenbarung abzuweichen. Ein Aspekt einer Ausführungsform kann durch innerhalb eines dauerhaften Speichermediums gespeicherte Anweisungen erzielt und von einem Prozessor ausgeführt werden.
-
Das Vorangegangene stellt Ausführungsbeispiele dar und soll nicht als darauf beschränkt ausgelegt werden. Obwohl einige Ausführungsbeispiele beschrieben worden sind, wird ein Fachmann begrüßen, dass viele Modifikationen in den Ausführungsbeispielen möglich sind, ohne dabei erheblich von der vorliegenden Offenbarung 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
-