Systems and methods for programming data to storage devices
First Claim
1. A method comprising:
- receiving one or more first write commands to write a first set of data to a storage device;
programming the first set of data in a plurality of memory cells in the storage device using a first plurality of program levels available in the plurality of memory cells, wherein each of the plurality of memory cells is programmed with two bits of data from the first set of data;
receiving one or more second write commands to write a second set of data to the storage device; and
programming the second set of data in the plurality of memory cells programmed with the first set of data, wherein the second set of data is programmed using a second plurality of program levels available in the plurality of memory cells, each of the second plurality of program levels is different from each of the first plurality of program levels, and each of the plurality of memory cells is programmed with two bits of data from the second set of data,wherein each program level of the first and second pluralities of program levels is mapped to a respective bit pattern comprising three bits,wherein first and second bit pairs of the bit patterns mapped to the first plurality of program levels are unique across the first plurality of program levels, andwherein first and second bit pairs of the bit patterns mapped to the second plurality of program levels are unique across the second plurality of program levels.
9 Assignments
0 Petitions
Accused Products
Abstract
Receiving one or more first write commands to write a first set of data to a storage device. The first set of data is programmed in a plurality of memory cells in the storage device using a first plurality of program levels available in the plurality of memory cells. One or more second write commands to write a second set of data to the storage device is received. The second set of data is programmed in the plurality of memory cells with which the first set of data is programmed. The second set of data is programmed using a second plurality of program levels available in the plurality of memory cells different from the first plurality of program levels. Each program level of the first and second pluralities of program levels is mapped to a respective bit pattern comprising three bits.
-
Citations
19 Claims
-
1. A method comprising:
-
receiving one or more first write commands to write a first set of data to a storage device; programming the first set of data in a plurality of memory cells in the storage device using a first plurality of program levels available in the plurality of memory cells, wherein each of the plurality of memory cells is programmed with two bits of data from the first set of data; receiving one or more second write commands to write a second set of data to the storage device; and programming the second set of data in the plurality of memory cells programmed with the first set of data, wherein the second set of data is programmed using a second plurality of program levels available in the plurality of memory cells, each of the second plurality of program levels is different from each of the first plurality of program levels, and each of the plurality of memory cells is programmed with two bits of data from the second set of data, wherein each program level of the first and second pluralities of program levels is mapped to a respective bit pattern comprising three bits, wherein first and second bit pairs of the bit patterns mapped to the first plurality of program levels are unique across the first plurality of program levels, and wherein first and second bit pairs of the bit patterns mapped to the second plurality of program levels are unique across the second plurality of program levels. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A data storage system, comprising:
-
a plurality of storage devices, each storage device comprising a plurality of multi-level cells; and a controller coupled to the plurality of storage devices, wherein the controller is configured to; receive one or more first write commands to write a first set of data to the plurality of storage devices; program the first set of data in the plurality of storage devices using a first plurality of program levels available in the plurality of storage devices, wherein two bits of data from the first set of data are programmed in each multi-level cell programmed in the plurality of storage devices; receive a second write command to write a second set of data to the plurality of storage devices; and program the second set of data in the plurality of storage devices programmed with the first set of data, wherein the second set of data is programmed using a second plurality of program levels available in the plurality of storage devices, each of the plurality of program levels is different from each of the first plurality of program levels and two bits of data from the second set of data are programmed in each of the multi-level cell programmed in the plurality of storage devices, wherein each program level of the first and second pluralities of program levels is mapped to a bit pattern comprising three bits, wherein first and second bit pairs of the bit patterns mapped to the first plurality of program levels are unique across the first plurality of program levels, and wherein first and second bit pairs of the bit patterns mapped to the second plurality of program levels are unique across the second plurality of program levels. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A machine-readable media encoded with executable instructions which, when executed by a processor, cause the processor to perform operations comprising:
-
receiving one or more first write commands to write a first set of data to a storage device; programming the first set of data in a plurality of memory cells in the storage device using a first plurality of program levels available in the plurality of memory cells, wherein each of the plurality of memory cells is programmed with two bits of data from the first set of data; setting a flag upon programming the plurality of memory cells using the first plurality of program levels; receiving a second write command to write a second set of data to the storage device; programming the second set of data in the plurality of memory cells programmed with the first set of data, wherein the second set of data is programmed using a second plurality of program levels available in the plurality of memory cells different from the first plurality of program levels and each of the plurality of memory cells is programmed with two bits of data from the second set of data; and clearing the flag upon programming the plurality of memory cells using the second plurality of program levels, wherein each program level of the first and second pluralities of program levels is mapped to a bit pattern comprising three bits, wherein first and second bit pairs of the bit patterns mapped to the first plurality of program levels are unique across the first plurality of program levels, wherein first and second bit pairs of the bit patterns mapped to the second plurality of program levels are unique across the second plurality of program levels. - View Dependent Claims (16, 17, 18, 19)
-
Specification