IP Library Granted Patent US 7,287,118
Granted Patent B2
US 7,287,118 · App. 11/362,666 · Granted Oct 23, 2007

Maintaining an average erase count in a non-volatile storage system

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,287,118
App. No.
11/362,666
Granted
Oct 23, 2007
Kind
B2
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.

Claims (35)

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.

2. The method of claim 1 wherein the non-volatile memory is a NAND flash memory.

3. The method of claim 1 , wherein the step of obtaining an erase count for each block of the number of blocks comprises:

for each block of the number of blocks, obtaining an erase count stored in that block;

and further comprising:

after the step of obtaining an erase count for each block of the number of blocks, updating the erase count value for each of the number of blocks stored in system memory to correspond to the obtained erase count for that block.

4. The method of claim 3 , wherein the step of creating the average erase count comprises:

dividing the sum of the obtained erase counts by the number of blocks.

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.

6. The non-volatile memory system of claim 5 , wherein the operation of creating an average erase count comprises the operations of:

creating a sum of the obtained erase counts for the number of blocks;

dividing the sum by the number of blocks.

7. The non-volatile memory system of claim 5 , wherein the managing means comprises:

an erase count block management software submodule; and

a microprocessor for executing the erase count block management software submodule.

8. The non-volatile memory system of claim 7 , wherein the erase count block management software submodule comprises:

code devices that obtain an erase count for each block of the plurality of blocks, the erase count for each block of the plurality of blocks being arranged to indicate a number of times each block of the plurality of blocks has been erased, wherein the plurality of blocks correspond to usable blocks within the non-volatile memory;

code devices that create a sum of the erase counts for the plurality of blocks;

code devices that create the average erase count, the average erase count being arranged to indicate the average number of times each memory element of the plurality of blocks has been erased, wherein the code devices that create the average erase count include code devices that divide the sum by the number of blocks in the plurality of blocks; and

a memory area that stores the code devices.

9. The memory system of claim 8 wherein the non-volatile memory is a NAND flash memory.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2021
From: SANDISK TECHNOLOGIES LLC
To: INNOVATIVE MEMORY SYSTEMS, INC.
Reel/Frame 058093/0991 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038809/0472 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2011
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026334/0056 →