Reading-threshold setting based on data encoded with a multi-component code

US9971646B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9971646-B2
Application numberUS-201615169825-A
CountryUS
Kind codeB2
Filing dateJun 1, 2016
Priority dateJun 1, 2016
Publication dateMay 15, 2018
Grant dateMay 15, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A storage device includes a memory that includes storage circuitry and a memory including multiple memory cells. The storage circuitry is configured to store in a group of the memory cells data that was encoded using an error correcting code (ECC) consisting of multiple component codes, to define multiple threshold settings, each specifying positions of one or more reading-thresholds, to read the data from the memory cells in the group using the threshold settings and decode the read data using the component codes, to calculate for the component codes respective component-code scores that are indicative of levels of confidence in the decoded data of the component-codes, to select, based on the component-code scores, a threshold setting that is expected to result in a best readout performance among the multiple threshold settings, and to read data from the memory using the selected threshold setting.

First claim

Opening claim text (preview).

The invention claimed is: 1. A storage device, comprising: a nonvolatile memory comprising multiple memory cells, configured to store data by setting the memory cells to analog voltages representative of respective storage values; and storage circuitry, which is configured to: store in a group of the memory cells encoded data that was encoded by an encoder using an error correcting code (ECC), wherein the ECC comprises M component codes and wherein each of the component codes corrects up to a predefined number of correctable errors; define N threshold settings, each threshold setting specifying positions of one or more reading-thresholds on a threshold-voltage axis; read the encoded data from the group of the memory cells using each of the threshold settings to produce N respective readouts, by comparing the analog voltages of the memory cells in the group to the reading-thresholds of the respective threshold settings; decode each of the N readouts using each of the M component codes of the ECC, so as to produce M decoded readouts corresponding respectively to each threshold setting, including attempting to decode at least one of the M component codes by considering error patterns having a number of errors above the respective number of correctable errors; calculate for the N threshold settings, N respective threshold-setting scores, by calculating for each threshold setting M component-code scores that are indicative of levels of confidence in the respective decoded readouts, and calculating the respective threshold-setting score based on the M component-code scores; based on the N threshold-setting scores, select among the N threshold settings, a threshold setting that is expected to result in a best readout performance among the N threshold settings; and read data from the memory using the selected threshold setting. 2. The storage device according to claim 1 , wherein the ECC comprises a generalized low-density parity-check (GLDPC) code, and wherein the storage circuitry is configured to store the encoded data that was encoded using the GLDPC code. 3. The storage device according to claim 1 , wherein the storage circuitry is configured to: calculate the component-code scores based on first reading-thresholds having first respective positions; define, based on the selected threshold setting, second reading-thresholds having second positions different from the first positions; and calculate the component-code scores based on the second reading-thresholds. 4. The storage device according to claim 1 , wherein the storage circuitry is configured to: calculate the component-code scores by decoding a given component code beyond half a minimum distance of the component codes to produce one or more error-pattern candidates, calculating for each error-pattern candidate a respective candidate-score; and calculate the component-code score corresponding to the given component code based on the candidate-scores. 5. The storage device according to claim 4 , wherein the storage circuitry is configured to identify a most reliable error pattern among the error-pattern candidates, and to assign the candidate-score of the identified error pattern as the component-code score. 6. The storage device according to claim 4 , wherein the storage circuitry is configured to: assign multiple zone-reliability metrics to threshold-voltage zones defined by the reading-thresholds; identify to which zones the memory cells corresponding to erroneous bits in the respective error-pattern candidate belong; and calculate the candidate-score based on the respective zone-reliability metrics. 7. The storage device according to claim 1 , wherein the storage circuitry is configured to calculate each of the threshold-setting scores by averaging the respective component-code scores. 8. The storage device according to claim 7 , wherein the storage circuitry is configured to average the component-code scores whose values exceed a predefined score-threshold. 9. The storage device according to claim 7 , wherein the storage circuitry is configured to average a predefined number of the component-code scores having highest values among the component-code scores. 10. A method, comprising: in a nonvolatile memory comprising multiple memory cells that store data by setting the memory cells to analog voltages representative of respective storage values, storing in a group of the memory cells encoded data that was encoded by an encoder using an error correcting code (ECC), wherein the ECC comprises M component codes and wherein each of the component codes corrects up to a predefined number of correctable errors; defining N threshold settings, each threshold setting specifying positions of one or more reading-thresholds on a threshold-voltage axis; reading the encoded data from the group of the memory cells using each of the threshold settings to produce N respective readouts, by comparing the analog voltages of the memory cells in the group to the reading-thresholds of the respective threshold settings; decoding each of the N readouts using each of the M component codes of the ECC, so as to produce M decoded readouts corresponding respectively to each threshold setting, including attempting to decode at least one of the M component codes by considering error patterns having a number of errors above the respective number of correctable errors; calculating for the N threshold settings, N respective threshold-setting scores, by calculating for each threshold setting M component-code scores that are indicative of levels of confidence in the respective decoded readouts, and calculating the respective threshold-setting score based on the M component-code scores; based on the N threshold-setting scores, selecting among the N threshold settings, a threshold setting that is expected to result in a best readout performance among the N threshold settings; and reading data from the memory using the selected threshold setting. 11. The method according to claim 10 , wherein the ECC comprises a generalized low-density parity-check (GLDPC) code, and wherein storing the encoded data comprises storing the encoded data that was encoded using the GLDPC code. 12. The method according to claim 10 , wherein calculating the component-code scores comprises: calculating the component-code scores based on first reading-thresholds having first respective positions; defining, based on the selected threshold setting, second reading-thresholds having second positions different from the first positions; and calculating the component-code scores based on the second reading-thresholds. 13. The method according to claim 10 , wherein calculating the component-code scores comprises: decoding a given component code beyond half a minimum distance of the component codes to produce one or more error-pattern candidates; calculating for each error-pattern candidate a respective candidate-score; and calculating the component-code score corresponding to the given component code based on the candidate-scores. 14. The method according to claim 13 , wherein calculating the component-code score comprises: identifying a most reliable error pattern among the error-pattern candidates; and assigning the candidate-score of the identified error pattern as the component-code score. 15. The method according to claim 13 , further comprising: assigning multiple zone-reliability metrics to threshold-voltage zones defined by the reading-thresholds; identifying to which zones the memory cells corresponding to erroneous bits in the respective error-pattern candidate belong; and calculatin

Assignees

Inventors

Classifications

  • G11C29/52Primary

    Protection of memory contents; Detection of errors in memory contents · CPC title

  • Structural properties of the code parity-check or generator matrix · CPC title

  • in sector programmable memories, e.g. flash disk (G06F11/1072 takes precedence) · CPC title

  • Parity-check or generator matrices built from sub-matrices representing known block codes such as, e.g. Hamming codes, e.g. generalized LDPC codes · CPC title

  • Error control coding in combination with demodulation · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9971646B2 cover?
A storage device includes a memory that includes storage circuitry and a memory including multiple memory cells. The storage circuitry is configured to store in a group of the memory cells data that was encoded using an error correcting code (ECC) consisting of multiple component codes, to define multiple threshold settings, each specifying positions of one or more reading-thresholds, to read t…
Who is the assignee on this patent?
Apple Inc
What technology area does this patent fall under?
Primary CPC classification G11C29/52. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 15 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).