Modulation codes for flash memory based on load-balancing theory

In this paper, we consider modulation codes for practical multilevel flash memory storage systems with q cell levels. Instead of maximizing the lifetime of the device [7], [1], [2], [4], we maximize the average amount of information stored per cell-level, which is defined as storage efficiency. Using this framework, we show that the worst-case criterion [7], [1], [2] and the average-case criterion [4] are two extreme cases of our objective function. A self-randomized modulation code is proposed which is asymptotically optimal, as q → ∞, for an arbitrary input alphabet and i.i.d. input distribution. In practical flash memory systems, the number of cell-levels q is only moderately large. So the asymptotic performance as q → ∞ may not tell the whole story. Using the tools from load-balancing theory, we analyze the storage efficiency of the self-randomized modulation code. The result shows that only a fraction of the cells are utilized when the number of cell-levels q is only moderately large. We also propose a load-balancing modulation code, based on a phenomenon known as “the power of two random choices” [10], to improve the storage efficiency of practical systems. Theoretical analysis and simulation results show that our load-balancing modulation codes can provide significant gain to practical flash memory storage systems. Though pseudo-random, our approach achieves the same load-balancing performance, for i.i.d. inputs, as a purely random approach based on the power of two random choices.

[1]  Anxiao Jiang On The Generalization of Error-Correcting WOM Codes , 2007, 2007 IEEE International Symposium on Information Theory.

[2]  Eli Upfal,et al.  Balanced allocations (extended abstract) , 1994, STOC '94.

[3]  Martin Raab,et al.  "Balls into Bins" - A Simple and Tight Analysis , 1998, RANDOM.

[4]  Anxiao Jiang,et al.  Joint coding for flash memory storage , 2008, 2008 IEEE International Symposium on Information Theory.

[5]  Paul H. Siegel,et al.  Multidimensional flash codes , 2008, 2008 46th Annual Allerton Conference on Communication, Control, and Computing.

[6]  Anxiao Jiang,et al.  Floating Codes for Joint Information Storage in Write Asymmetric Memories , 2007, 2007 IEEE International Symposium on Information Theory.

[7]  A. Fiat,et al.  Generalized 'write-once' memories , 1984, IEEE Trans. Inf. Theory.

[8]  Zhenming Liu,et al.  Designing Floating Codes for Expected Performance , 2010, IEEE Transactions on Information Theory.

[9]  Michael Langberg,et al.  Universal rewriting in constrained memories , 2009, 2009 IEEE International Symposium on Information Theory.

[10]  Eli Upfal,et al.  Balanced Allocations , 1999, SIAM J. Comput..

[11]  Michael Mitzenmacher,et al.  The Power of Two Choices in Randomized Load Balancing , 2001, IEEE Trans. Parallel Distributed Syst..

[12]  Jack K. Wolf,et al.  Coding for a write-once memory , 1984, AT&T Bell Laboratories Technical Journal.

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

[14]  Abbas El Gamal,et al.  On the capacity of computer memory with defects , 1983, IEEE Trans. Inf. Theory.