Read offset compensation in a read operation of a memory device - Patent Application 20070122997

By detecting charge loss and applying a tailored read offset using pre-calculated mapping tables, the method addresses read errors in flash memory devices, enhancing performance and efficiency.

JP7776511B2Active Publication Date: 2025-11-26YANGTZE MEMORY TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2023539174
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-01-05
Publication Date
2025-11-26
Estimated Expiration
2043-01-05

AI Technical Summary

Technical Problem

Flash memory devices experience read errors due to charge loss, which current offset compensation methods fail to adequately address, leading to inefficiencies and reduced performance.

Method used

Implement a method to detect charge loss in memory blocks and apply a tailored read offset based on the number of programmed memory cells, using pre-calculated mapping tables to compensate for charge loss, updating the offset periodically to maintain efficiency.

Benefits of technology

This approach effectively reduces read errors and improves memory device performance by accurately compensating for charge loss, maintaining read operation efficiency regardless of the cause.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007776511000019
    Figure 0007776511000019
  • Figure 0007776511000020
    Figure 0007776511000020
  • Figure 0007776511000021
    Figure 0007776511000021
Patent Text Reader

Abstract

A memory controller coupled to a memory device including an array of memory cells, each memory cell having two memory cells corresponding to N bits of data. N The memory controller is coupled to the memory device and, upon execution of the instruction, sets the memory cell to one of two states, N being an integer greater than 1, and the array of memory cells is divided into one or more units. N The method is configured to obtain from the memory device a number P of memory cells in one of the plurality of units that are in one or more programmed states of the states, calculate a compensated read voltage having an offset from a default read voltage based on the number P, and provide to the memory device the compensated read voltage for a read operation performed on a selected one of the memory cells in the one of the plurality of units.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to memory devices and their operation. [Background technology]

[0002] Flash memory is a low-cost, high-density, non-volatile solid-state storage medium that can be electrically erased and reprogrammed. Flash memory includes NOR flash memory and NAND flash memory. Flash memory allows various operations such as read, program (write), and erase. For NAND flash memory, erase operations can be performed at the block level, while program or read operations can be performed at the page level. Summary of the Invention [Means for solving the problem]

[0003] In one embodiment, the memory system includes a memory device and a memory controller. The memory device includes an array of memory cells and peripheral circuits. Each memory cell stores two N-bit data. N The memory device is configured to be set to one of the states N, where N is an integer greater than 1, and the array of memory cells is divided into one or more units. The peripheral circuit is coupled to the memory cells and configured to perform a read operation on a selected one of the memory cells in one of the units. The memory controller is coupled to the memory device and configured to control the memory device to perform the read operation using a compensated read voltage having an offset from a default read voltage by sending an instruction to the peripheral circuit. The offset is 2 N It correlates with the number P of memory cells in the unit that are in one or more of the programmed states.

[0004] In some implementations, the offset is associated with a unit and is updated after the number P of memory cells in the unit is changed.

[0005] In some implementations, the offset is updated periodically.

[0006] In some implementations, the update period is less than or equal to the minimum interval between two adjacent programming operations performed on the unit.

[0007] In some implementations, the number P is obtained through a verify read operation configured to count the number P of memory cells in the unit.

[0008] In some implementations, the memory controller N The memory device is configured to select one or more programmed states from the states and determine a verify voltage to be used in the verify read operation based on a default range of threshold voltages corresponding to the selected one or more states, wherein the verify voltage is equal to a minimum threshold voltage of the default range of threshold voltages corresponding to the selected one or more states.

[0009] In some implementations, 2 N The number of the selected one or more programmed states is 1, and the minimum threshold voltage of the default range of threshold voltages corresponding to the selected states is 2 N It is higher than the threshold voltage of a memory cell corresponding to the unselected state among the states.

[0010] In some implementations, the peripheral circuitry includes a word line driver configured to apply a verify voltage to at least some of the memory cells in the unit via the word lines.

[0011] In some implementations, the memory controller includes a digital signal processor configured to count a number P after a verify voltage is applied to at least some of the memory cells in the unit.

[0012] In some implementations, each unit of the one or more units includes one or more pages, and the verify read operation is performed on one or more selected pages of the one or more pages, and the number P is 2 N The average number of memory cells in one or more selected pages that are in one or more of the programmed states.

[0013] In some implementations, the controller includes a processor configured to obtain the offset through a lookup operation by looking up an offset corresponding to the number P and a first mapping table between the offset and the number P.

[0014] In some implementations, the memory controller includes a first register configured to store the first mapping table.

[0015] In some implementations, the memory controller includes a digital signal processor configured to calculate a numerical difference ΔP between the number P and a default number P′, where the default number P′ is 2 N The number of memory cells in a unit that are in one or more of the programmed states.

[0016] In some implementations, the memory controller includes a processor configured to obtain the offset through a lookup operation by looking up an offset corresponding to the number difference ΔP and a second mapping table between the offset and the number difference ΔP.

[0017] In some implementations, the memory controller includes a second register configured to store a second mapping table.

[0018] In some implementations, the memory controller includes a third register configured to store the default number P′.

[0019] In some implementations, the processor is configured to adjust the offset for memory cells in the unit based on the default threshold voltage of the memory cells.

[0020] In some implementations, the adjusted offsets of the memory cells in the unit are positively correlated with the default threshold voltages of the memory cells.

[0021] In some implementations, the memory controller includes a fourth register configured to store the offset obtained by the processor.

[0022] In some implementations, the processor is configured to obtain the offset from the fourth register and calculate the compensated read voltage by adding the offset to the default read voltage.

[0023] In another aspect, a memory controller is coupled to a memory device including an array of memory cells, each memory cell having two bits corresponding to N bits of data. N The memory controller is coupled to the memory device and, upon execution of the instruction, receives from the memory device one or more of the following: N The memory device is configured to obtain a number P of memory cells in one of the plurality of units that are in one or more programmed states of the states, calculate a compensated read voltage having an offset from a default read voltage based on the number P, and provide the compensated read voltage to the memory device for a read operation performed on a selected memory cell in the one of the plurality of units.

[0024] In some implementations, the offset is associated with a unit and is updated after the number P of memory cells in the unit is changed.

[0025] In some implementations, the offset is updated periodically, ie, the update period is less than or equal to the minimum interval between two adjacent programming operations performed on the unit.

[0026] In some implementations, the memory controller includes a processor configured to control the memory device to count the number P of memory cells in the unit by performing a verify read operation.

[0027] In some implementations, the processor N The memory device is configured to select one or more programmed states from the states and determine a verify voltage to be used in the verify read operation based on a default range of threshold voltages corresponding to the selected one or more states, wherein the verify voltage is equal to a minimum threshold voltage of the default range of threshold voltages corresponding to the selected one or more states.

[0028] In some implementations, 2 N The number of the selected one or more programmed states is 1, and the minimum threshold voltage of the default range of threshold voltages corresponding to the selected states is 2 N It is higher than the threshold voltage of a memory cell corresponding to the unselected state among the states.

[0029] In some implementations, the memory controller includes a digital signal processor configured to count a number P after a verify voltage is applied to at least some of the memory cells in the unit.

[0030] In some implementations, each unit of the one or more units includes one or more pages, and the verify read operation is performed on one or more selected pages of the one or more pages, and the number P is 2 N The average number of memory cells in one or more selected pages that are in one or more of the programmed states.

[0031] Some implementations include an offset corresponding to the number P, and a processor configured to obtain the offset through a lookup operation by looking up a first mapping table between the offset and the number P.

[0032] In some implementations, the memory controller includes a first register configured to store the first mapping table.

[0033] In some implementations, the memory controller includes a digital signal processor configured to calculate a numerical difference ΔP between the number P and a default number P′, where the default number P′ is 2 N The number of memory cells in the unit that are in one or more of the programmed states.

[0034] In some implementations, the memory controller includes a processor configured to obtain the offset through a lookup operation by looking up an offset corresponding to the number difference ΔP and a second mapping table between the offset and the number difference ΔP.

[0035] In some implementations, the memory controller includes a second register configured to store a second mapping table.

[0036] In some implementations, the memory controller includes a third register configured to store the default number P′.

[0037] In some implementations, the processor is configured to adjust the offset for memory cells in the unit based on the default threshold voltage of the memory cells.

[0038] In some implementations, the adjusted offsets of the memory cells in the unit are positively correlated with the default threshold voltages of the memory cells.

[0039] In some implementations, the memory controller includes a fourth register configured to store the offset obtained by the processor.

[0040] In some implementations, the processor is configured to obtain the offset from the fourth register and calculate the compensated read voltage by adding the offset to the default read voltage.

[0041] In yet another embodiment, a memory device includes an array of memory cells and peripheral circuitry, each memory cell storing two N-bit data. N The array of memory cells is configured to be set to one of the states, N being an integer greater than 1, and the array of memory cells is divided into one or more units. The peripheral circuitry is coupled to the memory cells and configured to perform a read operation on a selected one of the memory cells in one of the units using a compensated read voltage having an offset from a default read voltage. The offset is 2 N It correlates with the number P of memory cells in the unit that are in one or more of the programmed states.

[0042] In some implementations, the offset is associated with a unit and is updated after the number P of memory cells in the unit is changed.

[0043] In some implementations, the offset is updated periodically.

[0044] In some implementations, the update period is less than or equal to the minimum interval between two adjacent programming operations performed on the unit.

[0045] In some implementations, the number P is obtained through a verify read operation configured to count the number P of memory cells in the unit.

[0046] In some implementations, the peripheral circuitry includes two N and selecting one or more programmed states from the states and determining a verify voltage to be used in the verify read operation based on a default range of threshold voltages corresponding to the selected one or more states, wherein the verify voltage is equal to a minimum threshold voltage of the default range of threshold voltages corresponding to the selected one or more states.

