# US 2021/0242884 A1 · Low-density parity-check decoding with de-saturation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0242884 A1
- Document ID: US20210242884A1
- Status: Published application
- Kind: A1
- Application number: 16/988,429
- Filed: 2020-08-07
- Published: 2021-08-05
- Earliest claimed: 2020-01-30
- Assignees: TenaFe, Inc.
- Applicants: TenaFe, Inc.
- Inventors: Yingquan Wu
- Web page: https://patentgrep.com/patent/US20210242884A1

## CPC

- H03M 13/1111: {Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms}
- H03M 13/1117: {using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule}
- H03M 13/116: {Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices}
- H03M 13/658: {Scaling by multiplication or division}
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)

## Abstract

A saturation metric that represents a degree of saturation in a low-density parity-check (LDPC) decoding system that uses a fixed-point number representation is determined. The saturation metric is compared against a saturation threshold. In the event the saturation metric exceeds the saturation threshold, at the end of a decoding iteration, a message is more aggressively attenuated compared to when the saturation metric does not exceed the saturation threshold in order to produce an attenuated message. In the event the saturation metric does not exceed the saturation threshold, at the end of the decoding iteration, the message is less aggressively attenuated compared to when the saturation metric does exceed the saturation threshold in order to produce the attenuated message.

## Claims

### Claim 1

A decoder, comprising:
a saturation monitor configured to:
generate a global de-saturation control signal that is determined based at least in part on a saturation threshold and a degree of saturation in a low-density parity-check (LDPC) decoding system that uses a fixed-point number representation;
a plurality of variable nodes that is configured to:
in the event the global de-saturation control signal is a first value, output a more aggressively attenuated message to a plurality of check nodes compared to when the global de-saturation control signal is a second value; and
in the event the global de-saturation control signal is the second value, output a less aggressively attenuated message to the plurality of check nodes compared to when the global de-saturation control signal is the first value; and
the plurality of check nodes.

### Claim 2 (depends on 1)

The decoder recited in claim 1, wherein the degree of saturation is based at least in part on a number of messages, passed between at least one of the plurality of check nodes and at least one of the plurality of variable nodes, that are saturated to a maximum fixed-precision magnitude.

### Claim 3 (depends on 1)

The decoder recited in claim 1, wherein the degree of saturation is based at least in part on a number of saturated nodes in the LDPC decoding system.

### Claim 4 (depends on 1)

The decoder recited in claim 1, wherein:
the degree of saturation is based at least in part on a number of saturated nodes in the LDPC decoding system; and
a node is declared saturated if an associated minimum attenuated message after attenuation reaches a maximum fixed-precision magnitude.

### Claim 5 (depends on 1)

The decoder recited in claim 1, wherein outputting the more aggressively attenuated message to the plurality of check nodes includes:
outputting a first more aggressively attenuated message that is based at least in part on a first-most minimum variable node message; and
outputting a second more aggressively attenuated message that is based at least in part on a second-most minimum variable node message.

### Claim 6 (depends on 1)

The decoder recited in claim 1, wherein outputting the more aggressively attenuated message to the plurality of check nodes includes:
outputting a first more aggressively attenuated message (Lmin1(j)) that is based at least in part on a first-most minimum variable node message (lmin1(j)), including by using Lmin1(j)=└αds·lmin1(j)+βds┘, wherein αds is associated with an attenuation factor and βds is associated with an attenuation rounding; and
outputting a second more aggressively attenuated message (Lmin2(j)) that is based at least in part on a second-most minimum variable node message (lmin2(j)), including by using Lmin2(j)=└αds·lmin2(j)+βds┘.

### Claim 7 (depends on 1)

The decoder recited in claim 1, wherein:
a first attenuation factor (α) is used to generate the less aggressively attenuated message and a second attenuation factor (αds) is used to generate the more aggressively attenuated message, wherein αds<α; and
a first attenuation rounding (β) is used to generate the less aggressively attenuated message and a second attenuation rounding (βds) is used to generate the more aggressively attenuated message, wherein └αds+βds┘≤└α+β┘.

### Claim 8 (depends on 1)

The decoder recited in claim 1, wherein:
a first attenuation factor (α) is used to generate the less aggressively attenuated message and a second attenuation factor (αds) is used to generate the more aggressively attenuated message, wherein αds<α;
a first attenuation rounding (β) is used to generate the less aggressively attenuated message and a second attenuation rounding (βds) is used to generate the more aggressively attenuated message, wherein └αds+βds┘≤└α+β┘; and
at least one of α, αds, β, or βds is determined using density evolution.

### Claim 9

