Syndrome layered decoding for LDPC codes
First Claim
1. An LDPC error control decoding system, comprising:
- a set of parallel variable node processing units (VNUs) for updating N variable nodes, wherein N is an integer;
a port for receiving read data from a storage medium, the read data corresponding to the N variable nodes;
a set of parallel check node processing units (CNUs) for updating M check nodes, wherein M is an integer, each check node having a respective syndrome check;
wherein each of the N variable nodes is logically coupled with a corresponding subset of the M check nodes, and each of the M check nodes is logically coupled with a corresponding subset of the N variable nodes;
control logic coupled with the set of parallel VNUs and the set of parallel CNUs, configured to perform a set of operations, including;
enabling one or more VNUs of the set of parallel VNUs to update a subset of the N variable nodes, so as to generate for each updated variable node a respective new hard decision bit and an α
nm message;
enabling one or more CNUs of the set of parallel CNUs to update all check nodes of the M check nodes logically coupled with the updated subset of the N variable nodes, in accordance with the new hard decision bits and α
nm messages generated for the updated subset of the N variable nodes, so as to generate, for each of the updated check nodes, updated check node output data including at least an updated syndrome check, wherein generating the updated syndrome check for a respective check node of the M check nodes comprises identifying variable nodes for which the received new hard decision bit is different from a corresponding previously stored hard decision bit, counting the identified variable nodes, and inverting a previous syndrome check for the respective check node in accordance with a determination that the count is an odd number;
determining whether the syndrome checks for all the M check nodes are valid syndrome checks;
in accordance with a determination that the syndrome checks for all the M check nodes are valid syndromes, stopping decoding the read data; and
in accordance with a determination that the syndrome checks for all the M check nodes include at least one invalid syndrome check, initiating performance of the set of operations with respect to a next subset of the N variable nodes.
3 Assignments
0 Petitions
Accused Products
Abstract
The various implementations described herein include systems, methods and/or devices for enhancing the performance of error control decoding. The method includes receiving at an LDPC decoder data from a storage medium corresponding to N variable nodes. The method further includes: updating a subset of the N variable nodes; updating all check nodes logically coupled to the updated subset of the N variable nodes; and generating check node output data for each updated check node including at least an updated syndrome check. Finally, the method includes: stopping decoding of the read data in accordance with a determination that the syndrome checks for all the M check nodes are valid syndrome checks or initiating performance of the set of operations with respect to a next subset of the N variable nodes in accordance with a determination that the syndrome checks for all the M check nodes include one invalid syndrome check.
303 Citations
18 Claims
-
1. An LDPC error control decoding system, comprising:
-
a set of parallel variable node processing units (VNUs) for updating N variable nodes, wherein N is an integer; a port for receiving read data from a storage medium, the read data corresponding to the N variable nodes; a set of parallel check node processing units (CNUs) for updating M check nodes, wherein M is an integer, each check node having a respective syndrome check; wherein each of the N variable nodes is logically coupled with a corresponding subset of the M check nodes, and each of the M check nodes is logically coupled with a corresponding subset of the N variable nodes; control logic coupled with the set of parallel VNUs and the set of parallel CNUs, configured to perform a set of operations, including; enabling one or more VNUs of the set of parallel VNUs to update a subset of the N variable nodes, so as to generate for each updated variable node a respective new hard decision bit and an α
nm message;enabling one or more CNUs of the set of parallel CNUs to update all check nodes of the M check nodes logically coupled with the updated subset of the N variable nodes, in accordance with the new hard decision bits and α
nm messages generated for the updated subset of the N variable nodes, so as to generate, for each of the updated check nodes, updated check node output data including at least an updated syndrome check, wherein generating the updated syndrome check for a respective check node of the M check nodes comprises identifying variable nodes for which the received new hard decision bit is different from a corresponding previously stored hard decision bit, counting the identified variable nodes, and inverting a previous syndrome check for the respective check node in accordance with a determination that the count is an odd number;determining whether the syndrome checks for all the M check nodes are valid syndrome checks; in accordance with a determination that the syndrome checks for all the M check nodes are valid syndromes, stopping decoding the read data; and in accordance with a determination that the syndrome checks for all the M check nodes include at least one invalid syndrome check, initiating performance of the set of operations with respect to a next subset of the N variable nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An LDPC error control decoding system, comprising:
-
a set of parallel variable node processing units (VNUs) for updating N variable nodes, wherein N is an integer; a port for receiving read data from a storage medium, the read data corresponding to the N variable nodes; a set of parallel check node processing units (CNUs) for updating M check nodes, wherein M is an integer, each check node having a respective syndrome check; wherein each of the N variable nodes is logically coupled with a corresponding subset of the M check nodes, and each of the M check nodes is logically coupled with a corresponding subset of the N variable nodes; control logic coupled with the set of parallel VNUs and the set of parallel CNUs, configured to perform a set of operations, including; enabling one or more VNUs of the set of parallel VNUs to update a subset of the N variable nodes, so as to generate for each updated variable node a respective new hard decision bit and an α
nm message;enabling one or more CNUs of the set of parallel CNUs to update all check nodes of the M check nodes logically coupled with the updated subset of the N variable nodes, in accordance with the new hard decision bits and α
nm messages generated for the updated subset of the N variable nodes, so as to generate, for each of the updated check nodes, updated check node output data including at least an updated syndrome check wherein generating the updated check node output data including at least an updated syndrome check, wherein generating the updated syndrome check for a respective check node of the M check nodes comprises identifying each respective variable node for which the received new hard decision bit is different from a corresponding previously stored hard decision bit, and performing an XOR of a previously stored syndrome, with only the new hard decision bit for the each identified respective variable node of the corresponding subset of the N variable nodes, and a corresponding previously stored hard decision bit for each identified respective variable node of the corresponding subset of the N variable nodes;determining whether the syndrome checks for all the M check nodes are valid syndrome checks; in accordance with a determination that the syndrome checks for all the M check nodes are valid syndromes, stopping decoding the read data; and in accordance with a determination that the syndrome checks for all the M check nodes include at least one invalid syndrome check, initiating performance of the set of operations with respect to a next subset of the N variable nodes.
-
-
10. A method of LDPC error control decoding, the method comprising:
-
at an LDPC decoder with a set of parallel variable node processing units (VNUs) for updating N variable nodes, wherein N is an integer, a port coupled to a storage medium, a set of parallel check node processing units (CNUs) for updating M check nodes, wherein M is an integer, each check node having a respective syndrome check, and control logic coupled with the set of parallel VNUs and the set of parallel CNUs; receiving read data from the storage medium at the port, the read data corresponding to the N variable nodes, wherein each of the N variable nodes is logically coupled with a corresponding subset of the M check nodes, and each of the M check nodes is logically coupled with a corresponding subset of the N variable nodes; updating via one or more VNUs of the set of parallel VNUs a subset of the N variable nodes, so as to generate for each updated variable node a respective new hard decision bit and a α
nm message;in accordance with the new hard decision bits and α
nm messages generated for the updated subset of the N variable nodes, updating via one or more CNUs of the set of parallel CNUs all check nodes of the M check nodes logically coupled with the updated subset of the N variable nodes, so as to generate, for each of the updated check nodes, updated check node output data including at least an updated syndrome check, wherein generating the updated syndrome check for a respective check node of the M check nodes comprises identifying variable nodes for which the received new hard decision bit is different from a corresponding previously stored hard decision bit, counting the identified variable nodes, and inverting previous syndrome check for the respective check node in accordance with a determination that the count is an odd number;determining whether the syndrome checks for all the M check nodes are valid syndrome checks; in accordance with a determination that the syndrome checks for all the M check nodes are valid syndrome checks, stopping decoding the read data; and in accordance with a determination that the syndrome checks for all the M check nodes include at least one invalid syndrome check, initiating performance of the set of operations with respect to a next subset of the N variable nodes. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A method of LDPC error control decoding, the method comprising:
-
at an LDPC decoder with a set of parallel variable node processing units (VNUs) for updating N variable nodes, wherein N is an integer, a port coupled to a storage medium, a set of parallel check node processing units (CNUs) for updating M check nodes, wherein M is an integer, each check node having a respective syndrome check, and control logic coupled with the set of parallel VNUs and the set of parallel CNUs; receiving read data from the storage medium at the port, the read data corresponding to the N variable nodes, wherein each of the N variable nodes is logically coupled with a corresponding subset of the M check nodes, and each of the M check nodes is logically coupled with a corresponding subset of the N variable nodes; updating via one or more VNUs of the set of parallel VNUs a subset of the N variable nodes, so as to generate for each updated variable node a respective new hard decision bit and a α
nm message;in accordance with the new hard decision bits and α
nm messages generated for the updated subset of the N variable nodes, updating via one or more CNUs of the set of parallel CNUs all check nodes of the M check nodes logically coupled with the updated subset of the N variable nodes, so as to generate, for each of the updated check nodes, updated check node output data including at least an updated syndrome check, wherein generating the updated syndrome check for a respective check node of the M check nodes comprises identifying each respective variable node for which the received new hard decision bit is different from a corresponding previously stored hard decision bit, and performing an XOR of a previously stored syndrome, with only the new hard decision bit for each identified respective variable node of the corresponding subset of the N variable nodes, and a corresponding previously stored hard decision bit for each identified respective variable node of the corresponding subset of the N variable nodes;determining whether the syndrome checks for all the M check nodes are valid syndrome checks; in accordance with a determination that the syndrome checks for all the M check nodes are valid syndrome checks, stopping decoding the read data; and in accordance with a determination that the syndrome checks for all the M check nodes include at least one invalid syndrome check, initiating performance of the set of operations with respect to a next subset of the N variable nodes.
-
Specification