IP Library Granted Patent US 10,083,754
Granted Patent B1
US 10,083,754 · App. 15/614,415 · Granted Sep 25, 2018

Dynamic selection of soft decoding information

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,083,754
App. No.
15/614,415
Granted
Sep 25, 2018
Kind
B1
Abstract

Multiple reads of memory cells of a flash memory device are initiated at different read levels to obtain raw data. For each different read level, multiple decoding operations are initiated to decode the raw data, each decoding operation using a different one of a plurality of sets of decoding information associated with the different read level. Decoding success rates are determined for one or more of the plurality of sets based on the one or more of the plurality of sets being used to successfully decode data and, for each different read level, an order of the plurality of sets is determined based on the determined success rates. A selected set of decoding information is selected for use in decoding raw data obtained from a read performed at a respective read level based on the respective read level and the set order of the plurality of sets for the respective read level.

Claims (57)

1. A machine-implemented method, comprising:

performing, for a first read request, a first plurality of decoding operations to decode raw data obtained from reading a plurality of memory cells at a first read level, each of the first plurality of decoding operations using a different set of decoding information selected from a plurality of sets of decoding information according to a predetermined first order of the plurality of sets;

determining decoding success rates for one or more of the plurality of sets based on using the one or more of the plurality of sets in a plurality of successful decoding operations;

setting a second order of the plurality of sets, different than the first order, based on the determined success rates; and

initiating, for a new read request, a second plurality of the decoding operations to decode new raw data obtained from a read performed at the first read level, each of the second plurality of the decoding operations using a set of decoding information selected from the plurality of sets according to the second order.

2. The machine-implemented method of claim 1 , wherein setting the second order comprises:

incrementing a counter based on successfully decoding the raw data using a first set of the plurality of sets; and

decrementing the counter based on successfully decoding the raw data using a second set of the plurality of sets,

wherein a respective set is selected based on a value of the counter being associated with the respective set.

3. The machine-implemented method of claim 2 , wherein the counter is adjusted periodically based on a number of errors corrected for each respective period.

4. The machine-implemented method of claim 2 , wherein a respective order of the plurality of sets is set for each die of a plurality of die based on a corresponding counter associated with the die.

5. The machine-implemented method of claim 1 , wherein setting the second order comprises:

incrementing a first counter based on successfully decoding the raw data using a first set of the plurality of sets; and

incrementing a second counter based on successfully decoding the raw data using a second set of the plurality of sets,

wherein a respective set is selected based on a magnitude of a counter associated with the respective set being greater than a magnitude of one or more other counters.

6. The machine-implemented method of claim 1 , wherein the first plurality of decoding operations are performed in a first stage of a multi-stage decoding process, the multi-stage decoding process comprising stages that are executed sequentially until a respective decoding operation in one of the stages succeeds or all decoding operations in all of the stages fail, the method further comprising:

initiating, in response to the first stage failing to decode respective raw data obtained based on the first read level, a reread of the respective raw data at a second read level; and

initiating a plurality of second stage decoding operations to decode the reread raw data, each second stage decoding operation using a different second set of decoding information selected from the plurality of sets of decoding information according to an ordering associated with the second read level.

7. The machine-implemented method of claim 6 , wherein, for a respective read request, the plurality of memory cells are reread multiple times using different read levels and, for each different read level, multiple decoding operations are initiated to decode raw data obtained from the plurality of memory cells; and

wherein each of the multiple decoding operations uses a selected set of decoding information to decode the raw data, the selected set being selected based on a read level used to read the raw data and an order of the selected set among other sets of decoding information associated with the read level used to read the raw data.

8. A data storage system, comprising:

a flash memory device comprising a plurality of memory cells; and

a controller, the controller configured to:

initiate multiple reads of the plurality of memory cells of the flash memory device at different read levels to obtain raw data;

initiate, for each different read level, multiple decoding operations to decode the raw data, each decoding operation using a different one of a plurality of sets of decoding information associated with the different read level;

determine decoding success rates for one or more of the plurality of sets based on the one or more of the plurality of sets being used to successfully decode data;

set, for each different read level, an order of the plurality of sets based on the determined success rates, the set order being different than a prior order; and

select, for use in decoding raw data obtained from a read performed at a respective read level, a selected set of decoding information based on the respective read level and the set order of the plurality of sets for the respective read level.

9. The data storage system of claim 8 , wherein the controller being configured to determine decoding success rates comprises the controller being configured to:

periodically adjust a counter based on a number of errors corrected for each respective period, wherein the counter is incremented if a first set of the plurality of sets corrected more errors in a respective period than a second set of the plurality of sets, and the counter is decremented if the second set of the plurality of sets corrected more errors in the respective period than the first set of the plurality of sets, and

