DE112012006153T5 - Rekonstruktion von Codewörtern unter Verwendung eines Seitenkanals - Google Patents

Rekonstruktion von Codewörtern unter Verwendung eines Seitenkanals Download PDF

Info

Publication number
DE112012006153T5
DE112012006153T5 DE112012006153.5T DE112012006153T DE112012006153T5 DE 112012006153 T5 DE112012006153 T5 DE 112012006153T5 DE 112012006153 T DE112012006153 T DE 112012006153T DE 112012006153 T5 DE112012006153 T5 DE 112012006153T5
Authority
DE
Germany
Prior art keywords
failed
chip
data stored
decode data
attempts
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.)
Granted
Application number
DE112012006153.5T
Other languages
English (en)
Other versions
DE112012006153B4 (de
Inventor
Pranav Kalavade
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.)
SK Hynix NAND Product Solutions 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 DE112012006153T5 publication Critical patent/DE112012006153T5/de
Application granted granted Critical
Publication of DE112012006153B4 publication Critical patent/DE112012006153B4/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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • 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
    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies

Landscapes

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

Abstract

Ausführungsformen der vorliegenden Offenbarung beschreiben Gerät, Verfahren, computerlesbare Medien und Systemkonfiguration für die Decodierung von Codewörtern mithilfe eines Seitenkanals. In verschiedenen Ausführungsformen kann ein Speichercontroller konfiguriert werden, um festzustellen, ob bei m von n Chip des nichtflüchtigen Speichers (NVM) die iterative Decodierung fehlgeschlagen ist. In verschiedenen Ausführungsformen kann der Speichercontroller des Weiteren so konfiguriert werden, dass er einen Seitenkanal aus n–m ausgefallenen Chip und dem m ausgefallenen Chip außer einem ersten ausgefallenen Chip erzeugt. In verschiedenen Ausführungsformen kann der Speichercontroller des Weiteren so konfiguriert werden, dass er mithilfe iterativer Decodierung ein Codewort rekonstruiert, das auf dem ersten ausgefallenen Chip von m ausgefallenen Chip gespeichert ist, basierend auf den erzeugten Seitenkanal und Soft-Eingabe zu einem Versuch, Daten, die auf dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren. In verschiedenen Ausführungsformen kann die iterative Decodierung Low-Density Parity-Check-Decodierung umfassen. Es könnten weitere Ausführungsformen beschrieben und/oder beansprucht sein.

