Flash Memory Wear Leveling via Coset Coding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash SSDs face issues with 'wear out' due to limited write cycles, manufacturing defects, and transient errors, which reduce their reliability and operational life, especially as error correction becomes more difficult as the memory wears out.

Innovation Solution

The solution involves reducing the frequency of memory erasure, spreading write loads evenly across cells, and using redundancy to extend the lifetime of Flash memory by employing techniques like coset coding, convolutional coding, and error correction to minimize overwriting and distribute wear evenly, allowing for more writes before erasure is necessary.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is written frequently to Flash memory, then data storage capacity and write performance are improved, but the memory cells wear out faster reducing operational lifetime

Engineering Contradiction:
Improvewrite performanceVSAvoidoperational lifetime
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the Flash memory into multiple pools of blocks with different wear characteristics. By dividing the memory space and managing writes across multiple pools, the system can distribute wear more evenly and extend the operational lifetime while maintaining write performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameter of write distribution by implementing wear-leveling algorithms that track and balance the number of writes across different blocks and pools. This parameter change ensures that no single block becomes the bottleneck for memory lifetime.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If error correction codes are applied to correct transient errors, then data integrity is improved, but the processing complexity and performance overhead increase

Engineering Contradiction:
Improvedata integrityVSAvoidprocessing complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies error correction selectively rather than universally. By using scrubbing operations that periodically check and correct errors in idle blocks, and by applying ECC only when necessary, the system achieves data integrity with reduced processing overhead compared to continuous error correction on all data.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If in-place updates are performed to improve write speed, then write performance is improved, but the number of writes to the same location increases accelerating wear

Engineering Contradiction:
Improvewrite speedVSAvoidcell endurance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a copy-back mechanism where updated data is first written to a temporary location and then copied back to the original location after validation. This copying approach allows in-place updates to proceed quickly while the system manages the underlying wear through pool-based block replacement, separating the write speed requirement from the wear management requirement.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9632866B2Systems for and methods of extending lifetime of non-volatile memory
Publication Date: 2017.04.25 DUKE UNIV
  • US9632866B2 patent drawing
  • US9632866B2 patent drawing
  • US9632866B2 patent drawing

AI summary

Systems and Methods are provided for increasing the number of writes to a page of non-volatile memory before the page must be erased. According to an embodiment, instead of writing a dataword directly to memory, a codeword is written to the memory location. The codeword is selected to minimize overwrite (e.g., bit-flipping) and to maximize the spread of wear across memory cells. In accordance with various embodiments of the invention, coset coding is integrated with error correction encoding; and once the previous state of a page is determined, a coset representative is selected on the basis of maximizing the number of writes to the page before erasing.