STOCHASTIC BLOCK ALLOCATION FOR IMPROVED WEAR LEVELING
First Claim
1. A method for super block allocation of a plurality of super blocks of a non-volatile memory (“
- NVM”
) for wear leveling, the method comprising;
selecting a set of super blocks from the plurality of super blocks that satisfy a pre-determined threshold of a total distribution of the number of cycles of the plurality of super blocks;
allocating a super block of the set of super blocks for wear leveling, wherein the super block is stochastically selected from the set of super blocks; and
performing wear leveling on the NVM using the allocated super block.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are disclosed for stochastic block allocation for improved wear leveling for a system having non-volatile memory (“NVM”). The system can probabilistically allocate a block or super block for wear leveling based on statistics associated with the block or super block. In some embodiments, the system can select a set of blocks or super blocks based on a pre-determined threshold of a number of cycles (e.g., erase cycles and/or write cycles). The block or super block can then be selected from the set of super blocks. In other embodiments, the system can use a fully stochastic approach by selecting a block or super block based on a biased random variable. The biased random variable may be generated based in part on the number of cycles associated with each block or super block of the NVM.
-
Citations
28 Claims
-
1. A method for super block allocation of a plurality of super blocks of a non-volatile memory (“
- NVM”
) for wear leveling, the method comprising;selecting a set of super blocks from the plurality of super blocks that satisfy a pre-determined threshold of a total distribution of the number of cycles of the plurality of super blocks; allocating a super block of the set of super blocks for wear leveling, wherein the super block is stochastically selected from the set of super blocks; and performing wear leveling on the NVM using the allocated super block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
- NVM”
-
13. A memory interface for accessing a non-volatile memory (“
- NVM”
) having a plurality of blocks, wherein each block is associated with a number of cycles, the memory interface comprising;a bus controller operative to communicate with the NVM; and control circuitry operative to; determine that a block needs to be allocated; generate a biased random variable based at least in part on the number of cycles associated with each block of the plurality of blocks of the NVM; and allocate a block from the plurality of blocks based at least on the biased random variable. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21)
- NVM”
-
22. A system comprising:
-
a non-volatile memory (“
NVM”
) comprising a plurality of super blocks;a bus controller operative to communicate with the NVM; and control circuitry operative to; determine whether a lower-cycled block needs to be allocated for wear leveling; in response to determining that a lower-cycled super block needs to be allocated for wear leveling, select a set of super blocks, wherein each super block of the set of super blocks has a number of cycles that is within a pre-determined range of the number of cycles of a lowest-cycled block of the plurality of super blocks; and allocate a super block of the set of super blocks for wear leveling, wherein the super block is stochastically selected from the set of super blocks. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
Specification