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. ©2009 IEEE.