Non-Volatile Memory Latch Data Preservation Mechanism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional non-volatile memory programming techniques often result in data loss during the programming process, making it difficult to recover original program data in case of errors, as data stored in latches is overwritten or lost, leading to challenges in error recovery and performance penalties.

Innovation Solution

A method is introduced where data is stored in multiple latches, with specific latches used for programming and verify status, allowing for the preservation and recovery of program data through logical operations in case of errors, ensuring data integrity and reducing performance penalties.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is stored in data latches during programming, then programming operation can proceed, but the original program data is lost when latches are used for verify status

Engineering Contradiction:
Improveprogramming speedVSAvoidprogram data loss
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent divides the latch system into multiple groups: first latches for storing program data, and second latches for storing verify status. This segmentation allows simultaneous use of latches for both programming and verification without data loss, resolving the contradiction between programming productivity and data preservation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a recovery mechanism where a copy of the program data is preserved in first latches even after the second latches are used for verify status. If programming fails, the original data can be recovered from the first latches, eliminating the information loss while maintaining programming efficiency.

Inventive Principle:
Principle #34Discarding and recovering

2Reliability

If controller storage is occupied to save program data for recovery, then data can be recovered after program failure, but controller cannot release storage before programming finishes

Engineering Contradiction:
Improveerror recovery capabilityVSAvoidcontroller storage management
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the data preservation function from the controller storage to the memory device's first latches. By storing program data directly in the memory device during the programming operation, the controller storage is freed up while maintaining full recovery capability through the preserved latch data.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If program data is buffered in cache area on memory die, then data recovery is possible, but performance penalty occurs due to additional read and ECC operations

Engineering Contradiction:
Improvedata recovery capabilityVSAvoidprogramming performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary action by preserving the program data in first latches during the programming operation itself, rather than requiring a separate cache buffer and subsequent read operations. This eliminates the need for additional ECC operations and cache management, maintaining high programming performance while ensuring data recovery capability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9135989B2Write data preservation for non-volatile storage
Publication Date: 2015.09.15 SANDISK TECHNOLOGIES LLC
  • US9135989B2 patent drawing
  • US9135989B2 patent drawing
  • US9135989B2 patent drawing

AI summary

Methods and non-volatile storage systems are provided for recovering data during a programming of non-volatile storage. Program data that was originally stored in one set of latches may be preserved with a combination of two sets of latches. These two sets of latches may also be used to store verify status during programming of that program data. The original program data may be recovered by performing a logical operation on the data in the two sets of latches. For example, upper page data could be initially stored in one set of latches. While the upper page data is being programmed, that set of latches and another set of latches are used to store verify status with respect to the upper page data. If a program error occurs while the upper page data is being preserved, it may be recovered by performing a logical operation on the two sets of latches.