WO2003041083A1 - Error management for writable tracking storage units storing reference values - Google Patents

Error management for writable tracking storage units storing reference values Download PDF

Info

Publication number
WO2003041083A1
WO2003041083A1 PCT/US2002/034942 US0234942W WO03041083A1 WO 2003041083 A1 WO2003041083 A1 WO 2003041083A1 US 0234942 W US0234942 W US 0234942W WO 03041083 A1 WO03041083 A1 WO 03041083A1
Authority
WO
WIPO (PCT)
Prior art keywords
levels
storage units
reference levels
determining
recited
Prior art date
Application number
PCT/US2002/034942
Other languages
French (fr)
Inventor
Geoffrey S. Gongwer
Shahzad B. Khalid
Daniel C. Guterman
Original Assignee
Sandisk 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 Sandisk Corporation filed Critical Sandisk Corporation
Priority to DE60224552T priority Critical patent/DE60224552T2/en
Priority to JP2003543031A priority patent/JP4398249B2/en
Priority to EP02773956A priority patent/EP1440447B1/en
Priority to KR1020047006361A priority patent/KR101009545B1/en
Priority to CN028216938A priority patent/CN1578988B/en
Publication of WO2003041083A1 publication Critical patent/WO2003041083A1/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5642Sensing or reading circuits; Data output 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/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/14Dummy cell management; Sense reference voltage generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Definitions

  • the invention relates to a memory system for non-volatile data storage and, more particularly, to a memory system that uses reference levels for reading data stored in a multi-state format.
  • Memory cards are commonly used to store digital data for use with various products (e.g., electronic products). Examples of memory cards are flash cards that use Flash type or EEPROM type memory cells to store the data. Flash cards have a relatively small form factor and have been used to store digital data for products such as cameras, hand-held computers, set-top boxes, hand-held or other small audio players/recorders (e.g., MP3 devices), and medical monitors. A major supplier of flash cards is SanDisk Corporation of Sunnyvale, CA.
  • Non-volatile memories are very popular and useful because they retain data even after being powered-off.
  • the charge retention of non-volatile memories is not perfect. Consequently, after programming a memory cell, the memory cell's voltage can drift up or down depending upon various influences such as applied bias voltages, electromagnetic fields generated in the memory device, and charge trapped in dielectrics of the memory device.
  • reference levels are needed to help distinguish between the states when reading data from the memory cells.
  • reference cells have been used within the memory device to store global reference voltages that can be programmed at the factory or written before or with the user cells.
  • threshold voltage /current distributions among written tracking storage units. The distributions can be due to variation in initial written threshold/current; voltage disturbs; physical variations which result in varied environmental sensitivity; and charge loss from built-in electric or magnetic fields. In any case, the result is an increased probability of error during read operations.
  • the invention relates to a memory system (e.g., memory card) having error management for stored levels (e.g., reference levels) used in discrimination of logic levels for data storage units providing data storage.
  • stored levels e.g., reference levels
  • the stored levels can be stored in predetermined storage units (e.g., writable tracking storage units) in the memory system.
  • the memory system is typically a nonvolatile memory product or device that provides binary or multi-state data storage.
  • the invention can be implemented in numerous ways.
  • the invention can be implemented as a system, device or method. Several embodiments of the invention are discussed below.
  • one embodiment of the invention includes at least the acts of: reading stored levels from a plurality of predetermined storage units; determining whether any of the stored levels are aberrant; correcting for at least one of the stored levels that the determining determines to be aberrant; and determining one or more discrimination levels based on the stored levels.
  • one embodiment of the invention includes at least the acts of: reading reference levels from a plurality of tracking storage units; evaluating a quality for each of the reference levels; determining whether the quality for any of the reference levels is unacceptable; correcting for at least one of the reference levels that the determining determines to be unacceptable; and determining discrimination levels for data storage units associated with the tracking storage units based on the reference levels.
  • one embodiment of the invention includes at least the acts of: substantially concurrently reading data levels from certain data storage units and reference levels from tracking storage units associated with the certain data storage units; computing a processed reference level from the reference levels; determining state discrimination levels based on the processed reference level; discriminating states of the data levels from the certain data storage units based on the state discrimination levels to acquire read data for a requestor; evaluating, substantially concurrently with the discriminating, quality of the reference levels; determining whether the quality of the reference levels is acceptable; directing the read data to the requestor when the determining determines that the quality of the reference levels is acceptable; and correcting for at least one of the reference levels when the determining determines that the quality of the reference levels is unacceptable.
  • another embodiment of the invention includes at least the acts of: substantially concurrently reading data levels from certain data storage units and reference levels from tracking storage units associated with the certain data storage units; computing a processed reference level from the reference levels; determining state discrimination levels based on the processed reference level; discriminating states of the data levels from the certain data storage units based on the state discrimination levels to acquire read data for a requestor; evaluating quality of the reference levels; determining whether the quality of the reference levels is acceptable; sending the read data to the requestor when the determining determines that the quality of the reference levels is acceptable; halting the sending when the determining determines that the quality of the reference levels is unacceptable; and correcting for at least one of the reference levels when the determining determines that the quality of the reference levels is unacceptable.
  • another embodiment of the invention includes at least the acts of: substantially concurrently reading data levels from certain data storage units and reference levels from tracking storage units associated with the certain data storage units; computing a processed reference level from the reference levels; determining state discrimination levels based on the processed reference level; discriminating states of the data levels from the certain data storage units based on the state discrimination levels to acquire read data for a requestor; evaluating quality of the reference levels; determining whether the quality of the reference levels is acceptable; sending the read data to the requestor when said determining determines that the quality of the reference levels is acceptable; canceling the read data that has been received by the requestor when said determining determines that the quality of the reference levels is unacceptable; and correcting for at least one of the reference levels when said determining determines that the quality of the reference levels is unacceptable.
  • another embodiment of the invention includes at least the acts of: initiating a count; reading data levels from certain data storage units and reference levels from tracking storage units associated with the certain data storage units; computing a processed reference level from the reference levels; determining state discrimination levels based on the processed reference level; discriminating states of the data levels from the certain data storage units based on the state discrimination levels to acquire read data for a requestor; evaluating quality of the reference levels; determining whether the quality of the reference levels is acceptable; comparing the count with a count limit; correcting for at least one of the reference levels when it is determined that the quality of the reference levels is unacceptable and that the count does not exceed the count limit; updating the count; repeating at least the computing through comparing acts one or more times when it is determined that the quality of the reference levels is unacceptable and that the count does not exceed the count limit; and directing the read data to the requestor when it is determined that the quality of the reference levels is acceptable or that the
  • one embodiment of the invention includes at least: a plurality of data storage units that provide multi-state data storage in a non-volatile manner, a plurality of tracking storage units that provide storage for reference levels in a non-volatile manner, a reference level error manager that evaluates quality of the reference levels, and a memory controller that controls read, write and erase operations with respect to the data storage units and the tracking storage units.
  • the memory controller uses state discrimination levels to determine the state of the data storage elements being read.
  • the memory system may also include state discrimination level circuitry to determine the state discrimination levels for use by the memory controller based on a plurality of the reference levels.
  • FIG. 1 A is a functional block diagram of a memory system according to one embodiment of the invention
  • FIG. 1B is a flow diagram of discrimination level processing according to one embodiment of the invention
  • FIG. 2A is a flow diagram of read request processing according to one embodiment of the invention.
  • FIG. 2B is a flow diagram of read request processing according to another embodiment of the invention.
  • FIG. 2C is a flow diagram of read request processing 270 according to still another embodiment of the invention.
  • FIG. 3 is a flow diagram of read request processing according to another embodiment of the invention.
  • the invention relates to a memory system (e.g., memory card) having error management for stored levels (e.g., reference levels) used in discrimination of logic levels for data storage units providing data storage.
  • stored levels e.g., reference levels
  • the stored levels can be stored in predetermined storage units (e.g., writable tracking storage units) in the memory system.
  • the memory system is typically a non-volatile memory product or device that provides binary multi-state data storage.
  • the memory system can, for example, be associated with a memory card (such as a plug-in card), a memory stick, or some other semiconductor memory product.
  • memory cards include PC Card (formerly PCMCIA device), Flash Card, Flash Disk, Multimedia Card, and ATA Card.
  • FIG. 1A is a functional block diagram of a memory system 10 according to one embodiment of the invention.
  • the memory system 10 provides high density data storage using multi-state storage.
  • the memory system 10 includes a memory controller 12 that controls operations (e.g., read, erase, program) for the memory system 10 and communicates with a host over a data bus 13.
  • the memory system 10 also includes multi-state data storage units 14 (e.g., memory cells) that store data for the memory system 10 in a non-volatile fashion.
  • the multi-state data storage units 14 provide high density storage for data because each data storage unit (data storage element) is capable of storing more than two states. In other words, each data storage unit (e.g., memory cell) is capable of storing more than one bit of data.
  • the multi-state data storage units 14 are typically arranged in blocks, which represent the smallest write unit in one embodiment.
  • the memory system 10 also includes tracking storage units 16 that store reference levels in a non-volatile fashion, a reference level error manager 18, and a state discrimination level circuitry 20.
  • the tracking storage units 16 are associated with the multi-state data storage units 14. More particularly, a plurality of the tracking storage units 16 are provided for and associated with each block of memory in the multi-state data storage units 14.
  • the tracking storage units 16 associated with a block of data being written are re-programmed with reference levels each time the multi-state data storage units 14 associated with the block are written.
  • the tracking storage units 16 are programmed with fixed, global reference levels at the same time that the multi-state data storage units 14 are re-programmed with the reference levels.
  • the stored reference levels in the tracking storage units 16 are used to set threshold levels (e.g., voltage thresholds) used in state (logic level) discrimination by both the data storage units 14 and the tracking storage units 16.
  • the reference levels stored to the tracking storage units 16 are read every time the data storage units 14 are read, and these reference levels (e.g., threshold voltages) are utilized to determine the stored logic levels of the data storage units 14.
  • non-volatile memory cells have charge retention characteristics that change as a function of the number of program/erase cycles performed.
  • the tracking storage units 16 develop the same history, and therefore the same charge retention characteristics as the associated data storage units 14.
  • the cycling dependence on charge retention is accounted for, allowing the effective threshold margin for discriminating the logic levels stored in the data storage units 14 to be maintained. Consequently, degradation of effective threshold margin of the data storage units 14 due to charge loss is reduced. Accordingly, determination of the stored logic levels for the data storage units 14 can be reliably performed over the life of the memory device.
  • a plurality of the tracking storage units 16 are written to predetermined states each time the associated data storage units 14 are written.
  • the reference levels are read from the plurality of the tracking storage units 16 associated therewith and used by the state discrimination level circuitry 20 to determine discrimination points (state discrimination levels).
  • the memory controller 12 or the data storage units themselves) can determine the stored logic levels within the data storage units 14. As the discrimination points are being determined or as the logic levels stored in the data storage units 14 are being determined using the discrimination points, the quality of the reference levels (voltage or current) can be examined by the reference level error manager 18.
  • any of the reference levels from the tracking storage units 14 that are determined to have a reference level with an unacceptable quality can be corrected (e.g., discarded or replaced). Thereafter, new discrimination points are determined by the state discrimination level circuitry 20 utilizing the reference levels from the tracking storage units 14 with acceptable quality. The new discrimination points are then used to extract the storage logic levels from the data storage units 16.
  • FIG. 1B is a flow diagram of discrimination level processing 100 according to one embodiment of the invention.
  • the discrimination level processing 100 is, for example, performed by a memory system providing multi-state storage (e.g., memory system 10).
  • each data storage unit data storage element
  • each data storage unit e.g., memory cell
  • the data storage units can also be referred to as multi-state data storage units.
  • the discrimination level processing 100 initially reads (102) reference levels from tracking storage units.
  • the tracking storage units are provided in the memory system to provide reference levels which are used in determining discrimination levels that are, in turn, used to discriminate between the various states supported by the multi-state storage.
  • the quality of the reference levels is evaluated (104).
  • the quality of the reference levels is a measurement of how reliable the reference levels are since these reference levels can degrade or be corrupted by a variety of influences.
  • a decision (106) is made to determine whether the quality of the reference levels is acceptable.
  • the discrimination level processing 100 operates to correct (110) for the reference levels having unacceptable quality.
  • the correction (110) can operate to alter or eliminate one or more of the reference levels having an unacceptable quality.
  • the reference levels are able to be utilized by the memory system in its operation. Namely, after the decision (106) determines that the quality of the reference levels is acceptable (or after correction (110) when the quality of the reference levels was unacceptable), state discrimination levels are determined (108).
  • the reference levels obtained from the tracking storage units are used to determine the state discrimination levels.
  • These state discrimination levels are then utilized by the memory system to distinguish between the different states that can be stored to the multi-state data storage units.
  • Each data storage unit (e.g., memory cell) of the memory system can store a charge amount that corresponds to one of more than two states.
  • the multi-state data storage units might support 16 states or levels of storage in a single data storage unit, which is equivalent to 4 bits of data.
  • the state discrimination levels can provide current or voltage levels that allow the memory system or other circuitry to determine the particular state in which a given data storage unit resides. Following the operation (108), the discrimination level processing 100 is complete and ends.
  • FIG. 2A is a flow diagram of read request processing 200 according to one embodiment of the invention.
  • the read request processing 200 is, for example, performed by a memory system having multi-state data storage units when a requestor (e.g., host) has requested to read data from storage locations within the memory system.
  • a requestor e.g., host
  • the read request processing 200 initially reads (202) reference levels from tracking storage units as well as data levels from data storage units.
  • the reference levels are read from the tracking storage units that are associated with the data storage units that hold the data levels that are being read.
  • the reference levels are read at substantially the same time as the data levels are read.
  • the reference levels can pertain to one or more levels.
  • a plurality of tracking storage units store the same reference level for improved reliability.
  • two or more (e.g., 16) tracking storage units are used to store the same reference level.
  • the tracking storage units are written, erased and read when their associated data storage units are written, erased or read and thus "track" the use of the associated data storage units.
  • an average reference level is computed (204).
  • the reference levels that are read (202) can be averaged to produce the average reference level.
  • state discrimination levels are determined (206) based on the average reference level.
  • the state discrimination levels are utilized by the memory system to distinguish between the various states supported by the multi-state data storage units.
  • states of the data storage units can be discriminated (208) using the data levels from the data storage units and the state discrimination levels from the tracking storage units to acquire read data.
  • the previously read data levels (operation 202) can be examined to determine the state for the data storage units by use of the state discrimination levels.
  • the discrimination (208) of the states in effect, allows the memory system to acquire the read data that is to be read by the read request processing 200.
  • the read request processing 200 also evaluates (210) a quality of the reference levels.
  • the evaluation of the quality of the reference levels is typically individually performed on each of the reference levels. However, in other embodiments, the quality of the reference levels could instead be performed on two or more of the reference levels as a group.
  • a decision (212) determines whether the quality of the reference levels is acceptable. When the decision (212) determines that the quality is not acceptable, then the read request processing 200 operates to correct (214) for the reference levels with the poor quality. Here, the correction (214) can operate to eliminate, replace or alter in some other way one or more of the reference levels having a poor quality. Following the operation 214, the read request processing 200 returns to repeat the operation 204 and subsequent operations so that the state discrimination levels can be re- determined and utilized based upon the reference levels following the correction (214). Alternatively, when the decision (212) determines that the quality is acceptable, then the read data can be sent (216) to the requestor for the read operation. Typically, the requestor is a host device that utilizes the memory system. Following the operation 216, the read request processing 200 is complete and ends.
  • the evaluation (210) of the quality of the reference levels is able to be performed without a performance penalty to the read request processing 200 whenever the initially read tracking cell quality is deemed acceptable.
  • the reference levels will, in most cases, have an acceptable quality as initially read.
  • the evaluation (210) of the quality of the reference levels will not have a significant impact on the performance (namely, read performance) of the memory system.
  • a performance impact will be imposed because the reference levels must be corrected (214) and then operations 204-208 must be performed again. However, because of its rarity, the performance impact is minimized.
  • FIG. 2B is a flow diagram of read request processing 250 according to another embodiment of the invention.
  • the read request processing 250 is generally similar to the read request processing 200 illustrated in FIG. 2A with respect to various operations, namely, operations 202-210.
  • the read request processing 250 pertains to another embodiment in which the discrimination (208) completes before the evaluation (210) completes.
  • the read data can begin being sent to the requestor while the evaluation (210) remains ongoing.
  • the evaluation (210) can also be performed concurrently with at least a portion of the sending of the read data to the requestor. More particularly, following the discrimination (208) of the states of the data storage units, a decision (252) determines whether the quality of reference levels is acceptable.
  • the read request processing 250 corrects (256) for the reference levels with poor quality. Again, the correction (256) can pertain to adjusting or eliminating one or more of the reference levels having the poor quality. Following the operation 256, the read request processing 250 returns to repeat the decision (204) and subsequent operations so that the reference levels, as corrected, can be utilized in re-determining the state discrimination levels and thus the read data from the multi-state data storage units.
  • the read data can begin to be sent (258) to the requestor.
  • the states of the multi-state data storage units have been established at operation 208 and thus the sending of the read data can proceed.
  • the decision (252) is performed asynchronously with the sending (258) of the data.
  • a decision (260) determines whether the sending of the read data is completed.
  • the read request processing 250 returns to repeat the decision (252) and subsequent operations so that the sending (258) of the read data can continue until either cancelled at operation 254 (due to unacceptable quality of the reference levels) or completed at the decision (260). Once the sending of the read data has been completed (without being cancelled), the read request processing 250 is complete and ends as the read request has been fully processed.
  • FIG. 2C is a flow diagram of read request processing 270 according to still another embodiment of the invention.
  • the read request processing 270 is generally similar to the read request processing 200 illustrated in FIG. 2A with respect to various operations, namely, operations 202-216.
  • the read request processing 270 further includes a loop control feature.
  • the loop control feature controls the number of times operations 204-214 can be repeated. In other words, for performance reasons, it is desirable to limit the amount of time that can be spent in attempting to achieve sufficient quality.
  • a count is initialized 272 to a predetermined value (e.g., "0").
  • a decision (274) determines whether a count (i.e., loop count) is greater than a loop limit (e.g., "1"). When the count is not greater than the loop limit, then operation 212 can be performed. When the decision (212) determines that the quality is not acceptable, then operation 214 can be performed. Following operation 214, before returning to loop back to operation 204, the count is incremented (276). Accordingly, the loop limit can cause the read request processing 270 to send (216) the read data to the requestor (or otherwise quit the read request processing 270) even if the quality is not yet deemed acceptable.
  • the loop control feature can also be used with the read request processing 250 of FIG. 2B.
  • the read request processing 200, 250 and 270 illustrated in FIGs. 2A, 2B and 2C indicate the computation of an average reference level at operation 204, such computation is not restricted to averaging.
  • the reference levels can be mathematically processed (e.g., statistically processed) in any of a number of ways, such as through computation of a minimum, maximum, Root-Mean-Square (RMS), peak, average, median, modulus, and/or linear regression.
  • RMS Root-Mean-Square
  • the state discrimination levels are thereafter determined based on the processed reference level.
  • the state discrimination levels are utilized by the memory system to distinguish between the various states supported by the multi-state data storage units.
  • the read request processing 200, 250 and 270 illustrated in FIGs. 2A, 2B and 2C respectively, generally refer to the use of a single reference level obtained from a plurality of reference levels that, in effect, store the same level.
  • the read request processing may utilize two or more reference levels to determine a plurality of the state discrimination levels utilized by the multi-state memory.
  • a plurality of tracking storage units that store the same reference level are used.
  • a first plurality of the tracking storing units would correspond to a first reference level and a second plurality of tracking storage units would pertain to a second reference level, and so on, if more average reference levels than two are utilized.
  • the determination of the state discrimination levels can then utilize the one or more reference levels.
  • the entire population of tracking storage units set to span the range of reference levels can be statistically processed as an ensemble, for example, using linear regression methodology.
  • a memory system can also use Error Correction Codes (ECC) when reading data.
  • ECC Error Correction Codes
  • ECC is well known and often used to enable reading data with increased reliability.
  • ECC is used to minimize how often the quality evaluation and/or correction of reference levels needs to be performed. Since the quality evaluation and/or correction processing requires computational resources and time, minimizing their utilization lessens performance degradation caused by said processing.
  • FIG. 3 is a flow diagram of read request processing 300 according to another embodiment of the invention.
  • the read request processing 300 is, for example, performed by a memory system having multi-state data storage units when a requestor (e.g., host) has requested to read data from storage locations within the memory system.
  • a requestor e.g., host
  • the read request processing 300 initially reads (202) reference levels from tracking storage units as well as data levels from data storage units.
  • the reference levels are read from the tracking storage units that are associated with the data storage units that hold the data levels that are being read.
  • the reference levels are read at substantially the same time as the data levels are read.
  • the reference levels can pertain to one or more levels.
  • a plurality of tracking storage units store the same reference level for improved reliability.
  • the tracking storage units are written, erased and read when their associated data storage units are written, erased or read and thus "track" the use of the associated data storage units.
  • the tracking storage units develop the same history and therefore the same charge retention characteristics as the data storage units.
  • the tracking storage units experience the same operational conditions, such as voltage and temperature, which can affect state sensing. Consequently, reliability of discrimination of the data levels stored in the data storage units is increased.
  • a processed reference level is computed (304).
  • the reference levels that are read (302) are processed to produce the processed reference level.
  • the computation (304) to the reference levels in producing the processed reference level can be achieved in any of a number of ways, such as, through computation of a minimum, maximum, Root-Mean-Square (RMS), peak, average, median, modulus, and/or linear regression.
  • state discrimination levels are determined (306) based on the processed reference level. As noted above, the state discrimination levels are utilized by the memory system to distinguish between the various states supported by the multi-state data storage units.
  • the read data can be determined (308) from the data levels using the state discrimination levels and error correction codes.
  • the previously read data levels (operation 302) are examined to determine the state for the data storage units by use of the state discrimination levels.
  • ECC that is also provided by the memory system is used to more reliability determine (308) the read data.
  • a decision (310) determines whether a data error is identified in determining (308) the read data. Typically, when the ECC is not able to reliably establish the read data, the ECC indicates that a data error exists. When the decision (310) determines that there is not a data error, then the read data is sent (312) to the requestor. On the other hand, when the decision (310) determines that a data error exists, then quality evaluation and/or correction to the reference levels can be performed in an effort to overcome the data error. More particularly, when the decision (310) determines that a data error exists, the quality of the reference levels is evaluated (314). In one embodiment, the evaluation of the quality of the reference levels is typically individually performed on each of the reference levels.
  • the quality of the reference levels could instead be performed on two or more of the reference levels as a group.
  • a decision (316) determines whether the quality of the reference levels is acceptable. When the decision (316) determines that the quality is not acceptable, then the read request processing 300 operates to correct (318) the reference levels with poor quality. Here, the correction (318) can operate to alter or eliminate one or more of the reference levels having a poor quality. Following the operation 318, the read request processing 300 returns to repeat the operation 304 and subsequent operations so that the state discrimination levels can be re-determined and utilized to re-determine the read data based upon the reference levels following the correction (318).
  • the read data is erroneous and thus a data read error is sent (320) to the requestor.
  • the requestor is a host device that utilizes the memory system.
  • the read request processing 300 is complete and ends.
  • the loop control feature shown in FIG. 2C can also be used with the read request processing 300.
  • the operations 314-318 of the read request processing 300 are only performed when the ECC signals a failure in reading the data.
  • the operations 314-318 are only performed in rare circumstances. It is then only in rare circumstance that the read processing performance is slowed or degraded due to performance of quality evaluation and/or correction processing of operations 314- 318.
  • Multi-state devices do, however, provide greater storage density than binary storage devices.
  • the invention can further pertain to an electronic system that includes a memory system as discussed above.
  • Memory systems i.e., memory cards
  • the memory systems according to the invention can have a relatively small form factor and be used to store digital data for electronic products such as cameras, hand-held or notebook computers, network cards, network appliances, set-top boxes, hand-held or other small audio players/recorders (e.g., MP3 devices), and medical monitors.
  • One advantage of the invention is that error management for reference levels is provided. Another advantage of the invention is that error management for reference levels can be performed without significant performance penalty. Still another advantage of the invention is that reliable, high performance memory systems can be obtained.

