DE112014005417T5 - Architektur für harten Stromausfall - Google Patents
Architektur für harten Stromausfall Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 claims abstract description 250
- 238000000034 method Methods 0.000 claims abstract description 66
- 238000004146 energy storage Methods 0.000 claims description 100
- 238000012360 testing method Methods 0.000 claims description 30
- 239000003990 capacitor Substances 0.000 claims description 26
- 238000012546 transfer Methods 0.000 claims description 15
- 238000013500 data storage Methods 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 9
- 230000009977 dual effect Effects 0.000 claims description 6
- 230000008878 coupling Effects 0.000 claims description 5
- 238000010168 coupling process Methods 0.000 claims description 5
- 238000005859 coupling reaction Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 claims description 5
- 238000007599 discharging Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 abstract description 6
- 230000004044 response Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 29
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 239000007787 solid Substances 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000246 remedial effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
- G06F1/305—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations in the event of power-supply fluctuations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring 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/3062—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
Abstract
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. -
6A –6F 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 Datenspeichersystems100 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 Datenspeichersystem100 als nicht-einschränkendes Beispiel das Speichergerät120 (auch manchmal bezeichnet als Informationsspeichergerät oder Datenspeichergerät oder Speichereinheit), das die Host-Schnittstelle122 , das Serial Presence-Detect-(SPD-)Gerät124 , das Datenhärtungsmodul126 , die Speichersteuerung128 , eine oder mehrere nichtflüchtige (NVM-)Steuerungen130 , wie zum Beispiel Flash-Steuerungen, und nichtflüchtigen Speicher (z. B. ein oder mehrere NVM-Geräte140 ,142 , wie z. B. ein oder mehrere Flash-Speichergeräte) umfasst, und wird in Verbindung mit dem Computersystem110 verwendet. In einigen Implementierungen umfasst das Speichersystem120 ein einzelnes NVM-Gerät, während das Speichergerät120 in anderen Implementierungen eine Vielzahl von NVM-Geräten umfasst. In einigen Implementierungen umfassen die NVM-Geräte140 ,142 einen Flash-Speicher vom Typ NAND oder einen Flash-Speicher vom Typ NOR. Weiterhin handelt es sich in einigen Implementierungen bei der NVM-Steuerung130 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 Datenverbindungen101 mit dem Speichergerät120 gekoppelt. Allerdings umfasst in einigen Implementierungen das Computersystem110 ein Speichergerät120 als Komponente und/oder Teilsystem. Das Computersystem110 kann jedes geeignete Computergerät, wie z. B. ein Personalcomputer, eine Workstation, ein Computerserver oder ein anderes Computergerät sein. Das Computersystem110 wird manchmal auch als Host oder Host-System bezeichnet. In einigen Implementierungen umfasst das Computersystem110 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 Computersystem110 einen oder mehrere Host-Befehle (z. B. Lesebefehle und/oder Schreibbefehle) auf die Steuerleitung111 zum Speichergerät120 . In einigen Implementierungen ist das Computersystem110 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äte140 ,142 wie z. B. Flash-Speichergeräte (z. B. NVM-Geräte140-1 bis140-n und NVM-Geräte142-1 bis142-k ) und NVM-Steuerungen130 (z. B. NVM-Steuerungen130-1 bis130-m ). In einigen Implementierungen umfasst jede NVM-Steuerung der NVM-Steuerungen130 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-Steuerungen130 ). 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-Steuerungen130 hinaus. NVM-Geräte140 ,142 sind mit NVM-Steuerungen130 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äten140 ,142 gespeichert werden sollen, und Datenwerten, die von NVM-Geräten140 ,142 ausgelesen werden sollen, übermitteln. So können z. B. NVM-Geräte140 ,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äte140 ,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ät120 weitere nicht-flüchtige Speichergeräte) und entsprechende nicht-flüchtige Speichersteuerung(en). - In einigen Implementierungen umfasst das Speichergerät
120 ebenfalls eine Host-Schnittstelle122 , ein SPD-Gerät124 , ein Datenhärtungsmodul126 und eine Speichersteuerung128 . Das Speichergerät120 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-Schnittstelle122 bietet dem Computersystem110 eine Schnittstelle durch Datenverbindungen101 . - 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ärtungsmodul126 ). 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ärtungsmoduls126 hinaus. Das Datenhärtungsmodul126 ist mit der Host-Schnittstelle122 , dem SPD-Gerät124 , der Speichersteuerung128 und den NVM-Steuerungen130 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ät120 . - Die Speichersteuerung
128 ist mit der Host-Schnittstelle122 , dem Datenhärtungsmodul126 und den NVM-Steuerungen130 gekoppelt. In einigen Implementierungen empfängt während eines Schreibvorgangs die Speichersteuerung128 Daten vom Computersystem110 durch die Host-Schnittstelle122 , und während eines Lesevorgangs sendet die Speichersteuerung128 Daten an das Computersystem110 durch die Host-Schnittstelle122 . Weiterhin liefert die Host-Schnittstelle122 zusätzliche Daten, Signale, Spannungen und/oder weitere Informationen, die zur Kommunikation zwischen der Speichersteuerung128 und dem Computersystem110 erforderlich sind. In einigen Ausführungsformen bedienen sich die Speichersteuerung128 und die Host-Schnittstelle122 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 Speichersteuerung128 und die NVM-Steuerungen130 eines definierten Schnittstellenstandards zur Kommunikation, wie z. B. Serial Advance Technology Attachment (SATA). In einigen weiteren Implementierungen bedient sich die Speichersteuerung128 für die Kommunikation mit NVM-Steuerungen130 der Geräteschnittstelle SAS (Serial Attached SCSI), oder einer anderen Speicherschnittstelle. In einigen Implementierungen umfasst die Speichersteuerung128 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 Speichersteuerung128 ). 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 Speichersteuerung128 hinaus. - Das SPD-Gerät
124 ist mit der Host-Schnittstelle122 und dem Datenhärtungsmodul126 gekoppelt. Serial Presence Detect (SPD) bezeichnet eine standardisierte Form des automatischen Zugriffs auf Informationen über ein Computerspeichermodul (z. B. Speichergerät120 ). Zum Beispiel kann, sofern das Speichermodul einen Fehler aufweist, der Fehler mit einem Host-System (z. B. Computersystem110 ) über das SPD-Gerät124 kommuniziert werden. -
2 ist ein Blockdiagramm, das eine Implementierung des Datenhärtungsmoduls126 nach einigen Ausführungsformen veranschaulicht. Das Datenhärtungsmodul126 umfasst ein Energiespeicherungs- und -verteilungsmodul250 (welches das Energiespeichergerät204 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 Speicher206 hinterlegten Modulen, Programmen und/oder Anweisungen und somit zum Durchführen von Verarbeitungsoperationen, den Speicher206 sowie einen oder mehrere Kommunikationsbusse208 für die Verbindung dieser Komponenten miteinander. Jedoch werden in einigen Ausführungsformen die nachstehend als durch den Prozessor202 ausgeführt beschriebenen Funktionen stattdessen durch die Speichersteuerung128 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ät120 ,1 ), einschließlich Überwachen, Steuern, Laden und/oder Testen des Energiespeichergeräts204 . In einigen Ausführungsformen umfasst das Energiespeichergerät204 einen oder mehrere Kondensatoren. In anderen Ausführungsformen umfasst das Energiespeichergerät204 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ärtungsmodul126 ist mit der Host-Schnittstelle122 , dem SPD-Gerät124 , der Speichersteuerung128 und den NVM-Steuerungen130 (z. B. NVM-Steuerungen130-1 bis130-m ) durch Kommunikationsbusse208 gekoppelt. Der Speicher206 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 Speicher206 umfasst optional ein oder mehrere Speichergerät(e), das (die) entfernt vom (von den) Prozessor(en)202 angeordnet ist (sind). Der Speicher206 , oder alternativ das (die) nichtflüchtige(n) Speichergerät(e) im Speicher206 , umfasst ein nichtflüchtiges computerlesbares Speichermedium. In einigen Ausführungsformen speichert der Speicher206 oder das computerlesbare Speichermedium von Speicher206 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ät120 ,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ät204 ) 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 Speichers206 weiterhin ein Konfigurationsmodul zum Konfigurieren des Speichergeräts120 und des Datenhärtungsmoduls126 und/oder Konfigurationswerte (wie z. B. einen oder mehrere Überspannungsschwellenwerte) zum Konfigurieren des Datenhärtungsmoduls126 , wobei keines dieser Elemente in2 ausdrücklich dargestellt ist. In einigen Implementierungen stellt das Konfigurationsmodul die Werte von einem oder mehreren Konfigurationsparametern des Speichergeräts120 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äts120 (z. B. dem Typ der nichtflüchtigen Speicherkomponenten im Speichergerät120 ) und/oder Eigenschaften des Datenspeichersystems100 , welches das Speichergerät120 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. Speichersteuerung128 und NVM-Steuerungen130 ,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 Speicher206 zusätzliche vorstehend nicht beschriebene Module und Datenstrukturen speichern. In einigen Ausführungsformen liefern die im Speicher206 oder dem computerlesbaren Speichermedium von Speicher206 hinterlegten Programme, Module und Datenstrukturen Anweisungen für die Implementierung von einem der nachstehend unter Bezugnahme auf6A –6F beschriebenen Verfahren. - Obwohl
2 das Datenhärtungsmodul126 darstellt, ist2 eher als Funktionsbeschreibung der verschiedenen Funktionen zu verstehen, die im Datenhärtungsmodul128 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 Speichersteuerung128 nach einigen Ausführungsformen veranschaulicht. Die Speichersteuerung128 umfasst typischerweise einen oder mehrere Prozessoren (manchmal auch als CPUs oder Prozessoreinheiten oder Mikroprozessoren oder Mikrocontroller bezeichnet)302 zum Ausführen von im Speicher306 hinterlegten Modulen, Programmen und/oder Anweisungen und somit zum Durchführen von Verarbeitungsoperationen, den Speicher306 sowie einen oder mehrere Kommunikationsbusse308 für die Verbindung dieser Komponenten miteinander. Die Kommunikationsbusse308 umfassen optional Schaltungen (manchmal als Chipsatz bezeichnet), die die Systemkomponenten miteinander verbinden und die Kommunikation zwischen ihnen steuern. Die Speichersteuerung128 ist mit der Host-Schnittstelle122 , dem Datenhärtungsmodul126 und den NVM-Steuerungen130 (z. B. NVM-Steuerungen130-1 bis130-m ) durch Kommunikationsbusse308 verbunden. Der Speicher306 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 Speicher306 umfasst optional ein oder mehrere Speichergerät(e), das (die) entfernt vom (von den) Prozessor(en)302 angeordnet ist (sind). Der Speicher306 , oder alternativ das (die) nichtflüchtige(n) Speichergerät(e) im Speicher306 , umfasst ein nichtflüchtiges computerlesbares Speichermedium. In einigen Ausführungsformen speichert der Speicher306 oder das computerlesbare Speichermedium von Speicher306 die folgenden Programme, Module und Datenstrukturen oder eine Teilgruppe davon: - • ein Schnittstellenmodul
310 , das zur Kommunikation mit anderen Komponenten, wie der Host-Schnittstelle122 , dem Datenhärtungsmodul126 und den NVM-Steuerungen130 dient; - • ein Resetmodul
312 , das zum Zurücksetzen der Speichersteuerung128 dient; und - • ein Netzausfallmodul
314 , das zur Durchführung einer Netzausfalloperation dient. - In einigen Ausführungsformen umfasst das Netzausfallmodul
314 optional ein Übertragungsmodul316 , 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 Speicher306 zusätzliche vorstehend nicht beschriebene Module und Datenstrukturen gespeichert sein. In einigen Ausführungsformen liefern die im Speicher306 oder dem computerlesbaren Speichermedium von Speicher306 hinterlegten Programme, Module und Datenstrukturen Anweisungen für die Implementierung von entsprechenden Operationen in den nachstehend unter Bezugnahme auf6A –6F beschriebenen Verfahren. - Obwohl
3 die Speichersteuerung128 darstellt, ist3 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-Steuerung130-1 , wie z. B. eine Flash-Steuerung, nach einigen Ausführungsformen veranschaulicht. Die NVM-Steuerung130-1 umfasst typischerweise einen oder mehrere Prozessoren (manchmal auch als CPUs oder Prozessoreinheiten oder Mikroprozessoren oder Mikrocontroller bezeichnet)402 zum Ausführen von im Speicher306 hinterlegten Modulen, Programmen und/oder Anweisungen und somit zum Durchführen von Verarbeitungsoperationen, den Speicher406 sowie einen oder mehrere Kommunikationsbusse408 für die Verbindung dieser Komponenten miteinander. Die Kommunikationsbusse408 umfassen optional Schaltungen (manchmal als Chipsatz bezeichnet), die Systemkomponenten miteinander verbinden und die Kommunikation zwischen ihnen steuern. Die NVM-Steuerung130-1 ist mit der Speichersteuerung128 , dem Datenhärtungsmodul126 und den NVM-Geräten140 (z. B. NVM-Geräte140-1 bis140-n , wie z. B. Flashgeräte) durch Kommunikationsbusse408 verbunden. Der Speicher406 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 Speicher406 umfasst optional ein oder mehrere Speichergerät(e), das (die) entfernt vom (von den) Prozessor(en)402 angeordnet ist (sind). Der Speicher406 , oder alternativ das (die) nichtflüchtige(n) Speichergerät(e) im Speicher406 , umfasst ein nichtflüchtiges computerlesbares Speichermedium. In einigen Ausführungsformen speichert der Speicher406 oder das computerlesbare Speichermedium von Speicher406 die folgenden Programme, Module und Datenstrukturen oder eine Teilgruppe davon: - • ein Schnittstellenmodul
410 , das zur Kommunikation mit anderen Komponenten, wie der Host-Schnittstelle128 , dem Datenhärtungsmodul126 und den NVM-Geräten140 verwendet wird; - • ein Resetmodul
412 , das zum Zurücksetzen der NVM-Steuerung130-1 verwendet wird; und - • ein Netzausfallmodul
414 , das zur Durchführung einer Netzausfalloperation dient. - In einigen Ausführungsformen umfasst das Netzausfallmodul
414 optional ein Übertragungsmodul416 , 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 Speicher406 zusätzliche vorstehend nicht beschriebene Module und Datenstrukturen gespeichert sein. In einigen Ausführungsformen liefern die im Speicher406 oder dem computerlesbaren Speichermedium von Speicher406 hinterlegten Programme, Module und Datenstrukturen Anweisungen für die Implementierung von entsprechenden der nachstehend unter Bezugnahme auf6A –6F beschriebenen Verfahren. - Obwohl
4 die eine NVM-Steuerung130-1 darstellt, ist4 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, obwohl4 eine NVM-Steuerung130-1 darstellt, die Beschreibung von4 analog für andere NVM-Steuerungen (z. B. NVM-Steuerungen130-2 bis130-m ) im Speichergerät120 (1 ). -
5 ist ein Blockdiagramm, das eine Implementierung des Datenhärtungsmoduls126 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ärtungsmodul126 als nicht-einschränkendes Beispiel den Prozessor202 , den Verstärkungsschaltkreis520 , das Energiespeichergerät522 , die Transistoren511-512 , die Halteschaltung524 , die Spannungen Vdd502 , VSPD504 , VVerzögerung506 , und Vgeschaltet508 , und die Verbindungen530 . In einigen Ausführungsformen ist Vdd502 eine von einem Host-System gelieferte Spannung (z. B. Computersystem110 ,1 ) mit einem Sollwert von 1,5 V oder weniger. In einigen Implementierungen ist VVerzögerung506 eine von Vdd502 verstärkte Spannung und weist einen Sollwert von 5,7 Volt auf. In einigen Ausführungsformen dient VVerzögerung506 dazu, ein Energiespeichergerät522 zu laden. In einigen Implementierungen ist VSPD504 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 Transistoren511 ,512 zur gleichen Zeit aktiviert. Immer wenn zum Beispiel der Transistor512 aktiviert ist, ist der Transistor511 deaktiviert („geöffneter” Zustand), um sicherzustellen, dass die Energie vom Energiespeichergerät522 des Datenhärtungsmoduls nicht ins Host-System abfließt. Weiterhin, immer wenn der Transistor511 aktiviert ist und vom Host-System Energie für die Komponenten des Speichergeräts120 bereitstellt, ist der Transistor512 deaktiviert. In einigen Implementierungen speichert das Energiespeichergerät522 der Datenhärtungsschaltung unmittelbar vor Erfassung eines Netzausfallzustandes mindestens etwa 30 bis 70 mJ Energie je NVM-Steuerung130 im Speichergerät120 . - In einigen Implementierungen überwacht und verwaltet der Prozessor
202 die Funktionalität im Datenhärtungsmodul126 . Zum Beispiel überwacht der Prozessor202 die Spannungen Vdd502 und VSPD504 . Falls entweder Vdd502 oder VSPD504 entsprechende Überspannungsschwellenwerte überschreiten, meldet der Prozessor202 einen Netzausfallzustand an eine Vielzahl von Steuerungen am Speichergerät120 (z. B. an die Speichersteuerung128 und die NVM-Steuerungen130 ,1 ). In einigen Ausführungsformen verändert sich der Überspannungsschwellenwert in Abhängigkeit vom Spannungs-Sollwert. Wenn zum Beispiel die Sollspannung für Vdd502 1,5 Volt beträgt, kann der Überspannungsschwellenwert 1,5 Volt plus 5% (d. h. 1,575 Volt) betragen; der Prozessor202 würde demnach einen Netzausfallzustand melden, wenn Vdd502 höher ist als 1,575 Volt. In einigen Implementierungen ist der Überspannungsschwellenwert für Vdd502 ein anderer als der Überspannungsschwellenwert für VSPD504 . Wenn in einigen Ausführungsformen entweder Vdd502 oder VSPD504 entsprechende Unterspannungsschwellenwerte unterschreiten (z. B. 1,425 Volt bei einer Sollspannung für Vdd502 von 1,5 Volt, und 3,135 Volt bei einer Sollspannung von VSPD504 von 3,3 Volt), meldet der Prozessor202 einen Netzausfallzustand an eine Vielzahl von Steuerungen am Speichergerät120 (z. B. an die Speichersteuerung128 und die NVM-Steuerungen130 ,1 ). - In einigen Ausführungsformen wird Vdd
502 während des normalen Betriebs des Speichergeräts120 dazu verwendet, das Speichergerät120 mit Energie zu versorgen. Während einer Netzausfalloperation dient jedoch ein Energiespeichergerät522 dazu, das Speichergerät120 mit Energie zu versorgen. In einigen Ausführungsformen steuert der Prozessor202 die Transistoren511 –512 , um Vgeschaltet508 entweder als Spannung von Vdd502 (z. B. während des normalen Betriebs) oder als Spannung vom Energiespeichergerät522 (z. B. während des Netzausfallprozesses) zu steuern. Zum Beispiel wird während des Normalbetriebs des Speichergeräts120 Vdd502 dazu verwendet, das Speichergerät120 mit Energie zu versorgen; demnach wird der Transistor511 eingeschaltet (z. B. zur vollständigen Herstellung der Verbindung zwischen Vdd502 und Vgeschaltet508 ) und der Transistor512 wird ausgeschaltet (z. B. um die Verbindung zwischen dem Energiespeichergerät522 und Vgeschaltet508 zu deaktivieren). Während einer Netzausfalloperation wird jedoch das Energiespeichergerät522 dazu verwendet, das Speichergerät120 mit Energie zu versorgen; demnach wird der Transistor511 ausgeschaltet (z. B. um die Verbindung zwischen Vdd502 und Vgeschaltet508 zu deaktivieren) und der Transistor512 wird eingeschaltet (z. B. um die Verbindung zwischen dem Energiespeichergerät522 und Vgeschaltet508 herzustellen). Obwohl5 nur ein einziges Energiespeichergerät522 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ögerung506 geladen, einer Spannung, die höher ist als Vdd502 . In einigen Implementierungen wird Vdd502 auf VVerzögerung506 mittels einer Verstärkerschaltung520 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ärkungsschaltung520 durch den Prozessor202 gesteuert und aktiviert. Weiterhin wird in einigen Ausführungsformen Vgeschaltet508 als Eingang für die Halteschaltung524 verwendet, die gemeinsam mit VSPD504 den Prozessor202 mit Energie versorgt. Während einer Netzausfalloperation wird Vgeschaltet508 über die Halteschaltung524 für den Prozessor202 bereitgestellt, um den Prozessor202 während der Netzausfalloperation mit Energie zu versorgen. In einigen Implementierungen verfügt der Prozessor202 über einen oder mehrere Anschlüsse530 , die zur Überwachung und Steuerung von anderen Funktionen innerhalb des Speichergeräts120 dienen. In einigen Implementierungen versorgt VSPD504 die Halteschaltung524 mit Energie. Weiterhin wird in einigen Implementierungen VSPD504 für das Speichergerät120 bereitgestellt, bevor Vdd502 für das Speichergerät120 bereitgestellt wird, sodass die Geräte im Speichergerät120 arbeiten können, bevor das Speichergerät120 durch die Hauptstromversorgung Vdd502 versorgt wird. -
6A –6F veranschaulichen ein Ablaufdiagramm, das ein Verfahren600 zum Schützen von Daten in einem Speichergerät nach einigen Ausführungsformen darstellt. Ein Speichergerät (z. B. das Speichergerät120 ,1 ) koordiniert und verwaltet mehrere Teilsystemkomponenten zum Schützen von Daten, wodurch die Ausführung des Verfahrens600 eingeleitet wird. In mindestens einigen Implementierungen wird das Verfahren600 durch ein Speichergerät ausgeführt (z. B. Speichergerät120 ,1 ), oder durch eine oder mehrere Komponenten des Speichergeräts (z. B. das Datenhärtungsmodul126 , die Speichersteuerung128 und/oder NVM-Steuerungen130 ,1 ). In einigen Ausführungsformen wird das Verfahren600 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 Prozessoren202 des Datenhärtungsmoduls126 , dem einen oder den mehreren Prozessoren302 der Speichersteuerung128 , und/oder dem einen oder den mehreren Prozessoren402 der NVM-Steuerungen130 , wie in2 –4 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 Überwachungsmodul210 ,2 ) dazu, festzustellen, ob eine für ein Speichergerät bereitgestellte Versorgungsspannung höher ist als ein Überspannungsschwellenwert, wie vorstehend in Bezug auf2 beschrieben. In einigen Ausführungsformen stellt das Speichergerät (z. B. Speichergerät120 ,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. Vdd502 ,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. VSPD504 ,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. SPD124 , 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 Computersystem110 ,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äts204 ,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 Netzausfallmodul218 ,2 ) dazu verwendet, entsprechend einer Feststellung, dass die Versorgungsspannung höher ist als der Überspannungsschwellenwert, eine Netzausfalloperation durchzuführen, wie vorstehend in Bezug auf2 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. Speichersteuerung128 und NVM-Steuerungen130 ,1 ). In einigen Implementierungen wird ein Signalmodul (z. B. das Signalmodul220 ,2 ) dazu verwendet, einen Netzausfallzustand an eine Vielzahl von Steuerungen am Speichergerät zu melden, wie vorstehend in Bezug auf2 beschrieben. - In einigen Ausführungen umfasst die Vielzahl von Steuerungen am Speichergerät (
616 ) eine Speichersteuerung (z. B. die Speichersteuerung128 ,1 ) und eine oder mehrere NVM-Steuerungen (z. B. die NVM-Steuerungen130 ,1 ), wobei die eine oder die mehreren NVM-Steuerungen durch die Speichersteuerung an eine Host-Schnittstelle (z. B. die Host-Schnittstelle122 ,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-Steuerung130-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 Speichersteuerung128 ,1 ) Schnittstellenbefehle mit doppelter Datenrate, Typ 3 (DDR3) auf SATA-Schnittstellenbefehle ab. In einigen Ausführungsformen verwendet eine Speichersteuerung (z. B. die Speichersteuerung128 ,1 ) einen definierten Schnittstellenstandard wie DDR3, um mit einer Host-Schnittstelle (z. B. der Host-Schnittstelle122 ,1 ) zu kommunizieren, und verwendet einen definierten Schnittstellenstandard wie SATA, um mit anderen Steuerungen am Speichergerät (z. B. den NVM-Steuerungen130 ,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-Steuerung130-1 ,1 ) früher durchgeführt oder früher gestartet als die Netzausfalloperation für eine zweite NVM-Steuerung (z. B. NVM-Steuerung130-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-Steuerungen130-1 bis130-m ,1 ) gleichzeitig durchgeführt, während die Netzausfalloperation für eine Speichersteuerung (z. B. die Speichersteuerung128 ,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äte140 ,142 ,1 ). In einigen Implementierungen wird ein Netzausfallmodul an einer oder mehreren Steuerungen (z. B. das Netzausfallmodul314 ,3 , und das Netzausfallmodul414 ,4 ) verwendet, um im flüchtigen Speicher gehaltene Daten auf den nichtflüchtigen Speicher zu übertragen, wie vorstehend in Bezug auf3 –4 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 Daten318 ,3 ) von der Speichersteuerung (z. B. der Speichersteuerung128 ,1 ) an die eine oder die mehreren NVM-Steuerungen (z. B. die NVM-Steuerungen130 ,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-Schnittstelle122 ,1 ) auf die Speichersteuerung übertragen werden („data in flight”), an den Host (z. B. das Computersystem110 ,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 Übertragungsmodul316 ,3 ) dazu verwendet, Daten aus der Speichersteuerung an eine oder mehrere NVM-Steuerungen zu übertragen, wie vorstehend in Bezug auf3 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 Daten418 ,4 ) aus der einen oder den mehreren NVM-Steuerungen (z. B. den NVM-Steuerungen130 ,1 ) auf den nichtflüchtigen Speicher (z. B. die NVM-Geräte140 ,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 Übertragungsmodul416 ,4 ) dazu verwendet, Daten aus der einen oder den mehreren NVM-Steuerungen auf den nichtflüchtigen Speicher zu übertragen, wie vorstehend in Bezug auf4 beschrieben. - In einigen Ausführungsformen umfasst der nichtflüchtige Speicher (
630 ) ein oder mehrere NVM-Geräte (z. B. die NVM-Geräte140 ,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 Speichersteuerung128 und der NVM-Steuerungen130 ,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 Stromabschaltungsmodul224 ,2 ) dazu, die Vielzahl von Steuerungen am Speichergerät auszuschalten, wie vorstehend in Bezug auf2 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 Speichersteuerung128 ,1 ) Signale an ein Datenhärtungsmodul (z. B. das Datenhärtungsmodul126 ,1 ), wenn sie das Übertragen von Daten aus der einen oder den mehreren NVM-Steuerungen (z. B. den NVM-Steuerungen130 ,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 Resetmodul222 ,2 ) in Verbindung mit einem Resetmodul in der Speichersteuerung (z. B. dem Resetmodul312 ,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 auf2 –3 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 Speichersteuerung128 ,1 ) in einer anderen Power-Domain als die eine oder die mehreren NVM-Steuerungen (z. B. die NVM-Steuerung130 ,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ärtungsmodul126 ,1 ) die verschiedenen Steuerungen am Speichergerät (z. B. dem Speichergerät120 ,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ät204 ,2 ) gespeicherte Energie für verbleibende Aufgaben in der Netzausfalloperation. In einigen Implementierungen dient ein Stromabschaltungsmodul (z. B. das Stromabschaltungsmodul224 ,2 ) dazu, die Speichersteuerung im Anschluss an das Zurücksetzen der Speichersteuerung auszuschalten, wie vorstehend in Bezug auf2 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-Steuerung130-1 ,1 ) Signale an ein Datenhärtungsmodul (z. B. das Datenhärtungsmodul126 ,1 ), wenn sie das Übertragen auf den nichtflüchtigen Speicher (z. B. die NVM-Geräte140 ) 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 Resetmodul222 ,2 ) in Verbindung mit einem Resetmodul in der ersten NVM-Steuerung (z. B. dem Resetmodul412 ,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 auf2 und4 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 Schritt640 ) sind ebenfalls auf das Zurücksetzen der zweiten NVM-Steuerung anwendbar. In einigen Implementierungen wird ein Resetmodul im Datenhärtungsmodul (z. B. das Resetmodul222 ,2 ) in Verbindung mit einem Resetmodul in der zweiten NVM-Steuerung (z. B. dem Resetmodul412 ,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 auf2 und4 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 Stromabschaltungsmodul224 ,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 auf2 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ärtungsmodul126 ,1 ), die verschiedenen Steuerungen am Speichergerät (z. B. die Speichersteuerung128 und die NVM-Steuerungen130 ,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ärtungsmodul126 ,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. Vdd502 ,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. VSPD504 ,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ät204 ,2 ) am Speichergerät (z. B. dem Speichergerät120 ,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 auf5 beschrieben, wird während einer Netzausfalloperation ein Energiespeichergerät522 verwendet, um das Speichergerät mit Energie zu versorgen, und ein Datenhärtungsmodul (z. B. das Datenhärtungsmodul126 ,1 und5 ) wird verwendet, um die entsprechenden Stromquellen anzuschließen oder zu trennen (z. B. Deaktivieren der Verbindung zwischen Vdd502 und Vgeschaltet508 und Aktivieren der Verbindung zwischen dem Energiespeichergerät522 und Vgeschaltet508 ,5 ). - In einigen Ausführungsformen umfasst das Energiespeichergerät (
660 ) einen oder mehrere Kondensatoren. Zum Beispiel umfasst das Energiespeichergerät522 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ärtungsmodul126 ,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ätemodul212 ,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 auf2 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ärtungsmodul126 ,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ätemodul212 ,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 auf2 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 auf5 beschrieben, wird ein Energiespeichergerät522 mit einer höheren Spannung (z. B. VVerzögerung506 ,5 ) als der für das Speichergerät bereitgestellten Versorgungsspannung (z. B. Vdd502 oder VSPD504 ,5 ) geladen. Zum Beispiel wird in einigen Implementierungen das Energiespeichergerät mit VVerzögerung (z. B. VVerzögerung506 ,5 , mit einem Sollwert von 5,7 Volt) geladen, der eine höhere Spannung darstellt als Vdd502 oder VSPD504 ,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ätemodul212 ,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 auf2 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ät204 ,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 Ladedauer25 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ätemodul212 ,2 ) dazu verwendet, festzustellen, ob das Energiespeichergerät innerhalb einer vorgegebenen Ladedauer einen Mindest-Ladezustand erreicht, wie vorstehend in Bezug auf2 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ätemodul212 ,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 auf2 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 Computersystem110 ,1 ). In einigen Implementierungen wird die Fehlermeldung mit dem Host-System durch ein SPD-Gerät (z. B. das SPD-Gerät124 ,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 Speichersteuerung128 und der NVM-Steuerungen130 ,1 ) am Speichergerät (z. B. dem Speichergerät120 ,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 Stromabschaltungsmodul228 ,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 auf2 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. Vdd502 oder VSPD504 ), 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)
- 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.
- 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.
- 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.
- 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.
- 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.
- Verfahren nach Anspruch 5, wobei das Ausschalten der Netzspannung der ersten und zweiten NVM-Steuerung nach dem Ausschalten der Netzspannung der Speichersteuerung erfolgt.
- 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.
- Verfahren nach einem der Ansprüche 1–7, wobei es sich bei der Versorgungsspannung um eine durch ein Host-System bereitgestellte Spannung handelt.
- 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.
- 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.
- Verfahren nach einem der Ansprüche 1–10, wobei die Netzausfalloperation mit Spannung aus einem Reserveenergiespeichergerät durchgeführt wird.
- Verfahren nach einem der Ansprüche 1–10, wobei die Netzausfalloperation mit Spannung von einem Energiespeichergerät am Speichergerät durchgeführt wird.
- Verfahren nach Anspruch 12, wobei das Energiespeichergerät einen oder mehrere Kondensatoren umfasst.
- 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.
- 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.
- Verfahren nach Anspruch 15, wobei das Verhindern des Betriebs des Speichergeräts das Übermitteln einer Fehlermeldung an ein Host-System umfasst.
- 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.
- Verfahren nach einem der Ansprüche 1–17, wobei der nichtflüchtige Speicher ein oder mehrere NVM-Geräte umfasst.
- Verfahren nach einem der Ansprüche 1–18, wobei das Speichergerät ein DIMM-(Dual In-line Memory-)Gerät umfasst.
- 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.
- 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.
- Verfahren nach einem der Ansprüche 1–21, wobei der Überspannungsschwellenwert programmierbar ist.
- 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.
- 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.
- 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.
- 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.
- Speichergerät nach Anspruch 26, das ferner dazu konfiguriert ist, nach dem Verfahren nach einem der Ansprüche 2–25 zu arbeiten.
- 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.
- Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 28, das ferner dazu konfiguriert ist, nach dem Verfahren nach einem der Ansprüche 2–25 zu arbeiten.
- 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.
- Speichergerät nach Anspruch 30, das ferner dazu konfiguriert ist, nach dem Verfahren nach einem der Ansprüche 2–25 zu arbeiten.
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)
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)
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 |
-
2013
- 2013-12-19 US US14/135,417 patent/US9122636B2/en active Active
-
2014
- 2014-11-25 DE DE112014005417.8T patent/DE112014005417T5/de active Pending
- 2014-11-25 WO PCT/US2014/067476 patent/WO2015081129A2/en active Application Filing
- 2014-11-25 CN CN201480071209.5A patent/CN106415503B/zh active Active
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 |