WO1998028745A1 - Nonvolatile writeable memory with fast programming capability - Google Patents

Nonvolatile writeable memory with fast programming capability Download PDF

Info

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
Application number
PCT/US1997/019209
Other languages
French (fr)
Inventor
Andrew J. Hurter
Edward M. Doller
Original Assignee
Intel Corporation
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corporation filed Critical Intel Corporation
Priority to AU49966/97A priority Critical patent/AU4996697A/en
Publication of WO1998028745A1 publication Critical patent/WO1998028745A1/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements 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.

Abstract

A method and apparatus provides capability for fast programming of a nonvolatile writeable memory. 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 (62) below a programmed reference level (54) and above an erase reference level (50) 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 (52).

Description

NONVOLATILE WRITEABLE MEMORY WITH FAST PROGRAMMING CAPABILITY
FIELD OF THE INVENTION
The present invention relates to memory devices. More particularly, this invention relates to programming of a nonvolatile writeable memory. BACKGROUND OF THE INVENTION
Many computing systems, such as personal computers, automotive and airplane control, cellular phones, digital cameras, and hand-held communication devices, use nonvolatile writeable memories to store either data or code, or both. Such 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").
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.
Figure 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.
Referring to Figure 1 , Vpp is the erase/program power supply for memory device 20. In the absence of a high voltage level on the memory cells, 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. Similarly, 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.
In one embodiment of memory device 20, 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. In one embodiment, 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.
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.
Figure 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; and 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.
If the 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.
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. SUMMARY OF THE INVENTION
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.
These and other advantages of the present invention are fully described in the following detailed description.
BRIEF DESCRIPTION OF THE DRAWINGS
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. DETAILED DESCRIPTION
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. Subsequently, 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.
After the initial program cycle, 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. In one embodiment, the programmed reference level is approximately 5.3 V, and 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. 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. At block 86, 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.
Alternatively, instead of checking an entire group for memory cells having a charge state within the intermediate region and programming the identified memory cells, 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. In a first embodiment, 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.
In one embodiment, 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.
In another embodiment, either a read reference cell or an erased reference cell is used to emulate a new nominally programmed reference cell.
Referring to Figure 5, 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:
For example, Vgr = Vga - guardband, for the erased reference cell. Thus, if Vga is 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. 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.
In one embodiment, the memory has a fast programming mode and a standard programming mode. In the 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. In 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.
In another embodiment, a separate command or pin is used to search for memory cells in the intermediate region, as is described in copending application
Serial No. , entitled "Method for Improved Data Retention in a
Nonvolatile Writeable Memory," which is assigned to the common assignee of this application. Thus, the checking for memory cells having threshold voltages in the intermediate region can be deferred until it is convenient to do the checking.
In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will, however be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

Claims

CLAIMS WHAT IS CLAIMED IS:
1. A method of programming a nonvolatile writeable memory, the method comprising the steps of:
(a) programming one or more memory cells of a block of memory cells of the nonvolatile writeable memory, wherein no more than one program pulse is used to program any one memory cell;
(b) identifying 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 ; and
(c) providing one or more program pulses to each of the memory cells identified in the step (b) to raise the threshold voltage up to the programmed reference level.
2. The method of claim 1, wherein the intermediate region is above the erased reference level by approximately 300 mV to 500 mV, wherein erased memory cells have a threshold voltage below the erased reference level.
3. In a nonvolatile writeable memory having a program verify capability, a method of programming the nonvolatile writeable memory comprising the steps of:
(a) programming a block of memory cells of the nonvolatile writeable memory using an initial program cycle having a predetermined latency;
(b) checking each of the block of memory cells to determine whether any of the memory cells have a threshold voltage in an intermediate region above an erased reference level but below a programmed reference level; and
(c) programming each of the block of memory cells found in the intermediate region up to the programmed reference level.
4. In a nonvolatile writeable memory having a program verify capability, a method of programming the nonvolatile writeable memory comprising the steps of: (a) programming a block of memory cells of the nonvolatile writeable memory without using the program verify to determine whether each memory cell was programmed to a programmed reference level ;
(b) checking each of the block of memory cells to determine whether any of the memory cells were programmed above an erased reference level but not programmed above the programmed reference level ; and
(c) programming each of the block of memory cells found in the step (b) to the programmed reference level.
5. The method of claim 4, wherein the nonvolatile writeable memory performs the steps (a) - (c) responsive to a signal provided to a pin of the nonvolatile writeable memory.
6. The method of claim 4, wherein the nonvolatile writeable memory performs the steps (a) - (c) responsive to a command written to the nonvolatile writeable memory.
7. The method of claim 4, wherein the step (a) is performed on all of the memory cells of the nonvolatile writeable memory prior to step (b) being performed.
8. In a nonvolatile writeable memory having program verify capability, a method of programming the nonvolatile writeable memory comprising the steps of:
(a) programming a block of memory cells of the nonvolatile writeable memory at a first data rate, wherein the first data rate allows no more than one program pulse to be used to program a memory cell of the nonvolatile writeable memory;
(b) identifying a subset of the memory cells programmed in the step (a) that have a threshold voltage above a fast programming reference level but below a programmed reference level, wherein the fast programming reference level corresponds to an erased reference level plus a guardband; and (c) programming the memory cells identified in the step (b) until they are above the programmed reference level.
9. The method of claim 8 wherein the guardband is approximately 300 mV to 500 mV.
10. A nonvolatile writeable memory capable of being programmed in a first mode and a second mode, the nonvolatile writeable memory comprising: a memory array; and a control engine, wherein in the first mode, the control engine programs the memory array one memory cell at a time, wherein after each memory cell is programmed it is checked to determine whether it is programmed above a programmed reference level, and if it is not programmed over the programmed reference level, then it is provided with one or more program pulses until it has a threshold voltage over the programmed reference level, and wherein in the second mode, the control engine programs a block of memory cells of the memory array, wherein each memory cell of the block of memory cells is programmed with a single program pulse, and subsequently if any of the memory cells that was programmed with the single program pulse has a threshold voltage below the programmed reference level, that memory cell is programmed with one or more program pulses until it has a threshold voltage over the programmed reference level.
11. The nonvolatile writeable memory of claim 10 further comprising: a command interface capable of decoding a fast program command that signals the control engine to program the memory array using the second mode.
12. The nonvolatile writeable memory of claim 10 further comprising: a fast program pin, wherein a signal provided via the fast program pin indicates to the control engine to program the memory array using the second mode.
PCT/US1997/019209 1996-12-20 1997-10-23 Nonvolatile writeable memory with fast programming capability WO1998028745A1 (en)

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 (en) 1998-07-02