Abstract

A memory system (e.g., memory card) having error management for stored levels (e.g., reference levels) used in discrimination of logic levels for data storage units providing data storage is disclosed. The stored levels can be stored in predetermined storage units (e.g., writable tracking storage units) in the memory system. The memory system is typically a non-volatile memory product or device that provides binary or multi-state data storage.

Description

ERROR MANAGEMENT FOR WRITABLE TRACKING STORAGE UNITS STORING REFERENCE VALUES
BACKGROUND OF THE INVENTION
Field of the Invention
[0001] The invention relates to a memory system for non-volatile data storage and, more particularly, to a memory system that uses reference levels for reading data stored in a multi-state format.
Description of the Related Art
[0002] Memory cards are commonly used to store digital data for use with various products (e.g., electronic products). Examples of memory cards are flash cards that use Flash type or EEPROM type memory cells to store the data. Flash cards have a relatively small form factor and have been used to store digital data for products such as cameras, hand-held computers, set-top boxes, hand-held or other small audio players/recorders (e.g., MP3 devices), and medical monitors. A major supplier of flash cards is SanDisk Corporation of Sunnyvale, CA.
[0003] These memory cards are increasingly called on to store greater and greater amounts of data. Consequently, individual storage elements within these memory cards have been developed to support multiple levels so as to effectively store multiple bits of data. Traditional storage elements store only two states, while multiple level or high density storage elements store more than two states (e.g., four states). For example, individual storage elements in some of today's multiple-level memory cards can store four (4) levels and thus effectively enable a single storage element to act as two (2) bits of data. While these multiple levels allow a memory array to store substantially greater amounts of data without a corresponding increase in size or cost, it is more difficult to read stored data out of the memory array.
[0004] Non-volatile memories are very popular and useful because they retain data even after being powered-off. However, the charge retention of non-volatile memories is not perfect. Consequently, after programming a memory cell, the memory cell's voltage can drift up or down depending upon various influences such as applied bias voltages, electromagnetic fields generated in the memory device, and charge trapped in dielectrics of the memory device.
[0005] When non-volatile memories support multi-states in each storage element, referred to as a multi-state memory, reference levels are needed to help distinguish between the states when reading data from the memory cells. Conventionally, reference cells have been used within the memory device to store global reference voltages that can be programmed at the factory or written before or with the user cells. However, the ability to retrieve these reference voltages in a precise manner is difficult due to threshold voltage /current distributions among written tracking storage units. The distributions can be due to variation in initial written threshold/current; voltage disturbs; physical variations which result in varied environmental sensitivity; and charge loss from built-in electric or magnetic fields. In any case, the result is an increased probability of error during read operations.
[0006] Thus, there is a need for improved approaches to reliably store and acquire reference levels so that states (logic levels) of multi-state memory cells can be reliably retrieved over the life of the memory device.
SUMMARY OF THE INVENTION
[0007] Broadly speaking, the invention relates to a memory system (e.g., memory card) having error management for stored levels (e.g., reference levels) used in discrimination of logic levels for data storage units providing data storage. The stored levels can be stored in predetermined storage units (e.g., writable tracking storage units) in the memory system. The memory system is typically a nonvolatile memory product or device that provides binary or multi-state data storage.
[0008] The invention can be implemented in numerous ways. For example, the invention can be implemented as a system, device or method. Several embodiments of the invention are discussed below.
[0009] As a method for determining discrimination levels for states of storage units of a memory product, one embodiment of the invention includes at least the acts of: reading stored levels from a plurality of predetermined storage units; determining whether any of the stored levels are aberrant; correcting for at least one of the stored levels that the determining determines to be aberrant; and determining one or more discrimination levels based on the stored levels.
[0010] As a method for managing errors associated with tracking storage units used with data storage units in a memory device, one embodiment of the invention includes at least the acts of: reading reference levels from a plurality of tracking storage units; evaluating a quality for each of the reference levels; determining whether the quality for any of the reference levels is unacceptable; correcting for at least one of the reference levels that the determining determines to be unacceptable; and determining discrimination levels for data storage units associated with the tracking storage units based on the reference levels.
[0011] As a method for reading data from a memory device having data storage units and associated tracking storage units, one embodiment of the invention includes at least the acts of: substantially concurrently reading data levels from certain data storage units and reference levels from tracking storage units associated with the certain data storage units; computing a processed reference level from the reference levels; determining state discrimination levels based on the processed reference level; discriminating states of the data levels from the certain data storage units based on the state discrimination levels to acquire read data for a requestor; evaluating, substantially concurrently with the discriminating, quality of the reference levels; determining whether the quality of the reference levels is acceptable; directing the read data to the requestor when the determining determines that the quality of the reference levels is acceptable; and correcting for at least one of the reference levels when the determining determines that the quality of the reference levels is unacceptable.
[0012] As a method for reading data from a memory device having data storage units and associated tracking storage units, another embodiment of the invention includes at least the acts of: substantially concurrently reading data levels from certain data storage units and reference levels from tracking storage units associated with the certain data storage units; computing a processed reference level from the reference levels; determining state discrimination levels based on the processed reference level; discriminating states of the data levels from the certain data storage units based on the state discrimination levels to acquire read data for a requestor; evaluating quality of the reference levels; determining whether the quality of the reference levels is acceptable; sending the read data to the requestor when the determining determines that the quality of the reference levels is acceptable; halting the sending when the determining determines that the quality of the reference levels is unacceptable; and correcting for at least one of the reference levels when the determining determines that the quality of the reference levels is unacceptable.
[0013] As a method for reading data from a memory device having data storage units and associated tracking storage units, another embodiment of the invention includes at least the acts of: substantially concurrently reading data levels from certain data storage units and reference levels from tracking storage units associated with the certain data storage units; computing a processed reference level from the reference levels; determining state discrimination levels based on the processed reference level; discriminating states of the data levels from the certain data storage units based on the state discrimination levels to acquire read data for a requestor; evaluating quality of the reference levels; determining whether the quality of the reference levels is acceptable; sending the read data to the requestor when said determining determines that the quality of the reference levels is acceptable; canceling the read data that has been received by the requestor when said determining determines that the quality of the reference levels is unacceptable; and correcting for at least one of the reference levels when said determining determines that the quality of the reference levels is unacceptable.
[0014] As a method for reading data from a memory device having data storage units and associated tracking storage units, another embodiment of the invention includes at least the acts of: initiating a count; reading data levels from certain data storage units and reference levels from tracking storage units associated with the certain data storage units; computing a processed reference level from the reference levels; determining state discrimination levels based on the processed reference level; discriminating states of the data levels from the certain data storage units based on the state discrimination levels to acquire read data for a requestor; evaluating quality of the reference levels; determining whether the quality of the reference levels is acceptable; comparing the count with a count limit; correcting for at least one of the reference levels when it is determined that the quality of the reference levels is unacceptable and that the count does not exceed the count limit; updating the count; repeating at least the computing through comparing acts one or more times when it is determined that the quality of the reference levels is unacceptable and that the count does not exceed the count limit; and directing the read data to the requestor when it is determined that the quality of the reference levels is acceptable or that the count does exceed the count limit.
[0015] As a memory system, one embodiment of the invention includes at least: a plurality of data storage units that provide multi-state data storage in a non-volatile manner, a plurality of tracking storage units that provide storage for reference levels in a non-volatile manner, a reference level error manager that evaluates quality of the reference levels, and a memory controller that controls read, write and erase operations with respect to the data storage units and the tracking storage units. The memory controller uses state discrimination levels to determine the state of the data storage elements being read. The memory system may also include state discrimination level circuitry to determine the state discrimination levels for use by the memory controller based on a plurality of the reference levels.
[0016] Other aspects and advantages of the invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings which illustrate, by way of example, the principles of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements, and in which:
FIG. 1 A is a functional block diagram of a memory system according to one embodiment of the invention; FIG. 1B is a flow diagram of discrimination level processing according to one embodiment of the invention;
FIG. 2A is a flow diagram of read request processing according to one embodiment of the invention;
FIG. 2B is a flow diagram of read request processing according to another embodiment of the invention;
FIG. 2C is a flow diagram of read request processing 270 according to still another embodiment of the invention; and
FIG. 3 is a flow diagram of read request processing according to another embodiment of the invention.
DETAILED DESCRIPTION OF THE INVENTION
[0018] The invention relates to a memory system (e.g., memory card) having error management for stored levels (e.g., reference levels) used in discrimination of logic levels for data storage units providing data storage. The stored levels can be stored in predetermined storage units (e.g., writable tracking storage units) in the memory system. The memory system is typically a non-volatile memory product or device that provides binary multi-state data storage.
[0019] The memory system can, for example, be associated with a memory card (such as a plug-in card), a memory stick, or some other semiconductor memory product. Examples of memory cards include PC Card (formerly PCMCIA device), Flash Card, Flash Disk, Multimedia Card, and ATA Card.
[0020] Embodiments of this aspect of the invention are discussed below with reference to FIGs. 1A through 3. However, those skilled in the art will readily appreciate that the detailed description given herein with respect to these figures is for explanatory purposes as the invention extends beyond these limited embodiments.
[0021] FIG. 1A is a functional block diagram of a memory system 10 according to one embodiment of the invention. The memory system 10 provides high density data storage using multi-state storage. The memory system 10 includes a memory controller 12 that controls operations (e.g., read, erase, program) for the memory system 10 and communicates with a host over a data bus 13. The memory system 10 also includes multi-state data storage units 14 (e.g., memory cells) that store data for the memory system 10 in a non-volatile fashion. The multi-state data storage units 14 provide high density storage for data because each data storage unit (data storage element) is capable of storing more than two states. In other words, each data storage unit (e.g., memory cell) is capable of storing more than one bit of data. The multi-state data storage units 14 are typically arranged in blocks, which represent the smallest write unit in one embodiment.
[0022] The memory system 10 also includes tracking storage units 16 that store reference levels in a non-volatile fashion, a reference level error manager 18, and a state discrimination level circuitry 20. The tracking storage units 16 are associated with the multi-state data storage units 14. More particularly, a plurality of the tracking storage units 16 are provided for and associated with each block of memory in the multi-state data storage units 14. The tracking storage units 16 associated with a block of data being written are re-programmed with reference levels each time the multi-state data storage units 14 associated with the block are written. Typically, the tracking storage units 16 are programmed with fixed, global reference levels at the same time that the multi-state data storage units 14 are re-programmed with the reference levels. The stored reference levels in the tracking storage units 16 are used to set threshold levels (e.g., voltage thresholds) used in state (logic level) discrimination by both the data storage units 14 and the tracking storage units 16. The reference levels stored to the tracking storage units 16 are read every time the data storage units 14 are read, and these reference levels (e.g., threshold voltages) are utilized to determine the stored logic levels of the data storage units 14.
[0023] It is known that non-volatile memory cells have charge retention characteristics that change as a function of the number of program/erase cycles performed. By re-programming the tracking storage units 16 each time the associated data storage units 14 are programmed, the tracking storage units 16 develop the same history, and therefore the same charge retention characteristics as the associated data storage units 14. In other words, by having the tracking storage units 16 erased and re-programmed the same number of times as the corresponding data storage units 14, the cycling dependence on charge retention is accounted for, allowing the effective threshold margin for discriminating the logic levels stored in the data storage units 14 to be maintained. Consequently, degradation of effective threshold margin of the data storage units 14 due to charge loss is reduced. Accordingly, determination of the stored logic levels for the data storage units 14 can be reliably performed over the life of the memory device.
[0024] According to one embodiment of the invention, a plurality of the tracking storage units 16 are written to predetermined states each time the associated data storage units 14 are written. When the associated data storage units 14 are to be read, the reference levels are read from the plurality of the tracking storage units 16 associated therewith and used by the state discrimination level circuitry 20 to determine discrimination points (state discrimination levels). Once the discrimination points are determined, the memory controller 12 (or the data storage units themselves) can determine the stored logic levels within the data storage units 14. As the discrimination points are being determined or as the logic levels stored in the data storage units 14 are being determined using the discrimination points, the quality of the reference levels (voltage or current) can be examined by the reference level error manager 18. Any of the reference levels from the tracking storage units 14 that are determined to have a reference level with an unacceptable quality can be corrected (e.g., discarded or replaced). Thereafter, new discrimination points are determined by the state discrimination level circuitry 20 utilizing the reference levels from the tracking storage units 14 with acceptable quality. The new discrimination points are then used to extract the storage logic levels from the data storage units 16.
[0025] Although the reference level error manager 18 and the state discrimination level circuitry 20 are shown as separate components, the circuitry for these components can be combined together or can be combined into the memory controller 12. In general, the memory system 10 provides high density, nonvolatile data storage and can be configured in a variety of ways. For example, the memory system 10 can be formed as a memory card (such as a plug-in card), a memory stick, or some other semiconductor memory product. [0026] FIG. 1B is a flow diagram of discrimination level processing 100 according to one embodiment of the invention. The discrimination level processing 100 is, for example, performed by a memory system providing multi-state storage (e.g., memory system 10). With multi-state storage, higher density storage capacity is available for data because each data storage unit (data storage element) is capable of storing more than two states. In other words, each data storage unit (e.g., memory cell) is capable of storing more than one bit of data. Hence, the data storage units can also be referred to as multi-state data storage units.
[0027] The discrimination level processing 100 initially reads (102) reference levels from tracking storage units. The tracking storage units are provided in the memory system to provide reference levels which are used in determining discrimination levels that are, in turn, used to discriminate between the various states supported by the multi-state storage. After the reference levels are read (102) from the tracking storage units, the quality of the reference levels is evaluated (104). Here, the quality of the reference levels is a measurement of how reliable the reference levels are since these reference levels can degrade or be corrupted by a variety of influences.
[0028] Next, a decision (106) is made to determine whether the quality of the reference levels is acceptable. When the decision (106) determines that the quality of the reference levels is not acceptable, then the discrimination level processing 100 operates to correct (110) for the reference levels having unacceptable quality. In one embodiment, the correction (110) can operate to alter or eliminate one or more of the reference levels having an unacceptable quality.
[0029] On the other hand, when the decision (106) determines that the quality of the reference levels is acceptable (or following correction (110) to reference levels with unacceptable quality), then the reference levels are able to be utilized by the memory system in its operation. Namely, after the decision (106) determines that the quality of the reference levels is acceptable (or after correction (110) when the quality of the reference levels was unacceptable), state discrimination levels are determined (108). Here, the reference levels obtained from the tracking storage units are used to determine the state discrimination levels. These state discrimination levels are then utilized by the memory system to distinguish between the different states that can be stored to the multi-state data storage units. Each data storage unit (e.g., memory cell) of the memory system can store a charge amount that corresponds to one of more than two states. For example, the multi-state data storage units might support 16 states or levels of storage in a single data storage unit, which is equivalent to 4 bits of data. Hence, the state discrimination levels can provide current or voltage levels that allow the memory system or other circuitry to determine the particular state in which a given data storage unit resides. Following the operation (108), the discrimination level processing 100 is complete and ends.
[0030] FIG. 2A is a flow diagram of read request processing 200 according to one embodiment of the invention. The read request processing 200 is, for example, performed by a memory system having multi-state data storage units when a requestor (e.g., host) has requested to read data from storage locations within the memory system.
[0031] The read request processing 200 initially reads (202) reference levels from tracking storage units as well as data levels from data storage units. Here, the reference levels are read from the tracking storage units that are associated with the data storage units that hold the data levels that are being read. In addition, the reference levels are read at substantially the same time as the data levels are read. The reference levels can pertain to one or more levels. In one embodiment, a plurality of tracking storage units store the same reference level for improved reliability. In one implementation, for example, two or more (e.g., 16) tracking storage units are used to store the same reference level. The tracking storage units are written, erased and read when their associated data storage units are written, erased or read and thus "track" the use of the associated data storage units. As a result, the tracking storage units develop the same history and therefore the same charge retention characteristics as the data storage units. In addition, the tracking storage units experience the same operational conditions such as voltage and temperature which can affect state sensing. Consequently, discrimination of the data levels stored in the data storage units is made more reliable. [0032] Next, an average reference level is computed (204). Here, the reference levels that are read (202) can be averaged to produce the average reference level. After the average reference level is computed (204), state discrimination levels are determined (206) based on the average reference level. As noted above, the state discrimination levels are utilized by the memory system to distinguish between the various states supported by the multi-state data storage units.
[0033] Once the state discrimination levels have been determined (206), states of the data storage units can be discriminated (208) using the data levels from the data storage units and the state discrimination levels from the tracking storage units to acquire read data. Here, the previously read data levels (operation 202) can be examined to determine the state for the data storage units by use of the state discrimination levels. The discrimination (208) of the states, in effect, allows the memory system to acquire the read data that is to be read by the read request processing 200. Substantially concurrent with the discrimination (208), the read request processing 200 also evaluates (210) a quality of the reference levels. In one embodiment, the evaluation of the quality of the reference levels is typically individually performed on each of the reference levels. However, in other embodiments, the quality of the reference levels could instead be performed on two or more of the reference levels as a group.
[0034] Following the operations 208 and 210, a decision (212) determines whether the quality of the reference levels is acceptable. When the decision (212) determines that the quality is not acceptable, then the read request processing 200 operates to correct (214) for the reference levels with the poor quality. Here, the correction (214) can operate to eliminate, replace or alter in some other way one or more of the reference levels having a poor quality. Following the operation 214, the read request processing 200 returns to repeat the operation 204 and subsequent operations so that the state discrimination levels can be re- determined and utilized based upon the reference levels following the correction (214). Alternatively, when the decision (212) determines that the quality is acceptable, then the read data can be sent (216) to the requestor for the read operation. Typically, the requestor is a host device that utilizes the memory system. Following the operation 216, the read request processing 200 is complete and ends.
[0035] By performing the evaluation (210) and the discrimination (208) substantially concurrently, the evaluation (210) of the quality of the reference levels is able to be performed without a performance penalty to the read request processing 200 whenever the initially read tracking cell quality is deemed acceptable. With an optimally designed and manufactured memory system, the reference levels will, in most cases, have an acceptable quality as initially read. Thus the evaluation (210) of the quality of the reference levels will not have a significant impact on the performance (namely, read performance) of the memory system. In a rare instance when one or more of the reference levels has an unacceptable quality, a performance impact will be imposed because the reference levels must be corrected (214) and then operations 204-208 must be performed again. However, because of its rarity, the performance impact is minimized.
[0036] FIG. 2B is a flow diagram of read request processing 250 according to another embodiment of the invention. The read request processing 250 is generally similar to the read request processing 200 illustrated in FIG. 2A with respect to various operations, namely, operations 202-210. However, the read request processing 250 pertains to another embodiment in which the discrimination (208) completes before the evaluation (210) completes. Hence, in this embodiment, the read data can begin being sent to the requestor while the evaluation (210) remains ongoing. Here, if needed, the evaluation (210) can also be performed concurrently with at least a portion of the sending of the read data to the requestor. More particularly, following the discrimination (208) of the states of the data storage units, a decision (252) determines whether the quality of reference levels is acceptable. When the decision (252) determines that the quality of the reference levels is not acceptable, then any of the read data that has been already sent to the requestor is cancelled (254). Here, since the evaluation (210) may not be completed when the discrimination (208) is completed, the read data can begin its transmission to the requestor. If it turns out that the quality of the reference levels utilized in determining the discrimination (208) states was unacceptable, then the read data that has been sent in this regard is cancelled (254). Next, the read request processing 250 corrects (256) for the reference levels with poor quality. Again, the correction (256) can pertain to adjusting or eliminating one or more of the reference levels having the poor quality. Following the operation 256, the read request processing 250 returns to repeat the decision (204) and subsequent operations so that the reference levels, as corrected, can be utilized in re-determining the state discrimination levels and thus the read data from the multi-state data storage units.
[0037] On the other hand, when the decision (252) determines that the quality of the reference levels is acceptable (which it is initially presumed to be), the read data can begin to be sent (258) to the requestor. At this point, the states of the multi-state data storage units have been established at operation 208 and thus the sending of the read data can proceed. In general, the decision (252) is performed asynchronously with the sending (258) of the data. Following the operation 258, a decision (260) determines whether the sending of the read data is completed. When the decision (260) determines that the read data has not been completely sent to the requestor, then the read request processing 250 returns to repeat the decision (252) and subsequent operations so that the sending (258) of the read data can continue until either cancelled at operation 254 (due to unacceptable quality of the reference levels) or completed at the decision (260). Once the sending of the read data has been completed (without being cancelled), the read request processing 250 is complete and ends as the read request has been fully processed.
[0038] FIG. 2C is a flow diagram of read request processing 270 according to still another embodiment of the invention. The read request processing 270 is generally similar to the read request processing 200 illustrated in FIG. 2A with respect to various operations, namely, operations 202-216. However, the read request processing 270 further includes a loop control feature. The loop control feature controls the number of times operations 204-214 can be repeated. In other words, for performance reasons, it is desirable to limit the amount of time that can be spent in attempting to achieve sufficient quality. According to the read request processing 270, upon starting the processing, a count is initialized 272 to a predetermined value (e.g., "0"). Then, following operations 208 and 210, a decision (274) determines whether a count (i.e., loop count) is greater than a loop limit (e.g., "1"). When the count is not greater than the loop limit, then operation 212 can be performed. When the decision (212) determines that the quality is not acceptable, then operation 214 can be performed. Following operation 214, before returning to loop back to operation 204, the count is incremented (276). Accordingly, the loop limit can cause the read request processing 270 to send (216) the read data to the requestor (or otherwise quit the read request processing 270) even if the quality is not yet deemed acceptable. The loop control feature can also be used with the read request processing 250 of FIG. 2B.
[0039] Still further, although the read request processing 200, 250 and 270 illustrated in FIGs. 2A, 2B and 2C indicate the computation of an average reference level at operation 204, such computation is not restricted to averaging. More generally, the reference levels can be mathematically processed (e.g., statistically processed) in any of a number of ways, such as through computation of a minimum, maximum, Root-Mean-Square (RMS), peak, average, median, modulus, and/or linear regression. Regardless of the mathematical processing performed on the reference levels, the state discrimination levels are thereafter determined based on the processed reference level. As noted above, the state discrimination levels are utilized by the memory system to distinguish between the various states supported by the multi-state data storage units.
[0040] The read request processing 200, 250 and 270 illustrated in FIGs. 2A, 2B and 2C respectively, generally refer to the use of a single reference level obtained from a plurality of reference levels that, in effect, store the same level. However, it should be understood that the read request processing may utilize two or more reference levels to determine a plurality of the state discrimination levels utilized by the multi-state memory. In this regard, for each of the reference levels established, a plurality of tracking storage units that store the same reference level are used. For example, when reading the reference levels from the tracking storage units, a first plurality of the tracking storing units would correspond to a first reference level and a second plurality of tracking storage units would pertain to a second reference level, and so on, if more average reference levels than two are utilized. The determination of the state discrimination levels can then utilize the one or more reference levels. Alternatively, the entire population of tracking storage units set to span the range of reference levels can be statistically processed as an ensemble, for example, using linear regression methodology.
[0041] According to another aspect of the invention, a memory system can also use Error Correction Codes (ECC) when reading data. ECC is well known and often used to enable reading data with increased reliability. ECC is used to minimize how often the quality evaluation and/or correction of reference levels needs to be performed. Since the quality evaluation and/or correction processing requires computational resources and time, minimizing their utilization lessens performance degradation caused by said processing.
[0042] FIG. 3 is a flow diagram of read request processing 300 according to another embodiment of the invention. The read request processing 300 is, for example, performed by a memory system having multi-state data storage units when a requestor (e.g., host) has requested to read data from storage locations within the memory system.
[0043] The read request processing 300 initially reads (202) reference levels from tracking storage units as well as data levels from data storage units. Here, the reference levels are read from the tracking storage units that are associated with the data storage units that hold the data levels that are being read. In addition, the reference levels are read at substantially the same time as the data levels are read. The reference levels can pertain to one or more levels. In one embodiment, a plurality of tracking storage units store the same reference level for improved reliability. The tracking storage units are written, erased and read when their associated data storage units are written, erased or read and thus "track" the use of the associated data storage units. As a result, the tracking storage units develop the same history and therefore the same charge retention characteristics as the data storage units. In addition, the tracking storage units experience the same operational conditions, such as voltage and temperature, which can affect state sensing. Consequently, reliability of discrimination of the data levels stored in the data storage units is increased.
[0044] Next, a processed reference level is computed (304). Here, the reference levels that are read (302) are processed to produce the processed reference level. The computation (304) to the reference levels in producing the processed reference level can be achieved in any of a number of ways, such as, through computation of a minimum, maximum, Root-Mean-Square (RMS), peak, average, median, modulus, and/or linear regression. After the processed reference level is computed (304), state discrimination levels are determined (306) based on the processed reference level. As noted above, the state discrimination levels are utilized by the memory system to distinguish between the various states supported by the multi-state data storage units.
[0045] Once the state discrimination levels have been determined (306), the read data can be determined (308) from the data levels using the state discrimination levels and error correction codes. Here, the previously read data levels (operation 302) are examined to determine the state for the data storage units by use of the state discrimination levels. Additionally, ECC that is also provided by the memory system is used to more reliability determine (308) the read data.
[0046] Next, using the ECC, a decision (310) determines whether a data error is identified in determining (308) the read data. Typically, when the ECC is not able to reliably establish the read data, the ECC indicates that a data error exists. When the decision (310) determines that there is not a data error, then the read data is sent (312) to the requestor. On the other hand, when the decision (310) determines that a data error exists, then quality evaluation and/or correction to the reference levels can be performed in an effort to overcome the data error. More particularly, when the decision (310) determines that a data error exists, the quality of the reference levels is evaluated (314). In one embodiment, the evaluation of the quality of the reference levels is typically individually performed on each of the reference levels. However, in other embodiments, the quality of the reference levels could instead be performed on two or more of the reference levels as a group. A decision (316) then determines whether the quality of the reference levels is acceptable. When the decision (316) determines that the quality is not acceptable, then the read request processing 300 operates to correct (318) the reference levels with poor quality. Here, the correction (318) can operate to alter or eliminate one or more of the reference levels having a poor quality. Following the operation 318, the read request processing 300 returns to repeat the operation 304 and subsequent operations so that the state discrimination levels can be re-determined and utilized to re-determine the read data based upon the reference levels following the correction (318). Alternatively, when the decision (316) determines that the quality is acceptable, then the read data is erroneous and thus a data read error is sent (320) to the requestor. Typically, the requestor is a host device that utilizes the memory system. Following the operations 312 or 320, the read request processing 300 is complete and ends. The loop control feature shown in FIG. 2C can also be used with the read request processing 300.
[0047] It should be noted that in this embodiment the operations 314-318 of the read request processing 300 are only performed when the ECC signals a failure in reading the data. As a result, with an optimally designed system, the operations 314-318 are only performed in rare circumstances. It is then only in rare circumstance that the read processing performance is slowed or degraded due to performance of quality evaluation and/or correction processing of operations 314- 318.
[0048] Although much of the discussion of the invention provided above pertains to multi-state devices, it should be understood that the invention is also applicable to binary storage devices. Multi-state devices do, however, provide greater storage density than binary storage devices.
[0049] The invention can further pertain to an electronic system that includes a memory system as discussed above. Memory systems (i.e., memory cards) are commonly used to store digital data for use with various electronic products. Often, the memory system is removable from the electronic system so that the stored digital data is portable. The memory systems according to the invention can have a relatively small form factor and be used to store digital data for electronic products such as cameras, hand-held or notebook computers, network cards, network appliances, set-top boxes, hand-held or other small audio players/recorders (e.g., MP3 devices), and medical monitors.
[0050] The advantages of the invention are numerous. Different embodiments or implementations may yield one or more of the following advantages. One advantage of the invention is that error management for reference levels is provided. Another advantage of the invention is that error management for reference levels can be performed without significant performance penalty. Still another advantage of the invention is that reliable, high performance memory systems can be obtained.
[0051] The many features and advantages of the present invention are apparent from the written description and, thus, it is intended by the appended claims to cover all such features and advantages of the invention. Further, since numerous modifications and changes will readily occur to those skilled in the art, the invention should not be deemed limited to the exact construction and operation as illustrated and described. Hence, all suitable modifications and equivalents are included within the scope of the invention.

