Wear Leveling for Memory Blocks via Hot-Cold Data Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Non-volatile memory systems face wear leveling challenges due to uneven erase/write cycles, leading to premature degradation and bit errors as certain memory blocks are used more frequently than others, reducing the lifespan of electrically erasable programmable read-only memory cells.

Innovation Solution

Implementing a wear leveling mechanism that distributes write operations by identifying 'hot' and 'cold' blocks and strategically writing 'hot' data to 'cold' blocks and vice versa, using firmware and processors to manage erase counts and balance the usage across memory blocks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If write operations are concentrated on fewer memory blocks, then write speed is improved, but memory block wear becomes uneven and lifespan is reduced

Engineering Contradiction:
Improvewrite speedVSAvoidmemory block wear uniformity
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The memory system is segmented into multiple memory blocks that can be independently managed. The wear leveling mechanism divides write operations across these segmented blocks, preventing any single block from bearing excessive wear while maintaining overall system write performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different memory blocks are assigned different roles based on their wear status. 'Hot' blocks that have undergone many write operations are identified and protected from further intensive writes, while 'cold' blocks with lower wear counts are utilized for new writes. This local differentiation balances wear across the memory system.

Inventive Principle:
Principle #3Local quality

2Duration of action of stationary object

If wear leveling is implemented to distribute write operations evenly, then memory lifespan is extended, but system complexity increases

Engineering Contradiction:
Improvememory lifespanVSAvoidwear leveling mechanism complexity
Core Design Contradiction:
Duration of action of stationary objectVSDevice complexity

Solution Approach 1:

The memory system performs wear leveling autonomously through embedded firmware that automatically tracks block wear counts and redirects write operations. This self-service approach eliminates the need for external wear leveling controllers, reducing overall system complexity while extending memory lifespan.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The wear leveling mechanism incorporates feedback loops that continuously monitor block wear status and adjust write operation distribution accordingly. The system maintains wear counts for each block and uses this feedback information to dynamically select appropriate target blocks for new writes, achieving balanced wear without complex external control.

Inventive Principle:
Principle #23Feedback

3Reliability

If frequent monitoring of block wear status is performed, then wear distribution is optimized, but processing overhead increases

Engineering Contradiction:
Improvewear distribution optimizationVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

Instead of continuously monitoring all memory blocks at all times, the system performs wear status updates and monitoring at strategically chosen intervals and only when necessary. Wear counts are updated during normal write operations rather than through separate monitoring cycles, reducing processing overhead while maintaining effective wear distribution.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10289317B2Memory apparatus and methods thereof for write amplification aware wear leveling
Publication Date: 2019.05.14 SANDISK TECHNOLOGIES LLC
  • US10289317B2 patent drawing
  • US10289317B2 patent drawing
  • US10289317B2 patent drawing

AI summary

A method of wear leveling receives a write request. The write request indicates received data to be written to memory blocks. The method detects a system condition. Example system conditions include a random write condition, a garbage collection start condition, and/or a sequential write condition. Based on the system condition, the method determines whether the received data comprises hot data or cold data. Some embodiments use a write amplification value to determine the system condition. If the received data comprises hot data, the method writes the received data to a cold block. If the received data comprises cold data, the method writes the received data to a hot block.