IP Library Granted Patent US 8,443,257
Granted Patent B1
US 8,443,257 · App. 13/039,068 · Granted May 14, 2013

Rate-scalable, multistage quasi-cyclic LDPC coding

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,443,257
App. No.
13/039,068
Granted
May 14, 2013
Kind
B1
Abstract

Encoding is performed by dividing a quasi-cyclic low-density parity-check (QC-LDPC) parity check matrix into a first sub-matrix and a second sub-matrix. The first sub-matrix includes a plurality of circulant vectors and the plurality of circulant vectors is associated with a circulant size. Input data is received having a length which is a product of an integer multiplier and the circulant size. A first stage of multi-stage LDPC encoding is performed using the input data and a subset of the plurality of circulant vectors; the number of circulant vectors in the subset equals the integer multiplier.

Claims (49)

1. A system for encoding, comprising:

a processor configured to divide a quasi-cyclic low-density parity-check (QC-LDPC) parity check matrix into a first sub-matrix and a second sub-matrix, wherein the first sub-matrix includes a plurality of circulant vectors and the plurality of circulant vectors is associated with a circulant size;

an interface configured to receive input data having a length which is a product of an integer multiplier and the circulant size; and

an encoder configured to perform a first stage of multi-stage LDPC encoding using the input data and a subset of the plurality of circulant vectors, wherein the number of circulant vectors in the subset equals the integer multiplier.

2. The system recited in claim 1 , wherein the encoder generates LDPC encoded data and the system further includes storage configured to store the LDPC encoded data.

3. The system recited in claim 2 , wherein the storage includes one or more of the following: magnetic disk storage or Flash storage.

4. The system recited in claim 1 , wherein the plurality of circulant vectors includes at least one column of circulants.

5. The system recited in claim 1 , wherein the subset only includes circulant vectors which are contiguous to each other within the first sub-matrix.

6. The system recited in claim 1 , wherein the interface is further configured to obtain the integer multiplier, including by counting the length of the input data.

7. The system recited in claim 1 further comprising:

storage configured to store information associated with a plurality of QC-LDPC codes; and

a controller configured to:

receive a selection of one of the plurality of QC-LDPC codes; and

in response to receiving the selection: retrieve information stored in the storage associated with the selected one of the plurality of QC-LDPC codes and program the encoder with at least some of the retrieved information.

8. The system recited in claim 1 , wherein:

the parity check matrix is associated with a generator matrix which includes a plurality of circulants; and

the system further includes storage configured to store the generator matrix by storing, for at least one of the plurality of circulants, one and only one vector from said at least one of the plurality of circulants.

9. The system recited in claim 1 , wherein:

the parity check matrix includes a plurality of circulants; and

the system further includes storage configured to store the parity check matrix by storing, for at least one of the plurality of circulants, one and only one vector from said at least one of the plurality of circulants.

10. The system recited in claim 1 , wherein:

the parity check matrix includes a plurality of circulants; and

the system further includes storage configured to store the parity check matrix by storing, for at least one of the plurality of circulants, the location(s) of the 1's in one and only one vector from said at least one of the plurality of circulants.

11. The system recited in claim 10 , wherein: storing the location(s) of the 1's is performed 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.

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

13. A method for encoding, comprising:

using a processor to divide a quasi-cyclic low-density parity-check (QC-LDPC) parity check matrix into a first sub-matrix and a second sub-matrix, wherein the first sub-matrix includes a plurality of circulant vectors and the plurality of circulant vectors is associated with a circulant size;

receiving input data having a length which is a product of an integer multiplier and the circulant size; and

performing a first stage of multi-stage LDPC encoding using the input data and a subset of the plurality of circulant vectors, wherein the number of circulant vectors in the subset equals the integer multiplier.

14. The method recited in claim 13 , wherein encoding generates LDPC encoded data and the method further includes storage configured to store the LDPC encoded data.

15. The method recited in claim 14 , wherein the storage includes one or more of the following: magnetic disk storage or Flash storage.

16. The method recited in claim 13 , wherein the plurality of circulant vectors includes at least one column of circulants.

17. The method recited in claim 13 , wherein the subset only includes circulant vectors which are contiguous to each other within the first sub-matrix.

18. The method recited in claim 13 , further comprising obtaining the integer multiplier, including by counting the length of the input data.

19. The method recited in claim 13 further comprising:

storing information associated with a plurality of QC-LDPC codes; and

receiving a selection of one of the plurality of QC-LDPC codes; and

in response to receiving the selection: retrieving stored information associated with the selected one of the plurality of QC-LDPC codes and programming an encoder, which performs first stage of multi-stage LDPC encoding, with at least some of the retrieved information.

20. The method recited in claim 13 , wherein:

the parity check matrix is associated with a generator matrix which includes a plurality of circulants; and

the method further includes storing the generator matrix by storing, for at least one of the plurality of circulants, one and only one vector from said at least one of the plurality of circulants.

21. The method recited in claim 13 , wherein:

the parity check matrix includes a plurality of circulants; and

the method further includes storing the parity check matrix by storing, for at least one of the plurality of circulants, one and only one vector from said at least one of the plurality of circulants.

22. The method recited in claim 13 , wherein:

the parity check matrix includes a plurality of circulants; and

the method further includes storing the parity check matrix by storing, for at least one of the plurality of circulants, the location(s) of the 1's in one and only one vector from said at least one of the plurality of circulants.

23. The method recited in claim 22 , wherein: storing the location(s) of the 1's is performed 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.

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

Assignments (2)
CHANGE OF NAME Recorded Feb 22, 2013
From: LINK_A_MEDIA DEVICES CORPORATION
To: SK HYNIX MEMORY SOLUTIONS INC.
Reel/Frame 029857/0338 →
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/0143 →
Continuity (4)
Continuation In Part 12970731 · Dec 16, 2010
Provisional Application 61339564 · Mar 4, 2010
Provisional Application 61330627 · May 3, 2010
Provisional Application 61337287 · Feb 1, 2010