Technique for memory imprint reliability improvement
First Claim
1. A method, comprising:
- storing a data value in a memory word comprising one or more memory cells;
storing an inversion condition bit in a memory location operably associated with the memory word, wherein the inversion condition bit indicates if the associated memory word currently stores an actual data value or an inverted data value;
providing an inversion status bit that comprises information associated with an inversion status of the memory array;
providing an address counter value from an address counter configured to advance through a plurality of address counter values, so that each memory word in the memory array is associated with a particular address counter value;
reading the data value and the inversion condition bit from the memory location associated with the address counter value;
inverting the data valueinverting the inversion condition bit;
re-writing the inverted data value and the inverted inversion condition bit to the memory location associated with the address counter value;
incrementing the address counter value; and
toggling the inversion status bit and resetting the address counter to the lowest numbered memory address once the memory address counter has addressed the plurality of memory addresses;
providing a control circuitry by which an error correction code (an ECC) can be implemented;
storing at least one ECC syndrome bit and a parity bit in a first additional memory location; and
a read operation of the method comprising;
reading the data value, the inversion condition bit, and the at least one ECC syndrome bit;
correcting single bit errors and detecting double bit errors using ECC;
storing an address associated with an uncorrectable double error bit in a second additional memory location;
performing a first round of error correction if an error is detected, the first round of error correction comprising selectively inverting the data value, the inversion condition bit, and the at least one ECC syndrome bit until a single bit error is corrected or all inversion condition bit combinations are exhausted;
performing a second round of error correction if the error is still detected, wherein the second round of error correction comprises selectively inverting the data value, the inversion condition bit, and the at least one ECC syndrome bit until a single bit error is corrected or all inversion condition bit combinations are exhausted;
storing an address associated with an uncorrectable double error bit in the second additional memory location;
incrementing the memory address counter;
toggling the inversion status bit once the memory address counter has addressed the plurality of memory addresses; and
writing an memory address counter value and the toggled inversion status bit to memory.
1 Assignment
0 Petitions
Accused Products
Abstract
One embodiment of the present invention relates to a method of reducing imprint of a memory cell. The method comprises adding an inversion condition bit operably associated with one or more memory cells storing a memory word. The inversion condition bit indicates whether the memory word represents an actual payload or an inversion of the actual payload. The inversion condition bit and memory word are selectively toggled by a control circuitry. Inversion is performed by reading the inversion condition bit and memory word and rewriting the memory word back to the one or more memory cells in an inverted or non-inverted state, depending on an inversion condition bit. The inversion condition bit is then written to the inversion status bit value. The memory address is incremented, and the inversion status data state is toggled once the address counter addresses the entire memory array. Other methods and circuits are also disclosed.
-
Citations
9 Claims
-
1. A method, comprising:
-
storing a data value in a memory word comprising one or more memory cells; storing an inversion condition bit in a memory location operably associated with the memory word, wherein the inversion condition bit indicates if the associated memory word currently stores an actual data value or an inverted data value; providing an inversion status bit that comprises information associated with an inversion status of the memory array; providing an address counter value from an address counter configured to advance through a plurality of address counter values, so that each memory word in the memory array is associated with a particular address counter value; reading the data value and the inversion condition bit from the memory location associated with the address counter value; inverting the data value inverting the inversion condition bit; re-writing the inverted data value and the inverted inversion condition bit to the memory location associated with the address counter value; incrementing the address counter value; and toggling the inversion status bit and resetting the address counter to the lowest numbered memory address once the memory address counter has addressed the plurality of memory addresses; providing a control circuitry by which an error correction code (an ECC) can be implemented; storing at least one ECC syndrome bit and a parity bit in a first additional memory location; and a read operation of the method comprising; reading the data value, the inversion condition bit, and the at least one ECC syndrome bit; correcting single bit errors and detecting double bit errors using ECC; storing an address associated with an uncorrectable double error bit in a second additional memory location; performing a first round of error correction if an error is detected, the first round of error correction comprising selectively inverting the data value, the inversion condition bit, and the at least one ECC syndrome bit until a single bit error is corrected or all inversion condition bit combinations are exhausted; performing a second round of error correction if the error is still detected, wherein the second round of error correction comprises selectively inverting the data value, the inversion condition bit, and the at least one ECC syndrome bit until a single bit error is corrected or all inversion condition bit combinations are exhausted; storing an address associated with an uncorrectable double error bit in the second additional memory location; incrementing the memory address counter; toggling the inversion status bit once the memory address counter has addressed the plurality of memory addresses; and writing an memory address counter value and the toggled inversion status bit to memory. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method comprising:
-
storing a data value in one or more memory cells, the one or more memory cells comprising a memory word; storing an inversion status bit in a memory location operably associated with the memory word, wherein the inversion status bit indicates if the memory word has been inverted; providing an inversion pending bit in indicative of whether inversion of the memory word has taken place; providing an address counter value from an address counter configured to advance through a plurality of address counter values, so that each memory word in the memory array is associated with a particular address counter value; reading the data value; setting the inversion pending bit to a data state indicating inversion of the data value is in progress; writing the inversion status bit, the memory word address, the inversion pending bit, and at least one bit of the data value as one word a fourth additional memory location; inverting the data value; re-writing the inverted data value to the one or more memory cells; setting the inversion pending bit to a data state indicating inversion of the data value is not in progress; incrementing the address counter value; toggling the inversion status once the address counter has addressed the plurality of memory addresses; and writing the inversion status bit, the memory word address, and the inversion pending bit as one word to the fourth additional memory location. - View Dependent Claims (8, 9)
-
Specification