WO2005073975A2 - Efficient verification for coarse/fine programming of non-volatile memory - Google Patents
Efficient verification for coarse/fine programming of non-volatile memory Download PDFInfo
- Publication number
- WO2005073975A2 WO2005073975A2 PCT/US2005/001232 US2005001232W WO2005073975A2 WO 2005073975 A2 WO2005073975 A2 WO 2005073975A2 US 2005001232 W US2005001232 W US 2005001232W WO 2005073975 A2 WO2005073975 A2 WO 2005073975A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- volatile storage
- coarse
- fine
- programming
- verification
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3468—Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
- G11C16/3481—Circuits or methods to verify correct programming of nonvolatile memory cells whilst programming is in progress, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5621—Multilevel programming verification
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5624—Concurrent multilevel programming and programming verification
Definitions
- Non-volatile semiconductor memory is used in cellular telephones, digital cameras, personal digital assistants, mobile computing devices, non-mobile computing devices and other devices.
- Electrical Erasable Programmable Read Only Memory (EEPROM) and flash memory are among the most popular non-volatile semiconductor memories.
- Both EEPROM and flash memory utilize a floating gate that is positioned above and insulated from a channel region in a semiconductor substrate.
- the floating gate is positioned between source and drain regions.
- a control gate is provided over and insulated from the floating gate.
- the threshold voltage of the transistor is controlled by the amount of charge that is retained on the floating gate. That is, the minimum amount of voltage that must be applied to the control gate before the transistor is turned on to permit conduction between its source and drain is controlled by the level of charge on the floating gate.
- Some EEPROM and flash memory devices have a floating gate that is used to store two ranges of charges and, therefore, the memory cell can be programmed/erased between two states.
- a program voltage is applied to the control gate and the bit line is grounded. Electrons from the channel are injected into the floating gate. When electrons accumulate in the floating gate, the floating gate becomes negatively charged and the threshold voltage of the memory cell is raised.
- the program voltage applied to the control gate is applied as a series of pulses.
- the magnitude of the pulses is increased with each successive pulse by a predetermined step size (e.g. 0.2v).
- verify operations are carried out. That is, the programming level of each cell of a group of cells being programmed in parallel is read between successive programming pulses to determine whether it is equal to or greater than a verify level to which it is being programmed.
- One means of verifying the programming is to test conduction at a specific compare point.
- the cells that are verified to be sufficiently programmed are locked out, for example in NAND cells, by raising the bit line voltage from 0 to Vdd (e.g., 2.5 volts) to stop the programming process for those cells.
- the number of pulses will be limited (e.g. 20 pulses) and if a given memory cell is not completely programmed by the last pulse, then an error is assumed.
- memory cells are erased (in blocks or other units) prior to programming. More information about programming can be found in U.S. Patent Application 10/379,608, titled “Self Boosting Technique,” filed on March 5, 2003; and in U.S. Patent Application 10/629,068, titled “Detecting Over Programmed Memory,” filed on July 29, 2003, both applications are inco ⁇ orated herein by reference in their entirety.
- Figure 1 shows a program voltage signal Vpgm applied to the control gates (or, in some cases, steering gates) of flash memory cells.
- the program voltage signal Vpgm includes a series of pulses that increase in magnitude over time.
- the bit lines e.g. connected to the drain
- the respective bit line voltage is raised to Vdd so that the memory cell is in the program inhibit mode (e.g. program to that cell stops).
- a multi-state flash memory cell is implemented by identifying multiple, distinct allowed threshold voltage ranges separated by forbidden voltage ranges.
- Figure 2 shows eight threshold ranges (0, 1, 2, 3, 4, 5, 6, 7), corresponding to three bits of data.
- Other memory cells can use more than eight threshold ranges or less than eight threshold ranges.
- Each distinct threshold voltage range corresponds to predetermined values for the set of data bits.
- these data values e.g. logical states
- Performing seven verify operations after each programming pulses slows down the programming process.
- One means for reducing the time burden of verifying is to use a more efficient verify process.
- a Smart Verify process is disclosed.
- the write sequence for the multi-state memory during a program/verify sequence using the Smart Verify process at the beginning of the process only the lowest state (e.g. state 1 of Fig. 2) of the multi-state range to which the selected memory cells are being programmed is checked during the verify phase. Once the first storage state (e.g. state 1 of Fig.
- next state e.g. state 2 of Fig. 2 in the sequence of multi-states is added to the verify process.
- This next state can either be added immediately upon the fastest cells reaching this preceding state in the sequence or, since memories are generally designed to have several programming steps to move from state to state, after a delay of several cycles.
- the amount of delay can either be fixed or use a parameter based implementation, which allows the amount of delay to be set according to device characteristics.
- the adding of states to the set being checked in the verify phase continues as per above until the highest state has been added. Similarly, lower states can be removed from the verify set as all of the memory cells bound for these levels verify successfully to those target values and are locked out from further programming.
- the multiple ranges of threshold voltage levels of the multi-state memory cell should be separated from each other by sufficient margin so that the level of the memory cell can be programmed and read in an unambiguous manner. Additionally, a tight threshold voltage distribution is recommended. To achieve a tight threshold voltage distribution, small program steps typically have been used, thereby, programming the threshold voltage of the cells more slowly. The tighter the desired threshold distribution, the smaller the steps and the slower the programming process.
- One solution for achieving tight threshold distributions without unreasonably slowing down the programming process is to use a two phase programming process.
- the first phase a coarse programming phase, includes attempts to raise the threshold voltage in a faster manner and paying relatively less attention to achieving a tight threshold distribution.
- the second phase a fine programming phase, attempts to raise the threshold voltage in a slower manner in order to reach the target threshold voltage while also achieving a tighter threshold distribution.
- Example of coarse/fine programming methodologies can be found in the following patent documents that are inco ⁇ orated herein by reference in their entirety: U.S. Patent Application No.
- the present invention pertains to technology for non-volatile memory. More specifically, the technology described herein can be used to provide an improved coarse/fine programming methodology.
- One embodiment of the present invention includes an apparatus for programming non-volatile storage elements.
- the apparatus includes nonvolatile storage elements in communication with a programming circuit and one or more verification selection circuits.
- the verification selection circuits cause a first subset of the non- volatile storage elements to be subjected to coarse verification concurrently while a second subset of non- volatile storage elements are subjected to fine verification.
- Some embodiments of the present invention include a sense circuit in communication with a non-volatile storage element, a programming mode indication circuit providing output indicating whether the non- volatile storage element is in a coarse programming mode or a fine programming mode based on the sense circuit, and a first selection circuit in communication with the programming mode indication circuit.
- the first selection circuit applies a coarse verification signal to the non- volatile storage element if the non- volatile storage element is in a coarse programming mode and applies a fine verification signal to the non-volatile storage element if the non-volatile storage element is in a fine programming mode.
- the apparatus performs a method comprising the steps of determining whether the non-volatile storage element is in a coarse programming mode or a fine programming mode. Coarse verification is performed for the non-volatile storage element without performing fine verification on the non-volatile storage element if that nonvolatile storage element is determined to be in the coarse programming mode. Fine verification is performed for that non-volatile storage element without performing coarse verification on the non- volatile storage element if that nonvolatile storage element is determined to be in the fine programming mode.
- Another embodiment in the present invention includes a nonvolatile storage element having a gate and a set of control terminals.
- the apparatus also includes a switchable current sinking device in communication with at least one of the control terminals.
- the switchable current sinking device provides a coarse current sink to the control terminal if the non- volatile storage element is in a coarse programming mode and provides a fine current sink to the control terminal if the non-volatile storage element is in a fine programming mode.
- a current sink is provided during the fine programming mode but not during the coarse programming mode.
- Another embodiment of the present invention includes a sense circuit in communication with the non-volatile storage element, a programming mode indication circuit providing output indicating whether the non-volatile storage element is in a coarse programming mode or fine programming mode based on the sense circuit, and a switchable current sinking device in communication with the programming mode indication circuit and the non-volatile storage element.
- the switchable current sinking device provides a coarse current sink to the non- volatile storage element if the non-volatile storage element is in the coarse programming mode and provides a fine current sink to the non-volatile storage element if the non-volatile storage element is in fine programming mode.
- an apparatus will apply a common programming signal to a gate for a non- volatile storage element, sink a first current from the non-volatile storage element during coarse programming, determine that a threshold voltage of the nonvolatile storage element has reached a first verify level and switch the sinking to seek a second current in response to determining if the threshold voltage of the non- volatile storage element has reached the first verify level.
- Yet another embodiment of the present invention includes a set of non- volatile storage elements and an individually switchable charge packet metering system in communication with the non-volatile storage elements.
- the individually switchable charge packet metering system is individually switched to provide a particular metered charge to program non- volatile storage elements in a fine programming mode without providing that particular metered charge to program non-volatile storage elements in a coarse programming mode.
- One embodiment includes performing a coarse programming process on the non-volatile storage elements, determining that the non- volatile storage elements should switch to a fine programming process, and performing the fine programming process in response.
- One implementation of the fine programming process includes the pre-charging of a control line for a non-volatile storage element and discharging that control line via the non-volatile storage element in order to program that non-volatile storage element.
- Figure 3 depicts an example of program voltage pulses used to program flash memory cells and verification pulses between the program pulses.
- Figure 4 is a block diagram of one embodiment of a flash memory system that can implement the present invention.
- Figure 7 is an electrical equivalent circuit to the structure of Fig.
- Figure 8 is a table providing example voltages for one way to operate the memory cells.
- Figure 9A includes graphs of threshold voltage and bit line voltage versus time for coarse/fine programming.
- Figure 9B includes alternative graphs of threshold voltage and bit line voltage versus time for coarse/fine programming.
- Figure 10 is a flow chart describing one embodiment of a process for programming non- volatile memory.
- Figure 11 is a flow chart describing one embodiment of a process for performing coarse/fine verification.
- Figure 12 is a block diagram of components used to verify a nonvolatile memory cell.
- Figure 13 is a graph of bit line voltage versus time for sensing.
- Figure 14 is an alternative block diagram of components used to verify a non-volatile memory cell.
- Figure 15 is an alternative block diagram of components used to verify a non- volatile memory cell.
- Figure 16 is a graph of threshold voltage versus program pulse.
- Figure 17 is a schematic of non- volatile memory using a first embodiment of current sinking.
- Figure 18 is a schematic of non- volatile memory using a second embodiment of current sinking.
- Figure 19 is a flow chart describing one embodiment of a coarse/fine programming process that uses current sinking.
- Figure 20 is a schematic of non- volatile memory using a first embodiment of charge packet metering.
- Figure 21 depicts graphs of voltage versus time.
- Figure 22 is a flow chart describing one embodiment of a coarse/fine programming process that uses charge packet metering.
- Figure 23 is a schematic of non- volatile memory using a second embodiment of charge packet metering.
- Figure 24 is a schematic of non-volatile memory using a third embodiment of charge packet metering.
- Figure 25 is a schematic of non-volatile memory using a fourth embodiment of charge packet metering.
- FIG. 4 An example memory system inco ⁇ orating the various aspects of the present invention is generally illustrated in the block diagram of Fig. 4. Architectures other than that of Fig. 4 can also be used with the present invention.
- a large number of individually addressable memory cells 11 are arranged in an array of rows and columns.
- Bit lines which extend along columns of array 11 , are electrically connected with bit line decoder, driver and sense amplifiers circuit 13 through lines 15.
- Word lines which extend along rows of array 11, are electrically connected through lines 17 to word line decoders and drivers circuit 19.
- Steering gates, which extend along columns of memory cells in array 11 are electrically connected to steering gate decoders and drivers circuit 21 through lines 23.
- Each of the circuits 13, 19 and 21 receives addresses from controller 27 via bus 25.
- controller 27 includes a state machine to coordinate performance of the functions described herein. In other embodiments, the state machine operates separately from the controller.
- Controller 27 is connectable through lines 35 to a host device (not shown).
- the host may be a personal computer, notebook computer, handheld device, digital camera, audio player, cellular telephone or various other devices.
- the memory system of Fig. 4 can be implemented in a card according to one of several existing physical and electrical standards, such as one from the PCMCIA, the CompactFlashTM Association, the MMCTM Association, Smart Media, Secure DigitalTM, Memory Stick, and others.
- the lines 35 terminate in a connector on the card which interfaces with a complementary connector of the host device.
- the memory system of Fig. 4 can be embedded in the host device.
- controller 27 can be embedded in the host device while the other components of the memory system are on a removable card.
- the memory system can be in packaging other than a card.
- the memory system can be in one or more integrated circuits, one or more circuit boards or other packages.
- Decoder and driver circuits 13, 19 and 21 generate appropriate voltages in their respective lines of array 11, as addressed over the bus 25, according to control signals in respective control and status lines 29, 31 and 33 to execute programming, reading and erasing functions.
- Status signals including voltage levels and other array parameters, are provided by array 11 to controller 27 over the same control and status lines 29, 31 and 33.
- a plurality of sense amplifiers within the circuit 13 receive current or voltage levels that are indicative of the states of addressed memory cells within array 11.
- the sense amplifiers provide controller 27 with information about the states of the memory cells over lines 41 during a read operation.
- a large number of sense amplifiers are usually used in order to be able to read the states of a large number of memory cells in parallel.
- Figure 5 is a plan view of a first embodiment of a portion of memory array 11.
- Figure 6 is a partial cross-sectional view of the memory array taken at Section A-A.
- the substrate and conductive elements are illustrated with little detail of dielectric layers that exist therebetween in order to simplify the figures. However, it will be understood that appropriate oxide layers are to be included between the conductive layers themselves, and the conductive layers and the substrate.
- a silicon substrate 45 includes a planar top surface 47.
- Elongated diffusions 49, 51 and 53 are formed into the substrate 45 through the surface 47 by an initial ion implantation and subsequent diffusion. Elongated diffusions 49, 51 and 53 serve as sources and drains of the memory cells. In order to provide a convention for this description, the diffusions are shown to be spaced apart in a first "x" direction, with lengths extending in a second "y” direction. These "x” and “y” directions are essentially orthogonal with each other.
- a number of floating gates are included across the substrate surface 47, with suitable gate dielectric therebetween, in an array of rows and columns. One row of floating gates 55, 56, 57, 58, 59, 60 is adjacent to and parallel with another row of floating gates 62, 63, 64, 65, 66, 67.
- a column of floating gates 69, 55, 62, 71 and 73 is adjacent to and parallel with a column of floating gates 75, 56, 63, 77 and 79.
- the floating gates are formed from a first layer of conductively doped polycrystalline silicon (“polysilicon”) that is deposited over the surface and then separated by etching using one or more masking steps into the individual floating gates.
- polysilicon conductively doped polycrystalline silicon
- Bit line decoder and driver circuit 13 (See Fig. 4) is connected through lines 15 with all of the bit line source/drain diffusions of the array, including the diffusions 49, 51 and 53 of Fig. 5.
- the sources and drains of columns of individual memory cells are connected to proper operating voltages for either reading or programming in response to addresses supplied over bus 25 and control signals over the lines 29.
- Figs. 5 and 6 uses one steering gate for every two columns of floating gates.
- Steering gates 81, 83 and 85 are elongated in the "y" direction and have a width in the "x" direction that extends across two adjacent columns of floating gates and a source/drain diffusion that is positioned in between them.
- the space between any two of the steering gates is at least as great as the space in the "x" direction between adjacent columns of floating gates that are overlaid by the two steering gates, in order to allow a gate to be later formed at the substrate in this space.
- the steering gates are formed by etching a second layer of conductively doped polysilicon that is deposited over the entire surface over the first polysilicon layer and an appropriate inter-polysilicon layer dielectric.
- Steering gate decoder and driver circuit 21 (see Fig. 4) connects though lines 23 to all the steering gates and is able to individually control their voltages in response to addresses provided on the bus 25, control signals on the lines 33, and data from drivers and sense amplifiers 13.
- Word lines 91, 92, 93, 94 and 95 are elongated in the "x" direction and extend over the steering gates with spaces between them in the "y"-direction that places each word line in alignment with a row of floating gates.
- the word lines are formed by etching a third layer of conductively doped polysilicon that is deposited over the entire surface on top of a dielectric that is first formed over the second polysilicon layer and regions exposed between the steering gates.
- the word lines allow selection of all the memory cells in its row for reading or writing.
- Select gate decoder and driver circuit 19 (see Fig. 4) is connected with each word line in order to individually select one row of the memory array. Individual cells within a selected row are then enabled for reading or writing by the bit line and steering gate decoder and driver circuits 13 and 21 (see Fig. 4).
- the gates in the foregoing structure are preferably made of doped polysilicon material, other suitable electrically conductive materials may be used in place of one or more of the three polysilicon layers described.
- the third layer for example, from which the word lines and select gates are formed, may be a polycide material, which is polysilicon with a conductive refractory metal suicide on its top, such as tungsten, in order to increase its conductivity.
- Polycides are generally not used in place of either the first or second polysilicon layers because the quality of inter-polycrystalline-silicon oxides formed from a polycide is usually not satisfactory.
- Figs. 5 and 6 Not shown in Figs. 5 and 6 are the metal conductor layers. Since the diffusions and polysilicon elements usually have a conductivity that is significantly less than that of metal, metal conductors are included in separate layers with connections made to respective metal lines through any intermediate layers at periodical intervals along the lengths of the polysilicon elements and diffusions. Since all of the diffusions and polysilicon elements of the embodiment of Figs 5-6 need to be separately driven, there is typically a one-to-one correspondence between the number of these metal lines and the number of diffusions and polysilicon elements.
- Fig. 7 depicts an electrically equivalent circuit to the structure of
- Fig. 6 where equivalent elements are identified by the same reference numbers as in Figs. 5 and 6, but with a prime (') added.
- the illustrated structure shares the source and drain diffusions with a neighboring structure. Conduction through the channel in the substrate between the adjacent diffusions 49 and 51 is controlled by different gate elements in three different regions. A first region to the left (Tl-left) has the floating gate 56 immediately above it and the steering gate 81 capacitively coupled with it. A second region to the right (Tl- right) is controlled in a similar manner by the floating gate 57 and the steering gate 83. A third region T2, between Tl-left and TI -right, is controlled by select gate 99 that is part of word line 92.
- the level of conduction of electrons through the channel between diffusions 49 and 51 is thus affected by the electric fields imparted by these different gate elements to their respective channel regions through the voltages placed on the gates.
- the voltage on a floating gate is dependent upon the level of net electrical charge it carries plus all displacement charge that is capacitively coupled from other gates and nodes.
- the level of conduction that is permitted through the channel portion under a floating gate is controlled by the voltage on that floating gate.
- the voltage on select gate 99 simply turns the channel off and to a targeted conduction level in order to select individual cells for connection with their source/drain regions.
- an individual memory cell can be considered as a series connection of three transistors, one for each of the three different regions (Tl-left, T2, Tl-Right) of the channel.
- each floating gate can be considered a memory cell.
- One of the two floating gates of a single memory cell is selected for programming or reading by placing a voltage on the steering gate above the other (non-selected) floating gate of the cell that is sufficient to cause the channel region under the other floating gate to become adequately conductive no matter what charge (which is related to its state) is carried by that other floating gate.
- that cell's select transistor When that cell's select transistor is turned on by a sufficient voltage applied to its word line, it is only the selected floating gate that responds to reading or programming operations directed to the cell.
- current through the cell between its source and drain is then dependent upon the charge carried by the selected floating gate without regard to the charge on the other floating gate.
- the voltage placed on the steering gate over the non-selected floating gate to render the channel portion under the non-selected floating gate conductive is also coupled to an adjacent floating gate of an adjacent cell through the same steering gate, impact on the adjacent cell is avoided by placing proper voltage conditions on the other elements of the adjacent cell.
- the floating gates of the embodiment of Figs. 5-7 are preferably programmed by placing voltages on its bit lines (source and drain diffusions) and its two steering gates that cause electrons to obtain enough energy in the substrate channel region to be injected across the gate dielectric into the selected floating gate.
- a preferred technique for this is "source side injection,” described in the U. S. Pat. Nos. 5,313,421 and 5,712,180, both of which are inco ⁇ orated herein by reference in their entirety.
- the dielectric between floating gate edge 103 and select gate 99 is preferably a thin layer of oxide that has been grown on the floating gate edge and through which electrons tunnel when appropriate voltages are placed on the various elements of the cell. The same is provided between floating gate edge 105 and select gate 99.
- care is taken to make sure that a resulting voltage gradient across the gate dielectric between the select gate and substrate surface 47 remains sufficiently below a breakdown level of that dielectric.
- Example operating voltages to program, read and erase the memory cells of array 11 are provided in the table of Fig. 8.
- Line (2) pertains to the operation of the type of cells that are erased to the select gates (word lines), while line (8) shows a modification for operating the type of cells that are erased to the substrate.
- the substrate portion in which the cells are formed contains p-type doping and the bit line diffusions are of n- type. The substrate is held at ground potential throughout these operations.
- This voltage is made high enough to enable a sufficient field to be built up across the gap between the floating and select gate channels to obtain source side hot electron progra ming.
- the bit line diffusion on the same side of the cell as the non- selected floating gate is biased at or near zero volts during programming.
- a voltage Vp is applied to the steering gate over the selected floating gate with a level that drives the selected floating gate to a voltage that assists in creating the desired field conditions in the channel below it for hot electron programming.
- the voltage Vp can be within the range of 5-12 volts. This voltage may vary during the programming operation.
- the appropriate set of programming voltages is first applied to an erased cell, followed by the appropriate set of reading voltages, and, if the reading step does not indicate that the selected floating gate has been programmed to the desired voltage state, which may be the programming state for binary storage or one of the variable storage states for multi-level storage, programming voltages are again applied which may in part be different from the earlier set.
- Line (7) of the table of Fig. 8 shows voltages that are applied to those cells within a row selected for programming that are themselves not to be programmed. For example, the number of cells programmed at the same time within one row of a segmented portion of an array are spaced alternately along the row with other cells in between them that are not being programmed. It is these other cells not being programmed that receive the voltages of line (7) of the table of Fig. 8.
- the opposing bit line diffusions are maintained at the same voltage in order to prevent any current from flowing in the channel (e.g., both at zero or both at 5 volts).
- the "x" indicates that the voltages on the steering gates of these cells are a don't care.
- V SE 3-12 volts, depending upon the level of VE.
- Fig. 9A provides graphs of threshold voltage (V TH ) versus time and bit line voltage (V BL ) versus time to indicate how one example of a coarse/fine programming process is performed.
- V TH threshold voltage
- V BL bit line voltage
- the method depicted in Fig. 9A starts with the programming-process performing the coarse phase of the programming process.
- the threshold voltage of the memory cell reaches voltage of V A
- the memory cell enters a fine programming phase by raising the bit line voltage of the cell to a value of Vi in order to slow down the programming.
- the fine programming phrase programming is slowed, as compared to the coarse programming phase. Therefore, the change in threshold voltage per program step is likely to be smaller during the fine programming phase.
- V LA is one V pgm step size below Vy. In other embodiments, the difference between V LA and V v is greater.
- Fig. 9 A assumes one coarse programming mode and one fine mode. In other embodiments, multiple coarse modes and/or multiple fine modes can be used.
- Fig. 9B shows three modes. In other embodiments more than three modes can be used.
- the embodiment to Fig. 9B shows a first mode (the most coarse mode) which is performed until the threshold voltage of the memory cell reaches V LA2 - At that point the memory cell transitions to the intermediate programming mode (finer than the most coarse mode and coarser than the most fine mode), at which point the bit line is raised to the V ⁇ .
- the memory cell will remain in intermediate mode until the threshold voltage of the memory cell reaches V LAI > at which time the memory cell will enter the finest program mode and the bit line will be raised to V ⁇ .
- the memory cell will remain in the finest program mode until the threshold voltage of the memory cell reaches V v .
- the bit line will be raised to Vdd in order to inhibit further programming of that memory cell.
- more than three modes can be used (e.g. 4 modes, 5 modes, etc.).
- Fig. 10 is a flow chart describing one embodiment of the coarse/fine programming process.
- step 202 the portion of the memory to be programmed is selected. In one implementation, this can be one or more write units appropriate to the memory structure. One example of a write unit is referred to as a page. In other embodiments, other units and/or structures can also be used.
- step 204 a pre-programming process is sometimes used wherein the addressed memory cells are given non-data dependent programming to level out storage element wear and provide a more uniform starting point for the subsequent erase.
- step 206 an erased process is performed, as appropriate for the type of storage element being used.
- a suitable smart erase process is described in U.S. Patent No.
- Step 208 includes a soft programming process designed to put the threshold voltages of erased memory cells into a more uniform starting range for the actual write phase. In one embodiment, if any of the memory cells fail to verify during erase (or during soft programming), they can be mapped out of the logical address space. At this point the memory is ready for the data conditional programming phase.
- step 210 the program voltage (Vpgm) is set to an initial value.
- step 210 includes setting the initial pulse.
- a program counter PC
- step 220 a program pulse is applied.
- one iteration of step 220 could include applying program pulse 10A of Fig. 3.
- step 222 a concurrent course and fine verification process is performed.
- One or more memory cells are verified for coarse programming in a manner that overlaps in time with one or more memory cells being verified for fine programming. For example in regard to binary memory cells (e.g., two states), while some memory cells are being verified for coarse programming, other memory cells are being verified for fine programming.
- multi-state memory cells while some memory cells are being verified for coarse programming for a particular state, other memory cells are being verified for fine programming for the same particular state.
- different memory cells can be concurrently programmed/verified for different states where some memory cells are being verified for coarse programming while other memory cells are being verified for fine programming. More details of step 222 are described below.
- PC program counter
- Fig.12 is a block diagram depicting components used to implement one embodiment of the process of Fig. 11.
- Fig.12 shows a circuit for one bit line. In one embodiment, there would be such a circuit for each bit line. In another embodiment, there would be such a circuit for a pair of bit lines.
- Fig. 12 shows a bit line connected to switch 400 and capacitor 402. The capacitor is also connected to ground.
- Switch 400 receives a signal from multiplexer 404. The signal received from multiplexer 404 is used for programming. Multiplexer 404 receives two signals Vpc and Vpf, and chooses between those two signals based on an indication from C/F register 420. Switch 400 is also connected to an input of sense amplification circuit 410.
- Fig. 13 shows a graph of bit line voltage (Vbl) versus time.
- the bit lines are allowed to discharge over a period of time T.
- the voltage of the bit line is compared against the reference voltage Vref. If the bit line voltage is greater than Vref, then the memory cell has a lower driving capability and is more programmed than the target threshold voltage. If at time T the bit line voltage is less than Vref, then the threshold voltage of the memory cell is less than the target threshold.
- the bit line instead of measuring the voltage on the bit line after a fixed time T, the bit line can be allowed to discharge until it reaches Vref.
- C/F register 420 is a 1-bit register that indicates whether the particular memory cell is in the coarse programming mode or in the fine programming mode.
- multiplexer 404 will send the coarse mode programming voltage (Vpc) to the bit line via switch 400.
- Vpf fine mode programming voltage
- sense amplifier 410 will include a circuit that compares the bit line voltage to the reference voltage Vref.
- multiplexers 404 and 430 will then change their selection so that multiplexer 404 will send voltage Vpf to the bit line the next time the cell is programmed, and multiplexer 430 will send time strobe Tf to sense amplifier 410 next time there is a comparison for the verify operation. If, during the fine mode, sense amplification circuit 410 determines that the fine verification process passed successfully because the bit line discharged to the fixed reference value Vref within the time indicated by Tf, then the sense amplifier 410 will so indicate to C/F register 420, which will then cause lock out register 422 to indicate that the cell should be locked out (inhibited) from further programming.
- Fig. 14 is a second embodiment for performing verification.
- a pair of reference current sources are used. For a given memory cell, when the reference current exceeds its cell current, the associated sense amplifier will indicate such a condition, reflecting that the memory cell is programmed to meet the target threshold condition. Thus, multiplexer 430 will select, based on the output of C/F register 420, whether to provide the current source for the coarse phase (lc) or the current source of the fine phase (If).
- one method for transitioning a memory cell from the coarse programming mode to the fine programming mode is to raise the voltage on the bit line. Raising the voltage on the bit line tends to slow down the programming. Thus, the threshold voltage for memory cells in the fine programming mode will be raised in smaller increments, and a tighter threshold voltage distribution can be achieved.
- Another means for transitioning a memory cell from the coarse programming phase to the fine programming phase is to change the amount of current through the channel of the memory cell. During programming, the source of the memory cell will rise above ground, as governed by the select gate's conduction characteristics. A current sink can be connected to the source to control how much current will flow through the channel.
- current sink 600 of Figure 17 is a variable current sink that can sink different sets of coarse and fine values for each state of a multistate memory cell. For example, if there were seven programmed states, current sink 600 would be able to sink fourteen (or less if there is overlap) different levels of current. Alternatively, there can be fourteen (or less if there is overlap) different current sinks.
- Employing different sets of current sink values for different states allows the programming process to be more efficient so that less programming pulses are needed (e.g., 200mV step size) and the more heavily programmed memory cells (e.g., being programmed to state 7) will program faster without causing the cells that are targeted to be programmed to lower states (e.g.
- Fig.18 graphically depicts an alternative embodiment where the C/F register 420 is used to control switch 620.
- Switch 620 selects between two current sinks 622 and 624.
- Current sink 622 sinks current for the coarse mode and current sink 624 sinks current for the fine mode.
- C/F register 420 indicates that floating gate 56 is being programmed in the coarse mode, then it will send a signal to switch 628 to choose current sink 622.
- C F register 420 will indicate to switch 620 to choose current sink 624.
- switching from coarse programming niode to fine programming mode is performed by switching current sinks. It is contemplated that current sink 624 for fine mode will sink less current than current sink 622 for coarse mode.
- Figs.17 and 18 include dual floating gates per memory cell.
- the current sinking technology as described herein can be used in a memory cell with only one floating gate, in which case the current sink is preferably connected to the source side of the one floating gate.
- the current sinking technology can also be used in memory cells with more than two floating gates.
- the current sink will be applied to a source side with respect to a floating gate being programmed.
- it can be connected to other control lines which thereby govern programming speed.
- the designation of source and drain can be arbitrary in some structures and thus the invention is not limited to the "source" side.
- FIG. 20 shows the memory cell of Fig. 7 in a configuration where floating gate 56'is being programmed.
- Attached to bit line right terminal 51 is a switch 700 that is controlled by C/F register 420.
- Switch 700 has two inputs. The first input is labeled by reference number 702. When C/F register 420 indicates that the floating gate 56 is in the coarse mode, the switch 700 will select input 702 which will be the normal components connected to the bit line during the coarse programming mode.
- switch 700 will connect terminal 51 to switch 708 and capacitor 710.
- the opposite side of capacitor 710 is connected to a reference potential (e.g. ground).
- Switch 708 is connected to a pre-charge supply (e.g., voltage supply) 712.
- Components 708, 710 and 712 are used for the fine programming mode as part of a two step method. In the first step, capacitor 710 is connected to power supply 712 via switch 708 and charged to a pre-charge voltage, the programming source bias.
- Fig. 21 provides two graphs. The upper graph shows the voltage at terminal 51 versus time. The lower graph shows the voltage at the select gate versus time. At time t 0 , capacitor 710 is pre-charged, thus pre-charging the control line at terminal 51 . When the select gate turns on at time tj., capacitor 710 of Fig. 20 will start sinking current, and its voltage will rise, reducing current flow. Eventually, the current in the channel stops flowing when the capacitor is sufficiently discharged.
- Fig. 22 is a flow chart describing one embodiment of a process for performing the charge metering described above. In step 740, the appropriate pre-charge circuit is selected.
- step 742 the switch that allows pre-charging (e.g. switch 708) is closed to start the pre-charging.
- the switch is opened, which ends the pre-charging.
- step 746 the pulse supplied to the steering gate is applied and the select gate is turned on so that current flows through the channel and electrons are injected into the floating gate until the capacitor is sufficiently discharged.
- Fig. 23 provides a block drawing of an alternative embodiment which uses one pre-charge circuit for the course programming mode and another pre-charge circuit for the fine programming mode.
- Switch 780 is connected to terminal 51 and is controlled by C/F register 420. If C/F register 420 indicates that the floating gate 56 is in the coarse programming mode, switch 780 will select components 782, 784 and 786. If C/F register 420 indicates that the floating gate 56 is in the fine programming mode, then switch 780 will select components 790, 792 and 794.
- Pre-charge supply 786 is connected to switch 782, which is connected to capacitor 784. When switch 782 is closed, pre-charge supply 786 charges capacitor 784 for the coarse programming mode. After charging capacitor 784, switch 782 is opened and capacitor 784 is allowed to discharge (via switch 780) through the memory cell to program floating gate 56
- Pre-charge supply 794 is used to pre-charge capacitor 792 when switch 790 is closed. After pre-charging capacitor 792, switch 790 is opened, thereby allowing capacitor 792 to discharge through the memory cell during the fine programming mode in order to program floating gate 56 *
- pre-charge supply 786 will be at a lower voltage than pre-charge supply 794 so that capacitor 784 is charged to a relatively larger value for the coarse programming mode than is capacitor 792 for the fine programming mode. The greater the value of the charge on the capacitor, the more programming that will take place. Thus, more programming can be allowed for the coarse mode and less programming can be allowed for the fine mode.
- the exact values of the supply (voltage or other type of supply) and the capacitors are determined based on specific requirements and device optimization, simulation, and/or device characterization, as well as the targets for differentiating coarse versus fine programming.
- Fig. 24 provides an alternative embodiment for metering the charge within the memory cell.
- Fig. 24 shows C/F register 420 connected to a variable pre-charge supply 800.
- Pre-charge supply 800 can supply at least two different supply levels, one level for coarse programming mode and another level for fine programming mode. Based on the value in C/F register 420, the appropriate level is supplied to switch 802. Switch 802 is also connected to capacitor 804 and terminal 51 .
- pre-charge supply 800 will be used to send a coarse charging level to capacitor 804 for programming floating gate 567
- pre- charge supply 800 will provide a fine charge (of less relative magnitude than the coarse charge) for programming floating gate 56 .
- Fig. 25 provides yet another alternative embodiment for charge metering as described above.
- the embodiment of Fig. 25 includes using a common pre-charge supply 848 for both coarse and fine modes.
- switch 840 is used to select between two different capacitors.
- Capacitor 842 is used for programming during the coarse mode and capacitor 844, which has smaller capacitance than that of capacitor 842, is used for programming during the fine mode.
- Switch 840 selects between capacitor 842 and 844 based on the value stored in C/F register 420. [00112] Note that in some embodiments, pre-charging the control line
- the capacitor (e.g. 51 ) using the capacitor would bring the control line to ground.
- the pre-charge causes sinking of a current to the capacitor, and the voltage will rise until the device ultimately shuts itself down.
- the voltage at terminal 51 will increase until it reaches a sufficiently high value to effectively stop programming. This charge limited operation is performed for each pulse during programming.
- the concurrent coarse/fine verification, current sinking during programming and charge metering during programming all contemplate a common signal (e.g. Vpgm staircase) being provided to the word line or steering gates (depending on the memory cell structure) for multiple memory cells.
- a common signal e.g. Vpgm staircase
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Non-Volatile Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Semiconductor Memories (AREA)
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE602005008713T DE602005008713D1 (en) | 2004-01-27 | 2005-01-14 | EFFICIENT VERIFICATION FOR THE GROB / FINE PROGRAMMING OF NON-VOLATILE MEMORY |
EP05705707A EP1714290B1 (en) | 2004-01-27 | 2005-01-14 | Efficient verification for coarse/fine programming of non-volatile memory |
CN2005800073707A CN1930632B (en) | 2004-01-27 | 2005-01-14 | Available verification for coarse/fine programming of non-volatile memory |
JP2006551168A JP4510031B2 (en) | 2004-01-27 | 2005-01-14 | Efficient verification for coarse / fine programming of non-volatile memory |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/766,217 US7139198B2 (en) | 2004-01-27 | 2004-01-27 | Efficient verification for coarse/fine programming of non-volatile memory |
US10/766,217 | 2004-01-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2005073975A2 true WO2005073975A2 (en) | 2005-08-11 |
WO2005073975A3 WO2005073975A3 (en) | 2005-10-06 |
Family
ID=34795618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2005/001232 WO2005073975A2 (en) | 2004-01-27 | 2005-01-14 | Efficient verification for coarse/fine programming of non-volatile memory |
Country Status (9)
Country | Link |
---|---|
US (3) | US7139198B2 (en) |
EP (1) | EP1714290B1 (en) |
JP (1) | JP4510031B2 (en) |
KR (1) | KR100858745B1 (en) |
CN (1) | CN1930632B (en) |
AT (1) | ATE403933T1 (en) |
DE (1) | DE602005008713D1 (en) |
TW (1) | TWI322432B (en) |
WO (1) | WO2005073975A2 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7339834B2 (en) | 2005-06-03 | 2008-03-04 | Sandisk Corporation | Starting program voltage shift with cycling of non-volatile memory |
JP2009009692A (en) * | 2007-06-28 | 2009-01-15 | Samsung Electronics Co Ltd | Nonvolatile semiconductor memory device and programming method thereof |
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 |
JP2010519673A (en) * | 2007-02-20 | 2010-06-03 | サンディスク コーポレイション | Dynamic verification based on threshold voltage classification |
JP2010530112A (en) * | 2007-06-15 | 2010-09-02 | マイクロン テクノロジー, インク. | Coarse programming in solid state memory |
US8125832B2 (en) | 2007-02-20 | 2012-02-28 | Sandisk Technologies Inc. | Variable initial program voltage magnitude for non-volatile storage |
Families Citing this family (166)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7068539B2 (en) * | 2004-01-27 | 2006-06-27 | Sandisk Corporation | Charge packet metering for coarse/fine programming of non-volatile memory |
US7139198B2 (en) * | 2004-01-27 | 2006-11-21 | Sandisk Corporation | Efficient verification for coarse/fine programming of non-volatile memory |
US7023733B2 (en) * | 2004-05-05 | 2006-04-04 | Sandisk Corporation | Boosting to control programming of non-volatile memory |
WO2006138413A1 (en) * | 2005-06-15 | 2006-12-28 | Micron Technology, Inc. | Selective slow programming convergence in a flash memory device |
US7656710B1 (en) | 2005-07-14 | 2010-02-02 | Sau Ching Wong | Adaptive operations for nonvolatile memories |
US7366013B2 (en) * | 2005-12-09 | 2008-04-29 | Micron Technology, Inc. | Single level cell programming in a multiple level cell non-volatile memory device |
US7307887B2 (en) * | 2005-12-29 | 2007-12-11 | Sandisk Corporation | Continued verification in non-volatile memory write operations |
US7224614B1 (en) | 2005-12-29 | 2007-05-29 | Sandisk Corporation | Methods for improved program-verify operations in non-volatile memories |
US7352629B2 (en) * | 2005-12-29 | 2008-04-01 | Sandisk Corporation | Systems for continued verification in non-volatile memory write operations |
JP4638544B2 (en) * | 2005-12-29 | 2011-02-23 | サンディスク コーポレイション | Method and apparatus for improved program verify operation in non-volatile memory |
US7310255B2 (en) | 2005-12-29 | 2007-12-18 | Sandisk Corporation | Non-volatile memory with improved program-verify operations |
JP4995264B2 (en) | 2006-04-12 | 2012-08-08 | サンディスク コーポレイション | Reduction of program disturbance during reading |
KR101202537B1 (en) | 2006-05-12 | 2012-11-19 | 애플 인크. | Combined distortion estimation and error correction coding for memory devices |
WO2007132456A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Memory device with adaptive capacity |
US7697326B2 (en) | 2006-05-12 | 2010-04-13 | Anobit Technologies Ltd. | Reducing programming error in memory devices |
CN103280239B (en) | 2006-05-12 | 2016-04-06 | 苹果公司 | Distortion estimation in memory device and elimination |
US7403438B2 (en) * | 2006-07-12 | 2008-07-22 | Infineon Technologies Flash Gmbh & Co. Kg | Memory array architecture and method for high-speed distribution measurements |
WO2008026203A2 (en) | 2006-08-27 | 2008-03-06 | Anobit Technologies | Estimation of non-linear distortion in memory devices |
WO2008053472A2 (en) | 2006-10-30 | 2008-05-08 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
CN101601094B (en) | 2006-10-30 | 2013-03-27 | 苹果公司 | 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 |
US7900102B2 (en) | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US7590007B2 (en) * | 2007-01-11 | 2009-09-15 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device |
US7751240B2 (en) | 2007-01-24 | 2010-07-06 | 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 |
CN101715595A (en) | 2007-03-12 | 2010-05-26 | 爱诺彼得技术有限责任公司 | Adaptive estimation of memory cell read thresholds |
ITRM20070167A1 (en) * | 2007-03-27 | 2008-09-29 | Micron Technology Inc | NON-VOLATILE MULTILEVEL MEMORY CELL PROGRAMMING |
US8001320B2 (en) | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
KR100927119B1 (en) * | 2007-05-10 | 2009-11-18 | 삼성전자주식회사 | Nonvolatile Semiconductor Memory Device And Its Programming Method |
WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
US7548462B2 (en) * | 2007-06-29 | 2009-06-16 | Macronix International Co., Ltd. | Double programming methods of a multi-level-cell nonvolatile memory |
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 |
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 |
WO2009006513A1 (en) | 2007-07-03 | 2009-01-08 | 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 |
US7489543B1 (en) * | 2007-07-25 | 2009-02-10 | Micron Technology, Inc. | Programming multilevel cell memory arrays |
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 |
US7619933B2 (en) * | 2007-10-05 | 2009-11-17 | Micron Technology, Inc. | Reducing effects of program disturb in a memory device |
US8355278B2 (en) * | 2007-10-05 | 2013-01-15 | Micron Technology, Inc. | Reducing effects of program disturb in a memory device |
US7773413B2 (en) | 2007-10-08 | 2010-08-10 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells in the presence of temperature variations |
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 |
WO2009050703A2 (en) | 2007-10-19 | 2009-04-23 | Anobit Technologies | Data storage in analog memory cell arrays having erase failures |
WO2009063450A2 (en) | 2007-11-13 | 2009-05-22 | Anobit Technologies | Optimized selection of memory units in multi-unit 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 |
US7916544B2 (en) | 2008-01-25 | 2011-03-29 | Micron Technology, Inc. | Random telegraph signal noise reduction scheme for semiconductor memories |
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 |
US7719888B2 (en) * | 2008-06-18 | 2010-05-18 | Micron Technology, Inc. | Memory device having a negatively ramping dynamic pass voltage for reducing read-disturb effect |
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 |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | 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 |
US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for 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 |
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 |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
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 |
CN102129886B (en) * | 2010-01-12 | 2013-07-17 | 中芯国际集成电路制造(上海)有限公司 | Methods for initializing, setting and resetting resistive random access memory |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8946046B1 (en) | 2012-05-02 | 2015-02-03 | Crossbar, Inc. | Guided path for forming a conductive filament in RRAM |
US9601692B1 (en) | 2010-07-13 | 2017-03-21 | Crossbar, Inc. | Hetero-switching layer in a RRAM device and method |
US9570678B1 (en) | 2010-06-08 | 2017-02-14 | Crossbar, Inc. | Resistive RAM with preferental filament formation region and methods |
US9012307B2 (en) | 2010-07-13 | 2015-04-21 | Crossbar, Inc. | Two terminal resistive switching device structure and method of fabricating |
CN103081093B (en) | 2010-06-11 | 2015-06-03 | 科洛斯巴股份有限公司 | Pillar structure for memory device and method |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8374018B2 (en) | 2010-07-09 | 2013-02-12 | Crossbar, Inc. | Resistive memory using SiGe material |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US8569172B1 (en) | 2012-08-14 | 2013-10-29 | Crossbar, Inc. | Noble metal/non-noble metal electrode for RRAM applications |
US8947908B2 (en) | 2010-11-04 | 2015-02-03 | Crossbar, Inc. | Hetero-switching layer in a RRAM device and method |
US8884261B2 (en) | 2010-08-23 | 2014-11-11 | Crossbar, Inc. | Device switching using layered device structure |
US8168506B2 (en) | 2010-07-13 | 2012-05-01 | Crossbar, Inc. | On/off ratio for non-volatile memory device and method |
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 |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US8889521B1 (en) | 2012-09-14 | 2014-11-18 | Crossbar, Inc. | Method for silver deposition for a non-volatile memory device |
US9401475B1 (en) | 2010-08-23 | 2016-07-26 | Crossbar, Inc. | Method for silver deposition for a non-volatile memory device |
US8492195B2 (en) | 2010-08-23 | 2013-07-23 | Crossbar, Inc. | Method for forming stackable non-volatile resistive switching memory devices |
KR20120030281A (en) | 2010-09-20 | 2012-03-28 | 삼성전자주식회사 | Flash memory device and program verification method thereof |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
US8558212B2 (en) | 2010-09-29 | 2013-10-15 | Crossbar, Inc. | Conductive path in switching material in a resistive random access memory device and control |
USRE46335E1 (en) | 2010-11-04 | 2017-03-07 | Crossbar, Inc. | Switching device having a non-linear element |
US8502185B2 (en) | 2011-05-31 | 2013-08-06 | Crossbar, Inc. | Switching device having a non-linear element |
US8930174B2 (en) | 2010-12-28 | 2015-01-06 | Crossbar, Inc. | Modeling technique for resistive random access memory (RRAM) cells |
US8815696B1 (en) | 2010-12-31 | 2014-08-26 | Crossbar, Inc. | Disturb-resistant non-volatile memory device using via-fill and etchback technique |
US9153623B1 (en) | 2010-12-31 | 2015-10-06 | Crossbar, Inc. | Thin film transistor steering element for a non-volatile memory device |
US9620206B2 (en) | 2011-05-31 | 2017-04-11 | Crossbar, Inc. | Memory array architecture with two-terminal memory cells |
US8619459B1 (en) | 2011-06-23 | 2013-12-31 | Crossbar, Inc. | High operating speed resistive random access memory |
US8946669B1 (en) | 2012-04-05 | 2015-02-03 | Crossbar, Inc. | Resistive memory device and fabrication methods |
US9627443B2 (en) | 2011-06-30 | 2017-04-18 | Crossbar, Inc. | Three-dimensional oblique two-terminal memory with enhanced electric field |
US9166163B2 (en) | 2011-06-30 | 2015-10-20 | Crossbar, Inc. | Sub-oxide interface layer for two-terminal memory |
US9564587B1 (en) | 2011-06-30 | 2017-02-07 | Crossbar, Inc. | Three-dimensional two-terminal memory with enhanced electric field and segmented interconnects |
US9252191B2 (en) | 2011-07-22 | 2016-02-02 | Crossbar, Inc. | Seed layer for a p+ silicon germanium material for a non-volatile memory device and method |
US9729155B2 (en) | 2011-07-29 | 2017-08-08 | Crossbar, Inc. | Field programmable gate array utilizing two-terminal non-volatile memory |
US10056907B1 (en) | 2011-07-29 | 2018-08-21 | Crossbar, Inc. | Field programmable gate array utilizing two-terminal non-volatile memory |
US8674724B2 (en) | 2011-07-29 | 2014-03-18 | Crossbar, Inc. | Field programmable gate array utilizing two-terminal non-volatile memory |
KR20130072668A (en) * | 2011-12-22 | 2013-07-02 | 에스케이하이닉스 주식회사 | Semiconductor memory device and operating method thereof |
US9087576B1 (en) | 2012-03-29 | 2015-07-21 | Crossbar, Inc. | Low temperature fabrication method for a three-dimensional memory device and structure |
US9685608B2 (en) | 2012-04-13 | 2017-06-20 | Crossbar, Inc. | Reduced diffusion in metal electrode for two-terminal memory |
US8658476B1 (en) | 2012-04-20 | 2014-02-25 | Crossbar, Inc. | Low temperature P+ polycrystalline silicon material for non-volatile memory device |
US8796658B1 (en) | 2012-05-07 | 2014-08-05 | Crossbar, Inc. | Filamentary based non-volatile resistive memory device and method |
US9583701B1 (en) | 2012-08-14 | 2017-02-28 | Crossbar, Inc. | Methods for fabricating resistive memory device switching material using ion implantation |
US10096653B2 (en) | 2012-08-14 | 2018-10-09 | Crossbar, Inc. | Monolithically integrated resistive memory using integrated-circuit foundry compatible processes |
US8946673B1 (en) | 2012-08-24 | 2015-02-03 | Crossbar, Inc. | Resistive switching device structure with improved data retention for non-volatile memory device and method |
US9312483B2 (en) | 2012-09-24 | 2016-04-12 | Crossbar, Inc. | Electrode structure for a non-volatile memory device and method |
US9576616B2 (en) | 2012-10-10 | 2017-02-21 | Crossbar, Inc. | Non-volatile memory with overwrite capability and low write amplification |
US8982647B2 (en) | 2012-11-14 | 2015-03-17 | Crossbar, Inc. | Resistive random access memory equalization and sensing |
US9412790B1 (en) | 2012-12-04 | 2016-08-09 | Crossbar, Inc. | Scalable RRAM device architecture for a non-volatile memory device and method |
US9406379B2 (en) | 2013-01-03 | 2016-08-02 | Crossbar, Inc. | Resistive random access memory with non-linear current-voltage relationship |
US9112145B1 (en) | 2013-01-31 | 2015-08-18 | Crossbar, Inc. | Rectified switching of two-terminal memory via real time filament formation |
US9324942B1 (en) | 2013-01-31 | 2016-04-26 | Crossbar, Inc. | Resistive memory cell with solid state diode |
US8934280B1 (en) * | 2013-02-06 | 2015-01-13 | Crossbar, Inc. | Capacitive discharge programming for two-terminal memory cells |
JP6421169B2 (en) * | 2013-03-14 | 2018-11-07 | サウジ・ベーシック・インダストリーズ・コーポレーション | Ferroelectric capacitor with improved fatigue and fracture characteristics |
KR20150091684A (en) * | 2014-02-03 | 2015-08-12 | 에스케이하이닉스 주식회사 | Semiconductor Apparatus |
US10290801B2 (en) | 2014-02-07 | 2019-05-14 | Crossbar, Inc. | Scalable silicon based resistive memory device |
JP2015204126A (en) | 2014-04-16 | 2015-11-16 | 株式会社東芝 | Semiconductor storage device |
US9922718B2 (en) * | 2014-05-22 | 2018-03-20 | Seagate Technology Llc | Flash command that reports a count of cell program failures |
US9696918B2 (en) * | 2014-07-13 | 2017-07-04 | Apple Inc. | Protection and recovery from sudden power failure in non-volatile memory devices |
CN106796819B (en) | 2014-09-12 | 2020-06-16 | 东芝存储器株式会社 | Nonvolatile semiconductor memory device |
US9443606B2 (en) | 2014-10-28 | 2016-09-13 | Sandisk Technologies Llc | Word line dependent two strobe sensing mode for nonvolatile storage elements |
US9947682B2 (en) | 2014-11-18 | 2018-04-17 | Sandisk Technologies Llc | Three dimensional non-volatile memory with separate source lines |
US9875805B2 (en) | 2015-01-23 | 2018-01-23 | Sandisk Technologies Llc | Double lockout in non-volatile memory |
US9548130B2 (en) | 2015-04-08 | 2017-01-17 | Sandisk Technologies Llc | Non-volatile memory with prior state sensing |
US9570179B2 (en) | 2015-04-22 | 2017-02-14 | Sandisk Technologies Llc | Non-volatile memory with two phased programming |
US9922719B2 (en) * | 2015-06-07 | 2018-03-20 | Sandisk Technologies Llc | Multi-VT sensing method by varying bit line voltage |
US9633744B2 (en) | 2015-09-18 | 2017-04-25 | Intel Corporation | On demand knockout of coarse sensing based on dynamic source bounce detection |
US20170117036A1 (en) | 2015-10-22 | 2017-04-27 | Sandisk Technologies Llc | Source line driver for three dimensional non-volatile memory |
US9715924B2 (en) | 2015-10-22 | 2017-07-25 | Sandisk Technologies Llc | Three dimensional non-volatile memory with current sensing programming status |
US9711211B2 (en) | 2015-10-29 | 2017-07-18 | Sandisk Technologies Llc | Dynamic threshold voltage compaction for non-volatile memory |
US10248499B2 (en) | 2016-06-24 | 2019-04-02 | Sandisk Technologies Llc | Non-volatile storage system using two pass programming with bit error control |
JP6808479B2 (en) * | 2016-12-27 | 2021-01-06 | ラピスセミコンダクタ株式会社 | Semiconductor memory |
TWI663600B (en) * | 2017-09-08 | 2019-06-21 | 旺宏電子股份有限公司 | Method for programming non-volatile memory and memory system |
US10748630B2 (en) * | 2017-11-29 | 2020-08-18 | Silicon Storage Technology, Inc. | High precision and highly efficient tuning mechanisms and algorithms for analog neuromorphic memory in artificial neural networks |
US10741568B2 (en) | 2018-10-16 | 2020-08-11 | Silicon Storage Technology, Inc. | Precision tuning for the programming of analog neural memory in a deep learning artificial neural network |
US10748622B2 (en) | 2019-01-21 | 2020-08-18 | Sandisk Technologies Llc | State adaptive predictive programming |
CN109979515B (en) * | 2019-03-25 | 2021-08-31 | 长江存储科技有限责任公司 | Memory programming method and related device |
US11507816B2 (en) * | 2019-09-19 | 2022-11-22 | Silicon Storage Technology, Inc. | Precision tuning for the programming of analog neural memory in a deep learning artificial neural network |
CN110870015B (en) | 2019-10-18 | 2021-03-12 | 长江存储科技有限责任公司 | Method of programming and verifying a memory device and related memory device |
US11049578B1 (en) | 2020-02-19 | 2021-06-29 | Sandisk Technologies Llc | Non-volatile memory with program verify skip |
CN112951309B (en) * | 2021-03-15 | 2021-11-19 | 长江存储科技有限责任公司 | Verification error bit quantization circuit and method for semiconductor memory |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11532370B1 (en) | 2021-05-25 | 2022-12-20 | Sandisk Technologies Llc | Non-volatile memory with fast multi-level program verify |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5220531A (en) * | 1991-01-02 | 1993-06-15 | Information Storage Devices, Inc. | Source follower storage cell and improved method and apparatus for iterative write for integrated circuit analog signal recording and playback |
US5926409A (en) * | 1997-09-05 | 1999-07-20 | Information Storage Devices, Inc. | Method and apparatus for an adaptive ramp amplitude controller in nonvolatile memory application |
US6301161B1 (en) * | 2000-04-25 | 2001-10-09 | Winbond Electronics Corporation | Programming flash memory analog storage using coarse-and-fine sequence |
US20020024846A1 (en) * | 1996-09-30 | 2002-02-28 | Takayuki Kawahara | Semiconductor integrated circuit and data processing system |
EP1249842A1 (en) * | 2001-04-10 | 2002-10-16 | STMicroelectronics S.r.l. | Method for programming nonvolatile memory cells with program and verify algorithm using a staircase voltage with varying step amplitude |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US57598A (en) * | 1866-08-28 | Improvement in ladies fans | ||
US5313421A (en) | 1992-01-14 | 1994-05-17 | Sundisk Corporation | EEPROM with split gate source side injection |
US6222762B1 (en) | 1992-01-14 | 2001-04-24 | Sandisk Corporation | Multi-state memory |
US5712180A (en) | 1992-01-14 | 1998-01-27 | Sundisk Corporation | EEPROM with split gate source side injection |
KR950000273B1 (en) * | 1992-02-21 | 1995-01-12 | 삼성전자 주식회사 | Non-volatile semiconductor memory device and optimal write method |
US5412601A (en) | 1992-08-31 | 1995-05-02 | Nippon Steel Corporation | Non-volatile semiconductor memory device capable of storing multi-value data in each memory cell |
KR0169267B1 (en) | 1993-09-21 | 1999-02-01 | 사토 후미오 | Nonvolatile semiconductor memory device |
JP3476952B2 (en) | 1994-03-15 | 2003-12-10 | 株式会社東芝 | Nonvolatile semiconductor memory device |
JP3730272B2 (en) | 1994-09-17 | 2005-12-21 | 株式会社東芝 | Nonvolatile semiconductor memory device |
DE69421925T2 (en) | 1994-09-30 | 2000-03-16 | St Microelectronics Srl | Storage device with error detection and correction and method for writing and erasing the storage device |
JPH09251782A (en) | 1996-03-14 | 1997-09-22 | Fujitsu Ltd | Semiconductor storage device |
US5712815A (en) | 1996-04-22 | 1998-01-27 | Advanced Micro Devices, Inc. | Multiple bits per-cell flash EEPROM capable of concurrently programming and verifying memory cells and reference cells |
EP0833348B1 (en) * | 1996-09-30 | 2003-07-09 | STMicroelectronics S.r.l. | Method and circuit for checking multilevel programming of floating-gate nonvolatile memory cells, particlarly flash cells |
JP3679544B2 (en) * | 1997-03-28 | 2005-08-03 | 三洋電機株式会社 | Nonvolatile semiconductor memory device |
JP3481817B2 (en) | 1997-04-07 | 2003-12-22 | 株式会社東芝 | Semiconductor storage device |
JP3906545B2 (en) * | 1998-02-03 | 2007-04-18 | ソニー株式会社 | Nonvolatile semiconductor memory device |
US5969986A (en) * | 1998-06-23 | 1999-10-19 | Invox Technology | High-bandwidth read and write architectures for non-volatile memories |
JP2000040382A (en) | 1998-07-23 | 2000-02-08 | Sony Corp | Non-volatile semiconductor memory device and data write method thereof |
IT1303204B1 (en) * | 1998-11-27 | 2000-10-30 | St Microelectronics Srl | HIGH-PRECISION NON-VOLATILE MEMORY CELLS PROGRAMMING METHOD, WITH OPTIMIZED PROGRAMMING SPEED. |
KR100301817B1 (en) * | 1999-06-29 | 2001-11-01 | 김영환 | Initial circuit of reference memory cell and method for initialing thereby |
US6151248A (en) | 1999-06-30 | 2000-11-21 | Sandisk Corporation | Dual floating gate EEPROM cell array with steering gates shared by adjacent cells |
JP2001067884A (en) | 1999-08-31 | 2001-03-16 | Hitachi Ltd | Nonvolatile semiconductor memory device |
JP3922516B2 (en) | 2000-09-28 | 2007-05-30 | 株式会社ルネサステクノロジ | Nonvolatile memory and writing method of nonvolatile memory |
JP3631463B2 (en) * | 2001-12-27 | 2005-03-23 | 株式会社東芝 | Nonvolatile semiconductor memory device |
US6424566B1 (en) | 2001-02-08 | 2002-07-23 | Advanced Micro Devices, Inc. | Program reconnaissance to eliminate variations in vt distributions of multi-level cell flash memory designs |
US6738289B2 (en) | 2001-02-26 | 2004-05-18 | Sandisk Corporation | Non-volatile memory with improved programming and method therefor |
US6532172B2 (en) | 2001-05-31 | 2003-03-11 | Sandisk Corporation | Steering gate and bit line segmentation in non-volatile memories |
US6522580B2 (en) | 2001-06-27 | 2003-02-18 | Sandisk Corporation | Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states |
US6597603B2 (en) * | 2001-11-06 | 2003-07-22 | Atmel Corporation | Dual mode high voltage power supply for providing increased speed in programming during testing of low voltage non-volatile memories |
US6529412B1 (en) | 2002-01-16 | 2003-03-04 | Advanced Micro Devices, Inc. | Source side sensing scheme for virtual ground read of flash eprom array with adjacent bit precharge |
US6977959B2 (en) * | 2003-01-17 | 2005-12-20 | Xilinx, Inc. | Clock and data recovery phase-locked loop |
US7068539B2 (en) * | 2004-01-27 | 2006-06-27 | Sandisk Corporation | Charge packet metering for coarse/fine programming of non-volatile memory |
US7139198B2 (en) * | 2004-01-27 | 2006-11-21 | Sandisk Corporation | Efficient verification for coarse/fine programming of non-volatile memory |
US7002843B2 (en) * | 2004-01-27 | 2006-02-21 | Sandisk Corporation | Variable current sinking for coarse/fine programming of non-volatile memory |
-
2004
- 2004-01-27 US US10/766,217 patent/US7139198B2/en active Active
-
2005
- 2005-01-14 EP EP05705707A patent/EP1714290B1/en not_active Not-in-force
- 2005-01-14 KR KR1020067017084A patent/KR100858745B1/en active IP Right Grant
- 2005-01-14 AT AT05705707T patent/ATE403933T1/en not_active IP Right Cessation
- 2005-01-14 CN CN2005800073707A patent/CN1930632B/en not_active Expired - Fee Related
- 2005-01-14 JP JP2006551168A patent/JP4510031B2/en not_active Expired - Fee Related
- 2005-01-14 WO PCT/US2005/001232 patent/WO2005073975A2/en active Application Filing
- 2005-01-14 DE DE602005008713T patent/DE602005008713D1/en active Active
- 2005-01-26 TW TW094102241A patent/TWI322432B/en not_active IP Right Cessation
-
2006
- 2006-10-18 US US11/550,502 patent/US7317638B2/en not_active Expired - Lifetime
- 2006-10-18 US US11/550,499 patent/US7518928B2/en not_active Expired - Lifetime
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5220531A (en) * | 1991-01-02 | 1993-06-15 | Information Storage Devices, Inc. | Source follower storage cell and improved method and apparatus for iterative write for integrated circuit analog signal recording and playback |
US20020024846A1 (en) * | 1996-09-30 | 2002-02-28 | Takayuki Kawahara | Semiconductor integrated circuit and data processing system |
US5926409A (en) * | 1997-09-05 | 1999-07-20 | Information Storage Devices, Inc. | Method and apparatus for an adaptive ramp amplitude controller in nonvolatile memory application |
US6301161B1 (en) * | 2000-04-25 | 2001-10-09 | Winbond Electronics Corporation | Programming flash memory analog storage using coarse-and-fine sequence |
EP1249842A1 (en) * | 2001-04-10 | 2002-10-16 | STMicroelectronics S.r.l. | Method for programming nonvolatile memory cells with program and verify algorithm using a staircase voltage with varying step amplitude |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7339834B2 (en) | 2005-06-03 | 2008-03-04 | Sandisk Corporation | Starting program voltage shift with cycling of non-volatile memory |
US7630254B2 (en) | 2005-06-03 | 2009-12-08 | Sandisk Corporation | Starting program voltage shift with cycling of non-volatile memory |
US7633812B2 (en) | 2005-06-03 | 2009-12-15 | Sandisk Corporation | Starting program voltage shift with cycling of non-volatile memory |
US8111554B2 (en) | 2005-06-03 | 2012-02-07 | Sandisk Technologies Inc. | Starting program voltage shift with cycling of non-volatile memory |
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 |
US7768834B2 (en) | 2006-12-27 | 2010-08-03 | Sandisk Corporation | Non-volatile storage system with initial programming voltage based on trial |
JP2010519673A (en) * | 2007-02-20 | 2010-06-03 | サンディスク コーポレイション | Dynamic verification based on threshold voltage classification |
US8125832B2 (en) | 2007-02-20 | 2012-02-28 | Sandisk Technologies Inc. | Variable initial program voltage magnitude for non-volatile storage |
US8395945B2 (en) | 2007-02-20 | 2013-03-12 | Sandisk Technologies Inc. | Variable initial program voltage magnitude for non-volatile storage |
JP2010530112A (en) * | 2007-06-15 | 2010-09-02 | マイクロン テクノロジー, インク. | Coarse programming in solid state memory |
JP2009009692A (en) * | 2007-06-28 | 2009-01-15 | Samsung Electronics Co Ltd | Nonvolatile semiconductor memory device and programming method thereof |
Also Published As
Publication number | Publication date |
---|---|
DE602005008713D1 (en) | 2008-09-18 |
US20070091685A1 (en) | 2007-04-26 |
TW200608408A (en) | 2006-03-01 |
TWI322432B (en) | 2010-03-21 |
US20070058436A1 (en) | 2007-03-15 |
US7518928B2 (en) | 2009-04-14 |
US7139198B2 (en) | 2006-11-21 |
US7317638B2 (en) | 2008-01-08 |
US20050162916A1 (en) | 2005-07-28 |
WO2005073975A3 (en) | 2005-10-06 |
JP4510031B2 (en) | 2010-07-21 |
EP1714290B1 (en) | 2008-08-06 |
ATE403933T1 (en) | 2008-08-15 |
EP1714290A2 (en) | 2006-10-25 |
KR100858745B1 (en) | 2008-09-17 |
CN1930632A (en) | 2007-03-14 |
KR20060133589A (en) | 2006-12-26 |
JP2007520845A (en) | 2007-07-26 |
CN1930632B (en) | 2010-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7447075B2 (en) | Charge packet metering for coarse/fine programming of non-volatile memory | |
US7139198B2 (en) | Efficient verification for coarse/fine programming of non-volatile memory | |
US7002843B2 (en) | Variable current sinking for coarse/fine programming of non-volatile memory | |
US7023733B2 (en) | Boosting to control programming of non-volatile memory | |
US7088621B2 (en) | Bitline governed approach for coarse/fine programming | |
US7508715B2 (en) | Coarse/fine program verification in non-volatile memory using different reference levels for improved sensing | |
US20040174748A1 (en) | Self boosting technique | |
US20090010068A1 (en) | Systems for Coarse/Fine Program Verification in Non-Volatile Memory Using Different Reference Levels for Improved Sensing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2006551168 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWW | Wipo information: withdrawn in national office |
Country of ref document: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2005705707 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020067017084 Country of ref document: KR |
|
WWE | Wipo information: entry into national phase |
Ref document number: 200580007370.7 Country of ref document: CN |
|
WWP | Wipo information: published in national office |
Ref document number: 2005705707 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 1020067017084 Country of ref document: KR |