Read threshold calibration for ldpc
US-2016197623-A1 · Jul 7, 2016 · US
US9971646B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9971646-B2 |
| Application number | US-201615169825-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 1, 2016 |
| Priority date | Jun 1, 2016 |
| Publication date | May 15, 2018 |
| Grant date | May 15, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.