Claims

CLAIMSWhat is claimed is:
1. A method for determining discrimination levels for states of storage units of a memory product, said method comprising: reading stored levels from a plurality of predetermined storage units; determining whether any of the stored levels are aberrant; correcting for at least one of the stored levels that said determining determines to be aberrant; and determining one or more discrimination levels based on the stored levels following said correcting.
2. A method as recited in claim 1 , wherein said correcting comprises discarding the at least one of the stored levels that said determining determines to be aberrant.
3. A method as recited in claim 1 , wherein said determining of whether any of the stored levels are aberrant comprises: determining a processed stored level from at least a plurality of the stored levels; and comparing each of the stored levels to the processed stored level.
4. A method as recited in claim 3, wherein said correcting comprises discarding those of the stored levels that deviate from the processed stored level by more than a predetermined amount.
5. A method as recited in claim 1 , wherein said determining of whether any of the stored levels are aberrant comprises: obtaining an average stored level from the stored levels; and comparing each of the stored levels to the average stored level.
6. A method as recited in claim 1 , wherein the stored levels are reference levels.
7. A method as recited in any of claims 1 -6, wherein the predetermined storage units are tracking storage units.
8. A method as recited in any of claims 1-7, wherein said method further comprises: thereafter determining states of certain of the data stored in the storage units of the memory product in accordance with the discrimination levels.
9. A method as recited in any of claims 1-8, wherein the memory product is a memory card providing non-volatile data storage.
10. In a memory device, a method for managing errors associated with tracking storage units used with data storage units, said method comprising: reading reference levels from a plurality of tracking storage units; evaluating a quality for each of the reference levels; determining whether the quality for any of the reference levels is unacceptable; correcting for at least one of the reference levels that said determining determines to be unacceptable; and determining, following said correcting, discrimination levels for data storage units associated with the tracking storage units based on the reference levels.
11. A method as recited in claim 10, wherein said method further comprises: subsequently using the discrimination levels to determine states of data stored in the data storage units.
12. A method as recited in claim 10 or 11 , wherein said determining of whether the quality for any of the reference levels is unacceptable comprises: determining a processed reference level from at least a plurality of the reference levels; and comparing each of the reference levels to the processed reference level.
13. A method as recited in any of claims 10-12, wherein said correcting for at least one of the reference levels that said determining determines to be unacceptable comprises: removing those of the reference levels that deviate from the processed reference level by more than a predetermined amount.
14. A method as recited in any of claims 10-13, wherein the memory device is a memory card providing non-volatile, multi-state data storage.
15. A method for reading data from a memory device having data storage units and associated tracking storage units, said method comprising:
(a) substantially concurrently reading data levels from certain data storage units and reference levels from tracking storage units associated with the certain data storage units; (b) computing a processed reference level from the reference levels;
(c) determining state discrimination levels based on the processed reference level;
(d) discriminating states of the data levels from the certain data storage units based on the state discrimination levels to acquire read data for a requestor; (e) evaluating quality of the reference levels; and
(f) determining whether the quality of the reference levels is acceptable.
16. A method as recited in claim 15, wherein said method further comprises:
(g) directing the read data to the requestor when said determining (f) determines that the quality of the reference levels is acceptable; and
(h) correcting for at least one of the reference levels when said determining (f) determines that the quality of the reference levels is unacceptable.
17. A method as recited in claim 16, wherein said method further comprises: (i) following said correcting (h), repeating at least said computing (b) through said discriminating (d) one or more times when said determining (f) determines that the quality of the reference levels is unacceptable.
18. A method as recited in claim 15, wherein said method further comprises:
(g) sending the read data to the requestor when said determining (f) determines that the quality of the reference levels is acceptable;
(h) halting said sending (g) when said determining (f) determines that the quality of the reference levels is unacceptable; and (i) correcting for at least one of the reference levels when said determining (f) determines that the quality of the reference levels is unacceptable.
19. A method as recited in claim 18, wherein said method further comprises: (j) following said correcting (i), repeating said computing (b) through said correcting (i) one or more times when said determining (f) determines that the quality of the reference levels is unacceptable.
20. A method as recited in claim 18 or 19, wherein said halting (h) comprises canceling any read data that has been received by the requestor prior to said halting (h).
21. A method as recited in any of claims 18-20, wherein said halting (h) comprises canceling any read data that has been received by the requestor prior to said halting (h).
22. A method as recited in claim 15, wherein said method further comprises: (g) sending the read data to the requestor when said determining (f) determines that the quality of the reference levels is acceptable;
(h) canceling the read data that has been received by the requestor when said determining (f) determines that the quality of the reference levels is unacceptable; and (i) correcting for at least one of the reference levels when said determining (f) determines that the quality of the reference levels is unacceptable.
23. A method as recited in any of claims 15-22, wherein said determining (f) of whether the quality of the reference levels is acceptable comprises: comparing each of the reference levels to the processed reference level.
24. A method as recited in any of claims 15-23, wherein the reference levels being read by said reading (a) pertain to first and second reference levels, wherein said computing (b) computes a first processed reference level from the reference levels pertaining to the first reference level, and computes a second processed reference level from the reference levels pertaining to the second reference level, and wherein said determining (c) determines the state discrimination levels based on the first and second processed reference levels.
25. A method as recited in claim 24, wherein said determining (f) of whether the quality of the reference levels is acceptable comprises: comparing each of the reference levels pertaining to the first reference level to the first processed reference level, and comparing each of the reference levels pertaining to the second reference level to the second processed reference level.
26. A method as recited in any of claims 15-25, wherein the memory device is a memory card providing non-volatile, multi-state data storage.
27. A method as recited in any of claims 15-26, wherein said computing (b) operates to average the reference levels to compute the processed reference level.
28. A method as recited in any of claims 15-26, wherein said computing (b) performs at least one of a minimum, maximum, Root-Mean-Square (RMS), peak, average, median, modulus, and linear regression with respect to the reference signals in computing the processed reference level.
29. A method for reading data from a memory device having data storage units and associated tracking storage units, said method comprising:
(a) substantially concurrently reading data levels from certain data storage units and reference levels from tracking storage units associated with the certain data storage units;
(b) computing a processed reference level from the reference levels;
(c) determining state discrimination levels based on the processed reference level;
(d) determining read data from the data levels using the state discrimination levels and error correction code processing;
(e) determining whether a data error is indicated by the error code processing; and
(f) evaluating quality of the reference levels and correcting for at least one of the reference levels having poor quality when said determining (e) detects the data error.
30. A method as recited in claim 29, wherein said method comprises:
(g) repeating said computing (b), said determining (c) and said determining (d) following said correcting of at least one of the reference levels.
31. A method for reading data from a memory device having data storage units and associated tracking storage units, said method comprising:
(a) initiating a count; (b) reading data levels from certain data storage units and reference levels from tracking storage units associated with the certain data storage units;
(c) computing a processed reference level from the reference levels; (d) determining state discrimination levels based on the processed reference level;
(e) discriminating states of the data levels from the certain data storage units based on the state discrimination levels to acquire read data for a requestor;
(f) evaluating quality of the reference levels;
(g) determining whether the quality of the reference levels is acceptable;
(h) comparing the count with a count limit; (i) correcting for at least one of the reference levels when said determining (g) determines that the quality of the reference levels is unacceptable and said comparing (h) determines that the count does not exceed the count limit;
(j) updating the count; (k) repeating at least said computing (b) through said comparing (h) one or more times when said determining (g) determines that the quality of the reference levels is unacceptable and said comparing (h) determines that the count does not exceed the count limit; and
(I) directing the read data to the requestor when said determining (g) determines that the quality of the reference levels is acceptable or when said comparing (h) determines that the count does exceed the count limit.
32. A memory system, comprising: a plurality of data storage units, each of the data storage units providing multi-state data storage in a non-volatile manner; a plurality of tracking storage units, the tracking storage units providing storage for reference levels in a non-volatile manner; a reference level error manager operatively connected to receive the reference levels from said tracking storage units, said reference level error manager evaluates quality of the reference levels; and a memory controller operatively connected to said data storage units and said tracking storage units, said memory controller operates to control read, write and erase operations with respect to said data storage units and said tracking storage units, said memory controller using state discrimination levels to determine the state of the data storage elements being read.
33. A memory system as recited in claim 32, wherein said memory system further comprises: state discrimination level circuitry operatively connected to said tracking storage units, said reference level error manager and said memory controller, said state discrimination level circuitry operates to determine the state discrimination levels for use by said memory controller based on a plurality of the reference levels.
34. A memory system as recited in claim 32 or 33, wherein said reference level error manager corrects for one or more of the reference levels having an unacceptable quality.
35. A memory system as recited in any of claims 32-34, wherein said memory system is a memory card.
36. A memory system as recited in claim 35, wherein at least one of said reference level error manager and state discrimination level circuitry are provided within said memory controller.
37. A memory system as recited in any of claims 32-36, wherein said reference level error manager corrects for one or more of the reference levels having an unacceptable quality.
38. A memory system as recited in any of claims 32-37, wherein said memory controller causes data to be written to a block of said data storage units, and wherein a set of said tracking storage units associated with the block of said data storage units are written with predetermined reference levels whenever the block of said data storage units are written.
39. A memory system as recited in claim 38, wherein the set of said tracking storage units is read whenever the block of said data storage units is read.
40. A memory system as recited in any of claims 32-39, wherein said memory system further comprises: an error correction unit that assists in determination of the state of the data storage elements being read.
PCT/US2002/034942 2001-11-02 2002-10-30 Error management for writable tracking storage units storing reference values WO2003041083A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE60224552T DE60224552T2 (en) 2001-11-02 2002-10-30 ERROR TREATMENT FOR DESCRIPTIVE REFERENCE MEMORY CELLS FOR FOLLOWING OPERATING VOLTAGE DRIPS
JP2003543031A JP4398249B2 (en) 2001-11-02 2002-10-30 Error management for a writable tracking storage unit that stores reference values
EP02773956A EP1440447B1 (en) 2001-11-02 2002-10-30 Error management for writable tracking storage units storing reference values
KR1020047006361A KR101009545B1 (en) 2001-11-02 2002-10-30 Error management for writable tracking storage units
CN028216938A CN1578988B (en) 2001-11-02 2002-10-30 Error management for writable tracking storage units storing reference values

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/053,339 2001-11-02
US10/053,339 US6678192B2 (en) 2001-11-02 2001-11-02 Error management for writable tracking storage units

