Nonvolatile Memory Data Protection After Write Abort

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash memory systems face challenges in detecting and handling aborted write and erase operations, leading to incomplete data storage and potential data corruption, especially during power outages, which can result in unreliable data and require efficient recovery methods.

Innovation Solution

The method involves determining if writing to a nonvolatile memory array would endanger existing data, identifying potentially unreliable data due to power loss, and employing data protection schemes such as ECC decoding and pointer-based verification to ensure data integrity and recovery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If power is lost during write or erase operations, then data storage is interrupted, but data corruption and unreliable data occur

Engineering Contradiction:
Improvedata reliabilityVSAvoidpower loss impact
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent applies preliminary action by copying data to a safe location before the actual write or erase operation commences. This preparatory step ensures that if power is lost during the operation, the original data remains intact and can be recovered, directly preventing data corruption from power loss events.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements beforehand cushioning by creating a backup copy of data in a protected location before performing write or erase operations. This cushioning mechanism acts as a safety buffer that absorbs the harmful effects of power loss, ensuring that even if the operation is interrupted, the system can recover without data corruption.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

2Reliability

If data is copied to safe location before write operation, then data protection is improved, but memory space and operation time are consumed

Engineering Contradiction:
Improvedata protectionVSAvoidoperation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies partial action by selectively copying only the specific data that needs protection before write operations, rather than copying entire memory blocks. This selective approach provides adequate protection while minimizing the overhead in terms of memory space consumption and operation time, thus maintaining better productivity.

Inventive Principle:
Principle #16Partial or excessive action

3Measurement precision

If ECC is used to detect errors, then data integrity is improved, but ECC mis-detect can occur leading to false positives

Engineering Contradiction:
Improveerror detection accuracyVSAvoidfalse positive rate
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent introduces an intermediary verification mechanism that works in conjunction with ECC. After ECC detects potential errors, the system performs additional verification by checking pointers and comparing data versions. This intermediary step filters out false positives from ECC mis-detection, improving overall reliability while maintaining good error detection accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8533562B2Data protection after possible write abort or erase abort
Publication Date: 2013.09.10 PALISADE TECH LLP
  • US8533562B2 patent drawing
  • US8533562B2 patent drawing
  • US8533562B2 patent drawing

AI summary

A portion of a nonvolatile memory array that is likely to contain, partially programmed data may be identified from a high sensitivity read, by applying stricter than usual ECC requirements, or using pointers to programmed sectors. The last programmed data may be treated as likely to be partially programmed data. Data in the identified portion may be copied to another location, or left where it is with an indicator to prohibit further programming to the same cells. To avoid compromising previously stored data during subsequent programming, previously stored data may be backed up. Backing up may be done selectively, for example, only for nonsequential data, or only when the previously stored data contains an earlier version of data being programmed. If a backup copy already exists, another backup copy is not created. Sequential commands are treated as a single command if received within a predetermined time period.