DE112010003645B4 - Festkörper-Speichersystem mit Parallelem Zugriff aus Mehreren Flash/PCM-Einrichtungen - Google Patents

Festkörper-Speichersystem mit Parallelem Zugriff aus Mehreren Flash/PCM-Einrichtungen Download PDF

Info

Publication number
DE112010003645B4
DE112010003645B4 DE112010003645.4T DE112010003645T DE112010003645B4 DE 112010003645 B4 DE112010003645 B4 DE 112010003645B4 DE 112010003645 T DE112010003645 T DE 112010003645T DE 112010003645 B4 DE112010003645 B4 DE 112010003645B4
Authority
DE
Germany
Prior art keywords
integrated circuits
channels
data
pages
failed
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.)
Active
Application number
DE112010003645.4T
Other languages
English (en)
Other versions
DE112010003645T5 (de
Inventor
Theodore A. Antonakopoulos
Roy D. Cideciyan
Evangelos S. Eleftheriou
Robert Haas
Ilias Iliadis
Xiao-Yu Hu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112010003645T5 publication Critical patent/DE112010003645T5/de
Application granted granted Critical
Publication of DE112010003645B4 publication Critical patent/DE112010003645B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1028Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • G11C29/765Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

Festkörper-Speichersystem, das Folgendes umfasst:eine Vielzahl von integrierten Schaltkreisen zum Speichern von Daten;eine Steuereinheit, die über einen oder mehrere von einer Vielzahl von Kanälen mit der Vielzahl von integrierten Schaltkreisen verbunden ist, wobei die Steuereinheit funktionsfähig die Operationen der Vielzahl von integrierten Schaltkreisen steuert und einen L-fach verschachtelten Fehlerkorrekturcode verwendet, um eine Datenzuverlässigkeit und verlängerte Lebensdauer bereitzustellen und die Wiederherstellung der Daten von ausgefallenen integrierten Schaltkreisen ermöglicht; undeinen oder mehrere integrierte Ersatzschaltkreise, die selektiv mit einem oder mehreren der Vielzahl von Kanälen verbunden sind, wenn ein oder mehrere der Vielzahl von integrierten Schaltkreisen, die hiermit verbunden sind, ausfallen,wobei die wiederhergestellten Daten von ausgefallenen integrierten Schaltkreisen in einem oder mehreren integrierten Ersatzschaltkreisen gespeichert werden,wobei die Vielzahl von integrierten Schaltkreisen in einer Vielzahl von Gruppen organisiert sind, wobei jede von der Vielzahl von Gruppen, die einen oder mehrere von der Vielzahl von integrierten Schaltkreisen aufweist, eine Vielzahl von Seiten aufweist, die Fragmente eines oder mehrerer Codewörter umfassen, wobei die Vielzahl von Seiten aus der Vielzahl von integrierten Schaltkreisen eine Vielzahl von großen verteilten Seiten bilden, wobei jede von der Vielzahl von großen verteilten Seiten eine aus der Vielzahl von Seiten von jedem einzelnen aus der Vielzahl von integrierten Schaltkreisen enthält,wobei jedes Codewort Datenzeichen und Paritätszeichen, die zum Wiederherstellen von Daten und zum Detektieren und Korrigieren von Fehlern verwendet werden, enthält.

Description

  • Hintergrund
  • Die flashgestützte Speicherung ist gegenwärtig die gängigste nichtflüchtige RAM-Technologie, die in Festkörperlaufwerken (SSDs) verwendet wird, wobei vorgesehen ist, dass in naher Zukunft andere Technologien wie die Speicher der Klasse Phasenänderungsspeicher (PCM) in Festkörper-Speichersystemen verwendet werden. Der gewöhnliche Ansatz zum Erreichen von Hochleistungs-E/A-Einrichtungen besteht darin, mehrere unabhängige Kanäle mit parallelem Zugriff zu verwenden. Die Datenrate, die in jedem Kanal erreichbar ist, ist hauptsächlich durch die „Seitenschreib“-Dauer und die „Seitenlese“-Dauer, die bei der Flash-Einrichtung erforderlich sind, um die jeweilige Operation intern abzuschließen, und die Taktrate an der Schnittstelle der Einheit begrenzt.
  • Die Hauptprobleme bei der Verwendung von Einrichtungen mit Flash-Chips oder integrierten Flash-Schaltkreisen (ICs) in SSDs bestehen heutzutage neben den Kosten und der E/A-Leistung in der Zuverlässigkeit und Lebensdauer infolge der begrenzten Anzahl von Schreib/Lösch-Operationen, die in den Flash-Zellen ausgeführt werden können. Dieses Problem ist als das Standzeit-Problem bekannt. Typische maximale Anzahlen von Schreib/Lösch-Operationen für Flash-Zellen liegen im Bereich von 10000 bis 100000, wohingegen die typische maximale Anzahl von Schreib-Operationen für PCM-Zellen im Bereich von 1 Million bis 100 Millionen liegt. Des Weiteren haben Messungen, die an eingesetzten flash-basierten SSDs ausgeführt wurden, ergeben, dass Flash-Chips, die in SSDs verwendet werden (insbesondere in Server-Anwendungen, bei denen eine hohe E/A-Rate gefordert ist), eine Ausfallrate (Ausfall von einem oder mehreren Flash-ICs) aufweisen, die höher als erwartet ist.
  • Da jedes SSD eine große Anzahl von Flash-ICs (gewöhnlich einige zehn) verwendet, ist die Wahrscheinlichkeit, dass sich in einem SSD wenigstens ein ausgefallener IC befindet, signifikant. In Abhängigkeit von der SSD-Architektur fällt dann, wenn eine Flash-Einrichtung ausfällt, ein Teil des SSD (und in einigen Fällen das gesamte SSD) aus. In vorhandenen SSDs wird ein Benutzersektor oder ein codierter Benutzersektor oder ein Codewort in einem einzigen Flash-IC gespeichert und die zusätzlichen Paritätszeichen, die unter Verwendung eines ersten Fehlerkorrekturcodes erzeugt werden, werden zum Korrigieren von Zufalls-/Bündelfehlern verwendet, d.h. zum Bereitstellen einer Datenzuverlässigkeit und einer erhöhten Standzeit verwendet. Wenn in diesem Fall ein Flash-IC ausfällt, können die in diesem speziellen IC gespeicherten Codewörter nicht wiederhergestellt werden, was nicht erwünscht ist. Vorhandene SSDs verwenden einen zweiten Fehlererfassungs/Korrekturcode, um das Problem des Ausfalls von Einrichtungen zu behandeln. Das erhöht jedoch die Komplexität der Implementierung von Speichersystemen.
  • Die Schrift US 6 732 291 B1 offenbart ein fehlertolerantes Speichersystem mit einer Anzahl von Speicherfeldern, welches wenigstens ein Ersatz-Speicherfeld beinhaltet, das genauso groß wie die einzelnen Speicherfelder ist. Ein Ausgangsdatengatter ist den Speicherfeldern und dem Ersatz-Speicherfeld nachgeordnet.
  • In US 2008/0077840 A1 ist ein Datenspeichersystem offenbart, das eine Mehrzahl von ersten Datenspeichergeräten, wenigstens zwei zweite Datenspeichergeräte und ein drittes Datenspeichergerät aufweist.
  • Das Dokument US 7 360 132 B1 schlägt eine Speicherschnittstelle mit einem Dateneingang und einem Register für ausgefallene Halbleiterbausteine vor.
  • Zusammenfassung
  • Der Erfindung liegt die Aufgabe zu Grunde ein System und ein Verfahren zum Bereitstellen einer Datenzuverlässigkeit und einer verlängerten Lebensdauer und zum Ermöglichen der Wiederherstellung von Daten von ausgefallenen integrierten Schaltkreisen eines Festkörperlaufwerks zu schaffen. Erfindungsgemäß wird die Aufgabe gelöst durch die Gegenstände der unabhängigen Patentansprüche 1, 10 und 17. Bevorzugte Ausführungsformen der Erfindung sind in den abhängigen Patentansprüchen angegeben.
  • In einem Beispiel wird ein Festkörper-Speichersystem bereitgestellt. Das System enthält eine Vielzahl von integrierten Schaltkreisen zum Speichern von Daten; eine Steuereinheit, die über einen oder mehrere von einer Vielzahl von Kanälen mit der Vielzahl von Speichereinheiten verbunden ist, wobei die Steuereinheit die Operationen der Vielzahl von integrierten Schaltkreisen funktionsfähig steuert und einen L-fach gefalteten Fehlerkorrekturcode verwendet, um eine Datenzuverlässigkeit und vergrößerte Lebensdauer bereitzustellen und das Wiederherstellen von Daten aus ausgefallenen integrierten Schaltkreisen zu ermöglichen; und einen oder mehrere integrierte Ersatzschaltkreise, die selektiv mit einem oder mehreren von der Vielzahl von Kanälen verbunden sind, wenn einer oder mehrere von der Vielzahl von integrierten Schaltkreisen, die hiermit verbunden sind, ausfallen.
  • In einem anderen Beispiel wird ein Verfahren zum Bereitstellen einer Datenzuverlässigkeit und verlängerten Lebensdauer und zum Ermöglichen der Wiederherstellung von Daten aus ausgefallenen integrierten Schaltkreisen eines Festkörperlaufwerks bereitgestellt. Das Verfahren enthält das Speichern von Codewort-Fragmenten in einer Vielzahl von integrierten Schaltkreisen unter Verwendung einer Steuereinheit, die einen L-fach gefalteten Fehlerkorrekturcode verwendet, wobei die Steuereinheit über einen oder mehrere von der Vielzahl von Kanälen mit einer Vielzahl von integrierten Schaltkreisen in einem Signalaustausch steht, wobei die Steuereinheit die Operationen der Vielzahl von integrierten Schaltkreisen funktionsfähig steuert; und Verbinden von einem oder mehreren integrierten Ersatzschaltkreisen mit einem oder mehreren von der Vielzahl von Kanälen, wenn ein oder mehrere von der Vielzahl von integrierten Schaltkreisen, die hiermit verbunden sind, ausfallen.
  • In einem noch weiteren Beispiel wird ein Verfahren zum Bereitstellen einer Datensicherheit und einer verlängerten Lebensdauer und zum Ermöglichen der Wiederherstellung von Daten aus ausgefallenen integrierten Schaltkreisen eines Festkörperlaufwerks bereitgestellt. Das Verfahren enthält das Speichern von Codewort-Fragmenten in einer Vielzahl von integrierten Schaltkreisen unter Verwendung einer SSD-Steuereinheit, die einen L-fach gefalteten Fehlerkorrekturcode anwendet, wobei die SSD-Steuereinheit über einen oder mehrere von der Vielzahl von Kanälen mit einer Vielzahl von integrierten Schaltkreisen in einem Signalaustausch steht, die Steuereinheit die Operationen der Vielzahl von integrierten Schaltkreisen funktionsfähig steuert; Erfassen von Ausfällen in einem oder mehreren von der Vielzahl von integrierten Schaltkreisen; Verbinden von einem oder mehreren integrierten Ersatzschaltkreisen mit einem oder mehreren von der Vielzahl von Kanälen, wenn ein oder mehrere von der Vielzahl von integrierten Schaltkreisen, die hiermit verbunden sind, ausfallen; und Wiederherstellen von verlorenen Daten infolge des Ausfalls von einem oder mehreren von der Vielzahl von integrierten Schaltkreisen, die funktionsfähig sind, wobei die wiederhergestellten Daten in einem oder mehreren integrierten Ersatzschaltkreisen gespeichert werden.
  • Zusätzliche Merkmale und Vorteile werden durch die Techniken der vorliegenden Erfindung realisiert. Weitere Ausführungsformen und Aspekte der Erfindung werden beschrieben und als Teil der beanspruchten Erfindung betrachtet. Für ein besseres Verständnis der Erfindung mit den Vorteilen und Merkmalen wird auf die Beschreibung und die Zeichnungen Bezug genommen.
  • Figurenliste
  • Der Gegenstand, der als Erfindung betrachtet wird, wird in den Ansprüchen als Schlussfolgerung der Beschreibung besonders hervorgehoben und eindeutig beansprucht. Das Vorhergehende sowie weitere Merkmale und Vorteile der Erfindung werden aus der folgenden genauen Beschreibung deutlich, die in Verbindung mit den beigefügten Zeichnungen erfolgt, worin:
    • 1 eine schematische Darstellung eines Festkörperlaufwerks und seiner Architektur gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung ist;
    • 2 eine schematische Darstellung einer IC-Gruppe von integrierten Schaltkreisen des Festkörperlaufwerks gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung ist;
    • 3A eine schematische Darstellung eines oder mehrerer integrierter Ersatzschaltkreise ist, die selektiv mit einem oder mehreren Kanälen verbunden sind, an denen ausgefallene integrierte Schaltkreise angeschlossen sind, gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung;
    • 3B eine schematische Darstellung eines integrierten Ersatzschaltkreises ist, der mit einem Kanal verbunden ist, an den ein ausgefallener integrierter Schaltkreis über einen Buskoppler angeschlossen ist, gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung;
    • 3C eine schematische Darstellung eines weiteren integrierten Ersatzschaltkreises ist, der mit dem gleichen Kanal verbunden ist, an den ein anderer ausgefallener integrierter Schaltkreis über den Buskoppler angeschlossen ist, gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung;
    • 3D eine schematische Darstellung eines weiteren integrierten Ersatzschaltkreises ist, der mit einem anderen Kanal verbunden ist, an den ein anderer ausgefallener integrierter Schaltkreis über den Buskoppler angeschlossen ist, gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung; und
    • die 4A bis 4B einen Ablaufplan eines Verfahrens zum Wiederherstellen von Daten aus ausgefallenen integrierten Schaltkreisen in dem Festkörperlaufwerk gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • Genaue Beschreibung
  • Beispielhafte Ausführungsformen der vorliegenden Erfindung stellen Flash-Speichersysteme und Verfahren bereit, die sich dem Problem von ausgefallenen integrierten Speicherschaltkreisen (ICs) in einem Festkörperlaufwerk (SSD) stellen, indem sie eine fehlertolerante Architektur gemeinsam mit einem Mechanismus des Fehlerkorrekturcode (ECC) für Korrekturen von Zufalls-/Bündelfehlern und einem Verschachtelungsmechanismus verwenden. Allgemein gesagt halten die hier beschriebenen Systeme und Verfahren das SSD funktionsfähig, wenn ein oder mehrere integrierte Schaltkreise ausfallen, und ermöglichen die Wiederherstellung von zuvor gespeicherten Daten aus ausgefallenen integrierten Schaltkreisen und ermöglichen das Korrigieren von Zufalls-/Bündelfehlern in anderen funktionsfähigen integrierten Schaltkreisen. Diese Systeme und Verfahren ersetzen die ausgefallenen integrierten Schaltkreise durch voll funktionsfähige/betriebsfähige integrierte Schaltkreise, die an dieser Stelle als integrierte Ersatzschaltkreise behandelt werden. Die fehlertolerante Architektur, die in beispielhaften Ausführungsformen implementiert ist, kann die E/A-Leistung in Bezug auf die maximal erreichbare Rate zum Lesen/Schreiben von Daten verbessern.
  • Die hier beschriebenen integrierten Schaltkreise können jeder Typ einer Festkörperspeichereinrichtung sein. In einer beispielhaften Ausführungsform sind die hier beschriebenen integrierten Schaltkreise Flash-Einrichtungen, die elektrisch wiederbeschreibbare nichtflüchtige digitale Speichermedien sind. In anderen beispielhaften Ausführungsformen können natürlich weitere Typen von Festkörperspeichereinrichtungen verwendet werden und sollten nicht auf die hier beschriebenen Beispiele beschränkt sein.
  • Der hier verwendete Ausdruck „SSD-Steuereinheit“ oder „Steuereinheit“ bezeichnet einen anwendungsspezifischen integrierten Schaltkreis (ASIC) und eine elektronische Schaltung, einen Prozessor (gemeinsam genutzt, zweckbestimmt oder Gruppe) und Festkörperspeicher, der einen oder mehrere Software- oder Firmware-Programme/Algorithmen ausführt, eine kombinatorische Logikschaltung und/oder geeignete Komponenten, die die beschriebene Funktionalität bereitstellen. Die SSD-Steuereinheit führt verschiedene wichtige Funktionen aus wie etwa Abnutzungsausgleich, Speicherbereinigung, Verwaltung schlechter Blöcke, Abbilden von logischen Blockadressen (LBA) auf physische Blockadressen (PBA) und Fehlerkorrektur-Codierung/Decodierung, um eine hohe Zuverlässigkeit und Verfügbarkeit von gespeicherten Daten, eine hohe Standzeit der Einrichtung und eine lange Lebensdauer des Speichersystems sicherzustellen.
  • 1 veranschaulicht eine schematische Darstellung eines Festkörperlaufwerks (SSD) 100 und seine fehlertolerante Architektur gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung. Das SSD 100 enthält eine Vielzahl von integrierten Schaltkreisen 102 zum Speichern von Daten. Jeder der integrierten Schaltkreise steht im Signalaustausch mit einer SSD-Steuereinheit oder einer Steuereinheit 104. Die Vielzahl von integrierten Schaltkreisen 102 ist in einer Vielzahl von IC-Gruppen 106 organisiert, wobei jede Gruppe mehrere integrierte Schaltkreise 102, im Einzelnen wie gezeigt eine Anzahl M von integrierten Schaltkreisen enthält. Die integrierten Schaltkreise sind ferner in der Weise organisiert, dass jeder integrierte Schaltkreis 102 in einer Gruppe mit einem oder mehreren Kanälen 108 im Signalaustausch steht, die von der SSD-Steuereinheit 104 stammen. Diese Kanäle 108 werden verwendet, um die integrierten Schaltkreise 102, die an einen bestimmten Datenkanal 116 angeschlossen sind, freizugeben/zu sperren. Die SSD-Steuereinheit 104 kommuniziert mit den integrierten Schaltkreisen durch Datensignale, die allgemein durch Doppelpfeile 116 angegeben sind, über einen Datenbus 118. Gemäß einer Ausführungsform sind die Kanäle 116 asynchrone Kanäle. In einer Ausführungsform enthält jeder Kanal 116 einen oder mehrere Unterkanäle, die jeweils zum Zugreifen auf die integrierten Schaltkreise 102 verwendet werden. Gemäß einer beispielhaften Ausführungsform sind die Kanäle 116 synchron. Diese synchrone Konfiguration ermöglicht, dass die SSD-Steuereinheit 104 auf die Vielzahl von integrierten Schaltkreisen 102 gleichzeitig zugreift. In einer alternativen Ausführungsform wird auf die Kanäle 116 parallel, jedoch als unabhängige Kanäle zugegriffen. Deswegen kann das SSD 100 sowohl synchrone als auch asynchrone Kanäle enthalten. Daher kann auf unterschiedliche integrierte Schaltkreise in einer Gruppe gleichzeitig (synchron) oder zu unterschiedlichen Zeiten (asynchron) zugegriffen werden.
  • Die SSD-Steuereinheit greift auf die Vielzahl von integrierten Schaltkreisen gemäß einer beispielhaften Ausführungsform in synchroner Weise zu. Mit anderen Worten, die SSD-Steuereinheit 104 steuert jeden integrierten Schaltkreis 102 zur gleichen Zeit an. Das wird erreicht durch Verwendung der gleichen Steuersignale, die im Allgemeinen durch Doppelpfeile 112 angegeben sind, die durch die SSD-Steuereinheit 104 über einen Steuerbus 114 ausgetauscht werden. Bei dieser synchronen Architektur können die gleichen Steueranschlussstifte von der SSD-Steuereinheit mit allen synchronen Kanälen gemeinsam verwendet werden. Daher werden gleiche Steuersignale 112 von der SSD-Steuereinheit 104 verwendet, um alle integrierten Schaltkreise für alle Kanäle anzusteuern. Folglich ist die Anzahl von Kontaktstiften auf Seiten der SSD-Steuereinheit verringert. Das ermöglicht die Verwendung von zusätzlichen Kanälen in dem SSD, wodurch die Rate zum Lesen von Daten und die Rate zum Schreiben von Daten des SSD 100 vergrößert werden können, wodurch ein Gesamtanstieg der Systemleistung bereitgestellt wird. In einem Beispiel wird ein Anstieg von 20 % sowohl für Lese- als auch für Schreiboperationen erreicht. Diese synchrone Architektur ist in Situationen vorteilhaft, bei denen die Anzahl von Anschlussstiften an der SSD-Steuereinheit begrenzt ist. Es ist vorgesehen, dass die SSD-Steuereinheit 104 gemäß anderen beispielhaften Ausführungsformen asynchron auf die integrierten Schaltkreise 102 zugreift. Der Vorteil einer verringerten Anzahl von Anschlussstiften für die SSD-Steuereinheit und/oder einer erhöhten Rate zum Schreiben/Lesen von Daten geht jedoch verloren.
  • 2 veranschaulicht eine einzelne IC-Gruppe 106 des SSD 100 gemäß einer beispielhaften Ausführungsform. Obwohl das SSD 100 mehrere IC-Gruppen enthält, ist in 2 lediglich eine genau dargestellt. Die IC-Gruppe 106 (d.h. Gruppe Nr. 1) ist so eingerichtet, dass sie eine Vielzahl von Benutzerdatensektoren oder Codewörter 200 (d.h. Codewort 1 bis Codewort L) speichert, die jeweils eine Kombination aus Datenzeichen und Paritätszeichen umfassen. Die Paritätszeichen umfassen Paritätsbits des Fehlerkorrekturcodes (ECC) und Paritätsbits der zyklischen Redundanzprüfung (CRC), die zum Detektieren/Korrigieren bis zu einer maximalen Anzahl von Zufalls-/Bündelfehlern verwendet werden. Jedes Zeichen kann in Abhängigkeit von dem implementierten Fehlerkorrekturcode (ECC) n Bits Daten enthalten. Zum Beispiel kann n gleich 1 sein, wenn der ECC-Code binärer Bose-Chaudhuri-Hocquenghem-Code (BCH) ist, n kann gleich 8 sein, wenn der ECC-Code ein Reed-Solomon-Code (RS-Code) unter Verwendung von 8-Bit-Zeichen ist, n kann gleich 12 sein, wenn der ECC-Code RS-Code unter Verwendung von 12-Bit-Zeichen ist oder anders. Trotzdem werden in jedem integrierten Schaltkreis in einer Gruppe eine begrenzte Anzahl von Zeichen pro Codewort gespeichert, sodass die Anzahl von Zeichen pro integriertem Schaltkreis kleiner als die Anzahl von ECC-Paritätszeichen oder gleich dieser bleibt. Diese Paritätszeichen werden nicht lediglich zum Korrigieren von Fehlern verwendet, um eine Datenzuverlässigkeit und eine verlängerte Lebensdauer zu erreichen, sondern können außerdem verwendet werden, um fehlende Daten an ausgefallenen integrierten Schaltungen wiederherzustellen, die im Allgemeinen als Löschstellen betrachtet werden, deren Lage dem EEC-Decodierer, der durch die SSD-Steuereinheit 104 implementiert wird, bekannt ist.
  • Jedes Codewort wird unter den integrierten Schaltkreisen 102 einer bestimmten Gruppe verteilt, sodass jeder integrierte Schaltkreis 102 in der Gruppe ein Fragment 202 jedes der Codewörter 200 enthält, die eine Seite aus Codewort-Fragmenten 204 für jeden integrierten Schaltkreis in der Gruppe bildet. Daher enthält jede Seite 204 Codewort-Fragmente von verschiedenen Codewörtern. Eine Seite enthält z.B. ein Fragment vom Codewort 1, vom Codewort k und vom Codewort L. Diese Seiten 204 werden als eine große verteilte Seite (LDP) 206 gleichzeitig in ihre jeweilige integrierte Schaltung geschrieben. Obwohl nicht dargestellt, sollte klar sein, dass jede IC-Gruppe 106 des SSD 100 eine Anzahl von LDPs unterstützen kann und nicht auf die in 2 gezeigte Konfiguration begrenzt sein sollte. Daher enthält jede LDP, die jeweils durch eine Gruppe integrierter Schaltkreise unterstützt wird, mehrere Codewörter und somit mehrere ECC/CRC-Paritätszeichen. Ferner ist jede LDP über eine Anzahl von M integrierten Schaltkreisen in einer Gruppe verteilt.
  • Deswegen kann jeder integrierte Schaltkreis eine Anzahl von Seiten 204 enthalten. Ein Fehlerkorrekturcode ist als die Liste aller möglichen Codewörter definiert. Ein L-fach verschachtelter Fehlerkorrekturcode verschachtelt L Codewörter aus der Liste aller möglichen Codewörter. Die in 2 gezeigte LDP wurde unter Verwendung eines L-fach verschachtelten Fehlerkorrekturcodes erzeugt. Die Konfiguration von 2 erreicht sowohl Datenzuverlässigkeit als auch verlängerte Lebensdauer und Robustheit gegen Ausfall von Einheiten durch die Verwendung eines einzelnen L-fach verschachtelten Fehlerdetektions-/Korrekturcodes. Der L-fach verschachtelte Fehlerkorrekturcode in 2 wird verwendet, um eine Datenzuverlässigkeit und eine verlängerte Lebensdauer bereitzustellen, und um die Wiederherstellung von Daten aus ausgefallenen integrierten Schaltkreisen zu ermöglichen. Die Verwendung eines Einzelfehler-Korrektorcodes, um sowohl eine Datenzuverlässigkeit als auch eine verlängerte Lebensdauer und Robustheit gegen Ausfall von Einheiten zu erreichen, verringert die Komplexität der Implementierung.
  • In einer Ausführungsform bedeutet der Ausdruck „verlängerte Lebensdauer“, dass die Lebensdauer der Speicherzellen der integrierten Schaltkreise verlängert wird durch Verwendung des einen L-fach verschachtelten Fehlerkorrekturcodes im Vergleich zu der Lebensdauer der Speicherzellen der integrierten Schaltkreise, die keinen Fehlerkorrekturcode verwenden.
  • Gemäß einer beispielhaften Ausführungsform verbindet die SSD-Steuereinheit 104 selektiv eine oder mehrere integrierte Ersatzschaltkreise 300 mit einem oder mehreren von der Vielzahl von Kanälen, die an ausgefallene integrierte Schaltkreise angeschlossen sind wie in 3A gezeigt. Das wird über einen Buskoppler 302 realisiert, der einen verfügbaren integrierten Schaltkreis 300 mit einem speziellen Kanal verbindet, an dem der ausgefallene integrierte Schaltkreis angeschlossen ist. Die integrierten Ersatzschaltkreise 300 sind keinem speziellen Kanal zugeordnet. Bei dieser Konfiguration kann eine größere Anzahl von integrierten Schaltkreisen 102 an dem gleichen Kanal oder an mehreren Kanälen ausfallen. Wenn z.B. einer der integrierten Schaltkreise 102, die in diesem Beispiel allgemein durch das Bezugszeichen 304 angegeben sind, an einem der Kanäle ausfällt, verbindet die SSD-Steuereinheit 104 den Kanal, der den ausgefallenen integrierten Schaltkreis 304 aufweist, mit dem ersten verfügbaren integrierten Ersatzschaltkreis wie in 3B gezeigt ist. Wenn in diesem Beispiel ein weiterer der integrierten Schaltkreise 102, der in diesem Beispiel allgemein durch das Bezugszeichen 306 angegeben ist, an einem anderen Kanal ausfällt, verbindet die SSD-Steuereinheit 104 diesen Kanal mit einem weiteren verfügbaren Ersatz wie in 3C gezeigt. Wenn alternativ ein weiterer der integrierten Schaltkreise 102, der in diesem Beispiel allgemein durch das Bezugszeichen 308 angegeben ist, an dem gleichen Kanal des integrierten Schaltkreises 304 ausfällt, verbindet die SSD-Steuereinheit 104 diesen Kanal mit einem weiteren verfügbaren Ersatz wie in 3D gezeigt. Obwohl lediglich zwei integrierte Ersatzschaltkreise gezeigt sind, sollte klar sein, dass jede Anzahl von integrierten Ersatzschaltkreisen verwendet werden könnte und nicht auf die hier gezeigte Konfiguration beschränkt sein sollte.
  • Es ist vorgesehen, dass gemäß weiteren beispielhaften Ausführungsformen eine der IC-Gruppen 106 als ein Vorrat von integrierten Ersatzschaltkreisen verwendet wird. Wenn in diesen beispielhaften Ausführungsformen ein integrierter Schaltkreis ausfällt, werden die in der Vorratsgruppe gespeicherten Daten an andere Gruppen übertragen und jeder integrierte Schaltkreis der Vorratsgruppe kann als integrierter Ersatzschaltkreis verwendet werden. Dieser Ansatz wie auch die oben beschriebenen anderen Ansätze können natürlich in Kombination verwendet werden, um ausgefallene integrierte Schaltkreise zu ersetzen. Es ist ferner vorgesehen, dass einer oder mehrere der integrierten Schaltkreise 102, die momentan nicht verwendet werden, als integrierte Ersatzschaltkreise verwendet werden können.
  • Gemäß einer Ausführungsform detektiert die SSD-Steuereinheit 104 funktionsfähig ausgefallene integrierte Schaltkreise durch verschiedene Mittel (z.B. Hardware-Steuersignale und/oder vorgegebene Bits in ihrem Statusregister). In einer speziellen Ausführungsform detektiert die SSD-Steuereinheit 104 ausgefallene integrierte Schaltkreise anhand von Hardware-Angaben wie etwa falsche Zeitsteuerungssignale. In weiteren beispielhaften Ausführungsformen können natürlich andere Verfahren zum Detektieren von ausgefallenen integrierten Schaltkreisen verwendet werden.
  • Wenn im Betrieb die SSD-Steuereinheit 104 einen ausgefallenen integrierten Schaltkreis detektiert, löst sie eine Rekonstruktionsprozedur oder einen Prozess zur Datenwiederherstellung aus. Die Rekonstruktionsprozedur enthält das Lokalisieren der integrierten Schaltkreise in der gleichen Gruppe, in der sich die ausgefallenen integrierten Schaltkreise befinden, und das Lesen jeder einzelnen der großen verteilten Seiten 206 in der Gruppe, da jeder integrierte Schaltkreis Fragmente jedes Codeworts enthält wie oben beschrieben. Die Rekonstruktionsprozedur enthält ferner, dass die SSD-Steuereinheit 104 einen EEC-Decodierungsalgorithmus ausführt, um die beschädigten Daten in dem ausgefallenen integrierten Schaltkreis zu regenerieren. Der ECC-Algorithmus kann jeder herkömmliche Decodierungsalgorithmus oder modifizierte Decodierungsalgorithmus sein. Die SSD-Steuereinheit 104 speichert dann diese regenerierten Daten in einem der integrierten Ersatzschaltkreise 300, die mit dem Kanal verbunden sind, an den der ausgefallene integrierte Schaltkreis angeschlossen ist.
  • Es wird angenommen, dass ein Codewort u Löschungsstellen, deren Orte bekannt sind, und e Fehler, deren Orte nicht bekannt sind, enthält. Der minimale Hamming-Abstand d eines linearen ECC-Codes legt die Fehler-/Löschkorrekturfähigkeit des Codes fest. Gemäß einer Ausführungsform kann der ECC-Decodierungsalgorithmus, der durch die SSD-Steuereinheit 104 ausgeführt wird, u Löschungsstellen und e Fehler in einem Codewort korrigieren, wenn (u + 2e) ≤ (d - 1).
  • Die 4A bis 4B veranschaulichen ein Verfahren zum Wiederherstellen von Daten aus einem integrierten Schaltkreis gemäß einer beispielhaften Ausführungsform. Am Anfang der Operation am Block 400 wird s auf 0 gesetzt. In diesem Beispiel bezeichnet s die Gesamtzahl von integrierten Ersatzschaltkreisen, die verwendet wurden, um ausgefallene integrierte Schaltkreise zu ersetzen. Im Block 402 wird festgestellt, ob ein integrierter Schaltkreis ausgefallen ist. In einer Ausführungsform detektiert die SSD-Steuereinheit 104 einen ausgefallenen integrierten Schaltkreis anhand einer Hardware-Angabe wie etwa das Empfangen von falschen Zeitsteuerungssignalen. Wenn die Antwort nein ist, wird der Block 402 ausgeführt, bis ein ausgefallener integrierter Schaltkreis detektiert wird. Wenn die Antwort ja ist, wird im Block 404 festgestellt, ob s < S. S ist die Gesamtzahl von integrierten Ersatzschaltkreisen, die in dem SSD 100 zur Verfügung stehen. Wenn die Antwort nein ist, wird im Block 406 festgestellt, ob ein nicht verwendeter integrierter Schaltkreis als ein integrierter Ersatzschaltkreis verwendet werden kann. Mit anderen Worten, im Block 406 wird festgestellt, ob einer der funktionsfähigen integrierten Schaltkreise 102 als ein integrierter Ersatzschaltkreis verwendet werden kann. Wenn die Antwort nein ist, wird im Block 408 eine Operation der kritischen Betriebsart angezeigt, bei der ein weiterer IC-Ausfall einen Datenverlust bewirken kann. Daten gehen verloren, wenn zwei oder mehr ICs in einer Gruppe, die einen oder mehr Ersatz-ICs enthält, ausfallen. Wenn die Antwort im Block 408 ja lautet, wird im Block 410 S um 1 vergrößert. An diesem Punkt wird die Anzahl von integrierten Ersatzschaltkreisen um eins vergrößert, wenn ein nicht verwendeter integrierter Schaltkreis aus einer der Gruppen als ein integrierter Ersatzschaltkreis verwendet wird. Daher verringert sich die Gesamtspeicherkapazität in dem SSD. Anschließend wird im Block 412 der Kanal identifiziert, an dem der ausgefallene integrierte Schaltkreis angeschlossen ist, und einer der integrierten Ersatzschaltkreise wird ausgewählt. Wenn die Antwort im Block 404 ja ist, erfolgt eine Fortsetzung im Block 412. Anschließend wird im Block 414 der integrierte Ersatzschaltkreis angeschlossen, um den ausgefallenen integrierten Schaltkreis zu ersetzen und das Lesen aller LDPs in der Gruppe, die den ausgefallenen integrierten Schaltkreis enthält, zu lesen. Das Lesen aller LDPs wird im Block 416 ausgelöst. Im Einzelnen wird im Block 416 p auf 1 gesetzt. Dabei bezeichnet p die Nummer der LPD, die während der Wiederherstellung aus dem Ausfall des integrierten Schaltkreises gelesen wird, sodass 1 ≤ p ≤ P. Im Block 418 werden L Codewörter in der p-ten LDP gelesen. Da in diesem Fall p auf 1 gesetzt ist, liest die SSD-Steuereinheit 102 L Codewörter oder alle Codewörter in der ersten LDP. Anschließend wird im Block 420 festgestellt, ob funktionsfähige integrierte Schaltkreise in der Gruppe mit dem ausgefallenen integrierten Schaltkreis in der p-ten LDP Fehler aufweisen. Wenn die Antwort ja lautet, wird im Block 422 festgestellt, ob die Fehler in allen L Codewörtern in der p-ten LDP behebbar sind. Das beruht normalerweise darauf, welche Redundanz in den Code eingegeben wird. In einer Ausführungsform kann der ECC-Decodierungsalgorithmus u Löschungsstellen und e Fehler in einem Codewort korrigieren, falls (u + 2e) ≤ (d - 1). Wenn die Antwort im Block 422 nein lautet, wird im Block 424 ein Ausfall beim Lesen der p-ten LDP angegeben. Wenn im Block 422 die Antwort ja lautet, werden im Block 426 Fehler in der p-ten LDP korrigiert. Anschließend werden im Block 428 verlorene Daten in der p-ten LDP wiederhergestellt und in dem integrierten Ersatzschaltkreis gespeichert. Alle Fehler in den Codewort-Fragmenten, die in funktionsfähigen integrierten Schaltkreisen in der Gruppe gespeichert sind, sind behebbar, wenn e < floor((d - 1 - m)/2), wobei floor((d - 1 - m)/2) eine ganze Zahl ist, die abgerundet wurde, e repräsentiert die Anzahl von Fehlern in (L - 1) Codewort-Fragmenten in funktionsfähigen integrierten Schaltkreisen in einem bestimmten Codewort und m bezeichnet die maximale Anzahl von Zeichen in einem Codewort, die infolge des Chipausfall verloren gegangen sind, fehlen oder gelöscht wurden. Im Block 430 wird festgestellt, ob p < P, wobei P die Gesamtzahl von Seiten in einem integrierten Schaltkreis bezeichnet, die gleich der Gesamtanzahl von LDPs in einer Gruppe ist. Wenn die Antwort nein lautet, wird im Block 432 s um eins vergrößert. Wenn die Antwort ja lautet, wird p im Block 434 um 1 vergrößert. Daher wird jede LDP in der Gruppe gelesen und die Fehler und Löschungsstellen werden in allen L Codewörtern in jeder LDP der Gruppe falls möglich korrigiert. Wenn wie gezeigt die Antwort im Block 420 nein lautet, erfolgt eine Fortsetzung im Block 428. Nachdem im Block 424 ein Ausfall angegeben wurde, erfolgt eine Fortsetzung im Block 430.
  • Die hier verwendete Terminologie dient lediglich zum Beschreiben bestimmter Ausführungsformen und ist nicht vorgesehen, um die Erfindung zu beschränken. Es ist vorgesehen, dass die hier verwendeten Einzahlformen „ein/eine“ und „der/die/das“ die Mehrzahlformen ebenfalls einschließen, falls nicht im Kontext deutlich anders angegeben. Es ist ferner klar, dass die Ausdrücke „umfasst“ und/oder „umfassend“, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von festgestellten Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten festlegen, jedoch nicht das Vorhandensein oder die Hinzufügung von einem oder mehreren Merkmalen, Ganzzahlen, Schritten, Operationen, Element-Komponenten und/oder Gruppen hiervon ausschließen.
  • Es ist vorgesehen, dass die entsprechenden Strukturen, Materialien, Wirkungen und Ersetzungen aller Mittel oder Schritte plus Funktionselementen in den nachfolgenden Ansprüchen jede Struktur, jedes Material oder jede Wirkung zum Ausführen der Funktion in Kombination mit anderen beanspruchten Elementen in der speziell beanspruchten Weise einschließen. Die Beschreibung der vorliegenden Erfindung wurde zum Zweck der Erläuterung und Beschreibung präsentiert, es ist jedoch nicht vorgesehen, dass sie für die Erfindung in der offenbarten Form erschöpfend oder einschränkend ist. Viele Modifikationen und Variationen werden einem Fachmann offensichtlich sein, ohne vom Umfang und Gedanken der Erfindung abzuweichen. Die Ausführungsform wurde ausgewählt und beschrieben, um die Prinzipien der Erfindung und die praktische Anwendung am besten zu erläutern, und damit Nichtfachmänner die Erfindung verstehen können, wobei verschiedene Ausführungsformen mit verschiedenen Modifikationen für die vorgesehene spezielle Verwendung geeignet sind.
  • Die hier dargestellten Ablaufpläne sind lediglich ein Beispiel. Es kann viele Variationen an dem hier beschriebenen Diagramm oder an den Schritten (oder Operationen) geben, ohne vom Erfindungsgedanken der Erfindung abzuweichen. Die Schritte können z.B. in einer unterschiedlichen Reihenfolge ausgeführt werden oder Schritte können hinzugefügt, gelöscht oder modifiziert werden. Alle diese Variationen sollen als Teil der beanspruchten Erfindung betrachtet werden.
  • Während die bevorzugte Ausführungsform der Erfindung beschrieben wurde, sollte es klar sein, dass ein Fachmann jetzt oder zukünftig verschiedene Verbesserungen und Erweiterungen ausführen kann, die in den Umfang der folgenden Ansprüche fallen. Diese Ansprüche sollten so betrachtet werden, dass sie den geeigneten Schutz der zuerst beschriebenen Erfindung darstellen.

Claims (17)

  1. Festkörper-Speichersystem, das Folgendes umfasst: eine Vielzahl von integrierten Schaltkreisen zum Speichern von Daten; eine Steuereinheit, die über einen oder mehrere von einer Vielzahl von Kanälen mit der Vielzahl von integrierten Schaltkreisen verbunden ist, wobei die Steuereinheit funktionsfähig die Operationen der Vielzahl von integrierten Schaltkreisen steuert und einen L-fach verschachtelten Fehlerkorrekturcode verwendet, um eine Datenzuverlässigkeit und verlängerte Lebensdauer bereitzustellen und die Wiederherstellung der Daten von ausgefallenen integrierten Schaltkreisen ermöglicht; und einen oder mehrere integrierte Ersatzschaltkreise, die selektiv mit einem oder mehreren der Vielzahl von Kanälen verbunden sind, wenn ein oder mehrere der Vielzahl von integrierten Schaltkreisen, die hiermit verbunden sind, ausfallen, wobei die wiederhergestellten Daten von ausgefallenen integrierten Schaltkreisen in einem oder mehreren integrierten Ersatzschaltkreisen gespeichert werden, wobei die Vielzahl von integrierten Schaltkreisen in einer Vielzahl von Gruppen organisiert sind, wobei jede von der Vielzahl von Gruppen, die einen oder mehrere von der Vielzahl von integrierten Schaltkreisen aufweist, eine Vielzahl von Seiten aufweist, die Fragmente eines oder mehrerer Codewörter umfassen, wobei die Vielzahl von Seiten aus der Vielzahl von integrierten Schaltkreisen eine Vielzahl von großen verteilten Seiten bilden, wobei jede von der Vielzahl von großen verteilten Seiten eine aus der Vielzahl von Seiten von jedem einzelnen aus der Vielzahl von integrierten Schaltkreisen enthält, wobei jedes Codewort Datenzeichen und Paritätszeichen, die zum Wiederherstellen von Daten und zum Detektieren und Korrigieren von Fehlern verwendet werden, enthält.
  2. Speichersystem nach Anspruch 1, wobei ein oder mehrere von der Vielzahl von Kanälen mit einem oder mehreren von der Vielzahl von integrierten Schaltkreisen in jeder aus der Vielzahl von Gruppen verbunden sind, wobei die Vielzahl von Kanälen synchron betrieben wird.
  3. Speichersystem nach Anspruch 1, wobei die Vielzahl von Kanälen in einem oder mehreren Hauptkanälen gruppiert sind, wobei jeder von dem einen oder den mehreren Hauptkanälen einen oder mehrere von der Vielzahl von Kanälen aufweist und der eine oder die mehreren Hauptkanäle asynchron betrieben werden.
  4. Speichersystem nach Anspruch 1, wobei jede von der Vielzahl von großen verteilten Seiten ein oder mehrere Codewörter aufweist, die die Wiederherstellung von verlorenen Daten infolge des Ausfalls von einem oder mehreren von der Vielzahl von integrierten Schaltkreisen ermöglichen und die die Korrektur von einem oder mehreren Fehlern in einem oder mehreren von der Vielzahl von integrierten Schaltkreisen, die funktionsfähig sind, ermöglichen.
  5. Speichersystem nach Anspruch 3, wobei verlorene Daten von einem ausgefallenen integrierten Schaltkreis wiederhergestellt werden, indem jedes Codewort in jeder von der einen oder den mehreren großen verteilten Seiten in einer von der Vielzahl von Gruppen mit dem ausgefallenen integrierten Schaltkreis gelesen wird.
  6. Speichersystem nach Anspruch 1, wobei die Steuereinheit einen oder mehrere integrierte Ersatzschaltkreise über einen Buskoppler mit einem oder mehreren von der Vielzahl von Kanälen funktionsfähig verbindet, wenn ein Ausfall von einem oder mehreren von der Vielzahl von integrierten Schaltkreisen detektiert wird.
  7. Speichersystem nach Anspruch 1, wobei die Vielzahl von integrierten Schaltkreisen flashgestützte Speichereinrichtungen sind.
  8. Speichersystem nach Anspruch 1, wobei jeder von der Vielzahl von integrierten Schaltkreisen durch mehrere Steuersignale gesteuert wird, die von der Steuereinheit erzeugt werden, wobei jeder von der Vielzahl von integrierten Schaltkreisen so eingerichtet ist, dass er die mehreren Steuersignale gleichzeitig empfängt.
  9. Speichersystem nach Anspruch 1, wobei der eine oder die mehreren von der Vielzahl von integrierten Schaltkreisen, die verfügbar sind, als integrierte Ersatzschaltkreise verwendet werden.
  10. Verfahren zum Bereitstellen einer Datenzuverlässigkeit und einer verlängerten Lebensdauer und zum Ermöglichen der Wiederherstellung von Daten von ausgefallenen integrierten Schaltkreisen eines Festkörperlaufwerks, das Folgendes umfasst: Speichern von Codewort-Fragmenten in einer Vielzahl von integrierten Schaltkreisen unter Verwendung einer Steuereinheit, die einen L-fach verschachtelten Fehlerkorrekturcode verwendet, wobei die Steuereinheit mit der Vielzahl von integrierten Schaltkreisen über einen oder mehrere von einer Vielzahl von Kanälen im Signalaustausch steht, wobei die Steuereinheit die Operationen der Vielzahl von integrierten Schaltkreisen funktionsfähig steuert; Verbinden von einem oder mehreren der integrierten Ersatzschaltkreise mit einem oder mehreren der Vielzahl von Kanälen, wenn einer oder mehrere von der Vielzahl von integrierten Schaltkreisen, die hiermit verbunden sind, ausfallen; Speichern von wiederhergestellten Daten in zumindest einem der integrierten Ersatzschaltkreise als Reaktion auf das Verbinden von einem oder mehreren der integrierten Ersatzschalkreise; und Organisieren der Vielzahl von integrierten Schaltkreisen in einer Vielzahl von Gruppen umfasst, wobei jede von der Vielzahl von Gruppen einen oder mehrere von der Vielzahl von integrierten Schaltkreisen aufweist, wovon jeder eine Vielzahl von Seiten aufweist, die Fragmente eines oder mehrerer Codewörter umfassen, wobei die Vielzahl von Seiten von der Vielzahl integrierter Schaltkreise eine Vielzahl großer verteilter Seiten bildet, wobei jede von der Vielzahl großer verteilter Seiten eine von der Vielzahl von Seiten von jedem einzelnen von der Vielzahl von integrierten Schaltkreisen enthält, wobei jedes Codewort Datenzeichen und Paritätszeichen, die zum Wiederherstellen von Daten und zum Detektieren und Korrigieren von Fehlern verwendet werden, enthält.
  11. Verfahren nach Anspruch 10, wobei einer oder mehrere von der Vielzahl von Kanälen mit einem oder mehreren von der Vielzahl von integrierten Schaltkreisen in jeder von der Vielzahl von Gruppen verbunden sind, wobei die Vielzahl von Kanälen synchron betrieben wird.
  12. Verfahren nach Anspruch 10, wobei die Vielzahl von Kanälen in einen oder mehrere Hauptkanäle gruppiert sind, wobei jeder von dem einen oder den mehreren Hauptkanälen einen oder mehrere von der Vielzahl von Kanälen aufweist und der eine oder die mehreren Hauptkanäle asynchron betrieben werden.
  13. Verfahren nach Anspruch 10, wobei jede von der Vielzahl großer verteilter Seiten ein oder mehrere Codewörter aufweist, die das Wiederherstellen von verlorenen Daten infolge des Ausfalls von einem oder mehreren von der Vielzahl von integrierten Schaltkreisen ermöglichen und die Korrektur von einem oder mehreren Fehlern in einem oder mehreren von der Vielzahl von integrierten Schaltkreisen, die funktionsfähig sind, ermöglichen.
  14. Verfahren nach Anspruch 13, wobei verlorene Daten von einem ausgefallenen integrierten Schaltkreis wiederhergestellt werden, indem jedes Codewort in jeder der einen oder mehreren großen verteilten Seiten in einer von der Vielzahl von Gruppen mit dem ausgefallenen integrierten Schaltkreis gelesen wird.
  15. Verfahren nach Anspruch 14, das ferner das Steuern jedes von der Vielzahl von integrierten Schaltkreisen durch mehrere Steuersignale umfasst, die von der SSD-Steuereinheit erzeugt werden, wobei jeder von der Vielzahl von integrierten Schaltkreisen so eingerichtet ist, dass er die mehreren Steuersignale gleichzeitig empfängt.
  16. Verfahren nach Anspruch 10, wobei einer oder mehrere von der Vielzahl von integrierten Schaltkreisen, die zur Verfügung stehen, als integrierte Ersatzschaltkreise verwendet werden.
  17. Verfahren zum Bereitstellen einer Datenzuverlässigkeit und einer verlängerten Lebensdauer und zum Ermöglichen einer Wiederherstellung von Daten aus ausgefallenen integrierten Schaltkreisen eines Festkörperlaufwerks, das Folgendes umfasst: Speichern von Codewortfragmenten in einer Vielzahl von integrierten Schaltkreisen unter Verwendung einer SSD-Steuereinheit, die einen L-fach verschachtelten Fehlerkorrekturcode verwendet, wobei die SSD-Steuereinheit mit der Vielzahl von integrierten Schaltkreisen über einen oder mehrere von einer Vielzahl von Kanälen im Signalaustausch steht, wobei die SSD-Steuereinheit die Operationen der Vielzahl von integrierten Schaltkreisen funktionsfähig steuert; Detektieren von Ausfällen in einem oder mehreren von der Vielzahl von integrierten Schaltkreisen; Verbinden von einem oder mehreren integrierten Ersatzschaltkreisen mit einem oder mehreren von der Vielzahl von Kanälen, wenn einer oder mehrere von der Vielzahl von integrierten Schaltkreisen, die hiermit verbunden sind, ausfallen; und Wiederherstellen von verlorenen Daten infolge des Ausfalls von einem oder mehreren von der Vielzahl von integrierten Schaltkreisen und Speichern der wiederhergestellten Daten in zumindest einem der integrierten Ersatzschaltkreise als Reaktion auf das Verbinden von einem oder mehreren der integrierten Ersatzschalkreise; Organisieren der Vielzahl von integrierten Schaltkreisen in einer Vielzahl von Gruppen umfasst, wobei jede von der Vielzahl von Gruppen einen oder mehrere von der Vielzahl von integrierten Schaltkreisen aufweist, wovon jeder eine Vielzahl von Seiten aufweist, die Fragmente eines oder mehrerer Codewörter umfassen, wobei die Vielzahl von Seiten von der Vielzahl integrierter Schaltkreise eine Vielzahl großer verteilter Seiten bildet, wobei jede von der Vielzahl großer verteilter Seiten eine von der Vielzahl von Seiten von jedem einzelnen von der Vielzahl von integrierten Schaltkreisen enthält; Korrigieren von Fehlern an einem oder mehreren von der Vielzahl von integrierten Schaltkreisen, die funktionsfähig sind, auf der Grundlage des einen oder der mehreren Codewörter, wobei jedes Codewort Datenzeichen und Paritätszeichen zur Durchführung des Korrigierens enthält.
DE112010003645.4T 2009-11-30 2010-11-26 Festkörper-Speichersystem mit Parallelem Zugriff aus Mehreren Flash/PCM-Einrichtungen Active DE112010003645B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/627,364 US8495471B2 (en) 2009-11-30 2009-11-30 Solid-state storage system with parallel access of multiple flash/PCM devices
US12/627,364 2009-11-30
PCT/IB2010/055458 WO2011064754A1 (en) 2009-11-30 2010-11-26 Solid-state storage system with parallel access of multiple flash/pcm devices

Publications (2)

Publication Number Publication Date
DE112010003645T5 DE112010003645T5 (de) 2012-10-31
DE112010003645B4 true DE112010003645B4 (de) 2020-06-04

Family

ID=43707733

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010003645.4T Active DE112010003645B4 (de) 2009-11-30 2010-11-26 Festkörper-Speichersystem mit Parallelem Zugriff aus Mehreren Flash/PCM-Einrichtungen

Country Status (5)

Country Link
US (1) US8495471B2 (de)
CN (1) CN102630318B (de)
DE (1) DE112010003645B4 (de)
GB (1) GB2488057B (de)
WO (1) WO2011064754A1 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539924B1 (en) 2005-11-15 2009-05-26 Western Digital Technologies, Inc. Disk drive implementing data path protection by encoding large host blocks into sub blocks
US8397107B1 (en) * 2009-12-11 2013-03-12 Western Digital Technologies, Inc. Data storage device employing data path protection using both LBA and PBA
US10089017B2 (en) 2011-07-20 2018-10-02 Futurewei Technologies, Inc. Method and apparatus for SSD storage access
US9424128B2 (en) 2011-08-12 2016-08-23 Futurewei Technologies, Inc. Method and apparatus for flexible RAID in SSD
US8671250B2 (en) 2011-12-15 2014-03-11 Western Digital Technologies, Inc. Data storage device generating redundancy for data path protection of a parity sector
US9195578B2 (en) 2012-08-24 2015-11-24 International Business Machines Corporation Systems, methods and computer program products memory space management for storage class memory
US9026893B1 (en) 2012-12-13 2015-05-05 Western Digital Technologies, Inc. Dynamically assigning inactive pages not used in Reed-Solomon code in non-volatile solid-state storage array
US9041428B2 (en) 2013-01-15 2015-05-26 International Business Machines Corporation Placement of storage cells on an integrated circuit
US9021328B2 (en) 2013-01-15 2015-04-28 International Business Machines Corporation Shared error protection for register banks
US9201727B2 (en) 2013-01-15 2015-12-01 International Business Machines Corporation Error protection for a data bus
US9043683B2 (en) 2013-01-23 2015-05-26 International Business Machines Corporation Error protection for integrated circuits
US20140317467A1 (en) * 2013-04-22 2014-10-23 Storart Technology Co., Ltd. Method of detecting and correcting errors with bch engines for flash storage system
US20150039813A1 (en) * 2013-08-05 2015-02-05 Greenliant Llc NAND Interface Capacity Extender Device For Extending Solid State Drives Capacity, Performance, And Reliability
KR102059865B1 (ko) 2013-08-06 2020-02-12 삼성전자주식회사 가변 저항 메모리 장치 및 그것을 포함하는 가변 저항 메모리 시스템
US9286176B1 (en) * 2013-11-08 2016-03-15 Western Digital Technologies, Inc. Selective skipping of blocks in an SSD
US9529710B1 (en) 2013-12-06 2016-12-27 Western Digital Technologies, Inc. Interleaved channels in a solid-state drive
GB2524003A (en) 2014-03-10 2015-09-16 Ibm Storage device with 2D configuration of phase change memory integrated circuits
US9582201B2 (en) 2014-09-26 2017-02-28 Western Digital Technologies, Inc. Multi-tier scheme for logical storage management
US10248521B2 (en) * 2015-04-02 2019-04-02 Microchip Technology Incorporated Run time ECC error injection scheme for hardware validation
US11586565B2 (en) 2016-10-03 2023-02-21 Samsung Electronics Co., Ltd. Non-volatile storage system and data storage access protocol for non-volatile storage devices
US10884850B2 (en) * 2018-07-24 2021-01-05 Arm Limited Fault tolerant memory system
CN111552436B (zh) * 2018-10-25 2022-02-25 华为技术有限公司 存储系统中数据恢复方法、系统及装置
US11474920B2 (en) * 2020-03-31 2022-10-18 International Business Machines Corporation Dynamic mapping of logical to physical memory for increased performance
US11334431B2 (en) * 2020-09-21 2022-05-17 Alibaba Group Holding Limited System and method for data protection in solid-state drives

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732291B1 (en) 2000-11-20 2004-05-04 International Business Machines Corporation High performance fault tolerant memory system utilizing greater than four-bit data word memory arrays
US20080077840A1 (en) 2006-09-27 2008-03-27 Mark Shaw Memory system and method for storing and correcting data
US7360132B1 (en) 2005-05-19 2008-04-15 Sun Microsystems, Inc. System and method for memory chip kill

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3105092B2 (ja) 1992-10-06 2000-10-30 株式会社東芝 半導体メモリ装置
JPH06266596A (ja) 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
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
US7827348B2 (en) * 2000-01-06 2010-11-02 Super Talent Electronics, Inc. High performance flash memory devices (FMD)
US6553510B1 (en) 1999-09-02 2003-04-22 Micron Technology, Inc. Memory device including redundancy routine for correcting random errors
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
US6426910B1 (en) 2000-08-30 2002-07-30 Micron Technology, Inc. Enhanced fuse configurations for low-voltage flash memories
US6691276B2 (en) * 2001-06-25 2004-02-10 Intel Corporation Method for detecting and correcting failures in a memory system
US7475326B2 (en) * 2003-06-27 2009-01-06 Maxwell Technologies, Inc. Error detection and correction method and system for memory devices
US7065697B2 (en) * 2003-07-29 2006-06-20 Hewlett-Packard Development Company, L.P. Systems and methods of partitioning data to facilitate error correction
US20090204872A1 (en) * 2003-12-02 2009-08-13 Super Talent Electronics Inc. Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules
US7177189B2 (en) 2004-03-01 2007-02-13 Intel Corporation Memory defect detection and self-repair technique
US7331010B2 (en) * 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
JP2010512584A (ja) * 2006-12-06 2010-04-22 フュージョン マルチシステムズ,インク.(ディービイエイ フュージョン−アイオー) 空データトークン指令を有する要求デバイスからのデータを管理する装置、システムおよび方法
US7643281B2 (en) * 2006-12-13 2010-01-05 Hitachi, Ltd. Storage controller
US20090083482A1 (en) 2007-09-21 2009-03-26 Vizio Increasing the speed at which flash memory is written and read
WO2009053962A2 (en) * 2007-10-22 2009-04-30 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
KR20110050404A (ko) * 2008-05-16 2011-05-13 퓨전-아이오, 인크. 결함 있는 데이터 저장소를 검출하고 교체하는 장치, 시스템 및 프로그램 제품
CN101552032B (zh) * 2008-12-12 2012-01-18 深圳市晶凯电子技术有限公司 用较大容量dram参与闪存介质管理构建高速固态存储盘的方法及装置
US7954021B2 (en) * 2009-10-23 2011-05-31 International Business Machines Corporation Solid state drive with flash sparing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732291B1 (en) 2000-11-20 2004-05-04 International Business Machines Corporation High performance fault tolerant memory system utilizing greater than four-bit data word memory arrays
US7360132B1 (en) 2005-05-19 2008-04-15 Sun Microsystems, Inc. System and method for memory chip kill
US20080077840A1 (en) 2006-09-27 2008-03-27 Mark Shaw Memory system and method for storing and correcting data

Also Published As

Publication number Publication date
GB2488057A (en) 2012-08-15
WO2011064754A1 (en) 2011-06-03
US20110131472A1 (en) 2011-06-02
US8495471B2 (en) 2013-07-23
CN102630318B (zh) 2015-06-03
GB201207470D0 (en) 2012-06-13
DE112010003645T5 (de) 2012-10-31
GB2488057B (en) 2017-12-06
CN102630318A (zh) 2012-08-08

Similar Documents

Publication Publication Date Title
DE112010003645B4 (de) Festkörper-Speichersystem mit Parallelem Zugriff aus Mehreren Flash/PCM-Einrichtungen
DE10233642B4 (de) Fehlerkorrektur-Kodierung und -Dekodierung in einer Festkörper-Speicherungsvorrichtung
DE112010004863B4 (de) Datenverwaltung in Festkörperspeichersystemen
DE112010003345B4 (de) Datenspeichersystem und Verfahren für das Betreiben eines Datenspeichersystems
DE112012000385B4 (de) Korrigieren von Auslöschungen in Speicher-Arrays
DE112011101116B4 (de) Two-Level BCH-Codes für Solid-State-Speichereinheiten
DE112010003887B4 (de) Datenverwaltung in Halbleiter-Speichereinheiten
DE102019124438B4 (de) Multi-state-programmierung für speichervorrichtungen
DE202008018573U1 (de) Speichersystem
DE112014001305B4 (de) Auswahl einer redundanten Datenspeicherkonfiguration auf der Grundlage verfügbaren Speicherplatzes
DE112016005869T5 (de) Vorausschauende Arbeitsspeicherinstandhaltung
DE112011103295B4 (de) Decodieren in Solid-State-Speichereinheiten
DE112018004275T5 (de) Raid-array-wiederherstellungsunterstützung anhand einer externen array-kopie
DE102005052698A1 (de) Verfahren zur Verarbeitung von nichtflüchtig gespeicherten Daten
DE102008030858A1 (de) Speicher mit dynamischer Redundanzkonfigurierung
DE112013005453B4 (de) Rekonstruierende Fehlerbehebungsprozedur (ERP) für mehrerer Datensätze unter Verwendung eines reservierten Puffers
DE112014005570T5 (de) Deaktivieren von Seiten in einem Nand-Flash-Speicher-System
DE2421112A1 (de) Speicheranordnung
DE112011100371T5 (de) Verfahren, Vorrichtung und Computerprogrammprodukt zum Decodieren eines Codeworts
EP2857971A1 (de) Verfahren und vorrichtung zur wiederherstellung von fehlerbehafteten daten
DE102016108733B4 (de) Steuern einer redundanten Anordnung von unabhängigen Festplatten (RAID), welche ein Nur-Lese-Flash-Datenspeichergerät einschließt
WO1998009219A1 (de) Fehlererkennung in einem speichersystem
DE102018122826A1 (de) Vorrichtung zum Unterstützen eines Fehlerkorrekturcodes und Testverfahren dafür
DE102015215401A1 (de) Speichervorrichtung und Verfahren zum Korrigieren einer gespeicherten Bitfolge
DE102006036070A1 (de) Ladungsfallenspeichervorrichtung und Verfahren für deren Herstellung und Betrieb

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final