Publications (1)

Publication Number Publication Date
WO2003041083A1 true WO2003041083A1 (en) 2003-05-15

Family

ID=21983519

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2002/034942 WO2003041083A1 (en) 2001-11-02 2002-10-30 Error management for writable tracking storage units storing reference values

Country Status (9)

Country Link
US (1) US6678192B2 (en)
EP (1) EP1440447B1 (en)
JP (1) JP4398249B2 (en)
KR (1) KR101009545B1 (en)
CN (1) CN1578988B (en)
AT (1) ATE383648T1 (en)
DE (1) DE60224552T2 (en)
TW (1) TWI285807B (en)
WO (1) WO2003041083A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1685571A2 (en) * 2003-10-29 2006-08-02 Saifun Semiconductors Ltd. A method circuit and system for determining a reference voltage
JP2007500918A (en) * 2003-06-13 2007-01-18 サンディスク コーポレイション Memory system tracking cell
JP2007510253A (en) * 2003-10-29 2007-04-19 サイファン・セミコンダクターズ・リミテッド Method, circuit and system for non-volatile memory array read error detection
DE102008030264B4 (en) * 2007-06-19 2020-12-24 Samsung Electronics Co., Ltd. Method for reading a flash memory and storage system

Families Citing this family (130)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7257025B2 (en) * 2004-12-09 2007-08-14 Saifun Semiconductors Ltd Method for reading non-volatile memory cells
KR100707200B1 (en) * 2005-07-22 2007-04-13 삼성전자주식회사 Non-volatile memory device having a channel region of fin-type and method of fabricating the same
US7546515B2 (en) * 2005-12-27 2009-06-09 Sandisk Corporation Method of storing downloadable firmware on bulk media
US7536627B2 (en) * 2005-12-27 2009-05-19 Sandisk Corporation Storing downloadable firmware on bulk media
US8725929B1 (en) 2006-11-06 2014-05-13 Marvell World Trade Ltd. Adaptive read and write systems and methods for memory cells
US8645793B2 (en) 2008-06-03 2014-02-04 Marvell International Ltd. Statistical tracking for flash memory
US7697326B2 (en) * 2006-05-12 2010-04-13 Anobit Technologies Ltd. Reducing programming error in memory devices
WO2007132456A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
KR101202537B1 (en) * 2006-05-12 2012-11-19 애플 인크. Combined distortion estimation and error correction coding for memory devices
CN103280239B (en) 2006-05-12 2016-04-06 苹果公司 Distortion estimation in memory device and elimination
US7639542B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Maintenance operations for multi-level data storage cells
US7639531B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Dynamic cell bit resolution
US7852690B2 (en) * 2006-05-15 2010-12-14 Apple Inc. Multi-chip package for a flash memory
US7511646B2 (en) * 2006-05-15 2009-03-31 Apple Inc. Use of 8-bit or higher A/D for NAND cell value
US7613043B2 (en) * 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
US7911834B2 (en) * 2006-05-15 2011-03-22 Apple Inc. Analog interface for a flash memory die
US7701797B2 (en) * 2006-05-15 2010-04-20 Apple Inc. Two levels of voltage regulation supplied for logic and data programming voltage of a memory device
US7568135B2 (en) * 2006-05-15 2009-07-28 Apple Inc. Use of alternative value in cell detection
US8000134B2 (en) 2006-05-15 2011-08-16 Apple Inc. Off-die charge pump that supplies multiple flash devices
US7551486B2 (en) 2006-05-15 2009-06-23 Apple Inc. Iterative memory cell charging based on reference cell value
US8060806B2 (en) 2006-08-27 2011-11-15 Anobit Technologies Ltd. Estimation of non-linear distortion in memory devices
JP5174028B2 (en) * 2006-09-27 2013-04-03 サンディスク テクノロジィース インコーポレイテッド Memory with read margin by cell population distribution
US7886204B2 (en) * 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
US7716538B2 (en) 2006-09-27 2010-05-11 Sandisk Corporation Memory with cell population distribution assisted read margining
KR100826500B1 (en) * 2006-10-23 2008-05-02 삼성전자주식회사 Nonvolatile semi-conductor memory device and data recovery method of the nonvolatile semi-conductor memory device
US7975192B2 (en) 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7821826B2 (en) 2006-10-30 2010-10-26 Anobit Technologies, Ltd. Memory cell readout using successive approximation
US7941590B2 (en) * 2006-11-06 2011-05-10 Marvell World Trade Ltd. Adaptive read and write systems and methods for memory cells
US7564716B2 (en) * 2006-11-16 2009-07-21 Freescale Semiconductor, Inc. Memory device with retained indicator of read reference level
US7865797B2 (en) * 2006-11-16 2011-01-04 Freescale Semiconductor, Inc. Memory device with adjustable read reference based on ECC and method thereof
US7545681B2 (en) * 2006-11-27 2009-06-09 Sandisk Corporation Segmented bitscan for verification of programming
US7440319B2 (en) * 2006-11-27 2008-10-21 Sandisk Corporation Apparatus with segmented bitscan for verification of programming
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
WO2008068747A2 (en) * 2006-12-03 2008-06-12 Anobit Technologies Ltd. Automatic defect management in memory devices
US7593263B2 (en) * 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US7900102B2 (en) * 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
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
US7808834B1 (en) 2007-04-13 2010-10-05 Marvell International Ltd. Incremental memory refresh
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
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
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
US8031526B1 (en) 2007-08-23 2011-10-04 Marvell International Ltd. Write pre-compensation for nonvolatile memory
US8189381B1 (en) 2007-08-28 2012-05-29 Marvell International Ltd. System and method for reading flash memory cells
US8085605B2 (en) 2007-08-29 2011-12-27 Marvell World Trade Ltd. Sequence detection for flash memory with inter-cell interference
US8174905B2 (en) * 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8527819B2 (en) * 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8068360B2 (en) * 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
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
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
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8059457B2 (en) * 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
KR101423052B1 (en) 2008-06-12 2014-07-25 삼성전자주식회사 Memory device and method of controlling read level
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
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8248831B2 (en) * 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
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
CN102449699B (en) 2009-04-08 2015-09-02 桑迪士克3D有限责任公司 There is the cubical array of the reprogrammable non-volatile memory device of vertical bit lines and one-sided wordline architecture
US8199576B2 (en) * 2009-04-08 2012-06-12 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a double-global-bit-line architecture
US7983065B2 (en) * 2009-04-08 2011-07-19 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines
US8351236B2 (en) 2009-04-08 2013-01-08 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a single-sided word line architecture
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
TWI412036B (en) * 2009-07-22 2013-10-11 Silicon Motion Inc Data reading method and data storage device
KR101603099B1 (en) * 2009-10-01 2016-03-28 삼성전자주식회사 A memory system detecting th distributionof unstable memory cell and the method for detecting the distribution of unstable memory cell
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8526237B2 (en) 2010-06-08 2013-09-03 Sandisk 3D Llc Non-volatile memory having 3D array of read/write elements and read/write circuits and method thereof
US8547720B2 (en) 2010-06-08 2013-10-01 Sandisk 3D Llc Non-volatile memory having 3D array of read/write elements with efficient decoding of vertical bit lines and word lines
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
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines 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
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US9227456B2 (en) 2010-12-14 2016-01-05 Sandisk 3D Llc Memories with cylindrical read/write stacks
EP2731110B1 (en) 2010-12-14 2016-09-07 SanDisk Technologies LLC Architecture for three dimensional non-volatile storage with vertical bit lines
CN103794720B (en) 2010-12-14 2017-01-04 桑迪士克科技有限责任公司 There is the three dimensional nonvolatile memorizer of double-gate vertical selector
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US9269425B2 (en) 2011-12-30 2016-02-23 Sandisk 3D Llc Low forming voltage non-volatile storage device
US9171584B2 (en) 2012-05-15 2015-10-27 Sandisk 3D Llc Three dimensional non-volatile storage with interleaved vertical select devices above and below vertical bit lines
US8923050B2 (en) 2012-06-15 2014-12-30 Sandisk 3D Llc 3D memory with vertical bit lines and staircase word lines and vertical switches and methods thereof
US9281029B2 (en) 2012-06-15 2016-03-08 Sandisk 3D Llc Non-volatile memory having 3D array architecture with bit line voltage control and methods thereof
CN103578532B (en) * 2012-08-01 2016-08-10 旺宏电子股份有限公司 The operational approach of storage device and memory array and operational approach thereof
US9202694B2 (en) 2013-03-04 2015-12-01 Sandisk 3D Llc Vertical bit line non-volatile memory systems and methods of fabrication
US9064547B2 (en) 2013-03-05 2015-06-23 Sandisk 3D Llc 3D non-volatile memory having low-current cells and methods
US9165933B2 (en) 2013-03-07 2015-10-20 Sandisk 3D Llc Vertical bit line TFT decoder for high voltage operation
US9105468B2 (en) 2013-09-06 2015-08-11 Sandisk 3D Llc Vertical bit line wide band gap TFT decoder
US9362338B2 (en) 2014-03-03 2016-06-07 Sandisk Technologies Inc. Vertical thin film transistors in non-volatile storage systems
US9379246B2 (en) 2014-03-05 2016-06-28 Sandisk Technologies Inc. Vertical thin film transistor selection devices and methods of fabrication
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
US9123392B1 (en) 2014-03-28 2015-09-01 Sandisk 3D Llc Non-volatile 3D memory with cell-selectable word line decoding
US9627009B2 (en) 2014-07-25 2017-04-18 Sandisk Technologies Llc Interleaved grouped word lines for three dimensional non-volatile storage
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
US9978456B2 (en) 2014-11-17 2018-05-22 Sandisk Technologies Llc Techniques for reducing read disturb in partially written blocks of non-volatile memory
US9349479B1 (en) 2014-11-18 2016-05-24 Sandisk Technologies Inc. Boundary word line operation in nonvolatile memory
US9449700B2 (en) 2015-02-13 2016-09-20 Sandisk Technologies Llc Boundary word line search and open block read methods with reduced read disturb
US9450023B1 (en) 2015-04-08 2016-09-20 Sandisk Technologies Llc Vertical bit line non-volatile memory with recessed word lines
US9653154B2 (en) 2015-09-21 2017-05-16 Sandisk Technologies Llc Write abort detection for multi-state memories
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275419B1 (en) * 1992-01-14 2001-08-14 Sandisk Corporation Multi-state memory
US6282145B1 (en) * 1999-01-14 2001-08-28 Silicon Storage Technology, Inc. Array architecture and operating methods for digital multilevel nonvolatile memory integrated circuit system
US6304485B1 (en) * 1989-04-13 2001-10-16 San Disk Corporation Flash EEprom system
WO2002027729A2 (en) * 2000-09-27 2002-04-04 Sandisk Corporation Writable tracking cells

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
US5272669A (en) 1991-02-20 1993-12-21 Sundisk Corporation Method and structure for programming floating gate memory cells
JP2856621B2 (en) 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション Batch erase nonvolatile memory and semiconductor disk device using the same
US5828601A (en) 1993-12-01 1998-10-27 Advanced Micro Devices, Inc. Programmed reference
US5712179A (en) 1995-10-31 1998-01-27 Sandisk Corporation Method of making triple polysilicon flash EEPROM arrays having a separate erase gate for each row of floating gates
US5717632A (en) 1996-11-27 1998-02-10 Advanced Micro Devices, Inc. Apparatus and method for multiple-level storage in non-volatile memories
US6103573A (en) 1999-06-30 2000-08-15 Sandisk Corporation Processing techniques for making a dual floating gate EEPROM cell array

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304485B1 (en) * 1989-04-13 2001-10-16 San Disk Corporation Flash EEprom system
US6275419B1 (en) * 1992-01-14 2001-08-14 Sandisk Corporation Multi-state memory
US6282145B1 (en) * 1999-01-14 2001-08-28 Silicon Storage Technology, Inc. Array architecture and operating methods for digital multilevel nonvolatile memory integrated circuit system
WO2002027729A2 (en) * 2000-09-27 2002-04-04 Sandisk Corporation Writable tracking cells

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007500918A (en) * 2003-06-13 2007-01-18 サンディスク コーポレイション Memory system tracking cell
EP1685571A2 (en) * 2003-10-29 2006-08-02 Saifun Semiconductors Ltd. A method circuit and system for determining a reference voltage
EP1685571A4 (en) * 2003-10-29 2006-12-20 Saifun Semiconductors Ltd A method circuit and system for determining a reference voltage
JP2007510253A (en) * 2003-10-29 2007-04-19 サイファン・セミコンダクターズ・リミテッド Method, circuit and system for non-volatile memory array read error detection
JP2007512639A (en) * 2003-10-29 2007-05-17 サイファン・セミコンダクターズ・リミテッド Method, circuit and system for determining a reference voltage
DE102008030264B4 (en) * 2007-06-19 2020-12-24 Samsung Electronics Co., Ltd. Method for reading a flash memory and storage system