[0047] In some implementations, 2 N The number of the selected one or more programmed states is 1, and the minimum threshold voltage of the default range of threshold voltages corresponding to the selected states is 2 N The state is higher than the threshold voltage of a memory cell corresponding to the unselected state.

[0048] In some implementations, the peripheral circuitry includes a word line driver configured to apply a verify voltage to at least some of the memory cells in the unit via the word lines.

[0049] In some implementations, the peripheral circuitry includes a calculator configured to calculate the number P after a verify voltage is applied to at least some of the memory cells in the unit.

[0050] In some implementations, each unit of the one or more units includes one or more pages, and the verify read operation is performed on one or more selected pages of the one or more pages, and the number P is 2 N The average number of memory cells in one or more selected pages that are in one or more of the programmed states.

[0051] In some implementations, the peripheral circuitry includes control logic configured to obtain the offset through a lookup operation by looking up an offset corresponding to the number P and a first mapping table between the offset and the number P.

[0052] In some implementations, the peripheral circuit includes a first register configured to store the first mapping table.

[0053] In some implementations, the peripheral circuitry includes a calculator configured to calculate a numerical difference ΔP between the number P and a default number P′, where the default number P′ is 2 N The number of memory cells in the unit that are in one or more of the programmed states.

[0054] In some implementations, the control logic is configured to obtain the offset through a lookup operation by looking up an offset corresponding to the number difference ΔP and a second mapping table between the offset and the number difference ΔP.

[0055] In some implementations, the peripheral circuit includes a second register configured to store the second mapping table.

[0056] In some implementations, the peripheral circuitry includes a third register configured to store the default number P'.

[0057] In some implementations, the processor is configured to adjust the offset for memory cells in the unit based on the default threshold voltage of the memory cells.

[0058] In some implementations, the adjusted offsets of the memory cells in the unit are positively correlated with the default threshold voltages of the memory cells.

[0059] In some implementations, the peripheral circuit includes a fourth register configured to store the offset obtained by the processor.

[0060] In some implementations, the control logic is configured to obtain the offset from the fourth register and calculate the compensated read voltage by adding the offset to the default read voltage.

[0061] In yet another embodiment, two N-bit data items are N A method is disclosed for reading a memory device including an array of memory cells configured to be set to one of two states, where N is an integer greater than 1, and the array of memory cells is divided into one or more units, and the method comprises: N The method includes obtaining a number P of memory cells in the unit that are in one or more programmed states of the states, calculating a compensated read voltage having an offset from a default read voltage, and performing a read operation using the compensated read voltage on selected memory cells of the memory cells in the unit.

[0062] In some implementations, after calculating the compensated read voltage, the method further includes updating the offset after the number P of memory cells in the unit is changed.

[0063] In some implementations, the offset is updated periodically.

[0064] In some implementations, the update period is less than or equal to the minimum interval between two adjacent programming operations performed on the unit.

[0065] In some implementations, the number P of memory cells in the unit is calculated by performing a verify read operation.

[0066] In some implementations, performing a verify read operation comprises: Nselecting one or more programmed states from the states and determining a verify voltage to be used in the verify read operation based on a default range of threshold voltages corresponding to the selected one or more states, wherein the verify voltage is equal to a minimum threshold voltage of the default range of threshold voltages corresponding to the selected one or more states.

[0067] In some implementations, 2 N The number of the selected one or more programmed states is 1, and the minimum threshold voltage of the default range of threshold voltages corresponding to the selected states is 2 N It is higher than the threshold voltage of a memory cell corresponding to the unselected state among the states.

[0068] In some implementations, each unit of the one or more units includes one or more pages, and the verify read operation is performed on one or more selected pages of the one or more pages, and the number P is 2 N The average number of memory cells in one or more selected pages that are in one or more of the programmed states.

[0069] In some implementations, calculating the compensated read voltage with the offset includes looking up an offset corresponding to the number P and a first mapping table between the offset and the number P.

[0070] In some implementations, the first mapping table is stored in a first register.

[0071] In some implementations, calculating the compensated read voltage with the offset includes calculating a numerical difference ΔP between the number P and a default number P′, where the default number P′ is 2 N The number of memory cells in the unit that are in one or more of the programmed states.

[0072] In some implementations, calculating the compensated read voltage with the offset further includes looking up an offset corresponding to the number difference ΔP and a second mapping table between the offset and the number difference ΔP.

[0073] In some implementations, the second mapping table is stored in a second register.

[0074] In some implementations, the default number P' is stored in a third register.

[0075] In some implementations, after calculating the compensated read voltage with the offset, the method further includes adjusting the offset based on a default threshold voltage of the memory cell.

[0076] In some implementations, the adjusted offsets of the memory cells in the unit are positively correlated with the default threshold voltages of the memory cells.

[0077] In some implementations, the method further includes storing the adjusted offset in a fourth register.

[0078] In some implementations, determining the compensated read voltage includes obtaining the offset from a fourth register and calculating the compensated read voltage by adding the offset to the default read voltage.

[0079] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate aspects of the present disclosure and, together with the description, further serve to explain the disclosure and to enable one skilled in the art to make and use the disclosure. [Brief explanation of the drawings]

[0080] [Figure 1] FIG. 1 illustrates a trend in threshold voltage distribution of a memory device after charge loss, according to some aspects of the present disclosure. [Figure 2A] FIG. 1 illustrates storage times of blocks in a memory device in accordance with some aspects of the present disclosure. [Figure 2B] FIG. 1 illustrates a relationship between storage time and threshold voltage distribution of a memory device, according to some aspects of the present disclosure. [Figure 3A] FIG. 1 illustrates the length of time incurred by a read operation without error recovery. [Figure 3B] FIG. 1 illustrates the amount of time incurred by a read operation with error recovery. [Figure 3C] FIG. 1 illustrates the amount of time incurred by a read operation in accordance with some aspects of the present disclosure. [Figure 4] FIG. 1 is a block diagram of a system having a memory device in accordance with some aspects of the present disclosure. [Figure 5A] FIG. 1 illustrates a memory card having a memory device in accordance with some aspects of the present disclosure. [Figure 5B] FIG. 1 illustrates a solid-state drive (SSD) having a memory device in accordance with some aspects of the present disclosure. [Figure 6] FIG. 1 is a schematic diagram illustrating a memory device including peripheral circuitry in accordance with some aspects of the present disclosure. [Figure 7] 1 is a block diagram illustrating a memory device including a memory cell array and peripheral circuits in accordance with some aspects of the present disclosure. [Figure 8] FIG. 1 is a block diagram illustrating a memory system including a host, a memory controller, and a memory device, in accordance with some aspects of the present disclosure. [Figure 9A] FIG. 2 is a block diagram illustrating a memory controller coupled to a memory cell array in accordance with some aspects of the present disclosure. [Figure 9B] FIG. 10 is a block diagram illustrating another memory controller coupled to a memory cell array in accordance with some aspects of the present disclosure. [Figure 10A] FIG. 10 illustrates the relationship between verify voltage and threshold voltage distribution without charge loss. [Figure 10B] FIG. 10 illustrates the relationship between verify voltage and threshold voltage distribution with charge loss. [Figure 11] FIG. 10 is a diagram showing a first mapping table. [Figure 12] FIG. 10 shows a plot of programming state offset versus number of memory cells P. [Figure 13] FIG. 10 is a diagram showing a table of offsets for each unit. [Figure 14A] FIG. 10 illustrates the relationship between verify voltage and threshold voltage distribution without charge loss. [Figure 14B] FIG. 10 illustrates the relationship between verify voltage and threshold voltage distribution with charge loss. [Figure 15] 1 is a flowchart of a method for read offset compensation based on a number P of memory cells according to some aspects of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0081] Aspects of the present disclosure will be described with reference to the accompanying drawings.

[0082] In general, terms may be understood, at least in part, from their usage in context. For example, the term "one or more" as used herein may be used in a singular sense to describe any feature, structure, or characteristic, or may be used to describe a combination of features, structures, or characteristics in a plural sense, depending at least in part on the context. Similarly, terms such as "a," "an," or "the" may be understood as conveying a singular or plural, depending at least in part on the context. Furthermore, the term "based on" is not necessarily intended to convey an exclusive set of factors, but instead may allow for the presence of additional factors not necessarily explicitly recited, depending at least in part on the context.

[0083] Memory devices, such as NAND flash memory devices, utilize charge trapping technology to store more than one bit of information in each memory cell in multiple states, increasing storage capacity and reducing cost per bit. In a program operation for a memory device employing charge trapping technology, data can be programmed (written) into multilevel cell (MLC) blocks, such as trip-level cell (TLC) blocks, quad-level cell (QLC) blocks, and penta-level cell (PLC) blocks, significantly improving programming speed. Referring to Figure 1, the threshold voltage distribution of a block decreases due to charge loss, and memory cells in different program states experience different degrees of charge loss. The decrease in threshold voltage distribution causes error bits, and if the charge loss is severe, it can trigger read error recovery. A read offset is provided to compensate for the charge loss. For example, a first offset is added to the default read voltage to compensate for the change in threshold voltage distribution. Because charge loss is closely related to the time period after the data is written, this approach is largely ineffective. 2A and 2B, the durations of various blocks are not statistically maintained but change dynamically, so the read offset cannot compensate for the charge loss of all blocks and cannot avoid read errors.

[0084] FIG. 3A shows a first period t for reading data from a memory page. R and a second period t for transferring data to the memory controller. XER 3B shows a diagram of the length of time taken by a normal read operation, including a first period t R and the second period t XER In addition to this, there is a third period t during which the memory controller and hardware prepare to try again after a read error. 0V The actual time caused by the read operation of the memory block with charge loss is a first period tR , the second period t XER , and the third period t 0V Therefore, the efficiency of the memory system is greatly reduced.

