DE112012006014B4 - Verteilte Codewortteile - Google Patents

Verteilte Codewortteile Download PDF

Info

Publication number
DE112012006014B4
DE112012006014B4 DE112012006014.8T DE112012006014T DE112012006014B4 DE 112012006014 B4 DE112012006014 B4 DE 112012006014B4 DE 112012006014 T DE112012006014 T DE 112012006014T DE 112012006014 B4 DE112012006014 B4 DE 112012006014B4
Authority
DE
Germany
Prior art keywords
die
code word
memory
layers
chip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112012006014.8T
Other languages
English (en)
Other versions
DE112012006014T5 (de
Inventor
Ravi H. Motwani
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112012006014T5 publication Critical patent/DE112012006014T5/de
Application granted granted Critical
Publication of DE112012006014B4 publication Critical patent/DE112012006014B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)

Abstract

Vorrichtung, umfassend:nichtflüchtigen Speicher (16) einschließlich einer ersten Chiplage (18) und einer zweiten Chiplage (18);eine Schreib/Lese-Logik (14), ausgestaltet, um einen ersten Teil eines Codewortes zur Benutzung mit einem Fehlerkorrekturcode auf der ersten Chiplage (18) zu speichern und um einen zweiten Teil des Codewortes auf der zweiten Chiplage zu speichern; undeinen iterativen Decodierer (22), ausgestaltet, um das Codewort mindestens teilweise auf Grundlage von Zuverlässigkeitsmetriken, die mit der ersten Chiplage (18) und der zweiten Chiplage (18) assoziiert sind, iterativ zu decodieren.

Description

  • 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: f x ( x ; μ , σ ) = 1 x σ 2 π e ( In  x μ ) 2 2 σ 2 , x > 0
    Figure DE112012006014B4_0001
  • 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.

