Non-Volatile Memory Health Management via Error Value Tracking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing non-volatile memory systems face challenges in accurately determining the remaining useful life of memory blocks due to varying usage patterns, leading to uneven wear and reduced performance, as predictive methods based on erase-write cycles are not always accurate across different devices.

Innovation Solution

Implementing health leveling in non-volatile memory systems by using error value entries to indicate the health of each memory block or page, based on the number of data errors during access operations, allowing for dynamic and static health management to distribute usage evenly and extend memory life.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If wear leveling based on erase-write cycle counts is used, then memory block usage is distributed evenly, but the accuracy of predicting remaining useful life deteriorates because different blocks with same erase counts can have different actual health states

Engineering Contradiction:
Improveaccuracy of remaining useful life predictionVSAvoidprecision of wear indication
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

The patent changes the parameter used for wear indication from erase-write cycle counts to read error counts. Instead of tracking how many times a block has been erased and written, the system monitors the number of read errors that occur when accessing each memory block. This parameter change provides a more accurate reflection of actual block health, as error rates directly indicate degradation rather than just usage history.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent replaces the mechanical counting system (erase-write cycle counters) with an error-based measurement system. Rather than relying on tracked operation counts, the system uses actual read error occurrences to determine block health. This substitution provides more reliable wear indication because error rates directly correlate with physical degradation of the memory cells.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Measurement precision

If continuous health monitoring with error value updates is performed, then memory management accuracy is improved, but computational overhead and processing time increase

Engineering Contradiction:
Improveprecision of health measurementVSAvoidtime for health monitoring operations
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent implements partial monitoring by only updating error values when read errors actually occur, rather than performing comprehensive health checks on all blocks at every operation. This approach maintains accurate health information for blocks that are degrading while avoiding unnecessary processing of healthy blocks, thus reducing overall monitoring overhead while preserving measurement precision for blocks that need it.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7934130B2System and method for managing non-volatile memory based on health
Publication Date: 2011.04.26 CADENCE DESIGN SYST INC
  • US7934130B2 patent drawing
  • US7934130B2 patent drawing
  • US7934130B2 patent drawing

AI summary

An invention is provided for managing non-volatile memory having a plurality of memory blocks and a plurality of error values associated with the memory blocks. The method includes recording an error value indicating a number of errors occurring in a memory block during an operation accessing the memory block. The error values can then be aggregated to calculate an overall health of the memory, or used individually, for example, by selecting a memory block for a memory operation based on the associated error value. In general, the error value is updated when the most recent number of errors occurring in the memory block during an operation accessing the memory block is greater than a current recorded value.