Memory Cell Programming Health Measurement

Solution Overview

Problem

Memory cell arrays face noise issues due to various sources, including programming and read signals from nearby cells, physical deterioration, and charge drift, leading to inefficient programming settings that result in errors and premature failures.

Innovation Solution

A system and method that measure health characteristics of memory cells before or during programming to adjust programming parameters, optimizing settings for individual or groups of cells based on their health, reducing noise and improving data retention and reliability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If worst case programming settings are applied to all memory cells to ensure low limit performance cells are programmed correctly, then programming reliability is improved, but programming speed deteriorates

Engineering Contradiction:
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies different programming settings to different memory cells based on their individual health characteristics. Instead of using uniform worst-case settings for all cells, the system measures health metrics (such as threshold voltage distribution, leakage current, or programming speed) for each cell or group of cells, and then selects appropriate programming parameters from a set of available settings. This allows fast cells to be programmed quickly while ensuring that slow or degraded cells receive the more robust programming sequences they need, thereby resolving the contradiction between programming speed and reliability.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements dynamic programming settings that can be adjusted during the memory cell's operational lifetime. The system periodically measures health characteristics of memory cells and updates the programming settings accordingly. This dynamic adaptation allows the programming parameters to evolve with the cell's degradation, maintaining optimal programming speed while ensuring reliability even as cells age. The programming settings are no longer static but change based on real-time health assessments.

Inventive Principle:
Principle #15Dynamics

2Reliability

If worst case programming settings are used to account for memory cell degradation over time, then long-term reliability is improved, but initial programming efficiency deteriorates

Engineering Contradiction:
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary measurement of health characteristics for each memory cell or group of cells before applying programming settings. By measuring key health metrics in advance (such as initial threshold voltage, leakage current, or programming response), the system can select the most appropriate programming settings from the beginning, rather than using conservative worst-case settings for all cells. This preliminary characterization enables efficient programming from the start while still ensuring reliability for cells that may degrade over time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a feedback mechanism where the system measures the actual programming response of memory cells and uses this information to adjust programming settings for subsequent operations. During initial programming, the system monitors cell response and feeds this information back to refine the programming parameters. This feedback loop ensures that cells are programmed efficiently based on their actual performance rather than worst-case assumptions, while still maintaining reliability through continuous monitoring and adjustment.

Inventive Principle:
Principle #23Feedback

3Device complexity

If uniform programming settings are applied to all memory cells, then device complexity is reduced, but programming precision deteriorates

Engineering Contradiction:
Core Design Contradiction:
Device complexityVSManufacturing precision

Solution Approach 1:

The patent utilizes multiple programmable parameters (such as programming voltage amplitude, pulse width, number of pulses, and intermediate verification thresholds) that can be independently adjusted for different memory cells or groups. Instead of using a single uniform programming sequence, the system varies these parameters based on measured health characteristics. For example, cells with higher leakage current may receive lower voltage amplitudes or longer pulse durations, while fast cells may use higher voltages with fewer pulses. This parameter variation improves programming precision without requiring completely different programming circuits for each cell.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent divides the memory array into multiple groups or segments based on measured health characteristics, such as programming speed, threshold voltage distribution, or leakage current levels. Each segment is then programmed using settings optimized for that specific group's characteristics. This segmentation approach allows the system to achieve high programming precision by treating similar cells uniformly while maintaining overall system manageability. The segmentation is typically based on physical proximity (e.g., blocks or sub-arrays) or performance metrics, enabling efficient group-based programming control.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9583196B2Immediate feedback before or during programming
Publication Date: 2017.02.28
  • US9583196B2 patent drawing
  • US9583196B2 patent drawing
  • US9583196B2 patent drawing

AI summary

A system and method of programming user data into a memory cell includes receiving a first user data to be programmed in a memory controller, selecting a memory cell for programming the first user data and measuring at least one health characteristic of the selected memory cell. At least one programming parameter of the selected memory cell is adjusted and the first user data is programmed to the selected memory cell using the adjusted programming parameter corresponding to the selected memory cell.