[0085] To address one or more of the aforementioned problems, the present disclosure provides a method for detecting the degree of charge loss in each block, and generating a specially adjusted read offset to compensate for the default read voltage based on the degree of charge loss, thus avoiding read errors, greatly improving the read speed, and reducing the time taken by the read operation of the memory block to within the first period t regardless of the charge loss, as shown in FIG. 3C. R , the second period t XER , and the third time t 0V We introduce a solution where the offset is the sum of . By counting the number of memory cells in a programmed state within each block, the number decreases due to charge loss, allowing us to detect the degree of charge loss. Depending on the detected degree of charge loss, the read voltage can be accurately compensated with a tailored offset. This solution can detect charge loss in each block and accurately compensate the read voltage regardless of the cause of the charge loss, i.e., whether the charge loss is caused by time, temperature, program operations, etc. The relationship between the offset and the number of memory cells in a programmed state is pre-calculated and stored as a mapping table, allowing us to determine the offset immediately after obtaining the number. Because charge loss requires a certain amount of time to accumulate, to balance the efficiency and accuracy of the read operation, the offset is not calculated before each read operation but is updated periodically. The solution disclosed herein reduces the undesirable effects of charge loss at low cost and significantly improves the performance of memory devices and memory systems.

[0086] FIG. 4 illustrates a block diagram of a system 100 having a memory device according to some aspects of the present disclosure. The system 100 may be a mobile phone, a desktop computer, a laptop computer, a tablet, a vehicle computer, a game console, a printer, a positioning device, a wearable electronic device, a smart sensor, a virtual reality (VR) device, an augmented reality (AR) device, or any other suitable electronic device having storage. As illustrated in FIG. 4, the system 100 may include a host 108 and a memory system 102 having one or more memory devices 104 and a memory controller 106. The host 108 may be a processor of the electronic device, such as a central processing unit (CPU), or a system-on-chip (SoC), such as an application processor (AP). The host 108 may be configured to send and receive data from the memory device 104.

[0087] The memory device 104 may be any memory device disclosed in detail in this disclosure. According to some embodiments, the memory controller 106 is coupled to the memory device 104 and the host 108 and configured to control the memory device 104. The memory controller 106 can manage data stored in the memory device 104 and communicate with the host 108. In some implementations, the memory controller 106 is designed to operate in low-duty-cycle environments, such as secure digital (SD) cards, compact flash (CF) cards, universal serial bus (USB) flash drives, or other media used in electronic devices such as personal computers, digital cameras, and mobile phones. In some implementations, the memory controller 106 is designed to operate in high-duty-cycle environments, such as SSDs or embedded multimedia cards (eMMCs) used as data storage in mobile devices such as smartphones, tablets, and laptop computers, and enterprise storage arrays. The memory controller 106 can be configured to control operations of the memory device 104, such as read, erase, and program operations. The memory controller 106 may also be configured to manage various functions related to data stored or to be stored in the memory device 104, including, but not limited to, bad block management, garbage collection, logical to physical address translation, wear leveling, etc. In some implementations, the memory controller 106 is further configured to process error correction codes (ECC) related to data read from or written to the memory device 104. Any other suitable functions may be performed by the memory controller 106 as well, such as formatting the memory device 104.Consistent with certain aspects of the present disclosure, in some implementations, the memory controller 106 is configured to fully or partially perform read offset compensation, as described in more detail below.

[0088] The memory controller 106 can communicate with an external device (e.g., the host 108) according to a particular communication protocol. For example, the memory controller 106 can communicate with the external device via at least one of a variety of interface protocols, such as a USB protocol, an MMC protocol, a Peripheral Component Interconnection (PCI) protocol, a PCI-express (PCI-E) protocol, an Advanced Technology Attachment (ATA) protocol, a serial ATA protocol, a parallel ATA protocol, a Small Computer Small Interface (SCSI) protocol, an Enhanced Small Disk Interface (ESDI) protocol, an Integrated Drive Electronics (IDE) protocol, a Firewire protocol, etc.

[0089] The memory controller 106 and one or more memory devices 104 can be integrated into various types of storage devices, such as a universal flash storage (UFS) package or an eMMC package. That is, the memory system 102 can be implemented and packaged in various types of end electronic products. In one example shown in FIG. 5A , the memory controller 106 and a single memory device 104 can be integrated into a memory card 202. The memory card 202 can include a PC card (PCMCIA, Personal Computer Memory Card International Association), a CF card, a SmartMedia (SM) card, a Memory Stick, a MultiMediaCard (MMC, RS-MMC, MMCmicro), an SD card (SD, miniSD, microSD, SDHC), UFS, etc. The memory card 202 can further include a memory card connector 204 that couples the memory card 202 to a host (e.g., the host 108 of FIG. 1 ). In another example shown in FIG. 5B , the memory controller 106 and multiple memory devices 104 can be integrated into an SSD 206. The SSD 206 may further include an SSD connector 208 that couples the SSD 206 to a host (e.g., the host 108 in FIG. 4). In some implementations, the storage capacity and / or operating speed of the SSD 206 is greater than the storage capacity and / or operating speed of the memory card 202.

[0090] FIG. 6 shows a schematic circuit diagram of a memory device 300 including peripheral circuits according to some embodiments of the present disclosure. The memory device 300 may be an example of the memory device 104 of FIG. 4. The memory device 300 may include a memory cell array 301 and peripheral circuits 302 coupled to the memory cell array 301. The memory cell array 301 may be a NAND flash memory cell array, in which the memory cells 306 are provided in the form of an array of NAND memory strings 308, each extending vertically above a substrate (not shown). In some implementations, each NAND memory string 308 includes multiple memory cells 306 coupled in series and stacked vertically. Each memory cell 306 can hold a continuous analog value, such as a voltage or charge, depending on the number of electrons trapped within the region of the memory cell 306. Each memory cell 306 may be either a floating-gate type memory cell including a floating-gate transistor or a charge-trapping type memory cell including a charge-trapping transistor.

[0091] In some implementations, each memory cell 306 is a single-level cell (SLC) that has two possible memory states and can therefore store one bit of data. For example, a first memory state "0" can correspond to a first voltage range, and a second memory state "1" can correspond to a second voltage range. In some implementations, each memory cell 306 is a multi-level cell (MLC) that can store more than a single bit of data in more than four memory states. For example, an MLC can store two bits per cell, three bits per cell (also called a triple-level cell (TLC)), or four bits per cell (also called a quad-level cell (QLC)). Each MLC can be programmed to assume a range of possible nominal storage values. In one example, if each MLC stores two bits of data, the MLC can be programmed to assume one of three possible programming levels from the erased state by writing one of three possible nominal storage values ​​to the cell. A fourth nominal storage value can be used for the erased state.

[0092] As shown in FIG. 6 , each NAND memory string 308 can include a source select gate (SSG) 310 at its source end and a drain select gate (DSG) 312 at its drain end. The SSG 310 and DSG 312 can be configured to activate a selected NAND memory string 308 (column of the array) during read and program operations. In some implementations, the sources of NAND memory strings 308 in the same block 304 are coupled via the same source line (SL) 314, e.g., a common SL. In other words, according to some implementations, all NAND memory strings 308 in the same block 304 have an array common source (ACS). According to some implementations, the DSG 312 of each NAND memory string 308 is coupled to a respective bit line 316 from which data can be read or written via an output bus (not shown). In some implementations, each NAND memory string 308 is configured to be selected or deselected by applying a select voltage (e.g., higher than the threshold voltage of the transistor comprising the DSG 312) or a non-select voltage (e.g., 0V) to the respective DSG 312 via one or more DSG lines 313, and / or by applying a select voltage (e.g., higher than the threshold voltage of the transistor comprising the SSG 310) or a non-select voltage (e.g., 0V) to the respective SSG 310 via one or more SSG lines 315.

[0093] As shown in FIG. 6 , NAND memory strings 308 can be organized into multiple blocks 304, each of which can have a common source line 314 coupled to, for example, an ACS. In some implementations, each block 304 is the basic data unit for an erase operation. That is, all memory cells 306 in the same block 304 are erased simultaneously. To erase memory cells 306 in a selected block 304, source lines 315 coupled to the selected block 304, as well as unselected blocks 304 in the same plane as the selected block 304, can be biased with an erase voltage (Vs), such as a high positive voltage (e.g., 20 V or greater). It will be appreciated that in some examples, erase operations can be performed at a half-block level, a quarter-block level, or a level having any suitable number of blocks or any suitable portion of a block. Memory cells 306 in adjacent NAND memory strings 308 can be coupled via word lines 318 that select which rows of memory cells 306 are affected by read and program operations. In some implementations, each word line 318 is coupled to a page 320 of memory cells 306, which is the basic data unit of a program operation. The size of one page 320 in bits may be related to the number of NAND memory strings 308 coupled by the word lines 318 in one block 304. For ease of explanation, the memory cells 306 in one page 320 may be coupled to the same word line 318, and the terms “page” and “word line” may be used interchangeably in this disclosure. However, it is understood that in some examples, the memory cells 306 in one page 320 may be coupled to multiple word lines 318. Each word line 318 may include multiple control gates (gate electrodes) for each memory cell 306 in the respective page 320 and gate lines coupling the control gates.

