Maintaining an average erase count in a non-volatile storage system
First Claim
1. A method of managing a non-volatile memory of a memory system according to an average number of times each block of a number of blocks within the non-volatile memory has been erased, the method comprising:
- for a first block of the number of blocks, comparing an erase count stored in the first block, the erase count indicating a number of times that block has been erased, with an erase count value for the first block stored in a non-volatile portion of a system memory of the memory system;
responsive to the comparing step determining that the erase count stored in the first block is greater than the erase count value for the first block stored in the system memory, updating the erase count value for the first block stored in system memory to correspond to the erase count stored in the first block;
also responsive to the comparing step determining that the erase count stored in the first block is greater than the erase count value, obtaining an erase count-for each block of the number of blocks, wherein the number of blocks is a total number of usable blocks within the non-volatile memory;
creating a sum of the obtained erase counts for the number of blocks;
creating an average erase count, from the sum of the obtained erase counts; and
storing an indicator of the average erase count in a non-volatile portion of the system memory of the memory system.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for maintaining an average erase count in a system memory of a non-volatile memory system are disclosed. According to one aspect of the present invention, a method for determining an average number of times each block of a number of blocks within a non-volatile memory of a memory system has been erased includes obtaining an erase count for each block that indicates a number of times each block has been erased. Once all the erase counts have been obtained, the erase counts are summed, and an average erase count that indicates the average number of times each block of the number of blocks has been erased is created by substantially dividing the sum by the number of blocks.
-
Citations
9 Claims
-
1. A method of managing a non-volatile memory of a memory system according to an average number of times each block of a number of blocks within the non-volatile memory has been erased, the method comprising:
-
for a first block of the number of blocks, comparing an erase count stored in the first block, the erase count indicating a number of times that block has been erased, with an erase count value for the first block stored in a non-volatile portion of a system memory of the memory system; responsive to the comparing step determining that the erase count stored in the first block is greater than the erase count value for the first block stored in the system memory, updating the erase count value for the first block stored in system memory to correspond to the erase count stored in the first block; also responsive to the comparing step determining that the erase count stored in the first block is greater than the erase count value, obtaining an erase count-for each block of the number of blocks, wherein the number of blocks is a total number of usable blocks within the non-volatile memory; creating a sum of the obtained erase counts for the number of blocks; creating an average erase count, from the sum of the obtained erase counts; and storing an indicator of the average erase count in a non-volatile portion of the system memory of the memory system. - View Dependent Claims (2, 3, 4)
-
-
5. A non-volatile memory system comprising:
-
a non-volatile memory, the non-volatile memory including a number of blocks, each block including a redundant area for storing overhead data comprising an erase count for that block; a system memory, associated with the non-volatile memory, and having a non-volatile portion including an erase count block; and means for managing the erase count block by performing a sequence of operations comprising; comparing an erase count stored in the redundant area of a first block of the number of blocks, with an erase count value associated with the first block that is stored in the erase count block, the erase count arranged to indicate a number of times the block has been erased; updating the erase count value in the erase count block for the first block, to correspond to the erase count stored in the first block, responsive to the comparing means determining that the erase count stored in the first block is greater than the erase count value stored in the erase count block for the first block; obtaining an erase count for each block of the number of blocks from the redundant area of each block, responsive to the comparing means determining that the erase count stored in the redundant area of the first block is less than the erase count value for that block stored in the erase count block; creating an average erase count, indicating an average number of times each block of the number of blocks has been erased; and storing a first indicator corresponding to the average erase count in the non-volatile portion of the system memory. - View Dependent Claims (6, 7, 8, 9)
-
Specification