A method, comprising:
generating a global de-saturation control signal that is determined based at least in part on a saturation threshold and a degree of saturation in a low-density parity-check (LDPC) decoding system that uses a fixed-point number representation;
in the event the global de-saturation control signal is a first value, outputting a more aggressively attenuated message to a plurality of check nodes compared to when the global de-saturation control signal is a second value; and
in the event the global de-saturation control signal is the second value, outputting a less aggressively attenuated message to the plurality of check nodes compared to when the global de-saturation control signal is the first value.

### Claim 10 (depends on 9)

The method recited in claim 9, wherein the degree of saturation is based at least in part on a number of messages, passed between at least one of the plurality of check nodes and at least one of the plurality of variable nodes, that are saturated to a maximum fixed-precision magnitude.

### Claim 11 (depends on 9)

The method recited in claim 9, wherein the degree of saturation is based at least in part on a number of saturated nodes in the LDPC decoding system.

### Claim 12 (depends on 9)

The method recited in claim 9, wherein:
the degree of saturation is based at least in part on a number of saturated nodes in the LDPC decoding system; and
a node is declared saturated if an associated minimum attenuated message after attenuation reaches a maximum fixed-precision magnitude.

### Claim 13 (depends on 9)

The method recited in claim 9, wherein outputting the more aggressively attenuated message to the plurality of check nodes includes:
outputting a first more aggressively attenuated message that is based at least in part on a first-most minimum variable node message; and
outputting a second more aggressively attenuated message that is based at least in part on a second-most minimum variable node message.

### Claim 14 (depends on 9)

The method recited in claim 9, wherein outputting the more aggressively attenuated message to the plurality of check nodes includes:
outputting a first more aggressively attenuated message (Lmin1(j)) that is based at least in part on a first-most minimum variable node message (lmin1(j)), including by using Lmin1(j)=└αds·lmin1(j)+βds┘, wherein αds is associated with an attenuation factor and βds, is associated with an attenuation rounding; and
outputting a second more aggressively attenuated message (Lmin2(j)) that is based at least in part on a second-most minimum variable node message (lmin2(j)), including by using Lmin2(j)=└αds·lmin2(j)+βds┘.

### Claim 15 (depends on 9)

The method recited in claim 9, wherein:
a first attenuation factor (α) is used to generate the less aggressively attenuated message and a second attenuation factor (αds) is used to generate the more aggressively attenuated message, wherein αds<α; and
a first attenuation rounding (β) is used to generate the less aggressively attenuated message and a second attenuation rounding (βds) is used to generate the more aggressively attenuated message, wherein └αds+βds┘≤└α+β┘.

### Claim 16 (depends on 9)

The method recited in claim 9, wherein:
a first attenuation factor (α) is used to generate the less aggressively attenuated message and a second attenuation factor (αds) is used to generate the more aggressively attenuated message, wherein αds<α;
a first attenuation rounding (β) is used to generate the less aggressively attenuated message and a second attenuation rounding (βds) is used to generate the more aggressively attenuated message, wherein └αds+βds┘≤└α+β┘Z; and
at least one of α, αds, β, or βds is determined using density evolution.

### Claim 17

A computer program product embodied in a non-transitory computer readable medium and comprising computer instructions for:
generating a global de-saturation control signal that is determined based at least in part on a saturation threshold and a degree of saturation in a low-density parity-check (LDPC) decoding system that uses a fixed-point number representation;
in the event the global de-saturation control signal is a first value, outputting a more aggressively attenuated message to a plurality of check nodes compared to when the global de-saturation control signal is a second value; and
in the event the global de-saturation control signal is the second value, outputting a less aggressively attenuated message to the plurality of check nodes compared to when the global de-saturation control signal is the first value.

### Claim 18 (depends on 17)

The computer program product recited in claim 17, wherein the degree of saturation is based at least in part on a number of messages, passed between at least one of the plurality of check nodes and at least one of the plurality of variable nodes, that are saturated to a maximum fixed-precision magnitude.

### Claim 19 (depends on 17)

The computer program product recited in claim 17, wherein outputting the more aggressively attenuated message to the plurality of check nodes includes:
outputting a first more aggressively attenuated message that is based at least in part on a first-most minimum variable node message; and
outputting a second more aggressively attenuated message that is based at least in part on a second-most minimum variable node message.

### Claim 20 (depends on 17)

The computer program product recited in claim 17, wherein outputting the more aggressively attenuated message to the plurality of check nodes includes:
outputting a first more aggressively attenuated message (Lmin1(j)) that is based at least in part on a first-most minimum variable node message (lmin1(j)), including by using Lmin1(j)=└αds·lmin1(j)+βds┘, wherein αds is associated with an attenuation factor and βds is associated with an attenuation rounding; and
outputting a second more aggressively attenuated message (Lmin2(j)) that is based at least in part on a second-most minimum variable node message (lmin2(j)), including by using Lmin2(j)=└αds·lmin2(j)+βds┘.