[0094] 6 , program operations are performed at the page / word line level for each block 304, and are therefore consistent with the scope of the present disclosure. Peripheral circuitry 302 may be coupled to memory cell array 301 via bit lines 316, word lines 318, source lines 314, SSG lines 315, and DSG lines 313. Peripheral circuitry 302 may include any suitable analog, digital, and mixed-signal circuitry to facilitate operation of memory cell array 301 by applying and sensing voltage and / or current signals to and from each target memory cell 306 via bit lines 316, word lines 318, source lines 314, SSG lines 315, and DSG lines 313. Peripheral circuitry 302 may include various types of peripheral circuits formed using metal-oxide-semiconductor (MOS) technology. 7 shows peripheral circuits in memory device 104, including page buffer / sense amplifiers 404, column decoders / bit line drivers 406, row decoders / word line drivers 408, voltage generators 410, control logic 412, registers 414, interface 416, and data bus 418. It will be understood that in some examples, additional peripheral circuits not shown in FIG. 7 may be included as well.

[0095] The page buffer / sense amplifiers 404 can be configured to read and program (write) data from and to the memory cell array 301 according to control signals from the control logic 412. In one example, the page buffer / sense amplifiers 404 can store a page of program data (write data) to be programmed into a page 320 of the memory cell array 301. In another example, the page buffer / sense amplifiers 404 can perform a program verify operation to ensure that data has been properly programmed into the memory cells 306 coupled to a selected word line 318. In yet another example, the page buffer / sense amplifiers 404 can sense low-power signals from the bit lines 316 representing data bits stored in the memory cells 306 and amplify small voltage swings to recognizable logic levels in a read operation. The column decoder / bit line driver 406 can be controlled by the control logic 412 and configured to select one or more NAND memory strings 308 by applying bit line voltages generated from a voltage generator 410.

[0096] The row decoder / word line driver 408 can be configured to be controlled by control logic 412, the selected / deselected blocks 304 of the memory cell array 301, and the selected / deselected word lines 318 of the blocks 304. The row decoder / word line driver 408 can be further configured to drive the word lines 318 using word line voltages generated from a voltage generator 410. In some implementations, the row decoder / word line driver 408 can also select / deselect and drive the SSG lines 315 and the DSG lines 313. As described in more detail below, the row decoder / word line driver 408 is configured to apply a read voltage to the selected word line 318 in a read operation for the memory cells 306 coupled to the selected word line 318.

[0097] The voltage generator 410 may be controlled by the control logic 412 and configured to generate word line voltages (e.g., read voltages, program voltages, pass voltages, local voltages, verify voltages, etc.), bit line voltages, and source line voltages supplied to the memory cell array 301. The control logic 412 may be coupled to each of the peripheral circuits mentioned above and configured to control the operation of each peripheral circuit. The registers 415 may be coupled to the control logic 412 and include a status register, a command register, and an address register for storing status information, a command operation code (OP code), and a command address for controlling the operation of each peripheral circuit.

[0098] The interface 416 is coupled to the control logic 412 and may function as a control buffer that buffers and relays control commands received from a host (not shown) to the control logic 412 and relays status information received from the control logic 412 to the host. The interface 416 may also be coupled to the column decoder / bit line drivers 406 via a data bus 418 and may function as a data input / output (I / O) interface and data buffer to buffer and relay data to and from the memory cell array 301.

[0099] 8, in accordance with some implementations of the present disclosure, a memory system 500 is provided that includes a plurality of memory devices 104 and a memory controller 106. Each of the memory devices 104 includes an array of memory cells and peripheral circuits, as shown in FIG. 7. The memory cells in the memory devices 104 are MLC, and each memory cell has 2 memory cells corresponding to one N-bit data. NThe memory cell array is configured to be set to one of the states, where N is an integer greater than 1. The array of memory cells is divided into one or more units. The unit can be a physical unit or a logical unit. For example, the unit can be a page or a block based on the physical connection between the memory cells. The unit can also be a group of memory cells in different pages or blocks that operate with the same write operation. The number of memory cells in each unit can be the same or different depending on the actual storage needs. In one implementation, the number of memory cells in a unit can be one. The unit division method and the number of memory cells in a unit described herein are for illustrative purposes only and should not be construed as limiting the present disclosure. The peripheral circuit is coupled to the memory cells and configured to perform a read operation on a selected memory cell in one of the multiple units.

[0100] The memory controller 106 may be coupled to the memory devices and configured to execute various interface protocols disclosed herein. As shown in FIG. 8 , the memory controller 106 is coupled to one or more memory devices 104 and configured to control cache programming of the memory devices 104. The memory controller 106 may include various interface layers, including, but not limited to, a peripheral component interconnect express (PCIe) layer 510, a non-volatile memory express (NVMe) layer 520, and / or a NAND controller interface (NFI) layer 530, for interfacing with the host 108 and the memory devices 104. The PCIe layer 510 and / or the NVMe layer 520 may be coupled to one or more processing units 540 (e.g., microcontrollers), which may be configured to implement various memory control functions by executing instructions in the form of firmware stored in a read-only memory (ROM) 550, for example. The processing units 540 may be coupled to a dynamic random access memory (DRAM) 570 via a DRAM controller 560. DRAM controller 560 may be configured to store and access data stored in DRAM 570, such as cached new programming data and / or reconstructed current programming data transmitted from memory device 104 to memory controller 106 according to various interface protocols disclosed herein. It is understood that in some examples, DRAM 570 and DRAM controller 560 may be omitted. In other words, memory controller 106 may be a non-DRAM memory controller.

[0101] FIG. 9A shows an implementation of the memory controller 106 coupled to the memory cell array 301 via a back-end interface 628. The memory controller 106 includes a processor 622 and a digital signal processor (DSP) 624 coupled to the back-end interface 628. The processor 622 is configured to control the memory cell array 301 to count the number P of memory cells in a unit by performing a verify read operation. The DSP 624 is configured to count the number P after a verify voltage is applied to at least a portion of the memory cells in the unit. The memory controller 106 further includes a register 626 configured to store a first mapping table and an offset. The memory controller 106 further includes a register 626 configured to store the first mapping table and the offset. The number P calculated by the DSP 624 can be stored in a register, for example, the register 626, and the processor 622 can extract the number P from the register. The first mapping table, the number P, and the offset can be stored in the same register or different registers depending on the size of the register. In the current implementation, the first mapping table is stored in a first register and the offset is stored in a fourth register.

[0102] In one implementation of the present disclosure, the memory controller 106 is configured to control the memory device 104 to perform a read operation using a compensated read voltage having an offset from the default read voltage by sending an instruction to the peripheral circuit. NThe number of states is correlated with the number P of memory cells in the unit that are in one or more programmed states. A TLC unit is used as an example in the current implementation (N=3), with each TLC unit having eight states. Other MLC units, such as QLC units and PLC units, can also be used in this disclosure. For a QLC unit, N=4, the memory cells of the QLC unit have 16 states, with 15 of the 16 states being programmed states. For a PLC unit, N=5, the memory cells of the QLC unit have 32 states, with 31 of the 32 states being programmed states. This disclosure can be applied to any MLC unit, regardless of the number of states the unit has.

[0103] Referring to FIG. 10A, after data is programmed into the memory device, the number of memory cells in each of the eight states is approximately the same. The default read voltages of memory cells in different states are set to the margin between adjacent states. Taking state L7 as an example, the default read voltage of memory cells in state L7 is equal to or less than the minimum threshold voltage of memory cells in state L7 and greater than the maximum threshold voltage of memory cells in state L6. FIG. 10B shows the threshold voltage distribution within the same unit after a certain period of time in the memory device. As the threshold voltage decreases, the number of memory cells in each of the eight states changes slightly, but the default read voltage for a read operation remains at its original level. In a situation where the default read voltage is equal to the minimum threshold voltage of memory cells in state L7, the read operation completes with the distribution shown in FIG. 10A and fails with the distribution shown in FIG. 10B. Referring to FIG. 3B, if the read operation fails, error recovery is triggered to adjust the read voltage. This process may take time because the degree of threshold voltage decrease varies from unit to unit. The greater the threshold voltage deviation from the default read voltage, the longer the error recovery time. A fixed offset does not solve this problem.

[0104] To reduce the time spent on error recovery, it is necessary to accurately compensate for the charge loss of each memory unit. This means that the offset must be tailored specifically to each unit based on the duration of each read operation after the unit is programmed. Because charge loss accumulates and changes over time, the offset is periodically updated to accurately compensate for the charge loss. Charge loss is relatively slow compared to the speed and frequency of read operations. For example, the threshold voltage of a memory cell is not affected until a certain amount of lost charge has accumulated, which may take a month or more. Therefore, it is not necessary to update the offset after every read operation. In this implementation, the offset may be updated periodically after a program operation. In some implementations, the update period is equal to or less than the minimum interval between two adjacent programming operations performed on the unit. For example, the offset is updated monthly after a write operation.

[0105] The number of memory cells in the unit, P, is obtained by a verify read operation using a verify voltage. N One or more programmed states are selected from the states, and a default range of threshold voltages corresponding to the selected one or more states is extracted. The verify voltage must be equal to the minimum threshold voltage of the default range of threshold voltages corresponding to the selected one or more states so that minor charge loss can be detected.

[0106] In this implementation, 2 N The number of the selected one or more programmed states is 1, that is, the minimum threshold voltage of the default range of threshold voltages corresponding to the selected states is 2 N10A and 10B, eight states can be stored in a TLC unit, with L0 being the erased state and L1 through L7 being seven programmed states. The highest level, L7, is selected, and the corresponding L7 verify voltage is equal to the minimum threshold voltage of L7. In a verify read operation, a verify voltage is applied to at least some of the memory cells in the unit via word line 318 driven by word line driver 408. In other MLC units, such as a QLC unit, 16 states can be stored in the QLC unit, with L0 being the erased state and L1 through L15 being 15 programmed states. The highest level, L15, can be selected, and the corresponding L15 verify voltage is equal to the minimum threshold voltage of L15.

