DE102020121109A1 - Speicher-controller, speichervorrichtungen und betriebsverfahren der speichervorrichtungen - Google Patents

Speicher-controller, speichervorrichtungen und betriebsverfahren der speichervorrichtungen Download PDF

Info

Publication number
DE102020121109A1
DE102020121109A1 DE102020121109.0A DE102020121109A DE102020121109A1 DE 102020121109 A1 DE102020121109 A1 DE 102020121109A1 DE 102020121109 A DE102020121109 A DE 102020121109A DE 102020121109 A1 DE102020121109 A1 DE 102020121109A1
Authority
DE
Germany
Prior art keywords
memory
storage
recovery firmware
controller
storage device
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
DE102020121109.0A
Other languages
English (en)
Inventor
Hyunglae Eun
Dong Kim
Inhoon Park
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 KR1020200017144A external-priority patent/KR20210034456A/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102020121109A1 publication Critical patent/DE102020121109A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/785Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test

Abstract

Eine Speichervorrichtung umfasst einen nichtflüchtigen Speicher; einen flüchtigen Speicher; und einen Speicher-Controller, der dazu eingerichtet ist, den nichtflüchtigen Speicher und den flüchtigen Speicher zu steuern. Der Speicher-Controller ist dazu eingerichtet, in Antwort auf eine Feststellung, dass während eines Betriebs der Speichervorrichtung ein progressiver Defekt in mindestens einem Speicher des nichtflüchtigen Speichers oder flüchtigen Speichers aufgetreten ist, so dass der mindestens eine Speicher als defekter Speicher bestimmt wird, basierend auf der Ausführung einer Speicherwiederherstellungsfirmware einen Reparaturvorgang am defekten Speicher durchzuführen.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht gemäß 35 U.S.C. § 119 den Vorteil der am 20. September 2019 beim koreanischen Patentamt eingereichten koreanischen Patentanmeldung Nr. 10-2019-0116356 und der am 12. Februar 2020 beim koreanischen Patentamt eingereichten koreanischen Patentanmeldung Nr. 10-2020-0017144 , deren Offenbarungen durch Inbezugnahme vollumfänglich hier mit aufgenommen werden.
  • STAND DER TECHNIK
  • Die erfinderischen Konzepte beziehen sich auf Speichervorrichtungen und insbesondere auf Speicher-Controller, die zur Verwaltung von fehlerhaften Speichern fähig sind, auf Speichervorrichtungen, welche die Speicher-Controller enthalten, und auf Betriebsverfahren der Speichervorrichtungen.
  • Neuere Speichervorrichtungen, wie Festkörperlaufwerke (SSD), sind weithin im Einsatz, und die Speichervorrichtungen werden zum Speichern oder Bewegen von großen Datenmengen verwendet. Aus verschiedenen Gründen können einige der in den Speichervorrichtungen enthaltenen Speicher progressiven Defekten ausgesetzt sein, und das kann zu dem Problem führen, dass die Speichervorrichtungen ersetzt werden müssen.
  • KURZFASSUNG DER ERFINDUNG
  • Gemäß einigen beispielhaften Ausführungsformen kann eine Speichervorrichtung einen nichtflüchtigen Speicher, einen flüchtigen Speicher und einen Speicher-Controller, der zur Steuerung des nichtflüchtigen Speichers und des flüchtigen Speichers ausgelegt ist, umfassen. Der Speicher-Controller kann ferner so eingerichtet sein, dass er in Antwort darauf, dass während des Betriebs der Speichervorrichtung ein progressiver Defekt in mindestens einem Speicher des nichtflüchtigen oder flüchtigen Speichers festgestellt wird, so dass der mindestens eine Speicher als defekter Speicher bestimmt wird, am defekten Speicher einen Reparaturvorgang basierend auf der Ausführung einer Speicherwiederherstellungsfirmware durchführt.
  • Gemäß einigen beispielhaften Ausführungsformen kann ein Betriebsverfahren einer Speichervorrichtung, wobei die Speichervorrichtung einen nichtflüchtigen Speicher, einen flüchtigen Speicher und einen Speicher-Controller umfasst, umfassen: Erkennen eines progressiven Defekts in einem Speicher des nichtflüchtigen Speichers oder des flüchtigen Speichers durch den Speicher-Controller, so dass der Speicher, in dem der progressive Defekt erkannt wird, als defekter Speicher bestimmt wird, Wechsel des Speicher-Controllers in einen Speicherprüfungsmodus in Antwort auf die Erkennung des progressiven Defekts und Durchführen eines Reparaturvorgangs am defekten Speicher durch den Speicher-Controller basierend auf der Ausführung einer Speicherwiederherstellungsfirmware im Speicherprüfungsmodus.
  • Gemäß einigen beispielhaften Ausführungsformen kann ein zur Steuerung eines Speichers eingerichteter Speicher-Controller umfassen: eine Speicherschnittstelle, die dazu eingerichtet ist, Daten an den Speicher zu senden und von diesem zu empfangen, eine Fehlerprüfungs- und -korrekturmaschine (ECC-Engine), die dazu eingerichtet ist, einen Fehler der aus dem Speicher ausgelesenen Daten zu korrigieren, und eine Speicherwiederherstellungsfirmware, die dazu eingerichtet ist, in Antwort auf eine Feststellung des Speicher-Controllers, dass im Speicher ein nicht korrigierbarer Fehler aufgetreten ist, einen Reparaturvorgang am Speicher durchzuführen, wobei es sich bei dem nicht korrigierbaren Fehler um einen Fehler handelt, den die ECC-Engine nicht korrigieren kann.
  • Figurenliste
  • Beispielhafte Ausführungsformen der erfinderischen Konzepte lassen sich anhand der im Zusammenhang mit den Begleitzeichnungen zu lesenden folgenden detaillierten Beschreibung besser verstehen, wobei gilt:
    • 1 ist ein Blockschaltbild zur Darstellung eines Speichersystems gemäß einigen beispielhaften Ausführungsformen;
    • 2 ist ein Blockschaltbild zur Darstellung eines Speicher-Controllers gemäß einigen beispielhaften Ausführungsformen;
    • 3 ist ein Blockschaltbild zur Darstellung eines nichtflüchtigen Speichers gemäß einigen beispielhaften Ausführungsformen;
    • 4A und 4B zeigen flüchtige Speicher gemäß einigen beispielhaften Ausführungsformen;
    • 5 ist ein Flussdiagramm eines Betriebsverfahrens einer Speichervorrichtung, gemäß einigen beispielhaften Ausführungsformen;
    • 6 ist ein Flussdiagramm zur Darstellung einer Betriebsweise zwischen einem Host und einem Speicher-Controller, gemäß einigen beispielhaften Ausführungsformen;
    • 7 ist ein Flussdiagramm zur Darstellung einer Betriebsweise zwischen einem Speicher-Controller, einem nichtflüchtigem Speicher und einem flüchtigen Speicher, gemäß einigen beispielhaften Ausführungsformen;
    • 8 ist ein Flussdiagramm zur Darstellung eines Betriebsweise zwischen einem Speicher-Controller und einem Speicher, gemäß einigen beispielhaften Ausführungsformen;
    • 9 zeigt eine Fehlerkorrekturcode-Betriebsweise (ECC-Betriebsweise) je nach Anzahl der Fehlerbits in den Daten, gemäß einigen beispielhaften Ausführungsformen;
    • 10 ist ein Blockschaltbild zur Darstellung eines Speichersystems gemäß einigen beispielhaften Ausführungsformen;
    • 11 veranschaulicht eine in einem nichtflüchtigen Speicher von 10 enthaltene Speicherzellenanordnung;
    • 12 ist ein Flussdiagramm zur Darstellung einer Betriebsweise zwischen einem Speicher-Controller und einem nichtflüchtigen Speicher, gemäß einigen beispielhaften Ausführungsformen;
    • 13 ist ein Flussdiagramm zur Darstellung einer Betriebsweise zwischen einem Host und einer Speichervorrichtung, gemäß einigen beispielhaften Ausführungsformen;
    • 14 ist ein Flussdiagramm zur Darstellung einer Betriebsweise zwischen einem Host und einer Speichervorrichtung, gemäß einigen beispielhaften Ausführungsformen; und
    • 15 veranschaulicht ein Netzwerksystem gemäß einigen beispielhaften Ausführungsformen.
  • DETAILLIERTE BESCHREIBUNG
  • Nachfolgend werden einige beispielhafte Ausführungsformen der erfinderischen Konzepte unter Bezugnahme auf die Begleitzeichnungen im Detail beschrieben.
  • Es versteht sich, dass Elemente, wozu Vorrichtungen und/oder Betriebsvorgänge gehören können, und/oder deren Eigenschaften hier als „gleich“ oder „identisch“ mit anderen Elementen bezeichnet werden können, und es versteht sich ferner, dass Elemente und/oder deren Eigenschaften, die hier als „gleich“ oder „identisch“ mit anderen Elementen bezeichnet werden, auch „gleich“ oder „identisch“ oder „im Wesentlichen gleich“ oder „im Wesentlichen identisch“ mit den anderen Elementen und/oder deren Eigenschaften sein können. Es ist davon auszugehen, dass Elemente und/oder deren Eigenschaften, die „im Wesentlichen gleich“ oder „im Wesentlichen identisch“ mit anderen Elementen und/oder deren Eigenschaften sind, Elemente und/oder deren Eigenschaften umfassen, die innerhalb von Herstellungstoleranzen und/oder Materialtoleranzen gleich oder identisch mit den anderen Elementen und/oder deren Eigenschaften sind. Elemente und/oder deren Eigenschaften, die gleich oder im Wesentlichen gleich anderen Elementen und/oder deren Eigenschaften sind, können von der Struktur her gleich oder im Wesentlichen gleich, von der Funktion her gleich oder im Wesentlichen gleich und/oder von der Zusammensetzung her gleich oder im Wesentlichen gleich sein.
  • Es versteht sich, dass Elemente, wozu Vorrichtungen und/oder Vorgänge gehören können, und/oder deren Eigenschaften, die hier als „im Wesentlichen“ gleich beschrieben sind, Elemente und/oder deren Eigenschaften, die innerhalb von Herstellungstoleranzen und/oder Materialtoleranzen gleich sind, und/oder Elemente und/oder deren Eigenschaften, die eine relative Größenabweichung von gleich oder kleiner als 10 % aufweisen, umfassen. Es versteht sich zudem, dass unabhängig davon, ob Elemente und/oder deren Eigenschaften „im Wesentlichen“ abgeändert sind, diese Elemente und/oder deren Eigenschaften so zu betrachten sind, dass sie eine Herstellungs- oder Betriebstoleranz (zum Beispiel ±10 %) um die angegebenen Elemente und/oder deren Eigenschaften (zum Beispiel Strukturen, Eigenschaften eines oder mehrerer Elemente, Längen, Entfernungen, parallele oder rechtwinklige Anordnung und so weiter) enthalten.
  • Der Gebrauch der Ausdrücke „etwa“ oder „im Wesentlichen“ in dieser Beschreibung im Zusammenhang mit einem Zahlenwert erfolgt mit dem Zweck, dass der betreffende Zahlenwert eine Toleranz von ±10 % um den angegebenen Zahlenwert aufweist. Wenn Bereiche angegeben werden, umfasst der Bereich alle dazwischen liegenden Werte wie Teilungsschritte von 0,1 %.
  • Es versteht sich, dass einige oder sämtliche der Vorrichtungen, Controller, Speicher, Engines, Schnittstellen, Firmware, Dekodierer, Einheiten, Module und so weiter gemäß einer der hier beschriebenen beispielhaften Ausführungsformen, einschließlich einiger oder sämtlicher Elemente des Speichersystems 10, der Speichervorrichtung 100, der Speichervorrichtung 100', des Hosts 200, des Hosts 200', des Speicher-Controllers 110, des Speicher-Controllers 110', des Speichers 111, der ECC-Engine 113, des nichtflüchtigen Speichers (NVM), des flüchtigen Speichers (VM), der Speicherwiederherstellungsfirmware, des Netzwerksystems 1000, einer Kombination derselben und so weiter, in einer oder mehreren Instanzen einer Verarbeitungsschaltungsanordnung, wie einer Hardware, die logische Schaltungen umfasst, einer Hardware/Software-Kombination wie einer Prozessorausführungssoftware, oder einer Kombination derselben, enthalten sein kann, diese enthalten kann oder durch diese implementiert sein kann. In einigen beispielhaften Ausführungsformen können die eine oder die mehreren Instanzen der Verarbeitungsschaltungsanordnung eine zentrale Verarbeitungseinheit (CPU), einen Anwendungsprozessor (AP), eine arithmetische logische Einheit (ALU), eine grafische Verarbeitungseinheit (GPU), einen digitalen Signalprozessor, einen Mikrocomputer, ein feldprogrammierbares Gate-Array (FPGA), ein System-on-Chip (SoC), eine programmierbare logische Einheit, einen Mikroprozessor oder eine anwendungsspezifische integrierte Schaltung (ASIC) usw. enthalten, ohne hierauf beschränkt zu sein. In einigen beispielhaften Ausführungsformen kann eine(r) der hier beschriebenen Speicher, Speichereinheiten und so weiter eine nichttransitorische computerlesbare Speichervorrichtung, zum Beispiel ein Festkörperlaufwerk (SSD), enthalten, die ein Programm von Anweisungen speichert, und die eine oder mehreren Instanzen einer Verarbeitungsschaltungsanordnung können dazu eingerichtet sein, das Programm von Anweisungen auszuführen, um die Funktionalität einiger oder sämtlicher der Vorrichtungen, Controller, Speicher, Engines, Schnittstellen, Firmware, Dekodierer, Einheiten, Module und so weiter gemäß einer der hier beschriebenen beispielhaften Ausführungsformen, einschließlich eines der hier beschriebenen Verfahren für deren Betrieb, zu realisieren.
  • 1 ist ein Blockschaltbild zur Darstellung eines Speichersystems 10 gemäß einigen beispielhaften Ausführungsformen.
  • Wie in 1 dargestellt, kann das Speichersystem 10 eine Speichervorrichtung 100 und einen Host 200 umfassen, und die Speichervorrichtung 100 kann einen Speicher-Controller 110 und einen nichtflüchtigen Speicher (NVM) 120 umfassen (hier auch austauschbar als nichtflüchtiger Speicherbaustein bezeichnet). Darüber hinaus kann die Speichervorrichtung 100 ferner einen flüchtigen Speicher (VM) 130 umfassen (hier auch austauschbar als flüchtiger Speicherbaustein bezeichnet). In einigen beispielhaften Ausführungsformen kann die Speichervorrichtung 100 eine Mehrzahl von Speichervorrichtungen umfassen. Der Speicher-Controller 110 kann dazu eingerichtet sein, den NVM 120 und den VM 130 zu steuern, beispielsweise um Speicher-Leseoperationen und/oder Speicher-Schreiboperationen an einem oder mehreren von NVM 120 oder VM 130 zu steuern.
  • Es versteht sich, dass Operationen, die hier so beschrieben sind, dass sie von der Speichervorrichtung 100 realisiert werden, mindestens teilweise oder ganz durch den Speicher-Controller 110 realisiert werden können. Jeder Teil der Speichervorrichtung 100 (zum Beispiel der Speicher-Controller 110) kann dazu eingerichtet sein, einige oder sämtliche der Operationen von in Bezug auf beispielhafte Ausführungsformen beschriebenen Verfahren durchzuführen, beispielsweise basierend auf einem Speicher-Controller 110 mit einem Speicher, der ein Programm von Anweisungen speichert, und einer Verarbeitungsschaltungsanordnung, die dazu eingerichtet ist, das Programm von Anweisungen auszuführen, um einige oder sämtliche der Operationen zu realisieren, die hier in Bezug auf beispielhafte Ausführungsformen beschrieben werden.
  • Der Host 200 kann über verschiedene Schnittstellen mit der Speichervorrichtung 100 kommunizieren und kann eine Schreibanforderung, eine Leseanforderung oder dergleichen an die Speichervorrichtung 100 senden. In einigen beispielhaften Ausführungsformen kann der Host 200 einen Server oder einen Personalcomputer (PC) umfassen. Das Host 200 kann in einigen beispielhaften Ausführungsformen mit einem Anwendungsprozessor (AP) oder einem System-on-Chip (SoC) realisiert werden. Der Speicher-Controller 110 kann den NVM 120 so steuern, dass im NVM 120 gespeicherte Daten in Antwort auf eine Leseanforderung des Hosts 200 ausgelesen werden oder Daten in Antwort auf eine Schreibanforderung des Hosts 200 auf den NVM 120 geschrieben werden.
  • Der Speicher-Controller 110 kann einen Speicher 111 aufweisen, und der Speicher 111 kann als interner Speicher, Betriebsspeicher und so weiter bezeichnet werden. Der Speicher 111 kann beispielsweise ein statischer Direktzugriffsspeicher (RAM) SRAM sein, und die nachfolgenden Beschreibungen erfolgen hauptsächlich an einigen beispielhaften Ausführungsformen, in denen der Speicher 111 SRAM ist. Einige beispielhafte Ausführungsformen sind jedoch nicht darauf beschränkt, und der Speicher 111 kann andere VMs oder NVMs außer SRAM umfassen.
  • Der NVM 120 kann eine Speicherzellenanordnung (MCA) 121 aufweisen, in der mehrere Speicherzellen angeordnet sind. Der NVM 120 kann beispielsweise einen dreidimensionalen vertikalen NAND-Flash-Speicher umfassen. In einigen beispielhaften Ausführungsformen kann die MCA 121 Flash-Speicherzellen umfassen, und die Flash-Speicherzellen können zum Beispiel NAND-Flash-Memory-Zellen umfassen. Die erfinderischen Konzepte sind jedoch nicht hierauf beschränkt, und die Speicherzellen können resistive Speicherzellen wie resistiven RAM (ReRAM), Phasenänderungs-RAM (PRAM) und magnetischen RAM (MRAM) umfassen.
  • Der VM 130 kann eine MCA 131 umfassen, in der mehrere Speicherzellen angeordnet sind. Der VM 130 kann beispielsweise dynamischen RAM (DRAM) umfassen, und die nachfolgenden Beschreibungen erfolgen hauptsächlich an einigen beispielhaften Ausführungsformen, in denen der VM 130 DRAM umfasst. Einige beispielhafte Ausführungsformen sind jedoch nicht darauf beschränkt, und der VM 130 kann andere flüchtige Speicher umfassen, die nicht DRAM sind.
  • Auf diese Weise kann die Speichervorrichtung 100 verschiedene Speicher wie den NVM 120, den VM 130 und den Speicher 111 umfassen, und in den Speicherzellen, die in den verschiedenen Speichern enthalten sind, können Defekte nicht nur in der Phase des Herstellungsprozesses, sondern auch in einer Phase der Produktnutzung auftreten. Nachfolgend kann ein in der Herstellungsphase auftretender Defekt als „initialer Defekt“ und ein in der Produktnutzungsphase auftretender Defekt als „progressiver Defekt“ bezeichnet sein. Beispielsweise kann sich infolge des progressiven Defekts des NVM 120 eine Grenzspannungsverteilung der Speicherzelle ändern, und dementsprechend kann sich die Betriebssicherheit des NVM 120 und der den NVM 120 enthaltenden Speichervorrichtung 100 reduzieren.
  • Nach Auslieferung der Speichervorrichtung 100 kann in einigen der verschiedenen in der Speichervorrichtung 100 enthaltenen Speicher ein progressiver Defekt auftreten. Wenn es einen defekten Speicher in der Speichervorrichtung 100 gibt (zum Beispiel in Antwort auf eine Feststellung, beispielsweise durch den Speicher-Controller 110, dass bei einem Speicher in der Speichervorrichtung 100 ein progressiver Defekt aufgetreten ist, so dass der entsprechende Speicher als defekter Speicher bestimmt wird), kann die Speichervorrichtung 100 in Reaktion darauf, gemäß einigen beispielhaften Ausführungsformen, basierend auf der Ausführung einer Speicherwiederherstellungsfirmware FW einen Reparaturvorgang am defekten Speicher durchführen. In einigen beispielhaften Ausführungsformen kann die Speichervorrichtung 100 die Speicherwiederherstellungsfirmware FW aus dem Host 200 empfangen (zum Beispiel downloaden), den Reparaturvorgang am defekten Speicher basierend auf der Ausführung der empfangenen Speicherwiederherstellungsfirmware FW durchführen und den defekten Speicher, an dem der Reparaturvorgang durchgeführt wurde, weiterverwenden.
  • Es versteht sich, dass eine hier beschriebene Feststellung, dass ein progressiver Defekt in einem Speicher der Speichervorrichtung aufgetreten ist, so dass dieser Speicher als defekter Speicher bestimmt wird, austauschbar bezeichnet werden kann als „Erkennung eines progressiven Defekts im Speicher, so dass der Speicher als defekter Speicher bestimmt wird“, als „Erkennung des defekten Speichers“ und so weiter.
  • Bei Erkennung eines defekten Speichers (zum Beispiel in Antwort auf die entsprechende Erkennung durch den Speicher-Controller 110, in Antwort auf eine am Speicher-Controller 110 erfolgende Feststellung, dass an einem Speicher ein progressiver Defekt aufgetreten ist, so dass der entsprechende Speicher als ein defekter Speicher bestimmt wird), kann die Speichervorrichtung 100 Informationen über den progressiven Defekt (zum Beispiel damit verknüpfte Informationen) an den Host 200 übertragen. Die Informationen über den progressiven Defekt können beispielsweise Informationen über das Auftreten des defekten Speichers umfassen. Darüber hinaus können die Informationen über den progressiven Defekt Informationen über einen Typ oder ein Attribut des Speichers, in dem der progressive Defekt aufgetreten ist, umfassen. Anschließend (zum Beispiel in Antwort auf die Erkennung des defekten Speichers und/oder in Antwort auf die Übertragung der Informationen an den Host 200) kann die Speichervorrichtung 100 in einen Firmware-Downloadbarkeitsmodus oder einen Speicherprüfungsmodus wechseln. Der Firmware-Downloadbarkeitsmodus oder der Speicherprüfungsmodus kann bezeichnet werden als Modus, in dem die Speichervorrichtung 100 durch Nutzung eines Inband-Befehls über NVM Express (Non-Volatile Memory Express, NVMe), Serial Advanced Technology Attachment (SATA), Serial Attached SCSI (Small Computer System Interface) (SAS) oder dergleichen angesteuert wird.
  • Wenn beispielsweise die Speichervorrichtung 100 (zum Beispiel in Antwort auf eine Feststellung des Speicher-Controllers 110, dass in mindestens einem der verschieden Speicher, wie im NVM 120, im VM 130 und/oder im Speicher 111 ein Fehlerkorrekturcode (ECC) für einen unkorrigierbaren Fehler (UECC) auftritt, kann die Speichervorrichtung 100 (zum Beispiel der Speicher-Controller 110) den Speicher, in dem der UECC auftritt, als defekten Speicher bestimmen. In einigen beispielhaften Ausführungsformen kann die Speichervorrichtung 100 Informationen über den Defekt, die Informationen über das Attribut oder den Typ des UECC-behafteten Speichers umfassen, an den Host 200 übertragen.
  • Der Host 200 kann die Speicherwiederherstellungsfirmware FW in Antwort auf die aus der Speichervorrichtung empfangenen defektbezogenen Informationen an die Speichervorrichtung 100 bereitstellen (zum Beispiel übertragen), beispielsweise basierend auf der Bearbeitung der Informationen durch den Host zur Auswahl einer besonderen Speicherwiederherstellungsfirmware FW, die einer oder mehreren Teilen der Informationen entspricht. In einigen beispielhaften Ausführungsformen kann die Speicherwiederherstellungsfirmware FW als Firmware zur Durchführung einer Prüfung und Reparatur des defekten Speichers bezeichnet sein. Die Speicherwiederherstellungsfirmware FW kann dazu eingerichtet sein, an einer im defekten Speicher enthaltenen defekten Zelle eine tiefgreifende Attributanalyse durchzuführen, und kann entsprechend die defekte Zelle reparieren.
  • In einigen beispielhaften Ausführungsformen kann der Host 200 die Speicherwiederherstellungsfirmware FW basierend auf dem Attribut oder Typ des defekten Speichers als eine aus unterschiedlichen Exemplaren der Speicherwiederherstellungsfirmware FW ausgewählte besondere Speicherwiederherstellungsfirmware FW auswählen, die in den Informationen über den progressiven Defekt angezeigt werden kann und die basierend auf der Verarbeitung der Informationen durch den Host 200 bestimmt werden kann. Der Host 200 kann die ausgewählte Speicherwiederherstellungsfirmware FW an die Speichervorrichtung 100 bereitstellen (zum Beispiel übertragen). Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und der Host 200 kann die auf verschiedene Speicher anwendbare Speicherwiederherstellungsfirmware FW an die Speichervorrichtung 100 bereitstellen.
  • Wie hier beschrieben, kann eine Übertragung von Daten zwischen zwei Vorrichtungen (zum Beispiel eine Übertragung von Speicherwiederherstellungsfirmware FW vom Host 200 zur Speichervorrichtung 100) basierend darauf, dass die empfangende Vorrichtung auf die Daten der sendenden Vorrichtung zugreift und/oder diese (zum Beispiel per Download) abgreift (Pull), die sendende Vorrichtung die Daten an die empfangende Vorrichtung übermittelt (Push), basierend auf einer Kombination von beidem und so weiter, realisiert werden.
  • Die Speichervorrichtung 100 (zum Beispiel der Speicher-Controller 110) kann die aus dem Host 200 empfangene (zum Beispiel heruntergeladene) Speicherwiederherstellungsfirmware FW speichern. In einigen beispielhaften Ausführungsformen kann die Speichervorrichtung 100 die Speicherwiederherstellungsfirmware FW im Speicher 111 speichern. Die im Speicher 111 gespeicherte Speicherwiederherstellungsfirmware FW kann mehrere unterschiedliche Exemplare der Speicherwiederherstellungsfirmware umfassen, darunter Speicherwiederherstellungsfirmware FW für flüchtigen Speicher (zum Beispiel DRAM) (beispielsweise eine erste Speicherwiederherstellungsfirmware, die zur Ausführung eines ersten Reparaturprogramms an flüchtigen Speichern ausgelegt ist) und/oder Speicherwiederherstellungsfirmware für nichtflüchtigen Speicher (zum Beispiel eine zweite Speicherwiederherstellungsfirmware, die zur Ausführung eines zweiten Reparaturprogramms an nichtflüchtigen Speichern ausgelegt ist). Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und die im Speicher 111 gespeicherte Speicherwiederherstellungsfirmware FW kann eine Speicherwiederherstellungsfirmware umfassen, die für verschiedene Speicher anwendbar ist (zum Beispiel eine erste Speicherwiederherstellungsfirmware, die für die Ausführung eines Reparaturprogramms an flüchtigem und/oder nichtflüchtigem Speicher ausgelegt ist).
  • In einigen beispielhaften Ausführungsformen kann die Speichervorrichtung 100 die Speicherwiederherstellungsfirmware FW im VM 130 speichern. Die im VM 130 gespeicherte Speicherwiederherstellungsfirmware FW kann eine SRAM-Wiederherstellungsfirmware (zum Beispiel eine Speicherwiederherstellungsfirmware, die für die Ausführung eines Reparaturprogramms an SRAM ausgelegt ist) und/oder NVM-Wiederherstellungsfirmware umfassen. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und die im VM 130 gespeicherte Speicherwiederherstellungsfirmware FW kann eine für verschiedene Speicher anwendbare Speicherwiederherstellungsfirmware umfassen.
  • In einigen beispielhaften Ausführungsformen kann die im Speicher 111 gespeicherte Speicherwiederherstellungsfirmware FW identisch mit der im VM 130 gespeicherten Speicherwiederherstellungsfirmware FW sein. Die Speicherwiederherstellungsfirmware FW kann zum Beispiel in den Speicher 111 heruntergeladen werden und dann aus dem Speicher 111 zum VM 130 migriert (zum Beispiel übertragen) werden.
  • Die Speichervorrichtung 100 (zum Beispiel der Speicher-Controller 110) kann basierend auf der Ausführung der Speicherwiederherstellungsfirmware FW eine Prüfung am defekten Speicher durchführen. Die Speichervorrichtung 100 (zum Beispiel der Speicher-Controller 110) kann, basierend auf der Ausführung der Speicherwiederherstellungsfirmware FW, die defekten Zellen im defekten Speicher identifizieren, defekte Attribute der defekten Zellen analysieren und den Reparaturvorgang an den defekten Zellen durchführen. Die Speichervorrichtung 100 (zum Beispiel der Speicher-Controller 110) kann den defekten Speicher regenerieren, indem als Teil der Durchführung des Reparaturvorgangs die defekte Zelle mit einer Redundanzzelle ersetzt wird, und dementsprechend kann der defekte Speicher basierend auf dem durchgeführten Reparaturvorgang weiterverwendet werden. Da die Speichervorrichtung 100 somit nicht ausgetauscht wird, lassen sich Kosten reduzieren.
  • Es versteht es sich, dass der Speicher-Controller 110 in einigen Ausführungsformen dementsprechend so eingerichtet ist, dass er in Antwort darauf, dass während des Betriebs der Speichervorrichtung 100 ein progressiver Defekt in mindestens einem Speicher von NVM 120 oder VM 130 festgestellt wird, so dass der mindestens eine Speicher als defekter Speicher bestimmt wird, basierend auf der Ausführung der Speicherwiederherstellungsfirmware FW einen Reparaturvorgang am defekten Speicher durchführt.
  • Bei Auftreten des progressiven Defekts (zum Beispiel in Antwort auf eine Feststellung, dass der progressive Defekt aufgetreten ist) kann in einigen beispielhaften Ausführungsformen der Speicher-Controller 110 eine entsprechende Speicherausfallsignatur setzen und die Speichervorrichtung 100 zurücksetzen. Wenn darüber hinaus in einigen beispielhaften Ausführungsformen der Reparaturvorgang am defekten Speicher abgeschlossen ist (zum Beispiel in Antwort auf den Abschluss des am defekten Speicher durchgeführten Reparaturvorgangs), kann der Speicher-Controller 110 die Speicherausfallsignatur durch eine Speicherinstandsetzungssignatur ersetzen und die Speichervorrichtung 100 zurücksetzen. Diese Problematik wird unter Verweis auf 13 und 14 noch näher beschrieben.
  • Das Speichersystem 10 kann zum Beispiel mit einem Personalcomputer (PC), einem Datenserver, einem netzgebundenen Speicher (NAS), einem Gerät des Internet der Dinge (IoT) oder einem tragbaren elektronischen Gerät realisiert werden. Das tragbare elektronische Gerät kann einen Laptop-Computer, ein Mobiltelefon, ein Smartphone, einen Tablet-PC, einen persönlichen digitalen Assistenten (PDA), einen digitalen Assistenten für Unternehmen (EDA), einen digitalen Fotoapparat, eine digitale Videokamera, ein Audiogerät, einen tragbaren Multimedia-Player (PMP), ein persönliches Navigationsgerät (PND), einen MP3-Player, eine Handheld-Spielekonsole, ein elektronisches Lesegerät, ein Wearable-Gerät und so weiter umfassen..
  • In einigen beispielhaften Ausführungsformen kann die Speichervorrichtung 100 einen in ein elektronisches Gerät eingebetteten internen Speicher umfassen. Die Speichervorrichtung 100 kann zum Beispiel ein eingebettetes Universal-Flash-Storage-(UFS)-Speichermedium oder eine eingebettete Multimediakarte (eMMC) sein. In einigen beispielhaften Ausführungsformen kann die Speichervorrichtung 100 einen vom elektronischen Gerät abnehmbaren externen Speicher umfassen. Die Speichervorrichtung 100 kann zum Beispiel eine Universal-Flash-Storage-(UFS)-Speicherkarte, eine Compact-Flash-(CF)-Speicherkarte, eine Secure-Digital-(SD)-Karte, eine Mikro-SD-Karte, eine Mini-SD-Karte, eine Extreme-Digital-(xD)-Karte oder einen Speicherstick umfassen.
  • In einigen beispielhaften Ausführungsformen kann die Speichervorrichtung 100 oder eine Mehrzahl von Speichervorrichtungen in einem Datenzentrum verwendet werden. Die Speichervorrichtung 100 oder die Mehrzahl von Speichervorrichtungen kann beispielsweise in einem Speicherserver (zum Beispiel 1200 oder 1200n in 13) oder einem Anwendungsserver (zum Beispiel 1100 oder 1100n in 15) im Datenzentrum enthalten sein, und das Speichersystem 10 kann das Datenzentrum enthalten.
  • Mit dem wachsenden Datenzentrum weitet sich in jüngster Zeit auch das Speichergeschäft in Bezug auf die Speichervorrichtung 100, wie das SSD-Laufwerk, aus. Da aufgrund der Natur des Datenzentrums, das die persönlichen Daten von Kunden verwalten muss, die Sicherheit der Speichervorrichtung 100 von Bedeutung ist, kann es, wenn ein Defekt in der Speichervorrichtung 100 auftritt, schwierig sein, die Speichervorrichtung 100 für eine exakte Fehleranalyse außer Betrieb zu nehmen. Mit der zunehmenden Möglichkeit, dass progressive Defekte infolge von empfindlichen Folgedefekten aus einem Halbleiter-Mikroprozess auftreten, kann außerdem auch die Speichervorrichtung 100 oder das Speichersystem 10, die bzw. das Speicher wie den NVM 120, den VM 130 und den Speicher 111 verwendet, für progressive Defekte anfällig sein.
  • Aufgrund der jedes Jahr rapide wachsenden Leistung der elektronischen Bauelemente, wie einer zentralen Verarbeitungseinheit (CPU), eines Speichers und einer Speichervorrichtung, kann eine Systemarchitektur und ein Kommunikationsprotokoll zudem einen Hochgeschwindigkeitsbetrieb erfordern, damit die Leistung der elektronischen Bauelemente voll genutzt wird. Der Leistungszuwachs der elektronischen Bauelemente kommt durch eine Erhöhung einer anforderungsgerechten Eingabe/Ausgabe-(I/O)-Geschwindigkeit zustande. Im Gegensatz dazu kann es infolge des erhöhten Stromverbrauchs zu einem Wärmeproblem kommen, das die Betriebssicherheit der Speicher, wie des NVM 120, des VM 130 und des Speichers 111, beeinträchtigen kann, und damit ist die Wahrscheinlichkeit relativ hoch, dass die progressiven Defekte infolge des empfindlichen Prozesses beschleunigt werden.
  • 2 ist ein Blockschaltbild zur Darstellung des Speicher-Controllers 110 gemäß einigen beispielhaften Ausführungsformen.
  • Wie in 1 und 2 zusammen zu sehen, kann der Speicher-Controller 110 den Speicher 111, einen Prozessor 112, eine Fehlerprüfungs- und -korrekturmaschine (ECC-Engine) 113, eine Host-Schnittstelle (IF) 114, eine NVM-Schnittstelle 115 und eine VM-Schnittstelle 116 aufweisen, die über einen Bus 117 miteinander kommunizieren können. Der Prozessor 112 kann eine CPU, einen Mikroprozessor oder dergleichen aufweisen und kann den Gesamtbetrieb des Speicher-Controllers 110 steuern.
  • Der Speicher 111, der hier auch als interner Speicher des Speicher-Controllers 110 bezeichnet wird, kann unter der Steuerung des Prozessors 112 arbeiten und kann als Betriebsspeicher, Pufferspeicher, Cachespeicher oder dergleichen verwendet werden. Der Speicher 111 kann beispielsweise als VM, wie DRAM und SRAM, oder als NVM, wie PRAM und Flash-Speicher, realisiert sein. In einigen beispielhaften Ausführungsformen kann der Speicher 111 einen VM umfassen, und es werden hauptsächlich einige beispielhafte Ausführungsformen beschrieben, in denen der Speicher 111 mit SRAM realisiert wird. Die Speicherwiederherstellungsfirmware FW kann in den Speicher 111 geladen werden, und der Prozessor 112 kann auf den Speicher 111 zugreifen und die Speicherwiederherstellungsfirmware FW ausführen. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und die Speicherwiederherstellungsfirmware FW kann mit Hardware implementiert werden. In einigen beispielhaften Ausführungsformen kann der Speicher 111 statischen RAM (SRAM) umfassen, und die Speichervorrichtung 100 (zum Beispiel der Speicher-Controller 110) kann dazu eingerichtet sein, in Antwort auf eine Feststellung, dass ein progressiver Defekt im SRAM (zum Beispiel Speicher 111) aufgetreten ist, einen Reparaturvorgang am SRAM basierend darauf durchzuführen, dass mindestens ein Teil der Speicherwiederherstellungsfirmware FW ausgeführt wird.
  • Die ECC-Engine 113 kann ein Fehlerbit in den Daten erkennen und das erkannte Fehlerbit korrigieren, indem sie einen ECC-Vorgang an den über die NVM-Schnittstelle 115 aus dem NVM 120 empfangenen Daten durchführt. Die ECC-Engine 113 kann dementsprechend dazu eingerichtet sein, einen Fehler von aus einem Speicher (zum Beispiel NVM 120, Speicher 111 und/oder VM 130) ausgelesenen Daten zu korrigieren. Darüber hinaus kann die ECC-Engine 113 das Fehlerbit in den Daten erkennen und das erkannte Fehlerbit basierend darauf korrigieren, dass sie einen ECC-Vorgang an den über die VM-Schnittstelle 116 aus dem VM 130 empfangenen Daten durchführt. In einigen beispielhaften Ausführungsformen kann die ECC-Engine 113 mit Hardware realisiert sein. In einigen beispielhaften Ausführungsformen kann die ECC-Engine 113 mit Software oder Firmware realisiert sein und kann in den Speicher 111 geladen werden.
  • Die Host-Schnittstelle 114 kann eine Schnittstelle zwischen dem Host 200 und dem Speicher-Controller 110 bereitstellen (zum Beispiel kann die Host-Schnittstelle 114 für die Kommunikation mit dem Host 200 eingerichtet sein), und kann eine Schnittstelle beispielsweise entsprechend Universal Serial Bus (USB), Multimedia-Card (MMC), Peripheral Component Interconnect (PCI) express (PCIe), Advanced Technology (AT) Attachment (ATA), Serial ATA (SATA), Parallel ATA (PATA), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), Enhanced Small Disk Interface (ESDI), Integrated Drive Electronics (IDE) oder dergleichen bereitstellen.
  • Die NVM-Schnittstelle 115 kann eine Schnittstelle zwischen dem Speicher-Controller 110 und dem nichtflüchtigen Speicher 120 bereitstellen (zum Beispiel kann die NVM-Schnittstelle 115 für die Kommunikation mit dem NVM 120 eingerichtet sein). Die Speicherwiederherstellungsfirmware FW kann zum Beispiel über die NVM-Schnittstelle 115 zwischen dem Speicher-Controller 110 und dem NVM 120 gesendet und empfangen werden. Darüber hinaus können zum Beispiel Zuordnungstabellen, Schreibdaten und Lesedaten über die NVM-Schnittstelle 115 zwischen dem Speicher-Controller 110 und dem NVM 120 gesendet und empfangen werden. Die Speicherwiederherstellungsfirmware FW kann zum Beispiel dazu eingerichtet sein, durch den Speicher-Controller 110 über die NVM-Schnittstelle 115 aus dem NVM 120 heruntergeladen zu werden.
  • Die VM-Schnittstelle 116 kann eine Schnittstelle zwischen dem Speicher-Controller 110 und dem flüchtigen Speicher 130 bereitstellen (zum Beispiel kann die VM-Schnittstelle 116 für die Kommunikation mit dem VM 130 eingerichtet sein). Die Speicherwiederherstellungsfirmware FW kann zum Beispiel über die VM-Schnittstelle 116 zwischen dem Speicher-Controller 110 und dem VM 130 gesendet und empfangen werden. Darüber hinaus können aus dem Host 200 empfangene Schreibdaten über die VM-Schnittstelle 116 beispielsweise im VM 130 gepuffert werden, und aus dem NVM 120 empfangene Lesedaten können über die VM-Schnittstelle 116 im VM 130 gepuffert werden.
  • Die NVM-Schnittstelle 115 und die VM-Schnittstelle 116 können jeweils oder zusammen als „Speicherschnittstelle“ des Speicher-Controllers 110 bezeichnet werden, die dazu eingerichtet ist, Daten zu beziehungsweise von einem Speicher (zum Beispiel NVM 120 und/oder VM 130) zu senden und zu empfangen.
  • 3 veranschaulicht einen NVM 120A gemäß einigen beispielhaften Ausführungsformen.
  • Wie in 3 dargestellt, kann der NVM 120A einen NAND-Flash-Speicher umfassen und kann in einem einzigen Chip implementiert sein. Der NVM 120A kann ein erstes Die 121A und ein zweites Die 122A umfassen, und sowohl das erste als auch das zweite Die 121A und 122A können eine Mehrzahl von Ebenen PL0 beziehungsweise PL1 aufweisen. Jede Ebene PL kann mehrere Speicherblöcke BLK0 und BLK1 umfassen, und jeder Speicherblock BLK kann mehrere Seiten PG aufweisen.
  • Beim Auftreten einer defekten Seite PG (zum Beispiel in Antwort auf das Eintreten einer defekten Seite PG) kann die defekte Seite beispielsweise basierend darauf, dass die Speichervorrichtung (zum Beispiel der Speicher-Controller 110) die Speicherwiederherstellungsfirmware FW ausführt, mit einer reservierten Seite ersetzt werden, und der defekte Speicher kann entsprechend weiterverwendet werden. Beim Auftreten eines defekten Blocks (zum Beispiel in Antwort auf das Eintreten des defekten Blocks) kann der defekte Block beispielsweise basierend darauf, dass die Speichervorrichtung (zum Beispiel der Speicher-Controller 110) die Speicherwiederherstellungsfirmware FW ausführt, mit einem reservierten Block ersetzt werden, und der defekte Speicher kann entsprechend weiterverwendet werden. Beim Auftreten einer defekten Ebene (zum Beispiel in Antwort auf das Eintreten einer defekten Ebene) kann die defekte Ebene beispielsweise basierend darauf, dass die Speichervorrichtung (zum Beispiel der Speicher-Controller 110) die Speicherwiederherstellungsfirmware FW ausführt, mit einer reservierten Ebene ersetzt werden, und der defekte Speicher kann entsprechend weiterverwendet werden. Beim Auftreten eines defekten Die (zum Beispiel in Antwort auf das Eintreten eines defekten Die) kann das defekte Die beispielsweise basierend darauf, dass die Speichervorrichtung (zum Beispiel der Speicher-Controller 110) die Speicherwiederherstellungsfirmware FW ausführt, mit einem reservierten Die ersetzt werden, und der defekte Speicher kann entsprechend weiterverwendet werden.
  • 4A veranschaulicht den VM 130 gemäß einigen beispielhaften Ausführungsformen.
  • Wie in 4A zu sehen, kann der VM 130 eine MCA 131, einen Reparatur-Controller 132, einen Zeilendecoder 133 und einen Spaltendecoder 134 umfassen. Die Ausgestaltung des VM 130 ist jedoch nicht darauf beschränkt, und der VM 130 kann ferner einen Seitenpufferspeicher, der in der MCA 131 zu speichernde Daten zwischenspeichert oder aus der MCA 131 ausgelesene Daten zwischenspeichert, eine Daten-I/O-Schaltung, welche die im Seitenpufferspeicher gespeicherten Daten nach draußen sendet und empfängt, oder einen Controller, der einen Befehl von draußen empfängt und den Gesamtbetrieb des VM 130 entsprechend dem Befehl steuert, umfassen.
  • Die MCA 131 kann einen Normalbereich 131a, in dem mehrere Speicherzellen angeordnet sind, und einen Redundanzbereich 131b, in dem mehrere Redundanzspeicherzellen angeordnet sind, umfassen. In einigen beispielhaften Ausführungsformen kann der Redundanzbereich 131b entsprechend einer Verlaufsrichtung von Bitleitungen BL neben dem Normalbereich 131a angeordnet sein. Der Normalbereich 131a kann mehrere Speicherzellen enthalten, die in Kreuzungsbereichen mehrerer Wortleitungen WL und der mehreren Bitleitungen BL angeordnet sind, und der Redundanzbereich 131b kann mehrere Redundanzspeicherzellen enthalten, die in den Kreuzungsbereichen mehrerer Redundanz-Wortleitungen RWL und der mehreren Bitleitungen BL angeordnet sind.
  • In mindestens einer der Speicherzellen des Normalbereichs 131a kann ein Defekt auftreten, und eine defekte Zelle, in welcher der Defekt aufgetreten ist, kann als Einzelbit, als schwache Zelle oder als defekte Zelle bezeichnet werden. Die im Normalbereich 131a aufgetretene defekte Zelle kann mit einer im Redundanzbereich 131b enthaltenen Redundanzspeicherzelle ersetzt werden, und dieser Vorgang kann als „Reparaturvorgang“ bezeichnet werden. Durch den Reparaturvorgang können Daten, die auf die defekte Zelle zu schreiben oder aus dieser zu lesen sind, auf die Redundanzspeicherzelle geschrieben oder aus dieser gelesen werden. Dementsprechend versteht es sich, dass die Speichervorrichtung 100 (zum Beispiel der Speicher-Controller 110) dazu eingerichtet sein kann, basierend auf der Ausführung einer Speicherwiederherstellungsfirmware FW einen Reparaturvorgang durchzuführen, basierend darauf, dass mindestens eine defekte Zelle der mehreren Speicherzellen im defekten Speicher (zum Beispiel in dem mindestens einen von NVM 120, VM 130 oder Speicher 111, in dem der progressive Defekt aufgetreten ist, beispielsweise eine defekte Zelle aus den Zellen im Normalbereich 131a), mit einer Redundanzspeicherzelle, hier auch als „Redundanzzelle“ bezeichnet (zum Beispiel eine Zelle aus den Zellen im Redundanzbereich 131b), ersetzt wird.
  • In einigen beispielhaften Ausführungsformen kann der Reparaturvorgang nach einem Zeilenreparaturverfahren durchgeführt werden, bei dem eine Zeile, welche die defekte Zelle im Normalbereich 131a enthält, mit einer Redundanzzeile im Redundanzbereich 131b ersetzt wird. In einigen beispielhaften Ausführungsformen kann eine Reparatureinheit die Wortleitung WL sein, und dementsprechend kann die Wortleitung WL, welche die defekte Zelle enthält, mit der Redundanz-Wortleitung RWL ersetzt werden. In einigen beispielhaften Ausführungsformen kann die Reparatureinheit eine Wortleitungsgruppe sein, und dementsprechend kann die Wortleitungsgruppe, welche die defekte Zelle enthält, mit einer Redundanz-Wortleitungsgruppe ersetzt werden. Die Wortleitungsgruppe kann beispielsweise 2, 4, 8, 16 usw. Wortleitungen entsprechen. Wenn die Reparatureinheit zwei Wortleitungen WL umfasst, können die beiden Wortleitungen WL, die im Normalbereich 131a enthalten sind, der die defekte Zelle enthält, mit den zwei im Redundanzbereich 131b enthaltenen Redundanz-Wortleitungen RWL ersetzt werden.
  • Der Reparatur-Controller 132 kann den Reparaturvorgang an der defekten Zelle der mehreren Speicherzellen entsprechend der Speicherwiederherstellungsfirmware FW steuern. Der Reparatur-Controller 132 kann den Reparaturvorgang steuern, wenn eine Eingangsadresse der Speicherzelle, auf die zugegriffen werden soll, zum Beispiel eine Zeilenadresse RA, der defekten Zelle entspricht. Der Reparatur-Controller 132 kann ein Zeilenübereinstimmungssignal RM erzeugen, wenn die Zeilenadresse RA der defekten Zelle entspricht, und kann das erzeugte Zeilenübereinstimmungssignal RM an den Zeilendecoder 133 bereitstellen. Dementsprechend kann der Zeilendecoder 133 die Redundanz-Wortleitungen RWL in Antwort auf das Zeilenübereinstimmungssignal RM aktivieren.
  • Der Zeilendecoder 133 kann in Antwort auf die Zeilenadresse RA einige Wortleitungen WL aus der Mehrzahl von Wortleitungen WL auswählen und die ausgewählten Wortleitungen WL aktivieren. Darüber hinaus kann der Zeilendecoder 133 in Antwort auf das Zeilenübereinstimmungssignal RM einige Redundanz-Wortleitungen RWL aus der Mehrzahl von Redundanz-Wortleitungen RWL auswählen und die ausgewählten Redundanz-Wortleitungen RWL aktivieren. Der Zeilendecoder 133 kann in Antwort auf das Zeilenübereinstimmungssignal RM die Zeilenadresse RA deaktivieren und die Redundanz-Wortleitung RWL aktivieren. Der Spaltendecoder 134 kann in Antwort auf die Spaltenadresse CA einige Bitleitungen BL aus der Mehrzahl von Bitleitungen BL auswählen.
  • 4B veranschaulicht einen VM 130' gemäß einigen beispielhaften Ausführungsformen.
  • Wie in 4B zu sehen, kann der VM 130' eine MCA 131', einen Reparatur-Controller 132', einen Zeilendecoder 133' und einen Spaltendecoder 134' aufweisen. Der VM 130' gemäß einigen beispielhaften Ausführungsformen kann eine abgewandelte beispielhafte Ausführungsform des VM 130 von 4A sein, und auf eine Wiederholung bereits erfolgter Beschreibungen wird verzichtet.
  • Die MCA 131' kann einen Normalbereich 131a', in dem mehrere Speicherzellen angeordnet sind, und einen Redundanzbereich 131b', in dem mehrere Redundanzspeicherzellen angeordnet sind, umfassen. In einigen beispielhaften Ausführungsformen kann der Redundanzbereich 131b' entsprechend einer Verlaufsrichtung der Bitleitungen BL neben dem Normalbereich 131a' angeordnet sein. Der Normalbereich 131a' kann mehrere Speicherzellen enthalten, die in Kreuzungsbereichen mehrerer Wortleitungen WL und der mehreren Bitleitungen BL angeordnet sind, und der Redundanzbereich 131b' kann mehrere Redundanzspeicherzellen enthalten, die in den Kreuzungsbereichen der mehreren Wortleitungen WL und der mehreren Redundanz-Bitleitungen RBL angeordnet sind.
  • In mindestens einer der Speicherzellen des Normalbereichs 131a' kann ein Defekt auftreten, und eine im Normalbereich 131a' aufgetretene defekte Zelle kann über den Reparaturvorgang durch die im Redundanzbereich 131b' enthaltene Redundanzspeicherzelle ersetzt werden. Durch den Reparaturvorgang können Daten, die auf die defekte Zelle zu schreiben oder aus dieser zu lesen sind, auf die Redundanzspeicherzelle geschrieben oder aus dieser gelesen werden.
  • In einigen beispielhaften Ausführungsformen kann der Reparaturvorgang nach einem Spaltenreparaturverfahren durchgeführt werden, bei dem eine Spalte, welche die defekte Zelle im Normalbereich 131a' enthält, mit einer Redundanzspalte im Redundanzbereich 131b' ersetzt wird. In einigen beispielhaften Ausführungsformen kann eine Reparatureinheit die Bitleitung BL sein, und dementsprechend kann die Bitleitung BL, welche die defekte Zelle enthält, mit der Redundanz-Bitleitung RBL ersetzt werden. In einigen beispielhaften Ausführungsformen kann die Reparatureinheit eine Bitleitungsgruppe sein, und dementsprechend kann die Bitleitungsgruppe, welche die defekte Zelle enthält, mit einer Redundanz-Bitleitungsgruppe ersetzt werden. Die Bitleitungsgruppe kann beispielsweise 2, 4, 8, 16 usw. Bitleitungen entsprechen. Wenn die Reparatureinheit zwei Bitleitungen BL umfasst, können die beiden Bitleitungen BL, die im Normalbereich 131a' enthalten sind, der die defekte Zelle enthält, mit den zwei im Redundanzbereich 131b' enthaltenen Redundanz-Bitleitungen RBL ersetzt werden.
  • Der Reparatur-Controller 132' kann den Reparaturvorgang an einer defekten Zelle aus einer Mehrzahl von Speicherzellen steuern. Der Reparatur-Controller 132' kann den Reparaturvorgang steuern, wenn eine Eingangsadresse der Speicherzelle, auf die zugegriffen werden soll, zum Beispiel eine Spaltenadresse CA, der defekten Zelle entspricht (zum Beispiel in Antwort auf eine Feststellung, dass die Eingangsadresse der defekten Zelle entspricht). Der Reparatur-Controller 132' kann ein Spaltenübereinstimmungssignal CM erzeugen, wenn die Spaltenadresse CA der defekten Zelle entspricht, und kann das erzeugte Spaltenübereinstimmungssignal CM an den Spaltendecoder 134' bereitstellen. Dementsprechend kann der Spaltendecoder 134' die Redundanz-Bitleitungen RBL in Antwort auf das Spaltenübereinstimmungssignal CM aktivieren.
  • Der Zeilendecoder 133' kann in Antwort auf die Zeilenadresse RA einige Wortleitungen WL aus der Mehrzahl von Wortleitungen WL auswählen und die ausgewählten Wortleitungen WL aktivieren. Der Spaltendecoder 134' kann in Antwort auf die Spaltenadresse CA einige Bitleitungen BL aus der Mehrzahl von Bitleitungen BL auswählen und die ausgewählten Bitleitungen BL aktivieren. Darüber hinaus kann der Spaltendecoder 134' in Antwort auf das Spaltenübereinstimmungssignal CM einige Redundanz-Bitleitungen RBL aus der Mehrzahl von Redundanz-Bitleitungen RBL auswählen und die ausgewählten Redundanz-Bitleitungen RBL aktivieren. Der Spaltendecoder 134' kann in Antwort auf das Spaltenübereinstimmungssignal CM die Spaltenadresse CA deaktivieren und die Redundanz-Spaltenleitung RCL aktivieren.
  • 5 ist ein Flussdiagramm eines Betriebsverfahrens einer Speichervorrichtung, gemäß einigen beispielhaften Ausführungsformen. Das Verfahren kann gemäß beliebigen hier beschriebenen beispielhaften Ausführungsformen durch einen beliebigen Teil einer Speichervorrichtung realisiert werden, darunter den Speicher-Controller 110 der in 1 dargestellten Speichervorrichtung 100. Vorgänge, die hier so beschrieben sind, dass sie von der Speichervorrichtung 100 durchgeführt werden können, können durch einen beliebigen Teil der Speichervorrichtung 100, die den Speicher-Controller 110 umfasst, realisiert werden.
  • Wie in 5 zu sehen, kann das Betriebsverfahren einer Speichervorrichtung gemäß einigen beispielhaften Ausführungsformen während des Betriebs einer Speichervorrichtung nach dem erfolgten Versand einer Speichervorrichtung, wie einer Festplatte, das heißt einer SSD, ausgeführt werden. Das Betriebsverfahren der Speichervorrichtung gemäß einigen beispielhaften Ausführungsformen kann beispielsweise mehrere in einer Zeitreihe ausgeführte Vorgänge in der Speichervorrichtung 100 von 1 umfassen. Es folgen Beschreibungen unter Verweis auf die 1, 2 und 5.
  • Die Speichervorrichtung 100 (zum Beispiel der Speicher-Controller 110) kann den progressiven Defekt des Speichers erkennen, der mindestens eines von NVM 120, VM 130 oder Speicher 111 sein kann (S110). Anders ausgedrückt kann die Speichervorrichtung 100 (zum Beispiel der Speicher-Controller 110) feststellen, dass in mindestens einem Speicher von NVM 120, VM 130 oder Speicher 111 ein progressiver Defekt aufgetreten ist, so dass der mindestens eine Speicher als defekter Speicher bestimmt wird. Der Speicher-Controller 110 kann beispielsweise den Fehlerkorrekturcode für einen unkorrigierbaren Fehler (UECC) im NVM 120, VM 130 oder Speicher 111 erkennen. Durch die Durchführung des ECC-Vorgangs an empfangenen Daten aus dem NVM 120, dem VM 130 oder dem Speicher 111 kann die ECC-Engine 113 beispielsweise ein Fehlerbit der Daten erkennen und das erkannte Fehlerbit korrigieren. Wenn (zum Beispiel in Antwort auf das obige Auftreten) ein unkorrigiertes Fehlerbit in der ECC-Engine 113 auftritt, kann der Speicher-Controller 110 in einigen beispielhaften Ausführungsformen den progressiven Defekt des Speichers dadurch erkennen, dass er feststellt, dass das unkorrigierte Fehlerbit ein nicht behebbarer Fehler ist. Anders ausgedrückt kann der Speicher-Controller 110 das Auftreten des progressiven Defekts in einem Speicher ausgehend davon feststellen, dass der Speicher-Controller 110 feststellt, dass ein unkorrigierbarer Fehler im Speicher aufgetreten ist, wobei es sich bei dem unkorrigierbaren Fehler um einen Fehler handelt, den zu korrigieren die ECC-Engine 113 nicht imstande ist.
  • „Erkennen“ oder „Erkennung“ eines aufgetretenen Vorfalls, Ereignisses, Zustands eines oder mehrerer Elemente und so weiter, wie hier beschrieben, kann austauschbar bezeichnet werden als „Bestimmen/Bestimmung“ beziehungsweise „Feststellen/Feststellung“, dass der Vorfall, das Ereignis, der Zustand eines oder mehrerer Elemente und so weiter aufgetreten ist. Die Erkennung eines progressiven Defekts, wie hier beschrieben, kann zum Beispiel austauschbar bezeichnet werden als „Bestimmung“ beziehungsweise „Feststellung“, dass der progressive Defekt aufgetreten ist.
  • Die Speichervorrichtung 100 (zum Beispiel der Speicher-Controller 110) kann in einen Speicherprüfungsmodus wechseln (S130). Die Speichervorrichtung 100 kann in Antwort auf die Erkennung des progressiven Defekts in S110 in den Speicherprüfungsmodus wechseln. In einigen beispielhaften Ausführungsformen kann der Speicherprüfungsmodus einem Firmware-Downloadbarkeitsmodus entsprechen, und der Speicher-Controller 110 kann in den Speicherprüfungsmodus oder Firmware-Downloadbar-Modus wechseln, um die Speicherwiederherstellungsfirmware FW aus dem Host 200 herunterzuladen, und das wird später unter Verweis auf 6 beschrieben. In einigen beispielhaften Ausführungsformen kann der Speicherprüfungsmodus dem Firmware-Downloadbar-Modus entsprechen, und der Speicher-Controller 110 kann die Speicherwiederherstellungsfirmware FW aus dem NVM 120 empfangen (zum Beispiel herunterladen). Dies wird später unter Verweis auf 11 bis 13 noch beschrieben.
  • Die Speichervorrichtung 100 (zum Beispiel der Speicher-Controller 110) kann basierend auf der Ausführung der Speicherwiederherstellungsfirmware FW den Reparaturvorgang am Speicher durchführen, in dem das Auftreten des progressiven Defekts festgestellt wurde (S150). Die Speichervorrichtung 100 kann den Reparaturvorgang in Antwort auf die Erkennung des progressiven Defekts in S110, den Wechsel zum Prüfmodus in S130 und/oder den Empfang (zum Beispiel Download) der Speicherwiederherstellungsfirmware FW durchführen. Die Speichervorrichtung 100 (zum Beispiel der Speicher-Controller 110) kann in Antwort auf eine Feststellung in S110, dass ein progressiver Defekt in mindestens einem Speicher von NVM 120, VM 130 oder Speicher 111 aufgetreten ist, so dass der mindestens eine Speicher als defekter Speicher bestimmt wird, einen Reparaturvorgang am defekten Speicher basierend auf der Ausführung der Speicherwiederherstellungsfirmware FW durchführen. Beispielsweise kann der Speicher-Controller 110 den NVM 120, den VM 130 oder den Speicher 111 basierend auf der Ausführung der Speicherwiederherstellungsfirmware FW regenerieren. Beim Durchführen des Reparaturvorgangs in S150 kann sich der Speicher-Controller 110 im Prüfungsmodus befinden, in den er in S130 gewechselt ist, so dass die Durchführung des Reparaturvorgangs in S150 die Ausführung der Speicherwiederherstellungsfirmware FW im Speicherprüfungsmodus umfasst. Der Speicher-Controller 110 kann eine Prüfung am NVM 120, VM 130 oder Speicher 111 durchführen, die defekten Attribute analysieren und die defekte Zelle reparieren. Diese Durchführung in S150 kann in Antwort auf S110 erfolgen, unabhängig davon, ob S130 durchgeführt wird.
  • Bei Erkennung des progressiven Defekts (zum Beispiel in Antwort auf eine Feststellung, dass der progressive Defekt aufgetreten ist) kann das oben beschriebene Betriebsverfahren in einigen beispielhaften Ausführungsformen ferner einen Betriebsvorgang umfassen, in dem der Speicher-Controller 110 eine entsprechende Speicherausfallsignatur setzt und die Speichervorrichtung 100 zurücksetzt. Das oben beschriebene Betriebsverfahren kann in einigen beispielhaften Ausführungsformen bei Abschluss des Reparaturvorgangs (zum Beispiel in Antwort auf eine Feststellung, dass der Reparaturvorgang am defekten Speicher abgeschlossen ist) darüber hinaus einen Betriebsvorgang umfassen, in dem der Speicher-Controller 110 die Speicherausfallsignatur zur Speicherreparatursignatur korrigiert (zum Beispiel die Speicherausfallsignatur in eine Speicherinstandsetzungssignatur ändert) und die Speichervorrichtung 100 zurücksetzt. Dies ist unter Verweis auf 13 und 14 näher beschrieben.
  • Bei Auftreten eines Defekts auf einer in einem Datenzentrum oder einem Serversystem verwendeten Festplatte, das heißt in der Speichervorrichtung 100 (zum Beispiel in Antwort auf das Auftreten eines Defekts), wie oben beschrieben, kann die Speichervorrichtung 100 gemäß einigen beispielhaften Ausführungsformen basierend auf der Durchführung einer Prüfung und Reparatur des Speichers regeneriert werden. Wenn die Speichervorrichtung 100 den UECC des Speichers identifiziert (zum Beispiel in Antwort darauf, dass die Speichervorrichtung 100 den UECC des Speichers identifiziert), muss die Speichervorrichtung 100 nicht in einen Defektmodus wechseln, sondern kann in einen Speicherprüfungsmodus gehen, in dem die Speicherwiederherstellungsfirmware FW empfangen (zum Beispiel heruntergeladen) werden kann.
  • Der Host 200, das heißt ein Datenzentrum-Host, kann die Speicherwiederherstellungsfirmware FW an die Speichervorrichtung 100 übertragen, um den Speicher zu prüfen. Diese Übertragung kann umfassen, dass die Speichervorrichtung 100 (zum Beispiel der Speicher-Controller 110) die Speicherwiederherstellungsfirmware FW aus dem Host 200 herunterlädt. Diese Übertragung der Speicherwiederherstellungsfirmware FW an die Speichervorrichtung 100 kann in Antwort darauf erfolgen, dass der Host 200 Informationen über den progressiven Defekt aus der Speichervorrichtung 100 empfängt, beispielsweise basierend auf der Verarbeitung der Informationen zum Bestimmen einer mit dem Defekt verknüpften besonderen Speicherwiederherstellungsfirmware FW (zum Beispiel einer besonderen Speicherwiederherstellungsfirmware FW, die einem besonderen Typ oder Attribut des Speichers, in dem der progressive Defekt aufgetreten ist, das heißt des defekten Speichers, entspricht), Auswahl der besonderen Speicherwiederherstellungsfirmware FW und Übertragung der ausgewählten Speicherwiederherstellungsfirmware FW an die Speichervorrichtung 100 und/oder Freigabe der Speichervorrichtung 100 für das Herunterladen der selektiven Speicherwiederherstellungsfirmware FW aus dem Host 200. In einigen beispielhaften Ausführungsformen kann der Host 200 eine Datenbank von verschiedenen separaten Exemplaren der Speicherwiederherstellungsfirmware FW speichern, die unterschiedlichen Typen oder Attributen eines oder mehrerer Speicher entsprechen. Der Host 200 kann eine Lookup-Tabelle oder andere Datenbank führen, die Beziehungen (zum Beispiel empirisch bestimmte Beziehungen) zwischen besonderen Typen oder Attributen von defekten Speichern und entsprechenden besonderen Exemplaren der Speicherwiederherstellungsfirmware FW speichert. Der Host 200 kann die einen progressiven Defekt betreffenden empfangenen Informationen verarbeiten, wobei in den Informationen Informationen enthalten sind, die mit einem besonderen Typ oder Attribut eines Speichers, in dem der Defekt aufgetreten ist, (zum Beispiel des defekten Speichers) verknüpft sind, um den besonderen Typ oder das besondere Attribut zu bestimmen, auf die Lookup-Tabelle oder andere Datenbank zuzugreifen, um eine entsprechende besondere Speicherwiederherstellungsfirmware FW aus einer Mehrzahl von Speicherwiederherstellungsfirmware FW zu bestimmen oder auszuwählen, und die entsprechende besondere Speicherwiederherstellungsfirmware FW an die Speichervorrichtung 100 (zum Beispiel den Speicher-Controller 110) bereitzustellen, was die Übertragung der besonderen Speicherwiederherstellungsfirmware FW und/oder die Freigabe der Speichervorrichtung 100 für das Herunterladen der besonderen Speicherwiederherstellungsfirmware FW aus dem Host 200 in Antwort auf die Bestimmung oder Auswahl der entsprechenden Speicherwiederherstellungsfirmware FW umfassen kann. Nach Durchführung der Speicherprüfung kann die Speicherwiederherstellungsfirmware FW die defekte Zelle identifizieren, die Attribute analysieren, die Reparatur durchführen und zusammen mit einem Attributfehleranalyseprotokoll ein Prüfergebnis an den Host 200 zurücksenden. Auf diese Weise kann durch die Reparatur des defekten Speichers die defekte Festplatte als normale Festplatte verwendet werden. Das Datenzentrum kann somit mangelhafte Festplatten reduzieren, und ein Festplattenhersteller kann eine betriebsinterne Mängeluntersuchung in einer Kundenumgebung durchführen.
  • 6 ist ein Flussdiagramm zur Darstellung einer Betriebsweise zwischen dem Host 200 und dem Speicher-Controller 110, gemäß einigen beispielhaften Ausführungsformen.
  • Wie in 6 dargestellt, kann der Speicher-Controller 110 einen progressiven Defekt im Speicher (210) erkennen (zum Beispiel feststellen, dass im Speicher ein progressiver Defekt aufgetreten ist, so dass der Speicher als defekter Speicher bestimmt wird). In Antwort darauf kann der Speicher-Controller 110 die Informationen über den (zum Beispiel in Verknüpfung mit dem) progressiven Defekt, die Informationen umfassen können, die mit einem besonderen Typ oder Attribut des defekten Speichers, in dem der progressive Defekt aufgetreten ist, verknüpft sind, an den Host 200 übertragen (S220), zum Beispiel in Antwort auf die Erkennung des progressiven Defekts in S210. Der Speicher-Controller 110 kann dann, in Antwort auf die Ausführung von S210 und/oder S220, in den Firmware-Downloadbarkeitsmodus wechseln (S230), so dass der Speicher-Controller 110 in einem Firmware-Downloadbarkeitsmodus arbeitet. Gemäß einer beispielhaften Ausführungsform kann eine Abfolge der Betriebsvorgänge S220 und S230 geändert werden. In einigen beispielhaften Ausführungsformen können die Betriebsvorgänge S220 und S230 im Wesentlichen gleichzeitig durchgeführt werden.
  • Der Host 200 kann die Speicherwiederherstellungsfirmware FW an den Speicher-Controller 110 übertragen (S240), beispielsweise in Antwort auf den Empfang der übertragenen Informationen in S220. Dementsprechend kann der Speicher-Controller 110 in S240 die Speicherwiederherstellungsfirmware FW in einem Firmware-Downloadbarkeitsmodus aus dem Host 200 empfangen (herunterladen), wobei die Speicherwiederherstellungsfirmware FW basierend darauf, dass die mit dem progressiven Defekt verknüpften Informationen in S220 an den Host übertragen wurden, in S240 vom Speicher-Controller 110 empfangen (zum Beispiel heruntergeladen) wird (während der Speicher-Controller 110 beispielsweise in einem Firmware-Downloadbarkeitsmodus arbeitet, zu dem er in S230 gewechselt ist). Der Empfang in S240 kann darauf basieren, dass der Host 200 die Informationen in S220 empfängt und die Informationen verarbeitet. Der Host 200 kann die in S220 empfangenen Informationen verarbeiten, um einen besonderen Typ oder ein besonderes Attribut des Speichers, in dem der progressive Defekt aufgetreten ist, zu bestimmen, und kann in Antwort darauf eine besondere Speicherwiederherstellungsfirmware FW, die dem besonderen Typ oder Attribut des Speichers, in dem der progressive Fehler aufgetreten ist, entspricht, bestimmen oder auswählen und dann übertragen, wobei die besondere entsprechende Speicherwiederherstellungsfirmware FW, basierend auf dem Zugriff auf eine Lookup-Tabelle oder Datenbank, die Typen oder Attribute des Speichers, in dem ein progressiver Defekt aufgetreten sein kann, mit entsprechenden Exemplaren der Speicherwiederherstellungsfirmware FW in Beziehung setzt, vom Host 200 bestimmt oder ausgewählt werden kann. Der Speicher-Controller 110 kann die Speicherwiederherstellungsfirmware FW (zum Beispiel die in S240 aus dem Host heruntergeladene Speicherwiederherstellungsfirmware FW) für die Speicherreparatur ausführen (S250), beispielsweise in Antwort auf das Empfangen (zum Beispiel Herunterladen) der Speicherwiederherstellungsfirmware FW in S240. Diese Ausführung kann das Herunterladen der empfangenen Speicherwiederherstellungsfirmware FW, beispielsweise in den Speicher 111, umfassen. Der Speicher-Controller 110 kann, beispielsweise basierend auf der Ausführung der in den Speicher 111 heruntergeladenen Speicherwiederherstellungsfirmware FW, den defekten Speicher reparieren. Basierend auf der Ausführung der Speicherwiederherstellungsfirmware FW kann ein Prüfergebnis erzeugt werden.
  • Der Speicher-Controller 110 kann ein Prüfergebnis an den Host 200 übertragen (S260), zum Beispiel in Antwort auf die Ausführung der Speicherwiederherstellungsfirmware FW in S250. Der Speicher-Controller 110 kann beispielsweise das Prüfergebnis der Ausführung der Speicherwiederherstellungsfirmware FW und ein Ergebnis der Analyse der Attribute der defekten Zelle erhalten, und die erhaltenen Ergebnisse können in dieser Phase dem Prüfergebnisprotokoll entsprechen. Der Speicher-Controller 110 kann im Rahmen der Übertragung der Speicherwiederherstellungsfirmware FW in S260 das Prüfergebnisprotokoll an den Host 200 bereitstellen. Nach dem Vorgang S260 (zum Beispiel in Antwort auf die Durchführung des Reparaturprogramms basierend auf der Ausführung der Speicherwiederherstellungsfirmware FW in S250) kann die Speichervorrichtung 100 formatiert werden, um den defekten Speicher weiterzuverwenden.
  • 7 ist ein Flussdiagramm zur Darstellung einer Betriebsweise zwischen dem Speicher-Controller 110, dem NVM 200 und dem VM 130, gemäß einigen beispielhaften Ausführungsformen.
  • Wie in 7 dargestellt, kann der Speicher-Controller 110 einen progressiven Defekt im Speicher erkennen, so dass der Speicher als defekter Speicher bestimmt wird (S310). Der Speicher-Controller 110 kann beispielsweise den Fehlerkorrekturcode für unkorrigierbare Fehler (UECC) im NVM 120, VM 130 oder Speicher 111 erkennen. Der Speicher-Controller 110 kann in Antwort auf die Erkennung von S130 in den Speicherprüfungsmodus wechseln (S320). Der Speicher-Controller 110 kann, in Antwort auf die Erkennung in S310 und/oder den Wechsel zum Speicherprüfungsmodus in S320, die Speicherwiederherstellungsfirmware FW für die Speicherreparatur ausführen (S330).
  • Der Speicher-Controller 110 kann einen Befehl CMD und eine Adresse ADDR für die Speicherreparatur an den NVM 120 übertragen (S340), zum Beispiel in Antwort auf die Ausführung der Speicherwiederherstellungsfirmware FW in S330. Der NVM 120 kann den NVM-Reparaturvorgang durchführen (S345), zum Beispiel in Antwort auf den Empfang des Befehls CMD und der Adresse ADDR für die Speicherreparatur in S340. Der Speicher-Controller 110 kann den Befehl CMD und die Adresse ADDR für die Speicherreparatur an den VM 130 übertragen (S350), zum Beispiel in Antwort auf die Ausführung der Speicherwiederherstellungsfirmware FW in S330. Der VM 130 kann den VM-Reparaturvorgang durchführen (S355), zum Beispiel in Antwort auf den Empfang des Befehls CMD und der Adresse ADDR für die Speicherreparatur in S350. In einigen beispielhaften Ausführungsformen können die Betriebsvorgänge S350 und S355 früher als die Betriebsvorgänge S340 und S345 durchgeführt werden. In einigen beispielhaften Ausführungsformen kann eine Abfolge der Betriebsvorgänge S340 und S350 geändert werden, und die Betriebsvorgänge S345 und S355 können im Wesentlichen gleichzeitig durchgeführt werden. In einigen beispielhaften Ausführungsformen können die Betriebsvorgänge S340 und S345 oder S350 und S355 in Abhängigkeit vom Typ des defekten Speichers weggelassen werden.
  • Der Speicher-Controller 110 kann die im Speicher 111 gespeicherte Speicherwiederherstellungsfirmware FW auf den VM 130 migrieren (S360). Der Speicher-Controller 110 kann auf den VM 130 zugreifen, um einen SRAM-Reparaturvorgang durchzuführen (S370), zum Beispiel in Antwort auf die Migration der Speicherwiederherstellungsfirmware FW auf den VM 130 in S360. In einigen beispielhaften Ausführungsformen können die Betriebsvorgänge S360 und S370 in Abhängigkeit vom Typ des defekten Speichers weggelassen werden. In einigen beispielhaften Ausführungsformen können die Betriebsvorgänge S360 und S370 früher als die Betriebsvorgänge S340 und S345 durchgeführt werden. In einigen beispielhaften Ausführungsformen können die Betriebsvorgänge S345, S355 und S370 im Wesentlichen gleichzeitig durchgeführt werden.
  • 8 ist ein Flussdiagramm zur Darstellung einer Betriebsweise zwischen dem Speicher-Controller 110 und einem Speicher MEM, gemäß einigen beispielhaften Ausführungsformen.
  • Wie in 8 dargestellt, kann der Speicher MEM einen Datenlesevorgang durchführen (S410). Der Speicher MEM kann beispielsweise dem NVM 120, dem VM 130 oder dem Speicher 111 von 1 entsprechen. Der Speicher MEM kann gelesene Daten an den Speicher-Controller 110 übertragen (S420).
  • Der Speicher-Controller 110 kann bestimmen, ob die Daten beschädigt sind (S430), zum Beispiel in Antwort auf den Empfang der gelesenen Daten aus dem Speicher MEM in S420. Der Speicher-Controller 110 kann bestimmen, ob die Daten wiederherstellbar sind (S440). Wenn die Bestimmung ergibt, dass die Daten wiederherstellbar sind (S440=JA), kann der Speicher-Controller 110 in Antwort darauf die gelesenen Daten an den Host 200 übertragen (S442). Wenn die Bestimmung hingegen ergibt, dass die Daten wiederherstellbar sind (S440=JA), kann der Speicher-Controller 110 in Antwort darauf in den Speicherprüfungsmodus wechseln. Beschreibungen zu den Betriebsvorgängen S430 und S440 werden nachstehend unter Verweis auf 9 gegeben.
  • Die Speicherwiederherstellungsfirmware FW kann zur Speicherreparatur ausgeführt werden (S460), zum Beispiel in Antwort darauf, dass der Speicher-Controller 110 in S450 in den Speicherprüfungsmodus wechselt. Der Speicher-Controller 110 kann den Befehl CMD und die Adresse ADDR für die Speicherreparatur an den Speicher MEM übertragen (S470), zum Beispiel in Antwort auf die Ausführung der Speicherwiederherstellungsfirmware FW in S460. Der Speicher MEM kann den Speicherreparaturvorgang durchführen (S480), zum Beispiel in Antwort auf den Empfang des Befehls CMD und der Adresse ADDR für die Speicherreparatur am Speicher MEM in S470.
  • 9 zeigt die ECC-Betriebsweise je nach Anzahl (hier austauschbar auch als „Menge“ bezeichnet) von Fehlerbits in den Daten, gemäß einigen beispielhaften Ausführungsformen.
  • Wie in den 2, 8 und 9 zusammen dargestellt, kann ein ECC-zulässiger Bereich der ECC-Engine 133 ein Fehlerbit betragen. Ein Auftreten des Ein-Bit-Fehlers in einer physischen Adresse PPNa kann beispielsweise dazu führen, dass die physische Adresse PPNa in eine erste beschädigte physische Adresse PPNa' geändert wird. Da die Anzahl der Fehlerbits eins beträgt, kann in einigen beispielhaften Ausführungsformen die ECC-Engine 113 den Ein-Bit-Fehler korrigieren und dementsprechend kann die erste beschädigte physische Adresse PPNa' in die normale physische Adresse PPNa zurückgeändert werden.
  • Das Auftreten eines Zwei-Bit-Fehlers in der physischen Adresse PPNa als weiteres Beispiel kann andererseits dazu führen, dass die physische Adresse PPNa in eine zweite beschädigte physische Adresse PPNa'' geändert wird. Da die Anzahl der Fehlerbits zwei beträgt, kann es in einigen beispielhaften Ausführungsformen sein, dass die ECC-Engine 113 den Zwei-Bit-Fehler nicht korrigiert und den Zwei-Bit-Fehler nur erkennt. Dementsprechend kann die zweite beschädigte physische Adresse PPNa'' unwiederherstellbaren Daten entsprechen.
  • 10 ist ein Blockschaltbild zur Darstellung eines Speichersystems 10' gemäß beispielhaften Ausführungsformen.
  • Wie in 10 dargestellt, kann das Speichersystem 10' eine Speichervorrichtung 100' und einen Host 200' umfassen, und die Speichervorrichtung 100' kann einen Speicher-Controller 110' und einen NVM 120' umfassen. Die Speichervorrichtung 100' kann darüber hinaus einen VM 130' aufweisen. Der VM 130' kann beispielsweise DRAM umfassen. Die Speichervorrichtung 100' kann zum Beispiel mehrere Speichervorrichtungen umfassen. Das Speichersystem 10' gemäß einigen beispielhaften Ausführungsformen kann einem abgewandelten Beispiel des Speichersystems 10 von 1 entsprechen, und die oben unter Verweis auf 1 und 2 gegebenen Beschreibungen können auch auf einige beispielhafte Ausführungsformen angewendet werden.
  • Gemäß beispielhaften Ausführungsformen kann die Speichervorrichtung 100' mehrere Exemplare der Speicherwiederherstellungsfirmware FW im Vorfeld speichern. Die mehreren Exemplare der Speicherwiederherstellungsfirmware FW können zum Beispiel vor dem Versand der Speichervorrichtung 100' im Speicher-Controller 110' oder im NVM 120' gespeichert werden. Zum Beispiel kann die MCA 121' des NVM 120' die mehreren Exemplare der Speicherwiederherstellungsfirmware FW speichern. Wenn in der Speichervorrichtung 100' ein defekter Speicher auftritt (zum Beispiel in Antwort auf eine Feststellung, dass ein defekter Speicher in der Speichervorrichtung 100' aufgetreten ist), muss dementsprechend die Speichervorrichtung 100' keine Speicherwiederherstellungsfirmware FW aus dem Host 200' beziehen, sondern kann den defekten Speicher basierend auf der Ausführung eines der vorab in ihr gespeicherten Exemplare der Speicherwiederherstellungsfirmware FW regenerieren. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und die Speichervorrichtung 100' kann ein einziges Exemplar der Speicherwiederherstellungsfirmware FW vorab speichern.
  • Die Speichervorrichtung 100' kann bei (zum Beispiel in Antwort auf die) Erkennung eines defekten Speichers in den Speicherprüfungsmodus wechseln. In einigen beispielhaften Ausführungsformen kann der Speicherprüfungsmodus eine Betriebsart sein, bei der eine Speicherwiederherstellungsfirmware FWa oder FWb ausgeführt wird, die durch Laden der in der Speichervorrichtung 100 vorab gespeicherten Speicherwiederherstellungsfirmware FWa oder FWb geladen wird. Wenn beispielsweise die Speichervorrichtung 100' einen UECC erkennt (zum Beispiel in Antwort darauf, dass die Speichervorrichtung 100' den UECC erkennt), kann der Speicher, in dem der nicht behebbare Fehler aufgetreten ist, als defekter Speicher (zum Beispiel durch die Speichervorrichtung 100') bestimmt werden.
  • In einigen beispielhaften Ausführungsformen kann die Speichervorrichtung 100' aus den mehreren Exemplaren der vorab gespeicherten Speicherwiederherstellungsfirmware FW eine besondere Speicherwiederherstellungsfirmware FWa oder FWb ausgehend vom Attribut oder Typ des defekten Speichers auswählen und kann die ausgewählte besondere Speicherwiederherstellungsfirmware FWa oder FWb ausführen. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und die Speichervorrichtung 100' kann eine für alle verschiedenen Speicher anwendbare Speicherwiederherstellungsfirmware FW ausführen. In einigen beispielhaften Ausführungsformen kann die Speicherwiederherstellungsfirmware FW zum Beispiel eine erste Speicherwiederherstellungsfirmware (zum Beispiel FWa), die für den NVM 120' anwendbar ist (zum Beispiel kann die erste Speicherwiederherstellungsfirmware dazu eingerichtet sein, einen Reparaturvorgang am NVM 120' auszuführen), und eine zweite Speicherwiederherstellungsfirmware (zum Beispiel FWb), die für den VM 130' anwendbar ist (zum Beispiel kann die zweite Speicherwiederherstellungsfirmware dazu eingerichtet sein, einen separaten Reparaturvorgang am VM 130' auszuführen) und sich von der FWa unterscheidet, umfassen, so dass der Speicher-Controller 110' dazu eingerichtet sein kann, einen Reparaturvorgang basierend auf der Ausführung der ersten Speicherwiederherstellungsfirmware (zum Beispiel FWa) in Antwort auf eine Feststellung, dass der progressive Defekt im NVM 120' aufgetreten ist, auszuführen, und der Speicher-Controller 110' dazu eingerichtet sein kann, einen Reparaturvorgang basierend auf der Ausführung der zweiten Speicherwiederherstellungsfirmware (zum Beispiel FWb) in Antwort auf eine Feststellung, dass der progressive Defekt im VM 130' aufgetreten ist, auszuführen. In einigen beispielhaften Ausführungsformen kann die erste Speicherwiederherstellungsfirmware (zum Beispiel FWa) sowohl für den NVM 120' als auch für den VM 130' anwendbar sein (das heißt, die erste Speicherwiederherstellungsfirmware kann dazu eingerichtet sein, sowohl einen Reparaturvorgang am NVM 120' als auch einen Reparaturvorgang am VM 130' durchzuführen), so dass der Speicher-Controller 110' dazu eingerichtet sein kann, den Reparaturvorgang basierend auf der Ausführung der ersten Speicherwiederherstellungsfirmware (zum Beispiel FWa) in Antwort auf eine Feststellung, dass der progressive Defekt im VM 130' aufgetreten ist, durchzuführen. In einigen beispielhaften Ausführungsformen kann die Speicherwiederherstellungsfirmware FW eine dritte Speicherwiederherstellungsfirmware (zum Beispiel FWc) umfassen, die für den Speicher 111' anwendbar ist, der statischen RAM (SRAM) umfassen kann, und der Speicher-Controller 110' kann dazu eingerichtet sein, in Antwort auf eine Feststellung, dass ein progressiver Defekt im SRAM aufgetreten ist (dass zum Beispiel ein separater progressiver Defekt im SRAM eingetreten ist), einen Reparaturvorgang (zum Beispiel einen separaten Reparaturvorgang) am SRAM basierend auf der Ausführung der dritten Speicherwiederherstellungsfirmware (zum Beispiel FWc) durchzuführen.
  • In einigen beispielhaften Ausführungsformen kann die Speichervorrichtung 100' die Speicherwiederherstellungsfirmware FW in den Speicher 111' laden. Die in den Speicher 111 geladene Speicherwiederherstellungsfirmware FW kann eine DRAM-Wiederherstellungsfirmware oder NVM-Wiederherstellungsfirmware umfassen. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und die in den Speicher 111' geladene Speicherwiederherstellungsfirmware FW kann eine für verschiedene Speicher anwendbare Speicherwiederherstellungsfirmware FW umfassen.
  • In einigen beispielhaften Ausführungsformen kann die Speichervorrichtung 100' die Speicherwiederherstellungsfirmware FW in den VM 130' laden. Die in den VM 130' geladene Speicherwiederherstellungsfirmware FWb kann eine SRAM-Wiederherstellungsfirmware oder NVM-Wiederherstellungsfirmware umfassen. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und die in den Speicher VM 130' geladene Speicherwiederherstellungsfirmware FWb kann eine für alle verschiedenen Speicher anwendbare Speicherwiederherstellungsfirmware FW umfassen.
  • Die Speichervorrichtung 110' kann basierend auf der Ausführung der geladenen Speicherwiederherstellungsfirmware FWa oder FWb eine Prüfung am defekten Speicher durchführen. Die Speichervorrichtung 100' kann, basierend auf der Ausführung der Speicherwiederherstellungsfirmware FWa oder FWb, die defekten Zellen im defekten Speicher identifizieren, defekte Attribute analysieren und den Reparaturvorgang an den defekten Zellen durchführen. Die Speichervorrichtung 100' kann den defekten Speicher regenerieren, indem die defekte Zelle mit einer Redundanzzelle ersetzt wird und dementsprechend der defekte Speicher weiterverwendet werden kann. Da die Speichervorrichtung 100' also nicht ausgetauscht werden muss, können die Kosten reduziert werden.
  • 11 zeigt eine MCA 121', die in dem NVM' 120 in 10 enthalten ist.
  • Wie in 11 zu sehen, kann die Speicherzellenanordnung MCA 121' in einen Metabereich MA und einen Speicherbereich SA geteilt sein. Der Metabereich MA kann mehrere Exemplare (zum Beispiel Einheiten, Instanzen, Artikel oder dergleichen) der Speicherwiederherstellungsfirmware FWa, FWb und FWc speichern. Der Metabereich MA kann darüber hinaus mehrere Zuordnungstabellen umfassen, in denen Mapping-Informationen über die im Speicherbereich SA zu speichernden Nutzerdaten gespeichert sind. Der Speicherbereich SA kann zudem physisch oder logisch in verschiedene Einheiten unterteilt sein. Der Speicherbereich SA kann beispielsweise mehrere Ebenen PL1 und PL2 umfassen, und jede der mehreren Ebenen PL1 und PL2 kann mehrere Blöcke BLK1 und BLK2 umfassen. Jeder der mehreren Blöcke BLK1 und BLK2 kann eine Löscheinheit des NVM 120' sein.
  • 12 ist ein Flussdiagramm zur Darstellung einer Betriebsweise zwischen dem Speicher-Controller 110' und dem NVM 120', gemäß einigen beispielhaften Ausführungsformen.
  • Wie in 10 bis 12 zusammen dargestellt, kann der Speicher-Controller 110' einen progressiven Defekt im Speicher erkennen (S510). Anders ausgedrückt kann der Speicher-Controller 110' feststellen, dass ein progressiver Defekt in einem Speicher, der mindestens einer von NVM 120', VM 130' oder Speicher 111' sein kann, aufgetreten ist. Der Speicher-Controller 110' kann beispielsweise den UECC im NVM 120', VM 130' oder Speicher 111' erkennen. Der Speicher-Controller 110' kann eine Speicherwiederherstellungsfirmware FW entsprechend einem Typ des defekten Speichers auswählen (S520), beispielsweise in Antwort auf die Erkennung in S510. Der Speicher-Controller 110' kann eines der mehreren Exemplare der im NVM 120' gespeicherten Speicherwiederherstellungsfirmware FW (zum Beispiel eine besondere Speicherwiederherstellungsfirmware FW aus den mehreren Exemplaren von Speicherwiederherstellungsfirmware FW) je nach Typ des defekten Speichers auswählen.
  • Der Speicher-Controller 110' kann einen Lesebefehl RCMD und die Adresse ADDR an den NVM 120' zum Lesen der Speicherwiederherstellungsfirmware FW übertragen (S530), zum Beispiel in Antwort auf die Erkennung in S510 und/oder die Auswahl in S520. Dieser Lesebefehl RCMD und die Adresse ADDR können eine besondere Speicherwiederherstellungsfirmware FW entsprechend einem Typ oder Attribut des Speichers, in dem der progressive Defekt aufgetreten ist (zum Beispiel des defekten Speichers), anzeigen. Der NVM 120' kann den Datenlesevorgang durchführen (S540), zum Beispiel in Antwort auf die Übertragung in S530. Der NVM 120' kann beispielsweise die ausgewählte (zum Beispiel besondere) Speicherwiederherstellungsfirmware FW lesen, indem er den Lesevorgang am Metabereich MA der MCA 121' durchführt.
  • Der NVM 120' kann die gelesene (zum Beispiel besondere, ausgewählte) Speicherwiederherstellungsfirmware FW an den Speicher-Controller 110' übertragen (S550), beispielsweise in Antwort auf die Durchführung des Datenlesevorgangs in S540. Dementsprechend kann der Speicher-Controller 110' in Antwort auf die Feststellung in S510, dass der progressive Defekt aufgetreten ist, die Speicherwiederherstellungsfirmware FW aus dem NVM 120' empfangen. Dementsprechend kann der NVM 120' in Antwort auf die Feststellung in S510, dass der progressive Defekt aufgetreten ist, die Speicherwiederherstellungsfirmware FW an den Speicher-Controller 110' übertragen. Soweit der NVM 120' mehrere Exemplare der Speicherwiederherstellungsfirmware FW speichert, wie oben angemerkt, kann die Übertragung S550 umfassen, dass die in S520 ausgewählte besondere Speicherwiederherstellungsfirmware FW übertragen wird, so dass der Speicher-Controller 110' die besondere Speicherwiederherstellungsfirmware FW aus den mehreren Exemplaren der Speicherwiederherstellungsfirmware FW entsprechend einem Typ oder Attribut des Speichers, in dem der progressive Defekt aufgetreten ist, empfängt (zum Beispiel herunterlädt). Der Speicher-Controller 110' kann beispielsweise die empfangene Speicherwiederherstellungsfirmware FW in den Speicher 111' oder in den VM 130' laden. Der Speicher-Controller 110' kann in den Speicherprüfungsmodus wechseln (S560), zum Beispiel in Antwort auf die Übertragung in S550, die Erkennung in S510 und/oder die Auswahl S520. Der Speicherprüfungsmodus kann zum Beispiel einer Betriebsart der Ladbarkeit einer speicherregenerierungsfähigen Firmware entsprechen. In einigen beispielhaften Ausführungsformen kann der Vorgang S560 früher als der Vorgang S550 durchgeführt werden.
  • Der Speicher-Controller 110' kann die Speicherwiederherstellungsfirmware FW für die Speicherreparatur ausführen (S570), zum Beispiel in Antwort auf den Wechsel in den Speicherprüfungsmodus in S560, die Erkennung in S510 und/oder die Auswahl in S520. Zum Beispiel kann der Speicher-Controller 110' den defekten Speicher basierend auf der Ausführung der in den Speicher 111' heruntergeladenen Speicherwiederherstellungsfirmware FW reparieren.
  • 13 ist ein Flussdiagramm zur Darstellung einer Betriebsweise zwischen einem Host und einer Speichervorrichtung, gemäß einigen beispielhaften Ausführungsformen.
  • Wie in 13 dargestellt, kann der Host zum Beispiel dem Host 200 in 1 entsprechen, und der Massenspeicher kann zum Beispiel der Speichervorrichtung 100 in 1 entsprechen. Die obigen Beschreibungen unter Verweis auf die 1 bis 12 können auch auf einige beispielhafte Ausführungsformen angewendet werden, und auf doppelte Beschreibungen wird verzichtet. Nachstehend wird ein Beispiel der Betriebsweise zwischen dem Host und dem Massenspeicher in Abhängigkeit von der Zeit beschrieben. Der Host kann sich mitten in der Durchführung eines Dateneingabe/-ausgabevorgangs im Massenspeicher befinden (S600). Der Host kann zum Beispiel eine Schreibanforderung oder eine Leseanforderung an den Massenspeicher übertragen, und der Massenspeicher kann in Antwort auf die Schreibanforderung beziehungsweise Leseanforderung Daten schreiben oder Daten lesen.
  • In einem ersten Intervall 1331 kann ein Speicherfehler im Massenspeicher (611) auftreten. Die im Massenspeicher enthaltene ECC-Engine kann beispielsweise einen UECC in einem NVM oder einem VM erkennen. Der Massenspeicher kann eine Speicherausfalladresse, das heißt eine fehlerhafte Speicheradresse, verzeichnen (S612), beispielsweise in Antwort auf das Auftreten eines Fehlers in S611. Die Speicherausfalladresse kann eine physische Adresse umfassen. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und die Speicherausfalladresse kann eine logische Adresse umfassen. Anschließend kann der Massenspeicher eine Speicherausfallsignatur setzen (S613), zum Beispiel in Antwort auf die Fehlerverzeichnung in S612. Der Massenspeicher kann zum Beispiel die Speicherausfallsignatur in einem besonderen Bereich des NVM oder einem besonderen Bereich des SRAM setzen. Anschließend kann der Massenspeicher zurückgesetzt werden (S614), zum Beispiel in Antwort auf die Signatur in S613. Dementsprechend kann das erste Intervall 1331 als erstes Rücksetzintervall oder erster Rücksetzzyklus bezeichnet werden. Der Massenspeicher kann zum Beispiel die Vorgänge S611 bis S614 basierend auf der Ausführung der Hauptfirmware durchführen.
  • Beim Zurücksetzen des Massenspeichers (zum Beispiel in Antwort auf das Zurücksetzen des Massenspeichers in S614) kann ein zweites Intervall 1332 beginnen. Im zweiten Intervall 1332 kann der Massenspeicher in einen Ausfallmodus oder Speicherprüfungsmodus wechseln. Zunächst kann der Massenspeicher die Speicherausfallsignatur überprüfen (S621). Anschließend kann der Massenspeicher eine Speicherausfallmitteilung an den Host übertragen (S622), zum Beispiel in Antwort auf die Überprüfung in S621, und der Host kann eine Speicherausfallmitteilung aus dem Massenspeicher empfangen (S630), zum Beispiel in Antwort auf die Übertragung in S622. Der Massenspeicher kann die Speicherwiederherstellungsfirmware herunterladen (S641). Das Herunterladen in S641 kann in Antwort auf einen der vorhergehenden Vorgänge S611 bis S630 erfolgen. In einigen beispielhaften Ausführungsformen kann ein Speicher-Controller des Massenspeichers (zum Beispiel 110 in 1) die Speicherwiederherstellungsfirmware FW aus dem Host empfangen. In einigen beispielhaften Ausführungsformen kann ein Speicher-Controller des Massenspeichers (zum Beispiel 110' in 11) die Speicherwiederherstellungsfirmware FW aus einem NVM (zum Beispiel 120' in 10) empfangen.
  • Der Massenspeicher kann die Speicherwiederherstellungsfirmware FW ausführen, um einen Speicherfehler zu reparieren (S640), beispielsweise in Antwort auf das Herunterladen in S641. Der Massenspeicher kann einen Prüf- und Reparaturvorgang an einem Speicher ausführen (S642), ein Ergebnis des Vorgangs zurücksenden (S643) und eine Speicherinstandsetzungssignatur neu setzen (S644). Die Speicherinstandsetzungssignatur zeigt beispielsweise an, dass der Reparaturvorgang am defekten Speicher abgeschlossen ist. Der Massenspeicher kann zum Beispiel eine Speicherausfallsignatur in die Speicherinstandsetzungssignatur umwandeln. Wenn die Speicherausfallsignatur zum Beispiel eine logische ,1' ist (zum Beispiel in Antwort darauf, dass die Speicherausfallsignatur eine logische ,1' ist), kann die Speicherinstandsetzungssignatur eine logische ,0' sein. Im Anschluss daran kann der Massenspeicher zurückgesetzt werden (S645), zum Beispiel in Antwort auf die Durchführung der Reparatur in S640. Dementsprechend kann das zweite Intervall 1332 als zweites Rücksetzintervall oder zweiter Rücksetzzyklus bezeichnet werden. Der Massenspeicher kann zum Beispiel die Vorgänge S621 bis S645 basierend auf der Ausführung der Hauptfirmware durchführen.
  • Beim Zurücksetzen des Massenspeichers (zum Beispiel in Antwort auf eine Feststellung in S645, dass der Massenspeicher zurückgesetzt wird), kann ein drittes Intervall 1333 beginnen. Im dritten Intervall 1333 kann der Massenspeicher in einen Ausfallmodus oder Speicherprüfungsmodus wechseln. Zunächst kann der Massenspeicher die Speicherinstandsetzungssignatur überprüfen (S651). Anschließend kann der Massenspeicher die Speicherinstandsetzungsmitteilung an den Host übertragen (S653), zum Beispiel in Antwort auf die Überprüfung in S651, und der Host kann eine Speicherinstandsetzungsmitteilung aus dem Massenspeicher empfangen (S660), zum Beispiel in Antwort auf die Übertragung in S653. Der Massenspeicher kann zum Beispiel die Vorgänge S651 bis S653 basierend auf der Ausführung der Hauptfirmware durchführen. Als nächstes kann der Host den Massenspeicher formatieren (S670) und den Massenspeicher weiterverwenden (S680), zum Beispiel in Antwort auf den Empfang in S660.
  • Es versteht sich, dass ein Vorgang, der in Antwort auf einen vorhergehenden Vorgang durchgeführt wird, umfassen kann, dass der Vorgang in Reaktion auf ein Ergebnis des vorhergehenden Vorgangs durchgeführt wird.
  • 14 ist ein Flussdiagramm zur Darstellung einer Betriebsweise zwischen einem Host und einem Massenspeicher, gemäß einigen beispielhaften Ausführungsformen.
  • Wie in 14 dargestellt, kann der Host zum Beispiel dem Host 200 in 1 entsprechen, und der Massenspeicher kann zum Beispiel der Speichervorrichtung 100 in 1 entsprechen. Eine Betriebsweise zwischen dem Host und dem Massenspeicher gemäß einigen beispielhaften Ausführungsformen kann einem abgewandelten Beispiel der in 13 dargestellten Betriebsweise zwischen dem Host und dem Massenspeicher entsprechen. Dementsprechend können die oben unter Verweis auf 13 vorgenommenen Beschreibungen auch auf einige beispielhafte Ausführungsformen angewendet werden, und auf doppelte Beschreibungen wird verzichtet. Der Host kann sich mitten in der Durchführung eines Dateneingabe/-ausgabevorgangs am Massenspeicher befinden (S600). Eine Betriebsweise der Speichervorrichtung in einem ersten Intervall 141 kann identisch oder im Wesentlichen identisch mit der Betriebsweise des Massenspeichers im ersten Intervall 1331 in 13 sein.
  • Beim Zurücksetzen des Massenspeichers (zum Beispiel in Antwort auf das Zurücksetzen in S614) kann ein zweites Intervall 142 beginnen. Im zweiten Intervall 142 kann der Massenspeicher in einen Ausfallmodus oder Speicherprüfungsmodus wechseln. Zunächst kann der Massenspeicher die Speicherausfallsignatur überprüfen (S621). Infolge der Überprüfung der Speicherausfallsignatur (zum Beispiel in Antwort auf ein Ergebnis der Überprüfung) kann der Massenspeicher in einigen beispielhaften Ausführungsformen des Speicherausfalls die Speicherwiederherstellungsfirmware FW herunterladen (S641a). In einigen beispielhaften Ausführungsformen kann ein Speicher-Controller des Massenspeichers (zum Beispiel 110' in 10) die Speicherwiederherstellungsfirmware FW aus dem NVM (zum Beispiel 120' in 10) empfangen. Der Massenspeicher kann zum Beispiel die Vorgänge S621 und S641a basierend auf der Ausführung eines ROM-Codes durchführen. Der Massenspeicher kann die Speicherwiederherstellungsfirmware FW ausführen, um einen Speicherfehler zu reparieren (S640). Der Massenspeicher kann einen Prüf- und Reparaturvorgang an einem Speicher ausführen (S642), ein Ergebnis des Vorgangs zurücksenden (S643) und die Speicherinstandsetzungssignatur neu setzen. Anschließend kann der Massenspeicher zurückgesetzt werden (S645).
  • Beim Zurücksetzen des Massenspeichers (zum Beispiel in Antwort auf das Zurücksetzen des Massenspeichers in S645) kann ein drittes Intervall 143 beginnen. Im dritten Intervall 143 kann der Massenspeicher die Speicherinstandsetzungssignatur überprüfen (S651). Infolge der Überprüfung der Speicherinstandsetzungssignatur nach erfolgter Instandsetzung des Speichers (zum Beispiel in Antwort auf das Instandsetzen des Speichers) kann der Massenspeicher durch Empfangen einer normalen Firmware aus dem NVM gebootet werden (S652). Der Massenspeicher kann zum Beispiel die Vorgänge S651 und S652 basierend auf der Ausführung des ROM-Codes durchführen. Anschließend kann der Massenspeicher die Speicherausfallmitteilung an den Host übertragen (S654), und der Host kann die Speicherausfallmitteilung aus dem Massenspeicher empfangen (S665). Der Massenspeicher kann zum Beispiel den Vorgang S654 basierend auf der Ausführung der Hauptfirmware durchführen. Als nächstes kann der Host den Massenspeicher formatieren (S670) und den Massenspeicher weiterverwenden (S680).
  • 15 veranschaulicht ein Netzwerksystem 1000 gemäß einigen beispielhaften Ausführungsformen.
  • Wie in 15 dargestellt, kann es sich beim Netzwerksystem 1000 um eine Einrichtung handeln, die verschiedene Daten erfasst und Dienste anbietet, und es kann auch als Datenzentrum oder Datenspeicherzentrum bezeichnet werden. Das Netzwerksystem 1000 kann Anwendungsserver 1100 bis 1100n und Speicherserver 1200 bis 1200n umfassen, und die Anwendungsserver 1100 bis 1100n und die Speicherserver 1200 bis 1200n können als Rechenknoten bezeichnet werden. Gemäß einigen beispielhaften Ausführungsformen können die Anzahl der Anwendungsserver 1100 bis 1100n und die Anzahl der Speicherserver 1200 bis 1200n unterschiedlich ausgewählt werden, und die Anzahl der Anwendungsserver 1100 bis 1100n und die Anzahl der Speicherserver 1200 bis 1200n können voneinander abweichen.
  • Die Anwendungsserver 1100 bis 1100n und die Speicherserver 1200 bis 1200n können miteinander über ein Netzwerk 1300 kommunizieren. Das Netzwerk 1300 kann durch den Einsatz von Fiber-Channel (FC), Ethernet und so weiter implementiert werden. In einigen beispielhaften Ausführungsformen kann das FC ein Medium sein, das für die Hochgeschwindigkeitsdatenübertragung verwendet wird, und kann einen optischen Schalter verwenden, der für eine hohe Leistung / hohe Verfügbarkeit sorgt. Je nach Zugriffsverfahren des Netzwerks 1300 können die Speicherserver 1200 bis 1200n als Dateispeicher, Blockspeicher oder Objektspeicher bereitgestellt werden.
  • In einigen beispielhaften Ausführungsformen kann das Netzwerk 1300 ein speicherdediziertes Netzwerk wie ein Storage Area Network (SAN) umfassen. Das Speichernetzwerk SAN kann beispielsweise ein Fiber-Channel-(FC)-Speichernetzwerk FC-SAN umfassen, das gemäß FC-Protokoll (PCP) über ein FC-Netzwerk implementiert wird. In einigen beispielhaften Ausführungsformen kann das Speichernetzwerk ein Internet-Protokoll-(IP)-Speichernetzwerk IP-SAN umfassen, das über ein TCP/IP-Netzwerk gemäß einem Internet-(i)-Small-Computer-System-Interface-(SCSI)-Protokoll (iSCSI-Protokoll) (das heißt SCSI over Transmission Control Protocol (TCP)/IP (TCP/IP) oder Internet-SCSI-Protokoll) implementiert wird. In einigen beispielhaften Ausführungsformen kann das Netzwerk 1300 ein allgemeines Netzwerk wie das TCP/IP-Netzwerk umfassen. Das Netzwerk 1300 kann beispielsweise nach Protokollen wie FC over Ethernet (FCoE), Network-Attached Storage (NAS), NVMe over fabrics (oF) (NVMe-oF) oder dergleichen implementiert sein.
  • Nachfolgend werden vorrangig der Anwendungsserver 1100 und der Speicherserver 1200 beschrieben. Beschreibungen des Anwendungsservers 1100 lassen sich auf andere Anwendungsserver (zum Beispiel 1100n) anwenden, und Beschreibungen des Speicherservers 1200 lassen sich auf andere Speicherserver (zum Beispiel 1200n) anwenden.
  • Der Anwendungsserver 1100 kann einen Prozessor 1110 und/oder den Speicher 1120 aufweisen. Der Prozessor 1110 kann den gesamten Betrieb des Anwendungsservers 1100 steuern und auf den Speicher 1120 zugreifen, um in den Speicher 1120 geladene Befehle und/oder Daten auszuführen. Gemäß einigen beispielhaften Ausführungsformen kann die Anzahl der im Anwendungsserver 1100 enthaltenen Prozessoren 1110 und Speicher 1120 unterschiedlich ausgewählt werden. In einigen beispielhaften Ausführungsformen können der Prozessor 1110 und der Speicher 1120 eine Prozessor-Speicher-Paarung bereitstellen. In einigen beispielhaften Ausführungsformen können die Anzahl der Prozessoren 1110 und die Anzahl der Speicher 1120 voneinander abweichen.
  • Der Anwendungsserver 1100 kann ferner eine Speichervorrichtung 1150 aufweisen. In einigen Ausführungsbeispielen kann die Anzahl der im Anwendungsserver 1100 enthaltenen Speichervorrichtungen 1150 gemäß einigen beispielhaften Ausführungsformen unterschiedlich ausgewählt werden. Der Prozessor 1110 kann an die Speichervorrichtung 1150 einen Befehl bereitstellen, und die Speichervorrichtung 1150 kann in Antwort auf einen aus dem Prozessor 1110 empfangenen Befehl oder von selbst Geräteinformationen erzeugen, und die Geräteinformationen können an den Prozessor 1110 bereitgestellt werden. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und der Anwendungsserver 1100 muss die Speichervorrichtung 1150 nicht enthalten.
  • Der Anwendungsserver 1100 kann ferner einen Switch 1130 und eine Netzschnittstellenkarte (NIC) 1140 aufweisen. Der Switch 1130 kann den Prozessor 1110 mit der Speichervorrichtung 1150 unter der Steuerung des Prozessors 1110 verbinden oder kann die NIC 1140 selektiv mit der Speichervorrichtung 1150 verbinden. Die NIC 1140 kann eine drahtgebundene Schnittstelle, eine drahtlose Schnittstelle, eine Bluetooth-Schnittstelle, eine optische Schnittstelle oder dergleichen umfassen. In einigen beispielhaften Ausführungsformen können der Prozessor 1110 und die NIC 1140 in ein Gehäuse integriert sein. In einigen beispielhaften Ausführungsformen können die Speichervorrichtung 1150 und die NIC 1140 in ein Gehäuse integriert sein.
  • Der Anwendungsserver 1100n kann den Prozessor 1110n und/oder den Speicher 1120n aufweisen. Der Anwendungsserver 1100n kann ferner eine Speichervorrichtung 1150n aufweisen. Der Anwendungsserver 1100n kann zudem einen Switch 1130n und eine Netzschnittstellenkarte (NIC) 1140n aufweisen.
  • Der Anwendungsserver 1100 kann von einem Nutzer oder Client angeforderte Daten über das Netzwerk 1300 in einem der Speicherserver 1200 bis 1200n speichern. Darüber hinaus kann der Anwendungsserver 1100 die von einem Nutzer oder Client zum Lesen angeforderten Daten über das Netzwerk 1300 aus einem der Speicherserver 1200 bis 1200n beziehen. Der Anwendungsserver 1100 kann beispielsweise als Webserver oder als Datenbankmanagementsystem (DBMS) realisiert werden.
  • Der Anwendungsserver 1100 kann auf den/die in einem anderen Anwendungsserver 1100n enthaltene/n Speicher 1120n oder Speichervorrichtung 1150n über das Netzwerk 1300 zugreifen beziehungsweise auf die in den Speichervorrichtungen 1250 bis 1250n enthaltenen Speicher 1220 bis 1120n oder Speichervorrichtungen 1250 bis 1250n über das Netzwerk 1300 zugreifen. Dementsprechend kann der Anwendungsserver 1100 verschiedene Operationen an den in den Anwendungsservern 1100 bis 1100n und/oder Speicherservern 1200 bis 1200n gespeicherten Daten durchführen. Beispielsweise kann der Anwendungsserver 1100 einen Befehl zum Bewegen oder Kopieren von Daten zwischen den Anwendungsservern 1100 bis 1100n und/oder Speicherservern 1200 bis 1200n ausführen.
  • Der Speicherserver 1200 kann einen Prozessor 1210 und/oder den Speicher 1220 aufweisen. Der Prozessor 1210 kann den gesamten Betrieb des Speicherservers 1200 steuern und auf den Speicher 1220 zugreifen, um in den Speicher 1220 geladene Befehle und/oder Daten auszuführen. Gemäß einigen beispielhaften Ausführungsformen kann die Anzahl der im Speicherserver 1200 enthaltenen Prozessoren 1210 und Speicher 1220 unterschiedlich ausgewählt werden. In einigen beispielhaften Ausführungsformen können der Prozessor 1210 und der Speicher 1220 eine Prozessor-Speicher-Paarung umfassen. In einigen beispielhaften Ausführungsformen können die Anzahl der Prozessoren 1210 und die Anzahl der Speicher 1220 voneinander abweichen.
  • Der Prozessor 1210 kann einen Einkernprozessor (Single-Core) oder einen Mehrkernprozessor (Multi-Core) aufweisen. Der Prozessor 1210 kann zum Beispiel einen Universalprozessor, eine zentrale Prozessoreinheit (CPU), eine grafische Verarbeitungseinheit (GPU), einen digitalen Signalprozessor (DSP), einen Mikrocontroller (MCU), einen Mikroprozessor, einen Netzwerkprozessor, einen eingebetteten Prozessor, ein feldprogrammierbares Gate-Array (FPGA), einen Prozessor mit anwendungsspezifischem Befehlssatz (ASIP) und einen Prozessor mit anwendungsspezifischer integrierter Schaltung (ASIC) usw. umfassen. Der Prozessor 1210 kann in einem Common-Processor-Package, einem Multi-Core-Processor-Package, einem System-on-Chip-(SoC)-Package, einem System-in-package-(SiP)-Gehäuse, einem System-on-package-(SOP)-Gehäuse usw. eingehaust sein.
  • Der Speicherserver 1200 kann ferner mindestens eine Speichervorrichtung 1250 aufweisen. Die Anzahl der im Speicherserver 1200 enthaltenen Speichervorrichtungen 1250 kann gemäß einigen beispielhaften Ausführungsformen unterschiedlich ausgewählt werden. Die Speichervorrichtung 1250 kann einen Controller (CTRL) 1251, einen NAND-Flash 1252, einen DRAM 1253 und eine Schnittstelle (I/F) 1254 umfassen. Nachfolgend werden Ausgestaltung und Betriebsweise der Speichervorrichtung 1250 im Detail beschrieben. Die folgende Beschreibung der Speichervorrichtung 1250 kann auf andere Speichervorrichtungen 1150 bis 1150n und 1250 bis 1250n angewendet werden.
  • Die Schnittstelle 1254 kann eine physische Verbindung des Prozessors 1210 mit dem Controller 1251 und eine physische Verbindung der NIC 1240 mit dem Controller 1251 bereitstellen. Die Schnittstelle (I/F) 1254 kann beispielsweise in einem Direct-Attached-Storage-(DAS)-Verfahren für einen Direktanschluss der Speichervorrichtung 1250 an ein zweckgebundenes Kabel implementiert werden. Darüber hinaus kann die Schnittstelle 1254 in verschiedenen Schnittstellenverfahren implementiert werden, wie Advanced Technology Attachment (ATA), serielles ATA (SATA), externes SATA (e-SATA), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), Peripheral Component Interconnect (PCI), PCI express (PCIe), Node Version Manager (NVM) express (NVMe), IEEE 1394, Universal Serial Bus (USB), Secure-Digital-(SD)-Karte, Multimedia Card (MMC), Embedded Multimedia Card (eMMC) und Compact-Flash-(CF)-Karte.
  • Der Controller 1251 kann den Gesamtbetrieb der Speichervorrichtung 1250 steuern. In einigen beispielhaften Ausführungsformen kann der Controller 1251 SRAM umfassen. Der Controller 1251 kann in Antwort auf einen Schreibbefehl Daten auf den NAND-Flash 1252 schreiben oder kann in Antwort auf einen Lesebefehl Daten aus dem NAND-Flash 1252 lesen. Der Schreibbefehl und/oder Lesebefehl kann zum Beispiel durch den Prozessor 1210 im Speicherserver 1200, den Prozessor 1210n in einem anderen Speicherserver 1200n beziehungsweise die Prozessoren 1110 bis 1110n in den Anwendungsservern 1100 bis 1100n bereitgestellt werden.
  • Der NAND-Flash 1252 kann mehrere NAND-Flash-Speicherzellen umfassen. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und die Speichervorrichtung 1250 kann einen anderen NVM außer dem NAND-Flash 1252, zum Beispiel resistiven RAM (ReRAM), Phasenänderungs-RAM (PRAM) oder magnetischen RAM (MRAM), oder ein magnetisches Speichermedium oder ein optisches Speichermedium oder dergleichen umfassen.
  • DRAM 1253 kann als Pufferspeicher verwendet werden. Der DRAM 1253 kann zum Beispiel Double Data Rate (DDR) SRAM (DDR SDRAM), Low-Power DDR (LPDDR) SDRAM, grafischer DDR (GDDR) SDRAM, Rambus-DRAM (RDRAM) oder High Bandwidth Memory (HBM) sein. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und die Speichervorrichtung 1250 kann VM, der kein DRAM ist, oder NVM als Pufferspeicher verwenden.
  • Die Ausgestaltung der Speichervorrichtung 1250 ist nicht auf die obigen Beschreibungen beschränkt und kann verschiedene Speicher wie DRAM, SDRAM, Festplattenlaufwerk (HDD), Solid-State-Drive (SSD), eine redundante Anordnung unabhängiger Festplatten (RAID-Volumen), ein nichtflüchtiges Dual-in-line-Speichermodul (NVDIMM), Network-attached Storage (NAS), einen Flash-Speicher wie planaren NAND-Flash-Speicher, einen dreidimensionalen (3D) NAND-Flash-Speicher und einen NOR-Flash-Speicher, einen 3D-Crosspoint-Speicher, nichtflüchtigen MRAM (NVMRAM), ReRAM, PRAM, FRAM, ReRAM und einen Memristor oder eine Kombination derselben umfassen.
  • Der Speicherserver 1200 kann ferner einen Switch 1230 und die Netzschnittstellenkarte (NIC) 1240 aufweisen. Der Switch 1230 kann den Prozessor 1210 mit der Speichervorrichtung 1250 unter der Steuerung des Prozessors 1210 verbinden oder die NIC 1240 selektiv mit der Speichervorrichtung 1250 verbinden. In einigen beispielhaften Ausführungsformen können der Prozessor 1210 und die NIC 1240 in ein Gehäuse integriert sein. In einigen beispielhaften Ausführungsformen können die Speichervorrichtung 1250 und die NIC 1240 in ein Gehäuse integriert sein.
  • Die Speichervorrichtungen 1150 bis 1150n und 1250 bis 1250n können gemäß einigen beispielhaften Ausführungsformen, die oben unter Bezugnahme auf die 1 bis 14 beschrieben wurden, implementiert sein. Der Controller 1251 der Speichervorrichtung 1250 kann gemäß einigen beispielhaften Ausführungsformen der erfinderischen Konzepte SRAM umfassen, und die Speichervorrichtung 1250 kann den UECC im SRAM, im NAND-Flash 1252 und/oder im DRAM 1253 erkennen. In einigen beispielhaften Ausführungsformen kann die Speichervorrichtung 1250 über das Netzwerk 1300 Informationen über den erkannten UECC an den Anwendungsserver 1100 bereitstellen. Der Anwendungsserver 1100 kann einen Wiederherstellungsbefehl erzeugen, so dass entsprechend den Informationen über den erkannten UECC die Speichervorrichtung 1250 in einen Wiederherstellungsmodus wechselt, und den erzeugten Wiederherstellungsbefehl über das Netzwerk 1300 an die Speichervorrichtung 1250 bereitstellen. In einigen beispielhaften Ausführungsformen kann der Anwendungsserver 1100 die Speicherwiederherstellungsfirmware FW an die Speichervorrichtung 1250 bereitstellen.
  • Die Speichervorrichtung 1250 kann die Speicherwiederherstellungsfirmware FW in Antwort auf den Wiederherstellungsbefehl ausführen, um den defekten Speicher im SRAM, NAND-Flash 1252 und/oder DRAM 1253 zu regenerieren. Die Speichervorrichtung 1250 kann die defekten Zellen im SRAM, NAND-Flash 1252 und/oder DRAM 1253 identifizieren, defekte Attribute analysieren und den Reparaturvorgang an den defekten Zellen durchführen. In einigen beispielhaften Ausführungsformen kann die Speichervorrichtung 1250 die aus dem Anwendungsserver 1100 empfangene Speicherwiederherstellungsfirmware FW ausführen. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und die Speichervorrichtung 1250 kann die im NAND-Flash 1252 vorab gespeicherte Speicherwiederherstellungsfirmware FW ausführen.
  • Der Speicherserver 1200n kann einen Prozessor 1210n und/oder Speicher 1220n, Switch 1230n, Speichervorrichtung 1250n und NIC 1240n aufweisen.
  • Während die erfinderischen Konzepte unter Bezugnahme auf einige beispielhafte Ausführungsformen besonders dargestellt und beschrieben wurden, versteht es sich, dass hier verschiedene Änderungen an Form und Einzelheiten vorgenommen werden können, ohne vom Umfang der nachfolgenden Ansprüche abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 1020190116356 [0001]
    • KR 1020200017144 [0001]

