Extending non-volatile memory endurance using data encoding
AssigneeSun Microsystems, Inc.
InventorSteven T. Sprouse
Life of this patent
Estimating the term…
Abstract
An embedded system comprising a CPU and non-volatile memory is adapted to extend the endurance of the non-volatile memory through the use of an encoding of information stored in the non-volatile memory. One or more data bits are encoded into a larger number of non-volatile memory bit patterns such that changes to the data bits are distributed across fewer changes per non-volatile memory bit. Non-volatile memory endurance is extended since more changes to the data values are possible than can be supported by underlying changes to individual non-volatile memory bits. Word pre-erase, if present, can be accommodated as well as memory bit failures.
Claims27
A method of increasing the endurance of no-volatile memory comprising the steps of:
- a) converting a first stored pattern of a plurality of bits into a smaller number of bits representing a first data value;
- reading the first data value;
- and
- b) converting one or more bits representing a second data value in a second pattern of a larger number of bits to be stored, writing the second stored pattern and an existing pattern of bits stored in said non-volatile memory such that a subset of said existing pattern of stored bits changes from their existing states.
An embedded system comprising:
- a central processing unit;
- non-volatile memory;
- and
- program code configured to convert a first stored pattern of a plurality of bits into a smaller number of bits representing a first data value and read the first data value from said non-volatile memory;
- convert one or more bits representing a second data value into a second stored pattern of a larger number of bits to be stored, and write the second stored pattern to said non-volatile memory and then utilizing an existing pattern of bits stored in said non-volatile memory such that a subset of said existing pattern of the stored bits changes from their existing states.
A method of increasing the endurance of non-volatile memory comprising reading and writing information to said non-volatile memory, wherein said reading of information comprises the steps of:
- a reading a first stored data value comprising a plurality of bits from said non-volatile memory;
- b. converting said first stored data value into an input data value comprising at least one bit, wherein said input data value contains fewer bits than said first stored data value;
- and wherein said writing of information comprises the steps of:
- c. reading a second stored data value comprising a plurality of bits from said non-volatile memory;
- d. converting an output data value comprising at least one bit into a third stored data value comprising a plurality of bits, wherein said output data value contains fewer bits than said third stored data value;
- e. writing said third stored data value into said non-volatile memory;
- wherein said step of converting utilizes said second stored data value such that not all bits of said third stored data value are different from said second stored data value.
A method of increasing the endurance of non-volatile memory comprising reading and writing information to said non-volatile memory, wherein said reading of information comprises the steps of:
- a. reading a first stored data value comprising a first two words from said non-volatile memory;
- b. testing said two words for equality and returning a one bit input data value indicating an equivalence status of said two words, said equivalence status comprises one of a first status indication said two words are equal and a second status indication said two words are not equal;
- and wherein said writing of information comprises the steps of:
- c. receiving a one bit output data value;
- d. reading a second stored data value comprising a second two words from said non-volatile memory;
- e. testing said second two words for equality and performing one of the following sub-steps depending on the equality of said second two words and said one bit output data value:
- i. leaving the contents of said second two words unchanged;
- ii. writing a first of said second two words with a value different than a second of said second two words;
- iii. writing said second of said second two words with a value equal to said first of said second two words.
A method of increasing the endurance of non-volatile memory comprising reading and writing information to said non-volatile memory, wherein said reading of information comprises the steps of:
- a. reading a first stored data value from said non-volatile memory;
- b. converting said first stored data value into an input data value using a first logical operation;
- and wherein said writing of information comprises the steps of:
- c. receiving an output data value;
- d. reading a second stored data value comprising a plurality of bits from said non-volatile memory;
- e. converting said second stored data value into a previous data value using said first logical operation;
- f. if said output data value is equal to said previous data value, leaving said non-volatile memory unchanged;
- and if said output data value is not equal to said previous data value, converting said output data value into a third stored data value using a second logical operation and writing said third stored data value to said non-volatile memory.
Dependencies are inferred from the claim text.