Stochastic block allocation for improved wear leveling
First Claim
1. A memory interface for accessing a nonvolatile 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;
allocate a block from the plurality of blocks based at least on the biased random variable;
assign a plurality of weights to the plurality of blocks, wherein each weight of the plurality of weights is assigned to a block based on the number of cycles associated with the block;
generate a sum of the plurality of weights; and
select the biased random variable based on the sum of the plurality of weights.
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
7 Claims
-
1. A memory interface for accessing a nonvolatile 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; allocate a block from the plurality of blocks based at least on the biased random variable; assign a plurality of weights to the plurality of blocks, wherein each weight of the plurality of weights is assigned to a block based on the number of cycles associated with the block; generate a sum of the plurality of weights; and select the biased random variable based on the sum of the plurality of weights. - View Dependent Claims (2, 3, 4, 5, 6, 7)
- NVM”
Specification