IP Library › Granted Patent US 9,602,141
Granted Patent B2
US 9,602,141 · App. 14/257,800 · Granted Mar 21, 2017

High-speed multi-block-row layered decoder for low density parity check (LDPC) codes

Inventors: Xinmiao Zhang (Seattle, WA); Ying Yu Tai (Mountain View, CA)
Assignee: SANDISK TECHNOLOGIES LLC
H03M13/616H03M13/1102H03M13/114H03M13/116H03M13/1111H03M13/6502G11C2029/0411
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 9,602,141
App. No.
14/257,800
Granted
Mar 21, 2017
Kind
B2
Abstract

High-speed multi-block-row layered decoding for low density parity check (LDPC) codes is disclosed. In a particular embodiment, a method, in a device that includes a decoder configured to perform an iterative decoding operation, includes processing, at the decoder, first and second block rows of a layer of a parity check matrix simultaneously to generate a first output and a second output. The method includes performing processing of the first output and the second output to generate a first result of a first computation and a second result of a second computation. A length of a “critical path” of the decoder is reduced as compared to a critical path length in which a common feedback message is computed.

Claims (68)

1. A data storage device comprising:

a non-volatile memory; and

a controller operatively coupled to the non-volatile memory, the controller including a decoder that is configured to perform an iterative decoding operation using codeword data read from the non-volatile memory, wherein the decoder comprises:

a first check node unit configured to process a first input associated with a first block row of a layer of a parity check matrix;

a second check node unit configured to process a second input associated with a second block row of the layer of the parity check matrix;

first processing circuitry configured to receive a buffered second input from a second buffer, a first output of the first check node unit, and a second output of the second check node unit and to output a first result based on a first computation; and

second processing circuitry configured to receive a buffered first input from a first buffer, the first output, and the second output and to output a second result based on a second computation,

wherein a length of a critical path of the decoder is reduced as compared to a critical path length in which a common feedback message is computed.

2. The data storage device of claim 1 , wherein the critical path includes components configured to form the first result and to provide the first result via a first path to the second check node unit.

3. The data storage device of claim 1 , wherein:

the decoder includes a low-density parity check (LDPC) decoder, and

the critical path is a shortest among multi-block row layer decoders.

4. The data storage device of claim 1 , wherein:

the first result is associated with the first block row of the layer,

the second result is associated with the second block row of the layer, and

the first result is distinct from the second result.

5. The data storage device of claim 1 , further comprising a first memory coupled to the first check node unit and a second memory coupled to the second check node unit.

6. The data storage device of claim 5 , wherein:

the first processing circuitry includes a first adding circuit, and

the first adding circuit includes a first input configured to receive the first output from the first check node unit and a second input configured to receive a third output from the first memory.

7. The data storage device of claim 6 , wherein:

the first check node unit is configured to generate the third output during a previous iteration, and

the first memory is configured to store the third output for use in a later iteration.

8. The data storage device of claim 1 , further comprising:

a first path configured to provide the first result to the second check node unit; and

a second path configured to provide the second result to the first check node unit,

wherein the first path is distinct from the second path.

9. The data storage device of claim 8 , wherein:

the second path includes a first multiplexor configured to select between the codeword data and a second intermediate value, and

the first path includes a second multiplexor configured to select between the codeword data and a first intermediate value.

10. The data storage device of claim 9 , wherein the first multiplexor and the second multiplexor are configured to select the codeword data during decoding of a first layer.

11. The data storage device of claim 1 , wherein:

the first buffer is configured to store the first input during processing of the first input by the first check node unit, and

the second buffer is configured to store the second input during processing of the second input by the second check node unit.

12. The data storage device of claim 1 , wherein:

the non-volatile memory includes a three-dimensional (3D) memory configuration that is monolithically formed in one or more physical levels of arrays of storage elements having an active area disposed above a silicon substrate, and

the data storage device includes circuitry associated with operation of the storage elements.

13. A method comprising:

in a data storage device including a controller and a non-volatile memory, wherein the controller includes a decoder configured to perform an iterative decoding operation using codeword data read from the non-volatile memory, performing:

processing, at a first check node unit of the decoder, a first input associated with a first block row of a layer of a parity check matrix to generate a first output;

processing, at a second check node unit of the decoder, a second input associated with a second block row of the layer of the parity check matrix to generate a second output;

performing first processing of a buffered second input from a second buffer, the first output of the first check node unit, and the second output of the second check node unit to generate a first result based on a first computation; and

performing second processing of a buffered first input from a first buffer, the first output, and the second output to generate a second result based on a second computation,

wherein a length of a critical path of the decoder is reduced as compared to a critical path length in which a common feedback message is computed.

14. The method of claim 13 , wherein the parity check matrix includes a low-density parity-check (LDPC) matrix.

15. The method of claim 13 , further comprising:

receiving, at a first input of a first adding circuit included in first processing circuitry, the first output from the first check node unit; and

receiving, at a second input of the first adding circuit, another output of the first check node unit, wherein the other output is generated by the first check node unit during a previous iteration and stored in a first memory for use in a later iteration.

16. The method of claim 13 , further comprising:

providing the first result to the second check node unit via a first path; and

providing the second result to the first check node unit via a second path, wherein the first path is distinct from the second path.

17. The method of claim 16 , wherein:

the first path includes a first multiplexor that selects between the codeword data and a second intermediate value, and

the second path includes a second multiplexor that selects between the codeword data and a first intermediate value.

18. The method of claim 13 , wherein the first buffer is coupled to the first check node unit, wherein the second buffer is coupled to the second check node unit, and further comprising:

storing the first input at the first buffer during processing of the first input by the first check node unit; and

storing the second input at the second buffer during processing of the second input by the second check node unit.

19. The method of claim 13 , wherein:

the non-volatile memory includes a three-dimensional (3D) memory configuration that is monolithically formed in one or more physical levels of arrays of storage elements having an active area disposed above a silicon substrate, and

the data storage device includes circuitry associated with operation of the storage elements.

20. A data storage device comprising:

means for storing information; and

means for controlling the means for storing, the means for controlling including means for iteratively decoding data using codeword data read from the means for storing, wherein the means for iteratively decoding comprises:

first check node means for processing a first input associated with a first block row of a layer of a parity check matrix;

second check node means for processing a second input associated with a second block row of the layer of the parity check matrix;

first processing means for receiving a buffered second input from a second means for buffering, a first output of the first check node means, and a second output of the second check node means and for outputting a first result based on a first computation; and

second processing means for receiving a buffered first input from a first means for buffering, the first output, and the second output and for outputting a second result based on a second computation,

wherein a length of a critical path of the means for iteratively decoding is reduced as compared to a critical path length in which a common feedback message is computed.

Assignments (3)
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2016
From: SANDISK ENTERPRISE IP LLC
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 038295/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2014
From: ZHANG, XINMIAO; TAI, YING YU
To: SANDISK ENTERPRISE IP LLC
Reel/Frame 032721/0340 →
Continuity (1)
Related Publication 20150301887A1 · Oct 22, 2015