Also Published As

Publication number Publication date
KR101009545B1 (en) 2011-01-18
ATE383648T1 (en) 2008-01-15
KR20040074979A (en) 2004-08-26
EP1440447A1 (en) 2004-07-28
DE60224552T2 (en) 2009-01-08
JP2005509226A (en) 2005-04-07
JP4398249B2 (en) 2010-01-13
CN1578988A (en) 2005-02-09
TW200300227A (en) 2003-05-16
DE60224552D1 (en) 2008-02-21
EP1440447B1 (en) 2008-01-09
US6678192B2 (en) 2004-01-13
CN1578988B (en) 2010-04-28
TWI285807B (en) 2007-08-21
US20030086293A1 (en) 2003-05-08

Similar Documents

Publication Publication Date Title
US6678192B2 (en) Error management for writable tracking storage units
US8125833B2 (en) Adaptive dynamic reading of flash memories
US8045377B2 (en) Non-volatile memory with dynamic multi-mode operation
US8773922B2 (en) Non-volatile memory device, memory card and system, and method determining read voltage by comparing referenced program data with comparative read data
US20190122738A1 (en) Method for Reading Data Stored in a Flash Memory According to a Threshold Voltage Distribution and Memory Controller and System Thereof
US7672162B2 (en) Non-volatile memory device, memory system, and LSB read method
US20130060994A1 (en) Non-volatile memory management system with time measure mechanism and method of operation thereof
US10658065B2 (en) Failure mode detection method and error correction method for solid state storage device
CN111724834B (en) Equalizer circuit, memory storage device and signal adjusting method
TW202113850A (en) Memory system and method of operating memory
US20220283727A1 (en) Solid state storage device with look-up tables providing improved reference voltages
US20200278904A1 (en) Retry-Read Method
CN112506809A (en) Memory system and memory operation method

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE 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 NO NZ OM PH PL PT RO RU SD SE SG SI SK SL 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: A1

Designated state(s): GH GM KE LS MW MZ 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 IE IT LU MC NL PT SE 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: 2003543031

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 20028216938

Country of ref document: CN

Ref document number: 1020047006361

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2002773956

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2002773956

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 2002773956

Country of ref document: EP