Wear Leveling Window for Non-Volatile Memory Blocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional non-volatile memory systems perform unnecessary write operations due to their wear leveling techniques, which attempt to maintain an overall average program/erase cycle count across all memory blocks, leading to inefficient data copying and reduced endurance.

Innovation Solution

Implementing a wear leveling window with ceiling and floor limits based on program/erase cycle counts, age, and longevity metrics to identify memory blocks for wear leveling, reducing the number of write/copy operations by dynamically adjusting these limits and using indicators to restrict future wear leveling operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional wear leveling techniques maintain P/E count near overall average, then memory block wear is balanced, but unnecessary write operations increase

Engineering Contradiction:
Improvememory block wear balanceVSAvoidwrite operation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments memory blocks into different categories (first set with P/E count below threshold, second set with P/E count above threshold) and applies different wear leveling strategies to each segment. This segmentation allows the system to avoid unnecessary wear leveling operations on blocks that are already within acceptable wear ranges, thereby reducing unnecessary write operations while still maintaining overall wear balance across the memory system.

Inventive Principle:
Principle #1Segmentation

2Reliability

If wear leveling operations are performed frequently, then P/E count distribution is improved, but data copying overhead increases

Engineering Contradiction:
ImproveP/E count distributionVSAvoiddata copying time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces a threshold parameter for P/E count comparison and dynamically adjusts wear leveling operations based on whether the current P/E count falls below or exceeds this threshold. By changing the operational parameters (threshold-based decision making) rather than continuously performing wear leveling, the system improves P/E count distribution while minimizing data copying overhead and time loss.

Inventive Principle:
Principle #35Parameter changes

3Stability of the object's composition

If wear leveling is performed on all memory blocks, then wear uniformity is achieved, but system complexity increases

Engineering Contradiction:
Improvewear uniformityVSAvoidwear leveling control complexity
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The patent applies local quality by treating different memory blocks with different wear characteristics differently. Instead of uniform wear leveling across all blocks, the system identifies specific blocks that need wear leveling (those below the threshold) and applies operations only to them. This localized approach achieves wear uniformity while reducing the complexity of wear leveling control by avoiding unnecessary operations on already-balanced blocks.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9514043B1Systems and methods for utilizing wear leveling windows with non-volatile memory systems
Publication Date: 2016.12.06 SANDISK TECHNOLOGIES LLC
  • US9514043B1 patent drawing
  • US9514043B1 patent drawing
  • US9514043B1 patent drawing

AI summary

Systems and methods for utilizing wear leveling windows with non-volatile memory systems are disclosed. In one implementation, a memory management module of a non-volatile memory system compares a metric reflecting wear of a memory block to a wear leveling window and determines whether a wear leveling indicator associated with the memory block restricts performing a wear leveling operation on the memory block. The memory management module performs a wear leveling operation on the memory block in response to determining that the metric reflecting wear of the memory block falls outside the wear leveling window and determining that the wear leveling indicator does not restrict performing a wear leveling operation on the memory block. After performing the wear leveling operation, the memory management module places the memory block on a free block list.