Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Design and implementation of an efficient wear-leveling algorithm for solid-state-disk microcontrollers

Published: 28 December 2009 Publication History
  • Get Citation Alerts
  • Abstract

    Solid-state disks (SSDs) are storage devices that emulate hard drives with flash memory. They have been widely deployed in mobile computers as disk drive replacements. Flash memory is organized in terms of erase blocks. With the current technology, a block can reach the end of its lifetime after thousands of erasure operations. Wear leveling is a technique to evenly erase the entire flash memory so that all blocks remain alive as long as possible. This study introduces a new wear-leveling algorithm based the observation that, under a real-life mobile PC's workload, most erasure operations are contributed by a small fraction of blocks. Our key ideas are 1) moving rarely updated data to a block that is extraordinarily worn and 2) avoiding repeatedly involving a block in wear-leveling activities. This study presents a successful implementation of the proposed wear-leveling algorithm using about 200 bytes of RAM in an SSD controller rated at 33 MHz. Evaluation results show that this algorithm achieves even wear of the entire flash memory while reducing the overheads of extra flash-memory operations.

    References

    [1]
    Agrawal, N., Prabhakaran, V., Wobber, T., Davis, J. D., Manasse, M., and Panigrahy, R. 2008. Design tradeoffs for SSD performance. In Proceedings of the USENIX Annual Technical Conference on Annual Technical Conference (ATC'08). USENIX Association, Berkeley, CA, 57--70.
    [2]
    Ban, A. 2004. Wear leveling of static areas in flash memory. U.S. Patent 6732221.
    [3]
    Chang, L.-P. 2007. On efficient wear-leveling for large-scale flash-memory storage systems. In Proceedings of the ACM Symposium on Applied Computing (SAC'07). ACM, New York, NY 1126--1130.
    [4]
    Chang, L.-P. and Kuo, T.-W. 2005. Efficient management for large-scale flash-memory stroage systems with resource conservation. ACM Trans. Storage 1, 4, 381--418.
    [5]
    Chang, L.-P., Kuo, T.-W., and Lo, S.-W. 2004. Real-time garbage collection for flash-memory storage systems of real-time embedded systems. ACM Trans. Embed. Comput. Sys. 3, 4, 837 --863.
    [6]
    Chang, Y.-B. and Chang, L.-P. 2008. A self-balancing striping scheme for NAND-flash storage systems. In Proceedings of the ACM Symposium on Applied Computing (SAC'08). ACM, New York, NY, 1715--1719.
    [7]
    Chang, Y.-H., Hsieh, J.-W., and Kuo, T.-W. 2007. Endurance enhancement of flash-memory storage systems: An efficient static wear leveling design. In Proceedings of the 44th Annual Conference on Design Automation (DAC'07). ACM, New York, NY, 212--217.
    [8]
    Chung, T. S., Park, D.-J., Park, S., Lee, D. H., Lee, S. W., and Song, H.-J. 2006. System software for flash memory: a survey. In Embedded and Ubiquitous Computing (EUC'06). 394--404.
    [9]
    Chiang, M.-L., Lee, P. C. H., and Chuan Chang, R. 1999. Using data clustering to improve cleaning performance for flash memory. Softw. Pract. Exper. 29, 3, 267--290.
    [10]
    Defouw, R. J. and Nguyen, T. 2006. Method and system for improving usable life of memory devices using vector processing. U.S. Patent 7139863.
    [11]
    Douglis, F., Cáceres, R., Kaashoek, F., Li, K., Marsh, B., and Tauber, J. A. 1994. Storage alternatives for mobile computers. In Proceedings of the 1st USENIX Conference on Operating Systems Design and Implementation (OSDI'94). USENIX Association, Berkeley, CA, 3.
    [12]
    Estakhri, P., M. Assar, Reid, A. R. and Iman, B. 1998. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory. U.S. Patent 5835935.
    [13]
    Freescale Semiconductor. 2004. USB Thumb Drive reference design DRM061.
    [14]
    Gal, E. and Toledo, S. 2005. Algorithms and data structures for flash memories. ACM Comput. Surv. 37, 2, 138--163.
    [15]
    Gonzalez, C. J. and Conley, K. M. 2006. Automated wear leveling in non-volatile storage systems. U.S. Patent 7120729.
    [16]
    IEEE Standards Association. 2006. IEEE Std 1666-2005 IEEE Standard SystemC Language Reference Manual. 1--423.
    [17]
    Jung, D., Chae, Y.-H., Jo, H., Kim, J.-S., and Lee, J. 2007. A group-based wear-leveling algorithm for large-capacity flash memory storage systems. In Proceedings of the International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES'07). ACM, New York, NY, 160--164.
    [18]
    Kang, J.-U., Jo, H., Kim, J.-S., and Lee, J. 2006. A superblock-based flash translation layer for NAND flash memory. In Proceedings of the 6th ACM & IEEE International Conference on Embedded Software (EMSOFT'06). ACM, New York, NY, 161--170.
    [19]
    Kang, J.-U., Kim, J.-S., Park, C., Park, H., and Lee, J. 2007. A multi-channel architecture for high-performance NAND flash-based storage system. J. Syst. Archit. 53, 9, 644--658.
    [20]
    Park, C., Talawar, P., Won, D., Jung, M.-I., Lm, J.-B., Kim, S., and Choi, Y. 2006. A high peroformance controller for NAND flash-based solid state disk (NSSD). In Proceedings of the 21st IEEE Non-Volatile Semiconductor Memory Workshop (NVSMW). IEEE.
    [21]
    Perdue, K. 2008. Wear Leveling. Spansion Application Note (Wear_Leveling_AN_01).
    [22]
    Kim, H., Nam, K. E. H., Choi, K. S., Seong, Y. J., Choi, J.-Y., and Min, S. L. 2008. Development platforms for flash memory solid state disks. In Proceedings of the 11th IEEE Symposium on Object Oriented Real-Time Distributed Computing (ISORC'08). IEEE Computer Society, Los Alamitos, CA, 527--528.
    [23]
    Kim, H.-J. and Lee, S.-G. 2002. An effective flash memory manager for reliable flash memory space management. IEICE Trans. Inform. Syst. 85, 6, 950--964.
    [24]
    Kim, J., Kim, J.-M., Noh, S. S.-L. M., and Cho, Y. 2002. A space-efficient flash translation layer for compactflash systems. IEEE Trans. Consum. Electron. 48, 2, 366--375.
    [25]
    Lee, S.-W., Park, D.-J., Chung, T.-S., Lee, D.-H., Park, S., and Song, H.-J. 2007. A log buffer-based flash translation layer using fully-associative sector translation. Trans. Embed. Comput. Syst. 6, 3, 18.
    [26]
    M-Systems. 1998. Flash-memory translation layer for NAND flash (NFTL).
    [27]
    M-Systems. 2002. TrufFFS wear-leveling mechanism, Techn. Note TN-DOC-017.
    [28]
    Manning, C. and Wookey. 2001. Yaffs specification. http://www.aleph1.co.uk/node/37.
    [29]
    Micron Technology. 2008. Wear-leveling techniques in NAND flash devices. Micron Tech. Appl. Note (TN-29-42).
    [30]
    Microsoft. 2007. Flash-memory abstraction layer (FAL). Windows Embedded CE 6.0 Source Code.
    [31]
    Motorola, Inc. 2002. MC9S12UF32 system on a chip guide V01.04.
    [32]
    Numonyx. 2008. Wear leveling in NAND flash memories. Numonyx Appl. note (AN1822).
    [33]
    Open NAND Flash Interface (ONFi). 2009. Open NAND Flash Interface Specification Revision 2.1.
    [34]
    Reummler, C. and J. W. 1993. UNIX disk access patterns. In Proceedings of the Usenix Annual Technical Conference. 405--420.
    [35]
    Roselli, D., Lorch, J. R., and Anderson, T. E. 2000. A comparison of file system workloads. In Proceedings of the USENIX Annual Technical Conference. 41--54.
    [36]
    Samsung Electronics Company. (A). K9GAG08U0M 2G * 8 Bit MLC NAND flash memory data sheet (Preliminary).
    [37]
    Samsung Electronics Company. (B). K9NBG08U5M 4Gb * 8 Bit NAND flash memory data sheet.
    [38]
    Samsung Electronics Company. 2007. NSSD (NAND Flash-based solid state disk) standard type product datasheet.
    [39]
    SanDisk Corporation. 2003. Sandisk flash memory cards wear leveling.
    [40]
    Serial ATA International Organization. 2007. Serial ATA 2.6 specification.
    [41]
    STMicroelectronics. 2006. Wear leveling in single level cell NAND flash memories. STMicroelectronics appli. note (AN1822).
    [42]
    T13 Technical Committee. 2000. AT attachment with packet interface - 5 . (ATA/ATAPI-5). American National Standards Institute.
    [43]
    Vogels, W. 1999. File system usage in windows nt 4.0. SIGOPS Oper. Syst. Rev. 33, 5, 93--109.
    [44]
    Woodhouse, D. 2001. Jffs: The journalling flash file system. In Proceedings of Ottawa Linux Symposium.

    Cited By

    View all
    • (2023)Side-channel attacks on optane persistent memoryProceedings of the 32nd USENIX Conference on Security Symposium10.5555/3620237.3620618(6807-6824)Online publication date: 9-Aug-2023
    • (2023)MC-ELMM: Multi-Chip Endurance-Limited Memory ManagementProceedings of the International Symposium on Memory Systems10.1145/3631882.3631905(1-16)Online publication date: 2-Oct-2023
    • (2022)ReCA-FTL: Resource Contention Aware Flash Translation Layer2022 IEEE International Conference on Networking, Architecture and Storage (NAS)10.1109/NAS55553.2022.9925368(1-8)Online publication date: Oct-2022
    • Show More Cited By

    Index Terms

    1. Design and implementation of an efficient wear-leveling algorithm for solid-state-disk microcontrollers

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Transactions on Design Automation of Electronic Systems
    ACM Transactions on Design Automation of Electronic Systems  Volume 15, Issue 1
    December 2009
    188 pages
    ISSN:1084-4309
    EISSN:1557-7309
    DOI:10.1145/1640457
    Issue’s Table of Contents
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Journal Family

    Publication History

    Published: 28 December 2009
    Accepted: 01 August 2009
    Revised: 01 April 2009
    Received: 01 September 2008
    Published in TODAES Volume 15, Issue 1

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Wear leveling
    2. embedded systems
    3. flash memory
    4. solid-state disks

    Qualifiers

    • Research-article
    • Research
    • Refereed

    Funding Sources

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)34
    • Downloads (Last 6 weeks)6
    Reflects downloads up to 26 Jul 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Side-channel attacks on optane persistent memoryProceedings of the 32nd USENIX Conference on Security Symposium10.5555/3620237.3620618(6807-6824)Online publication date: 9-Aug-2023
    • (2023)MC-ELMM: Multi-Chip Endurance-Limited Memory ManagementProceedings of the International Symposium on Memory Systems10.1145/3631882.3631905(1-16)Online publication date: 2-Oct-2023
    • (2022)ReCA-FTL: Resource Contention Aware Flash Translation Layer2022 IEEE International Conference on Networking, Architecture and Storage (NAS)10.1109/NAS55553.2022.9925368(1-8)Online publication date: Oct-2022
    • (2021)Enhancing the Reliability of MEDA Biochips Using IJTAG and Wear LevelingIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems10.1109/TCAD.2020.303262940:10(2063-2076)Online publication date: Oct-2021
    • (2020)Novel battery wear leveling method for large‐scale reconfigurable battery packsInternational Journal of Energy Research10.1002/er.5879Online publication date: 7-Sep-2020
    • (2019)Resistive RAM Endurance: Array-Level Characterization and Correction Techniques Targeting Deep Learning ApplicationsIEEE Transactions on Electron Devices10.1109/TED.2019.289438766:3(1281-1288)Online publication date: Mar-2019
    • (2019)Revive Bad Flash-Memory Pages by HLC SchemeIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems10.1109/TCAD.2018.283442038:5(860-873)Online publication date: May-2019
    • (2018)Timestamp-based hot/cold data identification scheme for solid state drivesProceedings of the 2018 Conference on Research in Adaptive and Convergent Systems10.1145/3264746.3264790(255-259)Online publication date: 9-Oct-2018
    • (2018)Understanding Cross-Site Linking in Online Social NetworksACM Transactions on the Web10.1145/321389812:4(1-29)Online publication date: 27-Sep-2018
    • (2018)Exploring and Analysing the African Web EcosystemACM Transactions on the Web10.1145/321389712:4(1-26)Online publication date: 27-Sep-2018
    • Show More Cited By

    View Options

    Get Access

    Login options

    Full Access

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media