Memory Program Pulse Selection for Reliable TLC Data Writing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional memory sub-systems face inefficiencies in writing data due to reliance on single criteria for program pulses, leading to erratic behavior, read errors, and reduced performance as memory cells deteriorate, particularly in tri-level cell devices where charges shift across read levels, causing inaccuracies and abnormal firmware behavior.

Innovation Solution

A memory sub-system controller dynamically selects program pulses based on multiple criteria such as PEC count, RBER, inhibited cell count, and check failure unit counts to optimize writing speed and reliability, using a look-up table to map these criteria to appropriate pulse values.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single criteria is used for program pulses, then device complexity is reduced, but reliability deteriorates due to erratic behavior and read errors

Engineering Contradiction:
Improveprogram pulse selectionVSAvoiddata writing reliability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent implements dynamic program pulse selection by transitioning from a static single-criteria approach to a dynamic multi-criteria system. The controller continuously monitors multiple parameters (PEC count, RBER, inhibited cell count, check failure unit counts) and adjusts program pulse values in real-time based on current memory cell conditions, thereby maintaining reliability as memory deteriorates over time

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameters used for program pulse selection from a single parameter to multiple parameters. By incorporating PEC count, RBER, inhibited cell count, and check failure unit counts as selection criteria, the system achieves more reliable data writing. The look-up table maps combinations of these parameters to appropriate program pulse values, resolving the contradiction between complexity and reliability

Inventive Principle:
Principle #35Parameter changes

2Productivity

If program pulses are strengthened to improve writing speed, then productivity increases, but harmful factors increase due to charge shifts and read errors

Engineering Contradiction:
Improvedata writing speedVSAvoidcharge shifts across read levels
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The system dynamically adjusts program pulse strength based on real-time memory cell conditions rather than using fixed strong pulses. By monitoring PEC count, RBER, and other parameters, the controller selects optimal pulse values from a look-up table, achieving high writing speed when conditions permit while preventing charge shifts when memory cells show signs of deterioration

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent implements feedback mechanisms by continuously monitoring memory cell health through RBER, inhibited cell count, and check failure unit counts. This feedback information is used to adjust program pulse selection, ensuring that strong pulses are applied only when safe, thereby maintaining productivity while preventing harmful charge shifts

Inventive Principle:
Principle #23Feedback

3Reliability

If program pulses are weakened to reduce stress on memory cells, then reliability improves, but productivity decreases due to slower writing speed

Engineering Contradiction:
Improvememory cell durabilityVSAvoiddata writing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically selects program pulse values based on current memory cell conditions rather than using consistently weak pulses. When memory cells are healthy (low PEC count, good RBER), stronger pulses are selected for high-speed writing. When deterioration is detected, weaker pulses are selected to prevent damage, thus achieving both high reliability and high productivity at different times

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the approach from fixed weak pulses to variable pulse selection based on multiple parameters. The look-up table contains a range of pulse values that are selected based on PEC count, RBER, inhibited cell count, and check failure unit counts, allowing the system to optimize between reliability and productivity

Inventive Principle:
Principle #35Parameter changes

4Reliability

If multiple criteria are used for program pulse selection, then reliability improves, but device complexity increases

Engineering Contradiction:
Improvedata writing consistencyVSAvoidprogram pulse selection system
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing optimal program pulse values in a look-up table based on various combinations of PEC count, RBER, inhibited cell count, and check failure unit counts. During operation, the controller simply queries the table with current parameters to obtain the appropriate pulse value, avoiding complex real-time calculations while maintaining high reliability

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The look-up table serves as an intermediary between the complex multi-criteria analysis and the simple pulse selection. It pre-processes the complexity of evaluating multiple parameters and maps them to appropriate pulse values, allowing the controller to make reliable decisions without implementing complex decision logic

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12493415B2Program pulse modification
Publication Date: 2025.12.09 MICRON TECHNOLOGY INC
  • US12493415B2 patent drawing
  • US12493415B2 patent drawing
  • US12493415B2 patent drawing

AI summary

Aspects of the present disclosure configure a system component, such as a memory sub-system controller, to modify pulses used to program memory components. The controller receives a request to program data in an individual memory component of a set of memory components. The controller computes a plurality of memory reliability criteria associated with the individual memory component and compares the plurality of memory reliability criteria to one or more threshold values. The controller selects a program pulse used to program the data to the individual memory component based on a result of comparing the plurality of memory reliability criteria to the one or more threshold values.