Flash Memory Backup Stripes and Bad Block Handling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data backup solutions for flash memory face inefficiencies due to wear-out of blocks, leading to unexpected page program errors and the need for erasing fresh blocks, which slows down the backup process, especially when encountering 'grown bad blocks' during power failures.
Innovation Solution
Organizing data into stripes across all available flash memory devices, maintaining metadata for known and grown bad planes, and using cache program commands to re-write data around defective blocks, allowing simultaneous writing to multiple stripes and embedding metadata for restoration.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Duration of action of stationary object
If wear-leveling algorithms are used to avoid worn blocks, then block wear is extended, but backup performance deteriorates due to unexpected page program errors requiring block erasure
Solution Approach 1:
The patent pre-erases multiple flash blocks before the backup operation begins. This preliminary action ensures that when a grown bad block is encountered during backup, there are already prepared blocks to write to, avoiding the need to pause and erase blocks during the backup process, thus maintaining backup speed while extending flash block lifespan through wear-leveling
Solution Approach 2:
The patent maintains continuous backup operation by having multiple pre-prepared blocks available. When a bad block is encountered, the backup process immediately switches to a pre-erased block without interrupting the overall backup flow, ensuring continuity of useful action and preventing performance degradation
2Quantity of substance
If block erasure is performed to compensate for grown bad blocks, then space is recovered, but backup time increases significantly
Solution Approach 1:
Multiple flash blocks are pre-erased before the backup operation starts. This preliminary preparation ensures that when grown bad blocks are encountered during backup, there are already available blocks to write to, eliminating the need for time-consuming erasure operations during the backup process and thus reducing total backup time while maintaining available space
3Productivity
If cache program commands are used to write to multiple stripes simultaneously, then backup performance improves, but complexity of managing metadata increases
Solution Approach 1:
The patent divides data into multiple stripes that can be written simultaneously to different flash blocks. Each stripe has its own metadata, allowing parallel processing and improved backup throughput. The segmentation of data and metadata enables independent management of each stripe, reducing the complexity of managing the entire backup process as a single unit
Data Source
AI summary
A method, system, and computer program product are provided for back-up and restoration of data between volatile and flash memory. The method for controlling back-up of data to flash memory includes: organizing back-up data into stripes, wherein a stripe is a set of pages across all available flash memory devices, dies and planes which have the same block and page address; maintaining metadata indicating locations of known bad planes and grown bad planes; using the metadata when writing back-up data to determine which planes to send cache program commands to; and sending cache program commands to three or more stripes of data simultaneously including providing an indication in the stripe that the stripe is handling a cache program command If a grown bad block is encountered whilst saving a stripe of data, the stripe of data is re-written to the next available page address avoiding the grown bad block.


