IP Library Granted Patent US 8,918,696
Granted Patent B2
US 8,918,696 · App. 13/084,022 · Granted Dec 23, 2014

Implementation of LDPC selective decoding scheduling

Inventors: Kin Man Ng (Cupertino, CA); Kwok W. Yeung (Milpitas, CA); Lingqi Zeng (Turlock, CA); Yu Kou (San Jose, CA); Aditi R. Ganesan (Sunnyvale, CA)
Assignee: SK hynix memory solutions inc.
H03M13/114H03M13/116
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,918,696
App. No.
13/084,022
Granted
Dec 23, 2014
Kind
B2
Abstract

A method for decoding data is disclosed. The method includes partitioning a low-density parity check (LDPC) matrix into a plurality of groups, each comprising one or more check node layers. The method further includes selecting one of the groups based at least in part on a cost function, the cost function based at least in part on information associated with a variable node, or information associated with a check node, or both. The method further includes performing LDPC layered decoding on the selected group.

Claims (42)

1. A method for decoding data, comprising:

partitioning a low-density parity check (LDPC) matrix by a processor into a plurality of groups, each comprising one or more check node layers;

selecting by the processor one of the groups based at least in part on a cost function, the cost function based at least in part on information associated with a variable node, or information associated with a check node, or both; and

performing by the processor LDPC layered decoding, wherein in a current layer iteration of the LDPC layered decoding, a check node update is performed on a current layer, wherein in a next layer iteration of the LDPC layered decoding, a check node update is not performed on the next sequential layer following the current layer but performed on the selected group, and wherein in the next layer iteration of the LDPC layered decoding, a variable node update is not performed on the selected group but performed on the current layer.

2. The method of claim 1 , wherein one of the one or more check node layers comprises a plurality of circulant matrices, wherein a circulant matrix comprises a square matrix.

3. The method of claim 2 , wherein each of the plurality of circulant matrices has a column weight of one.

4. The method of claim 1 , wherein each of the plurality of groups has a predetermined group column weight.

5. The method of claim 4 , wherein the predetermined group column weight is one or two.

6. The method of claim 4 , wherein performing LDPC layered decoding on the selected group comprises decoding a predetermined number of check node layers in the selected group, wherein the predetermined number of check node layers is equal to the predetermined group column weight.

7. The method of claim 6 , wherein the predetermined number of check node layers in the selected group are selected by a multiplexer (MUX) structure.

8. The method of claim 1 , wherein performing LDPC layered decoding on the selected group comprises:

performing a group prefetch for a check node update for the selected group during a first layer iteration;

performing the check node update during a second layer iteration; and

performing a variable node update corresponding to the check node update during a third layer iteration, wherein the first layer iteration, the second layer iteration, and the third layer iteration are in sequential order.

9. The method of claim 8 , further comprising:

performing a check node update for a first group other than the selected group during the first layer iteration; and

performing a variable node update for a second group other than the selected group during the first layer iteration.

10. The method of claim 1 , wherein the selected group is selected based on the cost function after all of the groups have had a variable node update at least once.

11. The method of claim 1 , wherein a subset of the groups is not eligible for selection based on the cost function.

12. The method of claim 1 , wherein the LDPC matrix is constructed in such a way that the number of groups is reduced.

13. A system for decoding data, comprising:

an interface configured to partition a low-density parity check (LDPC) matrix into a plurality of groups, each comprising one or more check node layers;

a selective layered decoding scheduler configured to select one of the groups based at least in part on a cost function, the cost function based at least in part on information associated with a variable node, or information associated with a check node, or both; and

an LDPC layered decoder configured to perform LDPC layered decoding, wherein in a current layer iteration of the LDPC layered decoding, a check node update is performed on a current layer, wherein in a next layer iteration of the LDPC layered decoding, a check node update is not performed on the next sequential layer following the current layer but performed on the selected group, and wherein in the next layer iteration of the LDPC layered decoding, a variable node update is not performed on the selected group but performed on the current layer.

14. The system of claim 13 , wherein one of the one or more check node layers comprises a plurality of circulant matrices, wherein a circulant matrix comprises a square matrix.

15. The system of claim 14 , wherein each of the plurality of circulant matrices has a column weight of one.

16. The system of claim 13 , wherein each of the plurality of groups has a predetermined group column weight.

17. The system of claim 16 , wherein the predetermined group column weight is one or two.

18. The system of claim 16 , wherein performing LDPC layered decoding on the selected group comprises decoding a predetermined number of check node layers in the selected group, wherein the predetermined number of check node layers is equal to the predetermined group column weight.

19. The system of claim 18 , further comprising a multiplexer (MUX) structure configured to select the predetermined number of check node layers in the selected group.

20. The system of claim 13 , wherein performing LDPC layered decoding on the selected group comprises:

performing a group prefetch for a check node update for the selected group during a first layer iteration;

performing the check node update during a second layer iteration; and

performing a variable node update corresponding to the check node update during a third layer iteration, wherein the first layer iteration, the second layer iteration, and the third layer iteration are in sequential order.

21. The system of claim 20 , wherein the LDPC layered decoder is configured to:

perform a check node update for a first group other than the selected group during the first layer iteration; and

perform a variable node update for a second group other than the selected group during the first layer iteration.

22. The system of claim 13 , further comprising a check node memory block coupled with the selective layered decoding scheduler and the LDPC layered decoder, wherein the check node memory is configured to store results of check node updates.

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

partitioning a low-density parity check (LDPC) matrix into a plurality of groups, each comprising one or more check node layers;

selecting one of the groups based at least in part on a cost function, the cost function based at least in part on information associated with a variable node, or information associated with a check node, or both; and

performing LDPC layered decoding , wherein in a current layer iteration of the LDPC layered decoding, a check node update is performed on a current layer, wherein in a next layer iteration of the LDPC layered decoding, a check node update is not performed on the next sequential layer following the current layer but performed on the selected group, and wherein in the next layer iteration of the LDPC layered decoding, a variable node update is not performed on the selected group but performed on the current layer.

Assignments (2)
CHANGE OF NAME Recorded Feb 25, 2013
From: LINK_A_MEDIA DEVICES CORPORATION
To: SK HYNIX MEMORY SOLUTIONS INC.
Reel/Frame 029872/0465 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2011
From: NG, KIN MAN; YEUNG, KWOK W.; ZENG, LINGQI; KOU, YU; GANESAN, ADITI R.
To: LINK_A_MEDIA DEVICES CORPORATION
Reel/Frame 026355/0813 →
Continuity (2)
Provisional Application 61342141 · Apr 9, 2010
Related Publication 20110252294A1 · Oct 13, 2011