-
GEBIET DER OFFENBARUNG
-
Die vorliegende Erfindung bezieht sich auf Datenspeichersysteme und insbesondere auf Techniken zum Speichern von Bits in Speicherzellen mit Hängenbleibenauf-0-oder-1-Fehlern in Datenspeichersystemen.
-
HINTERGRUND
-
Viele Datenkommunikationssysteme verwenden Fehlerkorrekturcodierer und -decodierer, um Fehler in Daten zu detektieren und zu korrigieren. Ein Datenkommunikationssystem kann z. B. Zufallsfehler korrigieren, die mit einer Rate von etwa 1 × 10-4 erzeugt werden. Um vor einer Fehlerrate von etwa 1 × 10-4 zu schützen, erzeugt ein Fehlerkorrekturcodierer codierte Bits, die etwa 10 % mehr Bits als seine Eingangsbits besitzen.
-
Ein Phasenänderungsspeicher (PCM) ist eine Klasse des nichtflüchtigen Speichers. PCM-Vorrichtungen besitzen gegenüber herkömmlichen nichtflüchtigen Flash-Speichern viele Vorteile. PCM-Vorrichtungen können jedoch eine große Anzahl von Fehlern erzeugen, die durch die Verschlechterung hervorgerufen werden. Eine PCM-Vorrichtung kann z. B. Fehler mit einer Rate von 1 × 10-2 oder größer erzeugen.
-
An den Grenzen der Lebensdauer ist die Fehlerrate in nichtflüchtigen Speichervorrichtungen durch die Verschlechterung beherrscht. Die durch die Verschlechterung verursachten Fehler enthalten die Hängenbleiben-auf-0-oder-1-Fehler, die andere Statistiken und Eigenschaften als die zufälligen Fehler besitzen, die in Datenkommunikationssystemen häufig sind.
-
Die Druckschrift
US 6,839,275 B1 beschreibt ein Speichersystem mit einer Anordnung von Speicherzellen, einer Schreibschaltung, die zum Schreiben von Speicherzellen in die Anordnung von Speicherzellen konfiguriert ist, und einer Steuerschaltung. Die Steuerschaltung ist eingerichtet, um Daten zu empfangen, codierte Empfangsdaten bereitzustellen, um einem Fehlermuster in der Anordnung der Speicherzellen zu entsprechen, und die Schreibschaltung zu steuern, um die codierten Empfangsdaten in die Anordnung der Speicherzellen an einer Fehleradresse des Fehlermusters zu schreiben.
-
Die Druckschrift
US 3,949,208 A beschreibt eine Vorrichtung für ein digitales Speichersystem, das eine einfache und doppelte Fehlererkennung und -korrektur sowie die Erkennung von Fehlern in den Speicherelementen durchführt, die keine Fehler in dem darin gespeicherten Datenwort erzeugen. Das Datenwort wird in einem speziellen Hamming SEC/DED-Code kodiert und die Vorrichtung erzeugt Syndrome und Byte-Paritätsbits, welche analysiert werden, um sowohl das Vorhandensein als auch die Art der Fehler und Störungen zu erkennen. Eine fehlerhafte Korrektur von Fehlern wird durch ein paralleles Korrekturverfahren vermieden.
-
KURZZUSAMMENFASSUNG
-
Eine Aufgabe der Erfindung mag darin gesehen werden, Datenspeichersysteme sowie ein Verfahren für Datenspeichersysteme bereitzustellen, bei denen eine Steuerschaltung redundante Bits für Datenbits erzeugt, um vor Fehlern zu schützen, die durch Hängenbleiben- auf-0-oder-1-Fehler bei der Speicherung von Datenbits in Speicherzellen verursacht werden.
-
Demgemäß werden zur Lösung dieser Aufgabe Datenspeichersysteme sowie ein Verfahren gemäß den unabhängigen Ansprüchen bereitgestellt. Bevorzugte Ausgestaltungen ergeben sich aus den abhängigen Ansprüchen.
-
Verschiedene Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden bei Betrachtung der folgenden ausführlichen Beschreibung und der beigefügten Zeichnungen offensichtlich.
-
Figurenliste
-
- 1 veranschaulicht ein Beispiel eines Datenspeichersystems gemäß einer Ausführungsform der vorliegenden Erfindung.
- 2 ist ein Ablaufplan, der Beispiele der Operationen zum Auswählen einer Codierungstechnik veranschaulicht, um sie auf die für die Speicherung in den Speicherzellen einer Speicherschaltung vorgesehenen Datenbits anzuwenden, gemäß einer Ausführungsform der vorliegenden Erfindung.
- 3 veranschaulicht Beispiele der Operationen, die ausgeführt werden können, um die Bitfehlerrate der Hängenbleiben-auf-0-oder-1-Fehler in den Speicherzellen gemäß einer Ausführungsform der vorliegenden Erfindung zu bestimmen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Gemäß einigen hier beschriebenen Ausführungsformen werden Datenbits für die Speicherung in den Speicherzellen einer Speicherschaltung während einer Schreiboperation bereitgestellt. Eine Steuerschaltung erzeugt redundante Bits für die Datenbits, um vor Fehlern zu schützen, die durch die Hängenbleiben-auf-0- oder-1-Fehler in den Speicherzellen verursacht werden. Die Datenbits oder die codierten Bits werden in den Speicherzellen gespeichert. Nachdem die Bits während einer Leseoperation aus den Speicherzellen gelesen worden sind, verwendet eine Steuerschaltung die redundanten Bits, um die Fehler, die durch die Hängenbleiben-auf-0-oder-1-Fehler verursacht werden, in den aus den Speicherzellen gelesenen Bits zu korrigieren. Die Speicherschaltung kann z. B. eine Phasenänderungs-Speicherschaltung (die z. B. Chalkogenidglas verwendet) oder irgendein anderer Typ der Speicherschaltung, der Hängenbleiben-auf-0-oder-1-Fehler aufweist, sein. Die hier beschriebenen Datenbits können z. B. vom Anwender erzeugte Bits, Bits, die Softwarecode repräsentieren, und irgendwelche anderen digitalen Werte enthalten.
-
Eine Speicherzelle, die einen Hängenbleiben-auf-0-oder-1-Fehler aufweist, ist eine Speicherzelle, die nur einen einzigen digitalen Wert speichern kann. Eine Speicherzelle, die einen Wert des Hängenbleiben-auf-0- oder-1-Fehlers von 1 besitzt, kann nur einen logisch hohen digitalen Wert speichern, während eine Speicherzelle, die einen Wert des Hängenbleiben-auf-0- oder-1-Fehlers von 0 besitzt, nur einen logisch tiefen digitalen Wert speichern kann. Folglich kann aus einer Speicherzelle, die einen Wert des Hängenbleiben-auf-0- oder-1-Fehlers von 1 besitzt (d. h. Hängenbleiben auf 1), nur ein logisch hoher digitaler Wert gelesen werden, während aus einer Speicherzelle, die einen Wert des Hängenbleiben-auf-0-oder-1-Fehlers von 0 besitzt (d. h. Hängenbleiben auf 0), nur ein logisch tiefer digitaler Wert gelesen werden kann. Speicherzellen, die Hängenbleiben-auf-0-oder-1-Fehler aufweisen, besitzen im Allgemeinen Werte des Hängenbleiben-auf-0-oder-1-Fehlers, die mit der Zeit stabil sind.
Falls einige der Speicherzellen in der Speicherschaltung Hängenbleiben-auf-0-oder-1-Fehler aufweisen, werden die digitalen Werte der Hängenbleiben-auf-0-oder-1-Fehler und die Bitpositionen der Speicherzellen, die Hängenbleiben-auf-0-oder-1-Fehler aufweisen, bestimmt, bevor die Datenbits oder die codierten Datenbits in den Speicherzellen gespeichert werden. Die Steuerschaltung erzeugt die redundanten Bits unter Verwendung der digitalen Werte und der Bitpositionen dieser vorher bestimmten Hängenbleiben-auf-0-oder-1-Fehler. Die Datenbits oder die codierten Datenbits werden in den Speicherzellen der Speicherschaltung gespeichert. Die redundanten Bits können in derselben Speicherschaltung oder in einer anderen Speicherschaltung gespeichert werden.
-
Anschließend werden die Bits während einer Leseoperation aus den Speicherzellen gelesen und einer Steuerschaltung bereitgestellt, wobei die redundanten Bits aus dem Speicher abgerufen und der Steuerschaltung bereitgestellt werden. Die Steuerschaltung korrigiert die Fehler, die durch die vorher bestimmten Hängenbleiben-auf-0-oder-1-Fehler verursacht werden, in den aus den Speicherzellen gelesenen Bits unter Verwendung der redundanten Bits. Die Steuerschaltung bewirkt, dass die aus den Speicherzellen gelesenen Bits ohne die Fehler sind, die durch die vorher bestimmten Hängenbleiben-auf-0-oder-1-Fehler in den Speicherzellen verursacht werden.
-
Die hier beschriebenen Techniken sind auf Mehrebenen-Speicherzellen direkt anwendbar. Mehrebenen-Speicherzellen können mehr als ein Bit pro Speicherzelle speichern. Wenn z. B. eine Speicherzelle 2 Bits hält und hängenbleibt, dann sind die Werte dieser zwei Bit fest, wobei sie als zwei getrennte Orte des Hängenbleiben-auf-0-oder-1-Fehlers behandelt werden können. Weil der Ort eines der Hängenbleiben-auf-0- oder-1-Fehler bekannt ist, ist der Ort des anderen Hängenbleiben-auf-0-oder-1-Fehlers außerdem bekannt. Im Ergebnis können für die gleiche Fehlerrate des Hängenbleiben-auf-0-oder-1-Fehlers weniger redundante Bits für die Mehrebenen-Speicherzellen als die redundanten Bits, die für Einebenen-Speicherzellen erzeugt werden, erzeugt werden. Eine Einebenen-Speicherzelle speichert nur ein Bit pro Speicherzelle. Die Anzahl der redundanten Bits kann z. B. um einen Faktor, der gleich der Anzahl der Bits pro Speicherzelle ist, kleiner sein.
-
1 veranschaulicht ein Beispiel eines Datenspeichersystems 100 gemäß einer Ausführungsform der vorliegenden Erfindung. Das Datenspeichersystem 100 enthält eine Steuerschaltung 101, eine Speicherschaltung 102 und eine Speicherschaltung 103. Die Steuerschaltung 101 kann z. B. eine Speicher-Controller-Schaltung, eine Prozessorschaltung oder irgendein anderer Typ der Steuerschaltung sein. Die Steuerschaltung 101 erzeugt redundante Bits für das Schützen vor Fehlern, die durch die Hängenbleiben-auf-0-oder-1-Fehler in den Speicherzellen verursacht werden, und decodiert die aus den Speicherzellen gelesenen Bits unter Verwendung der redundanten Bits. Die Bits werden in einer oder beiden der Speicherschaltungen 102-103 gespeichert. Die Steuerschaltung 101 kann den Speicherschaltungen 102-103 Bits bereitstellen und Bits von den Speicherschaltungen 102-103 empfangen. Die Bits werden zwischen der Steuerschaltung 101 und den Speicherschaltungen 102-103 durch einen oder mehrere Busse auf dem Chip oder einen oder mehrere externe Busse oder durch andere Typen der Signalleitungen übertragen. Die Steuerschaltung 101, die Speicherschaltung 102 und die Speicherschaltung 103 können sich in derselben integrierten Schaltung oder in getrennten integrierten Schaltungen befinden. Folglich kann das System 100 eine einzige integrierte Schaltungsvorrichtung sein, die die Schaltungen 101-103 enthält. Alternativ kann das System 100 drei getrennte integrierte Schaltungsvorrichtungen 101-103 enthalten.
-
2 ist ein Ablaufplan, der Beispiele der Operationen zum Auswählen einer Codierungstechnik veranschaulicht, um sie auf die für die Speicherung in den Speicherzellen einer Speicherschaltung vorgesehenen Datenbits anzuwenden, gemäß einer Ausführungsform der vorliegenden Erfindung. Die Operationen nach 2 können z. B. durch die Steuerschaltung 101 oder eine Steuerschaltung in einer der Speicherschaltungen 102-103 ausgeführt werden. In einigen Ausführungsformen können die Operationen nach 2 auf eine Teilmenge der Speicherzellen in einer Speicherschaltung angewendet werden, wie z. B. eine Seite der Speicherzellen oder eine Bank der Speicherzellen.
-
Anfangs besitzen die Speicherzellen in der Speicherschaltung keine Hängenbleiben-auf-0-oder-1-Fehler, wobei die Steuerschaltung die Schreiboperationen in Übereinstimmung mit der Operation 201 ausführt. Vor der Operation 201 empfängt die Steuerschaltung die Datenbits, die für die Speicherung in den Speicherzellen der Speicherschaltung während einer Schreiboperation vorgesehen sind. In der Operation 201 bestimmt die Steuerschaltung, dass die redundanten Bits, um vor den Hängenbleiben-auf-0-oder-1-Fehlern in den Speicherzellen zu schützen, nicht erzeugt werden müssen, weil die Speicherzellen noch keine Hängenbleiben-auf-0-oder-1-Fehler entwickelt haben. Die Datenbits werden in den Speicherzellen der Speicherschaltung während der Schreiboperation gespeichert. Eine Leseverifikation der in die Speicherzellen geschriebenen Bits kann nach der Schreiboperation ausgeführt werden, um zu verifizieren, dass die genauen Werte der Datenbits in den Speicherzellen gespeichert worden sind. Nach der Operation 201 kann die Steuerschaltung ein oder mehrere Leseoperationen der während der Operation 201 in den Speicherzellen gespeicherten Bits ausführen. Während der Leseoperationen in den Speicherzellen decodiert die Steuerschaltung die redundanten Bits, die für den Zweck des Korrigierens der Fehler erzeugt werden, die durch die Hängenbleiben-auf-0-oder-1-Fehler verursacht werden, nicht.
-
Die Steuerschaltung kann irgendeine Anzahl von Schreiboperationen in Übereinstimmung mit der Operation 201 ausführen, bevor sie zur Operation 202 geht, um die Bitfehlerrate der Hängenbleiben-auf-0-oder-1-Fehler in den Speicherzellen zu beurteilen. In der Entscheidungsoperation 202 bestimmt die Steuerschaltung, ob die Bitfehlerrate (BER) der Hängenbleiben-auf-0-oder-1-Fehler in den Speicherzellen der Speicherschaltung größer als 0 ist. Die BER der Hängenbleiben-auf-0-oder-1-Fehler in einem Satz von Speicherzellen ist gleich s/k, wobei s die Anzahl der Hängenbleiben-auf-0-oder-1-Fehler in den Speicherzellen ist, während k die maximale Anzahl von Bits ist, die in den Speicherzellen gespeichert werden kann. Wenn in der Operation 202 die BER der Hängenbleiben-auf-0-oder-1-Fehler in dem Speicherzellen 0 ist, dann führt die Steuerschaltung weiterhin die Schreiboperationen in die Speicherzellen der Speicherschaltung aus, wie oben bezüglich der Operation 201 beschrieben worden ist. Wenn in der Operation 202 die BER der Hängenbleiben- auf-0-oder-1-Fehler in den Speicherzellen größer als 0 ist, dann erzeugt die Steuerschaltung während der Schreiboperationen in Übereinstimmung mit der Operation 203 redundante Bits.
-
3 veranschaulicht Beispiele der Operationen, die ausgeführt werden können, um die Bitfehlerrate (BER) der Hängenbleiben-auf-0-oder-1-Fehler in den Speicherzellen zu bestimmen, gemäß einer Ausführungsform der vorliegenden Erfindung. Die Steuerschaltung kann die BER der Hängenbleiben-auf-0- oder-1-Fehler in den Speicherzellen z. B. durch das Ausführen der Operationen nach 3 bestimmen. In der Operation 301 schreibt die Steuerschaltung einen ersten Satz der Testbits (z. B. alles Werte von Null) in die Speicherzellen. In der Operation 302 führt die Steuerschaltung eine Leseverifikationsoperation durch das Analysieren der aus den Speicherzellen gelesenen Bits aus, um zu bestimmen, ob die Speicherzellen den ersten Satz der Testbits genau gespeichert haben. Falls die Steuerschaltung in der Operation 302 bestimmt, dass irgendwelche aus den Speicherzellen gelesenen Bits den entsprechenden Testbits des in die Speicherzellen geschriebenen ersten Satzes der Testbits nicht entsprechen, werden die Speicherzellen in den entsprechenden Bitpositionen in der Operation 303 als Hängenbleiben-auf-0-oder-1-Fehler aufweisend markiert.
-
Die Steuerschaltung invertiert dann in der Operation 304 den ersten Satz der Testbits, um einen zweiten Satz der Testbits (z. B. alles Werte von Eins) zu erzeugen. Dann schreibt die Steuerschaltung in der Operation 305 den zweiten Satz der Testbits in die Speicherzellen. In der Operation 306 führt die Steuerschaltung eine Leseverifikationsoperation durch das Analysieren der aus den Speicherzellen gelesenen Bits aus, um zu bestimmen, ob die Speicherzellen den zweiten Satz der Testbits genau gespeichert haben. Falls die Steuerschaltung in der Operation 306 bestimmt, dass irgendwelche der aus den Speicherzellen gelesenen Bits den entsprechenden Testbits des in die Speicherzellen geschriebenen zweiten Satzes der Testbits nicht entsprechen, werden in der Operation 307 die Speicherzellen in den entsprechenden Bitpositionen als Hängenbleiben-auf-0-oder-1-Fehler aufweisend markiert.
-
Die Steuerschaltung speichert die Bitpositionen der Speicherzellen, die in den Operationen 303 und 307 als Hängenbleiben-auf-0-oder-1-Fehler aufweisend identifiziert worden sind, und die digitalen Werte dieser Hängenbleiben-auf-0-oder-1-Fehler. In der Operation 308 entscheidet die Steuerschaltung, ob die Operationen 301-307 zu wiederholen sind, um die Bitpositionen der Speicherzellen, die die Hängenbleiben-auf-0-oder-1-Fehler besitzen, und die digitalen Werte dieser Hängenbleiben-auf-0-oder-1-Fehler zu bestätigen. Die Steuerschaltung kann die Operationen 301-307 ein-, zwei oder mehrmals wiederholen, um die Bitpositionen und die digitalen Werte der Hängenbleiben-auf-0-oder-1-Fehler zu bestätigen. Falls die Steuerschaltung entscheidet, die Operationen 301-307 nicht zu wiederholen, sind die Operationen nach 3 abgeschlossen.
-
In 2 empfängt die Steuerschaltung die Datenbits, die für die Speicherung in den Speicherzellen der Speicherschaltung während jeder Schreiboperation vorgesehen sind, vor der Operation 203. In der Operation 203 erzeugt die Steuerschaltung in Ansprechen auf eine Schreiboperation einen ersten Satz redundanter Bits, die die Bitpositionen jeder der Speicherzellen angeben, die Hängenbleiben-auf-0-oder-1-Fehler aufweisen. In der Operation 203 erzeugt die Steuerschaltung außerdem einen zweiten Satz redundanter Bits, die angeben, welche der Datenbits, die in den Speicherzellen, die Hängenbleiben-auf-0-oder-1-Fehler aufweisen, gespeichert werden sollen, die gleichen digitalen Werte wie ihre entsprechenden Hängenbleiben- auf-0-oder-1-Fehler besitzen, und welche der Datenbits, die in den Speicherzellen, die Hängenbleiben-auf-0- oder-1-Fehler aufweisen, gespeichert werden sollen, andere Werte als ihre entsprechenden Hängenbleiben-auf-0-oder-1-Fehler besitzen. Die redundanten Bits können z. B. durch einen Codierer in der Steuerschaltung erzeugt werden.
-
Beispiele der Techniken, die durch die Steuerschaltung in der Operation
203 verwendet werden können, um den ersten und den zweiten Satz der redundanten Bits zu erzeugen, sind in und bezüglich
2 der
US-Patentanmeldung Nummer 13/712.929 , eingereicht am 12. Dezember 2012, gezeigt bzw. beschrieben, die in ihrer Gesamtheit durch Literaturhinweis hier eingefügt ist. Die in dieser Patentanmeldung beschriebenen Techniken verwenden ein kombinatorisches Zahlensystem. In der Operation
203 können jedoch andere Techniken zum Erzeugen der redundanten Bits verwendet werden.
-
Der erste und der zweite Satz der redundanten Bits, die in der Operation 203 erzeugt werden, sind den Datenbits zugeordnet, die für die Speicherung in den Speicherzellen vorgesehen sind. Die Steuerschaltung stellt den ersten und den zweiten Satz der redundanten Bit für die Speicherung im Speicher während der Schreiboperation bereit. Die Datenbits werden während der Schreiboperation in den Speicherzellen der Speicherschaltung gespeichert.
-
Während der Leseoperationen, um die in diesen Speicherzellen gespeicherten Datenbits abzurufen, werden die Datenbits aus den Speicherzellen gelesen und der Steuerschaltung bereitgestellt. Der erste und der zweite Satz der redundanten Bits werden außerdem aus dem Speicher abgerufen und der Steuerschaltung bereitgestellt. Die Steuerschaltung decodiert die aus den Speicherzellen gelesenen Datenbits unter Verwendung des ersten und des zweiten Satzes der redundanten Bits, um die Fehler in den Datenbits zu korrigieren, die durch die Hängenbleiben-auf-0-oder-1-Fehler verursacht worden sind, die vor der Schreiboperation identifiziert worden sind, wie z. B. unter Bezugnahme auf die
3-4 der
US-Patentanmeldung 13/712.929 beschrieben ist, auf die oben verwiesen worden ist. Die Steuerschaltung bestimmt die Bitpositionen der Speicherzellen, die Hängenbleiben-auf-0-oder-1-Fehler aufweisen, basierend auf dem ersten Satz der redundanten Bits. Die Steuerschaltung bestimmt basierend auf den digitalen Werten des zweiten Satzes der redundanten Bits und den Bitpositionen der Speicherzellen, die Hängenbleiben-auf-0-oder-1-Fehler aufweisen, welche der aus den Speicherzellen gelesenen Datenbits zu invertieren sind, um die Fehler in den Datenbits zu korrigieren, die durch die Hängenbleiben- auf-0-oder-1-Fehler verursacht worden sind. Die Steuerschaltung kann die Fehler in den aus den Speicherzellen gelesenen Datenbits z. B. unter Verwendung eines Decodierers korrigieren.
-
Die Steuerschaltung kann irgendeine Anzahl von Schreiboperationen in Übereinstimmung mit der Operation 203 ausführen, bevor sie zur Operation 204 geht, um die BER der Hängenbleiben-auf-0-oder-1-Fehler in den Speicherzellen erneut zu beurteilen. Die Steuerschaltung beurteilt die BER der Hängenbleiben- auf-0-oder-1-Fehler in den Speicherzellen in der Entscheidungsoperation 204. Die Steuerschaltung bestimmt in der Operation 204, ob die Speicherzellen irgendwelche neue Hängenbleiben-auf-0-oder-1-Fehler besitzen. Die Steuerschaltung kann durch das Ausführen der Operationen nach 3, wie oben beschrieben worden ist, bestimmen, ob die Speicherzellen irgendwelchen neuen Hängenbleiben-auf-0-oder-1-Fehler aufweisen. In einer Ausführungsform wird bestimmt, dass jede der Speicherzellen, die die Testbits nicht genau speichern, den Hängenbleiben-auf-0-oder-1-Fehler aufweist.
-
In der Entscheidungsoperation 204 bestimmt die Steuerschaltung, ob die BER der Hängenbleiben-auf-0- oder-1-Fehler in den Speicherzellen größer als ein Schwellenwert Y ist. Y ist eine Zahl, die größer als 0 ist. Wenn in der Operation 204 die BER der Hängenbleiben-auf-0-oder-1-Fehler in den Speicherzellen kleiner als oder gleich Y ist, dann erzeugt die Steuerschaltung in der Operation 203 redundante Bits in Ansprechen auf die nächste Schreiboperation basierend auf den zuletzt identifizierten Hängenbleiben-auf-0- oder-1-Fehlern.
-
Wenn die BER der Hängenbleiben-auf-0-oder-1-Fehler in den Speicherzellen in der Operation 204 größer als Y ist, dann erzeugt die Steuerschaltung die codierten Datenbits und die redundanten Bits in Ansprechen auf die nächste Schreiboperation in Übereinstimmung mit der Operation 205. Vor der Operation 205 empfängt die Steuerschaltung die Datenbits, die für die Speicherung in den Speicherzellen der Speicherschaltung in Ansprechen auf eine Schreiboperation vorgesehen sind. Jedes der Datenbits ist für die Speicherung in einer entsprechenden der Speicherzellen vorgesehen. In der Operation 205 codiert die Steuerschaltung die Datenbits, um codierte Datenbits zu erzeugen, die an die entsprechenden Speicherzellen, die Hängenbleiben- auf-0-oder-1-Fehler aufweisen, die in der Operation 204 identifiziert worden sind, angepasst sind. Die Steuerschaltung invertiert jedes der Datenbits, das einen digitalen Wert besitzt, der dem digitalen Wert eines entsprechenden der Hängenbleiben-auf-0-oder-1-Fehler nicht entspricht, um ein entsprechendes der codierten Datenbits zu erzeugen.
-
In der Operation 205 erzeugt die Steuerschaltung außerdem redundante Bits, die die Transformation angeben, die an den Datenbits ausgeführt worden ist, um die codierten Datenbits zu erzeugen. Die redundanten Bits geben die digitalen Werte der Datenbits an, die durch die Steuerschaltung invertiert worden sind, um die codierten Datenbits zu erzeugen. In einer Ausführungsform geben die redundanten Bits an, ob jedes der codierten Datenbits, das in einer Speicherzelle gespeichert ist, die einen Hängenbleiben-auf-0-oder-1-Fehler aufweist, bezüglich eines entsprechenden der Datenbits invertiert oder nicht invertiert worden ist. Die redundanten Bits geben an, welche digitalen Werte der codierten Datenbits, die in den Speicherzellen gespeichert worden sind, die Hängenbleiben-auf-0-oder-1-Fehler aufweisen, zu invertieren sind, um die Datenbits während der Decodierung zu regenerieren.
-
Beispiele der Techniken, die durch die Steuerschaltung in der Operation
205 verwendet werden können, um die codierten Datenbits und die redundanten Bit zu erzeugen, sind in den und bezüglich der
10A-15 der
US-Patentanmeldungen Nummer 13/649.007 und
13/649.072 , eingereicht am 10. Oktober 2012, gezeigt bzw. beschrieben, die in ihren Gesamtheiten durch Literaturhinweis hier eingefügt sind.
-
In einer beispielhaften Ausführungsform der Operation
205 erzeugt die Steuerschaltung einen ersten Satz redundanter Bits, die die Bitpositionen der Hängenbleiben-auf-0-oder-1-Fehler angeben, die in der Operation
204 in den Speicherzellen identifiziert worden sind, und einen zweiten Satz redundanter Bits, die angeben, ob jedes der in einer Speicherzelle, die einen Hängenbleiben-auf-0-oder-1-Fehler aufweist, gespeicherten codierten Datenbits bezüglich eines entsprechenden Datenbits invertiert oder nicht invertiert worden ist, wie z. B. bezüglich
11B der
US-Patentanmeldungen 13/649.007 und
13/649.072 beschrieben ist.
-
Gemäß einer weiteren beispielhaften Ausführungsform der Operation
205 erzeugt die Steuerschaltung die codierten Datenbits durch das Invertieren der Datenbits in Bereichen, wie z. B. bezüglich der
11C-11D der
US-Patentanmeldungen 13/649.007 und
13/649.072 beschrieben ist. In dieser Ausführungsform geben die redundanten Bits die ausgewählte Bitstelle der Bitpositionen an, die verwendet wird, um die Bereiche zu erzeugen, in denen die Datenbits invertiert oder nicht invertiert werden, um die codierten Datenbits zu erzeugen.
-
Gemäß einer noch weiteren beispielhaften Ausführungsform der Operation
205 codiert die Steuerschaltung die Datenbits unter Verwendung eines Algorithmus eines binären Baumes, um codierte Datenbits zu erzeugen, die an die Hängenbleiben-auf-0-oder-1-Fehler in den Speicherzellen angepasst sind, wie z. B. bezüglich der
12A-12C und
13 der
US-Patentanmeldungen 13/649.007 und
13/649.072 beschrieben ist. In dieser Ausführungsform geben die redundanten Bits die Struktur eines binären Baumes einschließlich der Blätter und der Knoten des binären Baumes an. Die redundanten Bits geben außerdem an, ob die durch jedes Blatt des binären Baumes dargestellten Datenbits invertiert oder nicht invertiert worden sind, um die entsprechenden der codierten Datenbits zu erzeugen.
-
Gemäß einer noch weiteren beispielhaften Ausführungsform der Operation
205 codiert die Steuerschaltung die Datenbits durch das Teilen der Datenbits in zwei Hälften und das Austauschen der Datenbits zwischen den zwei Hälften, um die gleiche Anzahl der Hängenbleiben-auf-0-oder-1-Fehler in jeder Hälfte zu erreichen, wie z. B. bezüglich der
14A-14C und
15 der
US-Patentanmeldungen 13/649.007 und
13/649.072 beschrieben ist. Jede der Hälften der Datenbits kann in zwei gleiche Viertel der Datenbits unterteilt werden, um vier Viertel zu erzeugen, von denen jedes die gleiche Anzahl der Datenbits besitzt. Der Prozess des Austauschens der Datenbits wird dann für jeden Satz aus zwei der Viertel, jeden Satz der zwei der acht Unterteilungen usw. wiederholt, bis jede der kleinsten Unterteilungen der Datenbits genau einen Hängenbleiben-auf-0-oder-1-Fehler in ihren entsprechenden Speicherzellen besitzt. In dieser Ausführungsform können die redundanten Bits die Bitpositionen der Hängenbleiben-auf-0-oder-1-Fehler angeben und angeben, jedes der codierten Datenbits, das in einer Speicherzelle gespeichert werden soll, die einen Hängenbleiben-auf-0-oder-1-Fehler aufweist, bezüglich eines entsprechenden der Datenbits invertiert oder nicht invertiert worden ist.
-
Die in der Operation 205 erzeugten redundanten Bits sind den codierten Datenbits zugeordnet. Die Steuerschaltung stellt die redundanten Bits für die Speicherung im Speicher während der Schreiboperation bereit. Die in der Operation 205 erzeugten codierten Datenbits werden anstelle der Datenbits während der Schreiboperation in den Speicherzellen der Speicherschaltung gespeichert.
-
Während der Leseoperationen, um die in der Operation 205 erzeugten codierten Datenbits abzurufen, werden die redundanten Bits außerdem von dem Speicher abgerufen und der Steuerschaltung bereitgestellt. Die Steuerschaltung decodiert die aus den Speicherzellen gelesenen codierten Datenbits unter Verwendung der redundanten Bits, um die Datenbits zu regenerieren. Die regenerierten Datenbits enthalten keine Fehler, die durch die vor der vorangehenden Schreiboperation identifizierten Hängenbleiben-auf-0-oder-1-Fehler verursacht werden.
-
Die Steuerschaltung kann irgendeine Anzahl von Schreiboperationen in Übereinstimmung mit der Operation 205 ausführen, bevor sie zur Operation 206 geht, um die Bitfehlerrate (BER) der Hängenbleiben-auf-0-oder-1-Fehler in den Speicherzellen erneut zu beurteilen. Die Steuerschaltung beurteilt in der Entscheidungsoperation 206 abermals die BER der Hängenbleiben-auf-0-oder-1-Fehler in den Speicherzellen. Die Steuerschaltung bestimmt in der Operation 206, ob die Speicherzellen irgendwelche neuen Hängenbleiben-auf-0-oder-1-Fehler aufweisen, z. B. durch das Ausführen der Operationen nach 3, wie oben beschrieben worden ist. In der Entscheidungsoperation 206 bestimmt die Steuerschaltung, ob die BER der Hängenbleiben-auf-0- oder-1-Fehler in den Speicherzellen größer als ein Schwellenwert Z ist. Z ist eine Zahl, die größer als Y ist. Wenn in der Operation 206 die BER der Hängenbleiben-auf-0-oder-1-Fehler in den Speicherzellen kleiner als oder gleich Z ist, dann führt die Steuerschaltung während der nächsten Schreiboperation die Operation 205 basierend auf den zuletzt identifizierten Hängenbleiben-auf-0-oder-1-Fehlern aus.
-
Wenn in der Operation 206 die BER der Hängenbleiben- auf-0-oder-1-Fehler in den Speicherzellen größer als Z ist, dann erzeugt die Steuerschaltung in Ansprechen auf die nächste Schreiboperation codierte Datenbits und redundante Bits in Übereinstimmung mit der Operation 207. Vor der Operation 207 empfängt die Steuerschaltung die Datenbits, die für die Speicherung in den Speicherzellen der Speicherschaltung vorgesehen sind, in Ansprechen auf eine Schreiboperation. In der Operation 207 codiert die Steuerschaltung die Datenbits, um die codierten Datenbits zu erzeugen, die an die Speicherzellen angepasst sind, die Hängenbleiben-auf-0-oder-1-Fehler aufweisen. Die Steuerschaltung verursacht, dass die codierten Datenbits den digitalen Werten der entsprechenden der Hängenbleiben-auf-0-oder-1-Fehler entsprechen. Die Steuerschaltung bewirkt, dass die codierten Datenbits, die in den Speicherzellen gespeichert werden sollen, die Hängenbleiben-auf-0-oder-1-Fehler aufweisen, den digitalen Werten der entsprechenden der Hängenbleiben- auf-0-oder-1-Fehler entsprechen.
-
In der Operation 207 erzeugt die Steuerschaltung außerdem redundante Bits. Die redundanten Bits, die in der Operation 207 erzeugt werden, geben an, welche der codierten Datenbits bezüglich der entsprechenden der Datenbits invertiert worden sind. Als solche geben die in der Operation 207 erzeugten redundanten Bits an, welche der codierten Datenbits zu invertieren sind, um die Datenbits zu regenerieren. Die Steuerschaltung erzeugt in der Operation 207 keine redundanten Bits, die die Bitpositionen der Hängenbleiben-auf-0-oder-1-Fehler in den Speicherzellen angeben.
-
Die in der Operation 207 erzeugten redundanten Bits sind den codierten Datenbits zugeordnet. Die Steuerschaltung stellt die redundanten Bits für die Speicherung im Speicher während der Schreiboperation bereit. Die in der Operation 207 erzeugten codierten Datenbits werden anstelle der Datenbits während der Schreiboperation in den Speicherzellen der Speicherschaltung gespeichert.
-
Während jeder Leseoperation, um die in der Operation 207 erzeugten und in den Speicherzellen gespeicherten codierten Datenbits abzurufen, werden die codierten Datenbits aus den Speicherzellen gelesen und der Steuerschaltung bereitgestellt. Außerdem werden die in der Operation 207 erzeugten redundanten Bits aus dem Speicher abgerufen und der Steuerschaltung bereitgestellt.
-
In Ansprechen auf jede Leseoperation, um die in der Operation 207 erzeugten Datenbits abzurufen, bestimmt die Steuerschaltung die Bitpositionen der Speicherzellen, die Hängenbleiben-auf-0-oder-1-Fehler aufweisen. Um die Bitpositionen der Speicherzellen, die Hängenbleiben-auf-0-oder-1-Fehler aufweisen, zu identifizieren, kann die Steuerschaltung z. B. die Operationen nach 3 ausführen, wie oben beschrieben worden ist. Die Steuerschaltung schreibt einen ersten Satz der Testbits (z. B. alles Werte von Null) in die Speicherzellen und führt dann eine Leseverifikationsoperation aus, um zu bestimmen, ob die Speicherzellen den ersten Satz der Testbits genau gespeichert haben. Die Steuerschaltung invertiert dann den ersten Satz der Testbits, um einen zweiten Satz der Testbits zu erzeugen, schreibt den zweiten Satz der Testbits in die Speicherzellen und führt dann eine Leseverifikationsoperation aus, um zu bestimmen, ob die Speicherzellen den zweiten Satz der Testbits genau gespeichert haben. Es wird bestimmt, dass alle Speicherzellen, die den ersten Satz der Testbits oder den zweiten Satz der Testbits nicht genau speichern, Hängenbleiben-auf-0-oder-1-Fehler aufweisen. Die Steuerschaltung kann diese Operationen einmal oder mehrmals ausführen, um die Bitpositionen der Hängenbleiben-auf-0-oder-1-Fehler in den Speicherzellen zu bestimmen.
-
Die Steuerschaltung decodiert die aus den Speicherzellen gelesenen codierten Datenbits unter Verwendung der redundanten Bits und der Bitpositionen der Speicherzellen, von denen bestimmt worden ist, dass sie Hängenbleiben-auf-0-oder-1-Fehler aufweisen, um die Datenbits zu regenerieren. Die erzeugten Datenbits enthalten keine durch die Hängenbleiben-auf-0-oder-1-Fehler verursachten Fehler.
-
Wie die durch die Steuerschaltung ausgeführten Schreiboperationen von der Operation 201 zur Operation 203 zur Operation 205 und dann zur Operation 207 fortschreiten, nimmt die Lebensdauer des Datenspeichersystems zu, weil das Datenspeichersystem bei größeren Bitfehlerraten der Hängenbleiben-auf-0- oder-1-Fehler genaue Werte in die Speicherschaltung schreiben und aus der Speicherschaltung lesen kann.
-
Wie jedoch die durch die Steuerschaltung ausgeführten Schreiboperationen von der Operation 201 zur Operation 203 zur Operation 205 und dann zur Operation 207 fortschreiten, nimmt die Leistung des Datenspeichersystems ab. Es werden mehr Lese- und Schreiboperationen verwendet, um einen Satz von Bits in die Speicherschaltung zu schreiben und dann aus der Speicherschaltung zu lesen, wobei im Ergebnis die Zeitdauer, um die Lese- und Schreiboperationen auszuführen, zunimmt.
-
Die Ausführungsformen der vorliegenden Erfindung können z. B. unter Verwendung eines oder einer Kombination aus Hardware, Software und einem computerlesbaren Medium, das Programmanweisungen enthält, implementiert sein. Die Ausführungsformen der vorliegenden Erfindung können als Programmcode verkörpert sein, der in einem nichtflüchtigen computerlesbaren Medium gespeichert ist, das in einem Computer ausgeführt werden kann. Die durch die Ausführungsformen der vorliegenden Erfindung und die Ergebnisse der vorliegenden Erfindung implementierte Software kann in einem computerlesbaren Medium gespeichert sein, wie z. B. einem Halbleiterspeicher, einem Phasenänderungsspeicher, einem Festplattenlaufwerk, einer Kompaktplatte (CD), einer digitalen Videoplatte (DVD) oder anderen Medien. Die Ergebnisse der vorliegenden Erfindung können für verschiedene Zwecke verwendet werden, wie z. B. durch einen Prozessor ausgeführt oder verarbeitet werden, einem Anwender angezeigt werden, in einem Signal über ein Netz übertragen werden usw. Die Ausführungsformen der vorliegenden Erfindung können außerdem als eine computerlesbare Programmcodeeinheit verkörpert sein, die in einem nichtflüchtigen computerlesbaren Medium gespeichert ist, um eine Anzahl von Computersystemen, die über ein Netz verbunden sind, zu veranlassen, die verteilte Verarbeitung durchzuführen.
-
Die vorhergehende Beschreibung der beispielhaften Ausführungsformen der vorliegenden Erfindung ist für die Zwecke der Veranschaulichung und Beschreibung vorgelegt worden. Die vorhergehende Beschreibung ist nicht vorgesehen, erschöpfend zu sein oder die vorliegende Erfindung auf die hier offenbarten Beispiele einzuschränken. In einigen Fällen können Merkmale der vorliegenden Erfindung ohne eine entsprechende Verwendung anderer Merkmale, wie sie dargelegt worden sind, verwendet werden. Viele Modifikationen, Ersetzungen und Variationen sind angesichts der obigen Lehren möglich, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen.