Best read reference voltage search of 3D NAND memory
By optimizing read reference voltages through scanning and analyzing bit count differences, the method reduces read latency and improves performance in 3D NAND flash memory systems by minimizing flipped bits during read operations.
Patent Information
- Application Number
- JP2025108386
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-06-26
- Publication Date
- 2025-09-17
- Estimated Expiration
- 2042-12-14
AI Technical Summary
Three-dimensional (3D) NAND flash memory systems experience increased read latency and performance degradation due to numerous read-retry operations with adjusted read reference voltages, which are necessary to accurately decode target pages.
A method for determining optimal read reference voltages by scanning voltage ranges and analyzing bit count differences across multiple read operations to identify the best read offset, using a memory system with a memory controller that adjusts read reference voltages based on these offsets.
Reduces read latency and improves performance by minimizing flipped bits during read operations, enhancing the reliability of 3D NAND flash memory systems.
Smart Images

Figure 2025134966000001_ABST
Abstract
Description
[Technical Field]
[0001] This application relates to three-dimensional (3D) NAND flash memory operating technology. [Background technology]
[0002] Three-dimensional (3D) NAND flash memory employs cutting-edge multi-level cell (MLC) technology to provide high storage density. A read-retry mechanism is used to improve the reliability of 3D NAND flash memory. For example, multiple retry steps with adjusted read reference voltage values may be performed to read a target page multiple times before the encoded page can be accurately decoded. A large number of read-retry operations may significantly increase the read latency and degrade the performance of the memory system. Summary of the Invention [Means for solving the problem]
[0003] An aspect of the present disclosure provides a method for a memory system. The method may include determining a first best read offset of a first best read reference voltage relative to a first default read reference voltage, and determining an anchor read reference voltage, the anchor read reference voltage having the same offset as the first best read offset, relative to a second default read reference voltage. The first default read reference voltage and the second default read reference voltage are set for reading a page from a set of multilevel cells (MLCs) in a semiconductor memory device of the memory system. A first scan range may be determined based on the anchor read reference voltage. An upper limit of the first scan range is the anchor read reference voltage plus an upper limit offset, and a lower limit of the first scan range is the anchor read reference voltage plus a lower limit offset. The upper limit offset and the lower limit offset may be positive or negative voltage values. A second best read offset of a second best read reference voltage relative to the second read reference voltage may be determined based on the first scan range.
[0004] In an embodiment, determining a first best read offset includes determining a second scan range, the second scan range having an upper limit that is the first default read reference voltage plus an upper limit offset and a lower limit that is the first default read reference voltage plus a lower limit offset; scanning the second scan range based on the coarse step voltage by performing a series of first single read operations within the second scan range, each first single read operation corresponding to the first read reference voltage, and each first single read operation generating a bit count of either 1 or 0; The method includes determining, for each first single read operation, a first bit count difference between the bit count of the respective first single read operation and the bit count of the previous first single read operation, if available, and a second bit count difference between the bit count of the respective first single read operation and the bit count of the subsequent first single read operation, if available; and determining a first read reference voltage of a first single read operation in which the sum of the respective first bit count difference and the respective second bit count difference has the smallest value among the series of first single read operations, to be the coarse best read reference voltage.
[0005] In an embodiment, the method may further include a step of determining, when there are two or more first single read operations in which the sum of the respective first bit count differences and the respective second bit count differences has the same value, the first read reference voltage of the first single read operation in which the minimum value of the respective first bit count differences and the respective second bit count differences is the minimum value among the two or more first single read operations, to be the coarse best read reference voltage.
[0006] In an embodiment, the method includes determining a third scan range, the third scan range having an upper limit that is a coarse best read reference voltage plus a coarse step voltage and a lower limit that is the coarse best read reference voltage minus the coarse step voltage; scanning the third scan range based on the fine step voltage by performing a series of second single read operations within the third scan range, each second single read operation corresponding to a second read reference voltage, and each second single read operation generating a bit count of either 1 or 0; and for each second single read operation, if available, determining the bit count of each second single read operation. determining a first bit count difference between the bit count of the previous second single read operation and the bit count of the previous second single read operation, and, if available, a second bit count difference between the bit count of each second single read operation and the bit count of the subsequent second single read operation; and determining a second read reference voltage of the second single read operation in which the sum of the respective first bit count difference and the respective second bit count difference has the smallest value among the series of second single read operations to be the first best read reference voltage, wherein the offset of the first best read reference voltage relative to the first default read reference voltage is the first best read offset.
[0007] In an embodiment, the step of determining a second best read offset of the second best read reference voltage relative to the second default read reference voltage based on the first scan range includes the steps of: scanning the first scan range by performing a series of third single read operations within the first scan range, each third single read operation corresponding to a third read reference voltage, and each third single read operation generating a bit count of either 1 or 0; and for each third single read operation, comparing the bit count of the respective third single read operation with the bit count of a previous third single read operation, if available. and, if available, a second bit count difference between the bit count of each third single read operation and the bit count of a subsequent third single read operation, and determining a third read reference voltage of a third single read operation in which the sum of the respective first bit count difference and the respective second bit count difference has the smallest value among the series of third single read operations to be a second best read reference voltage, wherein an offset of the second best read reference voltage relative to the second default read reference voltage is the second best read offset. In an example, the first single read operation, the second single read operation, and the third single read operation are fractional page read operations.
[0008] In an embodiment, the method may further include a step of collecting a first set of first best read offsets, each first best read offset being a voltage shift of a best read reference voltage from a first default read reference voltage, each first best read offset corresponding to a memory cell condition that causes a set of memory cells to have a respective first best read offset, each of the first set of first best read offsets having a positive value or a negative value; a step of setting a maximum value of the first set of first best read offsets to be an upper limit offset of a second scan range; and a step of setting a minimum value of the first set of first best read offsets to be a lower limit offset of the second scan range.
[0009] In an embodiment, the method may further include the steps of: collecting a second set of second best read offsets, each second best read offset corresponding to the first set of first best read voltages and one of the respective memory cell conditions, each second best read offset being a voltage shift of the best read reference voltage from the second default read reference voltage, and the second set of second best read offsets each having a positive value or a negative value; determining a difference between each pair of the first best read offset and each second best read offset, the difference being equal to the respective second best read offset minus the respective first best read offset; setting a maximum value of the difference between each pair of the first best read offset and each second best read offset to be an upper offset of a first scan range; and setting a minimum value of the difference between each pair of the first best read offset and each second best read offset to be a lower offset of the first scan range.
[0010] In an embodiment, the method may further include, before the step of determining a first best read offset of the first best read reference voltage relative to the first default read reference voltage, determining that an error correction code (ECC) decoding process failed to read the page. In an embodiment, an ECC software decoding process is performed to read the page from the set of MLCs based on the first best read reference voltage and the second best read reference voltage. In an embodiment, the first or second default read reference voltage corresponds to the default read reference voltage of the MLC.
[0011] Aspects of the present disclosure provide a non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform a method.
[0012] An aspect of the present disclosure provides a memory system. The memory system may include a semiconductor memory device and a memory controller operating the semiconductor memory device. The memory controller may include a circuit configured to determine a first best read offset of a first best read reference voltage relative to a first default read reference voltage and to determine an anchor read reference voltage, the anchor read reference voltage having the same offset as the first best read offset, relative to a second default read reference voltage. The first default read reference voltage and the second default read reference voltage are set for reading a page from a set of multilevel cells (MLCs) in a semiconductor memory device in the memory system. A first scan range may be determined based on the anchor read reference voltage. An upper limit of the first scan range is the anchor read reference voltage plus an upper limit offset, and a lower limit of the first scan range is the anchor read reference voltage plus a lower limit offset. The upper limit offset and the lower limit offset may be positive or negative voltage values. A second best read offset of a second best read reference voltage relative to the second read reference voltage may be determined based on the first scan range.
[0013] The present disclosure can be understood from the following detailed description when read in conjunction with the accompanying drawings. It should be noted that, in accordance with standard practice in the industry, various features have not been drawn to scale. In fact, dimensions of various features may be increased or decreased for clarity of discussion. [Brief explanation of the drawings]
[0014] [Figure 1] 1 is a block diagram of a system 100 having a memory device in accordance with some aspects of the present disclosure. [Figure 2A] FIG. 1 is a diagram of an example memory system in accordance with some aspects of the present disclosure. [Figure 2B] FIG. 1 is a diagram of an example memory system in accordance with some aspects of the present disclosure. [Figure 3] 3 is a schematic circuit diagram of a memory device 300 including peripheral circuits, in accordance with some aspects of the present disclosure. [Figure 4] FIG. 2 is a diagram of an example of peripheral circuitry in accordance with some aspects of the present disclosure. [Figure 5] 3A and 3B are schematic diagrams of threshold voltage distributions of memory cells according to embodiments of the present disclosure. [Figure 6] FIG. 10 is a diagram showing a state in which the memory cell threshold voltage distribution is shifted. [Figure 7] FIG. 7 is a diagram of a read process 700 according to an embodiment of the present disclosure. [Figure 8] 8 is a diagram of a search process 800 for best read level based on failed bit count (FBC), according to an embodiment of the present disclosure. [Figure 9] 9 is a diagram of a Bit Count Difference (BCD) table 900 for determining the best read level from a series of read levels (scan points) during the scanning process. [Figure 10A] FIG. 10 is a diagram of a BCD-based best read level search process 1000 according to an embodiment of the present disclosure. [Figure 10B]FIG. 10 is a diagram of a BCD-based best read level search process 1000 according to an embodiment of the present disclosure. [Figure 11A] 11A and 11B are diagrams of two tables 1110 and 1120 to illustrate how to optimize the scan range used for the coarse search in the BCD-based search process 1000 according to an embodiment of the present disclosure. [Figure 11B] 11A-11C are diagrams of two tables 1130 and 1140 for illustrating how to optimize the scan range used for fine search in the BCD-based search process 1000 according to an embodiment of the present disclosure. [Figure 12A] FIG. 10 is a diagram of a search process for the best read level according to an embodiment of the present disclosure. [Figure 12B] FIG. 10 is a diagram of a search process for the best read level according to an embodiment of the present disclosure. [Figure 12C] FIG. 10 is a diagram of a search process for the best read level according to an embodiment of the present disclosure. [Figure 13] FIG. 13 is a diagram of a search process 1300 for best read level according to an embodiment of the present disclosure. [Figure 14A] 10 is a diagram of a performance comparison between a first best read search process and a second best read search process according to an embodiment of the present disclosure. [Figure 14B] 10 is a diagram of a performance comparison between a first best read search process and a second best read search process according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0015] While specific configurations and arrangements are discussed, it should be understood that this is done for illustrative purposes only. As such, other configurations and arrangements can be used without departing from the scope of the present disclosure. The present disclosure can also be used in a variety of other applications. The functional and structural features described in this disclosure can be combined, adjusted, and modified with one another in ways not explicitly depicted in the drawings, so long as such combinations, adjustments, and modifications are within the scope of the present disclosure.
[0016] Generally, terms can be understood, at least in part, from their use in context. For example, the term "one or more," as used herein, can be used to describe a feature, structure, or characteristic in the singular sense, or can be used to describe a combination of features, structures, or characteristics in the plural sense, depending, at least in part, on the context. Similarly, terms such as "one" or "the" can be understood to convey singular use or to convey plural use, depending, at least in part, on the context. Also, the term "based on" can be understood as 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.
[0017] Although the present disclosure is not limited to three-dimensional (3D) NAND memory devices, 3D NAND devices may be used in some examples to illustrate the concepts of the present invention. For example, the techniques described herein may be applied to planar NAND memory devices.
[0018] Aspects of the present disclosure provide methods and techniques for searching for a best read reference voltage (best read level). The best read level can then be used for a read retry or software decoding process. In embodiments, a scanning process can be performed across multiple scan points in a scan voltage range (scan range) corresponding to the read level. A series of single read operations can be performed at each scan point across a word line memory cell string storing one or more pages of data. Each single read operation can output a bit count. A best read level can be determined based on the bit count difference between two consecutive single read operations. Thus, the searching process does not rely on known data stored in the memory cells.
[0019] A scan range optimization method is also provided to accelerate the best level search process. For example, data on a first best read offset relative to a first default read reference voltage and a second best read offset relative to a second default read reference voltage corresponding to different memory cell conditions can be collected. A voltage difference range between the voltage value of the first best read offset and the voltage value of each second best read offset can be determined. The best read level resulting from the first search process at the first read level can be used as an anchor voltage for a second search process at the second read level. A search range for the second search process can be determined based on the voltage difference range around the anchor voltage.
[0020] FIG. 1 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, an in-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 a storage device. As shown in FIG. 1, 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 an electronic device such as a central processing unit (CPU) or a processor of a system-on-chip (SoC) such as an application processor (AP). The host 108 may be configured to transmit data to or receive data from the memory device 104. The memory device 104 may be any memory device disclosed in the present disclosure.
[0021] According to some embodiments, memory controller 106 is coupled to memory device 104 and host 108 and configured to control memory device 104. Memory controller 106 can manage data stored in memory device 104 and communicate with host 108. In some embodiments, memory controller 106 is designed to operate in low duty cycle environments, such as Secure Digital (SD) cards, CompactFlash (CF) cards, Universal Serial Bus (USB) flash drives, or other media for use in electronic devices such as personal computers, digital cameras, and mobile phones. In some embodiments, memory controller 106 is designed to operate in high duty cycle environments, such as solid state drives (SSDs) or embedded multimedia cards (eMMCs) used as data storage devices for portable devices such as smartphones, tablets, and laptop computers, and enterprise storage arrays.
[0022] The memory controller 106 may 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 with respect to data stored in 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 embodiments, the memory controller 106 is further configured to process error correction codes (ECC) with respect to data read from or written to the memory device 104. Any other suitable functions, such as formatting the memory device 104, may also be performed by the memory controller 106. Consistent with some aspects of the present disclosure, in some embodiments, the memory controller 106 is configured to, in whole or in part, implement a best read reference voltage search method as described herein.
[0023] The memory controller 106 may communicate with an external device (e.g., the host 108) according to a specific communication protocol. For example, the memory controller 106 may communicate with an external device through at least one of a variety of interface protocols, such as a USB protocol, an MMC protocol, a Peripheral Component Interconnect (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, and the like.
[0024] The memory controller 106 and one or more memory devices 104 can be incorporated into various types of storage devices and can be included in the same package, such as a Universal Flash Storage (UFS) package or an eMMC package, i.e., the memory system 102 can be implemented and packaged into different types of end electronic products.
[0025] In one example, as shown in FIG. 2A , the memory controller 106 and the single memory device 104 may be integrated into a memory card 202. The memory card 202 may be 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), a UFS card, or the like. The memory card 202 may further include a memory card connector 204 that couples the memory card 202 to a host (e.g., the host 108 in FIG. 1 ). In another example, as shown in FIG. 2B , the memory controller 106 and the multiple memory devices 104 may 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. 1 ). In some embodiments, the storage capacity and / or operating speed of SSD 206 is greater than the storage capacity and / or operating speed of memory card 202 .
[0026] FIG. 3 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 in FIG. 1 . 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 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 embodiments, each NAND memory string 308 includes multiple memory cells 306 connected in series and stacked vertically. Each memory cell 306 can hold a continuous analog value, such as a voltage or charge, that depends on the number of electrons trapped within the memory cell 306. Each memory cell 306 may be either a floating gate memory cell including a floating gate transistor or a charge trapping memory cell including a charge trapping transistor.
[0027] In some embodiments, each memory cell 306 is a single-level cell (SLC) that has two possible memory states and can store one bit of data. For example, a first memory state "0" can correspond to a first range of voltages, and a second memory state "1" can correspond to a second range of voltages. In some embodiments, 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 (also known as a double-level cell (DLC)), three bits per cell (also known as a triple-level cell (TLC)), or four bits per cell (also known as 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 may be used for the erased state.
[0028] As shown in FIG. 3 , each NAND memory string 308 may include a source select gate (SSG) 310 (also referred to as a source select transistor) at its source end and a drain select gate (DSG) 312 (also referred to as a drain select transistor) at its drain end. The SSG 310 and DSG 312 may be configured to activate a selected NAND memory string 308 (column of the array) during read and program operations. In some embodiments, the sources of the NAND memory strings 308 in the same block 304 are coupled through the same source line 314, e.g., a common source line (SL). In other words, all NAND memory strings 308 in the same block 304 have an array common source (ACS) according to some embodiments. The DSG 312 of each NAND memory string 308 is coupled to a respective bit line 316, to which data can be read or written via an output bus (not shown), according to some embodiments. In some embodiments, each NAND memory string 308 is configured to be selected or deselected by applying a select voltage (e.g., above the threshold voltage of the transistor comprising DSG 312) or a deselect voltage (e.g., 0V) to the respective DSG 312 through one or more DSG lines 313, and / or by applying a select voltage (e.g., above the threshold voltage of the transistor comprising SSG 310) or a deselect voltage (e.g., 0V) to the respective SSG 310 through one or more SSG lines 315.
[0029] 3 , the NAND memory strings 308 may be organized into multiple blocks 304, each of which may have a common source line 314, such as coupled to an ACS. In some embodiments, each block 304 is the basic data unit for an erase operation, i.e., all memory cells 306 in the same block 304 are erased simultaneously. To erase memory cells 306 in a selected block 304, the source line 314 coupled to the selected block 304 and unselected blocks 304 in the same plane as the selected block 304 may be biased with an erase voltage (Vers), such as a high positive voltage (e.g., 20 V or greater). In some examples, the erase operation may be performed at a half-block level, a quarter-block level, or a level having any suitable number of blocks or any suitable fraction of a block.
[0030] Memory cells 306 of adjacent NAND memory strings 308 are coupled through word lines 318, which select which row of memory cells 306 is affected by read and program operations. In some embodiments, each word line 318 is coupled to a page 320 of memory cells 306, which is the basic data unit for program operations. The size of a page 320 in bits can be related to the number of NAND memory strings 308 coupled by word lines 318 in a block 304. For ease of description, memory cells 306 in a page 320 can be coupled to the same word line 318, and the terms "page" and "word line" can be used interchangeably in this disclosure. However, in some examples, memory cells 306 in a page 320 can be coupled to two or more word lines 318. Each word line 318 can include multiple control gates (gate electrodes) for each memory cell 306 in the respective page 320 and gate lines connecting the control gates. In some embodiments, each word line 318 can be coupled to multiple pages (or portions of pages) of memory cells based on the control of the SSGs and DSGs.
[0031] The peripheral circuitry 302 may be coupled to the memory cell array 301 via bit lines 316, word lines 318, source lines 314, SSG lines 315, and DSG lines 313. The peripheral circuitry 302 may include any suitable analog, digital, and mixed-signal circuitry for facilitating operation of the memory cell array 301 by applying voltage and / or current signals to and sensing voltage and / or current signals from each targeted memory cell 306 via the bit lines 316, word lines 318, source lines 314, SSG lines 315, and DSG lines 313. The peripheral circuitry 302 may include various types of peripheral circuits formed using metal-oxide-semiconductor (MOS) technology.
[0032] For example, Figure 4 shows several peripheral circuits, including a page buffer / sense amplifier 404, a column decoder / bit line driver 406, a row decoder / word line driver 408, a voltage generator 410, control logic 412, registers 414, an interface 416, and a data bus 418. It will be understood that in some examples, additional peripheral circuits not shown in Figure 4 may also be included.
[0033] The page buffer / sense amplifiers 404 may be configured to read data from and program (write) data into the memory cell array 301 according to control signals from the control logic 412. In one example, the page buffer / sense amplifiers 404 may 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 may 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 may sense low-power signals from the bit lines 316 representing data bits stored in the memory cells 306 and amplify the small voltage swing to a recognizable logic level for a read operation. The column decoder / bit line driver 406 may be configured to be controlled by the control logic 412 and to select one or more NAND memory strings 308 by applying bit line voltages generated by a voltage generator 410.
[0034] The row decoder / word line driver 408 can be configured to be controlled by the control logic 412 and can be configured to select / deselect a block 304 of the memory cell array 301 and to select / deselect a word line 318 of the block 304. The row decoder / word line driver 408 can be further configured to drive the word line 318 using a word line voltage generated from a voltage generator 410. In some embodiments, the row decoder / word line driver 408 can also select / deselect and drive the SSG line 315 and the DSG line 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 during a read operation on the memory cell 306 coupled to the selected word line 318. The read voltage can be either a read voltage corrected with a read offset based on the empty block when the read voltage is applied to the word line 318 in an empty block, or a default read voltage without a read offset based on the empty block when the read voltage is applied to the word line 318 in a full block.
[0035] The voltage generator 410 is controlled by the control logic 412 and can be 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 that are supplied to the memory cell array 301. As described in more detail below, depending on whether a read operation is performed on an empty block or a full block, the control logic 412 can control the voltage generator 410 to provide a default read voltage or a corrected read voltage having an offset from the default read voltage to the row decoder / word line driver 408.
[0036] The control logic 412 can be coupled to each of the peripheral circuits described above and configured to control the operation of each peripheral circuit. The registers 414 can be coupled to the control logic 412 and can include status registers, instruction registers, and address registers for storing status information, instruction operation codes (OP codes), and instruction addresses for controlling the operation of each peripheral circuit. As described in detail below, the status registers of the registers 414 can include one or more registers configured to store free block information, such as having an ADSV list, that indicates free blocks of all the blocks 304 in the memory cell array 301. In some embodiments, the free block information also indicates the last programmed page of each free block.
[0037] 5 shows a schematic diagram of threshold voltage distributions of memory cells according to an embodiment of the present disclosure. The horizontal axis represents the threshold voltage (denoted as Vth) of the memory cells. The vertical axis represents the number of memory cells corresponding to different threshold voltages.
[0038] In FIG. 5, the memory cells may be memory cells in a 3D NAND memory device corresponding to a page, codeword, wordline, memory cell string, block, plane, die, etc. The memory cells are TLC and can be programmed (or erased) to one of eight states (memory states), denoted S0 through S7. Memory cells that are programmed (or erased) to a particular state may have threshold voltages distributed within a voltage range. Thus, in FIG. 5, each state (S0 through S7) is shown as having a threshold voltage distribution. In some examples, these distributions may each be modeled using a Poisson distribution.
[0039] A TLC memory cell can represent three bits depending on which state the memory cell is in. In other words, three bits can be encoded in one of eight states. The mapping between states and each of the three bits can vary in different embodiments. In FIG. 5, the eight states S0-S7 are mapped to 111, 110, 100, 000, 010, 011, 001, and 101, respectively. The least significant bit (LSB) of the eight states can belong to a lower page. The middle significant bit (CSB) of the eight states can belong to a middle page. The most significant bit (MSB) of the eight states can belong to an upper page.
[0040] In FIG. 5, seven default read reference voltages V1 through V7 are positioned between respective memory cell threshold voltage distributions. Ideally, each memory cell threshold voltage distribution would fall within two neighboring default read reference voltages. In other words, it is desirable for a programmed or erased memory cell to remain in its intended state, thereby maintaining the three bits represented. However, memory cell threshold distributions may shift or expand from one distribution to another due to, for example, program / erase (P / E) cycles, retention periods, write or read disturb, temperature changes, etc. Such shifts in memory cell threshold distributions can cause read errors.
[0041] For a particular default read reference voltage, if a memory cell has a threshold voltage below the default read reference voltage, the memory cell is said to be in a lower state. If a memory cell has a threshold voltage above the default read reference voltage, the memory cell is said to be in an upper state. Also, in Figure 5, states to the right of the default read reference voltage are referred to as upper states relative to the default read reference voltage. States to the left of the default read reference voltage are referred to as lower states relative to the default read reference voltage.
[0042] Different MLC technologies may use different sets of default read reference voltages. For example, SLC may use one default read reference voltage to distinguish between two states, DLC may use three default read reference voltages to distinguish between four states, and QLC may use 15 default read reference voltages to distinguish between 16 states.
[0043] Figure 6 illustrates a situation where the memory cell threshold voltage distributions are misaligned. Distributions D1 and D2 (dashed lines) represent ideal memory cell threshold voltage distributions corresponding to two neighboring states (such as S1 and S2 in Figure 5). V default A default read reference voltage 601, denoted as D1, is positioned between distributions D1 and D2. Corresponding to an ideal threshold voltage distribution, the memory cell is in a state that accurately represents or maps to an encoded bit of data programmed into the memory cell. Typically, the state of the memory cell at the time of programming may be the ideal distribution. Stated differently, the memory cell at the time of programming may have an ideal threshold voltage (or state) distribution.
[0044] Corresponding to distributions D1 and D2, when a single read operation is performed using the default read reference voltage 601, the memory cells belonging to distribution D2 will be in a state of, for example, 0 (V default A memory cell belonging to distribution D1, for example, is detected to be in a 1 state (V defaultThe detected bits are detected to be erroneous (indicating that the memory cells have a threshold voltage less than the threshold voltage distribution of the original bit 601), resulting in a 1 bit. These detected bits correspond to the ideal threshold voltage distribution, or state, of the memory cells at the time they are being programmed. Therefore, these bits are referred to as original bits or ideal bits with respect to the corresponding default read reference voltage 601. It should be noted that when the data to be programmed into a set of memory cells is known, the ideal state of the set of memory cells (e.g., states S0-S7 in FIG. 5) can be determined based on the data without a read operation. Thus, original bits can be derived or calculated when the associated data is known. Thus, original bits can also be used to refer to derived bits or calculated bits in the context of determining erroneous bits based on known data.
[0045] A read operation at a single read reference voltage (such as a default or non-default read reference voltage) is referred to as a single read operation, as compared to a page read operation in which multiple read operations occur at multiple different read reference voltages.
[0046] Distributions D1' and D2' represent actual memory cell threshold voltage distributions when the results of ideal distributions D1 and D2 deviate. Under the actual distributions, when a single read operation is performed using the default read reference voltage 601, the threshold voltages belong to distribution D2', but V default The memory cells each having a smaller threshold value are in a 1 state (V default The original 0 bits represented by these memory cells are then detected as having a lower threshold voltage (indicating that the memory cells have a lower threshold voltage), resulting in a 1 bit. Thus, the original 0 bits represented by these memory cells are inverted to become 1. These inverted bits are referred to as upper state inverted bits when the respective memory cells change state from a higher state to a lower state.
[0047] It belongs to distribution D1', but V defaultThe memory cells each having a larger threshold value are in a 0 state (V default The memory cells that are in the lower state will be detected as being in a state 1 (indicating that they have a higher threshold voltage), resulting in a bit 0. Thus, the original bit 1 represented by these memory cells is inverted to be a 0. These inverted bits are referred to as lower-state inverted bits when the respective memory cells change state from a lower state to a higher state. In addition to the memory cells associated with the lower-state or upper-state inverted bits, other memory cells belonging to distributions D1′ and D2′ can still be correctly detected to be in states 1 and 0, respectively.
[0048] During a page read operation (including multiple single read operations), flipped bit errors from multiple single read operations can result in bit errors in the codeword of the page. When the raw bit error rate (RBER) of the codeword reaches a level that exceeds the ECC correction capability, the associated data (e.g., corresponding to the page) cannot be recovered, resulting in ECC decoding failure. To achieve successful ECC correction, it is desirable to reduce the number of flipped bits in a single read operation.
[0049] This disclosure provides techniques and methods for searching for the best read reference voltage to minimize or reduce the number of flipped bits. opt 6 shows an optimum read reference voltage 602 denoted as . The optimum read reference voltage 602 may be a read reference voltage in which the magnitude of flipped bits (including flipping from 1 to 0 or from 0 to 1) is smallest compared to other read reference voltages in the search range 610. A best read reference voltage 603 may be the output of the search process and is close to the optimum read reference voltage 602. The discrepancy between the best read reference voltage 603 and the optimum read reference voltage 602 may be limited to be within the accuracy set in each search process.
[0050] As shown, search range 610 may have an upper offset 612 and a lower offset 611 defined relative to a default read reference voltage 601. Thus, the upper limit of search range 610 may be the default read reference voltage 601 plus the upper offset 612. The lower limit of search range 610 may be the default read reference voltage 601 plus the lower offset 611 (which has a negative value).
[0051] 7 illustrates a read process 700 according to an embodiment of the present disclosure. The process 700 may be performed by the memory controller 106 to read data (such as a page or an upper page) from the 3D NAND memory device 104. The process 700 begins at S711.
[0052] In S711, a read operation may be performed, for example, to read a page from memory device 104. The page may be one of a lower page, a middle page, or an upper page stored in a TLC set. Accordingly, multiple single read operations, each based on a default read reference voltage, may be performed on the memory cells storing the page. For example, corresponding to the mapping between the three bits and the eight states (S0-S7) in FIG. 5, three single read operations at default read reference voltages V2, V4, and V6 may be performed to read the middle page. The bits resulting from each single read operation may be processed to generate raw bits of a codeword belonging to the page.
[0053] In S712, ECC decoding may be performed based on the raw bits of the codeword. Various types of ECC (such as low-density parity codes (LDPC)) may be used in various embodiments. In S713, it is determined whether the ECC decoding is successful. When the RBER of the codeword exceeds the ECC correction capability, the ECC decoding of the page will fail. When the ECC decoding fails, the process 700 proceeds to S714. Otherwise, the process 700 proceeds to S716, where it ends.
[0054] At S714, tuning of the read reference voltage is performed to determine a new read reference voltage. At S715, a read retry is performed based on the new read reference voltage. The operations at S715 may be similar to those at S711, but with an updated read reference voltage. A second iteration of ECC decoding may be performed at S712 based on the codeword raw bits generated from S715. The read retry may be repeated until process 700 reaches S716 or until the available read reference voltages for the read retry are exhausted.
[0055] When a read error occurs (at S713), there may be various methods for read error handling in various embodiments. In some examples, a read-retry table is used for the read-retry process. One or more lists of read reference voltages for read-retry may be provided in the read-retry table, for example, by the manufacturer of each 3D NAND memory device or memory system (such as an SSD). Typically, the read-retry table is constructed based on consideration of a limited number of factors, such as retention period, read disturb, cross temperature, and initial read issues. Therefore, the read-retry table may not be comprehensive for all situations.
[0056] In some embodiments, the best read reference voltage search method disclosed herein may be employed in place of or in addition to using a read-retry table to determine the next read retry reference voltage.
[0057] In some embodiments, after an ECC decoding failure, a best read reference voltage search method is initiated to find the best read reference voltage. The best read reference voltage can then be used as a base voltage for the software LDPC decoding process. In an example of a software LDPC decoding process, multiple read-retry read reference voltages can be set around the best read reference voltage. Thus, multiple read retry operations can be performed in a (step-wise) manner to obtain a log-likelihood ratio (LLR). The LLR can be fed into an ECC engine (which may be separate from or part of the memory controller 106) for software decoding of the codeword.
[0058] 8 illustrates a process 800 for searching for a best read level based on failed bit count (FBC) according to an embodiment of the present disclosure. The term best read level herein refers to a best read reference voltage level. Process 800 can be performed in a laboratory environment where known data is programmed into, for example, a block of memory cells in a memory device.
[0059] Process 800 may include multiple coarse or fine scan processes. Each scan process may cover a search range of the read reference voltage in step voltages. At each scan point (corresponding to a particular read reference voltage level, or read level), the read bit resulting from a single read operation may be compared to the original bit to determine the FBC (the magnitude of the bit flip from 0 to 1 or from 1 to 0). The original bit may be derived based on known data. The read level with the smallest FBC may be determined to be the best read level for each scan process. The search range may be defined relative to each default read reference voltage (also referred to as the default voltage). The best read level may be expressed as a best read offset relative to the default voltage.
[0060] The process 800 may include one step of coarse scanning (S810) and two steps of fine scanning (S820 and S830). TLC is used as an example for explaining the process 800.
[0061] In S810, a coarse scan is performed on the word line cell strings at default voltages. The default voltages may be, for example, V1 through V7, which are all default voltages configured for the TLC. The word line cell strings may include memory cells controlled by word lines. The word line cell strings may store three pages of known data. Thus, the initial state or original bits of the word line cell strings may be calculated based on the known data. The block under test may include multiple layers of word lines.
[0062] A scan range and step voltage may be provided for each coarse scan. For example, a lower offset of -300 mV and an upper offset of 300 mV may be provided for each default voltage. Thus, the scan range may be {-300 mV, +300 mV} with the respective default voltage at the midpoint. For example, a coarse step voltage of 100 mV may be provided. Thus, seven scan points are provided: -300 mV, -200 mV, -100 mV, 0, 100 mV, 200 mV, and 300 mV.
[0063] For each coarse scan, the read level at the scan point with the smallest FBC may be determined to be the best read level. In some examples, for each scan point, the read bits from the word line memory cell string may include bits of multiple code words. The FBC for each code word may be determined. The maximum FBC for each code word may be determined for each scan point or read level. Thus, the read level with the smallest maximum FBC for each code word is determined as the best read level for each coarse scan (referred to as the coarse best read level). Thus, the best read offset (referred to as the coarse best read offset) may be determined for each coarse scan.
[0064] If multiple read levels in a coarse scan have the same maximum FBC per codeword, the total FBC of all codewords at each read level is considered. The read level with the smallest total FBC is determined to be the best read level. If multiple read levels in a coarse scan have the same minimum total FBC, the read level with the smaller offset is determined to be the best read level.
[0065] In S820, a first fine scan is performed on the word line memory cell strings in the block at a coarse best read level. For example, seven first fine scans can be performed at seven coarse best read levels for each word line memory cell string. Each first fine scan can have a scan range {-200 ms, 200 ms} with a respective coarse best read level in the middle. Assuming the offset of the coarse best read level from S810 is -100 ms, when lower and upper offsets for the respective default voltages are used to define the scan range, the scan range becomes {-300 ms, 100 ms}. For example, each first fine scan can be provided with a fine step voltage of 20 ms, which is smaller than the coarse step voltage of 100 mV. In a similar manner to S810, a fine best read level and a corresponding fine best read offset can be found for each first fine scan based on the FBC.
[0066] In S830, a second fine scan is performed on the word line memory cell strings in the block at a fine best read level. For example, seven second fine scans can be performed at seven fine best read levels for each word line memory cell string. Each second fine scan can have a scan range of {-10 ms, 10 ms} with a fine best read level in the middle. Assuming the offset of the fine best read level from S820 is -120 ms, when lower and upper offsets for the respective default voltages are used to define the scan range, the scan range becomes {-130 ms, -110 ms}. For example, each second fine scan can be provided with a fine step voltage of 10 ms (or less) that is less than the 20 mV fine step voltage. In a similar manner to S810 or S820, a final fine best read level and a corresponding final fine best read offset can be found for each second fine scan based on the FBC. Finally, for each word line memory cell string of a block of memory cells, the best read level is obtained corresponding to each of the seven default voltages. In various examples, the results can be used as a basis for various evaluations or experiments. For example, the results can be used to evaluate the performance of an LDPC algorithm.
[0067] The FBC-based method described herein can typically be used for a test or experimental environment. The FBC-based method relies on known data being programmed into memory cells. For a real memory system, the data stored in the memory device may not be known. The FBC-based method can scan all word line memory cell strings. For a real memory system, the best level of searching is performed on one word line memory cell string in response to a failed page read operation for the word line memory cell string. In the FBC-based method, scanning word line memory cell strings may be too time consuming and therefore not suitable for a real memory system.
[0068] In some embodiments, a bit count difference (BCD) based best read level search method is used. In the BCD based method, the bit count difference between adjacent read levels (scan points) is calculated and used to determine the best read level. Therefore, the BCD based method does not rely on known data programmed into the memory device, which may not be available in the actual memory system.
[0069] Also, the BCD-based method is used to find the best read level for reading a page. Therefore, a scan operation is performed at a limited number of default voltages instead of all default voltages of the word line memory cell strings. For example, to read the middle page, a scan operation can be performed around three default voltages (e.g., V2, V4, and V6) to find three best read levels. Also, a scan operation is not performed on all word line memory cell strings in the entire block.
[0070] In some examples, in the BCD-based method, for each read level (scan point), a partial page read is used instead of a full page read during a single read operation. For example, a page stored in a word line memory cell string may be 16 kbytes long. A page may include four code words, each 4 kbytes long. Therefore, the BCD-based method can read from memory cells corresponding to the code words instead of pages. The number of bits resulting from a single read operation can be reduced. Therefore, the delay in data transmission from the memory device to the memory controller can be reduced.
[0071] In some examples, the scan range used in the BCD-based method is optimized based on the worst-case observed read level deviation. Therefore, scan time can be reduced. In some examples, the BCD-based method can use one coarse scan and one fine scan. The scan process is simplified compared to one coarse scan and two fine scans in the search process 800. In some examples, hardware support is available to calculate the bit count for BCD. Compared to FBC calculations performed using software, the time to calculate the bit count can be reduced.
[0072] FIG. 9 shows a BCD table 900 for determining the best read level from a series of read levels (scan points) during a scan process. The scan process can be part of a BCD-based best read level search process. The first column of the BCD table 900 contains the series of scan points covered in the scan process. The scan points are represented by scan point offsets (or read level offsets). A step voltage of 10 mV is used. At each scan point, a single read operation can be performed. A bit can be read from a set of memory cells belonging to a word line memory cell string. For example, memory cells with a threshold voltage lower than the scan point read level are read as 1. Memory cells with a threshold voltage higher than the scan point read level are read as 0.
[0073] Given the current scan point, two BCDs can be calculated. The first BCD, denoted BCD-L, can be the BCD between the current scan point and the scan point adjacent to it on the left. The second BCD, denoted BCD-R, can be the BCD between the current scan point and the scan point adjacent to it on the right. The left or right location can be relative to the search range along the threshold voltage axis. Typically, a larger read level is to the right of a smaller read level. For read levels near the left or right boundary of the search range, the left or right scan point is unavailable. The respective BCD-L or BCD-R is not calculated and is unavailable. Typically, read levels near the boundary of the search range can be excluded from candidate scan points for selecting the best read level.
[0074] Given the above BCD-L and BCD-R values corresponding to each scan point, the best reading level can be selected from a series of scan points. First, the reading level at the scan point with the smallest sum of BCD-L and BCD-R (denoted as Sum(BCD-L, BCD-R)) can be determined to be the best reading level. If multiple scan points have the same sum of BCD-L and BCD-R, the reading level at the scan point with the smallest minimum value of BCD-L or BCD-R (denoted as Min(BCD-L, BCD-R)) can be determined to be the best reading level among these multiple scan points. If there are still multiple scan points with the same minimum value of BCD-L or BCD-R, the scan point closest to the midpoint of the scan range can be determined to be the best scan point with the best reading level. Corresponding to the best reading level, the corresponding scan point offset can be determined to be the best reading offset for each default voltage.
[0075] 10A-10B illustrate a BCD-based best read level search process 1000 according to an embodiment of the present disclosure. The BCD-based search process 1000 may be implemented to find the best read reference voltage for a page read operation. The process 1000 may include two parts: a coarse search part from S1002 to S1016 and a fine search part from S1024 to S1036.
[0076] In S1002, ECC decoding fails a page read operation. For example, raw codeword bits of a target page are obtained based on data read from a memory device by one or more single read operations. LDPC hardware decoding based on the raw codeword bits may fail due to a high RBER. A BCD-based search process 1000 may then be initiated to find the best read level for a read retry or software LDPC decoding of the target page.
[0077] In S1004, a read level corresponding to a default voltage may be initialized. The number of read levels to be covered may be determined depending on which MLC technology the target page uses, what type the target page is (e.g., lower page or upper page), and how the bits are encoded by the memory cell state. For example, for SLC, a single read operation at a read level may be performed. For DLC, one read level may be covered to read the lower page, and two read levels may be covered to read the upper page. For TLC, two read levels, three read levels, and two read levels may be covered to read the lower page, middle page, and upper page, respectively. The coarse search and fine search cover the read levels determined in S1004.
[0078] In S1006, it is determined whether the next reading level is available. If all reading levels determined in S1004 have been completed and a next reading level is not available, process 1000 proceeds to S1024 and enters the fine search portion. Otherwise, process 1000 proceeds to S1008 with the selection of a reading level from the reading levels determined in S1004. The reading levels can be selected in any order.
[0079] In S1008, scan point offsets may be initialized corresponding to the selected read level. For example, the number and positions (voltage values) of each scan point may be determined based on the scan range (or scan voltage range) and the step voltage. The scan points may be indicated in the form of scan point offsets for each default voltage corresponding to the selected read level. For example, upper and lower limit offsets for the default voltage may be provided to indicate the scan range.
[0080] In S1010, it is determined whether the next scan point offset is available. If all scan point offsets determined in S1008 have been completed and the next scan point offset is not available, process 1000 proceeds to S1016. Otherwise, process 1000 proceeds to S1012. In S1012, a scan point offset is selected from the scan point offsets determined in S1008. The scan point offsets can be selected in any order.
[0081] In S1014, a single read operation may be performed at the scan point of the selected scan point offset to the memory cells storing the target page. The bits resulting from the single read operation may be stored in memory. If the read bits of neighboring scan points are available in memory, the BCD-L or BCD-R between the current scan point and the neighboring scan point may be calculated and stored in a BCD table, such as the table shown in FIG. 9. Process 1000 may return to S1010 to process the next scan point offset, if available.
[0082] In S1016, at the current stage, the BCD-L and BCD-R for each scanning point offset are entered into a BCD table corresponding to the current reading level selected in S1006. Based on the BCD table, a coarse best reading offset can be determined for the current reading level. The coarse best reading offset can be used as the center scanning point offset for the fine search corresponding to the current reading level. Process 1000 can proceed to S1006 to process the next reading level, if available.
[0083] In S1024, the fine search portion of process 1000 begins based on the coarse best read offset for each read level. Specifically, in S1024, read levels corresponding to default voltages are initialized in a manner similar to S1004. The same set of read levels may be determined. In S1026, it may be determined whether the next read level is available. When all read levels have been exhausted, process 1000 may proceed to S1038, where it ends. Otherwise, process 1000 proceeds to S1028 with the selected read level.
[0084] In S1028, a scanning point offset for the fine search corresponding to the selected reading level may be initialized. For example, the number and position of the scanning point offset for the fine search may be determined based on the fine scan range and the fine step voltage. For example, the fine scan range may use each coarse best reading level as a center point. Upper and lower limits may be set for the center location.
[0085] In S1030, it may be determined whether the next scan point offset is available. If all scan point offsets have been exhausted, process 1000 proceeds to S1036. Otherwise, process 1000 proceeds to S1032. In S1032, the next scan point offset is selected. In S1034, a single read operation is performed at the selected scan point offset to read bits from memory cells storing the target page. The BCD-L or BCD-R of the current scan point offset or a neighboring scan point offset may be calculated to fill the BCD table. Process 1000 may return to S1030 to process the next available scan point offset.
[0086] In S1036, the BCD table corresponding to the current read level is filled in. A fine best read offset can be determined for the current read level. Process 1000 can proceed to S1026 to process the next available read level. When process 1000 ends in S1038, a best read level corresponding to the fine best read offset is available for each read level. In some examples, the obtained best read level can subsequently be used in the LDPC software decoding process.
[0087] FIG. 11A shows two tables 1110 and 1120 for illustrating how to optimize the scan range used for the coarse search in the BCD-based search process 1000 according to an embodiment of the present disclosure. In the example of FIG. 11A , an optimized scan range (referred to as an optimized coarse scan range) for the coarse search at a particular read level corresponding to each default voltage can be determined based on a set of data provided in table 1110. Table 1110 includes seven columns. Each column corresponds to one of seven read levels (or seven default voltages) for TLC. The seven read levels are denoted RD1 through RD7. Table 1110 includes multiple rows.
[0088] Each row contains a set of best read offsets corresponding to one of seven read levels, RD1 through RD7. Each best read offset has an offset value (in mV) relative to a respective default voltage (such as V1 through V7 in FIG. 5). For example, for read level RD1, the first best read offset is −130 mV and the last best read offset is −60 mV relative to the default voltage V1.
[0089] Each row of best read offsets can correspond to a memory cell condition that causes a set of memory cells to have or exhibit a respective best read offset. For example, a condition can be a combination of multiple factors. Factors can include workload type, environmental temperature, retention period, read disturb, crossover temperature, initial read issues, fabrication process, etc. Different conditions can correspond to different factor values. For example, a set of memory cells can be subjected to conditions in a laboratory environment. Best read offsets can be measured from these memory cells. In some embodiments, the conditions under consideration can be a set of extreme conditions associated with a worst-case situation. Thus, some of the best read offsets can each represent the maximum change in best read offset under extreme conditions.
[0090] Table 1120 shows an optimized coarse search range derived based on the best read offsets collected in table 1110. As shown, for each read level (RD1, RD2, and RD3), the minimum value in each column of best read offsets is used as the lower offset limit, while the maximum value in each column of best read offsets is used as the upper offset limit. The lower offset limit and the upper offset limit can together define an optimized coarse search range for each read level for each default voltage. For example, the lower boundary voltage of the optimized coarse search range is the default voltage plus the lower offset limit. The upper boundary voltage of the optimized coarse search range is the default voltage plus the upper offset limit.
[0091] In table 1120, the offsets in the first, second, and third columns can be used for coarse searches at the respective read levels RD1, RD2, and RD3, respectively. Other upper and lower offsets for other read levels can be similarly derived, if desired.
[0092] FIG. 11B shows two tables 1130 and 1140 for illustrating how to optimize the scan range used for the fine search in the BCD-based search process 1000 according to an embodiment of the present disclosure. Table 1130 includes an equal number of rows of values as the best read offset rows in table 1110. The first column of table 1130 includes a list of the best read offset differences between columns RD2 and RD4. Each such best read offset difference may be the difference between two best offset values in the same row in table 1110 but in different columns RD2 and RD4. For example, considering the last row of table 1110, the difference between the value in column RD2 and the value in column RD4 is −40 mV−(−30) mV=−10 mV (subtracting the value of the lower level from the value of the higher read level). Similarly, the second column of table 1130 includes a list of the best read offset differences between columns RD4 and RD6.
[0093] Table 1140 shows optimized fine search ranges for read levels RD4 and RD6. The optimized search ranges can be derived based on the best read offset differences in table 1130. Specifically, for the fine search range of RD4 in table 1140, a lower offset of −80 mV can be the minimum of the best read offset differences listed in the first column of table 1130, and an upper offset of 50 mV can be the maximum of the best read offset differences listed in the first column of table 1130. These lower and upper offsets can be offsets relative to the anchor voltage when used in the fine search process. For example, the anchor voltage for RD4 can have an anchor offset relative to the default voltage for RD4. The anchor offset can be equal to the fine best read offset of read level RD2. The fine best read offset of RD2 can be found, for example, in the optimized coarse search range {−190 mV, 70 mV} for RD2 indicated in table 1120. Two iterations of the search (a coarse search and a fine search) can be performed to find the best fine reading of the set of RD2, such as in the example of FIGS. 10A-10B.
[0094] Similarly, for the fine search range of RD6 in table 1140, a lower offset limit of −160 mV may be the minimum of the best read offset differences listed in the second column of table 1130, and an upper offset limit of 60 mV may be the maximum of the best read offset differences listed in the second column of table 1130. These lower and upper offset limits may be offsets relative to the anchor voltage for RD6. The anchor voltage for RD6 may have an anchor offset relative to the respective default voltage of RD6. The anchor offset for RD6 may be equal to the fine best read offset of the read level RD4. The fine best read offset of RD4 may be found, for example, in the optimized fine search range of RD2 {−80 mV, 50 mV} indicated in table 1140. Table 1140 also lists a fine search range for RD2 {−100 mV, 100 mV}. This fine search range may be set based on any other method.
[0095] In the preceding description, the combination of coarse and fine searches is first performed in the coarse search range of RD2 in table 1120 to find the best fine read offset for RD2. When the best fine read offset for RD2 is used as the anchor offset, a fine search is performed in the fine search range of RD4 in table 1140 to find the best fine read offset for RD4. The best fine read offset for RD4 is used as the anchor offset, and the fine search range for RD6 can be determined in the fine search range of RD6 in table 1140. In this manner, three best read offsets can be determined for read levels RD2, RD4, and RD6 and can be used to read the middle page in the example of FIG. 5 .
[0096] In another example, the above order (from RD2 to RD6) may be changed to any order. For example, the above searches may be performed in any order, such as RD6, RD2, and RD4. A combination of coarse and fine searches may start from RD6 and be followed by two fine searches in RD2 and RD4. In this order, the coarse search range and fine search range of the corresponding level may be adjusted accordingly. For example, the fine best offset of RD6 may be used as the anchor offset of RD2. Therefore, the fine search range of RD2 may be determined based on the best read offset difference between the best read offset of RD2 and the best read offset of RD6. Also, the fine best offset of RD6 may be used as the anchor offset of RD4. Alternatively, the fine best offset of RD2 may be used as the anchor offset of RD4.
[0097] The previous description uses the read levels RD2, RD4, and RD6 of the middle pages of a TLC as an example to explain the coarse search range or fine search range optimization method. However, the search optimization method can be used for any kind of MLC with one, two, three, four, or more pages stored.
[0098] Compared with setting the search range indiscriminately, the search range (or scanning range) obtained using the search range optimization method disclosed herein can be shorter, thus accelerating the best read level search process. Also, when the search range optimization method disclosed herein is used, some coarse search processes can be skipped, further accelerating the best read level search process. Furthermore, the search range optimization method disclosed herein does not depend on a specific search method. The search range optimization method can be used to provide an optimized countermeasure range to any best read search method.
[0099] 12A-12C illustrate a search process for the best read level according to an embodiment of the present disclosure. The best read levels corresponding to the default voltages V2 and V4 for reading the middle page from the TLC can be determined during the process. Optimized coarse and fine search ranges are used during the process.
[0100] FIG. 12A shows a coarse search range 1210. The coarse search range 1210 has an upper offset 1212 of 70 mV and a lower offset 1211 of −190 mV relative to a default voltage 1213 of V2. The coarse search range 1210 may be an optimized coarse search range determined using the coarse search range optimization method described in the examples of FIGS. 11A-11B. A coarse search with a 100 mV step voltage may be performed across the coarse search range 1210 to find a coarse best read level 1214 with a coarse best read offset 1215 of −30 mV relative to the default voltage 1213 of V2.
[0101] 12B shows a fine search range 1220 defined with a coarse best reading level 1214 as the center scan point 1214. The fine search range 1220 may have a lower offset 1221 of −100 mV and an upper offset 1222 of 100 mV relative to the center scan point 1214. Following the coarse search in FIG. 12A, a fine search with a 10 mV step voltage may be performed across the fine search range 1220 to find a fine best reading level 1223. The fine best reading level may have a fine best reading offset 1224 of −50 mV relative to the default voltage 1213 of V2.
[0102] FIG. 12C shows another fine search range 1230 for a reading level corresponding to a default voltage 1235 of V4. The fine search range 1230 may be defined based on another scan point (anchor voltage) 1233. The anchor scan point 1233 may have the same offset value as the fine best reading offset 1224 of −50 mV, but relative to the default voltage 1235 of V4. The fine search range 1230 may have a lower offset 1231 of −80 mV and an upper offset 1232 of 50 mV relative to the anchor scan point 1233. Following the fine search in FIG. 12B, another fine search may be performed in the fine search range 1230 in 10 mV voltage steps to find a best reading level 1236. The best reading level 1236 may have a best reading offset 1237 relative to the default voltage V4.
[0103] 13 illustrates a process 1300 for searching for the best read level according to an embodiment of the present disclosure. The process 1300 can begin at S1310.
[0104] In S1310, a first best read offset of a first best read reference voltage relative to a first default read reference voltage can be determined. For example, to determine the first best read offset, a second scan range can be determined. The second scan range can have an upper limit that is the first default read reference voltage plus an upper limit offset and a lower limit that is the first default read reference voltage plus a lower limit offset. The second scan range can be scanned based on a coarse step voltage by performing a series of first single read operations within the second scan range. Each first single read operation generates a bit count of either 1 or 0. Each first single read operation corresponds to a first read reference voltage.
[0105] For example, for each first single read operation, if available, a first bit count difference between the bit count of the respective first single read operation and the bit count of the previous first single read operation may be determined. If available, a second bit count difference between the bit count of the respective first single read operation and the bit count of the subsequent first single read operation may be determined. The first read reference voltage of the first single read operation whose sum of the respective first bit count difference and the respective second bit count difference has the smallest value among the series of first single read operations may be determined to be the coarse best read reference voltage.
[0106] In an example, when there are two or more first single read operations in which the sum of the respective first bit count differences and the respective second bit count differences has the same value, the minimum value of the respective first bit count differences and the respective second bit count differences may be determined so that the first read reference voltage of the first single read operation having the minimum value among the two or more first single read operations becomes the coarse best read reference voltage.
[0107] In some examples, a third scan range may then be determined. The third scan range may have an upper limit that is the coarse best read reference voltage plus the coarse step voltage and a lower limit that is the coarse best read reference voltage minus the coarse step voltage. The third scan range may be scanned based on the fine step voltage by performing a series of second single read operations within the third scan range. Each second single read operation corresponds to a second read reference voltage. Each second single read operation generates a bit count of either 1 or 0.
[0108] For each second single read operation, if available, a first bit count difference between the bit count of the respective second single read operation and the bit count of the previous second single read operation may be determined. Also, if available, a second bit count difference between the bit count of the respective second single read operation and the bit count of the subsequent second single read operation may be determined. Thus, the second read reference voltage of the second single read operation whose sum of the respective first bit count difference and the respective second bit count difference has the smallest value among the series of second single read operations may be determined to be the first best read reference voltage. The offset of the first best read reference voltage relative to the first default read reference voltage is the first best read offset.
[0109] In S1320, an anchor read reference voltage may be determined that is relative to the second default read reference voltage but has the same offset as the first best read offset. The first default read reference voltage and the second default read reference voltage are set for reading a page from a set of MLCs in a semiconductor memory device.
[0110] In S1330, a first scan range may be determined based on the anchor read reference voltage. For example, the upper limit of the first scan range is the anchor read reference voltage plus an upper limit offset. The lower limit of the first scan range is the anchor read reference voltage plus a lower limit offset. The upper limit offset and the lower limit offset may be positive or negative voltage values.
[0111] In S1340, a second best read offset of a second best read reference voltage relative to a second default read reference voltage may be determined by searching in a first scan range. For example, the first scan range may be scanned by performing a series of third single read operations within the first scan range, each third single read operation corresponding to a third read reference voltage. Each third single read operation generates a bit count of either 1 or 0.
[0112] For each third single read operation, if available, a first bit count difference between the bit count of the respective third single read operation and the bit count of the previous third single read operation may be determined. If available, a second bit count difference between the bit count of the respective third single read operation and the bit count of the subsequent third single read operation may be determined. Thus, the third read reference voltage of the third single read operation in which the sum of the respective first bit count difference and the respective second bit count difference has the smallest value among the series of third single read operations may be determined to be the second best read reference voltage. The offset of the second best read reference voltage relative to the second default read reference voltage is the second best read offset. In some examples, the first single read operation, the second single read operation, and the third single read operation are partial page read operations.
[0113] In S1350, a read process may be performed to read a page from the set of MLCs based on the first best read reference voltage and the second best read reference voltage. Process 1300 may end.
[0114] 14A-14B show a performance comparison between a first best read search process and a second best read search process according to an embodiment of the present disclosure. The first best read search process may be a best read level search process based on FBC, such as in the example of FIG. 8. The second best read search process may be a best read level search process based on BCD, such as in the examples of FIGS. 9-13.
[0115] 14A shows the total time to complete the first best read level search process for a word line memory cell string. A word line memory cell string may contain MLCs with (n+1) states. Therefore, there are n read levels to be processed. The total time, denoted T, is T=SUM(K, M, N)*(tR+tDMA+tOH)*n levels (1) In equation (1), n level represents the number of read levels to be processed. K, M, and N represent the number of scan steps performed during the coarse scan, the first fine scan, and the second fine scan, respectively, when processing each read level. The time for each scan step includes a page read time tR, a data transfer time (e.g., between the memory device and the memory controller), tDMA, and a firmware (FW) processing overhead time tOH.
[0116] FIG. 14B shows the total time to complete the second best read level search process for a word line memory cell string. The word line memory cell string may also include an MLC with (n+1) states. However, the number of read levels processed is less than n. For example, to read the middle page of a TLC, the search process may be performed at three read levels (e.g., RD2, RD4, and RD4). Therefore, the total time, denoted T', is T'=K'*(tR'+tDMA'+tOH')+ΣM[i]*(tR'+tDMA'+tOH') (2) In equation (2), K' represents the number of scan steps performed during the coarse scan at the first read level among the read levels being processed. M'[i] represents the number of scan steps performed during the fine scan at each read level indexed by i. The time for each scan step includes a single read operation time tR', a data transfer time (e.g., between the memory device and the memory controller), tDMA', and a firmware (FW) processing overhead time tOH'.
[0117] Comparing the example in FIG. 14B with the example in FIG. 14A, the read time tR' can be smaller than tR because a single read operation can be used instead of a normal page read operation. The data transfer time tDMA' can be smaller than tDMA because a partial page read can be used instead of a full page read, reducing the amount of data transferred. The FW processing overhead tOH' can be smaller than tOH because the bit counting (at each scan step) in the second search method can have hardware acceleration support, while the FBC (comparison between read bits and original bits) can be performed using FW. The number of scan steps K' and M'[i] can also be reduced from K and M due to the adoption of a search range optimization technique. The second fine search is excluded from the second search method, so N does not appear in equation (2). Also, as shown in FIG. 14B, the coarse scan (including K' scan steps) is performed only in the first read level. The other read levels each include only fine scans. Reducing the coarse scan to one can also save time.
[0118] In various embodiments, the best read level search methods disclosed herein may be implemented in a memory controller (such as memory controller 106) or in a memory device (such as memory device 104). These methods may be triggered in response to an ECC decoding failure or may run in the background. In some embodiments, the methods disclosed herein may be implemented in hardware, software, or a combination thereof. In examples, the best read level search methods disclosed herein may be implemented in instructions stored on a non-transitory computer-readable medium. A processor or processing circuit may execute the instructions to perform the respective methods.
[0119] Aspects of the present disclosure provide a memory controller that implements the techniques disclosed herein. For example, the memory controller may include circuitry configured to implement the methods. The method may include determining a first best read offset of a first best read reference voltage relative to a first default read reference voltage; determining an anchor read reference voltage having the same offset as the first best read offset relative to a second default read reference voltage, where the first default read reference voltage and the second default read reference voltage are set for reading a page from a set of multi-level cells (MLCs) in a semiconductor memory device in the memory system; determining a first scan range based on the anchor read reference voltage, where an upper limit of the first scan range is the anchor read reference voltage plus an upper limit offset and a lower limit of the first scan range is the anchor read reference voltage plus a lower limit offset, where the upper limit offset and the lower limit offset are positive voltage values or negative voltage values; determining a second best read offset of the second best read reference voltage relative to the second read reference voltage by searching in the first scan range; and performing a read process to read the page from the set of MLCs based on the first best read reference voltage and the second best read reference voltage.
[0120] Aspects of the present disclosure provide a non-transitory computer-readable medium storing instructions that implement the techniques disclosed herein. For example, the instructions, when executed by a processor (or processing circuit), can cause the processor (or processing circuit) to perform a method. The method may include determining a first best read offset of a first best read reference voltage relative to a first default read reference voltage; determining an anchor read reference voltage having the same offset as the first best read offset relative to a second default read reference voltage, where the first default read reference voltage and the second default read reference voltage are set for reading a page from a set of multi-level cells (MLCs) in a semiconductor memory device in the memory system; determining a first scan range based on the anchor read reference voltage, where an upper limit of the first scan range is the anchor read reference voltage plus an upper limit offset and a lower limit of the first scan range is the anchor read reference voltage plus a lower limit offset, where the upper limit offset and the lower limit offset are positive voltage values or negative voltage values; determining a second best read offset of the second best read reference voltage relative to the second read reference voltage by searching in the first scan range; and performing a read process to read the page from the set of MLCs based on the first best read reference voltage and the second best read reference voltage.
[0121] The foregoing outlines features of some embodiments so that those skilled in the art may better understand aspects of the present disclosure. Those skilled in the art should appreciate that they may readily use this disclosure as a basis for designing or modifying other processes and structures to carry out the same purposes and / or achieve the same advantages of the embodiments presented herein. Those skilled in the art should also appreciate that such equivalent structures do not depart from the spirit and scope of the present disclosure, and that various changes, substitutions, and alterations can be made herein without departing from the spirit and scope of the present disclosure. [Explanation of symbols]
[0122] 100 systems 102 Memory System 104 Memory Devices 106 Memory Control Device 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 Source Select Gate, SSG 312 Drain select gate, DSG 314 Source Line 316 bit lines 318 Word Line 320 pages 404 Page 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 601 Default reading reference voltage 602 Optimal reading reference voltage 603 Best Read Reference Voltage 610 Search Range 611 Lower Offset 612 Upper Limit Offset 700 read process 800 Best read level search process 900 BCD table Searching for the best reading level based on 1000 BCD 1110, 1120 Tables for coarse search 1130, 1140 Tables for fine search 1210 Coarse search range 1211 Lower Offset 1212 Upper Offset 1213 Default Voltage 1214 Coarse best read level, center scan point 1215 Coarse Best Read Offset 1220 Fine Search Range 1221 Lower Offset 1222 Upper Offset 1223 Fine Best Read Level 1224 Fine Best Read Offset 1230 Fine Search Range 1231 Lower Offset 1232 Upper Offset 1233 scanning points, anchor voltage 1235 Default Voltage 1236 Best Reading Level 1237 Best Read Offset D1, D2, D1', D2' distribution S0, S1, S2, S3, S4, S5, S6, S7 status V1, V2, V3, V4, V5, V6, V7 default reading reference voltage Vth threshold voltage
Claims
1. 1. A method of a memory system, comprising: determining a first best read offset of a first best read reference voltage relative to a first default read reference voltage; determining an anchor read reference voltage having the same offset as the first best read offset relative to a second default read reference voltage, the first default read reference voltage and the second default read reference voltage being set for reading a page from a set of multi-level cells (MLCs) in a semiconductor memory device in the memory system; determining a first scan range based on the anchor read reference voltage, wherein an upper limit of the first scan range is the anchor read reference voltage plus an upper limit offset, and a lower limit of the first scan range is the anchor read reference voltage plus a lower limit offset, and the upper limit offset and the lower limit offset are positive voltage values or negative voltage values; determining a second best read offset of a second best read reference voltage relative to the second read reference voltage based on the first scan range; A method comprising:
2. The step of determining the first best read offset comprises: determining a second scan range, the second scan range having an upper limit that is the first default read reference voltage plus an upper limit offset and a lower limit that is the first default read reference voltage plus a lower limit offset; scanning the second scan range based on a coarse step voltage by performing a series of first single read operations within the second scan range, each first single read operation corresponding to a first read reference voltage, and each first single read operation generating a bit count of either 1 or 0; For each first single read operation: a first bit count difference between the bit counts of the first single read operation and a previous first single read operation, if available; and If available, a second bit count difference between the bit counts of the first single read operation and each of the subsequent first single read operations. determining a determining the first read reference voltage of the first single read operation in which the sum of each of the first bit count differences and each of the second bit count differences has the smallest value among the series of first single read operations to be a coarse best read reference voltage; The method of claim 1 , comprising:
3. 3. The method of claim 2, further comprising: when there are two or more first single read operations in which the sum of each of the first bit count differences and each of the second bit count differences has the same value, determining the first read reference voltage of the first single read operation in which the minimum value of each of the first bit count differences and each of the second bit count differences is the minimum value among the two or more first single read operations to be the coarse best read reference voltage.
4. determining a third scan range, the third scan range having an upper limit that is the coarse best read reference voltage plus the coarse step voltage and a lower limit that is the coarse best read reference voltage minus the coarse step voltage; scanning the third scan range based on fine step voltages by performing a series of second single read operations within the third scan range, each second single read operation corresponding to a second read reference voltage, and each second single read operation generating a bit count of either 1 or 0; For each second single read operation: a first bit count difference between the bit count of each second single read operation and the bit count of a previous second single read operation, if available; and If available, a second bit count difference between the bit count of each second single read operation and the bit count of a subsequent second single read operation. determining a determining the second read reference voltage of the second single read operation in which the sum of each of the first bit count differences and each of the second bit count differences has the smallest value among the series of second single read operations to be the first best read reference voltage, wherein an offset of the first best read reference voltage relative to the first default read reference voltage is the first best read offset; The method of claim 2 further comprising:
5. determining the second best read offset of the second best read reference voltage relative to the second default read reference voltage based on the first scan range; scanning the first scan range by performing a series of third single read operations within the first scan range, each third single read operation corresponding to a third read reference voltage, and each third single read operation generating a bit count of either 1 or 0; For each third single read operation, a first bit count difference between the bit count of each third single read operation and the bit count of a previous third single read operation, if available; and If available, a second bit count difference between the bit count of each of the third single read operations and the bit count of a subsequent third single read operation. determining a determining the third read reference voltage of the third single read operation in which the sum of each of the first bit count differences and each of the second bit count differences has the smallest value among the series of third single read operations to be the second best read reference voltage, wherein an offset of the second best read reference voltage relative to the second default read reference voltage is the second best read offset; The method of claim 4, comprising:
6. The method of claim 5 , wherein the first single read operation, the second single read operation, and the third single read operation are partial page read operations.
7. collecting a first set of first best read offsets, each first best read offset being a voltage shift of a best read reference voltage from the first default read reference voltage, each first best read offset corresponding to a memory cell condition that causes a set of memory cells to have a respective first best read offset, each of the first set of first best read offsets having a positive value or a negative value; setting the maximum value of the first set of first best read offsets to be the upper offset limit of the second scan range; setting the minimum value of the first set of first best read offsets to be the lower offset of the second scan range; The method of claim 2 further comprising:
8. collecting a second set of second best read offsets, each second best read offset corresponding to the first set of first best read voltages and one of the respective memory cell conditions, each second best read offset being a voltage shift of a best read reference voltage from the second default read reference voltage, and each second set of second best read offsets having a positive value or a negative value; determining a difference between each pair of the first best read offset and a respective second best read offset, the difference being equal to the respective second best read offset minus the respective first best read offset; setting the maximum difference between each pair of the first best read offset and a respective second best read offset to be the upper offset limit of the first scan range; setting the minimum of the differences between each pair of the first best read offset and a respective second best read offset to be the lower offset of the first scan range; The method of claim 7 further comprising:
9. 2. The method of claim 1, further comprising, prior to the step of determining the first best read offset of the first best read reference voltage relative to the first default read reference voltage, determining that an error correction code (ECC) decoding process failed to read the page.
10. 2. The method of claim 1, further comprising: performing an ECC software decoding process to read the page from the set of MLCs based on the first best read reference voltage and the second best read reference voltage.
11. The method of claim 1 , wherein the first or second default read reference voltage corresponds to a default read reference voltage of the MLC.
12. a semiconductor memory device; determining a first best read offset of a first best read reference voltage relative to a first default read reference voltage; determining an anchor read reference voltage having the same offset as the first best read offset relative to a second default read reference voltage, the first default read reference voltage and the second default read reference voltage being set for reading a page from a set of multi-level cells (MLCs) in the semiconductor memory device; determining a first scan range based on the anchor read reference voltage, wherein an upper limit of the first scan range is the anchor read reference voltage plus an upper limit offset, and a lower limit of the first scan range is the anchor read reference voltage plus a lower limit offset, the upper limit offset and the lower limit offset being positive voltage values or negative voltage values; determining a second best read offset of a second best read reference voltage relative to the second read reference voltage based on the first scan range; a memory controller comprising circuitry configured to: A memory system comprising:
13. The circuit comprises: determining a second scan range, the second scan range having an upper limit that is the first default read reference voltage plus an upper limit offset and a lower limit that is the first default read reference voltage plus a lower limit offset; scanning the second scan range based on a coarse step voltage by performing a series of first single read operations within the second scan range, each first single read operation corresponding to a first read reference voltage, and each first single read operation generating a bit count of either 1 or 0; For each first single read operation: If available, a first bit count difference between the bit count of each first single read operation and the bit count of a previous first single read operation; and If available, a second bit count difference between the bit count of each of the first single read operations and the bit count of a subsequent first single read operation. and determining determining the first read reference voltage of the first single read operation in which the sum of each of the first bit count differences and each of the second bit count differences has the smallest value among the series of first single read operations to be a coarse best read reference voltage; The memory system of claim 12 further configured to:
14. The circuit comprises: When there are two or more first single read operations in which the sum of each of the first bit count differences and each of the second bit count differences has the same value, the first read reference voltage of the first single read operation having the minimum value of each of the first bit count differences and each of the second bit count differences among the two or more first single read operations is determined to be the coarse best read reference voltage. The memory system of claim 13 further comprising:
15. The circuit comprises: determining a third scan range, the third scan range having an upper limit that is the coarse best read reference voltage plus the coarse step voltage and a lower limit that is the coarse best read reference voltage minus the coarse step voltage; scanning the third scan range based on fine step voltages by performing a series of second single read operations within the third scan range, each second single read operation corresponding to a second read reference voltage, and each second single read operation generating a bit count of either 1 or 0; For each second single read operation: a first bit count difference between the bit count of each second single read operation and the bit count of a previous second single read operation, if available; and If available, a second bit count difference between the bit count of each second single read operation and the bit count of a subsequent second single read operation. and determining determining the second read reference voltage of the second single read operation in which the sum of each of the first bit count differences and each of the second bit count differences has the smallest value among the series of second single read operations to be the first best read reference voltage, wherein an offset of the first best read reference voltage relative to the first default read reference voltage is the first best read offset; 14. The memory system of claim 13, further configured to:
16. 1. A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform a method, the method comprising: determining a first best read offset of a first best read reference voltage relative to a first default read reference voltage; determining an anchor read reference voltage having the same offset as the first best read offset relative to a second default read reference voltage, the first default read reference voltage and the second default read reference voltage being set for reading a page from a set of multi-level cells (MLCs) in a semiconductor memory device; determining a first scan range based on the anchor read reference voltage, wherein an upper limit of the first scan range is the anchor read reference voltage plus an upper limit offset, and a lower limit of the first scan range is the anchor read reference voltage plus a lower limit offset, and the upper limit offset and the lower limit offset are positive voltage values or negative voltage values; determining a second best read offset of a second best read reference voltage relative to the second read reference voltage based on the first scan range; 1. A non-transitory computer-readable medium, comprising:
17. The step of determining the first best read offset comprises: determining a second scan range, the second scan range having an upper limit that is the first default read reference voltage plus an upper limit offset and a lower limit that is the first default read reference voltage plus a lower limit offset; scanning the second scan range based on a coarse step voltage by performing a series of first single read operations within the second scan range, each first single read operation corresponding to a first read reference voltage, and each first single read operation generating a bit count of either 1 or 0; For each first single read operation: If available, a first bit count difference between the bit count of each first single read operation and the bit count of a previous first single read operation; and If available, a second bit count difference between the bit count of each of the first single read operations and the bit count of a subsequent first single read operation. determining a determining the first read reference voltage of the first single read operation in which the sum of each of the first bit count differences and each of the second bit count differences has the smallest value among the series of first single read operations to be a coarse best read reference voltage; 17. The non-transitory computer-readable medium of claim 16, comprising:
18. The method comprises:
18. The non-transitory computer-readable medium of claim 17, further comprising: when there are two or more first single read operations in which the sum of each of the first bit count differences and each of the second bit count differences has the same value, determining the first read reference voltage of the first single read operation in which the minimum value of each of the first bit count differences and each of the second bit count differences is the minimum value among the two or more first single read operations to be the coarse best read reference voltage.
19. The method comprises: determining a third scan range, the third scan range having an upper limit that is the coarse best read reference voltage plus the coarse step voltage and a lower limit that is the coarse best read reference voltage minus the coarse step voltage; scanning the third scan range based on fine step voltages by performing a series of second single read operations within the third scan range, each second single read operation corresponding to a second read reference voltage, and each second single read operation generating a bit count of either 1 or 0; For each second single read operation: a first bit count difference between the bit count of each second single read operation and the bit count of a previous second single read operation, if available; and If available, a second bit count difference between the bit count of each second single read operation and the bit count of a subsequent second single read operation. determining a determining the second read reference voltage of the second single read operation in which the sum of each of the first bit count differences and each of the second bit count differences has the smallest value among the series of second single read operations to be the first best read reference voltage, wherein an offset of the first best read reference voltage relative to the first default read reference voltage is the first best read offset; 20. The non-transitory computer-readable medium of claim 17, further comprising:
20. determining the second best read offset of the second best read reference voltage relative to the second default read reference voltage based on the first scan range; scanning the first scan range by performing a series of third single read operations within the first scan range, each third single read operation corresponding to a third read reference voltage, and each third single read operation generating a bit count of either 1 or 0; For each third single read operation, a first bit count difference between the bit count of each third single read operation and the bit count of a previous third single read operation, if available; and If available, a second bit count difference between the bit count of each of the third single read operations and the bit count of a subsequent third single read operation. determining a determining the third read reference voltage of the third single read operation in which the sum of each of the first bit count differences and each of the second bit count differences has the smallest value among the series of third single read operations to be the second best read reference voltage, wherein an offset of the second best read reference voltage relative to the second default read reference voltage is the second best read offset; 20. The non-transitory computer-readable medium of claim 19, comprising:
Citation Information
Patent Citations
Memory with read margin based on cell population distribution
JP2010505215A
Semiconductor storage device
JP2013122804A
Memory system
JP2020107376A
Read threshold calibration for nonvolatile memory using encoded foggy-fine programming
JP2022111971A
Memory system
JP2023137685A