Family

ID=25088418

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1997/019209 WO1998028745A1 (en) 1996-12-20 1997-10-23 Nonvolatile writeable memory with fast programming capability

Country Status (2)

Country Link
AU (1) AU4996697A (en)
WO (1) WO1998028745A1 (en)

Cited By (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005043548A1 (en) * 2003-10-20 2005-05-12 Sandisk Corporation Programming method based on the behaviour of non-volatile memory cenlls
WO2005106891A1 (en) * 2004-04-16 2005-11-10 Spansion Llc Methods and systems for high write performance in multi-bit flash memory devices
WO2006055256A1 (en) * 2004-11-16 2006-05-26 Sandisk Corporation High speed programming system with reduced over programming
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 (en) * 2009-06-26 2010-12-29 Sandisk Corporation Detecting the completion of programming for non-volatile storage
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
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US7975192B2 (en) 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
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
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
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
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US8156403B2 (en) 2006-05-12 2012-04-10 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level 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
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
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
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
US8493781B1 (en) 2010-08-12 2013-07-23 Apple Inc. Interference mitigation using individual word line erasure operations
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
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
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7633807B2 (en) 2003-10-20 2009-12-15 Sandisk Corporation Behavior based programming of non-volatile memory
WO2005043548A1 (en) * 2003-10-20 2005-05-12 Sandisk Corporation Programming method based on the behaviour of non-volatile memory cenlls
US7177199B2 (en) 2003-10-20 2007-02-13 Sandisk Corporation Behavior based programming of non-volatile memory
TWI397914B (en) * 2004-04-16 2013-06-01 Spansion Llc Methods and systems for high write performance in multi-bit flash memory devices
WO2005106891A1 (en) * 2004-04-16 2005-11-10 Spansion Llc Methods and systems for high write performance in multi-bit flash memory devices
KR101092011B1 (en) 2004-04-16 2011-12-09 스펜션 엘엘씨 - methods and systems for high write performance in multi-bit flash memory devices
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
CN101095199B (en) * 2004-11-16 2012-01-11 桑迪士克股份有限公司 Non-volatile memory system and method for programming non-volatile memory
US7173859B2 (en) 2004-11-16 2007-02-06 Sandisk Corporation Faster programming of higher level states in multi-level cell flash memory
WO2006055256A1 (en) * 2004-11-16 2006-05-26 Sandisk Corporation High speed programming system with reduced over programming
US7092290B2 (en) 2004-11-16 2006-08-15 Sandisk Corporation High speed programming system with reduced over programming
US7492634B2 (en) 2005-10-27 2009-02-17 Sandisk Corporation Method for programming of multi-state non-volatile memory using smart verify
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
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
US8570804B2 (en) 2006-05-12 2013-10-29 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
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
US8050086B2 (en) 2006-05-12 2011-11-01 Anobit Technologies Ltd. Distortion estimation and cancellation in memory devices
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
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
US7821826B2 (en) 2006-10-30 2010-10-26 Anobit Technologies, Ltd. Memory cell readout using successive approximation
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
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
US7881107B2 (en) 2007-01-24 2011-02-01 Anobit Technologies Ltd. Memory device with negative thresholds
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
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
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
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
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
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
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
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
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
KR20120039562A (en) * 2009-06-26 2012-04-25 샌디스크 테크놀로지스, 인코포레이티드 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
KR101688603B1 (en) 2009-06-26 2016-12-22 샌디스크 테크놀로지스 엘엘씨 Detecting the completion of programming for non-volatile storage
USRE45603E1 (en) 2009-06-26 2015-07-07 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
US8605513B2 (en) 2009-06-26 2013-12-10 Sandisk Technologies Inc. Detecting the completion of programming for non-volatile storage
WO2010151428A1 (en) * 2009-06-26 2010-12-29 Sandisk Corporation 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
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in 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 (en) Nonvolatile writeable memory with fast programming capability
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
US7908425B2 (en) Method and device for performing cache reading
US5954828A (en) Non-volatile memory device for fault tolerant data
JP2000509871A (en) Bank configuration of nonvolatile memory enabling simultaneous reading and writing
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 (en) Leak detection and repair method by external trigger
KR100334173B1 (en) Microcomputer
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 (en) Non-volatile semiconductor memory device
EP0582991B1 (en) Data processing apparatus having a flash memory built-in which is rewritable by use of external device
KR100245413B1 (en) Write method of non-volatile semiconductor memory device
WO1996021229A1 (en) Non-volatile memory device for fault tolerant data

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