US12482533B2 - Background data refresh using soft reads - Google Patents
Background data refresh using soft readsInfo
- Publication number
- US12482533B2 US12482533B2 US18/393,056 US202318393056A US12482533B2 US 12482533 B2 US12482533 B2 US 12482533B2 US 202318393056 A US202318393056 A US 202318393056A US 12482533 B2 US12482533 B2 US 12482533B2
- Authority
- US
- United States
- Prior art keywords
- data
- readout
- memory
- page
- memory cells
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40615—Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Definitions
- This application relates generally to memory management including, but not limited to, methods, systems, and non-transitory computer-readable media for controlling error correction of a page of a memory device.
- Memory is applied in a computer system to store instructions and data.
- the data are processed by one or more processors of the computer system according to the instructions stored in the memory.
- Multiple memory units are used in different portions of the computer system to serve different functions.
- the computer system includes non-volatile memory that acts as secondary memory to keep data stored thereon if the computer system is decoupled from a power source.
- the secondary memory include, but are not limited to, hard disk drives (HDDs) and solid-state drives (SSDs).
- HDDs hard disk drives
- SSDs solid-state drives
- One way to mitigate bit error accumulation is to periodically refresh the memory contents by doing read-modify-write. Under most circumstances, a memory page has few errors, and however, periodic refreshes of the memory still uses a portion of an input/output (I/O) bandwidth and a power budget of the memory device, leaving less I/O bandwidth to process the read or write requests received from the host. It would be beneficial to develop a fast and economical solution to monitor validity conditions of a corresponding memory system and facilitate further adaptive background refreshes based on the validity conditions.
- I/O input/output
- Various embodiments of this application are directed to methods, systems, devices, non-transitory computer-readable media for monitoring a validity condition and adaptively controlling error correction or background data refresh of a page of a memory device in a memory system.
- Each page having a high bit error count (e.g., greater than a threshold error number) is identified and refreshed, while pages having low bit error counts are processed with error correction processes.
- the memory system determines a number of bits in a valley (e.g., corresponding to threshold voltages close to read reference voltages) to estimate a bit error count. Specifically, the memory system returns the number bits in the valley over an I/O bus without using an error correction code (ECC).
- ECC error correction code
- the number of bits is counted once per word line instead of once per page in a triple-level cell (TLC) NAND memory device having three subpages per word line.
- the number of bits is read from a valley that is most susceptible to bit errors.
- a method is implemented at a memory device (e.g., a solid-state drive (SSD)) for memory data validation.
- the method includes receiving an inquiry for a validity condition of a page of the memory device.
- the page includes a plurality of memory cells that store two consecutive data items and correspond to two nominal threshold voltages.
- the method further includes, in response to the inquiry, selecting a first readout voltage and a second readout voltage between the two nominal threshold voltages.
- the method further includes applying the first readout voltage to read the plurality of memory cells to generate first readout data, applying the second readout voltage to read the plurality of memory cells to generate second readout data, and determining an error rate of the page based on the first readout data and the second readout data. Reading the same two consecutive data items with two nominal threshold voltages produces soft information, and may be called a soft read.
- the method further includes, in accordance with a determination that the error rate is below an error threshold, implementing an error correction process on the plurality of memory cells of the page.
- the method further includes, in accordance with a determination that the error rate is above an error threshold, refreshing the page including writing content stored in the plurality of memory cells of the page to a new page.
- the first readout data identifies a first number of memory cells that store a first data item of the two consecutive data items
- the first readout data includes a plurality of first data values (e.g., data bits of upper subpages) each of which corresponds to a distinct one of the plurality of memory cells
- the second data includes a plurality of second data values (e.g., data bits of upper subpages) each of which corresponds to a distinct one of the plurality of memory cells.
- Determining the error rate of the page further includes applying a bitwise logic operation (e.g., a bitwise XOR operation) to combine the first readout data and the second readout data.
- a bitwise logic operation e.g., a bitwise XOR operation
- the electronic device or the memory system includes a controller, a memory device coupled to the controller and including local control circuitry, and memory having instructions stored thereon, which when executed by the memory device cause the memory device to perform any of the above methods.
- Some implementations of this application include a memory device that includes control circuitry and memory having instructions stored thereon, which when executed by the control circuitry cause the control circuitry to perform any of the above methods.
- Some implementations include a non-transitory computer readable storage medium storing one or more programs.
- the one or more programs include instructions, which when executed by a memory device cause the memory device to implement any of the above methods.
- the above methods, electronic devices, or non-transitory computer readable storage medium for controlling error correction or background data refresh are also used in data communication (e.g., wireless communication using 5G or Wi-Fi technology, satellite communications, Ethernet communication, and communication via fiber Optic networks).
- data communication e.g., wireless communication using 5G or Wi-Fi technology, satellite communications, Ethernet communication, and communication via fiber Optic networks.
- FIG. 1 is a block diagram of an example system module in a typical electronic device in accordance with some embodiments.
- FIG. 2 is a block diagram of a memory system of an example electronic device having one or more memory access queues, in accordance with some embodiments.
- FIG. 3 is a block diagram of an example integrity check system of a memory system for processing a codeword, in accordance with some embodiments.
- FIG. 4 A illustrates an example memory cell threshold voltage probability distribution of a single-level cell (SLC) memory cell, in accordance with some embodiments.
- SLC single-level cell
- FIGS. 4 B and 4 C illustrate example memory cell threshold voltage probability distributions of a multi-level cell (MLC) memory cell and an TLC memory cell, in accordance with some embodiments, respectively.
- MLC multi-level cell
- FIG. 5 illustrates an example memory cell threshold voltage probability distribution of an TLC memory cell, in accordance with some embodiments.
- FIG. 6 is a diagram illustrating a correlation between a number of bit errors and a number of bits in a readout range, in accordance with some embodiments.
- FIG. 7 A illustrates a page scheme of a memory device having a plurality of TLC memory cells, in accordance with some embodiments
- FIG. 7 B illustrates a process of selecting a readout range based on the page scheme shown in FIG. 7 A , in accordance with some embodiments.
- FIG. 8 is a flow diagram of an example method for monitoring a page-level validity condition of a memory device in an electronic device, in accordance with some embodiments.
- Various embodiments of this application are directed to methods, systems, devices, non-transitory computer-readable media for monitoring a validity condition and controlling error correction or background data refresh of a page of a memory device.
- Each page having a high bit error count (e.g., greater than a threshold error number) is identified and refreshed.
- the memory system determines a number of bits in a valley (e.g., corresponding to a threshold voltages close to read reference voltages) to estimate a bit error count.
- the memory system returns the number bits in the valley over an I/O bus without using an ECC.
- the number of bits is counted once per word line instead of once per page in a triple-level cell (TLC) NAND memory device having three subpages per word line.
- TLC triple-level cell
- the number of bits is read from a valley that is most susceptible to bit errors.
- 30% of the NAND word lines have high bit errors.
- the memory system counts the valley bits and selectively refreshes the page having the high bit error count without the ECC, which reduces I/O power consumption and enables higher performance on host reads and writes. It improves a QoS latency as an I/O bus is made more available for host reads and writes.
- FIG. 1 is a block diagram of an example system module 100 in a typical electronic system in accordance with some embodiments.
- the system module 100 in this electronic system includes at least a processor module 102 , memory modules 104 for storing programs, instructions and data, an input/output (I/O) controller 106 , one or more communication interfaces such as network interfaces 108 , and one or more communication buses 140 for interconnecting these components.
- the I/O controller 106 allows the processor module 102 to communicate with an I/O device (e.g., a keyboard, a mouse or a trackpad) via a universal serial bus interface.
- an I/O device e.g., a keyboard, a mouse or a trackpad
- the network interfaces 108 includes one or more interfaces for Wi-Fi, Ethernet and Bluetooth networks, each allowing the electronic system to exchange data with an external source, e.g., a server or another electronic system.
- the communication buses 140 include circuitry (sometimes called a chipset) that interconnects and controls communications among various system components included in system module 100 .
- the memory modules 104 include high-speed random-access memory, such as static random-access memory (SRAM), double data rate (DDR) dynamic random-access memory (DRAM), or other random-access solid state memory devices.
- the memory modules 104 include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices.
- the memory modules 104 or alternatively the non-volatile memory device(s) within the memory modules 104 , include a non-transitory computer readable storage medium.
- memory slots are reserved on the system module 100 for receiving the memory modules 104 . Once inserted into the memory slots, the memory modules 104 are integrated into the system module 100 .
- the system module 100 further includes one or more components selected from a memory controller 110 , SSD(s) 112 , an HDD 114 , power management integrated circuit (PMIC) 118 , a graphics module 120 , and a sound module 122 .
- the memory controller 110 is configured to control communication between the processor module 102 and memory components, including the memory modules 104 , in the electronic system.
- the SSD(s) 112 are configured to apply integrated circuit assemblies to store data in the electronic system, and in many embodiments, are based on NAND or NOR memory configurations.
- the HDD 114 is a conventional data storage device used for storing and retrieving digital information based on electromechanical magnetic disks.
- the power supply connector 116 is electrically coupled to receive an external power supply.
- the PMIC 118 is configured to modulate the received external power supply to other desired DC voltage levels, e.g., 5V, 3.3V or 1.8V, as required by various components or circuits (e.g., the processor module 102 ) within the electronic system.
- the graphics module 120 is configured to generate a feed of output images to one or more display devices according to their desirable image/video formats.
- the sound module 122 is configured to facilitate the input and output of audio signals to and from the electronic system under control of computer programs.
- the system module 100 further includes SSD(s) 112 ′ coupled to the I/O controller 106 directly.
- the SSDs 112 are coupled to the communication buses 140 .
- the communication buses 140 operates in compliance with Peripheral Component Interconnect Express (PCIe or PCI-E), which is a serial expansion bus standard for interconnecting the processor module 102 to, and controlling, one or more peripheral devices and various system components including components 110 - 122 .
- PCIe Peripheral Component Interconnect Express
- non-transitory computer readable storage media can be used, as new data storage technologies are developed for storing information in the non-transitory computer readable storage media in the memory modules 104 , SSD(s) 112 or 112 ′, and HDD 114 .
- These new non-transitory computer readable storage media include, but are not limited to, those manufactured from biological materials, nanowires, carbon nanotubes and individual molecules, even though the respective data storage technologies are currently under development and yet to be commercialized.
- Some implementations of this application are directed to an integrity check process implemented by a memory system (e.g., SSD(s) 112 , memory module 104 , HDD 114 , memory controller 110 ), which stores codeword symbols including integrity data, e.g., LDPC codes.
- the integrity check process is also called a decoding process implementing between variable nodes and check nodes.
- the variable nodes correspond to the codeword symbols extracted from the memory system.
- Each check node correspond to a distinct set of variable nodes, and has check node data configured to identify bit errors in the codeword symbols corresponding to the distinct set of variable nodes.
- FIG. 2 is a block diagram of a memory system 200 of an example electronic device having one or more memory access queues, in accordance with some embodiments.
- the memory system 200 is coupled to a host device 220 (e.g., a processor module 102 in FIG. 1 ) and configured to store instructions and data for an extended time, e.g., when the electronic device sleeps, hibernates, or is shut down.
- the host device 220 is configured to access the instructions and data stored in the memory system 200 and process the instructions and data to run an operating system and execute user applications.
- the memory system 200 includes one or more memory devices 240 (e.g., SSD(s)).
- Each memory device 240 further includes a controller 202 and a plurality of memory channels 204 (e.g., channel 204 A, 204 B, and 204 N). Each memory channel 204 includes a plurality of memory cells.
- the controller 202 is configured to execute firmware level software to bridge the plurality of memory channels 204 to the host device 220 .
- each memory device 240 is formed on a printed circuit board (PCB).
- Each memory channel 204 includes on one or more memory packages 206 (e.g., two memory dies).
- each memory package 206 (e.g., memory package 206 A or 206 B) corresponds to a memory die.
- Each memory package 206 includes a plurality of memory planes 208 , and each memory plane 208 further includes a plurality of memory pages 210 .
- Each memory page 210 includes an ordered set of memory cells, and each memory cell is identified by a respective physical address.
- the memory device 240 includes a plurality of superblocks. Each superblock includes a plurality of memory blocks each of which further includes a plurality of memory pages 210 .
- each superblock the plurality of memory blocks are configured to be written into and read from the memory system via a memory input/output (I/O) interface concurrently.
- each superblock groups memory cells that are distributed on a plurality of memory planes 208 , a plurality of memory channels 204 , and a plurality of memory dies 206 .
- each superblock includes at least one set of memory pages, where each page is distributed on a distinct one of the plurality of memory dies 206 , has the same die, plane, block, and page designations, and is accessed via a distinct channel of the distinct memory die 206 .
- each superblock includes at least one set of memory blocks, where each memory block is distributed on a distinct one of the plurality of memory dies 206 includes a plurality of pages, has the same die, plane, and block designations, and is accessed via a distinct channel of the distinct memory die 206 .
- the memory device 240 stores information of an ordered list of superblocks in a cache of the memory device 240 .
- the cache is managed by a host driver of the host device 220 , and called a host managed cache (HMC).
- the memory device 240 includes a single-level cell (SLC) NAND flash memory chip, and each memory cell stores a single data bit.
- the memory device 240 includes a multi-level cell (MLC) NAND flash memory chip, and each memory cell of the MLC NAND flash memory chip stores 2 data bits.
- MLC multi-level cell
- each memory cell of a triple-level cell (TLC) NAND flash memory chip stores 3 data bits.
- each memory cell of a quad-level cell (QLC) NAND flash memory chip stores 4 data bits.
- each memory cell of a penta-level cell (PLC) NAND flash memory chip stores 5 data bits.
- each memory cell can store any suitable number of data bits.
- the SSD that has SLC NAND flash memory chips operates with a higher speed, a higher reliability, and a longer lifespan, and however, has a lower device density and a higher price.
- Each memory channel 204 is coupled to a respective channel controller 214 (e.g., controller 214 A, 214 B, or 214 N) configured to control internal and external requests to access memory cells in the respective memory channel 204 .
- each memory package 206 e.g., each memory die
- each memory channel 204 corresponds to a respective queue 216 (e.g., queue 216 A, 216 B, or 216 N) of memory access requests.
- each memory channel 204 corresponds to a respective queue 216 of memory access requests.
- each memory channel 204 corresponds to a distinct and different queue 216 of memory access requests.
- a subset (less than all) of the plurality of memory channels 204 corresponds to a distinct queue 216 of memory access requests. In some embodiments, all of the plurality of memory channels 204 of the memory device 240 corresponds to a single queue 216 of memory access requests.
- Each memory access request is optionally received internally from the memory device 240 to manage the respective memory channel 204 or externally from the host device 220 to write or read data stored in the respective channel 204 .
- each memory access request includes one of: a system write request that is received from the memory device 240 to write to the respective memory channel 204 , a system read request that is received from the memory device 240 to read from the respective memory channel 204 , a host write request that originates from the host device 220 to write to the respective memory channel 204 , and a host read request that is received from the host device 220 to read from the respective memory channel 204 .
- system read requests also called background read requests or non-host read requests
- system write requests are dispatched by a memory controller to implement internal memory management functions including, but are not limited to, garbage collection, wear levelling, read disturb mitigation, memory snapshot capturing, memory mirroring, caching, and memory sparing.
- the controller 202 further includes a local memory processor 218 , a host interface controller 222 , an SRAM buffer 224 , and a DRAM controller 226 .
- the local memory processor 218 accesses the plurality of memory channels 204 based on the one or more queues 216 of memory access requests.
- the local memory processor 218 writes into and read from the plurality of memory channels 204 on a memory block basis. Data of one or more memory blocks are written into, or read from, the plurality of channels jointly. No data in the same memory block is written concurrently via more than one operation. Each memory block optionally corresponds to one or more memory pages.
- each memory block to be written or read jointly in the plurality of memory channels 204 has a size of 16 KB (e.g., one memory page). In another example, each memory block to be written or read jointly in the plurality of memory channels 204 has a size of 64 KB (e.g., four memory pages). In some embodiments, each page has 16 KB user data and 2 KB metadata. Additionally, a number of memory blocks to be accessed jointly and a size of each memory block are configurable for each of the system read, host read, system write, and host write operations.
- the local memory processor 218 stores data to be written into, or read from, each memory block in the plurality of memory channels 204 in an SRAM buffer 224 of the controller 202 .
- the local memory processor 218 stores data to be written into, or read from, each memory block in the plurality of memory channels 204 in a DRAM buffer 228 A that is included in memory device 200 , e.g., by way of the DRAM controller 226 .
- the local memory processor 218 stores data to be written into, or read from, each memory block in the plurality of memory channels 204 in a DRAM buffer 228 B that is main memory used by the processor module 102 ( FIG. 1 ).
- the local memory processor 218 of the controller 202 accesses the DRAM buffer 228 B via the host interface controller 222 .
- each codeword includes n bits among which k bits correspond to user data and (n-k) corresponds to integrity data of the user data, where k and n are positive integers.
- the memory device 200 includes an integrity engine 230 (e.g., an LDPC engine) and registers 232 including a plurality of registers or SRAM cells or flip-flops and coupled to the integrity engine 230 .
- the integrity engine 230 is coupled to the memory channels 204 via the channel controllers 214 and SRAM buffer 224 .
- the integrity engine 230 has data path connections to the SRAM buffer 224 , which is further connected to the channel controllers 214 via data paths that are controlled by the local memory processor 218 .
- the integrity engine 230 is configured to verify data integrity for each coding block of the memory channels 204 .
- the memory controller 202 is coupled to a local controller 280 disposed within a memory package, a memory die 206 , or a memory plane 208 .
- a memory system 200 includes a plurality of memory packages. In at least a subset of memory packages, each respective memory package includes a local controller 280 for monitoring and reporting validity conditions of its pages.
- the memory controller 202 or local controller 280 is configured to obtain an inquiry for a validity condition of a page 210 of the memory device.
- the page 210 includes a plurality of memory cells that store two consecutive data items and correspond to two nominal threshold voltages.
- the controller 202 or 280 selects a first readout voltage and a second readout voltage between the two nominal threshold voltages, and applies the first readout voltage and the second readout voltage to read the plurality of memory cells and generate first readout data and second readout data, respectively.
- An error rate of the page 210 is determined based on the first readout data and the second readout data, and further used to determine whether an error correction process or a background data refresh need to be implemented on the page in different situations.
- FIG. 3 is a block diagram of an example integrity check system 300 of a memory system 200 for processing a codeword 302 , in accordance with some embodiments.
- the integrity check system 300 includes a plurality of memory channels 204 , an integrity engine 230 (e.g., an LDPC engine), and a registers 232 .
- Data stored in memory channels 204 of the memory system 200 ( FIG. 2 ) is grouped into coding blocks, and each coding block is called a codeword 302 .
- Each codeword 302 further includes n data bits among which k data bits are user data 302 D and (n-k) data bits are integrity data 3021 of the user data 302 D, where k and n are positive integers.
- the integrity check system 300 is configured to verify data integrity for each codeword 302 of the memory channels 204 .
- the integrity engine 230 further includes one or more of: a compression module 304 , an error correction code (ECC) encoder 306 , a scrambler 308 , a descrambler 310 , an ECC decoder 312 , and a decompression module 314 .
- the compression module 304 obtains user data 302 D and processes (e.g., compresses, encrypts) the user data 302 D.
- the ECC encoder 306 obtains the user data 302 D that is optionally processed by the compression module 304 , and applies a parity data generation matrix G ( 316 ) on the user data 302 D to encode the codeword 302 .
- the matrix G ( 316 ) has k rows and n columns.
- a systematic form of the matrix G includes an identify matrix I configured to preserve the user data 302 D within the codeword 302 and a parity matrix P configured to generate the integrity data 3021 from the user data 302 D.
- the matrix G ( 316 ) is not unique and includes a set of basis vectors for a vector space of valid codewords 302 .
- the scrambler 308 obtains the codeword 302 including n data bits and converts the n data bits to a scrambled codeword 318 having a seemingly random output string of n data bits.
- the scrambled codeword 318 is stored in the memory channels 204 of the memory system 200 .
- the scrambled codeword 318 ′ is extracted from the memory channel 204 of the memory system 200 .
- the descrambler 310 recovers a codeword 302 ′ from the extracted codeword 318 ′, and the ECC decoder 312 verifies whether the recovered codeword 302 ′ is valid and corrects erroneous bits in the recovered codeword 302 , thereby providing the valid codeword 302 including the valid user data 302 D.
- the decompression module 314 obtains the user data 302 D and processes (e.g., decompresses, decrypts) the user data 302 D.
- the ECC decoder 312 multiplies a parity-check matrix H ( 320 ) with the recovered codeword 302 ′ to generate a syndrome vector S.
- the parity check matrix H ( 320 ) includes n-k rows corresponding to n-k parity check equations and n columns corresponding to n codeword bits.
- the syndrome vector s is a combination of the error vector e and a valid codeword 302 . Given that the syndrome vector s and the parity check matrix H are known, the ECC decoder 312 solves equation (2) to obtain the error vector e and identify the erroneous bits in the recovered codeword 302 ′.
- FIG. 4 A illustrates an example memory cell threshold voltage probability distribution 400 of an SLC memory cell, in accordance with some embodiments.
- the SLC memory cell has a gate G, a source S, and a drain D. Either “1” or “0” is stored in each SLC memory cell in accordance with a relationship between a current I G flowing between the source S and the drain D and a gate voltage V G applied on the gate of the SLC memory cell.
- the gate voltage V G has a threshold voltage V TH for which the current I G flows (e.g., is greater than a current threshold I GTH ).
- Either value (e.g., “1” or “0”) stored in the SLC memory cell has a respective threshold voltage V TH .
- the SLC memory cell storing “1” has a first threshold voltage V TH1
- the SLC memory cell storing “0” has a second threshold voltage V TH2 .
- the first threshold voltage V TH1 is lower than the second threshold voltage V TH2 .
- the threshold voltage of each SLC memory cell depends at least in part on a number of excess electrons existing in a charge storage film 402 .
- the charge storage film 402 is a floating gate.
- the charge storage film 402 is charge trap.
- the lower the number of excess electrons in the charge storage film 402 is, the easier it is for the current I G to flow.
- the first threshold voltage V TH1 is low because there are no or few excess electrons in the charge storage film 402
- the second threshold voltage V TH2 is higher than the first threshold voltage V TH1 because there are more excess electrons in the charge storage film 402 .
- a memory device 240 has large number of memory cells (e.g., 250-500 GB).
- the memory cells of the memory device 240 differ in their threshold voltages V TH1 or V TH2 , which have a probability distribution 400 .
- the memory cells of the memory device 240 have the same probability of storing “1” and “0.”
- a number of the memory cells has two peaks at the first threshold voltage V TH1 corresponding to “1” and the second threshold voltage V TH2 corresponding to “0.”
- a first peak number of memory cells having the first threshold voltage V TH1 is substantially equal to a second peak number of memory cells having the second threshold voltage V TH2 .
- the first peak number of memory cells drops below a threshold valley number or to zero within a first deviation voltage dV 1 on both sides of the first threshold voltage V TH1 , forming a threshold voltage probability distribution 400 A for data “1.”
- the second peak number of memory cells drops below a threshold valley number or to zero within a second deviation voltage dV 2 on both sides of the second threshold voltage V TH2 , forming a threshold voltage probability distribution 400 B for data “0.”
- the gate voltage V G is set to a readout voltage VRO, which is between the threshold voltage probability distribution 400 A for data “1” and the threshold voltage probability distribution 400 B for data “0”.
- VRO readout voltage
- the first threshold voltages V TH1 are lower than the readout voltage VRO, and currents I G flow in the memory cells storing “1.”
- the second threshold voltages V TH2 are higher than the readout voltage VRO, and currents I G do not flow or are substantially low (e.g., smaller than the current threshold I GTH ) in the memory cells storing “0.”
- FIGS. 4 B and 4 C illustrate example memory cell threshold voltage probability distributions 420 and 440 of an MLC memory cell and an TLC memory cell, in accordance with some embodiments, respectively.
- Each MLC or TLC memory cell has a gate G, a source S, and a drain D.
- a current I G flowing between the gate G and the drain D and a gate voltage V G applied on the gate each of four data values “11,” “10,” “01,” and “00” is stored in the MLC memory cell, and each of eight data values “111,” “110,” “101,” “100,” “011,” “010,” “001,” and “000” is stored in the TLC memory cell.
- the gate voltage V G has a threshold voltage V TH for which the current I G flows (e.g., is greater than a current threshold I GTH ).
- Each value stored in the respective memory cell has a respective threshold voltage V TH .
- the MLC memory cell storing “11,” “10,” “01,” or “00” has a threshold voltage V TH1 , V TH2 , V TH3 , or V TH4 , respectively.
- the TLC memory cell storing “111,” “110,” “101,” “100,” “011,” “010,” “001,” and “000” has a threshold voltage V TH1 , V TH2 , V TH3 , V TH4 , V TH5 , V TH6 , V TH7 , or V TH8 , respectively.
- the threshold voltage of each memory cell depends at least in part on a number of excess electrons existing in a charge storage film 402 .
- these memory cells of the memory device 240 even if all of the MLC or TLC memory cells of the memory device 240 store the same data, these memory cells of the memory device 240 differ in the numbers of excess electrons in the charge storage films 402 and their associated threshold voltages, which have a probability distribution 420 or 440 . Referring to FIG.
- the memory cells of the memory device 240 have the same probability of storing “11,” “10,” “01,” and “00.”
- a number of the memory cells has four peaks at the threshold voltages V TH1 , V TH2 , V TH3 , and V TH4 , corresponding to “11,” “10,” “01,” and “00,” respectively.
- the four peak numbers of memory cells having the threshold voltages V TH1 , V TH2 , V TH3 , and V TH4 are substantially equal to one another.
- Each peak number of memory cells drops below a threshold valley number or to zero within a respective deviation voltage dV on both sides of the respective threshold voltage, forming a threshold voltage probability distribution 420 A, 420 B, 420 C, or 420 D.
- the memory cells of the memory device 240 have the same probability of storing “111,” “110,” “101,” “100,” “011,” “010,” “001,” and “000.”
- a number of the memory cells has eight peaks at the threshold voltages V TH1 , V TH2 , V TH3 , V TH4 , V TH5 , V TH6 , V TH7 , and V TH8 corresponding to “111,” “110,” “101,” “100,” “011,” “010,” “001,” and “000,” respectively.
- the eight peak numbers of memory cells having the threshold voltages V TH1 to V TH8 are substantially equal to one another.
- Each peak number of memory cells drops below a threshold valley number or to zero within a respective deviation voltage dV on both sides of the respective threshold voltage, forming a threshold voltage probability distribution 440 A, 440 B, 440 C, 440 D, 440 E, 440 F, 440 G, or 440 H.
- the gate voltage V G is set to a readout voltage VRO, which is between two threshold voltage probability distributions (e.g., 420 A for a first data “11” and 420 B for a second data “10,” 440 A for a first data “111” and 440 B for a second data “110”).
- the threshold voltages V TH1 of the memory cells storing the first data are lower than the readout voltage VRO, and their associated currents I G flow.
- the threshold voltages V THs of the memory cells storing the second data are higher than the readout voltage VRO, and their associated currents I G do not flow or are substantially low (e.g., smaller than the current threshold I GTH ).
- FIG. 5 illustrates an example memory cell threshold voltage probability distribution 500 of an TLC memory cell, in accordance with some embodiments.
- the TLC memory cell is configured to store one of eight data values including “111,” “110,” “101,” “100,” “011,” “010,” “001,” and “000.”
- the TLC memory cell storing “111,” “110,” “101,” “100,” “011,” “010,” “001,” or “000” has a distinct threshold voltage V TH1 , V TH2 , V TH3 , V TH4 , V TH5 , V TH6 , V TH7 , or V TH8 , respectively.
- the threshold voltage of each memory cell depends at least in part on a number of electrons existing in a charge storage film 402 .
- the memory cells of the memory device 240 have distinct numbers of memory cells, and distinct probabilities of, storing “111,” “110,” “101,” “100,” “011,” “010,” “001,” and “000.”
- a probability of storing an available value has eight peaks with respect to the threshold voltages V TH1 , V TH2 , V TH3 , V TH4 , V TH5 , V TH6 , V TH7 , and V TH8 corresponding to “111,” “110,” “101,” “100,” “011,” “010,” “001,” and “000,” respectively, so does a number of memory cells.
- each peak probability drops below a threshold valley probability or to zero within a respective deviation voltage dV on both sides of the respective threshold voltage, forming a threshold voltage probability distribution L 0 , L 1 , L 2 , L 3 , L 4 , L 5 , L 6 , or L 7 .
- eight peak probabilities are substantially equal to one another. In some embodiments, at least two of the eight peak probabilities are not equal to each other.
- Each of the threshold voltage probability distributions L 0 to L 7 spreads out over a spreading range, e.g., which approximates twice of the respective deviation voltage 2 dV.
- a valley 502 forms between every two immediately adjacent distributions of the threshold voltage probability distributions L 0 to L 7 .
- each of the distributions L 0 -L 7 has a relatively wide spreading range (e.g., greater than a threshold range), and the spreading ranges of the two immediately adjacent distributions overlap.
- neither of the probability values of the two immediately adjacent distributions drops to the threshold valley probability or to zero on a bottom 504 of their associated valley 502 .
- peaks values of threshold voltage probability distributions L 3 and L 4 drops from their peaks 506 and 508 to the bottom 504 of the valley 502 and are equal to each other on the bottom 504 .
- a readout voltage VRO is equal to or near a threshold voltage corresponding to the bottom 504 of the valley 502 , and erroneous readout results are extracted from memory cells that have threshold voltages close to the bottom 504 of the valley 502 .
- the memory cells corresponding to a distribution tail 510 of the threshold voltage probability distributions L 3 is erroneously read as “011” (not “100”), because their threshold voltages are higher than the readout voltage VRO that is equal to the threshold voltage corresponding to the bottom 504 of the valley 502 .
- the memory cells corresponding to a distribution tail 512 of the threshold voltage probability distributions L 4 is erroneously read as “100” (not “011”), because their threshold voltages are lower than the readout voltage VRO that is equal to the threshold voltage corresponding to the bottom 504 of the valley 502 .
- a memory device 240 receives an inquiry for a validity condition of a page 210 of the memory device 240 .
- the page 210 includes a plurality of memory cells that store at least two consecutive data items (e.g., “100” and “011”) and correspond to two nominal threshold voltages (e.g., V TH4 and V TH5 ).
- the memory device 240 selects a first readout voltage VRO 1 and a second readout voltage VRO 2 between the two nominal threshold voltages.
- the memory device 240 applies the first readout voltage VRO 1 to read the plurality of memory cells and generate first readout data ROD 1 , and applies the second readout voltage VRO 2 to read the plurality of memory cells and generate second readout data ROD 2 .
- An error rate 514 of the page 210 is determined based on the first readout data ROD 1 and the second readout data ROD 2 .
- each of a subset of the plurality of memory cells stores one of the two consecutive data items (e.g., “100” or “011”) and has a respective threshold voltage (e.g., V TH4 or V TH5 ) corresponding to the stored data item.
- a number of memory cells storing a first data item reaches a first peak at a first nominal threshold voltage (e.g., V TH4 ), and a number of memory cells storing a second data item (e.g., “011”) reaches a second peak at a second nominal threshold voltage (e.g., V TH5 ).
- the memory cells storing the first and second data items correspond to threshold voltage probability distributions L 3 and L 4 , respectively.
- a nominal readout voltage VRO 0 is identified for reading the plurality of memory cells.
- the first readout voltage VRO 1 is less than the nominal readout voltage ROD 1 by a first variation ⁇ V 1
- the second readout voltage VRO 2 is greater than the nominal readout voltage VRO 0 by a second variation ⁇ V 2 .
- the nominal readout voltage VRO 0 is an average of the two nominal threshold voltages (e.g., V TH4 and V TH5 ).
- the nominal readout voltage VRO 0 corresponds to the bottom 504 of the valley 502 at which the probabilities of having an associated threshold voltage associated with the distributions L 3 and L 4 are equal.
- the first variation ⁇ V 1 is predefined and equal to the second variation ⁇ V 2 .
- the first variation ⁇ V 1 and the second variation ⁇ V 2 define a readout range 520 within the valley 502 .
- the readout range 520 is smaller than the valley 502 and fully enclosed between the two nominal threshold voltages (e.g., V TH4 and V TH5 ).
- a difference of the readout voltage VRO 1 and VRO 2 i.e., a sum of the variations ⁇ V 1 and ⁇ V 2
- 120 mV is equal to 120 mV.
- the first readout data ROD 1 identifies a first number 516 of memory cells that store a first data item (e.g., “100”) of the two consecutive data items
- the second readout data ROD 2 identifies a second number 518 of memory cells that store the first data item (e.g., “011”).
- a difference between the first number and the second number is determined based on the first readout data ROD 1 and the second readout data ROD 2 .
- the error rate 514 of the page 210 is determined based on the difference between the first number 516 and the second number 518 .
- the first readout data ROD 1 includes a plurality of first data values 522 each of which corresponds to a distinct one of the plurality of memory cells
- the second readout data ROD 2 includes a plurality of second data values 524 each of which corresponds to a distinct one of the plurality of memory cells.
- the error rate 514 of the page 210 is determined by applying a bitwise logic operation to combine the plurality of first data values 522 of the first readout data ROD 1 and the plurality of second data values 524 of the second readout data ROD 2 .
- a bitwise XOR logic is applied to combine each of the plurality of first data values 522 (e.g., equal to “100” or “011”) with a respective one of the plurality of second data values 524 (e.g., equal to “100” or “011”) to determine whether they are identical to each other on a bit level.
- a mismatching number is counted to indicated how many pairs of two associated data values in the plurality of first data values 522 and the plurality of second data values 524 are not equal to each other, and used to determine the page error rate 514 of the page 210 .
- the memory device 240 implements an error correction process 528 on the plurality of memory cells of the page, thereby correcting a subset of memory cells of the page 210 that have been identified as including error bits.
- Memory cells corresponding to the distribution tail 510 of the distribution L 3 stores a first data item (e.g., “100”), and however, is erroneously read as a second data item (e.g., “011”).
- Memory cells corresponding to the distribution tail 512 of the distribution L 4 stores the second data item (e.g., “011”), and however, is erroneously read as the first data item (e.g., “100”).
- the memory cells corresponding to the distribution tail 510 are different, so are the memory cells corresponding to the distribution tail 512 .
- the page error rate 514 indicates the difference of the memory cells corresponding to the distribution tails 510 and 512 under different readout voltages VRO 1 and VRO 2 .
- the error correction process identifies and corrects the memory cells corresponding to the distribution tails 510 and 512 by an error correction method.
- a background data refresh 530 is applied to create a new page with writing content stored in the plurality of memory cells.
- the new page is physically located at a different memory address from that of the original page having erroneous data. Data are recovered from a redundant copy to replace the erroneous data of the subset of memory cells.
- a memory page 210 is affected by program disturb, read disturb, and charge loss over time.
- a background data refresh operation is applied to clear bit errors periodically.
- Content is read from the memory page 210 and programmed to a different memory page where bit errors are corrected.
- a memory page 210 is read (e.g., loaded into a cache of a memory controller 202 of the memory device 240 ), and an error correction operation is applied to count a number of bit errors in the memory page 210 . If the number of bit errors is low (e.g., less than an error threshold), the bit errors are corrected locally, and contents of the memory page 210 do not need to be written to another memory page, which helps conserve write power and write I/O bandwidth and improve QoS for host reads.
- the memory device 240 includes NAND flash memory, and each memory cell includes an NAND memory cell.
- FIG. 6 is a diagram illustrating a correlation 600 between a number of bit errors and a number of bits in a readout range 520 , in accordance with some embodiments.
- the readout range 520 is 120 mV wide.
- an optimal readout voltage VROO corresponds to a smallest number of bit errors.
- a middle point of the readout range 520 shifts to the right or to the left of the optimal readout voltage VROO, resulting in a larger variation of bit errors than that corresponding to the middle point of the readout range 520 overlapping the optimal readout voltage VROO.
- a first set of points 602 corresponds to a readout range 520 having a middle point that shifts to the left of the optimal readout voltage VROO
- a second set of points 604 corresponds to a readout range 520 having a middle point that shifts to the right of the optimal readout voltage VROO
- a third set of points 606 corresponds to a readout range 520 having a middle point that overlaps the optimal readout voltage VROO.
- the variation of the error bits for the first set of points 602 and the second set of points 604 is greater than that for the third set of points.
- the optimal readout voltage VROO is the bottom 504 of the valley 502 , where two probabilities of having an associated threshold voltage associated with the two immediately adjacent distributions (e.g., L 3 and L 4 in FIG. 5 ) are equal.
- E number of bit errors
- V valley
- Vt threshold voltage
- E may be estimated from V by multiplying V by a constant value.
- midpoint of the valley was offset to the right or the left of an optimal read reference, estimating E by multiply V by a constant value will be less accurate in many cases, as there is a wider variation in the relationship between E and V.
- each memory page 210 is read in response to a soft read command.
- the memory device 240 counts a number of bits in the valley 502 between two immediately adjacent distributions, e.g., L 4 and L 5 in FIG. 5 . This increases memory read array power, reduces a read I/O power, increases a read latency, reduces a read I/O bandwidth, and possibly improves QoS for host reads by reducing background memory operations.
- the number of bits in the valley is correlated with the number of bit errors in most cases. If the number of bits in the valley 502 is low, the contents do not need to be written to another page, which thereby reduces write power and write I/O bandwidth and improves QoS for host reads by reducing background memory operations. If the number of bits in the valley is high, the content of the page is programmed to a distinct page.
- FIG. 7 A illustrates a page scheme 700 of a memory device 240 having a plurality of TLC memory cells, in accordance with some embodiments
- FIG. 7 B illustrates a process 750 of selecting a readout range 520 based on the page scheme 700 shown in FIG. 7 A , in accordance with some embodiments.
- a plurality of data bits are configured to represent a plurality of data items including two consecutive data items, and the plurality of data bits are coded such that every two consecutive data items correspond to a difference (e.g., a flip) of a respective one of the plurality of data bits.
- each of the plurality of TLC memory cells stores an ordered sequence of three bits representing a respective one of a set of consecutive data items (e.g., “111,” “011,” “001,” “101,” “100,” “000,” “010,” and “110”) including two consecutive data items (e.g., “100” and “000” corresponding to distributions L 4 and L 5 , respectively).
- a set of consecutive data items e.g., “111,” “011,” “001,” “101,” “100,” “000,” “010,” and “110”
- two consecutive data items e.g., “100” and “000” corresponding to distributions L 4 and L 5 , respectively.
- the memory device 240 selects two lowest consecutive data items (e.g., “111” and “011”) to determine the page error rate 514 .
- the two lowest consecutive data items have the lowest positions in the set of consecutive data items.
- the memory device 240 selects two highest consecutive data items (e.g., “110” and “010”) to determine the page error rate 514 .
- the two highest consecutive data items have the highest positions in the set of consecutive data items.
- the memory device 240 selects two middle consecutive data items (e.g., “101” and “100”) as the two consecutive data items to represent the validity condition of the page 210 and determine the page error rate 514 .
- the two consecutive data items are selected, in accordance with a determination the two consecutive data items correspond to a highest error rate among all data items that are stored in the page 210 .
- each page 210 of memory cells has a plurality of subpages 702 , and each subpage 702 corresponds to a respective bit of the plurality of bits representing the set of consecutive data items.
- each MLC-based page 210 has two subpages, and each subpage corresponds to one of two bits representing a set of four consecutive data items (e.g., in FIG. 4 B ).
- Each TLC-based page 210 has three subpages 702 , and each subpage 702 corresponds to one of three bits representing a set of eight consecutive data items (e.g., in FIG. 4 C or 7 A ).
- Each QLC- or PLC-based page 210 has four or five subpages, and each subpage corresponds to one of four or five bits representing a set of sixteen or thirty-two consecutive data items, respectively. More specifically, for the TLC-based page 210 , the three subpages 702 includes an extra page XP, an upper page UP, and a lower page LP that correspond to a most significant bit, a middle bit, and a least significant bit representing the set of eight consecutive data items.
- the memory device 240 identifies a subset of the plurality of subpages.
- the subset of the plurality of subpages 702 is read with the first readout voltage VRO 1 to determine the first readout data ROD 1 , and with the second readout voltage VRO 2 to determine the second readout data ROD 2 .
- the two consecutive data items selected to determine the page error rate 514 are “111” and “011” in the page scheme 700 of the memory device 240 .
- the subset of subpages 702 includes XP.
- the readout voltages VRO 1 and VRO 2 in a valley R 1 are applied on the subpage XP to determine the page error rate 514 . Referring to FIG.
- every two consecutive data items correspond to a difference of a respective one of the set of three data bits, which further corresponds to a respective subpage.
- the readout voltages VRO 1 and VRO 2 in a valley R 1 , R 2 , R 3 , R 4 , R 5 , R 6 , or R 7 correspond to a respective subpage XP, UP, XP, LP, XP, UP, or XP, respectively, and are applied to determine the page error rate 514 .
- the readout voltages VRO 1 and VRO 2 are successively applied in each of the valleys R 1 , R 3 , R 5 , and R 7 to determine a respective error rate 514 for the extra page XP.
- the memory device determines whether there is a current flowing through a memory string or not, data values 522 and 524 (e.g., data bits of upper subpages) in each memory cell, and associated threshold voltages.
- the two consecutive data items are selected to identify a valley having the worst error rate 514 , in accordance with a determination the two consecutive data items correspond to a highest error rate among all data items that are stored in the page 210 .
- more than one valley having the worst error rates 514 is used to determine the error rate 514 .
- the memory device 240 configures a soft read command to read at valleys R 1 , R 4 , R 6 , and R 7 . A number of bits corresponding to each of these valleys is checked to determine the numbers 516 and 518 and the page error rate 514 ( FIG. 5 ).
- a first subset of memory cells store a first set of two consecutive data items and correspond to a first set of two nominal threshold voltages.
- the memory device 240 further includes one or more second subsets of memory cells, and each second subset of memory cells stores a second set of consecutive data items and corresponding to a second set of two nominal threshold voltage.
- the memory device selects a third readout voltage VRO 3 , and a fourth readout voltage VRO 4 , between the second set of two nominal threshold voltages.
- the third and fourth readout voltages VRO 3 and VRO 4 are applied to read the plurality of memory cells and generate third readout data RDO 3 and fourth readout data RDO 4 , respectively.
- the error rate 514 of the page 210 is determined based on both the first readout data ROD 1 and the second readout data of the first subset of memory cells ROD 2 and the third readout data ROD 3 and the fourth readout data ROD 4 of the second subset of memory cells.
- a portion of a memory page includes the first subset and the one or more second subsets of memory cells. The validity condition of the entire page is determined based on the portion of the page.
- the memory device 240 includes NAND flash memory, and each memory cell includes an NAND memory cell.
- the memory device 240 reads each NAND word line with a soft read command. For example, the memory device 240 reads the valleys 502 that have the most bit errors in different NAND pages in the word line.
- the memory device 240 counts the number of bits in the readout range 520 between two immediately adjacent distributions (e.g., L 0 -L 7 ).
- the controller 202 counts the number of bits, there is a reduction in reads, e.g., thereby decreasing background NAND operations, an NAND read array power, reducing an NAND read I/O power, decreasing an NAND read latency, reduce an NAND read I/O bandwidth, and improving QoS for host reads.
- the number of bits in the readout range 520 is correlated with the number of bit errors in most cases.
- the memory device 240 sets a readout voltage VRO in the readout range R 4 to determine whether or not current flows through an NAND string of a lower subpage LP or not, a threshold voltage V TH for each NAND memory cell, and bit values for the memory cells of the lower subpage LP.
- bit value is supposed to be “1” for memory cells associated with the distribution L 3 , and a subset of memory cells corresponding to a distribution tail 510 have threshold voltages higher than the readout voltage VRO and are read to output bit errors of “0.” Conversely, the bit value is supposed to be “0” for memory cells associated with the distribution L 4 , and a subset of memory cells corresponding to a distribution tail 512 have threshold voltages lower than the readout voltage VRO and are read to output bit errors of “1.”
- Bits in the readout range 520 typically includes more correct bits than bit errors. Some error bits are outside of the readout range 520 . In some embodiments, one or more soft read commands are applied to identify bits as inside or outside the readout range 520 .
- FIG. 8 is a flow diagram of an example method 800 for monitoring a page-level validity condition of a memory device 240 in an electronic system, in accordance with some embodiments.
- the electronic system includes a memory system 200 that further includes a memory device 240 having a memory controller 202 ( FIG. 2 ).
- the method 800 is implemented by the memory device 240 .
- the memory system 200 includes one or more SSDs, each of which includes the memory controller 202 and is configured to implement the method 800 .
- the memory device 240 e.g., a controller 280 of the memory device 240 in FIG. 2 ) receives (operation 802 ) an inquiry for a validity condition of a page 210 of the memory device 240 .
- the page 210 includes (operation 804 ) a plurality of memory cells that store at least two consecutive data items and correspond to at least two nominal threshold voltages.
- the memory device 240 selects (operation 806 ) a first readout voltage VRO 1 and a second readout voltage VRO 2 between the two nominal threshold voltages.
- the memory device 240 applies (operation 808 ) the first readout voltage VRO 1 to read the plurality of memory cells and generate first readout data ROD 1 , applies (operation 810 ) the second readout voltage VRO 2 to read the plurality of memory cells and generate second readout data ROD 2 , and determines (operation 812 ) an error rate 514 of the page 210 based on the first readout data ROD 1 and the second readout data ROD 2 .
- the first readout data ROD 1 identifies a first number 516 of memory cells that store a first data item of the two consecutive data items
- the second readout data ROD 2 identifies a second number 518 of memory cells that store the first data item.
- the memory device 240 determines the error rate 514 of the page 210 by generating a difference between the first number 516 and the second number 518 based on the first readout data ROD 1 and the second readout data ROD 2 and determining the error rate 514 of the page 210 based on the difference between the first number 516 and the second number 518 .
- the first readout data ROD 1 includes a plurality of first data values 522 (e.g., data bits of upper subpages UP) each of which corresponds to a distinct one of the plurality of memory cells
- the second data includes a plurality of second data values 524 (e.g., data bits of upper subpages UP) each of which corresponds to a distinct one of the plurality of memory cells.
- the memory device 240 determines the error rate 514 of the page 210 by applying a bitwise logic operation to combine the plurality of first data values 522 of the first readout data ROD 1 and the plurality of second data values 524 of the second readout data ROD 2 .
- the memory device 240 selects the first readout voltage VRO 1 and the second readout voltage VRO 2 between the two nominal threshold voltages by identifying a nominal readout voltage applied to read the plurality of memory cells, identifying the first readout voltage VRO 1 that is less than the nominal readout voltage by a first variation ⁇ V 1 , and identifying the second readout voltage VRO 2 that is greater than the nominal readout voltage by a second variation ⁇ V 2 .
- the nominal readout voltage is an average of the two nominal threshold voltages.
- the first variation ⁇ V 1 is predefined and equal to the second variation ⁇ V 2 .
- each of a subset of the plurality of memory cells stores one of the two consecutive data items (e.g., “100” and “011” in FIG. 5 ) and has a respective threshold voltage (e.g., V TH4 and V TH5 in FIG. 5 ). Based on the respective threshold voltages of memory cells, a number of memory cells storing a first data item reaches a first peak 506 at a first nominal threshold voltage (e.g., V TH4 ), and a number of memory cells storing a second data item reaches a second peak 508 at a second nominal threshold voltage (e.g., V TH5 ).
- a first nominal threshold voltage e.g., V TH4
- V TH5 second nominal threshold voltage
- the memory device 240 implements (operation 814 ) an error correction process on the plurality of memory cells of the page 210 .
- the memory device 240 refreshes (operation 816 ) the page 210 including writing content stored in the plurality of memory cells of the page 210 to a new page.
- each memory cell stores a plurality of data bits representing a respective one of a set of consecutive data items including the two consecutive data items.
- the memory device 240 selects one of (i) two lowest consecutive data items, (ii) two highest consecutive data items, and (iii) two middle consecutive data items as the two consecutive data items to represent the validity condition of the page 210 .
- each memory cell stores a plurality of data bits.
- the memory device 240 selects the two consecutive data items to represent the validity condition of the page 210 .
- the page 210 further includes a plurality of subpages 702 ( FIG. 7 A ), and each subpage 702 corresponds to a respective one of the plurality of data bits.
- the memory device 240 identifies a subset of the plurality of subpages, and the subset of the plurality of subpages is read with the first readout voltage VRO 1 to determine the first readout data ROD 1 , and with the second readout voltage VRO 2 to determine the second readout data ROD 2 .
- the two consecutive data items are selected, in accordance with a determination the two consecutive data items correspond to a highest error rate 514 among all data items that are stored in the page 210 .
- the plurality of data bits are configured to represent a plurality of data items including the two consecutive data items, and the plurality of data bits are coded such that every two consecutive data items correspond to a difference of a respective one of the plurality of data bits.
- the plurality of memory cells of the page 210 include TLC memory cells for which a set of three data bits is coded to represent eight consecutive data items.
- the plurality of subpages 702 of the page 210 include an upper page UP, a lower page LP, and an extra page XP, and every two consecutive data items corresponds to a difference of a respective one of the set of three data bits.
- the memory device 240 in response to the inquiry, selects a portion of the page 210 including the plurality of memory cells, wherein the validity condition of the entire page is determined based on the portion of the page 210 .
- the plurality of memory cells include a first subset of memory cells storing a first set of two consecutive data items and correspond to a first set of two nominal threshold voltages.
- the plurality of memory cells further include one or more second subsets of memory cells, each second subset of memory cells storing a second set of consecutive data items and corresponding to a second set of two nominal threshold voltage,
- the memory device 240 selects a third readout voltage VRO 3 and a fourth readout voltage VRO 4 between the second set of two nominal threshold voltages, and applies the third and fourth readout voltage VRO 4 to read the plurality of memory cells and generate third readout data ROD 3 and fourth readout data ROD 4 , respectively.
- the memory device 240 determines an error rate 514 of the page 210 based on both the first readout data ROD 1 and the second readout data ROD 2 of the first subset of memory cells and the third readout data ROD 3 and the fourth readout data ROD 4 of the second subset of memory cells.
- the memory device 240 implements the method 800 , and the memory controller 202 determines the error rate 514 of the page 210 based on the first readout data ROD 1 and ROD 2 (e.g., on a corresponding controller chip).
- a memory channel or die where the page 210 is stored implements the method 800 , and specifically, determines the error rate 514 of the page 210 based on the first readout data ROD 1 and ROD 2 locally on the memory channel or die (e.g., an NAND chip).
- effectiveness of this method 800 depends on a percentage of memory pages 210 have a high number of bit errors and need to be refreshed. The higher the percentage, the less useful the method; and the lower the percentage, the more useful the method.
- Running statistics could be used to determine whether or not to enable or disable the method 800 during run-time.
- 30% of the NAND word lines have high bit errors, and there are three subpages (XP, UP, and LP) per word line in a TLC SSD.
- Each soft read uses double the NAND array power as a normal read. Compared to performing three normal reads without the invention, the read array power would be 96% (e.g., a combination of 33%, 33%, and 30%).
- the read I/O bandwidth would be 63% (e.g., a combination of 33% and 30%).
- the read I/O bandwidth would be 30% if the memory device 240 could count the valley bits.
- Memory is also used to store instructions and data associated with the method 800 , and includes high-speed random-access memory, such as SRAM, DDR DRAM, or other random access solid state memory devices; and, optionally, includes non-volatile memory, such as one or more magnetic disk storage devices, one or more optical disk storage devices, one or more flash memory devices, or one or more other non-volatile solid state storage devices.
- the memory optionally, includes one or more storage devices remotely located from one or more processing units.
- Memory, or alternatively the non-volatile memory within memory includes a non-transitory computer readable storage medium.
- memory or the non-transitory computer readable storage medium of memory, stores the programs, modules, and data structures, or a subset or superset for implementing method 800 .
- the electronic system implements the method 800 at least partially based on an ASIC.
- the memory system 200 of the electronic system includes an SSD in a data center or a client device.
- Each of the above identified elements may be stored in one or more of the previously mentioned memory devices, and corresponds to a set of instructions for performing a function described above.
- the above identified modules or programs i.e., sets of instructions
- the memory optionally, stores a subset of the modules and data structures identified above.
- the memory optionally, stores additional modules and data structures not described above.
- the term “if” is, optionally, construed to mean “when” or “upon” or “in response to determining” or “in response to detecting” or “in accordance with a determination that,” depending on the context.
- the phrase “if it is determined” or “if [a stated condition or event] is detected” is, optionally, construed to mean “upon determining” or “in response to determining” or “upon detecting [the stated condition or event]” or “in response to detecting [the stated condition or event]” or “in accordance with a determination that [a stated condition or event] is detected,” depending on the context.
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Dram (AREA)
Abstract
Description
S=yH T (1)
where y is the recovered codeword 302′. In some embodiments, in accordance with a determination that the syndrome s is equal to 0, the ECC decoder 312 determines that all parity-check equations associated with the parity-check matrix H are satisfied and that the recovered codeword 302′ is valid. Conversely, in accordance with a determination that the syndrome is not equal to 0, the ECC decoder 312 determines that at least a predefined number (e.g., one, two) parity check equation associated with the parity-check matrix H is not satisfied and that the recovered codeword 302′ is not valid. Alternatively, in some embodiments, the ECC decoder 312 operates to solve the following equation:
S=eH T (2)
where e is an error vector. The syndrome vector s is a combination of the error vector e and a valid codeword 302. Given that the syndrome vector s and the parity check matrix H are known, the ECC decoder 312 solves equation (2) to obtain the error vector e and identify the erroneous bits in the recovered codeword 302′.
Claims (20)
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/393,056 US12482533B2 (en) | 2023-12-21 | 2023-12-21 | Background data refresh using soft reads |
| TW113149803A TW202536874A (en) | 2023-12-21 | 2024-12-20 | Background data refresh using soft reads |
| PCT/US2024/061545 WO2025137627A1 (en) | 2023-12-21 | 2024-12-20 | Background data refresh using soft reads |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/393,056 US12482533B2 (en) | 2023-12-21 | 2023-12-21 | Background data refresh using soft reads |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20250210127A1 US20250210127A1 (en) | 2025-06-26 |
| US12482533B2 true US12482533B2 (en) | 2025-11-25 |
Family
ID=96095525
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/393,056 Active 2044-06-02 US12482533B2 (en) | 2023-12-21 | 2023-12-21 | Background data refresh using soft reads |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US12482533B2 (en) |
| TW (1) | TW202536874A (en) |
| WO (1) | WO2025137627A1 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150332778A1 (en) * | 2012-10-25 | 2015-11-19 | Kwanghoon Kim | Semiconductor memory systems using regression analysis and read methods thereof |
| US20160218740A1 (en) * | 2015-01-28 | 2016-07-28 | Micron Technology, Inc. | Estimating an error rate associated with memory |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9176800B2 (en) * | 2011-08-31 | 2015-11-03 | Micron Technology, Inc. | Memory refresh methods and apparatuses |
| US9971646B2 (en) * | 2016-06-01 | 2018-05-15 | Apple Inc. | Reading-threshold setting based on data encoded with a multi-component code |
| US10388394B2 (en) * | 2017-07-25 | 2019-08-20 | Apple Inc. | Syndrome weight based evaluation of memory cells performance using multiple sense operations |
| US11003383B2 (en) * | 2019-07-17 | 2021-05-11 | Micron Technology, Inc. | Estimation of read level thresholds using a data structure |
| US11663074B1 (en) * | 2021-11-17 | 2023-05-30 | Macronix International Co., Ltd. | Determining read voltages for memory systems |
-
2023
- 2023-12-21 US US18/393,056 patent/US12482533B2/en active Active
-
2024
- 2024-12-20 TW TW113149803A patent/TW202536874A/en unknown
- 2024-12-20 WO PCT/US2024/061545 patent/WO2025137627A1/en active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150332778A1 (en) * | 2012-10-25 | 2015-11-19 | Kwanghoon Kim | Semiconductor memory systems using regression analysis and read methods thereof |
| US20160218740A1 (en) * | 2015-01-28 | 2016-07-28 | Micron Technology, Inc. | Estimating an error rate associated with memory |
Also Published As
| Publication number | Publication date |
|---|---|
| US20250210127A1 (en) | 2025-06-26 |
| WO2025137627A1 (en) | 2025-06-26 |
| TW202536874A (en) | 2025-09-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11334413B2 (en) | Estimating an error rate associated with memory | |
| US9384126B1 (en) | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems | |
| KR101990971B1 (en) | Memory, memory system, and error checking/correction method for memory | |
| US9847139B2 (en) | Flash channel parameter management with read scrub | |
| US9524235B1 (en) | Local hash value generation in non-volatile data storage systems | |
| US10541034B2 (en) | Determining read voltages for a storage device | |
| CN109471808B (en) | Storage system with data reliability mechanism and its operation method | |
| US11810627B2 (en) | Selective read disturb sampling | |
| US10324785B2 (en) | Decoder using low-density parity-check code and memory controller including the same | |
| US11763914B2 (en) | Adapting an error recovery process in a memory sub-system | |
| CN117437957A (en) | Memory system, memory device and method of operating memory device | |
| US9009576B1 (en) | Adaptive LLR based on syndrome weight | |
| US11528038B2 (en) | Content aware decoding using shared data statistics | |
| US9704594B1 (en) | Inter-cell interference reduction in flash memory devices | |
| US12482533B2 (en) | Background data refresh using soft reads | |
| CN114097035A (en) | Decision to perform full memory refresh during memory subsystem power-on phase | |
| US20250095765A1 (en) | Error condition monitoring in memory systems | |
| US11742053B2 (en) | Managing execution of a scrub operation in view of an operating characteristic of a memory subsystem | |
| US12341530B1 (en) | Check node updates in bit flipping decoders | |
| US12340126B2 (en) | Workload-based scan optimization | |
| CN112562772A (en) | Adaptive low density parity check hard decoder | |
| US20250349378A1 (en) | Reducing read operations during read error handling in a memory device | |
| WO2025235320A1 (en) | Self-corrected low-density parity check (ldpc) with index match |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| AS | Assignment |
Owner name: SK HYNIX NAND PRODUCT SOLUTIONS CORP. (DBA SOLIDIGM), CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KWOK, ZION;REEL/FRAME:065976/0211 Effective date: 20231205 Owner name: SK HYNIX NAND PRODUCT SOLUTIONS CORP. (DBA SOLIDIGM), CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNOR'S INTEREST;ASSIGNOR:KWOK, ZION;REEL/FRAME:065976/0211 Effective date: 20231205 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: ALLOWED -- NOTICE OF ALLOWANCE NOT YET MAILED Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |