IP Library Granted Patent US 10,122,382
Granted Patent B2
US 10,122,382 · App. 15/269,686 · Granted Nov 6, 2018

VSS LDPC decoder with improved throughput for hard decoding

Inventors: Abhiram Prabhakar (Fremont, CA); Johnson Yen (Fremont, CA); Ngok Ying Chu (Los Altos, CA)
Assignee: SK Hynix Inc.
H03M13/1108G06F11/1012H03M13/1111H03M13/1122H03M13/2906H03M13/3707H03M13/3723H03M13/09
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 10,122,382
App. No.
15/269,686
Granted
Nov 6, 2018
Kind
B2
Abstract

Memory systems may include a memory storage, a pre-processing checksum unit suitable for, during a first decoding iteration, receiving hard read data including channel input (Lch) sign values, and computing a checksum of the Lch sign values as a checksum_pre value, and a low-density parity-check (LDPC) decoder including an Lch memory and a checksum update unit, the LDPC decoder suitable for, during the first decoding iteration, storing the Lch sign values in the Lch memory of the LDPC decoder, receiving, with the checksum update unit, the checksum_pre value, and decoding a codeword in at least a second decoding iteration based at least in part on the checksum_pre value computed and received being a parity check on the hard read performed in the first decoding iteration.

Claims (60)

1. A memory system, comprising:

a memory device; and

a processor in communication with, and configured to control, the memory device, wherein the memory device includes:

a memory storage; and

a read processor coupled with the memory storage, wherein the read processor includes a pre-processing checksum unit and a low-density parity-check (LDPC) decoder that share registers and memory,

the pre-processing checksum unit configured to, during a first decoding iteration:

receive hard read data including channel input (Lch) sign values, wherein the hard read data corresponds to data read from the memory storage;

compute a checksum of the Lch sign values and conduct a parity check, as a checksum_pre value; and

output the checksum_pre value to the LDPC decoder;

the LDPC decoder including an Lch memory and a checksum update unit, the LDPC decoder configured to,

during the first decoding iteration:

store the checksum_pre value received from the pre-processing checksum unit in the Lch memory of the LDPC decoder;

receive, by the checksum update unit, the checksum_pre value; and

pipeline the checksum_pre value for a second decoding iteration, wherein the LDPC decoder does not perform error correction during the first decoding iteration; and

in at least the second decoding iteration,

decode a codeword, using the registers and memory shared with the pre-processing checksum unit, based at least in part on the computed and received checksum_pre value, which includes the parity check on the hard read data operations performed by the pre-processing checksum unit in the first decoding iteration; and

update the checksum value, using the checksum update unit, for a next decoding iteration when the second decoding iteration fails; and

return the decoded codeword when the second decoding iteration is successful.

2. The memory system of claim 1 , wherein the LDPC decoder further includes a check node update (CNU) unit configured to store the Lch sign values stored in the Lch memory as a sgn_mem value during the second decoding iteration.

3. The memory system of claim 1 , wherein the LDPC decoder further includes a check node update (CNU) unit configured to receive the checksum_pre value during the first decoding iteration and store the checksum_pre value as an all_sgn value.

4. The memory system of claim 1 , wherein the LDPC decoder comprises a min-sum LDPC decoder.

5. The memory system of claim 1 , wherein the LDPC decoder further includes a check node update (CNU) unit configured to initialize a minimum read value field and a minimum read value location field at the beginning of the second decoding iteration.

6. The memory system of claim 1 , wherein the LDPC decoder is available for decoding from the second decoding iteration to the final decoding iteration.

7. A method, comprising:

receiving, with a pre-processing checksum unit of a read processor of a memory device, hard read data including channel input Lch sign values, wherein the hard read data corresponds to data read from a memory storage of the memory device;

computing, using the pre-processing checksum unit, a checksum of the Lch sign values and conducting a parity check, as a checksum_pre value;

outputting the checksum_pre value to a low-density parity-check (LDPC) decoder of the read processor;

during a first decoding iteration:

storing, by the LDPC decoder, the checksum_pre value received from the pre-processing checksum unit in a Lch memory of the LDPC decoder;

