# US 2014/0208189 A1 · Determining soft data using a classification code

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

- Number: US 2014/0208189 A1
- Document ID: US20140208189A1
- Status: Published application
- Kind: A1
- Application number: 13/746,195
- Filed: 2013-01-21
- Published: 2014-07-24
- Earliest claimed: 2013-01-21
- Assignees: Micron Technology, Inc.
- Applicants: Micron Technology, Inc.
- Inventors: Sivagnanam Parthasarathy; Patrick R. Khayat; Mustafa N. Kaynak
- Web page: https://patentgrep.com/patent/US20140208189A1

## CPC

- H03M 13/45: Soft decoding, i.e. using symbol reliability information (H03M13/41 takes precedence)
- G06F 11/1012: {using codes or arrangements adapted for a specific type of error (G06F11/1048 takes precedence)}
- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- H03M 13/1102: {Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes}
- H03M 13/1111: {Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms}
- H03M 13/13: Linear codes
- H03M 13/2906: {using block codes (H03M13/2957 takes precedence)}
- H03M 13/098: {using single parity bit}
- H03M 13/152: {Bose-Chaudhuri-Hocquenghem [BCH] codes}
- H03M 13/19: Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
- 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)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Apparatuses and methods for determining soft data using a classification code are provided. One example apparatus can include a classification code (CC) decoder and an outer code decoder coupled to the CC decoder. The CC decoder is configured to receive a CC codeword. The CC codeword includes a piece of an outer code codeword and corresponding CC parity digits. The CC decoder is configured to determine soft data associated with the piece of the outer code codeword, at least partially, using the corresponding CC digits.

## Claims

### Claim 1

An apparatus, comprising:
a classification code (CC) decoder; and
an outer code decoder coupled to the CC decoder,
wherein the CC decoder is configured to:
receive a CC codeword, the CC codeword including a piece of an outer code codeword and a corresponding CC parity digits; and
determine soft data associated with the piece of outer code codeword, at least partially, using the corresponding CC parity digits.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the outer code decoder is a soft input decoder.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the outer code decoder is an iterative decoder.

### Claim 4 (depends on 3)

The apparatus of claim 3, wherein the iterative decoder is a low-density parity-check (LDPC) decoder, and the piece of the outer code codeword is piece of an LDPC codeword.

### Claim 5 (depends on 1)

The apparatus of claim 1, further comprising a memory coupled to the CC decoder, and wherein the CC decoder is configured to receive the CC codeword via a hard read of the memory.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein the soft data is a reliability value associated with the piece of the outer code codeword.

### Claim 7 (depends on 6)

The apparatus of claim 6, wherein the reliability value includes a log-likelihood ratio (LLR) determined, at least partially, for digits of the CC codeword determined using a hard read.

### Claim 8 (depends on 1)

The apparatus of claim 1, wherein the soft data is a reliability value associated with a portion of the piece of the outer code codeword.

### Claim 9 (depends on 8)

The apparatus of claim 8, wherein the CC decoder is configured to associate a respective reliability value with each digit of the portion of the piece of the outer code codeword.

### Claim 10 (depends on 8)

The apparatus of claim 8, wherein the CC decoder is configured to provide the reliability value for the portion of the piece of the outer code codeword to the outer code decoder.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein outer code decoder is configured to utilize the reliability value in decoding the outer code codeword.

### Claim 12 (depends on 11)

The apparatus of claim 11, wherein the reliability value is one of three values, a respective value corresponding to one of uncertain reliability, strong reliability, or weak reliability.

### Claim 13 (depends on 8)

The apparatus of claim 8, further comprising adjusting the reliability value based, at least partially, on a condition of a memory cell.

### Claim 14 (depends on 1)

The apparatus of claim 1, wherein the CC is a tensor product of two algebraic codes.

### Claim 15 (depends on 1)

The apparatus of claim 1, wherein the CC is a tensor product of a single-digit parity check code and a binary algebraic code.

### Claim 16 (depends on 1)

The apparatus of claim 1, wherein the CC decoder and the outer code decoder are components of a controller.

### Claim 17 (depends on 1)