wherein the controller is configured to select the selected set based on a value of the counter being associated with the respective set.

10. The data storage system of claim 9 , wherein controller is configured to set the a respective order of the plurality of sets for each die of a plurality of die based on a corresponding counter associated with the die.

11. The data storage system of claim 8 , wherein the controller being configured to determine decoding success rates comprises the controller being configured to:

periodically adjust a first counter or a second counter based on a number of errors corrected for each respective period, wherein the first counter is incremented if a first set of the plurality of sets corrected more errors in a respective period than a second set of the plurality of sets, and the second counter is incremented if the second set of the plurality of sets corrected more errors in the respective period than the first set of the plurality of sets, and

wherein the controller is configured to select the selected set based on a magnitude of a counter associated with the selected set being greater than a magnitude of one or more other counters.

12. The data storage system of claim 8 , wherein the controller is configured to:

initiate, in response to a first plurality of decoding operations failing to decode respective raw data obtained based on a first read level, a reread of the respective raw data at a second read level; and

attempt to decode the reread raw data using a second plurality of decoding operations, wherein the controller is configured to cause each of the second plurality of decoding operations to use a different set of decoding information selected from the plurality of sets of decoding information according to an ordering associated with the second read level.

13. The data storage system of claim 8 , wherein, for a respective read request, the controller is configured to cause the plurality of memory cells to be reread multiple times using different read levels and, for each different read level, the controller is configured to initiate multiple decoding operations to decode raw data obtained from the plurality of memory cells; and

wherein the controller is configured to cause each of the multiple decoding operations to use a selected set of decoding information to decode the raw data, the selected set being based on a read level used to read the raw data and an order of the selected set among other sets of decoding information associated with the read level used to read the raw data.

14. The data storage system of claim 8 , wherein the plurality of sets of decoding information comprises three tables of log-likelihood values.

15. A data storage controller, comprising:

means for performing, for a first read request, a first plurality of decoding operations to decode raw data obtained from reading a plurality of memory cells at a first read level, each of the first plurality of decoding operations using a different set of decoding information selected from a plurality of sets of decoding information according to a predetermined first order of the plurality of sets;

means for determining decoding success rates for one or more of the plurality of sets based on using the one or more of the plurality of sets in a plurality of successful decoding operations;

means for setting a second order of the plurality of sets, different than the first order, based on the determined success rates; and

means for initiating, for a new read request, a second plurality of the decoding operations to decode new raw data obtained from a read performed at the first read level, each of the second plurality of the decoding operations using a selected set of decoding information selected from the plurality of sets based on the second order.

16. The data storage controller of claim 15 , wherein the means for setting the second order comprises:

means for periodically adjusting a counter based on a number of errors corrected for each respective period, wherein the counter is configured to be incremented if a first set of the plurality of sets corrected more errors in a respective period than a second set of the plurality of sets, and the counter is configured to be decremented if the second set of the plurality of sets corrected more errors in the respective period than the first set of the plurality of sets, and

wherein the means for setting comprises selecting the selected set based on a value of the counter being associated with the respective set.

17. The data storage controller of claim 16 , wherein the means for setting comprises setting a respective order of the plurality of sets for each die of a plurality of die based on a corresponding counter associated with the die.

18. The data storage controller of claim 15 , wherein the means for setting the second order comprises:

means for periodically adjusting a first counter or a second counter based on a number of errors corrected for each respective period, wherein the first counter is configured to be incremented if a first set of the plurality of sets corrected more errors in a respective period than a second set of the plurality of sets, and the second counter is configured to be incremented if the second set of the plurality of sets corrected more errors in the respective period than the first set of the plurality of sets,

wherein the means for setting comprises setting the selected set based on a magnitude of a counter associated with the selected set being greater than a magnitude of one or more other counters.

19. The data storage controller of claim 15 , wherein the means for performing comprises means for performing the first plurality of decoding operations in a first stage of a multi-stage decoding process, the multi-stage decoding process comprising stages that are executed sequentially until a respective decoding operation in one of the stages succeeds or all decoding operations in all of the stages fail.

20. The data storage controller of claim 19 , further comprising:

means for initiating, in response to the first stage failing to decode respective raw data obtained based on the first read level, a reread of the respective raw data at a second read level; and

means for attempting to decode the reread raw data using a plurality of second stage decoding operations, each second stage decoding operation using a different second set of decoding information selected from the plurality of sets of decoding information according to an ordering associated with the second read level.

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 Jun 6, 2017
From: CHEN, NIANG-CHU; KAYSER, SCOTT; TAO, JUN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 042614/0483 →
Cited By (1)
US 12,469,573