IP Library Granted Patent US 8,504,894
Granted Patent B1
US 8,504,894 · App. 13/039,040 · Granted Aug 6, 2013

Systematic encoding for non-full row rank, quasi-cyclic LDPC parity check matrices

Inventors: Lingqi Zeng (San Jose, CA); Yu Kou (San Jose, CA); Kin Man Ng (Cupertino, CA); Kwok W. Yeung (Milpitas, CA)
Assignee: SK hynix memory solutions inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,504,894
App. No.
13/039,040
Granted
Aug 6, 2013
Kind
B1
Abstract

Encoding is performed by putting a low-density parity-check (LDPC) generator matrix into partial quasi-cyclic form comprising an identity matrix, a parity generator matrix, a zero matrix and a remainder matrix. The parity generator matrix is quasi-cyclic and the remainder matrix is not quasi-cyclic. An encoder is used to generate LDPC encoded data using the parity generator matrix and without using the remainder matrix.

Claims (50)

1. A system for encoding, comprising:

a controller which:

receives an indication associated with loading a low-density parity-check (LDPC) code;

accesses, from storage, a building block associated with the LDPC code based at least in part on the received indication; and

provides the building block at least once to an encoder;

a pad inserter which, in the event the LDPC code is associated with a non-full row rank parity check matrix, inserts a pad into input data; and

the encoder which generates, in the event the LDPC code is associated with a non-full row rank parity check matrix, LDPC encoded data using (1) a parity generator matrix, which includes the building block and an all zeros vector which spans the entire width of the parity generator matrix, and (2) the input data with the pad inserted.

2. The system recited in claim 1 , wherein the LDPC encoded data is stored on storage and the storage includes one or more of the following: magnetic disk storage or Flash storage.

3. The system recited in claim 1 , wherein the controller further:

accesses, from the storage, a height; and

provides the height to the pad inserter, wherein the length of the pad inserted by the pad inserter is based at least in part on the height.

4. The system recited in claim 1 , wherein:

the parity generator matrix includes a plurality of circulants (G i,j ); and

the building block includes one and only one vector from at least one of the plurality of circulants.

5. The system recited in claim 1 , wherein:

the parity generator matrix has a corresponding parity check matrix (H) which includes a plurality of circulants (H i,j );

the building block includes one and only one vector from at least one of the plurality of circulants.

6. The system recited in claim 1 , wherein:

the parity generator matrix has a corresponding parity check matrix (H) which includes a plurality of circulants (H i,j ); and

the building block includes the location(s) of the 1's in one and only one vector from at least one of the plurality of circulants.

7. The system recited in claim 6 , wherein the building block includes the location(s) of the 1's in the event the number of 1's in the parity check matrix is less than b/(ceil(log 2 (b))) where b is the circulant size.

8. The system recited in claim 6 , wherein the location(s) of the 1's includes the location(s) in non base 2 .

9. A method for encoding, comprising:

receiving an indication associated with loading a low-density parity-check (LDPC) code;

accessing, from storage, a building block associated with the LDPC code based at least in part on the received indication;

providing the building block at least once to an encoder;

in the event the LDPC code is associated with a non-full row rank parity check matrix, inserting a pad into input data; and

using an encoder to generate, in the event the LDPC code is associated with a non-full row rank parity check matrix, LDPC encoded data using (1) a parity generator matrix, which includes the building block and an all zeros vector which spans the entire width of the parity generator matrix, and (2) the input data with the pad inserted.

10. The method recited in claim 9 , wherein the LDPC encoded data is stored on storage and the storage includes one or more of the following:

magnetic disk storage or Flash storage.

11. The method recited in claim 9 , further comprising:

accessing, from the storage, a height; and

providing the height to the pad inserter, wherein the length of the pad inserted is based at least in part on the height.

12. The method recited in claim 9 , wherein:

the parity generator matrix includes a plurality of circulants (G i,j ); and

the building block includes one and only one vector from at least one of the plurality of circulants.

13. The method recited in claim 9 , wherein:

the parity generator matrix has a corresponding parity check matrix (H) which includes a plurality of circulants (H i,j );

the building block includes one and only one vector from at least one of the plurality of circulants.

14. The method recited in claim 9 , wherein:

the parity generator matrix has a corresponding the parity check matrix (H) which includes a plurality of circulants (H i,j ); and

the building block includes the location(s) of the 1's in one and only one vector from at least one of the plurality of circulants.

15. The method recited in claim 14 , wherein the building block includes the location(s) of the 1's in the event the number of 1's in the parity check matrix is less than b/(ceil(log 2 (b))) where b is the circulant size.

16. The method recited in claim 14 , wherein the location(s) of the 1's includes the location(s) in non base 2 .

17. A computer program product for encoding, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving an indication associated with loading a low-density parity-check (LDPC) code;

accessing, from storage, a building block associated with the LDPC code based at least in part on the received indication;

providing the building block at least once to an encoder;

in the event the LDPC code is associated with a non-full row rank parity check matrix, inserting a pad into input data; and

using an encoder to generate, in the event the LDPC code is associated with a non-full row rank parity check matrix, LDPC encoded data using (1) a parity generator matrix, which includes the building block and an all zeros vector which spans the entire width of the parity generator matrix, and (2) the input data with the pad inserted.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2013
From: LINK_A_MEDIA DEVICES CORPORATION
To: SK HYNIX MEMORY SOLUTIONS INC.
Reel/Frame 029891/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2011
From: ZENG, LINGQI; KOU, YU; NG, KIN MAN; YEUNG, KWOK W.
To: LINK_A_MEDIA DEVICES CORPORATION
Reel/Frame 026123/0125 →
Continuity (2)
Provisional Application 61339564 · Mar 4, 2010
Provisional Application 61330627 · May 3, 2010