Methods for writing non-volatile memories for increased endurance
First Claim
1. In a memory system including a plurality N of individually accessible sections of multiple erasable and re-programmable non-volatile memory cells, a method of storing a numerical value that comprises:
- encoding the numerical value as a binary value composed of N fields, such that for each incrementing the numerical value changes only a single one of said fields and the changes to the N fields are substantially uniformly distributed among the N fields as the numerical value is incremented; and
storing the change to said single one of the N fields in a corresponding one of the N sections as the numerical value is incremented while leaving the other ones of the N fields unchanged.
3 Assignments
0 Petitions
Accused Products
Abstract
A memory system that incorporates methods of amplifying the lifetime of a counter made up of memory elements, such as EEPROM cells, having finite endurance. A relatively small memory made up of a number of individually accessible write segments, where, depending on the embodiment, each write segment is made up of a single memory cell or a small number of cells (e.g., a byte). A count is encoded so that it is distributed across a number of fields, each associated with one of the write segments, such that as the count is incremented only a single field (or, in the single bit embodiments, occasionally more than one field) is changed and that these changes are evenly distributed across the fields. The changed field is then written to the corresponding segment, while the other write segments are unchanged. Consequently, the number of rewrites to a given write segment is decreased, and the lifetime correspondingly increased, by a factor corresponding to the number of write segments used.
27 Citations
23 Claims
-
1. In a memory system including a plurality N of individually accessible sections of multiple erasable and re-programmable non-volatile memory cells, a method of storing a numerical value that comprises:
-
encoding the numerical value as a binary value composed of N fields, such that for each incrementing the numerical value changes only a single one of said fields and the changes to the N fields are substantially uniformly distributed among the N fields as the numerical value is incremented; and storing the change to said single one of the N fields in a corresponding one of the N sections as the numerical value is incremented while leaving the other ones of the N fields unchanged. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. In a memory system having a plurality of N individually accessible, rewritable non-volatile segments, a method comprising:
-
incrementing the value of a register; encoding the register value into a plurality of N binary fields, each of the fields corresponding to a respective one of the individually accessible, rewritable segments, where the encoding is such that as the register value is incremented the number of fields that change for each count is minimized and the changes to the fields are substantially uniformly distributed; and rewriting the incremented register value in the segments in which the respective field value has changed. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
Specification