IP Library Granted Patent US 10,637,511
Granted Patent B2
US 10,637,511 · App. 15/846,020 · Granted Apr 28, 2020

Dynamic multi-stage decoding

Inventors: Jun Tao (Ladera Ranch, CA); Niang-Chu Chen (Irvine, CA)
Assignee: Western Digital Technologies, Inc
H03M13/3746G06F11/1012G06F11/1068G11C29/52H03M13/1108H03M13/1111H03M13/3715H03M13/3738H03M13/6325H03M13/1105
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,637,511
App. No.
15/846,020
Granted
Apr 28, 2020
Kind
B2
Abstract

Methods and systems for decoding raw data may include determining a sequence of a plurality of read-level voltages based on previous decoding data and executing a multi-stage decoding operation to decode raw data read from the plurality of memory cells using the determined sequence of the plurality of read-level voltages. Decoded data is returned from the multi-stage decoding operation upon completion of the multi-stage decoding operation and the previous decoding data is updated based on results of the multi-stage decoding operation.

Claims (70)

1. A machine-implemented method, comprising:

determining a sequence of a plurality of read-level voltages based on decoding data, wherein the decoding data indicates which one or more read-level voltages have been used for one or more decoding operations, and wherein the sequence indicates an order of the plurality of read-level voltages to be used for a multi-stage decoding operation;

executing the multi-stage decoding operation to decode raw data read from a plurality of memory cells using the determined sequence of the plurality of read-level voltages;

returning decoded data from the multi-stage decoding operation upon completion of the multi-stage decoding operation; and

updating the decoding data based on results of the multi-stage decoding operation,

wherein the multi-stage decoding operation includes up to multiple hard decoding operations,

wherein each unsuccessful hard decoding operation is followed by up to multiple soft decoding operations regardless of availability of another hard decoding operation, and

wherein two or more consecutive soft decoding operations are executed without re-reading the plurality of memory cells.

2. The machine-implemented method of claim 1 , wherein each stage of the multi-stage decoding operation comprises executing one or more decoding operations to decode raw data read from the plurality of memory cells using a respective read-level voltage from the sequence of the plurality of read-level voltages corresponding to the stage, and

wherein the stages of the multi-stage decoding operation are executed sequentially until one of the one or more decoding operations in one of the stages successfully decodes the raw data read from the plurality of memory cells.

3. The machine-implemented method of claim 2 , wherein updating the decoding data comprises incrementing a counter value corresponding to a read-level voltage of the plurality of read-level voltages used to read the successfully decoded raw data, and

wherein the sequence of the plurality of read-level voltages is determined based on the counter value.

4. The machine-implemented method of claim 3 , wherein the decoding data comprises counter values of a plurality of respective counters corresponding to the plurality of read-level voltages, and

wherein determining the sequence of the plurality of read-level voltages comprises ordering the plurality of read-level voltages according to the counter values of the respective counters.

5. The machine-implemented method of claim 3 , wherein the determining the sequence of the plurality of read-level voltages comprises selecting the sequence from a plurality of predetermined sequences.

6. The machine-implemented method of claim 1 , wherein the sequence of the plurality of read-level voltages is determined following completion of a plurality of read requests since the sequence was last determined.

7. The machine-implemented method of claim 1 , wherein the plurality of memory cells are part of a block of a plurality of blocks on a die, and

wherein respective decoding data is maintained for the block, a group of blocks comprising the block, or the die.

8. The machine-implemented method of claim 1 , wherein only hard decoding operations of the multi-stage decoding operation are to be executed using the determined sequence of the plurality of read-level voltages, and soft decoding operations of the multi-stage decoding operation are to be executed using another sequence of the plurality of read-level voltages.

9. The machine-implemented method of claim 1 , further comprising:

prior to executing the multi-stage decoding operation, executing a first hard decoding operation using a first read-level voltage,

wherein each stage of the multi-stage decoding operation is associated with one respective read-level voltage from the determined sequence of the plurality of read-level voltages,

wherein when a read-level voltage of a particular stage of the multi-stage decoding operation is same as the first read-level voltage, a hard decoding operation of the particular stage is skipped, and a soft decoding operation of the particular stage is executed.

10. A data storage system, comprising:

a non-volatile memory device; and

a controller configured to:

determine a sequence of a plurality of read-level voltages based on decoding data, wherein the decoding data indicates which one or more read-level voltages have been used for one or more decoding operations, and wherein the sequence indicates an order of the plurality of read-level voltages to be used for a multi-stage decoding operation;

execute the multi-stage decoding operation to decode raw data read from a plurality of memory cells using the determined sequence of the plurality of read-level voltages, wherein each stage of the multi-stage decoding operation comprises executing one or more decoding operations to decode raw data read from the plurality of memory cells using a respective read-level voltage from the sequence of the plurality of read-level voltages corresponding to the stage, and wherein the stages of the multi-stage decoding operation are executed sequentially until one of the one or more decoding operations in one of the stages successfully decodes the raw data read from the plurality of memory cells;

return decoded data from the multi-stage decoding operation upon completion of the multi-stage decoding operation; and

update the decoding data based on results of the multi-stage decoding operation,

wherein the multi-stage decoding operation includes up to multiple hard decoding operations,

wherein each unsuccessful hard decoding operation is to be followed by up to multiple soft decoding operations regardless of availability of another hard decoding operation, and