[0107] The principle of the verify read operation is to view the MLC unit as a single-level cell (SLC) unit, i.e., memory cells with a threshold voltage higher than the verify voltage are in the first state and data "0" is fed back, while memory cells with a threshold voltage lower than the verify voltage are in the second state and data "1" is fed back. Assuming an ideal situation where there is no charge loss in the memory device, the number of memory cells in the first state should not change over time. However, in reality, when charge in memory cells is detrapped, the threshold voltage distribution shifts to the left, as shown in Figure 1. Therefore, when a verify read operation is performed on a memory device, the number of memory cells in the first state decreases. The more charge is lost, the fewer memory cells there are in the first state. In this way, the degree of charge loss can be accurately detected, and the offset can be specifically adjusted to accurately compensate for the charge loss. The first and second states are distinguished by the verify voltage of the verify read operation. The verify voltage setting allows for two N One or more of the programmed states can be selected. Typically, the highest level memory cell is selected to improve the speed and accuracy of the verify read operation, e.g., level 7 for TLC devices and level 15 for QLC devices. Once the verify voltage is determined, it is fixed and will not be changed for the next verify read operation.

[0108] When the L7 verify voltage is applied to the unit immediately after the program operation is completed, the number of memory cells in state L7, P, is equal to the default number, P'. Because there is a scrambler that randomizes the data pattern during each program operation, the number of memory cells in each of the eight states is close. For example, an 18 kB NAND page has a total of 18 × 1024 × 8 = 147456 bits, and the number of memory cells in each of the eight states is 147456 / 8 = 18432 bits. For a unit containing one page, the number of memory cells in each of the eight states is 18432 × 1 = 18432 bits. For a unit containing four pages, the number of memory cells in each of the eight states is 18432 × 4 = 73728 bits. For a unit containing eight pages, the number of memory cells in each of the eight states is 18432 × 8 = 147456 bits. In this implementation, taking a unit containing 4 pages as an example, immediately after the unit is programmed, the number P of memory cells in state L7 is equal to the default number P' of memory cells in state L7, ie, 73728 bits.

[0109] Over time, more electrons are detrapped on the cells due to charge loss. Therefore, the threshold voltage distribution shifts downward. That is, L7 shifts left, and the number of cells P decreases. After the L7 verify voltage is applied to at least some of the memory cells in the unit, the number P is counted by the memory controller's digital signal processor. As shown in FIG. 10B, as the threshold voltage distribution shifts left, the number P of memory cells in L7 becomes less than the default number P' under the same verify voltage. To address the offset to compensate for charge loss, the processor 622 sends an instruction to the memory cell array 301 via the back-end interface 628 to control the memory cell array 301 to count the number P of memory cells in the L7 state by performing a verify read operation. The verify voltage used in the verify read operation is determined by the processor 622 as described above, i.e., the minimum threshold voltage of memory cells in the L7 state.

[0110] After the verify read operation is completed, DSP 624 counts the number P. In one embodiment, DSP 624 is coupled to the page buffer of memory cell array 301 via back-end interface 628. For memory cells coupled to the same bit line, the number of memory cells and the current generated by each memory cell in the L7 state are stored in register 626, and the total current generated under the verify voltage can be tested by the page buffer, and the number of memory cells in L7 is proportional to the current tested by the page buffer.

[0111] In some implementations, each unit of the one or more units includes one or more pages, and the verify read operation is performed on one or more selected pages of the one or more pages, and the number P is 2 N P is the average number of memory cells in one or more selected pages that are in one or more programmed states. The verify read operation is performed page by page; that is, memory cells driven by the same bit lines are verified in the same verify read operation. For units containing multiple pages, sampling a portion of the pages rather than the entire page can improve verification efficiency. For example, unit 1 contains 1024 pages that are written in the same write operation, and performing verify read operations on all 1024 pages takes time. Because charge loss is strongly related to the period since the last write operation, pages in the same unit have similar charge loss. Therefore, to obtain the number P, it is reasonable to sample several of the 1024 pages. For example, one page was selected to perform the verify read operation. In other implementations, two or more pages can be selected to perform the verify read operation, and to reduce errors, the number P can be obtained by averaging the number of memory cells in the selected states within the selected pages.

[0112] After the number P is confirmed, the processor 622 can obtain the offset through a lookup operation by looking up the offset corresponding to the number P and a first mapping table between the offset and the number P. The first mapping table can be stored in a first register of the registers 626. The first mapping table can also be stored in a static random access memory (SRAM). Figure 11 shows an example of the first mapping table, where M corresponds to the number P. That is, when P is 2 N where M is the number of memory cells in the unit that are in one or more of the programmed states, P is the number of memory cells in the unit, and P is the number of memory cells in the selected page that are in one or more of the programmed states. N Where M is the number of memory cells in one or more of the programmed states, M is the number of memory cells in a selected page of the unit. In this implementation, only some, but not all, of the pages in the unit are selected to perform a verify read operation, and M is 2 N In another implementation, all pages in the unit are selected to perform a verify read operation, and M is 2. N M is the number of memory cells in the unit that are in one or more of the programmed states. In this implementation, M is the number of memory cells in the selected page that are in the L7 state immediately after the selected page is programmed, i.e., 18432. The degree of charge loss is divided into eight stages, D0 to D7, based on the number P counted by the DSP 624. As shown in FIG. 11, if the number P is 18340 and is less than M,

[0113]

number

[0114] If it is larger, the charge loss corresponding to 18340 is small at D0, and there is no need to adjust the default read voltage. The offset must be 0.

[0115]

number

[0116] Smaller

[0117]

number

[0118] If the number P is greater than 14240, the degree of charge loss corresponding to 14240 is D2, and an offset of -120 mV must be applied to the memory cell in the L7 state.

[0119]

number

[0120] Smaller

[0121]

number

[0122] If the number P is greater than 3072, the degree of charge loss corresponding to 3072 is D5, and an offset of -300 mV must be applied to the memory cell in the L7 state.

[0123]

number

[0124] If it is smaller than 1120, the degree of charge loss corresponding to 3072 is D7, which means that the charge loss of the unit is too serious to be compensated for, and the data stored in the unit needs to be rearranged.

[0125] For memory cells with the same degree of charge loss, the higher the threshold voltage of the memory cell, the more severe the threshold drop. Therefore, the offset must be adjusted based on the default threshold voltage of the memory cell, and the adjusted offset of the memory cells in a unit is positively correlated with the default threshold voltage of the memory cell. For example, for a D2 degree of charge loss, the offset of the memory cell in the L7 state should be -120 mV, the offset of the memory cell in the L4 state should be -60 mV, and the offset of the memory cell in the L1 state should be -20 mV. Figure 12 shows the relationship between the offset of memory cells in different states and the degree of charge loss. For other MLC devices, such as QLC devices, the relationship between the offset of memory cells in various states and the degree of charge loss shows a similar trend to that shown in Figure 12.

[0126] After the offset of the unit is obtained, it is stored in an index table as shown in FIG. 13. Because the degree of charge loss in different units is different, the offset of different units is also different. For example, the degree of charge loss in unit 1 is D0, which means that the memory cells in unit 1 have no charge loss and the offset of each memory cell in unit 1 is 0. The degree of charge loss in unit 2 is D5, which means that the memory cells in unit 2 have a serious, but not fatal, charge loss and require an offset. Referring to FIG. 13, for the memory cells in unit 2, the offset of the memory cells in level 1 is −130 mV, the offset of the memory cells in level 3 is −200 mV, and the offset of the memory cells in level 7 is −300 mV. If the degree of charge loss in a unit is D7, this means that the memory cells in the unit have a serious, fatal charge loss and may not be able to read data correctly, like unit 3. Therefore, the data in unit 3 needs to be relocated. The index table in FIG. 13 is stored in a register or SRAM and is periodically updated by performing a verify read operation. Each read operation accesses the index table to obtain the corresponding offset, avoiding read errors, thus greatly improving the efficiency of the memory device since the time required to access the index table is negligible.

[0127] 9B shows another implementation of the present disclosure, in which a numerical difference ΔP between a number P and a default number P′ is calculated. The default number P′ is 2 NThe offset is the number of memory cells in the unit that are in one or more programmed states. As described above, in a unit including four 18 kB NAND pages, the number P of memory cells in state L7 is equal to the default number P' of memory cells in state L7, i.e., 73728 bits. In this embodiment, the processor 622 is configured to obtain the offset through a lookup operation by looking up an offset corresponding to the number difference ΔP and a second mapping table between the offset and the number difference ΔP. The second mapping table is stored in a second register of the registers 626, and the default number P' is stored in a third register of the registers 626. The memory controller 106 further includes a calculator 629 coupled to the processor 622 and the DSP 624. The calculator 629 is configured to calculate the number difference ΔP based on the default number P' stored in the third register and the number P obtained by the DSP 624. The number difference ΔP is then transmitted to the processor 622, which determines an offset based on the number difference ΔP and the second mapping table. The numerical difference ΔP used in this implementation has the same function as the number P in the above implementation, i.e., reflects the charge loss due to a change in the numerical value in a selected state. Although the approaches to calculating the numerical difference ΔP and the number P are different, both can be achieved in multiple ways. The implementations described above are exemplary and should not be construed as limiting the present disclosure.

[0128] 14A and 14B illustrate some implementations of the present disclosure in which four programmed states are selected instead of one to reflect changes in the number P. The verify voltage is set as the minimum threshold voltage of memory cells in all states from L4 to L7, i.e., the minimum threshold voltage of memory cells in state L4. Memory cells in states L4 to L7 are in the first state, and data "0" is fed back when the verify voltage is applied. As the threshold voltage distribution shifts due to charge loss, the number P of memory cells under the verify voltage decreases, as shown in FIG. 14B. Therefore, the offset can be specifically adjusted based on the number P. The verify read operation is the same as that described above and will not be repeated here.

