Flash Memory Controller Write Sequence Number Mapping Reconstruction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash memory devices, such as NAND Flash, face challenges in maintaining data integrity and rebuilding mapping tables after a power-off state due to the loss of the mapping table stored in random access memory, leading to issues with data recovery and page validation.

Innovation Solution

A data storage device with a controller that assigns write sequence numbers to write commands and stores them in flash memory blocks, allowing for the reconstruction of a physical-logical mapping table upon power restoration by identifying and invalidating damaged pages based on sequence numbers and logical addresses, ensuring accurate data recovery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the mapping table is stored in random access memory for efficient data access, then data access speed is improved, but the mapping table is lost when power turns off unexpectedly

Engineering Contradiction:
Improvedata access speedVSAvoidmapping table persistence
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent applies preliminary action by storing the mapping table in both random access memory for fast access and in flash memory as a backup before power loss occurs. This dual-storage approach ensures that when power turns off unexpectedly, the mapping table information is preserved in flash memory and can be used to reconstruct the RAM mapping table during power restoration, thus preventing data loss while maintaining fast access speeds during normal operation

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the controller rebuilds the mapping table by reading all blocks after power restoration, then data integrity is ensured, but the time required for resumption increases

Engineering Contradiction:
Improvedata integrityVSAvoidresumption time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies the taking out principle by extracting and utilizing the backup mapping table information that was previously stored in flash memory during normal operation. When power is restored, instead of reading all blocks to rebuild the mapping table, the controller extracts the preserved mapping table information from flash memory, significantly reducing resumption time while ensuring data integrity through the use of this pre-saved reliable information

Inventive Principle:
Principle #2Taking out (Extraction)

3Measurement precision

If write sequence numbers are assigned and stored with each data sector, then data recovery accuracy is improved, but the storage space requirement increases

Engineering Contradiction:
Improvedata recovery accuracyVSAvoidstorage space
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent applies partial action by implementing write sequence numbers only in the spare area of flash memory pages rather than duplicating them throughout the entire data structure. This selective placement provides sufficient information for accurate data recovery and mapping table reconstruction while minimizing the additional storage space consumed, as the sequence numbers are stored only where necessary for the recovery process

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10255192B2Data storage device and data maintenance method thereof
Publication Date: 2019.04.09 SILICON MOTION INC
  • US10255192B2 patent drawing
  • US10255192B2 patent drawing
  • US10255192B2 patent drawing

AI summary

The present invention provides a data storage device including a flash memory and a controller. The flash memory includes a plurality of blocks, wherein each of the blocks has a plurality of pages. The controller receives a plurality of write commands in a sequence, assigns a plurality of write sequence numbers to the write commands according to the sequence in which the write commands are received, and writes a plurality of data sectors and the write sequence numbers of the write commands into the pages of a first current block and a second current block of the blocks according to the write commands.