Compressed event counting technique and application to a flash memory system
First Claim
1. A method of maintaining a compressed count of occurrences of an event that recurs during operation of a memory system, the memory system comprising a non-volatile storage section and a controller having a volatile memory, the method comprising:
- copying the compressed count from the non-volatile storage section to the controller,subsequently expanding the compressed count,storing the expanded count in the volatile memory,incrementing the expanded count in response to individual occurrences of the event,determining when the incremented count matches a multiple of a first predetermined value, andin response to the incremented count matching a multiple of said first predetermined value, updating the compressed count in the non-volatile storage section.
3 Assignments
0 Petitions
Accused Products
Abstract
A non-volatile flash memory system counts the occurrences of an event, such as the number of times that individual blocks have been erased and rewritten, by updating a compressed count only once for the occurrence of a large number of such events. Complementary embodiments include updating the compressed count based upon a random number or upon the actual count matching a multiple of the fixed number. These techniques also have application to monitoring other types of recurring events in flash memory systems or in other types of electronic systems. In another aspect of the present invention, provisions are made to maintain an accurate experience count if the memory system experiences an improper shutdown, for example in case of power loss or removal of a memory card.
119 Citations
20 Claims
-
1. A method of maintaining a compressed count of occurrences of an event that recurs during operation of a memory system, the memory system comprising a non-volatile storage section and a controller having a volatile memory, the method comprising:
-
copying the compressed count from the non-volatile storage section to the controller, subsequently expanding the compressed count, storing the expanded count in the volatile memory, incrementing the expanded count in response to individual occurrences of the event, determining when the incremented count matches a multiple of a first predetermined value, and in response to the incremented count matching a multiple of said first predetermined value, updating the compressed count in the non-volatile storage section. - View Dependent Claims (2, 3, 4)
-
-
5. A method of maintaining a compressed count of a number of occurrences of an event that recurs during operation of an electronic system, comprising:
-
incrementing a count of the number of the individual occurrences of the event, determining when the incremented count matches a multiple of a first predetermined value, and in response to the incremented count matching a multiple of said first predetermined value, updating a compressed count of the number of occurrences of the event within the system, wherein the compressed count is maintained in non-volatile memory. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. A method of maintaining a compressed count of a number of occurrences of an event that recurs during operation of a system, comprising:
-
determining whether a predetermined number of individual occurrences of said system event has occurred since the compressed count was updated, updating the compressed count of the number of occurrences of said system event on those occasions when the predetermined number of individual occurrences of said system event has occurred, determining whether another event having a random or pseudo-random probability P of occurring in response to individual occurrences of said system event has occurred, and incrementing the compressed count of the number of occurrences of said system event on those occasions when the randomly or pseudo-randomly occurring event has occurred, wherein said updating rectifies the incremented compressed count.
-
-
12. A method of operation of a system having a volatile and non-volatile memory, comprising:
-
maintaining a count in the volatile memory of occurrences of an event that recurs during the operation of the system, incrementing the when the event occurs, and in response to an indication of an improper shutdown of the system; compressing the count, and storing the compressed count in the non-volatile memory. - View Dependent Claims (13, 14, 15)
-
-
16. A non-volatile memory system, comprising:
-
a plurality of blocks of non-volatile memory cells wherein the cells within individual ones of the blocks are simultaneously erasable, a controller including a micro-processor that controls programming of data into addressed blocks of memory cells, reading data from addressed blocks of memory cells and erasing data from one or more of addressed blocks of memory cells at a time, storage provided within the plurality of blocks of memory cells that maintains first counts associated with individual ones of the memory cell blocks, an incrementer that increases a second count in response to a corresponding addressed block being erased, and a first comparator that causes the first count associated with the corresponding addressed blocks being erased to be updated when the second count matches a multiple of a first predetermined number. - View Dependent Claims (17, 18, 19, 20)
-
Specification