Abstract
Flash memory is prevalent in modern servers and devices. Coupled with the scaling down of flash technology, the popularity of flash memory motivates the search for methods to increase flash reliability and lifetime. Erasures are the dominant cause of flash cell wear, but reducing them is challenging because flash is a write-once medium— memory cells must be erased prior to writing.
An approach that has recently received considerable attention relies on write-once memory (WOM) codes, designed to accommodate additional writes on write-once media. However, the techniques proposed for reusing flash pages with WOM codes are limited in their scope. Many focus on the coding theory alone, whereas others suggest FTL designs that are application specific, or not applicable due to their complexity, overheads, or specific constraints of multilevel cell (MLC) flash.
This work is the first that addresses all aspects of page reuse within an end-to-end analysis of a general-purpose FTL on MLC flash. We use a hardware evaluation setup to directly measure the short- and long-term effects of page reuse on SSD durability and energy consumption, and show that FTL design must explicitly take them into account. We then provide a detailed analytical model for deriving the optimal garbage collection policy for such FTL designs, and for predicting the benefit from reuse on realistic hardware and workload characteristics.
- Siglead. 2014. NAND Flash Memory Tester (SigNASII). Retrieved January 28, 2018, from http://siglead.com/eng/product/nand/index.php.Google Scholar
- B. Van Houdt. 2014. On the necessity of hot and cold data identification to reduce the write amplification in flash-based SSDs. Performance Evaluation 82, 1--14. Google Scholar
Digital Library
- SNIA. 2014. SNIA IOTTA. Available at http://iotta.snia.org/traces/388.Google Scholar
- OpenSSD. 2015. Jasmine OpenSSD Platform. Retrieved January 28, 2018, from http://www.openssd-project.org/wiki/The_OpenSSD_Project.Google Scholar
- Nitin Agrawal, Vijayan Prabhakaran, Ted Wobber, John D. Davis, Mark Manasse, and Rina Panigrahy. 2008. Design tradeoffs for SSD performance. In Proceedings of the USENIX Annual Technical Conference (ATC’08). Google Scholar
Digital Library
- A Berman and Y. Birk. 2013. Retired-page utilization in write-once memory—a coding perspective. In Proceedings of the IEEE International Symposium on Information Theory (ISIT’13).Google Scholar
- David Burshtein. 2015. Coding for asymmetric side information channels with applications to polar codes. In Proceedings of the IEEE International Symposium on Information Theory (ISIT’15).Google Scholar
Cross Ref
- David Burshtein and Alona Strugatski. 2013. Polar write once memory codes. IEEE Transactions on Information Theory 59, 8, 5088--5101. http://dblp.uni-trier.de/db/journals/tit/tit59.html#BurshteinS13. Google Scholar
Digital Library
- Werner Bux and Ilias Iliadis. 2010. Performance of greedy garbage collection in flash-based solid-state drives. Performance Evaluation 67, 11, 1172--1186. Google Scholar
Digital Library
- Y. Cai, O. Mutlu, E. F. Haratsch, and K. Mai. 2013. Program interference in MLC NAND flash memory: Characterization, modeling, and mitigation. In Proceedings of the 31st IEEE International Conference on Computer Design (ICCD’13).Google Scholar
- Mong-Ling Chiao and Da-Wei Chang. 2011. ROSE: A novel flash translation layer for NAND flash memory based on hybrid address translation. IEEE Transactions on Computers 60, 6, 753--766. Google Scholar
Digital Library
- G. D. Cohen, P. Godlewski, and F. Merkx. 1986. Linear binary code for write-once memories. IEEE Transactions on Information Theory 32, 5, 697--700. http://dblp.uni-trier.de/db/journals/tit/tit32.html#CohenGM86. Google Scholar
Digital Library
- John Colgrove, John D. Davis, John Hayes, Ethan L. Miller, Cary Sandvig, Russell Sears, Ari Tamches, Neil Vachharajani, and Feng Wang. 2015. Purity: Building fast, highly-available enterprise flash storage from commodity components. In Proceedings of the ACM SIGMOD International Conference on Management of Data (SIGMOD’15). Google Scholar
Digital Library
- Peter Desnoyers. 2013. What systems researchers need to know about NAND flash. In Proceedings of the 5th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage’13). Google Scholar
Digital Library
- Peter Desnoyers. 2014. Analytic models of SSD write performance. ACM Transactions on Storage 10, 2, Article 8, 25 pages. Google Scholar
Digital Library
- E. En Gad, W. Huang, Y. Li, and J. Bruck. 2015. Rewriting flash memories by message passing. In Proceedings of the IEEE International Symposium on Information Theory (ISIT’15).Google Scholar
- Laura M. Grupp, Adrian M. Caulfield, Joel Coburn, Steven Swanson, Eitan Yaakobi, Paul H. Siegel, and Jack K. Wolf. 2009. Characterizing flash memory: Anomalies, observations, and applications. In Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO’09). Google Scholar
Digital Library
- Aayush Gupta, Raghav Pisolkar, Bhuvan Urgaonkar, and Anand Sivasubramaniam. 2011. Leveraging value locality in optimizing NAND flash-based SSDs. In Proceedings of the 9th USENIX Conference on File and Storage Technologies (FAST’11). Google Scholar
Digital Library
- X.-Y. Hu and R. Haas. 2010. The Fundamental Limit of Flash Random Write Performance: Understanding, Analysis and Performance Modelling. IBM Research Report RZ3771. IBM Research, Zurich, Switzerland.Google Scholar
- Sai Huang, Qingsong Wei, Jianxi Chen, Cheng Chen, and Dan Feng. 2013. Improving flash-based disk cache with lazy adaptive replacement. In Proceedings of the IEEE 29th Symposium on Mass Storage Systems and Technologies (MSST’13).Google Scholar
Cross Ref
- Jae-Woo Im, Woo-Pyo Jeong, and Doo-Hyun Kim. 2015. A 128Gb 3b/cell V-NAND flash memory with 1Gb/s I/O rate. In Proceedings of the IEEE International Solid-State Circuits Conference (ISSCC’15).Google Scholar
Cross Ref
- Soojun Im and Dongkun Shin. 2010. ComboFTL: Improving performance and lifespan of MLC flash memory using SLC flash buffer. Journal of Systems Architecture 56, 12, 641--653. Google Scholar
Digital Library
- A. N. Jacobvitz, R. Calderbank, and D. J. Sorin. 2012. Writing cosets of a convolutional code to increase the lifetime of flash memory. In Proceedings of the 50th Annual Allerton Conference on Communication, Control, and Computing.Google Scholar
- A. Jagmohan, M. Franceschini, and L. Lastras. 2010. Write amplification reduction in NAND flash through multi-write coding. In Proceedings of the 26th IEEE Symposium on Mass Storage Systems and Technologies (MSST’10). Google Scholar
Digital Library
- Xavier Jimenez, David Novo, and Paolo Ienne. 2014. Wear unleveling: Improving NAND flash lifetime by balancing page endurance. In Proceedings of the 12th USENIX Conference on File and Storage Technologies (FAST’14). Google Scholar
Digital Library
- Jürgen Kaiser, Fabio Margaglia, and André Brinkmann. 2013. Extending SSD lifetime in database applications with page overwrites. In Proceedings of the 6th International Systems and Storage Conference (SYSTOR’13).Google Scholar
Digital Library
- Taeho Kgil, David Roberts, and Trevor Mudge. 2008. Improving NAND flash based disk caches. In Proceedings of the 35th Annual International Symposium on Computer Architecture (ISCA’08). Google Scholar
Digital Library
- Hyojun Kim and Seongjun Ahn. 2008. BPLRU: A buffer management scheme for improving random writes in flash storage. In Proceedings of the 6th USENIX Conference on File and Storage Technologies (FAST’08). Google Scholar
Digital Library
- X. Luojie, B. M. Kurkoski, and E. Yaakobi. 2012. WOM codes reduce write amplification in NAND Flash memory. In Proceedings of the IEEE Global Communications Conference (GLOBECOM’12).Google Scholar
- Fabio Margaglia and André Brinkmann. 2015. Improving MLC flash performance and endurance with extended P/E cycles. In Proceedings of the IEEE 31st Symposium on Mass Storage Systems and Technologies (MSST’15).Google Scholar
Cross Ref
- Fabio Margaglia, Gala Yadgar, Eitan Yaakobi, Yue Li, Assaf Schuster, and André Brinkmann. 2016. The devil is in the details: Implementing flash page reuse with WOM codes. In Proceedings of the 14th USENIX Conference on File and Storage Technologies (FAST’16). Google Scholar
Digital Library
- N. Mielke, T. Marquart, N. Wu, J. Kessenich, H. Belgal, E. Schares, F. Trivedi, E. Goodness, and L. R. Nevill. 2008. Bit error rate in NAND flash memories. In Proceedings of the IEEE International Reliability Physics Symposium (IRPS’08).Google Scholar
- Changwoo Min, Kangnyeon Kim, Hyunjin Cho, Sang-Won Lee, and Young Ik Eom. 2012. SFS: Random write considered harmful in solid state drives. In Proceedings of the 10th USENIX Conference on File and Storage Technologies (FAST’12). Google Scholar
Digital Library
- V. Mohan, T. Bunker, L. Grupp, S. Gurumurthi, M. R. Stan, and S. Swanson. 2013. Modeling power consumption of NAND flash memories using FlashPower. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 32, 7, 1031--1044. Google Scholar
Digital Library
- Dushyanth Narayanan, Austin Donnelly, and Antony Rowstron. 2008. Write off-loading: Practical power management for enterprise storage. ACM Transactions on Storage 4, 3, Article 10, 23 pages. Google Scholar
Digital Library
- S. Odeh and Y. Cassuto. 2014. NAND flash architectures reducing write amplification through multi-write codes. In Proceedings of the IEEE 30th Symposium on Mass Storage Systems and Technologies (MSST’14).Google Scholar
- Yongseok Oh, Jongmoo Choi, Donghee Lee, and Sam H. Noh. 2012. Caching less for better performance: Balancing cache size and update cost of flash memory cache in hybrid storage systems. In Proceedings of the 10th USENIX Conference on File and Storage Technologies (FAST’12). Google Scholar
Digital Library
- H. Park, J. Kim, J. Choi, D. Lee, and S. H. Noh. 2015. Incremental redundancy to reduce data retention errors in flash-based SSDs. In Proceedings of the IEEE 31st Symposium on Mass Storage Systems and Technologies (MSST’15).Google Scholar
- Ki-Tae Park, Myounggon Kang, Doogon Kim, Soon-Wook Hwang, Byung Yong Choi, Yeong-Taek Lee, Changhyun Kim, and Kinam Kim. 2008. A zeroing cell-to-cell interference page architecture with temporary LSB storing and parallel MSB program scheme for MLC NAND flash memories. IEEE Journal of Solid-State Circuits 43, 4, 919--928.Google Scholar
Cross Ref
- R. L. Rivest and A. Shamir. 1982. How to reuse a write-once memory. Information and Control 55, 1--3, 1--19.Google Scholar
Cross Ref
- Mastooreh Salajegheh, Yue Wang, Kevin Fu, Anxiao Jiang, and Erik Learned-Miller. 2011. Exploiting half-wits: Smarter storage for low-power devices. In Proceedings of the 9th USENIX Conference on File and Stroage Technologies (FAST’11). Google Scholar
Digital Library
- Mohit Saxena, Michael M. Swift, and Yiying Zhang. 2012. FlashTier: A lightweight, consistent and durable storage cache. In Proceedings of the 7th ACM European Conference on Computer Systems (EuroSys’12). Google Scholar
Digital Library
- Amir Shpilka. 2013. New constructions of WOM codes using the Wozencraft ensemble. IEEE Transactions on Information Theory 59, 7, 4520--4529. http://dblp.uni-trier.de/db/journals/tit/tit59.html#Shpilka13. Google Scholar
Digital Library
- Amir Shpilka. 2014. Capacity achieving multiwrite WOM codes. IEEE Transactions on Information Theory 60, 3, 1481--1487. Google Scholar
Digital Library
- Kent Smith. 2013. Understanding SSD over-provisioning. EDN Network. Retrieved January 28, 2018, from http://www.edn.com/design/systems-design/4404566/1/Understanding-SSD-over-provisioning.Google Scholar
- Gokul Soundararajan, Vijayan Prabhakaran, Mahesh Balakrishnan, and Ted Wobber. 2010. Extending SSD lifetimes with disk-based write caches. In Proceedings of the 8th USENIX Conference on File and Storage Technologies (FAST’10). Google Scholar
Digital Library
- Radu Stoica and Anastasia Ailamaki. 2013. Improving flash write performance by using update frequency. Proceedings of the VLDB Endowment 6, 9, 733--744. Google Scholar
Digital Library
- E. Yaakobi, L. Grupp, P. H. Siegel, S. Swanson, and J. K. Wolf. 2012a. Characterization and error-correcting codes for TLC flash memories. In Proceedings of the International Conference on Computing, Networking, and Communications (ICNC’12).Google Scholar
- Eitan Yaakobi, Scott Kayser, Paul H. Siegel, Alexander Vardy, and Jack K. Wolf. 2012b. Codes for write-once memories. IEEE Transactions on Information Theory 58, 9, 5985--5999. http://dblp.uni-trier.de/db/journals/tit/tit58.html#YaakobiKSVW12. Google Scholar
Digital Library
- Eitan Yaakobi, Jing Ma, Laura Grupp, Paul H. Siegel, Steven Swanson, and Jack K. Wolf. 2010. Error characterization and coding schemes for flash memories. In Proceedings of the IEEE GLOBECOM Workshops (GC Wkshps’10).Google Scholar
- Eitan Yaakobi, Alexander Yucovich, Gal Maor, and Gala Yadgar. 2015. When do WOM codes improve the erasure factor in flash memories? In Proceedings of the IEEE International Symposium on Information Theory (ISIT’15).Google Scholar
Cross Ref
- Gala Yadgar and Moshe Gabel. 2016. Avoiding the streetlight effect: I/O workload analysis with SSDs in mind. In Proceedings of the 8th USENIX Conference on Hot Topics in Storage and File Systems (HotStorage’16). Google Scholar
Digital Library
- Gala Yadgar, Roman Shor, Eitan Yaakobi, and Assaf Schuster. 2015a. It’s not where your data is, it’s how it got there. In Proceedings of the 7th USENIX Conference on Hot Topics in Storage and File Systems (HotStorage’15). Google Scholar
Digital Library
- Gala Yadgar, Eitan Yaakobi, and Assaf Schuster. 2015b. Write once, get 50% free: Saving SSD erase costs using WOM codes. In Proceedings of the 13th USENIX Conference on File and Storage Technologies (FAST’15). Google Scholar
Digital Library
- Gala Yadgar, Alexander Yucovich, Hila Arobas, Eitan Yaakobi, Yue Li, Fabio Margaglia, André Brinkmann, and Assaf Schuster. 2016. Limitations on MLC Flash Page Reuse and Its Effects on Durability. Technical Report CS-2016-02. Computer Science Department, Technion.Google Scholar
- Jingpei Yang, Ned Plasson, Greg Gillis, and Nisha Talagala. 2013. HEC: Improving endurance of high performance flash-based cache devices. In Proceedings of the 6th International Systems and Storage Conference (SYSTOR’13). Google Scholar
Digital Library
- Kai Zhao, Wenzhe Zhao, Hongbin Sun, Xiaodong Zhang, Nanning Zheng, and Tong Zhang. 2013. LDPC-in-SSD: Making advanced error correction codes work effectively in solid state drives. In Proceedings of the 11th USENIX Conference on File and Storage Technologies (FAST’13). Google Scholar
Digital Library
Index Terms
An Analysis of Flash Page Reuse With WOM Codes
Recommendations
A workload-aware flash translation layer enhancing performance and lifespan of TLC/SLC dual-mode flash memory in embedded systems
Similar to traditional NAND flash memory, triple-level cell (TLC) flash memory is used as secondary storage to meet the fast growing demands on storage capacity. TLC flash memory exhibits attractive features such as shock resistance, high density, low ...
A hybrid flash translation layer design for SLC-MLC flash memory based multibank solid state disk
This paper presents the design of a NAND flash based solid state disk (SSD), which can support various storage access patterns commonly observed in a PC environment. It is based on a hybrid model of high-performance SLC (single-level cell) NAND and low ...
Performance Trade-Offs in Using NVRAM Write Buffer for Flash Memory-Based Storage Devices
While NAND flash memory is used in a variety of end-user devices, it has a few disadvantages, such as asymmetric speed of read and write operations, inability to in-place updates, among others. To overcome these problems, various flash-aware strategies ...






Comments