Systems and methods for dynamically compensating for multiple sources of interference in non-volatile memory storage devices
Patent Information
- Application Number
- CN202210995812.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-08-19
- Filing Date
- 2022-08-18
- Publication Date
- 2026-08-18
- Estimated Expiration
- 2042-08-18
AI Technical Summary
[0004]随着非易失性存储器基元尺寸变小,存储器基元尺寸的按比例缩小可能会导致存储器块中邻近基元(浮栅晶体管)之间的寄生电容耦合增加
Smart Images

Figure CN115713956B_ABST
Abstract
Description
Technical Field
[0001] This arrangement generally relates to memory devices, and more specifically to improving the durability and average read performance of non-volatile memory storage devices by mitigating interference between adjacent cells. Background Technology
[0002] As the number and types of computing devices continue to expand, the demand for memory used in such devices is also increasing. Memory includes volatile memory (such as RAM) and non-volatile memory (such as flash memory or NAND flash memory). A non-volatile memory array consists of rows and columns (strings) of primitives. A primitive can include a transistor and is associated with a single bit.
[0003] During a read operation, an entire row / page of a non-volatile memory array can be read. This is achieved by applying a bias voltage to all rows not being read and a reference threshold voltage to the row that should be read. The bias voltage allows the transistors of the non-volatile memory array to be fully turned on. If the threshold voltage is high enough to overcome the trapped charge in the floating gate, the primitive located on the row being read will turn on. A sense amplifier can be connected to each string, which measures the current through the string and outputs a "1" or "0" depending on whether the current passes through a specific threshold.
[0004] As the size of non-volatile memory cells shrinks, the proportional reduction in cell size can lead to increased parasitic capacitive coupling between adjacent cells (floating gate transistors) within a memory block. This phenomenon, known as "inter-cell interference" (ICI), can cause errors in the memory, resulting in decreased durability and read performance of non-volatile memory storage devices.
[0005] Non-volatile memory storage devices can implement fast programming methods that can cause high levels of interference during programming of adjacent rows because the adjacent rows are less isolated from the target programming row. Summary of the Invention
[0006] This arrangement relates to a method for achieving greater durability and higher average read performance of a nonvolatile device by mitigating interference between adjacent primitives.
[0007] According to some aspects, a method for dynamically estimating an interference compensation threshold for a memory page includes: calculating a histogram and a corresponding threshold based on multiple interference states of an interference source; clustering the multiple interference states to determine an effective number of interference states; and estimating a read threshold based on the histogram to dynamically compensate for interference noise associated with each of the effective number of interference states in a target row.
[0008] According to other aspects, a memory system includes: a memory page having a plurality of rows; and circuitry for performing operations on the memory page, the circuitry being configured to: calculate a histogram and corresponding thresholds based on a plurality of interference states of an interference source; cluster the plurality of interference states to determine an effective number of interference states; and estimate a read threshold based on the histogram to dynamically compensate for interference noise associated with each of the effective number of interference states in a target row.
[0009] According to other aspects, a non-transitory processor-readable medium containing processor-readable instructions enables a method for dynamically estimating an interference compensation threshold for a memory page, when executed by one or more processors, to: calculate a histogram and corresponding thresholds based on multiple interference states of an interference source; identify stress conditions based on the histogram; cluster the multiple interference states to determine an effective number of interference states; and estimate a read threshold based on the histogram to dynamically compensate for interference noise associated with each of the effective number of interference states in a target row. Attached Figure Description
[0010] The patent or application documents contain at least one color drawing. The patent office will provide a copy of the patent or patent application publication with color drawings upon request and payment of the necessary fees.
[0011] These and other aspects and features of this arrangement will become apparent to those skilled in the art when read in conjunction with the following description of the specific arrangement, in which:
[0012] Figure 1 This is a block diagram illustrating a non-volatile storage device arranged in some manner.
[0013] Figure 2 It is a chart of bar graphs based on the VT distribution of some arrangement of non-volatile memory storage devices with 4 bits / base (bpc).
[0014] Figure 3 It is a chart of bar graphs showing the distribution of VT for each programming state of a non-volatile memory storage device arranged in some configuration.
[0015] Figure 4 It is a chart of histograms showing the distribution of VT for each programming state (e.g., four ICI states) of a set of non-volatile memory storage devices.
[0016] Figure 5 It is a flowchart of a reading process that uses a fixed ICI compensation threshold based on some arrangements.
[0017] Figure 6It is a flowchart of a reading process that performs dynamic ICI compensation based on the stress conditions of some arrangements and the adjusted reading threshold of the target page under the current stress conditions.
[0018] Figure 7 It is a graph of multiple read operations performed based on a histogram of the VT distribution of a non-volatile memory storage device.
[0019] Figure 8 An example is shown of clustering ICI state pairs into groups according to some arrangement to improve ICI compensation threshold shift estimation.
[0020] Figures 9A-9B The relationship between the 16 ICI states and the shifts performed to correct the interference corresponding to the ICI states is shown.
[0021] Figures 10A-10B The relationship between the 64 ICI states and the shifts performed to correct the interference corresponding to the ICI states is shown.
[0022] Figure 11 This is an example of the BER distribution from a non-volatile memory storage device and two sources of interference.
[0023] Figure 12 It is a block diagram of a multilayer perceptron network based on some arrangements.
[0024] Figure 13 It is a block diagram of an example machine learning model that uses supervised learning based on some arrangements.
[0025] Figure 14 It is a soft-bit decoding read process that determines the read threshold of ICI compensation based on some arrangement of fixed ICI compensation used for multiple ICI reads.
[0026] Figure 15 It is a soft-bit decoding read process that determines the read threshold of ICI compensation based on some arrangement of dynamic ICI compensation used for multiple reads for each ICI state.
[0027] Figure 16 It is a soft-bit decoding read process that determines the read threshold of ICI compensation based on some arrangement of dynamic ICI compensation using multiple reads for each ICI state, which utilizes the estimation of polynomial coefficients for calculating ICI compensation. Detailed Implementation
[0028] According to some aspects, the arrangement in this disclosure relates to a technique for estimating the optimal (or improved) compensated read threshold for a target page given a plurality of adjacent interference primitives. Multiple neighboring rows may cause multiple interference states on the target row. By determining the ICI compensation threshold for each physical row, the target page bit error rate (BER) can be minimized (or reduced). Classifying various stress conditions can further reduce the BER, as stress conditions cause different levels of interference on the target row.
[0029] Inherent coupling noise between nonvolatile memory primitives can occur in planar or three-dimensional (3D) nonvolatile memory storage devices. In planar nonvolatile memory devices, (1) neighboring primitives in the same row and (2) neighboring primitives in the same column of adjacent rows are likely to be major contributors to ICI. Therefore, the reliability gain of hard / soft inputs can be obtained by estimating the state of neighboring primitives.
[0030] The primary source of interference is likely the programming scheme. For example, if a row is fully programmed before the next row is programmed, the primary source of interference is likely the programming scheme. For instance, during three-level primitive (TLC) programming, programming a row may affect nearby or adjacent rows that have already been programmed. Primitives programmed to the highest level are likely to be a stronger source of interference (than those programmed to levels below the highest level), potentially leading to unintentional programming of adjacent primitives.
[0031] However, intensive programming of non-volatile memory devices (such as NAND memory, including four-level primitives (QLCs) and five-level primitives (PLCs)) may involve breaking down the programming into multiple steps. For example, data can be programmed into a given row in the process (initial) setup. Then, adjacent (related) rows can be coarsely programmed before the target row is programmed to the final voltage value in the fine programming stage. This programming approach may require more data buffering and may have lower programming performance, but it can provide lower BER programming results while reducing interference between related primitives.
[0032] For example, in 3D TLC NAND devices, ICI coupling may be found on adjacent word lines. Furthermore, in 3D NAND devices (or other non-volatile memory storage devices), stress conditions such as hold or cross-temperature programming and read operations may cause varying levels of interference to the target row. Therefore, dynamically estimating the interference level and optimal compensation can effectively decouple ICI.
[0033] Systems and methods are provided for achieving improved robustness and average read performance of nonvolatile memory storage devices by mitigating interference between adjacent primitives (i.e., inter-cell interference). Improved robustness and average read performance can extend the lifespan of nonvolatile memory storage devices by increasing device reliability and efficiency. In some embodiments, dynamic ICI estimation can be performed without identifying stress conditions. In other embodiments (e.g., depending on the device and ICI characteristics), stress conditions can be estimated and used to determine whether ICI compensation should be performed.
[0034] In some configurations, the read threshold for ICI compensation can be estimated. The read threshold can be a set of bits near a specific threshold for each ICI state. Read operations or mock-read operations can be performed to estimate the ICI compensation read threshold. Multiple read operations may need to be performed on interference using different thresholds to determine multiple ICI state information. Read operations add overhead and latency. The added latency may exceed the timing requirements of hard decoding.
[0035] Therefore, soft sampling can be employed in some configurations. Performing soft sampling can be more advantageous than hard sampling because it can include a higher number of additional reads. Soft sampling involves performing multiple reads, each using a different read threshold. Using soft sampling to estimate the read threshold for ICI compensation improves the QoS of soft sampling by increasing estimation accuracy. Compared to estimation based on simulated read thresholds, performing soft sampling to estimate the read threshold for ICI compensation can be more accurate because soft sampling uses more information around each target threshold. The estimation accuracy of soft sampling can also be improved by estimating the optimal compensation threshold for each ICI state.
[0036] The reliability of soft information (e.g., soft tags) can be a log-likelihood ratio (LLR) value mapped from hard read values and interference values. For example, the conditional LLR value of bit b depends on the interference state I, as shown in Equation 1:
[0037]
[0038] The systems and methods in this disclosure can apply ICI compensation after soft sampling to modify the soft-sampled label without having to resample the soft input using estimates for multiple disturbance states. Soft sampling and decoding are described in more detail in U.S. Application No. 16 / 843774, filed April 8, 2020, by Avi Steiner and Hanan Weingarten, entitled “DECODING SCHEME FOR ERRORCORRECTION CODE STRUCTURE IN DATA STORAGE DEVICES,” and U.S. Patent No. 10,614,897, filed September 13, 2018, by Avi Steiner, entitled “SYSTEM AND METHOD FOR HIGH PERFORMANCE SEQUENTIAL READ BY DECOUPLING OF INTER-CELL INTERFERENCE FOR NON-VOLATILE MEMORIES,” the entire contents of which are incorporated herein by reference. The applications incorporated by reference disclose methods for interference compensation. However, as disclosed in this paper, interference compensation is improved by dynamically estimating the dynamic compensation of multiple interference states from multiple interference sources.
[0039] In some arrangements, the systems and methods described in this disclosure for mitigating interference between adjacent primitives can be stored in a non-volatile memory controller (e.g., Figure 1 The signal processing operations described in this disclosure for mitigating interference between adjacent primitives can be implemented on a non-volatile memory controller (e.g., memory controller 102). In some arrangements, the signal processing operations for mitigating interference between adjacent primitives described in this disclosure can be implemented on a non-volatile memory controller (e.g., memory controller 102). Figure 1 The signal processing operations are implemented in software or hardware running on the memory controller 102. Implementing the signal processing operations on the non-volatile memory controller hardware (or firmware) can result in low-complexity processing. In some arrangements, the signal processing operations described in this disclosure for mitigating interference between adjacent primitives can be implemented in the memory controller (e.g., a solid-state drive (SSD) controller, a universal flash memory (UFS) controller, a secure digital (SD) device, etc.).
[0040] Figure 1This is a block diagram illustrating a non-volatile storage device 100 according to some arrangements. In some arrangements, the non-volatile storage device may be a flash memory system capable of performing any of the methods described in this disclosure. Examples of device 100 include, but are not limited to, solid-state drives (SSDs), non-volatile dual in-line memory modules (NVDIMMs), universal flash memory (UFS), secure digital storage (SD) devices, and the like.
[0041] In some arrangements, different devices (not shown) may communicate with device 100 via suitable wired or wireless communication links to perform some or all of the methods described herein. Device 100 may include a memory controller 102 for performing operations of multiple primitives, and a memory module or memory device 104.
[0042] The memory controller 102 may include read circuitry 110, programming circuitry (e.g., a programmable DSP) 120, and a programming parameter adapter 130. In some arrangements, read circuitry 110 may include an ICI estimator 111, an ECC decoder 112, and / or a soft information generator 113. In some arrangements, programming circuitry 120 may include an ECC encoder 124 and programming parameters 122. In some arrangements, programming parameter adapter 130 may include a programming / erase cycle counter 132. Examples of the memory controller 102 include, but are not limited to, SSD controllers (e.g., client SSD controllers, data center SSD controllers, enterprise SSD controllers, etc.), UFS controllers, or SD controllers. The arrangement of the memory controller 102 may include additional or fewer components, such as... Figure 1 The components shown.
[0043] Memory controller 102 can combine raw data storage from multiple memory blocks 106, allowing memory blocks 106 to function as a single memory. Memory controller 102 may include a microcontroller, buffers, error correction systems, a flash memory translation layer (FTL), and a flash memory interface module. These functions can be implemented in hardware, software, and firmware, or any combination thereof. In some arrangements, the software / firmware of controller 110 may be stored in memory module 104 or any other suitable computer-readable storage medium.
[0044] The memory controller 102 includes suitable processing and storage capabilities for performing the functions described herein, as well as other functions. As described, the memory controller 102 manages various features of the memory block 106 in the memory module 104, including but not limited to I / O processing, reading, writing / programming, erasing, monitoring, logging, error handling, garbage collection, wear leveling, logical-to-physical address mapping, data protection (encryption / decryption), etc.
[0045] In some arrangements, the ICI estimator 111 of the readout circuit 110 may be configured to estimate the interference state based on the result of readout operations on the first neighboring primitives of a first primitive (i.e., the target primitive) among a plurality of primitives. In some arrangements, statistical correlation modeling of the main interference sources and their effects may be performed. For example, the ICI estimator 111 may be configured to perform statistical correlation modeling of the interference sources and their effects.
[0046] In some configurations, statistical correlation modeling of the main sources of interference and their effects can be performed offline. For example, when different programming schemes for different non-volatile memory storage devices increase the difficulty of performing statistical correlation modeling online, the statistical correlation model can be performed offline. For instance, the programming scheme of a generation of non-volatile memory storage devices may differ from that of another generation.
[0047] In some arrangements, the ICI estimator 111 can perform statistical correlation modeling of interference sources and their effects offline. In some arrangements, in order to perform such statistical correlation modeling offline on the target non-volatile memory storage device, the ICI estimator 111 or the computing system can store at least information about the programming scheme of the target non-volatile memory storage device in memory (e.g., in a mass storage device connected to I / O (USB, IEEE 1394, Small Computer System Interface (SCSI), Serial Advanced Technology Accessories (SATA), Serial Attached SCSI (SAS), PCI Express (PCIe), etc.) so that it can accurately model the interference sources and their effects in the target non-volatile memory storage device.
[0048] When estimating the interference state, the ICI estimator 111 may be further configured to estimate the programming level of the first neighboring primitive. For example, the ICI estimator 111 may estimate the programming level of the first neighboring primitive based on the result of a read operation on the first neighboring primitive. The ICI estimator 111 may then estimate the interference state of the first neighboring primitive based on the estimated programming level of the first neighboring primitive. In some arrangements, the interference state of the neighboring primitive is the estimated programming level of that neighboring primitive.
[0049] When estimating the interference state, the ICI estimator 111 may be further configured to obtain the result of the read operation on the first neighboring primitive by pre-fetching the next page read or by saving the result of the previous read. For example, when estimating the interference state of the target primitive in the target page, the ICI estimator 111 may obtain the read result of the neighboring primitive (of the target primitive) in the next page by pre-fetching the read result of the next page to be read immediately after the target page. In some arrangements, the ICI estimator 111 may obtain the read result of the neighboring primitive (of the target primitive) in the previous page by saving and reusing the read result of the previous page read before the target page. In this way, in some arrangements, the ICI estimator 111 may be configured to estimate the interference state by sequentially and only once reading rows of multiple primitives to decode the result of the read operation on multiple primitives. In some arrangements, the ICI estimator 111 may estimate the interference state of the neighboring primitive based on the state (or level) distribution programmed in the neighboring primitives.
[0050] In some arrangements, the ICI estimator 111 can analyze and model the interference state of the target primitive based on one or more primitives adjacent to it. In some arrangements, to analyze the contribution of interference to each neighboring primitive, a single neighboring row state estimation can be performed. For example, the ICI estimator 111 can estimate the interference state of neighboring rows based on the hard read before decoding. In some arrangements, the ICI estimator 111 can estimate the interference state of neighboring rows after decoding as the true data.
[0051] In some arrangements, once the interference source and its effects are modeled or identified, simple signal processing operations can be performed to compensate for or decouple the interference. For example, the sampling results of the target page can be post-processed to compensate for or decouple the interference. In some arrangements, reliability information can be provided for reading or decoding the target page. For example, the soft information generator 113 of the readout circuit 110 can be configured to generate reliability information (e.g., calculate the error probability) and provide soft information based on the reliability information. In some arrangements, the soft information generator 113 of the readout circuit 110 can be configured to generate soft information based on the estimated interference state and the readout value from the first primitive. (References herein) Figures 12 to 14 The arrangement of generating soft information and using the soft information generator 113 is further described.
[0052] ECC decoder 112 can be configured to decode soft information as a result of a read operation on a primitive. Additionally or alternatively, ECC decoder 112 can correct errors, improve the accuracy of the non-volatile memory storage controller, and reduce stress.
[0053] The memory controller 102 may also include programming circuitry 120. Programming circuitry may include an ECC encoder 124 and programming parameters 122. For example, the ECC encoder 124 may determine a soft tag from a soft sample. The memory controller 102 may also include a programming parameter adapter 130. Adapter 130 may adjust the programming parameters 122 in programming circuitry 120. In this example, adapter 130 may include a program / erase (P / E) cycle counter 132. Although shown separately for ease of illustration, some or all of adapter 130 may be incorporated into programming circuitry 120.
[0054] Memory module 104 may be an array of memory blocks 106. Memory blocks may include non-volatile memory, such as NAND flash memory, dynamic random access memory (DRAM), magnetic random access memory (MRAM), phase-change memory (PCM), ferroelectric RAM (FeRAM), etc. In some arrangements, memory module 104 may have multiple primitives. In some arrangements, each memory block 106 may have multiple primitives. In some arrangements, primitive memory (e.g., memory module 104 or memory block 106) may include rows and columns of primitives. In some arrangements, memory block 106 may include multiple pages (not shown), and a page may be defined as a primitive linked to the same word line, corresponding to a row of primitives. In some arrangements, neighboring primitives of a target primitive are primitives adjacent to the target primitive. For example, each of the first and second neighboring primitives (of the first primitive) may be located in the same column as the column of the first primitive and in a row adjacent to the row of the first primitive. Alternatively or additionally, module 104 may include or be implemented using multiple dies, each die containing multiple blocks 106.
[0055] Figure 2 This is a graph 200 showing the VT distribution of some arrangement of 4-bit / bpc nonvolatile memory storage devices (e.g., flash memory devices, such as QLCs with 16 programmable states). Sixteen lobes (distributions or histograms) are shown, corresponding to 16 different bit combinations of the 4 bits represented by the charge states of the primitives. Reading on the lower page requires the use of thresholds T1 201, T3 203, T6 206, and T... 12 212 divides the histogram into histograms with LSB 0 and histograms with LSB 1. Read thresholds T2 202, T8 208, T 11 211 and T 13 213 is used to divide the histogram into a histogram with LSB 0 for reading the middle page and a histogram with LSB 1, with reading thresholds T4204 and T... 10 210 and T14 214 is used to divide the histogram into histograms with an LSB of 0 (used for reading the upper page) and histograms with an LSB of 1, with reading thresholds T5 205, T7 207, T9 209, and T... 15 215 is used to divide the histogram into a histogram with LSB 0 for reading the top page and a histogram with LSB 1. The lower histogram 200 can be considered as the erase level.
[0056] As described herein, reading operations on a target row can introduce interference. In some implementations, fixed ICI compensation can be added to the read threshold. However, fixed compensation is not effective in improving BER because the degree of added ICI compensation varies depending on the ICI state, device stress conditions, and read threshold. For example, while the effect of the induced ICI state may be known (e.g., shifting the threshold above or below the ideal / optimal ICI compensation threshold associated with a threshold without ICI state), the degree of directional shift is unknown.
[0057] Figure 3 This is chart 300, a histogram of the VT distribution for each programming state of some arranged non-volatile memory storage device (e.g., TLC NAND row). The VT distribution (histogram) is a conditionally informational state. The histogram can be an example of a histogram and VT distribution determined in the case of a single programming operation with a primary source of interference (e.g., interference introduced during programming). A single read using a single threshold (e.g., a single state read) is the minimum overhead that can be added to obtain interference information in the read stream.
[0058] Figure 3 While it can be characterized offline, as further described herein, no single shift value for compensation will provide optimal ICI compensation given the interference information. Therefore, each ICI compensation threshold is offset by a unique voltage from the ideal read threshold (e.g., the ICI-independent read threshold).
[0059] Histogram 302 identifies the target row to be read. Each of the black dashed thresholds 303 and 313 identifies the optimal read threshold (e.g., the ideal read threshold), which provides the minimum output BER for each threshold in the absence of ICI information (e.g., an ideal histogram). A single read of a neighboring interfering row results in two induced histograms (e.g., histograms 304 and 306) for the same target row. Histograms 304 and 306 are conditional histograms. The sum of histograms 304 and 306 produces histogram 302.
[0060] Histogram 304 corresponds to ICI state 0. Histogram 304 can be obtained by calculating the VT distribution of the primitives of the target row corresponding to the read result "0" on the neighboring interference row. Since histogram 304 is associated with high programming interference in the neighboring row, histogram 304 is shifted to a higher voltage (e.g., shifted to the right from histogram 302 without ICI state).
[0061] Histogram 306 corresponds to ICI state 1. Histogram 306 can be obtained by calculating the voltage threshold distribution of the primitives of the target row corresponding to the read result "1" on the neighboring interference row. Since histogram 306 is associated with lower programming interference from neighboring rows, histogram 306 is shifted to a lower voltage (e.g., shifted to the left from histogram 302 without ICI state).
[0062] Equation 2 below shows that the sum of the BERs associated with the conditional histograms is the BER associated with the absence of any ICI. The sum of the two conditional histograms (e.g., histograms 304 and 306) is the histogram associated with the state without ICI (e.g., histogram 302), such that the total BER with ICI compensation is lower than the BER of the state without ICI.
[0063] BERnoICI>BERICI_0+BERICI_1 (2)
[0064] BERnoICI represents the readout BER associated with a state without ICI (e.g., histogram 302), BERICI_0 represents the readout BER associated with ICI state 0 (e.g., histogram 304), and BERICI_1 represents the readout BER associated with ICI state 1 (e.g., histogram 306).
[0065] Compared to the optimal read threshold associated with no ICI state (e.g., threshold 303), each ICI state and its associated histogram are associated with a different optimal threshold. Therefore, a fixed ICI compensation associated with each ICI state may not be effective in reducing BER.
[0066] To illustrate that different ICI states require different ICI compensations, note the thresholds associated with each ICI state. The blue dashed threshold 305 (and threshold 315) are associated with ICI state 0, and the red dashed threshold 307 is associated with ICI state 1. As shown, the effect of ICI is a shift along a known direction. However, the thresholds of conditional ICI distributions (e.g., histograms 304 and 306) have varying shifts relative to the optimal thresholds (e.g., histogram 302) of the original rows without ICI information.
[0067] For example, the blue dashed thresholds 305 and 315 are both associated with ICI state 1. Both thresholds are shifted to the left from thresholds 303 and 313 (which represent the optimal thresholds for no ICI state), respectively. However, the degree of shift differs, resulting in threshold 305 being different from threshold 315.
[0068] As shown in the figure, a read operation can be performed on the target row to facilitate the calculation of the optimal ICI compensation threshold. Three page reads obtain eight states of the TLC (e.g., S0 to S7). Simulated reads are superimposed on a set of VT distributions (histograms). Simulated read 308 is used to sense the histograms of the target row (e.g., histogram 302 associated with no ICI state, histogram 304 associated with ICI state 0, and histogram 305 associated with ICI state 1) to facilitate the calculation of the optimal ICI compensation threshold.
[0069] Figure 4 It is a graph 400 of a bar chart showing the distribution of VT for each programming state (e.g., four ICI states) of some arranged example non-volatile memory storage devices (e.g., QLC NAND rows). Figure 4 The row indicated in the figure can be the target row to be read. As shown in the figure, at position 410, there is a single read of N neighboring interfering rows. For the same target row, there can be 2n triggering histograms.
[0070] Threshold 405 can be an example of an optimal read threshold (e.g., an ideal read threshold without ICI information). When no ICI information is available, threshold 405 provides the minimum output BER for each threshold. Thresholds 412 and 416 can be offset relative to threshold 415. For example, thresholds 412 and 416 can be value offsets of threshold 415 based on a fixed step size of the digital-to-analog converter (DAC).
[0071] Figure 5 This is a flowchart of a read process 500 using a fixed ICI compensation threshold, based on some configuration. Read process 500 applies fixed ICI compensation for all stress conditions. Read process 500 uses interference information to provide example read operations, which are performed to determine the fixed ICI compensation threshold. Figure 5 The maximum number of read operations described in the process is 9.
[0072] In box 502, a single read command can be performed on the target row. The read type can be a full page read. A read command can be performed using a default threshold for the target row, which is typically performed when there is minimal (or no) prior information on the target page / block. If prior information is available, the first read threshold can be based on history and / or trace information instead of the default value. For example, the read threshold could be a read threshold associated with a previous read command. In some arrangements, the read command can use the last threshold if the time associated with the read command is less than 70 microseconds. In some arrangements, a hard decoding attempt can be performed on the read result.
[0073] In box 504, it can be determined whether the hardware decoding of the result of reading the target page was successful. If hardware decoding fails (e.g., due to a high error rate), the process can proceed to box 506. For example, the decoded BER may not meet a threshold (e.g., an accuracy threshold). If hardware decoding is successful, the process can end at box 511.
[0074] In box 506, Quick Training (QT) can be performed. As discussed herein, a linear estimator can be used to perform QT. The QT operation can perform a set of read operations (e.g., five single-level primitive (SLC) reads) using a simulated threshold. A histogram can be computed to estimate the read threshold for the next read. As further discussed herein, the computed histogram can also be used to estimate stress conditions. In some non-volatile memory storage devices (e.g., QLC NAND), ICI compensation for stress conditions may not be necessary.
[0075] In box 508, a single full-page read command can be executed using the estimated threshold from box 506. A hard-bit decoding of the read result on the target page can be attempted. Box 510 is similar to box 504. In box 510, it can be determined whether the hard decoding of the read result on the target page was successful. If hard decoding fails, the process can proceed to box 512. If hard decoding succeeds, the process can end at box 511.
[0076] In box 512, two additional full-page reads (or other reads) can be performed to obtain soft bit information, thereby enabling soft bit decoding (e.g., Figure 4 The software decoding reading process in 1400 can be used Figure 1 (Soft information generator 113). For example, two read operations can be performed, and the two ICIs can be compensated using a fixed shift relative to the estimated threshold from box 506. The soft bit information can be combined with the read information from box 508 to provide a decoder (e.g., Figure 1 The ECC decoder 112 in the middle provides the tag.
[0077] Figure 6This is a flowchart of a read process 600 based on some arrangement, which uses stress condition classification to perform dynamic ICI compensation on the target page under the current stress conditions through an adjusted read threshold. As described herein, the benefits of using dynamic threshold estimation and dynamic stress classification estimation include reduced BER and a reduced probability of having to perform soft decoding. Furthermore, performing stress condition estimation increases the minimum number of reads. For example, four reads are added to the flowchart of read process 600 compared to the flowchart of read process 500.
[0078] Box 602 is similar to Figure 5 Box 502 in the diagram. In box 602, a single read command can be performed on the target row. The read type can be a full page read. The read command can be performed using a default threshold for the target row, which is typically performed when there is minimal (or no) prior information on the target page / block. If prior information is available, the first read threshold can be based on history and / or trace information instead of the default value. For example, the read threshold could be a read threshold associated with a previous read command. In some arrangements, the read command can use the last threshold if the time associated with the read command is less than 70 microseconds. In some arrangements, a hard decoding attempt can be performed on the read result.
[0079] Box 604 is similar to Figure 5 Box 504. In box 604, it can be determined whether the hardware decoding of the result of the read from the target page was successful. If hardware decoding fails (e.g., due to a high error rate), the process can proceed to box 606. For example, the decoded BER may not meet a threshold (e.g., an accuracy threshold). If hardware decoding is successful, the process can end at box 611.
[0080] Over time, hardware decoding is more likely to succeed (and thus proceed to the end at box 611) because the default threshold (or previous threshold) tracks stress conditions and / or other changes in the non-volatile memory storage device. Stress conditions can vary dynamically based on temperature and / or time. However, in some cases, temperature may change slowly, making it possible to track stress conditions and associated compensation thresholds to produce an ideal BER.
[0081] For example, at time t=0, hard decoding may fail and the ICI compensation threshold is adjusted as described herein. At time t=1, hard decoding is more likely to succeed because the adjusted threshold determined from the first execution of boxes 602-618 may still be relevant / updated at time t=1. Therefore, the quality of service can be improved based on the self-tuning process of the non-volatile memory storage device. The probability of soft decoding is reduced (e.g., the probability of reaching box 618) because the previously updated threshold tracks the condition of the non-volatile memory storage device, making hard decoding more likely to succeed more frequently. Updating the threshold makes hard decoding more likely to succeed (e.g., at boxes 604, 610, and 616) frees up processing power and resources of the non-volatile memory storage device. Therefore, the total latency caused by performing reads is reduced because the first read (e.g., the read performed at box 602) and the associated read threshold are likely to be relevant at a later time.
[0082] In box 606, QT can be performed. QT operations can perform a set of read operations (e.g., five single-level primitive (SLC) reads) using a simulated threshold. A histogram can be calculated to estimate the read threshold for the next read. Reads performed using the simulated threshold can be stored in a buffer for later use in the read flow.
[0083] The calculated histogram can also be used to estimate stress conditions. Stress conditions can be classified before dynamic ICI compensation is performed. ICI compensation without dynamic estimation of stress conditions can have a non-negligible impact on the delay tail distribution and can therefore be avoided. Determining stress conditions can improve the allocation of computational resources because the trade-off between determining dynamic ICI compensation and improving BER given certain stress conditions may not be advantageous given the cost (e.g., time, computational resources, etc.) of performing ICI compensation. In some cases, performing ICI compensation can reduce BER. For example, as discussed in this paper, intensive programming of non-volatile memory devices (e.g., QLC devices) can employ incremental programming, resulting in less programming interference (however, interference may still exist, for example, due to retention). Therefore, applying an interference compensation threshold is inefficient and may lead to an increase in BER. In other cases, dynamic ICI compensation may depend on the classified stress conditions. Stress condition detection can be performed during the first tracking operation in the read flow. Detecting stress conditions does not incur additional overhead.
[0084] For example, when performing conditional ICI operations, classifying and identifying stress conditions (e.g., holding stress and transtemperature stress) may require dynamic ICI compensation based on stress conditions. Dynamic ICI compensation follows a stress condition estimate performed during QT, where the results of the stress condition estimate are used to determine whether ICI compensation should be applied prior to decoding.
[0085] Stress conditions can be classified using classifiers such as support vector machines and / or neural networks. For example, various support vector machines (SVWs) can classify stress conditions using information from the computed histogram. Input information may include the disturbance state, features, and corresponding stress conditions of the target row. These features could be information obtained during the read operation of the target row (e.g., physical row number, programming / erasing cycle count, thresholds typically estimated without ICI (e.g., thresholds for inter-primary interference)).
[0086] In some arrangements, each stress condition may have its own SVM (e.g., one for all categories). Each SVM can make a binary determination of whether the histogram data input into the SVM corresponds to a specific stress level associated with that SVM.
[0087] The input histogram data can be transformed to higher dimensions (e.g., mapping the data to a new dimension using the "kernel trick" with sigmoid kernels, multinomial kernels, radial basis function kernels, etc.) to make the data linearly separable. The decision boundary can be determined based on the dimension of the input data. The decision boundary can be learned to classify the inputs into different categories by optimizing the decision boundary. The decision boundary can be optimized by employing the gradient of a cost function (e.g., a hinge loss function) to maximize the margin of the decision boundary relative to the SVM classes. The SVM can be trained using each histogram data point and stress condition data to adjust the decision boundary over time. (Refer to...) Figure 12 and Figure 13 Describe the layout using a neural network.
[0088] If relevant stress conditions are identified (e.g., holding stress and / or transtemperature stress identified by SVM or neural networks), performing dynamic ICI compensation may be beneficial given multiple sources of interference (e.g., reducing BER, reducing the probability of soft decoding). Performing dynamic ICI compensation may include reducing the number of ICI states to an effective number of ICI states and averaging the ICI compensation shifts of the effective ICI states. If no relevant stress conditions are identified (e.g., the relevant stress conditions are not relevant to the target row), fixed ICI compensation (or no ICI compensation) may be applied to the target row. For example, fixed ICI compensation may be selected from a predetermined table based on calculated histograms, simulated reads, read operations, etc. Additionally or alternatively, soft decoding may be performed on the target row.
[0089] As discussed in this paper, simulated reads and associated histograms can be used to estimate the dynamic ICI compensation threshold for each of the k ICI state clusters. The states are clustered (e.g., ...). Figure 8 (As described in the example) this beneficially reduces the number of valid states used to simulate threshold estimation.
[0090] ICI states can be clustered (or otherwise associated) using sequential clustering algorithms such as k-means clustering. Each cluster of ICI states (e.g., valid ICI states) can represent a set of similar ICI states. ICI states can be grouped based on similarity involving the distance between the ICI state and its centroid. For example, the centroid can be randomly generated. Each cluster of ICI states associated with k centroids can be identified as the kth valid ICI state. ICI states can be clustered based on the relative distance between the ICI states (determined using histogram data) and the centroids. The centroid can be moved to a new relative position based on minimizing the average distance between each ICI state associated with it. Each time the centroid moves, the distance between the centroid and the ICI state can be recalculated. The centroid can iteratively move closer to the ICI state until a stopping criterion is met (e.g., the ICI state does not change the cluster, the sum of distances is minimized, and the maximum number of iterations is reached). In some configurations, the distance between the ICI state and the centroid can be determined using Euclidean distance. In other configurations, the distance between the ICI state and the centroid can be based on the similarity of the relevant features of the ICI state (e.g., the histogram features that lead to the ICI state).
[0091] Additionally or alternatively, each ICI state can be identified as a centroid. For example, ICI states can be clustered based on the distances from the centroid ICI states to other ICI states. Distance metrics can include, for example, the minimum maximum distance to other ICI states, the minimum average distance to other ICI states, and the minimum sum of squares distance to other ICI states. Clustered ICI states are similar such that each of the clustered ICI states has a similar average shift from no ICI state. Therefore, ICI compensation can be determined based on the grouping / clustering state.
[0092] Additionally or alternatively, ICI states can be clustered based on the similarity effect induced on the target line. For example, there might be cases where a single read operation is performed on the previous and next word lines. Therefore, there could be four states as shown in Equation 3 below:
[0093] L P ,L m H p H m (3)
[0094] In Equation 3, L represents a "low state" and H represents a "high state". Each state can be associated with the previous word line (p) and the next word line (m). These four states can be clustered into three states as shown below:
[0095] Cluster 1 <![CDATA[(L P ,H m (L) m ,H P )]]> Cluster 2 <![CDATA[(L P ,L m )]]> Cluster 3 <![CDATA[(H m ,H p )]]>
[0096] In the example, states can be clustered based on high (H) and low (L) interference. For instance, cluster 1 can be determined based on whether the target row has an interference source from the next word line (which is high) and an interference source associated with the previous word line (which is low) (or an interference source from the next word line is high and an interference source associated with the previous word line is low). The shifts on the target row (e.g., from H to L or from L to H) are the same. Therefore, these two states can be merged into a single cluster.
[0097] Cluster 2 can be created based on merging ICI shifts, where the merging is based on low interference sources from the previous and next word lines. Similarly, cluster 3 can be created based on merging ICI shifts, where the merging is based on high interference sources from the previous and next word lines. Therefore, the number of ICI states can be reduced.
[0098] In the example, the 16 interference states are caused by four ICI states resulting from three reads of the next word line and three reads of the previous word line. Similar ICI states can be grouped / clustered into smaller sets of ICI states to reduce the number of ICI states to the effective number. Reference Figure 7 The description reads the next word line and the previous word line and determines the ICI status.
[0099] After the ICI states of different related rows (e.g., neighboring rows) have been clustered and the number of ICI states has been effectively reduced, a simulated read can be performed on the target row. Performing a simulated read can include reading the target row using a fixed (or predetermined) set of simulated thresholds. The simulated read can be a read with predefined thresholds that are used only to sense the histogram distribution of the target row.
[0100] As described herein, simulated readout thresholds can be used to facilitate the estimation of optimal compensation for each histogram. The selection of simulated readout thresholds can be optimized based on one or more of the following criteria: (1) minimizing readout process overhead while meeting reliability specifications. Therefore, the minimum set of required simulated thresholds (or a reduced set of simulated thresholds) can be selected to compute histograms with ICI information; (2) minimizing the MMSE of the BER increase due to ICI compensation; and (3) minimizing the tail distribution of the BER increase under all stress conditions (e.g., weighted MMSE).
[0101] In some arrangements, a fixed ordering of multiple ICI states can be performed to replace the clustered ICI states and the compensation shift for each ICI state. Modeling ICI compensation as a function avoids information loss that may occur when ICI states are clustered. Therefore, a model function with parameters / coefficients can be used to determine the compensation for each ICI state. If a fixed static ordering exists for the ICI states, the clustered ICI states can be replaced with a model function. For example, under program disturbance stress and hold-off stress conditions, the effect of the disturbance is consistent with the order of the ICI states. For example, the ICI state ordering of 16 ICI states in... Figures 9A-9B The diagram shows the ICI states of the 64 ICI states ordered in... Figures 10A-10B As shown in the image.
[0102] The model function can be optimized to parametrically describe the ICI compensation shift as a function of the ICI states given multiple ICI states. The non-uniform mesh mapping of the ICI states (e.g., the x-axis mapping, as shown in Figure 9-10) can be optimized offline.
[0103] For example, an nth-degree polynomial can describe the compensation shift function, which can be modeled as shown in Equation 4:
[0104]
[0105] For k ICI states, i = 1, ..., k, x i It represents the x-axis grid value of the i-th ICI state, and a0,…,a nThese are polynomial coefficients. The coefficients can be dynamically estimated by threshold, row, and / or stress condition.
[0106] To estimate the device read threshold for each ICI state, the coefficients can be estimated using the linear estimator described in Equation 5:
[0107]
[0108] A set of M simulated thresholds can be used in conjunction with multiple ICI reads that create k ICI states. In Equation 5, It is an (n+1)Dx1 vector containing the estimated polynomial coefficients for each threshold, where D represents the number of thresholds for D+1 programming states. The histogram vector H... K(M+1) This can reflect the size of the histogram with M+1 bars (bins) and M simulated read thresholds. The number of bars is multiplied by k ICI states. Therefore, the linear estimator uses a vector of read thresholds based on the effective number of interfering states in the target row for dynamic compensation, a vector of linear estimators based on the histogram values, and a matrix of linear estimators based on the coefficients.
[0109] In the example, a non-volatile memory storage device (e.g., a TLC device) can have two sets of seven thresholds, each corresponding to an ICI state. In a different example, a QLC device can have D = 15 estimated thresholds.
[0110] Alternatively, DNNs can be used to estimate the coefficients describing the optimal ICI compensation function by thresholding. (See reference...) Figure 12 and Figure 13 Describe the layout using a deep neural network.
[0111] The ICI states can be represented on the x-axis (e.g., using a nonlinear grid mapping, as shown in Figures 9-10), and the threshold shift can be represented on the y-axis. For example, given a graphical representation describing the relationship between the ICI states of a cluster and the ICI-compensated threshold shift, the two parameters of the graphical representation can be the accurate mechanism for determining the threshold shift. Additionally or alternatively, the relationship between the ICI states of a cluster and the ICI-compensated threshold shift can be indicated by an nth-degree polynomial.
[0112] Modeling the relationship between the clustered ICI states and the ICI compensation threshold shift reduces the number of reads. In the example, three ICI reads can be performed on the next word line and three on the previous word line, resulting in a total of four ICI states per word line and a total of 16 ICI states. Typically, an estimated ICI compensation threshold can be determined for each ICI state. However, given a finite length of codeword and the need to estimate the threshold for each of the 16 states, the resources (time, computational power, etc.) allocated to each state are effectively reduced. That is, calculating the threshold for each state reduces the resources available for estimating different states and / or performing other estimations / tasks, potentially decreasing the accuracy of estimating each state.
[0113] Therefore, the ICI compensation shift can be described as a zero shift relative to different thresholds. That is, ICI compensation can be a shift in response to an optimal threshold, such as an ideal threshold, for the absence of ICI. The ICI compensation shift can be described as a function of the ICI state because, for example, when hold is present, the ICI compensation increases as a function of the duration of the stress effect or the hold. As described herein, the relationship between the ICI compensation shift and the ICI state can be determined by estimating at least two parameters of a linear curve or n parameters of an nth-degree polynomial using a linear estimator and / or a linear estimator.
[0114] Box 608 is similar to Figure 5 Box 508 in the diagram. In box 608, a single read command can be executed using the estimated threshold from box 606. Reads can be stored in a buffer so they can be used later in the read process. A hard-bit decoding of the read result on the target page can be attempted. Box 610 is similar to box 604. In box 610, it can be determined whether the hard decoding of the read result on the target page was successful. If the hard decoding fails, the process can proceed to box 612. If the hard decoding succeeds, the process can end at box 611.
[0115] In box 612, a single read operation for the next word line and a single read operation for the previous word line (or any other major interference line) can be performed. If the stress conditions determined from box 606 do not indicate hold conditions and / or cross-temperature stress conditions, then dynamically compensating for the ICI state based on stress conditions may not be beneficial, and the process can proceed to soft decoding (e.g., Figure 15 or Figure 16If the stress conditions determined from box 606 indicate holding stress and / or transtemperature stress, a histogram with ICI states and simulated reads can be calculated to determine the dynamic ICI shift threshold for each ICI state. The shift can be determined for each ICI threshold using a DAC converter using the single read determined in box 602, the valid ICI states determined in box 606, and the histogram determined in box 606.
[0116] Thresholds for Cluster 1 (including state (L)) P H m (L) m H P The threshold may have been previously estimated from the target row (if a previously estimated threshold is available). Otherwise, the threshold for cluster 1 is a threshold without ICI information.
[0117] To calculate the DAC shift threshold associated with the ICI states of clusters 2 and 3, a linear estimator or a DNN can be used. (Refer to...) Figure 12 and Figure 13 Describe the layout using a neural network.
[0118] A linear estimator can be used to estimate the read thresholds for clusters 2 and 3 via ICI (e.g., a QT example). The linear estimator can be obtained according to Equation 6:
[0119]
[0120] in This is an Ax1 vector containing the threshold estimation results, where these thresholds correspond to different disturbance states (e.g., the state associated with cluster 2 and the state associated with cluster 3). In the example described herein, A = 30 (e.g., two sets of 15 thresholds). Vector H Bx1 This includes histogram values obtained from simulated reads and single ICI reads from the next and previous word lines. Finally, matrix X... AxB It is the linear estimator coefficient matrix, which can be trained offline on a database containing the VT distribution of samples under supported stress conditions.
[0121] In the example, the database can be configured with a VT distribution for state reads of the next word line and the previous word line for each row in the database, and a predetermined (fixed) simulated read threshold. For each of the N rows in the database, a set of N histograms can be calculated using labels corresponding to the optimal threshold for each row.
[0122] An example linear estimator that minimizes the mean squared error of the threshold estimate (MMSE) is shown in Equation 7:
[0123]
[0124] Where H BxN It is a histogram matrix, V AxN This is the optimal threshold matrix. The BER associated with estimating a suboptimal threshold may be disproportionate to the threshold error relative to the optimal threshold. To assess the impact of BER on the estimated threshold, the error function can be transformed from the threshold error to a function of the additional BER (vs.) threshold error.
[0125] This can be achieved, for example, using a weighted least squares algorithm, which iteratively solves the threshold MMSE by assigning weights to each histogram sample corresponding to a threshold from previous MMSE iterations. That is, Where w i This represents the normalized weights required to convert the threshold error to BER. The next iteration of solving the weighted MMSE equation (7) is given by X. AxB (iter) = V AxN ·W iter ·H T (H·W iter ·H T ) -1 Given, where W iter It has a weight w on its diagonal. i The weights are an NxN diagonal matrix. The weights are updated in each iteration until the weighted MSE loss is minimized. In other implementations, additional polynomial functions can be used to compute an additional BER as a function of the threshold error, and stochastic gradient descent can be performed to minimize the loss.
[0126] The estimated read threshold for each interference state can be calculated using a set of M simulated thresholds combined with multiple reads of ICI information that are grouped into K ICI states. For example, the estimated read threshold for each ICI state can be given by Equation 8:
[0127]
[0128] in This is a KDx1 vector containing the estimated results of D thresholds for D+1 possible programming states. In the case of a TLC device, D = 7, and there can be two sets of seven thresholds, where each threshold corresponds to an ICI state. In the case of a QLC device, D = 15 can be the number of estimated thresholds. In Equation 8, the K(M+1) histogram vector can reflect the histogram size. For example, when using M simulated read thresholds, there are M+1 histograms multiplied by k ICI states.
[0129] In box 614, manual hard bit operations can be performed. Manual hard bit operations may include applying a compensated offset value based on the stress condition clusters for each threshold (e.g., clusters 2 and 3 as defined in box 606). Two additional full reads can be performed using a fixed threshold shift. A single input hard bit codeword can be formed by selecting the individual parts based on the ICI status information in the read results. In some arrangements, a hard decoding attempt can be performed on the read results.
[0130] Box 616 can be similar to boxes 604 and 610. In box 616, it can be determined whether the hardware decoding of the result of reading the target page was successful. If hardware decoding fails, the process can proceed to box 618. If hardware decoding succeeds, the process can end at box 611.
[0131] In box 618, two additional full-page reads (or other reads) can be performed to obtain soft bit information, thereby enabling soft bit decoding (e.g., using...). Figure 1 (Soft information generator 113). For example, two read operations can be performed, and the two ICIs can be compensated using a fixed shift relative to the estimated threshold from box 606. If the stress condition is identified as including holding and / or across temperatures, the soft bit information can be combined with the read information from box 614 to provide a decoder (e.g., Figure 1 The ECC decoder 112 in the document is labeled. If the stress condition is identified as not including holding and / or across temperatures, the soft bit information can be combined with the read information from box 608. As described herein, the soft bit decoding readout procedure is referenced. Figure 15 and 16 To describe.
[0132] Figure 7 This is a graph showing the multiple read operations performed based on a histogram of the VT distribution of a 4bpc non-volatile memory storage device (e.g., a flash memory device, such as a QLC with 16 programmable states). As shown, six single-state reads (e.g., three reads per row) from two different rows are used to obtain ICI information. Thresholds 706, 708, and 730 are used to read ICI information from the next row and the previous row (e.g., the next word line and the previous word line), where S m (i), i=1,…,4 and S p (i), i = 1, ..., 4, indicates the information obtained from the read. Each pair (S) m (i),S p (i)) are ICI states, i = 1,...,4. The 16 ICI states can cause a compensation threshold for estimation, which leads to inaccurate estimations using a finite amount of row information. ICI state pairs (S m (i),S pEach of (i) can be clustered into groups to improve ICI compensation threshold shift estimation.
[0133] Figure 8 Example 800 illustrates an arrangement for clustering ICI state pairs into groups to improve ICI compensation threshold shift estimation. Clustering the ICI state pairs reduces the number of states to the number of effective states. As shown, the ICI states can be clustered into five clusters, each of which is nearly equal in size. Therefore, the number of ICI states is reduced from 16 to 5 effective states, facilitating more robust compensation threshold estimation.
[0134] Figures 9A-9B Figures 10A-10B illustrate the relationship between ICI and the shift performed when triggered by interference corresponding to the ICI state. For each threshold, the respective average lobe shift is calculated as a function of the ordered ICI state exponent. As shown, each ICI state can have a different shift relative to zero shift. Figures 9A-9B Figures 10A and 10B show the ICI status that has been grouped according to samples in the database. Figures 9A-9B Example average shifts for each of the 16 ICI states are shown, while Figures 10A-10B An example average shift is shown for each of the 64 ICI states. Figures 10A-10B The 64 states can be obtained, for example, by performing a read with seven thresholds on one interfering row and a read with an additional seven thresholds on another interfering row. Therefore, there are eight regions in each row that can be mapped to 64 ICI states. Figure 9A and 10A This indicates the ICI caused by one year of holding stress, while Figure 9B and 10B This indicates ICI caused by programming interference stress.
[0135] Figures 9A-9B The x-axis in 10A-10B is a non-uniform grid estimated by modeling the relationship between ICI states and shifts through evaluation of samples in the database. That is, a non-uniform grid is assigned to the sorted ICI state indices. As shown, the resulting shift function as a function of the ICI state indices corresponds to a linear curve. The relationship can be modeled using a linear estimator to estimate the model parameters in the database. For example, as... Figure 9A As shown, the estimated relation 902 can be based on estimating the slope and bias for each threshold shift. As illustrated, the error between the estimated shift and ordered state for each ICI state 902 is small. The y-axis represents the induced DAC shift, but is, for example, a voltage shift in millivolts.
[0136] Figure 11 Example 1100 shows the BER distribution from a non-volatile memory storage device and two interference sources. As shown, the non-volatile memory storage device is a QLC device. Figure 1104 indicates the BER distribution of the lower page, Figure 1106 indicates the BER distribution of the middle page, Figure 1108 indicates the BER distribution of the upper page, and Figure 1110 indicates the BER distribution of the top page. The x-axis of the graphs indicates BER, and the y-axis indicates the complementary cumulative distribution function (CCDF).
[0137] Example 1100 illustrates the effect of ICI compensation on improved BER. As shown, the BER distribution of the lower page 1104 without ICI reads is line 1114. Line 1114 represents the BER measured using the optimal threshold (e.g., without any ICI compensation). The BER distribution of the lower page 1104 in three states, determined using two ICI SLC reads of the next word line and the previous word line, is indicated by line 1124 (“QICI1”). Optimal compensation is estimated by line / threshold. The BER distribution of the lower page 1104 in five ICI states, determined using six ICI SLC reads of the next word line and the previous word line, is indicated by line 1134 (“ICI3”). Optimal compensation is estimated by line / threshold, and the optimal threshold is used for compensation after reading ICI3 (e.g., by QT and / or PST). The BER distribution of the lower page 1104 for the 16 ICI states is determined using six ICI SLC reads with the next and previous word lines, indicated by line 1144 (“ICI3 linear”) (e.g., using a linear curve estimate determined by an estimated polynomial function). Compensation can be followed by the calculation of the lobe shift for each ICI state, and the linear curve coefficients can be determined. Furthermore, an optimal threshold can be used for compensation after reading ICI3. The BER distribution of the lower page 1104 for the 16 states is determined using six ICI SLC reads with the next and previous word lines, indicated by line 1154 (“ICI3 bound”). Optimal shift is applied per line / threshold for each ICI state, and the optimal read threshold can be used for BER calculation. The optimal shift applied to each ICI state can be a bound on the ICI compensation.
[0138] Figure 12 This is a block diagram of a multilayer perceptron network 1200 arranged according to some configuration. As shown, network 1200 is a fully connected network. The neural network 1200 can be implemented within a non-volatile storage device 100. For example, network 1200 can be implemented within the controller itself, as firmware software running via an embedded CPU, or as hardware, depending on the firmware memory and latency performance specifications.
[0139] The neural network model 1200 may include a stack of different layers (vertically oriented) that transform a variable number of inputs 1209 taken in by the input layer 1213 into outputs 1208 at the output layer 1219. The network 1200 can be trained on a training dataset that includes features, histogram vectors based on simulation and ICI, and corresponding readout thresholds, stress conditions, and / or polynomial coefficients. For example, the perturbation state of the target row, features, and corresponding readout thresholds, stress conditions, and / or polynomial coefficients can be used in the training dataset.
[0140] As discussed herein, network 1200 can be used to estimate dynamic ICI compensation thresholds, stress conditions, and / or polynomial coefficients using simulated readouts, ICI readout results, and additional features, as well as one or more of input layer 1213 and one or more hidden layers 1218. In other arrangements, network 1200 may not include any hidden layers 1218. Input 1209 may be received as a vector by input layer 1213.
[0141] In some arrangements, network 1200 can be a neural network chain that allows estimation of the stress conditions, polynomial coefficients, and / or thresholds for dynamically compensated ICI. The architecture of the network trained to estimate various outputs 1208 (e.g., ICI compensation thresholds, stress conditions, and / or polynomial coefficients) can vary. For example, the network architecture can have different numbers of hidden layers 1218 or different models (e.g., random forest, SVM). Additionally or alternatively, the network architecture can be the same (e.g., the same number of hidden layers, the same type of network (convolutional neural network)).
[0142] Simulated reads (or histograms from soft samples) and one or more ICI read inputs to network 1200 can be computed histogram vectors derived from simulated reads and ICI reads. Feature inputs 1209 can include stress classification scores (e.g., received from different networks used to determine stress classification), physical row numbers, programming / erasing cycle counts, thresholds typically estimated without ICI, and other information acquired during the read operation. Some features (e.g., thresholds typically estimated without ICI) may depend on the read procedure implementation. In some arrangements, reads with ICI information may follow a threshold tracking state to acquire a threshold for the target row without ICI.
[0143] In addition to histogram vector information (e.g., from simulation and ICI reads), features are used to allow network 1200 to learn and benefit from the interactions between primitive features. For example, training network 1200 to predict / estimate the compensated ICI threshold using feature data can improve the estimated compensated ICI threshold. For example, feature information can convey information about the primitive environment (e.g., stress conditions), which allows network 1200 to better learn the relationship between the estimated compensated ICI threshold (output 1208) and the simulation and ICI read inputs 1209.
[0144] Input layer 1213 includes neurons 1211 connected to each neuron 1215 of hidden layer 1218. Neurons 1215 in hidden layer 1218 are connected to neurons 1221 in output layer 1219. Depending on what network 1200 is trained to do, if the network is used to estimate the ICI compensation threshold, output layer 1219 can generate a vector 1208 indicating the estimated readout threshold (e.g., the ICI compensation threshold). If the network is used to estimate polynomial coefficients, network 1200 can also be trained to generate the output vector 1208 of polynomial coefficients.
[0145] Alternatively or additionally, the output layer 1219 may be a softmax classifier that uses a softmax function (e.g., a normalized exponential function) to transform the real-valued inputs into a normalized probability distribution over the predicted output class. That is, if network 1200 is used to determine the stress classification, the output layer 1219 may generate a score for each stress condition such that the highest score corresponds to the most likely estimated stress condition. Network 1200 may include multiple hidden layers 1218 located between the input layer 1213 and the output layer 1219.
[0146] Typically, neurons (1211, 1215, and 1221) perform specific computations and interconnect with neurons in adjacent layers. Each of neurons 1211, 1215, and 1221 sums the values from its neighboring neurons and applies an activation function, allowing network 1200 to learn nonlinear patterns. The network uses these nonlinear patterns to learn the nonlinear relationship between inputs (e.g., information associated with features, simulated readouts, and ICI readouts) and outputs (e.g., estimated ICI compensation thresholds, stress conditions, polynomial coefficients, etc.).
[0147] Each of neurons 1211, 1215, and 1221 is interconnected via algorithmic weights 1217-1, 1217-2, 1217-3, 1217-4, 1217-5, and 1217-6 (collectively referred to as weights 1217). Weights 1217 are adjusted during training to regulate the strength of the neurons. Adjusting the neuron strength contributes to the network 1200's ability to learn non-linear relationships. The algorithmic weights are optimized during training so that the network 1200 can learn estimated compensation thresholds.
[0148] Supervised learning can be used to train Network 1200. Figure 13 It is based on some arrangement of supervised learning example 1300 machine learning models (e.g., Figure 12 The diagram shows a block diagram of network 1200. Supervised learning is a method of training a machine learning model given input-output pairs. An input-output pair is an input with a known output (e.g., a predicted output) that is associated with it.
[0149] The machine learning model 1304 can be trained on known input-output pairs, enabling it to learn how to predict known outputs given known inputs. Once the machine learning model 1304 has learned how to predict known input-output pairs, it can operate on unknown inputs to predict outputs.
[0150] Training input 1302 and actual output 1310 can be provided to machine learning model 1304. Training input 1302 may include simulated reads (or soft samples), ICI read results, and features. Actual output 1310 may include the optimal ICI compensation threshold, stress conditions, or polynomial coefficients.
[0151] In one arrangement, a machine learning model 1304 can be trained using training input 1302 (e.g., simulated reads, ICI reads, and other features) to predict output 1306 (e.g., an estimated optimal ICI compensation threshold) by applying the current state of the machine learning model 1304 to the training input 1302. A comparator 1308 can compare the predicted output 1306 with the actual output 1310 (e.g., the actually measured and / or computed optimal ICI compensation threshold) to determine the amount of error or difference. For example, the estimated / predicted optimal ICI compensation threshold (e.g., the predicted output 1306) will be compared with the actual / measured optimal ICI compensation threshold (e.g., the actual output 1310).
[0152] Additionally or alternatively, training input 1302 (e.g., soft samples and other features) can be used to train machine learning model 1304 to predict output 1306 (e.g., an estimated optimal ICI compensation threshold) by applying the current state of machine learning model 1304 to training input 1302. Comparator 1308 can compare the predicted output 1306 with the actual output 1310 (e.g., the actual measured and / or computed optimal ICI compensation threshold) to determine the amount of error or difference. For example, the estimated / predicted optimal ICI compensation threshold (e.g., the predicted output 1306) will be compared with the actual / measured optimal ICI compensation threshold (e.g., the actual output 1310).
[0153] Additionally or alternatively, training input 1302 (e.g., simulated reads, ICI reads, and other features) can be used to train machine learning model 1304 to predict output 1306 (e.g., stress condition) by applying the current state of machine learning model 1304 to training input 1302. Comparator 1308 can compare the predicted output 1306 with the actual output 1310 (e.g., identified stress condition) to determine error or discrepancy. For example, the estimated / predicted probability of the stress condition (e.g., predicted output 1306) will be compared with the actual stress condition (e.g., actual output 1310).
[0154] Additionally or alternatively, the machine learning model 1304 can be trained using training input 1302 (e.g., simulated reads, ICI reads, and other features) to predict output 1306 (e.g., polynomial coefficients) by applying the current state of the machine learning model 1304 to the training input 1302. Comparator 1308 can compare the predicted output 1306 with the actual output 1310 (e.g., polynomial coefficients determined using different methods) to determine error or difference. For example, the value of the polynomial coefficients (e.g., the predicted output 1306) will be compared with different measured coefficient values (e.g., the actual output 1310).
[0155] During training, the error determined by comparator 1308 (represented by error signal 1312) can be used to adjust the weights in machine learning model 1304, enabling machine learning model 1304 to learn over time. For example, the backpropagation algorithm can be used to train machine learning model 1304. The backpropagation algorithm propagates the error signal 1312 through the weights in machine learning model 1304 (e.g., ...). Figure 12The weights 1217 in the model are used for operation. The error signal 1312 can be computed in each iteration (e.g., each pair of training inputs 1302 and associated actual outputs 1310), batch, and / or epoch, and propagated through the weights in the machine learning model 1304, such that the algorithm weights are adjusted based on the amount of error. The error is minimized using a loss function. Non-limiting examples of loss functions may include the squared error function, the root mean square error function, and / or the cross-entropy error function.
[0156] The weighting coefficients of machine learning model 1304 can be adjusted to reduce the amount of error, thereby minimizing the difference between the predicted output 1306 and the actual output 1310 (or otherwise converging the predicted output 1306 and the actual output 1310). Machine learning model 1304 can be trained until the error determined at comparator 1308 is within a certain threshold (or the threshold number of batches, generations, or iterations has been reached). The trained machine learning model 1304 and its associated weighting coefficients can then be stored, allowing machine learning model 1304 to be applied to unknown data (e.g., non-training input 1302). Once trained and validated, machine learning model 1304 can be used during testing (or inference phases). For example, during testing, machine learning model 1304 can ingest unknown data to predict / estimate the optimal ICI compensation threshold, stress condition, and / or polynomial coefficients. Using the systems and methods described herein, non-volatile storage device 100 can have a formalized approach for estimating the optimal ICI compensation threshold, stress condition, and / or polynomial coefficients.
[0157] Figure 14 This is based on a soft-bit decoding read process 1400, which utilizes fixed ICI compensation for multiple ICI reads to determine the read threshold for ICI compensation. The soft read process 1400 uses soft bit sampling of the target line. In one example, the number of reads in the read process 1400 is 40. Soft bit sampling can be used to estimate the read threshold for ICI compensation to improve service quality and estimation accuracy. In some arrangements, when hard decoding fails (e.g., in...), Figure 5 After the read process fails at 500, read process 1400 is executed.
[0158] In this example, the process begins at box 1402, where soft sampling is performed and combined with ICI sampling. In one example, at a threshold (e.g., from...) Figure 5 The read process 500 for hard-bit decoding with fixed ICI compensation performs five-bit resolution soft sampling near the estimated QT threshold. In some configurations, the number of full-page reads performed for soft sampling can be 31.
[0159] In box 1404, group reads can be performed. Group information reads can be used to distinguish primitives near each target threshold. For example, three SLC reads can be performed to separate lobe regions in a histogram.
[0160] In box 1406, if the holding stress was estimated during QT, ICI reads and relabeling can optionally be performed. For example, six SLC reads (e.g., three reads of the next word line and three reads of the previous word line) can be used to determine 16 ICI states. A fixed shift on the soft sample can then be applied to each ICI state. For example, a fixed (or predetermined) label can be applied to relabel the ICI compensation threshold. The shift on the soft sample is a remapping operation from the initial soft LLR to different soft LLRs, depending on the shift for each state. If the holding stress was not estimated during QT, the process can proceed to box 1408.
[0161] In box 1408, Pre-Soft Tracking (PST) can be performed. PST can be an algorithm that uses soft labels to determine the optimal threshold. A simple example of a PST algorithm involves computing a histogram of the soft-sampled inputs near a specific threshold and determining the minimum BER threshold by the location of the histogram minimum. When ICI states are available, the minimum value of the histogram for each ICI state can be used to determine the optimal (dynamic) threshold for ICI compensation. PST can be performed before soft decoding of the soft samples. As a result of performing PST, the soft bit decoding labels can be updated. PST can be used to find the optimal threshold after ICI compensation for each target page threshold of each group. That is, the hard decoding decision threshold for each group can be adjusted after ICI compensation using soft sampling and relabeling. PST can be applied for each ICI state.
[0162] Without ICI information, a histogram of the soft-sample VT distribution can be computed using a minimum search and / or model fit (e.g., a Laplace distribution) of the histograms near each target threshold. The optimal threshold can be estimated, and the soft samples can be mapped to the LLR.
[0163] When multi-state ICI information is available, PST tracking can also be applied. For each ICI state, a corresponding optimal threshold can be estimated, and LLR can be assigned to each ICI state to provide a decoder after ICI compensates for the LLR input (e.g., Figure 1 (ECC decoder 112). Alternatively or additionally, a neural network (e.g., neural network 700) may be used to find the optimal threshold.
[0164] In box 1410, soft bit decoding can be performed. For example, a soft decoder (e.g., Figure 1An ECC decoder (112) can be used for decoding. In box 1412, it can be determined whether the soft decoding of the target page was successful. If the soft decoding is successful, the process can end at box 1411. If the soft decoding fails, the process can proceed to box 1414. In one example, if the decoded BER does not meet a threshold (e.g., an accuracy threshold), the process can proceed to box 1414.
[0165] In box 1414, soft bit tags can be updated. For example, LLR mapping can be performed on the soft tags. Additionally or alternatively, dynamic LLR estimation can be performed. For example, a soft decoder ( Figure 1 The EEC decoder 112 can generate a temporary error vector by monitoring or inspecting the results of decoding attempts (e.g., soft decoding attempts in block 1410). The soft decoder can obtain an adjusted LLR map or LLR value based on the temporary error vector generated when a previous soft decoding attempt fails. Dynamic LLR estimation is described in more detail in U.S. Patent No. 10,963,338, filed September 12, 2019, by Avi Steiner and Hanan Weingarten, entitled “System and Method for Decoder Asserted Dynamic Log-Likelihood Ratio Estimation for Non-Volatile Memory,” the entire contents of which are incorporated herein by reference.
[0166] Figure 15 This is a soft-bit decoding read process 1500 that determines the read threshold for ICI compensation based on dynamic ICI compensation used for multiple reads for each ICI state. As discussed herein, while performing multiple reads of the interference line can increase the resolution of the interference information, performing multiple reads may also trigger ICI states. ICI states can be grouped into a small number of groups with similar interference effects, and a single ICI compensation shift can be estimated for each group.
[0167] The maximum number of read operations in the read process 1500 and Figure 14 The maximum number of read operations is the same for read process 1400 (e.g., 40 reads). Although the same number of read operations are performed, read process 1500 is... Figure 14 The read process described in section 1400 is an improvement. Instead of using fixed ICI compensation, dynamic ICI compensation is used to determine the adjusted read threshold for the target page, which improves BER and decoding speed. Figure 14Compared to read process 1400, read process 1500 utilizes dynamic estimation with ICI compensation without any additional latency overhead.
[0168] Box 1502 can be similar to Figure 14 Box 1402. In box 1502, soft sampling is performed and combined with ICI sampling. In one example, at a threshold (e.g., from using...) Figure 6 The read flow 600 for stress condition classification of hard-bit decoding in box 606 performs five-bit resolution soft sampling near the estimated QT threshold. In some configurations, the number of reads performed for soft sampling can be 31.
[0169] Box 1504 can be similar to box 1404. In box 1504, group reads can be performed. Group information reads can be used to distinguish primitives near each target threshold. For example, three state reads can be performed to separate lobe regions of a histogram. In one example, a TLC NAND can use three single state reads to separate four thresholds (e.g., Figure 2 ).
[0170] Box 1506 can be similar to Figure 14 Box 1406 is included in this section. In box 1506, ICI readings and re-marking can be performed. For example, three readings of the next word line and three readings of the previous word line can be used to determine 16 ICI states. In some arrangements, multiple ICI states can be grouped into states with similar interference effects (e.g., ...). Figure 8 (As described in the text). For example, three buffers can be used to group 16 ICI states into five valid states.
[0171] In box 1507, QT can be executed. This is possible if a QT simulation read is saved from the hardware decoding read process (e.g., read process 600, especially...). Figure 6 Once the simulated read threshold in box 606 is determined, QT can be performed. The QT operation can be performed using the previous simulated read threshold (as discussed) and the valid ICI states for each primitive to compute ICI compensation for each valid ICI state. For example, by using the valid ICI states for each bit and the simulated read, a histogram can be computed and the valid per-state ICI compensation threshold can be estimated. The estimated threshold shift can be applied to each valid ICI state. Shifting on soft samples is the operation of remapping the initial soft LLR to different soft LLRs based on the shift for each state.
[0172] If QT is executed in box 1507, then box 1508 can be similar to Figure 14Box 1408. In box 1508, the optimal threshold for each target page threshold for each group can be found after ICI compensation using PST. That is, the hard decoding decision threshold for each group can be adjusted after ICI compensation using soft sampling and relabeling. PST can be applied to each ICI state.
[0173] If box 1507 is not performed (e.g., the simulated read from the hard decode read process is not saved), then box 1508 may differ from box 1408. For example, in box 1508, the effective ICI compensation for each state can be computed using the PST operation. A histogram can be computed using the effective ICI states at each bit and soft samples. The compensation threshold can be estimated using the PST for each effective state (e.g., using a linear estimator or a DNN). Each group and state can be relabeled.
[0174] Box 1510 can be similar to box 1410. In box 1510, soft bit decoding can be performed. For example, a soft decoder (e.g., Figure 1 The ECC decoder 112 can be used for decoding. In box 1512, it can be determined whether the soft decoding of the target page was successful. If the soft decoding is successful, the process can end at box 1511. If the soft decoding fails, the process can proceed to box 1514.
[0175] Box 1514 can be similar to Figure 14 Box 1414. In box 1514, soft labels can be updated. For example, LLR mapping (or dynamic LLR estimation) can be performed on soft labels.
[0176] Figure 16 This is a soft-bit decoding read process 1600 that determines the read threshold for ICI compensation by using dynamic ICI compensation through multiple reads for each ICI state, based on estimates of polynomial coefficients used to calculate ICI compensation. As discussed in this paper, while performing multiple reads of the interference line can increase the resolution of the interference information, performing multiple reads may also trigger ICI states. ICI states can be modeled, thereby determining the dynamic ICI compensation for each state.
[0177] The maximum number of read operations in the 1600 read process and Figure 14 The reading process in step 1400 and Figure 15 The maximum number of reads in read process 1500 is the same (e.g., 40 reads). Although the same number of read operations are performed, read process 1600 is... Figure 14 The read process described in section 1400 is an improvement. Instead of using fixed ICI compensation, dynamic ICI compensation is used to determine the adjusted read threshold for the target page, which improves BER and decoding speed. Figure 14Compared to read process 1400, read process 1600 utilizes dynamic estimation with ICI compensation without any additional latency overhead.
[0178] Read procedure 1600 differs from read procedure 1500 because read procedure 1500 groups ICI states into valid ICI states and determines the valid shift for each ICI state. In contrast, read procedure 1600 does not group ICI states. Therefore, read procedure 1600 is more accurate than read procedure 1500 because read procedure 1600 models the total number of ICI states rather than the average number of valid ICI states.
[0179] Box 1602 can be similar to Figure 15 Box 1502. In box 1602, soft sampling is performed and combined with ICI sampling. In one example, at a threshold (e.g., from...) Figure 6 In box 606, the read process 600 for dynamic ICI compensation used for hard-bit decoding performs five-bit resolution soft sampling near the estimated QT threshold. In some configurations, the number of reads performed for soft sampling can be 31.
[0180] Box 1604 can be similar to Box 1504. In Box 1604, group reads can be performed. Group information reads can be used to distinguish primitives near each target threshold. For example, three state reads can be performed to separate lobe regions of a histogram. In one example, a TLC NAND can use three single state reads to separate four thresholds (e.g., Figure 2 ).
[0181] In box 1606, ICI reads and remarking can be performed. For example, 16 ICI states can be determined using three reads of the next word line and three reads of the previous word line. The remarking operation can map the six reads to four bits of the 16-ICI state using all available ICI information. A histogram of each ICI state can be calculated based on the ICI state of each primitive and soft samples.
[0182] In box 1608, the polynomial coefficient vector can be estimated (e.g., using a model function that maps ICI states to compensated shifts). A histogram (determined from box 1606) can be used to compute the compensated shift based on the ordered ICI states for each ICI state and a threshold.
[0183] In box 1610, tagging can be performed to apply an estimated threshold shift to each ICI state. The tagging operation may result in soft tags determined after ICI compensation.
[0184] In box 1612, PST can be performed. In some arrangements, after ICI compensation, the soft decoding tag can be updated, and the hard decoding decision threshold for each group can be adjusted.
[0185] Box 1614 can be similar to Figure 15 Box 1510. In box 1614, soft bit decoding can be performed. For example, a soft decoder (e.g., Figure 1 The ECC decoder 112 can be used for decoding. In box 1616, it can be determined whether the soft decoding of the target page was successful. If the soft decoding is successful, the process can end at box 1611. If the soft decoding fails, the process can proceed to box 1618.
[0186] Box 1618 can be similar to Figure 15 Box 1514. In box 1618, soft labels can be updated. For example, LLR mapping (or dynamic LLR estimation) can be performed on soft labels.
[0187] The foregoing description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects. Therefore, the claims are not intended to be limited to the aspects shown herein, but are to be consistent with the full scope of the language of the claims, wherein reference to a singular element is not intended to mean “one and only one,” unless specifically stated otherwise, but rather “one or more.” Unless otherwise specifically stated, the term “some” means one or more. All structural and functional equivalents of elements known or to be known hereafter by a person skilled in the art throughout the various aspects described above are expressly incorporated herein by reference and are intended to be covered by the claims. Furthermore, nothing disclosed herein is intended to be exclusive to the public, whether or not such disclosure is expressly recited in the claims. No element of a claim is to be construed as means plus function unless the element is expressly referenced using the phrase “means for…”.
[0188] It should be understood that the specific order or hierarchy of steps in the disclosed process is an example of illustrative method. Based on design preferences, it should be understood that the specific order or hierarchy of steps in the process can be rearranged while remaining within the scope of the previously described steps. The appended method claims present the elements of the various steps in an illustrative order and are not intended to limit one to the specific order or hierarchy presented.
[0189] The prior description of the disclosed embodiments is provided to enable those skilled in the art to make or use the disclosed subject matter. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein can be applied to other embodiments without departing from the spirit or scope of the prior description. Therefore, the prior description is not intended to be limited to the embodiments shown herein, but should be given the broadest scope consistent with the principles and novel features disclosed herein.
[0190] The various examples illustrated and described are provided by way of example only to illustrate the various features of the claims. However, the features shown and described with respect to any given example are not necessarily limited to the associated example and may be used or combined with other examples shown and described. Furthermore, the claims are not intended to be limited to any one example.
[0191] The foregoing method descriptions and process flowcharts are provided as illustrative examples only and are not intended to require or imply that the steps of the various examples must be performed in the presented order. As those skilled in the art will understand, the order of the steps in the foregoing examples can be performed in any order. Words such as “then,” “following,” and “next” are not intended to limit the order of steps; these words are only used to guide the reader through the description of the method. Furthermore, any reference to singular claim elements, such as the use of the articles “a,” “an,” or “the,” should not be construed as limiting that element to the singular.
[0192] The various illustrative logic blocks, modules, circuits, and algorithmic steps described in conjunction with the examples disclosed herein can be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability between hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above in terms of their functionality. Whether this functionality is implemented as hardware or software depends on the specific application and the design constraints imposed on the system as a whole. Those skilled in the art can implement the described functionality in different ways for each specific application, but such implementation decisions should not be construed as departing from the scope of the invention.
[0193] The hardware used to implement the various illustrative logic devices, logic blocks, modules, and circuits described in conjunction with the examples disclosed herein may be implemented or performed by a general-purpose processor, DSP, ASIC, FPGA, or other programmable logic device, discrete gate or transistor logic circuit, discrete hardware component, or any combination thereof designed to perform the functions described herein. The general-purpose processor may be a microprocessor; however, alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors combined with a DSP core, or any other such configuration. Alternatively, some steps or methods may be performed by circuitry specific to a given function.
[0194] In some exemplary examples, the described functionality can be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functionality may be stored as one or more instructions or code on a non-transitory computer-readable storage medium or a non-transitory processor-readable storage medium. The steps of the methods or algorithms disclosed herein may be embodied in a processor-executable software module that may reside on a non-transitory computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable storage medium can be any storage medium accessible by a computer or processor. By way of example and not limitation, this non-transitory computer-readable or processor-readable storage medium may include RAM, ROM, EEPROM, flash memory, CD-ROM or other optical disc storage devices, magnetic disk storage devices or other magnetic storage devices, or any other medium that may be used to store desired program code in the form of instructions or data structures and accessible by a computer. As used herein, disks and optical discs include compact optical discs (CDs), laser optical discs, optical discs, digital versatile optical discs (DVDs), floppy disks, and Blu-ray discs, wherein disks typically reproduce data magnetically, while optical discs use lasers to reproduce data optically. The combinations of the foregoing also fall within the scope of non-transitory computer-readable and processor-readable media. Furthermore, the operation of a method or algorithm may reside as one or any combination or set of code and / or instructions on a non-transitory processor-readable and / or computer-readable storage medium that may be incorporated into a computer program product.
[0195] The prior description of the disclosed examples is provided to enable those skilled in the art to make or use this disclosure. Those skilled in the art will readily understand various modifications to these examples, and that the general principles defined herein may be applied to some examples without departing from the spirit or scope of this disclosure. Therefore, this disclosure is not intended to be limited to the examples shown herein, but should be accorded the maximum scope consistent with the appended claims and the principles and novel features disclosed herein.
Claims
1. A method for dynamically estimating the interference compensation threshold of a memory page, comprising: Based on multiple interference states of the interference source, a histogram and the threshold voltage corresponding to the histogram are calculated, wherein the histogram is a statistical graph that reflects the threshold voltage distribution of the target memory cell obtained by simulated reading; Clustering the multiple interference states to determine the effective number of interference states; and Based on the histogram, a read threshold is estimated to dynamically compensate for the interference noise associated with each interference state in the effective number of interference states of the target row.
2. The method according to claim 1, further comprising: The stress conditions are identified based on the histogram, wherein the stress conditions are at least one of holding stress or transtemperature stress.
3. The method according to claim 2, wherein, Identifying the stress condition based on the histogram includes: applying the histogram to a support vector machine trained using a training dataset, wherein the training dataset includes multiple disturbance states, features, and corresponding stress conditions for the target row, wherein the features include at least one of physical row number, programming cycle count, erase cycle count, or no inter-primary disturbance threshold.
4. The method according to claim 2, wherein, Identifying the stress condition based on the histogram includes: applying the histogram to a machine learning model trained using a training dataset, the training dataset including multiple disturbance states, features, and corresponding stress conditions of the target row, wherein the features include at least one of physical row number, programming cycle count, erase cycle count, or no inter-primary disturbance threshold.
5. The method according to claim 1, wherein, Clustering the plurality of disturbance states to determine the effective number of disturbance states includes using k-means clustering.
6. The method according to claim 1, wherein, Clustering the plurality of interference states to determine the effective number of interference states includes: clustering the plurality of interference states of the interference source based on the similarity effect caused on the target row.
7. The method according to claim 1, wherein, Estimating the read threshold includes using a linear estimator, wherein the vector of the linear estimator contains the read threshold to dynamically compensate for the interference states in the effective number of interference states of the target row, the vector of the linear estimator contains the values of the histogram, and the matrix of the linear estimator contains coefficients.
8. The method according to claim 1, wherein, Estimating the read threshold involves using a neural network trained with a training dataset that includes multiple disturbance states of the target row, a second plurality of disturbance states of a second disturbance source, features, and corresponding read thresholds, wherein the features include at least one of physical row number, programming cycle count, erase cycle count, and no-primary-interference threshold.
9. The method according to claim 1, further comprising: Based on the second multiple interference states of the second interference source, calculate the second histogram and the second corresponding threshold; Based on the second bar chart, identify the second stress condition; The second plurality of interferences are modeled using a polynomial to determine compensation for each of the second plurality of interference states of the second interference source.
10. The method according to claim 9, wherein, The coefficients of the polynomial are estimated using a linear estimator, wherein the vector of the linear estimator contains the read threshold to dynamically compensate for the interference noise of the second plurality of interference states of the second interference source, the vector of the linear estimator contains the values of the second histogram, and the matrix of the linear estimator contains coefficients.
11. The method according to claim 9, wherein, The coefficients of the polynomial are estimated using a neural network trained on a training dataset, which includes a third plurality of disturbance states of a third target row, a third plurality of disturbance states of a third disturbance source, features, and corresponding polynomial coefficients, wherein the features include at least one of stress classification score, physical row number, programming cycle count, erase cycle count, and no inter-primary disturbance threshold.
12. The method according to claim 1, further comprising: Based on the second multiple interference states of the second interference source, calculate the second histogram and the second corresponding threshold; Based on the second bar chart, it is determined that the second interference source is not associated with the second stress condition; as well as A predetermined threshold is applied to compensate for interference noise in the target row.
13. The method according to claim 1, wherein, The read threshold is offset by a unique voltage relative to the ideal read threshold.
14. A memory system, comprising: A memory page with multiple rows; as well as Circuitry for performing operations on the memory page, the circuitry being configured to: Based on multiple interference states of the interference source, a histogram and the threshold voltage corresponding to the histogram are calculated, wherein the histogram is a statistical graph that reflects the threshold voltage distribution of the target memory cell obtained by simulated reading; Clustering the multiple interference states to determine the effective number of interference states; and Based on the histogram, a read threshold is estimated to dynamically compensate for the interference noise associated with each interference state in the effective number of interference states of the target row.
15. The memory system of claim 14, further comprising: Based on the histogram, stress conditions are identified, wherein identifying the stress conditions includes applying the histogram to a support vector machine trained using a training dataset, the training dataset including multiple disturbance states, features and corresponding stress conditions of the target row, wherein the features include at least one of physical row number, programming cycle count, erase cycle count or no inter-primary disturbance threshold.
16. The memory system of claim 14, further comprising: Based on the histogram, stress conditions are identified, wherein identifying the stress conditions includes applying the histogram to a machine learning model trained using a training dataset, the training dataset including multiple disturbance states, features and corresponding stress conditions of the target row, wherein the features include at least one of physical row number, programming cycle count, erase cycle count or no inter-primary disturbance threshold.
17. The memory system according to claim 14, wherein, Clustering the plurality of disturbance states to determine the effective number of disturbance states includes using k-means clustering.
18. The memory system according to claim 14, wherein, Clustering the plurality of interference states to determine the effective number of interference states includes: clustering the plurality of interference states of the interference source based on the similarity effect caused on the target row.
19. The memory system according to claim 14, wherein, Estimating the read threshold includes using a linear estimator, wherein the vector of the linear estimator contains the read threshold to dynamically compensate for the interference states in the effective number of interference states of the target row, the vector of the linear estimator contains the values of the histogram, and the matrix of the linear estimator contains coefficients.
20. A non-transitory processor-readable medium containing processor-readable instructions, such that, when executed by one or more processors, a method for dynamically estimating interference compensation thresholds for memory pages is performed in such a way as follows: Based on multiple interference states of the interference source, a histogram and the corresponding threshold voltage are calculated, wherein... The bar chart is a statistical graph that reflects the threshold voltage distribution of the target memory cell, obtained through simulated reading. Cluster the multiple interference states to determine the effective number of interference states; as well as Based on the histogram, a read threshold is estimated to dynamically compensate for the interference noise associated with each interference state in the effective number of interference states of the target row.
Citation Information
Patent Citations
System and method for high performance sequential read by decoupling of inter-cell interference for NAND flash memories
US10614897B1
System and method for decoder assisted dynamic log-likelihood ratio (LLR) estimation for NAND flash memories
US10963338B1
Decoding scheme for error correction code structure in data storage devices
US11082069B1
NAND flash memory with re-configurable neighbor assisted LLR correction
CN110797075A
System and method for efficient read-flow by inter-cell interference decoupling for NAND flash memories
US10607709B1