MLchartDataset catalogue

Patent · US11387848B1 · B1 · US

Hierarchical error correction code

(11) Publication number
US11387848B1
(21) Application number
17/198,528
(22) Filing date
2021-03-11
(30) Priority date
2021-03-11
(43) Publication date
2022-07-12
(45) Date of grant
2022-07-12
(51) IPC
G06F 11/10; H03M 13/00; H03M 13/15; H03M 13/29; H03M 13/37
(52) CPC
  • H03M Coding; decoding; code conversion in general: 13/3707, 13/13, 13/1515, 13/152, 13/2906, 13/2909
  • G06F Electric digital data processing: 11/1012, 11/1048, 11/1068, 3/0619, 3/0679
  • G11C Static stores: 29/42
(73) Assignee
Samsung Electronics Co Ltd
(72) Inventors
Amit Berman; Ariel Doubchak
(54) Title
Hierarchical error correction code
(57) Abstract

Embodiments of the present disclosure provide a controller hierarchical decoding architecture. For instance, multiple decoder hierarchies are implemented along with use of hierarchies of codes with locality (e.g., larger code length of a hierarchy is composed of local codes from a lower hierarchy). The hierarchical Error Correction Code (ECC) decoding includes multiple hierarchies such as a first hierarchy, a second hierarchy, and additional hierarchies as needed. A first hierarchy includes low-complexity ECC engines, each connected to a NAND channel for computing local codes of low code lengths. A second hierarchy includes higher complexity ECC engines that shares several NAND channels for correcting corrupt data using relatively larger code length (e.g., and the higher complexity ECC engines of the second hierarchy performs decoding operations using more complex decoding algorithms). The larger code length is composed of local codes from a previous hierarchy.

Full text
View on Google Patents

Claims (20)

  1. A method for flash memory error code correction, comprising: reading a first codeword from a first location of a memory device; performing a first decoding process on the first codeword using a first decoder; determining that the first codeword failed the first decoding process; combining the first codeword and a second codeword to form a first combined codeword based on the determination that the first codeword failed the first decoding process; and performing a second decoding process on the first combined codeword using a second decoder.
  2. The method of claim 1, further comprising: determining that the first combined codeword failed the second decoding process; combining a third codeword and a fourth codeword to form a second combined codeword; combining the first combined codeword and the second combined codeword to form a third combined codeword; and performing a third decoding process on the third combined codeword using a third decoder.
  3. The method of claim 1, wherein: the memory device comprises a NAND memory device.
  4. The method of claim 1, wherein: the first codeword and the second codeword are read from a same word line of the memory device.
  5. The method of claim 4, wherein: the first codeword and the second codeword are read from a same page of the memory device.
  6. The method of claim 1, wherein: the first decoding process is performed based on a first algorithm, and the second decoding process is performed based on a second algorithm having a high complexity than the first algorithm.
  7. The method of claim 1, wherein: the first decoding process is based on a Generalized Concatenated code (GCC) comprising an inner polar code and an outer Reed-Solomon (RS) code.
  8. The method of claim 1, wherein: the first decoding process is based on a Generalized Tensor Product code (GTP) comprising an inner Bose-Chaudhuri-Hocquenghem (BCH) code and an outer Reed-Solomon (RS) code.
  9. The method of claim 1, wherein: the first codeword comprises first error correction bits for the first decoding process and second error correction bits for the second decoding process.
  10. The method of claim 9, wherein: the second codeword comprises third error correction bits for the second decoding process.
  11. The method of claim 1, further comprising: encoding first data and second data separately using a first encoding process; and encoding the first data and the second data together using a second encoding process, wherein the first codeword corresponds to the first data and the second codeword corresponds to the second data.
  12. The method of claim 1, further comprising: combining the first codeword and the second codeword with a third codeword and a fourth codeword to form the first combined codeword.
  13. A method for flash memory error code correction, comprising: receiving data for storage in a memory device; generating a combined codeword based on an inner coding scheme and an outer coding scheme, wherein a first portion of the combined codeword and a second portion of the combined codeword are encoded using the inner coding scheme and using the outer coding scheme; and storing the first portion of the combined codeword at a first location of the memory device and the second portion of the combined codeword at a second location of the memory device.
  14. The method of claim 13, wherein: the first location and the second location correspond to different bit lines within a same logical page of the memory device.
  15. The method of claim 13, wherein: the inner coding scheme comprises a polar coding scheme; the outer coding scheme comprises a Reed-Solomon (RS) coding scheme; and the combined codeword is generated based on feedback comprising frozen bits.
  16. The method of claim 13, wherein: the inner coding scheme comprises a Bose-Chaudhuri-Hocquenghem (BCH) coding scheme; the outer coding scheme comprises a Reed-Solomon (RS) coding scheme; and the combined codeword is generated based on feedback comprising delta syndrome bits.
  17. An apparatus for flash memory error code correction, comprising: a memory device; a first decoder configured to perform a first decoding process on a first codeword read from the memory device; and a second decoder configured to perform a second decoding process on a first combined codeword comprising the first codeword and a second codeword read from the memory device when the first codeword fails the first decoding process.
  18. The apparatus of claim 17, further comprising: a third decoder configured to perform a third decoding process on a third combined codeword comprising the first combined codeword and a second combined codeword when the first combined codeword fails the second decoding process, wherein the second combined codeword comprises a third codeword and a fourth codeword read from the memory device.
  19. The apparatus of claim 17, further comprising: a first encoder configured to encode first data and second data separately; and a second encoder configured to encode the first data and the second data together.
  20. The apparatus of claim 19, further comprising: a third encoder configured to encode the first and second data together with third data and fourth data, wherein the third data and the fourth data are encoded by the first encoder, and wherein the third data and the fourth data are encoded by the second encoder.

