Method and system for determining soft information offsets
First Claim
1. A method of improving decoding of data read from a storage device with one or more memory devices, the method comprising:
- at a storage controller with one or more processors and memory;
in response to a read request, obtaining a codeword with two or more codeword portions from the storage device, wherein the two or more codeword portions at least include a first codeword portion with first raw read data from a first memory portion of the storage device and a second codeword portion with second raw read data from a second memory portion of the storage device distinct from the first memory portion;
performing a first decoding iteration on the codeword; and
in accordance with a determination that the first decoding iteration fails to satisfy one or more predetermined decoding criteria;
for the two or more codeword portions of the codeword;
determining a count of bit-flips between the raw read data for a respective codeword portion of the two or more codeword portions and a decoding result for the respective codeword portion after the first decoding iteration;
determining a soft information offset for the respective codeword portion based on the determined count of bit-flips for the respective codeword portion relative to bit-flips counts for other codeword portions of the codeword; and
adjusting soft information for the respective codeword portion based on the determined soft information offset.
3 Assignments
0 Petitions
Accused Products
Abstract
Systems, methods, and/or devices are used to improve decoding of data read from a storage device with one or more memory devices. In one aspect, the method includes obtaining, in response to a read request, a codeword with two or more codeword portions from distinct memory portions of the storage device. When a decoding iteration on the codeword fails to satisfy predetermined decoding criteria, the method includes, for the two or more codeword portions of the codeword: determining a bit-flip count between raw read data for a respective codeword portion and a decoding result for the respective codeword portion after the decoding iteration; determining a soft information offset for the respective codeword portion based on the bit-flip count for the respective codeword portion relative to bit-flips counts for other codeword portions; and adjusting soft information for the respective codeword portion based on the soft information offset.
-
Citations
23 Claims
-
1. A method of improving decoding of data read from a storage device with one or more memory devices, the method comprising:
at a storage controller with one or more processors and memory; in response to a read request, obtaining a codeword with two or more codeword portions from the storage device, wherein the two or more codeword portions at least include a first codeword portion with first raw read data from a first memory portion of the storage device and a second codeword portion with second raw read data from a second memory portion of the storage device distinct from the first memory portion; performing a first decoding iteration on the codeword; and in accordance with a determination that the first decoding iteration fails to satisfy one or more predetermined decoding criteria; for the two or more codeword portions of the codeword; determining a count of bit-flips between the raw read data for a respective codeword portion of the two or more codeword portions and a decoding result for the respective codeword portion after the first decoding iteration; determining a soft information offset for the respective codeword portion based on the determined count of bit-flips for the respective codeword portion relative to bit-flips counts for other codeword portions of the codeword; and adjusting soft information for the respective codeword portion based on the determined soft information offset. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
11. A storage device, comprising:
-
non-volatile storage for storing information; and a storage controller having one or more processors configured to execute instructions in one or more programs, wherein the storage controller is configured to perform operations comprising; in response to a read request, obtaining a codeword with two or more codeword portions from the storage device, wherein the two or more codeword portions at least include a first codeword portion with first raw read data from a first memory portion of the storage device'"'"'s non-volatile storage and a second codeword portion with second raw read data from a second memory portion of the storage device'"'"'s non-volatile storage distinct from the first memory portion; performing a first decoding iteration on the codeword; and in accordance with a determination that the first decoding iteration fails to satisfy one or more predetermined decoding criteria; for the two or more codeword portions of the codeword; determining a count of bit-flips between the raw read data for a respective codeword portion of the two or more codeword portions and a decoding result for the respective codeword portion after the first decoding iteration; determining a soft information offset for the respective codeword portion based on the determined count of bit-flips for the respective codeword portion relative to bit-flips counts for other codeword portions of the codeword; and adjusting soft information for the respective codeword portion based on the determined soft information offset. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A non-transitory computer readable storage medium, storing one or more programs configured for execution by one or more processors of a storage device, the one or more programs including instructions for performing operations comprising:
in response to a read request, obtaining a codeword with two or more codeword portions from the storage device, wherein the two or more codeword portions at least include a first codeword portion with first raw read data from a first memory portion of the storage device and a second codeword portion with second raw read data from a second memory portion of the storage device distinct from the first memory portion; performing a first decoding iteration on the codeword; and in accordance with a determination that the first decoding iteration fails to satisfy one or more predetermined decoding criteria; for the two or more codeword portions of the codeword; determining a count of bit-flips between the raw read data for a respective codeword portion of the two or more codeword portions and a decoding result for the respective codeword portion after the first decoding iteration; determining a soft information offset for the respective codeword portion based on the determined count of bit-flips for the respective codeword portion relative to bit-flips counts for other codeword portions of the codeword; and adjusting soft information for the respective codeword portion based on the determined soft information offset.
Specification