Claims (20)

  1. Speichervorrichtung, umfassend: einen nichtflüchtigen Speicher; einen flüchtigen Speicher; und einen Speicher-Controller, der dazu eingerichtet ist, den nichtflüchtigen Speicher und den flüchtigen Speicher zu steuern, wobei der Speicher-Controller ferner dazu eingerichtet ist, in Antwort auf eine Feststellung, dass während eines Betriebs der Speichervorrichtung ein progressiver Defekt in mindestens einem Speicher des nichtflüchtigen Speichers oder flüchtigen Speichers aufgetreten ist, so dass der mindestens eine Speicher als defekter Speicher bestimmt wird, basierend auf der Ausführung einer Speicherwiederherstellungsfirmware einen Reparaturvorgang am defekten Speicher durchzuführen.
  2. Speichervorrichtung nach Anspruch 1, wobei der Speicher-Controller ferner eingerichtet ist zum Übertragen von mit dem progressiven Defekt verknüpften Informationen in Antwort auf die Feststellung, dass der progressive Defekt aufgetreten ist, und der Speicher-Controller ferner dazu eingerichtet ist, die Speicherwiederherstellungsfirmware aus dem Host herunterzuladen.
  3. Speichervorrichtung nach Anspruch 2, wobei die mit dem progressiven Defekt verknüpften Informationen Informationen umfassen, die mit einem Typ oder Attribut des defekten Speichers verknüpft sind, und der Speicher-Controller ferner dazu eingerichtet ist, basierend darauf, dass die Speicherwiederherstellungsfirmware eine dem Typ oder Attribut des defekten Speichers entsprechende besondere Speicherwiederherstellungsfirmware ist, die Speicherwiederherstellungsfirmware aus dem Host herunterzuladen.
  4. Speichervorrichtung nach Anspruch 1, wobei der nichtflüchtige Speicher dazu eingerichtet ist, die Speicherwiederherstellungsfirmware zu speichern, und der Speicher-Controller dazu eingerichtet ist, in Antwort auf die Feststellung, dass der progressive Defekt aufgetreten ist, die Speicherwiederherstellungsfirmware aus dem nichtflüchtigen Speicher herunterzuladen und die heruntergeladene Speicherwiederherstellungsfirmware auszuführen.
  5. Speichervorrichtung nach Anspruch 4, wobei der nichtflüchtige Speicher dazu eingerichtet ist, mehrere Exemplare von Speicherwiederherstellungsfirmware zu speichern, und der Speicher-Controller dazu eingerichtet ist, die Speicherwiederherstellungsfirmware als besondere Speicherwiederherstellungsfirmware aus den mehreren Exemplaren von Speicherwiederherstellungsfirmware entsprechend einem Typ oder Attribut des defekten Speichers herunterzuladen.
  6. Speichervorrichtung nach Anspruch 1, wobei die Speicherwiederherstellungsfirmware eine erste Speicherwiederherstellungsfirmware umfasst und der Speicher-Controller ferner dazu eingerichtet ist, in Antwort auf eine Feststellung, dass der progressive Defekt im nichtflüchtigen Speicher aufgetreten ist, den Reparaturvorgang basierend auf der Ausführung der ersten Speicherwiederherstellungsfirmware auszuführen.
  7. Speichervorrichtung nach Anspruch 6, wobei die Speicherwiederherstellungsfirmware ferner eine zweite Speicherwiederherstellungsfirmware umfasst, die sich von der ersten Speicherwiederherstellungsfirmware unterscheidet, und der Speicher-Controller ferner dazu eingerichtet ist, in Antwort auf eine Feststellung, dass der progressive Defekt im flüchtigen Speicher aufgetreten ist, den Reparaturvorgang basierend auf der Ausführung der zweiten Speicherwiederherstellungsfirmware auszuführen.
  8. Speichervorrichtung nach Anspruch 1, wobei die Speicherwiederherstellungsfirmware eine erste Speicherwiederherstellungsfirmware umfasst und der Speicher-Controller dazu eingerichtet ist, in Antwort auf eine Feststellung, dass der progressive Defekt im flüchtigen Speicher oder nichtflüchtigen Speicher aufgetreten ist, den Reparaturvorgang basierend auf der Ausführung der ersten Speicherwiederherstellungsfirmware auszuführen.
  9. Speichervorrichtung nach Anspruch 1, wobei der Speicher-Controller dazu eingerichtet ist, den Reparaturvorgang basierend darauf auszuführen, dass mindestens eine defekte Zelle aus den mehreren im defekten Speicher enthaltenen Speicherzellen mit einer Redundanzzelle ersetzt wird.
  10. Betriebsverfahren einer Speichervorrichtung, wobei die Speichervorrichtung einen nichtflüchtigen Speicher, einen flüchtigen Speicher und einen Speicher-Controller aufweist, wobei das Betriebsverfahren umfasst: Erkennen eines progressiven Defekts in einem Speicher des nichtflüchtigen Speichers oder des flüchtigen Speichers durch den Speicher-Controller, so dass der Speicher, in dem der progressive Defekt erkannt wird, als defekter Speicher bestimmt wird; Wechsel des Speicher-Controllers in einen Speicherprüfungsmodus in Antwort auf die Erkennung des progressiven Defekts; und Durchführen eines Reparaturvorgangs am defekten Speicher durch den Speicher-Controller basierend auf der Ausführung einer Speicherwiederherstellungsfirmware im Speicherprüfungsmodus.
  11. Betriebsverfahren nach Anspruch 10, ferner umfassend: in Antwort auf die Erkennung des progressiven Defekts, Übertragen von mit dem progressiven Defekt verknüpften Informationen durch den Speicher-Controller an einen Host; und Empfangen der Speicherwiederherstellungsfirmware durch den Speicher-Controller aus dem Host, wobei die Speicherwiederherstellungsfirmware basierend darauf, dass die mit dem progressiven Defekt verknüpften Informationen an den Host übertragen wurden, vom Speicher-Controller empfangen wird, wobei die Ausführung des Reparaturvorgangs das Ausführen der aus dem Host empfangenen Speicherwiederherstellungsfirmware umfasst.
  12. Betriebsverfahren nach Anspruch 10, ferner umfassend: in Antwort auf die Erkennung des progressiven Defekts, Herunterladen der Speicherwiederherstellungsfirmware durch den Speicher-Controller aus dem nichtflüchtigen Speicher, wobei die Ausführung des Reparaturvorgangs das Ausführen der aus dem nichtflüchtigen Speicher heruntergeladenen Speicherwiederherstellungsfirmware umfasst.
  13. Betriebsverfahren nach Anspruch 10, wobei die Speicherwiederherstellungsfirmware dazu eingerichtet ist, sowohl einen Reparaturvorgang am nichtflüchtigen Speicher als auch einen Reparaturvorgang am flüchtigen Speicher auszuführen.
  14. Betriebsverfahren nach Anspruch 10, wobei die Speicherwiederherstellungsfirmware umfasst: eine erste Speicherwiederherstellungsfirmware, die dazu eingerichtet ist, einen ersten Reparaturvorgang am nichtflüchtigen Speicher auszuführen; und eine zweite Speicherwiederherstellungsfirmware, die dazu eingerichtet ist, einen zweiten Reparaturvorgang am flüchtigen Speicher auszuführen.
  15. Speicher-Controller, der dazu eingerichtet ist, einen Speicher zu steuern, wobei der Speicher-Controller umfasst: eine Speicherschnittstelle, die dazu eingerichtet ist, Daten an den Speicher zu senden und von diesem zu empfangen; eine Fehlerprüfungs- und -korrekturmaschine (ECC-Engine), die dazu eingerichtet ist, einen Fehler von aus dem Speicher ausgelesenen Daten zu korrigieren, und eine Speicherwiederherstellungsfirmware, die dazu eingerichtet ist, in Antwort auf eine Feststellung des Speicher-Controllers, dass im Speicher ein unkorrigierbarer Fehler aufgetreten ist, einen Reparaturvorgang am Speicher durchzuführen, wobei es sich bei dem unkorrigierbaren Fehler um einen Fehler handelt, den die ECC-Engine zu korrigieren nicht imstande ist.
  16. Speicher-Controller nach Anspruch 15, wobei der Speicher einen nichtflüchtigen Speicher umfasst, und die Speicherwiederherstellungsfirmware dazu eingerichtet ist, einen Reparaturvorgang am nichtflüchtigen Speicher ausführen.
  17. Speicher-Controller nach Anspruch 16, wobei die Speicherwiederherstellungsfirmware dazu eingerichtet ist, vom Speicher-Controller über die Speicherschnittstelle aus dem nichtflüchtigen Speicher heruntergeladen zu werden.
  18. Speicher-Controller nach Anspruch 15, wobei der Speicher einen flüchtigen Speicher umfasst, und die Speicherwiederherstellungsfirmware dazu eingerichtet ist, einen Reparaturvorgang am flüchtigen Speicher ausführen.
  19. Speicher-Controller nach Anspruch 15, ferner umfassend: eine Host-Schnittstelle, die dazu eingerichtet ist, mit einem Host zu kommunizieren, wobei die Speicherwiederherstellungsfirmware dazu eingerichtet ist, über die Host-Schnittstelle aus dem Host heruntergeladen zu werden.
  20. Speicher-Controller nach Anspruch 15, ferner umfassend: einen internen Speicher, wobei die Speicherwiederherstellungsfirmware in den internen Speicher geladen wird.
