Back to results
US 9,959,067 B2Granted
Memory block allocation by block health
AssigneeSanDisk Technologies LLC
InventorsNiles Yang, Jianmin Huang, Swati Bakshi
Life of this patent
Estimating the term…
Abstract
An individual block health metric value calculated for each of a plurality of blocks from a combination of factors including at least program-erase cycle count and error rate is used to order the plurality of blocks in order of block health metric values in an ordered list. Subsequently, a block may be selected for use according to a position of the block in the ordered list.
Claims21
A method, comprising:
- calculating health metrics for blocks of a non-volatile memory, the health metric calculated for each block comprising a program-erase cycle count of the block and an error rate of the block;
- determining an ordering for the blocks based on the calculated health metrics of the blocks;
- and
- selecting a block for use in a write operation from a set of blocks that are available for writing based on the determined ordering of the blocks, the selected block having a program-erase count that is higher than a program-erase count of one or more other blocks of the set not selected for use in the write operation.
1 more element
A method, comprising:
- calculating a block health metric (BHM) value for each of a plurality of blocks of non-volatile memory storage elements, the BHM values quantifying a health of each block as a function of a Program-Erase Count (PEC) of the block and a Bit Error Rate (BER) of the block;
- ranking the plurality of blocks in order of the BHM values calculated for each of the blocks from a healthiest block to a least-healthiest block, the healthiest block having a higher PEC count than one or more lower-ranked blocks in the ranking;
- and
- selecting a block for use in a write operation based on the ranking, comprising selecting a highest-ranked block in a pool of free blocks, the highest-ranked block having a higher PEC than a PEC of one or more other blocks in the pool.
1 more element
A non-volatile memory system, comprising:
- a plurality of blocks of non-volatile memory storage elements, wherein each block is individually erasable;
- an error rate calculation circuit configured to calculate an error rate for each block;
- a program-erase cycle count circuit configured to count program-erase cycles experienced by each block;
- a block health metric calculator configured to calculate a multi-factor health metric for each of the blocks, the multi-factor health metric for each block comprising a combination of a plurality of block health factors, comprising the error rate of the block, as calculated by the error rate calculation circuit, and the program-erase cycle count of the block obtained from the program-erase cycle count circuit;
- and
- control circuitry configured to:
- generate an entry for each block, the entry for each block comprising the error rate of the block, the program-erase cycle count of the block, and the multi-factor health metric calculated for the block, the entries configured to distinguish free blocks that are available for use in write operations from programmed blocks;
- determine a health ordering of the entries according to the multi-factor health metrics calculated for the corresponding blocks, such that a position of each entry in the determined health ordering indicates a relative health of the corresponding block compared to the plurality of blocks;
- and
- select a block for use in a write operation from blocks identified as being free blocks by the entries, the control circuitry configured to select the block according to a position of an entry corresponding to the selected block in the determined health ordering, wherein a multi-factor health metric calculated for the selected block indicates that the selected block is a healthiest block of the free blocks, the selected block having a higher program-erase cycle count than one or more of the free blocks not selected for use in the write operation.
7 more elements
Dependencies are inferred from the claim text.