Flash Memory Bad Block Identification via Successive Error Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing speed of programming operations in flash memory systems leads to increased noise, resulting in misidentification of blocks as bad blocks, which causes resource wastage and shortens the lifespan of the storage system.

Innovation Solution

A method for identifying bad blocks in flash memory systems by detecting programming errors through error correcting codes and marking blocks as bad only after successive errors occur, using a controller with a microprocessor, flash memory interface, buffer memory, and memory management module to record and manage bad blocks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If programming speed is increased to shorten cycle time, then productivity is improved, but noise increases causing misjudgement of bad blocks

Engineering Contradiction:
Improveprogramming speedVSAvoidbad block identification accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary verification by checking programming errors before finalizing bad block identification. Error detection is conducted in advance through multiple checks, and blocks are only marked as bad after successive errors are confirmed, preventing premature conclusions due to transient noise

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms by continuously monitoring programming operations and verifying results. When programming errors are detected, the system feeds back this information to re-attempt programming or mark the block as bad only after multiple failed attempts, ensuring accurate identification despite high-speed noise

Inventive Principle:
Principle #23Feedback

2Reliability

If blocks are marked as bad blocks upon single programming error, then reliability is improved, but resource wastage increases due to misjudgement

Engineering Contradiction:
Improvedata storage reliabilityVSAvoidavailable storage blocks
Core Design Contradiction:
ReliabilityVSLoss of substance

Solution Approach 1:

The system performs preliminary verification by checking programming errors before finalizing bad block identification. Error detection is conducted in advance through multiple checks, and blocks are only marked as bad after successive errors are confirmed, preventing premature conclusions due to transient noise

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system recovers potentially usable blocks by not discarding them immediately upon single programming errors. Instead, it attempts re-programming and only discards blocks after multiple successive failures, thereby recovering blocks that would have been mistakenly discarded due to transient errors

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS8046645B2Bad block identifying method for flash memory, storage system, and controller thereof
Publication Date: 2011.10.25 PHISON ELECTRONICS
  • US8046645B2 patent drawing
  • US8046645B2 patent drawing
  • US8046645B2 patent drawing

AI summary

A bad block identifying method for a flash memory, a storage system, and a controller thereof are provided. The bad block identifying method includes determining whether a programming error occurs in a block of the flash memory after the block is programmed and marking the block as a bad block when the programming error successively occurs in the block. Since the block is determined to be a bad block only when the programming error repeatedly occurs in the block, misjudgment of bad block in the flash memory can be avoided and accordingly the lifespan of the flash memory storage system can be prolonged.