DE102018110957A1 - Speichersystem, Speichersteuerung für ein Speichersystem, Betriebsverfahren einer Speichersteuerung und Betriebsverfahren einer Benutzervorrichtung mit einem Speichersystem - Google Patents

Speichersystem, Speichersteuerung für ein Speichersystem, Betriebsverfahren einer Speichersteuerung und Betriebsverfahren einer Benutzervorrichtung mit einem Speichersystem Download PDF

Info

Publication number
DE102018110957A1
DE102018110957A1 DE102018110957.1A DE102018110957A DE102018110957A1 DE 102018110957 A1 DE102018110957 A1 DE 102018110957A1 DE 102018110957 A DE102018110957 A DE 102018110957A DE 102018110957 A1 DE102018110957 A1 DE 102018110957A1
Authority
DE
Germany
Prior art keywords
memory
buffer
write data
buffer memory
write
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.)
Pending
Application number
DE102018110957.1A
Other languages
English (en)
Inventor
Jinwoo Kim
Kui-Yon Mun
Chul Lee
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
Priority claimed from KR1020170084198A external-priority patent/KR102398186B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102018110957A1 publication Critical patent/DE102018110957A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Ein System (100) weist auf: einen nichtflüchtigen Speicher (122); eine Speichersteuerung (121), die konfiguriert ist, um den nichtflüchtigen Speicher (122) zu steuern, wobei die Speichersteuerung (121) einen ersten Pufferspeicher (121a) zum vorübergehenden Speichern von Schreibdaten, die zu dem nichtflüchtigen Speicher (122) zu schreiben sind, aufweist; und einen zweiten Pufferspeicher (123), der eine niedrigere Betriebsgeschwindigkeit und eine höhere Speicherkapazität als der erste Pufferspeicher (121a) hat. Die Speichersteuerung (121) ist konfiguriert, um die Schreibdaten von dem ersten Pufferspeicher (121a) zu dem zweiten Pufferspeicher (123) und zu dem nichtflüchtigen Speicher (122) zu übertragen, und um einen Betriebszustand des ersten Pufferspeichers (121a) nach dem Übertragen der Schreibdaten von dem ersten Pufferspeicher (121a) zu dem zweiten Pufferspeicher (123) und zu dem nichtflüchtigen Speicher (122) freizugeben. Ein Schreiben von zusätzlichen Schreibdaten in den ersten Pufferspeicher (121a) ist vor der Freigabe des Betriebszustands des ersten Pufferspeichers (121a) verboten und ist nach der Freigabe des Betriebszustands des ersten Pufferspeichers (121a) erlaubt.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Es wird gemäß 35 U.S.C. § 119 die Priorität der am 3. Juli 2017 beim koreanischen Amt für geistiges Eigentum eingereichten koreanischen Patentanmeldung Nr. 10-2017-0084198 beansprucht, deren gesamter Inhalt hiermit durch Verweis aufgenommen ist.
  • HINTERGRUND
  • Ausführungsbeispiele des erfinderischen Konzepts, die hierin beschrieben sind, beziehen sich auf einen Hableiterspeicher und insbesondere auf ein Speichersystem, eine Speichersteuerung für ein Speichersystem, ein Betriebsverfahren einer Speichersteuerung und ein Betriebsverfahren einer Benutzervorrichtung, die ein Speichersystem aufweist.
  • Halbleiterspeicher werden in flüchtige Speichervorrichtungen, bei denen gespeicherte Daten verschwinden, wenn eine Leistungszufuhr unterbrochen wird, und nichtflüchtige Speichervorrichtungen, bei denen gespeicherte Daten selbst dann gehalten werden, wenn eine Leistungszufuhr unterbrochen wird, klassifiziert.
  • Eine Flash-Speichervorrichtung, die ein Typ einer nichtflüchtigen Speichervorrichtung ist, wird als ein Massenspeichermedium einer Benutzervorrichtung weitverbreitet verwendet. Da sich die Computertechnologie weiterentwickelt, gibt es einen fortwährenden Bedarf an einer Verbesserung des Leistungsvermögens eines auf einem Flash-Speicher basierenden Massenspeichermediums. Das auf einem Flash-Speicher basierende Massenspeichermedium verwendet beispielsweise einen Hochgeschwindigkeitspufferspeicher, wie zum Beispiel einen Direktzugriffsspeicher, um einen Unterschied zwischen Eingabe-/Ausgabe-Geschwindigkeiten eines Hosts und des Speicherungsmediums auszugleichen. Es gibt jedoch aufgrund von Faktoren, wie zum Bespiel einer begrenzten Kapazität des Hochgeschwindigkeitspufferspeichers oder Begrenzungen der Fähigkeit, die Zuverlässigkeit von Daten, die in einem Flash-Speicher zu speichern sind, zu garantieren, eine Begrenzung der Verbesserung des Leistungsvermögens.
  • KURZFASSUNG
  • Ausführungsbeispiele des erfinderischen Konzepts liefern ein Betriebsverfahren einer Speichersteuerung und ein Betriebsverfahren einer Benutzervorrichtung, die ein Leistungsvermögen und eine Zuverlässigkeit von gespeicherten Daten verbessern können.
  • Bei einem Aspekt weist ein System einen nichtflüchtigen Speicher; eine Speichersteuerung, die konfiguriert ist, um den nichtflüchtigen Speicher zu steuern, wobei die Speichersteuerung einen ersten Pufferspeicher zum vorübergehenden Speichern von Schreibdaten, die in den nichtflüchtigen Speicher zu schreiben sind, aufweist; und einen zweiten Pufferspeicher auf, der eine niedrigere Betriebsgeschwindigkeit und eine höhere Speicherkapazität als der erste Pufferspeicher hat, wobei die Speichersteuerung konfiguriert ist, um die Schreibdaten von dem ersten Pufferspeicher zu dem zweiten Pufferspeicher und zu dem nichtflüchtigen Speicher zu übertragen, und um einen Betriebszustand des ersten Pufferspeichers freizugeben, nachdem die Schreibdaten von dem ersten Pufferspeicher zu dem zweiten Pufferspeicher und zu dem nichtflüchtigen Speicher übertragen wurden, wobei ein Schreiben von zusätzlichen Schreibdaten in den ersten Pufferspeicher vor der Freigabe des Betriebszustands des ersten Speicherpuffers verboten ist, und ein Schreiben der zusätzlichen Schreibdaten in den ersten Speicherpuffer nach der Freigabe des Betriebszustands des ersten Pufferspeichers erlaubt ist.
  • Bei einem anderen Aspekt weist ein Speichersystem einen nichtflüchtigen Speicher; eine Speichersteuerung, die einen Schreibpuffer zum vorübergehenden Speichern von Schreibdaten, die in dem nichtflüchtigen Speicher zu speichern sind, aufweist, wobei die Speichersteuerung konfiguriert ist, um die Schreibdaten von dem Schreibpuffer zu dem nichtflüchtigen Speicher zu übertragen; und einen Direktzugriffsspeicher (RAM) auf, der angeordnet ist, um die Schreibdaten, die durch die Speichersteuerung zu dem nichtflüchtigen Speicher übertragen werden, zu sichern, wobei die Speichersteuerung konfiguriert ist, um einen Betriebszustand des Schreibpuffers freizugeben, während die Schreibdaten in dem RAM gesichert sind, und vor einer Bestätigung eines erfolgreichen Schreibens der Schreibdaten, die zu dem nichtflüchtigen Speicher übertragen werden, und wobei ein Schreiben von zusätzlichen Schreibdaten in den Schreibpuffer vor der Freigabe des Betriebszustands des Schreibpuffers verboten ist, und ein Schreiben der zusätzlichen Schreibdaten in den Schreibpuffer nach der Freigabe des Betriebszustands des Schreibpuffers erlaubt ist.
  • Bei einem weiteren Aspekt weist ein Speichersystem einen nichtflüchtigen Speicher und eine Speichersteuerung auf, die einen Schreibpuffer zum vorübergehenden Speichern von Schreibdaten, die in dem nichtflüchtigen Speicher zu speichern sind, aufweist, wobei die Speichersteuerung konfiguriert ist, um die Schreibdaten von dem Schreibpuffer zu dem nichtflüchtigen Speicher zu übertragen, und die Speichersteuerung ferner konfiguriert ist, um einen Betriebszustand des Schreibpuffers vor einer Bestätigung eines erfolgreichen Schreibens der Schreibdaten, die zu dem nichtflüchtigen Speicher übertragen werden, freizugeben, wobei ein Schreiben von zusätzlichen Schreibdaten in den Schreibpuffer vor der Freigabe des Betriebszustands des Schreibpuffers verboten ist, und ein Schreiben der zusätzlichen Schreibdaten in den Schreibpuffer nach der Freigabe des Betriebszustands des Schreibpuffers erlaubt ist.
  • Bei noch einem anderen Aspekt weist ein System eine Speichervorrichtung mit einem nichtflüchtigen Speicher und mit einer Speichersteuerung, die konfiguriert ist, um den nichtflüchtigen Speicher zu steuern, wobei die Speichersteuerung einen ersten Pufferspeicher aufweist, und eine Host-Vorrichtung auf, die einen zweiten Pufferspeicher aufweist, wobei die Host-Vorrichtung konfiguriert ist, um Schreibdaten zu der Speichervorrichtung für eine Speicherung in dem nichtflüchtigen Speicher zu übertragen, wobei die Speichersteuerung konfiguriert ist, um die Schreibdaten, die von dem Host empfangen werden, in dem ersten Pufferspeicher vorübergehend zu speichern, und wobei die Schreibdaten vor einer Bestätigung eines erfolgreichen Schreibens der Schreibdaten in den nichtflüchtigen Speicher in dem zweiten Pufferspeicher gesichert werden, wobei ein Betriebszustand des ersten Pufferspeichers vor einer Bestätigung des erfolgreichen Schreibens der Schreibdaten in dem nichtflüchtigen Speicher freigegeben wird, und wobei ein Schreiben von zusätzlichen Schreibdaten in den ersten Pufferspeicher vor der Freigabe des Betriebszustands des ersten Pufferspeichers verboten ist, und ein Schreiben der zusätzlichen Schreibdaten in den ersten Pufferspeicher nach der Freigabe des Betriebszustands des ersten Pufferspeichers erlaubt ist.
  • Bei noch einem weiteren Aspekt weist ein Verfahren auf: ein vorübergehendes Speichern von Schreibdaten, die zu schreiben sind, durch einen ersten Pufferspeicher einer Speichersteuerung; ein Übertragen der Schreibdaten von dem ersten Pufferspeicher zu einem nichtflüchtigen Speicher und zu einem zweiten Pufferspeicher, der eine niedrigere Betriebsgeschwindigkeit und eine höhere Speicherkapazität als der erste Pufferspeicher hat, durch die Speichersteuerung; und ein Freigeben eines Betriebszustands des ersten Pufferspeichers durch die Speichersteuerung nach einem Übertragen der Schreibdaten von dem ersten Pufferspeicher zu dem zweiten Pufferspeicher und zu dem nichtflüchtigen Speicher, wobei ein Schreiben von zusätzlichen Schreibdaten in den ersten Pufferspeicher vor der Freigabe des Betriebszustands des ersten Pufferspeichers verboten ist, und ein Schreiben der zusätzlichen Schreibdaten in den ersten Pufferspeicher nach der Freigabe des Betriebszustands des ersten Pufferspeichers erlaubt ist.
  • Figurenliste
  • Die vorhergehenden und anderen Ziele und Eigenschaften werden aus der folgenden Beschreibung unter Bezugnahme auf die folgenden Zeichnungen offensichtlicher werden, in denen sich gleiche Bezugszeichen durch die verschiedenen Zeichnungen hindurch auf gleiche Teile beziehen, es sei denn, dass es anders spezifiziert ist. Es zeigen:
    • 1 ein Blockdiagramm, das ein Ausführungsbeispiel eines Benutzersystems darstellt;
    • 2 ein Blockdiagramm, das eine Speichersteuerung von 1 darstellt;
    • 3A und 3B Flussdiagramme, die Ausführungsbeispiele von Betriebsverfahren der Speichersteuerung von 1 darstellen;
    • 4, 5 und 6 Ansichten zum Beschreiben von Ausführungsbeispielen von Betriebsverfahren der Speichersteuerung von 1 im Detail;
    • 7 und 8 Ansichten, die eine Struktur einer Speicherungsvorrichtung von 1 und eine Struktur eines zweiten Pufferspeichers von 1 darstellen;
    • 9 ein Blockdiagramm, das ein Ausführungsbeispiel eines Benutzersystems darstellt;
    • 10, 11 und 12 Ansichten zum Beschreiben eines Betriebs einer Speichersteuerung von 9;
    • 13 ein Blockdiagramm, das ein Ausführungsbeispiel eines Benutzersystems darstellt;
    • 14 ein Flussdiagramm, das einen Betrieb einer Speichersteuerung von 13 darstellt;
    • 15 eine Ansicht zum Beschreiben eines Betriebs der Speichersteuerung von 13;
    • 16 ein Zeitdiagramm zum Beschreiben, wie Schreibdaten durch eine Mehrzahl von Kanälen zu nichtflüchtigen Speichervorrichtungen übertragen werden;
    • 17 eine Ansicht zum Beschreiben eines Verfahrens, bei dem die Speichersteuerung Schreibdaten in einer Programmierungsfehlschlagssituation wiederherstellt;
    • 18 ein Zeitdiagramm zum Beschreiben eines Ausführungsbeispiels einer Datentransfereinheit;
    • 19 ein Blockdiagramm, das eine Konfiguration eines Ausführungsbeispiels der Speichersteuerung darstellt; und
    • 20 ein Blockdiagramm, das ein Ausführungsbeispiel eines Benutzersystems, das eine Speicherungsvorrichtung aufweist, darstellt.
  • DETAILLIERTE BESCHREIBUNG
  • Im Folgenden sind Ausführungsbeispiele des erfinderischen Konzepts im Detail und deutlich in einem solchen Umfang beschrieben, dass ein Fachmann ohne Weiteres das erfinderische Konzept implementiert.
  • 1 ist ein Blockdiagramm, das ein Ausführungsbeispiel eines Benutzersystems 100 darstellt. Bezug nehmend auf 1 kann ein Benutzersystem 100 eine Host-Vorrichtung (Host 110) und eine Speicherungsvorrichtung 120 aufweisen. Das Benutzersystem 100 kann ein Computersystem oder ein Informationsverarbeitungssystem, wie zum Beispiel ein Computer, ein Notebook, ein Server, eine Workstation, ein tragbares Kommunikationsendgerät, ein persönlicher digitaler Assistent (PDA), ein tragbarer Multimediaspieler (PMP), ein Smartphone oder eine tragbare Vorrichtung sein.
  • Auf der Basis einer spezifizierten Schnittstelle kann der Host 110 Daten in der Speicherungsvorrichtung 120 speichern oder Daten, die in der Speicherungsvorrichtung 120 gespeichert sind, lesen. Bei einem Ausführungsbeispiel kann die Schnittstelle mindestens eine von verschiedenen Kommunikationsschnittstellen, wie zum Beispiel, jedoch nicht darauf begrenzt, eine Double-Data-Rate-Schnittstelle (DDR-Schnittstelle), eine Universal-Serial-Bus-Schnittstelle (USB-Schnittstelle), eine Multimedia-Card-Schnittstelle (MMC-Schnittstelle), eine eMMC-Schnittstelle (embedded-MMC-Schnittstelle), eine Peripheral-Component-Interconnection-Schnittstelle (PCI-Schnittstelle), eine PCI-Express-Schnittstelle (PCI-E-Schnittstelle), eine Advanced-Technology Attachment-Schnittstelle (ATA-Schnittstelle), eine serielle ATA-Schnittstelle, eine parallele ATA-Schnittstelle, eine Small-Computer-Small-Interface-Schnittstelle (SCSI-Schnittstelle), eine Enhanced-Small-Disk-Interface-Schnittstelle (ESDI-Schnittstelle), eine Integrated-Drive-Electronics-Schnittstelle (IDE-Schnittstelle), eine Firewire-Schnittstelle, eine Universal-Flash-Storage-Schnittstelle (UFS-Schnittstelle) und eine Nonvolatile-Memory-Express-Schnittstelle (NVMe-Schnittstelle), aufweisen.
  • Die Speicherungsvorrichtung 120 kann eine Speichersteuerung 121, nichtflüchtige Speichervorrichtungen 122 und einen zweiten Pufferspeicher 123 aufweisen. Bei einem Ausführungsbeispiel kann die Speicherungsvorrichtung 120 ein Massenspeichermedium eines Benutzersystems 100, wie zum Beispiel ein Festkörperlaufwerk (SSD), ein USB-Speicher, ein Festplattenlaufwerk oder ein USB-Stick, sein.
  • Unter der Steuerung des Hosts 110 kann die Speichersteuerung 121 Daten in nichtflüchtigen Speichervorrichtungen 122 speichern oder Daten, die in den nichtflüchtigen Speichervorrichtungen 122 gespeichert sind, lesen. Die Speichersteuerung 121 kann einen ersten Pufferspeicher 121a aufweisen. Der erste Pufferspeicher 121a kann Daten, die in den nichtflüchtigen Speichervorrichtungen 122 zu speichern sind, oder Daten, die von den nichtflüchtigen Speichervorrichtungen 122 gelesen werden, vorübergehend speichern. Das heißt, der erste Pufferspeicher 121a kann als ein Schreibpuffer oder als ein Lesepuffer der Speicherungsvorrichtung 120 verwendet werden.
  • Unter der Steuerung der Speichersteuerung 121 können die nichtflüchtigen Speichervorrichtungen 122 Daten speichern oder Daten, die darin gespeichert sind, ausgeben. Bei einem Ausführungsbeispiel kann jede der nichtflüchtigen Speichervorrichtungen 122 einen NAND-Flash-Speicher aufweisen. Ausführungsbeispiele des erfinderischen Konzepts sind jedoch nicht darauf begrenzt. Jede der nichtflüchtigen Speichervorrichtungen 122 kann beispielsweise einen nichtflüchtigen Speicher, wie zum Beispiel einen Nur-Lese-Speicher (ROM), einen programmierbaren ROM (PROM), einen elektrisch programmierbaren ROM (EPROM), einen elektrisch löschbaren und programmierbaren ROM (EEPROM), einen Flash-Speicher, einen Phasenänderungs-RAM (PRAM), einen magnetischen RAM (MRAM), einen Resistive-RAM (RRAM) oder einen ferroelektrischen RAM (FRAM), aufweisen.
  • Der zweite Pufferspeicher 123 kann eine Vielfalt von Informationen, die für die Speicherungsvorrichtung 120 im Betrieb benötigt werden speichern. Der zweite Pufferspeicher 123 kann beispielsweise Informationen, wie zum Beispiel eine Abbildungstabelle, die in einer Flash-Übersetzungsschicht (FTL) der Speichersteuerung 121 verwendet wird, speichern. Der zweite Pufferspeicher 123 kann ferner konfiguriert sein, um Schreibdaten, die in den nichtflüchtigen Speichern 122 zu speichern sind, vorübergehend zu speichern. Bei einem Ausführungsbeispiel kann der zweite Pufferspeicher 123 mit einem Halbleiterplättchen, einem Chip, einer Baugruppe oder einem Modul, das, der oder die von der Speichersteuerung 121 unabhängig ist, implementiert sein, oder kann mit dem gleichen Halbleiterplättchen, dem gleichen Chip, der gleichen Baugruppe oder dem gleichen Modul wie die Speichersteuerung 121 implementiert sein. Bei einem Ausführungsbeispiel kann der zweite Pufferspeicher 123 eine Speicherungskapazität haben, die größer als die des ersten Pufferspeichers 121a ist.
  • Gemäß einem Ausführungsbeispiel des erfinderischen Konzepts kann die Speicherungsvorrichtung den ersten Pufferspeicher 121a, der als ein Schreibpuffer verwendet wird, freigeben und einen Schreibabschluss zu dem Host 110 vor einem erfolgreichen Programmieren der Schreibdaten in den nichtflüchtigen Speichervorrichtungen 222 übertragen, sodass eine Verzögerung minimiert wird, die einer Schreibanfrage von dem Host 110 zugeordnet ist, und eine verfügbare Kapazität des ersten Pufferspeichers 121a gewährleistet wird.
  • Die Speicherungsvorrichtung 120 kann beispielsweise Schreibdaten von dem Host 110 in dem ersten Pufferspeicher 121a der Speichersteuerung 121 vorübergehend speichern. Die Speicherungsvorrichtung 122 kann den ersten Pufferspeicher 121a nach einem Übertragen der Schreibdaten, die in dem ersten Pufferspeicher 121a gespeichert sind, zu den nichtflüchtigen Speichervorrichtungen 122 und zu dem zweiten Pufferspeicher 123 freigeben, sodass eine verfügbare Kapazität des ersten Pufferspeichers 121a gewährleistet wird. In diesem Fall kann eine Notwendigkeit bestehen, die Schreibdaten, die in dem zweiten Pufferspeicher 123 gespeichert sind, solange zu halten, bis die Schreibdaten gänzlich und erfolgreich in die nichtflüchtigen Speichervorrichtungen 122 programmiert wurden. Selbst wenn ein Programmierungsfehlschlag in den nichtflüchtigen Speichervorrichtungen 122 auftritt, kann dementsprechend die Zuverlässigkeit von Daten gewährleistet werden, da die Schreibdaten durch Verwenden des zweiten Pufferspeichers 123 wiederhergestellt werden. Das heißt, der erste Pufferspeicher 121a gemäß einem Ausführungsbeispiel des erfinderischen Konzepts kann als ein Schreibpuffer verwendet werden, und der zweite Pufferspeicher 123 kann als ein Sicherungspuffer oder ein Aufzeichnungspuffer verwendet werden. Bei einigen Ausführungsbeispielen kann der zweite Pufferspeicher 123 ein dynamischer Direktzugriffsspeicher (DRAM) sein, und eine gesamte DRAM-Bandbreite des zweiten Pufferspeichers 123 kann verwendet werden, um die Schreibdaten von dem ersten Pufferspeicher 121a zu dem zweiten Pufferspeicher 123 zu übertragen.
  • Während eines Programmierungsvorgangs gewährleistet eine herkömmliche Speicherungsvorrichtung durch so langes Halten von Daten, die in einem Schreibpuffer gespeichert sind, bis ein Programmieren von nichtflüchtigen Speichervorrichtungen erfolgreich abgeschlossen wurde, oder durch Übertragen eines Schreibabschlusses zu einem Host, nachdem das Programmieren der nichtflüchtigen Speichervorrichtungen erfolgreich abgeschlossen wurde, die Zuverlässigkeit von Daten. In dem Fall, in dem jedoch eine Kapazität des Schreibpuffers unzureichend ist, kann sich das Schreibleistungsvermögen verringern, und eine Schreibverzögerung kann sich erhöhen, da sich ein Zeitpunkt, zu dem der Schreibabschluss gesendet wird, verzögert.
  • Die Speicherungsvorrichtung 120 gemäß einem Ausführungsbeispiel des erfinderischen Konzepts kann jedoch eine verfügbare Kapazität des ersten Pufferspeichers 121a, der als ein Schreibpuffer verwendet wird, durch Freigeben des Schreibpuffers im Voraus ungeachtet eines erfolgreichen Abschlusses eines Programmierens der nichtflüchtigen Speichervorrichtungen 122 gewährleisten und kann durch Übertragen eines Schreibabschlusses zu dem Host 110 vor einem erfolgreichen Abschluss des Programmierens der nichtflüchtigen Speichervorrichtungen 122 eine Schreibverzögerung verhindern. Bei einem Ausführungsbeispiel können die Schreibdaten solange in dem zweiten Pufferspeicher 123 gehalten werden, bis ein Programmieren der nichtflüchtigen Speichervorrichtungen 122 erfolgreich abgeschlossen wurde, wodurch die Zuverlässigkeit der Daten in einer Programmierungsfehlschlagssituation gewährleistet wird.
  • Es kann dementsprechend möglich sein, sowohl einen ausreichenden verfügbaren Platz des Schreibpuffers als auch die Zuverlässigkeit von Schreibdaten in einer DRAMlosen Speicherungsvorrichtung oder einer Speicherungsvorrichtung, die einen kleinen Schreibpuffer hat, zu gewährleisten. Das heißt, die Speicherungsvorrichtung 120 gemäß einem Ausführungsbeispiel des erfinderischen Konzepts kann eine verbesserte Zuverlässigkeit und ein verbessertes Leistungsvermögen liefern. Ein Betrieb der Speicherungsvorrichtung 120 gemäß einem Ausführungsbeispiel des erfinderischen Konzepts wird unter Bezugnahme auf die folgenden Zeichnungen vollständiger beschrieben werden.
  • 2 ist ein Blockdiagramm, das die Speichersteuerung 121 von 1 im Detail darstellt. Bezug nehmend auf 1 und 2 kann die Speichersteuerung 121 einen ersten Pufferspeicher 121a, einen Prozessor 121b, einen ROM 121c, einen Pufferverwalter 121d, eine Hostschnittstellenschicht 121e und eine Flash-Schnittstellenschicht 121f aufweisen.
  • Wie unter Bezugnahme auf 1 beschrieben wurde, kann ein erster Pufferspeicher 121a als ein Schreibpuffer oder ein Lesepuffer der Speicherungsvorrichtung 120 verwendet werden. Der erste Pufferspeicher 121a kann beispielsweise konfiguriert sein, um Schreibdaten von dem Host 110 vorübergehend zu speichern oder Daten, die von den nichtflüchtigen Speichervorrichtungen 122 gelesen werden, zu lesen. Bei einem Ausführungsbeispiel kann der erste Pufferspeicher 121a einen statischen Direktzugriffsspeicher (SRAM) aufweisen. Ausführungsbeispiele des erfinderischen Konzepts können jedoch nicht darauf begrenzt sein. Der erste Pufferspeicher 121a kann beispielsweise einen Direktzugriffsspeicher, wie zum Beispiel einen dynamischen RAM (DRAM), einen synchronen DRAM (SDRAM), einen PRAM, einen MRAM, einen Widerstands-RAM und einen FRAM etc., aufweisen.
  • Der Prozessor 121b kann einen Gesamtbetrieb der Speichersteuerung 121 steuern. Der Prozessor 121b kann beispielsweise konfiguriert sein, um eine Firmware, einen Programmcode, eine Softwareschicht etc., die für die Speichersteuerung 121 benötigt werden, um verschiedene Hardwareelemente, die die Speichersteuerung 121 in sich aufweist, zu betreiben oder zu steuern, anzusteuern. Der ROM 121c kann eine Vielfalt von Informationen, die für die Speichersteuerung 121 benötigt werden, um in der Gestalt von Firmware in Betrieb zu sein, speichern. Bei einem Ausführungsbeispiel kann der Prozessor 121b konfiguriert sein, um Firmware, die in dem ROM 121c gespeichert ist, anzusteuern.
  • Der Pufferverwalter 121d kann konfiguriert sein, um den zweiten Pufferspeicher 123 zu steuern. Der zweite Pufferspeicher 123 kann beispielsweise einen DRAM aufweisen, und der Pufferverwalter 121d kann eine DRAM-Steuerung sein, die konfiguriert ist, um Daten in den zweiten Pufferspeicher 123 zu schreiben oder Daten, die in dem zweiten Pufferspeicher 123 gespeichert sind, zu lesen. Bei einem Ausführungsbeispiel kann der Pufferverwalter 121d abhängig von einer Struktur der Speichersteuerung 121 oder des zweiten Pufferspeichers 123 weggelassen sein.
  • Die Speichersteuerung 121 kann konfiguriert sein, um durch die Hostschnittstellenschicht 121e mit dem Host 110 zu kommunizieren. Die Hostschnittstellenschicht 121e kann mindestens eine von spezifizierten Schnittstellen, die unter Bezugnahme auf 1 beschrieben wurden, aufweisen. Die Speichersteuerung 121 kann konfiguriert sein, um durch eine Flash-Schnittstellenschicht 121f mit den nichtflüchtigen Speichervorrichtungen 122 zu kommunizieren.
  • 3A und 3B sind Flussdiagramme, die Ausführungsbeispiele von Betriebsverfahren der Speichersteuerung 121 von 1 darstellen. Im Folgenden werden für eine kurze Beschreibung Ausführungsbeispiele des erfinderischen Konzepts auf der Basis eines Schreibbetriebsvorgangs bzw. einer Schreiboperation der Speichervorrichtung 120 beschrieben werden. Ausführungsbeispiele des erfinderischen Konzepts müssen jedoch nicht darauf begrenzt sein. Ein Schutzbereich und ein Geist des erfinderischen Konzepts können beispielsweise auf verschiedene Betriebsvorgänge bzw. Operationen angewendet sein.
  • Im Folgenden wird für eine kurze Beschreibung ein Betrieb der Speichersteuerung 121 auf der Basis einer Schreibdateneinheit beschrieben werden. Die Speichersteuerung 121 kann beispielsweise Schreibdaten WRD von dem Host 110 empfangen und die empfangenen Schreibdaten WRD zu den nichtflüchtigen Speichervorrichtungen 122 übertragen. Ausführungsbeispiele des erfinderischen Konzepts müssen jedoch nicht darauf beschränkt sein. Eine Datentransfereinheit zwischen dem Host 110 und der Speichersteuerung 121 kann sich beispielsweise von einer Datentransfereinheit zwischen der Speichersteuerung 121 und den nichtflüchtigen Speichervorrichtungen 122 unterscheiden.
  • Im Folgenden kann sich, „dass der erste Pufferspeicher 121a oder der zweite Pufferspeicher 123 freigegeben wird“, auf einen Zustand beziehen, bei dem unterschiedliche Schreibdaten in einem Bereich des ersten Pufferspeichers 121a gespeichert werden können, in dem Schreibdaten bereits gespeichert sind, oder in einem Bereich des zweiten Pufferspeichers 123 gespeichert werden können, in dem die Schreibdaten bereits gespeichert sind. Das heißt, dass in dem Fall, in dem es den ersten Pufferspeicher 121a gibt, in dem die Schreibdaten gespeichert sind, unterschiedliche Schreibdaten in dem ersten Pufferspeicher 121a (genauer in einem Bereich, in dem die Schreibdaten gespeichert sind, unter Bereichen des ersten Pufferspeichers 121a), in dem die Schreibdaten gespeichert sind, gespeichert werden können, oder der erste Pufferspeicher 121a (oder der Bereich desselben) zugewiesen werden kann, derart, dass unterschiedliche Schreibdaten gespeichert werden. Bei einem Ausführungsbeispiel kann die Freigabe oder die Zuweisung des Pufferspeichers durch den Prozessor 121b der Speichersteuerung 121 oder irgendein anderes getrenntes Hardwareelement oder irgendein anderes Softwareelement der Speichersteuerung 121 durchgeführt werden.
  • Im Folgenden können für eine kurze Beschreibung Daten oder Informationen als einfach zwischen Elementen ausgetauscht beschrieben werden. Ausführungsbeispiele des erfinderischen Konzepts können jedoch nicht darauf beschränkt sein. Ein Datentransfer und einen Datenfluss zwischen Elementen können beispielsweise durch ein vordefiniertes Protokoll zwischen den Elementen hergestellt werden. Die im Vorhergehenden beschriebenen Annahmen sind lediglich beispielhaft dargestellt, um den Schutzbereich und die Idee des erfinderischen Konzepts kurz und deutlich, ohne eine Beschränkung darauf, zu beschreiben.
  • Bezug nehmend auf 1 bis 3A kann bei einem Betriebsvorgang S110 die Speichersteuerung 121 Schreibdaten WRD von dem Host 110 empfangen und die empfangenen Schreibdaten WRD in dem ersten Pufferspeicher 121 speichern. Wie im Vorhergehenden beschrieben ist, kann beispielsweise der erste Pufferspeicher 121a als ein Schreibpuffer verwendet werden, der die Schreibdaten WRD von dem Host 110 vorübergehend speichert. Die Speichersteuerung 121 kann die Schreibdaten WRD von dem Host 110 in dem ersten Pufferspeicher 121a vorübergehend speichern. Bei einem Ausführungsbeispiel kann die Speichersteuerung 121 konfiguriert sein, um eine Schreibanfrage (oder einen Schreibbefehl) von dem Host 110 zu empfangen und um den ersten Pufferspeicher 121a, in dem die entsprechenden Schreibdaten gespeichert werden, ansprechend auf die empfangene Schreibanfrage zuzuweisen.
  • Bei einem Betriebsvorgang S120 kann die Speichersteuerung 121 den WR-Abschluss zu dem Host 110 übertragen. Die Speichersteuerung 121 kann beispielsweise die Schreibdaten WRD in dem ersten Pufferspeicher 121a speichern und kann dann den WR-Abschluss, der der im Vorhergehenden beschriebenen Schreibanfrage zugeordnet ist, zu dem Host 110 übertragen. Bei einem Ausführungsbeispiel kann der Host 110, der den WR-Abschluss empfängt, erkennen, dass ein Schreiben, das der ausgegebenen Schreibanfrage entspricht, abgeschlossen wurde, und kann andere Betriebsvorgänge (zum Beispiel eine andere Schreibanfrage, eine Leseanfrage oder andere interne Betriebsvorgänge) durchführen.
  • Bei einem Betriebsvorgang S130 kann die Speichersteuerung 121 die Schreibdaten WRD zu den nichtflüchtigen Speichervorrichtungen 122 und dem zweiten Pufferspeicher 123 übertragen. Die Speichersteuerung 121 kann beispielsweise die Schreibdaten WRD zu den nichtflüchtigen Speichervorrichtungen 122 übertragen, derart, dass die Schreibdaten WRD, die in dem ersten Pufferspeicher 121a gespeichert sind, in den nichtflüchtigen Speichervorrichtungen 122 gespeichert werden. Die nichtflüchtigen Speichervorrichtungen 122 können einen Programmierungsvorgang an den empfangenen Schreibdaten WRD durchführen.
  • Die Speichersteuerung 121 kann zusätzlich die Schreibdaten WRD, die in dem ersten Pufferspeicher 121a gespeichert sind, zu dem zweiten Pufferspeicher 123 übertragen. Bei einem Ausführungsbeispiel können die Schreibdaten WRD, die in dem zweiten Pufferspeicher 123 gespeichert sind, verwendet werden, um Daten in einer Programmierungsfehlschlagssituation der nichtflüchtigen Speichervorrichtungen 122 wiederherzustellen. Bei einem Ausführungsbeispiel kann der erste Pufferspeicher 121a in der Gestalt eines Zwei-Tor-Speichers bzw. Dual-Port-Speichers oder eines Mehr-Tor-Speichers implementiert sein, um die Schreibdaten WRD von dem ersten Pufferspeicher 121a zu den nichtflüchtigen Speichervorrichtungen 122 und zu dem zweiten Pufferspeicher 123 gleichzeitig zu übertragen.
  • Bei einem Betriebsvorgang S140 kann die Speichersteuerung 121 den ersten Pufferspeicher 121a freigeben. Die Speichersteuerung 121 kann beispielsweise den ersten Pufferspeicher 121a freigeben, nachdem die Schreibdaten WRD zu den nichtflüchtigen Speichervorrichtungen 122 und zu dem zweiten Pufferspeicher 123 übertragen wurden. In diesem Fall kann, da der erste Pufferspeicher 121a, der als ein Schreibpuffer verwendet wird, freigegeben wird, eine verfügbare Kapazität des ersten Pufferspeichers 121a gewährleistet werden. Dies kann bedeuten, dass die Speichersteuerung 121 andere Schreibdaten von dem Host 110 empfängt und speichert. Das heißt, sowie der erste Pufferspeicher 121a freigegeben wird, dass die Schreibverzögerung aufgrund einer begrenzten Kapazität des Schreibpuffers verhindert werden kann.
  • Bei einem Betriebsvorgang S150 kann die Speichersteuerung 121 bestimmen, ob die Schreibdaten WRD in die nichtflüchtigen Speichervorrichtungen 122 erfolgreich programmiert werden. Die Speichersteuerung 121 kann beispielsweise Informationen über ein Programmierungsresultat (das heißt einen Programmierungserfolg oder -fehlschlag), zum Beispiel ein Schreiberfolg-Signal oder ein Schreibfehlschlag-Signal, von den nichtflüchtigen Speichervorrichtungen 122 empfangen. Die Speichersteuerung 121 kann basierend auf den empfangenen Informationen bestimmen, ob der Programmierungsvorgang erfolgreich ist.
  • Wenn bestimmt wird, dass der Programmierungsvorgang erfolgreich ist, kann bei einem Betriebsvorgang S160 die Speichersteuerung 121 den zweiten Pufferspeicher 123 beispielsweise ansprechend auf ein Schreiberfolg-Signal, das von den nichtflüchtigen Speichervorrichtungen 122 als eine Bestätigung eines erfolgreichen Schreibens der Schreibdaten, die zu den nichtflüchtigen Speichervorrichtungen 122 übertragen wurden, empfangen wurde, freigeben. Da beispielsweise der Programmierungsvorgang, der erfolgreich war, angibt, dass die Schreibdaten WRD in den nichtflüchtigen Speichervorrichtungen 122 normal gespeichert wurden, kann der zweite Pufferspeicher 123, in dem die Schreibdaten WRD gespeichert sind, freigegeben werden, wodurch eine verfügbare Kapazität des zweiten Pufferspeichers 123 gewährleistet wird.
  • In dem Fall, in dem der Programmierungsvorgang fehlschlägt, kann bei einem Betriebsvorgang S170 die Speichersteuerung 121 beispielsweise ansprechend auf ein Schreibfehlschlag-Signal, das von den nichtflüchtigen Speichervorrichtungen 122 empfangen wurde, die Schreibdaten WRD, die in dem zweiten Pufferspeicher 123 gespeichert sind, zu dem ersten Pufferspeicher 121a kopieren (oder kann die Schreibdaten WRD, die in dem ersten Pufferspeicher 121a gespeichert sind, durch Verwenden der Schreibdaten WRD, die in dem zweiten Pufferspeicher 123 gespeichert sind, wiederherstellen). Da beispielsweise der Programmierungsfehlschlag bedeutet, dass die Schreibdaten WRD in den nichtflüchtigen Speichervorrichtungen 122 nicht normal gespeichert wurden, kann eine Notwendigkeit eines zusätzlichen Betriebsvorgangs eines Programmierens der Schreibdaten WRD zu den nichtflüchtigen Speichervorrichtungen 122 bestehen. In diesem Fall kann, da der erste Pufferspeicher 121a bei einem Betriebsvorgang S140 vorausgehend freigegeben wurde, der erste Pufferspeicher 121a in einem Zustand sein, in dem die Schreibdaten WRD nicht in demselben gespeichert sind. Da jedoch die Schreibdaten WRD in dem zweiten Pufferspeicher 123 bei dem Betriebsvorgang S130 gespeichert werden, kann der zweite Pufferspeicher 123 in einem Zustand sein, in dem die Schreibdaten WRD in demselben gespeichert sind. Die Speichersteuerung 121 kann dementsprechend nach einem Kopieren der Schreibdaten WRD von dem zweiten Pufferspeicher 123 zu dem ersten Pufferspeicher 121a (oder einem Wiederherstellen der Schreibdaten WRD) die Schreibdaten WRD wieder programmieren.
  • Die Betriebsvorgänge S130 bis S150 können nach dem Betriebsvorgang S170 durchgeführt werden. In diesem Fall kann, da die Schreibdaten WRD in dem zweiten Pufferspeicher 123 vorausgehend gespeichert werden, ein Betriebsvorgang eines Übertragens der Schreibdaten WRD zu dem zweiten Pufferspeicher 123 weggelassen werden.
  • Bezug nehmend auf 1, 2 und 3B kann als Nächstes die Speichersteuerung 121 den Betriebsvorgang S110 bis zu dem Betriebsvorgang S160 durchführen, die im Vorhergehenden mit Bezug auf 3A beschrieben wurden.
  • In dem Fall, in dem der Programmierungsvorgang S150 fehlschlägt, kann dann bei einem Betriebsvorgang S180 die Speichersteuerung 121 die Schreibdaten WRD, die in dem zweiten Pufferspeicher 123 gespeichert sind, direkt zu den nichtflüchtigen Speichervorrichtungen 122 übertragen.
  • Gemäß dem Ausführungsbeispiel von 3A kann beispielsweise, wenn ein Programmierungsvorgang fehlschlägt, die Speichersteuerung 121 konfiguriert sein, um die Schreibdaten WRD, die in dem zweiten Pufferspeicher 123 gespeichert sind, zu dem ersten Pufferspeicher 121a zu übertragen, und um dann die Schreibdaten WRD von dem ersten Pufferspeicher 121a zu den nichtflüchtigen Speichervorrichtungen 122 zu übertragen. Gemäß dem Ausführungsbeispiel von 3B kann im Gegensatz dazu in dem Fall, in dem der Programmierungsvorgang fehlschlägt, die Speichersteuerung 121 konfiguriert sein, um die Schreibdaten WRD von dem zweiten Pufferspeicher 123 direkt zu den nichtflüchtigen Speichervorrichtungen 122 zu übertragen. Das heißt, ein Wiederherstellen der Daten in dem ersten Pufferspeicher 121a kann weggelassen werden. Ein Wiederherstellen der Daten des ersten Pufferspeichers 121a wurde für eine kurze Beschreibung hinsichtlich 3A veranschaulicht. Ausführungsbeispiele des erfinderischen Konzepts müssen jedoch nicht darauf beschränkt sein. Ein Wiederherstellen der Daten WRD in dem ersten Pufferspeicher 121a kann beispielsweise weggelassen werden, und die Schreibdaten WRD können von dem zweiten Pufferspeicher 123 direkt zu den nichtflüchtigen Speichervorrichtungen 122 übertragen werden, wie es in 3B gezeigt ist.
  • Wie im Vorhergehenden beschrieben wurde, können die Speicherungsvorrichtung 120 oder die Speichersteuerung 121 gemäß einem Ausführungsbeispiel des erfinderischen Konzepts im Voraus ein Freigeben eines Schreibpuffers und ein Übertragen eines Schreibabschlusses, bevor die nichtflüchtigen Speichervorrichtungen 122 einen Programmierungsvorgang erfolgreich abschließen, durchführen, wodurch eine Reduzierung des Leistungsvermögens aufgrund einer begrenzten Pufferkapazität oder eine Reduzierung des Leistungsvermögens aufgrund eines verzögerten Transfers des Schreibabschlusses verhindert wird. Selbst wenn ferner ein Programmierungsvorgang in den nichtflüchtigen Speichervorrichtungen 122 fehschlägt, kann die Zuverlässigkeit von Daten gewährleistet werden, da die Schreibdaten WRD von einem getrennten Pufferspeicher (das heißt dem zweiten Pufferspeicher 123) wiederhergestellt werden.
  • 4 bis 6 sind Ansichten zum Beschreiben eines Betriebsverfahrens der Speichersteuerung 121 von 1 im Detail. Für eine kurze Beschreibung werden Elemente, die nicht notwendig sind, um einen Betrieb der Speichersteuerung 121 zu beschreiben, hier nicht wiederholt werden. 4 ist eine Ansicht zum Beschreiben eines Betriebs der Speichersteuerung 121 und eines Datenflusses in dem Fall, in dem ein Programmierungsvorgang erfolgreich ist. 5 ist ein Zeitdiagramm, das einen Datenfluss in dem Fall darstellt, in dem ein Programmierungsvorgang erfolgreich ist. 6 ist eine Ansicht zum Beschreiben eines Betriebs der Speichersteuerung 121 und eines Datenflusses in dem Fall, in dem ein Programmierungsvorgang fehlschlägt.
  • Bezug nehmend auf 4 und 5 kann der Host 110 die Schreibdaten WRD zuerst zu der Speichersteuerung 121 übertragen (①). Zu einem Zeitpunkt t1 von 5 kann beispielsweise die Speichersteuerung 121 einen Bereich, in dem die Schreibdaten WRD gespeichert werden, unter Bereichen des ersten Pufferspeichers 121a zuweisen. Bei einem Ausführungsbeispiel kann die Zuweisung des ersten Pufferspeichers 121a ansprechend auf eine Schreibanfrage von dem Host 110 durchgeführt werden. Die Speichersteuerung 121 kann die Schreibdaten WRD in dem zugewiesenen Bereich speichern.
  • Nachdem die Schreibdaten WRD in dem ersten Pufferspeicher 121a gespeichert wurden, kann die Speichersteuerung 121 den WR-Abschluss zu dem Host 110 übertragen (②). Zu einem Zeitpunkt t2 von 5 können beispielsweise die Schreibdaten WRD von dem Host 110 gänzlich übertragen werden, und die Speichersteuerung 121 kann den WR-Abschluss zu dem Host 110 übertragen. Bei einem Ausführungsbeispiel kann, wenn der WR-Abschluss empfangen wird, der Host 110 erkennen, das ein Schreib- (oder Programmierungs-) Betriebsvorgang, der den Schreibdaten WRD zugeordnet ist, abgeschlossen wurde.
  • Die Speichersteuerung 121 kann die Schreibdaten WRD zu den nichtflüchtigen Speichervorrichtungen 122 und zu dem zweiten Pufferspeicher 123 übertragen (③). Die Speichersteuerung 121 kann beispielsweise die Schreibdaten WRD zu den nichtflüchtigen Speichervorrichtungen 122 übertragen, derart, dass die Schreibdaten WRD in den nichtflüchtigen Speichervorrichtungen 122 gespeichert werden. Die Speichersteuerung 121 kann zusätzlich die Schreibdaten WRD zu dem zweiten Pufferspeicher 123 übertragen, derart, dass die Schreibdaten WRD in dem zweiten Pufferspeicher 123 gespeichert werden. Bei einem Ausführungsbeispiel können die nichtflüchtigen Speichervorrichtungen 122 die Schreibdaten WRD empfangen und an den empfangenen Schreibdaten WRD einen Programmierungsvorgang durchführen.
  • Bei einem Ausführungsbeispiel können Betriebsvorgänge eines Übertragens der Schreibdaten WRD zu den nichtflüchtigen Speichervorrichtungen 122 und zu dem zweiten Pufferspeicher 123 im Wesentlichen zu der gleichen Zeit durchgeführt werden. Dies kann bedeuten, dass es aufgrund der Übertragung der Schreibdaten WRD zu dem zweiten Pufferspeicher 123 keine Notwendigkeit einer zusätzlichen Zeit gibt.
  • Die Speichersteuerung 121 kann nach dem Übertragen der Schreibdaten WRD zu den nichtflüchtigen Speichervorrichtungen 122 und zu dem zweiten Pufferspeicher 123 den ersten Pufferspeicher 121a freigeben (④), sodass sich der erste Pufferspeicher 121 in einem freigegebenen Betriebszustand befindet. Ein Schreiben von zusätzlichen Schreibdaten zu dem ersten Pufferspeicher 121a ist hier vor der Freigabe des Betriebszustands des ersten Pufferspeichers 121a verboten, und ein Schreiben von zusätzlichen Schreibdaten zu dem ersten Pufferspeicher 121a ist nach der Freigabe des Betriebszustands des ersten Pufferspeichers 121a erlaubt. Zu einem dritten Zeitpunkt t3 von 5 können beispielsweise die Schreibdaten WRD von dem ersten Pufferspeicher 121a zu den nichtflüchtigen Speichervorrichtungen 122 und zu dem zweiten Pufferspeicher 123 gänzlich übertragen werden, und die Speichersteuerung 121 kann den ersten Pufferspeicher 121a freigeben, derart, dass andere Schreibdaten von dem Host 110 in dem ersten Pufferspeicher 121a gespeichert werden. Das heißt, da der erste Pufferspeicher 121a freigegeben wird, bevor der Programmierungsvorgang der nichtflüchtigen Speichervorrichtungen 122 erfolgreich abgeschlossen wurde, dass die Speichersteuerung 121 weiter andere Schreibdaten vor einem Zeitpunkt empfangen kann, zu dem der Programmierungsvorgang der nichtflüchtigen Speichervorrichtungen 122 erfolgreich abgeschlossen wird. Dies kann bedeuten, dass eine Schreibverzögerung aufgrund einer begrenzten Pufferkapazität verhindert wird. Bei einem Ausführungsbeispiel können zusätzliche Schreibdaten zu einem bestimmten Bereich des ersten Pufferspeichers 121a selbst vor der Freigabe des Betriebszustands des ersten Pufferspeichers 121a geschrieben werden. Wenn die Schreibdaten WRD in einem ersten Bereich des ersten Pufferspeichers 121a gespeichert sind, wird beispielsweise, während ein Schreiben von zusätzlichen Schreibdaten zu dem ersten Bereich des ersten Pufferspeichers 121a vor der Freigabe des Betriebszustands des ersten Bereichs des ersten Pufferspeichers 121a verboten ist, ein Schreiben von zusätzlichen Schreibdaten zu einem zweiten Bereich des ersten Pufferspeichers 121a selbst vor der Freigabe des Betriebszustands des ersten Bereichs des ersten Pufferspeichers 121a durchgeführt.
  • Die Speichersteuerung 121 kann danach Informationen über einen Programmierungserfolg von den nichtflüchtigen Speichervorrichtungen 122 empfangen (⑤). Die Speichersteuerung 121 kann ansprechend auf ein Empfangen von Information über den Programmierungserfolg den zweiten Pufferspeicher 123 (⑥) freigeben. Zu dem vierten Zeitpunkt t4 von 5 kann beispielsweise die Speichersteuerung 121 Information über den Programmierungserfolg von den nichtflüchtigen Speichervorrichtungen 122 empfangen und ansprechend auf die empfangenen Information den zweiten Pufferspeicher 123 freigeben. Bei einem Ausführungsbeispiel kann der freigegebene Bereich des zweiten Pufferspeichers 123 einem Bereich zum Speichern (oder Sichern, Aufzeichnen etc.) anderer Schreibdaten zugewiesen werden.
  • Ein Verfahren zum Wiederherstellen von Schreibdaten in dem Fall eines Programmierungsfehlschlags wird als Nächstes unter Bezugnahme auf 6 beschrieben werden. Für eine kurze Beschreibung werden der Betrieb und die Konfiguration, die unter Bezugnahme auf 4 und 5 beschrieben wurden, nicht in 6 wiederholt. Das heißt, es wird angenommen, dass die Speichersteuerung 121 von 6 die Betriebsvorgänge ① bis ④, die unter Bezugnahme auf 4 und 5 beschrieben wurden, vorausgehend durchführt. Bei dem Ausführungsbeispiel von 6 wird mit anderen Worten angenommen, dass sich der erste Pufferspeicher 121a in einem Zustand befindet, in dem die Schreibdaten WRD nicht in demselben gespeichert sind, und sich der zweite Pufferspeicher 123 in einem Zustand befindet, in dem die Schreibdaten WRD in demselben gespeichert sind.
  • Bezug nehmend auf 6 kann die Speichersteuerung 121 Informationen über einen Programmierungsfehlschlag von den nichtflüchtigen Speichervorrichtungen 122 empfangen (⑤). Wie im Vorhergehenden beschrieben wurde, geben die Informationen über den Programmierungsfehlschlag, die von den nichtflüchtigen Speichervorrichtungen 122 empfangen wurden, an, dass die Schreibdaten WRD in den nichtflüchtigen Speichervorrichtungen 122 nicht normal gespeichert wurden. In diesem Fall kann eine Notwendigkeit bestehen, einen Programmierungsvorgang für die Schreibdaten WRD zusätzlich durchzuführen.
  • Die Speichersteuerung 121 kann ansprechend auf die empfangene Information (das heißt die Information über den Programmierungsfehlschlag) die Schreibdaten WRD von dem zweiten Pufferspeicher 123 zu dem ersten Pufferspeicher 121a kopieren (das heißt, kann die Schreibdaten WRD wiederherstellen). Wie im Vorhergehenden beschrieben wurde, befindet sich beispielsweise der erste Pufferspeicher 121a in einem Zustand, in dem die Schreibdaten WRD nicht in demselben gespeichert sind, und der zweite Pufferspeicher 123 befindet sich in einem Zustand, in dem die Schreibdaten WRD in demselben gespeichert sind. Die Speichersteuerung 121 kann dementsprechend durch Kopieren der Schreibdaten WRD von dem zweiten Pufferspeicher 123 zu dem ersten Pufferspeicher 121a die Schreibdaten WRD wiederherstellen.
  • Die Speichersteuerung 121 kann danach die Schreibdaten WRD des ersten Pufferspeichers 121a zu den nichtflüchtigen Speichervorrichtungen 122 übertragen (⑦). Die Speichersteuerung 121 kann nach einem Übertragen der Schreibdaten WRD zu den nichtflüchtigen Speichervorrichtungen 122 den ersten Pufferspeicher 121a freigeben (⑧).
  • Bei einem zweiten Ausführungsbeispiel kann der zweite Pufferspeicher 123 freigegeben werden, nachdem ein Programmierungsvorgang der nichtflüchtigen Speichervorrichtungen 122 erfolgreich durchgeführt wurde. Die Schreibdaten WRD, die in dem zweiten Pufferspeicher 123 gespeichert sind, können mit anderen Worten solange gehalten werden, bis die Schreibdaten WRD vollständig in die nichtflüchtigen Speichervorrichtungen 122 programmiert wurden.
  • Wie im Vorhergehenden beschrieben wurde, kann, selbst wenn der erste Pufferspeicher 121a, der als ein Schreibpuffer verwendet wird, vor einem Programmierungsabschluss der nichtflüchtigen Speichervorrichtungen 122 freigegeben wird, die Speichersteuerung 121 durch Verwenden der Schreibdaten WRD, die in dem zweiten Pufferspeicher 123 gespeichert sind, die Zuverlässigkeit der Daten gewährleisten.
  • Obwohl es nicht in 6 dargestellt ist, kann in dem Fall, in dem der Programmierungsvorgang fehlschlägt, bei einem Ausführungsbeispiel die Speichersteuerung 121 konfiguriert sein, um die Schreibdaten WRD von dem zweiten Pufferspeicher 123 zu den nichtflüchtigen Speichervorrichtungen 122 direkt zu übertragen. In dem Fall, in dem ein Programmierungsvorgang fehlschlägt, kann mit anderen Worten die Speichersteuerung 121 konfiguriert sein, um ein Kopieren der Schreibdaten WRD zu dem ersten Pufferspeicher 121a wegzulassen, und um die Schreibdaten WRD direkt zu den nichtflüchtigen Speichervorrichtungen 122 von dem zweiten Pufferspeicher 123 zu liefern.
  • Bei einem Ausführungsbeispiel kann, nachdem der erste Pufferspeicher 121a freigegeben wurde, der Programmierungsfehlschlag auftreten, während neue Schreibdaten von dem Host 110 in dem ersten Pufferspeicher 121a gespeichert werden. In diesem Fall kann die Speichersteuerung 121 konfiguriert sein, um die Schreibdaten WRD, die dem Programmierungsfehlschlag entsprechen, von dem zweiten Pufferspeicher 123 zu den nichtflüchtigen Speichervorrichtungen 122 direkt zu übertragen, derart, dass die Schreibdaten WRD, die dem Programmierungsfehlschlag entsprechen, zuerst programmiert werden. Während des im Vorhergehenden beschriebenen Betriebs können neue Schreibdaten in dem ersten Pufferspeicher 121a gehalten werden, oder der erste Pufferspeicher 121a könnte nicht freigegeben werden. Die Speichersteuerung 121 kann alternativ einen Programmierungsvorgang an den Schreibdaten WRD, die in dem zweiten Pufferspeicher 123 gespeichert sind, nach einem zuerst Durchführen eines Programmierungsvorgangs an den neuen Schreibdaten durchführen. Ausführungsbeispiele des erfinderischen Konzepts müssen jedoch nicht darauf beschränkt sein. Schreibdaten können beispielsweise mit verschiedenen Schemen programmiert werden, ohne von dem Schutzbereich und der Idee des erfinderischen Konzepts abzuweichen.
  • 7 und 8 sind Ansichten, die eine Struktur der Speicherungsvorrichtung 120 von 1 und eine Struktur des zweiten Pufferspeichers 123 von 1 darstellen. Bezug nehmend auf 1, 7 und 8 kann die Speicherungsvorrichtung 120 die Speichersteuerung 121 und die Mehrzahl von nichtflüchtigen Speichervorrichtungen (NVMs) 122 aufweisen. Die Speichersteuerung 121 und die nichtflüchtigen Speichervorrichtungen 122 werden unter Bezugnahme auf 1 bis 6 beschrieben, und eine detaillierte Beschreibung derselben wird hier nicht wiederholt werden.
  • Bezug nehmend auf 7 und 8 kann die Speichersteuerung 121 durch eine Mehrzahl von Kanälen CH1 bis CHm mit den nichtflüchtigen Speichervorrichtungen 122 jeweils kommunizieren. Die nichtflüchtigen Speichervorrichtungen 122 können auf eine Mehrzahl von Wegen WAY1 bis WAYn aufgeteilt sein. Die nichtflüchtigen Speichervorrichtungen, die mit dem ersten Kanal CH1 verbunden sind, können beispielsweise jeweils in den ersten bis n-ten Wegen WAY1 bis WAYn umfasst sein. Genauso können die nichtflüchtigen Speichervorrichtungen, die mit jedem der zweiten bis m-ten Kanälen CH2 bis CHm verbunden sind, jeweils in den ersten bis n-ten Wegen WEG1 bis WEGn umfasst sein.
  • Alternativ können nichtflüchtige Speichervorrichtungen die in dem ersten Weg WAY1 umfasst sind, jeweils mit der Mehrzahl von Kanälen CH1 bis CHm verbunden sein, und nichtflüchtige Speichervorrichtungen, die in den Wegen WAY2 bis WAYn umfasst sind, können ferner jeweils mit der Mehrzahl von Kanälen CH1 bis CHm verbunden sein.
  • Das heißt, die nichtflüchtigen Speichervorrichtungen 122 können jeweils mit einem getrennten Halbleiterplättchen, einem getrennten Chip, einer getrennten Baugruppe oder einem getrennten Modul implementiert sein und können für jeden Kanal oder für jeden Weg unterscheidbar sein.
  • Der zweite Pufferspeicher 123 kann als ein Speicherungsbereich im Hinblick auf jede der nichtflüchtigen Speichervorrichtungen 122 verwendet werden. Wie in 8 dargestellt ist, kann beispielsweise der zweite Pufferspeicher 123 in eine Mehrzahl von Bereichen aufgeteilt sein, die jeweils der Mehrzahl von nichtflüchtigen Speichervorrichtungen 122 entsprechen. In diesem Fall kann jeder Bereich für jeden Kanal oder Weg von nichtflüchtigen Speichervorrichtungen 122 unterscheidbar sein und kann konfiguriert sein, um Schreibdaten, die in den entsprechenden nichtflüchtigen Speichervorrichtungen 122 zu speichern sind, zu speichern. Die Speicherungsbereiche, die in 8 dargestellt sind, können physische oder logische Bereiche sein.
  • 9 ist ein Blockdiagramm, das ein Ausführungsbeispiel eines Benutzersystems 200 darstellt. Für eine kurze Beschreibung wird eine Beschreibung, die unter Bezugnahme auf die vorhergehenden Elemente angegeben wurde, hier nicht wiederholt werden. Bezug nehmend auf 9 kann das Benutzersystem 200 einen Host 210 und eine Speicherungsvorrichtung 220 aufweisen. Die Speicherungsvorrichtung 220 kann eine Speichersteuerung 221 und nichtflüchtige Speichervorrichtungen 222 aufweisen. Die Speichersteuerung 221 kann einen ersten Pufferspeicher 221a aufweisen.
  • Bei dem Ausführungsbeispiel von 1 weist die Speicherungsvorrichtung 120 den zweiten Pufferspeicher 123 auf. Bei dem Ausführungsbeispiel von 9 weist jedoch der Host 210 einen zweiten Pufferspeicher 211 auf. Bei einem Ausführungsbeispiel kann die Speicherungsvorrichtung 220 den zweiten Pufferspeicher 211, den der Host 210 aufweist, als ein Mittel zum Wiederherstellen von Schreibdaten verwenden, wenn ein Programmierungsvorgang fehlschlägt. Bei einem Ausführungsbeispiel kann der zweite Pufferspeicher 211 ein Hostpufferspeicher (HBM) sein. Das heißt, die Speicherungsvorrichtung 220 kann den zweiten Pufferspeicher 211 (das heißt den Hostpufferspeicher), den der Host 210 aufweist, verwenden.
  • 10 bis 12 sind Ansichten zum Beschreiben eines Betriebs der Speichersteuerung 221 von 9. Für eine kurze Beschreibung werden eine detaillierte Beschreibung von Elementen, die nicht notwendig ist, um den Betrieb der Speichersteuerung 221 zu beschreiben, und eine Beschreibung, die unter Bezugnahme auf die vorhergehenden Elemente angegeben wurde, hier nicht wiederholt werden.
  • Bezug nehmend auf 10 kann zuerst der Host 210 die Schreibdaten WRD zu dem ersten Pufferspeicher 221a (①) übertragen. Nachdem die Schreibdaten WRD in dem ersten Pufferspeicher 221a gespeichert wurden, kann die Speichersteuerung 221 einen WR-Abschluss zu dem Host 210 übertragen (②). Die Betriebsvorgänge ① und ② sind ähnlich zu jenen, die unter Bezugnahme auf 4 beschrieben wurden, und eine Beschreibung derselben wird hier nicht wiederholt werden.
  • Die Speichersteuerung 221 kann danach die Schreibdaten WRD des ersten Pufferspeichers 221a zu den nichtflüchtigen Speichervorrichtungen 222 und zu dem zweiten Pufferspeicher 211 übertragen (③). Der Betriebsvorgang (der Schreibdatentransfer) ③, der in 10 dargestellt ist, kann sich von dem Betriebsvorgang ③ von 4 unterscheiden. Bei dem Betriebsvorgang (dem Schreibdatentransfer) ③ von 4 kann beispielsweise der Pufferverwalter 121d (Bezug nehmend auf 2) die Schreibdaten WRD zu dem zweiten Pufferspeicher 123 transferieren. Da jedoch der zweite Pufferspeicher 211 von 10 der Hostpufferspeicher HBM ist, den der Host 210 in sich aufweist, können bei dem Betriebsvorgang (bei dem Schreibdatentransfer) ③ von 10 die Schreibdaten WRD durch die Hostschnittstellenschicht 121e (Bezug nehmend auf 2) zu dem zweiten Pufferspeicher 211 übertragen werden.
  • Die Speichersteuerung 221 kann danach den ersten Pufferspeicher 221a (④) freigeben, kann Informationen über einen Programmierungserfolg von den nichtflüchtigen Speichervorrichtungen 222 empfangen (⑤), und kann ansprechend auf die empfangenen Informationen den zweiten Pufferspeicher 211 freigeben (⑥). Bei einem Ausführungsbeispiel kann das Freigeben des zweiten Pufferspeichers 211 durch die Hostschnittstellenschicht 121e vorgenommen werden.
  • Bezug nehmend auf 11 kann als Nächstes der Host 210 die Schreibdaten WRD zu dem ersten Pufferspeicher 221a übertragen (①). In diesem Fall kann im Gegensatz zu dem Ausführungsbeispiel von 10 der Host 210 die Schreibdaten WRD zu dem zweiten Pufferspeicher 211 übertragen. Der Host 210 kann mit anderen Worten die Schreibdaten WRD in dem zweiten Pufferspeicher 211 speichern, während die Schreibdaten WRD zu dem ersten Pufferspeicher 221a übertragen werden. Bei einem Ausführungsbeispiel kann der Host 210 der Speichersteuerung 221 Information über einen Zeiger zu einer Adresse oder einem Ort des zweiten Pufferspeichers 211 liefern, an der bzw. an dem die Schreibdaten WRD gespeichert sind.
  • Nachdem die Schreibdaten WRD in dem ersten Pufferspeicher 221a gespeichert wurden, kann die Speichersteuerung 221 den WR-Abschluss zu dem Host 210 übertragen (②). Die Speichersteuerung 221 kann danach die Schreibdaten WRD des ersten Pufferspeichers 221a zu den nichtflüchtigen Speichervorrichtungen 222 übertragen (③). Da die Schreibdaten WRD in dem zweiten Pufferspeicher 211 durch den Host 210 gespeichert werden, muss die Speichersteuerung 221 die Schreibdaten WRD nicht zu dem zweiten Pufferspeicher 211 übertragen.
  • Die Speichersteuerung 221 kann danach die Betriebsvorgänge ④, ⑤ und ⑥ durchführen. Die Betriebsvorgänge ④, ⑤ und ⑥ wurden unter Bezugnahme auf 10 beschrieben, und eine Beschreibung derselben wird hier nicht wiederholt werden. Bei einem Ausführungsbeispiel kann die Speichersteuerung 221 basierend auf den Zeigerinformationen, die den Schreibdaten WRD zugeordnet sind, den zweiten Pufferspeicher 211 freigeben.
  • Wie im Vorhergehenden beschrieben wurde, kann die Speicherungsvorrichtung 220 den Hostpufferspeicher HBM als einen Pufferspeicher zum Wiederherstellen von Schreibdaten verwenden, wenn ein Programmierungsvorgang fehlschlägt. Bei einem Ausführungsbeispiel kann die Speichersteuerung 221 der Speicherungsvorrichtung 220 durch eine Hostschnittstellenschicht, die eine vordefinierte Schnittstelle oder ein Protokoll aufweist, auf den Hostpufferspeicher HBM zugreifen.
  • Bei dem unter Bezugnahme auf 10 beschriebenen Ausführungsbeispiel können die Schreibdaten WRD durch die Speichersteuerung 221 zu dem zweiten Pufferspeicher 211 übertragen werden, während dieselben zu den nichtflüchtigen Speichervorrichtungen 222 übertragen werden. Aus diesem Grund kann eine Einheit der Schreibdaten WRD, die zu übertragen sind, in dem zweiten Pufferspeicher 211 eine Programmierungseinheit (zum Beispiel eine Einheit von PGM-D, beispielsweise 96 kB) sein. Bei dem unter Bezugnahme auf 11 beschriebenen Ausführungsbeispiel können im Gegensatz dazu die Schreibdaten WRD durch den Host 210 zu dem zweiten Pufferspeicher 211 übertragen werden, während dieselben zu dem ersten Pufferspeicher 221a übertragen werden. Aus diesem Grund kann eine Einheit der Schreibdaten WRD, die zu übertragen sind, in dem zweiten Pufferspeicher 211 eine Schreibdateneinheit (das heißt eine Datentransfereinheit zwischen dem Host 210 und der Speichersteuerung 221, beispielsweise 4 kB) sein.
  • Im Folgenden wird ein Datenwiedergewinnungsverfahren der Speicherungsvorrichtung 220, wenn ein Programmierungsvorgang fehlschlägt, unter Bezugnahme auf 12 beschrieben werden. Für eine kurze Beschreibung wird angenommen, dass der Host 210 und die Speichersteuerung 221 von 12 in einem Zustand sind, in dem die Betriebsvorgänge ①, ②, ③ und ④ von 10 oder 11 durchgeführt wurden. Das heißt, der erste Pufferspeicher 221a der Speichersteuerung 221 kann sich in einem Zustand befinden, in dem die Schreibdaten WRD nicht in demselben gespeichert sind, und der zweite Pufferspeicher 211 des Hosts 210 kann sich in einem Zustand befinden, in dem die Schreibdaten WRD in demselben gespeichert sind.
  • Bezug nehmend auf 12 kann die Speichersteuerung 221 Informationen über einen Programmierungsfehlschlag von den nichtflüchtigen Speichervorrichtungen 222 empfangen (⑤). Die Speichersteuerung 210 kann ansprechend auf die empfangenen Informationen die Schreibdaten WRD von dem zweiten Pufferspeicher des Hosts 210 zu dem ersten Pufferspeicher 221a kopieren (oder kann die Schreibdaten WRD wiederherstellen) (⑥). Bei einem Ausführungsbeispiel kann die Speichersteuerung 221 die Schreibdaten WRD durch Zugreifen auf den zweiten Pufferspeicher 211 des Hosts 210 basierend auf Informationen über einen Bereich, in dem die Schreibdaten WRD, die dem Programmierungsfehlschlag entsprechen, gespeichert sind, zu dem ersten Pufferspeicher 221a kopieren. Bei einem Ausführungsbeispiel kann der Betriebsvorgang ⑥ durch eine Hostschnittstellenschicht durchgeführt werden. Bei einem Ausführungsbeispiel kann in dem Fall, in dem die Schreibdaten WRD in dem zweiten Pufferspeicher 211 durch den Host 210 gespeichert werden, die Speichersteuerung 221 basierend auf Zeigerinformationen, die von dem Host 210 empfangen werden, wie es im Vorhergehenden beschrieben wurde, auf den zweiten Pufferspeicher 211 zugreifen.
  • Die Speichersteuerung 221 kann danach die Schreibdaten WRD des ersten Pufferspeichers 221a zu den nichtflüchtigen Speichervorrichtungen 222 übertragen (⑦) und kann den ersten Pufferspeicher 221a freigeben (⑧).
  • Wie im Vorhergehenden beschrieben wurde, kann die Speicherungsvorrichtung 220 gemäß einem Ausführungsbeispiel des erfinderischen Konzepts einen Schreibpuffer freigeben und vor einem erfolgreichen Programmierungsabschluss einen Schreibabschluss übertragen, wodurch eine Reduzierung des Leistungsvermögens aufgrund einer begrenzten Pufferkapazität oder einer Schreibverzögerung verhindert wird. Die Speicherungsvorrichtung 220 gemäß einem Ausführungsbeispiel des erfinderischen Konzepts kann ferner den zweiten Pufferspeicher 211 (das heißt einen Hostpufferspeicher) als ein Mittel zum Wiederherstellen von Schreibdaten verwenden, wenn ein Programmierungsvorgang fehlschlägt, und die Zuverlässigkeit der Speicherungsvorrichtung 220 kann somit verbessert werden.
  • 13 ist ein Blockdiagramm, das ein Ausführungsbeispiel eines Benutzersystems 300 darstellt. Einer Kürze wegen wird eine Beschreibung, die im Detail unter Bezugnahme auf die vorhergehenden Elemente angegeben wurde, hier nicht wiederholt werden. Bezug nehmend auf 13 kann ein Benutzersystem 300 einen Host 310 und eine Speicherungsvorrichtung 320 aufweisen, Die Speicherungsvorrichtung 320 kann eine Speichersteuerung 321 und nichtflüchtige Speichervorrichtungen 322 aufweisen.
  • Die Speichersteuerung 321 kann einen ersten Pufferspeicher 321a, einen zweiten Pufferspeicher 321b und einen Paritätsgenerator 321c aufweisen. Der erste Pufferspeicher 321a kann als ein Schreibpuffer oder ein Lesepuffer verwendet werden. Der erste Pufferspeicher 321a wurde unter Bezugnahme auf 1 bis 12 beschrieben, und eine detaillierte Beschreibung desselben wird hier nicht wiederholt werden.
  • Der zweite Pufferspeicher 321b kann konfiguriert sein, um eine Parität von Schreibdaten, die in den nichtflüchtigen Speichervorrichtungen 322 zu speichern sind, zu speichern. Bei den im Vorhergehenden unter Bezugnahme auf 1 bis 12 beschriebenen Ausführungsbeispielen kann ein zweiter Pufferspeicher konfiguriert sein, um die Schreibdaten WRD selbst zu speichern. Bei dem Ausführungsbeispiel von 13 kann jedoch der zweite Pufferspeicher 321b konfiguriert sein, um die Parität von Schreibdaten, nicht die Schreibdaten selbst, zu speichern. Wenn ein Programmierungsvorgang fehlschlägt, kann die Speichersteuerung 321 Schreibdaten, die dem Programmierungsfehlschlag entsprechen, basierend auf der Parität, die in dem zweiten Pufferspeicher 321b gespeichert ist, und den entsprechenden Daten, die in den nichtflüchtigen Speichervorrichtungen 322 gespeichert sind, wiederherstellen.
  • Bei einem Ausführungsbeispiel kann der zweite Pufferspeicher 321b ein SRAM sein, den die Speichersteuerung 321 in sich aufweist. Der zweite Pufferspeicher 321b kann von dem ersten Pufferspeicher 321a physisch getrennt sein. Derselbe Speicher kann alternativ die ersten und zweiten Pufferspeicher 321a und 321b in sich aufweisen und dieselben können voneinander logisch unterscheidbar sein. Bei einem Ausführungsbeispiel kann, obwohl es nicht in 13 dargestellt ist, der zweite Pufferspeicher 321b ein getrennter Speicher (zum Beispiel ein DRAM) sein, der außerhalb der Speichersteuerung 321 vorgesehen ist.
  • Der Paritätsgenerator 321c kann konfiguriert sein, um eine Parität von einem oder mehreren Stücken von Schreibdaten zu erzeugen. Der Paritätsgenerator 321c kann beispielsweise durch einen bitweisen XOR-Betriebsvorgang bzw. eine bitweise XOR-Operation an einer Vorgabeparität und an einem oder mehreren Stücken von Schreibdaten eine Parität von einem oder mehreren Stücken von Schreibdaten erzeugen. Bei einem Ausführungsbeispiel kann der Paritätsgenerator 321c eine Parität von einem oder mehreren Stücken von Daten auf eine Art und Weise während des Laufs (englisch: on-the-fly) erzeugen.
  • Bei einem Ausführungsbeispiel kann die Vorgabeparität Gesamt-null-Bits aufweisen, wobei die Länge derselben gleich der einer Schreibdateneinheit oder einer Programmierungseinheit ist, die in den nichtflüchtigen Speichervorrichtungen 322 zu speichern ist, oder kann Datenbits eines spezifischen Musters aufweisen. Bei einem Ausführungsbeispiel kann der bitweise XOR-Betriebsvorgang zum Erzeugen einer Parität lediglich ein Beispiel sein, und ein Betrieb des Paritätsgenerators 321c muss nicht darauf begrenzt sein.
  • Wie im Vorhergehenden beschrieben wurde, kann die Speicherungsvorrichtung 320 durch Durchführen eines Übertragens eines Schreibabschlusses und eines Freigebens eines Schreibpuffers, bevor die Schreibdaten vollständig programmiert wurden, eine Reduzierung des Leistungsvermögens verhindern. Die Speicherungsvorrichtung 320 kann ferner eine Parität von einem oder mehreren Stücken von Schreibdaten erzeugen; wenn ein Programmierungsvorgang fehlschlägt, kann die Speicherungsvorrichtung 320 Schreibdaten, die dem Programmierungsfehlschlag entsprechen, basierend auf der erzeugen Parität und den entsprechenden Daten wiederherstellen. Der Betrieb der Speicherungsvorrichtung 320 wird unter Bezugnahme auf die folgenden Zeichnungen vollständiger beschrieben werden.
  • 14 ist ein Flussdiagramm, das einen Betrieb der Speichersteuerung 321 von 13 darstellt. Bezug nehmend auf 13 und 14 kann die Speichersteuerung 321 einen Betriebsvorgang S210 und einen Betriebsvorgang S220 durchführen. Der Betriebsvorgang S210 und der Betriebsvorgang S220 sind ähnlich zu dem Betriebsvorgang S110 und dem Betriebsvorgang S120 von 3A, und eine detaillierte Beschreibung derselben wird hier nicht wiederholt werden.
  • Bei einem Betriebsvorgang 230 kann die Speichersteuerung 321 die Schreibdaten WRD zu den nichtflüchtigen Speichervorrichtungen 322 übertragen; die Speichersteuerung 321 kann basierend auf den Schreibdaten WRD die Parität PRT erzeugen und kann die Parität PRT in dem zweiten Pufferspeicher 321b speichern. Wie im Vorhergehenden beschrieben wurde, kann beispielsweise die Speichersteuerung 321 die Schreibdaten WRD zu den nichtflüchtigen Speichervorrichtungen 322 übertragen, derart, dass die Schreibdaten WRD in den nichtflüchtigen Speichervorrichtungen 322 gespeichert werden. Die Speichersteuerung 321 kann zusätzlich basierend auf den Schreibdaten WRD die Parität PRT erzeugen und kann die Parität PRT in dem zweiten Pufferspeicher 321b speichern.
  • Als ein detailliertes Beispiel kann die Speichersteuerung 321 die Parität PRT, die in dem zweiten Pufferspeicher 321b gespeichert ist, lesen und kann durch Durchführen eines bitweisen XOR-Betriebsvorgangs an der gelesenen Parität PRT und den Schreibdaten WRD eine neue Parität erzeugen. Bei einem Ausführungsbeispiel kann die Parität PRT, die in dem zweiten Pufferspeicher 321b gespeichert ist, eine Vorgabeparität oder eine Parität von vorausgehenden Schreibdaten sein. Das heißt, es ist möglich, die Schreibdaten WRD durch einen bitweisen XOR-Betriebsvorgang hinsichtlich der vorausgehenden Schreibdaten und einer neuen Parität wiederherzustellen. Die neue Parität PRT, die so erzeugt wird, wird in dem zweiten Pufferspeicher 321b gespeichert. Bei einem Ausführungsbeispiel kann die vorausgehende Parität, die in dem zweiten Pufferspeicher 321b gespeichert ist, auf die neue Parität PRT aktualisiert werden.
  • Die Speichersteuerung 321 kann danach einen Betriebsvorgang S240 bis zum einem Betriebsvorgang S260 durchführen. Der Betriebsvorgang S240 bis zu dem Betriebsvorgang S260 können ähnlich zu dem Betriebsvorgang S140 bis zu dem Betriebsvorgang S160 von 3A sein, und eine detaillierte Beschreibung derselben wird hier nicht wiederholt werden.
  • Wenn das Bestimmungsresultat des Betriebsvorgangs S250 einen Programmierungsfehlschlag angibt, kann bei einem Betriebsvorgang S270 die Speichersteuerung 321 die Schreibdaten WRD basierend auf der Parität PRT, die in dem zweiten Pufferspeicher 321b gespeichert ist, wiederherstellen. Wie im Vorhergehenden beschrieben ist, kann beispielsweise die Parität PRT, die in dem zweiten Pufferspeicher 321b gespeichert ist, eine Parität sein, die vorausgehenden Schreibdaten und den aktuellen Schreibdaten WRD zugeordnet ist. Das heißt, die aktuellen Schreibdaten WRD können durch Durchführen des bitweisen XOR-Betriebsvorgangs an den vorausgehenden Schreibdaten und der Parität PRT wiederhergestellt werden. Bei einem Ausführungsbeispiel kann, um den Betriebsvorgang S250 durchzuführen, die Speichersteuerung 321 eines oder mehrere Stücke von vorausgehenden Schreibdaten aus den nichtflüchtigen Speichervorrichtungen 322 lesen.
  • Nachdem die Schreibdaten WRD wiedergewonnen wurden, kann die Speichersteuerung 321 den Betriebsvorgang S230 bis zum dem Betriebsvorgang S250 durchführen. Bei einem Ausführungsbeispiel kann, nachdem die Schreibdaten WRD wiedergewonnen wurden, ein Erzeugen der Parität PRT bei dem Betriebsvorgang S230 weggelassen werden.
  • Wie im Vorhergehenden beschrieben wurde, kann die Speicherungsvorrichtung 320 gemäß einem Ausführungsbeispiel des erfinderischen Konzepts vor einem erfolgreichen Programmierungsabschluss der nichtflüchtigen Speichervorrichtungen 322 einen Schreibpuffer freigeben und einen Schreibabschluss übertragen, wodurch eine Reduzierung des Leistungsvermögens verhindert wird. Die Speicherungsvorrichtung 320 gemäß einem Ausführungsbeispiel des erfinderischen Konzepts kann ferner durch Erzeugen einer Parität der Schreibdaten und solange Instandhalten der Parität, bis ein Programmierungsvorgang der nichtflüchtigen Speichervorrichtungen 322 erfolgreich abgeschlossen wurde, die Zuverlässigkeit von Schreibdaten gewährleisten.
  • 15 ist eine Ansicht zum Beschreiben eines Betriebs der Speichersteuerung 321 von 13. Für eine kurze Beschreibung werden Elemente, die nicht notwendig sind, um einen Betrieb der Speichersteuerung 321 zu beschreiben, hier nicht wiederholt werden. Ein Betrieb der Speichersteuerung 321, wenn ein Programmierungsvorgang erfolgreich ist, wird unter Bezugnahme auf 15 beschrieben werden.
  • Ein Betrieb der Speichersteuerung 321 wird ferner auf der Basis von Schreibdaten WRD beschrieben werden. Dies dient jedoch dazu, Ausführungsbeispiele kurz und deutlich zu beschreiben, und Ausführungsbeispiele des erfinderischen Konzepts müssen nicht darauf begrenzt sein. Die Speichersteuerung 321 kann beispielsweise konfiguriert sein, um Stücke von Schreibdaten durch eine Mehrzahl von Kanälen auf eine verschachtelte Art und Weise zu den nichtflüchtigen Speichervorrichtungen 322 zu übertragen und die Parität immer dann zu aktualisieren, wenn jedes der Stücke von Schreibdaten zu den nichtflüchtigen Speichervorrichtungen 322 übertragen wird. Das heißt, die Speichersteuerung 321 kann konfiguriert sein, um eine einzelne Parität im Hinblick auf Stücke von Schreibdaten zu erzeugen, zu aktualisieren und zu verwalten.
  • Bezug nehmend auf 15 können der Host 310 und die Speichersteuerung 321 Betriebsvorgänge ① und ② durchführen. Die Betriebsvorgänge ① und ② werden unter Bezugnahme auf 4 beschrieben, und eine Beschreibung derselben wird hier nicht wiederholt werden. Die Speichersteuerung 321 kann danach die Schreibdaten WRD zu den nichtflüchtigen Speichervorrichtungen 322 übertragen und die Parität PRT aktualisieren (③).
  • Die Speichersteuerung 321 kann beispielsweise die Schreibdaten WRD zu den nichtflüchtigen Speichervorrichtungen 322 übertragen. Die Speichersteuerung 321 kann zusätzlich die Parität PRT von dem zweiten Pufferspeicher 321b lesen (③') und kann die Parität PRT des zweiten Pufferspeichers 321b auf eine neue Parität aktualisieren, die auf der Basis der gelesenen Parität PRT und der Schreibdaten WRD erzeugt wird (③"). Bei einem Ausführungsbeispiel kann die vorausgehende Parität PRT, die in dem zweiten Pufferspeicher 321b gespeichert ist, die Vorgabeparität oder die Parität von vorausgehenden Schreibdaten sein. Bei einem Ausführungsbeispiel können, um die Zuverlässigkeit der Schreibdaten WRD zu gewährleisten, das Übertragen der Schreibdaten WRD, das Lesen der Parität PRT (③') und das Aktualisieren der Parität PRT (③") als ein atomarer Betriebsvorgang vorgenommen werden.
  • Nachdem das Übertragen der Schreibdaten WRD, das Lesen der Parität PRT (③') und das Aktualisieren der Parität PRT (③") abgeschlossen wurden, kann die Speichersteuerung 321 den ersten Pufferspeicher 321a freigeben.
  • Die Speichersteuerung 321 kann danach Informationen über einen Programmierungserfolg von den nichtflüchtigen Speichervorrichtungen 322 empfangen (⑤). Die Speichersteuerung 321 kann basierend auf den empfangenen Informationen den zweiten Pufferspeicher 321b freigeben. Bei einem Ausführungsbeispiel kann das Freigeben des zweiten Pufferspeichers 321b ein Ändern der entsprechenden Parität, die in dem zweiten Pufferspeicher 321b gespeichert ist, auf die Vorgabeparität aufweisen. Die Vorgabeparität, die in dem zweiten Pufferspeicher 321b gespeichert ist, kann als eine Vorgabeparität von neuen Schreibdaten verwendet werden.
  • Bei einem Ausführungsbeispiel kann, obwohl es nicht deutlich in 15 dargestellt ist, nachdem Stücke der Schreibdaten erfolgreich programmiert wurden, der zweite Pufferspeicher 321b freigegeben werden, oder die Parität, die in dem zweiten Pufferspeicher 321b gespeichert ist, kann auf die Vorgabeparität geändert werden. Die Speichersteuerung 321 kann beispielsweise durch Wiederholen der im Vorhergehenden beschriebenen Betriebsvorgänge (des Übertragens der Schreibdaten WRD, des Lesens der Parität PRT (③') und des Aktualisierens der Parität PRT (③") eine einzelne Parität, die Stücken von Schreibdaten zugeordnet ist, erzeugen. In diesem Fall kann die Speichersteuerung 321 konfiguriert sein, um den zweiten Pufferspeicher 321b freizugeben, nachdem alle Stücke von Schreibdaten erfolgreich programmiert wurden. Bei einem Ausführungsbeispiel kann in dem Fall, in dem mindestens einer von Programmbetriebsvorgängen der Stücke von Schreibdaten fehlschlägt, die Speichersteuerung 321 Schreibdaten, die dem Programmierungsfehlschlag entsprechen, basierend auf der Parität PRT und den erfolgreich programmierten Schreibdaten wiederherstellen.
  • 16 ist ein Zeitdiagramm zum Beschreiben, wie Schreibdaten durch eine Mehrzahl von Kanälen zu den nichtflüchtigen Speichervorrichtungen übertragen werden. Für eine Kürze einer Darstellung und eine Bequemlichkeit einer Beschreibung ist eine Konfiguration zum Empfangen von Schreibdaten von dem Host 310 und ein Programmierungsvorgang der nichtflüchtigen Speichervorrichtungen 322 in 16 nicht dargestellt, und lediglich eine Konfiguration zum Übertragen von Stücken von Schreibdaten WRD1 bis WRDn durch die ersten bis vierten Kanäle CH1 bis CH4 bei der Speichersteuerung 321 ist in 16 dargestellt. Es wird ferner angenommen, dass die Speichersteuerung 321 basierend auf allen der ersten bis n-ten Schreibdaten WRD1 bis WRDn eine einzelne Parität PRT erzeugt.
  • Ausführungsbeispiele des erfinderischen Konzepts können jedoch nicht darauf begrenzt sein. Die Speicherungsvorrichtung 320 kann beispielsweise durch zusätzliche Kanäle mit zusätzlichen nichtflüchtigen Speichervorrichtungen kommunizieren. Die Speichersteuerung 321 kann ferner die Parität PRT immer dann aktualisieren, wenn alle der Schreibdaten WRD1 bis WRDn durch die ersten bis vierten Kanäle CH1 bis CH4 übertragen werden.
  • Bezug nehmend auf 13 und 15 kann die Speichersteuerung 321 die Schreibdaten WRD1 bis WRDn durch die ersten bis vierten Kanäle CH1 bis CH4 auf eine verschachtelte Art und Weise zu den nichtflüchtigen Speichervorrichtungen 322 übertragen. Bei einem Ausführungsbeispiel können die Speichersteuerung 321 und die nichtflüchtigen Speichervorrichtungen 322 mit der Struktur (das heißt einer Mehrzahl von Kanälen und einer Mehrzahl von Wegen), die unter Bezugnahme auf 7 beschrieben wurde, implementiert sein.
  • Die Speichersteuerung 321 kann die entsprechende Parität PRT immer dann erzeugen, wenn alle der Schreibdaten WDR1 bis WRDn zu den nichtflüchtigen Speichervorrichtungen 322 übertragen werden, und kann den ersten Pufferspeicher 321a (im Detail einen Bereich, in dem die entsprechenden Schreibdaten gespeichert sind) freigeben, nachdem die Schreibdaten WRD1 bis WRDn zu den nichtflüchtigen Speichervorrichtungen 322 übertragen wurden.
  • Die Speichersteuerung 321 kann beispielsweise die ersten Schreibdaten WRD1 durch den ersten Kanal CH1 zu der entsprechenden der nichtflüchtigen Speichervorrichtungen 322 übertragen. Die Speichersteuerung 321 kann zusätzlich basierend auf den ersten Schreibdaten WRD1 und der Vorgabeparität die Parität PRT erzeugen.
  • Die Speichersteuerung 321 kann danach die Schreibdaten WRD2 bis WRDn durch die ersten bis vierten Kanäle CH1 bis CH4 auf die verschachtelte Art und Weise zu den nichtflüchtigen Speichervorrichtungen 322 übertragen und kann basierend auf allen Schreibdaten WRD2 bis WRDn die Parität PRT aktualisieren.
  • Die Speichersteuerung 321 kann zu einem Zeitpunkt, wenn alle der Schreibdaten WRD1 bis WRDn gänzlich übertragen wurden (oder einem Zeitpunkt, wenn die Parität basierend auf allen der Schreibdaten WRD1 bis WRDn aktualisiert wird, den ersten Pufferspeicher 321a (im Detail einen Bereich, in dem die entsprechenden Schreibdaten gespeichert sind) freigeben. Das heißt, der erste Pufferspeicher 321a kann zu Zeitpunkten t1 bis tn jeweils freigegeben werden, bevor alle der Schreibdaten WRD1 bis WRDn erfolgreich gänzlich programmiert wurden.
  • Der zweite Pufferspeicher 321b kann danach freigegeben werden, nachdem alle der ersten bis n-ten Schreibdaten WRD1 bis WRDn erfolgreich programmiert wurden. Bei einem Ausführungsbeispiel kann bei den Schreibdaten WRD1 bis WRDn „n“ „der Zahl von Kanälen“ × „der Zahl von Wegen“ in der Speicherungsvorrichtung 320 entsprechen. „n“ kann alternativ ein Wert sein, der im Voraus definiert wird, um die Zuverlässigkeit der Schreibdaten zu gewährleisten und ein Schreibleistungsvermögen zu optimieren.
  • Wie im Vorhergehenden beschrieben wurde, kann die Speichersteuerung 321 durch Übertragen eines Schreibabschlusses und durch Freigeben eines Schreibpuffers, bevor die Schreibdaten WRD1 bis WRDn gänzlich programmiert wurden, eine Reduzierung des Leistungsvermögens aufgrund einer begrenzten Kapazität eines Schreibpuffers und einer Schreibverzögerung verhindern. Die Speichersteuerung 321 kann ferner durch Erzeugen der Parität PRT, die den Schreibdaten WRD1 bis WRDn zugeordnet ist, und durch so langes Instandhalten der Parität PRT, bis alle Schreibdaten WRD1 bis WRDn gänzlich programmiert wurden, die Zuverlässigkeit der Schreibdaten WRD1 bis WRDn gewährleisten.
  • 17 ist eine Ansicht zum Beschreiben eines Verfahrens, bei dem die Speichersteuerung 321 Schreibdaten in einer Programmierungsfehlschlagssituation wiederherstellt. Für eine kurze Beschreibung werden Elemente, die nicht notwendig sind, um das Verfahren zu beschreiben, bei dem die Speichersteuerung 321 Schreibdaten in einer Programmierungsfehlschlagssituation wiederherstellt, hier nicht wiederholt werden.
  • Bei dem Ausführungsbeispiel von 17 wird ferner angenommen, dass die Speichersteuerung 321 die Betriebsvorgänge ①, ②, ③ und ④ von 15 an den Schreibdaten WRD1 bis WRDn wiederholt durchführt. Das heißt, es wird angenommen, dass die Schreibdaten WRD1 bis WRDn zu den nichtflüchtigen Speichervorrichtungen 322 übertragen wurden, der erste Pufferspeicher 321a freigegeben wurde, und der zweite Pufferspeicher 321 die Parität PRT gespeichert hat, die den Schreibdaten WRD1 bis WRDn zugeordnet ist. Für eine Kürze einer Darstellung und eine Bequemlichkeit einer Beschreibung sind ferner die nichtflüchtigen Speichervorrichtungen 322 als ein Block dargestellt, und es wird angenommen, dass ein Programmierungsvorgang der dritten Schreibdaten WRD3 fehlschlägt.
  • Ausführungsbeispiele des erfinderischen Konzepts müssen jedoch nicht darauf begrenzt sein. Die nichtflüchtigen Speichervorrichtungen 322 können beispielsweise jeweils mit unterschiedlichen Vorrichtungen implementiert sein, können auf eine Mehrzahl von Weisen aufgeteilt sein und können mit der Speichersteuerung 321 durch eine Mehrzahl von Kanälen kommunizieren. Die Schreibdaten WRD1 bis WRDn können ferner jeweils in unterschiedlichen nichtflüchtigen Speichervorrichtungen gespeichert sein.
  • Bezug nehmend auf 16 und 17 kann, wie es im Vorhergehenden beschrieben ist, die Speichersteuerung 321 die Schreibdaten WRD1 bis WRDn auf eine verschachtelte Art und Weise zu den nichtflüchtigen Speichervorrichtungen 322 übertragen. In diesem Fall kann die Speichersteuerung 321 die Parität PRT, die den Schreibdaten WRD1 bis WRDn zugeordnet ist, erzeugen und kann die erzeugte Parität PRT in dem zweiten Pufferspeicher 321b speichern.
  • Die nichtflüchtigen Speichervorrichtungen 322 können Programmbetriebsvorgänge an den empfangenen Schreibdaten WRD1 bis WRDn durchführen. Gemäß der vorhergehenden Annahme kann der Programmierungsvorgang der dritten Schreibdaten WRD3 fehlschlagen. Die Speichersteuerung 321 kann Informationen, die angeben, dass der Programmierungsvorgang der dritten Schreibdaten WRD3 fehlschlägt, empfangen ⑤. Obwohl es in 17 nicht dargestellt ist, kann die Speichersteuerung 321 Informationen über einen Programmierungserfolg von allen der verbleibenden Schreibdaten WRD1, WRD2 und WRD4 bis WRDn empfangen.
  • Die Speichersteuerung 321 kann ansprechend auf die empfangenen Informationen die verbleibenden Schreibdaten WRD1, WRD2 und WRD4 bis WRDn, abgesehen von den Schreibdaten WRD3, die dem Programmierungsfehlschlag entsprechen, von den nichtflüchtigen Speichervorrichtungen 322 lesen ⑥. Bei einem Ausführungsbeispiel kann das Lesen der Schreibdaten von den nichtflüchtigen Speichervorrichtungen 322 durchgeführt werden, nachdem die verbleibenden Schreibdaten WRD1, WRD2 und WRD4 bis WRDn, abgesehen von den Schreibdaten WRD3, die dem Programmierungsfehlschlag entsprechen, erfolgreich gänzlich programmiert wurden.
  • Die Speichersteuerung 321 kann die Parität PRT, die in dem zweiten Pufferspeicher 321b gespeichert ist, lesen (⑥') und kann die Schreibdaten (das heißt die dritten Daten WRD3), die dem Programmierungsfehlschlag entsprechen, basierend auf der Parität PRT und den gelesenen Schreibdaten WRD1, WRD2 und WRD4 bis WRDn wiederherstellen (⑦). Wie im Vorhergehenden beschrieben wurde, kann beispielsweise der Paritätsgenerator 321c durch Durchführen eines bitweisen XOR-Betriebsvorgangs an der Parität PRT und den Schreibdaten WRD1, WRD2 und WRD4 bis WRDn die dritten Schreibdaten WRD3 wiederherstellen. Die wiederhergestellten dritten Schreibdaten WRD3 können in dem ersten Pufferspeicher 321a gespeichert werden, und die Speichersteuerung 321 kann die wiederhergestellten dritten Schreibdaten WRD3 zu den nichtflüchtigen Speichervorrichtungen 322 übertragen, derart, dass die wiederhergestellten dritten Schreibdaten WRD3 in den nichtflüchtigen Speichervorrichtungen 322 gespeichert werden.
  • Ein Ausführungsbeispiel eines Verfahrens, bei dem die Daten wiederhergestellt werden, wenn ein Programmierungsvorgang von irgendwelchen der Schreibdaten WRD 1 bis WRDn fehlschlägt, wird unter Bezugnahme auf 17 beschrieben. Ausführungsbeispiele des erfinderischen Konzepts müssen jedoch nicht darauf begrenzt sein. Stücke von Schreibdaten können beispielsweise in einem Zustand wiederhergestellt werden, in dem Programmbetriebsvorgänge von Stücken von Schreibdaten fehlschlagen, indem die Zahl von Paritäten erhöht wird. Bei Ausführungsbeispielen kann die Mehrzahl von Paritäten in dem zweiten Pufferspeicher 321b gespeichert sein, oder einige der Mehrzahl von Paritäten können in den nichtflüchtigen Speichervorrichtungen 322 gespeichert sein.
  • Wie im Vorhergehenden beschrieben wurde, kann die Speicherungsvorrichtung 320 gemäß einem Ausführungsbeispiel des erfinderischen Konzepts durch Durchführen eines Übertragens eines Schreibabschlusses und Freigeben eines Schreibpuffers, bevor Stücke von Schreibdaten erfolgreich vollständig programmiert wurden, eine Schreibverzögerung verhindern. In dem Fall, in dem Programmierungsbetriebsvorgänge, die einigen von Stücken von Schreibdaten zugeordnet sind, fehlschlagen, kann ferner die Speicherungsvorrichtung 320 Schreibdaten, die einem Programmierungsfehlschlag entsprechen, basierend auf den verbleibenden Schreibdaten und der Parität wiederherstellen. Eine Speicherungsvorrichtung mit einem verbesserten Leistungsvermögen und einer verbesserten Zuverlässigkeit wird dementsprechend geliefert.
  • 18 ist ein Zeitdiagramm zum Beschreiben eines Ausführungsbeispiels einer Datentransfereinheit. Bei einem Ausführungsbeispiel wurden, um den Schutzbereich und die Idee des erfinderischen Konzepts deutlich zu beschreiben, Ausführungsbeispiele im Vorhergehenden unter der Annahme beschrieben, dass eine Datentransfereinheit zwischen einem Host 110, 210 oder 310 und einer Speichersteuerung 121, 221 oder 321 gleich einer Datentransfereinheit zwischen einer Speichersteuerung 121, 221 oder 321 und nichtflüchtigen Speichervorrichtungen 122, 222 oder 322 ist. Ausführungsbeispiele des erfinderischen Konzepts müssen jedoch nicht darauf begrenzt sein.
  • Eine Datentransfereinheit zwischen einem Host 110, 210 oder 310 und einer Speichersteuerung 121, 221 oder 321 kann beispielsweise abhängig von einer vordefinierten Schnittstelle oder einem vordefinierten Protokoll zwischen einem Host 110, 210 oder 310 und einer Speichersteuerung 121, 221 oder 321 oder einem Dateisystem eines Hosts 110, 210 oder 310 bestimmt sein. Eine Datentransfereinheit zwischen einer Speichersteuerung 121, 221 oder 321 und nichtflüchtigen Speichervorrichtungen 122, 222 oder 322 kann beispielsweise abhängig von einer vordefinierten Schnittstelle oder einem vordefinierten Protokoll zwischen der Speichersteuerung 121, 221 oder 321 und den nichtflüchtigen Speichervorrichtungen 122, 222 oder 322 oder Betriebscharakteristiken der nichtflüchtigen Speichervorrichtungen 122, 222 oder 322 bestimmt sein. Das heißt, die Datentransfereinheiten können sich voneinander unterscheiden.
  • Die Datentransfereinheit zwischen einem Host 110, 210 oder 310 und einer Speichersteuerung 121, 221 oder 321 kann beispielsweise einer Sektoreinheit (zum Beispiel 4 kB) entsprechen, und die Datentransfereinheit zwischen einer Speichersteuerung 121, 221 oder 321 und nichtflüchtigen Speichervorrichtungen 122, 222 oder 322 kann einer Programmierungseinheit oder einer Seiteneinheit (zum Beispiel 96 kB) von nichtflüchtigen Speichervorrichtungen 122, 222 oder 322 entsprechen. Das heißt, eine Speichersteuerung 121, 221 oder 321 kann Stücke von Schreibdaten von einem Host 110, 210 oder 310 empfangen; wenn die Stücke von Daten die Programmierungseinheit begründen, kann eine Speichersteuerung 121, 221 oder 321 Schreibdaten der Programmierungseinheit zu nichtflüchtigen Speichervorrichtungen 122, 222, oder 322 übertragen.
  • Als ein detailliertes Beispiel wird angenommen, dass Stücke von Schreibdaten WRD1 bis WRDk Daten einer Programmierungseinheit begründen. Wie in 18 dargestellt ist, können die Stücke von Schreibdaten WRD1 bis WRDk von einem Host 110, 210 oder 310 zu einem ersten Pufferspeicher 121a, 221a oder 321a übertragen werden. In diesem Fall kann eine Speichersteuerung 121, 221 oder 321 den WR-Abschluss zu einem Host 110, 210 oder 310 immer dann übertragen, wenn alle der Schreibdaten WRD1 bis WRDk zu einem ersten Pufferspeicher 121a, 221a oder 321a übertragen wurden.
  • Ein Speichersteuerung 121, 221 oder 321 kann danach Daten PGM-D einer Programmierungseinheit zu den nichtflüchtigen Speichervorrichtungen 122, 222 oder 322 übertragen. In diesem Fall kann wie bei den im Vorhergehenden beschriebenen Ausführungsbeispielen die Speichersteuerung 121, 221 oder 321 die Daten PGM-D der Programmierungseinheit zu dem zweiten Pufferspeicher 123 und 211 übertragen oder kann basierend auf den Daten PGM-D der Programmierungseinheit die entsprechende Parität erzeugen.
  • Nachdem die Daten PGM-D der Programmierungseinheit übertragen wurden, kann eine Speichersteuerung 121, 221 oder 321 einen ersten Pufferspeicher 121a, 221a oder 321a freigeben. Nachdem ein Programmieren in die nichtflüchtigen Speichervorrichtungen 122, 222 oder 322 erfolgreich abgeschlossen wurde, kann eine Speichersteuerung 121, 221 oder 321 einen zweiten Pufferspeicher 123 oder 211 freigeben.
  • Wie im Vorhergehenden beschrieben wurde, kann eine Speicherungsvorrichtung gemäß einem Ausführungsbeispiel des erfinderischen Konzepts einen Schreibabschluss zu einem Host immer dann übertragen, wenn die Schreibdaten, die von dem Host empfangen wurden, in einem ersten Pufferspeicher gespeichert wurden, und kann den ersten Pufferspeicher immer dann freigeben, wenn Daten einer Programmierungseinheit zu den nichtflüchtigen Speichervorrichtungen übertragen werden. Das heißt, die Speicherungsvorrichtung kann durch Durchführen eines Übertragens eines Schreibabschlusses und eines Freigebens eines Schreibpuffers, bevor die Schreibdaten erfolgreich gänzlich programmiert wurden, eine Schreibverzögerung verhindern. Die Zuverlässigkeit der Daten kann ferner durch Instandhalten einer Vielfalt von Mitteln (zum Beispiel von Daten, die in einem Pufferspeicher einer Speicherungsvorrichtung gespeichert sind, Schreibdaten, die in einem HBM eines Hosts gespeichert sind, oder einer Parität, die Schreibdaten zugeordnet ist) zum Wiederherstellen von Schreibdaten, bis die Schreibdaten erfolgreich gänzlich programmiert wurden, gewährleistet werden.
  • 19 ist ein Blockdiagramm, das eine Konfiguration eines Ausführungsbeispiels einer Speichersteuerung 421 darstellt. Einer Kürze wegen wird eine Beschreibung, die bereits im Vorhergehenden im Detail unter Bezugnahme auf die vorhergehenden Elemente angegeben wurde, hier nicht wiederholt werden.
  • Bezug nehmend auf 19 kann die Speichersteuerung 421 einen ersten Pufferspeicher 421a, einen Prozessor 421b, einen ROM 421c, einen Pufferverwalter 421d, eine Hostschnittstellenschicht 421e, eine Flash-Schnittstellenschicht 421f, eine erste (Host-) Speicherdirektzugriffs-Maschine (HDMA-Maschine) 421g und eine zweite (Flash-) Speicherdirektzugriffs-Maschine (FDMA-Maschine) 421h aufweisen. Der erste Pufferspeicher 421a, der Prozessor 421b, der ROM 421c, der Pufferverwalter 421d, die Wirtsschnittstellenschicht 421e und die Flash-Schnittstellenschicht 421f wurden unter Bezugnahme auf 2 beschrieben, und eine Beschreibung derselben wird hier nicht wiederholt werden.
  • Die Speichersteuerung 421 von 19 kann ferner die HDMA-Maschine 421g und die FDMA-Maschine 421h aufweisen. Die HDMA-Maschine 421g kann eine Hardwarevorrichtung sein, die einen Direktspeicherzugriffs-Betriebsvorgang (DMA-Betriebsvorgang) zwischen einem Host 410 und einem ersten Pufferspeicher 421a ohne einen Eingriff des Prozessors 421b steuert. Die FDMA-Maschine 421h kann eine Hardwarevorrichtung sein, die einen DMA-Betriebsvorgang zwischen dem ersten Pufferspeicher 421a und nichtflüchtigen Speichervorrichtungen 422 und einen DMA-Betriebsvorgang zwischen dem ersten Pufferspeicher 421a und einem zweiten Pufferspeicher 423 steuert.
  • Eine Speicherungsvorrichtung kann beispielsweise in einem DMA-Modus in Betrieb sein, um eine Datentransferrate zu verbessern. Der DMA-Modus kann sich auf einen Betriebsmodus beziehen, bei dem Daten unter einer Steuerung der DMA-Maschinen 421g und 421h ohne einen Eingriff des Prozessors 421b oder eines Kerns, den die Speichersteuerung 421 in sich aufweist, transferiert werden. Das heißt, da es keine Notwendigkeit einer Steuerung oder einer Verarbeitung von dem Prozessor 421b oder dem Kern gibt, während die Daten transferiert werden, dass die Datentransferrate verbessert werden kann.
  • Bei dem DMA-Betriebsmodus kann die HDMA-Maschine 421g einen Datentransfer zwischen dem Host 410 und dem ersten Pufferspeicher 421a steuern oder verwalten, und die FDMA-Maschine 421h kann einen Datentransfer zwischen dem ersten Pufferspeicher 421a und den nichtflüchtigen Speichervorrichtungen 422 und einen Datentransfer zwischen dem ersten Pufferspeicher 421a und dem zweiten Pufferspeicher 423 steuern oder verwalten.
  • Bei einem Ausführungsbeispiel kann ein Schreibdatentransfer zwischen einem Host und einem ersten Pufferspeicher, der unter Bezugnahme auf 1 bis 18 beschrieben wurde, in dem DMA-Modus durchgeführt werden. In diesem Fall kann ein HDMA-Betriebsvorgang, der dem Schreibdatentransfer zugeordnet ist, durch eine HDMA-Maschine 421g ohne einen Eingriff des Prozessors 421b durchgeführt werden. Ein Datentransfer zwischen dem ersten Pufferspeicher und den nichtflüchtigen Speichervorrichtungen und zwischen dem ersten Pufferspeicher und dem zweiten Pufferspeicher, die unter Bezugnahme auf 1 bis 18 beschrieben wurden, kann ferner in dem DMA-Modus durchgeführt werden. In diesem Fall kann ein FDMA-Betriebsvorgang, der dem Datentransfer zugeordnet ist, durch die FDMA-Maschine 421h ohne einen Eingriff des Prozessors 421b durchgeführt werden.
  • Bei einem Ausführungsbeispiel kann, obwohl es nicht in 19 dargestellt ist, die Speichersteuerung 421 ferner eine getrennte DMA-Maschine aufweisen, die einen DMA-Betriebsvorgang zwischen dem ersten Pufferspeicher 421a und dem zweiten Pufferspeicher 423 steuert oder verwaltet.
  • Die Speichersteuerung 421 gemäß einem Ausführungsbeispiel des erfinderischen Konzepts kann einen WR-Abschluss zu dem Host 410 übertragen, nachdem der HDMA-Betriebsvorgang eines Empfangs von Schreibdaten von dem Host 410 abgeschlossen wurde, und kann den ersten Pufferspeicher 421a freigeben, nachdem der FDMA-Betriebsvorgang eines Übertragens von Daten zu den nichtflüchtigen Speichervorrichtungen 422 und zu dem zweiten Pufferspeicher 423 abgeschlossen wurde. Daten können ferner durch Freigeben des zweiten Pufferspeichers 423, nachdem ein Programmierungsvorgang der nichtflüchtigen Speichervorrichtungen 422 erfolgreich abgeschlossen wurde, selbst dann normal wiederhergestellt werden, wenn ein Programmierungsvorgang fehlschlägt. Dementsprechend kann eine Speicherungsvorrichtung mit einem verbesserten Leistungsvermögen und einer verbesserten Leistungsfähigkeit geliefert werden.
  • 20 ist ein Blockdiagramm, das ein Ausführungsbeispiel eines Benutzersystems darstellt, das eine Speicherungsvorrichtung aufweist. Bezug nehmend auf 20 kann ein Benutzersystem 2000 einen Host 2100 und eine Speicherungsvorrichtung 2200 aufweisen. Der Host 2100 kann Daten in der Speicherungsvorrichtung 2200 speichern oder Daten, die in der Speicherungsvorrichtung 2200 gespeichert sind, lesen,
  • Die Speicherungsvorrichtung 2200 kann eine Steuerung 2210, eine Mehrzahl von nichtflüchtigen Speichervorrichtungen 2220 und einen Pufferspeicher 2230 aufweisen. Die Steuerung 2210 kann einen Prozessor 2211, eine Datendomänenverwalterschaltung 2212, eine Schreibverwalterschaltung 2213, eine Leseverwalterschaltung 2214, eine Hostschnittstellenschicht 2215 und eine Speicherschnittstellenschicht 2216 aufweisen.
  • Der Prozessor 2211 kann mindestens einen Prozessorkern aufweisen. Der Prozessor 2211 kann abhängig von einem Betrieb des Prozessorkerns einen Programmcode von Software (SW) und/oder Firmware (FW) ausführen.
  • Die Datendomänenverwalterschaltung 2212 kann konfiguriert sein, um eine Aufgabe eines ersten Typs, die der Speicherungsvorrichtung 2200 zugeordnet ist, zu verwalten. Die Datendomänenverwalterschaltung 2212 kann beispielsweise Informationen über einen Zustand von mindestens einer von nichtflüchtigen Speichervorrichtungen 2220, Schreibdaten und Lesedaten im Hinblick auf ein Durchführen der Aufgabe des ersten Typs erhalten. Die Schreibverwalterschaltung 2213 und die Leseverwalterschaltung 2214 können die Aufgabe des ersten Typs durchführen, um eine Vielfalt von Zustandsinformationen zu der Datendomänenverwalterschaltung 2212 zu liefern. Die Datendomänenverwalterschaltung 2212 kann basierend auf den erhaltenen Informationen Zustände überwachen, die Betriebsvorgängen der Steuerung 2210 oder der nichtflüchtigen Speichervorrichtungen 2220 zugeordnet sind.
  • Die Schreibverwalterschaltung 2213 kann die Aufgabe des ersten Typs (insbesondere eine Schreibaufgabe) verwalten. Die Schreibverwalterschaltung 2213 kann beispielsweise einen Schreibbetriebsvorgang zum Speichern von Schreibdaten von dem Host 2100 in den nichtflüchtigen Speichervorrichtungen 2220 verwalten. Bei einem Ausführungsbeispiel kann die Schreibverwalterschaltung 2213 auf einem Schreibpfad zum Transferieren von Schreibdaten von dem Host 2100 zu den nichtflüchtigen Speichervorrichtungen 2220 platziert sein.
  • Die Leseverwalterschaltung 2214 kann eine Aufgabe des ersten Typs (insbesondere eine Leseaufgabe) verwalten. Die Leseverwalterschaltung 2214 kann beispielsweise einen Lesebetriebsvorgang zum Ausgeben von Lesedaten zu dem Äußeren (zum Beispiel dem Host 2100) der Steuerung 2210 verwalten. Bei einem Ausführungsbeispiel kann die Leseverwalterschaltung 2214 auf einem Lesepfad zum Transferieren von Lesedaten, die von den nichtflüchtigen Speichervorrichtungen 2220 ausgegeben werden, zu dem Äußeren der Steuerung 2210 platziert sein.
  • Bei einem Ausführungsbeispiel kann die Schreibverwalterschaltung 2213 einen Pufferspeicher aufweisen, und die Leseverwalterschaltung 2214 kann einen getrennten Pufferspeicher aufweisen. Der (die) Puffer kann (können) als ein Schreibpuffer oder ein Lesepuffer der Speicherungsvorrichtung 2200 verwendet werden.
  • Bei einem Ausführungsbeispiel können die Datendomänenverwalterschaltung 2212, die Schreibverwalterschaltung 2213 und die Leseverwalterschaltung 2214 in der Gestalt von Hardware implementiert sein und können konfiguriert sein, um die Aufgabe des ersten Typs zu verwalten. Bei einem Ausführungsbeispiel kann die Aufgabe eines ersten Typs einfache Aufgaben, wie zum Beispiel einen Datenschreibbetriebsvorgang und einen Datenlesebetriebsvorgang, aufweisen. Die Aufgabe eines ersten Typs kann alternativ eine Aufgabe aufweisen, die einer ersten Verarbeitungseinheit (zum Beispiel einer Seiteneinheit) zugeordnet ist.
  • Bei einem Ausführungsbeispiel kann eine Aufgabe eines zweiten Typs, die sich von der Aufgabe des ersten Typs unterscheidet, durch Software (SW) und/oder Firmware (FW), die durch den Prozessor 2211 angesteuert wird/werden, verarbeitet werden. Bei einem Ausführungsbeispiel kann die Aufgabe eines zweiten Typs Instandhaltungsaufgaben, wie zum Beispiel einen Sammlungsbetriebsvorgang von wertlosen Daten, einen Verschleißniveaubestimmungsbetriebsvorgang, einen Leseregenerationsbetriebsvorgang, einen Leseauffrischungsbetriebsvorgang und einen Fehlerkorrekturbetriebsvorgang, die den nichtflüchtigen Speichervorrichtungen 2220 zugeordnet sind, aufweisen. Bei einem Ausführungsbeispiel kann die Aufgabe eines zweiten Typs eine Aufgabe aufweisen, die einer zweiten Verarbeitungseinheit (zum Beispiel einer Speicherblockeinheit) zugeordnet ist, die sich von der ersten Verarbeitungseinheit (zum Beispiel einer Seiteneinheit) unterscheidet.
  • Bei einem Ausführungsbeispiel können die Aufgaben eines ersten Typs (das heißt einfache Aufgaben), wie zum Beispiel ein Datenlesebetriebsvorgang und ein Datenschreibbetriebsvorgang, durch eine Hardwareschaltung durchgeführt werden, und der Instandhaltungsbetriebsvorgang kann durch Software (SW) und/oder Firmware (FW) verarbeitet werden, die durch den Prozessor 2211 ausgeführt wird, wodurch das Gesamtleistungsvermögen der Speicherungsvorrichtung 2200 verbessert wird.
  • Bei einem Ausführungsbeispiel können die Schreibverwalterschaltung 2213 und die Leseverwalterschaltung 2214 basierend auf den Betriebsverfahren, die unter Bezugnahme auf 1 bis 19 beschrieben wurden, in Betrieb sein. Die Schreibverwalterschaltung 2213 kann beispielsweise konfiguriert sein, um nach einem Empfangen von Schreibdaten von dem Host 2100 einen Schreibabschluss zu dem Host 2100 zu übertragen und nach dem Übertragen der Schreibdaten zu den nichtflüchtigen Speichervorrichtungen 2220 einen internen Puffer freizugeben. Die Schreibverwalterschaltung 2213 kann ferner durch Übertragen der Schreibdaten zu dem Pufferspeicher 2230 (oder einem HBM des Hosts 2100) oder durch Erzeugen einer Parität die Zuverlässigkeit von Schreibdaten gewährleisten, während die Schreibdaten zu den nichtflüchtigen Speichervorrichtungen 2220 übertragen werden.
  • Die Steuerung 2210 kann durch eine Hostschnittstellenschicht 2215 mit dem Host 2100 kommunizieren. Die Hostschnittstellenschicht 2215 kann beispielsweise einen Befehl und Daten, die von dem Host 2100 empfangen werden, in ein Format wandeln, das in der Steuerung 2210 verarbeitet werden kann, und umgekehrt. Die Steuerung 2210 kann mit den nichtflüchtigen Speichervorrichtungen 2220 durch die Speicherschnittstellenschicht 2216 kommunizieren. Die Speicherschnittstellenschicht 2216 kann beispielsweise Schreibdaten und relevante Daten in ein Format wandeln, das in den nichtflüchtigen Speichervorrichtungen 2220 identifiziert werden kann, und umgekehrt.
  • Bei einem Ausführungsbeispiel können die Hostschnittstellenschicht 2215 und die Speicherschnittstellenschicht 2216 einen Packer zum Wandeln von Daten oder Informationen in ein Format, das in der Steuerung 2210 verwendet wird, und einen Entpacker (bzw. Entpaketisierer) aufweisen.
  • Eine Speicherungsvorrichtung gemäß einem Ausführungsbeispiel des erfinderischen Konzepts kann durch Übertragen eines Schreibabschlusses und Freigeben eines Schreibpuffers, bevor die Schreibdaten erfolgreich gänzlich programmiert wurden, eine Reduzierung des Leistungsvermögens aufgrund einer begrenzten Kapazität eines Schreibpuffers und einer Schreibverzögerung verhindern, und kann durch so langes Instandhalten der Schreibdaten in einem getrennten Puffer, bis die Schreibdaten erfolgreich gänzlich programmiert wurden, und Wiederherstellen der Schreibdaten, wenn ein Programmierungsvorgang fehlschlägt, die Zuverlässigkeit der Schreibdaten gewährleisten.
  • Es kann dementsprechend möglich sein, ein Betriebsverfahren einer Speichersteuerung, das eine verbesserte Zuverlässigkeit und ein verbessertes Leistungsvermögen hat, und ein Betriebsverfahren einer Benutzervorrichtung zu liefern.
  • Die verschiedenen Betriebsvorgänge der im Vorhergehenden beschriebenen Verfahren können durch irgendwelche geeigneten Mittel durchgeführt werden, die fähig sind, Betriebsvorgänge bzw. Operationen durchzuführen, wie zum Beispiel verschiedene Hardware- und/oder Softwarekomponenten, Schaltungen und/oder Module.
  • Eine Software, die bei den offenbarten Systemen und/oder Verfahren genutzt wird, kann eine geordnete Auflistung von ausführbaren Anweisungen zum Implementieren von logischen Funktionen aufweisen und kann in einem „prozessorlesbaren Medium“ zur Verwendung durch oder im Zusammenhang mit einem Anweisungsausführungssystem, einem Anweisungsausführungsgerät oder einer Anweisungsausführungsvorrichtung, zum Beispiel einem Ein- oder Mehrkernprozessor oder einem prozessorenthaltenden System, verkörpert sein.
  • Die Blöcke oder Schritte eines Verfahrens oder eines Algorithmus und Funktionen, die im Zusammenhang mit den Ausführungsbeispielen, die hierin offenbart sind, beschrieben wurden, können direkt in Hardware, in einem Softwaremodul, das durch einen Prozessor ausgeführt wird, oder in einer Kombination der beiden verkörpert sein. Wenn dieselben in Software implementiert sind, können Anweisungen oder Codes zum Ausführen der Funktionen in einem greifbaren, nichttransitorischen Medium gespeichert sein oder damit übertragen werden. Ein Softwaremodul kann in einem Direktzugriffsspeicher (RAM), einem Flash-Speicher, einem Nur-Lese-Speicher (ROM), einem elektrisch programmierbaren ROM (EPROM), einem elektrisch löschbaren programmierbaren ROM (EEPROM), Registern, einer Festplatte, einer entfernbaren Platte, einer CD-ROM oder in jeder anderen Gestalt eines Speicherungsmediums, das in der Technik bekannt ist, liegen.
  • Obwohl das erfinderische Konzept unter Bezugnahme auf Ausführungsbeispiele beschrieben wurde, ist es für Fachleute offensichtlich, dass verschiedene Änderungen und Modifikationen vorgenommen sein können, ohne von der Idee und dem Schutzbereich des erfinderischen Konzepts abzuweichen. Es sollte daher offensichtlich sein, dass die vorhergehenden Ausführungsbeispiele nicht beschränkend, sondern nur veranschaulichend sind.
  • 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 1020170084198 [0001]

Claims (20)

  1. System (100; 200; 2000) mit: einem nichtflüchtigen Speicher (122; 222; 422; 2220); einer Speichersteuerung (121; 221; 421; 2210), die konfiguriert ist, um den nichtflüchtigen Speicher (122; 222; 422; 2220) zu steuern, wobei die Speichersteuerung (121; 221; 421; 2210) einen ersten Pufferspeicher (121a; 221a; 421a) zum vorübergehenden Speichern von Schreibdaten (WRD), die in den nichtflüchtigen Speicher (122; 222; 422; 2220) zu schreiben sind, aufweist; und einem zweiten Pufferspeicher (123; 211; 423), der eine niedrigere Betriebsgeschwindigkeit und eine höhere Speicherkapazität als der erste Pufferspeicher (121a; 221a; 421a) hat, wobei die Speichersteuerung (121; 221; 421; 2210) konfiguriert ist, um die Schreibdaten (WRD) von dem ersten Pufferspeicher (121a; 221a; 421a) zu dem zweiten Pufferspeicher (123; 211; 423) und zu dem nichtflüchtigen Speicher (122; 222; 422; 2220) zu übertragen (S130), und um einen Betriebszustand des ersten Pufferspeichers (121a; 221a; 421a) nach einem Übertragen der Schreibdaten (WRD) von dem ersten Pufferspeicher (121a; 221a; 421a) zu dem zweiten Pufferspeicher (123; 211; 423) und zu dem nichtflüchtigen Speicher (122; 222; 422; 2220) freizugeben (S140), wobei ein Schreiben von zusätzlichen Schreibdaten in den ersten Pufferspeicher (121a; 221a; 421a) vor der Freigabe des Betriebszustands des ersten Pufferspeichers (121a; 221a; 421a) verboten ist, und ein Schreiben der zusätzlichen Schreibdaten in den ersten Pufferspeicher (121a; 221a; 421a) nach der Freigabe des Betriebszustands des ersten Pufferspeichers (121a; 221a; 421a) erlaubt ist.
  2. System (100; 200) nach Anspruch 1, bei dem die Speichersteuerung (121; 221; 421) konfiguriert ist, um die Schreibdaten (WRD) zu dem nichtflüchtigen Speicher (122; 222; 422) zeitgleich mit einer Übertragung der Schreibdaten (WRD) zu dem zweiten Pufferspeicher (123; 211; 423) zu übertragen (S130).
  3. System (100; 200) nach Anspruch 1, bei dem der Betriebszustand des ersten Pufferspeichers (121a; 221a; 421a) ansprechend auf einen Abschluss dessen, dass die Schreibdaten (WRD) zu dem zweiten Pufferspeicher (123; 211; 423) und dem nichtflüchtigen Speicher (122; 222; 422) übertragen wurden, freigegeben wird.
  4. System (100; 200) nach Anspruch 1, bei dem der nichtflüchtige Speicher (122; 222; 422) konfiguriert ist, um ein Schreiberfolg-Signal zu erzeugen, wenn die Schreibdaten (WRD), die von dem ersten Pufferspeicher (121a; 221a; 421a) übertragen wurden, in dem nichtflüchtigen Speicher (122; 222; 422) erfolgreich gespeichert wurden, und ein Schreibfehlschlag-Signal zu erzeugen, wenn die Schreibdaten (WRD), die von dem ersten Pufferspeicher (121a; 221a; 421a) übertragen wurden, in dem nichtflüchtigen Speicher (122; 222; 422) nicht erfolgreich gespeichert wurden, und bei dem der Betriebszustand des ersten Pufferspeichers (121a, 221a; 421a) freigegeben wird (S140), bevor der nichtflüchtige Speicher (122; 222; 422) das Schreibfehlschlag-Signal oder das Schreibfehlschlag-Signal erzeugt.
  5. System (100) nach Anspruch 1, bei dem der nichtflüchtige Speicher (122) eine Mehrzahl von nichtflüchtigen Speichervorrichtungen (NVM) aufweist, und der erste Pufferspeicher (121a) eine Mehrzahl von Speicherungsbereichen aufweist, die jeweils der Mehrzahl von nichtflüchtigen Speichervorrichtungen (NVM) entsprechen.
  6. System nach Anspruch 1, bei dem die Speichersteuerung (421) eine erste Speicherdirektzugriffs- (DMA-) Maschine (421g) zum Steuern von Betriebsvorgängen zwischen einer Hostvorrichtung (410) und dem ersten Pufferspeicher (421a) und eine zweite DMA-Maschine (421h) zum Steuern von Betriebsvorgängen zwischen dem ersten Pufferspeicher (421a) und dem zweiten Pufferspeicher (423) und zwischen dem ersten Pufferspeicher (421a) und dem nichtflüchtigen Speicher (422) aufweist.
  7. System (2000) nach Anspruch 1, bei dem die Speichersteuerung (2210) eine Schreibverwalterschaltung (2213) und eine Leseverwalterschaltung (2214) aufweist, und bei dem der erste Pufferspeicher in der Schreibverwalterschaltung (2213) ist, und ein getrennter Pufferspeicher in der Leseverwalterschaltung (2214) ist.
  8. Speichersystem (100; 200; 2000) mit: einem nichtflüchtigen Speicher (122; 222; 422; 2220); einer Speichersteuerung (121; 221; 421; 2210), die einen Schreibpuffer (121a; 221a; 421a) zum vorübergehenden Speichern von Schreibdaten (WRD), die in dem nichtflüchtigen Speicher (122; 222; 422; 2220) zu speichern sind, aufweist, wobei die Speichersteuerung (121; 221; 421; 2210) konfiguriert ist, um die Schreibdaten (WRD) von dem Schreibpuffer (121a; 221a; 421a) zu dem nichtflüchtigen Speicher (122; 222; 422; 2220) zu übertragen (S130); und die Speichersteuerung (121; 221; 421; 2210) ferner konfiguriert ist, um einen Betriebszustand des Schreibpuffers (121a; 221a; 421a) vor einer Bestätigung eines erfolgreichen Schreibens der Schreibdaten (WRD), die zu dem nichtflüchtigen Speicher (122; 222; 422; 2220) übertragen werden, freizugeben (S140), wobei ein Schreiben von zusätzlichen Schreibdaten in den Schreibpuffer (121a; 221a; 421a) vor der Freigabe des Betriebszustands des Schreibpuffers (121a; 221a; 421a) verboten ist, und ein Schreiben der zusätzlichen Schreibdaten in den Schreibpuffer (121a; 221a; 421a) nach der Freigabe des Betriebszustands des Schreibpuffers (121a; 221a; 421a) erlaubt ist.
  9. Speichersystem (100; 200; 2000) nach Anspruch 8, bei dem die Speichersteuerung (121; 221; 421; 2210) ferner konfiguriert ist, um ein Schreibabschlusssignal zu einer Hostvorrichtung (110; 210; 410; 2100) zu übertragen, das angibt, dass der Betriebszustand des Schreibpuffers (121a; 221a; 421a) vor der Bestätigung des erfolgreichen Schreibens der Schreibdaten (WRD), die zu dem nichtflüchtigen Speicher (122; 222; 422; 2220) übertragen werden, freigegeben wurde.
  10. Speichersystem (100) nach Anspruch 8, bei dem die Speichersteuerung (121; 421) ferner einen Pufferverwalter (121d; 421d) aufweist, der konfiguriert ist, um einen Direktzugriffsspeicher zum Sichern der Schreibdaten (WRD) zu steuern.
  11. Verfahren mit folgenden Schritten: vorübergehendes Speichern (S110) von Schreibdaten (WRD), die zu schreiben sind, durch einen ersten Pufferspeicher (121a; 221a; 421a) einer Speichersteuerung (121; 221; 421; 2210); Übertragen (S130) der Schreibdaten (WRD) von dem ersten Pufferspeicher (121a; 221a; 421a) zu einem nichtflüchtigen Speicher (122; 222; 422; 2220) und zu einem zweiten Pufferspeicher (123; 211; 423), der eine niedrige Betriebsgeschwindigkeit und eine höhere Speicherkapazität als der erste Pufferspeicher (121a; 221a; 421a) hat, durch die Speichersteuerung (121; 221; 421; 2210); und Freigeben (S140) eines Betriebszustands des ersten Pufferspeichers (121a, 221a, 421a) durch die Speichersteuerung (121; 221; 421; 2210) nach einem Übertragen (S130) der Schreibdaten (WRD) von dem ersten Pufferspeicher (121a; 221a; 421a) zu dem zweiten Pufferspeicher (123; 211; 423) und zu dem nichtflüchtigen Speicher (122; 222; 422; 2220), wobei ein Schreiben von zusätzlichen Schreibdaten in den ersten Pufferspeicher (121a; 221a; 421a) vor der Freigabe des Betriebszustands des ersten Pufferspeichers (121a; 221a; 421a) verboten ist, und ein Schreiben der zusätzlichen Schreibdaten in den ersten Pufferspeicher (121a; 221a; 421a) nach der Freigabe des Betriebszustands des ersten Pufferspeichers (121a; 221a; 421a) erlaubt ist.
  12. Verfahren nach Anspruch 11, mit ferner folgendem Schritt: Übertragen (S130) der Schreibdaten (WRD) zu dem nichtflüchtigen Speicher (122; 222; 422; 2220) zeitgleich mit einem Übertragen (S130) der Schreibdaten (WRD) zu dem zweiten Pufferspeicher (123; 211; 423).
  13. Verfahren nach Anspruch 11, mit ferner folgendem Schritt: Freigeben (S140) des Betriebszustands des ersten Pufferspeichers (121a; 221a; 421a) ansprechend auf einen Abschluss dessen, dass die Schreibdaten zu dem zweiten Pufferspeicher (123; 211; 423) und dem nichtflüchtigen Speicher (122; 222; 422; 2220) übertragen wurden.
  14. Verfahren nach Anspruch 11, mit ferner folgendem Schritt: Übertragen (S120) eines Schreibabschlusssignals zu einer Hostvorrichtung (110; 210; 410; 2100), das angibt, dass sich der erste Pufferspeicher (121a; 221a; 421a) in einem freigegebenen Betriebszustand befindet, durch die Speichersteuerung (121; 221; 421; 2210).
  15. Verfahren nach Anspruch 11, mit ferner folgenden Schritten: Erzeugen eines Schreiberfolg -Signals durch den nichtflüchtigen Speicher (122; 222; 422; 2220), wenn die Schreibdaten (WRD), die von dem ersten Pufferspeicher (121a; 221a; 421a) übertragen wurden, in dem nichtflüchtigen Speicher (122; 222; 422; 2220) erfolgreich gespeichert wurden, und Erzeugen eines Schreibfehlschlag-Signals durch den nichtflüchtigen Speicher (122; 222; 422; 2220), wenn die Schreibdaten (WRD), die von dem ersten Pufferspeicher (121a; 221a; 421a) übertragen wurden, in dem nichtflüchtigen Speicher (122; 222; 422; 2220) nicht erfolgreich gespeichert wurden, wobei der Betriebszustand des ersten Pufferspeichers (121a; 221a; 421a) freigegeben wird, bevor der nichtflüchtige Speicher (122; 222; 422; 2220) das Schreiberfolg-Signal oder das Schreibfehlschlag-Signal erzeugt.
  16. Verfahren nach Anspruch 15, mit ferner folgendem Schritt: Übertragen eines Schreibabschlusssignals zu einer Hostvorrichtung (110; 210; 410; 2100), das angibt, dass sich der erste Pufferspeicher (121a; 221a; 421a) in einem freigegebenen Betriebszustand befindet, bevor der nichtflüchtige Speicher (122; 222; 422; 2220) das Schreiberfolg-Signal oder das Schreibfehlschlag-Signal erzeugt, durch die Speichersteuerung (121; 221; 421; 2210).
  17. Verfahren nach Anspruch 16, mit ferner folgendem Schritt: Freigeben (S160) des Betriebszustands des zweiten Pufferspeichers (123; 211; 423) ansprechend auf das Schreiberfolg-Signal, das durch den nichtflüchtigen Speicher (122; 222; 422; 2220) erzeugt wurde, wobei das Schreiben in den zweiten Pufferspeicher (123; 211; 423) vor der Freigabe des Betriebszustands des ersten Pufferspeichers (121a; 221a; 421a) verboten ist, und wobei der zweite Pufferspeicher (123; 211; 423) in dem freigegebenen Betriebszustand konfiguriert ist, um zweite Schreibdaten von dem ersten Pufferspeicher (121a; 221a; 421a) zu empfangen.
  18. Verfahren nach Anspruch 15, mit ferner folgenden Schritten: Übertragen der Schreibdaten (WRD) von dem zweiten Pufferspeicher (123; 211; 423) zu dem ersten Pufferspeicher (121a; 221a; 421a) und dann Wiederübertragen der Schreibdaten (WRD) von dem ersten Pufferspeicher (121a; 221a; 421a) zu dem nichtflüchtigen Speicher (122; 222; 422; 2220), wenn der nichtflüchtige Speicher (122; 222; 422; 2220) das Schreibfehlschlag-Signal erzeugt.
  19. Verfahren nach Anspruch 18, mit ferner folgendem Schritt: Wiederfreigeben des Betriebszustands des ersten Pufferspeichers (121a; 221a; 421a) ansprechend darauf, dass die Schreibdaten (WRD) von dem ersten Pufferspeicher (121a; 221a; 421a) zu dem nichtflüchtigen Speicher (122; 222; 422; 2220) wieder übertragen wurden, durch die Speichersteuerung (121; 221; 421; 2210).
  20. Verfahren nach Anspruch 15, mit ferner folgendem Schritt: Übertragen (S180) der Schreibdaten (WRD) von dem zweiten Pufferspeicher (123; 211; 423) zu dem nichtflüchtigen Speicher (122; 222; 422; 2220), wenn der nichtflüchtige Speicher (122; 222; 422; 2220) das Schreibfehlschlag-Signal erzeugt.
DE102018110957.1A 2017-07-03 2018-05-08 Speichersystem, Speichersteuerung für ein Speichersystem, Betriebsverfahren einer Speichersteuerung und Betriebsverfahren einer Benutzervorrichtung mit einem Speichersystem Pending DE102018110957A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020170084198A KR102398186B1 (ko) 2017-07-03 2017-07-03 메모리 컨트롤러의 동작 방법 및 사용자 장치의 동작 방법
KR10-2017-0084198 2017-07-03
US15/871,283 US10649898B2 (en) 2017-07-03 2018-01-15 Memory system, memory controller for memory system, operation method of memory controller, and operation method of user device including memory device
US15/871,283 2018-01-15

Publications (1)

Publication Number Publication Date
DE102018110957A1 true DE102018110957A1 (de) 2019-01-03

Family

ID=64661926

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018110957.1A Pending DE102018110957A1 (de) 2017-07-03 2018-05-08 Speichersystem, Speichersteuerung für ein Speichersystem, Betriebsverfahren einer Speichersteuerung und Betriebsverfahren einer Benutzervorrichtung mit einem Speichersystem

Country Status (1)

Country Link
DE (1) DE102018110957A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170084198A (ko) 2014-11-13 2017-07-19 한화 아즈델 인코포레이티드 팽창성 흑연 재료를 포함한 프리프레그, 코어 및 복합품

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170084198A (ko) 2014-11-13 2017-07-19 한화 아즈델 인코포레이티드 팽창성 흑연 재료를 포함한 프리프레그, 코어 및 복합품

Similar Documents

Publication Publication Date Title
US10649898B2 (en) Memory system, memory controller for memory system, operation method of memory controller, and operation method of user device including memory device
DE102019111132A1 (de) Speichereinrichtung, die Hostspeicher nutzt und Betriebsverfahren dafür
DE102014204716B4 (de) Nichtflüchtiges Speicherbauelement und Programmierverfahren für ein Betriebssystem(OS)-Image
DE112018000181T5 (de) System und verfahren für die schnelle ausführung von kapselinternen befehlen
DE112014005266B4 (de) Verfahren und System zur Vorwärtsreferenz-Protokollierung in einem peristenten Datenspeicher
DE112018000834T5 (de) System und verfahren zur adaptiven befehlsabruf-aggregation
DE102020107659A1 (de) Zonenbildung für gezonte namensräume
DE112019000141T5 (de) System und verfahren zur vorhersage von mehrfachlesebefehlen, die auf nicht sequentielle daten gerichtet sind
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102017128939A1 (de) System und Verfahren zum dynamischen und adaptiven Zusammenführen von Interrupts
DE102011085989B4 (de) Verfahren und Vorrichtung zum Ausführen von parallelen Speicherlese- und Speicherschreiboperationen
DE102019128491A1 (de) Betriebsverfahren für Open-Channel-Speichervorrichtung
DE102011086227A1 (de) Adress mapping method, data storage device and user device
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE112017005955T5 (de) Speichersystem und verfahren zur schlanken speicherzuweisung
DE112020006139T5 (de) Vor-lese-und lese-schwellenspannungsoptimierung
DE102016009807A1 (de) Korrelieren von physikalischen seitenadressen für soft-decision-dekodierung
DE102017128999A1 (de) Lesebetrieb und weiches Dekodierungs-Timing
DE112019000167T5 (de) Anpassbare Lesewiederholungsreihenfolge basierend auf einem Decodierungserfolgstrend
DE112016000696B4 (de) Ablaufplanungsschema(ta) für eine Mehrchip-Speichervorrichtung
DE102018123926A1 (de) Dynamische mehrstufige Decodierung
DE102018123670A1 (de) Speicherungssystem, Rechensystem und Verfahren dafür
DE102019111130A1 (de) Speichercontroller, Betriebsverfahren des Speichercontrollers und Speichersystem
DE112020004966T5 (de) Zns-parität-verschiebung nach dram
DE102021118940A1 (de) Speichersteuerung und speichereinrichtung mit derselben

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication