IP Library Granted Patent US 10,552,259
Granted Patent B2
US 10,552,259 · App. 15/922,793 · Granted Feb 4, 2020

Recovery combining hard decoding, soft decoding and artificial codeword generation

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,552,259
App. No.
15/922,793
Granted
Feb 4, 2020
Kind
B2
Abstract

The present disclosure, in various embodiments, describes technologies and techniques for use by a data storage controller for decoding codewords during an error correction read recovery process. In illustrative examples, an iterative procedure exploits artificial codewords generated using information obtained from a NAND or other non-volatile memory (NVM) in a previous sense operation. That is, procedures are described that use information obtained in one stage of read recovery to facilitate a subsequent stage to reduce the need to perform additional NAND senses. In one example, information obtained from a sense operation performed for an initial hard bit decode is used in subsequent soft bit decodes. Moreover, iterative decoding procedures are provided that progressively increase correction strength. The procedures may alternate between hard and soft reads while using syndrome weight to determine a failed bit code gradient for identifying the sensing voltage for a next hard sense.

Claims (69)

1. A method for use by a data storage controller, comprising:

obtaining first and second codewords by reading initial sense values from a location in a memory device using first and second sense voltage thresholds shifted relative to one another;

applying one or both of the first and second codewords to a decoder;

generating one or more additional codewords from the initial sense values;

applying the one or more additional codewords to the decoder to decode the one or more additional codewords; and

iteratively generating an exponentially-increasing number of alternative codewords based on alternative sense values read from the location using alternative voltage thresholds shifted relative to the first and second sense voltage thresholds and relative to one another.

2. The method of claim 1 , wherein the one or more additional codewords and the alternative codewords are artificial codewords.

3. The method of claim 1 , wherein the one or more additional codewords and the alternative codewords are generated using binning.

4. The method of claim 1 , wherein the decoder comprises a hard bit decoder and a soft bit decoder and wherein applying one or both of the first and second codewords to the decoder includes selecting one of the first and second codewords to apply to one or both of the hard bit and soft bit decoders.

5. The method of claim 4 , wherein applying the one or more additional codewords comprises applying a selected one of the additional codewords to one or both of the hard and soft bit decoders.

6. The method of claim 5 , further comprising:

determining syndrome weights for the one or more additional codewords; and

wherein applying the one or more additional codewords to the decoder includes identifying a particular codeword of the one or more additional codewords that has a lowest syndrome weight and applying the particular codeword to one or both of the hard and soft bit decoders.

7. The method of claim 1 , further comprising determining a third sense voltage threshold by:

determining failed bit counts (FBCs) associated with the first and second codewords;

determining a gradient in the FBCs; and

identifying a sense voltage for use as the third sense voltage based on the gradient.

8. The method of claim 7 , wherein identifying the sense voltage for use as the third sense voltage includes determining a direction for shifting the sense voltage relative to the second sense voltage and a step size for shifting the sense voltage.

9. The method of claim 8 , wherein the direction and the step size are selected to shift the sense voltage to achieve a minimum FBC for the third codeword.

10. The method of claim 8 , wherein at least one FBC is estimated based on syndrome weights by looking up an estimated FBC using a precomputed maximum syndrome weight correction threshold for the decoder.

11. The method of claim 9 , wherein iteratively generating an exponentially-increasing number of alternative codewords comprises:

iteratively obtaining N N alternative codewords by

performing an N TH sense operation to obtain an N TH codeword from the memory device by reading a set of new sense values from the memory device using an N TH sense voltage threshold shifted relative to previous sense voltage thresholds, and

generating the N N alternative codewords from previous sense values and from the new sense values; and

applying at least one of the N N alternative codewords to the decoder.

12. The method of claim 1 , wherein the memory device is a non-volatile memory (NVM), and wherein the sense values are read from the NVM.

13. The method of claim 1 , further comprising:

applying the additional codewords to the decoder; and

wherein iteratively generating the exponentially-increasing number of alternative codewords is performed in response to a failure to decode the additional codewords.

14. The method of claim 13 , wherein each iteration to generate a next alternative codeword is performed in response to failure to decode a prior alternative codeword.

15. A data storage controller for use with a memory device, comprising:

a processing system configured to

perform a read operation to obtain first and second codewords corresponding to data stored at a location in the memory device by reading initial sense values from the memory device using first and second sense voltage thresholds shifted relative to one another;

apply one or both of the first and second codewords to a decoder;

generate one or more additional codewords from the initial sense values;

apply the one or more additional codewords to the decoder to decode the one or more additional codewords;

perform additional read operations to iteratively generate an exponentially-increasing number of alternative codewords based on alternative sense values read from the location using alternative voltage thresholds shifted relative to the first and second sense voltage thresholds and relative to one another.

16. The data storage controller of claim 15 , wherein the processing system is configured to generate the one or more additional codewords and the alternative codewords using binning.

17. The data storage controller of claim 15 , wherein the decoder comprises a hard bit decoder and a soft bit decoder and wherein the processing system is configured to select one of the first and second codewords to apply to one or both of the decoders.

18. The data storage controller of claim 17 , wherein the processing system is configured to apply the additional codewords by applying a selected one of the additional codewords to one or both of the hard and soft bit decoders.

19. The data storage controller of claim 18 , wherein the processing system is further configured to:

determine syndrome weights for the one or more additional codewords;

identify a particular codeword of the additional codewords that has a lowest syndrome weight; and

apply the particular codeword to one or both of the hard and soft bit decoders.

20. The data storage controller of claim 15 , wherein the processing system is configured to determine a third sense voltage threshold by:

determining failed bit counts (FBCs) associated with the first and second codewords;

determining a gradient in the FBCs; and

identifying a sense voltage for use as the third sense voltage based on the gradient.

21. The data storage controller of claim 20 , wherein the processing system is further configured to identify the sense voltage for use as the third sense voltage by determining one or more of a direction for shifting the sense voltage relative to the first and second sense voltages and a step size for shifting the sense voltage.

22. The data storage controller of claim 21 , wherein the processing system is further configured to select the direction and the step size to shift the sense voltage to achieve a minimum FBC for the third codeword.

23. The data storage controller of claim 20 , wherein the processing system is further configured to estimate at least one FBC based on syndrome weights by looking up an estimated FBC using a precomputed maximum syndrome weight correction threshold for the decoder.

24. The data storage controller of claim 15 , wherein the processing system is further configured to iteratively generate the exponentially-increasing number of alternative codewords by:

iteratively obtain N IN alternative codewords by

perform an N TH sense operation to obtain an N TH codeword from the memory device by reading a set of new sense values from the memory device using an N TH sense voltage threshold shifted relative to previous sense voltage thresholds, and

generate N N alternative codewords from previous sense values and from the new sense values; and

apply at least one of the N N alternative codewords to the decoder.

25. The data storage controller of claim 24 , wherein the processing system is further configured, for an N-level sense, to perform a single (N−1)-level sense to differentiate a set of bins obtained from the senses.

26. The data storage controller of claim 15 , wherein the memory device is a non-volatile memory (NVM).

27. The data storage controller of claim 15 , wherein the processing system is further configured to:

apply the additional codewords to the decoder; and

iteratively generate the exponentially-increasing number of alternative codewords in response to failure to decode the additional codewords.

28. The data storage controller of claim 27 , wherein the processing system is further configured so that each iteration to generate a next alternative codeword is performed in response to failure to decode a prior alternative codeword.

29. An apparatus for use with a memory device, comprising:

means for obtaining first and second codewords corresponding to data stored in a location of the memory device by reading initial sense values from the memory device using first and second sense voltage thresholds shifted relative to one another;

means for applying one or both of the first and second codewords to a decoder;

means for generating one or more additional codewords from the initial sense values; and

means for applying the one or more additional codewords to the decoder to decode the one or more additional codewords;

means for reading alternative sense values from the location using alternative voltage thresholds shifted relative to the first and second sense voltage thresholds and relative to one another; and

means for iteratively generating an exponentially-increasing number of alternative codewords based on the alternative sense values.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2018
From: JACOBVITZ, ADAM NOAH; KATHAWALA, GULZAR AHMED; STOEV, KROUM STANIMIROV; WU, BIN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045243/0509 →