When do WOM codes improve the erasure factor in flash memories?

Flash memory is a write-once medium in which re-programming cells requires first erasing the block that contains them. The lifetime of the flash is a function of the number of block erasures and can be as small as several thousands. To reduce the number of block erasures, pages, which are the smallest write unit, are rewritten out-of-place in the memory. A Write-once memory (WOM) code is a coding scheme which enables to write multiple times to the block before an erasure. However, these codes come with significant rate loss. For example, the rate for writing twice (with the same rate) is at most 0.77. In this paper, we study WOM codes and their tradeoff between rate loss and reduction in the number of block erasures, when pages are written uniformly at random. First, we introduce a new measure, called erasure factor, that reflects both the number of block erasures and the amount of data that can be written on each block. A key point in our analysis is that this tradeoff depends upon the specific implementation of WOM codes in the memory. We consider two systems that use WOM codes; a conventional scheme that was commonly used, and a new recent design that preserves the overall storage capacity. While the first system can improve the erasure factor only when the storage rate is at most 0.6442, we show that the second scheme always improves this figure of merit.

[1]  Eitan Yaakobi,et al.  Write Once, Get 50% Free: Saving SSD Erase Costs Using WOM Codes , 2015, FAST.

[2]  Chris Heegard,et al.  On the capacity of permanent memory , 1985, IEEE Trans. Inf. Theory.

[3]  A. J. Han Vinck,et al.  On the Capacity of Generalized Write-Once Memory with State Transitions Described by an Arbitrary Directed Acyclic Graph , 1999, IEEE Trans. Inf. Theory.

[4]  Peter Desnoyers,et al.  Analytic Models of SSD Write Performance , 2014, TOS.

[5]  Xiao-Yu Hu,et al.  The Fundamental Limit of Flash Random Write Performance: Understanding, Analysis and Performance Modelling , 2010 .

[6]  Paul H. Siegel,et al.  Characterizing flash memory: Anomalies, observations, and applications , 2009, 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[7]  A. Robert Calderbank,et al.  Coset coding to extend the lifetime of memory , 2013, 2013 IEEE 19th International Symposium on High Performance Computer Architecture (HPCA).

[8]  Wentao Huang,et al.  Rewriting flash memories by message passing , 2015, 2015 IEEE International Symposium on Information Theory (ISIT).

[9]  Yitzhak Birk,et al.  Retired-page utilization in write-once memory — A coding perspective , 2013, 2013 IEEE International Symposium on Information Theory.

[10]  Anastasia Ailamaki,et al.  Improving Flash Write Performance by Using Update Frequency , 2013, Proc. VLDB Endow..

[11]  David Burshtein,et al.  Polar write once memory codes , 2012, 2012 IEEE International Symposium on Information Theory Proceedings.

[12]  Gérard D. Cohen,et al.  Linear binary code for write-once memories , 1986, IEEE Trans. Inf. Theory.

[13]  Amir Shpilka,et al.  Capacity-Achieving Multiwrite WOM Codes , 2012, IEEE Transactions on Information Theory.

[14]  Adi Shamir,et al.  How to Reuse a "Write-Once" Memory , 1982, Inf. Control..

[15]  Yuval Cassuto,et al.  NAND flash architectures reducing write amplification through multi-write codes , 2014, 2014 30th Symposium on Mass Storage Systems and Technologies (MSST).

[16]  Werner Bux,et al.  Performance of greedy garbage collection in flash-based solid-state drives , 2010, Perform. Evaluation.

[17]  Paul H. Siegel,et al.  Codes for Write-Once Memories , 2012, IEEE Transactions on Information Theory.

[18]  Jun Yang,et al.  WoM-SET: Low power proactive-SET-based PCM write using WoM code , 2013, International Symposium on Low Power Electronics and Design (ISLPED).

[19]  Eitan Yaakobi,et al.  WOM codes reduce write amplification in NAND flash memory , 2012, 2012 IEEE Global Communications Conference (GLOBECOM).