receiving, by a checksum update unit of the LDPC decoder, the checksum_pre value; and

pipelining, by the LDPC decoder, the checksum_pre value for a second decoding iteration, wherein the LDPC decoder does not perform error correction during the first decoding iteration; and

in at least the second decoding iteration,

decoding, using the LDPC decoder and registers and memory shared by the LDPC decoder and the pre-processing checksum unit, a codeword based at least in part on the computed and received checksum_pre value, which includes the parity check on the hard read operations performed by the pre-processing checksum unit in the first decoding iteration; and

update the checksum value, using the checksum update unit, for a next decoding iteration when the second decoding iteration fails; and

returning the decoded codeword when the second decoding iteration is successful.

8. The method of claim 7 , further comprising storing, with a check node update unit of the LDPC decoder, the Lch sign values stored in the Lch memory as a sgn_mem value during the second decoding iteration.

9. The method of claim 7 , further comprising receiving, with a check node update unit of the LDPC decoder, the checksum_pre value during the first decoding iteration and storing the checksum_pre value as an all_sgn value.

10. The method of claim 7 , wherein the LDPC decoder comprises a min-sum LDPC decoder.

11. The method of claim 7 , further comprising initializing, with a check node update unit of the LDPC decoder, a minimum read value field and a minimum read value location field at the beginning of the second decoding iteration.

12. The method of claim 7 , wherein the LDPC decoder is available for decoding from the second decoding iteration to the final decoding iteration.

13. A memory device, comprising:

a memory storage; and

a read processor coupled with the memory storage, wherein the read processor includes a pre-processing checksum unit and a low-density parity-check (LDPC) decoder that share registers and memory, the pre-processing checksum unit configured to, during a first decoding iteration:

receive hard read data including channel input (Lch) sign values, wherein the hard read data corresponds to data read from the memory storage;

compute a checksum of the Lch sign values and conduct a parity check, as a checksum_pre value; and

output the checksum_pre value to the LDPC decoder;

the LDPC decoder including an Lch memory and a checksum update unit, the LDPC decoder configured to,

during the first decoding iteration:

store the checksum_pre value received from the pre-processing checksum unit in the Lch memory of the LDPC decoder;

receive, by the checksum update unit, the checksum_pre value;

pipeline the checksum_pre value for a second decoding iteration, wherein the LDPC decoder does not perform error correction during the first decoding iteration; and

in at least the second decoding iteration,

decode a codeword, using the registers and memory shared with the pre-processing checksum unit, based at least in part on the computed and received checksum_pre value, which includes the parity check on the hard read data operations performed by the pre-processing checksum unit in the first decoding iteration; and

update the checksum value, using the checksum update unit, for a next decoding iteration when the second decoding iteration fails; and

return the decoded codeword when the second decoding iteration is successful.

14. The memory device of claim 13 , wherein the LDPC decoder further includes a check node update (CNU) unit configured to store the Lch sign values stored in the Lch memory as a sgn_mem value during the second decoding iteration.

15. The memory device of claim 13 , wherein the LDPC decoder further includes a check node update (CNU) unit configured to receive the checksum_pre value during the first decoding iteration and store the checksum_pre value as an all_sgn value.

16. The memory device of claim 13 , wherein the LDPC decoder comprises a min-sum LDPC decoder.

17. The memory device of claim 13 , wherein the LDPC decoder further includes a check node update (CNU) unit configured to initialize a minimum read value field and a minimum read value location field at the beginning of the second decoding iteration.

18. The memory device of claim 13 , wherein the LDPC decoder is available for decoding from the second decoding iteration to the final decoding iteration.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2017
From: SK HYNIX MEMORY SOLUTIONS INC.
To: SK HYNIX INC.
Reel/Frame 044899/0443 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2016
From: PRABHAKAR, ABHIRAM; YEN, JOHNSON; CHU, NGOK YING
To: SK HYNIX MEMORY SOLUTIONS INC.
Reel/Frame 039783/0959 →
Continuity (2)
Provisional Application 62220880 · Sep 18, 2015
Related Publication 20170085276A1 · Mar 23, 2017