The apparatus of claim 1, wherein outer code decoder is configured to feedback hard decisions to the CC decoder via a feedback path, and the CC decoder is configured to determine soft data using the hard decisions.

### Claim 18

An apparatus, comprising:
an outer code decoder;
an intermediate code decoder coupled to the outer code decoder; and
a classification code (CC) decoder coupled to the intermediate code decoder,
wherein the CC decoder is configured to:
receive a CC codeword from a memory via a hard read, the CC codeword comprising CC parity digits and data that is composed of user data from the host and intermediate code parity digits and outer code parity digits;
determine soft data associated with the data using the CC parity digits; and
provide the data and the soft data to the intermediate code decoder.

### Claim 19 (depends on 18)

The apparatus of claim 18, wherein the data is a piece of a low-density parity-check (LDPC) codeword, and the intermediate code decoder is an iterative LDPC decoder.

### Claim 20 (depends on 18)

The apparatus of claim 18, wherein the CC decoder is further configured to determine soft data associated with a number of digits of the data based, at least in part, on the CC parity digits.

### Claim 21 (depends on 18)

The apparatus of claim 18, wherein the CC is a tensor product of a detection code and a correction code.

### Claim 22 (depends on 18)

The apparatus of claim 18, wherein the CC is a tensor product of a single-digit parity check code (C1) and a binary algebraic code (C2).

### Claim 23 (depends on 22)

The apparatus of claim 22, wherein the CC decoder is configured to detect an odd number of errors in at least a portion of the data using the C1.

### Claim 24 (depends on 22)

The apparatus of claim 22, wherein the CC decoder is configured to identify t or fewer portions of the data in error using C2.

### Claim 25 (depends on 22)

The apparatus of claim 22, wherein the CC decoder is configured to detect that t+1 portions of the data are in error without identifying which particular t+1 portions of the data that are in error.

### Claim 26 (depends on 18)

The apparatus of claim 18, wherein the intermediate code decoder is configured to operate for at most 2 iterations.

### Claim 27 (depends on 18)

The apparatus of claim 18, wherein the intermediate code decoder, the outer code decoder, and the CC decoder are components of a controller.

### Claim 28

An apparatus, comprising:
an outer code encoder configured to provide an outer code codeword; and
a classification code (CC) encoder coupled to the outer code encoder, wherein the CC encoder is configured to determine CC parity digits and append the CC parity digits to a piece of the outer code encoder codeword as a CC codeword, and
wherein the CC encoder is configured to control writing the CC codeword to a memory.

### Claim 29 (depends on 28)

The apparatus of claim 28, wherein the outer code encoder is a low-density parity-check (LDPC) encoder, and the piece of the outer encoder codeword is piece of an LDPC codeword.

### Claim 30 (depends on 29)

The apparatus of claim 29, further comprising a Bose, Chaudhuri, and Hocquenghem (BCH) encoder coupled to the LDPC encoder, the LDPC encoder being configured to receive a BCH codeword from the BCH encoder and provide an LDPC codeword to the CC encoder.

### Claim 31 (depends on 28)

The apparatus of claim 28, wherein the CC encoder is configured to determine a digit of a single-digit parity check code (C1) for each of multiple portions of the piece of the outer code codeword.

### Claim 32 (depends on 31)

The apparatus of claim 31, wherein the CC encoder is configured to determine a binary algebraic code (C2) from the piece of the outer code codeword.

### Claim 33 (depends on 32)

The apparatus of claim 32, wherein the CC encoder is configured to determine the CC as a tensor product of C1 and C2.

### Claim 34 (depends on 28)

The apparatus of claim 28, wherein the outer code encoder and the CC encoder are components of a controller.

### Claim 35

A method, comprising:
receiving, to a classification code (CC) encoder, at least a piece of an outer code codeword;
determining, via the CC encoder, a single-digit parity check code (C1) and a binary algebraic code (C2) from the piece of the outer encoder codeword; and
determining CC as a tensor product of C1 and C2.

### Claim 36 (depends on 35)

