Flash Memory Backup Stripes and Bad Block Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveflash block lifespanVSAvoidbackup speed
Core Design Contradiction:
Duration of action of stationary objectVSProductivity

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #20Continuity of useful action

2Quantity of substance

If block erasure is performed to compensate for grown bad blocks, then space is recovered, but backup time increases significantly

Engineering Contradiction:
Improveavailable flash spaceVSAvoidbackup time
Core Design Contradiction:
Quantity of substanceVSLoss of time

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

Inventive Principle:
Principle #10Preliminary action

3Productivity

If cache program commands are used to write to multiple stripes simultaneously, then backup performance improves, but complexity of managing metadata increases

Engineering Contradiction:
Improvebackup throughputVSAvoidmetadata management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10067032B2Back-up and restoration of data between volatile and flash memory
Publication Date: 2018.09.04 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10067032B2 patent drawing
  • US10067032B2 patent drawing
  • US10067032B2 patent drawing

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.