US12327026B2 - Memory controller, memory device, memory system and operation method thereof - Google Patents
Memory controller, memory device, memory system and operation method thereof Download PDFInfo
- Publication number
- US12327026B2 US12327026B2 US18/148,859 US202218148859A US12327026B2 US 12327026 B2 US12327026 B2 US 12327026B2 US 202218148859 A US202218148859 A US 202218148859A US 12327026 B2 US12327026 B2 US 12327026B2
- Authority
- US
- United States
- Prior art keywords
- programming
- replacement
- memory
- binary code
- data
- 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
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3468—Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
Definitions
- the present patent relates to the field of semiconductor technologies, and more particularly to a memory controller, a memory device, a memory system and an operation method thereof.
- Non-volatile memory devices have been widely used in electronic devices in various fields.
- a flash memory is one of the most widely used nonvolatile memory devices that can be electrically erased and reprogrammed, and may include memory devices with NOR and NAND architectures.
- a threshold voltage of each memory cell in the flash memory is changed to a required electrical level to implement various operations, such as reading, programming and erasing.
- erasing operations may be executed based on block levels
- programming operation may be executed based on page levels
- reading operations may be executed based on memory cell levels.
- the programming of a multi-state flash memory is implemented by identifying a plurality of different threshold voltage ranges.
- Each memory cell stores more and more data as the capacity of the NAND Flash increases.
- the NAND Flash has evolved from an SLC (each cell may store one bit of information) and an MLC (each cell may store two bits of information) to a TLC (each cell may store three bits of information), and even a QLC (each cell may store four bits of information) and a PLC (each cell may store five bits of information).
- the memory controller will scatter host data at random using a random function generator and then store the scattered host data in the NAND Flash.
- operations are often complicated.
- FIG. 1 shows a schematic circuit diagram of an example memory device according to some aspects of the present disclosure
- FIG. 2 shows a side view of a cross section of a memory string of an example memory cell array according to some aspects of the present disclosure
- FIG. 3 shows a schematic circuit diagram of a peripheral circuit in some example memory devices
- FIG. 4 shows a schematic structural diagram of some example electronic devices
- FIG. 5 A shows a schematic diagram of four threshold voltage distributions of some example MLCs
- FIG. 5 B shows a schematic diagram of eight threshold voltage distributions of some example TLCs
- FIG. 6 is a schematic structural diagram of stepping pulse of an ISPP mode provided according to an example of the present disclosure
- FIG. 7 is a schematic diagram of a verification voltage pulse provided according to an example of the present disclosure.
- FIG. 8 shows a schematic diagram of the eight threshold voltage distributions of the TLC that correspond to programming duration of a second programming stage provided according to an example of the present disclosure
- FIG. 9 A shows a schematic diagram of an effect of electric charge leakage corresponding to one time of an erasing cycle of a memory block provided according to an example of the present disclosure
- FIG. 9 B shows a schematic diagram of an effect of electric charge leakage corresponding to 3000 times of erasing cycles of a memory block provided according to an example of the present disclosure
- FIG. 10 shows a schematic diagram of an effect of sixteen threshold voltage distributions of a QLC that correspond to programming duration provided according to an example of the present disclosure
- FIG. 11 shows a schematic diagram of an example flowchart of an operation method of a memory controller provided by the present disclosure
- FIG. 12 shows a schematic diagram of an example memory device (e.g., a memory card) with a memory system according to some aspects provided by the present disclosure
- FIG. 13 shows a schematic diagram of an example solid-state drive (SSD) with a memory system according to some aspects of the present disclosure.
- SSD solid-state drive
- orientation or positional relationships indicated by the terms “center”, “upper”, “lower”, “front”, “back”, “left”, “right”, “vertical”, “horizontal”, “top”, “bottom”, “inside” and “outside”, etc. are orientation or positional relationships shown on the basis of the accompanying drawings, only for the purposes of the ease in describing the present disclosure and simplification of its descriptions, but not indicating or implying that a specified apparatus or element must be specifically located, and structured and/or operated in a specific orientation, and therefore, should not be understood as limitations to the present disclosure.
- the term “include” is interpreted as an open and inclusive meaning, that is, “including, but not limited to”.
- the terms such as “one implementation”, “some implementations”, “exemplary implementations”, “example”, “example implementations”, “exemplarily” or “some examples” are intended to indicate that a specific feature, structure, material or characteristic related to this implementation or example is included in at least one implementation or example of the present disclosure.
- the schematic representations of the above terms do not necessarily refer to the same implementation or example.
- the specific feature, structure, material or characteristic described may be included in any one or more implementations or examples in any suitable way.
- first and second are only used for a descriptive purpose, and shall not be understood as indicating or implying relative importance or implicitly indicating the quantity of indicated technical features. Therefore, the features defined as “first” and “second” may include one or more of these features explicitly or implicitly.
- a plurality of means two or more.
- A, B and C has the same meaning as the expression “at least one of A, B or C”, and these two expressions each include the following combinations of A, B and C: only A, only B, only C, a combination of A and B, a combination of A and C, a combination of B and C, and a combination of A, B and C.
- a and/or B includes the following three combinations: only A, only B, and a combination of A and B.
- the terms “about”, “roughly” or “approximately” include a stated value and an average within an acceptable deviation range of a specific value.
- the acceptable deviation range is determined by those of ordinary skill in the art by taking into account the measurement being discussed and an error related to the measurement of a specific amount (i.e., the limitation of a measurement system) and/or manufacturing tolerances.
- FIG. 1 is a schematic circuit diagram of an example memory device 30 according to some aspects of the present disclosure.
- the memory device 30 includes a memory cell array 301 and a peripheral circuit 302 coupled to the memory cell array 301 .
- the memory cell array 301 may be a NAND flash memory device cell array in which memory cells 306 are disposed in the form of an array of memory strings 308 of NAND memory devices.
- the memory string 308 of each NAND memory device extends vertically above a substrate.
- the memory string 308 of each NAND memory device includes a plurality of memory cells 306 which are coupled in series and stacked vertically.
- Each memory cell 306 may maintain a continuous analog value, such as a voltage or a charge, depending on the number of electrons captured in an area of the memory cell 306 .
- Each memory cell 306 may be a floating gate type memory device cell including a floating gate transistor or a charge capture type memory device cell including a charge capture transistor. It should be noted that for illustrative purposes, the NAND memory device of the present disclosure is only an example.
- the memory device 30 may include any suitable solid-state non-volatile memory devices, such as a NOR flash memory, a FeRAM, a PCM, a MRAM, a STT-AM or a RRAM, etc.
- FIG. 1 shows a schematic diagram of an example memory device including a peripheral circuit.
- the example memory device may include a memory cell array 301 and the peripheral circuit 302 coupled to the memory cell array 301 .
- the memory cell array 301 may be a NAND flash memory array.
- the memory cell 306 is provided in the form of an array of NAND memory strings 308 , and each NAND memory string 308 extends vertically above a substrate (not shown).
- each NAND memory string 308 includes a plurality of memory cells 306 which is coupled in series and stacked vertically.
- Each memory cell 306 may maintain a continuous analog value, such as a voltage or a charge, depending on the number of electrons captured in an area of the memory cell 306 .
- Each memory cell 306 may be a floating gate type memory device cell including a floating gate transistor or a charge capture type memory device cell including a charge capture transistor.
- each NAND memory string 308 may include a source selection gate (SSG) 310 at its source end and a drain selection gate (DSG) 312 at its drain end.
- the SSG 310 and the DSG 312 may be configured to activate a selected NAND memory string 308 (a column of the array) during read and/or program (e.g., write) operations.
- sources of the NAND memory strings 308 in the same memory block 304 are coupled through the same source line (SL) 314 (for example, a common SL).
- SL source line
- all NAND memory strings 308 in the same memory block 304 have an array common source (ACS).
- each NAND memory string 308 is coupled to a corresponding bit line 316 , and data may be read and/or written from/to the bit line 316 via an output bus.
- each NAND memory string 308 is configured to be selected or deselected by applying a selection voltage (for example, a voltage higher than a threshold voltage of a transistor with the DSG 312 ) or a deselection voltage (for example, 0V) to the corresponding DSG 312 via one or more DSG lines 313 and/or applying a selection voltage (for example, a voltage higher than a threshold voltage of a transistor with the SSG 310 ) or a deselection voltage via one or more SSG lines 315 to the corresponding SSG 310 .
- a selection voltage for example, a voltage higher than a threshold voltage of a transistor with the DSG 312
- a deselection voltage for example, 0V
- the NAND memory strings 308 may be organized into a plurality of memory blocks 304 , each of which may have a common source line 314 (for example, coupled to the ground).
- each memory block 304 is a basic data unit for an erase operation, that is, all memory cells 306 on the same memory block 304 are erased at the same time.
- an erase voltage (Vers) (e.g., a high positive voltage which is 20 V or higher) may be coupled to the source line 314 of the selected memory block 304 and the unselected memory block 304 on the same plane as the selected memory block 304 .
- the erase operation may be performed at a half-block level, at a quarter-block level, or at a level with any suitable number of blocks or any suitable fraction of blocks.
- the memory cells 306 of the adjacent NAND memory strings 308 may be coupled through a word line 318 , which selects which line of the memory cell 306 receives read and program/write operations.
- the memory cells 306 coupled to the same word line 318 is called a page 320 .
- the page 320 is a basic data unit for the program operation or the read operation.
- the size of the page 320 in bits may be related to the number of NAND memory strings 308 coupled by the word line 318 in one memory block 304 .
- Each word line 318 may include a plurality of control gates (e.g., gate electrodes) at each memory cell 306 in the corresponding page 320 and gate lines coupling the control gates.
- each memory cell 306 is a single-level cell (SLC) that has two possible data states and, thus, may store one bit of data.
- a first data state “0” may correspond to a first voltage range
- a second data state “1” may correspond to a second voltage range.
- each memory cell 306 can store more than a single bit of data in more than two data states.
- a multi-level cell (MLC) may store two bits of data
- TLC triple-level cell
- QLC quad-level cell
- PLC penta-level cell
- each memory block 304 is a basic data unit for an erase operation, that is, all memory cells 306 on the same memory block 304 are erased at the same time.
- FIG. 2 shows a side view of a cross section of a memory string 308 of an example memory cell array 301 including NAND memory devices according to some aspects of the present disclosure.
- the memory string 308 of the NAND memory device may extend vertically through a stack structure 404 above a substrate 402 .
- the substrate 402 may be made of silicon (such as monocrystalline silicon), silicon germanium (SiGe), gallium arsenide (GaAs), germanium (Ge), silicon-on-insulator (SOI), germanium-on-insulator (GOI), and/or any other suitable material.
- the stack structure 404 may include alternating conductive layers 406 and dielectric layers 408 .
- the number of the conductive layers 406 and the number of dielectric layers 408 in the stack structure 404 may determine the number of memory cells 306 in the memory cell array 301 .
- the conductive layer 406 may be made of a conductive material which includes but is not limited to tungsten (W), cobalt (Co), copper (Cu), aluminum (Al), polysilicon, doped silicon, silicide or any combination thereof.
- FIG. 3 shows a schematic circuit diagram of some example peripheral circuits 302 which include a read/write circuit 504 , a column decoder 506 , a row decoder 508 , a voltage generator 510 , a control circuit 512 , a register 514 , and an input/output (I/O) circuit 516 . It should be understood that in some examples, additional circuits (e.g., peripheral circuits) not shown in FIG. 3 may also be included.
- the memory cell array 301 may be addressed via the word line via the row decoder 508 and the bit line via the column decoder 506 .
- the control circuit 512 is configured to cooperate with the read/write circuit 504 to perform a storage operation on the memory cell array 301 .
- the control circuit 512 of this example includes a state machine, an on-chip address decoder, and a power control module.
- the state machine of this example is configured to provide chip level control for storage operations.
- the on-chip address decoder of this example is configured to provide an address interface between an address used by the host or the memory controller of a memory system 100 and a hardware address used by the column decoder 506 and the row decoder 508 .
- the power control module of this example is configured to control the power and voltage supplied to the word line and bit line at each memory operation device.
- FIG. 4 is a schematic structural diagram of an electronic device 1000 .
- the electronic device 1000 includes a host 20 , which may send a command CMD and/or data to the memory system 100 for storage in the memory device 30 , and may receive response RES and/or data read from the memory device 30 from the memory system 100 .
- the host 20 may be implemented as and/or include an application processor (AP) and/or a system on chip (SoC).
- AP application processor
- SoC system on chip
- the host 20 may be implemented as and/or include, but is not limited to, an integrated circuit, a main board, and/or a database server.
- the host 20 may communicate with the memory system 100 through various interfaces.
- the host 20 is electrically connected to the memory system 100 via a hot-swappable interface using a cable.
- the memory controller 40 may control all operations of the memory system 100 .
- the memory controller 40 may write data to the memory device 30 and/or read data from the memory device 30 in response to the command CMD from the host 20 .
- the memory cell array 301 in the memory system 100 discussed above is erasable, programmable and readable.
- the memory cells in the memory system 100 may be provided as single-level cells or multi-level cells. Further, the multi-level cells may be divided into multi-level cells (MLC), triple-level cells (TLC), quad-level cells (QLC), etc.
- MLC multi-level cells
- TLC triple-level cells
- QLC quad-level cells
- a threshold voltage of the programmed memory cell should be within one or more distributions at the end of the successful programming process (with verification). In practice, different memory cells have different data states.
- the SLC corresponds to two threshold voltage distributions: E and P.
- the threshold voltage distribution E corresponds to an erased data state.
- the threshold voltage distribution P corresponds to a programmed data state.
- the threshold voltage of the threshold voltage distribution E corresponding to the erased data state is smaller than the threshold voltage of the threshold voltage distribution P corresponding to the programmed data state.
- a memory cell having a threshold voltage in the threshold voltage distribution E is in the erased data state
- a memory cell having a threshold voltage in the threshold voltage distribution P is in the programmed data state.
- the SLC memory cell stores one bit of data.
- the erased memory cell stores data of logic value “1”
- the programmed memory cell stores data of logic value “0”.
- the MLC corresponds to four threshold voltage distributions: L 0 , L 1 , L 2 and L 3 . These distributions L 0 , L 1 , L 2 , L 3 exhibit sequentially increasing threshold voltages.
- the threshold voltage distribution L 0 corresponds to the erased data state
- the threshold voltage distributions L 1 , L 2 and L 3 correspond to respective programmed data states.
- the MLC memory cell stores two bits of data. In a specific example, the erased memory cell stores data “11”, the memory cell programmed to a data state L 1 stores data “10”, the memory cell programmed to a data state L 2 stores data “01”, and the memory cell programmed to a data state L 3 stores data “00”.
- the TLC corresponds to eight threshold voltage distributions: P 0 , P 1 , P 2 , P 3 , P 4 , P 5 , P 6 , and P 7 , with sequentially increasing threshold voltages.
- the threshold voltage distribution P 0 corresponds to the erased data state
- the threshold voltage distributions P 1 , P 2 , P 3 , P 4 , P 5 , P 6 , and P 7 correspond to respective programmed data states.
- the TLC memory cell stores three bits of data.
- the erased memory cell stores data “111”; the memory cell programmed to a data state P 1 stores data “110”; the memory cell programmed to a data state P 2 stores data “101”; the memory cell programmed to a data state P 3 stores data “100”; the memory cell programmed to a data state P 4 stores data “011”; the memory cell programmed to a data state P 5 stores data “010”; the memory cell programmed to a data state P 6 stores data “001”; and the memory cell programmed to a data state P 7 stores data “000”.
- the QLC corresponds to 16 threshold voltage distributions: P 0 , P 1 , P 2 , P 3 , P 4 , P 5 , P 6 , P 7 , P 8 , P 9 , P 10 , P 11 , P 12 , P 13 , P 14 , P 15 , with sequentially increasing threshold voltages.
- the threshold voltage distribution P 0 corresponds to the erased data state
- the threshold voltage distributions P 1 , P 2 , P 3 , P 4 , P 5 , P 6 , P 7 , P 8 , P 9 , P 10 , P 11 , P 12 , P 13 , P 14 , P 15 correspond to respective programmed data states.
- a data state N has a higher threshold voltage than a data state N ⁇ 1 and a lower threshold voltage than a data state N+1.
- the QLC memory cell may store four bits of data.
- the erased memory cell may store data “1111”, and the memory cells programmed to data states P 1 , P 2 , P 3 , P 4 , P 5 , P 6 , P 7 , P 8 , P 9 , P 10 , P 11 , P 12 , P 13 , P 14 and P 15 may store data “0111, 0101, 0001, 1001, 1000, 0000, 0100, 0110, 0010, 0011, 1011, 1010, 1110, 1100, 1101” in sequence.
- each threshold voltage distribution corresponds to a preset value of a group of data bits stored in the memory cell, and the specific relationship between the data programmed into the memory cell and the threshold voltage level of the memory cell depends on a data encoding solution adopted by the memory cell.
- a Gray encoding solution is an example of such a data encoding solution.
- the Gray encoding solution is a one-to-one mapping code to convert a digit into a binary code, and meets the following condition: the Gray codes of two adjacent digits differ by only one binary bit, and the last digit and the first digit also meet this condition.
- mapping is a Gray code: 0-000, 1-001, 2-011, 3-010, 4-110, 5-111, 6-101 and 7-100, in which (0, 1), (1, 2), . . . , (6, 7) and (7, 0) all differ by only one bit.
- multi-pass programming may be adopted when a memory page or block is programmed to achieve a closer threshold voltage distribution.
- the multi-pass programming may include two-pass programming, three-pass programming, etc.
- the two-pass programming may include a first-pass rough programming and a fine programming.
- the three-pass programming may include a first-pass rough programming, a second-pass rough programming and a fine programming.
- the last-pass programming in the multi-pass programming is a fine programming.
- the first-pass rough programming and the second-pass rough programming are collectively referred to as rough programming, and may also be referred to as non-last-pass programming.
- both of the non-last-pass programming and the fine programming may be in an incremental step pulse programming (ISPP) mode.
- the ISPP solution may program the memory cells in the selected memory page several times while gradually increasing bias voltages of the word lines based on step voltages. See FIG. 6 for an example incremental step pulse Vpgm.
- a programming voltage pulse with a larger set step length for example, 0.5 volts (V)
- a programming voltage pulse with a small set step length for example, 0.2V
- the intermediate data state is one or more data states before the programmed memory cell reaches the final data state, (i.e., before the last programmed data state).
- the intermediate data state may be at least one of S 1 and S 2 or other verifiable data states if the final data state of the memory cell is S 3 .
- the final data state is a data state to which a user expects the programmed memory cell to be programmed. For example, the final data state is S 3 when the TLC memory cell is programmed.
- a verification operation is performed between the application of two programmed voltage pulses, to determine whether the programmed memory cell is programmed to a target data state.
- the programming operation and the verification operation are performed alternately.
- the process of applying a programmed voltage pulse is also called a programming operation.
- the verification operation may be one or a set of verification voltage pulses as shown in FIG. 7 , in which 1001 and 1003 are step programming pulses Vpgm, and 1002 is a verification voltage pulse.
- the multi-pass programming may include at least one pass of rough programming and one pass of fine programming. Each pass of programming includes at least one programming operation and at least one verification operation.
- each programming level is set to correspond to one threshold voltage distribution, and the following programming levels are the above-mentioned different data states (including one erased state and 2 N ⁇ 1 programmed states, N being the number of data bits stored at most in the memory cell).
- the memory controller 40 may program the data received from the host 20 into the memory device 30 , and decode and send the data read from the memory device 30 to the host 20 .
- the threshold voltage corresponds to more and more states as the capacity of the memory device increases. Some states have the longest programming duration, the poorest data retention capability and the worst disturbance suppression state in the programming process, which adversely affects the performance of the memory device.
- an example of the present disclosure provides a memory controller 40 .
- the memory controller 40 is used to control a memory device 30 .
- the memory device 30 includes at least one memory cell which provides at most 2 N programming levels for storing N bits of data, and N is a positive integer.
- the memory controller 40 is configured to perform the operations of the memory system 100 as shown in FIG. 11 .
- S 100 data to be stored is examined to find a binary code to be replaced.
- the binary code corresponds to a preset programming level to be replaced.
- the data is to be stored by being written into the memory cell.
- different data states correspond to different binary codes of the stored data
- different memory cells have 2 N different data states corresponding to the number of bits of the stored data. Since the programming levels correspond to the data states, 2 N programming levels correspond to 2 N binary codes respectively.
- the 2 N binary codes include one binary code corresponding to the erased data state and 2 N ⁇ 1 binary codes corresponding to the programmed data state.
- the memory controller 40 receives the data to be stored from the host. before writing the data from the host into the memory cell of the memory device, the memory controller 40 verifies the data to be stored and determines whether the binary code corresponding to the preset programming level to be replaced can be found in the data.
- the memory controller 40 is configured to:
- the memory controller 40 sets one of the 2 N programming levels as the preset programming level to be replaced, and another of the 2 N programming levels as the preset replacement programming level (i.e., as programing level to replace the programming level identified by the binary code), such that the binary code corresponding to the preset programming level to be replaced is a binary code to be replaced, and the binary code corresponding to the preset replacement programming level is a replacement binary code.
- the binary code to be replaced i.e., the binary code corresponding to the preset programming level to be replaced
- the replacement binary code i.e., with the replacement binary code corresponding to the preset replacement programming level to be used
- the memory controller 40 is configured to:
- the memory controller 40 sets at least two of the 2 N programming levels as the preset programming levels to be replaced, and at least two other of the 2 N programming levels as the replacement preset programming levels, such that the binary codes respectively corresponding to the at least two preset programming levels to be replaced are binary codes to be replaced, and the binary codes respectively corresponding to the replacement preset programming levels are replacement binary codes.
- the binary codes to be replaced i.e., the codes corresponding to the at least two preset programming level to be replaced
- the replacement binary codes i.e., with the codes corresponding to the at least two preset replacement programming levels).
- the data storage capacity of the replacing relationship between the preset programming levels to be replaced and the preset replacement programming levels is increased since there are more replacing combinations of the at least two preset programming levels to be replaced and the at least two preset replacement programming levels, the flexibility in replacing the programming level by the data to be stored can be improved, and the performance of the memory device can be improved as a whole, such as shortening the programming duration and the erasing cycle.
- the preset programming levels to be replaced are M programming levels with the longest programming duration among all the programming levels
- the preset replacement programming levels are M programming levels with the shortest programming duration among all the programming levels, wherein M ⁇ N, and M and N being positive integers.
- the memory controller 40 applies a programming voltage by operating the memory device in an ISPP solution.
- the ISPP solution is implemented by increasing the programming voltage in unit of step voltage from a preset programming starting voltage.
- a verification voltage is applied to a programmed memory block for programming verification.
- the memory controller 40 receives a programming (or writing) command and memory address information.
- the memory controller 40 partially decodes the memory address into row address information and column address information.
- the memory controller 40 controls a voltage generator 510 to generate a programming voltage Vpgm for programming data in the memory cell array 301 and provides the row address information for a row decoder 508 .
- the row decoder 508 selectively supplies a word line voltage from the voltage generator 510 for a word line WL of the memory cell array 301 in response to the row address information. At least in this example, the row decoder 508 may select a memory block in response to a block address, and select a page therein. When a voltage is applied, the row decoder 508 applies a sufficiently high voltage to turn on a string selection transistor SST, and applies a low voltage to a ground/source transistor GST. The row decoder 508 supplies an unselected voltage to an unselected memory cell transistor MCT in order to prevent these unselected memory cells MC from changing their threshold distribution states.
- the row decoder 508 also applies a programming voltage Vpgm to the word lines WL of one or more selected memory cells.
- the programming voltage Vpgm starts with an initial voltage and increases incrementally in each programming cycle until the data is programmed. Verification operations then confirm that the data is successfully programmed.
- the programming voltage may vary from 15V to 20V.
- the column decoder 506 may perform programming by the ISPP solution as programming of the row decoder. In summary, several cycles of iterative processes are performed, and each cycle includes a program pulse application step for progressively increasing the threshold voltage and a verification reading step for determining whether the target threshold voltage is reached.
- a curve Q 1 indicates an erased state
- a curve Q 2 indicates an erasing suppression corresponding to P 0
- a curve Q 3 indicates a distribution of memory cells within four programming states.
- the memory controller 40 complementally applies the programming voltage Vpgm to the memory block by a peripheral circuit 302 , since the data retention capacity of the highest state in the 2 N states is poor, and programming is performed from the first programming state to the last programming state in the process of applying the programming voltage to the 2 N states of the memory cell for programming, the programming duration of the highest state of the 2 N states is also the longest.
- the memory controller 40 sets the M programming levels with the longest programming duration of the 2 N programming levels as the preset programming levels to be replaced, and sets the M programming levels with the shortest programming duration of the 2 N programming levels as the preset replacement programming levels, (i.e., the remaining M programming levels other than the M programming levels with the longest programming duration may be set as the preset replacement programming levels).
- the preset programming level to be replaced is an erased data state corresponding to the threshold voltage distribution P 0
- the preset replacement programming level is a programmed data state corresponding to the threshold voltage distribution P 7 .
- the time to program the memory device can, thus, be shortened.
- the preset programming levels to be replaced are M programming levels with a poorest data retention capability among all programming levels.
- the preset replacement programming levels are M programming levels with a strongest data retention capability among all the programming levels, wherein M ⁇ N, and M and N are positive integers.
- FIG. 9 A and FIG. 9 B illustrate charge leakage (from 1010 to 1020) caused when the memory block performs one erasing cycle and 3,000 erasing cycles.
- the charge leakage of the highest state may be more severe as the erasing cycle of the memory block increases.
- the memory controller 40 sets the M programming levels with the poorest data retention capacity of the 2 N programming levels as the preset programming levels to be replaced, and sets the M programming levels with the strongest data retention capacity of the 2 N programming levels as the preset replacement programming levels, (i.e., the remaining M programming levels other than the M programming levels with the poorest data retention capacity may be set as the preset replacement programming levels).
- the preset programming level to be replaced is a programmed data state corresponding to the threshold voltage distribution P 13
- the preset replacement program level is the erased data state corresponding to the threshold voltage distribution P 0 . According to this example, the data retention capability of the memory device can be improved and the programming duration can be indirectly shortened.
- the preset programming levels to be replaced are M programming levels with a worst disturbance suppression state among all programming levels, and the preset replacement programming levels are M programming levels with a best disturbance suppression state among all the programming levels, wherein M ⁇ N, and M and N being positive integers.
- the disturbance of the memory device includes, but is not limited to, reading disturbance, writing disturbance, and/or programming disturbance.
- the charge leakage of the highest state may be more severe as the erasing cycle of the memory block increases.
- the memory controller 40 sets the M programming levels with the worst disturbance suppression state of the 2 N programming levels as the preset programming levels to be replaced, and sets the M programming levels with the best disturbance suppression state of the 2 N programming levels as the preset replacement programming levels, (i.e., the remaining M programming levels other than the M programming levels with the worst disturbance suppression state may be set as the preset replacement programming levels).
- the disturbance suppression capability of the memory device and the accuracy of data storage of the memory device can be improved.
- the memory controller 40 sets the M programming levels with the worst reading disturbance suppression state of the 2 N program levels as the preset programming levels to be replaced, and sets the M programming levels with the best reading disturbance suppression state of the 2 N program levels as the preset replacement programming levels, which can reduce or eliminate the influence of a data reading operation on charges stored on the memory device, thereby effectively suppressing the probability of reading disturbance, increasing the probability of correctly reading the data stored in the memory device, and/or helping to improve the reading times of the data stored in the memory cell.
- the binary code to be replaced i.e., the binary code identified in S 100 in the data to be stored
- a replacement binary code corresponding to a preset replacement programming level
- a replacement identifier linking a memory address corresponding to the replacement binary code is generated.
- the memory controller 40 if the memory controller 40 finds the binary code to be replaced (i.e. the binary code corresponding to the preset programming level to be replaced), the memory controller 40 substitutes the replacement binary code in place of the found binary code, and generates a replacement identifier.
- the replacement identifier can distinguish, by means of marking, the original preset replacement programming level in the data to be stored from the new preset replacement programming level substituted for and changed from the preset programming level to be replaced.
- the replacement identifier may be associated with the memory address of the memory cell which will store the data (i.e., the data to be stored sometimes referred to herein as input data), such that in response to reading and obtaining the read data from the memory device in the following example, the memory controller 40 obtains, by decoding the read data and the replacement identifier linked to the memory address of the memory cell, the original data to be stored and sends it to the host 20 .
- the input data i.e., the data to be stored
- the binary code 1111 corresponding to the programming level P 0
- the binary code 1101 corresponding to the programming level P 15 i.e., the input data to be stored includes “1111” and “1101”.
- the memory controller 40 substitutes the binary code 1101 corresponding to the preset programming level P 15 to be replaced in the input data with another binary code 1111, and the memory controller 40 marks the change of the original binary code 1101 to 1111 in data to be tested with a replacement identifier, so as to distinguish the original replacement binary code in the input data from the replacement binary code changed from the binary code to be replaced.
- the number of states corresponding to the threshold voltage distribution Vt is reduced by modifying the data encoding mode of a randomizer encoder in the memory controller 40 , which can reduce the reading disturbance, the programming disturbance, etc. while helping to reduce the programming duration of the memory device, and can also improve the data retention capability of the memory device to improve the reliability of the data.
- the data retention capability is enhanced, and the stronger the data retention capability is, the less the periodic refresh cycle times of a firmware are, the erasing cycle overhead of the memory device can be reduced and the service life of the memory device can be prolonged.
- the memory controller 40 is configured to:
- the input data sent by the host to the memory controller 40 contains a wide variety of characters, which may include numbers, letters, and/or characters.
- the host may convert non-binary characters in the input data (such as octal data 2 to 7, decimal data 2 to 9 and English characters) into binary coded data in binary expression, (i.e., the input data to be stored is also a set of data composed of binary characters 0 and 1).
- the memory controller 40 divides the input data (e.g., in binary expression) into K character segments according to the number of bits N of the data that can be stored in the memory cell of the connected memory device. Then, the memory controller 40 queries any one or more preset binary codes to be replaced in the following examples for comparison.
- the memory controller 40 is configured to: store the replacement identifier, and a replacing relationship between the binary code to be replaced and the replacement binary code marked by the replacement identifier.
- the memory controller 40 generates the replacement identifier for distinguishing the original replacement binary code in the input data from the replacement binary code changed from the binary code to be replaced, and then stores the generated replacement identifier in a local storage space.
- the memory controller 40 also needs to store the replacing relationship between the binary code to be replaced and the replacement binary code marked by the replacement identifier, so that in response to reading and obtaining the read data from the memory device, the memory controller 40 may decode the read data, the replacing relationship between the binary code to be replaced and the replacement binary code marked by the replacement identifier, and the replacement identifier linked to the memory address of the memory cell to obtain the original data to be stored and send it to the host 20 .
- the replacement identifier is a binary number.
- the replacement identifier may be a binary number 0 or a binary number 1, or a combination of multiple binary numbers 0 and multiple binary numbers 1.
- the replacement identifier is a 1-bit binary number, so that the memory controller 40 may reduce the data storage footprint for the replacement identifier.
- the binary code to be replaced differs from the replacement binary code by one bit.
- the binary code to be replaced differs from the replacement binary code by multiple bits, which also falls within the scope of protection of the present patent. In some examples, the binary code to be replaced differs from the replacement binary code by one bit. In this way, the memory controller 40 may directly perform binary logic calculation on the replacement identifier of a 1-bit binary number and the replacement binary code marked with the replacement identifier to obtain the original binary code to be replaced. Taking the MLC as an example, if the replacement binary code is 01 and the replacement identifier is 1, the replacement binary code “01” and the replacement identifier “1” are logically calculated to obtain the original binary code to be replaced as 11.
- the replacement binary code is 1110 and the replacement identifier is 1, the replacement binary code “1110” and the replacement identifier “1” are logically calculated to obtain the original binary code to be replaced as 1111.
- the data stored in 16 programming levels, i.e., 16 states, of the QLC are P 0 to P 15 as in the foregoing example.
- the first curve from right to left corresponds to P 15
- the last curve from right to left corresponds to P 0 .
- the binary code corresponding to P 15 may be directly changed to the binary code corresponding to P 0
- a replacement identifier may be added to help distinguish the binary code corresponding to P 0 from that corresponding to P 0 substituted for P 15 .
- the encoding modes of P 15 and P 0 differ by 1-bit encoding.
- the binary code corresponding to P 15 may be directly changed to the binary code corresponding to P 4 , and a replacement identifier may be added to help distinguish the binary code corresponding to P 4 from the binary code corresponding to P 4 substituted for P 15 .
- the encoding modes of P 15 and P 4 differ by 1-bit encoding.
- the binary code corresponding to P 0 may be directly changed to the binary code corresponding to P 13 , and a replacement identifier may be added to help distinguish the binary code corresponding to P 13 from the binary code corresponding to P 13 substituted for P 0 .
- the encoding modes of P 0 and P 13 differ by 1-bit encoding.
- the binary code corresponding to P 0 may also be changed to the binary code corresponding to P 12 , and a replacement identifier is added to help distinguish the binary code corresponding to P 12 from the binary code corresponding to P 12 substituted for P 0 .
- the encoding modes of P 0 and P 12 differ by 2-bit encoding.
- the programming duration of the memory device can be shortened, and charge leakage of the highest state in the PCHTDR test process of the memory device can be avoided, (e.g., the data retention capacity of the memory device can be improved to improve the reliability of the data).
- the data retention capability is enhanced, and the stronger the data retention capability is, the less the periodic refresh cycle times of a firmware are, the erasing cycle overhead of the memory device can be reduced and the service life of the memory device can be prolonged.
- the memory controller 40 is configured to:
- the flow of operations is opposite to that of binary code replacement for the data to be stored, (i.e., rather than receiving input data to write to the memory, the memory controller 40 receives a read command from the host).
- the read command includes the memory address of the data to be read from the memory device. In this way, the memory controller 40 reads and obtains the read data corresponding to the memory address from the memory device according to the memory address.
- the read data (which is read and obtained by the memory controller 40 from the memory device) is binary coded data in binary expression, (i.e., the read data is also a set of data composed of binary characters 0 and 1).
- the memory controller 40 reads K character segments with n digits from the K memory cells in the memory device.
- the memory controller 40 may know the memory cell from which the character segment with the N bits is read and subjected to binary code replacement when previously programmed and written into the memory device by the memory controller 40 . Therefore, in response to reading and obtaining the read data from a plurality of memory cells in the memory device, the memory controller 40 substitutes, according to the replacement identifier linked to the memory address of the memory cell, as well as the replacing relationship between the binary code to be replaced and the replacement binary code marked with the replacement identifier, the replacement binary code marked with the replacement identifier in the read data of the K digits read from a plurality of memory cells with the binary code to be replaced, thus obtaining feedback/output data sent to the host. Then, the memory controller 40 sends the feedback data obtained after substituting the replacement binary code in the read data with the binary code to be replaced, and sends it to the host 20 so as to respond to the read command from the host 20 .
- the memory device includes at least one memory cell which provides at most 2 N programming levels for storing N bits of data, and N is a positive integer. In some such examples, the memory device is configured to:
- the memory device is connected to the memory controller 40 to receive sending data transmitted by the memory controller 40 .
- the sending data corresponds to the data obtained after the memory controller 40 receives the input data from the host and then performs binary coding conversion on the input data.
- the sending data includes a replacement binary code and non-replacement binary code not subjected to replacement, and the non-replacement binary code not subjected to replacement in the input data is the same as the non-replacement binary code not subjected to replacement in the sending data.
- the replacement binary code in the data transmitted by the memory controller 40 is obtained by replacement when the memory controller 40 receives the input data from the host.
- the memory device programs several memory cells according to several replacement binary codes in the sending data, such that the several memory cells may store the replacement binary code obtained by replacing the binary code to be replaced in the input data.
- the memory device programs the non-replacement binary coded data not subjected to replacement in the sending data by the original programming mode of applying an encoding voltage, such that the memory device may write and save the input data from the host 20 .
- the memory device is configured to:
- the memory device may also receive and store the replacement identifier generated by the memory controller 40 after the memory controller 40 generates the replacement identifier.
- the memory device may also store the replacing relationship between the binary code to be replaced and the replacement binary code marked with the replacement identifier. Since the memory device stores the replacement identifier, the memory address of the memory cell that stores the replacement binary code may be directly marked, which is more beneficial for the host to obtain the feedback data by binary code replacement according to the read command.
- the memory device is configured to: the programming levels of the memory cell are less than 2 N .
- reducing the number of states corresponding to the threshold voltage distribution Vt of the corresponding programming level of each memory cell in the memory device may help shorten the programming duration of the memory device, reduce the reading disturbance, the programming disturbance, etc., and/or improve the data retention capacity of the memory device.
- the number of states corresponding to the threshold voltage distribution Vt is reduced by modifying the data encoding mode of a randomizer encoder in the memory controller 40 , which can reduce the reading disturbance, the programming disturbance, etc. while helping to reduce the programming duration of the memory device, and can also improve the data retention capability of the memory device to improve the reliability of the data.
- the data retention capability is enhanced, and the stronger the data retention capability is, the less the periodic refresh cycle times of a firmware are, the erasing cycle overhead of the memory device can be reduced and the service life of the memory device can be prolonged.
- a memory system includes:
- the number of states corresponding to the threshold voltage distribution Vt is reduced by modifying the data encoding mode of a randomizer encoder in the memory controller 40 , which can reduce the reading disturbance, the programming disturbance, etc. while helping to reduce the programming duration of the memory device, and can also improve the data retention capability of the memory device to improve the reliability of the data.
- the data retention capability is enhanced, and the stronger the data retention capability is, the less the periodic refresh cycle times of a firmware are, the erasing cycle overhead of the memory device can be reduced and the service life of the memory device can be prolonged.
- the memory system includes a memory device and the memory controller as described in the foregoing examples.
- the memory device includes at least one memory cell which provides at most 2 N programming levels for storing N bits of data, and N is a positive integer.
- the operation method includes:
- the method further includes:
- the number of states corresponding to the threshold voltage distribution Vt is reduced by modifying the data encoding mode of a randomizer encoder in the memory controller 40 , which can reduce the reading disturbance, the programming disturbance, etc. while helping to reduce the programming duration of the memory device, and can also improve the data retention capability of the memory device to improve the reliability of the data.
- the data retention capability is enhanced, and the stronger the data retention capability is, the less the periodic refresh cycle times of a firmware are, the erasing cycle overhead of the memory device can be reduced and the service life of the memory device can be prolonged.
- the memory system may be integrated into various memory systems, for example, included in the same package (e.g., a universal flash storage (UFS) package or an embedded multimedia card (eMMC) package). That is, the memory system may be applied to and packaged in different electronic products, for example, at least one of a data server, a network-attached storage, an Internet of Things (IoT) device or a portable electronic device.
- a universal flash storage (UFS) package e.g., a universal flash storage (UFS) package or an embedded multimedia card (eMMC) package.
- UFS universal flash storage
- eMMC embedded multimedia card
- the portable electronic device may include a mobile phone (e.g., a cell phone), a personal computer (PC), a desktop computer, a tablet computer, a notebook computer, a server, a vehicle-mounted device, a game console, a printer, a positioning device, a wearable device, a smart sensor, a mobile power supply, an enterprise digital assistant (EDA), a digital still camera, a digital video camera, an audio device, a portable multimedia player (PMP), a personal navigation device (PND), an MP3 player, a handheld game console, an e-book, a virtual reality (VR) device, an augmented reality (AR) device or any other appropriate electronic devices having memory devices therein.
- a mobile phone e.g., a cell phone
- PC personal computer
- PC personal computer
- desktop computer e.g., a tablet computer
- notebook computer e.g., a notebook computer
- server e.g., a server
- a vehicle-mounted device e.g.,
- the memory system 100 includes a memory controller 40 and a memory device, and the memory system 100 may be integrated into a memory card device 150 as shown in FIG. 12 .
- the memory card device 150 includes any one of a PC (PCMCIA, Personal Computer Memory Card International Association) card, a compact flash (CF) card, a smart media (SM) card, a memory device rod, a multimedia card (MMC), a secure digital (SD) memory card and a UFS.
- PCMCIA Personal Computer Memory Card International Association
- CF compact flash
- SM smart media
- MMC multimedia card
- SD secure digital
- the memory system 100 includes a memory controller 40 and a plurality of memory devices and is integrated into a solid state drive (SSD) as shown in FIG. 13 .
- SSD solid state drive
- the electronic device may be any one of a mobile phone, a desktop computer, a tablet computer, a notebook computer, a server, a vehicle-mounted device, a wearable device (such as a smart watch, a smart bracelet and smart glasses), a mobile power supply, a game console, a digital multimedia player, etc.
- the quantity of states is reduced by modifying a data encoding mode of the memory controller to help shorten programming duration of the memory device and reduce disturbance, and a data retention capability of the memory device is improved to increase the data reliability.
- the data retention capability is enhanced, and the stronger the data retention capability is, the less the periodic refresh cycle times of a firmware are, the erasing cycle overhead of the memory device can be reduced and the service life of the memory device can be prolonged.
- the electronic device may include the memory system 100 described above, and may also include at least one of a central processing unit (CPU), a cache, etc.
- the electronic device may be a cell phone, a desktop computer, a laptop computer, a tablet computer, a vehicle computer, a game console, a printer, a positioning device, a wearable electronic device, a smart sensor, a virtual reality (VR) device, an augmented reality (AR) device, or any other appropriate electronic devices having memory devices therein.
- the electronic device may include a host and a memory system 100 .
- the memory system 100 is provided with one or more memory devices 30 and memory controllers 40 .
- the host may include a processor of the electronic device (for example, a CPU), or a system-on-chip (SoC) (for example, an application processor (AP)).
- SoC system-on-chip
- the host may also include a memory interface for being coupled to the memory system 100 , and the memory interface is configured to adhere to a corresponding protocol (such as NVMe and PCIe).
- the host may be configured to send data to or receive data from the memory device 30 via, for example, the memory interface.
- the host may also send an instruction to the memory system 100 .
- the memory device 30 may be any of the memory devices disclosed by the present disclosure.
- the memory controller 40 is coupled to the memory device 30 and the host, and configured to control the memory device 30 .
- the memory controller 40 may be specifically implemented by a microprocessor, a micro-memory controller 40 (also known as a micro-memory controller unit (MCU)), a central processing unit (CPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable logic device (PLD), a state machine, a gated logic unit, a discrete hardware circuit or a combination thereof, as well as other appropriate hardware, firmware and/or software configured to perform various functions described in detail below.
- MCU micro-memory controller unit
- CPU central processing unit
- DSP digital signal processor
- ASIC application specific integrated circuit
- FPGA field programmable gate array
- PLD programmable logic device
- state machine a gated logic unit, a discrete hardware circuit or a combination thereof, as well as other appropriate hardware, firmware and/or software configured to perform
- the memory controller 40 may manage the data stored in the memory device 30 and communicate with the host through its front-end interface.
- the memory controller 40 is designed to operate in a low-duty-cycle environment, such as a secure digital (SD) card, a compact flash (CF) card, a universal serial bus (USB) flash drive, or other media for use in electronic devices such as a personal computer, a digital camera and a mobile phone.
- the memory controller 40 is designed to operate in a high-duty-cycle environment, for example, an SSD or an embedded multi media card (eMMC), which is used as a data memory device for mobile devices such as a smart phone, a tablet computer and a laptop computer, as well as an enterprise memory array.
- the memory controller 40 may be configured to control operations of the memory device 30 , such as reading, erasing and programming operations.
- the memory controller 40 may also be configured to manage various functions related to data stored or to be stored in the memory device 30 , including but not limited to bad block management, garbage collection, logical to programming address translation, wear leveling, and the like. In some examples, the memory controller 40 is configured to process an error correction code (ECC) related to data read from or written into the memory device 30 . The memory controller 40 may also perform any other appropriate functions, for example, formatting the memory device 30 . The memory controller 40 may communicate with an external device (e.g., a host) according to a specific communication protocol.
- ECC error correction code
- the memory controller 40 may communicate with an external device (e.g., a host) according to a specific communication protocol.
- the memory controller 40 may communicate with an external device through at least one of various interface protocols, such as universal serial bus (USB) protocol, multimedia card (MMC) protocol, peripheral component interconnection (PCI) protocol, PCI-express (PCI-E) protocol, advanced technology attachment (ATA) protocol, serial ATA protocol, parallel ATA protocol, small computer small interface (SCSI) protocol, enhanced small disk interface (ESDI) protocol, integrated drive electronics (IDE) protocol and Firewire protocol.
- USB universal serial bus
- MMC multimedia card
- PCI peripheral component interconnection
- PCI-E PCI-express
- ATA advanced technology attachment
- serial ATA protocol serial ATA protocol
- parallel ATA protocol serial ATA protocol
- SCSI small computer small interface
- ESDI enhanced small disk interface
- IDE integrated drive electronics
- the memory controller 40 and one or more memory devices 30 may be integrated into various memory systems, for example, included in the same package (for example, a universal flash storage (UFS) package or an eMMC package). That is, the memory system 100 may be implemented by and packaged into different terminal electronic products.
- the memory controller 40 and the single memory device 30 may be integrated into the memory card device 150 .
- the memory card device 150 may include an internal memory device embedded into an electronic device.
- the memory card device 150 may include a PC (PCMCIA, Personal Computer Memory Card International Association) card, a CF card, a smart media (SM) card, a memory device rod, a multimedia card (MMC, RS-MMC, MMC micro), a SD card (SD, mini SD, micro SD, SDHC), a UFS memory card, etc.
- the memory card device 150 may also include a memory device card connector 1501 configured to couple the memory card device 150 to the host.
- a memory controller 40 and a plurality of memory devices 30 may be integrated into a solid state disk (SSD) 151 .
- the SSD 151 may also include an SSD connector 1511 configured to couple the SSD 151 to the host. In some examples, the storage capacity and/or operation speed of the SSD 151 is greater than those of the memory card device 150 .
- Examples provide a memory controller, a memory device, a memory system and an operation method thereof, which can shorten programming duration of the memory device and reduce disturbance, and improve a data retention capability of the memory device to increase the data reliability.
- a memory controller is provided to control a memory device, the memory device comprising at least one memory cell which provides at most 2 N programming levels for storing N bits of data, wherein N being a positive integer, and the memory controller is configured to: find, in input data, a binary code to be replaced corresponding to a preset programming level to be replaced, wherein the input data is to be written into the memory cell; and substitute the binary code to be replaced in the input data with a replacement binary code corresponding to a preset replacement programming level, and generate a replacement identifier linking a memory address corresponding to the replacement binary code.
- the memory controller is configured to: compare the input data with the binary code to be replaced; and determine that the preset programming level to be replaced is present in the input data if the binary code to be replaced is present in the input data.
- the memory controller is configured to store the replacement identifier, and a replacing relationship between the binary code to be replaced and the replacement binary code marked by the replacement identifier.
- the memory controller is configured to: set one programming level of the 2 N programming levels as a preset programming level to be replaced, and a binary code corresponding to the preset programming level to be replaced as the binary code to be replaced; and set another programming level of the 2 N programming levels as a preset replacement programming level, and a binary code corresponding to the preset replacement programming level as the replacement binary code.
- the memory controller is configured to: set at least two programming levels of the 2 N programming levels as preset programming levels to be replaced, and binary codes corresponding to the preset programming levels to be replaced as binary codes to be replaced; and set at least two other programming levels of the 2 N programming levels as preset replacement programming levels, and binary codes corresponding to the preset replacement programming levels as replacement binary codes.
- the preset programming levels to be replaced are M programming levels with a longest programming duration among all programming levels, and the preset replacement programming levels are M programming levels with a shortest programming duration among all the programming levels, wherein M ⁇ N, and M and N being positive integers.
- the preset programming levels to be replaced are M programming levels with a poorest data retention capability among all programming levels, and the preset replacement programming levels are M programming levels with a strongest data retention capability among all the programming levels, wherein M ⁇ N, and M and N being positive integers.
- the preset programming levels to be replaced are M programming levels with a worst disturbance suppression state among all programming levels, and the preset replacement programming levels are M programming levels with a best disturbance suppression state among all the programming levels, wherein M ⁇ N, and M and N being positive integers.
- the replacement identifier is a binary number.
- the binary code to be replaced differs from the replacement binary code by one bit.
- the memory controller is configured to: read corresponding read data from the memory device based on a memory address in a read command; and substitute the replacement binary code marked by the replacement identifier in the read data with a corresponding binary code to be replaced when the memory address has the corresponding replacement identifier.
- a memory system which includes: a memory device, wherein the memory device comprises at least one memory cell which provides at most 2 N programming levels for storing N bits of data, wherein N being a positive integer; and a memory controller used to control the memory device, wherein the memory controller is configured to: find, in input data, a binary code to be replaced corresponding to a preset programming level to be replaced, wherein the input data is to be written into the memory cell; and substitute the binary code to be replaced in the input data with a replacement binary code corresponding to a preset replacement programming level, and generate a replacement identifier linking a memory address corresponding to the replacement binary code.
- a memory device comprises at least one memory cell which provides at most 2 N programming levels for storing N bits of data, wherein N being a positive integer, and the memory device is configured to: receive a replacement binary code transmitted by a memory controller, wherein the replacement binary code being used by the memory controller to substitute a binary code to be replaced with a binary code corresponding to a preset replacement programming level when the binary code to be replaced corresponding to a preset programming level to be replaced is found in input data, wherein the input data is to be written into the memory cell; and perform programming on the memory cell based on the replacement binary code transmitted by the memory controller to store the input data.
- the memory device is configured to: store a replacement identifier, and a replacing relationship between the binary code to be replaced and the replacement binary code marked by the replacement identifier, wherein the replacement identifier being a flag generated by the memory controller and links a corresponding memory address of the replacement binary code.
- the programming level of the memory cell is less than 2 N .
- a method of operation of a memory system for a memory device and a memory controller for controlling the memory device, wherein the memory device includes at least one memory cell which provides at most 2 N programming levels for storing N bits of data, wherein N is a positive integer
- the operation method comprises: finding, by the memory controller and in input data, a binary code to be replaced corresponding to a preset programming level to be replaced, wherein the input data is to be written into the memory cell; substituting, by the memory controller, the binary code to be replaced in the data to be stored with a replacement binary code corresponding to a preset replacement programming level, and generate a replacement identifier linking a memory address corresponding to the replacement binary code; and receiving, by the memory device, the replacement binary code transmitted by the memory controller, and performing programming on the memory cell based on the replacement binary code transmitted by the memory controller to store the input data.
- the method further includes: reading, by the memory controller, corresponding read data from the memory device based on a memory address in a read command; and substituting, by the memory controller, the replacement binary code marked by the replacement identifier in the read data with a corresponding binary code to be replaced when the memory address has the corresponding replacement identifier.
- At least some of the example memory controllers, the memory devices, the memory systems and the operation methods provided above have one or more of the following beneficial effects.
- the quantity of states corresponding to threshold voltage distribution Vt is reduced by modifying a data encoding mode of a Randomizer Encoder in the memory controller, which can help shorten the programming duration of the memory device, and reduce the reading disturbance, programming disturbance and the like.
- the data retention capability of the memory device is further improved to increase the data reliability.
- the data retention capability is enhanced, and the stronger the data retention capability is, the less the periodic refresh cycle times of a firmware are, the erasing cycle overhead of the memory device can be reduced and the service life of the memory device can be prolonged.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
Abstract
Description
-
- set one programming level in the 2N programming levels as a preset programming level to be replaced, and a binary code corresponding to the preset programming level to be replaced as a binary code to be replaced; and
- set another programming level in the 2N programming levels as a preset replacement programming level, and a binary code corresponding to the preset replacement programming level as a replacement binary code.
-
- set at least two programming levels in the 2N programming levels as preset programming levels to be replaced, and binary codes corresponding to the preset programming levels to be replaced as binary codes to be replaced; and
- set at least two other programming levels in the 2N programming levels as preset replacement programming levels, and binary codes corresponding to the preset replacement programming levels as replacement binary codes.
-
- compare the input data to be stored with the binary code to be replaced; and
- determine that the preset programming level to be replaced exists in the input data to be stored if the binary code to be replaced exists in the input data to be stored.
-
- read, based on a memory address in a read command, corresponding read data from the memory device; and
- substitute, in the read data, the replacement binary code marked by the replacement identifier with a corresponding binary code to be replaced when the memory address has the corresponding replacement identifier.
-
- receive a replacement binary code transmitted by a
memory controller 40, wherein the replacement binary code is used by thememory controller 40, when a binary code to be replaced corresponding to a preset programming level to be replaced is found in input data to be stored, to substitute the binary code to be replaced with a binary code corresponding to a preset replacement programming level, and the input data is to be written into the memory cell; and - perform programming on the memory cell based on the replacement binary code transmitted by the memory controller to store the input data.
- receive a replacement binary code transmitted by a
-
- store a replacement identifier and a replacing relationship between the binary code to be replaced and the replacement binary code marked by the replacement identifier, wherein the replacement identifier is a flag generated by the memory controller to link the corresponding memory address of the replacement binary code.
-
- a memory device, wherein the memory device comprises at least one memory cell which provides at most 2N programming levels for storing N bits of data, and N is a positive integer; and
- a
memory controller 40 used to control the memory device, wherein thememory controller 40 is configured to: - find, in input data, a binary code to be replaced corresponding to a preset programming level to be replaced, wherein the input data is data to be written into the memory cell; and
- substitute the binary code to be replaced in the input data with a replacement binary code corresponding to a preset replacement programming level, and generate a replacement identifier linking a memory address corresponding to the replacement binary code.
-
- finding by the
memory controller 40, in input data, a binary code to be replaced corresponding to a preset programming level to be replaced, wherein the input data includes data to be written into the memory cell; - substituting, by the
memory controller 40, the binary code to be replaced in the input data with a replacement binary code corresponding to a preset replacement programming level, and generating, by thememory controller 40, a replacement identifier linking a memory address corresponding to the replacement binary; and - receiving, by the memory device, a replacement binary code transmitted by the
memory controller 40, and performing, by the memory device, programming on the memory cell based on the replacement binary code transmitted by thememory controller 40 to store the input data.
- finding by the
-
- reading by the
memory controller 40, based on a memory address in a read command, corresponding read data from the memory device; and - substituting by the
memory controller 40, in the read data, the replacement binary code marked by the replacement identifier with a corresponding binary code to be replaced when the memory address has the corresponding replacement identifier.
- reading by the
Claims (19)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211449836.0 | 2022-11-18 | ||
| CN202211449836.0A CN118057286A (en) | 2022-11-18 | 2022-11-18 | A memory controller, a memory device, a memory system and an operation method thereof |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20240168652A1 US20240168652A1 (en) | 2024-05-23 |
| US12327026B2 true US12327026B2 (en) | 2025-06-10 |
Family
ID=91068715
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/148,859 Active 2043-06-05 US12327026B2 (en) | 2022-11-18 | 2022-12-30 | Memory controller, memory device, memory system and operation method thereof |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US12327026B2 (en) |
| CN (1) | CN118057286A (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110222341A1 (en) * | 2010-03-10 | 2011-09-15 | Macronix International Co., L | Multi-level cell programming speed improvement through program level exchange |
| US20190095116A1 (en) * | 2017-09-22 | 2019-03-28 | Toshiba Memory Corporation | Memory system |
| US20210349662A1 (en) * | 2020-05-07 | 2021-11-11 | Micron Technology, Inc. | Implementing variable number of bits per cell on storage devices |
-
2022
- 2022-11-18 CN CN202211449836.0A patent/CN118057286A/en active Pending
- 2022-12-30 US US18/148,859 patent/US12327026B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110222341A1 (en) * | 2010-03-10 | 2011-09-15 | Macronix International Co., L | Multi-level cell programming speed improvement through program level exchange |
| US20190095116A1 (en) * | 2017-09-22 | 2019-03-28 | Toshiba Memory Corporation | Memory system |
| US20210349662A1 (en) * | 2020-05-07 | 2021-11-11 | Micron Technology, Inc. | Implementing variable number of bits per cell on storage devices |
Also Published As
| Publication number | Publication date |
|---|---|
| US20240168652A1 (en) | 2024-05-23 |
| CN118057286A (en) | 2024-05-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11494086B2 (en) | Flash memory controller, flash memory module and associated electronic device | |
| US8127073B2 (en) | Memory system, multi-bit flash memory device, and associated methods | |
| CN108140407B (en) | Soft-bit technology for reading data storage devices | |
| US20250046383A1 (en) | Operating method for a memory, a memory and a memory system | |
| WO2023246931A1 (en) | Memory device, memory system, and operating method thereof | |
| US12216908B2 (en) | Memory systems, operation methods thereof, and electronic devices | |
| US11894059B2 (en) | Apparatus and method for programming data in a non-volatile memory device | |
| CN118830023A (en) | Read reference voltage search based on virtual data for NAND memory | |
| EP4654199A1 (en) | Memory apparatus and operation method therefor, and memory system and operation method therefor | |
| US12327026B2 (en) | Memory controller, memory device, memory system and operation method thereof | |
| CN115223626B (en) | Memory controller, operation method thereof, memory system and electronic equipment | |
| US20240168892A1 (en) | Memory system and operation method thereof | |
| CN115132251B (en) | Memory devices in memory subsystems and related methods | |
| US20230343401A1 (en) | Nonvolatile memory device, memory system, and programming method | |
| EP4654198A1 (en) | Memory apparatus and operation method therefor, and memory system and operation method therefor | |
| US20240168648A1 (en) | Memory controller and operation method thereof, and memory system | |
| US12461687B2 (en) | Memory systems and operation methods thereof, memory controllers and memories | |
| CN119993221B (en) | Voltage control in storage devices | |
| CN119229911B (en) | latches, memory, sequential circuits and chips | |
| CN112084118A (en) | Data storage device and method of operation thereof | |
| US20250054557A1 (en) | Control methods, parameter calculation methods, memory and memory systems | |
| US20250364052A1 (en) | Program operations in memory devices | |
| CN117642822A (en) | Storage device, storage system and method of operation thereof | |
| CN120977355A (en) | Memory device, operation method thereof and memory system | |
| CN120836059A (en) | Memory device, memory system and operating method thereof |
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 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| AS | Assignment |
Owner name: YANGTZE MEMORY TECHNOLOGIES CO., LTD., CHINA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HUANG, ZHEN;LI, KANG;ZHANG, ZHE;REEL/FRAME:062883/0318 Effective date: 20221230 |
|
| AS | Assignment |
Owner name: YANGTZE MEMORY TECHNOLOGIES CO., LTD., CHINA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNEE ADDRESS PREVIOUSLY RECORDED AT REEL: 062883 FRAME: 0318. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNORS:HUANG, ZHEN;LI, KANG;ZHANG, ZHE;REEL/FRAME:063265/0330 Effective date: 20221230 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| CC | Certificate of correction |