DE102020121109.0A 2019-09-20 2020-08-11 Speicher-controller, speichervorrichtungen und betriebsverfahren der speichervorrichtungen Pending DE102020121109A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20190116356 2019-09-20
KR10-2019-0116356 2019-09-20
KR10-2020-0017144 2020-02-12
KR1020200017144A KR20210034456A (ko) 2019-09-20 2020-02-12 메모리 컨트롤러, 스토리지 장치 및 상기 스토리지 장치의 동작 방법

Publications (1)

Publication Number Publication Date
DE102020121109A1 true DE102020121109A1 (de) 2021-03-25

Family

ID=74846082

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020121109.0A Pending DE102020121109A1 (de) 2019-09-20 2020-08-11 Speicher-controller, speichervorrichtungen und betriebsverfahren der speichervorrichtungen

Country Status (3)

Country Link
US (1) US11380418B2 (de)
CN (1) CN112540869A (de)
DE (1) DE102020121109A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020121109A1 (de) * 2019-09-20 2021-03-25 Samsung Electronics Co., Ltd. Speicher-controller, speichervorrichtungen und betriebsverfahren der speichervorrichtungen
CN115295061B (zh) * 2022-10-09 2022-12-16 江苏华存电子科技有限公司 一种存储器固件检修方法及系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623470A (en) 1995-12-28 1997-04-22 International Business Machines Corporation Reallocation of defective recording areas on CD-R or CD-E media
JP2002215337A (ja) 2001-01-16 2002-08-02 Nec Corp ディスクアレイシステム
US7418642B2 (en) * 2001-07-30 2008-08-26 Marvell International Technology Ltd. Built-in-self-test using embedded memory and processor in an application specific integrated circuit
JP2004246699A (ja) * 2003-02-14 2004-09-02 Fujitsu Ltd 不良を救済したシステムlsi、そのシステムlsiに搭載するファームウエアのコンパイラプログラム、及びシステムlsiを出荷する出荷方法
JP2009181439A (ja) 2008-01-31 2009-08-13 Toshiba Corp メモリシステム
US7895374B2 (en) * 2008-07-01 2011-02-22 International Business Machines Corporation Dynamic segment sparing and repair in a memory system
US8281229B2 (en) * 2008-12-30 2012-10-02 Intel Corporation Firmware verification using system memory error check logic
CN104685474B (zh) 2012-09-25 2018-04-20 慧与发展有限责任合伙企业 用于处理不可纠正的内存错误的方法及非瞬态处理器可读介质
US20140258780A1 (en) 2013-03-05 2014-09-11 Micron Technology, Inc. Memory controllers including test mode engines and methods for repair of memory over busses used during normal operation of the memory
KR20150029400A (ko) 2013-09-10 2015-03-18 에스케이하이닉스 주식회사 반도체 장치, 데이터 저장 시스템 및 데이터 저장 방법
KR102292167B1 (ko) 2014-04-04 2021-08-25 삼성전자주식회사 배드 블록 관리 방법 및 메모리 시스템
WO2015199700A1 (en) * 2014-06-26 2015-12-30 Hewlett-Packard Development Company, L.P. Post package repair (ppr) data in non-volatile memory
US10146626B2 (en) * 2016-09-29 2018-12-04 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Detecting and handling an expansion card fault during system initialization
US10395038B2 (en) * 2018-02-01 2019-08-27 Quanta Computer Inc. System and method for automatic recovery of firmware image
US11099949B2 (en) * 2018-08-03 2021-08-24 Cirrus Logic, Inc. Method apparatus for resuming and recovery checking from interrupted programming of one-time programmable memory device
DE102020121109A1 (de) * 2019-09-20 2021-03-25 Samsung Electronics Co., Ltd. Speicher-controller, speichervorrichtungen und betriebsverfahren der speichervorrichtungen
US11157416B2 (en) * 2020-02-27 2021-10-26 Micron Technology, Inc. Firmware loading for a memory controller
US11768611B2 (en) * 2020-04-02 2023-09-26 Axiado Corporation Secure boot of a processing chip

