H03M13/1182

METHOD AND APPARATUS FOR ENCODING AND DECODING OF VARIABLE LENGTH QUASI-CYCLIC LOW-DENSITY PARITY-CHECK, QC-LDPC, CODES

A method for quasi-cyclic low-density parity-check (QC-LDPC) encoding and decoding of a data packet by a lifted matrix is provided, the method comprising: lifting the QC-LDPC code for maximal code length N.sub.max and maximal circulant size Z.sub.upper of the base matrix; generating a plurality of optimal values r.sub.i for a plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper based on the QC-LDPC code lifted for maximal length N.sub.max, 0r.sub.iZ.sub.upper1; saving the generated plurality of optimal values r.sub.i corresponding to the plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper and a matrix for the QC-LDPC code lifted for maximal length N.sub.max in the memory; receiving a current circulant Z.sub.current from the plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper; selecting a current optimal value r.sub.current from the plurality of optimal values r.sub.i stored in the memory corresponding to the current circulant Z.sub.current; and lifting the base matrix based on the current optimal value r.sub.current.

Low-complexity LDPC encoder

Techniques are described for encoding information data bits using a low-density parity-check matrix optimized for a Low-Density Parity-Check (LDPC) encoder. In an example, the parity-check matrix includes a first matrix and a second matrix. The second matrix is a square matrix, and is also a block diagonal matrix that includes a set of square submatrices located on the diagonal of the block diagonal matrix. An intermediate vector is generated based on the information data bits and the first matrix, and a parity vector of a codeword is generated based on the intermediate vector and the second matrix.

METHOD AND APPARATUS FOR DECIDING DECODING ORDER FOR SHUFFLED DECODING OF LDPC CODES

The method for shuffled decoding of LDPC codes includes calculating check-variable mutual information which is mutual information of a message propagating from a plurality of check nodes to a plurality of variable nodes by a check-variable mutual information calculating unit, calculating variable-check mutual information which is mutual information of a message propagating from the plurality of variable nodes to the plurality of check nodes connected to the plurality of variable nodes based on the check-variable mutual information by a variable-check mutual information calculating unit, and Calculating the entire mutual information which is a sum of variable-check mutual information for each of the plurality of variable nodes and determines an operation order of a variable node having the largest entire mutual information among the plurality of variable nodes to be next, by an operation order determining unit.

MEMORY SYSTEM AND METHOD OF CONTROLLING NONVOLATILE MEMORY

According to one embodiment, a memory system comprises an encoder that encodes by a graph code and a data holding unit that holds data to be used in encoding. A check matrix of the graph code includes first to sixth submatrices, and the encoder produces a first vector obtained by multiplying an information word and the first submatrix, produces a second vector obtained by multiplying the information word and the third submatrix, produces a third vector obtained by multiplying the first vector and the fifth submatrix inverted in sign, produces a fourth vector obtained by adding the third vector and the second vector, produces a first parity obtained by multiplying the fourth vector and the data, produces a fifth vector obtained by multiplying the first parity and the second submatrix inverted in sign, and produces a second parity obtained by adding the fifth vector and the first vector.

LOW-COMPLEXITY LDPC ENCODER

Techniques are described for encoding information data bits using a low-density parity-check matrix optimized for a Low-Density Parity-Check (LDPC) encoder. In an example, the parity-check matrix includes a first matrix and a second matrix. The second matrix is a square matrix, and is also a block diagonal matrix that includes a set of square submatrices located on the diagonal of the block diagonal matrix. An intermediate vector is generated based on the information data bits and the first matrix, and a parity vector of a codeword is generated based on the intermediate vector and the second matrix.

Memory system and method of operating the memory system

A method of operating a memory system includes receiving information data corresponding to a second program unit that is a part of a first program unit and a write request for the information data from a host; generating a codeword by performing error correction code (ECC) encoding on the received information data such that a partial parity bit corresponding to the information data among all parity bits of the codeword is updated; and providing a memory device with the generated codeword and a write command regarding the codeword.