[0129] The memory system of the present disclosure can detect the exact degree of charge loss and specifically adjust the offset to compensate for the charge loss in the read operation, thus avoiding error recovery and significantly reducing the time required for each read operation, thereby significantly improving the performance of the memory system.

[0130] 9A and 9B show different implementations of the memory controller 106 coupled to a memory cell array 301 of memory cells, as shown in FIG. 7. Each memory cell stores two N-bit data. N The array of memory cells is divided into one or more units, where N is an integer greater than one.

[0131] 9A, a memory controller 106 is coupled to a memory device to address the aforementioned problem. The memory controller 106 is coupled to a memory cell array 301, and upon executing an instruction, the memory controller 106 reads two or more data from the memory cell array 301. NThe memory controller 106 is configured to: obtain a number P of memory cells in one of the plurality of units that are in one or more programmed states of the states; calculate a compensated read voltage having an offset from a default read voltage based on the number P; and provide the compensated read voltage to the memory device for a read operation performed on selected memory cells in the one of the plurality of units. Referring to FIG. 9A , the memory controller 106 includes a processor 622 and a DSP 624 coupled to a back-end interface 628. The processor 622 is configured to control the memory cell array 301 to count the number P of memory cells in the unit by performing a verify read operation. The DSP 624 is configured to count the number P after the verify voltage is applied to at least some of the memory cells in the unit. The memory controller 106 further includes a register 626 configured to store a first mapping table and an offset. The first mapping table and the offset can be stored in the same register or different registers depending on the size of the register. In this embodiment, the first mapping table is stored in a first register, and the offset is stored in a fourth register. 9B, the memory controller further includes a calculator 629 coupled to the processor 622 and the DSP 624. The numerical difference ΔP is then sent to the processor 622, which determines an offset based on the numerical difference ΔP and the second mapping table. The numerical difference ΔP used in this implementation has the same function as the number P in the above implementation, that is, it reflects the charge loss due to a change in numerical value in a selected state.

[0132] 9B shows another implementation of the present disclosure, in which a numerical difference ΔP between a number P and a default number P′ is calculated. The default number P′ is 2 NThe offset is the number of memory cells in the unit that are in one or more programmed states. The processor 622 is configured to obtain the offset through a lookup operation by looking up an offset corresponding to the number difference ΔP and a second mapping table between the offset and the number difference ΔP. The second mapping table is stored in a second register of the registers 626, and the default number P' is stored in a third register of the registers 626. The memory controller 106 further includes a calculator 629 coupled to the processor 622 and the DSP 624. The calculator 629 is configured to calculate the number difference ΔP based on the default number P' stored in the third register and the number P obtained by the DSP 624. The number difference ΔP is then sent to the processor 622, which determines the offset based on the number difference ΔP and the second mapping table. The number difference ΔP used in this implementation has the same function as the number P in the above implementation, i.e., it reflects the charge loss due to a change in the number in the selected state. Although the approaches to calculating the number difference ΔP and the number P are different, both can be realized in multiple ways. The above-described implementations are illustrative and should not be construed as limiting the present disclosure.

[0133] In some implementations of the present disclosure, an offset that can accurately compensate for charge loss can be provided by the memory device without the involvement of a memory controller. As shown in Figure 7, the memory device 104 includes an array 301 of memory cells and peripheral circuitry 302. Each memory cell stores two N-bit data. N The array of memory cells 301 is configured to be set to one of N states, where N is an integer greater than 1, and the array of memory cells 301 is divided into one or more units. The peripheral circuit 302 is coupled to the memory cells and configured to perform a read operation on selected ones of the memory cells of the unit using a compensated read voltage having an offset from a default read voltage. The offset is 2 N It correlates with the number P of memory cells in the unit that are in one or more of the programmed states.

[0134] Taking a TLC device as an example, referring to Figures 10A and 10B, eight states can be stored in a TLC unit, with L0 being the erased state and L1 to L7 being seven programmed states. N The number of the selected one or more programmed states is 1, that is, the minimum threshold voltage of the default range of threshold voltages corresponding to the selected states is 2 N The L7 verify voltage is higher than the threshold voltage of memory cells corresponding to the unselected state of the state. The highest level, L7, is selected, and the corresponding L7 verify voltage is equal to the minimum threshold voltage of L7. In a verify read operation, a verify voltage is applied to at least a portion of the memory cells in the unit via word lines 318 driven by word line driver 408. When the L7 verify voltage is applied to the unit immediately after a program operation is completed, the number of memory cells in the L7 state, P, is equal to the default number, P'. Because there is a scrambler that randomizes the data pattern in each program operation, the number of memory cells in each of the eight states is close. For example, an 18kB NAND page has a total of 18 × 1024 × 8 = 147456 bits, and the number of memory cells in each of the eight states is 147456 / 8 = 18432 bits. For a unit containing one page, the number of memory cells in each of the eight states is 18432 × 1 = 18432 bits. For a unit containing four pages, the number of memory cells in each of the eight states is 18432 × 4 = 73728 bits. For a unit containing 8 pages, the number of memory cells in each of the 8 states is 18432×8=147456 bits. In this embodiment, taking a unit containing 4 pages as an example, immediately after the unit is programmed, the number P of memory cells in state L7 is equal to the default number P′ of memory cells in state L7, which is 73728 bits.

[0135] Over time, more electrons are detrapped on the cells due to charge loss. Therefore, the threshold voltage distribution shifts downward, i.e., L7 shifts left, and the number of cells P decreases. After the L7 verify voltage is applied to at least some of the memory cells in the unit, the number P is counted by a calculator in the peripheral circuit 302. As shown in FIG. 10B, as the threshold voltage distribution shifts left, the number P of memory cells in L7 becomes less than the default number P' under the same verify voltage. To address the offset to compensate for charge loss, the control logic 412 sends an instruction to the memory cell array 301 to control the memory cell array 301 to count the number P of memory cells in the L7 state by performing a verify read operation. The verify voltage used in the verify read operation is determined by the control logic 412 as described above, i.e., the minimum threshold voltage of memory cells in the L7 state.

[0136] After the verify read operation is completed, the page buffer counts a number P. For memory cells coupled to the same bit line, the number of memory cells and the current generated by each memory cell in the L7 state are stored in a register 414, and the total current generated under the verify voltage can be tested by the page buffer, and the number of memory cells in L7 is proportional to the current tested by the page buffer. In some implementations, each unit of the one or more units includes one or more pages, and the verify read operation is performed on one or more selected pages of the one or more pages, and the number P is calculated as follows: NP is the average number of memory cells in one or more selected pages that are in one or more programmed states. The verify read operation is performed page by page; that is, memory cells driven by the same bit lines are verified in the same verify read operation. For units containing multiple pages, sampling a portion of the pages rather than the entire page improves verification efficiency. For example, unit 1 contains 1024 pages that are written in the same write operation, and performing verify read operations on all 1024 pages takes time. Because charge loss is strongly related to the period since the last write operation, pages in the same unit have similar charge loss. Therefore, to obtain the number P, it is reasonable to sample several of the 1024 pages. For example, one page is selected to perform the verify read operation. In other implementations, two or more pages can be selected to perform the verify read operation, and the number P can be obtained by averaging the number of memory cells in the selected states in the selected pages to reduce errors.

[0137] After the number P is confirmed, the control logic 412 can obtain the offset through a lookup operation by looking up the offset corresponding to the number P and a first mapping table between the offset and the number P. The first mapping table is stored in a first register of the registers 414. Figure 11 shows an example of the first mapping table, where M is 2 N M is the number of memory cells in one of the multiple units that are in one or more programmed states. In this implementation, M is the number of memory cells in the unit that are in the L7 state immediately after the unit is programmed, i.e., 18432. The degree of charge loss is divided into eight stages, from D0 to D7, based on the number P counted by the page buffer. As shown in Figure 11, when the number P is smaller than M,

[0138]

number

[0139] If the number P is greater than 18340, the charge loss corresponding to 18340 is D0, which is small, so there is no need to adjust the default read voltage and the offset should be 0.

[0140]

number

[0141] Smaller

[0142]

number

[0143] If the number P is greater than 14240, the degree of charge loss corresponding to 14240 is D2, and an offset of -120 mV must be applied to the memory cell in the L7 state.

[0144]

number

[0145] Smaller

[0146]

number

[0147] If the number P is greater than 3072, the degree of charge loss corresponding to 3072 is D5, and an offset of -300 mV must be applied to the memory cell in the L7 state.

[0148]

number

[0149] For the smaller 1120, the degree of charge loss corresponding to 3072 is D7, which means that the charge loss of the unit is too serious to be compensated for, and the data stored in the unit needs to be rearranged.

[0150] For memory cells with the same degree of charge loss, the higher the memory cell's threshold voltage, the more severe the threshold drop. Therefore, the offset must be adjusted based on the memory cell's default threshold voltage, and the adjusted offset of memory cells in a unit is positively correlated with the memory cell's default threshold voltage. For example, for a charge loss of D2, the offset of memory cells in the L7 state should be -120 mV, the offset of memory cells in the L4 state should be -60 mV, and the offset of memory cells in the L1 state should be -20 mV. Figure 12 shows the relationship between the offset and the degree of charge loss for memory cells in various states. For other MLC devices, such as QLC devices, the relationship between the offset and the degree of charge loss for memory cells in various states shows a similar trend to that shown in Figure 12.

