DE112014005417T5 - Architektur für harten Stromausfall - Google Patents

Architektur für harten Stromausfall Download PDF

Info

Publication number
DE112014005417T5
DE112014005417T5 DE112014005417.8T DE112014005417T DE112014005417T5 DE 112014005417 T5 DE112014005417 T5 DE 112014005417T5 DE 112014005417 T DE112014005417 T DE 112014005417T DE 112014005417 T5 DE112014005417 T5 DE 112014005417T5
Authority
DE
Germany
Prior art keywords
storage device
controllers
memory
data
nvm
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
DE112014005417.8T
Other languages
English (en)
Inventor
Lace J. Herman
Gregg S. Lucas
Kenneth B. Delpapa
Robert W. Ellis
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.)
Western Digital Technologies Inc
Original Assignee
SanDisk Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of DE112014005417T5 publication Critical patent/DE112014005417T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • G06F1/305Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations in the event of power-supply fluctuations
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems

Abstract

Die verschiedenen hier beschriebenen Implementierungen umfassen Systeme, Verfahren und/oder Geräte, die dazu verwendet werden, Power Sequencing und Datenhärten in einem Speichergerät zu ermöglichen. In einem Aspekt umfasst das Verfahren die Feststellung, ob eine für das Speichergerät bereitgestellte Versorgungsspannung höher ist als ein Überspannungsschwellenwert. Das Verfahren umfasst weiterhin entsprechend einer Feststellung, dass die Versorgungsspannung höher ist als der Überspannungsschwellenwert, das Durchführen einer Netzausfalloperation, wobei die Netzausfalloperation umfasst: (1) Melden eines Netzausfallzustandes an eine Vielzahl von Steuerungen am Speichergerät, (2) Übertragen der im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher, und (3) Ausschalten der Netzspannung der Vielzahl von Steuerungen am Speichergerät.

