1. Technical Field
This disclosure relates to solid-state storage systems. In particular, this disclosure relates to a system and method for improving wear-leveling performance.
2. Description of Related Art
Wear leveling is commonly used in Solid State Drives (SSDs) to prolong their lifecycle. A typical wear leveling operation involves moving data content in a first block of memory to a second block of memory that has just reached a certain erase level/count because of a recent erase operation. The first block of memory is then erased and made available for a future write operation. The overall process of wear leveling ensures that erase operations are evenly spread across blocks of memory in a SSD. Since each erase operation increases the wear of a block by incrementally reducing the block's ability to properly retain data content, wear leveling helps prevent certain blocks of memory from receiving an excessive amount of erase operations relative to other blocks and thus experiencing data failures much earlier than other blocks.
Systems and methods which embody the various features of the invention will now be described with reference to the following drawings, in which:
While certain embodiments of the inventions are described, these embodiments are presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel methods and systems described herein may be embodied in a variety of other forms. Furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the inventions.
System Overview
Embodiments of the invention are directed to systems and methods for improving wear leveling performance in solid-state memory. The embodiments described herein make more consistent the number of wear leveling operations that needs to be performed, so that sudden spikes in the number wear leveling operations may be reduced in solid-state memory. In one embodiment, a staggered threshold wear leveling approach is used to spread out the execution of wear leveling operations that otherwise would have been triggered in clusters. With the use of staggered thresholds, different thresholds are assigned to different elements within a group of solid-state memory elements that is commonly erased together, such as a group of blocks. For example, a group of blocks may be distributed across several dies, with one block in each die. Each block in the group may have a different threshold so that the thresholds in the group are staggered and the wear leveling operations are triggered in a staggered fashion that reduces the chance that the operations are triggered in clusters.
As used in this application, “non-volatile memory” typically refers to solid-state memory such as NAND flash. However, the systems and methods of this disclosure may also be useful in more conventional hard drives and hybrid drives including both solid-state and hard drive components. As such, while certain internal operations are referred to which typically are associated with solid-state drives, such as “wear leveling” and “garbage collection,” analogous operations for hard drives can also take advantage of this disclosure. Solid-state memory may comprise a wide variety of technologies, such as flash integrated circuits, Chalcogenide RAM (C-RAM), Phase Change Memory (PC-RAM or PRAM), Programmable Metallization Cell RAM (PMC-RAM or PMCm), Ovonic Unified Memory (OUM), Resistance RAM (RRAM), NAND memory, NOR memory, EEPROM, Ferroelectric Memory (FeRAM), or other discrete NVM (non-volatile memory) chips. The solid-state storage devices may be physically divided into planes, blocks, pages, and sectors, as is known in the art. Other forms of storage (e.g., battery backed-up volatile DRAM or SRAM devices, magnetic disk drives, etc.) may additionally or alternatively be used.
Wear Leveling Operations
In the simplified example of
Overview of Staggered Threshold-Based Wear Leveling
Illustration 320 shows a different sequence under the staggered threshold-based wear leveling approach, which spreads out the execution of wear leveling operations that otherwise would have been triggered together. As its name suggests, in one embodiment, the staggered threshold-based approach ensures that the blocks in a superblock are periodically wear leveled according to a set of staggered thresholds instead of being triggered by a uniform threshold across the various blocks. In one embodiment, blocks in a superblock are periodically wear leveled based on staggered threshold assignments. In one embodiment, the staggered thresholds are set in accordance with an interval threshold value denoting a number of erase operations between two wear leveling operations (wear levels). The interval is set to 4 in the example shown in
In one embodiment, the interval value is based on the maximum number of lifetime erases divided by the number of wear levels. For example, a superblock with a maximum number of lifetime erases of 256 and 32 wear levels may have the interval value set at 8. Assume further in that example that the 32 blocks are distributed across 32 dies. Thus the dies may be assigned thresholds as follows for the first wear level:
The staggered initial thresholds (8-15) may be assigned on a rotation basis to the blocks from different dies or planes. Alternatively, in another embodiment, the thresholds may be a sum of the position number of the block within the superblock and the interval threshold. For example, if the interval threshold is 32 then the thresholds for the 32 dies could be 33, 34, 35, 36, and so on. Alternatively, the same variations can be applied to individual blocks within the superblock regardless of whether the blocks belong to the same or different dies or planes. In addition, after the last threshold has been reached (threshold 15 in this example), the thresholds may be changed to accommodate the next wear level. For example, the next set of thresholds would be 16-23, and the set after would be 24-31, and so on. The staggered threshold approach avoids the sudden need to execute a large number of wear leveling operations while ensuring that blocks are properly selected for wear leveling over a period of time for even wear. Preferably, the thresholds are set such that no more than X % of the blocks of any superblock can be wear leveled at a time, where X is in the range of 2 to 20, and more preferably in the range of about 3.13% (1 of 32) to 6.25% (1 of 16).
Returning to
Staggered Threshold Wear Leveling Operation
In one embodiment, a lesser worn block is chosen in Die No. 0 to be wear leveled with the block that just triggered the wear leveling (from the just erased Block No. 0 in Superblock No. 1).
While certain embodiments of the inventions have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel methods and systems described herein may be embodied in a variety of other forms. Furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions. For example, those skilled in the art will appreciate that in various embodiments, the actual steps taken in the processes shown in
Number | Name | Date | Kind |
---|---|---|---|
6016275 | Han | Jan 2000 | A |
6230233 | Lofgren et al. | May 2001 | B1 |
6594183 | Lofgren et al. | Jul 2003 | B1 |
6732221 | Ban | May 2004 | B2 |
6850443 | Lofgren et al. | Feb 2005 | B2 |
6856556 | Hajeck | Feb 2005 | B1 |
7096313 | Chang et al. | Aug 2006 | B1 |
7126857 | Hajeck | Oct 2006 | B2 |
7353325 | Lofgren et al. | Apr 2008 | B2 |
7430136 | Merry, Jr. et al. | Sep 2008 | B2 |
7447807 | Merry et al. | Nov 2008 | B1 |
7502256 | Merry, Jr. et al. | Mar 2009 | B2 |
7509441 | Merry et al. | Mar 2009 | B1 |
7596643 | Merry, Jr. et al. | Sep 2009 | B2 |
7653778 | Merry, Jr. et al. | Jan 2010 | B2 |
7660941 | Lee et al. | Feb 2010 | B2 |
7685337 | Merry, Jr. et al. | Mar 2010 | B2 |
7685338 | Merry, Jr. et al. | Mar 2010 | B2 |
7685374 | Diggs et al. | Mar 2010 | B2 |
7733712 | Walston et al. | Jun 2010 | B1 |
7765373 | Merry et al. | Jul 2010 | B1 |
7797481 | Lee et al. | Sep 2010 | B2 |
7898855 | Merry, Jr. et al. | Mar 2011 | B2 |
7912991 | Merry et al. | Mar 2011 | B1 |
7936603 | Merry, Jr. et al. | May 2011 | B2 |
7962792 | Diggs et al. | Jun 2011 | B2 |
8078918 | Diggs et al. | Dec 2011 | B2 |
8090899 | Syu | Jan 2012 | B1 |
8095851 | Diggs et al. | Jan 2012 | B2 |
8099545 | Biswas et al. | Jan 2012 | B2 |
8108692 | Merry et al. | Jan 2012 | B1 |
8122185 | Merry, Jr. et al. | Feb 2012 | B2 |
8127048 | Merry et al. | Feb 2012 | B1 |
8135903 | Kan | Mar 2012 | B1 |
8151020 | Merry, Jr. et al. | Apr 2012 | B2 |
8161227 | Diggs et al. | Apr 2012 | B1 |
8166245 | Diggs et al. | Apr 2012 | B2 |
8239614 | Asnaashari et al. | Aug 2012 | B2 |
8243525 | Kan | Aug 2012 | B1 |
8254172 | Kan | Aug 2012 | B1 |
8261012 | Kan | Sep 2012 | B2 |
8296625 | Diggs et al. | Oct 2012 | B2 |
8312207 | Merry, Jr. et al. | Nov 2012 | B2 |
8316176 | Phan et al. | Nov 2012 | B1 |
8341339 | Boyle et al. | Dec 2012 | B1 |
8375151 | Kan | Feb 2013 | B1 |
8392635 | Booth et al. | Mar 2013 | B2 |
8397107 | Syu et al. | Mar 2013 | B1 |
8407449 | Colon et al. | Mar 2013 | B1 |
8423722 | Deforest et al. | Apr 2013 | B1 |
8433858 | Diggs et al. | Apr 2013 | B1 |
8443167 | Fallone et al. | May 2013 | B1 |
8447920 | Syu | May 2013 | B1 |
8458435 | Rainey, III et al. | Jun 2013 | B1 |
8478930 | Syu | Jul 2013 | B1 |
8489854 | Colon et al. | Jul 2013 | B1 |
8503237 | Horn | Aug 2013 | B1 |
8521972 | Boyle et al. | Aug 2013 | B1 |
8549236 | Diggs et al. | Oct 2013 | B2 |
8583835 | Kan | Nov 2013 | B1 |
8601311 | Horn | Dec 2013 | B2 |
8601313 | Horn | Dec 2013 | B1 |
8612669 | Syu et al. | Dec 2013 | B1 |
8612804 | Kang et al. | Dec 2013 | B1 |
8615681 | Horn | Dec 2013 | B2 |
8638602 | Horn | Jan 2014 | B1 |
8639872 | Boyle et al. | Jan 2014 | B1 |
8683113 | Abasto et al. | Mar 2014 | B2 |
8700834 | Horn et al. | Apr 2014 | B2 |
8700950 | Syu | Apr 2014 | B1 |
8700951 | Call et al. | Apr 2014 | B1 |
8706985 | Boyle et al. | Apr 2014 | B1 |
8707104 | Jean | Apr 2014 | B1 |
8713066 | Lo et al. | Apr 2014 | B1 |
8745277 | Kan | Jun 2014 | B2 |
20030227804 | Lofgren et al. | Dec 2003 | A1 |
20040080985 | Chang et al. | Apr 2004 | A1 |
20050055495 | Vihmalo et al. | Mar 2005 | A1 |
20060106972 | Gorobets et al. | May 2006 | A1 |
20060203546 | Lasser | Sep 2006 | A1 |
20070294490 | Freitas et al. | Dec 2007 | A1 |
20080140918 | Sutardja | Jun 2008 | A1 |
20080239811 | Tanaka | Oct 2008 | A1 |
20080313505 | Lee et al. | Dec 2008 | A1 |
20090077429 | Yim et al. | Mar 2009 | A1 |
20090089485 | Yeh | Apr 2009 | A1 |
20090113112 | Ye et al. | Apr 2009 | A1 |
20090113121 | Lee et al. | Apr 2009 | A1 |
20090157952 | Kim et al. | Jun 2009 | A1 |
20090182936 | Lee | Jul 2009 | A1 |
20090216936 | Chu et al. | Aug 2009 | A1 |
20090240873 | Yu et al. | Sep 2009 | A1 |
20090327804 | Moshayedi | Dec 2009 | A1 |
20100023675 | Chen et al. | Jan 2010 | A1 |
20100174849 | Walston et al. | Jul 2010 | A1 |
20100250793 | Syu | Sep 2010 | A1 |
20110099323 | Syu | Apr 2011 | A1 |
20110276740 | Joo et al. | Nov 2011 | A1 |
20110283049 | Kang et al. | Nov 2011 | A1 |
20110296258 | Schechter et al. | Dec 2011 | A1 |
20120023144 | Rub | Jan 2012 | A1 |
20120072654 | Olbrich et al. | Mar 2012 | A1 |
20120260020 | Suryabudi et al. | Oct 2012 | A1 |
20120278531 | Horn | Nov 2012 | A1 |
20120284460 | Guda | Nov 2012 | A1 |
20120324191 | Strange et al. | Dec 2012 | A1 |
20130132638 | Horn et al. | May 2013 | A1 |
20130145106 | Kan | Jun 2013 | A1 |
20130290793 | Booth et al. | Oct 2013 | A1 |
20140059405 | Syu et al. | Feb 2014 | A1 |
20140115427 | Lu | Apr 2014 | A1 |
20140133220 | Danilak et al. | May 2014 | A1 |
20140136753 | Tomlin et al. | May 2014 | A1 |
Entry |
---|
“NAND Evolution and its Effects on Solid State Drive (SSD) Useable Life”, Western Digital White Paper WP-001-01R, downloaded from http://www.wdc.com/WDProducts/SSD/whitepapers/en/NAND—Evolution—0812.pdf, on Mar. 29, 2010, 16 pages. |
“Eliminating Unscheduled Downtime by Forecasting Useable Life / SiliconDrive SiSMART Technology”, Western Digital White Paper WP-008-06R, downloaded from http://www.wdc.com/WDProducts/SSD/whitepapers/en/SiliconDrive—SiSMART.pdf, on Mar. 29, 2010, 8 pages. |
Office Action for U.S. Appl. No. 12/895,691, dated Dec. 20, 2012, in 25 pages. |
U.S. Appl. No. 12/895,691, System and Method for Improvin Wear-Leveling Performance in Solid-State Memory, Sep. 30, 2010. |
U.S. Appl. No. 12/895,891, filed Sep. 30, 2010, to Ho-Fan Kang, et al., 22 pages. |