Description

  • Technisches Gebiet
  • Ausführungsformen der vorliegenden Erfindung beziehen sich allgemein auf das Gebiet der Datenverarbeitung und insbesondere auf die Rekonstruktion von Codewörtern unter Verwendung eines Seitenkanals.
  • Allgemeiner Stand der Technik
  • Die hier vorgesehene Hintergrundbeschreibung dient dem Zweck der allgemeinen Darstellung des Kontextes der Offenbarung Die Arbeit der vorliegenden Erfinder in dem Maße wie in diesem Hintergrundabschnitt beschrieben ist, wie auch Aspekte der Beschreibung, die zum Zeitpunkt der Einreichung ansonsten nicht als Stand der Technik zu betrachten sind, sind weder ausdrücklich noch impliziert als Stand der Technik gegenüber der vorliegenden Offenbarung zulässig. Sofern hierin nicht anders angegeben, sind die in diesem Abschnitt beschriebenen Ansätze nicht Stand der Technik für die Ansprüche in der vorliegenden Offenbarung und sind nicht durch Einbeziehung in diesen Abschnitt als Stand der Technik zugelassen.
  • Ein Speichercontroller eines nichtflüchtigen Speichers (non-volatile memory, NVM) kann eine Vielzahl von Datencodier-/-decodierttechniken verwenden, um Bitfehler zu behandeln und Daten wiederherzustellen. Zum Beispiel können Daten als ein oder mehrere Codewörter codiert werden, z. B. als Low-Density Parity-Check (LDPC)-Codewörter. Der Speichercontroller kann einen iterativen LDPC-Decoder umfassen, der so konfiguriert ist, dass er die LDPC-Codewörter decodiert.
  • Einige Arten von Codewörter, z. B. LDPC-codierte Codewörter, können eine ursprüngliche Meldung und damit verbundene Paritätsdaten enthalten. Ein nicht binärer, iterativer Decoder (z. B. ein LDPC-Decoder) kann das Codewort während der Decodierung mehrmals verarbeiten. Symbole und Soft-Informationen (z. B. verbundene Wahrscheinlichkeiten, dass die Symbole richtig sind) können zwischen Variablenknoten und Prüfknoten weitergegeben werden, entsprechend den Beziehungen zwischen den Variablenknoten. Jede Iteration kann das Codewort näher zur ursprünglichen Meldung bringen.
  • NVM kann eine Vielzahl physischer Komponenten umfassen, z. B. eine Pluralität von Chips. Wenn ein einzelner Chip ausfällt, kann es möglich sein, Daten aus dem ausgefallenen Chip mithilfe von Daten der anderen, nicht ausgefallenen Chips zu rekonstruieren. Die Rekonstruktion der Daten auf einem Multi-Chip kann jedoch weniger erfolgreich sein.
  • Kurze Beschreibung der Zeichnungen
  • 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 exemplarisch und in keiner Weise einschränkend in den Figuren der begleitenden Zeichnungen veranschaulicht.
  • 1 veranschaulicht schematisch ein beispielhaftes Halbleiterlaufwerk gemäß verschiedenen Ausführungsformen.
  • 2 veranschaulicht schematisch, wie gemäß verschiedenen Ausführungsformen verschiedene Arten von Daten, die mit dem Multi-Chip verbunden sind, in einen iterativen Decoder eingegeben werden können.
  • 37 veranschaulicht schematisch verschiedene Beispiele dafür, wie gemäß verschiedenen Ausführungsformen verschiedene Arten von Daten, die mit Versuchen verbunden sind, Daten, die auf einem Multi-Chip gespeichert sind, iterativ zu decodieren, in einen iterativen Decoder eingegeben werden können.
  • 8 veranschaulicht schematisch ein beispielhaftes Verfahren gemäß verschiedenen Ausführungsformen.
  • 9 veranschaulicht schematisch ein beispielhaftes Computergerät gemäß verschiedenen Ausführungsformen.
  • Ausführliche Beschreibung
  • In der folgenden ausführlichen Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil hiervon bilden, in denen ähnliche Bezugsnummern ähnliche Teile bezeichnen und in denen durch Veranschaulichung Ausführungsformen, die 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 werden wiederum als mehrere getrennte Aktionen oder Operationen auf eine Weise beschrieben, die sehr hilfreich beim Verständnis des beanspruchten Gegenstands sind. Jedoch soll die Reihenfolge der Beschreibung nicht andeuten, dass diese Arbeitsvorgänge unbedingt von dieser Reihenfolge abhängig sind. Diese Operationen müssen insbesondere nicht in der Reihenfolge der Darstellung ausgeführt werden. Beschriebene Operationen können in einer anderen Reihenfolge als der beschriebenen Ausführungsform durchgeführt werden. In zusätzlichen Ausführungsformen können verschiedene zusätzliche Operationen durchgeführt werden und/oder beschriebene Operationen können ausgelassen 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).
  • Die Beschreibung kann die Ausdrücke „bei einer Ausführungsform” oder „bei Ausführungsformen” verwenden, die sich auf eine oder mehrere der gleichen oder von unterschiedlichen Ausführungsformen beziehen können. Des Weiteren sind die Begriffe „umfassend”, „einschließlich” „aufweisen” und dergleichen, wie in Bezug auf Ausführungsformen der vorliegenden Offenbarung verwendet, synonym.
  • Wie hier verwendet, kann der Begriff „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 verwendet, kann sich „computerimplementiertes Verfahren” auf jedes Verfahren beziehen, das von einem oder mehreren Prozessoren, einem Computersystem mit einem oder mehreren Prozessoren, einem mobilen Gerät wie einem Smartphone (das einen oder mehrere Prozessoren enthalten kann), einem Tablet, einem Laptop-Computer, einer Settop-Box, eine Spielkonsole usw. ausgeführt werden kann.
  • Unter jetziger Bezugnahme auf 1 kann ein beispielhaftes Speichergerät 10, das hier in Form eines Halbleiterlaufwerks (solid state drive, SSD) dargestellt ist, einen Speichercontroller 12 umfassen, der operativ an nichtflüchtigen Speicher (NVM) 14 gekoppelt ist. In verschiedenen Ausführungsformen kann Speichercontroller 12 mithilfe von Hardware (z. B. einer digitalen Schaltung) implementiert werden. In einigen Ausführungsformen kann NVM 14 ein NAND-Flash-Speicher sein. In verschiedenen Ausführungsformen kann NVM 14 eine andere Art von NVM sein, zum Beispiel Ferroelectric Random-Access-Speicher (FeTRAM), nanodrahtbasierter NVM, Phasenänderungsspeicher (phase change memory, PCM), PCM mit Switch (PCMS) und so weiter. In verschiedenen Ausführungsformen kann Speichergerät 10 eine andere Art von Speichergerät sein, z. B. ein Festplattenlaufwerk (hard disk drive, HDD). NVM 14 kann eine verschiedene Anzahl von Chip 16 enthalten. Im Beispiel von 1 enthält NVM 14 n Chip 16, DIE 0-DIE n. In diesem Beispiel ist CHIP n ein XOR-Chip.
  • In verschiedenen Ausführungsformen kann Speichercontroller 12 Lese-/Schreiblogik 18 und einen iterativen Decoder 20 umfassen. Lese-/Schreiblogik 18 kann so konfiguriert sein, dass sie Daten vom NVM 14 liest und Daten zum NVM 14 schreibt. Wie unten erörtert wird, können Daten vom NVM 14, z. B. von Lese-/Schreiblogik 18, auf verschiedene Weise gelesen werden, einschl. so genannter „Hard-Reads” und „Soft-Reads”. Der iterative Decoder 20 kann u. a. so konfiguriert sein, dass er Codewörter auf n Chip 16 decodiert. In verschiedenen Ausführungsformen kann der iterative Decoder 20 ein LDPC-Decoder sein, z. B. ein nicht binärer LDPC-Decoder.
  • In verschiedenen Ausführungsformen kann Speichergerät 10 so konfiguriert sein, dass es an ein Host-Computergerät (nicht dargestellt) gekoppelt ist, z. B. verschiedene Computer- und/oder Unterhaltungselektronikgeräte/-apparate, einschließlich, jedoch nicht beschränkt auf einen Desktop-, Laptop- oder Tablet-Computer. Zu diesem Zweck kann eine Schnittstelle 22 jede geeignete Schnittstelle für die Kopplung von Speichergerät 10 an das Host-Computergerät umfassen, einschließlich, jedoch nicht beschränkt auf eine Serial Advanced Technology Attachment (SATA)-Schnittstelle, eine Serial Attached SCSI (SAS)-Schnittstelle, eine Universal Serial Bus (USB)-Schnittstelle, eine Peripheral Control Interface (PCI)-Schnittstelle oder andere geeignete Geräteschnittstelle. In verschiedenen Ausführungsformen kann Schnittstelle 22 Speichergerät 10 operativ mit einem Bus 24 koppeln, der wiederum operativ mit anderen Komponenten (nicht dargestellt) des Host-Computergeräts gekoppelt sein kann. In verschiedenen Ausführungsformen kann Bus 24 ein SATA-Bus sein.
  • Beim Lesen von Daten von der Vielzahl von Chip 16 können Codewörter, die auf jedem Chip 16 gespeichert sind, decodiert werden, z. B. von einem iterativen Decoder 20 in 1. Wenn ein Versuch, Daten, die auf einem Chip 16 gespeichert sind, iterativ zu decodieren, fehlschlägt, Versuche, Daten, die auf dem restlichen Chip gespeichert sind, iterativ zu decodieren, hingegen erfolgreich ist, können nicht codierte Codewörter vom nicht ausgefallenen Chip 16 einfach mit einer XOR-Operation behandelt werden, um ein Codewort auf dem ausgefallenen Chip 16 zu rekonstruieren. Wenn jedoch mehr als ein Chip 16 fehlschlägt, ist es nicht möglich, Daten, die auf dem ausgefallenen Chip 16 gespeichert sind, mithilfe der XOR-Ergebnisse des nicht ausgefallenen Chips 16 allein zu rekonstruieren.
  • Demgemäß kann, in verschiedenen Ausführungsformen und wie in 2 dargestellt, nachdem m von n Chip ausgefallen ist, wobei m eine Ganzzahl größer 1 ist, ein iterativer Decoder (z. B. 20) so konfiguriert werden, dass er ein Codewort rekonstruiert, das auf dem ersten ausgefallenen Chip 16 (z. B. CHIP 0 in 2) gespeichert ist. Dies kann mithilfe einer Soft-Eingabe zu einem nicht erfolgreichen Versuch, die auf dem ersten Chip (CHIP 0) gespeicherten Daten, iterativ zu decodieren, und einem Seitenkanal, der aus n–m nicht ausgefallenen Chip und m ausgefallenen Chip außer CHIP 0 erzeugt wird, erfolgen. In verschiedenen Ausführungsformen kann derselbe iterative Decoder 20 verwendet werden, um ein Codewort auf einem ausgefallenen Chip zu rekonstruieren, wie in 2 dargestellt, der anfänglich verwendet wurde, um zu versuchen, Codewörter auf dem gesamten Chip 16 zu decodieren. In anderen Ausführungsformen kann es getrennte iterative Decoder geben, die diese getrennten Operationen durchführen.
  • „Hard-Information” kann sich auf einen oder mehrere Werte eines Bits oder einer Gruppe von Bits beziehen. „Soft-Information” kann sich auf die Wahrscheinlichkeit beziehen, dass Hard-Information, die mit einem Bit oder einer Gruppe von Bits verbunden ist, richtig ist (z. B. ein Konfidenzniveau). In verschiedenen Ausführungsformen kann Soft-Information in logarithmischer Form ausgedrückt werden. Für einzelne Bits kann Soft-Information als Log Likelihood Ratios oder „LLR” ausgedrückt werden. Für mehrere Bits kann Soft-Information als Log Density Ratios oder „LDR” ausgedrückt werden.
  • Ein „Seitenkanal” kann eine Vielzahl von Informationen umfassen. Wie in 2 dargestellt, kann der Seitenkanal in verschiedenen Ausführungsformen durch XORing, Bit für Bit, Bits, die mit Versuchen verbunden sind, Daten, die auf verschiedenen Chips gespeichert sind zu dekodieren, erzeugt werden, um ein Seitenkanal-Codewort zu erzeugen. Sobald das Seitenkanal-Codewort erzeugt wurde, kann es zusammen mit der Soft-Eingabe, die mit Versuchen verbunden ist, Daten, die auf dem betrachteten ausgefallenen Chip (z. B. CHIP 0) gespeichert sind, iterativ zu decodieren, in einen iterativen Decoder wie LDCP-Decoder 20 in 2 eingegeben werden
  • In verschiedenen Ausführungsformen kann der Seitenkanal mithilfe eines XOR-Ergebnisses von einer oder mehreren Hard-Eingaben von ein oder mehreren erfolgreichen Versuchen, Daten, die auf n–m nicht ausgefallenen Chip gespeichert sind, iterativ zu decodieren, Soft-Ausgaben von ein oder mehreren erfolgreichen Versuchen, Daten, die auf n–m nicht ausgefallenen Chip gespeichert sind, iterativ zu decodieren, Hard-Ausgaben von ein oder mehreren nicht erfolgreichen Versuchen, Daten, die auf m ausgefallenen Chip außer dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren, und/oder Soft-Ausgaben von ein oder mehreren nicht erfolgreichen Versuchen, Daten, die auf m ausgefallenen Chip außer dem ersten ausgefallenen Chip, gespeichert sind, iterativ zu decodieren, erzeugt werden.
  • „Soft-Ausgabe” kann sich auf die Ausgabe von Soft-Information von einem Versuch beziehen, Daten, die auf einem Chip gespeichert sind, iterativ zu decodieren (z. B. LDPC). Ein iterativer Decoder wie LDPC-Decoder 20 kann eine Reihe von LLRs ausgeben. Jedes LLR kann eine Wahrscheinlichkeit oder ein Konfidenzniveau darstellen, dass ein bestimmtes Bit eine Null oder eine Eins ist, und das Zeichen des LLR kann den tatsächlichen Bitwert (Null oder Eins) darstellen. In verschiedenen Ausführungsformen ist das Zeichen eines LLR negativ, das entsprechende Bit enthält eine Eins, und das Zeichen des LLR ist positiv, das entsprechende Bit enthält eine Null.
  • „Hard-Ausgabe” kann sich auf Hard-Information beziehen, die von einer Soft-Ausgabe aus Versuchen bestimmt wurde, Daten iterativ zu decodieren (z. B. LDPC. In verschiedenen Ausführungsformen kann die Hard-Ausgabe eines nicht erfolgreichen Versuchs, Daten, die auf einem ausgefallenen Bit gespeichert sind, iterativ zu decodieren, eine niedrigere Rohbitfehlerrate (raw bit error rate, RBER) haben, als die RBER, die mit dem ausgefallenen Chip verbunden ist, z. B. als Ergebnis eines Versuchs, das Codewort mit LDPC zu decodieren.
  • 37 stellen Beispiele dafür dar, wie verschiedene Daten, die mit Versuchen verbunden sind, Daten, die auf einem Chip gespeichert sind, iterativ zu decodieren, verwendet werden können, um einen Seitenkanal zu erzeugen. Im jeweiligen Beispiel wird angenommen, dass Versuche, Daten, die auf m von n Chip gespeichert sind, z. B. CHIP 0 und CHIP 2, iterativ zu decodieren (z. B. mithilfe von LDPC), fehlgeschlagen sind. Es wird außerdem angenommen, dass im jeweiligen Beispiel CHIP 0 der betrachtete Chip ist, z. B. der Chip, für den die Daten rekonstruiert werden.
  • Die mit X26 (z. B. 326 in 3, 426 in 4 usw.) bezeichneten Blöcke stellen Versuche dar, Daten, die auf einem bestimmten Chip gespeichert sind, iterativ zu decodieren. Der Chip ist nicht dargestellt, würde sich jedoch auf der linken Seite befinden. Eingaben zu den Versuchen X26, den Chip iterativ zu decodieren, sind als Pfeile dargestellt, die von links in die Blöcke X26 führen. Ausgaben sind als Pfeile dargestellt, die von den Blöcken X26 nach rechts führen.
  • Vor Verwendung der hierin beschriebenen Techniken kann in verschiedenen Ausführungsformen ein iterativer Decoder X20 in 37) zuerst versuchen, ein Codewort auf jedem Chip mithilfe von „Hard-Eingabe” zu decodieren. „Hard-Eingabe” kann sich auf Daten beziehen, die vom Chip „hard read” werden, was bedeutet, dass eine einzige Lesereferenzspannung auf jede Zelle (z. B. eine NAND-Zelle) des Chips angewandt wurde. Das Ergebnis ist „Hard-Information”, z. B. enthält eine SLC-Zelle entweder eine Null oder eine Eins, ohne Informationen über die Wahrscheinlichkeit, dass der Wert richtig ist.
  • Wenn der Versuch X26, Daten, die auf einem Chip gespeichert sind, mithilfe von Hard-Eingabe iterativ zu decodieren, nicht erfolgreich ist, kann in verschiedenen Ausführungsformen ein iterativer Decoder (z. B. LDPC-Decoder X20 in 37) als Nächstes versuchen, ein Codewort auf jedem Chip zuerst mithilfe von „Soft-Eingabe” zu decodieren. „Soft-Eingabe” kann sich auf Daten beziehen, die „soff read” vom Chip werden, was bedeutet, dass mehrere Lesereferenzspannungen auf jede Zelle des Chips angewandt wurde. Das Ergebnis ist „Soft-Information”, z. B. Werte, die in den Zellen gespeichert sind, und Wahrscheinlichkeiten, dass diese Werte richtig sind (z. B. Konfidenzniveau). Aufgrund der zusätzlichen Lesereferenzspannungen kann eine Soft-Eingabe oder ein Soft-Read länger als eine Hard-Eingabe oder ein Hard-Read dauern.
  • Falls einer der Versuche, Daten von einem Chip mithilfe von Hard- oder Soft-Eingabe iterativ zu decodieren, erfolgreich ist, und angenommen ein zyklischen Redundanzprüfung (cyclic redundancy check, CRC) ist richtig, kann die Soft- oder Hard-Ausgabe des erfolgreichen Versuchs, den Chip zu decodieren, als korrekt angesehen werden. Wie unten erörtert, kann diese „richtige” Hard-/Soft-Ausgabe mit anderen Daten verwendet werden, um einen Seitenkanal für die Rekonstruktion von Daten auf dem ausgefallenen Chip zu erzeugen. In 37, wo Versuche X26, Daten auf einem Chip iterativ zu decodieren, erfolgreich sind, sind die Eingabepfeile, die von links in die Blöcke X26 gehen, als „HARD/SOFT-EINGABE” bezeichnet, da es möglicherweise egal ist, welche Art von Eingabe verwendet wurde, solange der iterative Decodierversuch erfolgreich war.
  • In 3 wird der Seitenkanal mithilfe von Hard-Ausgabe von erfolgreichen Versuchen 326, Daten, die auf n–m nicht ausgefallenen Chip gespeichert waren, iterativ zu decodieren, erzeugt. Der Seitenkanal wird des Weiteren mithilfe von Hard-Eingabe zu nicht erfolgreichen Versuchen 326, Daten, die auf m ausgefallenen Chip außer dem ersten Chip gespeichert waren, iterativ zu decodieren, erzeugt. Wenn zum Beispiel eine LDPC-Decodierung eines Codeworts auf einem Chip erfolgreich ist und ein CRC des Chips ebenfalls bestanden wird, kann die Bitausgabe von der LDPC-Decodierung als Eingabe für XOR verwendet werden.
  • Wenn in 3 entweder der LDPC-Decodierversuch oder der CRC fehlschlägt, wird Hard-Eingabe für den LDPC-Decodierversuch dieses Chips stattdessen für XOR verwendet. In 3 ist ein Beispiel dafür zu sehen, wobei der LDPC-Decodierversuch 326 von CHIP 2 fehlgeschlagen ist, und Hard-Eingabe dieser LDPC-Decodierung stattdessen verwendet wird. Somit umfasst der Seitenkanal in 3 ein XOR-Ergebnis der Hard-Ausgabe der erfolgreichen Versuche, Daten, die auf n–m nicht ausgefallenen Chip gespeichert sind, iterativ zu decodieren, und Hard-Eingabe zu nicht erfolgreichen Versuchen, Daten, die auf m ausgefallenen Chip außer dem ersten Chip gespeichert sind, iterativ zu decodieren. In verschiedenen Ausführungsformen kann statt Hard-Eingabe Soft-Eingabe zu einem nicht erfolgreichen Versuch, Daten auf einem ausgefallenen Chip außer dem ersten ausgefallenen Chip, iterativ zu decodieren, stattdessen verwendet werden.
  • In verschiedenen Ausführungsformen kann der Seitenkanal auch eine effektive RBER haben. In verschiedenen Ausführungsformen kann die effektive RBER des Seitenkanals auf Basis der Ausgabe-RBER jedes der n–m nicht ausgefallenen Chip 326 und/oder des m ausgefallenen Chip berechnet werden. In verschiedenen Ausführungsformen können der Seitenkanal und sein effektiver RBER als Eingabe für einen LDPC-Decoder 320 zusammen mit einem nicht erfolgreichen Versuch, Daten, die auf dem ersten ausgefallenen Chip 326 (d. h. CHIP 0) gespeichert sind, iterativ zu decodieren, verwendet werden.
  • Das Beispiel von 4 ist ähnlich dem von 3, außer dass der Seitenkanal mithilfe von Soft-Ausgabe statt von Hard-Eingabe der erfolgreichen Versuche 426, Daten, die auf n–m nicht ausgefallenen Chip gespeichert sind, iterativ zu decodieren, erzeugt wird. Der Seitenkanal in 4 ist ein XOR-Ergebnis sowohl dieser als auch Hard-Eingabe zu nicht erfolgreichen Versuchen, Daten, die auf m ausgefallenen Chip außer dem ersten ausgefallenen Chip (z. B. CHIP 2) gespeichert waren, iterativ zu decodieren.
  • In 5 wird Hard-Ausgabe sowohl erfolgreicher als auch nicht erfolgreicher Versuche 526, Daten, die auf allen anderen Chips außer dem ersten ausgefallenen Chip (CHIP 0), einschl. des m ausgefallenen Chip (z. B. CHIP 2) iterativ zu decodieren, verwendet, um den Seitenkanal zu erzeugen. Die RBER der Ausgabe selbst eines nicht erfolgreichen Versuchs, Daten, die auf einem Chip gespeichert sind, iterativ zu decodieren, kann niedriger als die RBER des ausgefallenen Chips selbst sein.
  • 6 ist ähnlich 5, außer dass Soft-Ausgabe sowohl erfolgreicher als auch nicht erfolgreicher Versuche 626, Daten, die auf allen anderen Chips außer dem ersten ausgefallenen Chip (CHIP 0), einschl. des m ausgefallenen Chip (z. B. CHIP 2) iterativ zu decodieren, verwendet wird, um den Seitenkanal zu erzeugen. Wie bei 5 der Fall, kann die RBER der Ausgabe selbst eines nicht erfolgreichen Versuchs, Daten, die auf einem Chip gespeichert sind, iterativ zu decodieren, niedriger als die RBER des ausgefallenen Chips selbst sein.
  • In 7 wird der Seitenkanal mithilfe von Soft- und Hard-Ausgabe sowohl nicht erfolgreicher als auch erfolgreicher Versuche 726, Daten, die auf n–m nicht ausgefallenen Chip und m ausgefallenen Chip (z. B. CHIP 2) außer dem ersten ausgefallenen Chip (CHIP 0) gespeichert sind, iterativ zu decodieren, erzeugt. Außerdem werden in 7 Informationen über Trapping-Sets, die mit nicht erfolgreichen Versuchen 726, Daten, die auf einem oder mehreren m ausgefallenen Chip gespeichert sind, iterativ zu decodieren, verbunden sind, verwendet, um den Seitenkanal zu erzeugen. Ein „Trapping-Set” kann sich auf eine Sammlung variabler Knoten oder Symbole beziehen, die bei der LDPC-Decodierung nicht richtig konvergieren. Trapping-Sets können vom LDPC-Decoder 720 neben anderen Seitenkanaldaten und Soft-Eingabe zu einem nicht erfolgreichen Versuch, Daten, die auf dem betrachteten ersten ausgefallenen Chip (CHIP 0) gespeichert sind, iterativ zu decodieren, verwendet werden, um das Codewort von CHIP 0 zu rekonstruieren.
  • 8 stellt ein beispielhaftes Verfahren 800 dar, das durch einen iterativen Decoder, z. B. den iterativen Decoder 20 aus 1 oder 2 oder andere iterative Decoder (320, 420, 520, 620, 720), die hierin beschrieben werden, implementiert wird. Bei Block 802 kann der iterative Decoder 20 feststellen, dass Versuche, Daten, die auf m von n Kanälen (z. B. Chips) gespeichert sind, iterativ zu decodieren, fehlgeschlagen sind, wobei m eine Ganzzahl größer 1 ist.
  • Bei Block 804 kann der iterative Decoder 20 Seitenkanalinformationen aus n–m nicht ausgefallenen Kanälen und/oder den m ausgefallenen Kanälen außer einem ersten ausgefallenen Kanal erzeugen. Wie vorstehend beschrieben und auch in 37 dargestellt, können Seitenkanalinformationen mithilfe von verschiedenen Daten erzeugt werden, die mit den n–m nicht ausgefallenen Kanälen und/oder den m Kanälen außer dem ersten ausgefallenen Kanal verbunden sind.
  • Bei Block 806 kann der iterative Decoder 20 ein Codewort rekonstruieren, das auf dem ersten ausgefallenen Kanal der m ausgefallenen Kanäle gespeichert ist, basierend auf den erzeugten Seitenkanalinformationen und Soft-Eingabe zu einem nicht erfolgreichen Versuch, Daten, die auf dem ersten ausgefallenen Kanal gespeichert sind, iterativ zu decodieren.
  • 9 veranschaulicht ein Computergerät 900 gemäß verschiedenen Ausführungsformen. Computergerät 900 beinhaltet eine Leiterplatte (printed circuit board, PCB), 902. PCB 902 kann eine Reihe von Komponenten enthalten, einschließlich, jedoch nicht beschränkt auf einen Prozessor 904 und mindestens einen Kommunikationschip 906. Prozessor 904 kann physisch und elektronisch mit PCB 902 gekoppelt sein. In verschiedenen Ausführungsformen kann mindestens ein Kommunikationschip 906 ebenfalls physisch und elektronisch mit PCB 902 gekoppelt. In weiteren Implementierungen kann Kommunikationschip 906 Teil des Prozessors 904 sein. Als verschiedenen Ausführungsformen kann Prozessor 904 auf demselben Chip wie andere Komponenten enthalten sein, um so ein System-on-Chip (SoC) zu bilden.
  • Je nach seinen Anwendungen kann Computergerät 900 andere Komponenten enthalten, die physisch und elektrisch mit PCB 902 gekoppelt sein können oder nicht. Diese anderen Komponenten umfassen, sind jedoch nicht beschränkt auf volatilen Speicher (z. B. Dynamic Random Access Memory 908, auch als DRAM bezeichnet), nicht volatilen Speicher (z. B. Read Only Memory 910, auch als ROM bezeichnet), Flash-Speicher 912, einen Speichercontroller, 913, ein Grafikprozessor 914, einen digitalen Signalprozessor (nicht dargestellt), ein Krypto-Prozessor (nicht dargestellt), einen Chipsatz 916, eine Antenne 918, ein Display (nicht dargestellt), ein Touchscreen-Display 920, einen Touchscreen-Controller 922, eine Batterie 924, ein Audio-Codec (nicht dargestellt), ein Video-Codec (nicht dargestellt), einen Leistungsverstärker 926, ein GPS-Gerät 928, einen Kompass 930, einen Akzelerometer (nicht dargestellt), ein Gyroskop (nicht dargestellt), einen Lautsprecher 932, eine Kamera 934 und ein Massenspeichergerät (z. B. ein Festplattenlaufwerk, ein Halbleiterlaufwerk, eine Compact-Disk (CD), eine Digital-Versatile-Disk (DVD) (nicht dargestellt) usw.
  • Kommunikationschip 906 kann drahtlose und/oder kabelgebundene Kommunikation für die Übertragung von Daten zum und vom Computergerät 900 ermöglichen. Der Begriff „drahtlos” und seine Ableitungen kann 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 Begriff deutet nicht an, dass die verbundenen Geräte nicht irgendwelche Drähte enthalten, obwohl sie in einigen Ausführungsformen keine enthalten könnten. Kommunikationschip 906 kann jeden einer Reihe von Drahtlos-Standards oder -Protokollen implementieren, einschließlich, jedoch nicht beschränkt auf WLAN (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, Ableitungen davon sowie alle anderen Drahtlosprotokolle, die als 3G, 4G, 5G usw. bezeichnet werden. Computergerät 900 kann eine Vielzahl von Kommunikationschips 906 einschließen. Zum Beispiel kann ein erster Kommunikationschip 906 für drahtlose Kommunikationen mit kürzerer Reichweite wie WiFi und Bluetooth zugeordnet sein, und ein zweiter Kommunikationschip 906 kann zu drahtlosen Kommunikationen mit größerer Reichweite wie GPS, EDGE, GPRS, CDMA, WiMAX, LTE, Ev-DO und anderen zugeordnet sein.
  • Prozessor 904 des Computergerät 900 kann einen integrierten Schaltungschip beinhalten, der im Prozessor 904 verpackt ist. In verschiedenen Ausführungsformen kann der integrierte Schaltungschip von Prozessor 904 ein oder mehrere Geräte, z. B. Transistoren oder Metallleiterbahnen, enthalten, die gebildet werden, um die iterative Decodierung eines Codeworts auf einem ausgefallenen Chip mithilfe einer oder mehrerer der hierin beschriebenen Techniken zu ermöglichen. Der Begriff „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.
  • Kommunikationschip 906 kann außerdem einen integrierten Schaltungschip enthalten, der im Kommunikationschip 906 verpackt ist. In verschiedenen Ausführungsformen kann der integrierte Schaltungschip von Kommunikationschip 906 ein oder mehrere Geräte, z. B. Transistoren oder Metallleiterbahnen, enthalten, die gebildet werden, um die iterative Decodierung eines Codeworts auf einem ausgefallenen Chip mithilfe einer oder mehrerer der hierin beschriebenen Techniken zu ermöglichen.
  • In verschiedenen Ausführungsformen kann Computergerät 900 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. Bei weiteren Implementierungen kann Computergerät 900 jedes andere elektronische Gerät sein, das Daten verarbeitet.
  • System, Verfahren, computerlesbare Medien (flüchtig und nicht flüchtig), Vorrichtungen, Geräte und andere verschiedene Komponenten können konfiguriert werden, um die folgenden Ausführungsformen zu implementieren. In verschiedenen Ausführungsformen kann ein Speichercontroller so konfiguriert werden, dass er feststellt, ob bei m von n Chip des NVM die iterative Decodierung fehlgeschlagen ist, wobei m eine Ganzzahl größer 1 ist. In verschiedenen Ausführungsformen kann der Speichercontroller des Weiteren so konfiguriert werden, dass er einen Seitenkanal aus n–m ausgefallenen Chip und dem m ausgefallenen Chip außer einem ersten ausgefallenen Chip erzeugt. In verschiedenen Ausführungsformen kann der Speichercontroller des Weiteren so konfiguriert werden, dass er mithilfe iterativer Decodierung ein Codewort rekonstruiert, das auf dem ersten ausgefallenen Chip von m ausgefallenen Chip gespeichert ist, basierend auf den erzeugten Seitenkanal und Soft-Eingabe zu einem Versuch, Daten, die auf dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren. In verschiedenen Ausführungsformen kann die iterative Decodierung Low-Density Parity-Check-Decodierung umfassen. In verschiedenen Ausführungsformen kann der n–m nicht ausgefallene Chip einen XOR-Chip umfassen.
  • In verschiedenen Ausführungsformen umfasst der Seitenkanal Hard-Ausgabe der ein oder mehreren erfolgreichen Versuche, Daten, die auf dem n–m nicht ausgefallenen Chip gespeichert sind, iterativ zu decodieren. In verschiedenen Ausführungsformen kann der Seitenkanal Soft-Ausgabe der ein oder mehreren erfolgreichen Versuche, Daten, die auf dem n–m nicht ausgefallenen Chip gespeichert sind, iterativ zu decodieren, umfassen. In verschiedenen Ausführungsformen kann der Seitenkanal Hard-Ausgabe der ein oder mehreren nicht erfolgreichen Versuche, Daten, die auf dem m nicht ausgefallenen Chip außer dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren, umfassen. In verschiedenen Ausführungsformen kann der Seitenkanal Soft-Ausgabe der ein oder mehreren nicht erfolgreichen Versuche, Daten, die auf dem m nicht ausgefallenen Chip außer dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren, umfassen.
  • In verschiedenen Ausführungsformen kann der Seitenkanal Soft-Eingabe zu ein oder mehreren Versuche, Daten, die auf dem m nicht ausgefallenen Chip außer dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren, umfassen. In verschiedenen Ausführungsformen kann der Seitenkanal Hard-Eingabe zu ein oder mehreren Versuche, Daten, die auf dem m nicht ausgefallenen Chip außer dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren, umfassen. In verschiedenen Ausführungsformen kann der Seitenkanal Soft-Ausgabe der ein oder mehreren Versuche, Daten, die auf dem m ausgefallenen Chip außer dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren, sowie Informationen über Trapping-Sets, die mit m ausgefallenen Chip außer dem ersten ausgefallenen Chip verbunden sind, umfassen.
  • Auch wenn hierin für den Zweck der Beschreibung bestimmte Ausführungsformen veranschaulicht und beschrieben wurden, können eine Vielzahl von alternativen und/oder gleichartigen Ausführungsformen und Implementierungen, die berechnet werden, um dieselben Zwecke zu erreichen, die gezeigten und beschriebenen Ausführungsformen ersetzen, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Diese Anmeldung soll alle Anpassungen oder Varianten der hier besprochenen Ausführungsformen abdecken. Deshalb wird ausdrücklich hervorgehoben, dass hierin beschriebene Ausführungsformen nur durch die Ansprüche und deren Gleichwerte eingegrenzt ist.

Claims (35)

  1. Vorrichtung, umfassend: nicht volatilen Speicher, umfassend n Chip, wobei n eine positive Ganzzahl ist, einen Speichercontroller, der konfiguriert ist, um: festzustellen, ob bei m von n Chip die iterative Decodierung fehlgeschlagen ist, wobei m eine Ganzzahl größer 1 ist, einen Seitenkanal aus n–m nicht ausgefallenen Chip und m ausgefallenen Chip außer einem ersten ausgefallenen Chip zu erzeugen, und mithilfe iterativer Decodierung ein Codewort zu rekonstruieren, das auf dem ersten ausgefallenen Chip von m ausgefallenen Chip gespeichert ist, basierend auf dem erzeugten Seitenkanal und Soft-Eingabe zu einem Versuch, Daten, die auf dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren.
  2. Vorrichtung nach Anspruch 1, wobei die iterative Decodierung Low-Density Parity-Check-Decodierung umfasst.
  3. Vorrichtung nach Anspruch 1, wobei n–m nicht ausgefallene Chip einen XOR-Chip umfasst.
  4. Vorrichtung nach Anspruch 1, wobei der Seitenkanal Hard-Ausgabe der ein oder mehreren erfolgreichen Versuche umfasst, Daten, die auf n–m nicht ausgefallenen Chip gespeichert sind, iterativ zu decodieren.
  5. Vorrichtung nach Anspruch 1, wobei der Seitenkanal Soft-Ausgabe der ein oder mehreren erfolgreichen Versuche umfasst, Daten, die auf n–m nicht ausgefallenen Chip gespeichert sind, iterativ zu decodieren.
  6. Vorrichtung nach einem der Ansprüche 1–5, wobei der Seitenkanal Hard-Ausgabe der ein oder mehreren nicht erfolgreichen Versuche umfasst, Daten, die auf m nicht ausgefallenen Chip außer dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren.
  7. Vorrichtung nach einem der Ansprüche 1–5, wobei der Seitenkanal Soft-Ausgabe der ein oder mehreren nicht erfolgreichen Versuche umfasst, Daten, die auf m nicht ausgefallenen Chip außer dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren.
  8. Vorrichtung nach einem der Ansprüche 1–5, wobei der Seitenkanal des Weiteren Soft-Eingabe zu ein oder mehreren Versuchen umfasst, Daten, die auf m nicht ausgefallenen Chip außer dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren.
  9. Vorrichtung nach einem der Ansprüche 1–5, wobei der Seitenkanal des Weiteren Hard-Eingabe zu ein oder mehreren Versuchen umfasst, Daten, die auf m nicht ausgefallenen Chip außer dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren.
  10. Vorrichtung nach einem der Ansprüche 1–5, wobei der Seitenkanal Soft-Ausgabe der ein oder mehreren nicht erfolgreichen Versuche umfasst, Daten, die auf m ausgefallenen Chip außer dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren, sowie Informationen über Trapping-Sets, die mit m ausgefallenen Chip außer dem ersten ausgefallenen Chip verbunden sind.
  11. Computerimplementiertes Verfahren, umfassend: Feststellung durch einen Speichercontroller, ob bei m von n Chip die iterative Decodierung fehlgeschlagen ist, wobei m eine Ganzzahl größer 1 ist, und Rekonstruktion, durch den Speichercontroller, eines Codeworts, das auf einem ersten ausgefallenen Chip von m ausgefallenen Chip auf Basis des Seitenkanals, der aus n–m nicht ausgefallenen Chip und m ausgefallenen Chip außer dem ersten ausgefallenen Chip erzeugt wurde, und Soft-Eingabe zu einem Versuch, Daten, die auf dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren
  12. Computerimplementiertes Verfahren nach Anspruch 11, wobei die iterative Decodierung Low-Density Parity-Check-Decodierung umfasst.
  13. Computerimplementiertes Verfahren nach Anspruch 11, wobei n–m nicht ausgefallene Chip einen XOR-Chip umfasst.
  14. Computerimplementiertes Verfahren nach Anspruch 11, wobei der Seitenkanal Hard-Ausgabe der ein oder mehreren erfolgreichen Versuche umfasst, Daten, die auf n–m nicht ausgefallenen Chip gespeichert sind, iterativ zu decodieren.
  15. Computerimplementiertes Verfahren nach Anspruch 11, wobei der Seitenkanal Soft-Ausgabe der ein oder mehreren erfolgreichen Versuche umfasst, Daten, die auf n–m nicht ausgefallenen Chip gespeichert sind, iterativ zu decodieren.
  16. Computerimplementiertes Verfahren nach einem der Ansprüche 11–15, wobei der Seitenkanal Hard-Ausgabe der ein oder mehreren nicht erfolgreichen Versuche umfasst, Daten, die auf m nicht ausgefallenen Chip außer dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren.
  17. Computerimplementiertes Verfahren nach einem der Ansprüche 11–15, wobei der Seitenkanal Soft-Ausgabe der ein oder mehreren nicht erfolgreichen Versuche umfasst, Daten, die auf m nicht ausgefallenen Chip außer dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren.
  18. Computerimplementiertes Verfahren nach einem der Ansprüche 11–15, wobei der Seitenkanal des Weiteren Soft-Eingabe zu ein oder mehreren Versuchen umfasst, Daten, die auf m nicht ausgefallenen Chip außer dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren.
  19. Computerimplementiertes Verfahren nach einem der Ansprüche 11–15, wobei der Seitenkanal des Weiteren Hard-Eingabe zu ein oder mehreren Versuchen umfasst, Daten, die auf m nicht ausgefallenen Chip außer dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren.
  20. Computerimplementiertes Verfahren nach einem der Ansprüche 11–15, wobei der Seitenkanal Soft-Ausgabe der ein oder mehreren nicht erfolgreichen Versuche umfasst, Daten, die auf m ausgefallenen Chip außer dem ersten ausgefallenen Chip gespeichert sind, iterativ zu decodieren, sowie Informationen über Trapping-Sets, die mit dem m ausgefallenen Chip außer dem ersten ausgefallenen Chip verbunden sind.
  21. Mindestens ein maschinenlesbares Medium, das aus einer Vielzahl von Befehlen besteht, die als Reaktion auf die Ausführung auf einem Computergerät das Computergerät veranlassen, ein Verfahren gemäß eines Verfahrens nach einem der Ansprüche 11–15 auszuführen.
  22. Vorrichtung, die so konfiguriert ist, dass sie das Verfahren nach einem der Ansprüche 11–15 ausführt.
  23. System, umfassend: n Kanäle mit Daten und einen iterativen Decoder, der konfiguriert ist, um: festzustellen, ob m von n Kanäle fehlgeschlagene Versuche der iterative Decodierung von Daten haben, die darauf gespeichert sind, wobei m eine Ganzzahl größer 1 ist, einen Seitenkanal aus n–m nicht ausgefallenen Kanälen und m ausgefallenen Kanälen außer einem ersten ausgefallenen Kanal zu erzeugen, und ein Codewort zu rekonstruieren, das auf dem ersten ausgefallenen Kanal der m ausgefallenen Kanäle gespeichert ist, basierend auf dem erzeugten Seitenkanal und Soft-Eingabe zu einem Versuch, Daten, die auf dem ersten ausgefallenen Kanal gespeichert sind, iterativ zu decodieren.
  24. System nach Anspruch 23, wobei der iterative Decoder einen Low-Density Parity-Check-Decoder umfasst.
  25. System nach Anspruch 23, wobei n–m nicht ausgefallene Kanäle einen XOR-Kanal umfassen.
  26. System nach Anspruch 23, wobei der Seitenkanal Hard-Ausgabe der ein oder mehreren erfolgreichen Versuche umfasst, Daten, die auf n–m nicht ausgefallenen Kanälen gespeichert sind, iterativ zu decodieren.
  27. System nach Anspruch 23, wobei der Seitenkanal Soft-Ausgabe der ein oder mehreren erfolgreichen Versuche umfasst, Daten, die auf n–m nicht ausgefallenen Kanälen gespeichert sind, iterativ zu decodieren.
  28. System nach einem der Ansprüche 23–27, wobei der Seitenkanal Hard-Ausgabe der ein oder mehreren nicht erfolgreichen Versuche umfasst, Daten, die auf m nicht ausgefallenen Kanälen außer dem ersten ausgefallenen Kanal gespeichert sind, iterativ zu decodieren.
  29. System nach einem der Ansprüche 23–27, wobei der Seitenkanal Soft-Ausgabe der ein oder mehreren nicht erfolgreichen Versuche umfasst, Daten, die auf m nicht ausgefallenen Kanälen außer dem ersten ausgefallenen Kanal gespeichert sind, iterativ zu decodieren.
  30. System nach einem der Ansprüche 23–27, wobei der Seitenkanal Soft-Eingabe zu ein oder mehreren iterativen Versuchen umfasst, Daten, die auf m nicht ausgefallenen Kanälen außer dem ersten ausgefallenen Kanal gespeichert sind, iterativ zu decodieren.
  31. System nach einem der Ansprüche 23–27, wobei der Seitenkanal Hard-Eingabe zu ein oder mehreren iterativen Versuchen umfasst, Daten, die auf m nicht ausgefallenen Kanälen außer dem ersten ausgefallenen Kanal gespeichert sind, iterativ zu decodieren.
  32. System nach einem der Ansprüche 23–27, wobei der Seitenkanal Soft-Ausgabe der ein oder mehreren nicht erfolgreichen Versuche umfasst, Daten, die auf m ausgefallenen Kanälen außer dem ersten ausgefallenen Kanal gespeichert sind, iterativ zu decodieren, sowie Informationen über Trapping-Sets, die mit m ausgefallenen Kanälen außer dem ersten ausgefallenen Kanal verbunden sind.
  33. System nach einem der Ansprüche 23–27, des Weiteren umfassend ein Touchscreen-Display.
  34. System nach einem der Ansprüche 23–27, des Weiteren umfassend eine Kamera.
  35. System nach einem der Ansprüche 23–27, wobei der n Kanäle n Chip umfasst.
DE112012006153.5T 2012-03-28 2012-03-28 Rekonstruktion von Codewörtern unter Verwendung eines Seitenkanals Active DE112012006153B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/031032 WO2013147775A1 (en) 2012-03-28 2012-03-28 Reconstructing codewords using a side channel

Publications (2)

Publication Number Publication Date
DE112012006153T5 true DE112012006153T5 (de) 2014-12-18
DE112012006153B4 DE112012006153B4 (de) 2021-09-23

Family

ID=49260840

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012006153.5T Active DE112012006153B4 (de) 2012-03-28 2012-03-28 Rekonstruktion von Codewörtern unter Verwendung eines Seitenkanals

Country Status (4)

Country Link
US (1) US9043681B2 (de)
CN (1) CN104247273B (de)
DE (1) DE112012006153B4 (de)
WO (1) WO2013147775A1 (de)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9298552B2 (en) * 2013-09-27 2016-03-29 Intel Corporation Using read values from previous decoding operations to calculate soft bit information in an error recovery operation
US9588841B2 (en) * 2014-09-26 2017-03-07 Intel Corporation Using reliability information from multiple storage units and a parity storage unit to recover data for a failed one of the storage units
US9564239B2 (en) 2015-03-16 2017-02-07 Sk Hynix Memory Solutions Inc. Memory controller and operating method thereof
US10033411B2 (en) 2015-11-20 2018-07-24 Intel Corporation Adjustable error protection for stored data
KR102673873B1 (ko) * 2016-06-30 2024-06-10 삼성전자주식회사 데이터 복구 방법 및 이를 적용하는 메모리 시스템 및 레이드 스토리지 시스템
US10496829B2 (en) * 2017-09-15 2019-12-03 Alibaba Group Holding Limited Method and system for data destruction in a phase change memory-based storage device
US10817373B2 (en) * 2017-11-21 2020-10-27 SK Hynix Inc. Soft chip-kill recovery using concatenated codes
US10691540B2 (en) * 2017-11-21 2020-06-23 SK Hynix Inc. Soft chip-kill recovery for multiple wordlines failure
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10831404B2 (en) 2018-02-08 2020-11-10 Alibaba Group Holding Limited Method and system for facilitating high-capacity shared memory using DIMM from retired servers
US11379155B2 (en) 2018-05-24 2022-07-05 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US11816043B2 (en) 2018-06-25 2023-11-14 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of I/O requests
US10824502B2 (en) * 2018-08-08 2020-11-03 Micron Technology, Inc. Enhanced codeword for media persistence and diagnostics
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11042307B1 (en) 2020-01-13 2021-06-22 Alibaba Group Holding Limited System and method for facilitating improved utilization of NAND flash based on page-wise operation
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US10923156B1 (en) 2020-02-19 2021-02-16 Alibaba Group Holding Limited Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive
US10872622B1 (en) 2020-02-19 2020-12-22 Alibaba Group Holding Limited Method and system for deploying mixed storage products on a uniform storage infrastructure
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11144250B2 (en) 2020-03-13 2021-10-12 Alibaba Group Holding Limited Method and system for facilitating a persistent memory-centric system
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7643558B2 (en) * 2003-03-24 2010-01-05 Qualcomm Incorporated Method, apparatus, and system for encoding and decoding side information for multimedia transmission
CN101478378A (zh) * 2003-06-18 2009-07-08 日本电信电话株式会社 无线分组通信方法
US7398454B2 (en) 2004-12-21 2008-07-08 Tyco Telecommunications (Us) Inc. System and method for forward error correction decoding using soft information
JP4212567B2 (ja) 2005-03-31 2009-01-21 株式会社東芝 受信装置および復調方法
US7783958B1 (en) * 2005-11-03 2010-08-24 Entropic Communications, Inc. Broadband satellite system for the simultaneous reception of multiple channels using shared iterative decoder
US8069397B2 (en) * 2006-07-10 2011-11-29 Broadcom Corporation Use of ECC with iterative decoding for iterative and non-iterative decoding in a read channel for a disk drive
US8315306B2 (en) * 2006-09-08 2012-11-20 The Texas A&M University System Distributed joint source-channel coding of video using raptor codes
US8335977B2 (en) * 2007-12-05 2012-12-18 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated BCH codes and/or designation of “first below” cells
EP2269338B1 (de) * 2008-03-31 2015-09-16 Marvell World Trade Ltd. Verfahren und vorrichtung zum selektiven kombinieren und dekodieren der mehreren codeblöcke eines transportblocks
EP2282433A1 (de) * 2009-08-04 2011-02-09 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zur Wiederherstellung von verlorenen bzw. beschädigten Daten
US8615700B2 (en) 2009-08-18 2013-12-24 Viasat, Inc. Forward error correction with parallel error detection for flash memories
JP5039160B2 (ja) * 2010-03-02 2012-10-03 株式会社東芝 不揮発性半導体記憶システム
KR101670511B1 (ko) * 2010-05-07 2016-10-28 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호/복호 방법 및 장치

Also Published As

Publication number Publication date
WO2013147775A1 (en) 2013-10-03
CN104247273B (zh) 2017-05-17
US20130318395A1 (en) 2013-11-28
US9043681B2 (en) 2015-05-26
DE112012006153B4 (de) 2021-09-23
CN104247273A (zh) 2014-12-24

Similar Documents

Publication Publication Date Title
DE112012006153B4 (de) Rekonstruktion von Codewörtern unter Verwendung eines Seitenkanals
DE112012006014B4 (de) Verteilte Codewortteile
DE102017001420B4 (de) Redundanz von fehlerkorrekturcodierten daten in einem speichersystem
DE102016003366B4 (de) Lesepegelgruppierung für erhöhte flash-leistung
DE112016004629T5 (de) Datencodiertechniken für eine Vorrichtung
US9317365B2 (en) Soft decoding of polar codes
DE102015201384B4 (de) Vorrichtung und Verfahren zum Verbessern der Datenspeicherung durch Dateninvertierung
DE112011101116B4 (de) Two-Level BCH-Codes für Solid-State-Speichereinheiten
DE102017120961A1 (de) ECC- und Leseeinstellung basierend auf der dynamischen Schätzung eines Speicherfehlermodells
DE102017117066A1 (de) Nichtbinäre codierung für einen nichtflüchtigen speicher
DE112019000167T5 (de) Anpassbare Lesewiederholungsreihenfolge basierend auf einem Decodierungserfolgstrend
DE102013103391A1 (de) Betriebsverfahren eines Controllers, der eine nichtflüchtige Speichervorrichtung steuert, und Mappingmuster-Auswahlverfahren zum Auswählen eines Mappingmusters, das ein polar codiertes Codewort Multibitdaten einer nichtflüchtigen Speichervorrichtung zuordnet
DE102008003113A1 (de) ECC-Steuereinheit, Speichersystem und Verfahren zur Korrektur eines Fehlers
DE102018123926A1 (de) Dynamische mehrstufige Decodierung
DE102018214010A1 (de) Verfahren und Vorrichtung zur Reduzierung von unbemerkten Datenfehlern in nichtflüchtigen Speichersystemen
DE112014002870T5 (de) Kombinations-Fehler- und Löschdecodierung für Produktcodes
DE102018105434A1 (de) Verfahren und System zum Abtasten von gelöschten Flashspeicherseiten mit Querverweis auf verwandte Anwendungen
US10621035B2 (en) Techniques for correcting data errors in memory devices
DE112015003569B4 (de) Verfahren und System zum Verwenden von NAND-Seitenpuffern, um die Übertragungspuffernutzung eines Festkörperlaufwerks zu verbessern
US10396817B2 (en) Priori information based post-processing in low-density parity-check code decoders
DE102020110856A1 (de) Komprimierung von fehlervektoren zur dekodierung von logik zum komprimierten speichern in einem dekodiererspeicher, verwendet von der dekodierungs-logik
DE102019105876A1 (de) Einseitige soft-lesevorgänge
CN105468471A (zh) 固态存储装置及其错误更正方法
DE112017005197T5 (de) Hybrid-Komprimierungsschema zur effizienten Speicherung synaptischer Gewichte in neuromorphen Hardware-Kernen
DE102022209756A1 (de) Speichervorrichtung und speichersystem zum programmieren von daten

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20140929

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R081 Change of applicant/patentee

Owner name: SK HYNIX NAND PRODUCT SOLUTIONS CORP., SAN JOS, US

Free format text: FORMER OWNER: INTEL CORP., SANTA CLARA, CALIF., US