Description

  • TECHNISCHES GEBIET
  • Die offengelegten Ausführungsformen beziehen sich allgemein auf Speichersysteme und insbesondere auf Power Sequencing (Aus-/Einschaltreihenfolge) und das Datenhärten in Datenspeichergeräten.
  • HINTERGRUND
  • Halbleiterspeichergeräte, einschließlich Flash-Speicher, bedienen sich typischerweise Speicherzellen zum Speichern von Daten als einen elektrischen Wert, wie z. B. eine elektrische Ladung oder Spannung. Eine Flash-Speicherzelle umfasst z. B. einen einzigen Transistor mit einem Floating Gate, das zum Speichern einer Ladung dient, die einen Datenwert darstellt. Der Flash-Speicher ist ein nichtflüchtiges Datenspeichergerät, das elektrisch gelöscht und neu programmiert werden kann. Allgemeiner behält ein nichtflüchtiger oder persistenter Speicher (z. B. ein Flash-Speicher sowie andere Arten von nichtflüchtigen Speichern, die unter Verwendung einer Vielzahl von Technologien implementiert werden) gespeicherte Informationen auch in stromlosem Zustand, anders als flüchtige Speicher, die elektrische Energie benötigen, um die gespeicherte Information zu behalten.
  • Datenhärten, das Speichern von Daten und auftragskritischen Metadaten im flüchtigen Speicher, ist fester Bestandteil eines Speichergeräts. Bei einem Netzausfall können in einer Reihe von Teilsystemkomponenten auftragskritische Daten im flüchtigen Speicher vorliegen. Das Koordinieren und Verwalten von mehreren Teilsystemkomponenten zur sicheren erfolgreichen Speicherung von flüchtigen Daten ist wichtig, um Daten in einem Speichergerät zu schützen.
  • ZUSAMMENFASSUNG
  • Verschiedene Implementierungen von Systemen, Verfahren und Geräten im Rahmen der beigefügten Ansprüche weisen jeweils unterschiedliche Aspekte auf, wobei keinem von ihnen allein die in diesem Schriftstück beschriebenen Attribute zuzuschreiben sind. Ohne den Geltungsbereich der angehängten Ansprüche einzuschränken, wird man nach Berücksichtigung dieser Offenlegung und insbesondere nach Berücksichtigung des Abschnitts ”Detailbeschreibung” verstehen, wie die Aspekte von verschiedenen Implementierungen dazu verwendet werden, Power Sequencing und das Datenhärten in Datenspeichergeräten zu ermöglichen. In einem Aspekt findet eine Netzausfalloperation nach einer Festlegung statt, nach der eine für ein Speichergerät bereitgestellte Versorgungsspannung höher ist als ein Überspannungsschwellenwert.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Um diese Offenlegung detaillierter verständlich zu machen, kann eine spezifischere Beschreibung unter Bezugnahme auf die Funktionen von verschiedenen Implementierungen hergestellt werden, von denen einige in den angehängten Zeichnungen veranschaulicht sind. Die angehängten Zeichnungen veranschaulichen jedoch nur die relevanteren Funktionen dieser Offenlegung und sind daher nicht als einschränkend zu betrachten, da die Beschreibung andere effektive Funktionen zulassen kann.
  • 1 ist ein Blockdiagramm, das eine Implementierung eines Datenspeichersystems nach einigen Ausführungsformen veranschaulicht.
  • 2 ist ein Blockdiagramm, das eine Implementierung eines Datenhärtungsmoduls nach einigen Ausführungsformen veranschaulicht.
  • 3 ist ein Blockdiagramm, das eine Implementierung einer Speichersteuerung nach einigen Ausführungsformen veranschaulicht.
  • 4 ist ein Blockdiagramm, das eine Implementierung einer NVM-Steuerung nach einigen Ausführungsformen veranschaulicht.
  • 5 ist ein Blockdiagramm, das eine Implementierung eines Datenhärtungsmoduls nach einigen Ausführungsformen veranschaulicht.
  • 6A6F veranschaulichen ein Ablaufdiagramm, das ein Verfahren zum Schützen von Daten in einem Speichergerät nach einigen Ausführungsformen darstellt.
  • Gemäß allgemeiner Praxis sind die verschiedenen in den Zeichnungen veranschaulichten Funktionen eventuell nicht maßstabsgerecht gezeichnet. Folglich können die Maße der verschiedenen Merkmale aus Gründen der Verständlichkeit absichtlich vergrößert oder verkleinert dargestellt sein. Darüber hinaus zeigen einige der Zeichnungen evtl. nicht alle Komponenten eines gegebenen Systems, Verfahrens oder Geräts. Schließlich können durchwegs gleiche Bezugszahlen verwendet werden, um in der Spezifikation und den Figuren gleiche Funktionen zu bezeichnen.
  • DETAILBESCHREIBUNG
  • Die verschiedenen hier beschriebenen Implementierungen umfassen Systeme, Verfahren und/oder Geräte, die dazu verwendet werden, Power Sequencing und das Datenhärten in Datenspeichergeräten zu ermöglichen. Einige Implementierungen umfassen Systeme, Verfahren und/oder Geräte zum Durchführen einer Netzausfalloperation nach einer Festlegung, wonach eine für ein Speichergerät bereitgestellte Versorgungsspannung höher ist als ein Überspannungsschwellenwert.
  • Spezifischer umfassen einige Implementierungen ein Verfahren zum Schützen von Daten in einem Speichergerät. In einigen Implementierungen umfasst das Verfahren die Feststellung, ob eine für das Speichergerät bereitgestellte Versorgungsspannung höher ist als ein Überspannungsschwellenwert. Das Verfahren umfasst weiterhin entsprechend einer Feststellung, dass die Versorgungsspannung höher ist als der Überspannungsschwellenwert, das Durchführen einer Netzausfalloperation, wobei die Netzausfalloperation umfasst: (1) Melden eines Netzausfallzustandes an eine Vielzahl von Steuerungen am Speichergerät, (2) Übertragen der im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher, und (3) Ausschalten der Netzspannung der Vielzahl von Steuerungen am Speichergerät.
  • In einigen Ausführungen umfasst die Vielzahl von Steuerungen am Speichergerät eine Speichersteuerung (die in diesem Schriftstück manchmal als Speicher-Controller bezeichnet wird) und eine oder mehrere Steuerungen für nichtflüchtige Speicher (NVM), wobei die eine oder die mehreren NVM-Steuerungen durch die Speichersteuerung an eine Host-Schnittstelle des Speichergeräts gekoppelt sind.
  • In einigen Ausführungsformen umfasst das Übertragen der im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher: (1) Übertragen der Daten aus der Speichersteuerung auf die eine oder mehreren NVM-Steuerungen, und (2) Übertragen von Daten aus der einen oder den mehreren NVM-Steuerungen auf den nichtflüchtigen Speicher.
  • In einigen Ausführungsformen umfasst das Ausschalten der Netzspannung der Vielzahl von Steuerungen am Speichergerät: (1) Zurücksetzen der Speichersteuerung nach dem Übertragen von Daten aus der Speichersteuerung auf die eine oder mehreren NVM-Steuerungen, und (2) Ausschalten der Netzspannung der Speichersteuerung nach dem Zurücksetzen der Speichersteuerung.
  • In einigen Ausführungsformen umfassen die eine oder mehreren NVM-Steuerungen eine erste NVM-Steuerung und eine zweite NVM-Steuerung, und das Ausschalten der Netzspannung der Vielzahl von Steuerungen am Speichergerät umfasst: (1) Zurücksetzen der ersten NVM-Steuerung nach dem Übertragen von Daten aus der ersten NVM-Steuerung auf den nichtflüchtigen Speicher, (2) Zurücksetzen der zweiten NVM-Steuerung nach dem Übertragen von Daten aus der zweiten NVM-Steuerung auf den nichtflüchtigen Speicher, und (3) Ausschalten der Netzspannung der ersten und der zweiten NVM-Steuerung nach dem Zurücksetzen der ersten und der zweiten NVM-Steuerung.
  • In einigen Ausführungsformen erfolgt das Ausschalten der Netzspannung der ersten und der zweiten NVM-Steuerung nach dem Ausschalten der Netzspannung der Speichersteuerung.
  • In einigen Ausführungsformen wird die Netzausfalloperation zu Ende geführt, gleich ob die Versorgungsspannung auf einen Spannungswert unter oder gleich dem Überspannungsschwellenwert zurückkehrt.
  • In einigen Ausführungsformen ist die Versorgungsspannung eine von einem Host-System gelieferte Spannung.
  • In einigen Ausführungsformen ist die Versorgungsspannung eine für die Serial Presence-Detect(SPD – serielle Anwesenheitsdetektierung)-Funktionalität gelieferte Spannung.
  • In einigen Ausführungsformen umfasst die Versorgungsspannung eine erste Spannung und eine zweite Spannung, und das Durchführen der Netzausfalloperation umfasst: (1) Durchführen der Netzausfalloperation entsprechend einer Feststellung, dass die erste Spannung höher ist als der erste Überspannungsschwellenwert, und (2) Durchführen der Netzausfalloperation entsprechend einer Feststellung, dass die zweite Spannung höher ist als ein zweiter Überspannungsschwellenwert.
  • In einigen Ausführungsformen wird die Netzausfalloperation mit Spannung von einem Reserveenergiespeichergerät durchgeführt.
  • In einigen Ausführungsformen wird die Netzausfalloperation mit Spannung von einem Energiespeichergerät am Speichergerät durchgeführt.
  • In einigen Ausführungsformen umfasst das Energiespeichergerät einen oder mehrere Kondensatoren.
  • In einigen Ausführungsformen umfasst das Verfahren weiterhin (1) Überwachen des Energiespeichergeräts, um sicherzustellen, dass die Kondensatoren im Energiespeichergerät mindestens bis zu einem ersten Ladezustand aufgeladen sind, und (2) selektives Testen von einem oder mehreren Kondensatoren aus dem Energiespeichergerät während des Betriebs des Speichergeräts.
  • In einigen Ausführungsformen umfasst das Verfahren weiterhin vor dem Feststellen, ob die für das Speichergerät bereitgestellte Versorgungsspannung höher ist als der Überspannungsschwellenwert, (1) Laden des Energiespeichergeräts mit einer Spannung, die höher ist als die für das Speichergerät zur Verfügung gestellte Spannung, (2) Feststellen, ob das Energiespeichergerät innerhalb einer vorgegebenen Ladedauer einen Schwellenwert für einen Mindest-Ladezustand erreicht, und (3) entsprechend einer Feststellung, dass das Energiespeichergerät innerhalb der vorgegebenen Ladedauer den Schwellenwert für einen Mindest-Ladezustand nicht erreicht, Verhindern des Betriebs des Speichergeräts.
  • In einigen Ausführungsformen umfasst das Verhindern des Betriebs des Speichergeräts das Übermitteln einer Fehlermeldung an ein Host-System.
  • In einigen Ausführungsformen umfasst das Verfahren weiterhin das Entladen des Energiespeichergeräts nach dem Ausschalten der Netzspannung der Vielzahl von Steuerungen am Speichergerät.
  • In einigen Ausführungsformen umfasst der nichtflüchtige Speicher ein oder mehrere NVM-Geräte.
  • In einigen Ausführungsformen umfasst das Speichergerät ein DIMM-(Dual In-line Memory-)Gerät.
  • In einigen Ausführungsformen umfasst die Vielzahl von Steuerungen am Speichergerät mindestens eine Steuerung für nichtflüchtige Speicher und mindestens eine weitere Speichersteuerung zusätzlich zu der mindestens einen Steuerung für nichtflüchtige Speicher.
  • In einigen Ausführungsformen bildet eine aus der Vielzahl von Steuerungen am Speichergerät Schnittstellenbefehle mit doppelter Datenrate (DDR) auf Serial Advance Technology Attachment(SATA)-Schnittstellenbefehle ab.
  • In einem anderen Aspekt wird jedes der vorstehend beschriebenen Verfahren durch ein Speichergerät durchgeführt, umfassend (1) eine Schnittstelle zum Koppeln des Speichergeräts an ein Host-System, (2) eine Vielzahl von Steuerungen, wobei jede aus der Vielzahl von Steuerungen dazu konfiguriert ist, die im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher zu übertragen, und (3) ein Datenhärtungsmodul, das ein Energiespeichergerät umfasst, wobei das Datenhärtungsmodul dazu konfiguriert ist: (a) festzustellen, ob die für das Speichergerät bereitgestellte Versorgungsspannung höher ist als der Überspannungsschwellenwert, und (b) entsprechend einer Feststellung, dass die Versorgungsspannung höher ist als der Überspannungsschwellenwert, eine Netzausfalloperation durchzuführen, wobei die Netzausfalloperation umfasst: (i) Melden eines Netzausfallzustandes an die Vielzahl von Steuerungen am Speichergerät, wobei die Vielzahl der Steuerungen zum Übertragen der im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher veranlasst werden, und (ii) Ausschalten der Netzspannung der Vielzahl der Steuerungen am Speichergerät.
  • In einigen Ausführungsformen ist der Überspannungsschwellenwert programmierbar.
  • In einigen Ausführungsformen umfasst das Datenhärtungsmodul einen oder mehrere Prozessoren.
  • In einigen Ausführungsformen, wobei das Melden des Netzausfallzustandes an die Vielzahl von Steuerungen am Speichergerät das separate Melden des Netzausfallzustandes an jede einzelne aus der Vielzahl der Steuerungen umfasst.
  • In einigen Ausführungsformen umfasst das Verfahren weiterhin das Aufzeichnen von Daten bezüglich des Netzausfallzustandes in den nichtflüchtigen Speicher.
  • In einigen Ausführungsformen umfasst das Verfahren weiterhin das Durchführen einer Netzausfall-Testoperation, wobei die Netzausfall-Testoperation umfasst: (1) Melden des Netzausfallzustandes an eine oder mehrere Steuerungen aus der Vielzahl von Steuerungen am Speichergerät, (2) für die eine oder mehreren Steuerungen, Übertragen der im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher, (3) Ausschalten der Netzspannung der einen oder mehreren Steuerungen am Speichergerät, und (4) Aufzeichnen von Daten in Bezug auf die Netzausfall-Testoperation.
  • In einigen Ausführungsformen ist das Speichergerät dazu konfiguriert, ein beliebiges der vorstehend beschriebenen Verfahren durchzuführen.
  • In einem weiteren Aspekt wird jedes beliebige der vorstehend beschriebenen Verfahren durch ein Speichergerät durchgeführt, das über die Funktion verfügt, Daten zu schützen. In einigen Ausführungsformen umfasst das Gerät (1) eine Schnittstelle zum Koppeln des Speichergeräts an ein Host-System, (2) Mittel um festzustellen, ob eine für das Speichergerät bereitgestellte Versorgungsspannung höher ist als ein Überspannungsschwellenwert, und (3) Mittel zum Durchführen einer Netzausfalloperation entsprechend einer Feststellung, dass die Versorgungsspannung höher ist als der Überspannungsschwellenwert, wobei die Netzausfalloperation umfasst: (a) Mittel zum Melden des Netzausfallzustandes an eine Vielzahl von Steuerungen am Speichergerät, (b) Mittel zum Übertragen von im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher, und (c) Mittel zum Ausschalten der Netzspannung der Vielzahl der Steuerungen am Speichergerät.
  • In einem weiteren Aspekt ein nichtflüchtiges computerlesbares Speichermedium, auf dem ein oder mehrere Programme zur Durchführung durch einen oder mehrere Prozessoren eines Speichergeräts gespeichert sind, das über eine Vielzahl von Steuerungen und ein Datenhärtungsmodul verfügt, wobei das eine oder die mehreren Programme Anweisungen zur Durchführung von einem beliebigen der hier beschriebenen Verfahren umfassen.
  • In einigen Ausführungsformen umfasst das nichtflüchtige computerlesbare Speichermedium ein nichtflüchtiges computerlesbares Speichermedium, das mit einer jeden aus der Vielzahl der Steuerungen am Speichergerät verbunden ist, und ein nichtflüchtiges computerlesbares Speichermedium, das mit dem Datenhärtungsmodul verbunden ist.
  • In diesem Schriftstück sind zahlreiche Details beschrieben, um ein gründliches Verstehen der beispielhaften Implementierungen zu ermöglichen, die in den beigefügten Zeichnungen veranschaulicht sind. Allerdings können einige Ausführungsformen ohne zahlreiche spezifische Details ausgeführt sein und der Geltungsbereich der Ansprüche wird nur durch die Funktionen und Aspekte eingeschränkt, die in den Ansprüchen spezifisch genannt sind. Weiterhin wurden bekannte Verfahren, Komponenten und Schaltungen nicht ausführlich beschrieben, um die klare Darstellung von relevanteren Aspekten der hier beschriebenen Implementierungen nicht unnötig zu beeinträchtigen.
  • 1 ist ein Blockdiagramm, das eine Implementierung eines Datenspeichersystems 100 nach einigen Ausführungsformen veranschaulicht. Während einige beispielhafte Funktionen veranschaulicht sind, wurden verschiedene andere Funktionen aus Platzgründen, und um die klare Darstellung von relevanteren Aspekten der hier beschriebenen beispielhaften Implementierungen nicht unnötig zu beeinträchtigen, nicht veranschaulicht. Zu diesem Zweck umfasst das Datenspeichersystem 100 als nicht-einschränkendes Beispiel das Speichergerät 120 (auch manchmal bezeichnet als Informationsspeichergerät oder Datenspeichergerät oder Speichereinheit), das die Host-Schnittstelle 122, das Serial Presence-Detect-(SPD-)Gerät 124, das Datenhärtungsmodul 126, die Speichersteuerung 128, eine oder mehrere nichtflüchtige (NVM-)Steuerungen 130, wie zum Beispiel Flash-Steuerungen, und nichtflüchtigen Speicher (z. B. ein oder mehrere NVM-Geräte 140, 142, wie z. B. ein oder mehrere Flash-Speichergeräte) umfasst, und wird in Verbindung mit dem Computersystem 110 verwendet. In einigen Implementierungen umfasst das Speichersystem 120 ein einzelnes NVM-Gerät, während das Speichergerät 120 in anderen Implementierungen eine Vielzahl von NVM-Geräten umfasst. In einigen Implementierungen umfassen die NVM-Geräte 140, 142 einen Flash-Speicher vom Typ NAND oder einen Flash-Speicher vom Typ NOR. Weiterhin handelt es sich in einigen Implementierungen bei der NVM-Steuerung 130 um eine Solid-State Drive(SSD)-Steuerung. Es können jedoch ein oder mehrere Typen von Speichermedien entsprechend den Aspekten einer Vielzahl von Implementierungen enthalten sein.
  • Das Computersystem 110 ist über die Datenverbindungen 101 mit dem Speichergerät 120 gekoppelt. Allerdings umfasst in einigen Implementierungen das Computersystem 110 ein Speichergerät 120 als Komponente und/oder Teilsystem. Das Computersystem 110 kann jedes geeignete Computergerät, wie z. B. ein Personalcomputer, eine Workstation, ein Computerserver oder ein anderes Computergerät sein. Das Computersystem 110 wird manchmal auch als Host oder Host-System bezeichnet. In einigen Implementierungen umfasst das Computersystem 110 einen oder mehrere Prozessoren, einen oder mehrere Speichertypen, optional ein Display und/oder andere Benutzer-Schnittstellenkomponenten wie z. B. eine Tastatur, einen Touchscreen, eine Maus, ein Trackpad, eine Digitalkamera und/oder eine Anzahl ergänzender Geräte für zusätzliche Funktionalität. Weiterhin sendet in einigen Implementierungen das Computersystem 110 einen oder mehrere Host-Befehle (z. B. Lesebefehle und/oder Schreibbefehle) auf die Steuerleitung 111 zum Speichergerät 120. In einigen Implementierungen ist das Computersystem 110 als Serversystem ausgelegt, wie z. B. als Serversystem in einem Rechenzentrum, und verfügt nicht über ein Display und weitere Benutzer-Schnittstellenkomponenten.
  • In einigen Implementierungen umfasst das Speichergerät 120 NVM-Geräte 140, 142 wie z. B. Flash-Speichergeräte (z. B. NVM-Geräte 140-1 bis 140-n und NVM-Geräte 142-1 bis 142-k) und NVM-Steuerungen 130 (z. B. NVM-Steuerungen 130-1 bis 130-m). In einigen Implementierungen umfasst jede NVM-Steuerung der NVM-Steuerungen 130 eine oder mehrere Prozessoreinheiten (manchmal auch als CPUs oder Prozessoren oder Mikroprozessoren oder Mikrocontroller bezeichnet), die dazu konfiguriert sind, Anweisungen in einem oder mehreren Programmen auszuführen (z. B. in NVM-Steuerungen 130). In einigen Implementierungen werden der eine oder die mehreren Prozessoren gemeinsam von einer oder mehreren darin befindlichen Komponenten genutzt, und in einigen Fällen über die Funktion von NVM-Steuerungen 130 hinaus. NVM-Geräte 140, 142 sind mit NVM-Steuerungen 130 durch Verbindungen gekoppelt, die typischerweise Befehle zusätzlich zu Daten übermitteln und optional Metadaten, Fehlerkorrekturangaben und/oder weitere Informationen zusätzlich zu Datenwerten, die in NVM-Geräten 140, 142 gespeichert werden sollen, und Datenwerten, die von NVM-Geräten 140, 142 ausgelesen werden sollen, übermitteln. So können z. B. NVM-Geräte 140, 142 für Unternehmensspeicher konfiguriert werden, die geeignet sind für Anwendungen wie Cloud Computing, oder zum Cachen von Daten, die in sekundären Speichern, wie z. B. auf Festplattenlaufwerken, gespeichert sind (oder gespeichert werden sollen). Zusätzlich und/oder alternativ kann auch ein Flash-Speicher (z. B. NVM-Geräte 140, 142) für Anwendungen in relativ kleinerem Maßstab konfiguriert werden, wie z. B. private Flash-Laufwerke oder Festplattenersatz für PC, Laptops oder Tablets. Während Flashspeicherlaufwerke und Flash-Steuerungen hier als Beispiele genannt werden, umfasst in einigen Ausführungsformen das Speichergerät 120 weitere nicht-flüchtige Speichergeräte) und entsprechende nicht-flüchtige Speichersteuerung(en).
  • In einigen Implementierungen umfasst das Speichergerät 120 ebenfalls eine Host-Schnittstelle 122, ein SPD-Gerät 124, ein Datenhärtungsmodul 126 und eine Speichersteuerung 128. Das Speichergerät 120 kann verschiedene zusätzliche Funktionen umfassen, die aus Platzgründen, und um die klare Darstellung von relevanteren Funktionen der hier offengelegten beispielhaften Implementierungen nicht zu beeinträchtigen, nicht veranschaulicht sind, und es kann eine andere Anordnung der Funktionen möglich sein. Die Host-Schnittstelle 122 bietet dem Computersystem 110 eine Schnittstelle durch Datenverbindungen 101.
  • In einigen Implementierungen umfasst das Datenhärtungsmodul 126 eine oder mehrere Prozessoreinheiten (manchmal auch als CPUs oder Prozessoren oder Mikroprozessoren oder Mikrocontroller bezeichnet), die dazu konfiguriert sind, Anweisungen in einem oder mehreren Programmen auszuführen (z. B. im Datenhärtungsmodul 126). In einigen Implementierungen werden der eine oder die mehreren Prozessoren gemeinsam von einer oder mehreren darin befindlichen Komponenten genutzt, und in einigen Fällen über die Funktion des Datenhärtungsmoduls 126 hinaus. Das Datenhärtungsmodul 126 ist mit der Host-Schnittstelle 122, dem SPD-Gerät 124, der Speichersteuerung 128 und den NVM-Steuerungen 130 gekoppelt, um den Betrieb dieser Komponenten zu koordinieren, einschließlich Überwachungs- und Steuerungsfunktionen, wie z. B. Hochlauf, Herunterfahren, Datenhärten, Laden von Energiespeichergerät(en), Datenlogging und weiteren Aspekten der Verwaltung von Funktionen am Speichergerät 120.
  • Die Speichersteuerung 128 ist mit der Host-Schnittstelle 122, dem Datenhärtungsmodul 126 und den NVM-Steuerungen 130 gekoppelt. In einigen Implementierungen empfängt während eines Schreibvorgangs die Speichersteuerung 128 Daten vom Computersystem 110 durch die Host-Schnittstelle 122, und während eines Lesevorgangs sendet die Speichersteuerung 128 Daten an das Computersystem 110 durch die Host-Schnittstelle 122. Weiterhin liefert die Host-Schnittstelle 122 zusätzliche Daten, Signale, Spannungen und/oder weitere Informationen, die zur Kommunikation zwischen der Speichersteuerung 128 und dem Computersystem 110 erforderlich sind. In einigen Ausführungsformen bedienen sich die Speichersteuerung 128 und die Host-Schnittstelle 122 eines definierten Schnittstellenstandards zur Kommunikation, wie z. B. eines SDRAM (synchronen dynamischen Direktzugriffsspeichers) vom Typ 3 mit doppelter Datenrate (DDR3). In einigen Ausführungsformen bedienen sich die Speichersteuerung 128 und die NVM-Steuerungen 130 eines definierten Schnittstellenstandards zur Kommunikation, wie z. B. Serial Advance Technology Attachment (SATA). In einigen weiteren Implementierungen bedient sich die Speichersteuerung 128 für die Kommunikation mit NVM-Steuerungen 130 der Geräteschnittstelle SAS (Serial Attached SCSI), oder einer anderen Speicherschnittstelle. In einigen Implementierungen umfasst die Speichersteuerung 128 eine oder mehrere Prozessoreinheiten (manchmal auch als CPUs oder Prozessoren oder Mikroprozessoren oder Mikrocontroller bezeichnet), die dazu konfiguriert sind, Anweisungen in einem oder mehreren Programmen auszuführen (z. B. in der Speichersteuerung 128). In einigen Implementierungen werden der eine oder die mehreren Prozessoren gemeinsam von einer oder mehreren darin befindlichen Komponenten genutzt, und in einigen Fällen über die Funktion aus der Speichersteuerung 128 hinaus.
  • Das SPD-Gerät 124 ist mit der Host-Schnittstelle 122 und dem Datenhärtungsmodul 126 gekoppelt. Serial Presence Detect (SPD) bezeichnet eine standardisierte Form des automatischen Zugriffs auf Informationen über ein Computerspeichermodul (z. B. Speichergerät 120). Zum Beispiel kann, sofern das Speichermodul einen Fehler aufweist, der Fehler mit einem Host-System (z. B. Computersystem 110) über das SPD-Gerät 124 kommuniziert werden.
  • 2 ist ein Blockdiagramm, das eine Implementierung des Datenhärtungsmoduls 126 nach einigen Ausführungsformen veranschaulicht. Das Datenhärtungsmodul 126 umfasst ein Energiespeicherungs- und -verteilungsmodul 250 (welches das Energiespeichergerät 204 umfasst). In einigen Ausführungsformen umfasst das Datenhärtungsmodul einen oder mehrere Prozessoren (manchmal auch als CPUs oder Prozessoreinheiten oder Mikroprozessoren oder Mikrocontroller bezeichnet) 202 zum Ausführen von im Speicher 206 hinterlegten Modulen, Programmen und/oder Anweisungen und somit zum Durchführen von Verarbeitungsoperationen, den Speicher 206 sowie einen oder mehrere Kommunikationsbusse 208 für die Verbindung dieser Komponenten miteinander. Jedoch werden in einigen Ausführungsformen die nachstehend als durch den Prozessor 202 ausgeführt beschriebenen Funktionen stattdessen durch die Speichersteuerung 128 ausgeführt.
  • In einigen Implementierungen umfasst das Energiespeicherungs- und -verteilungsmodul 250 Schaltungen zum Überwachen, Speichern und Verteilen von Energie für ein Speichergerät (z. B. Speichergerät 120, 1), einschließlich Überwachen, Steuern, Laden und/oder Testen des Energiespeichergeräts 204. In einigen Ausführungsformen umfasst das Energiespeichergerät 204 einen oder mehrere Kondensatoren. In anderen Ausführungsformen umfasst das Energiespeichergerät 204 eine oder mehrere Drosselspulen oder beliebige andere passive Elemente, die Energie speichern.
  • Die Kommunikationsbusse 208 umfassen optional Schaltungen (manchmal als Chipsatz bezeichnet), die Systemkomponenten miteinander verbinden und die Kommunikation zwischen ihnen steuern. Das Datenhärtungsmodul 126 ist mit der Host-Schnittstelle 122, dem SPD-Gerät 124, der Speichersteuerung 128 und den NVM-Steuerungen 130 (z. B. NVM-Steuerungen 130-1 bis 130-m) durch Kommunikationsbusse 208 gekoppelt. Der Speicher 206 umfasst Hochgeschwindigkeits-Direktzugriffsspeicher, wie z. B. DRAM, SRAM, DDR RAM oder andere Festkörperspeicher mit direktem Zugriff, und kann nichtflüchtige Speicher umfassen, wie z. B. ein oder mehrere Magnetplatten-Speichergeräte, optische Plattenspeichergeräte, Flash-Speichergeräte oder andere nichtflüchtige Festkörperspeichergeräte. Der Speicher 206 umfasst optional ein oder mehrere Speichergerät(e), das (die) entfernt vom (von den) Prozessor(en) 202 angeordnet ist (sind). Der Speicher 206, oder alternativ das (die) nichtflüchtige(n) Speichergerät(e) im Speicher 206, umfasst ein nichtflüchtiges computerlesbares Speichermedium. In einigen Ausführungsformen speichert der Speicher 206 oder das computerlesbare Speichermedium von Speicher 206 die folgenden Programme, Module und Datenstrukturen oder eine Teilgruppe davon:
    • • ein Überwachungsmodul 210, das zur Überwachung von einem Speichergerät bereitgestellten Signalen dient (z. B. Speichergerät 120, 1), zum Beispiel zum Überwachen und Feststellen, ob eine für ein Speichergerät bereitgestellte Versorgungsspannung höher ist als ein Überspannungsschwellenwert;
    • • ein Energiespeichergerätemodul 212, das zum Überwachen, Steuern, Laden und/oder Testen eines Energiespeichergeräts (z. B. Energiespeichergerät 204) am Speichergerät verwendet wird;
    • • ein Testmodul 214, das zum Testen von einer oder mehreren Funktionen des Speichergeräts verwendet wird;
    • • ein Netzschaltermodul 216, das dazu verwendet wird, die zur Energieversorgung des Speichergeräts verwendete Spannung zu bestimmen und zu steuern; und
    • • ein Netzausfallmodul 218, das dazu verwendet wird, entsprechend einer Feststellung, wonach eine für ein Speichergerät bereitgestellte Versorgungsspannung höher ist als ein Überspannungsschwellenwert, eine Netzausfalloperation durchzuführen.
  • In einigen Ausführungsformen speichert der Speicher 206 oder das computerlesbare Speichermedium des Speichers 206 weiterhin ein Konfigurationsmodul zum Konfigurieren des Speichergeräts 120 und des Datenhärtungsmoduls 126 und/oder Konfigurationswerte (wie z. B. einen oder mehrere Überspannungsschwellenwerte) zum Konfigurieren des Datenhärtungsmoduls 126, wobei keines dieser Elemente in 2 ausdrücklich dargestellt ist. In einigen Implementierungen stellt das Konfigurationsmodul die Werte von einem oder mehreren Konfigurationsparametern des Speichergeräts 120 nach dem Hochfahren und nach dem Zurücksetzen automatisch ein (und bestimmt optional, welches aus zwei oder mehreren Netzausfallmodulen, Testmodulen usw. zu verwenden ist) gemäß den Komponenten des Speichergeräts 120 (z. B. dem Typ der nichtflüchtigen Speicherkomponenten im Speichergerät 120) und/oder Eigenschaften des Datenspeichersystems 100, welches das Speichergerät 120 umfasst.
  • In einigen Ausführungsformen wird das Überwachungsmodul 210 auch zum Überwachen sowie Feststellen verwendet, ob eine für das Speichergerät bereitgestellte Versorgungsspannung niedriger ist als ein Unterspannungsschwellenwert.
  • In einigen Ausführungsformen umfasst das Netzausfallmodul 218 optional folgende Module oder Teilmodule oder eine Teilgruppe davon:
    • • ein Signalmodul 220, das zum Melden eines Netzausfallzustandes an eine Vielzahl von Steuerungen am Speichergerät (z. B. Speichersteuerung 128 und NVM-Steuerungen 130, 1) dient;
    • • ein Resetmodul 222, das zum Zurücksetzen der Vielzahl der Steuerungen am Speichergerät verwendet wird;
    • • ein Stromabschaltungsmodul 224, das zum Ausschalten der Netzspannung der Vielzahl der Steuerungen am Speichergerät verwendet wird;
    • • ein Guard Banding-Modul 226, das dazu dient, Leistungsschwankungen in einer für ein Speichergerät bereitgestellten Versorgungsspannung zu tolerieren; und
    • • ein Entlademodul 228, das zum Entladen des Energiespeichergeräts am Speichergerät verwendet wird.
  • Jedes der vorstehend identifizierten Elemente kann in einem oder mehreren der vorstehend aufgeführten Speichergeräte gespeichert sein und entspricht einem Satz von Anweisungen zur Durchführung einer vorstehend beschriebenen Funktion. Die vorstehend identifizierten Module oder Programme (d. h. Satz von Anweisungen) brauchen nicht als separate Softwareprogramme, Verfahren oder Module implementiert zu werden, und somit können verschiedene Teilgruppen dieser Module in verschiedenen Ausführungsformen kombiniert oder anderweitig anders angeordnet werden. In einigen Ausführungsformen kann im Speicher 206 eine Teilgruppe der vorstehend identifizierten Module und Datenstrukturen gespeichert sein. Weiterhin kann Speicher 206 zusätzliche vorstehend nicht beschriebene Module und Datenstrukturen speichern. In einigen Ausführungsformen liefern die im Speicher 206 oder dem computerlesbaren Speichermedium von Speicher 206 hinterlegten Programme, Module und Datenstrukturen Anweisungen für die Implementierung von einem der nachstehend unter Bezugnahme auf 6A6F beschriebenen Verfahren.
  • Obwohl 2 das Datenhärtungsmodul 126 darstellt, ist 2 eher als Funktionsbeschreibung der verschiedenen Funktionen zu verstehen, die im Datenhärtungsmodul 128 vorhanden sein können, denn als Strukturschema der hier beschriebenen Ausführungsformen. In der Praxis, und wie von Fachleuten anerkannt werden wird, könnten die getrennt dargestellten Elemente kombiniert und einzelne Elemente getrennt werden.
  • 3 ist ein Blockdiagramm, das eine Implementierung einer Speichersteuerung 128 nach einigen Ausführungsformen veranschaulicht. Die Speichersteuerung 128 umfasst typischerweise einen oder mehrere Prozessoren (manchmal auch als CPUs oder Prozessoreinheiten oder Mikroprozessoren oder Mikrocontroller bezeichnet) 302 zum Ausführen von im Speicher 306 hinterlegten Modulen, Programmen und/oder Anweisungen und somit zum Durchführen von Verarbeitungsoperationen, den Speicher 306 sowie einen oder mehrere Kommunikationsbusse 308 für die Verbindung dieser Komponenten miteinander. Die Kommunikationsbusse 308 umfassen optional Schaltungen (manchmal als Chipsatz bezeichnet), die die Systemkomponenten miteinander verbinden und die Kommunikation zwischen ihnen steuern. Die Speichersteuerung 128 ist mit der Host-Schnittstelle 122, dem Datenhärtungsmodul 126 und den NVM-Steuerungen 130 (z. B. NVM-Steuerungen 130-1 bis 130-m) durch Kommunikationsbusse 308 verbunden. Der Speicher 306 umfasst Hochgeschwindigkeits-Direktzugriffsspeicher, wie z. B. DRAM, SRAM, DDR RAM oder andere Festkörperspeicher mit direktem Zugriff, und kann nichtflüchtige Speicher umfassen, wie z. B. ein oder mehrere Magnetplatten-Speichergeräte, optische Plattenspeichergeräte, Flash-Speichergeräte oder andere nichtflüchtige Festkörperspeichergeräte. Der Speicher 306 umfasst optional ein oder mehrere Speichergerät(e), das (die) entfernt vom (von den) Prozessor(en) 302 angeordnet ist (sind). Der Speicher 306, oder alternativ das (die) nichtflüchtige(n) Speichergerät(e) im Speicher 306, umfasst ein nichtflüchtiges computerlesbares Speichermedium. In einigen Ausführungsformen speichert der Speicher 306 oder das computerlesbare Speichermedium von Speicher 306 die folgenden Programme, Module und Datenstrukturen oder eine Teilgruppe davon:
    • • ein Schnittstellenmodul 310, das zur Kommunikation mit anderen Komponenten, wie der Host-Schnittstelle 122, dem Datenhärtungsmodul 126 und den NVM-Steuerungen 130 dient;
    • • ein Resetmodul 312, das zum Zurücksetzen der Speichersteuerung 128 dient; und
    • • ein Netzausfallmodul 314, das zur Durchführung einer Netzausfalloperation dient.
  • In einigen Ausführungsformen umfasst das Netzausfallmodul 314 optional ein Übertragungsmodul 316, das zum Übertragen der im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher dient.
  • Jedes der vorstehend identifizierten Elemente kann in einem oder mehreren der vorstehend aufgeführten Speichergeräte gespeichert sein und entspricht einem Satz von Anweisungen zum Durchführen einer vorstehend beschriebenen Funktion. Die vorstehend identifizierten Module oder Programme (d. h. Satz von Anweisungen) brauchen nicht als separate Softwareprogramme, Verfahren oder Module implementiert zu werden, und somit können verschiedene Teilgruppen dieser Module in verschiedenen Ausführungsformen kombiniert oder anderweitig anders angeordnet werden. In einigen Ausführungsformen kann im Speicher 306 eine Teilgruppe der vorstehend identifizierten Module und Datenstrukturen gespeichert sein. Weiterhin können im Speicher 306 zusätzliche vorstehend nicht beschriebene Module und Datenstrukturen gespeichert sein. In einigen Ausführungsformen liefern die im Speicher 306 oder dem computerlesbaren Speichermedium von Speicher 306 hinterlegten Programme, Module und Datenstrukturen Anweisungen für die Implementierung von entsprechenden Operationen in den nachstehend unter Bezugnahme auf 6A6F beschriebenen Verfahren.
  • Obwohl 3 die Speichersteuerung 128 darstellt, ist 3 eher als Funktionsbeschreibung der verschiedenen Funktionen zu verstehen, die in der Speichersteuerung vorhanden sein können, denn als Strukturschema der hier beschriebenen Ausführungsformen. In der Praxis, und wie von Fachleuten anerkannt werden wird, könnten die getrennt dargestellten Elemente kombiniert und einzelne Elemente getrennt werden.
  • 4 ist ein Blockdiagramm, das eine Implementierung einer NVM-Steuerung 130-1, wie z. B. eine Flash-Steuerung, nach einigen Ausführungsformen veranschaulicht. Die NVM-Steuerung 130-1 umfasst typischerweise einen oder mehrere Prozessoren (manchmal auch als CPUs oder Prozessoreinheiten oder Mikroprozessoren oder Mikrocontroller bezeichnet) 402 zum Ausführen von im Speicher 306 hinterlegten Modulen, Programmen und/oder Anweisungen und somit zum Durchführen von Verarbeitungsoperationen, den Speicher 406 sowie einen oder mehrere Kommunikationsbusse 408 für die Verbindung dieser Komponenten miteinander. Die Kommunikationsbusse 408 umfassen optional Schaltungen (manchmal als Chipsatz bezeichnet), die Systemkomponenten miteinander verbinden und die Kommunikation zwischen ihnen steuern. Die NVM-Steuerung 130-1 ist mit der Speichersteuerung 128, dem Datenhärtungsmodul 126 und den NVM-Geräten 140 (z. B. NVM-Geräte 140-1 bis 140-n, wie z. B. Flashgeräte) durch Kommunikationsbusse 408 verbunden. Der Speicher 406 umfasst Hochgeschwindigkeits-Direktzugriffsspeicher, wie z. B. DRAM, SRAM, DDR RAM oder andere Festkörperspeicher mit direktem Zugriff, und kann nichtflüchtige Speicher umfassen, wie z. B. ein oder mehrere Magnetplatten-Speichergeräte, optische Plattenspeichergeräte, Flash-Speichergeräte oder andere nichtflüchtige Festkörperspeichergeräte. Der Speicher 406 umfasst optional ein oder mehrere Speichergerät(e), das (die) entfernt vom (von den) Prozessor(en) 402 angeordnet ist (sind). Der Speicher 406, oder alternativ das (die) nichtflüchtige(n) Speichergerät(e) im Speicher 406, umfasst ein nichtflüchtiges computerlesbares Speichermedium. In einigen Ausführungsformen speichert der Speicher 406 oder das computerlesbare Speichermedium von Speicher 406 die folgenden Programme, Module und Datenstrukturen oder eine Teilgruppe davon:
    • • ein Schnittstellenmodul 410, das zur Kommunikation mit anderen Komponenten, wie der Host-Schnittstelle 128, dem Datenhärtungsmodul 126 und den NVM-Geräten 140 verwendet wird;
    • • ein Resetmodul 412, das zum Zurücksetzen der NVM-Steuerung 130-1 verwendet wird; und
    • • ein Netzausfallmodul 414, das zur Durchführung einer Netzausfalloperation dient.
  • In einigen Ausführungsformen umfasst das Netzausfallmodul 414 optional ein Übertragungsmodul 416, das zum Übertragen der im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher verwendet wird.
  • Jedes der vorstehend identifizierten Elemente kann in einem oder mehreren der vorstehend aufgeführten Speichergeräte gespeichert sein und entspricht einem Satz von Anweisungen zum Durchführen einer vorstehend beschriebenen Funktion. Die vorstehend identifizierten Module oder Programme (d. h. Satz von Anweisungen) brauchen nicht als separate Softwareprogramme, Verfahren oder Module implementiert zu werden, und somit können verschiedene Teilgruppen dieser Module in verschiedenen Ausführungsformen kombiniert oder anderweitig anders angeordnet werden. In einigen Ausführungsformen kann im Speicher 406 eine Teilgruppe der vorstehend identifizierten Module und Datenstrukturen gespeichert sein. Weiterhin können im Speicher 406 zusätzliche vorstehend nicht beschriebene Module und Datenstrukturen gespeichert sein. In einigen Ausführungsformen liefern die im Speicher 406 oder dem computerlesbaren Speichermedium von Speicher 406 hinterlegten Programme, Module und Datenstrukturen Anweisungen für die Implementierung von entsprechenden der nachstehend unter Bezugnahme auf 6A6F beschriebenen Verfahren.
  • Obwohl 4 die eine NVM-Steuerung 130-1 darstellt, ist 4 eher als Funktionsbeschreibung der verschiedenen Funktionen gedacht, die in der NVM-Steuerung vorhanden sein können, denn als Strukturschema der hier beschriebenen Ausführungsformen. In der Praxis, und wie von Fachleuten anerkannt werden wird, könnten die getrennt dargestellten Elemente kombiniert und einzelne Elemente getrennt werden. Weiterhin gilt, obwohl 4 eine NVM-Steuerung 130-1 darstellt, die Beschreibung von 4 analog für andere NVM-Steuerungen (z. B. NVM-Steuerungen 130-2 bis 130-m) im Speichergerät 120 (1).
  • 5 ist ein Blockdiagramm, das eine Implementierung des Datenhärtungsmoduls 126 nach einigen Ausführungsformen veranschaulicht. Während einige beispielhafte Funktionen veranschaulicht sind, wurden verschiedene andere Funktionen aus Platzgründen, und um die klare Darstellung von relevanteren Aspekten der hier beschriebenen beispielhaften Implementierungen nicht unnötig zu beeinträchtigen, nicht veranschaulicht. Zu diesem Zweck umfasst das Datenhärtungsmodul 126 als nicht-einschränkendes Beispiel den Prozessor 202, den Verstärkungsschaltkreis 520, das Energiespeichergerät 522, die Transistoren 511-512, die Halteschaltung 524, die Spannungen Vdd 502, VSPD 504, VVerzögerung 506, und Vgeschaltet 508, und die Verbindungen 530. In einigen Ausführungsformen ist Vdd 502 eine von einem Host-System gelieferte Spannung (z. B. Computersystem 110, 1) mit einem Sollwert von 1,5 V oder weniger. In einigen Implementierungen ist VVerzögerung 506 eine von Vdd 502 verstärkte Spannung und weist einen Sollwert von 5,7 Volt auf. In einigen Ausführungsformen dient VVerzögerung 506 dazu, ein Energiespeichergerät 522 zu laden. In einigen Implementierungen ist VSPD 504 eine für eine Serial Presence-Detect-(SPD-)Funktionalität bereitgestellte Spannung und weist einen Sollwert von 3,3 Volt auf. Weiterhin ist in einigen Implementierungen nur einer der Transistoren 511, 512 zur gleichen Zeit aktiviert. Immer wenn zum Beispiel der Transistor 512 aktiviert ist, ist der Transistor 511 deaktiviert („geöffneter” Zustand), um sicherzustellen, dass die Energie vom Energiespeichergerät 522 des Datenhärtungsmoduls nicht ins Host-System abfließt. Weiterhin, immer wenn der Transistor 511 aktiviert ist und vom Host-System Energie für die Komponenten des Speichergeräts 120 bereitstellt, ist der Transistor 512 deaktiviert. In einigen Implementierungen speichert das Energiespeichergerät 522 der Datenhärtungsschaltung unmittelbar vor Erfassung eines Netzausfallzustandes mindestens etwa 30 bis 70 mJ Energie je NVM-Steuerung 130 im Speichergerät 120.
  • In einigen Implementierungen überwacht und verwaltet der Prozessor 202 die Funktionalität im Datenhärtungsmodul 126. Zum Beispiel überwacht der Prozessor 202 die Spannungen Vdd 502 und VSPD 504. Falls entweder Vdd 502 oder VSPD 504 entsprechende Überspannungsschwellenwerte überschreiten, meldet der Prozessor 202 einen Netzausfallzustand an eine Vielzahl von Steuerungen am Speichergerät 120 (z. B. an die Speichersteuerung 128 und die NVM-Steuerungen 130, 1). In einigen Ausführungsformen verändert sich der Überspannungsschwellenwert in Abhängigkeit vom Spannungs-Sollwert. Wenn zum Beispiel die Sollspannung für Vdd 502 1,5 Volt beträgt, kann der Überspannungsschwellenwert 1,5 Volt plus 5% (d. h. 1,575 Volt) betragen; der Prozessor 202 würde demnach einen Netzausfallzustand melden, wenn Vdd 502 höher ist als 1,575 Volt. In einigen Implementierungen ist der Überspannungsschwellenwert für Vdd 502 ein anderer als der Überspannungsschwellenwert für VSPD 504. Wenn in einigen Ausführungsformen entweder Vdd 502 oder VSPD 504 entsprechende Unterspannungsschwellenwerte unterschreiten (z. B. 1,425 Volt bei einer Sollspannung für Vdd 502 von 1,5 Volt, und 3,135 Volt bei einer Sollspannung von VSPD 504 von 3,3 Volt), meldet der Prozessor 202 einen Netzausfallzustand an eine Vielzahl von Steuerungen am Speichergerät 120 (z. B. an die Speichersteuerung 128 und die NVM-Steuerungen 130, 1).
  • In einigen Ausführungsformen wird Vdd 502 während des normalen Betriebs des Speichergeräts 120 dazu verwendet, das Speichergerät 120 mit Energie zu versorgen. Während einer Netzausfalloperation dient jedoch ein Energiespeichergerät 522 dazu, das Speichergerät 120 mit Energie zu versorgen. In einigen Ausführungsformen steuert der Prozessor 202 die Transistoren 511512, um Vgeschaltet 508 entweder als Spannung von Vdd 502 (z. B. während des normalen Betriebs) oder als Spannung vom Energiespeichergerät 522 (z. B. während des Netzausfallprozesses) zu steuern. Zum Beispiel wird während des Normalbetriebs des Speichergeräts 120 Vdd 502 dazu verwendet, das Speichergerät 120 mit Energie zu versorgen; demnach wird der Transistor 511 eingeschaltet (z. B. zur vollständigen Herstellung der Verbindung zwischen Vdd 502 und Vgeschaltet 508) und der Transistor 512 wird ausgeschaltet (z. B. um die Verbindung zwischen dem Energiespeichergerät 522 und Vgeschaltet 508 zu deaktivieren). Während einer Netzausfalloperation wird jedoch das Energiespeichergerät 522 dazu verwendet, das Speichergerät 120 mit Energie zu versorgen; demnach wird der Transistor 511 ausgeschaltet (z. B. um die Verbindung zwischen Vdd 502 und Vgeschaltet 508 zu deaktivieren) und der Transistor 512 wird eingeschaltet (z. B. um die Verbindung zwischen dem Energiespeichergerät 522 und Vgeschaltet 508 herzustellen). Obwohl 5 nur ein einziges Energiespeichergerät 522 zeigt, kann jedes beliebige Energiespeichergerät – einschließlich eines oder mehrerer Kondensatoren, einer oder mehrerer Drosselspulen oder eines oder mehrerer passiver Elemente, die Energie speichern, dazu verwendet werden, die während einer Netzausfalloperation zu verwendende Energie zu speichern.
  • In einigen Ausführungsformen wird das Energiespeichergerät 522 mittels VVerzögerung 506 geladen, einer Spannung, die höher ist als Vdd 502. In einigen Implementierungen wird Vdd 502 auf VVerzögerung 506 mittels einer Verstärkerschaltung 520 verstärkt (z. B. wird 1,35 V oder 1,5 V auf 5,7 V verstärkt). In einigen Ausführungsformen wird die Verstärkungsschaltung 520 durch den Prozessor 202 gesteuert und aktiviert. Weiterhin wird in einigen Ausführungsformen Vgeschaltet 508 als Eingang für die Halteschaltung 524 verwendet, die gemeinsam mit VSPD 504 den Prozessor 202 mit Energie versorgt. Während einer Netzausfalloperation wird Vgeschaltet 508 über die Halteschaltung 524 für den Prozessor 202 bereitgestellt, um den Prozessor 202 während der Netzausfalloperation mit Energie zu versorgen. In einigen Implementierungen verfügt der Prozessor 202 über einen oder mehrere Anschlüsse 530, die zur Überwachung und Steuerung von anderen Funktionen innerhalb des Speichergeräts 120 dienen. In einigen Implementierungen versorgt VSPD 504 die Halteschaltung 524 mit Energie. Weiterhin wird in einigen Implementierungen VSPD 504 für das Speichergerät 120 bereitgestellt, bevor Vdd 502 für das Speichergerät 120 bereitgestellt wird, sodass die Geräte im Speichergerät 120 arbeiten können, bevor das Speichergerät 120 durch die Hauptstromversorgung Vdd 502 versorgt wird.
  • 6A6F veranschaulichen ein Ablaufdiagramm, das ein Verfahren 600 zum Schützen von Daten in einem Speichergerät nach einigen Ausführungsformen darstellt. Ein Speichergerät (z. B. das Speichergerät 120, 1) koordiniert und verwaltet mehrere Teilsystemkomponenten zum Schützen von Daten, wodurch die Ausführung des Verfahrens 600 eingeleitet wird. In mindestens einigen Implementierungen wird das Verfahren 600 durch ein Speichergerät ausgeführt (z. B. Speichergerät 120, 1), oder durch eine oder mehrere Komponenten des Speichergeräts (z. B. das Datenhärtungsmodul 126, die Speichersteuerung 128 und/oder NVM-Steuerungen 130, 1). In einigen Ausführungsformen wird das Verfahren 600 durch Anweisungen gelenkt, die in einem nichtflüchtigen computerlesbaren Speichermedium gespeichert sind und von einem oder mehreren Prozessoren eines Geräts ausgeführt werden, wie z. B. von dem einen oder den mehreren Prozessoren 202 des Datenhärtungsmoduls 126, dem einen oder den mehreren Prozessoren 302 der Speichersteuerung 128, und/oder dem einen oder den mehreren Prozessoren 402 der NVM-Steuerungen 130, wie in 24 dargestellt.
  • Ein Speichergerät (z. B. Speichergerät 120, 1) stellt fest (602), ob eine für das Speichergerät bereitgestellte Versorgungsspannung höher ist als ein Überspannungsschwellenwert. In einigen Ausführungsformen verändert sich der Überspannungsschwellenwert (manchmal auch als Auslösepunkt” bezeichnet) in Abhängigkeit vom Spannungs-Sollwert. Wenn zum Beispiel der Sollwert für die Versorgungsspannung 1,5 Volt beträgt, kann der Überspannungsschwellenwert 1,5 Volt plus 5% (d. h. 1,575 Volt) betragen und das Speichergerät bestimmt, ob die Versorgungsspannung höher ist als 1,575 Volt. In einigen Implementierungen dient ein Überwachungsmodul (z. B. das Überwachungsmodul 210, 2) dazu, festzustellen, ob eine für ein Speichergerät bereitgestellte Versorgungsspannung höher ist als ein Überspannungsschwellenwert, wie vorstehend in Bezug auf 2 beschrieben. In einigen Ausführungsformen stellt das Speichergerät (z. B. Speichergerät 120, 1) fest, ob eine für das Speichergerät bereitgestellte Versorgungsspannung niedriger ist als ein Unterspannungsschwellenwert. Wenn zum Beispiel der Sollwert für die Versorgungsspannung 1,5 Volt beträgt, kann der Unterspannungsschwellenwert 1,5 Volt minus 5% (d. h. 1,425 Volt) betragen und das Speichergerät bestimmt, ob die Versorgungsspannung niedriger ist als 1,425 Volt.
  • In einigen Ausführungsformen ist (604) die Versorgungsspannung eine von einem Host-System gelieferte Spannung. In einigen Ausführungsformen hat die von einem Host-System gelieferte Spannung (z. B. Vdd 502, 5) einen Sollwert von 1,5 Volt oder weniger. Zum Beispiel beträgt bei Spezifizierung einer Schnittstelle mit doppelter Datenrate, Typ 3 (DDR3) die Versorgungsspannung 1,5 Volt oder 1,35 Volt.
  • In einigen Ausführungsformen ist (606) die Versorgungsspannung eine für die Serial Presence-Detect(SPD – serielle Anwesenheitsdetektierung)-Funktionalität gelieferte Spannung. In einigen Ausführungsformen hat die für die SPD-Funktionalität gelieferte Spannung (z. B. VSPD 504, 5) einen Sollwert von 3,3 Volt oder weniger.
  • In einigen Ausführungsformen umfasst (608) das Speichergerät ein DIMM-(Dual In-line Memory-)Gerät. In einigen Implementierungen ist das Speichergerät mit einem DIMM-Speichersteckplatz kompatibel. Zum Beispiel ist in einigen Implementierungen das Speichergerät kompatibel mit einem 240-Pin-DIMM-Speichersteckplatz, der eine DDR3-Schnittstellenspezifikation verwendet.
  • In einigen Ausführungsformen ist der Überspannungsschwellenwert programmierbar (610). In einigen Implementierungen ist der Überspannungsschwellenwert entsprechend einer Messung einer Versorgungsspannung programmierbar. Zum Beispiel kann der programmierbare Über-Schwellenwert oder ein entsprechender Parameter in einem nichtflüchtigen Speicher, wie z. B. SPD 124, gespeichert sein. Optional werden unterschiedliche Überspannungsschwellenwerte für verschiedene Versorgungsspannungspegel verwendet. Zum Beispiel wird bei einer Versorgungsspannung von 1,35 Volt ein niedriger Überspannungsschwellenwert festgelegt als bei einer Versorgungsspannung von 1,5 Volt. In einigen Implementierungen ist der Überspannungsschwellenwert durch ein Hostgerät wie ein Computersystem 110, 1, programmierbar.
  • In einigen Implementierungen ist der Überspannungsschwellenwert gemäß einer oder mehrerer Eigenschaften des Speichergeräts (z. B. des Speichergeräts 120, 1) programmierbar, wie zum Beispiel der maximalen Datenmenge, die während einer Netzausfalloperation auf einen nichtflüchtigen Speicher übertragen werden soll, der Verfügbarkeit und dem Ladezustand eines Energiespeichergeräts (z. B. des Energiespeichergeräts 204, 2), das zur Energieversorgung während einer Netzausfalloperation dient, und/oder anderer Attribute in Verbindung mit DIMM. Analog ist in einigen Implementierungen, in denen ein Überspannungsschwellenwert sowie ein Unterspannungsschwellenwert verwendet werden, der Unterspannungsschwellenwert ebenfalls programmierbar und ist optional programmierbar gemäß jeder der vorstehend beschriebenen Eigenschaften des Speichergeräts.
  • Als Nächstes führt (612) das Speichergerät entsprechend einer Feststellung, dass die Versorgungsspannung höher ist als der Überspannungsschwellenwert, eine Netzausfalloperation durch. Unter Verwendung des vorstehenden Beispiels, in dem der Sollwert für die Versorgungsspannung 1,5 Volt und der Überspannungsschwellenwert 1,575 Volt beträgt, führt das Speichergerät entsprechend einer Feststellung, dass die Versorgungsspannung höher ist als 1,575 Volt, eine Netzausfalloperation durch. In einigen Implementierungen wird ein Netzausfallmodul (z. B. das Netzausfallmodul 218, 2) dazu verwendet, entsprechend einer Feststellung, dass die Versorgungsspannung höher ist als der Überspannungsschwellenwert, eine Netzausfalloperation durchzuführen, wie vorstehend in Bezug auf 2 beschrieben. Weiterhin führt das Speichergerät entsprechend einer Feststellung, dass die Versorgungsspannung entweder niedriger ist als der Unterspannungsschwellenwert oder höher ist als der Überspannungsschwellenwert, eine Netzausfalloperation durch.
  • In einigen Ausführungsformen werden eine oder mehrere Versorgungsspannungen auf Überspannungsschwellenwerte überwacht und die Netzausfalloperation wird durchgeführt, falls eine der überwachten Versorgungsspannungen über ihren jeweiligen Überspannungsschwellenwert steigt. Wenn zum Beispiel zwei Versorgungsspannungen (z. B. eine erste Versorgungsspannung und eine zweite Versorgungsspannung) auf Überspannungsschwellenwerte (z. B. einen ersten Überspannungsschwellenwert und einen zweiten Überspannungsschwellenwert) überwacht werden, wird die Netzausfalloperation entsprechend einer Feststellung durchgeführt, dass die erste Versorgungsspannung höher ist als der erste Überspannungsschwellenwert, und die Netzausfalloperation wird entsprechend einer Feststellung durchgeführt, dass die zweite Versorgungsspannung höher ist als der zweite Überspannungsschwellenwert. Der Überspannungsschwellenwert (manchmal als „Auslösepunkt” bezeichnet) ändert sich in Abhängigkeit vom Versorgungsspannung-Sollwert. In einigen Ausführungsformen ist die erste Versorgungsspannung eine von einem Host-System gelieferte Spannung (z. B. mit einem Sollwert von 1,5 Volt oder weniger) und die zweite Versorgungsspannung eine für eine Serial Presence-Detect-(SPD)-Funktionalität gelieferte Spannung (z. B. mit einem Sollwert von 3,3 Volt). Weiterhin werden in einigen Ausführungsformen eine oder mehrere Versorgungsspannungen auf Überspannungsschwellenwerte und Unterspannungsschwellenwerte überwacht und die Netzausfalloperation wird durchgeführt, falls eine der überwachten Versorgungsspannungen ihren jeweiligen Überspannungsschwellenwert überschreitet oder unter ihren jeweiligen Unterspannungsschwellenwert abfällt.
  • Erstens umfasst die Netzausfalloperation (612) das Melden (614) eines Netzausfallzustandes an eine Vielzahl von Steuerungen am Speichergerät (z. B. Speichersteuerung 128 und NVM-Steuerungen 130, 1). In einigen Implementierungen wird ein Signalmodul (z. B. das Signalmodul 220, 2) dazu verwendet, einen Netzausfallzustand an eine Vielzahl von Steuerungen am Speichergerät zu melden, wie vorstehend in Bezug auf 2 beschrieben.
  • In einigen Ausführungen umfasst die Vielzahl von Steuerungen am Speichergerät (616) eine Speichersteuerung (z. B. die Speichersteuerung 128, 1) und eine oder mehrere NVM-Steuerungen (z. B. die NVM-Steuerungen 130, 1), wobei die eine oder die mehreren NVM-Steuerungen durch die Speichersteuerung an eine Host-Schnittstelle (z. B. die Host-Schnittstelle 122, 1) des Speichergeräts gekoppelt sind.
  • In einigen Ausführungsformen umfasst die Vielzahl von Steuerungen am Speichergerät (618) mindestens eine Steuerung für nichtflüchtige Speicher und mindestens eine weitere Steuerung zusätzlich zu der mindestens einen Steuerung für nichtflüchtige Speicher (z. B. eine Speichersteuerung). In einigen Implementierungen ist die mindestens eine nichtflüchtige Speichersteuerung eine Flash-Steuerung (z. B. die NVM-Steuerung 130-1, 1). In anderen Implementierungen steuert die mindestens eine nichtflüchtige Speichersteuerung einen oder mehrere andere Typen nichtflüchtiger Speichergeräte.
  • In einigen Ausführungsformen bildet eine aus der Vielzahl von Steuerungen am Speichergerät (620) Schnittstellenbefehle mit doppelter Datenrate (DDR) auf Serial Advance Technology Attachment(SATA)-Schnittstellenbefehle ab. Zum Beispiel bildet eine Speichersteuerung (z. B. die Speichersteuerung 128, 1) Schnittstellenbefehle mit doppelter Datenrate, Typ 3 (DDR3) auf SATA-Schnittstellenbefehle ab. In einigen Ausführungsformen verwendet eine Speichersteuerung (z. B. die Speichersteuerung 128, 1) einen definierten Schnittstellenstandard wie DDR3, um mit einer Host-Schnittstelle (z. B. der Host-Schnittstelle 122, 1) zu kommunizieren, und verwendet einen definierten Schnittstellenstandard wie SATA, um mit anderen Steuerungen am Speichergerät (z. B. den NVM-Steuerungen 130, 1) zu kommunizieren.
  • In einigen Ausführungsformen umfasst das Melden (614) des Netzausfallzustandes an eine Vielzahl von Steuerungen am Speichergerät das separate Melden (622) des Netzausfallzustandes an jede einzelne aus der Vielzahl der Steuerungen. In einigen Implementierungen ermöglichen einzelne Netzausfallsignale an jede einzelne aus der Vielzahl der Steuerungen sequenzielles Sequencing der Netzausfalloperation über die Vielzahl der Steuerungen hinweg, paralleles Durchführen der Netzausfalloperation über die Vielzahl der Steuerungen hinweg oder eine Kombination aus sequenziellem und parallelem Sequencing für die Netzausfalloperation. In einem nicht einschränkenden Beispiel einer sequenziellen Sequenz wird die erste Netzausfalloperation für eine erste NVM-Steuerung (z. B. die NVM-Steuerung 130-1, 1) früher durchgeführt oder früher gestartet als die Netzausfalloperation für eine zweite NVM-Steuerung (z. B. NVM-Steuerung 130-m, 1). Weiterhin werden in einem nicht einschränkenden Beispiel einer Kombination aus sequenziellen und parallelen Sequenzen die Netzausfalloperationen von zwei oder mehreren NVM-Steuerungen (z. B. zwei oder mehreren der NVM-Steuerungen 130-1 bis 130-m, 1) gleichzeitig durchgeführt, während die Netzausfalloperation für eine Speichersteuerung (z. B. die Speichersteuerung 128, 1) früher durchgeführt oder früher gestartet wird als die parallelen Netzausfalloperationen der vorstehend genannten NVM-Steuerungen.
  • Als Nächstes umfasst die Netzausfalloperation (612) das Übertragen (624) der im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher (z. B. die NVM-Geräte 140, 142, 1). In einigen Implementierungen wird ein Netzausfallmodul an einer oder mehreren Steuerungen (z. B. das Netzausfallmodul 314, 3, und das Netzausfallmodul 414, 4) verwendet, um im flüchtigen Speicher gehaltene Daten auf den nichtflüchtigen Speicher zu übertragen, wie vorstehend in Bezug auf 34 beschrieben.
  • In einigen Ausführungsformen umfasst das Übertragen von im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher das Übertragen (626) von Daten (z. B. flüchtigen Daten 318, 3) von der Speichersteuerung (z. B. der Speichersteuerung 128, 1) an die eine oder die mehreren NVM-Steuerungen (z. B. die NVM-Steuerungen 130, 1). In einigen Implementierungen umfassen die aus der Speichersteuerung auf die eine oder die mehreren NVM-Steuerungen übertragenen Daten solche Daten, die eben von der Host-Schnittstelle (z. B. der Host-Schnittstelle 122, 1) auf die Speichersteuerung übertragen werden („data in flight”), an den Host (z. B. das Computersystem 110, 1) als gespeichert (z. B. in einem nichtflüchtigen Speicher oder Schreibcache gespeichert) gemeldete Daten und/oder in einem flüchtigen Speicher in der Speichersteuerung gespeicherte Metadaten. In einigen Implementierungen wird ein Übertragungsmodul (z. B. das Übertragungsmodul 316, 3) dazu verwendet, Daten aus der Speichersteuerung an eine oder mehrere NVM-Steuerungen zu übertragen, wie vorstehend in Bezug auf 3 beschrieben.
  • In einigen Ausführungsformen umfasst das Übertragen von im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher das Übertragen (628) von Daten (z. B. flüchtigen Daten 418, 4) aus der einen oder den mehreren NVM-Steuerungen (z. B. den NVM-Steuerungen 130, 1) auf den nichtflüchtigen Speicher (z. B. die NVM-Geräte 140, 142, 1). In einigen Implementierungen umfassen die aus der einen oder den mehreren NVM-Steuerungen auf den nichtflüchtigen Speicher übertragenen Daten solche Daten, die eben an die eine oder die mehreren NVM-Steuerungen übertragen werden („data in flight”) und/oder im flüchtigen Speicher in der einen oder den mehreren NVM-Steuerungen gespeicherte Metadaten (z. B. ungeschriebene Paritätsdaten, Informationen über das aktuelle Alter der NVM-(z. B. Flash-Speicher-)Geräte, Übersetzungstabellen usw.). In einigen Implementierungen wird ein Übertragungsmodul (z. B. das Übertragungsmodul 416, 4) dazu verwendet, Daten aus der einen oder den mehreren NVM-Steuerungen auf den nichtflüchtigen Speicher zu übertragen, wie vorstehend in Bezug auf 4 beschrieben.
  • In einigen Ausführungsformen umfasst der nichtflüchtige Speicher (630) ein oder mehrere NVM-Geräte (z. B. die NVM-Geräte 140, 142, 1). In einigen Implementierungen umfasst der nichtflüchtige Speicher ein einzelnes NVM-Gerät, während der nichtflüchtige Speicher in anderen Implementierungen eine Vielzahl von NVM-Geräten umfasst. In einigen Implementierungen umfasst der nichtflüchtige Speicher einen Flash-Speicher vom Typ NAND oder einen Flash-Speicher vom Typ NOR. In anderen Ausführungsformen umfasst der nichtflüchtige Speicher einen oder mehrere Typen von nichtflüchtigen Speichergeräten.
  • Als Nächstes umfasst die Netzausfalloperation (612) das Ausschalten der Netzspannung (632) einer Vielzahl von Steuerungen am Speichergerät (z. B. der Speichersteuerung 128 und der NVM-Steuerungen 130, 1). In einigen Implementierungen umfasst das Ausschalten der Netzspannung der Vielzahl der Steuerungen am Speichergerät das ausdrückliche Ausschalten der Netzspannung der Vielzahl von Steuerungen (im Gegensatz zum Zulassen eines automatischen Spannungsverlusts der Vielzahl von Steuerungen). In einigen Implementierungen dient ein Stromabschaltungsmodul (z. B. das Stromabschaltungsmodul 224, 2) dazu, die Vielzahl von Steuerungen am Speichergerät auszuschalten, wie vorstehend in Bezug auf 2 beschrieben.
  • In einigen Ausführungsformen umfasst das Ausschalten der Netzspannung der Vielzahl der Steuerungen am Speichergerät das Zurücksetzen (634) der Speichersteuerung im Anschluss an das Übertragen von Daten von der Speichersteuerung auf die eine oder die mehreren NVM-Steuerungen. In einigen Implementierungen sendet die Speichersteuerung (z. B. die Speichersteuerung 128, 1) Signale an ein Datenhärtungsmodul (z. B. das Datenhärtungsmodul 126, 1), wenn sie das Übertragen von Daten aus der einen oder den mehreren NVM-Steuerungen (z. B. den NVM-Steuerungen 130, 1) abgeschlossen hat. Wenn das Datenhärtungsmodul dieses Signal (z. B. ein Signal, dass das Datenhärten beendet ist), empfängt, kann es die Speichersteuerung zurücksetzen. In einigen Implementierungen versetzt das Zurücksetzen der Speichersteuerung die Speichersteuerung in einen vordefinierten Energiesparmodus. In einigen Implementierungen wird das Zurücksetzen der Speichersteuerung durch ein Datenhärtungsmodul gesteuert, und die Reset-Funktionalität ist während der Übertragung von Daten auf den nichtflüchtigen Speicher deaktiviert (z. B. verhindert das Datenhärtungsmodul ein Zurücksetzen der Speichersteuerung, während die Speichersteuerung im flüchtigen Speicher gehaltene Daten auf den nichtflüchtigen Speicher überträgt). In einigen Implementierungen wird ein Resetmodul im Datenhärtungsmodul (z. B. das Resetmodul 222, 2) in Verbindung mit einem Resetmodul in der Speichersteuerung (z. B. dem Resetmodul 312, 3) dazu verwendet, die Speichersteuerung im Anschluss an die Übertragung von Daten von der Speichersteuerung an die eine oder die mehreren NVM-Steuerungen zurückzusetzen, wie vorstehend in Bezug auf 23 beschrieben.
  • Als Nächstes umfasst in einigen Ausführungsformen das Ausschalten der Netzspannung der Vielzahl der Steuerungen am Speichergerät das Ausschalten der Netzspannung (636) der Speichersteuerung im Anschluss an das Zurücksetzen der Speichersteuerung. In einigen Ausführungsformen befindet sich die Speichersteuerung (z. B. die Speichersteuerung 128, 1) in einer anderen Power-Domain als die eine oder die mehreren NVM-Steuerungen (z. B. die NVM-Steuerung 130, 1). Demnach kann die Speichersteuerung unabhängig davon ausgeschaltet werden, ob die NVM-Steuerungen derzeit noch Daten auf den nichtflüchtigen Speicher übertragen. Durch diese unabhängigen Power-Domains kann das Datenhärtungsmodul (z. B. das Datenhärtungsmodul 126, 1) die verschiedenen Steuerungen am Speichergerät (z. B. dem Speichergerät 120, 1) selektiv ausschalten. Durch das selektive Ausschalten der Netzspannung der Steuerungen, sobald diese bereit sind, spart das Datenhärtungsmodul die im Energiespeichergerät (z. B. dem Energiespeichergerät 204, 2) gespeicherte Energie für verbleibende Aufgaben in der Netzausfalloperation. In einigen Implementierungen dient ein Stromabschaltungsmodul (z. B. das Stromabschaltungsmodul 224, 2) dazu, die Speichersteuerung im Anschluss an das Zurücksetzen der Speichersteuerung auszuschalten, wie vorstehend in Bezug auf 2 beschrieben.
  • In einigen Ausführungsformen umfassen die eine oder die mehreren NVM-Steuerungen (638) eine erste NVM-Steuerung und eine zweite NVM-Steuerung (z. B. eine erste und eine zweite Flash-Steuerung), und das Ausschalten der Netzspannung der Vielzahl der Steuerungen am Speichergerät umfasst das Zurücksetzen (640) der ersten NVM-Steuerung im Anschluss an die Übertragung von Daten von der ersten NVM-Steuerung auf den nichtflüchtigen Speicher. In einigen Implementierungen sendet die NVM-Steuerung (z. B. die NVM-Steuerung 130-1, 1) Signale an ein Datenhärtungsmodul (z. B. das Datenhärtungsmodul 126, 1), wenn sie das Übertragen auf den nichtflüchtigen Speicher (z. B. die NVM-Geräte 140) beendet hat. Wenn das Datenhärtungsmodul dieses Signal (z. B. ein Signal, dass das Datenhärten beendet ist), empfängt, kann es die erste NVM-Steuerung zurücksetzen. In einigen Implementierungen versetzt das Zurücksetzen der ersten NVM-Steuerung die erste NVM-Steuerung in einen vordefinierten Energiesparmodus. In einigen Ausführungsformen verhindert das Datenhärtungsmodul ein Zurücksetzen der ersten NVM-Steuerung, während die erste NVM-Steuerung im flüchtigen Speicher gehaltene Daten auf den nichtflüchtigen Speicher überträgt. In einigen Implementierungen wird ein Resetmodul im Datenhärtungsmodul (z. B. das Resetmodul 222, 2) in Verbindung mit einem Resetmodul in der ersten NVM-Steuerung (z. B. dem Resetmodul 412, 4) dazu verwendet, die erste NVM-Steuerung im Anschluss an die Übertragung von Daten aus der ersten NVM-Steuerung auf den nichtflüchtigen Speicher zurückzusetzen, wie vorstehend in Bezug auf 2 und 4 beschrieben.
  • In einigen Ausführungsformen umfassen die eine oder die mehreren NVM-Steuerungen (638) eine erste NVM-Steuerung und eine zweite NVM-Steuerung (z. B. eine erste und zweite Flash-Steuerung), und das Ausschalten der Netzspannung der Vielzahl der Steuerungen am Speichergerät umfasst das Zurücksetzen (642) der zweiten NVM-Steuerung im Anschluss an die Übertragung von Daten von der zweiten NVM-Steuerung auf den nichtflüchtigen Speicher. Die vorstehenden Erläuterungen in Verbindung mit dem Zurücksetzen der ersten NVM-Steuerung (in Schritt 640) sind ebenfalls auf das Zurücksetzen der zweiten NVM-Steuerung anwendbar. In einigen Implementierungen wird ein Resetmodul im Datenhärtungsmodul (z. B. das Resetmodul 222, 2) in Verbindung mit einem Resetmodul in der zweiten NVM-Steuerung (z. B. dem Resetmodul 412, 4) dazu verwendet, die zweite NVM-Steuerung im Anschluss an die Übertragung von Daten aus der zweiten NVM-Steuerung auf den nichtflüchtigen Speicher zurückzusetzen, wie vorstehend in Bezug auf 2 und 4 beschrieben.
  • In einigen Ausführungsformen umfassen die eine oder die mehreren NVM-Steuerungen (638) eine erste NVM-Steuerung und eine zweite NVM-Steuerung (z. B. eine erste und zweite Flash-Steuerung), und das Ausschalten der Netzspannung der Vielzahl der Steuerungen am Speichergerät umfasst weiterhin das Ausschalten der Netzspannung (644) der ersten und der zweiten NVM-Steuerung im Anschluss an das Zurücksetzen der ersten und der zweiten NVM-Steuerung. In einigen Ausführungsformen teilen die erste NVM-Steuerung und die zweite NVM-Steuerung die gleiche Power-Domain, und die erste und die zweite NVM-Steuerung werden ausgeschaltet, nachdem die erste und die zweite NVM-Steuerung zurückgesetzt wurden. In einigen Ausführungsformen befindet sich die erste NVM-Steuerung in einer ersten Power-Domain und die zweite NVM-Steuerung in einer zweiten Power-Domain, und die erste und die zweite NVM-Steuerung werden unabhängig voneinander ausgeschaltet. In einigen Implementierungen wird ein Stromabschaltungsmodul (z. B. das Stromabschaltungsmodul 224, 2) dazu verwendet, die erste und die zweite NVM-Steuerung im Anschluss an das Zurücksetzen der ersten und der zweiten NVM-Steuerung auszuschalten, wie vorstehend in Bezug auf 2 beschrieben.
  • In einigen Ausführungsformen erfolgt das Ausschalten der Netzspannung (646) der ersten und der zweiten NVM-Steuerung nach dem Ausschalten der Netzspannung der Speichersteuerung. Wie vorstehend erläutert, ermöglichen es unabhängige Power-Domains dem Datenhärtungsmodul (z. B. dem Datenhärtungsmodul 126, 1), die verschiedenen Steuerungen am Speichergerät (z. B. die Speichersteuerung 128 und die NVM-Steuerungen 130, 1) selektiv auszuschalten. In einigen Implementierungen wird das Datenhärten stufenweise abgeschlossen, da die NVM-Steuerungen das Datenhärten erst beenden können, wenn sie alle aus der Speichersteuerung zu übertragenden flüchtigen Daten empfangen haben. Folglich beendet die Speichersteuerung ihren Datenhärtungsvorgang zuerst, und somit wird die Speichersteuerung ausgeschaltet, bevor die erste und die zweite NVM-Steuerung ausgeschaltet werden.
  • In einigen Ausführungsformen wird (648) die Netzausfalloperation zu Ende geführt, gleich ob die Versorgungsspannung auf einen Spannungswert unter oder gleich dem Überspannungsschwellenwert zurückkehrt. In einigen Implementierungen wird die Netzausfalloperation zu Ende geführt, auch wenn der Netzausfallzustand vorübergehend ist (z. B. ein Blitzschlag dazu führt, dass die Versorgungsspannung kurzfristig den Überspannungsschwellenwert überschreitet). In einigen Implementierungen wird, sobald eine Netzausfalloperation beginnt, das Datenhärtungsmodul (z. B. das Datenhärtungsmodul 126, 1) tatsächlich von der für das Speichergerät bereitgestellten Versorgungsspannung getrennt und ignoriert die Versorgungsspannung so lange, bis die Netzausfalloperation beendet ist. In einigen Ausführungsformen wird die Netzausfalloperation zu Ende geführt, gleich ob die Versorgungsspannung auf einen Spannungswert zurückkehrt, der sowohl größer als der oder gleich dem Unterspannungsschwellenwert als auch kleiner als der oder gleich dem Überspannungsschwellenwert ist.
  • In einigen Ausführungsformen umfasst die Versorgungsspannung (650) eine erste und eine zweite Spannung, und das Durchführen der Netzausfalloperation (612) umfasst das Durchführen (652) der Netzausfalloperation entsprechend einer Feststellung, dass die erste Spannung höher ist als ein erster Überspannungsschwellenwert. In einigen Ausführungsformen ist erste Spannung eine von einem Host-System gelieferte Spannung (z. B. Vdd 502, 5), und die erste Spannung hat einen Sollwert von 1,5 Volt oder weniger. Zum Beispiel beträgt bei Vorgabe einer Schnittstelle mit doppelter Datenrate, Typ 3 (DDR3) die erste von einem Host-System gelieferte Spannung 1,5 Volt oder 1,35 Volt. Darüber hinaus umfasst in einigen Ausführungsformen das Durchführen der Netzausfalloperation das Durchführen der Netzausfalloperation entsprechend einer Feststellung, dass die erste Spannung entweder niedriger ist als ein erster Unterspannungsschwellenwert oder höher ist als ein erster Überspannungsschwellenwert.
  • Als Nächstes umfasst, wenn die Versorgungsspannung (650) eine erste und eine zweite Spannung umfasst, das Durchführen der Netzausfalloperation (612) das Durchführen (654) der Netzausfalloperation entsprechend einer Feststellung, dass die zweite Spannung höher ist als ein zweiter Unterspannungsschwellenwert. In einigen Ausführungsformen ist zweite Spannung eine für eine Serial Presence-Detect-(SPD-)Funktionalität gelieferte Spannung (z. B. VSPD 504, 5), und die zweite Spannung hat einen Sollwert von 3,3 Volt. Darüber hinaus umfasst in einigen Ausführungsformen das Durchführen der Netzausfalloperation das Durchführen der Netzausfalloperation entsprechend einer Feststellung, dass die zweite Spannung entweder niedriger ist als ein zweiter Unterspannungsschwellenwert oder höher ist als ein zweiter Überspannungsschwellenwert.
  • In einigen Ausführungsformen wird die Netzausfalloperation (658) mit Spannung von einem Energiespeichergerät (z. B. dem Energiespeichergerät 204, 2) am Speichergerät (z. B. dem Speichergerät 120, 1) durchgeführt. Alternativ wird die Netzausfalloperation (656) mit Spannung von einem Reserveenergiespeichergerät durchgeführt, das außerhalb des Speichergeräts angeordnet ist. Wie vorstehend in Bezug auf 5 beschrieben, wird während einer Netzausfalloperation ein Energiespeichergerät 522 verwendet, um das Speichergerät mit Energie zu versorgen, und ein Datenhärtungsmodul (z. B. das Datenhärtungsmodul 126, 1 und 5) wird verwendet, um die entsprechenden Stromquellen anzuschließen oder zu trennen (z. B. Deaktivieren der Verbindung zwischen Vdd 502 und Vgeschaltet 508 und Aktivieren der Verbindung zwischen dem Energiespeichergerät 522 und Vgeschaltet 508, 5).
  • In einigen Ausführungsformen umfasst das Energiespeichergerät (660) einen oder mehrere Kondensatoren. Zum Beispiel umfasst das Energiespeichergerät 522 in einigen Implementierungen einen einzigen Kondensator, während das Energiespeichergerät in anderen Implementierungen eine Vielzahl von Kondensatoren umfasst. In anderen Implementierungen umfasst das Energiespeichergerät eine oder mehrere Drosselspulen. In einigen Implementierungen umfasst das Energiespeichergerät eine oder mehrere weitere passive Elemente, die Energie speichern.
  • Optional überwacht das Speichergerät das Energiespeichergerät (662), um sicherzustellen, dass die Kondensatoren im Energiespeichergerät mindestens bis zu einem ersten Ladezustand aufgeladen sind. In einigen Implementierungen führt ein Datenhärtungsmodul (z. B. das Datenhärtungsmodul 126, 1) eine Zustandsüberwachung für das Energiespeichergerät durch und überwacht den/die Kondensator/en im Energiespeichergerät. Falls zum Beispiel der erste Ladezustand 98% beträgt (oder alternativ 95% oder 90%) der Ladekapazität, überwacht das Datenhärtungsmodul das Energiespeichergerät, um sicherzustellen, dass der/die Kondensator/en im Energiespeichergerät mindestens bis 98% (oder alternativ 95% oder 90%) der Ladekapazität aufgeladen sind. Falls in einigen Implementierungen ein oder mehrere Kondensatoren des Energiespeichergeräts nicht mindestens bis zum ersten Ladezustand aufgeladen sind, führt das Speichergerät eine oder mehrere Abhilfemaßnahmen durch (z. B. weiteres Laden des einen oder der mehreren Kondensatoren). In einigen Implementierungen wird ein Energiespeichergerätemodul (z. B. das Energiespeichergerätemodul 212, 2) dazu verwendet, das Energiespeichergerät zu überwachen, um sicherzustellen, dass die Kondensatoren im Energiespeichergerät mindestens bis zu einem ersten Ladezustand aufgeladen sind, wie vorstehend in Bezug auf 2 beschrieben.
  • Weiterhin testet das Speichergerät selektiv (664) einen oder mehrere Kondensatoren aus dem Energiespeichergerät während des Betriebs des Speichergeräts. In einigen Implementierungen verwendet das Datenhärtungsmodul (z. B. das Datenhärtungsmodul 126, 1) einen Algorithmus, um selektiv einen oder mehrere Kondensatoren aus dem Energiespeichergerät während des Betriebs des Speichergeräts zu testen. In einigen Implementierungen werden ein oder mehrere Kondensatoren aus dem Energiespeichergerät während des normalen Betriebs des Speichergeräts getestet (im Gegensatz zum Testen während einer Netzausfalloperation). Da beim Kondensatortest der/die Kondensators/en entladen wird/werden, verwaltet das Datenhärtungsmodul die Koordination des Kondensatortests, um sicherzustellen, dass beim Kondensatortest aus dem Energiespeichergerät eine potenzielle Netzausfalloperation nicht beeinträchtigt wird. In einigen Implementierungen wird ein Energiespeichergerätemodul (z. B. das Energiespeichergerätemodul 212, 2) dazu verwendet, selektiv einen oder mehrere Kondensatoren aus dem Energiespeichergerät während des Betriebs des Speichergeräts zu testen, wie vorstehend in Bezug auf 2 beschrieben.
  • Optional lädt (668) das Speichergerät vor der Feststellung (666), ob die für das Speichergerät bereitgestellte Versorgungsspannung höher ist als der Überspannungsschwellenwert, das Energiespeichergerät mit einer höheren Spannung als der für das Speichergerät bereitgestellten Versorgungsspannung. Wie vorstehend in Bezug auf 5 beschrieben, wird ein Energiespeichergerät 522 mit einer höheren Spannung (z. B. VVerzögerung 506, 5) als der für das Speichergerät bereitgestellten Versorgungsspannung (z. B. Vdd 502 oder VSPD 504, 5) geladen. Zum Beispiel wird in einigen Implementierungen das Energiespeichergerät mit VVerzögerung (z. B. VVerzögerung 506, 5, mit einem Sollwert von 5,7 Volt) geladen, der eine höhere Spannung darstellt als Vdd 502 oder VSPD 504, 5, mit Sollwerten von 1,35/1,5 Volt bzw. 3,3 Volt. In einigen Implementierungen wird das Energiespeichergerät mit dynamischer Einschaltstromsteuerung geladen. In einigen Implementierungen wird ein Energiespeichergerätemodul (z. B. das Energiespeichergerätemodul 212, 2) dazu verwendet, das Energiespeichergerät mit einer höheren Spannung als der für das Speichergerät bereitgestellten Versorgungsspannung zu laden, wie vorstehend in Bezug auf 2 beschrieben. In einigen Ausführungsformen lädt das Speichergerät das Energiespeichergerät mit einer höheren Spannung als der für das Speichergerät bereitgestellten Versorgungsspannung vor der Feststellung, ob die für das Speichergerät bereitgestellte Versorgungsspannung entweder niedriger ist als der Unterspannungsschwellenwert oder höher ist als der Überspannungsschwellenwert.
  • Als Nächstes stellt das Speichergerät fest (670), ob das Energiespeichergerät (z. B. das Energiespeichergerät 204, 2) innerhalb einer vorgegebenen Ladedauer einen Schwellenwert für einen Mindest-Ladezustand erreicht. Falls zum Beispiel der Schwellenwert für einen Mindest-Ladezustand 95% der Ladekapazität und die vorgegebene Ladedauer 25 ms beträgt, stellt das Speichergerät fest, ob das Energiespeichergerät innerhalb von 25 ms mindestens bis 95% seiner Ladekapazität geladen ist. In einigen Implementierungen wird ein Energiespeichergerätemodul (z. B. das Energiespeichergerätemodul 212, 2) dazu verwendet, festzustellen, ob das Energiespeichergerät innerhalb einer vorgegebenen Ladedauer einen Mindest-Ladezustand erreicht, wie vorstehend in Bezug auf 2 beschrieben.
  • Weiterhin verhindert (672) das Speichergerät entsprechend einer Feststellung, dass das Energiespeichergerät innerhalb der vorgegebenen Ladedauer den Schwellenwert für einen Mindest-Ladezustand nicht erreicht, den Betrieb des Speichergeräts. In einigen Implementierungen weist eine Feststellung, dass das Energiespeichergerät den vorgegebenen Schwellenwert für einen Mindest-Ladezustand nicht innerhalb der vorgegebenen Ladedauer erreicht, darauf hin, dass ein Datenhärtungsfehler auftreten wird, wenn künftig eine Netzausfalloperation durchgeführt wird (z. B. eine vorausschauende Fehlererkennung). Folglich wird der Betrieb des Speichergeräts verhindert, um einen künftigen Datenhärtungsfehler zu vermeiden. In einigen Implementierungen wird ein Energiespeichergerätemodul (z. B. das Energiespeichergerätemodul 212, 2) dazu verwendet, den Betrieb des Speichergeräts entsprechend einer Feststellung, dass das Energiespeichergerät den Schwellenwert für einen Mindest-Ladezustand nicht innerhalb der vorgegebenen Ladedauer erreicht, zu verhindern, wie vorstehend in Bezug auf 2 beschrieben.
  • In einigen Ausführungsformen umfasst das Verhindern des Betriebs des Speichergeräts das Übermitteln (674) einer Fehlermeldung an ein Host-System (z. B. das Computersystem 110, 1). In einigen Implementierungen wird die Fehlermeldung mit dem Host-System durch ein SPD-Gerät (z. B. das SPD-Gerät 124, 1) oder einen SPD-Buscontroller kommuniziert.
  • Optional entlädt (676) das Ladegerät das Energiespeichergerät nach dem Ausschalten der Vielzahl von Steuerungen am Speichergerät. In einigen Implementierungen entlädt das Speichergerät nach dem Ausschalten der Netzspannung der Vielzahl der Steuerungen (z. B. der Speichersteuerung 128 und der NVM-Steuerungen 130, 1) am Speichergerät (z. B. dem Speichergerät 120, 1) das Energiespeichergerät (z. B. das Energiespeichergerät, 2) und das Speichergerät schaltet ab wie bei einem normalen „harten” Stromabschaltung. In einigen Implementierungen umfasst das Entladen des Energiespeichergeräts das Entladen von einem oder mehreren Kondensatoren des Energiespeichergeräts. In einigen Implementierungen wird ein Stromabschaltungsmodul (z. B. das Stromabschaltungsmodul 228, 2) dazu verwendet, das Energiespeichergerät im Anschluss an das Ausschalten der Netzspannung der Vielzahl der Steuerungen am Speichergerät zu entladen, wie vorstehend in Bezug auf 2 beschrieben.
  • In einigen Ausführungsformen umfasst das Verfahren 600 zum Schützen von Daten in einem Speichergerät weiterhin das Aufzeichnen von Daten (678) in Bezug auf die Netzausfalloperation in den nichtflüchtigen Speicher. In einigen Implementierungen umfasst das Aufzeichnen der Daten in Bezug auf die Netzausfalloperation das Aufzeichnen von einem oder mehreren der folgenden Elemente: welche Versorgungsspannung die Netzausfalloperation auslöste (z. B. Vdd 502 oder VSPD 504), welcher Zustand die Netzausfalloperation auslöste (z. B. Unterschreiten eines Unterspannungsschwellenwerts oder Überschreiten eines Überspannungsschwellenwerts), Echtzeit, zu der sich das Netzausfallereignis ereignete (z. B. Montag, 15. Oktober 2013 um 12:03:17 h), die Dauer der vollständigen Netzausfalloperation, ob die Netzausfalloperation erfolgreich war, und optional weitere Informationen in Bezug auf die Netzausfalloperation.
  • In einigen Ausführungsformen umfasst das Verfahren 600 zum Schützen von Daten in einem Speichergerät weiterhin das Durchführen einer Netzausfall-Testoperation (680). Eine Netzausfall-Testoperation kann ohne den tatsächlichen Eintritt eines Stromausfalls eingeleitet werden. Zum Beispiel kann eine Netzausfall-Testoperation durch einen Befehl vom Host-System eingeleitet werden oder wenn ein Meilensteinereignis erkannt wird (z. B. eine Echtzeituhr entspricht einer geplanten Testzeit), ohne tatsächliches Eintreten eines Stromausfalls. Die Netzausfall-Testoperation umfasst das (682) Melden des Netzausfallzustandes an eine oder mehrere Steuerungen aus der Vielzahl von Steuerungen am Speichergerät, Übertragen (684) der im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher, Ausschalten (686) der einen oder der mehreren Steuerungen am Speichergerät, und Aufzeichnen (688) von Daten in Bezug auf die Netzausfall-Testoperation. In einigen Implementierungen umfassen die aufgezeichneten Daten in Bezug auf die Netzausfall-Testoperation eines oder mehrere der folgenden Elemente: Dauer der vollständigen Netzausfall-Testoperation, ob die Netzausfalloperation erfolgreich war, und optional weitere Informationen in Bezug auf die Netzausfall-Testoperation.
  • In einigen Implementierungen handelt es sich in Bezug auf jedes der vorstehend beschriebenen Verfahren bei dem nichtflüchtigen Speicher um ein einzelnes NVM-Gerät (z. B. Flash-Speichergerät), während in anderen Implementierungen der nichtflüchtige Speicher eine Vielzahl von NVM-Geräten (z. B. Flash-Speichergeräte) umfasst.
  • In einigen Implementierungen umfasst in Bezug auf jedes der vorstehend beschriebenen Verfahren ein Speichergerät (1) eine Schnittstelle zum Koppeln des Speichergeräts an ein Host-System, (2) eine Vielzahl von Steuerungen, wobei jede aus der Vielzahl von Steuerungen dazu konfiguriert ist, im flüchtigen Speicher gehaltene Daten auf den nichtflüchtigen Speicher zu übertragen, und (3) ein Datenhärtungsmodul, das einen oder mehrere Prozessoren und ein Energiespeichergerät umfasst, wobei das Speichergerät dazu konfiguriert ist, jedes beliebige der vorstehend beschriebenen Verfahren durchzuführen oder dessen Durchführung zu steuern.
  • Es versteht sich, dass die Begriffe ”erste/r/s”, ”zweite/r/s” usw. in diesem Schriftstück dazu verwendet werden, verschiedene Elemente zu beschreiben, die aber durch diese Begriffe nicht eingeschränkt werden sollten. Diese Begriffe dienen nur zur Unterscheidung der einzelnen Elemente von einander. Beispielsweise könnte ein erster Kontakt als ein zweiter Kontakt bezeichnet werden, und gleichermaßen könnte ein zweiter Kontakt als erster Kontakt bezeichnet werden, was die Bedeutung der Beschreibung zu ändern, sofern jedes Auftauchen von ”erster Kontakt” systematisch umbenannt wird und jedes Auftauchen von ”zweiter Kontakt” systematisch umbenannt wird. Der erste Kontakt und der zweite Kontakt sind beides Kontakte, es handelt sich dabei aber nicht um den gleichen Kontakt.
  • Die hier verwendeten Begrifflichkeiten dienen nur der Beschreibung von bestimmten Ausführungsformen und sollen nicht als Einschränkung der Ansprüche verstanden werden. So, wie sie in der Beschreibung der Ausführungsformen und der angehängten Ansprüche verwendet wird, sollen die Singularformen „ein”, „eine/r/s” und „der/die/das” ebenfalls die Pluralformen einschließen, sofern der Zusammenhang nicht eindeutig etwas anderes vorgibt. Es versteht sich ebenfalls, dass der Begriff „und/oder”, wie er in diesem Schriftstück verwendet wird, jede und alle möglichen Kombinationen von einen oder mehrere der dazugehörigen aufgelisteten Elemente bezeichnet. Es versteht sich ferner, dass die Begriffe „umfasst” und/oder „umfassend”, wenn sie in dieser Spezifikation verwendet werden, das Vorhandensein von angegebenen Funktionen, Einheiten, Schritten, Arbeitsgängen, Elementen und/oder Komponenten bezeichnen, nicht aber das Vorhandensein oder das Hinzufügen von einer oder mehreren anderen Funktionen, Einheiten, Schritten, Arbeitsgängen, Elementen, Komponenten und/oder Gruppen von diesen ausschließen.
  • Wie hierin verwendet, kann der Begriff „falls” in der Bedeutung „wenn” oder „bei” oder „als Reaktion auf das Bestimmen” oder „gemäß einer Bestimmung” oder „als Reaktion auf die Feststellung” ausgelegt werden, dass je nach Textzusammenhang eine angegebene Voraussetzung erfüllt ist. Analog kann die Formulierung „wenn festgestellt wird [dass eine angegebene unabdingbare Voraussetzung erfüllt ist]” oder „falls [eine angegebene unabdingbare Voraussetzung erfüllt ist]” oder „wenn [eine angegebene unabdingbare Voraussetzung erfüllt ist]” kann je nach Textzusammenhang ausgelegt werden als: „nach Feststellung” oder „als Reaktion auf die Feststellung” oder „gemäß einer Feststellung” oder „nach Erkennung” oder „als Reaktion auf die Erkennung”, dass eine festgestellte unabdingbare Voraussetzung erfüllt ist.
  • Die vorstehende Beschreibung erfolgte als Erläuterung unter Bezugnahme auf spezifische Implementierungen. Allerdings sind die vorstehenden hinweisenden Erörterungen weder als erschöpfend zu betrachten noch sollen sie die Ansprüche auf die exakt offenbarten Formen beschränken. Zahlreiche Änderungen und Varianten sind angesichts der vorstehenden Lehre möglich. Die Implementierungen wurden dazu ausgewählt und beschrieben, die Funktionsprinzipien und praktischen Anwendungen optimal zu erläutern, um somit anderen Fachleuten Möglichkeiten zu bieten.

