Flash Memory Controller Bad Block Validation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash memory devices face challenges in effectively utilizing their limited blocks due to the labeling of blocks as 'bad' without proper validation, leading to a 'run out of spares' situation when the number of bad blocks exceeds a predetermined threshold, which restricts further data writing.

Innovation Solution

A controller in the data-storage device selects a 'bad' block as a test block, reads its pages to determine damage, and labels it as a spare block if undamaged, moving valid data to other blocks and preventing further data writing to damaged blocks, thereby increasing the number of available spare blocks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If blocks are labeled as bad without proper validation, then the device can quickly identify and avoid damaged blocks, but the number of available spare blocks decreases rapidly leading to run out of spares situation

Engineering Contradiction:
Improveblock damage identification accuracyVSAvoidnumber of spare blocks
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The controller performs preliminary validation testing on blocks labeled as bad before permanently marking them as unusable. By reading pages in the test block and verifying data integrity beforehand, the system avoids premature disposal of potentially functional blocks, thereby preserving spare block resources while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses the flash memory's own read capability to self-validate the status of suspected bad blocks. By having the flash memory read its own pages and allow the controller to verify data integrity, the system performs self-diagnosis without external intervention, enabling accurate identification of truly damaged blocks while recovering falsely labeled ones.

Inventive Principle:
Principle #25Self-service

2Measurement precision

If the controller validates bad blocks by reading all pages, then the accuracy of block status determination improves, but the time and resources required for validation increases

Engineering Contradiction:
Improveblock status determination accuracyVSAvoidvalidation time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The controller performs a complete read of all pages in the test block to ensure comprehensive validation accuracy. By reading every page rather than sampling, the system guarantees that no damaged pages are missed, achieving maximum measurement precision for block status determination.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If the system maintains a large number of spare blocks, then the device can handle more bad blocks, but the overall storage capacity available for data decreases

Engineering Contradiction:
Improveability to handle bad blocksVSAvoidusable storage capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system dynamically changes the status parameter of blocks from bad to spare based on validation results. By transitioning blocks between different functional states (bad, spare, data) based on actual performance rather than static labeling, the system optimizes the balance between reliability and usable capacity, ensuring that blocks are allocated to appropriate functions based on their actual condition.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10340025B2Data-storage device and block-releasing method
Publication Date: 2019.07.02 SILICON MOTION INC
  • US10340025B2 patent drawing
  • US10340025B2 patent drawing
  • US10340025B2 patent drawing

AI summary

The present invention provides a data-storage device. The data-storage device includes a flash memory and a controller. The flash memory has a plurality of blocks and each of the blocks has a plurality of pages. The blocks include a plurality of bad blocks that are labeled as damaged. The controller selects one of the bad blocks as a test block, and reads the pages in the test block to determine whether the pages in the test block are damaged. When all the pages in the test block are undamaged, the controller labels the test block as a spare block.