[0151] After the offset of the unit is obtained, it is stored in an index table as shown in FIG. 13. Because the degree of charge loss in different units is different, the offset of different units is also different. For example, the degree of charge loss in unit 1 is D0, which means that the memory cells in unit 1 have no charge loss and the offset of each memory cell in unit 1 is 0. The degree of charge loss in unit 2 is D5, which means that the memory cells in unit 2 have experienced a severe, but not fatal, charge loss and require an offset. Referring to FIG. 13, for the memory cells in unit 2, the offset of the memory cells in level 1 is −130 mV, the offset of the memory cells in level 3 is −200 mV, and the offset of the memory cells in level 7 is −300 mV. If the degree of charge loss in a unit is D7, this means that the memory cells in the unit have experienced a severe, fatal charge loss and may not be able to read data correctly, like unit 3. Therefore, the data in unit 3 needs to be relocated. The index table in FIG. 13 is stored in a register or SRAM and is periodically updated by performing a verify read operation. For each read operation, the index table is accessed to obtain the corresponding offset, which avoids read errors, and therefore the time required to access the index table is negligible, greatly improving the efficiency of the memory device.

[0152] In another implementation of the present disclosure, a numerical difference ΔP between the number P and a default number P′ is calculated. The default number P′ is calculated as 2 after the program operation is completed. NThe offset is the number of memory cells in the unit that are in one or more programmed states. As described above, in a unit including four 18 kB NAND pages, the number P of memory cells in state L7 is equal to the default number P' of memory cells in state L7, i.e., 73728 bits. In this implementation, the control logic 412 is configured to obtain the offset through a lookup operation by looking up an offset corresponding to the number difference ΔP and a second mapping table between the offset and the number difference ΔP. The second mapping table is stored in a second register of the registers 414, and the default number P' is stored in a third register of the registers 414. The control logic 412 further includes a calculator configured to calculate the number difference ΔP based on the default number P' stored in the third register and the obtained number P. The number difference ΔP is then used to determine an offset based on the number difference ΔP and the second mapping table. The number difference ΔP used in this implementation has the same function as the number P in the above implementation, i.e., it reflects the charge loss due to a change in value in the selected state. Although the approaches to calculating the difference ΔP and the number P are different, both can be implemented in multiple ways. The implementations described above are exemplary and should not be construed as limiting the present disclosure.

[0153] 15 illustrates a flowchart of a method 1500 for operating a memory device according to some aspects of the present disclosure. The memory device may be any suitable memory device disclosed herein, such as memory device 104. Memory device 104 stores two N-bit data blocks corresponding to one N-bit data block. N15. The method 1500 includes an array 301 of memory cells configured to be set to one of N states, where N is an integer greater than 1, and the array 301 of memory cells is divided into one or more units. The method 1500 may be implemented by peripheral circuits 302, such as row decoder / word line driver 408, voltage generator 410, control logic 412, and registers 414. The method 1500 may be implemented by memory controller 106, such as processor 622, DSP 624, and registers 626. It is understood that the operations shown in the method 1500 may not be exhaustive, and that other operations may similarly be performed before, after, or between any of the illustrated operations. Additionally, some operations may be performed simultaneously or in a different order than that shown in FIG.

[0154] Referring to FIG. 15, method 1500 begins with operation 1502. N The number P of memory cells in the unit that are in one or more programmed states of the states is obtained. Taking a TLC device as an example, referring to Figures 10A and 10B, eight states can be stored in a TLC unit, with L0 being the erased state and L1 to L7 being the seven programmed states. In this implementation, N The number of the selected one or more programmed states is 1, that is, the minimum threshold voltage of the default range of threshold voltages corresponding to the selected states is 2 NThe L7 verify voltage is higher than the threshold voltage of memory cells corresponding to the unselected state of the state. The highest level, L7, is selected, and the corresponding L7 verify voltage is equal to the minimum threshold voltage of L7. In a verify read operation, a verify voltage is applied to at least a portion of the memory cells in the unit via word lines 318 driven by word line driver 408. When the L7 verify voltage is applied to the unit immediately after a program operation is completed, the number of memory cells in the L7 state, P, is equal to the default number, P'. Because there is a scrambler that randomizes the data pattern in each program operation, the number of memory cells in each of the eight states is close. For example, an 18kB NAND page has a total of 18 × 1024 × 8 = 147456 bits, and the number of memory cells in each of the eight states is 147456 / 8 = 18432 bits. For a unit containing one page, the number of memory cells in each of the eight states is 18432 × 1 = 18432 bits. For a unit containing four pages, the number of memory cells in each of the eight states is 18432 × 4 = 73728 bits. For a unit containing 8 pages, the number of memory cells in each of the 8 states is 18432×8=147456 bits. In this implementation, taking a unit containing 4 pages as an example, immediately after the unit is programmed, the number P of memory cells in state L7 is equal to the default number P′ of memory cells in state L7, which is 73728 bits.

[0155] Over time, more electrons are detrapped on the cells due to charge loss. Therefore, the threshold voltage distribution shifts downward, i.e., L7 shifts left, and the cell number P decreases. After the L7 verify voltage is applied to at least some of the memory cells in the unit, the number P is counted. As shown in FIG. 10B, as the threshold voltage distribution shifts left, the number P of memory cells in L7 becomes less than the default number P' under the same verify voltage. To address the offset and compensate for the charge loss, a verify read operation is performed. The verify voltage used in the verify read operation is determined as described above, i.e., the minimum threshold voltage of memory cells in the L7 state.

[0156] When the verify read operation is completed, the page buffer counts a number P. For memory cells coupled to the same bit line, the number of memory cells and the current generated by each memory cell in the L7 state are stored in a register. The total current generated under the verify voltage can be tested in the page buffer, and the number of memory cells in L7 is proportional to the current tested in the page buffer. In some implementations, each unit of the one or more units contains one or more pages, and the verify read operation is performed on one or more selected pages of the one or more pages, and the number P is calculated as 2 N P is the average number of memory cells in one or more selected pages that are in one or more programmed states. The verify read operation is performed page by page; that is, memory cells driven by the same bit lines are verified in the same verify read operation. For units containing multiple pages, sampling a portion of the pages rather than the entire page improves verification efficiency. For example, unit 1 contains 1024 pages that are written in the same write operation, and performing verify read operations on all 1024 pages takes time. Because charge loss is strongly related to the period since the last write operation, pages in the same unit have similar charge loss. Therefore, it is reasonable to sample several of the 1024 pages to obtain the number P. For example, one page was selected to perform the verify read operation. In other implementations, two or more pages can be selected to perform the verify read operation, and the number P can be obtained by averaging the number of memory cells in the selected states in the selected pages to reduce errors.

[0157] The method 1500 proceeds to operation 1504, as shown in FIG. 15, where a compensated read voltage having an offset from the default read voltage is obtained. After the number P is identified, the offset is obtained through a lookup operation by looking up the offset corresponding to the number P and a first mapping table between the offset and the number P. The first mapping table is stored in a first register of the registers. FIG. 11 shows an example of the first mapping table, where M corresponds to the number P. That is, when P is 2 N where M is the number of memory cells in the unit that are in one or more of the programmed states, and P is 2 N Where M is the number of memory cells in a selected page of a unit that are in one or more of the programmed states, M is the number of memory cells in a selected page of a unit. In this implementation, only some, but not all, of the pages in a unit are selected to perform a verify read operation, and M is 2 N M is the number of memory cells in a selected page in one of the multiple units that are in one or more programmed states. In another implementation, all pages in the unit are selected to perform a verify read operation, and M is 2 N M is the number of memory cells in the unit that are in one or more of the programmed states. In this implementation, M is the number of memory cells in the selected page that are in the L7 state immediately after the selected page is programmed, i.e., 18432. The degree of charge loss is divided into eight stages, from D0 to D7, based on the number of P counted by the page buffer. As shown in Figure 11, when the number P is smaller than M,

[0158]

number

[0159] If the number P is greater than 18340, the charge loss corresponding to 18340 is D0, which is small, so there is no need to adjust the default read voltage, and the offset should be 0.

[0160]

number

[0161] Smaller

[0162]

number

[0163] If the number P is greater than 14240, the degree of charge loss corresponding to 14240 is D2, and an offset of -120 mV must be applied to the memory cell in the L7 state.

[0164]

number

[0165] Smaller

[0166]

number

[0167] If the number P is greater than 3072, the degree of charge loss corresponding to 3072 is D5, and an offset of -300 mV must be applied to the memory cell in the L7 state.

[0168]

number

[0169] If it is smaller than 1120, the degree of charge loss corresponding to 3072 is D7, which means that the charge loss of the unit is too serious to be compensated for, and the data stored in the unit needs to be rearranged.

[0170] For memory cells with the same degree of charge loss, the higher the threshold voltage of the memory cell, the more severe the threshold drop. Therefore, the offset must be adjusted based on the default threshold voltage of the memory cell, and the adjusted offset of the memory cells in a unit is positively correlated with the default threshold voltage of the memory cell. For example, for a charge loss of D2, the offset of the memory cell in the L7 state should be -120 mV, the offset of the memory cell in the L4 state should be -60 mV, and the offset of the memory cell in the L1 state should be -20 mV. Figure 12 shows the relationship between the offset and the charge loss degree of memory cells in various states. For other MLC devices, such as QLC devices, the relationship between the offset and the charge loss degree of memory cells in various states shows a similar trend to that shown in Figure 12.

[0171] In another implementation of the present disclosure, a numerical difference ΔP between the number P and a default number P′ is calculated. The default number P′ is calculated as 2 after the program operation is completed. NThe offset is the number of memory cells in the unit that are in one or more programmed states among the states. As described above, in a unit including four 18 kB NAND pages, the number P of memory cells in state L7 is equal to the default number P' of memory cells in state L7, i.e., 73728 bits. In this implementation, the offset is obtained through a lookup operation by looking up an offset corresponding to the number difference ΔP and a second mapping table between the offset and the number difference ΔP. The second mapping table is stored in a second register among the plurality of registers, and the default number P' is stored in a third register among the plurality of registers. Next, the number difference ΔP is calculated based on the default number P' stored in the third register and the obtained number P. Next, the number difference ΔP is used to determine an offset based on the number difference ΔP and the second mapping table. The number difference ΔP used in this implementation has the same function as the number P in the above implementation, i.e., it reflects the charge loss due to a change in the number in the selected state. Although the approaches to calculating the number difference ΔP and the number P are different, both can be realized in multiple ways. The above-described implementations are illustrative and should not be construed as limiting the present disclosure.

