Efficient LDPC encoder for irregular code
AssigneeSK hynix Inc.
InventorsWei-Hao Yuan, Lingqi Zeng, Aman Bhatia, Johnson Yen
Life of this patent
Estimating the term…
Abstract
A first memory location stores circulant contents of portions A, C, E, and B of a parity check matrix H. A second memory location stores circulant column counts of the portions A, C, E, and B. A third memory location stores a dense matrix equal to (ET−1B+D)−1, where T is an identity matrix and D and T are also portions of the parity check matrix H. First and second parity information is generated in response to receiving information data. Generating the first and second parity information includes accessing the circular content of the portions A, C, E, and B of a parity check matrix H and accessing the circulant column counts of the portions A, C, E, and B.
Claims20
A memory system comprising:
- an array of memory locations;
- and
- a low density parity check (LDPC) encoder for irregular LDPC codes, the LDPC encoder comprising:
- a first encoder memory location storing circulant contents of A, C, E, and B, where A, C, E, and B are portions of a parity check matrix H;
- a circulant pointer that points to a first address of the first encoder memory location, the first address marking a start of the circulant content of E;
- a second encoder memory location storing circulant column counts of A, C, E, and B;
- a column count pointer that points to a second address of the second encoder memory location, the second address marking a start of the circulant column count of E;
- and
- a third encoder memory location configured to reduce a processing burden by storing a pre-calculated dense matrix, wherein the pre-calculated dense matrix is equal to (ET−1B+D)−1, wherein T is an identity matrix, wherein the third encoder memory location is further configured to reduce a memory requirement by not storing T in the array of memory locations, wherein D and T are also portions of the parity check matrix H, and wherein the encoder is configured to receive information data, ut, and configured to:
- generate a first product by multiplying the information data by (E*A+C), wherein generating the first product includes using the circulant pointer and the column count pointer to access the first and second encoder memory locations;
- generate first parity information P1t by multiplying the pre-calculated dense matrix by the first product;
- generate second parity information P2t, where the second parity information equals (A*+ut+B*P1t);
- and
- generate an irregular LDPC code based on the second parity information.
A method for use in a low density parity check (LDPC) encoder for irregular LDPC codes of a memory system, the method comprising:
- receiving information data, ut;
- multiplying the information data by (E*A+C), where E, A, and C are portions of a parity check matrix H, wherein multiplying the information data by (E*A+C) includes:
- accessing a first memory location that stores a circulant content of A, C, and E;
- accessing a circulant pointer that points to a first address of the first memory location that marks a start of a circulant content of E;
- accessing a second memory location that stores a circulant column count of A, C, and E;
- and
- accessing a column count pointer that points to a second address of the second memory location that marks a start of the circulant column count of E;
- storing a first product of multiplying the information data by (E*A+C) in a first buffer;
- accessing a third memory location configured to reduce a processing burden by storing a pre-calculated dense matrix, wherein the pre-calculated dense matrix is equal to (ET−1B+D)−1, wherein T is an identity matrix, wherein the third memory location is further configured to reduce a memory requirement by not storing T in an array of memory locations, and wherein D and T are also portions of the parity check matrix H;
- generating first parity information P1t by multiplying the pre-calculated dense matrix by the first product;
- generating second parity information P2t, where the second parity information equals (A*ut+B*P1t), generating the second parity information including:
- accessing the first memory location that stores a circulant content of B, where B is a portion of the parity check matrix H;
- and
- accessing the second memory location that stores a circulant column count of B;
- and
- generating an irregular LDPC code based on the second parity information.
Dependencies are inferred from the claim text.