Block Stripe Allocation by Program-Erase Cycles for Memory Wear Leveling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory devices are discarded prematurely due to uneven wear and tear from program erase cycles, leading to inefficient utilization of block stripes and reduced lifespan.

Innovation Solution

A memory sub-system controller allocates block stripes based on program erase cycles, designating those with lower counts for cache memory and higher counts for flash translation layer memory, enabling flexible re-designation and shared garbage collection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Duration of action of stationary object

If block stripes are allocated uniformly without considering program erase cycles, then the memory sub-system structure is simple, but the memory device lifespan is reduced due to uneven wear

Engineering Contradiction:
Improvememory device lifespanVSAvoidblock stripe allocation management complexity
Core Design Contradiction:
Duration of action of stationary objectVSDevice complexity

Solution Approach 1:

The system changes the allocation parameter from uniform distribution to program erase cycle-based distribution. By monitoring and comparing PEC counts across different block stripes, the system dynamically adjusts allocation decisions to balance wear across all block stripes, thereby extending memory device lifespan.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system implements feedback by continuously monitoring program erase cycle counts for each block stripe and using this information to guide future allocation decisions. The controller compares PEC counts and redirects write operations to block stripes with lower PEC counts, creating a closed-loop wear-balancing system.

Inventive Principle:
Principle #23Feedback

2Productivity

If block stripes with lower PEC counts are allocated for cache memory, then data storage efficiency is improved, but the management overhead increases

Engineering Contradiction:
Improvedata storage efficiencyVSAvoidblock stripe management overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary allocation by assigning block stripes with lower PEC counts to cache memory before they experience significant wear. This proactive approach ensures that high-performance block stripes are utilized for time-sensitive data operations while preventing premature degradation, thereby maintaining storage efficiency without requiring complex real-time management.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If block stripes are designated based on PEC counts, then wear leveling is achieved, but the flexibility for re-designation is reduced

Engineering Contradiction:
Improvewear levelingVSAvoidblock stripe re-designation flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system implements dynamic re-designation capability where block stripe designations are not fixed but can be changed based on evolving PEC counts. The controller maintains the flexibility to re-allocate block stripes between cache memory and FTL functions as wear patterns change, allowing the system to adapt to varying operational conditions while maintaining wear leveling.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20250370631A1Memory sub-system for allocating block stripes based on program erase cycles
Publication Date: 2025.12.04 MICRON TECHNOLOGY INC
  • US20250370631A1 patent drawing
  • US20250370631A1 patent drawing
  • US20250370631A1 patent drawing

AI summary

Various aspects of the present disclosure relate to a memory sub-system for allocating block stripes based on program erase cycles. A processing device may access a plurality of block stripes and may determine a program erase cycle count for each block stripe of the plurality of block stripes. The processing device may designate a first block stripe of the plurality of block stripes as a cache memory block stripe based on first block stripe having a lower program erase cycle count and may designate a second block stripe of the plurality of block stripes as an FTL block stripe based on the second block stripe having a higher program erase cycle count.