According to the multilevel programming method, each memory location can be programmed at a non-binary number of levels. The bits to be stored in the two locations are divided into two sets, wherein the first set defines a number of levels higher than the non-binary number of levels. During programming, if the first set of bits to be written corresponds to a number smaller than the non-binary number of levels, the first set of bits is written in the first location and the second set of bits is written in the second location; if it is greater than the non-binary number of levels, the first set of bits is written in the second location and the second set of bits is written in the first location. The bits of the first set in the second location are stored in different levels with respect to the bits of the second set.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for storing data in a multilevel nonvolatile storage device comprising a plurality of memory locations, each of which can be programmed at a plurality of voltage levels, the method comprising: programming each of the memory locations at any of N voltage levels, where N is a non-power of two, depending on where a value for storage in the memory location falls among N 1 thresholds.
2. The data-storage method according to claim 1 , wherein N is 2 n 2 and n 2.
3. The data-storage method according to claim 2 , wherein N is six.
4. The data-storage method according to claim 1 , wherein an integer number of bits is stored in at least two memory locations.
5. The data-storage method according to claim 4 , comprising the steps of: a) dividing said integer number of bits into at least two sets of bits, wherein at least one first set of bits defines a binary number of levels that is greater than N; b) checking whether said first set of bits encodes a value to be stored in a first of said memory locations; c1) in case of a positive outcome of step b), storing said first set of bits in said first memory location and storing a second set of bits in a second of said memory locations; c2) in case of a negative outcome of step b), storing said first set of bits in said second memory location and storing a second set of bits in said first memory location.
6. The data-storage method according to claim 5 , wherein said step c1) comprises storing said second set of bits in a first sub-set of levels of said second memory location; and said step c2) comprises storing said first set of bits in a second sub-set of levels of said second memory location, said second subset of levels being separate from said first subset of levels.
7. The data-storage method according to claim 6 , comprising the steps of: d) reading said first and second memory locations; e) checking whether one of the levels of said second subset of levels of said memory location has been written; f1) in case of a positive outcome, assigning said one of the levels of said second sub-set of levels to said first set of bits, and assigning a level read in said first memory location to said second set of bits; f2) in case of a negative outcome, assigning a level read in said first memory location to said first set of bits, and assigning a level read in said second memory location to said second set of bits.
8. A method of storing a group of bits into first and second memory locations, comprising: dividing the group of bits into first and second sets of bits; storing the second set in the second memory location if a value of the bits of the first set is less than a reference value; and storing the second set in the first memory location if the value of the bits of the first set is not less than the reference value.
9. The method of claim 8 , further comprising: storing the first set in the first memory location if the value of the bits of the first set is less than the reference value; and storing the first set in the second memory location if the value of the bits of the first set is not less than the reference value.
10. The method of claim 8 wherein one of the first and second sets consists of an odd number of bits and another of first and second sets consists of an even number of bits.
11. A method of storing a group of bits into first and second memory locations, the method comprising; dividing the odd number of bits into first and second sets of bits, the first set of bits corresponding to a set of possible values; storing the second set of bits in the second memory location in response to determining that a value of the bits of first set is among a first subset of the set of possible values; and storing the second set of bits in the first memory location in response to determining that the value of the bits of first set is among a second subset of the set of possible values.
12. The method of claim 11 , further comprising: storing the first set of bits in the first memory location in response to determining that the value of the bits of first set is among the first subset of the set of possible values; and storing the first set of bits in the first memory location in response to determining that the value of the bits of first set is among the second subset of the set of possible values.
13. The method of claim 11 wherein one of the first and second sets consists of an odd number of bits and another of first and second sets consists of an even number of bits.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
September 26, 2002
November 9, 2004
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.