Claims (37)

  1. Vorrichtung, umfassend: nichtflüchtigen Speicher (16) einschließlich einer ersten Chiplage (18) und einer zweiten Chiplage (18); eine Schreib/Lese-Logik (14), ausgestaltet, um einen ersten Teil eines Codewortes zur Benutzung mit einem Fehlerkorrekturcode auf der ersten Chiplage (18) zu speichern und um einen zweiten Teil des Codewortes auf der zweiten Chiplage zu speichern; und einen iterativen Decodierer (22), ausgestaltet, um das Codewort mindestens teilweise auf Grundlage von Zuverlässigkeitsmetriken, die mit der ersten Chiplage (18) und der zweiten Chiplage (18) assoziiert sind, iterativ zu decodieren.
  2. Vorrichtung nach Anspruch 1, wobei der nichtflüchtige Speicher (16) ein NAND-Flash-Speicher ist.
  3. Vorrichtung nach Anspruch 1, wobei der nichtflüchtige Speicher (16) ein ferroelektrischer Direktzugriffsspeicher (ferroelectric random-access memory, „FeTRAM“) ist.
  4. Vorrichtung nach Anspruch 1, wobei der nichtflüchtige Speicher (16) einen Nanodrahtbasierten Speicher umfasst.
  5. Vorrichtung nach Anspruch 1, wobei der nichtflüchtige Speicher (16) einen Phasenwechselspeicher oder Phasenwechselspeicher mit Schalter umfasst.
  6. Vorrichtung nach Anspruch 1, wobei die Zuverlässigkeitsmetriken benutzt werden, um weiche Informationen zur Eingabe in den iterativen Decodierer (22) zu erzeugen.
  7. Vorrichtung nach einem von Anspruch 1 bis 6, wobei das Codewort ein Low-Density-Parity-Check-Codewort ist.
  8. Vorrichtung nach einem von Anspruch 1 bis 6, wobei die Zuverlässigkeitsmetriken, die mit der ersten und der zweiten Chiplage (18) assoziiert sind, Roh-Bitfehlerraten sind.
  9. Vorrichtung nach einem von Anspruch 1 bis 6, wobei der nichtflüchtige Speicher (16) eine dritte, vierte, fünfte und sechste Chiplage (18) beinhaltet und wobei der Speicher-Controller (12) ferner ausgestaltet ist, um einen dritten Teil des Codewortes auf der dritten Chiplage (18) zu speichern, einen vierten Teil des Codewortes auf der vierten Chiplage zu speichern, einen fünften Teil des Codewortes auf der fünften Chiplage zu speichern, einen sechsten Teil des Codewortes auf der sechsten Chiplage zu speichern und das Codewort mindestens teilweise auf Grundlage von Zuverlässigkeitsmetriken, die mit der dritten, vierten, fünften und sechsten Chiplage assoziiert sind, zu decodieren.
  10. Computerimplementiertes Verfahren (500), umfassend: Empfangen (504), durch einen iterativen Decodierer (22), von m Teilen eines Codewortes zur Benutzung mit einem Fehlerkorrekturcode von m Chiplagen nichtflüchtigen Speichers (16); und iteratives Decodieren (508), durch den iterativen Decodierer (22), des Codewortes auf Grundlage der m empfangenen Teile und m Zuverlässigkeitsmetriken, die mit den m Chiplagen assoziiert sind.
  11. Computerimplementiertes Verfahren (500) nach Anspruch 10, wobei m = 2 ist.
  12. Computerimplementiertes Verfahren (500) nach Anspruch 10, wobei m = 4 ist.
  13. Computerimplementiertes Verfahren (500) nach Anspruch 10, wobei m = 6 ist.
  14. Computerimplementiertes Verfahren (500) nach Anspruch 10, wobei m = 8 ist.
  15. Computerimplementiertes Verfahren (500) nach Anspruch 10, wobei das Empfangen von m Teilen des Codewortes das Lesen von m Teilen des Codewortes von m Chiplagen von NAND-Flash-Speicher beinhaltet.
  16. Computerimplementiertes Verfahren (500) nach Anspruch 10, ferner umfassend das Erzeugen weicher Informationen zur Eingabe in den iterativen Decodierer (22) unter Benutzen der Zuverlässigkeitsmetriken, die mit den m Chiplagen assoziiert sind.
  17. Computerimplementiertes Verfahren (500) nach Anspruch 16, wobei der iterative Decodierer (22) ein Low-Density-Parity-Check-Decodierer ist.
  18. Computerimplementiertes Verfahren (500) nach Anspruch 10, wobei die m Zuverlässigkeitsmetriken Roh-Bitfehlerraten der m Chiplagen sind.
  19. Computerimplementiertes Verfahren (500) nach Anspruch 18, ferner umfassend das Erzeugen, durch den iterativen Decodierer (22), potentieller Wahrscheinlichkeiten, die mit einer ersten Chiplage der m Chiplagen assoziiert sind, auf Grundlage einer Roh-Bitfehlerrate der ersten Chiplage der m Chiplagen.
  20. Computerimplementiertes Verfahren (500) nach Anspruch 19, wobei Größenordnungen der erzeugten potentiellen Wahrscheinlichkeiten der Roh-Bitfehlerrate der ersten Chiplage der m Chiplagen umgekehrt proportional sind.
  21. Computerimplementiertes Verfahren (500) nach Anspruch 20, ferner umfassend das Auswählen, durch den iterativen Decodierer, aus potentiellen Wahrscheinlichkeiten, die mit der ersten Chiplage der m Chiplagen assoziiert sind, einer potentiellen Wahrscheinlichkeit auf Grundlage von Ergebnissen von einer oder mehreren zusätzlichen Lese-Bezugsversorgungsspannungen.
  22. Maschinenlesbares Medium, umfassend mehrere Anweisungen, die als Reaktion auf die Ausführung auf einem Computergerät das Computergerät veranlassen, ein Verfahren (500) nach einem von Anspruch 10 bis 21 auszuführen.
  23. Vorrichtung, ausgestaltet, um das Verfahren (500) nach einem von Anspruch 10 bis 21 durchzuführen.
  24. System (600), umfassend: einen Prozessor (604); nichtflüchtigen Speicher (608), der mit dem Prozessor betriebsfähig gekoppelt ist und m Chiplagen mit m assoziierten Zuverlässigkeitsmetriken beinhaltet; und einen Speicher-Controller, der von dem Prozessor (604)zu betreiben und ausgestaltet ist, um m Teile eines Codewortes zur Benutzung mit einem Fehlerkorrekturcode auf die m Chiplagen zu verteilen und das Codewort mindestens teilweise auf Grundlage von weichen Informationen, die von den m Zuverlässigkeitsmetriken, die mit den m Chiplagen assoziiert sind, iterativ zu decodieren.
  25. System (600) nach Anspruch 24, wobei der nichtflüchtige Speicher ein NAND-Flash-Speicher ist.
  26. System (600) nach Anspruch 24, wobei das Codewort ein Low-Density-Parity-Check-Codewort ist.
  27. System (600) nach Anspruch 24, wobei die Zuverlässigkeitsmetriken, die mit den m Chiplagen assoziiert sind, m Roh-Bitfehlerraten sind.
  28. System (600) nach Anspruch 27, wobei der Speicher-Controller ferner ausgestaltet ist, um potentielle Wahrscheinlichkeiten, die mit einer ersten Chiplage der m Chiplagen assoziiert sind, auf Grundlage einer Roh-Bitfehlerrate der ersten der m Chiplagen zu erzeugen.
  29. System (600) nach Anspruch 28, wobei Größenordnungen der erzeugten potentiellen Wahrscheinlichkeiten der Roh-Bitfehlerrate der ersten der m Chiplagen umgekehrt proportional sind.
  30. System (600) nach Anspruch 29, wobei der Speicher-Controller ferner ausgestaltet ist, um aus den potentiellen Wahrscheinlichkeiten, die mit der ersten Chiplage der m Chiplagen assoziiert sind, auf Grundlage von Ergebnissen von einer oder mehreren zusätzlichen Lese-Bezugsversorgungsspannungen, die auf eine Zelle der ersten Chiplage angewandt werden, eine potentielle Wahrscheinlichkeit auszuwählen.
  31. System (600) nach einem von Anspruch 24 bis 30, ferner umfassend eine Touchscreen-Anzeige (620).
  32. System (600) nach einem von Anspruch 24 bis 30, ferner umfassend einen Lautsprecher (632).
  33. System (600) nach einem von Anspruch 24 bis 30, ferner umfassend eine Digitalkamera (634), die ausgestaltet ist, um von dem Prozessor (604) betrieben zu werden, um digitale Bilder aufzunehmen.
  34. System (600) nach einem von Anspruch 24 bis 30, ferner umfassend eine Funkantenne (618).
  35. System (600) nach einem von Anspruch 24 bis 30, wobei der nichtflüchtige Speicher (608) ein ferroelektrischer Direktzugriffsspeicher („FeTRAM“) ist.
  36. System (600) nach einem von Anspruch 24 bis 30, wobei der nichtflüchtige Speicher (608) ein nanodraht-basierter Speicher ist.
  37. System (600) nach einem von Anspruch 24 bis 30, wobei der nichtflüchtige Speicher (608)ein Phasenwechselspeicher oder Phasenwechselspeicher mit Schalter ist.
