Use of multiple codebooks for programming data in different memory areas of a storage device
First Claim
Patent Images
1. A storage device comprising:
- a memory comprising a plurality of different memory areas, including a first memory area and a second memory area;
a controller configured to;
encode a first data set with a first codebook to generate a first codeword, the first codebook associated with the first memory area;
encode a second data set with a second codebook to generate a second codeword, the second codebook associated with the second memory area; and
program the first codeword into the first memory area and the second codeword into the second memory area, wherein the first codebook and the second codebook are permutations of a common codebook and at least one of the first codebook or the second codebook has a reduced number of bad or weak variable nodes connected to a check node compared to a number of bad variable nodes connected to the check node of the common codebook.
1 Assignment
0 Petitions
Accused Products
Abstract
A storage device may program data differently for different memory areas of a memory. In some embodiments, the storage device may use different codebooks for different memory areas. In other embodiments, the storage device may modify bit orders differently for different memory areas. What codebook the storage device uses or what bit order modification the storage device performs for a particular memory area may depend on the bad storage locations specific to that memory area. Where different codebooks are used, optimal codebooks may be selected from a library, or codebooks may be modified based on the bad storage locations of the memory areas.
27 Citations
18 Claims
-
1. A storage device comprising:
-
a memory comprising a plurality of different memory areas, including a first memory area and a second memory area; a controller configured to; encode a first data set with a first codebook to generate a first codeword, the first codebook associated with the first memory area; encode a second data set with a second codebook to generate a second codeword, the second codebook associated with the second memory area; and program the first codeword into the first memory area and the second codeword into the second memory area, wherein the first codebook and the second codebook are permutations of a common codebook and at least one of the first codebook or the second codebook has a reduced number of bad or weak variable nodes connected to a check node compared to a number of bad variable nodes connected to the check node of the common codebook. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A storage device comprising:
-
a memory comprising a plurality of different memory areas, including a first memory area and a second memory area; a controller configured to; encode a first data set with a first codebook to generate a first codeword, the first codebook associated with the first memory area; encode a second data set with a second codebook to generate a second codeword, the second codebook associated with the second memory area; and program the first codeword into the first memory area and the second codeword into the second memory area, wherein the first codebook and the second codebook are permutations of a common codebook and an associated parity-check matrix of the common codebook has at least one minimal cycle that is removed in the first codebook. - View Dependent Claims (11, 12)
-
-
13. A storage device comprising:
-
a memory comprising a plurality of different memory areas, including a first memory area and a second memory area; a controller configured to; encode a first data set with a first codebook to generate a first codeword, the first codebook associated with the first memory area; encode a second data set with a second codebook to generate a second codeword, the second codebook associated with the second memory area; and program the first codeword into the first memory area and the second codeword into the second memory area, wherein the first codebook and the second codebook are permutations of a common codebook and the first codebook has an associated parity-check matrix comprising at least two columns that are swapped compared to an associated parity-check matrix of the common codebook.
-
-
14. A storage device comprising:
-
a memory comprising a plurality of different memory areas, including a first memory area and a second memory area; a controller configured to; encode a first data set with a first codebook to generate a first codeword, the first codebook associated with the first memory area; encode a second data set with a second codebook to generate a second codeword, the second codebook associated with the second memory area; and program the first codeword into the first memory area and the second codeword into the second memory area, wherein the first codebook and the second codebook are permutations of a common codebook and the first codebook comprises a first sub-codebook, and the second codebook comprises a second sub-codebook, and wherein the first sub-codebook and the second sub-codebook are configured to generate different numbers of sub-code parity bits for the first data set and the second data set, respectively. - View Dependent Claims (15, 16, 17, 18)
-
Specification