Claims (31)

  1. Verfahren zum Schützen von Daten in einem Speichergerät, umfassend: Feststellen, ob eine für ein Datenspeichergerät bereitgestellte Versorgungsspannung höher ist als ein Überspannungsschwellenwert; und entsprechend einer Feststellung, dass die Versorgungsspannung höher ist als der Überspannungsschwellenwert, Durchführen einer Netzausfalloperation, wobei die Netzausfalloperation umfasst: Melden eines Netzausfallzustandes an eine Vielzahl von Steuerungen am Speichergerät; Übertragen der im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher; und Ausschalten der Netzspannung der Vielzahl der Steuerungen am Speichergerät.
  2. Verfahren nach Anspruch 1, wobei die Vielzahl der Steuerungen am Speichergerät eine Speichersteuerung und eine oder mehrere Steuerungen für nichtflüchtige Speicher (NVM) umfasst, wobei die eine oder die mehreren NVM-Steuerungen durch die Speichersteuerung an eine Host-Schnittstelle des Speichergeräts gekoppelt sind.
  3. Verfahren nach Anspruch 2, wobei das Übertragen der im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher umfasst: Übertragen von Daten von der Speichersteuerung an die eine oder mehreren NVM-Steuerungen; und Übertragung von Daten von der einen oder den mehreren NVM-Steuerungen auf den nichtflüchtigen Speicher.
  4. Verfahren nach Anspruch 3, wobei das Ausschalten der Netzspannung der Vielzahl der Steuerungen am Speichergerät umfasst: Zurücksetzen der Speichersteuerung nach dem Übertragen von Daten von der Speichersteuerung an die eine oder mehreren NVM-Steuerungen; und Ausschalten der Netzspannung der Speichersteuerung nach dem Zurücksetzen der Speichersteuerung.
  5. Verfahren nach Anspruch 3, wobei die eine oder mehreren NVM-Steuerungen eine erste NVM-Steuerung und eine zweite NVM-Steuerung umfasst/umfassen und wobei das Ausschalten der Netzspannung der Vielzahl der Steuerungen am Speichergerät umfasst: Zurücksetzen der ersten NVM-Steuerung nach Übertragen von Daten von der ersten NVM-Steuerung auf den nichtflüchtigen Speicher; Zurücksetzen der zweiten NVM-Steuerung nach Übertragen von Daten von der zweiten NVM-Steuerung auf den nichtflüchtigen Speicher; und Ausschalten der Netzspannung der ersten und der zweiten NVM-Steuerung nach dem Zurücksetzen der ersten und der zweiten NVM-Steuerung.
  6. Verfahren nach Anspruch 5, wobei das Ausschalten der Netzspannung der ersten und zweiten NVM-Steuerung nach dem Ausschalten der Netzspannung der Speichersteuerung erfolgt.
  7. Verfahren nach einem der Ansprüche 1–6, wobei die Netzausfalloperation zu Ende geführt wird, gleich ob die Versorgungsspannung auf einen Spannungswert unter oder gleich dem Überspannungsschwellenwert zurückkehrt.
  8. Verfahren nach einem der Ansprüche 1–7, wobei es sich bei der Versorgungsspannung um eine durch ein Host-System bereitgestellte Spannung handelt.
  9. Verfahren nach einem der Ansprüche 1–7, wobei es sich bei der Versorgungsspannung um eine für eine Serial Presence-Detect-(SPD-)Funktionalität bereitgestellte Spannung handelt.
  10. Verfahren nach einem der Ansprüche 1–9, wobei die Versorgungsspannung eine erste Spannung und eine zweite Spannung umfasst, und wobei das Durchführen der Netzausfalloperation umfasst: Durchführen der Netzausfalloperation entsprechend einer Feststellung, dass die erste Spannung höher ist als ein erster Überspannungsschwellenwert; und Durchführen der Netzausfalloperation entsprechend einer Feststellung, dass die zweite Spannung höher ist als ein zweiter Überspannungsschwellenwert.
  11. Verfahren nach einem der Ansprüche 1–10, wobei die Netzausfalloperation mit Spannung aus einem Reserveenergiespeichergerät durchgeführt wird.
  12. Verfahren nach einem der Ansprüche 1–10, wobei die Netzausfalloperation mit Spannung von einem Energiespeichergerät am Speichergerät durchgeführt wird.
  13. Verfahren nach Anspruch 12, wobei das Energiespeichergerät einen oder mehrere Kondensatoren umfasst.
  14. Verfahren nach einem der Ansprüche 12–13, das weiterhin umfasst: Überwachen des Energiespeichergeräts, um sicherzustellen, dass die Kondensatoren im Energiespeichergerät mindestens bis zu einem ersten Ladezustand aufgeladen sind: und selektives Testen von einem oder mehreren Kondensatoren aus dem Energiespeichergerät während des Betriebs des Speichergeräts.
  15. Verfahren nach einem der Ansprüche 12–14, das weiterhin umfasst: vor der Feststellung, ob die für das Speichergerät bereitgestellte Versorgungsspannung höher ist als der Überspannungsschwellenwert: Laden des Energiespeichergeräts mit einer Spannung, die höher ist als die für das Speichergerät bereitgestellte Spannung. Feststellen, ob das Energiespeichergerät innerhalb einer vorgegebenen Ladedauer einen Schwellenwert für einen Mindest-Ladezustand erreicht; und entsprechend einer Feststellung, dass das Energiespeichergerät innerhalb der vorgegebenen Ladedauer den Schwellenwert für einen Mindest-Ladezustand nicht erreicht, Verhindern des Betriebs des Speichergeräts.
  16. Verfahren nach Anspruch 15, wobei das Verhindern des Betriebs des Speichergeräts das Übermitteln einer Fehlermeldung an ein Host-System umfasst.
  17. Verfahren nach einem der Ansprüche 12–16, das weiterhin das Entladen des Energiespeichergeräts nach dem Ausschalten der Netzspannung der Vielzahl von Steuerungen des Speichergeräts umfasst.
  18. Verfahren nach einem der Ansprüche 1–17, wobei der nichtflüchtige Speicher ein oder mehrere NVM-Geräte umfasst.
  19. Verfahren nach einem der Ansprüche 1–18, wobei das Speichergerät ein DIMM-(Dual In-line Memory-)Gerät umfasst.
  20. Verfahren nach einem der Ansprüche 1–19, wobei die Vielzahl von Steuerungen am Speichergerät mindestens eine Steuerung für nichtflüchtige Speicher und mindestens eine weitere Speichersteuerung zusätzlich zu der mindestens einen Steuerung für nichtflüchtige Speicher umfasst.
  21. Verfahren nach einem der Ansprüche 1–20, wobei eine aus der Vielzahl von Steuerungen am Speichergerät Schnittstellenbefehle mit doppelter Datenrate (DDR) auf Serial Advance Technology Attachment(SATA)-Schnittstellenbefehle abbildet.
  22. Verfahren nach einem der Ansprüche 1–21, wobei der Überspannungsschwellenwert programmierbar ist.
  23. Verfahren nach einem der Ansprüche 1–22, wobei das das Melden des Netzausfallzustandes an die Vielzahl von Steuerungen am Speichergerät das separate Melden des Netzausfallzustandes an jede einzelne aus der Vielzahl von Steuerungen umfasst.
  24. Verfahren nach einem der Ansprüche 1–23, das weiterhin das Aufzeichnen von Daten in Bezug auf die Netzausfalloperation in den nichtflüchtigen Speicher umfasst.
  25. Verfahren nach einem der Ansprüche 1–24, das weiterhin das Durchführen einer Netzausfall-Testoperation umfasst, wobei die Netzausfall-Testoperation umfasst: Melden des Netzausfallzustandes an eine oder mehrere Steuerungen aus der Vielzahl von Steuerungen auf dem Speichergerät; für die eine oder mehreren Steuerungen, Übertragung der im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher; Ausschalten der Netzspannung der einen oder mehreren Steuerungen am Speichergerät; und Aufzeichnen von Daten in Bezug auf die Netzausfall-Testoperation.
  26. Speichergerät, umfassend: eine Schnittstelle zum Koppeln des Speichergeräts an ein Host-System; eine Vielzahl von Steuerungen, wobei jede aus der Vielzahl von Steuerungen dazu konfiguriert ist, im flüchtigen Speicher gehaltene Daten auf den nichtflüchtigen Speicher zu übertragen; und ein Datenhärtungsmodul, das ein Energiespeichergerät umfasst, wobei das Datenhärtungsmodul dazu konfiguriert ist: festzustellen, ob eine für ein Datenspeichergerät bereitgestellte Versorgungsspannung höher ist als ein Überspannungsschwellenwert; und entsprechend einer Feststellung, dass die Versorgungsspannung höher ist als der Überspannungsschwellenwert, eine Netzausfalloperation durchzuführen, wobei die Netzausfalloperation umfasst: Melden eines Netzausfallzustandes an die Vielzahl von Steuerungen am Speichergerät, wobei die Vielzahl der Steuerungen zum Übertragen der im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher veranlasst wird, und Ausschalten der Netzspannung der Vielzahl der Steuerungen am Speichergerät.
  27. Speichergerät nach Anspruch 26, das ferner dazu konfiguriert ist, nach dem Verfahren nach einem der Ansprüche 2–25 zu arbeiten.
  28. Nichtflüchtiges computerlesbares Speichermedium, auf dem ein oder mehrere Programme zur Durchführung durch einen oder mehrere Prozessoren eines Speichergeräts gespeichert sind, das über eine Vielzahl von Steuerungen und ein Datenhärtungsmodul verfügt, wobei das eine oder die mehreren Programme Anweisungen umfassen, die bei Ausführen das Speichergerät dazu veranlassen: festzustellen, ob eine für ein Datenspeichergerät bereitgestellte Versorgungsspannung höher ist als ein Überspannungsschwellenwert; und entsprechend einer Feststellung, dass die Versorgungsspannung höher ist als der Überspannungsschwellenwert, eine Netzausfalloperation durchzuführen, wobei die Netzausfalloperation umfasst: Melden eines Netzausfallzustandes an eine Vielzahl von Steuerungen am Speichergerät; Übertragen der im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher; und Ausschalten der Netzspannung der Vielzahl der Steuerungen am Speichergerät.
  29. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 28, das ferner dazu konfiguriert ist, nach dem Verfahren nach einem der Ansprüche 2–25 zu arbeiten.
  30. Speichergerät, das über die Funktion verfügt, Daten zu schützen, umfassend: eine Schnittstelle zum Koppeln des Speichergeräts an ein Host-System; Mittel, um festzustellen, ob eine für ein Speichergerät bereitgestellte Versorgungsspannung höher ist als ein Überspannungsschwellenwert; und Mittel zum Durchführen einer Netzausfalloperation entsprechend einer Feststellung, dass die Versorgungsspannung höher ist als der Überspannungsschwellenwert, wobei die Mittel zum Durchführen der Netzausfalloperation umfassen: Mittel zum Melden eines Netzausfallzustandes an eine Vielzahl von Steuerungen am Speichergerät; Mittel zum Übertragen der im flüchtigen Speicher gehaltenen Daten auf den nichtflüchtigen Speicher; und Mittel zum Ausschalten der Netzspannung der Vielzahl der Steuerungen am Speichergerät.
  31. Speichergerät nach Anspruch 30, das ferner dazu konfiguriert ist, nach dem Verfahren nach einem der Ansprüche 2–25 zu arbeiten.