wherein two or more consecutive soft decoding operations are to be executed without re-reading the plurality of memory cells.

11. The data storage system of claim 10 , wherein updating the decoding data comprises incrementing a counter value corresponding to a read-level voltage of the plurality of read-level voltages used to read the successfully decoded raw data, and

wherein the sequence of the plurality of read-level voltages is determined based on the counter value.

12. The data storage system of claim 11 , wherein the decoding data comprises counter values of a plurality of respective counters corresponding to the plurality of read-level voltages, and

wherein determining the sequence of the plurality of read-level voltages comprises ordering the plurality of read-level voltages according to the counter values of the respective counters.

13. The data storage system of claim 11 , wherein determining the sequence of the plurality of read-level voltages comprises selecting the sequence from a plurality of predetermined sequences.

14. The data storage system of claim 10 , wherein the sequence of the plurality of read-level voltages is determined following completion of a plurality of read requests since the sequence was last determined.

15. The data storage system of claim 10 , wherein the plurality of memory cells are part of a block of a plurality of blocks on a die, and

wherein respective decoding data is maintained for the block, a group of blocks comprising the block, or the die.

16. A processor-readable medium encoded with executable instructions that, when executed by a processor, perform a method comprising:

determining a sequence of a plurality of read-level voltages based on decoding data, wherein the decoding data indicates which one or more read-level voltages have been used for one or more decoding operations, and wherein the sequence indicates an order of the plurality of read-level voltages to be used for a multi-stage decoding operation;

executing the multi-stage decoding operation to decode raw data read from a plurality of memory cells using the determined sequence of the plurality of read-level voltages;

returning decoded data from the multi-stage decoding operation upon completion of the multi-stage decoding operation; and

updating the decoding data based on results of the multi-stage decoding operation by incrementing a counter value corresponding to a read-level voltage of the plurality of read-level voltages used to read successfully decoded raw data, wherein the sequence of the plurality of read-level voltages is determined based on the counter value,

wherein the multi-stage decoding operation includes up to multiple hard decoding operations,

wherein each unsuccessful hard decoding operation is followed by up to multiple soft decoding operations regardless of availability of another hard decoding operation, and

wherein two or more consecutive soft decoding operations are executed without re-reading the plurality of memory cells.

17. The processor-readable medium of claim 16 , wherein each stage of the multi-stage decoding operation comprises executing one or more decoding operations to decode raw data read from the plurality of memory cells using a respective read-level voltage from the sequence of the plurality of read-level voltages corresponding to the stage, and

wherein the stages of the multi-stage decoding operation are executed sequentially until one of the one or more decoding operations in one of the stages successfully decodes the raw data read from the plurality of memory cells.

18. The processor-readable medium of claim 17 , wherein the decoding data comprises counter values of a plurality of respective counters corresponding to the plurality of read-level voltages, and

wherein determining the sequence of the plurality of read-level voltages comprises ordering the plurality of read-level voltages according to the counter values of the respective counters.

19. The processor-readable medium of claim 17 , wherein determining the sequence of the plurality of read-level voltages comprises selecting the sequence from a plurality of predetermined sequences.

20. A data storage system comprising:

non-volatile memory;

means for determining a sequence of a plurality of read-level voltages based on decoding data, wherein the decoding data indicates which one or more read-level voltages have been used for one or more decoding operations, and wherein the sequence indicates an order of the plurality of read-level voltages to be used for a multi-stage decoding operation;

means for executing the multi-stage decoding operation to decode raw data read from a plurality of memory cells using the determined sequence of the plurality of read-level voltages;

means for returning decoded data from the multi-stage decoding operation upon completion of the multi-stage decoding operation; and

means for updating the decoding data based on results of the multi-stage decoding operation,

wherein the multi-stage decoding operation includes up to multiple hard decoding operations,

wherein each unsuccessful hard decoding operation is to be followed by up to multiple soft decoding operations regardless of availability of another hard decoding operation, and

wherein two or more consecutive soft decoding operations are to be executed without re-reading the plurality of memory cells.

21. The data storage system of claim 20 , wherein each stage of the multi-stage decoding operation comprises executing one or more decoding operations to decode raw data read from the plurality of memory cells using a respective read-level voltage from the sequence of the plurality of read-level voltages corresponding to the stage, and

wherein the stages of the multi-stage decoding operation are executed sequentially until one of the one or more decoding operations in one of the stages successfully decodes the raw data read from the plurality of memory cells.

22. The data storage system of claim 21 , wherein updating the decoding data comprises incrementing a counter value corresponding to a read-level voltage of the plurality of read-level voltages used to read the successfully decoded raw data, and

wherein the sequence of the plurality of read-level voltages is determined based on the counter value.

23. The data storage system of claim 22 , wherein the decoding data comprises counter values of a plurality of respective counters corresponding to the plurality of read-level voltages, and

wherein determining the sequence of the plurality of read-level voltages comprises ordering the plurality of read-level voltages according to the counter values of the respective counters.

24. The data storage system of claim 23 , wherein determining the sequence of the plurality of read-level voltages comprises selecting the sequence from a plurality of predetermined sequences.

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 Dec 20, 2017
From: TAO, JUN; CHEN, NIANG-CHU
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 044453/0913 →
Continuity (1)
Related Publication 20190190541A1 · Jun 20, 2019
Cited By (1)
US 12,500,609