# US 9,438,276 B2 · Method and apparatus for improved performance of iterative decoders on channels with memory

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

- Number: US 9,438,276 B2
- Document ID: US9438276B2
- Status: Granted
- Kind: B2
- Application number: 13/674,767
- Filed: 2012-11-12
- Published: 2013-03-21
- Granted: 2016-09-06
- Earliest claimed: 2007-12-27
- Assignees: Marvell International Ltd.
- Applicants: Marvell International Ltd.
- Inventors: Nedeljko Varnica; Nitin Nangare; Gregory Burd; Zining Wu
- Web page: https://patentgrep.com/patent/US9438276B2

## CPC

- H03M 13/6331: {Error control coding in combination with equalisation}
- H03M 13/1105: {Decoding}
- H03M 13/2957: {Turbo codes and decoding}
- H03M 13/3905: {Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding}
- H03M 13/4138: {soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions}
- 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

Systems and methods for improving the performance of iterative decoders on various channels with memory are disclosed. These systems and methods may reduce the frequency or number of situations in which the iterative decoder cannot produce decoded data that matches the data that was originally sent in a communications or data storage system. The iterative decoder includes a SISO channel detector and an ECC decoder and decodes the coded information according to at least one iterative decoding algorithm in regular decoding mode and/or at least one iterative decoding algorithm in error-recovery mode.

## Claims

### Claim 1

A method of decoding received data using an iterative decoder, wherein the iterative decoder comprises a soft-input soft-output (SISO) channel detector and an error correcting code (ECC) decoder, the method comprising:
performing a plurality of decoding rounds that comprise at least one but less than a predetermined number of iterations of the ECC decoder,
performing subsequent decoding rounds that comprise at least one of an increased number of channel iterations in the iterative decoder than a previous decoding round and an increased number of iterations of the ECC decoder, wherein each channel iteration comprises an iteration of the SISO channel detector and the predetermined number of iterations of the ECC decoder.

### Claim 2 (depends on 1)

The method of claim 1, wherein performing the plurality of decoding rounds on the received data using the iterative decoder further comprises reinitializing the ECC decoder after each channel iteration.

### Claim 3 (depends on 2)

The method of claim 2, wherein the ECC decoder is configured to decode data using a message passing algorithm comprising sending extrinsic information from a plurality of check nodes to a plurality of bit nodes, and wherein reinitializing the ECC decoder further comprises setting the extrinsic information sent from the plurality of check nodes to the plurality of bit nodes to zero.

### Claim 4

A method of decoding received data using an iterative decoder, wherein the iterative decoder comprises a soft-input soft-output (SISO) channel detector and an error correcting code (ECC) decoder, the method comprising:
performing a plurality of decoding rounds that comprise more than a predetermined number of iterations of the ECC decoder, and
performing subsequent decoding rounds that comprise at least one of an increased number of channel iterations in the iterative decoder than a previous decoding round and a decreased number of iterations of the ECC decoder, wherein each channel iteration comprises an iteration of the SISO channel detector and the predetermined number of iterations of the ECC decoder.

### Claim 5 (depends on 4)

The method of claim 4, wherein performing the plurality of decoding rounds on the received data using the iterative decoder further comprises reinitializing the ECC decoder after each channel iteration.

### Claim 6 (depends on 5)

The method of claim 5, wherein the ECC decoder is configured to decode data using a message passing algorithm comprising sending extrinsic information from a plurality of check nodes to a plurality of bit nodes, and wherein reinitializing the ECC decoder further comprises setting the extrinsic information sent from the plurality of check nodes to the plurality of bit nodes to zero.

### Claim 7

An iterative decoder for decoding received data comprising a soft-input soft-output (SISO) channel detector and an error correcting code (ECC) decoder, the iterative decoder is configured to:
perform a plurality of decoding rounds that comprise at least one but less than a predetermined number of iterations of the ECC decoder, and
subsequent decoding rounds that comprise at least one of an increased number of channel iterations in the iterative decoder than a previous decoding round and an increased number of iterations of the ECC decoder, wherein each channel iteration comprises an iteration of the SISO channel detector and the predetermined number of iterations of the ECC decoder.

### Claim 8 (depends on 7)

The iterative decoder of claim 7, further configured to reinitialize the ECC decoder after each channel iteration.

### Claim 9 (depends on 8)

The iterative decoder of claim 8, wherein the ECC decoder is configured to decode data using a message passing algorithm comprising sending extrinsic information from a plurality of check nodes to a plurality of bit nodes, and wherein reinitializing the ECC decoder further comprises setting the extrinsic information sent from the plurality of check nodes to the plurality of bit nodes to zero.

### Claim 10

An iterative decoder for decoding received data comprising a soft-input soft-output (SISO) channel detector and an error correcting code (ECC) decoder, the iterative decoder is configured to:
perform a plurality of decoding rounds that comprise more than a predetermined number of iterations of the ECC decoder, and
perform subsequent decoding rounds that comprise at least one of an increased number of channel iterations in the iterative decoder than a previous decoding round and a decreased number of iterations of the ECC decoder, wherein each channel iteration includes an iteration of the SISO channel detector and the predetermined number of iterations of the ECC decoder.

### Claim 11 (depends on 10)

The iterative decoder of claim 10, further configured to reinitialize the ECC decoder after each channel iteration.

### Claim 12 (depends on 11)

The iterative decoder of claim 11, wherein the ECC decoder is configured to decode data using a message passing algorithm comprising sending extrinsic information from a plurality of check nodes to a plurality of bit nodes, and wherein reinitializing the ECC decoder further comprises setting the extrinsic information sent from the plurality of check nodes to the plurality of bit nodes to zero.

### Claim 13 (depends on 4)

The method of claim 4, wherein the decreased number of iterations of the ECC decoder is larger than zero.

### Claim 14 (depends on 10)

The iterative decoder of claim 10, wherein the decreased number of iterations of the ECC decoder is larger than zero.
