Flash Memory Bad Block Identification via Successive Error Detection
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Productivity
If programming speed is increased to shorten cycle time, then productivity is improved, but noise increases causing misjudgement of bad blocks
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
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
2Reliability
If blocks are marked as bad blocks upon single programming error, then reliability is improved, but resource wastage increases due to misjudgement
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
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
Data Source
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.