Also Published As

Publication number Publication date
US20210090678A1 (en) 2021-03-25
US11380418B2 (en) 2022-07-05
CN112540869A (zh) 2021-03-23

Similar Documents

Publication Publication Date Title
DE102017113439B4 (de) Abbildungstabellen für Speichervorrichtungen
DE112014005266B4 (de) Verfahren und System zur Vorwärtsreferenz-Protokollierung in einem peristenten Datenspeicher
DE102012214324B4 (de) Verfahren und Vorrichtung zur Erleichterung der Datenüberprüfung mithilfe einer Prüfsumme in Verbindung mit einem Sidefile
DE102017124079B4 (de) Speichervorrichtung zum Verarbeiten von beschädigten Metadaten und Verfahren zum Betreiben derselben
DE102011075814B4 (de) Speicherpuffer mit zugänglicher Information nach einem Schreibfehler
DE102019111132A1 (de) Speichereinrichtung, die Hostspeicher nutzt und Betriebsverfahren dafür
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102019117787B4 (de) Speichervorrichtung und Betriebsverfahren derselben
DE102017128939A1 (de) System und Verfahren zum dynamischen und adaptiven Zusammenführen von Interrupts
DE112018000180T5 (de) System und verfahren zum adaptiven senden frühzeitiger beendigung unter verwendung eines steuerungsspeicherpuffers
DE102018214010A1 (de) Verfahren und Vorrichtung zur Reduzierung von unbemerkten Datenfehlern in nichtflüchtigen Speichersystemen
DE112015005211T5 (de) Systeme und verfahren für die speicherfehler-verwaltung
DE102017104448A1 (de) Datenspeichervorrichtung
DE112016005869T5 (de) Vorausschauende Arbeitsspeicherinstandhaltung
DE102011085989B4 (de) Verfahren und Vorrichtung zum Ausführen von parallelen Speicherlese- und Speicherschreiboperationen
DE112014003349T5 (de) Verfahren und Gerät zum Ausführen atomarer Schreibvorgänge
DE112014005570T5 (de) Deaktivieren von Seiten in einem Nand-Flash-Speicher-System
DE112012005222T5 (de) Halbleiter-Datenspeicherverwaltung
DE102016009807A1 (de) Korrelieren von physikalischen seitenadressen für soft-decision-dekodierung
DE102013021679A1 (de) Rettung von Ereignisnachverfolgungsinformationen bei Stromausfall-Unterbrechungsszenarien
DE112016000696B4 (de) Ablaufplanungsschema(ta) für eine Mehrchip-Speichervorrichtung
DE102020211544A1 (de) Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben
DE102020121109A1 (de) Speicher-controller, speichervorrichtungen und betriebsverfahren der speichervorrichtungen
DE102018120964A1 (de) Integrierte Schaltungsspeichervorrichtungen mit verbesserter Pufferspeichernutzung während Lese- und Schreiboperationen
DE112016002305B4 (de) Reduktion der Schreibverstärkung in einem Objektspeicher

Legal Events

Date Code Title Description
R012 Request for examination validly filed