Stochastic Block Allocation for NVM Wear Leveling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing non-volatile memory (NVM) systems face challenges in accurately determining which super blocks to select for wear leveling due to potential loss of statistics during power loss, leading to block allocation bias and uneven wear distribution.

Innovation Solution

Implementing stochastic block allocation methods, where super blocks are probabilistically selected based on pre-determined thresholds or biased random variables, ensuring a random or probabilistic chance of allocation, thereby reducing reliance on accurate statistics and avoiding block allocation bias.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If deterministic block allocation based on statistics is used, then wear leveling can be performed according to recorded cycle counts, but statistics loss during power failure causes block allocation bias and reduces reliability

Engineering Contradiction:
Improvewear leveling accuracyVSAvoidstatistics loss
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent uses a random number generator that produces unpredictable block selections, effectively making each allocation decision independent and 'disposable' of previous statistical information. This eliminates the harm of statistics loss during power failures, as the system no longer depends on persistent statistical data for accurate wear leveling.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Solution Approach 2:

The patent changes the allocation parameter from deterministic (based on recorded statistics) to stochastic (based on random variables). By transforming the block allocation mechanism to use random selection with uniform distribution, the system maintains wear leveling effectiveness without relying on vulnerable statistical records.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If stochastic block allocation is used, then reliability is improved by avoiding statistics loss issues, but manufacturing precision of wear distribution may worsen due to random selection

Engineering Contradiction:
Improveresistance to statistics lossVSAvoidwear distribution uniformity
Core Design Contradiction:
ReliabilityVSManufacturing precision

Solution Approach 1:

The patent performs preliminary wear leveling operations by selecting blocks with the minimum number of cycles before allocating them for new programming. This preliminary action ensures that even with random selection, the system proactively addresses worn blocks, maintaining wear distribution uniformity while enjoying the reliability benefits of stochastic allocation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent incorporates feedback mechanisms where the system monitors block cycle counts and uses this information to guide stochastic selection. By combining random selection with feedback about actual wear states, the system maintains manufacturing precision while achieving reliability improvements from statistics-independent allocation.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9239785B2Stochastic block allocation for improved wear leveling
Publication Date: 2016.01.19 APPLE INC
  • US9239785B2 patent drawing
  • US9239785B2 patent drawing
  • US9239785B2 patent drawing

AI summary

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.