skip to main content
research-article

An adaptive write buffer management scheme for flash-based SSDs

Published:24 February 2012Publication History
Skip Abstract Section

Abstract

Solid State Drives (SSD's) have shown promise to be a candidate to replace traditional hard disk drives. The benefits of SSD's over HDD's include better durability, higher performance, and lower power consumption, but due to certain physical characteristics of NAND flash, which comprise SSD's, there are some challenging areas of improvement and further research. We focus on the layout and management of the small amount of RAM that serves as a cache between the SSD and the system that uses it. Of the techniques that have previously been proposed to manage this cache, we identify several sources of inefficient cache space management due to the way pages are clustered in blocks and the limited replacement policy. We find that in many traces hot pages reside in otherwise cold blocks, and that the spatial locality of most clusters can be fully exploited in a limited time period, so we develop a hybrid page/block architecture along with an advanced replacement policy, called BPAC, or Block-Page Adaptive Cache, to exploit both temporal and spatial locality. Our technique involves adaptively partitioning the SSD on-disk cache to separately hold pages with high temporal locality in a page list and clusters of pages with low temporal but high spatial locality in a block list. In addition, we have developed a novel mechanism for flash-based SSD's to characterize the spatial locality of the disk I/O workload and an approach to dynamically identify the set of low spatial locality clusters. We run trace-driven simulations to verify our design and find that it outperforms other popular flash-aware cache schemes under different workloads. For instance, compared to a popular flash aware cache algorithm BPLRU, BPAC reduces the number of cache evictions by up to 79.6% and 34% on average.

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 2008 Annual Technical Conference on Annual Technical Conference. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Balakrishnan, M., Kadav, A., Prabhakaran, V., and Malkhi, D. 2010. Differential RAID: Rethinking RAID for SSD reliability. ACM Trans. Storage 6, 2, 1--22. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bansal, S. and Modha, D. S. 2004. CAR: Clock with Adaptive Replacement. In Proceedings of the 3rd USENIX Conference on File and Storage Technologies (FAST'04). 187--200. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Bez, R., Camerlenghi, E., Modelli, A., and Visconti, A. 2003. Introduction to flash memory. Proc. IEEE 91, 489--502.Google ScholarGoogle ScholarCross RefCross Ref
  5. Chang, Y., Lin, J., Hsieh, J., and Kuo, T. 2010. A strategy to emulate NOR flash with NAND flash. ACM Trans. Storage 6, 2, 1--23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 IEEE/ACM Design Automation Conference (DAC). Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Chen, F., Lee, R., and Zhang, X. 2011. Essential roles of exploiting internal parallelism of flash memory based solid state drives in high-speed data processing. In Proceedings of the 17th IEEE International Symposium on High Performance Computer Architecture (HPCA). IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Eetimes. 2010. http://www.eetimes.com/electronics-news/4207194/Toshiba_rolls_24_nm_NAND_flash.Google ScholarGoogle Scholar
  9. Engadet. http://www.engadget.com/2010/04/19/.Google ScholarGoogle Scholar
  10. Gill, B. S. and Modha, D. S. 2005. WOW: Wise Ordering For Writes---Combining spatial and temporal locality in non-volatile caches. In Proceedings of the 4th Conference on USENIX Conference on File and Storage Technologies (FAST'05). USENIX Association, Berkeley, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Gupta, A., Kim, Y., and Urgaonkar, B. 2009. DFTL: A flash translation layer employing demand-based selective caching of page-level address mappings. In Proceedings of the 14th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'09). ACM, New York, 229--240. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Gupta, A., Pisolkar, R., Urgaonkar, B., and Sivasubramaniam, A. 2011. Leveraging value locality in optimizing NAND flash-based SSDs. In Proceedings of the 9th USENIX Conference on File and Stroage Technologies. USENIX Association. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Hat, R. 2010. The journalling flash file system, version 2. http://sourceware.org/jffs2/.Google ScholarGoogle Scholar
  14. Hewlett-Packard Laboratories. cello99 traces. http://tesla.hpl.hp.com/opensource/.Google ScholarGoogle Scholar
  15. Hu, J., Jiang, H., Tian, L., and Xu, L. 2010. PUD-LRU: An erase-efficient write buffer management algorithm for flash memory SSD. In Proceedings of the International Symposium on Modeling, Analysis, and Simulation of Computer Systems. 69--78. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Hutsell, W., Bowen, J., and Ekker, N. 2008. Flash solid-state disk reliability. Tech. rep.Google ScholarGoogle Scholar
  17. Intel. 2009. Intel X25-M SATA Solid State Drive. http://download.intel.com/design/flash/nand/mainstream/322296.pdf.Google ScholarGoogle Scholar
  18. Intel. 2010. http://www.intel.com/pressroom/archive/releases/20100201comp.htm.Google ScholarGoogle Scholar
  19. Jiang, S., Ding, X., Chen, F., Tan, E., and Zhang, X. 2005. DULO: An effective buffer cache management scheme to exploit both temporal and spatial locality. In Proceedings of the 4th Conference on USENIX Conference on File and Storage Technologies (FAST'05). USENIX Association, Berkeley, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Jiang, S. and Zhang, X. 2002. LIRS: An efficient low inter-reference recency set replacement policy to improve buffer cache performance. In Proceedings of the ACM SIGMATRICS International Conference Measurement and Modeling of Computer Systems, 31--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Jo, H., Kang, J.-U., Park, S.-Y., Kim, J.-S., and Lee, J. 2006. FAB: Flash-Aware Buffer management policy for portable media players. IEEE Trans. Consum. Elect. 52, 2, 485--493. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Johnson, T. and Shasha, D. 1994. 2Q: A low overhead high performance buffer management replacement algorithm. In Proceedings of the 20th International Conference on Very Large Data Bases (VLDB'94). Morgan Kaufmann Publishers Inc., San Francisco, CA, 439--450. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Josephson, W., Bongo, L., Li, K., and Flynn, D. 2010. DFS: A file system for virtualized flash storage. ACM Trans. Storage 6, 3, 1--25. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Jung, J., Won, Y., Kim, E., Shin, H., and Jeon, B. 2010. FRASH: Exploiting storage class memory in hybrid file system for hierarchical storage. ACM Trans. Storage 6, 1, 1--25. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 International Conference on Embedded Software. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Kang, S., Park, S., Jung, H., Shim, H., and Cha, J. 2009. Performance trade-offs in using NVRAM write buffer for flash memory-based storage devices. IEEE Trans. Comput. 58, 6, 744--758. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Karedla, R., Love, J. S., and Wherry, B. G. 1994. Caching strategies to improve disk system performance. IEEE Comput. 27, 3, 38--46. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Kim, H. and Ahn, S. 2008. BPLRU: A buffer management scheme for improving random writes in flash storage abstract. In Proceedings of 6th USENIX Conference on File and Storage Technologies (FAST'08). Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Kim, J. M., Choi, J., Kim, J., Noh, S. H., Min, S. L., Cho, Y., and Kim, C. S. 2000. A low-overhead, high-performance unified buffer management scheme that exploits sequential and looping references. In Proceedings of the 4th Symposium on Operating System Design and Implementation (OSDI'00). 119--134. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Kim, J., Kim, J. M., Noh, S., Min, S. L., and Cho, Y. 2002. A space-efficient flash translation layer for compactflash systems. IEEE Trans. Consum. Electron. 48, 2, 366--375. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Lee, D., Choi, J., Kim, J., Noh, S., Min, S., Cho, Y., and Kim, C. 2001. LRFU: A spectrum of policies that subsumes the least recently used and least frequently used policies. IEEE Trans. Comput. 50, 12, 1352--1361. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Lee, S., Ha, K., Zhang, K., Kim, J., and Kim, J. 2009. FlexFS: A flexible flash file system for MLC NAND flash memory. In Proceedings of the USENIX Annual Technical Conference. USENIX. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Lee, S., Shin, D., Kim, Y.-J., and Kim, J. 2008. LAST: Locality-aware sector translation for NAND flash memory-based storage systems. SIGOPS Oper. Syst. Rev. 42, 6, 36--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Lee, S.-W., Park, D.-J., Chung, T.-S., Lee, D.-H., Park, S.-W., and Song, H.-J. 2005. FAST: An FTL scheme with fully associative sector translations. In Proceedings of the UKC Conference. UKC.Google ScholarGoogle Scholar
  35. Lee, Y.-G., Jung, D., Kang, D., and Kim, J.-S. 2008. uFTL: a memory-efficient flash translation layer supporting multiple mapping granularities. In Proceedings of the 8th ACM International Conference on Embedded Software (EMSOFT'08). ACM, New York, 21--30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Manning, C. 2010. Yet another flash file system. http://www.yaffs.net/.Google ScholarGoogle Scholar
  37. Mason, L. 2009. Rethinking SSDs. http://www.denali.com/wordpress/index.php/dmr/2009/07/23/rethinking-ssds.Google ScholarGoogle Scholar
  38. Megiddo, N. and Modha, D. 2003. ARC: A self-tuning, low overhead replacement cache. In Proceedings of the 2nd USENIX Conference on File and Storage Technologies (FAST'03). 115--130. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Megiddo, N. and Modha, D. S. 2004. Outperforming LRU with an adaptive replacement cache algorithm. Computer 37, 4, 58--65. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Newegg. 2009a. Intel X25-M Mainstream SSDSA2MH160G2C1 2.5-inch160GB SATA II MLC Internal Solid state disk (SSD). http://www.newegg.com/Product/Product.aspx?Item=N82E16820167017.Google ScholarGoogle Scholar
  41. Newegg. 2009b. Western Digital VelociRaptor WD3000HLFS 300GB 10000 RPM 16MB cache SATA 3.0Gb/s 3.5-inch internal hard drive---OEM. http://www.newegg.com/Product/Product.aspx?Item= N82E16822136322.Google ScholarGoogle Scholar
  42. Nicola, V., Dan, A., and Dias, D. 1992. Analysis of the generalized clock buffer replacement scheme for database transaction processing. In Proceedings of the ACM SIGMETRICS Joint International Conference on Measurement and Modeling of Computer Systems. ACM, 35--46. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. O'Neil, E. J., O'Neil, P. E., and Weikum, G. 1993. The LRU-K page replacement algorithm for database disk buffering. In Proceedings of the ACM SIGMOD International Conference on Management of Data (SIGMOD'93). ACM, New York, 297--306. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. ONFI. 2010. http://onfi.org/.Google ScholarGoogle Scholar
  45. Park, S.-Y., Jung, D., Kang, J.-U., Kim, J.-S., and Lee, J. 2006. CFLRU: A replacement algorithm for flash memory. In Proceedings of the International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES'06). ACM, New York, 234--241. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Ren, J. and Yang, Q. 2011. I-CASH: Intelligently Coupled Array of SSD and HDD. In Proceedings of the 17th IEEE International Symposium on High Performance Computer Architecture (HPCA). Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Rosenblum, M. and Ousterhout, J. K. 1992. The design and implementation of a log-structured file system. ACM Trans. Comput. Syst. 10, 1, 26--52. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Samsung. 2010. http://www.samsung.com/global/business/semiconductor/products/fusionmemory/Products-OneNAND.html.Google ScholarGoogle Scholar
  49. Shim, H., Seo, B.-K., Kim, J.-S., and Maeng, S. 2010. An adaptive partitioning scheme for DRAM-based cache in solid state drives. In Proceedings of the 26th IEEE Symposium on Mass Storage Systems and Technologies (MSST). 1--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Shimpi, A. L. 2009. Intel x25-m g2: Dissected and performance preview. http://www.anandtech.com/storage/showdoc.aspx?i=3607.Google ScholarGoogle Scholar
  51. SiliconSystems. 2005. Increasing flash solid state disk reliability. Tech. rep.Google ScholarGoogle Scholar
  52. SimpleScalar LLC. 2009. The simplescalar tool set. http://www.simplescalar.com/.Google ScholarGoogle Scholar
  53. Soundararajan, G., Prabhakaran, V., Balakrishnan, M., and Wobber, T. 2010. Extending SSD lifetimes with disk-based write caches. In Proceedings of the 8th USENIX Conference on File and Storage Technologies (FAST'10). USENIX. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Storage Performance Council. 2010. SPC trace file format specification. http://traces.cs.umass.edu/index. php/Storage/Storage.Google ScholarGoogle Scholar
  55. Sun, G., Joo, Y., Chen, Y., Niu, D., Xie, Y., Chen, Y., and Li, H. 2010. A hybrid solid-state storage architecture for the performance, energy consumption, and lifetime improvement. In Proceedings of the 16th IEEE International Symposium on High-Performance Computer Architecture (HPCA-16). IEEE, 141--153.Google ScholarGoogle Scholar
  56. Toshiba. 2010. http://www.toshiba.com/taec/news/press-releases/2006/memy-06-337.jsp.Google ScholarGoogle Scholar
  57. UMASS. 2007. Umass trace repository. http://traces.cs.umass.edu/index.php/Storage/Storage.Google ScholarGoogle Scholar
  58. Wang, Y., Shu, J., Zhang, G., Xue, W., and Zheng, W. 2010. SOPA: Selecting the optimal caching policy adaptively. ACM Trans. Storage 6, 2, 1--18. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Western Digital. December 2008. WD VelociRaptor SATA hard drives. http://www.wdc.com/en/library/sata/2879-701282.pdf.Google ScholarGoogle Scholar
  60. Wu, C.-H. and Kuo, T.-W. 2006. An adaptive two-level management for the flash translation layer in embedded systems. In Proceedings of the IEEE/ACM International Conference on Computer-Aided Design (ICCAD'06). ACM, New York, 601--606. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Zhou, Y., Chen, Z., and Li, K. 2004. Second-level buffer cache management. IEEE Trans. Parallel Distrib. Syst. 15, 6, 505--519. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Zhou, Y., Philbin, J., and Li, K. 2001. The multi-queue replacement algorithm for second level buffer caches. In Proceedings of the USENIX Annual Technical Conference (General Track). USENIX Association, Berkeley, CA, 91--104. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. An adaptive write buffer management scheme for flash-based SSDs

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM Transactions on Storage
          ACM Transactions on Storage  Volume 8, Issue 1
          February 2012
          92 pages
          ISSN:1553-3077
          EISSN:1553-3093
          DOI:10.1145/2093139
          Issue’s Table of Contents

          Copyright © 2012 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 24 February 2012
          • Accepted: 1 June 2011
          • Revised: 1 May 2011
          • Received: 1 November 2010
          Published in tos Volume 8, Issue 1

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Research
          • Refereed

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!