This relates generally to non-volatile memory systems. Examples of non-volatile memory systems include solid state drives, removable media such as universal serial bus (“USB”) keys, and secure digital (“SD”) cards.
Flash memory systems include one or more NAND memory integrated circuit dice with a controller operated by system firmware. The controller issues write commands to the memory dice that originate from two sources. Host write commands originate from outside the NAND memory system, typically from the host system attached to the memory system. Such writes are commonly issued by a personal computer operating system. In addition, the controller system firmware itself originates background write activities such as wear leveling data relocation, background data refresh, and physical/logical defragmentation operations.
Some embodiments are described with respect to the following figures:
In accordance with some embodiments, host writes may be handled differently from background writes to non-volatile memory systems. As a result of using different write algorithms for host writes and backgrounds writes, maximum system lifetime and the maximum system performances may be improved in some embodiments.
A NAND flash memory system's endurance and reliability may be directly affected by the underlying internal NAND program and erase algorithm and voltages. For example, smaller program voltage steps can improve total sensing margin with tighter cell threshold voltage placement. Lower voltages can reduce that electric stress and charge trap-up.
However, while being better for endurance and reliability, these write algorithms may be slower to execute, leading to slower system performance. As a result, overall system reliability and endurance are often limited or traded off to achieve certain post-performance goals. At advanced lithographic nodes, cell-to-cell interference has become a dominate factor in limiting NAND endurance and reliability as the total sensing margin is reduced due to cell threshold voltage placement broadening, caused by neighboring cell couplings.
It is possible to program the array based on surrounding data patterns to achieve tight threshold voltage placement for better sensing margin. However, such treatments require additional programming operations after the next neighboring page being programmed, which significantly show down host system performance.
Referring to
Depending on the write originator, the write algorithm may be switched to improve performance and/or system lifetime in some embodiments. The firmware 14 is necessarily aware of the originator of all media writes before dispatching the write to the memory dice 16. This knowledge of the write originator may be exploited to deploy different internal write algorithms for different types of writes.
In one embodiment, user selectable profiles may be used. The memory dice 16 may have multiple trim profiles stored in an on-chip read only memory (“ROM”) 18 that can be selected through a set feature command at run time to change the internal write algorithm. The trim profiles are control parameters for the internal write algorithm. For example, preset fine placement program steps may be used in one trim profile for background writes and coarse placement program steps may be used in another trim profile for host writes. The firmware 14 selects one of these two profiles at run time by issuing a set feature command to the dice 16 ahead of write dispatch.
In another embodiment, the trims are directly manipulated. The dice 16 internal trims can be directly manipulated at run time through special command interfaces such as a test mode access and set feature mode. Firmware issues these trim changing commands to the dice ahead of write dispatch. This method may have advantages over the user selectable trim profile because it provides more flexibility for actual implementation with the possibility of dynamic management such as cycle-based adjustments. The disadvantage may be added complexity in some embodiments.
In accordance with another manner of setting different modes, hybrid writes with single level cell and multilevel cell modes may be deployed to write host data in high performance and high endurance, single level cell mode, or 1.5 bit-per-cell mode, while background write data with low performance but high endurance two bit-per-cell mode may be used to achieve both high performance and high endurance in the memory system. Then the system deals with the reduced capacity in the foreground mode and switches to different write modes on the fly.
Data-pattern-aware corrective programming modes may be deployed only for background writes to improve endurance and reliability in some embodiments. The dice may have special internal programming modes such as touch up programming and corrective programming that can be used to place a tighter threshold voltage distribution based on surrounding data patterns. However, a large program time downside may result from such a mode that practically prohibits the deployment for host writes even with a cycle-based triggering implementation, since customers may be sensitive to performance degradation over product lifetime. Thus, firmware may be used to turn-on the special programming mode for background writes only at run time in addition to using separately optimized trim to improve system reliability.
Constrained coding that can restrict a neighbor cell's relative threshold voltage differentials in multilevel cell memory arrays may be implemented by the firmware and system hardware to use different coding schemes in writing data to the NAND dice depending on whether it is a host write or a background write. This constrained coding improves the reliability without significantly affecting performance even for background writes. This is because the primary limiter of cell-to-cell interference has already been controlled prior to writing the data pattern to the NAND memory system. The downsides to this approach include requiring separate coding/decoding handling for host written data and system written data. In addition, the system may need to handle both read and write operations according to coding schemes.
Still another approach for optimizing host and background writes is to use proactive background cleanup operations to proactively rewrite the host-written data with more reliable background write algorithms. This may improve system reliability in some embodiments. The firmware may leverage existing background data refresh algorithms to prioritize rewrite of fresh host written data and to manage different refresh schedules based on whether the data is written by the host or other background activities with reliable writes, such as wear leveling data relocation.
Referring to
The sequence begins by receiving data to write at block 20. A check at diamond 22 determines whether the originator of the write is the host or the system firmware 14. If it is host originated write, then the write is dispatched as indicated in block 24 with the default write mode. Then the block is flagged as being written by the host as indicated at block 26.
If it is determined in diamond 22 that the write is a background write, then the trims may be set up as described above and the modes set for a background write as indicated on block 28. Then in block 30 the write is dispatched with the background write mode. A flag is set to mark that the block has been background written as indicated in block 32. Then the NAND trims and mode may be set back to the write default mode (i.e. a host originated write) as indicated in block 34.
While an embodiment is described in which the host write mode is the default mode, the background write mode can also be set as the default mode and the trims modified for the host write.
While an embodiment is described in which the host write mode is the default mode, the background write mode can also be set as the default mode and the trims modified for the host write.
Referring to
References throughout this specification to “one embodiment” or “an embodiment” mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one implementation encompassed within the present invention. Thus, appearances of the phrase “one embodiment” or “in an embodiment” are not necessarily referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be instituted in other suitable forms other than the particular embodiment illustrated and all such forms may be encompassed within the claims of the present application.
While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US11/68002 | 12/30/2011 | WO | 00 | 6/12/2013 |
Number | Date | Country | |
---|---|---|---|
61504054 | Jul 2011 | US |