Flash Memory Block Bad Marking Delay via Garbage Collection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In flash memory devices, when the number of error bits in a page exceeds a threshold, existing methods directly mark the memory block as a bad block, leading to increased risk of damaging remaining valid pages and reducing the block's usability.

Innovation Solution

The proposed method delays marking a memory block as bad until all valid pages are moved to a destination block during the garbage collection process, thereby preventing further data errors and allowing the block to be reused.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the memory block is directly marked as bad block when error bits exceed threshold, then data integrity is protected, but the block usability and storage capacity are reduced

Engineering Contradiction:
Improvedata integrityVSAvoidblock usability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by adding the block number to a queue for garbage collection before marking the block as bad. This allows valid data to be relocated first, preserving block usability while ensuring data integrity. The block is only marked as bad after garbage collection completes, maximizing storage capacity utilization.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the memory block is directly marked as bad block when error bits exceed threshold, then data errors are prevented, but the risk of damaging valid pages increases

Engineering Contradiction:
Improveerror preventionVSAvoiddamage risk to valid pages
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent performs garbage collection before marking the block as bad, which preliminarily relocates valid data. This sequence prevents the harmful effect of marking a block as bad while valid data still resides in it, thereby eliminating the risk of damaging valid pages.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If garbage collection is delayed until after marking as bad block, then processing is simpler, but memory access efficiency deteriorates

Engineering Contradiction:
Improveprocessing simplicityVSAvoidmemory access efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent performs garbage collection before marking the block as bad, which is a preliminary action that improves memory access efficiency. By relocating valid data first, the system avoids future read operations on invalid blocks, reducing wasted access attempts and improving overall memory performance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a queue as an intermediary mechanism between error detection and block marking. The queue allows the system to track blocks needing garbage collection without immediately marking them as bad, enabling efficient coordination of data relocation and block status updates.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10635527B2Method for processing data stored in a memory device and a data storage device utilizing the same
Publication Date: 2020.04.28 SILICON MOTION INC
  • US10635527B2 patent drawing
  • US10635527B2 patent drawing
  • US10635527B2 patent drawing

AI summary

A data storage device includes a memory device and a controller. The memory device includes multiple memory blocks. Each memory block includes multiple pages. The controller is coupled to the memory device and includes an ECC engine configured to check and correct errors that have occurred in data stored in the memory blocks. When a number of error bits in a page of one of the memory blocks exceeds a threshold, the controller is configured to add a block number of the memory block in a predetermined queue and when a garbage collection procedure has been triggered, the controller is configured to perform garbage collection on the memory block.