WO2009042298A1 - Flash memory refresh - Google Patents

Flash memory refresh Download PDF

Info

Publication number
WO2009042298A1
WO2009042298A1 PCT/US2008/072917 US2008072917W WO2009042298A1 WO 2009042298 A1 WO2009042298 A1 WO 2009042298A1 US 2008072917 W US2008072917 W US 2008072917W WO 2009042298 A1 WO2009042298 A1 WO 2009042298A1
Authority
WO
WIPO (PCT)
Prior art keywords
refresh
storage cells
retention time
data retention
data
Prior art date
Application number
PCT/US2008/072917
Other languages
French (fr)
Inventor
Brent S. Haukness
Gary B. Bronner
Original Assignee
Rambus Inc.
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 Rambus Inc. filed Critical Rambus Inc.
Publication of WO2009042298A1 publication Critical patent/WO2009042298A1/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • 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

Definitions

  • the present embodiments relate to memory. More specifically, the present embodiments relate to circuits and methods for refreshing information stored in memory.
  • Flash memory technology is used extensively for non- volatile data storage in modern electronics devices and systems due to its extremely high storage density and low power consumption. Data retention times are not infinite however, as charge leaking from floating gate storage elements within the Flash memory array eventually results in data loss. Further, independent of the charge leakage problem, each program/erase operation tends to create defects that cumulatively degrade the detectable difference between logic ' 1' and '0' levels stored within a given Flash memory cell, a phenomenon commonly referred to as "wear out.” Note that the maximum number of program/erase cycles a given Flash memory can endure and still meet an acceptable data retention time is commonly referred to as the 'endurance' of the Flash memory.
  • FIG. IA which presents a graph 100 illustrating data retention time 110 as a function of a number of program/erase cycles 112 for an embodiment of Flash memory
  • the effective data retention time 110 also drops as progressively less charge leakage is required before data is lost. All of these problems are further exacerbated by the ever shorter cell retention times that result from shrinking process geometries.
  • Flash memory devices are receiving increased consideration for a class of storage applications that benefit less from the non- volatile characteristics of Flash memory (for example, data loss at power-off may not be a concern) and more from the low cost per stored bit.
  • FIG. IB which presents a graph 130 illustrating stored charge 140 as a function of a time 142 for an embodiment of Flash memory
  • Flash memory may be expected to retain data without power for at least a time W (for example, 10 years) for up to Y program/erase cycles (for example, 1000).
  • the Flash memory may be expected to retain data without power for at least a time X (for example, up to 1 year) for up to Z program/erase cycles (for example, 10,000), where X is less than Wand Z is greater than Y.
  • X for example, up to 1 year
  • Z program/erase cycles
  • X is less than Wand Z is greater than Y.
  • Z may be so much greater than 7 that use-degraded memory devices, such as those that include Flash memory, quickly wear to retention times that are unsuitable for the more-general storage applications.
  • FIG. IA is a graph illustrating data retention time as a function of a number of program/erase cycles for an embodiment of Flash memory.
  • FIG. IB is a graph illustrating stored charge as a function of time for an embodiment of Flash memory.
  • FIG. 1C is a graph illustrating stored charge as a function of time for an embodiment of Flash memory including refresh.
  • FIG. 2 is a block diagram illustrating an embodiment of a memory system.
  • FIG. 3 A is a block diagram illustrating an embodiment of a memory controller.
  • FIG. 3B is a block diagram illustrating an embodiment of a memory device.
  • FIG. 4A is a flow chart illustrating an embodiment of a process for refreshing stored data in place.
  • FIG. 4B is a flow chart illustrating an embodiment of a process for rotating stored data.
  • FIG. 5A is a block diagram illustrating an embodiment of memory blocks during a data-rotation process.
  • FIG. 5B is a block diagram illustrating an embodiment of memory blocks during a data-rotation process.
  • FIG. 5C is a block diagram illustrating an embodiment of memory blocks during a data-rotation process.
  • FIG. 5D is a block diagram illustrating an embodiment of memory blocks during a data-rotation process.
  • FIG. 6 is a flow chart illustrating an embodiment of a process for refreshing a memory.
  • FIG. 7 is a block diagram illustrating an embodiment of a computer system.
  • FIG. 8 is a block diagram illustrating an embodiment of a system.
  • FIG. 9 is a block diagram illustrating an embodiment of a data structure.
  • data refresh is used to restore data (and thus, to allow it to be read back) in memory devices, such as Flash memory, in which stored data degrades with use (for example, due to charge leakage from storage cells) and which have finite endurance (for example, due to accumulated defects which limit the number of program/erase cycles).
  • the maximum number of program/erase cycles can be increased using data refresh.
  • the stored data may be recovered.
  • This technique allows memory devices, such as Flash memory, to be used in additional storage applications (for example, computer main memory) in which they are effectively volatile, without redesigning or changing the geometry of the memory devices.
  • Embodiments of a first circuit, a first integrated circuit that includes the first circuit, and a first technique for refreshing a memory are described.
  • This first circuit includes storage cells having a data retention time that progressively decreases from an initial data retention time to a substantially reduced data retention time as operations are performed on at least a subset of the storage cells.
  • the first circuit includes a refresh circuit, which is coupled to the storage cells, that refreshes data stored in one or more of the storage cells after a first refresh interval that is short enough to ensure data retention even after the data retention time of the one or more of the storage cells has decreased to the substantially reduced data retention time.
  • the initial data retention time progressively decreases as the cumulative number of operations performed on at least the subset of the storage cells increases.
  • the refresh circuit refreshes the data regularly at a refresh rate corresponding to the first refresh interval.
  • the first refresh interval is fixed.
  • the operations may include program/erase operations, and refresh may occur after a predetermined number of program/erase operations are performed on or proximate to at least the one or more storage cells.
  • the refresh circuit refreshes the data at a sequence of refresh intervals, where a given refresh interval in the sequence of refresh intervals is less than the first refresh interval, and the given refresh interval is less than a preceding refresh interval in the sequence of refresh intervals.
  • the operations may include program/erase operations, and a refresh rate corresponding to the sequence of refresh intervals may progressively increase based on a cumulative number of program/erase operations performed on or proximate to at least the one or more storage cells.
  • the operations may include read operations, and the given refresh interval may be based on a number of read operations performed on or proximate to at least the one or more storage cells.
  • the given refresh interval may be based on a usage history of at least the one or more storage cells.
  • at least the subset of the storage cells includes a group of storage cells.
  • the storage cells may include a solid-state memory.
  • the storage cells may include NAND or NOR Flash memory.
  • the first circuit self-refreshes the data in at least the subset of the storage cells.
  • the data is refreshed using a refresh-in-place technique in which the data is temporarily stored and then rewritten to at least the subset of the storage cells. Moreover, at least the subset of the storage cells may be erased prior to when the data is rewritten during the refresh operation. [032] In some embodiments, the data is refreshed using a rotation technique in which the data is written to another subset of the storage cells. Moreover, the other subset of the storage cells may be erased prior to the refresh operation.
  • the first refresh interval is one or more hours, a day, and/or a week.
  • the first circuit is included in a computer main memory.
  • different portions of the storage cells have different storage characteristics, and a given storage characteristic is associated with a given variation in data retention time as a function of the operations.
  • the refresh is used in conjunction with wear-leveling.
  • the refresh may be used to reduce an amount of wear- leveling.
  • Another embodiment provides a first integrated circuit that includes the first circuit.
  • Another embodiment provides a second integrated circuit that includes a memory controller, which is coupled to a memory device that includes the storage cells. Moreover, the memory controller may include the refresh circuit.
  • the refresh circuit includes control logic, and wherein the control logic is to execute instructions associated with refreshing the data.
  • Another embodiment provides a chip package that includes a third integrated circuit, which includes the storage cells, and a fourth integrated circuit, which is coupled to the third circuit and which includes the memory controller. Note that the memory controller may include the control logic. [041] Another embodiment provides a system that includes a memory module, which includes the storage cells, and the memory controller, which is coupled to the memory module. Note that the memory controller may include the control logic. Additionally, the memory controller and the memory module may be on a common integrated circuit. [042] Another embodiment provides a method of refreshing a memory.
  • data is stored in at least a subset of storage cells, where the storage cells have a data retention time that progressively decreases from an initial data retention time to a substantially reduced data retention time as additional operations are performed on at least the subset of the storage cells. Then, the data in one or more of the storage cells is refreshed after a first refresh interval that is short enough to ensure data retention even after the data retention time of the one or more of the storage cells has decreased to the substantially reduced data retention time.
  • Another embodiment provides a computer-readable medium containing first data representing the first circuit.
  • Another embodiment provides a second circuit that includes storage cells having a first data retention time and a refresh circuit coupled to the storage cells. Moreover, the refresh circuit is used to refresh data stored in at least a first subset of the storage cells after a first refresh interval during which operations are performed on at least some of the storage cells, and the first refresh interval is at least two orders of magnitude less than the first data retention time. Note that a second data retention time of at least some of the storage cells is a function of a cumulative number of the operations performed on at least some of the storage cells.
  • the second data retention time is less than the first data retention time. Moreover, the second data retention time may decrease as the cumulative number of the operations performed on at least some of the storage cells increases.
  • the refresh circuit is used to refresh the data regularly at a refresh rate corresponding to the first refresh interval.
  • the first refresh interval may be fixed, the operations may include program/erase operations, and the refresh is to occur after a pre-determined number of program/erase operations are performed on or proximate to at least a second subset of the storage cells (which may be separate from or included in the first subset of the storage cells).
  • the refresh circuit is used to refresh the data at a sequence of refresh intervals, where a given refresh interval in the sequence of refresh intervals is less than the first refresh interval and the given refresh interval is less than a preceding refresh interval in the sequence of refresh intervals.
  • a refresh rate corresponding to the sequence of refresh intervals may progressively increases based on a cumulative number of program/erase cycles or operations performed on or proximate to at least the second subset of the storage cells.
  • the given refresh interval is based on a usage history of at least the second subset of the storage cells.
  • the operations may include read operations and the given refresh interval may be based on a number of read operations performed on or proximate to at least the second subset of the storage cells.
  • the given refresh interval is further based on a cumulative number of program/erase operations performed on or proximate to at least the second subset of the storage cells.
  • at least the first subset of the storage cells includes a group of storage cells.
  • the storage cells include a solid-state memory, such as a charge-storage memory.
  • the storage cells may include NAND and/or NOR Flash memory.
  • the second circuit is used to self-refresh the data in at least the first subset of the storage cells.
  • the data is refreshed based on an elapsed time since a previous refresh operation.
  • the data is refreshed using a refresh-in-place technique in which the data is temporarily stored and then rewritten to at least the first subset of the storage cells. Moreover, at least the first subset of the storage cells may be erased prior to when the data is refreshed. However, in some embodiments the data is refreshed using a rotation technique in which the data is written to another subset of the storage cells. In some embodiments, addresses associated with the data, such as in a mapping table, are remapped when the data is rotated to the other subset of the storage cells. Note that this other subset of the storage cells may be erased prior to when the data is written during the refresh operation. [054] In some embodiments, the first refresh interval is one or more hours, a day, or a week.
  • the second circuit is included in a fifth integrated circuit, which is included in a computer main memory.
  • different portions of the storage cells have different storage characteristics, where a given storage characteristic is associated with a given variation in retention time as a function of the operations (such as read, write, and/or erase operations).
  • the refresh is to be used in conjunction with and/or to reduce an amount of wear-leveling, in which program operations are distributed across the memory so that storage cells wear out approximately evenly.
  • Another embodiment provides a second memory controller that includes the refresh circuit.
  • This refresh circuit may include control logic that is used to execute instructions associated with refreshing the data.
  • Another embodiment provides a second system that includes the second memory controller and a second memory module coupled to the second memory controller.
  • This memory module includes the storage cells.
  • the system is implemented on a second chip package that includes a sixth integrated circuit with the second memory controller and the second memory module or separate integrated circuits with, respectively, the second memory controller and the second memory module.
  • Another embodiment provides a second computer-readable medium that includes data that specifies the second circuit, the second memory controller, the second memory module, and/or the second system.
  • Another embodiment provides a second method of refreshing a memory, which may be performed by a device (such as the second circuit).
  • the device stores data in at least the first subset of storage cells, where the storage cells have the first data retention time.
  • the device refreshes data in at least the second subset of the storage cells after the first refresh interval during which the operations are performed on at least some of the storage cells.
  • the first refresh interval is at least two orders of magnitude less than the first data retention time
  • a second data retention time of at least some of the storage cells is a function of a cumulative number of the operations performed on at least some of the storage cells.
  • Additional embodiments provide a third circuit, a seventh integrated circuit that includes the second circuit and a third technique for refreshing a memory.
  • This third circuit includes the storage cells having the first data retention time and the refresh circuit coupled to the storage cells.
  • the refresh circuit is used to self-refresh data stored in at least the first subset of the storage cells after the first refresh interval during which the operations are performed on at least some of the storage cells, and a second data retention time of at least some of the storage cells is a function of a cumulative number of the operations performed on at least some of the storage cells.
  • the refresh circuit may include control logic that is used to execute instructions associated with refreshing the data.
  • the second circuit may be included in a third memory module in a third system and/or a third chip package, and that data that specifies the third circuit may be stored on a third computer-readable medium.
  • Embodiments of the one or more of these circuits, integrated circuits, and/or techniques may be used in a variety of applications, including: desktop or laptop computers, computer systems, hand-held or portable devices (such as personal digital assistants and/or cellular telephones), set-top boxes, home networks, and/or video-game devices.
  • a storage device such as the memory module
  • one or more of these embodiments may be included in a communication channel, such as: serial or parallel wireless links, wireless metropolitan area networks (such as WiMax), wireless local area networks (WLANs), and/or wireless personal area networks (WPANs).
  • FIG. IA presents a graph 100 illustrating data retention time 110 as a function of a number of program/erase cycles 112 for an embodiment of Flash memory.
  • data is stored on one or more previously erased cells by applying a voltage between a control gate and a body of the Flash memory such that charge flows through the channel between the source and drain in a given cell, some of which tunnels or is transported to (for example, by tunneling or hot-electron injection) and stored on a floating gate or other charge storage layer in the given cell.
  • this stored charge may correspond to binary information or multi-level information.
  • control gate After the charge is stored, the control gate is set to zero volts or some other level such that charge flow no longer occurs through the memory- cell transistor. Similarly, during an erase cycle another voltage is applied between the control gate and the body of the Flash memory (for example, the opposite polarity of the voltage) such that charge flows through the channel between the source and drain in the given cell, and the charge stored on the floating gate tunnels or is transported off of the floating gate. Once this charge on the floating gate is removed, the control gate is set to zero volts or some other level such that the charge flow no longer occurs through the memory-cell transistor.
  • another voltage is applied between the control gate and the body of the Flash memory (for example, the opposite polarity of the voltage) such that charge flows through the channel between the source and drain in the given cell, and the charge stored on the floating gate tunnels or is transported off of the floating gate.
  • retention time 114-1 can be many years. However, as the number of program/erase cycles 112 increases retention times 114 progressively decrease due to data loss associated with charge leakage from storage cells in the Flash memory. [066] In some applications, such as computer main memory, the number of program/erase cycles 112 is very large. Consequently, the resulting endurance (and thus, the data retention time) may preclude the use of Flash memory in these applications. In principle, scaling or redesigning the storage cells in the Flash memory can improve a characteristic 116, such as the endurance (for example, by moving the curve in graph 100 to the right), thereby allowing Flash memory to be used in additional applications. However, redesigning Flash memory is expensive and time-consuming, and the variation of the data retention time 110 as a function of the number of program/erase cycles 112 may result in an endurance that is still inadequate for many applications.
  • refresh allows the use of Flash memory, which has an existing characteristic 118 (such as the dependence of data retention time 110 on the number of program/erase cycles 112). In particular, as the number of program/erase cycles 112 increases, a time interval between refresh operations is decreased or a refresh rate is increased.
  • FIG. IB presents the graph 130 illustrating stored charge 140 as a function of the time 142 for an embodiment of Flash memory.
  • a programmed charge level 144 is stored in one or more storage cells and power is then removed from these storage cells. Because of charge leakage, this stored charge decays over time 142 to minimum data-detect level 146, below which the stored data cannot be reliably recovered. Depending on the number of previously performed program/erase cycles on these or proximate storage cells, this decay follows different use-dependent rates of data loss as illustrated by retention curves 148.
  • retention curve 148-1 may correspond to more than 10 2 program/erase cycles
  • retention curve 148-2 may correspond to more than 10 3 program/erase cycles
  • retention curve 148-3 may correspond to more than 10 4 program/erase cycles
  • retention curve 148-4 may correspond to more than 10 5 program/erase cycles.
  • the intersection of the retention curves 148 and the minimum data-detect level 146 define a series of retention times for the programmed charge level 144 to discharge to an un-resolvable state (for example, where it is no longer possible to distinguish between a logical ' 1 ' or a logical '0').
  • the intersection defines the tolerable retention interval 152, i.e., the maximum retention time associated with the Flash memory.
  • the tolerable retention interval 152 equals W for up to Y program/erase cycles, which specifies an acceptable retention curve (such as retention curve 148-1), and thus, the design and architecture of the Flash memory.
  • the tolerable retention interval 152 is required to equal X for up to Z program/erase cycles (where X is less than Wand Z is greater than Y). If this is not the case, i.e., the retention time is less than the tolerable retention interval 152, the design and architecture may not be suitable. In these cases, the Flash memory can be redesigned.
  • the data can be refreshed. For example, when the stored charge 140 decays to the minimum data- detect level 146, the stored data may be refreshed.
  • graph 130 also illustrates how the times when the data may be refreshed can vary as the number of program/erase cycles increases.
  • the series of retention times defines a sequence of refresh intervals. For example, an initial refresh interval (for less than 10 2 program/erase cycles) may equal the tolerable retention interval 152 and, as the number of program/erase cycles increases, the refresh interval may decrease. Consequently, a refresh rate corresponding to the sequence of refresh intervals may progressively increase based on a cumulative number of program/erase cycles or operations performed on or proximate to the storage cells.
  • FIG. 1C presents a graph 160 illustrating stored charge 140 as a function of time 142 for an embodiment of Flash memory including refresh.
  • retention curve 148-5 may correspond to more than
  • the stored data may be refreshed, for example, during data refresh 170-1, prior to the intersection between the retention curve 148-5 and the minimum data-detect level 146.
  • the data may be refreshed when the stored charge 140 decays below a threshold value.
  • refreshing data prevents data loss due to the leakage of charge from the storage cells in Flash memory. Consequently, for a given number of program/erase cycles, as long as stored data is refreshed before the associated data retention time is exceeded, the stored data may be recovered. While refresh results in lower data retention times 110 (because the degradation in the Flash memory is in general irreversible), it also increases the maximum number of program/erase cycles or the endurance of the Flash memory. Even though the Flash memory is now volatile, this may not be a problem in applications (such as computer main memory) where the stored data can be refreshed prior to the current data retention time.
  • FIG. 2 presents a block diagram illustrating an embodiment of a memory system 200.
  • This memory system includes at least one memory controller 210 and one or more memory devices 212, such as one or more memory modules. While FIG.
  • memory system 200 having one memory controller 210 and three memory devices 212, other embodiments may have additional memory controllers and fewer or more memory devices 212.
  • memory system 200 illustrates memory controller 210 coupled to multiple memory devices 212, in other embodiments two or more memory controllers may be coupled to one another.
  • memory controller 210 and one or more of the memory devices 212 may be implemented on the same or different integrated circuits, and that these one or more integrated circuits may be included in a chip-package.
  • the memory controller 210 is a local memory controller (such as a Flash memory controller) and/or is a system memory controller (which may be implemented in a microprocessor). Either a local memory controller and/or a system memory controller may refresh stored data.
  • a local memory controller such as a Flash memory controller
  • a system memory controller which may be implemented in a microprocessor. Either a local memory controller and/or a system memory controller may refresh stored data.
  • Memory controller 210 may include control logic 220-1 and an I/O interface 218-1.
  • one or more of memory devices 212 may include control logic 220 and at least one of interfaces 218. However, in some embodiments some of the memory devices 212 may not have control logic 220 and/or one of the interfaces 218.
  • memory controller 210 and/or one or more of memory devices 212 may include more than one of the interfaces 218, and these interfaces may share one or more control logic 220 circuits. Note that in embodiments where memory devices 212 are memory modules, two or more of the memory devices 212, such as memory devices 212-1 and 212-2, may be configured as a memory bank 216.
  • Memory controller 210 and memory devices 212 are coupled by one or more links 214. While memory system 200 illustrates three links 214, other embodiments may have fewer or more links 214. These links may include: wired, optical and/or wireless communication. Furthermore, links 214 may be used for bi-directional and/or uni-directional communications between the memory controller 210 and one or more of the memory devices 212. For example, bi-directional communication between the memory controller 210 and a given memory device may be simultaneous (full-duplex communication).
  • the memory controller 210 may transmit information (such as a data packet which includes a command) to the given memory device, and the given memory device may subsequently provide requested data to the memory controller 210, i.e., a communication direction on one or more of the links 214 may alternate (half-duplex communication).
  • information such as a data packet which includes a command
  • the given memory device may subsequently provide requested data to the memory controller 210, i.e., a communication direction on one or more of the links 214 may alternate (half-duplex communication).
  • one or more of the links 214 and corresponding transmit circuits (which are illustrated in FIGs. 3 A and 3B) and/or receive circuits (which are illustrated in FIGs. 3A and 3B) may be dynamically configured, for example, by one of the control logic 220 circuits, for bi-directional and/or unidirectional communication.
  • data may be communicated on one or more of the links
  • a given sub-channel may have an associated: range of frequencies, a frequency band, or groups of frequency bands (henceforth referred to as a frequency band).
  • a baseband sub-channel is associated with a first frequency band and a passband sub-channel is associated with a second frequency band. Note that, if at least one of the links 214 is AC-coupled, the baseband sub-channel may not contain DC (i.e., does not include 0 Hz).
  • frequency bands for adjacent sub-channels may partially or completely overlap, or may not overlap.
  • signals on adjacent sub-channels may be orthogonal.
  • Signals carried on these sub-channels may be time-multiplexed, frequency multiplexed, and/or encoded.
  • the signals are encoded using: time division multiple access, frequency division multiple access, and/or code division multiple access.
  • signals are communicated on the links 214 using discrete multi-tone communication (such as Orthogonal Frequency Division Multiplexing).
  • encoding should be understood to include modulation coding and/or spread-spectrum encoding, for example, coding based on binary pseudorandom sequences (such as maximal length sequences or m-sequences), Gold codes, and/or Kasami sequences.
  • modulation coding may include bit-to-symbol coding in which one or more data bits are mapped together to a data symbol, and symbol-to-bit coding in which one or more symbols are mapped to data bits.
  • a group of two data bits can be mapped to: one of four different amplitudes of an encoded data signal; one of four different phases of a sinusoid; or a combination of one of two different amplitudes of a sinusoid and one of two different phases of the same sinusoid (such as in quadrature amplitude modulation or QAM).
  • the modulation coding may include: amplitude modulation, phase modulation, and/or frequency modulation, such as pulse amplitude modulation (PAM), pulse width modulation, and/or pulse code modulation.
  • the modulation coding may include: two-level pulse amplitude modulation (2-PAM), four-level pulse amplitude modulation (A-PAM), eight-level pulse amplitude modulation (%-PAM), sixteen-level pulse amplitude modulation (16-PAM), two-level on-off keying (2-OOK), four-level on-off keying
  • A-OOK eight-level on-off keying
  • S-OOK eight-level on-off keying
  • 16-OOK sixteen-level on-off keying
  • the modulation coding includes non-return-to-zero (NRZ) coding. Moreover, in some embodiments the modulation coding includes two-or- more-level QAM. Note that the different sub-channels communicated on the links 214 may be encoded differently and/or the modulation coding may be dynamically adjusted, for example, based on a performance metric associated with communication on one or more of the links 214.
  • NRZ non-return-to-zero
  • FIG. 3 A presents a block diagram illustrating an embodiment 300 of a memory controller 310, such as the memory controller 210 (FIG. 2).
  • Data 318 to be transmitted by the memory controller 310 to a memory device is temporarily stored in memory buffer 320-1. Then, the data 318 is forwarded to transmit circuits (Tx) 322, and is transmitted as (analog or digital) signals 330.
  • Tx transmit circuits
  • signals 332 may be received from the memory device using receive circuits (Rx) 334, which include detection circuits (such as slicer circuits) to determine data 338 from the signals 332.
  • receive circuits (Rx) 334 include detection circuits (such as slicer circuits) to determine data 338 from the signals 332.
  • detection circuits such as slicer circuits
  • data 338 is temporarily stored in memory buffer 320-2.
  • timing of the forwarding, receiving, and/or transmitting may be gated by one or more timing signals provided by frequency synthesizer 326. Consequently, signals 330 may be transmitted and/or signals 332 may be received based on either or both edges in the one or more timing signals. Moreover, in some embodiments, transmitting and receiving may be synchronous and/or asynchronous.
  • timing signals may be generated based on one or more clock signals 324, which may be generated on-chip (for example, using a phase-locked loop and one or more reference signals provided by a frequency reference) or off-chip.
  • voltage levels and/or a voltage swing of the signals 330 may be based on voltages 328 provided by a power supply (not shown), and logic levels of the data 338 may be based on voltages 336 provided by the power supply. These voltages may be fixed or may be adjustable.
  • a period of the one or more timing signals, a skew or delay of the one or more timing signals, and/or one or more of the voltages 328 and 336 are adjusted based on a performance metric associated with communication to and/or from the memory controller 310.
  • This performance metric may include: a signal strength (such as a signal amplitude or a signal intensity), a mean square error (MSE) relative to a target (such as a detection threshold, a point in a constellation diagram, and/or a sequence of points in a constellation diagram), a signal-to-noise ratio (SNR), a bit-error rate (BER), a timing margin, and/or a voltage margin.
  • Memory controller 310 may include control logic 312 and refresh circuit 314. Based on one or more factors (described further below), control logic 312 may instruct refresh circuit 314 to provide refresh commands to the memory device, instructing the memory device to refresh at least a portion of data stored on the memory device. For example, data stored in one or more storage cells on the memory device may be refreshed based on a usage history of the memory device, such as the number of program/erase cycles performed on or proximate to the one or more storage cells. Note that information about this usage history may be stored in optional memory 316. Note that in some embodiments this usage -history information is used to implement wear-leveling in the memory device.
  • the memory controller 310 includes one or more additional transmit circuits coupled to a separate command link (or communication channel), which communicate commands (such as a refresh command) to the memory device.
  • This separate link may be wireless, optical or wired; may have a lower data rate than the data rates associated with one or more of the sub-channels; may use one or more different carrier frequencies than are used in the data sub-channels; and/or may use a different modulation technique than is used in the data sub-channels.
  • commands (such as the refresh command) are communicated using one or more of the transmit circuits 322.
  • the refresh circuit 314 issues commands to refresh stored data regularly at a refresh rate corresponding to a refresh interval (which may be stored in optional memory 316).
  • a refresh interval may be fixed, and the refresh may occur after a pre-determined number of program/erase cycles or operations are performed on or proximate to the one or more storage cells.
  • refresh may be scheduled (such as at a given time every hour, multiple hours, day, week, and/or month) or may occur after an elapsed time since a previous refresh.
  • the refresh interval and the refresh rate are variable.
  • the refresh circuit 314 may issue commands to refresh stored data at a sequence of refresh intervals, where a given refresh interval in the sequence of refresh intervals is smaller than an initial refresh interval and the given refresh interval is less than a preceding refresh interval in the sequence of refresh intervals.
  • a refresh rate corresponding to the sequence of refresh intervals may progressively increase based on the number of program/erase cycles or operations performed on or proximate to the storage cells.
  • Flash memory devices Another reliability characteristic of some Flash memory devices is read disturb. As storage cells (such as pages in a string) are read, data in other storage cells may be gradually disturbed. Eventually, this can result in a read failure. Moreover, read disturb is worse as the number of program/erase cycles increases. For example, a typical current Flash memory device may be able to read 100,000 times to the same string before failing when the memory device is new and 10,000 times before failing after the memory device has 10,000 program/erase cycles. Consequently, refresh of at least the portion of the storage cells on the memory device may be based on a number of read operations (i.e., a read count) performed on or proximate to these storage cells. And in some embodiments, refresh is based on a combination of the number of program/erase cycles and the number of read operations.
  • a number of read operations i.e., a read count
  • the portion of the storage cells that are refreshed may include one storage cell and/or a group of storage cells, such as: a page of storage cells, a string of storage cells, and/or a block of storage cells.
  • the refresh interval or refresh rate may be selected such that the retention time is acceptable for a given application. For example, each storage cell on a memory device may be refreshed more often than its worst-case (i.e., smallest) data retention time.
  • the initial data retention time associated with a new memory device is long, such as: minutes, hours, or even months or more. Consequently, the initial refresh interval is also long (such as an hour, a day, or a week). However, the initial refresh interval is still less than the initial data retention time. For example, the initial refresh interval may be at least two orders of magnitude less than the initial data retention time.
  • Control logic 312 may track a number of operations (such as write and/or read operations) performed on or proximate to a subset of the storage cells on the memory device. As the number of operations increases, the data retention time decreases.
  • the initial refresh interval is pre-determined based on the information in graph 100 (FIG. IA) and a rate of operations, i.e., the initial refresh interval is selected such that the number of operations during this interval results in a data retention time that is still long enough to allow the data to be read during the refresh operation.
  • the initial refresh interval is dynamically determined based on the information in graph 100 (FIG. IA) and the number of operations. Note that after refreshing the stored data the stored data will have a new data retention time which is less than the initial data retention time.
  • FIG. 3B presents a block diagram illustrating an embodiment 350 of a memory device 360, such as one of the memory devices 212 (FIG. 2).
  • signals 368 are received from another device (such as the memory controller 310 in FIG. 3A) using receive circuits (Rx) 370.
  • receive circuits (Rx) 370 may include detection circuits (such as slicer circuits) to determine data 380 from the signals 368.
  • data 380 is temporarily stored in memory buffer 378-1. Then, the data 380 is stored in one or more storage cells 382 (for example, NAND Flash memory and/or NOR Flash memory).
  • data 384 is read back from one or more of the storage cells 382. Prior to being transmitted to the other device, this data may be temporarily stored in memory buffer 378-2. Then, the data 384 is forwarded to transmit circuits (Tx) 386, and is transmitted as (analog or digital) signals 390.
  • Tx transmit circuits
  • timing of the forwarding, receiving, and/or transmitting may be gated by one or more timing signals provided by frequency synthesizer 374. Consequently, signals 390 may be transmitted and/or signals 368 may be received based on either or both edges in the one or more timing signals. In some embodiments, transmitting and receiving may be synchronous and/or asynchronous.
  • timing signals may be generated based on one or more clock signals 372, which may be generated on-chip (for example, using a phase-locked loop and one or more reference signals provided by a frequency reference) or off-chip.
  • voltage levels and/or a voltage swing of the signals 390 may be based on voltages 388 provided by a power supply (not shown), and logic levels of the data 380 may be based on voltages 376 provided by the power supply. These voltages may be fixed or may be adjustable.
  • a period of the one or more timing signals, a skew or delay of the one or more timing signals, and/or one or more of the voltages 376 and 388 are adjusted based on a performance metric associated with communication to and/or from the memory device 360.
  • This performance metric may include: a signal strength (such as a signal amplitude or a signal intensity), a mean square error (MSE) relative to a target (such as a detection threshold, a point in a constellation diagram, and/or a sequence of points in a constellation diagram), a signal-to-noise ratio (SNR), a bit-error rate (BER), a timing margin, and/or a voltage margin.
  • the memory device 360 includes one or more additional receive circuits coupled to the separate command link (or communication channel), which receive commands (such as a refresh command) from the other device. However, in some embodiments commands are received using one or more of the receive circuits 370.
  • memory device 360 includes optional control logic 362 and optional refresh circuit 364. Based on one or more previously described factors, control logic 362 may instruct refresh circuit 364 to provide refresh commands to refresh data stored in one or more of the storage cells 382. For example, data stored in one or more of the storage cells 382 may be refreshed based on the usage history of the memory device 360. Note that information about this usage history may be stored in optional memory 366. In some embodiments, refresh is performed during a refresh mode of operation of the memory device 360.
  • control logic 362 includes the functionality of a memory controller.
  • the memory device 360 includes a memory module and a memory controller. These components may be included in a chip package on one or more integrated circuits.
  • the chip package may include a first integrated circuit that includes the memory controller and a second integrated circuit that include the memory module.
  • the memory controller may be a local memory controller and/or a system memory controller.
  • refresh technique may be applied to a variety of solid-state memory devices and, more generally, to memory media in which the data retention time is a function of the usage history.
  • EDC error-detection-code
  • ECC error-correction-code
  • the ECC information includes a Bose-Chaudhuri- Hochquenghem (BCH) code.
  • BCH codes are a sub-class of cyclic codes.
  • the ECC information includes: a cyclic redundancy code (CRC), a parity code, a Hamming code, a Reed-Solomon code, and/or another error checking and correction code.
  • CRC cyclic redundancy code
  • the receive circuits 370 implement error detection and/or correction.
  • errors associated with communication may be detected by performing a multi-bit XOR operation in conjunction with one or more parity bits in the signals 368.
  • control logic 312 (FIG. 3A) and/or 362 may take a variety of remedial actions in the event of an error or a degradation of one or more of the performance metrics during communication between the memory controller 310 (FIG. 3A) and the memory device 360.
  • remedial actions may include: re-transmitting previous data; transmitting previous or new data (henceforth referred to as data) using an increased transmission power than the transmission power used in a previous transmission; reducing the data rate in one or more of the sub-channels relative to the data rate used in a previous transmission; transmitting data with reduced intersymbol interference (for example, with blank intervals inserted before and/or after the data); transmitting data at a single clock edge (as opposed to dual-data-rate transmission); transmitting data with at least a portion of the data including ECC or EDC; transmitting data using a different encoding or modulation code than the encoding used in a previous transmission; transmitting data after a pre-determined idle time; transmitting data to a different receive circuit; transmitting data to another device
  • one or more of these adjustments are performed: continuously; as need based (for example, based on one or more of the performance metrics); and/or after a pre-determined time interval.
  • the remedial action (and more generally adjustments to one or more of the sub-channels) is based on control information that is exchanged between the memory controller 310 (FIG. 3A) and the memory device 360.
  • This control information may be exchanged using in-band communication (i.e., via the frequency bands used to communicate the signals 330 (FIG. 3A), 332 (FIG. 3A), 368, and 390) and/or out-of-band communication (for example, using the separate link).
  • the remedial action and/or adjustments involve an auto- negotiation technique.
  • a receive circuit in one of the devices may provide feedback to a transmit circuit in another device on the efficacy of any changes to the signals on a sub-channel. Based on this feedback, the transmit circuit may further modify these signals, i.e., may perform the remedial action.
  • memory controller 310 (FIG. 3A) and/or memory device 360 may include fewer components or additional components.
  • signal lines coupling components may indicate multiple signal lines (or a bus).
  • memory controller 310 (FIG. 3A) and/or memory device 360 include pre-emphasis to compensate for losses and/or dispersion associated with inter-device communication.
  • a receiver of the signals includes equalization. Note that pre-emphasis and/or equalization may be implemented using feed-forward filters and/or decision-feedback- equalization circuits.
  • control logic 312 (FIG. 3A) and/or 362 may include a processor or a processor core
  • refresh circuit 314 (FIG. 3A) and/or 364 may be implemented as instructions that are executed by the processor or the processor core.
  • memory controller 310 (FIG. 3A) and/or memory device 360 are configured to perform self-refresh, i.e., the refresh does not depend on external commands.
  • the memory device 360 may be able to perform a refresh operation without receiving commands from the memory controller 310 (FIG.
  • control logic 312 (FIG. 3A) and 362 and/or the refresh circuit 314 (FIG. 3A) and 364 is provided by such a processor in the computer system, i.e., the processor initiates the refresh operation by providing a refresh command to the memory controller 310 (FIG. 3A) and/or memory device 360.
  • memory controller 310 (FIG. 3A) and/or memory device 360 may be combined into a single component and/or the position of one or more components may be changed.
  • memory controller 310 (FIG. 3A) and/or memory device 360 are included in one or more integrated circuits on one or more semiconductor die.
  • Flash memory differs from other types of memory in that storage cells are erased before they are reprogrammed. Moreover, the erase operation is usually performed on at least a block of storage cells. Consequently, the refresh operation may also be performed on this block of storage cells. Because of these program and erase characteristics, refresh operations may be implemented in different ways, including: a refresh-in-place technique in which the data is temporarily stored and then rewritten to at least a subset of the storage cells; and a rotation technique in which the data is written to another subset of the storage cells.
  • FIG. 4A presents a flow chart illustrating an embodiment of a process 400 for refreshing stored data in place.
  • a device such as the memory device 360 in FIG. 3B determines if a refresh criterion is reached for a block (412). If no, normal memory operations (410) resume.
  • FIG. 4B presents a flow chart illustrating an embodiment of a process 450 for rotating stored data.
  • the device determines if a refresh criterion is reached for a block (412). If no, normal memory operations (410) resume. However, if yes, the device copies data from the block to a new block (460), which has already been erased. Next, the device erases the block (416). Note that this refresh process may not require the temporary memory.
  • a page-mapping table is updated (462).
  • FIGs. 5A-5D present block diagrams illustrating embodiments 500, 520, 540 and 560 of a memory block at different times during a data-rotation process. As illustrated in FIG. 5B, during this process valid data is copied 530 from one of memory block 510 (such as memory block 510-1) to a free memory block, such as memory block 510-N. Next, as illustrated in FIG. 5B, during this process valid data is copied 530 from one of memory block 510 (such as memory block 510-1) to a free memory block, such as memory block 510-N. Next, as illustrated in FIG.
  • memory block 510-1 may be marked as having old data (i.e., invalid data) and may be subsequently erased (as illustrated in FIG. 5D). Later, this erased memory block may be used when rotating another block of valid data.
  • the rotation technique uses a direct copy feature that is supported on most current NAND Flash memory devices.
  • FIG. 6 presents a flow chart illustrating an embodiment of a process 600 for refreshing a memory, which may be performed by a memory controller and/or a memory device.
  • data is stored in at least a subset of storage cells (610), where the storage cells have a data retention time that progressively decreases from an initial data retention time to a substantially reduced data retention time as additional operations are performed on at least the subset of the storage cells.
  • the data in one or more of the storage cells is refreshed after a first refresh interval that is short enough to ensure data retention even after the data retention time of the one or more of the storage cells has decreased to the substantially reduced data retention time (612).
  • FIG. 7 presents a block diagram illustrating an embodiment of a computer system 700.
  • This computer system includes one or more processors 710, a communication interface 712, a user interface 714, and one or more signal lines 722 coupling these components together.
  • the one or more processing units 710 may support parallel processing and/or multi-threaded operation
  • the communication interface 712 may have a persistent communication connection
  • the one or more signal lines 722 may constitute a communication bus.
  • the user interface 714 may include: a display 716, a keyboard 718, and/or a pointer 720, such as a mouse.
  • Computer system 700 may include memory 724, which may include high speed random access memory and/or non- volatile memory. More specifically, memory 724 may include: ROM, RAM, EPROM, EEPROM, Flash, one or more smart cards, one or more magnetic disc storage devices, and/or one or more optical storage devices. Memory 724 may store an operating system 726, such as SOLARIS, LINUX, UNIX, OS X, or WINDOWS, that includes procedures (or a set of instructions) for handling various basic system services for performing hardware dependent tasks. Memory 724 may also store procedures (or a set of instructions) in a communication module 728. The communication procedures may be used for communicating with one or more computers and/or servers, including computers and/or servers that are remotely located with respect to the computer system 700.
  • memory 724 may include high speed random access memory and/or non- volatile memory. More specifically, memory 724 may include: ROM, RAM, EPROM, EEPROM, Flash, one or more smart cards, one or more magnetic disc storage devices, and/or one or more optical storage
  • Memory 724 may also include the one or more program modules (of sets of instructions) 730. Instructions in the program modules 730 in the memory 724 may be implemented in a high-level procedural language, an object-oriented programming language, and/or in an assembly or machine language. The programming language may be compiled or interpreted, i.e., configurable or configured to be executed by the one or more processing units 710. [0130] Computer system 700 may include one or more memory devices 708 (such as memory modules and/or memory systems) that include integrated circuits with storage cells that are to be refreshed, as described in the previous embodiments. For example, the memory devices 708 may be included in the main memory of the computer system 700. Note that in some embodiments data stored in storage cells in one or more of the memory devices 708 is refreshed based on instructions executed by one or more of the processors 710.
  • the memory devices 708 may not include refresh circuits.
  • Computer system 700 may include fewer components or additional components. Moreover, two or more components can be combined into a single component, and/or a position of one or more components may be changed. In some embodiments, the functionality of the computer system 700 may be implemented more in hardware and less in software, or less in hardware and more in software, as is known in the art.
  • FIG. 7 is intended to be a functional description of the various features that may be present in the computer system 700 rather than as a structural schematic of the embodiments described herein.
  • the functions of the computer system 700 may be distributed over a large number of servers or computers, with various groups of the servers or computers performing particular subsets of the functions.
  • some or all of the functionality of the computer system 700 may be implemented in one or more application specific integrated circuits (ASICs) and/or one or more digital signal processors (DSPs).
  • ASICs application specific integrated circuits
  • DSPs digital signal processors
  • Devices and circuits described herein may be implemented using computer aided design tools available in the art, and embodied by computer-readable files containing software descriptions of such circuits. These software descriptions may be: at behavioral, register transfer, logic component, transistor and layout geometry level descriptions.
  • the software descriptions may be stored on storage media or communicated by carrier waves.
  • Data formats in which such descriptions may be implemented include, but are not limited to: formats supporting behavioral languages like C, formats supporting register transfer level RTL languages like Verilog and VHDL, formats supporting geometry description languages (such as GDSII, GDSIII, GDSIV, CIF, and MEBES), and other suitable formats and languages.
  • data transfers of such files on machine-readable media including carrier waves may be done electronically over the diverse media on the Internet or, for example, via email.
  • physical files may be implemented on machine-readable media such as: 4 mm magnetic tape, 8 mm magnetic tape, 3 1/2 inch floppy media, CDs, DVDs, and so on.
  • FIG. 8 presents a block diagram illustrating an embodiment of a system 800 that stores such computer-readable files.
  • This system may include at least one data processor or central processing unit (CPU) 810, memory 824 and one or more signal lines or communication busses 822 for coupling these components to one another.
  • Memory 824 may include high-speed random access memory and/or non-volatile memory, such as: ROM, RAM, EPROM, EEPROM, Flash, one or more smart cards, one or more magnetic disc storage devices, and/or one or more optical storage devices.
  • Memory 824 may store a circuit compiler 826 and circuit descriptions 828.
  • Circuit descriptions 828 may include descriptions for the circuits, or a subset of the circuits discussed above with respect to FIGs. 2-3.
  • circuit descriptions 828 may include circuit descriptions of: one or more memory controllers 830, one or more memory devices
  • system 800 includes fewer or additional components.
  • two or more components can be combined into a single component, and/or a position of one or more components may be changed.
  • FIG. 9 presents a block diagram illustrating an embodiment of a data structure 900.
  • This data structure may include information for one or more storage characteristics 910.
  • the storage characteristics 910 may correspond to different refresh characteristics of different memory devices and/or different storage cells in a given memory device (such as a different variation in the retention time as a function of memory operations).
  • a given storage characteristic, such as storage characteristic 910-1 may include multiple data points associated with characteristics such as that illustrated in graph 100 (FIG. IA). These data points each include a number of program/erase cycles 912 and an associated retention time 914.

Landscapes

  • Read Only Memory (AREA)

Abstract

Embodiments of a circuit are described. This circuit includes storage cells having a data retention time that progressively decreases from an initial data retention time to a substantially reduced data retention time as operations are performed on at least a subset of the storage cells. Moreover, the circuit includes a refresh circuit, which is coupled to the storage cells, that refreshes data stored in one or more of the storage cells after a first refresh interval that is short enough to ensure data retention even after the data retention time of the one or more of the storage cells has decreased to the substantially reduced data retention time.

Description

FLASH MEMORY REFRESH
Inventors: Brent Haukness and Gary Bronner
FIELD
[001] The present embodiments relate to memory. More specifically, the present embodiments relate to circuits and methods for refreshing information stored in memory.
BACKGROUND
[002] Flash memory technology is used extensively for non- volatile data storage in modern electronics devices and systems due to its extremely high storage density and low power consumption. Data retention times are not infinite however, as charge leaking from floating gate storage elements within the Flash memory array eventually results in data loss. Further, independent of the charge leakage problem, each program/erase operation tends to create defects that cumulatively degrade the detectable difference between logic ' 1' and '0' levels stored within a given Flash memory cell, a phenomenon commonly referred to as "wear out." Note that the maximum number of program/erase cycles a given Flash memory can endure and still meet an acceptable data retention time is commonly referred to as the 'endurance' of the Flash memory.
[003] Referring to FIG. IA, which presents a graph 100 illustrating data retention time 110 as a function of a number of program/erase cycles 112 for an embodiment of Flash memory, as the number of program/erase cycles 112 accumulates and the detectable difference between ' 1 ' and '0' levels drops, the effective data retention time 110 also drops as progressively less charge leakage is required before data is lost. All of these problems are further exacerbated by the ever shorter cell retention times that result from shrinking process geometries.
[004] Even as designers struggle with diminishing cell retention times, Flash memory devices are receiving increased consideration for a class of storage applications that benefit less from the non- volatile characteristics of Flash memory (for example, data loss at power-off may not be a concern) and more from the low cost per stored bit. For example, as shown in FIG. IB (which presents a graph 130 illustrating stored charge 140 as a function of a time 142 for an embodiment of Flash memory) and described further below, in a typical non- volatile memory application Flash memory may be expected to retain data without power for at least a time W (for example, 10 years) for up to Y program/erase cycles (for example, 1000). However, in more-general storage applications the Flash memory may be expected to retain data without power for at least a time X ( for example, up to 1 year) for up to Z program/erase cycles (for example, 10,000), where X is less than Wand Z is greater than Y. Unfortunately, many of these more-general storage applications require substantially more frequent program/erase cycles than traditional non-volatile storage applications, and thus may more quickly degrade the cell retention time to an insufficient level. In particular, Z may be so much greater than 7 that use-degraded memory devices, such as those that include Flash memory, quickly wear to retention times that are unsuitable for the more-general storage applications.
BRIEF DESCRIPTION OF THE FIGURES
[005] FIG. IA is a graph illustrating data retention time as a function of a number of program/erase cycles for an embodiment of Flash memory. [006] FIG. IB is a graph illustrating stored charge as a function of time for an embodiment of Flash memory.
[007] FIG. 1C is a graph illustrating stored charge as a function of time for an embodiment of Flash memory including refresh.
[008] FIG. 2 is a block diagram illustrating an embodiment of a memory system. [009] FIG. 3 A is a block diagram illustrating an embodiment of a memory controller.
[010] FIG. 3B is a block diagram illustrating an embodiment of a memory device.
[011] FIG. 4A is a flow chart illustrating an embodiment of a process for refreshing stored data in place.
[012] FIG. 4B is a flow chart illustrating an embodiment of a process for rotating stored data.
[013] FIG. 5A is a block diagram illustrating an embodiment of memory blocks during a data-rotation process. [014] FIG. 5B is a block diagram illustrating an embodiment of memory blocks during a data-rotation process.
[015] FIG. 5C is a block diagram illustrating an embodiment of memory blocks during a data-rotation process. [016] FIG. 5D is a block diagram illustrating an embodiment of memory blocks during a data-rotation process.
[017] FIG. 6 is a flow chart illustrating an embodiment of a process for refreshing a memory.
[018] FIG. 7 is a block diagram illustrating an embodiment of a computer system. [019] FIG. 8 is a block diagram illustrating an embodiment of a system.
[020] FIG. 9 is a block diagram illustrating an embodiment of a data structure.
[021] Note that like reference numerals refer to corresponding parts throughout the drawings.
DETAILED DESCRIPTION
[022] The following description is presented to enable any person skilled in the art to make and use the disclosed embodiments, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present description. Thus, the present description is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
[023] In the discussion that follows, data refresh is used to restore data (and thus, to allow it to be read back) in memory devices, such as Flash memory, in which stored data degrades with use (for example, due to charge leakage from storage cells) and which have finite endurance (for example, due to accumulated defects which limit the number of program/erase cycles). Note that the maximum number of program/erase cycles can be increased using data refresh. In particular, for a given number of program/erase cycles, as long as the stored data is refreshed before the associated data retention time is exceeded, the stored data may be recovered. This technique allows memory devices, such as Flash memory, to be used in additional storage applications (for example, computer main memory) in which they are effectively volatile, without redesigning or changing the geometry of the memory devices.
[024] Embodiments of a first circuit, a first integrated circuit that includes the first circuit, and a first technique for refreshing a memory are described. This first circuit includes storage cells having a data retention time that progressively decreases from an initial data retention time to a substantially reduced data retention time as operations are performed on at least a subset of the storage cells. Moreover, the first circuit includes a refresh circuit, which is coupled to the storage cells, that refreshes data stored in one or more of the storage cells after a first refresh interval that is short enough to ensure data retention even after the data retention time of the one or more of the storage cells has decreased to the substantially reduced data retention time.
[025] In some embodiments, the initial data retention time progressively decreases as the cumulative number of operations performed on at least the subset of the storage cells increases. [026] In some embodiments, the refresh circuit refreshes the data regularly at a refresh rate corresponding to the first refresh interval.
[027] In some embodiments, the first refresh interval is fixed. Moreover, the operations may include program/erase operations, and refresh may occur after a predetermined number of program/erase operations are performed on or proximate to at least the one or more storage cells.
[028] In some embodiments, the refresh circuit refreshes the data at a sequence of refresh intervals, where a given refresh interval in the sequence of refresh intervals is less than the first refresh interval, and the given refresh interval is less than a preceding refresh interval in the sequence of refresh intervals. For example, the operations may include program/erase operations, and a refresh rate corresponding to the sequence of refresh intervals may progressively increase based on a cumulative number of program/erase operations performed on or proximate to at least the one or more storage cells. Alternatively or additionally, the operations may include read operations, and the given refresh interval may be based on a number of read operations performed on or proximate to at least the one or more storage cells. More generally, the given refresh interval may be based on a usage history of at least the one or more storage cells. [029] In some embodiments, at least the subset of the storage cells includes a group of storage cells. Moreover, the storage cells may include a solid-state memory. For example, the storage cells may include NAND or NOR Flash memory.
[030] In some embodiments, the first circuit self-refreshes the data in at least the subset of the storage cells.
[031] In some embodiments, the data is refreshed using a refresh-in-place technique in which the data is temporarily stored and then rewritten to at least the subset of the storage cells. Moreover, at least the subset of the storage cells may be erased prior to when the data is rewritten during the refresh operation. [032] In some embodiments, the data is refreshed using a rotation technique in which the data is written to another subset of the storage cells. Moreover, the other subset of the storage cells may be erased prior to the refresh operation.
[033] In some embodiments, the first refresh interval is one or more hours, a day, and/or a week. [034] In some embodiments, the first circuit is included in a computer main memory.
[035] In some embodiments, different portions of the storage cells have different storage characteristics, and a given storage characteristic is associated with a given variation in data retention time as a function of the operations.
[036] In some embodiments, the refresh is used in conjunction with wear-leveling. For example, the refresh may be used to reduce an amount of wear- leveling.
[037] Another embodiment provides a first integrated circuit that includes the first circuit.
[038] Another embodiment provides a second integrated circuit that includes a memory controller, which is coupled to a memory device that includes the storage cells. Moreover, the memory controller may include the refresh circuit.
[039] In some embodiments, the refresh circuit includes control logic, and wherein the control logic is to execute instructions associated with refreshing the data.
[040] Another embodiment provides a chip package that includes a third integrated circuit, which includes the storage cells, and a fourth integrated circuit, which is coupled to the third circuit and which includes the memory controller. Note that the memory controller may include the control logic. [041] Another embodiment provides a system that includes a memory module, which includes the storage cells, and the memory controller, which is coupled to the memory module. Note that the memory controller may include the control logic. Additionally, the memory controller and the memory module may be on a common integrated circuit. [042] Another embodiment provides a method of refreshing a memory. During this method, data is stored in at least a subset of storage cells, where the storage cells have a data retention time that progressively decreases from an initial data retention time to a substantially reduced data retention time as additional operations are performed on at least the subset of the storage cells. Then, the data in one or more of the storage cells is refreshed after a first refresh interval that is short enough to ensure data retention even after the data retention time of the one or more of the storage cells has decreased to the substantially reduced data retention time.
[043] Another embodiment provides a computer-readable medium containing first data representing the first circuit. [044] Another embodiment provides a second circuit that includes storage cells having a first data retention time and a refresh circuit coupled to the storage cells. Moreover, the refresh circuit is used to refresh data stored in at least a first subset of the storage cells after a first refresh interval during which operations are performed on at least some of the storage cells, and the first refresh interval is at least two orders of magnitude less than the first data retention time. Note that a second data retention time of at least some of the storage cells is a function of a cumulative number of the operations performed on at least some of the storage cells.
[045] In some embodiments, the second data retention time is less than the first data retention time. Moreover, the second data retention time may decrease as the cumulative number of the operations performed on at least some of the storage cells increases.
[046] In some embodiments, the refresh circuit is used to refresh the data regularly at a refresh rate corresponding to the first refresh interval. For example, the first refresh interval may be fixed, the operations may include program/erase operations, and the refresh is to occur after a pre-determined number of program/erase operations are performed on or proximate to at least a second subset of the storage cells (which may be separate from or included in the first subset of the storage cells). [047] In some embodiments, the refresh circuit is used to refresh the data at a sequence of refresh intervals, where a given refresh interval in the sequence of refresh intervals is less than the first refresh interval and the given refresh interval is less than a preceding refresh interval in the sequence of refresh intervals. For example, a refresh rate corresponding to the sequence of refresh intervals may progressively increases based on a cumulative number of program/erase cycles or operations performed on or proximate to at least the second subset of the storage cells.
[048] Moreover, in some embodiments the given refresh interval is based on a usage history of at least the second subset of the storage cells. For example, the operations may include read operations and the given refresh interval may be based on a number of read operations performed on or proximate to at least the second subset of the storage cells. Note that in some embodiments the given refresh interval is further based on a cumulative number of program/erase operations performed on or proximate to at least the second subset of the storage cells. [049] In some embodiments, at least the first subset of the storage cells includes a group of storage cells.
[050] In some embodiments, the storage cells include a solid-state memory, such as a charge-storage memory. For example, the storage cells may include NAND and/or NOR Flash memory. [051] In some embodiments, the second circuit is used to self-refresh the data in at least the first subset of the storage cells.
[052] In some embodiments, the data is refreshed based on an elapsed time since a previous refresh operation.
[053] In some embodiments, the data is refreshed using a refresh-in-place technique in which the data is temporarily stored and then rewritten to at least the first subset of the storage cells. Moreover, at least the first subset of the storage cells may be erased prior to when the data is refreshed. However, in some embodiments the data is refreshed using a rotation technique in which the data is written to another subset of the storage cells. In some embodiments, addresses associated with the data, such as in a mapping table, are remapped when the data is rotated to the other subset of the storage cells. Note that this other subset of the storage cells may be erased prior to when the data is written during the refresh operation. [054] In some embodiments, the first refresh interval is one or more hours, a day, or a week.
[055] In some embodiments, the second circuit is included in a fifth integrated circuit, which is included in a computer main memory. [056] In some embodiments, different portions of the storage cells have different storage characteristics, where a given storage characteristic is associated with a given variation in retention time as a function of the operations (such as read, write, and/or erase operations).
[057] In some embodiments, the refresh is to be used in conjunction with and/or to reduce an amount of wear-leveling, in which program operations are distributed across the memory so that storage cells wear out approximately evenly.
[058] Another embodiment provides a second memory controller that includes the refresh circuit. This refresh circuit may include control logic that is used to execute instructions associated with refreshing the data. [059] Another embodiment provides a second system that includes the second memory controller and a second memory module coupled to the second memory controller.
This memory module includes the storage cells. Moreover, in some embodiments the system is implemented on a second chip package that includes a sixth integrated circuit with the second memory controller and the second memory module or separate integrated circuits with, respectively, the second memory controller and the second memory module.
[060] Another embodiment provides a second computer-readable medium that includes data that specifies the second circuit, the second memory controller, the second memory module, and/or the second system.
[061] Another embodiment provides a second method of refreshing a memory, which may be performed by a device (such as the second circuit). During operation, the device stores data in at least the first subset of storage cells, where the storage cells have the first data retention time. Next, the device refreshes data in at least the second subset of the storage cells after the first refresh interval during which the operations are performed on at least some of the storage cells. Moreover, the first refresh interval is at least two orders of magnitude less than the first data retention time, and a second data retention time of at least some of the storage cells is a function of a cumulative number of the operations performed on at least some of the storage cells. [062] Additional embodiments provide a third circuit, a seventh integrated circuit that includes the second circuit and a third technique for refreshing a memory. This third circuit includes the storage cells having the first data retention time and the refresh circuit coupled to the storage cells. Moreover, the refresh circuit is used to self-refresh data stored in at least the first subset of the storage cells after the first refresh interval during which the operations are performed on at least some of the storage cells, and a second data retention time of at least some of the storage cells is a function of a cumulative number of the operations performed on at least some of the storage cells. For example, the refresh circuit may include control logic that is used to execute instructions associated with refreshing the data. Note that the second circuit may be included in a third memory module in a third system and/or a third chip package, and that data that specifies the third circuit may be stored on a third computer-readable medium.
[063] Embodiments of the one or more of these circuits, integrated circuits, and/or techniques may be used in a variety of applications, including: desktop or laptop computers, computer systems, hand-held or portable devices (such as personal digital assistants and/or cellular telephones), set-top boxes, home networks, and/or video-game devices. For example, a storage device (such as the memory module) may be included in computer main memory. Moreover, one or more of these embodiments may be included in a communication channel, such as: serial or parallel wireless links, wireless metropolitan area networks (such as WiMax), wireless local area networks (WLANs), and/or wireless personal area networks (WPANs).
[064] We now describe embodiments of circuits, devices and systems to refresh stored data. FIG. IA presents a graph 100 illustrating data retention time 110 as a function of a number of program/erase cycles 112 for an embodiment of Flash memory. Note that during a program cycle, data is stored on one or more previously erased cells by applying a voltage between a control gate and a body of the Flash memory such that charge flows through the channel between the source and drain in a given cell, some of which tunnels or is transported to (for example, by tunneling or hot-electron injection) and stored on a floating gate or other charge storage layer in the given cell. Moreover, this stored charge may correspond to binary information or multi-level information. After the charge is stored, the control gate is set to zero volts or some other level such that charge flow no longer occurs through the memory- cell transistor. Similarly, during an erase cycle another voltage is applied between the control gate and the body of the Flash memory (for example, the opposite polarity of the voltage) such that charge flows through the channel between the source and drain in the given cell, and the charge stored on the floating gate tunnels or is transported off of the floating gate. Once this charge on the floating gate is removed, the control gate is set to zero volts or some other level such that the charge flow no longer occurs through the memory-cell transistor.
[065] In the graph 100, for a small number of program/erase cycles 112, retention time 114-1 can be many years. However, as the number of program/erase cycles 112 increases retention times 114 progressively decrease due to data loss associated with charge leakage from storage cells in the Flash memory. [066] In some applications, such as computer main memory, the number of program/erase cycles 112 is very large. Consequently, the resulting endurance (and thus, the data retention time) may preclude the use of Flash memory in these applications. In principle, scaling or redesigning the storage cells in the Flash memory can improve a characteristic 116, such as the endurance (for example, by moving the curve in graph 100 to the right), thereby allowing Flash memory to be used in additional applications. However, redesigning Flash memory is expensive and time-consuming, and the variation of the data retention time 110 as a function of the number of program/erase cycles 112 may result in an endurance that is still inadequate for many applications.
[067] As noted previously, in the discussion that follows data refresh is used to restore data (and thus, to allow it to be read back) even though the data retention time of Flash memory degrades with use. As illustrated in graph 100, refresh allows the use of Flash memory, which has an existing characteristic 118 (such as the dependence of data retention time 110 on the number of program/erase cycles 112). In particular, as the number of program/erase cycles 112 increases, a time interval between refresh operations is decreased or a refresh rate is increased.
[068] This is shown in FIG. IB, which presents the graph 130 illustrating stored charge 140 as a function of the time 142 for an embodiment of Flash memory. At data- storage time to 150, a programmed charge level 144 is stored in one or more storage cells and power is then removed from these storage cells. Because of charge leakage, this stored charge decays over time 142 to minimum data-detect level 146, below which the stored data cannot be reliably recovered. Depending on the number of previously performed program/erase cycles on these or proximate storage cells, this decay follows different use-dependent rates of data loss as illustrated by retention curves 148. For example, retention curve 148-1 may correspond to more than 102 program/erase cycles, retention curve 148-2 may correspond to more than 103 program/erase cycles, retention curve 148-3 may correspond to more than 104 program/erase cycles, and retention curve 148-4 may correspond to more than 105 program/erase cycles.
[069] Note that, following a programming operation, the intersection of the retention curves 148 and the minimum data-detect level 146 define a series of retention times for the programmed charge level 144 to discharge to an un-resolvable state (for example, where it is no longer possible to distinguish between a logical ' 1 ' or a logical '0'). For a small number of program/erase cycles, such as less than 102 program/erase cycles, the intersection defines the tolerable retention interval 152, i.e., the maximum retention time associated with the Flash memory.
[070] For the typical non-volatile memory application, the tolerable retention interval 152 equals W for up to Y program/erase cycles, which specifies an acceptable retention curve (such as retention curve 148-1), and thus, the design and architecture of the Flash memory. As noted previously, for more-general storage applications, the tolerable retention interval 152 is required to equal X for up to Z program/erase cycles (where X is less than Wand Z is greater than Y). If this is not the case, i.e., the retention time is less than the tolerable retention interval 152, the design and architecture may not be suitable. In these cases, the Flash memory can be redesigned. Alternatively, as described further below, the data can be refreshed. For example, when the stored charge 140 decays to the minimum data- detect level 146, the stored data may be refreshed.
[071] Note that graph 130 also illustrates how the times when the data may be refreshed can vary as the number of program/erase cycles increases. In particular, the series of retention times defines a sequence of refresh intervals. For example, an initial refresh interval (for less than 102 program/erase cycles) may equal the tolerable retention interval 152 and, as the number of program/erase cycles increases, the refresh interval may decrease. Consequently, a refresh rate corresponding to the sequence of refresh intervals may progressively increase based on a cumulative number of program/erase cycles or operations performed on or proximate to the storage cells.
[072] A fixed refresh rate is shown in FIG. 1C, which presents a graph 160 illustrating stored charge 140 as a function of time 142 for an embodiment of Flash memory including refresh. In this embodiment, retention curve 148-5 may correspond to more than
106 program/erase cycles. Moreover, the stored data may be refreshed, for example, during data refresh 170-1, prior to the intersection between the retention curve 148-5 and the minimum data-detect level 146. For example, the data may be refreshed when the stored charge 140 decays below a threshold value.
[073] Note that after a given refresh operation, the stored charge 140 will start to decay again. However, by occasionally re-programming or refreshing the data, the effective retention time, which is referred to as a refresh-extended retention time, can exceed the tolerable retention interval 152, and thus, can meet the required retention time X of the more- general storage applications.
[074] Referring back to FIG. IA, refreshing data prevents data loss due to the leakage of charge from the storage cells in Flash memory. Consequently, for a given number of program/erase cycles, as long as stored data is refreshed before the associated data retention time is exceeded, the stored data may be recovered. While refresh results in lower data retention times 110 (because the degradation in the Flash memory is in general irreversible), it also increases the maximum number of program/erase cycles or the endurance of the Flash memory. Even though the Flash memory is now volatile, this may not be a problem in applications (such as computer main memory) where the stored data can be refreshed prior to the current data retention time. (Note that eventually, after many program/erase cycles and/or refresh operations, the data retention time becomes too short and it is not possible to refresh stored data before it is lost. At this point, the Flash memory is no longer usable.) Consequently, this technique allows existing Flash memory to be used in new applications without changing technology, i.e., without redesigning or scaling the Flash memory. [075] We now describe embodiments of devices and systems that are to refresh stored data. FIG. 2 presents a block diagram illustrating an embodiment of a memory system 200. This memory system includes at least one memory controller 210 and one or more memory devices 212, such as one or more memory modules. While FIG. 2 illustrates memory system 200 having one memory controller 210 and three memory devices 212, other embodiments may have additional memory controllers and fewer or more memory devices 212. Moreover, while memory system 200 illustrates memory controller 210 coupled to multiple memory devices 212, in other embodiments two or more memory controllers may be coupled to one another. Note that memory controller 210 and one or more of the memory devices 212 may be implemented on the same or different integrated circuits, and that these one or more integrated circuits may be included in a chip-package.
[076] In some embodiments, the memory controller 210 is a local memory controller (such as a Flash memory controller) and/or is a system memory controller (which may be implemented in a microprocessor). Either a local memory controller and/or a system memory controller may refresh stored data.
[077] Memory controller 210 may include control logic 220-1 and an I/O interface 218-1. Optionally, one or more of memory devices 212 may include control logic 220 and at least one of interfaces 218. However, in some embodiments some of the memory devices 212 may not have control logic 220 and/or one of the interfaces 218. Moreover, memory controller 210 and/or one or more of memory devices 212 may include more than one of the interfaces 218, and these interfaces may share one or more control logic 220 circuits. Note that in embodiments where memory devices 212 are memory modules, two or more of the memory devices 212, such as memory devices 212-1 and 212-2, may be configured as a memory bank 216.
[078] Memory controller 210 and memory devices 212 are coupled by one or more links 214. While memory system 200 illustrates three links 214, other embodiments may have fewer or more links 214. These links may include: wired, optical and/or wireless communication. Furthermore, links 214 may be used for bi-directional and/or uni-directional communications between the memory controller 210 and one or more of the memory devices 212. For example, bi-directional communication between the memory controller 210 and a given memory device may be simultaneous (full-duplex communication). Alternatively, the memory controller 210 may transmit information (such as a data packet which includes a command) to the given memory device, and the given memory device may subsequently provide requested data to the memory controller 210, i.e., a communication direction on one or more of the links 214 may alternate (half-duplex communication). Note that one or more of the links 214 and corresponding transmit circuits (which are illustrated in FIGs. 3 A and 3B) and/or receive circuits (which are illustrated in FIGs. 3A and 3B) may be dynamically configured, for example, by one of the control logic 220 circuits, for bi-directional and/or unidirectional communication. [079] In some embodiments, data may be communicated on one or more of the links
214 using one or more sub-channels associated with one or more carrier frequencies/. Moreover, a given sub-channel may have an associated: range of frequencies, a frequency band, or groups of frequency bands (henceforth referred to as a frequency band). For example, a baseband sub-channel is associated with a first frequency band and a passband sub-channel is associated with a second frequency band. Note that, if at least one of the links 214 is AC-coupled, the baseband sub-channel may not contain DC (i.e., does not include 0 Hz).
[080] In some embodiments, frequency bands for adjacent sub-channels may partially or completely overlap, or may not overlap. For example, there may be partial overlap of neighboring frequency bands, which occurs in so-called approximate bit loading. Moreover, in some embodiments signals on adjacent sub-channels may be orthogonal.
[081] Signals carried on these sub-channels may be time-multiplexed, frequency multiplexed, and/or encoded. Thus, in some embodiments the signals are encoded using: time division multiple access, frequency division multiple access, and/or code division multiple access. Moreover, in some embodiments signals are communicated on the links 214 using discrete multi-tone communication (such as Orthogonal Frequency Division Multiplexing).
[082] Note that encoding should be understood to include modulation coding and/or spread-spectrum encoding, for example, coding based on binary pseudorandom sequences (such as maximal length sequences or m-sequences), Gold codes, and/or Kasami sequences. Furthermore, modulation coding may include bit-to-symbol coding in which one or more data bits are mapped together to a data symbol, and symbol-to-bit coding in which one or more symbols are mapped to data bits. For example, a group of two data bits can be mapped to: one of four different amplitudes of an encoded data signal; one of four different phases of a sinusoid; or a combination of one of two different amplitudes of a sinusoid and one of two different phases of the same sinusoid (such as in quadrature amplitude modulation or QAM).
[083] In general, the modulation coding may include: amplitude modulation, phase modulation, and/or frequency modulation, such as pulse amplitude modulation (PAM), pulse width modulation, and/or pulse code modulation. For example, the modulation coding may include: two-level pulse amplitude modulation (2-PAM), four-level pulse amplitude modulation (A-PAM), eight-level pulse amplitude modulation (%-PAM), sixteen-level pulse amplitude modulation (16-PAM), two-level on-off keying (2-OOK), four-level on-off keying
(A-OOK), eight-level on-off keying (S-OOK), and/or sixteen-level on-off keying (16-OOK).
[084] In some embodiments, the modulation coding includes non-return-to-zero (NRZ) coding. Moreover, in some embodiments the modulation coding includes two-or- more-level QAM. Note that the different sub-channels communicated on the links 214 may be encoded differently and/or the modulation coding may be dynamically adjusted, for example, based on a performance metric associated with communication on one or more of the links 214.
[085] FIG. 3 A presents a block diagram illustrating an embodiment 300 of a memory controller 310, such as the memory controller 210 (FIG. 2). Data 318 to be transmitted by the memory controller 310 to a memory device (such as a Flash memory module) is temporarily stored in memory buffer 320-1. Then, the data 318 is forwarded to transmit circuits (Tx) 322, and is transmitted as (analog or digital) signals 330.
[086] Similarly, signals 332 may be received from the memory device using receive circuits (Rx) 334, which include detection circuits (such as slicer circuits) to determine data 338 from the signals 332. In some embodiments, data 338 is temporarily stored in memory buffer 320-2.
[087] Note that timing of the forwarding, receiving, and/or transmitting may be gated by one or more timing signals provided by frequency synthesizer 326. Consequently, signals 330 may be transmitted and/or signals 332 may be received based on either or both edges in the one or more timing signals. Moreover, in some embodiments, transmitting and receiving may be synchronous and/or asynchronous.
[088] These timing signals may be generated based on one or more clock signals 324, which may be generated on-chip (for example, using a phase-locked loop and one or more reference signals provided by a frequency reference) or off-chip. Moreover, voltage levels and/or a voltage swing of the signals 330 may be based on voltages 328 provided by a power supply (not shown), and logic levels of the data 338 may be based on voltages 336 provided by the power supply. These voltages may be fixed or may be adjustable.
[089] In some embodiments, a period of the one or more timing signals, a skew or delay of the one or more timing signals, and/or one or more of the voltages 328 and 336 are adjusted based on a performance metric associated with communication to and/or from the memory controller 310. This performance metric may include: a signal strength (such as a signal amplitude or a signal intensity), a mean square error (MSE) relative to a target (such as a detection threshold, a point in a constellation diagram, and/or a sequence of points in a constellation diagram), a signal-to-noise ratio (SNR), a bit-error rate (BER), a timing margin, and/or a voltage margin.
[090] Memory controller 310 may include control logic 312 and refresh circuit 314. Based on one or more factors (described further below), control logic 312 may instruct refresh circuit 314 to provide refresh commands to the memory device, instructing the memory device to refresh at least a portion of data stored on the memory device. For example, data stored in one or more storage cells on the memory device may be refreshed based on a usage history of the memory device, such as the number of program/erase cycles performed on or proximate to the one or more storage cells. Note that information about this usage history may be stored in optional memory 316. Note that in some embodiments this usage -history information is used to implement wear-leveling in the memory device.
[091] While not shown in FIG. 3 A, in some embodiments the memory controller 310 includes one or more additional transmit circuits coupled to a separate command link (or communication channel), which communicate commands (such as a refresh command) to the memory device. This separate link: may be wireless, optical or wired; may have a lower data rate than the data rates associated with one or more of the sub-channels; may use one or more different carrier frequencies than are used in the data sub-channels; and/or may use a different modulation technique than is used in the data sub-channels. However, in some embodiments commands (such as the refresh command) are communicated using one or more of the transmit circuits 322.
[092] In some embodiments, the refresh circuit 314 issues commands to refresh stored data regularly at a refresh rate corresponding to a refresh interval (which may be stored in optional memory 316). For example, the refresh interval may be fixed, and the refresh may occur after a pre-determined number of program/erase cycles or operations are performed on or proximate to the one or more storage cells. Moreover, refresh may be scheduled (such as at a given time every hour, multiple hours, day, week, and/or month) or may occur after an elapsed time since a previous refresh.
[093] However, in some embodiments the refresh interval and the refresh rate are variable. For example, the refresh circuit 314 may issue commands to refresh stored data at a sequence of refresh intervals, where a given refresh interval in the sequence of refresh intervals is smaller than an initial refresh interval and the given refresh interval is less than a preceding refresh interval in the sequence of refresh intervals. Moreover, a refresh rate corresponding to the sequence of refresh intervals may progressively increase based on the number of program/erase cycles or operations performed on or proximate to the storage cells.
[094] These embodiments take advantage of the characteristics of Flash memory illustrated in FIG. IA. In particular, because the data retention time 110 (FIG. IA) degrades as the number of program/erase cycles 112 (FIG. IA) increases, the initial refresh interval can be long, thereby reducing the refresh overhead early in the lifetime of the Flash memory.
[095] Another reliability characteristic of some Flash memory devices is read disturb. As storage cells (such as pages in a string) are read, data in other storage cells may be gradually disturbed. Eventually, this can result in a read failure. Moreover, read disturb is worse as the number of program/erase cycles increases. For example, a typical current Flash memory device may be able to read 100,000 times to the same string before failing when the memory device is new and 10,000 times before failing after the memory device has 10,000 program/erase cycles. Consequently, refresh of at least the portion of the storage cells on the memory device may be based on a number of read operations (i.e., a read count) performed on or proximate to these storage cells. And in some embodiments, refresh is based on a combination of the number of program/erase cycles and the number of read operations.
[096] More generally, refresh of the portion of the storage cells may be based on operation of the memory device, such as the usage history of the memory device. For example, other operations that may disturb stored data, and a count of these operations may be used to determine when refresh is needed. These operations may include operations that are specific to a given memory address, such as a page of storage cells on the edge of a string.
[097] Note that the portion of the storage cells that are refreshed may include one storage cell and/or a group of storage cells, such as: a page of storage cells, a string of storage cells, and/or a block of storage cells. Furthermore, the refresh interval or refresh rate may be selected such that the retention time is acceptable for a given application. For example, each storage cell on a memory device may be refreshed more often than its worst-case (i.e., smallest) data retention time.
[098] In an exemplary embodiment, the initial data retention time associated with a new memory device is long, such as: minutes, hours, or even months or more. Consequently, the initial refresh interval is also long (such as an hour, a day, or a week). However, the initial refresh interval is still less than the initial data retention time. For example, the initial refresh interval may be at least two orders of magnitude less than the initial data retention time.
[099] Control logic 312 may track a number of operations (such as write and/or read operations) performed on or proximate to a subset of the storage cells on the memory device. As the number of operations increases, the data retention time decreases. In some embodiments, the initial refresh interval is pre-determined based on the information in graph 100 (FIG. IA) and a rate of operations, i.e., the initial refresh interval is selected such that the number of operations during this interval results in a data retention time that is still long enough to allow the data to be read during the refresh operation. However, in other embodiments the initial refresh interval is dynamically determined based on the information in graph 100 (FIG. IA) and the number of operations. Note that after refreshing the stored data the stored data will have a new data retention time which is less than the initial data retention time.
[0100] FIG. 3B presents a block diagram illustrating an embodiment 350 of a memory device 360, such as one of the memory devices 212 (FIG. 2). In this memory device, signals 368 are received from another device (such as the memory controller 310 in FIG. 3A) using receive circuits (Rx) 370. These circuits may include detection circuits (such as slicer circuits) to determine data 380 from the signals 368. In some embodiments, data 380 is temporarily stored in memory buffer 378-1. Then, the data 380 is stored in one or more storage cells 382 (for example, NAND Flash memory and/or NOR Flash memory).
[0101] In response to a read command, data 384 is read back from one or more of the storage cells 382. Prior to being transmitted to the other device, this data may be temporarily stored in memory buffer 378-2. Then, the data 384 is forwarded to transmit circuits (Tx) 386, and is transmitted as (analog or digital) signals 390.
[0102] Note that timing of the forwarding, receiving, and/or transmitting may be gated by one or more timing signals provided by frequency synthesizer 374. Consequently, signals 390 may be transmitted and/or signals 368 may be received based on either or both edges in the one or more timing signals. In some embodiments, transmitting and receiving may be synchronous and/or asynchronous.
[0103] These timing signals may be generated based on one or more clock signals 372, which may be generated on-chip (for example, using a phase-locked loop and one or more reference signals provided by a frequency reference) or off-chip. Moreover, voltage levels and/or a voltage swing of the signals 390 may be based on voltages 388 provided by a power supply (not shown), and logic levels of the data 380 may be based on voltages 376 provided by the power supply. These voltages may be fixed or may be adjustable.
[0104] In some embodiments, a period of the one or more timing signals, a skew or delay of the one or more timing signals, and/or one or more of the voltages 376 and 388 are adjusted based on a performance metric associated with communication to and/or from the memory device 360. This performance metric may include: a signal strength (such as a signal amplitude or a signal intensity), a mean square error (MSE) relative to a target (such as a detection threshold, a point in a constellation diagram, and/or a sequence of points in a constellation diagram), a signal-to-noise ratio (SNR), a bit-error rate (BER), a timing margin, and/or a voltage margin.
[0105] While not shown in FIG. 3B, in some embodiments the memory device 360 includes one or more additional receive circuits coupled to the separate command link (or communication channel), which receive commands (such as a refresh command) from the other device. However, in some embodiments commands are received using one or more of the receive circuits 370.
[0106] In some embodiments, memory device 360 includes optional control logic 362 and optional refresh circuit 364. Based on one or more previously described factors, control logic 362 may instruct refresh circuit 364 to provide refresh commands to refresh data stored in one or more of the storage cells 382. For example, data stored in one or more of the storage cells 382 may be refreshed based on the usage history of the memory device 360. Note that information about this usage history may be stored in optional memory 366. In some embodiments, refresh is performed during a refresh mode of operation of the memory device 360.
[0107] Moreover, in some embodiments optional control logic 362 includes the functionality of a memory controller. Thus, in some embodiments the memory device 360 includes a memory module and a memory controller. These components may be included in a chip package on one or more integrated circuits. For example, the chip package may include a first integrated circuit that includes the memory controller and a second integrated circuit that include the memory module. As noted previously, the memory controller may be a local memory controller and/or a system memory controller. [0108] While refresh of Flash memory has been used as an illustration in the preceding discussion, in other embodiments the refresh technique may be applied to a variety of solid-state memory devices and, more generally, to memory media in which the data retention time is a function of the usage history. [0109] In some embodiments of the memory controller 310 (FIG. 3A) and/or the memory device 360, additional techniques are used to recover or prevent the loss of data communicated between devices and/or the loss of stored data in storage cells 382. For example, at least a portion of the data communicated between devices and/or the stored data may include error-detection-code (EDC) information and/or error-correction-code (ECC) information. This EDC and/or ECC information may be pre-existing or may dynamically generated (i.e., in real time).
[0110] In some embodiments, the ECC information includes a Bose-Chaudhuri- Hochquenghem (BCH) code. Note that BCH codes are a sub-class of cyclic codes. In exemplary embodiments, the ECC information includes: a cyclic redundancy code (CRC), a parity code, a Hamming code, a Reed-Solomon code, and/or another error checking and correction code.
[0111] Consequently, in some embodiments the receive circuits 370 implement error detection and/or correction. For example, errors associated with communication may be detected by performing a multi-bit XOR operation in conjunction with one or more parity bits in the signals 368.
[0112] Moreover, control logic 312 (FIG. 3A) and/or 362 may take a variety of remedial actions in the event of an error or a degradation of one or more of the performance metrics during communication between the memory controller 310 (FIG. 3A) and the memory device 360. These remedial actions may include: re-transmitting previous data; transmitting previous or new data (henceforth referred to as data) using an increased transmission power than the transmission power used in a previous transmission; reducing the data rate in one or more of the sub-channels relative to the data rate used in a previous transmission; transmitting data with reduced intersymbol interference (for example, with blank intervals inserted before and/or after the data); transmitting data at a single clock edge (as opposed to dual-data-rate transmission); transmitting data with at least a portion of the data including ECC or EDC; transmitting data using a different encoding or modulation code than the encoding used in a previous transmission; transmitting data after a pre-determined idle time; transmitting data to a different receive circuit; transmitting data to another device
(which may attempt to forward the data); and/or changing the number of sub-channels. Note that in some embodiments one or more of these adjustments are performed: continuously; as need based (for example, based on one or more of the performance metrics); and/or after a pre-determined time interval.
[0113] In some embodiments, the remedial action (and more generally adjustments to one or more of the sub-channels) is based on control information that is exchanged between the memory controller 310 (FIG. 3A) and the memory device 360. This control information may be exchanged using in-band communication (i.e., via the frequency bands used to communicate the signals 330 (FIG. 3A), 332 (FIG. 3A), 368, and 390) and/or out-of-band communication (for example, using the separate link).
[0114] In some embodiments, the remedial action and/or adjustments involve an auto- negotiation technique. During this auto-negotiation technique, a receive circuit in one of the devices may provide feedback to a transmit circuit in another device on the efficacy of any changes to the signals on a sub-channel. Based on this feedback, the transmit circuit may further modify these signals, i.e., may perform the remedial action.
[0115] Note that memory controller 310 (FIG. 3A) and/or memory device 360 may include fewer components or additional components. For example, signal lines coupling components may indicate multiple signal lines (or a bus). In some embodiments, memory controller 310 (FIG. 3A) and/or memory device 360 include pre-emphasis to compensate for losses and/or dispersion associated with inter-device communication. Similarly, in some embodiments a receiver of the signals includes equalization. Note that pre-emphasis and/or equalization may be implemented using feed-forward filters and/or decision-feedback- equalization circuits. [0116] Components and/or functionality illustrated in memory controller 310 (FIG.
3A) and/or memory device 360 may be implemented using analog circuits and/or digital circuits. Furthermore, components and/or functionality in either of these communication circuits may be implemented using hardware and/or software. For example, control logic 312 (FIG. 3A) and/or 362 may include a processor or a processor core, and refresh circuit 314 (FIG. 3A) and/or 364 may be implemented as instructions that are executed by the processor or the processor core. [0117] In some embodiments, memory controller 310 (FIG. 3A) and/or memory device 360 are configured to perform self-refresh, i.e., the refresh does not depend on external commands. For example, the memory device 360 may be able to perform a refresh operation without receiving commands from the memory controller 310 (FIG. 3A) or the memory controller 310 (FIG. 3A) may be able to instruct the memory device 360 to perform a refresh operation without receiving instructions from a processor in a computer system that includes these devices. However, in some embodiments functionality of the control logic 312 (FIG. 3A) and 362 and/or the refresh circuit 314 (FIG. 3A) and 364 is provided by such a processor in the computer system, i.e., the processor initiates the refresh operation by providing a refresh command to the memory controller 310 (FIG. 3A) and/or memory device 360.
[0118] Note that two or more components in memory controller 310 (FIG. 3A) and/or memory device 360 may be combined into a single component and/or the position of one or more components may be changed. In some embodiments, memory controller 310 (FIG. 3A) and/or memory device 360 are included in one or more integrated circuits on one or more semiconductor die.
[0119] We now describe embodiments of processes for refreshing a memory. Flash memory differs from other types of memory in that storage cells are erased before they are reprogrammed. Moreover, the erase operation is usually performed on at least a block of storage cells. Consequently, the refresh operation may also be performed on this block of storage cells. Because of these program and erase characteristics, refresh operations may be implemented in different ways, including: a refresh-in-place technique in which the data is temporarily stored and then rewritten to at least a subset of the storage cells; and a rotation technique in which the data is written to another subset of the storage cells. Because erasing the storage cells can be a time-consuming process, during the rotation technique it may be beneficial to write the data to a subset of the storage cells that were previously erased. For example, a spare block of storage cells may be held in reserve for this purpose (i.e., the Flash memory may not be completely filled). Moreover, the rotation technique may be facilitated using a look-up table (such as in file system) that includes information about which blocks of storage cells are in use, and what data is stored in these storage cells. [0120] FIG. 4A presents a flow chart illustrating an embodiment of a process 400 for refreshing stored data in place. During this process, after performing normal memory operations (410), a device (such as the memory device 360 in FIG. 3B) determines if a refresh criterion is reached for a block (412). If no, normal memory operations (410) resume.
However, if yes, the device copies data from the block to a temporary memory (414). Next, the device erases the block (416) and then programs data from the temporary memory back to the block (418). [0121] FIG. 4B presents a flow chart illustrating an embodiment of a process 450 for rotating stored data. During this process, after performing normal memory operations (410), the device determines if a refresh criterion is reached for a block (412). If no, normal memory operations (410) resume. However, if yes, the device copies data from the block to a new block (460), which has already been erased. Next, the device erases the block (416). Note that this refresh process may not require the temporary memory. In some embodiments, a page-mapping table is updated (462).
[0122] In some embodiments of the process 400 (FIG. 4A) and/or 450 there may be fewer or additional operations. Moreover, two or more operations can be combined into a single operation, and/or a position of one or more operations may be changed. [0123] FIGs. 5A-5D present block diagrams illustrating embodiments 500, 520, 540 and 560 of a memory block at different times during a data-rotation process. As illustrated in FIG. 5B, during this process valid data is copied 530 from one of memory block 510 (such as memory block 510-1) to a free memory block, such as memory block 510-N. Next, as illustrated in FIG. 5C, memory block 510-1 may be marked as having old data (i.e., invalid data) and may be subsequently erased (as illustrated in FIG. 5D). Later, this erased memory block may be used when rotating another block of valid data. In some embodiments the rotation technique uses a direct copy feature that is supported on most current NAND Flash memory devices.
[0124] Note that in this data-rotation process valid data is written to a free memory block based on the reliability of the stored data, for example, based on a number or read operations and/or a number of program/erase cycles, or on a worst-case pre-determined refresh rate. Moreover, in some embodiments, there is a continuous rotation of valid data to free memory blocks within the memory device. While FIGs. 5A-5D illustrate the data- rotation process using memory blocks 510, in other embodiments this technique rotates fewer or more storage cells at the same time.
[0125] FIG. 6 presents a flow chart illustrating an embodiment of a process 600 for refreshing a memory, which may be performed by a memory controller and/or a memory device. During operation, data is stored in at least a subset of storage cells (610), where the storage cells have a data retention time that progressively decreases from an initial data retention time to a substantially reduced data retention time as additional operations are performed on at least the subset of the storage cells. Then, the data in one or more of the storage cells is refreshed after a first refresh interval that is short enough to ensure data retention even after the data retention time of the one or more of the storage cells has decreased to the substantially reduced data retention time (612).
[0126] In some embodiments of the process 600 there may be fewer or additional operations. Moreover, two or more operations can be combined into a single operation, and/or a position of one or more operations may be changed.
[0127] Note that integrated circuits in the previously described embodiments, such as the memory controller and/or the memory device, may be included in computer systems. For example, FIG. 7 presents a block diagram illustrating an embodiment of a computer system 700. This computer system includes one or more processors 710, a communication interface 712, a user interface 714, and one or more signal lines 722 coupling these components together. Note that the one or more processing units 710 may support parallel processing and/or multi-threaded operation, the communication interface 712 may have a persistent communication connection, and the one or more signal lines 722 may constitute a communication bus. Moreover, the user interface 714 may include: a display 716, a keyboard 718, and/or a pointer 720, such as a mouse.
[0128] Computer system 700 may include memory 724, which may include high speed random access memory and/or non- volatile memory. More specifically, memory 724 may include: ROM, RAM, EPROM, EEPROM, Flash, one or more smart cards, one or more magnetic disc storage devices, and/or one or more optical storage devices. Memory 724 may store an operating system 726, such as SOLARIS, LINUX, UNIX, OS X, or WINDOWS, that includes procedures (or a set of instructions) for handling various basic system services for performing hardware dependent tasks. Memory 724 may also store procedures (or a set of instructions) in a communication module 728. The communication procedures may be used for communicating with one or more computers and/or servers, including computers and/or servers that are remotely located with respect to the computer system 700.
[0129] Memory 724 may also include the one or more program modules (of sets of instructions) 730. Instructions in the program modules 730 in the memory 724 may be implemented in a high-level procedural language, an object-oriented programming language, and/or in an assembly or machine language. The programming language may be compiled or interpreted, i.e., configurable or configured to be executed by the one or more processing units 710. [0130] Computer system 700 may include one or more memory devices 708 (such as memory modules and/or memory systems) that include integrated circuits with storage cells that are to be refreshed, as described in the previous embodiments. For example, the memory devices 708 may be included in the main memory of the computer system 700. Note that in some embodiments data stored in storage cells in one or more of the memory devices 708 is refreshed based on instructions executed by one or more of the processors 710.
Consequently, in some embodiments the memory devices 708 may not include refresh circuits.
[0131] Computer system 700 may include fewer components or additional components. Moreover, two or more components can be combined into a single component, and/or a position of one or more components may be changed. In some embodiments, the functionality of the computer system 700 may be implemented more in hardware and less in software, or less in hardware and more in software, as is known in the art.
[0132] Although the computer system 700 is illustrated as having a number of discrete items, FIG. 7 is intended to be a functional description of the various features that may be present in the computer system 700 rather than as a structural schematic of the embodiments described herein. In practice, and as recognized by those of ordinary skill in the art, the functions of the computer system 700 may be distributed over a large number of servers or computers, with various groups of the servers or computers performing particular subsets of the functions. In some embodiments, some or all of the functionality of the computer system 700 may be implemented in one or more application specific integrated circuits (ASICs) and/or one or more digital signal processors (DSPs).
[0133] Devices and circuits described herein may be implemented using computer aided design tools available in the art, and embodied by computer-readable files containing software descriptions of such circuits. These software descriptions may be: at behavioral, register transfer, logic component, transistor and layout geometry level descriptions.
Moreover, the software descriptions may be stored on storage media or communicated by carrier waves. [0134] Data formats in which such descriptions may be implemented include, but are not limited to: formats supporting behavioral languages like C, formats supporting register transfer level RTL languages like Verilog and VHDL, formats supporting geometry description languages (such as GDSII, GDSIII, GDSIV, CIF, and MEBES), and other suitable formats and languages. Moreover, data transfers of such files on machine-readable media including carrier waves may be done electronically over the diverse media on the Internet or, for example, via email. Note that physical files may be implemented on machine-readable media such as: 4 mm magnetic tape, 8 mm magnetic tape, 3 1/2 inch floppy media, CDs, DVDs, and so on. [0135] FIG. 8 presents a block diagram illustrating an embodiment of a system 800 that stores such computer-readable files. This system may include at least one data processor or central processing unit (CPU) 810, memory 824 and one or more signal lines or communication busses 822 for coupling these components to one another. Memory 824 may include high-speed random access memory and/or non-volatile memory, such as: ROM, RAM, EPROM, EEPROM, Flash, one or more smart cards, one or more magnetic disc storage devices, and/or one or more optical storage devices.
[0136] Memory 824 may store a circuit compiler 826 and circuit descriptions 828. Circuit descriptions 828 may include descriptions for the circuits, or a subset of the circuits discussed above with respect to FIGs. 2-3. In particular, circuit descriptions 828 may include circuit descriptions of: one or more memory controllers 830, one or more memory devices
832, one or more storage cells 834, one or more refresh circuits 838, and/or control logic 840 (or a set of instructions). Note that memory 824 may also store one or more storage characteristics 836, such as the variation of data retention time as a function of the number of program/erase cycles associated with the one or more storage cells 834. [0137] In some embodiments, system 800 includes fewer or additional components.
Moreover, two or more components can be combined into a single component, and/or a position of one or more components may be changed.
[0138] We now describe data structures that may be used in the system 800. FIG. 9 presents a block diagram illustrating an embodiment of a data structure 900. This data structure may include information for one or more storage characteristics 910. For example, the storage characteristics 910 may correspond to different refresh characteristics of different memory devices and/or different storage cells in a given memory device (such as a different variation in the retention time as a function of memory operations). A given storage characteristic, such as storage characteristic 910-1, may include multiple data points associated with characteristics such as that illustrated in graph 100 (FIG. IA). These data points each include a number of program/erase cycles 912 and an associated retention time 914.
[0139] Note that that in some embodiments of the data structures 900 there may be fewer or additional components. Moreover, two or more components can be combined into a single component, and/or a position of one or more components may be changed.
[0140] The foregoing descriptions of embodiments have been presented for purposes of illustration and description only. They are not intended to be exhaustive or to limit the present description to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present description. The scope of the present description is defined by the appended claims.

Claims

What is claimed is:
1. An integrated circuit, comprising: storage cells having a data retention time that progressively decreases from an initial data retention time to a substantially reduced data retention time as operations are performed on at least a subset of the storage cells; and a refresh circuit, coupled to the storage cells, to refresh data stored in one or more of the storage cells after a first refresh interval that is short enough to ensure data retention even after the data retention time of the one or more of the storage cells has decreased to the substantially reduced data retention time.
2. The integrated circuit of claim 1 , wherein the initial data retention time progressively decreases as the cumulative number of operations performed on at least the subset of the storage cells increases.
3. The integrated circuit of claim 1 , wherein the refresh circuit is to refresh the data regularly at a refresh rate corresponding to the first refresh interval.
4. The integrated circuit of claim 1 , wherein the first refresh interval is fixed; wherein the operations include program/erase operations; and wherein refresh is to occur after a pre-determined number of program/erase operations are performed on or proximate to at least the one or more storage cells.
5. The integrated circuit of claim 1, wherein the refresh circuit is to refresh the data at a sequence of refresh intervals; wherein a given refresh interval in the sequence of refresh intervals is less than the first refresh interval; and wherein the given refresh interval is less than a preceding refresh interval in the sequence of refresh intervals.
6. The integrated circuit of claim 5, wherein the operations include program/erase operations, and wherein a refresh rate corresponding to the sequence of refresh intervals progressively increases based on a cumulative number of program/erase operations performed on or proximate to at least the one or more storage cells.
7. The integrated circuit of claim 5, wherein the given refresh interval is based on a usage history of at least the one or more storage cells.
8. The integrated circuit of claim 5, wherein the operations include read operations, and wherein the given refresh interval is based on a number of read operations performed on or proximate to at least the one or more storage cells.
9. The integrated circuit of claim 8, wherein the operations include program/erase operations, and wherein the given refresh interval is further based on a cumulative number of program/erase operations performed on or proximate to the one or more storage cells.
10. The integrated circuit of claim 1, wherein at least the subset of the storage cells includes a group of storage cells.
11. The integrated circuit of claim 1 , wherein the storage cells include a solid-state memory.
12. The integrated circuit of claim 1 , wherein the storage cells include NAND or NOR Flash memory.
13. The integrated circuit of claim 1, wherein the integrated circuit is to self-refresh the data in at least the subset of the storage cells.
14. The integrated circuit of claim 1 , wherein the data is refreshed using a refresh-in-place technique in which the data is temporarily stored and then rewritten to at least the subset of the storage cells.
15. The integrated circuit of claim 14, wherein at least the subset of the storage cells is erased prior to when the data is rewritten during the refresh operation.
16. The integrated circuit of claim 1 , wherein the data is refreshed using a rotation technique in which the data is written to another subset of the storage cells.
17. The integrated circuit of claim 16, wherein the other subset of the storage cells is erased prior to the refresh operation.
18. The integrated circuit of claim 1 , wherein the first refresh interval is one or more hours, a day, or a week.
19. The integrated circuit of claim 1, wherein the integrated circuit is included in a computer main memory.
20. The integrated circuit of claim 1, wherein different portions of the storage cells have different storage characteristics, and wherein a given storage characteristic is associated with a given variation in data retention time as a function of the operations.
21. The integrated circuit of claim 1 , wherein the refresh is to be used in conjunction with wear-leveling.
22. The integrated circuit of claim 1, wherein the refresh is to be used to reduce an amount of wear-leveling.
23. An integrated circuit, comprising: storage cells having a data retention time that progressively decreases from an initial data retention time to a substantially reduced data retention time as operations are performed on at least a subset of the storage cells; and means, coupled to the storage cells, for refreshing data stored in one or more of the storage cells after a first refresh interval that is short enough to ensure data retention even after the data retention time of the one or more of the storage cells has decreased to the substantially reduced data retention time.
24. A circuit, comprising: storage cells having a data retention time that progressively decreases from an initial data retention time to a substantially reduced data retention time as operations are performed on at least a subset of the storage cells; and a refresh circuit, coupled to the storage cells, to refresh data stored in one or more of the storage cells after a first refresh interval that is short enough to ensure data retention even after the data retention time of the one or more of the storage cells has decreased to the substantially reduced data retention time.
25. An integrated circuit, comprising a memory controller to couple to a memory device that includes storage cells having a data retention time that progressively decreases from an initial data retention time to a substantially reduced data retention time as operations are performed on at least a subset of the storage cells; wherein the memory controller includes a refresh circuit to refresh data stored in one or more of the storage cells after a first refresh interval that is short enough to ensure data retention even after the data retention time of the one or more of the storage cells has decreased to the substantially reduced data retention time.
26. The integrated circuit of claim 25, wherein the refresh circuit includes control logic, and wherein the control logic is to execute instructions associated with refreshing the data.
27. A chip package, comprising: first integrated circuit, wherein the first integrated circuit includes storage cells having a data retention time that progressively decreases from an initial data retention time to a substantially reduced data retention time as operations are performed on at least a subset of the storage cells; and second integrated circuit, coupled to the first integrated circuit, wherein the second integrated circuit includes a memory controller coupled to the first integrated circuit; wherein the memory controller includes a refresh circuit to refresh data stored in one or more of the storage cells after a first refresh interval that is short enough to ensure data retention even after the data retention time of the one or more of the storage cells has decreased to the substantially reduced data retention time.
28. The chip package of claim 27, wherein the refresh circuit includes control logic, and wherein the control logic is to execute instructions associated with refreshing the data.
29. A system, comprising: memory module, wherein the memory module includes storage cells having a data retention time that progressively decreases from an initial data retention time to a substantially reduced data retention time as operations are performed on at least a subset of the storage cells; and a memory controller coupled to the memory module, wherein the memory controller includes a refresh circuit to refresh data stored in one or more of the storage cells after a first refresh interval that is short enough to ensure data retention even after the data retention time of the one or more of the storage cells has decreased to the substantially reduced data retention time.
30. The system of claim 29, wherein the refresh circuit includes control logic, and wherein the control logic is to execute instructions associated with refreshing the data.
31. The system of claim 29, wherein the memory controller and the memory module are on a common integrated circuit.
32. A method of refreshing a memory, comprising: storing data in at least a subset of storage cells, wherein the storage cells have a data retention time that progressively decreases from an initial data retention time to a substantially reduced data retention time as additional operations are performed on at least the subset of the storage cells; and refreshing data in one or more of the storage cells after a first refresh interval that is short enough to ensure data retention even after the data retention time of the one or more of the storage cells has decreased to the substantially reduced data retention time.
33. The method of claim 32, wherein the data is refreshed regularly at a refresh rate corresponding to the first refresh interval.
34. The method of claim 32, wherein the first refresh interval is fixed; wherein the additional operations include program/erase operations; and wherein the refreshing occurs after a pre-determined number of program/erase operations are performed on or proximate to at least the one or more storage cells.
35. The method of claim 32, wherein the data is refreshed at a sequence of refresh intervals; wherein a given refresh interval in the sequence of refresh intervals is less than the first refresh interval; and wherein the given refresh interval is less than a preceding refresh interval in the sequence of refresh intervals.
36. The method of claim 32, wherein the additional operations include program/erase operations, and wherein a refresh rate corresponding to the sequence of refresh intervals progressively increases based on a cumulative number of program/erase operations performed on or proximate to at least the one or more storage cells.
37. The method of claim 32, wherein the given refresh interval is based on a usage history of at least the one or more storage cells.
38. The method of claim 32, wherein the additional operations include read operations, and wherein the given refresh interval is based on a number of read operations performed on or proximate to at least the one or more storage cells.
39. A computer-readable medium containing first data representing a circuit that includes: storage cells having a data retention time that progressively decreases from an initial data retention time to a substantially reduced data retention time as operations are performed on at least a subset of the storage cells; and a refresh circuit, coupled to the storage cells, to refresh data stored in one or more of the storage cells after a first refresh interval that is short enough to ensure data retention even after the data retention time of the one or more of the storage cells has decreased to the substantially reduced data retention time.
PCT/US2008/072917 2007-09-26 2008-08-12 Flash memory refresh WO2009042298A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US97541407P 2007-09-26 2007-09-26
US60/975,414 2007-09-26

Publications (1)

Publication Number Publication Date
WO2009042298A1 true WO2009042298A1 (en) 2009-04-02

Family

ID=39807671

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2008/072917 WO2009042298A1 (en) 2007-09-26 2008-08-12 Flash memory refresh

Country Status (1)

Country Link
WO (1) WO2009042298A1 (en)

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049713A (en) * 2012-12-20 2013-04-17 华为技术有限公司 Method, device and system for inspecting data in storage device
WO2014169257A1 (en) * 2013-04-11 2014-10-16 SMART Storage Systems, Inc. Storage control system with power-off time estimation mechanism and method of operation thereof
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
WO2015070082A1 (en) * 2013-11-11 2015-05-14 Qualcomm Incorporated Fail safe refresh of data stored in nand memory device
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
KR20150142613A (en) * 2014-06-11 2015-12-22 로베르트 보쉬 게엠베하 Refresh of a storage area of a non-volatile random access memory
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9280419B2 (en) 2013-12-16 2016-03-08 International Business Machines Corporation Dynamic adjustment of data protection schemes in flash storage systems based on temperature, power off duration and flash age
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9378830B2 (en) 2013-07-16 2016-06-28 Seagate Technology Llc Partial reprogramming of solid-state non-volatile memory cells
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US9576649B2 (en) 2015-03-31 2017-02-21 Seagate Technology Llc Charge loss compensation through augmentation of accumulated charge in a memory cell
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
CN109473138A (en) * 2017-09-07 2019-03-15 三星电子株式会社 Storage device and its method for refreshing
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511020A (en) * 1993-11-23 1996-04-23 Monolithic System Technology, Inc. Pseudo-nonvolatile memory incorporating data refresh operation
US5652720A (en) * 1994-12-20 1997-07-29 Sgs-Thomson Microelectronics S.A. Electrically programmable memory with improved retention of data and a method of writing data in said memory
US20050135155A1 (en) * 2003-12-19 2005-06-23 Renesas Technology Corp. Nonvolatile semiconductor memory device
WO2005106886A2 (en) * 2004-04-29 2005-11-10 M-Systems Flash Disk Pioneers Ltd. Refreshing data stored in a flash memory
US20060227591A1 (en) * 2005-03-30 2006-10-12 Tyler Lowrey Using higher current to read a triggered phase change memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511020A (en) * 1993-11-23 1996-04-23 Monolithic System Technology, Inc. Pseudo-nonvolatile memory incorporating data refresh operation
US5652720A (en) * 1994-12-20 1997-07-29 Sgs-Thomson Microelectronics S.A. Electrically programmable memory with improved retention of data and a method of writing data in said memory
US20050135155A1 (en) * 2003-12-19 2005-06-23 Renesas Technology Corp. Nonvolatile semiconductor memory device
WO2005106886A2 (en) * 2004-04-29 2005-11-10 M-Systems Flash Disk Pioneers Ltd. Refreshing data stored in a flash memory
US20060227591A1 (en) * 2005-03-30 2006-10-12 Tyler Lowrey Using higher current to read a triggered phase change memory

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
CN103049713A (en) * 2012-12-20 2013-04-17 华为技术有限公司 Method, device and system for inspecting data in storage device
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
WO2014169257A1 (en) * 2013-04-11 2014-10-16 SMART Storage Systems, Inc. Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9378830B2 (en) 2013-07-16 2016-06-28 Seagate Technology Llc Partial reprogramming of solid-state non-volatile memory cells
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9665295B2 (en) 2013-08-07 2017-05-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
JP2016540297A (en) * 2013-11-11 2016-12-22 クアルコム,インコーポレイテッド Fail-safe refresh of data stored in NAND memory devices
WO2015070082A1 (en) * 2013-11-11 2015-05-14 Qualcomm Incorporated Fail safe refresh of data stored in nand memory device
US9329802B2 (en) 2013-11-11 2016-05-03 Qualcomm Incorporated Fail safe refresh of data stored in NAND memory device
CN105723462A (en) * 2013-11-11 2016-06-29 高通股份有限公司 Fail safe refresh of data stored in NAND memory device
KR101736944B1 (en) 2013-11-11 2017-05-17 퀄컴 인코포레이티드 Fail safe refresh of data stored in nand memory device
US20150134888A1 (en) * 2013-11-11 2015-05-14 Qualcomm Incorporated Fail Safe Refresh of Data Stored in NAND Memory Device
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9571128B2 (en) 2013-12-16 2017-02-14 International Business Machines Corporation Dynamic adjustment of data protection schemes in flash storage systems based on temperature, power off duration and flash age
US9280419B2 (en) 2013-12-16 2016-03-08 International Business Machines Corporation Dynamic adjustment of data protection schemes in flash storage systems based on temperature, power off duration and flash age
KR20150142613A (en) * 2014-06-11 2015-12-22 로베르트 보쉬 게엠베하 Refresh of a storage area of a non-volatile random access memory
KR102377670B1 (en) 2014-06-11 2022-03-24 로베르트 보쉬 게엠베하 Refresh of a storage area of a non-volatile random access memory
US9576649B2 (en) 2015-03-31 2017-02-21 Seagate Technology Llc Charge loss compensation through augmentation of accumulated charge in a memory cell
CN109473138A (en) * 2017-09-07 2019-03-15 三星电子株式会社 Storage device and its method for refreshing
CN109473138B (en) * 2017-09-07 2024-01-30 三星电子株式会社 Memory device and refreshing method thereof

Similar Documents

Publication Publication Date Title
WO2009042298A1 (en) Flash memory refresh
US8300477B2 (en) Piecewise erasure of flash memory
US10048879B2 (en) Nonvolatile memory recovery after power failure during write operations or erase operations
US9478292B2 (en) Read operation for a non-volatile memory
US8819503B2 (en) Apparatus and method for determining an operating condition of a memory cell based on cycle information
US9378830B2 (en) Partial reprogramming of solid-state non-volatile memory cells
US9263142B2 (en) Programming a memory cell using a dual polarity charge pump
EP2548121B1 (en) Mlc self-raid flash data protection scheme
US8284599B2 (en) Nonvolatile memory device and related programming method
US20160118132A1 (en) Low Impact Read Disturb Handling
US8365030B1 (en) Nonvolatile memory devices and error correction methods thereof
US10020065B2 (en) Corruption-preventative programming in solid-state data storage
US10996862B2 (en) Adaptive read trim for second read data retention
AU2014248239A1 (en) Systems and methods of write precompensation to extend life of a solid-state memory
US10417122B2 (en) Data randomization using memory block access counts
WO2009072100A2 (en) Systems and methods for temporarily retiring memory portions
KR20100102925A (en) Non-volatile memory device and memory system generating read reclaim signal
US10008275B1 (en) Control method for solid state storage device
US9235509B1 (en) Write amplification reduction by delaying read access to data written during garbage collection
KR20170033227A (en) Solid state memory system with power management mechanism and method of operation thereof
Khakifirooz et al. A 1.67 tb, 5b/cell flash memory fabricated in 192-layer floating gate 3d-nand technology and featuring a 23.3 gb/mm 2 bit density
US20200035307A1 (en) Solid state storage device and read table management method thereof
EP0852798B1 (en) Multiple writes per a single erase for a nonvolatile memory
Yang et al. Retention failure recovery technique for 3D TLC NAND flash memory via wordline (WL) interference
US9373367B1 (en) Data storage device and operating method thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08833866

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08833866

Country of ref document: EP

Kind code of ref document: A1