DE112014005417.8T 2013-11-27 2014-11-25 Architektur für harten Stromausfall Pending DE112014005417T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361909924P 2013-11-27 2013-11-27
US61/909,924 2013-11-27
US14/135,417 US9122636B2 (en) 2013-11-27 2013-12-19 Hard power fail architecture
US14/135,417 2013-12-19
PCT/US2014/067476 WO2015081129A2 (en) 2013-11-27 2014-11-25 Hard power fail architecture

Publications (1)

Publication Number Publication Date
DE112014005417T5 true DE112014005417T5 (de) 2016-09-15

Family

ID=53183726

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112014005417.8T Pending DE112014005417T5 (de) 2013-11-27 2014-11-25 Architektur für harten Stromausfall

Country Status (4)

Country Link
US (1) US9122636B2 (de)
CN (1) CN106415503B (de)
DE (1) DE112014005417T5 (de)
WO (1) WO2015081129A2 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9443601B2 (en) * 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US10296232B2 (en) * 2015-09-01 2019-05-21 Western Digital Technologies, Inc. Service level based control of storage systems
CN106328059B (zh) * 2016-09-07 2017-10-27 京东方科技集团股份有限公司 用于电学补偿的存储器中数据更新的方法和装置
CN106776095B (zh) * 2016-12-22 2020-01-03 湖南国科微电子股份有限公司 Ssd固态硬盘数据可靠性智能检测方法及检测装置
JP6818603B2 (ja) * 2017-03-23 2021-01-20 キオクシア株式会社 メモリシステム、及びメモリシステムの制御方法
US11099961B2 (en) * 2019-03-14 2021-08-24 Dell Products L.P. Systems and methods for prevention of data loss in a power-compromised persistent memory equipped host information handling system during a power loss event
US11157439B2 (en) 2019-07-25 2021-10-26 Western Digital Technologies, Inc. Method for delaying fundamental reset in power loss protection (PLP) enabled devices
CN111722690B (zh) * 2020-06-12 2022-04-22 苏州浪潮智能科技有限公司 服务器电源模块监控方法、装置、服务器和存储介质
EP4075434B1 (de) * 2021-04-12 2023-11-08 Samsung Electronics Co., Ltd. Erkennung von überspannungen in speichergeräten und bereitstellung von statusinformationen

