WO2009117204A1 - Adaptive algorithm in cache operation with dynamic data latch requirements - Google Patents
Adaptive algorithm in cache operation with dynamic data latch requirements Download PDFInfo
- Publication number
- WO2009117204A1 WO2009117204A1 PCT/US2009/034573 US2009034573W WO2009117204A1 WO 2009117204 A1 WO2009117204 A1 WO 2009117204A1 US 2009034573 W US2009034573 W US 2009034573W WO 2009117204 A1 WO2009117204 A1 WO 2009117204A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- data latches
- memory
- latches
- read
- Prior art date
Links
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
-
- 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
- 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/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1039—Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1087—Data input latches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2245—Memory devices with an internal cache buffer
-
- 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/562—Multilevel memory programming aspects
- G11C2211/5623—Concurrent multilevel programming and reading
-
- 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/5642—Multilevel memory with buffers, latches, registers at input or output
-
- 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/5643—Multilevel memory comprising cache storage devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
Definitions
- This invention relates generally to non- volatile semiconductor memory such as electrically erasable programmable read-only memory (EEPROM) and flash EEPROM, and specifically to cache operations based on shared latch structures allowing overlapping memory operations.
- EEPROM electrically erasable programmable read-only memory
- flash EEPROM flash EEPROM
- non-volatile memories such as flash memory
- flash memory with multiple levels per cell can be used to replace the binary chips; however, the speed of operations can be slower in multi-state memories, such as in the case of writing data where the tolerances between states become stricter. Consequently, the performance level of memories having multi-level cells has much scope for improvement.
- a non-volatile memory and corresponding method of operation are presented, where the memory has addressable pages of memory cells and each memory cell of an addressed page is provided with a set of corresponding data latches that can latch a predetermined number of bits.
- the memory can perform a first operation (such as a write, for example) on a designated group of one or more addressed pages using a first set of data stored in the corresponding set of data latches and also receive a request for a second operation (such as a read, for example) that also uses some of these corresponding data latches with a second set of data.
- the memory subsequently performs the second operation during the first operation when a sufficient number of latches become available; and if, in response to determining whether there are a sufficient number of the corresponding set of data latches to perform the second operation it is determined that there are a sufficient number, performing the second operation during the first operation.
- FIG. 1 illustrates inserting a read inside a cache program operation.
- FIG. 2 illustrates inserting a read inside a cache erase operation.
- FIG. 3 shows a particular programming order for pages and some corresponding look ahead reads.
- FIG. 4 illustrates inserting a read inside a cache program operation when there are insufficient latches available.
- FIG. 5 illustrates inserting a read inside a cache erase operation when there are insufficient latches available.
- FIG. 6 is another example of inserting a read inside a cache program operation when there are insufficient latches available.
- FIG. 7 shows schematically how various cache points occur.
- FIG. 8 is a flow chart for one basic embodiment of the adaptive algorithm.
- Non- volatile memories such as NAND flash memory
- NAND flash memory with multi levels per cell are used to replace binary chips
- One set of performance enhancements is based on utilizing complicated cache algorithm to do parallel operations at the same time. Examples of some such enhancements are given US patent application publication numbers US- 2006-0221704-A1 and US-2007-0109867-A1. Reference is also made to the following US patent application publication numbers, which provide additional detail on many aspects: US 2006-0233023-A1; US 2006-0233021-A1; US 2006-0221696- Al; US 2006-0233010-Al; US 2006-0239080-A1; and US 2007-0002626-A1.
- Look Ahead read is an algorithm that uses a corrective reading that depends on the data of the next word.
- Read with the LA (“Look Ahead”) correction basically examines the memory states programmed into the cells on an adjacent wordline and corrects any perturbation effect they have on the memory cells being read on the current wordline. If the pages have been programming according to a preferred programming scheme described in the cited references, then the adjacent wordline will be from the wordline immediately above the current one. The LA correction scheme would require the data on the adjacent wordline to be read prior to the current page.
- the number of data latches required to do a LA read will depend on the correction that is required. In some cases this will be a 1 bit correction, others will use a 2 bit or 3 bit correction. The correction needed for each page will depend on the program sequence that the page and the adjacent pages went through. In some cases, one page will need only 1 bit correction, while another page will possibly use 2 bit correction. These different correction levels will use different numbers of data latches to handle the LA read.
- mixed cache operations such as inserting a read in cache program for a copy function, or inserting a read in a cache erase operation
- the variations of data latch requirements for the read is preferably accounted for in the cache algorithms.
- the data latch requirement is also unknown before the user (e.g., a controller or host) issues the address. To better handle these complications a new cache algorithm, called adaptive algorithm in the following, is introduced.
- LA look ahead
- LM lower middle
- Read with the LA ("Look Ahead”) correction basically examines the memory states programmed into the cells on an adjacent wordline and corrects any perturbation effect they have on the memory cells being read on the current wordline. If the pages have been programming according to the preferred programming scheme described above, then the adjacent wordline will be from the wordline immediately above the current one. The LA correction scheme would require the data on the adjacent wordline to be read prior to the current page.
- Figures 1 and 2 respectively give example of inserting a read into a cache program and a cache erase operation. In the cache program with copy operation of Figure 1, the process begins with the program operation beginning at 101.
- Figure 2 is the corresponding arrangement for a cache erase with read.
- An erase process here with including a soft programming operation, is started at 210.
- data latches are avail for an interposed operation. Since a soft program operation can be considered a sort of binary programming operation, for N-state memory cells, this will typically result in the there being (N-I) available latches.
- a read operation can then be interposed at 205, after which the soft programming phase can continue.
- the insert read operation (105 or 111 in Figure 1, 205 in Figure 2) is a look ahead read operation
- the data latch requirements will depend on the amount of correction used.
- 1 bit correction will use 2 data latches, with one data latch is for WLn+ 1 data and one for 1 page of WLn data.
- 3 data latches are used (two for WLn+ 1 data and one for 1 page of WLn data)
- 4 data latches are used (three for WLn+ 1 data and one for 1 page of WLn data).
- the inclusion of the lower middle (“LM”) page order and the corresponding latch requirements are consider when combined with the LA read, an arrangement that is developed in more detail in a US patent application entitled “Different Combinations of Wordline Order and Look-Ahead read to improve Non- Volatile Memory performance" of Yan Li, filed March 19, 2008.
- the pages may be arranged so that the lower and middle are consecutive and programmed together, but where the upper page will be jumped in a way that upper page program will tend to eliminate the middle page to middle page WL-WL coupling effects.
- the upper page is programmed after the next wordline's middle page program.
- the lower and middle page will be read in with LA read to correctively read in data from the memory cells.
- an upper page read will need only 1 bit correction, since the upper page is only coupled to the next WL upper page program.
- a middle page read on the other hand, will use 2 bits for LA read correction, since lower and middle page can couple the previous wordlines middle page voltage thresholds.
- FIG. 4 Going back to the example of a cache program with an inserted read for copy case, this is shown in Figure 4, where the program operation begins at 401. As the operation continues, at some point a pair of latches for each cell in the page is freed up at 403. At this point a read can be inserted as shown at 405. This may either be a read that the state machine was already holding, waiting for latches to open up, or a read request that comes in after the latches open, in which case the programming would have continued until the read came in. In either case, once the read is inserted, it may be determined that 2 latches are not enough to complete this read.
- a read command may be entered when 2 data latch is available, but may only be executed by assuming that the upper page read uses only a 1 bit LA read; however, if the page does not have its upper page programmed, it will need 2 bits for the LA read. Typically, the latches will have been filled with program data, but once it is determined that further latches are needed, the read data would be treated as invalid. In this situation, the read command the user (i.e., the controller) issued cannot be completed until more data latches are available. In this example, the read cannot be executed until 3 data latches are available. Once the memory determines that there are insufficient latches and the read cannot be completed, the command held until the needed latches are available, as shown by the arrow.
- the erase with soft program begins at 501.
- Figure 6 illustrates another situation, where the adaptive cache operation could be complicated to manage.
- Figure 6 shows an example where a first read is executed in 601-607 without needing more latches than the available latches, much as in patent publications referenced above. This read-in page will be checked for ECC and then ready to be programmed into another location. During the upper page program (part of 607), a second read can be inserted at 611. If the second read can not be executed due to the unavailability of sufficient data latches, the second read can not be executed immediately and will wait until the upper page finish its program (613).
- the first read data (which has not yet been programmed) is still in the data latches will be transferred to the right location.
- the second read command can be executed after the upper page program finished.
- the incomplete read can be executed again (617), much as described with respect to Figure 4.
- FIG. 7 shows this conceptually, where time is taken as running to the right and diagram picks up at some more or less arbitrary point in operation of an ongoing write command.
- the various available cache points are as indicated at 701, 703, ..., 713, where the write operation that was in process when Figure 7 begins ends at 731 , after which the next write takes up.
- FIG. 8 is a flowchart of one exemplary embodiment.
- a command for the operation will be issued and at a cache point (indicated by a Ready/Busy signal, for example) the command is entered.
- the state machine After the user command issued, the state machine will check if there are enough data latches to execute this command at 803. If there are enough data latches (yes out of 805), then the user command can be executed immediately at 807 and then return to 801.
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009801179088A CN102037519A (en) | 2008-03-19 | 2009-02-19 | Adaptive algorithm in cache operation with dynamic data latch requirements |
JP2011500833A JP2011515786A (en) | 2008-03-19 | 2009-02-19 | An adaptation algorithm in cache operations with dynamic data latch requests |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/051,462 | 2008-03-19 | ||
US12/051,462 US7961512B2 (en) | 2008-03-19 | 2008-03-19 | Adaptive algorithm in cache operation with dynamic data latch requirements |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2009117204A1 true WO2009117204A1 (en) | 2009-09-24 |
Family
ID=40547403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2009/034573 WO2009117204A1 (en) | 2008-03-19 | 2009-02-19 | Adaptive algorithm in cache operation with dynamic data latch requirements |
Country Status (6)
Country | Link |
---|---|
US (1) | US7961512B2 (en) |
JP (1) | JP2011515786A (en) |
KR (1) | KR20100138943A (en) |
CN (1) | CN102037519A (en) |
TW (1) | TWI382310B (en) |
WO (1) | WO2009117204A1 (en) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8130544B2 (en) * | 2009-08-17 | 2012-03-06 | Skymedi Corporation | Method of reducing bit error rate for a flash memory |
US8472280B2 (en) | 2010-12-21 | 2013-06-25 | Sandisk Technologies Inc. | Alternate page by page programming scheme |
US8432740B2 (en) | 2011-07-21 | 2013-04-30 | Sandisk Technologies Inc. | Program algorithm with staircase waveform decomposed into multiple passes |
US8750045B2 (en) | 2012-07-27 | 2014-06-10 | Sandisk Technologies Inc. | Experience count dependent program algorithm for flash memory |
US9934872B2 (en) | 2014-10-30 | 2018-04-03 | Sandisk Technologies Llc | Erase stress and delta erase loop count methods for various fail modes in non-volatile memory |
CN105718452A (en) * | 2014-12-01 | 2016-06-29 | 金蝶软件(中国)有限公司 | Data query method and system |
US9224502B1 (en) | 2015-01-14 | 2015-12-29 | Sandisk Technologies Inc. | Techniques for detection and treating memory hole to local interconnect marginality defects |
US9269446B1 (en) | 2015-04-08 | 2016-02-23 | Sandisk Technologies Inc. | Methods to improve programming of slow cells |
US9564219B2 (en) | 2015-04-08 | 2017-02-07 | Sandisk Technologies Llc | Current based detection and recording of memory hole-interconnect spacing defects |
US9996280B2 (en) | 2016-03-15 | 2018-06-12 | Sandisk Technologies Llc | Data register copying for non-volatile storage array operations |
US9666307B1 (en) * | 2016-09-14 | 2017-05-30 | Micron Technology, Inc. | Apparatuses and methods for flexible fuse transmission |
JP2018156698A (en) | 2017-03-15 | 2018-10-04 | 東芝メモリ株式会社 | Memory system |
US10620879B2 (en) * | 2017-05-17 | 2020-04-14 | Macronix International Co., Ltd. | Write-while-read access method for a memory device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1134746A2 (en) * | 2000-03-08 | 2001-09-19 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory |
EP1326257A2 (en) * | 2001-12-21 | 2003-07-09 | Fujitsu Limited | Pipelined programming for a NAND type flash memory |
WO2007131062A2 (en) * | 2006-05-05 | 2007-11-15 | Sandisk Corporation | Non-volatile memory with background data latch caching during read operations and methods therefor |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6138206A (en) * | 1997-06-12 | 2000-10-24 | International Business Machines Corporation | Data register for multicycle data cache read |
KR100454119B1 (en) * | 2001-10-24 | 2004-10-26 | 삼성전자주식회사 | Non-volatile semiconductor memory device with cache function and program, read and page copy-back operations thereof |
US6871257B2 (en) * | 2002-02-22 | 2005-03-22 | Sandisk Corporation | Pipelined parallel programming operation in a non-volatile memory system |
EP1610343B1 (en) * | 2004-06-24 | 2007-12-19 | STMicroelectronics S.r.l. | An improved page buffer for a programmable memory device |
US7242620B2 (en) * | 2004-10-05 | 2007-07-10 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device and an operation method thereof |
US7447078B2 (en) * | 2005-04-01 | 2008-11-04 | Sandisk Corporation | Method for non-volatile memory with background data latch caching during read operations |
US7463521B2 (en) * | 2005-04-01 | 2008-12-09 | Sandisk Corporation | Method for non-volatile memory with managed execution of cached data |
US7206230B2 (en) * | 2005-04-01 | 2007-04-17 | Sandisk Corporation | Use of data latches in cache operations of non-volatile memories |
US7336543B2 (en) * | 2006-02-21 | 2008-02-26 | Elite Semiconductor Memory Technology Inc. | Non-volatile memory device with page buffer having dual registers and methods using the same |
JP4896569B2 (en) * | 2006-04-10 | 2012-03-14 | 株式会社東芝 | Semiconductor integrated circuit device and dynamic latch refresh method thereof |
-
2008
- 2008-03-19 US US12/051,462 patent/US7961512B2/en active Active
-
2009
- 2009-02-19 WO PCT/US2009/034573 patent/WO2009117204A1/en active Application Filing
- 2009-02-19 KR KR1020107020949A patent/KR20100138943A/en not_active Application Discontinuation
- 2009-02-19 JP JP2011500833A patent/JP2011515786A/en active Pending
- 2009-02-19 CN CN2009801179088A patent/CN102037519A/en active Pending
- 2009-03-09 TW TW098107583A patent/TWI382310B/en not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1134746A2 (en) * | 2000-03-08 | 2001-09-19 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory |
EP1326257A2 (en) * | 2001-12-21 | 2003-07-09 | Fujitsu Limited | Pipelined programming for a NAND type flash memory |
WO2007131062A2 (en) * | 2006-05-05 | 2007-11-15 | Sandisk Corporation | Non-volatile memory with background data latch caching during read operations and methods therefor |
Also Published As
Publication number | Publication date |
---|---|
TWI382310B (en) | 2013-01-11 |
US20090237998A1 (en) | 2009-09-24 |
TW200945032A (en) | 2009-11-01 |
KR20100138943A (en) | 2010-12-31 |
JP2011515786A (en) | 2011-05-19 |
CN102037519A (en) | 2011-04-27 |
US7961512B2 (en) | 2011-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7961512B2 (en) | Adaptive algorithm in cache operation with dynamic data latch requirements | |
US7986554B2 (en) | Different combinations of wordline order and look-ahead read to improve non-volatile memory performance | |
US8966163B2 (en) | Non-volatile memory device and method for programming the same | |
US8725952B2 (en) | Memory controller for suppressing read disturb when data is repeatedly read out | |
KR101619569B1 (en) | Data transfer flows for on-chip folding | |
US8874826B2 (en) | Programming method and device for a buffer cache in a solid-state disk system | |
KR100878479B1 (en) | Memory system determining program method according to data information | |
US20070035998A1 (en) | Nonvolatile memory apparatus | |
US8498160B2 (en) | Nonvolatile memory device and related programming method using selective bit line precharging | |
US8694718B2 (en) | Wear leveling for erasable memories | |
US8667209B2 (en) | Non-volatile memory access method and system, and non-volatile memory controller | |
KR20160043121A (en) | Non-volatile memory with dynamic multi-mode operation | |
CN106816177B (en) | Data storage device and operation method thereof | |
CN107146639A (en) | Semiconductor storage and accumulator system | |
US8243519B2 (en) | Writing method of a nonvolatile memory device | |
US20210034291A1 (en) | Selecting a write operation mode from multiple write operation modes | |
JP2013235630A (en) | Control device, storage device, and data writing method | |
EP3841455A1 (en) | Memory sub-system for increasing bandwidth for command scheduling | |
US11847065B2 (en) | Memory sub-system management of firmware block record and device block record | |
US11443778B1 (en) | Peak current reduction using dynamic clocking during charge pump recovery period | |
CN115470052A (en) | Bad block detection method and device for memory chip and storage medium | |
US11823772B2 (en) | Dual-address command management using content addressable memory | |
US11249676B2 (en) | Electronic device, flash memory controller and associated control method | |
US20240070084A1 (en) | Padding cached data with valid data for memory flush commands | |
US20240045616A1 (en) | Multiple-pass programming of memory cells using temporary parity generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200980117908.8 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 09721417 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2011500833 Country of ref document: JP |
|
ENP | Entry into the national phase |
Ref document number: 20107020949 Country of ref document: KR Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 09721417 Country of ref document: EP Kind code of ref document: A1 |