Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
First Claim
1. A method of operating a non-volatile memory system including a memory circuit having a plurality of non-volatile memory cells formed into a plurality of multi-cell erase blocks and control circuitry managing the storage of data on the memory circuit, the method including:
- selecting blocks to be written with data content from a list of free blocks;
returning blocks whose data content is obsolete to a pool of free blocks, where the list of free blocks formed from members of the pool of free blocks;
maintaining an experience count for each of the blocks; and
ordering the list of free blocks in increasing order of the blocks'"'"' experience count, where when selecting a block from the list of free blocks, the selection is made from the beginning of the list of free blocks according to the ordering.
1 Assignment
0 Petitions
Accused Products
Abstract
Wear leveling techniques for re-programmable non-volatile memory systems, such as a flash EEPROM system, are described. One set of techniques uses “passive” arrangements, where, when a blocks are selected for writing, blocks with relatively low experience count are selected. This can be done by ordering the list of available free blocks based on experience count, with the “coldest” blocks placed at the front of the list, or by searching the free blocks to find a block that is “cold enough”. In another, complementary set of techniques, usable for more standard wear leveling operations as well as for “passive” techniques and other applications where the experience count is needed, the experience count of a block or meta-block is maintained as a block'"'"'s attribute along its address in the data management structures, such as address tables.
-
Citations
54 Claims
-
1. A method of operating a non-volatile memory system including a memory circuit having a plurality of non-volatile memory cells formed into a plurality of multi-cell erase blocks and control circuitry managing the storage of data on the memory circuit, the method including:
-
selecting blocks to be written with data content from a list of free blocks; returning blocks whose data content is obsolete to a pool of free blocks, where the list of free blocks formed from members of the pool of free blocks; maintaining an experience count for each of the blocks; and ordering the list of free blocks in increasing order of the blocks'"'"' experience count, where when selecting a block from the list of free blocks, the selection is made from the beginning of the list of free blocks according to the ordering. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A non-volatile memory system, including
a memory circuit having a plurality of non-volatile memory cells formed into a plurality of multi-cell erase blocks; - and
control circuitry managing the storage of data on the memory circuit, wherein the control circuit maintains an experience count for each of the blocks, and where the control circuitry selects blocks to be written with data content from a list of free blocks, returns blocks whose data content is obsolete to a pool of free blocks, where the list of free blocks formed from members of the pool of free blocks, and orders the list of free blocks in increasing order of the blocks'"'"' experience count, where when selecting a block from the list of free blocks, the selection is made from the list of free blocks according to the ordering. - View Dependent Claims (14, 15, 16, 17, 18, 19)
- and
-
13. The non-volatile memory system of 12, wherein the memory circuit is formed of a plurality of sub-arrays each having a plurality of blocks and the control circuitry forms multi-block logical structures spanning a corresponding number of sub-arrays, the multi-block logical structures being maintained in the list of free blocks.
-
20. The non-volatile memory system of 12, wherein the list of free blocks is formed from less than all of the free blocks in the pool of free blocks.
-
21. The non-volatile memory system of 12, wherein the list of free blocks is formed from all of the free blocks in the pool of free blocks.
-
22. The non-volatile memory system of 12, wherein the experience count is the number of erase cycles experienced.
-
23. A method of operating a non-volatile memory system including a memory circuit having a plurality of non-volatile memory cells formed into a plurality of blocks, the block being a multi-cell unit of erase, and control circuitry managing the storage of data on the memory circuit, the method including:
-
selecting blocks to be written with data content from a list of free blocks; returning blocks whose data content is obsolete to a pool of free blocks, where the list of free blocks formed from members of the pool of free blocks; and for the plurality of blocks, maintaining a corresponding experience count, wherein said selecting blocks from a list of free blocks comprises; searching the list of free blocks to determine a first block having an experience count that is relatively low with respect to others of the blocks; and in response to determining the first block having a relatively low experience count, discontinuing the searching and selecting the first block. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A non-volatile memory system including
a memory circuit having a plurality of non-volatile memory cells formed into a plurality of blocks, the block being a multi-cell unit of erase; - and
control circuitry managing the storage of data on the memory circuit, where the control circuitry selects blocks to be written with data content from a list of free blocks, returns blocks whose data content is obsolete to a pool of free blocks, where the list of free blocks formed from members of the pool of free blocks; and
for the plurality of blocks, maintaining a corresponding experience count, wherein said selecting blocks from a list of free blocks comprises;
searching the list of free blocks to determine a first block having an experience count that is relatively low with respect to others of the blocks; and
in response to determining the first block having a relatively low experience count, discontinuing the searching and selecting the first block. - View Dependent Claims (40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51)
- and
-
52. The non-volatile memory system of 39, wherein the list of free blocks is formed from less than all of the free blocks in the pool of free blocks.
-
53. The non-volatile memory system of 39, wherein the list of free blocks is formed from all of the free blocks in the pool of free blocks.
-
54. The non-volatile memory system of 39, wherein the experience count is the number of erase cycles experienced.
Specification