NAND Flash Memory Grouping to Reduce Write Amplification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Solid-state drives (SSDs) face increased wear due to write amplification, which reduces the number of program/erase cycles and shortens their lifespan, as existing methods like the greedy reclaiming policy and over-provisioning either fail to effectively distribute wear or significantly reduce user capacity.

Innovation Solution

The SSD is divided into memory groups with a parity portion for error-correcting codes, allowing blocks to be erased and rewritten without immediate relocation, concentrating invalid pages and reducing write amplification by utilizing error-correcting codes to recover erased data within the limits of the code's correction capability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If data is relocated and rewritten to free up memory space in traditional SSD methods, then user capacity is maintained, but write amplification increases and SSD lifespan decreases

Engineering Contradiction:
Improveuser capacityVSAvoidwrite amplification
Core Design Contradiction:
Quantity of substanceVSLoss of energy

Solution Approach 1:

The flash memory is divided into multiple memory groups, each containing multiple blocks. This segmentation allows the system to manage and erase blocks at a finer granularity, enabling more efficient wear distribution and reducing the need for extensive data relocation across the entire memory space.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Parity blocks are introduced as intermediary elements within each memory group. These parity blocks store error-correcting code information that enables the recovery of data from erased blocks. By using parity blocks as mediators, the system can erase data blocks without immediately relocating the data, thereby reducing write amplification while maintaining data integrity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of energy

If greedy reclaiming policy is used to reduce write amplification, then write amplification decreases, but wear-leveling effectiveness is reduced

Engineering Contradiction:
Improvewrite amplificationVSAvoidwear-leveling
Core Design Contradiction:
Loss of energyVSReliability

Solution Approach 1:

Memory is segmented into multiple groups with multiple blocks each, allowing the system to perform wear-leveling at the group level while managing writes at the block level. This multi-level segmentation enables balanced wear distribution across all blocks without requiring aggressive data relocation, thus reducing write amplification while maintaining effective wear-leveling.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the operational parameters by allowing blocks to be erased and rewritten without immediate data relocation, utilizing error-correcting codes to maintain data integrity. This parameter change in the data management strategy reduces the frequency and volume of write operations while maintaining reliability through coded error correction.

Inventive Principle:
Principle #35Parameter changes

3Loss of energy

If over-provisioning is used to reduce write amplification, then write amplification decreases, but user capacity is significantly reduced

Engineering Contradiction:
Improvewrite amplificationVSAvoiduser capacity
Core Design Contradiction:
Loss of energyVSQuantity of substance

Solution Approach 1:

The memory is organized into multiple groups with multiple blocks each, creating a hierarchical structure that enables fine-grained management of storage resources. This segmentation allows the system to maintain high user capacity while efficiently managing wear and write amplification through targeted block erasure and parity-based error correction within each group.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Parity blocks serve as intermediaries that enable data recovery without requiring extensive over-provisioning. By using these intermediary parity blocks, the system can maintain data integrity and reduce write amplification while preserving a larger portion of the total memory capacity for user data, avoiding the significant capacity loss associated with traditional over-provisioning methods.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Quantity of substance

If data relocation is performed to free up memory space, then memory space is freed for new data, but write speed decreases due to additional operations

Engineering Contradiction:
Improveavailable memory spaceVSAvoidwrite speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

Parity information is pre-calculated and stored in parity blocks before data erasure occurs. This preliminary action enables the system to recover erased data without requiring time-consuming data relocation operations, thereby maintaining high write speeds while still freeing up memory space for new data.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Parity blocks act as intermediaries that store error-correcting information, enabling rapid data recovery without the need for slow data relocation operations. This intermediary mechanism allows the system to maintain high write speeds by avoiding the time-consuming process of reading, relocating, and rewriting data, while still effectively managing available memory space.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8433981B1Coding across data blocks to reduce write amplification in NAND flash
Publication Date: 2013.04.30 SK HYNIX MEMORY SOLUTIONS AMERICA INC
  • US8433981B1 patent drawing
  • US8433981B1 patent drawing
  • US8433981B1 patent drawing

AI summary

Data is stored from a host. A flash memory is divided into a plurality of memory groups, the memory groups each comprising a plurality of flash memory blocks. A first portion of one of the plurality of memory groups is allocated for storing parity data of an error-correcting code for the memory group. A second portion of the memory group is allocated for storing data from the host. A flash memory block in the memory group is erased prior to writing the data from the host, wherein the flash memory block contains valid data. The erased valid data is recovered using the error-correcting code.