Bit-flipping LDPC decoding algorithm with hard channel information

US10148287B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10148287-B2
Application numberUS-201615346158-A
CountryUS
Kind codeB2
Filing dateNov 8, 2016
Priority dateNov 8, 2016
Publication dateDec 4, 2018
Grant dateDec 4, 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.

Memory systems may include a memory storage, and an error correcting code (ECC) unit suitable for determining a number of unsatisfied check nodes of a channel output in a decoding iteration of a decoding process, updating a flipping indicator of a variable node, comparing the flipping indicator of the variable node with a flipping threshold associated with the decoding process, flipping a bit of the variable node when the flipping indicator is greater than the flipping threshold, and ending the decoding process when decoding is determined to be successful or a maximal iteration number is reached.

First claim

Opening claim text (preview).

What is claimed is: 1. A memory system, comprising: a memory storage; and an error correcting code (ECC) unit suitable for: determining a number of unsatisfied check nodes of a channel output in a decoding iteration of a decoding process; updating a flipping indicator of a variable node, wherein the flipping indicator is based on at least two conditions including hard channel information of the variable node; comparing the flipping indicator of the variable node with a flipping threshold associated with the decoding process; flipping a bit of the variable node when the flipping indicator is greater than the flipping threshold; updating the flipping threshold associated with the decoding process iteratively based on at least two conditions including an iteration number of the decoding process and a condition of a previous decoding iteration; and ending the decoding process when decoding is determined to be successful or a maximal iteration number is reached. 2. The memory system of claim 1 , wherein another condition on which updating the flipping indicator of the variable node is based includes a number of unsatisfied check nodes adjacent to the variable node. 3. The memory system of claim 1 , wherein the ECC unit is further suitable for updating the flipping indicator of the variable node by setting the flipping indicator of the variable node to the determined number of unsatisfied check nodes in the decoding iteration when the hard channel information of the variable node is equal to the channel output of the decoding iteration of the variable node. 4. The memory system of claim 1 , wherein the condition of the previous decoding iteration includes a number of unsatisfied check nodes of the previous decoding iteration, or a number of variable nodes flipped in the previous decoding iteration. 5. The memory system of claim 1 , wherein the ECC unit is further suitable for determining the decoding process is successful when a determined number of unsatisfied checks is zero. 6. A method, comprising: determining a number of unsatisfied check nodes of a channel output in a decoding iteration of a decoding process; updating a flipping indicator of a variable node, wherein the flipping indicator is based on at least two conditions including hard channel information of the variable node and a condition of a previous decoding iteration; comparing the flipping indicator of the variable node with a flipping threshold associated with the decoding process; flipping a bit of the variable node when the flipping indicator is greater than the flipping threshold; updating the flipping threshold associated with the decoding process iteratively based on at least two conditions including an iteration number of the decoding process; and ending the decoding process when decoding is determined to be successful or a maximal iteration number is reached. 7. The method of claim 6 , wherein another condition on which updating the flipping indicator of the variable node is based includes a number of unsatisfied check nodes adjacent to the variable node. 8. The method of claim 6 , further comprising updating the flipping indicator of the variable node by setting the flipping indicator of the variable node to the determined number of unsatisfied check nodes in the decoding iteration when the hard channel information of the variable node is equal to the channel output of the decoding iteration of the variable node. 9. The method of claim 6 , wherein the condition of the previous decoding iteration includes a number of unsatisfied check nodes of the previous decoding iteration, or a number of variable nodes flipped in the previous decoding iteration. 10. The method of claim 6 , further comprising determining the decoding process is successful when a determined number of unsatisfied checks is zero. 11. A memory device, comprising: a memory storage; and an error correcting code (ECC) unit configured to: determine a number of unsatisfied check nodes of a channel output in a decoding iteration of a decoding process; update a flipping indicator of a variable node, wherein the flipping indicator is based on at least two conditions including hard channel information of the variable node; compare the flipping indicator of the variable node with a flipping threshold associated with the decoding process; flip a bit of the variable node when the flipping indicator is greater than the flipping threshold; updating the flipping threshold associated with the decoding process iteratively based on at least two conditions including an iteration number of the decoding process and a condition of a previous decoding iteration; and end the decoding process when decoding is determined to be successful or a maximal iteration number is reached. 12. The memory device of claim 11 , wherein another condition on which updating the flipping indicator of the variable node is based includes a number of unsatisfied check nodes adjacent to the variable node. 13. The memory device of claim 11 , wherein the ECC unit is further configured to update the flipping indicator of the variable node by setting the flipping indicator of the variable node to the determined number of unsatisfied check nodes in the decoding iteration when the hard channel information of the variable node is equal to the channel output of the decoding iteration of the variable node. 14. The memory device of claim 10 , wherein the condition of the previous decoding iteration includes a number of unsatisfied check nodes of the previous decoding iteration, or a number of variable nodes flipped in the previous decoding iteration. 15. The memory device of claim 11 , wherein the ECC unit is further configured to determine the decoding process is successful when a determined number of unsatisfied checks is zero.

Assignees

Inventors

Classifications

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

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

  • Management of blocks · CPC title

  • Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations · CPC title

  • in relation to data integrity, e.g. data losses, bit errors · 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 US10148287B2 cover?
Memory systems may include a memory storage, and an error correcting code (ECC) unit suitable for determining a number of unsatisfied check nodes of a channel output in a decoding iteration of a decoding process, updating a flipping indicator of a variable node, comparing the flipping indicator of the variable node with a flipping threshold associated with the decoding process, flipping a bit o…
Who is the assignee on this patent?
Sk Hynix Inc
What technology area does this patent fall under?
Primary CPC classification H03M13/1108. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 04 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 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).