Description

The following relates generally to memory devices, and more specifically to flash memory error code correction.

Memory devices are commonly used electronic components for storing data. NAND flash memory devices allow several bits of data to be stored in each memory cell, providing improvements in manufacturing costs and performance. A memory cell in which multiple bits of data are stored may be referred to as a multi-level memory cell. A multi-level memory cell partitions a threshold voltage range of a memory cell into several voltage states, and data values written to the memory cell are extracted using the memory cell voltage levels.

In some cases, data may be encoded prior to programming to a memory device in order to provide the ability to correct for read errors. However, many decoders assume an additive white Gaussian noise (AWGN) model, but the noise introduced by Flash memory cells may not be consistent with an AWGN model. Furthermore, decoding a polar decoding scheme can be computationally intensive. For instance, VNAND devices increase a number of layers and increase bits per-cells modulation on the NAND (e.g., via vertical stacking of NAND devices). Such may cause a decrease in a NAND signal to noise ratio (SNR) and demand stronger error-correction mechanisms. Therefore, there is a need in the art for improved systems and methods for decoding information stored in a memory device.

A method, apparatus, non-transitory computer readable medium, and system for hierarchical error code correction are described.

Citations (12)

  • US20090241008A1
  • US20090241009A1
  • US20100253555A1
  • US8850296B2
  • US20110258514A1
  • US20120300873A1
  • US10797728B1
  • US20140129896A1
  • US20170272102A1
  • US20180091172A1
  • US20190173495A1
  • US20200412386A1
