Flash Memory Parity Layout Using SLC-to-MLC Internal Copy

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 XOR error code encoding operation in a flash memory apparatus, which classifies data into groups and generates parity check codes for single-level-cell blocks, then performs an internal copy to multiple-level-cell blocks to reduce the number of necessary parity check codes and enhance error correction capabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional flash memory controllers program parity check codes into dedicated memory locations, 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 the same physical memory blocks. Instead of dedicating separate blocks for parity codes, the system interleaves parity pages with data pages within the same block structure, allowing simultaneous storage of both without requiring additional dedicated space.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

Memory blocks are designed to serve dual purposes: storing both user data and error correction parity codes. The same physical memory infrastructure is used for multiple functions - data storage, parity storage, and error correction operations - eliminating the need for separate dedicated parity blocks.

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 combines data pages and parity pages within the same memory block structure. By interleaving them at the page level rather than allocating separate blocks, the system achieves error correction capability without sacrificing one eighth of the total storage capacity to dedicated parity blocks.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system changes the organizational parameters of memory storage from block-level separation to page-level interleaving. This parameter change allows dynamic allocation where parity pages are distributed among data pages, optimizing the balance between error correction and storage capacity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11323133B2Flash memory apparatus and storage management method for flash memory
Publication Date: 2022.05.03 SILICON MOTION INC
  • US11323133B2 patent drawing
  • US11323133B2 patent drawing
  • US11323133B2 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 programming 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.