Family Cites Families (179)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4600962A (en) * 1983-02-03 1986-07-15 Sentec Inc. Apparatus for monitoring and protecting a device against a plurality of fault conditions
US4916652A (en) 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US5193176A (en) 1990-10-17 1993-03-09 Powercard Supply C.A. Computer work saving during power interruption
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US5416915A (en) 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
US5537555A (en) 1993-03-22 1996-07-16 Compaq Computer Corporation Fully pipelined and highly concurrent memory controller
US5519847A (en) 1993-06-30 1996-05-21 Intel Corporation Method of pipelining sequential writes in a flash memory
GB9419246D0 (en) 1994-09-23 1994-11-09 Cambridge Consultants Data processing circuits and interfaces
US5666114A (en) 1994-11-22 1997-09-09 International Business Machines Corporation Method and means for managing linear mapped address spaces storing compressed data at the storage subsystem control unit or device level
US5530705A (en) 1995-02-08 1996-06-25 International Business Machines Corporation Soft error recovery system and method
US6393584B1 (en) 1995-04-26 2002-05-21 International Business Machines Corporation Method and system for efficiently saving the operating state of a data processing system
WO1997000518A1 (fr) 1995-06-14 1997-01-03 Hitachi, Ltd. Memoire a semiconducteurs, unite de memoire et carte de memoire
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6134148A (en) 1997-09-30 2000-10-17 Hitachi, Ltd. Semiconductor integrated circuit and data processing system
US5943692A (en) 1997-04-30 1999-08-24 International Business Machines Corporation Mobile client computer system with flash memory management utilizing a virtual address map and variable length data
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
JPH11126497A (ja) 1997-10-22 1999-05-11 Oki Electric Ind Co Ltd 不揮発性半導体記憶装置
US7111293B1 (en) 1998-06-03 2006-09-19 Ants Software, Inc. Method for increased concurrency in a computer system
US6505305B1 (en) 1998-07-16 2003-01-07 Compaq Information Technologies Group, L.P. Fail-over of multiple memory blocks in multiple memory modules in computer system
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6295592B1 (en) 1998-07-31 2001-09-25 Micron Technology, Inc. Method of processing memory requests in a pipelined memory controller
US6438661B1 (en) 1999-03-03 2002-08-20 International Business Machines Corporation Method, system, and program for managing meta data in a storage system and rebuilding lost meta data in cache
US6449625B1 (en) 1999-04-20 2002-09-10 Lucent Technologies Inc. Use of a two-way stack approach to optimize flash memory management for embedded database systems
US6564271B2 (en) 1999-06-09 2003-05-13 Qlogic Corporation Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
US7318117B2 (en) 2004-02-26 2008-01-08 Super Talent Electronics, Inc. Managing flash memory including recycling obsolete sectors
US20080282128A1 (en) 1999-08-04 2008-11-13 Super Talent Electronics, Inc. Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
US20050114587A1 (en) 2003-11-22 2005-05-26 Super Talent Electronics Inc. ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines
US6484224B1 (en) 1999-11-29 2002-11-19 Cisco Technology Inc. Multi-interface symmetric multiprocessor
DE19961138C2 (de) 1999-12-17 2001-11-22 Siemens Ag Multiport-RAM-Speichervorrichtung
US7082056B2 (en) 2004-03-12 2006-07-25 Super Talent Electronics, Inc. Flash memory device and architecture with multi level cells
US8037234B2 (en) 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
US20020152305A1 (en) 2000-03-03 2002-10-17 Jackson Gregory J. Systems and methods for resource utilization analysis in information management environments
US6615307B1 (en) 2000-05-10 2003-09-02 Micron Technology, Inc. Flash with consistent latency for read operations
US20030188045A1 (en) 2000-04-13 2003-10-02 Jacobson Michael B. System and method for distributing storage controller tasks
US6678788B1 (en) 2000-05-26 2004-01-13 Emc Corporation Data type and topological data categorization and ordering for a mass storage system
US6442076B1 (en) 2000-06-30 2002-08-27 Micron Technology, Inc. Flash memory with multiple status reading capability
US6738870B2 (en) 2000-12-22 2004-05-18 International Business Machines Corporation High speed remote storage controller
US20020178162A1 (en) 2001-01-29 2002-11-28 Ulrich Thomas R. Integrated distributed file system with variable parity groups
US7017107B2 (en) 2001-04-30 2006-03-21 Sun Microsystems, Inc. Storage array employing scrubbing operations at the disk-controller level
US6938253B2 (en) 2001-05-02 2005-08-30 Portalplayer, Inc. Multiprocessor communication system and method
US6757768B1 (en) 2001-05-17 2004-06-29 Cisco Technology, Inc. Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
US7068603B2 (en) 2001-07-06 2006-06-27 Juniper Networks, Inc. Cross-bar switch
US6836815B1 (en) 2001-07-11 2004-12-28 Pasternak Solutions Llc Layered crossbar for interconnection of multiple processors and shared memories
TW539946B (en) 2001-08-07 2003-07-01 Solid State System Company Ltd Window-based flash memory storage system, and the management method and the access method thereof
JP4437519B2 (ja) 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
US7028213B2 (en) 2001-09-28 2006-04-11 Hewlett-Packard Development Company, L.P. Error indication in a raid memory system
JP3963692B2 (ja) 2001-10-15 2007-08-22 富士通株式会社 複数の情報処理装置の電源制御方法、その情報処理装置、及びプログラム
US7032123B2 (en) 2001-10-19 2006-04-18 Sun Microsystems, Inc. Error recovery
JP3663377B2 (ja) 2001-10-23 2005-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記憶装置、読み出しデータの処理装置および読み出しデータの処理方法
US7380085B2 (en) 2001-11-14 2008-05-27 Intel Corporation Memory adapted to provide dedicated and or shared memory to multiple processors and method therefor
US6738268B1 (en) * 2001-11-28 2004-05-18 Emc Corporation Method and apparatus for providing power signals to operating circuitry mounted on circuit boards
US6798696B2 (en) 2001-12-04 2004-09-28 Renesas Technology Corp. Method of controlling the operation of non-volatile semiconductor memory chips
US6990603B2 (en) 2002-01-02 2006-01-24 Exanet Inc. Method and apparatus for securing volatile data in power failure in systems having redundancy
US6871257B2 (en) 2002-02-22 2005-03-22 Sandisk Corporation Pipelined parallel programming operation in a non-volatile memory system
US6836808B2 (en) 2002-02-25 2004-12-28 International Business Machines Corporation Pipelined packet processing
KR100476888B1 (ko) 2002-04-04 2005-03-17 삼성전자주식회사 온도보상기능을 가진 멀티비트 플래쉬메모리
JP4079684B2 (ja) 2002-05-08 2008-04-23 株式会社日立製作所 ヒープメモリ管理方法およびそれを用いた計算機システム
US6895464B2 (en) 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US7051155B2 (en) 2002-08-05 2006-05-23 Sun Microsystems, Inc. Method and system for striping data to accommodate integrity metadata
US6978343B1 (en) 2002-08-05 2005-12-20 Netlogic Microsystems, Inc. Error-correcting content addressable memory
US20040153902A1 (en) 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
US7043505B1 (en) 2003-01-28 2006-05-09 Unisys Corporation Method variation for collecting stability data from proprietary systems
US7162678B2 (en) 2003-03-14 2007-01-09 Quantum Corporation Extended error correction codes
KR100543447B1 (ko) 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
WO2004099985A1 (ja) 2003-05-09 2004-11-18 Fujitsu Limited 実行環境の危険予測/回避方法,システム,プログラムおよびその記録媒体
EP2511787B1 (de) 2003-05-23 2017-09-20 IP Reservoir, LLC Datendekomprimierung und -suche unter Verwendung von FPGA-Geräten
US7877647B2 (en) 2003-05-23 2011-01-25 Hewlett-Packard Development Company, L.P. Correcting a target address in parallel with determining whether the target address was received in error
US7685254B2 (en) 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US20040252670A1 (en) 2003-06-12 2004-12-16 Nokia Corporation Adaptive power margin adjustment for a 1xEV-DV system
US7054968B2 (en) 2003-09-16 2006-05-30 Denali Software, Inc. Method and apparatus for multi-port memory controller
US7100002B2 (en) 2003-09-16 2006-08-29 Denali Software, Inc. Port independent data transaction interface for multi-port devices
US7523157B2 (en) 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US7173852B2 (en) 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7376887B2 (en) 2003-12-22 2008-05-20 International Business Machines Corporation Method for fast ECC memory testing by software including ECC check byte
JP4477365B2 (ja) 2004-01-29 2010-06-09 株式会社日立製作所 複数インタフェースを有する記憶装置、および、その記憶装置の制御方法
US7350044B2 (en) 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US7389465B2 (en) 2004-01-30 2008-06-17 Micron Technology, Inc. Error detection and correction scheme for a memory device
US20080147964A1 (en) 2004-02-26 2008-06-19 Chow David Q Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function
US7020017B2 (en) 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
EP1870814B1 (de) 2006-06-19 2014-08-13 Texas Instruments France Verfahren und Vorrichtung für sicheren, nachfragebasierten Seitenabruf für Prozessorvorrichtungen
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US20050273560A1 (en) 2004-06-03 2005-12-08 Hulbert Jared E Method and apparatus to avoid incoherency between a cache memory and flash memory
US7334179B2 (en) 2004-06-04 2008-02-19 Broadcom Corporation Method and system for detecting and correcting errors while accessing memory devices in microprocessor systems
US7159069B2 (en) 2004-06-23 2007-01-02 Atmel Corporation Simultaneous external read operation during internal programming in a flash memory device
JP2008511929A (ja) 2004-08-30 2008-04-17 シリコン ストレージ テクノロジー、 インク. 携帯電話の不揮発性メモリを管理するシステムおよび方法
US20060156177A1 (en) 2004-12-29 2006-07-13 Sailesh Kottapalli Method and apparatus for recovering from soft errors in register files
US7657696B2 (en) 2005-02-25 2010-02-02 Lsi Corporation Method to detect NAND-flash parameters by hardware automatically
US7707232B2 (en) 2005-05-13 2010-04-27 Microsoft Corporation Implementation for collecting unmanaged memory
US20070061597A1 (en) 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
KR100705220B1 (ko) 2005-09-15 2007-04-06 주식회사 하이닉스반도체 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법
JP2009510585A (ja) 2005-09-27 2009-03-12 エヌエックスピー ビー ヴィ 誤り検出/訂正回路及び方法
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
KR100715147B1 (ko) 2005-10-06 2007-05-10 삼성전자주식회사 전류소모를 감소시키는 내부전원전압 발생회로를 가지는멀티칩 반도체 메모리 장치
US20070083697A1 (en) 2005-10-07 2007-04-12 Microsoft Corporation Flash memory management
JP4764696B2 (ja) 2005-10-07 2011-09-07 ルネサスエレクトロニクス株式会社 半導体集積回路装置
US8223553B2 (en) 2005-10-12 2012-07-17 Macronix International Co., Ltd. Systems and methods for programming a memory device
US7500062B2 (en) 2005-11-17 2009-03-03 International Business Machines Corporation Fast path memory read request processing in a multi-level memory architecture
WO2007058617A1 (en) 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
US7546515B2 (en) 2005-12-27 2009-06-09 Sandisk Corporation Method of storing downloadable firmware on bulk media
US7562283B2 (en) 2005-12-27 2009-07-14 D.S.P. Group Ltd. Systems and methods for error correction using binary coded hexidecimal or hamming decoding
US7349264B2 (en) 2005-12-28 2008-03-25 Sandisk Corporation Alternate sensing techniques for non-volatile memories
WO2007080586A2 (en) 2006-01-10 2007-07-19 Saifun Semiconductors Ltd. Rd algorithm improvement for nrom technology
KR100725410B1 (ko) 2006-01-20 2007-06-07 삼성전자주식회사 전원 상태에 따라 비휘발성 메모리의 블록 회수를 수행하는장치 및 그 방법
US20070234143A1 (en) 2006-01-25 2007-10-04 Samsung Electronics Co., Ltd. Semiconductor memory devices and methods of testing for failed bits of semiconductor memory devices
JP4859471B2 (ja) 2006-02-02 2012-01-25 株式会社日立製作所 ストレージシステム及びストレージコントローラ
US7870326B2 (en) 2006-07-28 2011-01-11 Samsung Electronics Co., Ltd. Multiprocessor system and method thereof
US7681106B2 (en) 2006-03-29 2010-03-16 Freescale Semiconductor, Inc. Error correction device and methods thereof
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US20070245061A1 (en) 2006-04-13 2007-10-18 Intel Corporation Multiplexing a parallel bus interface and a flash memory interface
US7685494B1 (en) 2006-05-08 2010-03-23 Marvell International, Ltd. Error correction coding for varying signal-to-noise ratio channels
US7707481B2 (en) 2006-05-16 2010-04-27 Pitney Bowes Inc. System and method for efficient uncorrectable error detection in flash memory
US20070300130A1 (en) 2006-05-17 2007-12-27 Sandisk Corporation Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices
US7606084B2 (en) 2006-06-19 2009-10-20 Sandisk Corporation Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
JP4842719B2 (ja) 2006-06-28 2011-12-21 株式会社日立製作所 ストレージシステム及びそのデータ保護方法
US7774684B2 (en) 2006-06-30 2010-08-10 Intel Corporation Reliability, availability, and serviceability in a memory device
JP2008047273A (ja) 2006-07-20 2008-02-28 Toshiba Corp 半導体記憶装置およびその制御方法
TW200813724A (en) 2006-07-28 2008-03-16 Samsung Electronics Co Ltd Multipath accessible semiconductor memory device with host interface between processors
US20080052446A1 (en) 2006-08-28 2008-02-28 Sandisk Il Ltd. Logical super block mapping for NAND flash memory
US7886204B2 (en) 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
US8171380B2 (en) 2006-10-10 2012-05-01 Marvell World Trade Ltd. Adaptive systems and methods for storing and retrieving data to and from memory cells
JP2008117195A (ja) 2006-11-06 2008-05-22 Hitachi Ltd 半導体記憶装置
TWI307100B (en) 2006-11-07 2009-03-01 Macronix Int Co Ltd Memory and method for reading error checking thereof
KR100881669B1 (ko) 2006-12-18 2009-02-06 삼성전자주식회사 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치
KR100842680B1 (ko) 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
KR100855587B1 (ko) 2007-01-17 2008-09-01 삼성전자주식회사 메일박스 영역을 가지는 멀티 패스 액세스블 반도체 메모리장치 및 그에 따른 메일박스 액세스 제어방법
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
JP5026102B2 (ja) 2007-02-07 2012-09-12 株式会社日立製作所 ストレージ制御装置及びデータ管理方法
US7913022B1 (en) 2007-02-14 2011-03-22 Xilinx, Inc. Port interface modules (PIMs) in a multi-port memory controller (MPMC)
KR100918707B1 (ko) 2007-03-12 2009-09-23 삼성전자주식회사 플래시 메모리를 기반으로 한 메모리 시스템
JP4897524B2 (ja) 2007-03-15 2012-03-14 株式会社日立製作所 ストレージシステム及びストレージシステムのライト性能低下防止方法
KR100907218B1 (ko) 2007-03-28 2009-07-10 삼성전자주식회사 읽기 레벨 제어 장치 및 그 방법
WO2008121553A1 (en) 2007-03-29 2008-10-09 Sandisk Corporation Non-volatile storage with decoding of data using reliability metrics based on multiple reads
WO2008121577A1 (en) 2007-03-31 2008-10-09 Sandisk Corporation Soft bit data transmission for error correction control in non-volatile memory
US8032724B1 (en) 2007-04-04 2011-10-04 Marvell International Ltd. Demand-driven opportunistic garbage collection in memory components
US7996642B1 (en) 2007-04-25 2011-08-09 Marvell International Ltd. Digital locked loop on channel tagged memory requests for memory optimization
US8073648B2 (en) 2007-05-14 2011-12-06 Sandisk Il Ltd. Measuring threshold voltage distribution in memory using an aggregate characteristic
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
KR100891005B1 (ko) 2007-06-28 2009-03-31 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
US8095851B2 (en) 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
KR101239690B1 (ko) 2007-10-31 2013-03-06 에이저 시스템즈 엘엘시 다중―레벨 플래시 메모리를 위한 체계적 에러 정정
US8001419B2 (en) 2007-11-13 2011-08-16 Rockwell Automation Technologies, Inc. Energy storage module
US8429492B2 (en) 2007-11-30 2013-04-23 Marvell World Trade Ltd. Error correcting code predication system and method
US8775717B2 (en) 2007-12-27 2014-07-08 Sandisk Enterprise Ip Llc Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories
US20090172335A1 (en) 2007-12-31 2009-07-02 Anand Krishnamurthi Kulkarni Flash devices with raid
US8159874B2 (en) 2008-01-22 2012-04-17 Micron Technology, Inc. Cell operation monitoring
US8271515B2 (en) 2008-01-29 2012-09-18 Cadence Design Systems, Inc. System and method for providing copyback data integrity in a non-volatile memory system
JP4617405B2 (ja) 2008-02-05 2011-01-26 富士通株式会社 不良メモリを検出する電子機器、不良メモリ検出方法およびそのためのプログラム
JP4672743B2 (ja) 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
US8185706B2 (en) 2008-04-30 2012-05-22 Apple Inc. Copyback optimization for memory system
KR101412690B1 (ko) 2008-05-28 2014-06-27 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
KR101412974B1 (ko) 2008-05-28 2014-06-30 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
US8627169B2 (en) 2008-06-20 2014-01-07 Cadence Design Systems, Inc. Method and apparatus for dynamically configurable multi level error correction
US8325554B2 (en) 2008-07-10 2012-12-04 Sanmina-Sci Corporation Battery-less cache memory module with integrated backup
US8130552B2 (en) 2008-09-11 2012-03-06 Sandisk Technologies Inc. Multi-pass programming for memory with reduced data storage requirement
US7934124B2 (en) * 2008-10-10 2011-04-26 Oracle America, Inc. Self-contained densely packed solid-state storage subsystem
KR101484556B1 (ko) 2008-10-28 2015-01-20 삼성전자주식회사 독출 보상 회로
US8645749B2 (en) 2009-02-04 2014-02-04 Micron Technology, Inc. Systems and methods for storing and recovering controller data in non-volatile memory devices
KR20100090439A (ko) 2009-02-06 2010-08-16 주식회사 하이닉스반도체 불휘발성 메모리 장치의 독출 방법 및 이를 구현하는 불휘발성 메모리 장치
KR20100093885A (ko) 2009-02-17 2010-08-26 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
KR101575248B1 (ko) 2009-04-30 2015-12-07 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템
US20100281207A1 (en) 2009-04-30 2010-11-04 Miller Steven C Flash-based data archive storage system
US8412985B1 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Hardwired remapped memory
US7941696B2 (en) 2009-08-11 2011-05-10 Texas Memory Systems, Inc. Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes
US8468370B2 (en) 2009-09-16 2013-06-18 Seagate Technology Llc Systems, methods and devices for control of the operation of data storage devices using solid-state memory and monitoring energy used therein
JP5197544B2 (ja) 2009-10-05 2013-05-15 株式会社東芝 メモリシステム
US8526605B2 (en) 2009-10-09 2013-09-03 Seagate Technology Llc Data encryption to provide data security and memory cell bit wear leveling
CN101699406B (zh) 2009-11-12 2011-12-14 威盛电子股份有限公司 数据储存系统与方法
US8130553B2 (en) 2009-12-02 2012-03-06 Seagate Technology Llc Systems and methods for low wear operation of solid state memory
US8213255B2 (en) 2010-02-19 2012-07-03 Sandisk Technologies Inc. Non-volatile storage with temperature compensation based on neighbor state information
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US8737136B2 (en) 2010-07-09 2014-05-27 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
US10157002B2 (en) 2010-08-26 2018-12-18 International Business Machines Corporation Migrating an encoded data slice based on an end-of-life memory level of a memory device
US8738846B2 (en) 2010-10-15 2014-05-27 Arkologic Limited File system-aware solid-state storage management system
CN102263303B (zh) * 2011-06-02 2016-09-14 福州天和新能电子科技有限公司 模块化锂动力电池及其管理系统和管理方法
JP5799621B2 (ja) * 2011-07-11 2015-10-28 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
US9138822B2 (en) * 2011-11-18 2015-09-22 Lincoln Global, Inc. System and method for mounting a tractor unit on a guide track
US9569633B2 (en) 2012-06-29 2017-02-14 Intel Corporation Device, system, and method for processor-based data protection

