Method of achieving wear leveling in flash memory using relative grades
First Claim
Patent Images
1. A method of managing a memory, of a memory device, that includes a plurality of blocks, the method comprising the steps of, for each block:
- (a) calculating a number that is a function of how many times said each block has been erased and of how many times at least one other block has been erased; and
(b) storing said number in the memory device;
wherein, for at least two of the blocks, said at least one other block of a first of said at least two blocks is different from said at least one other block of a second of said at least two blocks.
4 Assignments
0 Petitions
Accused Products
Abstract
For each block of a memory, a number is calculated that is a function of how many times the block has been erased and of how many times at least one other block has been erased. The numbers are stored in the memory device that includes the memory. The numbers are updated as needed when blocks are erased. Blocks are selected to be erased in accordance with their numbers. Preferably, each block'"'"'s function is the block'"'"'s relative grade.
-
Citations
21 Claims
-
1. A method of managing a memory, of a memory device, that includes a plurality of blocks, the method comprising the steps of, for each block:
-
(a) calculating a number that is a function of how many times said each block has been erased and of how many times at least one other block has been erased; and (b) storing said number in the memory device; wherein, for at least two of the blocks, said at least one other block of a first of said at least two blocks is different from said at least one other block of a second of said at least two blocks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A memory device comprising:
-
(a) a memory that includes a plurality of blocks; and (b) a controller for managing said memory by steps including;
for each said block;(i) calculating a number that is a function of how many times said each block has been erased and of how many times at least one other said block has been erased, and (ii) storing said number in the memory device; wherein, for at least two of the blocks, said at least one other block of a first of said at least two blocks is different from said at least one other block of a second of said at least two blocks. - View Dependent Claims (11)
-
-
12. A computer-readable storage medium having computer-readable code embodied on said computer-readable storage medium, the computer-readable code for managing a memory, of a memory device, that includes a plurality of blocks, the computer-readable code comprising:
-
(a) program code for, for each block, calculating a number that is a function of how many times said each block has been erased and of how many times at least one other said block has been erased; and (b) program code for, for each block, storing said number in the memory device; wherein, for at least two of the blocks, said at least one other block of a first of said at least two blocks is different from said at least one other block of a second of said at least two blocks.
-
-
13. A method of managing a memory, of a memory device, that includes a plurality of blocks, the method comprising the steps of, for each block:
-
(a) calculating a number that is a function of how many times said each block has been erased and of how many times at least one other block has been erased; and (b) storing said number in the memory device; wherein, for each block, said function is a relative grade of said each block; and wherein, for each of at least one of the blocks, said relative grade depends on a difference between an erase count of said each block and an erase count of a neighbor of said each block.
-
-
14. A memory device comprising:
-
(a) a memory that includes a plurality of blocks; and (b) a controller for managing said memory by steps including;
for each said block;(i) calculating a number that is a function of how many times said each block has been erased and of how many times at least one other said block has been erased, and (ii) storing said number in the memory device; wherein, for each block, said function is a relative grade of said each block; and wherein, for each of at least one of the blocks, said relative grade depends on a difference between an erase count of said each block and an erase count of a neighbor of said each block.
-
-
15. A computer-readable storage medium having computer-readable code embodied on said computer-readable storage medium, the computer-readable code for managing a memory, of a memory device, that includes a plurality of blocks, the computer-readable code comprising:
-
(a) program code for, for each block, calculating a number that is a function of how many times said each block has been erased and of how many times at least one other said block has been erased; and (b) program code for, for each block, storing said number in the memory device; wherein, for each block, said function is a relative grade of said each block; and wherein, for each of at least one of the blocks, said relative grade depends on a difference between an erase count of said each block and an erase count of a neighbor of said each block.
-
-
16. A method of managing a memory, of a memory device, that includes a plurality of blocks, the method comprising the steps of, for each block:
-
(a) calculating a number that is a function of how many times said each block has been erased and of how many times at least one other block has been erased; and (b) storing said number in the memory device; wherein, for each block, said function is a relative grade of said each block; and wherein, for each of at least one of the blocks, said relative grade depends on a difference between an erase count of said each block and an average erase count of at least two other blocks, one of said two other blocks being a neighbor of said each block.
-
-
17. A memory device comprising:
-
(a) a memory that includes a plurality of blocks; and (b) a controller for managing said memory by steps including;
for each said block;(i) calculating a number that is a function of how many times said each block has been erased and of how many times at least one other said block has been erased, and (ii) storing said number in the memory device; wherein, for each block, said function is a relative grade of said each block; and wherein, for each of at least one of the blocks, said relative grade depends on a difference between an erase count of said each block and an average erase count of at least two other blocks, one of said two other blocks being a neighbor of said each block.
-
-
18. A computer-readable storage medium having computer-readable code embodied on said computer-readable storage medium, the computer-readable code for managing a memory, of a memory device, that includes a plurality of blocks, the computer-readable code comprising:
-
(a) program code for, for each block, calculating a number that is a function of how many times said each block has been erased and of how many times at least one other said block has been erased; and (b) program code for, for each block, storing said number in the memory device; wherein, for each block, said function is a relative grade of said each block; and wherein, for each of at least one of the blocks, said relative grade depends on a difference between an erase count of said each block and an average erase count of at least two other blocks, one of said two other blocks being a neighbor of said each block.
-
-
19. A method of managing a memory, of a memory device, that includes a plurality of blocks, the method comprising the steps of, for each block:
-
(a) calculating a number that is a function of how many times said each block has been erased and of how many times at least one other block has been erased; and (b) storing said number in the memory device; wherein said calculating includes, for each block, truncating said function at a number of bits insufficient to store a maximum allowed number of erase cycles per block.
-
-
20. A memory device comprising:
-
(a) a memory that includes a plurality of blocks; and (b) a controller for managing said memory by steps including;
for each said block;(i) calculating a number that is a function of how many times said each block has been erased and of how many times at least one other said block has been erased, and (ii) storing said number in the memory device; wherein said calculating includes, for each block, truncating said function at a number of bits insufficient to store a maximum allowed number of erase cycles per block.
-
-
21. A computer-readable storage medium having computer-readable code embodied on said computer-readable storage medium, the computer-readable code for managing a memory, of a memory device, that includes a plurality of blocks, the computer-readable code comprising:
-
(a) program code for, for each block, calculating a number that is a function of how many times said each block has been erased and of how many times at least one other said block has been erased; and (b) program code for, for each block, storing said number in the memory device; wherein said calculating includes, for each block, truncating said function at a number of bits insufficient to store a maximum allowed number of erase cycles per block.
-
Specification