The method of claim 35, further comprising:
appending CC parity digits to the piece of the outer code codeword to generate a CC codeword; and
writing the CC codeword to a memory.

### Claim 37 (depends on 35)

The method of claim 35, wherein the piece of the outer code codeword is a piece of an LDPC codeword.

### Claim 38 (depends on 37)

The method of claim 37, further comprising:
determining, via a BCH encoder, a BCH codeword from user data; and
determining, via the LDPC encoder, the LDPC codeword from the BCH codeword.

### Claim 39

A method, comprising:
receiving, to a first decoder, a first encoder codeword, the first encoder codeword including a piece of a second encoder codeword and first code parity digits;
determining, via the first decoder, soft data associated with the piece of the second encoder codeword based, at least partially, on the first code parity digits; and
providing the piece of the second encoder codeword and determined soft data from the first decoder to a second decoder.

### Claim 40 (depends on 39)

The method of claim 39, wherein the second decoder is an iterative decoder.

### Claim 41 (depends on 40)

The method of claim 40, further comprising determining, via the second decoder operating for at most two iterations, data based, at least partially, on the piece of the second encoder codeword and the determined soft data.

### Claim 42 (depends on 39)

The method of claim 39, wherein determining the soft data includes determining a reliability value associated with a digit of the piece of the second encoder codeword.

### Claim 43 (depends on 39)

The method of claim 39, further comprising determining, via the first decoder, a parity check code (C1) and a binary algebraic code (C2) from the first code parity digits, wherein the first code parity digits are computed from tensor product of C1 and C2.

### Claim 44 (depends on 39)

The method of claim 39, wherein the first decoder is a classification code (CC) decoder, the first code parity digits are CC parity digits, the second decoder is a low-density parity-check (LDPC) decoder, and the piece of the second encoder codeword is a piece of an LDPC codeword.

### Claim 45

A method, comprising:
receiving, to a classification code (CC) decoder, a CC codeword;
determining, via the CC decoder, CC parity digits and a piece of an outer codeword from the CC codeword;
identifying t portions of the piece of the outer codeword in error based on the CC parity digits where there is t or fewer portions of the piece of the outer codeword in error; and
detecting t+1 portions of the piece of the outer codeword in error based on the CC parity digits where there is t+1 portions of the piece of the outer codeword in error.

### Claim 46 (depends on 45)

The method of claim 45, further comprising providing, by the CC decoder, pieces of the outer codeword and soft data regarding identified and detected portions of the piece of the outer codeword to an iterative decoder, wherein the iterative decoder is a low-density parity-check (LDPC) decoder, and the pieces of the outer codeword is an LDPC codeword.

### Claim 47 (depends on 46)

The method of claim 46, wherein identifying t portions of the outer codeword in error includes associating a reliability value corresponding to a weak reliability to all digits in the identified t portions of the outer codeword.

### Claim 48 (depends on 46)

The method of claim 46, wherein identifying t portions of the piece of the outer codeword in error includes associating a reliability value corresponding to a strong reliability to all digits in other than the identified t portions of the piece of the outer codeword.

### Claim 49 (depends on 46)

The method of claim 46, wherein identifying detecting t+1 portions of the outer codeword in error includes associating a reliability value corresponding to an uncertain reliability to all digits in the piece of the outer codeword.

### Claim 50 (depends on 45)

The method of claim 45, further comprising:
determining a reliability value corresponding to a particular digit in the piece of the outer codeword based, at least partially, on the CC parity digits; and
adjusting the reliability value corresponding to the particular digit in the piece of the outer codeword based, at least partially, on soft data determined from reading the particular digit in the piece of the outer codeword.

### Claim 51 (depends on 50)

The method of claim 50, wherein the soft data determined for the particular digit in the piece of the outer codeword is an LLR determined using a hard read for the particular digit in the piece of the outer codeword.

### Claim 52 (depends on 45)

The method of claim 45, wherein determining the CC parity digits include computing a CC syndrome as the product of the received CC codeword and a parity check matrix of the CC parity digits.

### Claim 53 (depends on 45)

The method of claim 45, wherein the received CC codeword is obtained from a memory via a hard read.
