-
Technisches Gebiet
-
Ausführungsformen der vorliegenden Offenbarung betreffen allgemein das Gebiet der Datenverarbeitung und insbesondere die Benutzung von Datencodierung, um Daten zu schützen, die in nichtflüchtigem Speicher gespeichert sind.
-
Hintergrund
-
Die hierin bereitgestellte Beschreibung des Hintergrundes dient dem Zweck, den Zusammenhang der Offenbarung allgemein darzustellen. Arbeit der gegenwärtig genannten Erfinder bis zu dem Maße, in dem sie in diesem Hintergrundabschnitt beschrieben ist, sowie Gesichtspunkte der Beschreibung, die sich zum Zeitpunkt der Einreichung möglicherweise nicht als Stand der Technik qualifizieren, werden weder ausdrücklich noch implizit als Stand der Technik gegen die vorliegende Offenbarung anerkannt. Sofern hierin nicht anders angegeben, sind die in diesem Abschnitt beschriebenen Vorgehensweisen kein Stand der Technik zu den Ansprüchen in der vorliegenden Offenbarung und werden nicht durch Einbindung in diesen Abschnitt als Stand der Technik anerkannt.
-
Ein Speicher-Controller eines nichtflüchtigen Speichers (non-volatile memory, „NVM“) kann eine Vielfalt an Datencodierungs/decodierungs-Techniken benutzen, um Bitfehler zu handhaben und Daten zurückzugewinnen. Beispielsweise können Daten als ein oder mehrere Codewörter, z. B. als Low-Density-Parity-Check-(„LDPC“)-Codewörter, codiert werden. Der Speicher-Controller kann einen iterativen Decodierer, wie z. B. einen LDPC-Decodierer, der ausgestaltet ist, um die Codewörter zu decodieren, beinhalten.
-
Einige Typen von Codewörtern, wie z. B. LDPC-codierte Codewörter, können eine ursprüngliche Nachricht und assoziierte Paritätsdaten beinhalten. Ein nichtbinärer iterativer Decodierer (z. B. ein LDPC-Decodierer) kann das Codewort während des Decodierens mehrmals verarbeiten. Symbole und weiche Informationen (z. B. assoziierte Wahrscheinlichkeiten, dass die Symbole korrekt sind) können zwischen Variablenknoten und Prüfknoten, die Verhältnissen zwischen den Variablenknoten entsprechen, übermittelt werden. Jede Iteration kann das Codewort näher an die ursprüngliche Nachricht bringen.
-
NVM kann mehrere physische Komponenten, wie z. B. mehrere Chiplagen, beinhalten. Dies ist beispielsweise aus der
US 7,966,546 B2 bekannt. In gegenwärtigen Geräten kann ein Codewort auf einer einzelnen Chiplage gespeichert werden. Wenn diese Chiplage jedoch eine besonders geringe Zuverlässigkeit aufweist, z. B. auf Grund einer hohen Roh-Bitfehlerrate („RBFR“), dann kann eine Versagenswahrscheinlichkeit während des Decodierens des Codewortes besonders hoch sein.
-
Figurenliste
-
Ausführungsformen werden ohne Weiteres durch die folgende ausführliche Beschreibung in Verbindung mit den begleitenden Zeichnungen verstanden. Um diese Beschreibung zu erleichtern, bezeichnen gleiche Bezugsnummern ähnliche strukturelle Elemente. Ausführungsformen werden als Beispiele und in keiner Weise einschränkend in den Figuren der begleitenden Zeichnungen veranschaulicht.
- 1 veranschaulicht schematisch Beispiel-Codewörter, die gemäß verschiedenen Ausführungsformen auf mehrere Chiplagen verteilt gespeichert sind.
- 2 bildet ein Beispiel dafür ab, wie gemäß verschiedenen Ausführungsformen ein iterativer Decodierer Roh-Bitfehlerraten von Chiplagen verwenden kann, um Codewörter zu decodieren.
- 3 bildet eine Spannungsverteilung zweier Ebenen ab, die zum Speichern eines Bits Information benutzt werden, um vorzuführen, wie gemäß verschiedenen Ausführungsformen harte Entscheidungen getroffen und weiche Informationen erzeugt werden können.
- 4 bildet beispielhafte RBFR-Verteilungen ab, die gemäß verschiedenen Ausführungsformen vom Speichern von Low-Density-Parity-Check-(„LDPC“)-codierten Codewörtern auf mehrere Chiplagen verteilt gegenüber dem Speichern von LDPC-Codewörtern auf einer einzelnen Chiplage resultieren können.
- 5 bildet schematisch ein Beispielverfahren gemäß verschiedenen Ausführungsformen ab.
- 6 bildet schematisch ein beispielhaftes Computergerät gemäß verschiedenen Ausführungsformen ab.
-
Ausführliche Beschreibung
-
In der folgenden ausführlichen Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil hiervon bilden und in denen gleiche Bezugsnummern durchweg ähnliche Teile bezeichnen und in denen durch Veranschaulichung Ausführungsformen, in denen die Erfindung realisiert werden können, gezeigt werden. Es ist selbstverständlich, dass andere Ausführungsformen verwendet werden können und andere strukturelle oder logische Änderungen vorgenommen werden können, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Die folgende ausführliche Beschreibung ist deshalb in keiner Weise einschränkend zu sehen, und der Umfang von Ausführungsformen wird durch die angefügten Ansprüche und deren Äquivalente definiert.
-
Verschiedene Operationen können ihrerseits als mehrere getrennte Aktionen oder Operationen auf eine Weise beschrieben sein, die sehr hilfreich beim Verständnis des beanspruchten Gegenstands sind. Jedoch soll die Reihenfolge der Beschreibung nicht andeuten, dass diese Operationen unbedingt von dieser Reihenfolge abhängig sind. Insbesondere brauchen diese Operationen jedoch nicht in der Reihenfolge der Darstellung ausgeführt zu werden. Beschriebene Operationen können in einer anderen Reihenfolge als derjenigen der beschriebenen Ausführungsform ausgeführt werden. Verschiedene zusätzliche Operationen können ausgeführt werden, und/oder beschriebene Operationen können in zusätzlichen Ausführungsformen weggelassen werden.
-
Für die Zwecke der vorliegenden Offenbarung bedeutet der Ausdruck „A und/oder B“ (A), (B) oder (A und B). Für die Zwecke der vorliegenden Offenbarung bedeutet der Ausdruck „A, B und/oder C“ (A), (B), (C), (A und B), (A und C), (B und C) oder (A, B und C).
-
In der Beschreibung können die Wendungen „in einer Ausführungsform“ oder „in Ausführungsformen“ verwendet sein, die sich jeweils auf eine oder mehrere der gleichen oder unterschiedlichen Ausführungsformen beziehen können. Des Weiteren sind die Begriffe „umfassend“, „einschließlich“ „aufweisend“ und dergleichen, wie in Bezug auf Ausführungsformen der vorliegenden Offenbarung verwendet, synonym.
-
Wie hier verwendet, kann der Ausdruck „Modul“ auf eine anwendungsspezifische integrierte Schaltung („ASIC“), eine elektronische Schaltung, einen Prozessor (gemeinsam benutzt, fest zugeordnet oder Gruppe) und/oder Speicher (gemeinsam benutzt, fest zugeordnet oder Gruppe) verweisen, Teil davon sein oder einschließen, der/die ein oder mehrere Software- oder Firmwareprogramme, eine kombinatorische Logikschaltung und/oder andere geeignete Komponenten ausführt, welche die beschriebene Funktionalität bereitstellen. Wie hierin benutzt, kann sich „computerimplementiertes Verfahren“ auf ein beliebiges Verfahren beziehen, das von einem oder mehreren Prozessoren, einem Computersystem, das einen oder mehrere Prozessoren aufweist, einem Mobilgerät, wie z. B. einem Smartphone (das einen oder mehrere Prozessoren beinhalten kann), einem Tablet, einem Laptop-Computer, einer Set-Top-Box, einer Spielkonsole und so weiter ausgeführt wird.
-
Es wird nun auf 1 Bezug genommen, wobei als Beispiel ein Speicher-Controller 12 mit Schreib-/Leselogik 14 betriebsfähig mit nichtflüchtigem Speicher („NVM“) 16 gekoppelt sein kann. In verschiedenen Ausführungsformen kann Speicher-Controller 12 unter Benutzen von Hardware (z. B. einer digitalen Schaltung) implementiert sein. In einigen Ausführungsformen kann NVM 16 ein NAND-Flash-Speicher sein. In verschiedenen Ausführungsformen kann NVM 16 andere Typen von Speicher sein, wie z. B. ferroelektrischer Direktzugriffsspeicher (ferroelectric random-access, memory, „FeTRAM“), Nanodraht-basierter (nanowire-based) NVM, Phasenwechselspeicher (phase change memory, „PCM“), PCM mit Schalter („PCMS“) und so weiter.
-
Der Ausdruck „Speichervorrichtung“ kann hierin benutzt sein, um sich auf ein beliebiges Gerät zu beziehen, das einen Speicher-Controller (z. B. 12) und NVM (z. B. 16) aufweist. In einigen Ausführungsformen können ein Speicher-Controller und NVM zusammen zu einer Speichervorrichtung in Form einer integrierten Schaltung verpackt sein, die in ein Computergerät, wie z. B. einem Tablet oder einem Mobiltelefon, installiert sein kann. In verschiedenen Ausführungsformen kann NVM 16 verschiedene Anzahlen von Chiplagen 18 beinhalten. Im Beispiel von 1 beinhaltet NVM 16 sechs Chiplagen 18, CHIPLAGE 0 bis 5. NVM 16 kann mehr oder weniger Chiplagen 18 beinhalten. 1 beinhaltet lediglich zu Zwecken der Veranschaulichung sechs Chiplagen 18.
-
Eine Nachricht (oder ein Teil davon), die als Codewort codiert ist, kann auf einer einzelnen Speicherkomponente, wie z. B. einer Chiplage
18, gespeichert sein. Wenn diese Speicherkomponente jedoch versagt, kann es schwierig sein, die Daten, die durch das Codewort dargestellt sind, zurückzugewinnen. Beispielsweise kann von einer Zufallsvariablen
x gesagt werden, dass sie eine logarithmische Normalverteilung mit Mittelwert
µ aufweist, wenn log (x) - µ eine Gaußverteilung aufweist, sodass eine Wahrscheinlichkeitsverteilungsfunktion (probability distribution function, „pdf“) der logarithmischen Normalverteilung gegeben sein kann durch:
-
So können in einer beispielhaften Speichervorrichtung einige Chiplagen geringe Roh-Bitfehlerraten („RBFR“) aufweisen und ein kleiner Anteil von Chiplagen hohe RBFR aufweisen. Für ganze Codewörter, die auf der Chiplage mit hohen RBFR gespeichert sind, kann die Wahrscheinlichkeit eines fatalen Fehlers während des Decodierens größer sein. Demgemäß können Teile von Codewörtern auf mehrere Speicherkomponenten, wie z. B. Chiplagen, verteilt gespeichert werden - ein Verfahren, das als „Diversitätskombinieren (diversity combining)“ bezeichnet werden kann - um verschiedene Nutzen zu erlangen, die durch Codewortdiversität erhalten werden (d. h. Codewörter sind auf mehrere Komponenten aufgeteilt und verteilt).
-
In verschiedenen Ausführungsformen können Codewörter auf mehrere Chiplagen 18 verteilt gespeichert sein, wie in 1 gezeigt. Zwei Codewörter, CWO und CW1, sind in NVM 16 gespeichert gezeigt. Anstatt ein Codewort auf einer einzelnen Chiplage 18 zu speichern, ist jedes Codewort in sechs Teile aufgeteilt und in Segmenten 20 mehrerer Chiplagen 18 gespeichert. Beispielsweise ist CWO in CW0(A) bis (F) unterteilt, die in Segmenten 20 von CHIPLAGE 0 bis 5 gespeichert sind. Gleichfalls ist CW1 in CW1(A) bis (F) unterteilt, die in Segmenten 20 von CHIPLAGE 0 bis 5 gespeichert sind.
-
Das Beispiel von 1 dient lediglich zu Zwecken der Veranschaulichung und soll nicht einschränken. Allgemein kann ein Codewort in m Teile geteilt und auf m Chiplagen verteilt sein. Beispielsweise kann ein Codewort in zwei Teile geteilt und auf zwei Chiplagen verteilt gespeichert sein. Als anderes Beispiel kann ein Codewort in vier Teile geteilt und auf vier Chiplagen verteilt gespeichert sein. In verschiedenen Ausführungsformen kann ein Codewort in acht Teile geteilt und auf acht Chiplagen verteilt gespeichert sein.
-
In verschiedenen Ausführungsformen kann ein iterativer Decodierer 22 ausgestaltet sein, um als Eingabe m Codewortteile von m Chiplagen (z. B. sechs in 1) zu empfangen und das Codewort unter Benutzen der m Codewortteile und weicher Informationen, die mit Bits oder Gruppen von Bits in jedem Codewortteil assoziiert sind, zu decodieren. In verschiedenen Ausführungsformen, wie z. B. derjenigen, die in 1 abgebildet ist, kann iterativer Decodierer 22 Teil von Speicher-Controller 12 sein. In anderen Ausführungsformen kann iterativer Decodierer 22 von einem Speicher-Controller 12 separat, jedoch damit betriebsfähig gekoppelt sein.
-
In verschiedenen Ausführungsformen können „weiche Informationen“ sich auf eine Wahrscheinlichkeit beziehen, dass ein Bit oder eine Gruppe von Bits in einem Codewortteil korrekt ist (z. B. ein Vertrauensniveau). In verschiedenen Ausführungsformen können weiche Informationen in logarithmischer Form ausgedrückt sein. Für Einzelbit- oder „binäre“ Implementierungen können weiche Informationen als logarithmische Wahrscheinlichkeitsverhältnisse (log-likelihood ratios oder „LLR“) ausgedrückt sein. Für Multi-Bit- oder „nichtbinäre“ Implementierungen können weiche Informationen als logarithmische Dichteverhältnisse (log density ratios oder „LDR“) ausgedrückt sein. In verschiedenen Ausführungsformen kann iterativer Decodierer 22 ein LDPC-Decodierer sein, und die Codewörter (z. B. CWO, CW1) und/oder ihre Teile können Codewörter sein, die durch einen LDPC-Codierer (nicht gezeigt) codiert sind.
-
In verschiedenen Ausführungsformen können Zuverlässigkeitsmetriken, die mit m Chiplagen assoziiert sind, benutzt werden, um die weichen Informationen zu erzeugen, die als Eingabe in iterativen Decodierer 22 benutzt werden können. Beispielsweise können in verschiedenen Ausführungsformen Zuverlässigkeitsmetriken, die mit den m Chiplagen assoziiert sind, RBFR sein. Diese RBFR können benutzt werden, um weiche Informationen zu erzeugen, die mit Daten assoziiert sind, die aus den m Chiplagen ausgelesen sind.
-
Beispielsweise und jetzt unter Bezugnahme auf 2 können sich sechs Speichersegmente 220, von denen jedes einen Teil eines LDPC-Codewortes (CW0 von 1) speichert, auf sechs verschiedenen Chiplagen von NVM (CHIPLAGE 0 bis 5 von 1) befinden. Jede Chiplage kann eine assoziierte Zuverlässigkeitsmetrik 224 aufweisen, die in 2 eine RBFR ist. Von links ausgehend, weist eine Chiplage mit Speichersegment 220, das CW0(A) speichert, eine assoziierte RBFR von 0,002 auf. Eine Chiplage mit Speichersegment 220, das CW0(B) speichert, weist eine assoziierte RBFR von 0,005 auf. Eine Chiplage mit Speichersegment 220, das CW0(C) speichert, weist eine assoziierte RBFR von 0,008 auf. Eine Chiplage mit Speichersegment 220, das CW0(D) speichert, weist eine assoziierte RBFR von 0,009 auf. Chiplagen mit Speichersegmenten 220, die CW0(E) und CW0(F) speichern, weisen assoziierte RBFR von 0,01 auf.
-
In verschiedenen Ausführungsformen kann ein iterativer Decodierer, wie z. B. iterativer Decodierer 22 in 1, ausgestaltet sein, um weiche Informationen zu erzeugen, die mit Daten assoziiert sind, die von einer oder mehreren Chiplagen (z. B. Chiplage 18 in 1) mindestens teilweise auf Grundlage von RBFR der einen oder mehreren Chiplagen empfangen werden. In 2 beispielsweise kann ein LDPC-Decodierer 222 weiche Informationen für jedes Bit oder jede Gruppe von Bits in jedem empfangenen Codewortteil durch Zuweisen potentieller Wahrscheinlichkeiten (z. B. LLR, LDR) zu jeder Chiplage auf Grundlage der RBFR der Chiplage erzeugen. LDPC-Decodierer 222 kann anschließend mindestens teilweise auf Grundlage der zugewiesenen potentiellen Wahrscheinlichkeiten Teile von CW0 decodieren, die er von diesen Chiplagen empfängt.
-
Beispielsweise weisen in 2 CHIPLAGE 0 und CHIPLAGE 1 beide verhältnismäßig geringe RBFR, 0,002 bzw. 0,005, auf. Daher kann LDPC-Decodierer 222 diese als hohe Zuverlässigkeit aufweisend („HZ“) ansehen und deshalb CHIPLAGE 0 und CHIPLAGE 1 verhältnismäßig hohe potentielle Wahrscheinlichkeiten, wie z. B. {-16, -8, - 3, +3, +8, +16}, zuweisen. Im Gegensatz dazu kann LDPC-Decodierer 222 Chiplagen mit geringer Zuverlässigkeit („GZ“) wie CHIPLAGE 4 und CHIPLAGE 5 in 2, die höhere RBFR (0,01) aufweisen, „weniger vertrauensvolle“ Zuverlässigkeitswerte, wie z. B. {-5, -3, -1, +1, +3, +5}, zuweisen. Das Vorzeichen der potentiellen Wahrscheinlichkeit oder LLR kann anzeigen, ob das Bit eine Null (positiv) oder eine Eins (negativ) ist.
-
3 bildet eine beispielhafte Spannungsverteilung einer Einzelbit-(X)-Speicherzelle mit zwei Niveaus ab, wobei die waagerechte Achse eine Versorgungsspannung darstellt und die senkrechte Achse eine Wahrscheinlichkeitsverteilung darstellt. Die „zentrale Lese-Bezugs“ spannung kann zuerst auf die Zelle angewandt werden, um eine „harte Entscheidung“ darüber zu erzielen, ob Bit X eine Eins oder Null ist.
-
Nachdem die harte Entscheidung getroffen ist, können entsprechende weiche Informationen (z. B. Wahrscheinlichkeit, dass die harte Entscheidung korrekt ist) erzeugt werden. Um weiche Informationen zu erzeugen, können „zusätzliche Lese-Bezugs“spannungen, z. B. durch einen Speicher-Controller, angewandt werden. Diese zusätzlichen Lese-Bezugsversorgungsspannungen sind durch die Strichlinien dargestellt, die in 3 die zentrale Lese-Bezugsspannung flankieren. Außerdem können den Regionen zwischen den zusätzlichen Lese-Bezugsversorgungsspannungen potentielle Wahrscheinlichkeiten (z. B. LLR, LDR) zugewiesen werden. Diese potentiellen Wahrscheinlichkeiten können auf der RBFR der Chiplage basieren und in einigen Ausführungsformen umgekehrt proportional zu dieser sein. Zum Beispiel können einer Chiplage mit hoher RBFR/geringer Zuverlässigkeit potentielle Wahrscheinlichkeiten von verhältnismäßig kleiner Größe zugewiesen werden, wohingegen einer Chiplage mit geringer RBFR/hoher Zuverlässigkeit potentielle Wahrscheinlichkeiten von verhältnismäßig großer Größe zugewiesen werden können. In verschiedenen Ausführungsformen können die weichen Informationen auf Grundlage von weichen Entscheidungen erzeugt werden, die aus den zusätzlichen Lese-Bezugsversorgungsspannungen (z. B. welche Region) und entsprechenden Wahrscheinlichkeiten (z. B. Größe des Vertrauens, das mit der Region assoziiert ist) resultieren. Dies kann anhand von Beispielen besser verstanden werden, in denen „hohe“ und „geringe“ LLR den Regionen zugewiesen sind, die durch die zusätzlichen Lese-Bezugsspannungen definiert sind.
-
In 3 sind die Reihen von „hohen“ LLR, die oben unter Bezug auf 2 erörtert sind, innerhalb der Regionen angeordnet gezeigt, die durch die zusätzlichen Lese-Bezugsspannungen definiert sind. Angenommen, die Anwendung der zentralen Lese-Bezugsspannung zeigt an, dass das Bit X = 1 ist. Die ganz linke zusätzliche Lese-Bezugsversorgungsspannung kann dann angewandt werden. Wenn die ganz linke zusätzliche Lese-Bezugsversorgungsspannung eine Eins ergibt, dann kann der harten Entscheidung ein LLR von -16 zugewiesen werden, was ein hohes Vertrauensniveau anzeigen kann, dass das Bit X tatsächlich eine Eins ist. Wenn die ganz linke zusätzliche Lese-Bezugsversorgungsspannung eine Null ergibt, dann kann die nächste zusätzliche Lese-Bezugsversorgungsspannung rechts angewandt werden. Wenn die nächste zusätzliche Lese-Bezugsversorgungsspannung eine Eins ergibt, dann kann der harten Entscheidung ein LLR von -8 zugewiesen werden, die ein mittleres Vertrauensniveau anzeigt. Wenn sie jedoch eine Null ergibt, dann kann der harten Entscheidung ein LLR von -3 zugewiesen werden, die ein verhältnismäßig geringes Vertrauensniveau anzeigt.
-
Unter den „hohen“ LLR in 3 sind die „geringen“ LLR abgebildet, die oben unter Bezug auf 2 erörtert wurden. Diese geringen LLR können CHIPLAGE 4 und CHIPLAGE 5 in 2 zugewiesen werden. Wenn diese geringen LLR benutzt werden (z. B. beim Decodieren eines Codewortes von CHIPLAGE 4 oder CHIPLAGE 5), können die weichen Informationen, die mit der harten Entscheidung für das Bit X assoziiert sind, niemals größer als +/-5 sein und könnten bis hinab zu +/-1 betragen. Dies kann ein geringeres Vertrauensniveau anzeigen, als wenn CHIPLAGE 0 oder 1 decodiert werden.
-
4 bildet ein Diagramm ab, das beispielhafte Leistungsergebnisse zeigt, die unkorrigierbare Bitfehlerraten („UBFR“) mit mittleren RBFR vergleicht. Bei einem ersten Datensatz wird jedes Codewort auf einer einzelnen Chiplage gespeichert, was bedeutet, dass keine Codewortdiversität vorliegt. Bei einem zweiten Datensatz wird Diversitätskombinieren durch Aufteilen jedes LDPC-Codewortes auf sechs Chiplagen erreicht. Wie in 4 erkannt werden kann, können durch Verteilen von Codewörtern auf mehrere Speicherkomponenten Zunahmen in der Größenordnung von 10 x verwirklicht werden.
-
5 bildet ein beispielhaftes Verfahren 500 ab, das durch einen Speicher-Controller (z. B. Speicher-Controller 12 in 1) und/oder einen iterativen Decodierer (z. B. iterativen Decodierer 22 von 1, LDPC-Decodierer 222 in 2), der mit einem Speicher-Controller assoziiert ist, implementiert werden kann. Bei Block 502 können m Teile eines Codewortes, wie z. B. eines LDPC-Codewortes, auf m Chiplagen von nichtflüchtigem Speicher (z. B. NAND-Flash) verteilt gespeichert werden.
-
Bei Block 504 können die m Teile des Codewortes, z. B. als Eingabe für einen iterativen Decodierer (z. B. iterativen Decodierer 22 in 1 oder LDPC-Decodierer 222 in 2), von den m Chiplagen des nichtflüchtigen Speichers empfangen werden. Beispielsweise können m Teile des Codewortes von m Chiplagen durch eine Schreib/Lese-Logik (z. B. 14) gelesen werden und an einen iterativen Decodierer (z. B. 22, 220) weitergegeben werden.
-
Bei Block 506 können Zuverlässigkeitsmetriken, die mit den m Chiplagen assoziiert sind, benutzt werden, um weiche Informationen, z. B. als Eingabe für den iterativen Decodierer, zu erzeugen. In verschiedenen Ausführungsformen können die weichen Informationen potentielle Wahrscheinlichkeiten (z. B. {-16, -8, -3, +3, +8, +16} oder {-5, -3, -1, +1, +3, +5}) beinhalten, die mindestens teilweise auf den Zuverlässigkeitsmetriken der m Chiplagen basieren, wie oben beschrieben.
-
Unter Benutzen der m empfangenen Codewortteile und weichen Informationen können/kann bei Block 508 ein Speicher-Controller (z. B. Speicher-Controller 12 in 1) und/oder ein iterativer Decodierer (z. B. iterativer Decodierer 22 in 1 oder LDPC-Decodierer 222 in 2) das Codewort iterativ decodieren.
-
6 veranschaulicht ein Computergerät 600 gemäß verschiedenen Ausführungsformen. Das Computergerät 600 beherbergt eine Leiterplatte (printed circuit board, „PCB“) 602. Die PCB 602 kann eine Anzahl von Komponenten enthalten, z. B., aber nicht beschränkt auf, einen Prozessor 604 und mindestens einen Kommunikationschip 606. Der Prozessor 604 kann physisch und elektronisch mit der PCB 602 gekoppelt sein. In verschiedenen Ausführungsformen kann der mindestens eine Kommunikationschip 606 ebenfalls physisch und elektronisch mit der PCB 602 gekoppelt sein. In weiteren Implementierungen kann der Kommunikationschip 606 Teil des Prozessors 604 sein.
-
Abhängig von seinen Anwendungen kann Computergerät 600 andere Komponenten beinhalten, die physisch und elektrisch mit der PCB 602 gekoppelt sein können oder nicht. Diese anderen Komponenten sind flüchtiger Speicher (z. B. dynamischer Direktzugriffsspeicher 608, auch als „DRAM“ bezeichnet), nichtflüchtiger Speicher (z. B. Nurlesespeicher 610, auch als „ROM“ bezeichnet), Flash-Speicher 612, ein Graphikprozessor 614, ein Digitalsignalprozessor (nicht gezeigt), ein Kryptoprozessor (nicht gezeigt), ein Chipsatz 616, eine Antenne 618, eine Sichtanzeige (nicht gezeigt), eine Touchscreen-Anzeige 620, ein Touchscreen-Controller 622, eine Batterie 624, ein Audio-Codec (nicht gezeigt), ein Video-Codec (nicht gezeigt), ein Leistungsverstärker 626, ein Gerät des globalen Positionsbestimmungssystems („GPS“) 628, ein Kompass 630, ein Beschleunigungsmesser (nicht gezeigt), ein Gyroskop (nicht gezeigt), ein Lautsprecher 632, eine Kamera 634 und ein Massenspeichergerät (wie z. B. ein Festplattenlaufwerk, ein Festkörperlaufwerk, eine Compact-Disk („CD“), eine Digital-Versatile-Disk („DVD“)) (nicht gezeigt) usw., sind aber nicht darauf beschränkt.
-
Der Kommunikationschip 606 kann drahtgebundene und/oder drahtlose Kommunikationen für die Datenübertragung von und zu Computergerät 600 ermöglichen. Der Ausdruck „drahtlos“ und seine Ableitungen können verwendet sein, um Schaltungen, Geräte, Systeme, Verfahren, Techniken, Kommunikationskanäle usw. zu beschreiben, die Daten unter Verwendung von modulierter elektromagnetischer Strahlung durch ein nicht festes Medium kommunizieren können. Der Ausdruck deutet nicht an, dass die entsprechenden Geräte nicht irgendwelche Drähte enthalten, obwohl sie in einigen Ausführungsformen keine enthalten könnten. Der Kommunikationschip 606 kann beliebige einer Anzahl von Drahtlosstandards oder -protokollen implementieren, unter anderem Wi-Fi (IEEE-802.11-Familie), WiMAX (IEEE-802.16-Familie), IEEE 802.20, Long Term Evolution („LTE“), Ev-DO, HSPA+, HSDPA+, HSUPA+, EDGE, GSM, GPRS, CDMA, TDMA, DECT, Bluetooth, Abkömmlinge davon sowie jedwede anderen Drahtlosprotokolle, die als 3G, 4G, 5G und darüber hinaus bezeichnet werden. Das Computergerät 600 kann mehrere Kommunikationschips 606 beinhalten. Zum Beispiel kann ein erster Kommunikationschip 606 für drahtlose Kommunikation kürzerer Reichweite, wie z. B. Wi-Fi und Bluetooth, bestimmt sein und ein zweiter Kommunikationschip 606 kann für drahtlose Kommunikation längerer Reichweite, wie z. B. GPS, EDGE, GPRS, CDMA, WiMAX, LTE, Ev-DO und andere, bestimmt sein.
-
Der Prozessor 604 des Computergerätes 600 kann eine Chiplage mit integrierter Schaltung beinhalten, die im Prozessor 604 verpackt ist. In verschiedenen Ausführungsformen kann die Chiplage mit integrierter Schaltung des Prozessors 604 ein oder mehrere Bauelemente enthalten, wie z. B. Transistoren oder metallische Verbindungen, die gebildet sind, um die verteilte Speicherung von Codewörtern und das iterative Decodieren verteilter Codewörter unter Benutzen einer oder mehrerer Techniken, die hierin beschrieben sind, zu erleichtern. Der Ausdruck „Prozessor“ kann auf jedes Bauelement oder jeden Teil eines Bauelementes verweisen, der elektronische Daten von Registern und/oder Speicher verarbeitet, um diese elektronischen Daten in andere elektronische Daten zu transformieren, die in Registern und/oder Speicher gespeichert werden können.
-
Der Kommunikationschip 606 kann außerdem eine Chiplage mit integrierter Schaltung enthalten, die im Kommunikationschip 606 verpackt ist. In verschiedenen Ausführungsformen kann die Chiplage mit integrierter Schaltung des Kommunikationschips 606 ein oder mehrere Bauelemente enthalten, wie z. B. Transistoren oder metallische Verbindungen, die gebildet sind, um die verteilte Speicherung von Codewörtern und das iterative Decodieren verteilter Codewörter unter Benutzen einer oder mehrerer Techniken, die hierin beschrieben sind, zu erleichtern.
-
In verschiedenen Ausführungsformen kann das Computergerät 600 ein Laptop, ein Netbook, ein Notebook, ein Ultrabook, ein Smartphone, ein Tablet, ein Personal Digital Assistant (PDA), ein ultramobiler PC, ein Mobiltelefon, ein Desktop-Computer, ein Server, ein Drucker, ein Scanner, ein Monitor, eine Settop-Box, eine Steuereinheit von Unterhaltungsgeräten, eine Digitalkamera, ein tragbarer Music-Player oder ein digitaler Videorecorder sein. In weiteren Implementierungen kann das Computergerät 600 ein beliebiges anderes elektronisches Gerät sein, das Daten verarbeitet.
-
System, Verfahren, computerlesbare Medien (flüchtig und nichtflüchtig), Vorrichtungen, Geräte und verschiedene andere Komponenten können ausgestaltet werden, um Folgendes zu implementieren. In verschiedenen Ausführungsformen kann ein erster Teil eines Codewortes auf einer ersten Chiplage gespeichert sein und ein zweiter Teil des Codewortes auf einer zweiten Chiplage gespeichert sein. In verschiedenen Ausführungsformen kann ein iterativer Decodierer ausgestaltet sein, um das Codewort mindestens teilweise auf Grundlage von Zuverlässigkeitsmetriken, die mit der ersten Chiplage und der zweiten Chiplage assoziiert sind, iterativ zu decodieren.
-
In verschiedenen Ausführungsformen kann der nichtflüchtige Speicher NAND-Flash-Speicher, FeTRAM, Nanodraht-basierter Speicher, PCM oder PCMS sein. In verschiedenen Ausführungsformen können die Zuverlässigkeitsmetriken benutzt werden, um weiche Informationen zur Eingabe in den iterativen Decodierer zu erzeugen. In verschiedenen Ausführungsformen kann das Codewort ein LDPC-Codewort sein und der iterative Decodierer ein LDPC-Decodierer sein. In verschiedenen Ausführungsformen können die Zuverlässigkeitsmetriken, die mit der ersten und der zweiten Chiplage assoziiert sind, Roh-Bitfehlerraten sein.
-
In verschiedenen Ausführungsformen kann ein iterativer Decodierer m Teile eines Codewortes zur Benutzung mit einem Fehlerkorrekturcode von m Chiplagen nichtflüchtigen Speichers empfangen. In verschiedenen Ausführungsformen kann der iterative Decodierer das Codewort auf Grundlage der m empfangenen Teile und m Zuverlässigkeitsmetriken, die mit den m Chiplagen assoziiert sind, iterativ decodieren. In verschiedenen Ausführungsformen kann m gleich 2, 4, 6, 8 usw. sein. In verschiedenen Ausführungsformen kann das Empfangen von m Teilen des Codewortes das Lesen von m Teilen des Codewortes aus m Chiplagen von NAND-Flash-Speicher beinhalten.
-
In verschiedenen Ausführungsformen können die m Zuverlässigkeitsmetriken Roh-Bitfehlerraten der m Chiplagen sein. In verschiedenen Ausführungsformen können potentielle Wahrscheinlichkeiten, die mit einer ersten Chiplage der m Chiplagen assoziiert sind, auf Grundlage einer Roh-Bitfehlerrate der ersten Chiplage der m Chiplagen erzeugt werden. In verschiedenen Ausführungsformen können Größenordnungen der erzeugten potentiellen Wahrscheinlichkeiten der Roh-Bitfehlerrate der ersten Chiplage der m Chiplagen umgekehrt proportional sein. In verschiedenen Ausführungsformen kann eine potentielle Wahrscheinlichkeit aus potentiellen Wahrscheinlichkeiten, die mit der ersten Chiplage der m Chiplagen assoziiert sind, auf Grundlage von Ergebnissen von einer oder mehreren zusätzlichen Lese-Bezugsversorgungsspannungen ausgewählt sein.
-
Obwohl hierin bestimmte Ausführungsformen zu Zwecken der Beschreibung veranschaulicht und beschrieben wurden, kann eine breite Vielfalt an alternativen und/oder äquivalenten Ausführungsformen oder Implementierungen, die vorgesehen sind, um die gleichen Zwecke zu erfüllen, die gezeigten und beschriebenen Ausführungsformen ersetzen, ohne den Umfang der vorliegenden Offenbarung zu verlassen. Diese Anmeldung soll alle Anpassungen oder Varianten der hier besprochenen Ausführungsformen abdecken. Deshalb ist offenkundig beabsichtigt, dass hierin beschriebene Ausführungsformen nur durch die Ansprüche und deren Äquivalente eingegrenzt sind.