Flash Memory RAID-Like Parity Transfer from SLC to MLC Blocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional flash memory controllers inefficiently utilize memory space by dedicating one eighth of a data block for parity check codes, reducing the effective storage capacity and user experience due to high error rates during programming.

Innovation Solution

Implementing a RAID-like error correction code encoding operation in a flash memory apparatus, which classifies data into groups and uses XOR encoding to generate parity check codes, allowing for internal copying and error correction across single-level-cell and multiple-level-cell blocks, thereby reducing the need for excessive parity check codes and improving data storage efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional flash memory controllers program parity check codes into dedicated memory pages, then error correction capability is improved, but memory space utilization deteriorates

Engineering Contradiction:
Improveerror correction capabilityVSAvoidmemory space utilization
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges data pages and parity check code pages into a unified storage structure. Instead of dedicating separate pages for parity codes, the system interleaves parity codes within data pages, allowing simultaneous storage of both data and error correction codes in the same memory space, thereby improving space utilization while maintaining error correction capability

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent makes memory pages serve multiple functions - they can store data, parity check codes, or both simultaneously depending on the programming mode. This multi-functionality allows the same memory resource to be flexibly allocated for different purposes, resolving the contradiction between dedicated parity storage and space utilization

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If one eighth of memory space is allocated for parity check codes, then error correction capability is improved, but effective storage capacity deteriorates

Engineering Contradiction:
Improveerror correction capabilityVSAvoideffective storage capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent changes the parameter of parity code allocation from a fixed one-eighth ratio to a flexible allocation scheme. By dynamically adjusting the amount and location of parity codes based on data patterns and error probability, the system achieves adequate error correction with less than 12.5% overhead, thereby increasing effective storage capacity

Inventive Principle:
Principle #35Parameter changes

3Reliability

If parity check codes are programmed into every data block, then error correction capability is improved, but programming complexity deteriorates

Engineering Contradiction:
Improveerror correction capabilityVSAvoidprogramming complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the memory into different types (SLC and MLC) and applies different parity coding strategies to each segment. SLC blocks use simpler parity schemes while MLC blocks use more robust coding, reducing overall programming complexity compared to applying a uniform complex scheme to all blocks

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10771091B2Flash memory apparatus and storage management method for flash memory
Publication Date: 2020.09.08 SILICON MOTION INC
  • US10771091B2 patent drawing
  • US10771091B2 patent drawing
  • US10771091B2 patent drawing

AI summary

A flash memory storage management method includes: providing a flash memory module including single-level-cell (SLC) blocks and at least one multiple-level-cell block such as MLC block, TLC block, or QLC block; classifying data to be programmed into groups of data; respectively executing SLC programing and RAID-like error code encoding to generate corresponding parity check codes, to program the groups of data and corresponding parity check codes to the SLC blocks; when completing program of the SLC blocks, performing an internal copy to program the at least one multiple-level-cell block by sequentially reading and writing the groups of data and corresponding parity check codes from the SLC blocks to the multiple-level-cell block according to a storage order of the SLC blocks.