Also Published As

Publication number Publication date
CN106415503B (zh) 2019-07-09
US20150149806A1 (en) 2015-05-28
US9122636B2 (en) 2015-09-01
WO2015081129A2 (en) 2015-06-04
CN106415503A (zh) 2017-02-15
WO2015081129A3 (en) 2015-07-23

Similar Documents

Publication Publication Date Title
DE112014005417T5 (de) Architektur für harten Stromausfall
US9250676B2 (en) Power failure architecture and verification
US9235245B2 (en) Startup performance and power isolation
DE102006048856B4 (de) Verfahren zum Betreiben einer IC-Halbleiterspeichervorrichtung und IC-Halbleiterspeichervorrichtung
DE102017128942A1 (de) Thermische Drosselung für Speichervorrichtungen
DE102014001914B4 (de) Dynamische Steuerung einer maximalen Betriebsspannung für einen Prozessor
DE112017003291T5 (de) Verfahren und einrichtung zum vermindern von schwellenspannungsdrift
DE112015006117T5 (de) Halbleiterlaufwerk mit selbstaktualisierungsenergiesparmodus
DE102022106019A1 (de) Verfahren und vorrichtung für ein gegendrucksignal bei einer speicherchip-rowhammer-bedrohung und hostseitige reaktion
DE102017124188A1 (de) Verfahren und Vorrichtung zum Steuern eines Speichersystems zum Zwecke eines sicheren Herunterfahrens eines flüchtigen Speichers eines Hosts
DE102013021679A1 (de) Rettung von Ereignisnachverfolgungsinformationen bei Stromausfall-Unterbrechungsszenarien
DE112018004746T5 (de) Systeme und verfahren zum verwalten von durch einen mikrocontroller in einem inaktiven modus verbrauchter energie
DE102015211561A1 (de) Leistungsverfolgungsanschluss zum Verfolgen von Zuständen von Leistungsdomänen
DE102018106603A1 (de) Systeme und Verfahren zur redundanten Kompensation eines Leitungsspannungsabfalls
DE112011105644T5 (de) Ladungssparende Power-Gate-Vorrichtung und Verfahren
DE102016010717A1 (de) Verschleißmanagement für Flash-Speicher-Systeme
DE102020110584A1 (de) Nvram-speichermodul mit hard-schreibdrosselung
US9280429B2 (en) Power fail latching based on monitoring multiple power supply voltages in a storage device
DE102011017634B4 (de) Signalleitung zum Anzeigen eines Schreibfehlers in einem Speicher
DE102019118631A1 (de) Speichervorrichtung, welche eine Wartungsarbeit unabhängig ohne Befehl des Host initiiert, und elektronisches System mit derselben
DE102013218385A1 (de) Stromversorgungssystem
US20150135008A1 (en) Simulated Power Failure and Data Hardening
DE102017103214A1 (de) Verfahren und Vorrichtungen zur Verwaltung eines nichtflüchtigen digitalen Informationsspeichers
DE112014005394T5 (de) Aufsicht für Dimm-Vorrichtungscontroller
DE112019000413T5 (de) Sicherheitserweiterung für Speichersteuerungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: SANDISK TECHNOLOGIES LLC, PLANO, US

Free format text: FORMER OWNER: SANDISK TECHNOLOGIES INC., PLANO, TEX., US

R082 Change of representative

Representative=s name: MARKS & CLERK LLP, GB

Representative=s name: DEHNS GERMANY, DE

R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY, DE

R082 Change of representative

Representative=s name: DEHNS GERMANY, DE

R016 Response to examination communication
R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: KIPA AB, SE

R002 Refusal decision in examination/registration proceedings
R081 Change of applicant/patentee

Owner name: WESTERN DIGITAL TECHNOLOGIES, INC. (N.D.GES.D., US

Free format text: FORMER OWNER: SANDISK TECHNOLOGIES LLC, PLANO, TEX., US

R082 Change of representative

Representative=s name: KIPA AB, SE