Fast decoding of data stored in a flash memory
First Claim
1. A method for fast decoding, the method comprising:
- performing a hard read of a group of flash memory cells to provide hard read data;
wherein the group of flash memory cells store a codeword that comprises component codes of multiple dimensions;
wherein the group of flash memory cells have a threshold voltage distribution with a number of levels that is based on a storage capacity each cell in the group of flash memory cells;
wherein the performing the hard read includes reading with threshold voltages, each threshold voltage being between two respective levels in the threshold voltage distribution;
hard decoding the hard read data to provide a hard decoding result;
wherein the hard decoding result comprises first suggested values of component codes of at least one dimension of the multiple dimensions, wherein the hard decoding result includes unreliable component code solutions that do not exceed a reliability threshold;
performing at least one additional read attempt of the group of flash memory cells to provide additional data, wherein the performing the at least one additional read attempt includes reading with sampling thresholds around centers of at least one of the threshold voltages;
performing, subsequent to the performing the at least one additional read attempt and in response to the first suggested values, at least one sub-iteration of soft decoding of the additional data to provide a soft decoding result, wherein the at least one sub-iteration of soft decoding includes soft decoding fewer than all of the unreliable component code solutions; and
wherein the soft decoding result comprises second suggested values of component codes of one or more dimensions of the multiple dimensions.
5 Assignments
0 Petitions
Accused Products
Abstract
A method for fast decoding, the method may include (a) performing a hard read of a group of flash memory cells to provide hard read data; wherein the group of flash memory cells store a codeword that comprises component codes of multiple dimensions; (b) hard decoding the hard read data to provide a hard decoding result; wherein the hard decoding result comprises first suggested values of component codes of at least one dimension of the multiple dimensions; (c) performing at least one additional read attempt of the group of flash memory cells to provide additional data; (d) performing a partial extensiveness soft decoding the additional data, in response to the first suggested values, to provide a soft decoding result; and (e) wherein the soft decoding result comprises second suggested values of component codes of one or more dimensions of the multiple dimensions.
334 Citations
20 Claims
-
1. A method for fast decoding, the method comprising:
-
performing a hard read of a group of flash memory cells to provide hard read data;
wherein the group of flash memory cells store a codeword that comprises component codes of multiple dimensions;
wherein the group of flash memory cells have a threshold voltage distribution with a number of levels that is based on a storage capacity each cell in the group of flash memory cells;
wherein the performing the hard read includes reading with threshold voltages, each threshold voltage being between two respective levels in the threshold voltage distribution;hard decoding the hard read data to provide a hard decoding result;
wherein the hard decoding result comprises first suggested values of component codes of at least one dimension of the multiple dimensions, wherein the hard decoding result includes unreliable component code solutions that do not exceed a reliability threshold;performing at least one additional read attempt of the group of flash memory cells to provide additional data, wherein the performing the at least one additional read attempt includes reading with sampling thresholds around centers of at least one of the threshold voltages; performing, subsequent to the performing the at least one additional read attempt and in response to the first suggested values, at least one sub-iteration of soft decoding of the additional data to provide a soft decoding result, wherein the at least one sub-iteration of soft decoding includes soft decoding fewer than all of the unreliable component code solutions; and wherein the soft decoding result comprises second suggested values of component codes of one or more dimensions of the multiple dimensions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for fast decoding, the method comprises:
-
performing a hard read of a group of flash memory cells to provide hard read data;
wherein the group of flash memory cells store a codeword that comprises component codes of multiple dimensions;
wherein the group of flash memory cells have a threshold voltage distribution with a number of levels that is based on a storage capacity each cell in the group of flash memory cells;
wherein the performing the hard read includes reading with threshold voltages, each threshold voltage being between two respective levels in the threshold voltage distribution;performing a first hard decoding of the hard read data to provide a hard decoding result;
wherein the hard decoding result comprises initial suggested values of component codes of the multiple dimensions;determining whether the hard decoding failed based on whether or not the initial suggested values exceed a first reliability threshold; performing, when the first hard decoding fails, at least one read additional attempt to provide additional read results;
wherein the at least one additional read attempt includes reading with sampling thresholds around centers of at least one of the threshold voltages;performing a second hard decoding of the hard data and the additional read results to provide first suggested values of component codes of a first dimension of the multiple dimensions; searching for reliable and unreliable first suggested values, wherein each reliable first suggested value has a reliability that exceeds a predefined first reliability threshold; wherein each unreliable first suggested value does not exceed the predefined first reliability threshold; performing, subsequent to the performing the at least one additional read attempt and in response to the unreliable first suggested values, a first partial-extensiveness-soft decoding of the unreliable first suggested values to provide first partial-extensiveness soft decoding results;
wherein the first partial-extensiveness soft decoding includes soft decoding fewer than all of the unreliable first suggested values;performing a third hard decoding of the first partial-extensiveness soft decoding results to provide second suggested values of code components of a second dimension of the multiple dimensions;
wherein the second suggested values include values that do not exceed a second reliability threshold;searching for reliable and unreliable second suggested values;
wherein each reliable second suggested value exceeds a predefined second reliability threshold, and each unreliable second suggested value does not exceed the predefined second reliability threshold; andperforming a second partial-extensiveness soft decoding of the unreliable second suggested values to provide additional partial-extensiveness soft decoding results; wherein the second partial-extensiveness soft decoding includes soft decoding fewer than all of the unreliable second suggested values. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer readable medium that stores instructions that once executed by a memory controller cause the memory controller to execute the steps of:
-
performing a hard read of a group of flash memory cells to provide hard read data;
wherein the group of flash memory cells store a codeword that comprises component codes of multiple dimensions;
wherein the group of flash memory cells have a threshold voltage distribution with a number of levels that is based on a storage capacity each cell in the group of flash memory cells;
wherein the performing the hard read includes reading with threshold voltages, each threshold voltage being between two respective levels in the threshold voltage distribution;performing a first hard decoding of the hard read data to provide a hard decoding result;
wherein the hard decoding result comprises initial suggested values of component codes of the multiple dimensions;determining whether the hard decoding failed based on whether or not the initial suggested values exceed a first reliability threshold; performing, when the first hard decoding fails, at least one read additional attempt to provide additional read results;
wherein the at least one additional read attempt includes reading with sampling thresholds around centers of at least one of the threshold voltages;performing a second hard decoding of the hard data and the additional read results to provide first suggested values of component codes of a first dimension of the multiple dimensions; searching for reliable and unreliable first suggested values, wherein each reliable first suggested value has a reliability that exceeds a predefined first reliability threshold; wherein each unreliable first suggested value does not exceed the predefined first reliability threshold; performing, subsequent to the performing the at least one additional read attempt and in response to the unreliable first suggested values, a first partial-extensiveness-soft decoding of the unreliable first suggested values to provide first partial-extensiveness soft decoding results;
wherein the first partial-extensiveness soft decoding includes soft decoding fewer than all of the unreliable first suggested values;performing a third hard decoding of the first partial-extensiveness soft decoding results to provide second suggested values of code components of a second dimension of the multiple dimensions;
wherein the second suggested values include values that do not exceed a second reliability threshold;searching for reliable and unreliable second suggested values;
wherein each reliable second suggested value exceeds a predefined second reliability threshold, and each unreliable second suggested value does not exceed the predefined second reliability threshold; andperforming a second partial-extensiveness soft decoding of the unreliable second suggested values to provide additional partial-extensiveness soft decoding results; wherein the second partial-extensiveness soft decoding includes soft decoding fewer than all of the unreliable second suggested values. - View Dependent Claims (18, 19, 20)
-
Specification