Foggy-Fine Programming in Nonvolatile Memory with Soft Bit Encoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing non-volatile memory devices, particularly NAND structures, face challenges in efficiently programming memory cells without disturbing neighboring cells, requiring multiple program operations and significant data storage and transfer resources to mitigate program disturb effects.
Innovation Solution
The implementation of foggy-fine programming, where memory cells are initially programmed to approximate 'foggy' distributions followed by more accurate 'fine' distributions, with intermediate neighboring cells being programmed to minimize disturbance, and the use of parity data for encoding and decoding to recover original data without the need for safe copies.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If programming occurs in two or more program operations to mitigate program disturb effects, then program disturb effects are reduced, but significant data storage capacity and data movement overhead are required
Solution Approach 1:
The programming process is divided into two distinct stages: foggy programming that creates broad threshold voltage distributions, and fine programming that refines these distributions to final target values. This segmentation allows intermediate states to be tolerated without requiring safe copy storage, as the foggy state is intentionally designed to be recoverable through the fine programming stage.
Solution Approach 2:
Foggy programming performs a preliminary programming action that brings memory cells close to their target state without achieving final precision. This preliminary action prepares the cells for the subsequent fine programming stage, enabling the system to proceed with neighboring cell programming without maintaining safe copies of intermediate data.
2Reliability
If multiple program operations are used to program neighboring memory cells, then program disturb effects are mitigated, but significant overhead in data movement between components occurs
Solution Approach 1:
The foggy-fine programming approach enables continuous progression through programming stages without interruption for data retrieval. Once foggy programming is complete, the system continuously proceeds to fine programming and neighboring cell programming without needing to pause and retrieve safe copies, eliminating data movement overhead while maintaining programming continuity.
Solution Approach 2:
The methodology allows the system to skip the intermediate safe copy storage step entirely. By designing foggy programming to produce recoverable intermediate states, the system rushes through the programming process directly from foggy to fine programming without the time-consuming data movement operations that would otherwise be required.
3Measurement precision
If memory cells are programmed to accurate distributions immediately, then data precision is maintained, but program disturb effects increase due to charge addition affecting nearby cells
Solution Approach 1:
Foggy programming performs a preliminary programming action that brings memory cells close to their target state without achieving final precision. This preliminary action uses broader threshold voltage distributions that require less charge addition, thereby reducing program disturb effects on neighboring cells while still progressing toward the final accurate state in the subsequent fine programming stage.
Solution Approach 2:
Foggy programming applies partial programming action that achieves sufficient progress toward the target state without completing the full programming process. This partial action is intentionally designed to stop at an intermediate foggy state with broader distributions, reducing the total charge addition and program disturb effects while still enabling recovery through the subsequent fine programming stage.
Data Source
AI summary
A storage apparatus includes non-volatile memory cells formed on a memory die, each memory cell configured to hold bits of data, and a control circuit formed on the memory die. The control circuit is configured to calculate parity data for data to be stored in the memory cells and program the memory cells to first distributions. The control circuit is also configured to read the memory cells in the first distributions, recover the data from results of reading the memory cells in the first distributions combined with the parity data, and further program the memory cells from the first distributions to second distributions to store the data. In some cases, the recovered data may have a high bit error rate. To handle higher bit error rates, the use of soft bit data is incorporated into an encoded foggy-fine scheme.


