Dynamic Read Voltage Selection for Flash Memory Data Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In non-volatile flash memory systems, data corruption occurs due to charge level shifts in memory cells caused by programming, reading, or erasing operations, which can lead to erroneous data storage beyond the corrective capabilities of error correction codes, rendering the storage system unreliable.

Innovation Solution

A method is implemented to maintain read parameters for default and shifted cases, allowing the memory system to determine whether to refresh memory blocks based on the success of read operations, thereby correcting charge level shifts and maintaining data integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If memory blocks are frequently refreshed to prevent data corruption, then data integrity is improved, but system performance and productivity deteriorate due to increased read operations

Engineering Contradiction:
Improvedata integrityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent changes the parameter of read voltage by maintaining multiple distinct read cases (first read case with first read voltage, second read case with second read voltage). The memory system dynamically selects between different read voltage levels based on whether charge level shifts are detected, allowing adaptive adjustment of read conditions to maintain data integrity while minimizing unnecessary refresh operations.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If multiple read cases with different read voltages are maintained to detect charge level shifts, then measurement precision is improved, but device complexity increases

Engineering Contradiction:
Improvecharge level detection accuracyVSAvoidread parameter management
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent implements dynamic selection between different read cases based on real-time detection needs. The memory controller dynamically switches between first read case and second read case depending on whether charge level shifts are detected during read operations, allowing the system to adapt its complexity only when necessary for accurate charge level measurement.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent segments the read operation into distinct read cases (first read case and second read case) with different read voltages. Each read case is optimized for specific charge level conditions, allowing the system to divide the read functionality into specialized sub-functions that can be selected based on operational needs, managing complexity through modular organization.

Inventive Principle:
Principle #1Segmentation

3Reliability

If read operations are performed with shifted read cases to correct charge level shifts, then data reliability is improved, but loss of time occurs due to additional read and refresh operations

Engineering Contradiction:
Improvedata reliabilityVSAvoidrefresh operation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary detection of charge level shifts by comparing read results from different read cases before committing to refresh operations. By detecting shifts early in the read process and only then initiating refresh operations when necessary, the system performs the essential detection action in advance, avoiding unnecessary time-consuming refresh operations when charge levels are stable.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8687421B2Scrub techniques for use with dynamic read
Publication Date: 2014.04.01 SANDISK TECHNOLOGIES LLC
  • US8687421B2 patent drawing
  • US8687421B2 patent drawing
  • US8687421B2 patent drawing

AI summary

The decision on whether to refresh or retire a memory block is based on the set of dynamic read values being used. In a memory system using a table of dynamic read values, the table is configured to include how to handle read error (retire, refresh) in addition to the read parameters for the different dynamic read cases. In a refinement, the read case number can used to prioritize blocks selected for refresh or retire. In cases where the read scrub is to be made more precise, multiple dynamic read cases can be applied. Further, which cases are applied can be intelligently selected.