Functional Data Programming in Non-Volatile Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As flash memory devices shrink in size to increase density, capacitive coupling between memory cells leads to read errors due to charge storage structure-to-charge storage structure coupling, which existing error correction coding can only partially address at the cost of additional controller time and memory usage.
Innovation Solution
Implementing functional data programming that uses a mathematical function to encode data across groups of memory cells, reducing the impact of capacitive coupling by storing data as a functional relationship between cells rather than individual threshold voltages, and employing encoding and decoding blocks to manage these functions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If memory array physical size is decreased to increase density, then memory density is improved, but capacitive coupling between adjacent memory cells increases causing read errors
Solution Approach 1:
The patent divides the memory array into multiple independently controllable blocks, each with its own set of word lines and bit lines. By segmenting the array, capacitive coupling effects are localized within blocks rather than affecting the entire array, allowing high-density design while maintaining read accuracy through isolated error correction.
Solution Approach 2:
The patent introduces an intermediary encoding scheme where data is stored as functional relationships (mathematical functions) across multiple memory cells rather than single cell values. This intermediary representation allows detection and correction of read errors caused by capacitive coupling, as the functional relationship can be verified even when individual cell readings are corrupted.
2Reliability
If error correction coding is used to correct read errors, then data reliability is improved, but controller time and memory locations are consumed
Solution Approach 1:
The patent performs preliminary encoding of data into functional relationships before writing to memory. This preliminary action creates built-in error detection capabilities in the stored data structure, allowing faster verification during read operations compared to traditional post-read error correction coding, thus reducing controller time while maintaining data accuracy.
3Ease of manufacture
If traditional threshold voltage programming is used, then data storage is simple, but capacitive coupling causes threshold voltage shifts beyond target voltage
Solution Approach 1:
The patent changes the fundamental parameter representation from single-cell threshold voltages to multi-cell functional relationships. By storing data as mathematical functions across groups of cells rather than individual threshold voltages, the system achieves precise data representation that is resilient to capacitive coupling-induced voltage shifts, while maintaining programming simplicity through systematic encoding methods.
Applied Scientific Principles
This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.
Function Achieved in This Case
This approach reduces the impact of capacitive coupling errors and minimizes the need for error correction coding, improving data storage reliability and efficiency by encoding data using mathematical functions that balance error sensitivity, storage density, and noise immunity.
Implementation Method 1
charge storage structure-to-charge storage structure (e.g., floating gate-to-floating gate) capacitive coupling between adjacent memory cells
Data Source
AI summary
Methods of operating a memory include receiving a plurality of digits of data, determining a value of the plurality of digits of data, and selecting a function to represent the value of the plurality of digits of data. The selected function is a function of a cell number of each memory cell within a grouping of memory cells. The methods further include determining a desired threshold voltage of a particular memory cell of the grouping of memory cells corresponding to the value of the selected function for the cell number of the particular memory cell, and programming the particular memory cell to its desired threshold voltage.