[0172] The method 1500 continues with operation 1506, as shown in FIG. 15, where a read operation is performed using the compensated read voltage on selected ones of the memory cells in the unit.

[0173] By treating MLC units as single-level cell (SLC) units and performing a verify read operation to determine the actual charge loss of a particular unit, the present disclosure can determine a customized offset to compensate for the default read voltage of the read operation. Error recovery is avoided, and the time required for each read operation is significantly reduced. The performance of the memory system is significantly improved.

[0174] The foregoing description of specific implementations may be readily modified and / or adapted for various applications. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed implementations, based on the teaching and guidance presented herein.

[0175] The breadth and scope of the present disclosure should not be limited by any of the above-described embodiments, but should be defined only in accordance with the following claims and their equivalents.

[0176] While particular configurations and arrangements are described, it should be understood that this is done for illustrative purposes only. Accordingly, other configurations and arrangements can be used without departing from the scope of the present disclosure. The subject matter described in this disclosure can also be used in a variety of other applications. The functional and structural features described in this disclosure can be combined, adjusted, modified, and rearranged with one another in a manner consistent with the scope of the present disclosure. [Explanation of symbols]

[0177] 100 systems 104 Memory Devices 106 Memory Controller 108 Host 202 Memory Card 204 memory card connector 206 SSD 208 SSD connector 300 memory devices 301 Memory Cell Array 302 Peripheral Circuit 304 Block 306 memory cells 308 NAND memory strings 310 SSG 312 DSG 313 DSG line 314 Source Line 315 SSG Line 316 bit lines 318 Word Line 320 pages Page 404 Buffer / Sense Amplifier 406 Column Decoder / Bit Line Driver 408 Row Decoder / Word Line Driver 410 Voltage Generator 412 Control Logic 414 Register 416 Interface 418 Data Bus 500 Memory System 510 Peripheral Component Interconnect Express (PCIe) layer 520 Non-Volatile Memory Express (NVMe) layer 530 NAND Controller Interface (NFI) Layer 540 Processing Unit 550 read-only memory (ROM) 560 DRAM Controller 570 Dynamic Random Access Memory (DRAM) 622 processor 624 Digital Signal Processor (DSP) 626 Registers 628 Backend Interface 629 Calculator

Claims

1. 1. A memory system comprising: An array of memory cells, each memory cell of the array storing two N-bit data. N an array of memory cells configured to be set to one of states, N being an integer greater than 1, the array of memory cells being divided into one or more units; peripheral circuitry coupled to the memory cells and configured to perform a read operation on selected ones of the memory cells in one of the one or more units; a memory device including: coupled to the memory device; 2. N determining the voltage offset based on a first mapping table including values ​​of a number P of memory cells in the one of the one or more units that are in one or more programmed states of states and voltage offset values ​​corresponding to the values ​​of number P; a memory controller configured to control the memory device to perform the read operation using a compensated read voltage having the voltage offset from a default read voltage by sending an instruction to the peripheral circuit; Equipped with the number P is obtained through a verify read operation configured to count the number P of memory cells in the one or more units; The memory controller: selecting the one or more programmed states from the 2 N states; determining a verify voltage to be used in the verify read operation based on a default range of threshold voltages corresponding to the one or more selected programmed states; It is structured as follows: the verify voltage is equal to a minimum threshold voltage of the default range of threshold voltages corresponding to the selected one or more programmed states; Memory system.

2. 2. The memory system of claim 1, wherein the voltage offset is associated with the one of the one or more units and is updated after the number P of memory cells in the one of the one or more units changes.

3. The memory system of claim 2 , wherein the voltage offset is updated periodically.

4. 2. N the number of said selected one or more programmed states of state is 1; The minimum threshold voltage of the default range of threshold voltages corresponding to the selected one or more programmed states is N higher than the threshold voltage of a memory cell corresponding to the unselected state of the selected state, 10. The memory system of claim 1.

5. 2. The memory system of claim 1, wherein the peripheral circuitry comprises a word line driver configured to apply the verify voltage to at least some of the memory cells in the one of the one or more units via a word line, and the memory controller comprises a digital signal processor configured to count the number P after the verify voltage is applied to at least some of the memory cells in the one of the one or more units.

6. each unit of the one or more units includes one or more pages, the verify read operation is performed on one or more selected pages of the one or more pages, and the number P is N 2. The memory system of claim 1, wherein the average number of memory cells in the one or more selected pages that are in the one or more programmed states of states.

7. The first mapping table comprises: The voltage offset value and the N 10. The memory system of claim 1, further comprising a pre-calculated relationship between a value of the number P of said memory cells in said one or more programmed ones of states and

8. A memory system, an array of memory cells, each memory cell of the array configured to be set to one of 2 N states corresponding to one N-bit data, where N is an integer greater than 1, and the array of memory cells being divided into one or more units; peripheral circuitry coupled to the memory cells and configured to perform a read operation on selected ones of the memory cells in one of the one or more units; a memory device including: coupled to the memory device; determining the voltage offset based on a first mapping table including values ​​of a number P of memory cells in the one of the one or more units that are in one or more programmed states of the 2 N states and voltage offset values ​​corresponding to the values ​​of number P; a memory controller configured to control the memory device to perform the read operation using a compensated read voltage having the voltage offset from a default read voltage by sending an instruction to the peripheral circuit; Equipped with The memory controller is configured to calculate a numerical difference ΔP between the number P and a default number P′, and the default number P′ is equal to or less than the value of the second number P after a program operation is completed. N a number of memory cells in said one of said one or more units that are in said one or more programmed states of said memory system.

9. 9. The memory system of claim 8, wherein the memory controller is configured to determine the voltage offset based on a second mapping table including values ​​of the numerical difference ΔP and values ​​of the voltage offset corresponding to the numerical difference ΔP.

10. 2. The memory system of claim 1, wherein the memory controller is configured to adjust the voltage offset for memory cells in the one of the one or more units based on a default threshold voltage of the memory cell.

11. 11. The memory system of claim 10, wherein the adjusted voltage offset of the memory cells in the one of the one or more units is positively correlated with the default threshold voltage of the memory cells.

12. 12. The memory system of claim 11, wherein the memory controller is configured to obtain the voltage offset from a fourth register and calculate the compensated read voltage by adding the voltage offset to the default read voltage.

13. A memory controller coupled to a memory device having an array of memory cells, each memory cell of the array storing two memory cells corresponding to one N-bit data. N a memory controller coupled to the memory device, the memory controller being set to one of the states, N being an integer greater than 1, the array of memory cells being divided into one or more units, When the command is executed, From the memory device, N obtaining a number P of memory cells in one of the one or more units that are in one or more programmed states of states; 2. N determining the voltage offset corresponding to the number P through a lookup operation based on a first mapping table including a value of a number P of memory cells in the one of the one or more units that are in one or more programmed states of states and a value of a voltage offset corresponding to the value of the number P; calculating a compensated read voltage having the voltage offset from a default read voltage based on the number P; providing the compensated read voltage to the memory device for a read operation performed on a selected one of the memory cells in one of the one or more units; It is structured as follows: a processor configured to control the memory device to count the number P of memory cells in the unit by performing a verify read operation; the processor: selecting one or more programmed states from the 2 N states; determining a verify voltage to be used in the verify read operation based on a default range of threshold voltages corresponding to the one or more selected programmed states; It is structured as follows: the verify voltage is equal to a minimum threshold voltage of the default range of threshold voltages corresponding to the selected one or more programmed states; Memory controller.

14. 14. The memory controller of claim 13, wherein the voltage offset is associated with the one of the one or more units and is updated after the number P of memory cells in the one of the one or more units is changed.

15. 15. The memory controller of claim 14, wherein the first mapping table and the voltage offsets are updated periodically.

16. 2. N the number of said selected one or more programmed states of state is 1; The minimum threshold voltage of the default range of threshold voltages corresponding to the selected one or more programmed states is N higher than the threshold voltage of a memory cell corresponding to the unselected state of the selected state, 14. The memory controller of claim 13.

17. 2 corresponding to one N-bit data N 1. A method for reading a memory device comprising an array of memory cells configured to be set to one of a set of states, wherein N is an integer greater than 1, and the array of memory cells is divided into one or more units, the method comprising: selecting one or more programmed states from the 2 N states; determining a verify voltage to be used in a verify read operation based on a default range of threshold voltages corresponding to the one or more selected programmed states, the verify voltage being equal to a minimum threshold voltage of the default range of threshold voltages corresponding to the one or more selected programmed states; Through the verification read operation, N obtaining a number P of memory cells in one of the one or more units that are in one or more programmed states of states; 2. N determining the voltage offset corresponding to the number P through a lookup operation based on a first mapping table including a value of a number P of memory cells in the one of the one or more units that are in one or more programmed states of states and a value of a voltage offset corresponding to the value of the number P; calculating a compensated read voltage having the voltage offset from a default read voltage; performing a read operation using the compensated read voltage on selected ones of the memory cells in the one or more units; A method comprising:

Citation Information

Patent Citations

  • Reading method for nonvolatile memory device, operation method for memory controller, and operation method for memory system

    JP2012079403A

  • Memory system

    JP2021047695A

  • Memory system and memory controller

    JP2021190150A

  • Nonvolatile memory system and related method of operation

    US20150261467A1

  • System and method for soft decoding without additional reads

    US20220200633A1