DE112012006014.8T 2012-03-12 2012-03-12 Verteilte Codewortteile Active DE112012006014B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/028763 WO2013137851A1 (en) 2012-03-12 2012-03-12 Distributed codeword portions

Publications (2)

Publication Number Publication Date
DE112012006014T5 DE112012006014T5 (de) 2014-12-11
DE112012006014B4 true DE112012006014B4 (de) 2020-02-13

Family

ID=49161597

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012006014.8T Active DE112012006014B4 (de) 2012-03-12 2012-03-12 Verteilte Codewortteile

Country Status (4)

Country Link
US (1) US20140122973A1 (de)
KR (1) KR101668934B1 (de)
DE (1) DE112012006014B4 (de)
WO (1) WO2013137851A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9136011B2 (en) * 2012-04-26 2015-09-15 Hgst Technologies Santa Ana, Inc. Soft information module
US9059737B2 (en) * 2013-01-11 2015-06-16 HGST Netherlands B.V. Disk drive with distributed codeword blocks
US10365966B1 (en) * 2014-03-25 2019-07-30 Marvell lnternational Ltd. Methods and systems for wordline based encoding and decoding in NAND flash
KR102296738B1 (ko) 2015-06-01 2021-09-01 삼성전자 주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 에러 정정 방법
US10033411B2 (en) 2015-11-20 2018-07-24 Intel Corporation Adjustable error protection for stored data
US10289484B2 (en) * 2016-09-16 2019-05-14 Micron Technology, Inc. Apparatuses and methods for generating probabilistic information with current integration sensing
US10268538B2 (en) * 2016-11-28 2019-04-23 Alibaba Group Holding Limited Efficient and enhanced distributed storage clusters
KR102258140B1 (ko) * 2017-07-06 2021-05-28 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템
US10725857B2 (en) 2018-02-27 2020-07-28 Western Digital Technologies, Inc. Data storage system for improving data throughput and decode capabilities
KR20200016606A (ko) 2018-08-07 2020-02-17 삼성전자주식회사 메모리 컨트롤러, 메모리 컨트롤러의 동작 방법 및 메모리 시스템
KR102599047B1 (ko) 2018-11-13 2023-11-06 삼성전자주식회사 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
US11438012B2 (en) * 2018-11-29 2022-09-06 Micron Technology, Inc. Failure-tolerant error correction layout for memory sub-systems
US10908996B2 (en) 2019-02-22 2021-02-02 Intel Corporation Distribution of a codeword across individual storage units to reduce the bit error rate
US11086714B2 (en) 2019-09-20 2021-08-10 Intel Corporation Permutation of bit locations to reduce recurrence of bit error patterns in a memory device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7966546B2 (en) * 2007-03-31 2011-06-21 Sandisk Technologies Inc. Non-volatile memory with soft bit data transmission for error correction control

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61134988A (ja) * 1984-12-04 1986-06-23 Toshiba Corp 半導体メモリにおける誤り検出訂正機能制御系
JP2005196886A (ja) * 2004-01-08 2005-07-21 Matsushita Electric Ind Co Ltd 多値記憶不揮発性メモリ装置
WO2008121553A1 (en) * 2007-03-29 2008-10-09 Sandisk Corporation Non-volatile storage with decoding of data using reliability metrics based on multiple reads
KR101466694B1 (ko) * 2007-08-28 2014-11-28 삼성전자주식회사 Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법
US8413015B2 (en) * 2009-09-21 2013-04-02 Sandisk Technologies Inc. Nonvolatile memory controller with scalable pipelined error correction
US8572311B1 (en) * 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US20110252289A1 (en) * 2010-04-08 2011-10-13 Seagate Technology Llc Adjusting storage device parameters based on reliability sensing
WO2011159806A2 (en) * 2010-06-15 2011-12-22 Fusion-Io, Inc. Apparatus, system, and method for providing error correction
US8533550B2 (en) * 2010-06-29 2013-09-10 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
JP2012022422A (ja) * 2010-07-13 2012-02-02 Panasonic Corp 半導体記録再生装置
US8392807B2 (en) * 2010-07-23 2013-03-05 Sandisk Technologies Inc. System and method of distributive ECC processing
US8665650B2 (en) * 2011-02-18 2014-03-04 Marvell World Trade Ltd. Reliability metrics management for soft decoding
US8959407B2 (en) * 2012-11-28 2015-02-17 Intel Corporation Scaling factors for hard decision reads of codewords distributed across die
US8898549B2 (en) * 2013-02-12 2014-11-25 Seagate Technology Llc Statistical adaptive error correction for a flash memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7966546B2 (en) * 2007-03-31 2011-06-21 Sandisk Technologies Inc. Non-volatile memory with soft bit data transmission for error correction control

