US20180182453A1 - Data mapping enabling fast read multi-level 3d nand to improve lifetime capacity - Google Patents
Data mapping enabling fast read multi-level 3d nand to improve lifetime capacity Download PDFInfo
- Publication number
- US20180182453A1 US20180182453A1 US15/472,326 US201715472326A US2018182453A1 US 20180182453 A1 US20180182453 A1 US 20180182453A1 US 201715472326 A US201715472326 A US 201715472326A US 2018182453 A1 US2018182453 A1 US 2018182453A1
- Authority
- US
- United States
- Prior art keywords
- data
- memory location
- writing
- write
- memory
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
-
- 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/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
- G11C11/5635—Erasing circuits
-
- 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/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle 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/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/0614—Improving the reliability of storage systems
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/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
- 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/08—Address circuits; Decoders; Word-line control 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
- G11C16/3436—Arrangements for verifying correct programming or erasure
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Definitions
- Embodiments of the present disclosure generally relate to a method for writing data to a NAND block multiple times prior to erasing the block.
- Flash memory based solid-state drives have advantages over traditional hard disk drives (HDDs) in that SDDs have a high throughput, low read/write latency, low power consumption and the ability to tolerate high pressure and temperature.
- NAND flash in particular has a low price and a large capacity compared to other non-volatile memories (NVMs). Flash memories using floating gates (or charge trap) transistors to trap charge and the data represented by the amount of charge, called cell levels, trapped in a group of cells.
- NVMs non-volatile memories
- the unit of programming (increasing cell levels) is called a page and consists of 10 3 to 10 4 cells, while the unit of erasing (decreasing cell levels) is a block containing hundreds of pages.
- a block erasure is time and energy consuming, and degrades the physical cells.
- NAND flash has a disadvantage, however, NAND flash can only be written once. The data can be read multiple times, but if the data location is to be used again to store new data, the old data must be erased. As noted above, erasure occurs by blocks and thus, many pages of data are erased at a time. Furthermore, NAND erasure decreases the lifetime of the NAND device.
- data mapping based on three dimensional lattices that have an improved sum rate (i.e., lifetime capacity) with low read latency is disclosed.
- a memory location is written to multiple times prior to erasure. Specifically, for the first write, there are 4/3 bits per cell available for writing, which is about 10.67 kB per cell are used for data storage. Then, for the second write, there is one bit per cell, which is 8 kB per cell for data storage. If considering a block with 128 different cells and writing 32 kB of data, the first write results in 42.66 data writes while the second write results in 32 writes for a total of 74.66 writes. Previously, the number of writes for 32 kB would be 64 writes. Thus, by writing twice prior to erasure, more data can be stored.
- a system comprises a host device; a memory system coupled to the host device.
- the memory system includes: means to write data to a memory location multiple times prior to erasure; means to read data from the memory location; and means to erase data from the memory location.
- the system additionally comprises controller coupled to the host device and the memory system.
- a method comprises writing a first set of data to a NAND flash block in a first memory location; writing a second set of data to the first memory location; and erasing the first memory location, wherein writing the second set of data occurs prior to erasing the first set of data.
- a system comprises a processor and a memory system storing instructions that, when executed by the processor, cause the system to perform the method.
- a non-transitory computer readable storage medium is disclosed that contains instructions that, when executed by a processor, causes a computer system to burn files after a read process has been completed, by performing the method.
- FIG. 1 is a schematic illustration of a system according to an embodiment of the disclosure.
- FIG. 2 is a schematic illustration of a memory array according to an embodiment of the disclosure.
- FIGS. 3A-3C are schematic illustrations of a NAND flash memory block.
- FIG. 4 is an encoding and decoding mapping of a 2-write low read latency code 3D representative model.
- FIG. 5 is a flowchart illustrating a method of writing data twice to the same memory location prior to erasing the data.
- data mapping based on three dimensional lattices that have an improved sum rate (i.e., lifetime capacity) with low read latency is disclosed.
- a memory location is written to multiple times prior to erasure. Specifically, for the first write, there are 4/3 bits per cell available for writing, which is about 10.67 kB per cell are used for data storage. Then, for the second write, there is one bit per cell, which is 8 kB per cell for data storage. If considering a block with 128 different cells and writing 32 kB of data, the first write results in 42.66 data writes while the second write results in 32 writes for a total of 74.66 writes. Previously, the number of writes for 32 kB would be 64 writes. Thus, by writing twice prior to erasure, more data can be stored.
- mapping based on three dimensional lattices that have an improved sum rate (i.e., lifetime capacity) with low read latency is disclosed.
- lifetime capacity i.e., lifetime capacity
- the mapping has advantages that for each logical page, only a subset of read thresholds are needed to decode the data in the corresponding page, and thus the read latency is largely reduced.
- low read latency data mappings are used for a four level MLC and eight level TLC flash memories.
- MLCs the mapping achieves 17% improvement in total data stored.
- the code is defined by encoding and decoding maps.
- TLC in order to comply with Gray codes used in current NAND technology, similar, yet separate from MLC design, designs of mapping can achieve 11% to 24% improvement lifetime capacity.
- Rewriting codes can improve the lifetime capacity of NAND flash. All existing rewriting codes for NAND flash assume that the exact cell levels are known to decoders and thus, the number of reads needed is q ⁇ 1. Current NAND technology enables low latency page reads by dividing a physical page into log q logical pages so that the average number of reads per page is (q ⁇ 1)/log q. As discussed herein two write rewriting codes can be used to enable low latency page reads for multi-level NAND flash memories. The codes enable 17% capacity improvement for the NAND flash memory while maintaining 1.5 reads per page for a four level multiple level cells (MLCs). For eight level triple level cells (TLCs) with the Gray code used in current NAND technology, the codes enable 11% and 24% capacity improvement with 2 and 2.5 reads per page respectively.
- MLCs level multiple level cells
- Rewriting codes are a generalization of write-once memory (WOM) codes and are an effective means to write more data into the NAND flash between erasures.
- 3D NAND flash reduces the coupling effect induced inter-cell interference (ICI) such that rewriting codes can be practical.
- ICI induced inter-cell interference
- all existing rewriting codes necessitate reading exact cell levels to be decoded, which forfeits the low read latency advantages.
- two binary logical pages (lower and upper pages) are mapped to one quaternary physical page of the same size.
- the four symbols are represented by a Gray code (11), (10), (00), (01), from low to high, where the purpose of using Gray codes is to reduce the bit error rate for logical pages.
- reading the lower page is performed by applying one read threshold between level (10) and (00) to identify the left bit (called LSB).
- reading the upper page is performed by applying two read thresholds, one between (11) and (10) and the other between (00) and (01), to identify the right bit (called MSB).
- MSB the number of reads per page is 1.5 (reduced from 3) on average.
- the parameters that are of primary interest are sum-rate R sum bits/cell and average number of reads per page t ave .
- the rewriting codes disclosed herein improve the sum-rate (i.e., lifetime capacity) with low read latency.
- the coding schemes use the current Gray mapping between logical data and physical cell levels, which avoids hardware and circuit redesign inside the chip.
- an assumption in the current NAND programming technology is made. The assumption is that all logical pages are available at the encoder.
- the rewriting codes have advantages that for each logical page, only a subset of q ⁇ 1 read thresholds are needed to decode the data in the corresponding page, and thus the read latency is largely reduced.
- low read latency rewriting codes for four level MLC and eight level TLC flash memories are disclosed herein.
- the code is defined by encoding and decoding maps for each write and each logical page and it can also be visualized by a labeling of a three dimensional cube.
- n the number of cells is n and let c 1 , . . . , c n be the cell levels of those n cells. Assuming each cell has q levels, (0, 1, . . . , q ⁇ 1), the integer set (0, 1, . . . , n ⁇ 1) will be denoted by [n].
- a read corresponds to applying a read threshold to all n cells and a length-n Boolean vector that describes whether the ith cell is above or below the read threshold is returned, for i ⁇ 1, . . . , n ⁇ .
- two write low read latency rewriting code C is defined by two sets of joint encoders and page decoders ⁇ 1 , D 1 ⁇ , D 1 ⁇ ⁇ and ⁇ 2 , D 2 ⁇ , D 2 ⁇ ⁇ .
- the encoders are mappings:
- the page decoders are mappings:
- the rate of logical page corresponding to LSBs on each write is R 1 ⁇ and R 2 ⁇
- the rate of logical page corresponding to MSBs on each write is R 1 ⁇ and R 2 ⁇ .
- n 3 cells (c 1 , c 2 , c 3 ) where c i ⁇ 0, 1, 2, 3 ⁇ is the level of the ith cell. If a physical page contains a multiple of three cells, then the cells are concatenated and each set of consecutive three cells store data according to the proposed rewriting codes.
- n 3.
- S ⁇ 1 (x), x ⁇ 0,1 ⁇ 3 denote the set index ⁇ 0, 1, 2, 3 ⁇ that contains x.
- the decoders D 1 ⁇ ,D 1 ⁇ for each page on the first write are:
- the decoders for each page on the second write are:
- Gray code 3 used in current TLC NAND technology that maps the LSB, central significant bit (CSB), and MSB to cell level ⁇ 0, 1, . . . , 7 ⁇ denoted by a triplet of functions applied during read ( ⁇ l , ⁇ c , ⁇ m ) is in Table III. Note that to read LSB, CSB and MSB pages, ( ⁇ l (i), ⁇ c (i), ⁇ m (i)) requires (2, 3, 2) read thresholds, respectively, applied at the transitions between 0 and 1 for each page.
- the decoders for each page on the first write is defined by:
- ⁇ tilde over (c) ⁇ 1 3 be the cell levels after first write
- (m 2 ⁇ l ,m 2 ⁇ m ) ⁇ [4] ⁇ [4] be the data for both pages on the second write
- ⁇ 2 (m 2 ⁇ l ,m 2 ⁇ m ) encodes by choosing ⁇ S[m 2 ⁇ l ], ⁇ m 2 ⁇ m such that:
- decoders D 2l , D 2m for each page on the second write are:
- the number of reads for D 1 ⁇ l , D 1 ⁇ c , D 1 ⁇ m is (2, 3, 2) for the first write
- the number of reads for D 2 ⁇ l , D 2 ⁇ m is (1, 2) on the second write
- FIG. 4 shows an equivalent encoding/decoding visualized in a cubical grid of lateral size 4.
- Im( ⁇ 1 ) is the set of black points and Im( ⁇ 2 ) is the set of red points.
- Labels on points are the data pairs for both logical pages. Shaded labeling(or dashed lines) mean the particular point (or grid) is on the invisible side of the cube.
- tradeoffs are made by using three thresholds for the second write, and thus
- the low ready latency rewriting codes discussed herein are based on three dimensional lattices to enable fast read as current NAND technology supports. Separate designs for MLC and TLC flash improve the sum rate, or lifetime capacity, by 17%, 11% and 24%, with 1.5, 2 and 2.5 reads per page respectively.
- the present disclosure relates to data mapping based on three dimensional lattices that have an improved sum rate (i.e., lifetime capacity) with low read latency.
- an assumption is used that all logical pages are available at the encoder.
- the mapping has advantages that for each logical page, only a subset of read thresholds are needed to decode the data in the corresponding page, and thus the read latency is largely reduced.
- low read latency data mappings are used for a four level MLC and eight level TLC flash memories.
- MLCs the mapping achieves 17% improvement in total data stored.
- the code is defined by encoding and decoding maps.
- TLC in order to comply with Gray codes used in current NAND technology, similar, yet separate from MLC design, designs of mapping can achieve 11% to 24% improvement lifetime capacity.
- NAND flash memory The basic premise of NAND flash memory is that the memory can only be written one time and then, if the memory is to be written again, the memory will need to be erased. As discussed herein, rather than erasing the memory, it is possible to write in the memory locations again prior to erasure and thus, the lifetime of the NAND flash memory is increased, as is the storage capacity.
- FIG. 1 is a schematic illustration of a system 100 according to one embodiment.
- the system includes a host device 102 that interacts with a memory system 104 .
- a controller 106 is coupled to both the host device 102 and the memory system 104 .
- the memory system 104 stores data that may be needed by the host device 102 at various times. When the data is needed, the host device 102 contacts the memory system 104 to obtain the data.
- the controller 106 controls the communication between the memory system 104 and the host device 102 .
- the memory system 104 includes a memory controller 108 and multiple CPUs or processors 110 A- 110 N.
- the memory system 104 also includes a memory device 112 .
- the memory device 112 is coupled to all of the CPUs 110 A- 110 N as well as the memory controller 108 .
- the memory device 112 is a NAND storage device.
- the memory device 112 is a HDD storage device. It is to be understood that the memory device 112 is not to be limited to either a NAND storage device or a HDD storage device. Rather, the memory device 112 is applicable to any storage device capable of storing data that may be retrieved by one or more CPUs.
- FIG. 2 is a schematic diagram of a memory array 200 , according to one embodiment described herein.
- the memory array 200 includes a plurality of memory cells 202 , a first plurality of parallel lines 204 , and a second plurality of parallel lines 206 .
- the first plurality of parallel lines 204 run orthogonal to the second plurality of parallel lines 206 .
- the first plurality of parallel lines 204 represent bit lines.
- the second plurality of parallel lines 206 represent word lines.
- Each memory cell 202 is coupled to a bit line 204 and a word line 206 .
- Co-linear memory cells 202 are coupled to one common line and one line not in common with the other co-linear memory cells.
- FIGS. 3A-3C are schematic illustrations of a NAND flash memory block 300 .
- the block 300 includes 128 word lines spanning the entire block as shown by arrows “A”.
- the amount of available data exposed to the user is represented by arrows “B” and is 16 kB.
- each set of data would need two separate word lines and thus, two separate memory locations 302 A- 302 N to store the data in a single write-single erase system.
- the block 300 prior to initial usage, has the ability to store 64 sets of data in the 128 word lines.
- FIG. 3A shows the situation where each bit can only be written once prior to erasure because the amount of available data exposed to the user is 16 kB. Prior to the instant disclosure, there were 2 bits per cell, but each bit could only be written once prior to erasure.
- Example 2 code mapping for 3 MLC cells with minimum changes will be discussed.
- L is low (0 or 1); H is high (2 or 3); I is in (level 1 or 2); and O is out (level 0 or 3).
- ⁇ 0, 1, 2, 3 ⁇ translates to the following: ⁇ 111, 011, 101, 110 ⁇ .
- LSB 0 ⁇ LLL ⁇ 111 ⁇ ; 1 ⁇ HLL ⁇ 011 ⁇ ; 2 ⁇ LHL ⁇ 101 ⁇ ; and 3 ⁇ LLH ⁇ 110 ⁇ .
- MSB For MSB, 0 ⁇ OOO ⁇ 111 ⁇ ; 1 ⁇ IOO ⁇ 011 ⁇ ; 2 ⁇ OIO ⁇ 101 ⁇ ; and 3 ⁇ OOI ⁇ 110 ⁇ .
- both the LSB and MSB depend upon C 1 3 .
- LSB 00 (or 0) ⁇ LHH ⁇ 100 ⁇ , HLL ⁇ 011 ⁇ ; 01 (or 1) ⁇ HHH ⁇ 000 ⁇ ; 10 (or 2) ⁇ LLH ⁇ 110 ⁇ , HHL ⁇ 001 ⁇ ; 11 (or 3) ⁇ LHL ⁇ 101 ⁇ , HLH ⁇ 010 ⁇ .
- MSB 0 ⁇ IOO ⁇ 011 ⁇ , OIO ⁇ 101 ⁇ , OOI ⁇ 110 ⁇ ; 1 ⁇ IIO ⁇ 001 ⁇ , OII ⁇ 100 ⁇ , IOI ⁇ 010 ⁇ .
- (LSB, MSB) (3,0) and is programmed to (3,1,3).
- FIG. 4 is an encoding and decoding mapping of a 2-write low read latency code 3D representative model of Example 2.
- FIG. 5 is a flowchart 500 illustrating a method of writing data twice to the same memory location prior to erasing the data.
- a first set of data is initially written to a memory location in block 502 .
- a second set of data is written to the memory location in block 504 .
- the data can be erased from the memory location.
- the block 506 would occur prior to block 504 because data could only be written once to the memory location, but as discussed herein, less than the entire memory location is utilized in the first write.
- the time comes for the second write there is still room for more data to be written to the memory location. Therefore, by writing twice to the same memory location, more data can be stored prior to erasure.
- Example 3 code mappings for 3 TLC cells with minimum changes will be discussed.
- ⁇ 0, 1, 2, 3 ⁇ translates to the following: ⁇ 000, 001, 010, 011 ⁇ .
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)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
- This application claims benefit of U.S. Provisional Patent Application Ser. No. 62/438,821, filed Dec. 23, 2016, which is herein incorporated by reference.
- Embodiments of the present disclosure generally relate to a method for writing data to a NAND block multiple times prior to erasing the block.
- Flash memory based solid-state drives (SSD) have advantages over traditional hard disk drives (HDDs) in that SDDs have a high throughput, low read/write latency, low power consumption and the ability to tolerate high pressure and temperature. NAND flash in particular has a low price and a large capacity compared to other non-volatile memories (NVMs). Flash memories using floating gates (or charge trap) transistors to trap charge and the data represented by the amount of charge, called cell levels, trapped in a group of cells. One of the key features of NAND flash is the asymmetry of programming and erasing. The unit of programming (increasing cell levels) is called a page and consists of 103 to 104 cells, while the unit of erasing (decreasing cell levels) is a block containing hundreds of pages. A block erasure is time and energy consuming, and degrades the physical cells.
- NAND flash has a disadvantage, however, NAND flash can only be written once. The data can be read multiple times, but if the data location is to be used again to store new data, the old data must be erased. As noted above, erasure occurs by blocks and thus, many pages of data are erased at a time. Furthermore, NAND erasure decreases the lifetime of the NAND device.
- There is a need in the art to increase the lifetime of NAND devices.
- In this disclosure, data mapping based on three dimensional lattices that have an improved sum rate (i.e., lifetime capacity) with low read latency is disclosed. During the write, a memory location is written to multiple times prior to erasure. Specifically, for the first write, there are 4/3 bits per cell available for writing, which is about 10.67 kB per cell are used for data storage. Then, for the second write, there is one bit per cell, which is 8 kB per cell for data storage. If considering a block with 128 different cells and writing 32 kB of data, the first write results in 42.66 data writes while the second write results in 32 writes for a total of 74.66 writes. Previously, the number of writes for 32 kB would be 64 writes. Thus, by writing twice prior to erasure, more data can be stored.
- In one embodiment, a system comprises a host device; a memory system coupled to the host device. The memory system includes: means to write data to a memory location multiple times prior to erasure; means to read data from the memory location; and means to erase data from the memory location. The system additionally comprises controller coupled to the host device and the memory system.
- In another embodiment, a method comprises writing a first set of data to a NAND flash block in a first memory location; writing a second set of data to the first memory location; and erasing the first memory location, wherein writing the second set of data occurs prior to erasing the first set of data. Additionally, a system is disclosed that comprises a processor and a memory system storing instructions that, when executed by the processor, cause the system to perform the method. Additionally, a non-transitory computer readable storage medium is disclosed that contains instructions that, when executed by a processor, causes a computer system to burn files after a read process has been completed, by performing the method.
- So that the manner in which the above recited features of the present disclosure can be understood in detail, a more particular description of the disclosure, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this disclosure and are therefore not to be considered limiting of its scope, for the disclosure may admit to other equally effective embodiments.
-
FIG. 1 is a schematic illustration of a system according to an embodiment of the disclosure. -
FIG. 2 is a schematic illustration of a memory array according to an embodiment of the disclosure. -
FIGS. 3A-3C are schematic illustrations of a NAND flash memory block. -
FIG. 4 is an encoding and decoding mapping of a 2-write low read latency code 3D representative model. -
FIG. 5 is a flowchart illustrating a method of writing data twice to the same memory location prior to erasing the data. - To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. It is contemplated that elements disclosed in one embodiment may be beneficially utilized on other embodiments without specific recitation.
- In the following, reference is made to embodiments of the disclosure. However, it should be understood that the disclosure is not limited to specific described embodiments. Instead, any combination of the following features and elements, whether related to different embodiments or not, is contemplated to implement and practice the disclosure. Furthermore, although embodiments of the disclosure may achieve advantages over other possible solutions and/or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not limiting of the disclosure. Thus, the following aspects, features, embodiments and advantages are merely illustrative and are not considered elements or limitations of the appended claims except where explicitly recited in a claim(s). Likewise, reference to “the disclosure” shall not be construed as a generalization of any inventive subject matter disclosed herein and shall not be considered to be an element or limitation of the appended claims except where explicitly recited in a claim(s).
- In this disclosure, data mapping based on three dimensional lattices that have an improved sum rate (i.e., lifetime capacity) with low read latency is disclosed. During the write, a memory location is written to multiple times prior to erasure. Specifically, for the first write, there are 4/3 bits per cell available for writing, which is about 10.67 kB per cell are used for data storage. Then, for the second write, there is one bit per cell, which is 8 kB per cell for data storage. If considering a block with 128 different cells and writing 32 kB of data, the first write results in 42.66 data writes while the second write results in 32 writes for a total of 74.66 writes. Previously, the number of writes for 32 kB would be 64 writes. Thus, by writing twice prior to erasure, more data can be stored.
- In this disclosure, data mapping based on three dimensional lattices that have an improved sum rate (i.e., lifetime capacity) with low read latency is disclosed. During the write, an assumption is used that all logical pages are available at the encoder. During the read, the mapping has advantages that for each logical page, only a subset of read thresholds are needed to decode the data in the corresponding page, and thus the read latency is largely reduced. To be more specific, low read latency data mappings are used for a four level MLC and eight level TLC flash memories. For MLCs, the mapping achieves 17% improvement in total data stored. The code is defined by encoding and decoding maps. For TLC, in order to comply with Gray codes used in current NAND technology, similar, yet separate from MLC design, designs of mapping can achieve 11% to 24% improvement lifetime capacity.
- Rewriting codes can improve the lifetime capacity of NAND flash. All existing rewriting codes for NAND flash assume that the exact cell levels are known to decoders and thus, the number of reads needed is q−1. Current NAND technology enables low latency page reads by dividing a physical page into log q logical pages so that the average number of reads per page is (q−1)/log q. As discussed herein two write rewriting codes can be used to enable low latency page reads for multi-level NAND flash memories. The codes enable 17% capacity improvement for the NAND flash memory while maintaining 1.5 reads per page for a four level multiple level cells (MLCs). For eight level triple level cells (TLCs) with the Gray code used in current NAND technology, the codes enable 11% and 24% capacity improvement with 2 and 2.5 reads per page respectively.
- Rewriting codes are a generalization of write-once memory (WOM) codes and are an effective means to write more data into the NAND flash between erasures. 3D NAND flash reduces the coupling effect induced inter-cell interference (ICI) such that rewriting codes can be practical. However, all existing rewriting codes necessitate reading exact cell levels to be decoded, which forfeits the low read latency advantages. For example, for four level NAND flash, two binary logical pages (lower and upper pages) are mapped to one quaternary physical page of the same size. Suppose the four symbols are represented by a Gray code (11), (10), (00), (01), from low to high, where the purpose of using Gray codes is to reduce the bit error rate for logical pages. Then reading the lower page is performed by applying one read threshold between level (10) and (00) to identify the left bit (called LSB). Similarly, reading the upper page is performed by applying two read thresholds, one between (11) and (10) and the other between (00) and (01), to identify the right bit (called MSB). Compared to reading the exact cell level using three read thresholds to distinguish all four symbols, the number of reads per page is 1.5 (reduced from 3) on average.
- Thus, the parameters that are of primary interest are sum-rate Rsum bits/cell and average number of reads per page tave. For example, a non-rewriting scheme enabling low latency read for cells can be represented as (Rsum, tave)=(log q, ((q−1)/(log q)) and a capacity achieving rewriting code requiring to read exact cell levels for a q-level NAND flash is
-
- In particular, (Rsum, tave)=(3.32, 3) and (Rsum, tave)=(5.17, 7) for capacity achieving two write WOM codes for four level MLCs and eight level TLCs flash respectively. Since read latency helps determine SSD performance, codes can be constructed with
-
- to maintain low read latency and improve Rsum.
- The rewriting codes disclosed herein improve the sum-rate (i.e., lifetime capacity) with low read latency. The coding schemes use the current Gray mapping between logical data and physical cell levels, which avoids hardware and circuit redesign inside the chip. During the writing, an assumption in the current NAND programming technology is made. The assumption is that all logical pages are available at the encoder. During the read, the rewriting codes have advantages that for each logical page, only a subset of q−1 read thresholds are needed to decode the data in the corresponding page, and thus the read latency is largely reduced. To be more specific, low read latency rewriting codes for four level MLC and eight level TLC flash memories are disclosed herein. For MLCs, the proposed codes archives (Rsum, tave)=(2.33, 1.5) with 17% improvement in sum-rate over current (2, 1.5) non-rewriting schemes. The code is defined by encoding and decoding maps for each write and each logical page and it can also be visualized by a labeling of a three dimensional cube. For TLC, similar yet separate from MLC designs of rewriting codes can achieve (Rsum, tave)=(3.33, 2) with improvement of both sum-rate and read latency over current (3, 2.33) non-rewriting schemes.
- Suppose the number of cells is n and let c1, . . . , cn be the cell levels of those n cells. Assuming each cell has q levels, (0, 1, . . . , q−1), the integer set (0, 1, . . . , n−1) will be denoted by [n]. Let xi denote the ith element in array x=(x1, . . . , xn), xi j=(xi, xi+1, . . . , xj) denote the subvector of x, for 1≤i≤j≤n. For two vectors x1 n and y1 n, x1 n y1 n if ∀iϵ{1, . . . , n}, xi≥yi. For a mapping f: A→B, the image of f is denoted by Im(f) and denoted the image of Ã⊂A under f by f(Ã)⊂B. The discussion below will focus on two writes where on the second write, cell levels can only increase in the ordered set (0, 1, . . . , q−1).
- A read corresponds to applying a read threshold to all n cells and a length-n Boolean vector that describes whether the ith cell is above or below the read threshold is returned, for iϵ{1, . . . , n}. Thus, if t reads (r1, . . . , rt) are performed to one page, the ordered set (0, 1, . . . , q−1) is partitioned into t+1 intervals. Note that if t=q−1, then the exact symbol in (0, 1, . . . , q−1) is read at the cost of read latency.
- In this section, the low latency rewriting codes are modeled mathematically. Additionally, a code construction that enables low latency reads for four level MLC flash memories is provided. The Gray mapping 2 is shown in Table I, which is consistent with the current NAND technology and thus does not require hardware/circuit redesign in NAND chips.
- Let the bijection between cell levels to (LSB, MSB) pairs be denoted by the Gray code 2. Let ψn: {0, 1, 2, 3}n {0, 1}n denote the LSB read of a page by applying one threshold between cell levels (1, 2). Let ϕn: {0, 1, 2, 3}n {0, 1}n denote the MSB read of a page by applying two thresholds between cell levels (0, 1) and (2, 3). The mappings 2, ψ1 and ϕ1 used in current NAND technology are defined in Table I. The following is denoted: ψn(c1 n)=(ψ1(c1) . . . ψ1(cn)), ϕn(c1 n)=(ϕ1(c1) . . . ϕ1(cn)), ∀c1 nϵ{0, 1, 2, 3}n.
-
TABLE I GRAY CODES OF LENGTH 2 USED FORMLC NAND i 0 1 2 3 G2 (i) 11 10 00 01 LSB read ψ1 (i) or ψ (i) 1 1 0 0 MSB read φ1 (i) or φ (i) 1 0 0 1 - The subscripts of ψn and ϕn will be omitted if arguments of ψ(⋅) and ϕ(⋅) have explicit length from context.
- An [n;(2nR
1ψ ,2nR1ϕ );(2nR2ψ ,2nR2ϕ )] two write low read latency rewriting code C is defined by two sets of joint encoders and page decoders {ε1, D1ψ, D1ϕ} and {ε2, D2ψ, D2ϕ}. The encoders are mappings: -
such that - The page decoders are mappings:
-
such that: -
∀iϵ{1,2},m iψϵ[2nRiψ ],m iϕϵ[2nRiϕ ] -
D 1ψ(ψ(ε1(m 1ψ ,m 1ϕ)))=m 1ψ, -
D 1ϕ(ϕ(ε1(m 1ψ ,m 1ϕ)))=m 1ϕ, -
D 2ψ(ψ(ε2(m 2ψ ,m 2ϕ,ε1(m 1ψ ,m 1ϕ)))=m 2ψ, -
D 2ϕ(ϕ(ε2(m 2ψ ,m 2ϕ,ε1(m 1ψ ,m 1ϕ)))=m 2ϕ. - The rate of logical page corresponding to LSBs on each write is R1ψ and R2ψ, and the rate of logical page corresponding to MSBs on each write is R1ϕ and R2ϕ. The sum rate is Σi=1 2Riψ+Σi=1 2Riϕ.
- In the definition discussed above, there are two logical pages storing data corresponding to LSBs and MSBs of a physical page. Note that the difference between the definition for low read latency rewriting cores and the definition of regular multi-level WOM codes lies in that the page decoders D1ψ,D2ψ (or D1ϕ, D2ϕ) only have information of LSBs read by ψ (or MSBs read by ϕ) from a physical page, and nevertheless need to decode correctly their own logical page regardless of the data in the other logical page. The number of read thresholds to decode LSB-represented and MSB-represented logical pages is 1 and 2 respectively, which is equivalent to conventional non-rewriting schemes that require 1.5 reads per logical page.
- Consider n=3 cells (c1, c2, c3) where ciϵ{0, 1, 2, 3} is the level of the ith cell. If a physical page contains a multiple of three cells, then the cells are concatenated and each set of consecutive three cells store data according to the proposed rewriting codes.
- Let q=4 (MLC) be the number of levels in a physical cell. Let the bijection (Gray code) between cell levels to (LSB, MSB) pairs, the LSB reads function ψ, and the MSB read function ϕ: be defined in the definition above.
- Let n=3. An [n;(22/3n,22/3n);(22/3n,21/3n)]=[3;(4,4);(4,2)] two write low read latency rewriting code for MLC is constructed by defining the set of encoders and decoders as follows. On the first write, let S[0]={111}, S[1]={011}, S[2]={101}, S[3]={110} be four sets each containing one element. Let Let S−1(x), xϵ{0,1}3 denote the set index {0, 1, 2, 3} that contains x. Let (m1ψμm1ϕ)ϵ[4]×[4] be the data for each page on the first write, then c1 3=ε1(m1ψμm1m) encodes by choosing αϵS[m1ψ],βϵS[m1ϕ] such that:
- The decoders D1ψ,D1ϕ for each page on the first write are:
-
{circumflex over (m)} 1ψ =D 1ψ(c 1 3)=S −1(ψ(c 1 3)) (2) -
{circumflex over (m)} 1ϕ =D 1ϕ(c 1 3)=S −1(ϕ(c 1 3)) (3) - On the second write, let Sψ[0]={100, 011}, Sψ[1]={000}, Sψ[2]={110, 001}, Sψ[3]={101, 010}, and Sϕ[0]={011, 101, 110}, Sϕ[1]={001, 100, 010}. Let Sψ −1(x),Sϕ −1(x) be the set index that contains x and Sψ and Sϕ, respectively. Let c1 3 be the cell levels after first write, (m2ψμm2ϕ)ϵ[4]×[2] be the data for each page on the second write, then ε2(m2ψμm2ϕ) encodes by choosing αϵS[m2ψ],βϵS[m2ϕ] such that:
- The decoders for each page on the second write are:
-
{circumflex over (m)} 2ψ =D 2ψ(c 1 3)=S ψ −1(ψ(c 1 3)) (5) -
{circumflex over (m)} 2ϕ =D 2ϕ(c 1 3)=S ϕ −1(ϕ(c 1 3)) (6) -
-
- The above discuss provides two write low latency (1.5 reads per logical page) rewriting codes for MLC with sum rate 7/3 bits/cell.
- Let n=3 and all cell levels are 0(c1 3=000) before first write. Supposed the data for both pages needed to store on both writes are ((m1ψμm1ϕ)=(3,2)ϵ[4]×[4] and (m2ψμm2ϕ)=(1,1)ϵ[4]×[2]. On the first write, choose α=110ϵS[m1ψ]=S[3] and β=101ϵS[m1ϕ]=S[2], then according to equation (1),
-
- To decode the data in LSB for the first write, apply one threshold for LSB read and have w(013)=110, the data is then decoded according to equation (2), {circumflex over (m)}1ψ=S−1(110)=3.
- To decode the data in MSB for the first write, two thresholds are applied for MSB read and have 4(013)=101, the data is then decoded according to equation (3), {circumflex over (m)}1ϕ=S−1(101)=2.
-
- To decode the data in LSB for the second write, one threshold for LSB read is applied and have ψ(223)=000, the data is then decoded according to equation (5), {circumflex over (m)}2ψ=Sψ −1(000)=1.
- To decode the data in MSB for the second write, two thresholds for MSB read are applied and have ϕ(223)=001, the data is then decoded according to equation (6), {circumflex over (m)}2ϕ=Sϕ −1(001)=1.
- The above construction achieves (Rsum, tave)=(7/3, 1.5). Compared to non-rewriting codes (2, 1.5) for MLC, the improvement is 17%. Note also that the sum capacity of two write four level WOM is log2 10≈3.32 bits per cell. The gap between the above construction and the sum capacity of regular WOM is due to low read latency requirements. A simple analysis would show that the above construction provides the optimal two write low read latency codes based on encoding/decoding of three cells. Code constructions based on larger numbers of cells (n>3) might achieve better sum rate at the cost of design complexity (computer search) and encoding/decoding complexity.
- Code constructions for TLC flash will now be discussed. The Gray code 3 used in current TLC NAND technology that maps the LSB, central significant bit (CSB), and MSB to cell level {0, 1, . . . , 7} denoted by a triplet of functions applied during read (ψl, ψc, ψm) is in Table III. Note that to read LSB, CSB and MSB pages, (ψl(i), ψc(i), ψm(i)) requires (2, 3, 2) read thresholds, respectively, applied at the transitions between 0 and 1 for each page.
-
TABLE II GRAY CODES OF LENGTH 3 USED FORTLC NAND i 0 1 2 3 4 5 6 7 G3 (i) 111 110 100 000 010 011 001 101 ψl (i) 1 1 1 0 0 0 0 1 ψc (i) 1 1 0 0 1 1 0 0 ψm (i) 1 0 0 0 0 1 1 1 - An [n=3; (22, 22, 22); (22, 22)] low latency rewriting code of length n=3, where three logical pages of
size 2 bits each are stored in (LSB, CSB, MSB) on the first write and 2 logical pages ofsize 2 bits each are stored in (LSB, MSB) on the second write, is constructed by a set of encoders and decoders. On the first write, let S[0]={000}, S[1]={001}, S[2]={010}, S[3]={100}, let S−1(x) denote the set index that contains xϵ{0, 1}3. Let (m1l,m1c,m1m)ϵ[4]×[4]×[4] be the data for each page, then c1 3=ε1(m1l,m1c,m1m):[4]×[4]×[4]→Im(ε1)⊂[8]3 encodes by choosing αϵS[m1l], βϵS[m1c], γϵS[m1m] such that: - The decoders for each page on the first write is defined by:
-
{circumflex over (m)} 1i =D 1i(c 1 3)=S −1(ψi(c 1 3), i=l,c,m (8) - On the second write, 2 is used instead of 3. Let Sψl[0]={101, 010}, Sψl[1]={100, 011}, Sψl[2]={000}, Sψl[3]={110, 001} and Sψm[0]={111}, Sψm[1]={001, 110}, Sψm[2]={011, 100}, Sψm[3]={101, 010}. Let Sψl −1(x),Sψm −1(x) be the set index in {0, 1, 2, 3} that contains x. Let {tilde over (c)}1 3 be the cell levels after first write, (m2ψ
l ,m2ψm )ϵ[4]×[4] be the data for both pages on the second write, then ε2(m2ψl ,m2ψm ) encodes by choosing αϵS[m2ψl ], βϵm2ψm such that: - The decoders D2l, D2m for each page on the second write are:
-
{circumflex over (m)} 2i =D 2i(c 1 3)=S ψi −1(ψi(c 1 3), i=l and m (10) -
- Moreover, the number of reads for D1ψ
l , D1ψc , D1ψm is (2, 3, 2) for the first write, the number of reads for D2ψl , D2ψm is (1, 2) on the second write, then -
- reads per page. The sum rate is 10/3 bits per cell. Therefore, the above construction is an (Rsum, tave)=(10/3, 2) code, which improves both sum rate and read latency comparing to non-rewriting (3, 7/3) scheme.
- A close look at the code design process (determining the contents of S, Sψ, Sϕ for MLC and S, Sψl, Sψm for TLC) would reveal that the encoders/decoder is a labeling problem on the n-dimensional cube. The labeling for n=3 in the above constructions are manually designed on three dimensional cubes. For example,
FIG. 4 shows an equivalent encoding/decoding visualized in a cubical grid of lateral size 4. Im(≥1) is the set of black points and Im(ε2) is the set of red points. Labels on points are the data pairs for both logical pages. Shaded labeling(or dashed lines) mean the particular point (or grid) is on the invisible side of the cube. The triplet, e.g., c1 3=(013), indicates that xyz coordinates of a few example points. Note that some points are in both Im(ε1) and Im(ε2), e.g., overlapping black and red points at c1 3=(013) with 3, 2 and 2, 0 for each write. Example 1 above shows two pairs of data messages on both writes as (m1ψ,m1ϕ)=(3,2), (m2ψ,m2ϕ)=(1,1), which corresponds to the sequence of cell level changes (staring from the origin) (000)→(013)→(223) as shown indata message pair FIG. 4 . - For TLC, with n>3, the first write can be designed similarly as n=3, but the second write needs a computer search for good codes. In order to achieve a better sub rate, tradeoffs are made by using three thresholds for the second write, and thus
-
- reads per page. Table III lists the sum rate and the number of reads on both writes, where column with n=1 is the conventional non-rewriting schemes.
-
TABLE III (RSUM, tAVE) FOR TLC WITH n ≥ 3 n 1 3 5 7 9 11 nR 13 6 12 18 24 30 nR 20 4 5 7 9 11 Rsum (bits/cell) 3 3.33 3.40 3.57 3.67 3.73 tave 2.33 2 2.5 2.5 2.5 2.5 - The low ready latency rewriting codes discussed herein are based on three dimensional lattices to enable fast read as current NAND technology supports. Separate designs for MLC and TLC flash improve the sum rate, or lifetime capacity, by 17%, 11% and 24%, with 1.5, 2 and 2.5 reads per page respectively.
- The present disclosure relates to data mapping based on three dimensional lattices that have an improved sum rate (i.e., lifetime capacity) with low read latency. During the write, an assumption is used that all logical pages are available at the encoder. During the read, the mapping has advantages that for each logical page, only a subset of read thresholds are needed to decode the data in the corresponding page, and thus the read latency is largely reduced. To be more specific, low read latency data mappings are used for a four level MLC and eight level TLC flash memories. For MLCs, the mapping achieves 17% improvement in total data stored. The code is defined by encoding and decoding maps. For TLC, in order to comply with Gray codes used in current NAND technology, similar, yet separate from MLC design, designs of mapping can achieve 11% to 24% improvement lifetime capacity.
- The basic premise of NAND flash memory is that the memory can only be written one time and then, if the memory is to be written again, the memory will need to be erased. As discussed herein, rather than erasing the memory, it is possible to write in the memory locations again prior to erasure and thus, the lifetime of the NAND flash memory is increased, as is the storage capacity.
-
FIG. 1 is a schematic illustration of asystem 100 according to one embodiment. The system includes ahost device 102 that interacts with amemory system 104. Acontroller 106 is coupled to both thehost device 102 and thememory system 104. Thememory system 104 stores data that may be needed by thehost device 102 at various times. When the data is needed, thehost device 102 contacts thememory system 104 to obtain the data. Thecontroller 106 controls the communication between thememory system 104 and thehost device 102. - The
memory system 104 includes amemory controller 108 and multiple CPUs orprocessors 110A-110N. Thememory system 104 also includes amemory device 112. Thememory device 112 is coupled to all of theCPUs 110A-110N as well as thememory controller 108. In one embodiment, thememory device 112 is a NAND storage device. In another embodiment, thememory device 112 is a HDD storage device. It is to be understood that thememory device 112 is not to be limited to either a NAND storage device or a HDD storage device. Rather, thememory device 112 is applicable to any storage device capable of storing data that may be retrieved by one or more CPUs. -
FIG. 2 is a schematic diagram of amemory array 200, according to one embodiment described herein. Thememory array 200 includes a plurality ofmemory cells 202, a first plurality ofparallel lines 204, and a second plurality ofparallel lines 206. The first plurality ofparallel lines 204 run orthogonal to the second plurality ofparallel lines 206. The first plurality ofparallel lines 204 represent bit lines. The second plurality ofparallel lines 206 represent word lines. Eachmemory cell 202 is coupled to abit line 204 and aword line 206.Co-linear memory cells 202 are coupled to one common line and one line not in common with the other co-linear memory cells. -
FIGS. 3A-3C are schematic illustrations of a NANDflash memory block 300. Theblock 300 includes 128 word lines spanning the entire block as shown by arrows “A”. The amount of available data exposed to the user is represented by arrows “B” and is 16 kB. In a simple situation where all data to be stored is comprised of 32 kB of data, each set of data would need two separate word lines and thus, twoseparate memory locations 302A-302N to store the data in a single write-single erase system. Thus, theblock 300, prior to initial usage, has the ability to store 64 sets of data in the 128 word lines.FIG. 3A shows the situation where each bit can only be written once prior to erasure because the amount of available data exposed to the user is 16 kB. Prior to the instant disclosure, there were 2 bits per cell, but each bit could only be written once prior to erasure. - As will be discussed herein, there are 4/3 bits per cell for the first writing and 1 bit per cell on the second writing (or update writing). Because there are 4/3 bits per cell for the first writing, then there is only 10.67 kB of data exposed to the user for the first write represented by arrows “C” in
FIG. 3B . Thus, rather than just two word lines, three word lines will be necessary to store the data. Hence, for the first writing, there will be 42.66 sets of data that can be stored. Once theentire block 300 has been written, the block can be rewritten (or updated). - During the rewrite, only 8 kB of data is exposed to the user as shown by arrows “D” in
FIG. 3C . Thus, for the rewrite, to store 32 kB of data, four word lines will be needed. Therefore, the rewrite (or second write) will accommodate 32 sets of data. Combining the write and rewrite, 74.66 data writes can occur, which is greater than the 64 that occurs if there is only one write. The 74.66 write represents an almost 17% increase in storage capacity. Because there is an increase in storage capacity, there is less erasure and thus, longer NAND flash memory device life. - In Example 2, code mapping for 3 MLC cells with minimum changes will be discussed. L is low (0 or 1); H is high (2 or 3); I is in (
level 1 or 2); and O is out (level 0 or 3). The current mapping for a 4-level MLC is {E, P1, P2, P3}={11, 10, 00, 01}. During the first write process, {0, 1, 2, 3} translates to the following: {111, 011, 101, 110}. For LSB, 0→LLL {111}; 1→HLL {011}; 2→LHL {101}; and 3→LLH {110}. For MSB, 0→OOO {111}; 1→IOO {011}; 2→OIO {101}; and 3→OOI {110}. For the first write process, (LSB, MSB), the LSB=3={110} and MSB=2={101}. The first update is programmed to (0,1,3); when the LSB is read, the pattern=(L,L,H), and all (L,L,H)-pattern corresponds to LSB=3. When reading the MSB, the pattern=(O,I,O), and all (O,I,O) patterns correspond to MSB=2. Considering the digits in order of the LSB and MSB together (LSB first followed by MSB), the resulting pairs are (11, 10, 01) which, according to the mapping noted above, equals (E, P1, P3)=C1 3. - For the second writing, or updated writing, both the LSB and MSB depend upon C1 3. For LSB, 00 (or 0)→LHH {100}, HLL {011}; 01 (or 1)→HHH {000}; 10 (or 2)→LLH {110}, HHL {001}; 11 (or 3)→LHL {101}, HLH {010}. For MSB, 0→IOO {011}, OIO {101}, OOI {110}; 1→IIO {001}, OII {100}, IOI {010}. For the second writing (or update), (LSB, MSB)=(3,0) and is programmed to (3,1,3). When the LSB is read, the pattern is (H,L,H), and all (H,L,H) patterns correspond to LSB=3. When reading MSB, the pattern is (O,I,O), and all (O,I,O) patterns correspond to MSB=0.
- If LSB=(101) and MSB=(101) are chosen, then considering the digits in order of the LSB and MSB together (LSB first followed by MSB), the resulting pairs are (01, 10, 01) which, according to the mapping noted above, equals (P3, P1, P3)=(3,1,3)=C1 3. For Example 2, there are 2 bits LSB and 2 bits MSB on the first write. Then, there are 2 bits LSB and 1 bit MSB on the second write (or update) for a total of 7 bits for 3 cells. Note that the 3 MLC cells can store 6 bits conventionally. Therefore, the 7 bits represent a 17% increase. The average reads per page is 1.5 which equals the conventional reads per page. Thus, the read latency does not suffer, yet the amount of data that can be stored has increased.
FIG. 4 is an encoding and decoding mapping of a 2-write low read latency code 3D representative model of Example 2. -
FIG. 5 is aflowchart 500 illustrating a method of writing data twice to the same memory location prior to erasing the data. As shown inFIG. 5 , a first set of data is initially written to a memory location inblock 502. Then, prior to any erasure, a second set of data is written to the memory location inblock 504. Finally, inblock 506, the data can be erased from the memory location. Prior to the disclosure, theblock 506 would occur prior to block 504 because data could only be written once to the memory location, but as discussed herein, less than the entire memory location is utilized in the first write. Thus, when the time comes for the second write, there is still room for more data to be written to the memory location. Therefore, by writing twice to the same memory location, more data can be stored prior to erasure. - In Example 3, code mappings for 3 TLC cells with minimum changes will be discussed. The current mapping for an 8-level MLC is {E, P1, P2, P3, P4, P5, P6, P7}={111, 110, 100, 000, 010, 011, 001, 101}. During the first write process, {0, 1, 2, 3} translates to the following: {000, 001, 010, 011}. The LSB=1={001}, the CSB=2={010} and MSB=1={001}. Considering the digits in order of the LSB, CSB and MSB together (LSB first followed by CSB and then MSB), the resulting groups are (000, 010, 101) which, according to the mapping noted above, equals (P3, P4, P7)=C1 3. For the second writing, or updated writing, only the LSB and MSB are used and depend upon C1 3. Additionally, P4, P5, P6, P7)={11, 10, 00, 01}. For LSB, 0→101, 010; 1→100, 011; 2→000; 3→110, 001. For MSB, 0→111; 1→001, 110; 2→011, 100; 3→101, 010. For the second writing (or update), LSB=3=(110) or (001). MSB=0=(111). If LSB=(110) and MSB=(111) are chosen, then considering the digits in order of the LSB and MSB together (LSB first followed by MSB), the resulting pairs are (11, 11, 01) which, according to the mapping noted above, equals (P4, P4, P7)=(4,4,7)=C1 3. For Example 3, there are 2 bits LSB, 2 bits CSB and 2 bits MSB on the first write. Then, there are 2 bits LSB and 2 bits MSB on the second write (or update) for a total of 10 bits for 3 cells. Note that the 3 TLC cells can store 9 bits conventionally. Therefore, the 10 bits represent an 11% increase. The average reads per page is 2 which is less than the 2.33 conventional reads per page. Thus, the read latency is reduced and the amount of data that can be stored has increased.
- Writing data once and then erasing does not maximize resources. Doing so leads to short device life and eventual device failure. By writing twice to the same memory location prior to erasing the memory location, not only can more data be stored, but the device life is increased (relative to storing once and then erasing) because the data will not be erased until the memory location is used twice for storage.
- While the foregoing is directed to embodiments of the present disclosure, other and further embodiments of the disclosure may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.
Claims (28)
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/472,326 US10360973B2 (en) | 2016-12-23 | 2017-03-29 | Data mapping enabling fast read multi-level 3D NAND to improve lifetime capacity |
| DE102017120791.0A DE102017120791A1 (en) | 2016-12-23 | 2017-09-08 | Data mapping that enables a fast-read multi-level 3D NAND to improve lifetime capability |
| KR1020170117260A KR101996136B1 (en) | 2016-12-23 | 2017-09-13 | Data mapping enabling fast read multi-level 3d nand to improve lifetime capacity |
| CN201710831819.6A CN108242249B (en) | 2016-12-23 | 2017-09-15 | Data mapping system, method and storage medium thereof |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201662438821P | 2016-12-23 | 2016-12-23 | |
| US15/472,326 US10360973B2 (en) | 2016-12-23 | 2017-03-29 | Data mapping enabling fast read multi-level 3D NAND to improve lifetime capacity |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20180182453A1 true US20180182453A1 (en) | 2018-06-28 |
| US10360973B2 US10360973B2 (en) | 2019-07-23 |
Family
ID=62630662
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US15/472,326 Active US10360973B2 (en) | 2016-12-23 | 2017-03-29 | Data mapping enabling fast read multi-level 3D NAND to improve lifetime capacity |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US10360973B2 (en) |
| KR (1) | KR101996136B1 (en) |
| CN (1) | CN108242249B (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109903799B (en) * | 2019-01-29 | 2021-08-03 | 华中科技大学 | A three-dimensional flash memory array cell operation method with variable programming levels |
Citations (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5815434A (en) * | 1995-09-29 | 1998-09-29 | Intel Corporation | Multiple writes per a single erase for a nonvolatile memory |
| US20070101096A1 (en) * | 2005-10-27 | 2007-05-03 | Sandisk Corporation | Non-volatile memory with adaptive handling of data writes |
| US20120218827A1 (en) * | 2011-02-28 | 2012-08-30 | Hynix Semiconductor Inc. | Memory apparatus and method for controlling erase operation of the same |
| US20130304966A1 (en) * | 2012-05-14 | 2013-11-14 | SK Hynix Inc. | Non-volatile memory device and method for programming the same |
| US20130301352A1 (en) * | 2012-05-09 | 2013-11-14 | Samsung Electronics Co., Ltd. | Method of programming a nonvolatile memory device and nonvolatile memory device performing the method |
| US20130311715A1 (en) * | 2006-08-22 | 2013-11-21 | Micron Technology, Inc. | Method for modifying data more than once in a multi-level cell memory location within a memory array |
| US20140122773A1 (en) * | 2012-10-26 | 2014-05-01 | Micron Technology, Inc. | Partial page memory operations |
| US20150193156A1 (en) * | 2014-01-09 | 2015-07-09 | Netapp, Inc. | Nvram data organization using self-describing entities for predictable recovery after power-loss |
| US20150363105A1 (en) * | 2014-06-16 | 2015-12-17 | Kabushiki Kaisha Toshiba | Storage device, memory controller, and control method |
| US20150378613A1 (en) * | 2013-05-17 | 2015-12-31 | Hitachi, Ltd. | Storage device |
| US20160364141A1 (en) * | 2015-06-12 | 2016-12-15 | Phison Electronics Corp. | Memory management method, memory control circuit unit, and memory storage apparatus |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7388781B2 (en) | 2006-03-06 | 2008-06-17 | Sandisk Il Ltd. | Multi-bit-per-cell flash memory device with non-bijective mapping |
| US7542337B2 (en) * | 2006-07-31 | 2009-06-02 | Sandisk 3D Llc | Apparatus for reading a multi-level passive element memory cell array |
| US8621137B2 (en) * | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Metadata rebuild in a flash memory controller following a loss of power |
| JP5359798B2 (en) * | 2009-11-10 | 2013-12-04 | ソニー株式会社 | Memory device and reading method thereof |
| US9070427B2 (en) | 2010-08-13 | 2015-06-30 | Sandisk Technologies Inc. | Data coding using divisions of memory cell states |
| KR101184866B1 (en) * | 2010-10-26 | 2012-09-20 | 에스케이하이닉스 주식회사 | Nonvolatile memory device and operation method and erase method of the same |
| US8880977B2 (en) * | 2011-07-22 | 2014-11-04 | Sandisk Technologies Inc. | Systems and methods of storing data |
| US8879319B1 (en) | 2011-07-29 | 2014-11-04 | Ecole Polytechnique Federale De Lausanne (Epfl) | Re-writing scheme for solid-state storage devices |
| WO2014051611A1 (en) | 2012-09-28 | 2014-04-03 | Duke University | Systems for and methods of extending lifetime of non-volatile memory |
| KR101710025B1 (en) | 2013-01-24 | 2017-02-24 | 캘리포니아 인스티튜트 오브 테크놀로지 | Joint rewriting and error correction in write-once memories |
| US9804960B2 (en) * | 2013-03-14 | 2017-10-31 | Western Digital Technologies, Inc. | Overprovision capacity in a data storage device |
| WO2015005635A1 (en) | 2013-07-08 | 2015-01-15 | 주식회사 윌러스표준기술연구소 | Memory system and method for processing data in memory |
| US10394489B2 (en) | 2015-01-21 | 2019-08-27 | Technion Research & Development Foundation Ltd. | Reusable memory devices with WOM codes |
-
2017
- 2017-03-29 US US15/472,326 patent/US10360973B2/en active Active
- 2017-09-13 KR KR1020170117260A patent/KR101996136B1/en active Active
- 2017-09-15 CN CN201710831819.6A patent/CN108242249B/en active Active
Patent Citations (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5815434A (en) * | 1995-09-29 | 1998-09-29 | Intel Corporation | Multiple writes per a single erase for a nonvolatile memory |
| US20070101096A1 (en) * | 2005-10-27 | 2007-05-03 | Sandisk Corporation | Non-volatile memory with adaptive handling of data writes |
| US20130311715A1 (en) * | 2006-08-22 | 2013-11-21 | Micron Technology, Inc. | Method for modifying data more than once in a multi-level cell memory location within a memory array |
| US20120218827A1 (en) * | 2011-02-28 | 2012-08-30 | Hynix Semiconductor Inc. | Memory apparatus and method for controlling erase operation of the same |
| US20130301352A1 (en) * | 2012-05-09 | 2013-11-14 | Samsung Electronics Co., Ltd. | Method of programming a nonvolatile memory device and nonvolatile memory device performing the method |
| US20130304966A1 (en) * | 2012-05-14 | 2013-11-14 | SK Hynix Inc. | Non-volatile memory device and method for programming the same |
| US20140122773A1 (en) * | 2012-10-26 | 2014-05-01 | Micron Technology, Inc. | Partial page memory operations |
| US20150378613A1 (en) * | 2013-05-17 | 2015-12-31 | Hitachi, Ltd. | Storage device |
| US20150193156A1 (en) * | 2014-01-09 | 2015-07-09 | Netapp, Inc. | Nvram data organization using self-describing entities for predictable recovery after power-loss |
| US20150363105A1 (en) * | 2014-06-16 | 2015-12-17 | Kabushiki Kaisha Toshiba | Storage device, memory controller, and control method |
| US20160364141A1 (en) * | 2015-06-12 | 2016-12-15 | Phison Electronics Corp. | Memory management method, memory control circuit unit, and memory storage apparatus |
Also Published As
| Publication number | Publication date |
|---|---|
| US10360973B2 (en) | 2019-07-23 |
| KR20180074561A (en) | 2018-07-03 |
| CN108242249B (en) | 2021-12-03 |
| KR101996136B1 (en) | 2019-07-03 |
| CN108242249A (en) | 2018-07-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10846173B2 (en) | Method for accessing flash memory module and associated flash memory controller and memory device | |
| US10643733B2 (en) | Method, flashing memory controller, memory device for accessing 3D flash memory having multiple memory chips | |
| US9244763B1 (en) | System and method for updating a reading threshold voltage based on symbol transition information | |
| US9141475B2 (en) | Methods for tag-grouping of blocks in storage devices | |
| US9384126B1 (en) | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems | |
| US10613943B2 (en) | Method and system for improving open block data reliability | |
| JP5785330B2 (en) | Apparatus and method for operating for memory endurance | |
| US11631457B2 (en) | QLC programming method with staging of fine data | |
| US10348332B2 (en) | Method for accessing flash memory module and associated flash memory controller and memory device | |
| US11137944B1 (en) | Combined QLC programming method | |
| CN113113076B (en) | Decoding method, flash memory controller and electronic device | |
| US9361221B1 (en) | Write amplification reduction through reliable writes during garbage collection | |
| WO2018192488A1 (en) | Data processing method and apparatus for nand flash memory device | |
| US9009576B1 (en) | Adaptive LLR based on syndrome weight | |
| US9865338B2 (en) | Memory system and method of controlling nonvolatile memory by converting write data written to a page | |
| CN119541592A (en) | Method for accessing flash memory module and related flash memory controller and memory device | |
| US20170262194A1 (en) | Memory controller, method of controlling nonvolatile memory and memory system | |
| US10372377B2 (en) | Memory controller, memory system, and control method | |
| CN111159069A (en) | Flash memory controller, method for managing flash memory module, and related electronic device | |
| US10204043B2 (en) | Memory controller, method of controlling nonvolatile memory and memory system | |
| US10360973B2 (en) | Data mapping enabling fast read multi-level 3D NAND to improve lifetime capacity | |
| TWI886856B (en) | Method and computer program product and apparatus for read retry | |
| CN113342569B (en) | Equal-length coding and decoding method for eliminating unreliable state of flash memory cell | |
| Qin et al. | Low read latency rewriting codes for multi-level 3-D NAND flash | |
| TW202512197A (en) | Method for accessing flash memory module and associated flash memory controller and memory device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: WESTERN DIGITAL TECHNOLOGIES, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BANDIC, ZVONIMIR Z.;MATEESCU, ROBERT EUGENIU;QIN, MINGHAI;AND OTHERS;SIGNING DATES FROM 20170324 TO 20170328;REEL/FRAME:041773/0143 |
|
| STPP | Information on status: patent application and granting procedure in general |
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 VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS AGENT, ILLINOIS Free format text: SECURITY INTEREST;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:052915/0566 Effective date: 20200113 |
|
| AS | Assignment |
Owner name: WESTERN DIGITAL TECHNOLOGIES, INC., CALIFORNIA Free format text: RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:059127/0001 Effective date: 20220203 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
| AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., ILLINOIS Free format text: PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:064715/0001 Effective date: 20230818 Owner name: JPMORGAN CHASE BANK, N.A., ILLINOIS Free format text: PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:067045/0156 Effective date: 20230818 |
|
| AS | Assignment |
Owner name: SANDISK TECHNOLOGIES, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:067567/0682 Effective date: 20240503 Owner name: SANDISK TECHNOLOGIES, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNOR'S INTEREST;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:067567/0682 Effective date: 20240503 |
|
| AS | Assignment |
Owner name: SANDISK TECHNOLOGIES, INC., CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:SANDISK TECHNOLOGIES, INC.;REEL/FRAME:067982/0032 Effective date: 20240621 |
|
| AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS THE AGENT, ILLINOIS Free format text: PATENT COLLATERAL AGREEMENT;ASSIGNOR:SANDISK TECHNOLOGIES, INC.;REEL/FRAME:068762/0494 Effective date: 20240820 |
|
| AS | Assignment |
Owner name: SANDISK TECHNOLOGIES, INC., CALIFORNIA Free format text: PARTIAL RELEASE OF SECURITY INTERESTS;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS AGENT;REEL/FRAME:071382/0001 Effective date: 20250424 Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, ILLINOIS Free format text: SECURITY AGREEMENT;ASSIGNOR:SANDISK TECHNOLOGIES, INC.;REEL/FRAME:071050/0001 Effective date: 20250424 |