-
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.