Also Published As

Publication number Publication date
US20140122973A1 (en) 2014-05-01
WO2013137851A1 (en) 2013-09-19
KR20140121880A (ko) 2014-10-16
KR101668934B1 (ko) 2016-10-28
DE112012006014T5 (de) 2014-12-11

Similar Documents

Publication Publication Date Title
DE112012006014B4 (de) Verteilte Codewortteile
DE112012006153B4 (de) Rekonstruktion von Codewörtern unter Verwendung eines Seitenkanals
DE112013007454T5 (de) Verwendung von Error Correction Pointern zur Behandlung von Fehlern in Speicher
DE112011100371B4 (de) Verfahren, Vorrichtung und Computerprogrammprodukt zum Decodieren eines Codeworts
DE102013020712B4 (de) Techniken zum Speichern von Bits in Speicherzellen mit Hängenbleiben-auf-0-oder-1-Fehlern
DE102019134293A1 (de) Speichervorrichtung mit verbesserter fehlerkorrektur
DE102015201384A1 (de) Vorrichtung und Verfahren zum Verbessern der Datenspeicherung durch Dateninvertierung
DE102005052698A1 (de) Verfahren zur Verarbeitung von nichtflüchtig gespeicherten Daten
DE102013016681B4 (de) Codieren und Decodieren von Daten zum Vornehmen von Anpassungen für Speicherzellen mit Haftfehlern
DE102010051813B4 (de) Fehlerkorrekturmechanismen für 8-Bit Speichergeräte
DE102015113414B4 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE102014100161A1 (de) Speichersystem und Betriebsverfahren davon
DE102017104257A1 (de) Auf Zellenstrom basierende Bitleitungsspannung
DE102014103125A1 (de) Verfahren und Vorrichtung zum Optimieren des Log-Likelihood-Quotienten (LLR), die verwendet werden für eine nichtflüchtige Speichervorrichtung und zum Korrigieren von Fehlern in einer nichtflüchtigen Speichervorrichtung
DE102018214010A1 (de) Verfahren und Vorrichtung zur Reduzierung von unbemerkten Datenfehlern in nichtflüchtigen Speichersystemen
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE102008003113A1 (de) ECC-Steuereinheit, Speichersystem und Verfahren zur Korrektur eines Fehlers
DE102011055714A1 (de) Verfahren zum Programmieren einer nicht-flüchtigen Speichervorrichtung
DE102018123880A1 (de) Adaptive Verwaltung von Zwischenspeichern
DE102018105434A1 (de) Verfahren und System zum Abtasten von gelöschten Flashspeicherseiten mit Querverweis auf verwandte Anwendungen
DE112014005810B4 (de) anagement der Datenspeicherung in analogen Speicherzellen unter Verwendung einer nicht ganzzahligen Anzahl von Bits pro Zelle
DE102011075023A1 (de) Indexierter Registerzugriff für einen Speicherbaustein
DE102021112203A1 (de) Integrierter schaltkreis und betriebsverfahren dafür
CN112466378A (zh) 一种固态硬盘运行纠错方法、装置及相关组件
DE102020133666A1 (de) Verbesserter ecc-speicherchip-kodierer und -dekodierer

Legal Events

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