Memory controller and method for decoding memory devices with early hard-decode exit

US11086716B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11086716-B2
Application numberUS-202016790547-A
CountryUS
Kind codeB2
Filing dateFeb 13, 2020
Priority dateJul 24, 2019
Publication dateAug 10, 2021
Grant dateAug 10, 2021

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 method and apparatus for decoding are disclosed. The method includes receiving a first Forward Error Correction (FEC) block of read values, starting a hard-decode process in which a number of check node failures is identified and, during the hard-decode process comparing the identified number of check node failures to a decode threshold. When the identified number of check node failures is not greater than the decode threshold the hard-decode process is continued. When the identified number of check node failures is greater than the decode threshold, the method includes: stopping the hard-decode process prior to completion of the hard-decode process; generating output indicating that additional reads are required; receiving one or more additional FEC blocks of read values, mapping the first FEC block of read values and the additional FEC blocks of read values into soft-input values; and performing a soft-decode process on the soft-input values.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for decoding comprising: receiving a first Forward Error Correction (FEC) block of read values at a hard-input decode circuit, each bit of the first FEC block of read values representative of a corresponding bit of a stored FEC block; starting a hard-decode process by the hard-input decode circuit, the hard-decode process including variable node processing and check node processing on the first FEC block of read values to identify a number of check node failures; during the hard-decode process, comparing the identified number of check node failures to a decode threshold; when the identified number of check node failures is not greater than the decode threshold, continuing the hard-decode process by the hard-input decode circuit; when the identified number of check node failures is greater than the decode threshold: stopping the hard-decode process prior to completion of the hard-decode process; generating output indicating that additional reads are required; receiving at a mapper the first FEC block of read values and one or more additional FEC blocks of read values, each bit of each of the one or more additional FEC blocks of read values representative of a corresponding bit of the stored FEC block; mapping the first FEC block of read values and the one or more additional FEC blocks of read values into soft-input values; and performing a soft-decode process on the soft-input values to identify the decoded FEC block. 2. The method of claim 1 wherein the comparing the identified number of check node failures to a decode threshold comprises comparing the number of check node failures in a first iteration of a single-layer error correction code to the decode threshold, the stopping the hard-decode process comprising not performing any subsequent iterations of the single-layer error correction code on the first FEC block of read values. 3. The method of claim 1 wherein the hard-decode process and the soft-decode process comprise performing a multi-layer Low-Density Parity-Check (LDPC) error correction code. 4. The method of claim 1 wherein the hard-decode process and the soft-decode process comprise performing an error correction code selected from the group consisting of a Viterbi code, a Soft Output Viterbi Algorithm (SOVA) code and a Turbo code. 5. The method of claim 1 wherein the comparing the identified number of check node failures to a decode threshold further comprises comparing the number of failures in a first layer of a first iteration of a multi-layer error correction code to the decode threshold, and wherein stopping the hard-decode process comprises not performing any subsequent iterations of the multi-layer error correction code on the first FEC block of read values. 6. The method of claim 1 further comprising: performing a first read of the stored FEC block by sending a read command from a read circuit of a flash memory controller to one or more flash memory devices on which the FEC block has been stored, and receiving at the read circuit, in response to the sending a read command, the first FEC block of read values; coupling the first FEC block of read values to the hard-input decode circuit; and in response to the generated output indicating that additional reads are required, performing one or more additional reads by sending one or more additional read commands from the read circuit of the flash memory controller to the one or more flash memory devices on which the FEC block has been stored, and receiving, in response to the sending one or more additional read commands, the one or more additional FEC blocks of read values. 7. The method of claim 1 wherein the continuing the hard-decode process further comprises continuing the hard-decode process until the hard-decode process has either successfully identified the stored FEC block or has failed, and the stopping the hard-decode process prior to completion of the hard-decode process further comprises stopping the hard-decode process before the hard decode process has either successfully identified the stored FEC block or has failed. 8. The method of claim 1 further comprising changing the decode threshold during the life of the nonvolatile memory devices to reflect the Bit Error Rate (BER) of the flash memory devices. 9. The method of claim 1 further comprising changing the decode threshold when the hard-input decode circuit is full. 10. The method of claim 1 further comprising incrementally decreasing the decode threshold when the hard-input decode circuit is full. 11. The method of claim 1 further comprising: generating output indicating when the hard-input decode circuit is full; receiving user-input including a code rate value and a threshold control value; identifying the decode threshold based on the received code rate value and threshold control value; and storing the identified decode threshold. 12. A decoder comprising: a hard-input decode circuit configured to receive a first Forward Error Correction (FEC) block of read values, each bit of the first FEC block of read values representative of a corresponding bit of a stored FEC block and start a hard-decode process, the hard-decode process including variable node processing and check node processing on the first FEC block of read values to identify a number of check node failures; a decode controller coupled to the hard-input decode circuit, the decode-controller configured to compare the identified number of check node failures to a decode threshold during the hard-decode process, generate output indicating that the hard-input decode circuit is to stop the processing of the error correction code when the identified number of check node failures is greater than the decode threshold, and generate output indicating that additional reads are required when the identified number of check node failures is greater than the decode threshold, wherein the hard-input decode circuit is operable, responsive to the output indicating that the hard-input decode circuit is to stop the processing of the error correction code, to stop the hard-decode process prior to completion of the hard-decode process; a mapper configured to receive the first FEC block of read values and additional FEC blocks of read values responsive to the generated output indicating that additional reads are required and configured to map the first FEC block of read values and the additional FEC blocks of read values into soft-input values; and a soft-input decode circuit coupled to the mapper, the soft-input decode circuit configured to perform a soft-decode process on the soft-input values to identify a decoded FEC block from the soft-input values. 13. The decoder of claim 12 wherein the decode controller is configured to compare the identified number of check node failures in a first iteration of a single-layer error correction code to the decode threshold and is configured to generate the output indicating that the hard-input decode circuit is to stop the processing of the error correction code when the identified number of check node failures in the first iteration of the error correction code is greater than the decode threshold. 14. The decoder of claim 12 wherein the decode controller is configured to compare the identified number of check node failures in a first layer of a first iteration to the decode threshold and is configured to generate the output indicating that the hard-input decode circuit is to stop the processing of the error correction code when the identified number of check node failures in the first layer of the first iteration of the error correction code is greater than the

Assignees

Inventors

Classifications

  • Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms · CPC title

  • with turbo codes, e.g. Turbo Trellis Coded Modulation [TTCM] · CPC title

  • Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping · CPC title

  • with specific ECC/EDC distribution · CPC title

  • in sector programmable memories, e.g. flash disk (G06F11/1072 takes precedence) · 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 US11086716B2 cover?
A method and apparatus for decoding are disclosed. The method includes receiving a first Forward Error Correction (FEC) block of read values, starting a hard-decode process in which a number of check node failures is identified and, during the hard-decode process comparing the identified number of check node failures to a decode threshold. When the identified number of check node failures is no…
Who is the assignee on this patent?
Microchip Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/1052. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 10 2021 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).