WO1998028745A1 - Memoire inscriptible remanente a capacite de programmation rapide - Google Patents
Memoire inscriptible remanente a capacite de programmation rapide Download PDFInfo
- Publication number
- WO1998028745A1 WO1998028745A1 PCT/US1997/019209 US9719209W WO9828745A1 WO 1998028745 A1 WO1998028745 A1 WO 1998028745A1 US 9719209 W US9719209 W US 9719209W WO 9828745 A1 WO9828745 A1 WO 9828745A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- memory
- programmed
- reference level
- memory cells
- program
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
Definitions
- the present invention relates to memory devices. More particularly, this invention relates to programming of a nonvolatile writeable memory. BACKGROUND OF THE INVENTION
- Nonvolatile writeable memories include Electrically Erasable Programmable Read-Only Memories (“EEPROMs”) and flash Erasable and Electrically Programmable Read-Only Memories (“flash EPROMs” or “flash memories”).
- EEPROMs Electrically Erasable Programmable Read-Only Memories
- flash EPROMs flash Erasable and Electrically Programmable Read-Only Memories
- Non-volatility is advantageous for allowing the computing system to retain its data and code when power is removed from the computing system. Thus, if the system is turned off or if there is a power failure, there is no loss of code or data.
- Writability or programmability, enables the computing system to be reprogrammed. This is useful, for example, for upgrading the system, or for correcting bugs in the code.
- FIG. 1 is a block diagram of a prior art nonvolatile writeable memory device 20.
- Memory device 20 stores data using nonvolatile memory cells within memory array 22.
- the threshold voltages of the nonvolatile memory cells can be altered during programming, thus permitting storage of analog voltage levels, as is well known in the art.
- Memory array 22 may include any type of memory cell with programmable threshold voltages, such as memory cells with trapping dielectric or floating gates. In one embodiment, memory array 22 is comprised of flash memory cells.
- Vpp is the erase/program power supply for memory device 20.
- memory device 20 acts as a read only memory.
- the data stored at an address indicated by address lines 24 is read from memory array 22 and is output to the external user via data lines 26.
- X decoder 28 selects the appropriate row within memory array 22 in response to address signals applied to address lines 24. For this reason, X decoder 28 is also called row decoder 28.
- Y decoder 30 selects the appropriate column within memory array 20 in response to address signals from address lines 24. Because of its function, Y decoder 30 is also called column decoder 30.
- Data output from memory array 22 is coupled to Y decoder 30, which passes the data on to sensing circuitry 32.
- Sensing circuitry 32 determines the state of data presented to it using reference cell array 34. Sensing circuitry 32 then passes the results of its analysis back to Y decoder 30.
- control engine 36 controls the erasure and programming of memory array 22. In another embodiment, control engine 36 also controls the programming of multilevel cells.
- a multilevel cells is a cell that can store three or more charge states, as is well-known in the prior art.
- control engine 36 includes a processor or microcontroller that is controlled by microcode stored in on-chip memory. However, the particular implementation of control engine 36 does not affect the present method of programming memory cells.
- Control engine 36 manages memory array 22 via control of row decoder 28, column decoder 30, sensing circuitry 32, reference cell array 34 and voltage switch 38.
- Voltage switch 38 controls the various voltage levels necessary to read, program and erase memory array 22.
- Vcc is the device power supply and Vss is ground.
- Vpp is the program/erase voltage used to program or erase data stored within memory array 22. Vpp may be externally supplied or internally generated.
- command interface 40 User commands for reading, erasure, and programming are communicated to control engine 36 via command interface 40.
- the external user issues commands to command interface 40 via three control pins: output enable OEB, write enable WEB and chip enable CEB.
- FIG. 2 is a diagram showing a prior art memory cell of the memory array 22 in terms of a threshold voltage, Vt.
- the state of the memory cell may be defined in terms of the memory cell threshold voltage level or the drain current.
- Memory cell threshold voltage Vt, and drain current Id are approximately related to each other by the expression: Id ⁇ Gm x (Vg - Vt) for Vd > Vg - Vt, where
- Gm is the transconductance of the memory cell
- Vg is the memory cell gate voltage
- Vd is the memory cell drain voltage
- Vt is the memory cell threshold voltage
- the memory cell has associated with it, a programmed-reference level and an erased-reference level. If the charge stored on the floating gate of the memory cell corresponds to a Vt below the erased reference level, then the memory cell is defined to be in an "erased" state. If the charge stored on the floating gate of the memory cell corresponds to a Vt above the programmed- reference level, then the memory cell is defined to be in a "programmed" state.
- a read reference level is typically used to read from the memory cell. If the Vt of the memory cell is higher than the read reference level, then the read indicates the memory cell is in a "programmed" state. If the Vt is below the erased reference voltage, then the read indicates the memory cell is in an "erased” state.
- a memory cell is typically programmed by applying a program pulse to store charge on the floating gate of the memory cell.
- a program verify cycle is then performed to ensure that the Vt of the memory cell is above the programmed reference level.
- Vt is not above the programmed reference level, then one or more subsequent program pulses are applied to the memory cell, as needed, until the Vt of the memory cell is above the programmed reference level.
- the memory Because the number of program pulses required to ensure that the Vt of the memory cell is above the programmed reference level is indeterminate, the memory has a long program latency time. Thus, the memory is not able to store data at a high transfer rate because the memory cannot guarantee that it will be able to store data by using a predetermined number of program pulses.
- a method and apparatus for programming a nonvolatile writeable memory is described.
- One or more memory cells of a block of memory cells of the nonvolatile writeable memory is programmed using no more than one program pulse.
- the memory cells of the block of memory cells having a threshold voltage in an intermediate region below a programmed reference level and above an erased reference level are identified. These identified memory cells are programmed with one or more program pulses to raise the threshold voltage of the corresponding memory cell up to the programmed reference level.
- Figure 1 is a block diagram of a prior art nonvolatile writeable memory device 20.
- Figure 2 is a diagram showing a prior art memory cell of the memory array 22 in terms of a threshold voltage, Vt.
- Figure 3 is a diagram showing the different charge regions of a memory cell according to one embodiment of the present invention.
- Figure 4 shows a flow chart illustrating the steps taken by the memory in identifying memory cells in the intermediate region 62 (Fig. 3)
- Figure 5 shows a representative sense amp which is used to determine the Vt of a memory cell.
- Figure 6 shows the results of a read from a first group of memory cells at the programmed reference level being compared with the results of a read from the same first group of memory cells at the nominally programmed reference level.
- Figure 7 illustrates a memory device having an external fast programming pin.
- a method and apparatus for allowing the fast programming of memory cells of a memory array is described.
- the memory cells are programmed with a single program pulse. This allows the memory to accept data at a rate corresponding to the latency of the single program pulse.
- the memory cells that were programmed with the single program pulse are checked to determine if any of the memory cells have a threshold voltage over an erased reference level but below a programmed reference level. Any memory cell found in this intermediate region is provided with one or more program pulses until each memory cell has a threshold voltage above the programmed reference level.
- the invention may be expanded to provide an initial program cycle of any number of program pulses, as long as the initial program cycle has a predefined latency time.
- Figure 3 is a diagram showing the different charge regions according to the present invention. If a memory cell has a Vt above a programmed reference level 50, then the memory cell is in a programmed state 60. If the memory cell has a Vt below the erased reference level 54, then the memory cell is in an erased state 66.
- the region between the programmed reference level 50 and the erased reference level 54 is comprised of an intermediate region 62 and a guardband region 64.
- the read reference level typically resides within the intermediate region 62.
- the invention searches for memory cells having a Vt within the intermediate region, as will be explained in further detail. Once these memory cells have been identified, then each of these memory cells is programmed to raise the Vt of that memory cell up to the programmed reference level.
- the programmed reference level is approximately 5.3 V
- the erased reference level is approximately 3.1 V.
- Figure 4 shows a flow chart illustrating the steps taken by the memory in identifying memory cells in the intermediate region 62 (Fig. 3).
- the flow chart starts at a block 80, from which it continues at block 82.
- a first group of memory cells each having a stored charge over a first reference level is identified.
- Operation continues at block 84, at which a subset of the first group of memory cells is determined, wherein the subset of the first group of memory cells has a stored charge less than a second reference level.
- each of the memory cells of the subset is programmed until each memory cell has a stored charge over the second reference level. Operation terminates at block 88.
- the process may be performed successively on each memory cell to determine whether that particular memory cell needs to be programmed before checking the next memory cell.
- Figure 5 shows a representative sense amp which is used to determine the Vt of a memory cell.
- Each memory cell of the memory array is compared against a reference cell to determine whether the Vt of the memory cell is higher or lower than that of the reference cell, as is well-known in the prior art.
- a "nominally programmed" reference cell is created corresponding to the erased reference level of the memory cell plus a guardband 64. This nominally programmed reference level is compared against each memory cell to determine whether any of the memory cells need to be programmed up to the programmed state 60.
- a guardband of approximately 400 mV was experimentally determined to be a sufficient buffer to prevent erased memory cells from erroneously being determined to be in the intermediate region yet still able to capture any "nominally programmed" memory cells.
- either a read reference cell or an erased reference cell is used to emulate a new nominally programmed reference cell.
- the gate voltage of the reference circuit Vgr can be modified from the gate voltage of the memory cell Vga in order to emulate a reference circuit corresponding to a different Vt by the formula:
- Vgr Vga - guardband, for the erased reference cell.
- Vga 5.0 V and the guardband is 400 mV, then Vgr is 4.6 V.
- Figure 6 shows the results of a read from a first group of memory cells at the programmed reference being compared with the results of a read from the same first group of memory cells at the nominally programmed reference. In this case, the comparison is done via an XOR gate. Any differences between the two results indicate that at least one of the memory cells has fallen into the intermediate region and is not sufficiently programmed. The indicated memory cell(s) is then programmed to the programmed reference level.
- Figure 7 illustrates a memory device having an external fast programming pin.
- the fast programming pin When the fast programming pin is asserted then the memory performs in a fast programming mode of operation.
- the memory device may, either in addition to or alternatively, allow a fast programming command to be written to the command interface 140 to initiate the fast programming mode.
- the memory has a fast programming mode and a standard programming mode.
- the program verify is used after each write to a memory cell to guarantee that the threshold voltage of the memory cell is above the programmed reference level.
- the fast programming mode the memory uses the initial program cycle to quickly program a block of memory cells, where a block can be any number of memory cells. Subsequently, for example, upon exiting the fast programming mode, the memory checks the block of memory for memory cells in the intermediate region. The memory cells in the intermediate region are programmed with one or more program pulses until they have a threshold voltage above the programmed reference level. In one embodiment, the memory check is automatically performed when the memory is idle.
- a separate command or pin is used to search for memory cells in the intermediate region, as is described in copending application
- Nonvolatile Writeable Memory which is assigned to the common assignee of this application.
- the checking for memory cells having threshold voltages in the intermediate region can be deferred until it is convenient to do the checking.
Landscapes
- Read Only Memory (AREA)
Abstract
Un procédé et un appareil présentent une capacité de programmation rapide d'une mémoire inscriptible rémanente. Une ou plusieurs cellules de mémoire d'un bloc de cellules de mémoire de la mémoireinscriptible rémanente est/sont programmé(es) par une seule impulsion de programme. Les cellules de mémoire du bloc de cellules de mémoire présentant une tension de seuil dans une région intermédiaire (62) inférieure à un niveau de référence programmé (54) et supérieur à un niveau de référence d'effacement (50) sont identifiées. Ces cellules de mémoire identifiées sont programmées avec une ou plusieurs impulsions de programme afin d'élever la tension de seuil de la cellule correspondante jusqu'au niveau de référence programmé (52).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU49966/97A AU4996697A (en) | 1996-12-20 | 1997-10-23 | Nonvolatile writeable memory with fast programming capability |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US77039796A | 1996-12-20 | 1996-12-20 | |
US08/770,397 | 1996-12-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1998028745A1 true WO1998028745A1 (fr) | 1998-07-02 |
Family
ID=25088418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1997/019209 WO1998028745A1 (fr) | 1996-12-20 | 1997-10-23 | Memoire inscriptible remanente a capacite de programmation rapide |
Country Status (2)
Country | Link |
---|---|
AU (1) | AU4996697A (fr) |
WO (1) | WO1998028745A1 (fr) |
Cited By (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005043548A1 (fr) * | 2003-10-20 | 2005-05-12 | Sandisk Corporation | Procede de programmation fonde sur le comportement de cellules de memoire non volatile |
WO2005106891A1 (fr) * | 2004-04-16 | 2005-11-10 | Spansion Llc | Procedes et systemes pour realiser des operations d'ecriture tres performantes dans des dispositifs de memoire flash a bits multiples |
WO2006055256A1 (fr) * | 2004-11-16 | 2006-05-26 | Sandisk Corporation | Systeme de programmation a grande vitesse a surprogrammation reduite |
US7173859B2 (en) | 2004-11-16 | 2007-02-06 | Sandisk Corporation | Faster programming of higher level states in multi-level cell flash memory |
US7301817B2 (en) | 2005-10-27 | 2007-11-27 | Sandisk Corporation | Method for programming of multi-state non-volatile memory using smart verify |
US7366022B2 (en) | 2005-10-27 | 2008-04-29 | Sandisk Corporation | Apparatus for programming of multi-state non-volatile memory using smart verify |
US7450426B2 (en) | 2006-10-10 | 2008-11-11 | Sandisk Corporation | Systems utilizing variable program voltage increment values in non-volatile memory program operations |
US7474561B2 (en) | 2006-10-10 | 2009-01-06 | Sandisk Corporation | Variable program voltage increment values in non-volatile memory program operations |
US7508715B2 (en) | 2007-07-03 | 2009-03-24 | Sandisk Corporation | Coarse/fine program verification in non-volatile memory using different reference levels for improved sensing |
US7551482B2 (en) | 2006-12-27 | 2009-06-23 | Sandisk Corporation | Method for programming with initial programming voltage based on trial |
US7570520B2 (en) | 2006-12-27 | 2009-08-04 | Sandisk Corporation | Non-volatile storage system with initial programming voltage based on trial |
US7599224B2 (en) | 2007-07-03 | 2009-10-06 | Sandisk Corporation | Systems for coarse/fine program verification in non-volatile memory using different reference levels for improved sensing |
US7697326B2 (en) | 2006-05-12 | 2010-04-13 | Anobit Technologies Ltd. | Reducing programming error in memory devices |
US7706182B2 (en) | 2006-12-03 | 2010-04-27 | Anobit Technologies Ltd. | Adaptive programming of analog memory cells using statistical characteristics |
US7751240B2 (en) | 2007-01-24 | 2010-07-06 | Anobit Technologies Ltd. | Memory device with negative thresholds |
US7773413B2 (en) | 2007-10-08 | 2010-08-10 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells in the presence of temperature variations |
US7821826B2 (en) | 2006-10-30 | 2010-10-26 | Anobit Technologies, Ltd. | Memory cell readout using successive approximation |
WO2010151428A1 (fr) * | 2009-06-26 | 2010-12-29 | Sandisk Corporation | Détection de l'achèvement de la programmation pour une mémoire non volatile |
US7864573B2 (en) | 2008-02-24 | 2011-01-04 | Anobit Technologies Ltd. | Programming analog memory cells for reduced variance after retention |
US7900102B2 (en) | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US7924648B2 (en) | 2006-11-28 | 2011-04-12 | Anobit Technologies Ltd. | Memory power and performance management |
US7924587B2 (en) | 2008-02-21 | 2011-04-12 | Anobit Technologies Ltd. | Programming of analog memory cells using a single programming pulse per state transition |
US7925936B1 (en) | 2007-07-13 | 2011-04-12 | Anobit Technologies Ltd. | Memory device with non-uniform programming levels |
US7924613B1 (en) | 2008-08-05 | 2011-04-12 | Anobit Technologies Ltd. | Data storage in analog memory cells with protection against programming interruption |
US7975192B2 (en) | 2006-10-30 | 2011-07-05 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US8000141B1 (en) | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
US8001320B2 (en) | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8050086B2 (en) | 2006-05-12 | 2011-11-01 | Anobit Technologies Ltd. | Distortion estimation and cancellation in memory devices |
US8059457B2 (en) | 2008-03-18 | 2011-11-15 | Anobit Technologies Ltd. | Memory device with multiple-accuracy read commands |
US8060806B2 (en) | 2006-08-27 | 2011-11-15 | Anobit Technologies Ltd. | Estimation of non-linear distortion in memory devices |
US8068360B2 (en) | 2007-10-19 | 2011-11-29 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
US8085586B2 (en) | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
US8151163B2 (en) | 2006-12-03 | 2012-04-03 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US8151166B2 (en) | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
US8156403B2 (en) | 2006-05-12 | 2012-04-10 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
US8156398B2 (en) | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8174857B1 (en) | 2008-12-31 | 2012-05-08 | Anobit Technologies Ltd. | Efficient readout schemes for analog memory cell devices using multiple read threshold sets |
US8174905B2 (en) | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US8209588B2 (en) | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US8208304B2 (en) | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
US8228701B2 (en) | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8239735B2 (en) | 2006-05-12 | 2012-08-07 | Apple Inc. | Memory Device with adaptive capacity |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
US8270246B2 (en) | 2007-11-13 | 2012-09-18 | Apple Inc. | Optimized selection of memory chips in multi-chips memory devices |
US8369141B2 (en) | 2007-03-12 | 2013-02-05 | Apple Inc. | Adaptive estimation of memory cell read thresholds |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US8429493B2 (en) | 2007-05-12 | 2013-04-23 | Apple Inc. | Memory device with internal signap processing unit |
US8456905B2 (en) | 2007-12-16 | 2013-06-04 | Apple Inc. | Efficient data storage in multi-plane memory devices |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US8493781B1 (en) | 2010-08-12 | 2013-07-23 | Apple Inc. | Interference mitigation using individual word line erasure operations |
US8498151B1 (en) | 2008-08-05 | 2013-07-30 | Apple Inc. | Data storage in analog memory cells using modified pass voltages |
US8527819B2 (en) | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
US8572311B1 (en) | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US8645794B1 (en) | 2010-07-31 | 2014-02-04 | Apple Inc. | Data storage in analog memory cells using a non-integer number of bits per cell |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8713330B1 (en) | 2008-10-30 | 2014-04-29 | Apple Inc. | Data scrambling in memory devices |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4888735A (en) * | 1987-12-30 | 1989-12-19 | Elite Semiconductor & Systems Int'l., Inc. | ROM cell and array configuration |
US5440505A (en) * | 1994-01-21 | 1995-08-08 | Intel Corporation | Method and circuitry for storing discrete amounts of charge in a single memory element |
-
1997
- 1997-10-23 WO PCT/US1997/019209 patent/WO1998028745A1/fr active Application Filing
- 1997-10-23 AU AU49966/97A patent/AU4996697A/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4888735A (en) * | 1987-12-30 | 1989-12-19 | Elite Semiconductor & Systems Int'l., Inc. | ROM cell and array configuration |
US5440505A (en) * | 1994-01-21 | 1995-08-08 | Intel Corporation | Method and circuitry for storing discrete amounts of charge in a single memory element |
Cited By (103)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7177199B2 (en) | 2003-10-20 | 2007-02-13 | Sandisk Corporation | Behavior based programming of non-volatile memory |
US7633807B2 (en) | 2003-10-20 | 2009-12-15 | Sandisk Corporation | Behavior based programming of non-volatile memory |
WO2005043548A1 (fr) * | 2003-10-20 | 2005-05-12 | Sandisk Corporation | Procede de programmation fonde sur le comportement de cellules de memoire non volatile |
KR101092011B1 (ko) | 2004-04-16 | 2011-12-09 | 스펜션 엘엘씨 | 다중-비트 플래쉬 메모리 디바이스들에서 고성능 기입을위한 방법들 및 시스템들 |
GB2427947A (en) * | 2004-04-16 | 2007-01-10 | Spansion Llc | Methods and systems for high write performance in multi-bit flash memory devices |
GB2427947B (en) * | 2004-04-16 | 2007-08-08 | Spansion Llc | Methods and systems for high write performance in multi-bit flash memory devices |
US7283402B2 (en) | 2004-04-16 | 2007-10-16 | Spansion Llc | Methods and systems for high write performance in multi-bit flash memory devices |
TWI397914B (zh) * | 2004-04-16 | 2013-06-01 | Spansion Llc | 用於在多位元快閃記憶體裝置中之高寫入性能之方法及系統 |
WO2005106891A1 (fr) * | 2004-04-16 | 2005-11-10 | Spansion Llc | Procedes et systemes pour realiser des operations d'ecriture tres performantes dans des dispositifs de memoire flash a bits multiples |
US7173859B2 (en) | 2004-11-16 | 2007-02-06 | Sandisk Corporation | Faster programming of higher level states in multi-level cell flash memory |
US7092290B2 (en) | 2004-11-16 | 2006-08-15 | Sandisk Corporation | High speed programming system with reduced over programming |
CN101095199B (zh) * | 2004-11-16 | 2012-01-11 | 桑迪士克股份有限公司 | 非易失性存储系统和用于编程非易失性存储器的方法 |
WO2006055256A1 (fr) * | 2004-11-16 | 2006-05-26 | Sandisk Corporation | Systeme de programmation a grande vitesse a surprogrammation reduite |
US7301817B2 (en) | 2005-10-27 | 2007-11-27 | Sandisk Corporation | Method for programming of multi-state non-volatile memory using smart verify |
US7366022B2 (en) | 2005-10-27 | 2008-04-29 | Sandisk Corporation | Apparatus for programming of multi-state non-volatile memory using smart verify |
US7492634B2 (en) | 2005-10-27 | 2009-02-17 | Sandisk Corporation | Method for programming of multi-state non-volatile memory using smart verify |
US8050086B2 (en) | 2006-05-12 | 2011-11-01 | Anobit Technologies Ltd. | Distortion estimation and cancellation in memory devices |
US8570804B2 (en) | 2006-05-12 | 2013-10-29 | Apple Inc. | Distortion estimation and cancellation in memory devices |
US7697326B2 (en) | 2006-05-12 | 2010-04-13 | Anobit Technologies Ltd. | Reducing programming error in memory devices |
US8599611B2 (en) | 2006-05-12 | 2013-12-03 | Apple Inc. | Distortion estimation and cancellation in memory devices |
US8156403B2 (en) | 2006-05-12 | 2012-04-10 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
US8239735B2 (en) | 2006-05-12 | 2012-08-07 | Apple Inc. | Memory Device with adaptive capacity |
US8060806B2 (en) | 2006-08-27 | 2011-11-15 | Anobit Technologies Ltd. | Estimation of non-linear distortion in memory devices |
US7474561B2 (en) | 2006-10-10 | 2009-01-06 | Sandisk Corporation | Variable program voltage increment values in non-volatile memory program operations |
US7450426B2 (en) | 2006-10-10 | 2008-11-11 | Sandisk Corporation | Systems utilizing variable program voltage increment values in non-volatile memory program operations |
US7821826B2 (en) | 2006-10-30 | 2010-10-26 | Anobit Technologies, Ltd. | Memory cell readout using successive approximation |
US8145984B2 (en) | 2006-10-30 | 2012-03-27 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
USRE46346E1 (en) | 2006-10-30 | 2017-03-21 | Apple Inc. | Reading memory cells using multiple thresholds |
US7975192B2 (en) | 2006-10-30 | 2011-07-05 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7924648B2 (en) | 2006-11-28 | 2011-04-12 | Anobit Technologies Ltd. | Memory power and performance management |
US8151163B2 (en) | 2006-12-03 | 2012-04-03 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US7706182B2 (en) | 2006-12-03 | 2010-04-27 | Anobit Technologies Ltd. | Adaptive programming of analog memory cells using statistical characteristics |
US7900102B2 (en) | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US7768834B2 (en) | 2006-12-27 | 2010-08-03 | Sandisk Corporation | Non-volatile storage system with initial programming voltage based on trial |
US7570520B2 (en) | 2006-12-27 | 2009-08-04 | Sandisk Corporation | Non-volatile storage system with initial programming voltage based on trial |
US7551482B2 (en) | 2006-12-27 | 2009-06-23 | Sandisk Corporation | Method for programming with initial programming voltage based on trial |
US8151166B2 (en) | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
US7881107B2 (en) | 2007-01-24 | 2011-02-01 | Anobit Technologies Ltd. | Memory device with negative thresholds |
US7751240B2 (en) | 2007-01-24 | 2010-07-06 | Anobit Technologies Ltd. | Memory device with negative thresholds |
US8369141B2 (en) | 2007-03-12 | 2013-02-05 | Apple Inc. | Adaptive estimation of memory cell read thresholds |
US8001320B2 (en) | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
US8429493B2 (en) | 2007-05-12 | 2013-04-23 | Apple Inc. | Memory device with internal signap processing unit |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
US7599224B2 (en) | 2007-07-03 | 2009-10-06 | Sandisk Corporation | Systems for coarse/fine program verification in non-volatile memory using different reference levels for improved sensing |
US7508715B2 (en) | 2007-07-03 | 2009-03-24 | Sandisk Corporation | Coarse/fine program verification in non-volatile memory using different reference levels for improved sensing |
US7925936B1 (en) | 2007-07-13 | 2011-04-12 | Anobit Technologies Ltd. | Memory device with non-uniform programming levels |
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
US8174905B2 (en) | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US7773413B2 (en) | 2007-10-08 | 2010-08-10 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells in the presence of temperature variations |
US8527819B2 (en) | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
US8068360B2 (en) | 2007-10-19 | 2011-11-29 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
US8000141B1 (en) | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
US8270246B2 (en) | 2007-11-13 | 2012-09-18 | Apple Inc. | Optimized selection of memory chips in multi-chips memory devices |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US8209588B2 (en) | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US8456905B2 (en) | 2007-12-16 | 2013-06-04 | Apple Inc. | Efficient data storage in multi-plane memory devices |
US8085586B2 (en) | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
US8156398B2 (en) | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US7924587B2 (en) | 2008-02-21 | 2011-04-12 | Anobit Technologies Ltd. | Programming of analog memory cells using a single programming pulse per state transition |
US7864573B2 (en) | 2008-02-24 | 2011-01-04 | Anobit Technologies Ltd. | Programming analog memory cells for reduced variance after retention |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
US8059457B2 (en) | 2008-03-18 | 2011-11-15 | Anobit Technologies Ltd. | Memory device with multiple-accuracy read commands |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US7924613B1 (en) | 2008-08-05 | 2011-04-12 | Anobit Technologies Ltd. | Data storage in analog memory cells with protection against programming interruption |
US8498151B1 (en) | 2008-08-05 | 2013-07-30 | Apple Inc. | Data storage in analog memory cells using modified pass voltages |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US8713330B1 (en) | 2008-10-30 | 2014-04-29 | Apple Inc. | Data scrambling in memory devices |
US8208304B2 (en) | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8174857B1 (en) | 2008-12-31 | 2012-05-08 | Anobit Technologies Ltd. | Efficient readout schemes for analog memory cell devices using multiple read threshold sets |
US8397131B1 (en) | 2008-12-31 | 2013-03-12 | Apple Inc. | Efficient readout schemes for analog memory cell devices |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
US8228701B2 (en) | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
WO2010151428A1 (fr) * | 2009-06-26 | 2010-12-29 | Sandisk Corporation | Détection de l'achèvement de la programmation pour une mémoire non volatile |
KR101688603B1 (ko) | 2009-06-26 | 2016-12-22 | 샌디스크 테크놀로지스 엘엘씨 | 비휘발성 저장 소자에 대한 프로그래밍 완료의 검출 |
USRE45603E1 (en) | 2009-06-26 | 2015-07-07 | Sandisk Technologies Inc. | Detecting the completion of programming for non-volatile storage |
US8054691B2 (en) | 2009-06-26 | 2011-11-08 | Sandisk Technologies Inc. | Detecting the completion of programming for non-volatile storage |
KR20120039562A (ko) * | 2009-06-26 | 2012-04-25 | 샌디스크 테크놀로지스, 인코포레이티드 | 비휘발성 저장 소자에 대한 프로그래밍 완료의 검출 |
US8605513B2 (en) | 2009-06-26 | 2013-12-10 | Sandisk Technologies Inc. | Detecting the completion of programming for non-volatile storage |
US8416626B2 (en) | 2009-06-26 | 2013-04-09 | Sandisk Technologies Inc. | Detecting the completion of programming for non-volatile storage |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8572311B1 (en) | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8677203B1 (en) | 2010-01-11 | 2014-03-18 | Apple Inc. | Redundant data storage schemes for multi-die memory systems |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US8645794B1 (en) | 2010-07-31 | 2014-02-04 | Apple Inc. | Data storage in analog memory cells using a non-integer number of bits per cell |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8493781B1 (en) | 2010-08-12 | 2013-07-23 | Apple Inc. | Interference mitigation using individual word line erasure operations |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Also Published As
Publication number | Publication date |
---|---|
AU4996697A (en) | 1998-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5835413A (en) | Method for improved data retention in a nonvolatile writeable memory by sensing and reprogramming cell voltage levels | |
WO1998028745A1 (fr) | Memoire inscriptible remanente a capacite de programmation rapide | |
US5844843A (en) | Single chip data processing apparatus having a flash memory which is rewritable under the control of built-in CPU in the external write mode | |
US4763305A (en) | Intelligent write in an EEPROM with data and erase check | |
US9201730B2 (en) | Multiple level cell memory device with single bit per cell, re-mappable memory block | |
US5619453A (en) | Memory system having programmable flow control register | |
US8320183B2 (en) | Controlling a memory device responsive to degradation | |
US5954828A (en) | Non-volatile memory device for fault tolerant data | |
JP2000509871A (ja) | 同時読み出し及び書き込みを可能にする不揮発性メモリのバンク構成 | |
US6137729A (en) | Method for erasing memory cells in a flash memory device | |
US7075832B2 (en) | Method for erasing an NROM cell | |
US7272045B2 (en) | Method for programming and erasing an NROM cell | |
US5604880A (en) | Computer system with a memory identification scheme | |
US6466480B2 (en) | Method and apparatus for trimming non-volatile memory cells | |
JP2003507840A (ja) | 外部トリガーによるリーク検出及び修復方法 | |
KR100334173B1 (ko) | 마이크로컴퓨터 | |
US7057937B1 (en) | Data processing apparatus having a flash memory built-in which is rewritable by use of external device | |
US8037378B2 (en) | Automatic test entry termination in a memory device | |
US20060034126A1 (en) | Preconditioning of defective and redundant columns in a memory device | |
US6115293A (en) | Non-volatile semiconductor memory device | |
KR0172437B1 (ko) | 칼럼불량 구제 및 고속 소거검증 기능을 가지는 불휘발성 반도체 메모리 장치 | |
EP0582991B1 (fr) | Appareil de traitement de données ayant une mémoire flash incorporée pouvant être reprogrammée utilisant un dispositif externe | |
KR100245413B1 (ko) | 불 휘발성 반도체 메모리 장치의 기입 방법 | |
WO1996021229A1 (fr) | Dispositif de memoire remanente pour donnees tolerant les erreurs | |
JP2002015586A (ja) | 不揮発性半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AL AM AT AT AU AZ BA BB BG BR BY CA CH CN CU CZ CZ DE DE DK DK EE EE ES FI FI GB GE GH HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SK SL TJ TM TR TT UA UG UZ VN YU ZW AM AZ BY KG KZ MD RU TJ TM |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH KE LS MW SD SZ UG ZW AT BE CH DE DK ES FI FR |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
122 | Ep: pct application non-entry in european phase |