Record as JSON
{
  "publication_number": "US11387848B1",
  "country": "US",
  "kind": "B1",
  "title": "Hierarchical error correction code",
  "abstract": "Embodiments of the present disclosure provide a controller hierarchical decoding architecture. For instance, multiple decoder hierarchies are implemented along with use of hierarchies of codes with locality (e.g., larger code length of a hierarchy is composed of local codes from a lower hierarchy). The hierarchical Error Correction Code (ECC) decoding includes multiple hierarchies such as a first hierarchy, a second hierarchy, and additional hierarchies as needed. A first hierarchy includes low-complexity ECC engines, each connected to a NAND channel for computing local codes of low code lengths. A second hierarchy includes higher complexity ECC engines that shares several NAND channels for correcting corrupt data using relatively larger code length (e.g., and the higher complexity ECC engines of the second hierarchy performs decoding operations using more complex decoding algorithms). The larger code length is composed of local codes from a previous hierarchy.",
  "claims": [
    "1. A method for flash memory error code correction, comprising: reading a first codeword from a first location of a memory device; performing a first decoding process on the first codeword using a first decoder; determining that the first codeword failed the first decoding process; combining the first codeword and a second codeword to form a first combined codeword based on the determination that the first codeword failed the first decoding process; and performing a second decoding process on the first combined codeword using a second decoder.",
    "2. The method of claim 1, further comprising: determining that the first combined codeword failed the second decoding process; combining a third codeword and a fourth codeword to form a second combined codeword; combining the first combined codeword and the second combined codeword to form a third combined codeword; and performing a third decoding process on the third combined codeword using a third decoder.",
    "3. The method of claim 1, wherein: the memory device comprises a NAND memory device.",
    "4. The method of claim 1, wherein: the first codeword and the second codeword are read from a same word line of the memory device.",
    "5. The method of claim 4, wherein: the first codeword and the second codeword are read from a same page of the memory device.",
    "6. The method of claim 1, wherein: the first decoding process is performed based on a first algorithm, and the second decoding process is performed based on a second algorithm having a high complexity than the first algorithm.",
    "7. The method of claim 1, wherein: the first decoding process is based on a Generalized Concatenated code (GCC) comprising an inner polar code and an outer Reed-Solomon (RS) code.",
    "8. The method of claim 1, wherein: the first decoding process is based on a Generalized Tensor Product code (GTP) comprising an inner Bose-Chaudhuri-Hocquenghem (BCH) code and an outer Reed-Solomon (RS) code.",
    "9. The method of claim 1, wherein: the first codeword comprises first error correction bits for the first decoding process and second error correction bits for the second decoding process.",
    "10. The method of claim 9, wherein: the second codeword comprises third error correction bits for the second decoding process.",
    "11. The method of claim 1, further comprising: encoding first data and second data separately using a first encoding process; and encoding the first data and the second data together using a second encoding process, wherein the first codeword corresponds to the first data and the second codeword corresponds to the second data.",
    "12. The method of claim 1, further comprising: combining the first codeword and the second codeword with a third codeword and a fourth codeword to form the first combined codeword.",
    "13. A method for flash memory error code correction, comprising: receiving data for storage in a memory device; generating a combined codeword based on an inner coding scheme and an outer coding scheme, wherein a first portion of the combined codeword and a second portion of the combined codeword are encoded using the inner coding scheme and using the outer coding scheme; and storing the first portion of the combined codeword at a first location of the memory device and the second portion of the combined codeword at a second location of the memory device.",
    "14. The method of claim 13, wherein: the first location and the second location correspond to different bit lines within a same logical page of the memory device.",
    "15. The method of claim 13, wherein: the inner coding scheme comprises a polar coding scheme; the outer coding scheme comprises a Reed-Solomon (RS) coding scheme; and the combined codeword is generated based on feedback comprising frozen bits.",
    "16. The method of claim 13, wherein: the inner coding scheme comprises a Bose-Chaudhuri-Hocquenghem (BCH) coding scheme; the outer coding scheme comprises a Reed-Solomon (RS) coding scheme; and the combined codeword is generated based on feedback comprising delta syndrome bits.",
    "17. An apparatus for flash memory error code correction, comprising: a memory device; a first decoder configured to perform a first decoding process on a first codeword read from the memory device; and a second decoder configured to perform a second decoding process on a first combined codeword comprising the first codeword and a second codeword read from the memory device when the first codeword fails the first decoding process.",
    "18. The apparatus of claim 17, further comprising: a third decoder configured to perform a third decoding process on a third combined codeword comprising the first combined codeword and a second combined codeword when the first combined codeword fails the second decoding process, wherein the second combined codeword comprises a third codeword and a fourth codeword read from the memory device.",
    "19. The apparatus of claim 17, further comprising: a first encoder configured to encode first data and second data separately; and a second encoder configured to encode the first data and the second data together.",
    "20. The apparatus of claim 19, further comprising: a third encoder configured to encode the first and second data together with third data and fourth data, wherein the third data and the fourth data are encoded by the first encoder, and wherein the third data and the fourth data are encoded by the second encoder."
  ],
  "description_excerpt": "The following relates generally to memory devices, and more specifically to flash memory error code correction.\n\nMemory devices are commonly used electronic components for storing data. NAND flash memory devices allow several bits of data to be stored in each memory cell, providing improvements in manufacturing costs and performance. A memory cell in which multiple bits of data are stored may be referred to as a multi-level memory cell. A multi-level memory cell partitions a threshold voltage range of a memory cell into several voltage states, and data values written to the memory cell are extracted using the memory cell voltage levels.\n\nIn some cases, data may be encoded prior to programming to a memory device in order to provide the ability to correct for read errors. However, many decoders assume an additive white Gaussian noise (AWGN) model, but the noise introduced by Flash memory cells may not be consistent with an AWGN model. Furthermore, decoding a polar decoding scheme can be computationally intensive. For instance, VNAND devices increase a number of layers and increase bits per-cells modulation on the NAND (e.g., via vertical stacking of NAND devices). Such may cause a decrease in a NAND signal to noise ratio (SNR) and demand stronger error-correction mechanisms. Therefore, there is a need in the art for improved systems and methods for decoding information stored in a memory device.\n\nA method, apparatus, non-transitory computer readable medium, and system for hierarchical error code correction are described.",
  "cpc": [
    "H03M 13/3707",
    "G06F 11/1012",
    "G06F 11/1048",
    "G06F 11/1068",
    "G06F 3/0619",
    "G06F 3/0679",
    "G11C 29/42",
    "H03M 13/13",
    "H03M 13/1515",
    "H03M 13/152",
    "H03M 13/2906",
    "H03M 13/2909"
  ],
  "ipc": [
    "G06F 11/10",
    "H03M 13/00",
    "H03M 13/15",
    "H03M 13/29",
    "H03M 13/37"
  ],
  "assignees": [
    "Samsung Electronics Co Ltd"
  ],
  "inventors": [
    "Amit Berman",
    "Ariel Doubchak"
  ],
  "filing_date": "2021-03-11",
  "publication_date": "2022-07-12",
  "grant_date": "2022-07-12",
  "priority_date": "2021-03-11",
  "application_number": "US-202117198528-A",
  "family_id": "82323897",
  "cited_by_count": 11,
  "citations": [
    "US20090241008A1",
    "US20090241009A1",
    "US20100253555A1",
    "US8850296B2",
    "US20110258514A1",
    "US20120300873A1",
    "US10797728B1",
    "US20140129896A1",
    "US20170272102A1",
    "US20180091172A1",
    "US20190173495A1",
    "US20200412386A1"
  ]
}

Record 1,107 of 8,000 in Patents full text (MLC-0201). Request the full dataset.