Memory life extension system and method
First Claim
1. A method of managing operation of rewritable memory used to store a monotonically increasing sequence of multiple-byte binary values in a set of one or more memory locations in the rewritable memory, the method comprising:
- reading in a first value from the set of one or more memory locations;
on detection of an instruction to store an incremented value;
permuting the incremented value by, in combination;
applying an encoding, in which a value of a least significant bit changes only on every second increment, to two least significant bits of the incremented value; and
on overflow of a least significant byte as a result of the increment, applying a cyclic byte-wise shift to the incremented value; and
storing the permuted incremented value in the one or more memory locations.
1 Assignment
0 Petitions
Accused Products
Abstract
A memory life extension system and method is provided for managing operation of rewritable memory used to store a monotonically increasing sequence of multiple-byte binary values in a set of one or more memory locations in the rewritable memory. A first value is read in from a set of one or more memory locations. On detection of an instruction to store an incremented value, the incremented value is permuted by applying an encoding, in which a value of a least significant bit changes only on every second increment, to two least significant bits of the incremented value. On overflow of a least significant byte as a result of the increment, a cyclic byte-wise shift is applied to the incremented value. The permuted incremented value is then stored in the one or more memory locations.
-
Citations
15 Claims
-
1. A method of managing operation of rewritable memory used to store a monotonically increasing sequence of multiple-byte binary values in a set of one or more memory locations in the rewritable memory, the method comprising:
- reading in a first value from the set of one or more memory locations;
on detection of an instruction to store an incremented value;permuting the incremented value by, in combination; applying an encoding, in which a value of a least significant bit changes only on every second increment, to two least significant bits of the incremented value; and on overflow of a least significant byte as a result of the increment, applying a cyclic byte-wise shift to the incremented value; and
storing the permuted incremented value in the one or more memory locations. - View Dependent Claims (2, 3, 4)
- reading in a first value from the set of one or more memory locations;
-
5. A method of managing operation of rewritable memory used to store a sequence of binary values, the method comprising:
-
defining an allocation of each one of a plurality of memory blocks in the rewritable memory to a corresponding byte position of a multiple-byte value; storing a first multiple-byte value in the memory blocks corresponding to the plurality of memory addresses according to the allocation; reading in the first value from the memory blocks;
incrementing the first value to provide an incremented value;encoding two least significant bits of the incremented value according to the encoding of a′
1=a1 and a′
0=a1a0, wherein a0 is an initial value of the least significant bit, a′
0 is an encoded value of the least significant bit, a1 is an initial value of a second-least significant bit, and a′
1 is an encoded value of the second-least significant bit;when the incrementing of the first value does not result in an overflow of a least significant byte, storing the incremented value in the memory blocks according to the allocation; when the incrementing of the first value results in an overflow of a least significant byte, altering the allocation by cyclically shifting the allocation of the plurality of memory blocks to the corresponding byte positions, and storing the incremented value in the memory blocks according to the allocation as altered. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. A method of managing operation of rewritable memory used to store an increment of a stored value, the stored value being represented by multiple bytes, the multiple bytes being stored in a defined set of blocks of the rewritable memory according to a defined byte order, the method comprising:
-
detecting an instruction to store an incremented value in place of the stored value; permuting two least significant bits of the incremented value according to the encoding of a′
1=a1 and a′
0=a1a0, wherein a0 is an initial value of the least significant bit, a′
0 is an encoded value of the least significant bit, a1 is an initial value of a second-least significant bit, and a′
1 is an encoded value of the second-least significant bit;upon determining that the incremented value results in an overflow of a least significant byte as compared to the stored value, permuting the byte order according to a cyclic byte-wise shift, and storing the incremented value as incremented according to the permuted byte order.
-
-
12. An electronic device, comprising:
-
a memory device comprising rewritable memory; and at least one processor, the memory device and the at least one processor being configured to implement a method comprising; reading in a first value from a set of one or more memory locations of the rewritable memory; on detection of an instruction to store an incremented value; permuting the incremented value by, in combination; applying an encoding, in which a value of a least significant bit changes only on every second increment, to two least significant bits of the incremented value; and on overflow of a least significant byte as a result of the increment, applying a cyclic byte-wise shift to the incremented value; and storing the permuted incremented value in the one or more memory locations. - View Dependent Claims (13, 14, 15)
-
Specification